From 2fc4153bef1f5930ecd94b0821ba60ebf9324a4d Mon Sep 17 00:00:00 2001 From: Alex Newman Date: Sat, 3 Jan 2026 21:22:27 -0500 Subject: [PATCH] refactor: decompose monolithic services into modular architecture (#534) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs: add monolith refactor report with system breakdown Comprehensive analysis of codebase identifying: - 14 files over 500 lines requiring refactoring - 3 critical monoliths (SessionStore, SearchManager, worker-service) - 80% code duplication across agent files - 5-phase refactoring roadmap with domain-based architecture * fix: prevent memory_session_id from equaling content_session_id The bug: memory_session_id was initialized to contentSessionId as a "placeholder for FK purposes". This caused the SDK resume logic to inject memory agent messages into the USER's Claude Code transcript, corrupting their conversation history. Root cause: - SessionStore.createSDKSession initialized memory_session_id = contentSessionId - SDKAgent checked memorySessionId !== contentSessionId but this check only worked if the session was fetched fresh from DB The fix: - SessionStore: Initialize memory_session_id as NULL, not contentSessionId - SDKAgent: Simple truthy check !!session.memorySessionId (NULL = fresh start) - Database migration: Ran UPDATE to set memory_session_id = NULL for 1807 existing sessions that had the bug Also adds [ALIGNMENT] logging across the session lifecycle to help debug session continuity issues: - Hook entry: contentSessionId + promptNumber - DB lookup: contentSessionId → memorySessionId mapping proof - Resume decision: shows which memorySessionId will be used for resume - Capture: logs when memorySessionId is captured from first SDK response UI: Added "Alignment" quick filter button in LogsModal to show only alignment logs for debugging session continuity. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 * refactor: improve error handling in worker-service.ts - Fix GENERIC_CATCH anti-patterns by logging full error objects instead of just messages - Add [ANTI-PATTERN IGNORED] markers for legitimate cases (cleanup, hot paths) - Simplify error handling comments to be more concise - Improve httpShutdown() error discrimination for ECONNREFUSED - Reduce LARGE_TRY_BLOCK issues in initialization code Part of anti-pattern cleanup plan (132 total issues) * refactor: improve error logging in SearchManager.ts - Pass full error objects to logger instead of just error.message - Fixes PARTIAL_ERROR_LOGGING anti-patterns (10 instances) - Better debugging visibility when Chroma queries fail Part of anti-pattern cleanup (133 remaining) * refactor: improve error logging across SessionStore and mcp-server - SessionStore.ts: Fix error logging in column rename utility - mcp-server.ts: Log full error objects instead of just error.message - Improve error handling in Worker API calls and tool execution Part of anti-pattern cleanup (133 remaining) * Refactor hooks to streamline error handling and loading states - Simplified error handling in useContextPreview by removing try-catch and directly checking response status. - Refactored usePagination to eliminate try-catch, improving readability and maintaining error handling through response checks. - Cleaned up useSSE by removing unnecessary try-catch around JSON parsing, ensuring clarity in message handling. - Enhanced useSettings by streamlining the saving process, removing try-catch, and directly checking the result for success. * refactor: add error handling back to SearchManager Chroma calls - Wrap queryChroma calls in try-catch to prevent generator crashes - Log Chroma errors as warnings and fall back gracefully - Fixes generator failures when Chroma has issues - Part of anti-pattern cleanup recovery * feat: Add generator failure investigation report and observation duplication regression report - Created a comprehensive investigation report detailing the root cause of generator failures during anti-pattern cleanup, including the impact, investigation process, and implemented fixes. - Documented the critical regression causing observation duplication due to race conditions in the SDK agent, outlining symptoms, root cause analysis, and proposed fixes. * fix: address PR #528 review comments - atomic cleanup and detector improvements This commit addresses critical review feedback from PR #528: ## 1. Atomic Message Cleanup (Fix Race Condition) **Problem**: SessionRoutes.ts generator error handler had race condition - Queried messages then marked failed in loop - If crash during loop → partial marking → inconsistent state **Solution**: - Added `markSessionMessagesFailed()` to PendingMessageStore.ts - Single atomic UPDATE statement replaces loop - Follows existing pattern from `resetProcessingToPending()` **Files**: - src/services/sqlite/PendingMessageStore.ts (new method) - src/services/worker/http/routes/SessionRoutes.ts (use new method) ## 2. Anti-Pattern Detector Improvements **Problem**: Detector didn't recognize logger.failure() method - Lines 212 & 335 already included "failure" - Lines 112-113 (PARTIAL_ERROR_LOGGING detection) did not **Solution**: Updated regex patterns to include "failure" for consistency **Files**: - scripts/anti-pattern-test/detect-error-handling-antipatterns.ts ## 3. Documentation **PR Comment**: Added clarification on memory_session_id fix location - Points to SessionStore.ts:1155 - Explains why NULL initialization prevents message injection bug ## Review Response Addresses "Must Address Before Merge" items from review: ✅ Clarified memory_session_id bug fix location (via PR comment) ✅ Made generator error handler message cleanup atomic ❌ Deferred comprehensive test suite to follow-up PR (keeps PR focused) ## Testing - Build passes with no errors - Anti-pattern detector runs successfully - Atomic cleanup follows proven pattern from existing methods 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 * fix: FOREIGN KEY constraint and missing failed_at_epoch column Two critical bugs fixed: 1. Missing failed_at_epoch column in pending_messages table - Added migration 20 to create the column - Fixes error when trying to mark messages as failed 2. FOREIGN KEY constraint failed when storing observations - All three agents (SDK, Gemini, OpenRouter) were passing session.contentSessionId instead of session.memorySessionId - storeObservationsAndMarkComplete expects memorySessionId - Added null check and clear error message However, observations still not saving - see investigation report. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 * Refactor hook input parsing to improve error handling - Added a nested try-catch block in new-hook.ts, save-hook.ts, and summary-hook.ts to handle JSON parsing errors more gracefully. - Replaced direct error throwing with logging of the error details using logger.error. - Ensured that the process exits cleanly after handling input in all three hooks. * docs: update monolith report post session-logging merge - SessionStore grew to 2,011 lines (49 methods) - highest priority - SearchManager reduced to 1,778 lines (improved) - Agent files reduced by ~45 lines combined - Added trend indicators and post-merge observations - Core refactoring proposal remains valid * refactor(sqlite): decompose SessionStore into modular architecture Extract the 2011-line SessionStore.ts monolith into focused, single-responsibility modules following grep-optimized progressive disclosure pattern: New module structure: - sessions/ - Session creation and retrieval (create.ts, get.ts, types.ts) - observations/ - Observation storage and queries (store.ts, get.ts, recent.ts, files.ts, types.ts) - summaries/ - Summary storage and queries (store.ts, get.ts, recent.ts, types.ts) - prompts/ - User prompt management (store.ts, get.ts, types.ts) - timeline/ - Cross-entity timeline queries (queries.ts) - import/ - Bulk import operations (bulk.ts) - migrations/ - Database migrations (runner.ts) New coordinator files: - Database.ts - ClaudeMemDatabase class with re-exports - transactions.ts - Atomic cross-entity transactions - Named re-export facades (Sessions.ts, Observations.ts, etc.) Key design decisions: - All functions take `db: Database` as first parameter (functional style) - Named re-exports instead of index.ts for grep-friendliness - SessionStore retained as backward-compatible wrapper - Target file size: 50-150 lines (60% compliance) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 * refactor(agents): extract shared logic into modular architecture Consolidate duplicate code across SDKAgent, GeminiAgent, and OpenRouterAgent into focused utility modules. Total reduction: 500 lines (29%). New modules in src/services/worker/agents/: - ResponseProcessor.ts: Atomic DB transactions, Chroma sync, SSE broadcast - ObservationBroadcaster.ts: SSE event formatting and dispatch - SessionCleanupHelper.ts: Session state cleanup and stuck message reset - FallbackErrorHandler.ts: Provider error detection for fallback logic - types.ts: Shared interfaces (WorkerRef, SSE payloads, StorageResult) Bug fix: SDKAgent was incorrectly using obs.files instead of obs.files_read and hardcoding files_modified to empty array. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 * refactor(search): extract search strategies into modular architecture Decompose SearchManager into focused strategy pattern with: - SearchOrchestrator: Coordinates strategy selection and fallback - ChromaSearchStrategy: Vector semantic search via ChromaDB - SQLiteSearchStrategy: Filter-only queries for date/project/type - HybridSearchStrategy: Metadata filtering + semantic ranking - ResultFormatter: Markdown table formatting for results - TimelineBuilder: Chronological timeline construction - Filter modules: DateFilter, ProjectFilter, TypeFilter SearchManager now delegates to new infrastructure while maintaining full backward compatibility with existing public API. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 * refactor(context): decompose context-generator into modular architecture Extract 660-line monolith into focused components: - ContextBuilder: Main orchestrator (~160 lines) - ContextConfigLoader: Configuration loading - TokenCalculator: Token budget calculations - ObservationCompiler: Data retrieval and query building - MarkdownFormatter/ColorFormatter: Output formatting - Section renderers: Header, Timeline, Summary, Footer Maintains full backward compatibility - context-generator.ts now delegates to new ContextBuilder while preserving public API. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 * refactor(worker): decompose worker-service into modular infrastructure Split 2000+ line monolith into focused modules: Infrastructure: - ProcessManager: PID files, signal handlers, child process cleanup - HealthMonitor: Port checks, health polling, version matching - GracefulShutdown: Coordinated cleanup on exit Server: - Server: Express app setup, core routes, route registration - Middleware: Re-exports from existing middleware - ErrorHandler: Centralized error handling with AppError class Integrations: - CursorHooksInstaller: Full Cursor IDE integration (registry, hooks, MCP) WorkerService now acts as thin coordinator wiring all components together. Maintains full backward compatibility with existing public API. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 * Refactor session queue processing and database interactions - Implement claim-and-delete pattern in SessionQueueProcessor to simplify message handling and eliminate duplicate processing. - Update PendingMessageStore to support atomic claim-and-delete operations, removing the need for intermediate processing states. - Introduce storeObservations method in SessionStore for simplified observation and summary storage without message tracking. - Remove deprecated methods and clean up session state management in worker agents. - Adjust response processing to accommodate new storage patterns, ensuring atomic transactions for observations and summaries. - Remove unnecessary reset logic for stuck messages due to the new queue handling approach. * Add duplicate observation cleanup script Script to clean up duplicate observations created by the batching bug where observations were stored once per message ID instead of once per observation. Includes safety checks to always keep at least one copy. Usage: bun scripts/cleanup-duplicates.ts # Dry run bun scripts/cleanup-duplicates.ts --execute # Delete duplicates bun scripts/cleanup-duplicates.ts --aggressive # Ignore time window 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --------- Co-authored-by: Claude --- MONOLITH_REFACTOR_REPORT.md | 306 ++++ plugin/scripts/context-generator.cjs | 138 +- plugin/scripts/mcp-server.cjs | 74 +- plugin/scripts/worker-service.cjs | 662 ++++--- scripts/cleanup-duplicates.ts | 243 +++ src/services/Context.ts | 8 + src/services/context-generator.ts | 669 +------ src/services/context/ContextBuilder.ts | 161 ++ src/services/context/ContextConfigLoader.ts | 57 + src/services/context/ObservationCompiler.ts | 202 +++ src/services/context/TokenCalculator.ts | 78 + .../context/formatters/ColorFormatter.ts | 223 +++ .../context/formatters/MarkdownFormatter.ts | 226 +++ src/services/context/index.ts | 18 + .../context/sections/FooterRenderer.ts | 42 + .../context/sections/HeaderRenderer.ts | 61 + .../context/sections/SummaryRenderer.ts | 65 + .../context/sections/TimelineRenderer.ts | 170 ++ src/services/context/types.ts | 131 ++ .../infrastructure/GracefulShutdown.ts | 115 ++ src/services/infrastructure/HealthMonitor.ts | 143 ++ src/services/infrastructure/ProcessManager.ts | 306 ++++ src/services/infrastructure/index.ts | 7 + .../integrations/CursorHooksInstaller.ts | 668 +++++++ src/services/integrations/index.ts | 6 + src/services/integrations/types.ts | 27 + src/services/queue/SessionQueueProcessor.ts | 13 +- src/services/server/ErrorHandler.ts | 102 ++ src/services/server/Middleware.ts | 14 + src/services/server/Server.ts | 271 +++ src/services/server/index.ts | 7 + src/services/sqlite/Database.ts | 61 +- src/services/sqlite/Import.ts | 5 + src/services/sqlite/Observations.ts | 10 + src/services/sqlite/PendingMessageStore.ts | 99 +- src/services/sqlite/Prompts.ts | 10 + src/services/sqlite/SessionStore.ts | 113 ++ src/services/sqlite/Sessions.ts | 11 + src/services/sqlite/Summaries.ts | 7 + src/services/sqlite/Timeline.ts | 8 + src/services/sqlite/import/bulk.ts | 236 +++ src/services/sqlite/index.ts | 20 +- src/services/sqlite/migrations.ts | 3 + src/services/sqlite/migrations/runner.ts | 631 +++++++ src/services/sqlite/observations/files.ts | 52 + src/services/sqlite/observations/get.ts | 112 ++ src/services/sqlite/observations/recent.ts | 43 + src/services/sqlite/observations/store.ts | 54 + src/services/sqlite/observations/types.ts | 81 + src/services/sqlite/prompts/get.ts | 168 ++ src/services/sqlite/prompts/store.ts | 28 + src/services/sqlite/prompts/types.ts | 40 + src/services/sqlite/sessions/create.ts | 62 + src/services/sqlite/sessions/get.ts | 106 ++ src/services/sqlite/sessions/types.ts | 58 + src/services/sqlite/summaries/get.ts | 86 + src/services/sqlite/summaries/recent.ts | 77 + src/services/sqlite/summaries/store.ts | 58 + src/services/sqlite/summaries/types.ts | 97 ++ src/services/sqlite/timeline/queries.ts | 218 +++ src/services/sqlite/transactions.ts | 236 +++ src/services/worker-service.ts | 1542 ++--------------- src/services/worker-types.ts | 1 - src/services/worker/GeminiAgent.ts | 264 +-- src/services/worker/OpenRouterAgent.ts | 268 +-- src/services/worker/SDKAgent.ts | 494 ++---- src/services/worker/Search.ts | 7 + src/services/worker/SearchManager.ts | 288 +-- src/services/worker/SessionManager.ts | 8 +- .../worker/agents/FallbackErrorHandler.ts | 73 + .../worker/agents/ObservationBroadcaster.ts | 54 + .../worker/agents/ResponseProcessor.ts | 270 +++ .../worker/agents/SessionCleanupHelper.ts | 36 + src/services/worker/agents/index.ts | 38 + src/services/worker/agents/types.ts | 133 ++ src/services/worker/search/ResultFormatter.ts | 302 ++++ .../worker/search/SearchOrchestrator.ts | 287 +++ src/services/worker/search/TimelineBuilder.ts | 302 ++++ .../worker/search/filters/DateFilter.ts | 101 ++ .../worker/search/filters/ProjectFilter.ts | 59 + .../worker/search/filters/TypeFilter.ts | 75 + src/services/worker/search/index.ts | 26 + .../search/strategies/ChromaSearchStrategy.ts | 213 +++ .../search/strategies/HybridSearchStrategy.ts | 270 +++ .../search/strategies/SQLiteSearchStrategy.ts | 131 ++ .../search/strategies/SearchStrategy.ts | 60 + src/services/worker/search/types.ts | 120 ++ 87 files changed, 9933 insertions(+), 3492 deletions(-) create mode 100644 MONOLITH_REFACTOR_REPORT.md create mode 100644 scripts/cleanup-duplicates.ts create mode 100644 src/services/Context.ts create mode 100644 src/services/context/ContextBuilder.ts create mode 100644 src/services/context/ContextConfigLoader.ts create mode 100644 src/services/context/ObservationCompiler.ts create mode 100644 src/services/context/TokenCalculator.ts create mode 100644 src/services/context/formatters/ColorFormatter.ts create mode 100644 src/services/context/formatters/MarkdownFormatter.ts create mode 100644 src/services/context/index.ts create mode 100644 src/services/context/sections/FooterRenderer.ts create mode 100644 src/services/context/sections/HeaderRenderer.ts create mode 100644 src/services/context/sections/SummaryRenderer.ts create mode 100644 src/services/context/sections/TimelineRenderer.ts create mode 100644 src/services/context/types.ts create mode 100644 src/services/infrastructure/GracefulShutdown.ts create mode 100644 src/services/infrastructure/HealthMonitor.ts create mode 100644 src/services/infrastructure/ProcessManager.ts create mode 100644 src/services/infrastructure/index.ts create mode 100644 src/services/integrations/CursorHooksInstaller.ts create mode 100644 src/services/integrations/index.ts create mode 100644 src/services/integrations/types.ts create mode 100644 src/services/server/ErrorHandler.ts create mode 100644 src/services/server/Middleware.ts create mode 100644 src/services/server/Server.ts create mode 100644 src/services/server/index.ts create mode 100644 src/services/sqlite/Import.ts create mode 100644 src/services/sqlite/Observations.ts create mode 100644 src/services/sqlite/Prompts.ts create mode 100644 src/services/sqlite/Sessions.ts create mode 100644 src/services/sqlite/Summaries.ts create mode 100644 src/services/sqlite/Timeline.ts create mode 100644 src/services/sqlite/import/bulk.ts create mode 100644 src/services/sqlite/migrations/runner.ts create mode 100644 src/services/sqlite/observations/files.ts create mode 100644 src/services/sqlite/observations/get.ts create mode 100644 src/services/sqlite/observations/recent.ts create mode 100644 src/services/sqlite/observations/store.ts create mode 100644 src/services/sqlite/observations/types.ts create mode 100644 src/services/sqlite/prompts/get.ts create mode 100644 src/services/sqlite/prompts/store.ts create mode 100644 src/services/sqlite/prompts/types.ts create mode 100644 src/services/sqlite/sessions/create.ts create mode 100644 src/services/sqlite/sessions/get.ts create mode 100644 src/services/sqlite/sessions/types.ts create mode 100644 src/services/sqlite/summaries/get.ts create mode 100644 src/services/sqlite/summaries/recent.ts create mode 100644 src/services/sqlite/summaries/store.ts create mode 100644 src/services/sqlite/summaries/types.ts create mode 100644 src/services/sqlite/timeline/queries.ts create mode 100644 src/services/sqlite/transactions.ts create mode 100644 src/services/worker/Search.ts create mode 100644 src/services/worker/agents/FallbackErrorHandler.ts create mode 100644 src/services/worker/agents/ObservationBroadcaster.ts create mode 100644 src/services/worker/agents/ResponseProcessor.ts create mode 100644 src/services/worker/agents/SessionCleanupHelper.ts create mode 100644 src/services/worker/agents/index.ts create mode 100644 src/services/worker/agents/types.ts create mode 100644 src/services/worker/search/ResultFormatter.ts create mode 100644 src/services/worker/search/SearchOrchestrator.ts create mode 100644 src/services/worker/search/TimelineBuilder.ts create mode 100644 src/services/worker/search/filters/DateFilter.ts create mode 100644 src/services/worker/search/filters/ProjectFilter.ts create mode 100644 src/services/worker/search/filters/TypeFilter.ts create mode 100644 src/services/worker/search/index.ts create mode 100644 src/services/worker/search/strategies/ChromaSearchStrategy.ts create mode 100644 src/services/worker/search/strategies/HybridSearchStrategy.ts create mode 100644 src/services/worker/search/strategies/SQLiteSearchStrategy.ts create mode 100644 src/services/worker/search/strategies/SearchStrategy.ts create mode 100644 src/services/worker/search/types.ts diff --git a/MONOLITH_REFACTOR_REPORT.md b/MONOLITH_REFACTOR_REPORT.md new file mode 100644 index 00000000..6471bd93 --- /dev/null +++ b/MONOLITH_REFACTOR_REPORT.md @@ -0,0 +1,306 @@ +# Monolith Refactor Report + +> **Last Updated:** 2026-01-03 (post session-logging merge) + +## Executive Summary + +The claude-mem codebase contains **~21,000 lines** of TypeScript across 71+ files. Analysis reveals several monolithic files that violate single-responsibility principles and create tight coupling. This report identifies refactoring targets and proposes a modular architecture. + +**Recent Changes:** The `session-logging` branch merge improved error handling across the codebase. SearchManager was reduced by ~180 lines, but SessionStore grew by ~110 lines due to new migrations and logging. + +--- + +## Part 1: Monolith Files Identified + +### Critical Priority (>1500 lines) + +| File | Lines | Methods | Primary Issues | Trend | +|------|-------|---------|----------------|-------| +| `src/services/worker-service.ts` | 2,034 | - | Server init, process management, Cursor hooks, MCP setup all mixed | ↓ -28 | +| `src/services/sqlite/SessionStore.ts` | 2,011 | 49 | Migrations + CRUD + queries + transformations all in one class | ↑ +108 | +| `src/services/worker/SearchManager.ts` | 1,778 | 17 | Three search strategies crammed together, formatting mixed in | ↓ -178 | + +### High Priority (500-1500 lines) + +| File | Lines | Issues | Trend | +|------|-------|--------|-------| +| `src/services/sync/ChromaSync.ts` | 870 | Sync and query operations mixed | — | +| `src/services/context-generator.ts` | 659 | 23 standalone functions, no class structure | — | +| `src/services/worker/http/routes/SessionRoutes.ts` | 625 | Provider selection mixed with business logic | ↑ +7 | +| `src/services/worker/OpenRouterAgent.ts` | 599 | 80% code duplicated from other agents | ↓ -15 | +| `src/services/worker/GeminiAgent.ts` | 574 | 80% code duplicated from other agents | ↓ -15 | +| `src/services/worker/SDKAgent.ts` | 546 | Base patterns duplicated across all agents | ↓ -15 | +| `src/services/sqlite/SessionSearch.ts` | 526 | FTS5 tables maintained for backward compat | — | +| `src/services/sqlite/migrations.ts` | 509 | All 11 migrations in single file | — | +| `src/services/sqlite/PendingMessageStore.ts` | 447 | Message queue operations | ↑ +21 | +| `src/services/worker/http/routes/SettingsRoutes.ts` | 414 | File I/O, validation, git ops mixed | — | + +### Code Duplication Issue + +The three agent files (`SDKAgent`, `GeminiAgent`, `OpenRouterAgent`) share ~80% duplicate code: +- Message building logic +- Result parsing +- Context updating +- Database sync patterns + +--- + +## Part 2: System Breakdown Proposal + +### Domain-Based Module Architecture + +``` +src/ +├── domains/ # Business domain modules +│ ├── sessions/ # Session lifecycle +│ │ ├── SessionRepository.ts +│ │ ├── SessionService.ts +│ │ └── types.ts +│ │ +│ ├── observations/ # Observation management +│ │ ├── ObservationRepository.ts +│ │ ├── ObservationService.ts +│ │ └── types.ts +│ │ +│ ├── summaries/ # Summary generation +│ │ ├── SummaryRepository.ts +│ │ ├── SummaryService.ts +│ │ └── types.ts +│ │ +│ ├── prompts/ # Prompt storage +│ │ ├── PromptRepository.ts +│ │ └── types.ts +│ │ +│ └── search/ # Search subsystem +│ ├── strategies/ +│ │ ├── ChromaSearchStrategy.ts +│ │ ├── FilterSearchStrategy.ts +│ │ └── SearchStrategy.ts (interface) +│ ├── SearchOrchestrator.ts +│ ├── ResultFormatter.ts +│ └── TimelineBuilder.ts +│ +├── infrastructure/ # Cross-cutting infrastructure +│ ├── database/ +│ │ ├── DatabaseConnection.ts +│ │ ├── TransactionManager.ts +│ │ └── migrations/ +│ │ ├── MigrationRunner.ts +│ │ ├── 001_initial.ts +│ │ ├── 002_add_prompts.ts +│ │ └── ... +│ │ +│ ├── vector/ +│ │ ├── ChromaClient.ts +│ │ ├── ChromaSyncManager.ts +│ │ └── ChromaQueryEngine.ts +│ │ +│ └── agents/ +│ ├── BaseAgent.ts # Shared agent logic +│ ├── AgentFactory.ts +│ ├── MessageBuilder.ts +│ ├── ResponseParser.ts +│ ├── providers/ +│ │ ├── ClaudeProvider.ts +│ │ ├── GeminiProvider.ts +│ │ └── OpenRouterProvider.ts +│ └── types.ts +│ +├── api/ # HTTP layer +│ ├── routes/ +│ │ ├── sessions.ts +│ │ ├── data.ts +│ │ ├── search.ts +│ │ ├── settings.ts +│ │ └── viewer.ts +│ ├── middleware/ +│ └── server.ts +│ +├── context/ # Context injection +│ ├── ContextBuilder.ts +│ ├── ContextConfigLoader.ts +│ ├── ObservationCompiler.ts +│ └── TokenCalculator.ts +│ +└── shared/ # Shared utilities (existing) + ├── logger.ts + ├── settings.ts + └── ... +``` + +--- + +## Part 3: Refactoring Targets by Priority + +### Phase 1: Database Layer Decomposition + +**Target:** `src/services/sqlite/SessionStore.ts` (2,011 lines, 49 methods → ~5 files) + +| Extract To | Responsibility | Est. Lines | +|------------|---------------|------------| +| `domains/sessions/SessionRepository.ts` | Session CRUD ops | ~300 | +| `domains/observations/ObservationRepository.ts` | Observation storage/retrieval | ~400 | +| `domains/summaries/SummaryRepository.ts` | Summary storage/retrieval | ~200 | +| `infrastructure/database/migrations/MigrationRunner.ts` | Schema migrations | ~250 | + +**Benefits:** +- Single responsibility per file +- Testable in isolation +- Reduces coupling + +--- + +### Phase 2: Agent Consolidation + +**Target:** 3 agent files (1,719 lines → ~800 lines total) + +| Extract To | Responsibility | +|------------|---------------| +| `infrastructure/agents/BaseAgent.ts` | Common agent logic, prompt building | +| `infrastructure/agents/MessageBuilder.ts` | Message construction | +| `infrastructure/agents/ResponseParser.ts` | Result parsing (observations, summaries) | +| `infrastructure/agents/providers/*.ts` | Provider-specific API calls only | + +**Benefits:** +- Eliminates 80% code duplication +- Easy to add new providers +- Centralized message format changes + +--- + +### Phase 3: Search Strategy Pattern + +**Target:** `src/services/worker/SearchManager.ts` (1,778 lines → ~5 files) + +| Extract To | Responsibility | +|------------|---------------| +| `domains/search/SearchOrchestrator.ts` | Coordinates search strategies | +| `domains/search/strategies/ChromaSearchStrategy.ts` | Vector search via Chroma | +| `domains/search/strategies/FilterSearchStrategy.ts` | SQLite filter-based search | +| `domains/search/ResultFormatter.ts` | Formats search results | +| `domains/search/TimelineBuilder.ts` | Constructs timeline views | + +**Benefits:** +- Strategy pattern for extensibility +- Clear fallback logic +- Testable strategies + +--- + +### Phase 4: Context Generator Restructure + +**Target:** `src/services/context-generator.ts` (659 lines → ~4 files) + +| Extract To | Responsibility | +|------------|---------------| +| `context/ContextBuilder.ts` | Main builder class | +| `context/ContextConfigLoader.ts` | Config loading/validation | +| `context/ObservationCompiler.ts` | Compiles observations for injection | +| `context/TokenCalculator.ts` | Token budget calculations | + +**Benefits:** +- Class-based structure +- Clear dependencies +- Easier testing + +--- + +### Phase 5: Server/Infrastructure Split + +**Target:** `src/services/worker-service.ts` (2,034 lines → ~4 files) + +| Extract To | Responsibility | +|------------|---------------| +| `api/server.ts` | Express app, route registration | +| `infrastructure/ProcessManager.ts` | PID files, signal handlers | +| `infrastructure/CursorHooksInstaller.ts` | Cursor integration | +| `infrastructure/MCPClientManager.ts` | MCP client lifecycle | + +--- + +## Part 4: Dependency Reduction Strategy + +### Current Pain Points + +1. **SessionStore** imported by 7+ files directly +2. No abstraction between routes and data access +3. All routes depend on `DatabaseManager` which exposes raw `SessionStore` + +### Proposed Dependency Injection + +```typescript +// infrastructure/container.ts +export interface ServiceContainer { + sessions: SessionService; + observations: ObservationService; + summaries: SummaryService; + search: SearchOrchestrator; + agents: AgentFactory; +} + +// Usage in routes +app.post('/sessions', (req, res) => { + const { sessions } = getContainer(); + sessions.create(req.body); +}); +``` + +--- + +## Part 5: Migration Strategy + +### Incremental Approach + +Each phase can be done independently without breaking the system: + +1. **Create new modules** alongside existing code +2. **Migrate routes one at a time** to use new modules +3. **Deprecate old code** once all routes migrated +4. **Remove deprecated code** after testing + +### Testing Requirements + +- Unit tests for each extracted module +- Integration tests for repository operations +- End-to-end tests for API routes + +--- + +## Appendix: File Size Distribution + +``` +2,034 src/services/worker-service.ts ████████████████████ +2,011 src/services/sqlite/SessionStore.ts ████████████████████ +1,778 src/services/worker/SearchManager.ts █████████████████ + 870 src/services/sync/ChromaSync.ts ████████ + 659 src/services/context-generator.ts ██████ + 625 src/services/worker/http/routes/SessionRoutes.ts ██████ + 599 src/services/worker/OpenRouterAgent.ts █████ + 574 src/services/worker/GeminiAgent.ts █████ + 546 src/services/worker/SDKAgent.ts █████ + 526 src/services/sqlite/SessionSearch.ts █████ + 509 src/services/sqlite/migrations.ts █████ + 466 src/services/worker/http/routes/DataRoutes.ts ████ + 447 src/services/sqlite/PendingMessageStore.ts ████ + 414 src/services/worker/http/routes/SettingsRoutes.ts ████ +``` + +--- + +## Summary + +| Metric | Current | After Refactor | +|--------|---------|----------------| +| Files >500 lines | 14 | 0-2 | +| Max file size | 2,034 | ~400 | +| Code duplication | ~1,100 lines | ~100 lines | +| Testable modules | Low | High | + +**Recommended Start:** Phase 1 (SessionStore decomposition) - highest impact, clearest boundaries, and **growing** (now 2,011 lines with 49 methods). + +### Key Observations Post-Merge + +1. **SessionStore is still the top priority** - it grew by 108 lines and is now the 2nd largest file +2. **SearchManager improved** - down 178 lines from error handling refactor +3. **Agent files slightly smaller** - ~45 lines combined reduction +4. **Core architecture unchanged** - the proposed modular structure remains valid diff --git a/plugin/scripts/context-generator.cjs b/plugin/scripts/context-generator.cjs index 2b630c7d..1595ff7a 100644 --- a/plugin/scripts/context-generator.cjs +++ b/plugin/scripts/context-generator.cjs @@ -1,18 +1,18 @@ -"use strict";var Ge=Object.create;var Q=Object.defineProperty;var We=Object.getOwnPropertyDescriptor;var He=Object.getOwnPropertyNames;var Ye=Object.getPrototypeOf,Ve=Object.prototype.hasOwnProperty;var Ke=(d,e)=>{for(var t in e)Q(d,t,{get:e[t],enumerable:!0})},fe=(d,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of He(e))!Ve.call(d,r)&&r!==t&&Q(d,r,{get:()=>e[r],enumerable:!(s=We(e,r))||s.enumerable});return d};var ae=(d,e,t)=>(t=d!=null?Ge(Ye(d)):{},fe(e||!d||!d.__esModule?Q(t,"default",{value:d,enumerable:!0}):t,d)),qe=d=>fe(Q({},"__esModule",{value:!0}),d);var ot={};Ke(ot,{generateContext:()=>it});module.exports=qe(ot);var se=ae(require("path"),1),re=require("os"),W=require("fs");var ve=require("bun:sqlite");var R=require("path"),Ne=require("os"),Ae=require("fs");var Ie=require("url");var G=require("fs"),Oe=require("path"),Re=require("os");var Se="bugfix,feature,refactor,discovery,decision,change",be="how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off";var B=require("fs"),z=require("path"),de=(i=>(i[i.DEBUG=0]="DEBUG",i[i.INFO=1]="INFO",i[i.WARN=2]="WARN",i[i.ERROR=3]="ERROR",i[i.SILENT=4]="SILENT",i))(de||{}),pe=class{level=null;useColor;logFilePath=null;constructor(){this.useColor=process.stdout.isTTY??!1,this.initializeLogFile()}initializeLogFile(){try{let e=y.get("CLAUDE_MEM_DATA_DIR"),t=(0,z.join)(e,"logs");(0,B.existsSync)(t)||(0,B.mkdirSync)(t,{recursive:!0});let s=new Date().toISOString().split("T")[0];this.logFilePath=(0,z.join)(t,`claude-mem-${s}.log`)}catch(e){console.error("[LOGGER] Failed to initialize log file:",e),this.logFilePath=null}}getLevel(){if(this.level===null)try{let e=y.get("CLAUDE_MEM_DATA_DIR"),t=(0,z.join)(e,"settings.json"),r=y.loadFromFile(t).CLAUDE_MEM_LOG_LEVEL.toUpperCase();this.level=de[r]??1}catch(e){console.error("[LOGGER] Failed to load settings, using INFO level:",e),this.level=1}return this.level}correlationId(e,t){return`obs-${e}-${t}`}sessionId(e){return`session-${e}`}formatData(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="object"){if(e instanceof Error)return this.getLevel()===0?`${e.message} -${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let t=Object.keys(e);return t.length===0?"{}":t.length<=3?JSON.stringify(e):`{${t.length} keys: ${t.slice(0,3).join(", ")}...}`}return String(e)}formatTool(e,t){if(!t)return e;let s=typeof t=="string"?JSON.parse(t):t;if(e==="Bash"&&s.command)return`${e}(${s.command})`;if(s.file_path)return`${e}(${s.file_path})`;if(s.notebook_path)return`${e}(${s.notebook_path})`;if(e==="Glob"&&s.pattern)return`${e}(${s.pattern})`;if(e==="Grep"&&s.pattern)return`${e}(${s.pattern})`;if(s.url)return`${e}(${s.url})`;if(s.query)return`${e}(${s.query})`;if(e==="Task"){if(s.subagent_type)return`${e}(${s.subagent_type})`;if(s.description)return`${e}(${s.description})`}return e==="Skill"&&s.skill?`${e}(${s.skill})`:e==="LSP"&&s.operation?`${e}(${s.operation})`:e}formatTimestamp(e){let t=e.getFullYear(),s=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0"),i=String(e.getHours()).padStart(2,"0"),a=String(e.getMinutes()).padStart(2,"0"),p=String(e.getSeconds()).padStart(2,"0"),c=String(e.getMilliseconds()).padStart(3,"0");return`${t}-${s}-${r} ${i}:${a}:${p}.${c}`}log(e,t,s,r,i){if(e0&&(h=` {${Object.entries(n).map(([E,O])=>`${E}=${O}`).join(", ")}}`)}let N=`[${a}] [${p}] [${c}] ${l}${s}${h}${u}`;if(this.logFilePath)try{(0,B.appendFileSync)(this.logFilePath,N+` -`,"utf8")}catch(f){process.stderr.write(`[LOGGER] Failed to write to log file: ${f} -`)}else process.stderr.write(N+` -`)}debug(e,t,s,r){this.log(0,e,t,s,r)}info(e,t,s,r){this.log(1,e,t,s,r)}warn(e,t,s,r){this.log(2,e,t,s,r)}error(e,t,s,r){this.log(3,e,t,s,r)}dataIn(e,t,s,r){this.info(e,`\u2192 ${t}`,s,r)}dataOut(e,t,s,r){this.info(e,`\u2190 ${t}`,s,r)}success(e,t,s,r){this.info(e,`\u2713 ${t}`,s,r)}failure(e,t,s,r){this.error(e,`\u2717 ${t}`,s,r)}timing(e,t,s,r){this.info(e,`\u23F1 ${t}`,r,{duration:`${s}ms`})}happyPathError(e,t,s,r,i=""){let l=((new Error().stack||"").split(` -`)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),u=l?`${l[1].split("/").pop()}:${l[2]}`:"unknown",h={...s,location:u};return this.warn(e,`[HAPPY-PATH] ${t}`,h,r),i}},_=new pe;var y=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_PROVIDER:"claude",CLAUDE_MEM_GEMINI_API_KEY:"",CLAUDE_MEM_GEMINI_MODEL:"gemini-2.5-flash-lite",CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED:"true",CLAUDE_MEM_OPENROUTER_API_KEY:"",CLAUDE_MEM_OPENROUTER_MODEL:"xiaomi/mimo-v2-flash:free",CLAUDE_MEM_OPENROUTER_SITE_URL:"",CLAUDE_MEM_OPENROUTER_APP_NAME:"claude-mem",CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES:"20",CLAUDE_MEM_OPENROUTER_MAX_TOKENS:"100000",CLAUDE_MEM_DATA_DIR:(0,Oe.join)((0,Re.homedir)(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_MODE:"code",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:Se,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:be,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return this.DEFAULTS[e]}static getInt(e){let t=this.get(e);return parseInt(t,10)}static getBool(e){return this.get(e)==="true"}static loadFromFile(e){try{if(!(0,G.existsSync)(e))return this.getAllDefaults();let t=(0,G.readFileSync)(e,"utf-8"),s=JSON.parse(t),r=s;if(s.env&&typeof s.env=="object"){r=s.env;try{(0,G.writeFileSync)(e,JSON.stringify(r,null,2),"utf-8"),_.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:e})}catch(a){_.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:e},a)}}let i={...this.DEFAULTS};for(let a of Object.keys(this.DEFAULTS))r[a]!==void 0&&(i[a]=r[a]);return i}catch(t){return _.warn("SETTINGS","Failed to load settings, using defaults",{settingsPath:e},t),this.getAllDefaults()}}};var ze={};function Je(){return typeof __dirname<"u"?__dirname:(0,R.dirname)((0,Ie.fileURLToPath)(ze.url))}var Qe=Je(),C=y.get("CLAUDE_MEM_DATA_DIR"),ce=process.env.CLAUDE_CONFIG_DIR||(0,R.join)((0,Ne.homedir)(),".claude"),St=(0,R.join)(C,"archives"),bt=(0,R.join)(C,"logs"),Ot=(0,R.join)(C,"trash"),Rt=(0,R.join)(C,"backups"),Nt=(0,R.join)(C,"modes"),At=(0,R.join)(C,"settings.json"),Le=(0,R.join)(C,"claude-mem.db"),It=(0,R.join)(C,"vector-db"),Lt=(0,R.join)(ce,"settings.json"),yt=(0,R.join)(ce,"commands"),Ct=(0,R.join)(ce,"CLAUDE.md");function ye(d){(0,Ae.mkdirSync)(d,{recursive:!0})}function Ce(){return(0,R.join)(Qe,"..")}var Z=class{db;constructor(e=Le){e!==":memory:"&&ye(C),this.db=new ve.Database(e),this.db.run("PRAGMA journal_mode = WAL"),this.db.run("PRAGMA synchronous = NORMAL"),this.db.run("PRAGMA foreign_keys = ON"),this.initializeSchema(),this.ensureWorkerPortColumn(),this.ensurePromptTrackingColumns(),this.removeSessionSummariesUniqueConstraint(),this.addObservationHierarchicalFields(),this.makeObservationsTextNullable(),this.createUserPromptsTable(),this.ensureDiscoveryTokensColumn(),this.createPendingMessagesTable(),this.renameSessionIdColumns(),this.repairSessionIdColumnRename(),this.addFailedAtEpochColumn()}initializeSchema(){this.db.run(` +"use strict";var at=Object.create;var x=Object.defineProperty;var dt=Object.getOwnPropertyDescriptor;var pt=Object.getOwnPropertyNames;var ct=Object.getPrototypeOf,mt=Object.prototype.hasOwnProperty;var ut=(r,e)=>{for(var t in e)x(r,t,{get:e[t],enumerable:!0})},ee=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of pt(e))!mt.call(r,n)&&n!==t&&x(r,n,{get:()=>e[n],enumerable:!(s=dt(e,n))||s.enumerable});return r};var v=(r,e,t)=>(t=r!=null?at(ct(r)):{},ee(e||!r||!r.__esModule?x(t,"default",{value:r,enumerable:!0}):t,r)),lt=r=>ee(x({},"__esModule",{value:!0}),r);var At={};ut(At,{generateContext:()=>Z});module.exports=lt(At);var nt=v(require("path"),1),ot=require("os"),it=require("fs");var me=require("bun:sqlite");var h=require("path"),oe=require("os"),ie=require("fs");var ae=require("url");var y=require("fs"),re=require("path"),ne=require("os");var te="bugfix,feature,refactor,discovery,decision,change",se="how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off";var N=require("fs"),k=require("path"),X=(o=>(o[o.DEBUG=0]="DEBUG",o[o.INFO=1]="INFO",o[o.WARN=2]="WARN",o[o.ERROR=3]="ERROR",o[o.SILENT=4]="SILENT",o))(X||{}),B=class{level=null;useColor;logFilePath=null;constructor(){this.useColor=process.stdout.isTTY??!1,this.initializeLogFile()}initializeLogFile(){try{let e=C.get("CLAUDE_MEM_DATA_DIR"),t=(0,k.join)(e,"logs");(0,N.existsSync)(t)||(0,N.mkdirSync)(t,{recursive:!0});let s=new Date().toISOString().split("T")[0];this.logFilePath=(0,k.join)(t,`claude-mem-${s}.log`)}catch(e){console.error("[LOGGER] Failed to initialize log file:",e),this.logFilePath=null}}getLevel(){if(this.level===null)try{let e=C.get("CLAUDE_MEM_DATA_DIR"),t=(0,k.join)(e,"settings.json"),n=C.loadFromFile(t).CLAUDE_MEM_LOG_LEVEL.toUpperCase();this.level=X[n]??1}catch(e){console.error("[LOGGER] Failed to load settings, using INFO level:",e),this.level=1}return this.level}correlationId(e,t){return`obs-${e}-${t}`}sessionId(e){return`session-${e}`}formatData(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="object"){if(e instanceof Error)return this.getLevel()===0?`${e.message} +${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let t=Object.keys(e);return t.length===0?"{}":t.length<=3?JSON.stringify(e):`{${t.length} keys: ${t.slice(0,3).join(", ")}...}`}return String(e)}formatTool(e,t){if(!t)return e;let s=typeof t=="string"?JSON.parse(t):t;if(e==="Bash"&&s.command)return`${e}(${s.command})`;if(s.file_path)return`${e}(${s.file_path})`;if(s.notebook_path)return`${e}(${s.notebook_path})`;if(e==="Glob"&&s.pattern)return`${e}(${s.pattern})`;if(e==="Grep"&&s.pattern)return`${e}(${s.pattern})`;if(s.url)return`${e}(${s.url})`;if(s.query)return`${e}(${s.query})`;if(e==="Task"){if(s.subagent_type)return`${e}(${s.subagent_type})`;if(s.description)return`${e}(${s.description})`}return e==="Skill"&&s.skill?`${e}(${s.skill})`:e==="LSP"&&s.operation?`${e}(${s.operation})`:e}formatTimestamp(e){let t=e.getFullYear(),s=String(e.getMonth()+1).padStart(2,"0"),n=String(e.getDate()).padStart(2,"0"),o=String(e.getHours()).padStart(2,"0"),i=String(e.getMinutes()).padStart(2,"0"),a=String(e.getSeconds()).padStart(2,"0"),d=String(e.getMilliseconds()).padStart(3,"0");return`${t}-${s}-${n} ${o}:${i}:${a}.${d}`}log(e,t,s,n,o){if(e0&&(l=` {${Object.entries(_).map(([f,R])=>`${f}=${R}`).join(", ")}}`)}let g=`[${i}] [${a}] [${d}] ${c}${s}${l}${u}`;if(this.logFilePath)try{(0,N.appendFileSync)(this.logFilePath,g+` +`,"utf8")}catch(E){process.stderr.write(`[LOGGER] Failed to write to log file: ${E} +`)}else process.stderr.write(g+` +`)}debug(e,t,s,n){this.log(0,e,t,s,n)}info(e,t,s,n){this.log(1,e,t,s,n)}warn(e,t,s,n){this.log(2,e,t,s,n)}error(e,t,s,n){this.log(3,e,t,s,n)}dataIn(e,t,s,n){this.info(e,`\u2192 ${t}`,s,n)}dataOut(e,t,s,n){this.info(e,`\u2190 ${t}`,s,n)}success(e,t,s,n){this.info(e,`\u2713 ${t}`,s,n)}failure(e,t,s,n){this.error(e,`\u2717 ${t}`,s,n)}timing(e,t,s,n){this.info(e,`\u23F1 ${t}`,n,{duration:`${s}ms`})}happyPathError(e,t,s,n,o=""){let c=((new Error().stack||"").split(` +`)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),u=c?`${c[1].split("/").pop()}:${c[2]}`:"unknown",l={...s,location:u};return this.warn(e,`[HAPPY-PATH] ${t}`,l,n),o}},m=new B;var C=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_PROVIDER:"claude",CLAUDE_MEM_GEMINI_API_KEY:"",CLAUDE_MEM_GEMINI_MODEL:"gemini-2.5-flash-lite",CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED:"true",CLAUDE_MEM_OPENROUTER_API_KEY:"",CLAUDE_MEM_OPENROUTER_MODEL:"xiaomi/mimo-v2-flash:free",CLAUDE_MEM_OPENROUTER_SITE_URL:"",CLAUDE_MEM_OPENROUTER_APP_NAME:"claude-mem",CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES:"20",CLAUDE_MEM_OPENROUTER_MAX_TOKENS:"100000",CLAUDE_MEM_DATA_DIR:(0,re.join)((0,ne.homedir)(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_MODE:"code",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:te,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:se,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return this.DEFAULTS[e]}static getInt(e){let t=this.get(e);return parseInt(t,10)}static getBool(e){return this.get(e)==="true"}static loadFromFile(e){try{if(!(0,y.existsSync)(e))return this.getAllDefaults();let t=(0,y.readFileSync)(e,"utf-8"),s=JSON.parse(t),n=s;if(s.env&&typeof s.env=="object"){n=s.env;try{(0,y.writeFileSync)(e,JSON.stringify(n,null,2),"utf-8"),m.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:e})}catch(i){m.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:e},i)}}let o={...this.DEFAULTS};for(let i of Object.keys(this.DEFAULTS))n[i]!==void 0&&(o[i]=n[i]);return o}catch(t){return m.warn("SETTINGS","Failed to load settings, using defaults",{settingsPath:e},t),this.getAllDefaults()}}};var gt={};function _t(){return typeof __dirname<"u"?__dirname:(0,h.dirname)((0,ae.fileURLToPath)(gt.url))}var Et=_t(),I=C.get("CLAUDE_MEM_DATA_DIR"),G=process.env.CLAUDE_CONFIG_DIR||(0,h.join)((0,oe.homedir)(),".claude"),jt=(0,h.join)(I,"archives"),Xt=(0,h.join)(I,"logs"),Bt=(0,h.join)(I,"trash"),Gt=(0,h.join)(I,"backups"),Ht=(0,h.join)(I,"modes"),Wt=(0,h.join)(I,"settings.json"),de=(0,h.join)(I,"claude-mem.db"),Yt=(0,h.join)(I,"vector-db"),Vt=(0,h.join)(G,"settings.json"),qt=(0,h.join)(G,"commands"),Kt=(0,h.join)(G,"CLAUDE.md");function pe(r){(0,ie.mkdirSync)(r,{recursive:!0})}function ce(){return(0,h.join)(Et,"..")}var U=class{db;constructor(e=de){e!==":memory:"&&pe(I),this.db=new me.Database(e),this.db.run("PRAGMA journal_mode = WAL"),this.db.run("PRAGMA synchronous = NORMAL"),this.db.run("PRAGMA foreign_keys = ON"),this.initializeSchema(),this.ensureWorkerPortColumn(),this.ensurePromptTrackingColumns(),this.removeSessionSummariesUniqueConstraint(),this.addObservationHierarchicalFields(),this.makeObservationsTextNullable(),this.createUserPromptsTable(),this.ensureDiscoveryTokensColumn(),this.createPendingMessagesTable(),this.renameSessionIdColumns(),this.repairSessionIdColumnRename(),this.addFailedAtEpochColumn()}initializeSchema(){this.db.run(` CREATE TABLE IF NOT EXISTS schema_versions ( id INTEGER PRIMARY KEY, version INTEGER UNIQUE NOT NULL, applied_at TEXT NOT NULL ) - `);let e=this.db.prepare("SELECT version FROM schema_versions ORDER BY version").all();(e.length>0?Math.max(...e.map(s=>s.version)):0)===0&&(_.info("DB","Initializing fresh database with migration004"),this.db.run(` + `);let e=this.db.prepare("SELECT version FROM schema_versions ORDER BY version").all();(e.length>0?Math.max(...e.map(s=>s.version)):0)===0&&(m.info("DB","Initializing fresh database with migration004"),this.db.run(` CREATE TABLE IF NOT EXISTS sdk_sessions ( id INTEGER PRIMARY KEY AUTOINCREMENT, content_session_id TEXT UNIQUE NOT NULL, @@ -68,7 +68,7 @@ ${i.stack}`:` ${i.message}`:this.getLevel()===0&&typeof i=="object"?u=` CREATE INDEX IF NOT EXISTS idx_session_summaries_sdk_session ON session_summaries(memory_session_id); CREATE INDEX IF NOT EXISTS idx_session_summaries_project ON session_summaries(project); CREATE INDEX IF NOT EXISTS idx_session_summaries_created ON session_summaries(created_at_epoch DESC); - `),this.db.prepare("INSERT INTO schema_versions (version, applied_at) VALUES (?, ?)").run(4,new Date().toISOString()),_.info("DB","Migration004 applied successfully"))}ensureWorkerPortColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(5))return;this.db.query("PRAGMA table_info(sdk_sessions)").all().some(r=>r.name==="worker_port")||(this.db.run("ALTER TABLE sdk_sessions ADD COLUMN worker_port INTEGER"),_.info("DB","Added worker_port column to sdk_sessions table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(5,new Date().toISOString())}ensurePromptTrackingColumns(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(6))return;this.db.query("PRAGMA table_info(sdk_sessions)").all().some(c=>c.name==="prompt_counter")||(this.db.run("ALTER TABLE sdk_sessions ADD COLUMN prompt_counter INTEGER DEFAULT 0"),_.info("DB","Added prompt_counter column to sdk_sessions table")),this.db.query("PRAGMA table_info(observations)").all().some(c=>c.name==="prompt_number")||(this.db.run("ALTER TABLE observations ADD COLUMN prompt_number INTEGER"),_.info("DB","Added prompt_number column to observations table")),this.db.query("PRAGMA table_info(session_summaries)").all().some(c=>c.name==="prompt_number")||(this.db.run("ALTER TABLE session_summaries ADD COLUMN prompt_number INTEGER"),_.info("DB","Added prompt_number column to session_summaries table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(6,new Date().toISOString())}removeSessionSummariesUniqueConstraint(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(7))return;if(!this.db.query("PRAGMA index_list(session_summaries)").all().some(r=>r.unique===1)){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(7,new Date().toISOString());return}_.info("DB","Removing UNIQUE constraint from session_summaries.memory_session_id"),this.db.run("BEGIN TRANSACTION"),this.db.run(` + `),this.db.prepare("INSERT INTO schema_versions (version, applied_at) VALUES (?, ?)").run(4,new Date().toISOString()),m.info("DB","Migration004 applied successfully"))}ensureWorkerPortColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(5))return;this.db.query("PRAGMA table_info(sdk_sessions)").all().some(n=>n.name==="worker_port")||(this.db.run("ALTER TABLE sdk_sessions ADD COLUMN worker_port INTEGER"),m.info("DB","Added worker_port column to sdk_sessions table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(5,new Date().toISOString())}ensurePromptTrackingColumns(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(6))return;this.db.query("PRAGMA table_info(sdk_sessions)").all().some(d=>d.name==="prompt_counter")||(this.db.run("ALTER TABLE sdk_sessions ADD COLUMN prompt_counter INTEGER DEFAULT 0"),m.info("DB","Added prompt_counter column to sdk_sessions table")),this.db.query("PRAGMA table_info(observations)").all().some(d=>d.name==="prompt_number")||(this.db.run("ALTER TABLE observations ADD COLUMN prompt_number INTEGER"),m.info("DB","Added prompt_number column to observations table")),this.db.query("PRAGMA table_info(session_summaries)").all().some(d=>d.name==="prompt_number")||(this.db.run("ALTER TABLE session_summaries ADD COLUMN prompt_number INTEGER"),m.info("DB","Added prompt_number column to session_summaries table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(6,new Date().toISOString())}removeSessionSummariesUniqueConstraint(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(7))return;if(!this.db.query("PRAGMA index_list(session_summaries)").all().some(n=>n.unique===1)){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(7,new Date().toISOString());return}m.info("DB","Removing UNIQUE constraint from session_summaries.memory_session_id"),this.db.run("BEGIN TRANSACTION"),this.db.run(` CREATE TABLE session_summaries_new ( id INTEGER PRIMARY KEY AUTOINCREMENT, memory_session_id TEXT NOT NULL, @@ -96,7 +96,7 @@ ${i.stack}`:` ${i.message}`:this.getLevel()===0&&typeof i=="object"?u=` CREATE INDEX idx_session_summaries_sdk_session ON session_summaries(memory_session_id); CREATE INDEX idx_session_summaries_project ON session_summaries(project); CREATE INDEX idx_session_summaries_created ON session_summaries(created_at_epoch DESC); - `),this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(7,new Date().toISOString()),_.info("DB","Successfully removed UNIQUE constraint from session_summaries.memory_session_id")}addObservationHierarchicalFields(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(8))return;if(this.db.query("PRAGMA table_info(observations)").all().some(r=>r.name==="title")){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(8,new Date().toISOString());return}_.info("DB","Adding hierarchical fields to observations table"),this.db.run(` + `),this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(7,new Date().toISOString()),m.info("DB","Successfully removed UNIQUE constraint from session_summaries.memory_session_id")}addObservationHierarchicalFields(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(8))return;if(this.db.query("PRAGMA table_info(observations)").all().some(n=>n.name==="title")){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(8,new Date().toISOString());return}m.info("DB","Adding hierarchical fields to observations table"),this.db.run(` ALTER TABLE observations ADD COLUMN title TEXT; ALTER TABLE observations ADD COLUMN subtitle TEXT; ALTER TABLE observations ADD COLUMN facts TEXT; @@ -104,7 +104,7 @@ ${i.stack}`:` ${i.message}`:this.getLevel()===0&&typeof i=="object"?u=` ALTER TABLE observations ADD COLUMN concepts TEXT; ALTER TABLE observations ADD COLUMN files_read TEXT; ALTER TABLE observations ADD COLUMN files_modified TEXT; - `),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(8,new Date().toISOString()),_.info("DB","Successfully added hierarchical fields to observations table")}makeObservationsTextNullable(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(9))return;let s=this.db.query("PRAGMA table_info(observations)").all().find(r=>r.name==="text");if(!s||s.notnull===0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(9,new Date().toISOString());return}_.info("DB","Making observations.text nullable"),this.db.run("BEGIN TRANSACTION"),this.db.run(` + `),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(8,new Date().toISOString()),m.info("DB","Successfully added hierarchical fields to observations table")}makeObservationsTextNullable(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(9))return;let s=this.db.query("PRAGMA table_info(observations)").all().find(n=>n.name==="text");if(!s||s.notnull===0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(9,new Date().toISOString());return}m.info("DB","Making observations.text nullable"),this.db.run("BEGIN TRANSACTION"),this.db.run(` CREATE TABLE observations_new ( id INTEGER PRIMARY KEY AUTOINCREMENT, memory_session_id TEXT NOT NULL, @@ -134,7 +134,7 @@ ${i.stack}`:` ${i.message}`:this.getLevel()===0&&typeof i=="object"?u=` CREATE INDEX idx_observations_project ON observations(project); CREATE INDEX idx_observations_type ON observations(type); CREATE INDEX idx_observations_created ON observations(created_at_epoch DESC); - `),this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(9,new Date().toISOString()),_.info("DB","Successfully made observations.text nullable")}createUserPromptsTable(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(10))return;if(this.db.query("PRAGMA table_info(user_prompts)").all().length>0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(10,new Date().toISOString());return}_.info("DB","Creating user_prompts table with FTS5 support"),this.db.run("BEGIN TRANSACTION"),this.db.run(` + `),this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(9,new Date().toISOString()),m.info("DB","Successfully made observations.text nullable")}createUserPromptsTable(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(10))return;if(this.db.query("PRAGMA table_info(user_prompts)").all().length>0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(10,new Date().toISOString());return}m.info("DB","Creating user_prompts table with FTS5 support"),this.db.run("BEGIN TRANSACTION"),this.db.run(` CREATE TABLE user_prompts ( id INTEGER PRIMARY KEY AUTOINCREMENT, content_session_id TEXT NOT NULL, @@ -172,7 +172,7 @@ ${i.stack}`:` ${i.message}`:this.getLevel()===0&&typeof i=="object"?u=` INSERT INTO user_prompts_fts(rowid, prompt_text) VALUES (new.id, new.prompt_text); END; - `),this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(10,new Date().toISOString()),_.info("DB","Successfully created user_prompts table with FTS5 support")}ensureDiscoveryTokensColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(11))return;this.db.query("PRAGMA table_info(observations)").all().some(a=>a.name==="discovery_tokens")||(this.db.run("ALTER TABLE observations ADD COLUMN discovery_tokens INTEGER DEFAULT 0"),_.info("DB","Added discovery_tokens column to observations table")),this.db.query("PRAGMA table_info(session_summaries)").all().some(a=>a.name==="discovery_tokens")||(this.db.run("ALTER TABLE session_summaries ADD COLUMN discovery_tokens INTEGER DEFAULT 0"),_.info("DB","Added discovery_tokens column to session_summaries table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(11,new Date().toISOString())}createPendingMessagesTable(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(16))return;if(this.db.query("SELECT name FROM sqlite_master WHERE type='table' AND name='pending_messages'").all().length>0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(16,new Date().toISOString());return}_.info("DB","Creating pending_messages table"),this.db.run(` + `),this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(10,new Date().toISOString()),m.info("DB","Successfully created user_prompts table with FTS5 support")}ensureDiscoveryTokensColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(11))return;this.db.query("PRAGMA table_info(observations)").all().some(i=>i.name==="discovery_tokens")||(this.db.run("ALTER TABLE observations ADD COLUMN discovery_tokens INTEGER DEFAULT 0"),m.info("DB","Added discovery_tokens column to observations table")),this.db.query("PRAGMA table_info(session_summaries)").all().some(i=>i.name==="discovery_tokens")||(this.db.run("ALTER TABLE session_summaries ADD COLUMN discovery_tokens INTEGER DEFAULT 0"),m.info("DB","Added discovery_tokens column to session_summaries table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(11,new Date().toISOString())}createPendingMessagesTable(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(16))return;if(this.db.query("SELECT name FROM sqlite_master WHERE type='table' AND name='pending_messages'").all().length>0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(16,new Date().toISOString());return}m.info("DB","Creating pending_messages table"),this.db.run(` CREATE TABLE pending_messages ( id INTEGER PRIMARY KEY AUTOINCREMENT, session_db_id INTEGER NOT NULL, @@ -192,7 +192,7 @@ ${i.stack}`:` ${i.message}`:this.getLevel()===0&&typeof i=="object"?u=` completed_at_epoch INTEGER, FOREIGN KEY (session_db_id) REFERENCES sdk_sessions(id) ON DELETE CASCADE ) - `),this.db.run("CREATE INDEX IF NOT EXISTS idx_pending_messages_session ON pending_messages(session_db_id)"),this.db.run("CREATE INDEX IF NOT EXISTS idx_pending_messages_status ON pending_messages(status)"),this.db.run("CREATE INDEX IF NOT EXISTS idx_pending_messages_claude_session ON pending_messages(content_session_id)"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(16,new Date().toISOString()),_.info("DB","pending_messages table created successfully")}renameSessionIdColumns(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(17))return;_.info("DB","Checking session ID columns for semantic clarity rename");let t=0,s=(r,i,a)=>{let p=this.db.query(`PRAGMA table_info(${r})`).all(),c=p.some(u=>u.name===i);return p.some(u=>u.name===a)?!1:c?(this.db.run(`ALTER TABLE ${r} RENAME COLUMN ${i} TO ${a}`),_.info("DB",`Renamed ${r}.${i} to ${a}`),!0):(_.warn("DB",`Column ${i} not found in ${r}, skipping rename`),!1)};s("sdk_sessions","claude_session_id","content_session_id")&&t++,s("sdk_sessions","sdk_session_id","memory_session_id")&&t++,s("pending_messages","claude_session_id","content_session_id")&&t++,s("observations","sdk_session_id","memory_session_id")&&t++,s("session_summaries","sdk_session_id","memory_session_id")&&t++,s("user_prompts","claude_session_id","content_session_id")&&t++,this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(17,new Date().toISOString()),t>0?_.info("DB",`Successfully renamed ${t} session ID columns`):_.info("DB","No session ID column renames needed (already up to date)")}repairSessionIdColumnRename(){this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(19)||this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(19,new Date().toISOString())}addFailedAtEpochColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(20))return;this.db.query("PRAGMA table_info(pending_messages)").all().some(r=>r.name==="failed_at_epoch")||(this.db.run("ALTER TABLE pending_messages ADD COLUMN failed_at_epoch INTEGER"),_.info("DB","Added failed_at_epoch column to pending_messages table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(20,new Date().toISOString())}updateMemorySessionId(e,t){this.db.prepare(` + `),this.db.run("CREATE INDEX IF NOT EXISTS idx_pending_messages_session ON pending_messages(session_db_id)"),this.db.run("CREATE INDEX IF NOT EXISTS idx_pending_messages_status ON pending_messages(status)"),this.db.run("CREATE INDEX IF NOT EXISTS idx_pending_messages_claude_session ON pending_messages(content_session_id)"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(16,new Date().toISOString()),m.info("DB","pending_messages table created successfully")}renameSessionIdColumns(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(17))return;m.info("DB","Checking session ID columns for semantic clarity rename");let t=0,s=(n,o,i)=>{let a=this.db.query(`PRAGMA table_info(${n})`).all(),d=a.some(u=>u.name===o);return a.some(u=>u.name===i)?!1:d?(this.db.run(`ALTER TABLE ${n} RENAME COLUMN ${o} TO ${i}`),m.info("DB",`Renamed ${n}.${o} to ${i}`),!0):(m.warn("DB",`Column ${o} not found in ${n}, skipping rename`),!1)};s("sdk_sessions","claude_session_id","content_session_id")&&t++,s("sdk_sessions","sdk_session_id","memory_session_id")&&t++,s("pending_messages","claude_session_id","content_session_id")&&t++,s("observations","sdk_session_id","memory_session_id")&&t++,s("session_summaries","sdk_session_id","memory_session_id")&&t++,s("user_prompts","claude_session_id","content_session_id")&&t++,this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(17,new Date().toISOString()),t>0?m.info("DB",`Successfully renamed ${t} session ID columns`):m.info("DB","No session ID column renames needed (already up to date)")}repairSessionIdColumnRename(){this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(19)||this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(19,new Date().toISOString())}addFailedAtEpochColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(20))return;this.db.query("PRAGMA table_info(pending_messages)").all().some(n=>n.name==="failed_at_epoch")||(this.db.run("ALTER TABLE pending_messages ADD COLUMN failed_at_epoch INTEGER"),m.info("DB","Added failed_at_epoch column to pending_messages table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(20,new Date().toISOString())}updateMemorySessionId(e,t){this.db.prepare(` UPDATE sdk_sessions SET memory_session_id = ? WHERE id = ? @@ -284,13 +284,13 @@ ${i.stack}`:` ${i.message}`:this.getLevel()===0&&typeof i=="object"?u=` SELECT * FROM observations WHERE id = ? - `).get(e)||null}getObservationsByIds(e,t={}){if(e.length===0)return[];let{orderBy:s="date_desc",limit:r,project:i,type:a,concepts:p,files:c}=t,l=s==="date_asc"?"ASC":"DESC",u=r?`LIMIT ${r}`:"",h=e.map(()=>"?").join(","),N=[...e],f=[];if(i&&(f.push("project = ?"),N.push(i)),a)if(Array.isArray(a)){let n=a.map(()=>"?").join(",");f.push(`type IN (${n})`),N.push(...a)}else f.push("type = ?"),N.push(a);if(p){let n=Array.isArray(p)?p:[p],g=n.map(()=>"EXISTS (SELECT 1 FROM json_each(concepts) WHERE value = ?)");N.push(...n),f.push(`(${g.join(" OR ")})`)}if(c){let n=Array.isArray(c)?c:[c],g=n.map(()=>"(EXISTS (SELECT 1 FROM json_each(files_read) WHERE value LIKE ?) OR EXISTS (SELECT 1 FROM json_each(files_modified) WHERE value LIKE ?))");n.forEach(E=>{N.push(`%${E}%`,`%${E}%`)}),f.push(`(${g.join(" OR ")})`)}let D=f.length>0?`WHERE id IN (${h}) AND ${f.join(" AND ")}`:`WHERE id IN (${h})`;return this.db.prepare(` + `).get(e)||null}getObservationsByIds(e,t={}){if(e.length===0)return[];let{orderBy:s="date_desc",limit:n,project:o,type:i,concepts:a,files:d}=t,c=s==="date_asc"?"ASC":"DESC",u=n?`LIMIT ${n}`:"",l=e.map(()=>"?").join(","),g=[...e],E=[];if(o&&(E.push("project = ?"),g.push(o)),i)if(Array.isArray(i)){let _=i.map(()=>"?").join(",");E.push(`type IN (${_})`),g.push(...i)}else E.push("type = ?"),g.push(i);if(a){let _=Array.isArray(a)?a:[a],S=_.map(()=>"EXISTS (SELECT 1 FROM json_each(concepts) WHERE value = ?)");g.push(..._),E.push(`(${S.join(" OR ")})`)}if(d){let _=Array.isArray(d)?d:[d],S=_.map(()=>"(EXISTS (SELECT 1 FROM json_each(files_read) WHERE value LIKE ?) OR EXISTS (SELECT 1 FROM json_each(files_modified) WHERE value LIKE ?))");_.forEach(f=>{g.push(`%${f}%`,`%${f}%`)}),E.push(`(${S.join(" OR ")})`)}let T=E.length>0?`WHERE id IN (${l}) AND ${E.join(" AND ")}`:`WHERE id IN (${l})`;return this.db.prepare(` SELECT * FROM observations - ${D} - ORDER BY created_at_epoch ${l} + ${T} + ORDER BY created_at_epoch ${c} ${u} - `).all(...N)}getSummaryForSession(e){return this.db.prepare(` + `).all(...g)}getSummaryForSession(e){return this.db.prepare(` SELECT request, investigated, learned, completed, next_steps, files_read, files_edited, notes, prompt_number, created_at, @@ -303,7 +303,7 @@ ${i.stack}`:` ${i.message}`:this.getLevel()===0&&typeof i=="object"?u=` SELECT files_read, files_modified FROM observations WHERE memory_session_id = ? - `).all(e),r=new Set,i=new Set;for(let a of s){if(a.files_read){let p=JSON.parse(a.files_read);Array.isArray(p)&&p.forEach(c=>r.add(c))}if(a.files_modified){let p=JSON.parse(a.files_modified);Array.isArray(p)&&p.forEach(c=>i.add(c))}}return{filesRead:Array.from(r),filesModified:Array.from(i)}}getSessionById(e){return this.db.prepare(` + `).all(e),n=new Set,o=new Set;for(let i of s){if(i.files_read){let a=JSON.parse(i.files_read);Array.isArray(a)&&a.forEach(d=>n.add(d))}if(i.files_modified){let a=JSON.parse(i.files_modified);Array.isArray(a)&&a.forEach(d=>o.add(d))}}return{filesRead:Array.from(n),filesModified:Array.from(o)}}getSessionById(e){return this.db.prepare(` SELECT id, content_session_id, memory_session_id, project, user_prompt FROM sdk_sessions WHERE id = ? @@ -316,40 +316,50 @@ ${i.stack}`:` ${i.message}`:this.getLevel()===0&&typeof i=="object"?u=` ORDER BY started_at_epoch DESC `).all(...e)}getPromptNumberFromUserPrompts(e){return this.db.prepare(` SELECT COUNT(*) as count FROM user_prompts WHERE content_session_id = ? - `).get(e).count}createSDKSession(e,t,s){let r=new Date,i=r.getTime();return this.db.prepare(` + `).get(e).count}createSDKSession(e,t,s){let n=new Date,o=n.getTime();return this.db.prepare(` INSERT OR IGNORE INTO sdk_sessions (content_session_id, memory_session_id, project, user_prompt, started_at, started_at_epoch, status) VALUES (?, NULL, ?, ?, ?, ?, 'active') - `).run(e,t,s,r.toISOString(),i),this.db.prepare("SELECT id FROM sdk_sessions WHERE content_session_id = ?").get(e).id}saveUserPrompt(e,t,s){let r=new Date,i=r.getTime();return this.db.prepare(` + `).run(e,t,s,n.toISOString(),o),this.db.prepare("SELECT id FROM sdk_sessions WHERE content_session_id = ?").get(e).id}saveUserPrompt(e,t,s){let n=new Date,o=n.getTime();return this.db.prepare(` INSERT INTO user_prompts (content_session_id, prompt_number, prompt_text, created_at, created_at_epoch) VALUES (?, ?, ?, ?, ?) - `).run(e,t,s,r.toISOString(),i).lastInsertRowid}getUserPrompt(e,t){return this.db.prepare(` + `).run(e,t,s,n.toISOString(),o).lastInsertRowid}getUserPrompt(e,t){return this.db.prepare(` SELECT prompt_text FROM user_prompts WHERE content_session_id = ? AND prompt_number = ? LIMIT 1 - `).get(e,t)?.prompt_text??null}storeObservation(e,t,s,r,i=0,a){let p=a??Date.now(),c=new Date(p).toISOString(),u=this.db.prepare(` + `).get(e,t)?.prompt_text??null}storeObservation(e,t,s,n,o=0,i){let a=i??Date.now(),d=new Date(a).toISOString(),u=this.db.prepare(` INSERT INTO observations (memory_session_id, project, type, title, subtitle, facts, narrative, concepts, files_read, files_modified, prompt_number, discovery_tokens, created_at, created_at_epoch) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `).run(e,t,s.type,s.title,s.subtitle,JSON.stringify(s.facts),s.narrative,JSON.stringify(s.concepts),JSON.stringify(s.files_read),JSON.stringify(s.files_modified),r||null,i,c,p);return{id:Number(u.lastInsertRowid),createdAtEpoch:p}}storeSummary(e,t,s,r,i=0,a){let p=a??Date.now(),c=new Date(p).toISOString(),u=this.db.prepare(` + `).run(e,t,s.type,s.title,s.subtitle,JSON.stringify(s.facts),s.narrative,JSON.stringify(s.concepts),JSON.stringify(s.files_read),JSON.stringify(s.files_modified),n||null,o,d,a);return{id:Number(u.lastInsertRowid),createdAtEpoch:a}}storeSummary(e,t,s,n,o=0,i){let a=i??Date.now(),d=new Date(a).toISOString(),u=this.db.prepare(` INSERT INTO session_summaries (memory_session_id, project, request, investigated, learned, completed, next_steps, notes, prompt_number, discovery_tokens, created_at, created_at_epoch) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `).run(e,t,s.request,s.investigated,s.learned,s.completed,s.next_steps,s.notes,r||null,i,c,p);return{id:Number(u.lastInsertRowid),createdAtEpoch:p}}storeObservationsAndMarkComplete(e,t,s,r,i,a,p,c=0,l){let u=l??Date.now(),h=new Date(u).toISOString();return this.db.transaction(()=>{let f=[],D=this.db.prepare(` + `).run(e,t,s.request,s.investigated,s.learned,s.completed,s.next_steps,s.notes,n||null,o,d,a);return{id:Number(u.lastInsertRowid),createdAtEpoch:a}}storeObservations(e,t,s,n,o,i=0,a){let d=a??Date.now(),c=new Date(d).toISOString();return this.db.transaction(()=>{let l=[],g=this.db.prepare(` INSERT INTO observations (memory_session_id, project, type, title, subtitle, facts, narrative, concepts, files_read, files_modified, prompt_number, discovery_tokens, created_at, created_at_epoch) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `);for(let g of s){let E=D.run(e,t,g.type,g.title,g.subtitle,JSON.stringify(g.facts),g.narrative,JSON.stringify(g.concepts),JSON.stringify(g.files_read),JSON.stringify(g.files_modified),p||null,c,h,u);f.push(Number(E.lastInsertRowid))}let v;if(r){let E=this.db.prepare(` + `);for(let T of s){let b=g.run(e,t,T.type,T.title,T.subtitle,JSON.stringify(T.facts),T.narrative,JSON.stringify(T.concepts),JSON.stringify(T.files_read),JSON.stringify(T.files_modified),o||null,i,c,d);l.push(Number(b.lastInsertRowid))}let E=null;if(n){let b=this.db.prepare(` INSERT INTO session_summaries (memory_session_id, project, request, investigated, learned, completed, next_steps, notes, prompt_number, discovery_tokens, created_at, created_at_epoch) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `).run(e,t,r.request,r.investigated,r.learned,r.completed,r.next_steps,r.notes,p||null,c,h,u);v=Number(E.lastInsertRowid)}return this.db.prepare(` + `).run(e,t,n.request,n.investigated,n.learned,n.completed,n.next_steps,n.notes,o||null,i,c,d);E=Number(b.lastInsertRowid)}return{observationIds:l,summaryId:E,createdAtEpoch:d}})()}storeObservationsAndMarkComplete(e,t,s,n,o,i,a,d=0,c){let u=c??Date.now(),l=new Date(u).toISOString();return this.db.transaction(()=>{let E=[],T=this.db.prepare(` + INSERT INTO observations + (memory_session_id, project, type, title, subtitle, facts, narrative, concepts, + files_read, files_modified, prompt_number, discovery_tokens, created_at, created_at_epoch) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `);for(let S of s){let f=T.run(e,t,S.type,S.title,S.subtitle,JSON.stringify(S.facts),S.narrative,JSON.stringify(S.concepts),JSON.stringify(S.files_read),JSON.stringify(S.files_modified),a||null,d,l,u);E.push(Number(f.lastInsertRowid))}let b;if(n){let f=this.db.prepare(` + INSERT INTO session_summaries + (memory_session_id, project, request, investigated, learned, completed, + next_steps, notes, prompt_number, discovery_tokens, created_at, created_at_epoch) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `).run(e,t,n.request,n.investigated,n.learned,n.completed,n.next_steps,n.notes,a||null,d,l,u);b=Number(f.lastInsertRowid)}return this.db.prepare(` UPDATE pending_messages SET status = 'processed', @@ -357,62 +367,62 @@ ${i.stack}`:` ${i.message}`:this.getLevel()===0&&typeof i=="object"?u=` tool_input = NULL, tool_response = NULL WHERE id = ? AND status = 'processing' - `).run(u,i),{observationIds:f,summaryId:v,createdAtEpoch:u}})()}getSessionSummariesByIds(e,t={}){if(e.length===0)return[];let{orderBy:s="date_desc",limit:r,project:i}=t,a=s==="date_asc"?"ASC":"DESC",p=r?`LIMIT ${r}`:"",c=e.map(()=>"?").join(","),l=[...e],u=i?`WHERE id IN (${c}) AND project = ?`:`WHERE id IN (${c})`;return i&&l.push(i),this.db.prepare(` + `).run(u,o),{observationIds:E,summaryId:b,createdAtEpoch:u}})()}getSessionSummariesByIds(e,t={}){if(e.length===0)return[];let{orderBy:s="date_desc",limit:n,project:o}=t,i=s==="date_asc"?"ASC":"DESC",a=n?`LIMIT ${n}`:"",d=e.map(()=>"?").join(","),c=[...e],u=o?`WHERE id IN (${d}) AND project = ?`:`WHERE id IN (${d})`;return o&&c.push(o),this.db.prepare(` SELECT * FROM session_summaries ${u} - ORDER BY created_at_epoch ${a} - ${p} - `).all(...l)}getUserPromptsByIds(e,t={}){if(e.length===0)return[];let{orderBy:s="date_desc",limit:r,project:i}=t,a=s==="date_asc"?"ASC":"DESC",p=r?`LIMIT ${r}`:"",c=e.map(()=>"?").join(","),l=[...e],u=i?"AND s.project = ?":"";return i&&l.push(i),this.db.prepare(` + ORDER BY created_at_epoch ${i} + ${a} + `).all(...c)}getUserPromptsByIds(e,t={}){if(e.length===0)return[];let{orderBy:s="date_desc",limit:n,project:o}=t,i=s==="date_asc"?"ASC":"DESC",a=n?`LIMIT ${n}`:"",d=e.map(()=>"?").join(","),c=[...e],u=o?"AND s.project = ?":"";return o&&c.push(o),this.db.prepare(` SELECT up.*, s.project, s.memory_session_id FROM user_prompts up JOIN sdk_sessions s ON up.content_session_id = s.content_session_id - WHERE up.id IN (${c}) ${u} - ORDER BY up.created_at_epoch ${a} - ${p} - `).all(...l)}getTimelineAroundTimestamp(e,t=10,s=10,r){return this.getTimelineAroundObservation(null,e,t,s,r)}getTimelineAroundObservation(e,t,s=10,r=10,i){let a=i?"AND project = ?":"",p=i?[i]:[],c,l;if(e!==null){let n=` + WHERE up.id IN (${d}) ${u} + ORDER BY up.created_at_epoch ${i} + ${a} + `).all(...c)}getTimelineAroundTimestamp(e,t=10,s=10,n){return this.getTimelineAroundObservation(null,e,t,s,n)}getTimelineAroundObservation(e,t,s=10,n=10,o){let i=o?"AND project = ?":"",a=o?[o]:[],d,c;if(e!==null){let _=` SELECT id, created_at_epoch FROM observations - WHERE id <= ? ${a} + WHERE id <= ? ${i} ORDER BY id DESC LIMIT ? - `,g=` + `,S=` SELECT id, created_at_epoch FROM observations - WHERE id >= ? ${a} + WHERE id >= ? ${i} ORDER BY id ASC LIMIT ? - `;try{let E=this.db.prepare(n).all(e,...p,s+1),O=this.db.prepare(g).all(e,...p,r+1);if(E.length===0&&O.length===0)return{observations:[],sessions:[],prompts:[]};c=E.length>0?E[E.length-1].created_at_epoch:t,l=O.length>0?O[O.length-1].created_at_epoch:t}catch(E){return _.error("DB","Error getting boundary observations",void 0,{error:E,project:i}),{observations:[],sessions:[],prompts:[]}}}else{let n=` + `;try{let f=this.db.prepare(_).all(e,...a,s+1),R=this.db.prepare(S).all(e,...a,n+1);if(f.length===0&&R.length===0)return{observations:[],sessions:[],prompts:[]};d=f.length>0?f[f.length-1].created_at_epoch:t,c=R.length>0?R[R.length-1].created_at_epoch:t}catch(f){return m.error("DB","Error getting boundary observations",void 0,{error:f,project:o}),{observations:[],sessions:[],prompts:[]}}}else{let _=` SELECT created_at_epoch FROM observations - WHERE created_at_epoch <= ? ${a} + WHERE created_at_epoch <= ? ${i} ORDER BY created_at_epoch DESC LIMIT ? - `,g=` + `,S=` SELECT created_at_epoch FROM observations - WHERE created_at_epoch >= ? ${a} + WHERE created_at_epoch >= ? ${i} ORDER BY created_at_epoch ASC LIMIT ? - `;try{let E=this.db.prepare(n).all(t,...p,s),O=this.db.prepare(g).all(t,...p,r+1);if(E.length===0&&O.length===0)return{observations:[],sessions:[],prompts:[]};c=E.length>0?E[E.length-1].created_at_epoch:t,l=O.length>0?O[O.length-1].created_at_epoch:t}catch(E){return _.error("DB","Error getting boundary timestamps",void 0,{error:E,project:i}),{observations:[],sessions:[],prompts:[]}}}let u=` + `;try{let f=this.db.prepare(_).all(t,...a,s),R=this.db.prepare(S).all(t,...a,n+1);if(f.length===0&&R.length===0)return{observations:[],sessions:[],prompts:[]};d=f.length>0?f[f.length-1].created_at_epoch:t,c=R.length>0?R[R.length-1].created_at_epoch:t}catch(f){return m.error("DB","Error getting boundary timestamps",void 0,{error:f,project:o}),{observations:[],sessions:[],prompts:[]}}}let u=` SELECT * FROM observations - WHERE created_at_epoch >= ? AND created_at_epoch <= ? ${a} + WHERE created_at_epoch >= ? AND created_at_epoch <= ? ${i} ORDER BY created_at_epoch ASC - `,h=` + `,l=` SELECT * FROM session_summaries - WHERE created_at_epoch >= ? AND created_at_epoch <= ? ${a} + WHERE created_at_epoch >= ? AND created_at_epoch <= ? ${i} ORDER BY created_at_epoch ASC - `,N=` + `,g=` SELECT up.*, s.project, s.memory_session_id FROM user_prompts up JOIN sdk_sessions s ON up.content_session_id = s.content_session_id - WHERE up.created_at_epoch >= ? AND up.created_at_epoch <= ? ${a.replace("project","s.project")} + WHERE up.created_at_epoch >= ? AND up.created_at_epoch <= ? ${i.replace("project","s.project")} ORDER BY up.created_at_epoch ASC - `,f=this.db.prepare(u).all(c,l,...p),D=this.db.prepare(h).all(c,l,...p),v=this.db.prepare(N).all(c,l,...p);return{observations:f,sessions:D.map(n=>({id:n.id,memory_session_id:n.memory_session_id,project:n.project,request:n.request,completed:n.completed,next_steps:n.next_steps,created_at:n.created_at,created_at_epoch:n.created_at_epoch})),prompts:v.map(n=>({id:n.id,content_session_id:n.content_session_id,prompt_number:n.prompt_number,prompt_text:n.prompt_text,project:n.project,created_at:n.created_at,created_at_epoch:n.created_at_epoch}))}}getPromptById(e){return this.db.prepare(` + `,E=this.db.prepare(u).all(d,c,...a),T=this.db.prepare(l).all(d,c,...a),b=this.db.prepare(g).all(d,c,...a);return{observations:E,sessions:T.map(_=>({id:_.id,memory_session_id:_.memory_session_id,project:_.project,request:_.request,completed:_.completed,next_steps:_.next_steps,created_at:_.created_at,created_at_epoch:_.created_at_epoch})),prompts:b.map(_=>({id:_.id,content_session_id:_.content_session_id,prompt_number:_.prompt_number,prompt_text:_.prompt_text,project:_.project,created_at:_.created_at,created_at_epoch:_.created_at_epoch}))}}getPromptById(e){return this.db.prepare(` SELECT p.id, p.content_session_id, @@ -481,34 +491,34 @@ ${i.stack}`:` ${i.message}`:this.getLevel()===0&&typeof i=="object"?u=` content_session_id, prompt_number, prompt_text, created_at, created_at_epoch ) VALUES (?, ?, ?, ?, ?) - `).run(e.content_session_id,e.prompt_number,e.prompt_text,e.created_at,e.created_at_epoch).lastInsertRowid}}};var _e=ae(require("path"),1);function me(d){if(!d)return[];try{let e=JSON.parse(d);return Array.isArray(e)?e:[]}catch(e){return _.debug("PARSER","Failed to parse JSON array, using empty fallback",{preview:d?.substring(0,50)},e),[]}}function Me(d){return new Date(d).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0})}function De(d){return new Date(d).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}function $e(d){return new Date(d).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})}function Ze(d,e){return _e.default.isAbsolute(d)?_e.default.relative(e,d):d}function Ue(d,e){let t=me(d);return t.length>0?Ze(t[0],e):"General"}var ke=ae(require("path"),1);function xe(d){if(!d||d.trim()==="")return _.warn("PROJECT_NAME","Empty cwd provided, using fallback",{cwd:d}),"unknown-project";let e=ke.default.basename(d);if(e===""){if(process.platform==="win32"){let s=d.match(/^([A-Z]):\\/i);if(s){let i=`drive-${s[1].toUpperCase()}`;return _.info("PROJECT_NAME","Drive root detected",{cwd:d,projectName:i}),i}}return _.warn("PROJECT_NAME","Root directory detected, using fallback",{cwd:d}),"unknown-project"}return e}var H=require("fs"),ee=require("path");var P=class d{static instance=null;activeMode=null;modesDir;constructor(){let e=Ce(),t=[(0,ee.join)(e,"modes"),(0,ee.join)(e,"..","plugin","modes")],s=t.find(r=>(0,H.existsSync)(r));this.modesDir=s||t[0]}static getInstance(){return d.instance||(d.instance=new d),d.instance}parseInheritance(e){let t=e.split("--");if(t.length===1)return{hasParent:!1,parentId:"",overrideId:""};if(t.length>2)throw new Error(`Invalid mode inheritance: ${e}. Only one level of inheritance supported (parent--override)`);return{hasParent:!0,parentId:t[0],overrideId:e}}isPlainObject(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}deepMerge(e,t){let s={...e};for(let r in t){let i=t[r],a=e[r];this.isPlainObject(i)&&this.isPlainObject(a)?s[r]=this.deepMerge(a,i):s[r]=i}return s}loadModeFile(e){let t=(0,ee.join)(this.modesDir,`${e}.json`);if(!(0,H.existsSync)(t))throw new Error(`Mode file not found: ${t}`);let s=(0,H.readFileSync)(t,"utf-8");return JSON.parse(s)}loadMode(e){let t=this.parseInheritance(e);if(!t.hasParent)try{let c=this.loadModeFile(e);return this.activeMode=c,_.debug("SYSTEM",`Loaded mode: ${c.name} (${e})`,void 0,{types:c.observation_types.map(l=>l.id),concepts:c.observation_concepts.map(l=>l.id)}),c}catch{if(_.warn("SYSTEM",`Mode file not found: ${e}, falling back to 'code'`),e==="code")throw new Error("Critical: code.json mode file missing");return this.loadMode("code")}let{parentId:s,overrideId:r}=t,i;try{i=this.loadMode(s)}catch{_.warn("SYSTEM",`Parent mode '${s}' not found for ${e}, falling back to 'code'`),i=this.loadMode("code")}let a;try{a=this.loadModeFile(r),_.debug("SYSTEM",`Loaded override file: ${r} for parent ${s}`)}catch{return _.warn("SYSTEM",`Override file '${r}' not found, using parent mode '${s}' only`),this.activeMode=i,i}if(!a)return _.warn("SYSTEM",`Invalid override file: ${r}, using parent mode '${s}' only`),this.activeMode=i,i;let p=this.deepMerge(i,a);return this.activeMode=p,_.debug("SYSTEM",`Loaded mode with inheritance: ${p.name} (${e} = ${s} + ${r})`,void 0,{parent:s,override:r,types:p.observation_types.map(c=>c.id),concepts:p.observation_concepts.map(c=>c.id)}),p}getActiveMode(){if(!this.activeMode)throw new Error("No mode loaded. Call loadMode() first.");return this.activeMode}getObservationTypes(){return this.getActiveMode().observation_types}getObservationConcepts(){return this.getActiveMode().observation_concepts}getTypeIcon(e){return this.getObservationTypes().find(s=>s.id===e)?.emoji||"\u{1F4DD}"}getWorkEmoji(e){return this.getObservationTypes().find(s=>s.id===e)?.work_emoji||"\u{1F4DD}"}validateType(e){return this.getObservationTypes().some(t=>t.id===e)}getTypeLabel(e){return this.getObservationTypes().find(s=>s.id===e)?.label||e}};var et=se.default.join((0,re.homedir)(),".claude","plugins","marketplaces","thedotmack","plugin",".install-version");function tt(){let d=se.default.join((0,re.homedir)(),".claude-mem","settings.json"),e=y.loadFromFile(d),t=e.CLAUDE_MEM_MODE,s=t==="code"||t.startsWith("code--"),r,i;if(s)r=new Set(e.CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES.split(",").map(a=>a.trim()).filter(Boolean)),i=new Set(e.CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS.split(",").map(a=>a.trim()).filter(Boolean));else{let a=P.getInstance().getActiveMode();r=new Set(a.observation_types.map(p=>p.id)),i=new Set(a.observation_concepts.map(p=>p.id))}return{totalObservationCount:parseInt(e.CLAUDE_MEM_CONTEXT_OBSERVATIONS,10),fullObservationCount:parseInt(e.CLAUDE_MEM_CONTEXT_FULL_COUNT,10),sessionCount:parseInt(e.CLAUDE_MEM_CONTEXT_SESSION_COUNT,10),showReadTokens:e.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS==="true",showWorkTokens:e.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS==="true",showSavingsAmount:e.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT==="true",showSavingsPercent:e.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT==="true",observationTypes:r,observationConcepts:i,fullObservationField:e.CLAUDE_MEM_CONTEXT_FULL_FIELD,showLastSummary:e.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY==="true",showLastMessage:e.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE==="true"}}var we=4,st=1,o={reset:"\x1B[0m",bright:"\x1B[1m",dim:"\x1B[2m",cyan:"\x1B[36m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",gray:"\x1B[90m",red:"\x1B[31m"};function te(d,e,t,s){return e?s?[`${t}${d}:${o.reset} ${e}`,""]:[`**${d}**: ${e}`,""]:[]}function rt(d){return d.replace(/\//g,"-")}function nt(d){try{if(!(0,W.existsSync)(d))return{userMessage:"",assistantMessage:""};let e=(0,W.readFileSync)(d,"utf-8").trim();if(!e)return{userMessage:"",assistantMessage:""};let t=e.split(` -`).filter(r=>r.trim()),s="";for(let r=t.length-1;r>=0;r--)try{let i=t[r];if(!i.includes('"type":"assistant"'))continue;let a=JSON.parse(i);if(a.type==="assistant"&&a.message?.content&&Array.isArray(a.message.content)){let p="";for(let c of a.message.content)c.type==="text"&&(p+=c.text);if(p=p.replace(/[\s\S]*?<\/system-reminder>/g,"").trim(),p){s=p;break}}}catch(i){_.debug("PARSER","Skipping malformed transcript line",{lineIndex:r},i);continue}return{userMessage:"",assistantMessage:s}}catch(e){return _.failure("WORKER","Failed to extract prior messages from transcript",{transcriptPath:d},e),{userMessage:"",assistantMessage:""}}}async function it(d,e=!1){let t=tt(),s=d?.cwd??process.cwd(),r=xe(s),i=null;try{i=new Z}catch(g){if(g.code==="ERR_DLOPEN_FAILED"){try{(0,W.unlinkSync)(et)}catch(E){_.debug("SYSTEM","Marker file cleanup failed (may not exist)",{},E)}return _.error("SYSTEM","Native module rebuild needed - restart Claude Code to auto-fix"),""}throw g}let a=Array.from(t.observationTypes),p=a.map(()=>"?").join(","),c=Array.from(t.observationConcepts),l=c.map(()=>"?").join(","),u=i.db.prepare(` + `).run(e.content_session_id,e.prompt_number,e.prompt_text,e.created_at,e.created_at_epoch).lastInsertRowid}}};var ue=v(require("path"),1);function le(r){if(!r||r.trim()==="")return m.warn("PROJECT_NAME","Empty cwd provided, using fallback",{cwd:r}),"unknown-project";let e=ue.default.basename(r);if(e===""){if(process.platform==="win32"){let s=r.match(/^([A-Z]):\\/i);if(s){let o=`drive-${s[1].toUpperCase()}`;return m.info("PROJECT_NAME","Drive root detected",{cwd:r,projectName:o}),o}}return m.warn("PROJECT_NAME","Root directory detected, using fallback",{cwd:r}),"unknown-project"}return e}var _e=v(require("path"),1),Ee=require("os");var M=require("fs"),$=require("path");var O=class r{static instance=null;activeMode=null;modesDir;constructor(){let e=ce(),t=[(0,$.join)(e,"modes"),(0,$.join)(e,"..","plugin","modes")],s=t.find(n=>(0,M.existsSync)(n));this.modesDir=s||t[0]}static getInstance(){return r.instance||(r.instance=new r),r.instance}parseInheritance(e){let t=e.split("--");if(t.length===1)return{hasParent:!1,parentId:"",overrideId:""};if(t.length>2)throw new Error(`Invalid mode inheritance: ${e}. Only one level of inheritance supported (parent--override)`);return{hasParent:!0,parentId:t[0],overrideId:e}}isPlainObject(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}deepMerge(e,t){let s={...e};for(let n in t){let o=t[n],i=e[n];this.isPlainObject(o)&&this.isPlainObject(i)?s[n]=this.deepMerge(i,o):s[n]=o}return s}loadModeFile(e){let t=(0,$.join)(this.modesDir,`${e}.json`);if(!(0,M.existsSync)(t))throw new Error(`Mode file not found: ${t}`);let s=(0,M.readFileSync)(t,"utf-8");return JSON.parse(s)}loadMode(e){let t=this.parseInheritance(e);if(!t.hasParent)try{let d=this.loadModeFile(e);return this.activeMode=d,m.debug("SYSTEM",`Loaded mode: ${d.name} (${e})`,void 0,{types:d.observation_types.map(c=>c.id),concepts:d.observation_concepts.map(c=>c.id)}),d}catch{if(m.warn("SYSTEM",`Mode file not found: ${e}, falling back to 'code'`),e==="code")throw new Error("Critical: code.json mode file missing");return this.loadMode("code")}let{parentId:s,overrideId:n}=t,o;try{o=this.loadMode(s)}catch{m.warn("SYSTEM",`Parent mode '${s}' not found for ${e}, falling back to 'code'`),o=this.loadMode("code")}let i;try{i=this.loadModeFile(n),m.debug("SYSTEM",`Loaded override file: ${n} for parent ${s}`)}catch{return m.warn("SYSTEM",`Override file '${n}' not found, using parent mode '${s}' only`),this.activeMode=o,o}if(!i)return m.warn("SYSTEM",`Invalid override file: ${n}, using parent mode '${s}' only`),this.activeMode=o,o;let a=this.deepMerge(o,i);return this.activeMode=a,m.debug("SYSTEM",`Loaded mode with inheritance: ${a.name} (${e} = ${s} + ${n})`,void 0,{parent:s,override:n,types:a.observation_types.map(d=>d.id),concepts:a.observation_concepts.map(d=>d.id)}),a}getActiveMode(){if(!this.activeMode)throw new Error("No mode loaded. Call loadMode() first.");return this.activeMode}getObservationTypes(){return this.getActiveMode().observation_types}getObservationConcepts(){return this.getActiveMode().observation_concepts}getTypeIcon(e){return this.getObservationTypes().find(s=>s.id===e)?.emoji||"\u{1F4DD}"}getWorkEmoji(e){return this.getObservationTypes().find(s=>s.id===e)?.work_emoji||"\u{1F4DD}"}validateType(e){return this.getObservationTypes().some(t=>t.id===e)}getTypeLabel(e){return this.getObservationTypes().find(s=>s.id===e)?.label||e}};function H(){let r=_e.default.join((0,Ee.homedir)(),".claude-mem","settings.json"),e=C.loadFromFile(r),t=e.CLAUDE_MEM_MODE,s=t==="code"||t.startsWith("code--"),n,o;if(s)n=new Set(e.CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES.split(",").map(i=>i.trim()).filter(Boolean)),o=new Set(e.CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS.split(",").map(i=>i.trim()).filter(Boolean));else{let i=O.getInstance().getActiveMode();n=new Set(i.observation_types.map(a=>a.id)),o=new Set(i.observation_concepts.map(a=>a.id))}return{totalObservationCount:parseInt(e.CLAUDE_MEM_CONTEXT_OBSERVATIONS,10),fullObservationCount:parseInt(e.CLAUDE_MEM_CONTEXT_FULL_COUNT,10),sessionCount:parseInt(e.CLAUDE_MEM_CONTEXT_SESSION_COUNT,10),showReadTokens:e.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS==="true",showWorkTokens:e.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS==="true",showSavingsAmount:e.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT==="true",showSavingsPercent:e.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT==="true",observationTypes:n,observationConcepts:o,fullObservationField:e.CLAUDE_MEM_CONTEXT_FULL_FIELD,showLastSummary:e.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY==="true",showLastMessage:e.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE==="true"}}var p={reset:"\x1B[0m",bright:"\x1B[1m",dim:"\x1B[2m",cyan:"\x1B[36m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",gray:"\x1B[90m",red:"\x1B[31m"},ge=4,Te=1;function W(r){let e=(r.title?.length||0)+(r.subtitle?.length||0)+(r.narrative?.length||0)+JSON.stringify(r.facts||[]).length;return Math.ceil(e/ge)}function Y(r){let e=r.length,t=r.reduce((i,a)=>i+W(a),0),s=r.reduce((i,a)=>i+(a.discovery_tokens||0),0),n=s-t,o=s>0?Math.round(n/s*100):0;return{totalObservations:e,totalReadTokens:t,totalDiscoveryTokens:s,savings:n,savingsPercent:o}}function Tt(r){return O.getInstance().getWorkEmoji(r)}function A(r,e){let t=W(r),s=r.discovery_tokens||0,n=Tt(r.type),o=s>0?`${n} ${s.toLocaleString()}`:"-";return{readTokens:t,discoveryTokens:s,discoveryDisplay:o,workEmoji:n}}function w(r){return r.showReadTokens||r.showWorkTokens||r.showSavingsAmount||r.showSavingsPercent}var fe=v(require("path"),1),Se=require("os"),F=require("fs");function V(r,e,t){let s=Array.from(t.observationTypes),n=s.map(()=>"?").join(","),o=Array.from(t.observationConcepts),i=o.map(()=>"?").join(",");return r.db.prepare(` SELECT id, memory_session_id, type, title, subtitle, narrative, facts, concepts, files_read, files_modified, discovery_tokens, created_at, created_at_epoch FROM observations WHERE project = ? - AND type IN (${p}) + AND type IN (${n}) AND EXISTS ( SELECT 1 FROM json_each(concepts) - WHERE value IN (${l}) + WHERE value IN (${i}) ) ORDER BY created_at_epoch DESC LIMIT ? - `).all(r,...a,...c,t.totalObservationCount),h=i.db.prepare(` + `).all(e,...s,...o,t.totalObservationCount)}function q(r,e,t){return r.db.prepare(` SELECT id, memory_session_id, request, investigated, learned, completed, next_steps, created_at, created_at_epoch FROM session_summaries WHERE project = ? ORDER BY created_at_epoch DESC LIMIT ? - `).all(r,t.sessionCount+st),N="",f="";if(t.showLastMessage&&u.length>0){let g=d?.session_id,E=u.find(O=>O.memory_session_id!==g);if(E){let O=E.memory_session_id,k=rt(s),A=se.default.join((0,re.homedir)(),".claude","projects",k,`${O}.jsonl`),M=nt(A);N=M.userMessage,f=M.assistantMessage}}if(u.length===0&&h.length===0)return i?.close(),e?` -${o.bright}${o.cyan}[${r}] recent context${o.reset} -${o.gray}${"\u2500".repeat(60)}${o.reset} + `).all(e,t.sessionCount+Te)}function ft(r){return r.replace(/\//g,"-")}function St(r){try{if(!(0,F.existsSync)(r))return{userMessage:"",assistantMessage:""};let e=(0,F.readFileSync)(r,"utf-8").trim();if(!e)return{userMessage:"",assistantMessage:""};let t=e.split(` +`).filter(n=>n.trim()),s="";for(let n=t.length-1;n>=0;n--)try{let o=t[n];if(!o.includes('"type":"assistant"'))continue;let i=JSON.parse(o);if(i.type==="assistant"&&i.message?.content&&Array.isArray(i.message.content)){let a="";for(let d of i.message.content)d.type==="text"&&(a+=d.text);if(a=a.replace(/[\s\S]*?<\/system-reminder>/g,"").trim(),a){s=a;break}}}catch(o){m.debug("PARSER","Skipping malformed transcript line",{lineIndex:n},o);continue}return{userMessage:"",assistantMessage:s}}catch(e){return m.failure("WORKER","Failed to extract prior messages from transcript",{transcriptPath:r},e),{userMessage:"",assistantMessage:""}}}function K(r,e,t,s){if(!e.showLastMessage||r.length===0)return{userMessage:"",assistantMessage:""};let n=r.find(d=>d.memory_session_id!==t);if(!n)return{userMessage:"",assistantMessage:""};let o=n.memory_session_id,i=ft(s),a=fe.default.join((0,Se.homedir)(),".claude","projects",i,`${o}.jsonl`);return St(a)}function he(r,e){let t=e[0]?.id;return r.map((s,n)=>{let o=n===0?null:e[n+1];return{...s,displayEpoch:o?o.created_at_epoch:s.created_at_epoch,displayTime:o?o.created_at:s.created_at,shouldShowLink:s.id!==t}})}function J(r,e){let t=[...r.map(s=>({type:"observation",data:s})),...e.map(s=>({type:"summary",data:s}))];return t.sort((s,n)=>{let o=s.type==="observation"?s.data.created_at_epoch:s.data.displayEpoch,i=n.type==="observation"?n.data.created_at_epoch:n.data.displayEpoch;return o-i}),t}function be(r,e){return new Set(r.slice(0,e).map(t=>t.id))}function Oe(r){return[`# [${r}] recent context`,""]}function Re(){return[`**Legend:** session-request | ${O.getInstance().getActiveMode().observation_types.map(t=>`${t.emoji} ${t.id}`).join(" | ")}`,""]}function Ce(){return["**Column Key**:","- **Read**: Tokens to read this observation (cost to learn it now)","- **Work**: Tokens spent on work that produced this record ( research, building, deciding)",""]}function Ie(){return["**Context Index:** This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.","","When you need implementation details, rationale, or debugging context:","- Use the mem-search skill to fetch full observations on-demand","- Critical types ( bugfix, decision) often need detailed fetching","- Trust this index over re-reading code for past decisions and learnings",""]}function Ne(r,e){let t=[];if(t.push("**Context Economics**:"),t.push(`- Loading: ${r.totalObservations} observations (${r.totalReadTokens.toLocaleString()} tokens to read)`),t.push(`- Work investment: ${r.totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions`),r.totalDiscoveryTokens>0&&(e.showSavingsAmount||e.showSavingsPercent)){let s="- Your savings: ";e.showSavingsAmount&&e.showSavingsPercent?s+=`${r.savings.toLocaleString()} tokens (${r.savingsPercent}% reduction from reuse)`:e.showSavingsAmount?s+=`${r.savings.toLocaleString()} tokens`:s+=`${r.savingsPercent}% reduction from reuse`,t.push(s)}return t.push(""),t}function ye(r){return[`### ${r}`,""]}function Ae(r){return[`**${r}**`,"| ID | Time | T | Title | Read | Work |","|----|------|---|-------|------|------|"]}function ve(r,e,t){let s=r.title||"Untitled",n=O.getInstance().getTypeIcon(r.type),{readTokens:o,discoveryDisplay:i}=A(r,t),a=t.showReadTokens?`~${o}`:"",d=t.showWorkTokens?i:"";return`| #${r.id} | ${e||'"'} | ${n} | ${s} | ${a} | ${d} |`}function Me(r,e,t,s){let n=[],o=r.title||"Untitled",i=O.getInstance().getTypeIcon(r.type),{readTokens:a,discoveryDisplay:d}=A(r,s);n.push(`**#${r.id}** ${e||'"'} ${i} **${o}**`),t&&(n.push(""),n.push(t),n.push(""));let c=[];return s.showReadTokens&&c.push(`Read: ~${a}`),s.showWorkTokens&&c.push(`Work: ${d}`),c.length>0&&n.push(c.join(", ")),n.push(""),n}function Le(r,e){let t=`${r.request||"Session started"} (${e})`;return[`**#S${r.id}** ${t}`,""]}function L(r,e){return e?[`**${r}**: ${e}`,""]:[]}function De(r){return r.assistantMessage?["","---","","**Previously**","",`A: ${r.assistantMessage}`,""]:[]}function xe(r,e){return["",`Access ${Math.round(r/1e3)}k tokens of past research & decisions for just ${e.toLocaleString()}t. Use the mem-search skill to access memories by ID instead of re-reading files.`]}function ke(r){return`# [${r}] recent context -${o.dim}No previous sessions found for this project yet.${o.reset} -`:`# [${r}] recent context +No previous sessions found for this project yet.`}function Ue(r){return["",`${p.bright}${p.cyan}[${r}] recent context${p.reset}`,`${p.gray}${"\u2500".repeat(60)}${p.reset}`,""]}function $e(){let e=O.getInstance().getActiveMode().observation_types.map(t=>`${t.emoji} ${t.id}`).join(" | ");return[`${p.dim}Legend: session-request | ${e}${p.reset}`,""]}function we(){return[`${p.bright}Column Key${p.reset}`,`${p.dim} Read: Tokens to read this observation (cost to learn it now)${p.reset}`,`${p.dim} Work: Tokens spent on work that produced this record ( research, building, deciding)${p.reset}`,""]}function Fe(){return[`${p.dim}Context Index: This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.${p.reset}`,"",`${p.dim}When you need implementation details, rationale, or debugging context:${p.reset}`,`${p.dim} - Use the mem-search skill to fetch full observations on-demand${p.reset}`,`${p.dim} - Critical types ( bugfix, decision) often need detailed fetching${p.reset}`,`${p.dim} - Trust this index over re-reading code for past decisions and learnings${p.reset}`,""]}function Pe(r,e){let t=[];if(t.push(`${p.bright}${p.cyan}Context Economics${p.reset}`),t.push(`${p.dim} Loading: ${r.totalObservations} observations (${r.totalReadTokens.toLocaleString()} tokens to read)${p.reset}`),t.push(`${p.dim} Work investment: ${r.totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions${p.reset}`),r.totalDiscoveryTokens>0&&(e.showSavingsAmount||e.showSavingsPercent)){let s=" Your savings: ";e.showSavingsAmount&&e.showSavingsPercent?s+=`${r.savings.toLocaleString()} tokens (${r.savingsPercent}% reduction from reuse)`:e.showSavingsAmount?s+=`${r.savings.toLocaleString()} tokens`:s+=`${r.savingsPercent}% reduction from reuse`,t.push(`${p.green}${s}${p.reset}`)}return t.push(""),t}function je(r){return[`${p.bright}${p.cyan}${r}${p.reset}`,""]}function Xe(r){return[`${p.dim}${r}${p.reset}`]}function Be(r,e,t,s){let n=r.title||"Untitled",o=O.getInstance().getTypeIcon(r.type),{readTokens:i,discoveryTokens:a,workEmoji:d}=A(r,s),c=t?`${p.dim}${e}${p.reset}`:" ".repeat(e.length),u=s.showReadTokens&&i>0?`${p.dim}(~${i}t)${p.reset}`:"",l=s.showWorkTokens&&a>0?`${p.dim}(${d} ${a.toLocaleString()}t)${p.reset}`:"";return` ${p.dim}#${r.id}${p.reset} ${c} ${o} ${n} ${u} ${l}`}function Ge(r,e,t,s,n){let o=[],i=r.title||"Untitled",a=O.getInstance().getTypeIcon(r.type),{readTokens:d,discoveryTokens:c,workEmoji:u}=A(r,n),l=t?`${p.dim}${e}${p.reset}`:" ".repeat(e.length),g=n.showReadTokens&&d>0?`${p.dim}(~${d}t)${p.reset}`:"",E=n.showWorkTokens&&c>0?`${p.dim}(${u} ${c.toLocaleString()}t)${p.reset}`:"";return o.push(` ${p.dim}#${r.id}${p.reset} ${l} ${a} ${p.bright}${i}${p.reset}`),s&&o.push(` ${p.dim}${s}${p.reset}`),(g||E)&&o.push(` ${g} ${E}`),o.push(""),o}function He(r,e){let t=`${r.request||"Session started"} (${e})`;return[`${p.yellow}#S${r.id}${p.reset} ${t}`,""]}function D(r,e,t){return e?[`${t}${r}:${p.reset} ${e}`,""]:[]}function We(r){return r.assistantMessage?["","---","",`${p.bright}${p.magenta}Previously${p.reset}`,"",`${p.dim}A: ${r.assistantMessage}${p.reset}`,""]:[]}function Ye(r,e){let t=Math.round(r/1e3);return["",`${p.dim}Access ${t}k tokens of past research & decisions for just ${e.toLocaleString()}t. Use the mem-search skill to access memories by ID instead of re-reading files.${p.reset}`]}function Ve(r){return` +${p.bright}${p.cyan}[${r}] recent context${p.reset} +${p.gray}${"\u2500".repeat(60)}${p.reset} -No previous sessions found for this project yet.`;let D=h.slice(0,t.sessionCount),v=u,n=[];if(e?(n.push(""),n.push(`${o.bright}${o.cyan}[${r}] recent context${o.reset}`),n.push(`${o.gray}${"\u2500".repeat(60)}${o.reset}`),n.push("")):(n.push(`# [${r}] recent context`),n.push("")),v.length>0){let E=P.getInstance().getActiveMode().observation_types.map(m=>`${m.emoji} ${m.id}`).join(" | ");e?n.push(`${o.dim}Legend: \u{1F3AF} session-request | ${E}${o.reset}`):n.push(`**Legend:** \u{1F3AF} session-request | ${E}`),n.push(""),e?(n.push(`${o.bright}\u{1F4A1} Column Key${o.reset}`),n.push(`${o.dim} Read: Tokens to read this observation (cost to learn it now)${o.reset}`),n.push(`${o.dim} Work: Tokens spent on work that produced this record (\u{1F50D} research, \u{1F6E0}\uFE0F building, \u2696\uFE0F deciding)${o.reset}`)):(n.push("\u{1F4A1} **Column Key**:"),n.push("- **Read**: Tokens to read this observation (cost to learn it now)"),n.push("- **Work**: Tokens spent on work that produced this record (\u{1F50D} research, \u{1F6E0}\uFE0F building, \u2696\uFE0F deciding)")),n.push(""),e?(n.push(`${o.dim}\u{1F4A1} Context Index: This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.${o.reset}`),n.push(""),n.push(`${o.dim}When you need implementation details, rationale, or debugging context:${o.reset}`),n.push(`${o.dim} - Use the mem-search skill to fetch full observations on-demand${o.reset}`),n.push(`${o.dim} - Critical types (\u{1F534} bugfix, \u2696\uFE0F decision) often need detailed fetching${o.reset}`),n.push(`${o.dim} - Trust this index over re-reading code for past decisions and learnings${o.reset}`)):(n.push("\u{1F4A1} **Context Index:** This semantic index (titles, types, files, tokens) is usually sufficient to understand past work."),n.push(""),n.push("When you need implementation details, rationale, or debugging context:"),n.push("- Use the mem-search skill to fetch full observations on-demand"),n.push("- Critical types (\u{1F534} bugfix, \u2696\uFE0F decision) often need detailed fetching"),n.push("- Trust this index over re-reading code for past decisions and learnings")),n.push("");let O=u.length,k=u.reduce((m,S)=>{let b=(S.title?.length||0)+(S.subtitle?.length||0)+(S.narrative?.length||0)+JSON.stringify(S.facts||[]).length;return m+Math.ceil(b/we)},0),A=u.reduce((m,S)=>m+(S.discovery_tokens||0),0),M=A-k,Y=A>0?Math.round(M/A*100):0,ue=t.showReadTokens||t.showWorkTokens||t.showSavingsAmount||t.showSavingsPercent;if(ue)if(e){if(n.push(`${o.bright}${o.cyan}\u{1F4CA} Context Economics${o.reset}`),n.push(`${o.dim} Loading: ${O} observations (${k.toLocaleString()} tokens to read)${o.reset}`),n.push(`${o.dim} Work investment: ${A.toLocaleString()} tokens spent on research, building, and decisions${o.reset}`),A>0&&(t.showSavingsAmount||t.showSavingsPercent)){let m=" Your savings: ";t.showSavingsAmount&&t.showSavingsPercent?m+=`${M.toLocaleString()} tokens (${Y}% reduction from reuse)`:t.showSavingsAmount?m+=`${M.toLocaleString()} tokens`:m+=`${Y}% reduction from reuse`,n.push(`${o.green}${m}${o.reset}`)}n.push("")}else{if(n.push("\u{1F4CA} **Context Economics**:"),n.push(`- Loading: ${O} observations (${k.toLocaleString()} tokens to read)`),n.push(`- Work investment: ${A.toLocaleString()} tokens spent on research, building, and decisions`),A>0&&(t.showSavingsAmount||t.showSavingsPercent)){let m="- Your savings: ";t.showSavingsAmount&&t.showSavingsPercent?m+=`${M.toLocaleString()} tokens (${Y}% reduction from reuse)`:t.showSavingsAmount?m+=`${M.toLocaleString()} tokens`:m+=`${Y}% reduction from reuse`,n.push(m)}n.push("")}let Fe=h[0]?.id,Pe=D.map((m,S)=>{let b=S===0?null:h[S+1];return{...m,displayEpoch:b?b.created_at_epoch:m.created_at_epoch,displayTime:b?b.created_at:m.created_at,shouldShowLink:m.id!==Fe}}),Xe=new Set(u.slice(0,t.fullObservationCount).map(m=>m.id)),le=[...v.map(m=>({type:"observation",data:m})),...Pe.map(m=>({type:"summary",data:m}))];le.sort((m,S)=>{let b=m.type==="observation"?m.data.created_at_epoch:m.data.displayEpoch,$=S.type==="observation"?S.data.created_at_epoch:S.data.displayEpoch;return b-$});let V=new Map;for(let m of le){let S=m.type==="observation"?m.data.created_at:m.data.displayTime,b=$e(S);V.has(b)||V.set(b,[]),V.get(b).push(m)}let je=Array.from(V.entries()).sort((m,S)=>{let b=new Date(m[0]).getTime(),$=new Date(S[0]).getTime();return b-$});for(let[m,S]of je){e?(n.push(`${o.bright}${o.cyan}${m}${o.reset}`),n.push("")):(n.push(`### ${m}`),n.push(""));let b=null,$="",x=!1;for(let ne of S)if(ne.type==="summary"){x&&(n.push(""),x=!1,b=null,$="");let T=ne.data,w=`${T.request||"Session started"} (${Me(T.displayTime)})`;e?n.push(`\u{1F3AF} ${o.yellow}#S${T.id}${o.reset} ${w}`):n.push(`**\u{1F3AF} #S${T.id}** ${w}`),n.push("")}else{let T=ne.data,w=Ue(T.files_modified,s);w!==b&&(x&&n.push(""),e?n.push(`${o.dim}${w}${o.reset}`):n.push(`**${w}**`),e||(n.push("| ID | Time | T | Title | Read | Work |"),n.push("|----|------|---|-------|------|------|")),b=w,x=!0,$="");let F=De(T.created_at),K=T.title||"Untitled",q=P.getInstance().getTypeIcon(T.type),Be=(T.title?.length||0)+(T.subtitle?.length||0)+(T.narrative?.length||0)+JSON.stringify(T.facts||[]).length,X=Math.ceil(Be/we),j=T.discovery_tokens||0,ie=P.getInstance().getWorkEmoji(T.type),ge=j>0?`${ie} ${j.toLocaleString()}`:"-",oe=F!==$,Te=oe?F:"";if($=F,Xe.has(T.id)){let U=t.fullObservationField==="narrative"?T.narrative:T.facts?me(T.facts).join(` -`):null;if(e){let L=oe?`${o.dim}${F}${o.reset}`:" ".repeat(F.length),J=t.showReadTokens&&X>0?`${o.dim}(~${X}t)${o.reset}`:"",he=t.showWorkTokens&&j>0?`${o.dim}(${ie} ${j.toLocaleString()}t)${o.reset}`:"";n.push(` ${o.dim}#${T.id}${o.reset} ${L} ${q} ${o.bright}${K}${o.reset}`),U&&n.push(` ${o.dim}${U}${o.reset}`),(J||he)&&n.push(` ${J} ${he}`),n.push("")}else{x&&(n.push(""),x=!1),n.push(`**#${T.id}** ${Te||"\u2033"} ${q} **${K}**`),U&&(n.push(""),n.push(U),n.push(""));let L=[];t.showReadTokens&&L.push(`Read: ~${X}`),t.showWorkTokens&&L.push(`Work: ${ge}`),L.length>0&&n.push(L.join(", ")),n.push(""),b=null}}else if(e){let U=oe?`${o.dim}${F}${o.reset}`:" ".repeat(F.length),L=t.showReadTokens&&X>0?`${o.dim}(~${X}t)${o.reset}`:"",J=t.showWorkTokens&&j>0?`${o.dim}(${ie} ${j.toLocaleString()}t)${o.reset}`:"";n.push(` ${o.dim}#${T.id}${o.reset} ${U} ${q} ${K} ${L} ${J}`)}else{let U=t.showReadTokens?`~${X}`:"",L=t.showWorkTokens?ge:"";n.push(`| #${T.id} | ${Te||"\u2033"} | ${q} | ${K} | ${U} | ${L} |`)}}x&&n.push("")}let I=h[0],Ee=u[0];if(t.showLastSummary&&I&&(I.investigated||I.learned||I.completed||I.next_steps)&&(!Ee||I.created_at_epoch>Ee.created_at_epoch)&&(n.push(...te("Investigated",I.investigated,o.blue,e)),n.push(...te("Learned",I.learned,o.yellow,e)),n.push(...te("Completed",I.completed,o.green,e)),n.push(...te("Next Steps",I.next_steps,o.magenta,e))),f&&(n.push(""),n.push("---"),n.push(""),e?(n.push(`${o.bright}${o.magenta}\u{1F4CB} Previously${o.reset}`),n.push(""),n.push(`${o.dim}A: ${f}${o.reset}`)):(n.push("**\u{1F4CB} Previously**"),n.push(""),n.push(`A: ${f}`)),n.push("")),ue&&A>0&&M>0){let m=Math.round(A/1e3);n.push(""),e?n.push(`${o.dim}\u{1F4B0} Access ${m}k tokens of past research & decisions for just ${k.toLocaleString()}t. Use the mem-search skill to access memories by ID instead of re-reading files.${o.reset}`):n.push(`\u{1F4B0} Access ${m}k tokens of past research & decisions for just ${k.toLocaleString()}t. Use the mem-search skill to access memories by ID instead of re-reading files.`)}}return i?.close(),n.join(` -`).trimEnd()}0&&(module.exports={generateContext}); +${p.dim}No previous sessions found for this project yet.${p.reset} +`}function qe(r,e,t,s){let n=[];return s?n.push(...Ue(r)):n.push(...Oe(r)),s?n.push(...$e()):n.push(...Re()),s?n.push(...we()):n.push(...Ce()),s?n.push(...Fe()):n.push(...Ie()),w(t)&&(s?n.push(...Pe(e,t)):n.push(...Ne(e,t))),n}var Q=v(require("path"),1);function z(r){if(!r)return[];try{let e=JSON.parse(r);return Array.isArray(e)?e:[]}catch(e){return m.debug("PARSER","Failed to parse JSON array, using empty fallback",{preview:r?.substring(0,50)},e),[]}}function Ke(r){return new Date(r).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0})}function Je(r){return new Date(r).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}function Qe(r){return new Date(r).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})}function ht(r,e){return Q.default.isAbsolute(r)?Q.default.relative(e,r):r}function ze(r,e){let t=z(r);return t.length>0?ht(t[0],e):"General"}function bt(r){let e=new Map;for(let s of r){let n=s.type==="observation"?s.data.created_at:s.data.displayTime,o=Qe(n);e.has(o)||e.set(o,[]),e.get(o).push(s)}let t=Array.from(e.entries()).sort((s,n)=>{let o=new Date(s[0]).getTime(),i=new Date(n[0]).getTime();return o-i});return new Map(t)}function Ot(r,e){return e.fullObservationField==="narrative"?r.narrative:r.facts?z(r.facts).join(` +`):null}function Rt(r,e,t,s,n,o){let i=[];o?i.push(...je(r)):i.push(...ye(r));let a=null,d="",c=!1;for(let u of e)if(u.type==="summary"){c&&(i.push(""),c=!1,a=null,d="");let l=u.data,g=Ke(l.displayTime);o?i.push(...He(l,g)):i.push(...Le(l,g))}else{let l=u.data,g=ze(l.files_modified,n),E=Je(l.created_at),T=E!==d,b=T?E:"";d=E;let _=t.has(l.id);if(g!==a&&(c&&i.push(""),o?i.push(...Xe(g)):i.push(...Ae(g)),a=g,c=!0),_){let S=Ot(l,s);o?i.push(...Ge(l,E,T,S,s)):(c&&!o&&(i.push(""),c=!1),i.push(...Me(l,b,S,s)),a=null)}else o?i.push(Be(l,E,T,s)):i.push(ve(l,b,s))}return c&&i.push(""),i}function Ze(r,e,t,s,n){let o=[],i=bt(r);for(let[a,d]of i)o.push(...Rt(a,d,e,t,s,n));return o}function et(r,e,t){return!(!r.showLastSummary||!e||!!!(e.investigated||e.learned||e.completed||e.next_steps)||t&&e.created_at_epoch<=t.created_at_epoch)}function tt(r,e){let t=[];return e?(t.push(...D("Investigated",r.investigated,p.blue)),t.push(...D("Learned",r.learned,p.yellow)),t.push(...D("Completed",r.completed,p.green)),t.push(...D("Next Steps",r.next_steps,p.magenta))):(t.push(...L("Investigated",r.investigated)),t.push(...L("Learned",r.learned)),t.push(...L("Completed",r.completed)),t.push(...L("Next Steps",r.next_steps))),t}function st(r,e){return e?We(r):De(r)}function rt(r,e,t){return!w(e)||r.totalDiscoveryTokens<=0||r.savings<=0?[]:t?Ye(r.totalDiscoveryTokens,r.totalReadTokens):xe(r.totalDiscoveryTokens,r.totalReadTokens)}var Ct=nt.default.join((0,ot.homedir)(),".claude","plugins","marketplaces","thedotmack","plugin",".install-version");function It(){try{return new U}catch(r){if(r.code==="ERR_DLOPEN_FAILED"){try{(0,it.unlinkSync)(Ct)}catch(e){m.debug("SYSTEM","Marker file cleanup failed (may not exist)",{},e)}return m.error("SYSTEM","Native module rebuild needed - restart Claude Code to auto-fix"),null}throw r}}function Nt(r,e){return e?Ve(r):ke(r)}function yt(r,e,t,s,n,o,i){let a=[],d=Y(e);a.push(...qe(r,d,s,i));let c=t.slice(0,s.sessionCount),u=he(c,t),l=J(e,u),g=be(e,s.fullObservationCount);a.push(...Ze(l,g,s,n,i));let E=t[0],T=e[0];et(s,E,T)&&a.push(...tt(E,i));let b=K(e,s,o,n);return a.push(...st(b,i)),a.push(...rt(d,s,i)),a.join(` +`).trimEnd()}async function Z(r,e=!1){let t=H(),s=r?.cwd??process.cwd(),n=le(s),o=It();if(!o)return"";try{let i=V(o,n,t),a=q(o,n,t);return i.length===0&&a.length===0?Nt(n,e):yt(n,i,a,t,s,r?.session_id,e)}finally{o.close()}}0&&(module.exports={generateContext}); diff --git a/plugin/scripts/mcp-server.cjs b/plugin/scripts/mcp-server.cjs index 4282170f..f2a27df9 100755 --- a/plugin/scripts/mcp-server.cjs +++ b/plugin/scripts/mcp-server.cjs @@ -1,15 +1,60 @@ #!/usr/bin/env node -"use strict";var ki=Object.create;var va=Object.defineProperty;var Ni=Object.getOwnPropertyDescriptor;var Li=Object.getOwnPropertyNames;var Mi=Object.getPrototypeOf,ji=Object.prototype.hasOwnProperty;var W=(a,e)=>()=>(e||a((e={exports:{}}).exports,e),e.exports),Fi=(a,e)=>{for(var t in e)va(a,t,{get:e[t],enumerable:!0})},Ui=(a,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Li(e))!ji.call(a,r)&&r!==t&&va(a,r,{get:()=>e[r],enumerable:!(s=Ni(e,r))||s.enumerable});return a};var ga=(a,e,t)=>(t=a!=null?ki(Mi(a)):{},Ui(e||!a||!a.__esModule?va(t,"default",{value:a,enumerable:!0}):t,a));var an=W((Vt,tn)=>{(function(a,e){typeof Vt=="object"&&typeof tn<"u"?e(Vt):typeof define=="function"&&define.amd?define(["exports"],e):e(a.URI=a.URI||{})})(Vt,(function(a){"use strict";function e(){for(var p=arguments.length,u=Array(p),g=0;g1){u[0]=u[0].slice(0,-1);for(var S=u.length-1,P=1;P= 0x80 (not a basic code point)","invalid-input":"Invalid input"},C=c-y,U=Math.floor,j=String.fromCharCode;function L(p){throw new RangeError(F[p])}function O(p,u){for(var g=[],S=p.length;S--;)g[S]=u(p[S]);return g}function $(p,u){var g=p.split("@"),S="";g.length>1&&(S=g[0]+"@",p=g[1]),p=p.replace(V,".");var P=p.split("."),N=O(P,u).join(".");return S+N}function M(p){for(var u=[],g=0,S=p.length;g=55296&&P<=56319&&g>1,u+=U(u/g);u>C*_>>1;P+=c)u=U(u/C);return U(P+(C+1)*u/(u+v))},H=function(u){var g=[],S=u.length,P=0,N=x,Z=T,re=u.lastIndexOf(w);re<0&&(re=0);for(var ne=0;ne=128&&L("not-basic"),g.push(u.charCodeAt(ne));for(var ye=re>0?re+1:0;ye=S&&L("invalid-input");var ce=J(u.charCodeAt(ye++));(ce>=c||ce>U((E-P)/ue))&&L("overflow"),P+=ce*ue;var ae=_e<=Z?y:_e>=Z+_?_:_e-Z;if(ceU(E/de)&&L("overflow"),ue*=de}var ie=g.length+1;Z=G(P-ee,ie,ee==0),U(P/ie)>E-N&&L("overflow"),N+=U(P/ie),P%=ie,g.splice(P++,0,N)}return String.fromCodePoint.apply(String,g)},fe=function(u){var g=[];u=M(u);var S=u.length,P=x,N=0,Z=T,re=!0,ne=!1,ye=void 0;try{for(var ee=u[Symbol.iterator](),ue;!(re=(ue=ee.next()).done);re=!0){var _e=ue.value;_e<128&&g.push(j(_e))}}catch(Rr){ne=!0,ye=Rr}finally{try{!re&&ee.return&&ee.return()}finally{if(ne)throw ye}}var ce=g.length,ae=ce;for(ce&&g.push(w);ae=P&&NeU((E-N)/je)&&L("overflow"),N+=(de-P)*je,P=de;var Je=!0,xr=!1,sr=void 0;try{for(var ct=u[Symbol.iterator](),xt;!(Je=(xt=ct.next()).done);Je=!0){var Rt=xt.value;if(RtE&&L("overflow"),Rt==P){for(var Br=N,Wr=c;;Wr+=c){var nr=Wr<=Z?y:Wr>=Z+_?_:Wr-Z;if(Br>6|192).toString(16).toUpperCase()+"%"+(u&63|128).toString(16).toUpperCase():g="%"+(u>>12|224).toString(16).toUpperCase()+"%"+(u>>6&63|128).toString(16).toUpperCase()+"%"+(u&63|128).toString(16).toUpperCase(),g}function Te(p){for(var u="",g=0,S=p.length;g=194&&P<224){if(S-g>=6){var N=parseInt(p.substr(g+4,2),16);u+=String.fromCharCode((P&31)<<6|N&63)}else u+=p.substr(g,6);g+=6}else if(P>=224){if(S-g>=9){var Z=parseInt(p.substr(g+4,2),16),re=parseInt(p.substr(g+7,2),16);u+=String.fromCharCode((P&15)<<12|(Z&63)<<6|re&63)}else u+=p.substr(g,9);g+=9}else u+=p.substr(g,3),g+=3}return u}function dr(p,u){function g(S){var P=Te(S);return P.match(u.UNRESERVED)?P:S}return p.scheme&&(p.scheme=String(p.scheme).replace(u.PCT_ENCODED,g).toLowerCase().replace(u.NOT_SCHEME,"")),p.userinfo!==void 0&&(p.userinfo=String(p.userinfo).replace(u.PCT_ENCODED,g).replace(u.NOT_USERINFO,Ee).replace(u.PCT_ENCODED,r)),p.host!==void 0&&(p.host=String(p.host).replace(u.PCT_ENCODED,g).toLowerCase().replace(u.NOT_HOST,Ee).replace(u.PCT_ENCODED,r)),p.path!==void 0&&(p.path=String(p.path).replace(u.PCT_ENCODED,g).replace(p.scheme?u.NOT_PATH:u.NOT_PATH_NOSCHEME,Ee).replace(u.PCT_ENCODED,r)),p.query!==void 0&&(p.query=String(p.query).replace(u.PCT_ENCODED,g).replace(u.NOT_QUERY,Ee).replace(u.PCT_ENCODED,r)),p.fragment!==void 0&&(p.fragment=String(p.fragment).replace(u.PCT_ENCODED,g).replace(u.NOT_FRAGMENT,Ee).replace(u.PCT_ENCODED,r)),p}function tr(p){return p.replace(/^0*(.*)/,"$1")||"0"}function ge(p,u){var g=p.match(u.IPV4ADDRESS)||[],S=h(g,2),P=S[1];return P?P.split(".").map(tr).join("."):p}function he(p,u){var g=p.match(u.IPV6ADDRESS)||[],S=h(g,3),P=S[1],N=S[2];if(P){for(var Z=P.toLowerCase().split("::").reverse(),re=h(Z,2),ne=re[0],ye=re[1],ee=ye?ye.split(":").map(tr):[],ue=ne.split(":").map(tr),_e=u.IPV4ADDRESS.test(ue[ue.length-1]),ce=_e?7:8,ae=ue.length-ce,de=Array(ce),ie=0;ie1){var le=de.slice(0,ke.index),Ne=de.slice(ke.index+ke.length);Me=le.join(":")+"::"+Ne.join(":")}else Me=de.join(":");return N&&(Me+="%"+N),Me}else return p}var Er=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,xe="".match(/(){0}/)[1]===void 0;function se(p){var u=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},g={},S=u.iri!==!1?d:f;u.reference==="suffix"&&(p=(u.scheme?u.scheme+":":"")+"//"+p);var P=p.match(Er);if(P){xe?(g.scheme=P[1],g.userinfo=P[3],g.host=P[4],g.port=parseInt(P[5],10),g.path=P[6]||"",g.query=P[7],g.fragment=P[8],isNaN(g.port)&&(g.port=P[5])):(g.scheme=P[1]||void 0,g.userinfo=p.indexOf("@")!==-1?P[3]:void 0,g.host=p.indexOf("//")!==-1?P[4]:void 0,g.port=parseInt(P[5],10),g.path=P[6]||"",g.query=p.indexOf("?")!==-1?P[7]:void 0,g.fragment=p.indexOf("#")!==-1?P[8]:void 0,isNaN(g.port)&&(g.port=p.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?P[4]:void 0)),g.host&&(g.host=he(ge(g.host,S),S)),g.scheme===void 0&&g.userinfo===void 0&&g.host===void 0&&g.port===void 0&&!g.path&&g.query===void 0?g.reference="same-document":g.scheme===void 0?g.reference="relative":g.fragment===void 0?g.reference="absolute":g.reference="uri",u.reference&&u.reference!=="suffix"&&u.reference!==g.reference&&(g.error=g.error||"URI is not a "+u.reference+" reference.");var N=ve[(u.scheme||g.scheme||"").toLowerCase()];if(!u.unicodeSupport&&(!N||!N.unicodeSupport)){if(g.host&&(u.domainHost||N&&N.domainHost))try{g.host=te.toASCII(g.host.replace(S.PCT_ENCODED,Te).toLowerCase())}catch(Z){g.error=g.error||"Host's domain name can not be converted to ASCII via punycode: "+Z}dr(g,f)}else dr(g,S);N&&N.parse&&N.parse(g,u)}else g.error=g.error||"URI can not be parsed.";return g}function fr(p,u){var g=u.iri!==!1?d:f,S=[];return p.userinfo!==void 0&&(S.push(p.userinfo),S.push("@")),p.host!==void 0&&S.push(he(ge(String(p.host),g),g).replace(g.IPV6ADDRESS,function(P,N,Z){return"["+N+(Z?"%25"+Z:"")+"]"})),(typeof p.port=="number"||typeof p.port=="string")&&(S.push(":"),S.push(String(p.port))),S.length?S.join(""):void 0}var ar=/^\.\.?\//,Sr=/^\/\.(\/|$)/,Pr=/^\/\.\.(\/|$)/,Se=/^\/?(?:.|\n)*?(?=\/|$)/;function Le(p){for(var u=[];p.length;)if(p.match(ar))p=p.replace(ar,"");else if(p.match(Sr))p=p.replace(Sr,"/");else if(p.match(Pr))p=p.replace(Pr,"/"),u.pop();else if(p==="."||p==="..")p="";else{var g=p.match(Se);if(g){var S=g[0];p=p.slice(S.length),u.push(S)}else throw new Error("Unexpected dot segment condition")}return u.join("")}function Ie(p){var u=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},g=u.iri?d:f,S=[],P=ve[(u.scheme||p.scheme||"").toLowerCase()];if(P&&P.serialize&&P.serialize(p,u),p.host&&!g.IPV6ADDRESS.test(p.host)){if(u.domainHost||P&&P.domainHost)try{p.host=u.iri?te.toUnicode(p.host):te.toASCII(p.host.replace(g.PCT_ENCODED,Te).toLowerCase())}catch(re){p.error=p.error||"Host's domain name can not be converted to "+(u.iri?"Unicode":"ASCII")+" via punycode: "+re}}dr(p,g),u.reference!=="suffix"&&p.scheme&&(S.push(p.scheme),S.push(":"));var N=fr(p,u);if(N!==void 0&&(u.reference!=="suffix"&&S.push("//"),S.push(N),p.path&&p.path.charAt(0)!=="/"&&S.push("/")),p.path!==void 0){var Z=p.path;!u.absolutePath&&(!P||!P.absolutePath)&&(Z=Le(Z)),N===void 0&&(Z=Z.replace(/^\/\//,"/%2F")),S.push(Z)}return p.query!==void 0&&(S.push("?"),S.push(p.query)),p.fragment!==void 0&&(S.push("#"),S.push(p.fragment)),S.join("")}function Oe(p,u){var g=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},S=arguments[3],P={};return S||(p=se(Ie(p,g),g),u=se(Ie(u,g),g)),g=g||{},!g.tolerant&&u.scheme?(P.scheme=u.scheme,P.userinfo=u.userinfo,P.host=u.host,P.port=u.port,P.path=Le(u.path||""),P.query=u.query):(u.userinfo!==void 0||u.host!==void 0||u.port!==void 0?(P.userinfo=u.userinfo,P.host=u.host,P.port=u.port,P.path=Le(u.path||""),P.query=u.query):(u.path?(u.path.charAt(0)==="/"?P.path=Le(u.path):((p.userinfo!==void 0||p.host!==void 0||p.port!==void 0)&&!p.path?P.path="/"+u.path:p.path?P.path=p.path.slice(0,p.path.lastIndexOf("/")+1)+u.path:P.path=u.path,P.path=Le(P.path)),P.query=u.query):(P.path=p.path,u.query!==void 0?P.query=u.query:P.query=p.query),P.userinfo=p.userinfo,P.host=p.host,P.port=p.port),P.scheme=p.scheme),P.fragment=u.fragment,P}function Ke(p,u,g){var S=l({scheme:"null"},g);return Ie(Oe(se(p,S),se(u,S),S,!0),S)}function De(p,u){return typeof p=="string"?p=Ie(se(p,u),u):s(p)==="object"&&(p=se(Ie(p,u),u)),p}function bt(p,u,g){return typeof p=="string"?p=Ie(se(p,g),g):s(p)==="object"&&(p=Ie(p,g)),typeof u=="string"?u=Ie(se(u,g),g):s(u)==="object"&&(u=Ie(u,g)),p===u}function fa(p,u){return p&&p.toString().replace(!u||!u.iri?f.ESCAPE:d.ESCAPE,Ee)}function ze(p,u){return p&&p.toString().replace(!u||!u.iri?f.PCT_ENCODED:d.PCT_ENCODED,Te)}var it={scheme:"http",domainHost:!0,parse:function(u,g){return u.host||(u.error=u.error||"HTTP URIs must have a host."),u},serialize:function(u,g){var S=String(u.scheme).toLowerCase()==="https";return(u.port===(S?443:80)||u.port==="")&&(u.port=void 0),u.path||(u.path="/"),u}},us={scheme:"https",domainHost:it.domainHost,parse:it.parse,serialize:it.serialize};function ds(p){return typeof p.secure=="boolean"?p.secure:String(p.scheme).toLowerCase()==="wss"}var lt={scheme:"ws",domainHost:!0,parse:function(u,g){var S=u;return S.secure=ds(S),S.resourceName=(S.path||"/")+(S.query?"?"+S.query:""),S.path=void 0,S.query=void 0,S},serialize:function(u,g){if((u.port===(ds(u)?443:80)||u.port==="")&&(u.port=void 0),typeof u.secure=="boolean"&&(u.scheme=u.secure?"wss":"ws",u.secure=void 0),u.resourceName){var S=u.resourceName.split("?"),P=h(S,2),N=P[0],Z=P[1];u.path=N&&N!=="/"?N:void 0,u.query=Z,u.resourceName=void 0}return u.fragment=void 0,u}},fs={scheme:"wss",domainHost:lt.domainHost,parse:lt.parse,serialize:lt.serialize},mi={},vi=!0,hs="[A-Za-z0-9\\-\\.\\_\\~"+(vi?"\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF":"")+"]",Ge="[0-9A-Fa-f]",gi=t(t("%[EFef]"+Ge+"%"+Ge+Ge+"%"+Ge+Ge)+"|"+t("%[89A-Fa-f]"+Ge+"%"+Ge+Ge)+"|"+t("%"+Ge+Ge)),yi="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",_i="[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",Ei=e(_i,'[\\"\\\\]'),Si="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",Pi=new RegExp(hs,"g"),zr=new RegExp(gi,"g"),bi=new RegExp(e("[^]",yi,"[\\.]",'[\\"]',Ei),"g"),ps=new RegExp(e("[^]",hs,Si),"g"),xi=ps;function ha(p){var u=Te(p);return u.match(Pi)?u:p}var ms={scheme:"mailto",parse:function(u,g){var S=u,P=S.to=S.path?S.path.split(","):[];if(S.path=void 0,S.query){for(var N=!1,Z={},re=S.query.split("&"),ne=0,ye=re.length;ne{"use strict";sn.exports=function a(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var s,r,n;if(Array.isArray(e)){if(s=e.length,s!=t.length)return!1;for(r=s;r--!==0;)if(!a(e[r],t[r]))return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(n=Object.keys(e),s=n.length,s!==Object.keys(t).length)return!1;for(r=s;r--!==0;)if(!Object.prototype.hasOwnProperty.call(t,n[r]))return!1;for(r=s;r--!==0;){var l=n[r];if(!a(e[l],t[l]))return!1}return!0}return e!==e&&t!==t}});var on=W((Cf,nn)=>{"use strict";nn.exports=function(e){for(var t=0,s=e.length,r=0,n;r=55296&&n<=56319&&r{"use strict";un.exports={copy:Qc,checkDataType:Ma,checkDataTypes:Zc,coerceToTypes:Kc,toHash:Fa,getProperty:Ua,escapeQuotes:qa,equal:Ht(),ucs2length:on(),varOccurences:Yc,varReplace:Xc,schemaHasRules:eu,schemaHasRulesExcept:ru,schemaUnknownRules:tu,toQuotedString:ja,getPathExpr:au,getPath:su,getData:iu,unescapeFragment:lu,unescapeJsonPointer:Ha,escapeFragment:cu,escapeJsonPointer:Va};function Qc(a,e){e=e||{};for(var t in a)e[t]=a[t];return e}function Ma(a,e,t,s){var r=s?" !== ":" === ",n=s?" || ":" && ",l=s?"!":"",o=s?"":"!";switch(a){case"null":return e+r+"null";case"array":return l+"Array.isArray("+e+")";case"object":return"("+l+e+n+"typeof "+e+r+'"object"'+n+o+"Array.isArray("+e+"))";case"integer":return"(typeof "+e+r+'"number"'+n+o+"("+e+" % 1)"+n+e+r+e+(t?n+l+"isFinite("+e+")":"")+")";case"number":return"(typeof "+e+r+'"'+a+'"'+(t?n+l+"isFinite("+e+")":"")+")";default:return"typeof "+e+r+'"'+a+'"'}}function Zc(a,e,t){switch(a.length){case 1:return Ma(a[0],e,t,!0);default:var s="",r=Fa(a);r.array&&r.object&&(s=r.null?"(":"(!"+e+" || ",s+="typeof "+e+' !== "object")',delete r.null,delete r.array,delete r.object),r.number&&delete r.integer;for(var n in r)s+=(s?" && ":"")+Ma(n,e,t,!0);return s}}var ln=Fa(["string","number","integer","boolean","null"]);function Kc(a,e){if(Array.isArray(e)){for(var t=[],s=0;s=e)throw new Error("Cannot access property/index "+s+" levels up, current level is "+e);return t[e-s]}if(s>e)throw new Error("Cannot access data "+s+" levels up, current level is "+e);if(n="data"+(e-s||""),!r)return n}for(var o=n,f=r.split("/"),d=0;d{"use strict";var uu=Vr();dn.exports=du;function du(a){uu.copy(a,this)}});var hn=W((kf,fn)=>{"use strict";var gr=fn.exports=function(a,e,t){typeof e=="function"&&(t=e,e={}),t=e.cb||t;var s=typeof t=="function"?t:t.pre||function(){},r=t.post||function(){};zt(e,s,r,a,"",a)};gr.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0};gr.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};gr.propsKeywords={definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};gr.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function zt(a,e,t,s,r,n,l,o,f,d){if(s&&typeof s=="object"&&!Array.isArray(s)){e(s,r,n,l,o,f,d);for(var h in s){var m=s[h];if(Array.isArray(m)){if(h in gr.arrayKeywords)for(var E=0;E{"use strict";var St=an(),pn=Ht(),Zt=Vr(),Bt=za(),hu=hn();gn.exports=_r;_r.normalizeId=yr;_r.fullPath=Wt;_r.url=Qt;_r.ids=yu;_r.inlineRef=Ba;_r.schema=Kt;function _r(a,e,t){var s=this._refs[t];if(typeof s=="string")if(this._refs[s])s=this._refs[s];else return _r.call(this,a,e,s);if(s=s||this._schemas[t],s instanceof Bt)return Ba(s.schema,this._opts.inlineRefs)?s.schema:s.validate||this._compile(s);var r=Kt.call(this,e,t),n,l,o;return r&&(n=r.schema,e=r.root,o=r.baseId),n instanceof Bt?l=n.validate||a.call(this,n.schema,e,void 0,o):n!==void 0&&(l=Ba(n,this._opts.inlineRefs)?n:a.call(this,n,e,void 0,o)),l}function Kt(a,e){var t=St.parse(e),s=vn(t),r=Wt(this._getId(a.schema));if(Object.keys(a.schema).length===0||s!==r){var n=yr(s),l=this._refs[n];if(typeof l=="string")return pu.call(this,a,l,t);if(l instanceof Bt)l.validate||this._compile(l),a=l;else if(l=this._schemas[n],l instanceof Bt){if(l.validate||this._compile(l),n==yr(e))return{schema:l,root:a,baseId:r};a=l}else return;if(!a.schema)return;r=Wt(this._getId(a.schema))}return mn.call(this,t,r,a.schema,a)}function pu(a,e,t){var s=Kt.call(this,a,e);if(s){var r=s.schema,n=s.baseId;a=s.root;var l=this._getId(r);return l&&(n=Qt(n,l)),mn.call(this,t,n,r,a)}}var mu=Zt.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function mn(a,e,t,s){if(a.fragment=a.fragment||"",a.fragment.slice(0,1)=="/"){for(var r=a.fragment.split("/"),n=1;n{"use strict";var Za=Gt();_n.exports={Validation:yn(_u),MissingRef:yn(Ka)};function _u(a){this.message="validation failed",this.errors=a,this.ajv=this.validation=!0}Ka.message=function(a,e){return"can't resolve reference "+e+" from id "+a};function Ka(a,e,t){this.message=t||Ka.message(a,e),this.missingRef=Za.url(a,e),this.missingSchema=Za.normalizeId(Za.fullPath(this.missingRef))}function yn(a){return a.prototype=Object.create(Error.prototype),a.prototype.constructor=a,a}});var Ga=W((Mf,En)=>{"use strict";En.exports=function(a,e){e||(e={}),typeof e=="function"&&(e={cmp:e});var t=typeof e.cycles=="boolean"?e.cycles:!1,s=e.cmp&&(function(n){return function(l){return function(o,f){var d={key:o,value:l[o]},h={key:f,value:l[f]};return n(d,h)}}})(e.cmp),r=[];return(function n(l){if(l&&l.toJSON&&typeof l.toJSON=="function"&&(l=l.toJSON()),l!==void 0){if(typeof l=="number")return isFinite(l)?""+l:"null";if(typeof l!="object")return JSON.stringify(l);var o,f;if(Array.isArray(l)){for(f="[",o=0;o{"use strict";Sn.exports=function(e,t,s){var r="",n=e.schema.$async===!0,l=e.util.schemaHasRulesExcept(e.schema,e.RULES.all,"$ref"),o=e.self._getId(e.schema);if(e.opts.strictKeywords){var f=e.util.schemaUnknownRules(e.schema,e.RULES.keywords);if(f){var d="unknown keyword: "+f;if(e.opts.strictKeywords==="log")e.logger.warn(d);else throw new Error(d)}}if(e.isTop&&(r+=" var validate = ",n&&(e.async=!0,r+="async "),r+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",o&&(e.opts.sourceCode||e.opts.processCode)&&(r+=" "+("/*# sourceURL="+o+" */")+" ")),typeof e.schema=="boolean"||!(l||e.schema.$ref)){var t="false schema",h=e.level,m=e.dataLevel,E=e.schema[t],c=e.schemaPath+e.util.getProperty(t),y=e.errSchemaPath+"/"+t,I=!e.opts.allErrors,F,_="data"+(m||""),w="valid"+h;if(e.schema===!1){e.isTop?I=!0:r+=" var "+w+" = false; ";var v=v||[];v.push(r),r="",e.createErrors!==!1?(r+=" { keyword: '"+(F||"false schema")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(y)+" , params: {} ",e.opts.messages!==!1&&(r+=" , message: 'boolean schema is false' "),e.opts.verbose&&(r+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+_+" "),r+=" } "):r+=" {} ";var b=r;r=v.pop(),!e.compositeRule&&I?e.async?r+=" throw new ValidationError(["+b+"]); ":r+=" validate.errors = ["+b+"]; return false; ":r+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else e.isTop?n?r+=" return data; ":r+=" validate.errors = null; return true; ":r+=" var "+w+" = true; ";return e.isTop&&(r+=" }; return validate; "),r}if(e.isTop){var T=e.isTop,h=e.level=0,m=e.dataLevel=0,_="data";if(e.rootId=e.resolve.fullPath(e.self._getId(e.root.schema)),e.baseId=e.baseId||e.rootId,delete e.isTop,e.dataPathArr=[""],e.schema.default!==void 0&&e.opts.useDefaults&&e.opts.strictDefaults){var x="default is ignored in the schema root";if(e.opts.strictDefaults==="log")e.logger.warn(x);else throw new Error(x)}r+=" var vErrors = null; ",r+=" var errors = 0; ",r+=" if (rootData === undefined) rootData = data; "}else{var h=e.level,m=e.dataLevel,_="data"+(m||"");if(o&&(e.baseId=e.resolve.url(e.baseId,o)),n&&!e.async)throw new Error("async schema in sync schema");r+=" var errs_"+h+" = errors;"}var w="valid"+h,I=!e.opts.allErrors,A="",V="",F,C=e.schema.type,U=Array.isArray(C);if(C&&e.opts.nullable&&e.schema.nullable===!0&&(U?C.indexOf("null")==-1&&(C=C.concat("null")):C!="null"&&(C=[C,"null"],U=!0)),U&&C.length==1&&(C=C[0],U=!1),e.schema.$ref&&l){if(e.opts.extendRefs=="fail")throw new Error('$ref: validation keywords used in schema at path "'+e.errSchemaPath+'" (see option extendRefs)');e.opts.extendRefs!==!0&&(l=!1,e.logger.warn('$ref: keywords ignored in schema at path "'+e.errSchemaPath+'"'))}if(e.schema.$comment&&e.opts.$comment&&(r+=" "+e.RULES.all.$comment.code(e,"$comment")),C){if(e.opts.coerceTypes)var j=e.util.coerceToTypes(e.opts.coerceTypes,C);var L=e.RULES.types[C];if(j||U||L===!0||L&&!Se(L)){var c=e.schemaPath+".type",y=e.errSchemaPath+"/type",c=e.schemaPath+".type",y=e.errSchemaPath+"/type",O=U?"checkDataTypes":"checkDataType";if(r+=" if ("+e.util[O](C,_,e.opts.strictNumbers,!0)+") { ",j){var $="dataType"+h,M="coerced"+h;r+=" var "+$+" = typeof "+_+"; var "+M+" = undefined; ",e.opts.coerceTypes=="array"&&(r+=" if ("+$+" == 'object' && Array.isArray("+_+") && "+_+".length == 1) { "+_+" = "+_+"[0]; "+$+" = typeof "+_+"; if ("+e.util.checkDataType(e.schema.type,_,e.opts.strictNumbers)+") "+M+" = "+_+"; } "),r+=" if ("+M+" !== undefined) ; ";var oe=j;if(oe)for(var J,X=-1,G=oe.length-1;X{"use strict";var Yt=Gt(),ea=Vr(),bn=Jt(),Eu=Ga(),Pn=Ja(),Su=ea.ucs2length,Pu=Ht(),bu=bn.Validation;Rn.exports=Ya;function Ya(a,e,t,s){var r=this,n=this._opts,l=[void 0],o={},f=[],d={},h=[],m={},E=[];e=e||{schema:a,refVal:l,refs:o};var c=xu.call(this,a,e,s),y=this._compilations[c.index];if(c.compiling)return y.callValidate=x;var _=this._formats,v=this.RULES;try{var b=w(a,e,t,s);y.validate=b;var T=y.callValidate;return T&&(T.schema=b.schema,T.errors=null,T.refs=b.refs,T.refVal=b.refVal,T.root=b.root,T.$async=b.$async,n.sourceCode&&(T.source=b.source)),b}finally{Ru.call(this,a,e,s)}function x(){var O=y.validate,$=O.apply(this,arguments);return x.errors=O.errors,$}function w(O,$,M,oe){var J=!$||$&&$.schema==O;if($.schema!=e.schema)return Ya.call(r,O,$,M,oe);var X=O.$async===!0,G=Pn({isTop:!0,schema:O,isRoot:J,baseId:oe,root:$,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:bn.MissingRef,RULES:v,validate:Pn,util:ea,resolve:Yt,resolveRef:I,usePattern:U,useDefault:j,useCustomRule:L,opts:n,formats:_,logger:r.logger,self:r});G=Xt(l,Ou)+Xt(f,wu)+Xt(h,Tu)+Xt(E,Iu)+G,n.processCode&&(G=n.processCode(G,O));var H;try{var fe=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",G);H=fe(r,v,_,e,l,h,E,Pu,Su,bu),l[0]=H}catch(be){throw r.logger.error("Error compiling schema, function code:",G),be}return H.schema=O,H.errors=null,H.refs=o,H.refVal=l,H.root=J?H:$,X&&(H.$async=!0),n.sourceCode===!0&&(H.source={code:G,patterns:f,defaults:h}),H}function I(O,$,M){$=Yt.url(O,$);var oe=o[$],J,X;if(oe!==void 0)return J=l[oe],X="refVal["+oe+"]",C(J,X);if(!M&&e.refs){var G=e.refs[$];if(G!==void 0)return J=e.refVal[G],X=A($,J),C(J,X)}X=A($);var H=Yt.call(r,w,e,$);if(H===void 0){var fe=t&&t[$];fe&&(H=Yt.inlineRef(fe,n.inlineRefs)?fe:Ya.call(r,fe,e,t,O))}if(H===void 0)V($);else return F($,H),C(H,X)}function A(O,$){var M=l.length;return l[M]=$,o[O]=M,"refVal"+M}function V(O){delete o[O]}function F(O,$){var M=o[O];l[M]=$}function C(O,$){return typeof O=="object"||typeof O=="boolean"?{code:$,schema:O,inline:!0}:{code:$,$async:O&&!!O.$async}}function U(O){var $=d[O];return $===void 0&&($=d[O]=f.length,f[$]=O),"pattern"+$}function j(O){switch(typeof O){case"boolean":case"number":return""+O;case"string":return ea.toQuotedString(O);case"object":if(O===null)return"null";var $=Eu(O),M=m[$];return M===void 0&&(M=m[$]=h.length,h[M]=O),"default"+M}}function L(O,$,M,oe){if(r._opts.validateSchema!==!1){var J=O.definition.dependencies;if(J&&!J.every(function(Ee){return Object.prototype.hasOwnProperty.call(M,Ee)}))throw new Error("parent schema must have all required keywords: "+J.join(","));var X=O.definition.validateSchema;if(X){var G=X($);if(!G){var H="keyword schema is invalid: "+r.errorsText(X.errors);if(r._opts.validateSchema=="log")r.logger.error(H);else throw new Error(H)}}}var fe=O.definition.compile,be=O.definition.inline,we=O.definition.macro,te;if(fe)te=fe.call(r,$,M,oe);else if(we)te=we.call(r,$,M,oe),n.validateSchema!==!1&&r.validateSchema(te,!0);else if(be)te=be.call(r,oe,O.keyword,$,M);else if(te=O.definition.validate,!te)return;if(te===void 0)throw new Error('custom keyword "'+O.keyword+'"failed to compile');var ve=E.length;return E[ve]=te,{code:"customRule"+ve,validate:te}}}function xu(a,e,t){var s=xn.call(this,a,e,t);return s>=0?{index:s,compiling:!0}:(s=this._compilations.length,this._compilations[s]={schema:a,root:e,baseId:t},{index:s,compiling:!1})}function Ru(a,e,t){var s=xn.call(this,a,e,t);s>=0&&this._compilations.splice(s,1)}function xn(a,e,t){for(var s=0;s{"use strict";var ra=Tn.exports=function(){this._cache={}};ra.prototype.put=function(e,t){this._cache[e]=t};ra.prototype.get=function(e){return this._cache[e]};ra.prototype.del=function(e){delete this._cache[e]};ra.prototype.clear=function(){this._cache={}}});var Un=W((qf,Fn)=>{"use strict";var Au=Vr(),Cu=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,$u=[0,31,28,31,30,31,30,31,31,30,31,30,31],Du=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,In=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ku=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,Nu=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,An=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,Cn=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,$n=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,Dn=/^(?:\/(?:[^~/]|~0|~1)*)*$/,kn=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,Nn=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;Fn.exports=ta;function ta(a){return a=a=="full"?"full":"fast",Au.copy(ta[a])}ta.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":An,url:Cn,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:In,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:jn,uuid:$n,"json-pointer":Dn,"json-pointer-uri-fragment":kn,"relative-json-pointer":Nn};ta.full={date:Ln,time:Mn,"date-time":ju,uri:Uu,"uri-reference":Nu,"uri-template":An,url:Cn,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:In,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:jn,uuid:$n,"json-pointer":Dn,"json-pointer-uri-fragment":kn,"relative-json-pointer":Nn};function Lu(a){return a%4===0&&(a%100!==0||a%400===0)}function Ln(a){var e=a.match(Cu);if(!e)return!1;var t=+e[1],s=+e[2],r=+e[3];return s>=1&&s<=12&&r>=1&&r<=(s==2&&Lu(t)?29:$u[s])}function Mn(a,e){var t=a.match(Du);if(!t)return!1;var s=t[1],r=t[2],n=t[3],l=t[5];return(s<=23&&r<=59&&n<=59||s==23&&r==59&&n==60)&&(!e||l)}var Mu=/t|\s/i;function ju(a){var e=a.split(Mu);return e.length==2&&Ln(e[0])&&Mn(e[1],!0)}var Fu=/\/|:/;function Uu(a){return Fu.test(a)&&ku.test(a)}var qu=/[^\\]\\Z/;function jn(a){if(qu.test(a))return!1;try{return new RegExp(a),!0}catch{return!1}}});var Vn=W((Vf,qn)=>{"use strict";qn.exports=function(e,t,s){var r=" ",n=e.level,l=e.dataLevel,o=e.schema[t],f=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,h="data"+(l||""),m="valid"+n,E,c;if(o=="#"||o=="#/")e.isRoot?(E=e.async,c="validate"):(E=e.root.schema.$async===!0,c="root.refVal[0]");else{var y=e.resolveRef(e.baseId,o,e.isRoot);if(y===void 0){var _=e.MissingRefError.message(e.baseId,o);if(e.opts.missingRefs=="fail"){e.logger.error(_);var v=v||[];v.push(r),r="",e.createErrors!==!1?(r+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(f)+" , params: { ref: '"+e.util.escapeQuotes(o)+"' } ",e.opts.messages!==!1&&(r+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(o)+"' "),e.opts.verbose&&(r+=" , schema: "+e.util.toQuotedString(o)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),r+=" } "):r+=" {} ";var b=r;r=v.pop(),!e.compositeRule&&d?e.async?r+=" throw new ValidationError(["+b+"]); ":r+=" validate.errors = ["+b+"]; return false; ":r+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",d&&(r+=" if (false) { ")}else if(e.opts.missingRefs=="ignore")e.logger.warn(_),d&&(r+=" if (true) { ");else throw new e.MissingRefError(e.baseId,o,_)}else if(y.inline){var T=e.util.copy(e);T.level++;var x="valid"+T.level;T.schema=y.schema,T.schemaPath="",T.errSchemaPath=o;var w=e.validate(T).replace(/validate\.schema/g,y.code);r+=" "+w+" ",d&&(r+=" if ("+x+") { ")}else E=y.$async===!0||e.async&&y.$async!==!1,c=y.code}if(c){var v=v||[];v.push(r),r="",e.opts.passContext?r+=" "+c+".call(this, ":r+=" "+c+"( ",r+=" "+h+", (dataPath || '')",e.errorPath!='""'&&(r+=" + "+e.errorPath);var I=l?"data"+(l-1||""):"parentData",A=l?e.dataPathArr[l]:"parentDataProperty";r+=" , "+I+" , "+A+", rootData) ";var V=r;if(r=v.pop(),E){if(!e.async)throw new Error("async schema referenced by sync schema");d&&(r+=" var "+m+"; "),r+=" try { await "+V+"; ",d&&(r+=" "+m+" = true; "),r+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",d&&(r+=" "+m+" = false; "),r+=" } ",d&&(r+=" if ("+m+") { ")}else r+=" if (!"+V+") { if (vErrors === null) vErrors = "+c+".errors; else vErrors = vErrors.concat("+c+".errors); errors = vErrors.length; } ",d&&(r+=" else { ")}return r}});var zn=W((Hf,Hn)=>{"use strict";Hn.exports=function(e,t,s){var r=" ",n=e.schema[t],l=e.schemaPath+e.util.getProperty(t),o=e.errSchemaPath+"/"+t,f=!e.opts.allErrors,d=e.util.copy(e),h="";d.level++;var m="valid"+d.level,E=d.baseId,c=!0,y=n;if(y)for(var _,v=-1,b=y.length-1;v0||_===!1:e.util.schemaHasRules(_,e.RULES.all))&&(c=!1,d.schema=_,d.schemaPath=l+"["+v+"]",d.errSchemaPath=o+"/"+v,r+=" "+e.validate(d)+" ",d.baseId=E,f&&(r+=" if ("+m+") { ",h+="}"));return f&&(c?r+=" if (true) { ":r+=" "+h.slice(0,-1)+" "),r}});var Wn=W((zf,Bn)=>{"use strict";Bn.exports=function(e,t,s){var r=" ",n=e.level,l=e.dataLevel,o=e.schema[t],f=e.schemaPath+e.util.getProperty(t),d=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,m="data"+(l||""),E="valid"+n,c="errs__"+n,y=e.util.copy(e),_="";y.level++;var v="valid"+y.level,b=o.every(function(F){return e.opts.strictKeywords?typeof F=="object"&&Object.keys(F).length>0||F===!1:e.util.schemaHasRules(F,e.RULES.all)});if(b){var T=y.baseId;r+=" var "+c+" = errors; var "+E+" = false; ";var x=e.compositeRule;e.compositeRule=y.compositeRule=!0;var w=o;if(w)for(var I,A=-1,V=w.length-1;A{"use strict";Qn.exports=function(e,t,s){var r=" ",n=e.schema[t],l=e.errSchemaPath+"/"+t,o=!e.opts.allErrors,f=e.util.toQuotedString(n);return e.opts.$comment===!0?r+=" console.log("+f+");":typeof e.opts.$comment=="function"&&(r+=" self._opts.$comment("+f+", "+e.util.toQuotedString(l)+", validate.root.schema);"),r}});var Gn=W((Wf,Kn)=>{"use strict";Kn.exports=function(e,t,s){var r=" ",n=e.level,l=e.dataLevel,o=e.schema[t],f=e.schemaPath+e.util.getProperty(t),d=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,m="data"+(l||""),E="valid"+n,c=e.opts.$data&&o&&o.$data,y;c?(r+=" var schema"+n+" = "+e.util.getData(o.$data,l,e.dataPathArr)+"; ",y="schema"+n):y=o,c||(r+=" var schema"+n+" = validate.schema"+f+";"),r+="var "+E+" = equal("+m+", schema"+n+"); if (!"+E+") { ";var _=_||[];_.push(r),r="",e.createErrors!==!1?(r+=" { keyword: 'const' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(d)+" , params: { allowedValue: schema"+n+" } ",e.opts.messages!==!1&&(r+=" , message: 'should be equal to constant' "),e.opts.verbose&&(r+=" , schema: validate.schema"+f+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),r+=" } "):r+=" {} ";var v=r;return r=_.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+v+"]); ":r+=" validate.errors = ["+v+"]; return false; ":r+=" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" }",h&&(r+=" else { "),r}});var Yn=W((Qf,Jn)=>{"use strict";Jn.exports=function(e,t,s){var r=" ",n=e.level,l=e.dataLevel,o=e.schema[t],f=e.schemaPath+e.util.getProperty(t),d=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,m="data"+(l||""),E="valid"+n,c="errs__"+n,y=e.util.copy(e),_="";y.level++;var v="valid"+y.level,b="i"+n,T=y.dataLevel=e.dataLevel+1,x="data"+T,w=e.baseId,I=e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all);if(r+="var "+c+" = errors;var "+E+";",I){var A=e.compositeRule;e.compositeRule=y.compositeRule=!0,y.schema=o,y.schemaPath=f,y.errSchemaPath=d,r+=" var "+v+" = false; for (var "+b+" = 0; "+b+" < "+m+".length; "+b+"++) { ",y.errorPath=e.util.getPathExpr(e.errorPath,b,e.opts.jsonPointers,!0);var V=m+"["+b+"]";y.dataPathArr[T]=b;var F=e.validate(y);y.baseId=w,e.util.varOccurences(F,x)<2?r+=" "+e.util.varReplace(F,x,V)+" ":r+=" var "+x+" = "+V+"; "+F+" ",r+=" if ("+v+") break; } ",e.compositeRule=y.compositeRule=A,r+=" "+_+" if (!"+v+") {"}else r+=" if ("+m+".length == 0) {";var C=C||[];C.push(r),r="",e.createErrors!==!1?(r+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(d)+" , params: {} ",e.opts.messages!==!1&&(r+=" , message: 'should contain a valid item' "),e.opts.verbose&&(r+=" , schema: validate.schema"+f+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),r+=" } "):r+=" {} ";var U=r;return r=C.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+U+"]); ":r+=" validate.errors = ["+U+"]; return false; ":r+=" var err = "+U+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } else { ",I&&(r+=" errors = "+c+"; if (vErrors !== null) { if ("+c+") vErrors.length = "+c+"; else vErrors = null; } "),e.opts.allErrors&&(r+=" } "),r}});var eo=W((Zf,Xn)=>{"use strict";Xn.exports=function(e,t,s){var r=" ",n=e.level,l=e.dataLevel,o=e.schema[t],f=e.schemaPath+e.util.getProperty(t),d=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,m="data"+(l||""),E="errs__"+n,c=e.util.copy(e),y="";c.level++;var _="valid"+c.level,v={},b={},T=e.opts.ownProperties;for(A in o)if(A!="__proto__"){var x=o[A],w=Array.isArray(x)?b:v;w[A]=x}r+="var "+E+" = errors;";var I=e.errorPath;r+="var missing"+n+";";for(var A in b)if(w=b[A],w.length){if(r+=" if ( "+m+e.util.getProperty(A)+" !== undefined ",T&&(r+=" && Object.prototype.hasOwnProperty.call("+m+", '"+e.util.escapeQuotes(A)+"') "),h){r+=" && ( ";var V=w;if(V)for(var F,C=-1,U=V.length-1;C0||x===!1:e.util.schemaHasRules(x,e.RULES.all))&&(r+=" "+_+" = true; if ( "+m+e.util.getProperty(A)+" !== undefined ",T&&(r+=" && Object.prototype.hasOwnProperty.call("+m+", '"+e.util.escapeQuotes(A)+"') "),r+=") { ",c.schema=x,c.schemaPath=f+e.util.getProperty(A),c.errSchemaPath=d+"/"+e.util.escapeFragment(A),r+=" "+e.validate(c)+" ",c.baseId=H,r+=" } ",h&&(r+=" if ("+_+") { ",y+="}"))}return h&&(r+=" "+y+" if ("+E+" == errors) {"),r}});var to=W((Kf,ro)=>{"use strict";ro.exports=function(e,t,s){var r=" ",n=e.level,l=e.dataLevel,o=e.schema[t],f=e.schemaPath+e.util.getProperty(t),d=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,m="data"+(l||""),E="valid"+n,c=e.opts.$data&&o&&o.$data,y;c?(r+=" var schema"+n+" = "+e.util.getData(o.$data,l,e.dataPathArr)+"; ",y="schema"+n):y=o;var _="i"+n,v="schema"+n;c||(r+=" var "+v+" = validate.schema"+f+";"),r+="var "+E+";",c&&(r+=" if (schema"+n+" === undefined) "+E+" = true; else if (!Array.isArray(schema"+n+")) "+E+" = false; else {"),r+=""+E+" = false;for (var "+_+"=0; "+_+"<"+v+".length; "+_+"++) if (equal("+m+", "+v+"["+_+"])) { "+E+" = true; break; }",c&&(r+=" } "),r+=" if (!"+E+") { ";var b=b||[];b.push(r),r="",e.createErrors!==!1?(r+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(d)+" , params: { allowedValues: schema"+n+" } ",e.opts.messages!==!1&&(r+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(r+=" , schema: validate.schema"+f+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),r+=" } "):r+=" {} ";var T=r;return r=b.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+T+"]); ":r+=" validate.errors = ["+T+"]; return false; ":r+=" var err = "+T+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" }",h&&(r+=" else { "),r}});var so=W((Gf,ao)=>{"use strict";ao.exports=function(e,t,s){var r=" ",n=e.level,l=e.dataLevel,o=e.schema[t],f=e.schemaPath+e.util.getProperty(t),d=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,m="data"+(l||"");if(e.opts.format===!1)return h&&(r+=" if (true) { "),r;var E=e.opts.$data&&o&&o.$data,c;E?(r+=" var schema"+n+" = "+e.util.getData(o.$data,l,e.dataPathArr)+"; ",c="schema"+n):c=o;var y=e.opts.unknownFormats,_=Array.isArray(y);if(E){var v="format"+n,b="isObject"+n,T="formatType"+n;r+=" var "+v+" = formats["+c+"]; var "+b+" = typeof "+v+" == 'object' && !("+v+" instanceof RegExp) && "+v+".validate; var "+T+" = "+b+" && "+v+".type || 'string'; if ("+b+") { ",e.async&&(r+=" var async"+n+" = "+v+".async; "),r+=" "+v+" = "+v+".validate; } if ( ",E&&(r+=" ("+c+" !== undefined && typeof "+c+" != 'string') || "),r+=" (",y!="ignore"&&(r+=" ("+c+" && !"+v+" ",_&&(r+=" && self._opts.unknownFormats.indexOf("+c+") == -1 "),r+=") || "),r+=" ("+v+" && "+T+" == '"+s+"' && !(typeof "+v+" == 'function' ? ",e.async?r+=" (async"+n+" ? await "+v+"("+m+") : "+v+"("+m+")) ":r+=" "+v+"("+m+") ",r+=" : "+v+".test("+m+"))))) {"}else{var v=e.formats[o];if(!v){if(y=="ignore")return e.logger.warn('unknown format "'+o+'" ignored in schema at path "'+e.errSchemaPath+'"'),h&&(r+=" if (true) { "),r;if(_&&y.indexOf(o)>=0)return h&&(r+=" if (true) { "),r;throw new Error('unknown format "'+o+'" is used in schema at path "'+e.errSchemaPath+'"')}var b=typeof v=="object"&&!(v instanceof RegExp)&&v.validate,T=b&&v.type||"string";if(b){var x=v.async===!0;v=v.validate}if(T!=s)return h&&(r+=" if (true) { "),r;if(x){if(!e.async)throw new Error("async format in sync schema");var w="formats"+e.util.getProperty(o)+".validate";r+=" if (!(await "+w+"("+m+"))) { "}else{r+=" if (! ";var w="formats"+e.util.getProperty(o);b&&(w+=".validate"),typeof v=="function"?r+=" "+w+"("+m+") ":r+=" "+w+".test("+m+") ",r+=") { "}}var I=I||[];I.push(r),r="",e.createErrors!==!1?(r+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(d)+" , params: { format: ",E?r+=""+c:r+=""+e.util.toQuotedString(o),r+=" } ",e.opts.messages!==!1&&(r+=` , message: 'should match format "`,E?r+="' + "+c+" + '":r+=""+e.util.escapeQuotes(o),r+=`"' `),e.opts.verbose&&(r+=" , schema: ",E?r+="validate.schema"+f:r+=""+e.util.toQuotedString(o),r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),r+=" } "):r+=" {} ";var A=r;return r=I.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+A+"]); ":r+=" validate.errors = ["+A+"]; return false; ":r+=" var err = "+A+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } ",h&&(r+=" else { "),r}});var oo=W((Jf,no)=>{"use strict";no.exports=function(e,t,s){var r=" ",n=e.level,l=e.dataLevel,o=e.schema[t],f=e.schemaPath+e.util.getProperty(t),d=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,m="data"+(l||""),E="valid"+n,c="errs__"+n,y=e.util.copy(e);y.level++;var _="valid"+y.level,v=e.schema.then,b=e.schema.else,T=v!==void 0&&(e.opts.strictKeywords?typeof v=="object"&&Object.keys(v).length>0||v===!1:e.util.schemaHasRules(v,e.RULES.all)),x=b!==void 0&&(e.opts.strictKeywords?typeof b=="object"&&Object.keys(b).length>0||b===!1:e.util.schemaHasRules(b,e.RULES.all)),w=y.baseId;if(T||x){var I;y.createErrors=!1,y.schema=o,y.schemaPath=f,y.errSchemaPath=d,r+=" var "+c+" = errors; var "+E+" = true; ";var A=e.compositeRule;e.compositeRule=y.compositeRule=!0,r+=" "+e.validate(y)+" ",y.baseId=w,y.createErrors=!0,r+=" errors = "+c+"; if (vErrors !== null) { if ("+c+") vErrors.length = "+c+"; else vErrors = null; } ",e.compositeRule=y.compositeRule=A,T?(r+=" if ("+_+") { ",y.schema=e.schema.then,y.schemaPath=e.schemaPath+".then",y.errSchemaPath=e.errSchemaPath+"/then",r+=" "+e.validate(y)+" ",y.baseId=w,r+=" "+E+" = "+_+"; ",T&&x?(I="ifClause"+n,r+=" var "+I+" = 'then'; "):I="'then'",r+=" } ",x&&(r+=" else { ")):r+=" if (!"+_+") { ",x&&(y.schema=e.schema.else,y.schemaPath=e.schemaPath+".else",y.errSchemaPath=e.errSchemaPath+"/else",r+=" "+e.validate(y)+" ",y.baseId=w,r+=" "+E+" = "+_+"; ",T&&x?(I="ifClause"+n,r+=" var "+I+" = 'else'; "):I="'else'",r+=" } "),r+=" if (!"+E+") { var err = ",e.createErrors!==!1?(r+=" { keyword: 'if' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(d)+" , params: { failingKeyword: "+I+" } ",e.opts.messages!==!1&&(r+=` , message: 'should match "' + `+I+` + '" schema' `),e.opts.verbose&&(r+=" , schema: validate.schema"+f+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),r+=" } "):r+=" {} ",r+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&h&&(e.async?r+=" throw new ValidationError(vErrors); ":r+=" validate.errors = vErrors; return false; "),r+=" } ",h&&(r+=" else { ")}else h&&(r+=" if (true) { ");return r}});var lo=W((Yf,io)=>{"use strict";io.exports=function(e,t,s){var r=" ",n=e.level,l=e.dataLevel,o=e.schema[t],f=e.schemaPath+e.util.getProperty(t),d=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,m="data"+(l||""),E="valid"+n,c="errs__"+n,y=e.util.copy(e),_="";y.level++;var v="valid"+y.level,b="i"+n,T=y.dataLevel=e.dataLevel+1,x="data"+T,w=e.baseId;if(r+="var "+c+" = errors;var "+E+";",Array.isArray(o)){var I=e.schema.additionalItems;if(I===!1){r+=" "+E+" = "+m+".length <= "+o.length+"; ";var A=d;d=e.errSchemaPath+"/additionalItems",r+=" if (!"+E+") { ";var V=V||[];V.push(r),r="",e.createErrors!==!1?(r+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(d)+" , params: { limit: "+o.length+" } ",e.opts.messages!==!1&&(r+=" , message: 'should NOT have more than "+o.length+" items' "),e.opts.verbose&&(r+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),r+=" } "):r+=" {} ";var F=r;r=V.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+F+"]); ":r+=" validate.errors = ["+F+"]; return false; ":r+=" var err = "+F+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } ",d=A,h&&(_+="}",r+=" else { ")}var C=o;if(C){for(var U,j=-1,L=C.length-1;j0||U===!1:e.util.schemaHasRules(U,e.RULES.all)){r+=" "+v+" = true; if ("+m+".length > "+j+") { ";var O=m+"["+j+"]";y.schema=U,y.schemaPath=f+"["+j+"]",y.errSchemaPath=d+"/"+j,y.errorPath=e.util.getPathExpr(e.errorPath,j,e.opts.jsonPointers,!0),y.dataPathArr[T]=j;var $=e.validate(y);y.baseId=w,e.util.varOccurences($,x)<2?r+=" "+e.util.varReplace($,x,O)+" ":r+=" var "+x+" = "+O+"; "+$+" ",r+=" } ",h&&(r+=" if ("+v+") { ",_+="}")}}if(typeof I=="object"&&(e.opts.strictKeywords?typeof I=="object"&&Object.keys(I).length>0||I===!1:e.util.schemaHasRules(I,e.RULES.all))){y.schema=I,y.schemaPath=e.schemaPath+".additionalItems",y.errSchemaPath=e.errSchemaPath+"/additionalItems",r+=" "+v+" = true; if ("+m+".length > "+o.length+") { for (var "+b+" = "+o.length+"; "+b+" < "+m+".length; "+b+"++) { ",y.errorPath=e.util.getPathExpr(e.errorPath,b,e.opts.jsonPointers,!0);var O=m+"["+b+"]";y.dataPathArr[T]=b;var $=e.validate(y);y.baseId=w,e.util.varOccurences($,x)<2?r+=" "+e.util.varReplace($,x,O)+" ":r+=" var "+x+" = "+O+"; "+$+" ",h&&(r+=" if (!"+v+") break; "),r+=" } } ",h&&(r+=" if ("+v+") { ",_+="}")}}else if(e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all)){y.schema=o,y.schemaPath=f,y.errSchemaPath=d,r+=" for (var "+b+" = 0; "+b+" < "+m+".length; "+b+"++) { ",y.errorPath=e.util.getPathExpr(e.errorPath,b,e.opts.jsonPointers,!0);var O=m+"["+b+"]";y.dataPathArr[T]=b;var $=e.validate(y);y.baseId=w,e.util.varOccurences($,x)<2?r+=" "+e.util.varReplace($,x,O)+" ":r+=" var "+x+" = "+O+"; "+$+" ",h&&(r+=" if (!"+v+") break; "),r+=" }"}return h&&(r+=" "+_+" if ("+c+" == errors) {"),r}});var Xa=W((Xf,co)=>{"use strict";co.exports=function(e,t,s){var r=" ",n=e.level,l=e.dataLevel,o=e.schema[t],f=e.schemaPath+e.util.getProperty(t),d=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,w,m="data"+(l||""),E=e.opts.$data&&o&&o.$data,c;E?(r+=" var schema"+n+" = "+e.util.getData(o.$data,l,e.dataPathArr)+"; ",c="schema"+n):c=o;var y=t=="maximum",_=y?"exclusiveMaximum":"exclusiveMinimum",v=e.schema[_],b=e.opts.$data&&v&&v.$data,T=y?"<":">",x=y?">":"<",w=void 0;if(!(E||typeof o=="number"||o===void 0))throw new Error(t+" must be number");if(!(b||v===void 0||typeof v=="number"||typeof v=="boolean"))throw new Error(_+" must be number or boolean");if(b){var I=e.util.getData(v.$data,l,e.dataPathArr),A="exclusive"+n,V="exclType"+n,F="exclIsNumber"+n,C="op"+n,U="' + "+C+" + '";r+=" var schemaExcl"+n+" = "+I+"; ",I="schemaExcl"+n,r+=" var "+A+"; var "+V+" = typeof "+I+"; if ("+V+" != 'boolean' && "+V+" != 'undefined' && "+V+" != 'number') { ";var w=_,j=j||[];j.push(r),r="",e.createErrors!==!1?(r+=" { keyword: '"+(w||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(d)+" , params: {} ",e.opts.messages!==!1&&(r+=" , message: '"+_+" should be boolean' "),e.opts.verbose&&(r+=" , schema: validate.schema"+f+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),r+=" } "):r+=" {} ";var L=r;r=j.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+L+"]); ":r+=" validate.errors = ["+L+"]; return false; ":r+=" var err = "+L+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } else if ( ",E&&(r+=" ("+c+" !== undefined && typeof "+c+" != 'number') || "),r+=" "+V+" == 'number' ? ( ("+A+" = "+c+" === undefined || "+I+" "+T+"= "+c+") ? "+m+" "+x+"= "+I+" : "+m+" "+x+" "+c+" ) : ( ("+A+" = "+I+" === true) ? "+m+" "+x+"= "+c+" : "+m+" "+x+" "+c+" ) || "+m+" !== "+m+") { var op"+n+" = "+A+" ? '"+T+"' : '"+T+"='; ",o===void 0&&(w=_,d=e.errSchemaPath+"/"+_,c=I,E=b)}else{var F=typeof v=="number",U=T;if(F&&E){var C="'"+U+"'";r+=" if ( ",E&&(r+=" ("+c+" !== undefined && typeof "+c+" != 'number') || "),r+=" ( "+c+" === undefined || "+v+" "+T+"= "+c+" ? "+m+" "+x+"= "+v+" : "+m+" "+x+" "+c+" ) || "+m+" !== "+m+") { "}else{F&&o===void 0?(A=!0,w=_,d=e.errSchemaPath+"/"+_,c=v,x+="="):(F&&(c=Math[y?"min":"max"](v,o)),v===(F?c:!0)?(A=!0,w=_,d=e.errSchemaPath+"/"+_,x+="="):(A=!1,U+="="));var C="'"+U+"'";r+=" if ( ",E&&(r+=" ("+c+" !== undefined && typeof "+c+" != 'number') || "),r+=" "+m+" "+x+" "+c+" || "+m+" !== "+m+") { "}}w=w||t;var j=j||[];j.push(r),r="",e.createErrors!==!1?(r+=" { keyword: '"+(w||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(d)+" , params: { comparison: "+C+", limit: "+c+", exclusive: "+A+" } ",e.opts.messages!==!1&&(r+=" , message: 'should be "+U+" ",E?r+="' + "+c:r+=""+c+"'"),e.opts.verbose&&(r+=" , schema: ",E?r+="validate.schema"+f:r+=""+o,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),r+=" } "):r+=" {} ";var L=r;return r=j.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+L+"]); ":r+=" validate.errors = ["+L+"]; return false; ":r+=" var err = "+L+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } ",h&&(r+=" else { "),r}});var es=W((eh,uo)=>{"use strict";uo.exports=function(e,t,s){var r=" ",n=e.level,l=e.dataLevel,o=e.schema[t],f=e.schemaPath+e.util.getProperty(t),d=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,_,m="data"+(l||""),E=e.opts.$data&&o&&o.$data,c;if(E?(r+=" var schema"+n+" = "+e.util.getData(o.$data,l,e.dataPathArr)+"; ",c="schema"+n):c=o,!(E||typeof o=="number"))throw new Error(t+" must be number");var y=t=="maxItems"?">":"<";r+="if ( ",E&&(r+=" ("+c+" !== undefined && typeof "+c+" != 'number') || "),r+=" "+m+".length "+y+" "+c+") { ";var _=t,v=v||[];v.push(r),r="",e.createErrors!==!1?(r+=" { keyword: '"+(_||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(d)+" , params: { limit: "+c+" } ",e.opts.messages!==!1&&(r+=" , message: 'should NOT have ",t=="maxItems"?r+="more":r+="fewer",r+=" than ",E?r+="' + "+c+" + '":r+=""+o,r+=" items' "),e.opts.verbose&&(r+=" , schema: ",E?r+="validate.schema"+f:r+=""+o,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),r+=" } "):r+=" {} ";var b=r;return r=v.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+b+"]); ":r+=" validate.errors = ["+b+"]; return false; ":r+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",h&&(r+=" else { "),r}});var rs=W((rh,fo)=>{"use strict";fo.exports=function(e,t,s){var r=" ",n=e.level,l=e.dataLevel,o=e.schema[t],f=e.schemaPath+e.util.getProperty(t),d=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,_,m="data"+(l||""),E=e.opts.$data&&o&&o.$data,c;if(E?(r+=" var schema"+n+" = "+e.util.getData(o.$data,l,e.dataPathArr)+"; ",c="schema"+n):c=o,!(E||typeof o=="number"))throw new Error(t+" must be number");var y=t=="maxLength"?">":"<";r+="if ( ",E&&(r+=" ("+c+" !== undefined && typeof "+c+" != 'number') || "),e.opts.unicode===!1?r+=" "+m+".length ":r+=" ucs2length("+m+") ",r+=" "+y+" "+c+") { ";var _=t,v=v||[];v.push(r),r="",e.createErrors!==!1?(r+=" { keyword: '"+(_||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(d)+" , params: { limit: "+c+" } ",e.opts.messages!==!1&&(r+=" , message: 'should NOT be ",t=="maxLength"?r+="longer":r+="shorter",r+=" than ",E?r+="' + "+c+" + '":r+=""+o,r+=" characters' "),e.opts.verbose&&(r+=" , schema: ",E?r+="validate.schema"+f:r+=""+o,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),r+=" } "):r+=" {} ";var b=r;return r=v.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+b+"]); ":r+=" validate.errors = ["+b+"]; return false; ":r+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",h&&(r+=" else { "),r}});var ts=W((th,ho)=>{"use strict";ho.exports=function(e,t,s){var r=" ",n=e.level,l=e.dataLevel,o=e.schema[t],f=e.schemaPath+e.util.getProperty(t),d=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,_,m="data"+(l||""),E=e.opts.$data&&o&&o.$data,c;if(E?(r+=" var schema"+n+" = "+e.util.getData(o.$data,l,e.dataPathArr)+"; ",c="schema"+n):c=o,!(E||typeof o=="number"))throw new Error(t+" must be number");var y=t=="maxProperties"?">":"<";r+="if ( ",E&&(r+=" ("+c+" !== undefined && typeof "+c+" != 'number') || "),r+=" Object.keys("+m+").length "+y+" "+c+") { ";var _=t,v=v||[];v.push(r),r="",e.createErrors!==!1?(r+=" { keyword: '"+(_||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(d)+" , params: { limit: "+c+" } ",e.opts.messages!==!1&&(r+=" , message: 'should NOT have ",t=="maxProperties"?r+="more":r+="fewer",r+=" than ",E?r+="' + "+c+" + '":r+=""+o,r+=" properties' "),e.opts.verbose&&(r+=" , schema: ",E?r+="validate.schema"+f:r+=""+o,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),r+=" } "):r+=" {} ";var b=r;return r=v.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+b+"]); ":r+=" validate.errors = ["+b+"]; return false; ":r+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",h&&(r+=" else { "),r}});var mo=W((ah,po)=>{"use strict";po.exports=function(e,t,s){var r=" ",n=e.level,l=e.dataLevel,o=e.schema[t],f=e.schemaPath+e.util.getProperty(t),d=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,m="data"+(l||""),E=e.opts.$data&&o&&o.$data,c;if(E?(r+=" var schema"+n+" = "+e.util.getData(o.$data,l,e.dataPathArr)+"; ",c="schema"+n):c=o,!(E||typeof o=="number"))throw new Error(t+" must be number");r+="var division"+n+";if (",E&&(r+=" "+c+" !== undefined && ( typeof "+c+" != 'number' || "),r+=" (division"+n+" = "+m+" / "+c+", ",e.opts.multipleOfPrecision?r+=" Math.abs(Math.round(division"+n+") - division"+n+") > 1e-"+e.opts.multipleOfPrecision+" ":r+=" division"+n+" !== parseInt(division"+n+") ",r+=" ) ",E&&(r+=" ) "),r+=" ) { ";var y=y||[];y.push(r),r="",e.createErrors!==!1?(r+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(d)+" , params: { multipleOf: "+c+" } ",e.opts.messages!==!1&&(r+=" , message: 'should be multiple of ",E?r+="' + "+c:r+=""+c+"'"),e.opts.verbose&&(r+=" , schema: ",E?r+="validate.schema"+f:r+=""+o,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),r+=" } "):r+=" {} ";var _=r;return r=y.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+_+"]); ":r+=" validate.errors = ["+_+"]; return false; ":r+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",h&&(r+=" else { "),r}});var go=W((sh,vo)=>{"use strict";vo.exports=function(e,t,s){var r=" ",n=e.level,l=e.dataLevel,o=e.schema[t],f=e.schemaPath+e.util.getProperty(t),d=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,m="data"+(l||""),E="errs__"+n,c=e.util.copy(e);c.level++;var y="valid"+c.level;if(e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all)){c.schema=o,c.schemaPath=f,c.errSchemaPath=d,r+=" var "+E+" = errors; ";var _=e.compositeRule;e.compositeRule=c.compositeRule=!0,c.createErrors=!1;var v;c.opts.allErrors&&(v=c.opts.allErrors,c.opts.allErrors=!1),r+=" "+e.validate(c)+" ",c.createErrors=!0,v&&(c.opts.allErrors=v),e.compositeRule=c.compositeRule=_,r+=" if ("+y+") { ";var b=b||[];b.push(r),r="",e.createErrors!==!1?(r+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(d)+" , params: {} ",e.opts.messages!==!1&&(r+=" , message: 'should NOT be valid' "),e.opts.verbose&&(r+=" , schema: validate.schema"+f+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),r+=" } "):r+=" {} ";var T=r;r=b.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+T+"]); ":r+=" validate.errors = ["+T+"]; return false; ":r+=" var err = "+T+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } else { errors = "+E+"; if (vErrors !== null) { if ("+E+") vErrors.length = "+E+"; else vErrors = null; } ",e.opts.allErrors&&(r+=" } ")}else r+=" var err = ",e.createErrors!==!1?(r+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(d)+" , params: {} ",e.opts.messages!==!1&&(r+=" , message: 'should NOT be valid' "),e.opts.verbose&&(r+=" , schema: validate.schema"+f+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),r+=" } "):r+=" {} ",r+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",h&&(r+=" if (false) { ");return r}});var _o=W((nh,yo)=>{"use strict";yo.exports=function(e,t,s){var r=" ",n=e.level,l=e.dataLevel,o=e.schema[t],f=e.schemaPath+e.util.getProperty(t),d=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,m="data"+(l||""),E="valid"+n,c="errs__"+n,y=e.util.copy(e),_="";y.level++;var v="valid"+y.level,b=y.baseId,T="prevValid"+n,x="passingSchemas"+n;r+="var "+c+" = errors , "+T+" = false , "+E+" = false , "+x+" = null; ";var w=e.compositeRule;e.compositeRule=y.compositeRule=!0;var I=o;if(I)for(var A,V=-1,F=I.length-1;V0||A===!1:e.util.schemaHasRules(A,e.RULES.all))?(y.schema=A,y.schemaPath=f+"["+V+"]",y.errSchemaPath=d+"/"+V,r+=" "+e.validate(y)+" ",y.baseId=b):r+=" var "+v+" = true; ",V&&(r+=" if ("+v+" && "+T+") { "+E+" = false; "+x+" = ["+x+", "+V+"]; } else { ",_+="}"),r+=" if ("+v+") { "+E+" = "+T+" = true; "+x+" = "+V+"; }";return e.compositeRule=y.compositeRule=w,r+=""+_+"if (!"+E+") { var err = ",e.createErrors!==!1?(r+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(d)+" , params: { passingSchemas: "+x+" } ",e.opts.messages!==!1&&(r+=" , message: 'should match exactly one schema in oneOf' "),e.opts.verbose&&(r+=" , schema: validate.schema"+f+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),r+=" } "):r+=" {} ",r+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&h&&(e.async?r+=" throw new ValidationError(vErrors); ":r+=" validate.errors = vErrors; return false; "),r+="} else { errors = "+c+"; if (vErrors !== null) { if ("+c+") vErrors.length = "+c+"; else vErrors = null; }",e.opts.allErrors&&(r+=" } "),r}});var So=W((oh,Eo)=>{"use strict";Eo.exports=function(e,t,s){var r=" ",n=e.level,l=e.dataLevel,o=e.schema[t],f=e.schemaPath+e.util.getProperty(t),d=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,m="data"+(l||""),E=e.opts.$data&&o&&o.$data,c;E?(r+=" var schema"+n+" = "+e.util.getData(o.$data,l,e.dataPathArr)+"; ",c="schema"+n):c=o;var y=E?"(new RegExp("+c+"))":e.usePattern(o);r+="if ( ",E&&(r+=" ("+c+" !== undefined && typeof "+c+" != 'string') || "),r+=" !"+y+".test("+m+") ) { ";var _=_||[];_.push(r),r="",e.createErrors!==!1?(r+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(d)+" , params: { pattern: ",E?r+=""+c:r+=""+e.util.toQuotedString(o),r+=" } ",e.opts.messages!==!1&&(r+=` , message: 'should match pattern "`,E?r+="' + "+c+" + '":r+=""+e.util.escapeQuotes(o),r+=`"' `),e.opts.verbose&&(r+=" , schema: ",E?r+="validate.schema"+f:r+=""+e.util.toQuotedString(o),r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),r+=" } "):r+=" {} ";var v=r;return r=_.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+v+"]); ":r+=" validate.errors = ["+v+"]; return false; ":r+=" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",h&&(r+=" else { "),r}});var bo=W((ih,Po)=>{"use strict";Po.exports=function(e,t,s){var r=" ",n=e.level,l=e.dataLevel,o=e.schema[t],f=e.schemaPath+e.util.getProperty(t),d=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,m="data"+(l||""),E="errs__"+n,c=e.util.copy(e),y="";c.level++;var _="valid"+c.level,v="key"+n,b="idx"+n,T=c.dataLevel=e.dataLevel+1,x="data"+T,w="dataProperties"+n,I=Object.keys(o||{}).filter(X),A=e.schema.patternProperties||{},V=Object.keys(A).filter(X),F=e.schema.additionalProperties,C=I.length||V.length,U=F===!1,j=typeof F=="object"&&Object.keys(F).length,L=e.opts.removeAdditional,O=U||j||L,$=e.opts.ownProperties,M=e.baseId,oe=e.schema.required;if(oe&&!(e.opts.$data&&oe.$data)&&oe.length8)r+=" || validate.schema"+f+".hasOwnProperty("+v+") ";else{var G=I;if(G)for(var H,fe=-1,be=G.length-1;fe0||Se===!1:e.util.schemaHasRules(Se,e.RULES.all)){var Le=e.util.getProperty(H),xe=m+Le,Ie=fr&&Se.default!==void 0;c.schema=Se,c.schemaPath=f+Le,c.errSchemaPath=d+"/"+e.util.escapeFragment(H),c.errorPath=e.util.getPath(e.errorPath,H,e.opts.jsonPointers),c.dataPathArr[T]=e.util.toQuotedString(H);var se=e.validate(c);if(c.baseId=M,e.util.varOccurences(se,x)<2){se=e.util.varReplace(se,x,xe);var Oe=xe}else{var Oe=x;r+=" var "+x+" = "+xe+"; "}if(Ie)r+=" "+se+" ";else{if(J&&J[H]){r+=" if ( "+Oe+" === undefined ",$&&(r+=" || ! Object.prototype.hasOwnProperty.call("+m+", '"+e.util.escapeQuotes(H)+"') "),r+=") { "+_+" = false; ";var Te=e.errorPath,tr=d,Ke=e.util.escapeQuotes(H);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(Te,H,e.opts.jsonPointers)),d=e.errSchemaPath+"/required";var ge=ge||[];ge.push(r),r="",e.createErrors!==!1?(r+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(d)+" , params: { missingProperty: '"+Ke+"' } ",e.opts.messages!==!1&&(r+=" , message: '",e.opts._errorDataPathProperty?r+="is a required property":r+="should have required property \\'"+Ke+"\\'",r+="' "),e.opts.verbose&&(r+=" , schema: validate.schema"+f+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),r+=" } "):r+=" {} ";var he=r;r=ge.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+he+"]); ":r+=" validate.errors = ["+he+"]; return false; ":r+=" var err = "+he+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",d=tr,e.errorPath=Te,r+=" } else { "}else h?(r+=" if ( "+Oe+" === undefined ",$&&(r+=" || ! Object.prototype.hasOwnProperty.call("+m+", '"+e.util.escapeQuotes(H)+"') "),r+=") { "+_+" = true; } else { "):(r+=" if ("+Oe+" !== undefined ",$&&(r+=" && Object.prototype.hasOwnProperty.call("+m+", '"+e.util.escapeQuotes(H)+"') "),r+=" ) { ");r+=" "+se+" } "}}h&&(r+=" if ("+_+") { ",y+="}")}}if(V.length){var De=V;if(De)for(var te,bt=-1,fa=De.length-1;bt0||Se===!1:e.util.schemaHasRules(Se,e.RULES.all)){c.schema=Se,c.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(te),c.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(te),$?r+=" "+w+" = "+w+" || Object.keys("+m+"); for (var "+b+"=0; "+b+"<"+w+".length; "+b+"++) { var "+v+" = "+w+"["+b+"]; ":r+=" for (var "+v+" in "+m+") { ",r+=" if ("+e.usePattern(te)+".test("+v+")) { ",c.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers);var xe=m+"["+v+"]";c.dataPathArr[T]=v;var se=e.validate(c);c.baseId=M,e.util.varOccurences(se,x)<2?r+=" "+e.util.varReplace(se,x,xe)+" ":r+=" var "+x+" = "+xe+"; "+se+" ",h&&(r+=" if (!"+_+") break; "),r+=" } ",h&&(r+=" else "+_+" = true; "),r+=" } ",h&&(r+=" if ("+_+") { ",y+="}")}}}return h&&(r+=" "+y+" if ("+E+" == errors) {"),r}});var Ro=W((lh,xo)=>{"use strict";xo.exports=function(e,t,s){var r=" ",n=e.level,l=e.dataLevel,o=e.schema[t],f=e.schemaPath+e.util.getProperty(t),d=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,m="data"+(l||""),E="errs__"+n,c=e.util.copy(e),y="";c.level++;var _="valid"+c.level;if(r+="var "+E+" = errors;",e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all)){c.schema=o,c.schemaPath=f,c.errSchemaPath=d;var v="key"+n,b="idx"+n,T="i"+n,x="' + "+v+" + '",w=c.dataLevel=e.dataLevel+1,I="data"+w,A="dataProperties"+n,V=e.opts.ownProperties,F=e.baseId;V&&(r+=" var "+A+" = undefined; "),V?r+=" "+A+" = "+A+" || Object.keys("+m+"); for (var "+b+"=0; "+b+"<"+A+".length; "+b+"++) { var "+v+" = "+A+"["+b+"]; ":r+=" for (var "+v+" in "+m+") { ",r+=" var startErrs"+n+" = errors; ";var C=v,U=e.compositeRule;e.compositeRule=c.compositeRule=!0;var j=e.validate(c);c.baseId=F,e.util.varOccurences(j,I)<2?r+=" "+e.util.varReplace(j,I,C)+" ":r+=" var "+I+" = "+C+"; "+j+" ",e.compositeRule=c.compositeRule=U,r+=" if (!"+_+") { for (var "+T+"=startErrs"+n+"; "+T+"{"use strict";wo.exports=function(e,t,s){var r=" ",n=e.level,l=e.dataLevel,o=e.schema[t],f=e.schemaPath+e.util.getProperty(t),d=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,m="data"+(l||""),E="valid"+n,c=e.opts.$data&&o&&o.$data,y;c?(r+=" var schema"+n+" = "+e.util.getData(o.$data,l,e.dataPathArr)+"; ",y="schema"+n):y=o;var _="schema"+n;if(!c)if(o.length0||I===!1:e.util.schemaHasRules(I,e.RULES.all))||(v[v.length]=T)}}else var v=o;if(c||v.length){var A=e.errorPath,V=c||v.length>=e.opts.loopRequired,F=e.opts.ownProperties;if(h)if(r+=" var missing"+n+"; ",V){c||(r+=" var "+_+" = validate.schema"+f+"; ");var C="i"+n,U="schema"+n+"["+C+"]",j="' + "+U+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(A,U,e.opts.jsonPointers)),r+=" var "+E+" = true; ",c&&(r+=" if (schema"+n+" === undefined) "+E+" = true; else if (!Array.isArray(schema"+n+")) "+E+" = false; else {"),r+=" for (var "+C+" = 0; "+C+" < "+_+".length; "+C+"++) { "+E+" = "+m+"["+_+"["+C+"]] !== undefined ",F&&(r+=" && Object.prototype.hasOwnProperty.call("+m+", "+_+"["+C+"]) "),r+="; if (!"+E+") break; } ",c&&(r+=" } "),r+=" if (!"+E+") { ";var L=L||[];L.push(r),r="",e.createErrors!==!1?(r+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(d)+" , params: { missingProperty: '"+j+"' } ",e.opts.messages!==!1&&(r+=" , message: '",e.opts._errorDataPathProperty?r+="is a required property":r+="should have required property \\'"+j+"\\'",r+="' "),e.opts.verbose&&(r+=" , schema: validate.schema"+f+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),r+=" } "):r+=" {} ";var O=r;r=L.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+O+"]); ":r+=" validate.errors = ["+O+"]; return false; ":r+=" var err = "+O+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } else { "}else{r+=" if ( ";var $=v;if($)for(var M,C=-1,oe=$.length-1;C{"use strict";Oo.exports=function(e,t,s){var r=" ",n=e.level,l=e.dataLevel,o=e.schema[t],f=e.schemaPath+e.util.getProperty(t),d=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,m="data"+(l||""),E="valid"+n,c=e.opts.$data&&o&&o.$data,y;if(c?(r+=" var schema"+n+" = "+e.util.getData(o.$data,l,e.dataPathArr)+"; ",y="schema"+n):y=o,(o||c)&&e.opts.uniqueItems!==!1){c&&(r+=" var "+E+"; if ("+y+" === false || "+y+" === undefined) "+E+" = true; else if (typeof "+y+" != 'boolean') "+E+" = false; else { "),r+=" var i = "+m+".length , "+E+" = true , j; if (i > 1) { ";var _=e.schema.items&&e.schema.items.type,v=Array.isArray(_);if(!_||_=="object"||_=="array"||v&&(_.indexOf("object")>=0||_.indexOf("array")>=0))r+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+m+"[i], "+m+"[j])) { "+E+" = false; break outer; } } } ";else{r+=" var itemIndices = {}, item; for (;i--;) { var item = "+m+"[i]; ";var b="checkDataType"+(v?"s":"");r+=" if ("+e.util[b](_,"item",e.opts.strictNumbers,!0)+") continue; ",v&&(r+=` if (typeof item == 'string') item = '"' + item; `),r+=" if (typeof itemIndices[item] == 'number') { "+E+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "}r+=" } ",c&&(r+=" } "),r+=" if (!"+E+") { ";var T=T||[];T.push(r),r="",e.createErrors!==!1?(r+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(d)+" , params: { i: i, j: j } ",e.opts.messages!==!1&&(r+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(r+=" , schema: ",c?r+="validate.schema"+f:r+=""+o,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),r+=" } "):r+=" {} ";var x=r;r=T.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+x+"]); ":r+=" validate.errors = ["+x+"]; return false; ":r+=" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } ",h&&(r+=" else { ")}else h&&(r+=" if (true) { ");return r}});var Co=W((dh,Ao)=>{"use strict";Ao.exports={$ref:Vn(),allOf:zn(),anyOf:Wn(),$comment:Zn(),const:Gn(),contains:Yn(),dependencies:eo(),enum:to(),format:so(),if:oo(),items:lo(),maximum:Xa(),minimum:Xa(),maxItems:es(),minItems:es(),maxLength:rs(),minLength:rs(),maxProperties:ts(),minProperties:ts(),multipleOf:mo(),not:go(),oneOf:_o(),pattern:So(),properties:bo(),propertyNames:Ro(),required:To(),uniqueItems:Io(),validate:Ja()}});var ko=W((fh,Do)=>{"use strict";var $o=Co(),as=Vr().toHash;Do.exports=function(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],t=["type","$comment"],s=["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"],r=["number","integer","string","array","object","boolean","null"];return e.all=as(t),e.types=as(r),e.forEach(function(n){n.rules=n.rules.map(function(l){var o;if(typeof l=="object"){var f=Object.keys(l)[0];o=l[f],l=f,o.forEach(function(h){t.push(h),e.all[h]=!0})}t.push(l);var d=e.all[l]={keyword:l,code:$o[l],implements:o};return d}),e.all.$comment={keyword:"$comment",code:$o.$comment},n.type&&(e.types[n.type]=n)}),e.keywords=as(t.concat(s)),e.custom={},e}});var Mo=W((hh,Lo)=>{"use strict";var No=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];Lo.exports=function(a,e){for(var t=0;t{"use strict";var Vu=Jt().MissingRef;Fo.exports=jo;function jo(a,e,t){var s=this;if(typeof this._opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");typeof e=="function"&&(t=e,e=void 0);var r=n(a).then(function(){var o=s._addSchema(a,void 0,e);return o.validate||l(o)});return t&&r.then(function(o){t(null,o)},t),r;function n(o){var f=o.$schema;return f&&!s.getSchema(f)?jo.call(s,{$ref:f},!0):Promise.resolve()}function l(o){try{return s._compile(o)}catch(d){if(d instanceof Vu)return f(d);throw d}function f(d){var h=d.missingSchema;if(c(h))throw new Error("Schema "+h+" is loaded but "+d.missingRef+" cannot be resolved");var m=s._loadingSchemas[h];return m||(m=s._loadingSchemas[h]=s._opts.loadSchema(h),m.then(E,E)),m.then(function(y){if(!c(h))return n(y).then(function(){c(h)||s.addSchema(y,h,void 0,e)})}).then(function(){return l(o)});function E(){delete s._loadingSchemas[h]}function c(y){return s._refs[y]||s._schemas[y]}}}}});var Vo=W((mh,qo)=>{"use strict";qo.exports=function(e,t,s){var r=" ",n=e.level,l=e.dataLevel,o=e.schema[t],f=e.schemaPath+e.util.getProperty(t),d=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,m,E="data"+(l||""),c="valid"+n,y="errs__"+n,_=e.opts.$data&&o&&o.$data,v;_?(r+=" var schema"+n+" = "+e.util.getData(o.$data,l,e.dataPathArr)+"; ",v="schema"+n):v=o;var b=this,T="definition"+n,x=b.definition,w="",I,A,V,F,C;if(_&&x.$data){C="keywordValidate"+n;var U=x.validateSchema;r+=" var "+T+" = RULES.custom['"+t+"'].definition; var "+C+" = "+T+".validate;"}else{if(F=e.useCustomRule(b,o,e.schema,e),!F)return;v="validate.schema"+f,C=F.code,I=x.compile,A=x.inline,V=x.macro}var j=C+".errors",L="i"+n,O="ruleErr"+n,$=x.async;if($&&!e.async)throw new Error("async keyword in sync schema");if(A||V||(r+=""+j+" = null;"),r+="var "+y+" = errors;var "+c+";",_&&x.$data&&(w+="}",r+=" if ("+v+" === undefined) { "+c+" = true; } else { ",U&&(w+="}",r+=" "+c+" = "+T+".validateSchema("+v+"); if ("+c+") { ")),A)x.statements?r+=" "+F.validate+" ":r+=" "+c+" = "+F.validate+"; ";else if(V){var M=e.util.copy(e),w="";M.level++;var oe="valid"+M.level;M.schema=F.validate,M.schemaPath="";var J=e.compositeRule;e.compositeRule=M.compositeRule=!0;var X=e.validate(M).replace(/validate\.schema/g,C);e.compositeRule=M.compositeRule=J,r+=" "+X}else{var G=G||[];G.push(r),r="",r+=" "+C+".call( ",e.opts.passContext?r+="this":r+="self",I||x.schema===!1?r+=" , "+E+" ":r+=" , "+v+" , "+E+" , validate.schema"+e.schemaPath+" ",r+=" , (dataPath || '')",e.errorPath!='""'&&(r+=" + "+e.errorPath);var H=l?"data"+(l-1||""):"parentData",fe=l?e.dataPathArr[l]:"parentDataProperty";r+=" , "+H+" , "+fe+" , rootData ) ";var be=r;r=G.pop(),x.errors===!1?(r+=" "+c+" = ",$&&(r+="await "),r+=""+be+"; "):$?(j="customErrors"+n,r+=" var "+j+" = null; try { "+c+" = await "+be+"; } catch (e) { "+c+" = false; if (e instanceof ValidationError) "+j+" = e.errors; else throw e; } "):r+=" "+j+" = null; "+c+" = "+be+"; "}if(x.modifying&&(r+=" if ("+H+") "+E+" = "+H+"["+fe+"];"),r+=""+w,x.valid)h&&(r+=" if (true) { ");else{r+=" if ( ",x.valid===void 0?(r+=" !",V?r+=""+oe:r+=""+c):r+=" "+!x.valid+" ",r+=") { ",m=b.keyword;var G=G||[];G.push(r),r="";var G=G||[];G.push(r),r="",e.createErrors!==!1?(r+=" { keyword: '"+(m||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(d)+" , params: { keyword: '"+b.keyword+"' } ",e.opts.messages!==!1&&(r+=` , message: 'should pass "`+b.keyword+`" keyword validation' `),e.opts.verbose&&(r+=" , schema: validate.schema"+f+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+E+" "),r+=" } "):r+=" {} ";var we=r;r=G.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+we+"]); ":r+=" validate.errors = ["+we+"]; return false; ":r+=" var err = "+we+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var te=r;r=G.pop(),A?x.errors?x.errors!="full"&&(r+=" for (var "+L+"="+y+"; "+L+"{Hu.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var Bo=W((gh,zo)=>{"use strict";var Ho=ss();zo.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:Ho.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:Ho.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}});var Qo=W((yh,Wo)=>{"use strict";var zu=/^[a-z_$][a-z0-9_$-]*$/i,Bu=Vo(),Wu=Bo();Wo.exports={add:Qu,get:Zu,remove:Ku,validate:ns};function Qu(a,e){var t=this.RULES;if(t.keywords[a])throw new Error("Keyword "+a+" is already defined");if(!zu.test(a))throw new Error("Keyword "+a+" is not a valid identifier");if(e){this.validateKeyword(e,!0);var s=e.type;if(Array.isArray(s))for(var r=0;r{Gu.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON Schema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var si=W((Eh,ai)=>{"use strict";var Go=wn(),Hr=Gt(),Ju=On(),Jo=za(),Yu=Ga(),Xu=Un(),ed=ko(),Yo=Mo(),Xo=Vr();ai.exports=me;me.prototype.validate=td;me.prototype.compile=ad;me.prototype.addSchema=sd;me.prototype.addMetaSchema=nd;me.prototype.validateSchema=od;me.prototype.getSchema=ld;me.prototype.removeSchema=ud;me.prototype.addFormat=yd;me.prototype.errorsText=gd;me.prototype._addSchema=dd;me.prototype._compile=fd;me.prototype.compileAsync=Uo();var na=Qo();me.prototype.addKeyword=na.add;me.prototype.getKeyword=na.get;me.prototype.removeKeyword=na.remove;me.prototype.validateKeyword=na.validate;var ei=Jt();me.ValidationError=ei.Validation;me.MissingRefError=ei.MissingRef;me.$dataMetaSchema=Yo;var sa="http://json-schema.org/draft-07/schema",Ko=["removeAdditional","useDefaults","coerceTypes","strictDefaults"],rd=["/properties"];function me(a){if(!(this instanceof me))return new me(a);a=this._opts=Xo.copy(a)||{},xd(this),this._schemas={},this._refs={},this._fragments={},this._formats=Xu(a.format),this._cache=a.cache||new Ju,this._loadingSchemas={},this._compilations=[],this.RULES=ed(),this._getId=hd(a),a.loopRequired=a.loopRequired||1/0,a.errorDataPath=="property"&&(a._errorDataPathProperty=!0),a.serialize===void 0&&(a.serialize=Yu),this._metaOpts=bd(this),a.formats&&Sd(this),a.keywords&&Pd(this),_d(this),typeof a.meta=="object"&&this.addMetaSchema(a.meta),a.nullable&&this.addKeyword("nullable",{metaSchema:{type:"boolean"}}),Ed(this)}function td(a,e){var t;if(typeof a=="string"){if(t=this.getSchema(a),!t)throw new Error('no schema with key or ref "'+a+'"')}else{var s=this._addSchema(a);t=s.validate||this._compile(s)}var r=t(e);return t.$async!==!0&&(this.errors=t.errors),r}function ad(a,e){var t=this._addSchema(a,void 0,e);return t.validate||this._compile(t)}function sd(a,e,t,s){if(Array.isArray(a)){for(var r=0;r(n[n.DEBUG=0]="DEBUG",n[n.INFO=1]="INFO",n[n.WARN=2]="WARN",n[n.ERROR=3]="ERROR",n[n.SILENT=4]="SILENT",n))(ya||{}),_a=class{level=null;useColor;logFilePath=null;constructor(){this.useColor=process.stdout.isTTY??!1,this.initializeLogFile()}initializeLogFile(){try{let e=Be.get("CLAUDE_MEM_DATA_DIR"),t=(0,Tt.join)(e,"logs");(0,Yr.existsSync)(t)||(0,Yr.mkdirSync)(t,{recursive:!0});let s=new Date().toISOString().split("T")[0];this.logFilePath=(0,Tt.join)(t,`claude-mem-${s}.log`)}catch(e){console.error("[LOGGER] Failed to initialize log file:",e),this.logFilePath=null}}getLevel(){if(this.level===null)try{let e=Be.get("CLAUDE_MEM_DATA_DIR"),t=(0,Tt.join)(e,"settings.json"),r=Be.loadFromFile(t).CLAUDE_MEM_LOG_LEVEL.toUpperCase();this.level=ya[r]??1}catch(e){console.error("[LOGGER] Failed to load settings, using INFO level:",e),this.level=1}return this.level}correlationId(e,t){return`obs-${e}-${t}`}sessionId(e){return`session-${e}`}formatData(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="object"){if(e instanceof Error)return this.getLevel()===0?`${e.message} -${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let t=Object.keys(e);return t.length===0?"{}":t.length<=3?JSON.stringify(e):`{${t.length} keys: ${t.slice(0,3).join(", ")}...}`}return String(e)}formatTool(e,t){if(!t)return e;let s=typeof t=="string"?JSON.parse(t):t;if(e==="Bash"&&s.command)return`${e}(${s.command})`;if(s.file_path)return`${e}(${s.file_path})`;if(s.notebook_path)return`${e}(${s.notebook_path})`;if(e==="Glob"&&s.pattern)return`${e}(${s.pattern})`;if(e==="Grep"&&s.pattern)return`${e}(${s.pattern})`;if(s.url)return`${e}(${s.url})`;if(s.query)return`${e}(${s.query})`;if(e==="Task"){if(s.subagent_type)return`${e}(${s.subagent_type})`;if(s.description)return`${e}(${s.description})`}return e==="Skill"&&s.skill?`${e}(${s.skill})`:e==="LSP"&&s.operation?`${e}(${s.operation})`:e}formatTimestamp(e){let t=e.getFullYear(),s=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0"),n=String(e.getHours()).padStart(2,"0"),l=String(e.getMinutes()).padStart(2,"0"),o=String(e.getSeconds()).padStart(2,"0"),f=String(e.getMilliseconds()).padStart(3,"0");return`${t}-${s}-${r} ${n}:${l}:${o}.${f}`}log(e,t,s,r,n){if(e0&&(m=` {${Object.entries(v).map(([T,x])=>`${T}=${x}`).join(", ")}}`)}let E=`[${l}] [${o}] [${f}] ${d}${s}${m}${h}`;if(this.logFilePath)try{(0,Yr.appendFileSync)(this.logFilePath,E+` -`,"utf8")}catch(c){process.stderr.write(`[LOGGER] Failed to write to log file: ${c} -`)}else process.stderr.write(E+` -`)}debug(e,t,s,r){this.log(0,e,t,s,r)}info(e,t,s,r){this.log(1,e,t,s,r)}warn(e,t,s,r){this.log(2,e,t,s,r)}error(e,t,s,r){this.log(3,e,t,s,r)}dataIn(e,t,s,r){this.info(e,`\u2192 ${t}`,s,r)}dataOut(e,t,s,r){this.info(e,`\u2190 ${t}`,s,r)}success(e,t,s,r){this.info(e,`\u2713 ${t}`,s,r)}failure(e,t,s,r){this.error(e,`\u2717 ${t}`,s,r)}timing(e,t,s,r){this.info(e,`\u23F1 ${t}`,r,{duration:`${s}ms`})}happyPathError(e,t,s,r,n=""){let d=((new Error().stack||"").split(` -`)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),h=d?`${d[1].split("/").pop()}:${d[2]}`:"unknown",m={...s,location:h};return this.warn(e,`[HAPPY-PATH] ${t}`,m,r),n}},pe=new _a;var i={};Fi(i,{BRAND:()=>fl,DIRTY:()=>wr,EMPTY_PATH:()=>zi,INVALID:()=>z,NEVER:()=>Gl,OK:()=>Re,ParseStatus:()=>Pe,Schema:()=>K,ZodAny:()=>mr,ZodArray:()=>ur,ZodBigInt:()=>Or,ZodBoolean:()=>Ir,ZodBranded:()=>mt,ZodCatch:()=>Ur,ZodDate:()=>Ar,ZodDefault:()=>Fr,ZodDiscriminatedUnion:()=>At,ZodEffects:()=>qe,ZodEnum:()=>Mr,ZodError:()=>Ae,ZodFirstPartyTypeKind:()=>B,ZodFunction:()=>$t,ZodIntersection:()=>kr,ZodIssueCode:()=>R,ZodLazy:()=>Nr,ZodLiteral:()=>Lr,ZodMap:()=>st,ZodNaN:()=>ot,ZodNativeEnum:()=>jr,ZodNever:()=>We,ZodNull:()=>$r,ZodNullable:()=>er,ZodNumber:()=>Tr,ZodObject:()=>Ce,ZodOptional:()=>Fe,ZodParsedType:()=>k,ZodPipeline:()=>vt,ZodPromise:()=>vr,ZodReadonly:()=>qr,ZodRecord:()=>Ct,ZodSchema:()=>K,ZodSet:()=>nt,ZodString:()=>pr,ZodSymbol:()=>tt,ZodTransformer:()=>qe,ZodTuple:()=>Xe,ZodType:()=>K,ZodUndefined:()=>Cr,ZodUnion:()=>Dr,ZodUnknown:()=>cr,ZodVoid:()=>at,addIssueToContext:()=>D,any:()=>Sl,array:()=>Rl,bigint:()=>vl,boolean:()=>Ls,coerce:()=>Kl,custom:()=>Ds,date:()=>gl,datetimeRegex:()=>Cs,defaultErrorMap:()=>ir,discriminatedUnion:()=>Il,effect:()=>ql,enum:()=>jl,function:()=>Nl,getErrorMap:()=>Xr,getParsedType:()=>Ye,instanceof:()=>pl,intersection:()=>Al,isAborted:()=>Ot,isAsync:()=>et,isDirty:()=>It,isValid:()=>hr,late:()=>hl,lazy:()=>Ll,literal:()=>Ml,makeIssue:()=>pt,map:()=>Dl,nan:()=>ml,nativeEnum:()=>Fl,never:()=>bl,null:()=>El,nullable:()=>Hl,number:()=>Ns,object:()=>wl,objectUtil:()=>Ea,oboolean:()=>Zl,onumber:()=>Ql,optional:()=>Vl,ostring:()=>Wl,pipeline:()=>Bl,preprocess:()=>zl,promise:()=>Ul,quotelessJson:()=>qi,record:()=>$l,set:()=>kl,setErrorMap:()=>Hi,strictObject:()=>Tl,string:()=>ks,symbol:()=>yl,transformer:()=>ql,tuple:()=>Cl,undefined:()=>_l,union:()=>Ol,unknown:()=>Pl,util:()=>Y,void:()=>xl});var Y;(function(a){a.assertEqual=r=>{};function e(r){}a.assertIs=e;function t(r){throw new Error}a.assertNever=t,a.arrayToEnum=r=>{let n={};for(let l of r)n[l]=l;return n},a.getValidEnumValues=r=>{let n=a.objectKeys(r).filter(o=>typeof r[r[o]]!="number"),l={};for(let o of n)l[o]=r[o];return a.objectValues(l)},a.objectValues=r=>a.objectKeys(r).map(function(n){return r[n]}),a.objectKeys=typeof Object.keys=="function"?r=>Object.keys(r):r=>{let n=[];for(let l in r)Object.prototype.hasOwnProperty.call(r,l)&&n.push(l);return n},a.find=(r,n)=>{for(let l of r)if(n(l))return l},a.isInteger=typeof Number.isInteger=="function"?r=>Number.isInteger(r):r=>typeof r=="number"&&Number.isFinite(r)&&Math.floor(r)===r;function s(r,n=" | "){return r.map(l=>typeof l=="string"?`'${l}'`:l).join(n)}a.joinValues=s,a.jsonStringifyReplacer=(r,n)=>typeof n=="bigint"?n.toString():n})(Y||(Y={}));var Ea;(function(a){a.mergeShapes=(e,t)=>({...e,...t})})(Ea||(Ea={}));var k=Y.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Ye=a=>{switch(typeof a){case"undefined":return k.undefined;case"string":return k.string;case"number":return Number.isNaN(a)?k.nan:k.number;case"boolean":return k.boolean;case"function":return k.function;case"bigint":return k.bigint;case"symbol":return k.symbol;case"object":return Array.isArray(a)?k.array:a===null?k.null:a.then&&typeof a.then=="function"&&a.catch&&typeof a.catch=="function"?k.promise:typeof Map<"u"&&a instanceof Map?k.map:typeof Set<"u"&&a instanceof Set?k.set:typeof Date<"u"&&a instanceof Date?k.date:k.object;default:return k.unknown}};var R=Y.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),qi=a=>JSON.stringify(a,null,2).replace(/"([^"]+)":/g,"$1:"),Ae=class a extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=s=>{this.issues=[...this.issues,s]},this.addIssues=(s=[])=>{this.issues=[...this.issues,...s]};let t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){let t=e||function(n){return n.message},s={_errors:[]},r=n=>{for(let l of n.issues)if(l.code==="invalid_union")l.unionErrors.map(r);else if(l.code==="invalid_return_type")r(l.returnTypeError);else if(l.code==="invalid_arguments")r(l.argumentsError);else if(l.path.length===0)s._errors.push(t(l));else{let o=s,f=0;for(;ft.message){let t={},s=[];for(let r of this.issues)if(r.path.length>0){let n=r.path[0];t[n]=t[n]||[],t[n].push(e(r))}else s.push(e(r));return{formErrors:s,fieldErrors:t}}get formErrors(){return this.flatten()}};Ae.create=a=>new Ae(a);var Vi=(a,e)=>{let t;switch(a.code){case R.invalid_type:a.received===k.undefined?t="Required":t=`Expected ${a.expected}, received ${a.received}`;break;case R.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(a.expected,Y.jsonStringifyReplacer)}`;break;case R.unrecognized_keys:t=`Unrecognized key(s) in object: ${Y.joinValues(a.keys,", ")}`;break;case R.invalid_union:t="Invalid input";break;case R.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${Y.joinValues(a.options)}`;break;case R.invalid_enum_value:t=`Invalid enum value. Expected ${Y.joinValues(a.options)}, received '${a.received}'`;break;case R.invalid_arguments:t="Invalid function arguments";break;case R.invalid_return_type:t="Invalid function return type";break;case R.invalid_date:t="Invalid date";break;case R.invalid_string:typeof a.validation=="object"?"includes"in a.validation?(t=`Invalid input: must include "${a.validation.includes}"`,typeof a.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${a.validation.position}`)):"startsWith"in a.validation?t=`Invalid input: must start with "${a.validation.startsWith}"`:"endsWith"in a.validation?t=`Invalid input: must end with "${a.validation.endsWith}"`:Y.assertNever(a.validation):a.validation!=="regex"?t=`Invalid ${a.validation}`:t="Invalid";break;case R.too_small:a.type==="array"?t=`Array must contain ${a.exact?"exactly":a.inclusive?"at least":"more than"} ${a.minimum} element(s)`:a.type==="string"?t=`String must contain ${a.exact?"exactly":a.inclusive?"at least":"over"} ${a.minimum} character(s)`:a.type==="number"?t=`Number must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${a.minimum}`:a.type==="bigint"?t=`Number must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${a.minimum}`:a.type==="date"?t=`Date must be ${a.exact?"exactly equal to ":a.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(a.minimum))}`:t="Invalid input";break;case R.too_big:a.type==="array"?t=`Array must contain ${a.exact?"exactly":a.inclusive?"at most":"less than"} ${a.maximum} element(s)`:a.type==="string"?t=`String must contain ${a.exact?"exactly":a.inclusive?"at most":"under"} ${a.maximum} character(s)`:a.type==="number"?t=`Number must be ${a.exact?"exactly":a.inclusive?"less than or equal to":"less than"} ${a.maximum}`:a.type==="bigint"?t=`BigInt must be ${a.exact?"exactly":a.inclusive?"less than or equal to":"less than"} ${a.maximum}`:a.type==="date"?t=`Date must be ${a.exact?"exactly":a.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(a.maximum))}`:t="Invalid input";break;case R.custom:t="Invalid input";break;case R.invalid_intersection_types:t="Intersection results could not be merged";break;case R.not_multiple_of:t=`Number must be a multiple of ${a.multipleOf}`;break;case R.not_finite:t="Number must be finite";break;default:t=e.defaultError,Y.assertNever(a)}return{message:t}},ir=Vi;var ws=ir;function Hi(a){ws=a}function Xr(){return ws}var pt=a=>{let{data:e,path:t,errorMaps:s,issueData:r}=a,n=[...t,...r.path||[]],l={...r,path:n};if(r.message!==void 0)return{...r,path:n,message:r.message};let o="",f=s.filter(d=>!!d).slice().reverse();for(let d of f)o=d(l,{data:e,defaultError:o}).message;return{...r,path:n,message:o}},zi=[];function D(a,e){let t=Xr(),s=pt({issueData:e,data:a.data,path:a.path,errorMaps:[a.common.contextualErrorMap,a.schemaErrorMap,t,t===ir?void 0:ir].filter(r=>!!r)});a.common.issues.push(s)}var Pe=class a{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,t){let s=[];for(let r of t){if(r.status==="aborted")return z;r.status==="dirty"&&e.dirty(),s.push(r.value)}return{status:e.value,value:s}}static async mergeObjectAsync(e,t){let s=[];for(let r of t){let n=await r.key,l=await r.value;s.push({key:n,value:l})}return a.mergeObjectSync(e,s)}static mergeObjectSync(e,t){let s={};for(let r of t){let{key:n,value:l}=r;if(n.status==="aborted"||l.status==="aborted")return z;n.status==="dirty"&&e.dirty(),l.status==="dirty"&&e.dirty(),n.value!=="__proto__"&&(typeof l.value<"u"||r.alwaysSet)&&(s[n.value]=l.value)}return{status:e.value,value:s}}},z=Object.freeze({status:"aborted"}),wr=a=>({status:"dirty",value:a}),Re=a=>({status:"valid",value:a}),Ot=a=>a.status==="aborted",It=a=>a.status==="dirty",hr=a=>a.status==="valid",et=a=>typeof Promise<"u"&&a instanceof Promise;var q;(function(a){a.errToObj=e=>typeof e=="string"?{message:e}:e||{},a.toString=e=>typeof e=="string"?e:e?.message})(q||(q={}));var Ue=class{constructor(e,t,s,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=s,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Ts=(a,e)=>{if(hr(e))return{success:!0,data:e.value};if(!a.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let t=new Ae(a.common.issues);return this._error=t,this._error}}};function Q(a){if(!a)return{};let{errorMap:e,invalid_type_error:t,required_error:s,description:r}=a;if(e&&(t||s))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:r}:{errorMap:(l,o)=>{let{message:f}=a;return l.code==="invalid_enum_value"?{message:f??o.defaultError}:typeof o.data>"u"?{message:f??s??o.defaultError}:l.code!=="invalid_type"?{message:o.defaultError}:{message:f??t??o.defaultError}},description:r}}var K=class{get description(){return this._def.description}_getType(e){return Ye(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:Ye(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Pe,ctx:{common:e.parent.common,data:e.data,parsedType:Ye(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(et(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){let t=this._parse(e);return Promise.resolve(t)}parse(e,t){let s=this.safeParse(e,t);if(s.success)return s.data;throw s.error}safeParse(e,t){let s={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Ye(e)},r=this._parseSync({data:e,path:s.path,parent:s});return Ts(s,r)}"~validate"(e){let t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Ye(e)};if(!this["~standard"].async)try{let s=this._parseSync({data:e,path:[],parent:t});return hr(s)?{value:s.value}:{issues:t.common.issues}}catch(s){s?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(s=>hr(s)?{value:s.value}:{issues:t.common.issues})}async parseAsync(e,t){let s=await this.safeParseAsync(e,t);if(s.success)return s.data;throw s.error}async safeParseAsync(e,t){let s={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Ye(e)},r=this._parse({data:e,path:s.path,parent:s}),n=await(et(r)?r:Promise.resolve(r));return Ts(s,n)}refine(e,t){let s=r=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(r):t;return this._refinement((r,n)=>{let l=e(r),o=()=>n.addIssue({code:R.custom,...s(r)});return typeof Promise<"u"&&l instanceof Promise?l.then(f=>f?!0:(o(),!1)):l?!0:(o(),!1)})}refinement(e,t){return this._refinement((s,r)=>e(s)?!0:(r.addIssue(typeof t=="function"?t(s,r):t),!1))}_refinement(e){return new qe({schema:this,typeName:B.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:t=>this["~validate"](t)}}optional(){return Fe.create(this,this._def)}nullable(){return er.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ur.create(this)}promise(){return vr.create(this,this._def)}or(e){return Dr.create([this,e],this._def)}and(e){return kr.create(this,e,this._def)}transform(e){return new qe({...Q(this._def),schema:this,typeName:B.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let t=typeof e=="function"?e:()=>e;return new Fr({...Q(this._def),innerType:this,defaultValue:t,typeName:B.ZodDefault})}brand(){return new mt({typeName:B.ZodBranded,type:this,...Q(this._def)})}catch(e){let t=typeof e=="function"?e:()=>e;return new Ur({...Q(this._def),innerType:this,catchValue:t,typeName:B.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return vt.create(this,e)}readonly(){return qr.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Bi=/^c[^\s-]{8,}$/i,Wi=/^[0-9a-z]+$/,Qi=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Zi=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Ki=/^[a-z0-9_-]{21}$/i,Gi=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Ji=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Yi=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Xi="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Sa,el=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,rl=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,tl=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,al=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,sl=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,nl=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Is="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",ol=new RegExp(`^${Is}$`);function As(a){let e="[0-5]\\d";a.precision?e=`${e}\\.\\d{${a.precision}}`:a.precision==null&&(e=`${e}(\\.\\d+)?`);let t=a.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${t}`}function il(a){return new RegExp(`^${As(a)}$`)}function Cs(a){let e=`${Is}T${As(a)}`,t=[];return t.push(a.local?"Z?":"Z"),a.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}function ll(a,e){return!!((e==="v4"||!e)&&el.test(a)||(e==="v6"||!e)&&tl.test(a))}function cl(a,e){if(!Gi.test(a))return!1;try{let[t]=a.split(".");if(!t)return!1;let s=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),r=JSON.parse(atob(s));return!(typeof r!="object"||r===null||"typ"in r&&r?.typ!=="JWT"||!r.alg||e&&r.alg!==e)}catch{return!1}}function ul(a,e){return!!((e==="v4"||!e)&&rl.test(a)||(e==="v6"||!e)&&al.test(a))}var pr=class a extends K{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==k.string){let n=this._getOrReturnCtx(e);return D(n,{code:R.invalid_type,expected:k.string,received:n.parsedType}),z}let s=new Pe,r;for(let n of this._def.checks)if(n.kind==="min")e.data.lengthn.value&&(r=this._getOrReturnCtx(e,r),D(r,{code:R.too_big,maximum:n.value,type:"string",inclusive:!0,exact:!1,message:n.message}),s.dirty());else if(n.kind==="length"){let l=e.data.length>n.value,o=e.data.lengthe.test(r),{validation:t,code:R.invalid_string,...q.errToObj(s)})}_addCheck(e){return new a({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...q.errToObj(e)})}url(e){return this._addCheck({kind:"url",...q.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...q.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...q.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...q.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...q.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...q.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...q.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...q.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...q.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...q.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...q.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...q.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...q.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...q.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...q.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...q.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t?.position,...q.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...q.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...q.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...q.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...q.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...q.errToObj(t)})}nonempty(e){return this.min(1,q.errToObj(e))}trim(){return new a({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new a({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new a({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.valuenew pr({checks:[],typeName:B.ZodString,coerce:a?.coerce??!1,...Q(a)});function dl(a,e){let t=(a.toString().split(".")[1]||"").length,s=(e.toString().split(".")[1]||"").length,r=t>s?t:s,n=Number.parseInt(a.toFixed(r).replace(".","")),l=Number.parseInt(e.toFixed(r).replace(".",""));return n%l/10**r}var Tr=class a extends K{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==k.number){let n=this._getOrReturnCtx(e);return D(n,{code:R.invalid_type,expected:k.number,received:n.parsedType}),z}let s,r=new Pe;for(let n of this._def.checks)n.kind==="int"?Y.isInteger(e.data)||(s=this._getOrReturnCtx(e,s),D(s,{code:R.invalid_type,expected:"integer",received:"float",message:n.message}),r.dirty()):n.kind==="min"?(n.inclusive?e.datan.value:e.data>=n.value)&&(s=this._getOrReturnCtx(e,s),D(s,{code:R.too_big,maximum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),r.dirty()):n.kind==="multipleOf"?dl(e.data,n.value)!==0&&(s=this._getOrReturnCtx(e,s),D(s,{code:R.not_multiple_of,multipleOf:n.value,message:n.message}),r.dirty()):n.kind==="finite"?Number.isFinite(e.data)||(s=this._getOrReturnCtx(e,s),D(s,{code:R.not_finite,message:n.message}),r.dirty()):Y.assertNever(n);return{status:r.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,q.toString(t))}gt(e,t){return this.setLimit("min",e,!1,q.toString(t))}lte(e,t){return this.setLimit("max",e,!0,q.toString(t))}lt(e,t){return this.setLimit("max",e,!1,q.toString(t))}setLimit(e,t,s,r){return new a({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:s,message:q.toString(r)}]})}_addCheck(e){return new a({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:q.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:q.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:q.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:q.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:q.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:q.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:q.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:q.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:q.toString(e)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.valuee.kind==="int"||e.kind==="multipleOf"&&Y.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let s of this._def.checks){if(s.kind==="finite"||s.kind==="int"||s.kind==="multipleOf")return!0;s.kind==="min"?(t===null||s.value>t)&&(t=s.value):s.kind==="max"&&(e===null||s.valuenew Tr({checks:[],typeName:B.ZodNumber,coerce:a?.coerce||!1,...Q(a)});var Or=class a extends K{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==k.bigint)return this._getInvalidInput(e);let s,r=new Pe;for(let n of this._def.checks)n.kind==="min"?(n.inclusive?e.datan.value:e.data>=n.value)&&(s=this._getOrReturnCtx(e,s),D(s,{code:R.too_big,type:"bigint",maximum:n.value,inclusive:n.inclusive,message:n.message}),r.dirty()):n.kind==="multipleOf"?e.data%n.value!==BigInt(0)&&(s=this._getOrReturnCtx(e,s),D(s,{code:R.not_multiple_of,multipleOf:n.value,message:n.message}),r.dirty()):Y.assertNever(n);return{status:r.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return D(t,{code:R.invalid_type,expected:k.bigint,received:t.parsedType}),z}gte(e,t){return this.setLimit("min",e,!0,q.toString(t))}gt(e,t){return this.setLimit("min",e,!1,q.toString(t))}lte(e,t){return this.setLimit("max",e,!0,q.toString(t))}lt(e,t){return this.setLimit("max",e,!1,q.toString(t))}setLimit(e,t,s,r){return new a({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:s,message:q.toString(r)}]})}_addCheck(e){return new a({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:q.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:q.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:q.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:q.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:q.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.valuenew Or({checks:[],typeName:B.ZodBigInt,coerce:a?.coerce??!1,...Q(a)});var Ir=class extends K{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==k.boolean){let s=this._getOrReturnCtx(e);return D(s,{code:R.invalid_type,expected:k.boolean,received:s.parsedType}),z}return Re(e.data)}};Ir.create=a=>new Ir({typeName:B.ZodBoolean,coerce:a?.coerce||!1,...Q(a)});var Ar=class a extends K{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==k.date){let n=this._getOrReturnCtx(e);return D(n,{code:R.invalid_type,expected:k.date,received:n.parsedType}),z}if(Number.isNaN(e.data.getTime())){let n=this._getOrReturnCtx(e);return D(n,{code:R.invalid_date}),z}let s=new Pe,r;for(let n of this._def.checks)n.kind==="min"?e.data.getTime()n.value&&(r=this._getOrReturnCtx(e,r),D(r,{code:R.too_big,message:n.message,inclusive:!0,exact:!1,maximum:n.value,type:"date"}),s.dirty()):Y.assertNever(n);return{status:s.value,value:new Date(e.data.getTime())}}_addCheck(e){return new a({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:q.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:q.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.valuenew Ar({checks:[],coerce:a?.coerce||!1,typeName:B.ZodDate,...Q(a)});var tt=class extends K{_parse(e){if(this._getType(e)!==k.symbol){let s=this._getOrReturnCtx(e);return D(s,{code:R.invalid_type,expected:k.symbol,received:s.parsedType}),z}return Re(e.data)}};tt.create=a=>new tt({typeName:B.ZodSymbol,...Q(a)});var Cr=class extends K{_parse(e){if(this._getType(e)!==k.undefined){let s=this._getOrReturnCtx(e);return D(s,{code:R.invalid_type,expected:k.undefined,received:s.parsedType}),z}return Re(e.data)}};Cr.create=a=>new Cr({typeName:B.ZodUndefined,...Q(a)});var $r=class extends K{_parse(e){if(this._getType(e)!==k.null){let s=this._getOrReturnCtx(e);return D(s,{code:R.invalid_type,expected:k.null,received:s.parsedType}),z}return Re(e.data)}};$r.create=a=>new $r({typeName:B.ZodNull,...Q(a)});var mr=class extends K{constructor(){super(...arguments),this._any=!0}_parse(e){return Re(e.data)}};mr.create=a=>new mr({typeName:B.ZodAny,...Q(a)});var cr=class extends K{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Re(e.data)}};cr.create=a=>new cr({typeName:B.ZodUnknown,...Q(a)});var We=class extends K{_parse(e){let t=this._getOrReturnCtx(e);return D(t,{code:R.invalid_type,expected:k.never,received:t.parsedType}),z}};We.create=a=>new We({typeName:B.ZodNever,...Q(a)});var at=class extends K{_parse(e){if(this._getType(e)!==k.undefined){let s=this._getOrReturnCtx(e);return D(s,{code:R.invalid_type,expected:k.void,received:s.parsedType}),z}return Re(e.data)}};at.create=a=>new at({typeName:B.ZodVoid,...Q(a)});var ur=class a extends K{_parse(e){let{ctx:t,status:s}=this._processInputParams(e),r=this._def;if(t.parsedType!==k.array)return D(t,{code:R.invalid_type,expected:k.array,received:t.parsedType}),z;if(r.exactLength!==null){let l=t.data.length>r.exactLength.value,o=t.data.lengthr.maxLength.value&&(D(t,{code:R.too_big,maximum:r.maxLength.value,type:"array",inclusive:!0,exact:!1,message:r.maxLength.message}),s.dirty()),t.common.async)return Promise.all([...t.data].map((l,o)=>r.type._parseAsync(new Ue(t,l,t.path,o)))).then(l=>Pe.mergeArray(s,l));let n=[...t.data].map((l,o)=>r.type._parseSync(new Ue(t,l,t.path,o)));return Pe.mergeArray(s,n)}get element(){return this._def.type}min(e,t){return new a({...this._def,minLength:{value:e,message:q.toString(t)}})}max(e,t){return new a({...this._def,maxLength:{value:e,message:q.toString(t)}})}length(e,t){return new a({...this._def,exactLength:{value:e,message:q.toString(t)}})}nonempty(e){return this.min(1,e)}};ur.create=(a,e)=>new ur({type:a,minLength:null,maxLength:null,exactLength:null,typeName:B.ZodArray,...Q(e)});function rt(a){if(a instanceof Ce){let e={};for(let t in a.shape){let s=a.shape[t];e[t]=Fe.create(rt(s))}return new Ce({...a._def,shape:()=>e})}else return a instanceof ur?new ur({...a._def,type:rt(a.element)}):a instanceof Fe?Fe.create(rt(a.unwrap())):a instanceof er?er.create(rt(a.unwrap())):a instanceof Xe?Xe.create(a.items.map(e=>rt(e))):a}var Ce=class a extends K{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),t=Y.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==k.object){let d=this._getOrReturnCtx(e);return D(d,{code:R.invalid_type,expected:k.object,received:d.parsedType}),z}let{status:s,ctx:r}=this._processInputParams(e),{shape:n,keys:l}=this._getCached(),o=[];if(!(this._def.catchall instanceof We&&this._def.unknownKeys==="strip"))for(let d in r.data)l.includes(d)||o.push(d);let f=[];for(let d of l){let h=n[d],m=r.data[d];f.push({key:{status:"valid",value:d},value:h._parse(new Ue(r,m,r.path,d)),alwaysSet:d in r.data})}if(this._def.catchall instanceof We){let d=this._def.unknownKeys;if(d==="passthrough")for(let h of o)f.push({key:{status:"valid",value:h},value:{status:"valid",value:r.data[h]}});else if(d==="strict")o.length>0&&(D(r,{code:R.unrecognized_keys,keys:o}),s.dirty());else if(d!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let d=this._def.catchall;for(let h of o){let m=r.data[h];f.push({key:{status:"valid",value:h},value:d._parse(new Ue(r,m,r.path,h)),alwaysSet:h in r.data})}}return r.common.async?Promise.resolve().then(async()=>{let d=[];for(let h of f){let m=await h.key,E=await h.value;d.push({key:m,value:E,alwaysSet:h.alwaysSet})}return d}).then(d=>Pe.mergeObjectSync(s,d)):Pe.mergeObjectSync(s,f)}get shape(){return this._def.shape()}strict(e){return q.errToObj,new a({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,s)=>{let r=this._def.errorMap?.(t,s).message??s.defaultError;return t.code==="unrecognized_keys"?{message:q.errToObj(e).message??r}:{message:r}}}:{}})}strip(){return new a({...this._def,unknownKeys:"strip"})}passthrough(){return new a({...this._def,unknownKeys:"passthrough"})}extend(e){return new a({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new a({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:B.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new a({...this._def,catchall:e})}pick(e){let t={};for(let s of Y.objectKeys(e))e[s]&&this.shape[s]&&(t[s]=this.shape[s]);return new a({...this._def,shape:()=>t})}omit(e){let t={};for(let s of Y.objectKeys(this.shape))e[s]||(t[s]=this.shape[s]);return new a({...this._def,shape:()=>t})}deepPartial(){return rt(this)}partial(e){let t={};for(let s of Y.objectKeys(this.shape)){let r=this.shape[s];e&&!e[s]?t[s]=r:t[s]=r.optional()}return new a({...this._def,shape:()=>t})}required(e){let t={};for(let s of Y.objectKeys(this.shape))if(e&&!e[s])t[s]=this.shape[s];else{let n=this.shape[s];for(;n instanceof Fe;)n=n._def.innerType;t[s]=n}return new a({...this._def,shape:()=>t})}keyof(){return $s(Y.objectKeys(this.shape))}};Ce.create=(a,e)=>new Ce({shape:()=>a,unknownKeys:"strip",catchall:We.create(),typeName:B.ZodObject,...Q(e)});Ce.strictCreate=(a,e)=>new Ce({shape:()=>a,unknownKeys:"strict",catchall:We.create(),typeName:B.ZodObject,...Q(e)});Ce.lazycreate=(a,e)=>new Ce({shape:a,unknownKeys:"strip",catchall:We.create(),typeName:B.ZodObject,...Q(e)});var Dr=class extends K{_parse(e){let{ctx:t}=this._processInputParams(e),s=this._def.options;function r(n){for(let o of n)if(o.result.status==="valid")return o.result;for(let o of n)if(o.result.status==="dirty")return t.common.issues.push(...o.ctx.common.issues),o.result;let l=n.map(o=>new Ae(o.ctx.common.issues));return D(t,{code:R.invalid_union,unionErrors:l}),z}if(t.common.async)return Promise.all(s.map(async n=>{let l={...t,common:{...t.common,issues:[]},parent:null};return{result:await n._parseAsync({data:t.data,path:t.path,parent:l}),ctx:l}})).then(r);{let n,l=[];for(let f of s){let d={...t,common:{...t.common,issues:[]},parent:null},h=f._parseSync({data:t.data,path:t.path,parent:d});if(h.status==="valid")return h;h.status==="dirty"&&!n&&(n={result:h,ctx:d}),d.common.issues.length&&l.push(d.common.issues)}if(n)return t.common.issues.push(...n.ctx.common.issues),n.result;let o=l.map(f=>new Ae(f));return D(t,{code:R.invalid_union,unionErrors:o}),z}}get options(){return this._def.options}};Dr.create=(a,e)=>new Dr({options:a,typeName:B.ZodUnion,...Q(e)});var lr=a=>a instanceof Nr?lr(a.schema):a instanceof qe?lr(a.innerType()):a instanceof Lr?[a.value]:a instanceof Mr?a.options:a instanceof jr?Y.objectValues(a.enum):a instanceof Fr?lr(a._def.innerType):a instanceof Cr?[void 0]:a instanceof $r?[null]:a instanceof Fe?[void 0,...lr(a.unwrap())]:a instanceof er?[null,...lr(a.unwrap())]:a instanceof mt||a instanceof qr?lr(a.unwrap()):a instanceof Ur?lr(a._def.innerType):[],At=class a extends K{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==k.object)return D(t,{code:R.invalid_type,expected:k.object,received:t.parsedType}),z;let s=this.discriminator,r=t.data[s],n=this.optionsMap.get(r);return n?t.common.async?n._parseAsync({data:t.data,path:t.path,parent:t}):n._parseSync({data:t.data,path:t.path,parent:t}):(D(t,{code:R.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[s]}),z)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,s){let r=new Map;for(let n of t){let l=lr(n.shape[e]);if(!l.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let o of l){if(r.has(o))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(o)}`);r.set(o,n)}}return new a({typeName:B.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:r,...Q(s)})}};function Pa(a,e){let t=Ye(a),s=Ye(e);if(a===e)return{valid:!0,data:a};if(t===k.object&&s===k.object){let r=Y.objectKeys(e),n=Y.objectKeys(a).filter(o=>r.indexOf(o)!==-1),l={...a,...e};for(let o of n){let f=Pa(a[o],e[o]);if(!f.valid)return{valid:!1};l[o]=f.data}return{valid:!0,data:l}}else if(t===k.array&&s===k.array){if(a.length!==e.length)return{valid:!1};let r=[];for(let n=0;n{if(Ot(n)||Ot(l))return z;let o=Pa(n.value,l.value);return o.valid?((It(n)||It(l))&&t.dirty(),{status:t.value,value:o.data}):(D(s,{code:R.invalid_intersection_types}),z)};return s.common.async?Promise.all([this._def.left._parseAsync({data:s.data,path:s.path,parent:s}),this._def.right._parseAsync({data:s.data,path:s.path,parent:s})]).then(([n,l])=>r(n,l)):r(this._def.left._parseSync({data:s.data,path:s.path,parent:s}),this._def.right._parseSync({data:s.data,path:s.path,parent:s}))}};kr.create=(a,e,t)=>new kr({left:a,right:e,typeName:B.ZodIntersection,...Q(t)});var Xe=class a extends K{_parse(e){let{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==k.array)return D(s,{code:R.invalid_type,expected:k.array,received:s.parsedType}),z;if(s.data.lengththis._def.items.length&&(D(s,{code:R.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());let n=[...s.data].map((l,o)=>{let f=this._def.items[o]||this._def.rest;return f?f._parse(new Ue(s,l,s.path,o)):null}).filter(l=>!!l);return s.common.async?Promise.all(n).then(l=>Pe.mergeArray(t,l)):Pe.mergeArray(t,n)}get items(){return this._def.items}rest(e){return new a({...this._def,rest:e})}};Xe.create=(a,e)=>{if(!Array.isArray(a))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Xe({items:a,typeName:B.ZodTuple,rest:null,...Q(e)})};var Ct=class a extends K{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==k.object)return D(s,{code:R.invalid_type,expected:k.object,received:s.parsedType}),z;let r=[],n=this._def.keyType,l=this._def.valueType;for(let o in s.data)r.push({key:n._parse(new Ue(s,o,s.path,o)),value:l._parse(new Ue(s,s.data[o],s.path,o)),alwaysSet:o in s.data});return s.common.async?Pe.mergeObjectAsync(t,r):Pe.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(e,t,s){return t instanceof K?new a({keyType:e,valueType:t,typeName:B.ZodRecord,...Q(s)}):new a({keyType:pr.create(),valueType:e,typeName:B.ZodRecord,...Q(t)})}},st=class extends K{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==k.map)return D(s,{code:R.invalid_type,expected:k.map,received:s.parsedType}),z;let r=this._def.keyType,n=this._def.valueType,l=[...s.data.entries()].map(([o,f],d)=>({key:r._parse(new Ue(s,o,s.path,[d,"key"])),value:n._parse(new Ue(s,f,s.path,[d,"value"]))}));if(s.common.async){let o=new Map;return Promise.resolve().then(async()=>{for(let f of l){let d=await f.key,h=await f.value;if(d.status==="aborted"||h.status==="aborted")return z;(d.status==="dirty"||h.status==="dirty")&&t.dirty(),o.set(d.value,h.value)}return{status:t.value,value:o}})}else{let o=new Map;for(let f of l){let d=f.key,h=f.value;if(d.status==="aborted"||h.status==="aborted")return z;(d.status==="dirty"||h.status==="dirty")&&t.dirty(),o.set(d.value,h.value)}return{status:t.value,value:o}}}};st.create=(a,e,t)=>new st({valueType:e,keyType:a,typeName:B.ZodMap,...Q(t)});var nt=class a extends K{_parse(e){let{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==k.set)return D(s,{code:R.invalid_type,expected:k.set,received:s.parsedType}),z;let r=this._def;r.minSize!==null&&s.data.sizer.maxSize.value&&(D(s,{code:R.too_big,maximum:r.maxSize.value,type:"set",inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());let n=this._def.valueType;function l(f){let d=new Set;for(let h of f){if(h.status==="aborted")return z;h.status==="dirty"&&t.dirty(),d.add(h.value)}return{status:t.value,value:d}}let o=[...s.data.values()].map((f,d)=>n._parse(new Ue(s,f,s.path,d)));return s.common.async?Promise.all(o).then(f=>l(f)):l(o)}min(e,t){return new a({...this._def,minSize:{value:e,message:q.toString(t)}})}max(e,t){return new a({...this._def,maxSize:{value:e,message:q.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};nt.create=(a,e)=>new nt({valueType:a,minSize:null,maxSize:null,typeName:B.ZodSet,...Q(e)});var $t=class a extends K{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==k.function)return D(t,{code:R.invalid_type,expected:k.function,received:t.parsedType}),z;function s(o,f){return pt({data:o,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Xr(),ir].filter(d=>!!d),issueData:{code:R.invalid_arguments,argumentsError:f}})}function r(o,f){return pt({data:o,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Xr(),ir].filter(d=>!!d),issueData:{code:R.invalid_return_type,returnTypeError:f}})}let n={errorMap:t.common.contextualErrorMap},l=t.data;if(this._def.returns instanceof vr){let o=this;return Re(async function(...f){let d=new Ae([]),h=await o._def.args.parseAsync(f,n).catch(c=>{throw d.addIssue(s(f,c)),d}),m=await Reflect.apply(l,this,h);return await o._def.returns._def.type.parseAsync(m,n).catch(c=>{throw d.addIssue(r(m,c)),d})})}else{let o=this;return Re(function(...f){let d=o._def.args.safeParse(f,n);if(!d.success)throw new Ae([s(f,d.error)]);let h=Reflect.apply(l,this,d.data),m=o._def.returns.safeParse(h,n);if(!m.success)throw new Ae([r(h,m.error)]);return m.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new a({...this._def,args:Xe.create(e).rest(cr.create())})}returns(e){return new a({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,s){return new a({args:e||Xe.create([]).rest(cr.create()),returns:t||cr.create(),typeName:B.ZodFunction,...Q(s)})}},Nr=class extends K{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}};Nr.create=(a,e)=>new Nr({getter:a,typeName:B.ZodLazy,...Q(e)});var Lr=class extends K{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return D(t,{received:t.data,code:R.invalid_literal,expected:this._def.value}),z}return{status:"valid",value:e.data}}get value(){return this._def.value}};Lr.create=(a,e)=>new Lr({value:a,typeName:B.ZodLiteral,...Q(e)});function $s(a,e){return new Mr({values:a,typeName:B.ZodEnum,...Q(e)})}var Mr=class a extends K{_parse(e){if(typeof e.data!="string"){let t=this._getOrReturnCtx(e),s=this._def.values;return D(t,{expected:Y.joinValues(s),received:t.parsedType,code:R.invalid_type}),z}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),s=this._def.values;return D(t,{received:t.data,code:R.invalid_enum_value,options:s}),z}return Re(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return a.create(e,{...this._def,...t})}exclude(e,t=this._def){return a.create(this.options.filter(s=>!e.includes(s)),{...this._def,...t})}};Mr.create=$s;var jr=class extends K{_parse(e){let t=Y.getValidEnumValues(this._def.values),s=this._getOrReturnCtx(e);if(s.parsedType!==k.string&&s.parsedType!==k.number){let r=Y.objectValues(t);return D(s,{expected:Y.joinValues(r),received:s.parsedType,code:R.invalid_type}),z}if(this._cache||(this._cache=new Set(Y.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let r=Y.objectValues(t);return D(s,{received:s.data,code:R.invalid_enum_value,options:r}),z}return Re(e.data)}get enum(){return this._def.values}};jr.create=(a,e)=>new jr({values:a,typeName:B.ZodNativeEnum,...Q(e)});var vr=class extends K{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==k.promise&&t.common.async===!1)return D(t,{code:R.invalid_type,expected:k.promise,received:t.parsedType}),z;let s=t.parsedType===k.promise?t.data:Promise.resolve(t.data);return Re(s.then(r=>this._def.type.parseAsync(r,{path:t.path,errorMap:t.common.contextualErrorMap})))}};vr.create=(a,e)=>new vr({type:a,typeName:B.ZodPromise,...Q(e)});var qe=class extends K{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===B.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:s}=this._processInputParams(e),r=this._def.effect||null,n={addIssue:l=>{D(s,l),l.fatal?t.abort():t.dirty()},get path(){return s.path}};if(n.addIssue=n.addIssue.bind(n),r.type==="preprocess"){let l=r.transform(s.data,n);if(s.common.async)return Promise.resolve(l).then(async o=>{if(t.value==="aborted")return z;let f=await this._def.schema._parseAsync({data:o,path:s.path,parent:s});return f.status==="aborted"?z:f.status==="dirty"?wr(f.value):t.value==="dirty"?wr(f.value):f});{if(t.value==="aborted")return z;let o=this._def.schema._parseSync({data:l,path:s.path,parent:s});return o.status==="aborted"?z:o.status==="dirty"?wr(o.value):t.value==="dirty"?wr(o.value):o}}if(r.type==="refinement"){let l=o=>{let f=r.refinement(o,n);if(s.common.async)return Promise.resolve(f);if(f instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return o};if(s.common.async===!1){let o=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});return o.status==="aborted"?z:(o.status==="dirty"&&t.dirty(),l(o.value),{status:t.value,value:o.value})}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(o=>o.status==="aborted"?z:(o.status==="dirty"&&t.dirty(),l(o.value).then(()=>({status:t.value,value:o.value}))))}if(r.type==="transform")if(s.common.async===!1){let l=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});if(!hr(l))return z;let o=r.transform(l.value,n);if(o instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:o}}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(l=>hr(l)?Promise.resolve(r.transform(l.value,n)).then(o=>({status:t.value,value:o})):z);Y.assertNever(r)}};qe.create=(a,e,t)=>new qe({schema:a,typeName:B.ZodEffects,effect:e,...Q(t)});qe.createWithPreprocess=(a,e,t)=>new qe({schema:e,effect:{type:"preprocess",transform:a},typeName:B.ZodEffects,...Q(t)});var Fe=class extends K{_parse(e){return this._getType(e)===k.undefined?Re(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Fe.create=(a,e)=>new Fe({innerType:a,typeName:B.ZodOptional,...Q(e)});var er=class extends K{_parse(e){return this._getType(e)===k.null?Re(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};er.create=(a,e)=>new er({innerType:a,typeName:B.ZodNullable,...Q(e)});var Fr=class extends K{_parse(e){let{ctx:t}=this._processInputParams(e),s=t.data;return t.parsedType===k.undefined&&(s=this._def.defaultValue()),this._def.innerType._parse({data:s,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};Fr.create=(a,e)=>new Fr({innerType:a,typeName:B.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Q(e)});var Ur=class extends K{_parse(e){let{ctx:t}=this._processInputParams(e),s={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:s.data,path:s.path,parent:{...s}});return et(r)?r.then(n=>({status:"valid",value:n.status==="valid"?n.value:this._def.catchValue({get error(){return new Ae(s.common.issues)},input:s.data})})):{status:"valid",value:r.status==="valid"?r.value:this._def.catchValue({get error(){return new Ae(s.common.issues)},input:s.data})}}removeCatch(){return this._def.innerType}};Ur.create=(a,e)=>new Ur({innerType:a,typeName:B.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Q(e)});var ot=class extends K{_parse(e){if(this._getType(e)!==k.nan){let s=this._getOrReturnCtx(e);return D(s,{code:R.invalid_type,expected:k.nan,received:s.parsedType}),z}return{status:"valid",value:e.data}}};ot.create=a=>new ot({typeName:B.ZodNaN,...Q(a)});var fl=Symbol("zod_brand"),mt=class extends K{_parse(e){let{ctx:t}=this._processInputParams(e),s=t.data;return this._def.type._parse({data:s,path:t.path,parent:t})}unwrap(){return this._def.type}},vt=class a extends K{_parse(e){let{status:t,ctx:s}=this._processInputParams(e);if(s.common.async)return(async()=>{let n=await this._def.in._parseAsync({data:s.data,path:s.path,parent:s});return n.status==="aborted"?z:n.status==="dirty"?(t.dirty(),wr(n.value)):this._def.out._parseAsync({data:n.value,path:s.path,parent:s})})();{let r=this._def.in._parseSync({data:s.data,path:s.path,parent:s});return r.status==="aborted"?z:r.status==="dirty"?(t.dirty(),{status:"dirty",value:r.value}):this._def.out._parseSync({data:r.value,path:s.path,parent:s})}}static create(e,t){return new a({in:e,out:t,typeName:B.ZodPipeline})}},qr=class extends K{_parse(e){let t=this._def.innerType._parse(e),s=r=>(hr(r)&&(r.value=Object.freeze(r.value)),r);return et(t)?t.then(r=>s(r)):s(t)}unwrap(){return this._def.innerType}};qr.create=(a,e)=>new qr({innerType:a,typeName:B.ZodReadonly,...Q(e)});function Os(a,e){let t=typeof a=="function"?a(e):typeof a=="string"?{message:a}:a;return typeof t=="string"?{message:t}:t}function Ds(a,e={},t){return a?mr.create().superRefine((s,r)=>{let n=a(s);if(n instanceof Promise)return n.then(l=>{if(!l){let o=Os(e,s),f=o.fatal??t??!0;r.addIssue({code:"custom",...o,fatal:f})}});if(!n){let l=Os(e,s),o=l.fatal??t??!0;r.addIssue({code:"custom",...l,fatal:o})}}):mr.create()}var hl={object:Ce.lazycreate},B;(function(a){a.ZodString="ZodString",a.ZodNumber="ZodNumber",a.ZodNaN="ZodNaN",a.ZodBigInt="ZodBigInt",a.ZodBoolean="ZodBoolean",a.ZodDate="ZodDate",a.ZodSymbol="ZodSymbol",a.ZodUndefined="ZodUndefined",a.ZodNull="ZodNull",a.ZodAny="ZodAny",a.ZodUnknown="ZodUnknown",a.ZodNever="ZodNever",a.ZodVoid="ZodVoid",a.ZodArray="ZodArray",a.ZodObject="ZodObject",a.ZodUnion="ZodUnion",a.ZodDiscriminatedUnion="ZodDiscriminatedUnion",a.ZodIntersection="ZodIntersection",a.ZodTuple="ZodTuple",a.ZodRecord="ZodRecord",a.ZodMap="ZodMap",a.ZodSet="ZodSet",a.ZodFunction="ZodFunction",a.ZodLazy="ZodLazy",a.ZodLiteral="ZodLiteral",a.ZodEnum="ZodEnum",a.ZodEffects="ZodEffects",a.ZodNativeEnum="ZodNativeEnum",a.ZodOptional="ZodOptional",a.ZodNullable="ZodNullable",a.ZodDefault="ZodDefault",a.ZodCatch="ZodCatch",a.ZodPromise="ZodPromise",a.ZodBranded="ZodBranded",a.ZodPipeline="ZodPipeline",a.ZodReadonly="ZodReadonly"})(B||(B={}));var pl=(a,e={message:`Input not instance of ${a.name}`})=>Ds(t=>t instanceof a,e),ks=pr.create,Ns=Tr.create,ml=ot.create,vl=Or.create,Ls=Ir.create,gl=Ar.create,yl=tt.create,_l=Cr.create,El=$r.create,Sl=mr.create,Pl=cr.create,bl=We.create,xl=at.create,Rl=ur.create,wl=Ce.create,Tl=Ce.strictCreate,Ol=Dr.create,Il=At.create,Al=kr.create,Cl=Xe.create,$l=Ct.create,Dl=st.create,kl=nt.create,Nl=$t.create,Ll=Nr.create,Ml=Lr.create,jl=Mr.create,Fl=jr.create,Ul=vr.create,ql=qe.create,Vl=Fe.create,Hl=er.create,zl=qe.createWithPreprocess,Bl=vt.create,Wl=()=>ks().optional(),Ql=()=>Ns().optional(),Zl=()=>Ls().optional(),Kl={string:(a=>pr.create({...a,coerce:!0})),number:(a=>Tr.create({...a,coerce:!0})),boolean:(a=>Ir.create({...a,coerce:!0})),bigint:(a=>Or.create({...a,coerce:!0})),date:(a=>Ar.create({...a,coerce:!0}))};var Gl=z;var ba="2025-06-18";var Ms=[ba,"2025-03-26","2024-11-05","2024-10-07"],Dt="2.0",js=i.union([i.string(),i.number().int()]),Fs=i.string(),Jl=i.object({progressToken:i.optional(js)}).passthrough(),Ve=i.object({_meta:i.optional(Jl)}).passthrough(),$e=i.object({method:i.string(),params:i.optional(Ve)}),gt=i.object({_meta:i.optional(i.object({}).passthrough())}).passthrough(),rr=i.object({method:i.string(),params:i.optional(gt)}),He=i.object({_meta:i.optional(i.object({}).passthrough())}).passthrough(),kt=i.union([i.string(),i.number().int()]),Us=i.object({jsonrpc:i.literal(Dt),id:kt}).merge($e).strict(),qs=a=>Us.safeParse(a).success,Vs=i.object({jsonrpc:i.literal(Dt)}).merge(rr).strict(),Hs=a=>Vs.safeParse(a).success,zs=i.object({jsonrpc:i.literal(Dt),id:kt,result:He}).strict(),xa=a=>zs.safeParse(a).success,Qe;(function(a){a[a.ConnectionClosed=-32e3]="ConnectionClosed",a[a.RequestTimeout=-32001]="RequestTimeout",a[a.ParseError=-32700]="ParseError",a[a.InvalidRequest=-32600]="InvalidRequest",a[a.MethodNotFound=-32601]="MethodNotFound",a[a.InvalidParams=-32602]="InvalidParams",a[a.InternalError=-32603]="InternalError"})(Qe||(Qe={}));var Bs=i.object({jsonrpc:i.literal(Dt),id:kt,error:i.object({code:i.number().int(),message:i.string(),data:i.optional(i.unknown())})}).strict(),Ws=a=>Bs.safeParse(a).success,Qs=i.union([Us,Vs,zs,Bs]),Nt=He.strict(),Lt=rr.extend({method:i.literal("notifications/cancelled"),params:gt.extend({requestId:kt,reason:i.string().optional()})}),Yl=i.object({src:i.string(),mimeType:i.optional(i.string()),sizes:i.optional(i.array(i.string()))}).passthrough(),yt=i.object({icons:i.array(Yl).optional()}).passthrough(),_t=i.object({name:i.string(),title:i.optional(i.string())}).passthrough(),Zs=_t.extend({version:i.string(),websiteUrl:i.optional(i.string())}).merge(yt),Xl=i.object({experimental:i.optional(i.object({}).passthrough()),sampling:i.optional(i.object({}).passthrough()),elicitation:i.optional(i.object({}).passthrough()),roots:i.optional(i.object({listChanged:i.optional(i.boolean())}).passthrough())}).passthrough(),Ra=$e.extend({method:i.literal("initialize"),params:Ve.extend({protocolVersion:i.string(),capabilities:Xl,clientInfo:Zs})});var ec=i.object({experimental:i.optional(i.object({}).passthrough()),logging:i.optional(i.object({}).passthrough()),completions:i.optional(i.object({}).passthrough()),prompts:i.optional(i.object({listChanged:i.optional(i.boolean())}).passthrough()),resources:i.optional(i.object({subscribe:i.optional(i.boolean()),listChanged:i.optional(i.boolean())}).passthrough()),tools:i.optional(i.object({listChanged:i.optional(i.boolean())}).passthrough())}).passthrough(),rc=He.extend({protocolVersion:i.string(),capabilities:ec,serverInfo:Zs,instructions:i.optional(i.string())}),wa=rr.extend({method:i.literal("notifications/initialized")});var Mt=$e.extend({method:i.literal("ping")}),tc=i.object({progress:i.number(),total:i.optional(i.number()),message:i.optional(i.string())}).passthrough(),jt=rr.extend({method:i.literal("notifications/progress"),params:gt.merge(tc).extend({progressToken:js})}),Ft=$e.extend({params:Ve.extend({cursor:i.optional(Fs)}).optional()}),Ut=He.extend({nextCursor:i.optional(Fs)}),Ks=i.object({uri:i.string(),mimeType:i.optional(i.string()),_meta:i.optional(i.object({}).passthrough())}).passthrough(),Gs=Ks.extend({text:i.string()}),Ta=i.string().refine(a=>{try{return atob(a),!0}catch{return!1}},{message:"Invalid Base64 string"}),Js=Ks.extend({blob:Ta}),Ys=_t.extend({uri:i.string(),description:i.optional(i.string()),mimeType:i.optional(i.string()),_meta:i.optional(i.object({}).passthrough())}).merge(yt),ac=_t.extend({uriTemplate:i.string(),description:i.optional(i.string()),mimeType:i.optional(i.string()),_meta:i.optional(i.object({}).passthrough())}).merge(yt),sc=Ft.extend({method:i.literal("resources/list")}),nc=Ut.extend({resources:i.array(Ys)}),oc=Ft.extend({method:i.literal("resources/templates/list")}),ic=Ut.extend({resourceTemplates:i.array(ac)}),lc=$e.extend({method:i.literal("resources/read"),params:Ve.extend({uri:i.string()})}),cc=He.extend({contents:i.array(i.union([Gs,Js]))}),uc=rr.extend({method:i.literal("notifications/resources/list_changed")}),dc=$e.extend({method:i.literal("resources/subscribe"),params:Ve.extend({uri:i.string()})}),fc=$e.extend({method:i.literal("resources/unsubscribe"),params:Ve.extend({uri:i.string()})}),hc=rr.extend({method:i.literal("notifications/resources/updated"),params:gt.extend({uri:i.string()})}),pc=i.object({name:i.string(),description:i.optional(i.string()),required:i.optional(i.boolean())}).passthrough(),mc=_t.extend({description:i.optional(i.string()),arguments:i.optional(i.array(pc)),_meta:i.optional(i.object({}).passthrough())}).merge(yt),vc=Ft.extend({method:i.literal("prompts/list")}),gc=Ut.extend({prompts:i.array(mc)}),yc=$e.extend({method:i.literal("prompts/get"),params:Ve.extend({name:i.string(),arguments:i.optional(i.record(i.string()))})}),Oa=i.object({type:i.literal("text"),text:i.string(),_meta:i.optional(i.object({}).passthrough())}).passthrough(),Ia=i.object({type:i.literal("image"),data:Ta,mimeType:i.string(),_meta:i.optional(i.object({}).passthrough())}).passthrough(),Aa=i.object({type:i.literal("audio"),data:Ta,mimeType:i.string(),_meta:i.optional(i.object({}).passthrough())}).passthrough(),_c=i.object({type:i.literal("resource"),resource:i.union([Gs,Js]),_meta:i.optional(i.object({}).passthrough())}).passthrough(),Ec=Ys.extend({type:i.literal("resource_link")}),Xs=i.union([Oa,Ia,Aa,Ec,_c]),Sc=i.object({role:i.enum(["user","assistant"]),content:Xs}).passthrough(),Pc=He.extend({description:i.optional(i.string()),messages:i.array(Sc)}),bc=rr.extend({method:i.literal("notifications/prompts/list_changed")}),xc=i.object({title:i.optional(i.string()),readOnlyHint:i.optional(i.boolean()),destructiveHint:i.optional(i.boolean()),idempotentHint:i.optional(i.boolean()),openWorldHint:i.optional(i.boolean())}).passthrough(),Rc=_t.extend({description:i.optional(i.string()),inputSchema:i.object({type:i.literal("object"),properties:i.optional(i.object({}).passthrough()),required:i.optional(i.array(i.string()))}).passthrough(),outputSchema:i.optional(i.object({type:i.literal("object"),properties:i.optional(i.object({}).passthrough()),required:i.optional(i.array(i.string()))}).passthrough()),annotations:i.optional(xc),_meta:i.optional(i.object({}).passthrough())}).merge(yt),Ca=Ft.extend({method:i.literal("tools/list")}),wc=Ut.extend({tools:i.array(Rc)}),en=He.extend({content:i.array(Xs).default([]),structuredContent:i.object({}).passthrough().optional(),isError:i.optional(i.boolean())}),Ef=en.or(He.extend({toolResult:i.unknown()})),$a=$e.extend({method:i.literal("tools/call"),params:Ve.extend({name:i.string(),arguments:i.optional(i.record(i.unknown()))})}),Tc=rr.extend({method:i.literal("notifications/tools/list_changed")}),Et=i.enum(["debug","info","notice","warning","error","critical","alert","emergency"]),Da=$e.extend({method:i.literal("logging/setLevel"),params:Ve.extend({level:Et})}),Oc=rr.extend({method:i.literal("notifications/message"),params:gt.extend({level:Et,logger:i.optional(i.string()),data:i.unknown()})}),Ic=i.object({name:i.string().optional()}).passthrough(),Ac=i.object({hints:i.optional(i.array(Ic)),costPriority:i.optional(i.number().min(0).max(1)),speedPriority:i.optional(i.number().min(0).max(1)),intelligencePriority:i.optional(i.number().min(0).max(1))}).passthrough(),Cc=i.object({role:i.enum(["user","assistant"]),content:i.union([Oa,Ia,Aa])}).passthrough(),$c=$e.extend({method:i.literal("sampling/createMessage"),params:Ve.extend({messages:i.array(Cc),systemPrompt:i.optional(i.string()),includeContext:i.optional(i.enum(["none","thisServer","allServers"])),temperature:i.optional(i.number()),maxTokens:i.number().int(),stopSequences:i.optional(i.array(i.string())),metadata:i.optional(i.object({}).passthrough()),modelPreferences:i.optional(Ac)})}),ka=He.extend({model:i.string(),stopReason:i.optional(i.enum(["endTurn","stopSequence","maxTokens"]).or(i.string())),role:i.enum(["user","assistant"]),content:i.discriminatedUnion("type",[Oa,Ia,Aa])}),Dc=i.object({type:i.literal("boolean"),title:i.optional(i.string()),description:i.optional(i.string()),default:i.optional(i.boolean())}).passthrough(),kc=i.object({type:i.literal("string"),title:i.optional(i.string()),description:i.optional(i.string()),minLength:i.optional(i.number()),maxLength:i.optional(i.number()),format:i.optional(i.enum(["email","uri","date","date-time"]))}).passthrough(),Nc=i.object({type:i.enum(["number","integer"]),title:i.optional(i.string()),description:i.optional(i.string()),minimum:i.optional(i.number()),maximum:i.optional(i.number())}).passthrough(),Lc=i.object({type:i.literal("string"),title:i.optional(i.string()),description:i.optional(i.string()),enum:i.array(i.string()),enumNames:i.optional(i.array(i.string()))}).passthrough(),Mc=i.union([Dc,kc,Nc,Lc]),jc=$e.extend({method:i.literal("elicitation/create"),params:Ve.extend({message:i.string(),requestedSchema:i.object({type:i.literal("object"),properties:i.record(i.string(),Mc),required:i.optional(i.array(i.string()))}).passthrough()})}),Na=He.extend({action:i.enum(["accept","decline","cancel"]),content:i.optional(i.record(i.string(),i.unknown()))}),Fc=i.object({type:i.literal("ref/resource"),uri:i.string()}).passthrough();var Uc=i.object({type:i.literal("ref/prompt"),name:i.string()}).passthrough(),qc=$e.extend({method:i.literal("completion/complete"),params:Ve.extend({ref:i.union([Uc,Fc]),argument:i.object({name:i.string(),value:i.string()}).passthrough(),context:i.optional(i.object({arguments:i.optional(i.record(i.string(),i.string()))}))})}),Vc=He.extend({completion:i.object({values:i.array(i.string()).max(100),total:i.optional(i.number().int()),hasMore:i.optional(i.boolean())}).passthrough()}),Hc=i.object({uri:i.string().startsWith("file://"),name:i.optional(i.string()),_meta:i.optional(i.object({}).passthrough())}).passthrough(),zc=$e.extend({method:i.literal("roots/list")}),La=He.extend({roots:i.array(Hc)}),Bc=rr.extend({method:i.literal("notifications/roots/list_changed")}),Sf=i.union([Mt,Ra,qc,Da,yc,vc,sc,oc,lc,dc,fc,$a,Ca]),Pf=i.union([Lt,jt,wa,Bc]),bf=i.union([Nt,ka,Na,La]),xf=i.union([Mt,$c,jc,zc]),Rf=i.union([Lt,jt,Oc,hc,uc,Tc,bc]),wf=i.union([Nt,rc,Vc,Pc,gc,nc,ic,cc,en,wc]),Ze=class extends Error{constructor(e,t,s){super(`MCP error ${e}: ${t}`),this.code=e,this.data=s,this.name="McpError"}};var Wc=6e4,qt=class{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this.setNotificationHandler(Lt,t=>{let s=this._requestHandlerAbortControllers.get(t.params.requestId);s?.abort(t.params.reason)}),this.setNotificationHandler(jt,t=>{this._onprogress(t)}),this.setRequestHandler(Mt,t=>({}))}_setupTimeout(e,t,s,r,n=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(r,t),startTime:Date.now(),timeout:t,maxTotalTimeout:s,resetTimeoutOnProgress:n,onTimeout:r})}_resetTimeout(e){let t=this._timeoutInfo.get(e);if(!t)return!1;let s=Date.now()-t.startTime;if(t.maxTotalTimeout&&s>=t.maxTotalTimeout)throw this._timeoutInfo.delete(e),new Ze(Qe.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:t.maxTotalTimeout,totalElapsed:s});return clearTimeout(t.timeoutId),t.timeoutId=setTimeout(t.onTimeout,t.timeout),!0}_cleanupTimeout(e){let t=this._timeoutInfo.get(e);t&&(clearTimeout(t.timeoutId),this._timeoutInfo.delete(e))}async connect(e){var t,s,r;this._transport=e;let n=(t=this.transport)===null||t===void 0?void 0:t.onclose;this._transport.onclose=()=>{n?.(),this._onclose()};let l=(s=this.transport)===null||s===void 0?void 0:s.onerror;this._transport.onerror=f=>{l?.(f),this._onerror(f)};let o=(r=this._transport)===null||r===void 0?void 0:r.onmessage;this._transport.onmessage=(f,d)=>{o?.(f,d),xa(f)||Ws(f)?this._onresponse(f):qs(f)?this._onrequest(f,d):Hs(f)?this._onnotification(f):this._onerror(new Error(`Unknown message type: ${JSON.stringify(f)}`))},await this._transport.start()}_onclose(){var e;let t=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._pendingDebouncedNotifications.clear(),this._transport=void 0,(e=this.onclose)===null||e===void 0||e.call(this);let s=new Ze(Qe.ConnectionClosed,"Connection closed");for(let r of t.values())r(s)}_onerror(e){var t;(t=this.onerror)===null||t===void 0||t.call(this,e)}_onnotification(e){var t;let s=(t=this._notificationHandlers.get(e.method))!==null&&t!==void 0?t:this.fallbackNotificationHandler;s!==void 0&&Promise.resolve().then(()=>s(e)).catch(r=>this._onerror(new Error(`Uncaught error in notification handler: ${r}`)))}_onrequest(e,t){var s,r;let n=(s=this._requestHandlers.get(e.method))!==null&&s!==void 0?s:this.fallbackRequestHandler,l=this._transport;if(n===void 0){l?.send({jsonrpc:"2.0",id:e.id,error:{code:Qe.MethodNotFound,message:"Method not found"}}).catch(d=>this._onerror(new Error(`Failed to send an error response: ${d}`)));return}let o=new AbortController;this._requestHandlerAbortControllers.set(e.id,o);let f={signal:o.signal,sessionId:l?.sessionId,_meta:(r=e.params)===null||r===void 0?void 0:r._meta,sendNotification:d=>this.notification(d,{relatedRequestId:e.id}),sendRequest:(d,h,m)=>this.request(d,h,{...m,relatedRequestId:e.id}),authInfo:t?.authInfo,requestId:e.id,requestInfo:t?.requestInfo};Promise.resolve().then(()=>n(e,f)).then(d=>{if(!o.signal.aborted)return l?.send({result:d,jsonrpc:"2.0",id:e.id})},d=>{var h;if(!o.signal.aborted)return l?.send({jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(d.code)?d.code:Qe.InternalError,message:(h=d.message)!==null&&h!==void 0?h:"Internal error"}})}).catch(d=>this._onerror(new Error(`Failed to send response: ${d}`))).finally(()=>{this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:t,...s}=e.params,r=Number(t),n=this._progressHandlers.get(r);if(!n){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let l=this._responseHandlers.get(r),o=this._timeoutInfo.get(r);if(o&&l&&o.resetTimeoutOnProgress)try{this._resetTimeout(r)}catch(f){l(f);return}n(s)}_onresponse(e){let t=Number(e.id),s=this._responseHandlers.get(t);if(s===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}if(this._responseHandlers.delete(t),this._progressHandlers.delete(t),this._cleanupTimeout(t),xa(e))s(e);else{let r=new Ze(e.error.code,e.error.message,e.error.data);s(r)}}get transport(){return this._transport}async close(){var e;await((e=this._transport)===null||e===void 0?void 0:e.close())}request(e,t,s){let{relatedRequestId:r,resumptionToken:n,onresumptiontoken:l}=s??{};return new Promise((o,f)=>{var d,h,m,E,c,y;if(!this._transport){f(new Error("Not connected"));return}((d=this._options)===null||d===void 0?void 0:d.enforceStrictCapabilities)===!0&&this.assertCapabilityForMethod(e.method),(h=s?.signal)===null||h===void 0||h.throwIfAborted();let _=this._requestMessageId++,v={...e,jsonrpc:"2.0",id:_};s?.onprogress&&(this._progressHandlers.set(_,s.onprogress),v.params={...e.params,_meta:{...((m=e.params)===null||m===void 0?void 0:m._meta)||{},progressToken:_}});let b=w=>{var I;this._responseHandlers.delete(_),this._progressHandlers.delete(_),this._cleanupTimeout(_),(I=this._transport)===null||I===void 0||I.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:_,reason:String(w)}},{relatedRequestId:r,resumptionToken:n,onresumptiontoken:l}).catch(A=>this._onerror(new Error(`Failed to send cancellation: ${A}`))),f(w)};this._responseHandlers.set(_,w=>{var I;if(!(!((I=s?.signal)===null||I===void 0)&&I.aborted)){if(w instanceof Error)return f(w);try{let A=t.parse(w.result);o(A)}catch(A){f(A)}}}),(E=s?.signal)===null||E===void 0||E.addEventListener("abort",()=>{var w;b((w=s?.signal)===null||w===void 0?void 0:w.reason)});let T=(c=s?.timeout)!==null&&c!==void 0?c:Wc,x=()=>b(new Ze(Qe.RequestTimeout,"Request timed out",{timeout:T}));this._setupTimeout(_,T,s?.maxTotalTimeout,x,(y=s?.resetTimeoutOnProgress)!==null&&y!==void 0?y:!1),this._transport.send(v,{relatedRequestId:r,resumptionToken:n,onresumptiontoken:l}).catch(w=>{this._cleanupTimeout(_),f(w)})})}async notification(e,t){var s,r;if(!this._transport)throw new Error("Not connected");if(this.assertNotificationCapability(e.method),((r=(s=this._options)===null||s===void 0?void 0:s.debouncedNotificationMethods)!==null&&r!==void 0?r:[]).includes(e.method)&&!e.params&&!t?.relatedRequestId){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{var f;if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let d={...e,jsonrpc:"2.0"};(f=this._transport)===null||f===void 0||f.send(d,t).catch(h=>this._onerror(h))});return}let o={...e,jsonrpc:"2.0"};await this._transport.send(o,t)}setRequestHandler(e,t){let s=e.shape.method.value;this.assertRequestHandlerCapability(s),this._requestHandlers.set(s,(r,n)=>Promise.resolve(t(e.parse(r),n)))}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,t){this._notificationHandlers.set(e.shape.method.value,s=>Promise.resolve(t(e.parse(s))))}removeNotificationHandler(e){this._notificationHandlers.delete(e)}};function rn(a,e){return Object.entries(e).reduce((t,[s,r])=>(r&&typeof r=="object"?t[s]=t[s]?{...t[s],...r}:r:t[s]=r,t),{...a})}var ni=ga(si(),1),oa=class extends qt{constructor(e,t){var s;super(t),this._serverInfo=e,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(Et.options.map((r,n)=>[r,n])),this.isMessageIgnored=(r,n)=>{let l=this._loggingLevels.get(n);return l?this.LOG_LEVEL_SEVERITY.get(r)this._oninitialize(r)),this.setNotificationHandler(wa,()=>{var r;return(r=this.oninitialized)===null||r===void 0?void 0:r.call(this)}),this._capabilities.logging&&this.setRequestHandler(Da,async(r,n)=>{var l;let o=n.sessionId||((l=n.requestInfo)===null||l===void 0?void 0:l.headers["mcp-session-id"])||void 0,{level:f}=r.params,d=Et.safeParse(f);return d.success&&this._loggingLevels.set(o,d.data),{}})}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=rn(this._capabilities,e)}assertCapabilityForMethod(e){var t,s,r;switch(e){case"sampling/createMessage":if(!(!((t=this._clientCapabilities)===null||t===void 0)&&t.sampling))throw new Error(`Client does not support sampling (required for ${e})`);break;case"elicitation/create":if(!(!((s=this._clientCapabilities)===null||s===void 0)&&s.elicitation))throw new Error(`Client does not support elicitation (required for ${e})`);break;case"roots/list":if(!(!((r=this._clientCapabilities)===null||r===void 0)&&r.roots))throw new Error(`Client does not support listing roots (required for ${e})`);break;case"ping":break}}assertNotificationCapability(e){switch(e){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${e})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${e})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${e})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){switch(e){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Server does not support sampling (required for ${e})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${e})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${e})`);break;case"ping":case"initialize":break}}async _oninitialize(e){let t=e.params.protocolVersion;return this._clientCapabilities=e.params.capabilities,this._clientVersion=e.params.clientInfo,{protocolVersion:Ms.includes(t)?t:ba,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},Nt)}async createMessage(e,t){return this.request({method:"sampling/createMessage",params:e},ka,t)}async elicitInput(e,t){let s=await this.request({method:"elicitation/create",params:e},Na,t);if(s.action==="accept"&&s.content)try{let r=new ni.default,n=r.compile(e.requestedSchema);if(!n(s.content))throw new Ze(Qe.InvalidParams,`Elicitation response content does not match requested schema: ${r.errorsText(n.errors)}`)}catch(r){throw r instanceof Ze?r:new Ze(Qe.InternalError,`Error validating elicitation response: ${r}`)}return s}async listRoots(e,t){return this.request({method:"roots/list",params:e},La,t)}async sendLoggingMessage(e,t){if(this._capabilities.logging&&!this.isMessageIgnored(e.level,t))return this.notification({method:"notifications/message",params:e})}async sendResourceUpdated(e){return this.notification({method:"notifications/resources/updated",params:e})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}};var is=ga(require("node:process"),1);var ia=class{append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(` -`);if(e===-1)return null;let t=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),Rd(t)}clear(){this._buffer=void 0}};function Rd(a){return Qs.parse(JSON.parse(a))}function oi(a){return JSON.stringify(a)+` -`}var la=class{constructor(e=is.default.stdin,t=is.default.stdout){this._stdin=e,this._stdout=t,this._readBuffer=new ia,this._started=!1,this._ondata=s=>{this._readBuffer.append(s),this.processReadBuffer()},this._onerror=s=>{var r;(r=this.onerror)===null||r===void 0||r.call(this,s)}}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){for(var e,t;;)try{let s=this._readBuffer.readMessage();if(s===null)break;(e=this.onmessage)===null||e===void 0||e.call(this,s)}catch(s){(t=this.onerror)===null||t===void 0||t.call(this,s)}}async close(){var e;this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0&&this._stdin.pause(),this._readBuffer.clear(),(e=this.onclose)===null||e===void 0||e.call(this)}send(e){return new Promise(t=>{let s=oi(e);this._stdout.write(s)?t():this._stdout.once("drain",t)})}};var da=ga(require("path"),1),li=require("os");var ls={DEFAULT:3e5,HEALTH_CHECK:3e4,WORKER_STARTUP_WAIT:1e3,WORKER_STARTUP_RETRIES:300,PRE_RESTART_SETTLE_DELAY:2e3,WINDOWS_MULTIPLIER:1.5};function ii(a){return process.platform==="win32"?Math.round(a*ls.WINDOWS_MULTIPLIER):a}var Nh=da.default.join((0,li.homedir)(),".claude","plugins","marketplaces","thedotmack"),Lh=ii(ls.HEALTH_CHECK),ca=null,ua=null;function ci(){if(ca!==null)return ca;let a=da.default.join(Be.get("CLAUDE_MEM_DATA_DIR"),"settings.json"),e=Be.loadFromFile(a);return ca=parseInt(e.CLAUDE_MEM_WORKER_PORT,10),ca}function ui(){if(ua!==null)return ua;let a=da.default.join(Be.get("CLAUDE_MEM_DATA_DIR"),"settings.json");return ua=Be.loadFromFile(a).CLAUDE_MEM_WORKER_HOST,ua}console.log=(...a)=>{pe.error("CONSOLE","Intercepted console output (MCP protocol protection)",void 0,{args:a})};var wd=ci(),Td=ui(),Pt=`http://${Td}:${wd}`,di={search:"/api/search",timeline:"/api/timeline"};async function fi(a,e){pe.debug("SYSTEM","\u2192 Worker API",void 0,{endpoint:a,params:e});try{let t=new URLSearchParams;for(let[l,o]of Object.entries(e))o!=null&&t.append(l,String(o));let s=`${Pt}${a}?${t}`,r=await fetch(s);if(!r.ok){let l=await r.text();throw new Error(`Worker API error (${r.status}): ${l}`)}let n=await r.json();return pe.debug("SYSTEM","\u2190 Worker API success",void 0,{endpoint:a}),n}catch(t){return pe.error("SYSTEM","\u2190 Worker API error",{endpoint:a},t),{content:[{type:"text",text:`Error calling Worker API: ${t instanceof Error?t.message:String(t)}`}],isError:!0}}}async function Od(a,e){pe.debug("HTTP","Worker API request (POST)",void 0,{endpoint:a});try{let t=`${Pt}${a}`,s=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!s.ok){let n=await s.text();throw new Error(`Worker API error (${s.status}): ${n}`)}let r=await s.json();return pe.debug("HTTP","Worker API success (POST)",void 0,{endpoint:a}),{content:[{type:"text",text:JSON.stringify(r,null,2)}]}}catch(t){return pe.error("HTTP","Worker API error (POST)",{endpoint:a},t),{content:[{type:"text",text:`Error calling Worker API: ${t instanceof Error?t.message:String(t)}`}],isError:!0}}}async function Id(){try{return(await fetch(`${Pt}/api/health`)).ok}catch(a){return pe.debug("SYSTEM","Worker health check failed",{},a),!1}}var hi=[{name:"__IMPORTANT",description:`3-LAYER WORKFLOW (ALWAYS FOLLOW): +"use strict";var Ny=Object.create;var bs=Object.defineProperty;var Dy=Object.getOwnPropertyDescriptor;var Ry=Object.getOwnPropertyNames;var Zy=Object.getPrototypeOf,Ay=Object.prototype.hasOwnProperty;var S=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),vn=(e,t)=>{for(var r in t)bs(e,r,{get:t[r],enumerable:!0})},Uy=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ry(t))!Ay.call(e,o)&&o!==r&&bs(e,o,{get:()=>t[o],enumerable:!(n=Dy(t,o))||n.enumerable});return e};var ni=(e,t,r)=>(r=e!=null?Ny(Zy(e)):{},Uy(t||!e||!e.__esModule?bs(r,"default",{value:e,enumerable:!0}):r,e));var To=S(te=>{"use strict";Object.defineProperty(te,"__esModule",{value:!0});te.regexpCode=te.getEsmExportName=te.getProperty=te.safeStringify=te.stringify=te.strConcat=te.addCodeArg=te.str=te._=te.nil=te._Code=te.Name=te.IDENTIFIER=te._CodeOrName=void 0;var Io=class{};te._CodeOrName=Io;te.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var mr=class extends Io{constructor(t){if(super(),!te.IDENTIFIER.test(t))throw new Error("CodeGen: name must be a valid identifier");this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};te.Name=mr;var tt=class extends Io{constructor(t){super(),this._items=typeof t=="string"?[t]:t}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let t=this._items[0];return t===""||t==='""'}get str(){var t;return(t=this._str)!==null&&t!==void 0?t:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var t;return(t=this._names)!==null&&t!==void 0?t:this._names=this._items.reduce((r,n)=>(n instanceof mr&&(r[n.str]=(r[n.str]||0)+1),r),{})}};te._Code=tt;te.nil=new tt("");function Dg(e,...t){let r=[e[0]],n=0;for(;n{"use strict";Object.defineProperty(Le,"__esModule",{value:!0});Le.ValueScope=Le.ValueScopeName=Le.Scope=Le.varKinds=Le.UsedValueState=void 0;var Me=To(),yd=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},Ea;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(Ea||(Le.UsedValueState=Ea={}));Le.varKinds={const:new Me.Name("const"),let:new Me.Name("let"),var:new Me.Name("var")};var Ta=class{constructor({prefixes:t,parent:r}={}){this._names={},this._prefixes=t,this._parent=r}toName(t){return t instanceof Me.Name?t:this.name(t)}name(t){return new Me.Name(this._newName(t))}_newName(t){let r=this._names[t]||this._nameGroup(t);return`${t}${r.index++}`}_nameGroup(t){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(t)||this._prefixes&&!this._prefixes.has(t))throw new Error(`CodeGen: prefix "${t}" is not allowed in this scope`);return this._names[t]={prefix:t,index:0}}};Le.Scope=Ta;var Pa=class extends Me.Name{constructor(t,r){super(r),this.prefix=t}setValue(t,{property:r,itemIndex:n}){this.value=t,this.scopePath=(0,Me._)`.${new Me.Name(r)}[${n}]`}};Le.ValueScopeName=Pa;var US=(0,Me._)`\n`,$d=class extends Ta{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?US:Me.nil}}get(){return this._scope}name(t){return new Pa(t,this._newName(t))}value(t,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let o=this.toName(t),{prefix:i}=o,a=(n=r.key)!==null&&n!==void 0?n:r.ref,s=this._values[i];if(s){let l=s.get(a);if(l)return l}else s=this._values[i]=new Map;s.set(a,o);let c=this._scope[i]||(this._scope[i]=[]),u=c.length;return c[u]=r.ref,o.setValue(r,{property:i,itemIndex:u}),o}getValue(t,r){let n=this._values[t];if(n)return n.get(r)}scopeRefs(t,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,Me._)`${t}${n.scopePath}`})}scopeCode(t=this._values,r,n){return this._reduceValues(t,o=>{if(o.value===void 0)throw new Error(`CodeGen: name "${o}" has no value`);return o.value.code},r,n)}_reduceValues(t,r,n={},o){let i=Me.nil;for(let a in t){let s=t[a];if(!s)continue;let c=n[a]=n[a]||new Map;s.forEach(u=>{if(c.has(u))return;c.set(u,Ea.Started);let l=r(u);if(l){let d=this.opts.es5?Le.varKinds.var:Le.varKinds.const;i=(0,Me._)`${i}${d} ${u} = ${l};${this.opts._n}`}else if(l=o?.(u))i=(0,Me._)`${i}${l}${this.opts._n}`;else throw new yd(u);c.set(u,Ea.Completed)})}return i}};Le.ValueScope=$d});var K=S(G=>{"use strict";Object.defineProperty(G,"__esModule",{value:!0});G.or=G.and=G.not=G.CodeGen=G.operators=G.varKinds=G.ValueScopeName=G.ValueScope=G.Scope=G.Name=G.regexpCode=G.stringify=G.getProperty=G.nil=G.strConcat=G.str=G._=void 0;var Q=To(),dt=bd(),Xt=To();Object.defineProperty(G,"_",{enumerable:!0,get:function(){return Xt._}});Object.defineProperty(G,"str",{enumerable:!0,get:function(){return Xt.str}});Object.defineProperty(G,"strConcat",{enumerable:!0,get:function(){return Xt.strConcat}});Object.defineProperty(G,"nil",{enumerable:!0,get:function(){return Xt.nil}});Object.defineProperty(G,"getProperty",{enumerable:!0,get:function(){return Xt.getProperty}});Object.defineProperty(G,"stringify",{enumerable:!0,get:function(){return Xt.stringify}});Object.defineProperty(G,"regexpCode",{enumerable:!0,get:function(){return Xt.regexpCode}});Object.defineProperty(G,"Name",{enumerable:!0,get:function(){return Xt.Name}});var Da=bd();Object.defineProperty(G,"Scope",{enumerable:!0,get:function(){return Da.Scope}});Object.defineProperty(G,"ValueScope",{enumerable:!0,get:function(){return Da.ValueScope}});Object.defineProperty(G,"ValueScopeName",{enumerable:!0,get:function(){return Da.ValueScopeName}});Object.defineProperty(G,"varKinds",{enumerable:!0,get:function(){return Da.varKinds}});G.operators={GT:new Q._Code(">"),GTE:new Q._Code(">="),LT:new Q._Code("<"),LTE:new Q._Code("<="),EQ:new Q._Code("==="),NEQ:new Q._Code("!=="),NOT:new Q._Code("!"),OR:new Q._Code("||"),AND:new Q._Code("&&"),ADD:new Q._Code("+")};var Rt=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},xd=class extends Rt{constructor(t,r,n){super(),this.varKind=t,this.name=r,this.rhs=n}render({es5:t,_n:r}){let n=t?dt.varKinds.var:this.varKind,o=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${o};`+r}optimizeNames(t,r){if(t[this.name.str])return this.rhs&&(this.rhs=en(this.rhs,t,r)),this}get names(){return this.rhs instanceof Q._CodeOrName?this.rhs.names:{}}},Oa=class extends Rt{constructor(t,r,n){super(),this.lhs=t,this.rhs=r,this.sideEffects=n}render({_n:t}){return`${this.lhs} = ${this.rhs};`+t}optimizeNames(t,r){if(!(this.lhs instanceof Q.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=en(this.rhs,t,r),this}get names(){let t=this.lhs instanceof Q.Name?{}:{...this.lhs.names};return Na(t,this.rhs)}},kd=class extends Oa{constructor(t,r,n,o){super(t,n,o),this.op=r}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},Sd=class extends Rt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},wd=class extends Rt{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},zd=class extends Rt{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},Id=class extends Rt{constructor(t){super(),this.code=t}render({_n:t}){return`${this.code};`+t}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(t,r){return this.code=en(this.code,t,r),this}get names(){return this.code instanceof Q._CodeOrName?this.code.names:{}}},Po=class extends Rt{constructor(t=[]){super(),this.nodes=t}render(t){return this.nodes.reduce((r,n)=>r+n.render(t),"")}optimizeNodes(){let{nodes:t}=this,r=t.length;for(;r--;){let n=t[r].optimizeNodes();Array.isArray(n)?t.splice(r,1,...n):n?t[r]=n:t.splice(r,1)}return t.length>0?this:void 0}optimizeNames(t,r){let{nodes:n}=this,o=n.length;for(;o--;){let i=n[o];i.optimizeNames(t,r)||(CS(t,i.names),n.splice(o,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>vr(t,r.names),{})}},Zt=class extends Po{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},Ed=class extends Po{},Qr=class extends Zt{};Qr.kind="else";var hr=class e extends Zt{constructor(t,r){super(r),this.condition=t}render(t){let r=`if(${this.condition})`+super.render(t);return this.else&&(r+="else "+this.else.render(t)),r}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new Qr(n):n}if(r)return t===!1?r instanceof e?r:r.nodes:this.nodes.length?this:new e(Zg(t),r instanceof e?[r]:r.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(t,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(t,r),!!(super.optimizeNames(t,r)||this.else))return this.condition=en(this.condition,t,r),this}get names(){let t=super.names;return Na(t,this.condition),this.else&&vr(t,this.else.names),t}};hr.kind="if";var gr=class extends Zt{};gr.kind="for";var Td=class extends gr{constructor(t){super(),this.iteration=t}render(t){return`for(${this.iteration})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iteration=en(this.iteration,t,r),this}get names(){return vr(super.names,this.iteration.names)}},Pd=class extends gr{constructor(t,r,n,o){super(),this.varKind=t,this.name=r,this.from=n,this.to=o}render(t){let r=t.es5?dt.varKinds.var:this.varKind,{name:n,from:o,to:i}=this;return`for(${r} ${n}=${o}; ${n}<${i}; ${n}++)`+super.render(t)}get names(){let t=Na(super.names,this.from);return Na(t,this.to)}},ja=class extends gr{constructor(t,r,n,o){super(),this.loop=t,this.varKind=r,this.name=n,this.iterable=o}render(t){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iterable=en(this.iterable,t,r),this}get names(){return vr(super.names,this.iterable.names)}},Oo=class extends Zt{constructor(t,r,n){super(),this.name=t,this.args=r,this.async=n}render(t){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(t)}};Oo.kind="func";var jo=class extends Po{render(t){return"return "+super.render(t)}};jo.kind="return";var Od=class extends Zt{render(t){let r="try"+super.render(t);return this.catch&&(r+=this.catch.render(t)),this.finally&&(r+=this.finally.render(t)),r}optimizeNodes(){var t,r;return super.optimizeNodes(),(t=this.catch)===null||t===void 0||t.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(t,r){var n,o;return super.optimizeNames(t,r),(n=this.catch)===null||n===void 0||n.optimizeNames(t,r),(o=this.finally)===null||o===void 0||o.optimizeNames(t,r),this}get names(){let t=super.names;return this.catch&&vr(t,this.catch.names),this.finally&&vr(t,this.finally.names),t}},No=class extends Zt{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};No.kind="catch";var Do=class extends Zt{render(t){return"finally"+super.render(t)}};Do.kind="finally";var jd=class{constructor(t,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?` +`:""},this._extScope=t,this._scope=new dt.Scope({parent:t}),this._nodes=[new Ed]}toString(){return this._root.render(this.opts)}name(t){return this._scope.name(t)}scopeName(t){return this._extScope.name(t)}scopeValue(t,r){let n=this._extScope.value(t,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(t,r){return this._extScope.getValue(t,r)}scopeRefs(t){return this._extScope.scopeRefs(t,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(t,r,n,o){let i=this._scope.toName(r);return n!==void 0&&o&&(this._constants[i.str]=n),this._leafNode(new xd(t,i,n)),i}const(t,r,n){return this._def(dt.varKinds.const,t,r,n)}let(t,r,n){return this._def(dt.varKinds.let,t,r,n)}var(t,r,n){return this._def(dt.varKinds.var,t,r,n)}assign(t,r,n){return this._leafNode(new Oa(t,r,n))}add(t,r){return this._leafNode(new kd(t,G.operators.ADD,r))}code(t){return typeof t=="function"?t():t!==Q.nil&&this._leafNode(new Id(t)),this}object(...t){let r=["{"];for(let[n,o]of t)r.length>1&&r.push(","),r.push(n),(n!==o||this.opts.es5)&&(r.push(":"),(0,Q.addCodeArg)(r,o));return r.push("}"),new Q._Code(r)}if(t,r,n){if(this._blockNode(new hr(t)),r&&n)this.code(r).else().code(n).endIf();else if(r)this.code(r).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(t){return this._elseNode(new hr(t))}else(){return this._elseNode(new Qr)}endIf(){return this._endBlockNode(hr,Qr)}_for(t,r){return this._blockNode(t),r&&this.code(r).endFor(),this}for(t,r){return this._for(new Td(t),r)}forRange(t,r,n,o,i=this.opts.es5?dt.varKinds.var:dt.varKinds.let){let a=this._scope.toName(t);return this._for(new Pd(i,a,r,n),()=>o(a))}forOf(t,r,n,o=dt.varKinds.const){let i=this._scope.toName(t);if(this.opts.es5){let a=r instanceof Q.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,Q._)`${a}.length`,s=>{this.var(i,(0,Q._)`${a}[${s}]`),n(i)})}return this._for(new ja("of",o,i,r),()=>n(i))}forIn(t,r,n,o=this.opts.es5?dt.varKinds.var:dt.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,Q._)`Object.keys(${r})`,n);let i=this._scope.toName(t);return this._for(new ja("in",o,i,r),()=>n(i))}endFor(){return this._endBlockNode(gr)}label(t){return this._leafNode(new Sd(t))}break(t){return this._leafNode(new wd(t))}return(t){let r=new jo;if(this._blockNode(r),this.code(t),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(jo)}try(t,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let o=new Od;if(this._blockNode(o),this.code(t),r){let i=this.name("e");this._currNode=o.catch=new No(i),r(i)}return n&&(this._currNode=o.finally=new Do,this.code(n)),this._endBlockNode(No,Do)}throw(t){return this._leafNode(new zd(t))}block(t,r){return this._blockStarts.push(this._nodes.length),t&&this.code(t).endBlock(r),this}endBlock(t){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||t!==void 0&&n!==t)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${t} expected`);return this._nodes.length=r,this}func(t,r=Q.nil,n,o){return this._blockNode(new Oo(t,r,n)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(Oo)}optimize(t=1){for(;t-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(t){return this._currNode.nodes.push(t),this}_blockNode(t){this._currNode.nodes.push(t),this._nodes.push(t)}_endBlockNode(t,r){let n=this._currNode;if(n instanceof t||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${t.kind}/${r.kind}`:t.kind}"`)}_elseNode(t){let r=this._currNode;if(!(r instanceof hr))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=t,this}get _root(){return this._nodes[0]}get _currNode(){let t=this._nodes;return t[t.length-1]}set _currNode(t){let r=this._nodes;r[r.length-1]=t}};G.CodeGen=jd;function vr(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function Na(e,t){return t instanceof Q._CodeOrName?vr(e,t.names):e}function en(e,t,r){if(e instanceof Q.Name)return n(e);if(!o(e))return e;return new Q._Code(e._items.reduce((i,a)=>(a instanceof Q.Name&&(a=n(a)),a instanceof Q._Code?i.push(...a._items):i.push(a),i),[]));function n(i){let a=r[i.str];return a===void 0||t[i.str]!==1?i:(delete t[i.str],a)}function o(i){return i instanceof Q._Code&&i._items.some(a=>a instanceof Q.Name&&t[a.str]===1&&r[a.str]!==void 0)}}function CS(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}function Zg(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,Q._)`!${Nd(e)}`}G.not=Zg;var MS=Ag(G.operators.AND);function LS(...e){return e.reduce(MS)}G.and=LS;var qS=Ag(G.operators.OR);function FS(...e){return e.reduce(qS)}G.or=FS;function Ag(e){return(t,r)=>t===Q.nil?r:r===Q.nil?t:(0,Q._)`${Nd(t)} ${e} ${Nd(r)}`}function Nd(e){return e instanceof Q.Name?e:(0,Q._)`(${e})`}});var re=S(B=>{"use strict";Object.defineProperty(B,"__esModule",{value:!0});B.checkStrictMode=B.getErrorPath=B.Type=B.useFunc=B.setEvaluated=B.evaluatedPropsToName=B.mergeEvaluated=B.eachItem=B.unescapeJsonPointer=B.escapeJsonPointer=B.escapeFragment=B.unescapeFragment=B.schemaRefOrVal=B.schemaHasRulesButRef=B.schemaHasRules=B.checkUnknownRules=B.alwaysValidSchema=B.toHash=void 0;var le=K(),VS=To();function JS(e){let t={};for(let r of e)t[r]=!0;return t}B.toHash=JS;function KS(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(Mg(e,t),!Lg(t,e.self.RULES.all))}B.alwaysValidSchema=KS;function Mg(e,t=e.schema){let{opts:r,self:n}=e;if(!r.strictSchema||typeof t=="boolean")return;let o=n.RULES.keywords;for(let i in t)o[i]||Vg(e,`unknown keyword: "${i}"`)}B.checkUnknownRules=Mg;function Lg(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(t[r])return!0;return!1}B.schemaHasRules=Lg;function WS(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(r!=="$ref"&&t.all[r])return!0;return!1}B.schemaHasRulesButRef=WS;function GS({topSchemaRef:e,schemaPath:t},r,n,o){if(!o){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,le._)`${r}`}return(0,le._)`${e}${t}${(0,le.getProperty)(n)}`}B.schemaRefOrVal=GS;function HS(e){return qg(decodeURIComponent(e))}B.unescapeFragment=HS;function BS(e){return encodeURIComponent(Rd(e))}B.escapeFragment=BS;function Rd(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}B.escapeJsonPointer=Rd;function qg(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}B.unescapeJsonPointer=qg;function XS(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)}B.eachItem=XS;function Ug({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(o,i,a,s)=>{let c=a===void 0?i:a instanceof le.Name?(i instanceof le.Name?e(o,i,a):t(o,i,a),a):i instanceof le.Name?(t(o,a,i),i):r(i,a);return s===le.Name&&!(c instanceof le.Name)?n(o,c):c}}B.mergeEvaluated={props:Ug({mergeNames:(e,t,r)=>e.if((0,le._)`${r} !== true && ${t} !== undefined`,()=>{e.if((0,le._)`${t} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,le._)`${r} || {}`).code((0,le._)`Object.assign(${r}, ${t})`))}),mergeToName:(e,t,r)=>e.if((0,le._)`${r} !== true`,()=>{t===!0?e.assign(r,!0):(e.assign(r,(0,le._)`${r} || {}`),Zd(e,r,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:Fg}),items:Ug({mergeNames:(e,t,r)=>e.if((0,le._)`${r} !== true && ${t} !== undefined`,()=>e.assign(r,(0,le._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`)),mergeToName:(e,t,r)=>e.if((0,le._)`${r} !== true`,()=>e.assign(r,t===!0?!0:(0,le._)`${r} > ${t} ? ${r} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function Fg(e,t){if(t===!0)return e.var("props",!0);let r=e.var("props",(0,le._)`{}`);return t!==void 0&&Zd(e,r,t),r}B.evaluatedPropsToName=Fg;function Zd(e,t,r){Object.keys(r).forEach(n=>e.assign((0,le._)`${t}${(0,le.getProperty)(n)}`,!0))}B.setEvaluated=Zd;var Cg={};function YS(e,t){return e.scopeValue("func",{ref:t,code:Cg[t.code]||(Cg[t.code]=new VS._Code(t.code))})}B.useFunc=YS;var Dd;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(Dd||(B.Type=Dd={}));function QS(e,t,r){if(e instanceof le.Name){let n=t===Dd.Num;return r?n?(0,le._)`"[" + ${e} + "]"`:(0,le._)`"['" + ${e} + "']"`:n?(0,le._)`"/" + ${e}`:(0,le._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,le.getProperty)(e).toString():"/"+Rd(e)}B.getErrorPath=QS;function Vg(e,t,r=e.opts.strictSchema){if(r){if(t=`strict mode: ${t}`,r===!0)throw new Error(t);e.self.logger.warn(t)}}B.checkStrictMode=Vg});var At=S(Ad=>{"use strict";Object.defineProperty(Ad,"__esModule",{value:!0});var Te=K(),ew={data:new Te.Name("data"),valCxt:new Te.Name("valCxt"),instancePath:new Te.Name("instancePath"),parentData:new Te.Name("parentData"),parentDataProperty:new Te.Name("parentDataProperty"),rootData:new Te.Name("rootData"),dynamicAnchors:new Te.Name("dynamicAnchors"),vErrors:new Te.Name("vErrors"),errors:new Te.Name("errors"),this:new Te.Name("this"),self:new Te.Name("self"),scope:new Te.Name("scope"),json:new Te.Name("json"),jsonPos:new Te.Name("jsonPos"),jsonLen:new Te.Name("jsonLen"),jsonPart:new Te.Name("jsonPart")};Ad.default=ew});var Ro=S(Pe=>{"use strict";Object.defineProperty(Pe,"__esModule",{value:!0});Pe.extendErrors=Pe.resetErrorsCount=Pe.reportExtraError=Pe.reportError=Pe.keyword$DataError=Pe.keywordError=void 0;var ee=K(),Ra=re(),Ae=At();Pe.keywordError={message:({keyword:e})=>(0,ee.str)`must pass "${e}" keyword validation`};Pe.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,ee.str)`"${e}" keyword must be ${t} ($data)`:(0,ee.str)`"${e}" keyword is invalid ($data)`};function tw(e,t=Pe.keywordError,r,n){let{it:o}=e,{gen:i,compositeRule:a,allErrors:s}=o,c=Wg(e,t,r);n??(a||s)?Jg(i,c):Kg(o,(0,ee._)`[${c}]`)}Pe.reportError=tw;function rw(e,t=Pe.keywordError,r){let{it:n}=e,{gen:o,compositeRule:i,allErrors:a}=n,s=Wg(e,t,r);Jg(o,s),i||a||Kg(n,Ae.default.vErrors)}Pe.reportExtraError=rw;function nw(e,t){e.assign(Ae.default.errors,t),e.if((0,ee._)`${Ae.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,ee._)`${Ae.default.vErrors}.length`,t),()=>e.assign(Ae.default.vErrors,null)))}Pe.resetErrorsCount=nw;function ow({gen:e,keyword:t,schemaValue:r,data:n,errsCount:o,it:i}){if(o===void 0)throw new Error("ajv implementation error");let a=e.name("err");e.forRange("i",o,Ae.default.errors,s=>{e.const(a,(0,ee._)`${Ae.default.vErrors}[${s}]`),e.if((0,ee._)`${a}.instancePath === undefined`,()=>e.assign((0,ee._)`${a}.instancePath`,(0,ee.strConcat)(Ae.default.instancePath,i.errorPath))),e.assign((0,ee._)`${a}.schemaPath`,(0,ee.str)`${i.errSchemaPath}/${t}`),i.opts.verbose&&(e.assign((0,ee._)`${a}.schema`,r),e.assign((0,ee._)`${a}.data`,n))})}Pe.extendErrors=ow;function Jg(e,t){let r=e.const("err",t);e.if((0,ee._)`${Ae.default.vErrors} === null`,()=>e.assign(Ae.default.vErrors,(0,ee._)`[${r}]`),(0,ee._)`${Ae.default.vErrors}.push(${r})`),e.code((0,ee._)`${Ae.default.errors}++`)}function Kg(e,t){let{gen:r,validateName:n,schemaEnv:o}=e;o.$async?r.throw((0,ee._)`new ${e.ValidationError}(${t})`):(r.assign((0,ee._)`${n}.errors`,t),r.return(!1))}var _r={keyword:new ee.Name("keyword"),schemaPath:new ee.Name("schemaPath"),params:new ee.Name("params"),propertyName:new ee.Name("propertyName"),message:new ee.Name("message"),schema:new ee.Name("schema"),parentSchema:new ee.Name("parentSchema")};function Wg(e,t,r){let{createErrors:n}=e.it;return n===!1?(0,ee._)`{}`:iw(e,t,r)}function iw(e,t,r={}){let{gen:n,it:o}=e,i=[aw(o,r),sw(e,r)];return cw(e,t,i),n.object(...i)}function aw({errorPath:e},{instancePath:t}){let r=t?(0,ee.str)`${e}${(0,Ra.getErrorPath)(t,Ra.Type.Str)}`:e;return[Ae.default.instancePath,(0,ee.strConcat)(Ae.default.instancePath,r)]}function sw({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let o=n?t:(0,ee.str)`${t}/${e}`;return r&&(o=(0,ee.str)`${o}${(0,Ra.getErrorPath)(r,Ra.Type.Str)}`),[_r.schemaPath,o]}function cw(e,{params:t,message:r},n){let{keyword:o,data:i,schemaValue:a,it:s}=e,{opts:c,propertyName:u,topSchemaRef:l,schemaPath:d}=s;n.push([_r.keyword,o],[_r.params,typeof t=="function"?t(e):t||(0,ee._)`{}`]),c.messages&&n.push([_r.message,typeof r=="function"?r(e):r]),c.verbose&&n.push([_r.schema,a],[_r.parentSchema,(0,ee._)`${l}${d}`],[Ae.default.data,i]),u&&n.push([_r.propertyName,u])}});var Hg=S(tn=>{"use strict";Object.defineProperty(tn,"__esModule",{value:!0});tn.boolOrEmptySchema=tn.topBoolOrEmptySchema=void 0;var uw=Ro(),lw=K(),dw=At(),pw={message:"boolean schema is false"};function fw(e){let{gen:t,schema:r,validateName:n}=e;r===!1?Gg(e,!1):typeof r=="object"&&r.$async===!0?t.return(dw.default.data):(t.assign((0,lw._)`${n}.errors`,null),t.return(!0))}tn.topBoolOrEmptySchema=fw;function mw(e,t){let{gen:r,schema:n}=e;n===!1?(r.var(t,!1),Gg(e)):r.var(t,!0)}tn.boolOrEmptySchema=mw;function Gg(e,t){let{gen:r,data:n}=e,o={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,uw.reportError)(o,pw,void 0,t)}});var Ud=S(rn=>{"use strict";Object.defineProperty(rn,"__esModule",{value:!0});rn.getRules=rn.isJSONType=void 0;var hw=["string","number","integer","boolean","null","object","array"],gw=new Set(hw);function vw(e){return typeof e=="string"&&gw.has(e)}rn.isJSONType=vw;function _w(){let e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}rn.getRules=_w});var Cd=S(Yt=>{"use strict";Object.defineProperty(Yt,"__esModule",{value:!0});Yt.shouldUseRule=Yt.shouldUseGroup=Yt.schemaHasRulesForType=void 0;function yw({schema:e,self:t},r){let n=t.RULES.types[r];return n&&n!==!0&&Bg(e,n)}Yt.schemaHasRulesForType=yw;function Bg(e,t){return t.rules.some(r=>Xg(e,r))}Yt.shouldUseGroup=Bg;function Xg(e,t){var r;return e[t.keyword]!==void 0||((r=t.definition.implements)===null||r===void 0?void 0:r.some(n=>e[n]!==void 0))}Yt.shouldUseRule=Xg});var Zo=S(Oe=>{"use strict";Object.defineProperty(Oe,"__esModule",{value:!0});Oe.reportTypeError=Oe.checkDataTypes=Oe.checkDataType=Oe.coerceAndCheckDataType=Oe.getJSONTypes=Oe.getSchemaTypes=Oe.DataType=void 0;var $w=Ud(),bw=Cd(),xw=Ro(),F=K(),Yg=re(),nn;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(nn||(Oe.DataType=nn={}));function kw(e){let t=Qg(e.type);if(t.includes("null")){if(e.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');e.nullable===!0&&t.push("null")}return t}Oe.getSchemaTypes=kw;function Qg(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every($w.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}Oe.getJSONTypes=Qg;function Sw(e,t){let{gen:r,data:n,opts:o}=e,i=ww(t,o.coerceTypes),a=t.length>0&&!(i.length===0&&t.length===1&&(0,bw.schemaHasRulesForType)(e,t[0]));if(a){let s=Ld(t,n,o.strictNumbers,nn.Wrong);r.if(s,()=>{i.length?zw(e,t,i):qd(e)})}return a}Oe.coerceAndCheckDataType=Sw;var ev=new Set(["string","number","integer","boolean","null"]);function ww(e,t){return t?e.filter(r=>ev.has(r)||t==="array"&&r==="array"):[]}function zw(e,t,r){let{gen:n,data:o,opts:i}=e,a=n.let("dataType",(0,F._)`typeof ${o}`),s=n.let("coerced",(0,F._)`undefined`);i.coerceTypes==="array"&&n.if((0,F._)`${a} == 'object' && Array.isArray(${o}) && ${o}.length == 1`,()=>n.assign(o,(0,F._)`${o}[0]`).assign(a,(0,F._)`typeof ${o}`).if(Ld(t,o,i.strictNumbers),()=>n.assign(s,o))),n.if((0,F._)`${s} !== undefined`);for(let u of r)(ev.has(u)||u==="array"&&i.coerceTypes==="array")&&c(u);n.else(),qd(e),n.endIf(),n.if((0,F._)`${s} !== undefined`,()=>{n.assign(o,s),Iw(e,s)});function c(u){switch(u){case"string":n.elseIf((0,F._)`${a} == "number" || ${a} == "boolean"`).assign(s,(0,F._)`"" + ${o}`).elseIf((0,F._)`${o} === null`).assign(s,(0,F._)`""`);return;case"number":n.elseIf((0,F._)`${a} == "boolean" || ${o} === null + || (${a} == "string" && ${o} && ${o} == +${o})`).assign(s,(0,F._)`+${o}`);return;case"integer":n.elseIf((0,F._)`${a} === "boolean" || ${o} === null + || (${a} === "string" && ${o} && ${o} == +${o} && !(${o} % 1))`).assign(s,(0,F._)`+${o}`);return;case"boolean":n.elseIf((0,F._)`${o} === "false" || ${o} === 0 || ${o} === null`).assign(s,!1).elseIf((0,F._)`${o} === "true" || ${o} === 1`).assign(s,!0);return;case"null":n.elseIf((0,F._)`${o} === "" || ${o} === 0 || ${o} === false`),n.assign(s,null);return;case"array":n.elseIf((0,F._)`${a} === "string" || ${a} === "number" + || ${a} === "boolean" || ${o} === null`).assign(s,(0,F._)`[${o}]`)}}}function Iw({gen:e,parentData:t,parentDataProperty:r},n){e.if((0,F._)`${t} !== undefined`,()=>e.assign((0,F._)`${t}[${r}]`,n))}function Md(e,t,r,n=nn.Correct){let o=n===nn.Correct?F.operators.EQ:F.operators.NEQ,i;switch(e){case"null":return(0,F._)`${t} ${o} null`;case"array":i=(0,F._)`Array.isArray(${t})`;break;case"object":i=(0,F._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":i=a((0,F._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":i=a();break;default:return(0,F._)`typeof ${t} ${o} ${e}`}return n===nn.Correct?i:(0,F.not)(i);function a(s=F.nil){return(0,F.and)((0,F._)`typeof ${t} == "number"`,s,r?(0,F._)`isFinite(${t})`:F.nil)}}Oe.checkDataType=Md;function Ld(e,t,r,n){if(e.length===1)return Md(e[0],t,r,n);let o,i=(0,Yg.toHash)(e);if(i.array&&i.object){let a=(0,F._)`typeof ${t} != "object"`;o=i.null?a:(0,F._)`!${t} || ${a}`,delete i.null,delete i.array,delete i.object}else o=F.nil;i.number&&delete i.integer;for(let a in i)o=(0,F.and)(o,Md(a,t,r,n));return o}Oe.checkDataTypes=Ld;var Ew={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,F._)`{type: ${e}}`:(0,F._)`{type: ${t}}`};function qd(e){let t=Tw(e);(0,xw.reportError)(t,Ew)}Oe.reportTypeError=qd;function Tw(e){let{gen:t,data:r,schema:n}=e,o=(0,Yg.schemaRefOrVal)(e,n,"type");return{gen:t,keyword:"type",data:r,schema:n.type,schemaCode:o,schemaValue:o,parentSchema:n,params:{},it:e}}});var rv=S(Za=>{"use strict";Object.defineProperty(Za,"__esModule",{value:!0});Za.assignDefaults=void 0;var on=K(),Pw=re();function Ow(e,t){let{properties:r,items:n}=e.schema;if(t==="object"&&r)for(let o in r)tv(e,o,r[o].default);else t==="array"&&Array.isArray(n)&&n.forEach((o,i)=>tv(e,i,o.default))}Za.assignDefaults=Ow;function tv(e,t,r){let{gen:n,compositeRule:o,data:i,opts:a}=e;if(r===void 0)return;let s=(0,on._)`${i}${(0,on.getProperty)(t)}`;if(o){(0,Pw.checkStrictMode)(e,`default is ignored for: ${s}`);return}let c=(0,on._)`${s} === undefined`;a.useDefaults==="empty"&&(c=(0,on._)`${c} || ${s} === null || ${s} === ""`),n.if(c,(0,on._)`${s} = ${(0,on.stringify)(r)}`)}});var rt=S(ae=>{"use strict";Object.defineProperty(ae,"__esModule",{value:!0});ae.validateUnion=ae.validateArray=ae.usePattern=ae.callValidateCode=ae.schemaProperties=ae.allSchemaProperties=ae.noPropertyInData=ae.propertyInData=ae.isOwnProperty=ae.hasPropFunc=ae.reportMissingProp=ae.checkMissingProp=ae.checkReportMissingProp=void 0;var me=K(),Fd=re(),Qt=At(),jw=re();function Nw(e,t){let{gen:r,data:n,it:o}=e;r.if(Jd(r,n,t,o.opts.ownProperties),()=>{e.setParams({missingProperty:(0,me._)`${t}`},!0),e.error()})}ae.checkReportMissingProp=Nw;function Dw({gen:e,data:t,it:{opts:r}},n,o){return(0,me.or)(...n.map(i=>(0,me.and)(Jd(e,t,i,r.ownProperties),(0,me._)`${o} = ${i}`)))}ae.checkMissingProp=Dw;function Rw(e,t){e.setParams({missingProperty:t},!0),e.error()}ae.reportMissingProp=Rw;function nv(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,me._)`Object.prototype.hasOwnProperty`})}ae.hasPropFunc=nv;function Vd(e,t,r){return(0,me._)`${nv(e)}.call(${t}, ${r})`}ae.isOwnProperty=Vd;function Zw(e,t,r,n){let o=(0,me._)`${t}${(0,me.getProperty)(r)} !== undefined`;return n?(0,me._)`${o} && ${Vd(e,t,r)}`:o}ae.propertyInData=Zw;function Jd(e,t,r,n){let o=(0,me._)`${t}${(0,me.getProperty)(r)} === undefined`;return n?(0,me.or)(o,(0,me.not)(Vd(e,t,r))):o}ae.noPropertyInData=Jd;function ov(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}ae.allSchemaProperties=ov;function Aw(e,t){return ov(t).filter(r=>!(0,Fd.alwaysValidSchema)(e,t[r]))}ae.schemaProperties=Aw;function Uw({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:o,errorPath:i},it:a},s,c,u){let l=u?(0,me._)`${e}, ${t}, ${n}${o}`:t,d=[[Qt.default.instancePath,(0,me.strConcat)(Qt.default.instancePath,i)],[Qt.default.parentData,a.parentData],[Qt.default.parentDataProperty,a.parentDataProperty],[Qt.default.rootData,Qt.default.rootData]];a.opts.dynamicRef&&d.push([Qt.default.dynamicAnchors,Qt.default.dynamicAnchors]);let m=(0,me._)`${l}, ${r.object(...d)}`;return c!==me.nil?(0,me._)`${s}.call(${c}, ${m})`:(0,me._)`${s}(${m})`}ae.callValidateCode=Uw;var Cw=(0,me._)`new RegExp`;function Mw({gen:e,it:{opts:t}},r){let n=t.unicodeRegExp?"u":"",{regExp:o}=t.code,i=o(r,n);return e.scopeValue("pattern",{key:i.toString(),ref:i,code:(0,me._)`${o.code==="new RegExp"?Cw:(0,jw.useFunc)(e,o)}(${r}, ${n})`})}ae.usePattern=Mw;function Lw(e){let{gen:t,data:r,keyword:n,it:o}=e,i=t.name("valid");if(o.allErrors){let s=t.let("valid",!0);return a(()=>t.assign(s,!1)),s}return t.var(i,!0),a(()=>t.break()),i;function a(s){let c=t.const("len",(0,me._)`${r}.length`);t.forRange("i",0,c,u=>{e.subschema({keyword:n,dataProp:u,dataPropType:Fd.Type.Num},i),t.if((0,me.not)(i),s)})}}ae.validateArray=Lw;function qw(e){let{gen:t,schema:r,keyword:n,it:o}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,Fd.alwaysValidSchema)(o,c))&&!o.opts.unevaluated)return;let a=t.let("valid",!1),s=t.name("_valid");t.block(()=>r.forEach((c,u)=>{let l=e.subschema({keyword:n,schemaProp:u,compositeRule:!0},s);t.assign(a,(0,me._)`${a} || ${s}`),e.mergeValidEvaluated(l,s)||t.if((0,me.not)(a))})),e.result(a,()=>e.reset(),()=>e.error(!0))}ae.validateUnion=qw});var sv=S(yt=>{"use strict";Object.defineProperty(yt,"__esModule",{value:!0});yt.validateKeywordUsage=yt.validSchemaType=yt.funcKeywordCode=yt.macroKeywordCode=void 0;var Ue=K(),yr=At(),Fw=rt(),Vw=Ro();function Jw(e,t){let{gen:r,keyword:n,schema:o,parentSchema:i,it:a}=e,s=t.macro.call(a.self,o,i,a),c=av(r,n,s);a.opts.validateSchema!==!1&&a.self.validateSchema(s,!0);let u=r.name("valid");e.subschema({schema:s,schemaPath:Ue.nil,errSchemaPath:`${a.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},u),e.pass(u,()=>e.error(!0))}yt.macroKeywordCode=Jw;function Kw(e,t){var r;let{gen:n,keyword:o,schema:i,parentSchema:a,$data:s,it:c}=e;Gw(c,t);let u=!s&&t.compile?t.compile.call(c.self,i,a,c):t.validate,l=av(n,o,u),d=n.let("valid");e.block$data(d,m),e.ok((r=t.valid)!==null&&r!==void 0?r:d);function m(){if(t.errors===!1)v(),t.modifying&&iv(e),$(()=>e.error());else{let x=t.async?f():g();t.modifying&&iv(e),$(()=>Ww(e,x))}}function f(){let x=n.let("ruleErrs",null);return n.try(()=>v((0,Ue._)`await `),O=>n.assign(d,!1).if((0,Ue._)`${O} instanceof ${c.ValidationError}`,()=>n.assign(x,(0,Ue._)`${O}.errors`),()=>n.throw(O))),x}function g(){let x=(0,Ue._)`${l}.errors`;return n.assign(x,null),v(Ue.nil),x}function v(x=t.async?(0,Ue._)`await `:Ue.nil){let O=c.opts.passContext?yr.default.this:yr.default.self,I=!("compile"in t&&!s||t.schema===!1);n.assign(d,(0,Ue._)`${x}${(0,Fw.callValidateCode)(e,l,O,I)}`,t.modifying)}function $(x){var O;n.if((0,Ue.not)((O=t.valid)!==null&&O!==void 0?O:d),x)}}yt.funcKeywordCode=Kw;function iv(e){let{gen:t,data:r,it:n}=e;t.if(n.parentData,()=>t.assign(r,(0,Ue._)`${n.parentData}[${n.parentDataProperty}]`))}function Ww(e,t){let{gen:r}=e;r.if((0,Ue._)`Array.isArray(${t})`,()=>{r.assign(yr.default.vErrors,(0,Ue._)`${yr.default.vErrors} === null ? ${t} : ${yr.default.vErrors}.concat(${t})`).assign(yr.default.errors,(0,Ue._)`${yr.default.vErrors}.length`),(0,Vw.extendErrors)(e)},()=>e.error())}function Gw({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function av(e,t,r){if(r===void 0)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,Ue.stringify)(r)})}function Hw(e,t,r=!1){return!t.length||t.some(n=>n==="array"?Array.isArray(e):n==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==n||r&&typeof e>"u")}yt.validSchemaType=Hw;function Bw({schema:e,opts:t,self:r,errSchemaPath:n},o,i){if(Array.isArray(o.keyword)?!o.keyword.includes(i):o.keyword!==i)throw new Error("ajv implementation error");let a=o.dependencies;if(a?.some(s=>!Object.prototype.hasOwnProperty.call(e,s)))throw new Error(`parent schema must have dependencies of ${i}: ${a.join(",")}`);if(o.validateSchema&&!o.validateSchema(e[i])){let c=`keyword "${i}" value is invalid at path "${n}": `+r.errorsText(o.validateSchema.errors);if(t.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}yt.validateKeywordUsage=Bw});var uv=S(er=>{"use strict";Object.defineProperty(er,"__esModule",{value:!0});er.extendSubschemaMode=er.extendSubschemaData=er.getSubschema=void 0;var $t=K(),cv=re();function Xw(e,{keyword:t,schemaProp:r,schema:n,schemaPath:o,errSchemaPath:i,topSchemaRef:a}){if(t!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(t!==void 0){let s=e.schema[t];return r===void 0?{schema:s,schemaPath:(0,$t._)`${e.schemaPath}${(0,$t.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:s[r],schemaPath:(0,$t._)`${e.schemaPath}${(0,$t.getProperty)(t)}${(0,$t.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,cv.escapeFragment)(r)}`}}if(n!==void 0){if(o===void 0||i===void 0||a===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:o,topSchemaRef:a,errSchemaPath:i}}throw new Error('either "keyword" or "schema" must be passed')}er.getSubschema=Xw;function Yw(e,t,{dataProp:r,dataPropType:n,data:o,dataTypes:i,propertyName:a}){if(o!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:s}=t;if(r!==void 0){let{errorPath:u,dataPathArr:l,opts:d}=t,m=s.let("data",(0,$t._)`${t.data}${(0,$t.getProperty)(r)}`,!0);c(m),e.errorPath=(0,$t.str)`${u}${(0,cv.getErrorPath)(r,n,d.jsPropertySyntax)}`,e.parentDataProperty=(0,$t._)`${r}`,e.dataPathArr=[...l,e.parentDataProperty]}if(o!==void 0){let u=o instanceof $t.Name?o:s.let("data",o,!0);c(u),a!==void 0&&(e.propertyName=a)}i&&(e.dataTypes=i);function c(u){e.data=u,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,u]}}er.extendSubschemaData=Yw;function Qw(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:n,createErrors:o,allErrors:i}){n!==void 0&&(e.compositeRule=n),o!==void 0&&(e.createErrors=o),i!==void 0&&(e.allErrors=i),e.jtdDiscriminator=t,e.jtdMetadata=r}er.extendSubschemaMode=Qw});var Kd=S((pA,lv)=>{"use strict";lv.exports=function e(t,r){if(t===r)return!0;if(t&&r&&typeof t=="object"&&typeof r=="object"){if(t.constructor!==r.constructor)return!1;var n,o,i;if(Array.isArray(t)){if(n=t.length,n!=r.length)return!1;for(o=n;o--!==0;)if(!e(t[o],r[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if(i=Object.keys(t),n=i.length,n!==Object.keys(r).length)return!1;for(o=n;o--!==0;)if(!Object.prototype.hasOwnProperty.call(r,i[o]))return!1;for(o=n;o--!==0;){var a=i[o];if(!e(t[a],r[a]))return!1}return!0}return t!==t&&r!==r}});var pv=S((fA,dv)=>{"use strict";var tr=dv.exports=function(e,t,r){typeof t=="function"&&(r=t,t={}),r=t.cb||r;var n=typeof r=="function"?r:r.pre||function(){},o=r.post||function(){};Aa(t,n,o,e,"",e)};tr.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};tr.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};tr.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};tr.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function Aa(e,t,r,n,o,i,a,s,c,u){if(n&&typeof n=="object"&&!Array.isArray(n)){t(n,o,i,a,s,c,u);for(var l in n){var d=n[l];if(Array.isArray(d)){if(l in tr.arrayKeywords)for(var m=0;m{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.getSchemaRefs=qe.resolveUrl=qe.normalizeId=qe._getFullPath=qe.getFullPath=qe.inlineRef=void 0;var t0=re(),r0=Kd(),n0=pv(),o0=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function i0(e,t=!0){return typeof e=="boolean"?!0:t===!0?!Wd(e):t?fv(e)<=t:!1}qe.inlineRef=i0;var a0=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function Wd(e){for(let t in e){if(a0.has(t))return!0;let r=e[t];if(Array.isArray(r)&&r.some(Wd)||typeof r=="object"&&Wd(r))return!0}return!1}function fv(e){let t=0;for(let r in e){if(r==="$ref")return 1/0;if(t++,!o0.has(r)&&(typeof e[r]=="object"&&(0,t0.eachItem)(e[r],n=>t+=fv(n)),t===1/0))return 1/0}return t}function mv(e,t="",r){r!==!1&&(t=an(t));let n=e.parse(t);return hv(e,n)}qe.getFullPath=mv;function hv(e,t){return e.serialize(t).split("#")[0]+"#"}qe._getFullPath=hv;var s0=/#\/?$/;function an(e){return e?e.replace(s0,""):""}qe.normalizeId=an;function c0(e,t,r){return r=an(r),e.resolve(t,r)}qe.resolveUrl=c0;var u0=/^[a-z_][-a-z0-9._]*$/i;function l0(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,o=an(e[r]||t),i={"":o},a=mv(n,o,!1),s={},c=new Set;return n0(e,{allKeys:!0},(d,m,f,g)=>{if(g===void 0)return;let v=a+m,$=i[g];typeof d[r]=="string"&&($=x.call(this,d[r])),O.call(this,d.$anchor),O.call(this,d.$dynamicAnchor),i[m]=$;function x(I){let U=this.opts.uriResolver.resolve;if(I=an($?U($,I):I),c.has(I))throw l(I);c.add(I);let j=this.refs[I];return typeof j=="string"&&(j=this.refs[j]),typeof j=="object"?u(d,j.schema,I):I!==an(v)&&(I[0]==="#"?(u(d,s[I],I),s[I]=d):this.refs[I]=v),I}function O(I){if(typeof I=="string"){if(!u0.test(I))throw new Error(`invalid anchor "${I}"`);x.call(this,`#${I}`)}}}),s;function u(d,m,f){if(m!==void 0&&!r0(d,m))throw l(f)}function l(d){return new Error(`reference "${d}" resolves to more than one schema`)}}qe.getSchemaRefs=l0});var Mo=S(rr=>{"use strict";Object.defineProperty(rr,"__esModule",{value:!0});rr.getData=rr.KeywordCxt=rr.validateFunctionCode=void 0;var $v=Hg(),gv=Zo(),Hd=Cd(),Ua=Zo(),d0=rv(),Co=sv(),Gd=uv(),P=K(),C=At(),p0=Ao(),Ut=re(),Uo=Ro();function f0(e){if(kv(e)&&(Sv(e),xv(e))){g0(e);return}bv(e,()=>(0,$v.topBoolOrEmptySchema)(e))}rr.validateFunctionCode=f0;function bv({gen:e,validateName:t,schema:r,schemaEnv:n,opts:o},i){o.code.es5?e.func(t,(0,P._)`${C.default.data}, ${C.default.valCxt}`,n.$async,()=>{e.code((0,P._)`"use strict"; ${vv(r,o)}`),h0(e,o),e.code(i)}):e.func(t,(0,P._)`${C.default.data}, ${m0(o)}`,n.$async,()=>e.code(vv(r,o)).code(i))}function m0(e){return(0,P._)`{${C.default.instancePath}="", ${C.default.parentData}, ${C.default.parentDataProperty}, ${C.default.rootData}=${C.default.data}${e.dynamicRef?(0,P._)`, ${C.default.dynamicAnchors}={}`:P.nil}}={}`}function h0(e,t){e.if(C.default.valCxt,()=>{e.var(C.default.instancePath,(0,P._)`${C.default.valCxt}.${C.default.instancePath}`),e.var(C.default.parentData,(0,P._)`${C.default.valCxt}.${C.default.parentData}`),e.var(C.default.parentDataProperty,(0,P._)`${C.default.valCxt}.${C.default.parentDataProperty}`),e.var(C.default.rootData,(0,P._)`${C.default.valCxt}.${C.default.rootData}`),t.dynamicRef&&e.var(C.default.dynamicAnchors,(0,P._)`${C.default.valCxt}.${C.default.dynamicAnchors}`)},()=>{e.var(C.default.instancePath,(0,P._)`""`),e.var(C.default.parentData,(0,P._)`undefined`),e.var(C.default.parentDataProperty,(0,P._)`undefined`),e.var(C.default.rootData,C.default.data),t.dynamicRef&&e.var(C.default.dynamicAnchors,(0,P._)`{}`)})}function g0(e){let{schema:t,opts:r,gen:n}=e;bv(e,()=>{r.$comment&&t.$comment&&zv(e),b0(e),n.let(C.default.vErrors,null),n.let(C.default.errors,0),r.unevaluated&&v0(e),wv(e),S0(e)})}function v0(e){let{gen:t,validateName:r}=e;e.evaluated=t.const("evaluated",(0,P._)`${r}.evaluated`),t.if((0,P._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,P._)`${e.evaluated}.props`,(0,P._)`undefined`)),t.if((0,P._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,P._)`${e.evaluated}.items`,(0,P._)`undefined`))}function vv(e,t){let r=typeof e=="object"&&e[t.schemaId];return r&&(t.code.source||t.code.process)?(0,P._)`/*# sourceURL=${r} */`:P.nil}function _0(e,t){if(kv(e)&&(Sv(e),xv(e))){y0(e,t);return}(0,$v.boolOrEmptySchema)(e,t)}function xv({schema:e,self:t}){if(typeof e=="boolean")return!e;for(let r in e)if(t.RULES.all[r])return!0;return!1}function kv(e){return typeof e.schema!="boolean"}function y0(e,t){let{schema:r,gen:n,opts:o}=e;o.$comment&&r.$comment&&zv(e),x0(e),k0(e);let i=n.const("_errs",C.default.errors);wv(e,i),n.var(t,(0,P._)`${i} === ${C.default.errors}`)}function Sv(e){(0,Ut.checkUnknownRules)(e),$0(e)}function wv(e,t){if(e.opts.jtd)return _v(e,[],!1,t);let r=(0,gv.getSchemaTypes)(e.schema),n=(0,gv.coerceAndCheckDataType)(e,r);_v(e,r,!n,t)}function $0(e){let{schema:t,errSchemaPath:r,opts:n,self:o}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,Ut.schemaHasRulesButRef)(t,o.RULES)&&o.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function b0(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,Ut.checkStrictMode)(e,"default is ignored in the schema root")}function x0(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,p0.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function k0(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function zv({gen:e,schemaEnv:t,schema:r,errSchemaPath:n,opts:o}){let i=r.$comment;if(o.$comment===!0)e.code((0,P._)`${C.default.self}.logger.log(${i})`);else if(typeof o.$comment=="function"){let a=(0,P.str)`${n}/$comment`,s=e.scopeValue("root",{ref:t.root});e.code((0,P._)`${C.default.self}.opts.$comment(${i}, ${a}, ${s}.schema)`)}}function S0(e){let{gen:t,schemaEnv:r,validateName:n,ValidationError:o,opts:i}=e;r.$async?t.if((0,P._)`${C.default.errors} === 0`,()=>t.return(C.default.data),()=>t.throw((0,P._)`new ${o}(${C.default.vErrors})`)):(t.assign((0,P._)`${n}.errors`,C.default.vErrors),i.unevaluated&&w0(e),t.return((0,P._)`${C.default.errors} === 0`))}function w0({gen:e,evaluated:t,props:r,items:n}){r instanceof P.Name&&e.assign((0,P._)`${t}.props`,r),n instanceof P.Name&&e.assign((0,P._)`${t}.items`,n)}function _v(e,t,r,n){let{gen:o,schema:i,data:a,allErrors:s,opts:c,self:u}=e,{RULES:l}=u;if(i.$ref&&(c.ignoreKeywordsWithRef||!(0,Ut.schemaHasRulesButRef)(i,l))){o.block(()=>Ev(e,"$ref",l.all.$ref.definition));return}c.jtd||z0(e,t),o.block(()=>{for(let m of l.rules)d(m);d(l.post)});function d(m){(0,Hd.shouldUseGroup)(i,m)&&(m.type?(o.if((0,Ua.checkDataType)(m.type,a,c.strictNumbers)),yv(e,m),t.length===1&&t[0]===m.type&&r&&(o.else(),(0,Ua.reportTypeError)(e)),o.endIf()):yv(e,m),s||o.if((0,P._)`${C.default.errors} === ${n||0}`))}}function yv(e,t){let{gen:r,schema:n,opts:{useDefaults:o}}=e;o&&(0,d0.assignDefaults)(e,t.type),r.block(()=>{for(let i of t.rules)(0,Hd.shouldUseRule)(n,i)&&Ev(e,i.keyword,i.definition,t.type)})}function z0(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(I0(e,t),e.opts.allowUnionTypes||E0(e,t),T0(e,e.dataTypes))}function I0(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(r=>{Iv(e.dataTypes,r)||Bd(e,`type "${r}" not allowed by context "${e.dataTypes.join(",")}"`)}),O0(e,t)}}function E0(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&Bd(e,"use allowUnionTypes to allow union type keyword")}function T0(e,t){let r=e.self.RULES.all;for(let n in r){let o=r[n];if(typeof o=="object"&&(0,Hd.shouldUseRule)(e.schema,o)){let{type:i}=o.definition;i.length&&!i.some(a=>P0(t,a))&&Bd(e,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function P0(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function Iv(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function O0(e,t){let r=[];for(let n of e.dataTypes)Iv(t,n)?r.push(n):t.includes("integer")&&n==="number"&&r.push("integer");e.dataTypes=r}function Bd(e,t){let r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`,(0,Ut.checkStrictMode)(e,t,e.opts.strictTypes)}var Ca=class{constructor(t,r,n){if((0,Co.validateKeywordUsage)(t,r,n),this.gen=t.gen,this.allErrors=t.allErrors,this.keyword=n,this.data=t.data,this.schema=t.schema[n],this.$data=r.$data&&t.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,Ut.schemaRefOrVal)(t,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=t.schema,this.params={},this.it=t,this.def=r,this.$data)this.schemaCode=t.gen.const("vSchema",Tv(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,Co.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=t.gen.const("_errs",C.default.errors))}result(t,r,n){this.failResult((0,P.not)(t),r,n)}failResult(t,r,n){this.gen.if(t),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,r){this.failResult((0,P.not)(t),void 0,r)}fail(t){if(t===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(t),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(t){if(!this.$data)return this.fail(t);let{schemaCode:r}=this;this.fail((0,P._)`${r} !== undefined && (${(0,P.or)(this.invalid$data(),t)})`)}error(t,r,n){if(r){this.setParams(r),this._error(t,n),this.setParams({});return}this._error(t,n)}_error(t,r){(t?Uo.reportExtraError:Uo.reportError)(this,this.def.error,r)}$dataError(){(0,Uo.reportError)(this,this.def.$dataError||Uo.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,Uo.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,r){r?Object.assign(this.params,t):this.params=t}block$data(t,r,n=P.nil){this.gen.block(()=>{this.check$data(t,n),r()})}check$data(t=P.nil,r=P.nil){if(!this.$data)return;let{gen:n,schemaCode:o,schemaType:i,def:a}=this;n.if((0,P.or)((0,P._)`${o} === undefined`,r)),t!==P.nil&&n.assign(t,!0),(i.length||a.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),t!==P.nil&&n.assign(t,!1)),n.else()}invalid$data(){let{gen:t,schemaCode:r,schemaType:n,def:o,it:i}=this;return(0,P.or)(a(),s());function a(){if(n.length){if(!(r instanceof P.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,P._)`${(0,Ua.checkDataTypes)(c,r,i.opts.strictNumbers,Ua.DataType.Wrong)}`}return P.nil}function s(){if(o.validateSchema){let c=t.scopeValue("validate$data",{ref:o.validateSchema});return(0,P._)`!${c}(${r})`}return P.nil}}subschema(t,r){let n=(0,Gd.getSubschema)(this.it,t);(0,Gd.extendSubschemaData)(n,this.it,t),(0,Gd.extendSubschemaMode)(n,t);let o={...this.it,...n,items:void 0,props:void 0};return _0(o,r),o}mergeEvaluated(t,r){let{it:n,gen:o}=this;n.opts.unevaluated&&(n.props!==!0&&t.props!==void 0&&(n.props=Ut.mergeEvaluated.props(o,t.props,n.props,r)),n.items!==!0&&t.items!==void 0&&(n.items=Ut.mergeEvaluated.items(o,t.items,n.items,r)))}mergeValidEvaluated(t,r){let{it:n,gen:o}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return o.if(r,()=>this.mergeEvaluated(t,P.Name)),!0}};rr.KeywordCxt=Ca;function Ev(e,t,r,n){let o=new Ca(e,r,t);"code"in r?r.code(o,n):o.$data&&r.validate?(0,Co.funcKeywordCode)(o,r):"macro"in r?(0,Co.macroKeywordCode)(o,r):(r.compile||r.validate)&&(0,Co.funcKeywordCode)(o,r)}var j0=/^\/(?:[^~]|~0|~1)*$/,N0=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Tv(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let o,i;if(e==="")return C.default.rootData;if(e[0]==="/"){if(!j0.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);o=e,i=C.default.rootData}else{let u=N0.exec(e);if(!u)throw new Error(`Invalid JSON-pointer: ${e}`);let l=+u[1];if(o=u[2],o==="#"){if(l>=t)throw new Error(c("property/index",l));return n[t-l]}if(l>t)throw new Error(c("data",l));if(i=r[t-l],!o)return i}let a=i,s=o.split("/");for(let u of s)u&&(i=(0,P._)`${i}${(0,P.getProperty)((0,Ut.unescapeJsonPointer)(u))}`,a=(0,P._)`${a} && ${i}`);return a;function c(u,l){return`Cannot access ${u} ${l} levels up, current level is ${t}`}}rr.getData=Tv});var Ma=S(Yd=>{"use strict";Object.defineProperty(Yd,"__esModule",{value:!0});var Xd=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};Yd.default=Xd});var Lo=S(tp=>{"use strict";Object.defineProperty(tp,"__esModule",{value:!0});var Qd=Ao(),ep=class extends Error{constructor(t,r,n,o){super(o||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,Qd.resolveUrl)(t,r,n),this.missingSchema=(0,Qd.normalizeId)((0,Qd.getFullPath)(t,this.missingRef))}};tp.default=ep});var qa=S(nt=>{"use strict";Object.defineProperty(nt,"__esModule",{value:!0});nt.resolveSchema=nt.getCompilingSchema=nt.resolveRef=nt.compileSchema=nt.SchemaEnv=void 0;var pt=K(),D0=Ma(),$r=At(),ft=Ao(),Pv=re(),R0=Mo(),sn=class{constructor(t){var r;this.refs={},this.dynamicAnchors={};let n;typeof t.schema=="object"&&(n=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(r=t.baseId)!==null&&r!==void 0?r:(0,ft.normalizeId)(n?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=n?.$async,this.refs={}}};nt.SchemaEnv=sn;function np(e){let t=Ov.call(this,e);if(t)return t;let r=(0,ft.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:n,lines:o}=this.opts.code,{ownProperties:i}=this.opts,a=new pt.CodeGen(this.scope,{es5:n,lines:o,ownProperties:i}),s;e.$async&&(s=a.scopeValue("Error",{ref:D0.default,code:(0,pt._)`require("ajv/dist/runtime/validation_error").default`}));let c=a.scopeName("validate");e.validateName=c;let u={gen:a,allErrors:this.opts.allErrors,data:$r.default.data,parentData:$r.default.parentData,parentDataProperty:$r.default.parentDataProperty,dataNames:[$r.default.data],dataPathArr:[pt.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:a.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,pt.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:s,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:pt.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,pt._)`""`,opts:this.opts,self:this},l;try{this._compilations.add(e),(0,R0.validateFunctionCode)(u),a.optimize(this.opts.code.optimize);let d=a.toString();l=`${a.scopeRefs($r.default.scope)}return ${d}`,this.opts.code.process&&(l=this.opts.code.process(l,e));let f=new Function(`${$r.default.self}`,`${$r.default.scope}`,l)(this,this.scope.get());if(this.scope.value(c,{ref:f}),f.errors=null,f.schema=e.schema,f.schemaEnv=e,e.$async&&(f.$async=!0),this.opts.code.source===!0&&(f.source={validateName:c,validateCode:d,scopeValues:a._values}),this.opts.unevaluated){let{props:g,items:v}=u;f.evaluated={props:g instanceof pt.Name?void 0:g,items:v instanceof pt.Name?void 0:v,dynamicProps:g instanceof pt.Name,dynamicItems:v instanceof pt.Name},f.source&&(f.source.evaluated=(0,pt.stringify)(f.evaluated))}return e.validate=f,e}catch(d){throw delete e.validate,delete e.validateName,l&&this.logger.error("Error compiling schema, function code:",l),d}finally{this._compilations.delete(e)}}nt.compileSchema=np;function Z0(e,t,r){var n;r=(0,ft.resolveUrl)(this.opts.uriResolver,t,r);let o=e.refs[r];if(o)return o;let i=C0.call(this,e,r);if(i===void 0){let a=(n=e.localRefs)===null||n===void 0?void 0:n[r],{schemaId:s}=this.opts;a&&(i=new sn({schema:a,schemaId:s,root:e,baseId:t}))}if(i!==void 0)return e.refs[r]=A0.call(this,i)}nt.resolveRef=Z0;function A0(e){return(0,ft.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:np.call(this,e)}function Ov(e){for(let t of this._compilations)if(U0(t,e))return t}nt.getCompilingSchema=Ov;function U0(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function C0(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||La.call(this,e,t)}function La(e,t){let r=this.opts.uriResolver.parse(t),n=(0,ft._getFullPath)(this.opts.uriResolver,r),o=(0,ft.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&n===o)return rp.call(this,r,e);let i=(0,ft.normalizeId)(n),a=this.refs[i]||this.schemas[i];if(typeof a=="string"){let s=La.call(this,e,a);return typeof s?.schema!="object"?void 0:rp.call(this,r,s)}if(typeof a?.schema=="object"){if(a.validate||np.call(this,a),i===(0,ft.normalizeId)(t)){let{schema:s}=a,{schemaId:c}=this.opts,u=s[c];return u&&(o=(0,ft.resolveUrl)(this.opts.uriResolver,o,u)),new sn({schema:s,schemaId:c,root:e,baseId:o})}return rp.call(this,r,a)}}nt.resolveSchema=La;var M0=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function rp(e,{baseId:t,schema:r,root:n}){var o;if(((o=e.fragment)===null||o===void 0?void 0:o[0])!=="/")return;for(let s of e.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,Pv.unescapeFragment)(s)];if(c===void 0)return;r=c;let u=typeof r=="object"&&r[this.opts.schemaId];!M0.has(s)&&u&&(t=(0,ft.resolveUrl)(this.opts.uriResolver,t,u))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,Pv.schemaHasRulesButRef)(r,this.RULES)){let s=(0,ft.resolveUrl)(this.opts.uriResolver,t,r.$ref);i=La.call(this,n,s)}let{schemaId:a}=this.opts;if(i=i||new sn({schema:r,schemaId:a,root:n,baseId:t}),i.schema!==i.root.schema)return i}});var jv=S((yA,L0)=>{L0.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var ip=S(($A,Zv)=>{"use strict";var q0=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),Dv=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);function op(e){let t="",r=0,n=0;for(n=0;n=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";t+=e[n];break}for(n+=1;n=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";t+=e[n]}return t}var F0=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function Nv(e){return e.length=0,!0}function V0(e,t,r){if(e.length){let n=op(e);if(n!=="")t.push(n);else return r.error=!0,!1;e.length=0}return!0}function J0(e){let t=0,r={error:!1,address:"",zone:""},n=[],o=[],i=!1,a=!1,s=V0;for(let c=0;c7){r.error=!0;break}c>0&&e[c-1]===":"&&(i=!0),n.push(":");continue}else if(u==="%"){if(!s(o,n,r))break;s=Nv}else{o.push(u);continue}}return o.length&&(s===Nv?r.zone=o.join(""):a?n.push(o.join("")):n.push(op(o))),r.address=n.join(""),r}function Rv(e){if(K0(e,":")<2)return{host:e,isIPV6:!1};let t=J0(e);if(t.error)return{host:e,isIPV6:!1};{let r=t.address,n=t.address;return t.zone&&(r+="%"+t.zone,n+="%25"+t.zone),{host:r,isIPV6:!0,escapedHost:n}}}function K0(e,t){let r=0;for(let n=0;n{"use strict";var{isUUID:B0}=ip(),X0=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,Y0=["http","https","ws","wss","urn","urn:uuid"];function Q0(e){return Y0.indexOf(e)!==-1}function ap(e){return e.secure===!0?!0:e.secure===!1?!1:e.scheme?e.scheme.length===3&&(e.scheme[0]==="w"||e.scheme[0]==="W")&&(e.scheme[1]==="s"||e.scheme[1]==="S")&&(e.scheme[2]==="s"||e.scheme[2]==="S"):!1}function Av(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function Uv(e){let t=String(e.scheme).toLowerCase()==="https";return(e.port===(t?443:80)||e.port==="")&&(e.port=void 0),e.path||(e.path="/"),e}function ez(e){return e.secure=ap(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function tz(e){if((e.port===(ap(e)?443:80)||e.port==="")&&(e.port=void 0),typeof e.secure=="boolean"&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){let[t,r]=e.resourceName.split("?");e.path=t&&t!=="/"?t:void 0,e.query=r,e.resourceName=void 0}return e.fragment=void 0,e}function rz(e,t){if(!e.path)return e.error="URN can not be parsed",e;let r=e.path.match(X0);if(r){let n=t.scheme||e.scheme||"urn";e.nid=r[1].toLowerCase(),e.nss=r[2];let o=`${n}:${t.nid||e.nid}`,i=sp(o);e.path=void 0,i&&(e=i.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function nz(e,t){if(e.nid===void 0)throw new Error("URN without nid cannot be serialized");let r=t.scheme||e.scheme||"urn",n=e.nid.toLowerCase(),o=`${r}:${t.nid||n}`,i=sp(o);i&&(e=i.serialize(e,t));let a=e,s=e.nss;return a.path=`${n||t.nid}:${s}`,t.skipEscape=!0,a}function oz(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!B0(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function iz(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var Cv={scheme:"http",domainHost:!0,parse:Av,serialize:Uv},az={scheme:"https",domainHost:Cv.domainHost,parse:Av,serialize:Uv},Fa={scheme:"ws",domainHost:!0,parse:ez,serialize:tz},sz={scheme:"wss",domainHost:Fa.domainHost,parse:Fa.parse,serialize:Fa.serialize},cz={scheme:"urn",parse:rz,serialize:nz,skipNormalize:!0},uz={scheme:"urn:uuid",parse:oz,serialize:iz,skipNormalize:!0},Va={http:Cv,https:az,ws:Fa,wss:sz,urn:cz,"urn:uuid":uz};Object.setPrototypeOf(Va,null);function sp(e){return e&&(Va[e]||Va[e.toLowerCase()])||void 0}Mv.exports={wsIsSecure:ap,SCHEMES:Va,isValidSchemeName:Q0,getSchemeHandler:sp}});var Vv=S((xA,Ka)=>{"use strict";var{normalizeIPv6:lz,removeDotSegments:qo,recomposeAuthority:dz,normalizeComponentEncoding:Ja,isIPv4:pz,nonSimpleDomain:fz}=ip(),{SCHEMES:mz,getSchemeHandler:qv}=Lv();function hz(e,t){return typeof e=="string"?e=bt(Ct(e,t),t):typeof e=="object"&&(e=Ct(bt(e,t),t)),e}function gz(e,t,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},o=Fv(Ct(e,n),Ct(t,n),n,!0);return n.skipEscape=!0,bt(o,n)}function Fv(e,t,r,n){let o={};return n||(e=Ct(bt(e,r),r),t=Ct(bt(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(o.scheme=t.scheme,o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=qo(t.path||""),o.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=qo(t.path||""),o.query=t.query):(t.path?(t.path[0]==="/"?o.path=qo(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?o.path="/"+t.path:e.path?o.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:o.path=t.path,o.path=qo(o.path)),o.query=t.query):(o.path=e.path,t.query!==void 0?o.query=t.query:o.query=e.query),o.userinfo=e.userinfo,o.host=e.host,o.port=e.port),o.scheme=e.scheme),o.fragment=t.fragment,o}function vz(e,t,r){return typeof e=="string"?(e=unescape(e),e=bt(Ja(Ct(e,r),!0),{...r,skipEscape:!0})):typeof e=="object"&&(e=bt(Ja(e,!0),{...r,skipEscape:!0})),typeof t=="string"?(t=unescape(t),t=bt(Ja(Ct(t,r),!0),{...r,skipEscape:!0})):typeof t=="object"&&(t=bt(Ja(t,!0),{...r,skipEscape:!0})),e.toLowerCase()===t.toLowerCase()}function bt(e,t){let r={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},n=Object.assign({},t),o=[],i=qv(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=unescape(r.path):(r.path=escape(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&o.push(r.scheme,":");let a=dz(r);if(a!==void 0&&(n.reference!=="suffix"&&o.push("//"),o.push(a),r.path&&r.path[0]!=="/"&&o.push("/")),r.path!==void 0){let s=r.path;!n.absolutePath&&(!i||!i.absolutePath)&&(s=qo(s)),a===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),o.push(s)}return r.query!==void 0&&o.push("?",r.query),r.fragment!==void 0&&o.push("#",r.fragment),o.join("")}var _z=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function Ct(e,t){let r=Object.assign({},t),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},o=!1;r.reference==="suffix"&&(r.scheme?e=r.scheme+":"+e:e="//"+e);let i=e.match(_z);if(i){if(n.scheme=i[1],n.userinfo=i[3],n.host=i[4],n.port=parseInt(i[5],10),n.path=i[6]||"",n.query=i[7],n.fragment=i[8],isNaN(n.port)&&(n.port=i[5]),n.host)if(pz(n.host)===!1){let c=lz(n.host);n.host=c.host.toLowerCase(),o=c.isIPV6}else o=!0;n.scheme===void 0&&n.userinfo===void 0&&n.host===void 0&&n.port===void 0&&n.query===void 0&&!n.path?n.reference="same-document":n.scheme===void 0?n.reference="relative":n.fragment===void 0?n.reference="absolute":n.reference="uri",r.reference&&r.reference!=="suffix"&&r.reference!==n.reference&&(n.error=n.error||"URI is not a "+r.reference+" reference.");let a=qv(r.scheme||n.scheme);if(!r.unicodeSupport&&(!a||!a.unicodeSupport)&&n.host&&(r.domainHost||a&&a.domainHost)&&o===!1&&fz(n.host))try{n.host=URL.domainToASCII(n.host.toLowerCase())}catch(s){n.error=n.error||"Host's domain name can not be converted to ASCII: "+s}(!a||a&&!a.skipNormalize)&&(e.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=unescape(n.host))),n.path&&(n.path=escape(unescape(n.path))),n.fragment&&(n.fragment=encodeURI(decodeURIComponent(n.fragment)))),a&&a.parse&&a.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return n}var cp={SCHEMES:mz,normalize:hz,resolve:gz,resolveComponent:Fv,equal:vz,serialize:bt,parse:Ct};Ka.exports=cp;Ka.exports.default=cp;Ka.exports.fastUri=cp});var Kv=S(up=>{"use strict";Object.defineProperty(up,"__esModule",{value:!0});var Jv=Vv();Jv.code='require("ajv/dist/runtime/uri").default';up.default=Jv});var e_=S(Se=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.CodeGen=Se.Name=Se.nil=Se.stringify=Se.str=Se._=Se.KeywordCxt=void 0;var yz=Mo();Object.defineProperty(Se,"KeywordCxt",{enumerable:!0,get:function(){return yz.KeywordCxt}});var cn=K();Object.defineProperty(Se,"_",{enumerable:!0,get:function(){return cn._}});Object.defineProperty(Se,"str",{enumerable:!0,get:function(){return cn.str}});Object.defineProperty(Se,"stringify",{enumerable:!0,get:function(){return cn.stringify}});Object.defineProperty(Se,"nil",{enumerable:!0,get:function(){return cn.nil}});Object.defineProperty(Se,"Name",{enumerable:!0,get:function(){return cn.Name}});Object.defineProperty(Se,"CodeGen",{enumerable:!0,get:function(){return cn.CodeGen}});var $z=Ma(),Xv=Lo(),bz=Ud(),Fo=qa(),xz=K(),Vo=Ao(),Wa=Zo(),dp=re(),Wv=jv(),kz=Kv(),Yv=(e,t)=>new RegExp(e,t);Yv.code="new RegExp";var Sz=["removeAdditional","useDefaults","coerceTypes"],wz=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),zz={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},Iz={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},Gv=200;function Ez(e){var t,r,n,o,i,a,s,c,u,l,d,m,f,g,v,$,x,O,I,U,j,it,at,_s,ys;let gn=e.strict,$s=(t=e.code)===null||t===void 0?void 0:t.optimize,ff=$s===!0||$s===void 0?1:$s||0,mf=(n=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:Yv,jy=(o=e.uriResolver)!==null&&o!==void 0?o:kz.default;return{strictSchema:(a=(i=e.strictSchema)!==null&&i!==void 0?i:gn)!==null&&a!==void 0?a:!0,strictNumbers:(c=(s=e.strictNumbers)!==null&&s!==void 0?s:gn)!==null&&c!==void 0?c:!0,strictTypes:(l=(u=e.strictTypes)!==null&&u!==void 0?u:gn)!==null&&l!==void 0?l:"log",strictTuples:(m=(d=e.strictTuples)!==null&&d!==void 0?d:gn)!==null&&m!==void 0?m:"log",strictRequired:(g=(f=e.strictRequired)!==null&&f!==void 0?f:gn)!==null&&g!==void 0?g:!1,code:e.code?{...e.code,optimize:ff,regExp:mf}:{optimize:ff,regExp:mf},loopRequired:(v=e.loopRequired)!==null&&v!==void 0?v:Gv,loopEnum:($=e.loopEnum)!==null&&$!==void 0?$:Gv,meta:(x=e.meta)!==null&&x!==void 0?x:!0,messages:(O=e.messages)!==null&&O!==void 0?O:!0,inlineRefs:(I=e.inlineRefs)!==null&&I!==void 0?I:!0,schemaId:(U=e.schemaId)!==null&&U!==void 0?U:"$id",addUsedSchema:(j=e.addUsedSchema)!==null&&j!==void 0?j:!0,validateSchema:(it=e.validateSchema)!==null&&it!==void 0?it:!0,validateFormats:(at=e.validateFormats)!==null&&at!==void 0?at:!0,unicodeRegExp:(_s=e.unicodeRegExp)!==null&&_s!==void 0?_s:!0,int32range:(ys=e.int32range)!==null&&ys!==void 0?ys:!0,uriResolver:jy}}var Jo=class{constructor(t={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...Ez(t)};let{es5:r,lines:n}=this.opts.code;this.scope=new xz.ValueScope({scope:{},prefixes:wz,es5:r,lines:n}),this.logger=Dz(t.logger);let o=t.validateFormats;t.validateFormats=!1,this.RULES=(0,bz.getRules)(),Hv.call(this,zz,t,"NOT SUPPORTED"),Hv.call(this,Iz,t,"DEPRECATED","warn"),this._metaOpts=jz.call(this),t.formats&&Pz.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&Oz.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),Tz.call(this),t.validateFormats=o}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:r,schemaId:n}=this.opts,o=Wv;n==="id"&&(o={...Wv},o.id=o.$id,delete o.$id),r&&t&&this.addMetaSchema(o,o[n],!1)}defaultMeta(){let{meta:t,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof t=="object"?t[r]||t:void 0}validate(t,r){let n;if(typeof t=="string"){if(n=this.getSchema(t),!n)throw new Error(`no schema with key or ref "${t}"`)}else n=this.compile(t);let o=n(r);return"$async"in n||(this.errors=n.errors),o}compile(t,r){let n=this._addSchema(t,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(t,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return o.call(this,t,r);async function o(l,d){await i.call(this,l.$schema);let m=this._addSchema(l,d);return m.validate||a.call(this,m)}async function i(l){l&&!this.getSchema(l)&&await o.call(this,{$ref:l},!0)}async function a(l){try{return this._compileSchemaEnv(l)}catch(d){if(!(d instanceof Xv.default))throw d;return s.call(this,d),await c.call(this,d.missingSchema),a.call(this,l)}}function s({missingSchema:l,missingRef:d}){if(this.refs[l])throw new Error(`AnySchema ${l} is loaded but ${d} cannot be resolved`)}async function c(l){let d=await u.call(this,l);this.refs[l]||await i.call(this,d.$schema),this.refs[l]||this.addSchema(d,l,r)}async function u(l){let d=this._loading[l];if(d)return d;try{return await(this._loading[l]=n(l))}finally{delete this._loading[l]}}}addSchema(t,r,n,o=this.opts.validateSchema){if(Array.isArray(t)){for(let a of t)this.addSchema(a,void 0,n,o);return this}let i;if(typeof t=="object"){let{schemaId:a}=this.opts;if(i=t[a],i!==void 0&&typeof i!="string")throw new Error(`schema ${a} must be string`)}return r=(0,Vo.normalizeId)(r||i),this._checkUnique(r),this.schemas[r]=this._addSchema(t,n,r,o,!0),this}addMetaSchema(t,r,n=this.opts.validateSchema){return this.addSchema(t,r,!0,n),this}validateSchema(t,r){if(typeof t=="boolean")return!0;let n;if(n=t.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let o=this.validate(n,t);if(!o&&r){let i="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(i);else throw new Error(i)}return o}getSchema(t){let r;for(;typeof(r=Bv.call(this,t))=="string";)t=r;if(r===void 0){let{schemaId:n}=this.opts,o=new Fo.SchemaEnv({schema:{},schemaId:n});if(r=Fo.resolveSchema.call(this,o,t),!r)return;this.refs[t]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(t){if(t instanceof RegExp)return this._removeAllSchemas(this.schemas,t),this._removeAllSchemas(this.refs,t),this;switch(typeof t){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=Bv.call(this,t);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[t],delete this.refs[t],this}case"object":{let r=t;this._cache.delete(r);let n=t[this.opts.schemaId];return n&&(n=(0,Vo.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(t){for(let r of t)this.addKeyword(r);return this}addKeyword(t,r){let n;if(typeof t=="string")n=t,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof t=="object"&&r===void 0){if(r=t,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(Zz.call(this,n,r),!r)return(0,dp.eachItem)(n,i=>lp.call(this,i)),this;Uz.call(this,r);let o={...r,type:(0,Wa.getJSONTypes)(r.type),schemaType:(0,Wa.getJSONTypes)(r.schemaType)};return(0,dp.eachItem)(n,o.type.length===0?i=>lp.call(this,i,o):i=>o.type.forEach(a=>lp.call(this,i,o,a))),this}getKeyword(t){let r=this.RULES.all[t];return typeof r=="object"?r.definition:!!r}removeKeyword(t){let{RULES:r}=this;delete r.keywords[t],delete r.all[t];for(let n of r.rules){let o=n.rules.findIndex(i=>i.keyword===t);o>=0&&n.rules.splice(o,1)}return this}addFormat(t,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[t]=r,this}errorsText(t=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!t||t.length===0?"No errors":t.map(o=>`${n}${o.instancePath} ${o.message}`).reduce((o,i)=>o+r+i)}$dataMetaSchema(t,r){let n=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let o of r){let i=o.split("/").slice(1),a=t;for(let s of i)a=a[s];for(let s in n){let c=n[s];if(typeof c!="object")continue;let{$data:u}=c.definition,l=a[s];u&&l&&(a[s]=Qv(l))}}return t}_removeAllSchemas(t,r){for(let n in t){let o=t[n];(!r||r.test(n))&&(typeof o=="string"?delete t[n]:o&&!o.meta&&(this._cache.delete(o.schema),delete t[n]))}}_addSchema(t,r,n,o=this.opts.validateSchema,i=this.opts.addUsedSchema){let a,{schemaId:s}=this.opts;if(typeof t=="object")a=t[s];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof t!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(t);if(c!==void 0)return c;n=(0,Vo.normalizeId)(a||n);let u=Vo.getSchemaRefs.call(this,t,n);return c=new Fo.SchemaEnv({schema:t,schemaId:s,meta:r,baseId:n,localRefs:u}),this._cache.set(c.schema,c),i&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),o&&this.validateSchema(t,!0),c}_checkUnique(t){if(this.schemas[t]||this.refs[t])throw new Error(`schema with key or id "${t}" already exists`)}_compileSchemaEnv(t){if(t.meta?this._compileMetaSchema(t):Fo.compileSchema.call(this,t),!t.validate)throw new Error("ajv implementation error");return t.validate}_compileMetaSchema(t){let r=this.opts;this.opts=this._metaOpts;try{Fo.compileSchema.call(this,t)}finally{this.opts=r}}};Jo.ValidationError=$z.default;Jo.MissingRefError=Xv.default;Se.default=Jo;function Hv(e,t,r,n="error"){for(let o in e){let i=o;i in t&&this.logger[n](`${r}: option ${o}. ${e[i]}`)}}function Bv(e){return e=(0,Vo.normalizeId)(e),this.schemas[e]||this.refs[e]}function Tz(){let e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(let t in e)this.addSchema(e[t],t)}function Pz(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function Oz(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let t in e){let r=e[t];r.keyword||(r.keyword=t),this.addKeyword(r)}}function jz(){let e={...this.opts};for(let t of Sz)delete e[t];return e}var Nz={log(){},warn(){},error(){}};function Dz(e){if(e===!1)return Nz;if(e===void 0)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}var Rz=/^[a-z_$][a-z0-9_$:-]*$/i;function Zz(e,t){let{RULES:r}=this;if((0,dp.eachItem)(e,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!Rz.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!t&&t.$data&&!("code"in t||"validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function lp(e,t,r){var n;let o=t?.post;if(r&&o)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:i}=this,a=o?i.post:i.rules.find(({type:c})=>c===r);if(a||(a={type:r,rules:[]},i.rules.push(a)),i.keywords[e]=!0,!t)return;let s={keyword:e,definition:{...t,type:(0,Wa.getJSONTypes)(t.type),schemaType:(0,Wa.getJSONTypes)(t.schemaType)}};t.before?Az.call(this,a,s,t.before):a.rules.push(s),i.all[e]=s,(n=t.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function Az(e,t,r){let n=e.rules.findIndex(o=>o.keyword===r);n>=0?e.rules.splice(n,0,t):(e.rules.push(t),this.logger.warn(`rule ${r} is not defined`))}function Uz(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=Qv(t)),e.validateSchema=this.compile(t,!0))}var Cz={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Qv(e){return{anyOf:[e,Cz]}}});var t_=S(pp=>{"use strict";Object.defineProperty(pp,"__esModule",{value:!0});var Mz={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};pp.default=Mz});var i_=S(br=>{"use strict";Object.defineProperty(br,"__esModule",{value:!0});br.callRef=br.getValidate=void 0;var Lz=Lo(),r_=rt(),Fe=K(),un=At(),n_=qa(),Ga=re(),qz={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:r,it:n}=e,{baseId:o,schemaEnv:i,validateName:a,opts:s,self:c}=n,{root:u}=i;if((r==="#"||r==="#/")&&o===u.baseId)return d();let l=n_.resolveRef.call(c,u,o,r);if(l===void 0)throw new Lz.default(n.opts.uriResolver,o,r);if(l instanceof n_.SchemaEnv)return m(l);return f(l);function d(){if(i===u)return Ha(e,a,i,i.$async);let g=t.scopeValue("root",{ref:u});return Ha(e,(0,Fe._)`${g}.validate`,u,u.$async)}function m(g){let v=o_(e,g);Ha(e,v,g,g.$async)}function f(g){let v=t.scopeValue("schema",s.code.source===!0?{ref:g,code:(0,Fe.stringify)(g)}:{ref:g}),$=t.name("valid"),x=e.subschema({schema:g,dataTypes:[],schemaPath:Fe.nil,topSchemaRef:v,errSchemaPath:r},$);e.mergeEvaluated(x),e.ok($)}}};function o_(e,t){let{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,Fe._)`${r.scopeValue("wrapper",{ref:t})}.validate`}br.getValidate=o_;function Ha(e,t,r,n){let{gen:o,it:i}=e,{allErrors:a,schemaEnv:s,opts:c}=i,u=c.passContext?un.default.this:Fe.nil;n?l():d();function l(){if(!s.$async)throw new Error("async schema referenced by sync schema");let g=o.let("valid");o.try(()=>{o.code((0,Fe._)`await ${(0,r_.callValidateCode)(e,t,u)}`),f(t),a||o.assign(g,!0)},v=>{o.if((0,Fe._)`!(${v} instanceof ${i.ValidationError})`,()=>o.throw(v)),m(v),a||o.assign(g,!1)}),e.ok(g)}function d(){e.result((0,r_.callValidateCode)(e,t,u),()=>f(t),()=>m(t))}function m(g){let v=(0,Fe._)`${g}.errors`;o.assign(un.default.vErrors,(0,Fe._)`${un.default.vErrors} === null ? ${v} : ${un.default.vErrors}.concat(${v})`),o.assign(un.default.errors,(0,Fe._)`${un.default.vErrors}.length`)}function f(g){var v;if(!i.opts.unevaluated)return;let $=(v=r?.validate)===null||v===void 0?void 0:v.evaluated;if(i.props!==!0)if($&&!$.dynamicProps)$.props!==void 0&&(i.props=Ga.mergeEvaluated.props(o,$.props,i.props));else{let x=o.var("props",(0,Fe._)`${g}.evaluated.props`);i.props=Ga.mergeEvaluated.props(o,x,i.props,Fe.Name)}if(i.items!==!0)if($&&!$.dynamicItems)$.items!==void 0&&(i.items=Ga.mergeEvaluated.items(o,$.items,i.items));else{let x=o.var("items",(0,Fe._)`${g}.evaluated.items`);i.items=Ga.mergeEvaluated.items(o,x,i.items,Fe.Name)}}}br.callRef=Ha;br.default=qz});var a_=S(fp=>{"use strict";Object.defineProperty(fp,"__esModule",{value:!0});var Fz=t_(),Vz=i_(),Jz=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Fz.default,Vz.default];fp.default=Jz});var s_=S(mp=>{"use strict";Object.defineProperty(mp,"__esModule",{value:!0});var Ba=K(),nr=Ba.operators,Xa={maximum:{okStr:"<=",ok:nr.LTE,fail:nr.GT},minimum:{okStr:">=",ok:nr.GTE,fail:nr.LT},exclusiveMaximum:{okStr:"<",ok:nr.LT,fail:nr.GTE},exclusiveMinimum:{okStr:">",ok:nr.GT,fail:nr.LTE}},Kz={message:({keyword:e,schemaCode:t})=>(0,Ba.str)`must be ${Xa[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,Ba._)`{comparison: ${Xa[e].okStr}, limit: ${t}}`},Wz={keyword:Object.keys(Xa),type:"number",schemaType:"number",$data:!0,error:Kz,code(e){let{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,Ba._)`${r} ${Xa[t].fail} ${n} || isNaN(${r})`)}};mp.default=Wz});var c_=S(hp=>{"use strict";Object.defineProperty(hp,"__esModule",{value:!0});var Ko=K(),Gz={message:({schemaCode:e})=>(0,Ko.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,Ko._)`{multipleOf: ${e}}`},Hz={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Gz,code(e){let{gen:t,data:r,schemaCode:n,it:o}=e,i=o.opts.multipleOfPrecision,a=t.let("res"),s=i?(0,Ko._)`Math.abs(Math.round(${a}) - ${a}) > 1e-${i}`:(0,Ko._)`${a} !== parseInt(${a})`;e.fail$data((0,Ko._)`(${n} === 0 || (${a} = ${r}/${n}, ${s}))`)}};hp.default=Hz});var l_=S(gp=>{"use strict";Object.defineProperty(gp,"__esModule",{value:!0});function u_(e){let t=e.length,r=0,n=0,o;for(;n=55296&&o<=56319&&n{"use strict";Object.defineProperty(vp,"__esModule",{value:!0});var xr=K(),Bz=re(),Xz=l_(),Yz={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,xr.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,xr._)`{limit: ${e}}`},Qz={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:Yz,code(e){let{keyword:t,data:r,schemaCode:n,it:o}=e,i=t==="maxLength"?xr.operators.GT:xr.operators.LT,a=o.opts.unicode===!1?(0,xr._)`${r}.length`:(0,xr._)`${(0,Bz.useFunc)(e.gen,Xz.default)}(${r})`;e.fail$data((0,xr._)`${a} ${i} ${n}`)}};vp.default=Qz});var p_=S(_p=>{"use strict";Object.defineProperty(_p,"__esModule",{value:!0});var eI=rt(),Ya=K(),tI={message:({schemaCode:e})=>(0,Ya.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,Ya._)`{pattern: ${e}}`},rI={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:tI,code(e){let{data:t,$data:r,schema:n,schemaCode:o,it:i}=e,a=i.opts.unicodeRegExp?"u":"",s=r?(0,Ya._)`(new RegExp(${o}, ${a}))`:(0,eI.usePattern)(e,n);e.fail$data((0,Ya._)`!${s}.test(${t})`)}};_p.default=rI});var f_=S(yp=>{"use strict";Object.defineProperty(yp,"__esModule",{value:!0});var Wo=K(),nI={message({keyword:e,schemaCode:t}){let r=e==="maxProperties"?"more":"fewer";return(0,Wo.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,Wo._)`{limit: ${e}}`},oI={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:nI,code(e){let{keyword:t,data:r,schemaCode:n}=e,o=t==="maxProperties"?Wo.operators.GT:Wo.operators.LT;e.fail$data((0,Wo._)`Object.keys(${r}).length ${o} ${n}`)}};yp.default=oI});var m_=S($p=>{"use strict";Object.defineProperty($p,"__esModule",{value:!0});var Go=rt(),Ho=K(),iI=re(),aI={message:({params:{missingProperty:e}})=>(0,Ho.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,Ho._)`{missingProperty: ${e}}`},sI={keyword:"required",type:"object",schemaType:"array",$data:!0,error:aI,code(e){let{gen:t,schema:r,schemaCode:n,data:o,$data:i,it:a}=e,{opts:s}=a;if(!i&&r.length===0)return;let c=r.length>=s.loopRequired;if(a.allErrors?u():l(),s.strictRequired){let f=e.parentSchema.properties,{definedProperties:g}=e.it;for(let v of r)if(f?.[v]===void 0&&!g.has(v)){let $=a.schemaEnv.baseId+a.errSchemaPath,x=`required property "${v}" is not defined at "${$}" (strictRequired)`;(0,iI.checkStrictMode)(a,x,a.opts.strictRequired)}}function u(){if(c||i)e.block$data(Ho.nil,d);else for(let f of r)(0,Go.checkReportMissingProp)(e,f)}function l(){let f=t.let("missing");if(c||i){let g=t.let("valid",!0);e.block$data(g,()=>m(f,g)),e.ok(g)}else t.if((0,Go.checkMissingProp)(e,r,f)),(0,Go.reportMissingProp)(e,f),t.else()}function d(){t.forOf("prop",n,f=>{e.setParams({missingProperty:f}),t.if((0,Go.noPropertyInData)(t,o,f,s.ownProperties),()=>e.error())})}function m(f,g){e.setParams({missingProperty:f}),t.forOf(f,n,()=>{t.assign(g,(0,Go.propertyInData)(t,o,f,s.ownProperties)),t.if((0,Ho.not)(g),()=>{e.error(),t.break()})},Ho.nil)}}};$p.default=sI});var h_=S(bp=>{"use strict";Object.defineProperty(bp,"__esModule",{value:!0});var Bo=K(),cI={message({keyword:e,schemaCode:t}){let r=e==="maxItems"?"more":"fewer";return(0,Bo.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,Bo._)`{limit: ${e}}`},uI={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:cI,code(e){let{keyword:t,data:r,schemaCode:n}=e,o=t==="maxItems"?Bo.operators.GT:Bo.operators.LT;e.fail$data((0,Bo._)`${r}.length ${o} ${n}`)}};bp.default=uI});var Qa=S(xp=>{"use strict";Object.defineProperty(xp,"__esModule",{value:!0});var g_=Kd();g_.code='require("ajv/dist/runtime/equal").default';xp.default=g_});var v_=S(Sp=>{"use strict";Object.defineProperty(Sp,"__esModule",{value:!0});var kp=Zo(),we=K(),lI=re(),dI=Qa(),pI={message:({params:{i:e,j:t}})=>(0,we.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,we._)`{i: ${e}, j: ${t}}`},fI={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:pI,code(e){let{gen:t,data:r,$data:n,schema:o,parentSchema:i,schemaCode:a,it:s}=e;if(!n&&!o)return;let c=t.let("valid"),u=i.items?(0,kp.getSchemaTypes)(i.items):[];e.block$data(c,l,(0,we._)`${a} === false`),e.ok(c);function l(){let g=t.let("i",(0,we._)`${r}.length`),v=t.let("j");e.setParams({i:g,j:v}),t.assign(c,!0),t.if((0,we._)`${g} > 1`,()=>(d()?m:f)(g,v))}function d(){return u.length>0&&!u.some(g=>g==="object"||g==="array")}function m(g,v){let $=t.name("item"),x=(0,kp.checkDataTypes)(u,$,s.opts.strictNumbers,kp.DataType.Wrong),O=t.const("indices",(0,we._)`{}`);t.for((0,we._)`;${g}--;`,()=>{t.let($,(0,we._)`${r}[${g}]`),t.if(x,(0,we._)`continue`),u.length>1&&t.if((0,we._)`typeof ${$} == "string"`,(0,we._)`${$} += "_"`),t.if((0,we._)`typeof ${O}[${$}] == "number"`,()=>{t.assign(v,(0,we._)`${O}[${$}]`),e.error(),t.assign(c,!1).break()}).code((0,we._)`${O}[${$}] = ${g}`)})}function f(g,v){let $=(0,lI.useFunc)(t,dI.default),x=t.name("outer");t.label(x).for((0,we._)`;${g}--;`,()=>t.for((0,we._)`${v} = ${g}; ${v}--;`,()=>t.if((0,we._)`${$}(${r}[${g}], ${r}[${v}])`,()=>{e.error(),t.assign(c,!1).break(x)})))}}};Sp.default=fI});var __=S(zp=>{"use strict";Object.defineProperty(zp,"__esModule",{value:!0});var wp=K(),mI=re(),hI=Qa(),gI={message:"must be equal to constant",params:({schemaCode:e})=>(0,wp._)`{allowedValue: ${e}}`},vI={keyword:"const",$data:!0,error:gI,code(e){let{gen:t,data:r,$data:n,schemaCode:o,schema:i}=e;n||i&&typeof i=="object"?e.fail$data((0,wp._)`!${(0,mI.useFunc)(t,hI.default)}(${r}, ${o})`):e.fail((0,wp._)`${i} !== ${r}`)}};zp.default=vI});var y_=S(Ip=>{"use strict";Object.defineProperty(Ip,"__esModule",{value:!0});var Xo=K(),_I=re(),yI=Qa(),$I={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,Xo._)`{allowedValues: ${e}}`},bI={keyword:"enum",schemaType:"array",$data:!0,error:$I,code(e){let{gen:t,data:r,$data:n,schema:o,schemaCode:i,it:a}=e;if(!n&&o.length===0)throw new Error("enum must have non-empty array");let s=o.length>=a.opts.loopEnum,c,u=()=>c??(c=(0,_I.useFunc)(t,yI.default)),l;if(s||n)l=t.let("valid"),e.block$data(l,d);else{if(!Array.isArray(o))throw new Error("ajv implementation error");let f=t.const("vSchema",i);l=(0,Xo.or)(...o.map((g,v)=>m(f,v)))}e.pass(l);function d(){t.assign(l,!1),t.forOf("v",i,f=>t.if((0,Xo._)`${u()}(${r}, ${f})`,()=>t.assign(l,!0).break()))}function m(f,g){let v=o[g];return typeof v=="object"&&v!==null?(0,Xo._)`${u()}(${r}, ${f}[${g}])`:(0,Xo._)`${r} === ${v}`}}};Ip.default=bI});var $_=S(Ep=>{"use strict";Object.defineProperty(Ep,"__esModule",{value:!0});var xI=s_(),kI=c_(),SI=d_(),wI=p_(),zI=f_(),II=m_(),EI=h_(),TI=v_(),PI=__(),OI=y_(),jI=[xI.default,kI.default,SI.default,wI.default,zI.default,II.default,EI.default,TI.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},PI.default,OI.default];Ep.default=jI});var Pp=S(Yo=>{"use strict";Object.defineProperty(Yo,"__esModule",{value:!0});Yo.validateAdditionalItems=void 0;var kr=K(),Tp=re(),NI={message:({params:{len:e}})=>(0,kr.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,kr._)`{limit: ${e}}`},DI={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:NI,code(e){let{parentSchema:t,it:r}=e,{items:n}=t;if(!Array.isArray(n)){(0,Tp.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}b_(e,n)}};function b_(e,t){let{gen:r,schema:n,data:o,keyword:i,it:a}=e;a.items=!0;let s=r.const("len",(0,kr._)`${o}.length`);if(n===!1)e.setParams({len:t.length}),e.pass((0,kr._)`${s} <= ${t.length}`);else if(typeof n=="object"&&!(0,Tp.alwaysValidSchema)(a,n)){let u=r.var("valid",(0,kr._)`${s} <= ${t.length}`);r.if((0,kr.not)(u),()=>c(u)),e.ok(u)}function c(u){r.forRange("i",t.length,s,l=>{e.subschema({keyword:i,dataProp:l,dataPropType:Tp.Type.Num},u),a.allErrors||r.if((0,kr.not)(u),()=>r.break())})}}Yo.validateAdditionalItems=b_;Yo.default=DI});var Op=S(Qo=>{"use strict";Object.defineProperty(Qo,"__esModule",{value:!0});Qo.validateTuple=void 0;var x_=K(),es=re(),RI=rt(),ZI={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:r}=e;if(Array.isArray(t))return k_(e,"additionalItems",t);r.items=!0,!(0,es.alwaysValidSchema)(r,t)&&e.ok((0,RI.validateArray)(e))}};function k_(e,t,r=e.schema){let{gen:n,parentSchema:o,data:i,keyword:a,it:s}=e;l(o),s.opts.unevaluated&&r.length&&s.items!==!0&&(s.items=es.mergeEvaluated.items(n,r.length,s.items));let c=n.name("valid"),u=n.const("len",(0,x_._)`${i}.length`);r.forEach((d,m)=>{(0,es.alwaysValidSchema)(s,d)||(n.if((0,x_._)`${u} > ${m}`,()=>e.subschema({keyword:a,schemaProp:m,dataProp:m},c)),e.ok(c))});function l(d){let{opts:m,errSchemaPath:f}=s,g=r.length,v=g===d.minItems&&(g===d.maxItems||d[t]===!1);if(m.strictTuples&&!v){let $=`"${a}" is ${g}-tuple, but minItems or maxItems/${t} are not specified or different at path "${f}"`;(0,es.checkStrictMode)(s,$,m.strictTuples)}}}Qo.validateTuple=k_;Qo.default=ZI});var S_=S(jp=>{"use strict";Object.defineProperty(jp,"__esModule",{value:!0});var AI=Op(),UI={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,AI.validateTuple)(e,"items")};jp.default=UI});var z_=S(Np=>{"use strict";Object.defineProperty(Np,"__esModule",{value:!0});var w_=K(),CI=re(),MI=rt(),LI=Pp(),qI={message:({params:{len:e}})=>(0,w_.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,w_._)`{limit: ${e}}`},FI={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:qI,code(e){let{schema:t,parentSchema:r,it:n}=e,{prefixItems:o}=r;n.items=!0,!(0,CI.alwaysValidSchema)(n,t)&&(o?(0,LI.validateAdditionalItems)(e,o):e.ok((0,MI.validateArray)(e)))}};Np.default=FI});var I_=S(Dp=>{"use strict";Object.defineProperty(Dp,"__esModule",{value:!0});var ot=K(),ts=re(),VI={message:({params:{min:e,max:t}})=>t===void 0?(0,ot.str)`must contain at least ${e} valid item(s)`:(0,ot.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,ot._)`{minContains: ${e}}`:(0,ot._)`{minContains: ${e}, maxContains: ${t}}`},JI={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:VI,code(e){let{gen:t,schema:r,parentSchema:n,data:o,it:i}=e,a,s,{minContains:c,maxContains:u}=n;i.opts.next?(a=c===void 0?1:c,s=u):a=1;let l=t.const("len",(0,ot._)`${o}.length`);if(e.setParams({min:a,max:s}),s===void 0&&a===0){(0,ts.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&a>s){(0,ts.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,ts.alwaysValidSchema)(i,r)){let v=(0,ot._)`${l} >= ${a}`;s!==void 0&&(v=(0,ot._)`${v} && ${l} <= ${s}`),e.pass(v);return}i.items=!0;let d=t.name("valid");s===void 0&&a===1?f(d,()=>t.if(d,()=>t.break())):a===0?(t.let(d,!0),s!==void 0&&t.if((0,ot._)`${o}.length > 0`,m)):(t.let(d,!1),m()),e.result(d,()=>e.reset());function m(){let v=t.name("_valid"),$=t.let("count",0);f(v,()=>t.if(v,()=>g($)))}function f(v,$){t.forRange("i",0,l,x=>{e.subschema({keyword:"contains",dataProp:x,dataPropType:ts.Type.Num,compositeRule:!0},v),$()})}function g(v){t.code((0,ot._)`${v}++`),s===void 0?t.if((0,ot._)`${v} >= ${a}`,()=>t.assign(d,!0).break()):(t.if((0,ot._)`${v} > ${s}`,()=>t.assign(d,!1).break()),a===1?t.assign(d,!0):t.if((0,ot._)`${v} >= ${a}`,()=>t.assign(d,!0)))}}};Dp.default=JI});var P_=S(xt=>{"use strict";Object.defineProperty(xt,"__esModule",{value:!0});xt.validateSchemaDeps=xt.validatePropertyDeps=xt.error=void 0;var Rp=K(),KI=re(),ei=rt();xt.error={message:({params:{property:e,depsCount:t,deps:r}})=>{let n=t===1?"property":"properties";return(0,Rp.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,Rp._)`{property: ${e}, + missingProperty: ${n}, + depsCount: ${t}, + deps: ${r}}`};var WI={keyword:"dependencies",type:"object",schemaType:"object",error:xt.error,code(e){let[t,r]=GI(e);E_(e,t),T_(e,r)}};function GI({schema:e}){let t={},r={};for(let n in e){if(n==="__proto__")continue;let o=Array.isArray(e[n])?t:r;o[n]=e[n]}return[t,r]}function E_(e,t=e.schema){let{gen:r,data:n,it:o}=e;if(Object.keys(t).length===0)return;let i=r.let("missing");for(let a in t){let s=t[a];if(s.length===0)continue;let c=(0,ei.propertyInData)(r,n,a,o.opts.ownProperties);e.setParams({property:a,depsCount:s.length,deps:s.join(", ")}),o.allErrors?r.if(c,()=>{for(let u of s)(0,ei.checkReportMissingProp)(e,u)}):(r.if((0,Rp._)`${c} && (${(0,ei.checkMissingProp)(e,s,i)})`),(0,ei.reportMissingProp)(e,i),r.else())}}xt.validatePropertyDeps=E_;function T_(e,t=e.schema){let{gen:r,data:n,keyword:o,it:i}=e,a=r.name("valid");for(let s in t)(0,KI.alwaysValidSchema)(i,t[s])||(r.if((0,ei.propertyInData)(r,n,s,i.opts.ownProperties),()=>{let c=e.subschema({keyword:o,schemaProp:s},a);e.mergeValidEvaluated(c,a)},()=>r.var(a,!0)),e.ok(a))}xt.validateSchemaDeps=T_;xt.default=WI});var j_=S(Zp=>{"use strict";Object.defineProperty(Zp,"__esModule",{value:!0});var O_=K(),HI=re(),BI={message:"property name must be valid",params:({params:e})=>(0,O_._)`{propertyName: ${e.propertyName}}`},XI={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:BI,code(e){let{gen:t,schema:r,data:n,it:o}=e;if((0,HI.alwaysValidSchema)(o,r))return;let i=t.name("valid");t.forIn("key",n,a=>{e.setParams({propertyName:a}),e.subschema({keyword:"propertyNames",data:a,dataTypes:["string"],propertyName:a,compositeRule:!0},i),t.if((0,O_.not)(i),()=>{e.error(!0),o.allErrors||t.break()})}),e.ok(i)}};Zp.default=XI});var Up=S(Ap=>{"use strict";Object.defineProperty(Ap,"__esModule",{value:!0});var rs=rt(),mt=K(),YI=At(),ns=re(),QI={message:"must NOT have additional properties",params:({params:e})=>(0,mt._)`{additionalProperty: ${e.additionalProperty}}`},eE={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:QI,code(e){let{gen:t,schema:r,parentSchema:n,data:o,errsCount:i,it:a}=e;if(!i)throw new Error("ajv implementation error");let{allErrors:s,opts:c}=a;if(a.props=!0,c.removeAdditional!=="all"&&(0,ns.alwaysValidSchema)(a,r))return;let u=(0,rs.allSchemaProperties)(n.properties),l=(0,rs.allSchemaProperties)(n.patternProperties);d(),e.ok((0,mt._)`${i} === ${YI.default.errors}`);function d(){t.forIn("key",o,$=>{!u.length&&!l.length?g($):t.if(m($),()=>g($))})}function m($){let x;if(u.length>8){let O=(0,ns.schemaRefOrVal)(a,n.properties,"properties");x=(0,rs.isOwnProperty)(t,O,$)}else u.length?x=(0,mt.or)(...u.map(O=>(0,mt._)`${$} === ${O}`)):x=mt.nil;return l.length&&(x=(0,mt.or)(x,...l.map(O=>(0,mt._)`${(0,rs.usePattern)(e,O)}.test(${$})`))),(0,mt.not)(x)}function f($){t.code((0,mt._)`delete ${o}[${$}]`)}function g($){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){f($);return}if(r===!1){e.setParams({additionalProperty:$}),e.error(),s||t.break();return}if(typeof r=="object"&&!(0,ns.alwaysValidSchema)(a,r)){let x=t.name("valid");c.removeAdditional==="failing"?(v($,x,!1),t.if((0,mt.not)(x),()=>{e.reset(),f($)})):(v($,x),s||t.if((0,mt.not)(x),()=>t.break()))}}function v($,x,O){let I={keyword:"additionalProperties",dataProp:$,dataPropType:ns.Type.Str};O===!1&&Object.assign(I,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(I,x)}}};Ap.default=eE});var R_=S(Mp=>{"use strict";Object.defineProperty(Mp,"__esModule",{value:!0});var tE=Mo(),N_=rt(),Cp=re(),D_=Up(),rE={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,parentSchema:n,data:o,it:i}=e;i.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&D_.default.code(new tE.KeywordCxt(i,D_.default,"additionalProperties"));let a=(0,N_.allSchemaProperties)(r);for(let d of a)i.definedProperties.add(d);i.opts.unevaluated&&a.length&&i.props!==!0&&(i.props=Cp.mergeEvaluated.props(t,(0,Cp.toHash)(a),i.props));let s=a.filter(d=>!(0,Cp.alwaysValidSchema)(i,r[d]));if(s.length===0)return;let c=t.name("valid");for(let d of s)u(d)?l(d):(t.if((0,N_.propertyInData)(t,o,d,i.opts.ownProperties)),l(d),i.allErrors||t.else().var(c,!0),t.endIf()),e.it.definedProperties.add(d),e.ok(c);function u(d){return i.opts.useDefaults&&!i.compositeRule&&r[d].default!==void 0}function l(d){e.subschema({keyword:"properties",schemaProp:d,dataProp:d},c)}}};Mp.default=rE});var C_=S(Lp=>{"use strict";Object.defineProperty(Lp,"__esModule",{value:!0});var Z_=rt(),os=K(),A_=re(),U_=re(),nE={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,data:n,parentSchema:o,it:i}=e,{opts:a}=i,s=(0,Z_.allSchemaProperties)(r),c=s.filter(v=>(0,A_.alwaysValidSchema)(i,r[v]));if(s.length===0||c.length===s.length&&(!i.opts.unevaluated||i.props===!0))return;let u=a.strictSchema&&!a.allowMatchingProperties&&o.properties,l=t.name("valid");i.props!==!0&&!(i.props instanceof os.Name)&&(i.props=(0,U_.evaluatedPropsToName)(t,i.props));let{props:d}=i;m();function m(){for(let v of s)u&&f(v),i.allErrors?g(v):(t.var(l,!0),g(v),t.if(l))}function f(v){for(let $ in u)new RegExp(v).test($)&&(0,A_.checkStrictMode)(i,`property ${$} matches pattern ${v} (use allowMatchingProperties)`)}function g(v){t.forIn("key",n,$=>{t.if((0,os._)`${(0,Z_.usePattern)(e,v)}.test(${$})`,()=>{let x=c.includes(v);x||e.subschema({keyword:"patternProperties",schemaProp:v,dataProp:$,dataPropType:U_.Type.Str},l),i.opts.unevaluated&&d!==!0?t.assign((0,os._)`${d}[${$}]`,!0):!x&&!i.allErrors&&t.if((0,os.not)(l),()=>t.break())})})}}};Lp.default=nE});var M_=S(qp=>{"use strict";Object.defineProperty(qp,"__esModule",{value:!0});var oE=re(),iE={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:n}=e;if((0,oE.alwaysValidSchema)(n,r)){e.fail();return}let o=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),e.failResult(o,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};qp.default=iE});var L_=S(Fp=>{"use strict";Object.defineProperty(Fp,"__esModule",{value:!0});var aE=rt(),sE={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:aE.validateUnion,error:{message:"must match a schema in anyOf"}};Fp.default=sE});var q_=S(Vp=>{"use strict";Object.defineProperty(Vp,"__esModule",{value:!0});var is=K(),cE=re(),uE={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,is._)`{passingSchemas: ${e.passing}}`},lE={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:uE,code(e){let{gen:t,schema:r,parentSchema:n,it:o}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(o.opts.discriminator&&n.discriminator)return;let i=r,a=t.let("valid",!1),s=t.let("passing",null),c=t.name("_valid");e.setParams({passing:s}),t.block(u),e.result(a,()=>e.reset(),()=>e.error(!0));function u(){i.forEach((l,d)=>{let m;(0,cE.alwaysValidSchema)(o,l)?t.var(c,!0):m=e.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&t.if((0,is._)`${c} && ${a}`).assign(a,!1).assign(s,(0,is._)`[${s}, ${d}]`).else(),t.if(c,()=>{t.assign(a,!0),t.assign(s,d),m&&e.mergeEvaluated(m,is.Name)})})}}};Vp.default=lE});var F_=S(Jp=>{"use strict";Object.defineProperty(Jp,"__esModule",{value:!0});var dE=re(),pE={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:r,it:n}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");let o=t.name("valid");r.forEach((i,a)=>{if((0,dE.alwaysValidSchema)(n,i))return;let s=e.subschema({keyword:"allOf",schemaProp:a},o);e.ok(o),e.mergeEvaluated(s)})}};Jp.default=pE});var K_=S(Kp=>{"use strict";Object.defineProperty(Kp,"__esModule",{value:!0});var as=K(),J_=re(),fE={message:({params:e})=>(0,as.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,as._)`{failingKeyword: ${e.ifClause}}`},mE={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:fE,code(e){let{gen:t,parentSchema:r,it:n}=e;r.then===void 0&&r.else===void 0&&(0,J_.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let o=V_(n,"then"),i=V_(n,"else");if(!o&&!i)return;let a=t.let("valid",!0),s=t.name("_valid");if(c(),e.reset(),o&&i){let l=t.let("ifClause");e.setParams({ifClause:l}),t.if(s,u("then",l),u("else",l))}else o?t.if(s,u("then")):t.if((0,as.not)(s),u("else"));e.pass(a,()=>e.error(!0));function c(){let l=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);e.mergeEvaluated(l)}function u(l,d){return()=>{let m=e.subschema({keyword:l},s);t.assign(a,s),e.mergeValidEvaluated(m,a),d?t.assign(d,(0,as._)`${l}`):e.setParams({ifClause:l})}}}};function V_(e,t){let r=e.schema[t];return r!==void 0&&!(0,J_.alwaysValidSchema)(e,r)}Kp.default=mE});var W_=S(Wp=>{"use strict";Object.defineProperty(Wp,"__esModule",{value:!0});var hE=re(),gE={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,hE.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};Wp.default=gE});var G_=S(Gp=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});var vE=Pp(),_E=S_(),yE=Op(),$E=z_(),bE=I_(),xE=P_(),kE=j_(),SE=Up(),wE=R_(),zE=C_(),IE=M_(),EE=L_(),TE=q_(),PE=F_(),OE=K_(),jE=W_();function NE(e=!1){let t=[IE.default,EE.default,TE.default,PE.default,OE.default,jE.default,kE.default,SE.default,xE.default,wE.default,zE.default];return e?t.push(_E.default,$E.default):t.push(vE.default,yE.default),t.push(bE.default),t}Gp.default=NE});var H_=S(Hp=>{"use strict";Object.defineProperty(Hp,"__esModule",{value:!0});var ve=K(),DE={message:({schemaCode:e})=>(0,ve.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,ve._)`{format: ${e}}`},RE={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:DE,code(e,t){let{gen:r,data:n,$data:o,schema:i,schemaCode:a,it:s}=e,{opts:c,errSchemaPath:u,schemaEnv:l,self:d}=s;if(!c.validateFormats)return;o?m():f();function m(){let g=r.scopeValue("formats",{ref:d.formats,code:c.code.formats}),v=r.const("fDef",(0,ve._)`${g}[${a}]`),$=r.let("fType"),x=r.let("format");r.if((0,ve._)`typeof ${v} == "object" && !(${v} instanceof RegExp)`,()=>r.assign($,(0,ve._)`${v}.type || "string"`).assign(x,(0,ve._)`${v}.validate`),()=>r.assign($,(0,ve._)`"string"`).assign(x,v)),e.fail$data((0,ve.or)(O(),I()));function O(){return c.strictSchema===!1?ve.nil:(0,ve._)`${a} && !${x}`}function I(){let U=l.$async?(0,ve._)`(${v}.async ? await ${x}(${n}) : ${x}(${n}))`:(0,ve._)`${x}(${n})`,j=(0,ve._)`(typeof ${x} == "function" ? ${U} : ${x}.test(${n}))`;return(0,ve._)`${x} && ${x} !== true && ${$} === ${t} && !${j}`}}function f(){let g=d.formats[i];if(!g){O();return}if(g===!0)return;let[v,$,x]=I(g);v===t&&e.pass(U());function O(){if(c.strictSchema===!1){d.logger.warn(j());return}throw new Error(j());function j(){return`unknown format "${i}" ignored in schema at path "${u}"`}}function I(j){let it=j instanceof RegExp?(0,ve.regexpCode)(j):c.code.formats?(0,ve._)`${c.code.formats}${(0,ve.getProperty)(i)}`:void 0,at=r.scopeValue("formats",{key:i,ref:j,code:it});return typeof j=="object"&&!(j instanceof RegExp)?[j.type||"string",j.validate,(0,ve._)`${at}.validate`]:["string",j,at]}function U(){if(typeof g=="object"&&!(g instanceof RegExp)&&g.async){if(!l.$async)throw new Error("async format in sync schema");return(0,ve._)`await ${x}(${n})`}return typeof $=="function"?(0,ve._)`${x}(${n})`:(0,ve._)`${x}.test(${n})`}}}};Hp.default=RE});var B_=S(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});var ZE=H_(),AE=[ZE.default];Bp.default=AE});var X_=S(ln=>{"use strict";Object.defineProperty(ln,"__esModule",{value:!0});ln.contentVocabulary=ln.metadataVocabulary=void 0;ln.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];ln.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var Q_=S(Xp=>{"use strict";Object.defineProperty(Xp,"__esModule",{value:!0});var UE=a_(),CE=$_(),ME=G_(),LE=B_(),Y_=X_(),qE=[UE.default,CE.default,(0,ME.default)(),LE.default,Y_.metadataVocabulary,Y_.contentVocabulary];Xp.default=qE});var ty=S(ss=>{"use strict";Object.defineProperty(ss,"__esModule",{value:!0});ss.DiscrError=void 0;var ey;(function(e){e.Tag="tag",e.Mapping="mapping"})(ey||(ss.DiscrError=ey={}))});var ny=S(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});var dn=K(),Yp=ty(),ry=qa(),FE=Lo(),VE=re(),JE={message:({params:{discrError:e,tagName:t}})=>e===Yp.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,dn._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`},KE={keyword:"discriminator",type:"object",schemaType:"object",error:JE,code(e){let{gen:t,data:r,schema:n,parentSchema:o,it:i}=e,{oneOf:a}=o;if(!i.opts.discriminator)throw new Error("discriminator: requires discriminator option");let s=n.propertyName;if(typeof s!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!a)throw new Error("discriminator: requires oneOf keyword");let c=t.let("valid",!1),u=t.const("tag",(0,dn._)`${r}${(0,dn.getProperty)(s)}`);t.if((0,dn._)`typeof ${u} == "string"`,()=>l(),()=>e.error(!1,{discrError:Yp.DiscrError.Tag,tag:u,tagName:s})),e.ok(c);function l(){let f=m();t.if(!1);for(let g in f)t.elseIf((0,dn._)`${u} === ${g}`),t.assign(c,d(f[g]));t.else(),e.error(!1,{discrError:Yp.DiscrError.Mapping,tag:u,tagName:s}),t.endIf()}function d(f){let g=t.name("valid"),v=e.subschema({keyword:"oneOf",schemaProp:f},g);return e.mergeEvaluated(v,dn.Name),g}function m(){var f;let g={},v=x(o),$=!0;for(let U=0;U{WE.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var tf=S((he,ef)=>{"use strict";Object.defineProperty(he,"__esModule",{value:!0});he.MissingRefError=he.ValidationError=he.CodeGen=he.Name=he.nil=he.stringify=he.str=he._=he.KeywordCxt=he.Ajv=void 0;var GE=e_(),HE=Q_(),BE=ny(),iy=oy(),XE=["/properties"],cs="http://json-schema.org/draft-07/schema",pn=class extends GE.default{_addVocabularies(){super._addVocabularies(),HE.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(BE.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let t=this.opts.$data?this.$dataMetaSchema(iy,XE):iy;this.addMetaSchema(t,cs,!1),this.refs["http://json-schema.org/schema"]=cs}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(cs)?cs:void 0)}};he.Ajv=pn;ef.exports=he=pn;ef.exports.Ajv=pn;Object.defineProperty(he,"__esModule",{value:!0});he.default=pn;var YE=Mo();Object.defineProperty(he,"KeywordCxt",{enumerable:!0,get:function(){return YE.KeywordCxt}});var fn=K();Object.defineProperty(he,"_",{enumerable:!0,get:function(){return fn._}});Object.defineProperty(he,"str",{enumerable:!0,get:function(){return fn.str}});Object.defineProperty(he,"stringify",{enumerable:!0,get:function(){return fn.stringify}});Object.defineProperty(he,"nil",{enumerable:!0,get:function(){return fn.nil}});Object.defineProperty(he,"Name",{enumerable:!0,get:function(){return fn.Name}});Object.defineProperty(he,"CodeGen",{enumerable:!0,get:function(){return fn.CodeGen}});var QE=Ma();Object.defineProperty(he,"ValidationError",{enumerable:!0,get:function(){return QE.default}});var eT=Lo();Object.defineProperty(he,"MissingRefError",{enumerable:!0,get:function(){return eT.default}})});var fy=S(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});St.formatNames=St.fastFormats=St.fullFormats=void 0;function kt(e,t){return{validate:e,compare:t}}St.fullFormats={date:kt(uy,af),time:kt(nf(!0),sf),"date-time":kt(ay(!0),dy),"iso-time":kt(nf(),ly),"iso-date-time":kt(ay(),py),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:aT,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:fT,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:sT,int32:{type:"number",validate:lT},int64:{type:"number",validate:dT},float:{type:"number",validate:cy},double:{type:"number",validate:cy},password:!0,binary:!0};St.fastFormats={...St.fullFormats,date:kt(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,af),time:kt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,sf),"date-time":kt(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,dy),"iso-time":kt(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,ly),"iso-date-time":kt(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,py),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};St.formatNames=Object.keys(St.fullFormats);function tT(e){return e%4===0&&(e%100!==0||e%400===0)}var rT=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,nT=[0,31,28,31,30,31,30,31,31,30,31,30,31];function uy(e){let t=rT.exec(e);if(!t)return!1;let r=+t[1],n=+t[2],o=+t[3];return n>=1&&n<=12&&o>=1&&o<=(n===2&&tT(r)?29:nT[n])}function af(e,t){if(e&&t)return e>t?1:e23||l>59||e&&!s)return!1;if(o<=23&&i<=59&&a<60)return!0;let d=i-l*c,m=o-u*c-(d<0?1:0);return(m===23||m===-1)&&(d===59||d===-1)&&a<61}}function sf(e,t){if(!(e&&t))return;let r=new Date("2020-01-01T"+e).valueOf(),n=new Date("2020-01-01T"+t).valueOf();if(r&&n)return r-n}function ly(e,t){if(!(e&&t))return;let r=rf.exec(e),n=rf.exec(t);if(r&&n)return e=r[1]+r[2]+r[3],t=n[1]+n[2]+n[3],e>t?1:e=cT}function dT(e){return Number.isInteger(e)}function cy(){return!0}var pT=/[^\\]\\Z/;function fT(e){if(pT.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var my=S(mn=>{"use strict";Object.defineProperty(mn,"__esModule",{value:!0});mn.formatLimitDefinition=void 0;var mT=tf(),ht=K(),or=ht.operators,us={formatMaximum:{okStr:"<=",ok:or.LTE,fail:or.GT},formatMinimum:{okStr:">=",ok:or.GTE,fail:or.LT},formatExclusiveMaximum:{okStr:"<",ok:or.LT,fail:or.GTE},formatExclusiveMinimum:{okStr:">",ok:or.GT,fail:or.LTE}},hT={message:({keyword:e,schemaCode:t})=>(0,ht.str)`should be ${us[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,ht._)`{comparison: ${us[e].okStr}, limit: ${t}}`};mn.formatLimitDefinition={keyword:Object.keys(us),type:"string",schemaType:"string",$data:!0,error:hT,code(e){let{gen:t,data:r,schemaCode:n,keyword:o,it:i}=e,{opts:a,self:s}=i;if(!a.validateFormats)return;let c=new mT.KeywordCxt(i,s.RULES.all.format.definition,"format");c.$data?u():l();function u(){let m=t.scopeValue("formats",{ref:s.formats,code:a.code.formats}),f=t.const("fmt",(0,ht._)`${m}[${c.schemaCode}]`);e.fail$data((0,ht.or)((0,ht._)`typeof ${f} != "object"`,(0,ht._)`${f} instanceof RegExp`,(0,ht._)`typeof ${f}.compare != "function"`,d(f)))}function l(){let m=c.schema,f=s.formats[m];if(!f||f===!0)return;if(typeof f!="object"||f instanceof RegExp||typeof f.compare!="function")throw new Error(`"${o}": format "${m}" does not define "compare" function`);let g=t.scopeValue("formats",{key:m,ref:f,code:a.code.formats?(0,ht._)`${a.code.formats}${(0,ht.getProperty)(m)}`:void 0});e.fail$data(d(g))}function d(m){return(0,ht._)`${m}.compare(${r}, ${n}) ${us[o].fail} 0`}},dependencies:["format"]};var gT=e=>(e.addKeyword(mn.formatLimitDefinition),e);mn.default=gT});var _y=S((ti,vy)=>{"use strict";Object.defineProperty(ti,"__esModule",{value:!0});var hn=fy(),vT=my(),cf=K(),hy=new cf.Name("fullFormats"),_T=new cf.Name("fastFormats"),uf=(e,t={keywords:!0})=>{if(Array.isArray(t))return gy(e,t,hn.fullFormats,hy),e;let[r,n]=t.mode==="fast"?[hn.fastFormats,_T]:[hn.fullFormats,hy],o=t.formats||hn.formatNames;return gy(e,o,r,n),t.keywords&&(0,vT.default)(e),e};uf.get=(e,t="full")=>{let n=(t==="fast"?hn.fastFormats:hn.fullFormats)[e];if(!n)throw new Error(`Unknown format "${e}"`);return n};function gy(e,t,r,n){var o,i;(o=(i=e.opts.code).formats)!==null&&o!==void 0||(i.formats=(0,cf._)`require("ajv-formats/dist/formats").${n}`);for(let a of t)e.addFormat(a,r[a])}vy.exports=ti=uf;Object.defineProperty(ti,"__esModule",{value:!0});ti.default=uf});var Sr=require("fs"),vf=require("path"),_f=require("os");var hf="bugfix,feature,refactor,discovery,decision,change",gf="how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off";var st=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_PROVIDER:"claude",CLAUDE_MEM_GEMINI_API_KEY:"",CLAUDE_MEM_GEMINI_MODEL:"gemini-2.5-flash-lite",CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED:"true",CLAUDE_MEM_OPENROUTER_API_KEY:"",CLAUDE_MEM_OPENROUTER_MODEL:"xiaomi/mimo-v2-flash:free",CLAUDE_MEM_OPENROUTER_SITE_URL:"",CLAUDE_MEM_OPENROUTER_APP_NAME:"claude-mem",CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES:"20",CLAUDE_MEM_OPENROUTER_MAX_TOKENS:"100000",CLAUDE_MEM_DATA_DIR:(0,vf.join)((0,_f.homedir)(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_MODE:"code",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:hf,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:gf,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};static getAllDefaults(){return{...this.DEFAULTS}}static get(t){return this.DEFAULTS[t]}static getInt(t){let r=this.get(t);return parseInt(r,10)}static getBool(t){return this.get(t)==="true"}static loadFromFile(t){try{if(!(0,Sr.existsSync)(t))return this.getAllDefaults();let r=(0,Sr.readFileSync)(t,"utf-8"),n=JSON.parse(r),o=n;if(n.env&&typeof n.env=="object"){o=n.env;try{(0,Sr.writeFileSync)(t,JSON.stringify(o,null,2),"utf-8"),ge.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:t})}catch(a){ge.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:t},a)}}let i={...this.DEFAULTS};for(let a of Object.keys(this.DEFAULTS))o[a]!==void 0&&(i[a]=o[a]);return i}catch(r){return ge.warn("SETTINGS","Failed to load settings, using defaults",{settingsPath:t},r),this.getAllDefaults()}}};var wr=require("fs"),oi=require("path"),xs=(i=>(i[i.DEBUG=0]="DEBUG",i[i.INFO=1]="INFO",i[i.WARN=2]="WARN",i[i.ERROR=3]="ERROR",i[i.SILENT=4]="SILENT",i))(xs||{}),ks=class{level=null;useColor;logFilePath=null;constructor(){this.useColor=process.stdout.isTTY??!1,this.initializeLogFile()}initializeLogFile(){try{let t=st.get("CLAUDE_MEM_DATA_DIR"),r=(0,oi.join)(t,"logs");(0,wr.existsSync)(r)||(0,wr.mkdirSync)(r,{recursive:!0});let n=new Date().toISOString().split("T")[0];this.logFilePath=(0,oi.join)(r,`claude-mem-${n}.log`)}catch(t){console.error("[LOGGER] Failed to initialize log file:",t),this.logFilePath=null}}getLevel(){if(this.level===null)try{let t=st.get("CLAUDE_MEM_DATA_DIR"),r=(0,oi.join)(t,"settings.json"),o=st.loadFromFile(r).CLAUDE_MEM_LOG_LEVEL.toUpperCase();this.level=xs[o]??1}catch(t){console.error("[LOGGER] Failed to load settings, using INFO level:",t),this.level=1}return this.level}correlationId(t,r){return`obs-${t}-${r}`}sessionId(t){return`session-${t}`}formatData(t){if(t==null)return"";if(typeof t=="string")return t;if(typeof t=="number"||typeof t=="boolean")return t.toString();if(typeof t=="object"){if(t instanceof Error)return this.getLevel()===0?`${t.message} +${t.stack}`:t.message;if(Array.isArray(t))return`[${t.length} items]`;let r=Object.keys(t);return r.length===0?"{}":r.length<=3?JSON.stringify(t):`{${r.length} keys: ${r.slice(0,3).join(", ")}...}`}return String(t)}formatTool(t,r){if(!r)return t;let n=typeof r=="string"?JSON.parse(r):r;if(t==="Bash"&&n.command)return`${t}(${n.command})`;if(n.file_path)return`${t}(${n.file_path})`;if(n.notebook_path)return`${t}(${n.notebook_path})`;if(t==="Glob"&&n.pattern)return`${t}(${n.pattern})`;if(t==="Grep"&&n.pattern)return`${t}(${n.pattern})`;if(n.url)return`${t}(${n.url})`;if(n.query)return`${t}(${n.query})`;if(t==="Task"){if(n.subagent_type)return`${t}(${n.subagent_type})`;if(n.description)return`${t}(${n.description})`}return t==="Skill"&&n.skill?`${t}(${n.skill})`:t==="LSP"&&n.operation?`${t}(${n.operation})`:t}formatTimestamp(t){let r=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),o=String(t.getDate()).padStart(2,"0"),i=String(t.getHours()).padStart(2,"0"),a=String(t.getMinutes()).padStart(2,"0"),s=String(t.getSeconds()).padStart(2,"0"),c=String(t.getMilliseconds()).padStart(3,"0");return`${r}-${n}-${o} ${i}:${a}:${s}.${c}`}log(t,r,n,o,i){if(t0&&(d=` {${Object.entries($).map(([O,I])=>`${O}=${I}`).join(", ")}}`)}let m=`[${a}] [${s}] [${c}] ${u}${n}${d}${l}`;if(this.logFilePath)try{(0,wr.appendFileSync)(this.logFilePath,m+` +`,"utf8")}catch(f){process.stderr.write(`[LOGGER] Failed to write to log file: ${f} +`)}else process.stderr.write(m+` +`)}debug(t,r,n,o){this.log(0,t,r,n,o)}info(t,r,n,o){this.log(1,t,r,n,o)}warn(t,r,n,o){this.log(2,t,r,n,o)}error(t,r,n,o){this.log(3,t,r,n,o)}dataIn(t,r,n,o){this.info(t,`\u2192 ${r}`,n,o)}dataOut(t,r,n,o){this.info(t,`\u2190 ${r}`,n,o)}success(t,r,n,o){this.info(t,`\u2713 ${r}`,n,o)}failure(t,r,n,o){this.error(t,`\u2717 ${r}`,n,o)}timing(t,r,n,o){this.info(t,`\u23F1 ${r}`,o,{duration:`${n}ms`})}happyPathError(t,r,n,o,i=""){let u=((new Error().stack||"").split(` +`)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),l=u?`${u[1].split("/").pop()}:${u[2]}`:"unknown",d={...n,location:l};return this.warn(t,`[HAPPY-PATH] ${r}`,d,o),i}},ge=new ks;var X;(function(e){e.assertEqual=o=>{};function t(o){}e.assertIs=t;function r(o){throw new Error}e.assertNever=r,e.arrayToEnum=o=>{let i={};for(let a of o)i[a]=a;return i},e.getValidEnumValues=o=>{let i=e.objectKeys(o).filter(s=>typeof o[o[s]]!="number"),a={};for(let s of i)a[s]=o[s];return e.objectValues(a)},e.objectValues=o=>e.objectKeys(o).map(function(i){return o[i]}),e.objectKeys=typeof Object.keys=="function"?o=>Object.keys(o):o=>{let i=[];for(let a in o)Object.prototype.hasOwnProperty.call(o,a)&&i.push(a);return i},e.find=(o,i)=>{for(let a of o)if(i(a))return a},e.isInteger=typeof Number.isInteger=="function"?o=>Number.isInteger(o):o=>typeof o=="number"&&Number.isFinite(o)&&Math.floor(o)===o;function n(o,i=" | "){return o.map(a=>typeof a=="string"?`'${a}'`:a).join(i)}e.joinValues=n,e.jsonStringifyReplacer=(o,i)=>typeof i=="bigint"?i.toString():i})(X||(X={}));var yf;(function(e){e.mergeShapes=(t,r)=>({...t,...r})})(yf||(yf={}));var w=X.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),wt=e=>{switch(typeof e){case"undefined":return w.undefined;case"string":return w.string;case"number":return Number.isNaN(e)?w.nan:w.number;case"boolean":return w.boolean;case"function":return w.function;case"bigint":return w.bigint;case"symbol":return w.symbol;case"object":return Array.isArray(e)?w.array:e===null?w.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?w.promise:typeof Map<"u"&&e instanceof Map?w.map:typeof Set<"u"&&e instanceof Set?w.set:typeof Date<"u"&&e instanceof Date?w.date:w.object;default:return w.unknown}};var _=X.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);var Ve=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=t}format(t){let r=t||function(i){return i.message},n={_errors:[]},o=i=>{for(let a of i.issues)if(a.code==="invalid_union")a.unionErrors.map(o);else if(a.code==="invalid_return_type")o(a.returnTypeError);else if(a.code==="invalid_arguments")o(a.argumentsError);else if(a.path.length===0)n._errors.push(r(a));else{let s=n,c=0;for(;cr.message){let r=Object.create(null),n=[];for(let o of this.issues)if(o.path.length>0){let i=o.path[0];r[i]=r[i]||[],r[i].push(t(o))}else n.push(t(o));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};Ve.create=e=>new Ve(e);var Cy=(e,t)=>{let r;switch(e.code){case _.invalid_type:e.received===w.undefined?r="Required":r=`Expected ${e.expected}, received ${e.received}`;break;case _.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(e.expected,X.jsonStringifyReplacer)}`;break;case _.unrecognized_keys:r=`Unrecognized key(s) in object: ${X.joinValues(e.keys,", ")}`;break;case _.invalid_union:r="Invalid input";break;case _.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${X.joinValues(e.options)}`;break;case _.invalid_enum_value:r=`Invalid enum value. Expected ${X.joinValues(e.options)}, received '${e.received}'`;break;case _.invalid_arguments:r="Invalid function arguments";break;case _.invalid_return_type:r="Invalid function return type";break;case _.invalid_date:r="Invalid date";break;case _.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(r=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?r=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?r=`Invalid input: must end with "${e.validation.endsWith}"`:X.assertNever(e.validation):e.validation!=="regex"?r=`Invalid ${e.validation}`:r="Invalid";break;case _.too_small:e.type==="array"?r=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?r=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?r=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?r=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?r=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:r="Invalid input";break;case _.too_big:e.type==="array"?r=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?r=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?r=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?r=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?r=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:r="Invalid input";break;case _.custom:r="Invalid input";break;case _.invalid_intersection_types:r="Intersection results could not be merged";break;case _.not_multiple_of:r=`Number must be a multiple of ${e.multipleOf}`;break;case _.not_finite:r="Number must be finite";break;default:r=t.defaultError,X.assertNever(e)}return{message:r}},Mt=Cy;var My=Mt;function _n(){return My}var ii=e=>{let{data:t,path:r,errorMaps:n,issueData:o}=e,i=[...r,...o.path||[]],a={...o,path:i};if(o.message!==void 0)return{...o,path:i,message:o.message};let s="",c=n.filter(u=>!!u).slice().reverse();for(let u of c)s=u(a,{data:t,defaultError:s}).message;return{...o,path:i,message:s}};function b(e,t){let r=_n(),n=ii({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,r,r===Mt?void 0:Mt].filter(o=>!!o)});e.common.issues.push(n)}var ze=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,r){let n=[];for(let o of r){if(o.status==="aborted")return Z;o.status==="dirty"&&t.dirty(),n.push(o.value)}return{status:t.value,value:n}}static async mergeObjectAsync(t,r){let n=[];for(let o of r){let i=await o.key,a=await o.value;n.push({key:i,value:a})}return e.mergeObjectSync(t,n)}static mergeObjectSync(t,r){let n={};for(let o of r){let{key:i,value:a}=o;if(i.status==="aborted"||a.status==="aborted")return Z;i.status==="dirty"&&t.dirty(),a.status==="dirty"&&t.dirty(),i.value!=="__proto__"&&(typeof a.value<"u"||o.alwaysSet)&&(n[i.value]=a.value)}return{status:t.value,value:n}}},Z=Object.freeze({status:"aborted"}),zr=e=>({status:"dirty",value:e}),je=e=>({status:"valid",value:e}),Ss=e=>e.status==="aborted",ws=e=>e.status==="dirty",ir=e=>e.status==="valid",yn=e=>typeof Promise<"u"&&e instanceof Promise;var E;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(E||(E={}));var Be=class{constructor(t,r,n,o){this._cachedPath=[],this.parent=t,this.data=r,this._path=n,this._key=o}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},$f=(e,t)=>{if(ir(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new Ve(e.common.issues);return this._error=r,this._error}}};function L(e){if(!e)return{};let{errorMap:t,invalid_type_error:r,required_error:n,description:o}=e;if(t&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:o}:{errorMap:(a,s)=>{let{message:c}=e;return a.code==="invalid_enum_value"?{message:c??s.defaultError}:typeof s.data>"u"?{message:c??n??s.defaultError}:a.code!=="invalid_type"?{message:s.defaultError}:{message:c??r??s.defaultError}},description:o}}var W=class{get description(){return this._def.description}_getType(t){return wt(t.data)}_getOrReturnCtx(t,r){return r||{common:t.parent.common,data:t.data,parsedType:wt(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new ze,ctx:{common:t.parent.common,data:t.data,parsedType:wt(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let r=this._parse(t);if(yn(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(t){let r=this._parse(t);return Promise.resolve(r)}parse(t,r){let n=this.safeParse(t,r);if(n.success)return n.data;throw n.error}safeParse(t,r){let n={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:wt(t)},o=this._parseSync({data:t,path:n.path,parent:n});return $f(n,o)}"~validate"(t){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:wt(t)};if(!this["~standard"].async)try{let n=this._parseSync({data:t,path:[],parent:r});return ir(n)?{value:n.value}:{issues:r.common.issues}}catch(n){n?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:r}).then(n=>ir(n)?{value:n.value}:{issues:r.common.issues})}async parseAsync(t,r){let n=await this.safeParseAsync(t,r);if(n.success)return n.data;throw n.error}async safeParseAsync(t,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:wt(t)},o=this._parse({data:t,path:n.path,parent:n}),i=await(yn(o)?o:Promise.resolve(o));return $f(n,i)}refine(t,r){let n=o=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(o):r;return this._refinement((o,i)=>{let a=t(o),s=()=>i.addIssue({code:_.custom,...n(o)});return typeof Promise<"u"&&a instanceof Promise?a.then(c=>c?!0:(s(),!1)):a?!0:(s(),!1)})}refinement(t,r){return this._refinement((n,o)=>t(n)?!0:(o.addIssue(typeof r=="function"?r(n,o):r),!1))}_refinement(t){return new ut({schema:this,typeName:N.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return ct.create(this,this._def)}nullable(){return Et.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return qt.create(this)}promise(){return ar.create(this,this._def)}or(t){return Or.create([this,t],this._def)}and(t){return jr.create(this,t,this._def)}transform(t){return new ut({...L(this._def),schema:this,typeName:N.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let r=typeof t=="function"?t:()=>t;return new Ar({...L(this._def),innerType:this,defaultValue:r,typeName:N.ZodDefault})}brand(){return new ai({typeName:N.ZodBranded,type:this,...L(this._def)})}catch(t){let r=typeof t=="function"?t:()=>t;return new Ur({...L(this._def),innerType:this,catchValue:r,typeName:N.ZodCatch})}describe(t){let r=this.constructor;return new r({...this._def,description:t})}pipe(t){return si.create(this,t)}readonly(){return Cr.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Ly=/^c[^\s-]{8,}$/i,qy=/^[0-9a-z]+$/,Fy=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Vy=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Jy=/^[a-z0-9_-]{21}$/i,Ky=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Wy=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Gy=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Hy="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",zs,By=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Xy=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Yy=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Qy=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,e$=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,t$=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,bf="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",r$=new RegExp(`^${bf}$`);function xf(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let r=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${r}`}function n$(e){return new RegExp(`^${xf(e)}$`)}function o$(e){let t=`${bf}T${xf(e)}`,r=[];return r.push(e.local?"Z?":"Z"),e.offset&&r.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${r.join("|")})`,new RegExp(`^${t}$`)}function i$(e,t){return!!((t==="v4"||!t)&&By.test(e)||(t==="v6"||!t)&&Yy.test(e))}function a$(e,t){if(!Ky.test(e))return!1;try{let[r]=e.split(".");if(!r)return!1;let n=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),o=JSON.parse(atob(n));return!(typeof o!="object"||o===null||"typ"in o&&o?.typ!=="JWT"||!o.alg||t&&o.alg!==t)}catch{return!1}}function s$(e,t){return!!((t==="v4"||!t)&&Xy.test(e)||(t==="v6"||!t)&&Qy.test(e))}var Er=class e extends W{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==w.string){let i=this._getOrReturnCtx(t);return b(i,{code:_.invalid_type,expected:w.string,received:i.parsedType}),Z}let n=new ze,o;for(let i of this._def.checks)if(i.kind==="min")t.data.lengthi.value&&(o=this._getOrReturnCtx(t,o),b(o,{code:_.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),n.dirty());else if(i.kind==="length"){let a=t.data.length>i.value,s=t.data.lengtht.test(o),{validation:r,code:_.invalid_string,...E.errToObj(n)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...E.errToObj(t)})}url(t){return this._addCheck({kind:"url",...E.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...E.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...E.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...E.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...E.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...E.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...E.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...E.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...E.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...E.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...E.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...E.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...E.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...E.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...E.errToObj(t)})}regex(t,r){return this._addCheck({kind:"regex",regex:t,...E.errToObj(r)})}includes(t,r){return this._addCheck({kind:"includes",value:t,position:r?.position,...E.errToObj(r?.message)})}startsWith(t,r){return this._addCheck({kind:"startsWith",value:t,...E.errToObj(r)})}endsWith(t,r){return this._addCheck({kind:"endsWith",value:t,...E.errToObj(r)})}min(t,r){return this._addCheck({kind:"min",value:t,...E.errToObj(r)})}max(t,r){return this._addCheck({kind:"max",value:t,...E.errToObj(r)})}length(t,r){return this._addCheck({kind:"length",value:t,...E.errToObj(r)})}nonempty(t){return this.min(1,E.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t}get maxLength(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.valuenew Er({checks:[],typeName:N.ZodString,coerce:e?.coerce??!1,...L(e)});function c$(e,t){let r=(e.toString().split(".")[1]||"").length,n=(t.toString().split(".")[1]||"").length,o=r>n?r:n,i=Number.parseInt(e.toFixed(o).replace(".","")),a=Number.parseInt(t.toFixed(o).replace(".",""));return i%a/10**o}var $n=class e extends W{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==w.number){let i=this._getOrReturnCtx(t);return b(i,{code:_.invalid_type,expected:w.number,received:i.parsedType}),Z}let n,o=new ze;for(let i of this._def.checks)i.kind==="int"?X.isInteger(t.data)||(n=this._getOrReturnCtx(t,n),b(n,{code:_.invalid_type,expected:"integer",received:"float",message:i.message}),o.dirty()):i.kind==="min"?(i.inclusive?t.datai.value:t.data>=i.value)&&(n=this._getOrReturnCtx(t,n),b(n,{code:_.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),o.dirty()):i.kind==="multipleOf"?c$(t.data,i.value)!==0&&(n=this._getOrReturnCtx(t,n),b(n,{code:_.not_multiple_of,multipleOf:i.value,message:i.message}),o.dirty()):i.kind==="finite"?Number.isFinite(t.data)||(n=this._getOrReturnCtx(t,n),b(n,{code:_.not_finite,message:i.message}),o.dirty()):X.assertNever(i);return{status:o.value,value:t.data}}gte(t,r){return this.setLimit("min",t,!0,E.toString(r))}gt(t,r){return this.setLimit("min",t,!1,E.toString(r))}lte(t,r){return this.setLimit("max",t,!0,E.toString(r))}lt(t,r){return this.setLimit("max",t,!1,E.toString(r))}setLimit(t,r,n,o){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:r,inclusive:n,message:E.toString(o)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:E.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:E.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:E.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:E.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:E.toString(t)})}multipleOf(t,r){return this._addCheck({kind:"multipleOf",value:t,message:E.toString(r)})}finite(t){return this._addCheck({kind:"finite",message:E.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:E.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:E.toString(t)})}get minValue(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t}get maxValue(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.valuet.kind==="int"||t.kind==="multipleOf"&&X.isInteger(t.value))}get isFinite(){let t=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(t===null||n.valuenew $n({checks:[],typeName:N.ZodNumber,coerce:e?.coerce||!1,...L(e)});var bn=class e extends W{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==w.bigint)return this._getInvalidInput(t);let n,o=new ze;for(let i of this._def.checks)i.kind==="min"?(i.inclusive?t.datai.value:t.data>=i.value)&&(n=this._getOrReturnCtx(t,n),b(n,{code:_.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),o.dirty()):i.kind==="multipleOf"?t.data%i.value!==BigInt(0)&&(n=this._getOrReturnCtx(t,n),b(n,{code:_.not_multiple_of,multipleOf:i.value,message:i.message}),o.dirty()):X.assertNever(i);return{status:o.value,value:t.data}}_getInvalidInput(t){let r=this._getOrReturnCtx(t);return b(r,{code:_.invalid_type,expected:w.bigint,received:r.parsedType}),Z}gte(t,r){return this.setLimit("min",t,!0,E.toString(r))}gt(t,r){return this.setLimit("min",t,!1,E.toString(r))}lte(t,r){return this.setLimit("max",t,!0,E.toString(r))}lt(t,r){return this.setLimit("max",t,!1,E.toString(r))}setLimit(t,r,n,o){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:r,inclusive:n,message:E.toString(o)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:E.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:E.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:E.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:E.toString(t)})}multipleOf(t,r){return this._addCheck({kind:"multipleOf",value:t,message:E.toString(r)})}get minValue(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t}get maxValue(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.valuenew bn({checks:[],typeName:N.ZodBigInt,coerce:e?.coerce??!1,...L(e)});var xn=class extends W{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==w.boolean){let n=this._getOrReturnCtx(t);return b(n,{code:_.invalid_type,expected:w.boolean,received:n.parsedType}),Z}return je(t.data)}};xn.create=e=>new xn({typeName:N.ZodBoolean,coerce:e?.coerce||!1,...L(e)});var kn=class e extends W{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==w.date){let i=this._getOrReturnCtx(t);return b(i,{code:_.invalid_type,expected:w.date,received:i.parsedType}),Z}if(Number.isNaN(t.data.getTime())){let i=this._getOrReturnCtx(t);return b(i,{code:_.invalid_date}),Z}let n=new ze,o;for(let i of this._def.checks)i.kind==="min"?t.data.getTime()i.value&&(o=this._getOrReturnCtx(t,o),b(o,{code:_.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),n.dirty()):X.assertNever(i);return{status:n.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,r){return this._addCheck({kind:"min",value:t.getTime(),message:E.toString(r)})}max(t,r){return this._addCheck({kind:"max",value:t.getTime(),message:E.toString(r)})}get minDate(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.valuenew kn({checks:[],coerce:e?.coerce||!1,typeName:N.ZodDate,...L(e)});var Sn=class extends W{_parse(t){if(this._getType(t)!==w.symbol){let n=this._getOrReturnCtx(t);return b(n,{code:_.invalid_type,expected:w.symbol,received:n.parsedType}),Z}return je(t.data)}};Sn.create=e=>new Sn({typeName:N.ZodSymbol,...L(e)});var Tr=class extends W{_parse(t){if(this._getType(t)!==w.undefined){let n=this._getOrReturnCtx(t);return b(n,{code:_.invalid_type,expected:w.undefined,received:n.parsedType}),Z}return je(t.data)}};Tr.create=e=>new Tr({typeName:N.ZodUndefined,...L(e)});var Pr=class extends W{_parse(t){if(this._getType(t)!==w.null){let n=this._getOrReturnCtx(t);return b(n,{code:_.invalid_type,expected:w.null,received:n.parsedType}),Z}return je(t.data)}};Pr.create=e=>new Pr({typeName:N.ZodNull,...L(e)});var wn=class extends W{constructor(){super(...arguments),this._any=!0}_parse(t){return je(t.data)}};wn.create=e=>new wn({typeName:N.ZodAny,...L(e)});var Lt=class extends W{constructor(){super(...arguments),this._unknown=!0}_parse(t){return je(t.data)}};Lt.create=e=>new Lt({typeName:N.ZodUnknown,...L(e)});var gt=class extends W{_parse(t){let r=this._getOrReturnCtx(t);return b(r,{code:_.invalid_type,expected:w.never,received:r.parsedType}),Z}};gt.create=e=>new gt({typeName:N.ZodNever,...L(e)});var zn=class extends W{_parse(t){if(this._getType(t)!==w.undefined){let n=this._getOrReturnCtx(t);return b(n,{code:_.invalid_type,expected:w.void,received:n.parsedType}),Z}return je(t.data)}};zn.create=e=>new zn({typeName:N.ZodVoid,...L(e)});var qt=class e extends W{_parse(t){let{ctx:r,status:n}=this._processInputParams(t),o=this._def;if(r.parsedType!==w.array)return b(r,{code:_.invalid_type,expected:w.array,received:r.parsedType}),Z;if(o.exactLength!==null){let a=r.data.length>o.exactLength.value,s=r.data.lengtho.maxLength.value&&(b(r,{code:_.too_big,maximum:o.maxLength.value,type:"array",inclusive:!0,exact:!1,message:o.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((a,s)=>o.type._parseAsync(new Be(r,a,r.path,s)))).then(a=>ze.mergeArray(n,a));let i=[...r.data].map((a,s)=>o.type._parseSync(new Be(r,a,r.path,s)));return ze.mergeArray(n,i)}get element(){return this._def.type}min(t,r){return new e({...this._def,minLength:{value:t,message:E.toString(r)}})}max(t,r){return new e({...this._def,maxLength:{value:t,message:E.toString(r)}})}length(t,r){return new e({...this._def,exactLength:{value:t,message:E.toString(r)}})}nonempty(t){return this.min(1,t)}};qt.create=(e,t)=>new qt({type:e,minLength:null,maxLength:null,exactLength:null,typeName:N.ZodArray,...L(t)});function Ir(e){if(e instanceof Je){let t={};for(let r in e.shape){let n=e.shape[r];t[r]=ct.create(Ir(n))}return new Je({...e._def,shape:()=>t})}else return e instanceof qt?new qt({...e._def,type:Ir(e.element)}):e instanceof ct?ct.create(Ir(e.unwrap())):e instanceof Et?Et.create(Ir(e.unwrap())):e instanceof It?It.create(e.items.map(t=>Ir(t))):e}var Je=class e extends W{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),r=X.objectKeys(t);return this._cached={shape:t,keys:r},this._cached}_parse(t){if(this._getType(t)!==w.object){let u=this._getOrReturnCtx(t);return b(u,{code:_.invalid_type,expected:w.object,received:u.parsedType}),Z}let{status:n,ctx:o}=this._processInputParams(t),{shape:i,keys:a}=this._getCached(),s=[];if(!(this._def.catchall instanceof gt&&this._def.unknownKeys==="strip"))for(let u in o.data)a.includes(u)||s.push(u);let c=[];for(let u of a){let l=i[u],d=o.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new Be(o,d,o.path,u)),alwaysSet:u in o.data})}if(this._def.catchall instanceof gt){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of s)c.push({key:{status:"valid",value:l},value:{status:"valid",value:o.data[l]}});else if(u==="strict")s.length>0&&(b(o,{code:_.unrecognized_keys,keys:s}),n.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of s){let d=o.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new Be(o,d,o.path,l)),alwaysSet:l in o.data})}}return o.common.async?Promise.resolve().then(async()=>{let u=[];for(let l of c){let d=await l.key,m=await l.value;u.push({key:d,value:m,alwaysSet:l.alwaysSet})}return u}).then(u=>ze.mergeObjectSync(n,u)):ze.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(t){return E.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(r,n)=>{let o=this._def.errorMap?.(r,n).message??n.defaultError;return r.code==="unrecognized_keys"?{message:E.errToObj(t).message??o}:{message:o}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:N.ZodObject})}setKey(t,r){return this.augment({[t]:r})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let r={};for(let n of X.objectKeys(t))t[n]&&this.shape[n]&&(r[n]=this.shape[n]);return new e({...this._def,shape:()=>r})}omit(t){let r={};for(let n of X.objectKeys(this.shape))t[n]||(r[n]=this.shape[n]);return new e({...this._def,shape:()=>r})}deepPartial(){return Ir(this)}partial(t){let r={};for(let n of X.objectKeys(this.shape)){let o=this.shape[n];t&&!t[n]?r[n]=o:r[n]=o.optional()}return new e({...this._def,shape:()=>r})}required(t){let r={};for(let n of X.objectKeys(this.shape))if(t&&!t[n])r[n]=this.shape[n];else{let i=this.shape[n];for(;i instanceof ct;)i=i._def.innerType;r[n]=i}return new e({...this._def,shape:()=>r})}keyof(){return kf(X.objectKeys(this.shape))}};Je.create=(e,t)=>new Je({shape:()=>e,unknownKeys:"strip",catchall:gt.create(),typeName:N.ZodObject,...L(t)});Je.strictCreate=(e,t)=>new Je({shape:()=>e,unknownKeys:"strict",catchall:gt.create(),typeName:N.ZodObject,...L(t)});Je.lazycreate=(e,t)=>new Je({shape:e,unknownKeys:"strip",catchall:gt.create(),typeName:N.ZodObject,...L(t)});var Or=class extends W{_parse(t){let{ctx:r}=this._processInputParams(t),n=this._def.options;function o(i){for(let s of i)if(s.result.status==="valid")return s.result;for(let s of i)if(s.result.status==="dirty")return r.common.issues.push(...s.ctx.common.issues),s.result;let a=i.map(s=>new Ve(s.ctx.common.issues));return b(r,{code:_.invalid_union,unionErrors:a}),Z}if(r.common.async)return Promise.all(n.map(async i=>{let a={...r,common:{...r.common,issues:[]},parent:null};return{result:await i._parseAsync({data:r.data,path:r.path,parent:a}),ctx:a}})).then(o);{let i,a=[];for(let c of n){let u={...r,common:{...r.common,issues:[]},parent:null},l=c._parseSync({data:r.data,path:r.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!i&&(i={result:l,ctx:u}),u.common.issues.length&&a.push(u.common.issues)}if(i)return r.common.issues.push(...i.ctx.common.issues),i.result;let s=a.map(c=>new Ve(c));return b(r,{code:_.invalid_union,unionErrors:s}),Z}}get options(){return this._def.options}};Or.create=(e,t)=>new Or({options:e,typeName:N.ZodUnion,...L(t)});var zt=e=>e instanceof Nr?zt(e.schema):e instanceof ut?zt(e.innerType()):e instanceof Dr?[e.value]:e instanceof Rr?e.options:e instanceof Zr?X.objectValues(e.enum):e instanceof Ar?zt(e._def.innerType):e instanceof Tr?[void 0]:e instanceof Pr?[null]:e instanceof ct?[void 0,...zt(e.unwrap())]:e instanceof Et?[null,...zt(e.unwrap())]:e instanceof ai||e instanceof Cr?zt(e.unwrap()):e instanceof Ur?zt(e._def.innerType):[],Is=class e extends W{_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==w.object)return b(r,{code:_.invalid_type,expected:w.object,received:r.parsedType}),Z;let n=this.discriminator,o=r.data[n],i=this.optionsMap.get(o);return i?r.common.async?i._parseAsync({data:r.data,path:r.path,parent:r}):i._parseSync({data:r.data,path:r.path,parent:r}):(b(r,{code:_.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),Z)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,r,n){let o=new Map;for(let i of r){let a=zt(i.shape[t]);if(!a.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let s of a){if(o.has(s))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(s)}`);o.set(s,i)}}return new e({typeName:N.ZodDiscriminatedUnion,discriminator:t,options:r,optionsMap:o,...L(n)})}};function Es(e,t){let r=wt(e),n=wt(t);if(e===t)return{valid:!0,data:e};if(r===w.object&&n===w.object){let o=X.objectKeys(t),i=X.objectKeys(e).filter(s=>o.indexOf(s)!==-1),a={...e,...t};for(let s of i){let c=Es(e[s],t[s]);if(!c.valid)return{valid:!1};a[s]=c.data}return{valid:!0,data:a}}else if(r===w.array&&n===w.array){if(e.length!==t.length)return{valid:!1};let o=[];for(let i=0;i{if(Ss(i)||Ss(a))return Z;let s=Es(i.value,a.value);return s.valid?((ws(i)||ws(a))&&r.dirty(),{status:r.value,value:s.data}):(b(n,{code:_.invalid_intersection_types}),Z)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([i,a])=>o(i,a)):o(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};jr.create=(e,t,r)=>new jr({left:e,right:t,typeName:N.ZodIntersection,...L(r)});var It=class e extends W{_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.parsedType!==w.array)return b(n,{code:_.invalid_type,expected:w.array,received:n.parsedType}),Z;if(n.data.lengththis._def.items.length&&(b(n,{code:_.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let i=[...n.data].map((a,s)=>{let c=this._def.items[s]||this._def.rest;return c?c._parse(new Be(n,a,n.path,s)):null}).filter(a=>!!a);return n.common.async?Promise.all(i).then(a=>ze.mergeArray(r,a)):ze.mergeArray(r,i)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};It.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new It({items:e,typeName:N.ZodTuple,rest:null,...L(t)})};var Ts=class e extends W{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.parsedType!==w.object)return b(n,{code:_.invalid_type,expected:w.object,received:n.parsedType}),Z;let o=[],i=this._def.keyType,a=this._def.valueType;for(let s in n.data)o.push({key:i._parse(new Be(n,s,n.path,s)),value:a._parse(new Be(n,n.data[s],n.path,s)),alwaysSet:s in n.data});return n.common.async?ze.mergeObjectAsync(r,o):ze.mergeObjectSync(r,o)}get element(){return this._def.valueType}static create(t,r,n){return r instanceof W?new e({keyType:t,valueType:r,typeName:N.ZodRecord,...L(n)}):new e({keyType:Er.create(),valueType:t,typeName:N.ZodRecord,...L(r)})}},In=class extends W{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.parsedType!==w.map)return b(n,{code:_.invalid_type,expected:w.map,received:n.parsedType}),Z;let o=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([s,c],u)=>({key:o._parse(new Be(n,s,n.path,[u,"key"])),value:i._parse(new Be(n,c,n.path,[u,"value"]))}));if(n.common.async){let s=new Map;return Promise.resolve().then(async()=>{for(let c of a){let u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return Z;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),s.set(u.value,l.value)}return{status:r.value,value:s}})}else{let s=new Map;for(let c of a){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return Z;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),s.set(u.value,l.value)}return{status:r.value,value:s}}}};In.create=(e,t,r)=>new In({valueType:t,keyType:e,typeName:N.ZodMap,...L(r)});var En=class e extends W{_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.parsedType!==w.set)return b(n,{code:_.invalid_type,expected:w.set,received:n.parsedType}),Z;let o=this._def;o.minSize!==null&&n.data.sizeo.maxSize.value&&(b(n,{code:_.too_big,maximum:o.maxSize.value,type:"set",inclusive:!0,exact:!1,message:o.maxSize.message}),r.dirty());let i=this._def.valueType;function a(c){let u=new Set;for(let l of c){if(l.status==="aborted")return Z;l.status==="dirty"&&r.dirty(),u.add(l.value)}return{status:r.value,value:u}}let s=[...n.data.values()].map((c,u)=>i._parse(new Be(n,c,n.path,u)));return n.common.async?Promise.all(s).then(c=>a(c)):a(s)}min(t,r){return new e({...this._def,minSize:{value:t,message:E.toString(r)}})}max(t,r){return new e({...this._def,maxSize:{value:t,message:E.toString(r)}})}size(t,r){return this.min(t,r).max(t,r)}nonempty(t){return this.min(1,t)}};En.create=(e,t)=>new En({valueType:e,minSize:null,maxSize:null,typeName:N.ZodSet,...L(t)});var Ps=class e extends W{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==w.function)return b(r,{code:_.invalid_type,expected:w.function,received:r.parsedType}),Z;function n(s,c){return ii({data:s,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,_n(),Mt].filter(u=>!!u),issueData:{code:_.invalid_arguments,argumentsError:c}})}function o(s,c){return ii({data:s,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,_n(),Mt].filter(u=>!!u),issueData:{code:_.invalid_return_type,returnTypeError:c}})}let i={errorMap:r.common.contextualErrorMap},a=r.data;if(this._def.returns instanceof ar){let s=this;return je(async function(...c){let u=new Ve([]),l=await s._def.args.parseAsync(c,i).catch(f=>{throw u.addIssue(n(c,f)),u}),d=await Reflect.apply(a,this,l);return await s._def.returns._def.type.parseAsync(d,i).catch(f=>{throw u.addIssue(o(d,f)),u})})}else{let s=this;return je(function(...c){let u=s._def.args.safeParse(c,i);if(!u.success)throw new Ve([n(c,u.error)]);let l=Reflect.apply(a,this,u.data),d=s._def.returns.safeParse(l,i);if(!d.success)throw new Ve([o(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:It.create(t).rest(Lt.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,r,n){return new e({args:t||It.create([]).rest(Lt.create()),returns:r||Lt.create(),typeName:N.ZodFunction,...L(n)})}},Nr=class extends W{get schema(){return this._def.getter()}_parse(t){let{ctx:r}=this._processInputParams(t);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};Nr.create=(e,t)=>new Nr({getter:e,typeName:N.ZodLazy,...L(t)});var Dr=class extends W{_parse(t){if(t.data!==this._def.value){let r=this._getOrReturnCtx(t);return b(r,{received:r.data,code:_.invalid_literal,expected:this._def.value}),Z}return{status:"valid",value:t.data}}get value(){return this._def.value}};Dr.create=(e,t)=>new Dr({value:e,typeName:N.ZodLiteral,...L(t)});function kf(e,t){return new Rr({values:e,typeName:N.ZodEnum,...L(t)})}var Rr=class e extends W{_parse(t){if(typeof t.data!="string"){let r=this._getOrReturnCtx(t),n=this._def.values;return b(r,{expected:X.joinValues(n),received:r.parsedType,code:_.invalid_type}),Z}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let r=this._getOrReturnCtx(t),n=this._def.values;return b(r,{received:r.data,code:_.invalid_enum_value,options:n}),Z}return je(t.data)}get options(){return this._def.values}get enum(){let t={};for(let r of this._def.values)t[r]=r;return t}get Values(){let t={};for(let r of this._def.values)t[r]=r;return t}get Enum(){let t={};for(let r of this._def.values)t[r]=r;return t}extract(t,r=this._def){return e.create(t,{...this._def,...r})}exclude(t,r=this._def){return e.create(this.options.filter(n=>!t.includes(n)),{...this._def,...r})}};Rr.create=kf;var Zr=class extends W{_parse(t){let r=X.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(t);if(n.parsedType!==w.string&&n.parsedType!==w.number){let o=X.objectValues(r);return b(n,{expected:X.joinValues(o),received:n.parsedType,code:_.invalid_type}),Z}if(this._cache||(this._cache=new Set(X.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let o=X.objectValues(r);return b(n,{received:n.data,code:_.invalid_enum_value,options:o}),Z}return je(t.data)}get enum(){return this._def.values}};Zr.create=(e,t)=>new Zr({values:e,typeName:N.ZodNativeEnum,...L(t)});var ar=class extends W{unwrap(){return this._def.type}_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==w.promise&&r.common.async===!1)return b(r,{code:_.invalid_type,expected:w.promise,received:r.parsedType}),Z;let n=r.parsedType===w.promise?r.data:Promise.resolve(r.data);return je(n.then(o=>this._def.type.parseAsync(o,{path:r.path,errorMap:r.common.contextualErrorMap})))}};ar.create=(e,t)=>new ar({type:e,typeName:N.ZodPromise,...L(t)});var ut=class extends W{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===N.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:r,ctx:n}=this._processInputParams(t),o=this._def.effect||null,i={addIssue:a=>{b(n,a),a.fatal?r.abort():r.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),o.type==="preprocess"){let a=o.transform(n.data,i);if(n.common.async)return Promise.resolve(a).then(async s=>{if(r.value==="aborted")return Z;let c=await this._def.schema._parseAsync({data:s,path:n.path,parent:n});return c.status==="aborted"?Z:c.status==="dirty"?zr(c.value):r.value==="dirty"?zr(c.value):c});{if(r.value==="aborted")return Z;let s=this._def.schema._parseSync({data:a,path:n.path,parent:n});return s.status==="aborted"?Z:s.status==="dirty"?zr(s.value):r.value==="dirty"?zr(s.value):s}}if(o.type==="refinement"){let a=s=>{let c=o.refinement(s,i);if(n.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return s};if(n.common.async===!1){let s=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?Z:(s.status==="dirty"&&r.dirty(),a(s.value),{status:r.value,value:s.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(s=>s.status==="aborted"?Z:(s.status==="dirty"&&r.dirty(),a(s.value).then(()=>({status:r.value,value:s.value}))))}if(o.type==="transform")if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!ir(a))return Z;let s=o.transform(a.value,i);if(s instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:s}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>ir(a)?Promise.resolve(o.transform(a.value,i)).then(s=>({status:r.value,value:s})):Z);X.assertNever(o)}};ut.create=(e,t,r)=>new ut({schema:e,typeName:N.ZodEffects,effect:t,...L(r)});ut.createWithPreprocess=(e,t,r)=>new ut({schema:t,effect:{type:"preprocess",transform:e},typeName:N.ZodEffects,...L(r)});var ct=class extends W{_parse(t){return this._getType(t)===w.undefined?je(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ct.create=(e,t)=>new ct({innerType:e,typeName:N.ZodOptional,...L(t)});var Et=class extends W{_parse(t){return this._getType(t)===w.null?je(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};Et.create=(e,t)=>new Et({innerType:e,typeName:N.ZodNullable,...L(t)});var Ar=class extends W{_parse(t){let{ctx:r}=this._processInputParams(t),n=r.data;return r.parsedType===w.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};Ar.create=(e,t)=>new Ar({innerType:e,typeName:N.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...L(t)});var Ur=class extends W{_parse(t){let{ctx:r}=this._processInputParams(t),n={...r,common:{...r.common,issues:[]}},o=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return yn(o)?o.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Ve(n.common.issues)},input:n.data})})):{status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new Ve(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Ur.create=(e,t)=>new Ur({innerType:e,typeName:N.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...L(t)});var Tn=class extends W{_parse(t){if(this._getType(t)!==w.nan){let n=this._getOrReturnCtx(t);return b(n,{code:_.invalid_type,expected:w.nan,received:n.parsedType}),Z}return{status:"valid",value:t.data}}};Tn.create=e=>new Tn({typeName:N.ZodNaN,...L(e)});var BT=Symbol("zod_brand"),ai=class extends W{_parse(t){let{ctx:r}=this._processInputParams(t),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},si=class e extends W{_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.common.async)return(async()=>{let i=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?Z:i.status==="dirty"?(r.dirty(),zr(i.value)):this._def.out._parseAsync({data:i.value,path:n.path,parent:n})})();{let o=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return o.status==="aborted"?Z:o.status==="dirty"?(r.dirty(),{status:"dirty",value:o.value}):this._def.out._parseSync({data:o.value,path:n.path,parent:n})}}static create(t,r){return new e({in:t,out:r,typeName:N.ZodPipeline})}},Cr=class extends W{_parse(t){let r=this._def.innerType._parse(t),n=o=>(ir(o)&&(o.value=Object.freeze(o.value)),o);return yn(r)?r.then(o=>n(o)):n(r)}unwrap(){return this._def.innerType}};Cr.create=(e,t)=>new Cr({innerType:e,typeName:N.ZodReadonly,...L(t)});var XT={object:Je.lazycreate},N;(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(N||(N={}));var YT=Er.create,QT=$n.create,eP=Tn.create,tP=bn.create,rP=xn.create,nP=kn.create,oP=Sn.create,iP=Tr.create,aP=Pr.create,sP=wn.create,cP=Lt.create,uP=gt.create,lP=zn.create,dP=qt.create,u$=Je.create,pP=Je.strictCreate,fP=Or.create,mP=Is.create,hP=jr.create,gP=It.create,vP=Ts.create,_P=In.create,yP=En.create,$P=Ps.create,bP=Nr.create,xP=Dr.create,kP=Rr.create,SP=Zr.create,wP=ar.create,zP=ut.create,IP=ct.create,EP=Et.create,TP=ut.createWithPreprocess,PP=si.create;var Sf=Object.freeze({status:"aborted"});function p(e,t,r){function n(s,c){if(s._zod||Object.defineProperty(s,"_zod",{value:{def:c,constr:a,traits:new Set},enumerable:!1}),s._zod.traits.has(e))return;s._zod.traits.add(e),t(s,c);let u=a.prototype,l=Object.keys(u);for(let d=0;dr?.Parent&&s instanceof r.Parent?!0:s?._zod?.traits?.has(e)}),Object.defineProperty(a,"name",{value:e}),a}var Os=Symbol("zod_brand"),vt=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},sr=class extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}},ci={};function ye(e){return e&&Object.assign(ci,e),ci}var y={};vn(y,{BIGINT_FORMAT_RANGES:()=>Ms,Class:()=>Ns,NUMBER_FORMAT_RANGES:()=>Cs,aborted:()=>Kt,allowsEval:()=>Zs,assert:()=>g$,assertEqual:()=>p$,assertIs:()=>m$,assertNever:()=>h$,assertNotEqual:()=>f$,assignProp:()=>Vt,base64ToUint8Array:()=>If,base64urlToUint8Array:()=>N$,cached:()=>Lr,captureStackTrace:()=>li,cleanEnum:()=>j$,cleanRegex:()=>jn,clone:()=>Ne,cloneDef:()=>_$,createTransparentProxy:()=>S$,defineLazy:()=>V,esc:()=>ui,escapeRegex:()=>Xe,extend:()=>I$,finalizeIssue:()=>Ce,floatSafeRemainder:()=>Ds,getElementAtPath:()=>y$,getEnumValues:()=>On,getLengthableOrigin:()=>Rn,getParsedType:()=>k$,getSizableOrigin:()=>Dn,hexToUint8Array:()=>R$,isObject:()=>cr,isPlainObject:()=>Jt,issue:()=>qr,joinValues:()=>D,jsonStringifyReplacer:()=>Mr,merge:()=>T$,mergeDefs:()=>Tt,normalizeParams:()=>k,nullish:()=>Ft,numKeys:()=>x$,objectClone:()=>v$,omit:()=>z$,optionalKeys:()=>Us,parsedType:()=>A,partial:()=>P$,pick:()=>w$,prefixIssues:()=>Ke,primitiveTypes:()=>As,promiseAllObject:()=>$$,propertyKeyTypes:()=>Nn,randomString:()=>b$,required:()=>O$,safeExtend:()=>E$,shallowClone:()=>zf,slugify:()=>Rs,stringifyPrimitive:()=>R,uint8ArrayToBase64:()=>Ef,uint8ArrayToBase64url:()=>D$,uint8ArrayToHex:()=>Z$,unwrapMessage:()=>Pn});function p$(e){return e}function f$(e){return e}function m$(e){}function h$(e){throw new Error("Unexpected value in exhaustive check")}function g$(e){}function On(e){let t=Object.values(e).filter(n=>typeof n=="number");return Object.entries(e).filter(([n,o])=>t.indexOf(+n)===-1).map(([n,o])=>o)}function D(e,t="|"){return e.map(r=>R(r)).join(t)}function Mr(e,t){return typeof t=="bigint"?t.toString():t}function Lr(e){return{get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Ft(e){return e==null}function jn(e){let t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function Ds(e,t){let r=(e.toString().split(".")[1]||"").length,n=t.toString(),o=(n.split(".")[1]||"").length;if(o===0&&/\d?e-\d?/.test(n)){let c=n.match(/\d?e-(\d?)/);c?.[1]&&(o=Number.parseInt(c[1]))}let i=r>o?r:o,a=Number.parseInt(e.toFixed(i).replace(".","")),s=Number.parseInt(t.toFixed(i).replace(".",""));return a%s/10**i}var wf=Symbol("evaluating");function V(e,t,r){let n;Object.defineProperty(e,t,{get(){if(n!==wf)return n===void 0&&(n=wf,n=r()),n},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function v$(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function Vt(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function Tt(...e){let t={};for(let r of e){let n=Object.getOwnPropertyDescriptors(r);Object.assign(t,n)}return Object.defineProperties({},t)}function _$(e){return Tt(e._zod.def)}function y$(e,t){return t?t.reduce((r,n)=>r?.[n],e):e}function $$(e){let t=Object.keys(e),r=t.map(n=>e[n]);return Promise.all(r).then(n=>{let o={};for(let i=0;i{};function cr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Zs=Lr(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});function Jt(e){if(cr(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!="function")return!0;let r=t.prototype;return!(cr(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function zf(e){return Jt(e)?{...e}:Array.isArray(e)?[...e]:e}function x$(e){let t=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}var k$=e=>{let t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},Nn=new Set(["string","number","symbol"]),As=new Set(["string","number","bigint","boolean","symbol","undefined"]);function Xe(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ne(e,t,r){let n=new e._zod.constr(t??e._zod.def);return(!t||r?.parent)&&(n._zod.parent=e),n}function k(e){let t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function S$(e){let t;return new Proxy({},{get(r,n,o){return t??(t=e()),Reflect.get(t,n,o)},set(r,n,o,i){return t??(t=e()),Reflect.set(t,n,o,i)},has(r,n){return t??(t=e()),Reflect.has(t,n)},deleteProperty(r,n){return t??(t=e()),Reflect.deleteProperty(t,n)},ownKeys(r){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(r,n){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,n)},defineProperty(r,n,o){return t??(t=e()),Reflect.defineProperty(t,n,o)}})}function R(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function Us(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}var Cs={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},Ms={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function w$(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let i=Tt(e._zod.def,{get shape(){let a={};for(let s in t){if(!(s in r.shape))throw new Error(`Unrecognized key: "${s}"`);t[s]&&(a[s]=r.shape[s])}return Vt(this,"shape",a),a},checks:[]});return Ne(e,i)}function z$(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let i=Tt(e._zod.def,{get shape(){let a={...e._zod.def.shape};for(let s in t){if(!(s in r.shape))throw new Error(`Unrecognized key: "${s}"`);t[s]&&delete a[s]}return Vt(this,"shape",a),a},checks:[]});return Ne(e,i)}function I$(e,t){if(!Jt(t))throw new Error("Invalid input to extend: expected a plain object");let r=e._zod.def.checks;if(r&&r.length>0){let i=e._zod.def.shape;for(let a in t)if(Object.getOwnPropertyDescriptor(i,a)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let o=Tt(e._zod.def,{get shape(){let i={...e._zod.def.shape,...t};return Vt(this,"shape",i),i}});return Ne(e,o)}function E$(e,t){if(!Jt(t))throw new Error("Invalid input to safeExtend: expected a plain object");let r=Tt(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Vt(this,"shape",n),n}});return Ne(e,r)}function T$(e,t){let r=Tt(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return Vt(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:[]});return Ne(e,r)}function P$(e,t,r){let o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let a=Tt(t._zod.def,{get shape(){let s=t._zod.def.shape,c={...s};if(r)for(let u in r){if(!(u in s))throw new Error(`Unrecognized key: "${u}"`);r[u]&&(c[u]=e?new e({type:"optional",innerType:s[u]}):s[u])}else for(let u in s)c[u]=e?new e({type:"optional",innerType:s[u]}):s[u];return Vt(this,"shape",c),c},checks:[]});return Ne(t,a)}function O$(e,t,r){let n=Tt(t._zod.def,{get shape(){let o=t._zod.def.shape,i={...o};if(r)for(let a in r){if(!(a in i))throw new Error(`Unrecognized key: "${a}"`);r[a]&&(i[a]=new e({type:"nonoptional",innerType:o[a]}))}else for(let a in o)i[a]=new e({type:"nonoptional",innerType:o[a]});return Vt(this,"shape",i),i}});return Ne(t,n)}function Kt(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function Pn(e){return typeof e=="string"?e:e?.message}function Ce(e,t,r){let n={...e,path:e.path??[]};if(!e.message){let o=Pn(e.inst?._zod.def?.error?.(e))??Pn(t?.error?.(e))??Pn(r.customError?.(e))??Pn(r.localeError?.(e))??"Invalid input";n.message=o}return delete n.inst,delete n.continue,t?.reportInput||delete n.input,n}function Dn(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function Rn(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function A(e){let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"nan":"number";case"object":{if(e===null)return"null";if(Array.isArray(e))return"array";let r=e;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return t}function qr(...e){let[t,r,n]=e;return typeof t=="string"?{message:t,code:"custom",input:r,inst:n}:{...t}}function j$(e){return Object.entries(e).filter(([t,r])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function If(e){let t=atob(e),r=new Uint8Array(t.length);for(let n=0;nt.toString(16).padStart(2,"0")).join("")}var Ns=class{constructor(...t){}};var Tf=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,Mr,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},di=p("$ZodError",Tf),Zn=p("$ZodError",Tf,{Parent:Error});function pi(e,t=r=>r.message){let r={},n=[];for(let o of e.issues)o.path.length>0?(r[o.path[0]]=r[o.path[0]]||[],r[o.path[0]].push(t(o))):n.push(t(o));return{formErrors:n,fieldErrors:r}}function fi(e,t=r=>r.message){let r={_errors:[]},n=o=>{for(let i of o.issues)if(i.code==="invalid_union"&&i.errors.length)i.errors.map(a=>n({issues:a}));else if(i.code==="invalid_key")n({issues:i.issues});else if(i.code==="invalid_element")n({issues:i.issues});else if(i.path.length===0)r._errors.push(t(i));else{let a=r,s=0;for(;s(t,r,n,o)=>{let i=n?Object.assign(n,{async:!1}):{async:!1},a=t._zod.run({value:r,issues:[]},i);if(a instanceof Promise)throw new vt;if(a.issues.length){let s=new(o?.Err??e)(a.issues.map(c=>Ce(c,i,ye())));throw li(s,o?.callee),s}return a.value},Un=An(Zn),Cn=e=>async(t,r,n,o)=>{let i=n?Object.assign(n,{async:!0}):{async:!0},a=t._zod.run({value:r,issues:[]},i);if(a instanceof Promise&&(a=await a),a.issues.length){let s=new(o?.Err??e)(a.issues.map(c=>Ce(c,i,ye())));throw li(s,o?.callee),s}return a.value},Mn=Cn(Zn),Ln=e=>(t,r,n)=>{let o=n?{...n,async:!1}:{async:!1},i=t._zod.run({value:r,issues:[]},o);if(i instanceof Promise)throw new vt;return i.issues.length?{success:!1,error:new(e??di)(i.issues.map(a=>Ce(a,o,ye())))}:{success:!0,data:i.value}},Fr=Ln(Zn),qn=e=>async(t,r,n)=>{let o=n?Object.assign(n,{async:!0}):{async:!0},i=t._zod.run({value:r,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(a=>Ce(a,o,ye())))}:{success:!0,data:i.value}},Fn=qn(Zn),Pf=e=>(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return An(e)(t,r,o)};var Of=e=>(t,r,n)=>An(e)(t,r,n);var jf=e=>async(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Cn(e)(t,r,o)};var Nf=e=>async(t,r,n)=>Cn(e)(t,r,n);var Df=e=>(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Ln(e)(t,r,o)};var Rf=e=>(t,r,n)=>Ln(e)(t,r,n);var Zf=e=>async(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return qn(e)(t,r,o)};var Af=e=>async(t,r,n)=>qn(e)(t,r,n);var Ye={};vn(Ye,{base64:()=>rc,base64url:()=>mi,bigint:()=>cc,boolean:()=>lc,browserEmail:()=>J$,cidrv4:()=>ec,cidrv6:()=>tc,cuid:()=>Ls,cuid2:()=>qs,date:()=>oc,datetime:()=>ac,domain:()=>G$,duration:()=>Ws,e164:()=>nc,email:()=>Hs,emoji:()=>Bs,extendedDuration:()=>U$,guid:()=>Gs,hex:()=>H$,hostname:()=>W$,html5Email:()=>q$,idnEmail:()=>V$,integer:()=>uc,ipv4:()=>Xs,ipv6:()=>Ys,ksuid:()=>Js,lowercase:()=>fc,mac:()=>Qs,md5_base64:()=>X$,md5_base64url:()=>Y$,md5_hex:()=>B$,nanoid:()=>Ks,null:()=>dc,number:()=>hi,rfc5322Email:()=>F$,sha1_base64:()=>eb,sha1_base64url:()=>tb,sha1_hex:()=>Q$,sha256_base64:()=>nb,sha256_base64url:()=>ob,sha256_hex:()=>rb,sha384_base64:()=>ab,sha384_base64url:()=>sb,sha384_hex:()=>ib,sha512_base64:()=>ub,sha512_base64url:()=>lb,sha512_hex:()=>cb,string:()=>sc,time:()=>ic,ulid:()=>Fs,undefined:()=>pc,unicodeEmail:()=>Uf,uppercase:()=>mc,uuid:()=>ur,uuid4:()=>C$,uuid6:()=>M$,uuid7:()=>L$,xid:()=>Vs});var Ls=/^[cC][^\s-]{8,}$/,qs=/^[0-9a-z]+$/,Fs=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Vs=/^[0-9a-vA-V]{20}$/,Js=/^[A-Za-z0-9]{27}$/,Ks=/^[a-zA-Z0-9_-]{21}$/,Ws=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,U$=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Gs=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,ur=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,C$=ur(4),M$=ur(6),L$=ur(7),Hs=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,q$=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,F$=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,Uf=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,V$=Uf,J$=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,K$="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Bs(){return new RegExp(K$,"u")}var Xs=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Ys=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Qs=e=>{let t=Xe(e??":");return new RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}$`)},ec=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,tc=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,rc=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,mi=/^[A-Za-z0-9_-]*$/,W$=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,G$=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,nc=/^\+[1-9]\d{6,14}$/,Cf="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",oc=new RegExp(`^${Cf}$`);function Mf(e){let t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function ic(e){return new RegExp(`^${Mf(e)}$`)}function ac(e){let t=Mf({precision:e.precision}),r=["Z"];e.local&&r.push(""),e.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let n=`${t}(?:${r.join("|")})`;return new RegExp(`^${Cf}T(?:${n})$`)}var sc=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},cc=/^-?\d+n?$/,uc=/^-?\d+$/,hi=/^-?\d+(?:\.\d+)?$/,lc=/^(?:true|false)$/i,dc=/^null$/i;var pc=/^undefined$/i;var fc=/^[^A-Z]*$/,mc=/^[^a-z]*$/,H$=/^[0-9a-fA-F]*$/;function Vn(e,t){return new RegExp(`^[A-Za-z0-9+/]{${e}}${t}$`)}function Jn(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}var B$=/^[0-9a-fA-F]{32}$/,X$=Vn(22,"=="),Y$=Jn(22),Q$=/^[0-9a-fA-F]{40}$/,eb=Vn(27,"="),tb=Jn(27),rb=/^[0-9a-fA-F]{64}$/,nb=Vn(43,"="),ob=Jn(43),ib=/^[0-9a-fA-F]{96}$/,ab=Vn(64,""),sb=Jn(64),cb=/^[0-9a-fA-F]{128}$/,ub=Vn(86,"=="),lb=Jn(86);var se=p("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),qf={number:"number",bigint:"bigint",object:"date"},hc=p("$ZodCheckLessThan",(e,t)=>{se.init(e,t);let r=qf[typeof t.value];e._zod.onattach.push(n=>{let o=n._zod.bag,i=(t.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value{(t.inclusive?n.value<=t.value:n.value{se.init(e,t);let r=qf[typeof t.value];e._zod.onattach.push(n=>{let o=n._zod.bag,i=(t.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>i&&(t.inclusive?o.minimum=t.value:o.exclusiveMinimum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Ff=p("$ZodCheckMultipleOf",(e,t)=>{se.init(e,t),e._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=r=>{if(typeof r.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%t.value===BigInt(0):Ds(r.value,t.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:t.value,input:r.value,inst:e,continue:!t.abort})}}),Vf=p("$ZodCheckNumberFormat",(e,t)=>{se.init(e,t),t.format=t.format||"float64";let r=t.format?.includes("int"),n=r?"int":"number",[o,i]=Cs[t.format];e._zod.onattach.push(a=>{let s=a._zod.bag;s.format=t.format,s.minimum=o,s.maximum=i,r&&(s.pattern=uc)}),e._zod.check=a=>{let s=a.value;if(r){if(!Number.isInteger(s)){a.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?a.issues.push({input:s,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}):a.issues.push({input:s,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});return}}si&&a.issues.push({origin:"number",input:s,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!t.abort})}}),Jf=p("$ZodCheckBigIntFormat",(e,t)=>{se.init(e,t);let[r,n]=Ms[t.format];e._zod.onattach.push(o=>{let i=o._zod.bag;i.format=t.format,i.minimum=r,i.maximum=n}),e._zod.check=o=>{let i=o.value;in&&o.issues.push({origin:"bigint",input:i,code:"too_big",maximum:n,inclusive:!0,inst:e,continue:!t.abort})}}),Kf=p("$ZodCheckMaxSize",(e,t)=>{var r;se.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!Ft(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{let o=n.value;o.size<=t.maximum||n.issues.push({origin:Dn(o),code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Wf=p("$ZodCheckMinSize",(e,t)=>{var r;se.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!Ft(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let o=n.value;o.size>=t.minimum||n.issues.push({origin:Dn(o),code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Gf=p("$ZodCheckSizeEquals",(e,t)=>{var r;se.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!Ft(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=t.size,o.maximum=t.size,o.size=t.size}),e._zod.check=n=>{let o=n.value,i=o.size;if(i===t.size)return;let a=i>t.size;n.issues.push({origin:Dn(o),...a?{code:"too_big",maximum:t.size}:{code:"too_small",minimum:t.size},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Hf=p("$ZodCheckMaxLength",(e,t)=>{var r;se.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!Ft(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{let o=n.value;if(o.length<=t.maximum)return;let a=Rn(o);n.issues.push({origin:a,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Bf=p("$ZodCheckMinLength",(e,t)=>{var r;se.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!Ft(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let o=n.value;if(o.length>=t.minimum)return;let a=Rn(o);n.issues.push({origin:a,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Xf=p("$ZodCheckLengthEquals",(e,t)=>{var r;se.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!Ft(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=n=>{let o=n.value,i=o.length;if(i===t.length)return;let a=Rn(o),s=i>t.length;n.issues.push({origin:a,...s?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Kn=p("$ZodCheckStringFormat",(e,t)=>{var r,n;se.init(e,t),e._zod.onattach.push(o=>{let i=o._zod.bag;i.format=t.format,t.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(t.pattern))}),t.pattern?(r=e._zod).check??(r.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(n=e._zod).check??(n.check=()=>{})}),Yf=p("$ZodCheckRegex",(e,t)=>{Kn.init(e,t),e._zod.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Qf=p("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=fc),Kn.init(e,t)}),em=p("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=mc),Kn.init(e,t)}),tm=p("$ZodCheckIncludes",(e,t)=>{se.init(e,t);let r=Xe(t.includes),n=new RegExp(typeof t.position=="number"?`^.{${t.position}}${r}`:r);t.pattern=n,e._zod.onattach.push(o=>{let i=o._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),rm=p("$ZodCheckStartsWith",(e,t)=>{se.init(e,t);let r=new RegExp(`^${Xe(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),nm=p("$ZodCheckEndsWith",(e,t)=>{se.init(e,t);let r=new RegExp(`.*${Xe(t.suffix)}$`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}});function Lf(e,t,r){e.issues.length&&t.issues.push(...Ke(r,e.issues))}var om=p("$ZodCheckProperty",(e,t)=>{se.init(e,t),e._zod.check=r=>{let n=t.schema._zod.run({value:r.value[t.property],issues:[]},{});if(n instanceof Promise)return n.then(o=>Lf(o,r,t.property));Lf(n,r,t.property)}}),im=p("$ZodCheckMimeType",(e,t)=>{se.init(e,t);let r=new Set(t.mime);e._zod.onattach.push(n=>{n._zod.bag.mime=t.mime}),e._zod.check=n=>{r.has(n.value.type)||n.issues.push({code:"invalid_value",values:t.mime,input:n.value.type,inst:e,continue:!t.abort})}}),am=p("$ZodCheckOverwrite",(e,t)=>{se.init(e,t),e._zod.check=r=>{r.value=t.tx(r.value)}});var gi=class{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}let n=t.split(` +`).filter(a=>a),o=Math.min(...n.map(a=>a.length-a.trimStart().length)),i=n.map(a=>a.slice(o)).map(a=>" ".repeat(this.indent*2)+a);for(let a of i)this.content.push(a)}compile(){let t=Function,r=this?.args,o=[...(this?.content??[""]).map(i=>` ${i}`)];return new t(...r,o.join(` +`))}};var cm={major:4,minor:3,patch:4};var M=p("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=cm;let n=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&n.unshift(e);for(let o of n)for(let i of o._zod.onattach)i(e);if(n.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let o=(a,s,c)=>{let u=Kt(a),l;for(let d of s){if(d._zod.def.when){if(!d._zod.def.when(a))continue}else if(u)continue;let m=a.issues.length,f=d._zod.check(a);if(f instanceof Promise&&c?.async===!1)throw new vt;if(l||f instanceof Promise)l=(l??Promise.resolve()).then(async()=>{await f,a.issues.length!==m&&(u||(u=Kt(a,m)))});else{if(a.issues.length===m)continue;u||(u=Kt(a,m))}}return l?l.then(()=>a):a},i=(a,s,c)=>{if(Kt(a))return a.aborted=!0,a;let u=o(s,n,c);if(u instanceof Promise){if(c.async===!1)throw new vt;return u.then(l=>e._zod.parse(l,c))}return e._zod.parse(u,c)};e._zod.run=(a,s)=>{if(s.skipChecks)return e._zod.parse(a,s);if(s.direction==="backward"){let u=e._zod.parse({value:a.value,issues:[]},{...s,skipChecks:!0});return u instanceof Promise?u.then(l=>i(l,a,s)):i(u,a,s)}let c=e._zod.parse(a,s);if(c instanceof Promise){if(s.async===!1)throw new vt;return c.then(u=>o(u,n,s))}return o(c,n,s)}}V(e,"~standard",()=>({validate:o=>{try{let i=Fr(e,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return Fn(e,o).then(a=>a.success?{value:a.data}:{issues:a.error?.issues})}},vendor:"zod",version:1}))}),lr=p("$ZodString",(e,t)=>{M.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??sc(e._zod.bag),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),oe=p("$ZodStringFormat",(e,t)=>{Kn.init(e,t),lr.init(e,t)}),_c=p("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Gs),oe.init(e,t)}),yc=p("$ZodUUID",(e,t)=>{if(t.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(n===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=ur(n))}else t.pattern??(t.pattern=ur());oe.init(e,t)}),$c=p("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Hs),oe.init(e,t)}),bc=p("$ZodURL",(e,t)=>{oe.init(e,t),e._zod.check=r=>{try{let n=r.value.trim(),o=new URL(n);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:r.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:r.value,inst:e,continue:!t.abort})),t.normalize?r.value=o.href:r.value=n;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort})}}}),xc=p("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Bs()),oe.init(e,t)}),kc=p("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=Ks),oe.init(e,t)}),Sc=p("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Ls),oe.init(e,t)}),wc=p("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=qs),oe.init(e,t)}),zc=p("$ZodULID",(e,t)=>{t.pattern??(t.pattern=Fs),oe.init(e,t)}),Ic=p("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Vs),oe.init(e,t)}),Ec=p("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Js),oe.init(e,t)}),Tc=p("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=ac(t)),oe.init(e,t)}),Pc=p("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=oc),oe.init(e,t)}),Oc=p("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=ic(t)),oe.init(e,t)}),jc=p("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Ws),oe.init(e,t)}),Nc=p("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Xs),oe.init(e,t),e._zod.bag.format="ipv4"}),Dc=p("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Ys),oe.init(e,t),e._zod.bag.format="ipv6",e._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!t.abort})}}}),Rc=p("$ZodMAC",(e,t)=>{t.pattern??(t.pattern=Qs(t.delimiter)),oe.init(e,t),e._zod.bag.format="mac"}),Zc=p("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=ec),oe.init(e,t)}),Ac=p("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=tc),oe.init(e,t),e._zod.check=r=>{let n=r.value.split("/");try{if(n.length!==2)throw new Error;let[o,i]=n;if(!i)throw new Error;let a=Number(i);if(`${a}`!==i)throw new Error;if(a<0||a>128)throw new Error;new URL(`http://[${o}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}}});function $m(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}var Uc=p("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=rc),oe.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=r=>{$m(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}});function db(e){if(!mi.test(e))return!1;let t=e.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=t.padEnd(Math.ceil(t.length/4)*4,"=");return $m(r)}var Cc=p("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=mi),oe.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=r=>{db(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),Mc=p("$ZodE164",(e,t)=>{t.pattern??(t.pattern=nc),oe.init(e,t)});function pb(e,t=null){try{let r=e.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let o=JSON.parse(atob(n));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}}var Lc=p("$ZodJWT",(e,t)=>{oe.init(e,t),e._zod.check=r=>{pb(r.value,t.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}}),qc=p("$ZodCustomStringFormat",(e,t)=>{oe.init(e,t),e._zod.check=r=>{t.fn(r.value)||r.issues.push({code:"invalid_format",format:t.format,input:r.value,inst:e,continue:!t.abort})}}),xi=p("$ZodNumber",(e,t)=>{M.init(e,t),e._zod.pattern=e._zod.bag.pattern??hi,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch{}let o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;let i=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...i?{received:i}:{}}),r}}),Fc=p("$ZodNumberFormat",(e,t)=>{Vf.init(e,t),xi.init(e,t)}),Wn=p("$ZodBoolean",(e,t)=>{M.init(e,t),e._zod.pattern=lc,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=!!r.value}catch{}let o=r.value;return typeof o=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:e}),r}}),ki=p("$ZodBigInt",(e,t)=>{M.init(e,t),e._zod.pattern=cc,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=BigInt(r.value)}catch{}return typeof r.value=="bigint"||r.issues.push({expected:"bigint",code:"invalid_type",input:r.value,inst:e}),r}}),Vc=p("$ZodBigIntFormat",(e,t)=>{Jf.init(e,t),ki.init(e,t)}),Jc=p("$ZodSymbol",(e,t)=>{M.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return typeof o=="symbol"||r.issues.push({expected:"symbol",code:"invalid_type",input:o,inst:e}),r}}),Kc=p("$ZodUndefined",(e,t)=>{M.init(e,t),e._zod.pattern=pc,e._zod.values=new Set([void 0]),e._zod.optin="optional",e._zod.optout="optional",e._zod.parse=(r,n)=>{let o=r.value;return typeof o>"u"||r.issues.push({expected:"undefined",code:"invalid_type",input:o,inst:e}),r}}),Wc=p("$ZodNull",(e,t)=>{M.init(e,t),e._zod.pattern=dc,e._zod.values=new Set([null]),e._zod.parse=(r,n)=>{let o=r.value;return o===null||r.issues.push({expected:"null",code:"invalid_type",input:o,inst:e}),r}}),Gc=p("$ZodAny",(e,t)=>{M.init(e,t),e._zod.parse=r=>r}),Hc=p("$ZodUnknown",(e,t)=>{M.init(e,t),e._zod.parse=r=>r}),Bc=p("$ZodNever",(e,t)=>{M.init(e,t),e._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r)}),Xc=p("$ZodVoid",(e,t)=>{M.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return typeof o>"u"||r.issues.push({expected:"void",code:"invalid_type",input:o,inst:e}),r}}),Yc=p("$ZodDate",(e,t)=>{M.init(e,t),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=new Date(r.value)}catch{}let o=r.value,i=o instanceof Date;return i&&!Number.isNaN(o.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:o,...i?{received:"Invalid Date"}:{},inst:e}),r}});function um(e,t,r){e.issues.length&&t.issues.push(...Ke(r,e.issues)),t.value[r]=e.value}var Qc=p("$ZodArray",(e,t)=>{M.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),r;r.value=Array(o.length);let i=[];for(let a=0;aum(u,r,a))):um(c,r,a)}return i.length?Promise.all(i).then(()=>r):r}});function bi(e,t,r,n,o){if(e.issues.length){if(o&&!(r in n))return;t.issues.push(...Ke(r,e.issues))}e.value===void 0?r in n&&(t.value[r]=void 0):t.value[r]=e.value}function bm(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);let r=Us(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(r)}}function xm(e,t,r,n,o,i){let a=[],s=o.keySet,c=o.catchall._zod,u=c.def.type,l=c.optout==="optional";for(let d in t){if(s.has(d))continue;if(u==="never"){a.push(d);continue}let m=c.run({value:t[d],issues:[]},n);m instanceof Promise?e.push(m.then(f=>bi(f,r,d,t,l))):bi(m,r,d,t,l)}return a.length&&r.issues.push({code:"unrecognized_keys",keys:a,input:t,inst:i}),e.length?Promise.all(e).then(()=>r):r}var km=p("$ZodObject",(e,t)=>{if(M.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){let s=t.shape;Object.defineProperty(t,"shape",{get:()=>{let c={...s};return Object.defineProperty(t,"shape",{value:c}),c}})}let n=Lr(()=>bm(t));V(e._zod,"propValues",()=>{let s=t.shape,c={};for(let u in s){let l=s[u]._zod;if(l.values){c[u]??(c[u]=new Set);for(let d of l.values)c[u].add(d)}}return c});let o=cr,i=t.catchall,a;e._zod.parse=(s,c)=>{a??(a=n.value);let u=s.value;if(!o(u))return s.issues.push({expected:"object",code:"invalid_type",input:u,inst:e}),s;s.value={};let l=[],d=a.shape;for(let m of a.keys){let f=d[m],g=f._zod.optout==="optional",v=f._zod.run({value:u[m],issues:[]},c);v instanceof Promise?l.push(v.then($=>bi($,s,m,u,g))):bi(v,s,m,u,g)}return i?xm(l,u,s,c,n.value,e):l.length?Promise.all(l).then(()=>s):s}}),Sm=p("$ZodObjectJIT",(e,t)=>{km.init(e,t);let r=e._zod.parse,n=Lr(()=>bm(t)),o=m=>{let f=new gi(["shape","payload","ctx"]),g=n.value,v=I=>{let U=ui(I);return`shape[${U}]._zod.run({ value: input[${U}], issues: [] }, ctx)`};f.write("const input = payload.value;");let $=Object.create(null),x=0;for(let I of g.keys)$[I]=`key_${x++}`;f.write("const newResult = {};");for(let I of g.keys){let U=$[I],j=ui(I),at=m[I]?._zod?.optout==="optional";f.write(`const ${U} = ${v(I)};`),at?f.write(` + if (${U}.issues.length) { + if (${j} in input) { + payload.issues = payload.issues.concat(${U}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${j}, ...iss.path] : [${j}] + }))); + } + } + + if (${U}.value === undefined) { + if (${j} in input) { + newResult[${j}] = undefined; + } + } else { + newResult[${j}] = ${U}.value; + } + + `):f.write(` + if (${U}.issues.length) { + payload.issues = payload.issues.concat(${U}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${j}, ...iss.path] : [${j}] + }))); + } + + if (${U}.value === undefined) { + if (${j} in input) { + newResult[${j}] = undefined; + } + } else { + newResult[${j}] = ${U}.value; + } + + `)}f.write("payload.value = newResult;"),f.write("return payload;");let O=f.compile();return(I,U)=>O(m,I,U)},i,a=cr,s=!ci.jitless,u=s&&Zs.value,l=t.catchall,d;e._zod.parse=(m,f)=>{d??(d=n.value);let g=m.value;return a(g)?s&&u&&f?.async===!1&&f.jitless!==!0?(i||(i=o(t.shape)),m=i(m,f),l?xm([],g,m,f,d,e):m):r(m,f):(m.issues.push({expected:"object",code:"invalid_type",input:g,inst:e}),m)}});function lm(e,t,r,n){for(let i of e)if(i.issues.length===0)return t.value=i.value,t;let o=e.filter(i=>!Kt(i));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(i=>i.issues.map(a=>Ce(a,n,ye())))}),t)}var Gn=p("$ZodUnion",(e,t)=>{M.init(e,t),V(e._zod,"optin",()=>t.options.some(o=>o._zod.optin==="optional")?"optional":void 0),V(e._zod,"optout",()=>t.options.some(o=>o._zod.optout==="optional")?"optional":void 0),V(e._zod,"values",()=>{if(t.options.every(o=>o._zod.values))return new Set(t.options.flatMap(o=>Array.from(o._zod.values)))}),V(e._zod,"pattern",()=>{if(t.options.every(o=>o._zod.pattern)){let o=t.options.map(i=>i._zod.pattern);return new RegExp(`^(${o.map(i=>jn(i.source)).join("|")})$`)}});let r=t.options.length===1,n=t.options[0]._zod.run;e._zod.parse=(o,i)=>{if(r)return n(o,i);let a=!1,s=[];for(let c of t.options){let u=c._zod.run({value:o.value,issues:[]},i);if(u instanceof Promise)s.push(u),a=!0;else{if(u.issues.length===0)return u;s.push(u)}}return a?Promise.all(s).then(c=>lm(c,o,e,i)):lm(s,o,e,i)}});function dm(e,t,r,n){let o=e.filter(i=>i.issues.length===0);return o.length===1?(t.value=o[0].value,t):(o.length===0?t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(i=>i.issues.map(a=>Ce(a,n,ye())))}):t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:[],inclusive:!1}),t)}var eu=p("$ZodXor",(e,t)=>{Gn.init(e,t),t.inclusive=!1;let r=t.options.length===1,n=t.options[0]._zod.run;e._zod.parse=(o,i)=>{if(r)return n(o,i);let a=!1,s=[];for(let c of t.options){let u=c._zod.run({value:o.value,issues:[]},i);u instanceof Promise?(s.push(u),a=!0):s.push(u)}return a?Promise.all(s).then(c=>dm(c,o,e,i)):dm(s,o,e,i)}}),tu=p("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,Gn.init(e,t);let r=e._zod.parse;V(e._zod,"propValues",()=>{let o={};for(let i of t.options){let a=i._zod.propValues;if(!a||Object.keys(a).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(i)}"`);for(let[s,c]of Object.entries(a)){o[s]||(o[s]=new Set);for(let u of c)o[s].add(u)}}return o});let n=Lr(()=>{let o=t.options,i=new Map;for(let a of o){let s=a._zod.propValues?.[t.discriminator];if(!s||s.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(a)}"`);for(let c of s){if(i.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);i.set(c,a)}}return i});e._zod.parse=(o,i)=>{let a=o.value;if(!cr(a))return o.issues.push({code:"invalid_type",expected:"object",input:a,inst:e}),o;let s=n.value.get(a?.[t.discriminator]);return s?s._zod.run(o,i):t.unionFallback?r(o,i):(o.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,input:a,path:[t.discriminator],inst:e}),o)}}),ru=p("$ZodIntersection",(e,t)=>{M.init(e,t),e._zod.parse=(r,n)=>{let o=r.value,i=t.left._zod.run({value:o,issues:[]},n),a=t.right._zod.run({value:o,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([c,u])=>pm(r,c,u)):pm(r,i,a)}});function vc(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(Jt(e)&&Jt(t)){let r=Object.keys(t),n=Object.keys(e).filter(i=>r.indexOf(i)!==-1),o={...e,...t};for(let i of n){let a=vc(e[i],t[i]);if(!a.valid)return{valid:!1,mergeErrorPath:[i,...a.mergeErrorPath]};o[i]=a.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;ns.l&&s.r).map(([s])=>s);if(i.length&&o&&e.issues.push({...o,keys:i}),Kt(e))return e;let a=vc(t.value,r.value);if(!a.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(a.mergeErrorPath)}`);return e.value=a.data,e}var Si=p("$ZodTuple",(e,t)=>{M.init(e,t);let r=t.items;e._zod.parse=(n,o)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({input:i,inst:e,expected:"tuple",code:"invalid_type"}),n;n.value=[];let a=[],s=[...r].reverse().findIndex(l=>l._zod.optin!=="optional"),c=s===-1?0:r.length-s;if(!t.rest){let l=i.length>r.length,d=i.length=i.length&&u>=c)continue;let d=l._zod.run({value:i[u],issues:[]},o);d instanceof Promise?a.push(d.then(m=>vi(m,n,u))):vi(d,n,u)}if(t.rest){let l=i.slice(r.length);for(let d of l){u++;let m=t.rest._zod.run({value:d,issues:[]},o);m instanceof Promise?a.push(m.then(f=>vi(f,n,u))):vi(m,n,u)}}return a.length?Promise.all(a).then(()=>n):n}});function vi(e,t,r){e.issues.length&&t.issues.push(...Ke(r,e.issues)),t.value[r]=e.value}var nu=p("$ZodRecord",(e,t)=>{M.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!Jt(o))return r.issues.push({expected:"record",code:"invalid_type",input:o,inst:e}),r;let i=[],a=t.keyType._zod.values;if(a){r.value={};let s=new Set;for(let u of a)if(typeof u=="string"||typeof u=="number"||typeof u=="symbol"){s.add(typeof u=="number"?u.toString():u);let l=t.valueType._zod.run({value:o[u],issues:[]},n);l instanceof Promise?i.push(l.then(d=>{d.issues.length&&r.issues.push(...Ke(u,d.issues)),r.value[u]=d.value})):(l.issues.length&&r.issues.push(...Ke(u,l.issues)),r.value[u]=l.value)}let c;for(let u in o)s.has(u)||(c=c??[],c.push(u));c&&c.length>0&&r.issues.push({code:"unrecognized_keys",input:o,inst:e,keys:c})}else{r.value={};for(let s of Reflect.ownKeys(o)){if(s==="__proto__")continue;let c=t.keyType._zod.run({value:s,issues:[]},n);if(c instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof s=="string"&&hi.test(s)&&c.issues.length&&c.issues.some(d=>d.code==="invalid_type"&&d.expected==="number")){let d=t.keyType._zod.run({value:Number(s),issues:[]},n);if(d instanceof Promise)throw new Error("Async schemas not supported in object keys currently");d.issues.length===0&&(c=d)}if(c.issues.length){t.mode==="loose"?r.value[s]=o[s]:r.issues.push({code:"invalid_key",origin:"record",issues:c.issues.map(d=>Ce(d,n,ye())),input:s,path:[s],inst:e});continue}let l=t.valueType._zod.run({value:o[s],issues:[]},n);l instanceof Promise?i.push(l.then(d=>{d.issues.length&&r.issues.push(...Ke(s,d.issues)),r.value[c.value]=d.value})):(l.issues.length&&r.issues.push(...Ke(s,l.issues)),r.value[c.value]=l.value)}}return i.length?Promise.all(i).then(()=>r):r}}),ou=p("$ZodMap",(e,t)=>{M.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!(o instanceof Map))return r.issues.push({expected:"map",code:"invalid_type",input:o,inst:e}),r;let i=[];r.value=new Map;for(let[a,s]of o){let c=t.keyType._zod.run({value:a,issues:[]},n),u=t.valueType._zod.run({value:s,issues:[]},n);c instanceof Promise||u instanceof Promise?i.push(Promise.all([c,u]).then(([l,d])=>{fm(l,d,r,a,o,e,n)})):fm(c,u,r,a,o,e,n)}return i.length?Promise.all(i).then(()=>r):r}});function fm(e,t,r,n,o,i,a){e.issues.length&&(Nn.has(typeof n)?r.issues.push(...Ke(n,e.issues)):r.issues.push({code:"invalid_key",origin:"map",input:o,inst:i,issues:e.issues.map(s=>Ce(s,a,ye()))})),t.issues.length&&(Nn.has(typeof n)?r.issues.push(...Ke(n,t.issues)):r.issues.push({origin:"map",code:"invalid_element",input:o,inst:i,key:n,issues:t.issues.map(s=>Ce(s,a,ye()))})),r.value.set(e.value,t.value)}var iu=p("$ZodSet",(e,t)=>{M.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!(o instanceof Set))return r.issues.push({input:o,inst:e,expected:"set",code:"invalid_type"}),r;let i=[];r.value=new Set;for(let a of o){let s=t.valueType._zod.run({value:a,issues:[]},n);s instanceof Promise?i.push(s.then(c=>mm(c,r))):mm(s,r)}return i.length?Promise.all(i).then(()=>r):r}});function mm(e,t){e.issues.length&&t.issues.push(...e.issues),t.value.add(e.value)}var au=p("$ZodEnum",(e,t)=>{M.init(e,t);let r=On(t.entries),n=new Set(r);e._zod.values=n,e._zod.pattern=new RegExp(`^(${r.filter(o=>Nn.has(typeof o)).map(o=>typeof o=="string"?Xe(o):o.toString()).join("|")})$`),e._zod.parse=(o,i)=>{let a=o.value;return n.has(a)||o.issues.push({code:"invalid_value",values:r,input:a,inst:e}),o}}),su=p("$ZodLiteral",(e,t)=>{if(M.init(e,t),t.values.length===0)throw new Error("Cannot create literal schema with no valid values");let r=new Set(t.values);e._zod.values=r,e._zod.pattern=new RegExp(`^(${t.values.map(n=>typeof n=="string"?Xe(n):n?Xe(n.toString()):String(n)).join("|")})$`),e._zod.parse=(n,o)=>{let i=n.value;return r.has(i)||n.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),n}}),cu=p("$ZodFile",(e,t)=>{M.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return o instanceof File||r.issues.push({expected:"file",code:"invalid_type",input:o,inst:e}),r}}),uu=p("$ZodTransform",(e,t)=>{M.init(e,t),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new sr(e.constructor.name);let o=t.transform(r.value,r);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(a=>(r.value=a,r));if(o instanceof Promise)throw new vt;return r.value=o,r}});function hm(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}var wi=p("$ZodOptional",(e,t)=>{M.init(e,t),e._zod.optin="optional",e._zod.optout="optional",V(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),V(e._zod,"pattern",()=>{let r=t.innerType._zod.pattern;return r?new RegExp(`^(${jn(r.source)})?$`):void 0}),e._zod.parse=(r,n)=>{if(t.innerType._zod.optin==="optional"){let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>hm(i,r.value)):hm(o,r.value)}return r.value===void 0?r:t.innerType._zod.run(r,n)}}),lu=p("$ZodExactOptional",(e,t)=>{wi.init(e,t),V(e._zod,"values",()=>t.innerType._zod.values),V(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(r,n)=>t.innerType._zod.run(r,n)}),du=p("$ZodNullable",(e,t)=>{M.init(e,t),V(e._zod,"optin",()=>t.innerType._zod.optin),V(e._zod,"optout",()=>t.innerType._zod.optout),V(e._zod,"pattern",()=>{let r=t.innerType._zod.pattern;return r?new RegExp(`^(${jn(r.source)}|null)$`):void 0}),V(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(r,n)=>r.value===null?r:t.innerType._zod.run(r,n)}),pu=p("$ZodDefault",(e,t)=>{M.init(e,t),e._zod.optin="optional",V(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);if(r.value===void 0)return r.value=t.defaultValue,r;let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>gm(i,t)):gm(o,t)}});function gm(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var fu=p("$ZodPrefault",(e,t)=>{M.init(e,t),e._zod.optin="optional",V(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=t.defaultValue),t.innerType._zod.run(r,n))}),mu=p("$ZodNonOptional",(e,t)=>{M.init(e,t),V(e._zod,"values",()=>{let r=t.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),e._zod.parse=(r,n)=>{let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>vm(i,e)):vm(o,e)}});function vm(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var hu=p("$ZodSuccess",(e,t)=>{M.init(e,t),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new sr("ZodSuccess");let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>(r.value=i.issues.length===0,r)):(r.value=o.issues.length===0,r)}}),gu=p("$ZodCatch",(e,t)=>{M.init(e,t),V(e._zod,"optin",()=>t.innerType._zod.optin),V(e._zod,"optout",()=>t.innerType._zod.optout),V(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>(r.value=i.value,i.issues.length&&(r.value=t.catchValue({...r,error:{issues:i.issues.map(a=>Ce(a,n,ye()))},input:r.value}),r.issues=[]),r)):(r.value=o.value,o.issues.length&&(r.value=t.catchValue({...r,error:{issues:o.issues.map(i=>Ce(i,n,ye()))},input:r.value}),r.issues=[]),r)}}),vu=p("$ZodNaN",(e,t)=>{M.init(e,t),e._zod.parse=(r,n)=>((typeof r.value!="number"||!Number.isNaN(r.value))&&r.issues.push({input:r.value,inst:e,expected:"nan",code:"invalid_type"}),r)}),_u=p("$ZodPipe",(e,t)=>{M.init(e,t),V(e._zod,"values",()=>t.in._zod.values),V(e._zod,"optin",()=>t.in._zod.optin),V(e._zod,"optout",()=>t.out._zod.optout),V(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if(n.direction==="backward"){let i=t.out._zod.run(r,n);return i instanceof Promise?i.then(a=>_i(a,t.in,n)):_i(i,t.in,n)}let o=t.in._zod.run(r,n);return o instanceof Promise?o.then(i=>_i(i,t.out,n)):_i(o,t.out,n)}});function _i(e,t,r){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},r)}var Hn=p("$ZodCodec",(e,t)=>{M.init(e,t),V(e._zod,"values",()=>t.in._zod.values),V(e._zod,"optin",()=>t.in._zod.optin),V(e._zod,"optout",()=>t.out._zod.optout),V(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if((n.direction||"forward")==="forward"){let i=t.in._zod.run(r,n);return i instanceof Promise?i.then(a=>yi(a,t,n)):yi(i,t,n)}else{let i=t.out._zod.run(r,n);return i instanceof Promise?i.then(a=>yi(a,t,n)):yi(i,t,n)}}});function yi(e,t,r){if(e.issues.length)return e.aborted=!0,e;if((r.direction||"forward")==="forward"){let o=t.transform(e.value,e);return o instanceof Promise?o.then(i=>$i(e,i,t.out,r)):$i(e,o,t.out,r)}else{let o=t.reverseTransform(e.value,e);return o instanceof Promise?o.then(i=>$i(e,i,t.in,r)):$i(e,o,t.in,r)}}function $i(e,t,r,n){return e.issues.length?(e.aborted=!0,e):r._zod.run({value:t,issues:e.issues},n)}var yu=p("$ZodReadonly",(e,t)=>{M.init(e,t),V(e._zod,"propValues",()=>t.innerType._zod.propValues),V(e._zod,"values",()=>t.innerType._zod.values),V(e._zod,"optin",()=>t.innerType?._zod?.optin),V(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(_m):_m(o)}});function _m(e){return e.value=Object.freeze(e.value),e}var $u=p("$ZodTemplateLiteral",(e,t)=>{M.init(e,t);let r=[];for(let n of t.parts)if(typeof n=="object"&&n!==null){if(!n._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...n._zod.traits].shift()}`);let o=n._zod.pattern instanceof RegExp?n._zod.pattern.source:n._zod.pattern;if(!o)throw new Error(`Invalid template literal part: ${n._zod.traits}`);let i=o.startsWith("^")?1:0,a=o.endsWith("$")?o.length-1:o.length;r.push(o.slice(i,a))}else if(n===null||As.has(typeof n))r.push(Xe(`${n}`));else throw new Error(`Invalid template literal part: ${n}`);e._zod.pattern=new RegExp(`^${r.join("")}$`),e._zod.parse=(n,o)=>typeof n.value!="string"?(n.issues.push({input:n.value,inst:e,expected:"string",code:"invalid_type"}),n):(e._zod.pattern.lastIndex=0,e._zod.pattern.test(n.value)||n.issues.push({input:n.value,inst:e,code:"invalid_format",format:t.format??"template_literal",pattern:e._zod.pattern.source}),n)}),bu=p("$ZodFunction",(e,t)=>(M.init(e,t),e._def=t,e._zod.def=t,e.implement=r=>{if(typeof r!="function")throw new Error("implement() must be called with a function");return function(...n){let o=e._def.input?Un(e._def.input,n):n,i=Reflect.apply(r,this,o);return e._def.output?Un(e._def.output,i):i}},e.implementAsync=r=>{if(typeof r!="function")throw new Error("implementAsync() must be called with a function");return async function(...n){let o=e._def.input?await Mn(e._def.input,n):n,i=await Reflect.apply(r,this,o);return e._def.output?await Mn(e._def.output,i):i}},e._zod.parse=(r,n)=>typeof r.value!="function"?(r.issues.push({code:"invalid_type",expected:"function",input:r.value,inst:e}),r):(e._def.output&&e._def.output._zod.def.type==="promise"?r.value=e.implementAsync(r.value):r.value=e.implement(r.value),r),e.input=(...r)=>{let n=e.constructor;return Array.isArray(r[0])?new n({type:"function",input:new Si({type:"tuple",items:r[0],rest:r[1]}),output:e._def.output}):new n({type:"function",input:r[0],output:e._def.output})},e.output=r=>{let n=e.constructor;return new n({type:"function",input:e._def.input,output:r})},e)),xu=p("$ZodPromise",(e,t)=>{M.init(e,t),e._zod.parse=(r,n)=>Promise.resolve(r.value).then(o=>t.innerType._zod.run({value:o,issues:[]},n))}),ku=p("$ZodLazy",(e,t)=>{M.init(e,t),V(e._zod,"innerType",()=>t.getter()),V(e._zod,"pattern",()=>e._zod.innerType?._zod?.pattern),V(e._zod,"propValues",()=>e._zod.innerType?._zod?.propValues),V(e._zod,"optin",()=>e._zod.innerType?._zod?.optin??void 0),V(e._zod,"optout",()=>e._zod.innerType?._zod?.optout??void 0),e._zod.parse=(r,n)=>e._zod.innerType._zod.run(r,n)}),Su=p("$ZodCustom",(e,t)=>{se.init(e,t),M.init(e,t),e._zod.parse=(r,n)=>r,e._zod.check=r=>{let n=r.value,o=t.fn(n);if(o instanceof Promise)return o.then(i=>ym(i,r,n,e));ym(o,r,n,e)}});function ym(e,t,r,n){if(!e){let o={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(o.params=n._zod.def.params),t.issues.push(qr(o))}}var mb=()=>{let e={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function t(o){return e[o]??null}let r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},n={nan:"NaN"};return o=>{switch(o.code){case"invalid_type":{let i=n[o.expected]??o.expected,a=A(o.input),s=n[a]??a;return`Invalid input: expected ${i}, received ${s}`}case"invalid_value":return o.values.length===1?`Invalid input: expected ${R(o.values[0])}`:`Invalid option: expected one of ${D(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",a=t(o.origin);return a?`Too big: expected ${o.origin??"value"} to have ${i}${o.maximum.toString()} ${a.unit??"elements"}`:`Too big: expected ${o.origin??"value"} to be ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",a=t(o.origin);return a?`Too small: expected ${o.origin} to have ${i}${o.minimum.toString()} ${a.unit}`:`Too small: expected ${o.origin} to be ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${r[i.format]??o.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${o.divisor}`;case"unrecognized_keys":return`Unrecognized key${o.keys.length>1?"s":""}: ${D(o.keys,", ")}`;case"invalid_key":return`Invalid key in ${o.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${o.origin}`;default:return"Invalid input"}}};function wu(){return{localeError:mb()}}var wm,zm=Symbol("ZodOutput"),Im=Symbol("ZodInput"),Iu=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...r){let n=r[0];return this._map.set(t,n),n&&typeof n=="object"&&"id"in n&&this._idmap.set(n.id,t),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){let r=this._map.get(t);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(t),this}get(t){let r=t._zod.parent;if(r){let n={...this.get(r)??{}};delete n.id;let o={...n,...this._map.get(t)};return Object.keys(o).length?o:void 0}return this._map.get(t)}has(t){return this._map.has(t)}};function Eu(){return new Iu}(wm=globalThis).__zod_globalRegistry??(wm.__zod_globalRegistry=Eu());var De=globalThis.__zod_globalRegistry;function Tu(e,t){return new e({type:"string",...k(t)})}function zi(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...k(t)})}function Bn(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...k(t)})}function Ii(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...k(t)})}function Ei(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...k(t)})}function Ti(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...k(t)})}function Pi(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...k(t)})}function Xn(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...k(t)})}function Oi(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...k(t)})}function ji(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...k(t)})}function Ni(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...k(t)})}function Di(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...k(t)})}function Ri(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...k(t)})}function Zi(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...k(t)})}function Ai(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...k(t)})}function Ui(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...k(t)})}function Ci(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...k(t)})}function Pu(e,t){return new e({type:"string",format:"mac",check:"string_format",abort:!1,...k(t)})}function Mi(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...k(t)})}function Li(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...k(t)})}function qi(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...k(t)})}function Fi(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...k(t)})}function Vi(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...k(t)})}function Ji(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...k(t)})}function Ou(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...k(t)})}function ju(e,t){return new e({type:"string",format:"date",check:"string_format",...k(t)})}function Nu(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...k(t)})}function Du(e,t){return new e({type:"string",format:"duration",check:"string_format",...k(t)})}function Ru(e,t){return new e({type:"number",checks:[],...k(t)})}function Zu(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...k(t)})}function Au(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float32",...k(t)})}function Uu(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float64",...k(t)})}function Cu(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"int32",...k(t)})}function Mu(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"uint32",...k(t)})}function Lu(e,t){return new e({type:"boolean",...k(t)})}function qu(e,t){return new e({type:"bigint",...k(t)})}function Fu(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...k(t)})}function Vu(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...k(t)})}function Ju(e,t){return new e({type:"symbol",...k(t)})}function Ku(e,t){return new e({type:"undefined",...k(t)})}function Wu(e,t){return new e({type:"null",...k(t)})}function Gu(e){return new e({type:"any"})}function Hu(e){return new e({type:"unknown"})}function Bu(e,t){return new e({type:"never",...k(t)})}function Xu(e,t){return new e({type:"void",...k(t)})}function Yu(e,t){return new e({type:"date",...k(t)})}function Qu(e,t){return new e({type:"nan",...k(t)})}function Pt(e,t){return new hc({check:"less_than",...k(t),value:e,inclusive:!1})}function We(e,t){return new hc({check:"less_than",...k(t),value:e,inclusive:!0})}function Ot(e,t){return new gc({check:"greater_than",...k(t),value:e,inclusive:!1})}function Re(e,t){return new gc({check:"greater_than",...k(t),value:e,inclusive:!0})}function el(e){return Ot(0,e)}function tl(e){return Pt(0,e)}function rl(e){return We(0,e)}function nl(e){return Re(0,e)}function dr(e,t){return new Ff({check:"multiple_of",...k(t),value:e})}function pr(e,t){return new Kf({check:"max_size",...k(t),maximum:e})}function jt(e,t){return new Wf({check:"min_size",...k(t),minimum:e})}function Vr(e,t){return new Gf({check:"size_equals",...k(t),size:e})}function Jr(e,t){return new Hf({check:"max_length",...k(t),maximum:e})}function Wt(e,t){return new Bf({check:"min_length",...k(t),minimum:e})}function Kr(e,t){return new Xf({check:"length_equals",...k(t),length:e})}function Yn(e,t){return new Yf({check:"string_format",format:"regex",...k(t),pattern:e})}function Qn(e){return new Qf({check:"string_format",format:"lowercase",...k(e)})}function eo(e){return new em({check:"string_format",format:"uppercase",...k(e)})}function to(e,t){return new tm({check:"string_format",format:"includes",...k(t),includes:e})}function ro(e,t){return new rm({check:"string_format",format:"starts_with",...k(t),prefix:e})}function no(e,t){return new nm({check:"string_format",format:"ends_with",...k(t),suffix:e})}function ol(e,t,r){return new om({check:"property",property:e,schema:t,...k(r)})}function oo(e,t){return new im({check:"mime_type",mime:e,...k(t)})}function _t(e){return new am({check:"overwrite",tx:e})}function io(e){return _t(t=>t.normalize(e))}function ao(){return _t(e=>e.trim())}function so(){return _t(e=>e.toLowerCase())}function co(){return _t(e=>e.toUpperCase())}function Ki(){return _t(e=>Rs(e))}function Em(e,t,r){return new e({type:"array",element:t,...k(r)})}function il(e,t){return new e({type:"file",...k(t)})}function al(e,t,r){let n=k(r);return n.abort??(n.abort=!0),new e({type:"custom",check:"custom",fn:t,...n})}function sl(e,t,r){return new e({type:"custom",check:"custom",fn:t,...k(r)})}function cl(e){let t=_b(r=>(r.addIssue=n=>{if(typeof n=="string")r.issues.push(qr(n,r.value,t._zod.def));else{let o=n;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=r.value),o.inst??(o.inst=t),o.continue??(o.continue=!t._zod.def.abort),r.issues.push(qr(o))}},e(r.value,r)));return t}function _b(e,t){let r=new se({check:"custom",...k(t)});return r._zod.check=e,r}function ul(e){let t=new se({check:"describe"});return t._zod.onattach=[r=>{let n=De.get(r)??{};De.add(r,{...n,description:e})}],t._zod.check=()=>{},t}function ll(e){let t=new se({check:"meta"});return t._zod.onattach=[r=>{let n=De.get(r)??{};De.add(r,{...n,...e})}],t._zod.check=()=>{},t}function dl(e,t){let r=k(t),n=r.truthy??["true","1","yes","on","y","enabled"],o=r.falsy??["false","0","no","off","n","disabled"];r.case!=="sensitive"&&(n=n.map(f=>typeof f=="string"?f.toLowerCase():f),o=o.map(f=>typeof f=="string"?f.toLowerCase():f));let i=new Set(n),a=new Set(o),s=e.Codec??Hn,c=e.Boolean??Wn,u=e.String??lr,l=new u({type:"string",error:r.error}),d=new c({type:"boolean",error:r.error}),m=new s({type:"pipe",in:l,out:d,transform:((f,g)=>{let v=f;return r.case!=="sensitive"&&(v=v.toLowerCase()),i.has(v)?!0:a.has(v)?!1:(g.issues.push({code:"invalid_value",expected:"stringbool",values:[...i,...a],input:g.value,inst:m,continue:!1}),{})}),reverseTransform:((f,g)=>f===!0?n[0]||"true":o[0]||"false"),error:r.error});return m}function Wr(e,t,r,n={}){let o=k(n),i={...k(n),check:"string_format",type:"string",format:t,fn:typeof r=="function"?r:s=>r.test(s),...o};return r instanceof RegExp&&(i.pattern=r),new e(i)}function Wi(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??De,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function de(e,t,r={path:[],schemaPath:[]}){var n;let o=e._zod.def,i=t.seen.get(e);if(i)return i.count++,r.schemaPath.includes(e)&&(i.cycle=r.path),i.schema;let a={schema:{},count:1,cycle:void 0,path:r.path};t.seen.set(e,a);let s=e._zod.toJSONSchema?.();if(s)a.schema=s;else{let l={...r,schemaPath:[...r.schemaPath,e],path:r.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,a.schema,l);else{let m=a.schema,f=t.processors[o.type];if(!f)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);f(e,t,m,l)}let d=e._zod.parent;d&&(a.ref||(a.ref=d),de(d,t,l),t.seen.get(d).isParent=!0)}let c=t.metadataRegistry.get(e);return c&&Object.assign(a.schema,c),t.io==="input"&&Ze(e)&&(delete a.schema.examples,delete a.schema.default),t.io==="input"&&a.schema._prefault&&((n=a.schema).default??(n.default=a.schema._prefault)),delete a.schema._prefault,t.seen.get(e).schema}function Gi(e,t){let r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=new Map;for(let a of e.seen.entries()){let s=e.metadataRegistry.get(a[0])?.id;if(s){let c=n.get(s);if(c&&c!==a[0])throw new Error(`Duplicate schema id "${s}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(s,a[0])}}let o=a=>{let s=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){let d=e.external.registry.get(a[0])?.id,m=e.external.uri??(g=>g);if(d)return{ref:m(d)};let f=a[1].defId??a[1].schema.id??`schema${e.counter++}`;return a[1].defId=f,{defId:f,ref:`${m("__shared")}#/${s}/${f}`}}if(a[1]===r)return{ref:"#"};let u=`#/${s}/`,l=a[1].schema.id??`__schema${e.counter++}`;return{defId:l,ref:u+l}},i=a=>{if(a[1].schema.$ref)return;let s=a[1],{ref:c,defId:u}=o(a);s.def={...s.schema},u&&(s.defId=u);let l=s.schema;for(let d in l)delete l[d];l.$ref=c};if(e.cycles==="throw")for(let a of e.seen.entries()){let s=a[1];if(s.cycle)throw new Error(`Cycle detected: #/${s.cycle?.join("/")}/ + +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let a of e.seen.entries()){let s=a[1];if(t===a[0]){i(a);continue}if(e.external){let u=e.external.registry.get(a[0])?.id;if(t!==a[0]&&u){i(a);continue}}if(e.metadataRegistry.get(a[0])?.id){i(a);continue}if(s.cycle){i(a);continue}if(s.count>1&&e.reused==="ref"){i(a);continue}}}function Hi(e,t){let r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=a=>{let s=e.seen.get(a);if(s.ref===null)return;let c=s.def??s.schema,u={...c},l=s.ref;if(s.ref=null,l){n(l);let m=e.seen.get(l),f=m.schema;if(f.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(c.allOf=c.allOf??[],c.allOf.push(f)):Object.assign(c,f),Object.assign(c,u),a._zod.parent===l)for(let v in c)v==="$ref"||v==="allOf"||v in u||delete c[v];if(f.$ref)for(let v in c)v==="$ref"||v==="allOf"||v in m.def&&JSON.stringify(c[v])===JSON.stringify(m.def[v])&&delete c[v]}let d=a._zod.parent;if(d&&d!==l){n(d);let m=e.seen.get(d);if(m?.schema.$ref&&(c.$ref=m.schema.$ref,m.def))for(let f in c)f==="$ref"||f==="allOf"||f in m.def&&JSON.stringify(c[f])===JSON.stringify(m.def[f])&&delete c[f]}e.override({zodSchema:a,jsonSchema:c,path:s.path??[]})};for(let a of[...e.seen.entries()].reverse())n(a[0]);let o={};if(e.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){let a=e.external.registry.get(t)?.id;if(!a)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(a)}Object.assign(o,r.def??r.schema);let i=e.external?.defs??{};for(let a of e.seen.entries()){let s=a[1];s.def&&s.defId&&(i[s.defId]=s.def)}e.external||Object.keys(i).length>0&&(e.target==="draft-2020-12"?o.$defs=i:o.definitions=i);try{let a=JSON.parse(JSON.stringify(o));return Object.defineProperty(a,"~standard",{value:{...t["~standard"],jsonSchema:{input:uo(t,"input",e.processors),output:uo(t,"output",e.processors)}},enumerable:!1,writable:!1}),a}catch{throw new Error("Error converting schema to JSON.")}}function Ze(e,t){let r=t??{seen:new Set};if(r.seen.has(e))return!1;r.seen.add(e);let n=e._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return Ze(n.element,r);if(n.type==="set")return Ze(n.valueType,r);if(n.type==="lazy")return Ze(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return Ze(n.innerType,r);if(n.type==="intersection")return Ze(n.left,r)||Ze(n.right,r);if(n.type==="record"||n.type==="map")return Ze(n.keyType,r)||Ze(n.valueType,r);if(n.type==="pipe")return Ze(n.in,r)||Ze(n.out,r);if(n.type==="object"){for(let o in n.shape)if(Ze(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(let o of n.options)if(Ze(o,r))return!0;return!1}if(n.type==="tuple"){for(let o of n.items)if(Ze(o,r))return!0;return!!(n.rest&&Ze(n.rest,r))}return!1}var Tm=(e,t={})=>r=>{let n=Wi({...r,processors:t});return de(e,n),Gi(n,e),Hi(n,e)},uo=(e,t,r={})=>n=>{let{libraryOptions:o,target:i}=n??{},a=Wi({...o??{},target:i,io:t,processors:r});return de(e,a),Gi(a,e),Hi(a,e)};var yb={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Pm=(e,t,r,n)=>{let o=r;o.type="string";let{minimum:i,maximum:a,format:s,patterns:c,contentEncoding:u}=e._zod.bag;if(typeof i=="number"&&(o.minLength=i),typeof a=="number"&&(o.maxLength=a),s&&(o.format=yb[s]??s,o.format===""&&delete o.format,s==="time"&&delete o.format),u&&(o.contentEncoding=u),c&&c.size>0){let l=[...c];l.length===1?o.pattern=l[0].source:l.length>1&&(o.allOf=[...l.map(d=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:d.source}))])}},Om=(e,t,r,n)=>{let o=r,{minimum:i,maximum:a,format:s,multipleOf:c,exclusiveMaximum:u,exclusiveMinimum:l}=e._zod.bag;typeof s=="string"&&s.includes("int")?o.type="integer":o.type="number",typeof l=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.minimum=l,o.exclusiveMinimum=!0):o.exclusiveMinimum=l),typeof i=="number"&&(o.minimum=i,typeof l=="number"&&t.target!=="draft-04"&&(l>=i?delete o.minimum:delete o.exclusiveMinimum)),typeof u=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.maximum=u,o.exclusiveMaximum=!0):o.exclusiveMaximum=u),typeof a=="number"&&(o.maximum=a,typeof u=="number"&&t.target!=="draft-04"&&(u<=a?delete o.maximum:delete o.exclusiveMaximum)),typeof c=="number"&&(o.multipleOf=c)},jm=(e,t,r,n)=>{r.type="boolean"},Nm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},Dm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},Rm=(e,t,r,n)=>{t.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"},Zm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},Am=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},Um=(e,t,r,n)=>{r.not={}},Cm=(e,t,r,n)=>{},Mm=(e,t,r,n)=>{},Lm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},qm=(e,t,r,n)=>{let o=e._zod.def,i=On(o.entries);i.every(a=>typeof a=="number")&&(r.type="number"),i.every(a=>typeof a=="string")&&(r.type="string"),r.enum=i},Fm=(e,t,r,n)=>{let o=e._zod.def,i=[];for(let a of o.values)if(a===void 0){if(t.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof a=="bigint"){if(t.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");i.push(Number(a))}else i.push(a);if(i.length!==0)if(i.length===1){let a=i[0];r.type=a===null?"null":typeof a,t.target==="draft-04"||t.target==="openapi-3.0"?r.enum=[a]:r.const=a}else i.every(a=>typeof a=="number")&&(r.type="number"),i.every(a=>typeof a=="string")&&(r.type="string"),i.every(a=>typeof a=="boolean")&&(r.type="boolean"),i.every(a=>a===null)&&(r.type="null"),r.enum=i},Vm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},Jm=(e,t,r,n)=>{let o=r,i=e._zod.pattern;if(!i)throw new Error("Pattern not found in template literal");o.type="string",o.pattern=i.source},Km=(e,t,r,n)=>{let o=r,i={type:"string",format:"binary",contentEncoding:"binary"},{minimum:a,maximum:s,mime:c}=e._zod.bag;a!==void 0&&(i.minLength=a),s!==void 0&&(i.maxLength=s),c?c.length===1?(i.contentMediaType=c[0],Object.assign(o,i)):(Object.assign(o,i),o.anyOf=c.map(u=>({contentMediaType:u}))):Object.assign(o,i)},Wm=(e,t,r,n)=>{r.type="boolean"},Gm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Hm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},Bm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Xm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},Ym=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},Qm=(e,t,r,n)=>{let o=r,i=e._zod.def,{minimum:a,maximum:s}=e._zod.bag;typeof a=="number"&&(o.minItems=a),typeof s=="number"&&(o.maxItems=s),o.type="array",o.items=de(i.element,t,{...n,path:[...n.path,"items"]})},eh=(e,t,r,n)=>{let o=r,i=e._zod.def;o.type="object",o.properties={};let a=i.shape;for(let u in a)o.properties[u]=de(a[u],t,{...n,path:[...n.path,"properties",u]});let s=new Set(Object.keys(a)),c=new Set([...s].filter(u=>{let l=i.shape[u]._zod;return t.io==="input"?l.optin===void 0:l.optout===void 0}));c.size>0&&(o.required=Array.from(c)),i.catchall?._zod.def.type==="never"?o.additionalProperties=!1:i.catchall?i.catchall&&(o.additionalProperties=de(i.catchall,t,{...n,path:[...n.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},pl=(e,t,r,n)=>{let o=e._zod.def,i=o.inclusive===!1,a=o.options.map((s,c)=>de(s,t,{...n,path:[...n.path,i?"oneOf":"anyOf",c]}));i?r.oneOf=a:r.anyOf=a},th=(e,t,r,n)=>{let o=e._zod.def,i=de(o.left,t,{...n,path:[...n.path,"allOf",0]}),a=de(o.right,t,{...n,path:[...n.path,"allOf",1]}),s=u=>"allOf"in u&&Object.keys(u).length===1,c=[...s(i)?i.allOf:[i],...s(a)?a.allOf:[a]];r.allOf=c},rh=(e,t,r,n)=>{let o=r,i=e._zod.def;o.type="array";let a=t.target==="draft-2020-12"?"prefixItems":"items",s=t.target==="draft-2020-12"||t.target==="openapi-3.0"?"items":"additionalItems",c=i.items.map((m,f)=>de(m,t,{...n,path:[...n.path,a,f]})),u=i.rest?de(i.rest,t,{...n,path:[...n.path,s,...t.target==="openapi-3.0"?[i.items.length]:[]]}):null;t.target==="draft-2020-12"?(o.prefixItems=c,u&&(o.items=u)):t.target==="openapi-3.0"?(o.items={anyOf:c},u&&o.items.anyOf.push(u),o.minItems=c.length,u||(o.maxItems=c.length)):(o.items=c,u&&(o.additionalItems=u));let{minimum:l,maximum:d}=e._zod.bag;typeof l=="number"&&(o.minItems=l),typeof d=="number"&&(o.maxItems=d)},nh=(e,t,r,n)=>{let o=r,i=e._zod.def;o.type="object";let a=i.keyType,c=a._zod.bag?.patterns;if(i.mode==="loose"&&c&&c.size>0){let l=de(i.valueType,t,{...n,path:[...n.path,"patternProperties","*"]});o.patternProperties={};for(let d of c)o.patternProperties[d.source]=l}else(t.target==="draft-07"||t.target==="draft-2020-12")&&(o.propertyNames=de(i.keyType,t,{...n,path:[...n.path,"propertyNames"]})),o.additionalProperties=de(i.valueType,t,{...n,path:[...n.path,"additionalProperties"]});let u=a._zod.values;if(u){let l=[...u].filter(d=>typeof d=="string"||typeof d=="number");l.length>0&&(o.required=l)}},oh=(e,t,r,n)=>{let o=e._zod.def,i=de(o.innerType,t,n),a=t.seen.get(e);t.target==="openapi-3.0"?(a.ref=o.innerType,r.nullable=!0):r.anyOf=[i,{type:"null"}]},ih=(e,t,r,n)=>{let o=e._zod.def;de(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType},ah=(e,t,r,n)=>{let o=e._zod.def;de(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},sh=(e,t,r,n)=>{let o=e._zod.def;de(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType,t.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},ch=(e,t,r,n)=>{let o=e._zod.def;de(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType;let a;try{a=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=a},uh=(e,t,r,n)=>{let o=e._zod.def,i=t.io==="input"?o.in._zod.def.type==="transform"?o.out:o.in:o.out;de(i,t,n);let a=t.seen.get(e);a.ref=i},lh=(e,t,r,n)=>{let o=e._zod.def;de(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType,r.readOnly=!0},dh=(e,t,r,n)=>{let o=e._zod.def;de(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType},fl=(e,t,r,n)=>{let o=e._zod.def;de(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType},ph=(e,t,r,n)=>{let o=e._zod.innerType;de(o,t,n);let i=t.seen.get(e);i.ref=o};function Gr(e){return!!e._zod}function Gt(e,t){return Gr(e)?Fr(e,t):e.safeParse(t)}function Bi(e){if(!e)return;let t;if(Gr(e)?t=e._zod?.def?.shape:t=e.shape,!!t){if(typeof t=="function")try{return t()}catch{return}return t}}function hh(e){if(Gr(e)){let i=e._zod?.def;if(i){if(i.value!==void 0)return i.value;if(Array.isArray(i.values)&&i.values.length>0)return i.values[0]}}let r=e._def;if(r){if(r.value!==void 0)return r.value;if(Array.isArray(r.values)&&r.values.length>0)return r.values[0]}let n=e.value;if(n!==void 0)return n}var lo={};vn(lo,{ZodAny:()=>Nh,ZodArray:()=>Ah,ZodBase64:()=>Al,ZodBase64URL:()=>Ul,ZodBigInt:()=>ia,ZodBigIntFormat:()=>Ll,ZodBoolean:()=>oa,ZodCIDRv4:()=>Rl,ZodCIDRv6:()=>Zl,ZodCUID:()=>El,ZodCUID2:()=>Tl,ZodCatch:()=>ng,ZodCodec:()=>Gl,ZodCustom:()=>la,ZodCustomStringFormat:()=>fo,ZodDate:()=>Fl,ZodDefault:()=>Xh,ZodDiscriminatedUnion:()=>Ch,ZodE164:()=>Cl,ZodEmail:()=>wl,ZodEmoji:()=>zl,ZodEnum:()=>po,ZodExactOptional:()=>Gh,ZodFile:()=>Kh,ZodFunction:()=>pg,ZodGUID:()=>Yi,ZodIPv4:()=>Nl,ZodIPv6:()=>Dl,ZodIntersection:()=>Mh,ZodJWT:()=>Ml,ZodKSUID:()=>jl,ZodLazy:()=>ug,ZodLiteral:()=>Jh,ZodMAC:()=>Th,ZodMap:()=>Fh,ZodNaN:()=>ig,ZodNanoID:()=>Il,ZodNever:()=>Rh,ZodNonOptional:()=>Kl,ZodNull:()=>jh,ZodNullable:()=>Bh,ZodNumber:()=>na,ZodNumberFormat:()=>Hr,ZodObject:()=>aa,ZodOptional:()=>Jl,ZodPipe:()=>Wl,ZodPrefault:()=>Qh,ZodPromise:()=>dg,ZodReadonly:()=>ag,ZodRecord:()=>ua,ZodSet:()=>Vh,ZodString:()=>ta,ZodStringFormat:()=>ce,ZodSuccess:()=>rg,ZodSymbol:()=>Ph,ZodTemplateLiteral:()=>cg,ZodTransform:()=>Wh,ZodTuple:()=>Lh,ZodType:()=>q,ZodULID:()=>Pl,ZodURL:()=>ra,ZodUUID:()=>Nt,ZodUndefined:()=>Oh,ZodUnion:()=>sa,ZodUnknown:()=>Dh,ZodVoid:()=>Zh,ZodXID:()=>Ol,ZodXor:()=>Uh,_ZodString:()=>Sl,_default:()=>Yh,_function:()=>Rx,any:()=>vx,array:()=>H,base64:()=>ex,base64url:()=>tx,bigint:()=>px,boolean:()=>_e,catch:()=>og,check:()=>Zx,cidrv4:()=>Yb,cidrv6:()=>Qb,codec:()=>jx,cuid:()=>Vb,cuid2:()=>Jb,custom:()=>Hl,date:()=>yx,describe:()=>Ax,discriminatedUnion:()=>ca,e164:()=>rx,email:()=>Db,emoji:()=>qb,enum:()=>Ee,exactOptional:()=>Hh,file:()=>Ex,float32:()=>cx,float64:()=>ux,function:()=>Rx,guid:()=>Rb,hash:()=>sx,hex:()=>ax,hostname:()=>ix,httpUrl:()=>Lb,instanceof:()=>Cx,int:()=>kl,int32:()=>lx,int64:()=>fx,intersection:()=>ho,ipv4:()=>Hb,ipv6:()=>Xb,json:()=>Lx,jwt:()=>nx,keyof:()=>$x,ksuid:()=>Gb,lazy:()=>lg,literal:()=>T,looseObject:()=>Ie,looseRecord:()=>Sx,mac:()=>Bb,map:()=>wx,meta:()=>Ux,nan:()=>Ox,nanoid:()=>Fb,nativeEnum:()=>Ix,never:()=>ql,nonoptional:()=>tg,null:()=>mo,nullable:()=>Qi,nullish:()=>Tx,number:()=>ne,object:()=>z,optional:()=>fe,partialRecord:()=>kx,pipe:()=>ea,prefault:()=>eg,preprocess:()=>da,promise:()=>Dx,readonly:()=>sg,record:()=>pe,refine:()=>fg,set:()=>zx,strictObject:()=>bx,string:()=>h,stringFormat:()=>ox,stringbool:()=>Mx,success:()=>Px,superRefine:()=>mg,symbol:()=>hx,templateLiteral:()=>Nx,transform:()=>Vl,tuple:()=>qh,uint32:()=>dx,uint64:()=>mx,ulid:()=>Kb,undefined:()=>gx,union:()=>ie,unknown:()=>ue,url:()=>Mb,uuid:()=>Zb,uuidv4:()=>Ab,uuidv6:()=>Ub,uuidv7:()=>Cb,void:()=>_x,xid:()=>Wb,xor:()=>xx});var Xi={};vn(Xi,{endsWith:()=>no,gt:()=>Ot,gte:()=>Re,includes:()=>to,length:()=>Kr,lowercase:()=>Qn,lt:()=>Pt,lte:()=>We,maxLength:()=>Jr,maxSize:()=>pr,mime:()=>oo,minLength:()=>Wt,minSize:()=>jt,multipleOf:()=>dr,negative:()=>tl,nonnegative:()=>nl,nonpositive:()=>rl,normalize:()=>io,overwrite:()=>_t,positive:()=>el,property:()=>ol,regex:()=>Yn,size:()=>Vr,slugify:()=>Ki,startsWith:()=>ro,toLowerCase:()=>so,toUpperCase:()=>co,trim:()=>ao,uppercase:()=>eo});var fr={};vn(fr,{ZodISODate:()=>vl,ZodISODateTime:()=>hl,ZodISODuration:()=>bl,ZodISOTime:()=>yl,date:()=>_l,datetime:()=>gl,duration:()=>xl,time:()=>$l});var hl=p("ZodISODateTime",(e,t)=>{Tc.init(e,t),ce.init(e,t)});function gl(e){return Ou(hl,e)}var vl=p("ZodISODate",(e,t)=>{Pc.init(e,t),ce.init(e,t)});function _l(e){return ju(vl,e)}var yl=p("ZodISOTime",(e,t)=>{Oc.init(e,t),ce.init(e,t)});function $l(e){return Nu(yl,e)}var bl=p("ZodISODuration",(e,t)=>{jc.init(e,t),ce.init(e,t)});function xl(e){return Du(bl,e)}var gh=(e,t)=>{di.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:r=>fi(e,r)},flatten:{value:r=>pi(e,r)},addIssue:{value:r=>{e.issues.push(r),e.message=JSON.stringify(e.issues,Mr,2)}},addIssues:{value:r=>{e.issues.push(...r),e.message=JSON.stringify(e.issues,Mr,2)}},isEmpty:{get(){return e.issues.length===0}}})},RD=p("ZodError",gh),Ge=p("ZodError",gh,{Parent:Error});var vh=An(Ge),_h=Cn(Ge),yh=Ln(Ge),$h=qn(Ge),bh=Pf(Ge),xh=Of(Ge),kh=jf(Ge),Sh=Nf(Ge),wh=Df(Ge),zh=Rf(Ge),Ih=Zf(Ge),Eh=Af(Ge);var q=p("ZodType",(e,t)=>(M.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:uo(e,"input"),output:uo(e,"output")}}),e.toJSONSchema=Tm(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...r)=>e.clone(y.mergeDefs(t,{checks:[...t.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),{parent:!0}),e.with=e.check,e.clone=(r,n)=>Ne(e,r,n),e.brand=()=>e,e.register=((r,n)=>(r.add(e,n),e)),e.parse=(r,n)=>vh(e,r,n,{callee:e.parse}),e.safeParse=(r,n)=>yh(e,r,n),e.parseAsync=async(r,n)=>_h(e,r,n,{callee:e.parseAsync}),e.safeParseAsync=async(r,n)=>$h(e,r,n),e.spa=e.safeParseAsync,e.encode=(r,n)=>bh(e,r,n),e.decode=(r,n)=>xh(e,r,n),e.encodeAsync=async(r,n)=>kh(e,r,n),e.decodeAsync=async(r,n)=>Sh(e,r,n),e.safeEncode=(r,n)=>wh(e,r,n),e.safeDecode=(r,n)=>zh(e,r,n),e.safeEncodeAsync=async(r,n)=>Ih(e,r,n),e.safeDecodeAsync=async(r,n)=>Eh(e,r,n),e.refine=(r,n)=>e.check(fg(r,n)),e.superRefine=r=>e.check(mg(r)),e.overwrite=r=>e.check(_t(r)),e.optional=()=>fe(e),e.exactOptional=()=>Hh(e),e.nullable=()=>Qi(e),e.nullish=()=>fe(Qi(e)),e.nonoptional=r=>tg(e,r),e.array=()=>H(e),e.or=r=>ie([e,r]),e.and=r=>ho(e,r),e.transform=r=>ea(e,Vl(r)),e.default=r=>Yh(e,r),e.prefault=r=>eg(e,r),e.catch=r=>og(e,r),e.pipe=r=>ea(e,r),e.readonly=()=>sg(e),e.describe=r=>{let n=e.clone();return De.add(n,{description:r}),n},Object.defineProperty(e,"description",{get(){return De.get(e)?.description},configurable:!0}),e.meta=(...r)=>{if(r.length===0)return De.get(e);let n=e.clone();return De.add(n,r[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=r=>r(e),e)),Sl=p("_ZodString",(e,t)=>{lr.init(e,t),q.init(e,t),e._zod.processJSONSchema=(n,o,i)=>Pm(e,n,o,i);let r=e._zod.bag;e.format=r.format??null,e.minLength=r.minimum??null,e.maxLength=r.maximum??null,e.regex=(...n)=>e.check(Yn(...n)),e.includes=(...n)=>e.check(to(...n)),e.startsWith=(...n)=>e.check(ro(...n)),e.endsWith=(...n)=>e.check(no(...n)),e.min=(...n)=>e.check(Wt(...n)),e.max=(...n)=>e.check(Jr(...n)),e.length=(...n)=>e.check(Kr(...n)),e.nonempty=(...n)=>e.check(Wt(1,...n)),e.lowercase=n=>e.check(Qn(n)),e.uppercase=n=>e.check(eo(n)),e.trim=()=>e.check(ao()),e.normalize=(...n)=>e.check(io(...n)),e.toLowerCase=()=>e.check(so()),e.toUpperCase=()=>e.check(co()),e.slugify=()=>e.check(Ki())}),ta=p("ZodString",(e,t)=>{lr.init(e,t),Sl.init(e,t),e.email=r=>e.check(zi(wl,r)),e.url=r=>e.check(Xn(ra,r)),e.jwt=r=>e.check(Ji(Ml,r)),e.emoji=r=>e.check(Oi(zl,r)),e.guid=r=>e.check(Bn(Yi,r)),e.uuid=r=>e.check(Ii(Nt,r)),e.uuidv4=r=>e.check(Ei(Nt,r)),e.uuidv6=r=>e.check(Ti(Nt,r)),e.uuidv7=r=>e.check(Pi(Nt,r)),e.nanoid=r=>e.check(ji(Il,r)),e.guid=r=>e.check(Bn(Yi,r)),e.cuid=r=>e.check(Ni(El,r)),e.cuid2=r=>e.check(Di(Tl,r)),e.ulid=r=>e.check(Ri(Pl,r)),e.base64=r=>e.check(qi(Al,r)),e.base64url=r=>e.check(Fi(Ul,r)),e.xid=r=>e.check(Zi(Ol,r)),e.ksuid=r=>e.check(Ai(jl,r)),e.ipv4=r=>e.check(Ui(Nl,r)),e.ipv6=r=>e.check(Ci(Dl,r)),e.cidrv4=r=>e.check(Mi(Rl,r)),e.cidrv6=r=>e.check(Li(Zl,r)),e.e164=r=>e.check(Vi(Cl,r)),e.datetime=r=>e.check(gl(r)),e.date=r=>e.check(_l(r)),e.time=r=>e.check($l(r)),e.duration=r=>e.check(xl(r))});function h(e){return Tu(ta,e)}var ce=p("ZodStringFormat",(e,t)=>{oe.init(e,t),Sl.init(e,t)}),wl=p("ZodEmail",(e,t)=>{$c.init(e,t),ce.init(e,t)});function Db(e){return zi(wl,e)}var Yi=p("ZodGUID",(e,t)=>{_c.init(e,t),ce.init(e,t)});function Rb(e){return Bn(Yi,e)}var Nt=p("ZodUUID",(e,t)=>{yc.init(e,t),ce.init(e,t)});function Zb(e){return Ii(Nt,e)}function Ab(e){return Ei(Nt,e)}function Ub(e){return Ti(Nt,e)}function Cb(e){return Pi(Nt,e)}var ra=p("ZodURL",(e,t)=>{bc.init(e,t),ce.init(e,t)});function Mb(e){return Xn(ra,e)}function Lb(e){return Xn(ra,{protocol:/^https?$/,hostname:Ye.domain,...y.normalizeParams(e)})}var zl=p("ZodEmoji",(e,t)=>{xc.init(e,t),ce.init(e,t)});function qb(e){return Oi(zl,e)}var Il=p("ZodNanoID",(e,t)=>{kc.init(e,t),ce.init(e,t)});function Fb(e){return ji(Il,e)}var El=p("ZodCUID",(e,t)=>{Sc.init(e,t),ce.init(e,t)});function Vb(e){return Ni(El,e)}var Tl=p("ZodCUID2",(e,t)=>{wc.init(e,t),ce.init(e,t)});function Jb(e){return Di(Tl,e)}var Pl=p("ZodULID",(e,t)=>{zc.init(e,t),ce.init(e,t)});function Kb(e){return Ri(Pl,e)}var Ol=p("ZodXID",(e,t)=>{Ic.init(e,t),ce.init(e,t)});function Wb(e){return Zi(Ol,e)}var jl=p("ZodKSUID",(e,t)=>{Ec.init(e,t),ce.init(e,t)});function Gb(e){return Ai(jl,e)}var Nl=p("ZodIPv4",(e,t)=>{Nc.init(e,t),ce.init(e,t)});function Hb(e){return Ui(Nl,e)}var Th=p("ZodMAC",(e,t)=>{Rc.init(e,t),ce.init(e,t)});function Bb(e){return Pu(Th,e)}var Dl=p("ZodIPv6",(e,t)=>{Dc.init(e,t),ce.init(e,t)});function Xb(e){return Ci(Dl,e)}var Rl=p("ZodCIDRv4",(e,t)=>{Zc.init(e,t),ce.init(e,t)});function Yb(e){return Mi(Rl,e)}var Zl=p("ZodCIDRv6",(e,t)=>{Ac.init(e,t),ce.init(e,t)});function Qb(e){return Li(Zl,e)}var Al=p("ZodBase64",(e,t)=>{Uc.init(e,t),ce.init(e,t)});function ex(e){return qi(Al,e)}var Ul=p("ZodBase64URL",(e,t)=>{Cc.init(e,t),ce.init(e,t)});function tx(e){return Fi(Ul,e)}var Cl=p("ZodE164",(e,t)=>{Mc.init(e,t),ce.init(e,t)});function rx(e){return Vi(Cl,e)}var Ml=p("ZodJWT",(e,t)=>{Lc.init(e,t),ce.init(e,t)});function nx(e){return Ji(Ml,e)}var fo=p("ZodCustomStringFormat",(e,t)=>{qc.init(e,t),ce.init(e,t)});function ox(e,t,r={}){return Wr(fo,e,t,r)}function ix(e){return Wr(fo,"hostname",Ye.hostname,e)}function ax(e){return Wr(fo,"hex",Ye.hex,e)}function sx(e,t){let r=t?.enc??"hex",n=`${e}_${r}`,o=Ye[n];if(!o)throw new Error(`Unrecognized hash format: ${n}`);return Wr(fo,n,o,t)}var na=p("ZodNumber",(e,t)=>{xi.init(e,t),q.init(e,t),e._zod.processJSONSchema=(n,o,i)=>Om(e,n,o,i),e.gt=(n,o)=>e.check(Ot(n,o)),e.gte=(n,o)=>e.check(Re(n,o)),e.min=(n,o)=>e.check(Re(n,o)),e.lt=(n,o)=>e.check(Pt(n,o)),e.lte=(n,o)=>e.check(We(n,o)),e.max=(n,o)=>e.check(We(n,o)),e.int=n=>e.check(kl(n)),e.safe=n=>e.check(kl(n)),e.positive=n=>e.check(Ot(0,n)),e.nonnegative=n=>e.check(Re(0,n)),e.negative=n=>e.check(Pt(0,n)),e.nonpositive=n=>e.check(We(0,n)),e.multipleOf=(n,o)=>e.check(dr(n,o)),e.step=(n,o)=>e.check(dr(n,o)),e.finite=()=>e;let r=e._zod.bag;e.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),e.isFinite=!0,e.format=r.format??null});function ne(e){return Ru(na,e)}var Hr=p("ZodNumberFormat",(e,t)=>{Fc.init(e,t),na.init(e,t)});function kl(e){return Zu(Hr,e)}function cx(e){return Au(Hr,e)}function ux(e){return Uu(Hr,e)}function lx(e){return Cu(Hr,e)}function dx(e){return Mu(Hr,e)}var oa=p("ZodBoolean",(e,t)=>{Wn.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>jm(e,r,n,o)});function _e(e){return Lu(oa,e)}var ia=p("ZodBigInt",(e,t)=>{ki.init(e,t),q.init(e,t),e._zod.processJSONSchema=(n,o,i)=>Nm(e,n,o,i),e.gte=(n,o)=>e.check(Re(n,o)),e.min=(n,o)=>e.check(Re(n,o)),e.gt=(n,o)=>e.check(Ot(n,o)),e.gte=(n,o)=>e.check(Re(n,o)),e.min=(n,o)=>e.check(Re(n,o)),e.lt=(n,o)=>e.check(Pt(n,o)),e.lte=(n,o)=>e.check(We(n,o)),e.max=(n,o)=>e.check(We(n,o)),e.positive=n=>e.check(Ot(BigInt(0),n)),e.negative=n=>e.check(Pt(BigInt(0),n)),e.nonpositive=n=>e.check(We(BigInt(0),n)),e.nonnegative=n=>e.check(Re(BigInt(0),n)),e.multipleOf=(n,o)=>e.check(dr(n,o));let r=e._zod.bag;e.minValue=r.minimum??null,e.maxValue=r.maximum??null,e.format=r.format??null});function px(e){return qu(ia,e)}var Ll=p("ZodBigIntFormat",(e,t)=>{Vc.init(e,t),ia.init(e,t)});function fx(e){return Fu(Ll,e)}function mx(e){return Vu(Ll,e)}var Ph=p("ZodSymbol",(e,t)=>{Jc.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Dm(e,r,n,o)});function hx(e){return Ju(Ph,e)}var Oh=p("ZodUndefined",(e,t)=>{Kc.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Zm(e,r,n,o)});function gx(e){return Ku(Oh,e)}var jh=p("ZodNull",(e,t)=>{Wc.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Rm(e,r,n,o)});function mo(e){return Wu(jh,e)}var Nh=p("ZodAny",(e,t)=>{Gc.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Cm(e,r,n,o)});function vx(){return Gu(Nh)}var Dh=p("ZodUnknown",(e,t)=>{Hc.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Mm(e,r,n,o)});function ue(){return Hu(Dh)}var Rh=p("ZodNever",(e,t)=>{Bc.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Um(e,r,n,o)});function ql(e){return Bu(Rh,e)}var Zh=p("ZodVoid",(e,t)=>{Xc.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Am(e,r,n,o)});function _x(e){return Xu(Zh,e)}var Fl=p("ZodDate",(e,t)=>{Yc.init(e,t),q.init(e,t),e._zod.processJSONSchema=(n,o,i)=>Lm(e,n,o,i),e.min=(n,o)=>e.check(Re(n,o)),e.max=(n,o)=>e.check(We(n,o));let r=e._zod.bag;e.minDate=r.minimum?new Date(r.minimum):null,e.maxDate=r.maximum?new Date(r.maximum):null});function yx(e){return Yu(Fl,e)}var Ah=p("ZodArray",(e,t)=>{Qc.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Qm(e,r,n,o),e.element=t.element,e.min=(r,n)=>e.check(Wt(r,n)),e.nonempty=r=>e.check(Wt(1,r)),e.max=(r,n)=>e.check(Jr(r,n)),e.length=(r,n)=>e.check(Kr(r,n)),e.unwrap=()=>e.element});function H(e,t){return Em(Ah,e,t)}function $x(e){let t=e._zod.def.shape;return Ee(Object.keys(t))}var aa=p("ZodObject",(e,t)=>{Sm.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>eh(e,r,n,o),y.defineLazy(e,"shape",()=>t.shape),e.keyof=()=>Ee(Object.keys(e._zod.def.shape)),e.catchall=r=>e.clone({...e._zod.def,catchall:r}),e.passthrough=()=>e.clone({...e._zod.def,catchall:ue()}),e.loose=()=>e.clone({...e._zod.def,catchall:ue()}),e.strict=()=>e.clone({...e._zod.def,catchall:ql()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=r=>y.extend(e,r),e.safeExtend=r=>y.safeExtend(e,r),e.merge=r=>y.merge(e,r),e.pick=r=>y.pick(e,r),e.omit=r=>y.omit(e,r),e.partial=(...r)=>y.partial(Jl,e,r[0]),e.required=(...r)=>y.required(Kl,e,r[0])});function z(e,t){let r={type:"object",shape:e??{},...y.normalizeParams(t)};return new aa(r)}function bx(e,t){return new aa({type:"object",shape:e,catchall:ql(),...y.normalizeParams(t)})}function Ie(e,t){return new aa({type:"object",shape:e,catchall:ue(),...y.normalizeParams(t)})}var sa=p("ZodUnion",(e,t)=>{Gn.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>pl(e,r,n,o),e.options=t.options});function ie(e,t){return new sa({type:"union",options:e,...y.normalizeParams(t)})}var Uh=p("ZodXor",(e,t)=>{sa.init(e,t),eu.init(e,t),e._zod.processJSONSchema=(r,n,o)=>pl(e,r,n,o),e.options=t.options});function xx(e,t){return new Uh({type:"union",options:e,inclusive:!1,...y.normalizeParams(t)})}var Ch=p("ZodDiscriminatedUnion",(e,t)=>{sa.init(e,t),tu.init(e,t)});function ca(e,t,r){return new Ch({type:"union",options:t,discriminator:e,...y.normalizeParams(r)})}var Mh=p("ZodIntersection",(e,t)=>{ru.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>th(e,r,n,o)});function ho(e,t){return new Mh({type:"intersection",left:e,right:t})}var Lh=p("ZodTuple",(e,t)=>{Si.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>rh(e,r,n,o),e.rest=r=>e.clone({...e._zod.def,rest:r})});function qh(e,t,r){let n=t instanceof M,o=n?r:t,i=n?t:null;return new Lh({type:"tuple",items:e,rest:i,...y.normalizeParams(o)})}var ua=p("ZodRecord",(e,t)=>{nu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>nh(e,r,n,o),e.keyType=t.keyType,e.valueType=t.valueType});function pe(e,t,r){return new ua({type:"record",keyType:e,valueType:t,...y.normalizeParams(r)})}function kx(e,t,r){let n=Ne(e);return n._zod.values=void 0,new ua({type:"record",keyType:n,valueType:t,...y.normalizeParams(r)})}function Sx(e,t,r){return new ua({type:"record",keyType:e,valueType:t,mode:"loose",...y.normalizeParams(r)})}var Fh=p("ZodMap",(e,t)=>{ou.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Xm(e,r,n,o),e.keyType=t.keyType,e.valueType=t.valueType,e.min=(...r)=>e.check(jt(...r)),e.nonempty=r=>e.check(jt(1,r)),e.max=(...r)=>e.check(pr(...r)),e.size=(...r)=>e.check(Vr(...r))});function wx(e,t,r){return new Fh({type:"map",keyType:e,valueType:t,...y.normalizeParams(r)})}var Vh=p("ZodSet",(e,t)=>{iu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Ym(e,r,n,o),e.min=(...r)=>e.check(jt(...r)),e.nonempty=r=>e.check(jt(1,r)),e.max=(...r)=>e.check(pr(...r)),e.size=(...r)=>e.check(Vr(...r))});function zx(e,t){return new Vh({type:"set",valueType:e,...y.normalizeParams(t)})}var po=p("ZodEnum",(e,t)=>{au.init(e,t),q.init(e,t),e._zod.processJSONSchema=(n,o,i)=>qm(e,n,o,i),e.enum=t.entries,e.options=Object.values(t.entries);let r=new Set(Object.keys(t.entries));e.extract=(n,o)=>{let i={};for(let a of n)if(r.has(a))i[a]=t.entries[a];else throw new Error(`Key ${a} not found in enum`);return new po({...t,checks:[],...y.normalizeParams(o),entries:i})},e.exclude=(n,o)=>{let i={...t.entries};for(let a of n)if(r.has(a))delete i[a];else throw new Error(`Key ${a} not found in enum`);return new po({...t,checks:[],...y.normalizeParams(o),entries:i})}});function Ee(e,t){let r=Array.isArray(e)?Object.fromEntries(e.map(n=>[n,n])):e;return new po({type:"enum",entries:r,...y.normalizeParams(t)})}function Ix(e,t){return new po({type:"enum",entries:e,...y.normalizeParams(t)})}var Jh=p("ZodLiteral",(e,t)=>{su.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Fm(e,r,n,o),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function T(e,t){return new Jh({type:"literal",values:Array.isArray(e)?e:[e],...y.normalizeParams(t)})}var Kh=p("ZodFile",(e,t)=>{cu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Km(e,r,n,o),e.min=(r,n)=>e.check(jt(r,n)),e.max=(r,n)=>e.check(pr(r,n)),e.mime=(r,n)=>e.check(oo(Array.isArray(r)?r:[r],n))});function Ex(e){return il(Kh,e)}var Wh=p("ZodTransform",(e,t)=>{uu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Bm(e,r,n,o),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new sr(e.constructor.name);r.addIssue=i=>{if(typeof i=="string")r.issues.push(y.issue(i,r.value,t));else{let a=i;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=r.value),a.inst??(a.inst=e),r.issues.push(y.issue(a))}};let o=t.transform(r.value,r);return o instanceof Promise?o.then(i=>(r.value=i,r)):(r.value=o,r)}});function Vl(e){return new Wh({type:"transform",transform:e})}var Jl=p("ZodOptional",(e,t)=>{wi.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>fl(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function fe(e){return new Jl({type:"optional",innerType:e})}var Gh=p("ZodExactOptional",(e,t)=>{lu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>fl(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Hh(e){return new Gh({type:"optional",innerType:e})}var Bh=p("ZodNullable",(e,t)=>{du.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>oh(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Qi(e){return new Bh({type:"nullable",innerType:e})}function Tx(e){return fe(Qi(e))}var Xh=p("ZodDefault",(e,t)=>{pu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ah(e,r,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Yh(e,t){return new Xh({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():y.shallowClone(t)}})}var Qh=p("ZodPrefault",(e,t)=>{fu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>sh(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function eg(e,t){return new Qh({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():y.shallowClone(t)}})}var Kl=p("ZodNonOptional",(e,t)=>{mu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ih(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function tg(e,t){return new Kl({type:"nonoptional",innerType:e,...y.normalizeParams(t)})}var rg=p("ZodSuccess",(e,t)=>{hu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Wm(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Px(e){return new rg({type:"success",innerType:e})}var ng=p("ZodCatch",(e,t)=>{gu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ch(e,r,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function og(e,t){return new ng({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var ig=p("ZodNaN",(e,t)=>{vu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Vm(e,r,n,o)});function Ox(e){return Qu(ig,e)}var Wl=p("ZodPipe",(e,t)=>{_u.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>uh(e,r,n,o),e.in=t.in,e.out=t.out});function ea(e,t){return new Wl({type:"pipe",in:e,out:t})}var Gl=p("ZodCodec",(e,t)=>{Wl.init(e,t),Hn.init(e,t)});function jx(e,t,r){return new Gl({type:"pipe",in:e,out:t,transform:r.decode,reverseTransform:r.encode})}var ag=p("ZodReadonly",(e,t)=>{yu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>lh(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function sg(e){return new ag({type:"readonly",innerType:e})}var cg=p("ZodTemplateLiteral",(e,t)=>{$u.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Jm(e,r,n,o)});function Nx(e,t){return new cg({type:"template_literal",parts:e,...y.normalizeParams(t)})}var ug=p("ZodLazy",(e,t)=>{ku.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ph(e,r,n,o),e.unwrap=()=>e._zod.def.getter()});function lg(e){return new ug({type:"lazy",getter:e})}var dg=p("ZodPromise",(e,t)=>{xu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>dh(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Dx(e){return new dg({type:"promise",innerType:e})}var pg=p("ZodFunction",(e,t)=>{bu.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Hm(e,r,n,o)});function Rx(e){return new pg({type:"function",input:Array.isArray(e?.input)?qh(e?.input):e?.input??H(ue()),output:e?.output??ue()})}var la=p("ZodCustom",(e,t)=>{Su.init(e,t),q.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Gm(e,r,n,o)});function Zx(e){let t=new se({check:"custom"});return t._zod.check=e,t}function Hl(e,t){return al(la,e??(()=>!0),t)}function fg(e,t={}){return sl(la,e,t)}function mg(e){return cl(e)}var Ax=ul,Ux=ll;function Cx(e,t={}){let r=new la({type:"custom",check:"custom",fn:n=>n instanceof e,abort:!0,...y.normalizeParams(t)});return r._zod.bag.Class=e,r._zod.check=n=>{n.value instanceof e||n.issues.push({code:"invalid_type",expected:e.name,input:n.value,inst:r,path:[...r._zod.def.path??[]]})},r}var Mx=(...e)=>dl({Codec:Gl,Boolean:oa,String:ta},...e);function Lx(e){let t=lg(()=>ie([h(e),ne(),_e(),mo(),H(t),pe(h(),t)]));return t}function da(e,t){return ea(Vl(e),t)}var hg;hg||(hg={});var FD={...lo,...Xi,iso:fr};ye(wu());var Xl="2025-11-25";var gg=[Xl,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Ht="io.modelcontextprotocol/related-task",fa="2.0",$e=Hl(e=>e!==null&&(typeof e=="object"||typeof e=="function")),vg=ie([h(),ne().int()]),_g=h(),c4=Ie({ttl:ie([ne(),mo()]).optional(),pollInterval:ne().optional()}),Jx=z({ttl:ne().optional()}),Kx=z({taskId:h()}),Yl=Ie({progressToken:vg.optional(),[Ht]:Kx.optional()}),He=z({_meta:Yl.optional()}),go=He.extend({task:Jx.optional()}),yg=e=>go.safeParse(e).success,be=z({method:h(),params:He.loose().optional()}),Qe=z({_meta:Yl.optional()}),et=z({method:h(),params:Qe.loose().optional()}),xe=Ie({_meta:Yl.optional()}),ma=ie([h(),ne().int()]),$g=z({jsonrpc:T(fa),id:ma,...be.shape}).strict(),Ql=e=>$g.safeParse(e).success,bg=z({jsonrpc:T(fa),...et.shape}).strict(),xg=e=>bg.safeParse(e).success,ed=z({jsonrpc:T(fa),id:ma,result:xe}).strict(),vo=e=>ed.safeParse(e).success;var Y;(function(e){e[e.ConnectionClosed=-32e3]="ConnectionClosed",e[e.RequestTimeout=-32001]="RequestTimeout",e[e.ParseError=-32700]="ParseError",e[e.InvalidRequest=-32600]="InvalidRequest",e[e.MethodNotFound=-32601]="MethodNotFound",e[e.InvalidParams=-32602]="InvalidParams",e[e.InternalError=-32603]="InternalError",e[e.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(Y||(Y={}));var td=z({jsonrpc:T(fa),id:ma.optional(),error:z({code:ne().int(),message:h(),data:ue().optional()})}).strict();var kg=e=>td.safeParse(e).success;var Sg=ie([$g,bg,ed,td]),u4=ie([ed,td]),ha=xe.strict(),Wx=Qe.extend({requestId:ma.optional(),reason:h().optional()}),ga=et.extend({method:T("notifications/cancelled"),params:Wx}),Gx=z({src:h(),mimeType:h().optional(),sizes:H(h()).optional(),theme:Ee(["light","dark"]).optional()}),_o=z({icons:H(Gx).optional()}),Br=z({name:h(),title:h().optional()}),wg=Br.extend({...Br.shape,..._o.shape,version:h(),websiteUrl:h().optional(),description:h().optional()}),Hx=ho(z({applyDefaults:_e().optional()}),pe(h(),ue())),Bx=da(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,ho(z({form:Hx.optional(),url:$e.optional()}),pe(h(),ue()).optional())),Xx=Ie({list:$e.optional(),cancel:$e.optional(),requests:Ie({sampling:Ie({createMessage:$e.optional()}).optional(),elicitation:Ie({create:$e.optional()}).optional()}).optional()}),Yx=Ie({list:$e.optional(),cancel:$e.optional(),requests:Ie({tools:Ie({call:$e.optional()}).optional()}).optional()}),Qx=z({experimental:pe(h(),$e).optional(),sampling:z({context:$e.optional(),tools:$e.optional()}).optional(),elicitation:Bx.optional(),roots:z({listChanged:_e().optional()}).optional(),tasks:Xx.optional()}),ek=He.extend({protocolVersion:h(),capabilities:Qx,clientInfo:wg}),rd=be.extend({method:T("initialize"),params:ek});var tk=z({experimental:pe(h(),$e).optional(),logging:$e.optional(),completions:$e.optional(),prompts:z({listChanged:_e().optional()}).optional(),resources:z({subscribe:_e().optional(),listChanged:_e().optional()}).optional(),tools:z({listChanged:_e().optional()}).optional(),tasks:Yx.optional()}),rk=xe.extend({protocolVersion:h(),capabilities:tk,serverInfo:wg,instructions:h().optional()}),nd=et.extend({method:T("notifications/initialized"),params:Qe.optional()});var va=be.extend({method:T("ping"),params:He.optional()}),nk=z({progress:ne(),total:fe(ne()),message:fe(h())}),ok=z({...Qe.shape,...nk.shape,progressToken:vg}),_a=et.extend({method:T("notifications/progress"),params:ok}),ik=He.extend({cursor:_g.optional()}),yo=be.extend({params:ik.optional()}),$o=xe.extend({nextCursor:_g.optional()}),ak=Ee(["working","input_required","completed","failed","cancelled"]),bo=z({taskId:h(),status:ak,ttl:ie([ne(),mo()]),createdAt:h(),lastUpdatedAt:h(),pollInterval:fe(ne()),statusMessage:fe(h())}),Xr=xe.extend({task:bo}),sk=Qe.merge(bo),xo=et.extend({method:T("notifications/tasks/status"),params:sk}),ya=be.extend({method:T("tasks/get"),params:He.extend({taskId:h()})}),$a=xe.merge(bo),ba=be.extend({method:T("tasks/result"),params:He.extend({taskId:h()})}),l4=xe.loose(),xa=yo.extend({method:T("tasks/list")}),ka=$o.extend({tasks:H(bo)}),Sa=be.extend({method:T("tasks/cancel"),params:He.extend({taskId:h()})}),zg=xe.merge(bo),Ig=z({uri:h(),mimeType:fe(h()),_meta:pe(h(),ue()).optional()}),Eg=Ig.extend({text:h()}),od=h().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),Tg=Ig.extend({blob:od}),ko=Ee(["user","assistant"]),Yr=z({audience:H(ko).optional(),priority:ne().min(0).max(1).optional(),lastModified:fr.datetime({offset:!0}).optional()}),Pg=z({...Br.shape,..._o.shape,uri:h(),description:fe(h()),mimeType:fe(h()),annotations:Yr.optional(),_meta:fe(Ie({}))}),ck=z({...Br.shape,..._o.shape,uriTemplate:h(),description:fe(h()),mimeType:fe(h()),annotations:Yr.optional(),_meta:fe(Ie({}))}),uk=yo.extend({method:T("resources/list")}),lk=$o.extend({resources:H(Pg)}),dk=yo.extend({method:T("resources/templates/list")}),pk=$o.extend({resourceTemplates:H(ck)}),id=He.extend({uri:h()}),fk=id,mk=be.extend({method:T("resources/read"),params:fk}),hk=xe.extend({contents:H(ie([Eg,Tg]))}),gk=et.extend({method:T("notifications/resources/list_changed"),params:Qe.optional()}),vk=id,_k=be.extend({method:T("resources/subscribe"),params:vk}),yk=id,$k=be.extend({method:T("resources/unsubscribe"),params:yk}),bk=Qe.extend({uri:h()}),xk=et.extend({method:T("notifications/resources/updated"),params:bk}),kk=z({name:h(),description:fe(h()),required:fe(_e())}),Sk=z({...Br.shape,..._o.shape,description:fe(h()),arguments:fe(H(kk)),_meta:fe(Ie({}))}),wk=yo.extend({method:T("prompts/list")}),zk=$o.extend({prompts:H(Sk)}),Ik=He.extend({name:h(),arguments:pe(h(),h()).optional()}),Ek=be.extend({method:T("prompts/get"),params:Ik}),ad=z({type:T("text"),text:h(),annotations:Yr.optional(),_meta:pe(h(),ue()).optional()}),sd=z({type:T("image"),data:od,mimeType:h(),annotations:Yr.optional(),_meta:pe(h(),ue()).optional()}),cd=z({type:T("audio"),data:od,mimeType:h(),annotations:Yr.optional(),_meta:pe(h(),ue()).optional()}),Tk=z({type:T("tool_use"),name:h(),id:h(),input:pe(h(),ue()),_meta:pe(h(),ue()).optional()}),Pk=z({type:T("resource"),resource:ie([Eg,Tg]),annotations:Yr.optional(),_meta:pe(h(),ue()).optional()}),Ok=Pg.extend({type:T("resource_link")}),ud=ie([ad,sd,cd,Ok,Pk]),jk=z({role:ko,content:ud}),Nk=xe.extend({description:h().optional(),messages:H(jk)}),Dk=et.extend({method:T("notifications/prompts/list_changed"),params:Qe.optional()}),Rk=z({title:h().optional(),readOnlyHint:_e().optional(),destructiveHint:_e().optional(),idempotentHint:_e().optional(),openWorldHint:_e().optional()}),Zk=z({taskSupport:Ee(["required","optional","forbidden"]).optional()}),Og=z({...Br.shape,..._o.shape,description:h().optional(),inputSchema:z({type:T("object"),properties:pe(h(),$e).optional(),required:H(h()).optional()}).catchall(ue()),outputSchema:z({type:T("object"),properties:pe(h(),$e).optional(),required:H(h()).optional()}).catchall(ue()).optional(),annotations:Rk.optional(),execution:Zk.optional(),_meta:pe(h(),ue()).optional()}),ld=yo.extend({method:T("tools/list")}),Ak=$o.extend({tools:H(Og)}),wa=xe.extend({content:H(ud).default([]),structuredContent:pe(h(),ue()).optional(),isError:_e().optional()}),d4=wa.or(xe.extend({toolResult:ue()})),Uk=go.extend({name:h(),arguments:pe(h(),ue()).optional()}),So=be.extend({method:T("tools/call"),params:Uk}),Ck=et.extend({method:T("notifications/tools/list_changed"),params:Qe.optional()}),p4=z({autoRefresh:_e().default(!0),debounceMs:ne().int().nonnegative().default(300)}),wo=Ee(["debug","info","notice","warning","error","critical","alert","emergency"]),Mk=He.extend({level:wo}),dd=be.extend({method:T("logging/setLevel"),params:Mk}),Lk=Qe.extend({level:wo,logger:h().optional(),data:ue()}),qk=et.extend({method:T("notifications/message"),params:Lk}),Fk=z({name:h().optional()}),Vk=z({hints:H(Fk).optional(),costPriority:ne().min(0).max(1).optional(),speedPriority:ne().min(0).max(1).optional(),intelligencePriority:ne().min(0).max(1).optional()}),Jk=z({mode:Ee(["auto","required","none"]).optional()}),Kk=z({type:T("tool_result"),toolUseId:h().describe("The unique identifier for the corresponding tool call."),content:H(ud).default([]),structuredContent:z({}).loose().optional(),isError:_e().optional(),_meta:pe(h(),ue()).optional()}),Wk=ca("type",[ad,sd,cd]),pa=ca("type",[ad,sd,cd,Tk,Kk]),Gk=z({role:ko,content:ie([pa,H(pa)]),_meta:pe(h(),ue()).optional()}),Hk=go.extend({messages:H(Gk),modelPreferences:Vk.optional(),systemPrompt:h().optional(),includeContext:Ee(["none","thisServer","allServers"]).optional(),temperature:ne().optional(),maxTokens:ne().int(),stopSequences:H(h()).optional(),metadata:$e.optional(),tools:H(Og).optional(),toolChoice:Jk.optional()}),Bk=be.extend({method:T("sampling/createMessage"),params:Hk}),pd=xe.extend({model:h(),stopReason:fe(Ee(["endTurn","stopSequence","maxTokens"]).or(h())),role:ko,content:Wk}),fd=xe.extend({model:h(),stopReason:fe(Ee(["endTurn","stopSequence","maxTokens","toolUse"]).or(h())),role:ko,content:ie([pa,H(pa)])}),Xk=z({type:T("boolean"),title:h().optional(),description:h().optional(),default:_e().optional()}),Yk=z({type:T("string"),title:h().optional(),description:h().optional(),minLength:ne().optional(),maxLength:ne().optional(),format:Ee(["email","uri","date","date-time"]).optional(),default:h().optional()}),Qk=z({type:Ee(["number","integer"]),title:h().optional(),description:h().optional(),minimum:ne().optional(),maximum:ne().optional(),default:ne().optional()}),eS=z({type:T("string"),title:h().optional(),description:h().optional(),enum:H(h()),default:h().optional()}),tS=z({type:T("string"),title:h().optional(),description:h().optional(),oneOf:H(z({const:h(),title:h()})),default:h().optional()}),rS=z({type:T("string"),title:h().optional(),description:h().optional(),enum:H(h()),enumNames:H(h()).optional(),default:h().optional()}),nS=ie([eS,tS]),oS=z({type:T("array"),title:h().optional(),description:h().optional(),minItems:ne().optional(),maxItems:ne().optional(),items:z({type:T("string"),enum:H(h())}),default:H(h()).optional()}),iS=z({type:T("array"),title:h().optional(),description:h().optional(),minItems:ne().optional(),maxItems:ne().optional(),items:z({anyOf:H(z({const:h(),title:h()}))}),default:H(h()).optional()}),aS=ie([oS,iS]),sS=ie([rS,nS,aS]),cS=ie([sS,Xk,Yk,Qk]),uS=go.extend({mode:T("form").optional(),message:h(),requestedSchema:z({type:T("object"),properties:pe(h(),cS),required:H(h()).optional()})}),lS=go.extend({mode:T("url"),message:h(),elicitationId:h(),url:h().url()}),dS=ie([uS,lS]),pS=be.extend({method:T("elicitation/create"),params:dS}),fS=Qe.extend({elicitationId:h()}),mS=et.extend({method:T("notifications/elicitation/complete"),params:fS}),za=xe.extend({action:Ee(["accept","decline","cancel"]),content:da(e=>e===null?void 0:e,pe(h(),ie([h(),ne(),_e(),H(h())])).optional())}),hS=z({type:T("ref/resource"),uri:h()});var gS=z({type:T("ref/prompt"),name:h()}),vS=He.extend({ref:ie([gS,hS]),argument:z({name:h(),value:h()}),context:z({arguments:pe(h(),h()).optional()}).optional()}),_S=be.extend({method:T("completion/complete"),params:vS});var yS=xe.extend({completion:Ie({values:H(h()).max(100),total:fe(ne().int()),hasMore:fe(_e())})}),$S=z({uri:h().startsWith("file://"),name:h().optional(),_meta:pe(h(),ue()).optional()}),bS=be.extend({method:T("roots/list"),params:He.optional()}),md=xe.extend({roots:H($S)}),xS=et.extend({method:T("notifications/roots/list_changed"),params:Qe.optional()}),f4=ie([va,rd,_S,dd,Ek,wk,uk,dk,mk,_k,$k,So,ld,ya,ba,xa,Sa]),m4=ie([ga,_a,nd,xS,xo]),h4=ie([ha,pd,fd,za,md,$a,ka,Xr]),g4=ie([va,Bk,pS,bS,ya,ba,xa,Sa]),v4=ie([ga,_a,qk,xk,gk,Ck,Dk,xo,mS]),_4=ie([ha,rk,yS,Nk,zk,lk,pk,hk,wa,Ak,$a,ka,Xr]),J=class e extends Error{constructor(t,r,n){super(`MCP error ${t}: ${r}`),this.code=t,this.data=n,this.name="McpError"}static fromError(t,r,n){if(t===Y.UrlElicitationRequired&&n){let o=n;if(o.elicitations)return new Bl(o.elicitations,r)}return new e(t,r,n)}},Bl=class extends J{constructor(t,r=`URL elicitation${t.length>1?"s":""} required`){super(Y.UrlElicitationRequired,r,{elicitations:t})}get elicitations(){return this.data?.elicitations??[]}};function Bt(e){return e==="completed"||e==="failed"||e==="cancelled"}var kS=Symbol("Let zodToJsonSchema decide on which parser to use");var Y4=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function hd(e){let r=Bi(e)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=hh(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function gd(e,t){let r=Gt(e,t);if(!r.success)throw r.error;return r.data}var TS=6e4,Ia=class{constructor(t){this._options=t,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(ga,r=>{this._oncancel(r)}),this.setNotificationHandler(_a,r=>{this._onprogress(r)}),this.setRequestHandler(va,r=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(ya,async(r,n)=>{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new J(Y.InvalidParams,"Failed to retrieve task: Task not found");return{...o}}),this.setRequestHandler(ba,async(r,n)=>{let o=async()=>{let i=r.params.taskId;if(this._taskMessageQueue){let s;for(;s=await this._taskMessageQueue.dequeue(i,n.sessionId);){if(s.type==="response"||s.type==="error"){let c=s.message,u=c.id,l=this._requestResolvers.get(u);if(l)if(this._requestResolvers.delete(u),s.type==="response")l(c);else{let d=c,m=new J(d.error.code,d.error.message,d.error.data);l(m)}else{let d=s.type==="response"?"Response":"Error";this._onerror(new Error(`${d} handler missing for request ${u}`))}continue}await this._transport?.send(s.message,{relatedRequestId:n.requestId})}}let a=await this._taskStore.getTask(i,n.sessionId);if(!a)throw new J(Y.InvalidParams,`Task not found: ${i}`);if(!Bt(a.status))return await this._waitForTaskUpdate(i,n.signal),await o();if(Bt(a.status)){let s=await this._taskStore.getTaskResult(i,n.sessionId);return this._clearTaskQueue(i),{...s,_meta:{...s._meta,[Ht]:{taskId:i}}}}return await o()};return await o()}),this.setRequestHandler(xa,async(r,n)=>{try{let{tasks:o,nextCursor:i}=await this._taskStore.listTasks(r.params?.cursor,n.sessionId);return{tasks:o,nextCursor:i,_meta:{}}}catch(o){throw new J(Y.InvalidParams,`Failed to list tasks: ${o instanceof Error?o.message:String(o)}`)}}),this.setRequestHandler(Sa,async(r,n)=>{try{let o=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!o)throw new J(Y.InvalidParams,`Task not found: ${r.params.taskId}`);if(Bt(o.status))throw new J(Y.InvalidParams,`Cannot cancel task in terminal status: ${o.status}`);await this._taskStore.updateTaskStatus(r.params.taskId,"cancelled","Client cancelled task execution.",n.sessionId),this._clearTaskQueue(r.params.taskId);let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new J(Y.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...i}}catch(o){throw o instanceof J?o:new J(Y.InvalidRequest,`Failed to cancel task: ${o instanceof Error?o.message:String(o)}`)}}))}async _oncancel(t){if(!t.params.requestId)return;this._requestHandlerAbortControllers.get(t.params.requestId)?.abort(t.params.reason)}_setupTimeout(t,r,n,o,i=!1){this._timeoutInfo.set(t,{timeoutId:setTimeout(o,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:i,onTimeout:o})}_resetTimeout(t){let r=this._timeoutInfo.get(t);if(!r)return!1;let n=Date.now()-r.startTime;if(r.maxTotalTimeout&&n>=r.maxTotalTimeout)throw this._timeoutInfo.delete(t),J.fromError(Y.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:n});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(t){let r=this._timeoutInfo.get(t);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(t))}async connect(t){this._transport=t;let r=this.transport?.onclose;this._transport.onclose=()=>{r?.(),this._onclose()};let n=this.transport?.onerror;this._transport.onerror=i=>{n?.(i),this._onerror(i)};let o=this._transport?.onmessage;this._transport.onmessage=(i,a)=>{o?.(i,a),vo(i)||kg(i)?this._onresponse(i):Ql(i)?this._onrequest(i,a):xg(i)?this._onnotification(i):this._onerror(new Error(`Unknown message type: ${JSON.stringify(i)}`))},await this._transport.start()}_onclose(){let t=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();let r=J.fromError(Y.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let n of t.values())n(r)}_onerror(t){this.onerror?.(t)}_onnotification(t){let r=this._notificationHandlers.get(t.method)??this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(t)).catch(n=>this._onerror(new Error(`Uncaught error in notification handler: ${n}`)))}_onrequest(t,r){let n=this._requestHandlers.get(t.method)??this.fallbackRequestHandler,o=this._transport,i=t.params?._meta?.[Ht]?.taskId;if(n===void 0){let l={jsonrpc:"2.0",id:t.id,error:{code:Y.MethodNotFound,message:"Method not found"}};i&&this._taskMessageQueue?this._enqueueTaskMessage(i,{type:"error",message:l,timestamp:Date.now()},o?.sessionId).catch(d=>this._onerror(new Error(`Failed to enqueue error response: ${d}`))):o?.send(l).catch(d=>this._onerror(new Error(`Failed to send an error response: ${d}`)));return}let a=new AbortController;this._requestHandlerAbortControllers.set(t.id,a);let s=yg(t.params)?t.params.task:void 0,c=this._taskStore?this.requestTaskStore(t,o?.sessionId):void 0,u={signal:a.signal,sessionId:o?.sessionId,_meta:t.params?._meta,sendNotification:async l=>{let d={relatedRequestId:t.id};i&&(d.relatedTask={taskId:i}),await this.notification(l,d)},sendRequest:async(l,d,m)=>{let f={...m,relatedRequestId:t.id};i&&!f.relatedTask&&(f.relatedTask={taskId:i});let g=f.relatedTask?.taskId??i;return g&&c&&await c.updateTaskStatus(g,"input_required"),await this.request(l,d,f)},authInfo:r?.authInfo,requestId:t.id,requestInfo:r?.requestInfo,taskId:i,taskStore:c,taskRequestedTtl:s?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{s&&this.assertTaskHandlerCapability(t.method)}).then(()=>n(t,u)).then(async l=>{if(a.signal.aborted)return;let d={result:l,jsonrpc:"2.0",id:t.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"response",message:d,timestamp:Date.now()},o?.sessionId):await o?.send(d)},async l=>{if(a.signal.aborted)return;let d={jsonrpc:"2.0",id:t.id,error:{code:Number.isSafeInteger(l.code)?l.code:Y.InternalError,message:l.message??"Internal error",...l.data!==void 0&&{data:l.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"error",message:d,timestamp:Date.now()},o?.sessionId):await o?.send(d)}).catch(l=>this._onerror(new Error(`Failed to send response: ${l}`))).finally(()=>{this._requestHandlerAbortControllers.delete(t.id)})}_onprogress(t){let{progressToken:r,...n}=t.params,o=Number(r),i=this._progressHandlers.get(o);if(!i){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(t)}`));return}let a=this._responseHandlers.get(o),s=this._timeoutInfo.get(o);if(s&&a&&s.resetTimeoutOnProgress)try{this._resetTimeout(o)}catch(c){this._responseHandlers.delete(o),this._progressHandlers.delete(o),this._cleanupTimeout(o),a(c);return}i(n)}_onresponse(t){let r=Number(t.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),vo(t))n(t);else{let a=new J(t.error.code,t.error.message,t.error.data);n(a)}return}let o=this._responseHandlers.get(r);if(o===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(t)}`));return}this._responseHandlers.delete(r),this._cleanupTimeout(r);let i=!1;if(vo(t)&&t.result&&typeof t.result=="object"){let a=t.result;if(a.task&&typeof a.task=="object"){let s=a.task;typeof s.taskId=="string"&&(i=!0,this._taskProgressTokens.set(s.taskId,r))}}if(i||this._progressHandlers.delete(r),vo(t))o(t);else{let a=J.fromError(t.error.code,t.error.message,t.error.data);o(a)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(t,r,n){let{task:o}=n??{};if(!o){try{yield{type:"result",result:await this.request(t,r,n)}}catch(a){yield{type:"error",error:a instanceof J?a:new J(Y.InternalError,String(a))}}return}let i;try{let a=await this.request(t,Xr,n);if(a.task)i=a.task.taskId,yield{type:"taskCreated",task:a.task};else throw new J(Y.InternalError,"Task creation did not return a task");for(;;){let s=await this.getTask({taskId:i},n);if(yield{type:"taskStatus",task:s},Bt(s.status)){s.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)}:s.status==="failed"?yield{type:"error",error:new J(Y.InternalError,`Task ${i} failed`)}:s.status==="cancelled"&&(yield{type:"error",error:new J(Y.InternalError,`Task ${i} was cancelled`)});return}if(s.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)};return}let c=s.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),n?.signal?.throwIfAborted()}}catch(a){yield{type:"error",error:a instanceof J?a:new J(Y.InternalError,String(a))}}}request(t,r,n){let{relatedRequestId:o,resumptionToken:i,onresumptiontoken:a,task:s,relatedTask:c}=n??{};return new Promise((u,l)=>{let d=O=>{l(O)};if(!this._transport){d(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(t.method),s&&this.assertTaskCapability(t.method)}catch(O){d(O);return}n?.signal?.throwIfAborted();let m=this._requestMessageId++,f={...t,jsonrpc:"2.0",id:m};n?.onprogress&&(this._progressHandlers.set(m,n.onprogress),f.params={...t.params,_meta:{...t.params?._meta||{},progressToken:m}}),s&&(f.params={...f.params,task:s}),c&&(f.params={...f.params,_meta:{...f.params?._meta||{},[Ht]:c}});let g=O=>{this._responseHandlers.delete(m),this._progressHandlers.delete(m),this._cleanupTimeout(m),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:m,reason:String(O)}},{relatedRequestId:o,resumptionToken:i,onresumptiontoken:a}).catch(U=>this._onerror(new Error(`Failed to send cancellation: ${U}`)));let I=O instanceof J?O:new J(Y.RequestTimeout,String(O));l(I)};this._responseHandlers.set(m,O=>{if(!n?.signal?.aborted){if(O instanceof Error)return l(O);try{let I=Gt(r,O.result);I.success?u(I.data):l(I.error)}catch(I){l(I)}}}),n?.signal?.addEventListener("abort",()=>{g(n?.signal?.reason)});let v=n?.timeout??TS,$=()=>g(J.fromError(Y.RequestTimeout,"Request timed out",{timeout:v}));this._setupTimeout(m,v,n?.maxTotalTimeout,$,n?.resetTimeoutOnProgress??!1);let x=c?.taskId;if(x){let O=I=>{let U=this._responseHandlers.get(m);U?U(I):this._onerror(new Error(`Response handler missing for side-channeled request ${m}`))};this._requestResolvers.set(m,O),this._enqueueTaskMessage(x,{type:"request",message:f,timestamp:Date.now()}).catch(I=>{this._cleanupTimeout(m),l(I)})}else this._transport.send(f,{relatedRequestId:o,resumptionToken:i,onresumptiontoken:a}).catch(O=>{this._cleanupTimeout(m),l(O)})})}async getTask(t,r){return this.request({method:"tasks/get",params:t},$a,r)}async getTaskResult(t,r,n){return this.request({method:"tasks/result",params:t},r,n)}async listTasks(t,r){return this.request({method:"tasks/list",params:t},ka,r)}async cancelTask(t,r){return this.request({method:"tasks/cancel",params:t},zg,r)}async notification(t,r){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(t.method);let n=r?.relatedTask?.taskId;if(n){let s={...t,jsonrpc:"2.0",params:{...t.params,_meta:{...t.params?._meta||{},[Ht]:r.relatedTask}}};await this._enqueueTaskMessage(n,{type:"notification",message:s,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(t.method)&&!t.params&&!r?.relatedRequestId&&!r?.relatedTask){if(this._pendingDebouncedNotifications.has(t.method))return;this._pendingDebouncedNotifications.add(t.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(t.method),!this._transport)return;let s={...t,jsonrpc:"2.0"};r?.relatedTask&&(s={...s,params:{...s.params,_meta:{...s.params?._meta||{},[Ht]:r.relatedTask}}}),this._transport?.send(s,r).catch(c=>this._onerror(c))});return}let a={...t,jsonrpc:"2.0"};r?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[Ht]:r.relatedTask}}}),await this._transport.send(a,r)}setRequestHandler(t,r){let n=hd(t);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(o,i)=>{let a=gd(t,o);return Promise.resolve(r(a,i))})}removeRequestHandler(t){this._requestHandlers.delete(t)}assertCanSetRequestHandler(t){if(this._requestHandlers.has(t))throw new Error(`A request handler for ${t} already exists, which would be overridden`)}setNotificationHandler(t,r){let n=hd(t);this._notificationHandlers.set(n,o=>{let i=gd(t,o);return Promise.resolve(r(i))})}removeNotificationHandler(t){this._notificationHandlers.delete(t)}_cleanupTaskProgressHandler(t){let r=this._taskProgressTokens.get(t);r!==void 0&&(this._progressHandlers.delete(r),this._taskProgressTokens.delete(t))}async _enqueueTaskMessage(t,r,n){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let o=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(t,r,n,o)}async _clearTaskQueue(t,r){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(t,r);for(let o of n)if(o.type==="request"&&Ql(o.message)){let i=o.message.id,a=this._requestResolvers.get(i);a?(a(new J(Y.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(i)):this._onerror(new Error(`Resolver missing for request ${i} during task ${t} cleanup`))}}}async _waitForTaskUpdate(t,r){let n=this._options?.defaultTaskPollInterval??1e3;try{let o=await this._taskStore?.getTask(t);o?.pollInterval&&(n=o.pollInterval)}catch{}return new Promise((o,i)=>{if(r.aborted){i(new J(Y.InvalidRequest,"Request cancelled"));return}let a=setTimeout(o,n);r.addEventListener("abort",()=>{clearTimeout(a),i(new J(Y.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(t,r){let n=this._taskStore;if(!n)throw new Error("No task store configured");return{createTask:async o=>{if(!t)throw new Error("No request provided");return await n.createTask(o,t.id,{method:t.method,params:t.params},r)},getTask:async o=>{let i=await n.getTask(o,r);if(!i)throw new J(Y.InvalidParams,"Failed to retrieve task: Task not found");return i},storeTaskResult:async(o,i,a)=>{await n.storeTaskResult(o,i,a,r);let s=await n.getTask(o,r);if(s){let c=xo.parse({method:"notifications/tasks/status",params:s});await this.notification(c),Bt(s.status)&&this._cleanupTaskProgressHandler(o)}},getTaskResult:o=>n.getTaskResult(o,r),updateTaskStatus:async(o,i,a)=>{let s=await n.getTask(o,r);if(!s)throw new J(Y.InvalidParams,`Task "${o}" not found - it may have been cleaned up`);if(Bt(s.status))throw new J(Y.InvalidParams,`Cannot update task "${o}" from terminal status "${s.status}" to "${i}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(o,i,a,r);let c=await n.getTask(o,r);if(c){let u=xo.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Bt(c.status)&&this._cleanupTaskProgressHandler(o)}},listTasks:o=>n.listTasks(o,r)}}};function jg(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Ng(e,t){let r={...e};for(let n in t){let o=n,i=t[o];if(i===void 0)continue;let a=r[o];jg(a)&&jg(i)?r[o]={...a,...i}:r[o]=i}return r}var yy=ni(tf(),1),$y=ni(_y(),1);function yT(){let e=new yy.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,$y.default)(e),e}var ls=class{constructor(t){this._ajv=t??yT()}getValidator(t){let r="$id"in t&&typeof t.$id=="string"?this._ajv.getSchema(t.$id)??this._ajv.compile(t):this._ajv.compile(t);return n=>r(n)?{valid:!0,data:n,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}};var ds=class{constructor(t){this._server=t}requestStream(t,r,n){return this._server.requestStream(t,r,n)}async getTask(t,r){return this._server.getTask({taskId:t},r)}async getTaskResult(t,r,n){return this._server.getTaskResult({taskId:t},r,n)}async listTasks(t,r){return this._server.listTasks(t?{cursor:t}:void 0,r)}async cancelTask(t,r){return this._server.cancelTask({taskId:t},r)}};function by(e,t,r){if(!e)throw new Error(`${r} does not support task creation (required for ${t})`);switch(t){case"tools/call":if(!e.tools?.call)throw new Error(`${r} does not support task creation for tools/call (required for ${t})`);break;default:break}}function xy(e,t,r){if(!e)throw new Error(`${r} does not support task creation (required for ${t})`);switch(t){case"sampling/createMessage":if(!e.sampling?.createMessage)throw new Error(`${r} does not support task creation for sampling/createMessage (required for ${t})`);break;case"elicitation/create":if(!e.elicitation?.create)throw new Error(`${r} does not support task creation for elicitation/create (required for ${t})`);break;default:break}}var ps=class extends Ia{constructor(t,r){super(r),this._serverInfo=t,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(wo.options.map((n,o)=>[n,o])),this.isMessageIgnored=(n,o)=>{let i=this._loggingLevels.get(o);return i?this.LOG_LEVEL_SEVERITY.get(n)this._oninitialize(n)),this.setNotificationHandler(nd,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(dd,async(n,o)=>{let i=o.sessionId||o.requestInfo?.headers["mcp-session-id"]||void 0,{level:a}=n.params,s=wo.safeParse(a);return s.success&&this._loggingLevels.set(i,s.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new ds(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Ng(this._capabilities,t)}setRequestHandler(t,r){let o=Bi(t)?.method;if(!o)throw new Error("Schema is missing a method literal");let i;if(Gr(o)){let s=o;i=s._zod?.def?.value??s.value}else{let s=o;i=s._def?.value??s.value}if(typeof i!="string")throw new Error("Schema method literal must be a string");if(i==="tools/call"){let s=async(c,u)=>{let l=Gt(So,c);if(!l.success){let g=l.error instanceof Error?l.error.message:String(l.error);throw new J(Y.InvalidParams,`Invalid tools/call request: ${g}`)}let{params:d}=l.data,m=await Promise.resolve(r(c,u));if(d.task){let g=Gt(Xr,m);if(!g.success){let v=g.error instanceof Error?g.error.message:String(g.error);throw new J(Y.InvalidParams,`Invalid task creation result: ${v}`)}return g.data}let f=Gt(wa,m);if(!f.success){let g=f.error instanceof Error?f.error.message:String(f.error);throw new J(Y.InvalidParams,`Invalid tools/call result: ${g}`)}return f.data};return super.setRequestHandler(t,s)}return super.setRequestHandler(t,r)}assertCapabilityForMethod(t){switch(t){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw new Error(`Client does not support sampling (required for ${t})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw new Error(`Client does not support elicitation (required for ${t})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw new Error(`Client does not support listing roots (required for ${t})`);break;case"ping":break}}assertNotificationCapability(t){switch(t){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${t})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${t})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${t})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw new Error(`Client does not support URL elicitation (required for ${t})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(t){if(this._capabilities)switch(t){case"completion/complete":if(!this._capabilities.completions)throw new Error(`Server does not support completions (required for ${t})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${t})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${t})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${t})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Server does not support tasks capability (required for ${t})`);break;case"ping":case"initialize":break}}assertTaskCapability(t){xy(this._clientCapabilities?.tasks?.requests,t,"Client")}assertTaskHandlerCapability(t){this._capabilities&&by(this._capabilities.tasks?.requests,t,"Server")}async _oninitialize(t){let r=t.params.protocolVersion;return this._clientCapabilities=t.params.capabilities,this._clientVersion=t.params.clientInfo,{protocolVersion:gg.includes(r)?r:Xl,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},ha)}async createMessage(t,r){if((t.tools||t.toolChoice)&&!this._clientCapabilities?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(t.messages.length>0){let n=t.messages[t.messages.length-1],o=Array.isArray(n.content)?n.content:[n.content],i=o.some(u=>u.type==="tool_result"),a=t.messages.length>1?t.messages[t.messages.length-2]:void 0,s=a?Array.isArray(a.content)?a.content:[a.content]:[],c=s.some(u=>u.type==="tool_use");if(i){if(o.some(u=>u.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!c)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(c){let u=new Set(s.filter(d=>d.type==="tool_use").map(d=>d.id)),l=new Set(o.filter(d=>d.type==="tool_result").map(d=>d.toolUseId));if(u.size!==l.size||![...u].every(d=>l.has(d)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return t.tools?this.request({method:"sampling/createMessage",params:t},fd,r):this.request({method:"sampling/createMessage",params:t},pd,r)}async elicitInput(t,r){switch(t.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support url elicitation.");let o=t;return this.request({method:"elicitation/create",params:o},za,r)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw new Error("Client does not support form elicitation.");let o=t.mode==="form"?t:{...t,mode:"form"},i=await this.request({method:"elicitation/create",params:o},za,r);if(i.action==="accept"&&i.content&&o.requestedSchema)try{let s=this._jsonSchemaValidator.getValidator(o.requestedSchema)(i.content);if(!s.valid)throw new J(Y.InvalidParams,`Elicitation response content does not match requested schema: ${s.errorMessage}`)}catch(a){throw a instanceof J?a:new J(Y.InternalError,`Error validating elicitation response: ${a instanceof Error?a.message:String(a)}`)}return i}}}createElicitationCompletionNotifier(t,r){if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:t}},r)}async listRoots(t,r){return this.request({method:"roots/list",params:t},md,r)}async sendLoggingMessage(t,r){if(this._capabilities.logging&&!this.isMessageIgnored(t.level,r))return this.notification({method:"notifications/message",params:t})}async sendResourceUpdated(t){return this.notification({method:"notifications/resources/updated",params:t})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}};var lf=ni(require("node:process"),1);var fs=class{append(t){this._buffer=this._buffer?Buffer.concat([this._buffer,t]):t}readMessage(){if(!this._buffer)return null;let t=this._buffer.indexOf(` +`);if(t===-1)return null;let r=this._buffer.toString("utf8",0,t).replace(/\r$/,"");return this._buffer=this._buffer.subarray(t+1),$T(r)}clear(){this._buffer=void 0}};function $T(e){return Sg.parse(JSON.parse(e))}function ky(e){return JSON.stringify(e)+` +`}var ms=class{constructor(t=lf.default.stdin,r=lf.default.stdout){this._stdin=t,this._stdout=r,this._readBuffer=new fs,this._started=!1,this._ondata=n=>{this._readBuffer.append(n),this.processReadBuffer()},this._onerror=n=>{this.onerror?.(n)}}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){for(;;)try{let t=this._readBuffer.readMessage();if(t===null)break;this.onmessage?.(t)}catch(t){this.onerror?.(t)}}async close(){this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.()}send(t){return new Promise(r=>{let n=ky(t);this._stdout.write(n)?r():this._stdout.once("drain",r)})}};var vs=ni(require("path"),1),wy=require("os");var df={DEFAULT:3e5,HEALTH_CHECK:3e4,WORKER_STARTUP_WAIT:1e3,WORKER_STARTUP_RETRIES:300,PRE_RESTART_SETTLE_DELAY:2e3,WINDOWS_MULTIPLIER:1.5};function Sy(e){return process.platform==="win32"?Math.round(e*df.WINDOWS_MULTIPLIER):e}var DU=vs.default.join((0,wy.homedir)(),".claude","plugins","marketplaces","thedotmack"),RU=Sy(df.HEALTH_CHECK),hs=null,gs=null;function zy(){if(hs!==null)return hs;let e=vs.default.join(st.get("CLAUDE_MEM_DATA_DIR"),"settings.json"),t=st.loadFromFile(e);return hs=parseInt(t.CLAUDE_MEM_WORKER_PORT,10),hs}function Iy(){if(gs!==null)return gs;let e=vs.default.join(st.get("CLAUDE_MEM_DATA_DIR"),"settings.json");return gs=st.loadFromFile(e).CLAUDE_MEM_WORKER_HOST,gs}console.log=(...e)=>{ge.error("CONSOLE","Intercepted console output (MCP protocol protection)",void 0,{args:e})};var bT=zy(),xT=Iy(),ri=`http://${xT}:${bT}`,Ey={search:"/api/search",timeline:"/api/timeline"};async function Ty(e,t){ge.debug("SYSTEM","\u2192 Worker API",void 0,{endpoint:e,params:t});try{let r=new URLSearchParams;for(let[a,s]of Object.entries(t))s!=null&&r.append(a,String(s));let n=`${ri}${e}?${r}`,o=await fetch(n);if(!o.ok){let a=await o.text();throw new Error(`Worker API error (${o.status}): ${a}`)}let i=await o.json();return ge.debug("SYSTEM","\u2190 Worker API success",void 0,{endpoint:e}),i}catch(r){return ge.error("SYSTEM","\u2190 Worker API error",{endpoint:e},r),{content:[{type:"text",text:`Error calling Worker API: ${r instanceof Error?r.message:String(r)}`}],isError:!0}}}async function kT(e,t){ge.debug("HTTP","Worker API request (POST)",void 0,{endpoint:e});try{let r=`${ri}${e}`,n=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok){let i=await n.text();throw new Error(`Worker API error (${n.status}): ${i}`)}let o=await n.json();return ge.debug("HTTP","Worker API success (POST)",void 0,{endpoint:e}),{content:[{type:"text",text:JSON.stringify(o,null,2)}]}}catch(r){return ge.error("HTTP","Worker API error (POST)",{endpoint:e},r),{content:[{type:"text",text:`Error calling Worker API: ${r instanceof Error?r.message:String(r)}`}],isError:!0}}}async function ST(){try{return(await fetch(`${ri}/api/health`)).ok}catch(e){return ge.debug("SYSTEM","Worker health check failed",{},e),!1}}var Py=[{name:"__IMPORTANT",description:`3-LAYER WORKFLOW (ALWAYS FOLLOW): 1. search(query) \u2192 Get index with IDs (~50-100 tokens/result) 2. timeline(anchor=ID) \u2192 Get context around interesting results 3. get_observations([IDs]) \u2192 Fetch full details ONLY for filtered IDs @@ -29,9 +74,4 @@ NEVER fetch full details without filtering first. 10x token savings.`,inputSchem \`get_observations(ids=[...])\` # ALWAYS batch for 2+ items Returns: Complete details (~500-1000 tokens/result) -**Why:** 10x token savings. Never fetch full details without filtering first.`}]})},{name:"search",description:"Step 1: Search memory. Returns index with IDs. Params: query, limit, project, type, obs_type, dateStart, dateEnd, offset, orderBy",inputSchema:{type:"object",properties:{},additionalProperties:!0},handler:async a=>{let e=di.search;return await fi(e,a)}},{name:"timeline",description:"Step 2: Get context around results. Params: anchor (observation ID) OR query (finds anchor automatically), depth_before, depth_after, project",inputSchema:{type:"object",properties:{},additionalProperties:!0},handler:async a=>{let e=di.timeline;return await fi(e,a)}},{name:"get_observations",description:"Step 3: Fetch full details for filtered IDs. Params: ids (array of observation IDs, required), orderBy, limit, project",inputSchema:{type:"object",properties:{ids:{type:"array",items:{type:"number"},description:"Array of observation IDs to fetch (required)"}},required:["ids"],additionalProperties:!0},handler:async a=>await Od("/api/observations/batch",a)}],cs=new oa({name:"mcp-search-server",version:"1.0.0"},{capabilities:{tools:{}}});cs.setRequestHandler(Ca,async()=>({tools:hi.map(a=>({name:a.name,description:a.description,inputSchema:a.inputSchema}))}));cs.setRequestHandler($a,async a=>{let e=hi.find(t=>t.name===a.params.name);if(!e)throw new Error(`Unknown tool: ${a.params.name}`);try{return await e.handler(a.params.arguments||{})}catch(t){return pe.error("SYSTEM","Tool execution failed",{tool:a.params.name},t),{content:[{type:"text",text:`Tool execution failed: ${t instanceof Error?t.message:String(t)}`}],isError:!0}}});async function pi(){pe.info("SYSTEM","MCP server shutting down"),process.exit(0)}process.on("SIGTERM",pi);process.on("SIGINT",pi);async function Ad(){let a=new la;await cs.connect(a),pe.info("SYSTEM","Claude-mem search server started"),setTimeout(async()=>{await Id()?pe.info("SYSTEM","Worker available",void 0,{workerUrl:Pt}):(pe.warn("SYSTEM","Worker not available",void 0,{workerUrl:Pt}),pe.warn("SYSTEM","Tools will fail until Worker is started"),pe.warn("SYSTEM","Start Worker with: npm run worker:restart"))},0)}Ad().catch(a=>{pe.error("SYSTEM","Fatal error",void 0,a),process.exit(1)}); -/*! Bundled license information: - -uri-js/dist/es5/uri.all.js: - (** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js *) -*/ +**Why:** 10x token savings. Never fetch full details without filtering first.`}]})},{name:"search",description:"Step 1: Search memory. Returns index with IDs. Params: query, limit, project, type, obs_type, dateStart, dateEnd, offset, orderBy",inputSchema:{type:"object",properties:{},additionalProperties:!0},handler:async e=>{let t=Ey.search;return await Ty(t,e)}},{name:"timeline",description:"Step 2: Get context around results. Params: anchor (observation ID) OR query (finds anchor automatically), depth_before, depth_after, project",inputSchema:{type:"object",properties:{},additionalProperties:!0},handler:async e=>{let t=Ey.timeline;return await Ty(t,e)}},{name:"get_observations",description:"Step 3: Fetch full details for filtered IDs. Params: ids (array of observation IDs, required), orderBy, limit, project",inputSchema:{type:"object",properties:{ids:{type:"array",items:{type:"number"},description:"Array of observation IDs to fetch (required)"}},required:["ids"],additionalProperties:!0},handler:async e=>await kT("/api/observations/batch",e)}],pf=new ps({name:"mcp-search-server",version:"1.0.0"},{capabilities:{tools:{}}});pf.setRequestHandler(ld,async()=>({tools:Py.map(e=>({name:e.name,description:e.description,inputSchema:e.inputSchema}))}));pf.setRequestHandler(So,async e=>{let t=Py.find(r=>r.name===e.params.name);if(!t)throw new Error(`Unknown tool: ${e.params.name}`);try{return await t.handler(e.params.arguments||{})}catch(r){return ge.error("SYSTEM","Tool execution failed",{tool:e.params.name},r),{content:[{type:"text",text:`Tool execution failed: ${r instanceof Error?r.message:String(r)}`}],isError:!0}}});async function Oy(){ge.info("SYSTEM","MCP server shutting down"),process.exit(0)}process.on("SIGTERM",Oy);process.on("SIGINT",Oy);async function wT(){let e=new ms;await pf.connect(e),ge.info("SYSTEM","Claude-mem search server started"),setTimeout(async()=>{await ST()?ge.info("SYSTEM","Worker available",void 0,{workerUrl:ri}):(ge.warn("SYSTEM","Worker not available",void 0,{workerUrl:ri}),ge.warn("SYSTEM","Tools will fail until Worker is started"),ge.warn("SYSTEM","Start Worker with: npm run worker:restart"))},0)}wT().catch(e=>{ge.error("SYSTEM","Fatal error",void 0,e),process.exit(1)}); diff --git a/plugin/scripts/worker-service.cjs b/plugin/scripts/worker-service.cjs index 7f5c7445..2c320935 100755 --- a/plugin/scripts/worker-service.cjs +++ b/plugin/scripts/worker-service.cjs @@ -1,24 +1,39 @@ #!/usr/bin/env bun -"use strict";var bP=Object.create;var lc=Object.defineProperty;var SP=Object.getOwnPropertyDescriptor;var xP=Object.getOwnPropertyNames;var wP=Object.getPrototypeOf,EP=Object.prototype.hasOwnProperty;var Jr=(t,e)=>()=>(t&&(e=t(t=0)),e);var V=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),ia=(t,e)=>{for(var r in e)lc(t,r,{get:e[r],enumerable:!0})},Wh=(t,e,r,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of xP(e))!EP.call(t,n)&&n!==r&&lc(t,n,{get:()=>e[n],enumerable:!(a=SP(e,n))||a.enumerable});return t};var xt=(t,e,r)=>(r=t!=null?bP(wP(t)):{},Wh(e||!t||!t.__esModule?lc(r,"default",{value:t,enumerable:!0}):r,t)),dc=t=>Wh(lc({},"__esModule",{value:!0}),t);var Yr=V((nG,Yh)=>{var TP=require("path").relative;Yh.exports=OP;var kP=process.cwd();function Xh(t,e){for(var r=t.split(/[ ,]+/),a=String(e).toLowerCase(),n=0;n0}function IP(t){if(process.noDeprecation)return!0;var e=process.env.NO_DEPRECATION||"";return Xh(e,t)}function AP(t){if(process.traceDeprecation)return!0;var e=process.env.TRACE_DEPRECATION||"";return Xh(e,t)}function pc(t,e){var r=CP(process,"deprecation");if(!(!r&&this._ignored)){var a,n,s,i,o=0,c=!1,u=fc(),l=this._file;for(e?(i=e,s=ls(u[1]),s.name=i.name,l=s[0]):(o=2,i=ls(u[o]),s=i);o",r=t.getLineNumber(),a=t.getColumnNumber();t.isEval()&&(e=t.getEvalOrigin()+", "+e);var n=[e,r,a];return n.callSite=t,n.name=t.getFunctionName(),n}function Kh(t){var e=t.callSite,r=t.name;r||(r="");var a=e.getThis(),n=a&&e.getTypeName();return n==="Object"&&(n=void 0),n==="Function"&&(n=a.name||n),n&&e.getMethodName()?n+"."+r:r}function NP(t,e,r){var a=new Date().toUTCString(),n=a+" "+this._namespace+" deprecated "+t;if(this._traced){for(var s=0;s()=>(t&&(e=t(t=0)),e);var j=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),On=(t,e)=>{for(var r in e)zd(t,r,{get:e[r],enumerable:!0})},gE=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of uq(e))!dq.call(t,i)&&i!==r&&zd(t,i,{get:()=>e[i],enumerable:!(n=cq(e,i))||n.enumerable});return t};var yt=(t,e,r)=>(r=t!=null?sq(lq(t)):{},gE(e||!t||!t.__esModule?zd(r,"default",{value:t,enumerable:!0}):r,t)),Ud=t=>gE(zd({},"__esModule",{value:!0}),t);var Du=j(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});at.regexpCode=at.getEsmExportName=at.getProperty=at.safeStringify=at.stringify=at.strConcat=at.addCodeArg=at.str=at._=at.nil=at._Code=at.Name=at.IDENTIFIER=at._CodeOrName=void 0;var Au=class{};at._CodeOrName=Au;at.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var Ua=class extends Au{constructor(e){if(super(),!at.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};at.Name=Ua;var hn=class extends Au{constructor(e){super(),this._items=typeof e=="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((r,n)=>(n instanceof Ua&&(r[n.str]=(r[n.str]||0)+1),r),{})}};at._Code=hn;at.nil=new hn("");function j1(t,...e){let r=[t[0]],n=0;for(;n{"use strict";Object.defineProperty(Ur,"__esModule",{value:!0});Ur.ValueScope=Ur.ValueScopeName=Ur.Scope=Ur.varKinds=Ur.UsedValueState=void 0;var zr=Du(),Cb=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},sf;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(sf||(Ur.UsedValueState=sf={}));Ur.varKinds={const:new zr.Name("const"),let:new zr.Name("let"),var:new zr.Name("var")};var cf=class{constructor({prefixes:e,parent:r}={}){this._names={},this._prefixes=e,this._parent=r}toName(e){return e instanceof zr.Name?e:this.name(e)}name(e){return new zr.Name(this._newName(e))}_newName(e){let r=this._names[e]||this._nameGroup(e);return`${e}${r.index++}`}_nameGroup(e){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};Ur.Scope=cf;var uf=class extends zr.Name{constructor(e,r){super(r),this.prefix=e}setValue(e,{property:r,itemIndex:n}){this.value=e,this.scopePath=(0,zr._)`.${new zr.Name(r)}[${n}]`}};Ur.ValueScopeName=uf;var a5=(0,zr._)`\n`,Nb=class extends cf{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?a5:zr.nil}}get(){return this._scope}name(e){return new uf(e,this._newName(e))}value(e,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let i=this.toName(e),{prefix:a}=i,o=(n=r.key)!==null&&n!==void 0?n:r.ref,s=this._values[a];if(s){let l=s.get(o);if(l)return l}else s=this._values[a]=new Map;s.set(o,i);let c=this._scope[a]||(this._scope[a]=[]),u=c.length;return c[u]=r.ref,i.setValue(r,{property:a,itemIndex:u}),i}getValue(e,r){let n=this._values[e];if(n)return n.get(r)}scopeRefs(e,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,zr._)`${e}${n.scopePath}`})}scopeCode(e=this._values,r,n){return this._reduceValues(e,i=>{if(i.value===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return i.value.code},r,n)}_reduceValues(e,r,n={},i){let a=zr.nil;for(let o in e){let s=e[o];if(!s)continue;let c=n[o]=n[o]||new Map;s.forEach(u=>{if(c.has(u))return;c.set(u,sf.Started);let l=r(u);if(l){let d=this.opts.es5?Ur.varKinds.var:Ur.varKinds.const;a=(0,zr._)`${a}${d} ${u} = ${l};${this.opts._n}`}else if(l=i?.(u))a=(0,zr._)`${a}${l}${this.opts._n}`;else throw new Cb(u);c.set(u,sf.Completed)})}return a}};Ur.ValueScope=Nb});var Le=j(Ze=>{"use strict";Object.defineProperty(Ze,"__esModule",{value:!0});Ze.or=Ze.and=Ze.not=Ze.CodeGen=Ze.operators=Ze.varKinds=Ze.ValueScopeName=Ze.ValueScope=Ze.Scope=Ze.Name=Ze.regexpCode=Ze.stringify=Ze.getProperty=Ze.nil=Ze.strConcat=Ze.str=Ze._=void 0;var rt=Du(),Mn=jb(),ea=Du();Object.defineProperty(Ze,"_",{enumerable:!0,get:function(){return ea._}});Object.defineProperty(Ze,"str",{enumerable:!0,get:function(){return ea.str}});Object.defineProperty(Ze,"strConcat",{enumerable:!0,get:function(){return ea.strConcat}});Object.defineProperty(Ze,"nil",{enumerable:!0,get:function(){return ea.nil}});Object.defineProperty(Ze,"getProperty",{enumerable:!0,get:function(){return ea.getProperty}});Object.defineProperty(Ze,"stringify",{enumerable:!0,get:function(){return ea.stringify}});Object.defineProperty(Ze,"regexpCode",{enumerable:!0,get:function(){return ea.regexpCode}});Object.defineProperty(Ze,"Name",{enumerable:!0,get:function(){return ea.Name}});var ff=jb();Object.defineProperty(Ze,"Scope",{enumerable:!0,get:function(){return ff.Scope}});Object.defineProperty(Ze,"ValueScope",{enumerable:!0,get:function(){return ff.ValueScope}});Object.defineProperty(Ze,"ValueScopeName",{enumerable:!0,get:function(){return ff.ValueScopeName}});Object.defineProperty(Ze,"varKinds",{enumerable:!0,get:function(){return ff.varKinds}});Ze.operators={GT:new rt._Code(">"),GTE:new rt._Code(">="),LT:new rt._Code("<"),LTE:new rt._Code("<="),EQ:new rt._Code("==="),NEQ:new rt._Code("!=="),NOT:new rt._Code("!"),OR:new rt._Code("||"),AND:new rt._Code("&&"),ADD:new rt._Code("+")};var Ii=class{optimizeNodes(){return this}optimizeNames(e,r){return this}},Ab=class extends Ii{constructor(e,r,n){super(),this.varKind=e,this.name=r,this.rhs=n}render({es5:e,_n:r}){let n=e?Mn.varKinds.var:this.varKind,i=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${i};`+r}optimizeNames(e,r){if(e[this.name.str])return this.rhs&&(this.rhs=Qo(this.rhs,e,r)),this}get names(){return this.rhs instanceof rt._CodeOrName?this.rhs.names:{}}},lf=class extends Ii{constructor(e,r,n){super(),this.lhs=e,this.rhs=r,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,r){if(!(this.lhs instanceof rt.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=Qo(this.rhs,e,r),this}get names(){let e=this.lhs instanceof rt.Name?{}:{...this.lhs.names};return pf(e,this.rhs)}},Mb=class extends lf{constructor(e,r,n,i){super(e,n,i),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},Db=class extends Ii{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},zb=class extends Ii{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},Ub=class extends Ii{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},qb=class extends Ii{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,r){return this.code=Qo(this.code,e,r),this}get names(){return this.code instanceof rt._CodeOrName?this.code.names:{}}},zu=class extends Ii{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((r,n)=>r+n.render(e),"")}optimizeNodes(){let{nodes:e}=this,r=e.length;for(;r--;){let n=e[r].optimizeNodes();Array.isArray(n)?e.splice(r,1,...n):n?e[r]=n:e.splice(r,1)}return e.length>0?this:void 0}optimizeNames(e,r){let{nodes:n}=this,i=n.length;for(;i--;){let a=n[i];a.optimizeNames(e,r)||(o5(e,a.names),n.splice(i,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,r)=>Fa(e,r.names),{})}},Pi=class extends zu{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},Lb=class extends zu{},Yo=class extends Pi{};Yo.kind="else";var qa=class t extends Pi{constructor(e,r){super(r),this.condition=e}render(e){let r=`if(${this.condition})`+super.render(e);return this.else&&(r+="else "+this.else.render(e)),r}optimizeNodes(){super.optimizeNodes();let e=this.condition;if(e===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new Yo(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t(M1(e),r instanceof t?[r]:r.nodes);if(!(e===!1||!this.nodes.length))return this}optimizeNames(e,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(e,r),!!(super.optimizeNames(e,r)||this.else))return this.condition=Qo(this.condition,e,r),this}get names(){let e=super.names;return pf(e,this.condition),this.else&&Fa(e,this.else.names),e}};qa.kind="if";var La=class extends Pi{};La.kind="for";var Fb=class extends La{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iteration=Qo(this.iteration,e,r),this}get names(){return Fa(super.names,this.iteration.names)}},Zb=class extends La{constructor(e,r,n,i){super(),this.varKind=e,this.name=r,this.from=n,this.to=i}render(e){let r=e.es5?Mn.varKinds.var:this.varKind,{name:n,from:i,to:a}=this;return`for(${r} ${n}=${i}; ${n}<${a}; ${n}++)`+super.render(e)}get names(){let e=pf(super.names,this.from);return pf(e,this.to)}},df=class extends La{constructor(e,r,n,i){super(),this.loop=e,this.varKind=r,this.name=n,this.iterable=i}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iterable=Qo(this.iterable,e,r),this}get names(){return Fa(super.names,this.iterable.names)}},Uu=class extends Pi{constructor(e,r,n){super(),this.name=e,this.args=r,this.async=n}render(e){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}};Uu.kind="func";var qu=class extends zu{render(e){return"return "+super.render(e)}};qu.kind="return";var Hb=class extends Pi{render(e){let r="try"+super.render(e);return this.catch&&(r+=this.catch.render(e)),this.finally&&(r+=this.finally.render(e)),r}optimizeNodes(){var e,r;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(e,r){var n,i;return super.optimizeNames(e,r),(n=this.catch)===null||n===void 0||n.optimizeNames(e,r),(i=this.finally)===null||i===void 0||i.optimizeNames(e,r),this}get names(){let e=super.names;return this.catch&&Fa(e,this.catch.names),this.finally&&Fa(e,this.finally.names),e}},Lu=class extends Pi{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};Lu.kind="catch";var Fu=class extends Pi{render(e){return"finally"+super.render(e)}};Fu.kind="finally";var Bb=class{constructor(e,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?` +`:""},this._extScope=e,this._scope=new Mn.Scope({parent:e}),this._nodes=[new Lb]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,r){let n=this._extScope.value(e,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(e,r){return this._extScope.getValue(e,r)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,r,n,i){let a=this._scope.toName(r);return n!==void 0&&i&&(this._constants[a.str]=n),this._leafNode(new Ab(e,a,n)),a}const(e,r,n){return this._def(Mn.varKinds.const,e,r,n)}let(e,r,n){return this._def(Mn.varKinds.let,e,r,n)}var(e,r,n){return this._def(Mn.varKinds.var,e,r,n)}assign(e,r,n){return this._leafNode(new lf(e,r,n))}add(e,r){return this._leafNode(new Mb(e,Ze.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==rt.nil&&this._leafNode(new qb(e)),this}object(...e){let r=["{"];for(let[n,i]of e)r.length>1&&r.push(","),r.push(n),(n!==i||this.opts.es5)&&(r.push(":"),(0,rt.addCodeArg)(r,i));return r.push("}"),new rt._Code(r)}if(e,r,n){if(this._blockNode(new qa(e)),r&&n)this.code(r).else().code(n).endIf();else if(r)this.code(r).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new qa(e))}else(){return this._elseNode(new Yo)}endIf(){return this._endBlockNode(qa,Yo)}_for(e,r){return this._blockNode(e),r&&this.code(r).endFor(),this}for(e,r){return this._for(new Fb(e),r)}forRange(e,r,n,i,a=this.opts.es5?Mn.varKinds.var:Mn.varKinds.let){let o=this._scope.toName(e);return this._for(new Zb(a,o,r,n),()=>i(o))}forOf(e,r,n,i=Mn.varKinds.const){let a=this._scope.toName(e);if(this.opts.es5){let o=r instanceof rt.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,rt._)`${o}.length`,s=>{this.var(a,(0,rt._)`${o}[${s}]`),n(a)})}return this._for(new df("of",i,a,r),()=>n(a))}forIn(e,r,n,i=this.opts.es5?Mn.varKinds.var:Mn.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,rt._)`Object.keys(${r})`,n);let a=this._scope.toName(e);return this._for(new df("in",i,a,r),()=>n(a))}endFor(){return this._endBlockNode(La)}label(e){return this._leafNode(new Db(e))}break(e){return this._leafNode(new zb(e))}return(e){let r=new qu;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(qu)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new Hb;if(this._blockNode(i),this.code(e),r){let a=this.name("e");this._currNode=i.catch=new Lu(a),r(a)}return n&&(this._currNode=i.finally=new Fu,this.code(n)),this._endBlockNode(Lu,Fu)}throw(e){return this._leafNode(new Ub(e))}block(e,r){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(r),this}endBlock(e){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||e!==void 0&&n!==e)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${e} expected`);return this._nodes.length=r,this}func(e,r=rt.nil,n,i){return this._blockNode(new Uu(e,r,n)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(Uu)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,r){let n=this._currNode;if(n instanceof e||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${e.kind}/${r.kind}`:e.kind}"`)}_elseNode(e){let r=this._currNode;if(!(r instanceof qa))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let r=this._nodes;r[r.length-1]=e}};Ze.CodeGen=Bb;function Fa(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function pf(t,e){return e instanceof rt._CodeOrName?Fa(t,e.names):t}function Qo(t,e,r){if(t instanceof rt.Name)return n(t);if(!i(t))return t;return new rt._Code(t._items.reduce((a,o)=>(o instanceof rt.Name&&(o=n(o)),o instanceof rt._Code?a.push(...o._items):a.push(o),a),[]));function n(a){let o=r[a.str];return o===void 0||e[a.str]!==1?a:(delete e[a.str],o)}function i(a){return a instanceof rt._Code&&a._items.some(o=>o instanceof rt.Name&&e[o.str]===1&&r[o.str]!==void 0)}}function o5(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function M1(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,rt._)`!${Vb(t)}`}Ze.not=M1;var s5=D1(Ze.operators.AND);function c5(...t){return t.reduce(s5)}Ze.and=c5;var u5=D1(Ze.operators.OR);function l5(...t){return t.reduce(u5)}Ze.or=l5;function D1(t){return(e,r)=>e===rt.nil?r:r===rt.nil?e:(0,rt._)`${Vb(e)} ${t} ${Vb(r)}`}function Vb(t){return t instanceof rt.Name?t:(0,rt._)`(${t})`}});var ot=j(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.checkStrictMode=We.getErrorPath=We.Type=We.useFunc=We.setEvaluated=We.evaluatedPropsToName=We.mergeEvaluated=We.eachItem=We.unescapeJsonPointer=We.escapeJsonPointer=We.escapeFragment=We.unescapeFragment=We.schemaRefOrVal=We.schemaHasRulesButRef=We.schemaHasRules=We.checkUnknownRules=We.alwaysValidSchema=We.toHash=void 0;var kt=Le(),d5=Du();function p5(t){let e={};for(let r of t)e[r]=!0;return e}We.toHash=p5;function f5(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(q1(t,e),!L1(e,t.self.RULES.all))}We.alwaysValidSchema=f5;function q1(t,e=t.schema){let{opts:r,self:n}=t;if(!r.strictSchema||typeof e=="boolean")return;let i=n.RULES.keywords;for(let a in e)i[a]||H1(t,`unknown keyword: "${a}"`)}We.checkUnknownRules=q1;function L1(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}We.schemaHasRules=L1;function m5(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(r!=="$ref"&&e.all[r])return!0;return!1}We.schemaHasRulesButRef=m5;function h5({topSchemaRef:t,schemaPath:e},r,n,i){if(!i){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,kt._)`${r}`}return(0,kt._)`${t}${e}${(0,kt.getProperty)(n)}`}We.schemaRefOrVal=h5;function g5(t){return F1(decodeURIComponent(t))}We.unescapeFragment=g5;function v5(t){return encodeURIComponent(Wb(t))}We.escapeFragment=v5;function Wb(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}We.escapeJsonPointer=Wb;function F1(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}We.unescapeJsonPointer=F1;function y5(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}We.eachItem=y5;function z1({mergeNames:t,mergeToName:e,mergeValues:r,resultToName:n}){return(i,a,o,s)=>{let c=o===void 0?a:o instanceof kt.Name?(a instanceof kt.Name?t(i,a,o):e(i,a,o),o):a instanceof kt.Name?(e(i,o,a),a):r(a,o);return s===kt.Name&&!(c instanceof kt.Name)?n(i,c):c}}We.mergeEvaluated={props:z1({mergeNames:(t,e,r)=>t.if((0,kt._)`${r} !== true && ${e} !== undefined`,()=>{t.if((0,kt._)`${e} === true`,()=>t.assign(r,!0),()=>t.assign(r,(0,kt._)`${r} || {}`).code((0,kt._)`Object.assign(${r}, ${e})`))}),mergeToName:(t,e,r)=>t.if((0,kt._)`${r} !== true`,()=>{e===!0?t.assign(r,!0):(t.assign(r,(0,kt._)`${r} || {}`),Kb(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:Z1}),items:z1({mergeNames:(t,e,r)=>t.if((0,kt._)`${r} !== true && ${e} !== undefined`,()=>t.assign(r,(0,kt._)`${e} === true ? true : ${r} > ${e} ? ${r} : ${e}`)),mergeToName:(t,e,r)=>t.if((0,kt._)`${r} !== true`,()=>t.assign(r,e===!0?!0:(0,kt._)`${r} > ${e} ? ${r} : ${e}`)),mergeValues:(t,e)=>t===!0?!0:Math.max(t,e),resultToName:(t,e)=>t.var("items",e)})};function Z1(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,kt._)`{}`);return e!==void 0&&Kb(t,r,e),r}We.evaluatedPropsToName=Z1;function Kb(t,e,r){Object.keys(r).forEach(n=>t.assign((0,kt._)`${e}${(0,kt.getProperty)(n)}`,!0))}We.setEvaluated=Kb;var U1={};function _5(t,e){return t.scopeValue("func",{ref:e,code:U1[e.code]||(U1[e.code]=new d5._Code(e.code))})}We.useFunc=_5;var Gb;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(Gb||(We.Type=Gb={}));function b5(t,e,r){if(t instanceof kt.Name){let n=e===Gb.Num;return r?n?(0,kt._)`"[" + ${t} + "]"`:(0,kt._)`"['" + ${t} + "']"`:n?(0,kt._)`"/" + ${t}`:(0,kt._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,kt.getProperty)(t).toString():"/"+Wb(t)}We.getErrorPath=b5;function H1(t,e,r=t.opts.strictSchema){if(r){if(e=`strict mode: ${e}`,r===!0)throw new Error(e);t.self.logger.warn(e)}}We.checkStrictMode=H1});var Ri=j(Jb=>{"use strict";Object.defineProperty(Jb,"__esModule",{value:!0});var yr=Le(),x5={data:new yr.Name("data"),valCxt:new yr.Name("valCxt"),instancePath:new yr.Name("instancePath"),parentData:new yr.Name("parentData"),parentDataProperty:new yr.Name("parentDataProperty"),rootData:new yr.Name("rootData"),dynamicAnchors:new yr.Name("dynamicAnchors"),vErrors:new yr.Name("vErrors"),errors:new yr.Name("errors"),this:new yr.Name("this"),self:new yr.Name("self"),scope:new yr.Name("scope"),json:new yr.Name("json"),jsonPos:new yr.Name("jsonPos"),jsonLen:new yr.Name("jsonLen"),jsonPart:new yr.Name("jsonPart")};Jb.default=x5});var Zu=j(_r=>{"use strict";Object.defineProperty(_r,"__esModule",{value:!0});_r.extendErrors=_r.resetErrorsCount=_r.reportExtraError=_r.reportError=_r.keyword$DataError=_r.keywordError=void 0;var nt=Le(),mf=ot(),Pr=Ri();_r.keywordError={message:({keyword:t})=>(0,nt.str)`must pass "${t}" keyword validation`};_r.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,nt.str)`"${t}" keyword must be ${e} ($data)`:(0,nt.str)`"${t}" keyword is invalid ($data)`};function S5(t,e=_r.keywordError,r,n){let{it:i}=t,{gen:a,compositeRule:o,allErrors:s}=i,c=G1(t,e,r);n??(o||s)?B1(a,c):V1(i,(0,nt._)`[${c}]`)}_r.reportError=S5;function w5(t,e=_r.keywordError,r){let{it:n}=t,{gen:i,compositeRule:a,allErrors:o}=n,s=G1(t,e,r);B1(i,s),a||o||V1(n,Pr.default.vErrors)}_r.reportExtraError=w5;function $5(t,e){t.assign(Pr.default.errors,e),t.if((0,nt._)`${Pr.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,nt._)`${Pr.default.vErrors}.length`,e),()=>t.assign(Pr.default.vErrors,null)))}_r.resetErrorsCount=$5;function E5({gen:t,keyword:e,schemaValue:r,data:n,errsCount:i,it:a}){if(i===void 0)throw new Error("ajv implementation error");let o=t.name("err");t.forRange("i",i,Pr.default.errors,s=>{t.const(o,(0,nt._)`${Pr.default.vErrors}[${s}]`),t.if((0,nt._)`${o}.instancePath === undefined`,()=>t.assign((0,nt._)`${o}.instancePath`,(0,nt.strConcat)(Pr.default.instancePath,a.errorPath))),t.assign((0,nt._)`${o}.schemaPath`,(0,nt.str)`${a.errSchemaPath}/${e}`),a.opts.verbose&&(t.assign((0,nt._)`${o}.schema`,r),t.assign((0,nt._)`${o}.data`,n))})}_r.extendErrors=E5;function B1(t,e){let r=t.const("err",e);t.if((0,nt._)`${Pr.default.vErrors} === null`,()=>t.assign(Pr.default.vErrors,(0,nt._)`[${r}]`),(0,nt._)`${Pr.default.vErrors}.push(${r})`),t.code((0,nt._)`${Pr.default.errors}++`)}function V1(t,e){let{gen:r,validateName:n,schemaEnv:i}=t;i.$async?r.throw((0,nt._)`new ${t.ValidationError}(${e})`):(r.assign((0,nt._)`${n}.errors`,e),r.return(!1))}var Za={keyword:new nt.Name("keyword"),schemaPath:new nt.Name("schemaPath"),params:new nt.Name("params"),propertyName:new nt.Name("propertyName"),message:new nt.Name("message"),schema:new nt.Name("schema"),parentSchema:new nt.Name("parentSchema")};function G1(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,nt._)`{}`:k5(t,e,r)}function k5(t,e,r={}){let{gen:n,it:i}=t,a=[T5(i,r),I5(t,r)];return P5(t,e,a),n.object(...a)}function T5({errorPath:t},{instancePath:e}){let r=e?(0,nt.str)`${t}${(0,mf.getErrorPath)(e,mf.Type.Str)}`:t;return[Pr.default.instancePath,(0,nt.strConcat)(Pr.default.instancePath,r)]}function I5({keyword:t,it:{errSchemaPath:e}},{schemaPath:r,parentSchema:n}){let i=n?e:(0,nt.str)`${e}/${t}`;return r&&(i=(0,nt.str)`${i}${(0,mf.getErrorPath)(r,mf.Type.Str)}`),[Za.schemaPath,i]}function P5(t,{params:e,message:r},n){let{keyword:i,data:a,schemaValue:o,it:s}=t,{opts:c,propertyName:u,topSchemaRef:l,schemaPath:d}=s;n.push([Za.keyword,i],[Za.params,typeof e=="function"?e(t):e||(0,nt._)`{}`]),c.messages&&n.push([Za.message,typeof r=="function"?r(t):r]),c.verbose&&n.push([Za.schema,o],[Za.parentSchema,(0,nt._)`${l}${d}`],[Pr.default.data,a]),u&&n.push([Za.propertyName,u])}});var K1=j(es=>{"use strict";Object.defineProperty(es,"__esModule",{value:!0});es.boolOrEmptySchema=es.topBoolOrEmptySchema=void 0;var R5=Zu(),O5=Le(),C5=Ri(),N5={message:"boolean schema is false"};function j5(t){let{gen:e,schema:r,validateName:n}=t;r===!1?W1(t,!1):typeof r=="object"&&r.$async===!0?e.return(C5.default.data):(e.assign((0,O5._)`${n}.errors`,null),e.return(!0))}es.topBoolOrEmptySchema=j5;function A5(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),W1(t)):r.var(e,!0)}es.boolOrEmptySchema=A5;function W1(t,e){let{gen:r,data:n}=t,i={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:t};(0,R5.reportError)(i,N5,void 0,e)}});var Xb=j(ts=>{"use strict";Object.defineProperty(ts,"__esModule",{value:!0});ts.getRules=ts.isJSONType=void 0;var M5=["string","number","integer","boolean","null","object","array"],D5=new Set(M5);function z5(t){return typeof t=="string"&&D5.has(t)}ts.isJSONType=z5;function U5(){let t={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...t,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},t.number,t.string,t.array,t.object],post:{rules:[]},all:{},keywords:{}}}ts.getRules=U5});var Yb=j(ta=>{"use strict";Object.defineProperty(ta,"__esModule",{value:!0});ta.shouldUseRule=ta.shouldUseGroup=ta.schemaHasRulesForType=void 0;function q5({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&J1(t,n)}ta.schemaHasRulesForType=q5;function J1(t,e){return e.rules.some(r=>X1(t,r))}ta.shouldUseGroup=J1;function X1(t,e){var r;return t[e.keyword]!==void 0||((r=e.definition.implements)===null||r===void 0?void 0:r.some(n=>t[n]!==void 0))}ta.shouldUseRule=X1});var Hu=j(br=>{"use strict";Object.defineProperty(br,"__esModule",{value:!0});br.reportTypeError=br.checkDataTypes=br.checkDataType=br.coerceAndCheckDataType=br.getJSONTypes=br.getSchemaTypes=br.DataType=void 0;var L5=Xb(),F5=Yb(),Z5=Zu(),Ue=Le(),Y1=ot(),rs;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(rs||(br.DataType=rs={}));function H5(t){let e=Q1(t.type);if(e.includes("null")){if(t.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!e.length&&t.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');t.nullable===!0&&e.push("null")}return e}br.getSchemaTypes=H5;function Q1(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(L5.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}br.getJSONTypes=Q1;function B5(t,e){let{gen:r,data:n,opts:i}=t,a=V5(e,i.coerceTypes),o=e.length>0&&!(a.length===0&&e.length===1&&(0,F5.schemaHasRulesForType)(t,e[0]));if(o){let s=ex(e,n,i.strictNumbers,rs.Wrong);r.if(s,()=>{a.length?G5(t,e,a):tx(t)})}return o}br.coerceAndCheckDataType=B5;var eI=new Set(["string","number","integer","boolean","null"]);function V5(t,e){return e?t.filter(r=>eI.has(r)||e==="array"&&r==="array"):[]}function G5(t,e,r){let{gen:n,data:i,opts:a}=t,o=n.let("dataType",(0,Ue._)`typeof ${i}`),s=n.let("coerced",(0,Ue._)`undefined`);a.coerceTypes==="array"&&n.if((0,Ue._)`${o} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,()=>n.assign(i,(0,Ue._)`${i}[0]`).assign(o,(0,Ue._)`typeof ${i}`).if(ex(e,i,a.strictNumbers),()=>n.assign(s,i))),n.if((0,Ue._)`${s} !== undefined`);for(let u of r)(eI.has(u)||u==="array"&&a.coerceTypes==="array")&&c(u);n.else(),tx(t),n.endIf(),n.if((0,Ue._)`${s} !== undefined`,()=>{n.assign(i,s),W5(t,s)});function c(u){switch(u){case"string":n.elseIf((0,Ue._)`${o} == "number" || ${o} == "boolean"`).assign(s,(0,Ue._)`"" + ${i}`).elseIf((0,Ue._)`${i} === null`).assign(s,(0,Ue._)`""`);return;case"number":n.elseIf((0,Ue._)`${o} == "boolean" || ${i} === null + || (${o} == "string" && ${i} && ${i} == +${i})`).assign(s,(0,Ue._)`+${i}`);return;case"integer":n.elseIf((0,Ue._)`${o} === "boolean" || ${i} === null + || (${o} === "string" && ${i} && ${i} == +${i} && !(${i} % 1))`).assign(s,(0,Ue._)`+${i}`);return;case"boolean":n.elseIf((0,Ue._)`${i} === "false" || ${i} === 0 || ${i} === null`).assign(s,!1).elseIf((0,Ue._)`${i} === "true" || ${i} === 1`).assign(s,!0);return;case"null":n.elseIf((0,Ue._)`${i} === "" || ${i} === 0 || ${i} === false`),n.assign(s,null);return;case"array":n.elseIf((0,Ue._)`${o} === "string" || ${o} === "number" + || ${o} === "boolean" || ${i} === null`).assign(s,(0,Ue._)`[${i}]`)}}}function W5({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,Ue._)`${e} !== undefined`,()=>t.assign((0,Ue._)`${e}[${r}]`,n))}function Qb(t,e,r,n=rs.Correct){let i=n===rs.Correct?Ue.operators.EQ:Ue.operators.NEQ,a;switch(t){case"null":return(0,Ue._)`${e} ${i} null`;case"array":a=(0,Ue._)`Array.isArray(${e})`;break;case"object":a=(0,Ue._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":a=o((0,Ue._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":a=o();break;default:return(0,Ue._)`typeof ${e} ${i} ${t}`}return n===rs.Correct?a:(0,Ue.not)(a);function o(s=Ue.nil){return(0,Ue.and)((0,Ue._)`typeof ${e} == "number"`,s,r?(0,Ue._)`isFinite(${e})`:Ue.nil)}}br.checkDataType=Qb;function ex(t,e,r,n){if(t.length===1)return Qb(t[0],e,r,n);let i,a=(0,Y1.toHash)(t);if(a.array&&a.object){let o=(0,Ue._)`typeof ${e} != "object"`;i=a.null?o:(0,Ue._)`!${e} || ${o}`,delete a.null,delete a.array,delete a.object}else i=Ue.nil;a.number&&delete a.integer;for(let o in a)i=(0,Ue.and)(i,Qb(o,e,r,n));return i}br.checkDataTypes=ex;var K5={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,Ue._)`{type: ${t}}`:(0,Ue._)`{type: ${e}}`};function tx(t){let e=J5(t);(0,Z5.reportError)(e,K5)}br.reportTypeError=tx;function J5(t){let{gen:e,data:r,schema:n}=t,i=(0,Y1.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:i,schemaValue:i,parentSchema:n,params:{},it:t}}});var rI=j(hf=>{"use strict";Object.defineProperty(hf,"__esModule",{value:!0});hf.assignDefaults=void 0;var ns=Le(),X5=ot();function Y5(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let i in r)tI(t,i,r[i].default);else e==="array"&&Array.isArray(n)&&n.forEach((i,a)=>tI(t,a,i.default))}hf.assignDefaults=Y5;function tI(t,e,r){let{gen:n,compositeRule:i,data:a,opts:o}=t;if(r===void 0)return;let s=(0,ns._)`${a}${(0,ns.getProperty)(e)}`;if(i){(0,X5.checkStrictMode)(t,`default is ignored for: ${s}`);return}let c=(0,ns._)`${s} === undefined`;o.useDefaults==="empty"&&(c=(0,ns._)`${c} || ${s} === null || ${s} === ""`),n.if(c,(0,ns._)`${s} = ${(0,ns.stringify)(r)}`)}});var gn=j(xt=>{"use strict";Object.defineProperty(xt,"__esModule",{value:!0});xt.validateUnion=xt.validateArray=xt.usePattern=xt.callValidateCode=xt.schemaProperties=xt.allSchemaProperties=xt.noPropertyInData=xt.propertyInData=xt.isOwnProperty=xt.hasPropFunc=xt.reportMissingProp=xt.checkMissingProp=xt.checkReportMissingProp=void 0;var jt=Le(),rx=ot(),ra=Ri(),Q5=ot();function e3(t,e){let{gen:r,data:n,it:i}=t;r.if(ix(r,n,e,i.opts.ownProperties),()=>{t.setParams({missingProperty:(0,jt._)`${e}`},!0),t.error()})}xt.checkReportMissingProp=e3;function t3({gen:t,data:e,it:{opts:r}},n,i){return(0,jt.or)(...n.map(a=>(0,jt.and)(ix(t,e,a,r.ownProperties),(0,jt._)`${i} = ${a}`)))}xt.checkMissingProp=t3;function r3(t,e){t.setParams({missingProperty:e},!0),t.error()}xt.reportMissingProp=r3;function nI(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,jt._)`Object.prototype.hasOwnProperty`})}xt.hasPropFunc=nI;function nx(t,e,r){return(0,jt._)`${nI(t)}.call(${e}, ${r})`}xt.isOwnProperty=nx;function n3(t,e,r,n){let i=(0,jt._)`${e}${(0,jt.getProperty)(r)} !== undefined`;return n?(0,jt._)`${i} && ${nx(t,e,r)}`:i}xt.propertyInData=n3;function ix(t,e,r,n){let i=(0,jt._)`${e}${(0,jt.getProperty)(r)} === undefined`;return n?(0,jt.or)(i,(0,jt.not)(nx(t,e,r))):i}xt.noPropertyInData=ix;function iI(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}xt.allSchemaProperties=iI;function i3(t,e){return iI(e).filter(r=>!(0,rx.alwaysValidSchema)(t,e[r]))}xt.schemaProperties=i3;function a3({schemaCode:t,data:e,it:{gen:r,topSchemaRef:n,schemaPath:i,errorPath:a},it:o},s,c,u){let l=u?(0,jt._)`${t}, ${e}, ${n}${i}`:e,d=[[ra.default.instancePath,(0,jt.strConcat)(ra.default.instancePath,a)],[ra.default.parentData,o.parentData],[ra.default.parentDataProperty,o.parentDataProperty],[ra.default.rootData,ra.default.rootData]];o.opts.dynamicRef&&d.push([ra.default.dynamicAnchors,ra.default.dynamicAnchors]);let p=(0,jt._)`${l}, ${r.object(...d)}`;return c!==jt.nil?(0,jt._)`${s}.call(${c}, ${p})`:(0,jt._)`${s}(${p})`}xt.callValidateCode=a3;var o3=(0,jt._)`new RegExp`;function s3({gen:t,it:{opts:e}},r){let n=e.unicodeRegExp?"u":"",{regExp:i}=e.code,a=i(r,n);return t.scopeValue("pattern",{key:a.toString(),ref:a,code:(0,jt._)`${i.code==="new RegExp"?o3:(0,Q5.useFunc)(t,i)}(${r}, ${n})`})}xt.usePattern=s3;function c3(t){let{gen:e,data:r,keyword:n,it:i}=t,a=e.name("valid");if(i.allErrors){let s=e.let("valid",!0);return o(()=>e.assign(s,!1)),s}return e.var(a,!0),o(()=>e.break()),a;function o(s){let c=e.const("len",(0,jt._)`${r}.length`);e.forRange("i",0,c,u=>{t.subschema({keyword:n,dataProp:u,dataPropType:rx.Type.Num},a),e.if((0,jt.not)(a),s)})}}xt.validateArray=c3;function u3(t){let{gen:e,schema:r,keyword:n,it:i}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,rx.alwaysValidSchema)(i,c))&&!i.opts.unevaluated)return;let o=e.let("valid",!1),s=e.name("_valid");e.block(()=>r.forEach((c,u)=>{let l=t.subschema({keyword:n,schemaProp:u,compositeRule:!0},s);e.assign(o,(0,jt._)`${o} || ${s}`),t.mergeValidEvaluated(l,s)||e.if((0,jt.not)(o))})),t.result(o,()=>t.reset(),()=>t.error(!0))}xt.validateUnion=u3});var sI=j(ri=>{"use strict";Object.defineProperty(ri,"__esModule",{value:!0});ri.validateKeywordUsage=ri.validSchemaType=ri.funcKeywordCode=ri.macroKeywordCode=void 0;var Rr=Le(),Ha=Ri(),l3=gn(),d3=Zu();function p3(t,e){let{gen:r,keyword:n,schema:i,parentSchema:a,it:o}=t,s=e.macro.call(o.self,i,a,o),c=oI(r,n,s);o.opts.validateSchema!==!1&&o.self.validateSchema(s,!0);let u=r.name("valid");t.subschema({schema:s,schemaPath:Rr.nil,errSchemaPath:`${o.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},u),t.pass(u,()=>t.error(!0))}ri.macroKeywordCode=p3;function f3(t,e){var r;let{gen:n,keyword:i,schema:a,parentSchema:o,$data:s,it:c}=t;h3(c,e);let u=!s&&e.compile?e.compile.call(c.self,a,o,c):e.validate,l=oI(n,i,u),d=n.let("valid");t.block$data(d,p),t.ok((r=e.valid)!==null&&r!==void 0?r:d);function p(){if(e.errors===!1)_(),e.modifying&&aI(t),y(()=>t.error());else{let m=e.async?f():h();e.modifying&&aI(t),y(()=>m3(t,m))}}function f(){let m=n.let("ruleErrs",null);return n.try(()=>_((0,Rr._)`await `),v=>n.assign(d,!1).if((0,Rr._)`${v} instanceof ${c.ValidationError}`,()=>n.assign(m,(0,Rr._)`${v}.errors`),()=>n.throw(v))),m}function h(){let m=(0,Rr._)`${l}.errors`;return n.assign(m,null),_(Rr.nil),m}function _(m=e.async?(0,Rr._)`await `:Rr.nil){let v=c.opts.passContext?Ha.default.this:Ha.default.self,g=!("compile"in e&&!s||e.schema===!1);n.assign(d,(0,Rr._)`${m}${(0,l3.callValidateCode)(t,l,v,g)}`,e.modifying)}function y(m){var v;n.if((0,Rr.not)((v=e.valid)!==null&&v!==void 0?v:d),m)}}ri.funcKeywordCode=f3;function aI(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,Rr._)`${n.parentData}[${n.parentDataProperty}]`))}function m3(t,e){let{gen:r}=t;r.if((0,Rr._)`Array.isArray(${e})`,()=>{r.assign(Ha.default.vErrors,(0,Rr._)`${Ha.default.vErrors} === null ? ${e} : ${Ha.default.vErrors}.concat(${e})`).assign(Ha.default.errors,(0,Rr._)`${Ha.default.vErrors}.length`),(0,d3.extendErrors)(t)},()=>t.error())}function h3({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function oI(t,e,r){if(r===void 0)throw new Error(`keyword "${e}" failed to compile`);return t.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,Rr.stringify)(r)})}function g3(t,e,r=!1){return!e.length||e.some(n=>n==="array"?Array.isArray(t):n==="object"?t&&typeof t=="object"&&!Array.isArray(t):typeof t==n||r&&typeof t>"u")}ri.validSchemaType=g3;function v3({schema:t,opts:e,self:r,errSchemaPath:n},i,a){if(Array.isArray(i.keyword)?!i.keyword.includes(a):i.keyword!==a)throw new Error("ajv implementation error");let o=i.dependencies;if(o?.some(s=>!Object.prototype.hasOwnProperty.call(t,s)))throw new Error(`parent schema must have dependencies of ${a}: ${o.join(",")}`);if(i.validateSchema&&!i.validateSchema(t[a])){let c=`keyword "${a}" value is invalid at path "${n}": `+r.errorsText(i.validateSchema.errors);if(e.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}ri.validateKeywordUsage=v3});var uI=j(na=>{"use strict";Object.defineProperty(na,"__esModule",{value:!0});na.extendSubschemaMode=na.extendSubschemaData=na.getSubschema=void 0;var ni=Le(),cI=ot();function y3(t,{keyword:e,schemaProp:r,schema:n,schemaPath:i,errSchemaPath:a,topSchemaRef:o}){if(e!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let s=t.schema[e];return r===void 0?{schema:s,schemaPath:(0,ni._)`${t.schemaPath}${(0,ni.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:s[r],schemaPath:(0,ni._)`${t.schemaPath}${(0,ni.getProperty)(e)}${(0,ni.getProperty)(r)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,cI.escapeFragment)(r)}`}}if(n!==void 0){if(i===void 0||a===void 0||o===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:i,topSchemaRef:o,errSchemaPath:a}}throw new Error('either "keyword" or "schema" must be passed')}na.getSubschema=y3;function _3(t,e,{dataProp:r,dataPropType:n,data:i,dataTypes:a,propertyName:o}){if(i!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:s}=e;if(r!==void 0){let{errorPath:u,dataPathArr:l,opts:d}=e,p=s.let("data",(0,ni._)`${e.data}${(0,ni.getProperty)(r)}`,!0);c(p),t.errorPath=(0,ni.str)`${u}${(0,cI.getErrorPath)(r,n,d.jsPropertySyntax)}`,t.parentDataProperty=(0,ni._)`${r}`,t.dataPathArr=[...l,t.parentDataProperty]}if(i!==void 0){let u=i instanceof ni.Name?i:s.let("data",i,!0);c(u),o!==void 0&&(t.propertyName=o)}a&&(t.dataTypes=a);function c(u){t.data=u,t.dataLevel=e.dataLevel+1,t.dataTypes=[],e.definedProperties=new Set,t.parentData=e.data,t.dataNames=[...e.dataNames,u]}}na.extendSubschemaData=_3;function b3(t,{jtdDiscriminator:e,jtdMetadata:r,compositeRule:n,createErrors:i,allErrors:a}){n!==void 0&&(t.compositeRule=n),i!==void 0&&(t.createErrors=i),a!==void 0&&(t.allErrors=a),t.jtdDiscriminator=e,t.jtdMetadata=r}na.extendSubschemaMode=b3});var ax=j((cSe,lI)=>{"use strict";lI.exports=function t(e,r){if(e===r)return!0;if(e&&r&&typeof e=="object"&&typeof r=="object"){if(e.constructor!==r.constructor)return!1;var n,i,a;if(Array.isArray(e)){if(n=e.length,n!=r.length)return!1;for(i=n;i--!==0;)if(!t(e[i],r[i]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if(a=Object.keys(e),n=a.length,n!==Object.keys(r).length)return!1;for(i=n;i--!==0;)if(!Object.prototype.hasOwnProperty.call(r,a[i]))return!1;for(i=n;i--!==0;){var o=a[i];if(!t(e[o],r[o]))return!1}return!0}return e!==e&&r!==r}});var pI=j((uSe,dI)=>{"use strict";var ia=dI.exports=function(t,e,r){typeof e=="function"&&(r=e,e={}),r=e.cb||r;var n=typeof r=="function"?r:r.pre||function(){},i=r.post||function(){};gf(e,n,i,t,"",t)};ia.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};ia.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};ia.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};ia.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function gf(t,e,r,n,i,a,o,s,c,u){if(n&&typeof n=="object"&&!Array.isArray(n)){e(n,i,a,o,s,c,u);for(var l in n){var d=n[l];if(Array.isArray(d)){if(l in ia.arrayKeywords)for(var p=0;p{"use strict";Object.defineProperty(qr,"__esModule",{value:!0});qr.getSchemaRefs=qr.resolveUrl=qr.normalizeId=qr._getFullPath=qr.getFullPath=qr.inlineRef=void 0;var S3=ot(),w3=ax(),$3=pI(),E3=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function k3(t,e=!0){return typeof t=="boolean"?!0:e===!0?!ox(t):e?fI(t)<=e:!1}qr.inlineRef=k3;var T3=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function ox(t){for(let e in t){if(T3.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(ox)||typeof r=="object"&&ox(r))return!0}return!1}function fI(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!E3.has(r)&&(typeof t[r]=="object"&&(0,S3.eachItem)(t[r],n=>e+=fI(n)),e===1/0))return 1/0}return e}function mI(t,e="",r){r!==!1&&(e=is(e));let n=t.parse(e);return hI(t,n)}qr.getFullPath=mI;function hI(t,e){return t.serialize(e).split("#")[0]+"#"}qr._getFullPath=hI;var I3=/#\/?$/;function is(t){return t?t.replace(I3,""):""}qr.normalizeId=is;function P3(t,e,r){return r=is(r),t.resolve(e,r)}qr.resolveUrl=P3;var R3=/^[a-z_][-a-z0-9._]*$/i;function O3(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,i=is(t[r]||e),a={"":i},o=mI(n,i,!1),s={},c=new Set;return $3(t,{allKeys:!0},(d,p,f,h)=>{if(h===void 0)return;let _=o+p,y=a[h];typeof d[r]=="string"&&(y=m.call(this,d[r])),v.call(this,d.$anchor),v.call(this,d.$dynamicAnchor),a[p]=y;function m(g){let b=this.opts.uriResolver.resolve;if(g=is(y?b(y,g):g),c.has(g))throw l(g);c.add(g);let S=this.refs[g];return typeof S=="string"&&(S=this.refs[S]),typeof S=="object"?u(d,S.schema,g):g!==is(_)&&(g[0]==="#"?(u(d,s[g],g),s[g]=d):this.refs[g]=_),g}function v(g){if(typeof g=="string"){if(!R3.test(g))throw new Error(`invalid anchor "${g}"`);m.call(this,`#${g}`)}}}),s;function u(d,p,f){if(p!==void 0&&!w3(d,p))throw l(f)}function l(d){return new Error(`reference "${d}" resolves to more than one schema`)}}qr.getSchemaRefs=O3});var Wu=j(aa=>{"use strict";Object.defineProperty(aa,"__esModule",{value:!0});aa.getData=aa.KeywordCxt=aa.validateFunctionCode=void 0;var bI=K1(),gI=Hu(),cx=Yb(),vf=Hu(),C3=rI(),Gu=sI(),sx=uI(),ye=Le(),Ce=Ri(),N3=Bu(),Oi=ot(),Vu=Zu();function j3(t){if(wI(t)&&($I(t),SI(t))){D3(t);return}xI(t,()=>(0,bI.topBoolOrEmptySchema)(t))}aa.validateFunctionCode=j3;function xI({gen:t,validateName:e,schema:r,schemaEnv:n,opts:i},a){i.code.es5?t.func(e,(0,ye._)`${Ce.default.data}, ${Ce.default.valCxt}`,n.$async,()=>{t.code((0,ye._)`"use strict"; ${vI(r,i)}`),M3(t,i),t.code(a)}):t.func(e,(0,ye._)`${Ce.default.data}, ${A3(i)}`,n.$async,()=>t.code(vI(r,i)).code(a))}function A3(t){return(0,ye._)`{${Ce.default.instancePath}="", ${Ce.default.parentData}, ${Ce.default.parentDataProperty}, ${Ce.default.rootData}=${Ce.default.data}${t.dynamicRef?(0,ye._)`, ${Ce.default.dynamicAnchors}={}`:ye.nil}}={}`}function M3(t,e){t.if(Ce.default.valCxt,()=>{t.var(Ce.default.instancePath,(0,ye._)`${Ce.default.valCxt}.${Ce.default.instancePath}`),t.var(Ce.default.parentData,(0,ye._)`${Ce.default.valCxt}.${Ce.default.parentData}`),t.var(Ce.default.parentDataProperty,(0,ye._)`${Ce.default.valCxt}.${Ce.default.parentDataProperty}`),t.var(Ce.default.rootData,(0,ye._)`${Ce.default.valCxt}.${Ce.default.rootData}`),e.dynamicRef&&t.var(Ce.default.dynamicAnchors,(0,ye._)`${Ce.default.valCxt}.${Ce.default.dynamicAnchors}`)},()=>{t.var(Ce.default.instancePath,(0,ye._)`""`),t.var(Ce.default.parentData,(0,ye._)`undefined`),t.var(Ce.default.parentDataProperty,(0,ye._)`undefined`),t.var(Ce.default.rootData,Ce.default.data),e.dynamicRef&&t.var(Ce.default.dynamicAnchors,(0,ye._)`{}`)})}function D3(t){let{schema:e,opts:r,gen:n}=t;xI(t,()=>{r.$comment&&e.$comment&&kI(t),F3(t),n.let(Ce.default.vErrors,null),n.let(Ce.default.errors,0),r.unevaluated&&z3(t),EI(t),B3(t)})}function z3(t){let{gen:e,validateName:r}=t;t.evaluated=e.const("evaluated",(0,ye._)`${r}.evaluated`),e.if((0,ye._)`${t.evaluated}.dynamicProps`,()=>e.assign((0,ye._)`${t.evaluated}.props`,(0,ye._)`undefined`)),e.if((0,ye._)`${t.evaluated}.dynamicItems`,()=>e.assign((0,ye._)`${t.evaluated}.items`,(0,ye._)`undefined`))}function vI(t,e){let r=typeof t=="object"&&t[e.schemaId];return r&&(e.code.source||e.code.process)?(0,ye._)`/*# sourceURL=${r} */`:ye.nil}function U3(t,e){if(wI(t)&&($I(t),SI(t))){q3(t,e);return}(0,bI.boolOrEmptySchema)(t,e)}function SI({schema:t,self:e}){if(typeof t=="boolean")return!t;for(let r in t)if(e.RULES.all[r])return!0;return!1}function wI(t){return typeof t.schema!="boolean"}function q3(t,e){let{schema:r,gen:n,opts:i}=t;i.$comment&&r.$comment&&kI(t),Z3(t),H3(t);let a=n.const("_errs",Ce.default.errors);EI(t,a),n.var(e,(0,ye._)`${a} === ${Ce.default.errors}`)}function $I(t){(0,Oi.checkUnknownRules)(t),L3(t)}function EI(t,e){if(t.opts.jtd)return yI(t,[],!1,e);let r=(0,gI.getSchemaTypes)(t.schema),n=(0,gI.coerceAndCheckDataType)(t,r);yI(t,r,!n,e)}function L3(t){let{schema:e,errSchemaPath:r,opts:n,self:i}=t;e.$ref&&n.ignoreKeywordsWithRef&&(0,Oi.schemaHasRulesButRef)(e,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function F3(t){let{schema:e,opts:r}=t;e.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,Oi.checkStrictMode)(t,"default is ignored in the schema root")}function Z3(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,N3.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function H3(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function kI({gen:t,schemaEnv:e,schema:r,errSchemaPath:n,opts:i}){let a=r.$comment;if(i.$comment===!0)t.code((0,ye._)`${Ce.default.self}.logger.log(${a})`);else if(typeof i.$comment=="function"){let o=(0,ye.str)`${n}/$comment`,s=t.scopeValue("root",{ref:e.root});t.code((0,ye._)`${Ce.default.self}.opts.$comment(${a}, ${o}, ${s}.schema)`)}}function B3(t){let{gen:e,schemaEnv:r,validateName:n,ValidationError:i,opts:a}=t;r.$async?e.if((0,ye._)`${Ce.default.errors} === 0`,()=>e.return(Ce.default.data),()=>e.throw((0,ye._)`new ${i}(${Ce.default.vErrors})`)):(e.assign((0,ye._)`${n}.errors`,Ce.default.vErrors),a.unevaluated&&V3(t),e.return((0,ye._)`${Ce.default.errors} === 0`))}function V3({gen:t,evaluated:e,props:r,items:n}){r instanceof ye.Name&&t.assign((0,ye._)`${e}.props`,r),n instanceof ye.Name&&t.assign((0,ye._)`${e}.items`,n)}function yI(t,e,r,n){let{gen:i,schema:a,data:o,allErrors:s,opts:c,self:u}=t,{RULES:l}=u;if(a.$ref&&(c.ignoreKeywordsWithRef||!(0,Oi.schemaHasRulesButRef)(a,l))){i.block(()=>II(t,"$ref",l.all.$ref.definition));return}c.jtd||G3(t,e),i.block(()=>{for(let p of l.rules)d(p);d(l.post)});function d(p){(0,cx.shouldUseGroup)(a,p)&&(p.type?(i.if((0,vf.checkDataType)(p.type,o,c.strictNumbers)),_I(t,p),e.length===1&&e[0]===p.type&&r&&(i.else(),(0,vf.reportTypeError)(t)),i.endIf()):_I(t,p),s||i.if((0,ye._)`${Ce.default.errors} === ${n||0}`))}}function _I(t,e){let{gen:r,schema:n,opts:{useDefaults:i}}=t;i&&(0,C3.assignDefaults)(t,e.type),r.block(()=>{for(let a of e.rules)(0,cx.shouldUseRule)(n,a)&&II(t,a.keyword,a.definition,e.type)})}function G3(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(W3(t,e),t.opts.allowUnionTypes||K3(t,e),J3(t,t.dataTypes))}function W3(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{TI(t.dataTypes,r)||ux(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),Y3(t,e)}}function K3(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&ux(t,"use allowUnionTypes to allow union type keyword")}function J3(t,e){let r=t.self.RULES.all;for(let n in r){let i=r[n];if(typeof i=="object"&&(0,cx.shouldUseRule)(t.schema,i)){let{type:a}=i.definition;a.length&&!a.some(o=>X3(e,o))&&ux(t,`missing type "${a.join(",")}" for keyword "${n}"`)}}}function X3(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function TI(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function Y3(t,e){let r=[];for(let n of t.dataTypes)TI(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function ux(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,Oi.checkStrictMode)(t,e,t.opts.strictTypes)}var yf=class{constructor(e,r,n){if((0,Gu.validateKeywordUsage)(e,r,n),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=n,this.data=e.data,this.schema=e.schema[n],this.$data=r.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,Oi.schemaRefOrVal)(e,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=r,this.$data)this.schemaCode=e.gen.const("vSchema",PI(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,Gu.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=e.gen.const("_errs",Ce.default.errors))}result(e,r,n){this.failResult((0,ye.not)(e),r,n)}failResult(e,r,n){this.gen.if(e),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,r){this.failResult((0,ye.not)(e),void 0,r)}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:r}=this;this.fail((0,ye._)`${r} !== undefined && (${(0,ye.or)(this.invalid$data(),e)})`)}error(e,r,n){if(r){this.setParams(r),this._error(e,n),this.setParams({});return}this._error(e,n)}_error(e,r){(e?Vu.reportExtraError:Vu.reportError)(this,this.def.error,r)}$dataError(){(0,Vu.reportError)(this,this.def.$dataError||Vu.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,Vu.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,r){r?Object.assign(this.params,e):this.params=e}block$data(e,r,n=ye.nil){this.gen.block(()=>{this.check$data(e,n),r()})}check$data(e=ye.nil,r=ye.nil){if(!this.$data)return;let{gen:n,schemaCode:i,schemaType:a,def:o}=this;n.if((0,ye.or)((0,ye._)`${i} === undefined`,r)),e!==ye.nil&&n.assign(e,!0),(a.length||o.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==ye.nil&&n.assign(e,!1)),n.else()}invalid$data(){let{gen:e,schemaCode:r,schemaType:n,def:i,it:a}=this;return(0,ye.or)(o(),s());function o(){if(n.length){if(!(r instanceof ye.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,ye._)`${(0,vf.checkDataTypes)(c,r,a.opts.strictNumbers,vf.DataType.Wrong)}`}return ye.nil}function s(){if(i.validateSchema){let c=e.scopeValue("validate$data",{ref:i.validateSchema});return(0,ye._)`!${c}(${r})`}return ye.nil}}subschema(e,r){let n=(0,sx.getSubschema)(this.it,e);(0,sx.extendSubschemaData)(n,this.it,e),(0,sx.extendSubschemaMode)(n,e);let i={...this.it,...n,items:void 0,props:void 0};return U3(i,r),i}mergeEvaluated(e,r){let{it:n,gen:i}=this;n.opts.unevaluated&&(n.props!==!0&&e.props!==void 0&&(n.props=Oi.mergeEvaluated.props(i,e.props,n.props,r)),n.items!==!0&&e.items!==void 0&&(n.items=Oi.mergeEvaluated.items(i,e.items,n.items,r)))}mergeValidEvaluated(e,r){let{it:n,gen:i}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return i.if(r,()=>this.mergeEvaluated(e,ye.Name)),!0}};aa.KeywordCxt=yf;function II(t,e,r,n){let i=new yf(t,r,e);"code"in r?r.code(i,n):i.$data&&r.validate?(0,Gu.funcKeywordCode)(i,r):"macro"in r?(0,Gu.macroKeywordCode)(i,r):(r.compile||r.validate)&&(0,Gu.funcKeywordCode)(i,r)}var Q3=/^\/(?:[^~]|~0|~1)*$/,eZ=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function PI(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let i,a;if(t==="")return Ce.default.rootData;if(t[0]==="/"){if(!Q3.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);i=t,a=Ce.default.rootData}else{let u=eZ.exec(t);if(!u)throw new Error(`Invalid JSON-pointer: ${t}`);let l=+u[1];if(i=u[2],i==="#"){if(l>=e)throw new Error(c("property/index",l));return n[e-l]}if(l>e)throw new Error(c("data",l));if(a=r[e-l],!i)return a}let o=a,s=i.split("/");for(let u of s)u&&(a=(0,ye._)`${a}${(0,ye.getProperty)((0,Oi.unescapeJsonPointer)(u))}`,o=(0,ye._)`${o} && ${a}`);return o;function c(u,l){return`Cannot access ${u} ${l} levels up, current level is ${e}`}}aa.getData=PI});var _f=j(dx=>{"use strict";Object.defineProperty(dx,"__esModule",{value:!0});var lx=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};dx.default=lx});var Ku=j(mx=>{"use strict";Object.defineProperty(mx,"__esModule",{value:!0});var px=Bu(),fx=class extends Error{constructor(e,r,n,i){super(i||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,px.resolveUrl)(e,r,n),this.missingSchema=(0,px.normalizeId)((0,px.getFullPath)(e,this.missingRef))}};mx.default=fx});var xf=j(vn=>{"use strict";Object.defineProperty(vn,"__esModule",{value:!0});vn.resolveSchema=vn.getCompilingSchema=vn.resolveRef=vn.compileSchema=vn.SchemaEnv=void 0;var Dn=Le(),tZ=_f(),Ba=Ri(),zn=Bu(),RI=ot(),rZ=Wu(),as=class{constructor(e){var r;this.refs={},this.dynamicAnchors={};let n;typeof e.schema=="object"&&(n=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(r=e.baseId)!==null&&r!==void 0?r:(0,zn.normalizeId)(n?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=n?.$async,this.refs={}}};vn.SchemaEnv=as;function gx(t){let e=OI.call(this,t);if(e)return e;let r=(0,zn.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:n,lines:i}=this.opts.code,{ownProperties:a}=this.opts,o=new Dn.CodeGen(this.scope,{es5:n,lines:i,ownProperties:a}),s;t.$async&&(s=o.scopeValue("Error",{ref:tZ.default,code:(0,Dn._)`require("ajv/dist/runtime/validation_error").default`}));let c=o.scopeName("validate");t.validateName=c;let u={gen:o,allErrors:this.opts.allErrors,data:Ba.default.data,parentData:Ba.default.parentData,parentDataProperty:Ba.default.parentDataProperty,dataNames:[Ba.default.data],dataPathArr:[Dn.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:o.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,Dn.stringify)(t.schema)}:{ref:t.schema}),validateName:c,ValidationError:s,schema:t.schema,schemaEnv:t,rootId:r,baseId:t.baseId||r,schemaPath:Dn.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,Dn._)`""`,opts:this.opts,self:this},l;try{this._compilations.add(t),(0,rZ.validateFunctionCode)(u),o.optimize(this.opts.code.optimize);let d=o.toString();l=`${o.scopeRefs(Ba.default.scope)}return ${d}`,this.opts.code.process&&(l=this.opts.code.process(l,t));let f=new Function(`${Ba.default.self}`,`${Ba.default.scope}`,l)(this,this.scope.get());if(this.scope.value(c,{ref:f}),f.errors=null,f.schema=t.schema,f.schemaEnv=t,t.$async&&(f.$async=!0),this.opts.code.source===!0&&(f.source={validateName:c,validateCode:d,scopeValues:o._values}),this.opts.unevaluated){let{props:h,items:_}=u;f.evaluated={props:h instanceof Dn.Name?void 0:h,items:_ instanceof Dn.Name?void 0:_,dynamicProps:h instanceof Dn.Name,dynamicItems:_ instanceof Dn.Name},f.source&&(f.source.evaluated=(0,Dn.stringify)(f.evaluated))}return t.validate=f,t}catch(d){throw delete t.validate,delete t.validateName,l&&this.logger.error("Error compiling schema, function code:",l),d}finally{this._compilations.delete(t)}}vn.compileSchema=gx;function nZ(t,e,r){var n;r=(0,zn.resolveUrl)(this.opts.uriResolver,e,r);let i=t.refs[r];if(i)return i;let a=oZ.call(this,t,r);if(a===void 0){let o=(n=t.localRefs)===null||n===void 0?void 0:n[r],{schemaId:s}=this.opts;o&&(a=new as({schema:o,schemaId:s,root:t,baseId:e}))}if(a!==void 0)return t.refs[r]=iZ.call(this,a)}vn.resolveRef=nZ;function iZ(t){return(0,zn.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:gx.call(this,t)}function OI(t){for(let e of this._compilations)if(aZ(e,t))return e}vn.getCompilingSchema=OI;function aZ(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function oZ(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||bf.call(this,t,e)}function bf(t,e){let r=this.opts.uriResolver.parse(e),n=(0,zn._getFullPath)(this.opts.uriResolver,r),i=(0,zn.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&n===i)return hx.call(this,r,t);let a=(0,zn.normalizeId)(n),o=this.refs[a]||this.schemas[a];if(typeof o=="string"){let s=bf.call(this,t,o);return typeof s?.schema!="object"?void 0:hx.call(this,r,s)}if(typeof o?.schema=="object"){if(o.validate||gx.call(this,o),a===(0,zn.normalizeId)(e)){let{schema:s}=o,{schemaId:c}=this.opts,u=s[c];return u&&(i=(0,zn.resolveUrl)(this.opts.uriResolver,i,u)),new as({schema:s,schemaId:c,root:t,baseId:i})}return hx.call(this,r,o)}}vn.resolveSchema=bf;var sZ=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function hx(t,{baseId:e,schema:r,root:n}){var i;if(((i=t.fragment)===null||i===void 0?void 0:i[0])!=="/")return;for(let s of t.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,RI.unescapeFragment)(s)];if(c===void 0)return;r=c;let u=typeof r=="object"&&r[this.opts.schemaId];!sZ.has(s)&&u&&(e=(0,zn.resolveUrl)(this.opts.uriResolver,e,u))}let a;if(typeof r!="boolean"&&r.$ref&&!(0,RI.schemaHasRulesButRef)(r,this.RULES)){let s=(0,zn.resolveUrl)(this.opts.uriResolver,e,r.$ref);a=bf.call(this,n,s)}let{schemaId:o}=this.opts;if(a=a||new as({schema:r,schemaId:o,root:n,baseId:e}),a.schema!==a.root.schema)return a}});var CI=j((hSe,cZ)=>{cZ.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var yx=j((gSe,MI)=>{"use strict";var uZ=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),jI=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);function vx(t){let e="",r=0,n=0;for(n=0;n=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n];break}for(n+=1;n=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n]}return e}var lZ=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function NI(t){return t.length=0,!0}function dZ(t,e,r){if(t.length){let n=vx(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function pZ(t){let e=0,r={error:!1,address:"",zone:""},n=[],i=[],a=!1,o=!1,s=dZ;for(let c=0;c7){r.error=!0;break}c>0&&t[c-1]===":"&&(a=!0),n.push(":");continue}else if(u==="%"){if(!s(i,n,r))break;s=NI}else{i.push(u);continue}}return i.length&&(s===NI?r.zone=i.join(""):o?n.push(i.join("")):n.push(vx(i))),r.address=n.join(""),r}function AI(t){if(fZ(t,":")<2)return{host:t,isIPV6:!1};let e=pZ(t);if(e.error)return{host:t,isIPV6:!1};{let r=e.address,n=e.address;return e.zone&&(r+="%"+e.zone,n+="%25"+e.zone),{host:r,isIPV6:!0,escapedHost:n}}}function fZ(t,e){let r=0;for(let n=0;n{"use strict";var{isUUID:vZ}=yx(),yZ=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,_Z=["http","https","ws","wss","urn","urn:uuid"];function bZ(t){return _Z.indexOf(t)!==-1}function _x(t){return t.secure===!0?!0:t.secure===!1?!1:t.scheme?t.scheme.length===3&&(t.scheme[0]==="w"||t.scheme[0]==="W")&&(t.scheme[1]==="s"||t.scheme[1]==="S")&&(t.scheme[2]==="s"||t.scheme[2]==="S"):!1}function DI(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function zI(t){let e=String(t.scheme).toLowerCase()==="https";return(t.port===(e?443:80)||t.port==="")&&(t.port=void 0),t.path||(t.path="/"),t}function xZ(t){return t.secure=_x(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function SZ(t){if((t.port===(_x(t)?443:80)||t.port==="")&&(t.port=void 0),typeof t.secure=="boolean"&&(t.scheme=t.secure?"wss":"ws",t.secure=void 0),t.resourceName){let[e,r]=t.resourceName.split("?");t.path=e&&e!=="/"?e:void 0,t.query=r,t.resourceName=void 0}return t.fragment=void 0,t}function wZ(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(yZ);if(r){let n=e.scheme||t.scheme||"urn";t.nid=r[1].toLowerCase(),t.nss=r[2];let i=`${n}:${e.nid||t.nid}`,a=bx(i);t.path=void 0,a&&(t=a.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function $Z(t,e){if(t.nid===void 0)throw new Error("URN without nid cannot be serialized");let r=e.scheme||t.scheme||"urn",n=t.nid.toLowerCase(),i=`${r}:${e.nid||n}`,a=bx(i);a&&(t=a.serialize(t,e));let o=t,s=t.nss;return o.path=`${n||e.nid}:${s}`,e.skipEscape=!0,o}function EZ(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!vZ(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function kZ(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var UI={scheme:"http",domainHost:!0,parse:DI,serialize:zI},TZ={scheme:"https",domainHost:UI.domainHost,parse:DI,serialize:zI},Sf={scheme:"ws",domainHost:!0,parse:xZ,serialize:SZ},IZ={scheme:"wss",domainHost:Sf.domainHost,parse:Sf.parse,serialize:Sf.serialize},PZ={scheme:"urn",parse:wZ,serialize:$Z,skipNormalize:!0},RZ={scheme:"urn:uuid",parse:EZ,serialize:kZ,skipNormalize:!0},wf={http:UI,https:TZ,ws:Sf,wss:IZ,urn:PZ,"urn:uuid":RZ};Object.setPrototypeOf(wf,null);function bx(t){return t&&(wf[t]||wf[t.toLowerCase()])||void 0}qI.exports={wsIsSecure:_x,SCHEMES:wf,isValidSchemeName:bZ,getSchemeHandler:bx}});var HI=j((ySe,Ef)=>{"use strict";var{normalizeIPv6:OZ,removeDotSegments:Ju,recomposeAuthority:CZ,normalizeComponentEncoding:$f,isIPv4:NZ,nonSimpleDomain:jZ}=yx(),{SCHEMES:AZ,getSchemeHandler:FI}=LI();function MZ(t,e){return typeof t=="string"?t=ii(Ci(t,e),e):typeof t=="object"&&(t=Ci(ii(t,e),e)),t}function DZ(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},i=ZI(Ci(t,n),Ci(e,n),n,!0);return n.skipEscape=!0,ii(i,n)}function ZI(t,e,r,n){let i={};return n||(t=Ci(ii(t,r),r),e=Ci(ii(e,r),r)),r=r||{},!r.tolerant&&e.scheme?(i.scheme=e.scheme,i.userinfo=e.userinfo,i.host=e.host,i.port=e.port,i.path=Ju(e.path||""),i.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(i.userinfo=e.userinfo,i.host=e.host,i.port=e.port,i.path=Ju(e.path||""),i.query=e.query):(e.path?(e.path[0]==="/"?i.path=Ju(e.path):((t.userinfo!==void 0||t.host!==void 0||t.port!==void 0)&&!t.path?i.path="/"+e.path:t.path?i.path=t.path.slice(0,t.path.lastIndexOf("/")+1)+e.path:i.path=e.path,i.path=Ju(i.path)),i.query=e.query):(i.path=t.path,e.query!==void 0?i.query=e.query:i.query=t.query),i.userinfo=t.userinfo,i.host=t.host,i.port=t.port),i.scheme=t.scheme),i.fragment=e.fragment,i}function zZ(t,e,r){return typeof t=="string"?(t=unescape(t),t=ii($f(Ci(t,r),!0),{...r,skipEscape:!0})):typeof t=="object"&&(t=ii($f(t,!0),{...r,skipEscape:!0})),typeof e=="string"?(e=unescape(e),e=ii($f(Ci(e,r),!0),{...r,skipEscape:!0})):typeof e=="object"&&(e=ii($f(e,!0),{...r,skipEscape:!0})),t.toLowerCase()===e.toLowerCase()}function ii(t,e){let r={host:t.host,scheme:t.scheme,userinfo:t.userinfo,port:t.port,path:t.path,query:t.query,nid:t.nid,nss:t.nss,uuid:t.uuid,fragment:t.fragment,reference:t.reference,resourceName:t.resourceName,secure:t.secure,error:""},n=Object.assign({},e),i=[],a=FI(n.scheme||r.scheme);a&&a.serialize&&a.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=unescape(r.path):(r.path=escape(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&i.push(r.scheme,":");let o=CZ(r);if(o!==void 0&&(n.reference!=="suffix"&&i.push("//"),i.push(o),r.path&&r.path[0]!=="/"&&i.push("/")),r.path!==void 0){let s=r.path;!n.absolutePath&&(!a||!a.absolutePath)&&(s=Ju(s)),o===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),i.push(s)}return r.query!==void 0&&i.push("?",r.query),r.fragment!==void 0&&i.push("#",r.fragment),i.join("")}var UZ=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function Ci(t,e){let r=Object.assign({},e),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},i=!1;r.reference==="suffix"&&(r.scheme?t=r.scheme+":"+t:t="//"+t);let a=t.match(UZ);if(a){if(n.scheme=a[1],n.userinfo=a[3],n.host=a[4],n.port=parseInt(a[5],10),n.path=a[6]||"",n.query=a[7],n.fragment=a[8],isNaN(n.port)&&(n.port=a[5]),n.host)if(NZ(n.host)===!1){let c=OZ(n.host);n.host=c.host.toLowerCase(),i=c.isIPV6}else i=!0;n.scheme===void 0&&n.userinfo===void 0&&n.host===void 0&&n.port===void 0&&n.query===void 0&&!n.path?n.reference="same-document":n.scheme===void 0?n.reference="relative":n.fragment===void 0?n.reference="absolute":n.reference="uri",r.reference&&r.reference!=="suffix"&&r.reference!==n.reference&&(n.error=n.error||"URI is not a "+r.reference+" reference.");let o=FI(r.scheme||n.scheme);if(!r.unicodeSupport&&(!o||!o.unicodeSupport)&&n.host&&(r.domainHost||o&&o.domainHost)&&i===!1&&jZ(n.host))try{n.host=URL.domainToASCII(n.host.toLowerCase())}catch(s){n.error=n.error||"Host's domain name can not be converted to ASCII: "+s}(!o||o&&!o.skipNormalize)&&(t.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=unescape(n.host))),n.path&&(n.path=escape(unescape(n.path))),n.fragment&&(n.fragment=encodeURI(decodeURIComponent(n.fragment)))),o&&o.parse&&o.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return n}var xx={SCHEMES:AZ,normalize:MZ,resolve:DZ,resolveComponent:ZI,equal:zZ,serialize:ii,parse:Ci};Ef.exports=xx;Ef.exports.default=xx;Ef.exports.fastUri=xx});var VI=j(Sx=>{"use strict";Object.defineProperty(Sx,"__esModule",{value:!0});var BI=HI();BI.code='require("ajv/dist/runtime/uri").default';Sx.default=BI});var eP=j(dr=>{"use strict";Object.defineProperty(dr,"__esModule",{value:!0});dr.CodeGen=dr.Name=dr.nil=dr.stringify=dr.str=dr._=dr.KeywordCxt=void 0;var qZ=Wu();Object.defineProperty(dr,"KeywordCxt",{enumerable:!0,get:function(){return qZ.KeywordCxt}});var os=Le();Object.defineProperty(dr,"_",{enumerable:!0,get:function(){return os._}});Object.defineProperty(dr,"str",{enumerable:!0,get:function(){return os.str}});Object.defineProperty(dr,"stringify",{enumerable:!0,get:function(){return os.stringify}});Object.defineProperty(dr,"nil",{enumerable:!0,get:function(){return os.nil}});Object.defineProperty(dr,"Name",{enumerable:!0,get:function(){return os.Name}});Object.defineProperty(dr,"CodeGen",{enumerable:!0,get:function(){return os.CodeGen}});var LZ=_f(),XI=Ku(),FZ=Xb(),Xu=xf(),ZZ=Le(),Yu=Bu(),kf=Hu(),$x=ot(),GI=CI(),HZ=VI(),YI=(t,e)=>new RegExp(t,e);YI.code="new RegExp";var BZ=["removeAdditional","useDefaults","coerceTypes"],VZ=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),GZ={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},WZ={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},WI=200;function KZ(t){var e,r,n,i,a,o,s,c,u,l,d,p,f,h,_,y,m,v,g,b,S,x,w,E,R;let A=t.strict,M=(e=t.code)===null||e===void 0?void 0:e.optimize,q=M===!0||M===void 0?1:M||0,B=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:YI,U=(i=t.uriResolver)!==null&&i!==void 0?i:HZ.default;return{strictSchema:(o=(a=t.strictSchema)!==null&&a!==void 0?a:A)!==null&&o!==void 0?o:!0,strictNumbers:(c=(s=t.strictNumbers)!==null&&s!==void 0?s:A)!==null&&c!==void 0?c:!0,strictTypes:(l=(u=t.strictTypes)!==null&&u!==void 0?u:A)!==null&&l!==void 0?l:"log",strictTuples:(p=(d=t.strictTuples)!==null&&d!==void 0?d:A)!==null&&p!==void 0?p:"log",strictRequired:(h=(f=t.strictRequired)!==null&&f!==void 0?f:A)!==null&&h!==void 0?h:!1,code:t.code?{...t.code,optimize:q,regExp:B}:{optimize:q,regExp:B},loopRequired:(_=t.loopRequired)!==null&&_!==void 0?_:WI,loopEnum:(y=t.loopEnum)!==null&&y!==void 0?y:WI,meta:(m=t.meta)!==null&&m!==void 0?m:!0,messages:(v=t.messages)!==null&&v!==void 0?v:!0,inlineRefs:(g=t.inlineRefs)!==null&&g!==void 0?g:!0,schemaId:(b=t.schemaId)!==null&&b!==void 0?b:"$id",addUsedSchema:(S=t.addUsedSchema)!==null&&S!==void 0?S:!0,validateSchema:(x=t.validateSchema)!==null&&x!==void 0?x:!0,validateFormats:(w=t.validateFormats)!==null&&w!==void 0?w:!0,unicodeRegExp:(E=t.unicodeRegExp)!==null&&E!==void 0?E:!0,int32range:(R=t.int32range)!==null&&R!==void 0?R:!0,uriResolver:U}}var Qu=class{constructor(e={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...KZ(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new ZZ.ValueScope({scope:{},prefixes:VZ,es5:r,lines:n}),this.logger=tH(e.logger);let i=e.validateFormats;e.validateFormats=!1,this.RULES=(0,FZ.getRules)(),KI.call(this,GZ,e,"NOT SUPPORTED"),KI.call(this,WZ,e,"DEPRECATED","warn"),this._metaOpts=QZ.call(this),e.formats&&XZ.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&YZ.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),JZ.call(this),e.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,i=GI;n==="id"&&(i={...GI},i.id=i.$id,delete i.$id),r&&e&&this.addMetaSchema(i,i[n],!1)}defaultMeta(){let{meta:e,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[r]||e:void 0}validate(e,r){let n;if(typeof e=="string"){if(n=this.getSchema(e),!n)throw new Error(`no schema with key or ref "${e}"`)}else n=this.compile(e);let i=n(r);return"$async"in n||(this.errors=n.errors),i}compile(e,r){let n=this._addSchema(e,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(e,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return i.call(this,e,r);async function i(l,d){await a.call(this,l.$schema);let p=this._addSchema(l,d);return p.validate||o.call(this,p)}async function a(l){l&&!this.getSchema(l)&&await i.call(this,{$ref:l},!0)}async function o(l){try{return this._compileSchemaEnv(l)}catch(d){if(!(d instanceof XI.default))throw d;return s.call(this,d),await c.call(this,d.missingSchema),o.call(this,l)}}function s({missingSchema:l,missingRef:d}){if(this.refs[l])throw new Error(`AnySchema ${l} is loaded but ${d} cannot be resolved`)}async function c(l){let d=await u.call(this,l);this.refs[l]||await a.call(this,d.$schema),this.refs[l]||this.addSchema(d,l,r)}async function u(l){let d=this._loading[l];if(d)return d;try{return await(this._loading[l]=n(l))}finally{delete this._loading[l]}}}addSchema(e,r,n,i=this.opts.validateSchema){if(Array.isArray(e)){for(let o of e)this.addSchema(o,void 0,n,i);return this}let a;if(typeof e=="object"){let{schemaId:o}=this.opts;if(a=e[o],a!==void 0&&typeof a!="string")throw new Error(`schema ${o} must be string`)}return r=(0,Yu.normalizeId)(r||a),this._checkUnique(r),this.schemas[r]=this._addSchema(e,n,r,i,!0),this}addMetaSchema(e,r,n=this.opts.validateSchema){return this.addSchema(e,r,!0,n),this}validateSchema(e,r){if(typeof e=="boolean")return!0;let n;if(n=e.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let i=this.validate(n,e);if(!i&&r){let a="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(a);else throw new Error(a)}return i}getSchema(e){let r;for(;typeof(r=JI.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,i=new Xu.SchemaEnv({schema:{},schemaId:n});if(r=Xu.resolveSchema.call(this,i,e),!r)return;this.refs[e]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=JI.call(this,e);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{let r=e;this._cache.delete(r);let n=e[this.opts.schemaId];return n&&(n=(0,Yu.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let r of e)this.addKeyword(r);return this}addKeyword(e,r){let n;if(typeof e=="string")n=e,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof e=="object"&&r===void 0){if(r=e,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(nH.call(this,n,r),!r)return(0,$x.eachItem)(n,a=>wx.call(this,a)),this;aH.call(this,r);let i={...r,type:(0,kf.getJSONTypes)(r.type),schemaType:(0,kf.getJSONTypes)(r.schemaType)};return(0,$x.eachItem)(n,i.type.length===0?a=>wx.call(this,a,i):a=>i.type.forEach(o=>wx.call(this,a,i,o))),this}getKeyword(e){let r=this.RULES.all[e];return typeof r=="object"?r.definition:!!r}removeKeyword(e){let{RULES:r}=this;delete r.keywords[e],delete r.all[e];for(let n of r.rules){let i=n.rules.findIndex(a=>a.keyword===e);i>=0&&n.rules.splice(i,1)}return this}addFormat(e,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[e]=r,this}errorsText(e=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!e||e.length===0?"No errors":e.map(i=>`${n}${i.instancePath} ${i.message}`).reduce((i,a)=>i+r+a)}$dataMetaSchema(e,r){let n=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let i of r){let a=i.split("/").slice(1),o=e;for(let s of a)o=o[s];for(let s in n){let c=n[s];if(typeof c!="object")continue;let{$data:u}=c.definition,l=o[s];u&&l&&(o[s]=QI(l))}}return e}_removeAllSchemas(e,r){for(let n in e){let i=e[n];(!r||r.test(n))&&(typeof i=="string"?delete e[n]:i&&!i.meta&&(this._cache.delete(i.schema),delete e[n]))}}_addSchema(e,r,n,i=this.opts.validateSchema,a=this.opts.addUsedSchema){let o,{schemaId:s}=this.opts;if(typeof e=="object")o=e[s];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(e);if(c!==void 0)return c;n=(0,Yu.normalizeId)(o||n);let u=Yu.getSchemaRefs.call(this,e,n);return c=new Xu.SchemaEnv({schema:e,schemaId:s,meta:r,baseId:n,localRefs:u}),this._cache.set(c.schema,c),a&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),i&&this.validateSchema(e,!0),c}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):Xu.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let r=this.opts;this.opts=this._metaOpts;try{Xu.compileSchema.call(this,e)}finally{this.opts=r}}};Qu.ValidationError=LZ.default;Qu.MissingRefError=XI.default;dr.default=Qu;function KI(t,e,r,n="error"){for(let i in t){let a=i;a in e&&this.logger[n](`${r}: option ${i}. ${t[a]}`)}}function JI(t){return t=(0,Yu.normalizeId)(t),this.schemas[t]||this.refs[t]}function JZ(){let t=this.opts.schemas;if(t)if(Array.isArray(t))this.addSchema(t);else for(let e in t)this.addSchema(t[e],e)}function XZ(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function YZ(t){if(Array.isArray(t)){this.addVocabulary(t);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let e in t){let r=t[e];r.keyword||(r.keyword=e),this.addKeyword(r)}}function QZ(){let t={...this.opts};for(let e of BZ)delete t[e];return t}var eH={log(){},warn(){},error(){}};function tH(t){if(t===!1)return eH;if(t===void 0)return console;if(t.log&&t.warn&&t.error)return t;throw new Error("logger must implement log, warn and error methods")}var rH=/^[a-z_$][a-z0-9_$:-]*$/i;function nH(t,e){let{RULES:r}=this;if((0,$x.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!rH.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function wx(t,e,r){var n;let i=e?.post;if(r&&i)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:a}=this,o=i?a.post:a.rules.find(({type:c})=>c===r);if(o||(o={type:r,rules:[]},a.rules.push(o)),a.keywords[t]=!0,!e)return;let s={keyword:t,definition:{...e,type:(0,kf.getJSONTypes)(e.type),schemaType:(0,kf.getJSONTypes)(e.schemaType)}};e.before?iH.call(this,o,s,e.before):o.rules.push(s),a.all[t]=s,(n=e.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function iH(t,e,r){let n=t.rules.findIndex(i=>i.keyword===r);n>=0?t.rules.splice(n,0,e):(t.rules.push(e),this.logger.warn(`rule ${r} is not defined`))}function aH(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=QI(e)),t.validateSchema=this.compile(e,!0))}var oH={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function QI(t){return{anyOf:[t,oH]}}});var tP=j(Ex=>{"use strict";Object.defineProperty(Ex,"__esModule",{value:!0});var sH={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Ex.default=sH});var aP=j(Va=>{"use strict";Object.defineProperty(Va,"__esModule",{value:!0});Va.callRef=Va.getValidate=void 0;var cH=Ku(),rP=gn(),Lr=Le(),ss=Ri(),nP=xf(),Tf=ot(),uH={keyword:"$ref",schemaType:"string",code(t){let{gen:e,schema:r,it:n}=t,{baseId:i,schemaEnv:a,validateName:o,opts:s,self:c}=n,{root:u}=a;if((r==="#"||r==="#/")&&i===u.baseId)return d();let l=nP.resolveRef.call(c,u,i,r);if(l===void 0)throw new cH.default(n.opts.uriResolver,i,r);if(l instanceof nP.SchemaEnv)return p(l);return f(l);function d(){if(a===u)return If(t,o,a,a.$async);let h=e.scopeValue("root",{ref:u});return If(t,(0,Lr._)`${h}.validate`,u,u.$async)}function p(h){let _=iP(t,h);If(t,_,h,h.$async)}function f(h){let _=e.scopeValue("schema",s.code.source===!0?{ref:h,code:(0,Lr.stringify)(h)}:{ref:h}),y=e.name("valid"),m=t.subschema({schema:h,dataTypes:[],schemaPath:Lr.nil,topSchemaRef:_,errSchemaPath:r},y);t.mergeEvaluated(m),t.ok(y)}}};function iP(t,e){let{gen:r}=t;return e.validate?r.scopeValue("validate",{ref:e.validate}):(0,Lr._)`${r.scopeValue("wrapper",{ref:e})}.validate`}Va.getValidate=iP;function If(t,e,r,n){let{gen:i,it:a}=t,{allErrors:o,schemaEnv:s,opts:c}=a,u=c.passContext?ss.default.this:Lr.nil;n?l():d();function l(){if(!s.$async)throw new Error("async schema referenced by sync schema");let h=i.let("valid");i.try(()=>{i.code((0,Lr._)`await ${(0,rP.callValidateCode)(t,e,u)}`),f(e),o||i.assign(h,!0)},_=>{i.if((0,Lr._)`!(${_} instanceof ${a.ValidationError})`,()=>i.throw(_)),p(_),o||i.assign(h,!1)}),t.ok(h)}function d(){t.result((0,rP.callValidateCode)(t,e,u),()=>f(e),()=>p(e))}function p(h){let _=(0,Lr._)`${h}.errors`;i.assign(ss.default.vErrors,(0,Lr._)`${ss.default.vErrors} === null ? ${_} : ${ss.default.vErrors}.concat(${_})`),i.assign(ss.default.errors,(0,Lr._)`${ss.default.vErrors}.length`)}function f(h){var _;if(!a.opts.unevaluated)return;let y=(_=r?.validate)===null||_===void 0?void 0:_.evaluated;if(a.props!==!0)if(y&&!y.dynamicProps)y.props!==void 0&&(a.props=Tf.mergeEvaluated.props(i,y.props,a.props));else{let m=i.var("props",(0,Lr._)`${h}.evaluated.props`);a.props=Tf.mergeEvaluated.props(i,m,a.props,Lr.Name)}if(a.items!==!0)if(y&&!y.dynamicItems)y.items!==void 0&&(a.items=Tf.mergeEvaluated.items(i,y.items,a.items));else{let m=i.var("items",(0,Lr._)`${h}.evaluated.items`);a.items=Tf.mergeEvaluated.items(i,m,a.items,Lr.Name)}}}Va.callRef=If;Va.default=uH});var oP=j(kx=>{"use strict";Object.defineProperty(kx,"__esModule",{value:!0});var lH=tP(),dH=aP(),pH=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",lH.default,dH.default];kx.default=pH});var sP=j(Tx=>{"use strict";Object.defineProperty(Tx,"__esModule",{value:!0});var Pf=Le(),oa=Pf.operators,Rf={maximum:{okStr:"<=",ok:oa.LTE,fail:oa.GT},minimum:{okStr:">=",ok:oa.GTE,fail:oa.LT},exclusiveMaximum:{okStr:"<",ok:oa.LT,fail:oa.GTE},exclusiveMinimum:{okStr:">",ok:oa.GT,fail:oa.LTE}},fH={message:({keyword:t,schemaCode:e})=>(0,Pf.str)`must be ${Rf[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Pf._)`{comparison: ${Rf[t].okStr}, limit: ${e}}`},mH={keyword:Object.keys(Rf),type:"number",schemaType:"number",$data:!0,error:fH,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,Pf._)`${r} ${Rf[e].fail} ${n} || isNaN(${r})`)}};Tx.default=mH});var cP=j(Ix=>{"use strict";Object.defineProperty(Ix,"__esModule",{value:!0});var el=Le(),hH={message:({schemaCode:t})=>(0,el.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,el._)`{multipleOf: ${t}}`},gH={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:hH,code(t){let{gen:e,data:r,schemaCode:n,it:i}=t,a=i.opts.multipleOfPrecision,o=e.let("res"),s=a?(0,el._)`Math.abs(Math.round(${o}) - ${o}) > 1e-${a}`:(0,el._)`${o} !== parseInt(${o})`;t.fail$data((0,el._)`(${n} === 0 || (${o} = ${r}/${n}, ${s}))`)}};Ix.default=gH});var lP=j(Px=>{"use strict";Object.defineProperty(Px,"__esModule",{value:!0});function uP(t){let e=t.length,r=0,n=0,i;for(;n=55296&&i<=56319&&n{"use strict";Object.defineProperty(Rx,"__esModule",{value:!0});var Ga=Le(),vH=ot(),yH=lP(),_H={message({keyword:t,schemaCode:e}){let r=t==="maxLength"?"more":"fewer";return(0,Ga.str)`must NOT have ${r} than ${e} characters`},params:({schemaCode:t})=>(0,Ga._)`{limit: ${t}}`},bH={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:_H,code(t){let{keyword:e,data:r,schemaCode:n,it:i}=t,a=e==="maxLength"?Ga.operators.GT:Ga.operators.LT,o=i.opts.unicode===!1?(0,Ga._)`${r}.length`:(0,Ga._)`${(0,vH.useFunc)(t.gen,yH.default)}(${r})`;t.fail$data((0,Ga._)`${o} ${a} ${n}`)}};Rx.default=bH});var pP=j(Ox=>{"use strict";Object.defineProperty(Ox,"__esModule",{value:!0});var xH=gn(),Of=Le(),SH={message:({schemaCode:t})=>(0,Of.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,Of._)`{pattern: ${t}}`},wH={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:SH,code(t){let{data:e,$data:r,schema:n,schemaCode:i,it:a}=t,o=a.opts.unicodeRegExp?"u":"",s=r?(0,Of._)`(new RegExp(${i}, ${o}))`:(0,xH.usePattern)(t,n);t.fail$data((0,Of._)`!${s}.test(${e})`)}};Ox.default=wH});var fP=j(Cx=>{"use strict";Object.defineProperty(Cx,"__esModule",{value:!0});var tl=Le(),$H={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,tl.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,tl._)`{limit: ${t}}`},EH={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:$H,code(t){let{keyword:e,data:r,schemaCode:n}=t,i=e==="maxProperties"?tl.operators.GT:tl.operators.LT;t.fail$data((0,tl._)`Object.keys(${r}).length ${i} ${n}`)}};Cx.default=EH});var mP=j(Nx=>{"use strict";Object.defineProperty(Nx,"__esModule",{value:!0});var rl=gn(),nl=Le(),kH=ot(),TH={message:({params:{missingProperty:t}})=>(0,nl.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,nl._)`{missingProperty: ${t}}`},IH={keyword:"required",type:"object",schemaType:"array",$data:!0,error:TH,code(t){let{gen:e,schema:r,schemaCode:n,data:i,$data:a,it:o}=t,{opts:s}=o;if(!a&&r.length===0)return;let c=r.length>=s.loopRequired;if(o.allErrors?u():l(),s.strictRequired){let f=t.parentSchema.properties,{definedProperties:h}=t.it;for(let _ of r)if(f?.[_]===void 0&&!h.has(_)){let y=o.schemaEnv.baseId+o.errSchemaPath,m=`required property "${_}" is not defined at "${y}" (strictRequired)`;(0,kH.checkStrictMode)(o,m,o.opts.strictRequired)}}function u(){if(c||a)t.block$data(nl.nil,d);else for(let f of r)(0,rl.checkReportMissingProp)(t,f)}function l(){let f=e.let("missing");if(c||a){let h=e.let("valid",!0);t.block$data(h,()=>p(f,h)),t.ok(h)}else e.if((0,rl.checkMissingProp)(t,r,f)),(0,rl.reportMissingProp)(t,f),e.else()}function d(){e.forOf("prop",n,f=>{t.setParams({missingProperty:f}),e.if((0,rl.noPropertyInData)(e,i,f,s.ownProperties),()=>t.error())})}function p(f,h){t.setParams({missingProperty:f}),e.forOf(f,n,()=>{e.assign(h,(0,rl.propertyInData)(e,i,f,s.ownProperties)),e.if((0,nl.not)(h),()=>{t.error(),e.break()})},nl.nil)}}};Nx.default=IH});var hP=j(jx=>{"use strict";Object.defineProperty(jx,"__esModule",{value:!0});var il=Le(),PH={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,il.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,il._)`{limit: ${t}}`},RH={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:PH,code(t){let{keyword:e,data:r,schemaCode:n}=t,i=e==="maxItems"?il.operators.GT:il.operators.LT;t.fail$data((0,il._)`${r}.length ${i} ${n}`)}};jx.default=RH});var Cf=j(Ax=>{"use strict";Object.defineProperty(Ax,"__esModule",{value:!0});var gP=ax();gP.code='require("ajv/dist/runtime/equal").default';Ax.default=gP});var vP=j(Dx=>{"use strict";Object.defineProperty(Dx,"__esModule",{value:!0});var Mx=Hu(),pr=Le(),OH=ot(),CH=Cf(),NH={message:({params:{i:t,j:e}})=>(0,pr.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,pr._)`{i: ${t}, j: ${e}}`},jH={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:NH,code(t){let{gen:e,data:r,$data:n,schema:i,parentSchema:a,schemaCode:o,it:s}=t;if(!n&&!i)return;let c=e.let("valid"),u=a.items?(0,Mx.getSchemaTypes)(a.items):[];t.block$data(c,l,(0,pr._)`${o} === false`),t.ok(c);function l(){let h=e.let("i",(0,pr._)`${r}.length`),_=e.let("j");t.setParams({i:h,j:_}),e.assign(c,!0),e.if((0,pr._)`${h} > 1`,()=>(d()?p:f)(h,_))}function d(){return u.length>0&&!u.some(h=>h==="object"||h==="array")}function p(h,_){let y=e.name("item"),m=(0,Mx.checkDataTypes)(u,y,s.opts.strictNumbers,Mx.DataType.Wrong),v=e.const("indices",(0,pr._)`{}`);e.for((0,pr._)`;${h}--;`,()=>{e.let(y,(0,pr._)`${r}[${h}]`),e.if(m,(0,pr._)`continue`),u.length>1&&e.if((0,pr._)`typeof ${y} == "string"`,(0,pr._)`${y} += "_"`),e.if((0,pr._)`typeof ${v}[${y}] == "number"`,()=>{e.assign(_,(0,pr._)`${v}[${y}]`),t.error(),e.assign(c,!1).break()}).code((0,pr._)`${v}[${y}] = ${h}`)})}function f(h,_){let y=(0,OH.useFunc)(e,CH.default),m=e.name("outer");e.label(m).for((0,pr._)`;${h}--;`,()=>e.for((0,pr._)`${_} = ${h}; ${_}--;`,()=>e.if((0,pr._)`${y}(${r}[${h}], ${r}[${_}])`,()=>{t.error(),e.assign(c,!1).break(m)})))}}};Dx.default=jH});var yP=j(Ux=>{"use strict";Object.defineProperty(Ux,"__esModule",{value:!0});var zx=Le(),AH=ot(),MH=Cf(),DH={message:"must be equal to constant",params:({schemaCode:t})=>(0,zx._)`{allowedValue: ${t}}`},zH={keyword:"const",$data:!0,error:DH,code(t){let{gen:e,data:r,$data:n,schemaCode:i,schema:a}=t;n||a&&typeof a=="object"?t.fail$data((0,zx._)`!${(0,AH.useFunc)(e,MH.default)}(${r}, ${i})`):t.fail((0,zx._)`${a} !== ${r}`)}};Ux.default=zH});var _P=j(qx=>{"use strict";Object.defineProperty(qx,"__esModule",{value:!0});var al=Le(),UH=ot(),qH=Cf(),LH={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,al._)`{allowedValues: ${t}}`},FH={keyword:"enum",schemaType:"array",$data:!0,error:LH,code(t){let{gen:e,data:r,$data:n,schema:i,schemaCode:a,it:o}=t;if(!n&&i.length===0)throw new Error("enum must have non-empty array");let s=i.length>=o.opts.loopEnum,c,u=()=>c??(c=(0,UH.useFunc)(e,qH.default)),l;if(s||n)l=e.let("valid"),t.block$data(l,d);else{if(!Array.isArray(i))throw new Error("ajv implementation error");let f=e.const("vSchema",a);l=(0,al.or)(...i.map((h,_)=>p(f,_)))}t.pass(l);function d(){e.assign(l,!1),e.forOf("v",a,f=>e.if((0,al._)`${u()}(${r}, ${f})`,()=>e.assign(l,!0).break()))}function p(f,h){let _=i[h];return typeof _=="object"&&_!==null?(0,al._)`${u()}(${r}, ${f}[${h}])`:(0,al._)`${r} === ${_}`}}};qx.default=FH});var bP=j(Lx=>{"use strict";Object.defineProperty(Lx,"__esModule",{value:!0});var ZH=sP(),HH=cP(),BH=dP(),VH=pP(),GH=fP(),WH=mP(),KH=hP(),JH=vP(),XH=yP(),YH=_P(),QH=[ZH.default,HH.default,BH.default,VH.default,GH.default,WH.default,KH.default,JH.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},XH.default,YH.default];Lx.default=QH});var Zx=j(ol=>{"use strict";Object.defineProperty(ol,"__esModule",{value:!0});ol.validateAdditionalItems=void 0;var Wa=Le(),Fx=ot(),eB={message:({params:{len:t}})=>(0,Wa.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,Wa._)`{limit: ${t}}`},tB={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:eB,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,Fx.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}xP(t,n)}};function xP(t,e){let{gen:r,schema:n,data:i,keyword:a,it:o}=t;o.items=!0;let s=r.const("len",(0,Wa._)`${i}.length`);if(n===!1)t.setParams({len:e.length}),t.pass((0,Wa._)`${s} <= ${e.length}`);else if(typeof n=="object"&&!(0,Fx.alwaysValidSchema)(o,n)){let u=r.var("valid",(0,Wa._)`${s} <= ${e.length}`);r.if((0,Wa.not)(u),()=>c(u)),t.ok(u)}function c(u){r.forRange("i",e.length,s,l=>{t.subschema({keyword:a,dataProp:l,dataPropType:Fx.Type.Num},u),o.allErrors||r.if((0,Wa.not)(u),()=>r.break())})}}ol.validateAdditionalItems=xP;ol.default=tB});var Hx=j(sl=>{"use strict";Object.defineProperty(sl,"__esModule",{value:!0});sl.validateTuple=void 0;var SP=Le(),Nf=ot(),rB=gn(),nB={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return wP(t,"additionalItems",e);r.items=!0,!(0,Nf.alwaysValidSchema)(r,e)&&t.ok((0,rB.validateArray)(t))}};function wP(t,e,r=t.schema){let{gen:n,parentSchema:i,data:a,keyword:o,it:s}=t;l(i),s.opts.unevaluated&&r.length&&s.items!==!0&&(s.items=Nf.mergeEvaluated.items(n,r.length,s.items));let c=n.name("valid"),u=n.const("len",(0,SP._)`${a}.length`);r.forEach((d,p)=>{(0,Nf.alwaysValidSchema)(s,d)||(n.if((0,SP._)`${u} > ${p}`,()=>t.subschema({keyword:o,schemaProp:p,dataProp:p},c)),t.ok(c))});function l(d){let{opts:p,errSchemaPath:f}=s,h=r.length,_=h===d.minItems&&(h===d.maxItems||d[e]===!1);if(p.strictTuples&&!_){let y=`"${o}" is ${h}-tuple, but minItems or maxItems/${e} are not specified or different at path "${f}"`;(0,Nf.checkStrictMode)(s,y,p.strictTuples)}}}sl.validateTuple=wP;sl.default=nB});var $P=j(Bx=>{"use strict";Object.defineProperty(Bx,"__esModule",{value:!0});var iB=Hx(),aB={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,iB.validateTuple)(t,"items")};Bx.default=aB});var kP=j(Vx=>{"use strict";Object.defineProperty(Vx,"__esModule",{value:!0});var EP=Le(),oB=ot(),sB=gn(),cB=Zx(),uB={message:({params:{len:t}})=>(0,EP.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,EP._)`{limit: ${t}}`},lB={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:uB,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:i}=r;n.items=!0,!(0,oB.alwaysValidSchema)(n,e)&&(i?(0,cB.validateAdditionalItems)(t,i):t.ok((0,sB.validateArray)(t)))}};Vx.default=lB});var TP=j(Gx=>{"use strict";Object.defineProperty(Gx,"__esModule",{value:!0});var yn=Le(),jf=ot(),dB={message:({params:{min:t,max:e}})=>e===void 0?(0,yn.str)`must contain at least ${t} valid item(s)`:(0,yn.str)`must contain at least ${t} and no more than ${e} valid item(s)`,params:({params:{min:t,max:e}})=>e===void 0?(0,yn._)`{minContains: ${t}}`:(0,yn._)`{minContains: ${t}, maxContains: ${e}}`},pB={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:dB,code(t){let{gen:e,schema:r,parentSchema:n,data:i,it:a}=t,o,s,{minContains:c,maxContains:u}=n;a.opts.next?(o=c===void 0?1:c,s=u):o=1;let l=e.const("len",(0,yn._)`${i}.length`);if(t.setParams({min:o,max:s}),s===void 0&&o===0){(0,jf.checkStrictMode)(a,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&o>s){(0,jf.checkStrictMode)(a,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,jf.alwaysValidSchema)(a,r)){let _=(0,yn._)`${l} >= ${o}`;s!==void 0&&(_=(0,yn._)`${_} && ${l} <= ${s}`),t.pass(_);return}a.items=!0;let d=e.name("valid");s===void 0&&o===1?f(d,()=>e.if(d,()=>e.break())):o===0?(e.let(d,!0),s!==void 0&&e.if((0,yn._)`${i}.length > 0`,p)):(e.let(d,!1),p()),t.result(d,()=>t.reset());function p(){let _=e.name("_valid"),y=e.let("count",0);f(_,()=>e.if(_,()=>h(y)))}function f(_,y){e.forRange("i",0,l,m=>{t.subschema({keyword:"contains",dataProp:m,dataPropType:jf.Type.Num,compositeRule:!0},_),y()})}function h(_){e.code((0,yn._)`${_}++`),s===void 0?e.if((0,yn._)`${_} >= ${o}`,()=>e.assign(d,!0).break()):(e.if((0,yn._)`${_} > ${s}`,()=>e.assign(d,!1).break()),o===1?e.assign(d,!0):e.if((0,yn._)`${_} >= ${o}`,()=>e.assign(d,!0)))}}};Gx.default=pB});var RP=j(ai=>{"use strict";Object.defineProperty(ai,"__esModule",{value:!0});ai.validateSchemaDeps=ai.validatePropertyDeps=ai.error=void 0;var Wx=Le(),fB=ot(),cl=gn();ai.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,Wx.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,Wx._)`{property: ${t}, + missingProperty: ${n}, + depsCount: ${e}, + deps: ${r}}`};var mB={keyword:"dependencies",type:"object",schemaType:"object",error:ai.error,code(t){let[e,r]=hB(t);IP(t,e),PP(t,r)}};function hB({schema:t}){let e={},r={};for(let n in t){if(n==="__proto__")continue;let i=Array.isArray(t[n])?e:r;i[n]=t[n]}return[e,r]}function IP(t,e=t.schema){let{gen:r,data:n,it:i}=t;if(Object.keys(e).length===0)return;let a=r.let("missing");for(let o in e){let s=e[o];if(s.length===0)continue;let c=(0,cl.propertyInData)(r,n,o,i.opts.ownProperties);t.setParams({property:o,depsCount:s.length,deps:s.join(", ")}),i.allErrors?r.if(c,()=>{for(let u of s)(0,cl.checkReportMissingProp)(t,u)}):(r.if((0,Wx._)`${c} && (${(0,cl.checkMissingProp)(t,s,a)})`),(0,cl.reportMissingProp)(t,a),r.else())}}ai.validatePropertyDeps=IP;function PP(t,e=t.schema){let{gen:r,data:n,keyword:i,it:a}=t,o=r.name("valid");for(let s in e)(0,fB.alwaysValidSchema)(a,e[s])||(r.if((0,cl.propertyInData)(r,n,s,a.opts.ownProperties),()=>{let c=t.subschema({keyword:i,schemaProp:s},o);t.mergeValidEvaluated(c,o)},()=>r.var(o,!0)),t.ok(o))}ai.validateSchemaDeps=PP;ai.default=mB});var CP=j(Kx=>{"use strict";Object.defineProperty(Kx,"__esModule",{value:!0});var OP=Le(),gB=ot(),vB={message:"property name must be valid",params:({params:t})=>(0,OP._)`{propertyName: ${t.propertyName}}`},yB={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:vB,code(t){let{gen:e,schema:r,data:n,it:i}=t;if((0,gB.alwaysValidSchema)(i,r))return;let a=e.name("valid");e.forIn("key",n,o=>{t.setParams({propertyName:o}),t.subschema({keyword:"propertyNames",data:o,dataTypes:["string"],propertyName:o,compositeRule:!0},a),e.if((0,OP.not)(a),()=>{t.error(!0),i.allErrors||e.break()})}),t.ok(a)}};Kx.default=yB});var Xx=j(Jx=>{"use strict";Object.defineProperty(Jx,"__esModule",{value:!0});var Af=gn(),Un=Le(),_B=Ri(),Mf=ot(),bB={message:"must NOT have additional properties",params:({params:t})=>(0,Un._)`{additionalProperty: ${t.additionalProperty}}`},xB={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:bB,code(t){let{gen:e,schema:r,parentSchema:n,data:i,errsCount:a,it:o}=t;if(!a)throw new Error("ajv implementation error");let{allErrors:s,opts:c}=o;if(o.props=!0,c.removeAdditional!=="all"&&(0,Mf.alwaysValidSchema)(o,r))return;let u=(0,Af.allSchemaProperties)(n.properties),l=(0,Af.allSchemaProperties)(n.patternProperties);d(),t.ok((0,Un._)`${a} === ${_B.default.errors}`);function d(){e.forIn("key",i,y=>{!u.length&&!l.length?h(y):e.if(p(y),()=>h(y))})}function p(y){let m;if(u.length>8){let v=(0,Mf.schemaRefOrVal)(o,n.properties,"properties");m=(0,Af.isOwnProperty)(e,v,y)}else u.length?m=(0,Un.or)(...u.map(v=>(0,Un._)`${y} === ${v}`)):m=Un.nil;return l.length&&(m=(0,Un.or)(m,...l.map(v=>(0,Un._)`${(0,Af.usePattern)(t,v)}.test(${y})`))),(0,Un.not)(m)}function f(y){e.code((0,Un._)`delete ${i}[${y}]`)}function h(y){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){f(y);return}if(r===!1){t.setParams({additionalProperty:y}),t.error(),s||e.break();return}if(typeof r=="object"&&!(0,Mf.alwaysValidSchema)(o,r)){let m=e.name("valid");c.removeAdditional==="failing"?(_(y,m,!1),e.if((0,Un.not)(m),()=>{t.reset(),f(y)})):(_(y,m),s||e.if((0,Un.not)(m),()=>e.break()))}}function _(y,m,v){let g={keyword:"additionalProperties",dataProp:y,dataPropType:Mf.Type.Str};v===!1&&Object.assign(g,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(g,m)}}};Jx.default=xB});var AP=j(Qx=>{"use strict";Object.defineProperty(Qx,"__esModule",{value:!0});var SB=Wu(),NP=gn(),Yx=ot(),jP=Xx(),wB={keyword:"properties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,parentSchema:n,data:i,it:a}=t;a.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&jP.default.code(new SB.KeywordCxt(a,jP.default,"additionalProperties"));let o=(0,NP.allSchemaProperties)(r);for(let d of o)a.definedProperties.add(d);a.opts.unevaluated&&o.length&&a.props!==!0&&(a.props=Yx.mergeEvaluated.props(e,(0,Yx.toHash)(o),a.props));let s=o.filter(d=>!(0,Yx.alwaysValidSchema)(a,r[d]));if(s.length===0)return;let c=e.name("valid");for(let d of s)u(d)?l(d):(e.if((0,NP.propertyInData)(e,i,d,a.opts.ownProperties)),l(d),a.allErrors||e.else().var(c,!0),e.endIf()),t.it.definedProperties.add(d),t.ok(c);function u(d){return a.opts.useDefaults&&!a.compositeRule&&r[d].default!==void 0}function l(d){t.subschema({keyword:"properties",schemaProp:d,dataProp:d},c)}}};Qx.default=wB});var UP=j(e0=>{"use strict";Object.defineProperty(e0,"__esModule",{value:!0});var MP=gn(),Df=Le(),DP=ot(),zP=ot(),$B={keyword:"patternProperties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,data:n,parentSchema:i,it:a}=t,{opts:o}=a,s=(0,MP.allSchemaProperties)(r),c=s.filter(_=>(0,DP.alwaysValidSchema)(a,r[_]));if(s.length===0||c.length===s.length&&(!a.opts.unevaluated||a.props===!0))return;let u=o.strictSchema&&!o.allowMatchingProperties&&i.properties,l=e.name("valid");a.props!==!0&&!(a.props instanceof Df.Name)&&(a.props=(0,zP.evaluatedPropsToName)(e,a.props));let{props:d}=a;p();function p(){for(let _ of s)u&&f(_),a.allErrors?h(_):(e.var(l,!0),h(_),e.if(l))}function f(_){for(let y in u)new RegExp(_).test(y)&&(0,DP.checkStrictMode)(a,`property ${y} matches pattern ${_} (use allowMatchingProperties)`)}function h(_){e.forIn("key",n,y=>{e.if((0,Df._)`${(0,MP.usePattern)(t,_)}.test(${y})`,()=>{let m=c.includes(_);m||t.subschema({keyword:"patternProperties",schemaProp:_,dataProp:y,dataPropType:zP.Type.Str},l),a.opts.unevaluated&&d!==!0?e.assign((0,Df._)`${d}[${y}]`,!0):!m&&!a.allErrors&&e.if((0,Df.not)(l),()=>e.break())})})}}};e0.default=$B});var qP=j(t0=>{"use strict";Object.defineProperty(t0,"__esModule",{value:!0});var EB=ot(),kB={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,EB.alwaysValidSchema)(n,r)){t.fail();return}let i=e.name("valid");t.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},i),t.failResult(i,()=>t.reset(),()=>t.error())},error:{message:"must NOT be valid"}};t0.default=kB});var LP=j(r0=>{"use strict";Object.defineProperty(r0,"__esModule",{value:!0});var TB=gn(),IB={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:TB.validateUnion,error:{message:"must match a schema in anyOf"}};r0.default=IB});var FP=j(n0=>{"use strict";Object.defineProperty(n0,"__esModule",{value:!0});var zf=Le(),PB=ot(),RB={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,zf._)`{passingSchemas: ${t.passing}}`},OB={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:RB,code(t){let{gen:e,schema:r,parentSchema:n,it:i}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(i.opts.discriminator&&n.discriminator)return;let a=r,o=e.let("valid",!1),s=e.let("passing",null),c=e.name("_valid");t.setParams({passing:s}),e.block(u),t.result(o,()=>t.reset(),()=>t.error(!0));function u(){a.forEach((l,d)=>{let p;(0,PB.alwaysValidSchema)(i,l)?e.var(c,!0):p=t.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&e.if((0,zf._)`${c} && ${o}`).assign(o,!1).assign(s,(0,zf._)`[${s}, ${d}]`).else(),e.if(c,()=>{e.assign(o,!0),e.assign(s,d),p&&t.mergeEvaluated(p,zf.Name)})})}}};n0.default=OB});var ZP=j(i0=>{"use strict";Object.defineProperty(i0,"__esModule",{value:!0});var CB=ot(),NB={keyword:"allOf",schemaType:"array",code(t){let{gen:e,schema:r,it:n}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");let i=e.name("valid");r.forEach((a,o)=>{if((0,CB.alwaysValidSchema)(n,a))return;let s=t.subschema({keyword:"allOf",schemaProp:o},i);t.ok(i),t.mergeEvaluated(s)})}};i0.default=NB});var VP=j(a0=>{"use strict";Object.defineProperty(a0,"__esModule",{value:!0});var Uf=Le(),BP=ot(),jB={message:({params:t})=>(0,Uf.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,Uf._)`{failingKeyword: ${t.ifClause}}`},AB={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:jB,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,BP.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let i=HP(n,"then"),a=HP(n,"else");if(!i&&!a)return;let o=e.let("valid",!0),s=e.name("_valid");if(c(),t.reset(),i&&a){let l=e.let("ifClause");t.setParams({ifClause:l}),e.if(s,u("then",l),u("else",l))}else i?e.if(s,u("then")):e.if((0,Uf.not)(s),u("else"));t.pass(o,()=>t.error(!0));function c(){let l=t.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);t.mergeEvaluated(l)}function u(l,d){return()=>{let p=t.subschema({keyword:l},s);e.assign(o,s),t.mergeValidEvaluated(p,o),d?e.assign(d,(0,Uf._)`${l}`):t.setParams({ifClause:l})}}}};function HP(t,e){let r=t.schema[e];return r!==void 0&&!(0,BP.alwaysValidSchema)(t,r)}a0.default=AB});var GP=j(o0=>{"use strict";Object.defineProperty(o0,"__esModule",{value:!0});var MB=ot(),DB={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,MB.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};o0.default=DB});var WP=j(s0=>{"use strict";Object.defineProperty(s0,"__esModule",{value:!0});var zB=Zx(),UB=$P(),qB=Hx(),LB=kP(),FB=TP(),ZB=RP(),HB=CP(),BB=Xx(),VB=AP(),GB=UP(),WB=qP(),KB=LP(),JB=FP(),XB=ZP(),YB=VP(),QB=GP();function eV(t=!1){let e=[WB.default,KB.default,JB.default,XB.default,YB.default,QB.default,HB.default,BB.default,ZB.default,VB.default,GB.default];return t?e.push(UB.default,LB.default):e.push(zB.default,qB.default),e.push(FB.default),e}s0.default=eV});var KP=j(c0=>{"use strict";Object.defineProperty(c0,"__esModule",{value:!0});var Xt=Le(),tV={message:({schemaCode:t})=>(0,Xt.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,Xt._)`{format: ${t}}`},rV={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:tV,code(t,e){let{gen:r,data:n,$data:i,schema:a,schemaCode:o,it:s}=t,{opts:c,errSchemaPath:u,schemaEnv:l,self:d}=s;if(!c.validateFormats)return;i?p():f();function p(){let h=r.scopeValue("formats",{ref:d.formats,code:c.code.formats}),_=r.const("fDef",(0,Xt._)`${h}[${o}]`),y=r.let("fType"),m=r.let("format");r.if((0,Xt._)`typeof ${_} == "object" && !(${_} instanceof RegExp)`,()=>r.assign(y,(0,Xt._)`${_}.type || "string"`).assign(m,(0,Xt._)`${_}.validate`),()=>r.assign(y,(0,Xt._)`"string"`).assign(m,_)),t.fail$data((0,Xt.or)(v(),g()));function v(){return c.strictSchema===!1?Xt.nil:(0,Xt._)`${o} && !${m}`}function g(){let b=l.$async?(0,Xt._)`(${_}.async ? await ${m}(${n}) : ${m}(${n}))`:(0,Xt._)`${m}(${n})`,S=(0,Xt._)`(typeof ${m} == "function" ? ${b} : ${m}.test(${n}))`;return(0,Xt._)`${m} && ${m} !== true && ${y} === ${e} && !${S}`}}function f(){let h=d.formats[a];if(!h){v();return}if(h===!0)return;let[_,y,m]=g(h);_===e&&t.pass(b());function v(){if(c.strictSchema===!1){d.logger.warn(S());return}throw new Error(S());function S(){return`unknown format "${a}" ignored in schema at path "${u}"`}}function g(S){let x=S instanceof RegExp?(0,Xt.regexpCode)(S):c.code.formats?(0,Xt._)`${c.code.formats}${(0,Xt.getProperty)(a)}`:void 0,w=r.scopeValue("formats",{key:a,ref:S,code:x});return typeof S=="object"&&!(S instanceof RegExp)?[S.type||"string",S.validate,(0,Xt._)`${w}.validate`]:["string",S,w]}function b(){if(typeof h=="object"&&!(h instanceof RegExp)&&h.async){if(!l.$async)throw new Error("async format in sync schema");return(0,Xt._)`await ${m}(${n})`}return typeof y=="function"?(0,Xt._)`${m}(${n})`:(0,Xt._)`${m}.test(${n})`}}}};c0.default=rV});var JP=j(u0=>{"use strict";Object.defineProperty(u0,"__esModule",{value:!0});var nV=KP(),iV=[nV.default];u0.default=iV});var XP=j(cs=>{"use strict";Object.defineProperty(cs,"__esModule",{value:!0});cs.contentVocabulary=cs.metadataVocabulary=void 0;cs.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];cs.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var QP=j(l0=>{"use strict";Object.defineProperty(l0,"__esModule",{value:!0});var aV=oP(),oV=bP(),sV=WP(),cV=JP(),YP=XP(),uV=[aV.default,oV.default,(0,sV.default)(),cV.default,YP.metadataVocabulary,YP.contentVocabulary];l0.default=uV});var tR=j(qf=>{"use strict";Object.defineProperty(qf,"__esModule",{value:!0});qf.DiscrError=void 0;var eR;(function(t){t.Tag="tag",t.Mapping="mapping"})(eR||(qf.DiscrError=eR={}))});var nR=j(p0=>{"use strict";Object.defineProperty(p0,"__esModule",{value:!0});var us=Le(),d0=tR(),rR=xf(),lV=Ku(),dV=ot(),pV={message:({params:{discrError:t,tagName:e}})=>t===d0.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:r}})=>(0,us._)`{error: ${t}, tag: ${r}, tagValue: ${e}}`},fV={keyword:"discriminator",type:"object",schemaType:"object",error:pV,code(t){let{gen:e,data:r,schema:n,parentSchema:i,it:a}=t,{oneOf:o}=i;if(!a.opts.discriminator)throw new Error("discriminator: requires discriminator option");let s=n.propertyName;if(typeof s!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!o)throw new Error("discriminator: requires oneOf keyword");let c=e.let("valid",!1),u=e.const("tag",(0,us._)`${r}${(0,us.getProperty)(s)}`);e.if((0,us._)`typeof ${u} == "string"`,()=>l(),()=>t.error(!1,{discrError:d0.DiscrError.Tag,tag:u,tagName:s})),t.ok(c);function l(){let f=p();e.if(!1);for(let h in f)e.elseIf((0,us._)`${u} === ${h}`),e.assign(c,d(f[h]));e.else(),t.error(!1,{discrError:d0.DiscrError.Mapping,tag:u,tagName:s}),e.endIf()}function d(f){let h=e.name("valid"),_=t.subschema({keyword:"oneOf",schemaProp:f},h);return t.mergeEvaluated(_,us.Name),h}function p(){var f;let h={},_=m(i),y=!0;for(let b=0;b{mV.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var m0=j((At,f0)=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});At.MissingRefError=At.ValidationError=At.CodeGen=At.Name=At.nil=At.stringify=At.str=At._=At.KeywordCxt=At.Ajv=void 0;var hV=eP(),gV=QP(),vV=nR(),aR=iR(),yV=["/properties"],Lf="http://json-schema.org/draft-07/schema",ls=class extends hV.default{_addVocabularies(){super._addVocabularies(),gV.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(vV.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(aR,yV):aR;this.addMetaSchema(e,Lf,!1),this.refs["http://json-schema.org/schema"]=Lf}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Lf)?Lf:void 0)}};At.Ajv=ls;f0.exports=At=ls;f0.exports.Ajv=ls;Object.defineProperty(At,"__esModule",{value:!0});At.default=ls;var _V=Wu();Object.defineProperty(At,"KeywordCxt",{enumerable:!0,get:function(){return _V.KeywordCxt}});var ds=Le();Object.defineProperty(At,"_",{enumerable:!0,get:function(){return ds._}});Object.defineProperty(At,"str",{enumerable:!0,get:function(){return ds.str}});Object.defineProperty(At,"stringify",{enumerable:!0,get:function(){return ds.stringify}});Object.defineProperty(At,"nil",{enumerable:!0,get:function(){return ds.nil}});Object.defineProperty(At,"Name",{enumerable:!0,get:function(){return ds.Name}});Object.defineProperty(At,"CodeGen",{enumerable:!0,get:function(){return ds.CodeGen}});var bV=_f();Object.defineProperty(At,"ValidationError",{enumerable:!0,get:function(){return bV.default}});var xV=Ku();Object.defineProperty(At,"MissingRefError",{enumerable:!0,get:function(){return xV.default}})});var fR=j(si=>{"use strict";Object.defineProperty(si,"__esModule",{value:!0});si.formatNames=si.fastFormats=si.fullFormats=void 0;function oi(t,e){return{validate:t,compare:e}}si.fullFormats={date:oi(uR,y0),time:oi(g0(!0),_0),"date-time":oi(oR(!0),dR),"iso-time":oi(g0(),lR),"iso-date-time":oi(oR(),pR),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:TV,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:jV,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:IV,int32:{type:"number",validate:OV},int64:{type:"number",validate:CV},float:{type:"number",validate:cR},double:{type:"number",validate:cR},password:!0,binary:!0};si.fastFormats={...si.fullFormats,date:oi(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,y0),time:oi(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,_0),"date-time":oi(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,dR),"iso-time":oi(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,lR),"iso-date-time":oi(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,pR),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};si.formatNames=Object.keys(si.fullFormats);function SV(t){return t%4===0&&(t%100!==0||t%400===0)}var wV=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,$V=[0,31,28,31,30,31,30,31,31,30,31,30,31];function uR(t){let e=wV.exec(t);if(!e)return!1;let r=+e[1],n=+e[2],i=+e[3];return n>=1&&n<=12&&i>=1&&i<=(n===2&&SV(r)?29:$V[n])}function y0(t,e){if(t&&e)return t>e?1:t23||l>59||t&&!s)return!1;if(i<=23&&a<=59&&o<60)return!0;let d=a-l*c,p=i-u*c-(d<0?1:0);return(p===23||p===-1)&&(d===59||d===-1)&&o<61}}function _0(t,e){if(!(t&&e))return;let r=new Date("2020-01-01T"+t).valueOf(),n=new Date("2020-01-01T"+e).valueOf();if(r&&n)return r-n}function lR(t,e){if(!(t&&e))return;let r=h0.exec(t),n=h0.exec(e);if(r&&n)return t=r[1]+r[2]+r[3],e=n[1]+n[2]+n[3],t>e?1:t=PV}function CV(t){return Number.isInteger(t)}function cR(){return!0}var NV=/[^\\]\\Z/;function jV(t){if(NV.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var mR=j(ps=>{"use strict";Object.defineProperty(ps,"__esModule",{value:!0});ps.formatLimitDefinition=void 0;var AV=m0(),qn=Le(),sa=qn.operators,Ff={formatMaximum:{okStr:"<=",ok:sa.LTE,fail:sa.GT},formatMinimum:{okStr:">=",ok:sa.GTE,fail:sa.LT},formatExclusiveMaximum:{okStr:"<",ok:sa.LT,fail:sa.GTE},formatExclusiveMinimum:{okStr:">",ok:sa.GT,fail:sa.LTE}},MV={message:({keyword:t,schemaCode:e})=>(0,qn.str)`should be ${Ff[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,qn._)`{comparison: ${Ff[t].okStr}, limit: ${e}}`};ps.formatLimitDefinition={keyword:Object.keys(Ff),type:"string",schemaType:"string",$data:!0,error:MV,code(t){let{gen:e,data:r,schemaCode:n,keyword:i,it:a}=t,{opts:o,self:s}=a;if(!o.validateFormats)return;let c=new AV.KeywordCxt(a,s.RULES.all.format.definition,"format");c.$data?u():l();function u(){let p=e.scopeValue("formats",{ref:s.formats,code:o.code.formats}),f=e.const("fmt",(0,qn._)`${p}[${c.schemaCode}]`);t.fail$data((0,qn.or)((0,qn._)`typeof ${f} != "object"`,(0,qn._)`${f} instanceof RegExp`,(0,qn._)`typeof ${f}.compare != "function"`,d(f)))}function l(){let p=c.schema,f=s.formats[p];if(!f||f===!0)return;if(typeof f!="object"||f instanceof RegExp||typeof f.compare!="function")throw new Error(`"${i}": format "${p}" does not define "compare" function`);let h=e.scopeValue("formats",{key:p,ref:f,code:o.code.formats?(0,qn._)`${o.code.formats}${(0,qn.getProperty)(p)}`:void 0});t.fail$data(d(h))}function d(p){return(0,qn._)`${p}.compare(${r}, ${n}) ${Ff[i].fail} 0`}},dependencies:["format"]};var DV=t=>(t.addKeyword(ps.formatLimitDefinition),t);ps.default=DV});var yR=j((ul,vR)=>{"use strict";Object.defineProperty(ul,"__esModule",{value:!0});var fs=fR(),zV=mR(),b0=Le(),hR=new b0.Name("fullFormats"),UV=new b0.Name("fastFormats"),x0=(t,e={keywords:!0})=>{if(Array.isArray(e))return gR(t,e,fs.fullFormats,hR),t;let[r,n]=e.mode==="fast"?[fs.fastFormats,UV]:[fs.fullFormats,hR],i=e.formats||fs.formatNames;return gR(t,i,r,n),e.keywords&&(0,zV.default)(t),t};x0.get=(t,e="full")=>{let n=(e==="fast"?fs.fastFormats:fs.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function gR(t,e,r,n){var i,a;(i=(a=t.opts.code).formats)!==null&&i!==void 0||(a.formats=(0,b0._)`require("ajv-formats/dist/formats").${n}`);for(let o of e)t.addFormat(o,r[o])}vR.exports=ul=x0;Object.defineProperty(ul,"__esModule",{value:!0});ul.default=x0});var TR=j((bwe,kR)=>{kR.exports=ER;ER.sync=ZV;var wR=require("fs");function FV(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var n=0;n{OR.exports=PR;PR.sync=HV;var IR=require("fs");function PR(t,e,r){IR.stat(t,function(n,i){r(n,n?!1:RR(i,e))})}function HV(t,e){return RR(IR.statSync(t),e)}function RR(t,e){return t.isFile()&&BV(t,e)}function BV(t,e){var r=t.mode,n=t.uid,i=t.gid,a=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),s=parseInt("100",8),c=parseInt("010",8),u=parseInt("001",8),l=s|c,d=r&u||r&c&&i===o||r&s&&n===a||r&l&&a===0;return d}});var jR=j((wwe,NR)=>{var Swe=require("fs"),Vf;process.platform==="win32"||global.TESTING_WINDOWS?Vf=TR():Vf=CR();NR.exports=S0;S0.sync=VV;function S0(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(n,i){S0(t,e||{},function(a,o){a?i(a):n(o)})})}Vf(t,e||{},function(n,i){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,i=!1),r(n,i)})}function VV(t,e){try{return Vf.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var LR=j(($we,qR)=>{var hs=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",AR=require("path"),GV=hs?";":":",MR=jR(),DR=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),zR=(t,e)=>{let r=e.colon||GV,n=t.match(/\//)||hs&&t.match(/\\/)?[""]:[...hs?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],i=hs?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",a=hs?i.split(r):[""];return hs&&t.indexOf(".")!==-1&&a[0]!==""&&a.unshift(""),{pathEnv:n,pathExt:a,pathExtExe:i}},UR=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:i,pathExtExe:a}=zR(t,e),o=[],s=u=>new Promise((l,d)=>{if(u===n.length)return e.all&&o.length?l(o):d(DR(t));let p=n[u],f=/^".*"$/.test(p)?p.slice(1,-1):p,h=AR.join(f,t),_=!f&&/^\.[\\\/]/.test(t)?t.slice(0,2)+h:h;l(c(_,u,0))}),c=(u,l,d)=>new Promise((p,f)=>{if(d===i.length)return p(s(l+1));let h=i[d];MR(u+h,{pathExt:a},(_,y)=>{if(!_&&y)if(e.all)o.push(u+h);else return p(u+h);return p(c(u,l,d+1))})});return r?s(0).then(u=>r(null,u),r):s(0)},WV=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:i}=zR(t,e),a=[];for(let o=0;o{"use strict";var FR=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};w0.exports=FR;w0.exports.default=FR});var GR=j((kwe,VR)=>{"use strict";var HR=require("path"),KV=LR(),JV=ZR();function BR(t,e){let r=t.options.env||process.env,n=process.cwd(),i=t.options.cwd!=null,a=i&&process.chdir!==void 0&&!process.chdir.disabled;if(a)try{process.chdir(t.options.cwd)}catch{}let o;try{o=KV.sync(t.command,{path:r[JV({env:r})],pathExt:e?HR.delimiter:void 0})}catch{}finally{a&&process.chdir(n)}return o&&(o=HR.resolve(i?t.options.cwd:"",o)),o}function XV(t){return BR(t)||BR(t,!0)}VR.exports=XV});var WR=j((Twe,E0)=>{"use strict";var $0=/([()\][%!^"`<>&|;, *?])/g;function YV(t){return t=t.replace($0,"^$1"),t}function QV(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace($0,"^$1"),e&&(t=t.replace($0,"^$1")),t}E0.exports.command=YV;E0.exports.argument=QV});var JR=j((Iwe,KR)=>{"use strict";KR.exports=/^#!(.*)/});var YR=j((Pwe,XR)=>{"use strict";var e7=JR();XR.exports=(t="")=>{let e=t.match(e7);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),i=r.split("/").pop();return i==="env"?n:n?`${i} ${n}`:i}});var eO=j((Rwe,QR)=>{"use strict";var k0=require("fs"),t7=YR();function r7(t){let r=Buffer.alloc(150),n;try{n=k0.openSync(t,"r"),k0.readSync(n,r,0,150,0),k0.closeSync(n)}catch{}return t7(r.toString())}QR.exports=r7});var iO=j((Owe,nO)=>{"use strict";var n7=require("path"),tO=GR(),rO=WR(),i7=eO(),a7=process.platform==="win32",o7=/\.(?:com|exe)$/i,s7=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function c7(t){t.file=tO(t);let e=t.file&&i7(t.file);return e?(t.args.unshift(t.file),t.command=e,tO(t)):t.file}function u7(t){if(!a7)return t;let e=c7(t),r=!o7.test(e);if(t.options.forceShell||r){let n=s7.test(e);t.command=n7.normalize(t.command),t.command=rO.command(t.command),t.args=t.args.map(a=>rO.argument(a,n));let i=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${i}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function l7(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let n={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?n:u7(n)}nO.exports=l7});var sO=j((Cwe,oO)=>{"use strict";var T0=process.platform==="win32";function I0(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function d7(t,e){if(!T0)return;let r=t.emit;t.emit=function(n,i){if(n==="exit"){let a=aO(i,e);if(a)return r.call(t,"error",a)}return r.apply(t,arguments)}}function aO(t,e){return T0&&t===1&&!e.file?I0(e.original,"spawn"):null}function p7(t,e){return T0&&t===1&&!e.file?I0(e.original,"spawnSync"):null}oO.exports={hookChildProcess:d7,verifyENOENT:aO,verifyENOENTSync:p7,notFoundError:I0}});var lO=j((Nwe,gs)=>{"use strict";var cO=require("child_process"),P0=iO(),R0=sO();function uO(t,e,r){let n=P0(t,e,r),i=cO.spawn(n.command,n.args,n.options);return R0.hookChildProcess(i,n),i}function f7(t,e,r){let n=P0(t,e,r),i=cO.spawnSync(n.command,n.args,n.options);return i.error=i.error||R0.verifyENOENTSync(i.status,n),i}gs.exports=uO;gs.exports.spawn=uO;gs.exports.sync=f7;gs.exports._parse=P0;gs.exports._enoent=R0});var mO,hO,gO=Gt(()=>{"use strict";mO="bugfix,feature,refactor,discovery,decision,change",hO="how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off"});var _O={};On(_O,{SettingsDefaultsManager:()=>Ke});var ys,vO,yO,Ke,on=Gt(()=>{"use strict";ys=require("fs"),vO=require("path"),yO=require("os");gO();Ne();Ke=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_PROVIDER:"claude",CLAUDE_MEM_GEMINI_API_KEY:"",CLAUDE_MEM_GEMINI_MODEL:"gemini-2.5-flash-lite",CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED:"true",CLAUDE_MEM_OPENROUTER_API_KEY:"",CLAUDE_MEM_OPENROUTER_MODEL:"xiaomi/mimo-v2-flash:free",CLAUDE_MEM_OPENROUTER_SITE_URL:"",CLAUDE_MEM_OPENROUTER_APP_NAME:"claude-mem",CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES:"20",CLAUDE_MEM_OPENROUTER_MAX_TOKENS:"100000",CLAUDE_MEM_DATA_DIR:(0,vO.join)((0,yO.homedir)(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_MODE:"code",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:mO,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:hO,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return this.DEFAULTS[e]}static getInt(e){let r=this.get(e);return parseInt(r,10)}static getBool(e){return this.get(e)==="true"}static loadFromFile(e){try{if(!(0,ys.existsSync)(e))return this.getAllDefaults();let r=(0,ys.readFileSync)(e,"utf-8"),n=JSON.parse(r),i=n;if(n.env&&typeof n.env=="object"){i=n.env;try{(0,ys.writeFileSync)(e,JSON.stringify(i,null,2),"utf-8"),k.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:e})}catch(o){k.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:e},o)}}let a={...this.DEFAULTS};for(let o of Object.keys(this.DEFAULTS))i[o]!==void 0&&(a[o]=i[o]);return a}catch(r){return k.warn("SETTINGS","Failed to load settings, using defaults",{settingsPath:e},r),this.getAllDefaults()}}}});var _s,Wf,O0,C0,k,Ne=Gt(()=>{"use strict";on();_s=require("fs"),Wf=require("path"),O0=(a=>(a[a.DEBUG=0]="DEBUG",a[a.INFO=1]="INFO",a[a.WARN=2]="WARN",a[a.ERROR=3]="ERROR",a[a.SILENT=4]="SILENT",a))(O0||{}),C0=class{level=null;useColor;logFilePath=null;constructor(){this.useColor=process.stdout.isTTY??!1,this.initializeLogFile()}initializeLogFile(){try{let e=Ke.get("CLAUDE_MEM_DATA_DIR"),r=(0,Wf.join)(e,"logs");(0,_s.existsSync)(r)||(0,_s.mkdirSync)(r,{recursive:!0});let n=new Date().toISOString().split("T")[0];this.logFilePath=(0,Wf.join)(r,`claude-mem-${n}.log`)}catch(e){console.error("[LOGGER] Failed to initialize log file:",e),this.logFilePath=null}}getLevel(){if(this.level===null)try{let e=Ke.get("CLAUDE_MEM_DATA_DIR"),r=(0,Wf.join)(e,"settings.json"),i=Ke.loadFromFile(r).CLAUDE_MEM_LOG_LEVEL.toUpperCase();this.level=O0[i]??1}catch(e){console.error("[LOGGER] Failed to load settings, using INFO level:",e),this.level=1}return this.level}correlationId(e,r){return`obs-${e}-${r}`}sessionId(e){return`session-${e}`}formatData(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="object"){if(e instanceof Error)return this.getLevel()===0?`${e.message} +${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let r=Object.keys(e);return r.length===0?"{}":r.length<=3?JSON.stringify(e):`{${r.length} keys: ${r.slice(0,3).join(", ")}...}`}return String(e)}formatTool(e,r){if(!r)return e;let n=typeof r=="string"?JSON.parse(r):r;if(e==="Bash"&&n.command)return`${e}(${n.command})`;if(n.file_path)return`${e}(${n.file_path})`;if(n.notebook_path)return`${e}(${n.notebook_path})`;if(e==="Glob"&&n.pattern)return`${e}(${n.pattern})`;if(e==="Grep"&&n.pattern)return`${e}(${n.pattern})`;if(n.url)return`${e}(${n.url})`;if(n.query)return`${e}(${n.query})`;if(e==="Task"){if(n.subagent_type)return`${e}(${n.subagent_type})`;if(n.description)return`${e}(${n.description})`}return e==="Skill"&&n.skill?`${e}(${n.skill})`:e==="LSP"&&n.operation?`${e}(${n.operation})`:e}formatTimestamp(e){let r=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),i=String(e.getDate()).padStart(2,"0"),a=String(e.getHours()).padStart(2,"0"),o=String(e.getMinutes()).padStart(2,"0"),s=String(e.getSeconds()).padStart(2,"0"),c=String(e.getMilliseconds()).padStart(3,"0");return`${r}-${n}-${i} ${a}:${o}:${s}.${c}`}log(e,r,n,i,a){if(e0&&(d=` {${Object.entries(y).map(([v,g])=>`${v}=${g}`).join(", ")}}`)}let p=`[${o}] [${s}] [${c}] ${u}${n}${d}${l}`;if(this.logFilePath)try{(0,_s.appendFileSync)(this.logFilePath,p+` +`,"utf8")}catch(f){process.stderr.write(`[LOGGER] Failed to write to log file: ${f} +`)}else process.stderr.write(p+` +`)}debug(e,r,n,i){this.log(0,e,r,n,i)}info(e,r,n,i){this.log(1,e,r,n,i)}warn(e,r,n,i){this.log(2,e,r,n,i)}error(e,r,n,i){this.log(3,e,r,n,i)}dataIn(e,r,n,i){this.info(e,`\u2192 ${r}`,n,i)}dataOut(e,r,n,i){this.info(e,`\u2190 ${r}`,n,i)}success(e,r,n,i){this.info(e,`\u2713 ${r}`,n,i)}failure(e,r,n,i){this.error(e,`\u2717 ${r}`,n,i)}timing(e,r,n,i){this.info(e,`\u23F1 ${r}`,i,{duration:`${n}ms`})}happyPathError(e,r,n,i,a=""){let u=((new Error().stack||"").split(` +`)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),l=u?`${u[1].split("/").pop()}:${u[2]}`:"unknown",d={...n,location:l};return this.warn(e,`[HAPPY-PATH] ${r}`,d,i),a}},k=new C0});var ci=j((o$e,qO)=>{var x7=require("path").relative;qO.exports=k7;var S7=process.cwd();function zO(t,e){for(var r=t.split(/[ ,]+/),n=String(e).toLowerCase(),i=0;i0}function I7(t){if(process.noDeprecation)return!0;var e=process.env.NO_DEPRECATION||"";return zO(e,t)}function P7(t){if(process.traceDeprecation)return!0;var e=process.env.TRACE_DEPRECATION||"";return zO(e,t)}function em(t,e){var r=T7(process,"deprecation");if(!(!r&&this._ignored)){var n,i,a,o,s=0,c=!1,u=tm(),l=this._file;for(e?(o=e,a=xs(u[1]),a.name=o.name,l=a[0]):(s=2,o=xs(u[s]),a=o);s",r=t.getLineNumber(),n=t.getColumnNumber();t.isEval()&&(e=t.getEvalOrigin()+", "+e);var i=[e,r,n];return i.callSite=t,i.name=t.getFunctionName(),i}function DO(t){var e=t.callSite,r=t.name;r||(r="");var n=e.getThis(),i=n&&e.getTypeName();return i==="Object"&&(i=void 0),i==="Function"&&(i=n.name||i),i&&e.getMethodName()?i+"."+r:r}function R7(t,e,r){var n=new Date().toUTCString(),i=n+" "+this._namespace+" deprecated "+t;if(this._traced){for(var a=0;a{"use strict";mc.exports=zP;mc.exports.format=Qh;mc.exports.parse=ev;var qP=/\B(?=(\d{3})+(?!\d))/g,FP=/(?:\.0*|(\.[^0]+)0+)$/,Cn={b:1,kb:1024,mb:1<<20,gb:1<<30,tb:Math.pow(1024,4),pb:Math.pow(1024,5)},UP=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;function zP(t,e){return typeof t=="string"?ev(t):typeof t=="number"?Qh(t,e):null}function Qh(t,e){if(!Number.isFinite(t))return null;var r=Math.abs(t),a=e&&e.thousandsSeparator||"",n=e&&e.unitSeparator||"",s=e&&e.decimalPlaces!==void 0?e.decimalPlaces:2,i=!!(e&&e.fixedDecimals),o=e&&e.unit||"";(!o||!Cn[o.toLowerCase()])&&(r>=Cn.pb?o="PB":r>=Cn.tb?o="TB":r>=Cn.gb?o="GB":r>=Cn.mb?o="MB":r>=Cn.kb?o="KB":o="B");var c=t/Cn[o.toLowerCase()],u=c.toFixed(s);return i||(u=u.replace(FP,"$1")),a&&(u=u.split(".").map(function(l,d){return d===0?l.replace(qP,a):l}).join(".")),u+n+o}function ev(t){if(typeof t=="number"&&!isNaN(t))return t;if(typeof t!="string")return null;var e=UP.exec(t),r,a="b";return e?(r=parseFloat(e[1]),a=e[4].toLowerCase()):(r=parseInt(t,10),a="b"),isNaN(r)?null:Math.floor(Cn[a]*r)}});var Li=V(bd=>{"use strict";var tv=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,HP=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,rv=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,BP=/\\([\u000b\u0020-\u00ff])/g,VP=/([\\"])/g,nv=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;bd.format=GP;bd.parse=ZP;function GP(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.type;if(!r||!nv.test(r))throw new TypeError("invalid type");var a=r;if(e&&typeof e=="object")for(var n,s=Object.keys(e).sort(),i=0;i0&&!HP.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(VP,"\\$1")+'"'}function XP(t){this.parameters=Object.create(null),this.type=t}});var qi=V((iG,av)=>{"use strict";av.exports=Object.setPrototypeOf||({__proto__:[]}instanceof Array?JP:YP);function JP(t,e){return t.__proto__=e,t}function YP(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(t,r)||(t[r]=e[r]);return t}});var sv=V((oG,QP)=>{QP.exports={"100":"Continue","101":"Switching Protocols","102":"Processing","103":"Early Hints","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I'm a Teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Too Early","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","451":"Unavailable For Legal Reasons","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"}});var Fi=V((cG,ov)=>{"use strict";var Sd=sv();ov.exports=qr;qr.message=Sd;qr.code=e$(Sd);qr.codes=t$(Sd);qr.redirect={300:!0,301:!0,302:!0,303:!0,305:!0,307:!0,308:!0};qr.empty={204:!0,205:!0,304:!0};qr.retry={502:!0,503:!0,504:!0};function e$(t){var e={};return Object.keys(t).forEach(function(a){var n=t[a],s=Number(a);e[n.toLowerCase()]=s}),e}function t$(t){return Object.keys(t).map(function(r){return Number(r)})}function r$(t){var e=t.toLowerCase();if(!Object.prototype.hasOwnProperty.call(qr.code,e))throw new Error('invalid status message: "'+t+'"');return qr.code[e]}function iv(t){if(!Object.prototype.hasOwnProperty.call(qr.message,t))throw new Error("invalid status code: "+t);return qr.message[t]}function qr(t){if(typeof t=="number")return iv(t);if(typeof t!="string")throw new TypeError("code must be a number or string");var e=parseInt(t,10);return isNaN(e)?r$(t):iv(e)}});var cv=V((uG,xd)=>{typeof Object.create=="function"?xd.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:xd.exports=function(e,r){if(r){e.super_=r;var a=function(){};a.prototype=r.prototype,e.prototype=new a,e.prototype.constructor=e}}});var uv=V((lG,Ed)=>{try{if(wd=require("util"),typeof wd.inherits!="function")throw"";Ed.exports=wd.inherits}catch{Ed.exports=cv()}var wd});var dv=V((dG,lv)=>{"use strict";lv.exports=n$;function n$(t){return t.split(" ").map(function(e){return e.slice(0,1).toUpperCase()+e.slice(1)}).join("").replace(/[^ _0-9a-z]/gi,"")}});var ca=V((pG,oa)=>{"use strict";var a$=Yr()("http-errors"),pv=qi(),ps=Fi(),Td=uv(),s$=dv();oa.exports=hc;oa.exports.HttpError=i$();oa.exports.isHttpError=c$(oa.exports.HttpError);l$(oa.exports,ps.codes,oa.exports.HttpError);function fv(t){return+(String(t).charAt(0)+"00")}function hc(){for(var t,e,r=500,a={},n=0;n=600)&&a$("non-error status code; use only 4xx or 5xx status codes"),(typeof r!="number"||!ps.message[r]&&(r<400||r>=600))&&(r=500);var o=hc[r]||hc[fv(r)];t||(t=o?new o(e):new Error(e||ps.message[r]),Error.captureStackTrace(t,hc)),(!o||!(t instanceof o)||t.status!==r)&&(t.expose=r<500,t.status=t.statusCode=r);for(var c in a)c!=="status"&&c!=="statusCode"&&(t[c]=a[c]);return t}function i$(){function t(){throw new TypeError("cannot construct abstract class")}return Td(t,Error),t}function o$(t,e,r){var a=hv(e);function n(s){var i=s??ps.message[r],o=new Error(i);return Error.captureStackTrace(o,n),pv(o,n.prototype),Object.defineProperty(o,"message",{enumerable:!0,configurable:!0,value:i,writable:!0}),Object.defineProperty(o,"name",{enumerable:!1,configurable:!0,value:a,writable:!0}),o}return Td(n,t),mv(n,a),n.prototype.status=r,n.prototype.statusCode=r,n.prototype.expose=!0,n}function c$(t){return function(r){return!r||typeof r!="object"?!1:r instanceof t?!0:r instanceof Error&&typeof r.expose=="boolean"&&typeof r.statusCode=="number"&&r.status===r.statusCode}}function u$(t,e,r){var a=hv(e);function n(s){var i=s??ps.message[r],o=new Error(i);return Error.captureStackTrace(o,n),pv(o,n.prototype),Object.defineProperty(o,"message",{enumerable:!0,configurable:!0,value:i,writable:!0}),Object.defineProperty(o,"name",{enumerable:!1,configurable:!0,value:a,writable:!0}),o}return Td(n,t),mv(n,a),n.prototype.status=r,n.prototype.statusCode=r,n.prototype.expose=!1,n}function mv(t,e){var r=Object.getOwnPropertyDescriptor(t,"name");r&&r.configurable&&(r.value=e,Object.defineProperty(t,"name",r))}function l$(t,e,r){e.forEach(function(n){var s,i=s$(ps.message[n]);switch(fv(n)){case 400:s=o$(r,i,n);break;case 500:s=u$(r,i,n);break}s&&(t[n]=s,t[i]=s)})}function hv(t){return t.substr(-5)!=="Error"?t+"Error":t}});var gv=V((fG,vv)=>{var Ui=1e3,zi=Ui*60,Hi=zi*60,Bi=Hi*24,d$=Bi*365.25;vv.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return p$(t);if(r==="number"&&isNaN(t)===!1)return e.long?m$(t):f$(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function p$(t){if(t=String(t),!(t.length>100)){var e=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),a=(e[2]||"ms").toLowerCase();switch(a){case"years":case"year":case"yrs":case"yr":case"y":return r*d$;case"days":case"day":case"d":return r*Bi;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Hi;case"minutes":case"minute":case"mins":case"min":case"m":return r*zi;case"seconds":case"second":case"secs":case"sec":case"s":return r*Ui;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function f$(t){return t>=Bi?Math.round(t/Bi)+"d":t>=Hi?Math.round(t/Hi)+"h":t>=zi?Math.round(t/zi)+"m":t>=Ui?Math.round(t/Ui)+"s":t+"ms"}function m$(t){return vc(t,Bi,"day")||vc(t,Hi,"hour")||vc(t,zi,"minute")||vc(t,Ui,"second")||t+" ms"}function vc(t,e,r){if(!(t{at=yv.exports=Rd.debug=Rd.default=Rd;at.coerce=_$;at.disable=g$;at.enable=v$;at.enabled=y$;at.humanize=gv();at.names=[];at.skips=[];at.formatters={};var kd;function h$(t){var e=0,r;for(r in t)e=(e<<5)-e+t.charCodeAt(r),e|=0;return at.colors[Math.abs(e)%at.colors.length]}function Rd(t){function e(){if(e.enabled){var r=e,a=+new Date,n=a-(kd||a);r.diff=n,r.prev=kd,r.curr=a,kd=a;for(var s=new Array(arguments.length),i=0;i{Wt=bv.exports=Pd();Wt.log=x$;Wt.formatArgs=S$;Wt.save=w$;Wt.load=_v;Wt.useColors=b$;Wt.storage=typeof chrome<"u"&&typeof chrome.storage<"u"?chrome.storage.local:E$();Wt.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"];function b$(){return typeof window<"u"&&window.process&&window.process.type==="renderer"?!0:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}Wt.formatters.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}};function S$(t){var e=this.useColors;if(t[0]=(e?"%c":"")+this.namespace+(e?" %c":" ")+t[0]+(e?"%c ":" ")+"+"+Wt.humanize(this.diff),!!e){var r="color: "+this.color;t.splice(1,0,r,"color: inherit");var a=0,n=0;t[0].replace(/%[a-zA-Z%]/g,function(s){s!=="%%"&&(a++,s==="%c"&&(n=a))}),t.splice(n,0,r)}}function x$(){return typeof console=="object"&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function w$(t){try{t==null?Wt.storage.removeItem("debug"):Wt.storage.debug=t}catch{}}function _v(){var t;try{t=Wt.storage.debug}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}Wt.enable(_v());function E$(){try{return window.localStorage}catch{}}});var Tv=V((Lt,Ev)=>{var xv=require("tty"),Vi=require("util");Lt=Ev.exports=Pd();Lt.init=C$;Lt.log=P$;Lt.formatArgs=R$;Lt.save=$$;Lt.load=wv;Lt.useColors=k$;Lt.colors=[6,2,3,4,5,1];Lt.inspectOpts=Object.keys(process.env).filter(function(t){return/^debug_/i.test(t)}).reduce(function(t,e){var r=e.substring(6).toLowerCase().replace(/_([a-z])/g,function(n,s){return s.toUpperCase()}),a=process.env[e];return/^(yes|on|true|enabled)$/i.test(a)?a=!0:/^(no|off|false|disabled)$/i.test(a)?a=!1:a==="null"?a=null:a=Number(a),t[r]=a,t},{});var fs=parseInt(process.env.DEBUG_FD,10)||2;fs!==1&&fs!==2&&Vi.deprecate(function(){},"except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")();var T$=fs===1?process.stdout:fs===2?process.stderr:O$(fs);function k$(){return"colors"in Lt.inspectOpts?!!Lt.inspectOpts.colors:xv.isatty(fs)}Lt.formatters.o=function(t){return this.inspectOpts.colors=this.useColors,Vi.inspect(t,this.inspectOpts).split(` -`).map(function(e){return e.trim()}).join(" ")};Lt.formatters.O=function(t){return this.inspectOpts.colors=this.useColors,Vi.inspect(t,this.inspectOpts)};function R$(t){var e=this.namespace,r=this.useColors;if(r){var a=this.color,n=" \x1B[3"+a+";1m"+e+" \x1B[0m";t[0]=n+t[0].split(` +}`)(t,em,this,e,i);return a}function j7(t,e,r){if(!t||typeof t!="object"&&typeof t!="function")throw new TypeError("argument obj must be object");var n=Object.getOwnPropertyDescriptor(t,e);if(!n)throw new TypeError("must call property on owner object");if(!n.configurable)throw new TypeError("property must be configurable");var i=this,a=tm(),o=xs(a[1]);o.name=e,"value"in n&&(n=w7(t,e,r));var s=n.get,c=n.set;typeof s=="function"&&(n.get=function(){return em.call(i,r,o),s.apply(this,arguments)}),typeof c=="function"&&(n.set=function(){return em.call(i,r,o),c.apply(this,arguments)}),Object.defineProperty(t,e,n)}function UO(t,e,r){var n=new Error,i;return Object.defineProperty(n,"constructor",{value:UO}),Object.defineProperty(n,"message",{configurable:!0,enumerable:!1,value:e,writable:!0}),Object.defineProperty(n,"name",{enumerable:!1,configurable:!0,value:"DeprecationError",writable:!0}),Object.defineProperty(n,"namespace",{configurable:!0,enumerable:!1,value:t,writable:!0}),Object.defineProperty(n,"stack",{configurable:!0,enumerable:!1,get:function(){return i!==void 0?i:i=E7.call(this,r)},set:function(o){i=o}}),n}});var Ss=j((s$e,rm)=>{"use strict";rm.exports=z7;rm.exports.format=LO;rm.exports.parse=FO;var A7=/\B(?=(\d{3})+(?!\d))/g,M7=/(?:\.0*|(\.[^0]+)0+)$/,ca={b:1,kb:1024,mb:1<<20,gb:1<<30,tb:Math.pow(1024,4),pb:Math.pow(1024,5)},D7=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;function z7(t,e){return typeof t=="string"?FO(t):typeof t=="number"?LO(t,e):null}function LO(t,e){if(!Number.isFinite(t))return null;var r=Math.abs(t),n=e&&e.thousandsSeparator||"",i=e&&e.unitSeparator||"",a=e&&e.decimalPlaces!==void 0?e.decimalPlaces:2,o=!!(e&&e.fixedDecimals),s=e&&e.unit||"";(!s||!ca[s.toLowerCase()])&&(r>=ca.pb?s="PB":r>=ca.tb?s="TB":r>=ca.gb?s="GB":r>=ca.mb?s="MB":r>=ca.kb?s="KB":s="B");var c=t/ca[s.toLowerCase()],u=c.toFixed(a);return o||(u=u.replace(M7,"$1")),n&&(u=u.split(".").map(function(l,d){return d===0?l.replace(A7,n):l}).join(".")),u+i+s}function FO(t){if(typeof t=="number"&&!isNaN(t))return t;if(typeof t!="string")return null;var e=D7.exec(t),r,n="b";return e?(r=parseFloat(e[1]),n=e[4].toLowerCase()):(r=parseInt(t,10),n="b"),isNaN(r)?null:Math.floor(ca[n]*r)}});var ml=j(U0=>{"use strict";var ZO=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,U7=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,HO=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,q7=/\\([\u000b\u0020-\u00ff])/g,L7=/([\\"])/g,BO=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;U0.format=F7;U0.parse=Z7;function F7(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.type;if(!r||!BO.test(r))throw new TypeError("invalid type");var n=r;if(e&&typeof e=="object")for(var i,a=Object.keys(e).sort(),o=0;o0&&!U7.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(L7,"\\$1")+'"'}function V7(t){this.parameters=Object.create(null),this.type=t}});var hl=j((u$e,VO)=>{"use strict";VO.exports=Object.setPrototypeOf||({__proto__:[]}instanceof Array?G7:W7);function G7(t,e){return t.__proto__=e,t}function W7(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(t,r)||(t[r]=e[r]);return t}});var GO=j((l$e,K7)=>{K7.exports={"100":"Continue","101":"Switching Protocols","102":"Processing","103":"Early Hints","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I'm a Teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Too Early","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","451":"Unavailable For Legal Reasons","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"}});var gl=j((d$e,KO)=>{"use strict";var q0=GO();KO.exports=Zn;Zn.message=q0;Zn.code=J7(q0);Zn.codes=X7(q0);Zn.redirect={300:!0,301:!0,302:!0,303:!0,305:!0,307:!0,308:!0};Zn.empty={204:!0,205:!0,304:!0};Zn.retry={502:!0,503:!0,504:!0};function J7(t){var e={};return Object.keys(t).forEach(function(n){var i=t[n],a=Number(n);e[i.toLowerCase()]=a}),e}function X7(t){return Object.keys(t).map(function(r){return Number(r)})}function Y7(t){var e=t.toLowerCase();if(!Object.prototype.hasOwnProperty.call(Zn.code,e))throw new Error('invalid status message: "'+t+'"');return Zn.code[e]}function WO(t){if(!Object.prototype.hasOwnProperty.call(Zn.message,t))throw new Error("invalid status code: "+t);return Zn.message[t]}function Zn(t){if(typeof t=="number")return WO(t);if(typeof t!="string")throw new TypeError("code must be a number or string");var e=parseInt(t,10);return isNaN(e)?Y7(t):WO(e)}});var JO=j((p$e,L0)=>{typeof Object.create=="function"?L0.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:L0.exports=function(e,r){if(r){e.super_=r;var n=function(){};n.prototype=r.prototype,e.prototype=new n,e.prototype.constructor=e}}});var XO=j((f$e,Z0)=>{try{if(F0=require("util"),typeof F0.inherits!="function")throw"";Z0.exports=F0.inherits}catch{Z0.exports=JO()}var F0});var QO=j((m$e,YO)=>{"use strict";YO.exports=Q7;function Q7(t){return t.split(" ").map(function(e){return e.slice(0,1).toUpperCase()+e.slice(1)}).join("").replace(/[^ _0-9a-z]/gi,"")}});var Ya=j((h$e,Xa)=>{"use strict";var eG=ci()("http-errors"),eC=hl(),ws=gl(),H0=XO(),tG=QO();Xa.exports=nm;Xa.exports.HttpError=rG();Xa.exports.isHttpError=iG(Xa.exports.HttpError);oG(Xa.exports,ws.codes,Xa.exports.HttpError);function tC(t){return+(String(t).charAt(0)+"00")}function nm(){for(var t,e,r=500,n={},i=0;i=600)&&eG("non-error status code; use only 4xx or 5xx status codes"),(typeof r!="number"||!ws.message[r]&&(r<400||r>=600))&&(r=500);var s=nm[r]||nm[tC(r)];t||(t=s?new s(e):new Error(e||ws.message[r]),Error.captureStackTrace(t,nm)),(!s||!(t instanceof s)||t.status!==r)&&(t.expose=r<500,t.status=t.statusCode=r);for(var c in n)c!=="status"&&c!=="statusCode"&&(t[c]=n[c]);return t}function rG(){function t(){throw new TypeError("cannot construct abstract class")}return H0(t,Error),t}function nG(t,e,r){var n=nC(e);function i(a){var o=a??ws.message[r],s=new Error(o);return Error.captureStackTrace(s,i),eC(s,i.prototype),Object.defineProperty(s,"message",{enumerable:!0,configurable:!0,value:o,writable:!0}),Object.defineProperty(s,"name",{enumerable:!1,configurable:!0,value:n,writable:!0}),s}return H0(i,t),rC(i,n),i.prototype.status=r,i.prototype.statusCode=r,i.prototype.expose=!0,i}function iG(t){return function(r){return!r||typeof r!="object"?!1:r instanceof t?!0:r instanceof Error&&typeof r.expose=="boolean"&&typeof r.statusCode=="number"&&r.status===r.statusCode}}function aG(t,e,r){var n=nC(e);function i(a){var o=a??ws.message[r],s=new Error(o);return Error.captureStackTrace(s,i),eC(s,i.prototype),Object.defineProperty(s,"message",{enumerable:!0,configurable:!0,value:o,writable:!0}),Object.defineProperty(s,"name",{enumerable:!1,configurable:!0,value:n,writable:!0}),s}return H0(i,t),rC(i,n),i.prototype.status=r,i.prototype.statusCode=r,i.prototype.expose=!1,i}function rC(t,e){var r=Object.getOwnPropertyDescriptor(t,"name");r&&r.configurable&&(r.value=e,Object.defineProperty(t,"name",r))}function oG(t,e,r){e.forEach(function(i){var a,o=tG(ws.message[i]);switch(tC(i)){case 400:a=nG(r,o,i);break;case 500:a=aG(r,o,i);break}a&&(t[i]=a,t[o]=a)})}function nC(t){return t.slice(-5)==="Error"?t:t+"Error"}});var aC=j((g$e,iC)=>{var vl=1e3,yl=vl*60,_l=yl*60,bl=_l*24,sG=bl*365.25;iC.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return cG(t);if(r==="number"&&isNaN(t)===!1)return e.long?lG(t):uG(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function cG(t){if(t=String(t),!(t.length>100)){var e=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*sG;case"days":case"day":case"d":return r*bl;case"hours":case"hour":case"hrs":case"hr":case"h":return r*_l;case"minutes":case"minute":case"mins":case"min":case"m":return r*yl;case"seconds":case"second":case"secs":case"sec":case"s":return r*vl;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function uG(t){return t>=bl?Math.round(t/bl)+"d":t>=_l?Math.round(t/_l)+"h":t>=yl?Math.round(t/yl)+"m":t>=vl?Math.round(t/vl)+"s":t+"ms"}function lG(t){return im(t,bl,"day")||im(t,_l,"hour")||im(t,yl,"minute")||im(t,vl,"second")||t+" ms"}function im(t,e,r){if(!(t{mt=oC.exports=V0.debug=V0.default=V0;mt.coerce=hG;mt.disable=fG;mt.enable=pG;mt.enabled=mG;mt.humanize=aC();mt.names=[];mt.skips=[];mt.formatters={};var B0;function dG(t){var e=0,r;for(r in t)e=(e<<5)-e+t.charCodeAt(r),e|=0;return mt.colors[Math.abs(e)%mt.colors.length]}function V0(t){function e(){if(e.enabled){var r=e,n=+new Date,i=n-(B0||n);r.diff=i,r.prev=B0,r.curr=n,B0=n;for(var a=new Array(arguments.length),o=0;o{Or=cC.exports=G0();Or.log=yG;Or.formatArgs=vG;Or.save=_G;Or.load=sC;Or.useColors=gG;Or.storage=typeof chrome<"u"&&typeof chrome.storage<"u"?chrome.storage.local:bG();Or.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"];function gG(){return typeof window<"u"&&window.process&&window.process.type==="renderer"?!0:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}Or.formatters.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}};function vG(t){var e=this.useColors;if(t[0]=(e?"%c":"")+this.namespace+(e?" %c":" ")+t[0]+(e?"%c ":" ")+"+"+Or.humanize(this.diff),!!e){var r="color: "+this.color;t.splice(1,0,r,"color: inherit");var n=0,i=0;t[0].replace(/%[a-zA-Z%]/g,function(a){a!=="%%"&&(n++,a==="%c"&&(i=n))}),t.splice(i,0,r)}}function yG(){return typeof console=="object"&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function _G(t){try{t==null?Or.storage.removeItem("debug"):Or.storage.debug=t}catch{}}function sC(){var t;try{t=Or.storage.debug}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}Or.enable(sC());function bG(){try{return window.localStorage}catch{}}});var fC=j((ar,pC)=>{var lC=require("tty"),xl=require("util");ar=pC.exports=G0();ar.init=TG;ar.log=$G;ar.formatArgs=wG;ar.save=EG;ar.load=dC;ar.useColors=SG;ar.colors=[6,2,3,4,5,1];ar.inspectOpts=Object.keys(process.env).filter(function(t){return/^debug_/i.test(t)}).reduce(function(t,e){var r=e.substring(6).toLowerCase().replace(/_([a-z])/g,function(i,a){return a.toUpperCase()}),n=process.env[e];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),t[r]=n,t},{});var $s=parseInt(process.env.DEBUG_FD,10)||2;$s!==1&&$s!==2&&xl.deprecate(function(){},"except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")();var xG=$s===1?process.stdout:$s===2?process.stderr:kG($s);function SG(){return"colors"in ar.inspectOpts?!!ar.inspectOpts.colors:lC.isatty($s)}ar.formatters.o=function(t){return this.inspectOpts.colors=this.useColors,xl.inspect(t,this.inspectOpts).split(` +`).map(function(e){return e.trim()}).join(" ")};ar.formatters.O=function(t){return this.inspectOpts.colors=this.useColors,xl.inspect(t,this.inspectOpts)};function wG(t){var e=this.namespace,r=this.useColors;if(r){var n=this.color,i=" \x1B[3"+n+";1m"+e+" \x1B[0m";t[0]=i+t[0].split(` `).join(` -`+n),t.push("\x1B[3"+a+"m+"+Lt.humanize(this.diff)+"\x1B[0m")}else t[0]=new Date().toUTCString()+" "+e+" "+t[0]}function P$(){return T$.write(Vi.format.apply(Vi,arguments)+` -`)}function $$(t){t==null?delete process.env.DEBUG:process.env.DEBUG=t}function wv(){return process.env.DEBUG}function O$(t){var e,r=process.binding("tty_wrap");switch(r.guessHandleType(t)){case"TTY":e=new xv.WriteStream(t),e._type="tty",e._handle&&e._handle.unref&&e._handle.unref();break;case"FILE":var a=require("fs");e=new a.SyncWriteStream(t,{autoClose:!1}),e._type="fs";break;case"PIPE":case"TCP":var n=require("net");e=new n.Socket({fd:t,readable:!1,writable:!0}),e.readable=!1,e.read=null,e._type="pipe",e._handle&&e._handle.unref&&e._handle.unref();break;default:throw new Error("Implement me. Unknown stream file type!")}return e.fd=t,e._isStdio=!0,e}function C$(t){t.inspectOpts={};for(var e=Object.keys(Lt.inspectOpts),r=0;r{typeof process<"u"&&process.type==="renderer"?$d.exports=Sv():$d.exports=Tv()});var Od=V((hG,Rv)=>{"use strict";var I$=require("events").EventEmitter,A$=require("fs").ReadStream,kv=require("stream"),ua=require("zlib");Rv.exports=N$;function N$(t,e){return F$(t)?M$(t):U$(t)?D$(t):L$(t)&&t.destroy(),q$(t)&&e&&(t.removeAllListeners("error"),t.addListener("error",z$)),t}function M$(t){t.destroy(),typeof t.close=="function"&&t.on("open",B$)}function j$(t){if(t._hadError===!0){var e=t._binding===null?"_binding":"_handle";t[e]={close:function(){this[e]=null}}}t.close()}function D$(t){typeof t.destroy=="function"?t._binding?(t.destroy(),t._processing?(t._needDrain=!0,t.once("drain",H$)):t._binding.clear()):t._destroy&&t._destroy!==kv.Transform.prototype._destroy?t.destroy():t._destroy&&typeof t.close=="function"?(t.destroyed=!0,t.close()):t.destroy():typeof t.close=="function"&&j$(t)}function L$(t){return t instanceof kv&&typeof t.destroy=="function"}function q$(t){return t instanceof I$}function F$(t){return t instanceof A$}function U$(t){return t instanceof ua.Gzip||t instanceof ua.Gunzip||t instanceof ua.Deflate||t instanceof ua.DeflateRaw||t instanceof ua.Inflate||t instanceof ua.InflateRaw||t instanceof ua.Unzip}function z$(){}function H$(){this._binding.clear()}function B$(){typeof this.fd=="number"&&this.close()}});var la=V((vG,Pv)=>{"use strict";var gc=require("buffer"),ms=gc.Buffer,xr={},wr;for(wr in gc)gc.hasOwnProperty(wr)&&(wr==="SlowBuffer"||wr==="Buffer"||(xr[wr]=gc[wr]));var hs=xr.Buffer={};for(wr in ms)ms.hasOwnProperty(wr)&&(wr==="allocUnsafe"||wr==="allocUnsafeSlow"||(hs[wr]=ms[wr]));xr.Buffer.prototype=ms.prototype;(!hs.from||hs.from===Uint8Array.from)&&(hs.from=function(t,e,r){if(typeof t=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof t);if(t&&typeof t.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);return ms(t,e,r)});hs.alloc||(hs.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof t);if(t<0||t>=2*(1<<30))throw new RangeError('The value "'+t+'" is invalid for option "size"');var a=ms(t);return!e||e.length===0?a.fill(0):typeof r=="string"?a.fill(e,r):a.fill(e),a});if(!xr.kStringMaxLength)try{xr.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch{}xr.constants||(xr.constants={MAX_LENGTH:xr.kMaxLength},xr.kStringMaxLength&&(xr.constants.MAX_STRING_LENGTH=xr.kStringMaxLength));Pv.exports=xr});var Ov=V(Ad=>{"use strict";var $v="\uFEFF";Ad.PrependBOM=Cd;function Cd(t,e){this.encoder=t,this.addBOM=!0}Cd.prototype.write=function(t){return this.addBOM&&(t=$v+t,this.addBOM=!1),this.encoder.write(t)};Cd.prototype.end=function(){return this.encoder.end()};Ad.StripBOM=Id;function Id(t,e){this.decoder=t,this.pass=!1,this.options=e||{}}Id.prototype.write=function(t){var e=this.decoder.write(t);return this.pass||!e||(e[0]===$v&&(e=e.slice(1),typeof this.options.stripBOM=="function"&&this.options.stripBOM()),this.pass=!0),e};Id.prototype.end=function(){return this.decoder.end()}});var Av=V((yG,Iv)=>{"use strict";var Gi=la().Buffer;Iv.exports={utf8:{type:"_internal",bomAware:!0},cesu8:{type:"_internal",bomAware:!0},unicode11utf8:"utf8",ucs2:{type:"_internal",bomAware:!0},utf16le:"ucs2",binary:{type:"_internal"},base64:{type:"_internal"},hex:{type:"_internal"},_internal:Nd};function Nd(t,e){this.enc=t.encodingName,this.bomAware=t.bomAware,this.enc==="base64"?this.encoder=jd:this.enc==="cesu8"&&(this.enc="utf8",this.encoder=Dd,Gi.from("eda0bdedb2a9","hex").toString()!=="\u{1F4A9}"&&(this.decoder=Ld,this.defaultCharUnicode=e.defaultCharUnicode))}Nd.prototype.encoder=Md;Nd.prototype.decoder=Cv;var yc=require("string_decoder").StringDecoder;yc.prototype.end||(yc.prototype.end=function(){});function Cv(t,e){yc.call(this,e.enc)}Cv.prototype=yc.prototype;function Md(t,e){this.enc=e.enc}Md.prototype.write=function(t){return Gi.from(t,this.enc)};Md.prototype.end=function(){};function jd(t,e){this.prevStr=""}jd.prototype.write=function(t){t=this.prevStr+t;var e=t.length-t.length%4;return this.prevStr=t.slice(e),t=t.slice(0,e),Gi.from(t,"base64")};jd.prototype.end=function(){return Gi.from(this.prevStr,"base64")};function Dd(t,e){}Dd.prototype.write=function(t){for(var e=Gi.alloc(t.length*3),r=0,a=0;a>>6),e[r++]=128+(n&63)):(e[r++]=224+(n>>>12),e[r++]=128+(n>>>6&63),e[r++]=128+(n&63))}return e.slice(0,r)};Dd.prototype.end=function(){};function Ld(t,e){this.acc=0,this.contBytes=0,this.accBytes=0,this.defaultCharUnicode=e.defaultCharUnicode}Ld.prototype.write=function(t){for(var e=this.acc,r=this.contBytes,a=this.accBytes,n="",s=0;s0&&(n+=this.defaultCharUnicode,r=0),i<128?n+=String.fromCharCode(i):i<224?(e=i&31,r=1,a=1):i<240?(e=i&15,r=2,a=1):n+=this.defaultCharUnicode):r>0?(e=e<<6|i&63,r--,a++,r===0&&(a===2&&e<128&&e>0?n+=this.defaultCharUnicode:a===3&&e<2048?n+=this.defaultCharUnicode:n+=String.fromCharCode(e))):n+=this.defaultCharUnicode}return this.acc=e,this.contBytes=r,this.accBytes=a,n};Ld.prototype.end=function(){var t=0;return this.contBytes>0&&(t+=this.defaultCharUnicode),t}});var Mv=V(Bd=>{"use strict";var _c=la().Buffer;Bd.utf16be=bc;function bc(){}bc.prototype.encoder=qd;bc.prototype.decoder=Fd;bc.prototype.bomAware=!0;function qd(){}qd.prototype.write=function(t){for(var e=_c.from(t,"ucs2"),r=0;r=2)if(t[0]==254&&t[1]==255)r="utf-16be";else if(t[0]==255&&t[1]==254)r="utf-16le";else{for(var a=0,n=0,s=Math.min(t.length-t.length%2,64),i=0;ia?r="utf-16be":n{"use strict";var Qr=la().Buffer;wc.utf7=Sc;wc.unicode11utf7="utf7";function Sc(t,e){this.iconv=e}Sc.prototype.encoder=Gd;Sc.prototype.decoder=Zd;Sc.prototype.bomAware=!0;var V$=/[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;function Gd(t,e){this.iconv=e.iconv}Gd.prototype.write=function(t){return Qr.from(t.replace(V$,function(e){return"+"+(e==="+"?"":this.iconv.encode(e,"utf16-be").toString("base64").replace(/=+$/,""))+"-"}.bind(this)))};Gd.prototype.end=function(){};function Zd(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=""}var G$=/[A-Za-z0-9\/+]/,Wd=[];for(Zi=0;Zi<256;Zi++)Wd[Zi]=G$.test(String.fromCharCode(Zi));var Zi,Z$=43,da=45,Vd=38;Zd.prototype.write=function(t){for(var e="",r=0,a=this.inBase64,n=this.base64Accum,s=0;s0&&(t=this.iconv.decode(Qr.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",t};wc.utf7imap=xc;function xc(t,e){this.iconv=e}xc.prototype.encoder=Kd;xc.prototype.decoder=Xd;xc.prototype.bomAware=!0;function Kd(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=Qr.alloc(6),this.base64AccumIdx=0}Kd.prototype.write=function(t){for(var e=this.inBase64,r=this.base64Accum,a=this.base64AccumIdx,n=Qr.alloc(t.length*5+10),s=0,i=0;i0&&(s+=n.write(r.slice(0,a).toString("base64").replace(/\//g,",").replace(/=+$/,""),s),a=0),n[s++]=da,e=!1),e||(n[s++]=o,o===Vd&&(n[s++]=da))):(e||(n[s++]=Vd,e=!0),e&&(r[a++]=o>>8,r[a++]=o&255,a==r.length&&(s+=n.write(r.toString("base64").replace(/\//g,","),s),a=0)))}return this.inBase64=e,this.base64AccumIdx=a,n.slice(0,s)};Kd.prototype.end=function(){var t=Qr.alloc(10),e=0;return this.inBase64&&(this.base64AccumIdx>0&&(e+=t.write(this.base64Accum.slice(0,this.base64AccumIdx).toString("base64").replace(/\//g,",").replace(/=+$/,""),e),this.base64AccumIdx=0),t[e++]=da,this.inBase64=!1),t.slice(0,e)};function Xd(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=""}var jv=Wd.slice();jv[44]=!0;Xd.prototype.write=function(t){for(var e="",r=0,a=this.inBase64,n=this.base64Accum,s=0;s0&&(t=this.iconv.decode(Qr.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",t}});var qv=V(Lv=>{"use strict";var Ec=la().Buffer;Lv._sbcs=Jd;function Jd(t,e){if(!t)throw new Error("SBCS codec is called without the data.");if(!t.chars||t.chars.length!==128&&t.chars.length!==256)throw new Error("Encoding '"+t.type+"' has incorrect 'chars' (must be of len 128 or 256)");if(t.chars.length===128){for(var r="",a=0;a<128;a++)r+=String.fromCharCode(a);t.chars=r+t.chars}this.decodeBuf=Ec.from(t.chars,"ucs2");for(var n=Ec.alloc(65536,e.defaultCharSingleByte.charCodeAt(0)),a=0;a{"use strict";Fv.exports={10029:"maccenteuro",maccenteuro:{type:"_sbcs",chars:"\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7"},808:"cp808",ibm808:"cp808",cp808:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\u20AC\u25A0\xA0"},mik:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2514\u2534\u252C\u251C\u2500\u253C\u2563\u2551\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2510\u2591\u2592\u2593\u2502\u2524\u2116\xA7\u2557\u255D\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ascii8bit:"ascii",usascii:"ascii",ansix34:"ascii",ansix341968:"ascii",ansix341986:"ascii",csascii:"ascii",cp367:"ascii",ibm367:"ascii",isoir6:"ascii",iso646us:"ascii",iso646irv:"ascii",us:"ascii",latin1:"iso88591",latin2:"iso88592",latin3:"iso88593",latin4:"iso88594",latin5:"iso88599",latin6:"iso885910",latin7:"iso885913",latin8:"iso885914",latin9:"iso885915",latin10:"iso885916",csisolatin1:"iso88591",csisolatin2:"iso88592",csisolatin3:"iso88593",csisolatin4:"iso88594",csisolatincyrillic:"iso88595",csisolatinarabic:"iso88596",csisolatingreek:"iso88597",csisolatinhebrew:"iso88598",csisolatin5:"iso88599",csisolatin6:"iso885910",l1:"iso88591",l2:"iso88592",l3:"iso88593",l4:"iso88594",l5:"iso88599",l6:"iso885910",l7:"iso885913",l8:"iso885914",l9:"iso885915",l10:"iso885916",isoir14:"iso646jp",isoir57:"iso646cn",isoir100:"iso88591",isoir101:"iso88592",isoir109:"iso88593",isoir110:"iso88594",isoir144:"iso88595",isoir127:"iso88596",isoir126:"iso88597",isoir138:"iso88598",isoir148:"iso88599",isoir157:"iso885910",isoir166:"tis620",isoir179:"iso885913",isoir199:"iso885914",isoir203:"iso885915",isoir226:"iso885916",cp819:"iso88591",ibm819:"iso88591",cyrillic:"iso88595",arabic:"iso88596",arabic8:"iso88596",ecma114:"iso88596",asmo708:"iso88596",greek:"iso88597",greek8:"iso88597",ecma118:"iso88597",elot928:"iso88597",hebrew:"iso88598",hebrew8:"iso88598",turkish:"iso88599",turkish8:"iso88599",thai:"iso885911",thai8:"iso885911",celtic:"iso885914",celtic8:"iso885914",isoceltic:"iso885914",tis6200:"tis620",tis62025291:"tis620",tis62025330:"tis620",1e4:"macroman",10006:"macgreek",10007:"maccyrillic",10079:"maciceland",10081:"macturkish",cspc8codepage437:"cp437",cspc775baltic:"cp775",cspc850multilingual:"cp850",cspcp852:"cp852",cspc862latinhebrew:"cp862",cpgr:"cp869",msee:"cp1250",mscyrl:"cp1251",msansi:"cp1252",msgreek:"cp1253",msturk:"cp1254",mshebr:"cp1255",msarab:"cp1256",winbaltrim:"cp1257",cp20866:"koi8r",20866:"koi8r",ibm878:"koi8r",cskoi8r:"koi8r",cp21866:"koi8u",21866:"koi8u",ibm1168:"koi8u",strk10482002:"rk1048",tcvn5712:"tcvn",tcvn57121:"tcvn",gb198880:"iso646cn",cn:"iso646cn",csiso14jisc6220ro:"iso646jp",jisc62201969ro:"iso646jp",jp:"iso646jp",cshproman8:"hproman8",r8:"hproman8",roman8:"hproman8",xroman8:"hproman8",ibm1051:"hproman8",mac:"macintosh",csmacintosh:"macintosh"}});var Hv=V((wG,zv)=>{"use strict";zv.exports={437:"cp437",737:"cp737",775:"cp775",850:"cp850",852:"cp852",855:"cp855",856:"cp856",857:"cp857",858:"cp858",860:"cp860",861:"cp861",862:"cp862",863:"cp863",864:"cp864",865:"cp865",866:"cp866",869:"cp869",874:"windows874",922:"cp922",1046:"cp1046",1124:"cp1124",1125:"cp1125",1129:"cp1129",1133:"cp1133",1161:"cp1161",1162:"cp1162",1163:"cp1163",1250:"windows1250",1251:"windows1251",1252:"windows1252",1253:"windows1253",1254:"windows1254",1255:"windows1255",1256:"windows1256",1257:"windows1257",1258:"windows1258",28591:"iso88591",28592:"iso88592",28593:"iso88593",28594:"iso88594",28595:"iso88595",28596:"iso88596",28597:"iso88597",28598:"iso88598",28599:"iso88599",28600:"iso885910",28601:"iso885911",28603:"iso885913",28604:"iso885914",28605:"iso885915",28606:"iso885916",windows874:{type:"_sbcs",chars:"\u20AC\uFFFD\uFFFD\uFFFD\uFFFD\u2026\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},win874:"windows874",cp874:"windows874",windows1250:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\u0160\u2039\u015A\u0164\u017D\u0179\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0161\u203A\u015B\u0165\u017E\u017A\xA0\u02C7\u02D8\u0141\xA4\u0104\xA6\xA7\xA8\xA9\u015E\xAB\xAC\xAD\xAE\u017B\xB0\xB1\u02DB\u0142\xB4\xB5\xB6\xB7\xB8\u0105\u015F\xBB\u013D\u02DD\u013E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"},win1250:"windows1250",cp1250:"windows1250",windows1251:{type:"_sbcs",chars:"\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u040C\u040B\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u045C\u045B\u045F\xA0\u040E\u045E\u0408\xA4\u0490\xA6\xA7\u0401\xA9\u0404\xAB\xAC\xAD\xAE\u0407\xB0\xB1\u0406\u0456\u0491\xB5\xB6\xB7\u0451\u2116\u0454\xBB\u0458\u0405\u0455\u0457\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},win1251:"windows1251",cp1251:"windows1251",windows1252:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\u017D\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\u017E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},win1252:"windows1252",cp1252:"windows1252",windows1253:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0385\u0386\xA3\xA4\xA5\xA6\xA7\xA8\xA9\uFFFD\xAB\xAC\xAD\xAE\u2015\xB0\xB1\xB2\xB3\u0384\xB5\xB6\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"},win1253:"windows1253",cp1253:"windows1253",windows1254:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"},win1254:"windows1254",cp1254:"windows1254",windows1255:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\xA1\xA2\xA3\u20AA\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\xBF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BE\u05BF\u05C0\u05C1\u05C2\u05C3\u05F0\u05F1\u05F2\u05F3\u05F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"},win1255:"windows1255",cp1255:"windows1255",windows1256:{type:"_sbcs",chars:"\u20AC\u067E\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0679\u2039\u0152\u0686\u0698\u0688\u06AF\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u06A9\u2122\u0691\u203A\u0153\u200C\u200D\u06BA\xA0\u060C\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\u06BE\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\u061B\xBB\xBC\xBD\xBE\u061F\u06C1\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\xD7\u0637\u0638\u0639\u063A\u0640\u0641\u0642\u0643\xE0\u0644\xE2\u0645\u0646\u0647\u0648\xE7\xE8\xE9\xEA\xEB\u0649\u064A\xEE\xEF\u064B\u064C\u064D\u064E\xF4\u064F\u0650\xF7\u0651\xF9\u0652\xFB\xFC\u200E\u200F\u06D2"},win1256:"windows1256",cp1256:"windows1256",windows1257:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\xA8\u02C7\xB8\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\xAF\u02DB\uFFFD\xA0\uFFFD\xA2\xA3\xA4\uFFFD\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u02D9"},win1257:"windows1257",cp1257:"windows1257",windows1258:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},win1258:"windows1258",cp1258:"windows1258",iso88591:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},cp28591:"iso88591",iso88592:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u02D8\u0141\xA4\u013D\u015A\xA7\xA8\u0160\u015E\u0164\u0179\xAD\u017D\u017B\xB0\u0105\u02DB\u0142\xB4\u013E\u015B\u02C7\xB8\u0161\u015F\u0165\u017A\u02DD\u017E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"},cp28592:"iso88592",iso88593:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0126\u02D8\xA3\xA4\uFFFD\u0124\xA7\xA8\u0130\u015E\u011E\u0134\xAD\uFFFD\u017B\xB0\u0127\xB2\xB3\xB4\xB5\u0125\xB7\xB8\u0131\u015F\u011F\u0135\xBD\uFFFD\u017C\xC0\xC1\xC2\uFFFD\xC4\u010A\u0108\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\uFFFD\xD1\xD2\xD3\xD4\u0120\xD6\xD7\u011C\xD9\xDA\xDB\xDC\u016C\u015C\xDF\xE0\xE1\xE2\uFFFD\xE4\u010B\u0109\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\uFFFD\xF1\xF2\xF3\xF4\u0121\xF6\xF7\u011D\xF9\xFA\xFB\xFC\u016D\u015D\u02D9"},cp28593:"iso88593",iso88594:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0138\u0156\xA4\u0128\u013B\xA7\xA8\u0160\u0112\u0122\u0166\xAD\u017D\xAF\xB0\u0105\u02DB\u0157\xB4\u0129\u013C\u02C7\xB8\u0161\u0113\u0123\u0167\u014A\u017E\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\u012A\u0110\u0145\u014C\u0136\xD4\xD5\xD6\xD7\xD8\u0172\xDA\xDB\xDC\u0168\u016A\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\u012B\u0111\u0146\u014D\u0137\xF4\xF5\xF6\xF7\xF8\u0173\xFA\xFB\xFC\u0169\u016B\u02D9"},cp28594:"iso88594",iso88595:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"},cp28595:"iso88595",iso88596:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\uFFFD\uFFFD\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u060C\xAD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u061B\uFFFD\uFFFD\uFFFD\u061F\uFFFD\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},cp28596:"iso88596",iso88597:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u2018\u2019\xA3\u20AC\u20AF\xA6\xA7\xA8\xA9\u037A\xAB\xAC\xAD\uFFFD\u2015\xB0\xB1\xB2\xB3\u0384\u0385\u0386\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"},cp28597:"iso88597",iso88598:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2017\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"},cp28598:"iso88598",iso88599:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"},cp28599:"iso88599",iso885910:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0112\u0122\u012A\u0128\u0136\xA7\u013B\u0110\u0160\u0166\u017D\xAD\u016A\u014A\xB0\u0105\u0113\u0123\u012B\u0129\u0137\xB7\u013C\u0111\u0161\u0167\u017E\u2015\u016B\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\xCF\xD0\u0145\u014C\xD3\xD4\xD5\xD6\u0168\xD8\u0172\xDA\xDB\xDC\xDD\xDE\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\xEF\xF0\u0146\u014D\xF3\xF4\xF5\xF6\u0169\xF8\u0173\xFA\xFB\xFC\xFD\xFE\u0138"},cp28600:"iso885910",iso885911:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},cp28601:"iso885911",iso885913:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u201D\xA2\xA3\xA4\u201E\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\u201C\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u2019"},cp28603:"iso885913",iso885914:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u1E02\u1E03\xA3\u010A\u010B\u1E0A\xA7\u1E80\xA9\u1E82\u1E0B\u1EF2\xAD\xAE\u0178\u1E1E\u1E1F\u0120\u0121\u1E40\u1E41\xB6\u1E56\u1E81\u1E57\u1E83\u1E60\u1EF3\u1E84\u1E85\u1E61\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0174\xD1\xD2\xD3\xD4\xD5\xD6\u1E6A\xD8\xD9\xDA\xDB\xDC\xDD\u0176\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0175\xF1\xF2\xF3\xF4\xF5\xF6\u1E6B\xF8\xF9\xFA\xFB\xFC\xFD\u0177\xFF"},cp28604:"iso885914",iso885915:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\u0160\xA7\u0161\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u017D\xB5\xB6\xB7\u017E\xB9\xBA\xBB\u0152\u0153\u0178\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},cp28605:"iso885915",iso885916:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0105\u0141\u20AC\u201E\u0160\xA7\u0161\xA9\u0218\xAB\u0179\xAD\u017A\u017B\xB0\xB1\u010C\u0142\u017D\u201D\xB6\xB7\u017E\u010D\u0219\xBB\u0152\u0153\u0178\u017C\xC0\xC1\xC2\u0102\xC4\u0106\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0110\u0143\xD2\xD3\xD4\u0150\xD6\u015A\u0170\xD9\xDA\xDB\xDC\u0118\u021A\xDF\xE0\xE1\xE2\u0103\xE4\u0107\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0111\u0144\xF2\xF3\xF4\u0151\xF6\u015B\u0171\xF9\xFA\xFB\xFC\u0119\u021B\xFF"},cp28606:"iso885916",cp437:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm437:"cp437",csibm437:"cp437",cp737:{type:"_sbcs",chars:"\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u03C5\u03C6\u03C7\u03C8\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03C9\u03AC\u03AD\u03AE\u03CA\u03AF\u03CC\u03CD\u03CB\u03CE\u0386\u0388\u0389\u038A\u038C\u038E\u038F\xB1\u2265\u2264\u03AA\u03AB\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm737:"cp737",csibm737:"cp737",cp775:{type:"_sbcs",chars:"\u0106\xFC\xE9\u0101\xE4\u0123\xE5\u0107\u0142\u0113\u0156\u0157\u012B\u0179\xC4\xC5\xC9\xE6\xC6\u014D\xF6\u0122\xA2\u015A\u015B\xD6\xDC\xF8\xA3\xD8\xD7\xA4\u0100\u012A\xF3\u017B\u017C\u017A\u201D\xA6\xA9\xAE\xAC\xBD\xBC\u0141\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0104\u010C\u0118\u0116\u2563\u2551\u2557\u255D\u012E\u0160\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0172\u016A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u017D\u0105\u010D\u0119\u0117\u012F\u0161\u0173\u016B\u017E\u2518\u250C\u2588\u2584\u258C\u2590\u2580\xD3\xDF\u014C\u0143\xF5\xD5\xB5\u0144\u0136\u0137\u013B\u013C\u0146\u0112\u0145\u2019\xAD\xB1\u201C\xBE\xB6\xA7\xF7\u201E\xB0\u2219\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm775:"cp775",csibm775:"cp775",cp850:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u0131\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm850:"cp850",csibm850:"cp850",cp852:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\u016F\u0107\xE7\u0142\xEB\u0150\u0151\xEE\u0179\xC4\u0106\xC9\u0139\u013A\xF4\xF6\u013D\u013E\u015A\u015B\xD6\xDC\u0164\u0165\u0141\xD7\u010D\xE1\xED\xF3\xFA\u0104\u0105\u017D\u017E\u0118\u0119\xAC\u017A\u010C\u015F\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\u011A\u015E\u2563\u2551\u2557\u255D\u017B\u017C\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0102\u0103\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u0111\u0110\u010E\xCB\u010F\u0147\xCD\xCE\u011B\u2518\u250C\u2588\u2584\u0162\u016E\u2580\xD3\xDF\xD4\u0143\u0144\u0148\u0160\u0161\u0154\xDA\u0155\u0170\xFD\xDD\u0163\xB4\xAD\u02DD\u02DB\u02C7\u02D8\xA7\xF7\xB8\xB0\xA8\u02D9\u0171\u0158\u0159\u25A0\xA0"},ibm852:"cp852",csibm852:"cp852",cp855:{type:"_sbcs",chars:"\u0452\u0402\u0453\u0403\u0451\u0401\u0454\u0404\u0455\u0405\u0456\u0406\u0457\u0407\u0458\u0408\u0459\u0409\u045A\u040A\u045B\u040B\u045C\u040C\u045E\u040E\u045F\u040F\u044E\u042E\u044A\u042A\u0430\u0410\u0431\u0411\u0446\u0426\u0434\u0414\u0435\u0415\u0444\u0424\u0433\u0413\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0445\u0425\u0438\u0418\u2563\u2551\u2557\u255D\u0439\u0419\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u043A\u041A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u043B\u041B\u043C\u041C\u043D\u041D\u043E\u041E\u043F\u2518\u250C\u2588\u2584\u041F\u044F\u2580\u042F\u0440\u0420\u0441\u0421\u0442\u0422\u0443\u0423\u0436\u0416\u0432\u0412\u044C\u042C\u2116\xAD\u044B\u042B\u0437\u0417\u0448\u0428\u044D\u042D\u0449\u0429\u0447\u0427\xA7\u25A0\xA0"},ibm855:"cp855",csibm855:"cp855",cp856:{type:"_sbcs",chars:"\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\xA3\uFFFD\xD7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAE\xAC\xBD\xBC\uFFFD\xAB\xBB\u2591\u2592\u2593\u2502\u2524\uFFFD\uFFFD\uFFFD\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\uFFFD\uFFFD\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2518\u250C\u2588\u2584\xA6\uFFFD\u2580\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xB5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm856:"cp856",csibm856:"cp856",cp857:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\u0131\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\u0130\xD6\xDC\xF8\xA3\xD8\u015E\u015F\xE1\xED\xF3\xFA\xF1\xD1\u011E\u011F\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xBA\xAA\xCA\xCB\xC8\uFFFD\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\uFFFD\xD7\xDA\xDB\xD9\xEC\xFF\xAF\xB4\xAD\xB1\uFFFD\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm857:"cp857",csibm857:"cp857",cp858:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u20AC\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm858:"cp858",csibm858:"cp858",cp860:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE3\xE0\xC1\xE7\xEA\xCA\xE8\xCD\xD4\xEC\xC3\xC2\xC9\xC0\xC8\xF4\xF5\xF2\xDA\xF9\xCC\xD5\xDC\xA2\xA3\xD9\u20A7\xD3\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xD2\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm860:"cp860",csibm860:"cp860",cp861:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xD0\xF0\xDE\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xFE\xFB\xDD\xFD\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xC1\xCD\xD3\xDA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm861:"cp861",csibm861:"cp861",cp862:{type:"_sbcs",chars:"\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm862:"cp862",csibm862:"cp862",cp863:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xC2\xE0\xB6\xE7\xEA\xEB\xE8\xEF\xEE\u2017\xC0\xA7\xC9\xC8\xCA\xF4\xCB\xCF\xFB\xF9\xA4\xD4\xDC\xA2\xA3\xD9\xDB\u0192\xA6\xB4\xF3\xFA\xA8\xB8\xB3\xAF\xCE\u2310\xAC\xBD\xBC\xBE\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm863:"cp863",csibm863:"cp863",cp864:{type:"_sbcs",chars:`\0\x07\b +`+i),t.push("\x1B[3"+n+"m+"+ar.humanize(this.diff)+"\x1B[0m")}else t[0]=new Date().toUTCString()+" "+e+" "+t[0]}function $G(){return xG.write(xl.format.apply(xl,arguments)+` +`)}function EG(t){t==null?delete process.env.DEBUG:process.env.DEBUG=t}function dC(){return process.env.DEBUG}function kG(t){var e,r=process.binding("tty_wrap");switch(r.guessHandleType(t)){case"TTY":e=new lC.WriteStream(t),e._type="tty",e._handle&&e._handle.unref&&e._handle.unref();break;case"FILE":var n=require("fs");e=new n.SyncWriteStream(t,{autoClose:!1}),e._type="fs";break;case"PIPE":case"TCP":var i=require("net");e=new i.Socket({fd:t,readable:!1,writable:!0}),e.readable=!1,e.read=null,e._type="pipe",e._handle&&e._handle.unref&&e._handle.unref();break;default:throw new Error("Implement me. Unknown stream file type!")}return e.fd=t,e._isStdio=!0,e}function TG(t){t.inspectOpts={};for(var e=Object.keys(ar.inspectOpts),r=0;r{typeof process<"u"&&process.type==="renderer"?W0.exports=uC():W0.exports=fC()});var K0=j((y$e,hC)=>{"use strict";var IG=require("events").EventEmitter,PG=require("fs").ReadStream,mC=require("stream"),Qa=require("zlib");hC.exports=RG;function RG(t,e){return MG(t)?OG(t):DG(t)?NG(t):jG(t)&&t.destroy(),AG(t)&&e&&(t.removeAllListeners("error"),t.addListener("error",zG)),t}function OG(t){t.destroy(),typeof t.close=="function"&&t.on("open",qG)}function CG(t){if(t._hadError===!0){var e=t._binding===null?"_binding":"_handle";t[e]={close:function(){this[e]=null}}}t.close()}function NG(t){typeof t.destroy=="function"?t._binding?(t.destroy(),t._processing?(t._needDrain=!0,t.once("drain",UG)):t._binding.clear()):t._destroy&&t._destroy!==mC.Transform.prototype._destroy?t.destroy():t._destroy&&typeof t.close=="function"?(t.destroyed=!0,t.close()):t.destroy():typeof t.close=="function"&&CG(t)}function jG(t){return t instanceof mC&&typeof t.destroy=="function"}function AG(t){return t instanceof IG}function MG(t){return t instanceof PG}function DG(t){return t instanceof Qa.Gzip||t instanceof Qa.Gunzip||t instanceof Qa.Deflate||t instanceof Qa.DeflateRaw||t instanceof Qa.Inflate||t instanceof Qa.InflateRaw||t instanceof Qa.Unzip}function zG(){}function UG(){this._binding.clear()}function qG(){typeof this.fd=="number"&&this.close()}});var eo=j((_$e,gC)=>{"use strict";var am=require("buffer"),Es=am.Buffer,bn={},xn;for(xn in am)am.hasOwnProperty(xn)&&(xn==="SlowBuffer"||xn==="Buffer"||(bn[xn]=am[xn]));var ks=bn.Buffer={};for(xn in Es)Es.hasOwnProperty(xn)&&(xn==="allocUnsafe"||xn==="allocUnsafeSlow"||(ks[xn]=Es[xn]));bn.Buffer.prototype=Es.prototype;(!ks.from||ks.from===Uint8Array.from)&&(ks.from=function(t,e,r){if(typeof t=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof t);if(t&&typeof t.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);return Es(t,e,r)});ks.alloc||(ks.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof t);if(t<0||t>=2*(1<<30))throw new RangeError('The value "'+t+'" is invalid for option "size"');var n=Es(t);return!e||e.length===0?n.fill(0):typeof r=="string"?n.fill(e,r):n.fill(e),n});if(!bn.kStringMaxLength)try{bn.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch{}bn.constants||(bn.constants={MAX_LENGTH:bn.kMaxLength},bn.kStringMaxLength&&(bn.constants.MAX_STRING_LENGTH=bn.kStringMaxLength));gC.exports=bn});var yC=j(Y0=>{"use strict";var vC="\uFEFF";Y0.PrependBOM=J0;function J0(t,e){this.encoder=t,this.addBOM=!0}J0.prototype.write=function(t){return this.addBOM&&(t=vC+t,this.addBOM=!1),this.encoder.write(t)};J0.prototype.end=function(){return this.encoder.end()};Y0.StripBOM=X0;function X0(t,e){this.decoder=t,this.pass=!1,this.options=e||{}}X0.prototype.write=function(t){var e=this.decoder.write(t);return this.pass||!e||(e[0]===vC&&(e=e.slice(1),typeof this.options.stripBOM=="function"&&this.options.stripBOM()),this.pass=!0),e};X0.prototype.end=function(){return this.decoder.end()}});var xC=j((x$e,bC)=>{"use strict";var Sl=eo().Buffer;bC.exports={utf8:{type:"_internal",bomAware:!0},cesu8:{type:"_internal",bomAware:!0},unicode11utf8:"utf8",ucs2:{type:"_internal",bomAware:!0},utf16le:"ucs2",binary:{type:"_internal"},base64:{type:"_internal"},hex:{type:"_internal"},_internal:Q0};function Q0(t,e){this.enc=t.encodingName,this.bomAware=t.bomAware,this.enc==="base64"?this.encoder=tS:this.enc==="cesu8"&&(this.enc="utf8",this.encoder=rS,Sl.from("eda0bdedb2a9","hex").toString()!=="\u{1F4A9}"&&(this.decoder=nS,this.defaultCharUnicode=e.defaultCharUnicode))}Q0.prototype.encoder=eS;Q0.prototype.decoder=_C;var om=require("string_decoder").StringDecoder;om.prototype.end||(om.prototype.end=function(){});function _C(t,e){om.call(this,e.enc)}_C.prototype=om.prototype;function eS(t,e){this.enc=e.enc}eS.prototype.write=function(t){return Sl.from(t,this.enc)};eS.prototype.end=function(){};function tS(t,e){this.prevStr=""}tS.prototype.write=function(t){t=this.prevStr+t;var e=t.length-t.length%4;return this.prevStr=t.slice(e),t=t.slice(0,e),Sl.from(t,"base64")};tS.prototype.end=function(){return Sl.from(this.prevStr,"base64")};function rS(t,e){}rS.prototype.write=function(t){for(var e=Sl.alloc(t.length*3),r=0,n=0;n>>6),e[r++]=128+(i&63)):(e[r++]=224+(i>>>12),e[r++]=128+(i>>>6&63),e[r++]=128+(i&63))}return e.slice(0,r)};rS.prototype.end=function(){};function nS(t,e){this.acc=0,this.contBytes=0,this.accBytes=0,this.defaultCharUnicode=e.defaultCharUnicode}nS.prototype.write=function(t){for(var e=this.acc,r=this.contBytes,n=this.accBytes,i="",a=0;a0&&(i+=this.defaultCharUnicode,r=0),o<128?i+=String.fromCharCode(o):o<224?(e=o&31,r=1,n=1):o<240?(e=o&15,r=2,n=1):i+=this.defaultCharUnicode):r>0?(e=e<<6|o&63,r--,n++,r===0&&(n===2&&e<128&&e>0?i+=this.defaultCharUnicode:n===3&&e<2048?i+=this.defaultCharUnicode:i+=String.fromCharCode(e))):i+=this.defaultCharUnicode}return this.acc=e,this.contBytes=r,this.accBytes=n,i};nS.prototype.end=function(){var t=0;return this.contBytes>0&&(t+=this.defaultCharUnicode),t}});var wC=j(uS=>{"use strict";var sm=eo().Buffer;uS.utf16be=cm;function cm(){}cm.prototype.encoder=iS;cm.prototype.decoder=aS;cm.prototype.bomAware=!0;function iS(){}iS.prototype.write=function(t){for(var e=sm.from(t,"ucs2"),r=0;r=2)if(t[0]==254&&t[1]==255)r="utf-16be";else if(t[0]==255&&t[1]==254)r="utf-16le";else{for(var n=0,i=0,a=Math.min(t.length-t.length%2,64),o=0;on?r="utf-16be":i{"use strict";var ui=eo().Buffer;dm.utf7=um;dm.unicode11utf7="utf7";function um(t,e){this.iconv=e}um.prototype.encoder=dS;um.prototype.decoder=pS;um.prototype.bomAware=!0;var LG=/[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;function dS(t,e){this.iconv=e.iconv}dS.prototype.write=function(t){return ui.from(t.replace(LG,function(e){return"+"+(e==="+"?"":this.iconv.encode(e,"utf16-be").toString("base64").replace(/=+$/,""))+"-"}.bind(this)))};dS.prototype.end=function(){};function pS(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=""}var FG=/[A-Za-z0-9\/+]/,fS=[];for(wl=0;wl<256;wl++)fS[wl]=FG.test(String.fromCharCode(wl));var wl,ZG=43,to=45,lS=38;pS.prototype.write=function(t){for(var e="",r=0,n=this.inBase64,i=this.base64Accum,a=0;a0&&(t=this.iconv.decode(ui.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",t};dm.utf7imap=lm;function lm(t,e){this.iconv=e}lm.prototype.encoder=mS;lm.prototype.decoder=hS;lm.prototype.bomAware=!0;function mS(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=ui.alloc(6),this.base64AccumIdx=0}mS.prototype.write=function(t){for(var e=this.inBase64,r=this.base64Accum,n=this.base64AccumIdx,i=ui.alloc(t.length*5+10),a=0,o=0;o0&&(a+=i.write(r.slice(0,n).toString("base64").replace(/\//g,",").replace(/=+$/,""),a),n=0),i[a++]=to,e=!1),e||(i[a++]=s,s===lS&&(i[a++]=to))):(e||(i[a++]=lS,e=!0),e&&(r[n++]=s>>8,r[n++]=s&255,n==r.length&&(a+=i.write(r.toString("base64").replace(/\//g,","),a),n=0)))}return this.inBase64=e,this.base64AccumIdx=n,i.slice(0,a)};mS.prototype.end=function(){var t=ui.alloc(10),e=0;return this.inBase64&&(this.base64AccumIdx>0&&(e+=t.write(this.base64Accum.slice(0,this.base64AccumIdx).toString("base64").replace(/\//g,",").replace(/=+$/,""),e),this.base64AccumIdx=0),t[e++]=to,this.inBase64=!1),t.slice(0,e)};function hS(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=""}var $C=fS.slice();$C[44]=!0;hS.prototype.write=function(t){for(var e="",r=0,n=this.inBase64,i=this.base64Accum,a=0;a0&&(t=this.iconv.decode(ui.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",t}});var TC=j(kC=>{"use strict";var pm=eo().Buffer;kC._sbcs=gS;function gS(t,e){if(!t)throw new Error("SBCS codec is called without the data.");if(!t.chars||t.chars.length!==128&&t.chars.length!==256)throw new Error("Encoding '"+t.type+"' has incorrect 'chars' (must be of len 128 or 256)");if(t.chars.length===128){for(var r="",n=0;n<128;n++)r+=String.fromCharCode(n);t.chars=r+t.chars}this.decodeBuf=pm.from(t.chars,"ucs2");for(var i=pm.alloc(65536,e.defaultCharSingleByte.charCodeAt(0)),n=0;n{"use strict";IC.exports={10029:"maccenteuro",maccenteuro:{type:"_sbcs",chars:"\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7"},808:"cp808",ibm808:"cp808",cp808:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\u20AC\u25A0\xA0"},mik:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2514\u2534\u252C\u251C\u2500\u253C\u2563\u2551\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2510\u2591\u2592\u2593\u2502\u2524\u2116\xA7\u2557\u255D\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ascii8bit:"ascii",usascii:"ascii",ansix34:"ascii",ansix341968:"ascii",ansix341986:"ascii",csascii:"ascii",cp367:"ascii",ibm367:"ascii",isoir6:"ascii",iso646us:"ascii",iso646irv:"ascii",us:"ascii",latin1:"iso88591",latin2:"iso88592",latin3:"iso88593",latin4:"iso88594",latin5:"iso88599",latin6:"iso885910",latin7:"iso885913",latin8:"iso885914",latin9:"iso885915",latin10:"iso885916",csisolatin1:"iso88591",csisolatin2:"iso88592",csisolatin3:"iso88593",csisolatin4:"iso88594",csisolatincyrillic:"iso88595",csisolatinarabic:"iso88596",csisolatingreek:"iso88597",csisolatinhebrew:"iso88598",csisolatin5:"iso88599",csisolatin6:"iso885910",l1:"iso88591",l2:"iso88592",l3:"iso88593",l4:"iso88594",l5:"iso88599",l6:"iso885910",l7:"iso885913",l8:"iso885914",l9:"iso885915",l10:"iso885916",isoir14:"iso646jp",isoir57:"iso646cn",isoir100:"iso88591",isoir101:"iso88592",isoir109:"iso88593",isoir110:"iso88594",isoir144:"iso88595",isoir127:"iso88596",isoir126:"iso88597",isoir138:"iso88598",isoir148:"iso88599",isoir157:"iso885910",isoir166:"tis620",isoir179:"iso885913",isoir199:"iso885914",isoir203:"iso885915",isoir226:"iso885916",cp819:"iso88591",ibm819:"iso88591",cyrillic:"iso88595",arabic:"iso88596",arabic8:"iso88596",ecma114:"iso88596",asmo708:"iso88596",greek:"iso88597",greek8:"iso88597",ecma118:"iso88597",elot928:"iso88597",hebrew:"iso88598",hebrew8:"iso88598",turkish:"iso88599",turkish8:"iso88599",thai:"iso885911",thai8:"iso885911",celtic:"iso885914",celtic8:"iso885914",isoceltic:"iso885914",tis6200:"tis620",tis62025291:"tis620",tis62025330:"tis620",1e4:"macroman",10006:"macgreek",10007:"maccyrillic",10079:"maciceland",10081:"macturkish",cspc8codepage437:"cp437",cspc775baltic:"cp775",cspc850multilingual:"cp850",cspcp852:"cp852",cspc862latinhebrew:"cp862",cpgr:"cp869",msee:"cp1250",mscyrl:"cp1251",msansi:"cp1252",msgreek:"cp1253",msturk:"cp1254",mshebr:"cp1255",msarab:"cp1256",winbaltrim:"cp1257",cp20866:"koi8r",20866:"koi8r",ibm878:"koi8r",cskoi8r:"koi8r",cp21866:"koi8u",21866:"koi8u",ibm1168:"koi8u",strk10482002:"rk1048",tcvn5712:"tcvn",tcvn57121:"tcvn",gb198880:"iso646cn",cn:"iso646cn",csiso14jisc6220ro:"iso646jp",jisc62201969ro:"iso646jp",jp:"iso646jp",cshproman8:"hproman8",r8:"hproman8",roman8:"hproman8",xroman8:"hproman8",ibm1051:"hproman8",mac:"macintosh",csmacintosh:"macintosh"}});var OC=j((k$e,RC)=>{"use strict";RC.exports={437:"cp437",737:"cp737",775:"cp775",850:"cp850",852:"cp852",855:"cp855",856:"cp856",857:"cp857",858:"cp858",860:"cp860",861:"cp861",862:"cp862",863:"cp863",864:"cp864",865:"cp865",866:"cp866",869:"cp869",874:"windows874",922:"cp922",1046:"cp1046",1124:"cp1124",1125:"cp1125",1129:"cp1129",1133:"cp1133",1161:"cp1161",1162:"cp1162",1163:"cp1163",1250:"windows1250",1251:"windows1251",1252:"windows1252",1253:"windows1253",1254:"windows1254",1255:"windows1255",1256:"windows1256",1257:"windows1257",1258:"windows1258",28591:"iso88591",28592:"iso88592",28593:"iso88593",28594:"iso88594",28595:"iso88595",28596:"iso88596",28597:"iso88597",28598:"iso88598",28599:"iso88599",28600:"iso885910",28601:"iso885911",28603:"iso885913",28604:"iso885914",28605:"iso885915",28606:"iso885916",windows874:{type:"_sbcs",chars:"\u20AC\uFFFD\uFFFD\uFFFD\uFFFD\u2026\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},win874:"windows874",cp874:"windows874",windows1250:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\u0160\u2039\u015A\u0164\u017D\u0179\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0161\u203A\u015B\u0165\u017E\u017A\xA0\u02C7\u02D8\u0141\xA4\u0104\xA6\xA7\xA8\xA9\u015E\xAB\xAC\xAD\xAE\u017B\xB0\xB1\u02DB\u0142\xB4\xB5\xB6\xB7\xB8\u0105\u015F\xBB\u013D\u02DD\u013E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"},win1250:"windows1250",cp1250:"windows1250",windows1251:{type:"_sbcs",chars:"\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u040C\u040B\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u045C\u045B\u045F\xA0\u040E\u045E\u0408\xA4\u0490\xA6\xA7\u0401\xA9\u0404\xAB\xAC\xAD\xAE\u0407\xB0\xB1\u0406\u0456\u0491\xB5\xB6\xB7\u0451\u2116\u0454\xBB\u0458\u0405\u0455\u0457\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},win1251:"windows1251",cp1251:"windows1251",windows1252:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\u017D\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\u017E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},win1252:"windows1252",cp1252:"windows1252",windows1253:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0385\u0386\xA3\xA4\xA5\xA6\xA7\xA8\xA9\uFFFD\xAB\xAC\xAD\xAE\u2015\xB0\xB1\xB2\xB3\u0384\xB5\xB6\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"},win1253:"windows1253",cp1253:"windows1253",windows1254:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"},win1254:"windows1254",cp1254:"windows1254",windows1255:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\xA1\xA2\xA3\u20AA\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\xBF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BE\u05BF\u05C0\u05C1\u05C2\u05C3\u05F0\u05F1\u05F2\u05F3\u05F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"},win1255:"windows1255",cp1255:"windows1255",windows1256:{type:"_sbcs",chars:"\u20AC\u067E\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0679\u2039\u0152\u0686\u0698\u0688\u06AF\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u06A9\u2122\u0691\u203A\u0153\u200C\u200D\u06BA\xA0\u060C\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\u06BE\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\u061B\xBB\xBC\xBD\xBE\u061F\u06C1\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\xD7\u0637\u0638\u0639\u063A\u0640\u0641\u0642\u0643\xE0\u0644\xE2\u0645\u0646\u0647\u0648\xE7\xE8\xE9\xEA\xEB\u0649\u064A\xEE\xEF\u064B\u064C\u064D\u064E\xF4\u064F\u0650\xF7\u0651\xF9\u0652\xFB\xFC\u200E\u200F\u06D2"},win1256:"windows1256",cp1256:"windows1256",windows1257:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\xA8\u02C7\xB8\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\xAF\u02DB\uFFFD\xA0\uFFFD\xA2\xA3\xA4\uFFFD\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u02D9"},win1257:"windows1257",cp1257:"windows1257",windows1258:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},win1258:"windows1258",cp1258:"windows1258",iso88591:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},cp28591:"iso88591",iso88592:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u02D8\u0141\xA4\u013D\u015A\xA7\xA8\u0160\u015E\u0164\u0179\xAD\u017D\u017B\xB0\u0105\u02DB\u0142\xB4\u013E\u015B\u02C7\xB8\u0161\u015F\u0165\u017A\u02DD\u017E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"},cp28592:"iso88592",iso88593:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0126\u02D8\xA3\xA4\uFFFD\u0124\xA7\xA8\u0130\u015E\u011E\u0134\xAD\uFFFD\u017B\xB0\u0127\xB2\xB3\xB4\xB5\u0125\xB7\xB8\u0131\u015F\u011F\u0135\xBD\uFFFD\u017C\xC0\xC1\xC2\uFFFD\xC4\u010A\u0108\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\uFFFD\xD1\xD2\xD3\xD4\u0120\xD6\xD7\u011C\xD9\xDA\xDB\xDC\u016C\u015C\xDF\xE0\xE1\xE2\uFFFD\xE4\u010B\u0109\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\uFFFD\xF1\xF2\xF3\xF4\u0121\xF6\xF7\u011D\xF9\xFA\xFB\xFC\u016D\u015D\u02D9"},cp28593:"iso88593",iso88594:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0138\u0156\xA4\u0128\u013B\xA7\xA8\u0160\u0112\u0122\u0166\xAD\u017D\xAF\xB0\u0105\u02DB\u0157\xB4\u0129\u013C\u02C7\xB8\u0161\u0113\u0123\u0167\u014A\u017E\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\u012A\u0110\u0145\u014C\u0136\xD4\xD5\xD6\xD7\xD8\u0172\xDA\xDB\xDC\u0168\u016A\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\u012B\u0111\u0146\u014D\u0137\xF4\xF5\xF6\xF7\xF8\u0173\xFA\xFB\xFC\u0169\u016B\u02D9"},cp28594:"iso88594",iso88595:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"},cp28595:"iso88595",iso88596:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\uFFFD\uFFFD\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u060C\xAD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u061B\uFFFD\uFFFD\uFFFD\u061F\uFFFD\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},cp28596:"iso88596",iso88597:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u2018\u2019\xA3\u20AC\u20AF\xA6\xA7\xA8\xA9\u037A\xAB\xAC\xAD\uFFFD\u2015\xB0\xB1\xB2\xB3\u0384\u0385\u0386\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"},cp28597:"iso88597",iso88598:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2017\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"},cp28598:"iso88598",iso88599:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"},cp28599:"iso88599",iso885910:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0112\u0122\u012A\u0128\u0136\xA7\u013B\u0110\u0160\u0166\u017D\xAD\u016A\u014A\xB0\u0105\u0113\u0123\u012B\u0129\u0137\xB7\u013C\u0111\u0161\u0167\u017E\u2015\u016B\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\xCF\xD0\u0145\u014C\xD3\xD4\xD5\xD6\u0168\xD8\u0172\xDA\xDB\xDC\xDD\xDE\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\xEF\xF0\u0146\u014D\xF3\xF4\xF5\xF6\u0169\xF8\u0173\xFA\xFB\xFC\xFD\xFE\u0138"},cp28600:"iso885910",iso885911:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},cp28601:"iso885911",iso885913:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u201D\xA2\xA3\xA4\u201E\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\u201C\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u2019"},cp28603:"iso885913",iso885914:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u1E02\u1E03\xA3\u010A\u010B\u1E0A\xA7\u1E80\xA9\u1E82\u1E0B\u1EF2\xAD\xAE\u0178\u1E1E\u1E1F\u0120\u0121\u1E40\u1E41\xB6\u1E56\u1E81\u1E57\u1E83\u1E60\u1EF3\u1E84\u1E85\u1E61\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0174\xD1\xD2\xD3\xD4\xD5\xD6\u1E6A\xD8\xD9\xDA\xDB\xDC\xDD\u0176\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0175\xF1\xF2\xF3\xF4\xF5\xF6\u1E6B\xF8\xF9\xFA\xFB\xFC\xFD\u0177\xFF"},cp28604:"iso885914",iso885915:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\u0160\xA7\u0161\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u017D\xB5\xB6\xB7\u017E\xB9\xBA\xBB\u0152\u0153\u0178\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},cp28605:"iso885915",iso885916:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0105\u0141\u20AC\u201E\u0160\xA7\u0161\xA9\u0218\xAB\u0179\xAD\u017A\u017B\xB0\xB1\u010C\u0142\u017D\u201D\xB6\xB7\u017E\u010D\u0219\xBB\u0152\u0153\u0178\u017C\xC0\xC1\xC2\u0102\xC4\u0106\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0110\u0143\xD2\xD3\xD4\u0150\xD6\u015A\u0170\xD9\xDA\xDB\xDC\u0118\u021A\xDF\xE0\xE1\xE2\u0103\xE4\u0107\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0111\u0144\xF2\xF3\xF4\u0151\xF6\u015B\u0171\xF9\xFA\xFB\xFC\u0119\u021B\xFF"},cp28606:"iso885916",cp437:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm437:"cp437",csibm437:"cp437",cp737:{type:"_sbcs",chars:"\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u03C5\u03C6\u03C7\u03C8\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03C9\u03AC\u03AD\u03AE\u03CA\u03AF\u03CC\u03CD\u03CB\u03CE\u0386\u0388\u0389\u038A\u038C\u038E\u038F\xB1\u2265\u2264\u03AA\u03AB\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm737:"cp737",csibm737:"cp737",cp775:{type:"_sbcs",chars:"\u0106\xFC\xE9\u0101\xE4\u0123\xE5\u0107\u0142\u0113\u0156\u0157\u012B\u0179\xC4\xC5\xC9\xE6\xC6\u014D\xF6\u0122\xA2\u015A\u015B\xD6\xDC\xF8\xA3\xD8\xD7\xA4\u0100\u012A\xF3\u017B\u017C\u017A\u201D\xA6\xA9\xAE\xAC\xBD\xBC\u0141\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0104\u010C\u0118\u0116\u2563\u2551\u2557\u255D\u012E\u0160\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0172\u016A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u017D\u0105\u010D\u0119\u0117\u012F\u0161\u0173\u016B\u017E\u2518\u250C\u2588\u2584\u258C\u2590\u2580\xD3\xDF\u014C\u0143\xF5\xD5\xB5\u0144\u0136\u0137\u013B\u013C\u0146\u0112\u0145\u2019\xAD\xB1\u201C\xBE\xB6\xA7\xF7\u201E\xB0\u2219\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm775:"cp775",csibm775:"cp775",cp850:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u0131\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm850:"cp850",csibm850:"cp850",cp852:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\u016F\u0107\xE7\u0142\xEB\u0150\u0151\xEE\u0179\xC4\u0106\xC9\u0139\u013A\xF4\xF6\u013D\u013E\u015A\u015B\xD6\xDC\u0164\u0165\u0141\xD7\u010D\xE1\xED\xF3\xFA\u0104\u0105\u017D\u017E\u0118\u0119\xAC\u017A\u010C\u015F\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\u011A\u015E\u2563\u2551\u2557\u255D\u017B\u017C\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0102\u0103\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u0111\u0110\u010E\xCB\u010F\u0147\xCD\xCE\u011B\u2518\u250C\u2588\u2584\u0162\u016E\u2580\xD3\xDF\xD4\u0143\u0144\u0148\u0160\u0161\u0154\xDA\u0155\u0170\xFD\xDD\u0163\xB4\xAD\u02DD\u02DB\u02C7\u02D8\xA7\xF7\xB8\xB0\xA8\u02D9\u0171\u0158\u0159\u25A0\xA0"},ibm852:"cp852",csibm852:"cp852",cp855:{type:"_sbcs",chars:"\u0452\u0402\u0453\u0403\u0451\u0401\u0454\u0404\u0455\u0405\u0456\u0406\u0457\u0407\u0458\u0408\u0459\u0409\u045A\u040A\u045B\u040B\u045C\u040C\u045E\u040E\u045F\u040F\u044E\u042E\u044A\u042A\u0430\u0410\u0431\u0411\u0446\u0426\u0434\u0414\u0435\u0415\u0444\u0424\u0433\u0413\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0445\u0425\u0438\u0418\u2563\u2551\u2557\u255D\u0439\u0419\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u043A\u041A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u043B\u041B\u043C\u041C\u043D\u041D\u043E\u041E\u043F\u2518\u250C\u2588\u2584\u041F\u044F\u2580\u042F\u0440\u0420\u0441\u0421\u0442\u0422\u0443\u0423\u0436\u0416\u0432\u0412\u044C\u042C\u2116\xAD\u044B\u042B\u0437\u0417\u0448\u0428\u044D\u042D\u0449\u0429\u0447\u0427\xA7\u25A0\xA0"},ibm855:"cp855",csibm855:"cp855",cp856:{type:"_sbcs",chars:"\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\xA3\uFFFD\xD7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAE\xAC\xBD\xBC\uFFFD\xAB\xBB\u2591\u2592\u2593\u2502\u2524\uFFFD\uFFFD\uFFFD\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\uFFFD\uFFFD\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2518\u250C\u2588\u2584\xA6\uFFFD\u2580\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xB5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm856:"cp856",csibm856:"cp856",cp857:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\u0131\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\u0130\xD6\xDC\xF8\xA3\xD8\u015E\u015F\xE1\xED\xF3\xFA\xF1\xD1\u011E\u011F\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xBA\xAA\xCA\xCB\xC8\uFFFD\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\uFFFD\xD7\xDA\xDB\xD9\xEC\xFF\xAF\xB4\xAD\xB1\uFFFD\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm857:"cp857",csibm857:"cp857",cp858:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u20AC\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm858:"cp858",csibm858:"cp858",cp860:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE3\xE0\xC1\xE7\xEA\xCA\xE8\xCD\xD4\xEC\xC3\xC2\xC9\xC0\xC8\xF4\xF5\xF2\xDA\xF9\xCC\xD5\xDC\xA2\xA3\xD9\u20A7\xD3\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xD2\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm860:"cp860",csibm860:"cp860",cp861:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xD0\xF0\xDE\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xFE\xFB\xDD\xFD\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xC1\xCD\xD3\xDA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm861:"cp861",csibm861:"cp861",cp862:{type:"_sbcs",chars:"\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm862:"cp862",csibm862:"cp862",cp863:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xC2\xE0\xB6\xE7\xEA\xEB\xE8\xEF\xEE\u2017\xC0\xA7\xC9\xC8\xCA\xF4\xCB\xCF\xFB\xF9\xA4\xD4\xDC\xA2\xA3\xD9\xDB\u0192\xA6\xB4\xF3\xFA\xA8\xB8\xB3\xAF\xCE\u2310\xAC\xBD\xBC\xBE\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm863:"cp863",csibm863:"cp863",cp864:{type:"_sbcs",chars:`\0\x07\b \v\f\r\x1B !"#$\u066A&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xB0\xB7\u2219\u221A\u2592\u2500\u2502\u253C\u2524\u252C\u251C\u2534\u2510\u250C\u2514\u2518\u03B2\u221E\u03C6\xB1\xBD\xBC\u2248\xAB\xBB\uFEF7\uFEF8\uFFFD\uFFFD\uFEFB\uFEFC\uFFFD\xA0\xAD\uFE82\xA3\xA4\uFE84\uFFFD\uFFFD\uFE8E\uFE8F\uFE95\uFE99\u060C\uFE9D\uFEA1\uFEA5\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFED1\u061B\uFEB1\uFEB5\uFEB9\u061F\xA2\uFE80\uFE81\uFE83\uFE85\uFECA\uFE8B\uFE8D\uFE91\uFE93\uFE97\uFE9B\uFE9F\uFEA3\uFEA7\uFEA9\uFEAB\uFEAD\uFEAF\uFEB3\uFEB7\uFEBB\uFEBF\uFEC1\uFEC5\uFECB\uFECF\xA6\xAC\xF7\xD7\uFEC9\u0640\uFED3\uFED7\uFEDB\uFEDF\uFEE3\uFEE7\uFEEB\uFEED\uFEEF\uFEF3\uFEBD\uFECC\uFECE\uFECD\uFEE1\uFE7D\u0651\uFEE5\uFEE9\uFEEC\uFEF0\uFEF2\uFED0\uFED5\uFEF5\uFEF6\uFEDD\uFED9\uFEF1\u25A0\uFFFD`},ibm864:"cp864",csibm864:"cp864",cp865:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xA4\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm865:"cp865",csibm865:"cp865",cp866:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\xA4\u25A0\xA0"},ibm866:"cp866",csibm866:"cp866",cp869:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0386\uFFFD\xB7\xAC\xA6\u2018\u2019\u0388\u2015\u0389\u038A\u03AA\u038C\uFFFD\uFFFD\u038E\u03AB\xA9\u038F\xB2\xB3\u03AC\xA3\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03CD\u0391\u0392\u0393\u0394\u0395\u0396\u0397\xBD\u0398\u0399\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u039A\u039B\u039C\u039D\u2563\u2551\u2557\u255D\u039E\u039F\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u03A0\u03A1\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u2518\u250C\u2588\u2584\u03B4\u03B5\u2580\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u0384\xAD\xB1\u03C5\u03C6\u03C7\xA7\u03C8\u0385\xB0\xA8\u03C9\u03CB\u03B0\u03CE\u25A0\xA0"},ibm869:"cp869",csibm869:"cp869",cp922:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\u203E\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0160\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\u017D\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0161\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\u017E\xFF"},ibm922:"cp922",csibm922:"cp922",cp1046:{type:"_sbcs",chars:"\uFE88\xD7\xF7\uF8F6\uF8F5\uF8F4\uF8F7\uFE71\x88\u25A0\u2502\u2500\u2510\u250C\u2514\u2518\uFE79\uFE7B\uFE7D\uFE7F\uFE77\uFE8A\uFEF0\uFEF3\uFEF2\uFECE\uFECF\uFED0\uFEF6\uFEF8\uFEFA\uFEFC\xA0\uF8FA\uF8F9\uF8F8\xA4\uF8FB\uFE8B\uFE91\uFE97\uFE9B\uFE9F\uFEA3\u060C\xAD\uFEA7\uFEB3\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFEB7\u061B\uFEBB\uFEBF\uFECA\u061F\uFECB\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\uFEC7\u0639\u063A\uFECC\uFE82\uFE84\uFE8E\uFED3\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFED7\uFEDB\uFEDF\uF8FC\uFEF5\uFEF7\uFEF9\uFEFB\uFEE3\uFEE7\uFEEC\uFEE9\uFFFD"},ibm1046:"cp1046",csibm1046:"cp1046",cp1124:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0490\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0491\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"},ibm1124:"cp1124",csibm1124:"cp1124",cp1125:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0490\u0491\u0404\u0454\u0406\u0456\u0407\u0457\xB7\u221A\u2116\xA4\u25A0\xA0"},ibm1125:"cp1125",csibm1125:"cp1125",cp1129:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},ibm1129:"cp1129",csibm1129:"cp1129",cp1133:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E81\u0E82\u0E84\u0E87\u0E88\u0EAA\u0E8A\u0E8D\u0E94\u0E95\u0E96\u0E97\u0E99\u0E9A\u0E9B\u0E9C\u0E9D\u0E9E\u0E9F\u0EA1\u0EA2\u0EA3\u0EA5\u0EA7\u0EAB\u0EAD\u0EAE\uFFFD\uFFFD\uFFFD\u0EAF\u0EB0\u0EB2\u0EB3\u0EB4\u0EB5\u0EB6\u0EB7\u0EB8\u0EB9\u0EBC\u0EB1\u0EBB\u0EBD\uFFFD\uFFFD\uFFFD\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD\u0EC6\uFFFD\u0EDC\u0EDD\u20AD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5\u0ED6\u0ED7\u0ED8\u0ED9\uFFFD\uFFFD\xA2\xAC\xA6\uFFFD"},ibm1133:"cp1133",csibm1133:"cp1133",cp1161:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E48\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E49\u0E4A\u0E4B\u20AC\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\xA2\xAC\xA6\xA0"},ibm1161:"cp1161",csibm1161:"cp1161",cp1162:{type:"_sbcs",chars:"\u20AC\x81\x82\x83\x84\u2026\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},ibm1162:"cp1162",csibm1162:"cp1162",cp1163:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},ibm1163:"cp1163",csibm1163:"cp1163",maccroatian:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\u0160\u2122\xB4\xA8\u2260\u017D\xD8\u221E\xB1\u2264\u2265\u2206\xB5\u2202\u2211\u220F\u0161\u222B\xAA\xBA\u2126\u017E\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u0106\xAB\u010C\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u0110\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\uFFFD\xA9\u2044\xA4\u2039\u203A\xC6\xBB\u2013\xB7\u201A\u201E\u2030\xC2\u0107\xC1\u010D\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u0111\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u03C0\xCB\u02DA\xB8\xCA\xE6\u02C7"},maccyrillic:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\xA2\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u2202\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"},macgreek:{type:"_sbcs",chars:"\xC4\xB9\xB2\xC9\xB3\xD6\xDC\u0385\xE0\xE2\xE4\u0384\xA8\xE7\xE9\xE8\xEA\xEB\xA3\u2122\xEE\xEF\u2022\xBD\u2030\xF4\xF6\xA6\xAD\xF9\xFB\xFC\u2020\u0393\u0394\u0398\u039B\u039E\u03A0\xDF\xAE\xA9\u03A3\u03AA\xA7\u2260\xB0\u0387\u0391\xB1\u2264\u2265\xA5\u0392\u0395\u0396\u0397\u0399\u039A\u039C\u03A6\u03AB\u03A8\u03A9\u03AC\u039D\xAC\u039F\u03A1\u2248\u03A4\xAB\xBB\u2026\xA0\u03A5\u03A7\u0386\u0388\u0153\u2013\u2015\u201C\u201D\u2018\u2019\xF7\u0389\u038A\u038C\u038E\u03AD\u03AE\u03AF\u03CC\u038F\u03CD\u03B1\u03B2\u03C8\u03B4\u03B5\u03C6\u03B3\u03B7\u03B9\u03BE\u03BA\u03BB\u03BC\u03BD\u03BF\u03C0\u03CE\u03C1\u03C3\u03C4\u03B8\u03C9\u03C2\u03C7\u03C5\u03B6\u03CA\u03CB\u0390\u03B0\uFFFD"},maciceland:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\xDD\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\xD0\xF0\xDE\xFE\xFD\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macroman:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macromania:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\u0102\u015E\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\u0103\u015F\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\u0162\u0163\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macthai:{type:"_sbcs",chars:"\xAB\xBB\u2026\uF88C\uF88F\uF892\uF895\uF898\uF88B\uF88E\uF891\uF894\uF897\u201C\u201D\uF899\uFFFD\u2022\uF884\uF889\uF885\uF886\uF887\uF888\uF88A\uF88D\uF890\uF893\uF896\u2018\u2019\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFEFF\u200B\u2013\u2014\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u2122\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\xAE\xA9\uFFFD\uFFFD\uFFFD\uFFFD"},macturkish:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u011E\u011F\u0130\u0131\u015E\u015F\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\uFFFD\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macukraine:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\u0490\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"},koi8r:{type:"_sbcs",chars:"\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u2553\u2554\u2555\u2556\u2557\u2558\u2559\u255A\u255B\u255C\u255D\u255E\u255F\u2560\u2561\u0401\u2562\u2563\u2564\u2565\u2566\u2567\u2568\u2569\u256A\u256B\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},koi8u:{type:"_sbcs",chars:"\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u255D\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},koi8ru:{type:"_sbcs",chars:"\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u045E\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u040E\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},koi8t:{type:"_sbcs",chars:"\u049B\u0493\u201A\u0492\u201E\u2026\u2020\u2021\uFFFD\u2030\u04B3\u2039\u04B2\u04B7\u04B6\uFFFD\u049A\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u04EF\u04EE\u0451\xA4\u04E3\xA6\xA7\uFFFD\uFFFD\uFFFD\xAB\xAC\xAD\xAE\uFFFD\xB0\xB1\xB2\u0401\uFFFD\u04E2\xB6\xB7\uFFFD\u2116\uFFFD\xBB\uFFFD\uFFFD\uFFFD\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},armscii8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\u0587\u0589)(\xBB\xAB\u2014.\u055D,-\u058A\u2026\u055C\u055B\u055E\u0531\u0561\u0532\u0562\u0533\u0563\u0534\u0564\u0535\u0565\u0536\u0566\u0537\u0567\u0538\u0568\u0539\u0569\u053A\u056A\u053B\u056B\u053C\u056C\u053D\u056D\u053E\u056E\u053F\u056F\u0540\u0570\u0541\u0571\u0542\u0572\u0543\u0573\u0544\u0574\u0545\u0575\u0546\u0576\u0547\u0577\u0548\u0578\u0549\u0579\u054A\u057A\u054B\u057B\u054C\u057C\u054D\u057D\u054E\u057E\u054F\u057F\u0550\u0580\u0551\u0581\u0552\u0582\u0553\u0583\u0554\u0584\u0555\u0585\u0556\u0586\u055A\uFFFD"},rk1048:{type:"_sbcs",chars:"\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u049A\u04BA\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u049B\u04BB\u045F\xA0\u04B0\u04B1\u04D8\xA4\u04E8\xA6\xA7\u0401\xA9\u0492\xAB\xAC\xAD\xAE\u04AE\xB0\xB1\u0406\u0456\u04E9\xB5\xB6\xB7\u0451\u2116\u0493\xBB\u04D9\u04A2\u04A3\u04AF\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},tcvn:{type:"_sbcs",chars:`\0\xDA\u1EE4\u1EEA\u1EEC\u1EEE\x07\b \v\f\r\u1EE8\u1EF0\u1EF2\u1EF6\u1EF8\xDD\u1EF4\x1B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xC0\u1EA2\xC3\xC1\u1EA0\u1EB6\u1EAC\xC8\u1EBA\u1EBC\xC9\u1EB8\u1EC6\xCC\u1EC8\u0128\xCD\u1ECA\xD2\u1ECE\xD5\xD3\u1ECC\u1ED8\u1EDC\u1EDE\u1EE0\u1EDA\u1EE2\xD9\u1EE6\u0168\xA0\u0102\xC2\xCA\xD4\u01A0\u01AF\u0110\u0103\xE2\xEA\xF4\u01A1\u01B0\u0111\u1EB0\u0300\u0309\u0303\u0301\u0323\xE0\u1EA3\xE3\xE1\u1EA1\u1EB2\u1EB1\u1EB3\u1EB5\u1EAF\u1EB4\u1EAE\u1EA6\u1EA8\u1EAA\u1EA4\u1EC0\u1EB7\u1EA7\u1EA9\u1EAB\u1EA5\u1EAD\xE8\u1EC2\u1EBB\u1EBD\xE9\u1EB9\u1EC1\u1EC3\u1EC5\u1EBF\u1EC7\xEC\u1EC9\u1EC4\u1EBE\u1ED2\u0129\xED\u1ECB\xF2\u1ED4\u1ECF\xF5\xF3\u1ECD\u1ED3\u1ED5\u1ED7\u1ED1\u1ED9\u1EDD\u1EDF\u1EE1\u1EDB\u1EE3\xF9\u1ED6\u1EE7\u0169\xFA\u1EE5\u1EEB\u1EED\u1EEF\u1EE9\u1EF1\u1EF3\u1EF7\u1EF9\xFD\u1EF5\u1ED0`},georgianacademy:{type:"_sbcs",chars:"\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},georgianps:{type:"_sbcs",chars:"\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10F1\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10F2\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10F3\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10F4\u10EF\u10F0\u10F5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},pt154:{type:"_sbcs",chars:"\u0496\u0492\u04EE\u0493\u201E\u2026\u04B6\u04AE\u04B2\u04AF\u04A0\u04E2\u04A2\u049A\u04BA\u04B8\u0497\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u04B3\u04B7\u04A1\u04E3\u04A3\u049B\u04BB\u04B9\xA0\u040E\u045E\u0408\u04E8\u0498\u04B0\xA7\u0401\xA9\u04D8\xAB\xAC\u04EF\xAE\u049C\xB0\u04B1\u0406\u0456\u0499\u04E9\xB6\xB7\u0451\u2116\u04D9\xBB\u0458\u04AA\u04AB\u049D\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},viscii:{type:"_sbcs",chars:`\0\u1EB2\u1EB4\u1EAA\x07\b \v\f\r\u1EF6\u1EF8\x1B\u1EF4 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\u1EA0\u1EAE\u1EB0\u1EB6\u1EA4\u1EA6\u1EA8\u1EAC\u1EBC\u1EB8\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EE2\u1EDA\u1EDC\u1EDE\u1ECA\u1ECE\u1ECC\u1EC8\u1EE6\u0168\u1EE4\u1EF2\xD5\u1EAF\u1EB1\u1EB7\u1EA5\u1EA7\u1EA9\u1EAD\u1EBD\u1EB9\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1ED1\u1ED3\u1ED5\u1ED7\u1EE0\u01A0\u1ED9\u1EDD\u1EDF\u1ECB\u1EF0\u1EE8\u1EEA\u1EEC\u01A1\u1EDB\u01AF\xC0\xC1\xC2\xC3\u1EA2\u0102\u1EB3\u1EB5\xC8\xC9\xCA\u1EBA\xCC\xCD\u0128\u1EF3\u0110\u1EE9\xD2\xD3\xD4\u1EA1\u1EF7\u1EEB\u1EED\xD9\xDA\u1EF9\u1EF5\xDD\u1EE1\u01B0\xE0\xE1\xE2\xE3\u1EA3\u0103\u1EEF\u1EAB\xE8\xE9\xEA\u1EBB\xEC\xED\u0129\u1EC9\u0111\u1EF1\xF2\xF3\xF4\xF5\u1ECF\u1ECD\u1EE5\xF9\xFA\u0169\u1EE7\xFD\u1EE3\u1EEE`},iso646cn:{type:"_sbcs",chars:`\0\x07\b \v\f\r\x1B !"#\xA5%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},iso646jp:{type:"_sbcs",chars:`\0\x07\b -\v\f\r\x1B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},hproman8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD"},macintosh:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},ascii:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},tis620:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"}}});var Gv=V(Vv=>{"use strict";var gs=la().Buffer;Vv._dbcs=gn;var Qt=-1,Bv=-2,Er=-10,en=-1e3,vs=new Array(256),Wi=-1;for(Tc=0;Tc<256;Tc++)vs[Tc]=Qt;var Tc;function gn(t,e){if(this.encodingName=t.encodingName,!t)throw new Error("DBCS codec is called without the data.");if(!t.table)throw new Error("Encoding '"+this.encodingName+"' has no data.");var r=t.table();this.decodeTables=[],this.decodeTables[0]=vs.slice(0),this.decodeTableSeq=[];for(var a=0;a0;t>>=8)e.push(t&255);e.length==0&&e.push(0);for(var r=this.decodeTables[0],a=e.length-1;a>0;a--){var n=r[e[a]];if(n==Qt)r[e[a]]=en-this.decodeTables.length,this.decodeTables.push(r=vs.slice(0));else if(n<=en)r=this.decodeTables[en-n];else throw new Error("Overwrite byte in "+this.encodingName+", addr: "+t.toString(16))}return r};gn.prototype._addDecodeChunk=function(t){var e=parseInt(t[0],16),r=this._getDecodeTrieNode(e);e=e&255;for(var a=1;a255)throw new Error("Incorrect chunk in "+this.encodingName+" at addr "+t[0]+": too long"+e)};gn.prototype._getEncodeBucket=function(t){var e=t>>8;return this.encodeTable[e]===void 0&&(this.encodeTable[e]=vs.slice(0)),this.encodeTable[e]};gn.prototype._setEncodeChar=function(t,e){var r=this._getEncodeBucket(t),a=t&255;r[a]<=Er?this.encodeTableSeq[Er-r[a]][Wi]=e:r[a]==Qt&&(r[a]=e)};gn.prototype._setEncodeSequence=function(t,e){var r=t[0],a=this._getEncodeBucket(r),n=r&255,s;a[n]<=Er?s=this.encodeTableSeq[Er-a[n]]:(s={},a[n]!==Qt&&(s[Wi]=a[n]),a[n]=Er-this.encodeTableSeq.length,this.encodeTableSeq.push(s));for(var i=1;i=0?this._setEncodeChar(s,i):s<=en?this._fillEncodeTable(en-s,i<<8,r):s<=Er&&this._setEncodeSequence(this.decodeTableSeq[Er-s],i))}};function kc(t,e){this.leadSurrogate=-1,this.seqObj=void 0,this.encodeTable=e.encodeTable,this.encodeTableSeq=e.encodeTableSeq,this.defaultCharSingleByte=e.defCharSB,this.gb18030=e.gb18030}kc.prototype.write=function(t){for(var e=gs.alloc(t.length*(this.gb18030?4:3)),r=this.leadSurrogate,a=this.seqObj,n=-1,s=0,i=0;;){if(n===-1){if(s==t.length)break;var o=t.charCodeAt(s++)}else{var o=n;n=-1}if(55296<=o&&o<57344)if(o<56320)if(r===-1){r=o;continue}else r=o,o=Qt;else r!==-1?(o=65536+(r-55296)*1024+(o-56320),r=-1):o=Qt;else r!==-1&&(n=o,o=Qt,r=-1);var c=Qt;if(a!==void 0&&o!=Qt){var u=a[o];if(typeof u=="object"){a=u;continue}else typeof u=="number"?c=u:u==null&&(u=a[Wi],u!==void 0&&(c=u,n=o));a=void 0}else if(o>=0){var l=this.encodeTable[o>>8];if(l!==void 0&&(c=l[o&255]),c<=Er){a=this.encodeTableSeq[Er-c];continue}if(c==Qt&&this.gb18030){var d=tp(this.gb18030.uChars,o);if(d!=-1){var c=this.gb18030.gbChars[d]+(o-this.gb18030.uChars[d]);e[i++]=129+Math.floor(c/12600),c=c%12600,e[i++]=48+Math.floor(c/1260),c=c%1260,e[i++]=129+Math.floor(c/10),c=c%10,e[i++]=48+c;continue}}}c===Qt&&(c=this.defaultCharSingleByte),c<256?e[i++]=c:c<65536?(e[i++]=c>>8,e[i++]=c&255):(e[i++]=c>>16,e[i++]=c>>8&255,e[i++]=c&255)}return this.seqObj=a,this.leadSurrogate=r,e.slice(0,i)};kc.prototype.end=function(){if(!(this.leadSurrogate===-1&&this.seqObj===void 0)){var t=gs.alloc(10),e=0;if(this.seqObj){var r=this.seqObj[Wi];r!==void 0&&(r<256?t[e++]=r:(t[e++]=r>>8,t[e++]=r&255)),this.seqObj=void 0}return this.leadSurrogate!==-1&&(t[e++]=this.defaultCharSingleByte,this.leadSurrogate=-1),t.slice(0,e)}};kc.prototype.findIdx=tp;function ep(t,e){this.nodeIdx=0,this.prevBuf=gs.alloc(0),this.decodeTables=e.decodeTables,this.decodeTableSeq=e.decodeTableSeq,this.defaultCharUnicode=e.defaultCharUnicode,this.gb18030=e.gb18030}ep.prototype.write=function(t){var e=gs.alloc(t.length*2),r=this.nodeIdx,a=this.prevBuf,n=this.prevBuf.length,s=-this.prevBuf.length,i;n>0&&(a=gs.concat([a,t.slice(0,10)]));for(var o=0,c=0;o=0?t[o]:a[o+n],i=this.decodeTables[r][u];if(!(i>=0))if(i===Qt)o=s,i=this.defaultCharUnicode.charCodeAt(0);else if(i===Bv){var l=s>=0?t.slice(s,o+1):a.slice(s+n,o+1+n),d=(l[0]-129)*12600+(l[1]-48)*1260+(l[2]-129)*10+(l[3]-48),p=tp(this.gb18030.gbChars,d);i=this.gb18030.uChars[p]+d-this.gb18030.gbChars[p]}else if(i<=en){r=en-i;continue}else if(i<=Er){for(var f=this.decodeTableSeq[Er-i],v=0;v>8;i=f[f.length-1]}else throw new Error("iconv-lite internal error: invalid decoding table value "+i+" at "+r+"/"+u);if(i>65535){i-=65536;var _=55296+Math.floor(i/1024);e[c++]=_&255,e[c++]=_>>8,i=56320+i%1024}e[c++]=i&255,e[c++]=i>>8,r=0,s=o+1}return this.nodeIdx=r,this.prevBuf=s>=0?t.slice(s):a.slice(s+n),e.slice(0,c).toString("ucs2")};ep.prototype.end=function(){for(var t="";this.prevBuf.length>0;){t+=this.defaultCharUnicode;var e=this.prevBuf.slice(1);this.prevBuf=gs.alloc(0),this.nodeIdx=0,e.length>0&&(t+=this.write(e))}return this.nodeIdx=0,t};function tp(t,e){if(t[0]>e)return-1;for(var r=0,a=t.length;r{W$.exports=[["0","\0",128],["a1","\uFF61",62],["8140","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7"],["8180","\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["81b8","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["81c8","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["81da","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["81f0","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["81fc","\u25EF"],["824f","\uFF10",9],["8260","\uFF21",25],["8281","\uFF41",25],["829f","\u3041",82],["8340","\u30A1",62],["8380","\u30E0",22],["839f","\u0391",16,"\u03A3",6],["83bf","\u03B1",16,"\u03C3",6],["8440","\u0410",5,"\u0401\u0416",25],["8470","\u0430",5,"\u0451\u0436",7],["8480","\u043E",17],["849f","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["8740","\u2460",19,"\u2160",9],["875f","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["877e","\u337B"],["8780","\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["889f","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["8940","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186"],["8980","\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["8a40","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B"],["8a80","\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["8b40","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551"],["8b80","\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["8c40","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8"],["8c80","\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["8d40","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D"],["8d80","\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["8e40","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62"],["8e80","\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["8f40","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3"],["8f80","\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["9040","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8"],["9080","\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["9140","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB"],["9180","\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["9240","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4"],["9280","\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["9340","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC"],["9380","\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["9440","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885"],["9480","\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["9540","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577"],["9580","\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["9640","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6"],["9680","\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["9740","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32"],["9780","\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["9840","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["989f","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["9940","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED"],["9980","\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["9a40","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638"],["9a80","\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["9b40","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80"],["9b80","\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["9c40","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060"],["9c80","\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["9d40","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B"],["9d80","\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["9e40","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E"],["9e80","\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["9f40","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF"],["9f80","\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["e040","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD"],["e080","\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e140","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF"],["e180","\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e240","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0"],["e280","\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e340","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37"],["e380","\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e440","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264"],["e480","\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e540","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC"],["e580","\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["e640","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7"],["e680","\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["e740","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C"],["e780","\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["e840","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599"],["e880","\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["e940","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43"],["e980","\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["ea40","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF"],["ea80","\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0\u582F\u69C7\u9059\u7464\u51DC\u7199"],["ed40","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F"],["ed80","\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["ee40","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559"],["ee80","\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["eeef","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["f040","\uE000",62],["f080","\uE03F",124],["f140","\uE0BC",62],["f180","\uE0FB",124],["f240","\uE178",62],["f280","\uE1B7",124],["f340","\uE234",62],["f380","\uE273",124],["f440","\uE2F0",62],["f480","\uE32F",124],["f540","\uE3AC",62],["f580","\uE3EB",124],["f640","\uE468",62],["f680","\uE4A7",124],["f740","\uE524",62],["f780","\uE563",124],["f840","\uE5E0",62],["f880","\uE61F",124],["f940","\uE69C"],["fa40","\u2170",9,"\u2160",9,"\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u2235\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A"],["fa80","\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F"],["fb40","\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19"],["fb80","\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9"],["fc40","\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"]]});var Wv=V((kG,K$)=>{K$.exports=[["0","\0",127],["8ea1","\uFF61",62],["a1a1","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7"],["a2a1","\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["a2ba","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["a2ca","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["a2dc","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["a2f2","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["a2fe","\u25EF"],["a3b0","\uFF10",9],["a3c1","\uFF21",25],["a3e1","\uFF41",25],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a8a1","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["ada1","\u2460",19,"\u2160",9],["adc0","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["addf","\u337B\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["b0a1","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["b1a1","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC"],["b2a1","\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["b3a1","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431"],["b4a1","\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["b5a1","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC"],["b6a1","\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["b7a1","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372"],["b8a1","\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["b9a1","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC"],["baa1","\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["bba1","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642"],["bca1","\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["bda1","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F"],["bea1","\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["bfa1","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE"],["c0a1","\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["c1a1","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E"],["c2a1","\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["c3a1","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5"],["c4a1","\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["c5a1","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230"],["c6a1","\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["c7a1","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6"],["c8a1","\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["c9a1","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D"],["caa1","\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["cba1","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80"],["cca1","\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["cda1","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483"],["cea1","\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["cfa1","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["d0a1","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["d1a1","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8"],["d2a1","\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["d3a1","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709"],["d4a1","\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["d5a1","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53"],["d6a1","\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["d7a1","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A"],["d8a1","\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["d9a1","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC"],["daa1","\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["dba1","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD"],["dca1","\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["dda1","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE"],["dea1","\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["dfa1","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC"],["e0a1","\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e1a1","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670"],["e2a1","\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e3a1","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50"],["e4a1","\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e5a1","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A"],["e6a1","\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e7a1","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9"],["e8a1","\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e9a1","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759"],["eaa1","\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["eba1","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B"],["eca1","\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["eda1","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8"],["eea1","\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["efa1","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E"],["f0a1","\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["f1a1","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7"],["f2a1","\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["f3a1","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0"],["f4a1","\u582F\u69C7\u9059\u7464\u51DC\u7199"],["f9a1","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7"],["faa1","\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["fba1","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA"],["fca1","\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["fcf1","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["8fa2af","\u02D8\u02C7\xB8\u02D9\u02DD\xAF\u02DB\u02DA\uFF5E\u0384\u0385"],["8fa2c2","\xA1\xA6\xBF"],["8fa2eb","\xBA\xAA\xA9\xAE\u2122\xA4\u2116"],["8fa6e1","\u0386\u0388\u0389\u038A\u03AA"],["8fa6e7","\u038C"],["8fa6e9","\u038E\u03AB"],["8fa6ec","\u038F"],["8fa6f1","\u03AC\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03C2\u03CD\u03CB\u03B0\u03CE"],["8fa7c2","\u0402",10,"\u040E\u040F"],["8fa7f2","\u0452",10,"\u045E\u045F"],["8fa9a1","\xC6\u0110"],["8fa9a4","\u0126"],["8fa9a6","\u0132"],["8fa9a8","\u0141\u013F"],["8fa9ab","\u014A\xD8\u0152"],["8fa9af","\u0166\xDE"],["8fa9c1","\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014B\xF8\u0153\xDF\u0167\xFE"],["8faaa1","\xC1\xC0\xC4\xC2\u0102\u01CD\u0100\u0104\xC5\xC3\u0106\u0108\u010C\xC7\u010A\u010E\xC9\xC8\xCB\xCA\u011A\u0116\u0112\u0118"],["8faaba","\u011C\u011E\u0122\u0120\u0124\xCD\xCC\xCF\xCE\u01CF\u0130\u012A\u012E\u0128\u0134\u0136\u0139\u013D\u013B\u0143\u0147\u0145\xD1\xD3\xD2\xD6\xD4\u01D1\u0150\u014C\xD5\u0154\u0158\u0156\u015A\u015C\u0160\u015E\u0164\u0162\xDA\xD9\xDC\xDB\u016C\u01D3\u0170\u016A\u0172\u016E\u0168\u01D7\u01DB\u01D9\u01D5\u0174\xDD\u0178\u0176\u0179\u017D\u017B"],["8faba1","\xE1\xE0\xE4\xE2\u0103\u01CE\u0101\u0105\xE5\xE3\u0107\u0109\u010D\xE7\u010B\u010F\xE9\xE8\xEB\xEA\u011B\u0117\u0113\u0119\u01F5\u011D\u011F"],["8fabbd","\u0121\u0125\xED\xEC\xEF\xEE\u01D0"],["8fabc5","\u012B\u012F\u0129\u0135\u0137\u013A\u013E\u013C\u0144\u0148\u0146\xF1\xF3\xF2\xF6\xF4\u01D2\u0151\u014D\xF5\u0155\u0159\u0157\u015B\u015D\u0161\u015F\u0165\u0163\xFA\xF9\xFC\xFB\u016D\u01D4\u0171\u016B\u0173\u016F\u0169\u01D8\u01DC\u01DA\u01D6\u0175\xFD\xFF\u0177\u017A\u017E\u017C"],["8fb0a1","\u4E02\u4E04\u4E05\u4E0C\u4E12\u4E1F\u4E23\u4E24\u4E28\u4E2B\u4E2E\u4E2F\u4E30\u4E35\u4E40\u4E41\u4E44\u4E47\u4E51\u4E5A\u4E5C\u4E63\u4E68\u4E69\u4E74\u4E75\u4E79\u4E7F\u4E8D\u4E96\u4E97\u4E9D\u4EAF\u4EB9\u4EC3\u4ED0\u4EDA\u4EDB\u4EE0\u4EE1\u4EE2\u4EE8\u4EEF\u4EF1\u4EF3\u4EF5\u4EFD\u4EFE\u4EFF\u4F00\u4F02\u4F03\u4F08\u4F0B\u4F0C\u4F12\u4F15\u4F16\u4F17\u4F19\u4F2E\u4F31\u4F60\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E\u4F40\u4F42\u4F48\u4F49\u4F4B\u4F4C\u4F52\u4F54\u4F56\u4F58\u4F5F\u4F63\u4F6A\u4F6C\u4F6E\u4F71\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F7E\u4F81\u4F82\u4F84"],["8fb1a1","\u4F85\u4F89\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F94\u4F97\u4F99\u4F9A\u4F9E\u4F9F\u4FB2\u4FB7\u4FB9\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0\u4FC1\u4FC5\u4FC6\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FCF\u4FD2\u4FDC\u4FE0\u4FE2\u4FF0\u4FF2\u4FFC\u4FFD\u4FFF\u5000\u5001\u5004\u5007\u500A\u500C\u500E\u5010\u5013\u5017\u5018\u501B\u501C\u501D\u501E\u5022\u5027\u502E\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504A\u504C\u504E\u5051\u5052\u5053\u5057\u5059\u505F\u5060\u5062\u5063\u5066\u5067\u506A\u506D\u5070\u5071\u503B\u5081\u5083\u5084\u5086\u508A\u508E\u508F\u5090"],["8fb2a1","\u5092\u5093\u5094\u5096\u509B\u509C\u509E",4,"\u50AA\u50AF\u50B0\u50B9\u50BA\u50BD\u50C0\u50C3\u50C4\u50C7\u50CC\u50CE\u50D0\u50D3\u50D4\u50D8\u50DC\u50DD\u50DF\u50E2\u50E4\u50E6\u50E8\u50E9\u50EF\u50F1\u50F6\u50FA\u50FE\u5103\u5106\u5107\u5108\u510B\u510C\u510D\u510E\u50F2\u5110\u5117\u5119\u511B\u511C\u511D\u511E\u5123\u5127\u5128\u512C\u512D\u512F\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514A\u514F\u5153\u5155\u5157\u5158\u515F\u5164\u5166\u517E\u5183\u5184\u518B\u518E\u5198\u519D\u51A1\u51A3\u51AD\u51B8\u51BA\u51BC\u51BE\u51BF\u51C2"],["8fb3a1","\u51C8\u51CF\u51D1\u51D2\u51D3\u51D5\u51D8\u51DE\u51E2\u51E5\u51EE\u51F2\u51F3\u51F4\u51F7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523C\u5245\u5249\u5255\u5257\u5258\u525A\u525C\u525F\u5260\u5261\u5266\u526E\u5277\u5278\u5279\u5280\u5282\u5285\u528A\u528C\u5293\u5295\u5296\u5297\u5298\u529A\u529C\u52A4\u52A5\u52A6\u52A7\u52AF\u52B0\u52B6\u52B7\u52B8\u52BA\u52BB\u52BD\u52C0\u52C4\u52C6\u52C8\u52CC\u52CF\u52D1\u52D4\u52D6\u52DB\u52DC\u52E1\u52E5\u52E8\u52E9\u52EA\u52EC\u52F0\u52F1\u52F4\u52F6\u52F7\u5300\u5303\u530A\u530B"],["8fb4a1","\u530C\u5311\u5313\u5318\u531B\u531C\u531E\u531F\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u5330\u5332\u5335\u533C\u533D\u533E\u5342\u534C\u534B\u5359\u535B\u5361\u5363\u5365\u536C\u536D\u5372\u5379\u537E\u5383\u5387\u5388\u538E\u5393\u5394\u5399\u539D\u53A1\u53A4\u53AA\u53AB\u53AF\u53B2\u53B4\u53B5\u53B7\u53B8\u53BA\u53BD\u53C0\u53C5\u53CF\u53D2\u53D3\u53D5\u53DA\u53DD\u53DE\u53E0\u53E6\u53E7\u53F5\u5402\u5413\u541A\u5421\u5427\u5428\u542A\u542F\u5431\u5434\u5435\u5443\u5444\u5447\u544D\u544F\u545E\u5462\u5464\u5466\u5467\u5469\u546B\u546D\u546E\u5474\u547F"],["8fb5a1","\u5481\u5483\u5485\u5488\u5489\u548D\u5491\u5495\u5496\u549C\u549F\u54A1\u54A6\u54A7\u54A9\u54AA\u54AD\u54AE\u54B1\u54B7\u54B9\u54BA\u54BB\u54BF\u54C6\u54CA\u54CD\u54CE\u54E0\u54EA\u54EC\u54EF\u54F6\u54FC\u54FE\u54FF\u5500\u5501\u5505\u5508\u5509\u550C\u550D\u550E\u5515\u552A\u552B\u5532\u5535\u5536\u553B\u553C\u553D\u5541\u5547\u5549\u554A\u554D\u5550\u5551\u5558\u555A\u555B\u555E\u5560\u5561\u5564\u5566\u557F\u5581\u5582\u5586\u5588\u558E\u558F\u5591\u5592\u5593\u5594\u5597\u55A3\u55A4\u55AD\u55B2\u55BF\u55C1\u55C3\u55C6\u55C9\u55CB\u55CC\u55CE\u55D1\u55D2"],["8fb6a1","\u55D3\u55D7\u55D8\u55DB\u55DE\u55E2\u55E9\u55F6\u55FF\u5605\u5608\u560A\u560D",5,"\u5619\u562C\u5630\u5633\u5635\u5637\u5639\u563B\u563C\u563D\u563F\u5640\u5641\u5643\u5644\u5646\u5649\u564B\u564D\u564F\u5654\u565E\u5660\u5661\u5662\u5663\u5666\u5669\u566D\u566F\u5671\u5672\u5675\u5684\u5685\u5688\u568B\u568C\u5695\u5699\u569A\u569D\u569E\u569F\u56A6\u56A7\u56A8\u56A9\u56AB\u56AC\u56AD\u56B1\u56B3\u56B7\u56BE\u56C5\u56C9\u56CA\u56CB\u56CF\u56D0\u56CC\u56CD\u56D9\u56DC\u56DD\u56DF\u56E1\u56E4",4,"\u56F1\u56EB\u56ED"],["8fb7a1","\u56F6\u56F7\u5701\u5702\u5707\u570A\u570C\u5711\u5715\u571A\u571B\u571D\u5720\u5722\u5723\u5724\u5725\u5729\u572A\u572C\u572E\u572F\u5733\u5734\u573D\u573E\u573F\u5745\u5746\u574C\u574D\u5752\u5762\u5765\u5767\u5768\u576B\u576D",4,"\u5773\u5774\u5775\u5777\u5779\u577A\u577B\u577C\u577E\u5781\u5783\u578C\u5794\u5797\u5799\u579A\u579C\u579D\u579E\u579F\u57A1\u5795\u57A7\u57A8\u57A9\u57AC\u57B8\u57BD\u57C7\u57C8\u57CC\u57CF\u57D5\u57DD\u57DE\u57E4\u57E6\u57E7\u57E9\u57ED\u57F0\u57F5\u57F6\u57F8\u57FD\u57FE\u57FF\u5803\u5804\u5808\u5809\u57E1"],["8fb8a1","\u580C\u580D\u581B\u581E\u581F\u5820\u5826\u5827\u582D\u5832\u5839\u583F\u5849\u584C\u584D\u584F\u5850\u5855\u585F\u5861\u5864\u5867\u5868\u5878\u587C\u587F\u5880\u5881\u5887\u5888\u5889\u588A\u588C\u588D\u588F\u5890\u5894\u5896\u589D\u58A0\u58A1\u58A2\u58A6\u58A9\u58B1\u58B2\u58C4\u58BC\u58C2\u58C8\u58CD\u58CE\u58D0\u58D2\u58D4\u58D6\u58DA\u58DD\u58E1\u58E2\u58E9\u58F3\u5905\u5906\u590B\u590C\u5912\u5913\u5914\u8641\u591D\u5921\u5923\u5924\u5928\u592F\u5930\u5933\u5935\u5936\u593F\u5943\u5946\u5952\u5953\u5959\u595B\u595D\u595E\u595F\u5961\u5963\u596B\u596D"],["8fb9a1","\u596F\u5972\u5975\u5976\u5979\u597B\u597C\u598B\u598C\u598E\u5992\u5995\u5997\u599F\u59A4\u59A7\u59AD\u59AE\u59AF\u59B0\u59B3\u59B7\u59BA\u59BC\u59C1\u59C3\u59C4\u59C8\u59CA\u59CD\u59D2\u59DD\u59DE\u59DF\u59E3\u59E4\u59E7\u59EE\u59EF\u59F1\u59F2\u59F4\u59F7\u5A00\u5A04\u5A0C\u5A0D\u5A0E\u5A12\u5A13\u5A1E\u5A23\u5A24\u5A27\u5A28\u5A2A\u5A2D\u5A30\u5A44\u5A45\u5A47\u5A48\u5A4C\u5A50\u5A55\u5A5E\u5A63\u5A65\u5A67\u5A6D\u5A77\u5A7A\u5A7B\u5A7E\u5A8B\u5A90\u5A93\u5A96\u5A99\u5A9C\u5A9E\u5A9F\u5AA0\u5AA2\u5AA7\u5AAC\u5AB1\u5AB2\u5AB3\u5AB5\u5AB8\u5ABA\u5ABB\u5ABF"],["8fbaa1","\u5AC4\u5AC6\u5AC8\u5ACF\u5ADA\u5ADC\u5AE0\u5AE5\u5AEA\u5AEE\u5AF5\u5AF6\u5AFD\u5B00\u5B01\u5B08\u5B17\u5B34\u5B19\u5B1B\u5B1D\u5B21\u5B25\u5B2D\u5B38\u5B41\u5B4B\u5B4C\u5B52\u5B56\u5B5E\u5B68\u5B6E\u5B6F\u5B7C\u5B7D\u5B7E\u5B7F\u5B81\u5B84\u5B86\u5B8A\u5B8E\u5B90\u5B91\u5B93\u5B94\u5B96\u5BA8\u5BA9\u5BAC\u5BAD\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBC\u5BC0\u5BC1\u5BCD\u5BCF\u5BD6",4,"\u5BE0\u5BEF\u5BF1\u5BF4\u5BFD\u5C0C\u5C17\u5C1E\u5C1F\u5C23\u5C26\u5C29\u5C2B\u5C2C\u5C2E\u5C30\u5C32\u5C35\u5C36\u5C59\u5C5A\u5C5C\u5C62\u5C63\u5C67\u5C68\u5C69"],["8fbba1","\u5C6D\u5C70\u5C74\u5C75\u5C7A\u5C7B\u5C7C\u5C7D\u5C87\u5C88\u5C8A\u5C8F\u5C92\u5C9D\u5C9F\u5CA0\u5CA2\u5CA3\u5CA6\u5CAA\u5CB2\u5CB4\u5CB5\u5CBA\u5CC9\u5CCB\u5CD2\u5CDD\u5CD7\u5CEE\u5CF1\u5CF2\u5CF4\u5D01\u5D06\u5D0D\u5D12\u5D2B\u5D23\u5D24\u5D26\u5D27\u5D31\u5D34\u5D39\u5D3D\u5D3F\u5D42\u5D43\u5D46\u5D48\u5D55\u5D51\u5D59\u5D4A\u5D5F\u5D60\u5D61\u5D62\u5D64\u5D6A\u5D6D\u5D70\u5D79\u5D7A\u5D7E\u5D7F\u5D81\u5D83\u5D88\u5D8A\u5D92\u5D93\u5D94\u5D95\u5D99\u5D9B\u5D9F\u5DA0\u5DA7\u5DAB\u5DB0\u5DB4\u5DB8\u5DB9\u5DC3\u5DC7\u5DCB\u5DD0\u5DCE\u5DD8\u5DD9\u5DE0\u5DE4"],["8fbca1","\u5DE9\u5DF8\u5DF9\u5E00\u5E07\u5E0D\u5E12\u5E14\u5E15\u5E18\u5E1F\u5E20\u5E2E\u5E28\u5E32\u5E35\u5E3E\u5E4B\u5E50\u5E49\u5E51\u5E56\u5E58\u5E5B\u5E5C\u5E5E\u5E68\u5E6A",4,"\u5E70\u5E80\u5E8B\u5E8E\u5EA2\u5EA4\u5EA5\u5EA8\u5EAA\u5EAC\u5EB1\u5EB3\u5EBD\u5EBE\u5EBF\u5EC6\u5ECC\u5ECB\u5ECE\u5ED1\u5ED2\u5ED4\u5ED5\u5EDC\u5EDE\u5EE5\u5EEB\u5F02\u5F06\u5F07\u5F08\u5F0E\u5F19\u5F1C\u5F1D\u5F21\u5F22\u5F23\u5F24\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F34\u5F36\u5F3B\u5F3D\u5F3F\u5F40\u5F44\u5F45\u5F47\u5F4D\u5F50\u5F54\u5F58\u5F5B\u5F60\u5F63\u5F64\u5F67"],["8fbda1","\u5F6F\u5F72\u5F74\u5F75\u5F78\u5F7A\u5F7D\u5F7E\u5F89\u5F8D\u5F8F\u5F96\u5F9C\u5F9D\u5FA2\u5FA7\u5FAB\u5FA4\u5FAC\u5FAF\u5FB0\u5FB1\u5FB8\u5FC4\u5FC7\u5FC8\u5FC9\u5FCB\u5FD0",4,"\u5FDE\u5FE1\u5FE2\u5FE8\u5FE9\u5FEA\u5FEC\u5FED\u5FEE\u5FEF\u5FF2\u5FF3\u5FF6\u5FFA\u5FFC\u6007\u600A\u600D\u6013\u6014\u6017\u6018\u601A\u601F\u6024\u602D\u6033\u6035\u6040\u6047\u6048\u6049\u604C\u6051\u6054\u6056\u6057\u605D\u6061\u6067\u6071\u607E\u607F\u6082\u6086\u6088\u608A\u608E\u6091\u6093\u6095\u6098\u609D\u609E\u60A2\u60A4\u60A5\u60A8\u60B0\u60B1\u60B7"],["8fbea1","\u60BB\u60BE\u60C2\u60C4\u60C8\u60C9\u60CA\u60CB\u60CE\u60CF\u60D4\u60D5\u60D9\u60DB\u60DD\u60DE\u60E2\u60E5\u60F2\u60F5\u60F8\u60FC\u60FD\u6102\u6107\u610A\u610C\u6110",4,"\u6116\u6117\u6119\u611C\u611E\u6122\u612A\u612B\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615E\u6160\u616C\u6172\u6178\u617B\u617C\u617F\u6180\u6181\u6183\u6184\u618B\u618D\u6192\u6193\u6197\u6198\u619C\u619D\u619F\u61A0\u61A5\u61A8\u61AA\u61AD\u61B8\u61B9\u61BC\u61C0\u61C1\u61C2\u61CE\u61CF\u61D5\u61DC\u61DD\u61DE\u61DF\u61E1\u61E2\u61E7\u61E9\u61E5"],["8fbfa1","\u61EC\u61ED\u61EF\u6201\u6203\u6204\u6207\u6213\u6215\u621C\u6220\u6222\u6223\u6227\u6229\u622B\u6239\u623D\u6242\u6243\u6244\u6246\u624C\u6250\u6251\u6252\u6254\u6256\u625A\u625C\u6264\u626D\u626F\u6273\u627A\u627D\u628D\u628E\u628F\u6290\u62A6\u62A8\u62B3\u62B6\u62B7\u62BA\u62BE\u62BF\u62C4\u62CE\u62D5\u62D6\u62DA\u62EA\u62F2\u62F4\u62FC\u62FD\u6303\u6304\u630A\u630B\u630D\u6310\u6313\u6316\u6318\u6329\u632A\u632D\u6335\u6336\u6339\u633C\u6341\u6342\u6343\u6344\u6346\u634A\u634B\u634E\u6352\u6353\u6354\u6358\u635B\u6365\u6366\u636C\u636D\u6371\u6374\u6375"],["8fc0a1","\u6378\u637C\u637D\u637F\u6382\u6384\u6387\u638A\u6390\u6394\u6395\u6399\u639A\u639E\u63A4\u63A6\u63AD\u63AE\u63AF\u63BD\u63C1\u63C5\u63C8\u63CE\u63D1\u63D3\u63D4\u63D5\u63DC\u63E0\u63E5\u63EA\u63EC\u63F2\u63F3\u63F5\u63F8\u63F9\u6409\u640A\u6410\u6412\u6414\u6418\u641E\u6420\u6422\u6424\u6425\u6429\u642A\u642F\u6430\u6435\u643D\u643F\u644B\u644F\u6451\u6452\u6453\u6454\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6463\u646D\u6473\u6474\u647B\u647D\u6485\u6487\u648F\u6490\u6491\u6498\u6499\u649B\u649D\u649F\u64A1\u64A3\u64A6\u64A8\u64AC\u64B3\u64BD\u64BE\u64BF"],["8fc1a1","\u64C4\u64C9\u64CA\u64CB\u64CC\u64CE\u64D0\u64D1\u64D5\u64D7\u64E4\u64E5\u64E9\u64EA\u64ED\u64F0\u64F5\u64F7\u64FB\u64FF\u6501\u6504\u6508\u6509\u650A\u650F\u6513\u6514\u6516\u6519\u651B\u651E\u651F\u6522\u6526\u6529\u652E\u6531\u653A\u653C\u653D\u6543\u6547\u6549\u6550\u6552\u6554\u655F\u6560\u6567\u656B\u657A\u657D\u6581\u6585\u658A\u6592\u6595\u6598\u659D\u65A0\u65A3\u65A6\u65AE\u65B2\u65B3\u65B4\u65BF\u65C2\u65C8\u65C9\u65CE\u65D0\u65D4\u65D6\u65D8\u65DF\u65F0\u65F2\u65F4\u65F5\u65F9\u65FE\u65FF\u6600\u6604\u6608\u6609\u660D\u6611\u6612\u6615\u6616\u661D"],["8fc2a1","\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664A\u664C\u6651\u664E\u6657\u6658\u6659\u665B\u665C\u6660\u6661\u66FB\u666A\u666B\u666C\u667E\u6673\u6675\u667F\u6677\u6678\u6679\u667B\u6680\u667C\u668B\u668C\u668D\u6690\u6692\u6699\u669A\u669B\u669C\u669F\u66A0\u66A4\u66AD\u66B1\u66B2\u66B5\u66BB\u66BF\u66C0\u66C2\u66C3\u66C8\u66CC\u66CE\u66CF\u66D4\u66DB\u66DF\u66E8\u66EB\u66EC\u66EE\u66FA\u6705\u6707\u670E\u6713\u6719\u671C\u6720\u6722\u6733\u673E\u6745\u6747\u6748\u674C\u6754\u6755\u675D"],["8fc3a1","\u6766\u676C\u676E\u6774\u6776\u677B\u6781\u6784\u678E\u678F\u6791\u6793\u6796\u6798\u6799\u679B\u67B0\u67B1\u67B2\u67B5\u67BB\u67BC\u67BD\u67F9\u67C0\u67C2\u67C3\u67C5\u67C8\u67C9\u67D2\u67D7\u67D9\u67DC\u67E1\u67E6\u67F0\u67F2\u67F6\u67F7\u6852\u6814\u6819\u681D\u681F\u6828\u6827\u682C\u682D\u682F\u6830\u6831\u6833\u683B\u683F\u6844\u6845\u684A\u684C\u6855\u6857\u6858\u685B\u686B\u686E",4,"\u6875\u6879\u687A\u687B\u687C\u6882\u6884\u6886\u6888\u6896\u6898\u689A\u689C\u68A1\u68A3\u68A5\u68A9\u68AA\u68AE\u68B2\u68BB\u68C5\u68C8\u68CC\u68CF"],["8fc4a1","\u68D0\u68D1\u68D3\u68D6\u68D9\u68DC\u68DD\u68E5\u68E8\u68EA\u68EB\u68EC\u68ED\u68F0\u68F1\u68F5\u68F6\u68FB\u68FC\u68FD\u6906\u6909\u690A\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693B\u6942\u6945\u6949\u694E\u6957\u695B\u6963\u6964\u6965\u6966\u6968\u6969\u696C\u6970\u6971\u6972\u697A\u697B\u697F\u6980\u698D\u6992\u6996\u6998\u69A1\u69A5\u69A6\u69A8\u69AB\u69AD\u69AF\u69B7\u69B8\u69BA\u69BC\u69C5\u69C8\u69D1\u69D6\u69D7\u69E2\u69E5\u69EE\u69EF\u69F1\u69F3\u69F5\u69FE\u6A00\u6A01\u6A03\u6A0F\u6A11\u6A15\u6A1A\u6A1D\u6A20\u6A24\u6A28\u6A30\u6A32"],["8fc5a1","\u6A34\u6A37\u6A3B\u6A3E\u6A3F\u6A45\u6A46\u6A49\u6A4A\u6A4E\u6A50\u6A51\u6A52\u6A55\u6A56\u6A5B\u6A64\u6A67\u6A6A\u6A71\u6A73\u6A7E\u6A81\u6A83\u6A86\u6A87\u6A89\u6A8B\u6A91\u6A9B\u6A9D\u6A9E\u6A9F\u6AA5\u6AAB\u6AAF\u6AB0\u6AB1\u6AB4\u6ABD\u6ABE\u6ABF\u6AC6\u6AC9\u6AC8\u6ACC\u6AD0\u6AD4\u6AD5\u6AD6\u6ADC\u6ADD\u6AE4\u6AE7\u6AEC\u6AF0\u6AF1\u6AF2\u6AFC\u6AFD\u6B02\u6B03\u6B06\u6B07\u6B09\u6B0F\u6B10\u6B11\u6B17\u6B1B\u6B1E\u6B24\u6B28\u6B2B\u6B2C\u6B2F\u6B35\u6B36\u6B3B\u6B3F\u6B46\u6B4A\u6B4D\u6B52\u6B56\u6B58\u6B5D\u6B60\u6B67\u6B6B\u6B6E\u6B70\u6B75\u6B7D"],["8fc6a1","\u6B7E\u6B82\u6B85\u6B97\u6B9B\u6B9F\u6BA0\u6BA2\u6BA3\u6BA8\u6BA9\u6BAC\u6BAD\u6BAE\u6BB0\u6BB8\u6BB9\u6BBD\u6BBE\u6BC3\u6BC4\u6BC9\u6BCC\u6BD6\u6BDA\u6BE1\u6BE3\u6BE6\u6BE7\u6BEE\u6BF1\u6BF7\u6BF9\u6BFF\u6C02\u6C04\u6C05\u6C09\u6C0D\u6C0E\u6C10\u6C12\u6C19\u6C1F\u6C26\u6C27\u6C28\u6C2C\u6C2E\u6C33\u6C35\u6C36\u6C3A\u6C3B\u6C3F\u6C4A\u6C4B\u6C4D\u6C4F\u6C52\u6C54\u6C59\u6C5B\u6C5C\u6C6B\u6C6D\u6C6F\u6C74\u6C76\u6C78\u6C79\u6C7B\u6C85\u6C86\u6C87\u6C89\u6C94\u6C95\u6C97\u6C98\u6C9C\u6C9F\u6CB0\u6CB2\u6CB4\u6CC2\u6CC6\u6CCD\u6CCF\u6CD0\u6CD1\u6CD2\u6CD4\u6CD6"],["8fc7a1","\u6CDA\u6CDC\u6CE0\u6CE7\u6CE9\u6CEB\u6CEC\u6CEE\u6CF2\u6CF4\u6D04\u6D07\u6D0A\u6D0E\u6D0F\u6D11\u6D13\u6D1A\u6D26\u6D27\u6D28\u6C67\u6D2E\u6D2F\u6D31\u6D39\u6D3C\u6D3F\u6D57\u6D5E\u6D5F\u6D61\u6D65\u6D67\u6D6F\u6D70\u6D7C\u6D82\u6D87\u6D91\u6D92\u6D94\u6D96\u6D97\u6D98\u6DAA\u6DAC\u6DB4\u6DB7\u6DB9\u6DBD\u6DBF\u6DC4\u6DC8\u6DCA\u6DCE\u6DCF\u6DD6\u6DDB\u6DDD\u6DDF\u6DE0\u6DE2\u6DE5\u6DE9\u6DEF\u6DF0\u6DF4\u6DF6\u6DFC\u6E00\u6E04\u6E1E\u6E22\u6E27\u6E32\u6E36\u6E39\u6E3B\u6E3C\u6E44\u6E45\u6E48\u6E49\u6E4B\u6E4F\u6E51\u6E52\u6E53\u6E54\u6E57\u6E5C\u6E5D\u6E5E"],["8fc8a1","\u6E62\u6E63\u6E68\u6E73\u6E7B\u6E7D\u6E8D\u6E93\u6E99\u6EA0\u6EA7\u6EAD\u6EAE\u6EB1\u6EB3\u6EBB\u6EBF\u6EC0\u6EC1\u6EC3\u6EC7\u6EC8\u6ECA\u6ECD\u6ECE\u6ECF\u6EEB\u6EED\u6EEE\u6EF9\u6EFB\u6EFD\u6F04\u6F08\u6F0A\u6F0C\u6F0D\u6F16\u6F18\u6F1A\u6F1B\u6F26\u6F29\u6F2A\u6F2F\u6F30\u6F33\u6F36\u6F3B\u6F3C\u6F2D\u6F4F\u6F51\u6F52\u6F53\u6F57\u6F59\u6F5A\u6F5D\u6F5E\u6F61\u6F62\u6F68\u6F6C\u6F7D\u6F7E\u6F83\u6F87\u6F88\u6F8B\u6F8C\u6F8D\u6F90\u6F92\u6F93\u6F94\u6F96\u6F9A\u6F9F\u6FA0\u6FA5\u6FA6\u6FA7\u6FA8\u6FAE\u6FAF\u6FB0\u6FB5\u6FB6\u6FBC\u6FC5\u6FC7\u6FC8\u6FCA"],["8fc9a1","\u6FDA\u6FDE\u6FE8\u6FE9\u6FF0\u6FF5\u6FF9\u6FFC\u6FFD\u7000\u7005\u7006\u7007\u700D\u7017\u7020\u7023\u702F\u7034\u7037\u7039\u703C\u7043\u7044\u7048\u7049\u704A\u704B\u7054\u7055\u705D\u705E\u704E\u7064\u7065\u706C\u706E\u7075\u7076\u707E\u7081\u7085\u7086\u7094",4,"\u709B\u70A4\u70AB\u70B0\u70B1\u70B4\u70B7\u70CA\u70D1\u70D3\u70D4\u70D5\u70D6\u70D8\u70DC\u70E4\u70FA\u7103",4,"\u710B\u710C\u710F\u711E\u7120\u712B\u712D\u712F\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714A\u714B\u7150\u7152\u7157\u715A\u715C\u715E\u7160"],["8fcaa1","\u7168\u7179\u7180\u7185\u7187\u718C\u7192\u719A\u719B\u71A0\u71A2\u71AF\u71B0\u71B2\u71B3\u71BA\u71BF\u71C0\u71C1\u71C4\u71CB\u71CC\u71D3\u71D6\u71D9\u71DA\u71DC\u71F8\u71FE\u7200\u7207\u7208\u7209\u7213\u7217\u721A\u721D\u721F\u7224\u722B\u722F\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724E\u724F\u7250\u7253\u7255\u7256\u725A\u725C\u725E\u7260\u7263\u7268\u726B\u726E\u726F\u7271\u7277\u7278\u727B\u727C\u727F\u7284\u7289\u728D\u728E\u7293\u729B\u72A8\u72AD\u72AE\u72B1\u72B4\u72BE\u72C1\u72C7\u72C9\u72CC\u72D5\u72D6\u72D8\u72DF\u72E5\u72F3\u72F4\u72FA\u72FB"],["8fcba1","\u72FE\u7302\u7304\u7305\u7307\u730B\u730D\u7312\u7313\u7318\u7319\u731E\u7322\u7324\u7327\u7328\u732C\u7331\u7332\u7335\u733A\u733B\u733D\u7343\u734D\u7350\u7352\u7356\u7358\u735D\u735E\u735F\u7360\u7366\u7367\u7369\u736B\u736C\u736E\u736F\u7371\u7377\u7379\u737C\u7380\u7381\u7383\u7385\u7386\u738E\u7390\u7393\u7395\u7397\u7398\u739C\u739E\u739F\u73A0\u73A2\u73A5\u73A6\u73AA\u73AB\u73AD\u73B5\u73B7\u73B9\u73BC\u73BD\u73BF\u73C5\u73C6\u73C9\u73CB\u73CC\u73CF\u73D2\u73D3\u73D6\u73D9\u73DD\u73E1\u73E3\u73E6\u73E7\u73E9\u73F4\u73F5\u73F7\u73F9\u73FA\u73FB\u73FD"],["8fcca1","\u73FF\u7400\u7401\u7404\u7407\u740A\u7411\u741A\u741B\u7424\u7426\u7428",9,"\u7439\u7440\u7443\u7444\u7446\u7447\u744B\u744D\u7451\u7452\u7457\u745D\u7462\u7466\u7467\u7468\u746B\u746D\u746E\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748F\u7490\u7491\u7492\u7498\u7499\u749A\u749C\u749F\u74A0\u74A1\u74A3\u74A6\u74A8\u74A9\u74AA\u74AB\u74AE\u74AF\u74B1\u74B2\u74B5\u74B9\u74BB\u74BF\u74C8\u74C9\u74CC\u74D0\u74D3\u74D8\u74DA\u74DB\u74DE\u74DF\u74E4\u74E8\u74EA\u74EB\u74EF\u74F4\u74FA\u74FB\u74FC\u74FF\u7506"],["8fcda1","\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752A\u752F\u7536\u7539\u753D\u753E\u753F\u7540\u7543\u7547\u7548\u754E\u7550\u7552\u7557\u755E\u755F\u7561\u756F\u7571\u7579",5,"\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759C\u75A2\u75A4\u75B4\u75BA\u75BF\u75C0\u75C1\u75C4\u75C6\u75CC\u75CE\u75CF\u75D7\u75DC\u75DF\u75E0\u75E1\u75E4\u75E7\u75EC\u75EE\u75EF\u75F1\u75F9\u7600\u7602\u7603\u7604\u7607\u7608\u760A\u760C\u760F\u7612\u7613\u7615\u7616\u7619\u761B\u761C\u761D\u761E\u7623\u7625\u7626\u7629\u762D\u7632\u7633\u7635\u7638\u7639"],["8fcea1","\u763A\u763C\u764A\u7640\u7641\u7643\u7644\u7645\u7649\u764B\u7655\u7659\u765F\u7664\u7665\u766D\u766E\u766F\u7671\u7674\u7681\u7685\u768C\u768D\u7695\u769B\u769C\u769D\u769F\u76A0\u76A2",6,"\u76AA\u76AD\u76BD\u76C1\u76C5\u76C9\u76CB\u76CC\u76CE\u76D4\u76D9\u76E0\u76E6\u76E8\u76EC\u76F0\u76F1\u76F6\u76F9\u76FC\u7700\u7706\u770A\u770E\u7712\u7714\u7715\u7717\u7719\u771A\u771C\u7722\u7728\u772D\u772E\u772F\u7734\u7735\u7736\u7739\u773D\u773E\u7742\u7745\u7746\u774A\u774D\u774E\u774F\u7752\u7756\u7757\u775C\u775E\u775F\u7760\u7762"],["8fcfa1","\u7764\u7767\u776A\u776C\u7770\u7772\u7773\u7774\u777A\u777D\u7780\u7784\u778C\u778D\u7794\u7795\u7796\u779A\u779F\u77A2\u77A7\u77AA\u77AE\u77AF\u77B1\u77B5\u77BE\u77C3\u77C9\u77D1\u77D2\u77D5\u77D9\u77DE\u77DF\u77E0\u77E4\u77E6\u77EA\u77EC\u77F0\u77F1\u77F4\u77F8\u77FB\u7805\u7806\u7809\u780D\u780E\u7811\u781D\u7821\u7822\u7823\u782D\u782E\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784C\u784E\u7852\u785C\u785E\u7860\u7861\u7863\u7864\u7868\u786A\u786E\u787A\u787E\u788A\u788F\u7894\u7898\u78A1\u789D\u789E\u789F\u78A4\u78A8\u78AC\u78AD\u78B0\u78B1\u78B2\u78B3"],["8fd0a1","\u78BB\u78BD\u78BF\u78C7\u78C8\u78C9\u78CC\u78CE\u78D2\u78D3\u78D5\u78D6\u78E4\u78DB\u78DF\u78E0\u78E1\u78E6\u78EA\u78F2\u78F3\u7900\u78F6\u78F7\u78FA\u78FB\u78FF\u7906\u790C\u7910\u791A\u791C\u791E\u791F\u7920\u7925\u7927\u7929\u792D\u7931\u7934\u7935\u793B\u793D\u793F\u7944\u7945\u7946\u794A\u794B\u794F\u7951\u7954\u7958\u795B\u795C\u7967\u7969\u796B\u7972\u7979\u797B\u797C\u797E\u798B\u798C\u7991\u7993\u7994\u7995\u7996\u7998\u799B\u799C\u79A1\u79A8\u79A9\u79AB\u79AF\u79B1\u79B4\u79B8\u79BB\u79C2\u79C4\u79C7\u79C8\u79CA\u79CF\u79D4\u79D6\u79DA\u79DD\u79DE"],["8fd1a1","\u79E0\u79E2\u79E5\u79EA\u79EB\u79ED\u79F1\u79F8\u79FC\u7A02\u7A03\u7A07\u7A09\u7A0A\u7A0C\u7A11\u7A15\u7A1B\u7A1E\u7A21\u7A27\u7A2B\u7A2D\u7A2F\u7A30\u7A34\u7A35\u7A38\u7A39\u7A3A\u7A44\u7A45\u7A47\u7A48\u7A4C\u7A55\u7A56\u7A59\u7A5C\u7A5D\u7A5F\u7A60\u7A65\u7A67\u7A6A\u7A6D\u7A75\u7A78\u7A7E\u7A80\u7A82\u7A85\u7A86\u7A8A\u7A8B\u7A90\u7A91\u7A94\u7A9E\u7AA0\u7AA3\u7AAC\u7AB3\u7AB5\u7AB9\u7ABB\u7ABC\u7AC6\u7AC9\u7ACC\u7ACE\u7AD1\u7ADB\u7AE8\u7AE9\u7AEB\u7AEC\u7AF1\u7AF4\u7AFB\u7AFD\u7AFE\u7B07\u7B14\u7B1F\u7B23\u7B27\u7B29\u7B2A\u7B2B\u7B2D\u7B2E\u7B2F\u7B30"],["8fd2a1","\u7B31\u7B34\u7B3D\u7B3F\u7B40\u7B41\u7B47\u7B4E\u7B55\u7B60\u7B64\u7B66\u7B69\u7B6A\u7B6D\u7B6F\u7B72\u7B73\u7B77\u7B84\u7B89\u7B8E\u7B90\u7B91\u7B96\u7B9B\u7B9E\u7BA0\u7BA5\u7BAC\u7BAF\u7BB0\u7BB2\u7BB5\u7BB6\u7BBA\u7BBB\u7BBC\u7BBD\u7BC2\u7BC5\u7BC8\u7BCA\u7BD4\u7BD6\u7BD7\u7BD9\u7BDA\u7BDB\u7BE8\u7BEA\u7BF2\u7BF4\u7BF5\u7BF8\u7BF9\u7BFA\u7BFC\u7BFE\u7C01\u7C02\u7C03\u7C04\u7C06\u7C09\u7C0B\u7C0C\u7C0E\u7C0F\u7C19\u7C1B\u7C20\u7C25\u7C26\u7C28\u7C2C\u7C31\u7C33\u7C34\u7C36\u7C39\u7C3A\u7C46\u7C4A\u7C55\u7C51\u7C52\u7C53\u7C59",5],["8fd3a1","\u7C61\u7C63\u7C67\u7C69\u7C6D\u7C6E\u7C70\u7C72\u7C79\u7C7C\u7C7D\u7C86\u7C87\u7C8F\u7C94\u7C9E\u7CA0\u7CA6\u7CB0\u7CB6\u7CB7\u7CBA\u7CBB\u7CBC\u7CBF\u7CC4\u7CC7\u7CC8\u7CC9\u7CCD\u7CCF\u7CD3\u7CD4\u7CD5\u7CD7\u7CD9\u7CDA\u7CDD\u7CE6\u7CE9\u7CEB\u7CF5\u7D03\u7D07\u7D08\u7D09\u7D0F\u7D11\u7D12\u7D13\u7D16\u7D1D\u7D1E\u7D23\u7D26\u7D2A\u7D2D\u7D31\u7D3C\u7D3D\u7D3E\u7D40\u7D41\u7D47\u7D48\u7D4D\u7D51\u7D53\u7D57\u7D59\u7D5A\u7D5C\u7D5D\u7D65\u7D67\u7D6A\u7D70\u7D78\u7D7A\u7D7B\u7D7F\u7D81\u7D82\u7D83\u7D85\u7D86\u7D88\u7D8B\u7D8C\u7D8D\u7D91\u7D96\u7D97\u7D9D"],["8fd4a1","\u7D9E\u7DA6\u7DA7\u7DAA\u7DB3\u7DB6\u7DB7\u7DB9\u7DC2",4,"\u7DCC\u7DCD\u7DCE\u7DD7\u7DD9\u7E00\u7DE2\u7DE5\u7DE6\u7DEA\u7DEB\u7DED\u7DF1\u7DF5\u7DF6\u7DF9\u7DFA\u7E08\u7E10\u7E11\u7E15\u7E17\u7E1C\u7E1D\u7E20\u7E27\u7E28\u7E2C\u7E2D\u7E2F\u7E33\u7E36\u7E3F\u7E44\u7E45\u7E47\u7E4E\u7E50\u7E52\u7E58\u7E5F\u7E61\u7E62\u7E65\u7E6B\u7E6E\u7E6F\u7E73\u7E78\u7E7E\u7E81\u7E86\u7E87\u7E8A\u7E8D\u7E91\u7E95\u7E98\u7E9A\u7E9D\u7E9E\u7F3C\u7F3B\u7F3D\u7F3E\u7F3F\u7F43\u7F44\u7F47\u7F4F\u7F52\u7F53\u7F5B\u7F5C\u7F5D\u7F61\u7F63\u7F64\u7F65\u7F66\u7F6D"],["8fd5a1","\u7F71\u7F7D\u7F7E\u7F7F\u7F80\u7F8B\u7F8D\u7F8F\u7F90\u7F91\u7F96\u7F97\u7F9C\u7FA1\u7FA2\u7FA6\u7FAA\u7FAD\u7FB4\u7FBC\u7FBF\u7FC0\u7FC3\u7FC8\u7FCE\u7FCF\u7FDB\u7FDF\u7FE3\u7FE5\u7FE8\u7FEC\u7FEE\u7FEF\u7FF2\u7FFA\u7FFD\u7FFE\u7FFF\u8007\u8008\u800A\u800D\u800E\u800F\u8011\u8013\u8014\u8016\u801D\u801E\u801F\u8020\u8024\u8026\u802C\u802E\u8030\u8034\u8035\u8037\u8039\u803A\u803C\u803E\u8040\u8044\u8060\u8064\u8066\u806D\u8071\u8075\u8081\u8088\u808E\u809C\u809E\u80A6\u80A7\u80AB\u80B8\u80B9\u80C8\u80CD\u80CF\u80D2\u80D4\u80D5\u80D7\u80D8\u80E0\u80ED\u80EE"],["8fd6a1","\u80F0\u80F2\u80F3\u80F6\u80F9\u80FA\u80FE\u8103\u810B\u8116\u8117\u8118\u811C\u811E\u8120\u8124\u8127\u812C\u8130\u8135\u813A\u813C\u8145\u8147\u814A\u814C\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816D\u816F\u8177\u8181\u8190\u8184\u8185\u8186\u818B\u818E\u8196\u8198\u819B\u819E\u81A2\u81AE\u81B2\u81B4\u81BB\u81CB\u81C3\u81C5\u81CA\u81CE\u81CF\u81D5\u81D7\u81DB\u81DD\u81DE\u81E1\u81E4\u81EB\u81EC\u81F0\u81F1\u81F2\u81F5\u81F6\u81F8\u81F9\u81FD\u81FF\u8200\u8203\u820F\u8213\u8214\u8219\u821A\u821D\u8221\u8222\u8228\u8232\u8234\u823A\u8243\u8244\u8245\u8246"],["8fd7a1","\u824B\u824E\u824F\u8251\u8256\u825C\u8260\u8263\u8267\u826D\u8274\u827B\u827D\u827F\u8280\u8281\u8283\u8284\u8287\u8289\u828A\u828E\u8291\u8294\u8296\u8298\u829A\u829B\u82A0\u82A1\u82A3\u82A4\u82A7\u82A8\u82A9\u82AA\u82AE\u82B0\u82B2\u82B4\u82B7\u82BA\u82BC\u82BE\u82BF\u82C6\u82D0\u82D5\u82DA\u82E0\u82E2\u82E4\u82E8\u82EA\u82ED\u82EF\u82F6\u82F7\u82FD\u82FE\u8300\u8301\u8307\u8308\u830A\u830B\u8354\u831B\u831D\u831E\u831F\u8321\u8322\u832C\u832D\u832E\u8330\u8333\u8337\u833A\u833C\u833D\u8342\u8343\u8344\u8347\u834D\u834E\u8351\u8355\u8356\u8357\u8370\u8378"],["8fd8a1","\u837D\u837F\u8380\u8382\u8384\u8386\u838D\u8392\u8394\u8395\u8398\u8399\u839B\u839C\u839D\u83A6\u83A7\u83A9\u83AC\u83BE\u83BF\u83C0\u83C7\u83C9\u83CF\u83D0\u83D1\u83D4\u83DD\u8353\u83E8\u83EA\u83F6\u83F8\u83F9\u83FC\u8401\u8406\u840A\u840F\u8411\u8415\u8419\u83AD\u842F\u8439\u8445\u8447\u8448\u844A\u844D\u844F\u8451\u8452\u8456\u8458\u8459\u845A\u845C\u8460\u8464\u8465\u8467\u846A\u8470\u8473\u8474\u8476\u8478\u847C\u847D\u8481\u8485\u8492\u8493\u8495\u849E\u84A6\u84A8\u84A9\u84AA\u84AF\u84B1\u84B4\u84BA\u84BD\u84BE\u84C0\u84C2\u84C7\u84C8\u84CC\u84CF\u84D3"],["8fd9a1","\u84DC\u84E7\u84EA\u84EF\u84F0\u84F1\u84F2\u84F7\u8532\u84FA\u84FB\u84FD\u8502\u8503\u8507\u850C\u850E\u8510\u851C\u851E\u8522\u8523\u8524\u8525\u8527\u852A\u852B\u852F\u8533\u8534\u8536\u853F\u8546\u854F",4,"\u8556\u8559\u855C",6,"\u8564\u856B\u856F\u8579\u857A\u857B\u857D\u857F\u8581\u8585\u8586\u8589\u858B\u858C\u858F\u8593\u8598\u859D\u859F\u85A0\u85A2\u85A5\u85A7\u85B4\u85B6\u85B7\u85B8\u85BC\u85BD\u85BE\u85BF\u85C2\u85C7\u85CA\u85CB\u85CE\u85AD\u85D8\u85DA\u85DF\u85E0\u85E6\u85E8\u85ED\u85F3\u85F6\u85FC"],["8fdaa1","\u85FF\u8600\u8604\u8605\u860D\u860E\u8610\u8611\u8612\u8618\u8619\u861B\u861E\u8621\u8627\u8629\u8636\u8638\u863A\u863C\u863D\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865D\u8660",4,"\u8669\u866C\u866F\u8675\u8676\u8677\u867A\u868D\u8691\u8696\u8698\u869A\u869C\u86A1\u86A6\u86A7\u86A8\u86AD\u86B1\u86B3\u86B4\u86B5\u86B7\u86B8\u86B9\u86BF\u86C0\u86C1\u86C3\u86C5\u86D1\u86D2\u86D5\u86D7\u86DA\u86DC\u86E0\u86E3\u86E5\u86E7\u8688\u86FA\u86FC\u86FD\u8704\u8705\u8707\u870B\u870E\u870F\u8710\u8713\u8714\u8719\u871E\u871F\u8721\u8723"],["8fdba1","\u8728\u872E\u872F\u8731\u8732\u8739\u873A\u873C\u873D\u873E\u8740\u8743\u8745\u874D\u8758\u875D\u8761\u8764\u8765\u876F\u8771\u8772\u877B\u8783",6,"\u878B\u878C\u8790\u8793\u8795\u8797\u8798\u8799\u879E\u87A0\u87A3\u87A7\u87AC\u87AD\u87AE\u87B1\u87B5\u87BE\u87BF\u87C1\u87C8\u87C9\u87CA\u87CE\u87D5\u87D6\u87D9\u87DA\u87DC\u87DF\u87E2\u87E3\u87E4\u87EA\u87EB\u87ED\u87F1\u87F3\u87F8\u87FA\u87FF\u8801\u8803\u8806\u8809\u880A\u880B\u8810\u8819\u8812\u8813\u8814\u8818\u881A\u881B\u881C\u881E\u881F\u8828\u882D\u882E\u8830\u8832\u8835"],["8fdca1","\u883A\u883C\u8841\u8843\u8845\u8848\u8849\u884A\u884B\u884E\u8851\u8855\u8856\u8858\u885A\u885C\u885F\u8860\u8864\u8869\u8871\u8879\u887B\u8880\u8898\u889A\u889B\u889C\u889F\u88A0\u88A8\u88AA\u88BA\u88BD\u88BE\u88C0\u88CA",4,"\u88D1\u88D2\u88D3\u88DB\u88DE\u88E7\u88EF\u88F0\u88F1\u88F5\u88F7\u8901\u8906\u890D\u890E\u890F\u8915\u8916\u8918\u8919\u891A\u891C\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893A\u893E\u8940\u8942\u8945\u8946\u8949\u894F\u8952\u8957\u895A\u895B\u895C\u8961\u8962\u8963\u896B\u896E\u8970\u8973\u8975\u897A"],["8fdda1","\u897B\u897C\u897D\u8989\u898D\u8990\u8994\u8995\u899B\u899C\u899F\u89A0\u89A5\u89B0\u89B4\u89B5\u89B6\u89B7\u89BC\u89D4",4,"\u89E5\u89E9\u89EB\u89ED\u89F1\u89F3\u89F6\u89F9\u89FD\u89FF\u8A04\u8A05\u8A07\u8A0F\u8A11\u8A12\u8A14\u8A15\u8A1E\u8A20\u8A22\u8A24\u8A26\u8A2B\u8A2C\u8A2F\u8A35\u8A37\u8A3D\u8A3E\u8A40\u8A43\u8A45\u8A47\u8A49\u8A4D\u8A4E\u8A53\u8A56\u8A57\u8A58\u8A5C\u8A5D\u8A61\u8A65\u8A67\u8A75\u8A76\u8A77\u8A79\u8A7A\u8A7B\u8A7E\u8A7F\u8A80\u8A83\u8A86\u8A8B\u8A8F\u8A90\u8A92\u8A96\u8A97\u8A99\u8A9F\u8AA7\u8AA9\u8AAE\u8AAF\u8AB3"],["8fdea1","\u8AB6\u8AB7\u8ABB\u8ABE\u8AC3\u8AC6\u8AC8\u8AC9\u8ACA\u8AD1\u8AD3\u8AD4\u8AD5\u8AD7\u8ADD\u8ADF\u8AEC\u8AF0\u8AF4\u8AF5\u8AF6\u8AFC\u8AFF\u8B05\u8B06\u8B0B\u8B11\u8B1C\u8B1E\u8B1F\u8B0A\u8B2D\u8B30\u8B37\u8B3C\u8B42",4,"\u8B48\u8B52\u8B53\u8B54\u8B59\u8B4D\u8B5E\u8B63\u8B6D\u8B76\u8B78\u8B79\u8B7C\u8B7E\u8B81\u8B84\u8B85\u8B8B\u8B8D\u8B8F\u8B94\u8B95\u8B9C\u8B9E\u8B9F\u8C38\u8C39\u8C3D\u8C3E\u8C45\u8C47\u8C49\u8C4B\u8C4F\u8C51\u8C53\u8C54\u8C57\u8C58\u8C5B\u8C5D\u8C59\u8C63\u8C64\u8C66\u8C68\u8C69\u8C6D\u8C73\u8C75\u8C76\u8C7B\u8C7E\u8C86"],["8fdfa1","\u8C87\u8C8B\u8C90\u8C92\u8C93\u8C99\u8C9B\u8C9C\u8CA4\u8CB9\u8CBA\u8CC5\u8CC6\u8CC9\u8CCB\u8CCF\u8CD6\u8CD5\u8CD9\u8CDD\u8CE1\u8CE8\u8CEC\u8CEF\u8CF0\u8CF2\u8CF5\u8CF7\u8CF8\u8CFE\u8CFF\u8D01\u8D03\u8D09\u8D12\u8D17\u8D1B\u8D65\u8D69\u8D6C\u8D6E\u8D7F\u8D82\u8D84\u8D88\u8D8D\u8D90\u8D91\u8D95\u8D9E\u8D9F\u8DA0\u8DA6\u8DAB\u8DAC\u8DAF\u8DB2\u8DB5\u8DB7\u8DB9\u8DBB\u8DC0\u8DC5\u8DC6\u8DC7\u8DC8\u8DCA\u8DCE\u8DD1\u8DD4\u8DD5\u8DD7\u8DD9\u8DE4\u8DE5\u8DE7\u8DEC\u8DF0\u8DBC\u8DF1\u8DF2\u8DF4\u8DFD\u8E01\u8E04\u8E05\u8E06\u8E0B\u8E11\u8E14\u8E16\u8E20\u8E21\u8E22"],["8fe0a1","\u8E23\u8E26\u8E27\u8E31\u8E33\u8E36\u8E37\u8E38\u8E39\u8E3D\u8E40\u8E41\u8E4B\u8E4D\u8E4E\u8E4F\u8E54\u8E5B\u8E5C\u8E5D\u8E5E\u8E61\u8E62\u8E69\u8E6C\u8E6D\u8E6F\u8E70\u8E71\u8E79\u8E7A\u8E7B\u8E82\u8E83\u8E89\u8E90\u8E92\u8E95\u8E9A\u8E9B\u8E9D\u8E9E\u8EA2\u8EA7\u8EA9\u8EAD\u8EAE\u8EB3\u8EB5\u8EBA\u8EBB\u8EC0\u8EC1\u8EC3\u8EC4\u8EC7\u8ECF\u8ED1\u8ED4\u8EDC\u8EE8\u8EEE\u8EF0\u8EF1\u8EF7\u8EF9\u8EFA\u8EED\u8F00\u8F02\u8F07\u8F08\u8F0F\u8F10\u8F16\u8F17\u8F18\u8F1E\u8F20\u8F21\u8F23\u8F25\u8F27\u8F28\u8F2C\u8F2D\u8F2E\u8F34\u8F35\u8F36\u8F37\u8F3A\u8F40\u8F41"],["8fe1a1","\u8F43\u8F47\u8F4F\u8F51",4,"\u8F58\u8F5D\u8F5E\u8F65\u8F9D\u8FA0\u8FA1\u8FA4\u8FA5\u8FA6\u8FB5\u8FB6\u8FB8\u8FBE\u8FC0\u8FC1\u8FC6\u8FCA\u8FCB\u8FCD\u8FD0\u8FD2\u8FD3\u8FD5\u8FE0\u8FE3\u8FE4\u8FE8\u8FEE\u8FF1\u8FF5\u8FF6\u8FFB\u8FFE\u9002\u9004\u9008\u900C\u9018\u901B\u9028\u9029\u902F\u902A\u902C\u902D\u9033\u9034\u9037\u903F\u9043\u9044\u904C\u905B\u905D\u9062\u9066\u9067\u906C\u9070\u9074\u9079\u9085\u9088\u908B\u908C\u908E\u9090\u9095\u9097\u9098\u9099\u909B\u90A0\u90A1\u90A2\u90A5\u90B0\u90B2\u90B3\u90B4\u90B6\u90BD\u90CC\u90BE\u90C3"],["8fe2a1","\u90C4\u90C5\u90C7\u90C8\u90D5\u90D7\u90D8\u90D9\u90DC\u90DD\u90DF\u90E5\u90D2\u90F6\u90EB\u90EF\u90F0\u90F4\u90FE\u90FF\u9100\u9104\u9105\u9106\u9108\u910D\u9110\u9114\u9116\u9117\u9118\u911A\u911C\u911E\u9120\u9125\u9122\u9123\u9127\u9129\u912E\u912F\u9131\u9134\u9136\u9137\u9139\u913A\u913C\u913D\u9143\u9147\u9148\u914F\u9153\u9157\u9159\u915A\u915B\u9161\u9164\u9167\u916D\u9174\u9179\u917A\u917B\u9181\u9183\u9185\u9186\u918A\u918E\u9191\u9193\u9194\u9195\u9198\u919E\u91A1\u91A6\u91A8\u91AC\u91AD\u91AE\u91B0\u91B1\u91B2\u91B3\u91B6\u91BB\u91BC\u91BD\u91BF"],["8fe3a1","\u91C2\u91C3\u91C5\u91D3\u91D4\u91D7\u91D9\u91DA\u91DE\u91E4\u91E5\u91E9\u91EA\u91EC",5,"\u91F7\u91F9\u91FB\u91FD\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920A\u920C\u9210\u9212\u9213\u9216\u9218\u921C\u921D\u9223\u9224\u9225\u9226\u9228\u922E\u922F\u9230\u9233\u9235\u9236\u9238\u9239\u923A\u923C\u923E\u9240\u9242\u9243\u9246\u9247\u924A\u924D\u924E\u924F\u9251\u9258\u9259\u925C\u925D\u9260\u9261\u9265\u9267\u9268\u9269\u926E\u926F\u9270\u9275",4,"\u927B\u927C\u927D\u927F\u9288\u9289\u928A\u928D\u928E\u9292\u9297"],["8fe4a1","\u9299\u929F\u92A0\u92A4\u92A5\u92A7\u92A8\u92AB\u92AF\u92B2\u92B6\u92B8\u92BA\u92BB\u92BC\u92BD\u92BF",4,"\u92C5\u92C6\u92C7\u92C8\u92CB\u92CC\u92CD\u92CE\u92D0\u92D3\u92D5\u92D7\u92D8\u92D9\u92DC\u92DD\u92DF\u92E0\u92E1\u92E3\u92E5\u92E7\u92E8\u92EC\u92EE\u92F0\u92F9\u92FB\u92FF\u9300\u9302\u9308\u930D\u9311\u9314\u9315\u931C\u931D\u931E\u931F\u9321\u9324\u9325\u9327\u9329\u932A\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935A\u935E\u9364\u9365\u9367\u9369\u936A\u936D\u936F\u9370\u9371\u9373\u9374\u9376"],["8fe5a1","\u937A\u937D\u937F\u9380\u9381\u9382\u9388\u938A\u938B\u938D\u938F\u9392\u9395\u9398\u939B\u939E\u93A1\u93A3\u93A4\u93A6\u93A8\u93AB\u93B4\u93B5\u93B6\u93BA\u93A9\u93C1\u93C4\u93C5\u93C6\u93C7\u93C9",4,"\u93D3\u93D9\u93DC\u93DE\u93DF\u93E2\u93E6\u93E7\u93F9\u93F7\u93F8\u93FA\u93FB\u93FD\u9401\u9402\u9404\u9408\u9409\u940D\u940E\u940F\u9415\u9416\u9417\u941F\u942E\u942F\u9431\u9432\u9433\u9434\u943B\u943F\u943D\u9443\u9445\u9448\u944A\u944C\u9455\u9459\u945C\u945F\u9461\u9463\u9468\u946B\u946D\u946E\u946F\u9471\u9472\u9484\u9483\u9578\u9579"],["8fe6a1","\u957E\u9584\u9588\u958C\u958D\u958E\u959D\u959E\u959F\u95A1\u95A6\u95A9\u95AB\u95AC\u95B4\u95B6\u95BA\u95BD\u95BF\u95C6\u95C8\u95C9\u95CB\u95D0\u95D1\u95D2\u95D3\u95D9\u95DA\u95DD\u95DE\u95DF\u95E0\u95E4\u95E6\u961D\u961E\u9622\u9624\u9625\u9626\u962C\u9631\u9633\u9637\u9638\u9639\u963A\u963C\u963D\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966E\u9674\u967B\u967C\u967E\u967F\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969A\u969D\u969F\u96A4\u96A5\u96A6\u96A9\u96AE\u96AF\u96B3\u96BA\u96CA\u96D2\u5DB2\u96D8\u96DA\u96DD\u96DE\u96DF\u96E9\u96EF\u96F1\u96FA\u9702"],["8fe7a1","\u9703\u9705\u9709\u971A\u971B\u971D\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974A\u974E\u974F\u9755\u9757\u9758\u975A\u975B\u9763\u9767\u976A\u976E\u9773\u9776\u9777\u9778\u977B\u977D\u977F\u9780\u9789\u9795\u9796\u9797\u9799\u979A\u979E\u979F\u97A2\u97AC\u97AE\u97B1\u97B2\u97B5\u97B6\u97B8\u97B9\u97BA\u97BC\u97BE\u97BF\u97C1\u97C4\u97C5\u97C7\u97C9\u97CA\u97CC\u97CD\u97CE\u97D0\u97D1\u97D4\u97D7\u97D8\u97D9\u97DD\u97DE\u97E0\u97DB\u97E1\u97E4\u97EF\u97F1\u97F4\u97F7\u97F8\u97FA\u9807\u980A\u9819\u980D\u980E\u9814\u9816\u981C\u981E\u9820\u9823\u9826"],["8fe8a1","\u982B\u982E\u982F\u9830\u9832\u9833\u9835\u9825\u983E\u9844\u9847\u984A\u9851\u9852\u9853\u9856\u9857\u9859\u985A\u9862\u9863\u9865\u9866\u986A\u986C\u98AB\u98AD\u98AE\u98B0\u98B4\u98B7\u98B8\u98BA\u98BB\u98BF\u98C2\u98C5\u98C8\u98CC\u98E1\u98E3\u98E5\u98E6\u98E7\u98EA\u98F3\u98F6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991A\u991B\u991C\u991F\u9922\u9926\u9927\u992B\u9931",4,"\u9939\u993A\u993B\u993C\u9940\u9941\u9946\u9947\u9948\u994D\u994E\u9954\u9958\u9959\u995B\u995C\u995E\u995F\u9960\u999B\u999D\u999F\u99A6\u99B0\u99B1\u99B2\u99B5"],["8fe9a1","\u99B9\u99BA\u99BD\u99BF\u99C3\u99C9\u99D3\u99D4\u99D9\u99DA\u99DC\u99DE\u99E7\u99EA\u99EB\u99EC\u99F0\u99F4\u99F5\u99F9\u99FD\u99FE\u9A02\u9A03\u9A04\u9A0B\u9A0C\u9A10\u9A11\u9A16\u9A1E\u9A20\u9A22\u9A23\u9A24\u9A27\u9A2D\u9A2E\u9A33\u9A35\u9A36\u9A38\u9A47\u9A41\u9A44\u9A4A\u9A4B\u9A4C\u9A4E\u9A51\u9A54\u9A56\u9A5D\u9AAA\u9AAC\u9AAE\u9AAF\u9AB2\u9AB4\u9AB5\u9AB6\u9AB9\u9ABB\u9ABE\u9ABF\u9AC1\u9AC3\u9AC6\u9AC8\u9ACE\u9AD0\u9AD2\u9AD5\u9AD6\u9AD7\u9ADB\u9ADC\u9AE0\u9AE4\u9AE5\u9AE7\u9AE9\u9AEC\u9AF2\u9AF3\u9AF5\u9AF9\u9AFA\u9AFD\u9AFF",4],["8feaa1","\u9B04\u9B05\u9B08\u9B09\u9B0B\u9B0C\u9B0D\u9B0E\u9B10\u9B12\u9B16\u9B19\u9B1B\u9B1C\u9B20\u9B26\u9B2B\u9B2D\u9B33\u9B34\u9B35\u9B37\u9B39\u9B3A\u9B3D\u9B48\u9B4B\u9B4C\u9B55\u9B56\u9B57\u9B5B\u9B5E\u9B61\u9B63\u9B65\u9B66\u9B68\u9B6A",4,"\u9B73\u9B75\u9B77\u9B78\u9B79\u9B7F\u9B80\u9B84\u9B85\u9B86\u9B87\u9B89\u9B8A\u9B8B\u9B8D\u9B8F\u9B90\u9B94\u9B9A\u9B9D\u9B9E\u9BA6\u9BA7\u9BA9\u9BAC\u9BB0\u9BB1\u9BB2\u9BB7\u9BB8\u9BBB\u9BBC\u9BBE\u9BBF\u9BC1\u9BC7\u9BC8\u9BCE\u9BD0\u9BD7\u9BD8\u9BDD\u9BDF\u9BE5\u9BE7\u9BEA\u9BEB\u9BEF\u9BF3\u9BF7\u9BF8"],["8feba1","\u9BF9\u9BFA\u9BFD\u9BFF\u9C00\u9C02\u9C0B\u9C0F\u9C11\u9C16\u9C18\u9C19\u9C1A\u9C1C\u9C1E\u9C22\u9C23\u9C26",4,"\u9C31\u9C35\u9C36\u9C37\u9C3D\u9C41\u9C43\u9C44\u9C45\u9C49\u9C4A\u9C4E\u9C4F\u9C50\u9C53\u9C54\u9C56\u9C58\u9C5B\u9C5D\u9C5E\u9C5F\u9C63\u9C69\u9C6A\u9C5C\u9C6B\u9C68\u9C6E\u9C70\u9C72\u9C75\u9C77\u9C7B\u9CE6\u9CF2\u9CF7\u9CF9\u9D0B\u9D02\u9D11\u9D17\u9D18\u9D1C\u9D1D\u9D1E\u9D2F\u9D30\u9D32\u9D33\u9D34\u9D3A\u9D3C\u9D45\u9D3D\u9D42\u9D43\u9D47\u9D4A\u9D53\u9D54\u9D5F\u9D63\u9D62\u9D65\u9D69\u9D6A\u9D6B\u9D70\u9D76\u9D77\u9D7B"],["8feca1","\u9D7C\u9D7E\u9D83\u9D84\u9D86\u9D8A\u9D8D\u9D8E\u9D92\u9D93\u9D95\u9D96\u9D97\u9D98\u9DA1\u9DAA\u9DAC\u9DAE\u9DB1\u9DB5\u9DB9\u9DBC\u9DBF\u9DC3\u9DC7\u9DC9\u9DCA\u9DD4\u9DD5\u9DD6\u9DD7\u9DDA\u9DDE\u9DDF\u9DE0\u9DE5\u9DE7\u9DE9\u9DEB\u9DEE\u9DF0\u9DF3\u9DF4\u9DFE\u9E0A\u9E02\u9E07\u9E0E\u9E10\u9E11\u9E12\u9E15\u9E16\u9E19\u9E1C\u9E1D\u9E7A\u9E7B\u9E7C\u9E80\u9E82\u9E83\u9E84\u9E85\u9E87\u9E8E\u9E8F\u9E96\u9E98\u9E9B\u9E9E\u9EA4\u9EA8\u9EAC\u9EAE\u9EAF\u9EB0\u9EB3\u9EB4\u9EB5\u9EC6\u9EC8\u9ECB\u9ED5\u9EDF\u9EE4\u9EE7\u9EEC\u9EED\u9EEE\u9EF0\u9EF1\u9EF2\u9EF5"],["8feda1","\u9EF8\u9EFF\u9F02\u9F03\u9F09\u9F0F\u9F10\u9F11\u9F12\u9F14\u9F16\u9F17\u9F19\u9F1A\u9F1B\u9F1F\u9F22\u9F26\u9F2A\u9F2B\u9F2F\u9F31\u9F32\u9F34\u9F37\u9F39\u9F3A\u9F3C\u9F3D\u9F3F\u9F41\u9F43",4,"\u9F53\u9F55\u9F56\u9F57\u9F58\u9F5A\u9F5D\u9F5E\u9F68\u9F69\u9F6D",4,"\u9F73\u9F75\u9F7A\u9F7D\u9F8F\u9F90\u9F91\u9F92\u9F94\u9F96\u9F97\u9F9E\u9FA1\u9FA2\u9FA3\u9FA5"]]});var Rc=V((RG,X$)=>{X$.exports=[["0","\0",127,"\u20AC"],["8140","\u4E02\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63\u4E64\u4E65\u4E67\u4E68\u4E6A",5,"\u4E72\u4E74",9,"\u4E7F",6,"\u4E87\u4E8A"],["8180","\u4E90\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA\u4EFC\u4EFE\u4F00\u4F02",6,"\u4F0B\u4F0C\u4F12",4,"\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E",4,"\u4F44\u4F45\u4F47",5,"\u4F52\u4F54\u4F56\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2"],["8240","\u4FA4\u4FAB\u4FAD\u4FB0",4,"\u4FB6",8,"\u4FC0\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FD2",4,"\u4FD9\u4FDB\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC\u4FFD\u4FFF",11],["8280","\u500B\u500E\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F",10,"\u503B\u503D\u503F\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050",4,"\u5056\u5057\u5058\u5059\u505B\u505D",7,"\u5066",5,"\u506D",8,"\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E",20,"\u50A4\u50A6\u50AA\u50AB\u50AD",4,"\u50B3",6,"\u50BC"],["8340","\u50BD",17,"\u50D0",5,"\u50D7\u50D8\u50D9\u50DB",10,"\u50E8\u50E9\u50EA\u50EB\u50EF\u50F0\u50F1\u50F2\u50F4\u50F6",4,"\u50FC",9,"\u5108"],["8380","\u5109\u510A\u510C",5,"\u5113",13,"\u5122",28,"\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152\u5153\u5157\u5158\u5159\u515B\u515D",4,"\u5163\u5164\u5166\u5167\u5169\u516A\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3\u51A6",4,"\u51AD\u51AE\u51B4\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2",5],["8440","\u51D8\u51D9\u51DA\u51DC\u51DE\u51DF\u51E2\u51E3\u51E5",5,"\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231\u5232\u5234\u5235\u523C\u523E\u5244",5,"\u524B\u524E\u524F\u5252\u5253\u5255\u5257\u5258"],["8480","\u5259\u525A\u525B\u525D\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B\u526C\u526D\u526E\u5270\u5271\u5273",9,"\u527E\u5280\u5283",4,"\u5289",6,"\u5291\u5292\u5294",6,"\u529C\u52A4\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4",9,"\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5\u52D7\u52D9",5,"\u52E0\u52E1\u52E2\u52E3\u52E5",10,"\u52F1",7,"\u52FB\u52FC\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A\u530B\u530C\u530E"],["8540","\u5311\u5312\u5313\u5314\u5318\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u532F",9,"\u533C\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A\u538E\u538F"],["8580","\u5390",4,"\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF",6,"\u53B7\u53B8\u53B9\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3",4,"\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D\u544E\u544F\u5451\u545A\u545D",4,"\u5463\u5465\u5467\u5469",7,"\u5474\u5479\u547A\u547E\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F\u54A0\u54A1"],["8640","\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0",4,"\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4",5,"\u54FB\u54FE\u5500\u5502\u5503\u5504\u5505\u5508\u550A",4,"\u5512\u5513\u5515",5,"\u551C\u551D\u551E\u551F\u5521\u5525\u5526"],["8680","\u5528\u5529\u552B\u552D\u5532\u5534\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540\u5542\u5545\u5547\u5548\u554B",4,"\u5551\u5552\u5553\u5554\u5557",4,"\u555D\u555E\u555F\u5560\u5562\u5563\u5568\u5569\u556B\u556F",5,"\u5579\u557A\u557D\u557F\u5585\u5586\u558C\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597\u559A\u559B\u559E\u55A0",6,"\u55A8",8,"\u55B2\u55B4\u55B6\u55B8\u55BA\u55BC\u55BF",4,"\u55C6\u55C7\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7",4,"\u55DE\u55E0\u55E2\u55E7\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8",4,"\u55FF\u5602\u5603\u5604\u5605"],["8740","\u5606\u5607\u560A\u560B\u560D\u5610",7,"\u5619\u561A\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635\u5637\u5638\u563A\u563C\u563D\u563E\u5640",11,"\u564F",4,"\u5655\u5656\u565A\u565B\u565D",4],["8780","\u5663\u5665\u5666\u5667\u566D\u566E\u566F\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567A\u567D",7,"\u5687",6,"\u5690\u5691\u5692\u5694",14,"\u56A4",10,"\u56B0",6,"\u56B8\u56B9\u56BA\u56BB\u56BD",12,"\u56CB",8,"\u56D5\u56D6\u56D8\u56D9\u56DC\u56E3\u56E5",5,"\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705\u5707\u570B",6],["8840","\u5712",9,"\u571D\u571E\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572B\u5731\u5732\u5734",4,"\u573C\u573D\u573F\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574B\u5752",4,"\u5758\u5759\u5762\u5763\u5765\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577A\u577D\u577E\u577F\u5780"],["8880","\u5781\u5787\u5788\u5789\u578A\u578D",4,"\u5794",6,"\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7\u57B9",8,"\u57C4",6,"\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5",7,"\u57EE\u57F0\u57F1\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822\u5823\u5825",4,"\u582B",4,"\u5831\u5832\u5833\u5834\u5836",7],["8940","\u583E",5,"\u5845",6,"\u584E\u584F\u5850\u5852\u5853\u5855\u5856\u5857\u5859",4,"\u585F",5,"\u5866",4,"\u586D",16,"\u587F\u5882\u5884\u5886\u5887\u5888\u588A\u588B\u588C"],["8980","\u588D",4,"\u5894",4,"\u589B\u589C\u589D\u58A0",7,"\u58AA",17,"\u58BD\u58BE\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6",10,"\u58D2\u58D3\u58D4\u58D6",13,"\u58E5",5,"\u58ED\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA",7,"\u5903\u5905\u5906\u5908",4,"\u590E\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C\u5930\u5932\u5933\u5935\u5936\u593B"],["8a40","\u593D\u593E\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D\u5950\u5952\u5953\u5959\u595B",4,"\u5961\u5963\u5964\u5966",12,"\u5975\u5977\u597A\u597B\u597C\u597E\u597F\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D\u599F\u59A0\u59A1\u59A2\u59A6"],["8a80","\u59A7\u59AC\u59AD\u59B0\u59B1\u59B3",5,"\u59BA\u59BC\u59BD\u59BF",6,"\u59C7\u59C8\u59C9\u59CC\u59CD\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE",4,"\u59E4\u59E6\u59E7\u59E9\u59EA\u59EB\u59ED",11,"\u59FA\u59FC\u59FD\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27\u5A28\u5A2A",6,"\u5A33\u5A35\u5A37",4,"\u5A3D\u5A3E\u5A3F\u5A41",4,"\u5A47\u5A48\u5A4B",9,"\u5A56\u5A57\u5A58\u5A59\u5A5B",5],["8b40","\u5A61\u5A63\u5A64\u5A65\u5A66\u5A68\u5A69\u5A6B",8,"\u5A78\u5A79\u5A7B\u5A7C\u5A7D\u5A7E\u5A80",17,"\u5A93",6,"\u5A9C",13,"\u5AAB\u5AAC"],["8b80","\u5AAD",4,"\u5AB4\u5AB6\u5AB7\u5AB9",4,"\u5ABF\u5AC0\u5AC3",5,"\u5ACA\u5ACB\u5ACD",4,"\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA\u5AEC",4,"\u5AF2",22,"\u5B0A",11,"\u5B18",25,"\u5B33\u5B35\u5B36\u5B38",7,"\u5B41",6],["8c40","\u5B48",7,"\u5B52\u5B56\u5B5E\u5B60\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB\u5BCD\u5BCE\u5BCF"],["8c80","\u5BD1\u5BD4",8,"\u5BE0\u5BE2\u5BE3\u5BE6\u5BE7\u5BE9",4,"\u5BEF\u5BF1",6,"\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64\u5C67",6,"\u5C70\u5C72",6,"\u5C7B\u5C7C\u5C7D\u5C7E\u5C80\u5C83",4,"\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93\u5C95\u5C9D",4,"\u5CA4",4],["8d40","\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0\u5CC2\u5CC3\u5CC5",5,"\u5CCC",5,"\u5CD3",5,"\u5CDA",6,"\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB\u5CEC\u5CEE\u5CEF\u5CF1",9,"\u5CFC",4],["8d80","\u5D01\u5D04\u5D05\u5D08",5,"\u5D0F",4,"\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D\u5D1F",4,"\u5D25\u5D28\u5D2A\u5D2B\u5D2C\u5D2F",4,"\u5D35",7,"\u5D3F",7,"\u5D48\u5D49\u5D4D",10,"\u5D59\u5D5A\u5D5C\u5D5E",10,"\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72\u5D73\u5D75",12,"\u5D83",21,"\u5D9A\u5D9B\u5D9C\u5D9E\u5D9F\u5DA0"],["8e40","\u5DA1",21,"\u5DB8",12,"\u5DC6",6,"\u5DCE",12,"\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC\u5DED"],["8e80","\u5DF0\u5DF5\u5DF6\u5DF8",4,"\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E",7,"\u5E28",4,"\u5E2F\u5E30\u5E32",4,"\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41\u5E43\u5E46",5,"\u5E4D",6,"\u5E56",4,"\u5E5C\u5E5D\u5E5F\u5E60\u5E63",14,"\u5E75\u5E77\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1\u5EA2\u5EA3\u5EA4\u5EA8",4,"\u5EAE",4,"\u5EB4\u5EBA\u5EBB\u5EBC\u5EBD\u5EBF",6],["8f40","\u5EC6\u5EC7\u5EC8\u5ECB",5,"\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA\u5EDC",11,"\u5EE9\u5EEB",8,"\u5EF5\u5EF8\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"],["8f80","\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32",6,"\u5F3B\u5F3D\u5F3E\u5F3F\u5F41",14,"\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0\u5FA2",5,"\u5FA9\u5FAB\u5FAC\u5FAF",5,"\u5FB6\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE",4,"\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007"],["9040","\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C\u602D\u602E\u6030",4,"\u6036",4,"\u603D\u603E\u6040\u6044",6,"\u604C\u604E\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E\u6071\u6072\u6074\u6075\u6077\u607E\u6080"],["9080","\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7\u60B9\u60BA\u60BD",7,"\u60C7\u60C8\u60C9\u60CC",4,"\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9\u60DB\u60DE\u60E1",4,"\u60EA\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB",4,"\u6102\u6103\u6104\u6105\u6107\u610A\u610B\u610C\u6110",4,"\u6116\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121\u6122\u6125\u6128\u6129\u612A\u612C",18,"\u6140",6],["9140","\u6147\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154\u6156",6,"\u615E\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169",6,"\u6171\u6172\u6173\u6174\u6176\u6178",18,"\u618C\u618D\u618F",4,"\u6195"],["9180","\u6196",6,"\u619E",8,"\u61AA\u61AB\u61AD",9,"\u61B8",5,"\u61BF\u61C0\u61C1\u61C3",4,"\u61C9\u61CC",4,"\u61D3\u61D5",16,"\u61E7",13,"\u61F6",8,"\u6200",5,"\u6207\u6209\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230\u6231\u6232\u6235\u6236\u6238",4,"\u6242\u6244\u6245\u6246\u624A"],["9240","\u624F\u6250\u6255\u6256\u6257\u6259\u625A\u625C",6,"\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B",5,"\u6294\u6299\u629C\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7\u62B8\u62BA\u62BE\u62C0\u62C1"],["9280","\u62C3\u62CB\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C\u632D\u632E\u6330\u6331\u6333",5,"\u633B\u633C\u633E\u633F\u6340\u6341\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354\u6356",7,"\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397\u6399",6,"\u63A1\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6\u63B9\u63BB\u63BD\u63BF\u63C0"],["9340","\u63C1\u63C2\u63C3\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3\u63D4\u63D5\u63D7",6,"\u63DF\u63E2\u63E4",4,"\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404\u6406",4,"\u640D\u640E\u6411\u6412\u6415",5,"\u641D\u641F\u6422\u6423\u6424"],["9380","\u6425\u6427\u6428\u6429\u642B\u642E",5,"\u6435",4,"\u643B\u643C\u643E\u6440\u6442\u6443\u6449\u644B",6,"\u6453\u6455\u6456\u6457\u6459",4,"\u645F",7,"\u6468\u646A\u646B\u646C\u646E",9,"\u647B",6,"\u6483\u6486\u6488",8,"\u6493\u6494\u6497\u6498\u649A\u649B\u649C\u649D\u649F",4,"\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6",6,"\u64CF\u64D1\u64D3\u64D4\u64D5\u64D6\u64D9\u64DA"],["9440","\u64DB\u64DC\u64DD\u64DF\u64E0\u64E1\u64E3\u64E5\u64E7",24,"\u6501",7,"\u650A",7,"\u6513",4,"\u6519",8],["9480","\u6522\u6523\u6524\u6526",4,"\u652C\u652D\u6530\u6531\u6532\u6533\u6537\u653A\u653C\u653D\u6540",4,"\u6546\u6547\u654A\u654B\u654D\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575\u6576\u6578",14,"\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1",7,"\u65BA\u65BB\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8",7,"\u65E1\u65E3\u65E4\u65EA\u65EB"],["9540","\u65F2\u65F3\u65F4\u65F5\u65F8\u65F9\u65FB",4,"\u6601\u6604\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6632\u6633\u6637",4,"\u663D\u663F\u6640\u6642\u6644",6,"\u664D\u664E\u6650\u6651\u6658"],["9580","\u6659\u665B\u665C\u665D\u665E\u6660\u6662\u6663\u6665\u6667\u6669",4,"\u6671\u6672\u6673\u6675\u6678\u6679\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F\u6690\u6692\u6693\u6694\u6695\u6698",4,"\u669E",8,"\u66A9",4,"\u66AF",4,"\u66B5\u66B6\u66B7\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF",25,"\u66DA\u66DE",7,"\u66E7\u66E8\u66EA",5,"\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701\u6702\u6703"],["9640","\u6704\u6705\u6706\u6707\u670C\u670E\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A\u671C\u671E\u6720",5,"\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755\u6757",4,"\u675D\u6762\u6763\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774\u6776"],["9680","\u6778\u6779\u677A\u677B\u677D\u6780\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC\u67AE\u67B1\u67B2\u67B4\u67B9",7,"\u67C2\u67C5",9,"\u67D5\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5",7,"\u67FE\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812\u6814\u6815\u6818",4,"\u681E\u681F\u6820\u6822",6,"\u682B",6,"\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B\u684D\u684F\u6852\u6856",5],["9740","\u685C\u685D\u685E\u685F\u686A\u686C",7,"\u6875\u6878",8,"\u6882\u6884\u6887",7,"\u6890\u6891\u6892\u6894\u6895\u6896\u6898",9,"\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"],["9780","\u68B9",6,"\u68C1\u68C3",5,"\u68CA\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6\u68D7\u68D9\u68DB",4,"\u68E1\u68E2\u68E4",9,"\u68EF\u68F2\u68F3\u68F4\u68F6\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902\u6903\u6904\u6906",4,"\u690C\u690F\u6911\u6913",11,"\u6921\u6922\u6923\u6925",7,"\u692E\u692F\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941\u6943",16,"\u6955\u6956\u6958\u6959\u695B\u695C\u695F"],["9840","\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A\u696C\u696D\u696F\u6970\u6972",4,"\u697A\u697B\u697D\u697E\u697F\u6981\u6983\u6985\u698A\u698B\u698C\u698E",5,"\u6996\u6997\u6999\u699A\u699D",9,"\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD"],["9880","\u69BE\u69BF\u69C0\u69C2",7,"\u69CB\u69CD\u69CF\u69D1\u69D2\u69D3\u69D5",5,"\u69DC\u69DD\u69DE\u69E1",11,"\u69EE\u69EF\u69F0\u69F1\u69F3",9,"\u69FE\u6A00",9,"\u6A0B",11,"\u6A19",5,"\u6A20\u6A22",5,"\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33\u6A34\u6A36",6,"\u6A3F",4,"\u6A45\u6A46\u6A48",7,"\u6A51",6,"\u6A5A"],["9940","\u6A5C",4,"\u6A62\u6A63\u6A64\u6A66",10,"\u6A72",6,"\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82\u6A83\u6A85",8,"\u6A8F\u6A92",4,"\u6A98",7,"\u6AA1",5],["9980","\u6AA7\u6AA8\u6AAA\u6AAD",114,"\u6B25\u6B26\u6B28",6],["9a40","\u6B2F\u6B30\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48\u6B4A\u6B4B\u6B4D",11,"\u6B5A",7,"\u6B68\u6B69\u6B6B",13,"\u6B7A\u6B7D\u6B7E\u6B7F\u6B80\u6B85\u6B88"],["9a80","\u6B8C\u6B8E\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99\u6B9C",4,"\u6BA2",7,"\u6BAB",7,"\u6BB6\u6BB8",6,"\u6BC0\u6BC3\u6BC4\u6BC6",4,"\u6BCC\u6BCE\u6BD0\u6BD1\u6BD8\u6BDA\u6BDC",4,"\u6BE2",7,"\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE",6,"\u6C08",4,"\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43\u6C44\u6C45\u6C48\u6C4B",4,"\u6C51\u6C52\u6C53\u6C56\u6C58"],["9b40","\u6C59\u6C5A\u6C62\u6C63\u6C65\u6C66\u6C67\u6C6B",4,"\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE\u6CCF\u6CD1\u6CD2\u6CD8"],["9b80","\u6CD9\u6CDA\u6CDC\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F",5,"\u6D26\u6D28\u6D29\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A\u6D7B\u6D7D",4,"\u6D83\u6D84\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92\u6D96",4,"\u6D9C\u6DA2\u6DA5\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7\u6DB9",5,"\u6DC1\u6DC2\u6DC3\u6DC8\u6DC9\u6DCA"],["9c40","\u6DCD\u6DCE\u6DCF\u6DD0\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8\u6DFA\u6DFD",7,"\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30\u6E31\u6E33\u6E35"],["9c80","\u6E36\u6E37\u6E39\u6E3B",7,"\u6E45",7,"\u6E4F\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C\u6E5D\u6E5E\u6E60",10,"\u6E6C\u6E6D\u6E6F",14,"\u6E80\u6E81\u6E82\u6E84\u6E87\u6E88\u6E8A",4,"\u6E91",6,"\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA",5],["9d40","\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5\u6EF6\u6EF7\u6EF8\u6EFA",7,"\u6F03\u6F04\u6F05\u6F07\u6F08\u6F0A",4,"\u6F10\u6F11\u6F12\u6F16",9,"\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37",6,"\u6F3F\u6F40\u6F41\u6F42"],["9d80","\u6F43\u6F44\u6F45\u6F48\u6F49\u6F4A\u6F4C\u6F4E",9,"\u6F59\u6F5A\u6F5B\u6F5D\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67",5,"\u6F6F\u6F70\u6F71\u6F73\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D",6,"\u6F85\u6F86\u6F87\u6F8A\u6F8B\u6F8F",12,"\u6F9D\u6F9E\u6F9F\u6FA0\u6FA2",4,"\u6FA8",10,"\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA",5,"\u6FC1\u6FC3",5,"\u6FCA",6,"\u6FD3",10,"\u6FDF\u6FE2\u6FE3\u6FE4\u6FE5"],["9e40","\u6FE6",7,"\u6FF0",32,"\u7012",7,"\u701C",6,"\u7024",6],["9e80","\u702B",9,"\u7036\u7037\u7038\u703A",17,"\u704D\u704E\u7050",13,"\u705F",11,"\u706E\u7071\u7072\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A\u709B\u709E",12,"\u70B0\u70B2\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5\u70C6\u70C7\u70C9\u70CB",12,"\u70DA"],["9f40","\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3\u70E5\u70EA\u70EE\u70F0",6,"\u70F8\u70FA\u70FB\u70FC\u70FE",10,"\u710B",4,"\u7111\u7112\u7114\u7117\u711B",10,"\u7127",7,"\u7132\u7133\u7134"],["9f80","\u7135\u7137",13,"\u7146\u7147\u7148\u7149\u714B\u714D\u714F",12,"\u715D\u715F",4,"\u7165\u7169",4,"\u716F\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B\u717C\u717E",5,"\u7185",4,"\u718B\u718C\u718D\u718E\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A",4,"\u71A1",6,"\u71A9\u71AA\u71AB\u71AD",5,"\u71B4\u71B6\u71B7\u71B8\u71BA",8,"\u71C4",9,"\u71CF",4],["a040","\u71D6",9,"\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8",5,"\u71EF",9,"\u71FA",11,"\u7207",19],["a080","\u721B\u721C\u721E",9,"\u7229\u722B\u722D\u722E\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240",6,"\u7249\u724A\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D\u7282\u7283\u7285",4,"\u728C\u728E\u7290\u7291\u7293",11,"\u72A0",11,"\u72AE\u72B1\u72B2\u72B3\u72B5\u72BA",6,"\u72C5\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB"],["a1a1","\u3000\u3001\u3002\xB7\u02C9\u02C7\xA8\u3003\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C\u201D\u3014\u3015\u3008",7,"\u3016\u3017\u3010\u3011\xB1\xD7\xF7\u2236\u2227\u2228\u2211\u220F\u222A\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFF04\xA4\uFFE0\uFFE1\u2030\xA7\u2116\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u203B\u2192\u2190\u2191\u2193\u3013"],["a2a1","\u2170",9],["a2b1","\u2488",19,"\u2474",19,"\u2460",9],["a2e5","\u3220",9],["a2f1","\u2160",11],["a3a1","\uFF01\uFF02\uFF03\uFFE5\uFF05",88,"\uFFE3"],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a6e0","\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44"],["a6ee","\uFE3B\uFE3C\uFE37\uFE38\uFE31"],["a6f4","\uFE33\uFE34"],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a840","\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223\u2252\u2266\u2267\u22BF\u2550",35,"\u2581",6],["a880","\u2588",7,"\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4\u25E5\u2609\u2295\u3012\u301D\u301E"],["a8a1","\u0101\xE1\u01CE\xE0\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA\u01DC\xFC\xEA\u0251"],["a8bd","\u0144\u0148"],["a8c0","\u0261"],["a8c5","\u3105",36],["a940","\u3021",8,"\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4"],["a959","\u2121\u3231"],["a95c","\u2010"],["a960","\u30FC\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49",9,"\uFE54\uFE55\uFE56\uFE57\uFE59",8],["a980","\uFE62",4,"\uFE68\uFE69\uFE6A\uFE6B"],["a996","\u3007"],["a9a4","\u2500",75],["aa40","\u72DC\u72DD\u72DF\u72E2",5,"\u72EA\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300\u7302\u7304",5,"\u730B\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336\u733A\u733B\u733C\u733D\u7340",8],["aa80","\u7349\u734A\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355\u7356\u7358",7,"\u7361",10,"\u736E\u7370\u7371"],["ab40","\u7372",11,"\u737F",4,"\u7385\u7386\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D\u739E\u73A0\u73A1\u73A3",5,"\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3",4],["ab80","\u73CB\u73CC\u73CE\u73D2",6,"\u73DA\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0\u73F1\u73F3",4],["ac40","\u73F8",10,"\u7404\u7407\u7408\u740B\u740C\u740D\u740E\u7411",8,"\u741C",5,"\u7423\u7424\u7427\u7429\u742B\u742D\u742F\u7431\u7432\u7437",4,"\u743D\u743E\u743F\u7440\u7442",11],["ac80","\u744E",6,"\u7456\u7458\u745D\u7460",12,"\u746E\u746F\u7471",4,"\u7478\u7479\u747A"],["ad40","\u747B\u747C\u747D\u747F\u7482\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D\u748F\u7491",10,"\u749D\u749F",7,"\u74AA",15,"\u74BB",12],["ad80","\u74C8",9,"\u74D3",8,"\u74DD\u74DF\u74E1\u74E5\u74E7",6,"\u74F0\u74F1\u74F2"],["ae40","\u74F3\u74F5\u74F8",6,"\u7500\u7501\u7502\u7503\u7505",7,"\u750E\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D\u751E\u7520",4,"\u7526\u7527\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"],["ae80","\u755D",7,"\u7567\u7568\u7569\u756B",6,"\u7573\u7575\u7576\u7577\u757A",4,"\u7580\u7581\u7582\u7584\u7585\u7587"],["af40","\u7588\u7589\u758A\u758C\u758D\u758E\u7590\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6",4,"\u75AD\u75B6\u75B7\u75BA\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"],["af80","\u7608\u7609\u760B\u760D\u760E\u760F\u7611\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641\u7642\u7644"],["b040","\u7645",6,"\u764E",5,"\u7655\u7657",4,"\u765D\u765F\u7660\u7661\u7662\u7664",6,"\u766C\u766D\u766E\u7670",7,"\u7679\u767A\u767C\u767F\u7680\u7681\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690\u7692\u7694\u7695\u7697\u7698\u769A\u769B"],["b080","\u769C",7,"\u76A5",8,"\u76AF\u76B0\u76B3\u76B5",9,"\u76C0\u76C1\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265"],["b140","\u76C4\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA\u76DC\u76DD\u76DE\u76E0",4,"\u76E6",7,"\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C\u770E",10,"\u771B\u771C\u771D\u771E\u7721\u7723\u7724\u7725\u7727\u772A\u772B"],["b180","\u772C\u772E\u7730",4,"\u7739\u773B\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748",7,"\u7752",7,"\u775C\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175\u51B0\u67C4\u4E19\u79C9\u997C\u70B3"],["b240","\u775D\u775E\u775F\u7760\u7764\u7767\u7769\u776A\u776D",11,"\u777A\u777B\u777C\u7781\u7782\u7783\u7786",5,"\u778F\u7790\u7793",11,"\u77A1\u77A3\u77A4\u77A6\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4\u77B6",4],["b280","\u77BC\u77BE\u77C0",12,"\u77CE",8,"\u77D8\u77D9\u77DA\u77DD",4,"\u77E4\u75C5\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2\u4EA7\u9610\u98A4\u660C\u7316"],["b340","\u77E6\u77E8\u77EA\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9\u77FA\u77FB\u77FC\u7803",5,"\u780A\u780B\u780E\u780F\u7810\u7813\u7815\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853\u7854\u7858\u7859\u785A"],["b380","\u785B\u785C\u785E",11,"\u786F",7,"\u7878\u7879\u787A\u787B\u787D",6,"\u573A\u5C1D\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504\u96CF\u6EC1\u9664\u695A"],["b440","\u7884\u7885\u7886\u7888\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8",7,"\u78B5\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7\u78D8\u78DA",9],["b480","\u78E4\u78E5\u78E6\u78E7\u78E9\u78EA\u78EB\u78ED",4,"\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB",5,"\u7902\u7903\u7904\u7906",6,"\u7840\u50A8\u77D7\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37\u888B\u5F85\u902E"],["b540","\u790D",5,"\u7914",9,"\u791F",4,"\u7925",14,"\u7935",4,"\u793D\u793F\u7942\u7943\u7944\u7945\u7947\u794A",8,"\u7954\u7955\u7958\u7959\u7961\u7963"],["b580","\u7964\u7966\u7969\u796A\u796B\u796C\u796E\u7970",6,"\u7979\u797B",4,"\u7982\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED\u8C0D\u53E0"],["b640","\u7993",6,"\u799B",11,"\u79A8",10,"\u79B4",4,"\u79BC\u79BF\u79C2\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9",5,"\u79E0\u79E1\u79E2\u79E5\u79E8\u79EA"],["b680","\u79EC\u79EE\u79F1",6,"\u79F9\u79FA\u79FC\u79FE\u79FF\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C\u7A0F",4,"\u7A15\u7A16\u7A18\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31\u4E8C"],["b740","\u7A1D\u7A1F\u7A21\u7A22\u7A24",14,"\u7A34\u7A35\u7A36\u7A38\u7A3A\u7A3E\u7A40",5,"\u7A47",9,"\u7A52",4,"\u7A58",16],["b780","\u7A69",6,"\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"],["b840","\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE",4,"\u7AB4",10,"\u7AC0",10,"\u7ACC",9,"\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7",5,"\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3"],["b880","\u7AF4",4,"\u7AFB\u7AFC\u7AFE\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9"],["b940","\u7B2F\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B\u7B3D\u7B3F",5,"\u7B46\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59\u7B5C\u7B5E\u7B5F\u7B61\u7B63",10,"\u7B6F\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86",6,"\u7B8E\u7B8F"],["b980","\u7B91\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9",7,"\u7BC2\u7BC3\u7BC4\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8"],["ba40","\u7BC5\u7BC8\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2\u7BD4",4,"\u7BDB\u7BDC\u7BDE\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2",4,"\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF",7,"\u7C08\u7C09\u7C0A\u7C0D\u7C0E\u7C10",5,"\u7C17\u7C18\u7C19"],["ba80","\u7C1A",4,"\u7C20",5,"\u7C28\u7C29\u7C2B",12,"\u7C39",5,"\u7C42\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B\u80E1\u8774\u72D0\u7CCA\u6E56"],["bb40","\u7C43",9,"\u7C4E",36,"\u7C75",5,"\u7C7E",9],["bb80","\u7C88\u7C8A",6,"\u7C93\u7C94\u7C96\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4",4,"\u7CBA\u7CBB\u5F27\u864E\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A\u7578\u7A3D\u79EF\u7B95"],["bc40","\u7CBF\u7CC0\u7CC2\u7CC3\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE",6,"\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE\u7CE1",6,"\u7CE9",5,"\u7CF0",7,"\u7CF9\u7CFA\u7CFC",13,"\u7D0B",5],["bc80","\u7D11",14,"\u7D21\u7D23\u7D24\u7D25\u7D26\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30",6,"\u808C\u9965\u8FF9\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1\u952E\u7BAD\u4EF6"],["bd40","\u7D37",54,"\u7D6F",7],["bd80","\u7D78",32,"\u5065\u8230\u5251\u996F\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1\u70EC\u6D78"],["be40","\u7D99",12,"\u7DA7",6,"\u7DAF",42],["be80","\u7DDA",32,"\u5C3D\u52B2\u8346\u5162\u830E\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B\u5CFB"],["bf40","\u7DFB",62],["bf80","\u7E3A\u7E3C",4,"\u7E42",4,"\u7E48",21,"\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080"],["c040","\u7E5E",35,"\u7E83",23,"\u7E9C\u7E9D\u7E9E"],["c080","\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B",6,"\u7F43\u7F46",9,"\u7F52\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0"],["c140","\u7F56\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63",4,"\u7F6B\u7F6C\u7F6D\u7F6F\u7F70\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C\u7F7D\u7F7F\u7F80\u7F82",7,"\u7F8B\u7F8D\u7F8F",4,"\u7F95",4,"\u7F9B\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8",6,"\u7FB1"],["c180","\u7FB3",4,"\u7FBA\u7FBB\u7FBE\u7FC0\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB\u7FCD\u7FCF",4,"\u7FD6\u7FD7\u7FD9",5,"\u7FE2\u7FE3\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3\u516D\u9F99\u804B\u5499\u7B3C\u7ABF"],["c240","\u7FE4\u7FE7\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4",6,"\u7FFD\u7FFE\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021\u8023\u8024\u802B",5,"\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050\u8051\u8053\u8055\u8056\u8057"],["c280","\u8059\u805B",13,"\u806B",5,"\u8072",11,"\u9686\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE\u6EE1\u8513\u66FC\u6162\u6F2B"],["c340","\u807E\u8081\u8082\u8085\u8088\u808A\u808D",5,"\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8\u80B9\u80BB\u80C5\u80C7",4,"\u80CF",6,"\u80D8\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810B"],["c380","\u810C\u8115\u8117\u8119\u811B\u811C\u811D\u811F",12,"\u812D\u812E\u8130\u8133\u8134\u8135\u8137\u8139",4,"\u813F\u8C29\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED\u540D\u547D\u8C2C\u6478"],["c440","\u8140",5,"\u8147\u8149\u814D\u814E\u814F\u8152\u8156\u8157\u8158\u815B",4,"\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183",4,"\u8189\u818B\u818C\u818D\u818E\u8190\u8192",5,"\u8199\u819A\u819E",4,"\u81A4\u81A5"],["c480","\u81A7\u81A9\u81AB",7,"\u81B4",5,"\u81BC\u81BD\u81BE\u81BF\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD",6,"\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0\u72DE\u51DD\u5B81"],["c540","\u81D4",14,"\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB\u81EE",4,"\u81F5",5,"\u81FD\u81FF\u8203\u8207",4,"\u820E\u820F\u8211\u8213\u8215",5,"\u821D\u8220\u8224\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C\u823D\u823F"],["c580","\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824A\u824C\u824D\u824E\u8250",7,"\u8259\u825B\u825C\u825D\u825E\u8260",7,"\u8269\u62E7\u6CDE\u725B\u626D\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7"],["c640","\u826A\u826B\u826C\u826D\u8271\u8275\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6\u82F8"],["c680","\u82FA\u82FC",4,"\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318\u8319\u831D",9,"\u8329\u832A\u832E\u8330\u8332\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB\u6390"],["c740","\u833E\u833F\u8341\u8342\u8344\u8345\u8348\u834A",4,"\u8353\u8355",4,"\u835D\u8362\u8370",6,"\u8379\u837A\u837E",6,"\u8387\u8388\u838A\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839A\u839D\u839F\u83A1",6,"\u83AC\u83AD\u83AE"],["c780","\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"],["c840","\u83EE\u83EF\u83F3",4,"\u83FA\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407\u8408\u8409\u840A\u8410\u8412",5,"\u8419\u841A\u841B\u841E",5,"\u8429",7,"\u8432",5,"\u8439\u843A\u843B\u843E",7,"\u8447\u8448\u8449"],["c880","\u844A",6,"\u8452",4,"\u8458\u845D\u845E\u845F\u8460\u8462\u8464",4,"\u846A\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1"],["c940","\u847D",4,"\u8483\u8484\u8485\u8486\u848A\u848D\u848F",7,"\u8498\u849A\u849B\u849D\u849E\u849F\u84A0\u84A2",12,"\u84B0\u84B1\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7"],["c980","\u84D8",4,"\u84DE\u84E1\u84E2\u84E4\u84E7",4,"\u84ED\u84EE\u84EF\u84F1",10,"\u84FD\u84FE\u8500\u8501\u8502\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17\u58F0\u751F\u7525\u7272\u5347\u7EF3"],["ca40","\u8503",8,"\u850D\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851B\u851C\u851D\u851E\u8520\u8522",8,"\u852D",9,"\u853E",4,"\u8544\u8545\u8546\u8547\u854B",10],["ca80","\u8557\u8558\u855A\u855B\u855C\u855D\u855F",4,"\u8565\u8566\u8567\u8569",8,"\u8573\u8575\u8576\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D\u7AD6\u5885\u5EB6\u6570\u6F31"],["cb40","\u8582\u8583\u8586\u8588",6,"\u8590",10,"\u859D",6,"\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD\u85B1",5,"\u85B8\u85BA",6,"\u85C2",6,"\u85CA",4,"\u85D1\u85D2"],["cb80","\u85D4\u85D6",5,"\u85DD",6,"\u85E5\u85E6\u85E7\u85E8\u85EA",14,"\u6055\u5237\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C\u4ED6\u5B83\u5979\u5854"],["cc40","\u85F9\u85FA\u85FC\u85FD\u85FE\u8600",4,"\u8606",10,"\u8612\u8613\u8614\u8615\u8617",15,"\u8628\u862A",13,"\u8639\u863A\u863B\u863D\u863E\u863F\u8640"],["cc80","\u8641",11,"\u8652\u8653\u8655",4,"\u865B\u865C\u865D\u865F\u8660\u8661\u8663",7,"\u736D\u631E\u8E4B\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16\u5385\u542C\u70C3"],["cd40","\u866D\u866F\u8670\u8672",6,"\u8683",6,"\u868E",4,"\u8694\u8696",5,"\u869E",4,"\u86A5\u86A6\u86AB\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB",4,"\u86C1\u86C2\u86C3\u86C5\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7\u86DA\u86DC"],["cd80","\u86DD\u86E0\u86E1\u86E2\u86E3\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8\u5984\u5A01"],["ce40","\u8719\u871B\u871D\u871F\u8720\u8724\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A\u873C\u873D\u8740",6,"\u874A\u874B\u874D\u874F\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875A",5,"\u8761\u8762\u8766",7,"\u876F\u8771\u8772\u8773\u8775"],["ce80","\u8777\u8778\u8779\u877A\u877F\u8780\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E",4,"\u8794\u8795\u8796\u8798",6,"\u87A0",4,"\u5DCD\u5FAE\u5371\u97E6\u8FDD\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521\u727A"],["cf40","\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB\u87BC\u87BE\u87BF\u87C1",4,"\u87C7\u87C8\u87C9\u87CC",4,"\u87D4",6,"\u87DC\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF",9],["cf80","\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801\u8802\u8804",5,"\u880B",7,"\u8814\u8817\u8818\u8819\u881A\u881C",4,"\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653"],["d040","\u8824",13,"\u8833",5,"\u883A\u883B\u883D\u883E\u883F\u8841\u8842\u8843\u8846",5,"\u884E",5,"\u8855\u8856\u8858\u885A",6,"\u8866\u8867\u886A\u886D\u886F\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887A"],["d080","\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895\u8897",4,"\u889D",4,"\u88A3\u88A5",5,"\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384"],["d140","\u88AC\u88AE\u88AF\u88B0\u88B2",4,"\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA",4,"\u88E0\u88E1\u88E6\u88E7\u88E9",6,"\u88F2\u88F5\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901\u8903",5],["d180","\u8909\u890B",4,"\u8911\u8914",4,"\u891C",4,"\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B\u6837\u6F3E\u9080\u8170\u5996\u7476"],["d240","\u8938",8,"\u8942\u8943\u8945",24,"\u8960",5,"\u8967",19,"\u897C"],["d280","\u897D\u897E\u8980\u8982\u8984\u8985\u8987",26,"\u6447\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB\u5BC5\u996E\u5C39\u5F15\u9690"],["d340","\u89A2",30,"\u89C3\u89CD\u89D3\u89D4\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4",6],["d380","\u89FB",4,"\u8A01",5,"\u8A08",21,"\u5370\u82F1\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108\u6B32\u72F1\u80B2\u8A89"],["d440","\u8A1E",31,"\u8A3F",8,"\u8A49",21],["d480","\u8A5F",25,"\u8A7A",6,"\u6D74\u5BD3\u88D5\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3\u6E23\u672D\u8F67"],["d540","\u8A81",7,"\u8A8B",7,"\u8A94",46],["d580","\u8AC3",32,"\u94E1\u95F8\u7728\u6805\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF\u6B63\u653F"],["d640","\u8AE4",34,"\u8B08",27],["d680","\u8B24\u8B25\u8B27",30,"\u5E27\u75C7\u90D1\u8BC1\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8\u7B51"],["d740","\u8B46",31,"\u8B67",4,"\u8B6D",25],["d780","\u8B87",24,"\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7"],["d840","\u8C38",8,"\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B\u8C4D",7,"\u8C56\u8C57\u8C58\u8C59\u8C5B",5,"\u8C63",6,"\u8C6C",6,"\u8C74\u8C75\u8C76\u8C77\u8C7B",6,"\u8C83\u8C84\u8C86\u8C87"],["d880","\u8C88\u8C8B\u8C8D",6,"\u8C95\u8C96\u8C97\u8C99",20,"\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D"],["d940","\u8CAE",62],["d980","\u8CED",32,"\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC"],["da40","\u8D0E",14,"\u8D20\u8D51\u8D52\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E\u8D6F\u8D71\u8D72\u8D78",8,"\u8D82\u8D83\u8D86\u8D87\u8D88\u8D89\u8D8C",4,"\u8D92\u8D93\u8D95",9,"\u8DA0\u8DA1"],["da80","\u8DA2\u8DA4",12,"\u8DB2\u8DB6\u8DB7\u8DB9\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC\u90A1\u90B4\u90B3\u90B6\u90BA"],["db40","\u8DD5\u8DD8\u8DD9\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC\u8DFE",6,"\u8E06\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12\u8E13\u8E15",7,"\u8E20\u8E21\u8E24",4,"\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37\u8E38\u8E3B\u8E3C\u8E3E"],["db80","\u8E3F\u8E43\u8E45\u8E46\u8E4C",4,"\u8E53",5,"\u8E5A",11,"\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4\u57EF\u57F8\u57E4\u57DD"],["dc40","\u8E73\u8E75\u8E77",4,"\u8E7D\u8E7E\u8E80\u8E82\u8E83\u8E84\u8E86\u8E88",6,"\u8E91\u8E92\u8E93\u8E95",6,"\u8E9D\u8E9F",11,"\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3",6,"\u8EBB",7],["dc80","\u8EC3",10,"\u8ECF",21,"\u580B\u580D\u57FD\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A\u8333\u8366\u8365"],["dd40","\u8EE5",62],["dd80","\u8F24",32,"\u8368\u831B\u8369\u836C\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539\u851F\u853A"],["de40","\u8F45",32,"\u8F6A\u8F80\u8F8C\u8F92\u8F9D\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3\u8FC6"],["de80","\u8FC9",4,"\u8FCF\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D\u6496"],["df40","\u9019\u901C\u9023\u9024\u9025\u9027",5,"\u9030",4,"\u9037\u9039\u903A\u903D\u903F\u9040\u9043\u9045\u9046\u9048",4,"\u904E\u9054\u9055\u9056\u9059\u905A\u905C",5,"\u9064\u9066\u9067\u9069\u906A\u906B\u906C\u906F",4,"\u9076",6,"\u907E\u9081"],["df80","\u9084\u9085\u9086\u9087\u9089\u908A\u908C",4,"\u9092\u9094\u9096\u9098\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C"],["e040","\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103\u9105",19,"\u911A\u911B\u911C"],["e080","\u911D\u911F\u9120\u9121\u9124",10,"\u9130\u9132",6,"\u913A",8,"\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C"],["e140","\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168\u916B\u916D\u9173\u917A\u917B\u917C\u9180",4,"\u9186\u9188\u918A\u918E\u918F\u9193",6,"\u919C",5,"\u91A4",5,"\u91AB\u91AC\u91B0\u91B1\u91B2\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB"],["e180","\u91BC",10,"\u91C8\u91CB\u91D0\u91D2",9,"\u91DD",8,"\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2\u72F4\u72F7\u7301\u72F3\u7303\u72FA"],["e240","\u91E6",62],["e280","\u9225",32,"\u72FB\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924\u5902\u9963\u9967",5,"\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021\u6078\u6079\u607B\u607A\u6042"],["e340","\u9246",45,"\u9275",16],["e380","\u9286",7,"\u928F",24,"\u606A\u607D\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE\u6CB1\u6CD3\u6CEF\u6CFE"],["e440","\u92A8",5,"\u92AF",24,"\u92C9",31],["e480","\u92E9",32,"\u6D39\u6D27\u6D0C\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72\u6F7C\u6F7A\u6FD1"],["e540","\u930A",51,"\u933F",10],["e580","\u934A",31,"\u936B\u6FC9\u6FA7\u6FB9\u6FB6\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9\u59AA\u59A3"],["e640","\u936C",34,"\u9390",27],["e680","\u93AC",29,"\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8\u7EA9"],["e740","\u93CE",7,"\u93D7",54],["e780","\u940E",32,"\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19\u7F1C\u7F1B\u7F1F\u7F21",6,"\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F",4,"\u7F35\u5E7A\u757F\u5DDB\u753E\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"],["e840","\u942F",14,"\u943F",43,"\u946C\u946D\u946E\u946F"],["e880","\u9470",20,"\u9491\u9496\u9498\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9"],["e940","\u9527\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560\u956E\u9574\u9575\u9577",7,"\u9580",42],["e980","\u95AB",32,"\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B"],["ea40","\u95CC",27,"\u95EC\u95FF\u9607\u9613\u9618\u961B\u961E\u9620\u9623",6,"\u962B\u962C\u962D\u962F\u9630\u9637\u9638\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F\u9651\u9652\u9653\u9656\u9657"],["ea80","\u9658\u9659\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666\u966B\u966D",4,"\u9673\u9678",12,"\u9687\u9689\u968A\u8F8D\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D\u728F\u7292\u6308\u6332\u63B0"],["eb40","\u968C\u968E\u9691\u9692\u9693\u9695\u9696\u969A\u969B\u969D",9,"\u96A8",7,"\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1\u96D3\u96D4\u96D6",9,"\u96E1",6,"\u96EB"],["eb80","\u96EC\u96ED\u96EE\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B\u970C\u9710\u9711\u9712\u9714\u9715\u9717",4,"\u971D\u971F\u9720\u643F\u64D8\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA\u81CC\u6726\u81CA\u81BB"],["ec40","\u9721",8,"\u972B\u972C\u972E\u972F\u9731\u9733",4,"\u973A\u973B\u973C\u973D\u973F",18,"\u9754\u9755\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764\u9766\u9767\u9768\u976A",7],["ec80","\u9772\u9775\u9777",4,"\u977D",7,"\u9786",4,"\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797\u9799",4,"\u81C1\u81A6\u6B24\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7\u79B3\u5FD1\u5FD0"],["ed40","\u979E\u979F\u97A1\u97A2\u97A4",6,"\u97AC\u97AE\u97B0\u97B1\u97B3\u97B5",46],["ed80","\u97E4\u97E5\u97E8\u97EE",4,"\u97F4\u97F7",23,"\u603C\u605D\u605A\u6067\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775A\u7768"],["ee40","\u980F",62],["ee80","\u984E",32,"\u7762\u7765\u777F\u778D\u777D\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6",4,"\u94BC\u94BD\u94BF\u94C4\u94C8",6,"\u94D0\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8\u94EA"],["ef40","\u986F",5,"\u988B\u988E\u9892\u9895\u9899\u98A3\u98A8",37,"\u98CF\u98D0\u98D4\u98D6\u98D7\u98DB\u98DC\u98DD\u98E0",4],["ef80","\u98E5\u98E6\u98E9",30,"\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512",4,"\u9518\u951B\u951D\u951E\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B\u955E\u955F\u955D\u9561\u9562\u9564",8,"\u956F\u9571\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14"],["f040","\u9908",4,"\u990E\u990F\u9911",28,"\u992F",26],["f080","\u994A",9,"\u9956",12,"\u9964\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20\u9E22\u9E28",4,"\u9E32\u9E31\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63\u9E66",6,"\u9E71\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605\u760C\u7617\u760A\u7625\u7618\u7615\u7619"],["f140","\u998C\u998E\u999A",10,"\u99A6\u99A7\u99A9",47],["f180","\u99D9",32,"\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052\u8069\u8071\u8983\u9878\u9880\u9883"],["f240","\u99FA",62],["f280","\u9A39",32,"\u9889\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759\u8765\u8793\u87AF\u87A8\u87D2"],["f340","\u9A5A",17,"\u9A72\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6\u9AA9",6,"\u9AB2\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF\u9AC3\u9AC4\u9AC6",4,"\u9ACD\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7\u9AD9\u9ADA\u9ADB\u9ADC"],["f380","\u9ADD\u9ADE\u9AE0\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA\u9AEC\u9AEE\u9AF0",8,"\u9AFA\u9AFC",6,"\u9B04\u9B05\u9B06\u87C6\u8788\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE\u7BFC\u7C0F\u7C16\u7C0B"],["f440","\u9B07\u9B09",5,"\u9B10\u9B11\u9B12\u9B14",10,"\u9B20\u9B21\u9B22\u9B24",10,"\u9B30\u9B31\u9B33",7,"\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55",5],["f480","\u9B5B",32,"\u7C1F\u7C2A\u7C26\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150\u914E\u914F\u9164"],["f540","\u9B7C",62],["f580","\u9BBB",32,"\u9162\u9161\u9170\u9169\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE\u89DA\u89DC"],["f640","\u9BDC",62],["f680","\u9C1B",32,"\u89E5\u89EB\u89EF\u8A3E\u8B26\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85",5,"\u9F8C\u9EFE\u9F0B\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A\u9C9B\u9C9E",5,"\u9CA5",4,"\u9CAB\u9CAD\u9CAE\u9CB0",7,"\u9CBA\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA\u9CCB"],["f740","\u9C3C",62],["f780","\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE",4,"\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB\u9CE0\u9CE1\u9CCC",4,"\u9CD3\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"],["f840","\u9CE3",62],["f880","\u9D22",32],["f940","\u9D43",62],["f980","\u9D82",32],["fa40","\u9DA3",62],["fa80","\u9DE2",32],["fb40","\u9E03",27,"\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F\u9E72\u9E74",9,"\u9E80"],["fb80","\u9E81\u9E83\u9E84\u9E85\u9E86\u9E89\u9E8A\u9E8C",5,"\u9E94",8,"\u9E9E\u9EA0",5,"\u9EA7\u9EA8\u9EA9\u9EAA"],["fc40","\u9EAB",8,"\u9EB5\u9EB6\u9EB7\u9EB9\u9EBA\u9EBC\u9EBF",4,"\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED\u9EEE\u9EF0",8,"\u9EFA\u9EFD\u9EFF",6],["fc80","\u9F06",4,"\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16\u9F18\u9F1A",5,"\u9F21\u9F23",8,"\u9F2D\u9F2E\u9F30\u9F31"],["fd40","\u9F32",4,"\u9F38\u9F3A\u9F3C\u9F3F",4,"\u9F45",10,"\u9F52",38],["fd80","\u9F79",5,"\u9F81\u9F82\u9F8D",11,"\u9F9C\u9F9D\u9F9E\u9FA1",4,"\uF92C\uF979\uF995\uF9E7\uF9F1"],["fe40","\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27\uFA28\uFA29"]]});var rp=V((PG,J$)=>{J$.exports=[["a140","\uE4C6",62],["a180","\uE505",32],["a240","\uE526",62],["a280","\uE565",32],["a2ab","\uE766",5],["a2e3","\u20AC\uE76D"],["a2ef","\uE76E\uE76F"],["a2fd","\uE770\uE771"],["a340","\uE586",62],["a380","\uE5C5",31,"\u3000"],["a440","\uE5E6",62],["a480","\uE625",32],["a4f4","\uE772",10],["a540","\uE646",62],["a580","\uE685",32],["a5f7","\uE77D",7],["a640","\uE6A6",62],["a680","\uE6E5",32],["a6b9","\uE785",7],["a6d9","\uE78D",6],["a6ec","\uE794\uE795"],["a6f3","\uE796"],["a6f6","\uE797",8],["a740","\uE706",62],["a780","\uE745",32],["a7c2","\uE7A0",14],["a7f2","\uE7AF",12],["a896","\uE7BC",10],["a8bc","\uE7C7"],["a8bf","\u01F9"],["a8c1","\uE7C9\uE7CA\uE7CB\uE7CC"],["a8ea","\uE7CD",20],["a958","\uE7E2"],["a95b","\uE7E3"],["a95d","\uE7E4\uE7E5\uE7E6"],["a989","\u303E\u2FF0",11],["a997","\uE7F4",12],["a9f0","\uE801",14],["aaa1","\uE000",93],["aba1","\uE05E",93],["aca1","\uE0BC",93],["ada1","\uE11A",93],["aea1","\uE178",93],["afa1","\uE1D6",93],["d7fa","\uE810",4],["f8a1","\uE234",93],["f9a1","\uE292",93],["faa1","\uE2F0",93],["fba1","\uE34E",93],["fca1","\uE3AC",93],["fda1","\uE40A",93],["fe50","\u2E81\uE816\uE817\uE818\u2E84\u3473\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C\uE843"],["fe80","\u4723\u4729\u477C\u478D\u2ECA\u4947\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1\u4C77\u4CA2\u4D13",6,"\u4DAE\uE864\uE468",93]]});var Kv=V(($G,Y$)=>{Y$.exports={uChars:[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],gbChars:[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189e3]}});var Xv=V((OG,Q$)=>{Q$.exports=[["0","\0",127],["8141","\uAC02\uAC03\uAC05\uAC06\uAC0B",4,"\uAC18\uAC1E\uAC1F\uAC21\uAC22\uAC23\uAC25",6,"\uAC2E\uAC32\uAC33\uAC34"],["8161","\uAC35\uAC36\uAC37\uAC3A\uAC3B\uAC3D\uAC3E\uAC3F\uAC41",9,"\uAC4C\uAC4E",5,"\uAC55"],["8181","\uAC56\uAC57\uAC59\uAC5A\uAC5B\uAC5D",18,"\uAC72\uAC73\uAC75\uAC76\uAC79\uAC7B",4,"\uAC82\uAC87\uAC88\uAC8D\uAC8E\uAC8F\uAC91\uAC92\uAC93\uAC95",6,"\uAC9E\uACA2",5,"\uACAB\uACAD\uACAE\uACB1",6,"\uACBA\uACBE\uACBF\uACC0\uACC2\uACC3\uACC5\uACC6\uACC7\uACC9\uACCA\uACCB\uACCD",7,"\uACD6\uACD8",7,"\uACE2\uACE3\uACE5\uACE6\uACE9\uACEB\uACED\uACEE\uACF2\uACF4\uACF7",4,"\uACFE\uACFF\uAD01\uAD02\uAD03\uAD05\uAD07",4,"\uAD0E\uAD10\uAD12\uAD13"],["8241","\uAD14\uAD15\uAD16\uAD17\uAD19\uAD1A\uAD1B\uAD1D\uAD1E\uAD1F\uAD21",7,"\uAD2A\uAD2B\uAD2E",5],["8261","\uAD36\uAD37\uAD39\uAD3A\uAD3B\uAD3D",6,"\uAD46\uAD48\uAD4A",5,"\uAD51\uAD52\uAD53\uAD55\uAD56\uAD57"],["8281","\uAD59",7,"\uAD62\uAD64",7,"\uAD6E\uAD6F\uAD71\uAD72\uAD77\uAD78\uAD79\uAD7A\uAD7E\uAD80\uAD83",4,"\uAD8A\uAD8B\uAD8D\uAD8E\uAD8F\uAD91",10,"\uAD9E",5,"\uADA5",17,"\uADB8",7,"\uADC2\uADC3\uADC5\uADC6\uADC7\uADC9",6,"\uADD2\uADD4",7,"\uADDD\uADDE\uADDF\uADE1\uADE2\uADE3\uADE5",18],["8341","\uADFA\uADFB\uADFD\uADFE\uAE02",5,"\uAE0A\uAE0C\uAE0E",5,"\uAE15",7],["8361","\uAE1D",18,"\uAE32\uAE33\uAE35\uAE36\uAE39\uAE3B\uAE3C"],["8381","\uAE3D\uAE3E\uAE3F\uAE42\uAE44\uAE47\uAE48\uAE49\uAE4B\uAE4F\uAE51\uAE52\uAE53\uAE55\uAE57",4,"\uAE5E\uAE62\uAE63\uAE64\uAE66\uAE67\uAE6A\uAE6B\uAE6D\uAE6E\uAE6F\uAE71",6,"\uAE7A\uAE7E",5,"\uAE86",5,"\uAE8D",46,"\uAEBF\uAEC1\uAEC2\uAEC3\uAEC5",6,"\uAECE\uAED2",5,"\uAEDA\uAEDB\uAEDD",8],["8441","\uAEE6\uAEE7\uAEE9\uAEEA\uAEEC\uAEEE",5,"\uAEF5\uAEF6\uAEF7\uAEF9\uAEFA\uAEFB\uAEFD",8],["8461","\uAF06\uAF09\uAF0A\uAF0B\uAF0C\uAF0E\uAF0F\uAF11",18],["8481","\uAF24",7,"\uAF2E\uAF2F\uAF31\uAF33\uAF35",6,"\uAF3E\uAF40\uAF44\uAF45\uAF46\uAF47\uAF4A",5,"\uAF51",10,"\uAF5E",5,"\uAF66",18,"\uAF7A",5,"\uAF81\uAF82\uAF83\uAF85\uAF86\uAF87\uAF89",6,"\uAF92\uAF93\uAF94\uAF96",5,"\uAF9D",26,"\uAFBA\uAFBB\uAFBD\uAFBE"],["8541","\uAFBF\uAFC1",5,"\uAFCA\uAFCC\uAFCF",4,"\uAFD5",6,"\uAFDD",4],["8561","\uAFE2",5,"\uAFEA",5,"\uAFF2\uAFF3\uAFF5\uAFF6\uAFF7\uAFF9",6,"\uB002\uB003"],["8581","\uB005",6,"\uB00D\uB00E\uB00F\uB011\uB012\uB013\uB015",6,"\uB01E",9,"\uB029",26,"\uB046\uB047\uB049\uB04B\uB04D\uB04F\uB050\uB051\uB052\uB056\uB058\uB05A\uB05B\uB05C\uB05E",29,"\uB07E\uB07F\uB081\uB082\uB083\uB085",6,"\uB08E\uB090\uB092",5,"\uB09B\uB09D\uB09E\uB0A3\uB0A4"],["8641","\uB0A5\uB0A6\uB0A7\uB0AA\uB0B0\uB0B2\uB0B6\uB0B7\uB0B9\uB0BA\uB0BB\uB0BD",6,"\uB0C6\uB0CA",5,"\uB0D2"],["8661","\uB0D3\uB0D5\uB0D6\uB0D7\uB0D9",6,"\uB0E1\uB0E2\uB0E3\uB0E4\uB0E6",10],["8681","\uB0F1",22,"\uB10A\uB10D\uB10E\uB10F\uB111\uB114\uB115\uB116\uB117\uB11A\uB11E",4,"\uB126\uB127\uB129\uB12A\uB12B\uB12D",6,"\uB136\uB13A",5,"\uB142\uB143\uB145\uB146\uB147\uB149",6,"\uB152\uB153\uB156\uB157\uB159\uB15A\uB15B\uB15D\uB15E\uB15F\uB161",22,"\uB17A\uB17B\uB17D\uB17E\uB17F\uB181\uB183",4,"\uB18A\uB18C\uB18E\uB18F\uB190\uB191\uB195\uB196\uB197\uB199\uB19A\uB19B\uB19D"],["8741","\uB19E",9,"\uB1A9",15],["8761","\uB1B9",18,"\uB1CD\uB1CE\uB1CF\uB1D1\uB1D2\uB1D3\uB1D5"],["8781","\uB1D6",5,"\uB1DE\uB1E0",7,"\uB1EA\uB1EB\uB1ED\uB1EE\uB1EF\uB1F1",7,"\uB1FA\uB1FC\uB1FE",5,"\uB206\uB207\uB209\uB20A\uB20D",6,"\uB216\uB218\uB21A",5,"\uB221",18,"\uB235",6,"\uB23D",26,"\uB259\uB25A\uB25B\uB25D\uB25E\uB25F\uB261",6,"\uB26A",4],["8841","\uB26F",4,"\uB276",5,"\uB27D",6,"\uB286\uB287\uB288\uB28A",4],["8861","\uB28F\uB292\uB293\uB295\uB296\uB297\uB29B",4,"\uB2A2\uB2A4\uB2A7\uB2A8\uB2A9\uB2AB\uB2AD\uB2AE\uB2AF\uB2B1\uB2B2\uB2B3\uB2B5\uB2B6\uB2B7"],["8881","\uB2B8",15,"\uB2CA\uB2CB\uB2CD\uB2CE\uB2CF\uB2D1\uB2D3",4,"\uB2DA\uB2DC\uB2DE\uB2DF\uB2E0\uB2E1\uB2E3\uB2E7\uB2E9\uB2EA\uB2F0\uB2F1\uB2F2\uB2F6\uB2FC\uB2FD\uB2FE\uB302\uB303\uB305\uB306\uB307\uB309",6,"\uB312\uB316",5,"\uB31D",54,"\uB357\uB359\uB35A\uB35D\uB360\uB361\uB362\uB363"],["8941","\uB366\uB368\uB36A\uB36C\uB36D\uB36F\uB372\uB373\uB375\uB376\uB377\uB379",6,"\uB382\uB386",5,"\uB38D"],["8961","\uB38E\uB38F\uB391\uB392\uB393\uB395",10,"\uB3A2",5,"\uB3A9\uB3AA\uB3AB\uB3AD"],["8981","\uB3AE",21,"\uB3C6\uB3C7\uB3C9\uB3CA\uB3CD\uB3CF\uB3D1\uB3D2\uB3D3\uB3D6\uB3D8\uB3DA\uB3DC\uB3DE\uB3DF\uB3E1\uB3E2\uB3E3\uB3E5\uB3E6\uB3E7\uB3E9",18,"\uB3FD",18,"\uB411",6,"\uB419\uB41A\uB41B\uB41D\uB41E\uB41F\uB421",6,"\uB42A\uB42C",7,"\uB435",15],["8a41","\uB445",10,"\uB452\uB453\uB455\uB456\uB457\uB459",6,"\uB462\uB464\uB466"],["8a61","\uB467",4,"\uB46D",18,"\uB481\uB482"],["8a81","\uB483",4,"\uB489",19,"\uB49E",5,"\uB4A5\uB4A6\uB4A7\uB4A9\uB4AA\uB4AB\uB4AD",7,"\uB4B6\uB4B8\uB4BA",5,"\uB4C1\uB4C2\uB4C3\uB4C5\uB4C6\uB4C7\uB4C9",6,"\uB4D1\uB4D2\uB4D3\uB4D4\uB4D6",5,"\uB4DE\uB4DF\uB4E1\uB4E2\uB4E5\uB4E7",4,"\uB4EE\uB4F0\uB4F2",5,"\uB4F9",26,"\uB516\uB517\uB519\uB51A\uB51D"],["8b41","\uB51E",5,"\uB526\uB52B",4,"\uB532\uB533\uB535\uB536\uB537\uB539",6,"\uB542\uB546"],["8b61","\uB547\uB548\uB549\uB54A\uB54E\uB54F\uB551\uB552\uB553\uB555",6,"\uB55E\uB562",8],["8b81","\uB56B",52,"\uB5A2\uB5A3\uB5A5\uB5A6\uB5A7\uB5A9\uB5AC\uB5AD\uB5AE\uB5AF\uB5B2\uB5B6",4,"\uB5BE\uB5BF\uB5C1\uB5C2\uB5C3\uB5C5",6,"\uB5CE\uB5D2",5,"\uB5D9",18,"\uB5ED",18],["8c41","\uB600",15,"\uB612\uB613\uB615\uB616\uB617\uB619",4],["8c61","\uB61E",6,"\uB626",5,"\uB62D",6,"\uB635",5],["8c81","\uB63B",12,"\uB649",26,"\uB665\uB666\uB667\uB669",50,"\uB69E\uB69F\uB6A1\uB6A2\uB6A3\uB6A5",5,"\uB6AD\uB6AE\uB6AF\uB6B0\uB6B2",16],["8d41","\uB6C3",16,"\uB6D5",8],["8d61","\uB6DE",17,"\uB6F1\uB6F2\uB6F3\uB6F5\uB6F6\uB6F7\uB6F9\uB6FA"],["8d81","\uB6FB",4,"\uB702\uB703\uB704\uB706",33,"\uB72A\uB72B\uB72D\uB72E\uB731",6,"\uB73A\uB73C",7,"\uB745\uB746\uB747\uB749\uB74A\uB74B\uB74D",6,"\uB756",9,"\uB761\uB762\uB763\uB765\uB766\uB767\uB769",6,"\uB772\uB774\uB776",5,"\uB77E\uB77F\uB781\uB782\uB783\uB785",6,"\uB78E\uB793\uB794\uB795\uB79A\uB79B\uB79D\uB79E"],["8e41","\uB79F\uB7A1",6,"\uB7AA\uB7AE",5,"\uB7B6\uB7B7\uB7B9",8],["8e61","\uB7C2",4,"\uB7C8\uB7CA",19],["8e81","\uB7DE",13,"\uB7EE\uB7EF\uB7F1\uB7F2\uB7F3\uB7F5",6,"\uB7FE\uB802",4,"\uB80A\uB80B\uB80D\uB80E\uB80F\uB811",6,"\uB81A\uB81C\uB81E",5,"\uB826\uB827\uB829\uB82A\uB82B\uB82D",6,"\uB836\uB83A",5,"\uB841\uB842\uB843\uB845",11,"\uB852\uB854",7,"\uB85E\uB85F\uB861\uB862\uB863\uB865",6,"\uB86E\uB870\uB872",5,"\uB879\uB87A\uB87B\uB87D",7],["8f41","\uB885",7,"\uB88E",17],["8f61","\uB8A0",7,"\uB8A9",6,"\uB8B1\uB8B2\uB8B3\uB8B5\uB8B6\uB8B7\uB8B9",4],["8f81","\uB8BE\uB8BF\uB8C2\uB8C4\uB8C6",5,"\uB8CD\uB8CE\uB8CF\uB8D1\uB8D2\uB8D3\uB8D5",7,"\uB8DE\uB8E0\uB8E2",5,"\uB8EA\uB8EB\uB8ED\uB8EE\uB8EF\uB8F1",6,"\uB8FA\uB8FC\uB8FE",5,"\uB905",18,"\uB919",6,"\uB921",26,"\uB93E\uB93F\uB941\uB942\uB943\uB945",6,"\uB94D\uB94E\uB950\uB952",5],["9041","\uB95A\uB95B\uB95D\uB95E\uB95F\uB961",6,"\uB96A\uB96C\uB96E",5,"\uB976\uB977\uB979\uB97A\uB97B\uB97D"],["9061","\uB97E",5,"\uB986\uB988\uB98B\uB98C\uB98F",15],["9081","\uB99F",12,"\uB9AE\uB9AF\uB9B1\uB9B2\uB9B3\uB9B5",6,"\uB9BE\uB9C0\uB9C2",5,"\uB9CA\uB9CB\uB9CD\uB9D3",4,"\uB9DA\uB9DC\uB9DF\uB9E0\uB9E2\uB9E6\uB9E7\uB9E9\uB9EA\uB9EB\uB9ED",6,"\uB9F6\uB9FB",4,"\uBA02",5,"\uBA09",11,"\uBA16",33,"\uBA3A\uBA3B\uBA3D\uBA3E\uBA3F\uBA41\uBA43\uBA44\uBA45\uBA46"],["9141","\uBA47\uBA4A\uBA4C\uBA4F\uBA50\uBA51\uBA52\uBA56\uBA57\uBA59\uBA5A\uBA5B\uBA5D",6,"\uBA66\uBA6A",5],["9161","\uBA72\uBA73\uBA75\uBA76\uBA77\uBA79",9,"\uBA86\uBA88\uBA89\uBA8A\uBA8B\uBA8D",5],["9181","\uBA93",20,"\uBAAA\uBAAD\uBAAE\uBAAF\uBAB1\uBAB3",4,"\uBABA\uBABC\uBABE",5,"\uBAC5\uBAC6\uBAC7\uBAC9",14,"\uBADA",33,"\uBAFD\uBAFE\uBAFF\uBB01\uBB02\uBB03\uBB05",7,"\uBB0E\uBB10\uBB12",5,"\uBB19\uBB1A\uBB1B\uBB1D\uBB1E\uBB1F\uBB21",6],["9241","\uBB28\uBB2A\uBB2C",7,"\uBB37\uBB39\uBB3A\uBB3F",4,"\uBB46\uBB48\uBB4A\uBB4B\uBB4C\uBB4E\uBB51\uBB52"],["9261","\uBB53\uBB55\uBB56\uBB57\uBB59",7,"\uBB62\uBB64",7,"\uBB6D",4],["9281","\uBB72",21,"\uBB89\uBB8A\uBB8B\uBB8D\uBB8E\uBB8F\uBB91",18,"\uBBA5\uBBA6\uBBA7\uBBA9\uBBAA\uBBAB\uBBAD",6,"\uBBB5\uBBB6\uBBB8",7,"\uBBC1\uBBC2\uBBC3\uBBC5\uBBC6\uBBC7\uBBC9",6,"\uBBD1\uBBD2\uBBD4",35,"\uBBFA\uBBFB\uBBFD\uBBFE\uBC01"],["9341","\uBC03",4,"\uBC0A\uBC0E\uBC10\uBC12\uBC13\uBC19\uBC1A\uBC20\uBC21\uBC22\uBC23\uBC26\uBC28\uBC2A\uBC2B\uBC2C\uBC2E\uBC2F\uBC32\uBC33\uBC35"],["9361","\uBC36\uBC37\uBC39",6,"\uBC42\uBC46\uBC47\uBC48\uBC4A\uBC4B\uBC4E\uBC4F\uBC51",8],["9381","\uBC5A\uBC5B\uBC5C\uBC5E",37,"\uBC86\uBC87\uBC89\uBC8A\uBC8D\uBC8F",4,"\uBC96\uBC98\uBC9B",4,"\uBCA2\uBCA3\uBCA5\uBCA6\uBCA9",6,"\uBCB2\uBCB6",5,"\uBCBE\uBCBF\uBCC1\uBCC2\uBCC3\uBCC5",7,"\uBCCE\uBCD2\uBCD3\uBCD4\uBCD6\uBCD7\uBCD9\uBCDA\uBCDB\uBCDD",22,"\uBCF7\uBCF9\uBCFA\uBCFB\uBCFD"],["9441","\uBCFE",5,"\uBD06\uBD08\uBD0A",5,"\uBD11\uBD12\uBD13\uBD15",8],["9461","\uBD1E",5,"\uBD25",6,"\uBD2D",12],["9481","\uBD3A",5,"\uBD41",6,"\uBD4A\uBD4B\uBD4D\uBD4E\uBD4F\uBD51",6,"\uBD5A",9,"\uBD65\uBD66\uBD67\uBD69",22,"\uBD82\uBD83\uBD85\uBD86\uBD8B",4,"\uBD92\uBD94\uBD96\uBD97\uBD98\uBD9B\uBD9D",6,"\uBDA5",10,"\uBDB1",6,"\uBDB9",24],["9541","\uBDD2\uBDD3\uBDD6\uBDD7\uBDD9\uBDDA\uBDDB\uBDDD",11,"\uBDEA",5,"\uBDF1"],["9561","\uBDF2\uBDF3\uBDF5\uBDF6\uBDF7\uBDF9",6,"\uBE01\uBE02\uBE04\uBE06",5,"\uBE0E\uBE0F\uBE11\uBE12\uBE13"],["9581","\uBE15",6,"\uBE1E\uBE20",35,"\uBE46\uBE47\uBE49\uBE4A\uBE4B\uBE4D\uBE4F",4,"\uBE56\uBE58\uBE5C\uBE5D\uBE5E\uBE5F\uBE62\uBE63\uBE65\uBE66\uBE67\uBE69\uBE6B",4,"\uBE72\uBE76",4,"\uBE7E\uBE7F\uBE81\uBE82\uBE83\uBE85",6,"\uBE8E\uBE92",5,"\uBE9A",13,"\uBEA9",14],["9641","\uBEB8",23,"\uBED2\uBED3"],["9661","\uBED5\uBED6\uBED9",6,"\uBEE1\uBEE2\uBEE6",5,"\uBEED",8],["9681","\uBEF6",10,"\uBF02",5,"\uBF0A",13,"\uBF1A\uBF1E",33,"\uBF42\uBF43\uBF45\uBF46\uBF47\uBF49",6,"\uBF52\uBF53\uBF54\uBF56",44],["9741","\uBF83",16,"\uBF95",8],["9761","\uBF9E",17,"\uBFB1",7],["9781","\uBFB9",11,"\uBFC6",5,"\uBFCE\uBFCF\uBFD1\uBFD2\uBFD3\uBFD5",6,"\uBFDD\uBFDE\uBFE0\uBFE2",89,"\uC03D\uC03E\uC03F"],["9841","\uC040",16,"\uC052",5,"\uC059\uC05A\uC05B"],["9861","\uC05D\uC05E\uC05F\uC061",6,"\uC06A",15],["9881","\uC07A",21,"\uC092\uC093\uC095\uC096\uC097\uC099",6,"\uC0A2\uC0A4\uC0A6",5,"\uC0AE\uC0B1\uC0B2\uC0B7",4,"\uC0BE\uC0C2\uC0C3\uC0C4\uC0C6\uC0C7\uC0CA\uC0CB\uC0CD\uC0CE\uC0CF\uC0D1",6,"\uC0DA\uC0DE",5,"\uC0E6\uC0E7\uC0E9\uC0EA\uC0EB\uC0ED",6,"\uC0F6\uC0F8\uC0FA",5,"\uC101\uC102\uC103\uC105\uC106\uC107\uC109",6,"\uC111\uC112\uC113\uC114\uC116",5,"\uC121\uC122\uC125\uC128\uC129\uC12A\uC12B\uC12E"],["9941","\uC132\uC133\uC134\uC135\uC137\uC13A\uC13B\uC13D\uC13E\uC13F\uC141",6,"\uC14A\uC14E",5,"\uC156\uC157"],["9961","\uC159\uC15A\uC15B\uC15D",6,"\uC166\uC16A",5,"\uC171\uC172\uC173\uC175\uC176\uC177\uC179\uC17A\uC17B"],["9981","\uC17C",8,"\uC186",5,"\uC18F\uC191\uC192\uC193\uC195\uC197",4,"\uC19E\uC1A0\uC1A2\uC1A3\uC1A4\uC1A6\uC1A7\uC1AA\uC1AB\uC1AD\uC1AE\uC1AF\uC1B1",11,"\uC1BE",5,"\uC1C5\uC1C6\uC1C7\uC1C9\uC1CA\uC1CB\uC1CD",6,"\uC1D5\uC1D6\uC1D9",6,"\uC1E1\uC1E2\uC1E3\uC1E5\uC1E6\uC1E7\uC1E9",6,"\uC1F2\uC1F4",7,"\uC1FE\uC1FF\uC201\uC202\uC203\uC205",6,"\uC20E\uC210\uC212",5,"\uC21A\uC21B\uC21D\uC21E\uC221\uC222\uC223"],["9a41","\uC224\uC225\uC226\uC227\uC22A\uC22C\uC22E\uC230\uC233\uC235",16],["9a61","\uC246\uC247\uC249",6,"\uC252\uC253\uC255\uC256\uC257\uC259",6,"\uC261\uC262\uC263\uC264\uC266"],["9a81","\uC267",4,"\uC26E\uC26F\uC271\uC272\uC273\uC275",6,"\uC27E\uC280\uC282",5,"\uC28A",5,"\uC291",6,"\uC299\uC29A\uC29C\uC29E",5,"\uC2A6\uC2A7\uC2A9\uC2AA\uC2AB\uC2AE",5,"\uC2B6\uC2B8\uC2BA",33,"\uC2DE\uC2DF\uC2E1\uC2E2\uC2E5",5,"\uC2EE\uC2F0\uC2F2\uC2F3\uC2F4\uC2F5\uC2F7\uC2FA\uC2FD\uC2FE\uC2FF\uC301",6,"\uC30A\uC30B\uC30E\uC30F"],["9b41","\uC310\uC311\uC312\uC316\uC317\uC319\uC31A\uC31B\uC31D",6,"\uC326\uC327\uC32A",8],["9b61","\uC333",17,"\uC346",7],["9b81","\uC34E",25,"\uC36A\uC36B\uC36D\uC36E\uC36F\uC371\uC373",4,"\uC37A\uC37B\uC37E",5,"\uC385\uC386\uC387\uC389\uC38A\uC38B\uC38D",50,"\uC3C1",22,"\uC3DA"],["9c41","\uC3DB\uC3DD\uC3DE\uC3E1\uC3E3",4,"\uC3EA\uC3EB\uC3EC\uC3EE",5,"\uC3F6\uC3F7\uC3F9",5],["9c61","\uC3FF",8,"\uC409",6,"\uC411",9],["9c81","\uC41B",8,"\uC425",6,"\uC42D\uC42E\uC42F\uC431\uC432\uC433\uC435",6,"\uC43E",9,"\uC449",26,"\uC466\uC467\uC469\uC46A\uC46B\uC46D",6,"\uC476\uC477\uC478\uC47A",5,"\uC481",18,"\uC495",6,"\uC49D",12],["9d41","\uC4AA",13,"\uC4B9\uC4BA\uC4BB\uC4BD",8],["9d61","\uC4C6",25],["9d81","\uC4E0",8,"\uC4EA",5,"\uC4F2\uC4F3\uC4F5\uC4F6\uC4F7\uC4F9\uC4FB\uC4FC\uC4FD\uC4FE\uC502",9,"\uC50D\uC50E\uC50F\uC511\uC512\uC513\uC515",6,"\uC51D",10,"\uC52A\uC52B\uC52D\uC52E\uC52F\uC531",6,"\uC53A\uC53C\uC53E",5,"\uC546\uC547\uC54B\uC54F\uC550\uC551\uC552\uC556\uC55A\uC55B\uC55C\uC55F\uC562\uC563\uC565\uC566\uC567\uC569",6,"\uC572\uC576",5,"\uC57E\uC57F\uC581\uC582\uC583\uC585\uC586\uC588\uC589\uC58A\uC58B\uC58E\uC590\uC592\uC593\uC594"],["9e41","\uC596\uC599\uC59A\uC59B\uC59D\uC59E\uC59F\uC5A1",7,"\uC5AA",9,"\uC5B6"],["9e61","\uC5B7\uC5BA\uC5BF",4,"\uC5CB\uC5CD\uC5CF\uC5D2\uC5D3\uC5D5\uC5D6\uC5D7\uC5D9",6,"\uC5E2\uC5E4\uC5E6\uC5E7"],["9e81","\uC5E8\uC5E9\uC5EA\uC5EB\uC5EF\uC5F1\uC5F2\uC5F3\uC5F5\uC5F8\uC5F9\uC5FA\uC5FB\uC602\uC603\uC604\uC609\uC60A\uC60B\uC60D\uC60E\uC60F\uC611",6,"\uC61A\uC61D",6,"\uC626\uC627\uC629\uC62A\uC62B\uC62F\uC631\uC632\uC636\uC638\uC63A\uC63C\uC63D\uC63E\uC63F\uC642\uC643\uC645\uC646\uC647\uC649",6,"\uC652\uC656",5,"\uC65E\uC65F\uC661",10,"\uC66D\uC66E\uC670\uC672",5,"\uC67A\uC67B\uC67D\uC67E\uC67F\uC681",6,"\uC68A\uC68C\uC68E",5,"\uC696\uC697\uC699\uC69A\uC69B\uC69D",6,"\uC6A6"],["9f41","\uC6A8\uC6AA",5,"\uC6B2\uC6B3\uC6B5\uC6B6\uC6B7\uC6BB",4,"\uC6C2\uC6C4\uC6C6",5,"\uC6CE"],["9f61","\uC6CF\uC6D1\uC6D2\uC6D3\uC6D5",6,"\uC6DE\uC6DF\uC6E2",5,"\uC6EA\uC6EB\uC6ED\uC6EE\uC6EF\uC6F1\uC6F2"],["9f81","\uC6F3",4,"\uC6FA\uC6FB\uC6FC\uC6FE",5,"\uC706\uC707\uC709\uC70A\uC70B\uC70D",6,"\uC716\uC718\uC71A",5,"\uC722\uC723\uC725\uC726\uC727\uC729",6,"\uC732\uC734\uC736\uC738\uC739\uC73A\uC73B\uC73E\uC73F\uC741\uC742\uC743\uC745",4,"\uC74B\uC74E\uC750\uC759\uC75A\uC75B\uC75D\uC75E\uC75F\uC761",6,"\uC769\uC76A\uC76C",7,"\uC776\uC777\uC779\uC77A\uC77B\uC77F\uC780\uC781\uC782\uC786\uC78B\uC78C\uC78D\uC78F\uC792\uC793\uC795\uC799\uC79B",4,"\uC7A2\uC7A7",4,"\uC7AE\uC7AF\uC7B1\uC7B2\uC7B3\uC7B5\uC7B6\uC7B7"],["a041","\uC7B8\uC7B9\uC7BA\uC7BB\uC7BE\uC7C2",5,"\uC7CA\uC7CB\uC7CD\uC7CF\uC7D1",6,"\uC7D9\uC7DA\uC7DB\uC7DC"],["a061","\uC7DE",5,"\uC7E5\uC7E6\uC7E7\uC7E9\uC7EA\uC7EB\uC7ED",13],["a081","\uC7FB",4,"\uC802\uC803\uC805\uC806\uC807\uC809\uC80B",4,"\uC812\uC814\uC817",4,"\uC81E\uC81F\uC821\uC822\uC823\uC825",6,"\uC82E\uC830\uC832",5,"\uC839\uC83A\uC83B\uC83D\uC83E\uC83F\uC841",6,"\uC84A\uC84B\uC84E",5,"\uC855",26,"\uC872\uC873\uC875\uC876\uC877\uC879\uC87B",4,"\uC882\uC884\uC888\uC889\uC88A\uC88E",5,"\uC895",7,"\uC89E\uC8A0\uC8A2\uC8A3\uC8A4"],["a141","\uC8A5\uC8A6\uC8A7\uC8A9",18,"\uC8BE\uC8BF\uC8C0\uC8C1"],["a161","\uC8C2\uC8C3\uC8C5\uC8C6\uC8C7\uC8C9\uC8CA\uC8CB\uC8CD",6,"\uC8D6\uC8D8\uC8DA",5,"\uC8E2\uC8E3\uC8E5"],["a181","\uC8E6",14,"\uC8F6",5,"\uC8FE\uC8FF\uC901\uC902\uC903\uC907",4,"\uC90E\u3000\u3001\u3002\xB7\u2025\u2026\xA8\u3003\xAD\u2015\u2225\uFF3C\u223C\u2018\u2019\u201C\u201D\u3014\u3015\u3008",9,"\xB1\xD7\xF7\u2260\u2264\u2265\u221E\u2234\xB0\u2032\u2033\u2103\u212B\uFFE0\uFFE1\uFFE5\u2642\u2640\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\xA7\u203B\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u2192\u2190\u2191\u2193\u2194\u3013\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229\u2227\u2228\uFFE2"],["a241","\uC910\uC912",5,"\uC919",18],["a261","\uC92D",6,"\uC935",18],["a281","\uC948",7,"\uC952\uC953\uC955\uC956\uC957\uC959",6,"\uC962\uC964",7,"\uC96D\uC96E\uC96F\u21D2\u21D4\u2200\u2203\xB4\uFF5E\u02C7\u02D8\u02DD\u02DA\u02D9\xB8\u02DB\xA1\xBF\u02D0\u222E\u2211\u220F\xA4\u2109\u2030\u25C1\u25C0\u25B7\u25B6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25C8\u25A3\u25D0\u25D1\u2592\u25A4\u25A5\u25A8\u25A7\u25A6\u25A9\u2668\u260F\u260E\u261C\u261E\xB6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266D\u2669\u266A\u266C\u327F\u321C\u2116\u33C7\u2122\u33C2\u33D8\u2121\u20AC\xAE"],["a341","\uC971\uC972\uC973\uC975",6,"\uC97D",10,"\uC98A\uC98B\uC98D\uC98E\uC98F"],["a361","\uC991",6,"\uC99A\uC99C\uC99E",16],["a381","\uC9AF",16,"\uC9C2\uC9C3\uC9C5\uC9C6\uC9C9\uC9CB",4,"\uC9D2\uC9D4\uC9D7\uC9D8\uC9DB\uFF01",58,"\uFFE6\uFF3D",32,"\uFFE3"],["a441","\uC9DE\uC9DF\uC9E1\uC9E3\uC9E5\uC9E6\uC9E8\uC9E9\uC9EA\uC9EB\uC9EE\uC9F2",5,"\uC9FA\uC9FB\uC9FD\uC9FE\uC9FF\uCA01\uCA02\uCA03\uCA04"],["a461","\uCA05\uCA06\uCA07\uCA0A\uCA0E",5,"\uCA15\uCA16\uCA17\uCA19",12],["a481","\uCA26\uCA27\uCA28\uCA2A",28,"\u3131",93],["a541","\uCA47",4,"\uCA4E\uCA4F\uCA51\uCA52\uCA53\uCA55",6,"\uCA5E\uCA62",5,"\uCA69\uCA6A"],["a561","\uCA6B",17,"\uCA7E",5,"\uCA85\uCA86"],["a581","\uCA87",16,"\uCA99",14,"\u2170",9],["a5b0","\u2160",9],["a5c1","\u0391",16,"\u03A3",6],["a5e1","\u03B1",16,"\u03C3",6],["a641","\uCAA8",19,"\uCABE\uCABF\uCAC1\uCAC2\uCAC3\uCAC5"],["a661","\uCAC6",5,"\uCACE\uCAD0\uCAD2\uCAD4\uCAD5\uCAD6\uCAD7\uCADA",5,"\uCAE1",6],["a681","\uCAE8\uCAE9\uCAEA\uCAEB\uCAED",6,"\uCAF5",18,"\uCB09\uCB0A\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542\u2512\u2511\u251A\u2519\u2516\u2515\u250E\u250D\u251E\u251F\u2521\u2522\u2526\u2527\u2529\u252A\u252D\u252E\u2531\u2532\u2535\u2536\u2539\u253A\u253D\u253E\u2540\u2541\u2543",7],["a741","\uCB0B",4,"\uCB11\uCB12\uCB13\uCB15\uCB16\uCB17\uCB19",6,"\uCB22",7],["a761","\uCB2A",22,"\uCB42\uCB43\uCB44"],["a781","\uCB45\uCB46\uCB47\uCB4A\uCB4B\uCB4D\uCB4E\uCB4F\uCB51",6,"\uCB5A\uCB5B\uCB5C\uCB5E",5,"\uCB65",7,"\u3395\u3396\u3397\u2113\u3398\u33C4\u33A3\u33A4\u33A5\u33A6\u3399",9,"\u33CA\u338D\u338E\u338F\u33CF\u3388\u3389\u33C8\u33A7\u33A8\u33B0",9,"\u3380",4,"\u33BA",5,"\u3390",4,"\u2126\u33C0\u33C1\u338A\u338B\u338C\u33D6\u33C5\u33AD\u33AE\u33AF\u33DB\u33A9\u33AA\u33AB\u33AC\u33DD\u33D0\u33D3\u33C3\u33C9\u33DC\u33C6"],["a841","\uCB6D",10,"\uCB7A",14],["a861","\uCB89",18,"\uCB9D",6],["a881","\uCBA4",19,"\uCBB9",11,"\xC6\xD0\xAA\u0126"],["a8a6","\u0132"],["a8a8","\u013F\u0141\xD8\u0152\xBA\xDE\u0166\u014A"],["a8b1","\u3260",27,"\u24D0",25,"\u2460",14,"\xBD\u2153\u2154\xBC\xBE\u215B\u215C\u215D\u215E"],["a941","\uCBC5",14,"\uCBD5",10],["a961","\uCBE0\uCBE1\uCBE2\uCBE3\uCBE5\uCBE6\uCBE8\uCBEA",18],["a981","\uCBFD",14,"\uCC0E\uCC0F\uCC11\uCC12\uCC13\uCC15",6,"\uCC1E\uCC1F\uCC20\uCC23\uCC24\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0140\u0142\xF8\u0153\xDF\xFE\u0167\u014B\u0149\u3200",27,"\u249C",25,"\u2474",14,"\xB9\xB2\xB3\u2074\u207F\u2081\u2082\u2083\u2084"],["aa41","\uCC25\uCC26\uCC2A\uCC2B\uCC2D\uCC2F\uCC31",6,"\uCC3A\uCC3F",4,"\uCC46\uCC47\uCC49\uCC4A\uCC4B\uCC4D\uCC4E"],["aa61","\uCC4F",4,"\uCC56\uCC5A",5,"\uCC61\uCC62\uCC63\uCC65\uCC67\uCC69",6,"\uCC71\uCC72"],["aa81","\uCC73\uCC74\uCC76",29,"\u3041",82],["ab41","\uCC94\uCC95\uCC96\uCC97\uCC9A\uCC9B\uCC9D\uCC9E\uCC9F\uCCA1",6,"\uCCAA\uCCAE",5,"\uCCB6\uCCB7\uCCB9"],["ab61","\uCCBA\uCCBB\uCCBD",6,"\uCCC6\uCCC8\uCCCA",5,"\uCCD1\uCCD2\uCCD3\uCCD5",5],["ab81","\uCCDB",8,"\uCCE5",6,"\uCCED\uCCEE\uCCEF\uCCF1",12,"\u30A1",85],["ac41","\uCCFE\uCCFF\uCD00\uCD02",5,"\uCD0A\uCD0B\uCD0D\uCD0E\uCD0F\uCD11",6,"\uCD1A\uCD1C\uCD1E\uCD1F\uCD20"],["ac61","\uCD21\uCD22\uCD23\uCD25\uCD26\uCD27\uCD29\uCD2A\uCD2B\uCD2D",11,"\uCD3A",4],["ac81","\uCD3F",28,"\uCD5D\uCD5E\uCD5F\u0410",5,"\u0401\u0416",25],["acd1","\u0430",5,"\u0451\u0436",25],["ad41","\uCD61\uCD62\uCD63\uCD65",6,"\uCD6E\uCD70\uCD72",5,"\uCD79",7],["ad61","\uCD81",6,"\uCD89",10,"\uCD96\uCD97\uCD99\uCD9A\uCD9B\uCD9D\uCD9E\uCD9F"],["ad81","\uCDA0\uCDA1\uCDA2\uCDA3\uCDA6\uCDA8\uCDAA",5,"\uCDB1",18,"\uCDC5"],["ae41","\uCDC6",5,"\uCDCD\uCDCE\uCDCF\uCDD1",16],["ae61","\uCDE2",5,"\uCDE9\uCDEA\uCDEB\uCDED\uCDEE\uCDEF\uCDF1",6,"\uCDFA\uCDFC\uCDFE",4],["ae81","\uCE03\uCE05\uCE06\uCE07\uCE09\uCE0A\uCE0B\uCE0D",6,"\uCE15\uCE16\uCE17\uCE18\uCE1A",5,"\uCE22\uCE23\uCE25\uCE26\uCE27\uCE29\uCE2A\uCE2B"],["af41","\uCE2C\uCE2D\uCE2E\uCE2F\uCE32\uCE34\uCE36",19],["af61","\uCE4A",13,"\uCE5A\uCE5B\uCE5D\uCE5E\uCE62",5,"\uCE6A\uCE6C"],["af81","\uCE6E",5,"\uCE76\uCE77\uCE79\uCE7A\uCE7B\uCE7D",6,"\uCE86\uCE88\uCE8A",5,"\uCE92\uCE93\uCE95\uCE96\uCE97\uCE99"],["b041","\uCE9A",5,"\uCEA2\uCEA6",5,"\uCEAE",12],["b061","\uCEBB",5,"\uCEC2",19],["b081","\uCED6",13,"\uCEE6\uCEE7\uCEE9\uCEEA\uCEED",6,"\uCEF6\uCEFA",5,"\uAC00\uAC01\uAC04\uAC07\uAC08\uAC09\uAC0A\uAC10",7,"\uAC19",4,"\uAC20\uAC24\uAC2C\uAC2D\uAC2F\uAC30\uAC31\uAC38\uAC39\uAC3C\uAC40\uAC4B\uAC4D\uAC54\uAC58\uAC5C\uAC70\uAC71\uAC74\uAC77\uAC78\uAC7A\uAC80\uAC81\uAC83\uAC84\uAC85\uAC86\uAC89\uAC8A\uAC8B\uAC8C\uAC90\uAC94\uAC9C\uAC9D\uAC9F\uACA0\uACA1\uACA8\uACA9\uACAA\uACAC\uACAF\uACB0\uACB8\uACB9\uACBB\uACBC\uACBD\uACC1\uACC4\uACC8\uACCC\uACD5\uACD7\uACE0\uACE1\uACE4\uACE7\uACE8\uACEA\uACEC\uACEF\uACF0\uACF1\uACF3\uACF5\uACF6\uACFC\uACFD\uAD00\uAD04\uAD06"],["b141","\uCF02\uCF03\uCF05\uCF06\uCF07\uCF09",6,"\uCF12\uCF14\uCF16",5,"\uCF1D\uCF1E\uCF1F\uCF21\uCF22\uCF23"],["b161","\uCF25",6,"\uCF2E\uCF32",5,"\uCF39",11],["b181","\uCF45",14,"\uCF56\uCF57\uCF59\uCF5A\uCF5B\uCF5D",6,"\uCF66\uCF68\uCF6A\uCF6B\uCF6C\uAD0C\uAD0D\uAD0F\uAD11\uAD18\uAD1C\uAD20\uAD29\uAD2C\uAD2D\uAD34\uAD35\uAD38\uAD3C\uAD44\uAD45\uAD47\uAD49\uAD50\uAD54\uAD58\uAD61\uAD63\uAD6C\uAD6D\uAD70\uAD73\uAD74\uAD75\uAD76\uAD7B\uAD7C\uAD7D\uAD7F\uAD81\uAD82\uAD88\uAD89\uAD8C\uAD90\uAD9C\uAD9D\uADA4\uADB7\uADC0\uADC1\uADC4\uADC8\uADD0\uADD1\uADD3\uADDC\uADE0\uADE4\uADF8\uADF9\uADFC\uADFF\uAE00\uAE01\uAE08\uAE09\uAE0B\uAE0D\uAE14\uAE30\uAE31\uAE34\uAE37\uAE38\uAE3A\uAE40\uAE41\uAE43\uAE45\uAE46\uAE4A\uAE4C\uAE4D\uAE4E\uAE50\uAE54\uAE56\uAE5C\uAE5D\uAE5F\uAE60\uAE61\uAE65\uAE68\uAE69\uAE6C\uAE70\uAE78"],["b241","\uCF6D\uCF6E\uCF6F\uCF72\uCF73\uCF75\uCF76\uCF77\uCF79",6,"\uCF81\uCF82\uCF83\uCF84\uCF86",5,"\uCF8D"],["b261","\uCF8E",18,"\uCFA2",5,"\uCFA9"],["b281","\uCFAA",5,"\uCFB1",18,"\uCFC5",6,"\uAE79\uAE7B\uAE7C\uAE7D\uAE84\uAE85\uAE8C\uAEBC\uAEBD\uAEBE\uAEC0\uAEC4\uAECC\uAECD\uAECF\uAED0\uAED1\uAED8\uAED9\uAEDC\uAEE8\uAEEB\uAEED\uAEF4\uAEF8\uAEFC\uAF07\uAF08\uAF0D\uAF10\uAF2C\uAF2D\uAF30\uAF32\uAF34\uAF3C\uAF3D\uAF3F\uAF41\uAF42\uAF43\uAF48\uAF49\uAF50\uAF5C\uAF5D\uAF64\uAF65\uAF79\uAF80\uAF84\uAF88\uAF90\uAF91\uAF95\uAF9C\uAFB8\uAFB9\uAFBC\uAFC0\uAFC7\uAFC8\uAFC9\uAFCB\uAFCD\uAFCE\uAFD4\uAFDC\uAFE8\uAFE9\uAFF0\uAFF1\uAFF4\uAFF8\uB000\uB001\uB004\uB00C\uB010\uB014\uB01C\uB01D\uB028\uB044\uB045\uB048\uB04A\uB04C\uB04E\uB053\uB054\uB055\uB057\uB059"],["b341","\uCFCC",19,"\uCFE2\uCFE3\uCFE5\uCFE6\uCFE7\uCFE9"],["b361","\uCFEA",5,"\uCFF2\uCFF4\uCFF6",5,"\uCFFD\uCFFE\uCFFF\uD001\uD002\uD003\uD005",5],["b381","\uD00B",5,"\uD012",5,"\uD019",19,"\uB05D\uB07C\uB07D\uB080\uB084\uB08C\uB08D\uB08F\uB091\uB098\uB099\uB09A\uB09C\uB09F\uB0A0\uB0A1\uB0A2\uB0A8\uB0A9\uB0AB",4,"\uB0B1\uB0B3\uB0B4\uB0B5\uB0B8\uB0BC\uB0C4\uB0C5\uB0C7\uB0C8\uB0C9\uB0D0\uB0D1\uB0D4\uB0D8\uB0E0\uB0E5\uB108\uB109\uB10B\uB10C\uB110\uB112\uB113\uB118\uB119\uB11B\uB11C\uB11D\uB123\uB124\uB125\uB128\uB12C\uB134\uB135\uB137\uB138\uB139\uB140\uB141\uB144\uB148\uB150\uB151\uB154\uB155\uB158\uB15C\uB160\uB178\uB179\uB17C\uB180\uB182\uB188\uB189\uB18B\uB18D\uB192\uB193\uB194\uB198\uB19C\uB1A8\uB1CC\uB1D0\uB1D4\uB1DC\uB1DD"],["b441","\uD02E",5,"\uD036\uD037\uD039\uD03A\uD03B\uD03D",6,"\uD046\uD048\uD04A",5],["b461","\uD051\uD052\uD053\uD055\uD056\uD057\uD059",6,"\uD061",10,"\uD06E\uD06F"],["b481","\uD071\uD072\uD073\uD075",6,"\uD07E\uD07F\uD080\uD082",18,"\uB1DF\uB1E8\uB1E9\uB1EC\uB1F0\uB1F9\uB1FB\uB1FD\uB204\uB205\uB208\uB20B\uB20C\uB214\uB215\uB217\uB219\uB220\uB234\uB23C\uB258\uB25C\uB260\uB268\uB269\uB274\uB275\uB27C\uB284\uB285\uB289\uB290\uB291\uB294\uB298\uB299\uB29A\uB2A0\uB2A1\uB2A3\uB2A5\uB2A6\uB2AA\uB2AC\uB2B0\uB2B4\uB2C8\uB2C9\uB2CC\uB2D0\uB2D2\uB2D8\uB2D9\uB2DB\uB2DD\uB2E2\uB2E4\uB2E5\uB2E6\uB2E8\uB2EB",4,"\uB2F3\uB2F4\uB2F5\uB2F7",4,"\uB2FF\uB300\uB301\uB304\uB308\uB310\uB311\uB313\uB314\uB315\uB31C\uB354\uB355\uB356\uB358\uB35B\uB35C\uB35E\uB35F\uB364\uB365"],["b541","\uD095",14,"\uD0A6\uD0A7\uD0A9\uD0AA\uD0AB\uD0AD",5],["b561","\uD0B3\uD0B6\uD0B8\uD0BA",5,"\uD0C2\uD0C3\uD0C5\uD0C6\uD0C7\uD0CA",5,"\uD0D2\uD0D6",4],["b581","\uD0DB\uD0DE\uD0DF\uD0E1\uD0E2\uD0E3\uD0E5",6,"\uD0EE\uD0F2",5,"\uD0F9",11,"\uB367\uB369\uB36B\uB36E\uB370\uB371\uB374\uB378\uB380\uB381\uB383\uB384\uB385\uB38C\uB390\uB394\uB3A0\uB3A1\uB3A8\uB3AC\uB3C4\uB3C5\uB3C8\uB3CB\uB3CC\uB3CE\uB3D0\uB3D4\uB3D5\uB3D7\uB3D9\uB3DB\uB3DD\uB3E0\uB3E4\uB3E8\uB3FC\uB410\uB418\uB41C\uB420\uB428\uB429\uB42B\uB434\uB450\uB451\uB454\uB458\uB460\uB461\uB463\uB465\uB46C\uB480\uB488\uB49D\uB4A4\uB4A8\uB4AC\uB4B5\uB4B7\uB4B9\uB4C0\uB4C4\uB4C8\uB4D0\uB4D5\uB4DC\uB4DD\uB4E0\uB4E3\uB4E4\uB4E6\uB4EC\uB4ED\uB4EF\uB4F1\uB4F8\uB514\uB515\uB518\uB51B\uB51C\uB524\uB525\uB527\uB528\uB529\uB52A\uB530\uB531\uB534\uB538"],["b641","\uD105",7,"\uD10E",17],["b661","\uD120",15,"\uD132\uD133\uD135\uD136\uD137\uD139\uD13B\uD13C\uD13D\uD13E"],["b681","\uD13F\uD142\uD146",5,"\uD14E\uD14F\uD151\uD152\uD153\uD155",6,"\uD15E\uD160\uD162",5,"\uD169\uD16A\uD16B\uD16D\uB540\uB541\uB543\uB544\uB545\uB54B\uB54C\uB54D\uB550\uB554\uB55C\uB55D\uB55F\uB560\uB561\uB5A0\uB5A1\uB5A4\uB5A8\uB5AA\uB5AB\uB5B0\uB5B1\uB5B3\uB5B4\uB5B5\uB5BB\uB5BC\uB5BD\uB5C0\uB5C4\uB5CC\uB5CD\uB5CF\uB5D0\uB5D1\uB5D8\uB5EC\uB610\uB611\uB614\uB618\uB625\uB62C\uB634\uB648\uB664\uB668\uB69C\uB69D\uB6A0\uB6A4\uB6AB\uB6AC\uB6B1\uB6D4\uB6F0\uB6F4\uB6F8\uB700\uB701\uB705\uB728\uB729\uB72C\uB72F\uB730\uB738\uB739\uB73B\uB744\uB748\uB74C\uB754\uB755\uB760\uB764\uB768\uB770\uB771\uB773\uB775\uB77C\uB77D\uB780\uB784\uB78C\uB78D\uB78F\uB790\uB791\uB792\uB796\uB797"],["b741","\uD16E",13,"\uD17D",6,"\uD185\uD186\uD187\uD189\uD18A"],["b761","\uD18B",20,"\uD1A2\uD1A3\uD1A5\uD1A6\uD1A7"],["b781","\uD1A9",6,"\uD1B2\uD1B4\uD1B6\uD1B7\uD1B8\uD1B9\uD1BB\uD1BD\uD1BE\uD1BF\uD1C1",14,"\uB798\uB799\uB79C\uB7A0\uB7A8\uB7A9\uB7AB\uB7AC\uB7AD\uB7B4\uB7B5\uB7B8\uB7C7\uB7C9\uB7EC\uB7ED\uB7F0\uB7F4\uB7FC\uB7FD\uB7FF\uB800\uB801\uB807\uB808\uB809\uB80C\uB810\uB818\uB819\uB81B\uB81D\uB824\uB825\uB828\uB82C\uB834\uB835\uB837\uB838\uB839\uB840\uB844\uB851\uB853\uB85C\uB85D\uB860\uB864\uB86C\uB86D\uB86F\uB871\uB878\uB87C\uB88D\uB8A8\uB8B0\uB8B4\uB8B8\uB8C0\uB8C1\uB8C3\uB8C5\uB8CC\uB8D0\uB8D4\uB8DD\uB8DF\uB8E1\uB8E8\uB8E9\uB8EC\uB8F0\uB8F8\uB8F9\uB8FB\uB8FD\uB904\uB918\uB920\uB93C\uB93D\uB940\uB944\uB94C\uB94F\uB951\uB958\uB959\uB95C\uB960\uB968\uB969"],["b841","\uD1D0",7,"\uD1D9",17],["b861","\uD1EB",8,"\uD1F5\uD1F6\uD1F7\uD1F9",13],["b881","\uD208\uD20A",5,"\uD211",24,"\uB96B\uB96D\uB974\uB975\uB978\uB97C\uB984\uB985\uB987\uB989\uB98A\uB98D\uB98E\uB9AC\uB9AD\uB9B0\uB9B4\uB9BC\uB9BD\uB9BF\uB9C1\uB9C8\uB9C9\uB9CC\uB9CE",4,"\uB9D8\uB9D9\uB9DB\uB9DD\uB9DE\uB9E1\uB9E3\uB9E4\uB9E5\uB9E8\uB9EC\uB9F4\uB9F5\uB9F7\uB9F8\uB9F9\uB9FA\uBA00\uBA01\uBA08\uBA15\uBA38\uBA39\uBA3C\uBA40\uBA42\uBA48\uBA49\uBA4B\uBA4D\uBA4E\uBA53\uBA54\uBA55\uBA58\uBA5C\uBA64\uBA65\uBA67\uBA68\uBA69\uBA70\uBA71\uBA74\uBA78\uBA83\uBA84\uBA85\uBA87\uBA8C\uBAA8\uBAA9\uBAAB\uBAAC\uBAB0\uBAB2\uBAB8\uBAB9\uBABB\uBABD\uBAC4\uBAC8\uBAD8\uBAD9\uBAFC"],["b941","\uD22A\uD22B\uD22E\uD22F\uD231\uD232\uD233\uD235",6,"\uD23E\uD240\uD242",5,"\uD249\uD24A\uD24B\uD24C"],["b961","\uD24D",14,"\uD25D",6,"\uD265\uD266\uD267\uD268"],["b981","\uD269",22,"\uD282\uD283\uD285\uD286\uD287\uD289\uD28A\uD28B\uD28C\uBB00\uBB04\uBB0D\uBB0F\uBB11\uBB18\uBB1C\uBB20\uBB29\uBB2B\uBB34\uBB35\uBB36\uBB38\uBB3B\uBB3C\uBB3D\uBB3E\uBB44\uBB45\uBB47\uBB49\uBB4D\uBB4F\uBB50\uBB54\uBB58\uBB61\uBB63\uBB6C\uBB88\uBB8C\uBB90\uBBA4\uBBA8\uBBAC\uBBB4\uBBB7\uBBC0\uBBC4\uBBC8\uBBD0\uBBD3\uBBF8\uBBF9\uBBFC\uBBFF\uBC00\uBC02\uBC08\uBC09\uBC0B\uBC0C\uBC0D\uBC0F\uBC11\uBC14",4,"\uBC1B",4,"\uBC24\uBC25\uBC27\uBC29\uBC2D\uBC30\uBC31\uBC34\uBC38\uBC40\uBC41\uBC43\uBC44\uBC45\uBC49\uBC4C\uBC4D\uBC50\uBC5D\uBC84\uBC85\uBC88\uBC8B\uBC8C\uBC8E\uBC94\uBC95\uBC97"],["ba41","\uD28D\uD28E\uD28F\uD292\uD293\uD294\uD296",5,"\uD29D\uD29E\uD29F\uD2A1\uD2A2\uD2A3\uD2A5",6,"\uD2AD"],["ba61","\uD2AE\uD2AF\uD2B0\uD2B2",5,"\uD2BA\uD2BB\uD2BD\uD2BE\uD2C1\uD2C3",4,"\uD2CA\uD2CC",5],["ba81","\uD2D2\uD2D3\uD2D5\uD2D6\uD2D7\uD2D9\uD2DA\uD2DB\uD2DD",6,"\uD2E6",9,"\uD2F2\uD2F3\uD2F5\uD2F6\uD2F7\uD2F9\uD2FA\uBC99\uBC9A\uBCA0\uBCA1\uBCA4\uBCA7\uBCA8\uBCB0\uBCB1\uBCB3\uBCB4\uBCB5\uBCBC\uBCBD\uBCC0\uBCC4\uBCCD\uBCCF\uBCD0\uBCD1\uBCD5\uBCD8\uBCDC\uBCF4\uBCF5\uBCF6\uBCF8\uBCFC\uBD04\uBD05\uBD07\uBD09\uBD10\uBD14\uBD24\uBD2C\uBD40\uBD48\uBD49\uBD4C\uBD50\uBD58\uBD59\uBD64\uBD68\uBD80\uBD81\uBD84\uBD87\uBD88\uBD89\uBD8A\uBD90\uBD91\uBD93\uBD95\uBD99\uBD9A\uBD9C\uBDA4\uBDB0\uBDB8\uBDD4\uBDD5\uBDD8\uBDDC\uBDE9\uBDF0\uBDF4\uBDF8\uBE00\uBE03\uBE05\uBE0C\uBE0D\uBE10\uBE14\uBE1C\uBE1D\uBE1F\uBE44\uBE45\uBE48\uBE4C\uBE4E\uBE54\uBE55\uBE57\uBE59\uBE5A\uBE5B\uBE60\uBE61\uBE64"],["bb41","\uD2FB",4,"\uD302\uD304\uD306",5,"\uD30F\uD311\uD312\uD313\uD315\uD317",4,"\uD31E\uD322\uD323"],["bb61","\uD324\uD326\uD327\uD32A\uD32B\uD32D\uD32E\uD32F\uD331",6,"\uD33A\uD33E",5,"\uD346\uD347\uD348\uD349"],["bb81","\uD34A",31,"\uBE68\uBE6A\uBE70\uBE71\uBE73\uBE74\uBE75\uBE7B\uBE7C\uBE7D\uBE80\uBE84\uBE8C\uBE8D\uBE8F\uBE90\uBE91\uBE98\uBE99\uBEA8\uBED0\uBED1\uBED4\uBED7\uBED8\uBEE0\uBEE3\uBEE4\uBEE5\uBEEC\uBF01\uBF08\uBF09\uBF18\uBF19\uBF1B\uBF1C\uBF1D\uBF40\uBF41\uBF44\uBF48\uBF50\uBF51\uBF55\uBF94\uBFB0\uBFC5\uBFCC\uBFCD\uBFD0\uBFD4\uBFDC\uBFDF\uBFE1\uC03C\uC051\uC058\uC05C\uC060\uC068\uC069\uC090\uC091\uC094\uC098\uC0A0\uC0A1\uC0A3\uC0A5\uC0AC\uC0AD\uC0AF\uC0B0\uC0B3\uC0B4\uC0B5\uC0B6\uC0BC\uC0BD\uC0BF\uC0C0\uC0C1\uC0C5\uC0C8\uC0C9\uC0CC\uC0D0\uC0D8\uC0D9\uC0DB\uC0DC\uC0DD\uC0E4"],["bc41","\uD36A",17,"\uD37E\uD37F\uD381\uD382\uD383\uD385\uD386\uD387"],["bc61","\uD388\uD389\uD38A\uD38B\uD38E\uD392",5,"\uD39A\uD39B\uD39D\uD39E\uD39F\uD3A1",6,"\uD3AA\uD3AC\uD3AE"],["bc81","\uD3AF",4,"\uD3B5\uD3B6\uD3B7\uD3B9\uD3BA\uD3BB\uD3BD",6,"\uD3C6\uD3C7\uD3CA",5,"\uD3D1",5,"\uC0E5\uC0E8\uC0EC\uC0F4\uC0F5\uC0F7\uC0F9\uC100\uC104\uC108\uC110\uC115\uC11C",4,"\uC123\uC124\uC126\uC127\uC12C\uC12D\uC12F\uC130\uC131\uC136\uC138\uC139\uC13C\uC140\uC148\uC149\uC14B\uC14C\uC14D\uC154\uC155\uC158\uC15C\uC164\uC165\uC167\uC168\uC169\uC170\uC174\uC178\uC185\uC18C\uC18D\uC18E\uC190\uC194\uC196\uC19C\uC19D\uC19F\uC1A1\uC1A5\uC1A8\uC1A9\uC1AC\uC1B0\uC1BD\uC1C4\uC1C8\uC1CC\uC1D4\uC1D7\uC1D8\uC1E0\uC1E4\uC1E8\uC1F0\uC1F1\uC1F3\uC1FC\uC1FD\uC200\uC204\uC20C\uC20D\uC20F\uC211\uC218\uC219\uC21C\uC21F\uC220\uC228\uC229\uC22B\uC22D"],["bd41","\uD3D7\uD3D9",7,"\uD3E2\uD3E4",7,"\uD3EE\uD3EF\uD3F1\uD3F2\uD3F3\uD3F5\uD3F6\uD3F7"],["bd61","\uD3F8\uD3F9\uD3FA\uD3FB\uD3FE\uD400\uD402",5,"\uD409",13],["bd81","\uD417",5,"\uD41E",25,"\uC22F\uC231\uC232\uC234\uC248\uC250\uC251\uC254\uC258\uC260\uC265\uC26C\uC26D\uC270\uC274\uC27C\uC27D\uC27F\uC281\uC288\uC289\uC290\uC298\uC29B\uC29D\uC2A4\uC2A5\uC2A8\uC2AC\uC2AD\uC2B4\uC2B5\uC2B7\uC2B9\uC2DC\uC2DD\uC2E0\uC2E3\uC2E4\uC2EB\uC2EC\uC2ED\uC2EF\uC2F1\uC2F6\uC2F8\uC2F9\uC2FB\uC2FC\uC300\uC308\uC309\uC30C\uC30D\uC313\uC314\uC315\uC318\uC31C\uC324\uC325\uC328\uC329\uC345\uC368\uC369\uC36C\uC370\uC372\uC378\uC379\uC37C\uC37D\uC384\uC388\uC38C\uC3C0\uC3D8\uC3D9\uC3DC\uC3DF\uC3E0\uC3E2\uC3E8\uC3E9\uC3ED\uC3F4\uC3F5\uC3F8\uC408\uC410\uC424\uC42C\uC430"],["be41","\uD438",7,"\uD441\uD442\uD443\uD445",14],["be61","\uD454",7,"\uD45D\uD45E\uD45F\uD461\uD462\uD463\uD465",7,"\uD46E\uD470\uD471\uD472"],["be81","\uD473",4,"\uD47A\uD47B\uD47D\uD47E\uD481\uD483",4,"\uD48A\uD48C\uD48E",5,"\uD495",8,"\uC434\uC43C\uC43D\uC448\uC464\uC465\uC468\uC46C\uC474\uC475\uC479\uC480\uC494\uC49C\uC4B8\uC4BC\uC4E9\uC4F0\uC4F1\uC4F4\uC4F8\uC4FA\uC4FF\uC500\uC501\uC50C\uC510\uC514\uC51C\uC528\uC529\uC52C\uC530\uC538\uC539\uC53B\uC53D\uC544\uC545\uC548\uC549\uC54A\uC54C\uC54D\uC54E\uC553\uC554\uC555\uC557\uC558\uC559\uC55D\uC55E\uC560\uC561\uC564\uC568\uC570\uC571\uC573\uC574\uC575\uC57C\uC57D\uC580\uC584\uC587\uC58C\uC58D\uC58F\uC591\uC595\uC597\uC598\uC59C\uC5A0\uC5A9\uC5B4\uC5B5\uC5B8\uC5B9\uC5BB\uC5BC\uC5BD\uC5BE\uC5C4",6,"\uC5CC\uC5CE"],["bf41","\uD49E",10,"\uD4AA",14],["bf61","\uD4B9",18,"\uD4CD\uD4CE\uD4CF\uD4D1\uD4D2\uD4D3\uD4D5"],["bf81","\uD4D6",5,"\uD4DD\uD4DE\uD4E0",7,"\uD4E9\uD4EA\uD4EB\uD4ED\uD4EE\uD4EF\uD4F1",6,"\uD4F9\uD4FA\uD4FC\uC5D0\uC5D1\uC5D4\uC5D8\uC5E0\uC5E1\uC5E3\uC5E5\uC5EC\uC5ED\uC5EE\uC5F0\uC5F4\uC5F6\uC5F7\uC5FC",5,"\uC605\uC606\uC607\uC608\uC60C\uC610\uC618\uC619\uC61B\uC61C\uC624\uC625\uC628\uC62C\uC62D\uC62E\uC630\uC633\uC634\uC635\uC637\uC639\uC63B\uC640\uC641\uC644\uC648\uC650\uC651\uC653\uC654\uC655\uC65C\uC65D\uC660\uC66C\uC66F\uC671\uC678\uC679\uC67C\uC680\uC688\uC689\uC68B\uC68D\uC694\uC695\uC698\uC69C\uC6A4\uC6A5\uC6A7\uC6A9\uC6B0\uC6B1\uC6B4\uC6B8\uC6B9\uC6BA\uC6C0\uC6C1\uC6C3\uC6C5\uC6CC\uC6CD\uC6D0\uC6D4\uC6DC\uC6DD\uC6E0\uC6E1\uC6E8"],["c041","\uD4FE",5,"\uD505\uD506\uD507\uD509\uD50A\uD50B\uD50D",6,"\uD516\uD518",5],["c061","\uD51E",25],["c081","\uD538\uD539\uD53A\uD53B\uD53E\uD53F\uD541\uD542\uD543\uD545",6,"\uD54E\uD550\uD552",5,"\uD55A\uD55B\uD55D\uD55E\uD55F\uD561\uD562\uD563\uC6E9\uC6EC\uC6F0\uC6F8\uC6F9\uC6FD\uC704\uC705\uC708\uC70C\uC714\uC715\uC717\uC719\uC720\uC721\uC724\uC728\uC730\uC731\uC733\uC735\uC737\uC73C\uC73D\uC740\uC744\uC74A\uC74C\uC74D\uC74F\uC751",7,"\uC75C\uC760\uC768\uC76B\uC774\uC775\uC778\uC77C\uC77D\uC77E\uC783\uC784\uC785\uC787\uC788\uC789\uC78A\uC78E\uC790\uC791\uC794\uC796\uC797\uC798\uC79A\uC7A0\uC7A1\uC7A3\uC7A4\uC7A5\uC7A6\uC7AC\uC7AD\uC7B0\uC7B4\uC7BC\uC7BD\uC7BF\uC7C0\uC7C1\uC7C8\uC7C9\uC7CC\uC7CE\uC7D0\uC7D8\uC7DD\uC7E4\uC7E8\uC7EC\uC800\uC801\uC804\uC808\uC80A"],["c141","\uD564\uD566\uD567\uD56A\uD56C\uD56E",5,"\uD576\uD577\uD579\uD57A\uD57B\uD57D",6,"\uD586\uD58A\uD58B"],["c161","\uD58C\uD58D\uD58E\uD58F\uD591",19,"\uD5A6\uD5A7"],["c181","\uD5A8",31,"\uC810\uC811\uC813\uC815\uC816\uC81C\uC81D\uC820\uC824\uC82C\uC82D\uC82F\uC831\uC838\uC83C\uC840\uC848\uC849\uC84C\uC84D\uC854\uC870\uC871\uC874\uC878\uC87A\uC880\uC881\uC883\uC885\uC886\uC887\uC88B\uC88C\uC88D\uC894\uC89D\uC89F\uC8A1\uC8A8\uC8BC\uC8BD\uC8C4\uC8C8\uC8CC\uC8D4\uC8D5\uC8D7\uC8D9\uC8E0\uC8E1\uC8E4\uC8F5\uC8FC\uC8FD\uC900\uC904\uC905\uC906\uC90C\uC90D\uC90F\uC911\uC918\uC92C\uC934\uC950\uC951\uC954\uC958\uC960\uC961\uC963\uC96C\uC970\uC974\uC97C\uC988\uC989\uC98C\uC990\uC998\uC999\uC99B\uC99D\uC9C0\uC9C1\uC9C4\uC9C7\uC9C8\uC9CA\uC9D0\uC9D1\uC9D3"],["c241","\uD5CA\uD5CB\uD5CD\uD5CE\uD5CF\uD5D1\uD5D3",4,"\uD5DA\uD5DC\uD5DE",5,"\uD5E6\uD5E7\uD5E9\uD5EA\uD5EB\uD5ED\uD5EE"],["c261","\uD5EF",4,"\uD5F6\uD5F8\uD5FA",5,"\uD602\uD603\uD605\uD606\uD607\uD609",6,"\uD612"],["c281","\uD616",5,"\uD61D\uD61E\uD61F\uD621\uD622\uD623\uD625",7,"\uD62E",9,"\uD63A\uD63B\uC9D5\uC9D6\uC9D9\uC9DA\uC9DC\uC9DD\uC9E0\uC9E2\uC9E4\uC9E7\uC9EC\uC9ED\uC9EF\uC9F0\uC9F1\uC9F8\uC9F9\uC9FC\uCA00\uCA08\uCA09\uCA0B\uCA0C\uCA0D\uCA14\uCA18\uCA29\uCA4C\uCA4D\uCA50\uCA54\uCA5C\uCA5D\uCA5F\uCA60\uCA61\uCA68\uCA7D\uCA84\uCA98\uCABC\uCABD\uCAC0\uCAC4\uCACC\uCACD\uCACF\uCAD1\uCAD3\uCAD8\uCAD9\uCAE0\uCAEC\uCAF4\uCB08\uCB10\uCB14\uCB18\uCB20\uCB21\uCB41\uCB48\uCB49\uCB4C\uCB50\uCB58\uCB59\uCB5D\uCB64\uCB78\uCB79\uCB9C\uCBB8\uCBD4\uCBE4\uCBE7\uCBE9\uCC0C\uCC0D\uCC10\uCC14\uCC1C\uCC1D\uCC21\uCC22\uCC27\uCC28\uCC29\uCC2C\uCC2E\uCC30\uCC38\uCC39\uCC3B"],["c341","\uD63D\uD63E\uD63F\uD641\uD642\uD643\uD644\uD646\uD647\uD64A\uD64C\uD64E\uD64F\uD650\uD652\uD653\uD656\uD657\uD659\uD65A\uD65B\uD65D",4],["c361","\uD662",4,"\uD668\uD66A",5,"\uD672\uD673\uD675",11],["c381","\uD681\uD682\uD684\uD686",5,"\uD68E\uD68F\uD691\uD692\uD693\uD695",7,"\uD69E\uD6A0\uD6A2",5,"\uD6A9\uD6AA\uCC3C\uCC3D\uCC3E\uCC44\uCC45\uCC48\uCC4C\uCC54\uCC55\uCC57\uCC58\uCC59\uCC60\uCC64\uCC66\uCC68\uCC70\uCC75\uCC98\uCC99\uCC9C\uCCA0\uCCA8\uCCA9\uCCAB\uCCAC\uCCAD\uCCB4\uCCB5\uCCB8\uCCBC\uCCC4\uCCC5\uCCC7\uCCC9\uCCD0\uCCD4\uCCE4\uCCEC\uCCF0\uCD01\uCD08\uCD09\uCD0C\uCD10\uCD18\uCD19\uCD1B\uCD1D\uCD24\uCD28\uCD2C\uCD39\uCD5C\uCD60\uCD64\uCD6C\uCD6D\uCD6F\uCD71\uCD78\uCD88\uCD94\uCD95\uCD98\uCD9C\uCDA4\uCDA5\uCDA7\uCDA9\uCDB0\uCDC4\uCDCC\uCDD0\uCDE8\uCDEC\uCDF0\uCDF8\uCDF9\uCDFB\uCDFD\uCE04\uCE08\uCE0C\uCE14\uCE19\uCE20\uCE21\uCE24\uCE28\uCE30\uCE31\uCE33\uCE35"],["c441","\uD6AB\uD6AD\uD6AE\uD6AF\uD6B1",7,"\uD6BA\uD6BC",7,"\uD6C6\uD6C7\uD6C9\uD6CA\uD6CB"],["c461","\uD6CD\uD6CE\uD6CF\uD6D0\uD6D2\uD6D3\uD6D5\uD6D6\uD6D8\uD6DA",5,"\uD6E1\uD6E2\uD6E3\uD6E5\uD6E6\uD6E7\uD6E9",4],["c481","\uD6EE\uD6EF\uD6F1\uD6F2\uD6F3\uD6F4\uD6F6",5,"\uD6FE\uD6FF\uD701\uD702\uD703\uD705",11,"\uD712\uD713\uD714\uCE58\uCE59\uCE5C\uCE5F\uCE60\uCE61\uCE68\uCE69\uCE6B\uCE6D\uCE74\uCE75\uCE78\uCE7C\uCE84\uCE85\uCE87\uCE89\uCE90\uCE91\uCE94\uCE98\uCEA0\uCEA1\uCEA3\uCEA4\uCEA5\uCEAC\uCEAD\uCEC1\uCEE4\uCEE5\uCEE8\uCEEB\uCEEC\uCEF4\uCEF5\uCEF7\uCEF8\uCEF9\uCF00\uCF01\uCF04\uCF08\uCF10\uCF11\uCF13\uCF15\uCF1C\uCF20\uCF24\uCF2C\uCF2D\uCF2F\uCF30\uCF31\uCF38\uCF54\uCF55\uCF58\uCF5C\uCF64\uCF65\uCF67\uCF69\uCF70\uCF71\uCF74\uCF78\uCF80\uCF85\uCF8C\uCFA1\uCFA8\uCFB0\uCFC4\uCFE0\uCFE1\uCFE4\uCFE8\uCFF0\uCFF1\uCFF3\uCFF5\uCFFC\uD000\uD004\uD011\uD018\uD02D\uD034\uD035\uD038\uD03C"],["c541","\uD715\uD716\uD717\uD71A\uD71B\uD71D\uD71E\uD71F\uD721",6,"\uD72A\uD72C\uD72E",5,"\uD736\uD737\uD739"],["c561","\uD73A\uD73B\uD73D",6,"\uD745\uD746\uD748\uD74A",5,"\uD752\uD753\uD755\uD75A",4],["c581","\uD75F\uD762\uD764\uD766\uD767\uD768\uD76A\uD76B\uD76D\uD76E\uD76F\uD771\uD772\uD773\uD775",6,"\uD77E\uD77F\uD780\uD782",5,"\uD78A\uD78B\uD044\uD045\uD047\uD049\uD050\uD054\uD058\uD060\uD06C\uD06D\uD070\uD074\uD07C\uD07D\uD081\uD0A4\uD0A5\uD0A8\uD0AC\uD0B4\uD0B5\uD0B7\uD0B9\uD0C0\uD0C1\uD0C4\uD0C8\uD0C9\uD0D0\uD0D1\uD0D3\uD0D4\uD0D5\uD0DC\uD0DD\uD0E0\uD0E4\uD0EC\uD0ED\uD0EF\uD0F0\uD0F1\uD0F8\uD10D\uD130\uD131\uD134\uD138\uD13A\uD140\uD141\uD143\uD144\uD145\uD14C\uD14D\uD150\uD154\uD15C\uD15D\uD15F\uD161\uD168\uD16C\uD17C\uD184\uD188\uD1A0\uD1A1\uD1A4\uD1A8\uD1B0\uD1B1\uD1B3\uD1B5\uD1BA\uD1BC\uD1C0\uD1D8\uD1F4\uD1F8\uD207\uD209\uD210\uD22C\uD22D\uD230\uD234\uD23C\uD23D\uD23F\uD241\uD248\uD25C"],["c641","\uD78D\uD78E\uD78F\uD791",6,"\uD79A\uD79C\uD79E",5],["c6a1","\uD264\uD280\uD281\uD284\uD288\uD290\uD291\uD295\uD29C\uD2A0\uD2A4\uD2AC\uD2B1\uD2B8\uD2B9\uD2BC\uD2BF\uD2C0\uD2C2\uD2C8\uD2C9\uD2CB\uD2D4\uD2D8\uD2DC\uD2E4\uD2E5\uD2F0\uD2F1\uD2F4\uD2F8\uD300\uD301\uD303\uD305\uD30C\uD30D\uD30E\uD310\uD314\uD316\uD31C\uD31D\uD31F\uD320\uD321\uD325\uD328\uD329\uD32C\uD330\uD338\uD339\uD33B\uD33C\uD33D\uD344\uD345\uD37C\uD37D\uD380\uD384\uD38C\uD38D\uD38F\uD390\uD391\uD398\uD399\uD39C\uD3A0\uD3A8\uD3A9\uD3AB\uD3AD\uD3B4\uD3B8\uD3BC\uD3C4\uD3C5\uD3C8\uD3C9\uD3D0\uD3D8\uD3E1\uD3E3\uD3EC\uD3ED\uD3F0\uD3F4\uD3FC\uD3FD\uD3FF\uD401"],["c7a1","\uD408\uD41D\uD440\uD444\uD45C\uD460\uD464\uD46D\uD46F\uD478\uD479\uD47C\uD47F\uD480\uD482\uD488\uD489\uD48B\uD48D\uD494\uD4A9\uD4CC\uD4D0\uD4D4\uD4DC\uD4DF\uD4E8\uD4EC\uD4F0\uD4F8\uD4FB\uD4FD\uD504\uD508\uD50C\uD514\uD515\uD517\uD53C\uD53D\uD540\uD544\uD54C\uD54D\uD54F\uD551\uD558\uD559\uD55C\uD560\uD565\uD568\uD569\uD56B\uD56D\uD574\uD575\uD578\uD57C\uD584\uD585\uD587\uD588\uD589\uD590\uD5A5\uD5C8\uD5C9\uD5CC\uD5D0\uD5D2\uD5D8\uD5D9\uD5DB\uD5DD\uD5E4\uD5E5\uD5E8\uD5EC\uD5F4\uD5F5\uD5F7\uD5F9\uD600\uD601\uD604\uD608\uD610\uD611\uD613\uD614\uD615\uD61C\uD620"],["c8a1","\uD624\uD62D\uD638\uD639\uD63C\uD640\uD645\uD648\uD649\uD64B\uD64D\uD651\uD654\uD655\uD658\uD65C\uD667\uD669\uD670\uD671\uD674\uD683\uD685\uD68C\uD68D\uD690\uD694\uD69D\uD69F\uD6A1\uD6A8\uD6AC\uD6B0\uD6B9\uD6BB\uD6C4\uD6C5\uD6C8\uD6CC\uD6D1\uD6D4\uD6D7\uD6D9\uD6E0\uD6E4\uD6E8\uD6F0\uD6F5\uD6FC\uD6FD\uD700\uD704\uD711\uD718\uD719\uD71C\uD720\uD728\uD729\uD72B\uD72D\uD734\uD735\uD738\uD73C\uD744\uD747\uD749\uD750\uD751\uD754\uD756\uD757\uD758\uD759\uD760\uD761\uD763\uD765\uD769\uD76C\uD770\uD774\uD77C\uD77D\uD781\uD788\uD789\uD78C\uD790\uD798\uD799\uD79B\uD79D"],["caa1","\u4F3D\u4F73\u5047\u50F9\u52A0\u53EF\u5475\u54E5\u5609\u5AC1\u5BB6\u6687\u67B6\u67B7\u67EF\u6B4C\u73C2\u75C2\u7A3C\u82DB\u8304\u8857\u8888\u8A36\u8CC8\u8DCF\u8EFB\u8FE6\u99D5\u523B\u5374\u5404\u606A\u6164\u6BBC\u73CF\u811A\u89BA\u89D2\u95A3\u4F83\u520A\u58BE\u5978\u59E6\u5E72\u5E79\u61C7\u63C0\u6746\u67EC\u687F\u6F97\u764E\u770B\u78F5\u7A08\u7AFF\u7C21\u809D\u826E\u8271\u8AEB\u9593\u4E6B\u559D\u66F7\u6E34\u78A3\u7AED\u845B\u8910\u874E\u97A8\u52D8\u574E\u582A\u5D4C\u611F\u61BE\u6221\u6562\u67D1\u6A44\u6E1B\u7518\u75B3\u76E3\u77B0\u7D3A\u90AF\u9451\u9452\u9F95"],["cba1","\u5323\u5CAC\u7532\u80DB\u9240\u9598\u525B\u5808\u59DC\u5CA1\u5D17\u5EB7\u5F3A\u5F4A\u6177\u6C5F\u757A\u7586\u7CE0\u7D73\u7DB1\u7F8C\u8154\u8221\u8591\u8941\u8B1B\u92FC\u964D\u9C47\u4ECB\u4EF7\u500B\u51F1\u584F\u6137\u613E\u6168\u6539\u69EA\u6F11\u75A5\u7686\u76D6\u7B87\u82A5\u84CB\uF900\u93A7\u958B\u5580\u5BA2\u5751\uF901\u7CB3\u7FB9\u91B5\u5028\u53BB\u5C45\u5DE8\u62D2\u636E\u64DA\u64E7\u6E20\u70AC\u795B\u8DDD\u8E1E\uF902\u907D\u9245\u92F8\u4E7E\u4EF6\u5065\u5DFE\u5EFA\u6106\u6957\u8171\u8654\u8E47\u9375\u9A2B\u4E5E\u5091\u6770\u6840\u5109\u528D\u5292\u6AA2"],["cca1","\u77BC\u9210\u9ED4\u52AB\u602F\u8FF2\u5048\u61A9\u63ED\u64CA\u683C\u6A84\u6FC0\u8188\u89A1\u9694\u5805\u727D\u72AC\u7504\u7D79\u7E6D\u80A9\u898B\u8B74\u9063\u9D51\u6289\u6C7A\u6F54\u7D50\u7F3A\u8A23\u517C\u614A\u7B9D\u8B19\u9257\u938C\u4EAC\u4FD3\u501E\u50BE\u5106\u52C1\u52CD\u537F\u5770\u5883\u5E9A\u5F91\u6176\u61AC\u64CE\u656C\u666F\u66BB\u66F4\u6897\u6D87\u7085\u70F1\u749F\u74A5\u74CA\u75D9\u786C\u78EC\u7ADF\u7AF6\u7D45\u7D93\u8015\u803F\u811B\u8396\u8B66\u8F15\u9015\u93E1\u9803\u9838\u9A5A\u9BE8\u4FC2\u5553\u583A\u5951\u5B63\u5C46\u60B8\u6212\u6842\u68B0"],["cda1","\u68E8\u6EAA\u754C\u7678\u78CE\u7A3D\u7CFB\u7E6B\u7E7C\u8A08\u8AA1\u8C3F\u968E\u9DC4\u53E4\u53E9\u544A\u5471\u56FA\u59D1\u5B64\u5C3B\u5EAB\u62F7\u6537\u6545\u6572\u66A0\u67AF\u69C1\u6CBD\u75FC\u7690\u777E\u7A3F\u7F94\u8003\u80A1\u818F\u82E6\u82FD\u83F0\u85C1\u8831\u88B4\u8AA5\uF903\u8F9C\u932E\u96C7\u9867\u9AD8\u9F13\u54ED\u659B\u66F2\u688F\u7A40\u8C37\u9D60\u56F0\u5764\u5D11\u6606\u68B1\u68CD\u6EFE\u7428\u889E\u9BE4\u6C68\uF904\u9AA8\u4F9B\u516C\u5171\u529F\u5B54\u5DE5\u6050\u606D\u62F1\u63A7\u653B\u73D9\u7A7A\u86A3\u8CA2\u978F\u4E32\u5BE1\u6208\u679C\u74DC"],["cea1","\u79D1\u83D3\u8A87\u8AB2\u8DE8\u904E\u934B\u9846\u5ED3\u69E8\u85FF\u90ED\uF905\u51A0\u5B98\u5BEC\u6163\u68FA\u6B3E\u704C\u742F\u74D8\u7BA1\u7F50\u83C5\u89C0\u8CAB\u95DC\u9928\u522E\u605D\u62EC\u9002\u4F8A\u5149\u5321\u58D9\u5EE3\u66E0\u6D38\u709A\u72C2\u73D6\u7B50\u80F1\u945B\u5366\u639B\u7F6B\u4E56\u5080\u584A\u58DE\u602A\u6127\u62D0\u69D0\u9B41\u5B8F\u7D18\u80B1\u8F5F\u4EA4\u50D1\u54AC\u55AC\u5B0C\u5DA0\u5DE7\u652A\u654E\u6821\u6A4B\u72E1\u768E\u77EF\u7D5E\u7FF9\u81A0\u854E\u86DF\u8F03\u8F4E\u90CA\u9903\u9A55\u9BAB\u4E18\u4E45\u4E5D\u4EC7\u4FF1\u5177\u52FE"],["cfa1","\u5340\u53E3\u53E5\u548E\u5614\u5775\u57A2\u5BC7\u5D87\u5ED0\u61FC\u62D8\u6551\u67B8\u67E9\u69CB\u6B50\u6BC6\u6BEC\u6C42\u6E9D\u7078\u72D7\u7396\u7403\u77BF\u77E9\u7A76\u7D7F\u8009\u81FC\u8205\u820A\u82DF\u8862\u8B33\u8CFC\u8EC0\u9011\u90B1\u9264\u92B6\u99D2\u9A45\u9CE9\u9DD7\u9F9C\u570B\u5C40\u83CA\u97A0\u97AB\u9EB4\u541B\u7A98\u7FA4\u88D9\u8ECD\u90E1\u5800\u5C48\u6398\u7A9F\u5BAE\u5F13\u7A79\u7AAE\u828E\u8EAC\u5026\u5238\u52F8\u5377\u5708\u62F3\u6372\u6B0A\u6DC3\u7737\u53A5\u7357\u8568\u8E76\u95D5\u673A\u6AC3\u6F70\u8A6D\u8ECC\u994B\uF906\u6677\u6B78\u8CB4"],["d0a1","\u9B3C\uF907\u53EB\u572D\u594E\u63C6\u69FB\u73EA\u7845\u7ABA\u7AC5\u7CFE\u8475\u898F\u8D73\u9035\u95A8\u52FB\u5747\u7547\u7B60\u83CC\u921E\uF908\u6A58\u514B\u524B\u5287\u621F\u68D8\u6975\u9699\u50C5\u52A4\u52E4\u61C3\u65A4\u6839\u69FF\u747E\u7B4B\u82B9\u83EB\u89B2\u8B39\u8FD1\u9949\uF909\u4ECA\u5997\u64D2\u6611\u6A8E\u7434\u7981\u79BD\u82A9\u887E\u887F\u895F\uF90A\u9326\u4F0B\u53CA\u6025\u6271\u6C72\u7D1A\u7D66\u4E98\u5162\u77DC\u80AF\u4F01\u4F0E\u5176\u5180\u55DC\u5668\u573B\u57FA\u57FC\u5914\u5947\u5993\u5BC4\u5C90\u5D0E\u5DF1\u5E7E\u5FCC\u6280\u65D7\u65E3"],["d1a1","\u671E\u671F\u675E\u68CB\u68C4\u6A5F\u6B3A\u6C23\u6C7D\u6C82\u6DC7\u7398\u7426\u742A\u7482\u74A3\u7578\u757F\u7881\u78EF\u7941\u7947\u7948\u797A\u7B95\u7D00\u7DBA\u7F88\u8006\u802D\u808C\u8A18\u8B4F\u8C48\u8D77\u9321\u9324\u98E2\u9951\u9A0E\u9A0F\u9A65\u9E92\u7DCA\u4F76\u5409\u62EE\u6854\u91D1\u55AB\u513A\uF90B\uF90C\u5A1C\u61E6\uF90D\u62CF\u62FF\uF90E",5,"\u90A3\uF914",4,"\u8AFE\uF919\uF91A\uF91B\uF91C\u6696\uF91D\u7156\uF91E\uF91F\u96E3\uF920\u634F\u637A\u5357\uF921\u678F\u6960\u6E73\uF922\u7537\uF923\uF924\uF925"],["d2a1","\u7D0D\uF926\uF927\u8872\u56CA\u5A18\uF928",4,"\u4E43\uF92D\u5167\u5948\u67F0\u8010\uF92E\u5973\u5E74\u649A\u79CA\u5FF5\u606C\u62C8\u637B\u5BE7\u5BD7\u52AA\uF92F\u5974\u5F29\u6012\uF930\uF931\uF932\u7459\uF933",5,"\u99D1\uF939",10,"\u6FC3\uF944\uF945\u81BF\u8FB2\u60F1\uF946\uF947\u8166\uF948\uF949\u5C3F\uF94A",7,"\u5AE9\u8A25\u677B\u7D10\uF952",5,"\u80FD\uF958\uF959\u5C3C\u6CE5\u533F\u6EBA\u591A\u8336"],["d3a1","\u4E39\u4EB6\u4F46\u55AE\u5718\u58C7\u5F56\u65B7\u65E6\u6A80\u6BB5\u6E4D\u77ED\u7AEF\u7C1E\u7DDE\u86CB\u8892\u9132\u935B\u64BB\u6FBE\u737A\u75B8\u9054\u5556\u574D\u61BA\u64D4\u66C7\u6DE1\u6E5B\u6F6D\u6FB9\u75F0\u8043\u81BD\u8541\u8983\u8AC7\u8B5A\u931F\u6C93\u7553\u7B54\u8E0F\u905D\u5510\u5802\u5858\u5E62\u6207\u649E\u68E0\u7576\u7CD6\u87B3\u9EE8\u4EE3\u5788\u576E\u5927\u5C0D\u5CB1\u5E36\u5F85\u6234\u64E1\u73B3\u81FA\u888B\u8CB8\u968A\u9EDB\u5B85\u5FB7\u60B3\u5012\u5200\u5230\u5716\u5835\u5857\u5C0E\u5C60\u5CF6\u5D8B\u5EA6\u5F92\u60BC\u6311\u6389\u6417\u6843"],["d4a1","\u68F9\u6AC2\u6DD8\u6E21\u6ED4\u6FE4\u71FE\u76DC\u7779\u79B1\u7A3B\u8404\u89A9\u8CED\u8DF3\u8E48\u9003\u9014\u9053\u90FD\u934D\u9676\u97DC\u6BD2\u7006\u7258\u72A2\u7368\u7763\u79BF\u7BE4\u7E9B\u8B80\u58A9\u60C7\u6566\u65FD\u66BE\u6C8C\u711E\u71C9\u8C5A\u9813\u4E6D\u7A81\u4EDD\u51AC\u51CD\u52D5\u540C\u61A7\u6771\u6850\u68DF\u6D1E\u6F7C\u75BC\u77B3\u7AE5\u80F4\u8463\u9285\u515C\u6597\u675C\u6793\u75D8\u7AC7\u8373\uF95A\u8C46\u9017\u982D\u5C6F\u81C0\u829A\u9041\u906F\u920D\u5F97\u5D9D\u6A59\u71C8\u767B\u7B49\u85E4\u8B04\u9127\u9A30\u5587\u61F6\uF95B\u7669\u7F85"],["d5a1","\u863F\u87BA\u88F8\u908F\uF95C\u6D1B\u70D9\u73DE\u7D61\u843D\uF95D\u916A\u99F1\uF95E\u4E82\u5375\u6B04\u6B12\u703E\u721B\u862D\u9E1E\u524C\u8FA3\u5D50\u64E5\u652C\u6B16\u6FEB\u7C43\u7E9C\u85CD\u8964\u89BD\u62C9\u81D8\u881F\u5ECA\u6717\u6D6A\u72FC\u7405\u746F\u8782\u90DE\u4F86\u5D0D\u5FA0\u840A\u51B7\u63A0\u7565\u4EAE\u5006\u5169\u51C9\u6881\u6A11\u7CAE\u7CB1\u7CE7\u826F\u8AD2\u8F1B\u91CF\u4FB6\u5137\u52F5\u5442\u5EEC\u616E\u623E\u65C5\u6ADA\u6FFE\u792A\u85DC\u8823\u95AD\u9A62\u9A6A\u9E97\u9ECE\u529B\u66C6\u6B77\u701D\u792B\u8F62\u9742\u6190\u6200\u6523\u6F23"],["d6a1","\u7149\u7489\u7DF4\u806F\u84EE\u8F26\u9023\u934A\u51BD\u5217\u52A3\u6D0C\u70C8\u88C2\u5EC9\u6582\u6BAE\u6FC2\u7C3E\u7375\u4EE4\u4F36\u56F9\uF95F\u5CBA\u5DBA\u601C\u73B2\u7B2D\u7F9A\u7FCE\u8046\u901E\u9234\u96F6\u9748\u9818\u9F61\u4F8B\u6FA7\u79AE\u91B4\u96B7\u52DE\uF960\u6488\u64C4\u6AD3\u6F5E\u7018\u7210\u76E7\u8001\u8606\u865C\u8DEF\u8F05\u9732\u9B6F\u9DFA\u9E75\u788C\u797F\u7DA0\u83C9\u9304\u9E7F\u9E93\u8AD6\u58DF\u5F04\u6727\u7027\u74CF\u7C60\u807E\u5121\u7028\u7262\u78CA\u8CC2\u8CDA\u8CF4\u96F7\u4E86\u50DA\u5BEE\u5ED6\u6599\u71CE\u7642\u77AD\u804A\u84FC"],["d7a1","\u907C\u9B27\u9F8D\u58D8\u5A41\u5C62\u6A13\u6DDA\u6F0F\u763B\u7D2F\u7E37\u851E\u8938\u93E4\u964B\u5289\u65D2\u67F3\u69B4\u6D41\u6E9C\u700F\u7409\u7460\u7559\u7624\u786B\u8B2C\u985E\u516D\u622E\u9678\u4F96\u502B\u5D19\u6DEA\u7DB8\u8F2A\u5F8B\u6144\u6817\uF961\u9686\u52D2\u808B\u51DC\u51CC\u695E\u7A1C\u7DBE\u83F1\u9675\u4FDA\u5229\u5398\u540F\u550E\u5C65\u60A7\u674E\u68A8\u6D6C\u7281\u72F8\u7406\u7483\uF962\u75E2\u7C6C\u7F79\u7FB8\u8389\u88CF\u88E1\u91CC\u91D0\u96E2\u9BC9\u541D\u6F7E\u71D0\u7498\u85FA\u8EAA\u96A3\u9C57\u9E9F\u6797\u6DCB\u7433\u81E8\u9716\u782C"],["d8a1","\u7ACB\u7B20\u7C92\u6469\u746A\u75F2\u78BC\u78E8\u99AC\u9B54\u9EBB\u5BDE\u5E55\u6F20\u819C\u83AB\u9088\u4E07\u534D\u5A29\u5DD2\u5F4E\u6162\u633D\u6669\u66FC\u6EFF\u6F2B\u7063\u779E\u842C\u8513\u883B\u8F13\u9945\u9C3B\u551C\u62B9\u672B\u6CAB\u8309\u896A\u977A\u4EA1\u5984\u5FD8\u5FD9\u671B\u7DB2\u7F54\u8292\u832B\u83BD\u8F1E\u9099\u57CB\u59B9\u5A92\u5BD0\u6627\u679A\u6885\u6BCF\u7164\u7F75\u8CB7\u8CE3\u9081\u9B45\u8108\u8C8A\u964C\u9A40\u9EA5\u5B5F\u6C13\u731B\u76F2\u76DF\u840C\u51AA\u8993\u514D\u5195\u52C9\u68C9\u6C94\u7704\u7720\u7DBF\u7DEC\u9762\u9EB5\u6EC5"],["d9a1","\u8511\u51A5\u540D\u547D\u660E\u669D\u6927\u6E9F\u76BF\u7791\u8317\u84C2\u879F\u9169\u9298\u9CF4\u8882\u4FAE\u5192\u52DF\u59C6\u5E3D\u6155\u6478\u6479\u66AE\u67D0\u6A21\u6BCD\u6BDB\u725F\u7261\u7441\u7738\u77DB\u8017\u82BC\u8305\u8B00\u8B28\u8C8C\u6728\u6C90\u7267\u76EE\u7766\u7A46\u9DA9\u6B7F\u6C92\u5922\u6726\u8499\u536F\u5893\u5999\u5EDF\u63CF\u6634\u6773\u6E3A\u732B\u7AD7\u82D7\u9328\u52D9\u5DEB\u61AE\u61CB\u620A\u62C7\u64AB\u65E0\u6959\u6B66\u6BCB\u7121\u73F7\u755D\u7E46\u821E\u8302\u856A\u8AA3\u8CBF\u9727\u9D61\u58A8\u9ED8\u5011\u520E\u543B\u554F\u6587"],["daa1","\u6C76\u7D0A\u7D0B\u805E\u868A\u9580\u96EF\u52FF\u6C95\u7269\u5473\u5A9A\u5C3E\u5D4B\u5F4C\u5FAE\u672A\u68B6\u6963\u6E3C\u6E44\u7709\u7C73\u7F8E\u8587\u8B0E\u8FF7\u9761\u9EF4\u5CB7\u60B6\u610D\u61AB\u654F\u65FB\u65FC\u6C11\u6CEF\u739F\u73C9\u7DE1\u9594\u5BC6\u871C\u8B10\u525D\u535A\u62CD\u640F\u64B2\u6734\u6A38\u6CCA\u73C0\u749E\u7B94\u7C95\u7E1B\u818A\u8236\u8584\u8FEB\u96F9\u99C1\u4F34\u534A\u53CD\u53DB\u62CC\u642C\u6500\u6591\u69C3\u6CEE\u6F58\u73ED\u7554\u7622\u76E4\u76FC\u78D0\u78FB\u792C\u7D46\u822C\u87E0\u8FD4\u9812\u98EF\u52C3\u62D4\u64A5\u6E24\u6F51"],["dba1","\u767C\u8DCB\u91B1\u9262\u9AEE\u9B43\u5023\u508D\u574A\u59A8\u5C28\u5E47\u5F77\u623F\u653E\u65B9\u65C1\u6609\u678B\u699C\u6EC2\u78C5\u7D21\u80AA\u8180\u822B\u82B3\u84A1\u868C\u8A2A\u8B17\u90A6\u9632\u9F90\u500D\u4FF3\uF963\u57F9\u5F98\u62DC\u6392\u676F\u6E43\u7119\u76C3\u80CC\u80DA\u88F4\u88F5\u8919\u8CE0\u8F29\u914D\u966A\u4F2F\u4F70\u5E1B\u67CF\u6822\u767D\u767E\u9B44\u5E61\u6A0A\u7169\u71D4\u756A\uF964\u7E41\u8543\u85E9\u98DC\u4F10\u7B4F\u7F70\u95A5\u51E1\u5E06\u68B5\u6C3E\u6C4E\u6CDB\u72AF\u7BC4\u8303\u6CD5\u743A\u50FB\u5288\u58C1\u64D8\u6A97\u74A7\u7656"],["dca1","\u78A7\u8617\u95E2\u9739\uF965\u535E\u5F01\u8B8A\u8FA8\u8FAF\u908A\u5225\u77A5\u9C49\u9F08\u4E19\u5002\u5175\u5C5B\u5E77\u661E\u663A\u67C4\u68C5\u70B3\u7501\u75C5\u79C9\u7ADD\u8F27\u9920\u9A08\u4FDD\u5821\u5831\u5BF6\u666E\u6B65\u6D11\u6E7A\u6F7D\u73E4\u752B\u83E9\u88DC\u8913\u8B5C\u8F14\u4F0F\u50D5\u5310\u535C\u5B93\u5FA9\u670D\u798F\u8179\u832F\u8514\u8907\u8986\u8F39\u8F3B\u99A5\u9C12\u672C\u4E76\u4FF8\u5949\u5C01\u5CEF\u5CF0\u6367\u68D2\u70FD\u71A2\u742B\u7E2B\u84EC\u8702\u9022\u92D2\u9CF3\u4E0D\u4ED8\u4FEF\u5085\u5256\u526F\u5426\u5490\u57E0\u592B\u5A66"],["dda1","\u5B5A\u5B75\u5BCC\u5E9C\uF966\u6276\u6577\u65A7\u6D6E\u6EA5\u7236\u7B26\u7C3F\u7F36\u8150\u8151\u819A\u8240\u8299\u83A9\u8A03\u8CA0\u8CE6\u8CFB\u8D74\u8DBA\u90E8\u91DC\u961C\u9644\u99D9\u9CE7\u5317\u5206\u5429\u5674\u58B3\u5954\u596E\u5FFF\u61A4\u626E\u6610\u6C7E\u711A\u76C6\u7C89\u7CDE\u7D1B\u82AC\u8CC1\u96F0\uF967\u4F5B\u5F17\u5F7F\u62C2\u5D29\u670B\u68DA\u787C\u7E43\u9D6C\u4E15\u5099\u5315\u532A\u5351\u5983\u5A62\u5E87\u60B2\u618A\u6249\u6279\u6590\u6787\u69A7\u6BD4\u6BD6\u6BD7\u6BD8\u6CB8\uF968\u7435\u75FA\u7812\u7891\u79D5\u79D8\u7C83\u7DCB\u7FE1\u80A5"],["dea1","\u813E\u81C2\u83F2\u871A\u88E8\u8AB9\u8B6C\u8CBB\u9119\u975E\u98DB\u9F3B\u56AC\u5B2A\u5F6C\u658C\u6AB3\u6BAF\u6D5C\u6FF1\u7015\u725D\u73AD\u8CA7\u8CD3\u983B\u6191\u6C37\u8058\u9A01\u4E4D\u4E8B\u4E9B\u4ED5\u4F3A\u4F3C\u4F7F\u4FDF\u50FF\u53F2\u53F8\u5506\u55E3\u56DB\u58EB\u5962\u5A11\u5BEB\u5BFA\u5C04\u5DF3\u5E2B\u5F99\u601D\u6368\u659C\u65AF\u67F6\u67FB\u68AD\u6B7B\u6C99\u6CD7\u6E23\u7009\u7345\u7802\u793E\u7940\u7960\u79C1\u7BE9\u7D17\u7D72\u8086\u820D\u838E\u84D1\u86C7\u88DF\u8A50\u8A5E\u8B1D\u8CDC\u8D66\u8FAD\u90AA\u98FC\u99DF\u9E9D\u524A\uF969\u6714\uF96A"],["dfa1","\u5098\u522A\u5C71\u6563\u6C55\u73CA\u7523\u759D\u7B97\u849C\u9178\u9730\u4E77\u6492\u6BBA\u715E\u85A9\u4E09\uF96B\u6749\u68EE\u6E17\u829F\u8518\u886B\u63F7\u6F81\u9212\u98AF\u4E0A\u50B7\u50CF\u511F\u5546\u55AA\u5617\u5B40\u5C19\u5CE0\u5E38\u5E8A\u5EA0\u5EC2\u60F3\u6851\u6A61\u6E58\u723D\u7240\u72C0\u76F8\u7965\u7BB1\u7FD4\u88F3\u89F4\u8A73\u8C61\u8CDE\u971C\u585E\u74BD\u8CFD\u55C7\uF96C\u7A61\u7D22\u8272\u7272\u751F\u7525\uF96D\u7B19\u5885\u58FB\u5DBC\u5E8F\u5EB6\u5F90\u6055\u6292\u637F\u654D\u6691\u66D9\u66F8\u6816\u68F2\u7280\u745E\u7B6E\u7D6E\u7DD6\u7F72"],["e0a1","\u80E5\u8212\u85AF\u897F\u8A93\u901D\u92E4\u9ECD\u9F20\u5915\u596D\u5E2D\u60DC\u6614\u6673\u6790\u6C50\u6DC5\u6F5F\u77F3\u78A9\u84C6\u91CB\u932B\u4ED9\u50CA\u5148\u5584\u5B0B\u5BA3\u6247\u657E\u65CB\u6E32\u717D\u7401\u7444\u7487\u74BF\u766C\u79AA\u7DDA\u7E55\u7FA8\u817A\u81B3\u8239\u861A\u87EC\u8A75\u8DE3\u9078\u9291\u9425\u994D\u9BAE\u5368\u5C51\u6954\u6CC4\u6D29\u6E2B\u820C\u859B\u893B\u8A2D\u8AAA\u96EA\u9F67\u5261\u66B9\u6BB2\u7E96\u87FE\u8D0D\u9583\u965D\u651D\u6D89\u71EE\uF96E\u57CE\u59D3\u5BAC\u6027\u60FA\u6210\u661F\u665F\u7329\u73F9\u76DB\u7701\u7B6C"],["e1a1","\u8056\u8072\u8165\u8AA0\u9192\u4E16\u52E2\u6B72\u6D17\u7A05\u7B39\u7D30\uF96F\u8CB0\u53EC\u562F\u5851\u5BB5\u5C0F\u5C11\u5DE2\u6240\u6383\u6414\u662D\u68B3\u6CBC\u6D88\u6EAF\u701F\u70A4\u71D2\u7526\u758F\u758E\u7619\u7B11\u7BE0\u7C2B\u7D20\u7D39\u852C\u856D\u8607\u8A34\u900D\u9061\u90B5\u92B7\u97F6\u9A37\u4FD7\u5C6C\u675F\u6D91\u7C9F\u7E8C\u8B16\u8D16\u901F\u5B6B\u5DFD\u640D\u84C0\u905C\u98E1\u7387\u5B8B\u609A\u677E\u6DDE\u8A1F\u8AA6\u9001\u980C\u5237\uF970\u7051\u788E\u9396\u8870\u91D7\u4FEE\u53D7\u55FD\u56DA\u5782\u58FD\u5AC2\u5B88\u5CAB\u5CC0\u5E25\u6101"],["e2a1","\u620D\u624B\u6388\u641C\u6536\u6578\u6A39\u6B8A\u6C34\u6D19\u6F31\u71E7\u72E9\u7378\u7407\u74B2\u7626\u7761\u79C0\u7A57\u7AEA\u7CB9\u7D8F\u7DAC\u7E61\u7F9E\u8129\u8331\u8490\u84DA\u85EA\u8896\u8AB0\u8B90\u8F38\u9042\u9083\u916C\u9296\u92B9\u968B\u96A7\u96A8\u96D6\u9700\u9808\u9996\u9AD3\u9B1A\u53D4\u587E\u5919\u5B70\u5BBF\u6DD1\u6F5A\u719F\u7421\u74B9\u8085\u83FD\u5DE1\u5F87\u5FAA\u6042\u65EC\u6812\u696F\u6A53\u6B89\u6D35\u6DF3\u73E3\u76FE\u77AC\u7B4D\u7D14\u8123\u821C\u8340\u84F4\u8563\u8A62\u8AC4\u9187\u931E\u9806\u99B4\u620C\u8853\u8FF0\u9265\u5D07\u5D27"],["e3a1","\u5D69\u745F\u819D\u8768\u6FD5\u62FE\u7FD2\u8936\u8972\u4E1E\u4E58\u50E7\u52DD\u5347\u627F\u6607\u7E69\u8805\u965E\u4F8D\u5319\u5636\u59CB\u5AA4\u5C38\u5C4E\u5C4D\u5E02\u5F11\u6043\u65BD\u662F\u6642\u67BE\u67F4\u731C\u77E2\u793A\u7FC5\u8494\u84CD\u8996\u8A66\u8A69\u8AE1\u8C55\u8C7A\u57F4\u5BD4\u5F0F\u606F\u62ED\u690D\u6B96\u6E5C\u7184\u7BD2\u8755\u8B58\u8EFE\u98DF\u98FE\u4F38\u4F81\u4FE1\u547B\u5A20\u5BB8\u613C\u65B0\u6668\u71FC\u7533\u795E\u7D33\u814E\u81E3\u8398\u85AA\u85CE\u8703\u8A0A\u8EAB\u8F9B\uF971\u8FC5\u5931\u5BA4\u5BE6\u6089\u5BE9\u5C0B\u5FC3\u6C81"],["e4a1","\uF972\u6DF1\u700B\u751A\u82AF\u8AF6\u4EC0\u5341\uF973\u96D9\u6C0F\u4E9E\u4FC4\u5152\u555E\u5A25\u5CE8\u6211\u7259\u82BD\u83AA\u86FE\u8859\u8A1D\u963F\u96C5\u9913\u9D09\u9D5D\u580A\u5CB3\u5DBD\u5E44\u60E1\u6115\u63E1\u6A02\u6E25\u9102\u9354\u984E\u9C10\u9F77\u5B89\u5CB8\u6309\u664F\u6848\u773C\u96C1\u978D\u9854\u9B9F\u65A1\u8B01\u8ECB\u95BC\u5535\u5CA9\u5DD6\u5EB5\u6697\u764C\u83F4\u95C7\u58D3\u62BC\u72CE\u9D28\u4EF0\u592E\u600F\u663B\u6B83\u79E7\u9D26\u5393\u54C0\u57C3\u5D16\u611B\u66D6\u6DAF\u788D\u827E\u9698\u9744\u5384\u627C\u6396\u6DB2\u7E0A\u814B\u984D"],["e5a1","\u6AFB\u7F4C\u9DAF\u9E1A\u4E5F\u503B\u51B6\u591C\u60F9\u63F6\u6930\u723A\u8036\uF974\u91CE\u5F31\uF975\uF976\u7D04\u82E5\u846F\u84BB\u85E5\u8E8D\uF977\u4F6F\uF978\uF979\u58E4\u5B43\u6059\u63DA\u6518\u656D\u6698\uF97A\u694A\u6A23\u6D0B\u7001\u716C\u75D2\u760D\u79B3\u7A70\uF97B\u7F8A\uF97C\u8944\uF97D\u8B93\u91C0\u967D\uF97E\u990A\u5704\u5FA1\u65BC\u6F01\u7600\u79A6\u8A9E\u99AD\u9B5A\u9F6C\u5104\u61B6\u6291\u6A8D\u81C6\u5043\u5830\u5F66\u7109\u8A00\u8AFA\u5B7C\u8616\u4FFA\u513C\u56B4\u5944\u63A9\u6DF9\u5DAA\u696D\u5186\u4E88\u4F59\uF97F\uF980\uF981\u5982\uF982"],["e6a1","\uF983\u6B5F\u6C5D\uF984\u74B5\u7916\uF985\u8207\u8245\u8339\u8F3F\u8F5D\uF986\u9918\uF987\uF988\uF989\u4EA6\uF98A\u57DF\u5F79\u6613\uF98B\uF98C\u75AB\u7E79\u8B6F\uF98D\u9006\u9A5B\u56A5\u5827\u59F8\u5A1F\u5BB4\uF98E\u5EF6\uF98F\uF990\u6350\u633B\uF991\u693D\u6C87\u6CBF\u6D8E\u6D93\u6DF5\u6F14\uF992\u70DF\u7136\u7159\uF993\u71C3\u71D5\uF994\u784F\u786F\uF995\u7B75\u7DE3\uF996\u7E2F\uF997\u884D\u8EDF\uF998\uF999\uF99A\u925B\uF99B\u9CF6\uF99C\uF99D\uF99E\u6085\u6D85\uF99F\u71B1\uF9A0\uF9A1\u95B1\u53AD\uF9A2\uF9A3\uF9A4\u67D3\uF9A5\u708E\u7130\u7430\u8276\u82D2"],["e7a1","\uF9A6\u95BB\u9AE5\u9E7D\u66C4\uF9A7\u71C1\u8449\uF9A8\uF9A9\u584B\uF9AA\uF9AB\u5DB8\u5F71\uF9AC\u6620\u668E\u6979\u69AE\u6C38\u6CF3\u6E36\u6F41\u6FDA\u701B\u702F\u7150\u71DF\u7370\uF9AD\u745B\uF9AE\u74D4\u76C8\u7A4E\u7E93\uF9AF\uF9B0\u82F1\u8A60\u8FCE\uF9B1\u9348\uF9B2\u9719\uF9B3\uF9B4\u4E42\u502A\uF9B5\u5208\u53E1\u66F3\u6C6D\u6FCA\u730A\u777F\u7A62\u82AE\u85DD\u8602\uF9B6\u88D4\u8A63\u8B7D\u8C6B\uF9B7\u92B3\uF9B8\u9713\u9810\u4E94\u4F0D\u4FC9\u50B2\u5348\u543E\u5433\u55DA\u5862\u58BA\u5967\u5A1B\u5BE4\u609F\uF9B9\u61CA\u6556\u65FF\u6664\u68A7\u6C5A\u6FB3"],["e8a1","\u70CF\u71AC\u7352\u7B7D\u8708\u8AA4\u9C32\u9F07\u5C4B\u6C83\u7344\u7389\u923A\u6EAB\u7465\u761F\u7A69\u7E15\u860A\u5140\u58C5\u64C1\u74EE\u7515\u7670\u7FC1\u9095\u96CD\u9954\u6E26\u74E6\u7AA9\u7AAA\u81E5\u86D9\u8778\u8A1B\u5A49\u5B8C\u5B9B\u68A1\u6900\u6D63\u73A9\u7413\u742C\u7897\u7DE9\u7FEB\u8118\u8155\u839E\u8C4C\u962E\u9811\u66F0\u5F80\u65FA\u6789\u6C6A\u738B\u502D\u5A03\u6B6A\u77EE\u5916\u5D6C\u5DCD\u7325\u754F\uF9BA\uF9BB\u50E5\u51F9\u582F\u592D\u5996\u59DA\u5BE5\uF9BC\uF9BD\u5DA2\u62D7\u6416\u6493\u64FE\uF9BE\u66DC\uF9BF\u6A48\uF9C0\u71FF\u7464\uF9C1"],["e9a1","\u7A88\u7AAF\u7E47\u7E5E\u8000\u8170\uF9C2\u87EF\u8981\u8B20\u9059\uF9C3\u9080\u9952\u617E\u6B32\u6D74\u7E1F\u8925\u8FB1\u4FD1\u50AD\u5197\u52C7\u57C7\u5889\u5BB9\u5EB8\u6142\u6995\u6D8C\u6E67\u6EB6\u7194\u7462\u7528\u752C\u8073\u8338\u84C9\u8E0A\u9394\u93DE\uF9C4\u4E8E\u4F51\u5076\u512A\u53C8\u53CB\u53F3\u5B87\u5BD3\u5C24\u611A\u6182\u65F4\u725B\u7397\u7440\u76C2\u7950\u7991\u79B9\u7D06\u7FBD\u828B\u85D5\u865E\u8FC2\u9047\u90F5\u91EA\u9685\u96E8\u96E9\u52D6\u5F67\u65ED\u6631\u682F\u715C\u7A36\u90C1\u980A\u4E91\uF9C5\u6A52\u6B9E\u6F90\u7189\u8018\u82B8\u8553"],["eaa1","\u904B\u9695\u96F2\u97FB\u851A\u9B31\u4E90\u718A\u96C4\u5143\u539F\u54E1\u5713\u5712\u57A3\u5A9B\u5AC4\u5BC3\u6028\u613F\u63F4\u6C85\u6D39\u6E72\u6E90\u7230\u733F\u7457\u82D1\u8881\u8F45\u9060\uF9C6\u9662\u9858\u9D1B\u6708\u8D8A\u925E\u4F4D\u5049\u50DE\u5371\u570D\u59D4\u5A01\u5C09\u6170\u6690\u6E2D\u7232\u744B\u7DEF\u80C3\u840E\u8466\u853F\u875F\u885B\u8918\u8B02\u9055\u97CB\u9B4F\u4E73\u4F91\u5112\u516A\uF9C7\u552F\u55A9\u5B7A\u5BA5\u5E7C\u5E7D\u5EBE\u60A0\u60DF\u6108\u6109\u63C4\u6538\u6709\uF9C8\u67D4\u67DA\uF9C9\u6961\u6962\u6CB9\u6D27\uF9CA\u6E38\uF9CB"],["eba1","\u6FE1\u7336\u7337\uF9CC\u745C\u7531\uF9CD\u7652\uF9CE\uF9CF\u7DAD\u81FE\u8438\u88D5\u8A98\u8ADB\u8AED\u8E30\u8E42\u904A\u903E\u907A\u9149\u91C9\u936E\uF9D0\uF9D1\u5809\uF9D2\u6BD3\u8089\u80B2\uF9D3\uF9D4\u5141\u596B\u5C39\uF9D5\uF9D6\u6F64\u73A7\u80E4\u8D07\uF9D7\u9217\u958F\uF9D8\uF9D9\uF9DA\uF9DB\u807F\u620E\u701C\u7D68\u878D\uF9DC\u57A0\u6069\u6147\u6BB7\u8ABE\u9280\u96B1\u4E59\u541F\u6DEB\u852D\u9670\u97F3\u98EE\u63D6\u6CE3\u9091\u51DD\u61C9\u81BA\u9DF9\u4F9D\u501A\u5100\u5B9C\u610F\u61FF\u64EC\u6905\u6BC5\u7591\u77E3\u7FA9\u8264\u858F\u87FB\u8863\u8ABC"],["eca1","\u8B70\u91AB\u4E8C\u4EE5\u4F0A\uF9DD\uF9DE\u5937\u59E8\uF9DF\u5DF2\u5F1B\u5F5B\u6021\uF9E0\uF9E1\uF9E2\uF9E3\u723E\u73E5\uF9E4\u7570\u75CD\uF9E5\u79FB\uF9E6\u800C\u8033\u8084\u82E1\u8351\uF9E7\uF9E8\u8CBD\u8CB3\u9087\uF9E9\uF9EA\u98F4\u990C\uF9EB\uF9EC\u7037\u76CA\u7FCA\u7FCC\u7FFC\u8B1A\u4EBA\u4EC1\u5203\u5370\uF9ED\u54BD\u56E0\u59FB\u5BC5\u5F15\u5FCD\u6E6E\uF9EE\uF9EF\u7D6A\u8335\uF9F0\u8693\u8A8D\uF9F1\u976D\u9777\uF9F2\uF9F3\u4E00\u4F5A\u4F7E\u58F9\u65E5\u6EA2\u9038\u93B0\u99B9\u4EFB\u58EC\u598A\u59D9\u6041\uF9F4\uF9F5\u7A14\uF9F6\u834F\u8CC3\u5165\u5344"],["eda1","\uF9F7\uF9F8\uF9F9\u4ECD\u5269\u5B55\u82BF\u4ED4\u523A\u54A8\u59C9\u59FF\u5B50\u5B57\u5B5C\u6063\u6148\u6ECB\u7099\u716E\u7386\u74F7\u75B5\u78C1\u7D2B\u8005\u81EA\u8328\u8517\u85C9\u8AEE\u8CC7\u96CC\u4F5C\u52FA\u56BC\u65AB\u6628\u707C\u70B8\u7235\u7DBD\u828D\u914C\u96C0\u9D72\u5B71\u68E7\u6B98\u6F7A\u76DE\u5C91\u66AB\u6F5B\u7BB4\u7C2A\u8836\u96DC\u4E08\u4ED7\u5320\u5834\u58BB\u58EF\u596C\u5C07\u5E33\u5E84\u5F35\u638C\u66B2\u6756\u6A1F\u6AA3\u6B0C\u6F3F\u7246\uF9FA\u7350\u748B\u7AE0\u7CA7\u8178\u81DF\u81E7\u838A\u846C\u8523\u8594\u85CF\u88DD\u8D13\u91AC\u9577"],["eea1","\u969C\u518D\u54C9\u5728\u5BB0\u624D\u6750\u683D\u6893\u6E3D\u6ED3\u707D\u7E21\u88C1\u8CA1\u8F09\u9F4B\u9F4E\u722D\u7B8F\u8ACD\u931A\u4F47\u4F4E\u5132\u5480\u59D0\u5E95\u62B5\u6775\u696E\u6A17\u6CAE\u6E1A\u72D9\u732A\u75BD\u7BB8\u7D35\u82E7\u83F9\u8457\u85F7\u8A5B\u8CAF\u8E87\u9019\u90B8\u96CE\u9F5F\u52E3\u540A\u5AE1\u5BC2\u6458\u6575\u6EF4\u72C4\uF9FB\u7684\u7A4D\u7B1B\u7C4D\u7E3E\u7FDF\u837B\u8B2B\u8CCA\u8D64\u8DE1\u8E5F\u8FEA\u8FF9\u9069\u93D1\u4F43\u4F7A\u50B3\u5168\u5178\u524D\u526A\u5861\u587C\u5960\u5C08\u5C55\u5EDB\u609B\u6230\u6813\u6BBF\u6C08\u6FB1"],["efa1","\u714E\u7420\u7530\u7538\u7551\u7672\u7B4C\u7B8B\u7BAD\u7BC6\u7E8F\u8A6E\u8F3E\u8F49\u923F\u9293\u9322\u942B\u96FB\u985A\u986B\u991E\u5207\u622A\u6298\u6D59\u7664\u7ACA\u7BC0\u7D76\u5360\u5CBE\u5E97\u6F38\u70B9\u7C98\u9711\u9B8E\u9EDE\u63A5\u647A\u8776\u4E01\u4E95\u4EAD\u505C\u5075\u5448\u59C3\u5B9A\u5E40\u5EAD\u5EF7\u5F81\u60C5\u633A\u653F\u6574\u65CC\u6676\u6678\u67FE\u6968\u6A89\u6B63\u6C40\u6DC0\u6DE8\u6E1F\u6E5E\u701E\u70A1\u738E\u73FD\u753A\u775B\u7887\u798E\u7A0B\u7A7D\u7CBE\u7D8E\u8247\u8A02\u8AEA\u8C9E\u912D\u914A\u91D8\u9266\u92CC\u9320\u9706\u9756"],["f0a1","\u975C\u9802\u9F0E\u5236\u5291\u557C\u5824\u5E1D\u5F1F\u608C\u63D0\u68AF\u6FDF\u796D\u7B2C\u81CD\u85BA\u88FD\u8AF8\u8E44\u918D\u9664\u969B\u973D\u984C\u9F4A\u4FCE\u5146\u51CB\u52A9\u5632\u5F14\u5F6B\u63AA\u64CD\u65E9\u6641\u66FA\u66F9\u671D\u689D\u68D7\u69FD\u6F15\u6F6E\u7167\u71E5\u722A\u74AA\u773A\u7956\u795A\u79DF\u7A20\u7A95\u7C97\u7CDF\u7D44\u7E70\u8087\u85FB\u86A4\u8A54\u8ABF\u8D99\u8E81\u9020\u906D\u91E3\u963B\u96D5\u9CE5\u65CF\u7C07\u8DB3\u93C3\u5B58\u5C0A\u5352\u62D9\u731D\u5027\u5B97\u5F9E\u60B0\u616B\u68D5\u6DD9\u742E\u7A2E\u7D42\u7D9C\u7E31\u816B"],["f1a1","\u8E2A\u8E35\u937E\u9418\u4F50\u5750\u5DE6\u5EA7\u632B\u7F6A\u4E3B\u4F4F\u4F8F\u505A\u59DD\u80C4\u546A\u5468\u55FE\u594F\u5B99\u5DDE\u5EDA\u665D\u6731\u67F1\u682A\u6CE8\u6D32\u6E4A\u6F8D\u70B7\u73E0\u7587\u7C4C\u7D02\u7D2C\u7DA2\u821F\u86DB\u8A3B\u8A85\u8D70\u8E8A\u8F33\u9031\u914E\u9152\u9444\u99D0\u7AF9\u7CA5\u4FCA\u5101\u51C6\u57C8\u5BEF\u5CFB\u6659\u6A3D\u6D5A\u6E96\u6FEC\u710C\u756F\u7AE3\u8822\u9021\u9075\u96CB\u99FF\u8301\u4E2D\u4EF2\u8846\u91CD\u537D\u6ADB\u696B\u6C41\u847A\u589E\u618E\u66FE\u62EF\u70DD\u7511\u75C7\u7E52\u84B8\u8B49\u8D08\u4E4B\u53EA"],["f2a1","\u54AB\u5730\u5740\u5FD7\u6301\u6307\u646F\u652F\u65E8\u667A\u679D\u67B3\u6B62\u6C60\u6C9A\u6F2C\u77E5\u7825\u7949\u7957\u7D19\u80A2\u8102\u81F3\u829D\u82B7\u8718\u8A8C\uF9FC\u8D04\u8DBE\u9072\u76F4\u7A19\u7A37\u7E54\u8077\u5507\u55D4\u5875\u632F\u6422\u6649\u664B\u686D\u699B\u6B84\u6D25\u6EB1\u73CD\u7468\u74A1\u755B\u75B9\u76E1\u771E\u778B\u79E6\u7E09\u7E1D\u81FB\u852F\u8897\u8A3A\u8CD1\u8EEB\u8FB0\u9032\u93AD\u9663\u9673\u9707\u4F84\u53F1\u59EA\u5AC9\u5E19\u684E\u74C6\u75BE\u79E9\u7A92\u81A3\u86ED\u8CEA\u8DCC\u8FED\u659F\u6715\uF9FD\u57F7\u6F57\u7DDD\u8F2F"],["f3a1","\u93F6\u96C6\u5FB5\u61F2\u6F84\u4E14\u4F98\u501F\u53C9\u55DF\u5D6F\u5DEE\u6B21\u6B64\u78CB\u7B9A\uF9FE\u8E49\u8ECA\u906E\u6349\u643E\u7740\u7A84\u932F\u947F\u9F6A\u64B0\u6FAF\u71E6\u74A8\u74DA\u7AC4\u7C12\u7E82\u7CB2\u7E98\u8B9A\u8D0A\u947D\u9910\u994C\u5239\u5BDF\u64E6\u672D\u7D2E\u50ED\u53C3\u5879\u6158\u6159\u61FA\u65AC\u7AD9\u8B92\u8B96\u5009\u5021\u5275\u5531\u5A3C\u5EE0\u5F70\u6134\u655E\u660C\u6636\u66A2\u69CD\u6EC4\u6F32\u7316\u7621\u7A93\u8139\u8259\u83D6\u84BC\u50B5\u57F0\u5BC0\u5BE8\u5F69\u63A1\u7826\u7DB5\u83DC\u8521\u91C7\u91F5\u518A\u67F5\u7B56"],["f4a1","\u8CAC\u51C4\u59BB\u60BD\u8655\u501C\uF9FF\u5254\u5C3A\u617D\u621A\u62D3\u64F2\u65A5\u6ECC\u7620\u810A\u8E60\u965F\u96BB\u4EDF\u5343\u5598\u5929\u5DDD\u64C5\u6CC9\u6DFA\u7394\u7A7F\u821B\u85A6\u8CE4\u8E10\u9077\u91E7\u95E1\u9621\u97C6\u51F8\u54F2\u5586\u5FB9\u64A4\u6F88\u7DB4\u8F1F\u8F4D\u9435\u50C9\u5C16\u6CBE\u6DFB\u751B\u77BB\u7C3D\u7C64\u8A79\u8AC2\u581E\u59BE\u5E16\u6377\u7252\u758A\u776B\u8ADC\u8CBC\u8F12\u5EF3\u6674\u6DF8\u807D\u83C1\u8ACB\u9751\u9BD6\uFA00\u5243\u66FF\u6D95\u6EEF\u7DE0\u8AE6\u902E\u905E\u9AD4\u521D\u527F\u54E8\u6194\u6284\u62DB\u68A2"],["f5a1","\u6912\u695A\u6A35\u7092\u7126\u785D\u7901\u790E\u79D2\u7A0D\u8096\u8278\u82D5\u8349\u8549\u8C82\u8D85\u9162\u918B\u91AE\u4FC3\u56D1\u71ED\u77D7\u8700\u89F8\u5BF8\u5FD6\u6751\u90A8\u53E2\u585A\u5BF5\u60A4\u6181\u6460\u7E3D\u8070\u8525\u9283\u64AE\u50AC\u5D14\u6700\u589C\u62BD\u63A8\u690E\u6978\u6A1E\u6E6B\u76BA\u79CB\u82BB\u8429\u8ACF\u8DA8\u8FFD\u9112\u914B\u919C\u9310\u9318\u939A\u96DB\u9A36\u9C0D\u4E11\u755C\u795D\u7AFA\u7B51\u7BC9\u7E2E\u84C4\u8E59\u8E74\u8EF8\u9010\u6625\u693F\u7443\u51FA\u672E\u9EDC\u5145\u5FE0\u6C96\u87F2\u885D\u8877\u60B4\u81B5\u8403"],["f6a1","\u8D05\u53D6\u5439\u5634\u5A36\u5C31\u708A\u7FE0\u805A\u8106\u81ED\u8DA3\u9189\u9A5F\u9DF2\u5074\u4EC4\u53A0\u60FB\u6E2C\u5C64\u4F88\u5024\u55E4\u5CD9\u5E5F\u6065\u6894\u6CBB\u6DC4\u71BE\u75D4\u75F4\u7661\u7A1A\u7A49\u7DC7\u7DFB\u7F6E\u81F4\u86A9\u8F1C\u96C9\u99B3\u9F52\u5247\u52C5\u98ED\u89AA\u4E03\u67D2\u6F06\u4FB5\u5BE2\u6795\u6C88\u6D78\u741B\u7827\u91DD\u937C\u87C4\u79E4\u7A31\u5FEB\u4ED6\u54A4\u553E\u58AE\u59A5\u60F0\u6253\u62D6\u6736\u6955\u8235\u9640\u99B1\u99DD\u502C\u5353\u5544\u577C\uFA01\u6258\uFA02\u64E2\u666B\u67DD\u6FC1\u6FEF\u7422\u7438\u8A17"],["f7a1","\u9438\u5451\u5606\u5766\u5F48\u619A\u6B4E\u7058\u70AD\u7DBB\u8A95\u596A\u812B\u63A2\u7708\u803D\u8CAA\u5854\u642D\u69BB\u5B95\u5E11\u6E6F\uFA03\u8569\u514C\u53F0\u592A\u6020\u614B\u6B86\u6C70\u6CF0\u7B1E\u80CE\u82D4\u8DC6\u90B0\u98B1\uFA04\u64C7\u6FA4\u6491\u6504\u514E\u5410\u571F\u8A0E\u615F\u6876\uFA05\u75DB\u7B52\u7D71\u901A\u5806\u69CC\u817F\u892A\u9000\u9839\u5078\u5957\u59AC\u6295\u900F\u9B2A\u615D\u7279\u95D6\u5761\u5A46\u5DF4\u628A\u64AD\u64FA\u6777\u6CE2\u6D3E\u722C\u7436\u7834\u7F77\u82AD\u8DDB\u9817\u5224\u5742\u677F\u7248\u74E3\u8CA9\u8FA6\u9211"],["f8a1","\u962A\u516B\u53ED\u634C\u4F69\u5504\u6096\u6557\u6C9B\u6D7F\u724C\u72FD\u7A17\u8987\u8C9D\u5F6D\u6F8E\u70F9\u81A8\u610E\u4FBF\u504F\u6241\u7247\u7BC7\u7DE8\u7FE9\u904D\u97AD\u9A19\u8CB6\u576A\u5E73\u67B0\u840D\u8A55\u5420\u5B16\u5E63\u5EE2\u5F0A\u6583\u80BA\u853D\u9589\u965B\u4F48\u5305\u530D\u530F\u5486\u54FA\u5703\u5E03\u6016\u629B\u62B1\u6355\uFA06\u6CE1\u6D66\u75B1\u7832\u80DE\u812F\u82DE\u8461\u84B2\u888D\u8912\u900B\u92EA\u98FD\u9B91\u5E45\u66B4\u66DD\u7011\u7206\uFA07\u4FF5\u527D\u5F6A\u6153\u6753\u6A19\u6F02\u74E2\u7968\u8868\u8C79\u98C7\u98C4\u9A43"],["f9a1","\u54C1\u7A1F\u6953\u8AF7\u8C4A\u98A8\u99AE\u5F7C\u62AB\u75B2\u76AE\u88AB\u907F\u9642\u5339\u5F3C\u5FC5\u6CCC\u73CC\u7562\u758B\u7B46\u82FE\u999D\u4E4F\u903C\u4E0B\u4F55\u53A6\u590F\u5EC8\u6630\u6CB3\u7455\u8377\u8766\u8CC0\u9050\u971E\u9C15\u58D1\u5B78\u8650\u8B14\u9DB4\u5BD2\u6068\u608D\u65F1\u6C57\u6F22\u6FA3\u701A\u7F55\u7FF0\u9591\u9592\u9650\u97D3\u5272\u8F44\u51FD\u542B\u54B8\u5563\u558A\u6ABB\u6DB5\u7DD8\u8266\u929C\u9677\u9E79\u5408\u54C8\u76D2\u86E4\u95A4\u95D4\u965C\u4EA2\u4F09\u59EE\u5AE6\u5DF7\u6052\u6297\u676D\u6841\u6C86\u6E2F\u7F38\u809B\u822A"],["faa1","\uFA08\uFA09\u9805\u4EA5\u5055\u54B3\u5793\u595A\u5B69\u5BB3\u61C8\u6977\u6D77\u7023\u87F9\u89E3\u8A72\u8AE7\u9082\u99ED\u9AB8\u52BE\u6838\u5016\u5E78\u674F\u8347\u884C\u4EAB\u5411\u56AE\u73E6\u9115\u97FF\u9909\u9957\u9999\u5653\u589F\u865B\u8A31\u61B2\u6AF6\u737B\u8ED2\u6B47\u96AA\u9A57\u5955\u7200\u8D6B\u9769\u4FD4\u5CF4\u5F26\u61F8\u665B\u6CEB\u70AB\u7384\u73B9\u73FE\u7729\u774D\u7D43\u7D62\u7E23\u8237\u8852\uFA0A\u8CE2\u9249\u986F\u5B51\u7A74\u8840\u9801\u5ACC\u4FE0\u5354\u593E\u5CFD\u633E\u6D79\u72F9\u8105\u8107\u83A2\u92CF\u9830\u4EA8\u5144\u5211\u578B"],["fba1","\u5F62\u6CC2\u6ECE\u7005\u7050\u70AF\u7192\u73E9\u7469\u834A\u87A2\u8861\u9008\u90A2\u93A3\u99A8\u516E\u5F57\u60E0\u6167\u66B3\u8559\u8E4A\u91AF\u978B\u4E4E\u4E92\u547C\u58D5\u58FA\u597D\u5CB5\u5F27\u6236\u6248\u660A\u6667\u6BEB\u6D69\u6DCF\u6E56\u6EF8\u6F94\u6FE0\u6FE9\u705D\u72D0\u7425\u745A\u74E0\u7693\u795C\u7CCA\u7E1E\u80E1\u82A6\u846B\u84BF\u864E\u865F\u8774\u8B77\u8C6A\u93AC\u9800\u9865\u60D1\u6216\u9177\u5A5A\u660F\u6DF7\u6E3E\u743F\u9B42\u5FFD\u60DA\u7B0F\u54C4\u5F18\u6C5E\u6CD3\u6D2A\u70D8\u7D05\u8679\u8A0C\u9D3B\u5316\u548C\u5B05\u6A3A\u706B\u7575"],["fca1","\u798D\u79BE\u82B1\u83EF\u8A71\u8B41\u8CA8\u9774\uFA0B\u64F4\u652B\u78BA\u78BB\u7A6B\u4E38\u559A\u5950\u5BA6\u5E7B\u60A3\u63DB\u6B61\u6665\u6853\u6E19\u7165\u74B0\u7D08\u9084\u9A69\u9C25\u6D3B\u6ED1\u733E\u8C41\u95CA\u51F0\u5E4C\u5FA8\u604D\u60F6\u6130\u614C\u6643\u6644\u69A5\u6CC1\u6E5F\u6EC9\u6F62\u714C\u749C\u7687\u7BC1\u7C27\u8352\u8757\u9051\u968D\u9EC3\u532F\u56DE\u5EFB\u5F8A\u6062\u6094\u61F7\u6666\u6703\u6A9C\u6DEE\u6FAE\u7070\u736A\u7E6A\u81BE\u8334\u86D4\u8AA8\u8CC4\u5283\u7372\u5B96\u6A6B\u9404\u54EE\u5686\u5B5D\u6548\u6585\u66C9\u689F\u6D8D\u6DC6"],["fda1","\u723B\u80B4\u9175\u9A4D\u4FAF\u5019\u539A\u540E\u543C\u5589\u55C5\u5E3F\u5F8C\u673D\u7166\u73DD\u9005\u52DB\u52F3\u5864\u58CE\u7104\u718F\u71FB\u85B0\u8A13\u6688\u85A8\u55A7\u6684\u714A\u8431\u5349\u5599\u6BC1\u5F59\u5FBD\u63EE\u6689\u7147\u8AF1\u8F1D\u9EBE\u4F11\u643A\u70CB\u7566\u8667\u6064\u8B4E\u9DF8\u5147\u51F6\u5308\u6D36\u80F8\u9ED1\u6615\u6B23\u7098\u75D5\u5403\u5C79\u7D07\u8A16\u6B20\u6B3D\u6B46\u5438\u6070\u6D3D\u7FD5\u8208\u50D6\u51DE\u559C\u566B\u56CD\u59EC\u5B09\u5E0C\u6199\u6198\u6231\u665E\u66E6\u7199\u71B9\u71BA\u72A7\u79A7\u7A00\u7FB2\u8A70"]]});var np=V((CG,eO)=>{eO.exports=[["0","\0",127],["a140","\u3000\uFF0C\u3001\u3002\uFF0E\u2027\uFF1B\uFF1A\uFF1F\uFF01\uFE30\u2026\u2025\uFE50\uFE51\uFE52\xB7\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014\uFE33\u2574\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42\u300E\u300F\uFE43\uFE44\uFE59\uFE5A"],["a1a1","\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B\xA7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3\u2105\xAF\uFFE3\uFF3F\u02CD\uFE49\uFE4A\uFE4D\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D\xD7\xF7\xB1\u221A\uFF1C\uFF1E\uFF1D\u2266\u2267\u2260\u221E\u2252\u2261\uFE62",4,"\uFF5E\u2229\u222A\u22A5\u2220\u221F\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uFF0F"],["a240","\uFF3C\u2215\uFE68\uFF04\uFFE5\u3012\uFFE0\uFFE1\uFF05\uFF20\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D\u339E\u33CE\u33A1\u338E\u338F\u33C4\xB0\u5159\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE\u2581",7,"\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595\u250C\u2510\u2514\u2518\u256D"],["a2a1","\u256E\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3\u25E5\u25E4\u2571\u2572\u2573\uFF10",9,"\u2160",9,"\u3021",8,"\u5341\u5344\u5345\uFF21",25,"\uFF41",21],["a340","\uFF57\uFF58\uFF59\uFF5A\u0391",16,"\u03A3",6,"\u03B1",16,"\u03C3",6,"\u3105",10],["a3a1","\u3110",25,"\u02D9\u02C9\u02CA\u02C7\u02CB"],["a3e1","\u20AC"],["a440","\u4E00\u4E59\u4E01\u4E03\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE\u5F0B\u5F13\u624D"],["a4a1","\u4E11\u4E10\u4E0D\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B\u72AC\u738B\u4E19"],["a540","\u4E16\u4E15\u4E14\u4E18\u4E3B\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB\u56DA\u5916"],["a5a1","\u592E\u5931\u5974\u5976\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146\u5148\u5168"],["a640","\u5171\u518D\u51B0\u5217\u5211\u5212\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76\u5E74"],["a6a1","\u5F0F\u5F1B\u5FD9\u5FD6\u620E\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46\u4F63"],["a740","\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"],["a7a1","\u5747\u574E\u573E\u5750\u574F\u573B\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"],["a840","\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093\u809D\u8098\u809B\u809A\u80B2\u826F\u8292"],["a8a1","\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475"],["a940","\u5496\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45"],["a9a1","\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606\u6602\u660E\u6600\u660F\u6615\u660A"],["aa40","\u6607\u670D\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0"],["aaa1","\u7095\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580\u961C\u9640\u963F\u963B\u9644"],["ab40","\u9642\u96B9\u96E8\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7\u54C2\u54BD\u54AA\u54C1"],["aba1","\u54C4\u54C8\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE\u62FD\u6307\u62F1\u62F7"],["ac40","\u62EF\u62EC\u62FE\u62F4\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C\u6D31\u6D1E\u6D17"],["aca1","\u6D3B\u6D3D\u6D3E\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38\u7F8E\u7FBF\u8004"],["ad40","\u8010\u800D\u8011\u8036\u80D6\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2\u8FEA\u8FE5"],["ada1","\u8FED\u8FEB\u8FE4\u8FE8\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509\u54EE\u54EA"],["ae40","\u54E6\u5527\u5507\u54FD\u550F\u5703\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90\u6059"],["aea1","\u6063\u6065\u6050\u6055\u606D\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59\u6D93"],["af40","\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"],["afa1","\u7825\u782D\u7820\u781F\u7832\u7955\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"],["b040","\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661"],["b0a1","\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40"],["b140","\u5A3C\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD"],["b1a1","\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D\u68A8\u689F\u68A1\u6882\u6B32\u6BBA"],["b240","\u6BEB\u6BEC\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403\u7406\u73FE\u740D\u74E0\u74F6"],["b2a1","\u74F7\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393\u8389\u83A0\u8377\u837B\u837C"],["b340","\u8386\u83A7\u8655\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F\u9022\u9016\u901B\u9014"],["b3a1","\u90E8\u90ED\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D\u5820\u58F9\u58FA\u5960"],["b440","\u5A77\u5A9A\u5A7F\u5A92\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9\u63C9\u63C6\u63CD"],["b4a1","\u63D2\u63E3\u63D0\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43\u6E1D\u6E3E\u6ECB"],["b540","\u6E89\u6E19\u6E4E\u6E63\u6E44\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05\u7A00\u7A98"],["b5a1","\u7A97\u7A96\u7AE5\u7AE3\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E\u8A3C\u8A41"],["b640","\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B\u9591"],["b6a1","\u9593\u9592\u958E\u968A\u968E\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD\u5ABC"],["b740","\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"],["b7a1","\u695A\u6977\u6960\u6954\u6975\u6930\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"],["b840","\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816E\u8173\u816B"],["b8a1","\u8179\u817A\u8166\u8205\u8247\u8482\u8477\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A"],["b940","\u8F9F\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811\u9813\u980A\u9812\u980C\u98FC\u98F4"],["b9a1","\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147"],["ba40","\u613F\u614B\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E\u6F20\u6F2C\u6F0F\u6F02\u6F22"],["baa1","\u6EFF\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC"],["bb40","\u7F70\u7FE0\u7FE1\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3\u8A8D\u8AA1\u8A93\u8AA4"],["bba1","\u8AAA\u8AA5\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102\u5108\u5109\u5105\u51DC"],["bc40","\u5287\u5288\u5289\u528D\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E\u615D\u6155\u6182"],["bca1","\u617C\u6170\u616B\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357\u7469\u748B\u7483"],["bd40","\u747E\u7480\u757F\u7620\u7629\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75\u7F77\u7FAF"],["bda1","\u7FE9\u8026\u819B\u819C\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A\u8F1C\u8F1E"],["be40","\u8F25\u9069\u906E\u9068\u906D\u9077\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06\u9D09"],["bea1","\u9D03\u9EA9\u9EBE\u9ECE\u58A8\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1\u6FA1"],["bf40","\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"],["bfa1","\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A"],["c040","\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121\u5132\u52F5\u568E\u5680\u5690\u5685\u5687"],["c0a1","\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC"],["c140","\u77A7\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD\u81C9\u81BE\u81E8\u8209\u8271\u85AA"],["c1a1","\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E\u97A0\u97D3\u9846\u98B6\u9935\u9A01"],["c240","\u99FF\u9BAE\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375\u74A7\u74BF\u7515\u7656\u7658"],["c2a1","\u7652\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9\u96DB\u96DE\u9724\u97A3\u97A6"],["c340","\u97AD\u97F9\u984D\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206\u720D\u7258\u72A2\u7378"],["c3a1","\u737A\u74BD\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727\u9761\u97DC\u97FB\u985E"],["c440","\u9858\u985B\u98BC\u9945\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0\u8FAE\u7E7D\u7E7C"],["c4a1","\u7E82\u7F4C\u8000\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A\u896C\u89BD\u8B74"],["c540","\u8B77\u8B7D\u8D13\u8E8A\u8E8D\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A\u766E\u766C"],["c5a1","\u79B3\u7C60\u7C5F\u807E\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862\u8B93\u8B92"],["c640","\u8B96\u8277\u8D1B\u91C0\u946A\u9742\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E\u7C72"],["c940","\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15"],["c9a1","\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B"],["ca40","\u6C4C\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A\u5454\u5445\u5419\u541C\u5425\u5418"],["caa1","\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0\u65F4\u65F3\u65F2\u65F5\u6745\u6747"],["cb40","\u6759\u6755\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290\u828F\u8285\u828E\u8291\u8293"],["cba1","\u828A\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780\u5775\u577B\u5773\u5774\u5762"],["cc40","\u5768\u577D\u590C\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D\u6026\u6019\u6032\u600B"],["cca1","\u6034\u600A\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA\u6CC3\u6CC6\u6CED\u6CF2"],["cd40","\u6CD2\u6CDD\u6CB4\u6C8A\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC\u77F9\u77FB\u77FA"],["cda1","\u77F7\u7942\u793F\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1\u54AD\u54A5\u54CF"],["ce40","\u54C3\u830D\u54B7\u54AE\u54D6\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7\u5CCB\u5CDB"],["cea1","\u5CDE\u5CDA\u5CC9\u5CC7\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2\u67C8\u67BA"],["cf40","\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D\u6D42"],["cfa1","\u6D01\u6D18\u6D37\u6D03\u6D0F\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE\u7A80"],["d040","\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"],["d0a1","\u82E4\u82E0\u82FA\u82F3\u82ED\u8677\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1"],["d140","\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067"],["d1a1","\u6041\u60A2\u6088\u6080\u6092\u6081\u609D\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4"],["d240","\u6BE8\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6\u70C7\u70DA\u70CE\u70E1\u7242\u7278"],["d2a1","\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10"],["d340","\u7B04\u7B13\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356\u833F\u8341\u8326\u831C\u8322"],["d3a1","\u8342\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8\u90DB\u90D7\u90DC\u90E4\u9150"],["d440","\u914E\u914F\u91D5\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536\u5535\u5530\u5552\u5545"],["d4a1","\u550C\u5532\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28\u5D0D\u5D26\u5D25\u5D0F"],["d540","\u5D30\u5D12\u5D23\u5D1F\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C\u63A4\u633B\u639F"],["d5a1","\u6378\u6385\u6381\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5\u6DC2\u6DCF\u6DC9"],["d640","\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE\u75D2\u75CF"],["d6a1","\u75CB\u75CC\u75D1\u75D0\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF\u7FC9\u801F"],["d740","\u801E\u801B\u8047\u8043\u8048\u8118\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF\u86B7"],["d7a1","\u86C2\u86C1\u86C5\u86BA\u86B0\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9\u91EA"],["d840","\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"],["d8a1","\u5819\u581E\u5827\u5823\u5828\u57F5\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"],["d940","\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2"],["d9a1","\u667C\u666C\u667B\u6680\u6671\u6679\u666A\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E"],["da40","\u6E68\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335\u730C\u742E\u742C\u7430\u742B\u7416"],["daa1","\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65"],["db40","\u7F66\u7FA2\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F\u83DE\u8411\u8406\u83C2\u83F3"],["dba1","\u83D5\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA"],["dc40","\u8EF9\u8EE6\u8EEE\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C\u9590\u9687\u967E\u9688"],["dca1","\u9689\u9683\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0\u5ABF\u5AC8\u5ABB\u5AC6"],["dd40","\u5AB7\u5AC0\u5ACA\u5AB4\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412\u6409\u6420\u6424"],["dda1","\u6433\u6443\u641F\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B\uFA0D\u6BFB\u6BFC"],["de40","\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F\u7150\u7153"],["dea1","\u7144\u714D\u715A\u724F\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15\u7A22\u7A13"],["df40","\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167\u816F"],["dfa1","\u8144\u8161\u821D\u8249\u8244\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5\u89E4"],["e040","\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"],["e0a1","\u9044\u9049\u903D\u9110\u910D\u910F\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0"],["e140","\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0"],["e1a1","\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9"],["e240","\u69A0\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A"],["e2a1","\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998\u798A\u798B\u7996\u7995\u7994\u7993"],["e340","\u7997\u7988\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9\u7F73\u7FE2\u7FE3\u7FE5\u7FDE"],["e3a1","\u8024\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA\u88FE\u88EE\u88FC\u88F6\u88FB"],["e440","\u88F0\u88EC\u88EB\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A\u92A0\u9294\u92AA\u928D"],["e4a1","\u92A6\u929A\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641\u564A\u5649\u5646\u5658"],["e540","\u565A\u5640\u5633\u563D\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1\u61B0\u61A2\u6189"],["e5a1","\u619B\u6193\u61AF\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E\u6F87\u6FC6\u6F92"],["e640","\u6F8D\u6F89\u6F8C\u6F62\u6F4F\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361\u735A\u7359"],["e6a1","\u7362\u7487\u7489\u748A\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067\u81A3\u819F"],["e740","\u819E\u8195\u81A2\u8199\u8197\u8216\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F\u8662"],["e7a1","\u8756\u8763\u8764\u8777\u87E1\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26\u8E27"],["e840","\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"],["e8a1","\u92B5\u92E1\u92C6\u92B4\u957C\u95AC\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"],["e940","\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA"],["e9a1","\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8"],["ea40","\u6FA2\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1\u779C\u779B\u77A2\u77A3\u7795\u7799"],["eaa1","\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556\u8545\u856B\u854D\u8553\u8561\u8558"],["eb40","\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923\u892F\u892C\u891F\u89F1\u8AE0"],["eba1","\u8AE2\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329\u9339\u9335\u932A\u9314\u930C"],["ec40","\u930B\u92FE\u9309\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93\u9B92\u9B90\u9B7A\u9B95"],["eca1","\u9B7D\u9B88\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1\u6A9E\u6A87\u6A93\u6A8E"],["ed40","\u6A95\u6A83\u6AA8\u6AA4\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB\u77B2\u77B7\u77B6"],["eda1","\u77B4\u77B1\u77A8\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B\u85A4\u859A\u859E"],["ee40","\u8577\u857C\u8589\u85A1\u857A\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2\u89F3\u8B1E"],["eea1","\u8B18\u8B16\u8B11\u8B05\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A\u97A1\u979C"],["ef40","\u979E\u979D\u97D5\u97D4\u97F1\u9841\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38\u9D30"],["efa1","\u9D45\u9D42\u9D43\u9D3E\u9D37\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD\u7376"],["f040","\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"],["f0a1","\u81D0\u825F\u825E\u85B4\u85C6\u85C0\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67"],["f140","\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA"],["f1a1","\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70"],["f240","\u5FBF\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660\u77C9\u77CA\u77C4\u77F1\u791D\u791B"],["f2a1","\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55"],["f340","\u8B51\u8B42\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1\u9729\u972B\u972C\u9728\u9726"],["f3a1","\u97B3\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D\u9F56\u9F57\u9F58\u5337\u56B2"],["f440","\u56B5\u56B3\u58E3\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923\u7927\u7928\u7924\u7929"],["f4a1","\u79B2\u7A6E\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA\u9409\u93F8\u940A\u93FF"],["f540","\u93FC\u940C\u93F6\u9411\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92\u9D98\u9D90\u9D9B"],["f5a1","\u9DA0\u9D94\u9D9C\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620\u8629\u861E\u8625"],["f640","\u8829\u881D\u881B\u8820\u8824\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42\u9A41\u9A3A"],["f6a1","\u9A3F\u9ACD\u9B15\u9B17\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59\u7C5B\u7C5A"],["f740","\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48\u9A4A"],["f7a1","\u9A49\u9A52\u9A50\u9AD0\u9B19\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973\u89FE"],["f840","\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"],["f8a1","\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"],["f940","\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A"],["f9a1","\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570\u256F\u2593"]]});var Jv=V((IG,tO)=>{tO.exports=[["8740","\u43F0\u4C32\u4603\u45A6\u4578\u{27267}\u4D77\u45B3\u{27CB1}\u4CE2\u{27CC5}\u3B95\u4736\u4744\u4C47\u4C40\u{242BF}\u{23617}\u{27352}\u{26E8B}\u{270D2}\u4C57\u{2A351}\u474F\u45DA\u4C85\u{27C6C}\u4D07\u4AA4\u46A1\u{26B23}\u7225\u{25A54}\u{21A63}\u{23E06}\u{23F61}\u664D\u56FB"],["8767","\u7D95\u591D\u{28BB9}\u3DF4\u9734\u{27BEF}\u5BDB\u{21D5E}\u5AA4\u3625\u{29EB0}\u5AD1\u5BB7\u5CFC\u676E\u8593\u{29945}\u7461\u749D\u3875\u{21D53}\u{2369E}\u{26021}\u3EEC"],["87a1","\u{258DE}\u3AF5\u7AFC\u9F97\u{24161}\u{2890D}\u{231EA}\u{20A8A}\u{2325E}\u430A\u8484\u9F96\u942F\u4930\u8613\u5896\u974A\u9218\u79D0\u7A32\u6660\u6A29\u889D\u744C\u7BC5\u6782\u7A2C\u524F\u9046\u34E6\u73C4\u{25DB9}\u74C6\u9FC7\u57B3\u492F\u544C\u4131\u{2368E}\u5818\u7A72\u{27B65}\u8B8F\u46AE\u{26E88}\u4181\u{25D99}\u7BAE\u{224BC}\u9FC8\u{224C1}\u{224C9}\u{224CC}\u9FC9\u8504\u{235BB}\u40B4\u9FCA\u44E1\u{2ADFF}\u62C1\u706E\u9FCB"],["8840","\u31C0",4,"\u{2010C}\u31C5\u{200D1}\u{200CD}\u31C6\u31C7\u{200CB}\u{21FE8}\u31C8\u{200CA}\u31C9\u31CA\u31CB\u31CC\u{2010E}\u31CD\u31CE\u0100\xC1\u01CD\xC0\u0112\xC9\u011A\xC8\u014C\xD3\u01D1\xD2\u0FFF\xCA\u0304\u1EBE\u0FFF\xCA\u030C\u1EC0\xCA\u0101\xE1\u01CE\xE0\u0251\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA"],["88a1","\u01DC\xFC\u0FFF\xEA\u0304\u1EBF\u0FFF\xEA\u030C\u1EC1\xEA\u0261\u23DA\u23DB"],["8940","\u{2A3A9}\u{21145}"],["8943","\u650A"],["8946","\u4E3D\u6EDD\u9D4E\u91DF"],["894c","\u{27735}\u6491\u4F1A\u4F28\u4FA8\u5156\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6\u8BBE\u8BE2\u8F66\u8F67\u8F6E"],["89a1","\u7411\u7CFC\u7DCD\u6946\u7AC9\u5227"],["89ab","\u918C\u78B8\u915E\u80BC"],["89b0","\u8D0B\u80F6\u{209E7}"],["89b5","\u809F\u9EC7\u4CCD\u9DC9\u9E0C\u4C3E\u{29DF6}\u{2700E}\u9E0A\u{2A133}\u35C1"],["89c1","\u6E9A\u823E\u7519"],["89c5","\u4911\u9A6C\u9A8F\u9F99\u7987\u{2846C}\u{21DCA}\u{205D0}\u{22AE6}\u4E24\u4E81\u4E80\u4E87\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598\u553F\u35A5\u35BF\u55D7\u35C5"],["8a40","\u{27D84}\u5525"],["8a43","\u{20C42}\u{20D15}\u{2512B}\u5590\u{22CC6}\u39EC\u{20341}\u8E46\u{24DB8}\u{294E5}\u4053\u{280BE}\u777A\u{22C38}\u3A34\u47D5\u{2815D}\u{269F2}\u{24DEA}\u64DD\u{20D7C}\u{20FB4}\u{20CD5}\u{210F4}\u648D\u8E7E\u{20E96}\u{20C0B}\u{20F64}\u{22CA9}\u{28256}\u{244D3}"],["8a64","\u{20D46}\u{29A4D}\u{280E9}\u47F4\u{24EA7}\u{22CC2}\u9AB2\u3A67\u{295F4}\u3FED\u3506\u{252C7}\u{297D4}\u{278C8}\u{22D44}\u9D6E\u9815"],["8a76","\u43D9\u{260A5}\u64B4\u54E3\u{22D4C}\u{22BCA}\u{21077}\u39FB\u{2106F}"],["8aa1","\u{266DA}\u{26716}\u{279A0}\u64EA\u{25052}\u{20C43}\u8E68\u{221A1}\u{28B4C}\u{20731}"],["8aac","\u480B\u{201A9}\u3FFA\u5873\u{22D8D}"],["8ab2","\u{245C8}\u{204FC}\u{26097}\u{20F4C}\u{20D96}\u5579\u40BB\u43BA"],["8abb","\u4AB4\u{22A66}\u{2109D}\u81AA\u98F5\u{20D9C}\u6379\u39FE\u{22775}\u8DC0\u56A1\u647C\u3E43"],["8ac9","\u{2A601}\u{20E09}\u{22ACF}\u{22CC9}"],["8ace","\u{210C8}\u{239C2}\u3992\u3A06\u{2829B}\u3578\u{25E49}\u{220C7}\u5652\u{20F31}\u{22CB2}\u{29720}\u34BC\u6C3D\u{24E3B}"],["8adf","\u{27574}\u{22E8B}\u{22208}\u{2A65B}\u{28CCD}\u{20E7A}\u{20C34}\u{2681C}\u7F93\u{210CF}\u{22803}\u{22939}\u35FB\u{251E3}\u{20E8C}\u{20F8D}\u{20EAA}\u3F93\u{20F30}\u{20D47}\u{2114F}\u{20E4C}"],["8af6","\u{20EAB}\u{20BA9}\u{20D48}\u{210C0}\u{2113D}\u3FF9\u{22696}\u6432\u{20FAD}"],["8b40","\u{233F4}\u{27639}\u{22BCE}\u{20D7E}\u{20D7F}\u{22C51}\u{22C55}\u3A18\u{20E98}\u{210C7}\u{20F2E}\u{2A632}\u{26B50}\u{28CD2}\u{28D99}\u{28CCA}\u95AA\u54CC\u82C4\u55B9"],["8b55","\u{29EC3}\u9C26\u9AB6\u{2775E}\u{22DEE}\u7140\u816D\u80EC\u5C1C\u{26572}\u8134\u3797\u535F\u{280BD}\u91B6\u{20EFA}\u{20E0F}\u{20E77}\u{20EFB}\u35DD\u{24DEB}\u3609\u{20CD6}\u56AF\u{227B5}\u{210C9}\u{20E10}\u{20E78}\u{21078}\u{21148}\u{28207}\u{21455}\u{20E79}\u{24E50}\u{22DA4}\u5A54\u{2101D}\u{2101E}\u{210F5}\u{210F6}\u579C\u{20E11}"],["8ba1","\u{27694}\u{282CD}\u{20FB5}\u{20E7B}\u{2517E}\u3703\u{20FB6}\u{21180}\u{252D8}\u{2A2BD}\u{249DA}\u{2183A}\u{24177}\u{2827C}\u5899\u5268\u361A\u{2573D}\u7BB2\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\u{25B74}\u{2313D}\u55FB\u35F2\u5689\u4E28\u5902\u{21BC1}\u{2F878}\u9751\u{20086}\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B\u4E2C\u72AD\u{248E9}\u7F52\u793B\u7CF9\u7F53\u{2626A}\u34C1"],["8bde","\u{2634B}\u8002\u8080\u{26612}\u{26951}\u535D\u8864\u89C1\u{278B2}\u8BA0\u8D1D\u9485\u9578\u957F\u95E8\u{28E0F}\u97E6\u9875\u98CE\u98DE\u9963\u{29810}\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\u{20087}\u961D\u6237\u94A2"],["8c40","\u503B\u6DFE\u{29C73}\u9FA6\u3DC9\u888F\u{2414E}\u7077\u5CF5\u4B20\u{251CD}\u3559\u{25D30}\u6122\u{28A32}\u8FA7\u91F6\u7191\u6719\u73BA\u{23281}\u{2A107}\u3C8B\u{21980}\u4B10\u78E4\u7402\u51AE\u{2870F}\u4009\u6A63\u{2A2BA}\u4223\u860F\u{20A6F}\u7A2A\u{29947}\u{28AEA}\u9755\u704D\u5324\u{2207E}\u93F4\u76D9\u{289E3}\u9FA7\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\u9FA8\u5434\u7D8B\u5892\u58D0\u{21DB6}\u5E92\u5E99\u5FC2\u{22712}\u658B"],["8ca1","\u{233F9}\u6919\u6A43\u{23C63}\u6CFF"],["8ca7","\u7200\u{24505}\u738C\u3EDB\u{24A13}\u5B15\u74B9\u8B83\u{25CA4}\u{25695}\u7A93\u7BEC\u7CC3\u7E6C\u82F8\u8597\u9FA9\u8890\u9FAA\u8EB9\u9FAB\u8FCF\u855F\u99E0\u9221\u9FAC\u{28DB9}\u{2143F}\u4071\u42A2\u5A1A"],["8cc9","\u9868\u676B\u4276\u573D"],["8cce","\u85D6\u{2497B}\u82BF\u{2710D}\u4C81\u{26D74}\u5D7B\u{26B15}\u{26FBE}\u9FAD\u9FAE\u5B96\u9FAF\u66E7\u7E5B\u6E57\u79CA\u3D88\u44C3\u{23256}\u{22796}\u439A\u4536"],["8ce6","\u5CD5\u{23B1A}\u8AF9\u5C78\u3D12\u{23551}\u5D78\u9FB2\u7157\u4558\u{240EC}\u{21E23}\u4C77\u3978\u344A\u{201A4}\u{26C41}\u8ACC\u4FB4\u{20239}\u59BF\u816C\u9856\u{298FA}\u5F3B"],["8d40","\u{20B9F}"],["8d42","\u{221C1}\u{2896D}\u4102\u46BB\u{29079}\u3F07\u9FB3\u{2A1B5}\u40F8\u37D6\u46F7\u{26C46}\u417C\u{286B2}\u{273FF}\u456D\u38D4\u{2549A}\u4561\u451B\u4D89\u4C7B\u4D76\u45EA\u3FC8\u{24B0F}\u3661\u44DE\u44BD\u41ED\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8\u56B1"],["8da1","\u3A03\u63E2\u63FB\u6407\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1\u6E15\u6E18\u6E29\u6E86\u{289C0}\u6EBB\u6EE2\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\u{23F41}\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91\u7050\u7054\u706F\u707F\u7089\u{20325}\u43C1\u35F1\u{20ED8}"],["8e40","\u{23ED7}\u57BE\u{26ED3}\u713E\u{257E0}\u364E\u69A2\u{28BE9}\u5B74\u7A49\u{258E1}\u{294D9}\u7A65\u7A7D\u{259AC}\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\u{2648D}\u41CA\u7ADA\u7ADD\u7AEA\u41EF\u54B2\u{25C01}\u7B0B\u7B55\u7B29\u{2530E}\u{25CFE}\u7BA2\u7B6F\u839C\u{25BB4}\u{26C7F}\u7BD0\u8421\u7B92\u7BB8\u{25D20}\u3DAD\u{25C65}\u8492\u7BFA\u7C06\u7C35\u{25CC1}\u7C44\u7C83\u{24882}\u7CA6\u667D\u{24578}\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\u7CCE"],["8ea1","\u7E67\u451D\u{26E44}\u7D5D\u{26ED6}\u748D\u7D89\u7DAB\u7135\u7DB3\u7DD2\u{24057}\u{26029}\u7DE4\u3D13\u7DF5\u{217F9}\u7DE5\u{2836D}\u7E1D\u{26121}\u{2615A}\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47\u7936\u{262D0}\u99E1\u7F97\u{26351}\u7FA3\u{21661}\u{20068}\u455C\u{23766}\u4503\u{2833A}\u7FFA\u{26489}\u8005\u8008\u801D\u8028\u802F\u{2A087}\u{26CC3}\u803B\u803C\u8061\u{22714}\u4989\u{26626}\u{23DE3}\u{266E8}\u6725\u80A7\u{28A48}\u8107\u811A\u58B0\u{226F6}\u6C7F\u{26498}\u{24FB8}\u64E7\u{2148A}\u8218\u{2185E}\u6A53\u{24A65}\u{24A95}\u447A\u8229\u{20B0D}\u{26A52}\u{23D7E}\u4FF9\u{214FD}\u84E2\u8362\u{26B0A}\u{249A7}\u{23530}\u{21773}\u{23DF8}\u82AA\u691B\u{2F994}\u41DB"],["8f40","\u854B\u82D0\u831A\u{20E16}\u{217B4}\u36C1\u{2317D}\u{2355A}\u827B\u82E2\u8318\u{23E8B}\u{26DA3}\u{26B05}\u{26B97}\u{235CE}\u3DBF\u831D\u55EC\u8385\u450B\u{26DA5}\u83AC\u83C1\u83D3\u347E\u{26ED4}\u6A57\u855A\u3496\u{26E42}\u{22EEF}\u8458\u{25BE4}\u8471\u3DD3\u44E4\u6AA7\u844A\u{23CB5}\u7958\u84A8\u{26B96}\u{26E77}\u{26E43}\u84DE\u840F\u8391\u44A0\u8493\u84E4\u{25C91}\u4240\u{25CC0}\u4543\u8534\u5AF2\u{26E99}\u4527\u8573\u4516\u67BF\u8616"],["8fa1","\u{28625}\u{2863B}\u85C1\u{27088}\u8602\u{21582}\u{270CD}\u{2F9B2}\u456A\u8628\u3648\u{218A2}\u53F7\u{2739A}\u867E\u8771\u{2A0F8}\u87EE\u{22C27}\u87B1\u87DA\u880F\u5661\u866C\u6856\u460F\u8845\u8846\u{275E0}\u{23DB9}\u{275E4}\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777\u{2770F}\u8987\u898A\u89A6\u89A9\u89A7\u89BC\u{28A25}\u89E7\u{27924}\u{27ABD}\u8A9C\u7793\u91FE\u8A90\u{27A59}\u7AE9\u{27B3A}\u{23F8F}\u4713\u{27B38}\u717C\u8B0C\u8B1F\u{25430}\u{25565}\u8B3F\u8B4C\u8B4D\u8AA9\u{24A7A}\u8B90\u8B9B\u8AAF\u{216DF}\u4615\u884F\u8C9B\u{27D54}\u{27D8F}\u{2F9D4}\u3725\u{27D53}\u8CD6\u{27D98}\u{27DBD}\u8D12\u8D03\u{21910}\u8CDB\u705C\u8D11\u{24CC9}\u3ED0\u8D77"],["9040","\u8DA9\u{28002}\u{21014}\u{2498A}\u3B7C\u{281BC}\u{2710C}\u7AE7\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\u{28365}\u{28412}\u8FA5\u9303\u{2A29F}\u{20A50}\u8FB3\u492A\u{289DE}\u{2853D}\u{23DBB}\u5EF8\u{23262}\u8FF9\u{2A014}\u{286BC}\u{28501}\u{22325}\u3980\u{26ED7}\u9037\u{2853C}\u{27ABE}\u9061\u{2856C}\u{2860B}\u90A8\u{28713}\u90C4\u{286E6}\u90AE\u90FD\u9167\u3AF0\u91A9\u91C4\u7CAC\u{28933}\u{21E89}\u920E\u6C9F\u9241\u9262\u{255B9}\u92B9\u{28AC6}\u{23C9B}\u{28B0C}\u{255DB}"],["90a1","\u{20D31}\u932C\u936B\u{28AE1}\u{28BEB}\u708F\u5AC3\u{28AE2}\u{28AE5}\u4965\u9244\u{28BEC}\u{28C39}\u{28BFF}\u9373\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\u{2267A}\u{286D8}\u{2127C}\u{23E2E}\u49DF\u6C1C\u967B\u9696\u416C\u96A3\u{26ED5}\u61DA\u96B6\u78F5\u{28AE0}\u96BD\u53CC\u49A1\u{26CB8}\u{20274}\u{26410}\u{290AF}\u{290E5}\u{24AD1}\u{21915}\u{2330A}\u9731\u8642\u9736\u4A0F\u453D\u4585\u{24AE9}\u7075\u5B41\u971B\u975C\u{291D5}\u9757\u5B4A\u{291EB}\u975F\u9425\u50D0\u{230B7}\u{230BC}\u9789\u979F\u97B1\u97BE\u97C0\u97D2\u97E0\u{2546C}\u97EE\u741C\u{29433}\u97FF\u97F5\u{2941D}\u{2797A}\u4AD1\u9834\u9833\u984B\u9866\u3B0E\u{27175}\u3D51\u{20630}\u{2415C}"],["9140","\u{25706}\u98CA\u98B7\u98C8\u98C7\u4AFF\u{26D27}\u{216D3}\u55B0\u98E1\u98E6\u98EC\u9378\u9939\u{24A29}\u4B72\u{29857}\u{29905}\u99F5\u9A0C\u9A3B\u9A10\u9A58\u{25725}\u36C4\u{290B1}\u{29BD5}\u9AE0\u9AE2\u{29B05}\u9AF4\u4C0E\u9B14\u9B2D\u{28600}\u5034\u9B34\u{269A8}\u38C3\u{2307D}\u9B50\u9B40\u{29D3E}\u5A45\u{21863}\u9B8E\u{2424B}\u9C02\u9BFF\u9C0C\u{29E68}\u9DD4\u{29FB7}\u{2A192}\u{2A1AB}\u{2A0E1}\u{2A123}\u{2A1DF}\u9D7E\u9D83\u{2A134}\u9E0E\u6888"],["91a1","\u9DC4\u{2215B}\u{2A193}\u{2A220}\u{2193B}\u{2A233}\u9D39\u{2A0B9}\u{2A2B4}\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\u{24364}\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\u{28C2B}\u9F02\u9F08\u4B96\u9424\u{26DA2}\u9F17\u9F16\u9F39\u569F\u568A\u9F45\u99B8\u{2908B}\u97F2\u847F\u9F62\u9F69\u7ADC\u9F8E\u7216\u4BBE\u{24975}\u{249BB}\u7177\u{249F8}\u{24348}\u{24A51}\u739E\u{28BDA}\u{218FA}\u799F\u{2897E}\u{28E36}\u9369\u93F3\u{28A44}\u92EC\u9381\u93CB\u{2896C}\u{244B9}\u7217\u3EEB\u7772\u7A43\u70D0\u{24473}\u{243F8}\u717E\u{217EF}\u70A3\u{218BE}\u{23599}\u3EC7\u{21885}\u{2542F}\u{217F8}\u3722\u{216FB}\u{21839}\u36E1\u{21774}\u{218D1}\u{25F4B}\u3723\u{216C0}\u575B\u{24A25}\u{213FE}\u{212A8}"],["9240","\u{213C6}\u{214B6}\u8503\u{236A6}\u8503\u8455\u{24994}\u{27165}\u{23E31}\u{2555C}\u{23EFB}\u{27052}\u44F4\u{236EE}\u{2999D}\u{26F26}\u67F9\u3733\u3C15\u3DE7\u586C\u{21922}\u6810\u4057\u{2373F}\u{240E1}\u{2408B}\u{2410F}\u{26C21}\u54CB\u569E\u{266B1}\u5692\u{20FDF}\u{20BA8}\u{20E0D}\u93C6\u{28B13}\u939C\u4EF8\u512B\u3819\u{24436}\u4EBC\u{20465}\u{2037F}\u4F4B\u4F8A\u{25651}\u5A68\u{201AB}\u{203CB}\u3999\u{2030A}\u{20414}\u3435\u4F29\u{202C0}\u{28EB3}\u{20275}\u8ADA\u{2020C}\u4E98"],["92a1","\u50CD\u510D\u4FA2\u4F03\u{24A0E}\u{23E8A}\u4F42\u502E\u506C\u5081\u4FCC\u4FE5\u5058\u50FC\u5159\u515B\u515D\u515E\u6E76\u{23595}\u{23E39}\u{23EBF}\u6D72\u{21884}\u{23E89}\u51A8\u51C3\u{205E0}\u44DD\u{204A3}\u{20492}\u{20491}\u8D7A\u{28A9C}\u{2070E}\u5259\u52A4\u{20873}\u52E1\u936E\u467A\u718C\u{2438C}\u{20C20}\u{249AC}\u{210E4}\u69D1\u{20E1D}\u7479\u3EDE\u7499\u7414\u7456\u7398\u4B8E\u{24ABC}\u{2408D}\u53D0\u3584\u720F\u{240C9}\u55B4\u{20345}\u54CD\u{20BC6}\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB\u5A99\u{28A46}\u{216FA}\u{2176F}\u{21710}\u5A2C\u59B8\u928F\u5A7E\u5ACF\u5A12\u{25946}\u{219F3}\u{21861}\u{24295}\u36F5\u6D05\u7443\u5A21\u{25E83}"],["9340","\u5A81\u{28BD7}\u{20413}\u93E0\u748C\u{21303}\u7105\u4972\u9408\u{289FB}\u93BD\u37A0\u5C1E\u5C9E\u5E5E\u5E48\u{21996}\u{2197C}\u{23AEE}\u5ECD\u5B4F\u{21903}\u{21904}\u3701\u{218A0}\u36DD\u{216FE}\u36D3\u812A\u{28A47}\u{21DBA}\u{23472}\u{289A8}\u5F0C\u5F0E\u{21927}\u{217AB}\u5A6B\u{2173B}\u5B44\u8614\u{275FD}\u8860\u607E\u{22860}\u{2262B}\u5FDB\u3EB8\u{225AF}\u{225BE}\u{29088}\u{26F73}\u61C0\u{2003E}\u{20046}\u{2261B}\u6199\u6198\u6075\u{22C9B}\u{22D07}\u{246D4}\u{2914D}"],["93a1","\u6471\u{24665}\u{22B6A}\u3A29\u{22B22}\u{23450}\u{298EA}\u{22E78}\u6337\u{2A45B}\u64B6\u6331\u63D1\u{249E3}\u{22D67}\u62A4\u{22CA1}\u643B\u656B\u6972\u3BF4\u{2308E}\u{232AD}\u{24989}\u{232AB}\u550D\u{232E0}\u{218D9}\u{2943F}\u66CE\u{23289}\u{231B3}\u3AE0\u4190\u{25584}\u{28B22}\u{2558F}\u{216FC}\u{2555B}\u{25425}\u78EE\u{23103}\u{2182A}\u{23234}\u3464\u{2320F}\u{23182}\u{242C9}\u668E\u{26D24}\u666B\u4B93\u6630\u{27870}\u{21DEB}\u6663\u{232D2}\u{232E1}\u661E\u{25872}\u38D1\u{2383A}\u{237BC}\u3B99\u{237A2}\u{233FE}\u74D0\u3B96\u678F\u{2462A}\u68B6\u681E\u3BC4\u6ABE\u3863\u{237D5}\u{24487}\u6A33\u6A52\u6AC9\u6B05\u{21912}\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\u{23FC0}\u{23C9A}\u93A0\u92F2\u{28BEA}\u{28ACB}"],["9440","\u9289\u{2801E}\u{289DC}\u9467\u6DA5\u6F0B\u{249EC}\u6D67\u{23F7F}\u3D8F\u6E04\u{2403C}\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\u{2431A}\u{24276}\u70F1\u7250\u7287\u7294\u{2478F}\u{24725}\u5179\u{24AA4}\u{205EB}\u747A\u{23EF8}\u{2365F}\u{24A4A}\u{24917}\u{25FE1}\u3F06\u3EB1\u{24ADF}\u{28C23}\u{23F35}\u60A7\u3EF3\u74CC\u743C\u9387\u7437\u449F\u{26DEA}\u4551\u7583\u3F63\u{24CD9}\u{24D06}\u3F58\u7555\u7673\u{2A5C6}\u3B19\u7468\u{28ACC}\u{249AB}\u{2498E}\u3AFB"],["94a1","\u3DCD\u{24A4E}\u3EFF\u{249C5}\u{248F3}\u91FA\u5732\u9342\u{28AE3}\u{21864}\u50DF\u{25221}\u{251E7}\u7778\u{23232}\u770E\u770F\u777B\u{24697}\u{23781}\u3A5E\u{248F0}\u7438\u749B\u3EBF\u{24ABA}\u{24AC7}\u40C8\u{24A96}\u{261AE}\u9307\u{25581}\u781E\u788D\u7888\u78D2\u73D0\u7959\u{27741}\u{256E3}\u410E\u799B\u8496\u79A5\u6A2D\u{23EFA}\u7A3A\u79F4\u416E\u{216E6}\u4132\u9235\u79F1\u{20D4C}\u{2498C}\u{20299}\u{23DBA}\u{2176E}\u3597\u556B\u3570\u36AA\u{201D4}\u{20C0D}\u7AE2\u5A59\u{226F5}\u{25AAF}\u{25A9C}\u5A0D\u{2025B}\u78F0\u5A2A\u{25BC6}\u7AFE\u41F9\u7C5D\u7C6D\u4211\u{25BB3}\u{25EBC}\u{25EA6}\u7CCD\u{249F9}\u{217B0}\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3\u7F4E\u{26261}"],["9540","\u{2615C}\u{27B48}\u7D97\u{25E82}\u426A\u{26B75}\u{20916}\u67D6\u{2004E}\u{235CF}\u57C4\u{26412}\u{263F8}\u{24962}\u7FDD\u7B27\u{2082C}\u{25AE9}\u{25D43}\u7B0C\u{25E0E}\u99E6\u8645\u9A63\u6A1C\u{2343F}\u39E2\u{249F7}\u{265AD}\u9A1F\u{265A0}\u8480\u{27127}\u{26CD1}\u44EA\u8137\u4402\u80C6\u8109\u8142\u{267B4}\u98C3\u{26A42}\u8262\u8265\u{26A51}\u8453\u{26DA7}\u8610\u{2721B}\u5A86\u417F\u{21840}\u5B2B\u{218A1}\u5AE4\u{218D8}\u86A0\u{2F9BC}\u{23D8F}\u882D\u{27422}\u5A02"],["95a1","\u886E\u4F45\u8887\u88BF\u88E6\u8965\u894D\u{25683}\u8954\u{27785}\u{27784}\u{28BF5}\u{28BD9}\u{28B9C}\u{289F9}\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D\u8A1C\u{29448}\u5F4D\u922B\u{24284}\u65D4\u7129\u70C4\u{21845}\u9D6D\u8C9F\u8CE9\u{27DDC}\u599A\u77C3\u59F0\u436E\u36D4\u8E2A\u8EA7\u{24C09}\u8F30\u8F4A\u42F4\u6C58\u6FBB\u{22321}\u489B\u6F79\u6E8B\u{217DA}\u9BE9\u36B5\u{2492F}\u90BB\u9097\u5571\u4906\u91BB\u9404\u{28A4B}\u4062\u{28AFC}\u9427\u{28C1D}\u{28C3B}\u84E5\u8A2B\u9599\u95A7\u9597\u9596\u{28D34}\u7445\u3EC2\u{248FF}\u{24A42}\u{243EA}\u3EE7\u{23225}\u968F\u{28EE7}\u{28E66}\u{28E65}\u3ECC\u{249ED}\u{24A78}\u{23FEE}\u7412\u746B\u3EFC\u9741\u{290B0}"],["9640","\u6847\u4A1D\u{29093}\u{257DF}\u975D\u9368\u{28989}\u{28C26}\u{28B2F}\u{263BE}\u92BA\u5B11\u8B69\u493C\u73F9\u{2421B}\u979B\u9771\u9938\u{20F26}\u5DC1\u{28BC5}\u{24AB2}\u981F\u{294DA}\u92F6\u{295D7}\u91E5\u44C0\u{28B50}\u{24A67}\u{28B64}\u98DC\u{28A45}\u3F00\u922A\u4925\u8414\u993B\u994D\u{27B06}\u3DFD\u999B\u4B6F\u99AA\u9A5C\u{28B65}\u{258C8}\u6A8F\u9A21\u5AFE\u9A2F\u{298F1}\u4B90\u{29948}\u99BC\u4BBD\u4B97\u937D\u5872\u{21302}\u5822\u{249B8}"],["96a1","\u{214E8}\u7844\u{2271F}\u{23DB8}\u68C5\u3D7D\u9458\u3927\u6150\u{22781}\u{2296B}\u6107\u9C4F\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\u{29E2D}\u9B9F\u{2A1F5}\u{2A0FE}\u9D21\u4CAE\u{24104}\u9E18\u4CB0\u9D0C\u{2A1B4}\u{2A0ED}\u{2A0F3}\u{2992F}\u9DA5\u84BD\u{26E12}\u{26FDF}\u{26B82}\u85FC\u4533\u{26DA4}\u{26E84}\u{26DF0}\u8420\u85EE\u{26E00}\u{237D7}\u{26064}\u79E2\u{2359C}\u{23640}\u492D\u{249DE}\u3D62\u93DB\u92BE\u9348\u{202BF}\u78B9\u9277\u944D\u4FE4\u3440\u9064\u{2555D}\u783D\u7854\u78B6\u784B\u{21757}\u{231C9}\u{24941}\u369A\u4F72\u6FDA\u6FD9\u701E\u701E\u5414\u{241B5}\u57BB\u58F3\u578A\u9D16\u57D7\u7134\u34AF\u{241AC}\u71EB\u{26C40}\u{24F97}\u5B28\u{217B5}\u{28A49}"],["9740","\u610C\u5ACE\u5A0B\u42BC\u{24488}\u372C\u4B7B\u{289FC}\u93BB\u93B8\u{218D6}\u{20F1D}\u8472\u{26CC0}\u{21413}\u{242FA}\u{22C26}\u{243C1}\u5994\u{23DB7}\u{26741}\u7DA8\u{2615B}\u{260A4}\u{249B9}\u{2498B}\u{289FA}\u92E5\u73E2\u3EE9\u74B4\u{28B63}\u{2189F}\u3EE1\u{24AB3}\u6AD8\u73F3\u73FB\u3ED6\u{24A3E}\u{24A94}\u{217D9}\u{24A66}\u{203A7}\u{21424}\u{249E5}\u7448\u{24916}\u70A5\u{24976}\u9284\u73E6\u935F\u{204FE}\u9331\u{28ACE}\u{28A16}\u9386\u{28BE7}\u{255D5}\u4935\u{28A82}\u716B"],["97a1","\u{24943}\u{20CFF}\u56A4\u{2061A}\u{20BEB}\u{20CB8}\u5502\u79C4\u{217FA}\u7DFE\u{216C2}\u{24A50}\u{21852}\u452E\u9401\u370A\u{28AC0}\u{249AD}\u59B0\u{218BF}\u{21883}\u{27484}\u5AA1\u36E2\u{23D5B}\u36B0\u925F\u5A79\u{28A81}\u{21862}\u9374\u3CCD\u{20AB4}\u4A96\u398A\u50F4\u3D69\u3D4C\u{2139C}\u7175\u42FB\u{28218}\u6E0F\u{290E4}\u44EB\u6D57\u{27E4F}\u7067\u6CAF\u3CD6\u{23FED}\u{23E2D}\u6E02\u6F0C\u3D6F\u{203F5}\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4\u926E\u493E\u8F41\u{28C1C}\u{26BC0}\u5812\u57C8\u36D6\u{21452}\u70FE\u{24362}\u{24A71}\u{22FE3}\u{212B0}\u{223BD}\u68B9\u6967\u{21398}\u{234E5}\u{27BF4}\u{236DF}\u{28A83}\u{237D6}\u{233FA}\u{24C9F}\u6A1A\u{236AD}\u{26CB7}\u843E\u44DF\u44CE"],["9840","\u{26D26}\u{26D51}\u{26C82}\u{26FDE}\u6F17\u{27109}\u833D\u{2173A}\u83ED\u{26C80}\u{27053}\u{217DB}\u5989\u5A82\u{217B3}\u5A61\u5A71\u{21905}\u{241FC}\u372D\u59EF\u{2173C}\u36C7\u718E\u9390\u669A\u{242A5}\u5A6E\u5A2B\u{24293}\u6A2B\u{23EF9}\u{27736}\u{2445B}\u{242CA}\u711D\u{24259}\u{289E1}\u4FB0\u{26D28}\u5CC2\u{244CE}\u{27E4D}\u{243BD}\u6A0C\u{24256}\u{21304}\u70A6\u7133\u{243E9}\u3DA5\u6CDF\u{2F825}\u{24A4F}\u7E65\u59EB\u5D2F\u3DF3\u5F5C\u{24A5D}\u{217DF}\u7DA4\u8426"],["98a1","\u5485\u{23AFA}\u{23300}\u{20214}\u577E\u{208D5}\u{20619}\u3FE5\u{21F9E}\u{2A2B6}\u7003\u{2915B}\u5D70\u738F\u7CD3\u{28A59}\u{29420}\u4FC8\u7FE7\u72CD\u7310\u{27AF4}\u7338\u7339\u{256F6}\u7341\u7348\u3EA9\u{27B18}\u906C\u71F5\u{248F2}\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\u{24F5C}\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866\u8448\u{25535}\u7933\u6803\u7932\u4103"],["9940","\u4109\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\u{20CCF}\u7DCF\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114\u4401\u3B39\u8156\u8159\u815A"],["99a1","\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF\u8924\u8947\u8991\u{27967}\u8A29\u8A38\u8A94\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228\u9258\u926B\u92B1\u92AE\u92BF"],["9a40","\u92E3\u92EB\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20\u376F\u{21BC2}\u9D49\u9C3A"],["9aa1","\u9EFE\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8\u9F44\u{20094}\u{202B7}\u{203A0}\u691A\u94C3\u59AC\u{204D7}\u5840\u94C1\u37B9\u{205D5}\u{20615}\u{20676}\u{216BA}\u5757\u7173\u{20AC2}\u{20ACD}\u{20BBF}\u546A\u{2F83B}\u{20BCB}\u549E\u{20BFB}\u{20C3B}\u{20C53}\u{20C65}\u{20C7C}\u60E7\u{20C8D}\u567A\u{20CB5}\u{20CDD}\u{20CED}\u{20D6F}\u{20DB2}\u{20DC8}\u6955\u9C2F\u87A5\u{20E04}\u{20E0E}\u{20ED7}\u{20F90}\u{20F2D}\u{20E73}\u5C20\u{20FBC}\u5E0B\u{2105C}\u{2104F}\u{21076}\u671E\u{2107B}\u{21088}\u{21096}\u3647\u{210BF}\u{210D3}\u{2112F}\u{2113B}\u5364\u84AD\u{212E3}\u{21375}\u{21336}\u8B81\u{21577}\u{21619}\u{217C3}\u{217C7}\u4E78\u70BB\u{2182D}\u{2196A}"],["9b40","\u{21A2D}\u{21A45}\u{21C2A}\u{21C70}\u{21CAC}\u{21EC8}\u62C3\u{21ED5}\u{21F15}\u7198\u6855\u{22045}\u69E9\u36C8\u{2227C}\u{223D7}\u{223FA}\u{2272A}\u{22871}\u{2294F}\u82FD\u{22967}\u{22993}\u{22AD5}\u89A5\u{22AE8}\u8FA0\u{22B0E}\u97B8\u{22B3F}\u9847\u9ABD\u{22C4C}"],["9b62","\u{22C88}\u{22CB7}\u{25BE8}\u{22D08}\u{22D12}\u{22DB7}\u{22D95}\u{22E42}\u{22F74}\u{22FCC}\u{23033}\u{23066}\u{2331F}\u{233DE}\u5FB1\u6648\u66BF\u{27A79}\u{23567}\u{235F3}\u7201\u{249BA}\u77D7\u{2361A}\u{23716}\u7E87\u{20346}\u58B5\u670E"],["9ba1","\u6918\u{23AA7}\u{27657}\u{25FE2}\u{23E11}\u{23EB9}\u{275FE}\u{2209A}\u48D0\u4AB8\u{24119}\u{28A9A}\u{242EE}\u{2430D}\u{2403B}\u{24334}\u{24396}\u{24A45}\u{205CA}\u51D2\u{20611}\u599F\u{21EA8}\u3BBE\u{23CFF}\u{24404}\u{244D6}\u5788\u{24674}\u399B\u{2472F}\u{285E8}\u{299C9}\u3762\u{221C3}\u8B5E\u{28B4E}\u99D6\u{24812}\u{248FB}\u{24A15}\u7209\u{24AC0}\u{20C78}\u5965\u{24EA5}\u{24F86}\u{20779}\u8EDA\u{2502C}\u528F\u573F\u7171\u{25299}\u{25419}\u{23F4A}\u{24AA7}\u55BC\u{25446}\u{2546E}\u{26B52}\u91D4\u3473\u{2553F}\u{27632}\u{2555E}\u4718\u{25562}\u{25566}\u{257C7}\u{2493F}\u{2585D}\u5066\u34FB\u{233CC}\u60DE\u{25903}\u477C\u{28948}\u{25AAE}\u{25B89}\u{25C06}\u{21D90}\u57A1\u7151\u6FB6\u{26102}\u{27C12}\u9056\u{261B2}\u{24F9A}\u8B62\u{26402}\u{2644A}"],["9c40","\u5D5B\u{26BF7}\u8F36\u{26484}\u{2191C}\u8AEA\u{249F6}\u{26488}\u{23FEF}\u{26512}\u4BC0\u{265BF}\u{266B5}\u{2271B}\u9465\u{257E1}\u6195\u5A27\u{2F8CD}\u4FBB\u56B9\u{24521}\u{266FC}\u4E6A\u{24934}\u9656\u6D8F\u{26CBD}\u3618\u8977\u{26799}\u{2686E}\u{26411}\u{2685E}\u71DF\u{268C7}\u7B42\u{290C0}\u{20A11}\u{26926}\u9104\u{26939}\u7A45\u9DF0\u{269FA}\u9A26\u{26A2D}\u365F\u{26469}\u{20021}\u7983\u{26A34}\u{26B5B}\u5D2C\u{23519}\u83CF\u{26B9D}\u46D0\u{26CA4}\u753B\u8865\u{26DAE}\u58B6"],["9ca1","\u371C\u{2258D}\u{2704B}\u{271CD}\u3C54\u{27280}\u{27285}\u9281\u{2217A}\u{2728B}\u9330\u{272E6}\u{249D0}\u6C39\u949F\u{27450}\u{20EF8}\u8827\u88F5\u{22926}\u{28473}\u{217B1}\u6EB8\u{24A2A}\u{21820}\u39A4\u36B9\u5C10\u79E3\u453F\u66B6\u{29CAD}\u{298A4}\u8943\u{277CC}\u{27858}\u56D6\u40DF\u{2160A}\u39A1\u{2372F}\u{280E8}\u{213C5}\u71AD\u8366\u{279DD}\u{291A8}\u5A67\u4CB7\u{270AF}\u{289AB}\u{279FD}\u{27A0A}\u{27B0B}\u{27D66}\u{2417A}\u7B43\u797E\u{28009}\u6FB5\u{2A2DF}\u6A03\u{28318}\u53A2\u{26E07}\u93BF\u6836\u975D\u{2816F}\u{28023}\u{269B5}\u{213ED}\u{2322F}\u{28048}\u5D85\u{28C30}\u{28083}\u5715\u9823\u{28949}\u5DAB\u{24988}\u65BE\u69D5\u53D2\u{24AA5}\u{23F81}\u3C11\u6736\u{28090}\u{280F4}\u{2812E}\u{21FA1}\u{2814F}"],["9d40","\u{28189}\u{281AF}\u{2821A}\u{28306}\u{2832F}\u{2838A}\u35CA\u{28468}\u{286AA}\u48FA\u63E6\u{28956}\u7808\u9255\u{289B8}\u43F2\u{289E7}\u43DF\u{289E8}\u{28B46}\u{28BD4}\u59F8\u{28C09}\u8F0B\u{28FC5}\u{290EC}\u7B51\u{29110}\u{2913C}\u3DF7\u{2915E}\u{24ACA}\u8FD0\u728F\u568B\u{294E7}\u{295E9}\u{295B0}\u{295B8}\u{29732}\u{298D1}\u{29949}\u{2996A}\u{299C3}\u{29A28}\u{29B0E}\u{29D5A}\u{29D9B}\u7E9F\u{29EF8}\u{29F23}\u4CA4\u9547\u{2A293}\u71A2\u{2A2FF}\u4D91\u9012\u{2A5CB}\u4D9C\u{20C9C}\u8FBE\u55C1"],["9da1","\u8FBA\u{224B0}\u8FB9\u{24A93}\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\u{28B2C}\u{2789D}\u373A\u8E80\u{217F5}\u{28024}\u{28B6C}\u{28B99}\u{27A3E}\u{266AF}\u3DEB\u{27655}\u{23CB7}\u{25635}\u{25956}\u4E9A\u{25E81}\u{26258}\u56BF\u{20E6D}\u8E0E\u5B6D\u{23E88}\u{24C9E}\u63DE\u62D0\u{217F6}\u{2187B}\u6530\u562D\u{25C4A}\u541A\u{25311}\u3DC6\u{29D98}\u4C7D\u5622\u561E\u7F49\u{25ED8}\u5975\u{23D40}\u8770\u4E1C\u{20FEA}\u{20D49}\u{236BA}\u8117\u9D5E\u8D18\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\u{20E9D}\u35CE\u5605\u55F1\u66F1\u{282E2}\u362D\u7534\u55F0\u55BA\u5497\u5572\u{20C41}\u{20C96}\u5ED0\u{25148}\u{20E76}\u{22C62}"],["9e40","\u{20EA2}\u9EAB\u7D5A\u55DE\u{21075}\u629D\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569\u{22B43}\u9C72\u{22EB3}\u519A\u34DF\u{20DA7}\u51A7\u544D\u551E\u5513\u7666\u8E2D\u{2688A}\u75B1\u80B6\u8804\u8786\u88C7\u81B6\u841C\u{210C1}\u44EC\u7304\u{24706}\u5B90\u830B\u{26893}\u567B\u{226F4}\u{27D2F}\u{241A3}\u{27D73}\u{26ED0}\u{272B6}\u9170\u{211D9}\u9208\u{23CFC}\u{2A6A9}\u{20EAC}\u{20EF9}\u7266\u{21CA2}\u474E\u{24FC2}\u{27FF9}\u{20FEB}\u40FA"],["9ea1","\u9C5D\u651F\u{22DA0}\u48F3\u{247E0}\u{29D7C}\u{20FEC}\u{20E0A}\u6062\u{275A3}\u{20FED}"],["9ead","\u{26048}\u{21187}\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\u{24618}\u589A\u{24B6E}\u822D\u544B\u57AA\u{25A95}\u{20979}"],["9ec5","\u3A52\u{22465}\u7374\u{29EAC}\u4D09\u9BED\u{23CFE}\u{29F30}\u4C5B\u{24FA9}\u{2959E}\u{29FDE}\u845C\u{23DB6}\u{272B2}\u{267B3}\u{23720}\u632E\u7D25\u{23EF7}\u{23E2C}\u3A2A\u9008\u52CC\u3E74\u367A\u45E9\u{2048E}\u7640\u5AF0\u{20EB6}\u787A\u{27F2E}\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\u{2A434}\u9E85\u4CE1\u75F9\u37FB\u6119\u{230DA}\u{243F2}"],["9ef5","\u565D\u{212A9}\u57A7\u{24963}\u{29E06}\u5234\u{270AE}\u35AD\u6C4A\u9D7C"],["9f40","\u7C56\u9B39\u57DE\u{2176C}\u5C53\u64D3\u{294D0}\u{26335}\u{27164}\u86AD\u{20D28}\u{26D22}\u{24AE2}\u{20D71}"],["9f4f","\u51FE\u{21F0F}\u5D8E\u9703\u{21DD1}\u9E81\u904C\u7B1F\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E\u9B2E\u7C42\u7C86\u9C15\u7BFC\u9B09\u9F17\u9C1B\u{2493E}\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"],["9fa1","\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980\u50A6\u7546\u{2176D}\u99DA\u5273"],["9fae","\u9159\u9681\u915C"],["9fb2","\u9151\u{28E97}\u637F\u{26D23}\u6ACA\u5611\u918E\u757A\u6285\u{203FC}\u734F\u7C70\u{25C21}\u{23CFD}"],["9fc1","\u{24919}\u76D6\u9B9D\u4E2A\u{20CD4}\u83BE\u8842"],["9fc9","\u5C4A\u69C0\u50ED\u577A\u521F\u5DF5\u4ECE\u6C31\u{201F2}\u4F39\u549C\u54DA\u529A\u8D82\u35FE\u5F0C\u35F3"],["9fdb","\u6B52\u917C\u9FA5\u9B97\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14"],["9fe7","\u6BFA\u8818\u7F78"],["9feb","\u5620\u{2A64A}\u8E77\u9F53"],["9ff0","\u8DD4\u8E4F\u9E1C\u8E01\u6282\u{2837D}\u8E28\u8E75\u7AD3\u{24A77}\u7A3E\u78D8\u6CEA\u8A67\u7607"],["a040","\u{28A5A}\u9F26\u6CCE\u87D6\u75C3\u{2A2B2}\u7853\u{2F840}\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\u{24ABB}\u862F\u5FBA\u88A0\u44B7"],["a055","\u{2183B}\u{26E05}"],["a058","\u8A7E\u{2251B}"],["a05b","\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F\u87F5"],["a063","\u880F\u8CF7\u732C\u9721\u9BB0\u35D6\u72B2\u4C07\u7C51\u994A\u{26159}\u6159\u4C04\u9E96\u617D"],["a073","\u575F\u616F\u62A6\u6239\u62CE\u3A5C\u61E2\u53AA\u{233F5}\u6364\u6802\u35D2"],["a0a1","\u5D57\u{28BC2}\u8FDA\u{28E39}"],["a0a6","\u50D9\u{21D46}\u7906\u5332\u9638\u{20F3B}\u4065"],["a0ae","\u77FE"],["a0b0","\u7CC2\u{25F1A}\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2\u8994\u821A\u670C\u8062\u{27486}\u805B\u74F0\u8103\u7724\u8989\u{267CC}\u7553\u{26ED1}\u87A9\u87CE\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635\u69B2\u8DA6"],["a0d4","\u89A9\u7468\u6DB9\u87C1\u{24011}\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\u7162\u6077"],["a0e2","\u7F71\u{28B2D}\u7250\u60E9\u4B7E\u5220\u3C18\u{23CC7}\u{25ED7}\u{27656}\u{25531}\u{21944}\u{212FE}\u{29903}\u{26DDC}\u{270AD}\u5CC1\u{261AD}\u{28A0F}\u{23677}\u{200EE}\u{26846}\u{24F0E}\u4562\u5B1F\u{2634C}\u9F50\u9EA6\u{2626B}"],["a3c0","\u2400",31,"\u2421"],["c6a1","\u2460",9,"\u2474",9,"\u2170",9,"\u4E36\u4E3F\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\u5EF4\u5F50\u5F61\u6534\u65E0\u7592\u7676\u8FB5\u96B6\xA8\u02C6\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041",23],["c740","\u3059",58,"\u30A1\u30A2\u30A3\u30A4"],["c7a1","\u30A5",81,"\u0410",5,"\u0401\u0416",4],["c840","\u041B",26,"\u0451\u0436",25,"\u21E7\u21B8\u21B9\u31CF\u{200CC}\u4E5A\u{2008A}\u5202\u4491"],["c8a1","\u9FB0\u5188\u9FB1\u{27607}"],["c8cd","\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3"],["c8f5","\u0283\u0250\u025B\u0254\u0275\u0153\xF8\u014B\u028A\u026A"],["f9fe","\uFFED"],["fa40","\u{20547}\u92DB\u{205DF}\u{23FC5}\u854C\u42B5\u73EF\u51B5\u3649\u{24942}\u{289E4}\u9344\u{219DB}\u82EE\u{23CC8}\u783C\u6744\u62DF\u{24933}\u{289AA}\u{202A0}\u{26BB3}\u{21305}\u4FAB\u{224ED}\u5008\u{26D29}\u{27A84}\u{23600}\u{24AB1}\u{22513}\u5029\u{2037E}\u5FA4\u{20380}\u{20347}\u6EDB\u{2041F}\u507D\u5101\u347A\u510E\u986C\u3743\u8416\u{249A4}\u{20487}\u5160\u{233B4}\u516A\u{20BFF}\u{220FC}\u{202E5}\u{22530}\u{2058E}\u{23233}\u{21983}\u5B82\u877D\u{205B3}\u{23C99}\u51B2\u51B8"],["faa1","\u9D34\u51C9\u51CF\u51D1\u3CDC\u51D3\u{24AA6}\u51B3\u51E2\u5342\u51ED\u83CD\u693E\u{2372D}\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\u{26B13}\u5305\u{28ADE}\u5549\u6ED9\u{23F80}\u{20954}\u{23FEC}\u5333\u5344\u{20BE2}\u6CCB\u{21726}\u681B\u73D5\u604A\u3EAA\u38CC\u{216E8}\u71DD\u44A2\u536D\u5374\u{286AB}\u537E\u537F\u{21596}\u{21613}\u77E6\u5393\u{28A9B}\u53A0\u53AB\u53AE\u73A7\u{25772}\u3F59\u739C\u53C1\u53C5\u6C49\u4E49\u57FE\u53D9\u3AAB\u{20B8F}\u53E0\u{23FEB}\u{22DA3}\u53F6\u{20C77}\u5413\u7079\u552B\u6657\u6D5B\u546D\u{26B53}\u{20D74}\u555D\u548F\u54A4\u47A6\u{2170D}\u{20EDD}\u3DB4\u{20D4D}"],["fb40","\u{289BC}\u{22698}\u5547\u4CED\u542F\u7417\u5586\u55A9\u5605\u{218D7}\u{2403A}\u4552\u{24435}\u66B3\u{210B4}\u5637\u66CD\u{2328A}\u66A4\u66AD\u564D\u564F\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\u{28B66}\u3623\u{2124F}\u5746\u{241A5}\u6C6E\u708B\u5742\u36B1\u{26C7E}\u57E6\u{21416}\u5803\u{21454}\u{24363}\u5826\u{24BF5}\u585C\u58AA\u3561\u58E0\u58DC\u{2123C}\u58FB\u5BFF\u5743\u{2A150}\u{24278}\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"],["fba1","\u{2163E}\u5A24\u5553\u{21692}\u8505\u59C9\u{20D4E}\u{26C81}\u{26D2A}\u{217DC}\u59D9\u{217FB}\u{217B2}\u{26DA6}\u6D71\u{21828}\u{216D5}\u59F9\u{26E45}\u5AAB\u5A63\u36E6\u{249A9}\u5A77\u3708\u5A96\u7465\u5AD3\u{26FA1}\u{22554}\u3D85\u{21911}\u3732\u{216B8}\u5E83\u52D0\u5B76\u6588\u5B7C\u{27A0E}\u4004\u485D\u{20204}\u5BD5\u6160\u{21A34}\u{259CC}\u{205A5}\u5BF3\u5B9D\u4D10\u5C05\u{21B44}\u5C13\u73CE\u5C14\u{21CA5}\u{26B28}\u5C49\u48DD\u5C85\u5CE9\u5CEF\u5D8B\u{21DF9}\u{21E37}\u5D10\u5D18\u5D46\u{21EA4}\u5CBA\u5DD7\u82FC\u382D\u{24901}\u{22049}\u{22173}\u8287\u3836\u3BC2\u5E2E\u6A8A\u5E75\u5E7A\u{244BC}\u{20CD3}\u53A6\u4EB7\u5ED0\u53A8\u{21771}\u5E09\u5EF4\u{28482}"],["fc40","\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\u{201C1}\u{2F894}\u3ADE\u48AE\u{2133A}\u5F3A\u{26888}\u{223D0}\u5F58\u{22471}\u5F63\u97BD\u{26E6E}\u5F72\u9340\u{28A36}\u5FA7\u5DB6\u3D5F\u{25250}\u{21F6A}\u{270F8}\u{22668}\u91D6\u{2029E}\u{28A29}\u6031\u6685\u{21877}\u3963\u3DC7\u3639\u5790\u{227B4}\u7971\u3E40\u609E\u60A4\u60B3\u{24982}\u{2498F}\u{27A53}\u74A4\u50E1\u5AA0\u6164\u8424\u6142\u{2F8A6}\u{26ED2}\u6181\u51F4\u{20656}\u6187\u5BAA\u{23FB7}"],["fca1","\u{2285F}\u61D3\u{28B9D}\u{2995D}\u61D0\u3932\u{22980}\u{228C1}\u6023\u615C\u651E\u638B\u{20118}\u62C5\u{21770}\u62D5\u{22E0D}\u636C\u{249DF}\u3A17\u6438\u63F8\u{2138E}\u{217FC}\u6490\u6F8A\u{22E36}\u9814\u{2408C}\u{2571D}\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\u{24A28}\u{24A23}\u6585\u656D\u655F\u{2307E}\u65B5\u{24940}\u4B37\u65D1\u40D8\u{21829}\u65E0\u65E3\u5FDF\u{23400}\u6618\u{231F7}\u{231F8}\u6644\u{231A4}\u{231A5}\u664B\u{20E75}\u6667\u{251E6}\u6673\u6674\u{21E3D}\u{23231}\u{285F4}\u{231C8}\u{25313}\u77C5\u{228F7}\u99A4\u6702\u{2439C}\u{24A21}\u3B2B\u69FA\u{237C2}\u675E\u6767\u6762\u{241CD}\u{290ED}\u67D7\u44E9\u6822\u6E50\u923C\u6801\u{233E6}\u{26DA0}\u685D"],["fd40","\u{2346F}\u69E1\u6A0B\u{28ADF}\u6973\u68C3\u{235CD}\u6901\u6900\u3D32\u3A01\u{2363C}\u3B80\u67AC\u6961\u{28A4A}\u42FC\u6936\u6998\u3BA1\u{203C9}\u8363\u5090\u69F9\u{23659}\u{2212A}\u6A45\u{23703}\u6A9D\u3BF3\u67B1\u6AC8\u{2919C}\u3C0D\u6B1D\u{20923}\u60DE\u6B35\u6B74\u{227CD}\u6EB5\u{23ADB}\u{203B5}\u{21958}\u3740\u5421\u{23B5A}\u6BE1\u{23EFC}\u6BDC\u6C37\u{2248B}\u{248F1}\u{26B51}\u6C5A\u8226\u6C79\u{23DBC}\u44C5\u{23DBD}\u{241A4}\u{2490C}\u{24900}"],["fda1","\u{23CC9}\u36E5\u3CEB\u{20D32}\u9B83\u{231F9}\u{22491}\u7F8F\u6837\u{26D25}\u{26DA1}\u{26DEB}\u6D96\u6D5C\u6E7C\u6F04\u{2497F}\u{24085}\u{26E72}\u8533\u{26F74}\u51C7\u6C9C\u6E1D\u842E\u{28B21}\u6E2F\u{23E2F}\u7453\u{23F82}\u79CC\u6E4F\u5A91\u{2304B}\u6FF8\u370D\u6F9D\u{23E30}\u6EFA\u{21497}\u{2403D}\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\u{29170}\u3D3B\u6F9F\u{24144}\u6FD3\u{24091}\u{24155}\u{24039}\u{23FF0}\u{23FB4}\u{2413F}\u51DF\u{24156}\u{24157}\u{24140}\u{261DD}\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104\u3DE8\u71B4\u7196\u{24277}\u712B\u7145\u5A88\u714A\u716E\u5C9C\u{24365}\u714F\u9362\u{242C1}\u712C\u{2445A}\u{24A27}\u{24A22}\u71BA\u{28BE8}\u70BD\u720E"],["fe40","\u9442\u7215\u5911\u9443\u7224\u9341\u{25605}\u722E\u7240\u{24974}\u68BD\u7255\u7257\u3E55\u{23044}\u680D\u6F3D\u7282\u732A\u732B\u{24823}\u{2882B}\u48ED\u{28804}\u7328\u732E\u73CF\u73AA\u{20C3A}\u{26A2E}\u73C9\u7449\u{241E2}\u{216E7}\u{24A24}\u6623\u36C5\u{249B7}\u{2498D}\u{249FB}\u73F7\u7415\u6903\u{24A26}\u7439\u{205C3}\u3ED7\u745C\u{228AD}\u7460\u{28EB2}\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474\u93F1\u6A2C\u7482\u4953\u{24A8C}"],["fea1","\u{2415F}\u{24A79}\u{28B8F}\u5B46\u{28C03}\u{2189E}\u74C8\u{21988}\u750E\u74E9\u751E\u{28ED9}\u{21A4B}\u5BD7\u{28EAC}\u9385\u754D\u754A\u7567\u756E\u{24F82}\u3F04\u{24D13}\u758E\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676\u{263F5}\u7690\u81EF\u37F8\u{26911}\u{2690E}\u76A1\u76A5\u76B7\u76CC\u{26F9F}\u8462\u{2509D}\u{2517D}\u{21E1C}\u771E\u7726\u7740\u64AF\u{25220}\u7758\u{232AC}\u77AF\u{28964}\u{28968}\u{216C1}\u77F4\u7809\u{21376}\u{24A12}\u68CA\u78AF\u78C7\u78D3\u96A5\u792E\u{255E0}\u78D7\u7934\u78B1\u{2760C}\u8FB8\u8884\u{28B2B}\u{26083}\u{2261C}\u7986\u8900\u6902\u7980\u{25857}\u799D\u{27B39}\u793C\u79A9\u6E2A\u{27126}\u3EA8\u79C6\u{2910D}\u79D4"]]});var Qv=V((AG,Yv)=>{"use strict";Yv.exports={shiftjis:{type:"_dbcs",table:function(){return Zv()},encodeAdd:{"\xA5":92,"\u203E":126},encodeSkipVals:[{from:60736,to:63808}]},csshiftjis:"shiftjis",mskanji:"shiftjis",sjis:"shiftjis",windows31j:"shiftjis",ms31j:"shiftjis",xsjis:"shiftjis",windows932:"shiftjis",ms932:"shiftjis",932:"shiftjis",cp932:"shiftjis",eucjp:{type:"_dbcs",table:function(){return Wv()},encodeAdd:{"\xA5":92,"\u203E":126}},gb2312:"cp936",gb231280:"cp936",gb23121980:"cp936",csgb2312:"cp936",csiso58gb231280:"cp936",euccn:"cp936",windows936:"cp936",ms936:"cp936",936:"cp936",cp936:{type:"_dbcs",table:function(){return Rc()}},gbk:{type:"_dbcs",table:function(){return Rc().concat(rp())}},xgbk:"gbk",isoir58:"gbk",gb18030:{type:"_dbcs",table:function(){return Rc().concat(rp())},gb18030:function(){return Kv()},encodeSkipVals:[128],encodeAdd:{"\u20AC":41699}},chinese:"gb18030",windows949:"cp949",ms949:"cp949",949:"cp949",cp949:{type:"_dbcs",table:function(){return Xv()}},cseuckr:"cp949",csksc56011987:"cp949",euckr:"cp949",isoir149:"cp949",korean:"cp949",ksc56011987:"cp949",ksc56011989:"cp949",ksc5601:"cp949",windows950:"cp950",ms950:"cp950",950:"cp950",cp950:{type:"_dbcs",table:function(){return np()}},big5:"big5hkscs",big5hkscs:{type:"_dbcs",table:function(){return np().concat(Jv())},encodeSkipVals:[41676]},cnbig5:"big5hkscs",csbig5:"big5hkscs",xxbig5:"big5hkscs"}});var rg=V((tg,ys)=>{"use strict";var eg=[Av(),Mv(),Dv(),qv(),Uv(),Hv(),Gv(),Qv()];for(Pc=0;Pc{"use strict";var ng=require("buffer").Buffer,Oc=require("stream").Transform;ag.exports=function(t){t.encodeStream=function(r,a){return new pa(t.getEncoder(r,a),a)},t.decodeStream=function(r,a){return new In(t.getDecoder(r,a),a)},t.supportsStreams=!0,t.IconvLiteEncoderStream=pa,t.IconvLiteDecoderStream=In,t._collect=In.prototype.collect};function pa(t,e){this.conv=t,e=e||{},e.decodeStrings=!1,Oc.call(this,e)}pa.prototype=Object.create(Oc.prototype,{constructor:{value:pa}});pa.prototype._transform=function(t,e,r){if(typeof t!="string")return r(new Error("Iconv encoding stream needs strings as its input."));try{var a=this.conv.write(t);a&&a.length&&this.push(a),r()}catch(n){r(n)}};pa.prototype._flush=function(t){try{var e=this.conv.end();e&&e.length&&this.push(e),t()}catch(r){t(r)}};pa.prototype.collect=function(t){var e=[];return this.on("error",t),this.on("data",function(r){e.push(r)}),this.on("end",function(){t(null,ng.concat(e))}),this};function In(t,e){this.conv=t,e=e||{},e.encoding=this.encoding="utf8",Oc.call(this,e)}In.prototype=Object.create(Oc.prototype,{constructor:{value:In}});In.prototype._transform=function(t,e,r){if(!ng.isBuffer(t))return r(new Error("Iconv decoding stream needs buffers as its input."));try{var a=this.conv.write(t);a&&a.length&&this.push(a,this.encoding),r()}catch(n){r(n)}};In.prototype._flush=function(t){try{var e=this.conv.end();e&&e.length&&this.push(e,this.encoding),t()}catch(r){t(r)}};In.prototype.collect=function(t){var e="";return this.on("error",t),this.on("data",function(r){e+=r}),this.on("end",function(){t(null,e)}),this}});var og=V((MG,ig)=>{"use strict";var kt=require("buffer").Buffer;ig.exports=function(t){var e=void 0;t.supportsNodeEncodingsExtension=!(kt.from||new kt(0)instanceof Uint8Array),t.extendNodeEncodings=function(){if(!e){if(e={},!t.supportsNodeEncodingsExtension){console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node"),console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility");return}var a={hex:!0,utf8:!0,"utf-8":!0,ascii:!0,binary:!0,base64:!0,ucs2:!0,"ucs-2":!0,utf16le:!0,"utf-16le":!0};kt.isNativeEncoding=function(i){return i&&a[i.toLowerCase()]};var n=require("buffer").SlowBuffer;if(e.SlowBufferToString=n.prototype.toString,n.prototype.toString=function(i,o,c){return i=String(i||"utf8").toLowerCase(),kt.isNativeEncoding(i)?e.SlowBufferToString.call(this,i,o,c):(typeof o>"u"&&(o=0),typeof c>"u"&&(c=this.length),t.decode(this.slice(o,c),i))},e.SlowBufferWrite=n.prototype.write,n.prototype.write=function(i,o,c,u){if(isFinite(o))isFinite(c)||(u=c,c=void 0);else{var l=u;u=o,o=c,c=l}o=+o||0;var d=this.length-o;if(c?(c=+c,c>d&&(c=d)):c=d,u=String(u||"utf8").toLowerCase(),kt.isNativeEncoding(u))return e.SlowBufferWrite.call(this,i,o,c,u);if(i.length>0&&(c<0||o<0))throw new RangeError("attempt to write beyond buffer bounds");var p=t.encode(i,u);return p.length"u"&&(o=0),typeof c>"u"&&(c=this.length),t.decode(this.slice(o,c),i))},e.BufferWrite=kt.prototype.write,kt.prototype.write=function(i,o,c,u){var l=o,d=c,p=u;if(isFinite(o))isFinite(c)||(u=c,c=void 0);else{var f=u;u=o,o=c,c=f}if(u=String(u||"utf8").toLowerCase(),kt.isNativeEncoding(u))return e.BufferWrite.call(this,i,l,d,p);o=+o||0;var v=this.length-o;if(c?(c=+c,c>v&&(c=v)):c=v,i.length>0&&(c<0||o<0))throw new RangeError("attempt to write beyond buffer bounds");var _=t.encode(i,u);return _.length{"use strict";var ug=la().Buffer,lg=Ov(),rt=dg.exports;rt.encodings=null;rt.defaultCharUnicode="\uFFFD";rt.defaultCharSingleByte="?";rt.encode=function(e,r,a){e=""+(e||"");var n=rt.getEncoder(r,a),s=n.write(e),i=n.end();return i&&i.length>0?ug.concat([s,i]):s};rt.decode=function(e,r,a){typeof e=="string"&&(rt.skipDecodeWarning||(console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"),rt.skipDecodeWarning=!0),e=ug.from(""+(e||""),"binary"));var n=rt.getDecoder(r,a),s=n.write(e),i=n.end();return i?s+i:s};rt.encodingExists=function(e){try{return rt.getCodec(e),!0}catch{return!1}};rt.toEncoding=rt.encode;rt.fromEncoding=rt.decode;rt._codecDataCache={};rt.getCodec=function(e){rt.encodings||(rt.encodings=rg());for(var r=rt._canonicalizeEncoding(e),a={};;){var n=rt._codecDataCache[r];if(n)return n;var s=rt.encodings[r];switch(typeof s){case"string":r=s;break;case"object":for(var i in s)a[i]=s[i];a.encodingName||(a.encodingName=r),r=s.type;break;case"function":return a.encodingName||(a.encodingName=r),n=new s(a,rt),rt._codecDataCache[a.encodingName]=n,n;default:throw new Error("Encoding not recognized: '"+e+"' (searched as: '"+r+"')")}}};rt._canonicalizeEncoding=function(t){return(""+t).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")};rt.getEncoder=function(e,r){var a=rt.getCodec(e),n=new a.encoder(r,a);return a.bomAware&&r&&r.addBOM&&(n=new lg.PrependBOM(n,r)),n};rt.getDecoder=function(e,r){var a=rt.getCodec(e),n=new a.decoder(r,a);return a.bomAware&&!(r&&r.stripBOM===!1)&&(n=new lg.StripBOM(n,r)),n};var cg=typeof process<"u"&&process.versions&&process.versions.node;cg&&(ap=cg.split(".").map(Number),(ap[0]>0||ap[1]>=10)&&sg()(rt),og()(rt));var ap});var Cc=V((DG,pg)=>{"use strict";pg.exports=nO;function rO(t){for(var e=t.listeners("data"),r=0;r{"use strict";var fg=dO(),aO=ds(),fa=ca(),sO=sp(),iO=Cc();hg.exports=uO;var oO=/^Encoding not recognized: /;function cO(t){if(!t)return null;try{return sO.getDecoder(t)}catch(e){throw oO.test(e.message)?fa(415,"specified encoding unsupported",{encoding:t,type:"encoding.unsupported"}):e}}function uO(t,e,r){var a=r,n=e||{};if(t===void 0)throw new TypeError("argument stream is required");if(typeof t!="object"||t===null||typeof t.on!="function")throw new TypeError("argument stream must be a stream");if((e===!0||typeof e=="string")&&(n={encoding:e}),typeof e=="function"&&(a=e,n={}),a!==void 0&&typeof a!="function")throw new TypeError("argument callback must be a function");if(!a&&!global.Promise)throw new TypeError("argument callback is required");var s=n.encoding!==!0?n.encoding:"utf-8",i=aO.parse(n.limit),o=n.length!=null&&!isNaN(n.length)?parseInt(n.length,10):null;return a?mg(t,s,o,i,pO(a)):new Promise(function(u,l){mg(t,s,o,i,function(p,f){if(p)return l(p);u(f)})})}function lO(t){iO(t),typeof t.pause=="function"&&t.pause()}function mg(t,e,r,a,n){var s=!1,i=!0;if(a!==null&&r!==null&&r>a)return d(fa(413,"request entity too large",{expected:r,length:r,limit:a,type:"entity.too.large"}));var o=t._readableState;if(t._decoder||o&&(o.encoding||o.decoder))return d(fa(500,"stream encoding should not be set",{type:"stream.encoding.set"}));if(typeof t.readable<"u"&&!t.readable)return d(fa(500,"stream is not readable",{type:"stream.not.readable"}));var c=0,u;try{u=cO(e)}catch(m){return d(m)}var l=u?"":[];t.on("aborted",p),t.on("close",_),t.on("data",f),t.on("end",v),t.on("error",v),i=!1;function d(){for(var m=new Array(arguments.length),h=0;ha?d(fa(413,"request entity too large",{limit:a,received:c,type:"entity.too.large"})):u?l+=u.write(m):l.push(m))}function v(m){if(!s){if(m)return d(m);if(r!==null&&c!==r)d(fa(400,"request size did not match content length",{expected:r,length:r,received:c,type:"request.size.invalid"}));else{var h=u?l+(u.end()||""):Buffer.concat(l);d(null,h)}}}function _(){l=null,t.removeListener("aborted",p),t.removeListener("data",f),t.removeListener("end",v),t.removeListener("error",v),t.removeListener("close",_)}}function dO(){try{return require("async_hooks")}catch{return{}}}function pO(t){var e;return fg.AsyncResource&&(e=new fg.AsyncResource(t.name||"bound-anonymous-fn")),!e||!e.runInAsyncScope?t:e.runInAsyncScope.bind(e,t,null)}});var yg=V((qG,gg)=>{"use strict";gg.exports=fO;function fO(t,e){if(!Array.isArray(t))throw new TypeError("arg must be an array of [ee, events...] arrays");for(var r=[],a=0;a{"use strict";ip.exports=vO;ip.exports.isFinished=Sg;var _g=SO(),bg=yg(),hO=typeof setImmediate=="function"?setImmediate:function(t){process.nextTick(t.bind.apply(t,arguments))};function vO(t,e){return Sg(t)!==!1?(hO(e,null,t),t):(yO(t,xO(e)),t)}function Sg(t){var e=t.socket;if(typeof t.finished=="boolean")return!!(t.finished||e&&!e.writable);if(typeof t.complete=="boolean")return!!(t.upgrade||!e||!e.readable||t.complete&&!t.readable)}function gO(t,e){var r,a,n=!1;function s(o){r.cancel(),a.cancel(),n=!0,e(o)}r=a=bg([[t,"end","finish"]],s);function i(o){t.removeListener("socket",i),!n&&r===a&&(a=bg([[o,"error","close"]],s))}if(t.socket){i(t.socket);return}t.on("socket",i),t.socket===void 0&&bO(t,i)}function yO(t,e){var r=t.__onFinished;(!r||!r.queue)&&(r=t.__onFinished=_O(t),gO(t,r)),r.queue.push(e)}function _O(t){function e(r){if(t.__onFinished===e&&(t.__onFinished=null),!!e.queue){var a=e.queue;e.queue=null;for(var n=0;n{"use strict";var An=ca(),wO=Od(),EO=vg(),xg=sp(),wg=Ki(),TO=Cc(),Eg=require("zlib");Tg.exports=kO;function kO(t,e,r,a,n,s){var i,o=s,c;t._body=!0;var u=o.encoding!==null?o.encoding:null,l=o.verify;try{c=RO(t,n,o.inflate),i=c.length,c.length=void 0}catch(d){return r(d)}if(o.length=i,o.encoding=l?null:u,o.encoding===null&&u!==null&&!xg.encodingExists(u))return r(An(415,'unsupported charset "'+u.toUpperCase()+'"',{charset:u.toLowerCase(),type:"charset.unsupported"}));n("read body"),EO(c,o,function(d,p){if(d){var f;d.type==="encoding.unsupported"?f=An(415,'unsupported charset "'+u.toUpperCase()+'"',{charset:u.toLowerCase(),type:"charset.unsupported"}):f=An(400,d),c!==t&&(TO(t),wO(c,!0)),PO(t,function(){r(An(400,f))});return}if(l)try{n("verify body"),l(t,e,p,u)}catch(_){r(An(403,_,{body:p,type:_.type||"entity.verify.failed"}));return}var v=p;try{n("parse body"),v=typeof p!="string"&&u!==null?xg.decode(p,u):p,t.body=a(v)}catch(_){r(An(400,_,{body:v,type:_.type||"entity.parse.failed"}));return}r()})}function RO(t,e,r){var a=(t.headers["content-encoding"]||"identity").toLowerCase(),n=t.headers["content-length"],s;if(e('content-encoding "%s"',a),r===!1&&a!=="identity")throw An(415,"content encoding unsupported",{encoding:a,type:"encoding.unsupported"});switch(a){case"deflate":s=Eg.createInflate(),e("inflate body"),t.pipe(s);break;case"gzip":s=Eg.createGunzip(),e("gunzip body"),t.pipe(s);break;case"identity":s=t,s.length=n;break;default:throw An(415,'unsupported content encoding "'+a+'"',{encoding:a,type:"encoding.unsupported"})}return s}function PO(t,e){wg.isFinished(t)?e(null):(wg(t,e),t.resume())}});var $g=V(op=>{var kg=/; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g,$O=/^[\u0020-\u007e\u0080-\u00ff]+$/,Pg=/^[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+$/,OO=/\\([\u0000-\u007f])/g,CO=/([\\"])/g,IO=/^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/,Rg=/^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/,AO=/^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;op.format=NO;op.parse=MO;function NO(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.subtype,a=t.suffix,n=t.type;if(!n||!Rg.test(n))throw new TypeError("invalid type");if(!r||!IO.test(r))throw new TypeError("invalid subtype");var s=n+"/"+r;if(a){if(!Rg.test(a))throw new TypeError("invalid suffix");s+="+"+a}if(e&&typeof e=="object")for(var i,o=Object.keys(e).sort(),c=0;c0&&!$O.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(CO,"\\$1")+'"'}function LO(t){var e=AO.exec(t.toLowerCase());if(!e)throw new TypeError("invalid media type");var r=e[1],a=e[2],n,s=a.lastIndexOf("+");s!==-1&&(n=a.substr(s+1),a=a.substr(0,s));var i={type:r,subtype:a,suffix:n};return i}});var Og=V((HG,qO)=>{qO.exports={"application/1d-interleaved-parityfec":{source:"iana"},"application/3gpdash-qoe-report+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/3gpp-ims+xml":{source:"iana",compressible:!0},"application/3gpphal+json":{source:"iana",compressible:!0},"application/3gpphalforms+json":{source:"iana",compressible:!0},"application/a2l":{source:"iana"},"application/ace+cbor":{source:"iana"},"application/activemessage":{source:"iana"},"application/activity+json":{source:"iana",compressible:!0},"application/alto-costmap+json":{source:"iana",compressible:!0},"application/alto-costmapfilter+json":{source:"iana",compressible:!0},"application/alto-directory+json":{source:"iana",compressible:!0},"application/alto-endpointcost+json":{source:"iana",compressible:!0},"application/alto-endpointcostparams+json":{source:"iana",compressible:!0},"application/alto-endpointprop+json":{source:"iana",compressible:!0},"application/alto-endpointpropparams+json":{source:"iana",compressible:!0},"application/alto-error+json":{source:"iana",compressible:!0},"application/alto-networkmap+json":{source:"iana",compressible:!0},"application/alto-networkmapfilter+json":{source:"iana",compressible:!0},"application/alto-updatestreamcontrol+json":{source:"iana",compressible:!0},"application/alto-updatestreamparams+json":{source:"iana",compressible:!0},"application/aml":{source:"iana"},"application/andrew-inset":{source:"iana",extensions:["ez"]},"application/applefile":{source:"iana"},"application/applixware":{source:"apache",extensions:["aw"]},"application/at+jwt":{source:"iana"},"application/atf":{source:"iana"},"application/atfx":{source:"iana"},"application/atom+xml":{source:"iana",compressible:!0,extensions:["atom"]},"application/atomcat+xml":{source:"iana",compressible:!0,extensions:["atomcat"]},"application/atomdeleted+xml":{source:"iana",compressible:!0,extensions:["atomdeleted"]},"application/atomicmail":{source:"iana"},"application/atomsvc+xml":{source:"iana",compressible:!0,extensions:["atomsvc"]},"application/atsc-dwd+xml":{source:"iana",compressible:!0,extensions:["dwd"]},"application/atsc-dynamic-event-message":{source:"iana"},"application/atsc-held+xml":{source:"iana",compressible:!0,extensions:["held"]},"application/atsc-rdt+json":{source:"iana",compressible:!0},"application/atsc-rsat+xml":{source:"iana",compressible:!0,extensions:["rsat"]},"application/atxml":{source:"iana"},"application/auth-policy+xml":{source:"iana",compressible:!0},"application/bacnet-xdd+zip":{source:"iana",compressible:!1},"application/batch-smtp":{source:"iana"},"application/bdoc":{compressible:!1,extensions:["bdoc"]},"application/beep+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/calendar+json":{source:"iana",compressible:!0},"application/calendar+xml":{source:"iana",compressible:!0,extensions:["xcs"]},"application/call-completion":{source:"iana"},"application/cals-1840":{source:"iana"},"application/captive+json":{source:"iana",compressible:!0},"application/cbor":{source:"iana"},"application/cbor-seq":{source:"iana"},"application/cccex":{source:"iana"},"application/ccmp+xml":{source:"iana",compressible:!0},"application/ccxml+xml":{source:"iana",compressible:!0,extensions:["ccxml"]},"application/cdfx+xml":{source:"iana",compressible:!0,extensions:["cdfx"]},"application/cdmi-capability":{source:"iana",extensions:["cdmia"]},"application/cdmi-container":{source:"iana",extensions:["cdmic"]},"application/cdmi-domain":{source:"iana",extensions:["cdmid"]},"application/cdmi-object":{source:"iana",extensions:["cdmio"]},"application/cdmi-queue":{source:"iana",extensions:["cdmiq"]},"application/cdni":{source:"iana"},"application/cea":{source:"iana"},"application/cea-2018+xml":{source:"iana",compressible:!0},"application/cellml+xml":{source:"iana",compressible:!0},"application/cfw":{source:"iana"},"application/city+json":{source:"iana",compressible:!0},"application/clr":{source:"iana"},"application/clue+xml":{source:"iana",compressible:!0},"application/clue_info+xml":{source:"iana",compressible:!0},"application/cms":{source:"iana"},"application/cnrp+xml":{source:"iana",compressible:!0},"application/coap-group+json":{source:"iana",compressible:!0},"application/coap-payload":{source:"iana"},"application/commonground":{source:"iana"},"application/conference-info+xml":{source:"iana",compressible:!0},"application/cose":{source:"iana"},"application/cose-key":{source:"iana"},"application/cose-key-set":{source:"iana"},"application/cpl+xml":{source:"iana",compressible:!0,extensions:["cpl"]},"application/csrattrs":{source:"iana"},"application/csta+xml":{source:"iana",compressible:!0},"application/cstadata+xml":{source:"iana",compressible:!0},"application/csvm+json":{source:"iana",compressible:!0},"application/cu-seeme":{source:"apache",extensions:["cu"]},"application/cwt":{source:"iana"},"application/cybercash":{source:"iana"},"application/dart":{compressible:!0},"application/dash+xml":{source:"iana",compressible:!0,extensions:["mpd"]},"application/dash-patch+xml":{source:"iana",compressible:!0,extensions:["mpp"]},"application/dashdelta":{source:"iana"},"application/davmount+xml":{source:"iana",compressible:!0,extensions:["davmount"]},"application/dca-rft":{source:"iana"},"application/dcd":{source:"iana"},"application/dec-dx":{source:"iana"},"application/dialog-info+xml":{source:"iana",compressible:!0},"application/dicom":{source:"iana"},"application/dicom+json":{source:"iana",compressible:!0},"application/dicom+xml":{source:"iana",compressible:!0},"application/dii":{source:"iana"},"application/dit":{source:"iana"},"application/dns":{source:"iana"},"application/dns+json":{source:"iana",compressible:!0},"application/dns-message":{source:"iana"},"application/docbook+xml":{source:"apache",compressible:!0,extensions:["dbk"]},"application/dots+cbor":{source:"iana"},"application/dskpp+xml":{source:"iana",compressible:!0},"application/dssc+der":{source:"iana",extensions:["dssc"]},"application/dssc+xml":{source:"iana",compressible:!0,extensions:["xdssc"]},"application/dvcs":{source:"iana"},"application/ecmascript":{source:"iana",compressible:!0,extensions:["es","ecma"]},"application/edi-consent":{source:"iana"},"application/edi-x12":{source:"iana",compressible:!1},"application/edifact":{source:"iana",compressible:!1},"application/efi":{source:"iana"},"application/elm+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/elm+xml":{source:"iana",compressible:!0},"application/emergencycalldata.cap+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/emergencycalldata.comment+xml":{source:"iana",compressible:!0},"application/emergencycalldata.control+xml":{source:"iana",compressible:!0},"application/emergencycalldata.deviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.ecall.msd":{source:"iana"},"application/emergencycalldata.providerinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.serviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.subscriberinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.veds+xml":{source:"iana",compressible:!0},"application/emma+xml":{source:"iana",compressible:!0,extensions:["emma"]},"application/emotionml+xml":{source:"iana",compressible:!0,extensions:["emotionml"]},"application/encaprtp":{source:"iana"},"application/epp+xml":{source:"iana",compressible:!0},"application/epub+zip":{source:"iana",compressible:!1,extensions:["epub"]},"application/eshop":{source:"iana"},"application/exi":{source:"iana",extensions:["exi"]},"application/expect-ct-report+json":{source:"iana",compressible:!0},"application/express":{source:"iana",extensions:["exp"]},"application/fastinfoset":{source:"iana"},"application/fastsoap":{source:"iana"},"application/fdt+xml":{source:"iana",compressible:!0,extensions:["fdt"]},"application/fhir+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/fhir+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/fido.trusted-apps+json":{compressible:!0},"application/fits":{source:"iana"},"application/flexfec":{source:"iana"},"application/font-sfnt":{source:"iana"},"application/font-tdpfr":{source:"iana",extensions:["pfr"]},"application/font-woff":{source:"iana",compressible:!1},"application/framework-attributes+xml":{source:"iana",compressible:!0},"application/geo+json":{source:"iana",compressible:!0,extensions:["geojson"]},"application/geo+json-seq":{source:"iana"},"application/geopackage+sqlite3":{source:"iana"},"application/geoxacml+xml":{source:"iana",compressible:!0},"application/gltf-buffer":{source:"iana"},"application/gml+xml":{source:"iana",compressible:!0,extensions:["gml"]},"application/gpx+xml":{source:"apache",compressible:!0,extensions:["gpx"]},"application/gxf":{source:"apache",extensions:["gxf"]},"application/gzip":{source:"iana",compressible:!1,extensions:["gz"]},"application/h224":{source:"iana"},"application/held+xml":{source:"iana",compressible:!0},"application/hjson":{extensions:["hjson"]},"application/http":{source:"iana"},"application/hyperstudio":{source:"iana",extensions:["stk"]},"application/ibe-key-request+xml":{source:"iana",compressible:!0},"application/ibe-pkg-reply+xml":{source:"iana",compressible:!0},"application/ibe-pp-data":{source:"iana"},"application/iges":{source:"iana"},"application/im-iscomposing+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/index":{source:"iana"},"application/index.cmd":{source:"iana"},"application/index.obj":{source:"iana"},"application/index.response":{source:"iana"},"application/index.vnd":{source:"iana"},"application/inkml+xml":{source:"iana",compressible:!0,extensions:["ink","inkml"]},"application/iotp":{source:"iana"},"application/ipfix":{source:"iana",extensions:["ipfix"]},"application/ipp":{source:"iana"},"application/isup":{source:"iana"},"application/its+xml":{source:"iana",compressible:!0,extensions:["its"]},"application/java-archive":{source:"apache",compressible:!1,extensions:["jar","war","ear"]},"application/java-serialized-object":{source:"apache",compressible:!1,extensions:["ser"]},"application/java-vm":{source:"apache",compressible:!1,extensions:["class"]},"application/javascript":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["js","mjs"]},"application/jf2feed+json":{source:"iana",compressible:!0},"application/jose":{source:"iana"},"application/jose+json":{source:"iana",compressible:!0},"application/jrd+json":{source:"iana",compressible:!0},"application/jscalendar+json":{source:"iana",compressible:!0},"application/json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["json","map"]},"application/json-patch+json":{source:"iana",compressible:!0},"application/json-seq":{source:"iana"},"application/json5":{extensions:["json5"]},"application/jsonml+json":{source:"apache",compressible:!0,extensions:["jsonml"]},"application/jwk+json":{source:"iana",compressible:!0},"application/jwk-set+json":{source:"iana",compressible:!0},"application/jwt":{source:"iana"},"application/kpml-request+xml":{source:"iana",compressible:!0},"application/kpml-response+xml":{source:"iana",compressible:!0},"application/ld+json":{source:"iana",compressible:!0,extensions:["jsonld"]},"application/lgr+xml":{source:"iana",compressible:!0,extensions:["lgr"]},"application/link-format":{source:"iana"},"application/load-control+xml":{source:"iana",compressible:!0},"application/lost+xml":{source:"iana",compressible:!0,extensions:["lostxml"]},"application/lostsync+xml":{source:"iana",compressible:!0},"application/lpf+zip":{source:"iana",compressible:!1},"application/lxf":{source:"iana"},"application/mac-binhex40":{source:"iana",extensions:["hqx"]},"application/mac-compactpro":{source:"apache",extensions:["cpt"]},"application/macwriteii":{source:"iana"},"application/mads+xml":{source:"iana",compressible:!0,extensions:["mads"]},"application/manifest+json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["webmanifest"]},"application/marc":{source:"iana",extensions:["mrc"]},"application/marcxml+xml":{source:"iana",compressible:!0,extensions:["mrcx"]},"application/mathematica":{source:"iana",extensions:["ma","nb","mb"]},"application/mathml+xml":{source:"iana",compressible:!0,extensions:["mathml"]},"application/mathml-content+xml":{source:"iana",compressible:!0},"application/mathml-presentation+xml":{source:"iana",compressible:!0},"application/mbms-associated-procedure-description+xml":{source:"iana",compressible:!0},"application/mbms-deregister+xml":{source:"iana",compressible:!0},"application/mbms-envelope+xml":{source:"iana",compressible:!0},"application/mbms-msk+xml":{source:"iana",compressible:!0},"application/mbms-msk-response+xml":{source:"iana",compressible:!0},"application/mbms-protection-description+xml":{source:"iana",compressible:!0},"application/mbms-reception-report+xml":{source:"iana",compressible:!0},"application/mbms-register+xml":{source:"iana",compressible:!0},"application/mbms-register-response+xml":{source:"iana",compressible:!0},"application/mbms-schedule+xml":{source:"iana",compressible:!0},"application/mbms-user-service-description+xml":{source:"iana",compressible:!0},"application/mbox":{source:"iana",extensions:["mbox"]},"application/media-policy-dataset+xml":{source:"iana",compressible:!0,extensions:["mpf"]},"application/media_control+xml":{source:"iana",compressible:!0},"application/mediaservercontrol+xml":{source:"iana",compressible:!0,extensions:["mscml"]},"application/merge-patch+json":{source:"iana",compressible:!0},"application/metalink+xml":{source:"apache",compressible:!0,extensions:["metalink"]},"application/metalink4+xml":{source:"iana",compressible:!0,extensions:["meta4"]},"application/mets+xml":{source:"iana",compressible:!0,extensions:["mets"]},"application/mf4":{source:"iana"},"application/mikey":{source:"iana"},"application/mipc":{source:"iana"},"application/missing-blocks+cbor-seq":{source:"iana"},"application/mmt-aei+xml":{source:"iana",compressible:!0,extensions:["maei"]},"application/mmt-usd+xml":{source:"iana",compressible:!0,extensions:["musd"]},"application/mods+xml":{source:"iana",compressible:!0,extensions:["mods"]},"application/moss-keys":{source:"iana"},"application/moss-signature":{source:"iana"},"application/mosskey-data":{source:"iana"},"application/mosskey-request":{source:"iana"},"application/mp21":{source:"iana",extensions:["m21","mp21"]},"application/mp4":{source:"iana",extensions:["mp4s","m4p"]},"application/mpeg4-generic":{source:"iana"},"application/mpeg4-iod":{source:"iana"},"application/mpeg4-iod-xmt":{source:"iana"},"application/mrb-consumer+xml":{source:"iana",compressible:!0},"application/mrb-publish+xml":{source:"iana",compressible:!0},"application/msc-ivr+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msc-mixer+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msword":{source:"iana",compressible:!1,extensions:["doc","dot"]},"application/mud+json":{source:"iana",compressible:!0},"application/multipart-core":{source:"iana"},"application/mxf":{source:"iana",extensions:["mxf"]},"application/n-quads":{source:"iana",extensions:["nq"]},"application/n-triples":{source:"iana",extensions:["nt"]},"application/nasdata":{source:"iana"},"application/news-checkgroups":{source:"iana",charset:"US-ASCII"},"application/news-groupinfo":{source:"iana",charset:"US-ASCII"},"application/news-transmission":{source:"iana"},"application/nlsml+xml":{source:"iana",compressible:!0},"application/node":{source:"iana",extensions:["cjs"]},"application/nss":{source:"iana"},"application/oauth-authz-req+jwt":{source:"iana"},"application/oblivious-dns-message":{source:"iana"},"application/ocsp-request":{source:"iana"},"application/ocsp-response":{source:"iana"},"application/octet-stream":{source:"iana",compressible:!1,extensions:["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{source:"iana",extensions:["oda"]},"application/odm+xml":{source:"iana",compressible:!0},"application/odx":{source:"iana"},"application/oebps-package+xml":{source:"iana",compressible:!0,extensions:["opf"]},"application/ogg":{source:"iana",compressible:!1,extensions:["ogx"]},"application/omdoc+xml":{source:"apache",compressible:!0,extensions:["omdoc"]},"application/onenote":{source:"apache",extensions:["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{source:"iana",compressible:!0},"application/oscore":{source:"iana"},"application/oxps":{source:"iana",extensions:["oxps"]},"application/p21":{source:"iana"},"application/p21+zip":{source:"iana",compressible:!1},"application/p2p-overlay+xml":{source:"iana",compressible:!0,extensions:["relo"]},"application/parityfec":{source:"iana"},"application/passport":{source:"iana"},"application/patch-ops-error+xml":{source:"iana",compressible:!0,extensions:["xer"]},"application/pdf":{source:"iana",compressible:!1,extensions:["pdf"]},"application/pdx":{source:"iana"},"application/pem-certificate-chain":{source:"iana"},"application/pgp-encrypted":{source:"iana",compressible:!1,extensions:["pgp"]},"application/pgp-keys":{source:"iana",extensions:["asc"]},"application/pgp-signature":{source:"iana",extensions:["asc","sig"]},"application/pics-rules":{source:"apache",extensions:["prf"]},"application/pidf+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pidf-diff+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pkcs10":{source:"iana",extensions:["p10"]},"application/pkcs12":{source:"iana"},"application/pkcs7-mime":{source:"iana",extensions:["p7m","p7c"]},"application/pkcs7-signature":{source:"iana",extensions:["p7s"]},"application/pkcs8":{source:"iana",extensions:["p8"]},"application/pkcs8-encrypted":{source:"iana"},"application/pkix-attr-cert":{source:"iana",extensions:["ac"]},"application/pkix-cert":{source:"iana",extensions:["cer"]},"application/pkix-crl":{source:"iana",extensions:["crl"]},"application/pkix-pkipath":{source:"iana",extensions:["pkipath"]},"application/pkixcmp":{source:"iana",extensions:["pki"]},"application/pls+xml":{source:"iana",compressible:!0,extensions:["pls"]},"application/poc-settings+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/postscript":{source:"iana",compressible:!0,extensions:["ai","eps","ps"]},"application/ppsp-tracker+json":{source:"iana",compressible:!0},"application/problem+json":{source:"iana",compressible:!0},"application/problem+xml":{source:"iana",compressible:!0},"application/provenance+xml":{source:"iana",compressible:!0,extensions:["provx"]},"application/prs.alvestrand.titrax-sheet":{source:"iana"},"application/prs.cww":{source:"iana",extensions:["cww"]},"application/prs.cyn":{source:"iana",charset:"7-BIT"},"application/prs.hpub+zip":{source:"iana",compressible:!1},"application/prs.nprend":{source:"iana"},"application/prs.plucker":{source:"iana"},"application/prs.rdf-xml-crypt":{source:"iana"},"application/prs.xsf+xml":{source:"iana",compressible:!0},"application/pskc+xml":{source:"iana",compressible:!0,extensions:["pskcxml"]},"application/pvd+json":{source:"iana",compressible:!0},"application/qsig":{source:"iana"},"application/raml+yaml":{compressible:!0,extensions:["raml"]},"application/raptorfec":{source:"iana"},"application/rdap+json":{source:"iana",compressible:!0},"application/rdf+xml":{source:"iana",compressible:!0,extensions:["rdf","owl"]},"application/reginfo+xml":{source:"iana",compressible:!0,extensions:["rif"]},"application/relax-ng-compact-syntax":{source:"iana",extensions:["rnc"]},"application/remote-printing":{source:"iana"},"application/reputon+json":{source:"iana",compressible:!0},"application/resource-lists+xml":{source:"iana",compressible:!0,extensions:["rl"]},"application/resource-lists-diff+xml":{source:"iana",compressible:!0,extensions:["rld"]},"application/rfc+xml":{source:"iana",compressible:!0},"application/riscos":{source:"iana"},"application/rlmi+xml":{source:"iana",compressible:!0},"application/rls-services+xml":{source:"iana",compressible:!0,extensions:["rs"]},"application/route-apd+xml":{source:"iana",compressible:!0,extensions:["rapd"]},"application/route-s-tsid+xml":{source:"iana",compressible:!0,extensions:["sls"]},"application/route-usd+xml":{source:"iana",compressible:!0,extensions:["rusd"]},"application/rpki-ghostbusters":{source:"iana",extensions:["gbr"]},"application/rpki-manifest":{source:"iana",extensions:["mft"]},"application/rpki-publication":{source:"iana"},"application/rpki-roa":{source:"iana",extensions:["roa"]},"application/rpki-updown":{source:"iana"},"application/rsd+xml":{source:"apache",compressible:!0,extensions:["rsd"]},"application/rss+xml":{source:"apache",compressible:!0,extensions:["rss"]},"application/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"application/rtploopback":{source:"iana"},"application/rtx":{source:"iana"},"application/samlassertion+xml":{source:"iana",compressible:!0},"application/samlmetadata+xml":{source:"iana",compressible:!0},"application/sarif+json":{source:"iana",compressible:!0},"application/sarif-external-properties+json":{source:"iana",compressible:!0},"application/sbe":{source:"iana"},"application/sbml+xml":{source:"iana",compressible:!0,extensions:["sbml"]},"application/scaip+xml":{source:"iana",compressible:!0},"application/scim+json":{source:"iana",compressible:!0},"application/scvp-cv-request":{source:"iana",extensions:["scq"]},"application/scvp-cv-response":{source:"iana",extensions:["scs"]},"application/scvp-vp-request":{source:"iana",extensions:["spq"]},"application/scvp-vp-response":{source:"iana",extensions:["spp"]},"application/sdp":{source:"iana",extensions:["sdp"]},"application/secevent+jwt":{source:"iana"},"application/senml+cbor":{source:"iana"},"application/senml+json":{source:"iana",compressible:!0},"application/senml+xml":{source:"iana",compressible:!0,extensions:["senmlx"]},"application/senml-etch+cbor":{source:"iana"},"application/senml-etch+json":{source:"iana",compressible:!0},"application/senml-exi":{source:"iana"},"application/sensml+cbor":{source:"iana"},"application/sensml+json":{source:"iana",compressible:!0},"application/sensml+xml":{source:"iana",compressible:!0,extensions:["sensmlx"]},"application/sensml-exi":{source:"iana"},"application/sep+xml":{source:"iana",compressible:!0},"application/sep-exi":{source:"iana"},"application/session-info":{source:"iana"},"application/set-payment":{source:"iana"},"application/set-payment-initiation":{source:"iana",extensions:["setpay"]},"application/set-registration":{source:"iana"},"application/set-registration-initiation":{source:"iana",extensions:["setreg"]},"application/sgml":{source:"iana"},"application/sgml-open-catalog":{source:"iana"},"application/shf+xml":{source:"iana",compressible:!0,extensions:["shf"]},"application/sieve":{source:"iana",extensions:["siv","sieve"]},"application/simple-filter+xml":{source:"iana",compressible:!0},"application/simple-message-summary":{source:"iana"},"application/simplesymbolcontainer":{source:"iana"},"application/sipc":{source:"iana"},"application/slate":{source:"iana"},"application/smil":{source:"iana"},"application/smil+xml":{source:"iana",compressible:!0,extensions:["smi","smil"]},"application/smpte336m":{source:"iana"},"application/soap+fastinfoset":{source:"iana"},"application/soap+xml":{source:"iana",compressible:!0},"application/sparql-query":{source:"iana",extensions:["rq"]},"application/sparql-results+xml":{source:"iana",compressible:!0,extensions:["srx"]},"application/spdx+json":{source:"iana",compressible:!0},"application/spirits-event+xml":{source:"iana",compressible:!0},"application/sql":{source:"iana"},"application/srgs":{source:"iana",extensions:["gram"]},"application/srgs+xml":{source:"iana",compressible:!0,extensions:["grxml"]},"application/sru+xml":{source:"iana",compressible:!0,extensions:["sru"]},"application/ssdl+xml":{source:"apache",compressible:!0,extensions:["ssdl"]},"application/ssml+xml":{source:"iana",compressible:!0,extensions:["ssml"]},"application/stix+json":{source:"iana",compressible:!0},"application/swid+xml":{source:"iana",compressible:!0,extensions:["swidtag"]},"application/tamp-apex-update":{source:"iana"},"application/tamp-apex-update-confirm":{source:"iana"},"application/tamp-community-update":{source:"iana"},"application/tamp-community-update-confirm":{source:"iana"},"application/tamp-error":{source:"iana"},"application/tamp-sequence-adjust":{source:"iana"},"application/tamp-sequence-adjust-confirm":{source:"iana"},"application/tamp-status-query":{source:"iana"},"application/tamp-status-response":{source:"iana"},"application/tamp-update":{source:"iana"},"application/tamp-update-confirm":{source:"iana"},"application/tar":{compressible:!0},"application/taxii+json":{source:"iana",compressible:!0},"application/td+json":{source:"iana",compressible:!0},"application/tei+xml":{source:"iana",compressible:!0,extensions:["tei","teicorpus"]},"application/tetra_isi":{source:"iana"},"application/thraud+xml":{source:"iana",compressible:!0,extensions:["tfi"]},"application/timestamp-query":{source:"iana"},"application/timestamp-reply":{source:"iana"},"application/timestamped-data":{source:"iana",extensions:["tsd"]},"application/tlsrpt+gzip":{source:"iana"},"application/tlsrpt+json":{source:"iana",compressible:!0},"application/tnauthlist":{source:"iana"},"application/token-introspection+jwt":{source:"iana"},"application/toml":{compressible:!0,extensions:["toml"]},"application/trickle-ice-sdpfrag":{source:"iana"},"application/trig":{source:"iana",extensions:["trig"]},"application/ttml+xml":{source:"iana",compressible:!0,extensions:["ttml"]},"application/tve-trigger":{source:"iana"},"application/tzif":{source:"iana"},"application/tzif-leap":{source:"iana"},"application/ubjson":{compressible:!1,extensions:["ubj"]},"application/ulpfec":{source:"iana"},"application/urc-grpsheet+xml":{source:"iana",compressible:!0},"application/urc-ressheet+xml":{source:"iana",compressible:!0,extensions:["rsheet"]},"application/urc-targetdesc+xml":{source:"iana",compressible:!0,extensions:["td"]},"application/urc-uisocketdesc+xml":{source:"iana",compressible:!0},"application/vcard+json":{source:"iana",compressible:!0},"application/vcard+xml":{source:"iana",compressible:!0},"application/vemmi":{source:"iana"},"application/vividence.scriptfile":{source:"apache"},"application/vnd.1000minds.decision-model+xml":{source:"iana",compressible:!0,extensions:["1km"]},"application/vnd.3gpp-prose+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-prose-pc3ch+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-v2x-local-service-information":{source:"iana"},"application/vnd.3gpp.5gnas":{source:"iana"},"application/vnd.3gpp.access-transfer-events+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.bsf+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gmop+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gtpc":{source:"iana"},"application/vnd.3gpp.interworking-data":{source:"iana"},"application/vnd.3gpp.lpp":{source:"iana"},"application/vnd.3gpp.mc-signalling-ear":{source:"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-payload":{source:"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-signalling":{source:"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-floor-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-signed+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-init-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-transmission-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mid-call+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ngap":{source:"iana"},"application/vnd.3gpp.pfcp":{source:"iana"},"application/vnd.3gpp.pic-bw-large":{source:"iana",extensions:["plb"]},"application/vnd.3gpp.pic-bw-small":{source:"iana",extensions:["psb"]},"application/vnd.3gpp.pic-bw-var":{source:"iana",extensions:["pvb"]},"application/vnd.3gpp.s1ap":{source:"iana"},"application/vnd.3gpp.sms":{source:"iana"},"application/vnd.3gpp.sms+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-ext+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.state-and-event-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ussd+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.bcmcsinfo+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.sms":{source:"iana"},"application/vnd.3gpp2.tcap":{source:"iana",extensions:["tcap"]},"application/vnd.3lightssoftware.imagescal":{source:"iana"},"application/vnd.3m.post-it-notes":{source:"iana",extensions:["pwn"]},"application/vnd.accpac.simply.aso":{source:"iana",extensions:["aso"]},"application/vnd.accpac.simply.imp":{source:"iana",extensions:["imp"]},"application/vnd.acucobol":{source:"iana",extensions:["acu"]},"application/vnd.acucorp":{source:"iana",extensions:["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{source:"apache",compressible:!1,extensions:["air"]},"application/vnd.adobe.flash.movie":{source:"iana"},"application/vnd.adobe.formscentral.fcdt":{source:"iana",extensions:["fcdt"]},"application/vnd.adobe.fxp":{source:"iana",extensions:["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{source:"iana"},"application/vnd.adobe.xdp+xml":{source:"iana",compressible:!0,extensions:["xdp"]},"application/vnd.adobe.xfdf":{source:"iana",extensions:["xfdf"]},"application/vnd.aether.imp":{source:"iana"},"application/vnd.afpc.afplinedata":{source:"iana"},"application/vnd.afpc.afplinedata-pagedef":{source:"iana"},"application/vnd.afpc.cmoca-cmresource":{source:"iana"},"application/vnd.afpc.foca-charset":{source:"iana"},"application/vnd.afpc.foca-codedfont":{source:"iana"},"application/vnd.afpc.foca-codepage":{source:"iana"},"application/vnd.afpc.modca":{source:"iana"},"application/vnd.afpc.modca-cmtable":{source:"iana"},"application/vnd.afpc.modca-formdef":{source:"iana"},"application/vnd.afpc.modca-mediummap":{source:"iana"},"application/vnd.afpc.modca-objectcontainer":{source:"iana"},"application/vnd.afpc.modca-overlay":{source:"iana"},"application/vnd.afpc.modca-pagesegment":{source:"iana"},"application/vnd.age":{source:"iana",extensions:["age"]},"application/vnd.ah-barcode":{source:"iana"},"application/vnd.ahead.space":{source:"iana",extensions:["ahead"]},"application/vnd.airzip.filesecure.azf":{source:"iana",extensions:["azf"]},"application/vnd.airzip.filesecure.azs":{source:"iana",extensions:["azs"]},"application/vnd.amadeus+json":{source:"iana",compressible:!0},"application/vnd.amazon.ebook":{source:"apache",extensions:["azw"]},"application/vnd.amazon.mobi8-ebook":{source:"iana"},"application/vnd.americandynamics.acc":{source:"iana",extensions:["acc"]},"application/vnd.amiga.ami":{source:"iana",extensions:["ami"]},"application/vnd.amundsen.maze+xml":{source:"iana",compressible:!0},"application/vnd.android.ota":{source:"iana"},"application/vnd.android.package-archive":{source:"apache",compressible:!1,extensions:["apk"]},"application/vnd.anki":{source:"iana"},"application/vnd.anser-web-certificate-issue-initiation":{source:"iana",extensions:["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{source:"apache",extensions:["fti"]},"application/vnd.antix.game-component":{source:"iana",extensions:["atx"]},"application/vnd.apache.arrow.file":{source:"iana"},"application/vnd.apache.arrow.stream":{source:"iana"},"application/vnd.apache.thrift.binary":{source:"iana"},"application/vnd.apache.thrift.compact":{source:"iana"},"application/vnd.apache.thrift.json":{source:"iana"},"application/vnd.api+json":{source:"iana",compressible:!0},"application/vnd.aplextor.warrp+json":{source:"iana",compressible:!0},"application/vnd.apothekende.reservation+json":{source:"iana",compressible:!0},"application/vnd.apple.installer+xml":{source:"iana",compressible:!0,extensions:["mpkg"]},"application/vnd.apple.keynote":{source:"iana",extensions:["key"]},"application/vnd.apple.mpegurl":{source:"iana",extensions:["m3u8"]},"application/vnd.apple.numbers":{source:"iana",extensions:["numbers"]},"application/vnd.apple.pages":{source:"iana",extensions:["pages"]},"application/vnd.apple.pkpass":{compressible:!1,extensions:["pkpass"]},"application/vnd.arastra.swi":{source:"iana"},"application/vnd.aristanetworks.swi":{source:"iana",extensions:["swi"]},"application/vnd.artisan+json":{source:"iana",compressible:!0},"application/vnd.artsquare":{source:"iana"},"application/vnd.astraea-software.iota":{source:"iana",extensions:["iota"]},"application/vnd.audiograph":{source:"iana",extensions:["aep"]},"application/vnd.autopackage":{source:"iana"},"application/vnd.avalon+json":{source:"iana",compressible:!0},"application/vnd.avistar+xml":{source:"iana",compressible:!0},"application/vnd.balsamiq.bmml+xml":{source:"iana",compressible:!0,extensions:["bmml"]},"application/vnd.balsamiq.bmpr":{source:"iana"},"application/vnd.banana-accounting":{source:"iana"},"application/vnd.bbf.usp.error":{source:"iana"},"application/vnd.bbf.usp.msg":{source:"iana"},"application/vnd.bbf.usp.msg+json":{source:"iana",compressible:!0},"application/vnd.bekitzur-stech+json":{source:"iana",compressible:!0},"application/vnd.bint.med-content":{source:"iana"},"application/vnd.biopax.rdf+xml":{source:"iana",compressible:!0},"application/vnd.blink-idb-value-wrapper":{source:"iana"},"application/vnd.blueice.multipass":{source:"iana",extensions:["mpm"]},"application/vnd.bluetooth.ep.oob":{source:"iana"},"application/vnd.bluetooth.le.oob":{source:"iana"},"application/vnd.bmi":{source:"iana",extensions:["bmi"]},"application/vnd.bpf":{source:"iana"},"application/vnd.bpf3":{source:"iana"},"application/vnd.businessobjects":{source:"iana",extensions:["rep"]},"application/vnd.byu.uapi+json":{source:"iana",compressible:!0},"application/vnd.cab-jscript":{source:"iana"},"application/vnd.canon-cpdl":{source:"iana"},"application/vnd.canon-lips":{source:"iana"},"application/vnd.capasystems-pg+json":{source:"iana",compressible:!0},"application/vnd.cendio.thinlinc.clientconf":{source:"iana"},"application/vnd.century-systems.tcp_stream":{source:"iana"},"application/vnd.chemdraw+xml":{source:"iana",compressible:!0,extensions:["cdxml"]},"application/vnd.chess-pgn":{source:"iana"},"application/vnd.chipnuts.karaoke-mmd":{source:"iana",extensions:["mmd"]},"application/vnd.ciedi":{source:"iana"},"application/vnd.cinderella":{source:"iana",extensions:["cdy"]},"application/vnd.cirpack.isdn-ext":{source:"iana"},"application/vnd.citationstyles.style+xml":{source:"iana",compressible:!0,extensions:["csl"]},"application/vnd.claymore":{source:"iana",extensions:["cla"]},"application/vnd.cloanto.rp9":{source:"iana",extensions:["rp9"]},"application/vnd.clonk.c4group":{source:"iana",extensions:["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{source:"iana",extensions:["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{source:"iana",extensions:["c11amz"]},"application/vnd.coffeescript":{source:"iana"},"application/vnd.collabio.xodocuments.document":{source:"iana"},"application/vnd.collabio.xodocuments.document-template":{source:"iana"},"application/vnd.collabio.xodocuments.presentation":{source:"iana"},"application/vnd.collabio.xodocuments.presentation-template":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{source:"iana"},"application/vnd.collection+json":{source:"iana",compressible:!0},"application/vnd.collection.doc+json":{source:"iana",compressible:!0},"application/vnd.collection.next+json":{source:"iana",compressible:!0},"application/vnd.comicbook+zip":{source:"iana",compressible:!1},"application/vnd.comicbook-rar":{source:"iana"},"application/vnd.commerce-battelle":{source:"iana"},"application/vnd.commonspace":{source:"iana",extensions:["csp"]},"application/vnd.contact.cmsg":{source:"iana",extensions:["cdbcmsg"]},"application/vnd.coreos.ignition+json":{source:"iana",compressible:!0},"application/vnd.cosmocaller":{source:"iana",extensions:["cmc"]},"application/vnd.crick.clicker":{source:"iana",extensions:["clkx"]},"application/vnd.crick.clicker.keyboard":{source:"iana",extensions:["clkk"]},"application/vnd.crick.clicker.palette":{source:"iana",extensions:["clkp"]},"application/vnd.crick.clicker.template":{source:"iana",extensions:["clkt"]},"application/vnd.crick.clicker.wordbank":{source:"iana",extensions:["clkw"]},"application/vnd.criticaltools.wbs+xml":{source:"iana",compressible:!0,extensions:["wbs"]},"application/vnd.cryptii.pipe+json":{source:"iana",compressible:!0},"application/vnd.crypto-shade-file":{source:"iana"},"application/vnd.cryptomator.encrypted":{source:"iana"},"application/vnd.cryptomator.vault":{source:"iana"},"application/vnd.ctc-posml":{source:"iana",extensions:["pml"]},"application/vnd.ctct.ws+xml":{source:"iana",compressible:!0},"application/vnd.cups-pdf":{source:"iana"},"application/vnd.cups-postscript":{source:"iana"},"application/vnd.cups-ppd":{source:"iana",extensions:["ppd"]},"application/vnd.cups-raster":{source:"iana"},"application/vnd.cups-raw":{source:"iana"},"application/vnd.curl":{source:"iana"},"application/vnd.curl.car":{source:"apache",extensions:["car"]},"application/vnd.curl.pcurl":{source:"apache",extensions:["pcurl"]},"application/vnd.cyan.dean.root+xml":{source:"iana",compressible:!0},"application/vnd.cybank":{source:"iana"},"application/vnd.cyclonedx+json":{source:"iana",compressible:!0},"application/vnd.cyclonedx+xml":{source:"iana",compressible:!0},"application/vnd.d2l.coursepackage1p0+zip":{source:"iana",compressible:!1},"application/vnd.d3m-dataset":{source:"iana"},"application/vnd.d3m-problem":{source:"iana"},"application/vnd.dart":{source:"iana",compressible:!0,extensions:["dart"]},"application/vnd.data-vision.rdz":{source:"iana",extensions:["rdz"]},"application/vnd.datapackage+json":{source:"iana",compressible:!0},"application/vnd.dataresource+json":{source:"iana",compressible:!0},"application/vnd.dbf":{source:"iana",extensions:["dbf"]},"application/vnd.debian.binary-package":{source:"iana"},"application/vnd.dece.data":{source:"iana",extensions:["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{source:"iana",compressible:!0,extensions:["uvt","uvvt"]},"application/vnd.dece.unspecified":{source:"iana",extensions:["uvx","uvvx"]},"application/vnd.dece.zip":{source:"iana",extensions:["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{source:"iana",extensions:["fe_launch"]},"application/vnd.desmume.movie":{source:"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{source:"iana"},"application/vnd.dm.delegation+xml":{source:"iana",compressible:!0},"application/vnd.dna":{source:"iana",extensions:["dna"]},"application/vnd.document+json":{source:"iana",compressible:!0},"application/vnd.dolby.mlp":{source:"apache",extensions:["mlp"]},"application/vnd.dolby.mobile.1":{source:"iana"},"application/vnd.dolby.mobile.2":{source:"iana"},"application/vnd.doremir.scorecloud-binary-document":{source:"iana"},"application/vnd.dpgraph":{source:"iana",extensions:["dpg"]},"application/vnd.dreamfactory":{source:"iana",extensions:["dfac"]},"application/vnd.drive+json":{source:"iana",compressible:!0},"application/vnd.ds-keypoint":{source:"apache",extensions:["kpxx"]},"application/vnd.dtg.local":{source:"iana"},"application/vnd.dtg.local.flash":{source:"iana"},"application/vnd.dtg.local.html":{source:"iana"},"application/vnd.dvb.ait":{source:"iana",extensions:["ait"]},"application/vnd.dvb.dvbisl+xml":{source:"iana",compressible:!0},"application/vnd.dvb.dvbj":{source:"iana"},"application/vnd.dvb.esgcontainer":{source:"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess2":{source:"iana"},"application/vnd.dvb.ipdcesgpdd":{source:"iana"},"application/vnd.dvb.ipdcroaming":{source:"iana"},"application/vnd.dvb.iptv.alfec-base":{source:"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{source:"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-container+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-generic+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-msglist+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-request+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-response+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-init+xml":{source:"iana",compressible:!0},"application/vnd.dvb.pfr":{source:"iana"},"application/vnd.dvb.service":{source:"iana",extensions:["svc"]},"application/vnd.dxr":{source:"iana"},"application/vnd.dynageo":{source:"iana",extensions:["geo"]},"application/vnd.dzr":{source:"iana"},"application/vnd.easykaraoke.cdgdownload":{source:"iana"},"application/vnd.ecdis-update":{source:"iana"},"application/vnd.ecip.rlp":{source:"iana"},"application/vnd.eclipse.ditto+json":{source:"iana",compressible:!0},"application/vnd.ecowin.chart":{source:"iana",extensions:["mag"]},"application/vnd.ecowin.filerequest":{source:"iana"},"application/vnd.ecowin.fileupdate":{source:"iana"},"application/vnd.ecowin.series":{source:"iana"},"application/vnd.ecowin.seriesrequest":{source:"iana"},"application/vnd.ecowin.seriesupdate":{source:"iana"},"application/vnd.efi.img":{source:"iana"},"application/vnd.efi.iso":{source:"iana"},"application/vnd.emclient.accessrequest+xml":{source:"iana",compressible:!0},"application/vnd.enliven":{source:"iana",extensions:["nml"]},"application/vnd.enphase.envoy":{source:"iana"},"application/vnd.eprints.data+xml":{source:"iana",compressible:!0},"application/vnd.epson.esf":{source:"iana",extensions:["esf"]},"application/vnd.epson.msf":{source:"iana",extensions:["msf"]},"application/vnd.epson.quickanime":{source:"iana",extensions:["qam"]},"application/vnd.epson.salt":{source:"iana",extensions:["slt"]},"application/vnd.epson.ssf":{source:"iana",extensions:["ssf"]},"application/vnd.ericsson.quickcall":{source:"iana"},"application/vnd.espass-espass+zip":{source:"iana",compressible:!1},"application/vnd.eszigno3+xml":{source:"iana",compressible:!0,extensions:["es3","et3"]},"application/vnd.etsi.aoc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.asic-e+zip":{source:"iana",compressible:!1},"application/vnd.etsi.asic-s+zip":{source:"iana",compressible:!1},"application/vnd.etsi.cug+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvcommand+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-bc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-cod+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-npvr+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvservice+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsync+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvueprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mcid+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mheg5":{source:"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{source:"iana",compressible:!0},"application/vnd.etsi.pstn+xml":{source:"iana",compressible:!0},"application/vnd.etsi.sci+xml":{source:"iana",compressible:!0},"application/vnd.etsi.simservs+xml":{source:"iana",compressible:!0},"application/vnd.etsi.timestamp-token":{source:"iana"},"application/vnd.etsi.tsl+xml":{source:"iana",compressible:!0},"application/vnd.etsi.tsl.der":{source:"iana"},"application/vnd.eu.kasparian.car+json":{source:"iana",compressible:!0},"application/vnd.eudora.data":{source:"iana"},"application/vnd.evolv.ecig.profile":{source:"iana"},"application/vnd.evolv.ecig.settings":{source:"iana"},"application/vnd.evolv.ecig.theme":{source:"iana"},"application/vnd.exstream-empower+zip":{source:"iana",compressible:!1},"application/vnd.exstream-package":{source:"iana"},"application/vnd.ezpix-album":{source:"iana",extensions:["ez2"]},"application/vnd.ezpix-package":{source:"iana",extensions:["ez3"]},"application/vnd.f-secure.mobile":{source:"iana"},"application/vnd.familysearch.gedcom+zip":{source:"iana",compressible:!1},"application/vnd.fastcopy-disk-image":{source:"iana"},"application/vnd.fdf":{source:"iana",extensions:["fdf"]},"application/vnd.fdsn.mseed":{source:"iana",extensions:["mseed"]},"application/vnd.fdsn.seed":{source:"iana",extensions:["seed","dataless"]},"application/vnd.ffsns":{source:"iana"},"application/vnd.ficlab.flb+zip":{source:"iana",compressible:!1},"application/vnd.filmit.zfc":{source:"iana"},"application/vnd.fints":{source:"iana"},"application/vnd.firemonkeys.cloudcell":{source:"iana"},"application/vnd.flographit":{source:"iana",extensions:["gph"]},"application/vnd.fluxtime.clip":{source:"iana",extensions:["ftc"]},"application/vnd.font-fontforge-sfd":{source:"iana"},"application/vnd.framemaker":{source:"iana",extensions:["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{source:"iana",extensions:["fnc"]},"application/vnd.frogans.ltf":{source:"iana",extensions:["ltf"]},"application/vnd.fsc.weblaunch":{source:"iana",extensions:["fsc"]},"application/vnd.fujifilm.fb.docuworks":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.container":{source:"iana"},"application/vnd.fujifilm.fb.jfi+xml":{source:"iana",compressible:!0},"application/vnd.fujitsu.oasys":{source:"iana",extensions:["oas"]},"application/vnd.fujitsu.oasys2":{source:"iana",extensions:["oa2"]},"application/vnd.fujitsu.oasys3":{source:"iana",extensions:["oa3"]},"application/vnd.fujitsu.oasysgp":{source:"iana",extensions:["fg5"]},"application/vnd.fujitsu.oasysprs":{source:"iana",extensions:["bh2"]},"application/vnd.fujixerox.art-ex":{source:"iana"},"application/vnd.fujixerox.art4":{source:"iana"},"application/vnd.fujixerox.ddd":{source:"iana",extensions:["ddd"]},"application/vnd.fujixerox.docuworks":{source:"iana",extensions:["xdw"]},"application/vnd.fujixerox.docuworks.binder":{source:"iana",extensions:["xbd"]},"application/vnd.fujixerox.docuworks.container":{source:"iana"},"application/vnd.fujixerox.hbpl":{source:"iana"},"application/vnd.fut-misnet":{source:"iana"},"application/vnd.futoin+cbor":{source:"iana"},"application/vnd.futoin+json":{source:"iana",compressible:!0},"application/vnd.fuzzysheet":{source:"iana",extensions:["fzs"]},"application/vnd.genomatix.tuxedo":{source:"iana",extensions:["txd"]},"application/vnd.gentics.grd+json":{source:"iana",compressible:!0},"application/vnd.geo+json":{source:"iana",compressible:!0},"application/vnd.geocube+xml":{source:"iana",compressible:!0},"application/vnd.geogebra.file":{source:"iana",extensions:["ggb"]},"application/vnd.geogebra.slides":{source:"iana"},"application/vnd.geogebra.tool":{source:"iana",extensions:["ggt"]},"application/vnd.geometry-explorer":{source:"iana",extensions:["gex","gre"]},"application/vnd.geonext":{source:"iana",extensions:["gxt"]},"application/vnd.geoplan":{source:"iana",extensions:["g2w"]},"application/vnd.geospace":{source:"iana",extensions:["g3w"]},"application/vnd.gerber":{source:"iana"},"application/vnd.globalplatform.card-content-mgt":{source:"iana"},"application/vnd.globalplatform.card-content-mgt-response":{source:"iana"},"application/vnd.gmx":{source:"iana",extensions:["gmx"]},"application/vnd.google-apps.document":{compressible:!1,extensions:["gdoc"]},"application/vnd.google-apps.presentation":{compressible:!1,extensions:["gslides"]},"application/vnd.google-apps.spreadsheet":{compressible:!1,extensions:["gsheet"]},"application/vnd.google-earth.kml+xml":{source:"iana",compressible:!0,extensions:["kml"]},"application/vnd.google-earth.kmz":{source:"iana",compressible:!1,extensions:["kmz"]},"application/vnd.gov.sk.e-form+xml":{source:"iana",compressible:!0},"application/vnd.gov.sk.e-form+zip":{source:"iana",compressible:!1},"application/vnd.gov.sk.xmldatacontainer+xml":{source:"iana",compressible:!0},"application/vnd.grafeq":{source:"iana",extensions:["gqf","gqs"]},"application/vnd.gridmp":{source:"iana"},"application/vnd.groove-account":{source:"iana",extensions:["gac"]},"application/vnd.groove-help":{source:"iana",extensions:["ghf"]},"application/vnd.groove-identity-message":{source:"iana",extensions:["gim"]},"application/vnd.groove-injector":{source:"iana",extensions:["grv"]},"application/vnd.groove-tool-message":{source:"iana",extensions:["gtm"]},"application/vnd.groove-tool-template":{source:"iana",extensions:["tpl"]},"application/vnd.groove-vcard":{source:"iana",extensions:["vcg"]},"application/vnd.hal+json":{source:"iana",compressible:!0},"application/vnd.hal+xml":{source:"iana",compressible:!0,extensions:["hal"]},"application/vnd.handheld-entertainment+xml":{source:"iana",compressible:!0,extensions:["zmm"]},"application/vnd.hbci":{source:"iana",extensions:["hbci"]},"application/vnd.hc+json":{source:"iana",compressible:!0},"application/vnd.hcl-bireports":{source:"iana"},"application/vnd.hdt":{source:"iana"},"application/vnd.heroku+json":{source:"iana",compressible:!0},"application/vnd.hhe.lesson-player":{source:"iana",extensions:["les"]},"application/vnd.hl7cda+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hl7v2+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hp-hpgl":{source:"iana",extensions:["hpgl"]},"application/vnd.hp-hpid":{source:"iana",extensions:["hpid"]},"application/vnd.hp-hps":{source:"iana",extensions:["hps"]},"application/vnd.hp-jlyt":{source:"iana",extensions:["jlt"]},"application/vnd.hp-pcl":{source:"iana",extensions:["pcl"]},"application/vnd.hp-pclxl":{source:"iana",extensions:["pclxl"]},"application/vnd.httphone":{source:"iana"},"application/vnd.hydrostatix.sof-data":{source:"iana",extensions:["sfd-hdstx"]},"application/vnd.hyper+json":{source:"iana",compressible:!0},"application/vnd.hyper-item+json":{source:"iana",compressible:!0},"application/vnd.hyperdrive+json":{source:"iana",compressible:!0},"application/vnd.hzn-3d-crossword":{source:"iana"},"application/vnd.ibm.afplinedata":{source:"iana"},"application/vnd.ibm.electronic-media":{source:"iana"},"application/vnd.ibm.minipay":{source:"iana",extensions:["mpy"]},"application/vnd.ibm.modcap":{source:"iana",extensions:["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{source:"iana",extensions:["irm"]},"application/vnd.ibm.secure-container":{source:"iana",extensions:["sc"]},"application/vnd.iccprofile":{source:"iana",extensions:["icc","icm"]},"application/vnd.ieee.1905":{source:"iana"},"application/vnd.igloader":{source:"iana",extensions:["igl"]},"application/vnd.imagemeter.folder+zip":{source:"iana",compressible:!1},"application/vnd.imagemeter.image+zip":{source:"iana",compressible:!1},"application/vnd.immervision-ivp":{source:"iana",extensions:["ivp"]},"application/vnd.immervision-ivu":{source:"iana",extensions:["ivu"]},"application/vnd.ims.imsccv1p1":{source:"iana"},"application/vnd.ims.imsccv1p2":{source:"iana"},"application/vnd.ims.imsccv1p3":{source:"iana"},"application/vnd.ims.lis.v2.result+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy.id+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings.simple+json":{source:"iana",compressible:!0},"application/vnd.informedcontrol.rms+xml":{source:"iana",compressible:!0},"application/vnd.informix-visionary":{source:"iana"},"application/vnd.infotech.project":{source:"iana"},"application/vnd.infotech.project+xml":{source:"iana",compressible:!0},"application/vnd.innopath.wamp.notification":{source:"iana"},"application/vnd.insors.igm":{source:"iana",extensions:["igm"]},"application/vnd.intercon.formnet":{source:"iana",extensions:["xpw","xpx"]},"application/vnd.intergeo":{source:"iana",extensions:["i2g"]},"application/vnd.intertrust.digibox":{source:"iana"},"application/vnd.intertrust.nncp":{source:"iana"},"application/vnd.intu.qbo":{source:"iana",extensions:["qbo"]},"application/vnd.intu.qfx":{source:"iana",extensions:["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.conceptitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.knowledgeitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsmessage+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.packageitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.planningitem+xml":{source:"iana",compressible:!0},"application/vnd.ipunplugged.rcprofile":{source:"iana",extensions:["rcprofile"]},"application/vnd.irepository.package+xml":{source:"iana",compressible:!0,extensions:["irp"]},"application/vnd.is-xpr":{source:"iana",extensions:["xpr"]},"application/vnd.isac.fcs":{source:"iana",extensions:["fcs"]},"application/vnd.iso11783-10+zip":{source:"iana",compressible:!1},"application/vnd.jam":{source:"iana",extensions:["jam"]},"application/vnd.japannet-directory-service":{source:"iana"},"application/vnd.japannet-jpnstore-wakeup":{source:"iana"},"application/vnd.japannet-payment-wakeup":{source:"iana"},"application/vnd.japannet-registration":{source:"iana"},"application/vnd.japannet-registration-wakeup":{source:"iana"},"application/vnd.japannet-setstore-wakeup":{source:"iana"},"application/vnd.japannet-verification":{source:"iana"},"application/vnd.japannet-verification-wakeup":{source:"iana"},"application/vnd.jcp.javame.midlet-rms":{source:"iana",extensions:["rms"]},"application/vnd.jisp":{source:"iana",extensions:["jisp"]},"application/vnd.joost.joda-archive":{source:"iana",extensions:["joda"]},"application/vnd.jsk.isdn-ngn":{source:"iana"},"application/vnd.kahootz":{source:"iana",extensions:["ktz","ktr"]},"application/vnd.kde.karbon":{source:"iana",extensions:["karbon"]},"application/vnd.kde.kchart":{source:"iana",extensions:["chrt"]},"application/vnd.kde.kformula":{source:"iana",extensions:["kfo"]},"application/vnd.kde.kivio":{source:"iana",extensions:["flw"]},"application/vnd.kde.kontour":{source:"iana",extensions:["kon"]},"application/vnd.kde.kpresenter":{source:"iana",extensions:["kpr","kpt"]},"application/vnd.kde.kspread":{source:"iana",extensions:["ksp"]},"application/vnd.kde.kword":{source:"iana",extensions:["kwd","kwt"]},"application/vnd.kenameaapp":{source:"iana",extensions:["htke"]},"application/vnd.kidspiration":{source:"iana",extensions:["kia"]},"application/vnd.kinar":{source:"iana",extensions:["kne","knp"]},"application/vnd.koan":{source:"iana",extensions:["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{source:"iana",extensions:["sse"]},"application/vnd.las":{source:"iana"},"application/vnd.las.las+json":{source:"iana",compressible:!0},"application/vnd.las.las+xml":{source:"iana",compressible:!0,extensions:["lasxml"]},"application/vnd.laszip":{source:"iana"},"application/vnd.leap+json":{source:"iana",compressible:!0},"application/vnd.liberty-request+xml":{source:"iana",compressible:!0},"application/vnd.llamagraphics.life-balance.desktop":{source:"iana",extensions:["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{source:"iana",compressible:!0,extensions:["lbe"]},"application/vnd.logipipe.circuit+zip":{source:"iana",compressible:!1},"application/vnd.loom":{source:"iana"},"application/vnd.lotus-1-2-3":{source:"iana",extensions:["123"]},"application/vnd.lotus-approach":{source:"iana",extensions:["apr"]},"application/vnd.lotus-freelance":{source:"iana",extensions:["pre"]},"application/vnd.lotus-notes":{source:"iana",extensions:["nsf"]},"application/vnd.lotus-organizer":{source:"iana",extensions:["org"]},"application/vnd.lotus-screencam":{source:"iana",extensions:["scm"]},"application/vnd.lotus-wordpro":{source:"iana",extensions:["lwp"]},"application/vnd.macports.portpkg":{source:"iana",extensions:["portpkg"]},"application/vnd.mapbox-vector-tile":{source:"iana",extensions:["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.conftoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.license+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.mdcf":{source:"iana"},"application/vnd.mason+json":{source:"iana",compressible:!0},"application/vnd.maxar.archive.3tz+zip":{source:"iana",compressible:!1},"application/vnd.maxmind.maxmind-db":{source:"iana"},"application/vnd.mcd":{source:"iana",extensions:["mcd"]},"application/vnd.medcalcdata":{source:"iana",extensions:["mc1"]},"application/vnd.mediastation.cdkey":{source:"iana",extensions:["cdkey"]},"application/vnd.meridian-slingshot":{source:"iana"},"application/vnd.mfer":{source:"iana",extensions:["mwf"]},"application/vnd.mfmp":{source:"iana",extensions:["mfm"]},"application/vnd.micro+json":{source:"iana",compressible:!0},"application/vnd.micrografx.flo":{source:"iana",extensions:["flo"]},"application/vnd.micrografx.igx":{source:"iana",extensions:["igx"]},"application/vnd.microsoft.portable-executable":{source:"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{source:"iana"},"application/vnd.miele+json":{source:"iana",compressible:!0},"application/vnd.mif":{source:"iana",extensions:["mif"]},"application/vnd.minisoft-hp3000-save":{source:"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{source:"iana"},"application/vnd.mobius.daf":{source:"iana",extensions:["daf"]},"application/vnd.mobius.dis":{source:"iana",extensions:["dis"]},"application/vnd.mobius.mbk":{source:"iana",extensions:["mbk"]},"application/vnd.mobius.mqy":{source:"iana",extensions:["mqy"]},"application/vnd.mobius.msl":{source:"iana",extensions:["msl"]},"application/vnd.mobius.plc":{source:"iana",extensions:["plc"]},"application/vnd.mobius.txf":{source:"iana",extensions:["txf"]},"application/vnd.mophun.application":{source:"iana",extensions:["mpn"]},"application/vnd.mophun.certificate":{source:"iana",extensions:["mpc"]},"application/vnd.motorola.flexsuite":{source:"iana"},"application/vnd.motorola.flexsuite.adsi":{source:"iana"},"application/vnd.motorola.flexsuite.fis":{source:"iana"},"application/vnd.motorola.flexsuite.gotap":{source:"iana"},"application/vnd.motorola.flexsuite.kmr":{source:"iana"},"application/vnd.motorola.flexsuite.ttc":{source:"iana"},"application/vnd.motorola.flexsuite.wem":{source:"iana"},"application/vnd.motorola.iprm":{source:"iana"},"application/vnd.mozilla.xul+xml":{source:"iana",compressible:!0,extensions:["xul"]},"application/vnd.ms-3mfdocument":{source:"iana"},"application/vnd.ms-artgalry":{source:"iana",extensions:["cil"]},"application/vnd.ms-asf":{source:"iana"},"application/vnd.ms-cab-compressed":{source:"iana",extensions:["cab"]},"application/vnd.ms-color.iccprofile":{source:"apache"},"application/vnd.ms-excel":{source:"iana",compressible:!1,extensions:["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{source:"iana",extensions:["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{source:"iana",extensions:["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{source:"iana",extensions:["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{source:"iana",extensions:["xltm"]},"application/vnd.ms-fontobject":{source:"iana",compressible:!0,extensions:["eot"]},"application/vnd.ms-htmlhelp":{source:"iana",extensions:["chm"]},"application/vnd.ms-ims":{source:"iana",extensions:["ims"]},"application/vnd.ms-lrm":{source:"iana",extensions:["lrm"]},"application/vnd.ms-office.activex+xml":{source:"iana",compressible:!0},"application/vnd.ms-officetheme":{source:"iana",extensions:["thmx"]},"application/vnd.ms-opentype":{source:"apache",compressible:!0},"application/vnd.ms-outlook":{compressible:!1,extensions:["msg"]},"application/vnd.ms-package.obfuscated-opentype":{source:"apache"},"application/vnd.ms-pki.seccat":{source:"apache",extensions:["cat"]},"application/vnd.ms-pki.stl":{source:"apache",extensions:["stl"]},"application/vnd.ms-playready.initiator+xml":{source:"iana",compressible:!0},"application/vnd.ms-powerpoint":{source:"iana",compressible:!1,extensions:["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{source:"iana",extensions:["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{source:"iana",extensions:["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{source:"iana",extensions:["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{source:"iana",extensions:["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{source:"iana",extensions:["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{source:"iana",compressible:!0},"application/vnd.ms-printing.printticket+xml":{source:"apache",compressible:!0},"application/vnd.ms-printschematicket+xml":{source:"iana",compressible:!0},"application/vnd.ms-project":{source:"iana",extensions:["mpp","mpt"]},"application/vnd.ms-tnef":{source:"iana"},"application/vnd.ms-windows.devicepairing":{source:"iana"},"application/vnd.ms-windows.nwprinting.oob":{source:"iana"},"application/vnd.ms-windows.printerpairing":{source:"iana"},"application/vnd.ms-windows.wsd.oob":{source:"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.lic-resp":{source:"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.meter-resp":{source:"iana"},"application/vnd.ms-word.document.macroenabled.12":{source:"iana",extensions:["docm"]},"application/vnd.ms-word.template.macroenabled.12":{source:"iana",extensions:["dotm"]},"application/vnd.ms-works":{source:"iana",extensions:["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{source:"iana",extensions:["wpl"]},"application/vnd.ms-xpsdocument":{source:"iana",compressible:!1,extensions:["xps"]},"application/vnd.msa-disk-image":{source:"iana"},"application/vnd.mseq":{source:"iana",extensions:["mseq"]},"application/vnd.msign":{source:"iana"},"application/vnd.multiad.creator":{source:"iana"},"application/vnd.multiad.creator.cif":{source:"iana"},"application/vnd.music-niff":{source:"iana"},"application/vnd.musician":{source:"iana",extensions:["mus"]},"application/vnd.muvee.style":{source:"iana",extensions:["msty"]},"application/vnd.mynfc":{source:"iana",extensions:["taglet"]},"application/vnd.nacamar.ybrid+json":{source:"iana",compressible:!0},"application/vnd.ncd.control":{source:"iana"},"application/vnd.ncd.reference":{source:"iana"},"application/vnd.nearst.inv+json":{source:"iana",compressible:!0},"application/vnd.nebumind.line":{source:"iana"},"application/vnd.nervana":{source:"iana"},"application/vnd.netfpx":{source:"iana"},"application/vnd.neurolanguage.nlu":{source:"iana",extensions:["nlu"]},"application/vnd.nimn":{source:"iana"},"application/vnd.nintendo.nitro.rom":{source:"iana"},"application/vnd.nintendo.snes.rom":{source:"iana"},"application/vnd.nitf":{source:"iana",extensions:["ntf","nitf"]},"application/vnd.noblenet-directory":{source:"iana",extensions:["nnd"]},"application/vnd.noblenet-sealer":{source:"iana",extensions:["nns"]},"application/vnd.noblenet-web":{source:"iana",extensions:["nnw"]},"application/vnd.nokia.catalogs":{source:"iana"},"application/vnd.nokia.conml+wbxml":{source:"iana"},"application/vnd.nokia.conml+xml":{source:"iana",compressible:!0},"application/vnd.nokia.iptv.config+xml":{source:"iana",compressible:!0},"application/vnd.nokia.isds-radio-presets":{source:"iana"},"application/vnd.nokia.landmark+wbxml":{source:"iana"},"application/vnd.nokia.landmark+xml":{source:"iana",compressible:!0},"application/vnd.nokia.landmarkcollection+xml":{source:"iana",compressible:!0},"application/vnd.nokia.n-gage.ac+xml":{source:"iana",compressible:!0,extensions:["ac"]},"application/vnd.nokia.n-gage.data":{source:"iana",extensions:["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{source:"iana",extensions:["n-gage"]},"application/vnd.nokia.ncd":{source:"iana"},"application/vnd.nokia.pcd+wbxml":{source:"iana"},"application/vnd.nokia.pcd+xml":{source:"iana",compressible:!0},"application/vnd.nokia.radio-preset":{source:"iana",extensions:["rpst"]},"application/vnd.nokia.radio-presets":{source:"iana",extensions:["rpss"]},"application/vnd.novadigm.edm":{source:"iana",extensions:["edm"]},"application/vnd.novadigm.edx":{source:"iana",extensions:["edx"]},"application/vnd.novadigm.ext":{source:"iana",extensions:["ext"]},"application/vnd.ntt-local.content-share":{source:"iana"},"application/vnd.ntt-local.file-transfer":{source:"iana"},"application/vnd.ntt-local.ogw_remote-access":{source:"iana"},"application/vnd.ntt-local.sip-ta_remote":{source:"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{source:"iana"},"application/vnd.oasis.opendocument.chart":{source:"iana",extensions:["odc"]},"application/vnd.oasis.opendocument.chart-template":{source:"iana",extensions:["otc"]},"application/vnd.oasis.opendocument.database":{source:"iana",extensions:["odb"]},"application/vnd.oasis.opendocument.formula":{source:"iana",extensions:["odf"]},"application/vnd.oasis.opendocument.formula-template":{source:"iana",extensions:["odft"]},"application/vnd.oasis.opendocument.graphics":{source:"iana",compressible:!1,extensions:["odg"]},"application/vnd.oasis.opendocument.graphics-template":{source:"iana",extensions:["otg"]},"application/vnd.oasis.opendocument.image":{source:"iana",extensions:["odi"]},"application/vnd.oasis.opendocument.image-template":{source:"iana",extensions:["oti"]},"application/vnd.oasis.opendocument.presentation":{source:"iana",compressible:!1,extensions:["odp"]},"application/vnd.oasis.opendocument.presentation-template":{source:"iana",extensions:["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{source:"iana",compressible:!1,extensions:["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{source:"iana",extensions:["ots"]},"application/vnd.oasis.opendocument.text":{source:"iana",compressible:!1,extensions:["odt"]},"application/vnd.oasis.opendocument.text-master":{source:"iana",extensions:["odm"]},"application/vnd.oasis.opendocument.text-template":{source:"iana",extensions:["ott"]},"application/vnd.oasis.opendocument.text-web":{source:"iana",extensions:["oth"]},"application/vnd.obn":{source:"iana"},"application/vnd.ocf+cbor":{source:"iana"},"application/vnd.oci.image.manifest.v1+json":{source:"iana",compressible:!0},"application/vnd.oftn.l10n+json":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessdownload+xml":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessstreaming+xml":{source:"iana",compressible:!0},"application/vnd.oipf.cspg-hexbinary":{source:"iana"},"application/vnd.oipf.dae.svg+xml":{source:"iana",compressible:!0},"application/vnd.oipf.dae.xhtml+xml":{source:"iana",compressible:!0},"application/vnd.oipf.mippvcontrolmessage+xml":{source:"iana",compressible:!0},"application/vnd.oipf.pae.gem":{source:"iana"},"application/vnd.oipf.spdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.oipf.spdlist+xml":{source:"iana",compressible:!0},"application/vnd.oipf.ueprofile+xml":{source:"iana",compressible:!0},"application/vnd.oipf.userprofile+xml":{source:"iana",compressible:!0},"application/vnd.olpc-sugar":{source:"iana",extensions:["xo"]},"application/vnd.oma-scws-config":{source:"iana"},"application/vnd.oma-scws-http-request":{source:"iana"},"application/vnd.oma-scws-http-response":{source:"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.drm-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.imd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.ltkm":{source:"iana"},"application/vnd.oma.bcast.notification+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.provisioningtrigger":{source:"iana"},"application/vnd.oma.bcast.sgboot":{source:"iana"},"application/vnd.oma.bcast.sgdd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sgdu":{source:"iana"},"application/vnd.oma.bcast.simple-symbol-container":{source:"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sprov+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.stkm":{source:"iana"},"application/vnd.oma.cab-address-book+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-feature-handler+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-pcc+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-subs-invite+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-user-prefs+xml":{source:"iana",compressible:!0},"application/vnd.oma.dcd":{source:"iana"},"application/vnd.oma.dcdc":{source:"iana"},"application/vnd.oma.dd2+xml":{source:"iana",compressible:!0,extensions:["dd2"]},"application/vnd.oma.drm.risd+xml":{source:"iana",compressible:!0},"application/vnd.oma.group-usage-list+xml":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+cbor":{source:"iana"},"application/vnd.oma.lwm2m+json":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+tlv":{source:"iana"},"application/vnd.oma.pal+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.detailed-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.final-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.groups+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.invocation-descriptor+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.optimized-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.push":{source:"iana"},"application/vnd.oma.scidm.messages+xml":{source:"iana",compressible:!0},"application/vnd.oma.xcap-directory+xml":{source:"iana",compressible:!0},"application/vnd.omads-email+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-file+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-folder+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omaloc-supl-init":{source:"iana"},"application/vnd.onepager":{source:"iana"},"application/vnd.onepagertamp":{source:"iana"},"application/vnd.onepagertamx":{source:"iana"},"application/vnd.onepagertat":{source:"iana"},"application/vnd.onepagertatp":{source:"iana"},"application/vnd.onepagertatx":{source:"iana"},"application/vnd.openblox.game+xml":{source:"iana",compressible:!0,extensions:["obgx"]},"application/vnd.openblox.game-binary":{source:"iana"},"application/vnd.openeye.oeb":{source:"iana"},"application/vnd.openofficeorg.extension":{source:"apache",extensions:["oxt"]},"application/vnd.openstreetmap.data+xml":{source:"iana",compressible:!0,extensions:["osm"]},"application/vnd.opentimestamps.ots":{source:"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawing+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{source:"iana",compressible:!1,extensions:["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slide":{source:"iana",extensions:["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{source:"iana",extensions:["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.template":{source:"iana",extensions:["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{source:"iana",compressible:!1,extensions:["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{source:"iana",extensions:["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.theme+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.vmldrawing":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{source:"iana",compressible:!1,extensions:["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{source:"iana",extensions:["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.core-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.relationships+xml":{source:"iana",compressible:!0},"application/vnd.oracle.resource+json":{source:"iana",compressible:!0},"application/vnd.orange.indata":{source:"iana"},"application/vnd.osa.netdeploy":{source:"iana"},"application/vnd.osgeo.mapguide.package":{source:"iana",extensions:["mgp"]},"application/vnd.osgi.bundle":{source:"iana"},"application/vnd.osgi.dp":{source:"iana",extensions:["dp"]},"application/vnd.osgi.subsystem":{source:"iana",extensions:["esa"]},"application/vnd.otps.ct-kip+xml":{source:"iana",compressible:!0},"application/vnd.oxli.countgraph":{source:"iana"},"application/vnd.pagerduty+json":{source:"iana",compressible:!0},"application/vnd.palm":{source:"iana",extensions:["pdb","pqa","oprc"]},"application/vnd.panoply":{source:"iana"},"application/vnd.paos.xml":{source:"iana"},"application/vnd.patentdive":{source:"iana"},"application/vnd.patientecommsdoc":{source:"iana"},"application/vnd.pawaafile":{source:"iana",extensions:["paw"]},"application/vnd.pcos":{source:"iana"},"application/vnd.pg.format":{source:"iana",extensions:["str"]},"application/vnd.pg.osasli":{source:"iana",extensions:["ei6"]},"application/vnd.piaccess.application-licence":{source:"iana"},"application/vnd.picsel":{source:"iana",extensions:["efif"]},"application/vnd.pmi.widget":{source:"iana",extensions:["wg"]},"application/vnd.poc.group-advertisement+xml":{source:"iana",compressible:!0},"application/vnd.pocketlearn":{source:"iana",extensions:["plf"]},"application/vnd.powerbuilder6":{source:"iana",extensions:["pbd"]},"application/vnd.powerbuilder6-s":{source:"iana"},"application/vnd.powerbuilder7":{source:"iana"},"application/vnd.powerbuilder7-s":{source:"iana"},"application/vnd.powerbuilder75":{source:"iana"},"application/vnd.powerbuilder75-s":{source:"iana"},"application/vnd.preminet":{source:"iana"},"application/vnd.previewsystems.box":{source:"iana",extensions:["box"]},"application/vnd.proteus.magazine":{source:"iana",extensions:["mgz"]},"application/vnd.psfs":{source:"iana"},"application/vnd.publishare-delta-tree":{source:"iana",extensions:["qps"]},"application/vnd.pvi.ptid1":{source:"iana",extensions:["ptid"]},"application/vnd.pwg-multiplexed":{source:"iana"},"application/vnd.pwg-xhtml-print+xml":{source:"iana",compressible:!0},"application/vnd.qualcomm.brew-app-res":{source:"iana"},"application/vnd.quarantainenet":{source:"iana"},"application/vnd.quark.quarkxpress":{source:"iana",extensions:["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{source:"iana"},"application/vnd.radisys.moml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conn+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-stream+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-base+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-detect+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-group+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-speech+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-transform+xml":{source:"iana",compressible:!0},"application/vnd.rainstor.data":{source:"iana"},"application/vnd.rapid":{source:"iana"},"application/vnd.rar":{source:"iana",extensions:["rar"]},"application/vnd.realvnc.bed":{source:"iana",extensions:["bed"]},"application/vnd.recordare.musicxml":{source:"iana",extensions:["mxl"]},"application/vnd.recordare.musicxml+xml":{source:"iana",compressible:!0,extensions:["musicxml"]},"application/vnd.renlearn.rlprint":{source:"iana"},"application/vnd.resilient.logic":{source:"iana"},"application/vnd.restful+json":{source:"iana",compressible:!0},"application/vnd.rig.cryptonote":{source:"iana",extensions:["cryptonote"]},"application/vnd.rim.cod":{source:"apache",extensions:["cod"]},"application/vnd.rn-realmedia":{source:"apache",extensions:["rm"]},"application/vnd.rn-realmedia-vbr":{source:"apache",extensions:["rmvb"]},"application/vnd.route66.link66+xml":{source:"iana",compressible:!0,extensions:["link66"]},"application/vnd.rs-274x":{source:"iana"},"application/vnd.ruckus.download":{source:"iana"},"application/vnd.s3sms":{source:"iana"},"application/vnd.sailingtracker.track":{source:"iana",extensions:["st"]},"application/vnd.sar":{source:"iana"},"application/vnd.sbm.cid":{source:"iana"},"application/vnd.sbm.mid2":{source:"iana"},"application/vnd.scribus":{source:"iana"},"application/vnd.sealed.3df":{source:"iana"},"application/vnd.sealed.csf":{source:"iana"},"application/vnd.sealed.doc":{source:"iana"},"application/vnd.sealed.eml":{source:"iana"},"application/vnd.sealed.mht":{source:"iana"},"application/vnd.sealed.net":{source:"iana"},"application/vnd.sealed.ppt":{source:"iana"},"application/vnd.sealed.tiff":{source:"iana"},"application/vnd.sealed.xls":{source:"iana"},"application/vnd.sealedmedia.softseal.html":{source:"iana"},"application/vnd.sealedmedia.softseal.pdf":{source:"iana"},"application/vnd.seemail":{source:"iana",extensions:["see"]},"application/vnd.seis+json":{source:"iana",compressible:!0},"application/vnd.sema":{source:"iana",extensions:["sema"]},"application/vnd.semd":{source:"iana",extensions:["semd"]},"application/vnd.semf":{source:"iana",extensions:["semf"]},"application/vnd.shade-save-file":{source:"iana"},"application/vnd.shana.informed.formdata":{source:"iana",extensions:["ifm"]},"application/vnd.shana.informed.formtemplate":{source:"iana",extensions:["itp"]},"application/vnd.shana.informed.interchange":{source:"iana",extensions:["iif"]},"application/vnd.shana.informed.package":{source:"iana",extensions:["ipk"]},"application/vnd.shootproof+json":{source:"iana",compressible:!0},"application/vnd.shopkick+json":{source:"iana",compressible:!0},"application/vnd.shp":{source:"iana"},"application/vnd.shx":{source:"iana"},"application/vnd.sigrok.session":{source:"iana"},"application/vnd.simtech-mindmapper":{source:"iana",extensions:["twd","twds"]},"application/vnd.siren+json":{source:"iana",compressible:!0},"application/vnd.smaf":{source:"iana",extensions:["mmf"]},"application/vnd.smart.notebook":{source:"iana"},"application/vnd.smart.teacher":{source:"iana",extensions:["teacher"]},"application/vnd.snesdev-page-table":{source:"iana"},"application/vnd.software602.filler.form+xml":{source:"iana",compressible:!0,extensions:["fo"]},"application/vnd.software602.filler.form-xml-zip":{source:"iana"},"application/vnd.solent.sdkm+xml":{source:"iana",compressible:!0,extensions:["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{source:"iana",extensions:["dxp"]},"application/vnd.spotfire.sfs":{source:"iana",extensions:["sfs"]},"application/vnd.sqlite3":{source:"iana"},"application/vnd.sss-cod":{source:"iana"},"application/vnd.sss-dtf":{source:"iana"},"application/vnd.sss-ntf":{source:"iana"},"application/vnd.stardivision.calc":{source:"apache",extensions:["sdc"]},"application/vnd.stardivision.draw":{source:"apache",extensions:["sda"]},"application/vnd.stardivision.impress":{source:"apache",extensions:["sdd"]},"application/vnd.stardivision.math":{source:"apache",extensions:["smf"]},"application/vnd.stardivision.writer":{source:"apache",extensions:["sdw","vor"]},"application/vnd.stardivision.writer-global":{source:"apache",extensions:["sgl"]},"application/vnd.stepmania.package":{source:"iana",extensions:["smzip"]},"application/vnd.stepmania.stepchart":{source:"iana",extensions:["sm"]},"application/vnd.street-stream":{source:"iana"},"application/vnd.sun.wadl+xml":{source:"iana",compressible:!0,extensions:["wadl"]},"application/vnd.sun.xml.calc":{source:"apache",extensions:["sxc"]},"application/vnd.sun.xml.calc.template":{source:"apache",extensions:["stc"]},"application/vnd.sun.xml.draw":{source:"apache",extensions:["sxd"]},"application/vnd.sun.xml.draw.template":{source:"apache",extensions:["std"]},"application/vnd.sun.xml.impress":{source:"apache",extensions:["sxi"]},"application/vnd.sun.xml.impress.template":{source:"apache",extensions:["sti"]},"application/vnd.sun.xml.math":{source:"apache",extensions:["sxm"]},"application/vnd.sun.xml.writer":{source:"apache",extensions:["sxw"]},"application/vnd.sun.xml.writer.global":{source:"apache",extensions:["sxg"]},"application/vnd.sun.xml.writer.template":{source:"apache",extensions:["stw"]},"application/vnd.sus-calendar":{source:"iana",extensions:["sus","susp"]},"application/vnd.svd":{source:"iana",extensions:["svd"]},"application/vnd.swiftview-ics":{source:"iana"},"application/vnd.sycle+xml":{source:"iana",compressible:!0},"application/vnd.syft+json":{source:"iana",compressible:!0},"application/vnd.symbian.install":{source:"apache",extensions:["sis","sisx"]},"application/vnd.syncml+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xsm"]},"application/vnd.syncml.dm+wbxml":{source:"iana",charset:"UTF-8",extensions:["bdm"]},"application/vnd.syncml.dm+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xdm"]},"application/vnd.syncml.dm.notification":{source:"iana"},"application/vnd.syncml.dmddf+wbxml":{source:"iana"},"application/vnd.syncml.dmddf+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{source:"iana"},"application/vnd.syncml.dmtnds+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.syncml.ds.notification":{source:"iana"},"application/vnd.tableschema+json":{source:"iana",compressible:!0},"application/vnd.tao.intent-module-archive":{source:"iana",extensions:["tao"]},"application/vnd.tcpdump.pcap":{source:"iana",extensions:["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{source:"iana",compressible:!0},"application/vnd.tmd.mediaflex.api+xml":{source:"iana",compressible:!0},"application/vnd.tml":{source:"iana"},"application/vnd.tmobile-livetv":{source:"iana",extensions:["tmo"]},"application/vnd.tri.onesource":{source:"iana"},"application/vnd.trid.tpt":{source:"iana",extensions:["tpt"]},"application/vnd.triscape.mxs":{source:"iana",extensions:["mxs"]},"application/vnd.trueapp":{source:"iana",extensions:["tra"]},"application/vnd.truedoc":{source:"iana"},"application/vnd.ubisoft.webplayer":{source:"iana"},"application/vnd.ufdl":{source:"iana",extensions:["ufd","ufdl"]},"application/vnd.uiq.theme":{source:"iana",extensions:["utz"]},"application/vnd.umajin":{source:"iana",extensions:["umj"]},"application/vnd.unity":{source:"iana",extensions:["unityweb"]},"application/vnd.uoml+xml":{source:"iana",compressible:!0,extensions:["uoml"]},"application/vnd.uplanet.alert":{source:"iana"},"application/vnd.uplanet.alert-wbxml":{source:"iana"},"application/vnd.uplanet.bearer-choice":{source:"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{source:"iana"},"application/vnd.uplanet.cacheop":{source:"iana"},"application/vnd.uplanet.cacheop-wbxml":{source:"iana"},"application/vnd.uplanet.channel":{source:"iana"},"application/vnd.uplanet.channel-wbxml":{source:"iana"},"application/vnd.uplanet.list":{source:"iana"},"application/vnd.uplanet.list-wbxml":{source:"iana"},"application/vnd.uplanet.listcmd":{source:"iana"},"application/vnd.uplanet.listcmd-wbxml":{source:"iana"},"application/vnd.uplanet.signal":{source:"iana"},"application/vnd.uri-map":{source:"iana"},"application/vnd.valve.source.material":{source:"iana"},"application/vnd.vcx":{source:"iana",extensions:["vcx"]},"application/vnd.vd-study":{source:"iana"},"application/vnd.vectorworks":{source:"iana"},"application/vnd.vel+json":{source:"iana",compressible:!0},"application/vnd.verimatrix.vcas":{source:"iana"},"application/vnd.veritone.aion+json":{source:"iana",compressible:!0},"application/vnd.veryant.thin":{source:"iana"},"application/vnd.ves.encrypted":{source:"iana"},"application/vnd.vidsoft.vidconference":{source:"iana"},"application/vnd.visio":{source:"iana",extensions:["vsd","vst","vss","vsw"]},"application/vnd.visionary":{source:"iana",extensions:["vis"]},"application/vnd.vividence.scriptfile":{source:"iana"},"application/vnd.vsf":{source:"iana",extensions:["vsf"]},"application/vnd.wap.sic":{source:"iana"},"application/vnd.wap.slc":{source:"iana"},"application/vnd.wap.wbxml":{source:"iana",charset:"UTF-8",extensions:["wbxml"]},"application/vnd.wap.wmlc":{source:"iana",extensions:["wmlc"]},"application/vnd.wap.wmlscriptc":{source:"iana",extensions:["wmlsc"]},"application/vnd.webturbo":{source:"iana",extensions:["wtb"]},"application/vnd.wfa.dpp":{source:"iana"},"application/vnd.wfa.p2p":{source:"iana"},"application/vnd.wfa.wsc":{source:"iana"},"application/vnd.windows.devicepairing":{source:"iana"},"application/vnd.wmc":{source:"iana"},"application/vnd.wmf.bootstrap":{source:"iana"},"application/vnd.wolfram.mathematica":{source:"iana"},"application/vnd.wolfram.mathematica.package":{source:"iana"},"application/vnd.wolfram.player":{source:"iana",extensions:["nbp"]},"application/vnd.wordperfect":{source:"iana",extensions:["wpd"]},"application/vnd.wqd":{source:"iana",extensions:["wqd"]},"application/vnd.wrq-hp3000-labelled":{source:"iana"},"application/vnd.wt.stf":{source:"iana",extensions:["stf"]},"application/vnd.wv.csp+wbxml":{source:"iana"},"application/vnd.wv.csp+xml":{source:"iana",compressible:!0},"application/vnd.wv.ssp+xml":{source:"iana",compressible:!0},"application/vnd.xacml+json":{source:"iana",compressible:!0},"application/vnd.xara":{source:"iana",extensions:["xar"]},"application/vnd.xfdl":{source:"iana",extensions:["xfdl"]},"application/vnd.xfdl.webform":{source:"iana"},"application/vnd.xmi+xml":{source:"iana",compressible:!0},"application/vnd.xmpie.cpkg":{source:"iana"},"application/vnd.xmpie.dpkg":{source:"iana"},"application/vnd.xmpie.plan":{source:"iana"},"application/vnd.xmpie.ppkg":{source:"iana"},"application/vnd.xmpie.xlim":{source:"iana"},"application/vnd.yamaha.hv-dic":{source:"iana",extensions:["hvd"]},"application/vnd.yamaha.hv-script":{source:"iana",extensions:["hvs"]},"application/vnd.yamaha.hv-voice":{source:"iana",extensions:["hvp"]},"application/vnd.yamaha.openscoreformat":{source:"iana",extensions:["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{source:"iana",compressible:!0,extensions:["osfpvg"]},"application/vnd.yamaha.remote-setup":{source:"iana"},"application/vnd.yamaha.smaf-audio":{source:"iana",extensions:["saf"]},"application/vnd.yamaha.smaf-phrase":{source:"iana",extensions:["spf"]},"application/vnd.yamaha.through-ngn":{source:"iana"},"application/vnd.yamaha.tunnel-udpencap":{source:"iana"},"application/vnd.yaoweme":{source:"iana"},"application/vnd.yellowriver-custom-menu":{source:"iana",extensions:["cmp"]},"application/vnd.youtube.yt":{source:"iana"},"application/vnd.zul":{source:"iana",extensions:["zir","zirz"]},"application/vnd.zzazz.deck+xml":{source:"iana",compressible:!0,extensions:["zaz"]},"application/voicexml+xml":{source:"iana",compressible:!0,extensions:["vxml"]},"application/voucher-cms+json":{source:"iana",compressible:!0},"application/vq-rtcpxr":{source:"iana"},"application/wasm":{source:"iana",compressible:!0,extensions:["wasm"]},"application/watcherinfo+xml":{source:"iana",compressible:!0,extensions:["wif"]},"application/webpush-options+json":{source:"iana",compressible:!0},"application/whoispp-query":{source:"iana"},"application/whoispp-response":{source:"iana"},"application/widget":{source:"iana",extensions:["wgt"]},"application/winhlp":{source:"apache",extensions:["hlp"]},"application/wita":{source:"iana"},"application/wordperfect5.1":{source:"iana"},"application/wsdl+xml":{source:"iana",compressible:!0,extensions:["wsdl"]},"application/wspolicy+xml":{source:"iana",compressible:!0,extensions:["wspolicy"]},"application/x-7z-compressed":{source:"apache",compressible:!1,extensions:["7z"]},"application/x-abiword":{source:"apache",extensions:["abw"]},"application/x-ace-compressed":{source:"apache",extensions:["ace"]},"application/x-amf":{source:"apache"},"application/x-apple-diskimage":{source:"apache",extensions:["dmg"]},"application/x-arj":{compressible:!1,extensions:["arj"]},"application/x-authorware-bin":{source:"apache",extensions:["aab","x32","u32","vox"]},"application/x-authorware-map":{source:"apache",extensions:["aam"]},"application/x-authorware-seg":{source:"apache",extensions:["aas"]},"application/x-bcpio":{source:"apache",extensions:["bcpio"]},"application/x-bdoc":{compressible:!1,extensions:["bdoc"]},"application/x-bittorrent":{source:"apache",extensions:["torrent"]},"application/x-blorb":{source:"apache",extensions:["blb","blorb"]},"application/x-bzip":{source:"apache",compressible:!1,extensions:["bz"]},"application/x-bzip2":{source:"apache",compressible:!1,extensions:["bz2","boz"]},"application/x-cbr":{source:"apache",extensions:["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{source:"apache",extensions:["vcd"]},"application/x-cfs-compressed":{source:"apache",extensions:["cfs"]},"application/x-chat":{source:"apache",extensions:["chat"]},"application/x-chess-pgn":{source:"apache",extensions:["pgn"]},"application/x-chrome-extension":{extensions:["crx"]},"application/x-cocoa":{source:"nginx",extensions:["cco"]},"application/x-compress":{source:"apache"},"application/x-conference":{source:"apache",extensions:["nsc"]},"application/x-cpio":{source:"apache",extensions:["cpio"]},"application/x-csh":{source:"apache",extensions:["csh"]},"application/x-deb":{compressible:!1},"application/x-debian-package":{source:"apache",extensions:["deb","udeb"]},"application/x-dgc-compressed":{source:"apache",extensions:["dgc"]},"application/x-director":{source:"apache",extensions:["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{source:"apache",extensions:["wad"]},"application/x-dtbncx+xml":{source:"apache",compressible:!0,extensions:["ncx"]},"application/x-dtbook+xml":{source:"apache",compressible:!0,extensions:["dtb"]},"application/x-dtbresource+xml":{source:"apache",compressible:!0,extensions:["res"]},"application/x-dvi":{source:"apache",compressible:!1,extensions:["dvi"]},"application/x-envoy":{source:"apache",extensions:["evy"]},"application/x-eva":{source:"apache",extensions:["eva"]},"application/x-font-bdf":{source:"apache",extensions:["bdf"]},"application/x-font-dos":{source:"apache"},"application/x-font-framemaker":{source:"apache"},"application/x-font-ghostscript":{source:"apache",extensions:["gsf"]},"application/x-font-libgrx":{source:"apache"},"application/x-font-linux-psf":{source:"apache",extensions:["psf"]},"application/x-font-pcf":{source:"apache",extensions:["pcf"]},"application/x-font-snf":{source:"apache",extensions:["snf"]},"application/x-font-speedo":{source:"apache"},"application/x-font-sunos-news":{source:"apache"},"application/x-font-type1":{source:"apache",extensions:["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{source:"apache"},"application/x-freearc":{source:"apache",extensions:["arc"]},"application/x-futuresplash":{source:"apache",extensions:["spl"]},"application/x-gca-compressed":{source:"apache",extensions:["gca"]},"application/x-glulx":{source:"apache",extensions:["ulx"]},"application/x-gnumeric":{source:"apache",extensions:["gnumeric"]},"application/x-gramps-xml":{source:"apache",extensions:["gramps"]},"application/x-gtar":{source:"apache",extensions:["gtar"]},"application/x-gzip":{source:"apache"},"application/x-hdf":{source:"apache",extensions:["hdf"]},"application/x-httpd-php":{compressible:!0,extensions:["php"]},"application/x-install-instructions":{source:"apache",extensions:["install"]},"application/x-iso9660-image":{source:"apache",extensions:["iso"]},"application/x-iwork-keynote-sffkey":{extensions:["key"]},"application/x-iwork-numbers-sffnumbers":{extensions:["numbers"]},"application/x-iwork-pages-sffpages":{extensions:["pages"]},"application/x-java-archive-diff":{source:"nginx",extensions:["jardiff"]},"application/x-java-jnlp-file":{source:"apache",compressible:!1,extensions:["jnlp"]},"application/x-javascript":{compressible:!0},"application/x-keepass2":{extensions:["kdbx"]},"application/x-latex":{source:"apache",compressible:!1,extensions:["latex"]},"application/x-lua-bytecode":{extensions:["luac"]},"application/x-lzh-compressed":{source:"apache",extensions:["lzh","lha"]},"application/x-makeself":{source:"nginx",extensions:["run"]},"application/x-mie":{source:"apache",extensions:["mie"]},"application/x-mobipocket-ebook":{source:"apache",extensions:["prc","mobi"]},"application/x-mpegurl":{compressible:!1},"application/x-ms-application":{source:"apache",extensions:["application"]},"application/x-ms-shortcut":{source:"apache",extensions:["lnk"]},"application/x-ms-wmd":{source:"apache",extensions:["wmd"]},"application/x-ms-wmz":{source:"apache",extensions:["wmz"]},"application/x-ms-xbap":{source:"apache",extensions:["xbap"]},"application/x-msaccess":{source:"apache",extensions:["mdb"]},"application/x-msbinder":{source:"apache",extensions:["obd"]},"application/x-mscardfile":{source:"apache",extensions:["crd"]},"application/x-msclip":{source:"apache",extensions:["clp"]},"application/x-msdos-program":{extensions:["exe"]},"application/x-msdownload":{source:"apache",extensions:["exe","dll","com","bat","msi"]},"application/x-msmediaview":{source:"apache",extensions:["mvb","m13","m14"]},"application/x-msmetafile":{source:"apache",extensions:["wmf","wmz","emf","emz"]},"application/x-msmoney":{source:"apache",extensions:["mny"]},"application/x-mspublisher":{source:"apache",extensions:["pub"]},"application/x-msschedule":{source:"apache",extensions:["scd"]},"application/x-msterminal":{source:"apache",extensions:["trm"]},"application/x-mswrite":{source:"apache",extensions:["wri"]},"application/x-netcdf":{source:"apache",extensions:["nc","cdf"]},"application/x-ns-proxy-autoconfig":{compressible:!0,extensions:["pac"]},"application/x-nzb":{source:"apache",extensions:["nzb"]},"application/x-perl":{source:"nginx",extensions:["pl","pm"]},"application/x-pilot":{source:"nginx",extensions:["prc","pdb"]},"application/x-pkcs12":{source:"apache",compressible:!1,extensions:["p12","pfx"]},"application/x-pkcs7-certificates":{source:"apache",extensions:["p7b","spc"]},"application/x-pkcs7-certreqresp":{source:"apache",extensions:["p7r"]},"application/x-pki-message":{source:"iana"},"application/x-rar-compressed":{source:"apache",compressible:!1,extensions:["rar"]},"application/x-redhat-package-manager":{source:"nginx",extensions:["rpm"]},"application/x-research-info-systems":{source:"apache",extensions:["ris"]},"application/x-sea":{source:"nginx",extensions:["sea"]},"application/x-sh":{source:"apache",compressible:!0,extensions:["sh"]},"application/x-shar":{source:"apache",extensions:["shar"]},"application/x-shockwave-flash":{source:"apache",compressible:!1,extensions:["swf"]},"application/x-silverlight-app":{source:"apache",extensions:["xap"]},"application/x-sql":{source:"apache",extensions:["sql"]},"application/x-stuffit":{source:"apache",compressible:!1,extensions:["sit"]},"application/x-stuffitx":{source:"apache",extensions:["sitx"]},"application/x-subrip":{source:"apache",extensions:["srt"]},"application/x-sv4cpio":{source:"apache",extensions:["sv4cpio"]},"application/x-sv4crc":{source:"apache",extensions:["sv4crc"]},"application/x-t3vm-image":{source:"apache",extensions:["t3"]},"application/x-tads":{source:"apache",extensions:["gam"]},"application/x-tar":{source:"apache",compressible:!0,extensions:["tar"]},"application/x-tcl":{source:"apache",extensions:["tcl","tk"]},"application/x-tex":{source:"apache",extensions:["tex"]},"application/x-tex-tfm":{source:"apache",extensions:["tfm"]},"application/x-texinfo":{source:"apache",extensions:["texinfo","texi"]},"application/x-tgif":{source:"apache",extensions:["obj"]},"application/x-ustar":{source:"apache",extensions:["ustar"]},"application/x-virtualbox-hdd":{compressible:!0,extensions:["hdd"]},"application/x-virtualbox-ova":{compressible:!0,extensions:["ova"]},"application/x-virtualbox-ovf":{compressible:!0,extensions:["ovf"]},"application/x-virtualbox-vbox":{compressible:!0,extensions:["vbox"]},"application/x-virtualbox-vbox-extpack":{compressible:!1,extensions:["vbox-extpack"]},"application/x-virtualbox-vdi":{compressible:!0,extensions:["vdi"]},"application/x-virtualbox-vhd":{compressible:!0,extensions:["vhd"]},"application/x-virtualbox-vmdk":{compressible:!0,extensions:["vmdk"]},"application/x-wais-source":{source:"apache",extensions:["src"]},"application/x-web-app-manifest+json":{compressible:!0,extensions:["webapp"]},"application/x-www-form-urlencoded":{source:"iana",compressible:!0},"application/x-x509-ca-cert":{source:"iana",extensions:["der","crt","pem"]},"application/x-x509-ca-ra-cert":{source:"iana"},"application/x-x509-next-ca-cert":{source:"iana"},"application/x-xfig":{source:"apache",extensions:["fig"]},"application/x-xliff+xml":{source:"apache",compressible:!0,extensions:["xlf"]},"application/x-xpinstall":{source:"apache",compressible:!1,extensions:["xpi"]},"application/x-xz":{source:"apache",extensions:["xz"]},"application/x-zmachine":{source:"apache",extensions:["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{source:"iana"},"application/xacml+xml":{source:"iana",compressible:!0},"application/xaml+xml":{source:"apache",compressible:!0,extensions:["xaml"]},"application/xcap-att+xml":{source:"iana",compressible:!0,extensions:["xav"]},"application/xcap-caps+xml":{source:"iana",compressible:!0,extensions:["xca"]},"application/xcap-diff+xml":{source:"iana",compressible:!0,extensions:["xdf"]},"application/xcap-el+xml":{source:"iana",compressible:!0,extensions:["xel"]},"application/xcap-error+xml":{source:"iana",compressible:!0},"application/xcap-ns+xml":{source:"iana",compressible:!0,extensions:["xns"]},"application/xcon-conference-info+xml":{source:"iana",compressible:!0},"application/xcon-conference-info-diff+xml":{source:"iana",compressible:!0},"application/xenc+xml":{source:"iana",compressible:!0,extensions:["xenc"]},"application/xhtml+xml":{source:"iana",compressible:!0,extensions:["xhtml","xht"]},"application/xhtml-voice+xml":{source:"apache",compressible:!0},"application/xliff+xml":{source:"iana",compressible:!0,extensions:["xlf"]},"application/xml":{source:"iana",compressible:!0,extensions:["xml","xsl","xsd","rng"]},"application/xml-dtd":{source:"iana",compressible:!0,extensions:["dtd"]},"application/xml-external-parsed-entity":{source:"iana"},"application/xml-patch+xml":{source:"iana",compressible:!0},"application/xmpp+xml":{source:"iana",compressible:!0},"application/xop+xml":{source:"iana",compressible:!0,extensions:["xop"]},"application/xproc+xml":{source:"apache",compressible:!0,extensions:["xpl"]},"application/xslt+xml":{source:"iana",compressible:!0,extensions:["xsl","xslt"]},"application/xspf+xml":{source:"apache",compressible:!0,extensions:["xspf"]},"application/xv+xml":{source:"iana",compressible:!0,extensions:["mxml","xhvml","xvml","xvm"]},"application/yang":{source:"iana",extensions:["yang"]},"application/yang-data+json":{source:"iana",compressible:!0},"application/yang-data+xml":{source:"iana",compressible:!0},"application/yang-patch+json":{source:"iana",compressible:!0},"application/yang-patch+xml":{source:"iana",compressible:!0},"application/yin+xml":{source:"iana",compressible:!0,extensions:["yin"]},"application/zip":{source:"iana",compressible:!1,extensions:["zip"]},"application/zlib":{source:"iana"},"application/zstd":{source:"iana"},"audio/1d-interleaved-parityfec":{source:"iana"},"audio/32kadpcm":{source:"iana"},"audio/3gpp":{source:"iana",compressible:!1,extensions:["3gpp"]},"audio/3gpp2":{source:"iana"},"audio/aac":{source:"iana"},"audio/ac3":{source:"iana"},"audio/adpcm":{source:"apache",extensions:["adp"]},"audio/amr":{source:"iana",extensions:["amr"]},"audio/amr-wb":{source:"iana"},"audio/amr-wb+":{source:"iana"},"audio/aptx":{source:"iana"},"audio/asc":{source:"iana"},"audio/atrac-advanced-lossless":{source:"iana"},"audio/atrac-x":{source:"iana"},"audio/atrac3":{source:"iana"},"audio/basic":{source:"iana",compressible:!1,extensions:["au","snd"]},"audio/bv16":{source:"iana"},"audio/bv32":{source:"iana"},"audio/clearmode":{source:"iana"},"audio/cn":{source:"iana"},"audio/dat12":{source:"iana"},"audio/dls":{source:"iana"},"audio/dsr-es201108":{source:"iana"},"audio/dsr-es202050":{source:"iana"},"audio/dsr-es202211":{source:"iana"},"audio/dsr-es202212":{source:"iana"},"audio/dv":{source:"iana"},"audio/dvi4":{source:"iana"},"audio/eac3":{source:"iana"},"audio/encaprtp":{source:"iana"},"audio/evrc":{source:"iana"},"audio/evrc-qcp":{source:"iana"},"audio/evrc0":{source:"iana"},"audio/evrc1":{source:"iana"},"audio/evrcb":{source:"iana"},"audio/evrcb0":{source:"iana"},"audio/evrcb1":{source:"iana"},"audio/evrcnw":{source:"iana"},"audio/evrcnw0":{source:"iana"},"audio/evrcnw1":{source:"iana"},"audio/evrcwb":{source:"iana"},"audio/evrcwb0":{source:"iana"},"audio/evrcwb1":{source:"iana"},"audio/evs":{source:"iana"},"audio/flexfec":{source:"iana"},"audio/fwdred":{source:"iana"},"audio/g711-0":{source:"iana"},"audio/g719":{source:"iana"},"audio/g722":{source:"iana"},"audio/g7221":{source:"iana"},"audio/g723":{source:"iana"},"audio/g726-16":{source:"iana"},"audio/g726-24":{source:"iana"},"audio/g726-32":{source:"iana"},"audio/g726-40":{source:"iana"},"audio/g728":{source:"iana"},"audio/g729":{source:"iana"},"audio/g7291":{source:"iana"},"audio/g729d":{source:"iana"},"audio/g729e":{source:"iana"},"audio/gsm":{source:"iana"},"audio/gsm-efr":{source:"iana"},"audio/gsm-hr-08":{source:"iana"},"audio/ilbc":{source:"iana"},"audio/ip-mr_v2.5":{source:"iana"},"audio/isac":{source:"apache"},"audio/l16":{source:"iana"},"audio/l20":{source:"iana"},"audio/l24":{source:"iana",compressible:!1},"audio/l8":{source:"iana"},"audio/lpc":{source:"iana"},"audio/melp":{source:"iana"},"audio/melp1200":{source:"iana"},"audio/melp2400":{source:"iana"},"audio/melp600":{source:"iana"},"audio/mhas":{source:"iana"},"audio/midi":{source:"apache",extensions:["mid","midi","kar","rmi"]},"audio/mobile-xmf":{source:"iana",extensions:["mxmf"]},"audio/mp3":{compressible:!1,extensions:["mp3"]},"audio/mp4":{source:"iana",compressible:!1,extensions:["m4a","mp4a"]},"audio/mp4a-latm":{source:"iana"},"audio/mpa":{source:"iana"},"audio/mpa-robust":{source:"iana"},"audio/mpeg":{source:"iana",compressible:!1,extensions:["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{source:"iana"},"audio/musepack":{source:"apache"},"audio/ogg":{source:"iana",compressible:!1,extensions:["oga","ogg","spx","opus"]},"audio/opus":{source:"iana"},"audio/parityfec":{source:"iana"},"audio/pcma":{source:"iana"},"audio/pcma-wb":{source:"iana"},"audio/pcmu":{source:"iana"},"audio/pcmu-wb":{source:"iana"},"audio/prs.sid":{source:"iana"},"audio/qcelp":{source:"iana"},"audio/raptorfec":{source:"iana"},"audio/red":{source:"iana"},"audio/rtp-enc-aescm128":{source:"iana"},"audio/rtp-midi":{source:"iana"},"audio/rtploopback":{source:"iana"},"audio/rtx":{source:"iana"},"audio/s3m":{source:"apache",extensions:["s3m"]},"audio/scip":{source:"iana"},"audio/silk":{source:"apache",extensions:["sil"]},"audio/smv":{source:"iana"},"audio/smv-qcp":{source:"iana"},"audio/smv0":{source:"iana"},"audio/sofa":{source:"iana"},"audio/sp-midi":{source:"iana"},"audio/speex":{source:"iana"},"audio/t140c":{source:"iana"},"audio/t38":{source:"iana"},"audio/telephone-event":{source:"iana"},"audio/tetra_acelp":{source:"iana"},"audio/tetra_acelp_bb":{source:"iana"},"audio/tone":{source:"iana"},"audio/tsvcis":{source:"iana"},"audio/uemclip":{source:"iana"},"audio/ulpfec":{source:"iana"},"audio/usac":{source:"iana"},"audio/vdvi":{source:"iana"},"audio/vmr-wb":{source:"iana"},"audio/vnd.3gpp.iufp":{source:"iana"},"audio/vnd.4sb":{source:"iana"},"audio/vnd.audiokoz":{source:"iana"},"audio/vnd.celp":{source:"iana"},"audio/vnd.cisco.nse":{source:"iana"},"audio/vnd.cmles.radio-events":{source:"iana"},"audio/vnd.cns.anp1":{source:"iana"},"audio/vnd.cns.inf1":{source:"iana"},"audio/vnd.dece.audio":{source:"iana",extensions:["uva","uvva"]},"audio/vnd.digital-winds":{source:"iana",extensions:["eol"]},"audio/vnd.dlna.adts":{source:"iana"},"audio/vnd.dolby.heaac.1":{source:"iana"},"audio/vnd.dolby.heaac.2":{source:"iana"},"audio/vnd.dolby.mlp":{source:"iana"},"audio/vnd.dolby.mps":{source:"iana"},"audio/vnd.dolby.pl2":{source:"iana"},"audio/vnd.dolby.pl2x":{source:"iana"},"audio/vnd.dolby.pl2z":{source:"iana"},"audio/vnd.dolby.pulse.1":{source:"iana"},"audio/vnd.dra":{source:"iana",extensions:["dra"]},"audio/vnd.dts":{source:"iana",extensions:["dts"]},"audio/vnd.dts.hd":{source:"iana",extensions:["dtshd"]},"audio/vnd.dts.uhd":{source:"iana"},"audio/vnd.dvb.file":{source:"iana"},"audio/vnd.everad.plj":{source:"iana"},"audio/vnd.hns.audio":{source:"iana"},"audio/vnd.lucent.voice":{source:"iana",extensions:["lvp"]},"audio/vnd.ms-playready.media.pya":{source:"iana",extensions:["pya"]},"audio/vnd.nokia.mobile-xmf":{source:"iana"},"audio/vnd.nortel.vbk":{source:"iana"},"audio/vnd.nuera.ecelp4800":{source:"iana",extensions:["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{source:"iana",extensions:["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{source:"iana",extensions:["ecelp9600"]},"audio/vnd.octel.sbc":{source:"iana"},"audio/vnd.presonus.multitrack":{source:"iana"},"audio/vnd.qcelp":{source:"iana"},"audio/vnd.rhetorex.32kadpcm":{source:"iana"},"audio/vnd.rip":{source:"iana",extensions:["rip"]},"audio/vnd.rn-realaudio":{compressible:!1},"audio/vnd.sealedmedia.softseal.mpeg":{source:"iana"},"audio/vnd.vmx.cvsd":{source:"iana"},"audio/vnd.wave":{compressible:!1},"audio/vorbis":{source:"iana",compressible:!1},"audio/vorbis-config":{source:"iana"},"audio/wav":{compressible:!1,extensions:["wav"]},"audio/wave":{compressible:!1,extensions:["wav"]},"audio/webm":{source:"apache",compressible:!1,extensions:["weba"]},"audio/x-aac":{source:"apache",compressible:!1,extensions:["aac"]},"audio/x-aiff":{source:"apache",extensions:["aif","aiff","aifc"]},"audio/x-caf":{source:"apache",compressible:!1,extensions:["caf"]},"audio/x-flac":{source:"apache",extensions:["flac"]},"audio/x-m4a":{source:"nginx",extensions:["m4a"]},"audio/x-matroska":{source:"apache",extensions:["mka"]},"audio/x-mpegurl":{source:"apache",extensions:["m3u"]},"audio/x-ms-wax":{source:"apache",extensions:["wax"]},"audio/x-ms-wma":{source:"apache",extensions:["wma"]},"audio/x-pn-realaudio":{source:"apache",extensions:["ram","ra"]},"audio/x-pn-realaudio-plugin":{source:"apache",extensions:["rmp"]},"audio/x-realaudio":{source:"nginx",extensions:["ra"]},"audio/x-tta":{source:"apache"},"audio/x-wav":{source:"apache",extensions:["wav"]},"audio/xm":{source:"apache",extensions:["xm"]},"chemical/x-cdx":{source:"apache",extensions:["cdx"]},"chemical/x-cif":{source:"apache",extensions:["cif"]},"chemical/x-cmdf":{source:"apache",extensions:["cmdf"]},"chemical/x-cml":{source:"apache",extensions:["cml"]},"chemical/x-csml":{source:"apache",extensions:["csml"]},"chemical/x-pdb":{source:"apache"},"chemical/x-xyz":{source:"apache",extensions:["xyz"]},"font/collection":{source:"iana",extensions:["ttc"]},"font/otf":{source:"iana",compressible:!0,extensions:["otf"]},"font/sfnt":{source:"iana"},"font/ttf":{source:"iana",compressible:!0,extensions:["ttf"]},"font/woff":{source:"iana",extensions:["woff"]},"font/woff2":{source:"iana",extensions:["woff2"]},"image/aces":{source:"iana",extensions:["exr"]},"image/apng":{compressible:!1,extensions:["apng"]},"image/avci":{source:"iana",extensions:["avci"]},"image/avcs":{source:"iana",extensions:["avcs"]},"image/avif":{source:"iana",compressible:!1,extensions:["avif"]},"image/bmp":{source:"iana",compressible:!0,extensions:["bmp"]},"image/cgm":{source:"iana",extensions:["cgm"]},"image/dicom-rle":{source:"iana",extensions:["drle"]},"image/emf":{source:"iana",extensions:["emf"]},"image/fits":{source:"iana",extensions:["fits"]},"image/g3fax":{source:"iana",extensions:["g3"]},"image/gif":{source:"iana",compressible:!1,extensions:["gif"]},"image/heic":{source:"iana",extensions:["heic"]},"image/heic-sequence":{source:"iana",extensions:["heics"]},"image/heif":{source:"iana",extensions:["heif"]},"image/heif-sequence":{source:"iana",extensions:["heifs"]},"image/hej2k":{source:"iana",extensions:["hej2"]},"image/hsj2":{source:"iana",extensions:["hsj2"]},"image/ief":{source:"iana",extensions:["ief"]},"image/jls":{source:"iana",extensions:["jls"]},"image/jp2":{source:"iana",compressible:!1,extensions:["jp2","jpg2"]},"image/jpeg":{source:"iana",compressible:!1,extensions:["jpeg","jpg","jpe"]},"image/jph":{source:"iana",extensions:["jph"]},"image/jphc":{source:"iana",extensions:["jhc"]},"image/jpm":{source:"iana",compressible:!1,extensions:["jpm"]},"image/jpx":{source:"iana",compressible:!1,extensions:["jpx","jpf"]},"image/jxr":{source:"iana",extensions:["jxr"]},"image/jxra":{source:"iana",extensions:["jxra"]},"image/jxrs":{source:"iana",extensions:["jxrs"]},"image/jxs":{source:"iana",extensions:["jxs"]},"image/jxsc":{source:"iana",extensions:["jxsc"]},"image/jxsi":{source:"iana",extensions:["jxsi"]},"image/jxss":{source:"iana",extensions:["jxss"]},"image/ktx":{source:"iana",extensions:["ktx"]},"image/ktx2":{source:"iana",extensions:["ktx2"]},"image/naplps":{source:"iana"},"image/pjpeg":{compressible:!1},"image/png":{source:"iana",compressible:!1,extensions:["png"]},"image/prs.btif":{source:"iana",extensions:["btif"]},"image/prs.pti":{source:"iana",extensions:["pti"]},"image/pwg-raster":{source:"iana"},"image/sgi":{source:"apache",extensions:["sgi"]},"image/svg+xml":{source:"iana",compressible:!0,extensions:["svg","svgz"]},"image/t38":{source:"iana",extensions:["t38"]},"image/tiff":{source:"iana",compressible:!1,extensions:["tif","tiff"]},"image/tiff-fx":{source:"iana",extensions:["tfx"]},"image/vnd.adobe.photoshop":{source:"iana",compressible:!0,extensions:["psd"]},"image/vnd.airzip.accelerator.azv":{source:"iana",extensions:["azv"]},"image/vnd.cns.inf2":{source:"iana"},"image/vnd.dece.graphic":{source:"iana",extensions:["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{source:"iana",extensions:["djvu","djv"]},"image/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"image/vnd.dwg":{source:"iana",extensions:["dwg"]},"image/vnd.dxf":{source:"iana",extensions:["dxf"]},"image/vnd.fastbidsheet":{source:"iana",extensions:["fbs"]},"image/vnd.fpx":{source:"iana",extensions:["fpx"]},"image/vnd.fst":{source:"iana",extensions:["fst"]},"image/vnd.fujixerox.edmics-mmr":{source:"iana",extensions:["mmr"]},"image/vnd.fujixerox.edmics-rlc":{source:"iana",extensions:["rlc"]},"image/vnd.globalgraphics.pgb":{source:"iana"},"image/vnd.microsoft.icon":{source:"iana",compressible:!0,extensions:["ico"]},"image/vnd.mix":{source:"iana"},"image/vnd.mozilla.apng":{source:"iana"},"image/vnd.ms-dds":{compressible:!0,extensions:["dds"]},"image/vnd.ms-modi":{source:"iana",extensions:["mdi"]},"image/vnd.ms-photo":{source:"apache",extensions:["wdp"]},"image/vnd.net-fpx":{source:"iana",extensions:["npx"]},"image/vnd.pco.b16":{source:"iana",extensions:["b16"]},"image/vnd.radiance":{source:"iana"},"image/vnd.sealed.png":{source:"iana"},"image/vnd.sealedmedia.softseal.gif":{source:"iana"},"image/vnd.sealedmedia.softseal.jpg":{source:"iana"},"image/vnd.svf":{source:"iana"},"image/vnd.tencent.tap":{source:"iana",extensions:["tap"]},"image/vnd.valve.source.texture":{source:"iana",extensions:["vtf"]},"image/vnd.wap.wbmp":{source:"iana",extensions:["wbmp"]},"image/vnd.xiff":{source:"iana",extensions:["xif"]},"image/vnd.zbrush.pcx":{source:"iana",extensions:["pcx"]},"image/webp":{source:"apache",extensions:["webp"]},"image/wmf":{source:"iana",extensions:["wmf"]},"image/x-3ds":{source:"apache",extensions:["3ds"]},"image/x-cmu-raster":{source:"apache",extensions:["ras"]},"image/x-cmx":{source:"apache",extensions:["cmx"]},"image/x-freehand":{source:"apache",extensions:["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{source:"apache",compressible:!0,extensions:["ico"]},"image/x-jng":{source:"nginx",extensions:["jng"]},"image/x-mrsid-image":{source:"apache",extensions:["sid"]},"image/x-ms-bmp":{source:"nginx",compressible:!0,extensions:["bmp"]},"image/x-pcx":{source:"apache",extensions:["pcx"]},"image/x-pict":{source:"apache",extensions:["pic","pct"]},"image/x-portable-anymap":{source:"apache",extensions:["pnm"]},"image/x-portable-bitmap":{source:"apache",extensions:["pbm"]},"image/x-portable-graymap":{source:"apache",extensions:["pgm"]},"image/x-portable-pixmap":{source:"apache",extensions:["ppm"]},"image/x-rgb":{source:"apache",extensions:["rgb"]},"image/x-tga":{source:"apache",extensions:["tga"]},"image/x-xbitmap":{source:"apache",extensions:["xbm"]},"image/x-xcf":{compressible:!1},"image/x-xpixmap":{source:"apache",extensions:["xpm"]},"image/x-xwindowdump":{source:"apache",extensions:["xwd"]},"message/cpim":{source:"iana"},"message/delivery-status":{source:"iana"},"message/disposition-notification":{source:"iana",extensions:["disposition-notification"]},"message/external-body":{source:"iana"},"message/feedback-report":{source:"iana"},"message/global":{source:"iana",extensions:["u8msg"]},"message/global-delivery-status":{source:"iana",extensions:["u8dsn"]},"message/global-disposition-notification":{source:"iana",extensions:["u8mdn"]},"message/global-headers":{source:"iana",extensions:["u8hdr"]},"message/http":{source:"iana",compressible:!1},"message/imdn+xml":{source:"iana",compressible:!0},"message/news":{source:"iana"},"message/partial":{source:"iana",compressible:!1},"message/rfc822":{source:"iana",compressible:!0,extensions:["eml","mime"]},"message/s-http":{source:"iana"},"message/sip":{source:"iana"},"message/sipfrag":{source:"iana"},"message/tracking-status":{source:"iana"},"message/vnd.si.simp":{source:"iana"},"message/vnd.wfa.wsc":{source:"iana",extensions:["wsc"]},"model/3mf":{source:"iana",extensions:["3mf"]},"model/e57":{source:"iana"},"model/gltf+json":{source:"iana",compressible:!0,extensions:["gltf"]},"model/gltf-binary":{source:"iana",compressible:!0,extensions:["glb"]},"model/iges":{source:"iana",compressible:!1,extensions:["igs","iges"]},"model/mesh":{source:"iana",compressible:!1,extensions:["msh","mesh","silo"]},"model/mtl":{source:"iana",extensions:["mtl"]},"model/obj":{source:"iana",extensions:["obj"]},"model/step":{source:"iana"},"model/step+xml":{source:"iana",compressible:!0,extensions:["stpx"]},"model/step+zip":{source:"iana",compressible:!1,extensions:["stpz"]},"model/step-xml+zip":{source:"iana",compressible:!1,extensions:["stpxz"]},"model/stl":{source:"iana",extensions:["stl"]},"model/vnd.collada+xml":{source:"iana",compressible:!0,extensions:["dae"]},"model/vnd.dwf":{source:"iana",extensions:["dwf"]},"model/vnd.flatland.3dml":{source:"iana"},"model/vnd.gdl":{source:"iana",extensions:["gdl"]},"model/vnd.gs-gdl":{source:"apache"},"model/vnd.gs.gdl":{source:"iana"},"model/vnd.gtw":{source:"iana",extensions:["gtw"]},"model/vnd.moml+xml":{source:"iana",compressible:!0},"model/vnd.mts":{source:"iana",extensions:["mts"]},"model/vnd.opengex":{source:"iana",extensions:["ogex"]},"model/vnd.parasolid.transmit.binary":{source:"iana",extensions:["x_b"]},"model/vnd.parasolid.transmit.text":{source:"iana",extensions:["x_t"]},"model/vnd.pytha.pyox":{source:"iana"},"model/vnd.rosette.annotated-data-model":{source:"iana"},"model/vnd.sap.vds":{source:"iana",extensions:["vds"]},"model/vnd.usdz+zip":{source:"iana",compressible:!1,extensions:["usdz"]},"model/vnd.valve.source.compiled-map":{source:"iana",extensions:["bsp"]},"model/vnd.vtu":{source:"iana",extensions:["vtu"]},"model/vrml":{source:"iana",compressible:!1,extensions:["wrl","vrml"]},"model/x3d+binary":{source:"apache",compressible:!1,extensions:["x3db","x3dbz"]},"model/x3d+fastinfoset":{source:"iana",extensions:["x3db"]},"model/x3d+vrml":{source:"apache",compressible:!1,extensions:["x3dv","x3dvz"]},"model/x3d+xml":{source:"iana",compressible:!0,extensions:["x3d","x3dz"]},"model/x3d-vrml":{source:"iana",extensions:["x3dv"]},"multipart/alternative":{source:"iana",compressible:!1},"multipart/appledouble":{source:"iana"},"multipart/byteranges":{source:"iana"},"multipart/digest":{source:"iana"},"multipart/encrypted":{source:"iana",compressible:!1},"multipart/form-data":{source:"iana",compressible:!1},"multipart/header-set":{source:"iana"},"multipart/mixed":{source:"iana"},"multipart/multilingual":{source:"iana"},"multipart/parallel":{source:"iana"},"multipart/related":{source:"iana",compressible:!1},"multipart/report":{source:"iana"},"multipart/signed":{source:"iana",compressible:!1},"multipart/vnd.bint.med-plus":{source:"iana"},"multipart/voice-message":{source:"iana"},"multipart/x-mixed-replace":{source:"iana"},"text/1d-interleaved-parityfec":{source:"iana"},"text/cache-manifest":{source:"iana",compressible:!0,extensions:["appcache","manifest"]},"text/calendar":{source:"iana",extensions:["ics","ifb"]},"text/calender":{compressible:!0},"text/cmd":{compressible:!0},"text/coffeescript":{extensions:["coffee","litcoffee"]},"text/cql":{source:"iana"},"text/cql-expression":{source:"iana"},"text/cql-identifier":{source:"iana"},"text/css":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["css"]},"text/csv":{source:"iana",compressible:!0,extensions:["csv"]},"text/csv-schema":{source:"iana"},"text/directory":{source:"iana"},"text/dns":{source:"iana"},"text/ecmascript":{source:"iana"},"text/encaprtp":{source:"iana"},"text/enriched":{source:"iana"},"text/fhirpath":{source:"iana"},"text/flexfec":{source:"iana"},"text/fwdred":{source:"iana"},"text/gff3":{source:"iana"},"text/grammar-ref-list":{source:"iana"},"text/html":{source:"iana",compressible:!0,extensions:["html","htm","shtml"]},"text/jade":{extensions:["jade"]},"text/javascript":{source:"iana",compressible:!0},"text/jcr-cnd":{source:"iana"},"text/jsx":{compressible:!0,extensions:["jsx"]},"text/less":{compressible:!0,extensions:["less"]},"text/markdown":{source:"iana",compressible:!0,extensions:["markdown","md"]},"text/mathml":{source:"nginx",extensions:["mml"]},"text/mdx":{compressible:!0,extensions:["mdx"]},"text/mizar":{source:"iana"},"text/n3":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["n3"]},"text/parameters":{source:"iana",charset:"UTF-8"},"text/parityfec":{source:"iana"},"text/plain":{source:"iana",compressible:!0,extensions:["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{source:"iana",charset:"UTF-8"},"text/prs.fallenstein.rst":{source:"iana"},"text/prs.lines.tag":{source:"iana",extensions:["dsc"]},"text/prs.prop.logic":{source:"iana"},"text/raptorfec":{source:"iana"},"text/red":{source:"iana"},"text/rfc822-headers":{source:"iana"},"text/richtext":{source:"iana",compressible:!0,extensions:["rtx"]},"text/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"text/rtp-enc-aescm128":{source:"iana"},"text/rtploopback":{source:"iana"},"text/rtx":{source:"iana"},"text/sgml":{source:"iana",extensions:["sgml","sgm"]},"text/shaclc":{source:"iana"},"text/shex":{source:"iana",extensions:["shex"]},"text/slim":{extensions:["slim","slm"]},"text/spdx":{source:"iana",extensions:["spdx"]},"text/strings":{source:"iana"},"text/stylus":{extensions:["stylus","styl"]},"text/t140":{source:"iana"},"text/tab-separated-values":{source:"iana",compressible:!0,extensions:["tsv"]},"text/troff":{source:"iana",extensions:["t","tr","roff","man","me","ms"]},"text/turtle":{source:"iana",charset:"UTF-8",extensions:["ttl"]},"text/ulpfec":{source:"iana"},"text/uri-list":{source:"iana",compressible:!0,extensions:["uri","uris","urls"]},"text/vcard":{source:"iana",compressible:!0,extensions:["vcard"]},"text/vnd.a":{source:"iana"},"text/vnd.abc":{source:"iana"},"text/vnd.ascii-art":{source:"iana"},"text/vnd.curl":{source:"iana",extensions:["curl"]},"text/vnd.curl.dcurl":{source:"apache",extensions:["dcurl"]},"text/vnd.curl.mcurl":{source:"apache",extensions:["mcurl"]},"text/vnd.curl.scurl":{source:"apache",extensions:["scurl"]},"text/vnd.debian.copyright":{source:"iana",charset:"UTF-8"},"text/vnd.dmclientscript":{source:"iana"},"text/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"text/vnd.esmertec.theme-descriptor":{source:"iana",charset:"UTF-8"},"text/vnd.familysearch.gedcom":{source:"iana",extensions:["ged"]},"text/vnd.ficlab.flt":{source:"iana"},"text/vnd.fly":{source:"iana",extensions:["fly"]},"text/vnd.fmi.flexstor":{source:"iana",extensions:["flx"]},"text/vnd.gml":{source:"iana"},"text/vnd.graphviz":{source:"iana",extensions:["gv"]},"text/vnd.hans":{source:"iana"},"text/vnd.hgl":{source:"iana"},"text/vnd.in3d.3dml":{source:"iana",extensions:["3dml"]},"text/vnd.in3d.spot":{source:"iana",extensions:["spot"]},"text/vnd.iptc.newsml":{source:"iana"},"text/vnd.iptc.nitf":{source:"iana"},"text/vnd.latex-z":{source:"iana"},"text/vnd.motorola.reflex":{source:"iana"},"text/vnd.ms-mediapackage":{source:"iana"},"text/vnd.net2phone.commcenter.command":{source:"iana"},"text/vnd.radisys.msml-basic-layout":{source:"iana"},"text/vnd.senx.warpscript":{source:"iana"},"text/vnd.si.uricatalogue":{source:"iana"},"text/vnd.sosi":{source:"iana"},"text/vnd.sun.j2me.app-descriptor":{source:"iana",charset:"UTF-8",extensions:["jad"]},"text/vnd.trolltech.linguist":{source:"iana",charset:"UTF-8"},"text/vnd.wap.si":{source:"iana"},"text/vnd.wap.sl":{source:"iana"},"text/vnd.wap.wml":{source:"iana",extensions:["wml"]},"text/vnd.wap.wmlscript":{source:"iana",extensions:["wmls"]},"text/vtt":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["vtt"]},"text/x-asm":{source:"apache",extensions:["s","asm"]},"text/x-c":{source:"apache",extensions:["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{source:"nginx",extensions:["htc"]},"text/x-fortran":{source:"apache",extensions:["f","for","f77","f90"]},"text/x-gwt-rpc":{compressible:!0},"text/x-handlebars-template":{extensions:["hbs"]},"text/x-java-source":{source:"apache",extensions:["java"]},"text/x-jquery-tmpl":{compressible:!0},"text/x-lua":{extensions:["lua"]},"text/x-markdown":{compressible:!0,extensions:["mkd"]},"text/x-nfo":{source:"apache",extensions:["nfo"]},"text/x-opml":{source:"apache",extensions:["opml"]},"text/x-org":{compressible:!0,extensions:["org"]},"text/x-pascal":{source:"apache",extensions:["p","pas"]},"text/x-processing":{compressible:!0,extensions:["pde"]},"text/x-sass":{extensions:["sass"]},"text/x-scss":{extensions:["scss"]},"text/x-setext":{source:"apache",extensions:["etx"]},"text/x-sfv":{source:"apache",extensions:["sfv"]},"text/x-suse-ymp":{compressible:!0,extensions:["ymp"]},"text/x-uuencode":{source:"apache",extensions:["uu"]},"text/x-vcalendar":{source:"apache",extensions:["vcs"]},"text/x-vcard":{source:"apache",extensions:["vcf"]},"text/xml":{source:"iana",compressible:!0,extensions:["xml"]},"text/xml-external-parsed-entity":{source:"iana"},"text/yaml":{compressible:!0,extensions:["yaml","yml"]},"video/1d-interleaved-parityfec":{source:"iana"},"video/3gpp":{source:"iana",extensions:["3gp","3gpp"]},"video/3gpp-tt":{source:"iana"},"video/3gpp2":{source:"iana",extensions:["3g2"]},"video/av1":{source:"iana"},"video/bmpeg":{source:"iana"},"video/bt656":{source:"iana"},"video/celb":{source:"iana"},"video/dv":{source:"iana"},"video/encaprtp":{source:"iana"},"video/ffv1":{source:"iana"},"video/flexfec":{source:"iana"},"video/h261":{source:"iana",extensions:["h261"]},"video/h263":{source:"iana",extensions:["h263"]},"video/h263-1998":{source:"iana"},"video/h263-2000":{source:"iana"},"video/h264":{source:"iana",extensions:["h264"]},"video/h264-rcdo":{source:"iana"},"video/h264-svc":{source:"iana"},"video/h265":{source:"iana"},"video/iso.segment":{source:"iana",extensions:["m4s"]},"video/jpeg":{source:"iana",extensions:["jpgv"]},"video/jpeg2000":{source:"iana"},"video/jpm":{source:"apache",extensions:["jpm","jpgm"]},"video/jxsv":{source:"iana"},"video/mj2":{source:"iana",extensions:["mj2","mjp2"]},"video/mp1s":{source:"iana"},"video/mp2p":{source:"iana"},"video/mp2t":{source:"iana",extensions:["ts"]},"video/mp4":{source:"iana",compressible:!1,extensions:["mp4","mp4v","mpg4"]},"video/mp4v-es":{source:"iana"},"video/mpeg":{source:"iana",compressible:!1,extensions:["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{source:"iana"},"video/mpv":{source:"iana"},"video/nv":{source:"iana"},"video/ogg":{source:"iana",compressible:!1,extensions:["ogv"]},"video/parityfec":{source:"iana"},"video/pointer":{source:"iana"},"video/quicktime":{source:"iana",compressible:!1,extensions:["qt","mov"]},"video/raptorfec":{source:"iana"},"video/raw":{source:"iana"},"video/rtp-enc-aescm128":{source:"iana"},"video/rtploopback":{source:"iana"},"video/rtx":{source:"iana"},"video/scip":{source:"iana"},"video/smpte291":{source:"iana"},"video/smpte292m":{source:"iana"},"video/ulpfec":{source:"iana"},"video/vc1":{source:"iana"},"video/vc2":{source:"iana"},"video/vnd.cctv":{source:"iana"},"video/vnd.dece.hd":{source:"iana",extensions:["uvh","uvvh"]},"video/vnd.dece.mobile":{source:"iana",extensions:["uvm","uvvm"]},"video/vnd.dece.mp4":{source:"iana"},"video/vnd.dece.pd":{source:"iana",extensions:["uvp","uvvp"]},"video/vnd.dece.sd":{source:"iana",extensions:["uvs","uvvs"]},"video/vnd.dece.video":{source:"iana",extensions:["uvv","uvvv"]},"video/vnd.directv.mpeg":{source:"iana"},"video/vnd.directv.mpeg-tts":{source:"iana"},"video/vnd.dlna.mpeg-tts":{source:"iana"},"video/vnd.dvb.file":{source:"iana",extensions:["dvb"]},"video/vnd.fvt":{source:"iana",extensions:["fvt"]},"video/vnd.hns.video":{source:"iana"},"video/vnd.iptvforum.1dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.1dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.2dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.2dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.ttsavc":{source:"iana"},"video/vnd.iptvforum.ttsmpeg2":{source:"iana"},"video/vnd.motorola.video":{source:"iana"},"video/vnd.motorola.videop":{source:"iana"},"video/vnd.mpegurl":{source:"iana",extensions:["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{source:"iana",extensions:["pyv"]},"video/vnd.nokia.interleaved-multimedia":{source:"iana"},"video/vnd.nokia.mp4vr":{source:"iana"},"video/vnd.nokia.videovoip":{source:"iana"},"video/vnd.objectvideo":{source:"iana"},"video/vnd.radgamettools.bink":{source:"iana"},"video/vnd.radgamettools.smacker":{source:"iana"},"video/vnd.sealed.mpeg1":{source:"iana"},"video/vnd.sealed.mpeg4":{source:"iana"},"video/vnd.sealed.swf":{source:"iana"},"video/vnd.sealedmedia.softseal.mov":{source:"iana"},"video/vnd.uvvu.mp4":{source:"iana",extensions:["uvu","uvvu"]},"video/vnd.vivo":{source:"iana",extensions:["viv"]},"video/vnd.youtube.yt":{source:"iana"},"video/vp8":{source:"iana"},"video/vp9":{source:"iana"},"video/webm":{source:"apache",compressible:!1,extensions:["webm"]},"video/x-f4v":{source:"apache",extensions:["f4v"]},"video/x-fli":{source:"apache",extensions:["fli"]},"video/x-flv":{source:"apache",compressible:!1,extensions:["flv"]},"video/x-m4v":{source:"apache",extensions:["m4v"]},"video/x-matroska":{source:"apache",compressible:!1,extensions:["mkv","mk3d","mks"]},"video/x-mng":{source:"apache",extensions:["mng"]},"video/x-ms-asf":{source:"apache",extensions:["asf","asx"]},"video/x-ms-vob":{source:"apache",extensions:["vob"]},"video/x-ms-wm":{source:"apache",extensions:["wm"]},"video/x-ms-wmv":{source:"apache",compressible:!1,extensions:["wmv"]},"video/x-ms-wmx":{source:"apache",extensions:["wmx"]},"video/x-ms-wvx":{source:"apache",extensions:["wvx"]},"video/x-msvideo":{source:"apache",extensions:["avi"]},"video/x-sgi-movie":{source:"apache",extensions:["movie"]},"video/x-smv":{source:"apache",extensions:["smv"]},"x-conference/x-cooltalk":{source:"apache",extensions:["ice"]},"x-shader/x-fragment":{compressible:!0},"x-shader/x-vertex":{compressible:!0}}});var Ig=V((BG,Cg)=>{Cg.exports=Og()});var cp=V(er=>{"use strict";var Ic=Ig(),FO=require("path").extname,Ag=/^\s*([^;\s]*)(?:;|\s|$)/,UO=/^text\//i;er.charset=Ng;er.charsets={lookup:Ng};er.contentType=zO;er.extension=HO;er.extensions=Object.create(null);er.lookup=BO;er.types=Object.create(null);VO(er.extensions,er.types);function Ng(t){if(!t||typeof t!="string")return!1;var e=Ag.exec(t),r=e&&Ic[e[1].toLowerCase()];return r&&r.charset?r.charset:e&&UO.test(e[1])?"UTF-8":!1}function zO(t){if(!t||typeof t!="string")return!1;var e=t.indexOf("/")===-1?er.lookup(t):t;if(!e)return!1;if(e.indexOf("charset")===-1){var r=er.charset(e);r&&(e+="; charset="+r.toLowerCase())}return e}function HO(t){if(!t||typeof t!="string")return!1;var e=Ag.exec(t),r=e&&er.extensions[e[1].toLowerCase()];return!r||!r.length?!1:r[0]}function BO(t){if(!t||typeof t!="string")return!1;var e=FO("x."+t).toLowerCase().substr(1);return e&&er.types[e]||!1}function VO(t,e){var r=["nginx","apache",void 0,"iana"];Object.keys(Ic).forEach(function(n){var s=Ic[n],i=s.extensions;if(!(!i||!i.length)){t[n]=i;for(var o=0;ol||u===l&&e[c].substr(0,12)==="application/"))continue}e[c]=n}}})}});var bs=V((GG,_s)=>{"use strict";var Mg=$g(),GO=cp();_s.exports=ZO;_s.exports.is=jg;_s.exports.hasBody=Dg;_s.exports.normalize=Lg;_s.exports.match=qg;function jg(t,e){var r,a=e,n=KO(t);if(!n)return!1;if(a&&!Array.isArray(a))for(a=new Array(arguments.length-1),r=0;r2){r=new Array(arguments.length-1);for(var a=0;a{"use strict";var XO=ds(),JO=Li(),YO=ca(),Nn=Sr()("body-parser:json"),QO=Xi(),Ug=bs();Hg.exports=rC;var eC=/^[\x20\x09\x0a\x0d]*([^\x20\x09\x0a\x0d])/,Fg="#",tC=/#+/g;function rC(t){var e=t||{},r=typeof e.limit!="number"?XO.parse(e.limit||"100kb"):e.limit,a=e.inflate!==!1,n=e.reviver,s=e.strict!==!1,i=e.type||"application/json",o=e.verify||!1;if(o!==!1&&typeof o!="function")throw new TypeError("option verify must be function");var c=typeof i!="function"?iC(i):i;function u(l){if(l.length===0)return{};if(s){var d=aC(l);if(d!=="{"&&d!=="[")throw Nn("strict violation"),nC(l,d)}try{return Nn("parse json"),JSON.parse(l,n)}catch(p){throw zg(p,{message:p.message,stack:p.stack})}}return function(d,p,f){if(d._body){Nn("body already parsed"),f();return}if(d.body=d.body||{},!Ug.hasBody(d)){Nn("skip empty body"),f();return}if(Nn("content-type %j",d.headers["content-type"]),!c(d)){Nn("skip parsing"),f();return}var v=sC(d)||"utf-8";if(v.slice(0,4)!=="utf-"){Nn("invalid charset"),f(YO(415,'unsupported charset "'+v.toUpperCase()+'"',{charset:v,type:"charset.unsupported"}));return}QO(d,p,f,u,Nn,{encoding:v,inflate:a,limit:r,verify:o})}}function nC(t,e){var r=t.indexOf(e),a="";if(r!==-1){a=t.substring(0,r)+Fg;for(var n=r+1;n{"use strict";var oC=ds(),Ji=Sr()("body-parser:raw"),cC=Xi(),Vg=bs();Gg.exports=uC;function uC(t){var e=t||{},r=e.inflate!==!1,a=typeof e.limit!="number"?oC.parse(e.limit||"100kb"):e.limit,n=e.type||"application/octet-stream",s=e.verify||!1;if(s!==!1&&typeof s!="function")throw new TypeError("option verify must be function");var i=typeof n!="function"?lC(n):n;function o(c){return c}return function(u,l,d){if(u._body){Ji("body already parsed"),d();return}if(u.body=u.body||{},!Vg.hasBody(u)){Ji("skip empty body"),d();return}if(Ji("content-type %j",u.headers["content-type"]),!i(u)){Ji("skip parsing"),d();return}cC(u,l,d,o,Ji,{encoding:null,inflate:r,limit:a,verify:s})}}function lC(t){return function(r){return!!Vg(r,t)}}});var Xg=V((KG,Kg)=>{"use strict";var dC=ds(),pC=Li(),Yi=Sr()("body-parser:text"),fC=Xi(),Wg=bs();Kg.exports=mC;function mC(t){var e=t||{},r=e.defaultCharset||"utf-8",a=e.inflate!==!1,n=typeof e.limit!="number"?dC.parse(e.limit||"100kb"):e.limit,s=e.type||"text/plain",i=e.verify||!1;if(i!==!1&&typeof i!="function")throw new TypeError("option verify must be function");var o=typeof s!="function"?vC(s):s;function c(u){return u}return function(l,d,p){if(l._body){Yi("body already parsed"),p();return}if(l.body=l.body||{},!Wg.hasBody(l)){Yi("skip empty body"),p();return}if(Yi("content-type %j",l.headers["content-type"]),!o(l)){Yi("skip parsing"),p();return}var f=hC(l)||r;fC(l,d,p,c,Yi,{encoding:f,inflate:a,limit:n,verify:i})}}function hC(t){try{return(pC.parse(t).parameters.charset||"").toLowerCase()}catch{return}}function vC(t){return function(r){return!!Wg(r,t)}}});var ma=V((XG,Jg)=>{"use strict";Jg.exports=TypeError});var Qg=V((JG,Yg)=>{Yg.exports=require("util").inspect});var no=V((YG,_y)=>{var yp=typeof Map=="function"&&Map.prototype,up=Object.getOwnPropertyDescriptor&&yp?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,Nc=yp&&up&&typeof up.get=="function"?up.get:null,ey=yp&&Map.prototype.forEach,_p=typeof Set=="function"&&Set.prototype,lp=Object.getOwnPropertyDescriptor&&_p?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,Mc=_p&&lp&&typeof lp.get=="function"?lp.get:null,ty=_p&&Set.prototype.forEach,gC=typeof WeakMap=="function"&&WeakMap.prototype,eo=gC?WeakMap.prototype.has:null,yC=typeof WeakSet=="function"&&WeakSet.prototype,to=yC?WeakSet.prototype.has:null,_C=typeof WeakRef=="function"&&WeakRef.prototype,ry=_C?WeakRef.prototype.deref:null,bC=Boolean.prototype.valueOf,SC=Object.prototype.toString,xC=Function.prototype.toString,wC=String.prototype.match,bp=String.prototype.slice,Mn=String.prototype.replace,EC=String.prototype.toUpperCase,ny=String.prototype.toLowerCase,py=RegExp.prototype.test,ay=Array.prototype.concat,tn=Array.prototype.join,TC=Array.prototype.slice,sy=Math.floor,fp=typeof BigInt=="function"?BigInt.prototype.valueOf:null,dp=Object.getOwnPropertySymbols,mp=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,Ss=typeof Symbol=="function"&&typeof Symbol.iterator=="object",ro=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===Ss||!0)?Symbol.toStringTag:null,fy=Object.prototype.propertyIsEnumerable,iy=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function oy(t,e){if(t===1/0||t===-1/0||t!==t||t&&t>-1e3&&t<1e3||py.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof t=="number"){var a=t<0?-sy(-t):sy(t);if(a!==t){var n=String(a),s=bp.call(e,n.length+1);return Mn.call(n,r,"$&_")+"."+Mn.call(Mn.call(s,/([0-9]{3})/g,"$&_"),/_$/,"")}}return Mn.call(e,r,"$&_")}var hp=Qg(),cy=hp.custom,uy=vy(cy)?cy:null,my={__proto__:null,double:'"',single:"'"},kC={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};_y.exports=function t(e,r,a,n){var s=r||{};if(yn(s,"quoteStyle")&&!yn(my,s.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(yn(s,"maxStringLength")&&(typeof s.maxStringLength=="number"?s.maxStringLength<0&&s.maxStringLength!==1/0:s.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var i=yn(s,"customInspect")?s.customInspect:!0;if(typeof i!="boolean"&&i!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(yn(s,"indent")&&s.indent!==null&&s.indent!==" "&&!(parseInt(s.indent,10)===s.indent&&s.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(yn(s,"numericSeparator")&&typeof s.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var o=s.numericSeparator;if(typeof e>"u")return"undefined";if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return yy(e,s);if(typeof e=="number"){if(e===0)return 1/0/e>0?"0":"-0";var c=String(e);return o?oy(e,c):c}if(typeof e=="bigint"){var u=String(e)+"n";return o?oy(e,u):u}var l=typeof s.depth>"u"?5:s.depth;if(typeof a>"u"&&(a=0),a>=l&&l>0&&typeof e=="object")return vp(e)?"[Array]":"[Object]";var d=BC(s,a);if(typeof n>"u")n=[];else if(gy(n,e)>=0)return"[Circular]";function p(H,N,W){if(N&&(n=TC.call(n),n.push(N)),W){var oe={depth:s.depth};return yn(s,"quoteStyle")&&(oe.quoteStyle=s.quoteStyle),t(H,oe,a+1,n)}return t(H,s,a+1,n)}if(typeof e=="function"&&!ly(e)){var f=MC(e),v=Ac(e,p);return"[Function"+(f?": "+f:" (anonymous)")+"]"+(v.length>0?" { "+tn.call(v,", ")+" }":"")}if(vy(e)){var _=Ss?Mn.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):mp.call(e);return typeof e=="object"&&!Ss?Qi(_):_}if(UC(e)){for(var m="<"+ny.call(String(e.nodeName)),h=e.attributes||[],y=0;y",m}if(vp(e)){if(e.length===0)return"[]";var g=Ac(e,p);return d&&!HC(g)?"["+gp(g,d)+"]":"[ "+tn.call(g,", ")+" ]"}if($C(e)){var b=Ac(e,p);return!("cause"in Error.prototype)&&"cause"in e&&!fy.call(e,"cause")?"{ ["+String(e)+"] "+tn.call(ay.call("[cause]: "+p(e.cause),b),", ")+" }":b.length===0?"["+String(e)+"]":"{ ["+String(e)+"] "+tn.call(b,", ")+" }"}if(typeof e=="object"&&i){if(uy&&typeof e[uy]=="function"&&hp)return hp(e,{depth:l-a});if(i!=="symbol"&&typeof e.inspect=="function")return e.inspect()}if(jC(e)){var w=[];return ey&&ey.call(e,function(H,N){w.push(p(N,e,!0)+" => "+p(H,e))}),dy("Map",Nc.call(e),w,d)}if(qC(e)){var S=[];return ty&&ty.call(e,function(H){S.push(p(H,e))}),dy("Set",Mc.call(e),S,d)}if(DC(e))return pp("WeakMap");if(FC(e))return pp("WeakSet");if(LC(e))return pp("WeakRef");if(CC(e))return Qi(p(Number(e)));if(AC(e))return Qi(p(fp.call(e)));if(IC(e))return Qi(bC.call(e));if(OC(e))return Qi(p(String(e)));if(typeof window<"u"&&e===window)return"{ [object Window] }";if(typeof globalThis<"u"&&e===globalThis||typeof global<"u"&&e===global)return"{ [object globalThis] }";if(!PC(e)&&!ly(e)){var E=Ac(e,p),T=iy?iy(e)===Object.prototype:e instanceof Object||e.constructor===Object,R=e instanceof Object?"":"null prototype",M=!T&&ro&&Object(e)===e&&ro in e?bp.call(jn(e),8,-1):R?"Object":"",j=T||typeof e.constructor!="function"?"":e.constructor.name?e.constructor.name+" ":"",q=j+(M||R?"["+tn.call(ay.call([],M||[],R||[]),": ")+"] ":"");return E.length===0?q+"{}":d?q+"{"+gp(E,d)+"}":q+"{ "+tn.call(E,", ")+" }"}return String(e)};function hy(t,e,r){var a=r.quoteStyle||e,n=my[a];return n+t+n}function RC(t){return Mn.call(String(t),/"/g,""")}function ha(t){return!ro||!(typeof t=="object"&&(ro in t||typeof t[ro]<"u"))}function vp(t){return jn(t)==="[object Array]"&&ha(t)}function PC(t){return jn(t)==="[object Date]"&&ha(t)}function ly(t){return jn(t)==="[object RegExp]"&&ha(t)}function $C(t){return jn(t)==="[object Error]"&&ha(t)}function OC(t){return jn(t)==="[object String]"&&ha(t)}function CC(t){return jn(t)==="[object Number]"&&ha(t)}function IC(t){return jn(t)==="[object Boolean]"&&ha(t)}function vy(t){if(Ss)return t&&typeof t=="object"&&t instanceof Symbol;if(typeof t=="symbol")return!0;if(!t||typeof t!="object"||!mp)return!1;try{return mp.call(t),!0}catch{}return!1}function AC(t){if(!t||typeof t!="object"||!fp)return!1;try{return fp.call(t),!0}catch{}return!1}var NC=Object.prototype.hasOwnProperty||function(t){return t in this};function yn(t,e){return NC.call(t,e)}function jn(t){return SC.call(t)}function MC(t){if(t.name)return t.name;var e=wC.call(xC.call(t),/^function\s*([\w$]+)/);return e?e[1]:null}function gy(t,e){if(t.indexOf)return t.indexOf(e);for(var r=0,a=t.length;re.maxStringLength){var r=t.length-e.maxStringLength,a="... "+r+" more character"+(r>1?"s":"");return yy(bp.call(t,0,e.maxStringLength),e)+a}var n=kC[e.quoteStyle||"single"];n.lastIndex=0;var s=Mn.call(Mn.call(t,n,"\\$1"),/[\x00-\x1f]/g,zC);return hy(s,"single",e)}function zC(t){var e=t.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[e];return r?"\\"+r:"\\x"+(e<16?"0":"")+EC.call(e.toString(16))}function Qi(t){return"Object("+t+")"}function pp(t){return t+" { ? }"}function dy(t,e,r,a){var n=a?gp(r,a):tn.call(r,", ");return t+" ("+e+") {"+n+"}"}function HC(t){for(var e=0;e=0)return!1;return!0}function BC(t,e){var r;if(t.indent===" ")r=" ";else if(typeof t.indent=="number"&&t.indent>0)r=tn.call(Array(t.indent+1)," ");else return null;return{base:r,prev:tn.call(Array(e+1),r)}}function gp(t,e){if(t.length===0)return"";var r=` -`+e.prev+e.base;return r+tn.call(t,","+r)+` -`+e.prev}function Ac(t,e){var r=vp(t),a=[];if(r){a.length=t.length;for(var n=0;n{"use strict";var VC=no(),GC=ma(),jc=function(t,e,r){for(var a=t,n;(n=a.next)!=null;a=n)if(n.key===e)return a.next=n.next,r||(n.next=t.next,t.next=n),n},ZC=function(t,e){if(t){var r=jc(t,e);return r&&r.value}},WC=function(t,e,r){var a=jc(t,e);a?a.value=r:t.next={key:e,next:t.next,value:r}},KC=function(t,e){return t?!!jc(t,e):!1},XC=function(t,e){if(t)return jc(t,e,!0)};by.exports=function(){var e,r={assert:function(a){if(!r.has(a))throw new GC("Side channel does not contain "+VC(a))},delete:function(a){var n=e&&e.next,s=XC(e,a);return s&&n&&n===s&&(e=void 0),!!s},get:function(a){return ZC(e,a)},has:function(a){return KC(e,a)},set:function(a,n){e||(e={next:void 0}),WC(e,a,n)}};return r}});var Sp=V((eZ,xy)=>{"use strict";xy.exports=Object});var Ey=V((tZ,wy)=>{"use strict";wy.exports=Error});var ky=V((rZ,Ty)=>{"use strict";Ty.exports=EvalError});var Py=V((nZ,Ry)=>{"use strict";Ry.exports=RangeError});var Oy=V((aZ,$y)=>{"use strict";$y.exports=ReferenceError});var Iy=V((sZ,Cy)=>{"use strict";Cy.exports=SyntaxError});var Ny=V((iZ,Ay)=>{"use strict";Ay.exports=URIError});var jy=V((oZ,My)=>{"use strict";My.exports=Math.abs});var Ly=V((cZ,Dy)=>{"use strict";Dy.exports=Math.floor});var Fy=V((uZ,qy)=>{"use strict";qy.exports=Math.max});var zy=V((lZ,Uy)=>{"use strict";Uy.exports=Math.min});var By=V((dZ,Hy)=>{"use strict";Hy.exports=Math.pow});var Gy=V((pZ,Vy)=>{"use strict";Vy.exports=Math.round});var Wy=V((fZ,Zy)=>{"use strict";Zy.exports=Number.isNaN||function(e){return e!==e}});var Xy=V((mZ,Ky)=>{"use strict";var JC=Wy();Ky.exports=function(e){return JC(e)||e===0?e:e<0?-1:1}});var Yy=V((hZ,Jy)=>{"use strict";Jy.exports=Object.getOwnPropertyDescriptor});var xp=V((vZ,Qy)=>{"use strict";var Dc=Yy();if(Dc)try{Dc([],"length")}catch{Dc=null}Qy.exports=Dc});var t_=V((gZ,e_)=>{"use strict";var Lc=Object.defineProperty||!1;if(Lc)try{Lc({},"a",{value:1})}catch{Lc=!1}e_.exports=Lc});var n_=V((yZ,r_)=>{"use strict";r_.exports=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var e={},r=Symbol("test"),a=Object(r);if(typeof r=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(a)!=="[object Symbol]")return!1;var n=42;e[r]=n;for(var s in e)return!1;if(typeof Object.keys=="function"&&Object.keys(e).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(e).length!==0)return!1;var i=Object.getOwnPropertySymbols(e);if(i.length!==1||i[0]!==r||!Object.prototype.propertyIsEnumerable.call(e,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var o=Object.getOwnPropertyDescriptor(e,r);if(o.value!==n||o.enumerable!==!0)return!1}return!0}});var i_=V((_Z,s_)=>{"use strict";var a_=typeof Symbol<"u"&&Symbol,YC=n_();s_.exports=function(){return typeof a_!="function"||typeof Symbol!="function"||typeof a_("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:YC()}});var wp=V((bZ,o_)=>{"use strict";o_.exports=typeof Reflect<"u"&&Reflect.getPrototypeOf||null});var Ep=V((SZ,c_)=>{"use strict";var QC=Sp();c_.exports=QC.getPrototypeOf||null});var d_=V((xZ,l_)=>{"use strict";var eI="Function.prototype.bind called on incompatible ",tI=Object.prototype.toString,rI=Math.max,nI="[object Function]",u_=function(e,r){for(var a=[],n=0;n{"use strict";var iI=d_();p_.exports=Function.prototype.bind||iI});var qc=V((EZ,f_)=>{"use strict";f_.exports=Function.prototype.call});var Tp=V((TZ,m_)=>{"use strict";m_.exports=Function.prototype.apply});var v_=V((kZ,h_)=>{"use strict";h_.exports=typeof Reflect<"u"&&Reflect&&Reflect.apply});var y_=V((RZ,g_)=>{"use strict";var oI=ao(),cI=Tp(),uI=qc(),lI=v_();g_.exports=lI||oI.call(uI,cI)});var kp=V((PZ,__)=>{"use strict";var dI=ao(),pI=ma(),fI=qc(),mI=y_();__.exports=function(e){if(e.length<1||typeof e[0]!="function")throw new pI("a function is required");return mI(dI,fI,e)}});var T_=V(($Z,E_)=>{"use strict";var hI=kp(),b_=xp(),x_;try{x_=[].__proto__===Array.prototype}catch(t){if(!t||typeof t!="object"||!("code"in t)||t.code!=="ERR_PROTO_ACCESS")throw t}var Rp=!!x_&&b_&&b_(Object.prototype,"__proto__"),w_=Object,S_=w_.getPrototypeOf;E_.exports=Rp&&typeof Rp.get=="function"?hI([Rp.get]):typeof S_=="function"?function(e){return S_(e==null?e:w_(e))}:!1});var O_=V((OZ,$_)=>{"use strict";var k_=wp(),R_=Ep(),P_=T_();$_.exports=k_?function(e){return k_(e)}:R_?function(e){if(!e||typeof e!="object"&&typeof e!="function")throw new TypeError("getProto: not an object");return R_(e)}:P_?function(e){return P_(e)}:null});var I_=V((CZ,C_)=>{"use strict";var vI=Function.prototype.call,gI=Object.prototype.hasOwnProperty,yI=ao();C_.exports=yI.call(vI,gI)});var zc=V((IZ,L_)=>{"use strict";var Ve,_I=Sp(),bI=Ey(),SI=ky(),xI=Py(),wI=Oy(),Ts=Iy(),Es=ma(),EI=Ny(),TI=jy(),kI=Ly(),RI=Fy(),PI=zy(),$I=By(),OI=Gy(),CI=Xy(),j_=Function,Pp=function(t){try{return j_('"use strict"; return ('+t+").constructor;")()}catch{}},so=xp(),II=t_(),$p=function(){throw new Es},AI=so?(function(){try{return arguments.callee,$p}catch{try{return so(arguments,"callee").get}catch{return $p}}})():$p,xs=i_()(),qt=O_(),NI=Ep(),MI=wp(),D_=Tp(),io=qc(),ws={},jI=typeof Uint8Array>"u"||!qt?Ve:qt(Uint8Array),va={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?Ve:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?Ve:ArrayBuffer,"%ArrayIteratorPrototype%":xs&&qt?qt([][Symbol.iterator]()):Ve,"%AsyncFromSyncIteratorPrototype%":Ve,"%AsyncFunction%":ws,"%AsyncGenerator%":ws,"%AsyncGeneratorFunction%":ws,"%AsyncIteratorPrototype%":ws,"%Atomics%":typeof Atomics>"u"?Ve:Atomics,"%BigInt%":typeof BigInt>"u"?Ve:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?Ve:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?Ve:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?Ve:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":bI,"%eval%":eval,"%EvalError%":SI,"%Float16Array%":typeof Float16Array>"u"?Ve:Float16Array,"%Float32Array%":typeof Float32Array>"u"?Ve:Float32Array,"%Float64Array%":typeof Float64Array>"u"?Ve:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?Ve:FinalizationRegistry,"%Function%":j_,"%GeneratorFunction%":ws,"%Int8Array%":typeof Int8Array>"u"?Ve:Int8Array,"%Int16Array%":typeof Int16Array>"u"?Ve:Int16Array,"%Int32Array%":typeof Int32Array>"u"?Ve:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":xs&&qt?qt(qt([][Symbol.iterator]())):Ve,"%JSON%":typeof JSON=="object"?JSON:Ve,"%Map%":typeof Map>"u"?Ve:Map,"%MapIteratorPrototype%":typeof Map>"u"||!xs||!qt?Ve:qt(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":_I,"%Object.getOwnPropertyDescriptor%":so,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?Ve:Promise,"%Proxy%":typeof Proxy>"u"?Ve:Proxy,"%RangeError%":xI,"%ReferenceError%":wI,"%Reflect%":typeof Reflect>"u"?Ve:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?Ve:Set,"%SetIteratorPrototype%":typeof Set>"u"||!xs||!qt?Ve:qt(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?Ve:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":xs&&qt?qt(""[Symbol.iterator]()):Ve,"%Symbol%":xs?Symbol:Ve,"%SyntaxError%":Ts,"%ThrowTypeError%":AI,"%TypedArray%":jI,"%TypeError%":Es,"%Uint8Array%":typeof Uint8Array>"u"?Ve:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?Ve:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?Ve:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?Ve:Uint32Array,"%URIError%":EI,"%WeakMap%":typeof WeakMap>"u"?Ve:WeakMap,"%WeakRef%":typeof WeakRef>"u"?Ve:WeakRef,"%WeakSet%":typeof WeakSet>"u"?Ve:WeakSet,"%Function.prototype.call%":io,"%Function.prototype.apply%":D_,"%Object.defineProperty%":II,"%Object.getPrototypeOf%":NI,"%Math.abs%":TI,"%Math.floor%":kI,"%Math.max%":RI,"%Math.min%":PI,"%Math.pow%":$I,"%Math.round%":OI,"%Math.sign%":CI,"%Reflect.getPrototypeOf%":MI};if(qt)try{null.error}catch(t){A_=qt(qt(t)),va["%Error.prototype%"]=A_}var A_,DI=function t(e){var r;if(e==="%AsyncFunction%")r=Pp("async function () {}");else if(e==="%GeneratorFunction%")r=Pp("function* () {}");else if(e==="%AsyncGeneratorFunction%")r=Pp("async function* () {}");else if(e==="%AsyncGenerator%"){var a=t("%AsyncGeneratorFunction%");a&&(r=a.prototype)}else if(e==="%AsyncIteratorPrototype%"){var n=t("%AsyncGenerator%");n&&qt&&(r=qt(n.prototype))}return va[e]=r,r},N_={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},oo=ao(),Fc=I_(),LI=oo.call(io,Array.prototype.concat),qI=oo.call(D_,Array.prototype.splice),M_=oo.call(io,String.prototype.replace),Uc=oo.call(io,String.prototype.slice),FI=oo.call(io,RegExp.prototype.exec),UI=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,zI=/\\(\\)?/g,HI=function(e){var r=Uc(e,0,1),a=Uc(e,-1);if(r==="%"&&a!=="%")throw new Ts("invalid intrinsic syntax, expected closing `%`");if(a==="%"&&r!=="%")throw new Ts("invalid intrinsic syntax, expected opening `%`");var n=[];return M_(e,UI,function(s,i,o,c){n[n.length]=o?M_(c,zI,"$1"):i||s}),n},BI=function(e,r){var a=e,n;if(Fc(N_,a)&&(n=N_[a],a="%"+n[0]+"%"),Fc(va,a)){var s=va[a];if(s===ws&&(s=DI(a)),typeof s>"u"&&!r)throw new Es("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:a,value:s}}throw new Ts("intrinsic "+e+" does not exist!")};L_.exports=function(e,r){if(typeof e!="string"||e.length===0)throw new Es("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof r!="boolean")throw new Es('"allowMissing" argument must be a boolean');if(FI(/^%?[^%]*%?$/,e)===null)throw new Ts("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var a=HI(e),n=a.length>0?a[0]:"",s=BI("%"+n+"%",r),i=s.name,o=s.value,c=!1,u=s.alias;u&&(n=u[0],qI(a,LI([0,1],u)));for(var l=1,d=!0;l=a.length){var _=so(o,p);d=!!_,d&&"get"in _&&!("originalValue"in _.get)?o=_.get:o=o[p]}else d=Fc(o,p),o=o[p];d&&!c&&(va[i]=o)}}return o}});var Op=V((AZ,U_)=>{"use strict";var q_=zc(),F_=kp(),VI=F_([q_("%String.prototype.indexOf%")]);U_.exports=function(e,r){var a=q_(e,!!r);return typeof a=="function"&&VI(e,".prototype.")>-1?F_([a]):a}});var Cp=V((NZ,H_)=>{"use strict";var GI=zc(),co=Op(),ZI=no(),WI=ma(),z_=GI("%Map%",!0),KI=co("Map.prototype.get",!0),XI=co("Map.prototype.set",!0),JI=co("Map.prototype.has",!0),YI=co("Map.prototype.delete",!0),QI=co("Map.prototype.size",!0);H_.exports=!!z_&&function(){var e,r={assert:function(a){if(!r.has(a))throw new WI("Side channel does not contain "+ZI(a))},delete:function(a){if(e){var n=YI(e,a);return QI(e)===0&&(e=void 0),n}return!1},get:function(a){if(e)return KI(e,a)},has:function(a){return e?JI(e,a):!1},set:function(a,n){e||(e=new z_),XI(e,a,n)}};return r}});var V_=V((MZ,B_)=>{"use strict";var eA=zc(),Bc=Op(),tA=no(),Hc=Cp(),rA=ma(),ks=eA("%WeakMap%",!0),nA=Bc("WeakMap.prototype.get",!0),aA=Bc("WeakMap.prototype.set",!0),sA=Bc("WeakMap.prototype.has",!0),iA=Bc("WeakMap.prototype.delete",!0);B_.exports=ks?function(){var e,r,a={assert:function(n){if(!a.has(n))throw new rA("Side channel does not contain "+tA(n))},delete:function(n){if(ks&&n&&(typeof n=="object"||typeof n=="function")){if(e)return iA(e,n)}else if(Hc&&r)return r.delete(n);return!1},get:function(n){return ks&&n&&(typeof n=="object"||typeof n=="function")&&e?nA(e,n):r&&r.get(n)},has:function(n){return ks&&n&&(typeof n=="object"||typeof n=="function")&&e?sA(e,n):!!r&&r.has(n)},set:function(n,s){ks&&n&&(typeof n=="object"||typeof n=="function")?(e||(e=new ks),aA(e,n,s)):Hc&&(r||(r=Hc()),r.set(n,s))}};return a}:Hc});var Z_=V((jZ,G_)=>{"use strict";var oA=ma(),cA=no(),uA=Sy(),lA=Cp(),dA=V_(),pA=dA||lA||uA;G_.exports=function(){var e,r={assert:function(a){if(!r.has(a))throw new oA("Side channel does not contain "+cA(a))},delete:function(a){return!!e&&e.delete(a)},get:function(a){return e&&e.get(a)},has:function(a){return!!e&&e.has(a)},set:function(a,n){e||(e=pA()),e.set(a,n)}};return r}});var Vc=V((DZ,W_)=>{"use strict";var fA=String.prototype.replace,mA=/%20/g,Ip={RFC1738:"RFC1738",RFC3986:"RFC3986"};W_.exports={default:Ip.RFC3986,formatters:{RFC1738:function(t){return fA.call(t,mA,"+")},RFC3986:function(t){return String(t)}},RFC1738:Ip.RFC1738,RFC3986:Ip.RFC3986}});var Mp=V((LZ,X_)=>{"use strict";var hA=Vc(),Ap=Object.prototype.hasOwnProperty,ga=Array.isArray,rn=(function(){for(var t=[],e=0;e<256;++e)t.push("%"+((e<16?"0":"")+e.toString(16)).toUpperCase());return t})(),vA=function(e){for(;e.length>1;){var r=e.pop(),a=r.obj[r.prop];if(ga(a)){for(var n=[],s=0;s=Np?i.slice(c,c+Np):i,l=[],d=0;d=48&&p<=57||p>=65&&p<=90||p>=97&&p<=122||s===hA.RFC1738&&(p===40||p===41)){l[l.length]=u.charAt(d);continue}if(p<128){l[l.length]=rn[p];continue}if(p<2048){l[l.length]=rn[192|p>>6]+rn[128|p&63];continue}if(p<55296||p>=57344){l[l.length]=rn[224|p>>12]+rn[128|p>>6&63]+rn[128|p&63];continue}d+=1,p=65536+((p&1023)<<10|u.charCodeAt(d)&1023),l[l.length]=rn[240|p>>18]+rn[128|p>>12&63]+rn[128|p>>6&63]+rn[128|p&63]}o+=l.join("")}return o},SA=function(e){for(var r=[{obj:{o:e},prop:"o"}],a=[],n=0;n{"use strict";var Y_=Z_(),Gc=Mp(),uo=Vc(),kA=Object.prototype.hasOwnProperty,Q_={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,r){return e+"["+r+"]"},repeat:function(e){return e}},nn=Array.isArray,RA=Array.prototype.push,eb=function(t,e){RA.apply(t,nn(e)?e:[e])},PA=Date.prototype.toISOString,J_=uo.default,Mt={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:Gc.encode,encodeValuesOnly:!1,format:J_,formatter:uo.formatters[J_],indices:!1,serializeDate:function(e){return PA.call(e)},skipNulls:!1,strictNullHandling:!1},$A=function(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="symbol"||typeof e=="bigint"},jp={},OA=function t(e,r,a,n,s,i,o,c,u,l,d,p,f,v,_,m,h,y){for(var g=e,b=y,w=0,S=!1;(b=b.get(jp))!==void 0&&!S;){var E=b.get(e);if(w+=1,typeof E<"u"){if(E===w)throw new RangeError("Cyclic object value");S=!0}typeof b.get(jp)>"u"&&(w=0)}if(typeof l=="function"?g=l(r,g):g instanceof Date?g=f(g):a==="comma"&&nn(g)&&(g=Gc.maybeMap(g,function(U){return U instanceof Date?f(U):U})),g===null){if(i)return u&&!m?u(r,Mt.encoder,h,"key",v):r;g=""}if($A(g)||Gc.isBuffer(g)){if(u){var T=m?r:u(r,Mt.encoder,h,"key",v);return[_(T)+"="+_(u(g,Mt.encoder,h,"value",v))]}return[_(r)+"="+_(String(g))]}var R=[];if(typeof g>"u")return R;var M;if(a==="comma"&&nn(g))m&&u&&(g=Gc.maybeMap(g,u)),M=[{value:g.length>0?g.join(",")||null:void 0}];else if(nn(l))M=l;else{var j=Object.keys(g);M=d?j.sort(d):j}var q=c?r.replace(/\./g,"%2E"):r,H=n&&nn(g)&&g.length===1?q+"[]":q;if(s&&nn(g)&&g.length===0)return H+"[]";for(var N=0;N"u"?e.encodeDotInKeys===!0?!0:Mt.allowDots:!!e.allowDots;return{addQueryPrefix:typeof e.addQueryPrefix=="boolean"?e.addQueryPrefix:Mt.addQueryPrefix,allowDots:o,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:Mt.allowEmptyArrays,arrayFormat:i,charset:r,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:Mt.charsetSentinel,commaRoundTrip:e.commaRoundTrip,delimiter:typeof e.delimiter>"u"?Mt.delimiter:e.delimiter,encode:typeof e.encode=="boolean"?e.encode:Mt.encode,encodeDotInKeys:typeof e.encodeDotInKeys=="boolean"?e.encodeDotInKeys:Mt.encodeDotInKeys,encoder:typeof e.encoder=="function"?e.encoder:Mt.encoder,encodeValuesOnly:typeof e.encodeValuesOnly=="boolean"?e.encodeValuesOnly:Mt.encodeValuesOnly,filter:s,format:a,formatter:n,serializeDate:typeof e.serializeDate=="function"?e.serializeDate:Mt.serializeDate,skipNulls:typeof e.skipNulls=="boolean"?e.skipNulls:Mt.skipNulls,sort:typeof e.sort=="function"?e.sort:null,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:Mt.strictNullHandling}};tb.exports=function(t,e){var r=t,a=CA(e),n,s;typeof a.filter=="function"?(s=a.filter,r=s("",r)):nn(a.filter)&&(s=a.filter,n=s);var i=[];if(typeof r!="object"||r===null)return"";var o=Q_[a.arrayFormat],c=o==="comma"&&a.commaRoundTrip;n||(n=Object.keys(r)),a.sort&&n.sort(a.sort);for(var u=Y_(),l=0;l0?f+p:""}});var sb=V((FZ,ab)=>{"use strict";var Rs=Mp(),Dp=Object.prototype.hasOwnProperty,IA=Array.isArray,Rt={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:Rs.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1},AA=function(t){return t.replace(/&#(\d+);/g,function(e,r){return String.fromCharCode(parseInt(r,10))})},nb=function(t,e){return t&&typeof t=="string"&&e.comma&&t.indexOf(",")>-1?t.split(","):t},NA="utf8=%26%2310003%3B",MA="utf8=%E2%9C%93",jA=function(e,r){var a={__proto__:null},n=r.ignoreQueryPrefix?e.replace(/^\?/,""):e;n=n.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var s=r.parameterLimit===1/0?void 0:r.parameterLimit,i=n.split(r.delimiter,s),o=-1,c,u=r.charset;if(r.charsetSentinel)for(c=0;c-1&&(v=IA(v)?[v]:v);var _=Dp.call(a,f);_&&r.duplicates==="combine"?a[f]=Rs.combine(a[f],v):(!_||r.duplicates==="last")&&(a[f]=v)}return a},DA=function(t,e,r,a){for(var n=a?e:nb(e,r),s=t.length-1;s>=0;--s){var i,o=t[s];if(o==="[]"&&r.parseArrays)i=r.allowEmptyArrays&&(n===""||r.strictNullHandling&&n===null)?[]:[].concat(n);else{i=r.plainObjects?Object.create(null):{};var c=o.charAt(0)==="["&&o.charAt(o.length-1)==="]"?o.slice(1,-1):o,u=r.decodeDotInKeys?c.replace(/%2E/g,"."):c,l=parseInt(u,10);!r.parseArrays&&u===""?i={0:n}:!isNaN(l)&&o!==u&&String(l)===u&&l>=0&&r.parseArrays&&l<=r.arrayLimit?(i=[],i[l]=n):u!=="__proto__"&&(i[u]=n)}n=i}return n},LA=function(e,r,a,n){if(e){var s=a.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,i=/(\[[^[\]]*])/,o=/(\[[^[\]]*])/g,c=a.depth>0&&i.exec(s),u=c?s.slice(0,c.index):s,l=[];if(u){if(!a.plainObjects&&Dp.call(Object.prototype,u)&&!a.allowPrototypes)return;l.push(u)}for(var d=0;a.depth>0&&(c=o.exec(s))!==null&&d"u"?Rt.charset:e.charset,a=typeof e.duplicates>"u"?Rt.duplicates:e.duplicates;if(a!=="combine"&&a!=="first"&&a!=="last")throw new TypeError("The duplicates option must be either combine, first, or last");var n=typeof e.allowDots>"u"?e.decodeDotInKeys===!0?!0:Rt.allowDots:!!e.allowDots;return{allowDots:n,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:Rt.allowEmptyArrays,allowPrototypes:typeof e.allowPrototypes=="boolean"?e.allowPrototypes:Rt.allowPrototypes,allowSparse:typeof e.allowSparse=="boolean"?e.allowSparse:Rt.allowSparse,arrayLimit:typeof e.arrayLimit=="number"?e.arrayLimit:Rt.arrayLimit,charset:r,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:Rt.charsetSentinel,comma:typeof e.comma=="boolean"?e.comma:Rt.comma,decodeDotInKeys:typeof e.decodeDotInKeys=="boolean"?e.decodeDotInKeys:Rt.decodeDotInKeys,decoder:typeof e.decoder=="function"?e.decoder:Rt.decoder,delimiter:typeof e.delimiter=="string"||Rs.isRegExp(e.delimiter)?e.delimiter:Rt.delimiter,depth:typeof e.depth=="number"||e.depth===!1?+e.depth:Rt.depth,duplicates:a,ignoreQueryPrefix:e.ignoreQueryPrefix===!0,interpretNumericEntities:typeof e.interpretNumericEntities=="boolean"?e.interpretNumericEntities:Rt.interpretNumericEntities,parameterLimit:typeof e.parameterLimit=="number"?e.parameterLimit:Rt.parameterLimit,parseArrays:e.parseArrays!==!1,plainObjects:typeof e.plainObjects=="boolean"?e.plainObjects:Rt.plainObjects,strictDepth:typeof e.strictDepth=="boolean"?!!e.strictDepth:Rt.strictDepth,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:Rt.strictNullHandling}};ab.exports=function(t,e){var r=qA(e);if(t===""||t===null||typeof t>"u")return r.plainObjects?Object.create(null):{};for(var a=typeof t=="string"?jA(t,r):t,n=r.plainObjects?Object.create(null):{},s=Object.keys(a),i=0;i{"use strict";var FA=rb(),UA=sb(),zA=Vc();ib.exports={formats:zA,parse:UA,stringify:FA}});var pb=V((zZ,db)=>{"use strict";var HA=ds(),BA=Li(),Wc=ca(),Fr=Sr()("body-parser:urlencoded"),VA=Yr()("body-parser"),GA=Xi(),cb=bs();db.exports=ZA;var ob=Object.create(null);function ZA(t){var e=t||{};e.extended===void 0&&VA("undefined extended: provide extended option");var r=e.extended!==!1,a=e.inflate!==!1,n=typeof e.limit!="number"?HA.parse(e.limit||"100kb"):e.limit,s=e.type||"application/x-www-form-urlencoded",i=e.verify||!1,o=typeof e.depth!="number"?Number(e.depth||32):e.depth;if(i!==!1&&typeof i!="function")throw new TypeError("option verify must be function");var c=r?WA(e):XA(e),u=typeof s!="function"?JA(s):s;function l(d){return d.length?c(d):{}}return function(p,f,v){if(p._body){Fr("body already parsed"),v();return}if(p.body=p.body||{},!cb.hasBody(p)){Fr("skip empty body"),v();return}if(Fr("content-type %j",p.headers["content-type"]),!u(p)){Fr("skip parsing"),v();return}var _=KA(p)||"utf-8";if(_!=="utf-8"){Fr("invalid charset"),v(Wc(415,'unsupported charset "'+_.toUpperCase()+'"',{charset:_,type:"charset.unsupported"}));return}GA(p,f,v,l,Fr,{debug:Fr,encoding:_,inflate:a,limit:n,verify:i,depth:o})}}function WA(t){var e=t.parameterLimit!==void 0?t.parameterLimit:1e3,r=typeof t.depth!="number"?Number(t.depth||32):t.depth,a=lb("qs");if(isNaN(e)||e<1)throw new TypeError("option parameterLimit must be a positive number");if(isNaN(r)||r<0)throw new TypeError("option depth must be a zero or a positive number");return isFinite(e)&&(e=e|0),function(s){var i=ub(s,e);if(i===void 0)throw Fr("too many parameters"),Wc(413,"too many parameters",{type:"parameters.too.many"});var o=Math.max(100,i);Fr("parse extended urlencoding");try{return a(s,{allowPrototypes:!0,arrayLimit:o,depth:r,strictDepth:!0,parameterLimit:e})}catch(c){throw c instanceof RangeError?Wc(400,"The input exceeded the depth",{type:"querystring.parse.rangeError"}):c}}}function KA(t){try{return(BA.parse(t).parameters.charset||"").toLowerCase()}catch{return}}function ub(t,e){for(var r=0,a=0;(a=t.indexOf("&",a))!==-1;)if(r++,a++,r===e)return;return r}function lb(t){var e=ob[t];if(e!==void 0)return e.parse;switch(t){case"qs":e=Zc();break;case"querystring":e=require("querystring");break}return ob[t]=e,e.parse}function XA(t){var e=t.parameterLimit!==void 0?t.parameterLimit:1e3,r=lb("querystring");if(isNaN(e)||e<1)throw new TypeError("option parameterLimit must be a positive number");return isFinite(e)&&(e=e|0),function(n){var s=ub(n,e);if(s===void 0)throw Fr("too many parameters"),Wc(413,"too many parameters",{type:"parameters.too.many"});return Fr("parse urlencoding"),r(n,void 0,void 0,{maxKeys:e})}}function JA(t){return function(r){return!!cb(r,t)}}});var hb=V((Dn,mb)=>{"use strict";var YA=Yr()("body-parser"),fb=Object.create(null);Dn=mb.exports=YA.function(QA,"bodyParser: use individual json/urlencoded middlewares");Object.defineProperty(Dn,"json",{configurable:!0,enumerable:!0,get:Kc("json")});Object.defineProperty(Dn,"raw",{configurable:!0,enumerable:!0,get:Kc("raw")});Object.defineProperty(Dn,"text",{configurable:!0,enumerable:!0,get:Kc("text")});Object.defineProperty(Dn,"urlencoded",{configurable:!0,enumerable:!0,get:Kc("urlencoded")});function QA(t){var e=Object.create(t||null,{type:{configurable:!0,enumerable:!0,value:void 0,writable:!0}}),r=Dn.urlencoded(e),a=Dn.json(e);return function(s,i,o){a(s,i,function(c){if(c)return o(c);r(s,i,o)})}}function Kc(t){return function(){return eN(t)}}function eN(t){var e=fb[t];if(e!==void 0)return e;switch(t){case"json":e=Bg();break;case"raw":e=Zg();break;case"text":e=Xg();break;case"urlencoded":e=pb();break}return fb[t]=e}});var gb=V((HZ,vb)=>{"use strict";vb.exports=rN;var tN=Object.prototype.hasOwnProperty;function rN(t,e,r){if(!t)throw new TypeError("argument dest is required");if(!e)throw new TypeError("argument src is required");return r===void 0&&(r=!0),Object.getOwnPropertyNames(e).forEach(function(n){if(!(!r&&tN.call(t,n))){var s=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,s)}}),t}});var Xc=V((BZ,yb)=>{"use strict";yb.exports=iN;var nN=/(?:[^\x21\x23-\x3B\x3D\x3F-\x5F\x61-\x7A\x7C\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g,aN=/(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g,sN="$1\uFFFD$2";function iN(t){return String(t).replace(aN,sN).replace(nN,encodeURI)}});var lo=V((VZ,_b)=>{"use strict";var oN=/["'&<>]/;_b.exports=cN;function cN(t){var e=""+t,r=oN.exec(e);if(!r)return e;var a,n="",s=0,i=0;for(s=r.index;s{"use strict";var Sb=require("url"),bb=Sb.parse,Jc=Sb.Url;Lp.exports=xb;Lp.exports.original=uN;function xb(t){var e=t.url;if(e!==void 0){var r=t._parsedUrl;return Eb(e,r)?r:(r=wb(e),r._raw=e,t._parsedUrl=r)}}function uN(t){var e=t.originalUrl;if(typeof e!="string")return xb(t);var r=t._parsedOriginalUrl;return Eb(e,r)?r:(r=wb(e),r._raw=e,t._parsedOriginalUrl=r)}function wb(t){if(typeof t!="string"||t.charCodeAt(0)!==47)return bb(t);for(var e=t,r=null,a=null,n=1;n{"use strict";var qp=Sr()("finalhandler"),lN=Xc(),dN=lo(),kb=Ki(),pN=Ps(),Rb=Fi(),fN=Cc(),mN=/\x20{2}/g,hN=/\n/g,vN=typeof setImmediate=="function"?setImmediate:function(t){process.nextTick(t.bind.apply(t,arguments))},gN=kb.isFinished;function yN(t){var e=dN(t).replace(hN,"
").replace(mN,"  ");return` +\v\f\r\x1B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},hproman8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD"},macintosh:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},ascii:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},tis620:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"}}});var jC=j(NC=>{"use strict";var Is=eo().Buffer;NC._dbcs=ji;var Fr=-1,CC=-2,Sn=-10,li=-1e3,Ts=new Array(256),$l=-1;for(fm=0;fm<256;fm++)Ts[fm]=Fr;var fm;function ji(t,e){if(this.encodingName=t.encodingName,!t)throw new Error("DBCS codec is called without the data.");if(!t.table)throw new Error("Encoding '"+this.encodingName+"' has no data.");var r=t.table();this.decodeTables=[],this.decodeTables[0]=Ts.slice(0),this.decodeTableSeq=[];for(var n=0;n0;t>>=8)e.push(t&255);e.length==0&&e.push(0);for(var r=this.decodeTables[0],n=e.length-1;n>0;n--){var i=r[e[n]];if(i==Fr)r[e[n]]=li-this.decodeTables.length,this.decodeTables.push(r=Ts.slice(0));else if(i<=li)r=this.decodeTables[li-i];else throw new Error("Overwrite byte in "+this.encodingName+", addr: "+t.toString(16))}return r};ji.prototype._addDecodeChunk=function(t){var e=parseInt(t[0],16),r=this._getDecodeTrieNode(e);e=e&255;for(var n=1;n255)throw new Error("Incorrect chunk in "+this.encodingName+" at addr "+t[0]+": too long"+e)};ji.prototype._getEncodeBucket=function(t){var e=t>>8;return this.encodeTable[e]===void 0&&(this.encodeTable[e]=Ts.slice(0)),this.encodeTable[e]};ji.prototype._setEncodeChar=function(t,e){var r=this._getEncodeBucket(t),n=t&255;r[n]<=Sn?this.encodeTableSeq[Sn-r[n]][$l]=e:r[n]==Fr&&(r[n]=e)};ji.prototype._setEncodeSequence=function(t,e){var r=t[0],n=this._getEncodeBucket(r),i=r&255,a;n[i]<=Sn?a=this.encodeTableSeq[Sn-n[i]]:(a={},n[i]!==Fr&&(a[$l]=n[i]),n[i]=Sn-this.encodeTableSeq.length,this.encodeTableSeq.push(a));for(var o=1;o=0?this._setEncodeChar(a,o):a<=li?this._fillEncodeTable(li-a,o<<8,r):a<=Sn&&this._setEncodeSequence(this.decodeTableSeq[Sn-a],o))}};function mm(t,e){this.leadSurrogate=-1,this.seqObj=void 0,this.encodeTable=e.encodeTable,this.encodeTableSeq=e.encodeTableSeq,this.defaultCharSingleByte=e.defCharSB,this.gb18030=e.gb18030}mm.prototype.write=function(t){for(var e=Is.alloc(t.length*(this.gb18030?4:3)),r=this.leadSurrogate,n=this.seqObj,i=-1,a=0,o=0;;){if(i===-1){if(a==t.length)break;var s=t.charCodeAt(a++)}else{var s=i;i=-1}if(55296<=s&&s<57344)if(s<56320)if(r===-1){r=s;continue}else r=s,s=Fr;else r!==-1?(s=65536+(r-55296)*1024+(s-56320),r=-1):s=Fr;else r!==-1&&(i=s,s=Fr,r=-1);var c=Fr;if(n!==void 0&&s!=Fr){var u=n[s];if(typeof u=="object"){n=u;continue}else typeof u=="number"?c=u:u==null&&(u=n[$l],u!==void 0&&(c=u,i=s));n=void 0}else if(s>=0){var l=this.encodeTable[s>>8];if(l!==void 0&&(c=l[s&255]),c<=Sn){n=this.encodeTableSeq[Sn-c];continue}if(c==Fr&&this.gb18030){var d=bS(this.gb18030.uChars,s);if(d!=-1){var c=this.gb18030.gbChars[d]+(s-this.gb18030.uChars[d]);e[o++]=129+Math.floor(c/12600),c=c%12600,e[o++]=48+Math.floor(c/1260),c=c%1260,e[o++]=129+Math.floor(c/10),c=c%10,e[o++]=48+c;continue}}}c===Fr&&(c=this.defaultCharSingleByte),c<256?e[o++]=c:c<65536?(e[o++]=c>>8,e[o++]=c&255):(e[o++]=c>>16,e[o++]=c>>8&255,e[o++]=c&255)}return this.seqObj=n,this.leadSurrogate=r,e.slice(0,o)};mm.prototype.end=function(){if(!(this.leadSurrogate===-1&&this.seqObj===void 0)){var t=Is.alloc(10),e=0;if(this.seqObj){var r=this.seqObj[$l];r!==void 0&&(r<256?t[e++]=r:(t[e++]=r>>8,t[e++]=r&255)),this.seqObj=void 0}return this.leadSurrogate!==-1&&(t[e++]=this.defaultCharSingleByte,this.leadSurrogate=-1),t.slice(0,e)}};mm.prototype.findIdx=bS;function _S(t,e){this.nodeIdx=0,this.prevBuf=Is.alloc(0),this.decodeTables=e.decodeTables,this.decodeTableSeq=e.decodeTableSeq,this.defaultCharUnicode=e.defaultCharUnicode,this.gb18030=e.gb18030}_S.prototype.write=function(t){var e=Is.alloc(t.length*2),r=this.nodeIdx,n=this.prevBuf,i=this.prevBuf.length,a=-this.prevBuf.length,o;i>0&&(n=Is.concat([n,t.slice(0,10)]));for(var s=0,c=0;s=0?t[s]:n[s+i],o=this.decodeTables[r][u];if(!(o>=0))if(o===Fr)s=a,o=this.defaultCharUnicode.charCodeAt(0);else if(o===CC){var l=a>=0?t.slice(a,s+1):n.slice(a+i,s+1+i),d=(l[0]-129)*12600+(l[1]-48)*1260+(l[2]-129)*10+(l[3]-48),p=bS(this.gb18030.gbChars,d);o=this.gb18030.uChars[p]+d-this.gb18030.gbChars[p]}else if(o<=li){r=li-o;continue}else if(o<=Sn){for(var f=this.decodeTableSeq[Sn-o],h=0;h>8;o=f[f.length-1]}else throw new Error("iconv-lite internal error: invalid decoding table value "+o+" at "+r+"/"+u);if(o>65535){o-=65536;var _=55296+Math.floor(o/1024);e[c++]=_&255,e[c++]=_>>8,o=56320+o%1024}e[c++]=o&255,e[c++]=o>>8,r=0,a=s+1}return this.nodeIdx=r,this.prevBuf=a>=0?t.slice(a):n.slice(a+i),e.slice(0,c).toString("ucs2")};_S.prototype.end=function(){for(var t="";this.prevBuf.length>0;){t+=this.defaultCharUnicode;var e=this.prevBuf.slice(1);this.prevBuf=Is.alloc(0),this.nodeIdx=0,e.length>0&&(t+=this.write(e))}return this.nodeIdx=0,t};function bS(t,e){if(t[0]>e)return-1;for(var r=0,n=t.length;r{HG.exports=[["0","\0",128],["a1","\uFF61",62],["8140","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7"],["8180","\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["81b8","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["81c8","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["81da","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["81f0","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["81fc","\u25EF"],["824f","\uFF10",9],["8260","\uFF21",25],["8281","\uFF41",25],["829f","\u3041",82],["8340","\u30A1",62],["8380","\u30E0",22],["839f","\u0391",16,"\u03A3",6],["83bf","\u03B1",16,"\u03C3",6],["8440","\u0410",5,"\u0401\u0416",25],["8470","\u0430",5,"\u0451\u0436",7],["8480","\u043E",17],["849f","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["8740","\u2460",19,"\u2160",9],["875f","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["877e","\u337B"],["8780","\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["889f","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["8940","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186"],["8980","\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["8a40","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B"],["8a80","\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["8b40","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551"],["8b80","\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["8c40","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8"],["8c80","\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["8d40","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D"],["8d80","\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["8e40","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62"],["8e80","\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["8f40","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3"],["8f80","\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["9040","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8"],["9080","\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["9140","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB"],["9180","\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["9240","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4"],["9280","\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["9340","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC"],["9380","\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["9440","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885"],["9480","\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["9540","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577"],["9580","\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["9640","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6"],["9680","\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["9740","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32"],["9780","\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["9840","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["989f","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["9940","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED"],["9980","\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["9a40","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638"],["9a80","\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["9b40","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80"],["9b80","\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["9c40","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060"],["9c80","\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["9d40","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B"],["9d80","\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["9e40","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E"],["9e80","\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["9f40","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF"],["9f80","\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["e040","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD"],["e080","\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e140","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF"],["e180","\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e240","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0"],["e280","\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e340","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37"],["e380","\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e440","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264"],["e480","\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e540","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC"],["e580","\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["e640","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7"],["e680","\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["e740","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C"],["e780","\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["e840","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599"],["e880","\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["e940","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43"],["e980","\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["ea40","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF"],["ea80","\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0\u582F\u69C7\u9059\u7464\u51DC\u7199"],["ed40","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F"],["ed80","\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["ee40","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559"],["ee80","\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["eeef","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["f040","\uE000",62],["f080","\uE03F",124],["f140","\uE0BC",62],["f180","\uE0FB",124],["f240","\uE178",62],["f280","\uE1B7",124],["f340","\uE234",62],["f380","\uE273",124],["f440","\uE2F0",62],["f480","\uE32F",124],["f540","\uE3AC",62],["f580","\uE3EB",124],["f640","\uE468",62],["f680","\uE4A7",124],["f740","\uE524",62],["f780","\uE563",124],["f840","\uE5E0",62],["f880","\uE61F",124],["f940","\uE69C"],["fa40","\u2170",9,"\u2160",9,"\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u2235\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A"],["fa80","\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F"],["fb40","\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19"],["fb80","\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9"],["fc40","\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"]]});var MC=j((P$e,BG)=>{BG.exports=[["0","\0",127],["8ea1","\uFF61",62],["a1a1","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7"],["a2a1","\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["a2ba","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["a2ca","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["a2dc","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["a2f2","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["a2fe","\u25EF"],["a3b0","\uFF10",9],["a3c1","\uFF21",25],["a3e1","\uFF41",25],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a8a1","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["ada1","\u2460",19,"\u2160",9],["adc0","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["addf","\u337B\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["b0a1","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["b1a1","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC"],["b2a1","\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["b3a1","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431"],["b4a1","\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["b5a1","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC"],["b6a1","\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["b7a1","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372"],["b8a1","\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["b9a1","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC"],["baa1","\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["bba1","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642"],["bca1","\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["bda1","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F"],["bea1","\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["bfa1","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE"],["c0a1","\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["c1a1","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E"],["c2a1","\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["c3a1","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5"],["c4a1","\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["c5a1","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230"],["c6a1","\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["c7a1","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6"],["c8a1","\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["c9a1","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D"],["caa1","\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["cba1","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80"],["cca1","\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["cda1","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483"],["cea1","\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["cfa1","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["d0a1","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["d1a1","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8"],["d2a1","\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["d3a1","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709"],["d4a1","\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["d5a1","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53"],["d6a1","\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["d7a1","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A"],["d8a1","\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["d9a1","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC"],["daa1","\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["dba1","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD"],["dca1","\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["dda1","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE"],["dea1","\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["dfa1","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC"],["e0a1","\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e1a1","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670"],["e2a1","\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e3a1","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50"],["e4a1","\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e5a1","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A"],["e6a1","\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e7a1","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9"],["e8a1","\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e9a1","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759"],["eaa1","\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["eba1","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B"],["eca1","\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["eda1","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8"],["eea1","\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["efa1","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E"],["f0a1","\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["f1a1","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7"],["f2a1","\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["f3a1","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0"],["f4a1","\u582F\u69C7\u9059\u7464\u51DC\u7199"],["f9a1","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7"],["faa1","\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["fba1","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA"],["fca1","\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["fcf1","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["8fa2af","\u02D8\u02C7\xB8\u02D9\u02DD\xAF\u02DB\u02DA\uFF5E\u0384\u0385"],["8fa2c2","\xA1\xA6\xBF"],["8fa2eb","\xBA\xAA\xA9\xAE\u2122\xA4\u2116"],["8fa6e1","\u0386\u0388\u0389\u038A\u03AA"],["8fa6e7","\u038C"],["8fa6e9","\u038E\u03AB"],["8fa6ec","\u038F"],["8fa6f1","\u03AC\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03C2\u03CD\u03CB\u03B0\u03CE"],["8fa7c2","\u0402",10,"\u040E\u040F"],["8fa7f2","\u0452",10,"\u045E\u045F"],["8fa9a1","\xC6\u0110"],["8fa9a4","\u0126"],["8fa9a6","\u0132"],["8fa9a8","\u0141\u013F"],["8fa9ab","\u014A\xD8\u0152"],["8fa9af","\u0166\xDE"],["8fa9c1","\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014B\xF8\u0153\xDF\u0167\xFE"],["8faaa1","\xC1\xC0\xC4\xC2\u0102\u01CD\u0100\u0104\xC5\xC3\u0106\u0108\u010C\xC7\u010A\u010E\xC9\xC8\xCB\xCA\u011A\u0116\u0112\u0118"],["8faaba","\u011C\u011E\u0122\u0120\u0124\xCD\xCC\xCF\xCE\u01CF\u0130\u012A\u012E\u0128\u0134\u0136\u0139\u013D\u013B\u0143\u0147\u0145\xD1\xD3\xD2\xD6\xD4\u01D1\u0150\u014C\xD5\u0154\u0158\u0156\u015A\u015C\u0160\u015E\u0164\u0162\xDA\xD9\xDC\xDB\u016C\u01D3\u0170\u016A\u0172\u016E\u0168\u01D7\u01DB\u01D9\u01D5\u0174\xDD\u0178\u0176\u0179\u017D\u017B"],["8faba1","\xE1\xE0\xE4\xE2\u0103\u01CE\u0101\u0105\xE5\xE3\u0107\u0109\u010D\xE7\u010B\u010F\xE9\xE8\xEB\xEA\u011B\u0117\u0113\u0119\u01F5\u011D\u011F"],["8fabbd","\u0121\u0125\xED\xEC\xEF\xEE\u01D0"],["8fabc5","\u012B\u012F\u0129\u0135\u0137\u013A\u013E\u013C\u0144\u0148\u0146\xF1\xF3\xF2\xF6\xF4\u01D2\u0151\u014D\xF5\u0155\u0159\u0157\u015B\u015D\u0161\u015F\u0165\u0163\xFA\xF9\xFC\xFB\u016D\u01D4\u0171\u016B\u0173\u016F\u0169\u01D8\u01DC\u01DA\u01D6\u0175\xFD\xFF\u0177\u017A\u017E\u017C"],["8fb0a1","\u4E02\u4E04\u4E05\u4E0C\u4E12\u4E1F\u4E23\u4E24\u4E28\u4E2B\u4E2E\u4E2F\u4E30\u4E35\u4E40\u4E41\u4E44\u4E47\u4E51\u4E5A\u4E5C\u4E63\u4E68\u4E69\u4E74\u4E75\u4E79\u4E7F\u4E8D\u4E96\u4E97\u4E9D\u4EAF\u4EB9\u4EC3\u4ED0\u4EDA\u4EDB\u4EE0\u4EE1\u4EE2\u4EE8\u4EEF\u4EF1\u4EF3\u4EF5\u4EFD\u4EFE\u4EFF\u4F00\u4F02\u4F03\u4F08\u4F0B\u4F0C\u4F12\u4F15\u4F16\u4F17\u4F19\u4F2E\u4F31\u4F60\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E\u4F40\u4F42\u4F48\u4F49\u4F4B\u4F4C\u4F52\u4F54\u4F56\u4F58\u4F5F\u4F63\u4F6A\u4F6C\u4F6E\u4F71\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F7E\u4F81\u4F82\u4F84"],["8fb1a1","\u4F85\u4F89\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F94\u4F97\u4F99\u4F9A\u4F9E\u4F9F\u4FB2\u4FB7\u4FB9\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0\u4FC1\u4FC5\u4FC6\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FCF\u4FD2\u4FDC\u4FE0\u4FE2\u4FF0\u4FF2\u4FFC\u4FFD\u4FFF\u5000\u5001\u5004\u5007\u500A\u500C\u500E\u5010\u5013\u5017\u5018\u501B\u501C\u501D\u501E\u5022\u5027\u502E\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504A\u504C\u504E\u5051\u5052\u5053\u5057\u5059\u505F\u5060\u5062\u5063\u5066\u5067\u506A\u506D\u5070\u5071\u503B\u5081\u5083\u5084\u5086\u508A\u508E\u508F\u5090"],["8fb2a1","\u5092\u5093\u5094\u5096\u509B\u509C\u509E",4,"\u50AA\u50AF\u50B0\u50B9\u50BA\u50BD\u50C0\u50C3\u50C4\u50C7\u50CC\u50CE\u50D0\u50D3\u50D4\u50D8\u50DC\u50DD\u50DF\u50E2\u50E4\u50E6\u50E8\u50E9\u50EF\u50F1\u50F6\u50FA\u50FE\u5103\u5106\u5107\u5108\u510B\u510C\u510D\u510E\u50F2\u5110\u5117\u5119\u511B\u511C\u511D\u511E\u5123\u5127\u5128\u512C\u512D\u512F\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514A\u514F\u5153\u5155\u5157\u5158\u515F\u5164\u5166\u517E\u5183\u5184\u518B\u518E\u5198\u519D\u51A1\u51A3\u51AD\u51B8\u51BA\u51BC\u51BE\u51BF\u51C2"],["8fb3a1","\u51C8\u51CF\u51D1\u51D2\u51D3\u51D5\u51D8\u51DE\u51E2\u51E5\u51EE\u51F2\u51F3\u51F4\u51F7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523C\u5245\u5249\u5255\u5257\u5258\u525A\u525C\u525F\u5260\u5261\u5266\u526E\u5277\u5278\u5279\u5280\u5282\u5285\u528A\u528C\u5293\u5295\u5296\u5297\u5298\u529A\u529C\u52A4\u52A5\u52A6\u52A7\u52AF\u52B0\u52B6\u52B7\u52B8\u52BA\u52BB\u52BD\u52C0\u52C4\u52C6\u52C8\u52CC\u52CF\u52D1\u52D4\u52D6\u52DB\u52DC\u52E1\u52E5\u52E8\u52E9\u52EA\u52EC\u52F0\u52F1\u52F4\u52F6\u52F7\u5300\u5303\u530A\u530B"],["8fb4a1","\u530C\u5311\u5313\u5318\u531B\u531C\u531E\u531F\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u5330\u5332\u5335\u533C\u533D\u533E\u5342\u534C\u534B\u5359\u535B\u5361\u5363\u5365\u536C\u536D\u5372\u5379\u537E\u5383\u5387\u5388\u538E\u5393\u5394\u5399\u539D\u53A1\u53A4\u53AA\u53AB\u53AF\u53B2\u53B4\u53B5\u53B7\u53B8\u53BA\u53BD\u53C0\u53C5\u53CF\u53D2\u53D3\u53D5\u53DA\u53DD\u53DE\u53E0\u53E6\u53E7\u53F5\u5402\u5413\u541A\u5421\u5427\u5428\u542A\u542F\u5431\u5434\u5435\u5443\u5444\u5447\u544D\u544F\u545E\u5462\u5464\u5466\u5467\u5469\u546B\u546D\u546E\u5474\u547F"],["8fb5a1","\u5481\u5483\u5485\u5488\u5489\u548D\u5491\u5495\u5496\u549C\u549F\u54A1\u54A6\u54A7\u54A9\u54AA\u54AD\u54AE\u54B1\u54B7\u54B9\u54BA\u54BB\u54BF\u54C6\u54CA\u54CD\u54CE\u54E0\u54EA\u54EC\u54EF\u54F6\u54FC\u54FE\u54FF\u5500\u5501\u5505\u5508\u5509\u550C\u550D\u550E\u5515\u552A\u552B\u5532\u5535\u5536\u553B\u553C\u553D\u5541\u5547\u5549\u554A\u554D\u5550\u5551\u5558\u555A\u555B\u555E\u5560\u5561\u5564\u5566\u557F\u5581\u5582\u5586\u5588\u558E\u558F\u5591\u5592\u5593\u5594\u5597\u55A3\u55A4\u55AD\u55B2\u55BF\u55C1\u55C3\u55C6\u55C9\u55CB\u55CC\u55CE\u55D1\u55D2"],["8fb6a1","\u55D3\u55D7\u55D8\u55DB\u55DE\u55E2\u55E9\u55F6\u55FF\u5605\u5608\u560A\u560D",5,"\u5619\u562C\u5630\u5633\u5635\u5637\u5639\u563B\u563C\u563D\u563F\u5640\u5641\u5643\u5644\u5646\u5649\u564B\u564D\u564F\u5654\u565E\u5660\u5661\u5662\u5663\u5666\u5669\u566D\u566F\u5671\u5672\u5675\u5684\u5685\u5688\u568B\u568C\u5695\u5699\u569A\u569D\u569E\u569F\u56A6\u56A7\u56A8\u56A9\u56AB\u56AC\u56AD\u56B1\u56B3\u56B7\u56BE\u56C5\u56C9\u56CA\u56CB\u56CF\u56D0\u56CC\u56CD\u56D9\u56DC\u56DD\u56DF\u56E1\u56E4",4,"\u56F1\u56EB\u56ED"],["8fb7a1","\u56F6\u56F7\u5701\u5702\u5707\u570A\u570C\u5711\u5715\u571A\u571B\u571D\u5720\u5722\u5723\u5724\u5725\u5729\u572A\u572C\u572E\u572F\u5733\u5734\u573D\u573E\u573F\u5745\u5746\u574C\u574D\u5752\u5762\u5765\u5767\u5768\u576B\u576D",4,"\u5773\u5774\u5775\u5777\u5779\u577A\u577B\u577C\u577E\u5781\u5783\u578C\u5794\u5797\u5799\u579A\u579C\u579D\u579E\u579F\u57A1\u5795\u57A7\u57A8\u57A9\u57AC\u57B8\u57BD\u57C7\u57C8\u57CC\u57CF\u57D5\u57DD\u57DE\u57E4\u57E6\u57E7\u57E9\u57ED\u57F0\u57F5\u57F6\u57F8\u57FD\u57FE\u57FF\u5803\u5804\u5808\u5809\u57E1"],["8fb8a1","\u580C\u580D\u581B\u581E\u581F\u5820\u5826\u5827\u582D\u5832\u5839\u583F\u5849\u584C\u584D\u584F\u5850\u5855\u585F\u5861\u5864\u5867\u5868\u5878\u587C\u587F\u5880\u5881\u5887\u5888\u5889\u588A\u588C\u588D\u588F\u5890\u5894\u5896\u589D\u58A0\u58A1\u58A2\u58A6\u58A9\u58B1\u58B2\u58C4\u58BC\u58C2\u58C8\u58CD\u58CE\u58D0\u58D2\u58D4\u58D6\u58DA\u58DD\u58E1\u58E2\u58E9\u58F3\u5905\u5906\u590B\u590C\u5912\u5913\u5914\u8641\u591D\u5921\u5923\u5924\u5928\u592F\u5930\u5933\u5935\u5936\u593F\u5943\u5946\u5952\u5953\u5959\u595B\u595D\u595E\u595F\u5961\u5963\u596B\u596D"],["8fb9a1","\u596F\u5972\u5975\u5976\u5979\u597B\u597C\u598B\u598C\u598E\u5992\u5995\u5997\u599F\u59A4\u59A7\u59AD\u59AE\u59AF\u59B0\u59B3\u59B7\u59BA\u59BC\u59C1\u59C3\u59C4\u59C8\u59CA\u59CD\u59D2\u59DD\u59DE\u59DF\u59E3\u59E4\u59E7\u59EE\u59EF\u59F1\u59F2\u59F4\u59F7\u5A00\u5A04\u5A0C\u5A0D\u5A0E\u5A12\u5A13\u5A1E\u5A23\u5A24\u5A27\u5A28\u5A2A\u5A2D\u5A30\u5A44\u5A45\u5A47\u5A48\u5A4C\u5A50\u5A55\u5A5E\u5A63\u5A65\u5A67\u5A6D\u5A77\u5A7A\u5A7B\u5A7E\u5A8B\u5A90\u5A93\u5A96\u5A99\u5A9C\u5A9E\u5A9F\u5AA0\u5AA2\u5AA7\u5AAC\u5AB1\u5AB2\u5AB3\u5AB5\u5AB8\u5ABA\u5ABB\u5ABF"],["8fbaa1","\u5AC4\u5AC6\u5AC8\u5ACF\u5ADA\u5ADC\u5AE0\u5AE5\u5AEA\u5AEE\u5AF5\u5AF6\u5AFD\u5B00\u5B01\u5B08\u5B17\u5B34\u5B19\u5B1B\u5B1D\u5B21\u5B25\u5B2D\u5B38\u5B41\u5B4B\u5B4C\u5B52\u5B56\u5B5E\u5B68\u5B6E\u5B6F\u5B7C\u5B7D\u5B7E\u5B7F\u5B81\u5B84\u5B86\u5B8A\u5B8E\u5B90\u5B91\u5B93\u5B94\u5B96\u5BA8\u5BA9\u5BAC\u5BAD\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBC\u5BC0\u5BC1\u5BCD\u5BCF\u5BD6",4,"\u5BE0\u5BEF\u5BF1\u5BF4\u5BFD\u5C0C\u5C17\u5C1E\u5C1F\u5C23\u5C26\u5C29\u5C2B\u5C2C\u5C2E\u5C30\u5C32\u5C35\u5C36\u5C59\u5C5A\u5C5C\u5C62\u5C63\u5C67\u5C68\u5C69"],["8fbba1","\u5C6D\u5C70\u5C74\u5C75\u5C7A\u5C7B\u5C7C\u5C7D\u5C87\u5C88\u5C8A\u5C8F\u5C92\u5C9D\u5C9F\u5CA0\u5CA2\u5CA3\u5CA6\u5CAA\u5CB2\u5CB4\u5CB5\u5CBA\u5CC9\u5CCB\u5CD2\u5CDD\u5CD7\u5CEE\u5CF1\u5CF2\u5CF4\u5D01\u5D06\u5D0D\u5D12\u5D2B\u5D23\u5D24\u5D26\u5D27\u5D31\u5D34\u5D39\u5D3D\u5D3F\u5D42\u5D43\u5D46\u5D48\u5D55\u5D51\u5D59\u5D4A\u5D5F\u5D60\u5D61\u5D62\u5D64\u5D6A\u5D6D\u5D70\u5D79\u5D7A\u5D7E\u5D7F\u5D81\u5D83\u5D88\u5D8A\u5D92\u5D93\u5D94\u5D95\u5D99\u5D9B\u5D9F\u5DA0\u5DA7\u5DAB\u5DB0\u5DB4\u5DB8\u5DB9\u5DC3\u5DC7\u5DCB\u5DD0\u5DCE\u5DD8\u5DD9\u5DE0\u5DE4"],["8fbca1","\u5DE9\u5DF8\u5DF9\u5E00\u5E07\u5E0D\u5E12\u5E14\u5E15\u5E18\u5E1F\u5E20\u5E2E\u5E28\u5E32\u5E35\u5E3E\u5E4B\u5E50\u5E49\u5E51\u5E56\u5E58\u5E5B\u5E5C\u5E5E\u5E68\u5E6A",4,"\u5E70\u5E80\u5E8B\u5E8E\u5EA2\u5EA4\u5EA5\u5EA8\u5EAA\u5EAC\u5EB1\u5EB3\u5EBD\u5EBE\u5EBF\u5EC6\u5ECC\u5ECB\u5ECE\u5ED1\u5ED2\u5ED4\u5ED5\u5EDC\u5EDE\u5EE5\u5EEB\u5F02\u5F06\u5F07\u5F08\u5F0E\u5F19\u5F1C\u5F1D\u5F21\u5F22\u5F23\u5F24\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F34\u5F36\u5F3B\u5F3D\u5F3F\u5F40\u5F44\u5F45\u5F47\u5F4D\u5F50\u5F54\u5F58\u5F5B\u5F60\u5F63\u5F64\u5F67"],["8fbda1","\u5F6F\u5F72\u5F74\u5F75\u5F78\u5F7A\u5F7D\u5F7E\u5F89\u5F8D\u5F8F\u5F96\u5F9C\u5F9D\u5FA2\u5FA7\u5FAB\u5FA4\u5FAC\u5FAF\u5FB0\u5FB1\u5FB8\u5FC4\u5FC7\u5FC8\u5FC9\u5FCB\u5FD0",4,"\u5FDE\u5FE1\u5FE2\u5FE8\u5FE9\u5FEA\u5FEC\u5FED\u5FEE\u5FEF\u5FF2\u5FF3\u5FF6\u5FFA\u5FFC\u6007\u600A\u600D\u6013\u6014\u6017\u6018\u601A\u601F\u6024\u602D\u6033\u6035\u6040\u6047\u6048\u6049\u604C\u6051\u6054\u6056\u6057\u605D\u6061\u6067\u6071\u607E\u607F\u6082\u6086\u6088\u608A\u608E\u6091\u6093\u6095\u6098\u609D\u609E\u60A2\u60A4\u60A5\u60A8\u60B0\u60B1\u60B7"],["8fbea1","\u60BB\u60BE\u60C2\u60C4\u60C8\u60C9\u60CA\u60CB\u60CE\u60CF\u60D4\u60D5\u60D9\u60DB\u60DD\u60DE\u60E2\u60E5\u60F2\u60F5\u60F8\u60FC\u60FD\u6102\u6107\u610A\u610C\u6110",4,"\u6116\u6117\u6119\u611C\u611E\u6122\u612A\u612B\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615E\u6160\u616C\u6172\u6178\u617B\u617C\u617F\u6180\u6181\u6183\u6184\u618B\u618D\u6192\u6193\u6197\u6198\u619C\u619D\u619F\u61A0\u61A5\u61A8\u61AA\u61AD\u61B8\u61B9\u61BC\u61C0\u61C1\u61C2\u61CE\u61CF\u61D5\u61DC\u61DD\u61DE\u61DF\u61E1\u61E2\u61E7\u61E9\u61E5"],["8fbfa1","\u61EC\u61ED\u61EF\u6201\u6203\u6204\u6207\u6213\u6215\u621C\u6220\u6222\u6223\u6227\u6229\u622B\u6239\u623D\u6242\u6243\u6244\u6246\u624C\u6250\u6251\u6252\u6254\u6256\u625A\u625C\u6264\u626D\u626F\u6273\u627A\u627D\u628D\u628E\u628F\u6290\u62A6\u62A8\u62B3\u62B6\u62B7\u62BA\u62BE\u62BF\u62C4\u62CE\u62D5\u62D6\u62DA\u62EA\u62F2\u62F4\u62FC\u62FD\u6303\u6304\u630A\u630B\u630D\u6310\u6313\u6316\u6318\u6329\u632A\u632D\u6335\u6336\u6339\u633C\u6341\u6342\u6343\u6344\u6346\u634A\u634B\u634E\u6352\u6353\u6354\u6358\u635B\u6365\u6366\u636C\u636D\u6371\u6374\u6375"],["8fc0a1","\u6378\u637C\u637D\u637F\u6382\u6384\u6387\u638A\u6390\u6394\u6395\u6399\u639A\u639E\u63A4\u63A6\u63AD\u63AE\u63AF\u63BD\u63C1\u63C5\u63C8\u63CE\u63D1\u63D3\u63D4\u63D5\u63DC\u63E0\u63E5\u63EA\u63EC\u63F2\u63F3\u63F5\u63F8\u63F9\u6409\u640A\u6410\u6412\u6414\u6418\u641E\u6420\u6422\u6424\u6425\u6429\u642A\u642F\u6430\u6435\u643D\u643F\u644B\u644F\u6451\u6452\u6453\u6454\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6463\u646D\u6473\u6474\u647B\u647D\u6485\u6487\u648F\u6490\u6491\u6498\u6499\u649B\u649D\u649F\u64A1\u64A3\u64A6\u64A8\u64AC\u64B3\u64BD\u64BE\u64BF"],["8fc1a1","\u64C4\u64C9\u64CA\u64CB\u64CC\u64CE\u64D0\u64D1\u64D5\u64D7\u64E4\u64E5\u64E9\u64EA\u64ED\u64F0\u64F5\u64F7\u64FB\u64FF\u6501\u6504\u6508\u6509\u650A\u650F\u6513\u6514\u6516\u6519\u651B\u651E\u651F\u6522\u6526\u6529\u652E\u6531\u653A\u653C\u653D\u6543\u6547\u6549\u6550\u6552\u6554\u655F\u6560\u6567\u656B\u657A\u657D\u6581\u6585\u658A\u6592\u6595\u6598\u659D\u65A0\u65A3\u65A6\u65AE\u65B2\u65B3\u65B4\u65BF\u65C2\u65C8\u65C9\u65CE\u65D0\u65D4\u65D6\u65D8\u65DF\u65F0\u65F2\u65F4\u65F5\u65F9\u65FE\u65FF\u6600\u6604\u6608\u6609\u660D\u6611\u6612\u6615\u6616\u661D"],["8fc2a1","\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664A\u664C\u6651\u664E\u6657\u6658\u6659\u665B\u665C\u6660\u6661\u66FB\u666A\u666B\u666C\u667E\u6673\u6675\u667F\u6677\u6678\u6679\u667B\u6680\u667C\u668B\u668C\u668D\u6690\u6692\u6699\u669A\u669B\u669C\u669F\u66A0\u66A4\u66AD\u66B1\u66B2\u66B5\u66BB\u66BF\u66C0\u66C2\u66C3\u66C8\u66CC\u66CE\u66CF\u66D4\u66DB\u66DF\u66E8\u66EB\u66EC\u66EE\u66FA\u6705\u6707\u670E\u6713\u6719\u671C\u6720\u6722\u6733\u673E\u6745\u6747\u6748\u674C\u6754\u6755\u675D"],["8fc3a1","\u6766\u676C\u676E\u6774\u6776\u677B\u6781\u6784\u678E\u678F\u6791\u6793\u6796\u6798\u6799\u679B\u67B0\u67B1\u67B2\u67B5\u67BB\u67BC\u67BD\u67F9\u67C0\u67C2\u67C3\u67C5\u67C8\u67C9\u67D2\u67D7\u67D9\u67DC\u67E1\u67E6\u67F0\u67F2\u67F6\u67F7\u6852\u6814\u6819\u681D\u681F\u6828\u6827\u682C\u682D\u682F\u6830\u6831\u6833\u683B\u683F\u6844\u6845\u684A\u684C\u6855\u6857\u6858\u685B\u686B\u686E",4,"\u6875\u6879\u687A\u687B\u687C\u6882\u6884\u6886\u6888\u6896\u6898\u689A\u689C\u68A1\u68A3\u68A5\u68A9\u68AA\u68AE\u68B2\u68BB\u68C5\u68C8\u68CC\u68CF"],["8fc4a1","\u68D0\u68D1\u68D3\u68D6\u68D9\u68DC\u68DD\u68E5\u68E8\u68EA\u68EB\u68EC\u68ED\u68F0\u68F1\u68F5\u68F6\u68FB\u68FC\u68FD\u6906\u6909\u690A\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693B\u6942\u6945\u6949\u694E\u6957\u695B\u6963\u6964\u6965\u6966\u6968\u6969\u696C\u6970\u6971\u6972\u697A\u697B\u697F\u6980\u698D\u6992\u6996\u6998\u69A1\u69A5\u69A6\u69A8\u69AB\u69AD\u69AF\u69B7\u69B8\u69BA\u69BC\u69C5\u69C8\u69D1\u69D6\u69D7\u69E2\u69E5\u69EE\u69EF\u69F1\u69F3\u69F5\u69FE\u6A00\u6A01\u6A03\u6A0F\u6A11\u6A15\u6A1A\u6A1D\u6A20\u6A24\u6A28\u6A30\u6A32"],["8fc5a1","\u6A34\u6A37\u6A3B\u6A3E\u6A3F\u6A45\u6A46\u6A49\u6A4A\u6A4E\u6A50\u6A51\u6A52\u6A55\u6A56\u6A5B\u6A64\u6A67\u6A6A\u6A71\u6A73\u6A7E\u6A81\u6A83\u6A86\u6A87\u6A89\u6A8B\u6A91\u6A9B\u6A9D\u6A9E\u6A9F\u6AA5\u6AAB\u6AAF\u6AB0\u6AB1\u6AB4\u6ABD\u6ABE\u6ABF\u6AC6\u6AC9\u6AC8\u6ACC\u6AD0\u6AD4\u6AD5\u6AD6\u6ADC\u6ADD\u6AE4\u6AE7\u6AEC\u6AF0\u6AF1\u6AF2\u6AFC\u6AFD\u6B02\u6B03\u6B06\u6B07\u6B09\u6B0F\u6B10\u6B11\u6B17\u6B1B\u6B1E\u6B24\u6B28\u6B2B\u6B2C\u6B2F\u6B35\u6B36\u6B3B\u6B3F\u6B46\u6B4A\u6B4D\u6B52\u6B56\u6B58\u6B5D\u6B60\u6B67\u6B6B\u6B6E\u6B70\u6B75\u6B7D"],["8fc6a1","\u6B7E\u6B82\u6B85\u6B97\u6B9B\u6B9F\u6BA0\u6BA2\u6BA3\u6BA8\u6BA9\u6BAC\u6BAD\u6BAE\u6BB0\u6BB8\u6BB9\u6BBD\u6BBE\u6BC3\u6BC4\u6BC9\u6BCC\u6BD6\u6BDA\u6BE1\u6BE3\u6BE6\u6BE7\u6BEE\u6BF1\u6BF7\u6BF9\u6BFF\u6C02\u6C04\u6C05\u6C09\u6C0D\u6C0E\u6C10\u6C12\u6C19\u6C1F\u6C26\u6C27\u6C28\u6C2C\u6C2E\u6C33\u6C35\u6C36\u6C3A\u6C3B\u6C3F\u6C4A\u6C4B\u6C4D\u6C4F\u6C52\u6C54\u6C59\u6C5B\u6C5C\u6C6B\u6C6D\u6C6F\u6C74\u6C76\u6C78\u6C79\u6C7B\u6C85\u6C86\u6C87\u6C89\u6C94\u6C95\u6C97\u6C98\u6C9C\u6C9F\u6CB0\u6CB2\u6CB4\u6CC2\u6CC6\u6CCD\u6CCF\u6CD0\u6CD1\u6CD2\u6CD4\u6CD6"],["8fc7a1","\u6CDA\u6CDC\u6CE0\u6CE7\u6CE9\u6CEB\u6CEC\u6CEE\u6CF2\u6CF4\u6D04\u6D07\u6D0A\u6D0E\u6D0F\u6D11\u6D13\u6D1A\u6D26\u6D27\u6D28\u6C67\u6D2E\u6D2F\u6D31\u6D39\u6D3C\u6D3F\u6D57\u6D5E\u6D5F\u6D61\u6D65\u6D67\u6D6F\u6D70\u6D7C\u6D82\u6D87\u6D91\u6D92\u6D94\u6D96\u6D97\u6D98\u6DAA\u6DAC\u6DB4\u6DB7\u6DB9\u6DBD\u6DBF\u6DC4\u6DC8\u6DCA\u6DCE\u6DCF\u6DD6\u6DDB\u6DDD\u6DDF\u6DE0\u6DE2\u6DE5\u6DE9\u6DEF\u6DF0\u6DF4\u6DF6\u6DFC\u6E00\u6E04\u6E1E\u6E22\u6E27\u6E32\u6E36\u6E39\u6E3B\u6E3C\u6E44\u6E45\u6E48\u6E49\u6E4B\u6E4F\u6E51\u6E52\u6E53\u6E54\u6E57\u6E5C\u6E5D\u6E5E"],["8fc8a1","\u6E62\u6E63\u6E68\u6E73\u6E7B\u6E7D\u6E8D\u6E93\u6E99\u6EA0\u6EA7\u6EAD\u6EAE\u6EB1\u6EB3\u6EBB\u6EBF\u6EC0\u6EC1\u6EC3\u6EC7\u6EC8\u6ECA\u6ECD\u6ECE\u6ECF\u6EEB\u6EED\u6EEE\u6EF9\u6EFB\u6EFD\u6F04\u6F08\u6F0A\u6F0C\u6F0D\u6F16\u6F18\u6F1A\u6F1B\u6F26\u6F29\u6F2A\u6F2F\u6F30\u6F33\u6F36\u6F3B\u6F3C\u6F2D\u6F4F\u6F51\u6F52\u6F53\u6F57\u6F59\u6F5A\u6F5D\u6F5E\u6F61\u6F62\u6F68\u6F6C\u6F7D\u6F7E\u6F83\u6F87\u6F88\u6F8B\u6F8C\u6F8D\u6F90\u6F92\u6F93\u6F94\u6F96\u6F9A\u6F9F\u6FA0\u6FA5\u6FA6\u6FA7\u6FA8\u6FAE\u6FAF\u6FB0\u6FB5\u6FB6\u6FBC\u6FC5\u6FC7\u6FC8\u6FCA"],["8fc9a1","\u6FDA\u6FDE\u6FE8\u6FE9\u6FF0\u6FF5\u6FF9\u6FFC\u6FFD\u7000\u7005\u7006\u7007\u700D\u7017\u7020\u7023\u702F\u7034\u7037\u7039\u703C\u7043\u7044\u7048\u7049\u704A\u704B\u7054\u7055\u705D\u705E\u704E\u7064\u7065\u706C\u706E\u7075\u7076\u707E\u7081\u7085\u7086\u7094",4,"\u709B\u70A4\u70AB\u70B0\u70B1\u70B4\u70B7\u70CA\u70D1\u70D3\u70D4\u70D5\u70D6\u70D8\u70DC\u70E4\u70FA\u7103",4,"\u710B\u710C\u710F\u711E\u7120\u712B\u712D\u712F\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714A\u714B\u7150\u7152\u7157\u715A\u715C\u715E\u7160"],["8fcaa1","\u7168\u7179\u7180\u7185\u7187\u718C\u7192\u719A\u719B\u71A0\u71A2\u71AF\u71B0\u71B2\u71B3\u71BA\u71BF\u71C0\u71C1\u71C4\u71CB\u71CC\u71D3\u71D6\u71D9\u71DA\u71DC\u71F8\u71FE\u7200\u7207\u7208\u7209\u7213\u7217\u721A\u721D\u721F\u7224\u722B\u722F\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724E\u724F\u7250\u7253\u7255\u7256\u725A\u725C\u725E\u7260\u7263\u7268\u726B\u726E\u726F\u7271\u7277\u7278\u727B\u727C\u727F\u7284\u7289\u728D\u728E\u7293\u729B\u72A8\u72AD\u72AE\u72B1\u72B4\u72BE\u72C1\u72C7\u72C9\u72CC\u72D5\u72D6\u72D8\u72DF\u72E5\u72F3\u72F4\u72FA\u72FB"],["8fcba1","\u72FE\u7302\u7304\u7305\u7307\u730B\u730D\u7312\u7313\u7318\u7319\u731E\u7322\u7324\u7327\u7328\u732C\u7331\u7332\u7335\u733A\u733B\u733D\u7343\u734D\u7350\u7352\u7356\u7358\u735D\u735E\u735F\u7360\u7366\u7367\u7369\u736B\u736C\u736E\u736F\u7371\u7377\u7379\u737C\u7380\u7381\u7383\u7385\u7386\u738E\u7390\u7393\u7395\u7397\u7398\u739C\u739E\u739F\u73A0\u73A2\u73A5\u73A6\u73AA\u73AB\u73AD\u73B5\u73B7\u73B9\u73BC\u73BD\u73BF\u73C5\u73C6\u73C9\u73CB\u73CC\u73CF\u73D2\u73D3\u73D6\u73D9\u73DD\u73E1\u73E3\u73E6\u73E7\u73E9\u73F4\u73F5\u73F7\u73F9\u73FA\u73FB\u73FD"],["8fcca1","\u73FF\u7400\u7401\u7404\u7407\u740A\u7411\u741A\u741B\u7424\u7426\u7428",9,"\u7439\u7440\u7443\u7444\u7446\u7447\u744B\u744D\u7451\u7452\u7457\u745D\u7462\u7466\u7467\u7468\u746B\u746D\u746E\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748F\u7490\u7491\u7492\u7498\u7499\u749A\u749C\u749F\u74A0\u74A1\u74A3\u74A6\u74A8\u74A9\u74AA\u74AB\u74AE\u74AF\u74B1\u74B2\u74B5\u74B9\u74BB\u74BF\u74C8\u74C9\u74CC\u74D0\u74D3\u74D8\u74DA\u74DB\u74DE\u74DF\u74E4\u74E8\u74EA\u74EB\u74EF\u74F4\u74FA\u74FB\u74FC\u74FF\u7506"],["8fcda1","\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752A\u752F\u7536\u7539\u753D\u753E\u753F\u7540\u7543\u7547\u7548\u754E\u7550\u7552\u7557\u755E\u755F\u7561\u756F\u7571\u7579",5,"\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759C\u75A2\u75A4\u75B4\u75BA\u75BF\u75C0\u75C1\u75C4\u75C6\u75CC\u75CE\u75CF\u75D7\u75DC\u75DF\u75E0\u75E1\u75E4\u75E7\u75EC\u75EE\u75EF\u75F1\u75F9\u7600\u7602\u7603\u7604\u7607\u7608\u760A\u760C\u760F\u7612\u7613\u7615\u7616\u7619\u761B\u761C\u761D\u761E\u7623\u7625\u7626\u7629\u762D\u7632\u7633\u7635\u7638\u7639"],["8fcea1","\u763A\u763C\u764A\u7640\u7641\u7643\u7644\u7645\u7649\u764B\u7655\u7659\u765F\u7664\u7665\u766D\u766E\u766F\u7671\u7674\u7681\u7685\u768C\u768D\u7695\u769B\u769C\u769D\u769F\u76A0\u76A2",6,"\u76AA\u76AD\u76BD\u76C1\u76C5\u76C9\u76CB\u76CC\u76CE\u76D4\u76D9\u76E0\u76E6\u76E8\u76EC\u76F0\u76F1\u76F6\u76F9\u76FC\u7700\u7706\u770A\u770E\u7712\u7714\u7715\u7717\u7719\u771A\u771C\u7722\u7728\u772D\u772E\u772F\u7734\u7735\u7736\u7739\u773D\u773E\u7742\u7745\u7746\u774A\u774D\u774E\u774F\u7752\u7756\u7757\u775C\u775E\u775F\u7760\u7762"],["8fcfa1","\u7764\u7767\u776A\u776C\u7770\u7772\u7773\u7774\u777A\u777D\u7780\u7784\u778C\u778D\u7794\u7795\u7796\u779A\u779F\u77A2\u77A7\u77AA\u77AE\u77AF\u77B1\u77B5\u77BE\u77C3\u77C9\u77D1\u77D2\u77D5\u77D9\u77DE\u77DF\u77E0\u77E4\u77E6\u77EA\u77EC\u77F0\u77F1\u77F4\u77F8\u77FB\u7805\u7806\u7809\u780D\u780E\u7811\u781D\u7821\u7822\u7823\u782D\u782E\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784C\u784E\u7852\u785C\u785E\u7860\u7861\u7863\u7864\u7868\u786A\u786E\u787A\u787E\u788A\u788F\u7894\u7898\u78A1\u789D\u789E\u789F\u78A4\u78A8\u78AC\u78AD\u78B0\u78B1\u78B2\u78B3"],["8fd0a1","\u78BB\u78BD\u78BF\u78C7\u78C8\u78C9\u78CC\u78CE\u78D2\u78D3\u78D5\u78D6\u78E4\u78DB\u78DF\u78E0\u78E1\u78E6\u78EA\u78F2\u78F3\u7900\u78F6\u78F7\u78FA\u78FB\u78FF\u7906\u790C\u7910\u791A\u791C\u791E\u791F\u7920\u7925\u7927\u7929\u792D\u7931\u7934\u7935\u793B\u793D\u793F\u7944\u7945\u7946\u794A\u794B\u794F\u7951\u7954\u7958\u795B\u795C\u7967\u7969\u796B\u7972\u7979\u797B\u797C\u797E\u798B\u798C\u7991\u7993\u7994\u7995\u7996\u7998\u799B\u799C\u79A1\u79A8\u79A9\u79AB\u79AF\u79B1\u79B4\u79B8\u79BB\u79C2\u79C4\u79C7\u79C8\u79CA\u79CF\u79D4\u79D6\u79DA\u79DD\u79DE"],["8fd1a1","\u79E0\u79E2\u79E5\u79EA\u79EB\u79ED\u79F1\u79F8\u79FC\u7A02\u7A03\u7A07\u7A09\u7A0A\u7A0C\u7A11\u7A15\u7A1B\u7A1E\u7A21\u7A27\u7A2B\u7A2D\u7A2F\u7A30\u7A34\u7A35\u7A38\u7A39\u7A3A\u7A44\u7A45\u7A47\u7A48\u7A4C\u7A55\u7A56\u7A59\u7A5C\u7A5D\u7A5F\u7A60\u7A65\u7A67\u7A6A\u7A6D\u7A75\u7A78\u7A7E\u7A80\u7A82\u7A85\u7A86\u7A8A\u7A8B\u7A90\u7A91\u7A94\u7A9E\u7AA0\u7AA3\u7AAC\u7AB3\u7AB5\u7AB9\u7ABB\u7ABC\u7AC6\u7AC9\u7ACC\u7ACE\u7AD1\u7ADB\u7AE8\u7AE9\u7AEB\u7AEC\u7AF1\u7AF4\u7AFB\u7AFD\u7AFE\u7B07\u7B14\u7B1F\u7B23\u7B27\u7B29\u7B2A\u7B2B\u7B2D\u7B2E\u7B2F\u7B30"],["8fd2a1","\u7B31\u7B34\u7B3D\u7B3F\u7B40\u7B41\u7B47\u7B4E\u7B55\u7B60\u7B64\u7B66\u7B69\u7B6A\u7B6D\u7B6F\u7B72\u7B73\u7B77\u7B84\u7B89\u7B8E\u7B90\u7B91\u7B96\u7B9B\u7B9E\u7BA0\u7BA5\u7BAC\u7BAF\u7BB0\u7BB2\u7BB5\u7BB6\u7BBA\u7BBB\u7BBC\u7BBD\u7BC2\u7BC5\u7BC8\u7BCA\u7BD4\u7BD6\u7BD7\u7BD9\u7BDA\u7BDB\u7BE8\u7BEA\u7BF2\u7BF4\u7BF5\u7BF8\u7BF9\u7BFA\u7BFC\u7BFE\u7C01\u7C02\u7C03\u7C04\u7C06\u7C09\u7C0B\u7C0C\u7C0E\u7C0F\u7C19\u7C1B\u7C20\u7C25\u7C26\u7C28\u7C2C\u7C31\u7C33\u7C34\u7C36\u7C39\u7C3A\u7C46\u7C4A\u7C55\u7C51\u7C52\u7C53\u7C59",5],["8fd3a1","\u7C61\u7C63\u7C67\u7C69\u7C6D\u7C6E\u7C70\u7C72\u7C79\u7C7C\u7C7D\u7C86\u7C87\u7C8F\u7C94\u7C9E\u7CA0\u7CA6\u7CB0\u7CB6\u7CB7\u7CBA\u7CBB\u7CBC\u7CBF\u7CC4\u7CC7\u7CC8\u7CC9\u7CCD\u7CCF\u7CD3\u7CD4\u7CD5\u7CD7\u7CD9\u7CDA\u7CDD\u7CE6\u7CE9\u7CEB\u7CF5\u7D03\u7D07\u7D08\u7D09\u7D0F\u7D11\u7D12\u7D13\u7D16\u7D1D\u7D1E\u7D23\u7D26\u7D2A\u7D2D\u7D31\u7D3C\u7D3D\u7D3E\u7D40\u7D41\u7D47\u7D48\u7D4D\u7D51\u7D53\u7D57\u7D59\u7D5A\u7D5C\u7D5D\u7D65\u7D67\u7D6A\u7D70\u7D78\u7D7A\u7D7B\u7D7F\u7D81\u7D82\u7D83\u7D85\u7D86\u7D88\u7D8B\u7D8C\u7D8D\u7D91\u7D96\u7D97\u7D9D"],["8fd4a1","\u7D9E\u7DA6\u7DA7\u7DAA\u7DB3\u7DB6\u7DB7\u7DB9\u7DC2",4,"\u7DCC\u7DCD\u7DCE\u7DD7\u7DD9\u7E00\u7DE2\u7DE5\u7DE6\u7DEA\u7DEB\u7DED\u7DF1\u7DF5\u7DF6\u7DF9\u7DFA\u7E08\u7E10\u7E11\u7E15\u7E17\u7E1C\u7E1D\u7E20\u7E27\u7E28\u7E2C\u7E2D\u7E2F\u7E33\u7E36\u7E3F\u7E44\u7E45\u7E47\u7E4E\u7E50\u7E52\u7E58\u7E5F\u7E61\u7E62\u7E65\u7E6B\u7E6E\u7E6F\u7E73\u7E78\u7E7E\u7E81\u7E86\u7E87\u7E8A\u7E8D\u7E91\u7E95\u7E98\u7E9A\u7E9D\u7E9E\u7F3C\u7F3B\u7F3D\u7F3E\u7F3F\u7F43\u7F44\u7F47\u7F4F\u7F52\u7F53\u7F5B\u7F5C\u7F5D\u7F61\u7F63\u7F64\u7F65\u7F66\u7F6D"],["8fd5a1","\u7F71\u7F7D\u7F7E\u7F7F\u7F80\u7F8B\u7F8D\u7F8F\u7F90\u7F91\u7F96\u7F97\u7F9C\u7FA1\u7FA2\u7FA6\u7FAA\u7FAD\u7FB4\u7FBC\u7FBF\u7FC0\u7FC3\u7FC8\u7FCE\u7FCF\u7FDB\u7FDF\u7FE3\u7FE5\u7FE8\u7FEC\u7FEE\u7FEF\u7FF2\u7FFA\u7FFD\u7FFE\u7FFF\u8007\u8008\u800A\u800D\u800E\u800F\u8011\u8013\u8014\u8016\u801D\u801E\u801F\u8020\u8024\u8026\u802C\u802E\u8030\u8034\u8035\u8037\u8039\u803A\u803C\u803E\u8040\u8044\u8060\u8064\u8066\u806D\u8071\u8075\u8081\u8088\u808E\u809C\u809E\u80A6\u80A7\u80AB\u80B8\u80B9\u80C8\u80CD\u80CF\u80D2\u80D4\u80D5\u80D7\u80D8\u80E0\u80ED\u80EE"],["8fd6a1","\u80F0\u80F2\u80F3\u80F6\u80F9\u80FA\u80FE\u8103\u810B\u8116\u8117\u8118\u811C\u811E\u8120\u8124\u8127\u812C\u8130\u8135\u813A\u813C\u8145\u8147\u814A\u814C\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816D\u816F\u8177\u8181\u8190\u8184\u8185\u8186\u818B\u818E\u8196\u8198\u819B\u819E\u81A2\u81AE\u81B2\u81B4\u81BB\u81CB\u81C3\u81C5\u81CA\u81CE\u81CF\u81D5\u81D7\u81DB\u81DD\u81DE\u81E1\u81E4\u81EB\u81EC\u81F0\u81F1\u81F2\u81F5\u81F6\u81F8\u81F9\u81FD\u81FF\u8200\u8203\u820F\u8213\u8214\u8219\u821A\u821D\u8221\u8222\u8228\u8232\u8234\u823A\u8243\u8244\u8245\u8246"],["8fd7a1","\u824B\u824E\u824F\u8251\u8256\u825C\u8260\u8263\u8267\u826D\u8274\u827B\u827D\u827F\u8280\u8281\u8283\u8284\u8287\u8289\u828A\u828E\u8291\u8294\u8296\u8298\u829A\u829B\u82A0\u82A1\u82A3\u82A4\u82A7\u82A8\u82A9\u82AA\u82AE\u82B0\u82B2\u82B4\u82B7\u82BA\u82BC\u82BE\u82BF\u82C6\u82D0\u82D5\u82DA\u82E0\u82E2\u82E4\u82E8\u82EA\u82ED\u82EF\u82F6\u82F7\u82FD\u82FE\u8300\u8301\u8307\u8308\u830A\u830B\u8354\u831B\u831D\u831E\u831F\u8321\u8322\u832C\u832D\u832E\u8330\u8333\u8337\u833A\u833C\u833D\u8342\u8343\u8344\u8347\u834D\u834E\u8351\u8355\u8356\u8357\u8370\u8378"],["8fd8a1","\u837D\u837F\u8380\u8382\u8384\u8386\u838D\u8392\u8394\u8395\u8398\u8399\u839B\u839C\u839D\u83A6\u83A7\u83A9\u83AC\u83BE\u83BF\u83C0\u83C7\u83C9\u83CF\u83D0\u83D1\u83D4\u83DD\u8353\u83E8\u83EA\u83F6\u83F8\u83F9\u83FC\u8401\u8406\u840A\u840F\u8411\u8415\u8419\u83AD\u842F\u8439\u8445\u8447\u8448\u844A\u844D\u844F\u8451\u8452\u8456\u8458\u8459\u845A\u845C\u8460\u8464\u8465\u8467\u846A\u8470\u8473\u8474\u8476\u8478\u847C\u847D\u8481\u8485\u8492\u8493\u8495\u849E\u84A6\u84A8\u84A9\u84AA\u84AF\u84B1\u84B4\u84BA\u84BD\u84BE\u84C0\u84C2\u84C7\u84C8\u84CC\u84CF\u84D3"],["8fd9a1","\u84DC\u84E7\u84EA\u84EF\u84F0\u84F1\u84F2\u84F7\u8532\u84FA\u84FB\u84FD\u8502\u8503\u8507\u850C\u850E\u8510\u851C\u851E\u8522\u8523\u8524\u8525\u8527\u852A\u852B\u852F\u8533\u8534\u8536\u853F\u8546\u854F",4,"\u8556\u8559\u855C",6,"\u8564\u856B\u856F\u8579\u857A\u857B\u857D\u857F\u8581\u8585\u8586\u8589\u858B\u858C\u858F\u8593\u8598\u859D\u859F\u85A0\u85A2\u85A5\u85A7\u85B4\u85B6\u85B7\u85B8\u85BC\u85BD\u85BE\u85BF\u85C2\u85C7\u85CA\u85CB\u85CE\u85AD\u85D8\u85DA\u85DF\u85E0\u85E6\u85E8\u85ED\u85F3\u85F6\u85FC"],["8fdaa1","\u85FF\u8600\u8604\u8605\u860D\u860E\u8610\u8611\u8612\u8618\u8619\u861B\u861E\u8621\u8627\u8629\u8636\u8638\u863A\u863C\u863D\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865D\u8660",4,"\u8669\u866C\u866F\u8675\u8676\u8677\u867A\u868D\u8691\u8696\u8698\u869A\u869C\u86A1\u86A6\u86A7\u86A8\u86AD\u86B1\u86B3\u86B4\u86B5\u86B7\u86B8\u86B9\u86BF\u86C0\u86C1\u86C3\u86C5\u86D1\u86D2\u86D5\u86D7\u86DA\u86DC\u86E0\u86E3\u86E5\u86E7\u8688\u86FA\u86FC\u86FD\u8704\u8705\u8707\u870B\u870E\u870F\u8710\u8713\u8714\u8719\u871E\u871F\u8721\u8723"],["8fdba1","\u8728\u872E\u872F\u8731\u8732\u8739\u873A\u873C\u873D\u873E\u8740\u8743\u8745\u874D\u8758\u875D\u8761\u8764\u8765\u876F\u8771\u8772\u877B\u8783",6,"\u878B\u878C\u8790\u8793\u8795\u8797\u8798\u8799\u879E\u87A0\u87A3\u87A7\u87AC\u87AD\u87AE\u87B1\u87B5\u87BE\u87BF\u87C1\u87C8\u87C9\u87CA\u87CE\u87D5\u87D6\u87D9\u87DA\u87DC\u87DF\u87E2\u87E3\u87E4\u87EA\u87EB\u87ED\u87F1\u87F3\u87F8\u87FA\u87FF\u8801\u8803\u8806\u8809\u880A\u880B\u8810\u8819\u8812\u8813\u8814\u8818\u881A\u881B\u881C\u881E\u881F\u8828\u882D\u882E\u8830\u8832\u8835"],["8fdca1","\u883A\u883C\u8841\u8843\u8845\u8848\u8849\u884A\u884B\u884E\u8851\u8855\u8856\u8858\u885A\u885C\u885F\u8860\u8864\u8869\u8871\u8879\u887B\u8880\u8898\u889A\u889B\u889C\u889F\u88A0\u88A8\u88AA\u88BA\u88BD\u88BE\u88C0\u88CA",4,"\u88D1\u88D2\u88D3\u88DB\u88DE\u88E7\u88EF\u88F0\u88F1\u88F5\u88F7\u8901\u8906\u890D\u890E\u890F\u8915\u8916\u8918\u8919\u891A\u891C\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893A\u893E\u8940\u8942\u8945\u8946\u8949\u894F\u8952\u8957\u895A\u895B\u895C\u8961\u8962\u8963\u896B\u896E\u8970\u8973\u8975\u897A"],["8fdda1","\u897B\u897C\u897D\u8989\u898D\u8990\u8994\u8995\u899B\u899C\u899F\u89A0\u89A5\u89B0\u89B4\u89B5\u89B6\u89B7\u89BC\u89D4",4,"\u89E5\u89E9\u89EB\u89ED\u89F1\u89F3\u89F6\u89F9\u89FD\u89FF\u8A04\u8A05\u8A07\u8A0F\u8A11\u8A12\u8A14\u8A15\u8A1E\u8A20\u8A22\u8A24\u8A26\u8A2B\u8A2C\u8A2F\u8A35\u8A37\u8A3D\u8A3E\u8A40\u8A43\u8A45\u8A47\u8A49\u8A4D\u8A4E\u8A53\u8A56\u8A57\u8A58\u8A5C\u8A5D\u8A61\u8A65\u8A67\u8A75\u8A76\u8A77\u8A79\u8A7A\u8A7B\u8A7E\u8A7F\u8A80\u8A83\u8A86\u8A8B\u8A8F\u8A90\u8A92\u8A96\u8A97\u8A99\u8A9F\u8AA7\u8AA9\u8AAE\u8AAF\u8AB3"],["8fdea1","\u8AB6\u8AB7\u8ABB\u8ABE\u8AC3\u8AC6\u8AC8\u8AC9\u8ACA\u8AD1\u8AD3\u8AD4\u8AD5\u8AD7\u8ADD\u8ADF\u8AEC\u8AF0\u8AF4\u8AF5\u8AF6\u8AFC\u8AFF\u8B05\u8B06\u8B0B\u8B11\u8B1C\u8B1E\u8B1F\u8B0A\u8B2D\u8B30\u8B37\u8B3C\u8B42",4,"\u8B48\u8B52\u8B53\u8B54\u8B59\u8B4D\u8B5E\u8B63\u8B6D\u8B76\u8B78\u8B79\u8B7C\u8B7E\u8B81\u8B84\u8B85\u8B8B\u8B8D\u8B8F\u8B94\u8B95\u8B9C\u8B9E\u8B9F\u8C38\u8C39\u8C3D\u8C3E\u8C45\u8C47\u8C49\u8C4B\u8C4F\u8C51\u8C53\u8C54\u8C57\u8C58\u8C5B\u8C5D\u8C59\u8C63\u8C64\u8C66\u8C68\u8C69\u8C6D\u8C73\u8C75\u8C76\u8C7B\u8C7E\u8C86"],["8fdfa1","\u8C87\u8C8B\u8C90\u8C92\u8C93\u8C99\u8C9B\u8C9C\u8CA4\u8CB9\u8CBA\u8CC5\u8CC6\u8CC9\u8CCB\u8CCF\u8CD6\u8CD5\u8CD9\u8CDD\u8CE1\u8CE8\u8CEC\u8CEF\u8CF0\u8CF2\u8CF5\u8CF7\u8CF8\u8CFE\u8CFF\u8D01\u8D03\u8D09\u8D12\u8D17\u8D1B\u8D65\u8D69\u8D6C\u8D6E\u8D7F\u8D82\u8D84\u8D88\u8D8D\u8D90\u8D91\u8D95\u8D9E\u8D9F\u8DA0\u8DA6\u8DAB\u8DAC\u8DAF\u8DB2\u8DB5\u8DB7\u8DB9\u8DBB\u8DC0\u8DC5\u8DC6\u8DC7\u8DC8\u8DCA\u8DCE\u8DD1\u8DD4\u8DD5\u8DD7\u8DD9\u8DE4\u8DE5\u8DE7\u8DEC\u8DF0\u8DBC\u8DF1\u8DF2\u8DF4\u8DFD\u8E01\u8E04\u8E05\u8E06\u8E0B\u8E11\u8E14\u8E16\u8E20\u8E21\u8E22"],["8fe0a1","\u8E23\u8E26\u8E27\u8E31\u8E33\u8E36\u8E37\u8E38\u8E39\u8E3D\u8E40\u8E41\u8E4B\u8E4D\u8E4E\u8E4F\u8E54\u8E5B\u8E5C\u8E5D\u8E5E\u8E61\u8E62\u8E69\u8E6C\u8E6D\u8E6F\u8E70\u8E71\u8E79\u8E7A\u8E7B\u8E82\u8E83\u8E89\u8E90\u8E92\u8E95\u8E9A\u8E9B\u8E9D\u8E9E\u8EA2\u8EA7\u8EA9\u8EAD\u8EAE\u8EB3\u8EB5\u8EBA\u8EBB\u8EC0\u8EC1\u8EC3\u8EC4\u8EC7\u8ECF\u8ED1\u8ED4\u8EDC\u8EE8\u8EEE\u8EF0\u8EF1\u8EF7\u8EF9\u8EFA\u8EED\u8F00\u8F02\u8F07\u8F08\u8F0F\u8F10\u8F16\u8F17\u8F18\u8F1E\u8F20\u8F21\u8F23\u8F25\u8F27\u8F28\u8F2C\u8F2D\u8F2E\u8F34\u8F35\u8F36\u8F37\u8F3A\u8F40\u8F41"],["8fe1a1","\u8F43\u8F47\u8F4F\u8F51",4,"\u8F58\u8F5D\u8F5E\u8F65\u8F9D\u8FA0\u8FA1\u8FA4\u8FA5\u8FA6\u8FB5\u8FB6\u8FB8\u8FBE\u8FC0\u8FC1\u8FC6\u8FCA\u8FCB\u8FCD\u8FD0\u8FD2\u8FD3\u8FD5\u8FE0\u8FE3\u8FE4\u8FE8\u8FEE\u8FF1\u8FF5\u8FF6\u8FFB\u8FFE\u9002\u9004\u9008\u900C\u9018\u901B\u9028\u9029\u902F\u902A\u902C\u902D\u9033\u9034\u9037\u903F\u9043\u9044\u904C\u905B\u905D\u9062\u9066\u9067\u906C\u9070\u9074\u9079\u9085\u9088\u908B\u908C\u908E\u9090\u9095\u9097\u9098\u9099\u909B\u90A0\u90A1\u90A2\u90A5\u90B0\u90B2\u90B3\u90B4\u90B6\u90BD\u90CC\u90BE\u90C3"],["8fe2a1","\u90C4\u90C5\u90C7\u90C8\u90D5\u90D7\u90D8\u90D9\u90DC\u90DD\u90DF\u90E5\u90D2\u90F6\u90EB\u90EF\u90F0\u90F4\u90FE\u90FF\u9100\u9104\u9105\u9106\u9108\u910D\u9110\u9114\u9116\u9117\u9118\u911A\u911C\u911E\u9120\u9125\u9122\u9123\u9127\u9129\u912E\u912F\u9131\u9134\u9136\u9137\u9139\u913A\u913C\u913D\u9143\u9147\u9148\u914F\u9153\u9157\u9159\u915A\u915B\u9161\u9164\u9167\u916D\u9174\u9179\u917A\u917B\u9181\u9183\u9185\u9186\u918A\u918E\u9191\u9193\u9194\u9195\u9198\u919E\u91A1\u91A6\u91A8\u91AC\u91AD\u91AE\u91B0\u91B1\u91B2\u91B3\u91B6\u91BB\u91BC\u91BD\u91BF"],["8fe3a1","\u91C2\u91C3\u91C5\u91D3\u91D4\u91D7\u91D9\u91DA\u91DE\u91E4\u91E5\u91E9\u91EA\u91EC",5,"\u91F7\u91F9\u91FB\u91FD\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920A\u920C\u9210\u9212\u9213\u9216\u9218\u921C\u921D\u9223\u9224\u9225\u9226\u9228\u922E\u922F\u9230\u9233\u9235\u9236\u9238\u9239\u923A\u923C\u923E\u9240\u9242\u9243\u9246\u9247\u924A\u924D\u924E\u924F\u9251\u9258\u9259\u925C\u925D\u9260\u9261\u9265\u9267\u9268\u9269\u926E\u926F\u9270\u9275",4,"\u927B\u927C\u927D\u927F\u9288\u9289\u928A\u928D\u928E\u9292\u9297"],["8fe4a1","\u9299\u929F\u92A0\u92A4\u92A5\u92A7\u92A8\u92AB\u92AF\u92B2\u92B6\u92B8\u92BA\u92BB\u92BC\u92BD\u92BF",4,"\u92C5\u92C6\u92C7\u92C8\u92CB\u92CC\u92CD\u92CE\u92D0\u92D3\u92D5\u92D7\u92D8\u92D9\u92DC\u92DD\u92DF\u92E0\u92E1\u92E3\u92E5\u92E7\u92E8\u92EC\u92EE\u92F0\u92F9\u92FB\u92FF\u9300\u9302\u9308\u930D\u9311\u9314\u9315\u931C\u931D\u931E\u931F\u9321\u9324\u9325\u9327\u9329\u932A\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935A\u935E\u9364\u9365\u9367\u9369\u936A\u936D\u936F\u9370\u9371\u9373\u9374\u9376"],["8fe5a1","\u937A\u937D\u937F\u9380\u9381\u9382\u9388\u938A\u938B\u938D\u938F\u9392\u9395\u9398\u939B\u939E\u93A1\u93A3\u93A4\u93A6\u93A8\u93AB\u93B4\u93B5\u93B6\u93BA\u93A9\u93C1\u93C4\u93C5\u93C6\u93C7\u93C9",4,"\u93D3\u93D9\u93DC\u93DE\u93DF\u93E2\u93E6\u93E7\u93F9\u93F7\u93F8\u93FA\u93FB\u93FD\u9401\u9402\u9404\u9408\u9409\u940D\u940E\u940F\u9415\u9416\u9417\u941F\u942E\u942F\u9431\u9432\u9433\u9434\u943B\u943F\u943D\u9443\u9445\u9448\u944A\u944C\u9455\u9459\u945C\u945F\u9461\u9463\u9468\u946B\u946D\u946E\u946F\u9471\u9472\u9484\u9483\u9578\u9579"],["8fe6a1","\u957E\u9584\u9588\u958C\u958D\u958E\u959D\u959E\u959F\u95A1\u95A6\u95A9\u95AB\u95AC\u95B4\u95B6\u95BA\u95BD\u95BF\u95C6\u95C8\u95C9\u95CB\u95D0\u95D1\u95D2\u95D3\u95D9\u95DA\u95DD\u95DE\u95DF\u95E0\u95E4\u95E6\u961D\u961E\u9622\u9624\u9625\u9626\u962C\u9631\u9633\u9637\u9638\u9639\u963A\u963C\u963D\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966E\u9674\u967B\u967C\u967E\u967F\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969A\u969D\u969F\u96A4\u96A5\u96A6\u96A9\u96AE\u96AF\u96B3\u96BA\u96CA\u96D2\u5DB2\u96D8\u96DA\u96DD\u96DE\u96DF\u96E9\u96EF\u96F1\u96FA\u9702"],["8fe7a1","\u9703\u9705\u9709\u971A\u971B\u971D\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974A\u974E\u974F\u9755\u9757\u9758\u975A\u975B\u9763\u9767\u976A\u976E\u9773\u9776\u9777\u9778\u977B\u977D\u977F\u9780\u9789\u9795\u9796\u9797\u9799\u979A\u979E\u979F\u97A2\u97AC\u97AE\u97B1\u97B2\u97B5\u97B6\u97B8\u97B9\u97BA\u97BC\u97BE\u97BF\u97C1\u97C4\u97C5\u97C7\u97C9\u97CA\u97CC\u97CD\u97CE\u97D0\u97D1\u97D4\u97D7\u97D8\u97D9\u97DD\u97DE\u97E0\u97DB\u97E1\u97E4\u97EF\u97F1\u97F4\u97F7\u97F8\u97FA\u9807\u980A\u9819\u980D\u980E\u9814\u9816\u981C\u981E\u9820\u9823\u9826"],["8fe8a1","\u982B\u982E\u982F\u9830\u9832\u9833\u9835\u9825\u983E\u9844\u9847\u984A\u9851\u9852\u9853\u9856\u9857\u9859\u985A\u9862\u9863\u9865\u9866\u986A\u986C\u98AB\u98AD\u98AE\u98B0\u98B4\u98B7\u98B8\u98BA\u98BB\u98BF\u98C2\u98C5\u98C8\u98CC\u98E1\u98E3\u98E5\u98E6\u98E7\u98EA\u98F3\u98F6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991A\u991B\u991C\u991F\u9922\u9926\u9927\u992B\u9931",4,"\u9939\u993A\u993B\u993C\u9940\u9941\u9946\u9947\u9948\u994D\u994E\u9954\u9958\u9959\u995B\u995C\u995E\u995F\u9960\u999B\u999D\u999F\u99A6\u99B0\u99B1\u99B2\u99B5"],["8fe9a1","\u99B9\u99BA\u99BD\u99BF\u99C3\u99C9\u99D3\u99D4\u99D9\u99DA\u99DC\u99DE\u99E7\u99EA\u99EB\u99EC\u99F0\u99F4\u99F5\u99F9\u99FD\u99FE\u9A02\u9A03\u9A04\u9A0B\u9A0C\u9A10\u9A11\u9A16\u9A1E\u9A20\u9A22\u9A23\u9A24\u9A27\u9A2D\u9A2E\u9A33\u9A35\u9A36\u9A38\u9A47\u9A41\u9A44\u9A4A\u9A4B\u9A4C\u9A4E\u9A51\u9A54\u9A56\u9A5D\u9AAA\u9AAC\u9AAE\u9AAF\u9AB2\u9AB4\u9AB5\u9AB6\u9AB9\u9ABB\u9ABE\u9ABF\u9AC1\u9AC3\u9AC6\u9AC8\u9ACE\u9AD0\u9AD2\u9AD5\u9AD6\u9AD7\u9ADB\u9ADC\u9AE0\u9AE4\u9AE5\u9AE7\u9AE9\u9AEC\u9AF2\u9AF3\u9AF5\u9AF9\u9AFA\u9AFD\u9AFF",4],["8feaa1","\u9B04\u9B05\u9B08\u9B09\u9B0B\u9B0C\u9B0D\u9B0E\u9B10\u9B12\u9B16\u9B19\u9B1B\u9B1C\u9B20\u9B26\u9B2B\u9B2D\u9B33\u9B34\u9B35\u9B37\u9B39\u9B3A\u9B3D\u9B48\u9B4B\u9B4C\u9B55\u9B56\u9B57\u9B5B\u9B5E\u9B61\u9B63\u9B65\u9B66\u9B68\u9B6A",4,"\u9B73\u9B75\u9B77\u9B78\u9B79\u9B7F\u9B80\u9B84\u9B85\u9B86\u9B87\u9B89\u9B8A\u9B8B\u9B8D\u9B8F\u9B90\u9B94\u9B9A\u9B9D\u9B9E\u9BA6\u9BA7\u9BA9\u9BAC\u9BB0\u9BB1\u9BB2\u9BB7\u9BB8\u9BBB\u9BBC\u9BBE\u9BBF\u9BC1\u9BC7\u9BC8\u9BCE\u9BD0\u9BD7\u9BD8\u9BDD\u9BDF\u9BE5\u9BE7\u9BEA\u9BEB\u9BEF\u9BF3\u9BF7\u9BF8"],["8feba1","\u9BF9\u9BFA\u9BFD\u9BFF\u9C00\u9C02\u9C0B\u9C0F\u9C11\u9C16\u9C18\u9C19\u9C1A\u9C1C\u9C1E\u9C22\u9C23\u9C26",4,"\u9C31\u9C35\u9C36\u9C37\u9C3D\u9C41\u9C43\u9C44\u9C45\u9C49\u9C4A\u9C4E\u9C4F\u9C50\u9C53\u9C54\u9C56\u9C58\u9C5B\u9C5D\u9C5E\u9C5F\u9C63\u9C69\u9C6A\u9C5C\u9C6B\u9C68\u9C6E\u9C70\u9C72\u9C75\u9C77\u9C7B\u9CE6\u9CF2\u9CF7\u9CF9\u9D0B\u9D02\u9D11\u9D17\u9D18\u9D1C\u9D1D\u9D1E\u9D2F\u9D30\u9D32\u9D33\u9D34\u9D3A\u9D3C\u9D45\u9D3D\u9D42\u9D43\u9D47\u9D4A\u9D53\u9D54\u9D5F\u9D63\u9D62\u9D65\u9D69\u9D6A\u9D6B\u9D70\u9D76\u9D77\u9D7B"],["8feca1","\u9D7C\u9D7E\u9D83\u9D84\u9D86\u9D8A\u9D8D\u9D8E\u9D92\u9D93\u9D95\u9D96\u9D97\u9D98\u9DA1\u9DAA\u9DAC\u9DAE\u9DB1\u9DB5\u9DB9\u9DBC\u9DBF\u9DC3\u9DC7\u9DC9\u9DCA\u9DD4\u9DD5\u9DD6\u9DD7\u9DDA\u9DDE\u9DDF\u9DE0\u9DE5\u9DE7\u9DE9\u9DEB\u9DEE\u9DF0\u9DF3\u9DF4\u9DFE\u9E0A\u9E02\u9E07\u9E0E\u9E10\u9E11\u9E12\u9E15\u9E16\u9E19\u9E1C\u9E1D\u9E7A\u9E7B\u9E7C\u9E80\u9E82\u9E83\u9E84\u9E85\u9E87\u9E8E\u9E8F\u9E96\u9E98\u9E9B\u9E9E\u9EA4\u9EA8\u9EAC\u9EAE\u9EAF\u9EB0\u9EB3\u9EB4\u9EB5\u9EC6\u9EC8\u9ECB\u9ED5\u9EDF\u9EE4\u9EE7\u9EEC\u9EED\u9EEE\u9EF0\u9EF1\u9EF2\u9EF5"],["8feda1","\u9EF8\u9EFF\u9F02\u9F03\u9F09\u9F0F\u9F10\u9F11\u9F12\u9F14\u9F16\u9F17\u9F19\u9F1A\u9F1B\u9F1F\u9F22\u9F26\u9F2A\u9F2B\u9F2F\u9F31\u9F32\u9F34\u9F37\u9F39\u9F3A\u9F3C\u9F3D\u9F3F\u9F41\u9F43",4,"\u9F53\u9F55\u9F56\u9F57\u9F58\u9F5A\u9F5D\u9F5E\u9F68\u9F69\u9F6D",4,"\u9F73\u9F75\u9F7A\u9F7D\u9F8F\u9F90\u9F91\u9F92\u9F94\u9F96\u9F97\u9F9E\u9FA1\u9FA2\u9FA3\u9FA5"]]});var hm=j((R$e,VG)=>{VG.exports=[["0","\0",127,"\u20AC"],["8140","\u4E02\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63\u4E64\u4E65\u4E67\u4E68\u4E6A",5,"\u4E72\u4E74",9,"\u4E7F",6,"\u4E87\u4E8A"],["8180","\u4E90\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA\u4EFC\u4EFE\u4F00\u4F02",6,"\u4F0B\u4F0C\u4F12",4,"\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E",4,"\u4F44\u4F45\u4F47",5,"\u4F52\u4F54\u4F56\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2"],["8240","\u4FA4\u4FAB\u4FAD\u4FB0",4,"\u4FB6",8,"\u4FC0\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FD2",4,"\u4FD9\u4FDB\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC\u4FFD\u4FFF",11],["8280","\u500B\u500E\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F",10,"\u503B\u503D\u503F\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050",4,"\u5056\u5057\u5058\u5059\u505B\u505D",7,"\u5066",5,"\u506D",8,"\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E",20,"\u50A4\u50A6\u50AA\u50AB\u50AD",4,"\u50B3",6,"\u50BC"],["8340","\u50BD",17,"\u50D0",5,"\u50D7\u50D8\u50D9\u50DB",10,"\u50E8\u50E9\u50EA\u50EB\u50EF\u50F0\u50F1\u50F2\u50F4\u50F6",4,"\u50FC",9,"\u5108"],["8380","\u5109\u510A\u510C",5,"\u5113",13,"\u5122",28,"\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152\u5153\u5157\u5158\u5159\u515B\u515D",4,"\u5163\u5164\u5166\u5167\u5169\u516A\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3\u51A6",4,"\u51AD\u51AE\u51B4\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2",5],["8440","\u51D8\u51D9\u51DA\u51DC\u51DE\u51DF\u51E2\u51E3\u51E5",5,"\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231\u5232\u5234\u5235\u523C\u523E\u5244",5,"\u524B\u524E\u524F\u5252\u5253\u5255\u5257\u5258"],["8480","\u5259\u525A\u525B\u525D\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B\u526C\u526D\u526E\u5270\u5271\u5273",9,"\u527E\u5280\u5283",4,"\u5289",6,"\u5291\u5292\u5294",6,"\u529C\u52A4\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4",9,"\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5\u52D7\u52D9",5,"\u52E0\u52E1\u52E2\u52E3\u52E5",10,"\u52F1",7,"\u52FB\u52FC\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A\u530B\u530C\u530E"],["8540","\u5311\u5312\u5313\u5314\u5318\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u532F",9,"\u533C\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A\u538E\u538F"],["8580","\u5390",4,"\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF",6,"\u53B7\u53B8\u53B9\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3",4,"\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D\u544E\u544F\u5451\u545A\u545D",4,"\u5463\u5465\u5467\u5469",7,"\u5474\u5479\u547A\u547E\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F\u54A0\u54A1"],["8640","\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0",4,"\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4",5,"\u54FB\u54FE\u5500\u5502\u5503\u5504\u5505\u5508\u550A",4,"\u5512\u5513\u5515",5,"\u551C\u551D\u551E\u551F\u5521\u5525\u5526"],["8680","\u5528\u5529\u552B\u552D\u5532\u5534\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540\u5542\u5545\u5547\u5548\u554B",4,"\u5551\u5552\u5553\u5554\u5557",4,"\u555D\u555E\u555F\u5560\u5562\u5563\u5568\u5569\u556B\u556F",5,"\u5579\u557A\u557D\u557F\u5585\u5586\u558C\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597\u559A\u559B\u559E\u55A0",6,"\u55A8",8,"\u55B2\u55B4\u55B6\u55B8\u55BA\u55BC\u55BF",4,"\u55C6\u55C7\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7",4,"\u55DE\u55E0\u55E2\u55E7\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8",4,"\u55FF\u5602\u5603\u5604\u5605"],["8740","\u5606\u5607\u560A\u560B\u560D\u5610",7,"\u5619\u561A\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635\u5637\u5638\u563A\u563C\u563D\u563E\u5640",11,"\u564F",4,"\u5655\u5656\u565A\u565B\u565D",4],["8780","\u5663\u5665\u5666\u5667\u566D\u566E\u566F\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567A\u567D",7,"\u5687",6,"\u5690\u5691\u5692\u5694",14,"\u56A4",10,"\u56B0",6,"\u56B8\u56B9\u56BA\u56BB\u56BD",12,"\u56CB",8,"\u56D5\u56D6\u56D8\u56D9\u56DC\u56E3\u56E5",5,"\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705\u5707\u570B",6],["8840","\u5712",9,"\u571D\u571E\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572B\u5731\u5732\u5734",4,"\u573C\u573D\u573F\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574B\u5752",4,"\u5758\u5759\u5762\u5763\u5765\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577A\u577D\u577E\u577F\u5780"],["8880","\u5781\u5787\u5788\u5789\u578A\u578D",4,"\u5794",6,"\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7\u57B9",8,"\u57C4",6,"\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5",7,"\u57EE\u57F0\u57F1\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822\u5823\u5825",4,"\u582B",4,"\u5831\u5832\u5833\u5834\u5836",7],["8940","\u583E",5,"\u5845",6,"\u584E\u584F\u5850\u5852\u5853\u5855\u5856\u5857\u5859",4,"\u585F",5,"\u5866",4,"\u586D",16,"\u587F\u5882\u5884\u5886\u5887\u5888\u588A\u588B\u588C"],["8980","\u588D",4,"\u5894",4,"\u589B\u589C\u589D\u58A0",7,"\u58AA",17,"\u58BD\u58BE\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6",10,"\u58D2\u58D3\u58D4\u58D6",13,"\u58E5",5,"\u58ED\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA",7,"\u5903\u5905\u5906\u5908",4,"\u590E\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C\u5930\u5932\u5933\u5935\u5936\u593B"],["8a40","\u593D\u593E\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D\u5950\u5952\u5953\u5959\u595B",4,"\u5961\u5963\u5964\u5966",12,"\u5975\u5977\u597A\u597B\u597C\u597E\u597F\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D\u599F\u59A0\u59A1\u59A2\u59A6"],["8a80","\u59A7\u59AC\u59AD\u59B0\u59B1\u59B3",5,"\u59BA\u59BC\u59BD\u59BF",6,"\u59C7\u59C8\u59C9\u59CC\u59CD\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE",4,"\u59E4\u59E6\u59E7\u59E9\u59EA\u59EB\u59ED",11,"\u59FA\u59FC\u59FD\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27\u5A28\u5A2A",6,"\u5A33\u5A35\u5A37",4,"\u5A3D\u5A3E\u5A3F\u5A41",4,"\u5A47\u5A48\u5A4B",9,"\u5A56\u5A57\u5A58\u5A59\u5A5B",5],["8b40","\u5A61\u5A63\u5A64\u5A65\u5A66\u5A68\u5A69\u5A6B",8,"\u5A78\u5A79\u5A7B\u5A7C\u5A7D\u5A7E\u5A80",17,"\u5A93",6,"\u5A9C",13,"\u5AAB\u5AAC"],["8b80","\u5AAD",4,"\u5AB4\u5AB6\u5AB7\u5AB9",4,"\u5ABF\u5AC0\u5AC3",5,"\u5ACA\u5ACB\u5ACD",4,"\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA\u5AEC",4,"\u5AF2",22,"\u5B0A",11,"\u5B18",25,"\u5B33\u5B35\u5B36\u5B38",7,"\u5B41",6],["8c40","\u5B48",7,"\u5B52\u5B56\u5B5E\u5B60\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB\u5BCD\u5BCE\u5BCF"],["8c80","\u5BD1\u5BD4",8,"\u5BE0\u5BE2\u5BE3\u5BE6\u5BE7\u5BE9",4,"\u5BEF\u5BF1",6,"\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64\u5C67",6,"\u5C70\u5C72",6,"\u5C7B\u5C7C\u5C7D\u5C7E\u5C80\u5C83",4,"\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93\u5C95\u5C9D",4,"\u5CA4",4],["8d40","\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0\u5CC2\u5CC3\u5CC5",5,"\u5CCC",5,"\u5CD3",5,"\u5CDA",6,"\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB\u5CEC\u5CEE\u5CEF\u5CF1",9,"\u5CFC",4],["8d80","\u5D01\u5D04\u5D05\u5D08",5,"\u5D0F",4,"\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D\u5D1F",4,"\u5D25\u5D28\u5D2A\u5D2B\u5D2C\u5D2F",4,"\u5D35",7,"\u5D3F",7,"\u5D48\u5D49\u5D4D",10,"\u5D59\u5D5A\u5D5C\u5D5E",10,"\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72\u5D73\u5D75",12,"\u5D83",21,"\u5D9A\u5D9B\u5D9C\u5D9E\u5D9F\u5DA0"],["8e40","\u5DA1",21,"\u5DB8",12,"\u5DC6",6,"\u5DCE",12,"\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC\u5DED"],["8e80","\u5DF0\u5DF5\u5DF6\u5DF8",4,"\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E",7,"\u5E28",4,"\u5E2F\u5E30\u5E32",4,"\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41\u5E43\u5E46",5,"\u5E4D",6,"\u5E56",4,"\u5E5C\u5E5D\u5E5F\u5E60\u5E63",14,"\u5E75\u5E77\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1\u5EA2\u5EA3\u5EA4\u5EA8",4,"\u5EAE",4,"\u5EB4\u5EBA\u5EBB\u5EBC\u5EBD\u5EBF",6],["8f40","\u5EC6\u5EC7\u5EC8\u5ECB",5,"\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA\u5EDC",11,"\u5EE9\u5EEB",8,"\u5EF5\u5EF8\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"],["8f80","\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32",6,"\u5F3B\u5F3D\u5F3E\u5F3F\u5F41",14,"\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0\u5FA2",5,"\u5FA9\u5FAB\u5FAC\u5FAF",5,"\u5FB6\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE",4,"\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007"],["9040","\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C\u602D\u602E\u6030",4,"\u6036",4,"\u603D\u603E\u6040\u6044",6,"\u604C\u604E\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E\u6071\u6072\u6074\u6075\u6077\u607E\u6080"],["9080","\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7\u60B9\u60BA\u60BD",7,"\u60C7\u60C8\u60C9\u60CC",4,"\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9\u60DB\u60DE\u60E1",4,"\u60EA\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB",4,"\u6102\u6103\u6104\u6105\u6107\u610A\u610B\u610C\u6110",4,"\u6116\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121\u6122\u6125\u6128\u6129\u612A\u612C",18,"\u6140",6],["9140","\u6147\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154\u6156",6,"\u615E\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169",6,"\u6171\u6172\u6173\u6174\u6176\u6178",18,"\u618C\u618D\u618F",4,"\u6195"],["9180","\u6196",6,"\u619E",8,"\u61AA\u61AB\u61AD",9,"\u61B8",5,"\u61BF\u61C0\u61C1\u61C3",4,"\u61C9\u61CC",4,"\u61D3\u61D5",16,"\u61E7",13,"\u61F6",8,"\u6200",5,"\u6207\u6209\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230\u6231\u6232\u6235\u6236\u6238",4,"\u6242\u6244\u6245\u6246\u624A"],["9240","\u624F\u6250\u6255\u6256\u6257\u6259\u625A\u625C",6,"\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B",5,"\u6294\u6299\u629C\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7\u62B8\u62BA\u62BE\u62C0\u62C1"],["9280","\u62C3\u62CB\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C\u632D\u632E\u6330\u6331\u6333",5,"\u633B\u633C\u633E\u633F\u6340\u6341\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354\u6356",7,"\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397\u6399",6,"\u63A1\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6\u63B9\u63BB\u63BD\u63BF\u63C0"],["9340","\u63C1\u63C2\u63C3\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3\u63D4\u63D5\u63D7",6,"\u63DF\u63E2\u63E4",4,"\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404\u6406",4,"\u640D\u640E\u6411\u6412\u6415",5,"\u641D\u641F\u6422\u6423\u6424"],["9380","\u6425\u6427\u6428\u6429\u642B\u642E",5,"\u6435",4,"\u643B\u643C\u643E\u6440\u6442\u6443\u6449\u644B",6,"\u6453\u6455\u6456\u6457\u6459",4,"\u645F",7,"\u6468\u646A\u646B\u646C\u646E",9,"\u647B",6,"\u6483\u6486\u6488",8,"\u6493\u6494\u6497\u6498\u649A\u649B\u649C\u649D\u649F",4,"\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6",6,"\u64CF\u64D1\u64D3\u64D4\u64D5\u64D6\u64D9\u64DA"],["9440","\u64DB\u64DC\u64DD\u64DF\u64E0\u64E1\u64E3\u64E5\u64E7",24,"\u6501",7,"\u650A",7,"\u6513",4,"\u6519",8],["9480","\u6522\u6523\u6524\u6526",4,"\u652C\u652D\u6530\u6531\u6532\u6533\u6537\u653A\u653C\u653D\u6540",4,"\u6546\u6547\u654A\u654B\u654D\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575\u6576\u6578",14,"\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1",7,"\u65BA\u65BB\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8",7,"\u65E1\u65E3\u65E4\u65EA\u65EB"],["9540","\u65F2\u65F3\u65F4\u65F5\u65F8\u65F9\u65FB",4,"\u6601\u6604\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6632\u6633\u6637",4,"\u663D\u663F\u6640\u6642\u6644",6,"\u664D\u664E\u6650\u6651\u6658"],["9580","\u6659\u665B\u665C\u665D\u665E\u6660\u6662\u6663\u6665\u6667\u6669",4,"\u6671\u6672\u6673\u6675\u6678\u6679\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F\u6690\u6692\u6693\u6694\u6695\u6698",4,"\u669E",8,"\u66A9",4,"\u66AF",4,"\u66B5\u66B6\u66B7\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF",25,"\u66DA\u66DE",7,"\u66E7\u66E8\u66EA",5,"\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701\u6702\u6703"],["9640","\u6704\u6705\u6706\u6707\u670C\u670E\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A\u671C\u671E\u6720",5,"\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755\u6757",4,"\u675D\u6762\u6763\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774\u6776"],["9680","\u6778\u6779\u677A\u677B\u677D\u6780\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC\u67AE\u67B1\u67B2\u67B4\u67B9",7,"\u67C2\u67C5",9,"\u67D5\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5",7,"\u67FE\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812\u6814\u6815\u6818",4,"\u681E\u681F\u6820\u6822",6,"\u682B",6,"\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B\u684D\u684F\u6852\u6856",5],["9740","\u685C\u685D\u685E\u685F\u686A\u686C",7,"\u6875\u6878",8,"\u6882\u6884\u6887",7,"\u6890\u6891\u6892\u6894\u6895\u6896\u6898",9,"\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"],["9780","\u68B9",6,"\u68C1\u68C3",5,"\u68CA\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6\u68D7\u68D9\u68DB",4,"\u68E1\u68E2\u68E4",9,"\u68EF\u68F2\u68F3\u68F4\u68F6\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902\u6903\u6904\u6906",4,"\u690C\u690F\u6911\u6913",11,"\u6921\u6922\u6923\u6925",7,"\u692E\u692F\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941\u6943",16,"\u6955\u6956\u6958\u6959\u695B\u695C\u695F"],["9840","\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A\u696C\u696D\u696F\u6970\u6972",4,"\u697A\u697B\u697D\u697E\u697F\u6981\u6983\u6985\u698A\u698B\u698C\u698E",5,"\u6996\u6997\u6999\u699A\u699D",9,"\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD"],["9880","\u69BE\u69BF\u69C0\u69C2",7,"\u69CB\u69CD\u69CF\u69D1\u69D2\u69D3\u69D5",5,"\u69DC\u69DD\u69DE\u69E1",11,"\u69EE\u69EF\u69F0\u69F1\u69F3",9,"\u69FE\u6A00",9,"\u6A0B",11,"\u6A19",5,"\u6A20\u6A22",5,"\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33\u6A34\u6A36",6,"\u6A3F",4,"\u6A45\u6A46\u6A48",7,"\u6A51",6,"\u6A5A"],["9940","\u6A5C",4,"\u6A62\u6A63\u6A64\u6A66",10,"\u6A72",6,"\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82\u6A83\u6A85",8,"\u6A8F\u6A92",4,"\u6A98",7,"\u6AA1",5],["9980","\u6AA7\u6AA8\u6AAA\u6AAD",114,"\u6B25\u6B26\u6B28",6],["9a40","\u6B2F\u6B30\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48\u6B4A\u6B4B\u6B4D",11,"\u6B5A",7,"\u6B68\u6B69\u6B6B",13,"\u6B7A\u6B7D\u6B7E\u6B7F\u6B80\u6B85\u6B88"],["9a80","\u6B8C\u6B8E\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99\u6B9C",4,"\u6BA2",7,"\u6BAB",7,"\u6BB6\u6BB8",6,"\u6BC0\u6BC3\u6BC4\u6BC6",4,"\u6BCC\u6BCE\u6BD0\u6BD1\u6BD8\u6BDA\u6BDC",4,"\u6BE2",7,"\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE",6,"\u6C08",4,"\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43\u6C44\u6C45\u6C48\u6C4B",4,"\u6C51\u6C52\u6C53\u6C56\u6C58"],["9b40","\u6C59\u6C5A\u6C62\u6C63\u6C65\u6C66\u6C67\u6C6B",4,"\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE\u6CCF\u6CD1\u6CD2\u6CD8"],["9b80","\u6CD9\u6CDA\u6CDC\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F",5,"\u6D26\u6D28\u6D29\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A\u6D7B\u6D7D",4,"\u6D83\u6D84\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92\u6D96",4,"\u6D9C\u6DA2\u6DA5\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7\u6DB9",5,"\u6DC1\u6DC2\u6DC3\u6DC8\u6DC9\u6DCA"],["9c40","\u6DCD\u6DCE\u6DCF\u6DD0\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8\u6DFA\u6DFD",7,"\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30\u6E31\u6E33\u6E35"],["9c80","\u6E36\u6E37\u6E39\u6E3B",7,"\u6E45",7,"\u6E4F\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C\u6E5D\u6E5E\u6E60",10,"\u6E6C\u6E6D\u6E6F",14,"\u6E80\u6E81\u6E82\u6E84\u6E87\u6E88\u6E8A",4,"\u6E91",6,"\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA",5],["9d40","\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5\u6EF6\u6EF7\u6EF8\u6EFA",7,"\u6F03\u6F04\u6F05\u6F07\u6F08\u6F0A",4,"\u6F10\u6F11\u6F12\u6F16",9,"\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37",6,"\u6F3F\u6F40\u6F41\u6F42"],["9d80","\u6F43\u6F44\u6F45\u6F48\u6F49\u6F4A\u6F4C\u6F4E",9,"\u6F59\u6F5A\u6F5B\u6F5D\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67",5,"\u6F6F\u6F70\u6F71\u6F73\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D",6,"\u6F85\u6F86\u6F87\u6F8A\u6F8B\u6F8F",12,"\u6F9D\u6F9E\u6F9F\u6FA0\u6FA2",4,"\u6FA8",10,"\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA",5,"\u6FC1\u6FC3",5,"\u6FCA",6,"\u6FD3",10,"\u6FDF\u6FE2\u6FE3\u6FE4\u6FE5"],["9e40","\u6FE6",7,"\u6FF0",32,"\u7012",7,"\u701C",6,"\u7024",6],["9e80","\u702B",9,"\u7036\u7037\u7038\u703A",17,"\u704D\u704E\u7050",13,"\u705F",11,"\u706E\u7071\u7072\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A\u709B\u709E",12,"\u70B0\u70B2\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5\u70C6\u70C7\u70C9\u70CB",12,"\u70DA"],["9f40","\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3\u70E5\u70EA\u70EE\u70F0",6,"\u70F8\u70FA\u70FB\u70FC\u70FE",10,"\u710B",4,"\u7111\u7112\u7114\u7117\u711B",10,"\u7127",7,"\u7132\u7133\u7134"],["9f80","\u7135\u7137",13,"\u7146\u7147\u7148\u7149\u714B\u714D\u714F",12,"\u715D\u715F",4,"\u7165\u7169",4,"\u716F\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B\u717C\u717E",5,"\u7185",4,"\u718B\u718C\u718D\u718E\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A",4,"\u71A1",6,"\u71A9\u71AA\u71AB\u71AD",5,"\u71B4\u71B6\u71B7\u71B8\u71BA",8,"\u71C4",9,"\u71CF",4],["a040","\u71D6",9,"\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8",5,"\u71EF",9,"\u71FA",11,"\u7207",19],["a080","\u721B\u721C\u721E",9,"\u7229\u722B\u722D\u722E\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240",6,"\u7249\u724A\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D\u7282\u7283\u7285",4,"\u728C\u728E\u7290\u7291\u7293",11,"\u72A0",11,"\u72AE\u72B1\u72B2\u72B3\u72B5\u72BA",6,"\u72C5\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB"],["a1a1","\u3000\u3001\u3002\xB7\u02C9\u02C7\xA8\u3003\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C\u201D\u3014\u3015\u3008",7,"\u3016\u3017\u3010\u3011\xB1\xD7\xF7\u2236\u2227\u2228\u2211\u220F\u222A\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFF04\xA4\uFFE0\uFFE1\u2030\xA7\u2116\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u203B\u2192\u2190\u2191\u2193\u3013"],["a2a1","\u2170",9],["a2b1","\u2488",19,"\u2474",19,"\u2460",9],["a2e5","\u3220",9],["a2f1","\u2160",11],["a3a1","\uFF01\uFF02\uFF03\uFFE5\uFF05",88,"\uFFE3"],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a6e0","\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44"],["a6ee","\uFE3B\uFE3C\uFE37\uFE38\uFE31"],["a6f4","\uFE33\uFE34"],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a840","\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223\u2252\u2266\u2267\u22BF\u2550",35,"\u2581",6],["a880","\u2588",7,"\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4\u25E5\u2609\u2295\u3012\u301D\u301E"],["a8a1","\u0101\xE1\u01CE\xE0\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA\u01DC\xFC\xEA\u0251"],["a8bd","\u0144\u0148"],["a8c0","\u0261"],["a8c5","\u3105",36],["a940","\u3021",8,"\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4"],["a959","\u2121\u3231"],["a95c","\u2010"],["a960","\u30FC\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49",9,"\uFE54\uFE55\uFE56\uFE57\uFE59",8],["a980","\uFE62",4,"\uFE68\uFE69\uFE6A\uFE6B"],["a996","\u3007"],["a9a4","\u2500",75],["aa40","\u72DC\u72DD\u72DF\u72E2",5,"\u72EA\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300\u7302\u7304",5,"\u730B\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336\u733A\u733B\u733C\u733D\u7340",8],["aa80","\u7349\u734A\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355\u7356\u7358",7,"\u7361",10,"\u736E\u7370\u7371"],["ab40","\u7372",11,"\u737F",4,"\u7385\u7386\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D\u739E\u73A0\u73A1\u73A3",5,"\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3",4],["ab80","\u73CB\u73CC\u73CE\u73D2",6,"\u73DA\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0\u73F1\u73F3",4],["ac40","\u73F8",10,"\u7404\u7407\u7408\u740B\u740C\u740D\u740E\u7411",8,"\u741C",5,"\u7423\u7424\u7427\u7429\u742B\u742D\u742F\u7431\u7432\u7437",4,"\u743D\u743E\u743F\u7440\u7442",11],["ac80","\u744E",6,"\u7456\u7458\u745D\u7460",12,"\u746E\u746F\u7471",4,"\u7478\u7479\u747A"],["ad40","\u747B\u747C\u747D\u747F\u7482\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D\u748F\u7491",10,"\u749D\u749F",7,"\u74AA",15,"\u74BB",12],["ad80","\u74C8",9,"\u74D3",8,"\u74DD\u74DF\u74E1\u74E5\u74E7",6,"\u74F0\u74F1\u74F2"],["ae40","\u74F3\u74F5\u74F8",6,"\u7500\u7501\u7502\u7503\u7505",7,"\u750E\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D\u751E\u7520",4,"\u7526\u7527\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"],["ae80","\u755D",7,"\u7567\u7568\u7569\u756B",6,"\u7573\u7575\u7576\u7577\u757A",4,"\u7580\u7581\u7582\u7584\u7585\u7587"],["af40","\u7588\u7589\u758A\u758C\u758D\u758E\u7590\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6",4,"\u75AD\u75B6\u75B7\u75BA\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"],["af80","\u7608\u7609\u760B\u760D\u760E\u760F\u7611\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641\u7642\u7644"],["b040","\u7645",6,"\u764E",5,"\u7655\u7657",4,"\u765D\u765F\u7660\u7661\u7662\u7664",6,"\u766C\u766D\u766E\u7670",7,"\u7679\u767A\u767C\u767F\u7680\u7681\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690\u7692\u7694\u7695\u7697\u7698\u769A\u769B"],["b080","\u769C",7,"\u76A5",8,"\u76AF\u76B0\u76B3\u76B5",9,"\u76C0\u76C1\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265"],["b140","\u76C4\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA\u76DC\u76DD\u76DE\u76E0",4,"\u76E6",7,"\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C\u770E",10,"\u771B\u771C\u771D\u771E\u7721\u7723\u7724\u7725\u7727\u772A\u772B"],["b180","\u772C\u772E\u7730",4,"\u7739\u773B\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748",7,"\u7752",7,"\u775C\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175\u51B0\u67C4\u4E19\u79C9\u997C\u70B3"],["b240","\u775D\u775E\u775F\u7760\u7764\u7767\u7769\u776A\u776D",11,"\u777A\u777B\u777C\u7781\u7782\u7783\u7786",5,"\u778F\u7790\u7793",11,"\u77A1\u77A3\u77A4\u77A6\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4\u77B6",4],["b280","\u77BC\u77BE\u77C0",12,"\u77CE",8,"\u77D8\u77D9\u77DA\u77DD",4,"\u77E4\u75C5\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2\u4EA7\u9610\u98A4\u660C\u7316"],["b340","\u77E6\u77E8\u77EA\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9\u77FA\u77FB\u77FC\u7803",5,"\u780A\u780B\u780E\u780F\u7810\u7813\u7815\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853\u7854\u7858\u7859\u785A"],["b380","\u785B\u785C\u785E",11,"\u786F",7,"\u7878\u7879\u787A\u787B\u787D",6,"\u573A\u5C1D\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504\u96CF\u6EC1\u9664\u695A"],["b440","\u7884\u7885\u7886\u7888\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8",7,"\u78B5\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7\u78D8\u78DA",9],["b480","\u78E4\u78E5\u78E6\u78E7\u78E9\u78EA\u78EB\u78ED",4,"\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB",5,"\u7902\u7903\u7904\u7906",6,"\u7840\u50A8\u77D7\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37\u888B\u5F85\u902E"],["b540","\u790D",5,"\u7914",9,"\u791F",4,"\u7925",14,"\u7935",4,"\u793D\u793F\u7942\u7943\u7944\u7945\u7947\u794A",8,"\u7954\u7955\u7958\u7959\u7961\u7963"],["b580","\u7964\u7966\u7969\u796A\u796B\u796C\u796E\u7970",6,"\u7979\u797B",4,"\u7982\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED\u8C0D\u53E0"],["b640","\u7993",6,"\u799B",11,"\u79A8",10,"\u79B4",4,"\u79BC\u79BF\u79C2\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9",5,"\u79E0\u79E1\u79E2\u79E5\u79E8\u79EA"],["b680","\u79EC\u79EE\u79F1",6,"\u79F9\u79FA\u79FC\u79FE\u79FF\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C\u7A0F",4,"\u7A15\u7A16\u7A18\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31\u4E8C"],["b740","\u7A1D\u7A1F\u7A21\u7A22\u7A24",14,"\u7A34\u7A35\u7A36\u7A38\u7A3A\u7A3E\u7A40",5,"\u7A47",9,"\u7A52",4,"\u7A58",16],["b780","\u7A69",6,"\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"],["b840","\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE",4,"\u7AB4",10,"\u7AC0",10,"\u7ACC",9,"\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7",5,"\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3"],["b880","\u7AF4",4,"\u7AFB\u7AFC\u7AFE\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9"],["b940","\u7B2F\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B\u7B3D\u7B3F",5,"\u7B46\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59\u7B5C\u7B5E\u7B5F\u7B61\u7B63",10,"\u7B6F\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86",6,"\u7B8E\u7B8F"],["b980","\u7B91\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9",7,"\u7BC2\u7BC3\u7BC4\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8"],["ba40","\u7BC5\u7BC8\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2\u7BD4",4,"\u7BDB\u7BDC\u7BDE\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2",4,"\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF",7,"\u7C08\u7C09\u7C0A\u7C0D\u7C0E\u7C10",5,"\u7C17\u7C18\u7C19"],["ba80","\u7C1A",4,"\u7C20",5,"\u7C28\u7C29\u7C2B",12,"\u7C39",5,"\u7C42\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B\u80E1\u8774\u72D0\u7CCA\u6E56"],["bb40","\u7C43",9,"\u7C4E",36,"\u7C75",5,"\u7C7E",9],["bb80","\u7C88\u7C8A",6,"\u7C93\u7C94\u7C96\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4",4,"\u7CBA\u7CBB\u5F27\u864E\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A\u7578\u7A3D\u79EF\u7B95"],["bc40","\u7CBF\u7CC0\u7CC2\u7CC3\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE",6,"\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE\u7CE1",6,"\u7CE9",5,"\u7CF0",7,"\u7CF9\u7CFA\u7CFC",13,"\u7D0B",5],["bc80","\u7D11",14,"\u7D21\u7D23\u7D24\u7D25\u7D26\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30",6,"\u808C\u9965\u8FF9\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1\u952E\u7BAD\u4EF6"],["bd40","\u7D37",54,"\u7D6F",7],["bd80","\u7D78",32,"\u5065\u8230\u5251\u996F\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1\u70EC\u6D78"],["be40","\u7D99",12,"\u7DA7",6,"\u7DAF",42],["be80","\u7DDA",32,"\u5C3D\u52B2\u8346\u5162\u830E\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B\u5CFB"],["bf40","\u7DFB",62],["bf80","\u7E3A\u7E3C",4,"\u7E42",4,"\u7E48",21,"\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080"],["c040","\u7E5E",35,"\u7E83",23,"\u7E9C\u7E9D\u7E9E"],["c080","\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B",6,"\u7F43\u7F46",9,"\u7F52\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0"],["c140","\u7F56\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63",4,"\u7F6B\u7F6C\u7F6D\u7F6F\u7F70\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C\u7F7D\u7F7F\u7F80\u7F82",7,"\u7F8B\u7F8D\u7F8F",4,"\u7F95",4,"\u7F9B\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8",6,"\u7FB1"],["c180","\u7FB3",4,"\u7FBA\u7FBB\u7FBE\u7FC0\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB\u7FCD\u7FCF",4,"\u7FD6\u7FD7\u7FD9",5,"\u7FE2\u7FE3\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3\u516D\u9F99\u804B\u5499\u7B3C\u7ABF"],["c240","\u7FE4\u7FE7\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4",6,"\u7FFD\u7FFE\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021\u8023\u8024\u802B",5,"\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050\u8051\u8053\u8055\u8056\u8057"],["c280","\u8059\u805B",13,"\u806B",5,"\u8072",11,"\u9686\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE\u6EE1\u8513\u66FC\u6162\u6F2B"],["c340","\u807E\u8081\u8082\u8085\u8088\u808A\u808D",5,"\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8\u80B9\u80BB\u80C5\u80C7",4,"\u80CF",6,"\u80D8\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810B"],["c380","\u810C\u8115\u8117\u8119\u811B\u811C\u811D\u811F",12,"\u812D\u812E\u8130\u8133\u8134\u8135\u8137\u8139",4,"\u813F\u8C29\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED\u540D\u547D\u8C2C\u6478"],["c440","\u8140",5,"\u8147\u8149\u814D\u814E\u814F\u8152\u8156\u8157\u8158\u815B",4,"\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183",4,"\u8189\u818B\u818C\u818D\u818E\u8190\u8192",5,"\u8199\u819A\u819E",4,"\u81A4\u81A5"],["c480","\u81A7\u81A9\u81AB",7,"\u81B4",5,"\u81BC\u81BD\u81BE\u81BF\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD",6,"\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0\u72DE\u51DD\u5B81"],["c540","\u81D4",14,"\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB\u81EE",4,"\u81F5",5,"\u81FD\u81FF\u8203\u8207",4,"\u820E\u820F\u8211\u8213\u8215",5,"\u821D\u8220\u8224\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C\u823D\u823F"],["c580","\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824A\u824C\u824D\u824E\u8250",7,"\u8259\u825B\u825C\u825D\u825E\u8260",7,"\u8269\u62E7\u6CDE\u725B\u626D\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7"],["c640","\u826A\u826B\u826C\u826D\u8271\u8275\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6\u82F8"],["c680","\u82FA\u82FC",4,"\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318\u8319\u831D",9,"\u8329\u832A\u832E\u8330\u8332\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB\u6390"],["c740","\u833E\u833F\u8341\u8342\u8344\u8345\u8348\u834A",4,"\u8353\u8355",4,"\u835D\u8362\u8370",6,"\u8379\u837A\u837E",6,"\u8387\u8388\u838A\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839A\u839D\u839F\u83A1",6,"\u83AC\u83AD\u83AE"],["c780","\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"],["c840","\u83EE\u83EF\u83F3",4,"\u83FA\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407\u8408\u8409\u840A\u8410\u8412",5,"\u8419\u841A\u841B\u841E",5,"\u8429",7,"\u8432",5,"\u8439\u843A\u843B\u843E",7,"\u8447\u8448\u8449"],["c880","\u844A",6,"\u8452",4,"\u8458\u845D\u845E\u845F\u8460\u8462\u8464",4,"\u846A\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1"],["c940","\u847D",4,"\u8483\u8484\u8485\u8486\u848A\u848D\u848F",7,"\u8498\u849A\u849B\u849D\u849E\u849F\u84A0\u84A2",12,"\u84B0\u84B1\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7"],["c980","\u84D8",4,"\u84DE\u84E1\u84E2\u84E4\u84E7",4,"\u84ED\u84EE\u84EF\u84F1",10,"\u84FD\u84FE\u8500\u8501\u8502\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17\u58F0\u751F\u7525\u7272\u5347\u7EF3"],["ca40","\u8503",8,"\u850D\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851B\u851C\u851D\u851E\u8520\u8522",8,"\u852D",9,"\u853E",4,"\u8544\u8545\u8546\u8547\u854B",10],["ca80","\u8557\u8558\u855A\u855B\u855C\u855D\u855F",4,"\u8565\u8566\u8567\u8569",8,"\u8573\u8575\u8576\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D\u7AD6\u5885\u5EB6\u6570\u6F31"],["cb40","\u8582\u8583\u8586\u8588",6,"\u8590",10,"\u859D",6,"\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD\u85B1",5,"\u85B8\u85BA",6,"\u85C2",6,"\u85CA",4,"\u85D1\u85D2"],["cb80","\u85D4\u85D6",5,"\u85DD",6,"\u85E5\u85E6\u85E7\u85E8\u85EA",14,"\u6055\u5237\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C\u4ED6\u5B83\u5979\u5854"],["cc40","\u85F9\u85FA\u85FC\u85FD\u85FE\u8600",4,"\u8606",10,"\u8612\u8613\u8614\u8615\u8617",15,"\u8628\u862A",13,"\u8639\u863A\u863B\u863D\u863E\u863F\u8640"],["cc80","\u8641",11,"\u8652\u8653\u8655",4,"\u865B\u865C\u865D\u865F\u8660\u8661\u8663",7,"\u736D\u631E\u8E4B\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16\u5385\u542C\u70C3"],["cd40","\u866D\u866F\u8670\u8672",6,"\u8683",6,"\u868E",4,"\u8694\u8696",5,"\u869E",4,"\u86A5\u86A6\u86AB\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB",4,"\u86C1\u86C2\u86C3\u86C5\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7\u86DA\u86DC"],["cd80","\u86DD\u86E0\u86E1\u86E2\u86E3\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8\u5984\u5A01"],["ce40","\u8719\u871B\u871D\u871F\u8720\u8724\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A\u873C\u873D\u8740",6,"\u874A\u874B\u874D\u874F\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875A",5,"\u8761\u8762\u8766",7,"\u876F\u8771\u8772\u8773\u8775"],["ce80","\u8777\u8778\u8779\u877A\u877F\u8780\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E",4,"\u8794\u8795\u8796\u8798",6,"\u87A0",4,"\u5DCD\u5FAE\u5371\u97E6\u8FDD\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521\u727A"],["cf40","\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB\u87BC\u87BE\u87BF\u87C1",4,"\u87C7\u87C8\u87C9\u87CC",4,"\u87D4",6,"\u87DC\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF",9],["cf80","\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801\u8802\u8804",5,"\u880B",7,"\u8814\u8817\u8818\u8819\u881A\u881C",4,"\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653"],["d040","\u8824",13,"\u8833",5,"\u883A\u883B\u883D\u883E\u883F\u8841\u8842\u8843\u8846",5,"\u884E",5,"\u8855\u8856\u8858\u885A",6,"\u8866\u8867\u886A\u886D\u886F\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887A"],["d080","\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895\u8897",4,"\u889D",4,"\u88A3\u88A5",5,"\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384"],["d140","\u88AC\u88AE\u88AF\u88B0\u88B2",4,"\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA",4,"\u88E0\u88E1\u88E6\u88E7\u88E9",6,"\u88F2\u88F5\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901\u8903",5],["d180","\u8909\u890B",4,"\u8911\u8914",4,"\u891C",4,"\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B\u6837\u6F3E\u9080\u8170\u5996\u7476"],["d240","\u8938",8,"\u8942\u8943\u8945",24,"\u8960",5,"\u8967",19,"\u897C"],["d280","\u897D\u897E\u8980\u8982\u8984\u8985\u8987",26,"\u6447\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB\u5BC5\u996E\u5C39\u5F15\u9690"],["d340","\u89A2",30,"\u89C3\u89CD\u89D3\u89D4\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4",6],["d380","\u89FB",4,"\u8A01",5,"\u8A08",21,"\u5370\u82F1\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108\u6B32\u72F1\u80B2\u8A89"],["d440","\u8A1E",31,"\u8A3F",8,"\u8A49",21],["d480","\u8A5F",25,"\u8A7A",6,"\u6D74\u5BD3\u88D5\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3\u6E23\u672D\u8F67"],["d540","\u8A81",7,"\u8A8B",7,"\u8A94",46],["d580","\u8AC3",32,"\u94E1\u95F8\u7728\u6805\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF\u6B63\u653F"],["d640","\u8AE4",34,"\u8B08",27],["d680","\u8B24\u8B25\u8B27",30,"\u5E27\u75C7\u90D1\u8BC1\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8\u7B51"],["d740","\u8B46",31,"\u8B67",4,"\u8B6D",25],["d780","\u8B87",24,"\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7"],["d840","\u8C38",8,"\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B\u8C4D",7,"\u8C56\u8C57\u8C58\u8C59\u8C5B",5,"\u8C63",6,"\u8C6C",6,"\u8C74\u8C75\u8C76\u8C77\u8C7B",6,"\u8C83\u8C84\u8C86\u8C87"],["d880","\u8C88\u8C8B\u8C8D",6,"\u8C95\u8C96\u8C97\u8C99",20,"\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D"],["d940","\u8CAE",62],["d980","\u8CED",32,"\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC"],["da40","\u8D0E",14,"\u8D20\u8D51\u8D52\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E\u8D6F\u8D71\u8D72\u8D78",8,"\u8D82\u8D83\u8D86\u8D87\u8D88\u8D89\u8D8C",4,"\u8D92\u8D93\u8D95",9,"\u8DA0\u8DA1"],["da80","\u8DA2\u8DA4",12,"\u8DB2\u8DB6\u8DB7\u8DB9\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC\u90A1\u90B4\u90B3\u90B6\u90BA"],["db40","\u8DD5\u8DD8\u8DD9\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC\u8DFE",6,"\u8E06\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12\u8E13\u8E15",7,"\u8E20\u8E21\u8E24",4,"\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37\u8E38\u8E3B\u8E3C\u8E3E"],["db80","\u8E3F\u8E43\u8E45\u8E46\u8E4C",4,"\u8E53",5,"\u8E5A",11,"\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4\u57EF\u57F8\u57E4\u57DD"],["dc40","\u8E73\u8E75\u8E77",4,"\u8E7D\u8E7E\u8E80\u8E82\u8E83\u8E84\u8E86\u8E88",6,"\u8E91\u8E92\u8E93\u8E95",6,"\u8E9D\u8E9F",11,"\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3",6,"\u8EBB",7],["dc80","\u8EC3",10,"\u8ECF",21,"\u580B\u580D\u57FD\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A\u8333\u8366\u8365"],["dd40","\u8EE5",62],["dd80","\u8F24",32,"\u8368\u831B\u8369\u836C\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539\u851F\u853A"],["de40","\u8F45",32,"\u8F6A\u8F80\u8F8C\u8F92\u8F9D\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3\u8FC6"],["de80","\u8FC9",4,"\u8FCF\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D\u6496"],["df40","\u9019\u901C\u9023\u9024\u9025\u9027",5,"\u9030",4,"\u9037\u9039\u903A\u903D\u903F\u9040\u9043\u9045\u9046\u9048",4,"\u904E\u9054\u9055\u9056\u9059\u905A\u905C",5,"\u9064\u9066\u9067\u9069\u906A\u906B\u906C\u906F",4,"\u9076",6,"\u907E\u9081"],["df80","\u9084\u9085\u9086\u9087\u9089\u908A\u908C",4,"\u9092\u9094\u9096\u9098\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C"],["e040","\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103\u9105",19,"\u911A\u911B\u911C"],["e080","\u911D\u911F\u9120\u9121\u9124",10,"\u9130\u9132",6,"\u913A",8,"\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C"],["e140","\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168\u916B\u916D\u9173\u917A\u917B\u917C\u9180",4,"\u9186\u9188\u918A\u918E\u918F\u9193",6,"\u919C",5,"\u91A4",5,"\u91AB\u91AC\u91B0\u91B1\u91B2\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB"],["e180","\u91BC",10,"\u91C8\u91CB\u91D0\u91D2",9,"\u91DD",8,"\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2\u72F4\u72F7\u7301\u72F3\u7303\u72FA"],["e240","\u91E6",62],["e280","\u9225",32,"\u72FB\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924\u5902\u9963\u9967",5,"\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021\u6078\u6079\u607B\u607A\u6042"],["e340","\u9246",45,"\u9275",16],["e380","\u9286",7,"\u928F",24,"\u606A\u607D\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE\u6CB1\u6CD3\u6CEF\u6CFE"],["e440","\u92A8",5,"\u92AF",24,"\u92C9",31],["e480","\u92E9",32,"\u6D39\u6D27\u6D0C\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72\u6F7C\u6F7A\u6FD1"],["e540","\u930A",51,"\u933F",10],["e580","\u934A",31,"\u936B\u6FC9\u6FA7\u6FB9\u6FB6\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9\u59AA\u59A3"],["e640","\u936C",34,"\u9390",27],["e680","\u93AC",29,"\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8\u7EA9"],["e740","\u93CE",7,"\u93D7",54],["e780","\u940E",32,"\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19\u7F1C\u7F1B\u7F1F\u7F21",6,"\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F",4,"\u7F35\u5E7A\u757F\u5DDB\u753E\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"],["e840","\u942F",14,"\u943F",43,"\u946C\u946D\u946E\u946F"],["e880","\u9470",20,"\u9491\u9496\u9498\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9"],["e940","\u9527\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560\u956E\u9574\u9575\u9577",7,"\u9580",42],["e980","\u95AB",32,"\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B"],["ea40","\u95CC",27,"\u95EC\u95FF\u9607\u9613\u9618\u961B\u961E\u9620\u9623",6,"\u962B\u962C\u962D\u962F\u9630\u9637\u9638\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F\u9651\u9652\u9653\u9656\u9657"],["ea80","\u9658\u9659\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666\u966B\u966D",4,"\u9673\u9678",12,"\u9687\u9689\u968A\u8F8D\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D\u728F\u7292\u6308\u6332\u63B0"],["eb40","\u968C\u968E\u9691\u9692\u9693\u9695\u9696\u969A\u969B\u969D",9,"\u96A8",7,"\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1\u96D3\u96D4\u96D6",9,"\u96E1",6,"\u96EB"],["eb80","\u96EC\u96ED\u96EE\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B\u970C\u9710\u9711\u9712\u9714\u9715\u9717",4,"\u971D\u971F\u9720\u643F\u64D8\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA\u81CC\u6726\u81CA\u81BB"],["ec40","\u9721",8,"\u972B\u972C\u972E\u972F\u9731\u9733",4,"\u973A\u973B\u973C\u973D\u973F",18,"\u9754\u9755\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764\u9766\u9767\u9768\u976A",7],["ec80","\u9772\u9775\u9777",4,"\u977D",7,"\u9786",4,"\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797\u9799",4,"\u81C1\u81A6\u6B24\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7\u79B3\u5FD1\u5FD0"],["ed40","\u979E\u979F\u97A1\u97A2\u97A4",6,"\u97AC\u97AE\u97B0\u97B1\u97B3\u97B5",46],["ed80","\u97E4\u97E5\u97E8\u97EE",4,"\u97F4\u97F7",23,"\u603C\u605D\u605A\u6067\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775A\u7768"],["ee40","\u980F",62],["ee80","\u984E",32,"\u7762\u7765\u777F\u778D\u777D\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6",4,"\u94BC\u94BD\u94BF\u94C4\u94C8",6,"\u94D0\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8\u94EA"],["ef40","\u986F",5,"\u988B\u988E\u9892\u9895\u9899\u98A3\u98A8",37,"\u98CF\u98D0\u98D4\u98D6\u98D7\u98DB\u98DC\u98DD\u98E0",4],["ef80","\u98E5\u98E6\u98E9",30,"\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512",4,"\u9518\u951B\u951D\u951E\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B\u955E\u955F\u955D\u9561\u9562\u9564",8,"\u956F\u9571\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14"],["f040","\u9908",4,"\u990E\u990F\u9911",28,"\u992F",26],["f080","\u994A",9,"\u9956",12,"\u9964\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20\u9E22\u9E28",4,"\u9E32\u9E31\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63\u9E66",6,"\u9E71\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605\u760C\u7617\u760A\u7625\u7618\u7615\u7619"],["f140","\u998C\u998E\u999A",10,"\u99A6\u99A7\u99A9",47],["f180","\u99D9",32,"\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052\u8069\u8071\u8983\u9878\u9880\u9883"],["f240","\u99FA",62],["f280","\u9A39",32,"\u9889\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759\u8765\u8793\u87AF\u87A8\u87D2"],["f340","\u9A5A",17,"\u9A72\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6\u9AA9",6,"\u9AB2\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF\u9AC3\u9AC4\u9AC6",4,"\u9ACD\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7\u9AD9\u9ADA\u9ADB\u9ADC"],["f380","\u9ADD\u9ADE\u9AE0\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA\u9AEC\u9AEE\u9AF0",8,"\u9AFA\u9AFC",6,"\u9B04\u9B05\u9B06\u87C6\u8788\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE\u7BFC\u7C0F\u7C16\u7C0B"],["f440","\u9B07\u9B09",5,"\u9B10\u9B11\u9B12\u9B14",10,"\u9B20\u9B21\u9B22\u9B24",10,"\u9B30\u9B31\u9B33",7,"\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55",5],["f480","\u9B5B",32,"\u7C1F\u7C2A\u7C26\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150\u914E\u914F\u9164"],["f540","\u9B7C",62],["f580","\u9BBB",32,"\u9162\u9161\u9170\u9169\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE\u89DA\u89DC"],["f640","\u9BDC",62],["f680","\u9C1B",32,"\u89E5\u89EB\u89EF\u8A3E\u8B26\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85",5,"\u9F8C\u9EFE\u9F0B\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A\u9C9B\u9C9E",5,"\u9CA5",4,"\u9CAB\u9CAD\u9CAE\u9CB0",7,"\u9CBA\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA\u9CCB"],["f740","\u9C3C",62],["f780","\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE",4,"\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB\u9CE0\u9CE1\u9CCC",4,"\u9CD3\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"],["f840","\u9CE3",62],["f880","\u9D22",32],["f940","\u9D43",62],["f980","\u9D82",32],["fa40","\u9DA3",62],["fa80","\u9DE2",32],["fb40","\u9E03",27,"\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F\u9E72\u9E74",9,"\u9E80"],["fb80","\u9E81\u9E83\u9E84\u9E85\u9E86\u9E89\u9E8A\u9E8C",5,"\u9E94",8,"\u9E9E\u9EA0",5,"\u9EA7\u9EA8\u9EA9\u9EAA"],["fc40","\u9EAB",8,"\u9EB5\u9EB6\u9EB7\u9EB9\u9EBA\u9EBC\u9EBF",4,"\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED\u9EEE\u9EF0",8,"\u9EFA\u9EFD\u9EFF",6],["fc80","\u9F06",4,"\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16\u9F18\u9F1A",5,"\u9F21\u9F23",8,"\u9F2D\u9F2E\u9F30\u9F31"],["fd40","\u9F32",4,"\u9F38\u9F3A\u9F3C\u9F3F",4,"\u9F45",10,"\u9F52",38],["fd80","\u9F79",5,"\u9F81\u9F82\u9F8D",11,"\u9F9C\u9F9D\u9F9E\u9FA1",4,"\uF92C\uF979\uF995\uF9E7\uF9F1"],["fe40","\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27\uFA28\uFA29"]]});var xS=j((O$e,GG)=>{GG.exports=[["a140","\uE4C6",62],["a180","\uE505",32],["a240","\uE526",62],["a280","\uE565",32],["a2ab","\uE766",5],["a2e3","\u20AC\uE76D"],["a2ef","\uE76E\uE76F"],["a2fd","\uE770\uE771"],["a340","\uE586",62],["a380","\uE5C5",31,"\u3000"],["a440","\uE5E6",62],["a480","\uE625",32],["a4f4","\uE772",10],["a540","\uE646",62],["a580","\uE685",32],["a5f7","\uE77D",7],["a640","\uE6A6",62],["a680","\uE6E5",32],["a6b9","\uE785",7],["a6d9","\uE78D",6],["a6ec","\uE794\uE795"],["a6f3","\uE796"],["a6f6","\uE797",8],["a740","\uE706",62],["a780","\uE745",32],["a7c2","\uE7A0",14],["a7f2","\uE7AF",12],["a896","\uE7BC",10],["a8bc","\uE7C7"],["a8bf","\u01F9"],["a8c1","\uE7C9\uE7CA\uE7CB\uE7CC"],["a8ea","\uE7CD",20],["a958","\uE7E2"],["a95b","\uE7E3"],["a95d","\uE7E4\uE7E5\uE7E6"],["a989","\u303E\u2FF0",11],["a997","\uE7F4",12],["a9f0","\uE801",14],["aaa1","\uE000",93],["aba1","\uE05E",93],["aca1","\uE0BC",93],["ada1","\uE11A",93],["aea1","\uE178",93],["afa1","\uE1D6",93],["d7fa","\uE810",4],["f8a1","\uE234",93],["f9a1","\uE292",93],["faa1","\uE2F0",93],["fba1","\uE34E",93],["fca1","\uE3AC",93],["fda1","\uE40A",93],["fe50","\u2E81\uE816\uE817\uE818\u2E84\u3473\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C\uE843"],["fe80","\u4723\u4729\u477C\u478D\u2ECA\u4947\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1\u4C77\u4CA2\u4D13",6,"\u4DAE\uE864\uE468",93]]});var DC=j((C$e,WG)=>{WG.exports={uChars:[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],gbChars:[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189e3]}});var zC=j((N$e,KG)=>{KG.exports=[["0","\0",127],["8141","\uAC02\uAC03\uAC05\uAC06\uAC0B",4,"\uAC18\uAC1E\uAC1F\uAC21\uAC22\uAC23\uAC25",6,"\uAC2E\uAC32\uAC33\uAC34"],["8161","\uAC35\uAC36\uAC37\uAC3A\uAC3B\uAC3D\uAC3E\uAC3F\uAC41",9,"\uAC4C\uAC4E",5,"\uAC55"],["8181","\uAC56\uAC57\uAC59\uAC5A\uAC5B\uAC5D",18,"\uAC72\uAC73\uAC75\uAC76\uAC79\uAC7B",4,"\uAC82\uAC87\uAC88\uAC8D\uAC8E\uAC8F\uAC91\uAC92\uAC93\uAC95",6,"\uAC9E\uACA2",5,"\uACAB\uACAD\uACAE\uACB1",6,"\uACBA\uACBE\uACBF\uACC0\uACC2\uACC3\uACC5\uACC6\uACC7\uACC9\uACCA\uACCB\uACCD",7,"\uACD6\uACD8",7,"\uACE2\uACE3\uACE5\uACE6\uACE9\uACEB\uACED\uACEE\uACF2\uACF4\uACF7",4,"\uACFE\uACFF\uAD01\uAD02\uAD03\uAD05\uAD07",4,"\uAD0E\uAD10\uAD12\uAD13"],["8241","\uAD14\uAD15\uAD16\uAD17\uAD19\uAD1A\uAD1B\uAD1D\uAD1E\uAD1F\uAD21",7,"\uAD2A\uAD2B\uAD2E",5],["8261","\uAD36\uAD37\uAD39\uAD3A\uAD3B\uAD3D",6,"\uAD46\uAD48\uAD4A",5,"\uAD51\uAD52\uAD53\uAD55\uAD56\uAD57"],["8281","\uAD59",7,"\uAD62\uAD64",7,"\uAD6E\uAD6F\uAD71\uAD72\uAD77\uAD78\uAD79\uAD7A\uAD7E\uAD80\uAD83",4,"\uAD8A\uAD8B\uAD8D\uAD8E\uAD8F\uAD91",10,"\uAD9E",5,"\uADA5",17,"\uADB8",7,"\uADC2\uADC3\uADC5\uADC6\uADC7\uADC9",6,"\uADD2\uADD4",7,"\uADDD\uADDE\uADDF\uADE1\uADE2\uADE3\uADE5",18],["8341","\uADFA\uADFB\uADFD\uADFE\uAE02",5,"\uAE0A\uAE0C\uAE0E",5,"\uAE15",7],["8361","\uAE1D",18,"\uAE32\uAE33\uAE35\uAE36\uAE39\uAE3B\uAE3C"],["8381","\uAE3D\uAE3E\uAE3F\uAE42\uAE44\uAE47\uAE48\uAE49\uAE4B\uAE4F\uAE51\uAE52\uAE53\uAE55\uAE57",4,"\uAE5E\uAE62\uAE63\uAE64\uAE66\uAE67\uAE6A\uAE6B\uAE6D\uAE6E\uAE6F\uAE71",6,"\uAE7A\uAE7E",5,"\uAE86",5,"\uAE8D",46,"\uAEBF\uAEC1\uAEC2\uAEC3\uAEC5",6,"\uAECE\uAED2",5,"\uAEDA\uAEDB\uAEDD",8],["8441","\uAEE6\uAEE7\uAEE9\uAEEA\uAEEC\uAEEE",5,"\uAEF5\uAEF6\uAEF7\uAEF9\uAEFA\uAEFB\uAEFD",8],["8461","\uAF06\uAF09\uAF0A\uAF0B\uAF0C\uAF0E\uAF0F\uAF11",18],["8481","\uAF24",7,"\uAF2E\uAF2F\uAF31\uAF33\uAF35",6,"\uAF3E\uAF40\uAF44\uAF45\uAF46\uAF47\uAF4A",5,"\uAF51",10,"\uAF5E",5,"\uAF66",18,"\uAF7A",5,"\uAF81\uAF82\uAF83\uAF85\uAF86\uAF87\uAF89",6,"\uAF92\uAF93\uAF94\uAF96",5,"\uAF9D",26,"\uAFBA\uAFBB\uAFBD\uAFBE"],["8541","\uAFBF\uAFC1",5,"\uAFCA\uAFCC\uAFCF",4,"\uAFD5",6,"\uAFDD",4],["8561","\uAFE2",5,"\uAFEA",5,"\uAFF2\uAFF3\uAFF5\uAFF6\uAFF7\uAFF9",6,"\uB002\uB003"],["8581","\uB005",6,"\uB00D\uB00E\uB00F\uB011\uB012\uB013\uB015",6,"\uB01E",9,"\uB029",26,"\uB046\uB047\uB049\uB04B\uB04D\uB04F\uB050\uB051\uB052\uB056\uB058\uB05A\uB05B\uB05C\uB05E",29,"\uB07E\uB07F\uB081\uB082\uB083\uB085",6,"\uB08E\uB090\uB092",5,"\uB09B\uB09D\uB09E\uB0A3\uB0A4"],["8641","\uB0A5\uB0A6\uB0A7\uB0AA\uB0B0\uB0B2\uB0B6\uB0B7\uB0B9\uB0BA\uB0BB\uB0BD",6,"\uB0C6\uB0CA",5,"\uB0D2"],["8661","\uB0D3\uB0D5\uB0D6\uB0D7\uB0D9",6,"\uB0E1\uB0E2\uB0E3\uB0E4\uB0E6",10],["8681","\uB0F1",22,"\uB10A\uB10D\uB10E\uB10F\uB111\uB114\uB115\uB116\uB117\uB11A\uB11E",4,"\uB126\uB127\uB129\uB12A\uB12B\uB12D",6,"\uB136\uB13A",5,"\uB142\uB143\uB145\uB146\uB147\uB149",6,"\uB152\uB153\uB156\uB157\uB159\uB15A\uB15B\uB15D\uB15E\uB15F\uB161",22,"\uB17A\uB17B\uB17D\uB17E\uB17F\uB181\uB183",4,"\uB18A\uB18C\uB18E\uB18F\uB190\uB191\uB195\uB196\uB197\uB199\uB19A\uB19B\uB19D"],["8741","\uB19E",9,"\uB1A9",15],["8761","\uB1B9",18,"\uB1CD\uB1CE\uB1CF\uB1D1\uB1D2\uB1D3\uB1D5"],["8781","\uB1D6",5,"\uB1DE\uB1E0",7,"\uB1EA\uB1EB\uB1ED\uB1EE\uB1EF\uB1F1",7,"\uB1FA\uB1FC\uB1FE",5,"\uB206\uB207\uB209\uB20A\uB20D",6,"\uB216\uB218\uB21A",5,"\uB221",18,"\uB235",6,"\uB23D",26,"\uB259\uB25A\uB25B\uB25D\uB25E\uB25F\uB261",6,"\uB26A",4],["8841","\uB26F",4,"\uB276",5,"\uB27D",6,"\uB286\uB287\uB288\uB28A",4],["8861","\uB28F\uB292\uB293\uB295\uB296\uB297\uB29B",4,"\uB2A2\uB2A4\uB2A7\uB2A8\uB2A9\uB2AB\uB2AD\uB2AE\uB2AF\uB2B1\uB2B2\uB2B3\uB2B5\uB2B6\uB2B7"],["8881","\uB2B8",15,"\uB2CA\uB2CB\uB2CD\uB2CE\uB2CF\uB2D1\uB2D3",4,"\uB2DA\uB2DC\uB2DE\uB2DF\uB2E0\uB2E1\uB2E3\uB2E7\uB2E9\uB2EA\uB2F0\uB2F1\uB2F2\uB2F6\uB2FC\uB2FD\uB2FE\uB302\uB303\uB305\uB306\uB307\uB309",6,"\uB312\uB316",5,"\uB31D",54,"\uB357\uB359\uB35A\uB35D\uB360\uB361\uB362\uB363"],["8941","\uB366\uB368\uB36A\uB36C\uB36D\uB36F\uB372\uB373\uB375\uB376\uB377\uB379",6,"\uB382\uB386",5,"\uB38D"],["8961","\uB38E\uB38F\uB391\uB392\uB393\uB395",10,"\uB3A2",5,"\uB3A9\uB3AA\uB3AB\uB3AD"],["8981","\uB3AE",21,"\uB3C6\uB3C7\uB3C9\uB3CA\uB3CD\uB3CF\uB3D1\uB3D2\uB3D3\uB3D6\uB3D8\uB3DA\uB3DC\uB3DE\uB3DF\uB3E1\uB3E2\uB3E3\uB3E5\uB3E6\uB3E7\uB3E9",18,"\uB3FD",18,"\uB411",6,"\uB419\uB41A\uB41B\uB41D\uB41E\uB41F\uB421",6,"\uB42A\uB42C",7,"\uB435",15],["8a41","\uB445",10,"\uB452\uB453\uB455\uB456\uB457\uB459",6,"\uB462\uB464\uB466"],["8a61","\uB467",4,"\uB46D",18,"\uB481\uB482"],["8a81","\uB483",4,"\uB489",19,"\uB49E",5,"\uB4A5\uB4A6\uB4A7\uB4A9\uB4AA\uB4AB\uB4AD",7,"\uB4B6\uB4B8\uB4BA",5,"\uB4C1\uB4C2\uB4C3\uB4C5\uB4C6\uB4C7\uB4C9",6,"\uB4D1\uB4D2\uB4D3\uB4D4\uB4D6",5,"\uB4DE\uB4DF\uB4E1\uB4E2\uB4E5\uB4E7",4,"\uB4EE\uB4F0\uB4F2",5,"\uB4F9",26,"\uB516\uB517\uB519\uB51A\uB51D"],["8b41","\uB51E",5,"\uB526\uB52B",4,"\uB532\uB533\uB535\uB536\uB537\uB539",6,"\uB542\uB546"],["8b61","\uB547\uB548\uB549\uB54A\uB54E\uB54F\uB551\uB552\uB553\uB555",6,"\uB55E\uB562",8],["8b81","\uB56B",52,"\uB5A2\uB5A3\uB5A5\uB5A6\uB5A7\uB5A9\uB5AC\uB5AD\uB5AE\uB5AF\uB5B2\uB5B6",4,"\uB5BE\uB5BF\uB5C1\uB5C2\uB5C3\uB5C5",6,"\uB5CE\uB5D2",5,"\uB5D9",18,"\uB5ED",18],["8c41","\uB600",15,"\uB612\uB613\uB615\uB616\uB617\uB619",4],["8c61","\uB61E",6,"\uB626",5,"\uB62D",6,"\uB635",5],["8c81","\uB63B",12,"\uB649",26,"\uB665\uB666\uB667\uB669",50,"\uB69E\uB69F\uB6A1\uB6A2\uB6A3\uB6A5",5,"\uB6AD\uB6AE\uB6AF\uB6B0\uB6B2",16],["8d41","\uB6C3",16,"\uB6D5",8],["8d61","\uB6DE",17,"\uB6F1\uB6F2\uB6F3\uB6F5\uB6F6\uB6F7\uB6F9\uB6FA"],["8d81","\uB6FB",4,"\uB702\uB703\uB704\uB706",33,"\uB72A\uB72B\uB72D\uB72E\uB731",6,"\uB73A\uB73C",7,"\uB745\uB746\uB747\uB749\uB74A\uB74B\uB74D",6,"\uB756",9,"\uB761\uB762\uB763\uB765\uB766\uB767\uB769",6,"\uB772\uB774\uB776",5,"\uB77E\uB77F\uB781\uB782\uB783\uB785",6,"\uB78E\uB793\uB794\uB795\uB79A\uB79B\uB79D\uB79E"],["8e41","\uB79F\uB7A1",6,"\uB7AA\uB7AE",5,"\uB7B6\uB7B7\uB7B9",8],["8e61","\uB7C2",4,"\uB7C8\uB7CA",19],["8e81","\uB7DE",13,"\uB7EE\uB7EF\uB7F1\uB7F2\uB7F3\uB7F5",6,"\uB7FE\uB802",4,"\uB80A\uB80B\uB80D\uB80E\uB80F\uB811",6,"\uB81A\uB81C\uB81E",5,"\uB826\uB827\uB829\uB82A\uB82B\uB82D",6,"\uB836\uB83A",5,"\uB841\uB842\uB843\uB845",11,"\uB852\uB854",7,"\uB85E\uB85F\uB861\uB862\uB863\uB865",6,"\uB86E\uB870\uB872",5,"\uB879\uB87A\uB87B\uB87D",7],["8f41","\uB885",7,"\uB88E",17],["8f61","\uB8A0",7,"\uB8A9",6,"\uB8B1\uB8B2\uB8B3\uB8B5\uB8B6\uB8B7\uB8B9",4],["8f81","\uB8BE\uB8BF\uB8C2\uB8C4\uB8C6",5,"\uB8CD\uB8CE\uB8CF\uB8D1\uB8D2\uB8D3\uB8D5",7,"\uB8DE\uB8E0\uB8E2",5,"\uB8EA\uB8EB\uB8ED\uB8EE\uB8EF\uB8F1",6,"\uB8FA\uB8FC\uB8FE",5,"\uB905",18,"\uB919",6,"\uB921",26,"\uB93E\uB93F\uB941\uB942\uB943\uB945",6,"\uB94D\uB94E\uB950\uB952",5],["9041","\uB95A\uB95B\uB95D\uB95E\uB95F\uB961",6,"\uB96A\uB96C\uB96E",5,"\uB976\uB977\uB979\uB97A\uB97B\uB97D"],["9061","\uB97E",5,"\uB986\uB988\uB98B\uB98C\uB98F",15],["9081","\uB99F",12,"\uB9AE\uB9AF\uB9B1\uB9B2\uB9B3\uB9B5",6,"\uB9BE\uB9C0\uB9C2",5,"\uB9CA\uB9CB\uB9CD\uB9D3",4,"\uB9DA\uB9DC\uB9DF\uB9E0\uB9E2\uB9E6\uB9E7\uB9E9\uB9EA\uB9EB\uB9ED",6,"\uB9F6\uB9FB",4,"\uBA02",5,"\uBA09",11,"\uBA16",33,"\uBA3A\uBA3B\uBA3D\uBA3E\uBA3F\uBA41\uBA43\uBA44\uBA45\uBA46"],["9141","\uBA47\uBA4A\uBA4C\uBA4F\uBA50\uBA51\uBA52\uBA56\uBA57\uBA59\uBA5A\uBA5B\uBA5D",6,"\uBA66\uBA6A",5],["9161","\uBA72\uBA73\uBA75\uBA76\uBA77\uBA79",9,"\uBA86\uBA88\uBA89\uBA8A\uBA8B\uBA8D",5],["9181","\uBA93",20,"\uBAAA\uBAAD\uBAAE\uBAAF\uBAB1\uBAB3",4,"\uBABA\uBABC\uBABE",5,"\uBAC5\uBAC6\uBAC7\uBAC9",14,"\uBADA",33,"\uBAFD\uBAFE\uBAFF\uBB01\uBB02\uBB03\uBB05",7,"\uBB0E\uBB10\uBB12",5,"\uBB19\uBB1A\uBB1B\uBB1D\uBB1E\uBB1F\uBB21",6],["9241","\uBB28\uBB2A\uBB2C",7,"\uBB37\uBB39\uBB3A\uBB3F",4,"\uBB46\uBB48\uBB4A\uBB4B\uBB4C\uBB4E\uBB51\uBB52"],["9261","\uBB53\uBB55\uBB56\uBB57\uBB59",7,"\uBB62\uBB64",7,"\uBB6D",4],["9281","\uBB72",21,"\uBB89\uBB8A\uBB8B\uBB8D\uBB8E\uBB8F\uBB91",18,"\uBBA5\uBBA6\uBBA7\uBBA9\uBBAA\uBBAB\uBBAD",6,"\uBBB5\uBBB6\uBBB8",7,"\uBBC1\uBBC2\uBBC3\uBBC5\uBBC6\uBBC7\uBBC9",6,"\uBBD1\uBBD2\uBBD4",35,"\uBBFA\uBBFB\uBBFD\uBBFE\uBC01"],["9341","\uBC03",4,"\uBC0A\uBC0E\uBC10\uBC12\uBC13\uBC19\uBC1A\uBC20\uBC21\uBC22\uBC23\uBC26\uBC28\uBC2A\uBC2B\uBC2C\uBC2E\uBC2F\uBC32\uBC33\uBC35"],["9361","\uBC36\uBC37\uBC39",6,"\uBC42\uBC46\uBC47\uBC48\uBC4A\uBC4B\uBC4E\uBC4F\uBC51",8],["9381","\uBC5A\uBC5B\uBC5C\uBC5E",37,"\uBC86\uBC87\uBC89\uBC8A\uBC8D\uBC8F",4,"\uBC96\uBC98\uBC9B",4,"\uBCA2\uBCA3\uBCA5\uBCA6\uBCA9",6,"\uBCB2\uBCB6",5,"\uBCBE\uBCBF\uBCC1\uBCC2\uBCC3\uBCC5",7,"\uBCCE\uBCD2\uBCD3\uBCD4\uBCD6\uBCD7\uBCD9\uBCDA\uBCDB\uBCDD",22,"\uBCF7\uBCF9\uBCFA\uBCFB\uBCFD"],["9441","\uBCFE",5,"\uBD06\uBD08\uBD0A",5,"\uBD11\uBD12\uBD13\uBD15",8],["9461","\uBD1E",5,"\uBD25",6,"\uBD2D",12],["9481","\uBD3A",5,"\uBD41",6,"\uBD4A\uBD4B\uBD4D\uBD4E\uBD4F\uBD51",6,"\uBD5A",9,"\uBD65\uBD66\uBD67\uBD69",22,"\uBD82\uBD83\uBD85\uBD86\uBD8B",4,"\uBD92\uBD94\uBD96\uBD97\uBD98\uBD9B\uBD9D",6,"\uBDA5",10,"\uBDB1",6,"\uBDB9",24],["9541","\uBDD2\uBDD3\uBDD6\uBDD7\uBDD9\uBDDA\uBDDB\uBDDD",11,"\uBDEA",5,"\uBDF1"],["9561","\uBDF2\uBDF3\uBDF5\uBDF6\uBDF7\uBDF9",6,"\uBE01\uBE02\uBE04\uBE06",5,"\uBE0E\uBE0F\uBE11\uBE12\uBE13"],["9581","\uBE15",6,"\uBE1E\uBE20",35,"\uBE46\uBE47\uBE49\uBE4A\uBE4B\uBE4D\uBE4F",4,"\uBE56\uBE58\uBE5C\uBE5D\uBE5E\uBE5F\uBE62\uBE63\uBE65\uBE66\uBE67\uBE69\uBE6B",4,"\uBE72\uBE76",4,"\uBE7E\uBE7F\uBE81\uBE82\uBE83\uBE85",6,"\uBE8E\uBE92",5,"\uBE9A",13,"\uBEA9",14],["9641","\uBEB8",23,"\uBED2\uBED3"],["9661","\uBED5\uBED6\uBED9",6,"\uBEE1\uBEE2\uBEE6",5,"\uBEED",8],["9681","\uBEF6",10,"\uBF02",5,"\uBF0A",13,"\uBF1A\uBF1E",33,"\uBF42\uBF43\uBF45\uBF46\uBF47\uBF49",6,"\uBF52\uBF53\uBF54\uBF56",44],["9741","\uBF83",16,"\uBF95",8],["9761","\uBF9E",17,"\uBFB1",7],["9781","\uBFB9",11,"\uBFC6",5,"\uBFCE\uBFCF\uBFD1\uBFD2\uBFD3\uBFD5",6,"\uBFDD\uBFDE\uBFE0\uBFE2",89,"\uC03D\uC03E\uC03F"],["9841","\uC040",16,"\uC052",5,"\uC059\uC05A\uC05B"],["9861","\uC05D\uC05E\uC05F\uC061",6,"\uC06A",15],["9881","\uC07A",21,"\uC092\uC093\uC095\uC096\uC097\uC099",6,"\uC0A2\uC0A4\uC0A6",5,"\uC0AE\uC0B1\uC0B2\uC0B7",4,"\uC0BE\uC0C2\uC0C3\uC0C4\uC0C6\uC0C7\uC0CA\uC0CB\uC0CD\uC0CE\uC0CF\uC0D1",6,"\uC0DA\uC0DE",5,"\uC0E6\uC0E7\uC0E9\uC0EA\uC0EB\uC0ED",6,"\uC0F6\uC0F8\uC0FA",5,"\uC101\uC102\uC103\uC105\uC106\uC107\uC109",6,"\uC111\uC112\uC113\uC114\uC116",5,"\uC121\uC122\uC125\uC128\uC129\uC12A\uC12B\uC12E"],["9941","\uC132\uC133\uC134\uC135\uC137\uC13A\uC13B\uC13D\uC13E\uC13F\uC141",6,"\uC14A\uC14E",5,"\uC156\uC157"],["9961","\uC159\uC15A\uC15B\uC15D",6,"\uC166\uC16A",5,"\uC171\uC172\uC173\uC175\uC176\uC177\uC179\uC17A\uC17B"],["9981","\uC17C",8,"\uC186",5,"\uC18F\uC191\uC192\uC193\uC195\uC197",4,"\uC19E\uC1A0\uC1A2\uC1A3\uC1A4\uC1A6\uC1A7\uC1AA\uC1AB\uC1AD\uC1AE\uC1AF\uC1B1",11,"\uC1BE",5,"\uC1C5\uC1C6\uC1C7\uC1C9\uC1CA\uC1CB\uC1CD",6,"\uC1D5\uC1D6\uC1D9",6,"\uC1E1\uC1E2\uC1E3\uC1E5\uC1E6\uC1E7\uC1E9",6,"\uC1F2\uC1F4",7,"\uC1FE\uC1FF\uC201\uC202\uC203\uC205",6,"\uC20E\uC210\uC212",5,"\uC21A\uC21B\uC21D\uC21E\uC221\uC222\uC223"],["9a41","\uC224\uC225\uC226\uC227\uC22A\uC22C\uC22E\uC230\uC233\uC235",16],["9a61","\uC246\uC247\uC249",6,"\uC252\uC253\uC255\uC256\uC257\uC259",6,"\uC261\uC262\uC263\uC264\uC266"],["9a81","\uC267",4,"\uC26E\uC26F\uC271\uC272\uC273\uC275",6,"\uC27E\uC280\uC282",5,"\uC28A",5,"\uC291",6,"\uC299\uC29A\uC29C\uC29E",5,"\uC2A6\uC2A7\uC2A9\uC2AA\uC2AB\uC2AE",5,"\uC2B6\uC2B8\uC2BA",33,"\uC2DE\uC2DF\uC2E1\uC2E2\uC2E5",5,"\uC2EE\uC2F0\uC2F2\uC2F3\uC2F4\uC2F5\uC2F7\uC2FA\uC2FD\uC2FE\uC2FF\uC301",6,"\uC30A\uC30B\uC30E\uC30F"],["9b41","\uC310\uC311\uC312\uC316\uC317\uC319\uC31A\uC31B\uC31D",6,"\uC326\uC327\uC32A",8],["9b61","\uC333",17,"\uC346",7],["9b81","\uC34E",25,"\uC36A\uC36B\uC36D\uC36E\uC36F\uC371\uC373",4,"\uC37A\uC37B\uC37E",5,"\uC385\uC386\uC387\uC389\uC38A\uC38B\uC38D",50,"\uC3C1",22,"\uC3DA"],["9c41","\uC3DB\uC3DD\uC3DE\uC3E1\uC3E3",4,"\uC3EA\uC3EB\uC3EC\uC3EE",5,"\uC3F6\uC3F7\uC3F9",5],["9c61","\uC3FF",8,"\uC409",6,"\uC411",9],["9c81","\uC41B",8,"\uC425",6,"\uC42D\uC42E\uC42F\uC431\uC432\uC433\uC435",6,"\uC43E",9,"\uC449",26,"\uC466\uC467\uC469\uC46A\uC46B\uC46D",6,"\uC476\uC477\uC478\uC47A",5,"\uC481",18,"\uC495",6,"\uC49D",12],["9d41","\uC4AA",13,"\uC4B9\uC4BA\uC4BB\uC4BD",8],["9d61","\uC4C6",25],["9d81","\uC4E0",8,"\uC4EA",5,"\uC4F2\uC4F3\uC4F5\uC4F6\uC4F7\uC4F9\uC4FB\uC4FC\uC4FD\uC4FE\uC502",9,"\uC50D\uC50E\uC50F\uC511\uC512\uC513\uC515",6,"\uC51D",10,"\uC52A\uC52B\uC52D\uC52E\uC52F\uC531",6,"\uC53A\uC53C\uC53E",5,"\uC546\uC547\uC54B\uC54F\uC550\uC551\uC552\uC556\uC55A\uC55B\uC55C\uC55F\uC562\uC563\uC565\uC566\uC567\uC569",6,"\uC572\uC576",5,"\uC57E\uC57F\uC581\uC582\uC583\uC585\uC586\uC588\uC589\uC58A\uC58B\uC58E\uC590\uC592\uC593\uC594"],["9e41","\uC596\uC599\uC59A\uC59B\uC59D\uC59E\uC59F\uC5A1",7,"\uC5AA",9,"\uC5B6"],["9e61","\uC5B7\uC5BA\uC5BF",4,"\uC5CB\uC5CD\uC5CF\uC5D2\uC5D3\uC5D5\uC5D6\uC5D7\uC5D9",6,"\uC5E2\uC5E4\uC5E6\uC5E7"],["9e81","\uC5E8\uC5E9\uC5EA\uC5EB\uC5EF\uC5F1\uC5F2\uC5F3\uC5F5\uC5F8\uC5F9\uC5FA\uC5FB\uC602\uC603\uC604\uC609\uC60A\uC60B\uC60D\uC60E\uC60F\uC611",6,"\uC61A\uC61D",6,"\uC626\uC627\uC629\uC62A\uC62B\uC62F\uC631\uC632\uC636\uC638\uC63A\uC63C\uC63D\uC63E\uC63F\uC642\uC643\uC645\uC646\uC647\uC649",6,"\uC652\uC656",5,"\uC65E\uC65F\uC661",10,"\uC66D\uC66E\uC670\uC672",5,"\uC67A\uC67B\uC67D\uC67E\uC67F\uC681",6,"\uC68A\uC68C\uC68E",5,"\uC696\uC697\uC699\uC69A\uC69B\uC69D",6,"\uC6A6"],["9f41","\uC6A8\uC6AA",5,"\uC6B2\uC6B3\uC6B5\uC6B6\uC6B7\uC6BB",4,"\uC6C2\uC6C4\uC6C6",5,"\uC6CE"],["9f61","\uC6CF\uC6D1\uC6D2\uC6D3\uC6D5",6,"\uC6DE\uC6DF\uC6E2",5,"\uC6EA\uC6EB\uC6ED\uC6EE\uC6EF\uC6F1\uC6F2"],["9f81","\uC6F3",4,"\uC6FA\uC6FB\uC6FC\uC6FE",5,"\uC706\uC707\uC709\uC70A\uC70B\uC70D",6,"\uC716\uC718\uC71A",5,"\uC722\uC723\uC725\uC726\uC727\uC729",6,"\uC732\uC734\uC736\uC738\uC739\uC73A\uC73B\uC73E\uC73F\uC741\uC742\uC743\uC745",4,"\uC74B\uC74E\uC750\uC759\uC75A\uC75B\uC75D\uC75E\uC75F\uC761",6,"\uC769\uC76A\uC76C",7,"\uC776\uC777\uC779\uC77A\uC77B\uC77F\uC780\uC781\uC782\uC786\uC78B\uC78C\uC78D\uC78F\uC792\uC793\uC795\uC799\uC79B",4,"\uC7A2\uC7A7",4,"\uC7AE\uC7AF\uC7B1\uC7B2\uC7B3\uC7B5\uC7B6\uC7B7"],["a041","\uC7B8\uC7B9\uC7BA\uC7BB\uC7BE\uC7C2",5,"\uC7CA\uC7CB\uC7CD\uC7CF\uC7D1",6,"\uC7D9\uC7DA\uC7DB\uC7DC"],["a061","\uC7DE",5,"\uC7E5\uC7E6\uC7E7\uC7E9\uC7EA\uC7EB\uC7ED",13],["a081","\uC7FB",4,"\uC802\uC803\uC805\uC806\uC807\uC809\uC80B",4,"\uC812\uC814\uC817",4,"\uC81E\uC81F\uC821\uC822\uC823\uC825",6,"\uC82E\uC830\uC832",5,"\uC839\uC83A\uC83B\uC83D\uC83E\uC83F\uC841",6,"\uC84A\uC84B\uC84E",5,"\uC855",26,"\uC872\uC873\uC875\uC876\uC877\uC879\uC87B",4,"\uC882\uC884\uC888\uC889\uC88A\uC88E",5,"\uC895",7,"\uC89E\uC8A0\uC8A2\uC8A3\uC8A4"],["a141","\uC8A5\uC8A6\uC8A7\uC8A9",18,"\uC8BE\uC8BF\uC8C0\uC8C1"],["a161","\uC8C2\uC8C3\uC8C5\uC8C6\uC8C7\uC8C9\uC8CA\uC8CB\uC8CD",6,"\uC8D6\uC8D8\uC8DA",5,"\uC8E2\uC8E3\uC8E5"],["a181","\uC8E6",14,"\uC8F6",5,"\uC8FE\uC8FF\uC901\uC902\uC903\uC907",4,"\uC90E\u3000\u3001\u3002\xB7\u2025\u2026\xA8\u3003\xAD\u2015\u2225\uFF3C\u223C\u2018\u2019\u201C\u201D\u3014\u3015\u3008",9,"\xB1\xD7\xF7\u2260\u2264\u2265\u221E\u2234\xB0\u2032\u2033\u2103\u212B\uFFE0\uFFE1\uFFE5\u2642\u2640\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\xA7\u203B\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u2192\u2190\u2191\u2193\u2194\u3013\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229\u2227\u2228\uFFE2"],["a241","\uC910\uC912",5,"\uC919",18],["a261","\uC92D",6,"\uC935",18],["a281","\uC948",7,"\uC952\uC953\uC955\uC956\uC957\uC959",6,"\uC962\uC964",7,"\uC96D\uC96E\uC96F\u21D2\u21D4\u2200\u2203\xB4\uFF5E\u02C7\u02D8\u02DD\u02DA\u02D9\xB8\u02DB\xA1\xBF\u02D0\u222E\u2211\u220F\xA4\u2109\u2030\u25C1\u25C0\u25B7\u25B6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25C8\u25A3\u25D0\u25D1\u2592\u25A4\u25A5\u25A8\u25A7\u25A6\u25A9\u2668\u260F\u260E\u261C\u261E\xB6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266D\u2669\u266A\u266C\u327F\u321C\u2116\u33C7\u2122\u33C2\u33D8\u2121\u20AC\xAE"],["a341","\uC971\uC972\uC973\uC975",6,"\uC97D",10,"\uC98A\uC98B\uC98D\uC98E\uC98F"],["a361","\uC991",6,"\uC99A\uC99C\uC99E",16],["a381","\uC9AF",16,"\uC9C2\uC9C3\uC9C5\uC9C6\uC9C9\uC9CB",4,"\uC9D2\uC9D4\uC9D7\uC9D8\uC9DB\uFF01",58,"\uFFE6\uFF3D",32,"\uFFE3"],["a441","\uC9DE\uC9DF\uC9E1\uC9E3\uC9E5\uC9E6\uC9E8\uC9E9\uC9EA\uC9EB\uC9EE\uC9F2",5,"\uC9FA\uC9FB\uC9FD\uC9FE\uC9FF\uCA01\uCA02\uCA03\uCA04"],["a461","\uCA05\uCA06\uCA07\uCA0A\uCA0E",5,"\uCA15\uCA16\uCA17\uCA19",12],["a481","\uCA26\uCA27\uCA28\uCA2A",28,"\u3131",93],["a541","\uCA47",4,"\uCA4E\uCA4F\uCA51\uCA52\uCA53\uCA55",6,"\uCA5E\uCA62",5,"\uCA69\uCA6A"],["a561","\uCA6B",17,"\uCA7E",5,"\uCA85\uCA86"],["a581","\uCA87",16,"\uCA99",14,"\u2170",9],["a5b0","\u2160",9],["a5c1","\u0391",16,"\u03A3",6],["a5e1","\u03B1",16,"\u03C3",6],["a641","\uCAA8",19,"\uCABE\uCABF\uCAC1\uCAC2\uCAC3\uCAC5"],["a661","\uCAC6",5,"\uCACE\uCAD0\uCAD2\uCAD4\uCAD5\uCAD6\uCAD7\uCADA",5,"\uCAE1",6],["a681","\uCAE8\uCAE9\uCAEA\uCAEB\uCAED",6,"\uCAF5",18,"\uCB09\uCB0A\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542\u2512\u2511\u251A\u2519\u2516\u2515\u250E\u250D\u251E\u251F\u2521\u2522\u2526\u2527\u2529\u252A\u252D\u252E\u2531\u2532\u2535\u2536\u2539\u253A\u253D\u253E\u2540\u2541\u2543",7],["a741","\uCB0B",4,"\uCB11\uCB12\uCB13\uCB15\uCB16\uCB17\uCB19",6,"\uCB22",7],["a761","\uCB2A",22,"\uCB42\uCB43\uCB44"],["a781","\uCB45\uCB46\uCB47\uCB4A\uCB4B\uCB4D\uCB4E\uCB4F\uCB51",6,"\uCB5A\uCB5B\uCB5C\uCB5E",5,"\uCB65",7,"\u3395\u3396\u3397\u2113\u3398\u33C4\u33A3\u33A4\u33A5\u33A6\u3399",9,"\u33CA\u338D\u338E\u338F\u33CF\u3388\u3389\u33C8\u33A7\u33A8\u33B0",9,"\u3380",4,"\u33BA",5,"\u3390",4,"\u2126\u33C0\u33C1\u338A\u338B\u338C\u33D6\u33C5\u33AD\u33AE\u33AF\u33DB\u33A9\u33AA\u33AB\u33AC\u33DD\u33D0\u33D3\u33C3\u33C9\u33DC\u33C6"],["a841","\uCB6D",10,"\uCB7A",14],["a861","\uCB89",18,"\uCB9D",6],["a881","\uCBA4",19,"\uCBB9",11,"\xC6\xD0\xAA\u0126"],["a8a6","\u0132"],["a8a8","\u013F\u0141\xD8\u0152\xBA\xDE\u0166\u014A"],["a8b1","\u3260",27,"\u24D0",25,"\u2460",14,"\xBD\u2153\u2154\xBC\xBE\u215B\u215C\u215D\u215E"],["a941","\uCBC5",14,"\uCBD5",10],["a961","\uCBE0\uCBE1\uCBE2\uCBE3\uCBE5\uCBE6\uCBE8\uCBEA",18],["a981","\uCBFD",14,"\uCC0E\uCC0F\uCC11\uCC12\uCC13\uCC15",6,"\uCC1E\uCC1F\uCC20\uCC23\uCC24\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0140\u0142\xF8\u0153\xDF\xFE\u0167\u014B\u0149\u3200",27,"\u249C",25,"\u2474",14,"\xB9\xB2\xB3\u2074\u207F\u2081\u2082\u2083\u2084"],["aa41","\uCC25\uCC26\uCC2A\uCC2B\uCC2D\uCC2F\uCC31",6,"\uCC3A\uCC3F",4,"\uCC46\uCC47\uCC49\uCC4A\uCC4B\uCC4D\uCC4E"],["aa61","\uCC4F",4,"\uCC56\uCC5A",5,"\uCC61\uCC62\uCC63\uCC65\uCC67\uCC69",6,"\uCC71\uCC72"],["aa81","\uCC73\uCC74\uCC76",29,"\u3041",82],["ab41","\uCC94\uCC95\uCC96\uCC97\uCC9A\uCC9B\uCC9D\uCC9E\uCC9F\uCCA1",6,"\uCCAA\uCCAE",5,"\uCCB6\uCCB7\uCCB9"],["ab61","\uCCBA\uCCBB\uCCBD",6,"\uCCC6\uCCC8\uCCCA",5,"\uCCD1\uCCD2\uCCD3\uCCD5",5],["ab81","\uCCDB",8,"\uCCE5",6,"\uCCED\uCCEE\uCCEF\uCCF1",12,"\u30A1",85],["ac41","\uCCFE\uCCFF\uCD00\uCD02",5,"\uCD0A\uCD0B\uCD0D\uCD0E\uCD0F\uCD11",6,"\uCD1A\uCD1C\uCD1E\uCD1F\uCD20"],["ac61","\uCD21\uCD22\uCD23\uCD25\uCD26\uCD27\uCD29\uCD2A\uCD2B\uCD2D",11,"\uCD3A",4],["ac81","\uCD3F",28,"\uCD5D\uCD5E\uCD5F\u0410",5,"\u0401\u0416",25],["acd1","\u0430",5,"\u0451\u0436",25],["ad41","\uCD61\uCD62\uCD63\uCD65",6,"\uCD6E\uCD70\uCD72",5,"\uCD79",7],["ad61","\uCD81",6,"\uCD89",10,"\uCD96\uCD97\uCD99\uCD9A\uCD9B\uCD9D\uCD9E\uCD9F"],["ad81","\uCDA0\uCDA1\uCDA2\uCDA3\uCDA6\uCDA8\uCDAA",5,"\uCDB1",18,"\uCDC5"],["ae41","\uCDC6",5,"\uCDCD\uCDCE\uCDCF\uCDD1",16],["ae61","\uCDE2",5,"\uCDE9\uCDEA\uCDEB\uCDED\uCDEE\uCDEF\uCDF1",6,"\uCDFA\uCDFC\uCDFE",4],["ae81","\uCE03\uCE05\uCE06\uCE07\uCE09\uCE0A\uCE0B\uCE0D",6,"\uCE15\uCE16\uCE17\uCE18\uCE1A",5,"\uCE22\uCE23\uCE25\uCE26\uCE27\uCE29\uCE2A\uCE2B"],["af41","\uCE2C\uCE2D\uCE2E\uCE2F\uCE32\uCE34\uCE36",19],["af61","\uCE4A",13,"\uCE5A\uCE5B\uCE5D\uCE5E\uCE62",5,"\uCE6A\uCE6C"],["af81","\uCE6E",5,"\uCE76\uCE77\uCE79\uCE7A\uCE7B\uCE7D",6,"\uCE86\uCE88\uCE8A",5,"\uCE92\uCE93\uCE95\uCE96\uCE97\uCE99"],["b041","\uCE9A",5,"\uCEA2\uCEA6",5,"\uCEAE",12],["b061","\uCEBB",5,"\uCEC2",19],["b081","\uCED6",13,"\uCEE6\uCEE7\uCEE9\uCEEA\uCEED",6,"\uCEF6\uCEFA",5,"\uAC00\uAC01\uAC04\uAC07\uAC08\uAC09\uAC0A\uAC10",7,"\uAC19",4,"\uAC20\uAC24\uAC2C\uAC2D\uAC2F\uAC30\uAC31\uAC38\uAC39\uAC3C\uAC40\uAC4B\uAC4D\uAC54\uAC58\uAC5C\uAC70\uAC71\uAC74\uAC77\uAC78\uAC7A\uAC80\uAC81\uAC83\uAC84\uAC85\uAC86\uAC89\uAC8A\uAC8B\uAC8C\uAC90\uAC94\uAC9C\uAC9D\uAC9F\uACA0\uACA1\uACA8\uACA9\uACAA\uACAC\uACAF\uACB0\uACB8\uACB9\uACBB\uACBC\uACBD\uACC1\uACC4\uACC8\uACCC\uACD5\uACD7\uACE0\uACE1\uACE4\uACE7\uACE8\uACEA\uACEC\uACEF\uACF0\uACF1\uACF3\uACF5\uACF6\uACFC\uACFD\uAD00\uAD04\uAD06"],["b141","\uCF02\uCF03\uCF05\uCF06\uCF07\uCF09",6,"\uCF12\uCF14\uCF16",5,"\uCF1D\uCF1E\uCF1F\uCF21\uCF22\uCF23"],["b161","\uCF25",6,"\uCF2E\uCF32",5,"\uCF39",11],["b181","\uCF45",14,"\uCF56\uCF57\uCF59\uCF5A\uCF5B\uCF5D",6,"\uCF66\uCF68\uCF6A\uCF6B\uCF6C\uAD0C\uAD0D\uAD0F\uAD11\uAD18\uAD1C\uAD20\uAD29\uAD2C\uAD2D\uAD34\uAD35\uAD38\uAD3C\uAD44\uAD45\uAD47\uAD49\uAD50\uAD54\uAD58\uAD61\uAD63\uAD6C\uAD6D\uAD70\uAD73\uAD74\uAD75\uAD76\uAD7B\uAD7C\uAD7D\uAD7F\uAD81\uAD82\uAD88\uAD89\uAD8C\uAD90\uAD9C\uAD9D\uADA4\uADB7\uADC0\uADC1\uADC4\uADC8\uADD0\uADD1\uADD3\uADDC\uADE0\uADE4\uADF8\uADF9\uADFC\uADFF\uAE00\uAE01\uAE08\uAE09\uAE0B\uAE0D\uAE14\uAE30\uAE31\uAE34\uAE37\uAE38\uAE3A\uAE40\uAE41\uAE43\uAE45\uAE46\uAE4A\uAE4C\uAE4D\uAE4E\uAE50\uAE54\uAE56\uAE5C\uAE5D\uAE5F\uAE60\uAE61\uAE65\uAE68\uAE69\uAE6C\uAE70\uAE78"],["b241","\uCF6D\uCF6E\uCF6F\uCF72\uCF73\uCF75\uCF76\uCF77\uCF79",6,"\uCF81\uCF82\uCF83\uCF84\uCF86",5,"\uCF8D"],["b261","\uCF8E",18,"\uCFA2",5,"\uCFA9"],["b281","\uCFAA",5,"\uCFB1",18,"\uCFC5",6,"\uAE79\uAE7B\uAE7C\uAE7D\uAE84\uAE85\uAE8C\uAEBC\uAEBD\uAEBE\uAEC0\uAEC4\uAECC\uAECD\uAECF\uAED0\uAED1\uAED8\uAED9\uAEDC\uAEE8\uAEEB\uAEED\uAEF4\uAEF8\uAEFC\uAF07\uAF08\uAF0D\uAF10\uAF2C\uAF2D\uAF30\uAF32\uAF34\uAF3C\uAF3D\uAF3F\uAF41\uAF42\uAF43\uAF48\uAF49\uAF50\uAF5C\uAF5D\uAF64\uAF65\uAF79\uAF80\uAF84\uAF88\uAF90\uAF91\uAF95\uAF9C\uAFB8\uAFB9\uAFBC\uAFC0\uAFC7\uAFC8\uAFC9\uAFCB\uAFCD\uAFCE\uAFD4\uAFDC\uAFE8\uAFE9\uAFF0\uAFF1\uAFF4\uAFF8\uB000\uB001\uB004\uB00C\uB010\uB014\uB01C\uB01D\uB028\uB044\uB045\uB048\uB04A\uB04C\uB04E\uB053\uB054\uB055\uB057\uB059"],["b341","\uCFCC",19,"\uCFE2\uCFE3\uCFE5\uCFE6\uCFE7\uCFE9"],["b361","\uCFEA",5,"\uCFF2\uCFF4\uCFF6",5,"\uCFFD\uCFFE\uCFFF\uD001\uD002\uD003\uD005",5],["b381","\uD00B",5,"\uD012",5,"\uD019",19,"\uB05D\uB07C\uB07D\uB080\uB084\uB08C\uB08D\uB08F\uB091\uB098\uB099\uB09A\uB09C\uB09F\uB0A0\uB0A1\uB0A2\uB0A8\uB0A9\uB0AB",4,"\uB0B1\uB0B3\uB0B4\uB0B5\uB0B8\uB0BC\uB0C4\uB0C5\uB0C7\uB0C8\uB0C9\uB0D0\uB0D1\uB0D4\uB0D8\uB0E0\uB0E5\uB108\uB109\uB10B\uB10C\uB110\uB112\uB113\uB118\uB119\uB11B\uB11C\uB11D\uB123\uB124\uB125\uB128\uB12C\uB134\uB135\uB137\uB138\uB139\uB140\uB141\uB144\uB148\uB150\uB151\uB154\uB155\uB158\uB15C\uB160\uB178\uB179\uB17C\uB180\uB182\uB188\uB189\uB18B\uB18D\uB192\uB193\uB194\uB198\uB19C\uB1A8\uB1CC\uB1D0\uB1D4\uB1DC\uB1DD"],["b441","\uD02E",5,"\uD036\uD037\uD039\uD03A\uD03B\uD03D",6,"\uD046\uD048\uD04A",5],["b461","\uD051\uD052\uD053\uD055\uD056\uD057\uD059",6,"\uD061",10,"\uD06E\uD06F"],["b481","\uD071\uD072\uD073\uD075",6,"\uD07E\uD07F\uD080\uD082",18,"\uB1DF\uB1E8\uB1E9\uB1EC\uB1F0\uB1F9\uB1FB\uB1FD\uB204\uB205\uB208\uB20B\uB20C\uB214\uB215\uB217\uB219\uB220\uB234\uB23C\uB258\uB25C\uB260\uB268\uB269\uB274\uB275\uB27C\uB284\uB285\uB289\uB290\uB291\uB294\uB298\uB299\uB29A\uB2A0\uB2A1\uB2A3\uB2A5\uB2A6\uB2AA\uB2AC\uB2B0\uB2B4\uB2C8\uB2C9\uB2CC\uB2D0\uB2D2\uB2D8\uB2D9\uB2DB\uB2DD\uB2E2\uB2E4\uB2E5\uB2E6\uB2E8\uB2EB",4,"\uB2F3\uB2F4\uB2F5\uB2F7",4,"\uB2FF\uB300\uB301\uB304\uB308\uB310\uB311\uB313\uB314\uB315\uB31C\uB354\uB355\uB356\uB358\uB35B\uB35C\uB35E\uB35F\uB364\uB365"],["b541","\uD095",14,"\uD0A6\uD0A7\uD0A9\uD0AA\uD0AB\uD0AD",5],["b561","\uD0B3\uD0B6\uD0B8\uD0BA",5,"\uD0C2\uD0C3\uD0C5\uD0C6\uD0C7\uD0CA",5,"\uD0D2\uD0D6",4],["b581","\uD0DB\uD0DE\uD0DF\uD0E1\uD0E2\uD0E3\uD0E5",6,"\uD0EE\uD0F2",5,"\uD0F9",11,"\uB367\uB369\uB36B\uB36E\uB370\uB371\uB374\uB378\uB380\uB381\uB383\uB384\uB385\uB38C\uB390\uB394\uB3A0\uB3A1\uB3A8\uB3AC\uB3C4\uB3C5\uB3C8\uB3CB\uB3CC\uB3CE\uB3D0\uB3D4\uB3D5\uB3D7\uB3D9\uB3DB\uB3DD\uB3E0\uB3E4\uB3E8\uB3FC\uB410\uB418\uB41C\uB420\uB428\uB429\uB42B\uB434\uB450\uB451\uB454\uB458\uB460\uB461\uB463\uB465\uB46C\uB480\uB488\uB49D\uB4A4\uB4A8\uB4AC\uB4B5\uB4B7\uB4B9\uB4C0\uB4C4\uB4C8\uB4D0\uB4D5\uB4DC\uB4DD\uB4E0\uB4E3\uB4E4\uB4E6\uB4EC\uB4ED\uB4EF\uB4F1\uB4F8\uB514\uB515\uB518\uB51B\uB51C\uB524\uB525\uB527\uB528\uB529\uB52A\uB530\uB531\uB534\uB538"],["b641","\uD105",7,"\uD10E",17],["b661","\uD120",15,"\uD132\uD133\uD135\uD136\uD137\uD139\uD13B\uD13C\uD13D\uD13E"],["b681","\uD13F\uD142\uD146",5,"\uD14E\uD14F\uD151\uD152\uD153\uD155",6,"\uD15E\uD160\uD162",5,"\uD169\uD16A\uD16B\uD16D\uB540\uB541\uB543\uB544\uB545\uB54B\uB54C\uB54D\uB550\uB554\uB55C\uB55D\uB55F\uB560\uB561\uB5A0\uB5A1\uB5A4\uB5A8\uB5AA\uB5AB\uB5B0\uB5B1\uB5B3\uB5B4\uB5B5\uB5BB\uB5BC\uB5BD\uB5C0\uB5C4\uB5CC\uB5CD\uB5CF\uB5D0\uB5D1\uB5D8\uB5EC\uB610\uB611\uB614\uB618\uB625\uB62C\uB634\uB648\uB664\uB668\uB69C\uB69D\uB6A0\uB6A4\uB6AB\uB6AC\uB6B1\uB6D4\uB6F0\uB6F4\uB6F8\uB700\uB701\uB705\uB728\uB729\uB72C\uB72F\uB730\uB738\uB739\uB73B\uB744\uB748\uB74C\uB754\uB755\uB760\uB764\uB768\uB770\uB771\uB773\uB775\uB77C\uB77D\uB780\uB784\uB78C\uB78D\uB78F\uB790\uB791\uB792\uB796\uB797"],["b741","\uD16E",13,"\uD17D",6,"\uD185\uD186\uD187\uD189\uD18A"],["b761","\uD18B",20,"\uD1A2\uD1A3\uD1A5\uD1A6\uD1A7"],["b781","\uD1A9",6,"\uD1B2\uD1B4\uD1B6\uD1B7\uD1B8\uD1B9\uD1BB\uD1BD\uD1BE\uD1BF\uD1C1",14,"\uB798\uB799\uB79C\uB7A0\uB7A8\uB7A9\uB7AB\uB7AC\uB7AD\uB7B4\uB7B5\uB7B8\uB7C7\uB7C9\uB7EC\uB7ED\uB7F0\uB7F4\uB7FC\uB7FD\uB7FF\uB800\uB801\uB807\uB808\uB809\uB80C\uB810\uB818\uB819\uB81B\uB81D\uB824\uB825\uB828\uB82C\uB834\uB835\uB837\uB838\uB839\uB840\uB844\uB851\uB853\uB85C\uB85D\uB860\uB864\uB86C\uB86D\uB86F\uB871\uB878\uB87C\uB88D\uB8A8\uB8B0\uB8B4\uB8B8\uB8C0\uB8C1\uB8C3\uB8C5\uB8CC\uB8D0\uB8D4\uB8DD\uB8DF\uB8E1\uB8E8\uB8E9\uB8EC\uB8F0\uB8F8\uB8F9\uB8FB\uB8FD\uB904\uB918\uB920\uB93C\uB93D\uB940\uB944\uB94C\uB94F\uB951\uB958\uB959\uB95C\uB960\uB968\uB969"],["b841","\uD1D0",7,"\uD1D9",17],["b861","\uD1EB",8,"\uD1F5\uD1F6\uD1F7\uD1F9",13],["b881","\uD208\uD20A",5,"\uD211",24,"\uB96B\uB96D\uB974\uB975\uB978\uB97C\uB984\uB985\uB987\uB989\uB98A\uB98D\uB98E\uB9AC\uB9AD\uB9B0\uB9B4\uB9BC\uB9BD\uB9BF\uB9C1\uB9C8\uB9C9\uB9CC\uB9CE",4,"\uB9D8\uB9D9\uB9DB\uB9DD\uB9DE\uB9E1\uB9E3\uB9E4\uB9E5\uB9E8\uB9EC\uB9F4\uB9F5\uB9F7\uB9F8\uB9F9\uB9FA\uBA00\uBA01\uBA08\uBA15\uBA38\uBA39\uBA3C\uBA40\uBA42\uBA48\uBA49\uBA4B\uBA4D\uBA4E\uBA53\uBA54\uBA55\uBA58\uBA5C\uBA64\uBA65\uBA67\uBA68\uBA69\uBA70\uBA71\uBA74\uBA78\uBA83\uBA84\uBA85\uBA87\uBA8C\uBAA8\uBAA9\uBAAB\uBAAC\uBAB0\uBAB2\uBAB8\uBAB9\uBABB\uBABD\uBAC4\uBAC8\uBAD8\uBAD9\uBAFC"],["b941","\uD22A\uD22B\uD22E\uD22F\uD231\uD232\uD233\uD235",6,"\uD23E\uD240\uD242",5,"\uD249\uD24A\uD24B\uD24C"],["b961","\uD24D",14,"\uD25D",6,"\uD265\uD266\uD267\uD268"],["b981","\uD269",22,"\uD282\uD283\uD285\uD286\uD287\uD289\uD28A\uD28B\uD28C\uBB00\uBB04\uBB0D\uBB0F\uBB11\uBB18\uBB1C\uBB20\uBB29\uBB2B\uBB34\uBB35\uBB36\uBB38\uBB3B\uBB3C\uBB3D\uBB3E\uBB44\uBB45\uBB47\uBB49\uBB4D\uBB4F\uBB50\uBB54\uBB58\uBB61\uBB63\uBB6C\uBB88\uBB8C\uBB90\uBBA4\uBBA8\uBBAC\uBBB4\uBBB7\uBBC0\uBBC4\uBBC8\uBBD0\uBBD3\uBBF8\uBBF9\uBBFC\uBBFF\uBC00\uBC02\uBC08\uBC09\uBC0B\uBC0C\uBC0D\uBC0F\uBC11\uBC14",4,"\uBC1B",4,"\uBC24\uBC25\uBC27\uBC29\uBC2D\uBC30\uBC31\uBC34\uBC38\uBC40\uBC41\uBC43\uBC44\uBC45\uBC49\uBC4C\uBC4D\uBC50\uBC5D\uBC84\uBC85\uBC88\uBC8B\uBC8C\uBC8E\uBC94\uBC95\uBC97"],["ba41","\uD28D\uD28E\uD28F\uD292\uD293\uD294\uD296",5,"\uD29D\uD29E\uD29F\uD2A1\uD2A2\uD2A3\uD2A5",6,"\uD2AD"],["ba61","\uD2AE\uD2AF\uD2B0\uD2B2",5,"\uD2BA\uD2BB\uD2BD\uD2BE\uD2C1\uD2C3",4,"\uD2CA\uD2CC",5],["ba81","\uD2D2\uD2D3\uD2D5\uD2D6\uD2D7\uD2D9\uD2DA\uD2DB\uD2DD",6,"\uD2E6",9,"\uD2F2\uD2F3\uD2F5\uD2F6\uD2F7\uD2F9\uD2FA\uBC99\uBC9A\uBCA0\uBCA1\uBCA4\uBCA7\uBCA8\uBCB0\uBCB1\uBCB3\uBCB4\uBCB5\uBCBC\uBCBD\uBCC0\uBCC4\uBCCD\uBCCF\uBCD0\uBCD1\uBCD5\uBCD8\uBCDC\uBCF4\uBCF5\uBCF6\uBCF8\uBCFC\uBD04\uBD05\uBD07\uBD09\uBD10\uBD14\uBD24\uBD2C\uBD40\uBD48\uBD49\uBD4C\uBD50\uBD58\uBD59\uBD64\uBD68\uBD80\uBD81\uBD84\uBD87\uBD88\uBD89\uBD8A\uBD90\uBD91\uBD93\uBD95\uBD99\uBD9A\uBD9C\uBDA4\uBDB0\uBDB8\uBDD4\uBDD5\uBDD8\uBDDC\uBDE9\uBDF0\uBDF4\uBDF8\uBE00\uBE03\uBE05\uBE0C\uBE0D\uBE10\uBE14\uBE1C\uBE1D\uBE1F\uBE44\uBE45\uBE48\uBE4C\uBE4E\uBE54\uBE55\uBE57\uBE59\uBE5A\uBE5B\uBE60\uBE61\uBE64"],["bb41","\uD2FB",4,"\uD302\uD304\uD306",5,"\uD30F\uD311\uD312\uD313\uD315\uD317",4,"\uD31E\uD322\uD323"],["bb61","\uD324\uD326\uD327\uD32A\uD32B\uD32D\uD32E\uD32F\uD331",6,"\uD33A\uD33E",5,"\uD346\uD347\uD348\uD349"],["bb81","\uD34A",31,"\uBE68\uBE6A\uBE70\uBE71\uBE73\uBE74\uBE75\uBE7B\uBE7C\uBE7D\uBE80\uBE84\uBE8C\uBE8D\uBE8F\uBE90\uBE91\uBE98\uBE99\uBEA8\uBED0\uBED1\uBED4\uBED7\uBED8\uBEE0\uBEE3\uBEE4\uBEE5\uBEEC\uBF01\uBF08\uBF09\uBF18\uBF19\uBF1B\uBF1C\uBF1D\uBF40\uBF41\uBF44\uBF48\uBF50\uBF51\uBF55\uBF94\uBFB0\uBFC5\uBFCC\uBFCD\uBFD0\uBFD4\uBFDC\uBFDF\uBFE1\uC03C\uC051\uC058\uC05C\uC060\uC068\uC069\uC090\uC091\uC094\uC098\uC0A0\uC0A1\uC0A3\uC0A5\uC0AC\uC0AD\uC0AF\uC0B0\uC0B3\uC0B4\uC0B5\uC0B6\uC0BC\uC0BD\uC0BF\uC0C0\uC0C1\uC0C5\uC0C8\uC0C9\uC0CC\uC0D0\uC0D8\uC0D9\uC0DB\uC0DC\uC0DD\uC0E4"],["bc41","\uD36A",17,"\uD37E\uD37F\uD381\uD382\uD383\uD385\uD386\uD387"],["bc61","\uD388\uD389\uD38A\uD38B\uD38E\uD392",5,"\uD39A\uD39B\uD39D\uD39E\uD39F\uD3A1",6,"\uD3AA\uD3AC\uD3AE"],["bc81","\uD3AF",4,"\uD3B5\uD3B6\uD3B7\uD3B9\uD3BA\uD3BB\uD3BD",6,"\uD3C6\uD3C7\uD3CA",5,"\uD3D1",5,"\uC0E5\uC0E8\uC0EC\uC0F4\uC0F5\uC0F7\uC0F9\uC100\uC104\uC108\uC110\uC115\uC11C",4,"\uC123\uC124\uC126\uC127\uC12C\uC12D\uC12F\uC130\uC131\uC136\uC138\uC139\uC13C\uC140\uC148\uC149\uC14B\uC14C\uC14D\uC154\uC155\uC158\uC15C\uC164\uC165\uC167\uC168\uC169\uC170\uC174\uC178\uC185\uC18C\uC18D\uC18E\uC190\uC194\uC196\uC19C\uC19D\uC19F\uC1A1\uC1A5\uC1A8\uC1A9\uC1AC\uC1B0\uC1BD\uC1C4\uC1C8\uC1CC\uC1D4\uC1D7\uC1D8\uC1E0\uC1E4\uC1E8\uC1F0\uC1F1\uC1F3\uC1FC\uC1FD\uC200\uC204\uC20C\uC20D\uC20F\uC211\uC218\uC219\uC21C\uC21F\uC220\uC228\uC229\uC22B\uC22D"],["bd41","\uD3D7\uD3D9",7,"\uD3E2\uD3E4",7,"\uD3EE\uD3EF\uD3F1\uD3F2\uD3F3\uD3F5\uD3F6\uD3F7"],["bd61","\uD3F8\uD3F9\uD3FA\uD3FB\uD3FE\uD400\uD402",5,"\uD409",13],["bd81","\uD417",5,"\uD41E",25,"\uC22F\uC231\uC232\uC234\uC248\uC250\uC251\uC254\uC258\uC260\uC265\uC26C\uC26D\uC270\uC274\uC27C\uC27D\uC27F\uC281\uC288\uC289\uC290\uC298\uC29B\uC29D\uC2A4\uC2A5\uC2A8\uC2AC\uC2AD\uC2B4\uC2B5\uC2B7\uC2B9\uC2DC\uC2DD\uC2E0\uC2E3\uC2E4\uC2EB\uC2EC\uC2ED\uC2EF\uC2F1\uC2F6\uC2F8\uC2F9\uC2FB\uC2FC\uC300\uC308\uC309\uC30C\uC30D\uC313\uC314\uC315\uC318\uC31C\uC324\uC325\uC328\uC329\uC345\uC368\uC369\uC36C\uC370\uC372\uC378\uC379\uC37C\uC37D\uC384\uC388\uC38C\uC3C0\uC3D8\uC3D9\uC3DC\uC3DF\uC3E0\uC3E2\uC3E8\uC3E9\uC3ED\uC3F4\uC3F5\uC3F8\uC408\uC410\uC424\uC42C\uC430"],["be41","\uD438",7,"\uD441\uD442\uD443\uD445",14],["be61","\uD454",7,"\uD45D\uD45E\uD45F\uD461\uD462\uD463\uD465",7,"\uD46E\uD470\uD471\uD472"],["be81","\uD473",4,"\uD47A\uD47B\uD47D\uD47E\uD481\uD483",4,"\uD48A\uD48C\uD48E",5,"\uD495",8,"\uC434\uC43C\uC43D\uC448\uC464\uC465\uC468\uC46C\uC474\uC475\uC479\uC480\uC494\uC49C\uC4B8\uC4BC\uC4E9\uC4F0\uC4F1\uC4F4\uC4F8\uC4FA\uC4FF\uC500\uC501\uC50C\uC510\uC514\uC51C\uC528\uC529\uC52C\uC530\uC538\uC539\uC53B\uC53D\uC544\uC545\uC548\uC549\uC54A\uC54C\uC54D\uC54E\uC553\uC554\uC555\uC557\uC558\uC559\uC55D\uC55E\uC560\uC561\uC564\uC568\uC570\uC571\uC573\uC574\uC575\uC57C\uC57D\uC580\uC584\uC587\uC58C\uC58D\uC58F\uC591\uC595\uC597\uC598\uC59C\uC5A0\uC5A9\uC5B4\uC5B5\uC5B8\uC5B9\uC5BB\uC5BC\uC5BD\uC5BE\uC5C4",6,"\uC5CC\uC5CE"],["bf41","\uD49E",10,"\uD4AA",14],["bf61","\uD4B9",18,"\uD4CD\uD4CE\uD4CF\uD4D1\uD4D2\uD4D3\uD4D5"],["bf81","\uD4D6",5,"\uD4DD\uD4DE\uD4E0",7,"\uD4E9\uD4EA\uD4EB\uD4ED\uD4EE\uD4EF\uD4F1",6,"\uD4F9\uD4FA\uD4FC\uC5D0\uC5D1\uC5D4\uC5D8\uC5E0\uC5E1\uC5E3\uC5E5\uC5EC\uC5ED\uC5EE\uC5F0\uC5F4\uC5F6\uC5F7\uC5FC",5,"\uC605\uC606\uC607\uC608\uC60C\uC610\uC618\uC619\uC61B\uC61C\uC624\uC625\uC628\uC62C\uC62D\uC62E\uC630\uC633\uC634\uC635\uC637\uC639\uC63B\uC640\uC641\uC644\uC648\uC650\uC651\uC653\uC654\uC655\uC65C\uC65D\uC660\uC66C\uC66F\uC671\uC678\uC679\uC67C\uC680\uC688\uC689\uC68B\uC68D\uC694\uC695\uC698\uC69C\uC6A4\uC6A5\uC6A7\uC6A9\uC6B0\uC6B1\uC6B4\uC6B8\uC6B9\uC6BA\uC6C0\uC6C1\uC6C3\uC6C5\uC6CC\uC6CD\uC6D0\uC6D4\uC6DC\uC6DD\uC6E0\uC6E1\uC6E8"],["c041","\uD4FE",5,"\uD505\uD506\uD507\uD509\uD50A\uD50B\uD50D",6,"\uD516\uD518",5],["c061","\uD51E",25],["c081","\uD538\uD539\uD53A\uD53B\uD53E\uD53F\uD541\uD542\uD543\uD545",6,"\uD54E\uD550\uD552",5,"\uD55A\uD55B\uD55D\uD55E\uD55F\uD561\uD562\uD563\uC6E9\uC6EC\uC6F0\uC6F8\uC6F9\uC6FD\uC704\uC705\uC708\uC70C\uC714\uC715\uC717\uC719\uC720\uC721\uC724\uC728\uC730\uC731\uC733\uC735\uC737\uC73C\uC73D\uC740\uC744\uC74A\uC74C\uC74D\uC74F\uC751",7,"\uC75C\uC760\uC768\uC76B\uC774\uC775\uC778\uC77C\uC77D\uC77E\uC783\uC784\uC785\uC787\uC788\uC789\uC78A\uC78E\uC790\uC791\uC794\uC796\uC797\uC798\uC79A\uC7A0\uC7A1\uC7A3\uC7A4\uC7A5\uC7A6\uC7AC\uC7AD\uC7B0\uC7B4\uC7BC\uC7BD\uC7BF\uC7C0\uC7C1\uC7C8\uC7C9\uC7CC\uC7CE\uC7D0\uC7D8\uC7DD\uC7E4\uC7E8\uC7EC\uC800\uC801\uC804\uC808\uC80A"],["c141","\uD564\uD566\uD567\uD56A\uD56C\uD56E",5,"\uD576\uD577\uD579\uD57A\uD57B\uD57D",6,"\uD586\uD58A\uD58B"],["c161","\uD58C\uD58D\uD58E\uD58F\uD591",19,"\uD5A6\uD5A7"],["c181","\uD5A8",31,"\uC810\uC811\uC813\uC815\uC816\uC81C\uC81D\uC820\uC824\uC82C\uC82D\uC82F\uC831\uC838\uC83C\uC840\uC848\uC849\uC84C\uC84D\uC854\uC870\uC871\uC874\uC878\uC87A\uC880\uC881\uC883\uC885\uC886\uC887\uC88B\uC88C\uC88D\uC894\uC89D\uC89F\uC8A1\uC8A8\uC8BC\uC8BD\uC8C4\uC8C8\uC8CC\uC8D4\uC8D5\uC8D7\uC8D9\uC8E0\uC8E1\uC8E4\uC8F5\uC8FC\uC8FD\uC900\uC904\uC905\uC906\uC90C\uC90D\uC90F\uC911\uC918\uC92C\uC934\uC950\uC951\uC954\uC958\uC960\uC961\uC963\uC96C\uC970\uC974\uC97C\uC988\uC989\uC98C\uC990\uC998\uC999\uC99B\uC99D\uC9C0\uC9C1\uC9C4\uC9C7\uC9C8\uC9CA\uC9D0\uC9D1\uC9D3"],["c241","\uD5CA\uD5CB\uD5CD\uD5CE\uD5CF\uD5D1\uD5D3",4,"\uD5DA\uD5DC\uD5DE",5,"\uD5E6\uD5E7\uD5E9\uD5EA\uD5EB\uD5ED\uD5EE"],["c261","\uD5EF",4,"\uD5F6\uD5F8\uD5FA",5,"\uD602\uD603\uD605\uD606\uD607\uD609",6,"\uD612"],["c281","\uD616",5,"\uD61D\uD61E\uD61F\uD621\uD622\uD623\uD625",7,"\uD62E",9,"\uD63A\uD63B\uC9D5\uC9D6\uC9D9\uC9DA\uC9DC\uC9DD\uC9E0\uC9E2\uC9E4\uC9E7\uC9EC\uC9ED\uC9EF\uC9F0\uC9F1\uC9F8\uC9F9\uC9FC\uCA00\uCA08\uCA09\uCA0B\uCA0C\uCA0D\uCA14\uCA18\uCA29\uCA4C\uCA4D\uCA50\uCA54\uCA5C\uCA5D\uCA5F\uCA60\uCA61\uCA68\uCA7D\uCA84\uCA98\uCABC\uCABD\uCAC0\uCAC4\uCACC\uCACD\uCACF\uCAD1\uCAD3\uCAD8\uCAD9\uCAE0\uCAEC\uCAF4\uCB08\uCB10\uCB14\uCB18\uCB20\uCB21\uCB41\uCB48\uCB49\uCB4C\uCB50\uCB58\uCB59\uCB5D\uCB64\uCB78\uCB79\uCB9C\uCBB8\uCBD4\uCBE4\uCBE7\uCBE9\uCC0C\uCC0D\uCC10\uCC14\uCC1C\uCC1D\uCC21\uCC22\uCC27\uCC28\uCC29\uCC2C\uCC2E\uCC30\uCC38\uCC39\uCC3B"],["c341","\uD63D\uD63E\uD63F\uD641\uD642\uD643\uD644\uD646\uD647\uD64A\uD64C\uD64E\uD64F\uD650\uD652\uD653\uD656\uD657\uD659\uD65A\uD65B\uD65D",4],["c361","\uD662",4,"\uD668\uD66A",5,"\uD672\uD673\uD675",11],["c381","\uD681\uD682\uD684\uD686",5,"\uD68E\uD68F\uD691\uD692\uD693\uD695",7,"\uD69E\uD6A0\uD6A2",5,"\uD6A9\uD6AA\uCC3C\uCC3D\uCC3E\uCC44\uCC45\uCC48\uCC4C\uCC54\uCC55\uCC57\uCC58\uCC59\uCC60\uCC64\uCC66\uCC68\uCC70\uCC75\uCC98\uCC99\uCC9C\uCCA0\uCCA8\uCCA9\uCCAB\uCCAC\uCCAD\uCCB4\uCCB5\uCCB8\uCCBC\uCCC4\uCCC5\uCCC7\uCCC9\uCCD0\uCCD4\uCCE4\uCCEC\uCCF0\uCD01\uCD08\uCD09\uCD0C\uCD10\uCD18\uCD19\uCD1B\uCD1D\uCD24\uCD28\uCD2C\uCD39\uCD5C\uCD60\uCD64\uCD6C\uCD6D\uCD6F\uCD71\uCD78\uCD88\uCD94\uCD95\uCD98\uCD9C\uCDA4\uCDA5\uCDA7\uCDA9\uCDB0\uCDC4\uCDCC\uCDD0\uCDE8\uCDEC\uCDF0\uCDF8\uCDF9\uCDFB\uCDFD\uCE04\uCE08\uCE0C\uCE14\uCE19\uCE20\uCE21\uCE24\uCE28\uCE30\uCE31\uCE33\uCE35"],["c441","\uD6AB\uD6AD\uD6AE\uD6AF\uD6B1",7,"\uD6BA\uD6BC",7,"\uD6C6\uD6C7\uD6C9\uD6CA\uD6CB"],["c461","\uD6CD\uD6CE\uD6CF\uD6D0\uD6D2\uD6D3\uD6D5\uD6D6\uD6D8\uD6DA",5,"\uD6E1\uD6E2\uD6E3\uD6E5\uD6E6\uD6E7\uD6E9",4],["c481","\uD6EE\uD6EF\uD6F1\uD6F2\uD6F3\uD6F4\uD6F6",5,"\uD6FE\uD6FF\uD701\uD702\uD703\uD705",11,"\uD712\uD713\uD714\uCE58\uCE59\uCE5C\uCE5F\uCE60\uCE61\uCE68\uCE69\uCE6B\uCE6D\uCE74\uCE75\uCE78\uCE7C\uCE84\uCE85\uCE87\uCE89\uCE90\uCE91\uCE94\uCE98\uCEA0\uCEA1\uCEA3\uCEA4\uCEA5\uCEAC\uCEAD\uCEC1\uCEE4\uCEE5\uCEE8\uCEEB\uCEEC\uCEF4\uCEF5\uCEF7\uCEF8\uCEF9\uCF00\uCF01\uCF04\uCF08\uCF10\uCF11\uCF13\uCF15\uCF1C\uCF20\uCF24\uCF2C\uCF2D\uCF2F\uCF30\uCF31\uCF38\uCF54\uCF55\uCF58\uCF5C\uCF64\uCF65\uCF67\uCF69\uCF70\uCF71\uCF74\uCF78\uCF80\uCF85\uCF8C\uCFA1\uCFA8\uCFB0\uCFC4\uCFE0\uCFE1\uCFE4\uCFE8\uCFF0\uCFF1\uCFF3\uCFF5\uCFFC\uD000\uD004\uD011\uD018\uD02D\uD034\uD035\uD038\uD03C"],["c541","\uD715\uD716\uD717\uD71A\uD71B\uD71D\uD71E\uD71F\uD721",6,"\uD72A\uD72C\uD72E",5,"\uD736\uD737\uD739"],["c561","\uD73A\uD73B\uD73D",6,"\uD745\uD746\uD748\uD74A",5,"\uD752\uD753\uD755\uD75A",4],["c581","\uD75F\uD762\uD764\uD766\uD767\uD768\uD76A\uD76B\uD76D\uD76E\uD76F\uD771\uD772\uD773\uD775",6,"\uD77E\uD77F\uD780\uD782",5,"\uD78A\uD78B\uD044\uD045\uD047\uD049\uD050\uD054\uD058\uD060\uD06C\uD06D\uD070\uD074\uD07C\uD07D\uD081\uD0A4\uD0A5\uD0A8\uD0AC\uD0B4\uD0B5\uD0B7\uD0B9\uD0C0\uD0C1\uD0C4\uD0C8\uD0C9\uD0D0\uD0D1\uD0D3\uD0D4\uD0D5\uD0DC\uD0DD\uD0E0\uD0E4\uD0EC\uD0ED\uD0EF\uD0F0\uD0F1\uD0F8\uD10D\uD130\uD131\uD134\uD138\uD13A\uD140\uD141\uD143\uD144\uD145\uD14C\uD14D\uD150\uD154\uD15C\uD15D\uD15F\uD161\uD168\uD16C\uD17C\uD184\uD188\uD1A0\uD1A1\uD1A4\uD1A8\uD1B0\uD1B1\uD1B3\uD1B5\uD1BA\uD1BC\uD1C0\uD1D8\uD1F4\uD1F8\uD207\uD209\uD210\uD22C\uD22D\uD230\uD234\uD23C\uD23D\uD23F\uD241\uD248\uD25C"],["c641","\uD78D\uD78E\uD78F\uD791",6,"\uD79A\uD79C\uD79E",5],["c6a1","\uD264\uD280\uD281\uD284\uD288\uD290\uD291\uD295\uD29C\uD2A0\uD2A4\uD2AC\uD2B1\uD2B8\uD2B9\uD2BC\uD2BF\uD2C0\uD2C2\uD2C8\uD2C9\uD2CB\uD2D4\uD2D8\uD2DC\uD2E4\uD2E5\uD2F0\uD2F1\uD2F4\uD2F8\uD300\uD301\uD303\uD305\uD30C\uD30D\uD30E\uD310\uD314\uD316\uD31C\uD31D\uD31F\uD320\uD321\uD325\uD328\uD329\uD32C\uD330\uD338\uD339\uD33B\uD33C\uD33D\uD344\uD345\uD37C\uD37D\uD380\uD384\uD38C\uD38D\uD38F\uD390\uD391\uD398\uD399\uD39C\uD3A0\uD3A8\uD3A9\uD3AB\uD3AD\uD3B4\uD3B8\uD3BC\uD3C4\uD3C5\uD3C8\uD3C9\uD3D0\uD3D8\uD3E1\uD3E3\uD3EC\uD3ED\uD3F0\uD3F4\uD3FC\uD3FD\uD3FF\uD401"],["c7a1","\uD408\uD41D\uD440\uD444\uD45C\uD460\uD464\uD46D\uD46F\uD478\uD479\uD47C\uD47F\uD480\uD482\uD488\uD489\uD48B\uD48D\uD494\uD4A9\uD4CC\uD4D0\uD4D4\uD4DC\uD4DF\uD4E8\uD4EC\uD4F0\uD4F8\uD4FB\uD4FD\uD504\uD508\uD50C\uD514\uD515\uD517\uD53C\uD53D\uD540\uD544\uD54C\uD54D\uD54F\uD551\uD558\uD559\uD55C\uD560\uD565\uD568\uD569\uD56B\uD56D\uD574\uD575\uD578\uD57C\uD584\uD585\uD587\uD588\uD589\uD590\uD5A5\uD5C8\uD5C9\uD5CC\uD5D0\uD5D2\uD5D8\uD5D9\uD5DB\uD5DD\uD5E4\uD5E5\uD5E8\uD5EC\uD5F4\uD5F5\uD5F7\uD5F9\uD600\uD601\uD604\uD608\uD610\uD611\uD613\uD614\uD615\uD61C\uD620"],["c8a1","\uD624\uD62D\uD638\uD639\uD63C\uD640\uD645\uD648\uD649\uD64B\uD64D\uD651\uD654\uD655\uD658\uD65C\uD667\uD669\uD670\uD671\uD674\uD683\uD685\uD68C\uD68D\uD690\uD694\uD69D\uD69F\uD6A1\uD6A8\uD6AC\uD6B0\uD6B9\uD6BB\uD6C4\uD6C5\uD6C8\uD6CC\uD6D1\uD6D4\uD6D7\uD6D9\uD6E0\uD6E4\uD6E8\uD6F0\uD6F5\uD6FC\uD6FD\uD700\uD704\uD711\uD718\uD719\uD71C\uD720\uD728\uD729\uD72B\uD72D\uD734\uD735\uD738\uD73C\uD744\uD747\uD749\uD750\uD751\uD754\uD756\uD757\uD758\uD759\uD760\uD761\uD763\uD765\uD769\uD76C\uD770\uD774\uD77C\uD77D\uD781\uD788\uD789\uD78C\uD790\uD798\uD799\uD79B\uD79D"],["caa1","\u4F3D\u4F73\u5047\u50F9\u52A0\u53EF\u5475\u54E5\u5609\u5AC1\u5BB6\u6687\u67B6\u67B7\u67EF\u6B4C\u73C2\u75C2\u7A3C\u82DB\u8304\u8857\u8888\u8A36\u8CC8\u8DCF\u8EFB\u8FE6\u99D5\u523B\u5374\u5404\u606A\u6164\u6BBC\u73CF\u811A\u89BA\u89D2\u95A3\u4F83\u520A\u58BE\u5978\u59E6\u5E72\u5E79\u61C7\u63C0\u6746\u67EC\u687F\u6F97\u764E\u770B\u78F5\u7A08\u7AFF\u7C21\u809D\u826E\u8271\u8AEB\u9593\u4E6B\u559D\u66F7\u6E34\u78A3\u7AED\u845B\u8910\u874E\u97A8\u52D8\u574E\u582A\u5D4C\u611F\u61BE\u6221\u6562\u67D1\u6A44\u6E1B\u7518\u75B3\u76E3\u77B0\u7D3A\u90AF\u9451\u9452\u9F95"],["cba1","\u5323\u5CAC\u7532\u80DB\u9240\u9598\u525B\u5808\u59DC\u5CA1\u5D17\u5EB7\u5F3A\u5F4A\u6177\u6C5F\u757A\u7586\u7CE0\u7D73\u7DB1\u7F8C\u8154\u8221\u8591\u8941\u8B1B\u92FC\u964D\u9C47\u4ECB\u4EF7\u500B\u51F1\u584F\u6137\u613E\u6168\u6539\u69EA\u6F11\u75A5\u7686\u76D6\u7B87\u82A5\u84CB\uF900\u93A7\u958B\u5580\u5BA2\u5751\uF901\u7CB3\u7FB9\u91B5\u5028\u53BB\u5C45\u5DE8\u62D2\u636E\u64DA\u64E7\u6E20\u70AC\u795B\u8DDD\u8E1E\uF902\u907D\u9245\u92F8\u4E7E\u4EF6\u5065\u5DFE\u5EFA\u6106\u6957\u8171\u8654\u8E47\u9375\u9A2B\u4E5E\u5091\u6770\u6840\u5109\u528D\u5292\u6AA2"],["cca1","\u77BC\u9210\u9ED4\u52AB\u602F\u8FF2\u5048\u61A9\u63ED\u64CA\u683C\u6A84\u6FC0\u8188\u89A1\u9694\u5805\u727D\u72AC\u7504\u7D79\u7E6D\u80A9\u898B\u8B74\u9063\u9D51\u6289\u6C7A\u6F54\u7D50\u7F3A\u8A23\u517C\u614A\u7B9D\u8B19\u9257\u938C\u4EAC\u4FD3\u501E\u50BE\u5106\u52C1\u52CD\u537F\u5770\u5883\u5E9A\u5F91\u6176\u61AC\u64CE\u656C\u666F\u66BB\u66F4\u6897\u6D87\u7085\u70F1\u749F\u74A5\u74CA\u75D9\u786C\u78EC\u7ADF\u7AF6\u7D45\u7D93\u8015\u803F\u811B\u8396\u8B66\u8F15\u9015\u93E1\u9803\u9838\u9A5A\u9BE8\u4FC2\u5553\u583A\u5951\u5B63\u5C46\u60B8\u6212\u6842\u68B0"],["cda1","\u68E8\u6EAA\u754C\u7678\u78CE\u7A3D\u7CFB\u7E6B\u7E7C\u8A08\u8AA1\u8C3F\u968E\u9DC4\u53E4\u53E9\u544A\u5471\u56FA\u59D1\u5B64\u5C3B\u5EAB\u62F7\u6537\u6545\u6572\u66A0\u67AF\u69C1\u6CBD\u75FC\u7690\u777E\u7A3F\u7F94\u8003\u80A1\u818F\u82E6\u82FD\u83F0\u85C1\u8831\u88B4\u8AA5\uF903\u8F9C\u932E\u96C7\u9867\u9AD8\u9F13\u54ED\u659B\u66F2\u688F\u7A40\u8C37\u9D60\u56F0\u5764\u5D11\u6606\u68B1\u68CD\u6EFE\u7428\u889E\u9BE4\u6C68\uF904\u9AA8\u4F9B\u516C\u5171\u529F\u5B54\u5DE5\u6050\u606D\u62F1\u63A7\u653B\u73D9\u7A7A\u86A3\u8CA2\u978F\u4E32\u5BE1\u6208\u679C\u74DC"],["cea1","\u79D1\u83D3\u8A87\u8AB2\u8DE8\u904E\u934B\u9846\u5ED3\u69E8\u85FF\u90ED\uF905\u51A0\u5B98\u5BEC\u6163\u68FA\u6B3E\u704C\u742F\u74D8\u7BA1\u7F50\u83C5\u89C0\u8CAB\u95DC\u9928\u522E\u605D\u62EC\u9002\u4F8A\u5149\u5321\u58D9\u5EE3\u66E0\u6D38\u709A\u72C2\u73D6\u7B50\u80F1\u945B\u5366\u639B\u7F6B\u4E56\u5080\u584A\u58DE\u602A\u6127\u62D0\u69D0\u9B41\u5B8F\u7D18\u80B1\u8F5F\u4EA4\u50D1\u54AC\u55AC\u5B0C\u5DA0\u5DE7\u652A\u654E\u6821\u6A4B\u72E1\u768E\u77EF\u7D5E\u7FF9\u81A0\u854E\u86DF\u8F03\u8F4E\u90CA\u9903\u9A55\u9BAB\u4E18\u4E45\u4E5D\u4EC7\u4FF1\u5177\u52FE"],["cfa1","\u5340\u53E3\u53E5\u548E\u5614\u5775\u57A2\u5BC7\u5D87\u5ED0\u61FC\u62D8\u6551\u67B8\u67E9\u69CB\u6B50\u6BC6\u6BEC\u6C42\u6E9D\u7078\u72D7\u7396\u7403\u77BF\u77E9\u7A76\u7D7F\u8009\u81FC\u8205\u820A\u82DF\u8862\u8B33\u8CFC\u8EC0\u9011\u90B1\u9264\u92B6\u99D2\u9A45\u9CE9\u9DD7\u9F9C\u570B\u5C40\u83CA\u97A0\u97AB\u9EB4\u541B\u7A98\u7FA4\u88D9\u8ECD\u90E1\u5800\u5C48\u6398\u7A9F\u5BAE\u5F13\u7A79\u7AAE\u828E\u8EAC\u5026\u5238\u52F8\u5377\u5708\u62F3\u6372\u6B0A\u6DC3\u7737\u53A5\u7357\u8568\u8E76\u95D5\u673A\u6AC3\u6F70\u8A6D\u8ECC\u994B\uF906\u6677\u6B78\u8CB4"],["d0a1","\u9B3C\uF907\u53EB\u572D\u594E\u63C6\u69FB\u73EA\u7845\u7ABA\u7AC5\u7CFE\u8475\u898F\u8D73\u9035\u95A8\u52FB\u5747\u7547\u7B60\u83CC\u921E\uF908\u6A58\u514B\u524B\u5287\u621F\u68D8\u6975\u9699\u50C5\u52A4\u52E4\u61C3\u65A4\u6839\u69FF\u747E\u7B4B\u82B9\u83EB\u89B2\u8B39\u8FD1\u9949\uF909\u4ECA\u5997\u64D2\u6611\u6A8E\u7434\u7981\u79BD\u82A9\u887E\u887F\u895F\uF90A\u9326\u4F0B\u53CA\u6025\u6271\u6C72\u7D1A\u7D66\u4E98\u5162\u77DC\u80AF\u4F01\u4F0E\u5176\u5180\u55DC\u5668\u573B\u57FA\u57FC\u5914\u5947\u5993\u5BC4\u5C90\u5D0E\u5DF1\u5E7E\u5FCC\u6280\u65D7\u65E3"],["d1a1","\u671E\u671F\u675E\u68CB\u68C4\u6A5F\u6B3A\u6C23\u6C7D\u6C82\u6DC7\u7398\u7426\u742A\u7482\u74A3\u7578\u757F\u7881\u78EF\u7941\u7947\u7948\u797A\u7B95\u7D00\u7DBA\u7F88\u8006\u802D\u808C\u8A18\u8B4F\u8C48\u8D77\u9321\u9324\u98E2\u9951\u9A0E\u9A0F\u9A65\u9E92\u7DCA\u4F76\u5409\u62EE\u6854\u91D1\u55AB\u513A\uF90B\uF90C\u5A1C\u61E6\uF90D\u62CF\u62FF\uF90E",5,"\u90A3\uF914",4,"\u8AFE\uF919\uF91A\uF91B\uF91C\u6696\uF91D\u7156\uF91E\uF91F\u96E3\uF920\u634F\u637A\u5357\uF921\u678F\u6960\u6E73\uF922\u7537\uF923\uF924\uF925"],["d2a1","\u7D0D\uF926\uF927\u8872\u56CA\u5A18\uF928",4,"\u4E43\uF92D\u5167\u5948\u67F0\u8010\uF92E\u5973\u5E74\u649A\u79CA\u5FF5\u606C\u62C8\u637B\u5BE7\u5BD7\u52AA\uF92F\u5974\u5F29\u6012\uF930\uF931\uF932\u7459\uF933",5,"\u99D1\uF939",10,"\u6FC3\uF944\uF945\u81BF\u8FB2\u60F1\uF946\uF947\u8166\uF948\uF949\u5C3F\uF94A",7,"\u5AE9\u8A25\u677B\u7D10\uF952",5,"\u80FD\uF958\uF959\u5C3C\u6CE5\u533F\u6EBA\u591A\u8336"],["d3a1","\u4E39\u4EB6\u4F46\u55AE\u5718\u58C7\u5F56\u65B7\u65E6\u6A80\u6BB5\u6E4D\u77ED\u7AEF\u7C1E\u7DDE\u86CB\u8892\u9132\u935B\u64BB\u6FBE\u737A\u75B8\u9054\u5556\u574D\u61BA\u64D4\u66C7\u6DE1\u6E5B\u6F6D\u6FB9\u75F0\u8043\u81BD\u8541\u8983\u8AC7\u8B5A\u931F\u6C93\u7553\u7B54\u8E0F\u905D\u5510\u5802\u5858\u5E62\u6207\u649E\u68E0\u7576\u7CD6\u87B3\u9EE8\u4EE3\u5788\u576E\u5927\u5C0D\u5CB1\u5E36\u5F85\u6234\u64E1\u73B3\u81FA\u888B\u8CB8\u968A\u9EDB\u5B85\u5FB7\u60B3\u5012\u5200\u5230\u5716\u5835\u5857\u5C0E\u5C60\u5CF6\u5D8B\u5EA6\u5F92\u60BC\u6311\u6389\u6417\u6843"],["d4a1","\u68F9\u6AC2\u6DD8\u6E21\u6ED4\u6FE4\u71FE\u76DC\u7779\u79B1\u7A3B\u8404\u89A9\u8CED\u8DF3\u8E48\u9003\u9014\u9053\u90FD\u934D\u9676\u97DC\u6BD2\u7006\u7258\u72A2\u7368\u7763\u79BF\u7BE4\u7E9B\u8B80\u58A9\u60C7\u6566\u65FD\u66BE\u6C8C\u711E\u71C9\u8C5A\u9813\u4E6D\u7A81\u4EDD\u51AC\u51CD\u52D5\u540C\u61A7\u6771\u6850\u68DF\u6D1E\u6F7C\u75BC\u77B3\u7AE5\u80F4\u8463\u9285\u515C\u6597\u675C\u6793\u75D8\u7AC7\u8373\uF95A\u8C46\u9017\u982D\u5C6F\u81C0\u829A\u9041\u906F\u920D\u5F97\u5D9D\u6A59\u71C8\u767B\u7B49\u85E4\u8B04\u9127\u9A30\u5587\u61F6\uF95B\u7669\u7F85"],["d5a1","\u863F\u87BA\u88F8\u908F\uF95C\u6D1B\u70D9\u73DE\u7D61\u843D\uF95D\u916A\u99F1\uF95E\u4E82\u5375\u6B04\u6B12\u703E\u721B\u862D\u9E1E\u524C\u8FA3\u5D50\u64E5\u652C\u6B16\u6FEB\u7C43\u7E9C\u85CD\u8964\u89BD\u62C9\u81D8\u881F\u5ECA\u6717\u6D6A\u72FC\u7405\u746F\u8782\u90DE\u4F86\u5D0D\u5FA0\u840A\u51B7\u63A0\u7565\u4EAE\u5006\u5169\u51C9\u6881\u6A11\u7CAE\u7CB1\u7CE7\u826F\u8AD2\u8F1B\u91CF\u4FB6\u5137\u52F5\u5442\u5EEC\u616E\u623E\u65C5\u6ADA\u6FFE\u792A\u85DC\u8823\u95AD\u9A62\u9A6A\u9E97\u9ECE\u529B\u66C6\u6B77\u701D\u792B\u8F62\u9742\u6190\u6200\u6523\u6F23"],["d6a1","\u7149\u7489\u7DF4\u806F\u84EE\u8F26\u9023\u934A\u51BD\u5217\u52A3\u6D0C\u70C8\u88C2\u5EC9\u6582\u6BAE\u6FC2\u7C3E\u7375\u4EE4\u4F36\u56F9\uF95F\u5CBA\u5DBA\u601C\u73B2\u7B2D\u7F9A\u7FCE\u8046\u901E\u9234\u96F6\u9748\u9818\u9F61\u4F8B\u6FA7\u79AE\u91B4\u96B7\u52DE\uF960\u6488\u64C4\u6AD3\u6F5E\u7018\u7210\u76E7\u8001\u8606\u865C\u8DEF\u8F05\u9732\u9B6F\u9DFA\u9E75\u788C\u797F\u7DA0\u83C9\u9304\u9E7F\u9E93\u8AD6\u58DF\u5F04\u6727\u7027\u74CF\u7C60\u807E\u5121\u7028\u7262\u78CA\u8CC2\u8CDA\u8CF4\u96F7\u4E86\u50DA\u5BEE\u5ED6\u6599\u71CE\u7642\u77AD\u804A\u84FC"],["d7a1","\u907C\u9B27\u9F8D\u58D8\u5A41\u5C62\u6A13\u6DDA\u6F0F\u763B\u7D2F\u7E37\u851E\u8938\u93E4\u964B\u5289\u65D2\u67F3\u69B4\u6D41\u6E9C\u700F\u7409\u7460\u7559\u7624\u786B\u8B2C\u985E\u516D\u622E\u9678\u4F96\u502B\u5D19\u6DEA\u7DB8\u8F2A\u5F8B\u6144\u6817\uF961\u9686\u52D2\u808B\u51DC\u51CC\u695E\u7A1C\u7DBE\u83F1\u9675\u4FDA\u5229\u5398\u540F\u550E\u5C65\u60A7\u674E\u68A8\u6D6C\u7281\u72F8\u7406\u7483\uF962\u75E2\u7C6C\u7F79\u7FB8\u8389\u88CF\u88E1\u91CC\u91D0\u96E2\u9BC9\u541D\u6F7E\u71D0\u7498\u85FA\u8EAA\u96A3\u9C57\u9E9F\u6797\u6DCB\u7433\u81E8\u9716\u782C"],["d8a1","\u7ACB\u7B20\u7C92\u6469\u746A\u75F2\u78BC\u78E8\u99AC\u9B54\u9EBB\u5BDE\u5E55\u6F20\u819C\u83AB\u9088\u4E07\u534D\u5A29\u5DD2\u5F4E\u6162\u633D\u6669\u66FC\u6EFF\u6F2B\u7063\u779E\u842C\u8513\u883B\u8F13\u9945\u9C3B\u551C\u62B9\u672B\u6CAB\u8309\u896A\u977A\u4EA1\u5984\u5FD8\u5FD9\u671B\u7DB2\u7F54\u8292\u832B\u83BD\u8F1E\u9099\u57CB\u59B9\u5A92\u5BD0\u6627\u679A\u6885\u6BCF\u7164\u7F75\u8CB7\u8CE3\u9081\u9B45\u8108\u8C8A\u964C\u9A40\u9EA5\u5B5F\u6C13\u731B\u76F2\u76DF\u840C\u51AA\u8993\u514D\u5195\u52C9\u68C9\u6C94\u7704\u7720\u7DBF\u7DEC\u9762\u9EB5\u6EC5"],["d9a1","\u8511\u51A5\u540D\u547D\u660E\u669D\u6927\u6E9F\u76BF\u7791\u8317\u84C2\u879F\u9169\u9298\u9CF4\u8882\u4FAE\u5192\u52DF\u59C6\u5E3D\u6155\u6478\u6479\u66AE\u67D0\u6A21\u6BCD\u6BDB\u725F\u7261\u7441\u7738\u77DB\u8017\u82BC\u8305\u8B00\u8B28\u8C8C\u6728\u6C90\u7267\u76EE\u7766\u7A46\u9DA9\u6B7F\u6C92\u5922\u6726\u8499\u536F\u5893\u5999\u5EDF\u63CF\u6634\u6773\u6E3A\u732B\u7AD7\u82D7\u9328\u52D9\u5DEB\u61AE\u61CB\u620A\u62C7\u64AB\u65E0\u6959\u6B66\u6BCB\u7121\u73F7\u755D\u7E46\u821E\u8302\u856A\u8AA3\u8CBF\u9727\u9D61\u58A8\u9ED8\u5011\u520E\u543B\u554F\u6587"],["daa1","\u6C76\u7D0A\u7D0B\u805E\u868A\u9580\u96EF\u52FF\u6C95\u7269\u5473\u5A9A\u5C3E\u5D4B\u5F4C\u5FAE\u672A\u68B6\u6963\u6E3C\u6E44\u7709\u7C73\u7F8E\u8587\u8B0E\u8FF7\u9761\u9EF4\u5CB7\u60B6\u610D\u61AB\u654F\u65FB\u65FC\u6C11\u6CEF\u739F\u73C9\u7DE1\u9594\u5BC6\u871C\u8B10\u525D\u535A\u62CD\u640F\u64B2\u6734\u6A38\u6CCA\u73C0\u749E\u7B94\u7C95\u7E1B\u818A\u8236\u8584\u8FEB\u96F9\u99C1\u4F34\u534A\u53CD\u53DB\u62CC\u642C\u6500\u6591\u69C3\u6CEE\u6F58\u73ED\u7554\u7622\u76E4\u76FC\u78D0\u78FB\u792C\u7D46\u822C\u87E0\u8FD4\u9812\u98EF\u52C3\u62D4\u64A5\u6E24\u6F51"],["dba1","\u767C\u8DCB\u91B1\u9262\u9AEE\u9B43\u5023\u508D\u574A\u59A8\u5C28\u5E47\u5F77\u623F\u653E\u65B9\u65C1\u6609\u678B\u699C\u6EC2\u78C5\u7D21\u80AA\u8180\u822B\u82B3\u84A1\u868C\u8A2A\u8B17\u90A6\u9632\u9F90\u500D\u4FF3\uF963\u57F9\u5F98\u62DC\u6392\u676F\u6E43\u7119\u76C3\u80CC\u80DA\u88F4\u88F5\u8919\u8CE0\u8F29\u914D\u966A\u4F2F\u4F70\u5E1B\u67CF\u6822\u767D\u767E\u9B44\u5E61\u6A0A\u7169\u71D4\u756A\uF964\u7E41\u8543\u85E9\u98DC\u4F10\u7B4F\u7F70\u95A5\u51E1\u5E06\u68B5\u6C3E\u6C4E\u6CDB\u72AF\u7BC4\u8303\u6CD5\u743A\u50FB\u5288\u58C1\u64D8\u6A97\u74A7\u7656"],["dca1","\u78A7\u8617\u95E2\u9739\uF965\u535E\u5F01\u8B8A\u8FA8\u8FAF\u908A\u5225\u77A5\u9C49\u9F08\u4E19\u5002\u5175\u5C5B\u5E77\u661E\u663A\u67C4\u68C5\u70B3\u7501\u75C5\u79C9\u7ADD\u8F27\u9920\u9A08\u4FDD\u5821\u5831\u5BF6\u666E\u6B65\u6D11\u6E7A\u6F7D\u73E4\u752B\u83E9\u88DC\u8913\u8B5C\u8F14\u4F0F\u50D5\u5310\u535C\u5B93\u5FA9\u670D\u798F\u8179\u832F\u8514\u8907\u8986\u8F39\u8F3B\u99A5\u9C12\u672C\u4E76\u4FF8\u5949\u5C01\u5CEF\u5CF0\u6367\u68D2\u70FD\u71A2\u742B\u7E2B\u84EC\u8702\u9022\u92D2\u9CF3\u4E0D\u4ED8\u4FEF\u5085\u5256\u526F\u5426\u5490\u57E0\u592B\u5A66"],["dda1","\u5B5A\u5B75\u5BCC\u5E9C\uF966\u6276\u6577\u65A7\u6D6E\u6EA5\u7236\u7B26\u7C3F\u7F36\u8150\u8151\u819A\u8240\u8299\u83A9\u8A03\u8CA0\u8CE6\u8CFB\u8D74\u8DBA\u90E8\u91DC\u961C\u9644\u99D9\u9CE7\u5317\u5206\u5429\u5674\u58B3\u5954\u596E\u5FFF\u61A4\u626E\u6610\u6C7E\u711A\u76C6\u7C89\u7CDE\u7D1B\u82AC\u8CC1\u96F0\uF967\u4F5B\u5F17\u5F7F\u62C2\u5D29\u670B\u68DA\u787C\u7E43\u9D6C\u4E15\u5099\u5315\u532A\u5351\u5983\u5A62\u5E87\u60B2\u618A\u6249\u6279\u6590\u6787\u69A7\u6BD4\u6BD6\u6BD7\u6BD8\u6CB8\uF968\u7435\u75FA\u7812\u7891\u79D5\u79D8\u7C83\u7DCB\u7FE1\u80A5"],["dea1","\u813E\u81C2\u83F2\u871A\u88E8\u8AB9\u8B6C\u8CBB\u9119\u975E\u98DB\u9F3B\u56AC\u5B2A\u5F6C\u658C\u6AB3\u6BAF\u6D5C\u6FF1\u7015\u725D\u73AD\u8CA7\u8CD3\u983B\u6191\u6C37\u8058\u9A01\u4E4D\u4E8B\u4E9B\u4ED5\u4F3A\u4F3C\u4F7F\u4FDF\u50FF\u53F2\u53F8\u5506\u55E3\u56DB\u58EB\u5962\u5A11\u5BEB\u5BFA\u5C04\u5DF3\u5E2B\u5F99\u601D\u6368\u659C\u65AF\u67F6\u67FB\u68AD\u6B7B\u6C99\u6CD7\u6E23\u7009\u7345\u7802\u793E\u7940\u7960\u79C1\u7BE9\u7D17\u7D72\u8086\u820D\u838E\u84D1\u86C7\u88DF\u8A50\u8A5E\u8B1D\u8CDC\u8D66\u8FAD\u90AA\u98FC\u99DF\u9E9D\u524A\uF969\u6714\uF96A"],["dfa1","\u5098\u522A\u5C71\u6563\u6C55\u73CA\u7523\u759D\u7B97\u849C\u9178\u9730\u4E77\u6492\u6BBA\u715E\u85A9\u4E09\uF96B\u6749\u68EE\u6E17\u829F\u8518\u886B\u63F7\u6F81\u9212\u98AF\u4E0A\u50B7\u50CF\u511F\u5546\u55AA\u5617\u5B40\u5C19\u5CE0\u5E38\u5E8A\u5EA0\u5EC2\u60F3\u6851\u6A61\u6E58\u723D\u7240\u72C0\u76F8\u7965\u7BB1\u7FD4\u88F3\u89F4\u8A73\u8C61\u8CDE\u971C\u585E\u74BD\u8CFD\u55C7\uF96C\u7A61\u7D22\u8272\u7272\u751F\u7525\uF96D\u7B19\u5885\u58FB\u5DBC\u5E8F\u5EB6\u5F90\u6055\u6292\u637F\u654D\u6691\u66D9\u66F8\u6816\u68F2\u7280\u745E\u7B6E\u7D6E\u7DD6\u7F72"],["e0a1","\u80E5\u8212\u85AF\u897F\u8A93\u901D\u92E4\u9ECD\u9F20\u5915\u596D\u5E2D\u60DC\u6614\u6673\u6790\u6C50\u6DC5\u6F5F\u77F3\u78A9\u84C6\u91CB\u932B\u4ED9\u50CA\u5148\u5584\u5B0B\u5BA3\u6247\u657E\u65CB\u6E32\u717D\u7401\u7444\u7487\u74BF\u766C\u79AA\u7DDA\u7E55\u7FA8\u817A\u81B3\u8239\u861A\u87EC\u8A75\u8DE3\u9078\u9291\u9425\u994D\u9BAE\u5368\u5C51\u6954\u6CC4\u6D29\u6E2B\u820C\u859B\u893B\u8A2D\u8AAA\u96EA\u9F67\u5261\u66B9\u6BB2\u7E96\u87FE\u8D0D\u9583\u965D\u651D\u6D89\u71EE\uF96E\u57CE\u59D3\u5BAC\u6027\u60FA\u6210\u661F\u665F\u7329\u73F9\u76DB\u7701\u7B6C"],["e1a1","\u8056\u8072\u8165\u8AA0\u9192\u4E16\u52E2\u6B72\u6D17\u7A05\u7B39\u7D30\uF96F\u8CB0\u53EC\u562F\u5851\u5BB5\u5C0F\u5C11\u5DE2\u6240\u6383\u6414\u662D\u68B3\u6CBC\u6D88\u6EAF\u701F\u70A4\u71D2\u7526\u758F\u758E\u7619\u7B11\u7BE0\u7C2B\u7D20\u7D39\u852C\u856D\u8607\u8A34\u900D\u9061\u90B5\u92B7\u97F6\u9A37\u4FD7\u5C6C\u675F\u6D91\u7C9F\u7E8C\u8B16\u8D16\u901F\u5B6B\u5DFD\u640D\u84C0\u905C\u98E1\u7387\u5B8B\u609A\u677E\u6DDE\u8A1F\u8AA6\u9001\u980C\u5237\uF970\u7051\u788E\u9396\u8870\u91D7\u4FEE\u53D7\u55FD\u56DA\u5782\u58FD\u5AC2\u5B88\u5CAB\u5CC0\u5E25\u6101"],["e2a1","\u620D\u624B\u6388\u641C\u6536\u6578\u6A39\u6B8A\u6C34\u6D19\u6F31\u71E7\u72E9\u7378\u7407\u74B2\u7626\u7761\u79C0\u7A57\u7AEA\u7CB9\u7D8F\u7DAC\u7E61\u7F9E\u8129\u8331\u8490\u84DA\u85EA\u8896\u8AB0\u8B90\u8F38\u9042\u9083\u916C\u9296\u92B9\u968B\u96A7\u96A8\u96D6\u9700\u9808\u9996\u9AD3\u9B1A\u53D4\u587E\u5919\u5B70\u5BBF\u6DD1\u6F5A\u719F\u7421\u74B9\u8085\u83FD\u5DE1\u5F87\u5FAA\u6042\u65EC\u6812\u696F\u6A53\u6B89\u6D35\u6DF3\u73E3\u76FE\u77AC\u7B4D\u7D14\u8123\u821C\u8340\u84F4\u8563\u8A62\u8AC4\u9187\u931E\u9806\u99B4\u620C\u8853\u8FF0\u9265\u5D07\u5D27"],["e3a1","\u5D69\u745F\u819D\u8768\u6FD5\u62FE\u7FD2\u8936\u8972\u4E1E\u4E58\u50E7\u52DD\u5347\u627F\u6607\u7E69\u8805\u965E\u4F8D\u5319\u5636\u59CB\u5AA4\u5C38\u5C4E\u5C4D\u5E02\u5F11\u6043\u65BD\u662F\u6642\u67BE\u67F4\u731C\u77E2\u793A\u7FC5\u8494\u84CD\u8996\u8A66\u8A69\u8AE1\u8C55\u8C7A\u57F4\u5BD4\u5F0F\u606F\u62ED\u690D\u6B96\u6E5C\u7184\u7BD2\u8755\u8B58\u8EFE\u98DF\u98FE\u4F38\u4F81\u4FE1\u547B\u5A20\u5BB8\u613C\u65B0\u6668\u71FC\u7533\u795E\u7D33\u814E\u81E3\u8398\u85AA\u85CE\u8703\u8A0A\u8EAB\u8F9B\uF971\u8FC5\u5931\u5BA4\u5BE6\u6089\u5BE9\u5C0B\u5FC3\u6C81"],["e4a1","\uF972\u6DF1\u700B\u751A\u82AF\u8AF6\u4EC0\u5341\uF973\u96D9\u6C0F\u4E9E\u4FC4\u5152\u555E\u5A25\u5CE8\u6211\u7259\u82BD\u83AA\u86FE\u8859\u8A1D\u963F\u96C5\u9913\u9D09\u9D5D\u580A\u5CB3\u5DBD\u5E44\u60E1\u6115\u63E1\u6A02\u6E25\u9102\u9354\u984E\u9C10\u9F77\u5B89\u5CB8\u6309\u664F\u6848\u773C\u96C1\u978D\u9854\u9B9F\u65A1\u8B01\u8ECB\u95BC\u5535\u5CA9\u5DD6\u5EB5\u6697\u764C\u83F4\u95C7\u58D3\u62BC\u72CE\u9D28\u4EF0\u592E\u600F\u663B\u6B83\u79E7\u9D26\u5393\u54C0\u57C3\u5D16\u611B\u66D6\u6DAF\u788D\u827E\u9698\u9744\u5384\u627C\u6396\u6DB2\u7E0A\u814B\u984D"],["e5a1","\u6AFB\u7F4C\u9DAF\u9E1A\u4E5F\u503B\u51B6\u591C\u60F9\u63F6\u6930\u723A\u8036\uF974\u91CE\u5F31\uF975\uF976\u7D04\u82E5\u846F\u84BB\u85E5\u8E8D\uF977\u4F6F\uF978\uF979\u58E4\u5B43\u6059\u63DA\u6518\u656D\u6698\uF97A\u694A\u6A23\u6D0B\u7001\u716C\u75D2\u760D\u79B3\u7A70\uF97B\u7F8A\uF97C\u8944\uF97D\u8B93\u91C0\u967D\uF97E\u990A\u5704\u5FA1\u65BC\u6F01\u7600\u79A6\u8A9E\u99AD\u9B5A\u9F6C\u5104\u61B6\u6291\u6A8D\u81C6\u5043\u5830\u5F66\u7109\u8A00\u8AFA\u5B7C\u8616\u4FFA\u513C\u56B4\u5944\u63A9\u6DF9\u5DAA\u696D\u5186\u4E88\u4F59\uF97F\uF980\uF981\u5982\uF982"],["e6a1","\uF983\u6B5F\u6C5D\uF984\u74B5\u7916\uF985\u8207\u8245\u8339\u8F3F\u8F5D\uF986\u9918\uF987\uF988\uF989\u4EA6\uF98A\u57DF\u5F79\u6613\uF98B\uF98C\u75AB\u7E79\u8B6F\uF98D\u9006\u9A5B\u56A5\u5827\u59F8\u5A1F\u5BB4\uF98E\u5EF6\uF98F\uF990\u6350\u633B\uF991\u693D\u6C87\u6CBF\u6D8E\u6D93\u6DF5\u6F14\uF992\u70DF\u7136\u7159\uF993\u71C3\u71D5\uF994\u784F\u786F\uF995\u7B75\u7DE3\uF996\u7E2F\uF997\u884D\u8EDF\uF998\uF999\uF99A\u925B\uF99B\u9CF6\uF99C\uF99D\uF99E\u6085\u6D85\uF99F\u71B1\uF9A0\uF9A1\u95B1\u53AD\uF9A2\uF9A3\uF9A4\u67D3\uF9A5\u708E\u7130\u7430\u8276\u82D2"],["e7a1","\uF9A6\u95BB\u9AE5\u9E7D\u66C4\uF9A7\u71C1\u8449\uF9A8\uF9A9\u584B\uF9AA\uF9AB\u5DB8\u5F71\uF9AC\u6620\u668E\u6979\u69AE\u6C38\u6CF3\u6E36\u6F41\u6FDA\u701B\u702F\u7150\u71DF\u7370\uF9AD\u745B\uF9AE\u74D4\u76C8\u7A4E\u7E93\uF9AF\uF9B0\u82F1\u8A60\u8FCE\uF9B1\u9348\uF9B2\u9719\uF9B3\uF9B4\u4E42\u502A\uF9B5\u5208\u53E1\u66F3\u6C6D\u6FCA\u730A\u777F\u7A62\u82AE\u85DD\u8602\uF9B6\u88D4\u8A63\u8B7D\u8C6B\uF9B7\u92B3\uF9B8\u9713\u9810\u4E94\u4F0D\u4FC9\u50B2\u5348\u543E\u5433\u55DA\u5862\u58BA\u5967\u5A1B\u5BE4\u609F\uF9B9\u61CA\u6556\u65FF\u6664\u68A7\u6C5A\u6FB3"],["e8a1","\u70CF\u71AC\u7352\u7B7D\u8708\u8AA4\u9C32\u9F07\u5C4B\u6C83\u7344\u7389\u923A\u6EAB\u7465\u761F\u7A69\u7E15\u860A\u5140\u58C5\u64C1\u74EE\u7515\u7670\u7FC1\u9095\u96CD\u9954\u6E26\u74E6\u7AA9\u7AAA\u81E5\u86D9\u8778\u8A1B\u5A49\u5B8C\u5B9B\u68A1\u6900\u6D63\u73A9\u7413\u742C\u7897\u7DE9\u7FEB\u8118\u8155\u839E\u8C4C\u962E\u9811\u66F0\u5F80\u65FA\u6789\u6C6A\u738B\u502D\u5A03\u6B6A\u77EE\u5916\u5D6C\u5DCD\u7325\u754F\uF9BA\uF9BB\u50E5\u51F9\u582F\u592D\u5996\u59DA\u5BE5\uF9BC\uF9BD\u5DA2\u62D7\u6416\u6493\u64FE\uF9BE\u66DC\uF9BF\u6A48\uF9C0\u71FF\u7464\uF9C1"],["e9a1","\u7A88\u7AAF\u7E47\u7E5E\u8000\u8170\uF9C2\u87EF\u8981\u8B20\u9059\uF9C3\u9080\u9952\u617E\u6B32\u6D74\u7E1F\u8925\u8FB1\u4FD1\u50AD\u5197\u52C7\u57C7\u5889\u5BB9\u5EB8\u6142\u6995\u6D8C\u6E67\u6EB6\u7194\u7462\u7528\u752C\u8073\u8338\u84C9\u8E0A\u9394\u93DE\uF9C4\u4E8E\u4F51\u5076\u512A\u53C8\u53CB\u53F3\u5B87\u5BD3\u5C24\u611A\u6182\u65F4\u725B\u7397\u7440\u76C2\u7950\u7991\u79B9\u7D06\u7FBD\u828B\u85D5\u865E\u8FC2\u9047\u90F5\u91EA\u9685\u96E8\u96E9\u52D6\u5F67\u65ED\u6631\u682F\u715C\u7A36\u90C1\u980A\u4E91\uF9C5\u6A52\u6B9E\u6F90\u7189\u8018\u82B8\u8553"],["eaa1","\u904B\u9695\u96F2\u97FB\u851A\u9B31\u4E90\u718A\u96C4\u5143\u539F\u54E1\u5713\u5712\u57A3\u5A9B\u5AC4\u5BC3\u6028\u613F\u63F4\u6C85\u6D39\u6E72\u6E90\u7230\u733F\u7457\u82D1\u8881\u8F45\u9060\uF9C6\u9662\u9858\u9D1B\u6708\u8D8A\u925E\u4F4D\u5049\u50DE\u5371\u570D\u59D4\u5A01\u5C09\u6170\u6690\u6E2D\u7232\u744B\u7DEF\u80C3\u840E\u8466\u853F\u875F\u885B\u8918\u8B02\u9055\u97CB\u9B4F\u4E73\u4F91\u5112\u516A\uF9C7\u552F\u55A9\u5B7A\u5BA5\u5E7C\u5E7D\u5EBE\u60A0\u60DF\u6108\u6109\u63C4\u6538\u6709\uF9C8\u67D4\u67DA\uF9C9\u6961\u6962\u6CB9\u6D27\uF9CA\u6E38\uF9CB"],["eba1","\u6FE1\u7336\u7337\uF9CC\u745C\u7531\uF9CD\u7652\uF9CE\uF9CF\u7DAD\u81FE\u8438\u88D5\u8A98\u8ADB\u8AED\u8E30\u8E42\u904A\u903E\u907A\u9149\u91C9\u936E\uF9D0\uF9D1\u5809\uF9D2\u6BD3\u8089\u80B2\uF9D3\uF9D4\u5141\u596B\u5C39\uF9D5\uF9D6\u6F64\u73A7\u80E4\u8D07\uF9D7\u9217\u958F\uF9D8\uF9D9\uF9DA\uF9DB\u807F\u620E\u701C\u7D68\u878D\uF9DC\u57A0\u6069\u6147\u6BB7\u8ABE\u9280\u96B1\u4E59\u541F\u6DEB\u852D\u9670\u97F3\u98EE\u63D6\u6CE3\u9091\u51DD\u61C9\u81BA\u9DF9\u4F9D\u501A\u5100\u5B9C\u610F\u61FF\u64EC\u6905\u6BC5\u7591\u77E3\u7FA9\u8264\u858F\u87FB\u8863\u8ABC"],["eca1","\u8B70\u91AB\u4E8C\u4EE5\u4F0A\uF9DD\uF9DE\u5937\u59E8\uF9DF\u5DF2\u5F1B\u5F5B\u6021\uF9E0\uF9E1\uF9E2\uF9E3\u723E\u73E5\uF9E4\u7570\u75CD\uF9E5\u79FB\uF9E6\u800C\u8033\u8084\u82E1\u8351\uF9E7\uF9E8\u8CBD\u8CB3\u9087\uF9E9\uF9EA\u98F4\u990C\uF9EB\uF9EC\u7037\u76CA\u7FCA\u7FCC\u7FFC\u8B1A\u4EBA\u4EC1\u5203\u5370\uF9ED\u54BD\u56E0\u59FB\u5BC5\u5F15\u5FCD\u6E6E\uF9EE\uF9EF\u7D6A\u8335\uF9F0\u8693\u8A8D\uF9F1\u976D\u9777\uF9F2\uF9F3\u4E00\u4F5A\u4F7E\u58F9\u65E5\u6EA2\u9038\u93B0\u99B9\u4EFB\u58EC\u598A\u59D9\u6041\uF9F4\uF9F5\u7A14\uF9F6\u834F\u8CC3\u5165\u5344"],["eda1","\uF9F7\uF9F8\uF9F9\u4ECD\u5269\u5B55\u82BF\u4ED4\u523A\u54A8\u59C9\u59FF\u5B50\u5B57\u5B5C\u6063\u6148\u6ECB\u7099\u716E\u7386\u74F7\u75B5\u78C1\u7D2B\u8005\u81EA\u8328\u8517\u85C9\u8AEE\u8CC7\u96CC\u4F5C\u52FA\u56BC\u65AB\u6628\u707C\u70B8\u7235\u7DBD\u828D\u914C\u96C0\u9D72\u5B71\u68E7\u6B98\u6F7A\u76DE\u5C91\u66AB\u6F5B\u7BB4\u7C2A\u8836\u96DC\u4E08\u4ED7\u5320\u5834\u58BB\u58EF\u596C\u5C07\u5E33\u5E84\u5F35\u638C\u66B2\u6756\u6A1F\u6AA3\u6B0C\u6F3F\u7246\uF9FA\u7350\u748B\u7AE0\u7CA7\u8178\u81DF\u81E7\u838A\u846C\u8523\u8594\u85CF\u88DD\u8D13\u91AC\u9577"],["eea1","\u969C\u518D\u54C9\u5728\u5BB0\u624D\u6750\u683D\u6893\u6E3D\u6ED3\u707D\u7E21\u88C1\u8CA1\u8F09\u9F4B\u9F4E\u722D\u7B8F\u8ACD\u931A\u4F47\u4F4E\u5132\u5480\u59D0\u5E95\u62B5\u6775\u696E\u6A17\u6CAE\u6E1A\u72D9\u732A\u75BD\u7BB8\u7D35\u82E7\u83F9\u8457\u85F7\u8A5B\u8CAF\u8E87\u9019\u90B8\u96CE\u9F5F\u52E3\u540A\u5AE1\u5BC2\u6458\u6575\u6EF4\u72C4\uF9FB\u7684\u7A4D\u7B1B\u7C4D\u7E3E\u7FDF\u837B\u8B2B\u8CCA\u8D64\u8DE1\u8E5F\u8FEA\u8FF9\u9069\u93D1\u4F43\u4F7A\u50B3\u5168\u5178\u524D\u526A\u5861\u587C\u5960\u5C08\u5C55\u5EDB\u609B\u6230\u6813\u6BBF\u6C08\u6FB1"],["efa1","\u714E\u7420\u7530\u7538\u7551\u7672\u7B4C\u7B8B\u7BAD\u7BC6\u7E8F\u8A6E\u8F3E\u8F49\u923F\u9293\u9322\u942B\u96FB\u985A\u986B\u991E\u5207\u622A\u6298\u6D59\u7664\u7ACA\u7BC0\u7D76\u5360\u5CBE\u5E97\u6F38\u70B9\u7C98\u9711\u9B8E\u9EDE\u63A5\u647A\u8776\u4E01\u4E95\u4EAD\u505C\u5075\u5448\u59C3\u5B9A\u5E40\u5EAD\u5EF7\u5F81\u60C5\u633A\u653F\u6574\u65CC\u6676\u6678\u67FE\u6968\u6A89\u6B63\u6C40\u6DC0\u6DE8\u6E1F\u6E5E\u701E\u70A1\u738E\u73FD\u753A\u775B\u7887\u798E\u7A0B\u7A7D\u7CBE\u7D8E\u8247\u8A02\u8AEA\u8C9E\u912D\u914A\u91D8\u9266\u92CC\u9320\u9706\u9756"],["f0a1","\u975C\u9802\u9F0E\u5236\u5291\u557C\u5824\u5E1D\u5F1F\u608C\u63D0\u68AF\u6FDF\u796D\u7B2C\u81CD\u85BA\u88FD\u8AF8\u8E44\u918D\u9664\u969B\u973D\u984C\u9F4A\u4FCE\u5146\u51CB\u52A9\u5632\u5F14\u5F6B\u63AA\u64CD\u65E9\u6641\u66FA\u66F9\u671D\u689D\u68D7\u69FD\u6F15\u6F6E\u7167\u71E5\u722A\u74AA\u773A\u7956\u795A\u79DF\u7A20\u7A95\u7C97\u7CDF\u7D44\u7E70\u8087\u85FB\u86A4\u8A54\u8ABF\u8D99\u8E81\u9020\u906D\u91E3\u963B\u96D5\u9CE5\u65CF\u7C07\u8DB3\u93C3\u5B58\u5C0A\u5352\u62D9\u731D\u5027\u5B97\u5F9E\u60B0\u616B\u68D5\u6DD9\u742E\u7A2E\u7D42\u7D9C\u7E31\u816B"],["f1a1","\u8E2A\u8E35\u937E\u9418\u4F50\u5750\u5DE6\u5EA7\u632B\u7F6A\u4E3B\u4F4F\u4F8F\u505A\u59DD\u80C4\u546A\u5468\u55FE\u594F\u5B99\u5DDE\u5EDA\u665D\u6731\u67F1\u682A\u6CE8\u6D32\u6E4A\u6F8D\u70B7\u73E0\u7587\u7C4C\u7D02\u7D2C\u7DA2\u821F\u86DB\u8A3B\u8A85\u8D70\u8E8A\u8F33\u9031\u914E\u9152\u9444\u99D0\u7AF9\u7CA5\u4FCA\u5101\u51C6\u57C8\u5BEF\u5CFB\u6659\u6A3D\u6D5A\u6E96\u6FEC\u710C\u756F\u7AE3\u8822\u9021\u9075\u96CB\u99FF\u8301\u4E2D\u4EF2\u8846\u91CD\u537D\u6ADB\u696B\u6C41\u847A\u589E\u618E\u66FE\u62EF\u70DD\u7511\u75C7\u7E52\u84B8\u8B49\u8D08\u4E4B\u53EA"],["f2a1","\u54AB\u5730\u5740\u5FD7\u6301\u6307\u646F\u652F\u65E8\u667A\u679D\u67B3\u6B62\u6C60\u6C9A\u6F2C\u77E5\u7825\u7949\u7957\u7D19\u80A2\u8102\u81F3\u829D\u82B7\u8718\u8A8C\uF9FC\u8D04\u8DBE\u9072\u76F4\u7A19\u7A37\u7E54\u8077\u5507\u55D4\u5875\u632F\u6422\u6649\u664B\u686D\u699B\u6B84\u6D25\u6EB1\u73CD\u7468\u74A1\u755B\u75B9\u76E1\u771E\u778B\u79E6\u7E09\u7E1D\u81FB\u852F\u8897\u8A3A\u8CD1\u8EEB\u8FB0\u9032\u93AD\u9663\u9673\u9707\u4F84\u53F1\u59EA\u5AC9\u5E19\u684E\u74C6\u75BE\u79E9\u7A92\u81A3\u86ED\u8CEA\u8DCC\u8FED\u659F\u6715\uF9FD\u57F7\u6F57\u7DDD\u8F2F"],["f3a1","\u93F6\u96C6\u5FB5\u61F2\u6F84\u4E14\u4F98\u501F\u53C9\u55DF\u5D6F\u5DEE\u6B21\u6B64\u78CB\u7B9A\uF9FE\u8E49\u8ECA\u906E\u6349\u643E\u7740\u7A84\u932F\u947F\u9F6A\u64B0\u6FAF\u71E6\u74A8\u74DA\u7AC4\u7C12\u7E82\u7CB2\u7E98\u8B9A\u8D0A\u947D\u9910\u994C\u5239\u5BDF\u64E6\u672D\u7D2E\u50ED\u53C3\u5879\u6158\u6159\u61FA\u65AC\u7AD9\u8B92\u8B96\u5009\u5021\u5275\u5531\u5A3C\u5EE0\u5F70\u6134\u655E\u660C\u6636\u66A2\u69CD\u6EC4\u6F32\u7316\u7621\u7A93\u8139\u8259\u83D6\u84BC\u50B5\u57F0\u5BC0\u5BE8\u5F69\u63A1\u7826\u7DB5\u83DC\u8521\u91C7\u91F5\u518A\u67F5\u7B56"],["f4a1","\u8CAC\u51C4\u59BB\u60BD\u8655\u501C\uF9FF\u5254\u5C3A\u617D\u621A\u62D3\u64F2\u65A5\u6ECC\u7620\u810A\u8E60\u965F\u96BB\u4EDF\u5343\u5598\u5929\u5DDD\u64C5\u6CC9\u6DFA\u7394\u7A7F\u821B\u85A6\u8CE4\u8E10\u9077\u91E7\u95E1\u9621\u97C6\u51F8\u54F2\u5586\u5FB9\u64A4\u6F88\u7DB4\u8F1F\u8F4D\u9435\u50C9\u5C16\u6CBE\u6DFB\u751B\u77BB\u7C3D\u7C64\u8A79\u8AC2\u581E\u59BE\u5E16\u6377\u7252\u758A\u776B\u8ADC\u8CBC\u8F12\u5EF3\u6674\u6DF8\u807D\u83C1\u8ACB\u9751\u9BD6\uFA00\u5243\u66FF\u6D95\u6EEF\u7DE0\u8AE6\u902E\u905E\u9AD4\u521D\u527F\u54E8\u6194\u6284\u62DB\u68A2"],["f5a1","\u6912\u695A\u6A35\u7092\u7126\u785D\u7901\u790E\u79D2\u7A0D\u8096\u8278\u82D5\u8349\u8549\u8C82\u8D85\u9162\u918B\u91AE\u4FC3\u56D1\u71ED\u77D7\u8700\u89F8\u5BF8\u5FD6\u6751\u90A8\u53E2\u585A\u5BF5\u60A4\u6181\u6460\u7E3D\u8070\u8525\u9283\u64AE\u50AC\u5D14\u6700\u589C\u62BD\u63A8\u690E\u6978\u6A1E\u6E6B\u76BA\u79CB\u82BB\u8429\u8ACF\u8DA8\u8FFD\u9112\u914B\u919C\u9310\u9318\u939A\u96DB\u9A36\u9C0D\u4E11\u755C\u795D\u7AFA\u7B51\u7BC9\u7E2E\u84C4\u8E59\u8E74\u8EF8\u9010\u6625\u693F\u7443\u51FA\u672E\u9EDC\u5145\u5FE0\u6C96\u87F2\u885D\u8877\u60B4\u81B5\u8403"],["f6a1","\u8D05\u53D6\u5439\u5634\u5A36\u5C31\u708A\u7FE0\u805A\u8106\u81ED\u8DA3\u9189\u9A5F\u9DF2\u5074\u4EC4\u53A0\u60FB\u6E2C\u5C64\u4F88\u5024\u55E4\u5CD9\u5E5F\u6065\u6894\u6CBB\u6DC4\u71BE\u75D4\u75F4\u7661\u7A1A\u7A49\u7DC7\u7DFB\u7F6E\u81F4\u86A9\u8F1C\u96C9\u99B3\u9F52\u5247\u52C5\u98ED\u89AA\u4E03\u67D2\u6F06\u4FB5\u5BE2\u6795\u6C88\u6D78\u741B\u7827\u91DD\u937C\u87C4\u79E4\u7A31\u5FEB\u4ED6\u54A4\u553E\u58AE\u59A5\u60F0\u6253\u62D6\u6736\u6955\u8235\u9640\u99B1\u99DD\u502C\u5353\u5544\u577C\uFA01\u6258\uFA02\u64E2\u666B\u67DD\u6FC1\u6FEF\u7422\u7438\u8A17"],["f7a1","\u9438\u5451\u5606\u5766\u5F48\u619A\u6B4E\u7058\u70AD\u7DBB\u8A95\u596A\u812B\u63A2\u7708\u803D\u8CAA\u5854\u642D\u69BB\u5B95\u5E11\u6E6F\uFA03\u8569\u514C\u53F0\u592A\u6020\u614B\u6B86\u6C70\u6CF0\u7B1E\u80CE\u82D4\u8DC6\u90B0\u98B1\uFA04\u64C7\u6FA4\u6491\u6504\u514E\u5410\u571F\u8A0E\u615F\u6876\uFA05\u75DB\u7B52\u7D71\u901A\u5806\u69CC\u817F\u892A\u9000\u9839\u5078\u5957\u59AC\u6295\u900F\u9B2A\u615D\u7279\u95D6\u5761\u5A46\u5DF4\u628A\u64AD\u64FA\u6777\u6CE2\u6D3E\u722C\u7436\u7834\u7F77\u82AD\u8DDB\u9817\u5224\u5742\u677F\u7248\u74E3\u8CA9\u8FA6\u9211"],["f8a1","\u962A\u516B\u53ED\u634C\u4F69\u5504\u6096\u6557\u6C9B\u6D7F\u724C\u72FD\u7A17\u8987\u8C9D\u5F6D\u6F8E\u70F9\u81A8\u610E\u4FBF\u504F\u6241\u7247\u7BC7\u7DE8\u7FE9\u904D\u97AD\u9A19\u8CB6\u576A\u5E73\u67B0\u840D\u8A55\u5420\u5B16\u5E63\u5EE2\u5F0A\u6583\u80BA\u853D\u9589\u965B\u4F48\u5305\u530D\u530F\u5486\u54FA\u5703\u5E03\u6016\u629B\u62B1\u6355\uFA06\u6CE1\u6D66\u75B1\u7832\u80DE\u812F\u82DE\u8461\u84B2\u888D\u8912\u900B\u92EA\u98FD\u9B91\u5E45\u66B4\u66DD\u7011\u7206\uFA07\u4FF5\u527D\u5F6A\u6153\u6753\u6A19\u6F02\u74E2\u7968\u8868\u8C79\u98C7\u98C4\u9A43"],["f9a1","\u54C1\u7A1F\u6953\u8AF7\u8C4A\u98A8\u99AE\u5F7C\u62AB\u75B2\u76AE\u88AB\u907F\u9642\u5339\u5F3C\u5FC5\u6CCC\u73CC\u7562\u758B\u7B46\u82FE\u999D\u4E4F\u903C\u4E0B\u4F55\u53A6\u590F\u5EC8\u6630\u6CB3\u7455\u8377\u8766\u8CC0\u9050\u971E\u9C15\u58D1\u5B78\u8650\u8B14\u9DB4\u5BD2\u6068\u608D\u65F1\u6C57\u6F22\u6FA3\u701A\u7F55\u7FF0\u9591\u9592\u9650\u97D3\u5272\u8F44\u51FD\u542B\u54B8\u5563\u558A\u6ABB\u6DB5\u7DD8\u8266\u929C\u9677\u9E79\u5408\u54C8\u76D2\u86E4\u95A4\u95D4\u965C\u4EA2\u4F09\u59EE\u5AE6\u5DF7\u6052\u6297\u676D\u6841\u6C86\u6E2F\u7F38\u809B\u822A"],["faa1","\uFA08\uFA09\u9805\u4EA5\u5055\u54B3\u5793\u595A\u5B69\u5BB3\u61C8\u6977\u6D77\u7023\u87F9\u89E3\u8A72\u8AE7\u9082\u99ED\u9AB8\u52BE\u6838\u5016\u5E78\u674F\u8347\u884C\u4EAB\u5411\u56AE\u73E6\u9115\u97FF\u9909\u9957\u9999\u5653\u589F\u865B\u8A31\u61B2\u6AF6\u737B\u8ED2\u6B47\u96AA\u9A57\u5955\u7200\u8D6B\u9769\u4FD4\u5CF4\u5F26\u61F8\u665B\u6CEB\u70AB\u7384\u73B9\u73FE\u7729\u774D\u7D43\u7D62\u7E23\u8237\u8852\uFA0A\u8CE2\u9249\u986F\u5B51\u7A74\u8840\u9801\u5ACC\u4FE0\u5354\u593E\u5CFD\u633E\u6D79\u72F9\u8105\u8107\u83A2\u92CF\u9830\u4EA8\u5144\u5211\u578B"],["fba1","\u5F62\u6CC2\u6ECE\u7005\u7050\u70AF\u7192\u73E9\u7469\u834A\u87A2\u8861\u9008\u90A2\u93A3\u99A8\u516E\u5F57\u60E0\u6167\u66B3\u8559\u8E4A\u91AF\u978B\u4E4E\u4E92\u547C\u58D5\u58FA\u597D\u5CB5\u5F27\u6236\u6248\u660A\u6667\u6BEB\u6D69\u6DCF\u6E56\u6EF8\u6F94\u6FE0\u6FE9\u705D\u72D0\u7425\u745A\u74E0\u7693\u795C\u7CCA\u7E1E\u80E1\u82A6\u846B\u84BF\u864E\u865F\u8774\u8B77\u8C6A\u93AC\u9800\u9865\u60D1\u6216\u9177\u5A5A\u660F\u6DF7\u6E3E\u743F\u9B42\u5FFD\u60DA\u7B0F\u54C4\u5F18\u6C5E\u6CD3\u6D2A\u70D8\u7D05\u8679\u8A0C\u9D3B\u5316\u548C\u5B05\u6A3A\u706B\u7575"],["fca1","\u798D\u79BE\u82B1\u83EF\u8A71\u8B41\u8CA8\u9774\uFA0B\u64F4\u652B\u78BA\u78BB\u7A6B\u4E38\u559A\u5950\u5BA6\u5E7B\u60A3\u63DB\u6B61\u6665\u6853\u6E19\u7165\u74B0\u7D08\u9084\u9A69\u9C25\u6D3B\u6ED1\u733E\u8C41\u95CA\u51F0\u5E4C\u5FA8\u604D\u60F6\u6130\u614C\u6643\u6644\u69A5\u6CC1\u6E5F\u6EC9\u6F62\u714C\u749C\u7687\u7BC1\u7C27\u8352\u8757\u9051\u968D\u9EC3\u532F\u56DE\u5EFB\u5F8A\u6062\u6094\u61F7\u6666\u6703\u6A9C\u6DEE\u6FAE\u7070\u736A\u7E6A\u81BE\u8334\u86D4\u8AA8\u8CC4\u5283\u7372\u5B96\u6A6B\u9404\u54EE\u5686\u5B5D\u6548\u6585\u66C9\u689F\u6D8D\u6DC6"],["fda1","\u723B\u80B4\u9175\u9A4D\u4FAF\u5019\u539A\u540E\u543C\u5589\u55C5\u5E3F\u5F8C\u673D\u7166\u73DD\u9005\u52DB\u52F3\u5864\u58CE\u7104\u718F\u71FB\u85B0\u8A13\u6688\u85A8\u55A7\u6684\u714A\u8431\u5349\u5599\u6BC1\u5F59\u5FBD\u63EE\u6689\u7147\u8AF1\u8F1D\u9EBE\u4F11\u643A\u70CB\u7566\u8667\u6064\u8B4E\u9DF8\u5147\u51F6\u5308\u6D36\u80F8\u9ED1\u6615\u6B23\u7098\u75D5\u5403\u5C79\u7D07\u8A16\u6B20\u6B3D\u6B46\u5438\u6070\u6D3D\u7FD5\u8208\u50D6\u51DE\u559C\u566B\u56CD\u59EC\u5B09\u5E0C\u6199\u6198\u6231\u665E\u66E6\u7199\u71B9\u71BA\u72A7\u79A7\u7A00\u7FB2\u8A70"]]});var SS=j((j$e,JG)=>{JG.exports=[["0","\0",127],["a140","\u3000\uFF0C\u3001\u3002\uFF0E\u2027\uFF1B\uFF1A\uFF1F\uFF01\uFE30\u2026\u2025\uFE50\uFE51\uFE52\xB7\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014\uFE33\u2574\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42\u300E\u300F\uFE43\uFE44\uFE59\uFE5A"],["a1a1","\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B\xA7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3\u2105\xAF\uFFE3\uFF3F\u02CD\uFE49\uFE4A\uFE4D\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D\xD7\xF7\xB1\u221A\uFF1C\uFF1E\uFF1D\u2266\u2267\u2260\u221E\u2252\u2261\uFE62",4,"\uFF5E\u2229\u222A\u22A5\u2220\u221F\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uFF0F"],["a240","\uFF3C\u2215\uFE68\uFF04\uFFE5\u3012\uFFE0\uFFE1\uFF05\uFF20\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D\u339E\u33CE\u33A1\u338E\u338F\u33C4\xB0\u5159\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE\u2581",7,"\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595\u250C\u2510\u2514\u2518\u256D"],["a2a1","\u256E\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3\u25E5\u25E4\u2571\u2572\u2573\uFF10",9,"\u2160",9,"\u3021",8,"\u5341\u5344\u5345\uFF21",25,"\uFF41",21],["a340","\uFF57\uFF58\uFF59\uFF5A\u0391",16,"\u03A3",6,"\u03B1",16,"\u03C3",6,"\u3105",10],["a3a1","\u3110",25,"\u02D9\u02C9\u02CA\u02C7\u02CB"],["a3e1","\u20AC"],["a440","\u4E00\u4E59\u4E01\u4E03\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE\u5F0B\u5F13\u624D"],["a4a1","\u4E11\u4E10\u4E0D\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B\u72AC\u738B\u4E19"],["a540","\u4E16\u4E15\u4E14\u4E18\u4E3B\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB\u56DA\u5916"],["a5a1","\u592E\u5931\u5974\u5976\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146\u5148\u5168"],["a640","\u5171\u518D\u51B0\u5217\u5211\u5212\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76\u5E74"],["a6a1","\u5F0F\u5F1B\u5FD9\u5FD6\u620E\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46\u4F63"],["a740","\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"],["a7a1","\u5747\u574E\u573E\u5750\u574F\u573B\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"],["a840","\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093\u809D\u8098\u809B\u809A\u80B2\u826F\u8292"],["a8a1","\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475"],["a940","\u5496\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45"],["a9a1","\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606\u6602\u660E\u6600\u660F\u6615\u660A"],["aa40","\u6607\u670D\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0"],["aaa1","\u7095\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580\u961C\u9640\u963F\u963B\u9644"],["ab40","\u9642\u96B9\u96E8\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7\u54C2\u54BD\u54AA\u54C1"],["aba1","\u54C4\u54C8\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE\u62FD\u6307\u62F1\u62F7"],["ac40","\u62EF\u62EC\u62FE\u62F4\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C\u6D31\u6D1E\u6D17"],["aca1","\u6D3B\u6D3D\u6D3E\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38\u7F8E\u7FBF\u8004"],["ad40","\u8010\u800D\u8011\u8036\u80D6\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2\u8FEA\u8FE5"],["ada1","\u8FED\u8FEB\u8FE4\u8FE8\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509\u54EE\u54EA"],["ae40","\u54E6\u5527\u5507\u54FD\u550F\u5703\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90\u6059"],["aea1","\u6063\u6065\u6050\u6055\u606D\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59\u6D93"],["af40","\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"],["afa1","\u7825\u782D\u7820\u781F\u7832\u7955\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"],["b040","\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661"],["b0a1","\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40"],["b140","\u5A3C\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD"],["b1a1","\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D\u68A8\u689F\u68A1\u6882\u6B32\u6BBA"],["b240","\u6BEB\u6BEC\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403\u7406\u73FE\u740D\u74E0\u74F6"],["b2a1","\u74F7\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393\u8389\u83A0\u8377\u837B\u837C"],["b340","\u8386\u83A7\u8655\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F\u9022\u9016\u901B\u9014"],["b3a1","\u90E8\u90ED\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D\u5820\u58F9\u58FA\u5960"],["b440","\u5A77\u5A9A\u5A7F\u5A92\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9\u63C9\u63C6\u63CD"],["b4a1","\u63D2\u63E3\u63D0\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43\u6E1D\u6E3E\u6ECB"],["b540","\u6E89\u6E19\u6E4E\u6E63\u6E44\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05\u7A00\u7A98"],["b5a1","\u7A97\u7A96\u7AE5\u7AE3\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E\u8A3C\u8A41"],["b640","\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B\u9591"],["b6a1","\u9593\u9592\u958E\u968A\u968E\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD\u5ABC"],["b740","\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"],["b7a1","\u695A\u6977\u6960\u6954\u6975\u6930\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"],["b840","\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816E\u8173\u816B"],["b8a1","\u8179\u817A\u8166\u8205\u8247\u8482\u8477\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A"],["b940","\u8F9F\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811\u9813\u980A\u9812\u980C\u98FC\u98F4"],["b9a1","\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147"],["ba40","\u613F\u614B\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E\u6F20\u6F2C\u6F0F\u6F02\u6F22"],["baa1","\u6EFF\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC"],["bb40","\u7F70\u7FE0\u7FE1\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3\u8A8D\u8AA1\u8A93\u8AA4"],["bba1","\u8AAA\u8AA5\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102\u5108\u5109\u5105\u51DC"],["bc40","\u5287\u5288\u5289\u528D\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E\u615D\u6155\u6182"],["bca1","\u617C\u6170\u616B\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357\u7469\u748B\u7483"],["bd40","\u747E\u7480\u757F\u7620\u7629\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75\u7F77\u7FAF"],["bda1","\u7FE9\u8026\u819B\u819C\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A\u8F1C\u8F1E"],["be40","\u8F25\u9069\u906E\u9068\u906D\u9077\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06\u9D09"],["bea1","\u9D03\u9EA9\u9EBE\u9ECE\u58A8\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1\u6FA1"],["bf40","\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"],["bfa1","\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A"],["c040","\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121\u5132\u52F5\u568E\u5680\u5690\u5685\u5687"],["c0a1","\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC"],["c140","\u77A7\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD\u81C9\u81BE\u81E8\u8209\u8271\u85AA"],["c1a1","\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E\u97A0\u97D3\u9846\u98B6\u9935\u9A01"],["c240","\u99FF\u9BAE\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375\u74A7\u74BF\u7515\u7656\u7658"],["c2a1","\u7652\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9\u96DB\u96DE\u9724\u97A3\u97A6"],["c340","\u97AD\u97F9\u984D\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206\u720D\u7258\u72A2\u7378"],["c3a1","\u737A\u74BD\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727\u9761\u97DC\u97FB\u985E"],["c440","\u9858\u985B\u98BC\u9945\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0\u8FAE\u7E7D\u7E7C"],["c4a1","\u7E82\u7F4C\u8000\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A\u896C\u89BD\u8B74"],["c540","\u8B77\u8B7D\u8D13\u8E8A\u8E8D\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A\u766E\u766C"],["c5a1","\u79B3\u7C60\u7C5F\u807E\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862\u8B93\u8B92"],["c640","\u8B96\u8277\u8D1B\u91C0\u946A\u9742\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E\u7C72"],["c940","\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15"],["c9a1","\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B"],["ca40","\u6C4C\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A\u5454\u5445\u5419\u541C\u5425\u5418"],["caa1","\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0\u65F4\u65F3\u65F2\u65F5\u6745\u6747"],["cb40","\u6759\u6755\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290\u828F\u8285\u828E\u8291\u8293"],["cba1","\u828A\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780\u5775\u577B\u5773\u5774\u5762"],["cc40","\u5768\u577D\u590C\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D\u6026\u6019\u6032\u600B"],["cca1","\u6034\u600A\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA\u6CC3\u6CC6\u6CED\u6CF2"],["cd40","\u6CD2\u6CDD\u6CB4\u6C8A\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC\u77F9\u77FB\u77FA"],["cda1","\u77F7\u7942\u793F\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1\u54AD\u54A5\u54CF"],["ce40","\u54C3\u830D\u54B7\u54AE\u54D6\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7\u5CCB\u5CDB"],["cea1","\u5CDE\u5CDA\u5CC9\u5CC7\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2\u67C8\u67BA"],["cf40","\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D\u6D42"],["cfa1","\u6D01\u6D18\u6D37\u6D03\u6D0F\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE\u7A80"],["d040","\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"],["d0a1","\u82E4\u82E0\u82FA\u82F3\u82ED\u8677\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1"],["d140","\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067"],["d1a1","\u6041\u60A2\u6088\u6080\u6092\u6081\u609D\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4"],["d240","\u6BE8\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6\u70C7\u70DA\u70CE\u70E1\u7242\u7278"],["d2a1","\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10"],["d340","\u7B04\u7B13\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356\u833F\u8341\u8326\u831C\u8322"],["d3a1","\u8342\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8\u90DB\u90D7\u90DC\u90E4\u9150"],["d440","\u914E\u914F\u91D5\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536\u5535\u5530\u5552\u5545"],["d4a1","\u550C\u5532\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28\u5D0D\u5D26\u5D25\u5D0F"],["d540","\u5D30\u5D12\u5D23\u5D1F\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C\u63A4\u633B\u639F"],["d5a1","\u6378\u6385\u6381\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5\u6DC2\u6DCF\u6DC9"],["d640","\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE\u75D2\u75CF"],["d6a1","\u75CB\u75CC\u75D1\u75D0\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF\u7FC9\u801F"],["d740","\u801E\u801B\u8047\u8043\u8048\u8118\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF\u86B7"],["d7a1","\u86C2\u86C1\u86C5\u86BA\u86B0\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9\u91EA"],["d840","\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"],["d8a1","\u5819\u581E\u5827\u5823\u5828\u57F5\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"],["d940","\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2"],["d9a1","\u667C\u666C\u667B\u6680\u6671\u6679\u666A\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E"],["da40","\u6E68\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335\u730C\u742E\u742C\u7430\u742B\u7416"],["daa1","\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65"],["db40","\u7F66\u7FA2\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F\u83DE\u8411\u8406\u83C2\u83F3"],["dba1","\u83D5\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA"],["dc40","\u8EF9\u8EE6\u8EEE\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C\u9590\u9687\u967E\u9688"],["dca1","\u9689\u9683\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0\u5ABF\u5AC8\u5ABB\u5AC6"],["dd40","\u5AB7\u5AC0\u5ACA\u5AB4\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412\u6409\u6420\u6424"],["dda1","\u6433\u6443\u641F\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B\uFA0D\u6BFB\u6BFC"],["de40","\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F\u7150\u7153"],["dea1","\u7144\u714D\u715A\u724F\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15\u7A22\u7A13"],["df40","\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167\u816F"],["dfa1","\u8144\u8161\u821D\u8249\u8244\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5\u89E4"],["e040","\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"],["e0a1","\u9044\u9049\u903D\u9110\u910D\u910F\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0"],["e140","\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0"],["e1a1","\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9"],["e240","\u69A0\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A"],["e2a1","\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998\u798A\u798B\u7996\u7995\u7994\u7993"],["e340","\u7997\u7988\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9\u7F73\u7FE2\u7FE3\u7FE5\u7FDE"],["e3a1","\u8024\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA\u88FE\u88EE\u88FC\u88F6\u88FB"],["e440","\u88F0\u88EC\u88EB\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A\u92A0\u9294\u92AA\u928D"],["e4a1","\u92A6\u929A\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641\u564A\u5649\u5646\u5658"],["e540","\u565A\u5640\u5633\u563D\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1\u61B0\u61A2\u6189"],["e5a1","\u619B\u6193\u61AF\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E\u6F87\u6FC6\u6F92"],["e640","\u6F8D\u6F89\u6F8C\u6F62\u6F4F\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361\u735A\u7359"],["e6a1","\u7362\u7487\u7489\u748A\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067\u81A3\u819F"],["e740","\u819E\u8195\u81A2\u8199\u8197\u8216\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F\u8662"],["e7a1","\u8756\u8763\u8764\u8777\u87E1\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26\u8E27"],["e840","\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"],["e8a1","\u92B5\u92E1\u92C6\u92B4\u957C\u95AC\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"],["e940","\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA"],["e9a1","\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8"],["ea40","\u6FA2\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1\u779C\u779B\u77A2\u77A3\u7795\u7799"],["eaa1","\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556\u8545\u856B\u854D\u8553\u8561\u8558"],["eb40","\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923\u892F\u892C\u891F\u89F1\u8AE0"],["eba1","\u8AE2\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329\u9339\u9335\u932A\u9314\u930C"],["ec40","\u930B\u92FE\u9309\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93\u9B92\u9B90\u9B7A\u9B95"],["eca1","\u9B7D\u9B88\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1\u6A9E\u6A87\u6A93\u6A8E"],["ed40","\u6A95\u6A83\u6AA8\u6AA4\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB\u77B2\u77B7\u77B6"],["eda1","\u77B4\u77B1\u77A8\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B\u85A4\u859A\u859E"],["ee40","\u8577\u857C\u8589\u85A1\u857A\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2\u89F3\u8B1E"],["eea1","\u8B18\u8B16\u8B11\u8B05\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A\u97A1\u979C"],["ef40","\u979E\u979D\u97D5\u97D4\u97F1\u9841\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38\u9D30"],["efa1","\u9D45\u9D42\u9D43\u9D3E\u9D37\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD\u7376"],["f040","\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"],["f0a1","\u81D0\u825F\u825E\u85B4\u85C6\u85C0\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67"],["f140","\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA"],["f1a1","\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70"],["f240","\u5FBF\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660\u77C9\u77CA\u77C4\u77F1\u791D\u791B"],["f2a1","\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55"],["f340","\u8B51\u8B42\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1\u9729\u972B\u972C\u9728\u9726"],["f3a1","\u97B3\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D\u9F56\u9F57\u9F58\u5337\u56B2"],["f440","\u56B5\u56B3\u58E3\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923\u7927\u7928\u7924\u7929"],["f4a1","\u79B2\u7A6E\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA\u9409\u93F8\u940A\u93FF"],["f540","\u93FC\u940C\u93F6\u9411\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92\u9D98\u9D90\u9D9B"],["f5a1","\u9DA0\u9D94\u9D9C\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620\u8629\u861E\u8625"],["f640","\u8829\u881D\u881B\u8820\u8824\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42\u9A41\u9A3A"],["f6a1","\u9A3F\u9ACD\u9B15\u9B17\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59\u7C5B\u7C5A"],["f740","\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48\u9A4A"],["f7a1","\u9A49\u9A52\u9A50\u9AD0\u9B19\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973\u89FE"],["f840","\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"],["f8a1","\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"],["f940","\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A"],["f9a1","\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570\u256F\u2593"]]});var UC=j((A$e,XG)=>{XG.exports=[["8740","\u43F0\u4C32\u4603\u45A6\u4578\u{27267}\u4D77\u45B3\u{27CB1}\u4CE2\u{27CC5}\u3B95\u4736\u4744\u4C47\u4C40\u{242BF}\u{23617}\u{27352}\u{26E8B}\u{270D2}\u4C57\u{2A351}\u474F\u45DA\u4C85\u{27C6C}\u4D07\u4AA4\u46A1\u{26B23}\u7225\u{25A54}\u{21A63}\u{23E06}\u{23F61}\u664D\u56FB"],["8767","\u7D95\u591D\u{28BB9}\u3DF4\u9734\u{27BEF}\u5BDB\u{21D5E}\u5AA4\u3625\u{29EB0}\u5AD1\u5BB7\u5CFC\u676E\u8593\u{29945}\u7461\u749D\u3875\u{21D53}\u{2369E}\u{26021}\u3EEC"],["87a1","\u{258DE}\u3AF5\u7AFC\u9F97\u{24161}\u{2890D}\u{231EA}\u{20A8A}\u{2325E}\u430A\u8484\u9F96\u942F\u4930\u8613\u5896\u974A\u9218\u79D0\u7A32\u6660\u6A29\u889D\u744C\u7BC5\u6782\u7A2C\u524F\u9046\u34E6\u73C4\u{25DB9}\u74C6\u9FC7\u57B3\u492F\u544C\u4131\u{2368E}\u5818\u7A72\u{27B65}\u8B8F\u46AE\u{26E88}\u4181\u{25D99}\u7BAE\u{224BC}\u9FC8\u{224C1}\u{224C9}\u{224CC}\u9FC9\u8504\u{235BB}\u40B4\u9FCA\u44E1\u{2ADFF}\u62C1\u706E\u9FCB"],["8840","\u31C0",4,"\u{2010C}\u31C5\u{200D1}\u{200CD}\u31C6\u31C7\u{200CB}\u{21FE8}\u31C8\u{200CA}\u31C9\u31CA\u31CB\u31CC\u{2010E}\u31CD\u31CE\u0100\xC1\u01CD\xC0\u0112\xC9\u011A\xC8\u014C\xD3\u01D1\xD2\u0FFF\xCA\u0304\u1EBE\u0FFF\xCA\u030C\u1EC0\xCA\u0101\xE1\u01CE\xE0\u0251\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA"],["88a1","\u01DC\xFC\u0FFF\xEA\u0304\u1EBF\u0FFF\xEA\u030C\u1EC1\xEA\u0261\u23DA\u23DB"],["8940","\u{2A3A9}\u{21145}"],["8943","\u650A"],["8946","\u4E3D\u6EDD\u9D4E\u91DF"],["894c","\u{27735}\u6491\u4F1A\u4F28\u4FA8\u5156\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6\u8BBE\u8BE2\u8F66\u8F67\u8F6E"],["89a1","\u7411\u7CFC\u7DCD\u6946\u7AC9\u5227"],["89ab","\u918C\u78B8\u915E\u80BC"],["89b0","\u8D0B\u80F6\u{209E7}"],["89b5","\u809F\u9EC7\u4CCD\u9DC9\u9E0C\u4C3E\u{29DF6}\u{2700E}\u9E0A\u{2A133}\u35C1"],["89c1","\u6E9A\u823E\u7519"],["89c5","\u4911\u9A6C\u9A8F\u9F99\u7987\u{2846C}\u{21DCA}\u{205D0}\u{22AE6}\u4E24\u4E81\u4E80\u4E87\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598\u553F\u35A5\u35BF\u55D7\u35C5"],["8a40","\u{27D84}\u5525"],["8a43","\u{20C42}\u{20D15}\u{2512B}\u5590\u{22CC6}\u39EC\u{20341}\u8E46\u{24DB8}\u{294E5}\u4053\u{280BE}\u777A\u{22C38}\u3A34\u47D5\u{2815D}\u{269F2}\u{24DEA}\u64DD\u{20D7C}\u{20FB4}\u{20CD5}\u{210F4}\u648D\u8E7E\u{20E96}\u{20C0B}\u{20F64}\u{22CA9}\u{28256}\u{244D3}"],["8a64","\u{20D46}\u{29A4D}\u{280E9}\u47F4\u{24EA7}\u{22CC2}\u9AB2\u3A67\u{295F4}\u3FED\u3506\u{252C7}\u{297D4}\u{278C8}\u{22D44}\u9D6E\u9815"],["8a76","\u43D9\u{260A5}\u64B4\u54E3\u{22D4C}\u{22BCA}\u{21077}\u39FB\u{2106F}"],["8aa1","\u{266DA}\u{26716}\u{279A0}\u64EA\u{25052}\u{20C43}\u8E68\u{221A1}\u{28B4C}\u{20731}"],["8aac","\u480B\u{201A9}\u3FFA\u5873\u{22D8D}"],["8ab2","\u{245C8}\u{204FC}\u{26097}\u{20F4C}\u{20D96}\u5579\u40BB\u43BA"],["8abb","\u4AB4\u{22A66}\u{2109D}\u81AA\u98F5\u{20D9C}\u6379\u39FE\u{22775}\u8DC0\u56A1\u647C\u3E43"],["8ac9","\u{2A601}\u{20E09}\u{22ACF}\u{22CC9}"],["8ace","\u{210C8}\u{239C2}\u3992\u3A06\u{2829B}\u3578\u{25E49}\u{220C7}\u5652\u{20F31}\u{22CB2}\u{29720}\u34BC\u6C3D\u{24E3B}"],["8adf","\u{27574}\u{22E8B}\u{22208}\u{2A65B}\u{28CCD}\u{20E7A}\u{20C34}\u{2681C}\u7F93\u{210CF}\u{22803}\u{22939}\u35FB\u{251E3}\u{20E8C}\u{20F8D}\u{20EAA}\u3F93\u{20F30}\u{20D47}\u{2114F}\u{20E4C}"],["8af6","\u{20EAB}\u{20BA9}\u{20D48}\u{210C0}\u{2113D}\u3FF9\u{22696}\u6432\u{20FAD}"],["8b40","\u{233F4}\u{27639}\u{22BCE}\u{20D7E}\u{20D7F}\u{22C51}\u{22C55}\u3A18\u{20E98}\u{210C7}\u{20F2E}\u{2A632}\u{26B50}\u{28CD2}\u{28D99}\u{28CCA}\u95AA\u54CC\u82C4\u55B9"],["8b55","\u{29EC3}\u9C26\u9AB6\u{2775E}\u{22DEE}\u7140\u816D\u80EC\u5C1C\u{26572}\u8134\u3797\u535F\u{280BD}\u91B6\u{20EFA}\u{20E0F}\u{20E77}\u{20EFB}\u35DD\u{24DEB}\u3609\u{20CD6}\u56AF\u{227B5}\u{210C9}\u{20E10}\u{20E78}\u{21078}\u{21148}\u{28207}\u{21455}\u{20E79}\u{24E50}\u{22DA4}\u5A54\u{2101D}\u{2101E}\u{210F5}\u{210F6}\u579C\u{20E11}"],["8ba1","\u{27694}\u{282CD}\u{20FB5}\u{20E7B}\u{2517E}\u3703\u{20FB6}\u{21180}\u{252D8}\u{2A2BD}\u{249DA}\u{2183A}\u{24177}\u{2827C}\u5899\u5268\u361A\u{2573D}\u7BB2\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\u{25B74}\u{2313D}\u55FB\u35F2\u5689\u4E28\u5902\u{21BC1}\u{2F878}\u9751\u{20086}\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B\u4E2C\u72AD\u{248E9}\u7F52\u793B\u7CF9\u7F53\u{2626A}\u34C1"],["8bde","\u{2634B}\u8002\u8080\u{26612}\u{26951}\u535D\u8864\u89C1\u{278B2}\u8BA0\u8D1D\u9485\u9578\u957F\u95E8\u{28E0F}\u97E6\u9875\u98CE\u98DE\u9963\u{29810}\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\u{20087}\u961D\u6237\u94A2"],["8c40","\u503B\u6DFE\u{29C73}\u9FA6\u3DC9\u888F\u{2414E}\u7077\u5CF5\u4B20\u{251CD}\u3559\u{25D30}\u6122\u{28A32}\u8FA7\u91F6\u7191\u6719\u73BA\u{23281}\u{2A107}\u3C8B\u{21980}\u4B10\u78E4\u7402\u51AE\u{2870F}\u4009\u6A63\u{2A2BA}\u4223\u860F\u{20A6F}\u7A2A\u{29947}\u{28AEA}\u9755\u704D\u5324\u{2207E}\u93F4\u76D9\u{289E3}\u9FA7\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\u9FA8\u5434\u7D8B\u5892\u58D0\u{21DB6}\u5E92\u5E99\u5FC2\u{22712}\u658B"],["8ca1","\u{233F9}\u6919\u6A43\u{23C63}\u6CFF"],["8ca7","\u7200\u{24505}\u738C\u3EDB\u{24A13}\u5B15\u74B9\u8B83\u{25CA4}\u{25695}\u7A93\u7BEC\u7CC3\u7E6C\u82F8\u8597\u9FA9\u8890\u9FAA\u8EB9\u9FAB\u8FCF\u855F\u99E0\u9221\u9FAC\u{28DB9}\u{2143F}\u4071\u42A2\u5A1A"],["8cc9","\u9868\u676B\u4276\u573D"],["8cce","\u85D6\u{2497B}\u82BF\u{2710D}\u4C81\u{26D74}\u5D7B\u{26B15}\u{26FBE}\u9FAD\u9FAE\u5B96\u9FAF\u66E7\u7E5B\u6E57\u79CA\u3D88\u44C3\u{23256}\u{22796}\u439A\u4536"],["8ce6","\u5CD5\u{23B1A}\u8AF9\u5C78\u3D12\u{23551}\u5D78\u9FB2\u7157\u4558\u{240EC}\u{21E23}\u4C77\u3978\u344A\u{201A4}\u{26C41}\u8ACC\u4FB4\u{20239}\u59BF\u816C\u9856\u{298FA}\u5F3B"],["8d40","\u{20B9F}"],["8d42","\u{221C1}\u{2896D}\u4102\u46BB\u{29079}\u3F07\u9FB3\u{2A1B5}\u40F8\u37D6\u46F7\u{26C46}\u417C\u{286B2}\u{273FF}\u456D\u38D4\u{2549A}\u4561\u451B\u4D89\u4C7B\u4D76\u45EA\u3FC8\u{24B0F}\u3661\u44DE\u44BD\u41ED\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8\u56B1"],["8da1","\u3A03\u63E2\u63FB\u6407\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1\u6E15\u6E18\u6E29\u6E86\u{289C0}\u6EBB\u6EE2\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\u{23F41}\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91\u7050\u7054\u706F\u707F\u7089\u{20325}\u43C1\u35F1\u{20ED8}"],["8e40","\u{23ED7}\u57BE\u{26ED3}\u713E\u{257E0}\u364E\u69A2\u{28BE9}\u5B74\u7A49\u{258E1}\u{294D9}\u7A65\u7A7D\u{259AC}\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\u{2648D}\u41CA\u7ADA\u7ADD\u7AEA\u41EF\u54B2\u{25C01}\u7B0B\u7B55\u7B29\u{2530E}\u{25CFE}\u7BA2\u7B6F\u839C\u{25BB4}\u{26C7F}\u7BD0\u8421\u7B92\u7BB8\u{25D20}\u3DAD\u{25C65}\u8492\u7BFA\u7C06\u7C35\u{25CC1}\u7C44\u7C83\u{24882}\u7CA6\u667D\u{24578}\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\u7CCE"],["8ea1","\u7E67\u451D\u{26E44}\u7D5D\u{26ED6}\u748D\u7D89\u7DAB\u7135\u7DB3\u7DD2\u{24057}\u{26029}\u7DE4\u3D13\u7DF5\u{217F9}\u7DE5\u{2836D}\u7E1D\u{26121}\u{2615A}\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47\u7936\u{262D0}\u99E1\u7F97\u{26351}\u7FA3\u{21661}\u{20068}\u455C\u{23766}\u4503\u{2833A}\u7FFA\u{26489}\u8005\u8008\u801D\u8028\u802F\u{2A087}\u{26CC3}\u803B\u803C\u8061\u{22714}\u4989\u{26626}\u{23DE3}\u{266E8}\u6725\u80A7\u{28A48}\u8107\u811A\u58B0\u{226F6}\u6C7F\u{26498}\u{24FB8}\u64E7\u{2148A}\u8218\u{2185E}\u6A53\u{24A65}\u{24A95}\u447A\u8229\u{20B0D}\u{26A52}\u{23D7E}\u4FF9\u{214FD}\u84E2\u8362\u{26B0A}\u{249A7}\u{23530}\u{21773}\u{23DF8}\u82AA\u691B\u{2F994}\u41DB"],["8f40","\u854B\u82D0\u831A\u{20E16}\u{217B4}\u36C1\u{2317D}\u{2355A}\u827B\u82E2\u8318\u{23E8B}\u{26DA3}\u{26B05}\u{26B97}\u{235CE}\u3DBF\u831D\u55EC\u8385\u450B\u{26DA5}\u83AC\u83C1\u83D3\u347E\u{26ED4}\u6A57\u855A\u3496\u{26E42}\u{22EEF}\u8458\u{25BE4}\u8471\u3DD3\u44E4\u6AA7\u844A\u{23CB5}\u7958\u84A8\u{26B96}\u{26E77}\u{26E43}\u84DE\u840F\u8391\u44A0\u8493\u84E4\u{25C91}\u4240\u{25CC0}\u4543\u8534\u5AF2\u{26E99}\u4527\u8573\u4516\u67BF\u8616"],["8fa1","\u{28625}\u{2863B}\u85C1\u{27088}\u8602\u{21582}\u{270CD}\u{2F9B2}\u456A\u8628\u3648\u{218A2}\u53F7\u{2739A}\u867E\u8771\u{2A0F8}\u87EE\u{22C27}\u87B1\u87DA\u880F\u5661\u866C\u6856\u460F\u8845\u8846\u{275E0}\u{23DB9}\u{275E4}\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777\u{2770F}\u8987\u898A\u89A6\u89A9\u89A7\u89BC\u{28A25}\u89E7\u{27924}\u{27ABD}\u8A9C\u7793\u91FE\u8A90\u{27A59}\u7AE9\u{27B3A}\u{23F8F}\u4713\u{27B38}\u717C\u8B0C\u8B1F\u{25430}\u{25565}\u8B3F\u8B4C\u8B4D\u8AA9\u{24A7A}\u8B90\u8B9B\u8AAF\u{216DF}\u4615\u884F\u8C9B\u{27D54}\u{27D8F}\u{2F9D4}\u3725\u{27D53}\u8CD6\u{27D98}\u{27DBD}\u8D12\u8D03\u{21910}\u8CDB\u705C\u8D11\u{24CC9}\u3ED0\u8D77"],["9040","\u8DA9\u{28002}\u{21014}\u{2498A}\u3B7C\u{281BC}\u{2710C}\u7AE7\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\u{28365}\u{28412}\u8FA5\u9303\u{2A29F}\u{20A50}\u8FB3\u492A\u{289DE}\u{2853D}\u{23DBB}\u5EF8\u{23262}\u8FF9\u{2A014}\u{286BC}\u{28501}\u{22325}\u3980\u{26ED7}\u9037\u{2853C}\u{27ABE}\u9061\u{2856C}\u{2860B}\u90A8\u{28713}\u90C4\u{286E6}\u90AE\u90FD\u9167\u3AF0\u91A9\u91C4\u7CAC\u{28933}\u{21E89}\u920E\u6C9F\u9241\u9262\u{255B9}\u92B9\u{28AC6}\u{23C9B}\u{28B0C}\u{255DB}"],["90a1","\u{20D31}\u932C\u936B\u{28AE1}\u{28BEB}\u708F\u5AC3\u{28AE2}\u{28AE5}\u4965\u9244\u{28BEC}\u{28C39}\u{28BFF}\u9373\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\u{2267A}\u{286D8}\u{2127C}\u{23E2E}\u49DF\u6C1C\u967B\u9696\u416C\u96A3\u{26ED5}\u61DA\u96B6\u78F5\u{28AE0}\u96BD\u53CC\u49A1\u{26CB8}\u{20274}\u{26410}\u{290AF}\u{290E5}\u{24AD1}\u{21915}\u{2330A}\u9731\u8642\u9736\u4A0F\u453D\u4585\u{24AE9}\u7075\u5B41\u971B\u975C\u{291D5}\u9757\u5B4A\u{291EB}\u975F\u9425\u50D0\u{230B7}\u{230BC}\u9789\u979F\u97B1\u97BE\u97C0\u97D2\u97E0\u{2546C}\u97EE\u741C\u{29433}\u97FF\u97F5\u{2941D}\u{2797A}\u4AD1\u9834\u9833\u984B\u9866\u3B0E\u{27175}\u3D51\u{20630}\u{2415C}"],["9140","\u{25706}\u98CA\u98B7\u98C8\u98C7\u4AFF\u{26D27}\u{216D3}\u55B0\u98E1\u98E6\u98EC\u9378\u9939\u{24A29}\u4B72\u{29857}\u{29905}\u99F5\u9A0C\u9A3B\u9A10\u9A58\u{25725}\u36C4\u{290B1}\u{29BD5}\u9AE0\u9AE2\u{29B05}\u9AF4\u4C0E\u9B14\u9B2D\u{28600}\u5034\u9B34\u{269A8}\u38C3\u{2307D}\u9B50\u9B40\u{29D3E}\u5A45\u{21863}\u9B8E\u{2424B}\u9C02\u9BFF\u9C0C\u{29E68}\u9DD4\u{29FB7}\u{2A192}\u{2A1AB}\u{2A0E1}\u{2A123}\u{2A1DF}\u9D7E\u9D83\u{2A134}\u9E0E\u6888"],["91a1","\u9DC4\u{2215B}\u{2A193}\u{2A220}\u{2193B}\u{2A233}\u9D39\u{2A0B9}\u{2A2B4}\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\u{24364}\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\u{28C2B}\u9F02\u9F08\u4B96\u9424\u{26DA2}\u9F17\u9F16\u9F39\u569F\u568A\u9F45\u99B8\u{2908B}\u97F2\u847F\u9F62\u9F69\u7ADC\u9F8E\u7216\u4BBE\u{24975}\u{249BB}\u7177\u{249F8}\u{24348}\u{24A51}\u739E\u{28BDA}\u{218FA}\u799F\u{2897E}\u{28E36}\u9369\u93F3\u{28A44}\u92EC\u9381\u93CB\u{2896C}\u{244B9}\u7217\u3EEB\u7772\u7A43\u70D0\u{24473}\u{243F8}\u717E\u{217EF}\u70A3\u{218BE}\u{23599}\u3EC7\u{21885}\u{2542F}\u{217F8}\u3722\u{216FB}\u{21839}\u36E1\u{21774}\u{218D1}\u{25F4B}\u3723\u{216C0}\u575B\u{24A25}\u{213FE}\u{212A8}"],["9240","\u{213C6}\u{214B6}\u8503\u{236A6}\u8503\u8455\u{24994}\u{27165}\u{23E31}\u{2555C}\u{23EFB}\u{27052}\u44F4\u{236EE}\u{2999D}\u{26F26}\u67F9\u3733\u3C15\u3DE7\u586C\u{21922}\u6810\u4057\u{2373F}\u{240E1}\u{2408B}\u{2410F}\u{26C21}\u54CB\u569E\u{266B1}\u5692\u{20FDF}\u{20BA8}\u{20E0D}\u93C6\u{28B13}\u939C\u4EF8\u512B\u3819\u{24436}\u4EBC\u{20465}\u{2037F}\u4F4B\u4F8A\u{25651}\u5A68\u{201AB}\u{203CB}\u3999\u{2030A}\u{20414}\u3435\u4F29\u{202C0}\u{28EB3}\u{20275}\u8ADA\u{2020C}\u4E98"],["92a1","\u50CD\u510D\u4FA2\u4F03\u{24A0E}\u{23E8A}\u4F42\u502E\u506C\u5081\u4FCC\u4FE5\u5058\u50FC\u5159\u515B\u515D\u515E\u6E76\u{23595}\u{23E39}\u{23EBF}\u6D72\u{21884}\u{23E89}\u51A8\u51C3\u{205E0}\u44DD\u{204A3}\u{20492}\u{20491}\u8D7A\u{28A9C}\u{2070E}\u5259\u52A4\u{20873}\u52E1\u936E\u467A\u718C\u{2438C}\u{20C20}\u{249AC}\u{210E4}\u69D1\u{20E1D}\u7479\u3EDE\u7499\u7414\u7456\u7398\u4B8E\u{24ABC}\u{2408D}\u53D0\u3584\u720F\u{240C9}\u55B4\u{20345}\u54CD\u{20BC6}\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB\u5A99\u{28A46}\u{216FA}\u{2176F}\u{21710}\u5A2C\u59B8\u928F\u5A7E\u5ACF\u5A12\u{25946}\u{219F3}\u{21861}\u{24295}\u36F5\u6D05\u7443\u5A21\u{25E83}"],["9340","\u5A81\u{28BD7}\u{20413}\u93E0\u748C\u{21303}\u7105\u4972\u9408\u{289FB}\u93BD\u37A0\u5C1E\u5C9E\u5E5E\u5E48\u{21996}\u{2197C}\u{23AEE}\u5ECD\u5B4F\u{21903}\u{21904}\u3701\u{218A0}\u36DD\u{216FE}\u36D3\u812A\u{28A47}\u{21DBA}\u{23472}\u{289A8}\u5F0C\u5F0E\u{21927}\u{217AB}\u5A6B\u{2173B}\u5B44\u8614\u{275FD}\u8860\u607E\u{22860}\u{2262B}\u5FDB\u3EB8\u{225AF}\u{225BE}\u{29088}\u{26F73}\u61C0\u{2003E}\u{20046}\u{2261B}\u6199\u6198\u6075\u{22C9B}\u{22D07}\u{246D4}\u{2914D}"],["93a1","\u6471\u{24665}\u{22B6A}\u3A29\u{22B22}\u{23450}\u{298EA}\u{22E78}\u6337\u{2A45B}\u64B6\u6331\u63D1\u{249E3}\u{22D67}\u62A4\u{22CA1}\u643B\u656B\u6972\u3BF4\u{2308E}\u{232AD}\u{24989}\u{232AB}\u550D\u{232E0}\u{218D9}\u{2943F}\u66CE\u{23289}\u{231B3}\u3AE0\u4190\u{25584}\u{28B22}\u{2558F}\u{216FC}\u{2555B}\u{25425}\u78EE\u{23103}\u{2182A}\u{23234}\u3464\u{2320F}\u{23182}\u{242C9}\u668E\u{26D24}\u666B\u4B93\u6630\u{27870}\u{21DEB}\u6663\u{232D2}\u{232E1}\u661E\u{25872}\u38D1\u{2383A}\u{237BC}\u3B99\u{237A2}\u{233FE}\u74D0\u3B96\u678F\u{2462A}\u68B6\u681E\u3BC4\u6ABE\u3863\u{237D5}\u{24487}\u6A33\u6A52\u6AC9\u6B05\u{21912}\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\u{23FC0}\u{23C9A}\u93A0\u92F2\u{28BEA}\u{28ACB}"],["9440","\u9289\u{2801E}\u{289DC}\u9467\u6DA5\u6F0B\u{249EC}\u6D67\u{23F7F}\u3D8F\u6E04\u{2403C}\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\u{2431A}\u{24276}\u70F1\u7250\u7287\u7294\u{2478F}\u{24725}\u5179\u{24AA4}\u{205EB}\u747A\u{23EF8}\u{2365F}\u{24A4A}\u{24917}\u{25FE1}\u3F06\u3EB1\u{24ADF}\u{28C23}\u{23F35}\u60A7\u3EF3\u74CC\u743C\u9387\u7437\u449F\u{26DEA}\u4551\u7583\u3F63\u{24CD9}\u{24D06}\u3F58\u7555\u7673\u{2A5C6}\u3B19\u7468\u{28ACC}\u{249AB}\u{2498E}\u3AFB"],["94a1","\u3DCD\u{24A4E}\u3EFF\u{249C5}\u{248F3}\u91FA\u5732\u9342\u{28AE3}\u{21864}\u50DF\u{25221}\u{251E7}\u7778\u{23232}\u770E\u770F\u777B\u{24697}\u{23781}\u3A5E\u{248F0}\u7438\u749B\u3EBF\u{24ABA}\u{24AC7}\u40C8\u{24A96}\u{261AE}\u9307\u{25581}\u781E\u788D\u7888\u78D2\u73D0\u7959\u{27741}\u{256E3}\u410E\u799B\u8496\u79A5\u6A2D\u{23EFA}\u7A3A\u79F4\u416E\u{216E6}\u4132\u9235\u79F1\u{20D4C}\u{2498C}\u{20299}\u{23DBA}\u{2176E}\u3597\u556B\u3570\u36AA\u{201D4}\u{20C0D}\u7AE2\u5A59\u{226F5}\u{25AAF}\u{25A9C}\u5A0D\u{2025B}\u78F0\u5A2A\u{25BC6}\u7AFE\u41F9\u7C5D\u7C6D\u4211\u{25BB3}\u{25EBC}\u{25EA6}\u7CCD\u{249F9}\u{217B0}\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3\u7F4E\u{26261}"],["9540","\u{2615C}\u{27B48}\u7D97\u{25E82}\u426A\u{26B75}\u{20916}\u67D6\u{2004E}\u{235CF}\u57C4\u{26412}\u{263F8}\u{24962}\u7FDD\u7B27\u{2082C}\u{25AE9}\u{25D43}\u7B0C\u{25E0E}\u99E6\u8645\u9A63\u6A1C\u{2343F}\u39E2\u{249F7}\u{265AD}\u9A1F\u{265A0}\u8480\u{27127}\u{26CD1}\u44EA\u8137\u4402\u80C6\u8109\u8142\u{267B4}\u98C3\u{26A42}\u8262\u8265\u{26A51}\u8453\u{26DA7}\u8610\u{2721B}\u5A86\u417F\u{21840}\u5B2B\u{218A1}\u5AE4\u{218D8}\u86A0\u{2F9BC}\u{23D8F}\u882D\u{27422}\u5A02"],["95a1","\u886E\u4F45\u8887\u88BF\u88E6\u8965\u894D\u{25683}\u8954\u{27785}\u{27784}\u{28BF5}\u{28BD9}\u{28B9C}\u{289F9}\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D\u8A1C\u{29448}\u5F4D\u922B\u{24284}\u65D4\u7129\u70C4\u{21845}\u9D6D\u8C9F\u8CE9\u{27DDC}\u599A\u77C3\u59F0\u436E\u36D4\u8E2A\u8EA7\u{24C09}\u8F30\u8F4A\u42F4\u6C58\u6FBB\u{22321}\u489B\u6F79\u6E8B\u{217DA}\u9BE9\u36B5\u{2492F}\u90BB\u9097\u5571\u4906\u91BB\u9404\u{28A4B}\u4062\u{28AFC}\u9427\u{28C1D}\u{28C3B}\u84E5\u8A2B\u9599\u95A7\u9597\u9596\u{28D34}\u7445\u3EC2\u{248FF}\u{24A42}\u{243EA}\u3EE7\u{23225}\u968F\u{28EE7}\u{28E66}\u{28E65}\u3ECC\u{249ED}\u{24A78}\u{23FEE}\u7412\u746B\u3EFC\u9741\u{290B0}"],["9640","\u6847\u4A1D\u{29093}\u{257DF}\u975D\u9368\u{28989}\u{28C26}\u{28B2F}\u{263BE}\u92BA\u5B11\u8B69\u493C\u73F9\u{2421B}\u979B\u9771\u9938\u{20F26}\u5DC1\u{28BC5}\u{24AB2}\u981F\u{294DA}\u92F6\u{295D7}\u91E5\u44C0\u{28B50}\u{24A67}\u{28B64}\u98DC\u{28A45}\u3F00\u922A\u4925\u8414\u993B\u994D\u{27B06}\u3DFD\u999B\u4B6F\u99AA\u9A5C\u{28B65}\u{258C8}\u6A8F\u9A21\u5AFE\u9A2F\u{298F1}\u4B90\u{29948}\u99BC\u4BBD\u4B97\u937D\u5872\u{21302}\u5822\u{249B8}"],["96a1","\u{214E8}\u7844\u{2271F}\u{23DB8}\u68C5\u3D7D\u9458\u3927\u6150\u{22781}\u{2296B}\u6107\u9C4F\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\u{29E2D}\u9B9F\u{2A1F5}\u{2A0FE}\u9D21\u4CAE\u{24104}\u9E18\u4CB0\u9D0C\u{2A1B4}\u{2A0ED}\u{2A0F3}\u{2992F}\u9DA5\u84BD\u{26E12}\u{26FDF}\u{26B82}\u85FC\u4533\u{26DA4}\u{26E84}\u{26DF0}\u8420\u85EE\u{26E00}\u{237D7}\u{26064}\u79E2\u{2359C}\u{23640}\u492D\u{249DE}\u3D62\u93DB\u92BE\u9348\u{202BF}\u78B9\u9277\u944D\u4FE4\u3440\u9064\u{2555D}\u783D\u7854\u78B6\u784B\u{21757}\u{231C9}\u{24941}\u369A\u4F72\u6FDA\u6FD9\u701E\u701E\u5414\u{241B5}\u57BB\u58F3\u578A\u9D16\u57D7\u7134\u34AF\u{241AC}\u71EB\u{26C40}\u{24F97}\u5B28\u{217B5}\u{28A49}"],["9740","\u610C\u5ACE\u5A0B\u42BC\u{24488}\u372C\u4B7B\u{289FC}\u93BB\u93B8\u{218D6}\u{20F1D}\u8472\u{26CC0}\u{21413}\u{242FA}\u{22C26}\u{243C1}\u5994\u{23DB7}\u{26741}\u7DA8\u{2615B}\u{260A4}\u{249B9}\u{2498B}\u{289FA}\u92E5\u73E2\u3EE9\u74B4\u{28B63}\u{2189F}\u3EE1\u{24AB3}\u6AD8\u73F3\u73FB\u3ED6\u{24A3E}\u{24A94}\u{217D9}\u{24A66}\u{203A7}\u{21424}\u{249E5}\u7448\u{24916}\u70A5\u{24976}\u9284\u73E6\u935F\u{204FE}\u9331\u{28ACE}\u{28A16}\u9386\u{28BE7}\u{255D5}\u4935\u{28A82}\u716B"],["97a1","\u{24943}\u{20CFF}\u56A4\u{2061A}\u{20BEB}\u{20CB8}\u5502\u79C4\u{217FA}\u7DFE\u{216C2}\u{24A50}\u{21852}\u452E\u9401\u370A\u{28AC0}\u{249AD}\u59B0\u{218BF}\u{21883}\u{27484}\u5AA1\u36E2\u{23D5B}\u36B0\u925F\u5A79\u{28A81}\u{21862}\u9374\u3CCD\u{20AB4}\u4A96\u398A\u50F4\u3D69\u3D4C\u{2139C}\u7175\u42FB\u{28218}\u6E0F\u{290E4}\u44EB\u6D57\u{27E4F}\u7067\u6CAF\u3CD6\u{23FED}\u{23E2D}\u6E02\u6F0C\u3D6F\u{203F5}\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4\u926E\u493E\u8F41\u{28C1C}\u{26BC0}\u5812\u57C8\u36D6\u{21452}\u70FE\u{24362}\u{24A71}\u{22FE3}\u{212B0}\u{223BD}\u68B9\u6967\u{21398}\u{234E5}\u{27BF4}\u{236DF}\u{28A83}\u{237D6}\u{233FA}\u{24C9F}\u6A1A\u{236AD}\u{26CB7}\u843E\u44DF\u44CE"],["9840","\u{26D26}\u{26D51}\u{26C82}\u{26FDE}\u6F17\u{27109}\u833D\u{2173A}\u83ED\u{26C80}\u{27053}\u{217DB}\u5989\u5A82\u{217B3}\u5A61\u5A71\u{21905}\u{241FC}\u372D\u59EF\u{2173C}\u36C7\u718E\u9390\u669A\u{242A5}\u5A6E\u5A2B\u{24293}\u6A2B\u{23EF9}\u{27736}\u{2445B}\u{242CA}\u711D\u{24259}\u{289E1}\u4FB0\u{26D28}\u5CC2\u{244CE}\u{27E4D}\u{243BD}\u6A0C\u{24256}\u{21304}\u70A6\u7133\u{243E9}\u3DA5\u6CDF\u{2F825}\u{24A4F}\u7E65\u59EB\u5D2F\u3DF3\u5F5C\u{24A5D}\u{217DF}\u7DA4\u8426"],["98a1","\u5485\u{23AFA}\u{23300}\u{20214}\u577E\u{208D5}\u{20619}\u3FE5\u{21F9E}\u{2A2B6}\u7003\u{2915B}\u5D70\u738F\u7CD3\u{28A59}\u{29420}\u4FC8\u7FE7\u72CD\u7310\u{27AF4}\u7338\u7339\u{256F6}\u7341\u7348\u3EA9\u{27B18}\u906C\u71F5\u{248F2}\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\u{24F5C}\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866\u8448\u{25535}\u7933\u6803\u7932\u4103"],["9940","\u4109\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\u{20CCF}\u7DCF\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114\u4401\u3B39\u8156\u8159\u815A"],["99a1","\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF\u8924\u8947\u8991\u{27967}\u8A29\u8A38\u8A94\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228\u9258\u926B\u92B1\u92AE\u92BF"],["9a40","\u92E3\u92EB\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20\u376F\u{21BC2}\u9D49\u9C3A"],["9aa1","\u9EFE\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8\u9F44\u{20094}\u{202B7}\u{203A0}\u691A\u94C3\u59AC\u{204D7}\u5840\u94C1\u37B9\u{205D5}\u{20615}\u{20676}\u{216BA}\u5757\u7173\u{20AC2}\u{20ACD}\u{20BBF}\u546A\u{2F83B}\u{20BCB}\u549E\u{20BFB}\u{20C3B}\u{20C53}\u{20C65}\u{20C7C}\u60E7\u{20C8D}\u567A\u{20CB5}\u{20CDD}\u{20CED}\u{20D6F}\u{20DB2}\u{20DC8}\u6955\u9C2F\u87A5\u{20E04}\u{20E0E}\u{20ED7}\u{20F90}\u{20F2D}\u{20E73}\u5C20\u{20FBC}\u5E0B\u{2105C}\u{2104F}\u{21076}\u671E\u{2107B}\u{21088}\u{21096}\u3647\u{210BF}\u{210D3}\u{2112F}\u{2113B}\u5364\u84AD\u{212E3}\u{21375}\u{21336}\u8B81\u{21577}\u{21619}\u{217C3}\u{217C7}\u4E78\u70BB\u{2182D}\u{2196A}"],["9b40","\u{21A2D}\u{21A45}\u{21C2A}\u{21C70}\u{21CAC}\u{21EC8}\u62C3\u{21ED5}\u{21F15}\u7198\u6855\u{22045}\u69E9\u36C8\u{2227C}\u{223D7}\u{223FA}\u{2272A}\u{22871}\u{2294F}\u82FD\u{22967}\u{22993}\u{22AD5}\u89A5\u{22AE8}\u8FA0\u{22B0E}\u97B8\u{22B3F}\u9847\u9ABD\u{22C4C}"],["9b62","\u{22C88}\u{22CB7}\u{25BE8}\u{22D08}\u{22D12}\u{22DB7}\u{22D95}\u{22E42}\u{22F74}\u{22FCC}\u{23033}\u{23066}\u{2331F}\u{233DE}\u5FB1\u6648\u66BF\u{27A79}\u{23567}\u{235F3}\u7201\u{249BA}\u77D7\u{2361A}\u{23716}\u7E87\u{20346}\u58B5\u670E"],["9ba1","\u6918\u{23AA7}\u{27657}\u{25FE2}\u{23E11}\u{23EB9}\u{275FE}\u{2209A}\u48D0\u4AB8\u{24119}\u{28A9A}\u{242EE}\u{2430D}\u{2403B}\u{24334}\u{24396}\u{24A45}\u{205CA}\u51D2\u{20611}\u599F\u{21EA8}\u3BBE\u{23CFF}\u{24404}\u{244D6}\u5788\u{24674}\u399B\u{2472F}\u{285E8}\u{299C9}\u3762\u{221C3}\u8B5E\u{28B4E}\u99D6\u{24812}\u{248FB}\u{24A15}\u7209\u{24AC0}\u{20C78}\u5965\u{24EA5}\u{24F86}\u{20779}\u8EDA\u{2502C}\u528F\u573F\u7171\u{25299}\u{25419}\u{23F4A}\u{24AA7}\u55BC\u{25446}\u{2546E}\u{26B52}\u91D4\u3473\u{2553F}\u{27632}\u{2555E}\u4718\u{25562}\u{25566}\u{257C7}\u{2493F}\u{2585D}\u5066\u34FB\u{233CC}\u60DE\u{25903}\u477C\u{28948}\u{25AAE}\u{25B89}\u{25C06}\u{21D90}\u57A1\u7151\u6FB6\u{26102}\u{27C12}\u9056\u{261B2}\u{24F9A}\u8B62\u{26402}\u{2644A}"],["9c40","\u5D5B\u{26BF7}\u8F36\u{26484}\u{2191C}\u8AEA\u{249F6}\u{26488}\u{23FEF}\u{26512}\u4BC0\u{265BF}\u{266B5}\u{2271B}\u9465\u{257E1}\u6195\u5A27\u{2F8CD}\u4FBB\u56B9\u{24521}\u{266FC}\u4E6A\u{24934}\u9656\u6D8F\u{26CBD}\u3618\u8977\u{26799}\u{2686E}\u{26411}\u{2685E}\u71DF\u{268C7}\u7B42\u{290C0}\u{20A11}\u{26926}\u9104\u{26939}\u7A45\u9DF0\u{269FA}\u9A26\u{26A2D}\u365F\u{26469}\u{20021}\u7983\u{26A34}\u{26B5B}\u5D2C\u{23519}\u83CF\u{26B9D}\u46D0\u{26CA4}\u753B\u8865\u{26DAE}\u58B6"],["9ca1","\u371C\u{2258D}\u{2704B}\u{271CD}\u3C54\u{27280}\u{27285}\u9281\u{2217A}\u{2728B}\u9330\u{272E6}\u{249D0}\u6C39\u949F\u{27450}\u{20EF8}\u8827\u88F5\u{22926}\u{28473}\u{217B1}\u6EB8\u{24A2A}\u{21820}\u39A4\u36B9\u5C10\u79E3\u453F\u66B6\u{29CAD}\u{298A4}\u8943\u{277CC}\u{27858}\u56D6\u40DF\u{2160A}\u39A1\u{2372F}\u{280E8}\u{213C5}\u71AD\u8366\u{279DD}\u{291A8}\u5A67\u4CB7\u{270AF}\u{289AB}\u{279FD}\u{27A0A}\u{27B0B}\u{27D66}\u{2417A}\u7B43\u797E\u{28009}\u6FB5\u{2A2DF}\u6A03\u{28318}\u53A2\u{26E07}\u93BF\u6836\u975D\u{2816F}\u{28023}\u{269B5}\u{213ED}\u{2322F}\u{28048}\u5D85\u{28C30}\u{28083}\u5715\u9823\u{28949}\u5DAB\u{24988}\u65BE\u69D5\u53D2\u{24AA5}\u{23F81}\u3C11\u6736\u{28090}\u{280F4}\u{2812E}\u{21FA1}\u{2814F}"],["9d40","\u{28189}\u{281AF}\u{2821A}\u{28306}\u{2832F}\u{2838A}\u35CA\u{28468}\u{286AA}\u48FA\u63E6\u{28956}\u7808\u9255\u{289B8}\u43F2\u{289E7}\u43DF\u{289E8}\u{28B46}\u{28BD4}\u59F8\u{28C09}\u8F0B\u{28FC5}\u{290EC}\u7B51\u{29110}\u{2913C}\u3DF7\u{2915E}\u{24ACA}\u8FD0\u728F\u568B\u{294E7}\u{295E9}\u{295B0}\u{295B8}\u{29732}\u{298D1}\u{29949}\u{2996A}\u{299C3}\u{29A28}\u{29B0E}\u{29D5A}\u{29D9B}\u7E9F\u{29EF8}\u{29F23}\u4CA4\u9547\u{2A293}\u71A2\u{2A2FF}\u4D91\u9012\u{2A5CB}\u4D9C\u{20C9C}\u8FBE\u55C1"],["9da1","\u8FBA\u{224B0}\u8FB9\u{24A93}\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\u{28B2C}\u{2789D}\u373A\u8E80\u{217F5}\u{28024}\u{28B6C}\u{28B99}\u{27A3E}\u{266AF}\u3DEB\u{27655}\u{23CB7}\u{25635}\u{25956}\u4E9A\u{25E81}\u{26258}\u56BF\u{20E6D}\u8E0E\u5B6D\u{23E88}\u{24C9E}\u63DE\u62D0\u{217F6}\u{2187B}\u6530\u562D\u{25C4A}\u541A\u{25311}\u3DC6\u{29D98}\u4C7D\u5622\u561E\u7F49\u{25ED8}\u5975\u{23D40}\u8770\u4E1C\u{20FEA}\u{20D49}\u{236BA}\u8117\u9D5E\u8D18\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\u{20E9D}\u35CE\u5605\u55F1\u66F1\u{282E2}\u362D\u7534\u55F0\u55BA\u5497\u5572\u{20C41}\u{20C96}\u5ED0\u{25148}\u{20E76}\u{22C62}"],["9e40","\u{20EA2}\u9EAB\u7D5A\u55DE\u{21075}\u629D\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569\u{22B43}\u9C72\u{22EB3}\u519A\u34DF\u{20DA7}\u51A7\u544D\u551E\u5513\u7666\u8E2D\u{2688A}\u75B1\u80B6\u8804\u8786\u88C7\u81B6\u841C\u{210C1}\u44EC\u7304\u{24706}\u5B90\u830B\u{26893}\u567B\u{226F4}\u{27D2F}\u{241A3}\u{27D73}\u{26ED0}\u{272B6}\u9170\u{211D9}\u9208\u{23CFC}\u{2A6A9}\u{20EAC}\u{20EF9}\u7266\u{21CA2}\u474E\u{24FC2}\u{27FF9}\u{20FEB}\u40FA"],["9ea1","\u9C5D\u651F\u{22DA0}\u48F3\u{247E0}\u{29D7C}\u{20FEC}\u{20E0A}\u6062\u{275A3}\u{20FED}"],["9ead","\u{26048}\u{21187}\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\u{24618}\u589A\u{24B6E}\u822D\u544B\u57AA\u{25A95}\u{20979}"],["9ec5","\u3A52\u{22465}\u7374\u{29EAC}\u4D09\u9BED\u{23CFE}\u{29F30}\u4C5B\u{24FA9}\u{2959E}\u{29FDE}\u845C\u{23DB6}\u{272B2}\u{267B3}\u{23720}\u632E\u7D25\u{23EF7}\u{23E2C}\u3A2A\u9008\u52CC\u3E74\u367A\u45E9\u{2048E}\u7640\u5AF0\u{20EB6}\u787A\u{27F2E}\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\u{2A434}\u9E85\u4CE1\u75F9\u37FB\u6119\u{230DA}\u{243F2}"],["9ef5","\u565D\u{212A9}\u57A7\u{24963}\u{29E06}\u5234\u{270AE}\u35AD\u6C4A\u9D7C"],["9f40","\u7C56\u9B39\u57DE\u{2176C}\u5C53\u64D3\u{294D0}\u{26335}\u{27164}\u86AD\u{20D28}\u{26D22}\u{24AE2}\u{20D71}"],["9f4f","\u51FE\u{21F0F}\u5D8E\u9703\u{21DD1}\u9E81\u904C\u7B1F\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E\u9B2E\u7C42\u7C86\u9C15\u7BFC\u9B09\u9F17\u9C1B\u{2493E}\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"],["9fa1","\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980\u50A6\u7546\u{2176D}\u99DA\u5273"],["9fae","\u9159\u9681\u915C"],["9fb2","\u9151\u{28E97}\u637F\u{26D23}\u6ACA\u5611\u918E\u757A\u6285\u{203FC}\u734F\u7C70\u{25C21}\u{23CFD}"],["9fc1","\u{24919}\u76D6\u9B9D\u4E2A\u{20CD4}\u83BE\u8842"],["9fc9","\u5C4A\u69C0\u50ED\u577A\u521F\u5DF5\u4ECE\u6C31\u{201F2}\u4F39\u549C\u54DA\u529A\u8D82\u35FE\u5F0C\u35F3"],["9fdb","\u6B52\u917C\u9FA5\u9B97\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14"],["9fe7","\u6BFA\u8818\u7F78"],["9feb","\u5620\u{2A64A}\u8E77\u9F53"],["9ff0","\u8DD4\u8E4F\u9E1C\u8E01\u6282\u{2837D}\u8E28\u8E75\u7AD3\u{24A77}\u7A3E\u78D8\u6CEA\u8A67\u7607"],["a040","\u{28A5A}\u9F26\u6CCE\u87D6\u75C3\u{2A2B2}\u7853\u{2F840}\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\u{24ABB}\u862F\u5FBA\u88A0\u44B7"],["a055","\u{2183B}\u{26E05}"],["a058","\u8A7E\u{2251B}"],["a05b","\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F\u87F5"],["a063","\u880F\u8CF7\u732C\u9721\u9BB0\u35D6\u72B2\u4C07\u7C51\u994A\u{26159}\u6159\u4C04\u9E96\u617D"],["a073","\u575F\u616F\u62A6\u6239\u62CE\u3A5C\u61E2\u53AA\u{233F5}\u6364\u6802\u35D2"],["a0a1","\u5D57\u{28BC2}\u8FDA\u{28E39}"],["a0a6","\u50D9\u{21D46}\u7906\u5332\u9638\u{20F3B}\u4065"],["a0ae","\u77FE"],["a0b0","\u7CC2\u{25F1A}\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2\u8994\u821A\u670C\u8062\u{27486}\u805B\u74F0\u8103\u7724\u8989\u{267CC}\u7553\u{26ED1}\u87A9\u87CE\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635\u69B2\u8DA6"],["a0d4","\u89A9\u7468\u6DB9\u87C1\u{24011}\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\u7162\u6077"],["a0e2","\u7F71\u{28B2D}\u7250\u60E9\u4B7E\u5220\u3C18\u{23CC7}\u{25ED7}\u{27656}\u{25531}\u{21944}\u{212FE}\u{29903}\u{26DDC}\u{270AD}\u5CC1\u{261AD}\u{28A0F}\u{23677}\u{200EE}\u{26846}\u{24F0E}\u4562\u5B1F\u{2634C}\u9F50\u9EA6\u{2626B}"],["a3c0","\u2400",31,"\u2421"],["c6a1","\u2460",9,"\u2474",9,"\u2170",9,"\u4E36\u4E3F\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\u5EF4\u5F50\u5F61\u6534\u65E0\u7592\u7676\u8FB5\u96B6\xA8\u02C6\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041",23],["c740","\u3059",58,"\u30A1\u30A2\u30A3\u30A4"],["c7a1","\u30A5",81,"\u0410",5,"\u0401\u0416",4],["c840","\u041B",26,"\u0451\u0436",25,"\u21E7\u21B8\u21B9\u31CF\u{200CC}\u4E5A\u{2008A}\u5202\u4491"],["c8a1","\u9FB0\u5188\u9FB1\u{27607}"],["c8cd","\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3"],["c8f5","\u0283\u0250\u025B\u0254\u0275\u0153\xF8\u014B\u028A\u026A"],["f9fe","\uFFED"],["fa40","\u{20547}\u92DB\u{205DF}\u{23FC5}\u854C\u42B5\u73EF\u51B5\u3649\u{24942}\u{289E4}\u9344\u{219DB}\u82EE\u{23CC8}\u783C\u6744\u62DF\u{24933}\u{289AA}\u{202A0}\u{26BB3}\u{21305}\u4FAB\u{224ED}\u5008\u{26D29}\u{27A84}\u{23600}\u{24AB1}\u{22513}\u5029\u{2037E}\u5FA4\u{20380}\u{20347}\u6EDB\u{2041F}\u507D\u5101\u347A\u510E\u986C\u3743\u8416\u{249A4}\u{20487}\u5160\u{233B4}\u516A\u{20BFF}\u{220FC}\u{202E5}\u{22530}\u{2058E}\u{23233}\u{21983}\u5B82\u877D\u{205B3}\u{23C99}\u51B2\u51B8"],["faa1","\u9D34\u51C9\u51CF\u51D1\u3CDC\u51D3\u{24AA6}\u51B3\u51E2\u5342\u51ED\u83CD\u693E\u{2372D}\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\u{26B13}\u5305\u{28ADE}\u5549\u6ED9\u{23F80}\u{20954}\u{23FEC}\u5333\u5344\u{20BE2}\u6CCB\u{21726}\u681B\u73D5\u604A\u3EAA\u38CC\u{216E8}\u71DD\u44A2\u536D\u5374\u{286AB}\u537E\u537F\u{21596}\u{21613}\u77E6\u5393\u{28A9B}\u53A0\u53AB\u53AE\u73A7\u{25772}\u3F59\u739C\u53C1\u53C5\u6C49\u4E49\u57FE\u53D9\u3AAB\u{20B8F}\u53E0\u{23FEB}\u{22DA3}\u53F6\u{20C77}\u5413\u7079\u552B\u6657\u6D5B\u546D\u{26B53}\u{20D74}\u555D\u548F\u54A4\u47A6\u{2170D}\u{20EDD}\u3DB4\u{20D4D}"],["fb40","\u{289BC}\u{22698}\u5547\u4CED\u542F\u7417\u5586\u55A9\u5605\u{218D7}\u{2403A}\u4552\u{24435}\u66B3\u{210B4}\u5637\u66CD\u{2328A}\u66A4\u66AD\u564D\u564F\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\u{28B66}\u3623\u{2124F}\u5746\u{241A5}\u6C6E\u708B\u5742\u36B1\u{26C7E}\u57E6\u{21416}\u5803\u{21454}\u{24363}\u5826\u{24BF5}\u585C\u58AA\u3561\u58E0\u58DC\u{2123C}\u58FB\u5BFF\u5743\u{2A150}\u{24278}\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"],["fba1","\u{2163E}\u5A24\u5553\u{21692}\u8505\u59C9\u{20D4E}\u{26C81}\u{26D2A}\u{217DC}\u59D9\u{217FB}\u{217B2}\u{26DA6}\u6D71\u{21828}\u{216D5}\u59F9\u{26E45}\u5AAB\u5A63\u36E6\u{249A9}\u5A77\u3708\u5A96\u7465\u5AD3\u{26FA1}\u{22554}\u3D85\u{21911}\u3732\u{216B8}\u5E83\u52D0\u5B76\u6588\u5B7C\u{27A0E}\u4004\u485D\u{20204}\u5BD5\u6160\u{21A34}\u{259CC}\u{205A5}\u5BF3\u5B9D\u4D10\u5C05\u{21B44}\u5C13\u73CE\u5C14\u{21CA5}\u{26B28}\u5C49\u48DD\u5C85\u5CE9\u5CEF\u5D8B\u{21DF9}\u{21E37}\u5D10\u5D18\u5D46\u{21EA4}\u5CBA\u5DD7\u82FC\u382D\u{24901}\u{22049}\u{22173}\u8287\u3836\u3BC2\u5E2E\u6A8A\u5E75\u5E7A\u{244BC}\u{20CD3}\u53A6\u4EB7\u5ED0\u53A8\u{21771}\u5E09\u5EF4\u{28482}"],["fc40","\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\u{201C1}\u{2F894}\u3ADE\u48AE\u{2133A}\u5F3A\u{26888}\u{223D0}\u5F58\u{22471}\u5F63\u97BD\u{26E6E}\u5F72\u9340\u{28A36}\u5FA7\u5DB6\u3D5F\u{25250}\u{21F6A}\u{270F8}\u{22668}\u91D6\u{2029E}\u{28A29}\u6031\u6685\u{21877}\u3963\u3DC7\u3639\u5790\u{227B4}\u7971\u3E40\u609E\u60A4\u60B3\u{24982}\u{2498F}\u{27A53}\u74A4\u50E1\u5AA0\u6164\u8424\u6142\u{2F8A6}\u{26ED2}\u6181\u51F4\u{20656}\u6187\u5BAA\u{23FB7}"],["fca1","\u{2285F}\u61D3\u{28B9D}\u{2995D}\u61D0\u3932\u{22980}\u{228C1}\u6023\u615C\u651E\u638B\u{20118}\u62C5\u{21770}\u62D5\u{22E0D}\u636C\u{249DF}\u3A17\u6438\u63F8\u{2138E}\u{217FC}\u6490\u6F8A\u{22E36}\u9814\u{2408C}\u{2571D}\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\u{24A28}\u{24A23}\u6585\u656D\u655F\u{2307E}\u65B5\u{24940}\u4B37\u65D1\u40D8\u{21829}\u65E0\u65E3\u5FDF\u{23400}\u6618\u{231F7}\u{231F8}\u6644\u{231A4}\u{231A5}\u664B\u{20E75}\u6667\u{251E6}\u6673\u6674\u{21E3D}\u{23231}\u{285F4}\u{231C8}\u{25313}\u77C5\u{228F7}\u99A4\u6702\u{2439C}\u{24A21}\u3B2B\u69FA\u{237C2}\u675E\u6767\u6762\u{241CD}\u{290ED}\u67D7\u44E9\u6822\u6E50\u923C\u6801\u{233E6}\u{26DA0}\u685D"],["fd40","\u{2346F}\u69E1\u6A0B\u{28ADF}\u6973\u68C3\u{235CD}\u6901\u6900\u3D32\u3A01\u{2363C}\u3B80\u67AC\u6961\u{28A4A}\u42FC\u6936\u6998\u3BA1\u{203C9}\u8363\u5090\u69F9\u{23659}\u{2212A}\u6A45\u{23703}\u6A9D\u3BF3\u67B1\u6AC8\u{2919C}\u3C0D\u6B1D\u{20923}\u60DE\u6B35\u6B74\u{227CD}\u6EB5\u{23ADB}\u{203B5}\u{21958}\u3740\u5421\u{23B5A}\u6BE1\u{23EFC}\u6BDC\u6C37\u{2248B}\u{248F1}\u{26B51}\u6C5A\u8226\u6C79\u{23DBC}\u44C5\u{23DBD}\u{241A4}\u{2490C}\u{24900}"],["fda1","\u{23CC9}\u36E5\u3CEB\u{20D32}\u9B83\u{231F9}\u{22491}\u7F8F\u6837\u{26D25}\u{26DA1}\u{26DEB}\u6D96\u6D5C\u6E7C\u6F04\u{2497F}\u{24085}\u{26E72}\u8533\u{26F74}\u51C7\u6C9C\u6E1D\u842E\u{28B21}\u6E2F\u{23E2F}\u7453\u{23F82}\u79CC\u6E4F\u5A91\u{2304B}\u6FF8\u370D\u6F9D\u{23E30}\u6EFA\u{21497}\u{2403D}\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\u{29170}\u3D3B\u6F9F\u{24144}\u6FD3\u{24091}\u{24155}\u{24039}\u{23FF0}\u{23FB4}\u{2413F}\u51DF\u{24156}\u{24157}\u{24140}\u{261DD}\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104\u3DE8\u71B4\u7196\u{24277}\u712B\u7145\u5A88\u714A\u716E\u5C9C\u{24365}\u714F\u9362\u{242C1}\u712C\u{2445A}\u{24A27}\u{24A22}\u71BA\u{28BE8}\u70BD\u720E"],["fe40","\u9442\u7215\u5911\u9443\u7224\u9341\u{25605}\u722E\u7240\u{24974}\u68BD\u7255\u7257\u3E55\u{23044}\u680D\u6F3D\u7282\u732A\u732B\u{24823}\u{2882B}\u48ED\u{28804}\u7328\u732E\u73CF\u73AA\u{20C3A}\u{26A2E}\u73C9\u7449\u{241E2}\u{216E7}\u{24A24}\u6623\u36C5\u{249B7}\u{2498D}\u{249FB}\u73F7\u7415\u6903\u{24A26}\u7439\u{205C3}\u3ED7\u745C\u{228AD}\u7460\u{28EB2}\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474\u93F1\u6A2C\u7482\u4953\u{24A8C}"],["fea1","\u{2415F}\u{24A79}\u{28B8F}\u5B46\u{28C03}\u{2189E}\u74C8\u{21988}\u750E\u74E9\u751E\u{28ED9}\u{21A4B}\u5BD7\u{28EAC}\u9385\u754D\u754A\u7567\u756E\u{24F82}\u3F04\u{24D13}\u758E\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676\u{263F5}\u7690\u81EF\u37F8\u{26911}\u{2690E}\u76A1\u76A5\u76B7\u76CC\u{26F9F}\u8462\u{2509D}\u{2517D}\u{21E1C}\u771E\u7726\u7740\u64AF\u{25220}\u7758\u{232AC}\u77AF\u{28964}\u{28968}\u{216C1}\u77F4\u7809\u{21376}\u{24A12}\u68CA\u78AF\u78C7\u78D3\u96A5\u792E\u{255E0}\u78D7\u7934\u78B1\u{2760C}\u8FB8\u8884\u{28B2B}\u{26083}\u{2261C}\u7986\u8900\u6902\u7980\u{25857}\u799D\u{27B39}\u793C\u79A9\u6E2A\u{27126}\u3EA8\u79C6\u{2910D}\u79D4"]]});var LC=j((M$e,qC)=>{"use strict";qC.exports={shiftjis:{type:"_dbcs",table:function(){return AC()},encodeAdd:{"\xA5":92,"\u203E":126},encodeSkipVals:[{from:60736,to:63808}]},csshiftjis:"shiftjis",mskanji:"shiftjis",sjis:"shiftjis",windows31j:"shiftjis",ms31j:"shiftjis",xsjis:"shiftjis",windows932:"shiftjis",ms932:"shiftjis",932:"shiftjis",cp932:"shiftjis",eucjp:{type:"_dbcs",table:function(){return MC()},encodeAdd:{"\xA5":92,"\u203E":126}},gb2312:"cp936",gb231280:"cp936",gb23121980:"cp936",csgb2312:"cp936",csiso58gb231280:"cp936",euccn:"cp936",windows936:"cp936",ms936:"cp936",936:"cp936",cp936:{type:"_dbcs",table:function(){return hm()}},gbk:{type:"_dbcs",table:function(){return hm().concat(xS())}},xgbk:"gbk",isoir58:"gbk",gb18030:{type:"_dbcs",table:function(){return hm().concat(xS())},gb18030:function(){return DC()},encodeSkipVals:[128],encodeAdd:{"\u20AC":41699}},chinese:"gb18030",windows949:"cp949",ms949:"cp949",949:"cp949",cp949:{type:"_dbcs",table:function(){return zC()}},cseuckr:"cp949",csksc56011987:"cp949",euckr:"cp949",isoir149:"cp949",korean:"cp949",ksc56011987:"cp949",ksc56011989:"cp949",ksc5601:"cp949",windows950:"cp950",ms950:"cp950",950:"cp950",cp950:{type:"_dbcs",table:function(){return SS()}},big5:"big5hkscs",big5hkscs:{type:"_dbcs",table:function(){return SS().concat(UC())},encodeSkipVals:[41676]},cnbig5:"big5hkscs",csbig5:"big5hkscs",xxbig5:"big5hkscs"}});var HC=j((ZC,Ps)=>{"use strict";var FC=[xC(),wC(),EC(),TC(),PC(),OC(),jC(),LC()];for(gm=0;gm{"use strict";var BC=require("buffer").Buffer,ym=require("stream").Transform;VC.exports=function(t){t.encodeStream=function(r,n){return new ro(t.getEncoder(r,n),n)},t.decodeStream=function(r,n){return new ua(t.getDecoder(r,n),n)},t.supportsStreams=!0,t.IconvLiteEncoderStream=ro,t.IconvLiteDecoderStream=ua,t._collect=ua.prototype.collect};function ro(t,e){this.conv=t,e=e||{},e.decodeStrings=!1,ym.call(this,e)}ro.prototype=Object.create(ym.prototype,{constructor:{value:ro}});ro.prototype._transform=function(t,e,r){if(typeof t!="string")return r(new Error("Iconv encoding stream needs strings as its input."));try{var n=this.conv.write(t);n&&n.length&&this.push(n),r()}catch(i){r(i)}};ro.prototype._flush=function(t){try{var e=this.conv.end();e&&e.length&&this.push(e),t()}catch(r){t(r)}};ro.prototype.collect=function(t){var e=[];return this.on("error",t),this.on("data",function(r){e.push(r)}),this.on("end",function(){t(null,BC.concat(e))}),this};function ua(t,e){this.conv=t,e=e||{},e.encoding=this.encoding="utf8",ym.call(this,e)}ua.prototype=Object.create(ym.prototype,{constructor:{value:ua}});ua.prototype._transform=function(t,e,r){if(!BC.isBuffer(t))return r(new Error("Iconv decoding stream needs buffers as its input."));try{var n=this.conv.write(t);n&&n.length&&this.push(n,this.encoding),r()}catch(i){r(i)}};ua.prototype._flush=function(t){try{var e=this.conv.end();e&&e.length&&this.push(e,this.encoding),t()}catch(r){t(r)}};ua.prototype.collect=function(t){var e="";return this.on("error",t),this.on("data",function(r){e+=r}),this.on("end",function(){t(null,e)}),this}});var KC=j((z$e,WC)=>{"use strict";var Wt=require("buffer").Buffer;WC.exports=function(t){var e=void 0;t.supportsNodeEncodingsExtension=!(Wt.from||new Wt(0)instanceof Uint8Array),t.extendNodeEncodings=function(){if(!e){if(e={},!t.supportsNodeEncodingsExtension){console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node"),console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility");return}var n={hex:!0,utf8:!0,"utf-8":!0,ascii:!0,binary:!0,base64:!0,ucs2:!0,"ucs-2":!0,utf16le:!0,"utf-16le":!0};Wt.isNativeEncoding=function(o){return o&&n[o.toLowerCase()]};var i=require("buffer").SlowBuffer;if(e.SlowBufferToString=i.prototype.toString,i.prototype.toString=function(o,s,c){return o=String(o||"utf8").toLowerCase(),Wt.isNativeEncoding(o)?e.SlowBufferToString.call(this,o,s,c):(typeof s>"u"&&(s=0),typeof c>"u"&&(c=this.length),t.decode(this.slice(s,c),o))},e.SlowBufferWrite=i.prototype.write,i.prototype.write=function(o,s,c,u){if(isFinite(s))isFinite(c)||(u=c,c=void 0);else{var l=u;u=s,s=c,c=l}s=+s||0;var d=this.length-s;if(c?(c=+c,c>d&&(c=d)):c=d,u=String(u||"utf8").toLowerCase(),Wt.isNativeEncoding(u))return e.SlowBufferWrite.call(this,o,s,c,u);if(o.length>0&&(c<0||s<0))throw new RangeError("attempt to write beyond buffer bounds");var p=t.encode(o,u);return p.length"u"&&(s=0),typeof c>"u"&&(c=this.length),t.decode(this.slice(s,c),o))},e.BufferWrite=Wt.prototype.write,Wt.prototype.write=function(o,s,c,u){var l=s,d=c,p=u;if(isFinite(s))isFinite(c)||(u=c,c=void 0);else{var f=u;u=s,s=c,c=f}if(u=String(u||"utf8").toLowerCase(),Wt.isNativeEncoding(u))return e.BufferWrite.call(this,o,l,d,p);s=+s||0;var h=this.length-s;if(c?(c=+c,c>h&&(c=h)):c=h,o.length>0&&(c<0||s<0))throw new RangeError("attempt to write beyond buffer bounds");var _=t.encode(o,u);return _.length{"use strict";var XC=eo().Buffer,YC=yC(),pt=QC.exports;pt.encodings=null;pt.defaultCharUnicode="\uFFFD";pt.defaultCharSingleByte="?";pt.encode=function(e,r,n){e=""+(e||"");var i=pt.getEncoder(r,n),a=i.write(e),o=i.end();return o&&o.length>0?XC.concat([a,o]):a};pt.decode=function(e,r,n){typeof e=="string"&&(pt.skipDecodeWarning||(console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"),pt.skipDecodeWarning=!0),e=XC.from(""+(e||""),"binary"));var i=pt.getDecoder(r,n),a=i.write(e),o=i.end();return o?a+o:a};pt.encodingExists=function(e){try{return pt.getCodec(e),!0}catch{return!1}};pt.toEncoding=pt.encode;pt.fromEncoding=pt.decode;pt._codecDataCache={};pt.getCodec=function(e){pt.encodings||(pt.encodings=HC());for(var r=pt._canonicalizeEncoding(e),n={};;){var i=pt._codecDataCache[r];if(i)return i;var a=pt.encodings[r];switch(typeof a){case"string":r=a;break;case"object":for(var o in a)n[o]=a[o];n.encodingName||(n.encodingName=r),r=a.type;break;case"function":return n.encodingName||(n.encodingName=r),i=new a(n,pt),pt._codecDataCache[n.encodingName]=i,i;default:throw new Error("Encoding not recognized: '"+e+"' (searched as: '"+r+"')")}}};pt._canonicalizeEncoding=function(t){return(""+t).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")};pt.getEncoder=function(e,r){var n=pt.getCodec(e),i=new n.encoder(r,n);return n.bomAware&&r&&r.addBOM&&(i=new YC.PrependBOM(i,r)),i};pt.getDecoder=function(e,r){var n=pt.getCodec(e),i=new n.decoder(r,n);return n.bomAware&&!(r&&r.stripBOM===!1)&&(i=new YC.StripBOM(i,r)),i};var JC=typeof process<"u"&&process.versions&&process.versions.node;JC&&(wS=JC.split(".").map(Number),(wS[0]>0||wS[1]>=10)&&GC()(pt),KC()(pt));var wS});var _m=j((q$e,eN)=>{"use strict";eN.exports=QG;function YG(t){for(var e=t.listeners("data"),r=0;r{"use strict";var tN=sW(),eW=Ss(),no=Ya(),tW=$S(),rW=_m();nN.exports=aW;var nW=/^Encoding not recognized: /;function iW(t){if(!t)return null;try{return tW.getDecoder(t)}catch(e){throw nW.test(e.message)?no(415,"specified encoding unsupported",{encoding:t,type:"encoding.unsupported"}):e}}function aW(t,e,r){var n=r,i=e||{};if(t===void 0)throw new TypeError("argument stream is required");if(typeof t!="object"||t===null||typeof t.on!="function")throw new TypeError("argument stream must be a stream");if((e===!0||typeof e=="string")&&(i={encoding:e}),typeof e=="function"&&(n=e,i={}),n!==void 0&&typeof n!="function")throw new TypeError("argument callback must be a function");if(!n&&!global.Promise)throw new TypeError("argument callback is required");var a=i.encoding!==!0?i.encoding:"utf-8",o=eW.parse(i.limit),s=i.length!=null&&!isNaN(i.length)?parseInt(i.length,10):null;return n?rN(t,a,s,o,cW(n)):new Promise(function(u,l){rN(t,a,s,o,function(p,f){if(p)return l(p);u(f)})})}function oW(t){rW(t),typeof t.pause=="function"&&t.pause()}function rN(t,e,r,n,i){var a=!1,o=!0;if(n!==null&&r!==null&&r>n)return d(no(413,"request entity too large",{expected:r,length:r,limit:n,type:"entity.too.large"}));var s=t._readableState;if(t._decoder||s&&(s.encoding||s.decoder))return d(no(500,"stream encoding should not be set",{type:"stream.encoding.set"}));if(typeof t.readable<"u"&&!t.readable)return d(no(500,"stream is not readable",{type:"stream.not.readable"}));var c=0,u;try{u=iW(e)}catch(y){return d(y)}var l=u?"":[];t.on("aborted",p),t.on("close",_),t.on("data",f),t.on("end",h),t.on("error",h),o=!1;function d(){for(var y=new Array(arguments.length),m=0;mn?d(no(413,"request entity too large",{limit:n,received:c,type:"entity.too.large"})):u?l+=u.write(y):l.push(y))}function h(y){if(!a){if(y)return d(y);if(r!==null&&c!==r)d(no(400,"request size did not match content length",{expected:r,length:r,received:c,type:"request.size.invalid"}));else{var m=u?l+(u.end()||""):Buffer.concat(l);d(null,m)}}}function _(){l=null,t.removeListener("aborted",p),t.removeListener("data",f),t.removeListener("end",h),t.removeListener("error",h),t.removeListener("close",_)}}function sW(){try{return require("async_hooks")}catch{return{}}}function cW(t){var e;return tN.AsyncResource&&(e=new tN.AsyncResource(t.name||"bound-anonymous-fn")),!e||!e.runInAsyncScope?t:e.runInAsyncScope.bind(e,t,null)}});var oN=j((F$e,aN)=>{"use strict";aN.exports=uW;function uW(t,e){if(!Array.isArray(t))throw new TypeError("arg must be an array of [ee, events...] arrays");for(var r=[],n=0;n{"use strict";ES.exports=pW;ES.exports.isFinished=uN;var sN=vW(),cN=oN(),dW=typeof setImmediate=="function"?setImmediate:function(t){process.nextTick(t.bind.apply(t,arguments))};function pW(t,e){return uN(t)!==!1?(dW(e,null,t),t):(mW(t,yW(e)),t)}function uN(t){var e=t.socket;if(typeof t.finished=="boolean")return!!(t.finished||e&&!e.writable);if(typeof t.complete=="boolean")return!!(t.upgrade||!e||!e.readable||t.complete&&!t.readable)}function fW(t,e){var r,n,i=!1;function a(s){r.cancel(),n.cancel(),i=!0,e(s)}r=n=cN([[t,"end","finish"]],a);function o(s){t.removeListener("socket",o),!i&&r===n&&(n=cN([[s,"error","close"]],a))}if(t.socket){o(t.socket);return}t.on("socket",o),t.socket===void 0&&gW(t,o)}function mW(t,e){var r=t.__onFinished;(!r||!r.queue)&&(r=t.__onFinished=hW(t),fW(t,r)),r.queue.push(e)}function hW(t){function e(r){if(t.__onFinished===e&&(t.__onFinished=null),!!e.queue){var n=e.queue;e.queue=null;for(var i=0;i{"use strict";var la=Ya(),_W=K0(),bW=iN(),lN=$S(),dN=El(),xW=_m(),pN=require("zlib");fN.exports=SW;function SW(t,e,r,n,i,a){var o,s=a,c;t._body=!0;var u=s.encoding!==null?s.encoding:null,l=s.verify;try{c=wW(t,i,s.inflate),o=c.length,c.length=void 0}catch(d){return r(d)}if(s.length=o,s.encoding=l?null:u,s.encoding===null&&u!==null&&!lN.encodingExists(u))return r(la(415,'unsupported charset "'+u.toUpperCase()+'"',{charset:u.toLowerCase(),type:"charset.unsupported"}));i("read body"),bW(c,s,function(d,p){if(d){var f;d.type==="encoding.unsupported"?f=la(415,'unsupported charset "'+u.toUpperCase()+'"',{charset:u.toLowerCase(),type:"charset.unsupported"}):f=la(400,d),c!==t&&(xW(t),_W(c,!0)),$W(t,function(){r(la(400,f))});return}if(l)try{i("verify body"),l(t,e,p,u)}catch(_){r(la(403,_,{body:p,type:_.type||"entity.verify.failed"}));return}var h=p;try{i("parse body"),h=typeof p!="string"&&u!==null?lN.decode(p,u):p,t.body=n(h)}catch(_){r(la(400,_,{body:h,type:_.type||"entity.parse.failed"}));return}r()})}function wW(t,e,r){var n=(t.headers["content-encoding"]||"identity").toLowerCase(),i=t.headers["content-length"],a;if(e('content-encoding "%s"',n),r===!1&&n!=="identity")throw la(415,"content encoding unsupported",{encoding:n,type:"encoding.unsupported"});switch(n){case"deflate":a=pN.createInflate(),e("inflate body"),t.pipe(a);break;case"gzip":a=pN.createGunzip(),e("gunzip body"),t.pipe(a);break;case"identity":a=t,a.length=i;break;default:throw la(415,'unsupported content encoding "'+n+'"',{encoding:n,type:"encoding.unsupported"})}return a}function $W(t,e){dN.isFinished(t)?e(null):(dN(t,e),t.resume())}});var vN=j(kS=>{var mN=/; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g,EW=/^[\u0020-\u007e\u0080-\u00ff]+$/,gN=/^[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+$/,kW=/\\([\u0000-\u007f])/g,TW=/([\\"])/g,IW=/^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/,hN=/^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/,PW=/^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;kS.format=RW;kS.parse=OW;function RW(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.subtype,n=t.suffix,i=t.type;if(!i||!hN.test(i))throw new TypeError("invalid type");if(!r||!IW.test(r))throw new TypeError("invalid subtype");var a=i+"/"+r;if(n){if(!hN.test(n))throw new TypeError("invalid suffix");a+="+"+n}if(e&&typeof e=="object")for(var o,s=Object.keys(e).sort(),c=0;c0&&!EW.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(TW,"\\$1")+'"'}function jW(t){var e=PW.exec(t.toLowerCase());if(!e)throw new TypeError("invalid media type");var r=e[1],n=e[2],i,a=n.lastIndexOf("+");a!==-1&&(i=n.substr(a+1),n=n.substr(0,a));var o={type:r,subtype:n,suffix:i};return o}});var yN=j((V$e,AW)=>{AW.exports={"application/1d-interleaved-parityfec":{source:"iana"},"application/3gpdash-qoe-report+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/3gpp-ims+xml":{source:"iana",compressible:!0},"application/3gpphal+json":{source:"iana",compressible:!0},"application/3gpphalforms+json":{source:"iana",compressible:!0},"application/a2l":{source:"iana"},"application/ace+cbor":{source:"iana"},"application/activemessage":{source:"iana"},"application/activity+json":{source:"iana",compressible:!0},"application/alto-costmap+json":{source:"iana",compressible:!0},"application/alto-costmapfilter+json":{source:"iana",compressible:!0},"application/alto-directory+json":{source:"iana",compressible:!0},"application/alto-endpointcost+json":{source:"iana",compressible:!0},"application/alto-endpointcostparams+json":{source:"iana",compressible:!0},"application/alto-endpointprop+json":{source:"iana",compressible:!0},"application/alto-endpointpropparams+json":{source:"iana",compressible:!0},"application/alto-error+json":{source:"iana",compressible:!0},"application/alto-networkmap+json":{source:"iana",compressible:!0},"application/alto-networkmapfilter+json":{source:"iana",compressible:!0},"application/alto-updatestreamcontrol+json":{source:"iana",compressible:!0},"application/alto-updatestreamparams+json":{source:"iana",compressible:!0},"application/aml":{source:"iana"},"application/andrew-inset":{source:"iana",extensions:["ez"]},"application/applefile":{source:"iana"},"application/applixware":{source:"apache",extensions:["aw"]},"application/at+jwt":{source:"iana"},"application/atf":{source:"iana"},"application/atfx":{source:"iana"},"application/atom+xml":{source:"iana",compressible:!0,extensions:["atom"]},"application/atomcat+xml":{source:"iana",compressible:!0,extensions:["atomcat"]},"application/atomdeleted+xml":{source:"iana",compressible:!0,extensions:["atomdeleted"]},"application/atomicmail":{source:"iana"},"application/atomsvc+xml":{source:"iana",compressible:!0,extensions:["atomsvc"]},"application/atsc-dwd+xml":{source:"iana",compressible:!0,extensions:["dwd"]},"application/atsc-dynamic-event-message":{source:"iana"},"application/atsc-held+xml":{source:"iana",compressible:!0,extensions:["held"]},"application/atsc-rdt+json":{source:"iana",compressible:!0},"application/atsc-rsat+xml":{source:"iana",compressible:!0,extensions:["rsat"]},"application/atxml":{source:"iana"},"application/auth-policy+xml":{source:"iana",compressible:!0},"application/bacnet-xdd+zip":{source:"iana",compressible:!1},"application/batch-smtp":{source:"iana"},"application/bdoc":{compressible:!1,extensions:["bdoc"]},"application/beep+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/calendar+json":{source:"iana",compressible:!0},"application/calendar+xml":{source:"iana",compressible:!0,extensions:["xcs"]},"application/call-completion":{source:"iana"},"application/cals-1840":{source:"iana"},"application/captive+json":{source:"iana",compressible:!0},"application/cbor":{source:"iana"},"application/cbor-seq":{source:"iana"},"application/cccex":{source:"iana"},"application/ccmp+xml":{source:"iana",compressible:!0},"application/ccxml+xml":{source:"iana",compressible:!0,extensions:["ccxml"]},"application/cdfx+xml":{source:"iana",compressible:!0,extensions:["cdfx"]},"application/cdmi-capability":{source:"iana",extensions:["cdmia"]},"application/cdmi-container":{source:"iana",extensions:["cdmic"]},"application/cdmi-domain":{source:"iana",extensions:["cdmid"]},"application/cdmi-object":{source:"iana",extensions:["cdmio"]},"application/cdmi-queue":{source:"iana",extensions:["cdmiq"]},"application/cdni":{source:"iana"},"application/cea":{source:"iana"},"application/cea-2018+xml":{source:"iana",compressible:!0},"application/cellml+xml":{source:"iana",compressible:!0},"application/cfw":{source:"iana"},"application/city+json":{source:"iana",compressible:!0},"application/clr":{source:"iana"},"application/clue+xml":{source:"iana",compressible:!0},"application/clue_info+xml":{source:"iana",compressible:!0},"application/cms":{source:"iana"},"application/cnrp+xml":{source:"iana",compressible:!0},"application/coap-group+json":{source:"iana",compressible:!0},"application/coap-payload":{source:"iana"},"application/commonground":{source:"iana"},"application/conference-info+xml":{source:"iana",compressible:!0},"application/cose":{source:"iana"},"application/cose-key":{source:"iana"},"application/cose-key-set":{source:"iana"},"application/cpl+xml":{source:"iana",compressible:!0,extensions:["cpl"]},"application/csrattrs":{source:"iana"},"application/csta+xml":{source:"iana",compressible:!0},"application/cstadata+xml":{source:"iana",compressible:!0},"application/csvm+json":{source:"iana",compressible:!0},"application/cu-seeme":{source:"apache",extensions:["cu"]},"application/cwt":{source:"iana"},"application/cybercash":{source:"iana"},"application/dart":{compressible:!0},"application/dash+xml":{source:"iana",compressible:!0,extensions:["mpd"]},"application/dash-patch+xml":{source:"iana",compressible:!0,extensions:["mpp"]},"application/dashdelta":{source:"iana"},"application/davmount+xml":{source:"iana",compressible:!0,extensions:["davmount"]},"application/dca-rft":{source:"iana"},"application/dcd":{source:"iana"},"application/dec-dx":{source:"iana"},"application/dialog-info+xml":{source:"iana",compressible:!0},"application/dicom":{source:"iana"},"application/dicom+json":{source:"iana",compressible:!0},"application/dicom+xml":{source:"iana",compressible:!0},"application/dii":{source:"iana"},"application/dit":{source:"iana"},"application/dns":{source:"iana"},"application/dns+json":{source:"iana",compressible:!0},"application/dns-message":{source:"iana"},"application/docbook+xml":{source:"apache",compressible:!0,extensions:["dbk"]},"application/dots+cbor":{source:"iana"},"application/dskpp+xml":{source:"iana",compressible:!0},"application/dssc+der":{source:"iana",extensions:["dssc"]},"application/dssc+xml":{source:"iana",compressible:!0,extensions:["xdssc"]},"application/dvcs":{source:"iana"},"application/ecmascript":{source:"iana",compressible:!0,extensions:["es","ecma"]},"application/edi-consent":{source:"iana"},"application/edi-x12":{source:"iana",compressible:!1},"application/edifact":{source:"iana",compressible:!1},"application/efi":{source:"iana"},"application/elm+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/elm+xml":{source:"iana",compressible:!0},"application/emergencycalldata.cap+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/emergencycalldata.comment+xml":{source:"iana",compressible:!0},"application/emergencycalldata.control+xml":{source:"iana",compressible:!0},"application/emergencycalldata.deviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.ecall.msd":{source:"iana"},"application/emergencycalldata.providerinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.serviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.subscriberinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.veds+xml":{source:"iana",compressible:!0},"application/emma+xml":{source:"iana",compressible:!0,extensions:["emma"]},"application/emotionml+xml":{source:"iana",compressible:!0,extensions:["emotionml"]},"application/encaprtp":{source:"iana"},"application/epp+xml":{source:"iana",compressible:!0},"application/epub+zip":{source:"iana",compressible:!1,extensions:["epub"]},"application/eshop":{source:"iana"},"application/exi":{source:"iana",extensions:["exi"]},"application/expect-ct-report+json":{source:"iana",compressible:!0},"application/express":{source:"iana",extensions:["exp"]},"application/fastinfoset":{source:"iana"},"application/fastsoap":{source:"iana"},"application/fdt+xml":{source:"iana",compressible:!0,extensions:["fdt"]},"application/fhir+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/fhir+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/fido.trusted-apps+json":{compressible:!0},"application/fits":{source:"iana"},"application/flexfec":{source:"iana"},"application/font-sfnt":{source:"iana"},"application/font-tdpfr":{source:"iana",extensions:["pfr"]},"application/font-woff":{source:"iana",compressible:!1},"application/framework-attributes+xml":{source:"iana",compressible:!0},"application/geo+json":{source:"iana",compressible:!0,extensions:["geojson"]},"application/geo+json-seq":{source:"iana"},"application/geopackage+sqlite3":{source:"iana"},"application/geoxacml+xml":{source:"iana",compressible:!0},"application/gltf-buffer":{source:"iana"},"application/gml+xml":{source:"iana",compressible:!0,extensions:["gml"]},"application/gpx+xml":{source:"apache",compressible:!0,extensions:["gpx"]},"application/gxf":{source:"apache",extensions:["gxf"]},"application/gzip":{source:"iana",compressible:!1,extensions:["gz"]},"application/h224":{source:"iana"},"application/held+xml":{source:"iana",compressible:!0},"application/hjson":{extensions:["hjson"]},"application/http":{source:"iana"},"application/hyperstudio":{source:"iana",extensions:["stk"]},"application/ibe-key-request+xml":{source:"iana",compressible:!0},"application/ibe-pkg-reply+xml":{source:"iana",compressible:!0},"application/ibe-pp-data":{source:"iana"},"application/iges":{source:"iana"},"application/im-iscomposing+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/index":{source:"iana"},"application/index.cmd":{source:"iana"},"application/index.obj":{source:"iana"},"application/index.response":{source:"iana"},"application/index.vnd":{source:"iana"},"application/inkml+xml":{source:"iana",compressible:!0,extensions:["ink","inkml"]},"application/iotp":{source:"iana"},"application/ipfix":{source:"iana",extensions:["ipfix"]},"application/ipp":{source:"iana"},"application/isup":{source:"iana"},"application/its+xml":{source:"iana",compressible:!0,extensions:["its"]},"application/java-archive":{source:"apache",compressible:!1,extensions:["jar","war","ear"]},"application/java-serialized-object":{source:"apache",compressible:!1,extensions:["ser"]},"application/java-vm":{source:"apache",compressible:!1,extensions:["class"]},"application/javascript":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["js","mjs"]},"application/jf2feed+json":{source:"iana",compressible:!0},"application/jose":{source:"iana"},"application/jose+json":{source:"iana",compressible:!0},"application/jrd+json":{source:"iana",compressible:!0},"application/jscalendar+json":{source:"iana",compressible:!0},"application/json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["json","map"]},"application/json-patch+json":{source:"iana",compressible:!0},"application/json-seq":{source:"iana"},"application/json5":{extensions:["json5"]},"application/jsonml+json":{source:"apache",compressible:!0,extensions:["jsonml"]},"application/jwk+json":{source:"iana",compressible:!0},"application/jwk-set+json":{source:"iana",compressible:!0},"application/jwt":{source:"iana"},"application/kpml-request+xml":{source:"iana",compressible:!0},"application/kpml-response+xml":{source:"iana",compressible:!0},"application/ld+json":{source:"iana",compressible:!0,extensions:["jsonld"]},"application/lgr+xml":{source:"iana",compressible:!0,extensions:["lgr"]},"application/link-format":{source:"iana"},"application/load-control+xml":{source:"iana",compressible:!0},"application/lost+xml":{source:"iana",compressible:!0,extensions:["lostxml"]},"application/lostsync+xml":{source:"iana",compressible:!0},"application/lpf+zip":{source:"iana",compressible:!1},"application/lxf":{source:"iana"},"application/mac-binhex40":{source:"iana",extensions:["hqx"]},"application/mac-compactpro":{source:"apache",extensions:["cpt"]},"application/macwriteii":{source:"iana"},"application/mads+xml":{source:"iana",compressible:!0,extensions:["mads"]},"application/manifest+json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["webmanifest"]},"application/marc":{source:"iana",extensions:["mrc"]},"application/marcxml+xml":{source:"iana",compressible:!0,extensions:["mrcx"]},"application/mathematica":{source:"iana",extensions:["ma","nb","mb"]},"application/mathml+xml":{source:"iana",compressible:!0,extensions:["mathml"]},"application/mathml-content+xml":{source:"iana",compressible:!0},"application/mathml-presentation+xml":{source:"iana",compressible:!0},"application/mbms-associated-procedure-description+xml":{source:"iana",compressible:!0},"application/mbms-deregister+xml":{source:"iana",compressible:!0},"application/mbms-envelope+xml":{source:"iana",compressible:!0},"application/mbms-msk+xml":{source:"iana",compressible:!0},"application/mbms-msk-response+xml":{source:"iana",compressible:!0},"application/mbms-protection-description+xml":{source:"iana",compressible:!0},"application/mbms-reception-report+xml":{source:"iana",compressible:!0},"application/mbms-register+xml":{source:"iana",compressible:!0},"application/mbms-register-response+xml":{source:"iana",compressible:!0},"application/mbms-schedule+xml":{source:"iana",compressible:!0},"application/mbms-user-service-description+xml":{source:"iana",compressible:!0},"application/mbox":{source:"iana",extensions:["mbox"]},"application/media-policy-dataset+xml":{source:"iana",compressible:!0,extensions:["mpf"]},"application/media_control+xml":{source:"iana",compressible:!0},"application/mediaservercontrol+xml":{source:"iana",compressible:!0,extensions:["mscml"]},"application/merge-patch+json":{source:"iana",compressible:!0},"application/metalink+xml":{source:"apache",compressible:!0,extensions:["metalink"]},"application/metalink4+xml":{source:"iana",compressible:!0,extensions:["meta4"]},"application/mets+xml":{source:"iana",compressible:!0,extensions:["mets"]},"application/mf4":{source:"iana"},"application/mikey":{source:"iana"},"application/mipc":{source:"iana"},"application/missing-blocks+cbor-seq":{source:"iana"},"application/mmt-aei+xml":{source:"iana",compressible:!0,extensions:["maei"]},"application/mmt-usd+xml":{source:"iana",compressible:!0,extensions:["musd"]},"application/mods+xml":{source:"iana",compressible:!0,extensions:["mods"]},"application/moss-keys":{source:"iana"},"application/moss-signature":{source:"iana"},"application/mosskey-data":{source:"iana"},"application/mosskey-request":{source:"iana"},"application/mp21":{source:"iana",extensions:["m21","mp21"]},"application/mp4":{source:"iana",extensions:["mp4s","m4p"]},"application/mpeg4-generic":{source:"iana"},"application/mpeg4-iod":{source:"iana"},"application/mpeg4-iod-xmt":{source:"iana"},"application/mrb-consumer+xml":{source:"iana",compressible:!0},"application/mrb-publish+xml":{source:"iana",compressible:!0},"application/msc-ivr+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msc-mixer+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msword":{source:"iana",compressible:!1,extensions:["doc","dot"]},"application/mud+json":{source:"iana",compressible:!0},"application/multipart-core":{source:"iana"},"application/mxf":{source:"iana",extensions:["mxf"]},"application/n-quads":{source:"iana",extensions:["nq"]},"application/n-triples":{source:"iana",extensions:["nt"]},"application/nasdata":{source:"iana"},"application/news-checkgroups":{source:"iana",charset:"US-ASCII"},"application/news-groupinfo":{source:"iana",charset:"US-ASCII"},"application/news-transmission":{source:"iana"},"application/nlsml+xml":{source:"iana",compressible:!0},"application/node":{source:"iana",extensions:["cjs"]},"application/nss":{source:"iana"},"application/oauth-authz-req+jwt":{source:"iana"},"application/oblivious-dns-message":{source:"iana"},"application/ocsp-request":{source:"iana"},"application/ocsp-response":{source:"iana"},"application/octet-stream":{source:"iana",compressible:!1,extensions:["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{source:"iana",extensions:["oda"]},"application/odm+xml":{source:"iana",compressible:!0},"application/odx":{source:"iana"},"application/oebps-package+xml":{source:"iana",compressible:!0,extensions:["opf"]},"application/ogg":{source:"iana",compressible:!1,extensions:["ogx"]},"application/omdoc+xml":{source:"apache",compressible:!0,extensions:["omdoc"]},"application/onenote":{source:"apache",extensions:["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{source:"iana",compressible:!0},"application/oscore":{source:"iana"},"application/oxps":{source:"iana",extensions:["oxps"]},"application/p21":{source:"iana"},"application/p21+zip":{source:"iana",compressible:!1},"application/p2p-overlay+xml":{source:"iana",compressible:!0,extensions:["relo"]},"application/parityfec":{source:"iana"},"application/passport":{source:"iana"},"application/patch-ops-error+xml":{source:"iana",compressible:!0,extensions:["xer"]},"application/pdf":{source:"iana",compressible:!1,extensions:["pdf"]},"application/pdx":{source:"iana"},"application/pem-certificate-chain":{source:"iana"},"application/pgp-encrypted":{source:"iana",compressible:!1,extensions:["pgp"]},"application/pgp-keys":{source:"iana",extensions:["asc"]},"application/pgp-signature":{source:"iana",extensions:["asc","sig"]},"application/pics-rules":{source:"apache",extensions:["prf"]},"application/pidf+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pidf-diff+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pkcs10":{source:"iana",extensions:["p10"]},"application/pkcs12":{source:"iana"},"application/pkcs7-mime":{source:"iana",extensions:["p7m","p7c"]},"application/pkcs7-signature":{source:"iana",extensions:["p7s"]},"application/pkcs8":{source:"iana",extensions:["p8"]},"application/pkcs8-encrypted":{source:"iana"},"application/pkix-attr-cert":{source:"iana",extensions:["ac"]},"application/pkix-cert":{source:"iana",extensions:["cer"]},"application/pkix-crl":{source:"iana",extensions:["crl"]},"application/pkix-pkipath":{source:"iana",extensions:["pkipath"]},"application/pkixcmp":{source:"iana",extensions:["pki"]},"application/pls+xml":{source:"iana",compressible:!0,extensions:["pls"]},"application/poc-settings+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/postscript":{source:"iana",compressible:!0,extensions:["ai","eps","ps"]},"application/ppsp-tracker+json":{source:"iana",compressible:!0},"application/problem+json":{source:"iana",compressible:!0},"application/problem+xml":{source:"iana",compressible:!0},"application/provenance+xml":{source:"iana",compressible:!0,extensions:["provx"]},"application/prs.alvestrand.titrax-sheet":{source:"iana"},"application/prs.cww":{source:"iana",extensions:["cww"]},"application/prs.cyn":{source:"iana",charset:"7-BIT"},"application/prs.hpub+zip":{source:"iana",compressible:!1},"application/prs.nprend":{source:"iana"},"application/prs.plucker":{source:"iana"},"application/prs.rdf-xml-crypt":{source:"iana"},"application/prs.xsf+xml":{source:"iana",compressible:!0},"application/pskc+xml":{source:"iana",compressible:!0,extensions:["pskcxml"]},"application/pvd+json":{source:"iana",compressible:!0},"application/qsig":{source:"iana"},"application/raml+yaml":{compressible:!0,extensions:["raml"]},"application/raptorfec":{source:"iana"},"application/rdap+json":{source:"iana",compressible:!0},"application/rdf+xml":{source:"iana",compressible:!0,extensions:["rdf","owl"]},"application/reginfo+xml":{source:"iana",compressible:!0,extensions:["rif"]},"application/relax-ng-compact-syntax":{source:"iana",extensions:["rnc"]},"application/remote-printing":{source:"iana"},"application/reputon+json":{source:"iana",compressible:!0},"application/resource-lists+xml":{source:"iana",compressible:!0,extensions:["rl"]},"application/resource-lists-diff+xml":{source:"iana",compressible:!0,extensions:["rld"]},"application/rfc+xml":{source:"iana",compressible:!0},"application/riscos":{source:"iana"},"application/rlmi+xml":{source:"iana",compressible:!0},"application/rls-services+xml":{source:"iana",compressible:!0,extensions:["rs"]},"application/route-apd+xml":{source:"iana",compressible:!0,extensions:["rapd"]},"application/route-s-tsid+xml":{source:"iana",compressible:!0,extensions:["sls"]},"application/route-usd+xml":{source:"iana",compressible:!0,extensions:["rusd"]},"application/rpki-ghostbusters":{source:"iana",extensions:["gbr"]},"application/rpki-manifest":{source:"iana",extensions:["mft"]},"application/rpki-publication":{source:"iana"},"application/rpki-roa":{source:"iana",extensions:["roa"]},"application/rpki-updown":{source:"iana"},"application/rsd+xml":{source:"apache",compressible:!0,extensions:["rsd"]},"application/rss+xml":{source:"apache",compressible:!0,extensions:["rss"]},"application/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"application/rtploopback":{source:"iana"},"application/rtx":{source:"iana"},"application/samlassertion+xml":{source:"iana",compressible:!0},"application/samlmetadata+xml":{source:"iana",compressible:!0},"application/sarif+json":{source:"iana",compressible:!0},"application/sarif-external-properties+json":{source:"iana",compressible:!0},"application/sbe":{source:"iana"},"application/sbml+xml":{source:"iana",compressible:!0,extensions:["sbml"]},"application/scaip+xml":{source:"iana",compressible:!0},"application/scim+json":{source:"iana",compressible:!0},"application/scvp-cv-request":{source:"iana",extensions:["scq"]},"application/scvp-cv-response":{source:"iana",extensions:["scs"]},"application/scvp-vp-request":{source:"iana",extensions:["spq"]},"application/scvp-vp-response":{source:"iana",extensions:["spp"]},"application/sdp":{source:"iana",extensions:["sdp"]},"application/secevent+jwt":{source:"iana"},"application/senml+cbor":{source:"iana"},"application/senml+json":{source:"iana",compressible:!0},"application/senml+xml":{source:"iana",compressible:!0,extensions:["senmlx"]},"application/senml-etch+cbor":{source:"iana"},"application/senml-etch+json":{source:"iana",compressible:!0},"application/senml-exi":{source:"iana"},"application/sensml+cbor":{source:"iana"},"application/sensml+json":{source:"iana",compressible:!0},"application/sensml+xml":{source:"iana",compressible:!0,extensions:["sensmlx"]},"application/sensml-exi":{source:"iana"},"application/sep+xml":{source:"iana",compressible:!0},"application/sep-exi":{source:"iana"},"application/session-info":{source:"iana"},"application/set-payment":{source:"iana"},"application/set-payment-initiation":{source:"iana",extensions:["setpay"]},"application/set-registration":{source:"iana"},"application/set-registration-initiation":{source:"iana",extensions:["setreg"]},"application/sgml":{source:"iana"},"application/sgml-open-catalog":{source:"iana"},"application/shf+xml":{source:"iana",compressible:!0,extensions:["shf"]},"application/sieve":{source:"iana",extensions:["siv","sieve"]},"application/simple-filter+xml":{source:"iana",compressible:!0},"application/simple-message-summary":{source:"iana"},"application/simplesymbolcontainer":{source:"iana"},"application/sipc":{source:"iana"},"application/slate":{source:"iana"},"application/smil":{source:"iana"},"application/smil+xml":{source:"iana",compressible:!0,extensions:["smi","smil"]},"application/smpte336m":{source:"iana"},"application/soap+fastinfoset":{source:"iana"},"application/soap+xml":{source:"iana",compressible:!0},"application/sparql-query":{source:"iana",extensions:["rq"]},"application/sparql-results+xml":{source:"iana",compressible:!0,extensions:["srx"]},"application/spdx+json":{source:"iana",compressible:!0},"application/spirits-event+xml":{source:"iana",compressible:!0},"application/sql":{source:"iana"},"application/srgs":{source:"iana",extensions:["gram"]},"application/srgs+xml":{source:"iana",compressible:!0,extensions:["grxml"]},"application/sru+xml":{source:"iana",compressible:!0,extensions:["sru"]},"application/ssdl+xml":{source:"apache",compressible:!0,extensions:["ssdl"]},"application/ssml+xml":{source:"iana",compressible:!0,extensions:["ssml"]},"application/stix+json":{source:"iana",compressible:!0},"application/swid+xml":{source:"iana",compressible:!0,extensions:["swidtag"]},"application/tamp-apex-update":{source:"iana"},"application/tamp-apex-update-confirm":{source:"iana"},"application/tamp-community-update":{source:"iana"},"application/tamp-community-update-confirm":{source:"iana"},"application/tamp-error":{source:"iana"},"application/tamp-sequence-adjust":{source:"iana"},"application/tamp-sequence-adjust-confirm":{source:"iana"},"application/tamp-status-query":{source:"iana"},"application/tamp-status-response":{source:"iana"},"application/tamp-update":{source:"iana"},"application/tamp-update-confirm":{source:"iana"},"application/tar":{compressible:!0},"application/taxii+json":{source:"iana",compressible:!0},"application/td+json":{source:"iana",compressible:!0},"application/tei+xml":{source:"iana",compressible:!0,extensions:["tei","teicorpus"]},"application/tetra_isi":{source:"iana"},"application/thraud+xml":{source:"iana",compressible:!0,extensions:["tfi"]},"application/timestamp-query":{source:"iana"},"application/timestamp-reply":{source:"iana"},"application/timestamped-data":{source:"iana",extensions:["tsd"]},"application/tlsrpt+gzip":{source:"iana"},"application/tlsrpt+json":{source:"iana",compressible:!0},"application/tnauthlist":{source:"iana"},"application/token-introspection+jwt":{source:"iana"},"application/toml":{compressible:!0,extensions:["toml"]},"application/trickle-ice-sdpfrag":{source:"iana"},"application/trig":{source:"iana",extensions:["trig"]},"application/ttml+xml":{source:"iana",compressible:!0,extensions:["ttml"]},"application/tve-trigger":{source:"iana"},"application/tzif":{source:"iana"},"application/tzif-leap":{source:"iana"},"application/ubjson":{compressible:!1,extensions:["ubj"]},"application/ulpfec":{source:"iana"},"application/urc-grpsheet+xml":{source:"iana",compressible:!0},"application/urc-ressheet+xml":{source:"iana",compressible:!0,extensions:["rsheet"]},"application/urc-targetdesc+xml":{source:"iana",compressible:!0,extensions:["td"]},"application/urc-uisocketdesc+xml":{source:"iana",compressible:!0},"application/vcard+json":{source:"iana",compressible:!0},"application/vcard+xml":{source:"iana",compressible:!0},"application/vemmi":{source:"iana"},"application/vividence.scriptfile":{source:"apache"},"application/vnd.1000minds.decision-model+xml":{source:"iana",compressible:!0,extensions:["1km"]},"application/vnd.3gpp-prose+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-prose-pc3ch+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-v2x-local-service-information":{source:"iana"},"application/vnd.3gpp.5gnas":{source:"iana"},"application/vnd.3gpp.access-transfer-events+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.bsf+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gmop+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gtpc":{source:"iana"},"application/vnd.3gpp.interworking-data":{source:"iana"},"application/vnd.3gpp.lpp":{source:"iana"},"application/vnd.3gpp.mc-signalling-ear":{source:"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-payload":{source:"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-signalling":{source:"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-floor-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-signed+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-init-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-transmission-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mid-call+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ngap":{source:"iana"},"application/vnd.3gpp.pfcp":{source:"iana"},"application/vnd.3gpp.pic-bw-large":{source:"iana",extensions:["plb"]},"application/vnd.3gpp.pic-bw-small":{source:"iana",extensions:["psb"]},"application/vnd.3gpp.pic-bw-var":{source:"iana",extensions:["pvb"]},"application/vnd.3gpp.s1ap":{source:"iana"},"application/vnd.3gpp.sms":{source:"iana"},"application/vnd.3gpp.sms+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-ext+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.state-and-event-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ussd+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.bcmcsinfo+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.sms":{source:"iana"},"application/vnd.3gpp2.tcap":{source:"iana",extensions:["tcap"]},"application/vnd.3lightssoftware.imagescal":{source:"iana"},"application/vnd.3m.post-it-notes":{source:"iana",extensions:["pwn"]},"application/vnd.accpac.simply.aso":{source:"iana",extensions:["aso"]},"application/vnd.accpac.simply.imp":{source:"iana",extensions:["imp"]},"application/vnd.acucobol":{source:"iana",extensions:["acu"]},"application/vnd.acucorp":{source:"iana",extensions:["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{source:"apache",compressible:!1,extensions:["air"]},"application/vnd.adobe.flash.movie":{source:"iana"},"application/vnd.adobe.formscentral.fcdt":{source:"iana",extensions:["fcdt"]},"application/vnd.adobe.fxp":{source:"iana",extensions:["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{source:"iana"},"application/vnd.adobe.xdp+xml":{source:"iana",compressible:!0,extensions:["xdp"]},"application/vnd.adobe.xfdf":{source:"iana",extensions:["xfdf"]},"application/vnd.aether.imp":{source:"iana"},"application/vnd.afpc.afplinedata":{source:"iana"},"application/vnd.afpc.afplinedata-pagedef":{source:"iana"},"application/vnd.afpc.cmoca-cmresource":{source:"iana"},"application/vnd.afpc.foca-charset":{source:"iana"},"application/vnd.afpc.foca-codedfont":{source:"iana"},"application/vnd.afpc.foca-codepage":{source:"iana"},"application/vnd.afpc.modca":{source:"iana"},"application/vnd.afpc.modca-cmtable":{source:"iana"},"application/vnd.afpc.modca-formdef":{source:"iana"},"application/vnd.afpc.modca-mediummap":{source:"iana"},"application/vnd.afpc.modca-objectcontainer":{source:"iana"},"application/vnd.afpc.modca-overlay":{source:"iana"},"application/vnd.afpc.modca-pagesegment":{source:"iana"},"application/vnd.age":{source:"iana",extensions:["age"]},"application/vnd.ah-barcode":{source:"iana"},"application/vnd.ahead.space":{source:"iana",extensions:["ahead"]},"application/vnd.airzip.filesecure.azf":{source:"iana",extensions:["azf"]},"application/vnd.airzip.filesecure.azs":{source:"iana",extensions:["azs"]},"application/vnd.amadeus+json":{source:"iana",compressible:!0},"application/vnd.amazon.ebook":{source:"apache",extensions:["azw"]},"application/vnd.amazon.mobi8-ebook":{source:"iana"},"application/vnd.americandynamics.acc":{source:"iana",extensions:["acc"]},"application/vnd.amiga.ami":{source:"iana",extensions:["ami"]},"application/vnd.amundsen.maze+xml":{source:"iana",compressible:!0},"application/vnd.android.ota":{source:"iana"},"application/vnd.android.package-archive":{source:"apache",compressible:!1,extensions:["apk"]},"application/vnd.anki":{source:"iana"},"application/vnd.anser-web-certificate-issue-initiation":{source:"iana",extensions:["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{source:"apache",extensions:["fti"]},"application/vnd.antix.game-component":{source:"iana",extensions:["atx"]},"application/vnd.apache.arrow.file":{source:"iana"},"application/vnd.apache.arrow.stream":{source:"iana"},"application/vnd.apache.thrift.binary":{source:"iana"},"application/vnd.apache.thrift.compact":{source:"iana"},"application/vnd.apache.thrift.json":{source:"iana"},"application/vnd.api+json":{source:"iana",compressible:!0},"application/vnd.aplextor.warrp+json":{source:"iana",compressible:!0},"application/vnd.apothekende.reservation+json":{source:"iana",compressible:!0},"application/vnd.apple.installer+xml":{source:"iana",compressible:!0,extensions:["mpkg"]},"application/vnd.apple.keynote":{source:"iana",extensions:["key"]},"application/vnd.apple.mpegurl":{source:"iana",extensions:["m3u8"]},"application/vnd.apple.numbers":{source:"iana",extensions:["numbers"]},"application/vnd.apple.pages":{source:"iana",extensions:["pages"]},"application/vnd.apple.pkpass":{compressible:!1,extensions:["pkpass"]},"application/vnd.arastra.swi":{source:"iana"},"application/vnd.aristanetworks.swi":{source:"iana",extensions:["swi"]},"application/vnd.artisan+json":{source:"iana",compressible:!0},"application/vnd.artsquare":{source:"iana"},"application/vnd.astraea-software.iota":{source:"iana",extensions:["iota"]},"application/vnd.audiograph":{source:"iana",extensions:["aep"]},"application/vnd.autopackage":{source:"iana"},"application/vnd.avalon+json":{source:"iana",compressible:!0},"application/vnd.avistar+xml":{source:"iana",compressible:!0},"application/vnd.balsamiq.bmml+xml":{source:"iana",compressible:!0,extensions:["bmml"]},"application/vnd.balsamiq.bmpr":{source:"iana"},"application/vnd.banana-accounting":{source:"iana"},"application/vnd.bbf.usp.error":{source:"iana"},"application/vnd.bbf.usp.msg":{source:"iana"},"application/vnd.bbf.usp.msg+json":{source:"iana",compressible:!0},"application/vnd.bekitzur-stech+json":{source:"iana",compressible:!0},"application/vnd.bint.med-content":{source:"iana"},"application/vnd.biopax.rdf+xml":{source:"iana",compressible:!0},"application/vnd.blink-idb-value-wrapper":{source:"iana"},"application/vnd.blueice.multipass":{source:"iana",extensions:["mpm"]},"application/vnd.bluetooth.ep.oob":{source:"iana"},"application/vnd.bluetooth.le.oob":{source:"iana"},"application/vnd.bmi":{source:"iana",extensions:["bmi"]},"application/vnd.bpf":{source:"iana"},"application/vnd.bpf3":{source:"iana"},"application/vnd.businessobjects":{source:"iana",extensions:["rep"]},"application/vnd.byu.uapi+json":{source:"iana",compressible:!0},"application/vnd.cab-jscript":{source:"iana"},"application/vnd.canon-cpdl":{source:"iana"},"application/vnd.canon-lips":{source:"iana"},"application/vnd.capasystems-pg+json":{source:"iana",compressible:!0},"application/vnd.cendio.thinlinc.clientconf":{source:"iana"},"application/vnd.century-systems.tcp_stream":{source:"iana"},"application/vnd.chemdraw+xml":{source:"iana",compressible:!0,extensions:["cdxml"]},"application/vnd.chess-pgn":{source:"iana"},"application/vnd.chipnuts.karaoke-mmd":{source:"iana",extensions:["mmd"]},"application/vnd.ciedi":{source:"iana"},"application/vnd.cinderella":{source:"iana",extensions:["cdy"]},"application/vnd.cirpack.isdn-ext":{source:"iana"},"application/vnd.citationstyles.style+xml":{source:"iana",compressible:!0,extensions:["csl"]},"application/vnd.claymore":{source:"iana",extensions:["cla"]},"application/vnd.cloanto.rp9":{source:"iana",extensions:["rp9"]},"application/vnd.clonk.c4group":{source:"iana",extensions:["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{source:"iana",extensions:["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{source:"iana",extensions:["c11amz"]},"application/vnd.coffeescript":{source:"iana"},"application/vnd.collabio.xodocuments.document":{source:"iana"},"application/vnd.collabio.xodocuments.document-template":{source:"iana"},"application/vnd.collabio.xodocuments.presentation":{source:"iana"},"application/vnd.collabio.xodocuments.presentation-template":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{source:"iana"},"application/vnd.collection+json":{source:"iana",compressible:!0},"application/vnd.collection.doc+json":{source:"iana",compressible:!0},"application/vnd.collection.next+json":{source:"iana",compressible:!0},"application/vnd.comicbook+zip":{source:"iana",compressible:!1},"application/vnd.comicbook-rar":{source:"iana"},"application/vnd.commerce-battelle":{source:"iana"},"application/vnd.commonspace":{source:"iana",extensions:["csp"]},"application/vnd.contact.cmsg":{source:"iana",extensions:["cdbcmsg"]},"application/vnd.coreos.ignition+json":{source:"iana",compressible:!0},"application/vnd.cosmocaller":{source:"iana",extensions:["cmc"]},"application/vnd.crick.clicker":{source:"iana",extensions:["clkx"]},"application/vnd.crick.clicker.keyboard":{source:"iana",extensions:["clkk"]},"application/vnd.crick.clicker.palette":{source:"iana",extensions:["clkp"]},"application/vnd.crick.clicker.template":{source:"iana",extensions:["clkt"]},"application/vnd.crick.clicker.wordbank":{source:"iana",extensions:["clkw"]},"application/vnd.criticaltools.wbs+xml":{source:"iana",compressible:!0,extensions:["wbs"]},"application/vnd.cryptii.pipe+json":{source:"iana",compressible:!0},"application/vnd.crypto-shade-file":{source:"iana"},"application/vnd.cryptomator.encrypted":{source:"iana"},"application/vnd.cryptomator.vault":{source:"iana"},"application/vnd.ctc-posml":{source:"iana",extensions:["pml"]},"application/vnd.ctct.ws+xml":{source:"iana",compressible:!0},"application/vnd.cups-pdf":{source:"iana"},"application/vnd.cups-postscript":{source:"iana"},"application/vnd.cups-ppd":{source:"iana",extensions:["ppd"]},"application/vnd.cups-raster":{source:"iana"},"application/vnd.cups-raw":{source:"iana"},"application/vnd.curl":{source:"iana"},"application/vnd.curl.car":{source:"apache",extensions:["car"]},"application/vnd.curl.pcurl":{source:"apache",extensions:["pcurl"]},"application/vnd.cyan.dean.root+xml":{source:"iana",compressible:!0},"application/vnd.cybank":{source:"iana"},"application/vnd.cyclonedx+json":{source:"iana",compressible:!0},"application/vnd.cyclonedx+xml":{source:"iana",compressible:!0},"application/vnd.d2l.coursepackage1p0+zip":{source:"iana",compressible:!1},"application/vnd.d3m-dataset":{source:"iana"},"application/vnd.d3m-problem":{source:"iana"},"application/vnd.dart":{source:"iana",compressible:!0,extensions:["dart"]},"application/vnd.data-vision.rdz":{source:"iana",extensions:["rdz"]},"application/vnd.datapackage+json":{source:"iana",compressible:!0},"application/vnd.dataresource+json":{source:"iana",compressible:!0},"application/vnd.dbf":{source:"iana",extensions:["dbf"]},"application/vnd.debian.binary-package":{source:"iana"},"application/vnd.dece.data":{source:"iana",extensions:["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{source:"iana",compressible:!0,extensions:["uvt","uvvt"]},"application/vnd.dece.unspecified":{source:"iana",extensions:["uvx","uvvx"]},"application/vnd.dece.zip":{source:"iana",extensions:["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{source:"iana",extensions:["fe_launch"]},"application/vnd.desmume.movie":{source:"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{source:"iana"},"application/vnd.dm.delegation+xml":{source:"iana",compressible:!0},"application/vnd.dna":{source:"iana",extensions:["dna"]},"application/vnd.document+json":{source:"iana",compressible:!0},"application/vnd.dolby.mlp":{source:"apache",extensions:["mlp"]},"application/vnd.dolby.mobile.1":{source:"iana"},"application/vnd.dolby.mobile.2":{source:"iana"},"application/vnd.doremir.scorecloud-binary-document":{source:"iana"},"application/vnd.dpgraph":{source:"iana",extensions:["dpg"]},"application/vnd.dreamfactory":{source:"iana",extensions:["dfac"]},"application/vnd.drive+json":{source:"iana",compressible:!0},"application/vnd.ds-keypoint":{source:"apache",extensions:["kpxx"]},"application/vnd.dtg.local":{source:"iana"},"application/vnd.dtg.local.flash":{source:"iana"},"application/vnd.dtg.local.html":{source:"iana"},"application/vnd.dvb.ait":{source:"iana",extensions:["ait"]},"application/vnd.dvb.dvbisl+xml":{source:"iana",compressible:!0},"application/vnd.dvb.dvbj":{source:"iana"},"application/vnd.dvb.esgcontainer":{source:"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess2":{source:"iana"},"application/vnd.dvb.ipdcesgpdd":{source:"iana"},"application/vnd.dvb.ipdcroaming":{source:"iana"},"application/vnd.dvb.iptv.alfec-base":{source:"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{source:"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-container+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-generic+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-msglist+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-request+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-response+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-init+xml":{source:"iana",compressible:!0},"application/vnd.dvb.pfr":{source:"iana"},"application/vnd.dvb.service":{source:"iana",extensions:["svc"]},"application/vnd.dxr":{source:"iana"},"application/vnd.dynageo":{source:"iana",extensions:["geo"]},"application/vnd.dzr":{source:"iana"},"application/vnd.easykaraoke.cdgdownload":{source:"iana"},"application/vnd.ecdis-update":{source:"iana"},"application/vnd.ecip.rlp":{source:"iana"},"application/vnd.eclipse.ditto+json":{source:"iana",compressible:!0},"application/vnd.ecowin.chart":{source:"iana",extensions:["mag"]},"application/vnd.ecowin.filerequest":{source:"iana"},"application/vnd.ecowin.fileupdate":{source:"iana"},"application/vnd.ecowin.series":{source:"iana"},"application/vnd.ecowin.seriesrequest":{source:"iana"},"application/vnd.ecowin.seriesupdate":{source:"iana"},"application/vnd.efi.img":{source:"iana"},"application/vnd.efi.iso":{source:"iana"},"application/vnd.emclient.accessrequest+xml":{source:"iana",compressible:!0},"application/vnd.enliven":{source:"iana",extensions:["nml"]},"application/vnd.enphase.envoy":{source:"iana"},"application/vnd.eprints.data+xml":{source:"iana",compressible:!0},"application/vnd.epson.esf":{source:"iana",extensions:["esf"]},"application/vnd.epson.msf":{source:"iana",extensions:["msf"]},"application/vnd.epson.quickanime":{source:"iana",extensions:["qam"]},"application/vnd.epson.salt":{source:"iana",extensions:["slt"]},"application/vnd.epson.ssf":{source:"iana",extensions:["ssf"]},"application/vnd.ericsson.quickcall":{source:"iana"},"application/vnd.espass-espass+zip":{source:"iana",compressible:!1},"application/vnd.eszigno3+xml":{source:"iana",compressible:!0,extensions:["es3","et3"]},"application/vnd.etsi.aoc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.asic-e+zip":{source:"iana",compressible:!1},"application/vnd.etsi.asic-s+zip":{source:"iana",compressible:!1},"application/vnd.etsi.cug+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvcommand+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-bc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-cod+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-npvr+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvservice+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsync+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvueprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mcid+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mheg5":{source:"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{source:"iana",compressible:!0},"application/vnd.etsi.pstn+xml":{source:"iana",compressible:!0},"application/vnd.etsi.sci+xml":{source:"iana",compressible:!0},"application/vnd.etsi.simservs+xml":{source:"iana",compressible:!0},"application/vnd.etsi.timestamp-token":{source:"iana"},"application/vnd.etsi.tsl+xml":{source:"iana",compressible:!0},"application/vnd.etsi.tsl.der":{source:"iana"},"application/vnd.eu.kasparian.car+json":{source:"iana",compressible:!0},"application/vnd.eudora.data":{source:"iana"},"application/vnd.evolv.ecig.profile":{source:"iana"},"application/vnd.evolv.ecig.settings":{source:"iana"},"application/vnd.evolv.ecig.theme":{source:"iana"},"application/vnd.exstream-empower+zip":{source:"iana",compressible:!1},"application/vnd.exstream-package":{source:"iana"},"application/vnd.ezpix-album":{source:"iana",extensions:["ez2"]},"application/vnd.ezpix-package":{source:"iana",extensions:["ez3"]},"application/vnd.f-secure.mobile":{source:"iana"},"application/vnd.familysearch.gedcom+zip":{source:"iana",compressible:!1},"application/vnd.fastcopy-disk-image":{source:"iana"},"application/vnd.fdf":{source:"iana",extensions:["fdf"]},"application/vnd.fdsn.mseed":{source:"iana",extensions:["mseed"]},"application/vnd.fdsn.seed":{source:"iana",extensions:["seed","dataless"]},"application/vnd.ffsns":{source:"iana"},"application/vnd.ficlab.flb+zip":{source:"iana",compressible:!1},"application/vnd.filmit.zfc":{source:"iana"},"application/vnd.fints":{source:"iana"},"application/vnd.firemonkeys.cloudcell":{source:"iana"},"application/vnd.flographit":{source:"iana",extensions:["gph"]},"application/vnd.fluxtime.clip":{source:"iana",extensions:["ftc"]},"application/vnd.font-fontforge-sfd":{source:"iana"},"application/vnd.framemaker":{source:"iana",extensions:["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{source:"iana",extensions:["fnc"]},"application/vnd.frogans.ltf":{source:"iana",extensions:["ltf"]},"application/vnd.fsc.weblaunch":{source:"iana",extensions:["fsc"]},"application/vnd.fujifilm.fb.docuworks":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.container":{source:"iana"},"application/vnd.fujifilm.fb.jfi+xml":{source:"iana",compressible:!0},"application/vnd.fujitsu.oasys":{source:"iana",extensions:["oas"]},"application/vnd.fujitsu.oasys2":{source:"iana",extensions:["oa2"]},"application/vnd.fujitsu.oasys3":{source:"iana",extensions:["oa3"]},"application/vnd.fujitsu.oasysgp":{source:"iana",extensions:["fg5"]},"application/vnd.fujitsu.oasysprs":{source:"iana",extensions:["bh2"]},"application/vnd.fujixerox.art-ex":{source:"iana"},"application/vnd.fujixerox.art4":{source:"iana"},"application/vnd.fujixerox.ddd":{source:"iana",extensions:["ddd"]},"application/vnd.fujixerox.docuworks":{source:"iana",extensions:["xdw"]},"application/vnd.fujixerox.docuworks.binder":{source:"iana",extensions:["xbd"]},"application/vnd.fujixerox.docuworks.container":{source:"iana"},"application/vnd.fujixerox.hbpl":{source:"iana"},"application/vnd.fut-misnet":{source:"iana"},"application/vnd.futoin+cbor":{source:"iana"},"application/vnd.futoin+json":{source:"iana",compressible:!0},"application/vnd.fuzzysheet":{source:"iana",extensions:["fzs"]},"application/vnd.genomatix.tuxedo":{source:"iana",extensions:["txd"]},"application/vnd.gentics.grd+json":{source:"iana",compressible:!0},"application/vnd.geo+json":{source:"iana",compressible:!0},"application/vnd.geocube+xml":{source:"iana",compressible:!0},"application/vnd.geogebra.file":{source:"iana",extensions:["ggb"]},"application/vnd.geogebra.slides":{source:"iana"},"application/vnd.geogebra.tool":{source:"iana",extensions:["ggt"]},"application/vnd.geometry-explorer":{source:"iana",extensions:["gex","gre"]},"application/vnd.geonext":{source:"iana",extensions:["gxt"]},"application/vnd.geoplan":{source:"iana",extensions:["g2w"]},"application/vnd.geospace":{source:"iana",extensions:["g3w"]},"application/vnd.gerber":{source:"iana"},"application/vnd.globalplatform.card-content-mgt":{source:"iana"},"application/vnd.globalplatform.card-content-mgt-response":{source:"iana"},"application/vnd.gmx":{source:"iana",extensions:["gmx"]},"application/vnd.google-apps.document":{compressible:!1,extensions:["gdoc"]},"application/vnd.google-apps.presentation":{compressible:!1,extensions:["gslides"]},"application/vnd.google-apps.spreadsheet":{compressible:!1,extensions:["gsheet"]},"application/vnd.google-earth.kml+xml":{source:"iana",compressible:!0,extensions:["kml"]},"application/vnd.google-earth.kmz":{source:"iana",compressible:!1,extensions:["kmz"]},"application/vnd.gov.sk.e-form+xml":{source:"iana",compressible:!0},"application/vnd.gov.sk.e-form+zip":{source:"iana",compressible:!1},"application/vnd.gov.sk.xmldatacontainer+xml":{source:"iana",compressible:!0},"application/vnd.grafeq":{source:"iana",extensions:["gqf","gqs"]},"application/vnd.gridmp":{source:"iana"},"application/vnd.groove-account":{source:"iana",extensions:["gac"]},"application/vnd.groove-help":{source:"iana",extensions:["ghf"]},"application/vnd.groove-identity-message":{source:"iana",extensions:["gim"]},"application/vnd.groove-injector":{source:"iana",extensions:["grv"]},"application/vnd.groove-tool-message":{source:"iana",extensions:["gtm"]},"application/vnd.groove-tool-template":{source:"iana",extensions:["tpl"]},"application/vnd.groove-vcard":{source:"iana",extensions:["vcg"]},"application/vnd.hal+json":{source:"iana",compressible:!0},"application/vnd.hal+xml":{source:"iana",compressible:!0,extensions:["hal"]},"application/vnd.handheld-entertainment+xml":{source:"iana",compressible:!0,extensions:["zmm"]},"application/vnd.hbci":{source:"iana",extensions:["hbci"]},"application/vnd.hc+json":{source:"iana",compressible:!0},"application/vnd.hcl-bireports":{source:"iana"},"application/vnd.hdt":{source:"iana"},"application/vnd.heroku+json":{source:"iana",compressible:!0},"application/vnd.hhe.lesson-player":{source:"iana",extensions:["les"]},"application/vnd.hl7cda+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hl7v2+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hp-hpgl":{source:"iana",extensions:["hpgl"]},"application/vnd.hp-hpid":{source:"iana",extensions:["hpid"]},"application/vnd.hp-hps":{source:"iana",extensions:["hps"]},"application/vnd.hp-jlyt":{source:"iana",extensions:["jlt"]},"application/vnd.hp-pcl":{source:"iana",extensions:["pcl"]},"application/vnd.hp-pclxl":{source:"iana",extensions:["pclxl"]},"application/vnd.httphone":{source:"iana"},"application/vnd.hydrostatix.sof-data":{source:"iana",extensions:["sfd-hdstx"]},"application/vnd.hyper+json":{source:"iana",compressible:!0},"application/vnd.hyper-item+json":{source:"iana",compressible:!0},"application/vnd.hyperdrive+json":{source:"iana",compressible:!0},"application/vnd.hzn-3d-crossword":{source:"iana"},"application/vnd.ibm.afplinedata":{source:"iana"},"application/vnd.ibm.electronic-media":{source:"iana"},"application/vnd.ibm.minipay":{source:"iana",extensions:["mpy"]},"application/vnd.ibm.modcap":{source:"iana",extensions:["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{source:"iana",extensions:["irm"]},"application/vnd.ibm.secure-container":{source:"iana",extensions:["sc"]},"application/vnd.iccprofile":{source:"iana",extensions:["icc","icm"]},"application/vnd.ieee.1905":{source:"iana"},"application/vnd.igloader":{source:"iana",extensions:["igl"]},"application/vnd.imagemeter.folder+zip":{source:"iana",compressible:!1},"application/vnd.imagemeter.image+zip":{source:"iana",compressible:!1},"application/vnd.immervision-ivp":{source:"iana",extensions:["ivp"]},"application/vnd.immervision-ivu":{source:"iana",extensions:["ivu"]},"application/vnd.ims.imsccv1p1":{source:"iana"},"application/vnd.ims.imsccv1p2":{source:"iana"},"application/vnd.ims.imsccv1p3":{source:"iana"},"application/vnd.ims.lis.v2.result+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy.id+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings.simple+json":{source:"iana",compressible:!0},"application/vnd.informedcontrol.rms+xml":{source:"iana",compressible:!0},"application/vnd.informix-visionary":{source:"iana"},"application/vnd.infotech.project":{source:"iana"},"application/vnd.infotech.project+xml":{source:"iana",compressible:!0},"application/vnd.innopath.wamp.notification":{source:"iana"},"application/vnd.insors.igm":{source:"iana",extensions:["igm"]},"application/vnd.intercon.formnet":{source:"iana",extensions:["xpw","xpx"]},"application/vnd.intergeo":{source:"iana",extensions:["i2g"]},"application/vnd.intertrust.digibox":{source:"iana"},"application/vnd.intertrust.nncp":{source:"iana"},"application/vnd.intu.qbo":{source:"iana",extensions:["qbo"]},"application/vnd.intu.qfx":{source:"iana",extensions:["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.conceptitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.knowledgeitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsmessage+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.packageitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.planningitem+xml":{source:"iana",compressible:!0},"application/vnd.ipunplugged.rcprofile":{source:"iana",extensions:["rcprofile"]},"application/vnd.irepository.package+xml":{source:"iana",compressible:!0,extensions:["irp"]},"application/vnd.is-xpr":{source:"iana",extensions:["xpr"]},"application/vnd.isac.fcs":{source:"iana",extensions:["fcs"]},"application/vnd.iso11783-10+zip":{source:"iana",compressible:!1},"application/vnd.jam":{source:"iana",extensions:["jam"]},"application/vnd.japannet-directory-service":{source:"iana"},"application/vnd.japannet-jpnstore-wakeup":{source:"iana"},"application/vnd.japannet-payment-wakeup":{source:"iana"},"application/vnd.japannet-registration":{source:"iana"},"application/vnd.japannet-registration-wakeup":{source:"iana"},"application/vnd.japannet-setstore-wakeup":{source:"iana"},"application/vnd.japannet-verification":{source:"iana"},"application/vnd.japannet-verification-wakeup":{source:"iana"},"application/vnd.jcp.javame.midlet-rms":{source:"iana",extensions:["rms"]},"application/vnd.jisp":{source:"iana",extensions:["jisp"]},"application/vnd.joost.joda-archive":{source:"iana",extensions:["joda"]},"application/vnd.jsk.isdn-ngn":{source:"iana"},"application/vnd.kahootz":{source:"iana",extensions:["ktz","ktr"]},"application/vnd.kde.karbon":{source:"iana",extensions:["karbon"]},"application/vnd.kde.kchart":{source:"iana",extensions:["chrt"]},"application/vnd.kde.kformula":{source:"iana",extensions:["kfo"]},"application/vnd.kde.kivio":{source:"iana",extensions:["flw"]},"application/vnd.kde.kontour":{source:"iana",extensions:["kon"]},"application/vnd.kde.kpresenter":{source:"iana",extensions:["kpr","kpt"]},"application/vnd.kde.kspread":{source:"iana",extensions:["ksp"]},"application/vnd.kde.kword":{source:"iana",extensions:["kwd","kwt"]},"application/vnd.kenameaapp":{source:"iana",extensions:["htke"]},"application/vnd.kidspiration":{source:"iana",extensions:["kia"]},"application/vnd.kinar":{source:"iana",extensions:["kne","knp"]},"application/vnd.koan":{source:"iana",extensions:["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{source:"iana",extensions:["sse"]},"application/vnd.las":{source:"iana"},"application/vnd.las.las+json":{source:"iana",compressible:!0},"application/vnd.las.las+xml":{source:"iana",compressible:!0,extensions:["lasxml"]},"application/vnd.laszip":{source:"iana"},"application/vnd.leap+json":{source:"iana",compressible:!0},"application/vnd.liberty-request+xml":{source:"iana",compressible:!0},"application/vnd.llamagraphics.life-balance.desktop":{source:"iana",extensions:["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{source:"iana",compressible:!0,extensions:["lbe"]},"application/vnd.logipipe.circuit+zip":{source:"iana",compressible:!1},"application/vnd.loom":{source:"iana"},"application/vnd.lotus-1-2-3":{source:"iana",extensions:["123"]},"application/vnd.lotus-approach":{source:"iana",extensions:["apr"]},"application/vnd.lotus-freelance":{source:"iana",extensions:["pre"]},"application/vnd.lotus-notes":{source:"iana",extensions:["nsf"]},"application/vnd.lotus-organizer":{source:"iana",extensions:["org"]},"application/vnd.lotus-screencam":{source:"iana",extensions:["scm"]},"application/vnd.lotus-wordpro":{source:"iana",extensions:["lwp"]},"application/vnd.macports.portpkg":{source:"iana",extensions:["portpkg"]},"application/vnd.mapbox-vector-tile":{source:"iana",extensions:["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.conftoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.license+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.mdcf":{source:"iana"},"application/vnd.mason+json":{source:"iana",compressible:!0},"application/vnd.maxar.archive.3tz+zip":{source:"iana",compressible:!1},"application/vnd.maxmind.maxmind-db":{source:"iana"},"application/vnd.mcd":{source:"iana",extensions:["mcd"]},"application/vnd.medcalcdata":{source:"iana",extensions:["mc1"]},"application/vnd.mediastation.cdkey":{source:"iana",extensions:["cdkey"]},"application/vnd.meridian-slingshot":{source:"iana"},"application/vnd.mfer":{source:"iana",extensions:["mwf"]},"application/vnd.mfmp":{source:"iana",extensions:["mfm"]},"application/vnd.micro+json":{source:"iana",compressible:!0},"application/vnd.micrografx.flo":{source:"iana",extensions:["flo"]},"application/vnd.micrografx.igx":{source:"iana",extensions:["igx"]},"application/vnd.microsoft.portable-executable":{source:"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{source:"iana"},"application/vnd.miele+json":{source:"iana",compressible:!0},"application/vnd.mif":{source:"iana",extensions:["mif"]},"application/vnd.minisoft-hp3000-save":{source:"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{source:"iana"},"application/vnd.mobius.daf":{source:"iana",extensions:["daf"]},"application/vnd.mobius.dis":{source:"iana",extensions:["dis"]},"application/vnd.mobius.mbk":{source:"iana",extensions:["mbk"]},"application/vnd.mobius.mqy":{source:"iana",extensions:["mqy"]},"application/vnd.mobius.msl":{source:"iana",extensions:["msl"]},"application/vnd.mobius.plc":{source:"iana",extensions:["plc"]},"application/vnd.mobius.txf":{source:"iana",extensions:["txf"]},"application/vnd.mophun.application":{source:"iana",extensions:["mpn"]},"application/vnd.mophun.certificate":{source:"iana",extensions:["mpc"]},"application/vnd.motorola.flexsuite":{source:"iana"},"application/vnd.motorola.flexsuite.adsi":{source:"iana"},"application/vnd.motorola.flexsuite.fis":{source:"iana"},"application/vnd.motorola.flexsuite.gotap":{source:"iana"},"application/vnd.motorola.flexsuite.kmr":{source:"iana"},"application/vnd.motorola.flexsuite.ttc":{source:"iana"},"application/vnd.motorola.flexsuite.wem":{source:"iana"},"application/vnd.motorola.iprm":{source:"iana"},"application/vnd.mozilla.xul+xml":{source:"iana",compressible:!0,extensions:["xul"]},"application/vnd.ms-3mfdocument":{source:"iana"},"application/vnd.ms-artgalry":{source:"iana",extensions:["cil"]},"application/vnd.ms-asf":{source:"iana"},"application/vnd.ms-cab-compressed":{source:"iana",extensions:["cab"]},"application/vnd.ms-color.iccprofile":{source:"apache"},"application/vnd.ms-excel":{source:"iana",compressible:!1,extensions:["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{source:"iana",extensions:["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{source:"iana",extensions:["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{source:"iana",extensions:["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{source:"iana",extensions:["xltm"]},"application/vnd.ms-fontobject":{source:"iana",compressible:!0,extensions:["eot"]},"application/vnd.ms-htmlhelp":{source:"iana",extensions:["chm"]},"application/vnd.ms-ims":{source:"iana",extensions:["ims"]},"application/vnd.ms-lrm":{source:"iana",extensions:["lrm"]},"application/vnd.ms-office.activex+xml":{source:"iana",compressible:!0},"application/vnd.ms-officetheme":{source:"iana",extensions:["thmx"]},"application/vnd.ms-opentype":{source:"apache",compressible:!0},"application/vnd.ms-outlook":{compressible:!1,extensions:["msg"]},"application/vnd.ms-package.obfuscated-opentype":{source:"apache"},"application/vnd.ms-pki.seccat":{source:"apache",extensions:["cat"]},"application/vnd.ms-pki.stl":{source:"apache",extensions:["stl"]},"application/vnd.ms-playready.initiator+xml":{source:"iana",compressible:!0},"application/vnd.ms-powerpoint":{source:"iana",compressible:!1,extensions:["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{source:"iana",extensions:["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{source:"iana",extensions:["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{source:"iana",extensions:["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{source:"iana",extensions:["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{source:"iana",extensions:["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{source:"iana",compressible:!0},"application/vnd.ms-printing.printticket+xml":{source:"apache",compressible:!0},"application/vnd.ms-printschematicket+xml":{source:"iana",compressible:!0},"application/vnd.ms-project":{source:"iana",extensions:["mpp","mpt"]},"application/vnd.ms-tnef":{source:"iana"},"application/vnd.ms-windows.devicepairing":{source:"iana"},"application/vnd.ms-windows.nwprinting.oob":{source:"iana"},"application/vnd.ms-windows.printerpairing":{source:"iana"},"application/vnd.ms-windows.wsd.oob":{source:"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.lic-resp":{source:"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.meter-resp":{source:"iana"},"application/vnd.ms-word.document.macroenabled.12":{source:"iana",extensions:["docm"]},"application/vnd.ms-word.template.macroenabled.12":{source:"iana",extensions:["dotm"]},"application/vnd.ms-works":{source:"iana",extensions:["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{source:"iana",extensions:["wpl"]},"application/vnd.ms-xpsdocument":{source:"iana",compressible:!1,extensions:["xps"]},"application/vnd.msa-disk-image":{source:"iana"},"application/vnd.mseq":{source:"iana",extensions:["mseq"]},"application/vnd.msign":{source:"iana"},"application/vnd.multiad.creator":{source:"iana"},"application/vnd.multiad.creator.cif":{source:"iana"},"application/vnd.music-niff":{source:"iana"},"application/vnd.musician":{source:"iana",extensions:["mus"]},"application/vnd.muvee.style":{source:"iana",extensions:["msty"]},"application/vnd.mynfc":{source:"iana",extensions:["taglet"]},"application/vnd.nacamar.ybrid+json":{source:"iana",compressible:!0},"application/vnd.ncd.control":{source:"iana"},"application/vnd.ncd.reference":{source:"iana"},"application/vnd.nearst.inv+json":{source:"iana",compressible:!0},"application/vnd.nebumind.line":{source:"iana"},"application/vnd.nervana":{source:"iana"},"application/vnd.netfpx":{source:"iana"},"application/vnd.neurolanguage.nlu":{source:"iana",extensions:["nlu"]},"application/vnd.nimn":{source:"iana"},"application/vnd.nintendo.nitro.rom":{source:"iana"},"application/vnd.nintendo.snes.rom":{source:"iana"},"application/vnd.nitf":{source:"iana",extensions:["ntf","nitf"]},"application/vnd.noblenet-directory":{source:"iana",extensions:["nnd"]},"application/vnd.noblenet-sealer":{source:"iana",extensions:["nns"]},"application/vnd.noblenet-web":{source:"iana",extensions:["nnw"]},"application/vnd.nokia.catalogs":{source:"iana"},"application/vnd.nokia.conml+wbxml":{source:"iana"},"application/vnd.nokia.conml+xml":{source:"iana",compressible:!0},"application/vnd.nokia.iptv.config+xml":{source:"iana",compressible:!0},"application/vnd.nokia.isds-radio-presets":{source:"iana"},"application/vnd.nokia.landmark+wbxml":{source:"iana"},"application/vnd.nokia.landmark+xml":{source:"iana",compressible:!0},"application/vnd.nokia.landmarkcollection+xml":{source:"iana",compressible:!0},"application/vnd.nokia.n-gage.ac+xml":{source:"iana",compressible:!0,extensions:["ac"]},"application/vnd.nokia.n-gage.data":{source:"iana",extensions:["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{source:"iana",extensions:["n-gage"]},"application/vnd.nokia.ncd":{source:"iana"},"application/vnd.nokia.pcd+wbxml":{source:"iana"},"application/vnd.nokia.pcd+xml":{source:"iana",compressible:!0},"application/vnd.nokia.radio-preset":{source:"iana",extensions:["rpst"]},"application/vnd.nokia.radio-presets":{source:"iana",extensions:["rpss"]},"application/vnd.novadigm.edm":{source:"iana",extensions:["edm"]},"application/vnd.novadigm.edx":{source:"iana",extensions:["edx"]},"application/vnd.novadigm.ext":{source:"iana",extensions:["ext"]},"application/vnd.ntt-local.content-share":{source:"iana"},"application/vnd.ntt-local.file-transfer":{source:"iana"},"application/vnd.ntt-local.ogw_remote-access":{source:"iana"},"application/vnd.ntt-local.sip-ta_remote":{source:"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{source:"iana"},"application/vnd.oasis.opendocument.chart":{source:"iana",extensions:["odc"]},"application/vnd.oasis.opendocument.chart-template":{source:"iana",extensions:["otc"]},"application/vnd.oasis.opendocument.database":{source:"iana",extensions:["odb"]},"application/vnd.oasis.opendocument.formula":{source:"iana",extensions:["odf"]},"application/vnd.oasis.opendocument.formula-template":{source:"iana",extensions:["odft"]},"application/vnd.oasis.opendocument.graphics":{source:"iana",compressible:!1,extensions:["odg"]},"application/vnd.oasis.opendocument.graphics-template":{source:"iana",extensions:["otg"]},"application/vnd.oasis.opendocument.image":{source:"iana",extensions:["odi"]},"application/vnd.oasis.opendocument.image-template":{source:"iana",extensions:["oti"]},"application/vnd.oasis.opendocument.presentation":{source:"iana",compressible:!1,extensions:["odp"]},"application/vnd.oasis.opendocument.presentation-template":{source:"iana",extensions:["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{source:"iana",compressible:!1,extensions:["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{source:"iana",extensions:["ots"]},"application/vnd.oasis.opendocument.text":{source:"iana",compressible:!1,extensions:["odt"]},"application/vnd.oasis.opendocument.text-master":{source:"iana",extensions:["odm"]},"application/vnd.oasis.opendocument.text-template":{source:"iana",extensions:["ott"]},"application/vnd.oasis.opendocument.text-web":{source:"iana",extensions:["oth"]},"application/vnd.obn":{source:"iana"},"application/vnd.ocf+cbor":{source:"iana"},"application/vnd.oci.image.manifest.v1+json":{source:"iana",compressible:!0},"application/vnd.oftn.l10n+json":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessdownload+xml":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessstreaming+xml":{source:"iana",compressible:!0},"application/vnd.oipf.cspg-hexbinary":{source:"iana"},"application/vnd.oipf.dae.svg+xml":{source:"iana",compressible:!0},"application/vnd.oipf.dae.xhtml+xml":{source:"iana",compressible:!0},"application/vnd.oipf.mippvcontrolmessage+xml":{source:"iana",compressible:!0},"application/vnd.oipf.pae.gem":{source:"iana"},"application/vnd.oipf.spdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.oipf.spdlist+xml":{source:"iana",compressible:!0},"application/vnd.oipf.ueprofile+xml":{source:"iana",compressible:!0},"application/vnd.oipf.userprofile+xml":{source:"iana",compressible:!0},"application/vnd.olpc-sugar":{source:"iana",extensions:["xo"]},"application/vnd.oma-scws-config":{source:"iana"},"application/vnd.oma-scws-http-request":{source:"iana"},"application/vnd.oma-scws-http-response":{source:"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.drm-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.imd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.ltkm":{source:"iana"},"application/vnd.oma.bcast.notification+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.provisioningtrigger":{source:"iana"},"application/vnd.oma.bcast.sgboot":{source:"iana"},"application/vnd.oma.bcast.sgdd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sgdu":{source:"iana"},"application/vnd.oma.bcast.simple-symbol-container":{source:"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sprov+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.stkm":{source:"iana"},"application/vnd.oma.cab-address-book+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-feature-handler+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-pcc+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-subs-invite+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-user-prefs+xml":{source:"iana",compressible:!0},"application/vnd.oma.dcd":{source:"iana"},"application/vnd.oma.dcdc":{source:"iana"},"application/vnd.oma.dd2+xml":{source:"iana",compressible:!0,extensions:["dd2"]},"application/vnd.oma.drm.risd+xml":{source:"iana",compressible:!0},"application/vnd.oma.group-usage-list+xml":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+cbor":{source:"iana"},"application/vnd.oma.lwm2m+json":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+tlv":{source:"iana"},"application/vnd.oma.pal+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.detailed-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.final-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.groups+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.invocation-descriptor+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.optimized-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.push":{source:"iana"},"application/vnd.oma.scidm.messages+xml":{source:"iana",compressible:!0},"application/vnd.oma.xcap-directory+xml":{source:"iana",compressible:!0},"application/vnd.omads-email+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-file+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-folder+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omaloc-supl-init":{source:"iana"},"application/vnd.onepager":{source:"iana"},"application/vnd.onepagertamp":{source:"iana"},"application/vnd.onepagertamx":{source:"iana"},"application/vnd.onepagertat":{source:"iana"},"application/vnd.onepagertatp":{source:"iana"},"application/vnd.onepagertatx":{source:"iana"},"application/vnd.openblox.game+xml":{source:"iana",compressible:!0,extensions:["obgx"]},"application/vnd.openblox.game-binary":{source:"iana"},"application/vnd.openeye.oeb":{source:"iana"},"application/vnd.openofficeorg.extension":{source:"apache",extensions:["oxt"]},"application/vnd.openstreetmap.data+xml":{source:"iana",compressible:!0,extensions:["osm"]},"application/vnd.opentimestamps.ots":{source:"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawing+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{source:"iana",compressible:!1,extensions:["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slide":{source:"iana",extensions:["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{source:"iana",extensions:["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.template":{source:"iana",extensions:["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{source:"iana",compressible:!1,extensions:["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{source:"iana",extensions:["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.theme+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.vmldrawing":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{source:"iana",compressible:!1,extensions:["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{source:"iana",extensions:["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.core-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.relationships+xml":{source:"iana",compressible:!0},"application/vnd.oracle.resource+json":{source:"iana",compressible:!0},"application/vnd.orange.indata":{source:"iana"},"application/vnd.osa.netdeploy":{source:"iana"},"application/vnd.osgeo.mapguide.package":{source:"iana",extensions:["mgp"]},"application/vnd.osgi.bundle":{source:"iana"},"application/vnd.osgi.dp":{source:"iana",extensions:["dp"]},"application/vnd.osgi.subsystem":{source:"iana",extensions:["esa"]},"application/vnd.otps.ct-kip+xml":{source:"iana",compressible:!0},"application/vnd.oxli.countgraph":{source:"iana"},"application/vnd.pagerduty+json":{source:"iana",compressible:!0},"application/vnd.palm":{source:"iana",extensions:["pdb","pqa","oprc"]},"application/vnd.panoply":{source:"iana"},"application/vnd.paos.xml":{source:"iana"},"application/vnd.patentdive":{source:"iana"},"application/vnd.patientecommsdoc":{source:"iana"},"application/vnd.pawaafile":{source:"iana",extensions:["paw"]},"application/vnd.pcos":{source:"iana"},"application/vnd.pg.format":{source:"iana",extensions:["str"]},"application/vnd.pg.osasli":{source:"iana",extensions:["ei6"]},"application/vnd.piaccess.application-licence":{source:"iana"},"application/vnd.picsel":{source:"iana",extensions:["efif"]},"application/vnd.pmi.widget":{source:"iana",extensions:["wg"]},"application/vnd.poc.group-advertisement+xml":{source:"iana",compressible:!0},"application/vnd.pocketlearn":{source:"iana",extensions:["plf"]},"application/vnd.powerbuilder6":{source:"iana",extensions:["pbd"]},"application/vnd.powerbuilder6-s":{source:"iana"},"application/vnd.powerbuilder7":{source:"iana"},"application/vnd.powerbuilder7-s":{source:"iana"},"application/vnd.powerbuilder75":{source:"iana"},"application/vnd.powerbuilder75-s":{source:"iana"},"application/vnd.preminet":{source:"iana"},"application/vnd.previewsystems.box":{source:"iana",extensions:["box"]},"application/vnd.proteus.magazine":{source:"iana",extensions:["mgz"]},"application/vnd.psfs":{source:"iana"},"application/vnd.publishare-delta-tree":{source:"iana",extensions:["qps"]},"application/vnd.pvi.ptid1":{source:"iana",extensions:["ptid"]},"application/vnd.pwg-multiplexed":{source:"iana"},"application/vnd.pwg-xhtml-print+xml":{source:"iana",compressible:!0},"application/vnd.qualcomm.brew-app-res":{source:"iana"},"application/vnd.quarantainenet":{source:"iana"},"application/vnd.quark.quarkxpress":{source:"iana",extensions:["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{source:"iana"},"application/vnd.radisys.moml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conn+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-stream+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-base+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-detect+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-group+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-speech+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-transform+xml":{source:"iana",compressible:!0},"application/vnd.rainstor.data":{source:"iana"},"application/vnd.rapid":{source:"iana"},"application/vnd.rar":{source:"iana",extensions:["rar"]},"application/vnd.realvnc.bed":{source:"iana",extensions:["bed"]},"application/vnd.recordare.musicxml":{source:"iana",extensions:["mxl"]},"application/vnd.recordare.musicxml+xml":{source:"iana",compressible:!0,extensions:["musicxml"]},"application/vnd.renlearn.rlprint":{source:"iana"},"application/vnd.resilient.logic":{source:"iana"},"application/vnd.restful+json":{source:"iana",compressible:!0},"application/vnd.rig.cryptonote":{source:"iana",extensions:["cryptonote"]},"application/vnd.rim.cod":{source:"apache",extensions:["cod"]},"application/vnd.rn-realmedia":{source:"apache",extensions:["rm"]},"application/vnd.rn-realmedia-vbr":{source:"apache",extensions:["rmvb"]},"application/vnd.route66.link66+xml":{source:"iana",compressible:!0,extensions:["link66"]},"application/vnd.rs-274x":{source:"iana"},"application/vnd.ruckus.download":{source:"iana"},"application/vnd.s3sms":{source:"iana"},"application/vnd.sailingtracker.track":{source:"iana",extensions:["st"]},"application/vnd.sar":{source:"iana"},"application/vnd.sbm.cid":{source:"iana"},"application/vnd.sbm.mid2":{source:"iana"},"application/vnd.scribus":{source:"iana"},"application/vnd.sealed.3df":{source:"iana"},"application/vnd.sealed.csf":{source:"iana"},"application/vnd.sealed.doc":{source:"iana"},"application/vnd.sealed.eml":{source:"iana"},"application/vnd.sealed.mht":{source:"iana"},"application/vnd.sealed.net":{source:"iana"},"application/vnd.sealed.ppt":{source:"iana"},"application/vnd.sealed.tiff":{source:"iana"},"application/vnd.sealed.xls":{source:"iana"},"application/vnd.sealedmedia.softseal.html":{source:"iana"},"application/vnd.sealedmedia.softseal.pdf":{source:"iana"},"application/vnd.seemail":{source:"iana",extensions:["see"]},"application/vnd.seis+json":{source:"iana",compressible:!0},"application/vnd.sema":{source:"iana",extensions:["sema"]},"application/vnd.semd":{source:"iana",extensions:["semd"]},"application/vnd.semf":{source:"iana",extensions:["semf"]},"application/vnd.shade-save-file":{source:"iana"},"application/vnd.shana.informed.formdata":{source:"iana",extensions:["ifm"]},"application/vnd.shana.informed.formtemplate":{source:"iana",extensions:["itp"]},"application/vnd.shana.informed.interchange":{source:"iana",extensions:["iif"]},"application/vnd.shana.informed.package":{source:"iana",extensions:["ipk"]},"application/vnd.shootproof+json":{source:"iana",compressible:!0},"application/vnd.shopkick+json":{source:"iana",compressible:!0},"application/vnd.shp":{source:"iana"},"application/vnd.shx":{source:"iana"},"application/vnd.sigrok.session":{source:"iana"},"application/vnd.simtech-mindmapper":{source:"iana",extensions:["twd","twds"]},"application/vnd.siren+json":{source:"iana",compressible:!0},"application/vnd.smaf":{source:"iana",extensions:["mmf"]},"application/vnd.smart.notebook":{source:"iana"},"application/vnd.smart.teacher":{source:"iana",extensions:["teacher"]},"application/vnd.snesdev-page-table":{source:"iana"},"application/vnd.software602.filler.form+xml":{source:"iana",compressible:!0,extensions:["fo"]},"application/vnd.software602.filler.form-xml-zip":{source:"iana"},"application/vnd.solent.sdkm+xml":{source:"iana",compressible:!0,extensions:["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{source:"iana",extensions:["dxp"]},"application/vnd.spotfire.sfs":{source:"iana",extensions:["sfs"]},"application/vnd.sqlite3":{source:"iana"},"application/vnd.sss-cod":{source:"iana"},"application/vnd.sss-dtf":{source:"iana"},"application/vnd.sss-ntf":{source:"iana"},"application/vnd.stardivision.calc":{source:"apache",extensions:["sdc"]},"application/vnd.stardivision.draw":{source:"apache",extensions:["sda"]},"application/vnd.stardivision.impress":{source:"apache",extensions:["sdd"]},"application/vnd.stardivision.math":{source:"apache",extensions:["smf"]},"application/vnd.stardivision.writer":{source:"apache",extensions:["sdw","vor"]},"application/vnd.stardivision.writer-global":{source:"apache",extensions:["sgl"]},"application/vnd.stepmania.package":{source:"iana",extensions:["smzip"]},"application/vnd.stepmania.stepchart":{source:"iana",extensions:["sm"]},"application/vnd.street-stream":{source:"iana"},"application/vnd.sun.wadl+xml":{source:"iana",compressible:!0,extensions:["wadl"]},"application/vnd.sun.xml.calc":{source:"apache",extensions:["sxc"]},"application/vnd.sun.xml.calc.template":{source:"apache",extensions:["stc"]},"application/vnd.sun.xml.draw":{source:"apache",extensions:["sxd"]},"application/vnd.sun.xml.draw.template":{source:"apache",extensions:["std"]},"application/vnd.sun.xml.impress":{source:"apache",extensions:["sxi"]},"application/vnd.sun.xml.impress.template":{source:"apache",extensions:["sti"]},"application/vnd.sun.xml.math":{source:"apache",extensions:["sxm"]},"application/vnd.sun.xml.writer":{source:"apache",extensions:["sxw"]},"application/vnd.sun.xml.writer.global":{source:"apache",extensions:["sxg"]},"application/vnd.sun.xml.writer.template":{source:"apache",extensions:["stw"]},"application/vnd.sus-calendar":{source:"iana",extensions:["sus","susp"]},"application/vnd.svd":{source:"iana",extensions:["svd"]},"application/vnd.swiftview-ics":{source:"iana"},"application/vnd.sycle+xml":{source:"iana",compressible:!0},"application/vnd.syft+json":{source:"iana",compressible:!0},"application/vnd.symbian.install":{source:"apache",extensions:["sis","sisx"]},"application/vnd.syncml+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xsm"]},"application/vnd.syncml.dm+wbxml":{source:"iana",charset:"UTF-8",extensions:["bdm"]},"application/vnd.syncml.dm+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xdm"]},"application/vnd.syncml.dm.notification":{source:"iana"},"application/vnd.syncml.dmddf+wbxml":{source:"iana"},"application/vnd.syncml.dmddf+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{source:"iana"},"application/vnd.syncml.dmtnds+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.syncml.ds.notification":{source:"iana"},"application/vnd.tableschema+json":{source:"iana",compressible:!0},"application/vnd.tao.intent-module-archive":{source:"iana",extensions:["tao"]},"application/vnd.tcpdump.pcap":{source:"iana",extensions:["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{source:"iana",compressible:!0},"application/vnd.tmd.mediaflex.api+xml":{source:"iana",compressible:!0},"application/vnd.tml":{source:"iana"},"application/vnd.tmobile-livetv":{source:"iana",extensions:["tmo"]},"application/vnd.tri.onesource":{source:"iana"},"application/vnd.trid.tpt":{source:"iana",extensions:["tpt"]},"application/vnd.triscape.mxs":{source:"iana",extensions:["mxs"]},"application/vnd.trueapp":{source:"iana",extensions:["tra"]},"application/vnd.truedoc":{source:"iana"},"application/vnd.ubisoft.webplayer":{source:"iana"},"application/vnd.ufdl":{source:"iana",extensions:["ufd","ufdl"]},"application/vnd.uiq.theme":{source:"iana",extensions:["utz"]},"application/vnd.umajin":{source:"iana",extensions:["umj"]},"application/vnd.unity":{source:"iana",extensions:["unityweb"]},"application/vnd.uoml+xml":{source:"iana",compressible:!0,extensions:["uoml"]},"application/vnd.uplanet.alert":{source:"iana"},"application/vnd.uplanet.alert-wbxml":{source:"iana"},"application/vnd.uplanet.bearer-choice":{source:"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{source:"iana"},"application/vnd.uplanet.cacheop":{source:"iana"},"application/vnd.uplanet.cacheop-wbxml":{source:"iana"},"application/vnd.uplanet.channel":{source:"iana"},"application/vnd.uplanet.channel-wbxml":{source:"iana"},"application/vnd.uplanet.list":{source:"iana"},"application/vnd.uplanet.list-wbxml":{source:"iana"},"application/vnd.uplanet.listcmd":{source:"iana"},"application/vnd.uplanet.listcmd-wbxml":{source:"iana"},"application/vnd.uplanet.signal":{source:"iana"},"application/vnd.uri-map":{source:"iana"},"application/vnd.valve.source.material":{source:"iana"},"application/vnd.vcx":{source:"iana",extensions:["vcx"]},"application/vnd.vd-study":{source:"iana"},"application/vnd.vectorworks":{source:"iana"},"application/vnd.vel+json":{source:"iana",compressible:!0},"application/vnd.verimatrix.vcas":{source:"iana"},"application/vnd.veritone.aion+json":{source:"iana",compressible:!0},"application/vnd.veryant.thin":{source:"iana"},"application/vnd.ves.encrypted":{source:"iana"},"application/vnd.vidsoft.vidconference":{source:"iana"},"application/vnd.visio":{source:"iana",extensions:["vsd","vst","vss","vsw"]},"application/vnd.visionary":{source:"iana",extensions:["vis"]},"application/vnd.vividence.scriptfile":{source:"iana"},"application/vnd.vsf":{source:"iana",extensions:["vsf"]},"application/vnd.wap.sic":{source:"iana"},"application/vnd.wap.slc":{source:"iana"},"application/vnd.wap.wbxml":{source:"iana",charset:"UTF-8",extensions:["wbxml"]},"application/vnd.wap.wmlc":{source:"iana",extensions:["wmlc"]},"application/vnd.wap.wmlscriptc":{source:"iana",extensions:["wmlsc"]},"application/vnd.webturbo":{source:"iana",extensions:["wtb"]},"application/vnd.wfa.dpp":{source:"iana"},"application/vnd.wfa.p2p":{source:"iana"},"application/vnd.wfa.wsc":{source:"iana"},"application/vnd.windows.devicepairing":{source:"iana"},"application/vnd.wmc":{source:"iana"},"application/vnd.wmf.bootstrap":{source:"iana"},"application/vnd.wolfram.mathematica":{source:"iana"},"application/vnd.wolfram.mathematica.package":{source:"iana"},"application/vnd.wolfram.player":{source:"iana",extensions:["nbp"]},"application/vnd.wordperfect":{source:"iana",extensions:["wpd"]},"application/vnd.wqd":{source:"iana",extensions:["wqd"]},"application/vnd.wrq-hp3000-labelled":{source:"iana"},"application/vnd.wt.stf":{source:"iana",extensions:["stf"]},"application/vnd.wv.csp+wbxml":{source:"iana"},"application/vnd.wv.csp+xml":{source:"iana",compressible:!0},"application/vnd.wv.ssp+xml":{source:"iana",compressible:!0},"application/vnd.xacml+json":{source:"iana",compressible:!0},"application/vnd.xara":{source:"iana",extensions:["xar"]},"application/vnd.xfdl":{source:"iana",extensions:["xfdl"]},"application/vnd.xfdl.webform":{source:"iana"},"application/vnd.xmi+xml":{source:"iana",compressible:!0},"application/vnd.xmpie.cpkg":{source:"iana"},"application/vnd.xmpie.dpkg":{source:"iana"},"application/vnd.xmpie.plan":{source:"iana"},"application/vnd.xmpie.ppkg":{source:"iana"},"application/vnd.xmpie.xlim":{source:"iana"},"application/vnd.yamaha.hv-dic":{source:"iana",extensions:["hvd"]},"application/vnd.yamaha.hv-script":{source:"iana",extensions:["hvs"]},"application/vnd.yamaha.hv-voice":{source:"iana",extensions:["hvp"]},"application/vnd.yamaha.openscoreformat":{source:"iana",extensions:["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{source:"iana",compressible:!0,extensions:["osfpvg"]},"application/vnd.yamaha.remote-setup":{source:"iana"},"application/vnd.yamaha.smaf-audio":{source:"iana",extensions:["saf"]},"application/vnd.yamaha.smaf-phrase":{source:"iana",extensions:["spf"]},"application/vnd.yamaha.through-ngn":{source:"iana"},"application/vnd.yamaha.tunnel-udpencap":{source:"iana"},"application/vnd.yaoweme":{source:"iana"},"application/vnd.yellowriver-custom-menu":{source:"iana",extensions:["cmp"]},"application/vnd.youtube.yt":{source:"iana"},"application/vnd.zul":{source:"iana",extensions:["zir","zirz"]},"application/vnd.zzazz.deck+xml":{source:"iana",compressible:!0,extensions:["zaz"]},"application/voicexml+xml":{source:"iana",compressible:!0,extensions:["vxml"]},"application/voucher-cms+json":{source:"iana",compressible:!0},"application/vq-rtcpxr":{source:"iana"},"application/wasm":{source:"iana",compressible:!0,extensions:["wasm"]},"application/watcherinfo+xml":{source:"iana",compressible:!0,extensions:["wif"]},"application/webpush-options+json":{source:"iana",compressible:!0},"application/whoispp-query":{source:"iana"},"application/whoispp-response":{source:"iana"},"application/widget":{source:"iana",extensions:["wgt"]},"application/winhlp":{source:"apache",extensions:["hlp"]},"application/wita":{source:"iana"},"application/wordperfect5.1":{source:"iana"},"application/wsdl+xml":{source:"iana",compressible:!0,extensions:["wsdl"]},"application/wspolicy+xml":{source:"iana",compressible:!0,extensions:["wspolicy"]},"application/x-7z-compressed":{source:"apache",compressible:!1,extensions:["7z"]},"application/x-abiword":{source:"apache",extensions:["abw"]},"application/x-ace-compressed":{source:"apache",extensions:["ace"]},"application/x-amf":{source:"apache"},"application/x-apple-diskimage":{source:"apache",extensions:["dmg"]},"application/x-arj":{compressible:!1,extensions:["arj"]},"application/x-authorware-bin":{source:"apache",extensions:["aab","x32","u32","vox"]},"application/x-authorware-map":{source:"apache",extensions:["aam"]},"application/x-authorware-seg":{source:"apache",extensions:["aas"]},"application/x-bcpio":{source:"apache",extensions:["bcpio"]},"application/x-bdoc":{compressible:!1,extensions:["bdoc"]},"application/x-bittorrent":{source:"apache",extensions:["torrent"]},"application/x-blorb":{source:"apache",extensions:["blb","blorb"]},"application/x-bzip":{source:"apache",compressible:!1,extensions:["bz"]},"application/x-bzip2":{source:"apache",compressible:!1,extensions:["bz2","boz"]},"application/x-cbr":{source:"apache",extensions:["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{source:"apache",extensions:["vcd"]},"application/x-cfs-compressed":{source:"apache",extensions:["cfs"]},"application/x-chat":{source:"apache",extensions:["chat"]},"application/x-chess-pgn":{source:"apache",extensions:["pgn"]},"application/x-chrome-extension":{extensions:["crx"]},"application/x-cocoa":{source:"nginx",extensions:["cco"]},"application/x-compress":{source:"apache"},"application/x-conference":{source:"apache",extensions:["nsc"]},"application/x-cpio":{source:"apache",extensions:["cpio"]},"application/x-csh":{source:"apache",extensions:["csh"]},"application/x-deb":{compressible:!1},"application/x-debian-package":{source:"apache",extensions:["deb","udeb"]},"application/x-dgc-compressed":{source:"apache",extensions:["dgc"]},"application/x-director":{source:"apache",extensions:["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{source:"apache",extensions:["wad"]},"application/x-dtbncx+xml":{source:"apache",compressible:!0,extensions:["ncx"]},"application/x-dtbook+xml":{source:"apache",compressible:!0,extensions:["dtb"]},"application/x-dtbresource+xml":{source:"apache",compressible:!0,extensions:["res"]},"application/x-dvi":{source:"apache",compressible:!1,extensions:["dvi"]},"application/x-envoy":{source:"apache",extensions:["evy"]},"application/x-eva":{source:"apache",extensions:["eva"]},"application/x-font-bdf":{source:"apache",extensions:["bdf"]},"application/x-font-dos":{source:"apache"},"application/x-font-framemaker":{source:"apache"},"application/x-font-ghostscript":{source:"apache",extensions:["gsf"]},"application/x-font-libgrx":{source:"apache"},"application/x-font-linux-psf":{source:"apache",extensions:["psf"]},"application/x-font-pcf":{source:"apache",extensions:["pcf"]},"application/x-font-snf":{source:"apache",extensions:["snf"]},"application/x-font-speedo":{source:"apache"},"application/x-font-sunos-news":{source:"apache"},"application/x-font-type1":{source:"apache",extensions:["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{source:"apache"},"application/x-freearc":{source:"apache",extensions:["arc"]},"application/x-futuresplash":{source:"apache",extensions:["spl"]},"application/x-gca-compressed":{source:"apache",extensions:["gca"]},"application/x-glulx":{source:"apache",extensions:["ulx"]},"application/x-gnumeric":{source:"apache",extensions:["gnumeric"]},"application/x-gramps-xml":{source:"apache",extensions:["gramps"]},"application/x-gtar":{source:"apache",extensions:["gtar"]},"application/x-gzip":{source:"apache"},"application/x-hdf":{source:"apache",extensions:["hdf"]},"application/x-httpd-php":{compressible:!0,extensions:["php"]},"application/x-install-instructions":{source:"apache",extensions:["install"]},"application/x-iso9660-image":{source:"apache",extensions:["iso"]},"application/x-iwork-keynote-sffkey":{extensions:["key"]},"application/x-iwork-numbers-sffnumbers":{extensions:["numbers"]},"application/x-iwork-pages-sffpages":{extensions:["pages"]},"application/x-java-archive-diff":{source:"nginx",extensions:["jardiff"]},"application/x-java-jnlp-file":{source:"apache",compressible:!1,extensions:["jnlp"]},"application/x-javascript":{compressible:!0},"application/x-keepass2":{extensions:["kdbx"]},"application/x-latex":{source:"apache",compressible:!1,extensions:["latex"]},"application/x-lua-bytecode":{extensions:["luac"]},"application/x-lzh-compressed":{source:"apache",extensions:["lzh","lha"]},"application/x-makeself":{source:"nginx",extensions:["run"]},"application/x-mie":{source:"apache",extensions:["mie"]},"application/x-mobipocket-ebook":{source:"apache",extensions:["prc","mobi"]},"application/x-mpegurl":{compressible:!1},"application/x-ms-application":{source:"apache",extensions:["application"]},"application/x-ms-shortcut":{source:"apache",extensions:["lnk"]},"application/x-ms-wmd":{source:"apache",extensions:["wmd"]},"application/x-ms-wmz":{source:"apache",extensions:["wmz"]},"application/x-ms-xbap":{source:"apache",extensions:["xbap"]},"application/x-msaccess":{source:"apache",extensions:["mdb"]},"application/x-msbinder":{source:"apache",extensions:["obd"]},"application/x-mscardfile":{source:"apache",extensions:["crd"]},"application/x-msclip":{source:"apache",extensions:["clp"]},"application/x-msdos-program":{extensions:["exe"]},"application/x-msdownload":{source:"apache",extensions:["exe","dll","com","bat","msi"]},"application/x-msmediaview":{source:"apache",extensions:["mvb","m13","m14"]},"application/x-msmetafile":{source:"apache",extensions:["wmf","wmz","emf","emz"]},"application/x-msmoney":{source:"apache",extensions:["mny"]},"application/x-mspublisher":{source:"apache",extensions:["pub"]},"application/x-msschedule":{source:"apache",extensions:["scd"]},"application/x-msterminal":{source:"apache",extensions:["trm"]},"application/x-mswrite":{source:"apache",extensions:["wri"]},"application/x-netcdf":{source:"apache",extensions:["nc","cdf"]},"application/x-ns-proxy-autoconfig":{compressible:!0,extensions:["pac"]},"application/x-nzb":{source:"apache",extensions:["nzb"]},"application/x-perl":{source:"nginx",extensions:["pl","pm"]},"application/x-pilot":{source:"nginx",extensions:["prc","pdb"]},"application/x-pkcs12":{source:"apache",compressible:!1,extensions:["p12","pfx"]},"application/x-pkcs7-certificates":{source:"apache",extensions:["p7b","spc"]},"application/x-pkcs7-certreqresp":{source:"apache",extensions:["p7r"]},"application/x-pki-message":{source:"iana"},"application/x-rar-compressed":{source:"apache",compressible:!1,extensions:["rar"]},"application/x-redhat-package-manager":{source:"nginx",extensions:["rpm"]},"application/x-research-info-systems":{source:"apache",extensions:["ris"]},"application/x-sea":{source:"nginx",extensions:["sea"]},"application/x-sh":{source:"apache",compressible:!0,extensions:["sh"]},"application/x-shar":{source:"apache",extensions:["shar"]},"application/x-shockwave-flash":{source:"apache",compressible:!1,extensions:["swf"]},"application/x-silverlight-app":{source:"apache",extensions:["xap"]},"application/x-sql":{source:"apache",extensions:["sql"]},"application/x-stuffit":{source:"apache",compressible:!1,extensions:["sit"]},"application/x-stuffitx":{source:"apache",extensions:["sitx"]},"application/x-subrip":{source:"apache",extensions:["srt"]},"application/x-sv4cpio":{source:"apache",extensions:["sv4cpio"]},"application/x-sv4crc":{source:"apache",extensions:["sv4crc"]},"application/x-t3vm-image":{source:"apache",extensions:["t3"]},"application/x-tads":{source:"apache",extensions:["gam"]},"application/x-tar":{source:"apache",compressible:!0,extensions:["tar"]},"application/x-tcl":{source:"apache",extensions:["tcl","tk"]},"application/x-tex":{source:"apache",extensions:["tex"]},"application/x-tex-tfm":{source:"apache",extensions:["tfm"]},"application/x-texinfo":{source:"apache",extensions:["texinfo","texi"]},"application/x-tgif":{source:"apache",extensions:["obj"]},"application/x-ustar":{source:"apache",extensions:["ustar"]},"application/x-virtualbox-hdd":{compressible:!0,extensions:["hdd"]},"application/x-virtualbox-ova":{compressible:!0,extensions:["ova"]},"application/x-virtualbox-ovf":{compressible:!0,extensions:["ovf"]},"application/x-virtualbox-vbox":{compressible:!0,extensions:["vbox"]},"application/x-virtualbox-vbox-extpack":{compressible:!1,extensions:["vbox-extpack"]},"application/x-virtualbox-vdi":{compressible:!0,extensions:["vdi"]},"application/x-virtualbox-vhd":{compressible:!0,extensions:["vhd"]},"application/x-virtualbox-vmdk":{compressible:!0,extensions:["vmdk"]},"application/x-wais-source":{source:"apache",extensions:["src"]},"application/x-web-app-manifest+json":{compressible:!0,extensions:["webapp"]},"application/x-www-form-urlencoded":{source:"iana",compressible:!0},"application/x-x509-ca-cert":{source:"iana",extensions:["der","crt","pem"]},"application/x-x509-ca-ra-cert":{source:"iana"},"application/x-x509-next-ca-cert":{source:"iana"},"application/x-xfig":{source:"apache",extensions:["fig"]},"application/x-xliff+xml":{source:"apache",compressible:!0,extensions:["xlf"]},"application/x-xpinstall":{source:"apache",compressible:!1,extensions:["xpi"]},"application/x-xz":{source:"apache",extensions:["xz"]},"application/x-zmachine":{source:"apache",extensions:["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{source:"iana"},"application/xacml+xml":{source:"iana",compressible:!0},"application/xaml+xml":{source:"apache",compressible:!0,extensions:["xaml"]},"application/xcap-att+xml":{source:"iana",compressible:!0,extensions:["xav"]},"application/xcap-caps+xml":{source:"iana",compressible:!0,extensions:["xca"]},"application/xcap-diff+xml":{source:"iana",compressible:!0,extensions:["xdf"]},"application/xcap-el+xml":{source:"iana",compressible:!0,extensions:["xel"]},"application/xcap-error+xml":{source:"iana",compressible:!0},"application/xcap-ns+xml":{source:"iana",compressible:!0,extensions:["xns"]},"application/xcon-conference-info+xml":{source:"iana",compressible:!0},"application/xcon-conference-info-diff+xml":{source:"iana",compressible:!0},"application/xenc+xml":{source:"iana",compressible:!0,extensions:["xenc"]},"application/xhtml+xml":{source:"iana",compressible:!0,extensions:["xhtml","xht"]},"application/xhtml-voice+xml":{source:"apache",compressible:!0},"application/xliff+xml":{source:"iana",compressible:!0,extensions:["xlf"]},"application/xml":{source:"iana",compressible:!0,extensions:["xml","xsl","xsd","rng"]},"application/xml-dtd":{source:"iana",compressible:!0,extensions:["dtd"]},"application/xml-external-parsed-entity":{source:"iana"},"application/xml-patch+xml":{source:"iana",compressible:!0},"application/xmpp+xml":{source:"iana",compressible:!0},"application/xop+xml":{source:"iana",compressible:!0,extensions:["xop"]},"application/xproc+xml":{source:"apache",compressible:!0,extensions:["xpl"]},"application/xslt+xml":{source:"iana",compressible:!0,extensions:["xsl","xslt"]},"application/xspf+xml":{source:"apache",compressible:!0,extensions:["xspf"]},"application/xv+xml":{source:"iana",compressible:!0,extensions:["mxml","xhvml","xvml","xvm"]},"application/yang":{source:"iana",extensions:["yang"]},"application/yang-data+json":{source:"iana",compressible:!0},"application/yang-data+xml":{source:"iana",compressible:!0},"application/yang-patch+json":{source:"iana",compressible:!0},"application/yang-patch+xml":{source:"iana",compressible:!0},"application/yin+xml":{source:"iana",compressible:!0,extensions:["yin"]},"application/zip":{source:"iana",compressible:!1,extensions:["zip"]},"application/zlib":{source:"iana"},"application/zstd":{source:"iana"},"audio/1d-interleaved-parityfec":{source:"iana"},"audio/32kadpcm":{source:"iana"},"audio/3gpp":{source:"iana",compressible:!1,extensions:["3gpp"]},"audio/3gpp2":{source:"iana"},"audio/aac":{source:"iana"},"audio/ac3":{source:"iana"},"audio/adpcm":{source:"apache",extensions:["adp"]},"audio/amr":{source:"iana",extensions:["amr"]},"audio/amr-wb":{source:"iana"},"audio/amr-wb+":{source:"iana"},"audio/aptx":{source:"iana"},"audio/asc":{source:"iana"},"audio/atrac-advanced-lossless":{source:"iana"},"audio/atrac-x":{source:"iana"},"audio/atrac3":{source:"iana"},"audio/basic":{source:"iana",compressible:!1,extensions:["au","snd"]},"audio/bv16":{source:"iana"},"audio/bv32":{source:"iana"},"audio/clearmode":{source:"iana"},"audio/cn":{source:"iana"},"audio/dat12":{source:"iana"},"audio/dls":{source:"iana"},"audio/dsr-es201108":{source:"iana"},"audio/dsr-es202050":{source:"iana"},"audio/dsr-es202211":{source:"iana"},"audio/dsr-es202212":{source:"iana"},"audio/dv":{source:"iana"},"audio/dvi4":{source:"iana"},"audio/eac3":{source:"iana"},"audio/encaprtp":{source:"iana"},"audio/evrc":{source:"iana"},"audio/evrc-qcp":{source:"iana"},"audio/evrc0":{source:"iana"},"audio/evrc1":{source:"iana"},"audio/evrcb":{source:"iana"},"audio/evrcb0":{source:"iana"},"audio/evrcb1":{source:"iana"},"audio/evrcnw":{source:"iana"},"audio/evrcnw0":{source:"iana"},"audio/evrcnw1":{source:"iana"},"audio/evrcwb":{source:"iana"},"audio/evrcwb0":{source:"iana"},"audio/evrcwb1":{source:"iana"},"audio/evs":{source:"iana"},"audio/flexfec":{source:"iana"},"audio/fwdred":{source:"iana"},"audio/g711-0":{source:"iana"},"audio/g719":{source:"iana"},"audio/g722":{source:"iana"},"audio/g7221":{source:"iana"},"audio/g723":{source:"iana"},"audio/g726-16":{source:"iana"},"audio/g726-24":{source:"iana"},"audio/g726-32":{source:"iana"},"audio/g726-40":{source:"iana"},"audio/g728":{source:"iana"},"audio/g729":{source:"iana"},"audio/g7291":{source:"iana"},"audio/g729d":{source:"iana"},"audio/g729e":{source:"iana"},"audio/gsm":{source:"iana"},"audio/gsm-efr":{source:"iana"},"audio/gsm-hr-08":{source:"iana"},"audio/ilbc":{source:"iana"},"audio/ip-mr_v2.5":{source:"iana"},"audio/isac":{source:"apache"},"audio/l16":{source:"iana"},"audio/l20":{source:"iana"},"audio/l24":{source:"iana",compressible:!1},"audio/l8":{source:"iana"},"audio/lpc":{source:"iana"},"audio/melp":{source:"iana"},"audio/melp1200":{source:"iana"},"audio/melp2400":{source:"iana"},"audio/melp600":{source:"iana"},"audio/mhas":{source:"iana"},"audio/midi":{source:"apache",extensions:["mid","midi","kar","rmi"]},"audio/mobile-xmf":{source:"iana",extensions:["mxmf"]},"audio/mp3":{compressible:!1,extensions:["mp3"]},"audio/mp4":{source:"iana",compressible:!1,extensions:["m4a","mp4a"]},"audio/mp4a-latm":{source:"iana"},"audio/mpa":{source:"iana"},"audio/mpa-robust":{source:"iana"},"audio/mpeg":{source:"iana",compressible:!1,extensions:["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{source:"iana"},"audio/musepack":{source:"apache"},"audio/ogg":{source:"iana",compressible:!1,extensions:["oga","ogg","spx","opus"]},"audio/opus":{source:"iana"},"audio/parityfec":{source:"iana"},"audio/pcma":{source:"iana"},"audio/pcma-wb":{source:"iana"},"audio/pcmu":{source:"iana"},"audio/pcmu-wb":{source:"iana"},"audio/prs.sid":{source:"iana"},"audio/qcelp":{source:"iana"},"audio/raptorfec":{source:"iana"},"audio/red":{source:"iana"},"audio/rtp-enc-aescm128":{source:"iana"},"audio/rtp-midi":{source:"iana"},"audio/rtploopback":{source:"iana"},"audio/rtx":{source:"iana"},"audio/s3m":{source:"apache",extensions:["s3m"]},"audio/scip":{source:"iana"},"audio/silk":{source:"apache",extensions:["sil"]},"audio/smv":{source:"iana"},"audio/smv-qcp":{source:"iana"},"audio/smv0":{source:"iana"},"audio/sofa":{source:"iana"},"audio/sp-midi":{source:"iana"},"audio/speex":{source:"iana"},"audio/t140c":{source:"iana"},"audio/t38":{source:"iana"},"audio/telephone-event":{source:"iana"},"audio/tetra_acelp":{source:"iana"},"audio/tetra_acelp_bb":{source:"iana"},"audio/tone":{source:"iana"},"audio/tsvcis":{source:"iana"},"audio/uemclip":{source:"iana"},"audio/ulpfec":{source:"iana"},"audio/usac":{source:"iana"},"audio/vdvi":{source:"iana"},"audio/vmr-wb":{source:"iana"},"audio/vnd.3gpp.iufp":{source:"iana"},"audio/vnd.4sb":{source:"iana"},"audio/vnd.audiokoz":{source:"iana"},"audio/vnd.celp":{source:"iana"},"audio/vnd.cisco.nse":{source:"iana"},"audio/vnd.cmles.radio-events":{source:"iana"},"audio/vnd.cns.anp1":{source:"iana"},"audio/vnd.cns.inf1":{source:"iana"},"audio/vnd.dece.audio":{source:"iana",extensions:["uva","uvva"]},"audio/vnd.digital-winds":{source:"iana",extensions:["eol"]},"audio/vnd.dlna.adts":{source:"iana"},"audio/vnd.dolby.heaac.1":{source:"iana"},"audio/vnd.dolby.heaac.2":{source:"iana"},"audio/vnd.dolby.mlp":{source:"iana"},"audio/vnd.dolby.mps":{source:"iana"},"audio/vnd.dolby.pl2":{source:"iana"},"audio/vnd.dolby.pl2x":{source:"iana"},"audio/vnd.dolby.pl2z":{source:"iana"},"audio/vnd.dolby.pulse.1":{source:"iana"},"audio/vnd.dra":{source:"iana",extensions:["dra"]},"audio/vnd.dts":{source:"iana",extensions:["dts"]},"audio/vnd.dts.hd":{source:"iana",extensions:["dtshd"]},"audio/vnd.dts.uhd":{source:"iana"},"audio/vnd.dvb.file":{source:"iana"},"audio/vnd.everad.plj":{source:"iana"},"audio/vnd.hns.audio":{source:"iana"},"audio/vnd.lucent.voice":{source:"iana",extensions:["lvp"]},"audio/vnd.ms-playready.media.pya":{source:"iana",extensions:["pya"]},"audio/vnd.nokia.mobile-xmf":{source:"iana"},"audio/vnd.nortel.vbk":{source:"iana"},"audio/vnd.nuera.ecelp4800":{source:"iana",extensions:["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{source:"iana",extensions:["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{source:"iana",extensions:["ecelp9600"]},"audio/vnd.octel.sbc":{source:"iana"},"audio/vnd.presonus.multitrack":{source:"iana"},"audio/vnd.qcelp":{source:"iana"},"audio/vnd.rhetorex.32kadpcm":{source:"iana"},"audio/vnd.rip":{source:"iana",extensions:["rip"]},"audio/vnd.rn-realaudio":{compressible:!1},"audio/vnd.sealedmedia.softseal.mpeg":{source:"iana"},"audio/vnd.vmx.cvsd":{source:"iana"},"audio/vnd.wave":{compressible:!1},"audio/vorbis":{source:"iana",compressible:!1},"audio/vorbis-config":{source:"iana"},"audio/wav":{compressible:!1,extensions:["wav"]},"audio/wave":{compressible:!1,extensions:["wav"]},"audio/webm":{source:"apache",compressible:!1,extensions:["weba"]},"audio/x-aac":{source:"apache",compressible:!1,extensions:["aac"]},"audio/x-aiff":{source:"apache",extensions:["aif","aiff","aifc"]},"audio/x-caf":{source:"apache",compressible:!1,extensions:["caf"]},"audio/x-flac":{source:"apache",extensions:["flac"]},"audio/x-m4a":{source:"nginx",extensions:["m4a"]},"audio/x-matroska":{source:"apache",extensions:["mka"]},"audio/x-mpegurl":{source:"apache",extensions:["m3u"]},"audio/x-ms-wax":{source:"apache",extensions:["wax"]},"audio/x-ms-wma":{source:"apache",extensions:["wma"]},"audio/x-pn-realaudio":{source:"apache",extensions:["ram","ra"]},"audio/x-pn-realaudio-plugin":{source:"apache",extensions:["rmp"]},"audio/x-realaudio":{source:"nginx",extensions:["ra"]},"audio/x-tta":{source:"apache"},"audio/x-wav":{source:"apache",extensions:["wav"]},"audio/xm":{source:"apache",extensions:["xm"]},"chemical/x-cdx":{source:"apache",extensions:["cdx"]},"chemical/x-cif":{source:"apache",extensions:["cif"]},"chemical/x-cmdf":{source:"apache",extensions:["cmdf"]},"chemical/x-cml":{source:"apache",extensions:["cml"]},"chemical/x-csml":{source:"apache",extensions:["csml"]},"chemical/x-pdb":{source:"apache"},"chemical/x-xyz":{source:"apache",extensions:["xyz"]},"font/collection":{source:"iana",extensions:["ttc"]},"font/otf":{source:"iana",compressible:!0,extensions:["otf"]},"font/sfnt":{source:"iana"},"font/ttf":{source:"iana",compressible:!0,extensions:["ttf"]},"font/woff":{source:"iana",extensions:["woff"]},"font/woff2":{source:"iana",extensions:["woff2"]},"image/aces":{source:"iana",extensions:["exr"]},"image/apng":{compressible:!1,extensions:["apng"]},"image/avci":{source:"iana",extensions:["avci"]},"image/avcs":{source:"iana",extensions:["avcs"]},"image/avif":{source:"iana",compressible:!1,extensions:["avif"]},"image/bmp":{source:"iana",compressible:!0,extensions:["bmp"]},"image/cgm":{source:"iana",extensions:["cgm"]},"image/dicom-rle":{source:"iana",extensions:["drle"]},"image/emf":{source:"iana",extensions:["emf"]},"image/fits":{source:"iana",extensions:["fits"]},"image/g3fax":{source:"iana",extensions:["g3"]},"image/gif":{source:"iana",compressible:!1,extensions:["gif"]},"image/heic":{source:"iana",extensions:["heic"]},"image/heic-sequence":{source:"iana",extensions:["heics"]},"image/heif":{source:"iana",extensions:["heif"]},"image/heif-sequence":{source:"iana",extensions:["heifs"]},"image/hej2k":{source:"iana",extensions:["hej2"]},"image/hsj2":{source:"iana",extensions:["hsj2"]},"image/ief":{source:"iana",extensions:["ief"]},"image/jls":{source:"iana",extensions:["jls"]},"image/jp2":{source:"iana",compressible:!1,extensions:["jp2","jpg2"]},"image/jpeg":{source:"iana",compressible:!1,extensions:["jpeg","jpg","jpe"]},"image/jph":{source:"iana",extensions:["jph"]},"image/jphc":{source:"iana",extensions:["jhc"]},"image/jpm":{source:"iana",compressible:!1,extensions:["jpm"]},"image/jpx":{source:"iana",compressible:!1,extensions:["jpx","jpf"]},"image/jxr":{source:"iana",extensions:["jxr"]},"image/jxra":{source:"iana",extensions:["jxra"]},"image/jxrs":{source:"iana",extensions:["jxrs"]},"image/jxs":{source:"iana",extensions:["jxs"]},"image/jxsc":{source:"iana",extensions:["jxsc"]},"image/jxsi":{source:"iana",extensions:["jxsi"]},"image/jxss":{source:"iana",extensions:["jxss"]},"image/ktx":{source:"iana",extensions:["ktx"]},"image/ktx2":{source:"iana",extensions:["ktx2"]},"image/naplps":{source:"iana"},"image/pjpeg":{compressible:!1},"image/png":{source:"iana",compressible:!1,extensions:["png"]},"image/prs.btif":{source:"iana",extensions:["btif"]},"image/prs.pti":{source:"iana",extensions:["pti"]},"image/pwg-raster":{source:"iana"},"image/sgi":{source:"apache",extensions:["sgi"]},"image/svg+xml":{source:"iana",compressible:!0,extensions:["svg","svgz"]},"image/t38":{source:"iana",extensions:["t38"]},"image/tiff":{source:"iana",compressible:!1,extensions:["tif","tiff"]},"image/tiff-fx":{source:"iana",extensions:["tfx"]},"image/vnd.adobe.photoshop":{source:"iana",compressible:!0,extensions:["psd"]},"image/vnd.airzip.accelerator.azv":{source:"iana",extensions:["azv"]},"image/vnd.cns.inf2":{source:"iana"},"image/vnd.dece.graphic":{source:"iana",extensions:["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{source:"iana",extensions:["djvu","djv"]},"image/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"image/vnd.dwg":{source:"iana",extensions:["dwg"]},"image/vnd.dxf":{source:"iana",extensions:["dxf"]},"image/vnd.fastbidsheet":{source:"iana",extensions:["fbs"]},"image/vnd.fpx":{source:"iana",extensions:["fpx"]},"image/vnd.fst":{source:"iana",extensions:["fst"]},"image/vnd.fujixerox.edmics-mmr":{source:"iana",extensions:["mmr"]},"image/vnd.fujixerox.edmics-rlc":{source:"iana",extensions:["rlc"]},"image/vnd.globalgraphics.pgb":{source:"iana"},"image/vnd.microsoft.icon":{source:"iana",compressible:!0,extensions:["ico"]},"image/vnd.mix":{source:"iana"},"image/vnd.mozilla.apng":{source:"iana"},"image/vnd.ms-dds":{compressible:!0,extensions:["dds"]},"image/vnd.ms-modi":{source:"iana",extensions:["mdi"]},"image/vnd.ms-photo":{source:"apache",extensions:["wdp"]},"image/vnd.net-fpx":{source:"iana",extensions:["npx"]},"image/vnd.pco.b16":{source:"iana",extensions:["b16"]},"image/vnd.radiance":{source:"iana"},"image/vnd.sealed.png":{source:"iana"},"image/vnd.sealedmedia.softseal.gif":{source:"iana"},"image/vnd.sealedmedia.softseal.jpg":{source:"iana"},"image/vnd.svf":{source:"iana"},"image/vnd.tencent.tap":{source:"iana",extensions:["tap"]},"image/vnd.valve.source.texture":{source:"iana",extensions:["vtf"]},"image/vnd.wap.wbmp":{source:"iana",extensions:["wbmp"]},"image/vnd.xiff":{source:"iana",extensions:["xif"]},"image/vnd.zbrush.pcx":{source:"iana",extensions:["pcx"]},"image/webp":{source:"apache",extensions:["webp"]},"image/wmf":{source:"iana",extensions:["wmf"]},"image/x-3ds":{source:"apache",extensions:["3ds"]},"image/x-cmu-raster":{source:"apache",extensions:["ras"]},"image/x-cmx":{source:"apache",extensions:["cmx"]},"image/x-freehand":{source:"apache",extensions:["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{source:"apache",compressible:!0,extensions:["ico"]},"image/x-jng":{source:"nginx",extensions:["jng"]},"image/x-mrsid-image":{source:"apache",extensions:["sid"]},"image/x-ms-bmp":{source:"nginx",compressible:!0,extensions:["bmp"]},"image/x-pcx":{source:"apache",extensions:["pcx"]},"image/x-pict":{source:"apache",extensions:["pic","pct"]},"image/x-portable-anymap":{source:"apache",extensions:["pnm"]},"image/x-portable-bitmap":{source:"apache",extensions:["pbm"]},"image/x-portable-graymap":{source:"apache",extensions:["pgm"]},"image/x-portable-pixmap":{source:"apache",extensions:["ppm"]},"image/x-rgb":{source:"apache",extensions:["rgb"]},"image/x-tga":{source:"apache",extensions:["tga"]},"image/x-xbitmap":{source:"apache",extensions:["xbm"]},"image/x-xcf":{compressible:!1},"image/x-xpixmap":{source:"apache",extensions:["xpm"]},"image/x-xwindowdump":{source:"apache",extensions:["xwd"]},"message/cpim":{source:"iana"},"message/delivery-status":{source:"iana"},"message/disposition-notification":{source:"iana",extensions:["disposition-notification"]},"message/external-body":{source:"iana"},"message/feedback-report":{source:"iana"},"message/global":{source:"iana",extensions:["u8msg"]},"message/global-delivery-status":{source:"iana",extensions:["u8dsn"]},"message/global-disposition-notification":{source:"iana",extensions:["u8mdn"]},"message/global-headers":{source:"iana",extensions:["u8hdr"]},"message/http":{source:"iana",compressible:!1},"message/imdn+xml":{source:"iana",compressible:!0},"message/news":{source:"iana"},"message/partial":{source:"iana",compressible:!1},"message/rfc822":{source:"iana",compressible:!0,extensions:["eml","mime"]},"message/s-http":{source:"iana"},"message/sip":{source:"iana"},"message/sipfrag":{source:"iana"},"message/tracking-status":{source:"iana"},"message/vnd.si.simp":{source:"iana"},"message/vnd.wfa.wsc":{source:"iana",extensions:["wsc"]},"model/3mf":{source:"iana",extensions:["3mf"]},"model/e57":{source:"iana"},"model/gltf+json":{source:"iana",compressible:!0,extensions:["gltf"]},"model/gltf-binary":{source:"iana",compressible:!0,extensions:["glb"]},"model/iges":{source:"iana",compressible:!1,extensions:["igs","iges"]},"model/mesh":{source:"iana",compressible:!1,extensions:["msh","mesh","silo"]},"model/mtl":{source:"iana",extensions:["mtl"]},"model/obj":{source:"iana",extensions:["obj"]},"model/step":{source:"iana"},"model/step+xml":{source:"iana",compressible:!0,extensions:["stpx"]},"model/step+zip":{source:"iana",compressible:!1,extensions:["stpz"]},"model/step-xml+zip":{source:"iana",compressible:!1,extensions:["stpxz"]},"model/stl":{source:"iana",extensions:["stl"]},"model/vnd.collada+xml":{source:"iana",compressible:!0,extensions:["dae"]},"model/vnd.dwf":{source:"iana",extensions:["dwf"]},"model/vnd.flatland.3dml":{source:"iana"},"model/vnd.gdl":{source:"iana",extensions:["gdl"]},"model/vnd.gs-gdl":{source:"apache"},"model/vnd.gs.gdl":{source:"iana"},"model/vnd.gtw":{source:"iana",extensions:["gtw"]},"model/vnd.moml+xml":{source:"iana",compressible:!0},"model/vnd.mts":{source:"iana",extensions:["mts"]},"model/vnd.opengex":{source:"iana",extensions:["ogex"]},"model/vnd.parasolid.transmit.binary":{source:"iana",extensions:["x_b"]},"model/vnd.parasolid.transmit.text":{source:"iana",extensions:["x_t"]},"model/vnd.pytha.pyox":{source:"iana"},"model/vnd.rosette.annotated-data-model":{source:"iana"},"model/vnd.sap.vds":{source:"iana",extensions:["vds"]},"model/vnd.usdz+zip":{source:"iana",compressible:!1,extensions:["usdz"]},"model/vnd.valve.source.compiled-map":{source:"iana",extensions:["bsp"]},"model/vnd.vtu":{source:"iana",extensions:["vtu"]},"model/vrml":{source:"iana",compressible:!1,extensions:["wrl","vrml"]},"model/x3d+binary":{source:"apache",compressible:!1,extensions:["x3db","x3dbz"]},"model/x3d+fastinfoset":{source:"iana",extensions:["x3db"]},"model/x3d+vrml":{source:"apache",compressible:!1,extensions:["x3dv","x3dvz"]},"model/x3d+xml":{source:"iana",compressible:!0,extensions:["x3d","x3dz"]},"model/x3d-vrml":{source:"iana",extensions:["x3dv"]},"multipart/alternative":{source:"iana",compressible:!1},"multipart/appledouble":{source:"iana"},"multipart/byteranges":{source:"iana"},"multipart/digest":{source:"iana"},"multipart/encrypted":{source:"iana",compressible:!1},"multipart/form-data":{source:"iana",compressible:!1},"multipart/header-set":{source:"iana"},"multipart/mixed":{source:"iana"},"multipart/multilingual":{source:"iana"},"multipart/parallel":{source:"iana"},"multipart/related":{source:"iana",compressible:!1},"multipart/report":{source:"iana"},"multipart/signed":{source:"iana",compressible:!1},"multipart/vnd.bint.med-plus":{source:"iana"},"multipart/voice-message":{source:"iana"},"multipart/x-mixed-replace":{source:"iana"},"text/1d-interleaved-parityfec":{source:"iana"},"text/cache-manifest":{source:"iana",compressible:!0,extensions:["appcache","manifest"]},"text/calendar":{source:"iana",extensions:["ics","ifb"]},"text/calender":{compressible:!0},"text/cmd":{compressible:!0},"text/coffeescript":{extensions:["coffee","litcoffee"]},"text/cql":{source:"iana"},"text/cql-expression":{source:"iana"},"text/cql-identifier":{source:"iana"},"text/css":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["css"]},"text/csv":{source:"iana",compressible:!0,extensions:["csv"]},"text/csv-schema":{source:"iana"},"text/directory":{source:"iana"},"text/dns":{source:"iana"},"text/ecmascript":{source:"iana"},"text/encaprtp":{source:"iana"},"text/enriched":{source:"iana"},"text/fhirpath":{source:"iana"},"text/flexfec":{source:"iana"},"text/fwdred":{source:"iana"},"text/gff3":{source:"iana"},"text/grammar-ref-list":{source:"iana"},"text/html":{source:"iana",compressible:!0,extensions:["html","htm","shtml"]},"text/jade":{extensions:["jade"]},"text/javascript":{source:"iana",compressible:!0},"text/jcr-cnd":{source:"iana"},"text/jsx":{compressible:!0,extensions:["jsx"]},"text/less":{compressible:!0,extensions:["less"]},"text/markdown":{source:"iana",compressible:!0,extensions:["markdown","md"]},"text/mathml":{source:"nginx",extensions:["mml"]},"text/mdx":{compressible:!0,extensions:["mdx"]},"text/mizar":{source:"iana"},"text/n3":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["n3"]},"text/parameters":{source:"iana",charset:"UTF-8"},"text/parityfec":{source:"iana"},"text/plain":{source:"iana",compressible:!0,extensions:["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{source:"iana",charset:"UTF-8"},"text/prs.fallenstein.rst":{source:"iana"},"text/prs.lines.tag":{source:"iana",extensions:["dsc"]},"text/prs.prop.logic":{source:"iana"},"text/raptorfec":{source:"iana"},"text/red":{source:"iana"},"text/rfc822-headers":{source:"iana"},"text/richtext":{source:"iana",compressible:!0,extensions:["rtx"]},"text/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"text/rtp-enc-aescm128":{source:"iana"},"text/rtploopback":{source:"iana"},"text/rtx":{source:"iana"},"text/sgml":{source:"iana",extensions:["sgml","sgm"]},"text/shaclc":{source:"iana"},"text/shex":{source:"iana",extensions:["shex"]},"text/slim":{extensions:["slim","slm"]},"text/spdx":{source:"iana",extensions:["spdx"]},"text/strings":{source:"iana"},"text/stylus":{extensions:["stylus","styl"]},"text/t140":{source:"iana"},"text/tab-separated-values":{source:"iana",compressible:!0,extensions:["tsv"]},"text/troff":{source:"iana",extensions:["t","tr","roff","man","me","ms"]},"text/turtle":{source:"iana",charset:"UTF-8",extensions:["ttl"]},"text/ulpfec":{source:"iana"},"text/uri-list":{source:"iana",compressible:!0,extensions:["uri","uris","urls"]},"text/vcard":{source:"iana",compressible:!0,extensions:["vcard"]},"text/vnd.a":{source:"iana"},"text/vnd.abc":{source:"iana"},"text/vnd.ascii-art":{source:"iana"},"text/vnd.curl":{source:"iana",extensions:["curl"]},"text/vnd.curl.dcurl":{source:"apache",extensions:["dcurl"]},"text/vnd.curl.mcurl":{source:"apache",extensions:["mcurl"]},"text/vnd.curl.scurl":{source:"apache",extensions:["scurl"]},"text/vnd.debian.copyright":{source:"iana",charset:"UTF-8"},"text/vnd.dmclientscript":{source:"iana"},"text/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"text/vnd.esmertec.theme-descriptor":{source:"iana",charset:"UTF-8"},"text/vnd.familysearch.gedcom":{source:"iana",extensions:["ged"]},"text/vnd.ficlab.flt":{source:"iana"},"text/vnd.fly":{source:"iana",extensions:["fly"]},"text/vnd.fmi.flexstor":{source:"iana",extensions:["flx"]},"text/vnd.gml":{source:"iana"},"text/vnd.graphviz":{source:"iana",extensions:["gv"]},"text/vnd.hans":{source:"iana"},"text/vnd.hgl":{source:"iana"},"text/vnd.in3d.3dml":{source:"iana",extensions:["3dml"]},"text/vnd.in3d.spot":{source:"iana",extensions:["spot"]},"text/vnd.iptc.newsml":{source:"iana"},"text/vnd.iptc.nitf":{source:"iana"},"text/vnd.latex-z":{source:"iana"},"text/vnd.motorola.reflex":{source:"iana"},"text/vnd.ms-mediapackage":{source:"iana"},"text/vnd.net2phone.commcenter.command":{source:"iana"},"text/vnd.radisys.msml-basic-layout":{source:"iana"},"text/vnd.senx.warpscript":{source:"iana"},"text/vnd.si.uricatalogue":{source:"iana"},"text/vnd.sosi":{source:"iana"},"text/vnd.sun.j2me.app-descriptor":{source:"iana",charset:"UTF-8",extensions:["jad"]},"text/vnd.trolltech.linguist":{source:"iana",charset:"UTF-8"},"text/vnd.wap.si":{source:"iana"},"text/vnd.wap.sl":{source:"iana"},"text/vnd.wap.wml":{source:"iana",extensions:["wml"]},"text/vnd.wap.wmlscript":{source:"iana",extensions:["wmls"]},"text/vtt":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["vtt"]},"text/x-asm":{source:"apache",extensions:["s","asm"]},"text/x-c":{source:"apache",extensions:["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{source:"nginx",extensions:["htc"]},"text/x-fortran":{source:"apache",extensions:["f","for","f77","f90"]},"text/x-gwt-rpc":{compressible:!0},"text/x-handlebars-template":{extensions:["hbs"]},"text/x-java-source":{source:"apache",extensions:["java"]},"text/x-jquery-tmpl":{compressible:!0},"text/x-lua":{extensions:["lua"]},"text/x-markdown":{compressible:!0,extensions:["mkd"]},"text/x-nfo":{source:"apache",extensions:["nfo"]},"text/x-opml":{source:"apache",extensions:["opml"]},"text/x-org":{compressible:!0,extensions:["org"]},"text/x-pascal":{source:"apache",extensions:["p","pas"]},"text/x-processing":{compressible:!0,extensions:["pde"]},"text/x-sass":{extensions:["sass"]},"text/x-scss":{extensions:["scss"]},"text/x-setext":{source:"apache",extensions:["etx"]},"text/x-sfv":{source:"apache",extensions:["sfv"]},"text/x-suse-ymp":{compressible:!0,extensions:["ymp"]},"text/x-uuencode":{source:"apache",extensions:["uu"]},"text/x-vcalendar":{source:"apache",extensions:["vcs"]},"text/x-vcard":{source:"apache",extensions:["vcf"]},"text/xml":{source:"iana",compressible:!0,extensions:["xml"]},"text/xml-external-parsed-entity":{source:"iana"},"text/yaml":{compressible:!0,extensions:["yaml","yml"]},"video/1d-interleaved-parityfec":{source:"iana"},"video/3gpp":{source:"iana",extensions:["3gp","3gpp"]},"video/3gpp-tt":{source:"iana"},"video/3gpp2":{source:"iana",extensions:["3g2"]},"video/av1":{source:"iana"},"video/bmpeg":{source:"iana"},"video/bt656":{source:"iana"},"video/celb":{source:"iana"},"video/dv":{source:"iana"},"video/encaprtp":{source:"iana"},"video/ffv1":{source:"iana"},"video/flexfec":{source:"iana"},"video/h261":{source:"iana",extensions:["h261"]},"video/h263":{source:"iana",extensions:["h263"]},"video/h263-1998":{source:"iana"},"video/h263-2000":{source:"iana"},"video/h264":{source:"iana",extensions:["h264"]},"video/h264-rcdo":{source:"iana"},"video/h264-svc":{source:"iana"},"video/h265":{source:"iana"},"video/iso.segment":{source:"iana",extensions:["m4s"]},"video/jpeg":{source:"iana",extensions:["jpgv"]},"video/jpeg2000":{source:"iana"},"video/jpm":{source:"apache",extensions:["jpm","jpgm"]},"video/jxsv":{source:"iana"},"video/mj2":{source:"iana",extensions:["mj2","mjp2"]},"video/mp1s":{source:"iana"},"video/mp2p":{source:"iana"},"video/mp2t":{source:"iana",extensions:["ts"]},"video/mp4":{source:"iana",compressible:!1,extensions:["mp4","mp4v","mpg4"]},"video/mp4v-es":{source:"iana"},"video/mpeg":{source:"iana",compressible:!1,extensions:["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{source:"iana"},"video/mpv":{source:"iana"},"video/nv":{source:"iana"},"video/ogg":{source:"iana",compressible:!1,extensions:["ogv"]},"video/parityfec":{source:"iana"},"video/pointer":{source:"iana"},"video/quicktime":{source:"iana",compressible:!1,extensions:["qt","mov"]},"video/raptorfec":{source:"iana"},"video/raw":{source:"iana"},"video/rtp-enc-aescm128":{source:"iana"},"video/rtploopback":{source:"iana"},"video/rtx":{source:"iana"},"video/scip":{source:"iana"},"video/smpte291":{source:"iana"},"video/smpte292m":{source:"iana"},"video/ulpfec":{source:"iana"},"video/vc1":{source:"iana"},"video/vc2":{source:"iana"},"video/vnd.cctv":{source:"iana"},"video/vnd.dece.hd":{source:"iana",extensions:["uvh","uvvh"]},"video/vnd.dece.mobile":{source:"iana",extensions:["uvm","uvvm"]},"video/vnd.dece.mp4":{source:"iana"},"video/vnd.dece.pd":{source:"iana",extensions:["uvp","uvvp"]},"video/vnd.dece.sd":{source:"iana",extensions:["uvs","uvvs"]},"video/vnd.dece.video":{source:"iana",extensions:["uvv","uvvv"]},"video/vnd.directv.mpeg":{source:"iana"},"video/vnd.directv.mpeg-tts":{source:"iana"},"video/vnd.dlna.mpeg-tts":{source:"iana"},"video/vnd.dvb.file":{source:"iana",extensions:["dvb"]},"video/vnd.fvt":{source:"iana",extensions:["fvt"]},"video/vnd.hns.video":{source:"iana"},"video/vnd.iptvforum.1dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.1dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.2dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.2dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.ttsavc":{source:"iana"},"video/vnd.iptvforum.ttsmpeg2":{source:"iana"},"video/vnd.motorola.video":{source:"iana"},"video/vnd.motorola.videop":{source:"iana"},"video/vnd.mpegurl":{source:"iana",extensions:["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{source:"iana",extensions:["pyv"]},"video/vnd.nokia.interleaved-multimedia":{source:"iana"},"video/vnd.nokia.mp4vr":{source:"iana"},"video/vnd.nokia.videovoip":{source:"iana"},"video/vnd.objectvideo":{source:"iana"},"video/vnd.radgamettools.bink":{source:"iana"},"video/vnd.radgamettools.smacker":{source:"iana"},"video/vnd.sealed.mpeg1":{source:"iana"},"video/vnd.sealed.mpeg4":{source:"iana"},"video/vnd.sealed.swf":{source:"iana"},"video/vnd.sealedmedia.softseal.mov":{source:"iana"},"video/vnd.uvvu.mp4":{source:"iana",extensions:["uvu","uvvu"]},"video/vnd.vivo":{source:"iana",extensions:["viv"]},"video/vnd.youtube.yt":{source:"iana"},"video/vp8":{source:"iana"},"video/vp9":{source:"iana"},"video/webm":{source:"apache",compressible:!1,extensions:["webm"]},"video/x-f4v":{source:"apache",extensions:["f4v"]},"video/x-fli":{source:"apache",extensions:["fli"]},"video/x-flv":{source:"apache",compressible:!1,extensions:["flv"]},"video/x-m4v":{source:"apache",extensions:["m4v"]},"video/x-matroska":{source:"apache",compressible:!1,extensions:["mkv","mk3d","mks"]},"video/x-mng":{source:"apache",extensions:["mng"]},"video/x-ms-asf":{source:"apache",extensions:["asf","asx"]},"video/x-ms-vob":{source:"apache",extensions:["vob"]},"video/x-ms-wm":{source:"apache",extensions:["wm"]},"video/x-ms-wmv":{source:"apache",compressible:!1,extensions:["wmv"]},"video/x-ms-wmx":{source:"apache",extensions:["wmx"]},"video/x-ms-wvx":{source:"apache",extensions:["wvx"]},"video/x-msvideo":{source:"apache",extensions:["avi"]},"video/x-sgi-movie":{source:"apache",extensions:["movie"]},"video/x-smv":{source:"apache",extensions:["smv"]},"x-conference/x-cooltalk":{source:"apache",extensions:["ice"]},"x-shader/x-fragment":{compressible:!0},"x-shader/x-vertex":{compressible:!0}}});var bN=j((G$e,_N)=>{_N.exports=yN()});var TS=j(Zr=>{"use strict";var bm=bN(),MW=require("path").extname,xN=/^\s*([^;\s]*)(?:;|\s|$)/,DW=/^text\//i;Zr.charset=SN;Zr.charsets={lookup:SN};Zr.contentType=zW;Zr.extension=UW;Zr.extensions=Object.create(null);Zr.lookup=qW;Zr.types=Object.create(null);LW(Zr.extensions,Zr.types);function SN(t){if(!t||typeof t!="string")return!1;var e=xN.exec(t),r=e&&bm[e[1].toLowerCase()];return r&&r.charset?r.charset:e&&DW.test(e[1])?"UTF-8":!1}function zW(t){if(!t||typeof t!="string")return!1;var e=t.indexOf("/")===-1?Zr.lookup(t):t;if(!e)return!1;if(e.indexOf("charset")===-1){var r=Zr.charset(e);r&&(e+="; charset="+r.toLowerCase())}return e}function UW(t){if(!t||typeof t!="string")return!1;var e=xN.exec(t),r=e&&Zr.extensions[e[1].toLowerCase()];return!r||!r.length?!1:r[0]}function qW(t){if(!t||typeof t!="string")return!1;var e=MW("x."+t).toLowerCase().substr(1);return e&&Zr.types[e]||!1}function LW(t,e){var r=["nginx","apache",void 0,"iana"];Object.keys(bm).forEach(function(i){var a=bm[i],o=a.extensions;if(!(!o||!o.length)){t[i]=o;for(var s=0;sl||u===l&&e[c].substr(0,12)==="application/"))continue}e[c]=i}}})}});var Os=j((K$e,Rs)=>{"use strict";var wN=vN(),FW=TS();Rs.exports=ZW;Rs.exports.is=$N;Rs.exports.hasBody=EN;Rs.exports.normalize=kN;Rs.exports.match=TN;function $N(t,e){var r,n=e,i=BW(t);if(!i)return!1;if(n&&!Array.isArray(n))for(n=new Array(arguments.length-1),r=0;r2){r=new Array(arguments.length-1);for(var n=0;n{"use strict";var VW=Ss(),GW=ml(),WW=Ya(),da=_n()("body-parser:json"),KW=kl(),PN=Os();ON.exports=YW;var JW=/^[\x20\x09\x0a\x0d]*([^\x20\x09\x0a\x0d])/,IN="#",XW=/#+/g;function YW(t){var e=t||{},r=typeof e.limit!="number"?VW.parse(e.limit||"100kb"):e.limit,n=e.inflate!==!1,i=e.reviver,a=e.strict!==!1,o=e.type||"application/json",s=e.verify||!1;if(s!==!1&&typeof s!="function")throw new TypeError("option verify must be function");var c=typeof o!="function"?rK(o):o;function u(l){if(l.length===0)return{};if(a){var d=eK(l);if(d!=="{"&&d!=="[")throw da("strict violation"),QW(l,d)}try{return da("parse json"),JSON.parse(l,i)}catch(p){throw RN(p,{message:p.message,stack:p.stack})}}return function(d,p,f){if(d._body){da("body already parsed"),f();return}if(d.body=d.body||{},!PN.hasBody(d)){da("skip empty body"),f();return}if(da("content-type %j",d.headers["content-type"]),!c(d)){da("skip parsing"),f();return}var h=tK(d)||"utf-8";if(h.slice(0,4)!=="utf-"){da("invalid charset"),f(WW(415,'unsupported charset "'+h.toUpperCase()+'"',{charset:h,type:"charset.unsupported"}));return}KW(d,p,f,u,da,{encoding:h,inflate:n,limit:r,verify:s})}}function QW(t,e){var r=t.indexOf(e),n="";if(r!==-1){n=t.substring(0,r)+IN;for(var i=r+1;i{"use strict";var nK=Ss(),Tl=_n()("body-parser:raw"),iK=kl(),NN=Os();jN.exports=aK;function aK(t){var e=t||{},r=e.inflate!==!1,n=typeof e.limit!="number"?nK.parse(e.limit||"100kb"):e.limit,i=e.type||"application/octet-stream",a=e.verify||!1;if(a!==!1&&typeof a!="function")throw new TypeError("option verify must be function");var o=typeof i!="function"?oK(i):i;function s(c){return c}return function(u,l,d){if(u._body){Tl("body already parsed"),d();return}if(u.body=u.body||{},!NN.hasBody(u)){Tl("skip empty body"),d();return}if(Tl("content-type %j",u.headers["content-type"]),!o(u)){Tl("skip parsing"),d();return}iK(u,l,d,s,Tl,{encoding:null,inflate:r,limit:n,verify:a})}}function oK(t){return function(r){return!!NN(r,t)}}});var zN=j((Y$e,DN)=>{"use strict";var sK=Ss(),cK=ml(),Il=_n()("body-parser:text"),uK=kl(),MN=Os();DN.exports=lK;function lK(t){var e=t||{},r=e.defaultCharset||"utf-8",n=e.inflate!==!1,i=typeof e.limit!="number"?sK.parse(e.limit||"100kb"):e.limit,a=e.type||"text/plain",o=e.verify||!1;if(o!==!1&&typeof o!="function")throw new TypeError("option verify must be function");var s=typeof a!="function"?pK(a):a;function c(u){return u}return function(l,d,p){if(l._body){Il("body already parsed"),p();return}if(l.body=l.body||{},!MN.hasBody(l)){Il("skip empty body"),p();return}if(Il("content-type %j",l.headers["content-type"]),!s(l)){Il("skip parsing"),p();return}var f=dK(l)||r;uK(l,d,p,c,Il,{encoding:f,inflate:n,limit:i,verify:o})}}function dK(t){try{return(cK.parse(t).parameters.charset||"").toLowerCase()}catch{return}}function pK(t){return function(r){return!!MN(r,t)}}});var io=j((Q$e,UN)=>{"use strict";UN.exports=TypeError});var LN=j((eEe,qN)=>{qN.exports=require("util").inspect});var Nl=j((tEe,sj)=>{var DS=typeof Map=="function"&&Map.prototype,IS=Object.getOwnPropertyDescriptor&&DS?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,Sm=DS&&IS&&typeof IS.get=="function"?IS.get:null,FN=DS&&Map.prototype.forEach,zS=typeof Set=="function"&&Set.prototype,PS=Object.getOwnPropertyDescriptor&&zS?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,wm=zS&&PS&&typeof PS.get=="function"?PS.get:null,ZN=zS&&Set.prototype.forEach,fK=typeof WeakMap=="function"&&WeakMap.prototype,Rl=fK?WeakMap.prototype.has:null,mK=typeof WeakSet=="function"&&WeakSet.prototype,Ol=mK?WeakSet.prototype.has:null,hK=typeof WeakRef=="function"&&WeakRef.prototype,HN=hK?WeakRef.prototype.deref:null,gK=Boolean.prototype.valueOf,vK=Object.prototype.toString,yK=Function.prototype.toString,_K=String.prototype.match,US=String.prototype.slice,pa=String.prototype.replace,bK=String.prototype.toUpperCase,BN=String.prototype.toLowerCase,ej=RegExp.prototype.test,VN=Array.prototype.concat,di=Array.prototype.join,xK=Array.prototype.slice,GN=Math.floor,CS=typeof BigInt=="function"?BigInt.prototype.valueOf:null,RS=Object.getOwnPropertySymbols,NS=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,Cs=typeof Symbol=="function"&&typeof Symbol.iterator=="object",Cl=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===Cs||!0)?Symbol.toStringTag:null,tj=Object.prototype.propertyIsEnumerable,WN=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function KN(t,e){if(t===1/0||t===-1/0||t!==t||t&&t>-1e3&&t<1e3||ej.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof t=="number"){var n=t<0?-GN(-t):GN(t);if(n!==t){var i=String(n),a=US.call(e,i.length+1);return pa.call(i,r,"$&_")+"."+pa.call(pa.call(a,/([0-9]{3})/g,"$&_"),/_$/,"")}}return pa.call(e,r,"$&_")}var jS=LN(),JN=jS.custom,XN=ij(JN)?JN:null,rj={__proto__:null,double:'"',single:"'"},SK={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};sj.exports=function t(e,r,n,i){var a=r||{};if(Ai(a,"quoteStyle")&&!Ai(rj,a.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(Ai(a,"maxStringLength")&&(typeof a.maxStringLength=="number"?a.maxStringLength<0&&a.maxStringLength!==1/0:a.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var o=Ai(a,"customInspect")?a.customInspect:!0;if(typeof o!="boolean"&&o!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(Ai(a,"indent")&&a.indent!==null&&a.indent!==" "&&!(parseInt(a.indent,10)===a.indent&&a.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(Ai(a,"numericSeparator")&&typeof a.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var s=a.numericSeparator;if(typeof e>"u")return"undefined";if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return oj(e,a);if(typeof e=="number"){if(e===0)return 1/0/e>0?"0":"-0";var c=String(e);return s?KN(e,c):c}if(typeof e=="bigint"){var u=String(e)+"n";return s?KN(e,u):u}var l=typeof a.depth>"u"?5:a.depth;if(typeof n>"u"&&(n=0),n>=l&&l>0&&typeof e=="object")return AS(e)?"[Array]":"[Object]";var d=qK(a,n);if(typeof i>"u")i=[];else if(aj(i,e)>=0)return"[Circular]";function p(B,U,Y){if(U&&(i=xK.call(i),i.push(U)),Y){var me={depth:a.depth};return Ai(a,"quoteStyle")&&(me.quoteStyle=a.quoteStyle),t(B,me,n+1,i)}return t(B,a,n+1,i)}if(typeof e=="function"&&!YN(e)){var f=OK(e),h=xm(e,p);return"[Function"+(f?": "+f:" (anonymous)")+"]"+(h.length>0?" { "+di.call(h,", ")+" }":"")}if(ij(e)){var _=Cs?pa.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):NS.call(e);return typeof e=="object"&&!Cs?Pl(_):_}if(DK(e)){for(var y="<"+BN.call(String(e.nodeName)),m=e.attributes||[],v=0;v",y}if(AS(e)){if(e.length===0)return"[]";var g=xm(e,p);return d&&!UK(g)?"["+MS(g,d)+"]":"[ "+di.call(g,", ")+" ]"}if(EK(e)){var b=xm(e,p);return!("cause"in Error.prototype)&&"cause"in e&&!tj.call(e,"cause")?"{ ["+String(e)+"] "+di.call(VN.call("[cause]: "+p(e.cause),b),", ")+" }":b.length===0?"["+String(e)+"]":"{ ["+String(e)+"] "+di.call(b,", ")+" }"}if(typeof e=="object"&&o){if(XN&&typeof e[XN]=="function"&&jS)return jS(e,{depth:l-n});if(o!=="symbol"&&typeof e.inspect=="function")return e.inspect()}if(CK(e)){var S=[];return FN&&FN.call(e,function(B,U){S.push(p(U,e,!0)+" => "+p(B,e))}),QN("Map",Sm.call(e),S,d)}if(AK(e)){var x=[];return ZN&&ZN.call(e,function(B){x.push(p(B,e))}),QN("Set",wm.call(e),x,d)}if(NK(e))return OS("WeakMap");if(MK(e))return OS("WeakSet");if(jK(e))return OS("WeakRef");if(TK(e))return Pl(p(Number(e)));if(PK(e))return Pl(p(CS.call(e)));if(IK(e))return Pl(gK.call(e));if(kK(e))return Pl(p(String(e)));if(typeof window<"u"&&e===window)return"{ [object Window] }";if(typeof globalThis<"u"&&e===globalThis||typeof global<"u"&&e===global)return"{ [object globalThis] }";if(!$K(e)&&!YN(e)){var w=xm(e,p),E=WN?WN(e)===Object.prototype:e instanceof Object||e.constructor===Object,R=e instanceof Object?"":"null prototype",A=!E&&Cl&&Object(e)===e&&Cl in e?US.call(fa(e),8,-1):R?"Object":"",M=E||typeof e.constructor!="function"?"":e.constructor.name?e.constructor.name+" ":"",q=M+(A||R?"["+di.call(VN.call([],A||[],R||[]),": ")+"] ":"");return w.length===0?q+"{}":d?q+"{"+MS(w,d)+"}":q+"{ "+di.call(w,", ")+" }"}return String(e)};function nj(t,e,r){var n=r.quoteStyle||e,i=rj[n];return i+t+i}function wK(t){return pa.call(String(t),/"/g,""")}function ao(t){return!Cl||!(typeof t=="object"&&(Cl in t||typeof t[Cl]<"u"))}function AS(t){return fa(t)==="[object Array]"&&ao(t)}function $K(t){return fa(t)==="[object Date]"&&ao(t)}function YN(t){return fa(t)==="[object RegExp]"&&ao(t)}function EK(t){return fa(t)==="[object Error]"&&ao(t)}function kK(t){return fa(t)==="[object String]"&&ao(t)}function TK(t){return fa(t)==="[object Number]"&&ao(t)}function IK(t){return fa(t)==="[object Boolean]"&&ao(t)}function ij(t){if(Cs)return t&&typeof t=="object"&&t instanceof Symbol;if(typeof t=="symbol")return!0;if(!t||typeof t!="object"||!NS)return!1;try{return NS.call(t),!0}catch{}return!1}function PK(t){if(!t||typeof t!="object"||!CS)return!1;try{return CS.call(t),!0}catch{}return!1}var RK=Object.prototype.hasOwnProperty||function(t){return t in this};function Ai(t,e){return RK.call(t,e)}function fa(t){return vK.call(t)}function OK(t){if(t.name)return t.name;var e=_K.call(yK.call(t),/^function\s*([\w$]+)/);return e?e[1]:null}function aj(t,e){if(t.indexOf)return t.indexOf(e);for(var r=0,n=t.length;re.maxStringLength){var r=t.length-e.maxStringLength,n="... "+r+" more character"+(r>1?"s":"");return oj(US.call(t,0,e.maxStringLength),e)+n}var i=SK[e.quoteStyle||"single"];i.lastIndex=0;var a=pa.call(pa.call(t,i,"\\$1"),/[\x00-\x1f]/g,zK);return nj(a,"single",e)}function zK(t){var e=t.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[e];return r?"\\"+r:"\\x"+(e<16?"0":"")+bK.call(e.toString(16))}function Pl(t){return"Object("+t+")"}function OS(t){return t+" { ? }"}function QN(t,e,r,n){var i=n?MS(r,n):di.call(r,", ");return t+" ("+e+") {"+i+"}"}function UK(t){for(var e=0;e=0)return!1;return!0}function qK(t,e){var r;if(t.indent===" ")r=" ";else if(typeof t.indent=="number"&&t.indent>0)r=di.call(Array(t.indent+1)," ");else return null;return{base:r,prev:di.call(Array(e+1),r)}}function MS(t,e){if(t.length===0)return"";var r=` +`+e.prev+e.base;return r+di.call(t,","+r)+` +`+e.prev}function xm(t,e){var r=AS(t),n=[];if(r){n.length=t.length;for(var i=0;i{"use strict";var LK=Nl(),FK=io(),$m=function(t,e,r){for(var n=t,i;(i=n.next)!=null;n=i)if(i.key===e)return n.next=i.next,r||(i.next=t.next,t.next=i),i},ZK=function(t,e){if(t){var r=$m(t,e);return r&&r.value}},HK=function(t,e,r){var n=$m(t,e);n?n.value=r:t.next={key:e,next:t.next,value:r}},BK=function(t,e){return t?!!$m(t,e):!1},VK=function(t,e){if(t)return $m(t,e,!0)};cj.exports=function(){var e,r={assert:function(n){if(!r.has(n))throw new FK("Side channel does not contain "+LK(n))},delete:function(n){var i=e&&e.next,a=VK(e,n);return a&&i&&i===a&&(e=void 0),!!a},get:function(n){return ZK(e,n)},has:function(n){return BK(e,n)},set:function(n,i){e||(e={next:void 0}),HK(e,n,i)}};return r}});var qS=j((nEe,lj)=>{"use strict";lj.exports=Object});var pj=j((iEe,dj)=>{"use strict";dj.exports=Error});var mj=j((aEe,fj)=>{"use strict";fj.exports=EvalError});var gj=j((oEe,hj)=>{"use strict";hj.exports=RangeError});var yj=j((sEe,vj)=>{"use strict";vj.exports=ReferenceError});var bj=j((cEe,_j)=>{"use strict";_j.exports=SyntaxError});var Sj=j((uEe,xj)=>{"use strict";xj.exports=URIError});var $j=j((lEe,wj)=>{"use strict";wj.exports=Math.abs});var kj=j((dEe,Ej)=>{"use strict";Ej.exports=Math.floor});var Ij=j((pEe,Tj)=>{"use strict";Tj.exports=Math.max});var Rj=j((fEe,Pj)=>{"use strict";Pj.exports=Math.min});var Cj=j((mEe,Oj)=>{"use strict";Oj.exports=Math.pow});var jj=j((hEe,Nj)=>{"use strict";Nj.exports=Math.round});var Mj=j((gEe,Aj)=>{"use strict";Aj.exports=Number.isNaN||function(e){return e!==e}});var zj=j((vEe,Dj)=>{"use strict";var GK=Mj();Dj.exports=function(e){return GK(e)||e===0?e:e<0?-1:1}});var qj=j((yEe,Uj)=>{"use strict";Uj.exports=Object.getOwnPropertyDescriptor});var LS=j((_Ee,Lj)=>{"use strict";var Em=qj();if(Em)try{Em([],"length")}catch{Em=null}Lj.exports=Em});var Zj=j((bEe,Fj)=>{"use strict";var km=Object.defineProperty||!1;if(km)try{km({},"a",{value:1})}catch{km=!1}Fj.exports=km});var Bj=j((xEe,Hj)=>{"use strict";Hj.exports=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var e={},r=Symbol("test"),n=Object(r);if(typeof r=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(n)!=="[object Symbol]")return!1;var i=42;e[r]=i;for(var a in e)return!1;if(typeof Object.keys=="function"&&Object.keys(e).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(e).length!==0)return!1;var o=Object.getOwnPropertySymbols(e);if(o.length!==1||o[0]!==r||!Object.prototype.propertyIsEnumerable.call(e,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var s=Object.getOwnPropertyDescriptor(e,r);if(s.value!==i||s.enumerable!==!0)return!1}return!0}});var Wj=j((SEe,Gj)=>{"use strict";var Vj=typeof Symbol<"u"&&Symbol,WK=Bj();Gj.exports=function(){return typeof Vj!="function"||typeof Symbol!="function"||typeof Vj("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:WK()}});var FS=j((wEe,Kj)=>{"use strict";Kj.exports=typeof Reflect<"u"&&Reflect.getPrototypeOf||null});var ZS=j(($Ee,Jj)=>{"use strict";var KK=qS();Jj.exports=KK.getPrototypeOf||null});var Qj=j((EEe,Yj)=>{"use strict";var JK="Function.prototype.bind called on incompatible ",XK=Object.prototype.toString,YK=Math.max,QK="[object Function]",Xj=function(e,r){for(var n=[],i=0;i{"use strict";var rJ=Qj();eA.exports=Function.prototype.bind||rJ});var Tm=j((TEe,tA)=>{"use strict";tA.exports=Function.prototype.call});var HS=j((IEe,rA)=>{"use strict";rA.exports=Function.prototype.apply});var iA=j((PEe,nA)=>{"use strict";nA.exports=typeof Reflect<"u"&&Reflect&&Reflect.apply});var oA=j((REe,aA)=>{"use strict";var nJ=jl(),iJ=HS(),aJ=Tm(),oJ=iA();aA.exports=oJ||nJ.call(aJ,iJ)});var BS=j((OEe,sA)=>{"use strict";var sJ=jl(),cJ=io(),uJ=Tm(),lJ=oA();sA.exports=function(e){if(e.length<1||typeof e[0]!="function")throw new cJ("a function is required");return lJ(sJ,uJ,e)}});var fA=j((CEe,pA)=>{"use strict";var dJ=BS(),cA=LS(),lA;try{lA=[].__proto__===Array.prototype}catch(t){if(!t||typeof t!="object"||!("code"in t)||t.code!=="ERR_PROTO_ACCESS")throw t}var VS=!!lA&&cA&&cA(Object.prototype,"__proto__"),dA=Object,uA=dA.getPrototypeOf;pA.exports=VS&&typeof VS.get=="function"?dJ([VS.get]):typeof uA=="function"?function(e){return uA(e==null?e:dA(e))}:!1});var yA=j((NEe,vA)=>{"use strict";var mA=FS(),hA=ZS(),gA=fA();vA.exports=mA?function(e){return mA(e)}:hA?function(e){if(!e||typeof e!="object"&&typeof e!="function")throw new TypeError("getProto: not an object");return hA(e)}:gA?function(e){return gA(e)}:null});var bA=j((jEe,_A)=>{"use strict";var pJ=Function.prototype.call,fJ=Object.prototype.hasOwnProperty,mJ=jl();_A.exports=mJ.call(pJ,fJ)});var Rm=j((AEe,kA)=>{"use strict";var Je,hJ=qS(),gJ=pj(),vJ=mj(),yJ=gj(),_J=yj(),Ms=bj(),As=io(),bJ=Sj(),xJ=$j(),SJ=kj(),wJ=Ij(),$J=Rj(),EJ=Cj(),kJ=jj(),TJ=zj(),$A=Function,GS=function(t){try{return $A('"use strict"; return ('+t+").constructor;")()}catch{}},Al=LS(),IJ=Zj(),WS=function(){throw new As},PJ=Al?(function(){try{return arguments.callee,WS}catch{try{return Al(arguments,"callee").get}catch{return WS}}})():WS,Ns=Wj()(),or=yA(),RJ=ZS(),OJ=FS(),EA=HS(),Ml=Tm(),js={},CJ=typeof Uint8Array>"u"||!or?Je:or(Uint8Array),oo={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?Je:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?Je:ArrayBuffer,"%ArrayIteratorPrototype%":Ns&&or?or([][Symbol.iterator]()):Je,"%AsyncFromSyncIteratorPrototype%":Je,"%AsyncFunction%":js,"%AsyncGenerator%":js,"%AsyncGeneratorFunction%":js,"%AsyncIteratorPrototype%":js,"%Atomics%":typeof Atomics>"u"?Je:Atomics,"%BigInt%":typeof BigInt>"u"?Je:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?Je:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?Je:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?Je:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":gJ,"%eval%":eval,"%EvalError%":vJ,"%Float16Array%":typeof Float16Array>"u"?Je:Float16Array,"%Float32Array%":typeof Float32Array>"u"?Je:Float32Array,"%Float64Array%":typeof Float64Array>"u"?Je:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?Je:FinalizationRegistry,"%Function%":$A,"%GeneratorFunction%":js,"%Int8Array%":typeof Int8Array>"u"?Je:Int8Array,"%Int16Array%":typeof Int16Array>"u"?Je:Int16Array,"%Int32Array%":typeof Int32Array>"u"?Je:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":Ns&&or?or(or([][Symbol.iterator]())):Je,"%JSON%":typeof JSON=="object"?JSON:Je,"%Map%":typeof Map>"u"?Je:Map,"%MapIteratorPrototype%":typeof Map>"u"||!Ns||!or?Je:or(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":hJ,"%Object.getOwnPropertyDescriptor%":Al,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?Je:Promise,"%Proxy%":typeof Proxy>"u"?Je:Proxy,"%RangeError%":yJ,"%ReferenceError%":_J,"%Reflect%":typeof Reflect>"u"?Je:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?Je:Set,"%SetIteratorPrototype%":typeof Set>"u"||!Ns||!or?Je:or(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?Je:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":Ns&&or?or(""[Symbol.iterator]()):Je,"%Symbol%":Ns?Symbol:Je,"%SyntaxError%":Ms,"%ThrowTypeError%":PJ,"%TypedArray%":CJ,"%TypeError%":As,"%Uint8Array%":typeof Uint8Array>"u"?Je:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?Je:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?Je:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?Je:Uint32Array,"%URIError%":bJ,"%WeakMap%":typeof WeakMap>"u"?Je:WeakMap,"%WeakRef%":typeof WeakRef>"u"?Je:WeakRef,"%WeakSet%":typeof WeakSet>"u"?Je:WeakSet,"%Function.prototype.call%":Ml,"%Function.prototype.apply%":EA,"%Object.defineProperty%":IJ,"%Object.getPrototypeOf%":RJ,"%Math.abs%":xJ,"%Math.floor%":SJ,"%Math.max%":wJ,"%Math.min%":$J,"%Math.pow%":EJ,"%Math.round%":kJ,"%Math.sign%":TJ,"%Reflect.getPrototypeOf%":OJ};if(or)try{null.error}catch(t){xA=or(or(t)),oo["%Error.prototype%"]=xA}var xA,NJ=function t(e){var r;if(e==="%AsyncFunction%")r=GS("async function () {}");else if(e==="%GeneratorFunction%")r=GS("function* () {}");else if(e==="%AsyncGeneratorFunction%")r=GS("async function* () {}");else if(e==="%AsyncGenerator%"){var n=t("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if(e==="%AsyncIteratorPrototype%"){var i=t("%AsyncGenerator%");i&&or&&(r=or(i.prototype))}return oo[e]=r,r},SA={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},Dl=jl(),Im=bA(),jJ=Dl.call(Ml,Array.prototype.concat),AJ=Dl.call(EA,Array.prototype.splice),wA=Dl.call(Ml,String.prototype.replace),Pm=Dl.call(Ml,String.prototype.slice),MJ=Dl.call(Ml,RegExp.prototype.exec),DJ=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,zJ=/\\(\\)?/g,UJ=function(e){var r=Pm(e,0,1),n=Pm(e,-1);if(r==="%"&&n!=="%")throw new Ms("invalid intrinsic syntax, expected closing `%`");if(n==="%"&&r!=="%")throw new Ms("invalid intrinsic syntax, expected opening `%`");var i=[];return wA(e,DJ,function(a,o,s,c){i[i.length]=s?wA(c,zJ,"$1"):o||a}),i},qJ=function(e,r){var n=e,i;if(Im(SA,n)&&(i=SA[n],n="%"+i[0]+"%"),Im(oo,n)){var a=oo[n];if(a===js&&(a=NJ(n)),typeof a>"u"&&!r)throw new As("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:i,name:n,value:a}}throw new Ms("intrinsic "+e+" does not exist!")};kA.exports=function(e,r){if(typeof e!="string"||e.length===0)throw new As("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof r!="boolean")throw new As('"allowMissing" argument must be a boolean');if(MJ(/^%?[^%]*%?$/,e)===null)throw new Ms("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=UJ(e),i=n.length>0?n[0]:"",a=qJ("%"+i+"%",r),o=a.name,s=a.value,c=!1,u=a.alias;u&&(i=u[0],AJ(n,jJ([0,1],u)));for(var l=1,d=!0;l=n.length){var _=Al(s,p);d=!!_,d&&"get"in _&&!("originalValue"in _.get)?s=_.get:s=s[p]}else d=Im(s,p),s=s[p];d&&!c&&(oo[o]=s)}}return s}});var KS=j((MEe,PA)=>{"use strict";var TA=Rm(),IA=BS(),LJ=IA([TA("%String.prototype.indexOf%")]);PA.exports=function(e,r){var n=TA(e,!!r);return typeof n=="function"&&LJ(e,".prototype.")>-1?IA([n]):n}});var JS=j((DEe,OA)=>{"use strict";var FJ=Rm(),zl=KS(),ZJ=Nl(),HJ=io(),RA=FJ("%Map%",!0),BJ=zl("Map.prototype.get",!0),VJ=zl("Map.prototype.set",!0),GJ=zl("Map.prototype.has",!0),WJ=zl("Map.prototype.delete",!0),KJ=zl("Map.prototype.size",!0);OA.exports=!!RA&&function(){var e,r={assert:function(n){if(!r.has(n))throw new HJ("Side channel does not contain "+ZJ(n))},delete:function(n){if(e){var i=WJ(e,n);return KJ(e)===0&&(e=void 0),i}return!1},get:function(n){if(e)return BJ(e,n)},has:function(n){return e?GJ(e,n):!1},set:function(n,i){e||(e=new RA),VJ(e,n,i)}};return r}});var NA=j((zEe,CA)=>{"use strict";var JJ=Rm(),Cm=KS(),XJ=Nl(),Om=JS(),YJ=io(),Ds=JJ("%WeakMap%",!0),QJ=Cm("WeakMap.prototype.get",!0),eX=Cm("WeakMap.prototype.set",!0),tX=Cm("WeakMap.prototype.has",!0),rX=Cm("WeakMap.prototype.delete",!0);CA.exports=Ds?function(){var e,r,n={assert:function(i){if(!n.has(i))throw new YJ("Side channel does not contain "+XJ(i))},delete:function(i){if(Ds&&i&&(typeof i=="object"||typeof i=="function")){if(e)return rX(e,i)}else if(Om&&r)return r.delete(i);return!1},get:function(i){return Ds&&i&&(typeof i=="object"||typeof i=="function")&&e?QJ(e,i):r&&r.get(i)},has:function(i){return Ds&&i&&(typeof i=="object"||typeof i=="function")&&e?tX(e,i):!!r&&r.has(i)},set:function(i,a){Ds&&i&&(typeof i=="object"||typeof i=="function")?(e||(e=new Ds),eX(e,i,a)):Om&&(r||(r=Om()),r.set(i,a))}};return n}:Om});var XS=j((UEe,jA)=>{"use strict";var nX=io(),iX=Nl(),aX=uj(),oX=JS(),sX=NA(),cX=sX||oX||aX;jA.exports=function(){var e,r={assert:function(n){if(!r.has(n))throw new nX("Side channel does not contain "+iX(n))},delete:function(n){return!!e&&e.delete(n)},get:function(n){return e&&e.get(n)},has:function(n){return!!e&&e.has(n)},set:function(n,i){e||(e=cX()),e.set(n,i)}};return r}});var Nm=j((qEe,AA)=>{"use strict";var uX=String.prototype.replace,lX=/%20/g,YS={RFC1738:"RFC1738",RFC3986:"RFC3986"};AA.exports={default:YS.RFC3986,formatters:{RFC1738:function(t){return uX.call(t,lX,"+")},RFC3986:function(t){return String(t)}},RFC1738:YS.RFC1738,RFC3986:YS.RFC3986}});var nw=j((LEe,zA)=>{"use strict";var dX=Nm(),pX=XS(),QS=Object.prototype.hasOwnProperty,so=Array.isArray,Am=pX(),MA=function(e,r){return Am.set(e,r),e},jm=function(e){return Am.has(e)},tw=function(e){return Am.get(e)},DA=function(e,r){Am.set(e,r)},pi=(function(){for(var t=[],e=0;e<256;++e)t.push("%"+((e<16?"0":"")+e.toString(16)).toUpperCase());return t})(),fX=function(e){for(;e.length>1;){var r=e.pop(),n=r.obj[r.prop];if(so(n)){for(var i=[],a=0;a=ew?o.slice(c,c+ew):o,l=[],d=0;d=48&&p<=57||p>=65&&p<=90||p>=97&&p<=122||a===dX.RFC1738&&(p===40||p===41)){l[l.length]=u.charAt(d);continue}if(p<128){l[l.length]=pi[p];continue}if(p<2048){l[l.length]=pi[192|p>>6]+pi[128|p&63];continue}if(p<55296||p>=57344){l[l.length]=pi[224|p>>12]+pi[128|p>>6&63]+pi[128|p&63];continue}d+=1,p=65536+((p&1023)<<10|u.charCodeAt(d)&1023),l[l.length]=pi[240|p>>18]+pi[128|p>>12&63]+pi[128|p>>6&63]+pi[128|p&63]}s+=l.join("")}return s},yX=function(e){for(var r=[{obj:{o:e},prop:"o"}],n=[],i=0;in?MA(rw(o,{plainObjects:i}),o.length-1):o},SX=function(e,r){if(so(e)){for(var n=[],i=0;i{"use strict";var qA=XS(),Mm=nw(),Ul=Nm(),wX=Object.prototype.hasOwnProperty,LA={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,r){return e+"["+r+"]"},repeat:function(e){return e}},fi=Array.isArray,$X=Array.prototype.push,FA=function(t,e){$X.apply(t,fi(e)?e:[e])},EX=Date.prototype.toISOString,UA=Ul.default,rr={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,commaRoundTrip:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:Mm.encode,encodeValuesOnly:!1,filter:void 0,format:UA,formatter:Ul.formatters[UA],indices:!1,serializeDate:function(e){return EX.call(e)},skipNulls:!1,strictNullHandling:!1},kX=function(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="symbol"||typeof e=="bigint"},iw={},TX=function t(e,r,n,i,a,o,s,c,u,l,d,p,f,h,_,y,m,v){for(var g=e,b=v,S=0,x=!1;(b=b.get(iw))!==void 0&&!x;){var w=b.get(e);if(S+=1,typeof w<"u"){if(w===S)throw new RangeError("Cyclic object value");x=!0}typeof b.get(iw)>"u"&&(S=0)}if(typeof l=="function"?g=l(r,g):g instanceof Date?g=f(g):n==="comma"&&fi(g)&&(g=Mm.maybeMap(g,function(F){return F instanceof Date?f(F):F})),g===null){if(o)return u&&!y?u(r,rr.encoder,m,"key",h):r;g=""}if(kX(g)||Mm.isBuffer(g)){if(u){var E=y?r:u(r,rr.encoder,m,"key",h);return[_(E)+"="+_(u(g,rr.encoder,m,"value",h))]}return[_(r)+"="+_(String(g))]}var R=[];if(typeof g>"u")return R;var A;if(n==="comma"&&fi(g))y&&u&&(g=Mm.maybeMap(g,u)),A=[{value:g.length>0?g.join(",")||null:void 0}];else if(fi(l))A=l;else{var M=Object.keys(g);A=d?M.sort(d):M}var q=c?String(r).replace(/\./g,"%2E"):String(r),B=i&&fi(g)&&g.length===1?q+"[]":q;if(a&&fi(g)&&g.length===0)return B+"[]";for(var U=0;U"u"?e.encodeDotInKeys===!0?!0:rr.allowDots:!!e.allowDots;return{addQueryPrefix:typeof e.addQueryPrefix=="boolean"?e.addQueryPrefix:rr.addQueryPrefix,allowDots:s,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:rr.allowEmptyArrays,arrayFormat:o,charset:r,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:rr.charsetSentinel,commaRoundTrip:!!e.commaRoundTrip,delimiter:typeof e.delimiter>"u"?rr.delimiter:e.delimiter,encode:typeof e.encode=="boolean"?e.encode:rr.encode,encodeDotInKeys:typeof e.encodeDotInKeys=="boolean"?e.encodeDotInKeys:rr.encodeDotInKeys,encoder:typeof e.encoder=="function"?e.encoder:rr.encoder,encodeValuesOnly:typeof e.encodeValuesOnly=="boolean"?e.encodeValuesOnly:rr.encodeValuesOnly,filter:a,format:n,formatter:i,serializeDate:typeof e.serializeDate=="function"?e.serializeDate:rr.serializeDate,skipNulls:typeof e.skipNulls=="boolean"?e.skipNulls:rr.skipNulls,sort:typeof e.sort=="function"?e.sort:null,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:rr.strictNullHandling}};ZA.exports=function(t,e){var r=t,n=IX(e),i,a;typeof n.filter=="function"?(a=n.filter,r=a("",r)):fi(n.filter)&&(a=n.filter,i=a);var o=[];if(typeof r!="object"||r===null)return"";var s=LA[n.arrayFormat],c=s==="comma"&&n.commaRoundTrip;i||(i=Object.keys(r)),n.sort&&i.sort(n.sort);for(var u=qA(),l=0;l0?h+f:""}});var WA=j((ZEe,GA)=>{"use strict";var ma=nw(),Dm=Object.prototype.hasOwnProperty,BA=Array.isArray,Kt={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:ma.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1,throwOnLimitExceeded:!1},PX=function(t){return t.replace(/&#(\d+);/g,function(e,r){return String.fromCharCode(parseInt(r,10))})},VA=function(t,e,r){if(t&&typeof t=="string"&&e.comma&&t.indexOf(",")>-1)return t.split(",");if(e.throwOnLimitExceeded&&r>=e.arrayLimit)throw new RangeError("Array limit exceeded. Only "+e.arrayLimit+" element"+(e.arrayLimit===1?"":"s")+" allowed in an array.");return t},RX="utf8=%26%2310003%3B",OX="utf8=%E2%9C%93",CX=function(e,r){var n={__proto__:null},i=r.ignoreQueryPrefix?e.replace(/^\?/,""):e;i=i.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var a=r.parameterLimit===1/0?void 0:r.parameterLimit,o=i.split(r.delimiter,r.throwOnLimitExceeded?a+1:a);if(r.throwOnLimitExceeded&&o.length>a)throw new RangeError("Parameter limit exceeded. Only "+a+" parameter"+(a===1?"":"s")+" allowed.");var s=-1,c,u=r.charset;if(r.charsetSentinel)for(c=0;c-1&&(h=BA(h)?[h]:h),f!==null){var _=Dm.call(n,f);_&&r.duplicates==="combine"?n[f]=ma.combine(n[f],h,r.arrayLimit,r.plainObjects):(!_||r.duplicates==="last")&&(n[f]=h)}}return n},NX=function(t,e,r,n){var i=0;if(t.length>0&&t[t.length-1]==="[]"){var a=t.slice(0,-1).join("");i=Array.isArray(e)&&e[a]?e[a].length:0}for(var o=n?e:VA(e,r,i),s=t.length-1;s>=0;--s){var c,u=t[s];if(u==="[]"&&r.parseArrays)ma.isOverflow(o)?c=o:c=r.allowEmptyArrays&&(o===""||r.strictNullHandling&&o===null)?[]:ma.combine([],o,r.arrayLimit,r.plainObjects);else{c=r.plainObjects?{__proto__:null}:{};var l=u.charAt(0)==="["&&u.charAt(u.length-1)==="]"?u.slice(1,-1):u,d=r.decodeDotInKeys?l.replace(/%2E/g,"."):l,p=parseInt(d,10);!r.parseArrays&&d===""?c={0:o}:!isNaN(p)&&u!==d&&String(p)===d&&p>=0&&r.parseArrays&&p<=r.arrayLimit?(c=[],c[p]=o):d!=="__proto__"&&(c[d]=o)}o=c}return o},jX=function(e,r){var n=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e;if(r.depth<=0)return!r.plainObjects&&Dm.call(Object.prototype,n)&&!r.allowPrototypes?void 0:[n];var i=/(\[[^[\]]*])/,a=/(\[[^[\]]*])/g,o=i.exec(n),s=o?n.slice(0,o.index):n,c=[];if(s){if(!r.plainObjects&&Dm.call(Object.prototype,s)&&!r.allowPrototypes)return;c.push(s)}for(var u=0;(o=a.exec(n))!==null&&u"u"?Kt.charset:e.charset,n=typeof e.duplicates>"u"?Kt.duplicates:e.duplicates;if(n!=="combine"&&n!=="first"&&n!=="last")throw new TypeError("The duplicates option must be either combine, first, or last");var i=typeof e.allowDots>"u"?e.decodeDotInKeys===!0?!0:Kt.allowDots:!!e.allowDots;return{allowDots:i,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:Kt.allowEmptyArrays,allowPrototypes:typeof e.allowPrototypes=="boolean"?e.allowPrototypes:Kt.allowPrototypes,allowSparse:typeof e.allowSparse=="boolean"?e.allowSparse:Kt.allowSparse,arrayLimit:typeof e.arrayLimit=="number"?e.arrayLimit:Kt.arrayLimit,charset:r,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:Kt.charsetSentinel,comma:typeof e.comma=="boolean"?e.comma:Kt.comma,decodeDotInKeys:typeof e.decodeDotInKeys=="boolean"?e.decodeDotInKeys:Kt.decodeDotInKeys,decoder:typeof e.decoder=="function"?e.decoder:Kt.decoder,delimiter:typeof e.delimiter=="string"||ma.isRegExp(e.delimiter)?e.delimiter:Kt.delimiter,depth:typeof e.depth=="number"||e.depth===!1?+e.depth:Kt.depth,duplicates:n,ignoreQueryPrefix:e.ignoreQueryPrefix===!0,interpretNumericEntities:typeof e.interpretNumericEntities=="boolean"?e.interpretNumericEntities:Kt.interpretNumericEntities,parameterLimit:typeof e.parameterLimit=="number"?e.parameterLimit:Kt.parameterLimit,parseArrays:e.parseArrays!==!1,plainObjects:typeof e.plainObjects=="boolean"?e.plainObjects:Kt.plainObjects,strictDepth:typeof e.strictDepth=="boolean"?!!e.strictDepth:Kt.strictDepth,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:Kt.strictNullHandling,throwOnLimitExceeded:typeof e.throwOnLimitExceeded=="boolean"?e.throwOnLimitExceeded:!1}};GA.exports=function(t,e){var r=MX(e);if(t===""||t===null||typeof t>"u")return r.plainObjects?{__proto__:null}:{};for(var n=typeof t=="string"?CX(t,r):t,i=r.plainObjects?{__proto__:null}:{},a=Object.keys(n),o=0;o{"use strict";var DX=HA(),zX=WA(),UX=Nm();KA.exports={formats:UX,parse:zX,stringify:DX}});var tM=j((BEe,eM)=>{"use strict";var qX=Ss(),LX=ml(),Um=Ya(),Hn=_n()("body-parser:urlencoded"),FX=ci()("body-parser"),ZX=kl(),XA=Os();eM.exports=HX;var JA=Object.create(null);function HX(t){var e=t||{};e.extended===void 0&&FX("undefined extended: provide extended option");var r=e.extended!==!1,n=e.inflate!==!1,i=typeof e.limit!="number"?qX.parse(e.limit||"100kb"):e.limit,a=e.type||"application/x-www-form-urlencoded",o=e.verify||!1;if(o!==!1&&typeof o!="function")throw new TypeError("option verify must be function");var s=r?BX(e):GX(e),c=typeof a!="function"?WX(a):a;function u(l){return l.length?s(l):{}}return function(d,p,f){if(d._body){Hn("body already parsed"),f();return}if(d.body=d.body||{},!XA.hasBody(d)){Hn("skip empty body"),f();return}if(Hn("content-type %j",d.headers["content-type"]),!c(d)){Hn("skip parsing"),f();return}var h=VX(d)||"utf-8";if(h!=="utf-8"){Hn("invalid charset"),f(Um(415,'unsupported charset "'+h.toUpperCase()+'"',{charset:h,type:"charset.unsupported"}));return}ZX(d,p,f,u,Hn,{debug:Hn,encoding:h,inflate:n,limit:i,verify:o})}}function BX(t){var e=t.parameterLimit!==void 0?t.parameterLimit:1e3,r=t.depth!==void 0?t.depth:32,n=QA("qs");if(isNaN(e)||e<1)throw new TypeError("option parameterLimit must be a positive number");if(isNaN(r)||r<0)throw new TypeError("option depth must be a zero or a positive number");return isFinite(e)&&(e=e|0),function(a){var o=YA(a,e);if(o===void 0)throw Hn("too many parameters"),Um(413,"too many parameters",{type:"parameters.too.many"});var s=Math.max(100,o);Hn("parse extended urlencoding");try{return n(a,{allowPrototypes:!0,arrayLimit:s,depth:r,strictDepth:!0,parameterLimit:e})}catch(c){throw c instanceof RangeError?Um(400,"The input exceeded the depth",{type:"querystring.parse.rangeError"}):c}}}function VX(t){try{return(LX.parse(t).parameters.charset||"").toLowerCase()}catch{return}}function YA(t,e){for(var r=0,n=0;(n=t.indexOf("&",n))!==-1;)if(r++,n++,r===e)return;return r}function QA(t){var e=JA[t];if(e!==void 0)return e.parse;switch(t){case"qs":e=zm();break;case"querystring":e=require("querystring");break}return JA[t]=e,e.parse}function GX(t){var e=t.parameterLimit!==void 0?t.parameterLimit:1e3,r=QA("querystring");if(isNaN(e)||e<1)throw new TypeError("option parameterLimit must be a positive number");return isFinite(e)&&(e=e|0),function(i){var a=YA(i,e);if(a===void 0)throw Hn("too many parameters"),Um(413,"too many parameters",{type:"parameters.too.many"});return Hn("parse urlencoding"),r(i,void 0,void 0,{maxKeys:e})}}function WX(t){return function(r){return!!XA(r,t)}}});var iM=j((ha,nM)=>{"use strict";var KX=ci()("body-parser"),rM=Object.create(null);ha=nM.exports=KX.function(JX,"bodyParser: use individual json/urlencoded middlewares");Object.defineProperty(ha,"json",{configurable:!0,enumerable:!0,get:qm("json")});Object.defineProperty(ha,"raw",{configurable:!0,enumerable:!0,get:qm("raw")});Object.defineProperty(ha,"text",{configurable:!0,enumerable:!0,get:qm("text")});Object.defineProperty(ha,"urlencoded",{configurable:!0,enumerable:!0,get:qm("urlencoded")});function JX(t){var e=Object.create(t||null,{type:{configurable:!0,enumerable:!0,value:void 0,writable:!0}}),r=ha.urlencoded(e),n=ha.json(e);return function(a,o,s){n(a,o,function(c){if(c)return s(c);r(a,o,s)})}}function qm(t){return function(){return XX(t)}}function XX(t){var e=rM[t];if(e!==void 0)return e;switch(t){case"json":e=CN();break;case"raw":e=AN();break;case"text":e=zN();break;case"urlencoded":e=tM();break}return rM[t]=e}});var oM=j((VEe,aM)=>{"use strict";aM.exports=QX;var YX=Object.prototype.hasOwnProperty;function QX(t,e,r){if(!t)throw new TypeError("argument dest is required");if(!e)throw new TypeError("argument src is required");return r===void 0&&(r=!0),Object.getOwnPropertyNames(e).forEach(function(i){if(!(!r&&YX.call(t,i))){var a=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,a)}}),t}});var ql=j((GEe,sM)=>{"use strict";sM.exports=nY;var eY=/(?:[^\x21\x23-\x3B\x3D\x3F-\x5F\x61-\x7A\x7C\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g,tY=/(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g,rY="$1\uFFFD$2";function nY(t){return String(t).replace(tY,rY).replace(eY,encodeURI)}});var Ll=j((WEe,cM)=>{"use strict";var iY=/["'&<>]/;cM.exports=aY;function aY(t){var e=""+t,r=iY.exec(e);if(!r)return e;var n,i="",a=0,o=0;for(a=r.index;a{"use strict";var lM=require("url"),uM=lM.parse,Lm=lM.Url;aw.exports=dM;aw.exports.original=oY;function dM(t){var e=t.url;if(e!==void 0){var r=t._parsedUrl;return fM(e,r)?r:(r=pM(e),r._raw=e,t._parsedUrl=r)}}function oY(t){var e=t.originalUrl;if(typeof e!="string")return dM(t);var r=t._parsedOriginalUrl;return fM(e,r)?r:(r=pM(e),r._raw=e,t._parsedOriginalUrl=r)}function pM(t){if(typeof t!="string"||t.charCodeAt(0)!==47)return uM(t);for(var e=t,r=null,n=null,i=1;i{"use strict";var ow=_n()("finalhandler"),sY=ql(),cY=Ll(),hM=El(),uY=zs(),gM=gl(),lY=_m(),dY=/\x20{2}/g,pY=/\n/g,fY=typeof setImmediate=="function"?setImmediate:function(t){process.nextTick(t.bind.apply(t,arguments))},mY=hM.isFinished;function hY(t){var e=cY(t).replace(pY,"
").replace(dY,"  ");return` @@ -28,7 +43,7 @@ return fn.apply(this, arguments)
`+e+`
-`}Pb.exports=_N;function _N(t,e,r){var a=r||{},n=a.env||process.env.NODE_ENV||"development",s=a.onerror;return function(i){var o,c,u;if(!i&&Tb(e)){qp("cannot 404 after headers sent");return}if(i?(u=xN(i),u===void 0?u=EN(e):o=bN(i),c=SN(i,u,n)):(u=404,c="Cannot "+t.method+" "+lN(wN(t))),qp("default %s",u),i&&s&&vN(s,i,t,e),Tb(e)){qp("cannot %d after headers sent",u),t.socket&&t.socket.destroy();return}TN(t,e,u,o,c)}}function bN(t){if(!(!t.headers||typeof t.headers!="object")){for(var e=Object.create(null),r=Object.keys(t.headers),a=0;a=400&&t.status<600)return t.status;if(typeof t.statusCode=="number"&&t.statusCode>=400&&t.statusCode<600)return t.statusCode}function wN(t){try{return pN.original(t).pathname}catch{return"resource"}}function EN(t){var e=t.statusCode;return(typeof e!="number"||e<400||e>599)&&(e=500),e}function Tb(t){return typeof t.headersSent!="boolean"?!!t._header:t.headersSent}function TN(t,e,r,a,n){function s(){var i=yN(n);if(e.statusCode=r,t.httpVersionMajor<2&&(e.statusMessage=Rb.message[r]),e.removeHeader("Content-Encoding"),e.removeHeader("Content-Language"),e.removeHeader("Content-Range"),kN(e,a),e.setHeader("Content-Security-Policy","default-src 'none'"),e.setHeader("X-Content-Type-Options","nosniff"),e.setHeader("Content-Type","text/html; charset=utf-8"),e.setHeader("Content-Length",Buffer.byteLength(i,"utf8")),t.method==="HEAD"){e.end();return}e.end(i,"utf8")}if(gN(t)){s();return}fN(t),kb(t,s),t.resume()}function kN(t,e){if(e)for(var r=Object.keys(e),a=0;a{"use strict";Ib.exports=RN;function Ob(t,e,r){for(var a=0;a0&&Array.isArray(n)?Ob(n,e,r-1):e.push(n)}return e}function Cb(t,e){for(var r=0;r{Mb.exports=Nb;var Ab=/\\.|\((?:\?<(.*?)>)?(?!\?)/g;function Nb(t,e,r){r=r||{},e=e||[];var a=r.strict,n=r.end!==!1,s=r.sensitive?"":"i",i=r.lookahead!==!1,o=0,c=e.length,u=0,l=0,d=0,p="",f;if(t instanceof RegExp){for(;f=Ab.exec(t.source);)f[0][0]!=="\\"&&e.push({name:f[1]||l++,optional:!1,offset:f.index});return t}if(Array.isArray(t))return t=t.map(function(v){return Nb(v,e,r).source}),new RegExp(t.join("|"),s);if(typeof t!="string")throw new TypeError("path must be a string, array of strings, or regular expression");for(t=t.replace(/\\.|(\/)?(\.)?:(\w+)(\(.*?\))?(\*)?(\?)?|[.*]|\/\(/g,function(v,_,m,h,y,g,b,w){if(v[0]==="\\")return p+=v,d+=2,v;if(v===".")return p+="\\.",o+=1,d+=1,"\\.";if(_||m?p="":p+=t.slice(d,w),d=w+v.length,v==="*")return o+=3,"(.*)";if(v==="/(")return p+="/",o+=2,"/(?:";_=_||"",m=m?"\\.":"",b=b||"",y=y?y.replace(/\\.|\*/,function(E){return E==="*"?"(.*)":E}):p?"((?:(?!/|"+p+").)+?)":"([^/"+m+"]+?)",e.push({name:h,optional:!!b,offset:w+o});var S="(?:"+m+_+y+(g?"((?:[/"+m+"].+?)?)":"")+")"+b;return o+=S.length-v.length,S});f=Ab.exec(t);)f[0][0]!=="\\"&&((c+u===e.length||e[c+u].offset>f.index)&&e.splice(c+u,0,{name:l++,optional:!1,offset:f.index}),u++);return t+=a?"":t[t.length-1]==="/"?"?":"/?",n?t+="$":t[t.length-1]!=="/"&&(t+=i?"(?=/|$)":"(?:/|$)"),new RegExp("^"+t,s)}});var Fp=V((XZ,Lb)=>{"use strict";var PN=jb(),$N=Sr()("express:router:layer"),ON=Object.prototype.hasOwnProperty;Lb.exports=$s;function $s(t,e,r){if(!(this instanceof $s))return new $s(t,e,r);$N("new %o",t);var a=e||{};this.handle=r,this.name=r.name||"",this.params=void 0,this.path=void 0,this.regexp=PN(t,this.keys=[],a),this.regexp.fast_star=t==="*",this.regexp.fast_slash=t==="/"&&a.end===!1}$s.prototype.handle_error=function(e,r,a,n){var s=this.handle;if(s.length!==4)return n(e);try{s(e,r,a,n)}catch(i){n(i)}};$s.prototype.handle_request=function(e,r,a){var n=this.handle;if(n.length>3)return a();try{n(e,r,a)}catch(s){a(s)}};$s.prototype.match=function(e){var r;if(e!=null){if(this.regexp.fast_slash)return this.params={},this.path="",!0;if(this.regexp.fast_star)return this.params={0:Db(e)},this.path=e,!0;r=this.regexp.exec(e)}if(!r)return this.params=void 0,this.path=void 0,!1;this.params={},this.path=r[0];for(var a=this.keys,n=this.params,s=1;s{"use strict";var qb=require("http");Fb.exports=CN()||IN();function CN(){return qb.METHODS&&qb.METHODS.map(function(e){return e.toLowerCase()})}function IN(){return["get","post","put","head","delete","options","trace","copy","lock","mkcol","move","purge","propfind","proppatch","unlock","report","mkactivity","checkout","merge","m-search","notify","subscribe","unsubscribe","patch","search","connect"]}});var Up=V((YZ,Gb)=>{"use strict";var Ub=Sr()("express:router:route"),zb=po(),Hb=Fp(),AN=Yc(),Bb=Array.prototype.slice,Vb=Object.prototype.toString;Gb.exports=Os;function Os(t){this.path=t,this.stack=[],Ub("new %o",t),this.methods={}}Os.prototype._handles_method=function(e){if(this.methods._all)return!0;var r=typeof e=="string"?e.toLowerCase():e;return r==="head"&&!this.methods.head&&(r="get"),!!this.methods[r]};Os.prototype._options=function(){var e=Object.keys(this.methods);this.methods.get&&!this.methods.head&&e.push("head");for(var r=0;r100)return setImmediate(c,u);var l=s[n++];if(!l)return a(u);l.method&&l.method!==o?c(u):u?l.handle_error(u,e,r,c):l.handle_request(e,r,c),i=0}};Os.prototype.all=function(){for(var e=zb(Bb.call(arguments)),r=0;r{Zb=Wb.exports=function(t,e){if(t&&e)for(var r in e)t[r]=e[r];return t}});var Hp=V((QZ,Yb)=>{"use strict";var NN=Up(),Xb=Fp(),MN=Yc(),zp=fo(),Qc=Sr()("express:router"),Kb=Yr()("express"),jN=po(),DN=Ps(),LN=qi(),qN=/^\[object (\S+)\]$/,Jb=Array.prototype.slice,FN=Object.prototype.toString,ya=Yb.exports=function(t){var e=t||{};function r(a,n,s){r.handle(a,n,s)}return LN(r,ya),r.params={},r._params=[],r.caseSensitive=e.caseSensitive,r.mergeParams=e.mergeParams,r.strict=e.strict,r.stack=[],r};ya.param=function(e,r){if(typeof e=="function"){Kb("router.param(fn): Refactor to use path params"),this._params.push(e);return}var a=this._params,n=a.length,s;e[0]===":"&&(Kb("router.param("+JSON.stringify(e)+", fn): Use router.param("+JSON.stringify(e.slice(1))+", fn) instead"),e=e.slice(1));for(var i=0;i=p.length){setImmediate(_,g);return}if(++u>100)return setImmediate(m,y);var b=zN(e);if(b==null)return _(g);for(var w,S,E;S!==!0&&s=o.length)return s();if(l=0,d=o[c++],u=d.name,p=a.params[u],f=i[u],v=r[u],p===void 0||!f)return _();if(v&&(v.match===p||v.error&&v.error!=="route"))return a.params[u]=v.value,_(v.error);r[u]=v={error:null,match:p,value:p},m()}function m(h){var y=f[l++];if(v.value=a.params[d.name],h){v.error=h,_(h);return}if(!y)return _();try{y(a,n,m,p,d.name)}catch(g){m(g)}}_()};ya.use=function(e){var r=0,a="/";if(typeof e!="function"){for(var n=e;Array.isArray(n)&&n.length!==0;)n=n[0];typeof n!="function"&&(r=1,a=e)}var s=jN(Jb.call(arguments,r));if(s.length===0)throw new TypeError("Router.use() requires a middleware function");for(var i=0;i");var o=new Xb(a,{sensitive:this.caseSensitive,strict:!1,end:!1},e);o.route=void 0,this.stack.push(o)}return this};ya.route=function(e){var r=new NN(e),a=new Xb(e,{sensitive:this.caseSensitive,strict:this.strict,end:!0},r.dispatch.bind(r));return a.route=r,this.stack.push(a),r};MN.concat("all").forEach(function(t){ya[t]=function(e){var r=this.route(e);return r[t].apply(r,Jb.call(arguments,1)),this}});function UN(t,e){for(var r=0;r=0;a--)t[a+n]=t[a],a{"use strict";var Qb=qi();e0.init=function(t){return function(r,a,n){t.enabled("x-powered-by")&&a.setHeader("X-Powered-By","Express"),r.res=a,a.req=r,r.next=n,Qb(r,t.request),Qb(a,t.response),a.locals=a.locals||Object.create(null),n()}}});var Bp=V((tW,r0)=>{"use strict";var XN=fo(),JN=Ps(),YN=Zc();r0.exports=function(e){var r=XN({},e),a=YN.parse;return typeof e=="function"&&(a=e,r=void 0),r!==void 0&&r.allowPrototypes===void 0&&(r.allowPrototypes=!0),function(s,i,o){if(!s.query){var c=JN(s).query;s.query=a(c,r)}o()}}});var o0=V((rW,i0)=>{"use strict";var eu=Sr()("express:view"),mo=require("path"),QN=require("fs"),eM=mo.dirname,s0=mo.basename,tM=mo.extname,n0=mo.join,rM=mo.resolve;i0.exports=tu;function tu(t,e){var r=e||{};if(this.defaultEngine=r.defaultEngine,this.ext=tM(t),this.name=t,this.root=r.root,!this.ext&&!this.defaultEngine)throw new Error("No default engine was specified and no extension was provided.");var a=t;if(this.ext||(this.ext=this.defaultEngine[0]!=="."?"."+this.defaultEngine:this.defaultEngine,a+=this.ext),!r.engines[this.ext]){var n=this.ext.slice(1);eu('require "%s"',n);var s=require(n).__express;if(typeof s!="function")throw new Error('Module "'+n+'" does not provide a view engine.');r.engines[this.ext]=s}this.engine=r.engines[this.ext],this.path=this.lookup(a)}tu.prototype.lookup=function(e){var r,a=[].concat(this.root);eu('lookup "%s"',e);for(var n=0;n{var ru=require("buffer"),an=ru.Buffer;function c0(t,e){for(var r in t)e[r]=t[r]}an.from&&an.alloc&&an.allocUnsafe&&an.allocUnsafeSlow?u0.exports=ru:(c0(ru,Vp),Vp.Buffer=_a);function _a(t,e,r){return an(t,e,r)}_a.prototype=Object.create(an.prototype);c0(an,_a);_a.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return an(t,e,r)};_a.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var a=an(t);return e!==void 0?typeof r=="string"?a.fill(e,r):a.fill(e):a.fill(0),a};_a.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return an(t)};_a.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return ru.SlowBuffer(t)}});var Zp=V((nW,Gp)=>{"use strict";Gp.exports=fM;Gp.exports.parse=gM;var l0=require("path").basename,nM=nu().Buffer,aM=/[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g,sM=/%[0-9A-Fa-f]{2}/,iM=/%([0-9A-Fa-f]{2})/g,p0=/[^\x20-\x7e\xa0-\xff]/g,oM=/\\([\u0000-\u007f])/g,cM=/([\\"])/g,d0=/;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g,uM=/^[\x20-\x7e\x80-\xff]+$/,lM=/^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/,dM=/^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/,pM=/^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/;function fM(t,e){var r=e||{},a=r.type||"attachment",n=mM(t,r.fallback);return hM(new m0(a,n))}function mM(t,e){if(t!==void 0){var r={};if(typeof t!="string")throw new TypeError("filename must be a string");if(e===void 0&&(e=!0),typeof e!="string"&&typeof e!="boolean")throw new TypeError("fallback must be a string or boolean");if(typeof e=="string"&&p0.test(e))throw new TypeError("fallback must be ISO-8859-1 string");var a=l0(t),n=uM.test(a),s=typeof e!="string"?e&&f0(a):l0(e),i=typeof s=="string"&&s!==a;return(i||!n||sM.test(a))&&(r["filename*"]=a),(n||i)&&(r.filename=i?s:a),r}}function hM(t){var e=t.parameters,r=t.type;if(!r||typeof r!="string"||!lM.test(r))throw new TypeError("invalid type");var a=String(r).toLowerCase();if(e&&typeof e=="object")for(var n,s=Object.keys(e).sort(),i=0;i{"use strict";h0.exports=TM;var xM=/(?:[^\x21\x25\x26-\x3B\x3D\x3F-\x5B\x5D\x5F\x61-\x7A\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g,wM=/(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g,EM="$1\uFFFD$2";function TM(t){return String(t).replace(wM,EM).replace(xM,encodeURI)}});var Wp=V((sW,_0)=>{"use strict";_0.exports=PM;var kM=require("crypto"),g0=require("fs").Stats,y0=Object.prototype.toString;function RM(t){if(t.length===0)return'"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"';var e=kM.createHash("sha1").update(t,"utf8").digest("base64").substring(0,27),r=typeof t=="string"?Buffer.byteLength(t,"utf8"):t.length;return'"'+r.toString(16)+"-"+e+'"'}function PM(t,e){if(t==null)throw new TypeError("argument entity is required");var r=$M(t),a=e&&typeof e.weak=="boolean"?e.weak:r;if(!r&&typeof t!="string"&&!Buffer.isBuffer(t))throw new TypeError("argument entity must be string, Buffer, or fs.Stats");var n=r?OM(t):RM(t);return a?"W/"+n:n}function $M(t){return typeof g0=="function"&&t instanceof g0?!0:t&&typeof t=="object"&&"ctime"in t&&y0.call(t.ctime)==="[object Date]"&&"mtime"in t&&y0.call(t.mtime)==="[object Date]"&&"ino"in t&&typeof t.ino=="number"&&"size"in t&&typeof t.size=="number"}function OM(t){var e=t.mtime.getTime().toString(16),r=t.size.toString(16);return'"'+r+"-"+e+'"'}});var Kp=V((iW,S0)=>{"use strict";var CM=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;S0.exports=IM;function IM(t,e){var r=t["if-modified-since"],a=t["if-none-match"];if(!r&&!a)return!1;var n=t["cache-control"];if(n&&CM.test(n))return!1;if(a&&a!=="*"){var s=e.etag;if(!s)return!1;for(var i=!0,o=AM(a),c=0;c{NM.exports={"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomsvc+xml":["atomsvc"],"application/bdoc":["bdoc"],"application/ccxml+xml":["ccxml"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mpd"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["ecma"],"application/emma+xml":["emma"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/font-tdpfr":["pfr"],"application/font-woff":[],"application/font-woff2":[],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js","mjs"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/prs.cww":["cww"],"application/pskc+xml":["pskcxml"],"application/raml+yaml":["raml"],"application/rdf+xml":["rdf"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-apps.document":["gdoc"],"application/vnd.google-apps.presentation":["gslides"],"application/vnd.google-apps.spreadsheet":["gsheet"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.hydrostatix.sof-data":["sfd-hdstx"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-outlook":["msg"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.n-gage.symbian.install":["n-gage"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.wadl+xml":["wadl"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/voicexml+xml":["vxml"],"application/wasm":["wasm"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":[],"application/x-arj":["arj"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bdoc":[],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-cocoa":["cco"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-httpd-php":["php"],"application/x-install-instructions":["install"],"application/x-iso9660-image":[],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-makeself":["run"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdos-program":[],"application/x-msdownload":["com","bat"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["wmf","emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-ns-proxy-autoconfig":["pac"],"application/x-nzb":["nzb"],"application/x-perl":["pl","pm"],"application/x-pilot":[],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["rar"],"application/x-redhat-package-manager":["rpm"],"application/x-research-info-systems":["ris"],"application/x-sea":["sea"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl","tk"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["obj"],"application/x-ustar":["ustar"],"application/x-virtualbox-hdd":["hdd"],"application/x-virtualbox-ova":["ova"],"application/x-virtualbox-ovf":["ovf"],"application/x-virtualbox-vbox":["vbox"],"application/x-virtualbox-vbox-extpack":["vbox-extpack"],"application/x-virtualbox-vdi":["vdi"],"application/x-virtualbox-vhd":["vhd"],"application/x-virtualbox-vmdk":["vmdk"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt","pem"],"application/x-xfig":["fig"],"application/x-xliff+xml":["xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"application/xaml+xml":["xaml"],"application/xcap-diff+xml":["xdf"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/3gpp":[],"audio/adpcm":["adp"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mp3":[],"audio/mp4":["m4a","mp4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/wav":["wav"],"audio/wave":[],"audio/webm":["weba"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-m4a":[],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-realaudio":[],"audio/x-wav":[],"audio/xm":["xm"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"font/collection":["ttc"],"font/otf":["otf"],"font/ttf":["ttf"],"font/woff":["woff"],"font/woff2":["woff2"],"image/apng":["apng"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/g3fax":["g3"],"image/gif":["gif"],"image/ief":["ief"],"image/jp2":["jp2","jpg2"],"image/jpeg":["jpeg","jpg","jpe"],"image/jpm":["jpm"],"image/jpx":["jpx","jpf"],"image/ktx":["ktx"],"image/png":["png"],"image/prs.btif":["btif"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/tiff":["tiff","tif"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":[],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/webp":["webp"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["ico"],"image/x-jng":["jng"],"image/x-mrsid-image":["sid"],"image/x-ms-bmp":[],"image/x-pcx":["pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/rfc822":["eml","mime"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.vtu":["vtu"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["x3db","x3dbz"],"model/x3d+vrml":["x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/hjson":["hjson"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["markdown","md"],"text/mathml":["mml"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/prs.lines.tag":["dsc"],"text/richtext":["rtx"],"text/rtf":[],"text/sgml":["sgml","sgm"],"text/slim":["slim","slm"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/vtt":["vtt"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-org":[],"text/x-pascal":["p","pas"],"text/x-processing":["pde"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-suse-ymp":["ymp"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"text/xml":[],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/jpeg":["jpgv"],"video/jpm":["jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/webm":["webm"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]}});var E0=V((uW,w0)=>{var cW=require("path"),MM=require("fs");function Is(){this.types=Object.create(null),this.extensions=Object.create(null)}Is.prototype.define=function(t){for(var e in t){for(var r=t[e],a=0;a{var As=1e3,Ns=As*60,Ms=Ns*60,ba=Ms*24,jM=ba*7,DM=ba*365.25;T0.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return LM(t);if(r==="number"&&isFinite(t))return e.long?FM(t):qM(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function LM(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),a=(e[2]||"ms").toLowerCase();switch(a){case"years":case"year":case"yrs":case"yr":case"y":return r*DM;case"weeks":case"week":case"w":return r*jM;case"days":case"day":case"d":return r*ba;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Ms;case"minutes":case"minute":case"mins":case"min":case"m":return r*Ns;case"seconds":case"second":case"secs":case"sec":case"s":return r*As;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function qM(t){var e=Math.abs(t);return e>=ba?Math.round(t/ba)+"d":e>=Ms?Math.round(t/Ms)+"h":e>=Ns?Math.round(t/Ns)+"m":e>=As?Math.round(t/As)+"s":t+"ms"}function FM(t){var e=Math.abs(t);return e>=ba?au(t,e,ba,"day"):e>=Ms?au(t,e,Ms,"hour"):e>=Ns?au(t,e,Ns,"minute"):e>=As?au(t,e,As,"second"):t+" ms"}function au(t,e,r,a){var n=e>=r*1.5;return Math.round(t/r)+" "+a+(n?"s":"")}});var Xp=V((dW,R0)=>{"use strict";R0.exports=UM;function UM(t,e,r){if(typeof e!="string")throw new TypeError("argument str must be a string");var a=e.indexOf("=");if(a===-1)return-2;var n=e.slice(a+1).split(","),s=[];s.type=e.slice(0,a);for(var i=0;it-1&&(u=t-1),!(isNaN(c)||isNaN(u)||c>u||c<0)&&s.push({start:c,end:u})}return s.length<1?-1:r&&r.combine?zM(s):s}function zM(t){for(var e=t.map(HM).sort(GM),r=0,a=1;as.end+1?e[++r]=n:n.end>s.end&&(s.end=n.end,s.index=Math.min(s.index,n.index))}e.length=r+1;var i=e.sort(VM).map(BM);return i.type=t.type,i}function HM(t,e){return{start:t.start,end:t.end,index:e}}function BM(t){return{start:t.start,end:t.end}}function VM(t,e){return t.index-e.index}function GM(t,e){return t.start-e.start}});var cu=V((pW,rf)=>{"use strict";var Jp=ca(),wt=Sr()("send"),Sa=Yr()("send"),ZM=Od(),WM=v0(),O0=lo(),KM=Wp(),XM=Kp(),iu=require("fs"),Qp=E0(),C0=k0(),JM=Ki(),YM=Xp(),ho=require("path"),QM=Fi(),I0=require("stream"),ej=require("util"),tj=ho.extname,A0=ho.join,Yp=ho.normalize,tf=ho.resolve,su=ho.sep,rj=/^ *bytes=/,N0=3600*24*365*1e3,P0=/(?:^|[\\/])\.\.(?:[\\/]|$)/;rf.exports=nj;rf.exports.mime=Qp;function nj(t,e,r){return new st(t,e,r)}function st(t,e,r){I0.call(this);var a=r||{};if(this.options=a,this.path=e,this.req=t,this._acceptRanges=a.acceptRanges!==void 0?!!a.acceptRanges:!0,this._cacheControl=a.cacheControl!==void 0?!!a.cacheControl:!0,this._etag=a.etag!==void 0?!!a.etag:!0,this._dotfiles=a.dotfiles!==void 0?a.dotfiles:"ignore",this._dotfiles!=="ignore"&&this._dotfiles!=="allow"&&this._dotfiles!=="deny")throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"');this._hidden=!!a.hidden,a.hidden!==void 0&&Sa("hidden: use dotfiles: '"+(this._hidden?"allow":"ignore")+"' instead"),a.dotfiles===void 0&&(this._dotfiles=void 0),this._extensions=a.extensions!==void 0?ef(a.extensions,"extensions option"):[],this._immutable=a.immutable!==void 0?!!a.immutable:!1,this._index=a.index!==void 0?ef(a.index,"index option"):["index.html"],this._lastModified=a.lastModified!==void 0?!!a.lastModified:!0,this._maxage=a.maxAge||a.maxage,this._maxage=typeof this._maxage=="string"?C0(this._maxage):Number(this._maxage),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),N0),this._root=a.root?tf(a.root):null,!this._root&&a.from&&this.from(a.from)}ej.inherits(st,I0);st.prototype.etag=Sa.function(function(e){return this._etag=!!e,wt("etag %s",this._etag),this},"send.etag: pass etag as option");st.prototype.hidden=Sa.function(function(e){return this._hidden=!!e,this._dotfiles=void 0,wt("hidden %s",this._hidden),this},"send.hidden: use dotfiles option");st.prototype.index=Sa.function(function(e){var r=e?ef(e,"paths argument"):[];return wt("index %o",e),this._index=r,this},"send.index: pass index as option");st.prototype.root=function(e){return this._root=tf(String(e)),wt("root %s",this._root),this};st.prototype.from=Sa.function(st.prototype.root,"send.from: pass root as option");st.prototype.root=Sa.function(st.prototype.root,"send.root: pass root as option");st.prototype.maxage=Sa.function(function(e){return this._maxage=typeof e=="string"?C0(e):Number(e),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),N0),wt("max-age %d",this._maxage),this},"send.maxage: pass maxAge as option");st.prototype.error=function(e,r){if(j0(this,"error"))return this.emit("error",oj(e,r));var a=this.res,n=QM.message[e]||String(e),s=M0("Error",O0(n));aj(a),r&&r.headers&&pj(a,r.headers),a.statusCode=e,a.setHeader("Content-Type","text/html; charset=UTF-8"),a.setHeader("Content-Length",Buffer.byteLength(s)),a.setHeader("Content-Security-Policy","default-src 'none'"),a.setHeader("X-Content-Type-Options","nosniff"),a.end(s)};st.prototype.hasTrailingSlash=function(){return this.path[this.path.length-1]==="/"};st.prototype.isConditionalGET=function(){return this.req.headers["if-match"]||this.req.headers["if-unmodified-since"]||this.req.headers["if-none-match"]||this.req.headers["if-modified-since"]};st.prototype.isPreconditionFailure=function(){var e=this.req,r=this.res,a=e.headers["if-match"];if(a){var n=r.getHeader("ETag");return!n||a!=="*"&&dj(a).every(function(o){return o!==n&&o!=="W/"+n&&"W/"+o!==n})}var s=ou(e.headers["if-unmodified-since"]);if(!isNaN(s)){var i=ou(r.getHeader("Last-Modified"));return isNaN(i)||i>s}return!1};st.prototype.removeContentHeaderFields=function(){var e=this.res;e.removeHeader("Content-Encoding"),e.removeHeader("Content-Language"),e.removeHeader("Content-Length"),e.removeHeader("Content-Range"),e.removeHeader("Content-Type")};st.prototype.notModified=function(){var e=this.res;wt("not modified"),this.removeContentHeaderFields(),e.statusCode=304,e.end()};st.prototype.headersAlreadySent=function(){var e=new Error("Can't set headers after they are sent.");wt("headers already sent"),this.error(500,e)};st.prototype.isCachable=function(){var e=this.res.statusCode;return e>=200&&e<300||e===304};st.prototype.onStatError=function(e){switch(e.code){case"ENAMETOOLONG":case"ENOENT":case"ENOTDIR":this.error(404,e);break;default:this.error(500,e);break}};st.prototype.isFresh=function(){return XM(this.req.headers,{etag:this.res.getHeader("ETag"),"last-modified":this.res.getHeader("Last-Modified")})};st.prototype.isRangeFresh=function(){var e=this.req.headers["if-range"];if(!e)return!0;if(e.indexOf('"')!==-1){var r=this.res.getHeader("ETag");return!!(r&&e.indexOf(r)!==-1)}var a=this.res.getHeader("Last-Modified");return ou(a)<=ou(e)};st.prototype.redirect=function(e){var r=this.res;if(j0(this,"directory")){this.emit("directory",r,e);return}if(this.hasTrailingSlash()){this.error(403);return}var a=WM(sj(this.path+"/")),n=M0("Redirecting","Redirecting to "+O0(a));r.statusCode=301,r.setHeader("Content-Type","text/html; charset=UTF-8"),r.setHeader("Content-Length",Buffer.byteLength(n)),r.setHeader("Content-Security-Policy","default-src 'none'"),r.setHeader("X-Content-Type-Options","nosniff"),r.setHeader("Location",a),r.end(n)};st.prototype.pipe=function(e){var r=this._root;this.res=e;var a=cj(this.path);if(a===-1)return this.error(400),e;if(~a.indexOf("\0"))return this.error(400),e;var n;if(r!==null){if(a&&(a=Yp("."+su+a)),P0.test(a))return wt('malicious path "%s"',a),this.error(403),e;n=a.split(su),a=Yp(A0(r,a))}else{if(P0.test(a))return wt('malicious path "%s"',a),this.error(403),e;n=Yp(a).split(su),a=tf(a)}if(ij(n)){var s=this._dotfiles;switch(s===void 0&&(s=n[n.length-1][0]==="."?this._hidden?"allow":"ignore":"allow"),wt('%s dotfile "%s"',s,a),s){case"allow":break;case"deny":return this.error(403),e;case"ignore":default:return this.error(404),e}}return this._index.length&&this.hasTrailingSlash()?(this.sendIndex(a),e):(this.sendFile(a),e)};st.prototype.send=function(e,r){var a=r.size,n=this.options,s={},i=this.res,o=this.req,c=o.headers.range,u=n.start||0;if(lj(i)){this.headersAlreadySent();return}if(wt('pipe "%s"',e),this.setHeader(e,r),this.type(e),this.isConditionalGET()){if(this.isPreconditionFailure()){this.error(412);return}if(this.isCachable()&&this.isFresh()){this.notModified();return}}if(a=Math.max(0,a-u),n.end!==void 0){var l=n.end-u+1;a>l&&(a=l)}if(this._acceptRanges&&rj.test(c)){if(c=YM(a,c,{combine:!0}),this.isRangeFresh()||(wt("range stale"),c=-2),c===-1)return wt("range unsatisfiable"),i.setHeader("Content-Range",$0("bytes",a)),this.error(416,{headers:{"Content-Range":i.getHeader("Content-Range")}});c!==-2&&c.length===1&&(wt("range %j",c),i.statusCode=206,i.setHeader("Content-Range",$0("bytes",a,c[0])),u+=c[0].start,a=c[0].end-c[0].start+1)}for(var d in n)s[d]=n[d];if(s.start=u,s.end=Math.max(u,u+a-1),i.setHeader("Content-Length",a),o.method==="HEAD"){i.end();return}this.stream(e,s)};st.prototype.sendFile=function(e){var r=0,a=this;wt('stat "%s"',e),iu.stat(e,function(i,o){if(i&&i.code==="ENOENT"&&!tj(e)&&e[e.length-1]!==su)return n(i);if(i)return a.onStatError(i);if(o.isDirectory())return a.redirect(e);a.emit("file",e,o),a.send(e,o)});function n(s){if(a._extensions.length<=r)return s?a.onStatError(s):a.error(404);var i=e+"."+a._extensions[r++];wt('stat "%s"',i),iu.stat(i,function(o,c){if(o)return n(o);if(c.isDirectory())return n();a.emit("file",i,c),a.send(i,c)})}};st.prototype.sendIndex=function(e){var r=-1,a=this;function n(s){if(++r>=a._index.length)return s?a.onStatError(s):a.error(404);var i=A0(e,a._index[r]);wt('stat "%s"',i),iu.stat(i,function(o,c){if(o)return n(o);if(c.isDirectory())return n();a.emit("file",i,c),a.send(i,c)})}n()};st.prototype.stream=function(e,r){var a=this,n=this.res,s=iu.createReadStream(e,r);this.emit("stream",s),s.pipe(n);function i(){ZM(s,!0)}JM(n,i),s.on("error",function(c){i(),a.onStatError(c)}),s.on("end",function(){a.emit("end")})};st.prototype.type=function(e){var r=this.res;if(!r.getHeader("Content-Type")){var a=Qp.lookup(e);if(!a){wt("no content-type");return}var n=Qp.charsets.lookup(a);wt("content-type %s",a),r.setHeader("Content-Type",a+(n?"; charset="+n:""))}};st.prototype.setHeader=function(e,r){var a=this.res;if(this.emit("headers",a,e,r),this._acceptRanges&&!a.getHeader("Accept-Ranges")&&(wt("accept ranges"),a.setHeader("Accept-Ranges","bytes")),this._cacheControl&&!a.getHeader("Cache-Control")){var n="public, max-age="+Math.floor(this._maxage/1e3);this._immutable&&(n+=", immutable"),wt("cache-control %s",n),a.setHeader("Cache-Control",n)}if(this._lastModified&&!a.getHeader("Last-Modified")){var s=r.mtime.toUTCString();wt("modified %s",s),a.setHeader("Last-Modified",s)}if(this._etag&&!a.getHeader("ETag")){var i=KM(r);wt("etag %s",i),a.setHeader("ETag",i)}};function aj(t){for(var e=uj(t),r=0;r1?"/"+t.substr(e):t}function ij(t){for(var e=0;e1&&r[0]===".")return!0}return!1}function $0(t,e,r){return t+" "+(r?r.start+"-"+r.end:"*")+"/"+e}function M0(t,e){return` +`}vM.exports=gY;function gY(t,e,r){var n=r||{},i=n.env||process.env.NODE_ENV||"development",a=n.onerror;return function(o){var s,c,u;if(!o&&mM(e)){ow("cannot 404 after headers sent");return}if(o?(u=_Y(o),u===void 0?u=xY(e):s=vY(o),c=yY(o,u,i)):(u=404,c="Cannot "+t.method+" "+sY(bY(t))),ow("default %s",u),o&&a&&fY(a,o,t,e),mM(e)){ow("cannot %d after headers sent",u),t.socket&&t.socket.destroy();return}SY(t,e,u,s,c)}}function vY(t){if(!(!t.headers||typeof t.headers!="object")){for(var e=Object.create(null),r=Object.keys(t.headers),n=0;n=400&&t.status<600)return t.status;if(typeof t.statusCode=="number"&&t.statusCode>=400&&t.statusCode<600)return t.statusCode}function bY(t){try{return uY.original(t).pathname}catch{return"resource"}}function xY(t){var e=t.statusCode;return(typeof e!="number"||e<400||e>599)&&(e=500),e}function mM(t){return typeof t.headersSent!="boolean"?!!t._header:t.headersSent}function SY(t,e,r,n,i){function a(){var o=hY(i);if(e.statusCode=r,t.httpVersionMajor<2&&(e.statusMessage=gM.message[r]),e.removeHeader("Content-Encoding"),e.removeHeader("Content-Language"),e.removeHeader("Content-Range"),wY(e,n),e.setHeader("Content-Security-Policy","default-src 'none'"),e.setHeader("X-Content-Type-Options","nosniff"),e.setHeader("Content-Type","text/html; charset=utf-8"),e.setHeader("Content-Length",Buffer.byteLength(o,"utf8")),t.method==="HEAD"){e.end();return}e.end(o,"utf8")}if(mY(t)){a();return}lY(t),hM(t,a),t.resume()}function wY(t,e){if(e)for(var r=Object.keys(e),n=0;n{"use strict";xM.exports=$Y;function _M(t,e,r){for(var n=0;n0&&Array.isArray(i)?_M(i,e,r-1):e.push(i)}return e}function bM(t,e){for(var r=0;r{$M.exports=wM;var SM=/\\.|\((?:\?<(.*?)>)?(?!\?)/g;function wM(t,e,r){r=r||{},e=e||[];var n=r.strict,i=r.end!==!1,a=r.sensitive?"":"i",o=r.lookahead!==!1,s=0,c=e.length,u=0,l=0,d=0,p="",f;if(t instanceof RegExp){for(;f=SM.exec(t.source);)f[0][0]!=="\\"&&e.push({name:f[1]||l++,optional:!1,offset:f.index});return t}if(Array.isArray(t))return t=t.map(function(h){return wM(h,e,r).source}),new RegExp(t.join("|"),a);if(typeof t!="string")throw new TypeError("path must be a string, array of strings, or regular expression");for(t=t.replace(/\\.|(\/)?(\.)?:(\w+)(\(.*?\))?(\*)?(\?)?|[.*]|\/\(/g,function(h,_,y,m,v,g,b,S){if(h[0]==="\\")return p+=h,d+=2,h;if(h===".")return p+="\\.",s+=1,d+=1,"\\.";if(_||y?p="":p+=t.slice(d,S),d=S+h.length,h==="*")return s+=3,"(.*)";if(h==="/(")return p+="/",s+=2,"/(?:";_=_||"",y=y?"\\.":"",b=b||"",v=v?v.replace(/\\.|\*/,function(w){return w==="*"?"(.*)":w}):p?"((?:(?!/|"+p+").)+?)":"([^/"+y+"]+?)",e.push({name:m,optional:!!b,offset:S+s});var x="(?:"+y+_+v+(g?"((?:[/"+y+"].+?)?)":"")+")"+b;return s+=x.length-h.length,x});f=SM.exec(t);)f[0][0]!=="\\"&&((c+u===e.length||e[c+u].offset>f.index)&&e.splice(c+u,0,{name:l++,optional:!1,offset:f.index}),u++);return t+=n?"":t[t.length-1]==="/"?"?":"/?",i?t+="$":t[t.length-1]!=="/"&&(t+=o?"(?=/|$)":"(?:/|$)"),new RegExp("^"+t,a)}});var sw=j((QEe,TM)=>{"use strict";var EY=EM(),kY=_n()("express:router:layer"),TY=Object.prototype.hasOwnProperty;TM.exports=Us;function Us(t,e,r){if(!(this instanceof Us))return new Us(t,e,r);kY("new %o",t);var n=e||{};this.handle=r,this.name=r.name||"",this.params=void 0,this.path=void 0,this.regexp=EY(t,this.keys=[],n),this.regexp.fast_star=t==="*",this.regexp.fast_slash=t==="/"&&n.end===!1}Us.prototype.handle_error=function(e,r,n,i){var a=this.handle;if(a.length!==4)return i(e);try{a(e,r,n,i)}catch(o){i(o)}};Us.prototype.handle_request=function(e,r,n){var i=this.handle;if(i.length>3)return n();try{i(e,r,n)}catch(a){n(a)}};Us.prototype.match=function(e){var r;if(e!=null){if(this.regexp.fast_slash)return this.params={},this.path="",!0;if(this.regexp.fast_star)return this.params={0:kM(e)},this.path=e,!0;r=this.regexp.exec(e)}if(!r)return this.params=void 0,this.path=void 0,!1;this.params={},this.path=r[0];for(var n=this.keys,i=this.params,a=1;a{"use strict";var IM=require("http");PM.exports=IY()||PY();function IY(){return IM.METHODS&&IM.METHODS.map(function(e){return e.toLowerCase()})}function PY(){return["get","post","put","head","delete","options","trace","copy","lock","mkcol","move","purge","propfind","proppatch","unlock","report","mkactivity","checkout","merge","m-search","notify","subscribe","unsubscribe","patch","search","connect"]}});var cw=j((tke,AM)=>{"use strict";var RM=_n()("express:router:route"),OM=Fl(),CM=sw(),RY=Fm(),NM=Array.prototype.slice,jM=Object.prototype.toString;AM.exports=qs;function qs(t){this.path=t,this.stack=[],RM("new %o",t),this.methods={}}qs.prototype._handles_method=function(e){if(this.methods._all)return!0;var r=typeof e=="string"?e.toLowerCase():e;return r==="head"&&!this.methods.head&&(r="get"),!!this.methods[r]};qs.prototype._options=function(){var e=Object.keys(this.methods);this.methods.get&&!this.methods.head&&e.push("head");for(var r=0;r100)return setImmediate(c,u);var l=a[i++];if(!l)return n(u);l.method&&l.method!==s?c(u):u?l.handle_error(u,e,r,c):l.handle_request(e,r,c),o=0}};qs.prototype.all=function(){for(var e=OM(NM.call(arguments)),r=0;r{MM=DM.exports=function(t,e){if(t&&e)for(var r in e)t[r]=e[r];return t}});var lw=j((rke,LM)=>{"use strict";var OY=cw(),UM=sw(),CY=Fm(),uw=Zl(),Zm=_n()("express:router"),zM=ci()("express"),NY=Fl(),jY=zs(),AY=hl(),MY=/^\[object (\S+)\]$/,qM=Array.prototype.slice,DY=Object.prototype.toString,co=LM.exports=function(t){var e=t||{};function r(n,i,a){r.handle(n,i,a)}return AY(r,co),r.params={},r._params=[],r.caseSensitive=e.caseSensitive,r.mergeParams=e.mergeParams,r.strict=e.strict,r.stack=[],r};co.param=function(e,r){if(typeof e=="function"){zM("router.param(fn): Refactor to use path params"),this._params.push(e);return}var n=this._params,i=n.length,a;e[0]===":"&&(zM("router.param("+JSON.stringify(e)+", fn): Use router.param("+JSON.stringify(e.slice(1))+", fn) instead"),e=e.slice(1));for(var o=0;o=p.length){setImmediate(_,g);return}if(++u>100)return setImmediate(y,v);var b=UY(e);if(b==null)return _(g);for(var S,x,w;x!==!0&&a=s.length)return a();if(l=0,d=s[c++],u=d.name,p=n.params[u],f=o[u],h=r[u],p===void 0||!f)return _();if(h&&(h.match===p||h.error&&h.error!=="route"))return n.params[u]=h.value,_(h.error);r[u]=h={error:null,match:p,value:p},y()}function y(m){var v=f[l++];if(h.value=n.params[d.name],m){h.error=m,_(m);return}if(!v)return _();try{v(n,i,y,p,d.name)}catch(g){y(g)}}_()};co.use=function(e){var r=0,n="/";if(typeof e!="function"){for(var i=e;Array.isArray(i)&&i.length!==0;)i=i[0];typeof i!="function"&&(r=1,n=e)}var a=NY(qM.call(arguments,r));if(a.length===0)throw new TypeError("Router.use() requires a middleware function");for(var o=0;o");var s=new UM(n,{sensitive:this.caseSensitive,strict:!1,end:!1},e);s.route=void 0,this.stack.push(s)}return this};co.route=function(e){var r=new OY(e),n=new UM(e,{sensitive:this.caseSensitive,strict:this.strict,end:!0},r.dispatch.bind(r));return n.route=r,this.stack.push(n),r};CY.concat("all").forEach(function(t){co[t]=function(e){var r=this.route(e);return r[t].apply(r,qM.call(arguments,1)),this}});function zY(t,e){for(var r=0;r=0;n--)t[n+i]=t[n],n{"use strict";var FM=hl();ZM.init=function(t){return function(r,n,i){t.enabled("x-powered-by")&&n.setHeader("X-Powered-By","Express"),r.res=n,n.req=r,r.next=i,FM(r,t.request),FM(n,t.response),n.locals=n.locals||Object.create(null),i()}}});var dw=j((ike,BM)=>{"use strict";var GY=Zl(),WY=zs(),KY=zm();BM.exports=function(e){var r=GY({},e),n=KY.parse;return typeof e=="function"&&(n=e,r=void 0),r!==void 0&&r.allowPrototypes===void 0&&(r.allowPrototypes=!0),function(a,o,s){if(!a.query){var c=WY(a).query;a.query=n(c,r)}s()}}});var JM=j((ake,KM)=>{"use strict";var Hm=_n()("express:view"),Hl=require("path"),JY=require("fs"),XY=Hl.dirname,WM=Hl.basename,YY=Hl.extname,VM=Hl.join,QY=Hl.resolve;KM.exports=Bm;function Bm(t,e){var r=e||{};if(this.defaultEngine=r.defaultEngine,this.ext=YY(t),this.name=t,this.root=r.root,!this.ext&&!this.defaultEngine)throw new Error("No default engine was specified and no extension was provided.");var n=t;if(this.ext||(this.ext=this.defaultEngine[0]!=="."?"."+this.defaultEngine:this.defaultEngine,n+=this.ext),!r.engines[this.ext]){var i=this.ext.slice(1);Hm('require "%s"',i);var a=require(i).__express;if(typeof a!="function")throw new Error('Module "'+i+'" does not provide a view engine.');r.engines[this.ext]=a}this.engine=r.engines[this.ext],this.path=this.lookup(n)}Bm.prototype.lookup=function(e){var r,n=[].concat(this.root);Hm('lookup "%s"',e);for(var i=0;i{var Vm=require("buffer"),mi=Vm.Buffer;function XM(t,e){for(var r in t)e[r]=t[r]}mi.from&&mi.alloc&&mi.allocUnsafe&&mi.allocUnsafeSlow?YM.exports=Vm:(XM(Vm,pw),pw.Buffer=uo);function uo(t,e,r){return mi(t,e,r)}uo.prototype=Object.create(mi.prototype);XM(mi,uo);uo.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return mi(t,e,r)};uo.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var n=mi(t);return e!==void 0?typeof r=="string"?n.fill(e,r):n.fill(e):n.fill(0),n};uo.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return mi(t)};uo.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return Vm.SlowBuffer(t)}});var mw=j((oke,fw)=>{"use strict";fw.exports=lQ;fw.exports.parse=mQ;var QM=require("path").basename,eQ=Gm().Buffer,tQ=/[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g,rQ=/%[0-9A-Fa-f]{2}/,nQ=/%([0-9A-Fa-f]{2})/g,tD=/[^\x20-\x7e\xa0-\xff]/g,iQ=/\\([\u0000-\u007f])/g,aQ=/([\\"])/g,eD=/;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g,oQ=/^[\x20-\x7e\x80-\xff]+$/,sQ=/^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/,cQ=/^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/,uQ=/^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/;function lQ(t,e){var r=e||{},n=r.type||"attachment",i=dQ(t,r.fallback);return pQ(new nD(n,i))}function dQ(t,e){if(t!==void 0){var r={};if(typeof t!="string")throw new TypeError("filename must be a string");if(e===void 0&&(e=!0),typeof e!="string"&&typeof e!="boolean")throw new TypeError("fallback must be a string or boolean");if(typeof e=="string"&&tD.test(e))throw new TypeError("fallback must be ISO-8859-1 string");var n=QM(t),i=oQ.test(n),a=typeof e!="string"?e&&rD(n):QM(e),o=typeof a=="string"&&a!==n;return(o||!i||rQ.test(n))&&(r["filename*"]=n),(i||o)&&(r.filename=o?a:n),r}}function pQ(t){var e=t.parameters,r=t.type;if(!r||typeof r!="string"||!sQ.test(r))throw new TypeError("invalid type");var n=String(r).toLowerCase();if(e&&typeof e=="object")for(var i,a=Object.keys(e).sort(),o=0;o{"use strict";oD.exports=xQ;var _Q=require("crypto"),iD=require("fs").Stats,aD=Object.prototype.toString;function bQ(t){if(t.length===0)return'"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"';var e=_Q.createHash("sha1").update(t,"utf8").digest("base64").substring(0,27),r=typeof t=="string"?Buffer.byteLength(t,"utf8"):t.length;return'"'+r.toString(16)+"-"+e+'"'}function xQ(t,e){if(t==null)throw new TypeError("argument entity is required");var r=SQ(t),n=e&&typeof e.weak=="boolean"?e.weak:r;if(!r&&typeof t!="string"&&!Buffer.isBuffer(t))throw new TypeError("argument entity must be string, Buffer, or fs.Stats");var i=r?wQ(t):bQ(t);return n?"W/"+i:i}function SQ(t){return typeof iD=="function"&&t instanceof iD?!0:t&&typeof t=="object"&&"ctime"in t&&aD.call(t.ctime)==="[object Date]"&&"mtime"in t&&aD.call(t.mtime)==="[object Date]"&&"ino"in t&&typeof t.ino=="number"&&"size"in t&&typeof t.size=="number"}function wQ(t){var e=t.mtime.getTime().toString(16),r=t.size.toString(16);return'"'+r+"-"+e+'"'}});var gw=j((cke,cD)=>{"use strict";var $Q=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;cD.exports=EQ;function EQ(t,e){var r=t["if-modified-since"],n=t["if-none-match"];if(!r&&!n)return!1;var i=t["cache-control"];if(i&&$Q.test(i))return!1;if(n&&n!=="*"){var a=e.etag;if(!a)return!1;for(var o=!0,s=kQ(n),c=0;c{TQ.exports={"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomsvc+xml":["atomsvc"],"application/bdoc":["bdoc"],"application/ccxml+xml":["ccxml"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mpd"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["ecma"],"application/emma+xml":["emma"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/font-tdpfr":["pfr"],"application/font-woff":[],"application/font-woff2":[],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js","mjs"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/prs.cww":["cww"],"application/pskc+xml":["pskcxml"],"application/raml+yaml":["raml"],"application/rdf+xml":["rdf"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-apps.document":["gdoc"],"application/vnd.google-apps.presentation":["gslides"],"application/vnd.google-apps.spreadsheet":["gsheet"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.hydrostatix.sof-data":["sfd-hdstx"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-outlook":["msg"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.n-gage.symbian.install":["n-gage"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.wadl+xml":["wadl"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/voicexml+xml":["vxml"],"application/wasm":["wasm"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":[],"application/x-arj":["arj"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bdoc":[],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-cocoa":["cco"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-httpd-php":["php"],"application/x-install-instructions":["install"],"application/x-iso9660-image":[],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-makeself":["run"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdos-program":[],"application/x-msdownload":["com","bat"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["wmf","emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-ns-proxy-autoconfig":["pac"],"application/x-nzb":["nzb"],"application/x-perl":["pl","pm"],"application/x-pilot":[],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["rar"],"application/x-redhat-package-manager":["rpm"],"application/x-research-info-systems":["ris"],"application/x-sea":["sea"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl","tk"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["obj"],"application/x-ustar":["ustar"],"application/x-virtualbox-hdd":["hdd"],"application/x-virtualbox-ova":["ova"],"application/x-virtualbox-ovf":["ovf"],"application/x-virtualbox-vbox":["vbox"],"application/x-virtualbox-vbox-extpack":["vbox-extpack"],"application/x-virtualbox-vdi":["vdi"],"application/x-virtualbox-vhd":["vhd"],"application/x-virtualbox-vmdk":["vmdk"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt","pem"],"application/x-xfig":["fig"],"application/x-xliff+xml":["xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"application/xaml+xml":["xaml"],"application/xcap-diff+xml":["xdf"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/3gpp":[],"audio/adpcm":["adp"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mp3":[],"audio/mp4":["m4a","mp4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/wav":["wav"],"audio/wave":[],"audio/webm":["weba"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-m4a":[],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-realaudio":[],"audio/x-wav":[],"audio/xm":["xm"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"font/collection":["ttc"],"font/otf":["otf"],"font/ttf":["ttf"],"font/woff":["woff"],"font/woff2":["woff2"],"image/apng":["apng"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/g3fax":["g3"],"image/gif":["gif"],"image/ief":["ief"],"image/jp2":["jp2","jpg2"],"image/jpeg":["jpeg","jpg","jpe"],"image/jpm":["jpm"],"image/jpx":["jpx","jpf"],"image/ktx":["ktx"],"image/png":["png"],"image/prs.btif":["btif"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/tiff":["tiff","tif"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":[],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/webp":["webp"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["ico"],"image/x-jng":["jng"],"image/x-mrsid-image":["sid"],"image/x-ms-bmp":[],"image/x-pcx":["pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/rfc822":["eml","mime"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.vtu":["vtu"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["x3db","x3dbz"],"model/x3d+vrml":["x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/hjson":["hjson"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["markdown","md"],"text/mathml":["mml"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/prs.lines.tag":["dsc"],"text/richtext":["rtx"],"text/rtf":[],"text/sgml":["sgml","sgm"],"text/slim":["slim","slm"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/vtt":["vtt"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-org":[],"text/x-pascal":["p","pas"],"text/x-processing":["pde"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-suse-ymp":["ymp"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"text/xml":[],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/jpeg":["jpgv"],"video/jpm":["jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/webm":["webm"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]}});var dD=j((dke,lD)=>{var lke=require("path"),IQ=require("fs");function Fs(){this.types=Object.create(null),this.extensions=Object.create(null)}Fs.prototype.define=function(t){for(var e in t){for(var r=t[e],n=0;n{var Zs=1e3,Hs=Zs*60,Bs=Hs*60,lo=Bs*24,PQ=lo*7,RQ=lo*365.25;pD.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return OQ(t);if(r==="number"&&isFinite(t))return e.long?NQ(t):CQ(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function OQ(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*RQ;case"weeks":case"week":case"w":return r*PQ;case"days":case"day":case"d":return r*lo;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Bs;case"minutes":case"minute":case"mins":case"min":case"m":return r*Hs;case"seconds":case"second":case"secs":case"sec":case"s":return r*Zs;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function CQ(t){var e=Math.abs(t);return e>=lo?Math.round(t/lo)+"d":e>=Bs?Math.round(t/Bs)+"h":e>=Hs?Math.round(t/Hs)+"m":e>=Zs?Math.round(t/Zs)+"s":t+"ms"}function NQ(t){var e=Math.abs(t);return e>=lo?Wm(t,e,lo,"day"):e>=Bs?Wm(t,e,Bs,"hour"):e>=Hs?Wm(t,e,Hs,"minute"):e>=Zs?Wm(t,e,Zs,"second"):t+" ms"}function Wm(t,e,r,n){var i=e>=r*1.5;return Math.round(t/r)+" "+n+(i?"s":"")}});var vw=j((fke,mD)=>{"use strict";mD.exports=jQ;function jQ(t,e,r){if(typeof e!="string")throw new TypeError("argument str must be a string");var n=e.indexOf("=");if(n===-1)return-2;var i=e.slice(n+1).split(","),a=[];a.type=e.slice(0,n);for(var o=0;ot-1&&(u=t-1),!(isNaN(c)||isNaN(u)||c>u||c<0)&&a.push({start:c,end:u})}return a.length<1?-1:r&&r.combine?AQ(a):a}function AQ(t){for(var e=t.map(MQ).sort(UQ),r=0,n=1;na.end+1?e[++r]=i:i.end>a.end&&(a.end=i.end,a.index=Math.min(a.index,i.index))}e.length=r+1;var o=e.sort(zQ).map(DQ);return o.type=t.type,o}function MQ(t,e){return{start:t.start,end:t.end,index:e}}function DQ(t){return{start:t.start,end:t.end}}function zQ(t,e){return t.index-e.index}function UQ(t,e){return t.start-e.start}});var Ym=j((mke,ww)=>{"use strict";var yw=Ya(),Ht=_n()("send"),po=ci()("send"),qQ=K0(),LQ=ql(),vD=Ll(),FQ=hw(),ZQ=gw(),Jm=require("fs"),bw=dD(),yD=fD(),HQ=El(),BQ=vw(),Bl=require("path"),VQ=gl(),_D=require("stream"),GQ=require("util"),WQ=Bl.extname,bD=Bl.join,_w=Bl.normalize,Sw=Bl.resolve,Km=Bl.sep,KQ=/^ *bytes=/,xD=3600*24*365*1e3,hD=/(?:^|[\\/])\.\.(?:[\\/]|$)/;ww.exports=JQ;ww.exports.mime=bw;function JQ(t,e,r){return new ht(t,e,r)}function ht(t,e,r){_D.call(this);var n=r||{};if(this.options=n,this.path=e,this.req=t,this._acceptRanges=n.acceptRanges!==void 0?!!n.acceptRanges:!0,this._cacheControl=n.cacheControl!==void 0?!!n.cacheControl:!0,this._etag=n.etag!==void 0?!!n.etag:!0,this._dotfiles=n.dotfiles!==void 0?n.dotfiles:"ignore",this._dotfiles!=="ignore"&&this._dotfiles!=="allow"&&this._dotfiles!=="deny")throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"');this._hidden=!!n.hidden,n.hidden!==void 0&&po("hidden: use dotfiles: '"+(this._hidden?"allow":"ignore")+"' instead"),n.dotfiles===void 0&&(this._dotfiles=void 0),this._extensions=n.extensions!==void 0?xw(n.extensions,"extensions option"):[],this._immutable=n.immutable!==void 0?!!n.immutable:!1,this._index=n.index!==void 0?xw(n.index,"index option"):["index.html"],this._lastModified=n.lastModified!==void 0?!!n.lastModified:!0,this._maxage=n.maxAge||n.maxage,this._maxage=typeof this._maxage=="string"?yD(this._maxage):Number(this._maxage),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),xD),this._root=n.root?Sw(n.root):null,!this._root&&n.from&&this.from(n.from)}GQ.inherits(ht,_D);ht.prototype.etag=po.function(function(e){return this._etag=!!e,Ht("etag %s",this._etag),this},"send.etag: pass etag as option");ht.prototype.hidden=po.function(function(e){return this._hidden=!!e,this._dotfiles=void 0,Ht("hidden %s",this._hidden),this},"send.hidden: use dotfiles option");ht.prototype.index=po.function(function(e){var r=e?xw(e,"paths argument"):[];return Ht("index %o",e),this._index=r,this},"send.index: pass index as option");ht.prototype.root=function(e){return this._root=Sw(String(e)),Ht("root %s",this._root),this};ht.prototype.from=po.function(ht.prototype.root,"send.from: pass root as option");ht.prototype.root=po.function(ht.prototype.root,"send.root: pass root as option");ht.prototype.maxage=po.function(function(e){return this._maxage=typeof e=="string"?yD(e):Number(e),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),xD),Ht("max-age %d",this._maxage),this},"send.maxage: pass maxAge as option");ht.prototype.error=function(e,r){if(wD(this,"error"))return this.emit("error",eee(e,r));var n=this.res,i=VQ.message[e]||String(e),a=SD("Error",vD(i));XQ(n),r&&r.headers&&aee(n,r.headers),n.statusCode=e,n.setHeader("Content-Type","text/html; charset=UTF-8"),n.setHeader("Content-Length",Buffer.byteLength(a)),n.setHeader("Content-Security-Policy","default-src 'none'"),n.setHeader("X-Content-Type-Options","nosniff"),n.end(a)};ht.prototype.hasTrailingSlash=function(){return this.path[this.path.length-1]==="/"};ht.prototype.isConditionalGET=function(){return this.req.headers["if-match"]||this.req.headers["if-unmodified-since"]||this.req.headers["if-none-match"]||this.req.headers["if-modified-since"]};ht.prototype.isPreconditionFailure=function(){var e=this.req,r=this.res,n=e.headers["if-match"];if(n){var i=r.getHeader("ETag");return!i||n!=="*"&&iee(n).every(function(s){return s!==i&&s!=="W/"+i&&"W/"+s!==i})}var a=Xm(e.headers["if-unmodified-since"]);if(!isNaN(a)){var o=Xm(r.getHeader("Last-Modified"));return isNaN(o)||o>a}return!1};ht.prototype.removeContentHeaderFields=function(){var e=this.res;e.removeHeader("Content-Encoding"),e.removeHeader("Content-Language"),e.removeHeader("Content-Length"),e.removeHeader("Content-Range"),e.removeHeader("Content-Type")};ht.prototype.notModified=function(){var e=this.res;Ht("not modified"),this.removeContentHeaderFields(),e.statusCode=304,e.end()};ht.prototype.headersAlreadySent=function(){var e=new Error("Can't set headers after they are sent.");Ht("headers already sent"),this.error(500,e)};ht.prototype.isCachable=function(){var e=this.res.statusCode;return e>=200&&e<300||e===304};ht.prototype.onStatError=function(e){switch(e.code){case"ENAMETOOLONG":case"ENOENT":case"ENOTDIR":this.error(404,e);break;default:this.error(500,e);break}};ht.prototype.isFresh=function(){return ZQ(this.req.headers,{etag:this.res.getHeader("ETag"),"last-modified":this.res.getHeader("Last-Modified")})};ht.prototype.isRangeFresh=function(){var e=this.req.headers["if-range"];if(!e)return!0;if(e.indexOf('"')!==-1){var r=this.res.getHeader("ETag");return!!(r&&e.indexOf(r)!==-1)}var n=this.res.getHeader("Last-Modified");return Xm(n)<=Xm(e)};ht.prototype.redirect=function(e){var r=this.res;if(wD(this,"directory")){this.emit("directory",r,e);return}if(this.hasTrailingSlash()){this.error(403);return}var n=LQ(YQ(this.path+"/")),i=SD("Redirecting","Redirecting to "+vD(n));r.statusCode=301,r.setHeader("Content-Type","text/html; charset=UTF-8"),r.setHeader("Content-Length",Buffer.byteLength(i)),r.setHeader("Content-Security-Policy","default-src 'none'"),r.setHeader("X-Content-Type-Options","nosniff"),r.setHeader("Location",n),r.end(i)};ht.prototype.pipe=function(e){var r=this._root;this.res=e;var n=tee(this.path);if(n===-1)return this.error(400),e;if(~n.indexOf("\0"))return this.error(400),e;var i;if(r!==null){if(n&&(n=_w("."+Km+n)),hD.test(n))return Ht('malicious path "%s"',n),this.error(403),e;i=n.split(Km),n=_w(bD(r,n))}else{if(hD.test(n))return Ht('malicious path "%s"',n),this.error(403),e;i=_w(n).split(Km),n=Sw(n)}if(QQ(i)){var a=this._dotfiles;switch(a===void 0&&(a=i[i.length-1][0]==="."?this._hidden?"allow":"ignore":"allow"),Ht('%s dotfile "%s"',a,n),a){case"allow":break;case"deny":return this.error(403),e;case"ignore":default:return this.error(404),e}}return this._index.length&&this.hasTrailingSlash()?(this.sendIndex(n),e):(this.sendFile(n),e)};ht.prototype.send=function(e,r){var n=r.size,i=this.options,a={},o=this.res,s=this.req,c=s.headers.range,u=i.start||0;if(nee(o)){this.headersAlreadySent();return}if(Ht('pipe "%s"',e),this.setHeader(e,r),this.type(e),this.isConditionalGET()){if(this.isPreconditionFailure()){this.error(412);return}if(this.isCachable()&&this.isFresh()){this.notModified();return}}if(n=Math.max(0,n-u),i.end!==void 0){var l=i.end-u+1;n>l&&(n=l)}if(this._acceptRanges&&KQ.test(c)){if(c=BQ(n,c,{combine:!0}),this.isRangeFresh()||(Ht("range stale"),c=-2),c===-1)return Ht("range unsatisfiable"),o.setHeader("Content-Range",gD("bytes",n)),this.error(416,{headers:{"Content-Range":o.getHeader("Content-Range")}});c!==-2&&c.length===1&&(Ht("range %j",c),o.statusCode=206,o.setHeader("Content-Range",gD("bytes",n,c[0])),u+=c[0].start,n=c[0].end-c[0].start+1)}for(var d in i)a[d]=i[d];if(a.start=u,a.end=Math.max(u,u+n-1),o.setHeader("Content-Length",n),s.method==="HEAD"){o.end();return}this.stream(e,a)};ht.prototype.sendFile=function(e){var r=0,n=this;Ht('stat "%s"',e),Jm.stat(e,function(o,s){if(o&&o.code==="ENOENT"&&!WQ(e)&&e[e.length-1]!==Km)return i(o);if(o)return n.onStatError(o);if(s.isDirectory())return n.redirect(e);n.emit("file",e,s),n.send(e,s)});function i(a){if(n._extensions.length<=r)return a?n.onStatError(a):n.error(404);var o=e+"."+n._extensions[r++];Ht('stat "%s"',o),Jm.stat(o,function(s,c){if(s)return i(s);if(c.isDirectory())return i();n.emit("file",o,c),n.send(o,c)})}};ht.prototype.sendIndex=function(e){var r=-1,n=this;function i(a){if(++r>=n._index.length)return a?n.onStatError(a):n.error(404);var o=bD(e,n._index[r]);Ht('stat "%s"',o),Jm.stat(o,function(s,c){if(s)return i(s);if(c.isDirectory())return i();n.emit("file",o,c),n.send(o,c)})}i()};ht.prototype.stream=function(e,r){var n=this,i=this.res,a=Jm.createReadStream(e,r);this.emit("stream",a),a.pipe(i);function o(){qQ(a,!0)}HQ(i,o),a.on("error",function(c){o(),n.onStatError(c)}),a.on("end",function(){n.emit("end")})};ht.prototype.type=function(e){var r=this.res;if(!r.getHeader("Content-Type")){var n=bw.lookup(e);if(!n){Ht("no content-type");return}var i=bw.charsets.lookup(n);Ht("content-type %s",n),r.setHeader("Content-Type",n+(i?"; charset="+i:""))}};ht.prototype.setHeader=function(e,r){var n=this.res;if(this.emit("headers",n,e,r),this._acceptRanges&&!n.getHeader("Accept-Ranges")&&(Ht("accept ranges"),n.setHeader("Accept-Ranges","bytes")),this._cacheControl&&!n.getHeader("Cache-Control")){var i="public, max-age="+Math.floor(this._maxage/1e3);this._immutable&&(i+=", immutable"),Ht("cache-control %s",i),n.setHeader("Cache-Control",i)}if(this._lastModified&&!n.getHeader("Last-Modified")){var a=r.mtime.toUTCString();Ht("modified %s",a),n.setHeader("Last-Modified",a)}if(this._etag&&!n.getHeader("ETag")){var o=FQ(r);Ht("etag %s",o),n.setHeader("ETag",o)}};function XQ(t){for(var e=ree(t),r=0;r1?"/"+t.substr(e):t}function QQ(t){for(var e=0;e1&&r[0]===".")return!0}return!1}function gD(t,e,r){return t+" "+(r?r.start+"-"+r.end:"*")+"/"+e}function SD(t,e){return` @@ -38,8 +53,8 @@ return fn.apply(this, arguments)
`+e+`
-`}function oj(t,e){return e?e instanceof Error?Jp(t,e,{expose:!1}):Jp(t,e):Jp(t)}function cj(t){try{return decodeURIComponent(t)}catch{return-1}}function uj(t){return typeof t.getHeaderNames!="function"?Object.keys(t._headers||{}):t.getHeaderNames()}function j0(t,e){var r=typeof t.listenerCount!="function"?t.listeners(e).length:t.listenerCount(e);return r>0}function lj(t){return typeof t.headersSent!="boolean"?!!t._header:t.headersSent}function ef(t,e){for(var r=[].concat(t||[]),a=0;a{"use strict";D0.exports=fj;function fj(t){if(!t)throw new TypeError("argument req is required");var e=hj(t.headers["x-forwarded-for"]||""),r=mj(t),a=[r].concat(e);return a}function mj(t){return t.socket?t.socket.remoteAddress:t.connection.remoteAddress}function hj(t){for(var e=t.length,r=[],a=t.length,n=t.length-1;n>=0;n--)switch(t.charCodeAt(n)){case 32:a===e&&(a=e=n);break;case 44:a!==e&&r.push(t.substring(a,e)),a=e=n;break;default:a=n;break}return a!==e&&r.push(t.substring(a,e)),r}});var F0=V((q0,vo)=>{(function(){var t,e,r,a,n,s,i,o,c;e={},o=this,typeof vo<"u"&&vo!==null&&vo.exports?vo.exports=e:o.ipaddr=e,i=function(u,l,d,p){var f,v;if(u.length!==l.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");for(f=0;p>0;){if(v=d-p,v<0&&(v=0),u[f]>>v!==l[f]>>v)return!1;p-=d,f+=1}return!0},e.subnetMatch=function(u,l,d){var p,f,v,_,m;d==null&&(d="unicast");for(v in l)for(_=l[v],_[0]&&!(_[0]instanceof Array)&&(_=[_]),p=0,f=_.length;p=0;d=p+=-1)if(f=this.octets[d],f in m){if(_=m[f],v&&_!==0)return null;_!==8&&(v=!0),l+=_}else return null;return 32-l},u})(),r="(0?\\d+|0x[a-f0-9]+)",a={fourOctet:new RegExp("^"+r+"\\."+r+"\\."+r+"\\."+r+"$","i"),longValue:new RegExp("^"+r+"$","i")},e.IPv4.parser=function(u){var l,d,p,f,v;if(d=function(_){return _[0]==="0"&&_[1]!=="x"?parseInt(_,8):parseInt(_)},l=u.match(a.fourOctet))return(function(){var _,m,h,y;for(h=l.slice(1,6),y=[],_=0,m=h.length;_4294967295||v<0)throw new Error("ipaddr: address outside defined range");return(function(){var _,m;for(m=[],f=_=0;_<=24;f=_+=8)m.push(v>>f&255);return m})().reverse()}else return null},e.IPv6=(function(){function u(l,d){var p,f,v,_,m,h;if(l.length===16)for(this.parts=[],p=f=0;f<=14;p=f+=2)this.parts.push(l[p]<<8|l[p+1]);else if(l.length===8)this.parts=l;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(h=this.parts,v=0,_=h.length;v<_;v++)if(m=h[v],!(0<=m&&m<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");d&&(this.zoneId=d)}return u.prototype.kind=function(){return"ipv6"},u.prototype.toString=function(){return this.toNormalizedString().replace(/((^|:)(0(:|$))+)/,"::")},u.prototype.toRFC5952String=function(){var l,d,p,f,v;for(f=/((^|:)(0(:|$)){2,})/g,v=this.toNormalizedString(),l=0,d=-1;p=f.exec(v);)p[0].length>d&&(l=p.index,d=p[0].length);return d<0?v:v.substring(0,l)+"::"+v.substring(l+d)},u.prototype.toByteArray=function(){var l,d,p,f,v;for(l=[],v=this.parts,d=0,p=v.length;d>8),l.push(f&255);return l},u.prototype.toNormalizedString=function(){var l,d,p;return l=(function(){var f,v,_,m;for(_=this.parts,m=[],f=0,v=_.length;f>8,l&255,d>>8,d&255])},u.prototype.prefixLengthFromSubnetMask=function(){var l,d,p,f,v,_,m;for(m={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},l=0,v=!1,d=p=7;p>=0;d=p+=-1)if(f=this.parts[d],f in m){if(_=m[f],v&&_!==0)return null;_!==16&&(v=!0),l+=_}else return null;return 128-l},u})(),n="(?:[0-9a-f]+::?)+",c="%[0-9a-z]{1,}",s={zoneIndex:new RegExp(c,"i"),native:new RegExp("^(::)?("+n+")?([0-9a-f]+)?(::)?("+c+")?$","i"),transitional:new RegExp("^((?:"+n+")|(?:::)(?:"+n+")?)"+(r+"\\."+r+"\\."+r+"\\."+r)+("("+c+")?$"),"i")},t=function(u,l){var d,p,f,v,_,m;if(u.indexOf("::")!==u.lastIndexOf("::"))return null;for(m=(u.match(s.zoneIndex)||[])[0],m&&(m=m.substring(1),u=u.replace(/%.+$/,"")),d=0,p=-1;(p=u.indexOf(":",p+1))>=0;)d++;if(u.substr(0,2)==="::"&&d--,u.substr(-2,2)==="::"&&d--,d>l)return null;for(_=l-d,v=":";_--;)v+="0:";return u=u.replace("::",v),u[0]===":"&&(u=u.slice(1)),u[u.length-1]===":"&&(u=u.slice(0,-1)),l=(function(){var h,y,g,b;for(g=u.split(":"),b=[],h=0,y=g.length;h=0&&l<=32))return p=[this.parse(d[1]),l],Object.defineProperty(p,"toString",{value:function(){return this.join("/")}}),p;throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},e.IPv4.subnetMaskFromPrefixLength=function(u){var l,d,p;if(u=parseInt(u),u<0||u>32)throw new Error("ipaddr: invalid IPv4 prefix length");for(p=[0,0,0,0],d=0,l=Math.floor(u/8);d=0&&l<=128))return p=[this.parse(d[1]),l],Object.defineProperty(p,"toString",{value:function(){return this.join("/")}}),p;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},e.isValid=function(u){return e.IPv6.isValid(u)||e.IPv4.isValid(u)},e.parse=function(u){if(e.IPv6.isValid(u))return e.IPv6.parse(u);if(e.IPv4.isValid(u))return e.IPv4.parse(u);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},e.parseCIDR=function(u){var l;try{return e.IPv6.parseCIDR(u)}catch(d){l=d;try{return e.IPv4.parseCIDR(u)}catch(p){throw l=p,new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},e.fromByteArray=function(u){var l;if(l=u.length,l===4)return new e.IPv4(u);if(l===16)return new e.IPv6(u);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},e.process=function(u){var l;return l=this.parse(u),l.kind()==="ipv6"&&l.isIPv4MappedAddress()?l.toIPv4Address():l}}).call(q0)});var nf=V((mW,du)=>{"use strict";du.exports=xj;du.exports.all=H0;du.exports.compile=B0;var vj=L0(),z0=F0(),gj=/^[0-9]+$/,uu=z0.isValid,lu=z0.parse,U0={linklocal:["169.254.0.0/16","fe80::/10"],loopback:["127.0.0.1/8","::1/128"],uniquelocal:["10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","fc00::/7"]};function H0(t,e){var r=vj(t);if(!e)return r;typeof e!="function"&&(e=B0(e));for(var a=0;an)throw new TypeError("invalid range on address: "+t);return[a,s]}function Sj(t){var e=lu(t),r=e.kind();return r==="ipv4"?e.prefixLengthFromSubnetMask():null}function xj(t,e){if(!t)throw new TypeError("req argument is required");if(!e)throw new TypeError("trust argument is required");var r=H0(t,e),a=r[r.length-1];return a}function wj(){return!1}function Ej(t){return function(r){if(!uu(r))return!1;for(var a=lu(r),n,s=a.kind(),i=0;i{"use strict";var V0=nu().Buffer,kj=Zp(),G0=Li(),Z0=Yr()("express"),Rj=po(),Pj=cu().mime,$j=Wp(),Oj=nf(),Cj=Zc(),Ij=require("querystring");Kt.etag=W0({weak:!1});Kt.wetag=W0({weak:!0});Kt.isAbsolute=function(t){if(t[0]==="/"||t[1]===":"&&(t[2]==="\\"||t[2]==="/")||t.substring(0,2)==="\\\\")return!0};Kt.flatten=Z0.function(Rj,"utils.flatten: use array-flatten npm module instead");Kt.normalizeType=function(t){return~t.indexOf("/")?Aj(t):{value:Pj.lookup(t),params:{}}};Kt.normalizeTypes=function(t){for(var e=[],r=0;r{"use strict";var jj=$b(),Dj=Hp(),sf=Yc(),Lj=t0(),qj=Bp(),pu=Sr()("express:application"),Fj=o0(),Uj=require("http"),zj=Ln().compileETag,Hj=Ln().compileQueryParser,Bj=Ln().compileTrust,Vj=Yr()("express"),Gj=po(),af=fo(),Zj=require("path").resolve,js=qi(),Wj=Object.prototype.hasOwnProperty,cf=Array.prototype.slice,At=K0=X0.exports={},of="@@symbol:trust_proxy_default";At.init=function(){this.cache={},this.engines={},this.settings={},this.defaultConfiguration()};At.defaultConfiguration=function(){var e=process.env.NODE_ENV||"development";this.enable("x-powered-by"),this.set("etag","weak"),this.set("env",e),this.set("query parser","extended"),this.set("subdomain offset",2),this.set("trust proxy",!1),Object.defineProperty(this.settings,of,{configurable:!0,value:!0}),pu("booting in %s mode",e),this.on("mount",function(a){this.settings[of]===!0&&typeof a.settings["trust proxy fn"]=="function"&&(delete this.settings["trust proxy"],delete this.settings["trust proxy fn"]),js(this.request,a.request),js(this.response,a.response),js(this.engines,a.engines),js(this.settings,a.settings)}),this.locals=Object.create(null),this.mountpath="/",this.locals.settings=this.settings,this.set("view",Fj),this.set("views",Zj("views")),this.set("jsonp callback name","callback"),e==="production"&&this.enable("view cache"),Object.defineProperty(this,"router",{get:function(){throw new Error(`'app.router' is deprecated! -Please see the 3.x to 4.x migration guide for details on how to update your app.`)}})};At.lazyrouter=function(){this._router||(this._router=new Dj({caseSensitive:this.enabled("case sensitive routing"),strict:this.enabled("strict routing")}),this._router.use(qj(this.get("query parser fn"))),this._router.use(Lj.init(this)))};At.handle=function(e,r,a){var n=this._router,s=a||jj(e,r,{env:this.get("env"),onerror:Kj.bind(this)});if(!n){pu("no routes defined on app"),s();return}n.handle(e,r,s)};At.use=function(e){var r=0,a="/";if(typeof e!="function"){for(var n=e;Array.isArray(n)&&n.length!==0;)n=n[0];typeof n!="function"&&(r=1,a=e)}var s=Gj(cf.call(arguments,r));if(s.length===0)throw new TypeError("app.use() requires a middleware function");this.lazyrouter();var i=this._router;return s.forEach(function(o){if(!o||!o.handle||!o.set)return i.use(a,o);pu(".use app under %s",a),o.mountpath=a,o.parent=this,i.use(a,function(u,l,d){var p=u.app;o.handle(u,l,function(f){js(u,p.request),js(l,p.response),d(f)})}),o.emit("mount",this)},this),this};At.route=function(e){return this.lazyrouter(),this._router.route(e)};At.engine=function(e,r){if(typeof r!="function")throw new Error("callback function required");var a=e[0]!=="."?"."+e:e;return this.engines[a]=r,this};At.param=function(e,r){if(this.lazyrouter(),Array.isArray(e)){for(var a=0;a1?'directories "'+u.root.slice(0,-1).join('", "')+'" or "'+u.root[u.root.length-1]+'"':'directory "'+u.root+'"',p=new Error('Failed to lookup view "'+e+'" in views '+d);return p.view=u,s(p)}c.cache&&(n[e]=u)}Xj(u,c,s)};At.listen=function(){var e=Uj.createServer(this);return e.listen.apply(e,arguments)};function Kj(t){this.get("env")!=="test"&&console.error(t.stack||t.toString())}function Xj(t,e,r){try{t.render(e,r)}catch(a){r(a)}}});var tS=V((vW,uf)=>{"use strict";uf.exports=eS;uf.exports.preferredCharsets=eS;var Jj=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function Yj(t){for(var e=t.split(","),r=0,a=0;r0}});var iS=V((gW,lf)=>{"use strict";lf.exports=sS;lf.exports.preferredEncodings=sS;var nD=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function aD(t){for(var e=t.split(","),r=!1,a=1,n=0,s=0;n0}});var dS=V((yW,df)=>{"use strict";df.exports=lS;df.exports.preferredLanguages=lS;var cD=/^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;function uD(t){for(var e=t.split(","),r=0,a=0;r0}});var gS=V((_W,pf)=>{"use strict";pf.exports=hS;pf.exports.preferredMediaTypes=hS;var fD=/^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;function mD(t){for(var e=_D(t),r=0,a=0;r0)if(s.every(function(i){return e.params[i]=="*"||(e.params[i]||"").toLowerCase()==(a.params[i]||"").toLowerCase()}))n|=1;else return null;return{i:r,o:e.i,q:e.q,s:n}}function hS(t,e){var r=mD(t===void 0?"*/*":t||"");if(!e)return r.filter(fS).sort(pS).map(gD);var a=e.map(function(s,i){return hD(s,r,i)});return a.filter(fS).sort(pS).map(function(s){return e[a.indexOf(s)]})}function pS(t,e){return e.q-t.q||e.s-t.s||t.o-e.o||t.i-e.i||0}function gD(t){return t.type+"/"+t.subtype}function fS(t){return t.q>0}function vS(t){for(var e=0,r=0;(r=t.indexOf('"',r))!==-1;)e++,r++;return e}function yD(t){var e=t.indexOf("="),r,a;return e===-1?r=t:(r=t.substr(0,e),a=t.substr(e+1)),[r,a]}function _D(t){for(var e=t.split(","),r=1,a=0;r{"use strict";var SD=tS(),xD=iS(),wD=dS(),ED=gS();ff.exports=ot;ff.exports.Negotiator=ot;function ot(t){if(!(this instanceof ot))return new ot(t);this.request=t}ot.prototype.charset=function(e){var r=this.charsets(e);return r&&r[0]};ot.prototype.charsets=function(e){return SD(this.request.headers["accept-charset"],e)};ot.prototype.encoding=function(e){var r=this.encodings(e);return r&&r[0]};ot.prototype.encodings=function(e){return xD(this.request.headers["accept-encoding"],e)};ot.prototype.language=function(e){var r=this.languages(e);return r&&r[0]};ot.prototype.languages=function(e){return wD(this.request.headers["accept-language"],e)};ot.prototype.mediaType=function(e){var r=this.mediaTypes(e);return r&&r[0]};ot.prototype.mediaTypes=function(e){return ED(this.request.headers.accept,e)};ot.prototype.preferredCharset=ot.prototype.charset;ot.prototype.preferredCharsets=ot.prototype.charsets;ot.prototype.preferredEncoding=ot.prototype.encoding;ot.prototype.preferredEncodings=ot.prototype.encodings;ot.prototype.preferredLanguage=ot.prototype.language;ot.prototype.preferredLanguages=ot.prototype.languages;ot.prototype.preferredMediaType=ot.prototype.mediaType;ot.prototype.preferredMediaTypes=ot.prototype.mediaTypes});var bS=V((SW,_S)=>{"use strict";var TD=yS(),kD=cp();_S.exports=mr;function mr(t){if(!(this instanceof mr))return new mr(t);this.headers=t.headers,this.negotiator=new TD(t)}mr.prototype.type=mr.prototype.types=function(t){var e=t;if(e&&!Array.isArray(e)){e=new Array(arguments.length);for(var r=0;r{"use strict";var fu=bS(),go=Yr()("express"),$D=require("net").isIP,OD=bs(),CD=require("http"),ID=Kp(),AD=Xp(),ND=Ps(),SS=nf(),ut=Object.create(CD.IncomingMessage.prototype);xS.exports=ut;ut.get=ut.header=function(e){if(!e)throw new TypeError("name argument is required to req.get");if(typeof e!="string")throw new TypeError("name must be a string to req.get");var r=e.toLowerCase();switch(r){case"referer":case"referrer":return this.headers.referrer||this.headers.referer;default:return this.headers[r]}};ut.accepts=function(){var t=fu(this);return t.types.apply(t,arguments)};ut.acceptsEncodings=function(){var t=fu(this);return t.encodings.apply(t,arguments)};ut.acceptsEncoding=go.function(ut.acceptsEncodings,"req.acceptsEncoding: Use acceptsEncodings instead");ut.acceptsCharsets=function(){var t=fu(this);return t.charsets.apply(t,arguments)};ut.acceptsCharset=go.function(ut.acceptsCharsets,"req.acceptsCharset: Use acceptsCharsets instead");ut.acceptsLanguages=function(){var t=fu(this);return t.languages.apply(t,arguments)};ut.acceptsLanguage=go.function(ut.acceptsLanguages,"req.acceptsLanguage: Use acceptsLanguages instead");ut.range=function(e,r){var a=this.get("Range");if(a)return AD(e,a,r)};ut.param=function(e,r){var a=this.params||{},n=this.body||{},s=this.query||{},i=arguments.length===1?"name":"name, default";return go("req.param("+i+"): Use req.params, req.body, or req.query instead"),a[e]!=null&&a.hasOwnProperty(e)?a[e]:n[e]!=null?n[e]:s[e]!=null?s[e]:r};ut.is=function(e){var r=e;if(!Array.isArray(e)){r=new Array(arguments.length);for(var a=0;a=200&&r<300||r===304?ID(this.headers,{etag:e.get("ETag"),"last-modified":e.get("Last-Modified")}):!1});Ur(ut,"stale",function(){return!this.fresh});Ur(ut,"xhr",function(){var e=this.get("X-Requested-With")||"";return e.toLowerCase()==="xmlhttprequest"});function Ur(t,e,r){Object.defineProperty(t,e,{configurable:!0,enumerable:!0,get:r})}});var kS=V(mu=>{var TS=require("crypto");mu.sign=function(t,e){if(typeof t!="string")throw new TypeError("Cookie value must be provided as a string.");if(typeof e!="string")throw new TypeError("Secret string must be provided.");return t+"."+TS.createHmac("sha256",e).update(t).digest("base64").replace(/\=+$/,"")};mu.unsign=function(t,e){if(typeof t!="string")throw new TypeError("Signed cookie string must be provided.");if(typeof e!="string")throw new TypeError("Secret string must be provided.");var r=t.slice(0,t.lastIndexOf(".")),a=mu.sign(r,e);return ES(a)==ES(t)?r:!1};function ES(t){return TS.createHash("sha1").update(t).digest("hex")}});var $S=V(mf=>{"use strict";mf.parse=FD;mf.serialize=UD;var MD=Object.prototype.toString,jD=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,DD=/^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/,LD=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,qD=/^[\u0020-\u003A\u003D-\u007E]*$/;function FD(t,e){if(typeof t!="string")throw new TypeError("argument str must be a string");var r={},a=t.length;if(a<2)return r;var n=e&&e.decode||zD,s=0,i=0,o=0;do{if(i=t.indexOf("=",s),i===-1)break;if(o=t.indexOf(";",s),o===-1)o=a;else if(i>o){s=t.lastIndexOf(";",i-1)+1;continue}var c=RS(t,s,i),u=PS(t,i,c),l=t.slice(c,u);if(!r.hasOwnProperty(l)){var d=RS(t,i+1,o),p=PS(t,o,d);t.charCodeAt(d)===34&&t.charCodeAt(p-1)===34&&(d++,p--);var f=t.slice(d,p);r[l]=BD(f,n)}s=o+1}while(sr;){var a=t.charCodeAt(--e);if(a!==32&&a!==9)return e+1}return r}function UD(t,e,r){var a=r&&r.encode||encodeURIComponent;if(typeof a!="function")throw new TypeError("option encode is invalid");if(!jD.test(t))throw new TypeError("argument name is invalid");var n=a(e);if(!DD.test(n))throw new TypeError("argument val is invalid");var s=t+"="+n;if(!r)return s;if(r.maxAge!=null){var i=Math.floor(r.maxAge);if(!isFinite(i))throw new TypeError("option maxAge is invalid");s+="; Max-Age="+i}if(r.domain){if(!LD.test(r.domain))throw new TypeError("option domain is invalid");s+="; Domain="+r.domain}if(r.path){if(!qD.test(r.path))throw new TypeError("option path is invalid");s+="; Path="+r.path}if(r.expires){var o=r.expires;if(!HD(o)||isNaN(o.valueOf()))throw new TypeError("option expires is invalid");s+="; Expires="+o.toUTCString()}if(r.httpOnly&&(s+="; HttpOnly"),r.secure&&(s+="; Secure"),r.partitioned&&(s+="; Partitioned"),r.priority){var c=typeof r.priority=="string"?r.priority.toLowerCase():r.priority;switch(c){case"low":s+="; Priority=Low";break;case"medium":s+="; Priority=Medium";break;case"high":s+="; Priority=High";break;default:throw new TypeError("option priority is invalid")}}if(r.sameSite){var u=typeof r.sameSite=="string"?r.sameSite.toLowerCase():r.sameSite;switch(u){case!0:s+="; SameSite=Strict";break;case"lax":s+="; SameSite=Lax";break;case"strict":s+="; SameSite=Strict";break;case"none":s+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return s}function zD(t){return t.indexOf("%")!==-1?decodeURIComponent(t):t}function HD(t){return MD.call(t)==="[object Date]"}function BD(t,e){try{return e(t)}catch{return t}}});var vf=V((TW,hf)=>{"use strict";hf.exports=GD;hf.exports.append=CS;var VD=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function CS(t,e){if(typeof t!="string")throw new TypeError("header argument is required");if(!e)throw new TypeError("field argument is required");for(var r=Array.isArray(e)?e:OS(String(e)),a=0;a{"use strict";var yo=nu().Buffer,IS=Zp(),ZD=ca(),tr=Yr()("express"),WD=Xc(),KD=lo(),XD=require("http"),JD=Ln().isAbsolute,YD=Ki(),AS=require("path"),hu=Fi(),NS=fo(),QD=kS().sign,e2=Ln().normalizeType,t2=Ln().normalizeTypes,r2=Ln().setCharset,n2=$S(),gf=cu(),a2=AS.extname,MS=gf.mime,s2=AS.resolve,i2=vf(),lt=Object.create(XD.ServerResponse.prototype);LS.exports=lt;var o2=/;\s*charset\s*=/;lt.status=function(e){return(typeof e=="string"||Math.floor(e)!==e)&&e>99&&e<1e3&&tr("res.status("+JSON.stringify(e)+"): use res.status("+Math.floor(e)+") instead"),this.statusCode=e,this};lt.links=function(t){var e=this.get("Link")||"";return e&&(e+=", "),this.set("Link",e+Object.keys(t).map(function(r){return"<"+t[r]+'>; rel="'+r+'"'}).join(", "))};lt.send=function(e){var r=e,a,n=this.req,s,i=this.app;switch(arguments.length===2&&(typeof arguments[0]!="number"&&typeof arguments[1]=="number"?(tr("res.send(body, status): Use res.status(status).send(body) instead"),this.statusCode=arguments[1]):(tr("res.send(status, body): Use res.status(status).send(body) instead"),this.statusCode=arguments[0],r=arguments[1])),typeof r=="number"&&arguments.length===1&&(this.get("Content-Type")||this.type("txt"),tr("res.send(status): Use res.sendStatus(status) instead"),this.statusCode=r,r=hu.message[r]),typeof r){case"string":this.get("Content-Type")||this.type("html");break;case"boolean":case"number":case"object":if(r===null)r="";else if(yo.isBuffer(r))this.get("Content-Type")||this.type("bin");else return this.json(r);break}typeof r=="string"&&(a="utf8",s=this.get("Content-Type"),typeof s=="string"&&this.set("Content-Type",r2(s,"utf-8")));var o=i.get("etag fn"),c=!this.get("ETag")&&typeof o=="function",u;r!==void 0&&(yo.isBuffer(r)?u=r.length:!c&&r.length<1e3?u=yo.byteLength(r,a):(r=yo.from(r,a),a=void 0,u=r.length),this.set("Content-Length",u));var l;return c&&u!==void 0&&(l=o(r,a))&&this.set("ETag",l),n.fresh&&(this.statusCode=304),(this.statusCode===204||this.statusCode===304)&&(this.removeHeader("Content-Type"),this.removeHeader("Content-Length"),this.removeHeader("Transfer-Encoding"),r=""),this.statusCode===205&&(this.set("Content-Length","0"),this.removeHeader("Transfer-Encoding"),r=""),n.method==="HEAD"?this.end():this.end(r,a),this};lt.json=function(e){var r=e;arguments.length===2&&(typeof arguments[1]=="number"?(tr("res.json(obj, status): Use res.status(status).json(obj) instead"),this.statusCode=arguments[1]):(tr("res.json(status, obj): Use res.status(status).json(obj) instead"),this.statusCode=arguments[0],r=arguments[1]));var a=this.app,n=a.get("json escape"),s=a.get("json replacer"),i=a.get("json spaces"),o=DS(r,s,i,n);return this.get("Content-Type")||this.set("Content-Type","application/json"),this.send(o)};lt.jsonp=function(e){var r=e;arguments.length===2&&(typeof arguments[1]=="number"?(tr("res.jsonp(obj, status): Use res.status(status).jsonp(obj) instead"),this.statusCode=arguments[1]):(tr("res.jsonp(status, obj): Use res.status(status).jsonp(obj) instead"),this.statusCode=arguments[0],r=arguments[1]));var a=this.app,n=a.get("json escape"),s=a.get("json replacer"),i=a.get("json spaces"),o=DS(r,s,i,n),c=this.req.query[a.get("jsonp callback name")];return this.get("Content-Type")||(this.set("X-Content-Type-Options","nosniff"),this.set("Content-Type","application/json")),Array.isArray(c)&&(c=c[0]),typeof c=="string"&&c.length!==0&&(this.set("X-Content-Type-Options","nosniff"),this.set("Content-Type","text/javascript"),c=c.replace(/[^\[\]\w$.]/g,""),o===void 0?o="":typeof o=="string"&&(o=o.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")),o="/**/ typeof "+c+" === 'function' && "+c+"("+o+");"),this.send(o)};lt.sendStatus=function(e){var r=hu.message[e]||String(e);return this.statusCode=e,this.type("txt"),this.send(r)};lt.sendFile=function(e,r,a){var n=a,s=this.req,i=this,o=s.next,c=r||{};if(!e)throw new TypeError("path argument is required to res.sendFile");if(typeof e!="string")throw new TypeError("path must be a string to res.sendFile");if(typeof r=="function"&&(n=r,c={}),!c.root&&!JD(e))throw new TypeError("path must be absolute or specify root to res.sendFile");var u=encodeURI(e),l=gf(s,u,c);jS(i,l,c,function(d){if(n)return n(d);if(d&&d.code==="EISDIR")return o();d&&d.code!=="ECONNABORTED"&&d.syscall!=="write"&&o(d)})};lt.sendfile=function(t,e,r){var a=r,n=this.req,s=this,i=n.next,o=e||{};typeof e=="function"&&(a=e,o={});var c=gf(n,t,o);jS(s,c,o,function(u){if(a)return a(u);if(u&&u.code==="EISDIR")return i();u&&u.code!=="ECONNABORTED"&&u.syscall!=="write"&&i(u)})};lt.sendfile=tr.function(lt.sendfile,"res.sendfile: Use res.sendFile instead");lt.download=function(e,r,a,n){var s=n,i=r,o=a||null;typeof r=="function"?(s=r,i=null,o=null):typeof a=="function"&&(s=a,o=null),typeof r=="object"&&(typeof a=="function"||a===void 0)&&(i=null,o=r);var c={"Content-Disposition":IS(i||e)};if(o&&o.headers)for(var u=Object.keys(o.headers),l=0;l0?e.accepts(a):!1;return this.vary("Accept"),n?(this.set("Content-Type",e2(n).value),t[n](e,this,r)):t.default?t.default(e,this,r):r(ZD(406,{types:t2(a).map(function(s){return s.value})})),this};lt.attachment=function(e){return e&&this.type(a2(e)),this.set("Content-Disposition",IS(e)),this};lt.append=function(e,r){var a=this.get(e),n=r;return a&&(n=Array.isArray(a)?a.concat(r):Array.isArray(r)?[a].concat(r):[a,r]),this.set(e,n)};lt.set=lt.header=function(e,r){if(arguments.length===2){var a=Array.isArray(r)?r.map(String):String(r);if(e.toLowerCase()==="content-type"){if(Array.isArray(a))throw new TypeError("Content-Type cannot be set to an Array");if(!o2.test(a)){var n=MS.charsets.lookup(a.split(";")[0]);n&&(a+="; charset="+n.toLowerCase())}}this.setHeader(e,a)}else for(var s in e)this.set(s,e[s]);return this};lt.get=function(t){return this.getHeader(t)};lt.clearCookie=function(e,r){r&&(r.maxAge&&tr('res.clearCookie: Passing "options.maxAge" is deprecated. In v5.0.0 of Express, this option will be ignored, as res.clearCookie will automatically set cookies to expire immediately. Please update your code to omit this option.'),r.expires&&tr('res.clearCookie: Passing "options.expires" is deprecated. In v5.0.0 of Express, this option will be ignored, as res.clearCookie will automatically set cookies to expire immediately. Please update your code to omit this option.'));var a=NS({expires:new Date(1),path:"/"},r);return this.cookie(e,"",a)};lt.cookie=function(t,e,r){var a=NS({},r),n=this.req.secret,s=a.signed;if(s&&!n)throw new Error('cookieParser("secret") required for signed cookies');var i=typeof e=="object"?"j:"+JSON.stringify(e):String(e);if(s&&(i="s:"+QD(i,n)),a.maxAge!=null){var o=a.maxAge-0;isNaN(o)||(a.expires=new Date(Date.now()+o),a.maxAge=Math.floor(o/1e3))}return a.path==null&&(a.path="/"),this.append("Set-Cookie",n2.serialize(t,String(i),a)),this};lt.location=function(e){var r;return e==="back"?(tr('res.location("back"): use res.location(req.get("Referrer") || "/") and refer to https://dub.sh/security-redirect for best practices'),r=this.req.get("Referrer")||"/"):r=String(e),this.set("Location",WD(r))};lt.redirect=function(e){var r=e,a,n=302;arguments.length===2&&(typeof arguments[0]=="number"?(n=arguments[0],r=arguments[1]):(tr("res.redirect(url, status): Use res.redirect(status, url) instead"),n=arguments[1])),r=this.location(r).get("Location"),this.format({text:function(){a=hu.message[n]+". Redirecting to "+r},html:function(){var s=KD(r);a="

"+hu.message[n]+". Redirecting to "+s+"

"},default:function(){a=""}}),this.statusCode=n,this.set("Content-Length",yo.byteLength(a)),this.req.method==="HEAD"?this.end():this.end(a)};lt.vary=function(t){return!t||Array.isArray(t)&&!t.length?(tr("res.vary(): Provide a field name"),this):(i2(this,t),this)};lt.render=function(e,r,a){var n=this.req.app,s=a,i=r||{},o=this.req,c=this;typeof r=="function"&&(s=r,i={}),i._locals=c.locals,s=s||function(u,l){if(u)return o.next(u);c.send(l)},n.render(e,i,s)};function jS(t,e,r,a){var n=!1,s;function i(){if(!n){n=!0;var f=new Error("Request aborted");f.code="ECONNABORTED",a(f)}}function o(){if(!n){n=!0;var f=new Error("EISDIR, read");f.code="EISDIR",a(f)}}function c(f){n||(n=!0,a(f))}function u(){n||(n=!0,a())}function l(){s=!1}function d(f){if(f&&f.code==="ECONNRESET")return i();if(f)return c(f);n||setImmediate(function(){if(s!==!1&&!n){i();return}n||(n=!0,a())})}function p(){s=!0}e.on("directory",o),e.on("end",u),e.on("error",c),e.on("file",l),e.on("stream",p),YD(t,d),r.headers&&e.on("headers",function(v){for(var _=r.headers,m=Object.keys(_),h=0;h&]/g,function(s){switch(s.charCodeAt(0)){case 60:return"\\u003c";case 62:return"\\u003e";case 38:return"\\u0026";default:return s}})),n}});var US=V((RW,_f)=>{"use strict";var c2=Xc(),u2=lo(),yf=Ps(),l2=require("path").resolve,FS=cu(),d2=require("url");_f.exports=p2;_f.exports.mime=FS.mime;function p2(t,e){if(!t)throw new TypeError("root path required");if(typeof t!="string")throw new TypeError("root path must be a string");var r=Object.create(e||null),a=r.fallthrough!==!1,n=r.redirect!==!1,s=r.setHeaders;if(s&&typeof s!="function")throw new TypeError("option setHeaders must be function");r.maxage=r.maxage||r.maxAge||0,r.root=l2(t);var i=n?v2():h2();return function(c,u,l){if(c.method!=="GET"&&c.method!=="HEAD"){if(a)return l();u.statusCode=405,u.setHeader("Allow","GET, HEAD"),u.setHeader("Content-Length","0"),u.end();return}var d=!a,p=yf.original(c),f=yf(c).pathname;f==="/"&&p.pathname.substr(-1)!=="/"&&(f="");var v=FS(c,f,r);v.on("directory",i),s&&v.on("headers",s),a&&v.on("file",function(){d=!0}),v.on("error",function(m){if(d||!(m.statusCode<500)){l(m);return}l()}),v.pipe(u)}}function f2(t){for(var e=0;e1?"/"+t.substr(e):t}function m2(t,e){return` +`}function eee(t,e){return e?e instanceof Error?yw(t,e,{expose:!1}):yw(t,e):yw(t)}function tee(t){try{return decodeURIComponent(t)}catch{return-1}}function ree(t){return typeof t.getHeaderNames!="function"?Object.keys(t._headers||{}):t.getHeaderNames()}function wD(t,e){var r=typeof t.listenerCount!="function"?t.listeners(e).length:t.listenerCount(e);return r>0}function nee(t){return typeof t.headersSent!="boolean"?!!t._header:t.headersSent}function xw(t,e){for(var r=[].concat(t||[]),n=0;n{"use strict";$D.exports=oee;function oee(t){if(!t)throw new TypeError("argument req is required");var e=cee(t.headers["x-forwarded-for"]||""),r=see(t),n=[r].concat(e);return n}function see(t){return t.socket?t.socket.remoteAddress:t.connection.remoteAddress}function cee(t){for(var e=t.length,r=[],n=t.length,i=t.length-1;i>=0;i--)switch(t.charCodeAt(i)){case 32:n===e&&(n=e=i);break;case 44:n!==e&&r.push(t.substring(n,e)),n=e=i;break;default:n=i;break}return n!==e&&r.push(t.substring(n,e)),r}});var TD=j((kD,Vl)=>{(function(){var t,e,r,n,i,a,o,s,c;e={},s=this,typeof Vl<"u"&&Vl!==null&&Vl.exports?Vl.exports=e:s.ipaddr=e,o=function(u,l,d,p){var f,h;if(u.length!==l.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");for(f=0;p>0;){if(h=d-p,h<0&&(h=0),u[f]>>h!==l[f]>>h)return!1;p-=d,f+=1}return!0},e.subnetMatch=function(u,l,d){var p,f,h,_,y;d==null&&(d="unicast");for(h in l)for(_=l[h],_[0]&&!(_[0]instanceof Array)&&(_=[_]),p=0,f=_.length;p=0;d=p+=-1)if(f=this.octets[d],f in y){if(_=y[f],h&&_!==0)return null;_!==8&&(h=!0),l+=_}else return null;return 32-l},u})(),r="(0?\\d+|0x[a-f0-9]+)",n={fourOctet:new RegExp("^"+r+"\\."+r+"\\."+r+"\\."+r+"$","i"),longValue:new RegExp("^"+r+"$","i")},e.IPv4.parser=function(u){var l,d,p,f,h;if(d=function(_){return _[0]==="0"&&_[1]!=="x"?parseInt(_,8):parseInt(_)},l=u.match(n.fourOctet))return(function(){var _,y,m,v;for(m=l.slice(1,6),v=[],_=0,y=m.length;_4294967295||h<0)throw new Error("ipaddr: address outside defined range");return(function(){var _,y;for(y=[],f=_=0;_<=24;f=_+=8)y.push(h>>f&255);return y})().reverse()}else return null},e.IPv6=(function(){function u(l,d){var p,f,h,_,y,m;if(l.length===16)for(this.parts=[],p=f=0;f<=14;p=f+=2)this.parts.push(l[p]<<8|l[p+1]);else if(l.length===8)this.parts=l;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(m=this.parts,h=0,_=m.length;h<_;h++)if(y=m[h],!(0<=y&&y<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");d&&(this.zoneId=d)}return u.prototype.kind=function(){return"ipv6"},u.prototype.toString=function(){return this.toNormalizedString().replace(/((^|:)(0(:|$))+)/,"::")},u.prototype.toRFC5952String=function(){var l,d,p,f,h;for(f=/((^|:)(0(:|$)){2,})/g,h=this.toNormalizedString(),l=0,d=-1;p=f.exec(h);)p[0].length>d&&(l=p.index,d=p[0].length);return d<0?h:h.substring(0,l)+"::"+h.substring(l+d)},u.prototype.toByteArray=function(){var l,d,p,f,h;for(l=[],h=this.parts,d=0,p=h.length;d>8),l.push(f&255);return l},u.prototype.toNormalizedString=function(){var l,d,p;return l=(function(){var f,h,_,y;for(_=this.parts,y=[],f=0,h=_.length;f>8,l&255,d>>8,d&255])},u.prototype.prefixLengthFromSubnetMask=function(){var l,d,p,f,h,_,y;for(y={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},l=0,h=!1,d=p=7;p>=0;d=p+=-1)if(f=this.parts[d],f in y){if(_=y[f],h&&_!==0)return null;_!==16&&(h=!0),l+=_}else return null;return 128-l},u})(),i="(?:[0-9a-f]+::?)+",c="%[0-9a-z]{1,}",a={zoneIndex:new RegExp(c,"i"),native:new RegExp("^(::)?("+i+")?([0-9a-f]+)?(::)?("+c+")?$","i"),transitional:new RegExp("^((?:"+i+")|(?:::)(?:"+i+")?)"+(r+"\\."+r+"\\."+r+"\\."+r)+("("+c+")?$"),"i")},t=function(u,l){var d,p,f,h,_,y;if(u.indexOf("::")!==u.lastIndexOf("::"))return null;for(y=(u.match(a.zoneIndex)||[])[0],y&&(y=y.substring(1),u=u.replace(/%.+$/,"")),d=0,p=-1;(p=u.indexOf(":",p+1))>=0;)d++;if(u.substr(0,2)==="::"&&d--,u.substr(-2,2)==="::"&&d--,d>l)return null;for(_=l-d,h=":";_--;)h+="0:";return u=u.replace("::",h),u[0]===":"&&(u=u.slice(1)),u[u.length-1]===":"&&(u=u.slice(0,-1)),l=(function(){var m,v,g,b;for(g=u.split(":"),b=[],m=0,v=g.length;m=0&&l<=32))return p=[this.parse(d[1]),l],Object.defineProperty(p,"toString",{value:function(){return this.join("/")}}),p;throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},e.IPv4.subnetMaskFromPrefixLength=function(u){var l,d,p;if(u=parseInt(u),u<0||u>32)throw new Error("ipaddr: invalid IPv4 prefix length");for(p=[0,0,0,0],d=0,l=Math.floor(u/8);d=0&&l<=128))return p=[this.parse(d[1]),l],Object.defineProperty(p,"toString",{value:function(){return this.join("/")}}),p;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},e.isValid=function(u){return e.IPv6.isValid(u)||e.IPv4.isValid(u)},e.parse=function(u){if(e.IPv6.isValid(u))return e.IPv6.parse(u);if(e.IPv4.isValid(u))return e.IPv4.parse(u);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},e.parseCIDR=function(u){var l;try{return e.IPv6.parseCIDR(u)}catch(d){l=d;try{return e.IPv4.parseCIDR(u)}catch(p){throw l=p,new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},e.fromByteArray=function(u){var l;if(l=u.length,l===4)return new e.IPv4(u);if(l===16)return new e.IPv6(u);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},e.process=function(u){var l;return l=this.parse(u),l.kind()==="ipv6"&&l.isIPv4MappedAddress()?l.toIPv4Address():l}}).call(kD)});var $w=j((gke,th)=>{"use strict";th.exports=hee;th.exports.all=RD;th.exports.compile=OD;var uee=ED(),PD=TD(),lee=/^[0-9]+$/,Qm=PD.isValid,eh=PD.parse,ID={linklocal:["169.254.0.0/16","fe80::/10"],loopback:["127.0.0.1/8","::1/128"],uniquelocal:["10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","fc00::/7"]};function RD(t,e){var r=uee(t);if(!e)return r;typeof e!="function"&&(e=OD(e));for(var n=0;ni)throw new TypeError("invalid range on address: "+t);return[n,a]}function mee(t){var e=eh(t),r=e.kind();return r==="ipv4"?e.prefixLengthFromSubnetMask():null}function hee(t,e){if(!t)throw new TypeError("req argument is required");if(!e)throw new TypeError("trust argument is required");var r=RD(t,e),n=r[r.length-1];return n}function gee(){return!1}function vee(t){return function(r){if(!Qm(r))return!1;for(var n=eh(r),i,a=n.kind(),o=0;o{"use strict";var CD=Gm().Buffer,_ee=mw(),ND=ml(),jD=ci()("express"),bee=Fl(),xee=Ym().mime,See=hw(),wee=$w(),$ee=zm(),Eee=require("querystring");Cr.etag=AD({weak:!1});Cr.wetag=AD({weak:!0});Cr.isAbsolute=function(t){if(t[0]==="/"||t[1]===":"&&(t[2]==="\\"||t[2]==="/")||t.substring(0,2)==="\\\\")return!0};Cr.flatten=jD.function(bee,"utils.flatten: use array-flatten npm module instead");Cr.normalizeType=function(t){return~t.indexOf("/")?kee(t):{value:xee.lookup(t),params:{}}};Cr.normalizeTypes=function(t){for(var e=[],r=0;r{"use strict";var Pee=yM(),Ree=lw(),kw=Fm(),Oee=HM(),Cee=dw(),rh=_n()("express:application"),Nee=JM(),jee=require("http"),Aee=ga().compileETag,Mee=ga().compileQueryParser,Dee=ga().compileTrust,zee=ci()("express"),Uee=Fl(),Ew=Zl(),qee=require("path").resolve,Vs=hl(),Lee=Object.prototype.hasOwnProperty,Iw=Array.prototype.slice,er=MD=DD.exports={},Tw="@@symbol:trust_proxy_default";er.init=function(){this.cache={},this.engines={},this.settings={},this.defaultConfiguration()};er.defaultConfiguration=function(){var e=process.env.NODE_ENV||"development";this.enable("x-powered-by"),this.set("etag","weak"),this.set("env",e),this.set("query parser","extended"),this.set("subdomain offset",2),this.set("trust proxy",!1),Object.defineProperty(this.settings,Tw,{configurable:!0,value:!0}),rh("booting in %s mode",e),this.on("mount",function(n){this.settings[Tw]===!0&&typeof n.settings["trust proxy fn"]=="function"&&(delete this.settings["trust proxy"],delete this.settings["trust proxy fn"]),Vs(this.request,n.request),Vs(this.response,n.response),Vs(this.engines,n.engines),Vs(this.settings,n.settings)}),this.locals=Object.create(null),this.mountpath="/",this.locals.settings=this.settings,this.set("view",Nee),this.set("views",qee("views")),this.set("jsonp callback name","callback"),e==="production"&&this.enable("view cache"),Object.defineProperty(this,"router",{get:function(){throw new Error(`'app.router' is deprecated! +Please see the 3.x to 4.x migration guide for details on how to update your app.`)}})};er.lazyrouter=function(){this._router||(this._router=new Ree({caseSensitive:this.enabled("case sensitive routing"),strict:this.enabled("strict routing")}),this._router.use(Cee(this.get("query parser fn"))),this._router.use(Oee.init(this)))};er.handle=function(e,r,n){var i=this._router,a=n||Pee(e,r,{env:this.get("env"),onerror:Fee.bind(this)});if(!i){rh("no routes defined on app"),a();return}i.handle(e,r,a)};er.use=function(e){var r=0,n="/";if(typeof e!="function"){for(var i=e;Array.isArray(i)&&i.length!==0;)i=i[0];typeof i!="function"&&(r=1,n=e)}var a=Uee(Iw.call(arguments,r));if(a.length===0)throw new TypeError("app.use() requires a middleware function");this.lazyrouter();var o=this._router;return a.forEach(function(s){if(!s||!s.handle||!s.set)return o.use(n,s);rh(".use app under %s",n),s.mountpath=n,s.parent=this,o.use(n,function(u,l,d){var p=u.app;s.handle(u,l,function(f){Vs(u,p.request),Vs(l,p.response),d(f)})}),s.emit("mount",this)},this),this};er.route=function(e){return this.lazyrouter(),this._router.route(e)};er.engine=function(e,r){if(typeof r!="function")throw new Error("callback function required");var n=e[0]!=="."?"."+e:e;return this.engines[n]=r,this};er.param=function(e,r){if(this.lazyrouter(),Array.isArray(e)){for(var n=0;n1?'directories "'+u.root.slice(0,-1).join('", "')+'" or "'+u.root[u.root.length-1]+'"':'directory "'+u.root+'"',p=new Error('Failed to lookup view "'+e+'" in views '+d);return p.view=u,a(p)}c.cache&&(i[e]=u)}Zee(u,c,a)};er.listen=function(){var e=jee.createServer(this);return e.listen.apply(e,arguments)};function Fee(t){this.get("env")!=="test"&&console.error(t.stack||t.toString())}function Zee(t,e,r){try{t.render(e,r)}catch(n){r(n)}}});var FD=j((yke,Pw)=>{"use strict";Pw.exports=LD;Pw.exports.preferredCharsets=LD;var Hee=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function Bee(t){for(var e=t.split(","),r=0,n=0;r0}});var GD=j((_ke,Rw)=>{"use strict";Rw.exports=VD;Rw.exports.preferredEncodings=VD;var Jee=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function Xee(t){for(var e=t.split(","),r=!1,n=1,i=0,a=0;i0}});var YD=j((bke,Ow)=>{"use strict";Ow.exports=XD;Ow.exports.preferredLanguages=XD;var tte=/^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;function rte(t){for(var e=t.split(","),r=0,n=0;r0}});var iz=j((xke,Cw)=>{"use strict";Cw.exports=rz;Cw.exports.preferredMediaTypes=rz;var ote=/^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;function ste(t){for(var e=pte(t),r=0,n=0;r0)if(a.every(function(o){return e.params[o]=="*"||(e.params[o]||"").toLowerCase()==(n.params[o]||"").toLowerCase()}))i|=1;else return null;return{i:r,o:e.i,q:e.q,s:i}}function rz(t,e){var r=ste(t===void 0?"*/*":t||"");if(!e)return r.filter(ez).sort(QD).map(lte);var n=e.map(function(a,o){return cte(a,r,o)});return n.filter(ez).sort(QD).map(function(a){return e[n.indexOf(a)]})}function QD(t,e){return e.q-t.q||e.s-t.s||t.o-e.o||t.i-e.i||0}function lte(t){return t.type+"/"+t.subtype}function ez(t){return t.q>0}function nz(t){for(var e=0,r=0;(r=t.indexOf('"',r))!==-1;)e++,r++;return e}function dte(t){var e=t.indexOf("="),r,n;return e===-1?r=t:(r=t.substr(0,e),n=t.substr(e+1)),[r,n]}function pte(t){for(var e=t.split(","),r=1,n=0;r{"use strict";var mte=FD(),hte=GD(),gte=YD(),vte=iz();Nw.exports=St;Nw.exports.Negotiator=St;function St(t){if(!(this instanceof St))return new St(t);this.request=t}St.prototype.charset=function(e){var r=this.charsets(e);return r&&r[0]};St.prototype.charsets=function(e){return mte(this.request.headers["accept-charset"],e)};St.prototype.encoding=function(e){var r=this.encodings(e);return r&&r[0]};St.prototype.encodings=function(e){return hte(this.request.headers["accept-encoding"],e)};St.prototype.language=function(e){var r=this.languages(e);return r&&r[0]};St.prototype.languages=function(e){return gte(this.request.headers["accept-language"],e)};St.prototype.mediaType=function(e){var r=this.mediaTypes(e);return r&&r[0]};St.prototype.mediaTypes=function(e){return vte(this.request.headers.accept,e)};St.prototype.preferredCharset=St.prototype.charset;St.prototype.preferredCharsets=St.prototype.charsets;St.prototype.preferredEncoding=St.prototype.encoding;St.prototype.preferredEncodings=St.prototype.encodings;St.prototype.preferredLanguage=St.prototype.language;St.prototype.preferredLanguages=St.prototype.languages;St.prototype.preferredMediaType=St.prototype.mediaType;St.prototype.preferredMediaTypes=St.prototype.mediaTypes});var sz=j((wke,oz)=>{"use strict";var yte=az(),_te=TS();oz.exports=sn;function sn(t){if(!(this instanceof sn))return new sn(t);this.headers=t.headers,this.negotiator=new yte(t)}sn.prototype.type=sn.prototype.types=function(t){var e=t;if(e&&!Array.isArray(e)){e=new Array(arguments.length);for(var r=0;r{"use strict";var nh=sz(),Gl=ci()("express"),Ste=require("net").isIP,wte=Os(),$te=require("http"),Ete=gw(),kte=vw(),Tte=zs(),cz=$w(),Tt=Object.create($te.IncomingMessage.prototype);uz.exports=Tt;Tt.get=Tt.header=function(e){if(!e)throw new TypeError("name argument is required to req.get");if(typeof e!="string")throw new TypeError("name must be a string to req.get");var r=e.toLowerCase();switch(r){case"referer":case"referrer":return this.headers.referrer||this.headers.referer;default:return this.headers[r]}};Tt.accepts=function(){var t=nh(this);return t.types.apply(t,arguments)};Tt.acceptsEncodings=function(){var t=nh(this);return t.encodings.apply(t,arguments)};Tt.acceptsEncoding=Gl.function(Tt.acceptsEncodings,"req.acceptsEncoding: Use acceptsEncodings instead");Tt.acceptsCharsets=function(){var t=nh(this);return t.charsets.apply(t,arguments)};Tt.acceptsCharset=Gl.function(Tt.acceptsCharsets,"req.acceptsCharset: Use acceptsCharsets instead");Tt.acceptsLanguages=function(){var t=nh(this);return t.languages.apply(t,arguments)};Tt.acceptsLanguage=Gl.function(Tt.acceptsLanguages,"req.acceptsLanguage: Use acceptsLanguages instead");Tt.range=function(e,r){var n=this.get("Range");if(n)return kte(e,n,r)};Tt.param=function(e,r){var n=this.params||{},i=this.body||{},a=this.query||{},o=arguments.length===1?"name":"name, default";return Gl("req.param("+o+"): Use req.params, req.body, or req.query instead"),n[e]!=null&&n.hasOwnProperty(e)?n[e]:i[e]!=null?i[e]:a[e]!=null?a[e]:r};Tt.is=function(e){var r=e;if(!Array.isArray(e)){r=new Array(arguments.length);for(var n=0;n=200&&r<300||r===304?Ete(this.headers,{etag:e.get("ETag"),"last-modified":e.get("Last-Modified")}):!1});Bn(Tt,"stale",function(){return!this.fresh});Bn(Tt,"xhr",function(){var e=this.get("X-Requested-With")||"";return e.toLowerCase()==="xmlhttprequest"});function Bn(t,e,r){Object.defineProperty(t,e,{configurable:!0,enumerable:!0,get:r})}});var fz=j(ih=>{var pz=require("crypto");ih.sign=function(t,e){if(typeof t!="string")throw new TypeError("Cookie value must be provided as a string.");if(e==null)throw new TypeError("Secret key must be provided.");return t+"."+pz.createHmac("sha256",e).update(t).digest("base64").replace(/\=+$/,"")};ih.unsign=function(t,e){if(typeof t!="string")throw new TypeError("Signed cookie string must be provided.");if(e==null)throw new TypeError("Secret key must be provided.");var r=t.slice(0,t.lastIndexOf(".")),n=ih.sign(r,e);return dz(n)==dz(t)?r:!1};function dz(t){return pz.createHash("sha1").update(t).digest("hex")}});var gz=j(jw=>{"use strict";jw.parse=jte;jw.serialize=Ate;var Ite=Object.prototype.toString,Pte=Object.prototype.hasOwnProperty,Rte=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,Ote=/^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/,Cte=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,Nte=/^[\u0020-\u003A\u003D-\u007E]*$/;function jte(t,e){if(typeof t!="string")throw new TypeError("argument str must be a string");var r={},n=t.length;if(n<2)return r;var i=e&&e.decode||Mte,a=0,o=0,s=0;do{if(o=t.indexOf("=",a),o===-1)break;if(s=t.indexOf(";",a),s===-1)s=n;else if(o>s){a=t.lastIndexOf(";",o-1)+1;continue}var c=mz(t,a,o),u=hz(t,o,c),l=t.slice(c,u);if(!Pte.call(r,l)){var d=mz(t,o+1,s),p=hz(t,s,d);t.charCodeAt(d)===34&&t.charCodeAt(p-1)===34&&(d++,p--);var f=t.slice(d,p);r[l]=zte(f,i)}a=s+1}while(ar;){var n=t.charCodeAt(--e);if(n!==32&&n!==9)return e+1}return r}function Ate(t,e,r){var n=r&&r.encode||encodeURIComponent;if(typeof n!="function")throw new TypeError("option encode is invalid");if(!Rte.test(t))throw new TypeError("argument name is invalid");var i=n(e);if(!Ote.test(i))throw new TypeError("argument val is invalid");var a=t+"="+i;if(!r)return a;if(r.maxAge!=null){var o=Math.floor(r.maxAge);if(!isFinite(o))throw new TypeError("option maxAge is invalid");a+="; Max-Age="+o}if(r.domain){if(!Cte.test(r.domain))throw new TypeError("option domain is invalid");a+="; Domain="+r.domain}if(r.path){if(!Nte.test(r.path))throw new TypeError("option path is invalid");a+="; Path="+r.path}if(r.expires){var s=r.expires;if(!Dte(s)||isNaN(s.valueOf()))throw new TypeError("option expires is invalid");a+="; Expires="+s.toUTCString()}if(r.httpOnly&&(a+="; HttpOnly"),r.secure&&(a+="; Secure"),r.partitioned&&(a+="; Partitioned"),r.priority){var c=typeof r.priority=="string"?r.priority.toLowerCase():r.priority;switch(c){case"low":a+="; Priority=Low";break;case"medium":a+="; Priority=Medium";break;case"high":a+="; Priority=High";break;default:throw new TypeError("option priority is invalid")}}if(r.sameSite){var u=typeof r.sameSite=="string"?r.sameSite.toLowerCase():r.sameSite;switch(u){case!0:a+="; SameSite=Strict";break;case"lax":a+="; SameSite=Lax";break;case"strict":a+="; SameSite=Strict";break;case"none":a+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return a}function Mte(t){return t.indexOf("%")!==-1?decodeURIComponent(t):t}function Dte(t){return Ite.call(t)==="[object Date]"}function zte(t,e){try{return e(t)}catch{return t}}});var Mw=j((Tke,Aw)=>{"use strict";Aw.exports=qte;Aw.exports.append=yz;var Ute=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function yz(t,e){if(typeof t!="string")throw new TypeError("header argument is required");if(!e)throw new TypeError("field argument is required");for(var r=Array.isArray(e)?e:vz(String(e)),n=0;n{"use strict";var Wl=Gm().Buffer,_z=mw(),Lte=Ya(),Hr=ci()("express"),Fte=ql(),Zte=Ll(),Hte=require("http"),Bte=ga().isAbsolute,Vte=El(),bz=require("path"),ah=gl(),xz=Zl(),Gte=fz().sign,Wte=ga().normalizeType,Kte=ga().normalizeTypes,Jte=ga().setCharset,Xte=gz(),Dw=Ym(),Yte=bz.extname,Sz=Dw.mime,Qte=bz.resolve,ere=Mw(),Rt=Object.create(Hte.ServerResponse.prototype);Ez.exports=Rt;var tre=/;\s*charset\s*=/;Rt.status=function(e){return(typeof e=="string"||Math.floor(e)!==e)&&e>99&&e<1e3&&Hr("res.status("+JSON.stringify(e)+"): use res.status("+Math.floor(e)+") instead"),this.statusCode=e,this};Rt.links=function(t){var e=this.get("Link")||"";return e&&(e+=", "),this.set("Link",e+Object.keys(t).map(function(r){return"<"+t[r]+'>; rel="'+r+'"'}).join(", "))};Rt.send=function(e){var r=e,n,i=this.req,a,o=this.app;switch(arguments.length===2&&(typeof arguments[0]!="number"&&typeof arguments[1]=="number"?(Hr("res.send(body, status): Use res.status(status).send(body) instead"),this.statusCode=arguments[1]):(Hr("res.send(status, body): Use res.status(status).send(body) instead"),this.statusCode=arguments[0],r=arguments[1])),typeof r=="number"&&arguments.length===1&&(this.get("Content-Type")||this.type("txt"),Hr("res.send(status): Use res.sendStatus(status) instead"),this.statusCode=r,r=ah.message[r]),typeof r){case"string":this.get("Content-Type")||this.type("html");break;case"boolean":case"number":case"object":if(r===null)r="";else if(Wl.isBuffer(r))this.get("Content-Type")||this.type("bin");else return this.json(r);break}typeof r=="string"&&(n="utf8",a=this.get("Content-Type"),typeof a=="string"&&this.set("Content-Type",Jte(a,"utf-8")));var s=o.get("etag fn"),c=!this.get("ETag")&&typeof s=="function",u;r!==void 0&&(Wl.isBuffer(r)?u=r.length:!c&&r.length<1e3?u=Wl.byteLength(r,n):(r=Wl.from(r,n),n=void 0,u=r.length),this.set("Content-Length",u));var l;return c&&u!==void 0&&(l=s(r,n))&&this.set("ETag",l),i.fresh&&(this.statusCode=304),(this.statusCode===204||this.statusCode===304)&&(this.removeHeader("Content-Type"),this.removeHeader("Content-Length"),this.removeHeader("Transfer-Encoding"),r=""),this.statusCode===205&&(this.set("Content-Length","0"),this.removeHeader("Transfer-Encoding"),r=""),i.method==="HEAD"?this.end():this.end(r,n),this};Rt.json=function(e){var r=e;arguments.length===2&&(typeof arguments[1]=="number"?(Hr("res.json(obj, status): Use res.status(status).json(obj) instead"),this.statusCode=arguments[1]):(Hr("res.json(status, obj): Use res.status(status).json(obj) instead"),this.statusCode=arguments[0],r=arguments[1]));var n=this.app,i=n.get("json escape"),a=n.get("json replacer"),o=n.get("json spaces"),s=$z(r,a,o,i);return this.get("Content-Type")||this.set("Content-Type","application/json"),this.send(s)};Rt.jsonp=function(e){var r=e;arguments.length===2&&(typeof arguments[1]=="number"?(Hr("res.jsonp(obj, status): Use res.status(status).jsonp(obj) instead"),this.statusCode=arguments[1]):(Hr("res.jsonp(status, obj): Use res.status(status).jsonp(obj) instead"),this.statusCode=arguments[0],r=arguments[1]));var n=this.app,i=n.get("json escape"),a=n.get("json replacer"),o=n.get("json spaces"),s=$z(r,a,o,i),c=this.req.query[n.get("jsonp callback name")];return this.get("Content-Type")||(this.set("X-Content-Type-Options","nosniff"),this.set("Content-Type","application/json")),Array.isArray(c)&&(c=c[0]),typeof c=="string"&&c.length!==0&&(this.set("X-Content-Type-Options","nosniff"),this.set("Content-Type","text/javascript"),c=c.replace(/[^\[\]\w$.]/g,""),s===void 0?s="":typeof s=="string"&&(s=s.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")),s="/**/ typeof "+c+" === 'function' && "+c+"("+s+");"),this.send(s)};Rt.sendStatus=function(e){var r=ah.message[e]||String(e);return this.statusCode=e,this.type("txt"),this.send(r)};Rt.sendFile=function(e,r,n){var i=n,a=this.req,o=this,s=a.next,c=r||{};if(!e)throw new TypeError("path argument is required to res.sendFile");if(typeof e!="string")throw new TypeError("path must be a string to res.sendFile");if(typeof r=="function"&&(i=r,c={}),!c.root&&!Bte(e))throw new TypeError("path must be absolute or specify root to res.sendFile");var u=encodeURI(e),l=Dw(a,u,c);wz(o,l,c,function(d){if(i)return i(d);if(d&&d.code==="EISDIR")return s();d&&d.code!=="ECONNABORTED"&&d.syscall!=="write"&&s(d)})};Rt.sendfile=function(t,e,r){var n=r,i=this.req,a=this,o=i.next,s=e||{};typeof e=="function"&&(n=e,s={});var c=Dw(i,t,s);wz(a,c,s,function(u){if(n)return n(u);if(u&&u.code==="EISDIR")return o();u&&u.code!=="ECONNABORTED"&&u.syscall!=="write"&&o(u)})};Rt.sendfile=Hr.function(Rt.sendfile,"res.sendfile: Use res.sendFile instead");Rt.download=function(e,r,n,i){var a=i,o=r,s=n||null;typeof r=="function"?(a=r,o=null,s=null):typeof n=="function"&&(a=n,s=null),typeof r=="object"&&(typeof n=="function"||n===void 0)&&(o=null,s=r);var c={"Content-Disposition":_z(o||e)};if(s&&s.headers)for(var u=Object.keys(s.headers),l=0;l0?e.accepts(n):!1;return this.vary("Accept"),i?(this.set("Content-Type",Wte(i).value),t[i](e,this,r)):t.default?t.default(e,this,r):r(Lte(406,{types:Kte(n).map(function(a){return a.value})})),this};Rt.attachment=function(e){return e&&this.type(Yte(e)),this.set("Content-Disposition",_z(e)),this};Rt.append=function(e,r){var n=this.get(e),i=r;return n&&(i=Array.isArray(n)?n.concat(r):Array.isArray(r)?[n].concat(r):[n,r]),this.set(e,i)};Rt.set=Rt.header=function(e,r){if(arguments.length===2){var n=Array.isArray(r)?r.map(String):String(r);if(e.toLowerCase()==="content-type"){if(Array.isArray(n))throw new TypeError("Content-Type cannot be set to an Array");if(!tre.test(n)){var i=Sz.charsets.lookup(n.split(";")[0]);i&&(n+="; charset="+i.toLowerCase())}}this.setHeader(e,n)}else for(var a in e)this.set(a,e[a]);return this};Rt.get=function(t){return this.getHeader(t)};Rt.clearCookie=function(e,r){r&&(r.maxAge&&Hr('res.clearCookie: Passing "options.maxAge" is deprecated. In v5.0.0 of Express, this option will be ignored, as res.clearCookie will automatically set cookies to expire immediately. Please update your code to omit this option.'),r.expires&&Hr('res.clearCookie: Passing "options.expires" is deprecated. In v5.0.0 of Express, this option will be ignored, as res.clearCookie will automatically set cookies to expire immediately. Please update your code to omit this option.'));var n=xz({expires:new Date(1),path:"/"},r);return this.cookie(e,"",n)};Rt.cookie=function(t,e,r){var n=xz({},r),i=this.req.secret,a=n.signed;if(a&&!i)throw new Error('cookieParser("secret") required for signed cookies');var o=typeof e=="object"?"j:"+JSON.stringify(e):String(e);if(a&&(o="s:"+Gte(o,i)),n.maxAge!=null){var s=n.maxAge-0;isNaN(s)||(n.expires=new Date(Date.now()+s),n.maxAge=Math.floor(s/1e3))}return n.path==null&&(n.path="/"),this.append("Set-Cookie",Xte.serialize(t,String(o),n)),this};Rt.location=function(e){var r;return e==="back"?(Hr('res.location("back"): use res.location(req.get("Referrer") || "/") and refer to https://dub.sh/security-redirect for best practices'),r=this.req.get("Referrer")||"/"):r=String(e),this.set("Location",Fte(r))};Rt.redirect=function(e){var r=e,n,i=302;arguments.length===2&&(typeof arguments[0]=="number"?(i=arguments[0],r=arguments[1]):(Hr("res.redirect(url, status): Use res.redirect(status, url) instead"),i=arguments[1])),r=this.location(r).get("Location"),this.format({text:function(){n=ah.message[i]+". Redirecting to "+r},html:function(){var a=Zte(r);n="

"+ah.message[i]+". Redirecting to "+a+"

"},default:function(){n=""}}),this.statusCode=i,this.set("Content-Length",Wl.byteLength(n)),this.req.method==="HEAD"?this.end():this.end(n)};Rt.vary=function(t){return!t||Array.isArray(t)&&!t.length?(Hr("res.vary(): Provide a field name"),this):(ere(this,t),this)};Rt.render=function(e,r,n){var i=this.req.app,a=n,o=r||{},s=this.req,c=this;typeof r=="function"&&(a=r,o={}),o._locals=c.locals,a=a||function(u,l){if(u)return s.next(u);c.send(l)},i.render(e,o,a)};function wz(t,e,r,n){var i=!1,a;function o(){if(!i){i=!0;var f=new Error("Request aborted");f.code="ECONNABORTED",n(f)}}function s(){if(!i){i=!0;var f=new Error("EISDIR, read");f.code="EISDIR",n(f)}}function c(f){i||(i=!0,n(f))}function u(){i||(i=!0,n())}function l(){a=!1}function d(f){if(f&&f.code==="ECONNRESET")return o();if(f)return c(f);i||setImmediate(function(){if(a!==!1&&!i){o();return}i||(i=!0,n())})}function p(){a=!0}e.on("directory",s),e.on("end",u),e.on("error",c),e.on("file",l),e.on("stream",p),Vte(t,d),r.headers&&e.on("headers",function(h){for(var _=r.headers,y=Object.keys(_),m=0;m&]/g,function(a){switch(a.charCodeAt(0)){case 60:return"\\u003c";case 62:return"\\u003e";case 38:return"\\u0026";default:return a}})),i}});var Iz=j((Pke,Uw)=>{"use strict";var rre=ql(),nre=Ll(),zw=zs(),ire=require("path").resolve,Tz=Ym(),are=require("url");Uw.exports=ore;Uw.exports.mime=Tz.mime;function ore(t,e){if(!t)throw new TypeError("root path required");if(typeof t!="string")throw new TypeError("root path must be a string");var r=Object.create(e||null),n=r.fallthrough!==!1,i=r.redirect!==!1,a=r.setHeaders;if(a&&typeof a!="function")throw new TypeError("option setHeaders must be function");r.maxage=r.maxage||r.maxAge||0,r.root=ire(t);var o=i?lre():ure();return function(c,u,l){if(c.method!=="GET"&&c.method!=="HEAD"){if(n)return l();u.statusCode=405,u.setHeader("Allow","GET, HEAD"),u.setHeader("Content-Length","0"),u.end();return}var d=!n,p=zw.original(c),f=zw(c).pathname;f==="/"&&p.pathname.substr(-1)!=="/"&&(f="");var h=Tz(c,f,r);h.on("directory",o),a&&h.on("headers",a),n&&h.on("file",function(){d=!0}),h.on("error",function(y){if(d||!(y.statusCode<500)){l(y);return}l()}),h.pipe(u)}}function sre(t){for(var e=0;e1?"/"+t.substr(e):t}function cre(t,e){return` @@ -49,21 +64,13 @@ Please see the 3.x to 4.x migration guide for details on how to update your app.
`+e+`
-`}function h2(){return function(){this.error(404)}}function v2(){return function(e){if(this.hasTrailingSlash()){this.error(404);return}var r=yf.original(this.req);r.path=null,r.pathname=f2(r.pathname+"/");var a=c2(d2.format(r)),n=m2("Redirecting","Redirecting to "+u2(a));e.statusCode=301,e.setHeader("Content-Type","text/html; charset=UTF-8"),e.setHeader("Content-Length",Buffer.byteLength(n)),e.setHeader("Content-Security-Policy","default-src 'none'"),e.setHeader("X-Content-Type-Options","nosniff"),e.setHeader("Location",a),e.end(n)}}});var ZS=V((rr,GS)=>{"use strict";var vu=hb(),g2=require("events").EventEmitter,zS=gb(),HS=J0(),y2=Up(),_2=Hp(),BS=wS(),VS=qS();rr=GS.exports=b2;function b2(){var t=function(e,r,a){t.handle(e,r,a)};return zS(t,g2.prototype,!1),zS(t,HS,!1),t.request=Object.create(BS,{app:{configurable:!0,enumerable:!0,writable:!0,value:t}}),t.response=Object.create(VS,{app:{configurable:!0,enumerable:!0,writable:!0,value:t}}),t.init(),t}rr.application=HS;rr.request=BS;rr.response=VS;rr.Route=y2;rr.Router=_2;rr.json=vu.json;rr.query=Bp();rr.raw=vu.raw;rr.static=US();rr.text=vu.text;rr.urlencoded=vu.urlencoded;var S2=["bodyParser","compress","cookieSession","session","logger","cookieParser","favicon","responseTime","errorHandler","timeout","methodOverride","vhost","csrf","directory","limit","multipart","staticCache"];S2.forEach(function(t){Object.defineProperty(rr,t,{get:function(){throw new Error("Most middleware (like "+t+") is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.")},configurable:!0})})});var gu=V((PW,WS)=>{"use strict";WS.exports=ZS()});var kx=V((Iu,Tx)=>{(function(t,e){typeof Iu=="object"&&typeof Tx<"u"?e(Iu):typeof define=="function"&&define.amd?define(["exports"],e):e(t.URI=t.URI||{})})(Iu,(function(t){"use strict";function e(){for(var B=arguments.length,L=Array(B),G=0;G1){L[0]=L[0].slice(0,-1);for(var X=L.length-1,Y=1;Y= 0x80 (not a basic code point)","invalid-input":"Invalid input"},R=f-v,M=Math.floor,j=String.fromCharCode;function q(B){throw new RangeError(T[B])}function H(B,L){for(var G=[],X=B.length;X--;)G[X]=L(B[X]);return G}function N(B,L){var G=B.split("@"),X="";G.length>1&&(X=G[0]+"@",B=G[1]),B=B.replace(E,".");var Y=B.split("."),ye=H(Y,L).join(".");return X+ye}function W(B){for(var L=[],G=0,X=B.length;G=55296&&Y<=56319&&G>1,L+=M(L/G);L>R*_>>1;Y+=f)L=M(L/R);return M(Y+(R+1)*L/(L+m))},U=function(L){var G=[],X=L.length,Y=0,ye=g,qe=y,Je=L.lastIndexOf(b);Je<0&&(Je=0);for(var nt=0;nt=128&&q("not-basic"),G.push(L.charCodeAt(nt));for(var Ct=Je>0?Je+1:0;Ct=X&&q("invalid-input");var gt=he(L.charCodeAt(Ct++));(gt>=f||gt>M((p-Y)/bt))&&q("overflow"),Y+=gt*bt;var Qe=It<=qe?v:It>=qe+_?_:It-qe;if(gtM(p/St)&&q("overflow"),bt*=St}var it=G.length+1;qe=re(Y-We,it,We==0),M(Y/it)>p-ye&&q("overflow"),ye+=M(Y/it),Y%=it,G.splice(Y++,0,ye)}return String.fromCodePoint.apply(String,G)},$=function(L){var G=[];L=W(L);var X=L.length,Y=g,ye=0,qe=y,Je=!0,nt=!1,Ct=void 0;try{for(var We=L[Symbol.iterator](),bt;!(Je=(bt=We.next()).done);Je=!0){var It=bt.value;It<128&&G.push(j(It))}}catch(sa){nt=!0,Ct=sa}finally{try{!Je&&We.return&&We.return()}finally{if(nt)throw Ct}}var gt=G.length,Qe=gt;for(gt&&G.push(b);Qe=Y&&frM((p-ye)/br)&&q("overflow"),ye+=(St-Y)*br,Y=St;var Xr=!0,aa=!1,mn=void 0;try{for(var Ai=L[Symbol.iterator](),oc;!(Xr=(oc=Ai.next()).done);Xr=!0){var cc=oc.value;if(ccp&&q("overflow"),cc==Y){for(var as=ye,ss=f;;ss+=f){var hn=ss<=qe?v:ss>=qe+_?_:ss-qe;if(as>6|192).toString(16).toUpperCase()+"%"+(L&63|128).toString(16).toUpperCase():G="%"+(L>>12|224).toString(16).toUpperCase()+"%"+(L>>6&63|128).toString(16).toUpperCase()+"%"+(L&63|128).toString(16).toUpperCase(),G}function K(B){for(var L="",G=0,X=B.length;G=194&&Y<224){if(X-G>=6){var ye=parseInt(B.substr(G+4,2),16);L+=String.fromCharCode((Y&31)<<6|ye&63)}else L+=B.substr(G,6);G+=6}else if(Y>=224){if(X-G>=9){var qe=parseInt(B.substr(G+4,2),16),Je=parseInt(B.substr(G+7,2),16);L+=String.fromCharCode((Y&15)<<12|(qe&63)<<6|Je&63)}else L+=B.substr(G,9);G+=9}else L+=B.substr(G,3),G+=3}return L}function J(B,L){function G(X){var Y=K(X);return Y.match(L.UNRESERVED)?Y:X}return B.scheme&&(B.scheme=String(B.scheme).replace(L.PCT_ENCODED,G).toLowerCase().replace(L.NOT_SCHEME,"")),B.userinfo!==void 0&&(B.userinfo=String(B.userinfo).replace(L.PCT_ENCODED,G).replace(L.NOT_USERINFO,D).replace(L.PCT_ENCODED,n)),B.host!==void 0&&(B.host=String(B.host).replace(L.PCT_ENCODED,G).toLowerCase().replace(L.NOT_HOST,D).replace(L.PCT_ENCODED,n)),B.path!==void 0&&(B.path=String(B.path).replace(L.PCT_ENCODED,G).replace(B.scheme?L.NOT_PATH:L.NOT_PATH_NOSCHEME,D).replace(L.PCT_ENCODED,n)),B.query!==void 0&&(B.query=String(B.query).replace(L.PCT_ENCODED,G).replace(L.NOT_QUERY,D).replace(L.PCT_ENCODED,n)),B.fragment!==void 0&&(B.fragment=String(B.fragment).replace(L.PCT_ENCODED,G).replace(L.NOT_FRAGMENT,D).replace(L.PCT_ENCODED,n)),B}function de(B){return B.replace(/^0*(.*)/,"$1")||"0"}function se(B,L){var G=B.match(L.IPV4ADDRESS)||[],X=l(G,2),Y=X[1];return Y?Y.split(".").map(de).join("."):B}function me(B,L){var G=B.match(L.IPV6ADDRESS)||[],X=l(G,3),Y=X[1],ye=X[2];if(Y){for(var qe=Y.toLowerCase().split("::").reverse(),Je=l(qe,2),nt=Je[0],Ct=Je[1],We=Ct?Ct.split(":").map(de):[],bt=nt.split(":").map(de),It=L.IPV4ADDRESS.test(bt[bt.length-1]),gt=It?7:8,Qe=bt.length-gt,St=Array(gt),it=0;it1){var ct=St.slice(0,pr.index),fr=St.slice(pr.index+pr.length);_r=ct.join(":")+"::"+fr.join(":")}else _r=St.join(":");return ye&&(_r+="%"+ye),_r}else return B}var C=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,I="".match(/(){0}/)[1]===void 0;function F(B){var L=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},G={},X=L.iri!==!1?u:c;L.reference==="suffix"&&(B=(L.scheme?L.scheme+":":"")+"//"+B);var Y=B.match(C);if(Y){I?(G.scheme=Y[1],G.userinfo=Y[3],G.host=Y[4],G.port=parseInt(Y[5],10),G.path=Y[6]||"",G.query=Y[7],G.fragment=Y[8],isNaN(G.port)&&(G.port=Y[5])):(G.scheme=Y[1]||void 0,G.userinfo=B.indexOf("@")!==-1?Y[3]:void 0,G.host=B.indexOf("//")!==-1?Y[4]:void 0,G.port=parseInt(Y[5],10),G.path=Y[6]||"",G.query=B.indexOf("?")!==-1?Y[7]:void 0,G.fragment=B.indexOf("#")!==-1?Y[8]:void 0,isNaN(G.port)&&(G.port=B.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?Y[4]:void 0)),G.host&&(G.host=me(se(G.host,X),X)),G.scheme===void 0&&G.userinfo===void 0&&G.host===void 0&&G.port===void 0&&!G.path&&G.query===void 0?G.reference="same-document":G.scheme===void 0?G.reference="relative":G.fragment===void 0?G.reference="absolute":G.reference="uri",L.reference&&L.reference!=="suffix"&&L.reference!==G.reference&&(G.error=G.error||"URI is not a "+L.reference+" reference.");var ye=k[(L.scheme||G.scheme||"").toLowerCase()];if(!L.unicodeSupport&&(!ye||!ye.unicodeSupport)){if(G.host&&(L.domainHost||ye&&ye.domainHost))try{G.host=x.toASCII(G.host.replace(X.PCT_ENCODED,K).toLowerCase())}catch(qe){G.error=G.error||"Host's domain name can not be converted to ASCII via punycode: "+qe}J(G,c)}else J(G,X);ye&&ye.parse&&ye.parse(G,L)}else G.error=G.error||"URI can not be parsed.";return G}function Z(B,L){var G=L.iri!==!1?u:c,X=[];return B.userinfo!==void 0&&(X.push(B.userinfo),X.push("@")),B.host!==void 0&&X.push(me(se(String(B.host),G),G).replace(G.IPV6ADDRESS,function(Y,ye,qe){return"["+ye+(qe?"%25"+qe:"")+"]"})),(typeof B.port=="number"||typeof B.port=="string")&&(X.push(":"),X.push(String(B.port))),X.length?X.join(""):void 0}var ee=/^\.\.?\//,ce=/^\/\.(\/|$)/,ke=/^\/\.\.(\/|$)/,Ne=/^\/?(?:.|\n)*?(?=\/|$)/;function Me(B){for(var L=[];B.length;)if(B.match(ee))B=B.replace(ee,"");else if(B.match(ce))B=B.replace(ce,"/");else if(B.match(ke))B=B.replace(ke,"/"),L.pop();else if(B==="."||B==="..")B="";else{var G=B.match(Ne);if(G){var X=G[0];B=B.slice(X.length),L.push(X)}else throw new Error("Unexpected dot segment condition")}return L.join("")}function je(B){var L=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},G=L.iri?u:c,X=[],Y=k[(L.scheme||B.scheme||"").toLowerCase()];if(Y&&Y.serialize&&Y.serialize(B,L),B.host&&!G.IPV6ADDRESS.test(B.host)){if(L.domainHost||Y&&Y.domainHost)try{B.host=L.iri?x.toUnicode(B.host):x.toASCII(B.host.replace(G.PCT_ENCODED,K).toLowerCase())}catch(Je){B.error=B.error||"Host's domain name can not be converted to "+(L.iri?"Unicode":"ASCII")+" via punycode: "+Je}}J(B,G),L.reference!=="suffix"&&B.scheme&&(X.push(B.scheme),X.push(":"));var ye=Z(B,L);if(ye!==void 0&&(L.reference!=="suffix"&&X.push("//"),X.push(ye),B.path&&B.path.charAt(0)!=="/"&&X.push("/")),B.path!==void 0){var qe=B.path;!L.absolutePath&&(!Y||!Y.absolutePath)&&(qe=Me(qe)),ye===void 0&&(qe=qe.replace(/^\/\//,"/%2F")),X.push(qe)}return B.query!==void 0&&(X.push("?"),X.push(B.query)),B.fragment!==void 0&&(X.push("#"),X.push(B.fragment)),X.join("")}function Re(B,L){var G=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},X=arguments[3],Y={};return X||(B=F(je(B,G),G),L=F(je(L,G),G)),G=G||{},!G.tolerant&&L.scheme?(Y.scheme=L.scheme,Y.userinfo=L.userinfo,Y.host=L.host,Y.port=L.port,Y.path=Me(L.path||""),Y.query=L.query):(L.userinfo!==void 0||L.host!==void 0||L.port!==void 0?(Y.userinfo=L.userinfo,Y.host=L.host,Y.port=L.port,Y.path=Me(L.path||""),Y.query=L.query):(L.path?(L.path.charAt(0)==="/"?Y.path=Me(L.path):((B.userinfo!==void 0||B.host!==void 0||B.port!==void 0)&&!B.path?Y.path="/"+L.path:B.path?Y.path=B.path.slice(0,B.path.lastIndexOf("/")+1)+L.path:Y.path=L.path,Y.path=Me(Y.path)),Y.query=L.query):(Y.path=B.path,L.query!==void 0?Y.query=L.query:Y.query=B.query),Y.userinfo=B.userinfo,Y.host=B.host,Y.port=B.port),Y.scheme=B.scheme),Y.fragment=L.fragment,Y}function vt(B,L,G){var X=i({scheme:"null"},G);return je(Re(F(B,X),F(L,X),X,!0),X)}function Ue(B,L){return typeof B=="string"?B=je(F(B,L),L):a(B)==="object"&&(B=F(je(B,L),L)),B}function yr(B,L,G){return typeof B=="string"?B=je(F(B,G),G):a(B)==="object"&&(B=je(B,G)),typeof L=="string"?L=je(F(L,G),G):a(L)==="object"&&(L=je(L,G)),B===L}function Zt(B,L){return B&&B.toString().replace(!L||!L.iri?c.ESCAPE:u.ESCAPE,D)}function Nt(B,L){return B&&B.toString().replace(!L||!L.iri?c.PCT_ENCODED:u.PCT_ENCODED,K)}var Lr={scheme:"http",domainHost:!0,parse:function(L,G){return L.host||(L.error=L.error||"HTTP URIs must have a host."),L},serialize:function(L,G){var X=String(L.scheme).toLowerCase()==="https";return(L.port===(X?443:80)||L.port==="")&&(L.port=void 0),L.path||(L.path="/"),L}},On={scheme:"https",domainHost:Lr.domainHost,parse:Lr.parse,serialize:Lr.serialize};function rs(B){return typeof B.secure=="boolean"?B.secure:String(B.scheme).toLowerCase()==="wss"}var Ii={scheme:"ws",domainHost:!0,parse:function(L,G){var X=L;return X.secure=rs(X),X.resourceName=(X.path||"/")+(X.query?"?"+X.query:""),X.path=void 0,X.query=void 0,X},serialize:function(L,G){if((L.port===(rs(L)?443:80)||L.port==="")&&(L.port=void 0),typeof L.secure=="boolean"&&(L.scheme=L.secure?"wss":"ws",L.secure=void 0),L.resourceName){var X=L.resourceName.split("?"),Y=l(X,2),ye=Y[0],qe=Y[1];L.path=ye&&ye!=="/"?ye:void 0,L.query=qe,L.resourceName=void 0}return L.fragment=void 0,L}},Lh={scheme:"wss",domainHost:Ii.domainHost,parse:Ii.parse,serialize:Ii.serialize},tP={},rP=!0,qh="[A-Za-z0-9\\-\\.\\_\\~"+(rP?"\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF":"")+"]",Kr="[0-9A-Fa-f]",nP=r(r("%[EFef]"+Kr+"%"+Kr+Kr+"%"+Kr+Kr)+"|"+r("%[89A-Fa-f]"+Kr+"%"+Kr+Kr)+"|"+r("%"+Kr+Kr)),aP="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",sP="[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",iP=e(sP,'[\\"\\\\]'),oP="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",cP=new RegExp(qh,"g"),ns=new RegExp(nP,"g"),uP=new RegExp(e("[^]",aP,"[\\.]",'[\\"]',iP),"g"),Fh=new RegExp(e("[^]",qh,oP),"g"),lP=Fh;function vd(B){var L=K(B);return L.match(cP)?L:B}var Uh={scheme:"mailto",parse:function(L,G){var X=L,Y=X.to=X.path?X.path.split(","):[];if(X.path=void 0,X.query){for(var ye=!1,qe={},Je=X.query.split("&"),nt=0,Ct=Je.length;nt{"use strict";Rx.exports=function t(e,r){if(e===r)return!0;if(e&&r&&typeof e=="object"&&typeof r=="object"){if(e.constructor!==r.constructor)return!1;var a,n,s;if(Array.isArray(e)){if(a=e.length,a!=r.length)return!1;for(n=a;n--!==0;)if(!t(e[n],r[n]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if(s=Object.keys(e),a=s.length,a!==Object.keys(r).length)return!1;for(n=a;n--!==0;)if(!Object.prototype.hasOwnProperty.call(r,s[n]))return!1;for(n=a;n--!==0;){var i=s[n];if(!t(e[i],r[i]))return!1}return!0}return e!==e&&r!==r}});var $x=V((fK,Px)=>{"use strict";Px.exports=function(e){for(var r=0,a=e.length,n=0,s;n=55296&&s<=56319&&n{"use strict";Ix.exports={copy:P8,checkDataType:Df,checkDataTypes:$8,coerceToTypes:O8,toHash:qf,getProperty:Ff,escapeQuotes:Uf,equal:Au(),ucs2length:$x(),varOccurences:A8,varReplace:N8,schemaHasRules:M8,schemaHasRulesExcept:j8,schemaUnknownRules:D8,toQuotedString:Lf,getPathExpr:L8,getPath:q8,getData:z8,unescapeFragment:H8,unescapeJsonPointer:Hf,escapeFragment:B8,escapeJsonPointer:zf};function P8(t,e){e=e||{};for(var r in t)e[r]=t[r];return e}function Df(t,e,r,a){var n=a?" !== ":" === ",s=a?" || ":" && ",i=a?"!":"",o=a?"":"!";switch(t){case"null":return e+n+"null";case"array":return i+"Array.isArray("+e+")";case"object":return"("+i+e+s+"typeof "+e+n+'"object"'+s+o+"Array.isArray("+e+"))";case"integer":return"(typeof "+e+n+'"number"'+s+o+"("+e+" % 1)"+s+e+n+e+(r?s+i+"isFinite("+e+")":"")+")";case"number":return"(typeof "+e+n+'"'+t+'"'+(r?s+i+"isFinite("+e+")":"")+")";default:return"typeof "+e+n+'"'+t+'"'}}function $8(t,e,r){switch(t.length){case 1:return Df(t[0],e,r,!0);default:var a="",n=qf(t);n.array&&n.object&&(a=n.null?"(":"(!"+e+" || ",a+="typeof "+e+' !== "object")',delete n.null,delete n.array,delete n.object),n.number&&delete n.integer;for(var s in n)a+=(a?" && ":"")+Df(s,e,r,!0);return a}}var Ox=qf(["string","number","integer","boolean","null"]);function O8(t,e){if(Array.isArray(e)){for(var r=[],a=0;a=e)throw new Error("Cannot access property/index "+a+" levels up, current level is "+e);return r[e-a]}if(a>e)throw new Error("Cannot access data "+a+" levels up, current level is "+e);if(s="data"+(e-a||""),!n)return s}for(var o=s,c=n.split("/"),u=0;u{"use strict";var V8=qa();Ax.exports=G8;function G8(t){V8.copy(t,this)}});var Mx=V((vK,Nx)=>{"use strict";var Hn=Nx.exports=function(t,e,r){typeof e=="function"&&(r=e,e={}),r=e.cb||r;var a=typeof r=="function"?r:r.pre||function(){},n=r.post||function(){};Nu(e,a,n,t,"",t)};Hn.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0};Hn.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Hn.propsKeywords={definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Hn.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function Nu(t,e,r,a,n,s,i,o,c,u){if(a&&typeof a=="object"&&!Array.isArray(a)){e(a,n,s,i,o,c,u);for(var l in a){var d=a[l];if(Array.isArray(d)){if(l in Hn.arrayKeywords)for(var p=0;p{"use strict";var To=kx(),jx=Au(),Lu=qa(),Mu=Bf(),W8=Mx();qx.exports=Vn;Vn.normalizeId=Bn;Vn.fullPath=ju;Vn.url=Du;Vn.ids=Q8;Vn.inlineRef=Vf;Vn.schema=qu;function Vn(t,e,r){var a=this._refs[r];if(typeof a=="string")if(this._refs[a])a=this._refs[a];else return Vn.call(this,t,e,a);if(a=a||this._schemas[r],a instanceof Mu)return Vf(a.schema,this._opts.inlineRefs)?a.schema:a.validate||this._compile(a);var n=qu.call(this,e,r),s,i,o;return n&&(s=n.schema,e=n.root,o=n.baseId),s instanceof Mu?i=s.validate||t.call(this,s.schema,e,void 0,o):s!==void 0&&(i=Vf(s,this._opts.inlineRefs)?s:t.call(this,s,e,void 0,o)),i}function qu(t,e){var r=To.parse(e),a=Lx(r),n=ju(this._getId(t.schema));if(Object.keys(t.schema).length===0||a!==n){var s=Bn(a),i=this._refs[s];if(typeof i=="string")return K8.call(this,t,i,r);if(i instanceof Mu)i.validate||this._compile(i),t=i;else if(i=this._schemas[s],i instanceof Mu){if(i.validate||this._compile(i),s==Bn(e))return{schema:i,root:t,baseId:n};t=i}else return;if(!t.schema)return;n=ju(this._getId(t.schema))}return Dx.call(this,r,n,t.schema,t)}function K8(t,e,r){var a=qu.call(this,t,e);if(a){var n=a.schema,s=a.baseId;t=a.root;var i=this._getId(n);return i&&(s=Du(s,i)),Dx.call(this,r,s,n,t)}}var X8=Lu.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function Dx(t,e,r,a){if(t.fragment=t.fragment||"",t.fragment.slice(0,1)=="/"){for(var n=t.fragment.split("/"),s=1;s{"use strict";var Wf=Fu();Ux.exports={Validation:Fx(eL),MissingRef:Fx(Kf)};function eL(t){this.message="validation failed",this.errors=t,this.ajv=this.validation=!0}Kf.message=function(t,e){return"can't resolve reference "+e+" from id "+t};function Kf(t,e,r){this.message=r||Kf.message(t,e),this.missingRef=Wf.url(t,e),this.missingSchema=Wf.normalizeId(Wf.fullPath(this.missingRef))}function Fx(t){return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}});var Xf=V((_K,zx)=>{"use strict";zx.exports=function(t,e){e||(e={}),typeof e=="function"&&(e={cmp:e});var r=typeof e.cycles=="boolean"?e.cycles:!1,a=e.cmp&&(function(s){return function(i){return function(o,c){var u={key:o,value:i[o]},l={key:c,value:i[c]};return s(u,l)}}})(e.cmp),n=[];return(function s(i){if(i&&i.toJSON&&typeof i.toJSON=="function"&&(i=i.toJSON()),i!==void 0){if(typeof i=="number")return isFinite(i)?""+i:"null";if(typeof i!="object")return JSON.stringify(i);var o,c;if(Array.isArray(i)){for(c="[",o=0;o{"use strict";Hx.exports=function(e,r,a){var n="",s=e.schema.$async===!0,i=e.util.schemaHasRulesExcept(e.schema,e.RULES.all,"$ref"),o=e.self._getId(e.schema);if(e.opts.strictKeywords){var c=e.util.schemaUnknownRules(e.schema,e.RULES.keywords);if(c){var u="unknown keyword: "+c;if(e.opts.strictKeywords==="log")e.logger.warn(u);else throw new Error(u)}}if(e.isTop&&(n+=" var validate = ",s&&(e.async=!0,n+="async "),n+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",o&&(e.opts.sourceCode||e.opts.processCode)&&(n+=" "+("/*# sourceURL="+o+" */")+" ")),typeof e.schema=="boolean"||!(i||e.schema.$ref)){var r="false schema",l=e.level,d=e.dataLevel,p=e.schema[r],f=e.schemaPath+e.util.getProperty(r),v=e.errSchemaPath+"/"+r,w=!e.opts.allErrors,T,_="data"+(d||""),b="valid"+l;if(e.schema===!1){e.isTop?w=!0:n+=" var "+b+" = false; ";var m=m||[];m.push(n),n="",e.createErrors!==!1?(n+=" { keyword: '"+(T||"false schema")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(v)+" , params: {} ",e.opts.messages!==!1&&(n+=" , message: 'boolean schema is false' "),e.opts.verbose&&(n+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+_+" "),n+=" } "):n+=" {} ";var h=n;n=m.pop(),!e.compositeRule&&w?e.async?n+=" throw new ValidationError(["+h+"]); ":n+=" validate.errors = ["+h+"]; return false; ":n+=" var err = "+h+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else e.isTop?s?n+=" return data; ":n+=" validate.errors = null; return true; ":n+=" var "+b+" = true; ";return e.isTop&&(n+=" }; return validate; "),n}if(e.isTop){var y=e.isTop,l=e.level=0,d=e.dataLevel=0,_="data";if(e.rootId=e.resolve.fullPath(e.self._getId(e.root.schema)),e.baseId=e.baseId||e.rootId,delete e.isTop,e.dataPathArr=[""],e.schema.default!==void 0&&e.opts.useDefaults&&e.opts.strictDefaults){var g="default is ignored in the schema root";if(e.opts.strictDefaults==="log")e.logger.warn(g);else throw new Error(g)}n+=" var vErrors = null; ",n+=" var errors = 0; ",n+=" if (rootData === undefined) rootData = data; "}else{var l=e.level,d=e.dataLevel,_="data"+(d||"");if(o&&(e.baseId=e.resolve.url(e.baseId,o)),s&&!e.async)throw new Error("async schema in sync schema");n+=" var errs_"+l+" = errors;"}var b="valid"+l,w=!e.opts.allErrors,S="",E="",T,R=e.schema.type,M=Array.isArray(R);if(R&&e.opts.nullable&&e.schema.nullable===!0&&(M?R.indexOf("null")==-1&&(R=R.concat("null")):R!="null"&&(R=[R,"null"],M=!0)),M&&R.length==1&&(R=R[0],M=!1),e.schema.$ref&&i){if(e.opts.extendRefs=="fail")throw new Error('$ref: validation keywords used in schema at path "'+e.errSchemaPath+'" (see option extendRefs)');e.opts.extendRefs!==!0&&(i=!1,e.logger.warn('$ref: keywords ignored in schema at path "'+e.errSchemaPath+'"'))}if(e.schema.$comment&&e.opts.$comment&&(n+=" "+e.RULES.all.$comment.code(e,"$comment")),R){if(e.opts.coerceTypes)var j=e.util.coerceToTypes(e.opts.coerceTypes,R);var q=e.RULES.types[R];if(j||M||q===!0||q&&!Ne(q)){var f=e.schemaPath+".type",v=e.errSchemaPath+"/type",f=e.schemaPath+".type",v=e.errSchemaPath+"/type",H=M?"checkDataTypes":"checkDataType";if(n+=" if ("+e.util[H](R,_,e.opts.strictNumbers,!0)+") { ",j){var N="dataType"+l,W="coerced"+l;n+=" var "+N+" = typeof "+_+"; var "+W+" = undefined; ",e.opts.coerceTypes=="array"&&(n+=" if ("+N+" == 'object' && Array.isArray("+_+") && "+_+".length == 1) { "+_+" = "+_+"[0]; "+N+" = typeof "+_+"; if ("+e.util.checkDataType(e.schema.type,_,e.opts.strictNumbers)+") "+W+" = "+_+"; } "),n+=" if ("+W+" !== undefined) ; ";var oe=j;if(oe)for(var he,ae=-1,re=oe.length-1;ae{"use strict";var zu=Fu(),Bu=qa(),Vx=Uu(),tL=Xf(),Bx=Jf(),rL=Bu.ucs2length,nL=Au(),aL=Vx.Validation;Zx.exports=Yf;function Yf(t,e,r,a){var n=this,s=this._opts,i=[void 0],o={},c=[],u={},l=[],d={},p=[];e=e||{schema:t,refVal:i,refs:o};var f=sL.call(this,t,e,a),v=this._compilations[f.index];if(f.compiling)return v.callValidate=g;var _=this._formats,m=this.RULES;try{var h=b(t,e,r,a);v.validate=h;var y=v.callValidate;return y&&(y.schema=h.schema,y.errors=null,y.refs=h.refs,y.refVal=h.refVal,y.root=h.root,y.$async=h.$async,s.sourceCode&&(y.source=h.source)),h}finally{iL.call(this,t,e,a)}function g(){var H=v.validate,N=H.apply(this,arguments);return g.errors=H.errors,N}function b(H,N,W,oe){var he=!N||N&&N.schema==H;if(N.schema!=e.schema)return Yf.call(n,H,N,W,oe);var ae=H.$async===!0,re=Bx({isTop:!0,schema:H,isRoot:he,baseId:oe,root:N,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:Vx.MissingRef,RULES:m,validate:Bx,util:Bu,resolve:zu,resolveRef:w,usePattern:M,useDefault:j,useCustomRule:q,opts:s,formats:_,logger:n.logger,self:n});re=Hu(i,uL)+Hu(c,oL)+Hu(l,cL)+Hu(p,lL)+re,s.processCode&&(re=s.processCode(re,H));var U;try{var $=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",re);U=$(n,m,_,e,i,l,p,nL,rL,aL),i[0]=U}catch(z){throw n.logger.error("Error compiling schema, function code:",re),z}return U.schema=H,U.errors=null,U.refs=o,U.refVal=i,U.root=he?U:N,ae&&(U.$async=!0),s.sourceCode===!0&&(U.source={code:re,patterns:c,defaults:l}),U}function w(H,N,W){N=zu.url(H,N);var oe=o[N],he,ae;if(oe!==void 0)return he=i[oe],ae="refVal["+oe+"]",R(he,ae);if(!W&&e.refs){var re=e.refs[N];if(re!==void 0)return he=e.refVal[re],ae=S(N,he),R(he,ae)}ae=S(N);var U=zu.call(n,b,e,N);if(U===void 0){var $=r&&r[N];$&&(U=zu.inlineRef($,s.inlineRefs)?$:Yf.call(n,$,e,r,H))}if(U===void 0)E(N);else return T(N,U),R(U,ae)}function S(H,N){var W=i.length;return i[W]=N,o[H]=W,"refVal"+W}function E(H){delete o[H]}function T(H,N){var W=o[H];i[W]=N}function R(H,N){return typeof H=="object"||typeof H=="boolean"?{code:N,schema:H,inline:!0}:{code:N,$async:H&&!!H.$async}}function M(H){var N=u[H];return N===void 0&&(N=u[H]=c.length,c[N]=H),"pattern"+N}function j(H){switch(typeof H){case"boolean":case"number":return""+H;case"string":return Bu.toQuotedString(H);case"object":if(H===null)return"null";var N=tL(H),W=d[N];return W===void 0&&(W=d[N]=l.length,l[W]=H),"default"+W}}function q(H,N,W,oe){if(n._opts.validateSchema!==!1){var he=H.definition.dependencies;if(he&&!he.every(function(D){return Object.prototype.hasOwnProperty.call(W,D)}))throw new Error("parent schema must have all required keywords: "+he.join(","));var ae=H.definition.validateSchema;if(ae){var re=ae(N);if(!re){var U="keyword schema is invalid: "+n.errorsText(ae.errors);if(n._opts.validateSchema=="log")n.logger.error(U);else throw new Error(U)}}}var $=H.definition.compile,z=H.definition.inline,A=H.definition.macro,x;if($)x=$.call(n,N,W,oe);else if(A)x=A.call(n,N,W,oe),s.validateSchema!==!1&&n.validateSchema(x,!0);else if(z)x=z.call(n,oe,H.keyword,N,W);else if(x=H.definition.validate,!x)return;if(x===void 0)throw new Error('custom keyword "'+H.keyword+'"failed to compile');var k=p.length;return p[k]=x,{code:"customRule"+k,validate:x}}}function sL(t,e,r){var a=Gx.call(this,t,e,r);return a>=0?{index:a,compiling:!0}:(a=this._compilations.length,this._compilations[a]={schema:t,root:e,baseId:r},{index:a,compiling:!1})}function iL(t,e,r){var a=Gx.call(this,t,e,r);a>=0&&this._compilations.splice(a,1)}function Gx(t,e,r){for(var a=0;a{"use strict";var Vu=Kx.exports=function(){this._cache={}};Vu.prototype.put=function(e,r){this._cache[e]=r};Vu.prototype.get=function(e){return this._cache[e]};Vu.prototype.del=function(e){delete this._cache[e]};Vu.prototype.clear=function(){this._cache={}}});var cw=V((wK,ow)=>{"use strict";var dL=qa(),pL=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,fL=[0,31,28,31,30,31,30,31,31,30,31,30,31],mL=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,Jx=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,hL=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,vL=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,Yx=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,Qx=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,ew=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,tw=/^(?:\/(?:[^~/]|~0|~1)*)*$/,rw=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,nw=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;ow.exports=Gu;function Gu(t){return t=t=="full"?"full":"fast",dL.copy(Gu[t])}Gu.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":Yx,url:Qx,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:Jx,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:iw,uuid:ew,"json-pointer":tw,"json-pointer-uri-fragment":rw,"relative-json-pointer":nw};Gu.full={date:aw,time:sw,"date-time":_L,uri:SL,"uri-reference":vL,"uri-template":Yx,url:Qx,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:Jx,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:iw,uuid:ew,"json-pointer":tw,"json-pointer-uri-fragment":rw,"relative-json-pointer":nw};function gL(t){return t%4===0&&(t%100!==0||t%400===0)}function aw(t){var e=t.match(pL);if(!e)return!1;var r=+e[1],a=+e[2],n=+e[3];return a>=1&&a<=12&&n>=1&&n<=(a==2&&gL(r)?29:fL[a])}function sw(t,e){var r=t.match(mL);if(!r)return!1;var a=r[1],n=r[2],s=r[3],i=r[5];return(a<=23&&n<=59&&s<=59||a==23&&n==59&&s==60)&&(!e||i)}var yL=/t|\s/i;function _L(t){var e=t.split(yL);return e.length==2&&aw(e[0])&&sw(e[1],!0)}var bL=/\/|:/;function SL(t){return bL.test(t)&&hL.test(t)}var xL=/[^\\]\\Z/;function iw(t){if(xL.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var lw=V((EK,uw)=>{"use strict";uw.exports=function(e,r,a){var n=" ",s=e.level,i=e.dataLevel,o=e.schema[r],c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,l="data"+(i||""),d="valid"+s,p,f;if(o=="#"||o=="#/")e.isRoot?(p=e.async,f="validate"):(p=e.root.schema.$async===!0,f="root.refVal[0]");else{var v=e.resolveRef(e.baseId,o,e.isRoot);if(v===void 0){var _=e.MissingRefError.message(e.baseId,o);if(e.opts.missingRefs=="fail"){e.logger.error(_);var m=m||[];m.push(n),n="",e.createErrors!==!1?(n+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { ref: '"+e.util.escapeQuotes(o)+"' } ",e.opts.messages!==!1&&(n+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(o)+"' "),e.opts.verbose&&(n+=" , schema: "+e.util.toQuotedString(o)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+l+" "),n+=" } "):n+=" {} ";var h=n;n=m.pop(),!e.compositeRule&&u?e.async?n+=" throw new ValidationError(["+h+"]); ":n+=" validate.errors = ["+h+"]; return false; ":n+=" var err = "+h+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u&&(n+=" if (false) { ")}else if(e.opts.missingRefs=="ignore")e.logger.warn(_),u&&(n+=" if (true) { ");else throw new e.MissingRefError(e.baseId,o,_)}else if(v.inline){var y=e.util.copy(e);y.level++;var g="valid"+y.level;y.schema=v.schema,y.schemaPath="",y.errSchemaPath=o;var b=e.validate(y).replace(/validate\.schema/g,v.code);n+=" "+b+" ",u&&(n+=" if ("+g+") { ")}else p=v.$async===!0||e.async&&v.$async!==!1,f=v.code}if(f){var m=m||[];m.push(n),n="",e.opts.passContext?n+=" "+f+".call(this, ":n+=" "+f+"( ",n+=" "+l+", (dataPath || '')",e.errorPath!='""'&&(n+=" + "+e.errorPath);var w=i?"data"+(i-1||""):"parentData",S=i?e.dataPathArr[i]:"parentDataProperty";n+=" , "+w+" , "+S+", rootData) ";var E=n;if(n=m.pop(),p){if(!e.async)throw new Error("async schema referenced by sync schema");u&&(n+=" var "+d+"; "),n+=" try { await "+E+"; ",u&&(n+=" "+d+" = true; "),n+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",u&&(n+=" "+d+" = false; "),n+=" } ",u&&(n+=" if ("+d+") { ")}else n+=" if (!"+E+") { if (vErrors === null) vErrors = "+f+".errors; else vErrors = vErrors.concat("+f+".errors); errors = vErrors.length; } ",u&&(n+=" else { ")}return n}});var pw=V((TK,dw)=>{"use strict";dw.exports=function(e,r,a){var n=" ",s=e.schema[r],i=e.schemaPath+e.util.getProperty(r),o=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u=e.util.copy(e),l="";u.level++;var d="valid"+u.level,p=u.baseId,f=!0,v=s;if(v)for(var _,m=-1,h=v.length-1;m0||_===!1:e.util.schemaHasRules(_,e.RULES.all))&&(f=!1,u.schema=_,u.schemaPath=i+"["+m+"]",u.errSchemaPath=o+"/"+m,n+=" "+e.validate(u)+" ",u.baseId=p,c&&(n+=" if ("+d+") { ",l+="}"));return c&&(f?n+=" if (true) { ":n+=" "+l.slice(0,-1)+" "),n}});var mw=V((kK,fw)=>{"use strict";fw.exports=function(e,r,a){var n=" ",s=e.level,i=e.dataLevel,o=e.schema[r],c=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,d="data"+(i||""),p="valid"+s,f="errs__"+s,v=e.util.copy(e),_="";v.level++;var m="valid"+v.level,h=o.every(function(T){return e.opts.strictKeywords?typeof T=="object"&&Object.keys(T).length>0||T===!1:e.util.schemaHasRules(T,e.RULES.all)});if(h){var y=v.baseId;n+=" var "+f+" = errors; var "+p+" = false; ";var g=e.compositeRule;e.compositeRule=v.compositeRule=!0;var b=o;if(b)for(var w,S=-1,E=b.length-1;S{"use strict";hw.exports=function(e,r,a){var n=" ",s=e.schema[r],i=e.errSchemaPath+"/"+r,o=!e.opts.allErrors,c=e.util.toQuotedString(s);return e.opts.$comment===!0?n+=" console.log("+c+");":typeof e.opts.$comment=="function"&&(n+=" self._opts.$comment("+c+", "+e.util.toQuotedString(i)+", validate.root.schema);"),n}});var yw=V((PK,gw)=>{"use strict";gw.exports=function(e,r,a){var n=" ",s=e.level,i=e.dataLevel,o=e.schema[r],c=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,d="data"+(i||""),p="valid"+s,f=e.opts.$data&&o&&o.$data,v;f?(n+=" var schema"+s+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ",v="schema"+s):v=o,f||(n+=" var schema"+s+" = validate.schema"+c+";"),n+="var "+p+" = equal("+d+", schema"+s+"); if (!"+p+") { ";var _=_||[];_.push(n),n="",e.createErrors!==!1?(n+=" { keyword: 'const' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { allowedValue: schema"+s+" } ",e.opts.messages!==!1&&(n+=" , message: 'should be equal to constant' "),e.opts.verbose&&(n+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var m=n;return n=_.pop(),!e.compositeRule&&l?e.async?n+=" throw new ValidationError(["+m+"]); ":n+=" validate.errors = ["+m+"]; return false; ":n+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" }",l&&(n+=" else { "),n}});var bw=V(($K,_w)=>{"use strict";_w.exports=function(e,r,a){var n=" ",s=e.level,i=e.dataLevel,o=e.schema[r],c=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,d="data"+(i||""),p="valid"+s,f="errs__"+s,v=e.util.copy(e),_="";v.level++;var m="valid"+v.level,h="i"+s,y=v.dataLevel=e.dataLevel+1,g="data"+y,b=e.baseId,w=e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all);if(n+="var "+f+" = errors;var "+p+";",w){var S=e.compositeRule;e.compositeRule=v.compositeRule=!0,v.schema=o,v.schemaPath=c,v.errSchemaPath=u,n+=" var "+m+" = false; for (var "+h+" = 0; "+h+" < "+d+".length; "+h+"++) { ",v.errorPath=e.util.getPathExpr(e.errorPath,h,e.opts.jsonPointers,!0);var E=d+"["+h+"]";v.dataPathArr[y]=h;var T=e.validate(v);v.baseId=b,e.util.varOccurences(T,g)<2?n+=" "+e.util.varReplace(T,g,E)+" ":n+=" var "+g+" = "+E+"; "+T+" ",n+=" if ("+m+") break; } ",e.compositeRule=v.compositeRule=S,n+=" "+_+" if (!"+m+") {"}else n+=" if ("+d+".length == 0) {";var R=R||[];R.push(n),n="",e.createErrors!==!1?(n+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: {} ",e.opts.messages!==!1&&(n+=" , message: 'should contain a valid item' "),e.opts.verbose&&(n+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var M=n;return n=R.pop(),!e.compositeRule&&l?e.async?n+=" throw new ValidationError(["+M+"]); ":n+=" validate.errors = ["+M+"]; return false; ":n+=" var err = "+M+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { ",w&&(n+=" errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; } "),e.opts.allErrors&&(n+=" } "),n}});var xw=V((OK,Sw)=>{"use strict";Sw.exports=function(e,r,a){var n=" ",s=e.level,i=e.dataLevel,o=e.schema[r],c=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,d="data"+(i||""),p="errs__"+s,f=e.util.copy(e),v="";f.level++;var _="valid"+f.level,m={},h={},y=e.opts.ownProperties;for(S in o)if(S!="__proto__"){var g=o[S],b=Array.isArray(g)?h:m;b[S]=g}n+="var "+p+" = errors;";var w=e.errorPath;n+="var missing"+s+";";for(var S in h)if(b=h[S],b.length){if(n+=" if ( "+d+e.util.getProperty(S)+" !== undefined ",y&&(n+=" && Object.prototype.hasOwnProperty.call("+d+", '"+e.util.escapeQuotes(S)+"') "),l){n+=" && ( ";var E=b;if(E)for(var T,R=-1,M=E.length-1;R0||g===!1:e.util.schemaHasRules(g,e.RULES.all))&&(n+=" "+_+" = true; if ( "+d+e.util.getProperty(S)+" !== undefined ",y&&(n+=" && Object.prototype.hasOwnProperty.call("+d+", '"+e.util.escapeQuotes(S)+"') "),n+=") { ",f.schema=g,f.schemaPath=c+e.util.getProperty(S),f.errSchemaPath=u+"/"+e.util.escapeFragment(S),n+=" "+e.validate(f)+" ",f.baseId=U,n+=" } ",l&&(n+=" if ("+_+") { ",v+="}"))}return l&&(n+=" "+v+" if ("+p+" == errors) {"),n}});var Ew=V((CK,ww)=>{"use strict";ww.exports=function(e,r,a){var n=" ",s=e.level,i=e.dataLevel,o=e.schema[r],c=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,d="data"+(i||""),p="valid"+s,f=e.opts.$data&&o&&o.$data,v;f?(n+=" var schema"+s+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ",v="schema"+s):v=o;var _="i"+s,m="schema"+s;f||(n+=" var "+m+" = validate.schema"+c+";"),n+="var "+p+";",f&&(n+=" if (schema"+s+" === undefined) "+p+" = true; else if (!Array.isArray(schema"+s+")) "+p+" = false; else {"),n+=""+p+" = false;for (var "+_+"=0; "+_+"<"+m+".length; "+_+"++) if (equal("+d+", "+m+"["+_+"])) { "+p+" = true; break; }",f&&(n+=" } "),n+=" if (!"+p+") { ";var h=h||[];h.push(n),n="",e.createErrors!==!1?(n+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { allowedValues: schema"+s+" } ",e.opts.messages!==!1&&(n+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(n+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var y=n;return n=h.pop(),!e.compositeRule&&l?e.async?n+=" throw new ValidationError(["+y+"]); ":n+=" validate.errors = ["+y+"]; return false; ":n+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" }",l&&(n+=" else { "),n}});var kw=V((IK,Tw)=>{"use strict";Tw.exports=function(e,r,a){var n=" ",s=e.level,i=e.dataLevel,o=e.schema[r],c=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,d="data"+(i||"");if(e.opts.format===!1)return l&&(n+=" if (true) { "),n;var p=e.opts.$data&&o&&o.$data,f;p?(n+=" var schema"+s+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ",f="schema"+s):f=o;var v=e.opts.unknownFormats,_=Array.isArray(v);if(p){var m="format"+s,h="isObject"+s,y="formatType"+s;n+=" var "+m+" = formats["+f+"]; var "+h+" = typeof "+m+" == 'object' && !("+m+" instanceof RegExp) && "+m+".validate; var "+y+" = "+h+" && "+m+".type || 'string'; if ("+h+") { ",e.async&&(n+=" var async"+s+" = "+m+".async; "),n+=" "+m+" = "+m+".validate; } if ( ",p&&(n+=" ("+f+" !== undefined && typeof "+f+" != 'string') || "),n+=" (",v!="ignore"&&(n+=" ("+f+" && !"+m+" ",_&&(n+=" && self._opts.unknownFormats.indexOf("+f+") == -1 "),n+=") || "),n+=" ("+m+" && "+y+" == '"+a+"' && !(typeof "+m+" == 'function' ? ",e.async?n+=" (async"+s+" ? await "+m+"("+d+") : "+m+"("+d+")) ":n+=" "+m+"("+d+") ",n+=" : "+m+".test("+d+"))))) {"}else{var m=e.formats[o];if(!m){if(v=="ignore")return e.logger.warn('unknown format "'+o+'" ignored in schema at path "'+e.errSchemaPath+'"'),l&&(n+=" if (true) { "),n;if(_&&v.indexOf(o)>=0)return l&&(n+=" if (true) { "),n;throw new Error('unknown format "'+o+'" is used in schema at path "'+e.errSchemaPath+'"')}var h=typeof m=="object"&&!(m instanceof RegExp)&&m.validate,y=h&&m.type||"string";if(h){var g=m.async===!0;m=m.validate}if(y!=a)return l&&(n+=" if (true) { "),n;if(g){if(!e.async)throw new Error("async format in sync schema");var b="formats"+e.util.getProperty(o)+".validate";n+=" if (!(await "+b+"("+d+"))) { "}else{n+=" if (! ";var b="formats"+e.util.getProperty(o);h&&(b+=".validate"),typeof m=="function"?n+=" "+b+"("+d+") ":n+=" "+b+".test("+d+") ",n+=") { "}}var w=w||[];w.push(n),n="",e.createErrors!==!1?(n+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { format: ",p?n+=""+f:n+=""+e.util.toQuotedString(o),n+=" } ",e.opts.messages!==!1&&(n+=` , message: 'should match format "`,p?n+="' + "+f+" + '":n+=""+e.util.escapeQuotes(o),n+=`"' `),e.opts.verbose&&(n+=" , schema: ",p?n+="validate.schema"+c:n+=""+e.util.toQuotedString(o),n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var S=n;return n=w.pop(),!e.compositeRule&&l?e.async?n+=" throw new ValidationError(["+S+"]); ":n+=" validate.errors = ["+S+"]; return false; ":n+=" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",l&&(n+=" else { "),n}});var Pw=V((AK,Rw)=>{"use strict";Rw.exports=function(e,r,a){var n=" ",s=e.level,i=e.dataLevel,o=e.schema[r],c=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,d="data"+(i||""),p="valid"+s,f="errs__"+s,v=e.util.copy(e);v.level++;var _="valid"+v.level,m=e.schema.then,h=e.schema.else,y=m!==void 0&&(e.opts.strictKeywords?typeof m=="object"&&Object.keys(m).length>0||m===!1:e.util.schemaHasRules(m,e.RULES.all)),g=h!==void 0&&(e.opts.strictKeywords?typeof h=="object"&&Object.keys(h).length>0||h===!1:e.util.schemaHasRules(h,e.RULES.all)),b=v.baseId;if(y||g){var w;v.createErrors=!1,v.schema=o,v.schemaPath=c,v.errSchemaPath=u,n+=" var "+f+" = errors; var "+p+" = true; ";var S=e.compositeRule;e.compositeRule=v.compositeRule=!0,n+=" "+e.validate(v)+" ",v.baseId=b,v.createErrors=!0,n+=" errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; } ",e.compositeRule=v.compositeRule=S,y?(n+=" if ("+_+") { ",v.schema=e.schema.then,v.schemaPath=e.schemaPath+".then",v.errSchemaPath=e.errSchemaPath+"/then",n+=" "+e.validate(v)+" ",v.baseId=b,n+=" "+p+" = "+_+"; ",y&&g?(w="ifClause"+s,n+=" var "+w+" = 'then'; "):w="'then'",n+=" } ",g&&(n+=" else { ")):n+=" if (!"+_+") { ",g&&(v.schema=e.schema.else,v.schemaPath=e.schemaPath+".else",v.errSchemaPath=e.errSchemaPath+"/else",n+=" "+e.validate(v)+" ",v.baseId=b,n+=" "+p+" = "+_+"; ",y&&g?(w="ifClause"+s,n+=" var "+w+" = 'else'; "):w="'else'",n+=" } "),n+=" if (!"+p+") { var err = ",e.createErrors!==!1?(n+=" { keyword: 'if' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { failingKeyword: "+w+" } ",e.opts.messages!==!1&&(n+=` , message: 'should match "' + `+w+` + '" schema' `),e.opts.verbose&&(n+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&l&&(e.async?n+=" throw new ValidationError(vErrors); ":n+=" validate.errors = vErrors; return false; "),n+=" } ",l&&(n+=" else { ")}else l&&(n+=" if (true) { ");return n}});var Ow=V((NK,$w)=>{"use strict";$w.exports=function(e,r,a){var n=" ",s=e.level,i=e.dataLevel,o=e.schema[r],c=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,d="data"+(i||""),p="valid"+s,f="errs__"+s,v=e.util.copy(e),_="";v.level++;var m="valid"+v.level,h="i"+s,y=v.dataLevel=e.dataLevel+1,g="data"+y,b=e.baseId;if(n+="var "+f+" = errors;var "+p+";",Array.isArray(o)){var w=e.schema.additionalItems;if(w===!1){n+=" "+p+" = "+d+".length <= "+o.length+"; ";var S=u;u=e.errSchemaPath+"/additionalItems",n+=" if (!"+p+") { ";var E=E||[];E.push(n),n="",e.createErrors!==!1?(n+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { limit: "+o.length+" } ",e.opts.messages!==!1&&(n+=" , message: 'should NOT have more than "+o.length+" items' "),e.opts.verbose&&(n+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var T=n;n=E.pop(),!e.compositeRule&&l?e.async?n+=" throw new ValidationError(["+T+"]); ":n+=" validate.errors = ["+T+"]; return false; ":n+=" var err = "+T+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",u=S,l&&(_+="}",n+=" else { ")}var R=o;if(R){for(var M,j=-1,q=R.length-1;j0||M===!1:e.util.schemaHasRules(M,e.RULES.all)){n+=" "+m+" = true; if ("+d+".length > "+j+") { ";var H=d+"["+j+"]";v.schema=M,v.schemaPath=c+"["+j+"]",v.errSchemaPath=u+"/"+j,v.errorPath=e.util.getPathExpr(e.errorPath,j,e.opts.jsonPointers,!0),v.dataPathArr[y]=j;var N=e.validate(v);v.baseId=b,e.util.varOccurences(N,g)<2?n+=" "+e.util.varReplace(N,g,H)+" ":n+=" var "+g+" = "+H+"; "+N+" ",n+=" } ",l&&(n+=" if ("+m+") { ",_+="}")}}if(typeof w=="object"&&(e.opts.strictKeywords?typeof w=="object"&&Object.keys(w).length>0||w===!1:e.util.schemaHasRules(w,e.RULES.all))){v.schema=w,v.schemaPath=e.schemaPath+".additionalItems",v.errSchemaPath=e.errSchemaPath+"/additionalItems",n+=" "+m+" = true; if ("+d+".length > "+o.length+") { for (var "+h+" = "+o.length+"; "+h+" < "+d+".length; "+h+"++) { ",v.errorPath=e.util.getPathExpr(e.errorPath,h,e.opts.jsonPointers,!0);var H=d+"["+h+"]";v.dataPathArr[y]=h;var N=e.validate(v);v.baseId=b,e.util.varOccurences(N,g)<2?n+=" "+e.util.varReplace(N,g,H)+" ":n+=" var "+g+" = "+H+"; "+N+" ",l&&(n+=" if (!"+m+") break; "),n+=" } } ",l&&(n+=" if ("+m+") { ",_+="}")}}else if(e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all)){v.schema=o,v.schemaPath=c,v.errSchemaPath=u,n+=" for (var "+h+" = 0; "+h+" < "+d+".length; "+h+"++) { ",v.errorPath=e.util.getPathExpr(e.errorPath,h,e.opts.jsonPointers,!0);var H=d+"["+h+"]";v.dataPathArr[y]=h;var N=e.validate(v);v.baseId=b,e.util.varOccurences(N,g)<2?n+=" "+e.util.varReplace(N,g,H)+" ":n+=" var "+g+" = "+H+"; "+N+" ",l&&(n+=" if (!"+m+") break; "),n+=" }"}return l&&(n+=" "+_+" if ("+f+" == errors) {"),n}});var Qf=V((MK,Cw)=>{"use strict";Cw.exports=function(e,r,a){var n=" ",s=e.level,i=e.dataLevel,o=e.schema[r],c=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,b,d="data"+(i||""),p=e.opts.$data&&o&&o.$data,f;p?(n+=" var schema"+s+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ",f="schema"+s):f=o;var v=r=="maximum",_=v?"exclusiveMaximum":"exclusiveMinimum",m=e.schema[_],h=e.opts.$data&&m&&m.$data,y=v?"<":">",g=v?">":"<",b=void 0;if(!(p||typeof o=="number"||o===void 0))throw new Error(r+" must be number");if(!(h||m===void 0||typeof m=="number"||typeof m=="boolean"))throw new Error(_+" must be number or boolean");if(h){var w=e.util.getData(m.$data,i,e.dataPathArr),S="exclusive"+s,E="exclType"+s,T="exclIsNumber"+s,R="op"+s,M="' + "+R+" + '";n+=" var schemaExcl"+s+" = "+w+"; ",w="schemaExcl"+s,n+=" var "+S+"; var "+E+" = typeof "+w+"; if ("+E+" != 'boolean' && "+E+" != 'undefined' && "+E+" != 'number') { ";var b=_,j=j||[];j.push(n),n="",e.createErrors!==!1?(n+=" { keyword: '"+(b||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: {} ",e.opts.messages!==!1&&(n+=" , message: '"+_+" should be boolean' "),e.opts.verbose&&(n+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var q=n;n=j.pop(),!e.compositeRule&&l?e.async?n+=" throw new ValidationError(["+q+"]); ":n+=" validate.errors = ["+q+"]; return false; ":n+=" var err = "+q+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else if ( ",p&&(n+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),n+=" "+E+" == 'number' ? ( ("+S+" = "+f+" === undefined || "+w+" "+y+"= "+f+") ? "+d+" "+g+"= "+w+" : "+d+" "+g+" "+f+" ) : ( ("+S+" = "+w+" === true) ? "+d+" "+g+"= "+f+" : "+d+" "+g+" "+f+" ) || "+d+" !== "+d+") { var op"+s+" = "+S+" ? '"+y+"' : '"+y+"='; ",o===void 0&&(b=_,u=e.errSchemaPath+"/"+_,f=w,p=h)}else{var T=typeof m=="number",M=y;if(T&&p){var R="'"+M+"'";n+=" if ( ",p&&(n+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),n+=" ( "+f+" === undefined || "+m+" "+y+"= "+f+" ? "+d+" "+g+"= "+m+" : "+d+" "+g+" "+f+" ) || "+d+" !== "+d+") { "}else{T&&o===void 0?(S=!0,b=_,u=e.errSchemaPath+"/"+_,f=m,g+="="):(T&&(f=Math[v?"min":"max"](m,o)),m===(T?f:!0)?(S=!0,b=_,u=e.errSchemaPath+"/"+_,g+="="):(S=!1,M+="="));var R="'"+M+"'";n+=" if ( ",p&&(n+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),n+=" "+d+" "+g+" "+f+" || "+d+" !== "+d+") { "}}b=b||r;var j=j||[];j.push(n),n="",e.createErrors!==!1?(n+=" { keyword: '"+(b||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { comparison: "+R+", limit: "+f+", exclusive: "+S+" } ",e.opts.messages!==!1&&(n+=" , message: 'should be "+M+" ",p?n+="' + "+f:n+=""+f+"'"),e.opts.verbose&&(n+=" , schema: ",p?n+="validate.schema"+c:n+=""+o,n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var q=n;return n=j.pop(),!e.compositeRule&&l?e.async?n+=" throw new ValidationError(["+q+"]); ":n+=" validate.errors = ["+q+"]; return false; ":n+=" var err = "+q+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",l&&(n+=" else { "),n}});var em=V((jK,Iw)=>{"use strict";Iw.exports=function(e,r,a){var n=" ",s=e.level,i=e.dataLevel,o=e.schema[r],c=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,_,d="data"+(i||""),p=e.opts.$data&&o&&o.$data,f;if(p?(n+=" var schema"+s+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ",f="schema"+s):f=o,!(p||typeof o=="number"))throw new Error(r+" must be number");var v=r=="maxItems"?">":"<";n+="if ( ",p&&(n+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),n+=" "+d+".length "+v+" "+f+") { ";var _=r,m=m||[];m.push(n),n="",e.createErrors!==!1?(n+=" { keyword: '"+(_||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { limit: "+f+" } ",e.opts.messages!==!1&&(n+=" , message: 'should NOT have ",r=="maxItems"?n+="more":n+="fewer",n+=" than ",p?n+="' + "+f+" + '":n+=""+o,n+=" items' "),e.opts.verbose&&(n+=" , schema: ",p?n+="validate.schema"+c:n+=""+o,n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var h=n;return n=m.pop(),!e.compositeRule&&l?e.async?n+=" throw new ValidationError(["+h+"]); ":n+=" validate.errors = ["+h+"]; return false; ":n+=" var err = "+h+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+="} ",l&&(n+=" else { "),n}});var tm=V((DK,Aw)=>{"use strict";Aw.exports=function(e,r,a){var n=" ",s=e.level,i=e.dataLevel,o=e.schema[r],c=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,_,d="data"+(i||""),p=e.opts.$data&&o&&o.$data,f;if(p?(n+=" var schema"+s+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ",f="schema"+s):f=o,!(p||typeof o=="number"))throw new Error(r+" must be number");var v=r=="maxLength"?">":"<";n+="if ( ",p&&(n+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),e.opts.unicode===!1?n+=" "+d+".length ":n+=" ucs2length("+d+") ",n+=" "+v+" "+f+") { ";var _=r,m=m||[];m.push(n),n="",e.createErrors!==!1?(n+=" { keyword: '"+(_||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { limit: "+f+" } ",e.opts.messages!==!1&&(n+=" , message: 'should NOT be ",r=="maxLength"?n+="longer":n+="shorter",n+=" than ",p?n+="' + "+f+" + '":n+=""+o,n+=" characters' "),e.opts.verbose&&(n+=" , schema: ",p?n+="validate.schema"+c:n+=""+o,n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var h=n;return n=m.pop(),!e.compositeRule&&l?e.async?n+=" throw new ValidationError(["+h+"]); ":n+=" validate.errors = ["+h+"]; return false; ":n+=" var err = "+h+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+="} ",l&&(n+=" else { "),n}});var rm=V((LK,Nw)=>{"use strict";Nw.exports=function(e,r,a){var n=" ",s=e.level,i=e.dataLevel,o=e.schema[r],c=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,_,d="data"+(i||""),p=e.opts.$data&&o&&o.$data,f;if(p?(n+=" var schema"+s+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ",f="schema"+s):f=o,!(p||typeof o=="number"))throw new Error(r+" must be number");var v=r=="maxProperties"?">":"<";n+="if ( ",p&&(n+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),n+=" Object.keys("+d+").length "+v+" "+f+") { ";var _=r,m=m||[];m.push(n),n="",e.createErrors!==!1?(n+=" { keyword: '"+(_||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { limit: "+f+" } ",e.opts.messages!==!1&&(n+=" , message: 'should NOT have ",r=="maxProperties"?n+="more":n+="fewer",n+=" than ",p?n+="' + "+f+" + '":n+=""+o,n+=" properties' "),e.opts.verbose&&(n+=" , schema: ",p?n+="validate.schema"+c:n+=""+o,n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var h=n;return n=m.pop(),!e.compositeRule&&l?e.async?n+=" throw new ValidationError(["+h+"]); ":n+=" validate.errors = ["+h+"]; return false; ":n+=" var err = "+h+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+="} ",l&&(n+=" else { "),n}});var jw=V((qK,Mw)=>{"use strict";Mw.exports=function(e,r,a){var n=" ",s=e.level,i=e.dataLevel,o=e.schema[r],c=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,d="data"+(i||""),p=e.opts.$data&&o&&o.$data,f;if(p?(n+=" var schema"+s+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ",f="schema"+s):f=o,!(p||typeof o=="number"))throw new Error(r+" must be number");n+="var division"+s+";if (",p&&(n+=" "+f+" !== undefined && ( typeof "+f+" != 'number' || "),n+=" (division"+s+" = "+d+" / "+f+", ",e.opts.multipleOfPrecision?n+=" Math.abs(Math.round(division"+s+") - division"+s+") > 1e-"+e.opts.multipleOfPrecision+" ":n+=" division"+s+" !== parseInt(division"+s+") ",n+=" ) ",p&&(n+=" ) "),n+=" ) { ";var v=v||[];v.push(n),n="",e.createErrors!==!1?(n+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { multipleOf: "+f+" } ",e.opts.messages!==!1&&(n+=" , message: 'should be multiple of ",p?n+="' + "+f:n+=""+f+"'"),e.opts.verbose&&(n+=" , schema: ",p?n+="validate.schema"+c:n+=""+o,n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var _=n;return n=v.pop(),!e.compositeRule&&l?e.async?n+=" throw new ValidationError(["+_+"]); ":n+=" validate.errors = ["+_+"]; return false; ":n+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+="} ",l&&(n+=" else { "),n}});var Lw=V((FK,Dw)=>{"use strict";Dw.exports=function(e,r,a){var n=" ",s=e.level,i=e.dataLevel,o=e.schema[r],c=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,d="data"+(i||""),p="errs__"+s,f=e.util.copy(e);f.level++;var v="valid"+f.level;if(e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all)){f.schema=o,f.schemaPath=c,f.errSchemaPath=u,n+=" var "+p+" = errors; ";var _=e.compositeRule;e.compositeRule=f.compositeRule=!0,f.createErrors=!1;var m;f.opts.allErrors&&(m=f.opts.allErrors,f.opts.allErrors=!1),n+=" "+e.validate(f)+" ",f.createErrors=!0,m&&(f.opts.allErrors=m),e.compositeRule=f.compositeRule=_,n+=" if ("+v+") { ";var h=h||[];h.push(n),n="",e.createErrors!==!1?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: {} ",e.opts.messages!==!1&&(n+=" , message: 'should NOT be valid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var y=n;n=h.pop(),!e.compositeRule&&l?e.async?n+=" throw new ValidationError(["+y+"]); ":n+=" validate.errors = ["+y+"]; return false; ":n+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { errors = "+p+"; if (vErrors !== null) { if ("+p+") vErrors.length = "+p+"; else vErrors = null; } ",e.opts.allErrors&&(n+=" } ")}else n+=" var err = ",e.createErrors!==!1?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: {} ",e.opts.messages!==!1&&(n+=" , message: 'should NOT be valid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l&&(n+=" if (false) { ");return n}});var Fw=V((UK,qw)=>{"use strict";qw.exports=function(e,r,a){var n=" ",s=e.level,i=e.dataLevel,o=e.schema[r],c=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,d="data"+(i||""),p="valid"+s,f="errs__"+s,v=e.util.copy(e),_="";v.level++;var m="valid"+v.level,h=v.baseId,y="prevValid"+s,g="passingSchemas"+s;n+="var "+f+" = errors , "+y+" = false , "+p+" = false , "+g+" = null; ";var b=e.compositeRule;e.compositeRule=v.compositeRule=!0;var w=o;if(w)for(var S,E=-1,T=w.length-1;E0||S===!1:e.util.schemaHasRules(S,e.RULES.all))?(v.schema=S,v.schemaPath=c+"["+E+"]",v.errSchemaPath=u+"/"+E,n+=" "+e.validate(v)+" ",v.baseId=h):n+=" var "+m+" = true; ",E&&(n+=" if ("+m+" && "+y+") { "+p+" = false; "+g+" = ["+g+", "+E+"]; } else { ",_+="}"),n+=" if ("+m+") { "+p+" = "+y+" = true; "+g+" = "+E+"; }";return e.compositeRule=v.compositeRule=b,n+=""+_+"if (!"+p+") { var err = ",e.createErrors!==!1?(n+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { passingSchemas: "+g+" } ",e.opts.messages!==!1&&(n+=" , message: 'should match exactly one schema in oneOf' "),e.opts.verbose&&(n+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&l&&(e.async?n+=" throw new ValidationError(vErrors); ":n+=" validate.errors = vErrors; return false; "),n+="} else { errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; }",e.opts.allErrors&&(n+=" } "),n}});var zw=V((zK,Uw)=>{"use strict";Uw.exports=function(e,r,a){var n=" ",s=e.level,i=e.dataLevel,o=e.schema[r],c=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,d="data"+(i||""),p=e.opts.$data&&o&&o.$data,f;p?(n+=" var schema"+s+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ",f="schema"+s):f=o;var v=p?"(new RegExp("+f+"))":e.usePattern(o);n+="if ( ",p&&(n+=" ("+f+" !== undefined && typeof "+f+" != 'string') || "),n+=" !"+v+".test("+d+") ) { ";var _=_||[];_.push(n),n="",e.createErrors!==!1?(n+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { pattern: ",p?n+=""+f:n+=""+e.util.toQuotedString(o),n+=" } ",e.opts.messages!==!1&&(n+=` , message: 'should match pattern "`,p?n+="' + "+f+" + '":n+=""+e.util.escapeQuotes(o),n+=`"' `),e.opts.verbose&&(n+=" , schema: ",p?n+="validate.schema"+c:n+=""+e.util.toQuotedString(o),n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var m=n;return n=_.pop(),!e.compositeRule&&l?e.async?n+=" throw new ValidationError(["+m+"]); ":n+=" validate.errors = ["+m+"]; return false; ":n+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+="} ",l&&(n+=" else { "),n}});var Bw=V((HK,Hw)=>{"use strict";Hw.exports=function(e,r,a){var n=" ",s=e.level,i=e.dataLevel,o=e.schema[r],c=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,d="data"+(i||""),p="errs__"+s,f=e.util.copy(e),v="";f.level++;var _="valid"+f.level,m="key"+s,h="idx"+s,y=f.dataLevel=e.dataLevel+1,g="data"+y,b="dataProperties"+s,w=Object.keys(o||{}).filter(ae),S=e.schema.patternProperties||{},E=Object.keys(S).filter(ae),T=e.schema.additionalProperties,R=w.length||E.length,M=T===!1,j=typeof T=="object"&&Object.keys(T).length,q=e.opts.removeAdditional,H=M||j||q,N=e.opts.ownProperties,W=e.baseId,oe=e.schema.required;if(oe&&!(e.opts.$data&&oe.$data)&&oe.length8)n+=" || validate.schema"+c+".hasOwnProperty("+m+") ";else{var re=w;if(re)for(var U,$=-1,z=re.length-1;$0||Ne===!1:e.util.schemaHasRules(Ne,e.RULES.all)){var Me=e.util.getProperty(U),I=d+Me,je=Z&&Ne.default!==void 0;f.schema=Ne,f.schemaPath=c+Me,f.errSchemaPath=u+"/"+e.util.escapeFragment(U),f.errorPath=e.util.getPath(e.errorPath,U,e.opts.jsonPointers),f.dataPathArr[y]=e.util.toQuotedString(U);var F=e.validate(f);if(f.baseId=W,e.util.varOccurences(F,g)<2){F=e.util.varReplace(F,g,I);var Re=I}else{var Re=g;n+=" var "+g+" = "+I+"; "}if(je)n+=" "+F+" ";else{if(he&&he[U]){n+=" if ( "+Re+" === undefined ",N&&(n+=" || ! Object.prototype.hasOwnProperty.call("+d+", '"+e.util.escapeQuotes(U)+"') "),n+=") { "+_+" = false; ";var K=e.errorPath,de=u,vt=e.util.escapeQuotes(U);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(K,U,e.opts.jsonPointers)),u=e.errSchemaPath+"/required";var se=se||[];se.push(n),n="",e.createErrors!==!1?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { missingProperty: '"+vt+"' } ",e.opts.messages!==!1&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+vt+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var me=n;n=se.pop(),!e.compositeRule&&l?e.async?n+=" throw new ValidationError(["+me+"]); ":n+=" validate.errors = ["+me+"]; return false; ":n+=" var err = "+me+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u=de,e.errorPath=K,n+=" } else { "}else l?(n+=" if ( "+Re+" === undefined ",N&&(n+=" || ! Object.prototype.hasOwnProperty.call("+d+", '"+e.util.escapeQuotes(U)+"') "),n+=") { "+_+" = true; } else { "):(n+=" if ("+Re+" !== undefined ",N&&(n+=" && Object.prototype.hasOwnProperty.call("+d+", '"+e.util.escapeQuotes(U)+"') "),n+=" ) { ");n+=" "+F+" } "}}l&&(n+=" if ("+_+") { ",v+="}")}}if(E.length){var Ue=E;if(Ue)for(var x,yr=-1,Zt=Ue.length-1;yr0||Ne===!1:e.util.schemaHasRules(Ne,e.RULES.all)){f.schema=Ne,f.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(x),f.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(x),N?n+=" "+b+" = "+b+" || Object.keys("+d+"); for (var "+h+"=0; "+h+"<"+b+".length; "+h+"++) { var "+m+" = "+b+"["+h+"]; ":n+=" for (var "+m+" in "+d+") { ",n+=" if ("+e.usePattern(x)+".test("+m+")) { ",f.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers);var I=d+"["+m+"]";f.dataPathArr[y]=m;var F=e.validate(f);f.baseId=W,e.util.varOccurences(F,g)<2?n+=" "+e.util.varReplace(F,g,I)+" ":n+=" var "+g+" = "+I+"; "+F+" ",l&&(n+=" if (!"+_+") break; "),n+=" } ",l&&(n+=" else "+_+" = true; "),n+=" } ",l&&(n+=" if ("+_+") { ",v+="}")}}}return l&&(n+=" "+v+" if ("+p+" == errors) {"),n}});var Gw=V((BK,Vw)=>{"use strict";Vw.exports=function(e,r,a){var n=" ",s=e.level,i=e.dataLevel,o=e.schema[r],c=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,d="data"+(i||""),p="errs__"+s,f=e.util.copy(e),v="";f.level++;var _="valid"+f.level;if(n+="var "+p+" = errors;",e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all)){f.schema=o,f.schemaPath=c,f.errSchemaPath=u;var m="key"+s,h="idx"+s,y="i"+s,g="' + "+m+" + '",b=f.dataLevel=e.dataLevel+1,w="data"+b,S="dataProperties"+s,E=e.opts.ownProperties,T=e.baseId;E&&(n+=" var "+S+" = undefined; "),E?n+=" "+S+" = "+S+" || Object.keys("+d+"); for (var "+h+"=0; "+h+"<"+S+".length; "+h+"++) { var "+m+" = "+S+"["+h+"]; ":n+=" for (var "+m+" in "+d+") { ",n+=" var startErrs"+s+" = errors; ";var R=m,M=e.compositeRule;e.compositeRule=f.compositeRule=!0;var j=e.validate(f);f.baseId=T,e.util.varOccurences(j,w)<2?n+=" "+e.util.varReplace(j,w,R)+" ":n+=" var "+w+" = "+R+"; "+j+" ",e.compositeRule=f.compositeRule=M,n+=" if (!"+_+") { for (var "+y+"=startErrs"+s+"; "+y+"{"use strict";Zw.exports=function(e,r,a){var n=" ",s=e.level,i=e.dataLevel,o=e.schema[r],c=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,d="data"+(i||""),p="valid"+s,f=e.opts.$data&&o&&o.$data,v;f?(n+=" var schema"+s+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ",v="schema"+s):v=o;var _="schema"+s;if(!f)if(o.length0||w===!1:e.util.schemaHasRules(w,e.RULES.all))||(m[m.length]=y)}}else var m=o;if(f||m.length){var S=e.errorPath,E=f||m.length>=e.opts.loopRequired,T=e.opts.ownProperties;if(l)if(n+=" var missing"+s+"; ",E){f||(n+=" var "+_+" = validate.schema"+c+"; ");var R="i"+s,M="schema"+s+"["+R+"]",j="' + "+M+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(S,M,e.opts.jsonPointers)),n+=" var "+p+" = true; ",f&&(n+=" if (schema"+s+" === undefined) "+p+" = true; else if (!Array.isArray(schema"+s+")) "+p+" = false; else {"),n+=" for (var "+R+" = 0; "+R+" < "+_+".length; "+R+"++) { "+p+" = "+d+"["+_+"["+R+"]] !== undefined ",T&&(n+=" && Object.prototype.hasOwnProperty.call("+d+", "+_+"["+R+"]) "),n+="; if (!"+p+") break; } ",f&&(n+=" } "),n+=" if (!"+p+") { ";var q=q||[];q.push(n),n="",e.createErrors!==!1?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { missingProperty: '"+j+"' } ",e.opts.messages!==!1&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+j+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var H=n;n=q.pop(),!e.compositeRule&&l?e.async?n+=" throw new ValidationError(["+H+"]); ":n+=" validate.errors = ["+H+"]; return false; ":n+=" var err = "+H+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { "}else{n+=" if ( ";var N=m;if(N)for(var W,R=-1,oe=N.length-1;R{"use strict";Kw.exports=function(e,r,a){var n=" ",s=e.level,i=e.dataLevel,o=e.schema[r],c=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,d="data"+(i||""),p="valid"+s,f=e.opts.$data&&o&&o.$data,v;if(f?(n+=" var schema"+s+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ",v="schema"+s):v=o,(o||f)&&e.opts.uniqueItems!==!1){f&&(n+=" var "+p+"; if ("+v+" === false || "+v+" === undefined) "+p+" = true; else if (typeof "+v+" != 'boolean') "+p+" = false; else { "),n+=" var i = "+d+".length , "+p+" = true , j; if (i > 1) { ";var _=e.schema.items&&e.schema.items.type,m=Array.isArray(_);if(!_||_=="object"||_=="array"||m&&(_.indexOf("object")>=0||_.indexOf("array")>=0))n+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+d+"[i], "+d+"[j])) { "+p+" = false; break outer; } } } ";else{n+=" var itemIndices = {}, item; for (;i--;) { var item = "+d+"[i]; ";var h="checkDataType"+(m?"s":"");n+=" if ("+e.util[h](_,"item",e.opts.strictNumbers,!0)+") continue; ",m&&(n+=` if (typeof item == 'string') item = '"' + item; `),n+=" if (typeof itemIndices[item] == 'number') { "+p+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "}n+=" } ",f&&(n+=" } "),n+=" if (!"+p+") { ";var y=y||[];y.push(n),n="",e.createErrors!==!1?(n+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { i: i, j: j } ",e.opts.messages!==!1&&(n+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(n+=" , schema: ",f?n+="validate.schema"+c:n+=""+o,n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var g=n;n=y.pop(),!e.compositeRule&&l?e.async?n+=" throw new ValidationError(["+g+"]); ":n+=" validate.errors = ["+g+"]; return false; ":n+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",l&&(n+=" else { ")}else l&&(n+=" if (true) { ");return n}});var Yw=V((ZK,Jw)=>{"use strict";Jw.exports={$ref:lw(),allOf:pw(),anyOf:mw(),$comment:vw(),const:yw(),contains:bw(),dependencies:xw(),enum:Ew(),format:kw(),if:Pw(),items:Ow(),maximum:Qf(),minimum:Qf(),maxItems:em(),minItems:em(),maxLength:tm(),minLength:tm(),maxProperties:rm(),minProperties:rm(),multipleOf:jw(),not:Lw(),oneOf:Fw(),pattern:zw(),properties:Bw(),propertyNames:Gw(),required:Ww(),uniqueItems:Xw(),validate:Jf()}});var tE=V((WK,eE)=>{"use strict";var Qw=Yw(),nm=qa().toHash;eE.exports=function(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],r=["type","$comment"],a=["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"],n=["number","integer","string","array","object","boolean","null"];return e.all=nm(r),e.types=nm(n),e.forEach(function(s){s.rules=s.rules.map(function(i){var o;if(typeof i=="object"){var c=Object.keys(i)[0];o=i[c],i=c,o.forEach(function(l){r.push(l),e.all[l]=!0})}r.push(i);var u=e.all[i]={keyword:i,code:Qw[i],implements:o};return u}),e.all.$comment={keyword:"$comment",code:Qw.$comment},s.type&&(e.types[s.type]=s)}),e.keywords=nm(r.concat(a)),e.custom={},e}});var aE=V((KK,nE)=>{"use strict";var rE=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];nE.exports=function(t,e){for(var r=0;r{"use strict";var wL=Uu().MissingRef;iE.exports=sE;function sE(t,e,r){var a=this;if(typeof this._opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");typeof e=="function"&&(r=e,e=void 0);var n=s(t).then(function(){var o=a._addSchema(t,void 0,e);return o.validate||i(o)});return r&&n.then(function(o){r(null,o)},r),n;function s(o){var c=o.$schema;return c&&!a.getSchema(c)?sE.call(a,{$ref:c},!0):Promise.resolve()}function i(o){try{return a._compile(o)}catch(u){if(u instanceof wL)return c(u);throw u}function c(u){var l=u.missingSchema;if(f(l))throw new Error("Schema "+l+" is loaded but "+u.missingRef+" cannot be resolved");var d=a._loadingSchemas[l];return d||(d=a._loadingSchemas[l]=a._opts.loadSchema(l),d.then(p,p)),d.then(function(v){if(!f(l))return s(v).then(function(){f(l)||a.addSchema(v,l,void 0,e)})}).then(function(){return i(o)});function p(){delete a._loadingSchemas[l]}function f(v){return a._refs[v]||a._schemas[v]}}}}});var uE=V((JK,cE)=>{"use strict";cE.exports=function(e,r,a){var n=" ",s=e.level,i=e.dataLevel,o=e.schema[r],c=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,d,p="data"+(i||""),f="valid"+s,v="errs__"+s,_=e.opts.$data&&o&&o.$data,m;_?(n+=" var schema"+s+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ",m="schema"+s):m=o;var h=this,y="definition"+s,g=h.definition,b="",w,S,E,T,R;if(_&&g.$data){R="keywordValidate"+s;var M=g.validateSchema;n+=" var "+y+" = RULES.custom['"+r+"'].definition; var "+R+" = "+y+".validate;"}else{if(T=e.useCustomRule(h,o,e.schema,e),!T)return;m="validate.schema"+c,R=T.code,w=g.compile,S=g.inline,E=g.macro}var j=R+".errors",q="i"+s,H="ruleErr"+s,N=g.async;if(N&&!e.async)throw new Error("async keyword in sync schema");if(S||E||(n+=""+j+" = null;"),n+="var "+v+" = errors;var "+f+";",_&&g.$data&&(b+="}",n+=" if ("+m+" === undefined) { "+f+" = true; } else { ",M&&(b+="}",n+=" "+f+" = "+y+".validateSchema("+m+"); if ("+f+") { ")),S)g.statements?n+=" "+T.validate+" ":n+=" "+f+" = "+T.validate+"; ";else if(E){var W=e.util.copy(e),b="";W.level++;var oe="valid"+W.level;W.schema=T.validate,W.schemaPath="";var he=e.compositeRule;e.compositeRule=W.compositeRule=!0;var ae=e.validate(W).replace(/validate\.schema/g,R);e.compositeRule=W.compositeRule=he,n+=" "+ae}else{var re=re||[];re.push(n),n="",n+=" "+R+".call( ",e.opts.passContext?n+="this":n+="self",w||g.schema===!1?n+=" , "+p+" ":n+=" , "+m+" , "+p+" , validate.schema"+e.schemaPath+" ",n+=" , (dataPath || '')",e.errorPath!='""'&&(n+=" + "+e.errorPath);var U=i?"data"+(i-1||""):"parentData",$=i?e.dataPathArr[i]:"parentDataProperty";n+=" , "+U+" , "+$+" , rootData ) ";var z=n;n=re.pop(),g.errors===!1?(n+=" "+f+" = ",N&&(n+="await "),n+=""+z+"; "):N?(j="customErrors"+s,n+=" var "+j+" = null; try { "+f+" = await "+z+"; } catch (e) { "+f+" = false; if (e instanceof ValidationError) "+j+" = e.errors; else throw e; } "):n+=" "+j+" = null; "+f+" = "+z+"; "}if(g.modifying&&(n+=" if ("+U+") "+p+" = "+U+"["+$+"];"),n+=""+b,g.valid)l&&(n+=" if (true) { ");else{n+=" if ( ",g.valid===void 0?(n+=" !",E?n+=""+oe:n+=""+f):n+=" "+!g.valid+" ",n+=") { ",d=h.keyword;var re=re||[];re.push(n),n="";var re=re||[];re.push(n),n="",e.createErrors!==!1?(n+=" { keyword: '"+(d||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { keyword: '"+h.keyword+"' } ",e.opts.messages!==!1&&(n+=` , message: 'should pass "`+h.keyword+`" keyword validation' `),e.opts.verbose&&(n+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),n+=" } "):n+=" {} ";var A=n;n=re.pop(),!e.compositeRule&&l?e.async?n+=" throw new ValidationError(["+A+"]); ":n+=" validate.errors = ["+A+"]; return false; ":n+=" var err = "+A+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var x=n;n=re.pop(),S?g.errors?g.errors!="full"&&(n+=" for (var "+q+"="+v+"; "+q+"{EL.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var pE=V((QK,dE)=>{"use strict";var lE=am();dE.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:lE.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:lE.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}});var mE=V((eX,fE)=>{"use strict";var TL=/^[a-z_$][a-z0-9_$-]*$/i,kL=uE(),RL=pE();fE.exports={add:PL,get:$L,remove:OL,validate:sm};function PL(t,e){var r=this.RULES;if(r.keywords[t])throw new Error("Keyword "+t+" is already defined");if(!TL.test(t))throw new Error("Keyword "+t+" is not a valid identifier");if(e){this.validateKeyword(e,!0);var a=e.type;if(Array.isArray(a))for(var n=0;n{CL.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON Schema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var TE=V((rX,EE)=>{"use strict";var gE=Wx(),Fa=Fu(),IL=Xx(),yE=Bf(),AL=Xf(),NL=cw(),ML=tE(),_E=aE(),bE=qa();EE.exports=Pt;Pt.prototype.validate=DL;Pt.prototype.compile=LL;Pt.prototype.addSchema=qL;Pt.prototype.addMetaSchema=FL;Pt.prototype.validateSchema=UL;Pt.prototype.getSchema=HL;Pt.prototype.removeSchema=VL;Pt.prototype.addFormat=QL;Pt.prototype.errorsText=YL;Pt.prototype._addSchema=GL;Pt.prototype._compile=ZL;Pt.prototype.compileAsync=oE();var Ku=mE();Pt.prototype.addKeyword=Ku.add;Pt.prototype.getKeyword=Ku.get;Pt.prototype.removeKeyword=Ku.remove;Pt.prototype.validateKeyword=Ku.validate;var SE=Uu();Pt.ValidationError=SE.Validation;Pt.MissingRefError=SE.MissingRef;Pt.$dataMetaSchema=_E;var Wu="http://json-schema.org/draft-07/schema",vE=["removeAdditional","useDefaults","coerceTypes","strictDefaults"],jL=["/properties"];function Pt(t){if(!(this instanceof Pt))return new Pt(t);t=this._opts=bE.copy(t)||{},s9(this),this._schemas={},this._refs={},this._fragments={},this._formats=NL(t.format),this._cache=t.cache||new IL,this._loadingSchemas={},this._compilations=[],this.RULES=ML(),this._getId=WL(t),t.loopRequired=t.loopRequired||1/0,t.errorDataPath=="property"&&(t._errorDataPathProperty=!0),t.serialize===void 0&&(t.serialize=AL),this._metaOpts=a9(this),t.formats&&r9(this),t.keywords&&n9(this),e9(this),typeof t.meta=="object"&&this.addMetaSchema(t.meta),t.nullable&&this.addKeyword("nullable",{metaSchema:{type:"boolean"}}),t9(this)}function DL(t,e){var r;if(typeof t=="string"){if(r=this.getSchema(t),!r)throw new Error('no schema with key or ref "'+t+'"')}else{var a=this._addSchema(t);r=a.validate||this._compile(a)}var n=r(e);return r.$async!==!0&&(this.errors=r.errors),n}function LL(t,e){var r=this._addSchema(t,void 0,e);return r.validate||this._compile(r)}function qL(t,e,r,a){if(Array.isArray(t)){for(var n=0;n{OE.exports=$E;$E.sync=o9;var RE=require("fs");function i9(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var a=0;a{ME.exports=AE;AE.sync=c9;var IE=require("fs");function AE(t,e,r){IE.stat(t,function(a,n){r(a,a?!1:NE(n,e))})}function c9(t,e){return NE(IE.statSync(t),e)}function NE(t,e){return t.isFile()&&u9(t,e)}function u9(t,e){var r=t.mode,a=t.uid,n=t.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),i=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),o=parseInt("100",8),c=parseInt("010",8),u=parseInt("001",8),l=o|c,d=r&u||r&c&&n===i||r&o&&a===s||r&l&&s===0;return d}});var LE=V((uX,DE)=>{var cX=require("fs"),Xu;process.platform==="win32"||global.TESTING_WINDOWS?Xu=CE():Xu=jE();DE.exports=om;om.sync=l9;function om(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(a,n){om(t,e||{},function(s,i){s?n(s):a(i)})})}Xu(t,e||{},function(a,n){a&&(a.code==="EACCES"||e&&e.ignoreErrors)&&(a=null,n=!1),r(a,n)})}function l9(t,e){try{return Xu.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var VE=V((lX,BE)=>{var Gs=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",qE=require("path"),d9=Gs?";":":",FE=LE(),UE=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),zE=(t,e)=>{let r=e.colon||d9,a=t.match(/\//)||Gs&&t.match(/\\/)?[""]:[...Gs?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],n=Gs?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=Gs?n.split(r):[""];return Gs&&t.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:a,pathExt:s,pathExtExe:n}},HE=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:a,pathExt:n,pathExtExe:s}=zE(t,e),i=[],o=u=>new Promise((l,d)=>{if(u===a.length)return e.all&&i.length?l(i):d(UE(t));let p=a[u],f=/^".*"$/.test(p)?p.slice(1,-1):p,v=qE.join(f,t),_=!f&&/^\.[\\\/]/.test(t)?t.slice(0,2)+v:v;l(c(_,u,0))}),c=(u,l,d)=>new Promise((p,f)=>{if(d===n.length)return p(o(l+1));let v=n[d];FE(u+v,{pathExt:s},(_,m)=>{if(!_&&m)if(e.all)i.push(u+v);else return p(u+v);return p(c(u,l,d+1))})});return r?o(0).then(u=>r(null,u),r):o(0)},p9=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:a,pathExtExe:n}=zE(t,e),s=[];for(let i=0;i{"use strict";var GE=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(a=>a.toUpperCase()==="PATH")||"Path"};cm.exports=GE;cm.exports.default=GE});var JE=V((pX,XE)=>{"use strict";var WE=require("path"),f9=VE(),m9=ZE();function KE(t,e){let r=t.options.env||process.env,a=process.cwd(),n=t.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(t.options.cwd)}catch{}let i;try{i=f9.sync(t.command,{path:r[m9({env:r})],pathExt:e?WE.delimiter:void 0})}catch{}finally{s&&process.chdir(a)}return i&&(i=WE.resolve(n?t.options.cwd:"",i)),i}function h9(t){return KE(t)||KE(t,!0)}XE.exports=h9});var YE=V((fX,lm)=>{"use strict";var um=/([()\][%!^"`<>&|;, *?])/g;function v9(t){return t=t.replace(um,"^$1"),t}function g9(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(um,"^$1"),e&&(t=t.replace(um,"^$1")),t}lm.exports.command=v9;lm.exports.argument=g9});var e1=V((mX,QE)=>{"use strict";QE.exports=/^#!(.*)/});var r1=V((hX,t1)=>{"use strict";var y9=e1();t1.exports=(t="")=>{let e=t.match(y9);if(!e)return null;let[r,a]=e[0].replace(/#! ?/,"").split(" "),n=r.split("/").pop();return n==="env"?a:a?`${n} ${a}`:n}});var a1=V((vX,n1)=>{"use strict";var dm=require("fs"),_9=r1();function b9(t){let r=Buffer.alloc(150),a;try{a=dm.openSync(t,"r"),dm.readSync(a,r,0,150,0),dm.closeSync(a)}catch{}return _9(r.toString())}n1.exports=b9});var c1=V((gX,o1)=>{"use strict";var S9=require("path"),s1=JE(),i1=YE(),x9=a1(),w9=process.platform==="win32",E9=/\.(?:com|exe)$/i,T9=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function k9(t){t.file=s1(t);let e=t.file&&x9(t.file);return e?(t.args.unshift(t.file),t.command=e,s1(t)):t.file}function R9(t){if(!w9)return t;let e=k9(t),r=!E9.test(e);if(t.options.forceShell||r){let a=T9.test(e);t.command=S9.normalize(t.command),t.command=i1.command(t.command),t.args=t.args.map(s=>i1.argument(s,a));let n=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${n}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function P9(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let a={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?a:R9(a)}o1.exports=P9});var d1=V((yX,l1)=>{"use strict";var pm=process.platform==="win32";function fm(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function $9(t,e){if(!pm)return;let r=t.emit;t.emit=function(a,n){if(a==="exit"){let s=u1(n,e);if(s)return r.call(t,"error",s)}return r.apply(t,arguments)}}function u1(t,e){return pm&&t===1&&!e.file?fm(e.original,"spawn"):null}function O9(t,e){return pm&&t===1&&!e.file?fm(e.original,"spawnSync"):null}l1.exports={hookChildProcess:$9,verifyENOENT:u1,verifyENOENTSync:O9,notFoundError:fm}});var m1=V((_X,Zs)=>{"use strict";var p1=require("child_process"),mm=c1(),hm=d1();function f1(t,e,r){let a=mm(t,e,r),n=p1.spawn(a.command,a.args,a.options);return hm.hookChildProcess(n,a),n}function C9(t,e,r){let a=mm(t,e,r),n=p1.spawnSync(a.command,a.args,a.options);return n.error=n.error||hm.verifyENOENTSync(n.status,a),n}Zs.exports=f1;Zs.exports.spawn=f1;Zs.exports.sync=C9;Zs.exports._parse=mm;Zs.exports._enoent=hm});var y1,_1,b1=Jr(()=>{"use strict";y1="bugfix,feature,refactor,discovery,decision,change",_1="how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off"});var w1={};ia(w1,{SettingsDefaultsManager:()=>Be});var Ks,S1,x1,Be,hr=Jr(()=>{"use strict";Ks=require("fs"),S1=require("path"),x1=require("os");b1();Ke();Be=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_PROVIDER:"claude",CLAUDE_MEM_GEMINI_API_KEY:"",CLAUDE_MEM_GEMINI_MODEL:"gemini-2.5-flash-lite",CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED:"true",CLAUDE_MEM_OPENROUTER_API_KEY:"",CLAUDE_MEM_OPENROUTER_MODEL:"xiaomi/mimo-v2-flash:free",CLAUDE_MEM_OPENROUTER_SITE_URL:"",CLAUDE_MEM_OPENROUTER_APP_NAME:"claude-mem",CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES:"20",CLAUDE_MEM_OPENROUTER_MAX_TOKENS:"100000",CLAUDE_MEM_DATA_DIR:(0,S1.join)((0,x1.homedir)(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_MODE:"code",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:y1,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:_1,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return this.DEFAULTS[e]}static getInt(e){let r=this.get(e);return parseInt(r,10)}static getBool(e){return this.get(e)==="true"}static loadFromFile(e){try{if(!(0,Ks.existsSync)(e))return this.getAllDefaults();let r=(0,Ks.readFileSync)(e,"utf-8"),a=JSON.parse(r),n=a;if(a.env&&typeof a.env=="object"){n=a.env;try{(0,Ks.writeFileSync)(e,JSON.stringify(n,null,2),"utf-8"),P.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:e})}catch(i){P.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:e},i)}}let s={...this.DEFAULTS};for(let i of Object.keys(this.DEFAULTS))n[i]!==void 0&&(s[i]=n[i]);return s}catch(r){return P.warn("SETTINGS","Failed to load settings, using defaults",{settingsPath:e},r),this.getAllDefaults()}}}});var Xs,Yu,vm,gm,P,Ke=Jr(()=>{"use strict";hr();Xs=require("fs"),Yu=require("path"),vm=(s=>(s[s.DEBUG=0]="DEBUG",s[s.INFO=1]="INFO",s[s.WARN=2]="WARN",s[s.ERROR=3]="ERROR",s[s.SILENT=4]="SILENT",s))(vm||{}),gm=class{level=null;useColor;logFilePath=null;constructor(){this.useColor=process.stdout.isTTY??!1,this.initializeLogFile()}initializeLogFile(){try{let e=Be.get("CLAUDE_MEM_DATA_DIR"),r=(0,Yu.join)(e,"logs");(0,Xs.existsSync)(r)||(0,Xs.mkdirSync)(r,{recursive:!0});let a=new Date().toISOString().split("T")[0];this.logFilePath=(0,Yu.join)(r,`claude-mem-${a}.log`)}catch(e){console.error("[LOGGER] Failed to initialize log file:",e),this.logFilePath=null}}getLevel(){if(this.level===null)try{let e=Be.get("CLAUDE_MEM_DATA_DIR"),r=(0,Yu.join)(e,"settings.json"),n=Be.loadFromFile(r).CLAUDE_MEM_LOG_LEVEL.toUpperCase();this.level=vm[n]??1}catch(e){console.error("[LOGGER] Failed to load settings, using INFO level:",e),this.level=1}return this.level}correlationId(e,r){return`obs-${e}-${r}`}sessionId(e){return`session-${e}`}formatData(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="object"){if(e instanceof Error)return this.getLevel()===0?`${e.message} -${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let r=Object.keys(e);return r.length===0?"{}":r.length<=3?JSON.stringify(e):`{${r.length} keys: ${r.slice(0,3).join(", ")}...}`}return String(e)}formatTool(e,r){if(!r)return e;let a=typeof r=="string"?JSON.parse(r):r;if(e==="Bash"&&a.command)return`${e}(${a.command})`;if(a.file_path)return`${e}(${a.file_path})`;if(a.notebook_path)return`${e}(${a.notebook_path})`;if(e==="Glob"&&a.pattern)return`${e}(${a.pattern})`;if(e==="Grep"&&a.pattern)return`${e}(${a.pattern})`;if(a.url)return`${e}(${a.url})`;if(a.query)return`${e}(${a.query})`;if(e==="Task"){if(a.subagent_type)return`${e}(${a.subagent_type})`;if(a.description)return`${e}(${a.description})`}return e==="Skill"&&a.skill?`${e}(${a.skill})`:e==="LSP"&&a.operation?`${e}(${a.operation})`:e}formatTimestamp(e){let r=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),n=String(e.getDate()).padStart(2,"0"),s=String(e.getHours()).padStart(2,"0"),i=String(e.getMinutes()).padStart(2,"0"),o=String(e.getSeconds()).padStart(2,"0"),c=String(e.getMilliseconds()).padStart(3,"0");return`${r}-${a}-${n} ${s}:${i}:${o}.${c}`}log(e,r,a,n,s){if(e0&&(d=` {${Object.entries(m).map(([y,g])=>`${y}=${g}`).join(", ")}}`)}let p=`[${i}] [${o}] [${c}] ${u}${a}${d}${l}`;if(this.logFilePath)try{(0,Xs.appendFileSync)(this.logFilePath,p+` -`,"utf8")}catch(f){process.stderr.write(`[LOGGER] Failed to write to log file: ${f} -`)}else process.stderr.write(p+` -`)}debug(e,r,a,n){this.log(0,e,r,a,n)}info(e,r,a,n){this.log(1,e,r,a,n)}warn(e,r,a,n){this.log(2,e,r,a,n)}error(e,r,a,n){this.log(3,e,r,a,n)}dataIn(e,r,a,n){this.info(e,`\u2192 ${r}`,a,n)}dataOut(e,r,a,n){this.info(e,`\u2190 ${r}`,a,n)}success(e,r,a,n){this.info(e,`\u2713 ${r}`,a,n)}failure(e,r,a,n){this.error(e,`\u2717 ${r}`,a,n)}timing(e,r,a,n){this.info(e,`\u23F1 ${r}`,n,{duration:`${a}ms`})}happyPathError(e,r,a,n,s=""){let u=((new Error().stack||"").split(` -`)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),l=u?`${u[1].split("/").pop()}:${u[2]}`:"unknown",d={...a,location:l};return this.warn(e,`[HAPPY-PATH] ${r}`,d,n),s}},P=new gm});var q1={};ia(q1,{ARCHIVES_DIR:()=>_m,BACKUPS_DIR:()=>D1,CLAUDE_COMMANDS_DIR:()=>L1,CLAUDE_CONFIG_DIR:()=>Oo,CLAUDE_MD_PATH:()=>F9,CLAUDE_SETTINGS_PATH:()=>q9,DATA_DIR:()=>Jt,DB_PATH:()=>Co,LOGS_DIR:()=>M1,MODES_DIR:()=>bm,TRASH_DIR:()=>j1,USER_SETTINGS_PATH:()=>Ar,VECTOR_DB_DIR:()=>L9,createBackupFilename:()=>W9,ensureAllClaudeDirs:()=>V9,ensureAllDataDirs:()=>H9,ensureDir:()=>ir,ensureModesDir:()=>B9,getCurrentProjectName:()=>G9,getPackageCommandsDir:()=>Z9,getPackageRoot:()=>or,getProjectArchiveDir:()=>U9,getWorkerSocketPath:()=>z9});function j9(){return typeof __dirname<"u"?__dirname:(0,$t.dirname)((0,N1.fileURLToPath)(K9.url))}function U9(t){return(0,$t.join)(_m,t)}function z9(t){return(0,$t.join)(Jt,`worker-${t}.sock`)}function ir(t){(0,I1.mkdirSync)(t,{recursive:!0})}function H9(){ir(Jt),ir(_m),ir(M1),ir(j1),ir(D1),ir(bm)}function B9(){ir(bm)}function V9(){ir(Oo),ir(L1)}function G9(){try{let t=(0,A1.execSync)("git rev-parse --show-toplevel",{cwd:process.cwd(),encoding:"utf8",stdio:["pipe","pipe","ignore"],windowsHide:!0}).trim();return(0,$t.basename)(t)}catch(t){return P.debug("SYSTEM","Git root detection failed, using cwd basename",{cwd:process.cwd()},t),(0,$t.basename)(process.cwd())}}function or(){return(0,$t.join)(D9,"..")}function Z9(){let t=or();return(0,$t.join)(t,"commands")}function W9(t){let e=new Date().toISOString().replace(/[:.]/g,"-").replace("T","_").slice(0,19);return`${t}.backup.${e}`}var $t,C1,I1,A1,N1,K9,D9,Jt,Oo,_m,M1,j1,D1,bm,Ar,Co,L9,q9,L1,F9,vr=Jr(()=>{"use strict";$t=require("path"),C1=require("os"),I1=require("fs"),A1=require("child_process"),N1=require("url");hr();Ke();K9={};D9=j9(),Jt=Be.get("CLAUDE_MEM_DATA_DIR"),Oo=process.env.CLAUDE_CONFIG_DIR||(0,$t.join)((0,C1.homedir)(),".claude"),_m=(0,$t.join)(Jt,"archives"),M1=(0,$t.join)(Jt,"logs"),j1=(0,$t.join)(Jt,"trash"),D1=(0,$t.join)(Jt,"backups"),bm=(0,$t.join)(Jt,"modes"),Ar=(0,$t.join)(Jt,"settings.json"),Co=(0,$t.join)(Jt,"claude-mem.db"),L9=(0,$t.join)(Jt,"vector-db"),q9=(0,$t.join)(Oo,"settings.json"),L1=(0,$t.join)(Oo,"commands"),F9=(0,$t.join)(Oo,"CLAUDE.md")});var F1,Gn,el=Jr(()=>{"use strict";F1=require("bun:sqlite");vr();Ke();Gn=class{db;constructor(e=Co){e!==":memory:"&&ir(Jt),this.db=new F1.Database(e),this.db.run("PRAGMA journal_mode = WAL"),this.db.run("PRAGMA synchronous = NORMAL"),this.db.run("PRAGMA foreign_keys = ON"),this.initializeSchema(),this.ensureWorkerPortColumn(),this.ensurePromptTrackingColumns(),this.removeSessionSummariesUniqueConstraint(),this.addObservationHierarchicalFields(),this.makeObservationsTextNullable(),this.createUserPromptsTable(),this.ensureDiscoveryTokensColumn(),this.createPendingMessagesTable(),this.renameSessionIdColumns(),this.repairSessionIdColumnRename(),this.addFailedAtEpochColumn()}initializeSchema(){this.db.run(` +`}function ure(){return function(){this.error(404)}}function lre(){return function(e){if(this.hasTrailingSlash()){this.error(404);return}var r=zw.original(this.req);r.path=null,r.pathname=sre(r.pathname+"/");var n=rre(are.format(r)),i=cre("Redirecting","Redirecting to "+nre(n));e.statusCode=301,e.setHeader("Content-Type","text/html; charset=UTF-8"),e.setHeader("Content-Length",Buffer.byteLength(i)),e.setHeader("Content-Security-Policy","default-src 'none'"),e.setHeader("X-Content-Type-Options","nosniff"),e.setHeader("Location",n),e.end(i)}}});var jz=j((Br,Nz)=>{"use strict";var oh=iM(),dre=require("events").EventEmitter,Pz=oM(),Rz=zD(),pre=cw(),fre=lw(),Oz=lz(),Cz=kz();Br=Nz.exports=mre;function mre(){var t=function(e,r,n){t.handle(e,r,n)};return Pz(t,dre.prototype,!1),Pz(t,Rz,!1),t.request=Object.create(Oz,{app:{configurable:!0,enumerable:!0,writable:!0,value:t}}),t.response=Object.create(Cz,{app:{configurable:!0,enumerable:!0,writable:!0,value:t}}),t.init(),t}Br.application=Rz;Br.request=Oz;Br.response=Cz;Br.Route=pre;Br.Router=fre;Br.json=oh.json;Br.query=dw();Br.raw=oh.raw;Br.static=Iz();Br.text=oh.text;Br.urlencoded=oh.urlencoded;var hre=["bodyParser","compress","cookieSession","session","logger","cookieParser","favicon","responseTime","errorHandler","timeout","methodOverride","vhost","csrf","directory","limit","multipart","staticCache"];hre.forEach(function(t){Object.defineProperty(Br,t,{get:function(){throw new Error("Most middleware (like "+t+") is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.")},configurable:!0})})});var sh=j((Rke,Az)=>{"use strict";Az.exports=jz()});var zz=j((Oke,Dz)=>{"use strict";var Mz=Object.getOwnPropertySymbols,gre=Object.prototype.hasOwnProperty,vre=Object.prototype.propertyIsEnumerable;function yre(t){if(t==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function _re(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de",Object.getOwnPropertyNames(t)[0]==="5")return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;var n=Object.getOwnPropertyNames(e).map(function(a){return e[a]});if(n.join("")!=="0123456789")return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach(function(a){i[a]=a}),Object.keys(Object.assign({},i)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}Dz.exports=_re()?Object.assign:function(t,e){for(var r,n=yre(t),i,a=1;a{(function(){"use strict";var t=zz(),e=Mw(),r={origin:"*",methods:"GET,HEAD,PUT,PATCH,POST,DELETE",preflightContinue:!1,optionsSuccessStatus:204};function n(h){return typeof h=="string"||h instanceof String}function i(h,_){if(Array.isArray(_)){for(var y=0;y<_.length;++y)if(i(h,_[y]))return!0;return!1}else return n(_)?h===_:_ instanceof RegExp?_.test(h):!!_}function a(h,_){var y=_.headers.origin,m=[],v;return!h.origin||h.origin==="*"?m.push([{key:"Access-Control-Allow-Origin",value:"*"}]):n(h.origin)?(m.push([{key:"Access-Control-Allow-Origin",value:h.origin}]),m.push([{key:"Vary",value:"Origin"}])):(v=i(y,h.origin),m.push([{key:"Access-Control-Allow-Origin",value:v?y:!1}]),m.push([{key:"Vary",value:"Origin"}])),m}function o(h){var _=h.methods;return _.join&&(_=h.methods.join(",")),{key:"Access-Control-Allow-Methods",value:_}}function s(h){return h.credentials===!0?{key:"Access-Control-Allow-Credentials",value:"true"}:null}function c(h,_){var y=h.allowedHeaders||h.headers,m=[];return y?y.join&&(y=y.join(",")):(y=_.headers["access-control-request-headers"],m.push([{key:"Vary",value:"Access-Control-Request-Headers"}])),y&&y.length&&m.push([{key:"Access-Control-Allow-Headers",value:y}]),m}function u(h){var _=h.exposedHeaders;if(_)_.join&&(_=_.join(","));else return null;return _&&_.length?{key:"Access-Control-Expose-Headers",value:_}:null}function l(h){var _=(typeof h.maxAge=="number"||h.maxAge)&&h.maxAge.toString();return _&&_.length?{key:"Access-Control-Max-Age",value:_}:null}function d(h,_){for(var y=0,m=h.length;yqw,BACKUPS_DIR:()=>Gz,CLAUDE_COMMANDS_DIR:()=>Wz,CLAUDE_CONFIG_DIR:()=>Kl,CLAUDE_MD_PATH:()=>$re,CLAUDE_SETTINGS_PATH:()=>wre,DATA_DIR:()=>Nr,DB_PATH:()=>Jl,LOGS_DIR:()=>Bz,MODES_DIR:()=>Lw,TRASH_DIR:()=>Vz,USER_SETTINGS_PATH:()=>wn,VECTOR_DB_DIR:()=>Sre,createBackupFilename:()=>Cre,ensureAllClaudeDirs:()=>Pre,ensureAllDataDirs:()=>Tre,ensureDir:()=>Vr,ensureModesDir:()=>Ire,getCurrentProjectName:()=>Rre,getPackageCommandsDir:()=>Ore,getPackageRoot:()=>Gr,getProjectArchiveDir:()=>Ere,getWorkerSocketPath:()=>kre});function bre(){return typeof __dirname<"u"?__dirname:(0,Jt.dirname)((0,Hz.fileURLToPath)(Nre.url))}function Ere(t){return(0,Jt.join)(qw,t)}function kre(t){return(0,Jt.join)(Nr,`worker-${t}.sock`)}function Vr(t){(0,Fz.mkdirSync)(t,{recursive:!0})}function Tre(){Vr(Nr),Vr(qw),Vr(Bz),Vr(Vz),Vr(Gz),Vr(Lw)}function Ire(){Vr(Lw)}function Pre(){Vr(Kl),Vr(Wz)}function Rre(){try{let t=(0,Zz.execSync)("git rev-parse --show-toplevel",{cwd:process.cwd(),encoding:"utf8",stdio:["pipe","pipe","ignore"],windowsHide:!0}).trim();return(0,Jt.basename)(t)}catch(t){return k.debug("SYSTEM","Git root detection failed, using cwd basename",{cwd:process.cwd()},t),(0,Jt.basename)(process.cwd())}}function Gr(){return(0,Jt.join)(xre,"..")}function Ore(){let t=Gr();return(0,Jt.join)(t,"commands")}function Cre(t){let e=new Date().toISOString().replace(/[:.]/g,"-").replace("T","_").slice(0,19);return`${t}.backup.${e}`}var Jt,Lz,Fz,Zz,Hz,Nre,xre,Nr,Kl,qw,Bz,Vz,Gz,Lw,wn,Jl,Sre,wre,Wz,$re,cn=Gt(()=>{"use strict";Jt=require("path"),Lz=require("os"),Fz=require("fs"),Zz=require("child_process"),Hz=require("url");on();Ne();Nre={};xre=bre(),Nr=Ke.get("CLAUDE_MEM_DATA_DIR"),Kl=process.env.CLAUDE_CONFIG_DIR||(0,Jt.join)((0,Lz.homedir)(),".claude"),qw=(0,Jt.join)(Nr,"archives"),Bz=(0,Jt.join)(Nr,"logs"),Vz=(0,Jt.join)(Nr,"trash"),Gz=(0,Jt.join)(Nr,"backups"),Lw=(0,Jt.join)(Nr,"modes"),wn=(0,Jt.join)(Nr,"settings.json"),Jl=(0,Jt.join)(Nr,"claude-mem.db"),Sre=(0,Jt.join)(Nr,"vector-db"),wre=(0,Jt.join)(Kl,"settings.json"),Wz=(0,Jt.join)(Kl,"commands"),$re=(0,Jt.join)(Kl,"CLAUDE.md")});var p4,va,dh=Gt(()=>{"use strict";p4=require("bun:sqlite");cn();Ne();va=class{db;constructor(e=Jl){e!==":memory:"&&Vr(Nr),this.db=new p4.Database(e),this.db.run("PRAGMA journal_mode = WAL"),this.db.run("PRAGMA synchronous = NORMAL"),this.db.run("PRAGMA foreign_keys = ON"),this.initializeSchema(),this.ensureWorkerPortColumn(),this.ensurePromptTrackingColumns(),this.removeSessionSummariesUniqueConstraint(),this.addObservationHierarchicalFields(),this.makeObservationsTextNullable(),this.createUserPromptsTable(),this.ensureDiscoveryTokensColumn(),this.createPendingMessagesTable(),this.renameSessionIdColumns(),this.repairSessionIdColumnRename(),this.addFailedAtEpochColumn()}initializeSchema(){this.db.run(` CREATE TABLE IF NOT EXISTS schema_versions ( id INTEGER PRIMARY KEY, version INTEGER UNIQUE NOT NULL, applied_at TEXT NOT NULL ) - `);let e=this.db.prepare("SELECT version FROM schema_versions ORDER BY version").all();(e.length>0?Math.max(...e.map(a=>a.version)):0)===0&&(P.info("DB","Initializing fresh database with migration004"),this.db.run(` + `);let e=this.db.prepare("SELECT version FROM schema_versions ORDER BY version").all();(e.length>0?Math.max(...e.map(n=>n.version)):0)===0&&(k.info("DB","Initializing fresh database with migration004"),this.db.run(` CREATE TABLE IF NOT EXISTS sdk_sessions ( id INTEGER PRIMARY KEY AUTOINCREMENT, content_session_id TEXT UNIQUE NOT NULL, @@ -119,7 +126,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` CREATE INDEX IF NOT EXISTS idx_session_summaries_sdk_session ON session_summaries(memory_session_id); CREATE INDEX IF NOT EXISTS idx_session_summaries_project ON session_summaries(project); CREATE INDEX IF NOT EXISTS idx_session_summaries_created ON session_summaries(created_at_epoch DESC); - `),this.db.prepare("INSERT INTO schema_versions (version, applied_at) VALUES (?, ?)").run(4,new Date().toISOString()),P.info("DB","Migration004 applied successfully"))}ensureWorkerPortColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(5))return;this.db.query("PRAGMA table_info(sdk_sessions)").all().some(n=>n.name==="worker_port")||(this.db.run("ALTER TABLE sdk_sessions ADD COLUMN worker_port INTEGER"),P.info("DB","Added worker_port column to sdk_sessions table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(5,new Date().toISOString())}ensurePromptTrackingColumns(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(6))return;this.db.query("PRAGMA table_info(sdk_sessions)").all().some(c=>c.name==="prompt_counter")||(this.db.run("ALTER TABLE sdk_sessions ADD COLUMN prompt_counter INTEGER DEFAULT 0"),P.info("DB","Added prompt_counter column to sdk_sessions table")),this.db.query("PRAGMA table_info(observations)").all().some(c=>c.name==="prompt_number")||(this.db.run("ALTER TABLE observations ADD COLUMN prompt_number INTEGER"),P.info("DB","Added prompt_number column to observations table")),this.db.query("PRAGMA table_info(session_summaries)").all().some(c=>c.name==="prompt_number")||(this.db.run("ALTER TABLE session_summaries ADD COLUMN prompt_number INTEGER"),P.info("DB","Added prompt_number column to session_summaries table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(6,new Date().toISOString())}removeSessionSummariesUniqueConstraint(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(7))return;if(!this.db.query("PRAGMA index_list(session_summaries)").all().some(n=>n.unique===1)){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(7,new Date().toISOString());return}P.info("DB","Removing UNIQUE constraint from session_summaries.memory_session_id"),this.db.run("BEGIN TRANSACTION"),this.db.run(` + `),this.db.prepare("INSERT INTO schema_versions (version, applied_at) VALUES (?, ?)").run(4,new Date().toISOString()),k.info("DB","Migration004 applied successfully"))}ensureWorkerPortColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(5))return;this.db.query("PRAGMA table_info(sdk_sessions)").all().some(i=>i.name==="worker_port")||(this.db.run("ALTER TABLE sdk_sessions ADD COLUMN worker_port INTEGER"),k.info("DB","Added worker_port column to sdk_sessions table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(5,new Date().toISOString())}ensurePromptTrackingColumns(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(6))return;this.db.query("PRAGMA table_info(sdk_sessions)").all().some(c=>c.name==="prompt_counter")||(this.db.run("ALTER TABLE sdk_sessions ADD COLUMN prompt_counter INTEGER DEFAULT 0"),k.info("DB","Added prompt_counter column to sdk_sessions table")),this.db.query("PRAGMA table_info(observations)").all().some(c=>c.name==="prompt_number")||(this.db.run("ALTER TABLE observations ADD COLUMN prompt_number INTEGER"),k.info("DB","Added prompt_number column to observations table")),this.db.query("PRAGMA table_info(session_summaries)").all().some(c=>c.name==="prompt_number")||(this.db.run("ALTER TABLE session_summaries ADD COLUMN prompt_number INTEGER"),k.info("DB","Added prompt_number column to session_summaries table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(6,new Date().toISOString())}removeSessionSummariesUniqueConstraint(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(7))return;if(!this.db.query("PRAGMA index_list(session_summaries)").all().some(i=>i.unique===1)){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(7,new Date().toISOString());return}k.info("DB","Removing UNIQUE constraint from session_summaries.memory_session_id"),this.db.run("BEGIN TRANSACTION"),this.db.run(` CREATE TABLE session_summaries_new ( id INTEGER PRIMARY KEY AUTOINCREMENT, memory_session_id TEXT NOT NULL, @@ -147,7 +154,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` CREATE INDEX idx_session_summaries_sdk_session ON session_summaries(memory_session_id); CREATE INDEX idx_session_summaries_project ON session_summaries(project); CREATE INDEX idx_session_summaries_created ON session_summaries(created_at_epoch DESC); - `),this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(7,new Date().toISOString()),P.info("DB","Successfully removed UNIQUE constraint from session_summaries.memory_session_id")}addObservationHierarchicalFields(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(8))return;if(this.db.query("PRAGMA table_info(observations)").all().some(n=>n.name==="title")){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(8,new Date().toISOString());return}P.info("DB","Adding hierarchical fields to observations table"),this.db.run(` + `),this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(7,new Date().toISOString()),k.info("DB","Successfully removed UNIQUE constraint from session_summaries.memory_session_id")}addObservationHierarchicalFields(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(8))return;if(this.db.query("PRAGMA table_info(observations)").all().some(i=>i.name==="title")){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(8,new Date().toISOString());return}k.info("DB","Adding hierarchical fields to observations table"),this.db.run(` ALTER TABLE observations ADD COLUMN title TEXT; ALTER TABLE observations ADD COLUMN subtitle TEXT; ALTER TABLE observations ADD COLUMN facts TEXT; @@ -155,7 +162,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` ALTER TABLE observations ADD COLUMN concepts TEXT; ALTER TABLE observations ADD COLUMN files_read TEXT; ALTER TABLE observations ADD COLUMN files_modified TEXT; - `),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(8,new Date().toISOString()),P.info("DB","Successfully added hierarchical fields to observations table")}makeObservationsTextNullable(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(9))return;let a=this.db.query("PRAGMA table_info(observations)").all().find(n=>n.name==="text");if(!a||a.notnull===0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(9,new Date().toISOString());return}P.info("DB","Making observations.text nullable"),this.db.run("BEGIN TRANSACTION"),this.db.run(` + `),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(8,new Date().toISOString()),k.info("DB","Successfully added hierarchical fields to observations table")}makeObservationsTextNullable(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(9))return;let n=this.db.query("PRAGMA table_info(observations)").all().find(i=>i.name==="text");if(!n||n.notnull===0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(9,new Date().toISOString());return}k.info("DB","Making observations.text nullable"),this.db.run("BEGIN TRANSACTION"),this.db.run(` CREATE TABLE observations_new ( id INTEGER PRIMARY KEY AUTOINCREMENT, memory_session_id TEXT NOT NULL, @@ -185,7 +192,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` CREATE INDEX idx_observations_project ON observations(project); CREATE INDEX idx_observations_type ON observations(type); CREATE INDEX idx_observations_created ON observations(created_at_epoch DESC); - `),this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(9,new Date().toISOString()),P.info("DB","Successfully made observations.text nullable")}createUserPromptsTable(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(10))return;if(this.db.query("PRAGMA table_info(user_prompts)").all().length>0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(10,new Date().toISOString());return}P.info("DB","Creating user_prompts table with FTS5 support"),this.db.run("BEGIN TRANSACTION"),this.db.run(` + `),this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(9,new Date().toISOString()),k.info("DB","Successfully made observations.text nullable")}createUserPromptsTable(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(10))return;if(this.db.query("PRAGMA table_info(user_prompts)").all().length>0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(10,new Date().toISOString());return}k.info("DB","Creating user_prompts table with FTS5 support"),this.db.run("BEGIN TRANSACTION"),this.db.run(` CREATE TABLE user_prompts ( id INTEGER PRIMARY KEY AUTOINCREMENT, content_session_id TEXT NOT NULL, @@ -223,7 +230,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` INSERT INTO user_prompts_fts(rowid, prompt_text) VALUES (new.id, new.prompt_text); END; - `),this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(10,new Date().toISOString()),P.info("DB","Successfully created user_prompts table with FTS5 support")}ensureDiscoveryTokensColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(11))return;this.db.query("PRAGMA table_info(observations)").all().some(i=>i.name==="discovery_tokens")||(this.db.run("ALTER TABLE observations ADD COLUMN discovery_tokens INTEGER DEFAULT 0"),P.info("DB","Added discovery_tokens column to observations table")),this.db.query("PRAGMA table_info(session_summaries)").all().some(i=>i.name==="discovery_tokens")||(this.db.run("ALTER TABLE session_summaries ADD COLUMN discovery_tokens INTEGER DEFAULT 0"),P.info("DB","Added discovery_tokens column to session_summaries table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(11,new Date().toISOString())}createPendingMessagesTable(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(16))return;if(this.db.query("SELECT name FROM sqlite_master WHERE type='table' AND name='pending_messages'").all().length>0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(16,new Date().toISOString());return}P.info("DB","Creating pending_messages table"),this.db.run(` + `),this.db.run("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(10,new Date().toISOString()),k.info("DB","Successfully created user_prompts table with FTS5 support")}ensureDiscoveryTokensColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(11))return;this.db.query("PRAGMA table_info(observations)").all().some(o=>o.name==="discovery_tokens")||(this.db.run("ALTER TABLE observations ADD COLUMN discovery_tokens INTEGER DEFAULT 0"),k.info("DB","Added discovery_tokens column to observations table")),this.db.query("PRAGMA table_info(session_summaries)").all().some(o=>o.name==="discovery_tokens")||(this.db.run("ALTER TABLE session_summaries ADD COLUMN discovery_tokens INTEGER DEFAULT 0"),k.info("DB","Added discovery_tokens column to session_summaries table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(11,new Date().toISOString())}createPendingMessagesTable(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(16))return;if(this.db.query("SELECT name FROM sqlite_master WHERE type='table' AND name='pending_messages'").all().length>0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(16,new Date().toISOString());return}k.info("DB","Creating pending_messages table"),this.db.run(` CREATE TABLE pending_messages ( id INTEGER PRIMARY KEY AUTOINCREMENT, session_db_id INTEGER NOT NULL, @@ -243,7 +250,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` completed_at_epoch INTEGER, FOREIGN KEY (session_db_id) REFERENCES sdk_sessions(id) ON DELETE CASCADE ) - `),this.db.run("CREATE INDEX IF NOT EXISTS idx_pending_messages_session ON pending_messages(session_db_id)"),this.db.run("CREATE INDEX IF NOT EXISTS idx_pending_messages_status ON pending_messages(status)"),this.db.run("CREATE INDEX IF NOT EXISTS idx_pending_messages_claude_session ON pending_messages(content_session_id)"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(16,new Date().toISOString()),P.info("DB","pending_messages table created successfully")}renameSessionIdColumns(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(17))return;P.info("DB","Checking session ID columns for semantic clarity rename");let r=0,a=(n,s,i)=>{let o=this.db.query(`PRAGMA table_info(${n})`).all(),c=o.some(l=>l.name===s);return o.some(l=>l.name===i)?!1:c?(this.db.run(`ALTER TABLE ${n} RENAME COLUMN ${s} TO ${i}`),P.info("DB",`Renamed ${n}.${s} to ${i}`),!0):(P.warn("DB",`Column ${s} not found in ${n}, skipping rename`),!1)};a("sdk_sessions","claude_session_id","content_session_id")&&r++,a("sdk_sessions","sdk_session_id","memory_session_id")&&r++,a("pending_messages","claude_session_id","content_session_id")&&r++,a("observations","sdk_session_id","memory_session_id")&&r++,a("session_summaries","sdk_session_id","memory_session_id")&&r++,a("user_prompts","claude_session_id","content_session_id")&&r++,this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(17,new Date().toISOString()),r>0?P.info("DB",`Successfully renamed ${r} session ID columns`):P.info("DB","No session ID column renames needed (already up to date)")}repairSessionIdColumnRename(){this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(19)||this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(19,new Date().toISOString())}addFailedAtEpochColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(20))return;this.db.query("PRAGMA table_info(pending_messages)").all().some(n=>n.name==="failed_at_epoch")||(this.db.run("ALTER TABLE pending_messages ADD COLUMN failed_at_epoch INTEGER"),P.info("DB","Added failed_at_epoch column to pending_messages table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(20,new Date().toISOString())}updateMemorySessionId(e,r){this.db.prepare(` + `),this.db.run("CREATE INDEX IF NOT EXISTS idx_pending_messages_session ON pending_messages(session_db_id)"),this.db.run("CREATE INDEX IF NOT EXISTS idx_pending_messages_status ON pending_messages(status)"),this.db.run("CREATE INDEX IF NOT EXISTS idx_pending_messages_claude_session ON pending_messages(content_session_id)"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(16,new Date().toISOString()),k.info("DB","pending_messages table created successfully")}renameSessionIdColumns(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(17))return;k.info("DB","Checking session ID columns for semantic clarity rename");let r=0,n=(i,a,o)=>{let s=this.db.query(`PRAGMA table_info(${i})`).all(),c=s.some(l=>l.name===a);return s.some(l=>l.name===o)?!1:c?(this.db.run(`ALTER TABLE ${i} RENAME COLUMN ${a} TO ${o}`),k.info("DB",`Renamed ${i}.${a} to ${o}`),!0):(k.warn("DB",`Column ${a} not found in ${i}, skipping rename`),!1)};n("sdk_sessions","claude_session_id","content_session_id")&&r++,n("sdk_sessions","sdk_session_id","memory_session_id")&&r++,n("pending_messages","claude_session_id","content_session_id")&&r++,n("observations","sdk_session_id","memory_session_id")&&r++,n("session_summaries","sdk_session_id","memory_session_id")&&r++,n("user_prompts","claude_session_id","content_session_id")&&r++,this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(17,new Date().toISOString()),r>0?k.info("DB",`Successfully renamed ${r} session ID columns`):k.info("DB","No session ID column renames needed (already up to date)")}repairSessionIdColumnRename(){this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(19)||this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(19,new Date().toISOString())}addFailedAtEpochColumn(){if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(20))return;this.db.query("PRAGMA table_info(pending_messages)").all().some(i=>i.name==="failed_at_epoch")||(this.db.run("ALTER TABLE pending_messages ADD COLUMN failed_at_epoch INTEGER"),k.info("DB","Added failed_at_epoch column to pending_messages table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(20,new Date().toISOString())}updateMemorySessionId(e,r){this.db.prepare(` UPDATE sdk_sessions SET memory_session_id = ? WHERE id = ? @@ -335,10 +342,10 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` SELECT * FROM observations WHERE id = ? - `).get(e)||null}getObservationsByIds(e,r={}){if(e.length===0)return[];let{orderBy:a="date_desc",limit:n,project:s,type:i,concepts:o,files:c}=r,u=a==="date_asc"?"ASC":"DESC",l=n?`LIMIT ${n}`:"",d=e.map(()=>"?").join(","),p=[...e],f=[];if(s&&(f.push("project = ?"),p.push(s)),i)if(Array.isArray(i)){let m=i.map(()=>"?").join(",");f.push(`type IN (${m})`),p.push(...i)}else f.push("type = ?"),p.push(i);if(o){let m=Array.isArray(o)?o:[o],h=m.map(()=>"EXISTS (SELECT 1 FROM json_each(concepts) WHERE value = ?)");p.push(...m),f.push(`(${h.join(" OR ")})`)}if(c){let m=Array.isArray(c)?c:[c],h=m.map(()=>"(EXISTS (SELECT 1 FROM json_each(files_read) WHERE value LIKE ?) OR EXISTS (SELECT 1 FROM json_each(files_modified) WHERE value LIKE ?))");m.forEach(y=>{p.push(`%${y}%`,`%${y}%`)}),f.push(`(${h.join(" OR ")})`)}let v=f.length>0?`WHERE id IN (${d}) AND ${f.join(" AND ")}`:`WHERE id IN (${d})`;return this.db.prepare(` + `).get(e)||null}getObservationsByIds(e,r={}){if(e.length===0)return[];let{orderBy:n="date_desc",limit:i,project:a,type:o,concepts:s,files:c}=r,u=n==="date_asc"?"ASC":"DESC",l=i?`LIMIT ${i}`:"",d=e.map(()=>"?").join(","),p=[...e],f=[];if(a&&(f.push("project = ?"),p.push(a)),o)if(Array.isArray(o)){let y=o.map(()=>"?").join(",");f.push(`type IN (${y})`),p.push(...o)}else f.push("type = ?"),p.push(o);if(s){let y=Array.isArray(s)?s:[s],m=y.map(()=>"EXISTS (SELECT 1 FROM json_each(concepts) WHERE value = ?)");p.push(...y),f.push(`(${m.join(" OR ")})`)}if(c){let y=Array.isArray(c)?c:[c],m=y.map(()=>"(EXISTS (SELECT 1 FROM json_each(files_read) WHERE value LIKE ?) OR EXISTS (SELECT 1 FROM json_each(files_modified) WHERE value LIKE ?))");y.forEach(v=>{p.push(`%${v}%`,`%${v}%`)}),f.push(`(${m.join(" OR ")})`)}let h=f.length>0?`WHERE id IN (${d}) AND ${f.join(" AND ")}`:`WHERE id IN (${d})`;return this.db.prepare(` SELECT * FROM observations - ${v} + ${h} ORDER BY created_at_epoch ${u} ${l} `).all(...p)}getSummaryForSession(e){return this.db.prepare(` @@ -354,7 +361,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` SELECT files_read, files_modified FROM observations WHERE memory_session_id = ? - `).all(e),n=new Set,s=new Set;for(let i of a){if(i.files_read){let o=JSON.parse(i.files_read);Array.isArray(o)&&o.forEach(c=>n.add(c))}if(i.files_modified){let o=JSON.parse(i.files_modified);Array.isArray(o)&&o.forEach(c=>s.add(c))}}return{filesRead:Array.from(n),filesModified:Array.from(s)}}getSessionById(e){return this.db.prepare(` + `).all(e),i=new Set,a=new Set;for(let o of n){if(o.files_read){let s=JSON.parse(o.files_read);Array.isArray(s)&&s.forEach(c=>i.add(c))}if(o.files_modified){let s=JSON.parse(o.files_modified);Array.isArray(s)&&s.forEach(c=>a.add(c))}}return{filesRead:Array.from(i),filesModified:Array.from(a)}}getSessionById(e){return this.db.prepare(` SELECT id, content_session_id, memory_session_id, project, user_prompt FROM sdk_sessions WHERE id = ? @@ -371,7 +378,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` INSERT OR IGNORE INTO sdk_sessions (content_session_id, memory_session_id, project, user_prompt, started_at, started_at_epoch, status) VALUES (?, NULL, ?, ?, ?, ?, 'active') - `).run(e,r,a,n.toISOString(),s),this.db.prepare("SELECT id FROM sdk_sessions WHERE content_session_id = ?").get(e).id}saveUserPrompt(e,r,a){let n=new Date,s=n.getTime();return this.db.prepare(` + `).run(e,r,n,i.toISOString(),a),this.db.prepare("SELECT id FROM sdk_sessions WHERE content_session_id = ?").get(e).id}saveUserPrompt(e,r,n){let i=new Date,a=i.getTime();return this.db.prepare(` INSERT INTO user_prompts (content_session_id, prompt_number, prompt_text, created_at, created_at_epoch) VALUES (?, ?, ?, ?, ?) @@ -380,27 +387,37 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` FROM user_prompts WHERE content_session_id = ? AND prompt_number = ? LIMIT 1 - `).get(e,r)?.prompt_text??null}storeObservation(e,r,a,n,s=0,i){let o=i??Date.now(),c=new Date(o).toISOString(),l=this.db.prepare(` + `).get(e,r)?.prompt_text??null}storeObservation(e,r,n,i,a=0,o){let s=o??Date.now(),c=new Date(s).toISOString(),l=this.db.prepare(` INSERT INTO observations (memory_session_id, project, type, title, subtitle, facts, narrative, concepts, files_read, files_modified, prompt_number, discovery_tokens, created_at, created_at_epoch) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `).run(e,r,a.type,a.title,a.subtitle,JSON.stringify(a.facts),a.narrative,JSON.stringify(a.concepts),JSON.stringify(a.files_read),JSON.stringify(a.files_modified),n||null,s,c,o);return{id:Number(l.lastInsertRowid),createdAtEpoch:o}}storeSummary(e,r,a,n,s=0,i){let o=i??Date.now(),c=new Date(o).toISOString(),l=this.db.prepare(` + `).run(e,r,n.type,n.title,n.subtitle,JSON.stringify(n.facts),n.narrative,JSON.stringify(n.concepts),JSON.stringify(n.files_read),JSON.stringify(n.files_modified),i||null,a,c,s);return{id:Number(l.lastInsertRowid),createdAtEpoch:s}}storeSummary(e,r,n,i,a=0,o){let s=o??Date.now(),c=new Date(s).toISOString(),l=this.db.prepare(` INSERT INTO session_summaries (memory_session_id, project, request, investigated, learned, completed, next_steps, notes, prompt_number, discovery_tokens, created_at, created_at_epoch) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `).run(e,r,a.request,a.investigated,a.learned,a.completed,a.next_steps,a.notes,n||null,s,c,o);return{id:Number(l.lastInsertRowid),createdAtEpoch:o}}storeObservationsAndMarkComplete(e,r,a,n,s,i,o,c=0,u){let l=u??Date.now(),d=new Date(l).toISOString();return this.db.transaction(()=>{let f=[],v=this.db.prepare(` + `).run(e,r,n.request,n.investigated,n.learned,n.completed,n.next_steps,n.notes,i||null,a,c,s);return{id:Number(l.lastInsertRowid),createdAtEpoch:s}}storeObservations(e,r,n,i,a,o=0,s){let c=s??Date.now(),u=new Date(c).toISOString();return this.db.transaction(()=>{let d=[],p=this.db.prepare(` INSERT INTO observations (memory_session_id, project, type, title, subtitle, facts, narrative, concepts, files_read, files_modified, prompt_number, discovery_tokens, created_at, created_at_epoch) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `);for(let h of a){let y=v.run(e,r,h.type,h.title,h.subtitle,JSON.stringify(h.facts),h.narrative,JSON.stringify(h.concepts),JSON.stringify(h.files_read),JSON.stringify(h.files_modified),o||null,c,d,l);f.push(Number(y.lastInsertRowid))}let _;if(n){let y=this.db.prepare(` + `);for(let h of n){let _=p.run(e,r,h.type,h.title,h.subtitle,JSON.stringify(h.facts),h.narrative,JSON.stringify(h.concepts),JSON.stringify(h.files_read),JSON.stringify(h.files_modified),a||null,o,u,c);d.push(Number(_.lastInsertRowid))}let f=null;if(i){let _=this.db.prepare(` INSERT INTO session_summaries (memory_session_id, project, request, investigated, learned, completed, next_steps, notes, prompt_number, discovery_tokens, created_at, created_at_epoch) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `).run(e,r,n.request,n.investigated,n.learned,n.completed,n.next_steps,n.notes,o||null,c,d,l);_=Number(y.lastInsertRowid)}return this.db.prepare(` + `).run(e,r,i.request,i.investigated,i.learned,i.completed,i.next_steps,i.notes,a||null,o,u,c);f=Number(_.lastInsertRowid)}return{observationIds:d,summaryId:f,createdAtEpoch:c}})()}storeObservationsAndMarkComplete(e,r,n,i,a,o,s,c=0,u){let l=u??Date.now(),d=new Date(l).toISOString();return this.db.transaction(()=>{let f=[],h=this.db.prepare(` + INSERT INTO observations + (memory_session_id, project, type, title, subtitle, facts, narrative, concepts, + files_read, files_modified, prompt_number, discovery_tokens, created_at, created_at_epoch) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `);for(let m of n){let v=h.run(e,r,m.type,m.title,m.subtitle,JSON.stringify(m.facts),m.narrative,JSON.stringify(m.concepts),JSON.stringify(m.files_read),JSON.stringify(m.files_modified),s||null,c,d,l);f.push(Number(v.lastInsertRowid))}let _;if(i){let v=this.db.prepare(` + INSERT INTO session_summaries + (memory_session_id, project, request, investigated, learned, completed, + next_steps, notes, prompt_number, discovery_tokens, created_at, created_at_epoch) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `).run(e,r,i.request,i.investigated,i.learned,i.completed,i.next_steps,i.notes,s||null,c,d,l);_=Number(v.lastInsertRowid)}return this.db.prepare(` UPDATE pending_messages SET status = 'processed', @@ -408,12 +425,12 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` tool_input = NULL, tool_response = NULL WHERE id = ? AND status = 'processing' - `).run(l,s),{observationIds:f,summaryId:_,createdAtEpoch:l}})()}getSessionSummariesByIds(e,r={}){if(e.length===0)return[];let{orderBy:a="date_desc",limit:n,project:s}=r,i=a==="date_asc"?"ASC":"DESC",o=n?`LIMIT ${n}`:"",c=e.map(()=>"?").join(","),u=[...e],l=s?`WHERE id IN (${c}) AND project = ?`:`WHERE id IN (${c})`;return s&&u.push(s),this.db.prepare(` + `).run(l,a),{observationIds:f,summaryId:_,createdAtEpoch:l}})()}getSessionSummariesByIds(e,r={}){if(e.length===0)return[];let{orderBy:n="date_desc",limit:i,project:a}=r,o=n==="date_asc"?"ASC":"DESC",s=i?`LIMIT ${i}`:"",c=e.map(()=>"?").join(","),u=[...e],l=a?`WHERE id IN (${c}) AND project = ?`:`WHERE id IN (${c})`;return a&&u.push(a),this.db.prepare(` SELECT * FROM session_summaries ${l} - ORDER BY created_at_epoch ${i} - ${o} - `).all(...u)}getUserPromptsByIds(e,r={}){if(e.length===0)return[];let{orderBy:a="date_desc",limit:n,project:s}=r,i=a==="date_asc"?"ASC":"DESC",o=n?`LIMIT ${n}`:"",c=e.map(()=>"?").join(","),u=[...e],l=s?"AND s.project = ?":"";return s&&u.push(s),this.db.prepare(` + ORDER BY created_at_epoch ${o} + ${s} + `).all(...u)}getUserPromptsByIds(e,r={}){if(e.length===0)return[];let{orderBy:n="date_desc",limit:i,project:a}=r,o=n==="date_asc"?"ASC":"DESC",s=i?`LIMIT ${i}`:"",c=e.map(()=>"?").join(","),u=[...e],l=a?"AND s.project = ?":"";return a&&u.push(a),this.db.prepare(` SELECT up.*, s.project, @@ -421,49 +438,49 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` FROM user_prompts up JOIN sdk_sessions s ON up.content_session_id = s.content_session_id WHERE up.id IN (${c}) ${l} - ORDER BY up.created_at_epoch ${i} - ${o} - `).all(...u)}getTimelineAroundTimestamp(e,r=10,a=10,n){return this.getTimelineAroundObservation(null,e,r,a,n)}getTimelineAroundObservation(e,r,a=10,n=10,s){let i=s?"AND project = ?":"",o=s?[s]:[],c,u;if(e!==null){let m=` + ORDER BY up.created_at_epoch ${o} + ${s} + `).all(...u)}getTimelineAroundTimestamp(e,r=10,n=10,i){return this.getTimelineAroundObservation(null,e,r,n,i)}getTimelineAroundObservation(e,r,n=10,i=10,a){let o=a?"AND project = ?":"",s=a?[a]:[],c,u;if(e!==null){let y=` SELECT id, created_at_epoch FROM observations - WHERE id <= ? ${i} + WHERE id <= ? ${o} ORDER BY id DESC LIMIT ? - `,h=` + `,m=` SELECT id, created_at_epoch FROM observations - WHERE id >= ? ${i} + WHERE id >= ? ${o} ORDER BY id ASC LIMIT ? - `;try{let y=this.db.prepare(m).all(e,...o,a+1),g=this.db.prepare(h).all(e,...o,n+1);if(y.length===0&&g.length===0)return{observations:[],sessions:[],prompts:[]};c=y.length>0?y[y.length-1].created_at_epoch:r,u=g.length>0?g[g.length-1].created_at_epoch:r}catch(y){return P.error("DB","Error getting boundary observations",void 0,{error:y,project:s}),{observations:[],sessions:[],prompts:[]}}}else{let m=` + `;try{let v=this.db.prepare(y).all(e,...s,n+1),g=this.db.prepare(m).all(e,...s,i+1);if(v.length===0&&g.length===0)return{observations:[],sessions:[],prompts:[]};c=v.length>0?v[v.length-1].created_at_epoch:r,u=g.length>0?g[g.length-1].created_at_epoch:r}catch(v){return k.error("DB","Error getting boundary observations",void 0,{error:v,project:a}),{observations:[],sessions:[],prompts:[]}}}else{let y=` SELECT created_at_epoch FROM observations - WHERE created_at_epoch <= ? ${i} + WHERE created_at_epoch <= ? ${o} ORDER BY created_at_epoch DESC LIMIT ? - `,h=` + `,m=` SELECT created_at_epoch FROM observations - WHERE created_at_epoch >= ? ${i} + WHERE created_at_epoch >= ? ${o} ORDER BY created_at_epoch ASC LIMIT ? - `;try{let y=this.db.prepare(m).all(r,...o,a),g=this.db.prepare(h).all(r,...o,n+1);if(y.length===0&&g.length===0)return{observations:[],sessions:[],prompts:[]};c=y.length>0?y[y.length-1].created_at_epoch:r,u=g.length>0?g[g.length-1].created_at_epoch:r}catch(y){return P.error("DB","Error getting boundary timestamps",void 0,{error:y,project:s}),{observations:[],sessions:[],prompts:[]}}}let l=` + `;try{let v=this.db.prepare(y).all(r,...s,n),g=this.db.prepare(m).all(r,...s,i+1);if(v.length===0&&g.length===0)return{observations:[],sessions:[],prompts:[]};c=v.length>0?v[v.length-1].created_at_epoch:r,u=g.length>0?g[g.length-1].created_at_epoch:r}catch(v){return k.error("DB","Error getting boundary timestamps",void 0,{error:v,project:a}),{observations:[],sessions:[],prompts:[]}}}let l=` SELECT * FROM observations - WHERE created_at_epoch >= ? AND created_at_epoch <= ? ${i} + WHERE created_at_epoch >= ? AND created_at_epoch <= ? ${o} ORDER BY created_at_epoch ASC `,d=` SELECT * FROM session_summaries - WHERE created_at_epoch >= ? AND created_at_epoch <= ? ${i} + WHERE created_at_epoch >= ? AND created_at_epoch <= ? ${o} ORDER BY created_at_epoch ASC `,p=` SELECT up.*, s.project, s.memory_session_id FROM user_prompts up JOIN sdk_sessions s ON up.content_session_id = s.content_session_id - WHERE up.created_at_epoch >= ? AND up.created_at_epoch <= ? ${i.replace("project","s.project")} + WHERE up.created_at_epoch >= ? AND up.created_at_epoch <= ? ${o.replace("project","s.project")} ORDER BY up.created_at_epoch ASC - `,f=this.db.prepare(l).all(c,u,...o),v=this.db.prepare(d).all(c,u,...o),_=this.db.prepare(p).all(c,u,...o);return{observations:f,sessions:v.map(m=>({id:m.id,memory_session_id:m.memory_session_id,project:m.project,request:m.request,completed:m.completed,next_steps:m.next_steps,created_at:m.created_at,created_at_epoch:m.created_at_epoch})),prompts:_.map(m=>({id:m.id,content_session_id:m.content_session_id,prompt_number:m.prompt_number,prompt_text:m.prompt_text,project:m.project,created_at:m.created_at,created_at_epoch:m.created_at_epoch}))}}getPromptById(e){return this.db.prepare(` + `,f=this.db.prepare(l).all(c,u,...s),h=this.db.prepare(d).all(c,u,...s),_=this.db.prepare(p).all(c,u,...s);return{observations:f,sessions:h.map(y=>({id:y.id,memory_session_id:y.memory_session_id,project:y.project,request:y.request,completed:y.completed,next_steps:y.next_steps,created_at:y.created_at,created_at_epoch:y.created_at_epoch})),prompts:_.map(y=>({id:y.id,content_session_id:y.content_session_id,prompt_number:y.prompt_number,prompt_text:y.prompt_text,project:y.project,created_at:y.created_at,created_at_epoch:y.created_at_epoch}))}}getPromptById(e){return this.db.prepare(` SELECT p.id, p.content_session_id, @@ -532,23 +549,19 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` content_session_id, prompt_number, prompt_text, created_at, created_at_epoch ) VALUES (?, ?, ?, ?, ?) - `).run(e.content_session_id,e.prompt_number,e.prompt_text,e.created_at,e.created_at_epoch).lastInsertRowid}}}});var Js={};ia(Js,{PendingMessageStore:()=>Io});var Io,Ua=Jr(()=>{"use strict";Io=class{db;maxRetries;constructor(e,r=3){this.db=e,this.maxRetries=r}enqueue(e,r,a){let n=Date.now();return this.db.prepare(` + `).run(e.content_session_id,e.prompt_number,e.prompt_text,e.created_at,e.created_at_epoch).lastInsertRowid}}}});var Ws={};On(Ws,{PendingMessageStore:()=>Ql});var Ql,fo=Gt(()=>{"use strict";Ql=class{db;maxRetries;constructor(e,r=3){this.db=e,this.maxRetries=r}enqueue(e,r,n){let i=Date.now();return this.db.prepare(` INSERT INTO pending_messages ( session_db_id, content_session_id, message_type, tool_name, tool_input, tool_response, cwd, last_assistant_message, prompt_number, status, retry_count, created_at_epoch ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 'pending', 0, ?) - `).run(e,r,a.type,a.tool_name||null,a.tool_input?JSON.stringify(a.tool_input):null,a.tool_response?JSON.stringify(a.tool_response):null,a.cwd||null,a.last_assistant_message||null,a.prompt_number||null,n).lastInsertRowid}claimNextMessage(e){let r=Date.now();return this.db.transaction((n,s)=>{let o=this.db.prepare(` + `).run(e,r,n.type,n.tool_name||null,n.tool_input?JSON.stringify(n.tool_input):null,n.tool_response?JSON.stringify(n.tool_response):null,n.cwd||null,n.last_assistant_message||null,n.prompt_number||null,i).lastInsertRowid}claimAndDelete(e){return this.db.transaction(n=>{let a=this.db.prepare(` SELECT * FROM pending_messages WHERE session_db_id = ? AND status = 'pending' ORDER BY id ASC LIMIT 1 - `).get(n);return o?(this.db.prepare(` - UPDATE pending_messages - SET status = 'processing', started_processing_at_epoch = ? - WHERE id = ? - `).run(s,o.id),{...o,status:"processing",started_processing_at_epoch:s}):null})(e,r)}getAllPending(e){return this.db.prepare(` + `).get(n);return a&&this.db.prepare("DELETE FROM pending_messages WHERE id = ?").run(a.id),a})(e)}getAllPending(e){return this.db.prepare(` SELECT * FROM pending_messages WHERE session_db_id = ? AND status = 'pending' ORDER BY id ASC @@ -590,19 +603,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` WHERE pm.status = 'processed' AND pm.completed_at_epoch > ? ORDER BY pm.completed_at_epoch DESC LIMIT ? - `).all(a,e)}markProcessing(e){let r=Date.now();this.db.prepare(` - UPDATE pending_messages - SET status = 'processing', started_processing_at_epoch = ? - WHERE id = ? AND status = 'pending' - `).run(r,e)}markProcessed(e){let r=Date.now();this.db.prepare(` - UPDATE pending_messages - SET - status = 'processed', - completed_at_epoch = ?, - tool_input = NULL, - tool_response = NULL - WHERE id = ? AND status = 'processing' - `).run(r,e)}markFailed(e){let r=Date.now(),a=this.db.prepare("SELECT retry_count FROM pending_messages WHERE id = ?").get(e);a&&(a.retry_counta.session_db_id)}getSessionInfoForMessage(e){let a=this.db.prepare(` SELECT session_db_id, content_session_id FROM pending_messages WHERE id = ? - `).get(e);return a?{sessionDbId:a.session_db_id,contentSessionId:a.content_session_id}:null}cleanupProcessed(e=100){return this.db.prepare(` - DELETE FROM pending_messages - WHERE status = 'processed' - AND id NOT IN ( - SELECT id FROM pending_messages - WHERE status = 'processed' - ORDER BY completed_at_epoch DESC - LIMIT ? - ) - `).run(e).changes}clearFailed(){return this.db.prepare(` + `).get(e);return n?{sessionDbId:n.session_db_id,contentSessionId:n.content_session_id}:null}clearFailed(){return this.db.prepare(` DELETE FROM pending_messages WHERE status = 'failed' `).run().changes}clearAll(){return this.db.prepare(` DELETE FROM pending_messages WHERE status IN ('pending', 'processing', 'failed') - `).run().changes}toPendingMessage(e){return{type:e.message_type,tool_name:e.tool_name||void 0,tool_input:e.tool_input?JSON.parse(e.tool_input):void 0,tool_response:e.tool_response?JSON.parse(e.tool_response):void 0,prompt_number:e.prompt_number||void 0,cwd:e.cwd||void 0,last_assistant_message:e.last_assistant_message||void 0}}}});var V1={};ia(V1,{ModeManager:()=>dt});var Ao,ol,dt,ln=Jr(()=>{"use strict";Ao=require("fs"),ol=require("path");Ke();vr();dt=class t{static instance=null;activeMode=null;modesDir;constructor(){let e=or(),r=[(0,ol.join)(e,"modes"),(0,ol.join)(e,"..","plugin","modes")],a=r.find(n=>(0,Ao.existsSync)(n));this.modesDir=a||r[0]}static getInstance(){return t.instance||(t.instance=new t),t.instance}parseInheritance(e){let r=e.split("--");if(r.length===1)return{hasParent:!1,parentId:"",overrideId:""};if(r.length>2)throw new Error(`Invalid mode inheritance: ${e}. Only one level of inheritance supported (parent--override)`);return{hasParent:!0,parentId:r[0],overrideId:e}}isPlainObject(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}deepMerge(e,r){let a={...e};for(let n in r){let s=r[n],i=e[n];this.isPlainObject(s)&&this.isPlainObject(i)?a[n]=this.deepMerge(i,s):a[n]=s}return a}loadModeFile(e){let r=(0,ol.join)(this.modesDir,`${e}.json`);if(!(0,Ao.existsSync)(r))throw new Error(`Mode file not found: ${r}`);let a=(0,Ao.readFileSync)(r,"utf-8");return JSON.parse(a)}loadMode(e){let r=this.parseInheritance(e);if(!r.hasParent)try{let c=this.loadModeFile(e);return this.activeMode=c,P.debug("SYSTEM",`Loaded mode: ${c.name} (${e})`,void 0,{types:c.observation_types.map(u=>u.id),concepts:c.observation_concepts.map(u=>u.id)}),c}catch{if(P.warn("SYSTEM",`Mode file not found: ${e}, falling back to 'code'`),e==="code")throw new Error("Critical: code.json mode file missing");return this.loadMode("code")}let{parentId:a,overrideId:n}=r,s;try{s=this.loadMode(a)}catch{P.warn("SYSTEM",`Parent mode '${a}' not found for ${e}, falling back to 'code'`),s=this.loadMode("code")}let i;try{i=this.loadModeFile(n),P.debug("SYSTEM",`Loaded override file: ${n} for parent ${a}`)}catch{return P.warn("SYSTEM",`Override file '${n}' not found, using parent mode '${a}' only`),this.activeMode=s,s}if(!i)return P.warn("SYSTEM",`Invalid override file: ${n}, using parent mode '${a}' only`),this.activeMode=s,s;let o=this.deepMerge(s,i);return this.activeMode=o,P.debug("SYSTEM",`Loaded mode with inheritance: ${o.name} (${e} = ${a} + ${n})`,void 0,{parent:a,override:n,types:o.observation_types.map(c=>c.id),concepts:o.observation_concepts.map(c=>c.id)}),o}getActiveMode(){if(!this.activeMode)throw new Error("No mode loaded. Call loadMode() first.");return this.activeMode}getObservationTypes(){return this.getActiveMode().observation_types}getObservationConcepts(){return this.getActiveMode().observation_concepts}getTypeIcon(e){return this.getObservationTypes().find(a=>a.id===e)?.emoji||"\u{1F4DD}"}getWorkEmoji(e){return this.getObservationTypes().find(a=>a.id===e)?.work_emoji||"\u{1F4DD}"}validateType(e){return this.getObservationTypes().some(r=>r.id===e)}getTypeLabel(e){return this.getObservationTypes().find(a=>a.id===e)?.label||e}}});function yh(t){if(!t)return[];try{let e=JSON.parse(t);return Array.isArray(e)?e:[]}catch(e){return P.debug("PARSER","Failed to parse JSON array, using empty fallback",{preview:t?.substring(0,50)},e),[]}}function $n(t){return new Date(t).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0})}function Ri(t){return new Date(t).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}function Ka(t){return new Date(t).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})}function vV(t,e){return gh.default.isAbsolute(t)?gh.default.relative(e,t):t}function Xa(t,e){let r=yh(t);return r.length>0?vV(r[0],e):"General"}function Xl(t){return t?Math.ceil(t.length/4):0}function ER(t,e){let r=new Map;for(let n of t){let s=e(n),i=Ka(s);r.has(i)||r.set(i,[]),r.get(i).push(n)}let a=Array.from(r.entries()).sort((n,s)=>{let i=new Date(n[0]).getTime(),o=new Date(s[0]).getTime();return i-o});return new Map(a)}var gh,_h=Jr(()=>{"use strict";gh=xt(require("path"),1);Ke()});var PR=V((vQ,RR)=>{"use strict";var kR=Object.getOwnPropertySymbols,_V=Object.prototype.hasOwnProperty,bV=Object.prototype.propertyIsEnumerable;function SV(t){if(t==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function xV(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de",Object.getOwnPropertyNames(t)[0]==="5")return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;var a=Object.getOwnPropertyNames(e).map(function(s){return e[s]});if(a.join("")!=="0123456789")return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach(function(s){n[s]=s}),Object.keys(Object.assign({},n)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}RR.exports=xV()?Object.assign:function(t,e){for(var r,a=SV(t),n,s=1;s{(function(){"use strict";var t=PR(),e=vf(),r={origin:"*",methods:"GET,HEAD,PUT,PATCH,POST,DELETE",preflightContinue:!1,optionsSuccessStatus:204};function a(v){return typeof v=="string"||v instanceof String}function n(v,_){if(Array.isArray(_)){for(var m=0;m<_.length;++m)if(n(v,_[m]))return!0;return!1}else return a(_)?v===_:_ instanceof RegExp?_.test(v):!!_}function s(v,_){var m=_.headers.origin,h=[],y;return!v.origin||v.origin==="*"?h.push([{key:"Access-Control-Allow-Origin",value:"*"}]):a(v.origin)?(h.push([{key:"Access-Control-Allow-Origin",value:v.origin}]),h.push([{key:"Vary",value:"Origin"}])):(y=n(m,v.origin),h.push([{key:"Access-Control-Allow-Origin",value:y?m:!1}]),h.push([{key:"Vary",value:"Origin"}])),h}function i(v){var _=v.methods;return _.join&&(_=v.methods.join(",")),{key:"Access-Control-Allow-Methods",value:_}}function o(v){return v.credentials===!0?{key:"Access-Control-Allow-Credentials",value:"true"}:null}function c(v,_){var m=v.allowedHeaders||v.headers,h=[];return m?m.join&&(m=m.join(",")):(m=_.headers["access-control-request-headers"],h.push([{key:"Vary",value:"Access-Control-Request-Headers"}])),m&&m.length&&h.push([{key:"Access-Control-Allow-Headers",value:m}]),h}function u(v){var _=v.exposedHeaders;if(_)_.join&&(_=_.join(","));else return null;return _&&_.length?{key:"Access-Control-Expose-Headers",value:_}:null}function l(v){var _=(typeof v.maxAge=="number"||v.maxAge)&&v.maxAge.toString();return _&&_.length?{key:"Access-Control-Max-Age",value:_}:null}function d(v,_){for(var m=0,h=v.length;m{"use strict";FR=xt(require("path"),1);Ke()});var Eh={};ia(Eh,{generateContext:()=>$V});function TV(){let t=cd.default.join((0,ud.homedir)(),".claude-mem","settings.json"),e=Be.loadFromFile(t),r=e.CLAUDE_MEM_MODE,a=r==="code"||r.startsWith("code--"),n,s;if(a)n=new Set(e.CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES.split(",").map(i=>i.trim()).filter(Boolean)),s=new Set(e.CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS.split(",").map(i=>i.trim()).filter(Boolean));else{let i=dt.getInstance().getActiveMode();n=new Set(i.observation_types.map(o=>o.id)),s=new Set(i.observation_concepts.map(o=>o.id))}return{totalObservationCount:parseInt(e.CLAUDE_MEM_CONTEXT_OBSERVATIONS,10),fullObservationCount:parseInt(e.CLAUDE_MEM_CONTEXT_FULL_COUNT,10),sessionCount:parseInt(e.CLAUDE_MEM_CONTEXT_SESSION_COUNT,10),showReadTokens:e.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS==="true",showWorkTokens:e.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS==="true",showSavingsAmount:e.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT==="true",showSavingsPercent:e.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT==="true",observationTypes:n,observationConcepts:s,fullObservationField:e.CLAUDE_MEM_CONTEXT_FULL_FIELD,showLastSummary:e.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY==="true",showLastMessage:e.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE==="true"}}function od(t,e,r,a){return e?a?[`${r}${t}:${pe.reset} ${e}`,""]:[`**${t}**: ${e}`,""]:[]}function RV(t){return t.replace(/\//g,"-")}function PV(t){try{if(!(0,Oi.existsSync)(t))return{userMessage:"",assistantMessage:""};let e=(0,Oi.readFileSync)(t,"utf-8").trim();if(!e)return{userMessage:"",assistantMessage:""};let r=e.split(` -`).filter(n=>n.trim()),a="";for(let n=r.length-1;n>=0;n--)try{let s=r[n];if(!s.includes('"type":"assistant"'))continue;let i=JSON.parse(s);if(i.type==="assistant"&&i.message?.content&&Array.isArray(i.message.content)){let o="";for(let c of i.message.content)c.type==="text"&&(o+=c.text);if(o=o.replace(/[\s\S]*?<\/system-reminder>/g,"").trim(),o){a=o;break}}}catch(s){P.debug("PARSER","Skipping malformed transcript line",{lineIndex:n},s);continue}return{userMessage:"",assistantMessage:a}}catch(e){return P.failure("WORKER","Failed to extract prior messages from transcript",{transcriptPath:t},e),{userMessage:"",assistantMessage:""}}}async function $V(t,e=!1){let r=TV(),a=t?.cwd??process.cwd(),n=UR(a),s=null;try{s=new Gn}catch(h){if(h.code==="ERR_DLOPEN_FAILED"){try{(0,Oi.unlinkSync)(EV)}catch(y){P.debug("SYSTEM","Marker file cleanup failed (may not exist)",{},y)}return P.error("SYSTEM","Native module rebuild needed - restart Claude Code to auto-fix"),""}throw h}let i=Array.from(r.observationTypes),o=i.map(()=>"?").join(","),c=Array.from(r.observationConcepts),u=c.map(()=>"?").join(","),l=s.db.prepare(` + `).run().changes}toPendingMessage(e){return{type:e.message_type,tool_name:e.tool_name||void 0,tool_input:e.tool_input?JSON.parse(e.tool_input):void 0,tool_response:e.tool_response?JSON.parse(e.tool_response):void 0,prompt_number:e.prompt_number||void 0,cwd:e.cwd||void 0,last_assistant_message:e.last_assistant_message||void 0}}}});var v4={};On(v4,{ModeManager:()=>He});var ed,yh,He,jr=Gt(()=>{"use strict";ed=require("fs"),yh=require("path");Ne();cn();He=class t{static instance=null;activeMode=null;modesDir;constructor(){let e=Gr(),r=[(0,yh.join)(e,"modes"),(0,yh.join)(e,"..","plugin","modes")],n=r.find(i=>(0,ed.existsSync)(i));this.modesDir=n||r[0]}static getInstance(){return t.instance||(t.instance=new t),t.instance}parseInheritance(e){let r=e.split("--");if(r.length===1)return{hasParent:!1,parentId:"",overrideId:""};if(r.length>2)throw new Error(`Invalid mode inheritance: ${e}. Only one level of inheritance supported (parent--override)`);return{hasParent:!0,parentId:r[0],overrideId:e}}isPlainObject(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}deepMerge(e,r){let n={...e};for(let i in r){let a=r[i],o=e[i];this.isPlainObject(a)&&this.isPlainObject(o)?n[i]=this.deepMerge(o,a):n[i]=a}return n}loadModeFile(e){let r=(0,yh.join)(this.modesDir,`${e}.json`);if(!(0,ed.existsSync)(r))throw new Error(`Mode file not found: ${r}`);let n=(0,ed.readFileSync)(r,"utf-8");return JSON.parse(n)}loadMode(e){let r=this.parseInheritance(e);if(!r.hasParent)try{let c=this.loadModeFile(e);return this.activeMode=c,k.debug("SYSTEM",`Loaded mode: ${c.name} (${e})`,void 0,{types:c.observation_types.map(u=>u.id),concepts:c.observation_concepts.map(u=>u.id)}),c}catch{if(k.warn("SYSTEM",`Mode file not found: ${e}, falling back to 'code'`),e==="code")throw new Error("Critical: code.json mode file missing");return this.loadMode("code")}let{parentId:n,overrideId:i}=r,a;try{a=this.loadMode(n)}catch{k.warn("SYSTEM",`Parent mode '${n}' not found for ${e}, falling back to 'code'`),a=this.loadMode("code")}let o;try{o=this.loadModeFile(i),k.debug("SYSTEM",`Loaded override file: ${i} for parent ${n}`)}catch{return k.warn("SYSTEM",`Override file '${i}' not found, using parent mode '${n}' only`),this.activeMode=a,a}if(!o)return k.warn("SYSTEM",`Invalid override file: ${i}, using parent mode '${n}' only`),this.activeMode=a,a;let s=this.deepMerge(a,o);return this.activeMode=s,k.debug("SYSTEM",`Loaded mode with inheritance: ${s.name} (${e} = ${n} + ${i})`,void 0,{parent:n,override:i,types:s.observation_types.map(c=>c.id),concepts:s.observation_concepts.map(c=>c.id)}),s}getActiveMode(){if(!this.activeMode)throw new Error("No mode loaded. Call loadMode() first.");return this.activeMode}getObservationTypes(){return this.getActiveMode().observation_types}getObservationConcepts(){return this.getActiveMode().observation_concepts}getTypeIcon(e){return this.getObservationTypes().find(n=>n.id===e)?.emoji||"\u{1F4DD}"}getWorkEmoji(e){return this.getObservationTypes().find(n=>n.id===e)?.work_emoji||"\u{1F4DD}"}validateType(e){return this.getObservationTypes().some(r=>r.id===e)}getTypeLabel(e){return this.getObservationTypes().find(n=>n.id===e)?.label||e}}});function X$(t){if(!t)return[];try{let e=JSON.parse(t);return Array.isArray(e)?e:[]}catch(e){return k.debug("PARSER","Failed to parse JSON array, using empty fallback",{preview:t?.substring(0,50)},e),[]}}function In(t){return new Date(t).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0})}function Mr(t){return new Date(t).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}function Fi(t){return new Date(t).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})}function pfe(t,e){return J$.default.isAbsolute(t)?J$.default.relative(e,t):t}function Yn(t,e){let r=X$(t);return r.length>0?pfe(r[0],e):"General"}function Sc(t){return t?Math.ceil(t.length/4):0}function sg(t,e){let r=new Map;for(let i of t){let a=e(i),o=Fi(a);r.has(o)||r.set(o,[]),r.get(o).push(i)}let n=Array.from(r.entries()).sort((i,a)=>{let o=new Date(i[0]).getTime(),s=new Date(a[0]).getTime();return o-s});return new Map(n)}var J$,kd=Gt(()=>{"use strict";J$=yt(require("path"),1);Ne()});function aU(t){if(!t||t.trim()==="")return k.warn("PROJECT_NAME","Empty cwd provided, using fallback",{cwd:t}),"unknown-project";let e=iU.default.basename(t);if(e===""){if(process.platform==="win32"){let n=t.match(/^([A-Z]):\\/i);if(n){let a=`drive-${n[1].toUpperCase()}`;return k.info("PROJECT_NAME","Drive root detected",{cwd:t,projectName:a}),a}}return k.warn("PROJECT_NAME","Root directory detected, using fallback",{cwd:t}),"unknown-project"}return e}var iU,oU=Gt(()=>{"use strict";iU=yt(require("path"),1);Ne()});function eE(){let t=sU.default.join((0,cU.homedir)(),".claude-mem","settings.json"),e=Ke.loadFromFile(t),r=e.CLAUDE_MEM_MODE,n=r==="code"||r.startsWith("code--"),i,a;if(n)i=new Set(e.CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES.split(",").map(o=>o.trim()).filter(Boolean)),a=new Set(e.CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS.split(",").map(o=>o.trim()).filter(Boolean));else{let o=He.getInstance().getActiveMode();i=new Set(o.observation_types.map(s=>s.id)),a=new Set(o.observation_concepts.map(s=>s.id))}return{totalObservationCount:parseInt(e.CLAUDE_MEM_CONTEXT_OBSERVATIONS,10),fullObservationCount:parseInt(e.CLAUDE_MEM_CONTEXT_FULL_COUNT,10),sessionCount:parseInt(e.CLAUDE_MEM_CONTEXT_SESSION_COUNT,10),showReadTokens:e.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS==="true",showWorkTokens:e.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS==="true",showSavingsAmount:e.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT==="true",showSavingsPercent:e.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT==="true",observationTypes:i,observationConcepts:a,fullObservationField:e.CLAUDE_MEM_CONTEXT_FULL_FIELD,showLastSummary:e.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY==="true",showLastMessage:e.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE==="true"}}var sU,cU,tE=Gt(()=>{"use strict";sU=yt(require("path"),1),cU=require("os");on();jr()});var ne,uU,lU,Nd=Gt(()=>{"use strict";ne={reset:"\x1B[0m",bright:"\x1B[1m",dim:"\x1B[2m",cyan:"\x1B[36m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",gray:"\x1B[90m",red:"\x1B[31m"},uU=4,lU=1});function rE(t){let e=(t.title?.length||0)+(t.subtitle?.length||0)+(t.narrative?.length||0)+JSON.stringify(t.facts||[]).length;return Math.ceil(e/uU)}function nE(t){let e=t.length,r=t.reduce((o,s)=>o+rE(s),0),n=t.reduce((o,s)=>o+(s.discovery_tokens||0),0),i=n-r,a=n>0?Math.round(i/n*100):0;return{totalObservations:e,totalReadTokens:r,totalDiscoveryTokens:n,savings:i,savingsPercent:a}}function gfe(t){return He.getInstance().getWorkEmoji(t)}function $c(t,e){let r=rE(t),n=t.discovery_tokens||0,i=gfe(t.type),a=n>0?`${i} ${n.toLocaleString()}`:"-";return{readTokens:r,discoveryTokens:n,discoveryDisplay:a,workEmoji:i}}function yg(t){return t.showReadTokens||t.showWorkTokens||t.showSavingsAmount||t.showSavingsPercent}var xo=Gt(()=>{"use strict";Nd();jr()});function iE(t,e,r){let n=Array.from(r.observationTypes),i=n.map(()=>"?").join(","),a=Array.from(r.observationConcepts),o=a.map(()=>"?").join(",");return t.db.prepare(` SELECT id, memory_session_id, type, title, subtitle, narrative, facts, concepts, files_read, files_modified, discovery_tokens, created_at, created_at_epoch FROM observations WHERE project = ? - AND type IN (${o}) + AND type IN (${i}) AND EXISTS ( SELECT 1 FROM json_each(concepts) - WHERE value IN (${u}) + WHERE value IN (${o}) ) ORDER BY created_at_epoch DESC LIMIT ? - `).all(n,...i,...c,r.totalObservationCount),d=s.db.prepare(` + `).all(e,...n,...a,r.totalObservationCount)}function aE(t,e,r){return t.db.prepare(` SELECT id, memory_session_id, request, investigated, learned, completed, next_steps, created_at, created_at_epoch FROM session_summaries WHERE project = ? ORDER BY created_at_epoch DESC LIMIT ? - `).all(n,r.sessionCount+kV),p="",f="";if(r.showLastMessage&&l.length>0){let h=t?.session_id,y=l.find(g=>g.memory_session_id!==h);if(y){let g=y.memory_session_id,b=RV(a),w=cd.default.join((0,ud.homedir)(),".claude","projects",b,`${g}.jsonl`),S=PV(w);p=S.userMessage,f=S.assistantMessage}}if(l.length===0&&d.length===0)return s?.close(),e?` -${pe.bright}${pe.cyan}[${n}] recent context${pe.reset} -${pe.gray}${"\u2500".repeat(60)}${pe.reset} + `).all(e,r.sessionCount+lU)}function vfe(t){return t.replace(/\//g,"-")}function yfe(t){try{if(!(0,_g.existsSync)(t))return{userMessage:"",assistantMessage:""};let e=(0,_g.readFileSync)(t,"utf-8").trim();if(!e)return{userMessage:"",assistantMessage:""};let r=e.split(` +`).filter(i=>i.trim()),n="";for(let i=r.length-1;i>=0;i--)try{let a=r[i];if(!a.includes('"type":"assistant"'))continue;let o=JSON.parse(a);if(o.type==="assistant"&&o.message?.content&&Array.isArray(o.message.content)){let s="";for(let c of o.message.content)c.type==="text"&&(s+=c.text);if(s=s.replace(/[\s\S]*?<\/system-reminder>/g,"").trim(),s){n=s;break}}}catch(a){k.debug("PARSER","Skipping malformed transcript line",{lineIndex:i},a);continue}return{userMessage:"",assistantMessage:n}}catch(e){return k.failure("WORKER","Failed to extract prior messages from transcript",{transcriptPath:t},e),{userMessage:"",assistantMessage:""}}}function oE(t,e,r,n){if(!e.showLastMessage||t.length===0)return{userMessage:"",assistantMessage:""};let i=t.find(c=>c.memory_session_id!==r);if(!i)return{userMessage:"",assistantMessage:""};let a=i.memory_session_id,o=vfe(n),s=dU.default.join((0,pU.homedir)(),".claude","projects",o,`${a}.jsonl`);return yfe(s)}function fU(t,e){let r=e[0]?.id;return t.map((n,i)=>{let a=i===0?null:e[i+1];return{...n,displayEpoch:a?a.created_at_epoch:n.created_at_epoch,displayTime:a?a.created_at:n.created_at,shouldShowLink:n.id!==r}})}function sE(t,e){let r=[...t.map(n=>({type:"observation",data:n})),...e.map(n=>({type:"summary",data:n}))];return r.sort((n,i)=>{let a=n.type==="observation"?n.data.created_at_epoch:n.data.displayEpoch,o=i.type==="observation"?i.data.created_at_epoch:i.data.displayEpoch;return a-o}),r}function mU(t,e){return new Set(t.slice(0,e).map(r=>r.id))}var dU,pU,_g,cE=Gt(()=>{"use strict";dU=yt(require("path"),1),pU=require("os"),_g=require("fs");Ne();Nd()});function hU(t){return[`# [${t}] recent context`,""]}function gU(){return[`**Legend:** session-request | ${He.getInstance().getActiveMode().observation_types.map(r=>`${r.emoji} ${r.id}`).join(" | ")}`,""]}function vU(){return["**Column Key**:","- **Read**: Tokens to read this observation (cost to learn it now)","- **Work**: Tokens spent on work that produced this record ( research, building, deciding)",""]}function yU(){return["**Context Index:** This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.","","When you need implementation details, rationale, or debugging context:","- Use the mem-search skill to fetch full observations on-demand","- Critical types ( bugfix, decision) often need detailed fetching","- Trust this index over re-reading code for past decisions and learnings",""]}function _U(t,e){let r=[];if(r.push("**Context Economics**:"),r.push(`- Loading: ${t.totalObservations} observations (${t.totalReadTokens.toLocaleString()} tokens to read)`),r.push(`- Work investment: ${t.totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions`),t.totalDiscoveryTokens>0&&(e.showSavingsAmount||e.showSavingsPercent)){let n="- Your savings: ";e.showSavingsAmount&&e.showSavingsPercent?n+=`${t.savings.toLocaleString()} tokens (${t.savingsPercent}% reduction from reuse)`:e.showSavingsAmount?n+=`${t.savings.toLocaleString()} tokens`:n+=`${t.savingsPercent}% reduction from reuse`,r.push(n)}return r.push(""),r}function bU(t){return[`### ${t}`,""]}function xU(t){return[`**${t}**`,"| ID | Time | T | Title | Read | Work |","|----|------|---|-------|------|------|"]}function SU(t,e,r){let n=t.title||"Untitled",i=He.getInstance().getTypeIcon(t.type),{readTokens:a,discoveryDisplay:o}=$c(t,r),s=r.showReadTokens?`~${a}`:"",c=r.showWorkTokens?o:"";return`| #${t.id} | ${e||'"'} | ${i} | ${n} | ${s} | ${c} |`}function wU(t,e,r,n){let i=[],a=t.title||"Untitled",o=He.getInstance().getTypeIcon(t.type),{readTokens:s,discoveryDisplay:c}=$c(t,n);i.push(`**#${t.id}** ${e||'"'} ${o} **${a}**`),r&&(i.push(""),i.push(r),i.push(""));let u=[];return n.showReadTokens&&u.push(`Read: ~${s}`),n.showWorkTokens&&u.push(`Work: ${c}`),u.length>0&&i.push(u.join(", ")),i.push(""),i}function $U(t,e){let r=`${t.request||"Session started"} (${e})`;return[`**#S${t.id}** ${r}`,""]}function jd(t,e){return e?[`**${t}**: ${e}`,""]:[]}function EU(t){return t.assistantMessage?["","---","","**Previously**","",`A: ${t.assistantMessage}`,""]:[]}function kU(t,e){return["",`Access ${Math.round(t/1e3)}k tokens of past research & decisions for just ${e.toLocaleString()}t. Use the mem-search skill to access memories by ID instead of re-reading files.`]}function TU(t){return`# [${t}] recent context -${pe.dim}No previous sessions found for this project yet.${pe.reset} -`:`# [${n}] recent context +No previous sessions found for this project yet.`}var Ec=Gt(()=>{"use strict";jr();xo()});function IU(t){return["",`${ne.bright}${ne.cyan}[${t}] recent context${ne.reset}`,`${ne.gray}${"\u2500".repeat(60)}${ne.reset}`,""]}function PU(){let e=He.getInstance().getActiveMode().observation_types.map(r=>`${r.emoji} ${r.id}`).join(" | ");return[`${ne.dim}Legend: session-request | ${e}${ne.reset}`,""]}function RU(){return[`${ne.bright}Column Key${ne.reset}`,`${ne.dim} Read: Tokens to read this observation (cost to learn it now)${ne.reset}`,`${ne.dim} Work: Tokens spent on work that produced this record ( research, building, deciding)${ne.reset}`,""]}function OU(){return[`${ne.dim}Context Index: This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.${ne.reset}`,"",`${ne.dim}When you need implementation details, rationale, or debugging context:${ne.reset}`,`${ne.dim} - Use the mem-search skill to fetch full observations on-demand${ne.reset}`,`${ne.dim} - Critical types ( bugfix, decision) often need detailed fetching${ne.reset}`,`${ne.dim} - Trust this index over re-reading code for past decisions and learnings${ne.reset}`,""]}function CU(t,e){let r=[];if(r.push(`${ne.bright}${ne.cyan}Context Economics${ne.reset}`),r.push(`${ne.dim} Loading: ${t.totalObservations} observations (${t.totalReadTokens.toLocaleString()} tokens to read)${ne.reset}`),r.push(`${ne.dim} Work investment: ${t.totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions${ne.reset}`),t.totalDiscoveryTokens>0&&(e.showSavingsAmount||e.showSavingsPercent)){let n=" Your savings: ";e.showSavingsAmount&&e.showSavingsPercent?n+=`${t.savings.toLocaleString()} tokens (${t.savingsPercent}% reduction from reuse)`:e.showSavingsAmount?n+=`${t.savings.toLocaleString()} tokens`:n+=`${t.savingsPercent}% reduction from reuse`,r.push(`${ne.green}${n}${ne.reset}`)}return r.push(""),r}function NU(t){return[`${ne.bright}${ne.cyan}${t}${ne.reset}`,""]}function jU(t){return[`${ne.dim}${t}${ne.reset}`]}function AU(t,e,r,n){let i=t.title||"Untitled",a=He.getInstance().getTypeIcon(t.type),{readTokens:o,discoveryTokens:s,workEmoji:c}=$c(t,n),u=r?`${ne.dim}${e}${ne.reset}`:" ".repeat(e.length),l=n.showReadTokens&&o>0?`${ne.dim}(~${o}t)${ne.reset}`:"",d=n.showWorkTokens&&s>0?`${ne.dim}(${c} ${s.toLocaleString()}t)${ne.reset}`:"";return` ${ne.dim}#${t.id}${ne.reset} ${u} ${a} ${i} ${l} ${d}`}function MU(t,e,r,n,i){let a=[],o=t.title||"Untitled",s=He.getInstance().getTypeIcon(t.type),{readTokens:c,discoveryTokens:u,workEmoji:l}=$c(t,i),d=r?`${ne.dim}${e}${ne.reset}`:" ".repeat(e.length),p=i.showReadTokens&&c>0?`${ne.dim}(~${c}t)${ne.reset}`:"",f=i.showWorkTokens&&u>0?`${ne.dim}(${l} ${u.toLocaleString()}t)${ne.reset}`:"";return a.push(` ${ne.dim}#${t.id}${ne.reset} ${d} ${s} ${ne.bright}${o}${ne.reset}`),n&&a.push(` ${ne.dim}${n}${ne.reset}`),(p||f)&&a.push(` ${p} ${f}`),a.push(""),a}function DU(t,e){let r=`${t.request||"Session started"} (${e})`;return[`${ne.yellow}#S${t.id}${ne.reset} ${r}`,""]}function Ad(t,e,r){return e?[`${r}${t}:${ne.reset} ${e}`,""]:[]}function zU(t){return t.assistantMessage?["","---","",`${ne.bright}${ne.magenta}Previously${ne.reset}`,"",`${ne.dim}A: ${t.assistantMessage}${ne.reset}`,""]:[]}function UU(t,e){let r=Math.round(t/1e3);return["",`${ne.dim}Access ${r}k tokens of past research & decisions for just ${e.toLocaleString()}t. Use the mem-search skill to access memories by ID instead of re-reading files.${ne.reset}`]}function qU(t){return` +${ne.bright}${ne.cyan}[${t}] recent context${ne.reset} +${ne.gray}${"\u2500".repeat(60)}${ne.reset} -No previous sessions found for this project yet.`;let v=d.slice(0,r.sessionCount),_=l,m=[];if(e?(m.push(""),m.push(`${pe.bright}${pe.cyan}[${n}] recent context${pe.reset}`),m.push(`${pe.gray}${"\u2500".repeat(60)}${pe.reset}`),m.push("")):(m.push(`# [${n}] recent context`),m.push("")),_.length>0){let y=dt.getInstance().getActiveMode().observation_types.map(ae=>`${ae.emoji} ${ae.id}`).join(" | ");e?m.push(`${pe.dim}Legend: \u{1F3AF} session-request | ${y}${pe.reset}`):m.push(`**Legend:** \u{1F3AF} session-request | ${y}`),m.push(""),e?(m.push(`${pe.bright}\u{1F4A1} Column Key${pe.reset}`),m.push(`${pe.dim} Read: Tokens to read this observation (cost to learn it now)${pe.reset}`),m.push(`${pe.dim} Work: Tokens spent on work that produced this record (\u{1F50D} research, \u{1F6E0}\uFE0F building, \u2696\uFE0F deciding)${pe.reset}`)):(m.push("\u{1F4A1} **Column Key**:"),m.push("- **Read**: Tokens to read this observation (cost to learn it now)"),m.push("- **Work**: Tokens spent on work that produced this record (\u{1F50D} research, \u{1F6E0}\uFE0F building, \u2696\uFE0F deciding)")),m.push(""),e?(m.push(`${pe.dim}\u{1F4A1} Context Index: This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.${pe.reset}`),m.push(""),m.push(`${pe.dim}When you need implementation details, rationale, or debugging context:${pe.reset}`),m.push(`${pe.dim} - Use the mem-search skill to fetch full observations on-demand${pe.reset}`),m.push(`${pe.dim} - Critical types (\u{1F534} bugfix, \u2696\uFE0F decision) often need detailed fetching${pe.reset}`),m.push(`${pe.dim} - Trust this index over re-reading code for past decisions and learnings${pe.reset}`)):(m.push("\u{1F4A1} **Context Index:** This semantic index (titles, types, files, tokens) is usually sufficient to understand past work."),m.push(""),m.push("When you need implementation details, rationale, or debugging context:"),m.push("- Use the mem-search skill to fetch full observations on-demand"),m.push("- Critical types (\u{1F534} bugfix, \u2696\uFE0F decision) often need detailed fetching"),m.push("- Trust this index over re-reading code for past decisions and learnings")),m.push("");let g=l.length,b=l.reduce((ae,re)=>{let U=(re.title?.length||0)+(re.subtitle?.length||0)+(re.narrative?.length||0)+JSON.stringify(re.facts||[]).length;return ae+Math.ceil(U/HR)},0),w=l.reduce((ae,re)=>ae+(re.discovery_tokens||0),0),S=w-b,E=w>0?Math.round(S/w*100):0,T=r.showReadTokens||r.showWorkTokens||r.showSavingsAmount||r.showSavingsPercent;if(T)if(e){if(m.push(`${pe.bright}${pe.cyan}\u{1F4CA} Context Economics${pe.reset}`),m.push(`${pe.dim} Loading: ${g} observations (${b.toLocaleString()} tokens to read)${pe.reset}`),m.push(`${pe.dim} Work investment: ${w.toLocaleString()} tokens spent on research, building, and decisions${pe.reset}`),w>0&&(r.showSavingsAmount||r.showSavingsPercent)){let ae=" Your savings: ";r.showSavingsAmount&&r.showSavingsPercent?ae+=`${S.toLocaleString()} tokens (${E}% reduction from reuse)`:r.showSavingsAmount?ae+=`${S.toLocaleString()} tokens`:ae+=`${E}% reduction from reuse`,m.push(`${pe.green}${ae}${pe.reset}`)}m.push("")}else{if(m.push("\u{1F4CA} **Context Economics**:"),m.push(`- Loading: ${g} observations (${b.toLocaleString()} tokens to read)`),m.push(`- Work investment: ${w.toLocaleString()} tokens spent on research, building, and decisions`),w>0&&(r.showSavingsAmount||r.showSavingsPercent)){let ae="- Your savings: ";r.showSavingsAmount&&r.showSavingsPercent?ae+=`${S.toLocaleString()} tokens (${E}% reduction from reuse)`:r.showSavingsAmount?ae+=`${S.toLocaleString()} tokens`:ae+=`${E}% reduction from reuse`,m.push(ae)}m.push("")}let R=d[0]?.id,M=v.map((ae,re)=>{let U=re===0?null:d[re+1];return{...ae,displayEpoch:U?U.created_at_epoch:ae.created_at_epoch,displayTime:U?U.created_at:ae.created_at,shouldShowLink:ae.id!==R}}),j=new Set(l.slice(0,r.fullObservationCount).map(ae=>ae.id)),q=[..._.map(ae=>({type:"observation",data:ae})),...M.map(ae=>({type:"summary",data:ae}))];q.sort((ae,re)=>{let U=ae.type==="observation"?ae.data.created_at_epoch:ae.data.displayEpoch,$=re.type==="observation"?re.data.created_at_epoch:re.data.displayEpoch;return U-$});let H=new Map;for(let ae of q){let re=ae.type==="observation"?ae.data.created_at:ae.data.displayTime,U=Ka(re);H.has(U)||H.set(U,[]),H.get(U).push(ae)}let N=Array.from(H.entries()).sort((ae,re)=>{let U=new Date(ae[0]).getTime(),$=new Date(re[0]).getTime();return U-$});for(let[ae,re]of N){e?(m.push(`${pe.bright}${pe.cyan}${ae}${pe.reset}`),m.push("")):(m.push(`### ${ae}`),m.push(""));let U=null,$="",z=!1;for(let A of re)if(A.type==="summary"){z&&(m.push(""),z=!1,U=null,$="");let x=A.data,k=`${x.request||"Session started"} (${$n(x.displayTime)})`;e?m.push(`\u{1F3AF} ${pe.yellow}#S${x.id}${pe.reset} ${k}`):m.push(`**\u{1F3AF} #S${x.id}** ${k}`),m.push("")}else{let x=A.data,k=Xa(x.files_modified,a);k!==U&&(z&&m.push(""),e?m.push(`${pe.dim}${k}${pe.reset}`):m.push(`**${k}**`),e||(m.push("| ID | Time | T | Title | Read | Work |"),m.push("|----|------|---|-------|------|------|")),U=k,z=!0,$="");let D=Ri(x.created_at),K=x.title||"Untitled",J=dt.getInstance().getTypeIcon(x.type),de=(x.title?.length||0)+(x.subtitle?.length||0)+(x.narrative?.length||0)+JSON.stringify(x.facts||[]).length,se=Math.ceil(de/HR),me=x.discovery_tokens||0,C=dt.getInstance().getWorkEmoji(x.type),I=me>0?`${C} ${me.toLocaleString()}`:"-",F=D!==$,Z=F?D:"";if($=D,j.has(x.id)){let ce=r.fullObservationField==="narrative"?x.narrative:x.facts?yh(x.facts).join(` -`):null;if(e){let ke=F?`${pe.dim}${D}${pe.reset}`:" ".repeat(D.length),Ne=r.showReadTokens&&se>0?`${pe.dim}(~${se}t)${pe.reset}`:"",Me=r.showWorkTokens&&me>0?`${pe.dim}(${C} ${me.toLocaleString()}t)${pe.reset}`:"";m.push(` ${pe.dim}#${x.id}${pe.reset} ${ke} ${J} ${pe.bright}${K}${pe.reset}`),ce&&m.push(` ${pe.dim}${ce}${pe.reset}`),(Ne||Me)&&m.push(` ${Ne} ${Me}`),m.push("")}else{z&&(m.push(""),z=!1),m.push(`**#${x.id}** ${Z||"\u2033"} ${J} **${K}**`),ce&&(m.push(""),m.push(ce),m.push(""));let ke=[];r.showReadTokens&&ke.push(`Read: ~${se}`),r.showWorkTokens&&ke.push(`Work: ${I}`),ke.length>0&&m.push(ke.join(", ")),m.push(""),U=null}}else if(e){let ce=F?`${pe.dim}${D}${pe.reset}`:" ".repeat(D.length),ke=r.showReadTokens&&se>0?`${pe.dim}(~${se}t)${pe.reset}`:"",Ne=r.showWorkTokens&&me>0?`${pe.dim}(${C} ${me.toLocaleString()}t)${pe.reset}`:"";m.push(` ${pe.dim}#${x.id}${pe.reset} ${ce} ${J} ${K} ${ke} ${Ne}`)}else{let ce=r.showReadTokens?`~${se}`:"",ke=r.showWorkTokens?I:"";m.push(`| #${x.id} | ${Z||"\u2033"} | ${J} | ${K} | ${ce} | ${ke} |`)}}z&&m.push("")}let W=d[0],oe=l[0];if(r.showLastSummary&&W&&(W.investigated||W.learned||W.completed||W.next_steps)&&(!oe||W.created_at_epoch>oe.created_at_epoch)&&(m.push(...od("Investigated",W.investigated,pe.blue,e)),m.push(...od("Learned",W.learned,pe.yellow,e)),m.push(...od("Completed",W.completed,pe.green,e)),m.push(...od("Next Steps",W.next_steps,pe.magenta,e))),f&&(m.push(""),m.push("---"),m.push(""),e?(m.push(`${pe.bright}${pe.magenta}\u{1F4CB} Previously${pe.reset}`),m.push(""),m.push(`${pe.dim}A: ${f}${pe.reset}`)):(m.push("**\u{1F4CB} Previously**"),m.push(""),m.push(`A: ${f}`)),m.push("")),T&&w>0&&S>0){let ae=Math.round(w/1e3);m.push(""),e?m.push(`${pe.dim}\u{1F4B0} Access ${ae}k tokens of past research & decisions for just ${b.toLocaleString()}t. Use the mem-search skill to access memories by ID instead of re-reading files.${pe.reset}`):m.push(`\u{1F4B0} Access ${ae}k tokens of past research & decisions for just ${b.toLocaleString()}t. Use the mem-search skill to access memories by ID instead of re-reading files.`)}}return s?.close(),m.join(` -`).trimEnd()}var cd,ud,Oi,EV,HR,kV,pe,Th=Jr(()=>{"use strict";cd=xt(require("path"),1),ud=require("os"),Oi=require("fs");el();Ke();hr();_h();zR();ln();EV=cd.default.join((0,ud.homedir)(),".claude","plugins","marketplaces","thedotmack","plugin",".install-version");HR=4,kV=1,pe={reset:"\x1B[0m",bright:"\x1B[1m",dim:"\x1B[2m",cyan:"\x1B[36m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",gray:"\x1B[90m",red:"\x1B[31m"}});var ZV={};ia(ZV,{WorkerService:()=>hd,updateCursorContextForProject:()=>Wa});module.exports=dc(ZV);var WR=xt(gu(),1),xe=xt(require("path"),1),Ih=xt(require("fs"),1);var O={};ia(O,{BRAND:()=>Z2,DIRTY:()=>xa,EMPTY_PATH:()=>T2,INVALID:()=>Pe,NEVER:()=>C4,OK:()=>Ht,ParseStatus:()=>Ft,Schema:()=>Fe,ZodAny:()=>Un,ZodArray:()=>xn,ZodBigInt:()=>Ea,ZodBoolean:()=>Ta,ZodBranded:()=>bo,ZodCatch:()=>ja,ZodDate:()=>ka,ZodDefault:()=>Ma,ZodDiscriminatedUnion:()=>bu,ZodEffects:()=>Rr,ZodEnum:()=>Aa,ZodError:()=>nr,ZodFirstPartyTypeKind:()=>Oe,ZodFunction:()=>xu,ZodIntersection:()=>Oa,ZodIssueCode:()=>ie,ZodLazy:()=>Ca,ZodLiteral:()=>Ia,ZodMap:()=>zs,ZodNaN:()=>Bs,ZodNativeEnum:()=>Na,ZodNever:()=>zr,ZodNull:()=>Pa,ZodNullable:()=>cn,ZodNumber:()=>wa,ZodObject:()=>ar,ZodOptional:()=>Tr,ZodParsedType:()=>ge,ZodPipeline:()=>So,ZodPromise:()=>zn,ZodReadonly:()=>Da,ZodRecord:()=>Su,ZodSchema:()=>Fe,ZodSet:()=>Hs,ZodString:()=>Fn,ZodSymbol:()=>Fs,ZodTransformer:()=>Rr,ZodTuple:()=>on,ZodType:()=>Fe,ZodUndefined:()=>Ra,ZodUnion:()=>$a,ZodUnknown:()=>Sn,ZodVoid:()=>Us,addIssueToContext:()=>fe,any:()=>r4,array:()=>i4,bigint:()=>J2,boolean:()=>sx,coerce:()=>O4,custom:()=>rx,date:()=>Y2,datetimeRegex:()=>ex,defaultErrorMap:()=>_n,discriminatedUnion:()=>l4,effect:()=>x4,enum:()=>_4,function:()=>v4,getErrorMap:()=>Ds,getParsedType:()=>sn,instanceof:()=>K2,intersection:()=>d4,isAborted:()=>yu,isAsync:()=>Ls,isDirty:()=>_u,isValid:()=>qn,late:()=>W2,lazy:()=>g4,literal:()=>y4,makeIssue:()=>_o,map:()=>m4,nan:()=>X2,nativeEnum:()=>b4,never:()=>a4,null:()=>t4,nullable:()=>E4,number:()=>ax,object:()=>o4,objectUtil:()=>bf,oboolean:()=>$4,onumber:()=>P4,optional:()=>w4,ostring:()=>R4,pipeline:()=>k4,preprocess:()=>T4,promise:()=>S4,quotelessJson:()=>x2,record:()=>f4,set:()=>h4,setErrorMap:()=>E2,strictObject:()=>c4,string:()=>nx,symbol:()=>Q2,transformer:()=>x4,tuple:()=>p4,undefined:()=>e4,union:()=>u4,unknown:()=>n4,util:()=>Ge,void:()=>s4});var Ge;(function(t){t.assertEqual=n=>{};function e(n){}t.assertIs=e;function r(n){throw new Error}t.assertNever=r,t.arrayToEnum=n=>{let s={};for(let i of n)s[i]=i;return s},t.getValidEnumValues=n=>{let s=t.objectKeys(n).filter(o=>typeof n[n[o]]!="number"),i={};for(let o of s)i[o]=n[o];return t.objectValues(i)},t.objectValues=n=>t.objectKeys(n).map(function(s){return n[s]}),t.objectKeys=typeof Object.keys=="function"?n=>Object.keys(n):n=>{let s=[];for(let i in n)Object.prototype.hasOwnProperty.call(n,i)&&s.push(i);return s},t.find=(n,s)=>{for(let i of n)if(s(i))return i},t.isInteger=typeof Number.isInteger=="function"?n=>Number.isInteger(n):n=>typeof n=="number"&&Number.isFinite(n)&&Math.floor(n)===n;function a(n,s=" | "){return n.map(i=>typeof i=="string"?`'${i}'`:i).join(s)}t.joinValues=a,t.jsonStringifyReplacer=(n,s)=>typeof s=="bigint"?s.toString():s})(Ge||(Ge={}));var bf;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(bf||(bf={}));var ge=Ge.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),sn=t=>{switch(typeof t){case"undefined":return ge.undefined;case"string":return ge.string;case"number":return Number.isNaN(t)?ge.nan:ge.number;case"boolean":return ge.boolean;case"function":return ge.function;case"bigint":return ge.bigint;case"symbol":return ge.symbol;case"object":return Array.isArray(t)?ge.array:t===null?ge.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?ge.promise:typeof Map<"u"&&t instanceof Map?ge.map:typeof Set<"u"&&t instanceof Set?ge.set:typeof Date<"u"&&t instanceof Date?ge.date:ge.object;default:return ge.unknown}};var ie=Ge.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),x2=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),nr=class t extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=a=>{this.issues=[...this.issues,a]},this.addIssues=(a=[])=>{this.issues=[...this.issues,...a]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}format(e){let r=e||function(s){return s.message},a={_errors:[]},n=s=>{for(let i of s.issues)if(i.code==="invalid_union")i.unionErrors.map(n);else if(i.code==="invalid_return_type")n(i.returnTypeError);else if(i.code==="invalid_arguments")n(i.argumentsError);else if(i.path.length===0)a._errors.push(r(i));else{let o=a,c=0;for(;cr.message){let r={},a=[];for(let n of this.issues)if(n.path.length>0){let s=n.path[0];r[s]=r[s]||[],r[s].push(e(n))}else a.push(e(n));return{formErrors:a,fieldErrors:r}}get formErrors(){return this.flatten()}};nr.create=t=>new nr(t);var w2=(t,e)=>{let r;switch(t.code){case ie.invalid_type:t.received===ge.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case ie.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,Ge.jsonStringifyReplacer)}`;break;case ie.unrecognized_keys:r=`Unrecognized key(s) in object: ${Ge.joinValues(t.keys,", ")}`;break;case ie.invalid_union:r="Invalid input";break;case ie.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${Ge.joinValues(t.options)}`;break;case ie.invalid_enum_value:r=`Invalid enum value. Expected ${Ge.joinValues(t.options)}, received '${t.received}'`;break;case ie.invalid_arguments:r="Invalid function arguments";break;case ie.invalid_return_type:r="Invalid function return type";break;case ie.invalid_date:r="Invalid date";break;case ie.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:Ge.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case ie.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case ie.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case ie.custom:r="Invalid input";break;case ie.invalid_intersection_types:r="Intersection results could not be merged";break;case ie.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case ie.not_finite:r="Number must be finite";break;default:r=e.defaultError,Ge.assertNever(t)}return{message:r}},_n=w2;var KS=_n;function E2(t){KS=t}function Ds(){return KS}var _o=t=>{let{data:e,path:r,errorMaps:a,issueData:n}=t,s=[...r,...n.path||[]],i={...n,path:s};if(n.message!==void 0)return{...n,path:s,message:n.message};let o="",c=a.filter(u=>!!u).slice().reverse();for(let u of c)o=u(i,{data:e,defaultError:o}).message;return{...n,path:s,message:o}},T2=[];function fe(t,e){let r=Ds(),a=_o({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===_n?void 0:_n].filter(n=>!!n)});t.common.issues.push(a)}var Ft=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let a=[];for(let n of r){if(n.status==="aborted")return Pe;n.status==="dirty"&&e.dirty(),a.push(n.value)}return{status:e.value,value:a}}static async mergeObjectAsync(e,r){let a=[];for(let n of r){let s=await n.key,i=await n.value;a.push({key:s,value:i})}return t.mergeObjectSync(e,a)}static mergeObjectSync(e,r){let a={};for(let n of r){let{key:s,value:i}=n;if(s.status==="aborted"||i.status==="aborted")return Pe;s.status==="dirty"&&e.dirty(),i.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof i.value<"u"||n.alwaysSet)&&(a[s.value]=i.value)}return{status:e.value,value:a}}},Pe=Object.freeze({status:"aborted"}),xa=t=>({status:"dirty",value:t}),Ht=t=>({status:"valid",value:t}),yu=t=>t.status==="aborted",_u=t=>t.status==="dirty",qn=t=>t.status==="valid",Ls=t=>typeof Promise<"u"&&t instanceof Promise;var be;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(be||(be={}));var kr=class{constructor(e,r,a,n){this._cachedPath=[],this.parent=e,this.data=r,this._path=a,this._key=n}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},XS=(t,e)=>{if(qn(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new nr(t.common.issues);return this._error=r,this._error}}};function De(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:a,description:n}=t;if(e&&(r||a))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:n}:{errorMap:(i,o)=>{let{message:c}=t;return i.code==="invalid_enum_value"?{message:c??o.defaultError}:typeof o.data>"u"?{message:c??a??o.defaultError}:i.code!=="invalid_type"?{message:o.defaultError}:{message:c??r??o.defaultError}},description:n}}var Fe=class{get description(){return this._def.description}_getType(e){return sn(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:sn(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Ft,ctx:{common:e.parent.common,data:e.data,parsedType:sn(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Ls(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let a=this.safeParse(e,r);if(a.success)return a.data;throw a.error}safeParse(e,r){let a={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:sn(e)},n=this._parseSync({data:e,path:a.path,parent:a});return XS(a,n)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:sn(e)};if(!this["~standard"].async)try{let a=this._parseSync({data:e,path:[],parent:r});return qn(a)?{value:a.value}:{issues:r.common.issues}}catch(a){a?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:r}).then(a=>qn(a)?{value:a.value}:{issues:r.common.issues})}async parseAsync(e,r){let a=await this.safeParseAsync(e,r);if(a.success)return a.data;throw a.error}async safeParseAsync(e,r){let a={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:sn(e)},n=this._parse({data:e,path:a.path,parent:a}),s=await(Ls(n)?n:Promise.resolve(n));return XS(a,s)}refine(e,r){let a=n=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(n):r;return this._refinement((n,s)=>{let i=e(n),o=()=>s.addIssue({code:ie.custom,...a(n)});return typeof Promise<"u"&&i instanceof Promise?i.then(c=>c?!0:(o(),!1)):i?!0:(o(),!1)})}refinement(e,r){return this._refinement((a,n)=>e(a)?!0:(n.addIssue(typeof r=="function"?r(a,n):r),!1))}_refinement(e){return new Rr({schema:this,typeName:Oe.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return Tr.create(this,this._def)}nullable(){return cn.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return xn.create(this)}promise(){return zn.create(this,this._def)}or(e){return $a.create([this,e],this._def)}and(e){return Oa.create(this,e,this._def)}transform(e){return new Rr({...De(this._def),schema:this,typeName:Oe.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new Ma({...De(this._def),innerType:this,defaultValue:r,typeName:Oe.ZodDefault})}brand(){return new bo({typeName:Oe.ZodBranded,type:this,...De(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new ja({...De(this._def),innerType:this,catchValue:r,typeName:Oe.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return So.create(this,e)}readonly(){return Da.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},k2=/^c[^\s-]{8,}$/i,R2=/^[0-9a-z]+$/,P2=/^[0-9A-HJKMNP-TV-Z]{26}$/i,$2=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,O2=/^[a-z0-9_-]{21}$/i,C2=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,I2=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,A2=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,N2="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Sf,M2=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,j2=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,D2=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,L2=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,q2=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,F2=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,YS="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",U2=new RegExp(`^${YS}$`);function QS(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);let r=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${r}`}function z2(t){return new RegExp(`^${QS(t)}$`)}function ex(t){let e=`${YS}T${QS(t)}`,r=[];return r.push(t.local?"Z?":"Z"),t.offset&&r.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${r.join("|")})`,new RegExp(`^${e}$`)}function H2(t,e){return!!((e==="v4"||!e)&&M2.test(t)||(e==="v6"||!e)&&D2.test(t))}function B2(t,e){if(!C2.test(t))return!1;try{let[r]=t.split(".");if(!r)return!1;let a=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),n=JSON.parse(atob(a));return!(typeof n!="object"||n===null||"typ"in n&&n?.typ!=="JWT"||!n.alg||e&&n.alg!==e)}catch{return!1}}function V2(t,e){return!!((e==="v4"||!e)&&j2.test(t)||(e==="v6"||!e)&&L2.test(t))}var Fn=class t extends Fe{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==ge.string){let s=this._getOrReturnCtx(e);return fe(s,{code:ie.invalid_type,expected:ge.string,received:s.parsedType}),Pe}let a=new Ft,n;for(let s of this._def.checks)if(s.kind==="min")e.data.lengths.value&&(n=this._getOrReturnCtx(e,n),fe(n,{code:ie.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),a.dirty());else if(s.kind==="length"){let i=e.data.length>s.value,o=e.data.lengthe.test(n),{validation:r,code:ie.invalid_string,...be.errToObj(a)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...be.errToObj(e)})}url(e){return this._addCheck({kind:"url",...be.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...be.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...be.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...be.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...be.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...be.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...be.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...be.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...be.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...be.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...be.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...be.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...be.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...be.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...be.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...be.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...be.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...be.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...be.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...be.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...be.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...be.errToObj(r)})}nonempty(e){return this.min(1,be.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew Fn({checks:[],typeName:Oe.ZodString,coerce:t?.coerce??!1,...De(t)});function G2(t,e){let r=(t.toString().split(".")[1]||"").length,a=(e.toString().split(".")[1]||"").length,n=r>a?r:a,s=Number.parseInt(t.toFixed(n).replace(".","")),i=Number.parseInt(e.toFixed(n).replace(".",""));return s%i/10**n}var wa=class t extends Fe{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==ge.number){let s=this._getOrReturnCtx(e);return fe(s,{code:ie.invalid_type,expected:ge.number,received:s.parsedType}),Pe}let a,n=new Ft;for(let s of this._def.checks)s.kind==="int"?Ge.isInteger(e.data)||(a=this._getOrReturnCtx(e,a),fe(a,{code:ie.invalid_type,expected:"integer",received:"float",message:s.message}),n.dirty()):s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(a=this._getOrReturnCtx(e,a),fe(a,{code:ie.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),n.dirty()):s.kind==="multipleOf"?G2(e.data,s.value)!==0&&(a=this._getOrReturnCtx(e,a),fe(a,{code:ie.not_multiple_of,multipleOf:s.value,message:s.message}),n.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(a=this._getOrReturnCtx(e,a),fe(a,{code:ie.not_finite,message:s.message}),n.dirty()):Ge.assertNever(s);return{status:n.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,be.toString(r))}gt(e,r){return this.setLimit("min",e,!1,be.toString(r))}lte(e,r){return this.setLimit("max",e,!0,be.toString(r))}lt(e,r){return this.setLimit("max",e,!1,be.toString(r))}setLimit(e,r,a,n){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:a,message:be.toString(n)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:be.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:be.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:be.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:be.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:be.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:be.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:be.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:be.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:be.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuee.kind==="int"||e.kind==="multipleOf"&&Ge.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let a of this._def.checks){if(a.kind==="finite"||a.kind==="int"||a.kind==="multipleOf")return!0;a.kind==="min"?(r===null||a.value>r)&&(r=a.value):a.kind==="max"&&(e===null||a.valuenew wa({checks:[],typeName:Oe.ZodNumber,coerce:t?.coerce||!1,...De(t)});var Ea=class t extends Fe{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==ge.bigint)return this._getInvalidInput(e);let a,n=new Ft;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(a=this._getOrReturnCtx(e,a),fe(a,{code:ie.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),n.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(a=this._getOrReturnCtx(e,a),fe(a,{code:ie.not_multiple_of,multipleOf:s.value,message:s.message}),n.dirty()):Ge.assertNever(s);return{status:n.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return fe(r,{code:ie.invalid_type,expected:ge.bigint,received:r.parsedType}),Pe}gte(e,r){return this.setLimit("min",e,!0,be.toString(r))}gt(e,r){return this.setLimit("min",e,!1,be.toString(r))}lte(e,r){return this.setLimit("max",e,!0,be.toString(r))}lt(e,r){return this.setLimit("max",e,!1,be.toString(r))}setLimit(e,r,a,n){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:a,message:be.toString(n)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:be.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:be.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:be.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:be.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:be.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew Ea({checks:[],typeName:Oe.ZodBigInt,coerce:t?.coerce??!1,...De(t)});var Ta=class extends Fe{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==ge.boolean){let a=this._getOrReturnCtx(e);return fe(a,{code:ie.invalid_type,expected:ge.boolean,received:a.parsedType}),Pe}return Ht(e.data)}};Ta.create=t=>new Ta({typeName:Oe.ZodBoolean,coerce:t?.coerce||!1,...De(t)});var ka=class t extends Fe{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==ge.date){let s=this._getOrReturnCtx(e);return fe(s,{code:ie.invalid_type,expected:ge.date,received:s.parsedType}),Pe}if(Number.isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return fe(s,{code:ie.invalid_date}),Pe}let a=new Ft,n;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()s.value&&(n=this._getOrReturnCtx(e,n),fe(n,{code:ie.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),a.dirty()):Ge.assertNever(s);return{status:a.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:be.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:be.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew ka({checks:[],coerce:t?.coerce||!1,typeName:Oe.ZodDate,...De(t)});var Fs=class extends Fe{_parse(e){if(this._getType(e)!==ge.symbol){let a=this._getOrReturnCtx(e);return fe(a,{code:ie.invalid_type,expected:ge.symbol,received:a.parsedType}),Pe}return Ht(e.data)}};Fs.create=t=>new Fs({typeName:Oe.ZodSymbol,...De(t)});var Ra=class extends Fe{_parse(e){if(this._getType(e)!==ge.undefined){let a=this._getOrReturnCtx(e);return fe(a,{code:ie.invalid_type,expected:ge.undefined,received:a.parsedType}),Pe}return Ht(e.data)}};Ra.create=t=>new Ra({typeName:Oe.ZodUndefined,...De(t)});var Pa=class extends Fe{_parse(e){if(this._getType(e)!==ge.null){let a=this._getOrReturnCtx(e);return fe(a,{code:ie.invalid_type,expected:ge.null,received:a.parsedType}),Pe}return Ht(e.data)}};Pa.create=t=>new Pa({typeName:Oe.ZodNull,...De(t)});var Un=class extends Fe{constructor(){super(...arguments),this._any=!0}_parse(e){return Ht(e.data)}};Un.create=t=>new Un({typeName:Oe.ZodAny,...De(t)});var Sn=class extends Fe{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Ht(e.data)}};Sn.create=t=>new Sn({typeName:Oe.ZodUnknown,...De(t)});var zr=class extends Fe{_parse(e){let r=this._getOrReturnCtx(e);return fe(r,{code:ie.invalid_type,expected:ge.never,received:r.parsedType}),Pe}};zr.create=t=>new zr({typeName:Oe.ZodNever,...De(t)});var Us=class extends Fe{_parse(e){if(this._getType(e)!==ge.undefined){let a=this._getOrReturnCtx(e);return fe(a,{code:ie.invalid_type,expected:ge.void,received:a.parsedType}),Pe}return Ht(e.data)}};Us.create=t=>new Us({typeName:Oe.ZodVoid,...De(t)});var xn=class t extends Fe{_parse(e){let{ctx:r,status:a}=this._processInputParams(e),n=this._def;if(r.parsedType!==ge.array)return fe(r,{code:ie.invalid_type,expected:ge.array,received:r.parsedType}),Pe;if(n.exactLength!==null){let i=r.data.length>n.exactLength.value,o=r.data.lengthn.maxLength.value&&(fe(r,{code:ie.too_big,maximum:n.maxLength.value,type:"array",inclusive:!0,exact:!1,message:n.maxLength.message}),a.dirty()),r.common.async)return Promise.all([...r.data].map((i,o)=>n.type._parseAsync(new kr(r,i,r.path,o)))).then(i=>Ft.mergeArray(a,i));let s=[...r.data].map((i,o)=>n.type._parseSync(new kr(r,i,r.path,o)));return Ft.mergeArray(a,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:be.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:be.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:be.toString(r)}})}nonempty(e){return this.min(1,e)}};xn.create=(t,e)=>new xn({type:t,minLength:null,maxLength:null,exactLength:null,typeName:Oe.ZodArray,...De(e)});function qs(t){if(t instanceof ar){let e={};for(let r in t.shape){let a=t.shape[r];e[r]=Tr.create(qs(a))}return new ar({...t._def,shape:()=>e})}else return t instanceof xn?new xn({...t._def,type:qs(t.element)}):t instanceof Tr?Tr.create(qs(t.unwrap())):t instanceof cn?cn.create(qs(t.unwrap())):t instanceof on?on.create(t.items.map(e=>qs(e))):t}var ar=class t extends Fe{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=Ge.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==ge.object){let u=this._getOrReturnCtx(e);return fe(u,{code:ie.invalid_type,expected:ge.object,received:u.parsedType}),Pe}let{status:a,ctx:n}=this._processInputParams(e),{shape:s,keys:i}=this._getCached(),o=[];if(!(this._def.catchall instanceof zr&&this._def.unknownKeys==="strip"))for(let u in n.data)i.includes(u)||o.push(u);let c=[];for(let u of i){let l=s[u],d=n.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new kr(n,d,n.path,u)),alwaysSet:u in n.data})}if(this._def.catchall instanceof zr){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of o)c.push({key:{status:"valid",value:l},value:{status:"valid",value:n.data[l]}});else if(u==="strict")o.length>0&&(fe(n,{code:ie.unrecognized_keys,keys:o}),a.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of o){let d=n.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new kr(n,d,n.path,l)),alwaysSet:l in n.data})}}return n.common.async?Promise.resolve().then(async()=>{let u=[];for(let l of c){let d=await l.key,p=await l.value;u.push({key:d,value:p,alwaysSet:l.alwaysSet})}return u}).then(u=>Ft.mergeObjectSync(a,u)):Ft.mergeObjectSync(a,c)}get shape(){return this._def.shape()}strict(e){return be.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,a)=>{let n=this._def.errorMap?.(r,a).message??a.defaultError;return r.code==="unrecognized_keys"?{message:be.errToObj(e).message??n}:{message:n}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Oe.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};for(let a of Ge.objectKeys(e))e[a]&&this.shape[a]&&(r[a]=this.shape[a]);return new t({...this._def,shape:()=>r})}omit(e){let r={};for(let a of Ge.objectKeys(this.shape))e[a]||(r[a]=this.shape[a]);return new t({...this._def,shape:()=>r})}deepPartial(){return qs(this)}partial(e){let r={};for(let a of Ge.objectKeys(this.shape)){let n=this.shape[a];e&&!e[a]?r[a]=n:r[a]=n.optional()}return new t({...this._def,shape:()=>r})}required(e){let r={};for(let a of Ge.objectKeys(this.shape))if(e&&!e[a])r[a]=this.shape[a];else{let s=this.shape[a];for(;s instanceof Tr;)s=s._def.innerType;r[a]=s}return new t({...this._def,shape:()=>r})}keyof(){return tx(Ge.objectKeys(this.shape))}};ar.create=(t,e)=>new ar({shape:()=>t,unknownKeys:"strip",catchall:zr.create(),typeName:Oe.ZodObject,...De(e)});ar.strictCreate=(t,e)=>new ar({shape:()=>t,unknownKeys:"strict",catchall:zr.create(),typeName:Oe.ZodObject,...De(e)});ar.lazycreate=(t,e)=>new ar({shape:t,unknownKeys:"strip",catchall:zr.create(),typeName:Oe.ZodObject,...De(e)});var $a=class extends Fe{_parse(e){let{ctx:r}=this._processInputParams(e),a=this._def.options;function n(s){for(let o of s)if(o.result.status==="valid")return o.result;for(let o of s)if(o.result.status==="dirty")return r.common.issues.push(...o.ctx.common.issues),o.result;let i=s.map(o=>new nr(o.ctx.common.issues));return fe(r,{code:ie.invalid_union,unionErrors:i}),Pe}if(r.common.async)return Promise.all(a.map(async s=>{let i={...r,common:{...r.common,issues:[]},parent:null};return{result:await s._parseAsync({data:r.data,path:r.path,parent:i}),ctx:i}})).then(n);{let s,i=[];for(let c of a){let u={...r,common:{...r.common,issues:[]},parent:null},l=c._parseSync({data:r.data,path:r.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:u}),u.common.issues.length&&i.push(u.common.issues)}if(s)return r.common.issues.push(...s.ctx.common.issues),s.result;let o=i.map(c=>new nr(c));return fe(r,{code:ie.invalid_union,unionErrors:o}),Pe}}get options(){return this._def.options}};$a.create=(t,e)=>new $a({options:t,typeName:Oe.ZodUnion,...De(e)});var bn=t=>t instanceof Ca?bn(t.schema):t instanceof Rr?bn(t.innerType()):t instanceof Ia?[t.value]:t instanceof Aa?t.options:t instanceof Na?Ge.objectValues(t.enum):t instanceof Ma?bn(t._def.innerType):t instanceof Ra?[void 0]:t instanceof Pa?[null]:t instanceof Tr?[void 0,...bn(t.unwrap())]:t instanceof cn?[null,...bn(t.unwrap())]:t instanceof bo||t instanceof Da?bn(t.unwrap()):t instanceof ja?bn(t._def.innerType):[],bu=class t extends Fe{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ge.object)return fe(r,{code:ie.invalid_type,expected:ge.object,received:r.parsedType}),Pe;let a=this.discriminator,n=r.data[a],s=this.optionsMap.get(n);return s?r.common.async?s._parseAsync({data:r.data,path:r.path,parent:r}):s._parseSync({data:r.data,path:r.path,parent:r}):(fe(r,{code:ie.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[a]}),Pe)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,a){let n=new Map;for(let s of r){let i=bn(s.shape[e]);if(!i.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let o of i){if(n.has(o))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(o)}`);n.set(o,s)}}return new t({typeName:Oe.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:n,...De(a)})}};function xf(t,e){let r=sn(t),a=sn(e);if(t===e)return{valid:!0,data:t};if(r===ge.object&&a===ge.object){let n=Ge.objectKeys(e),s=Ge.objectKeys(t).filter(o=>n.indexOf(o)!==-1),i={...t,...e};for(let o of s){let c=xf(t[o],e[o]);if(!c.valid)return{valid:!1};i[o]=c.data}return{valid:!0,data:i}}else if(r===ge.array&&a===ge.array){if(t.length!==e.length)return{valid:!1};let n=[];for(let s=0;s{if(yu(s)||yu(i))return Pe;let o=xf(s.value,i.value);return o.valid?((_u(s)||_u(i))&&r.dirty(),{status:r.value,value:o.data}):(fe(a,{code:ie.invalid_intersection_types}),Pe)};return a.common.async?Promise.all([this._def.left._parseAsync({data:a.data,path:a.path,parent:a}),this._def.right._parseAsync({data:a.data,path:a.path,parent:a})]).then(([s,i])=>n(s,i)):n(this._def.left._parseSync({data:a.data,path:a.path,parent:a}),this._def.right._parseSync({data:a.data,path:a.path,parent:a}))}};Oa.create=(t,e,r)=>new Oa({left:t,right:e,typeName:Oe.ZodIntersection,...De(r)});var on=class t extends Fe{_parse(e){let{status:r,ctx:a}=this._processInputParams(e);if(a.parsedType!==ge.array)return fe(a,{code:ie.invalid_type,expected:ge.array,received:a.parsedType}),Pe;if(a.data.lengththis._def.items.length&&(fe(a,{code:ie.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...a.data].map((i,o)=>{let c=this._def.items[o]||this._def.rest;return c?c._parse(new kr(a,i,a.path,o)):null}).filter(i=>!!i);return a.common.async?Promise.all(s).then(i=>Ft.mergeArray(r,i)):Ft.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};on.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new on({items:t,typeName:Oe.ZodTuple,rest:null,...De(e)})};var Su=class t extends Fe{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:a}=this._processInputParams(e);if(a.parsedType!==ge.object)return fe(a,{code:ie.invalid_type,expected:ge.object,received:a.parsedType}),Pe;let n=[],s=this._def.keyType,i=this._def.valueType;for(let o in a.data)n.push({key:s._parse(new kr(a,o,a.path,o)),value:i._parse(new kr(a,a.data[o],a.path,o)),alwaysSet:o in a.data});return a.common.async?Ft.mergeObjectAsync(r,n):Ft.mergeObjectSync(r,n)}get element(){return this._def.valueType}static create(e,r,a){return r instanceof Fe?new t({keyType:e,valueType:r,typeName:Oe.ZodRecord,...De(a)}):new t({keyType:Fn.create(),valueType:e,typeName:Oe.ZodRecord,...De(r)})}},zs=class extends Fe{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:a}=this._processInputParams(e);if(a.parsedType!==ge.map)return fe(a,{code:ie.invalid_type,expected:ge.map,received:a.parsedType}),Pe;let n=this._def.keyType,s=this._def.valueType,i=[...a.data.entries()].map(([o,c],u)=>({key:n._parse(new kr(a,o,a.path,[u,"key"])),value:s._parse(new kr(a,c,a.path,[u,"value"]))}));if(a.common.async){let o=new Map;return Promise.resolve().then(async()=>{for(let c of i){let u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return Pe;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),o.set(u.value,l.value)}return{status:r.value,value:o}})}else{let o=new Map;for(let c of i){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return Pe;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),o.set(u.value,l.value)}return{status:r.value,value:o}}}};zs.create=(t,e,r)=>new zs({valueType:e,keyType:t,typeName:Oe.ZodMap,...De(r)});var Hs=class t extends Fe{_parse(e){let{status:r,ctx:a}=this._processInputParams(e);if(a.parsedType!==ge.set)return fe(a,{code:ie.invalid_type,expected:ge.set,received:a.parsedType}),Pe;let n=this._def;n.minSize!==null&&a.data.sizen.maxSize.value&&(fe(a,{code:ie.too_big,maximum:n.maxSize.value,type:"set",inclusive:!0,exact:!1,message:n.maxSize.message}),r.dirty());let s=this._def.valueType;function i(c){let u=new Set;for(let l of c){if(l.status==="aborted")return Pe;l.status==="dirty"&&r.dirty(),u.add(l.value)}return{status:r.value,value:u}}let o=[...a.data.values()].map((c,u)=>s._parse(new kr(a,c,a.path,u)));return a.common.async?Promise.all(o).then(c=>i(c)):i(o)}min(e,r){return new t({...this._def,minSize:{value:e,message:be.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:be.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};Hs.create=(t,e)=>new Hs({valueType:t,minSize:null,maxSize:null,typeName:Oe.ZodSet,...De(e)});var xu=class t extends Fe{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ge.function)return fe(r,{code:ie.invalid_type,expected:ge.function,received:r.parsedType}),Pe;function a(o,c){return _o({data:o,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ds(),_n].filter(u=>!!u),issueData:{code:ie.invalid_arguments,argumentsError:c}})}function n(o,c){return _o({data:o,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ds(),_n].filter(u=>!!u),issueData:{code:ie.invalid_return_type,returnTypeError:c}})}let s={errorMap:r.common.contextualErrorMap},i=r.data;if(this._def.returns instanceof zn){let o=this;return Ht(async function(...c){let u=new nr([]),l=await o._def.args.parseAsync(c,s).catch(f=>{throw u.addIssue(a(c,f)),u}),d=await Reflect.apply(i,this,l);return await o._def.returns._def.type.parseAsync(d,s).catch(f=>{throw u.addIssue(n(d,f)),u})})}else{let o=this;return Ht(function(...c){let u=o._def.args.safeParse(c,s);if(!u.success)throw new nr([a(c,u.error)]);let l=Reflect.apply(i,this,u.data),d=o._def.returns.safeParse(l,s);if(!d.success)throw new nr([n(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:on.create(e).rest(Sn.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,a){return new t({args:e||on.create([]).rest(Sn.create()),returns:r||Sn.create(),typeName:Oe.ZodFunction,...De(a)})}},Ca=class extends Fe{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};Ca.create=(t,e)=>new Ca({getter:t,typeName:Oe.ZodLazy,...De(e)});var Ia=class extends Fe{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return fe(r,{received:r.data,code:ie.invalid_literal,expected:this._def.value}),Pe}return{status:"valid",value:e.data}}get value(){return this._def.value}};Ia.create=(t,e)=>new Ia({value:t,typeName:Oe.ZodLiteral,...De(e)});function tx(t,e){return new Aa({values:t,typeName:Oe.ZodEnum,...De(e)})}var Aa=class t extends Fe{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),a=this._def.values;return fe(r,{expected:Ge.joinValues(a),received:r.parsedType,code:ie.invalid_type}),Pe}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let r=this._getOrReturnCtx(e),a=this._def.values;return fe(r,{received:r.data,code:ie.invalid_enum_value,options:a}),Pe}return Ht(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(a=>!e.includes(a)),{...this._def,...r})}};Aa.create=tx;var Na=class extends Fe{_parse(e){let r=Ge.getValidEnumValues(this._def.values),a=this._getOrReturnCtx(e);if(a.parsedType!==ge.string&&a.parsedType!==ge.number){let n=Ge.objectValues(r);return fe(a,{expected:Ge.joinValues(n),received:a.parsedType,code:ie.invalid_type}),Pe}if(this._cache||(this._cache=new Set(Ge.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let n=Ge.objectValues(r);return fe(a,{received:a.data,code:ie.invalid_enum_value,options:n}),Pe}return Ht(e.data)}get enum(){return this._def.values}};Na.create=(t,e)=>new Na({values:t,typeName:Oe.ZodNativeEnum,...De(e)});var zn=class extends Fe{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ge.promise&&r.common.async===!1)return fe(r,{code:ie.invalid_type,expected:ge.promise,received:r.parsedType}),Pe;let a=r.parsedType===ge.promise?r.data:Promise.resolve(r.data);return Ht(a.then(n=>this._def.type.parseAsync(n,{path:r.path,errorMap:r.common.contextualErrorMap})))}};zn.create=(t,e)=>new zn({type:t,typeName:Oe.ZodPromise,...De(e)});var Rr=class extends Fe{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Oe.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:a}=this._processInputParams(e),n=this._def.effect||null,s={addIssue:i=>{fe(a,i),i.fatal?r.abort():r.dirty()},get path(){return a.path}};if(s.addIssue=s.addIssue.bind(s),n.type==="preprocess"){let i=n.transform(a.data,s);if(a.common.async)return Promise.resolve(i).then(async o=>{if(r.value==="aborted")return Pe;let c=await this._def.schema._parseAsync({data:o,path:a.path,parent:a});return c.status==="aborted"?Pe:c.status==="dirty"?xa(c.value):r.value==="dirty"?xa(c.value):c});{if(r.value==="aborted")return Pe;let o=this._def.schema._parseSync({data:i,path:a.path,parent:a});return o.status==="aborted"?Pe:o.status==="dirty"?xa(o.value):r.value==="dirty"?xa(o.value):o}}if(n.type==="refinement"){let i=o=>{let c=n.refinement(o,s);if(a.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return o};if(a.common.async===!1){let o=this._def.schema._parseSync({data:a.data,path:a.path,parent:a});return o.status==="aborted"?Pe:(o.status==="dirty"&&r.dirty(),i(o.value),{status:r.value,value:o.value})}else return this._def.schema._parseAsync({data:a.data,path:a.path,parent:a}).then(o=>o.status==="aborted"?Pe:(o.status==="dirty"&&r.dirty(),i(o.value).then(()=>({status:r.value,value:o.value}))))}if(n.type==="transform")if(a.common.async===!1){let i=this._def.schema._parseSync({data:a.data,path:a.path,parent:a});if(!qn(i))return Pe;let o=n.transform(i.value,s);if(o instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:o}}else return this._def.schema._parseAsync({data:a.data,path:a.path,parent:a}).then(i=>qn(i)?Promise.resolve(n.transform(i.value,s)).then(o=>({status:r.value,value:o})):Pe);Ge.assertNever(n)}};Rr.create=(t,e,r)=>new Rr({schema:t,typeName:Oe.ZodEffects,effect:e,...De(r)});Rr.createWithPreprocess=(t,e,r)=>new Rr({schema:e,effect:{type:"preprocess",transform:t},typeName:Oe.ZodEffects,...De(r)});var Tr=class extends Fe{_parse(e){return this._getType(e)===ge.undefined?Ht(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Tr.create=(t,e)=>new Tr({innerType:t,typeName:Oe.ZodOptional,...De(e)});var cn=class extends Fe{_parse(e){return this._getType(e)===ge.null?Ht(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};cn.create=(t,e)=>new cn({innerType:t,typeName:Oe.ZodNullable,...De(e)});var Ma=class extends Fe{_parse(e){let{ctx:r}=this._processInputParams(e),a=r.data;return r.parsedType===ge.undefined&&(a=this._def.defaultValue()),this._def.innerType._parse({data:a,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};Ma.create=(t,e)=>new Ma({innerType:t,typeName:Oe.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...De(e)});var ja=class extends Fe{_parse(e){let{ctx:r}=this._processInputParams(e),a={...r,common:{...r.common,issues:[]}},n=this._def.innerType._parse({data:a.data,path:a.path,parent:{...a}});return Ls(n)?n.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new nr(a.common.issues)},input:a.data})})):{status:"valid",value:n.status==="valid"?n.value:this._def.catchValue({get error(){return new nr(a.common.issues)},input:a.data})}}removeCatch(){return this._def.innerType}};ja.create=(t,e)=>new ja({innerType:t,typeName:Oe.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...De(e)});var Bs=class extends Fe{_parse(e){if(this._getType(e)!==ge.nan){let a=this._getOrReturnCtx(e);return fe(a,{code:ie.invalid_type,expected:ge.nan,received:a.parsedType}),Pe}return{status:"valid",value:e.data}}};Bs.create=t=>new Bs({typeName:Oe.ZodNaN,...De(t)});var Z2=Symbol("zod_brand"),bo=class extends Fe{_parse(e){let{ctx:r}=this._processInputParams(e),a=r.data;return this._def.type._parse({data:a,path:r.path,parent:r})}unwrap(){return this._def.type}},So=class t extends Fe{_parse(e){let{status:r,ctx:a}=this._processInputParams(e);if(a.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:a.data,path:a.path,parent:a});return s.status==="aborted"?Pe:s.status==="dirty"?(r.dirty(),xa(s.value)):this._def.out._parseAsync({data:s.value,path:a.path,parent:a})})();{let n=this._def.in._parseSync({data:a.data,path:a.path,parent:a});return n.status==="aborted"?Pe:n.status==="dirty"?(r.dirty(),{status:"dirty",value:n.value}):this._def.out._parseSync({data:n.value,path:a.path,parent:a})}}static create(e,r){return new t({in:e,out:r,typeName:Oe.ZodPipeline})}},Da=class extends Fe{_parse(e){let r=this._def.innerType._parse(e),a=n=>(qn(n)&&(n.value=Object.freeze(n.value)),n);return Ls(r)?r.then(n=>a(n)):a(r)}unwrap(){return this._def.innerType}};Da.create=(t,e)=>new Da({innerType:t,typeName:Oe.ZodReadonly,...De(e)});function JS(t,e){let r=typeof t=="function"?t(e):typeof t=="string"?{message:t}:t;return typeof r=="string"?{message:r}:r}function rx(t,e={},r){return t?Un.create().superRefine((a,n)=>{let s=t(a);if(s instanceof Promise)return s.then(i=>{if(!i){let o=JS(e,a),c=o.fatal??r??!0;n.addIssue({code:"custom",...o,fatal:c})}});if(!s){let i=JS(e,a),o=i.fatal??r??!0;n.addIssue({code:"custom",...i,fatal:o})}}):Un.create()}var W2={object:ar.lazycreate},Oe;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(Oe||(Oe={}));var K2=(t,e={message:`Input not instance of ${t.name}`})=>rx(r=>r instanceof t,e),nx=Fn.create,ax=wa.create,X2=Bs.create,J2=Ea.create,sx=Ta.create,Y2=ka.create,Q2=Fs.create,e4=Ra.create,t4=Pa.create,r4=Un.create,n4=Sn.create,a4=zr.create,s4=Us.create,i4=xn.create,o4=ar.create,c4=ar.strictCreate,u4=$a.create,l4=bu.create,d4=Oa.create,p4=on.create,f4=Su.create,m4=zs.create,h4=Hs.create,v4=xu.create,g4=Ca.create,y4=Ia.create,_4=Aa.create,b4=Na.create,S4=zn.create,x4=Rr.create,w4=Tr.create,E4=cn.create,T4=Rr.createWithPreprocess,k4=So.create,R4=()=>nx().optional(),P4=()=>ax().optional(),$4=()=>sx().optional(),O4={string:(t=>Fn.create({...t,coerce:!0})),number:(t=>wa.create({...t,coerce:!0})),boolean:(t=>Ta.create({...t,coerce:!0})),bigint:(t=>Ea.create({...t,coerce:!0})),date:(t=>ka.create({...t,coerce:!0}))};var C4=Pe;var wf="2025-06-18";var ix=[wf,"2025-03-26","2024-11-05","2024-10-07"],wu="2.0",ox=O.union([O.string(),O.number().int()]),cx=O.string(),I4=O.object({progressToken:O.optional(ox)}).passthrough(),Or=O.object({_meta:O.optional(I4)}).passthrough(),sr=O.object({method:O.string(),params:O.optional(Or)}),xo=O.object({_meta:O.optional(O.object({}).passthrough())}).passthrough(),un=O.object({method:O.string(),params:O.optional(xo)}),Cr=O.object({_meta:O.optional(O.object({}).passthrough())}).passthrough(),Eu=O.union([O.string(),O.number().int()]),ux=O.object({jsonrpc:O.literal(wu),id:Eu}).merge(sr).strict(),lx=t=>ux.safeParse(t).success,dx=O.object({jsonrpc:O.literal(wu)}).merge(un).strict(),px=t=>dx.safeParse(t).success,fx=O.object({jsonrpc:O.literal(wu),id:Eu,result:Cr}).strict(),Ef=t=>fx.safeParse(t).success,Pr;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError"})(Pr||(Pr={}));var mx=O.object({jsonrpc:O.literal(wu),id:Eu,error:O.object({code:O.number().int(),message:O.string(),data:O.optional(O.unknown())})}).strict(),hx=t=>mx.safeParse(t).success,vx=O.union([ux,dx,fx,mx]),La=Cr.strict(),Tu=un.extend({method:O.literal("notifications/cancelled"),params:xo.extend({requestId:Eu,reason:O.string().optional()})}),A4=O.object({src:O.string(),mimeType:O.optional(O.string()),sizes:O.optional(O.array(O.string()))}).passthrough(),wo=O.object({icons:O.array(A4).optional()}).passthrough(),Eo=O.object({name:O.string(),title:O.optional(O.string())}).passthrough(),gx=Eo.extend({version:O.string(),websiteUrl:O.optional(O.string())}).merge(wo),N4=O.object({experimental:O.optional(O.object({}).passthrough()),sampling:O.optional(O.object({}).passthrough()),elicitation:O.optional(O.object({}).passthrough()),roots:O.optional(O.object({listChanged:O.optional(O.boolean())}).passthrough())}).passthrough(),M4=sr.extend({method:O.literal("initialize"),params:Or.extend({protocolVersion:O.string(),capabilities:N4,clientInfo:gx})});var j4=O.object({experimental:O.optional(O.object({}).passthrough()),logging:O.optional(O.object({}).passthrough()),completions:O.optional(O.object({}).passthrough()),prompts:O.optional(O.object({listChanged:O.optional(O.boolean())}).passthrough()),resources:O.optional(O.object({subscribe:O.optional(O.boolean()),listChanged:O.optional(O.boolean())}).passthrough()),tools:O.optional(O.object({listChanged:O.optional(O.boolean())}).passthrough())}).passthrough(),Tf=Cr.extend({protocolVersion:O.string(),capabilities:j4,serverInfo:gx,instructions:O.optional(O.string())}),D4=un.extend({method:O.literal("notifications/initialized")});var ku=sr.extend({method:O.literal("ping")}),L4=O.object({progress:O.number(),total:O.optional(O.number()),message:O.optional(O.string())}).passthrough(),Ru=un.extend({method:O.literal("notifications/progress"),params:xo.merge(L4).extend({progressToken:ox})}),Pu=sr.extend({params:Or.extend({cursor:O.optional(cx)}).optional()}),$u=Cr.extend({nextCursor:O.optional(cx)}),yx=O.object({uri:O.string(),mimeType:O.optional(O.string()),_meta:O.optional(O.object({}).passthrough())}).passthrough(),_x=yx.extend({text:O.string()}),kf=O.string().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),bx=yx.extend({blob:kf}),Sx=Eo.extend({uri:O.string(),description:O.optional(O.string()),mimeType:O.optional(O.string()),_meta:O.optional(O.object({}).passthrough())}).merge(wo),q4=Eo.extend({uriTemplate:O.string(),description:O.optional(O.string()),mimeType:O.optional(O.string()),_meta:O.optional(O.object({}).passthrough())}).merge(wo),F4=Pu.extend({method:O.literal("resources/list")}),Rf=$u.extend({resources:O.array(Sx)}),U4=Pu.extend({method:O.literal("resources/templates/list")}),Pf=$u.extend({resourceTemplates:O.array(q4)}),z4=sr.extend({method:O.literal("resources/read"),params:Or.extend({uri:O.string()})}),$f=Cr.extend({contents:O.array(O.union([_x,bx]))}),H4=un.extend({method:O.literal("notifications/resources/list_changed")}),B4=sr.extend({method:O.literal("resources/subscribe"),params:Or.extend({uri:O.string()})}),V4=sr.extend({method:O.literal("resources/unsubscribe"),params:Or.extend({uri:O.string()})}),G4=un.extend({method:O.literal("notifications/resources/updated"),params:xo.extend({uri:O.string()})}),Z4=O.object({name:O.string(),description:O.optional(O.string()),required:O.optional(O.boolean())}).passthrough(),W4=Eo.extend({description:O.optional(O.string()),arguments:O.optional(O.array(Z4)),_meta:O.optional(O.object({}).passthrough())}).merge(wo),K4=Pu.extend({method:O.literal("prompts/list")}),Of=$u.extend({prompts:O.array(W4)}),X4=sr.extend({method:O.literal("prompts/get"),params:Or.extend({name:O.string(),arguments:O.optional(O.record(O.string()))})}),Cf=O.object({type:O.literal("text"),text:O.string(),_meta:O.optional(O.object({}).passthrough())}).passthrough(),If=O.object({type:O.literal("image"),data:kf,mimeType:O.string(),_meta:O.optional(O.object({}).passthrough())}).passthrough(),Af=O.object({type:O.literal("audio"),data:kf,mimeType:O.string(),_meta:O.optional(O.object({}).passthrough())}).passthrough(),J4=O.object({type:O.literal("resource"),resource:O.union([_x,bx]),_meta:O.optional(O.object({}).passthrough())}).passthrough(),Y4=Sx.extend({type:O.literal("resource_link")}),xx=O.union([Cf,If,Af,Y4,J4]),Q4=O.object({role:O.enum(["user","assistant"]),content:xx}).passthrough(),Nf=Cr.extend({description:O.optional(O.string()),messages:O.array(Q4)}),e8=un.extend({method:O.literal("notifications/prompts/list_changed")}),t8=O.object({title:O.optional(O.string()),readOnlyHint:O.optional(O.boolean()),destructiveHint:O.optional(O.boolean()),idempotentHint:O.optional(O.boolean()),openWorldHint:O.optional(O.boolean())}).passthrough(),r8=Eo.extend({description:O.optional(O.string()),inputSchema:O.object({type:O.literal("object"),properties:O.optional(O.object({}).passthrough()),required:O.optional(O.array(O.string()))}).passthrough(),outputSchema:O.optional(O.object({type:O.literal("object"),properties:O.optional(O.object({}).passthrough()),required:O.optional(O.array(O.string()))}).passthrough()),annotations:O.optional(t8),_meta:O.optional(O.object({}).passthrough())}).merge(wo),n8=Pu.extend({method:O.literal("tools/list")}),Mf=$u.extend({tools:O.array(r8)}),Ou=Cr.extend({content:O.array(xx).default([]),structuredContent:O.object({}).passthrough().optional(),isError:O.optional(O.boolean())}),rK=Ou.or(Cr.extend({toolResult:O.unknown()})),a8=sr.extend({method:O.literal("tools/call"),params:Or.extend({name:O.string(),arguments:O.optional(O.record(O.unknown()))})}),s8=un.extend({method:O.literal("notifications/tools/list_changed")}),wx=O.enum(["debug","info","notice","warning","error","critical","alert","emergency"]),i8=sr.extend({method:O.literal("logging/setLevel"),params:Or.extend({level:wx})}),o8=un.extend({method:O.literal("notifications/message"),params:xo.extend({level:wx,logger:O.optional(O.string()),data:O.unknown()})}),c8=O.object({name:O.string().optional()}).passthrough(),u8=O.object({hints:O.optional(O.array(c8)),costPriority:O.optional(O.number().min(0).max(1)),speedPriority:O.optional(O.number().min(0).max(1)),intelligencePriority:O.optional(O.number().min(0).max(1))}).passthrough(),l8=O.object({role:O.enum(["user","assistant"]),content:O.union([Cf,If,Af])}).passthrough(),d8=sr.extend({method:O.literal("sampling/createMessage"),params:Or.extend({messages:O.array(l8),systemPrompt:O.optional(O.string()),includeContext:O.optional(O.enum(["none","thisServer","allServers"])),temperature:O.optional(O.number()),maxTokens:O.number().int(),stopSequences:O.optional(O.array(O.string())),metadata:O.optional(O.object({}).passthrough()),modelPreferences:O.optional(u8)})}),p8=Cr.extend({model:O.string(),stopReason:O.optional(O.enum(["endTurn","stopSequence","maxTokens"]).or(O.string())),role:O.enum(["user","assistant"]),content:O.discriminatedUnion("type",[Cf,If,Af])}),f8=O.object({type:O.literal("boolean"),title:O.optional(O.string()),description:O.optional(O.string()),default:O.optional(O.boolean())}).passthrough(),m8=O.object({type:O.literal("string"),title:O.optional(O.string()),description:O.optional(O.string()),minLength:O.optional(O.number()),maxLength:O.optional(O.number()),format:O.optional(O.enum(["email","uri","date","date-time"]))}).passthrough(),h8=O.object({type:O.enum(["number","integer"]),title:O.optional(O.string()),description:O.optional(O.string()),minimum:O.optional(O.number()),maximum:O.optional(O.number())}).passthrough(),v8=O.object({type:O.literal("string"),title:O.optional(O.string()),description:O.optional(O.string()),enum:O.array(O.string()),enumNames:O.optional(O.array(O.string()))}).passthrough(),g8=O.union([f8,m8,h8,v8]),y8=sr.extend({method:O.literal("elicitation/create"),params:Or.extend({message:O.string(),requestedSchema:O.object({type:O.literal("object"),properties:O.record(O.string(),g8),required:O.optional(O.array(O.string()))}).passthrough()})}),_8=Cr.extend({action:O.enum(["accept","decline","cancel"]),content:O.optional(O.record(O.string(),O.unknown()))}),b8=O.object({type:O.literal("ref/resource"),uri:O.string()}).passthrough();var S8=O.object({type:O.literal("ref/prompt"),name:O.string()}).passthrough(),x8=sr.extend({method:O.literal("completion/complete"),params:Or.extend({ref:O.union([S8,b8]),argument:O.object({name:O.string(),value:O.string()}).passthrough(),context:O.optional(O.object({arguments:O.optional(O.record(O.string(),O.string()))}))})}),jf=Cr.extend({completion:O.object({values:O.array(O.string()).max(100),total:O.optional(O.number().int()),hasMore:O.optional(O.boolean())}).passthrough()}),w8=O.object({uri:O.string().startsWith("file://"),name:O.optional(O.string()),_meta:O.optional(O.object({}).passthrough())}).passthrough(),E8=sr.extend({method:O.literal("roots/list")}),T8=Cr.extend({roots:O.array(w8)}),k8=un.extend({method:O.literal("notifications/roots/list_changed")}),nK=O.union([ku,M4,x8,i8,X4,K4,F4,U4,z4,B4,V4,a8,n8]),aK=O.union([Tu,Ru,D4,k8]),sK=O.union([La,p8,_8,T8]),iK=O.union([ku,d8,y8,E8]),oK=O.union([Tu,Ru,o8,G4,H4,s8,e8]),cK=O.union([La,Tf,jf,Nf,Of,Rf,Pf,$f,Ou,Mf]),$r=class extends Error{constructor(e,r,a){super(`MCP error ${e}: ${r}`),this.code=e,this.data=a,this.name="McpError"}};var R8=6e4,Cu=class{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this.setNotificationHandler(Tu,r=>{let a=this._requestHandlerAbortControllers.get(r.params.requestId);a?.abort(r.params.reason)}),this.setNotificationHandler(Ru,r=>{this._onprogress(r)}),this.setRequestHandler(ku,r=>({}))}_setupTimeout(e,r,a,n,s=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(n,r),startTime:Date.now(),timeout:r,maxTotalTimeout:a,resetTimeoutOnProgress:s,onTimeout:n})}_resetTimeout(e){let r=this._timeoutInfo.get(e);if(!r)return!1;let a=Date.now()-r.startTime;if(r.maxTotalTimeout&&a>=r.maxTotalTimeout)throw this._timeoutInfo.delete(e),new $r(Pr.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:a});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(e){let r=this._timeoutInfo.get(e);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(e))}async connect(e){var r,a,n;this._transport=e;let s=(r=this.transport)===null||r===void 0?void 0:r.onclose;this._transport.onclose=()=>{s?.(),this._onclose()};let i=(a=this.transport)===null||a===void 0?void 0:a.onerror;this._transport.onerror=c=>{i?.(c),this._onerror(c)};let o=(n=this._transport)===null||n===void 0?void 0:n.onmessage;this._transport.onmessage=(c,u)=>{o?.(c,u),Ef(c)||hx(c)?this._onresponse(c):lx(c)?this._onrequest(c,u):px(c)?this._onnotification(c):this._onerror(new Error(`Unknown message type: ${JSON.stringify(c)}`))},await this._transport.start()}_onclose(){var e;let r=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._pendingDebouncedNotifications.clear(),this._transport=void 0,(e=this.onclose)===null||e===void 0||e.call(this);let a=new $r(Pr.ConnectionClosed,"Connection closed");for(let n of r.values())n(a)}_onerror(e){var r;(r=this.onerror)===null||r===void 0||r.call(this,e)}_onnotification(e){var r;let a=(r=this._notificationHandlers.get(e.method))!==null&&r!==void 0?r:this.fallbackNotificationHandler;a!==void 0&&Promise.resolve().then(()=>a(e)).catch(n=>this._onerror(new Error(`Uncaught error in notification handler: ${n}`)))}_onrequest(e,r){var a,n;let s=(a=this._requestHandlers.get(e.method))!==null&&a!==void 0?a:this.fallbackRequestHandler,i=this._transport;if(s===void 0){i?.send({jsonrpc:"2.0",id:e.id,error:{code:Pr.MethodNotFound,message:"Method not found"}}).catch(u=>this._onerror(new Error(`Failed to send an error response: ${u}`)));return}let o=new AbortController;this._requestHandlerAbortControllers.set(e.id,o);let c={signal:o.signal,sessionId:i?.sessionId,_meta:(n=e.params)===null||n===void 0?void 0:n._meta,sendNotification:u=>this.notification(u,{relatedRequestId:e.id}),sendRequest:(u,l,d)=>this.request(u,l,{...d,relatedRequestId:e.id}),authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo};Promise.resolve().then(()=>s(e,c)).then(u=>{if(!o.signal.aborted)return i?.send({result:u,jsonrpc:"2.0",id:e.id})},u=>{var l;if(!o.signal.aborted)return i?.send({jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(u.code)?u.code:Pr.InternalError,message:(l=u.message)!==null&&l!==void 0?l:"Internal error"}})}).catch(u=>this._onerror(new Error(`Failed to send response: ${u}`))).finally(()=>{this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...a}=e.params,n=Number(r),s=this._progressHandlers.get(n);if(!s){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let i=this._responseHandlers.get(n),o=this._timeoutInfo.get(n);if(o&&i&&o.resetTimeoutOnProgress)try{this._resetTimeout(n)}catch(c){i(c);return}s(a)}_onresponse(e){let r=Number(e.id),a=this._responseHandlers.get(r);if(a===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}if(this._responseHandlers.delete(r),this._progressHandlers.delete(r),this._cleanupTimeout(r),Ef(e))a(e);else{let n=new $r(e.error.code,e.error.message,e.error.data);a(n)}}get transport(){return this._transport}async close(){var e;await((e=this._transport)===null||e===void 0?void 0:e.close())}request(e,r,a){let{relatedRequestId:n,resumptionToken:s,onresumptiontoken:i}=a??{};return new Promise((o,c)=>{var u,l,d,p,f,v;if(!this._transport){c(new Error("Not connected"));return}((u=this._options)===null||u===void 0?void 0:u.enforceStrictCapabilities)===!0&&this.assertCapabilityForMethod(e.method),(l=a?.signal)===null||l===void 0||l.throwIfAborted();let _=this._requestMessageId++,m={...e,jsonrpc:"2.0",id:_};a?.onprogress&&(this._progressHandlers.set(_,a.onprogress),m.params={...e.params,_meta:{...((d=e.params)===null||d===void 0?void 0:d._meta)||{},progressToken:_}});let h=b=>{var w;this._responseHandlers.delete(_),this._progressHandlers.delete(_),this._cleanupTimeout(_),(w=this._transport)===null||w===void 0||w.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:_,reason:String(b)}},{relatedRequestId:n,resumptionToken:s,onresumptiontoken:i}).catch(S=>this._onerror(new Error(`Failed to send cancellation: ${S}`))),c(b)};this._responseHandlers.set(_,b=>{var w;if(!(!((w=a?.signal)===null||w===void 0)&&w.aborted)){if(b instanceof Error)return c(b);try{let S=r.parse(b.result);o(S)}catch(S){c(S)}}}),(p=a?.signal)===null||p===void 0||p.addEventListener("abort",()=>{var b;h((b=a?.signal)===null||b===void 0?void 0:b.reason)});let y=(f=a?.timeout)!==null&&f!==void 0?f:R8,g=()=>h(new $r(Pr.RequestTimeout,"Request timed out",{timeout:y}));this._setupTimeout(_,y,a?.maxTotalTimeout,g,(v=a?.resetTimeoutOnProgress)!==null&&v!==void 0?v:!1),this._transport.send(m,{relatedRequestId:n,resumptionToken:s,onresumptiontoken:i}).catch(b=>{this._cleanupTimeout(_),c(b)})})}async notification(e,r){var a,n;if(!this._transport)throw new Error("Not connected");if(this.assertNotificationCapability(e.method),((n=(a=this._options)===null||a===void 0?void 0:a.debouncedNotificationMethods)!==null&&n!==void 0?n:[]).includes(e.method)&&!e.params&&!r?.relatedRequestId){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{var c;if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let u={...e,jsonrpc:"2.0"};(c=this._transport)===null||c===void 0||c.send(u,r).catch(l=>this._onerror(l))});return}let o={...e,jsonrpc:"2.0"};await this._transport.send(o,r)}setRequestHandler(e,r){let a=e.shape.method.value;this.assertRequestHandlerCapability(a),this._requestHandlers.set(a,(n,s)=>Promise.resolve(r(e.parse(n),s)))}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,r){this._notificationHandlers.set(e.shape.method.value,a=>Promise.resolve(r(e.parse(a))))}removeNotificationHandler(e){this._notificationHandlers.delete(e)}};function Ex(t,e){return Object.entries(e).reduce((r,[a,n])=>(n&&typeof n=="object"?r[a]=r[a]?{...r[a],...n}:n:r[a]=n,r),{...t})}var kE=xt(TE(),1),Vs=class extends Cu{constructor(e,r){var a;super(r),this._clientInfo=e,this._cachedToolOutputValidators=new Map,this._capabilities=(a=r?.capabilities)!==null&&a!==void 0?a:{},this._ajv=new kE.default}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Ex(this._capabilities,e)}assertCapability(e,r){var a;if(!(!((a=this._serverCapabilities)===null||a===void 0)&&a[e]))throw new Error(`Server does not support ${e} (required for ${r})`)}async connect(e,r){if(await super.connect(e),e.sessionId===void 0)try{let a=await this.request({method:"initialize",params:{protocolVersion:wf,capabilities:this._capabilities,clientInfo:this._clientInfo}},Tf,r);if(a===void 0)throw new Error(`Server sent invalid initialize result: ${a}`);if(!ix.includes(a.protocolVersion))throw new Error(`Server's protocol version is not supported: ${a.protocolVersion}`);this._serverCapabilities=a.capabilities,this._serverVersion=a.serverInfo,e.setProtocolVersion&&e.setProtocolVersion(a.protocolVersion),this._instructions=a.instructions,await this.notification({method:"notifications/initialized"})}catch(a){throw this.close(),a}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(e){var r,a,n,s,i;switch(e){case"logging/setLevel":if(!(!((r=this._serverCapabilities)===null||r===void 0)&&r.logging))throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!(!((a=this._serverCapabilities)===null||a===void 0)&&a.prompts))throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":case"resources/subscribe":case"resources/unsubscribe":if(!(!((n=this._serverCapabilities)===null||n===void 0)&&n.resources))throw new Error(`Server does not support resources (required for ${e})`);if(e==="resources/subscribe"&&!this._serverCapabilities.resources.subscribe)throw new Error(`Server does not support resource subscriptions (required for ${e})`);break;case"tools/call":case"tools/list":if(!(!((s=this._serverCapabilities)===null||s===void 0)&&s.tools))throw new Error(`Server does not support tools (required for ${e})`);break;case"completion/complete":if(!(!((i=this._serverCapabilities)===null||i===void 0)&&i.completions))throw new Error(`Server does not support completions (required for ${e})`);break;case"initialize":break;case"ping":break}}assertNotificationCapability(e){var r;switch(e){case"notifications/roots/list_changed":if(!(!((r=this._capabilities.roots)===null||r===void 0)&&r.listChanged))throw new Error(`Client does not support roots list changed notifications (required for ${e})`);break;case"notifications/initialized":break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){switch(e){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Client does not support sampling capability (required for ${e})`);break;case"elicitation/create":if(!this._capabilities.elicitation)throw new Error(`Client does not support elicitation capability (required for ${e})`);break;case"roots/list":if(!this._capabilities.roots)throw new Error(`Client does not support roots capability (required for ${e})`);break;case"ping":break}}async ping(e){return this.request({method:"ping"},La,e)}async complete(e,r){return this.request({method:"completion/complete",params:e},jf,r)}async setLoggingLevel(e,r){return this.request({method:"logging/setLevel",params:{level:e}},La,r)}async getPrompt(e,r){return this.request({method:"prompts/get",params:e},Nf,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},Of,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},Rf,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},Pf,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},$f,r)}async subscribeResource(e,r){return this.request({method:"resources/subscribe",params:e},La,r)}async unsubscribeResource(e,r){return this.request({method:"resources/unsubscribe",params:e},La,r)}async callTool(e,r=Ou,a){let n=await this.request({method:"tools/call",params:e},r,a),s=this.getToolOutputValidator(e.name);if(s){if(!n.structuredContent&&!n.isError)throw new $r(Pr.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(n.structuredContent)try{if(!s(n.structuredContent))throw new $r(Pr.InvalidParams,`Structured content does not match the tool's output schema: ${this._ajv.errorsText(s.errors)}`)}catch(i){throw i instanceof $r?i:new $r(Pr.InvalidParams,`Failed to validate structured content: ${i instanceof Error?i.message:String(i)}`)}}return n}cacheToolOutputSchemas(e){this._cachedToolOutputValidators.clear();for(let r of e)if(r.outputSchema)try{let a=this._ajv.compile(r.outputSchema);this._cachedToolOutputValidators.set(r.name,a)}catch{}}getToolOutputValidator(e){return this._cachedToolOutputValidators.get(e)}async listTools(e,r){let a=await this.request({method:"tools/list",params:e},Mf,r);return this.cacheToolOutputSchemas(a.tools),a}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}};var v1=xt(m1(),1),ko=xt(require("node:process"),1),g1=require("node:stream");var Ju=class{append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(` -`);if(e===-1)return null;let r=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),I9(r)}clear(){this._buffer=void 0}};function I9(t){return vx.parse(JSON.parse(t))}function h1(t){return JSON.stringify(t)+` -`}var A9=ko.default.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function N9(){let t={};for(let e of A9){let r=ko.default.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var Ws=class{constructor(e){this._abortController=new AbortController,this._readBuffer=new Ju,this._stderrStream=null,this._serverParams=e,(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new g1.PassThrough)}async start(){if(this._process)throw new Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((e,r)=>{var a,n,s,i,o;this._process=(0,v1.default)(this._serverParams.command,(a=this._serverParams.args)!==null&&a!==void 0?a:[],{env:{...N9(),...this._serverParams.env},stdio:["pipe","pipe",(n=this._serverParams.stderr)!==null&&n!==void 0?n:"inherit"],shell:!1,signal:this._abortController.signal,windowsHide:ko.default.platform==="win32"&&M9(),cwd:this._serverParams.cwd}),this._process.on("error",c=>{var u,l;if(c.name==="AbortError"){(u=this.onclose)===null||u===void 0||u.call(this);return}r(c),(l=this.onerror)===null||l===void 0||l.call(this,c)}),this._process.on("spawn",()=>{e()}),this._process.on("close",c=>{var u;this._process=void 0,(u=this.onclose)===null||u===void 0||u.call(this)}),(s=this._process.stdin)===null||s===void 0||s.on("error",c=>{var u;(u=this.onerror)===null||u===void 0||u.call(this,c)}),(i=this._process.stdout)===null||i===void 0||i.on("data",c=>{this._readBuffer.append(c),this.processReadBuffer()}),(o=this._process.stdout)===null||o===void 0||o.on("error",c=>{var u;(u=this.onerror)===null||u===void 0||u.call(this,c)}),this._stderrStream&&this._process.stderr&&this._process.stderr.pipe(this._stderrStream)})}get stderr(){var e,r;return this._stderrStream?this._stderrStream:(r=(e=this._process)===null||e===void 0?void 0:e.stderr)!==null&&r!==void 0?r:null}get pid(){var e,r;return(r=(e=this._process)===null||e===void 0?void 0:e.pid)!==null&&r!==void 0?r:null}processReadBuffer(){for(var e,r;;)try{let a=this._readBuffer.readMessage();if(a===null)break;(e=this.onmessage)===null||e===void 0||e.call(this,a)}catch(a){(r=this.onerror)===null||r===void 0||r.call(this,a)}}async close(){this._abortController.abort(),this._process=void 0,this._readBuffer.clear()}send(e){return new Promise(r=>{var a;if(!(!((a=this._process)===null||a===void 0)&&a.stdin))throw new Error("Not connected");let n=h1(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};function M9(){return"type"in ko.default}var Qu=xt(require("path"),1),T1=require("os");Ke();var ym={DEFAULT:3e5,HEALTH_CHECK:3e4,WORKER_STARTUP_WAIT:1e3,WORKER_STARTUP_RETRIES:300,PRE_RESTART_SETTLE_DELAY:2e3,WINDOWS_MULTIPLIER:1.5};function E1(t){return process.platform==="win32"?Math.round(t*ym.WINDOWS_MULTIPLIER):t}hr();var jX=Qu.default.join((0,T1.homedir)(),".claude","plugins","marketplaces","thedotmack"),DX=E1(ym.HEALTH_CHECK),Ro=null,Po=null;function Xt(){if(Ro!==null)return Ro;let t=Qu.default.join(Be.get("CLAUDE_MEM_DATA_DIR"),"settings.json"),e=Be.loadFromFile(t);return Ro=parseInt(e.CLAUDE_MEM_WORKER_PORT,10),Ro}function k1(){if(Po!==null)return Po;let t=Qu.default.join(Be.get("CLAUDE_MEM_DATA_DIR"),"settings.json");return Po=Be.loadFromFile(t).CLAUDE_MEM_WORKER_HOST,Po}function R1(){Ro=null,Po=null}Ke();var ra=require("child_process"),Wr=require("os"),Ae=require("fs"),KR=xt(require("readline"),1),XR=require("util");var Ir=require("fs"),$o=require("path");Ke();function P1(t){try{return(0,Ir.existsSync)(t)?JSON.parse((0,Ir.readFileSync)(t,"utf-8")):{}}catch(e){return P.warn("CONFIG","Failed to read Cursor registry, using empty registry",{file:t,error:e instanceof Error?e.message:String(e)}),{}}}function $1(t,e){let r=(0,$o.join)(t,"..");(0,Ir.mkdirSync)(r,{recursive:!0}),(0,Ir.writeFileSync)(t,JSON.stringify(e,null,2))}function O1(t,e){let r=(0,$o.join)(t,".cursor","rules"),a=(0,$o.join)(r,"claude-mem-context.mdc"),n=`${a}.tmp`;(0,Ir.mkdirSync)(r,{recursive:!0});let s=`--- +${ne.dim}No previous sessions found for this project yet.${ne.reset} +`}var kc=Gt(()=>{"use strict";Nd();jr();xo()});function LU(t,e,r,n){let i=[];return n?i.push(...IU(t)):i.push(...hU(t)),n?i.push(...PU()):i.push(...gU()),n?i.push(...RU()):i.push(...vU()),n?i.push(...OU()):i.push(...yU()),yg(r)&&(n?i.push(...CU(e,r)):i.push(..._U(e,r))),i}var FU=Gt(()=>{"use strict";xo();Ec();kc()});function _fe(t){let e=new Map;for(let n of t){let i=n.type==="observation"?n.data.created_at:n.data.displayTime,a=Fi(i);e.has(a)||e.set(a,[]),e.get(a).push(n)}let r=Array.from(e.entries()).sort((n,i)=>{let a=new Date(n[0]).getTime(),o=new Date(i[0]).getTime();return a-o});return new Map(r)}function bfe(t,e){return e.fullObservationField==="narrative"?t.narrative:t.facts?X$(t.facts).join(` +`):null}function xfe(t,e,r,n,i,a){let o=[];a?o.push(...NU(t)):o.push(...bU(t));let s=null,c="",u=!1;for(let l of e)if(l.type==="summary"){u&&(o.push(""),u=!1,s=null,c="");let d=l.data,p=In(d.displayTime);a?o.push(...DU(d,p)):o.push(...$U(d,p))}else{let d=l.data,p=Yn(d.files_modified,i),f=Mr(d.created_at),h=f!==c,_=h?f:"";c=f;let y=r.has(d.id);if(p!==s&&(u&&o.push(""),a?o.push(...jU(p)):o.push(...xU(p)),s=p,u=!0),y){let m=bfe(d,n);a?o.push(...MU(d,f,h,m,n)):(u&&!a&&(o.push(""),u=!1),o.push(...wU(d,_,m,n)),s=null)}else a?o.push(AU(d,f,h,n)):o.push(SU(d,_,n))}return u&&o.push(""),o}function ZU(t,e,r,n,i){let a=[],o=_fe(t);for(let[s,c]of o)a.push(...xfe(s,c,e,r,n,i));return a}var HU=Gt(()=>{"use strict";kd();Ec();kc()});function BU(t,e,r){return!(!t.showLastSummary||!e||!!!(e.investigated||e.learned||e.completed||e.next_steps)||r&&e.created_at_epoch<=r.created_at_epoch)}function VU(t,e){let r=[];return e?(r.push(...Ad("Investigated",t.investigated,ne.blue)),r.push(...Ad("Learned",t.learned,ne.yellow)),r.push(...Ad("Completed",t.completed,ne.green)),r.push(...Ad("Next Steps",t.next_steps,ne.magenta))):(r.push(...jd("Investigated",t.investigated)),r.push(...jd("Learned",t.learned)),r.push(...jd("Completed",t.completed)),r.push(...jd("Next Steps",t.next_steps))),r}var GU=Gt(()=>{"use strict";Nd();Ec();kc()});function WU(t,e){return e?zU(t):EU(t)}function KU(t,e,r){return!yg(e)||t.totalDiscoveryTokens<=0||t.savings<=0?[]:r?UU(t.totalDiscoveryTokens,t.totalReadTokens):kU(t.totalDiscoveryTokens,t.totalReadTokens)}var JU=Gt(()=>{"use strict";xo();Ec();kc()});function wfe(){try{return new va}catch(t){if(t.code==="ERR_DLOPEN_FAILED"){try{(0,QU.unlinkSync)(Sfe)}catch(e){k.debug("SYSTEM","Marker file cleanup failed (may not exist)",{},e)}return k.error("SYSTEM","Native module rebuild needed - restart Claude Code to auto-fix"),null}throw t}}function $fe(t,e){return e?qU(t):TU(t)}function Efe(t,e,r,n,i,a,o){let s=[],c=nE(e);s.push(...LU(t,c,n,o));let u=r.slice(0,n.sessionCount),l=fU(u,r),d=sE(e,l),p=mU(e,n.fullObservationCount);s.push(...ZU(d,p,n,i,o));let f=r[0],h=e[0];BU(n,f,h)&&s.push(...VU(f,o));let _=oE(e,n,a,i);return s.push(...WU(_,o)),s.push(...KU(c,n,o)),s.join(` +`).trimEnd()}async function uE(t,e=!1){let r=eE(),n=t?.cwd??process.cwd(),i=aU(n),a=wfe();if(!a)return"";try{let o=iE(a,i,r),s=aE(a,i,r);return o.length===0&&s.length===0?$fe(i,e):Efe(i,o,s,r,n,t?.session_id,e)}finally{a.close()}}var XU,YU,QU,Sfe,eq=Gt(()=>{"use strict";XU=yt(require("path"),1),YU=require("os"),QU=require("fs");dh();Ne();oU();tE();xo();cE();FU();HU();GU();JU();Ec();kc();Sfe=XU.default.join((0,YU.homedir)(),".claude","plugins","marketplaces","thedotmack","plugin",".install-version")});var tq=Gt(()=>{"use strict";eq();tE();xo();cE()});var lE={};On(lE,{generateContext:()=>uE});var dE=Gt(()=>{"use strict";tq()});var Ife={};On(Ife,{WorkerService:()=>Tg,updateCursorContextForProject:()=>lh});module.exports=Ud(Ife);var oq=yt(require("path"),1);var Ye;(function(t){t.assertEqual=i=>{};function e(i){}t.assertIs=e;function r(i){throw new Error}t.assertNever=r,t.arrayToEnum=i=>{let a={};for(let o of i)a[o]=o;return a},t.getValidEnumValues=i=>{let a=t.objectKeys(i).filter(s=>typeof i[i[s]]!="number"),o={};for(let s of a)o[s]=i[s];return t.objectValues(o)},t.objectValues=i=>t.objectKeys(i).map(function(a){return i[a]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let a=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&a.push(o);return a},t.find=(i,a)=>{for(let o of i)if(a(o))return o},t.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function n(i,a=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(a)}t.joinValues=n,t.jsonStringifyReplacer=(i,a)=>typeof a=="bigint"?a.toString():a})(Ye||(Ye={}));var vE;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(vE||(vE={}));var ue=Ye.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),yi=t=>{switch(typeof t){case"undefined":return ue.undefined;case"string":return ue.string;case"number":return Number.isNaN(t)?ue.nan:ue.number;case"boolean":return ue.boolean;case"function":return ue.function;case"bigint":return ue.bigint;case"symbol":return ue.symbol;case"object":return Array.isArray(t)?ue.array:t===null?ue.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?ue.promise:typeof Map<"u"&&t instanceof Map?ue.map:typeof Set<"u"&&t instanceof Set?ue.set:typeof Date<"u"&&t instanceof Date?ue.date:ue.object;default:return ue.unknown}};var Q=Ye.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);var Qr=class t extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}format(e){let r=e||function(a){return a.message},n={_errors:[]},i=a=>{for(let o of a.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let s=n,c=0;for(;cr.message){let r=Object.create(null),n=[];for(let i of this.issues)if(i.path.length>0){let a=i.path[0];r[a]=r[a]||[],r[a].push(e(i))}else n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};Qr.create=t=>new Qr(t);var pq=(t,e)=>{let r;switch(t.code){case Q.invalid_type:t.received===ue.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case Q.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,Ye.jsonStringifyReplacer)}`;break;case Q.unrecognized_keys:r=`Unrecognized key(s) in object: ${Ye.joinValues(t.keys,", ")}`;break;case Q.invalid_union:r="Invalid input";break;case Q.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${Ye.joinValues(t.options)}`;break;case Q.invalid_enum_value:r=`Invalid enum value. Expected ${Ye.joinValues(t.options)}, received '${t.received}'`;break;case Q.invalid_arguments:r="Invalid function arguments";break;case Q.invalid_return_type:r="Invalid function return type";break;case Q.invalid_date:r="Invalid date";break;case Q.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:Ye.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case Q.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case Q.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case Q.custom:r="Invalid input";break;case Q.invalid_intersection_types:r="Intersection results could not be merged";break;case Q.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case Q.not_finite:r="Number must be finite";break;default:r=e.defaultError,Ye.assertNever(t)}return{message:r}},Hi=pq;var fq=Hi;function Pc(){return fq}var qd=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,a=[...r,...i.path||[]],o={...i,path:a};if(i.message!==void 0)return{...i,path:a,message:i.message};let s="",c=n.filter(u=>!!u).slice().reverse();for(let u of c)s=u(o,{data:e,defaultError:s}).message;return{...i,path:a,message:s}};function ae(t,e){let r=Pc(),n=qd({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Hi?void 0:Hi].filter(i=>!!i)});t.common.issues.push(n)}var hr=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let i of r){if(i.status==="aborted")return Te;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let a=await i.key,o=await i.value;n.push({key:a,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:a,value:o}=i;if(a.status==="aborted"||o.status==="aborted")return Te;a.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),a.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[a.value]=o.value)}return{status:e.value,value:n}}},Te=Object.freeze({status:"aborted"}),Eo=t=>({status:"dirty",value:t}),$r=t=>({status:"valid",value:t}),Pg=t=>t.status==="aborted",Rg=t=>t.status==="dirty",Ia=t=>t.status==="valid",Rc=t=>typeof Promise<"u"&&t instanceof Promise;var he;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(he||(he={}));var ln=class{constructor(e,r,n,i){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},yE=(t,e)=>{if(Ia(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new Qr(t.common.issues);return this._error=r,this._error}}};function Me(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:i}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(o,s)=>{let{message:c}=t;return o.code==="invalid_enum_value"?{message:c??s.defaultError}:typeof s.data>"u"?{message:c??n??s.defaultError}:o.code!=="invalid_type"?{message:s.defaultError}:{message:c??r??s.defaultError}},description:i}}var Fe=class{get description(){return this._def.description}_getType(e){return yi(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:yi(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new hr,ctx:{common:e.parent.common,data:e.data,parsedType:yi(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Rc(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){let n={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:yi(e)},i=this._parseSync({data:e,path:n.path,parent:n});return yE(n,i)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:yi(e)};if(!this["~standard"].async)try{let n=this._parseSync({data:e,path:[],parent:r});return Ia(n)?{value:n.value}:{issues:r.common.issues}}catch(n){n?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:r}).then(n=>Ia(n)?{value:n.value}:{issues:r.common.issues})}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:yi(e)},i=this._parse({data:e,path:n.path,parent:n}),a=await(Rc(i)?i:Promise.resolve(i));return yE(n,a)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,a)=>{let o=e(i),s=()=>a.addIssue({code:Q.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(s(),!1)):o?!0:(s(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new Nn({schema:this,typeName:we.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return Cn.create(this,this._def)}nullable(){return xi.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Vi.create(this)}promise(){return Pa.create(this,this._def)}or(e){return Ro.create([this,e],this._def)}and(e){return Oo.create(this,e,this._def)}transform(e){return new Nn({...Me(this._def),schema:this,typeName:we.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new Mo({...Me(this._def),innerType:this,defaultValue:r,typeName:we.ZodDefault})}brand(){return new Ld({typeName:we.ZodBranded,type:this,...Me(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new Do({...Me(this._def),innerType:this,catchValue:r,typeName:we.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Fd.create(this,e)}readonly(){return zo.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},mq=/^c[^\s-]{8,}$/i,hq=/^[0-9a-z]+$/,gq=/^[0-9A-HJKMNP-TV-Z]{26}$/i,vq=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,yq=/^[a-z0-9_-]{21}$/i,_q=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,bq=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,xq=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Sq="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Og,wq=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,$q=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Eq=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,kq=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Tq=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Iq=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,_E="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Pq=new RegExp(`^${_E}$`);function bE(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);let r=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${r}`}function Rq(t){return new RegExp(`^${bE(t)}$`)}function Oq(t){let e=`${_E}T${bE(t)}`,r=[];return r.push(t.local?"Z?":"Z"),t.offset&&r.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${r.join("|")})`,new RegExp(`^${e}$`)}function Cq(t,e){return!!((e==="v4"||!e)&&wq.test(t)||(e==="v6"||!e)&&Eq.test(t))}function Nq(t,e){if(!_q.test(t))return!1;try{let[r]=t.split(".");if(!r)return!1;let n=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),i=JSON.parse(atob(n));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||e&&i.alg!==e)}catch{return!1}}function jq(t,e){return!!((e==="v4"||!e)&&$q.test(t)||(e==="v6"||!e)&&kq.test(t))}var To=class t extends Fe{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==ue.string){let a=this._getOrReturnCtx(e);return ae(a,{code:Q.invalid_type,expected:ue.string,received:a.parsedType}),Te}let n=new hr,i;for(let a of this._def.checks)if(a.kind==="min")e.data.lengtha.value&&(i=this._getOrReturnCtx(e,i),ae(i,{code:Q.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),n.dirty());else if(a.kind==="length"){let o=e.data.length>a.value,s=e.data.lengthe.test(i),{validation:r,code:Q.invalid_string,...he.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...he.errToObj(e)})}url(e){return this._addCheck({kind:"url",...he.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...he.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...he.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...he.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...he.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...he.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...he.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...he.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...he.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...he.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...he.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...he.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...he.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...he.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...he.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...he.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...he.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...he.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...he.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...he.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...he.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...he.errToObj(r)})}nonempty(e){return this.min(1,he.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew To({checks:[],typeName:we.ZodString,coerce:t?.coerce??!1,...Me(t)});function Aq(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,a=Number.parseInt(t.toFixed(i).replace(".","")),o=Number.parseInt(e.toFixed(i).replace(".",""));return a%o/10**i}var Oc=class t extends Fe{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==ue.number){let a=this._getOrReturnCtx(e);return ae(a,{code:Q.invalid_type,expected:ue.number,received:a.parsedType}),Te}let n,i=new hr;for(let a of this._def.checks)a.kind==="int"?Ye.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),ae(n,{code:Q.invalid_type,expected:"integer",received:"float",message:a.message}),i.dirty()):a.kind==="min"?(a.inclusive?e.dataa.value:e.data>=a.value)&&(n=this._getOrReturnCtx(e,n),ae(n,{code:Q.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),i.dirty()):a.kind==="multipleOf"?Aq(e.data,a.value)!==0&&(n=this._getOrReturnCtx(e,n),ae(n,{code:Q.not_multiple_of,multipleOf:a.value,message:a.message}),i.dirty()):a.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),ae(n,{code:Q.not_finite,message:a.message}),i.dirty()):Ye.assertNever(a);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,he.toString(r))}gt(e,r){return this.setLimit("min",e,!1,he.toString(r))}lte(e,r){return this.setLimit("max",e,!0,he.toString(r))}lt(e,r){return this.setLimit("max",e,!1,he.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:he.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:he.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:he.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:he.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:he.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:he.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:he.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:he.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:he.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:he.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuee.kind==="int"||e.kind==="multipleOf"&&Ye.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.valuenew Oc({checks:[],typeName:we.ZodNumber,coerce:t?.coerce||!1,...Me(t)});var Cc=class t extends Fe{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==ue.bigint)return this._getInvalidInput(e);let n,i=new hr;for(let a of this._def.checks)a.kind==="min"?(a.inclusive?e.dataa.value:e.data>=a.value)&&(n=this._getOrReturnCtx(e,n),ae(n,{code:Q.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),i.dirty()):a.kind==="multipleOf"?e.data%a.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),ae(n,{code:Q.not_multiple_of,multipleOf:a.value,message:a.message}),i.dirty()):Ye.assertNever(a);return{status:i.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return ae(r,{code:Q.invalid_type,expected:ue.bigint,received:r.parsedType}),Te}gte(e,r){return this.setLimit("min",e,!0,he.toString(r))}gt(e,r){return this.setLimit("min",e,!1,he.toString(r))}lte(e,r){return this.setLimit("max",e,!0,he.toString(r))}lt(e,r){return this.setLimit("max",e,!1,he.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:he.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:he.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:he.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:he.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:he.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:he.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew Cc({checks:[],typeName:we.ZodBigInt,coerce:t?.coerce??!1,...Me(t)});var Nc=class extends Fe{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==ue.boolean){let n=this._getOrReturnCtx(e);return ae(n,{code:Q.invalid_type,expected:ue.boolean,received:n.parsedType}),Te}return $r(e.data)}};Nc.create=t=>new Nc({typeName:we.ZodBoolean,coerce:t?.coerce||!1,...Me(t)});var jc=class t extends Fe{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==ue.date){let a=this._getOrReturnCtx(e);return ae(a,{code:Q.invalid_type,expected:ue.date,received:a.parsedType}),Te}if(Number.isNaN(e.data.getTime())){let a=this._getOrReturnCtx(e);return ae(a,{code:Q.invalid_date}),Te}let n=new hr,i;for(let a of this._def.checks)a.kind==="min"?e.data.getTime()a.value&&(i=this._getOrReturnCtx(e,i),ae(i,{code:Q.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),n.dirty()):Ye.assertNever(a);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:he.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:he.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew jc({checks:[],coerce:t?.coerce||!1,typeName:we.ZodDate,...Me(t)});var Ac=class extends Fe{_parse(e){if(this._getType(e)!==ue.symbol){let n=this._getOrReturnCtx(e);return ae(n,{code:Q.invalid_type,expected:ue.symbol,received:n.parsedType}),Te}return $r(e.data)}};Ac.create=t=>new Ac({typeName:we.ZodSymbol,...Me(t)});var Io=class extends Fe{_parse(e){if(this._getType(e)!==ue.undefined){let n=this._getOrReturnCtx(e);return ae(n,{code:Q.invalid_type,expected:ue.undefined,received:n.parsedType}),Te}return $r(e.data)}};Io.create=t=>new Io({typeName:we.ZodUndefined,...Me(t)});var Po=class extends Fe{_parse(e){if(this._getType(e)!==ue.null){let n=this._getOrReturnCtx(e);return ae(n,{code:Q.invalid_type,expected:ue.null,received:n.parsedType}),Te}return $r(e.data)}};Po.create=t=>new Po({typeName:we.ZodNull,...Me(t)});var Mc=class extends Fe{constructor(){super(...arguments),this._any=!0}_parse(e){return $r(e.data)}};Mc.create=t=>new Mc({typeName:we.ZodAny,...Me(t)});var Bi=class extends Fe{constructor(){super(...arguments),this._unknown=!0}_parse(e){return $r(e.data)}};Bi.create=t=>new Bi({typeName:we.ZodUnknown,...Me(t)});var Qn=class extends Fe{_parse(e){let r=this._getOrReturnCtx(e);return ae(r,{code:Q.invalid_type,expected:ue.never,received:r.parsedType}),Te}};Qn.create=t=>new Qn({typeName:we.ZodNever,...Me(t)});var Dc=class extends Fe{_parse(e){if(this._getType(e)!==ue.undefined){let n=this._getOrReturnCtx(e);return ae(n,{code:Q.invalid_type,expected:ue.void,received:n.parsedType}),Te}return $r(e.data)}};Dc.create=t=>new Dc({typeName:we.ZodVoid,...Me(t)});var Vi=class t extends Fe{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==ue.array)return ae(r,{code:Q.invalid_type,expected:ue.array,received:r.parsedType}),Te;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,s=r.data.lengthi.maxLength.value&&(ae(r,{code:Q.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,s)=>i.type._parseAsync(new ln(r,o,r.path,s)))).then(o=>hr.mergeArray(n,o));let a=[...r.data].map((o,s)=>i.type._parseSync(new ln(r,o,r.path,s)));return hr.mergeArray(n,a)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:he.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:he.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:he.toString(r)}})}nonempty(e){return this.min(1,e)}};Vi.create=(t,e)=>new Vi({type:t,minLength:null,maxLength:null,exactLength:null,typeName:we.ZodArray,...Me(e)});function ko(t){if(t instanceof en){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=Cn.create(ko(n))}return new en({...t._def,shape:()=>e})}else return t instanceof Vi?new Vi({...t._def,type:ko(t.element)}):t instanceof Cn?Cn.create(ko(t.unwrap())):t instanceof xi?xi.create(ko(t.unwrap())):t instanceof bi?bi.create(t.items.map(e=>ko(e))):t}var en=class t extends Fe{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=Ye.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==ue.object){let u=this._getOrReturnCtx(e);return ae(u,{code:Q.invalid_type,expected:ue.object,received:u.parsedType}),Te}let{status:n,ctx:i}=this._processInputParams(e),{shape:a,keys:o}=this._getCached(),s=[];if(!(this._def.catchall instanceof Qn&&this._def.unknownKeys==="strip"))for(let u in i.data)o.includes(u)||s.push(u);let c=[];for(let u of o){let l=a[u],d=i.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new ln(i,d,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof Qn){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of s)c.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(u==="strict")s.length>0&&(ae(i,{code:Q.unrecognized_keys,keys:s}),n.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of s){let d=i.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new ln(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let u=[];for(let l of c){let d=await l.key,p=await l.value;u.push({key:d,value:p,alwaysSet:l.alwaysSet})}return u}).then(u=>hr.mergeObjectSync(n,u)):hr.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(e){return he.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{let i=this._def.errorMap?.(r,n).message??n.defaultError;return r.code==="unrecognized_keys"?{message:he.errToObj(e).message??i}:{message:i}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:we.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};for(let n of Ye.objectKeys(e))e[n]&&this.shape[n]&&(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}omit(e){let r={};for(let n of Ye.objectKeys(this.shape))e[n]||(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}deepPartial(){return ko(this)}partial(e){let r={};for(let n of Ye.objectKeys(this.shape)){let i=this.shape[n];e&&!e[n]?r[n]=i:r[n]=i.optional()}return new t({...this._def,shape:()=>r})}required(e){let r={};for(let n of Ye.objectKeys(this.shape))if(e&&!e[n])r[n]=this.shape[n];else{let a=this.shape[n];for(;a instanceof Cn;)a=a._def.innerType;r[n]=a}return new t({...this._def,shape:()=>r})}keyof(){return xE(Ye.objectKeys(this.shape))}};en.create=(t,e)=>new en({shape:()=>t,unknownKeys:"strip",catchall:Qn.create(),typeName:we.ZodObject,...Me(e)});en.strictCreate=(t,e)=>new en({shape:()=>t,unknownKeys:"strict",catchall:Qn.create(),typeName:we.ZodObject,...Me(e)});en.lazycreate=(t,e)=>new en({shape:t,unknownKeys:"strip",catchall:Qn.create(),typeName:we.ZodObject,...Me(e)});var Ro=class extends Fe{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(a){for(let s of a)if(s.result.status==="valid")return s.result;for(let s of a)if(s.result.status==="dirty")return r.common.issues.push(...s.ctx.common.issues),s.result;let o=a.map(s=>new Qr(s.ctx.common.issues));return ae(r,{code:Q.invalid_union,unionErrors:o}),Te}if(r.common.async)return Promise.all(n.map(async a=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await a._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let a,o=[];for(let c of n){let u={...r,common:{...r.common,issues:[]},parent:null},l=c._parseSync({data:r.data,path:r.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!a&&(a={result:l,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(a)return r.common.issues.push(...a.ctx.common.issues),a.result;let s=o.map(c=>new Qr(c));return ae(r,{code:Q.invalid_union,unionErrors:s}),Te}}get options(){return this._def.options}};Ro.create=(t,e)=>new Ro({options:t,typeName:we.ZodUnion,...Me(e)});var _i=t=>t instanceof Co?_i(t.schema):t instanceof Nn?_i(t.innerType()):t instanceof No?[t.value]:t instanceof jo?t.options:t instanceof Ao?Ye.objectValues(t.enum):t instanceof Mo?_i(t._def.innerType):t instanceof Io?[void 0]:t instanceof Po?[null]:t instanceof Cn?[void 0,..._i(t.unwrap())]:t instanceof xi?[null,..._i(t.unwrap())]:t instanceof Ld||t instanceof zo?_i(t.unwrap()):t instanceof Do?_i(t._def.innerType):[],Cg=class t extends Fe{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ue.object)return ae(r,{code:Q.invalid_type,expected:ue.object,received:r.parsedType}),Te;let n=this.discriminator,i=r.data[n],a=this.optionsMap.get(i);return a?r.common.async?a._parseAsync({data:r.data,path:r.path,parent:r}):a._parseSync({data:r.data,path:r.path,parent:r}):(ae(r,{code:Q.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),Te)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let i=new Map;for(let a of r){let o=_i(a.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let s of o){if(i.has(s))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(s)}`);i.set(s,a)}}return new t({typeName:we.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Me(n)})}};function Ng(t,e){let r=yi(t),n=yi(e);if(t===e)return{valid:!0,data:t};if(r===ue.object&&n===ue.object){let i=Ye.objectKeys(e),a=Ye.objectKeys(t).filter(s=>i.indexOf(s)!==-1),o={...t,...e};for(let s of a){let c=Ng(t[s],e[s]);if(!c.valid)return{valid:!1};o[s]=c.data}return{valid:!0,data:o}}else if(r===ue.array&&n===ue.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let a=0;a{if(Pg(a)||Pg(o))return Te;let s=Ng(a.value,o.value);return s.valid?((Rg(a)||Rg(o))&&r.dirty(),{status:r.value,value:s.data}):(ae(n,{code:Q.invalid_intersection_types}),Te)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([a,o])=>i(a,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};Oo.create=(t,e,r)=>new Oo({left:t,right:e,typeName:we.ZodIntersection,...Me(r)});var bi=class t extends Fe{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ue.array)return ae(n,{code:Q.invalid_type,expected:ue.array,received:n.parsedType}),Te;if(n.data.lengththis._def.items.length&&(ae(n,{code:Q.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let a=[...n.data].map((o,s)=>{let c=this._def.items[s]||this._def.rest;return c?c._parse(new ln(n,o,n.path,s)):null}).filter(o=>!!o);return n.common.async?Promise.all(a).then(o=>hr.mergeArray(r,o)):hr.mergeArray(r,a)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};bi.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new bi({items:t,typeName:we.ZodTuple,rest:null,...Me(e)})};var jg=class t extends Fe{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ue.object)return ae(n,{code:Q.invalid_type,expected:ue.object,received:n.parsedType}),Te;let i=[],a=this._def.keyType,o=this._def.valueType;for(let s in n.data)i.push({key:a._parse(new ln(n,s,n.path,s)),value:o._parse(new ln(n,n.data[s],n.path,s)),alwaysSet:s in n.data});return n.common.async?hr.mergeObjectAsync(r,i):hr.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof Fe?new t({keyType:e,valueType:r,typeName:we.ZodRecord,...Me(n)}):new t({keyType:To.create(),valueType:e,typeName:we.ZodRecord,...Me(r)})}},zc=class extends Fe{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ue.map)return ae(n,{code:Q.invalid_type,expected:ue.map,received:n.parsedType}),Te;let i=this._def.keyType,a=this._def.valueType,o=[...n.data.entries()].map(([s,c],u)=>({key:i._parse(new ln(n,s,n.path,[u,"key"])),value:a._parse(new ln(n,c,n.path,[u,"value"]))}));if(n.common.async){let s=new Map;return Promise.resolve().then(async()=>{for(let c of o){let u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return Te;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),s.set(u.value,l.value)}return{status:r.value,value:s}})}else{let s=new Map;for(let c of o){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return Te;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),s.set(u.value,l.value)}return{status:r.value,value:s}}}};zc.create=(t,e,r)=>new zc({valueType:e,keyType:t,typeName:we.ZodMap,...Me(r)});var Uc=class t extends Fe{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ue.set)return ae(n,{code:Q.invalid_type,expected:ue.set,received:n.parsedType}),Te;let i=this._def;i.minSize!==null&&n.data.sizei.maxSize.value&&(ae(n,{code:Q.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let a=this._def.valueType;function o(c){let u=new Set;for(let l of c){if(l.status==="aborted")return Te;l.status==="dirty"&&r.dirty(),u.add(l.value)}return{status:r.value,value:u}}let s=[...n.data.values()].map((c,u)=>a._parse(new ln(n,c,n.path,u)));return n.common.async?Promise.all(s).then(c=>o(c)):o(s)}min(e,r){return new t({...this._def,minSize:{value:e,message:he.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:he.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};Uc.create=(t,e)=>new Uc({valueType:t,minSize:null,maxSize:null,typeName:we.ZodSet,...Me(e)});var Ag=class t extends Fe{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ue.function)return ae(r,{code:Q.invalid_type,expected:ue.function,received:r.parsedType}),Te;function n(s,c){return qd({data:s,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Pc(),Hi].filter(u=>!!u),issueData:{code:Q.invalid_arguments,argumentsError:c}})}function i(s,c){return qd({data:s,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Pc(),Hi].filter(u=>!!u),issueData:{code:Q.invalid_return_type,returnTypeError:c}})}let a={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof Pa){let s=this;return $r(async function(...c){let u=new Qr([]),l=await s._def.args.parseAsync(c,a).catch(f=>{throw u.addIssue(n(c,f)),u}),d=await Reflect.apply(o,this,l);return await s._def.returns._def.type.parseAsync(d,a).catch(f=>{throw u.addIssue(i(d,f)),u})})}else{let s=this;return $r(function(...c){let u=s._def.args.safeParse(c,a);if(!u.success)throw new Qr([n(c,u.error)]);let l=Reflect.apply(o,this,u.data),d=s._def.returns.safeParse(l,a);if(!d.success)throw new Qr([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:bi.create(e).rest(Bi.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||bi.create([]).rest(Bi.create()),returns:r||Bi.create(),typeName:we.ZodFunction,...Me(n)})}},Co=class extends Fe{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};Co.create=(t,e)=>new Co({getter:t,typeName:we.ZodLazy,...Me(e)});var No=class extends Fe{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return ae(r,{received:r.data,code:Q.invalid_literal,expected:this._def.value}),Te}return{status:"valid",value:e.data}}get value(){return this._def.value}};No.create=(t,e)=>new No({value:t,typeName:we.ZodLiteral,...Me(e)});function xE(t,e){return new jo({values:t,typeName:we.ZodEnum,...Me(e)})}var jo=class t extends Fe{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return ae(r,{expected:Ye.joinValues(n),received:r.parsedType,code:Q.invalid_type}),Te}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return ae(r,{received:r.data,code:Q.invalid_enum_value,options:n}),Te}return $r(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(n=>!e.includes(n)),{...this._def,...r})}};jo.create=xE;var Ao=class extends Fe{_parse(e){let r=Ye.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==ue.string&&n.parsedType!==ue.number){let i=Ye.objectValues(r);return ae(n,{expected:Ye.joinValues(i),received:n.parsedType,code:Q.invalid_type}),Te}if(this._cache||(this._cache=new Set(Ye.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let i=Ye.objectValues(r);return ae(n,{received:n.data,code:Q.invalid_enum_value,options:i}),Te}return $r(e.data)}get enum(){return this._def.values}};Ao.create=(t,e)=>new Ao({values:t,typeName:we.ZodNativeEnum,...Me(e)});var Pa=class extends Fe{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ue.promise&&r.common.async===!1)return ae(r,{code:Q.invalid_type,expected:ue.promise,received:r.parsedType}),Te;let n=r.parsedType===ue.promise?r.data:Promise.resolve(r.data);return $r(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};Pa.create=(t,e)=>new Pa({type:t,typeName:we.ZodPromise,...Me(e)});var Nn=class extends Fe{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===we.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,a={addIssue:o=>{ae(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(a.addIssue=a.addIssue.bind(a),i.type==="preprocess"){let o=i.transform(n.data,a);if(n.common.async)return Promise.resolve(o).then(async s=>{if(r.value==="aborted")return Te;let c=await this._def.schema._parseAsync({data:s,path:n.path,parent:n});return c.status==="aborted"?Te:c.status==="dirty"?Eo(c.value):r.value==="dirty"?Eo(c.value):c});{if(r.value==="aborted")return Te;let s=this._def.schema._parseSync({data:o,path:n.path,parent:n});return s.status==="aborted"?Te:s.status==="dirty"?Eo(s.value):r.value==="dirty"?Eo(s.value):s}}if(i.type==="refinement"){let o=s=>{let c=i.refinement(s,a);if(n.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return s};if(n.common.async===!1){let s=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?Te:(s.status==="dirty"&&r.dirty(),o(s.value),{status:r.value,value:s.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(s=>s.status==="aborted"?Te:(s.status==="dirty"&&r.dirty(),o(s.value).then(()=>({status:r.value,value:s.value}))))}if(i.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!Ia(o))return Te;let s=i.transform(o.value,a);if(s instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:s}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>Ia(o)?Promise.resolve(i.transform(o.value,a)).then(s=>({status:r.value,value:s})):Te);Ye.assertNever(i)}};Nn.create=(t,e,r)=>new Nn({schema:t,typeName:we.ZodEffects,effect:e,...Me(r)});Nn.createWithPreprocess=(t,e,r)=>new Nn({schema:e,effect:{type:"preprocess",transform:t},typeName:we.ZodEffects,...Me(r)});var Cn=class extends Fe{_parse(e){return this._getType(e)===ue.undefined?$r(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Cn.create=(t,e)=>new Cn({innerType:t,typeName:we.ZodOptional,...Me(e)});var xi=class extends Fe{_parse(e){return this._getType(e)===ue.null?$r(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};xi.create=(t,e)=>new xi({innerType:t,typeName:we.ZodNullable,...Me(e)});var Mo=class extends Fe{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===ue.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};Mo.create=(t,e)=>new Mo({innerType:t,typeName:we.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Me(e)});var Do=class extends Fe{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Rc(i)?i.then(a=>({status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new Qr(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Qr(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Do.create=(t,e)=>new Do({innerType:t,typeName:we.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Me(e)});var qc=class extends Fe{_parse(e){if(this._getType(e)!==ue.nan){let n=this._getOrReturnCtx(e);return ae(n,{code:Q.invalid_type,expected:ue.nan,received:n.parsedType}),Te}return{status:"valid",value:e.data}}};qc.create=t=>new qc({typeName:we.ZodNaN,...Me(t)});var Gfe=Symbol("zod_brand"),Ld=class extends Fe{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},Fd=class t extends Fe{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let a=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?Te:a.status==="dirty"?(r.dirty(),Eo(a.value)):this._def.out._parseAsync({data:a.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?Te:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:we.ZodPipeline})}},zo=class extends Fe{_parse(e){let r=this._def.innerType._parse(e),n=i=>(Ia(i)&&(i.value=Object.freeze(i.value)),i);return Rc(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};zo.create=(t,e)=>new zo({innerType:t,typeName:we.ZodReadonly,...Me(e)});var Wfe={object:en.lazycreate},we;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(we||(we={}));var Kfe=To.create,Jfe=Oc.create,Xfe=qc.create,Yfe=Cc.create,Qfe=Nc.create,eme=jc.create,tme=Ac.create,rme=Io.create,nme=Po.create,ime=Mc.create,ame=Bi.create,ome=Qn.create,sme=Dc.create,cme=Vi.create,Mq=en.create,ume=en.strictCreate,lme=Ro.create,dme=Cg.create,pme=Oo.create,fme=bi.create,mme=jg.create,hme=zc.create,gme=Uc.create,vme=Ag.create,yme=Co.create,_me=No.create,bme=jo.create,xme=Ao.create,Sme=Pa.create,wme=Nn.create,$me=Cn.create,Eme=xi.create,kme=Nn.createWithPreprocess,Tme=Fd.create;var SE=Object.freeze({status:"aborted"});function L(t,e,r){function n(s,c){if(s._zod||Object.defineProperty(s,"_zod",{value:{def:c,constr:o,traits:new Set},enumerable:!1}),s._zod.traits.has(t))return;s._zod.traits.add(t),e(s,c);let u=o.prototype,l=Object.keys(u);for(let d=0;dr?.Parent&&s instanceof r.Parent?!0:s?._zod?.traits?.has(t)}),Object.defineProperty(o,"name",{value:t}),o}var Mg=Symbol("zod_brand"),ei=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Ra=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}},Zd={};function tr(t){return t&&Object.assign(Zd,t),Zd}var ee={};On(ee,{BIGINT_FORMAT_RANGES:()=>Bg,Class:()=>zg,NUMBER_FORMAT_RANGES:()=>Hg,aborted:()=>Ji,allowsEval:()=>Lg,assert:()=>Zq,assertEqual:()=>Uq,assertIs:()=>Lq,assertNever:()=>Fq,assertNotEqual:()=>qq,assignProp:()=>Wi,base64ToUint8Array:()=>EE,base64urlToUint8Array:()=>oL,cached:()=>qo,captureStackTrace:()=>Bd,cleanEnum:()=>aL,cleanRegex:()=>Zc,clone:()=>Er,cloneDef:()=>Bq,createTransparentProxy:()=>Xq,defineLazy:()=>qe,esc:()=>Hd,escapeRegex:()=>dn,extend:()=>eL,finalizeIssue:()=>Dr,floatSafeRemainder:()=>Ug,getElementAtPath:()=>Vq,getEnumValues:()=>Fc,getLengthableOrigin:()=>Vc,getParsedType:()=>Jq,getSizableOrigin:()=>Bc,hexToUint8Array:()=>cL,isObject:()=>Oa,isPlainObject:()=>Ki,issue:()=>Lo,joinValues:()=>$e,jsonStringifyReplacer:()=>Uo,merge:()=>rL,mergeDefs:()=>Si,normalizeParams:()=>oe,nullish:()=>Gi,numKeys:()=>Kq,objectClone:()=>Hq,omit:()=>Qq,optionalKeys:()=>Zg,parsedType:()=>Ie,partial:()=>nL,pick:()=>Yq,prefixIssues:()=>tn,primitiveTypes:()=>Fg,promiseAllObject:()=>Gq,propertyKeyTypes:()=>Hc,randomString:()=>Wq,required:()=>iL,safeExtend:()=>tL,shallowClone:()=>$E,slugify:()=>qg,stringifyPrimitive:()=>Ee,uint8ArrayToBase64:()=>kE,uint8ArrayToBase64url:()=>sL,uint8ArrayToHex:()=>uL,unwrapMessage:()=>Lc});function Uq(t){return t}function qq(t){return t}function Lq(t){}function Fq(t){throw new Error("Unexpected value in exhaustive check")}function Zq(t){}function Fc(t){let e=Object.values(t).filter(n=>typeof n=="number");return Object.entries(t).filter(([n,i])=>e.indexOf(+n)===-1).map(([n,i])=>i)}function $e(t,e="|"){return t.map(r=>Ee(r)).join(e)}function Uo(t,e){return typeof e=="bigint"?e.toString():e}function qo(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Gi(t){return t==null}function Zc(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function Ug(t,e){let r=(t.toString().split(".")[1]||"").length,n=e.toString(),i=(n.split(".")[1]||"").length;if(i===0&&/\d?e-\d?/.test(n)){let c=n.match(/\d?e-(\d?)/);c?.[1]&&(i=Number.parseInt(c[1]))}let a=r>i?r:i,o=Number.parseInt(t.toFixed(a).replace(".","")),s=Number.parseInt(e.toFixed(a).replace(".",""));return o%s/10**a}var wE=Symbol("evaluating");function qe(t,e,r){let n;Object.defineProperty(t,e,{get(){if(n!==wE)return n===void 0&&(n=wE,n=r()),n},set(i){Object.defineProperty(t,e,{value:i})},configurable:!0})}function Hq(t){return Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t))}function Wi(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function Si(...t){let e={};for(let r of t){let n=Object.getOwnPropertyDescriptors(r);Object.assign(e,n)}return Object.defineProperties({},e)}function Bq(t){return Si(t._zod.def)}function Vq(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function Gq(t){let e=Object.keys(t),r=e.map(n=>t[n]);return Promise.all(r).then(n=>{let i={};for(let a=0;a{};function Oa(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var Lg=qo(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function Ki(t){if(Oa(t)===!1)return!1;let e=t.constructor;if(e===void 0||typeof e!="function")return!0;let r=e.prototype;return!(Oa(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function $E(t){return Ki(t)?{...t}:Array.isArray(t)?[...t]:t}function Kq(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var Jq=t=>{let e=typeof t;switch(e){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(t)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(t)?"array":t===null?"null":t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?"promise":typeof Map<"u"&&t instanceof Map?"map":typeof Set<"u"&&t instanceof Set?"set":typeof Date<"u"&&t instanceof Date?"date":typeof File<"u"&&t instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${e}`)}},Hc=new Set(["string","number","symbol"]),Fg=new Set(["string","number","bigint","boolean","symbol","undefined"]);function dn(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Er(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function oe(t){let e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if(e?.message!==void 0){if(e?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function Xq(t){let e;return new Proxy({},{get(r,n,i){return e??(e=t()),Reflect.get(e,n,i)},set(r,n,i,a){return e??(e=t()),Reflect.set(e,n,i,a)},has(r,n){return e??(e=t()),Reflect.has(e,n)},deleteProperty(r,n){return e??(e=t()),Reflect.deleteProperty(e,n)},ownKeys(r){return e??(e=t()),Reflect.ownKeys(e)},getOwnPropertyDescriptor(r,n){return e??(e=t()),Reflect.getOwnPropertyDescriptor(e,n)},defineProperty(r,n,i){return e??(e=t()),Reflect.defineProperty(e,n,i)}})}function Ee(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function Zg(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var Hg={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},Bg={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function Yq(t,e){let r=t._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let a=Si(t._zod.def,{get shape(){let o={};for(let s in e){if(!(s in r.shape))throw new Error(`Unrecognized key: "${s}"`);e[s]&&(o[s]=r.shape[s])}return Wi(this,"shape",o),o},checks:[]});return Er(t,a)}function Qq(t,e){let r=t._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let a=Si(t._zod.def,{get shape(){let o={...t._zod.def.shape};for(let s in e){if(!(s in r.shape))throw new Error(`Unrecognized key: "${s}"`);e[s]&&delete o[s]}return Wi(this,"shape",o),o},checks:[]});return Er(t,a)}function eL(t,e){if(!Ki(e))throw new Error("Invalid input to extend: expected a plain object");let r=t._zod.def.checks;if(r&&r.length>0){let a=t._zod.def.shape;for(let o in e)if(Object.getOwnPropertyDescriptor(a,o)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let i=Si(t._zod.def,{get shape(){let a={...t._zod.def.shape,...e};return Wi(this,"shape",a),a}});return Er(t,i)}function tL(t,e){if(!Ki(e))throw new Error("Invalid input to safeExtend: expected a plain object");let r=Si(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e};return Wi(this,"shape",n),n}});return Er(t,r)}function rL(t,e){let r=Si(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e._zod.def.shape};return Wi(this,"shape",n),n},get catchall(){return e._zod.def.catchall},checks:[]});return Er(t,r)}function nL(t,e,r){let i=e._zod.def.checks;if(i&&i.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let o=Si(e._zod.def,{get shape(){let s=e._zod.def.shape,c={...s};if(r)for(let u in r){if(!(u in s))throw new Error(`Unrecognized key: "${u}"`);r[u]&&(c[u]=t?new t({type:"optional",innerType:s[u]}):s[u])}else for(let u in s)c[u]=t?new t({type:"optional",innerType:s[u]}):s[u];return Wi(this,"shape",c),c},checks:[]});return Er(e,o)}function iL(t,e,r){let n=Si(e._zod.def,{get shape(){let i=e._zod.def.shape,a={...i};if(r)for(let o in r){if(!(o in a))throw new Error(`Unrecognized key: "${o}"`);r[o]&&(a[o]=new t({type:"nonoptional",innerType:i[o]}))}else for(let o in i)a[o]=new t({type:"nonoptional",innerType:i[o]});return Wi(this,"shape",a),a}});return Er(e,n)}function Ji(t,e=0){if(t.aborted===!0)return!0;for(let r=e;r{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function Lc(t){return typeof t=="string"?t:t?.message}function Dr(t,e,r){let n={...t,path:t.path??[]};if(!t.message){let i=Lc(t.inst?._zod.def?.error?.(t))??Lc(e?.error?.(t))??Lc(r.customError?.(t))??Lc(r.localeError?.(t))??"Invalid input";n.message=i}return delete n.inst,delete n.continue,e?.reportInput||delete n.input,n}function Bc(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function Vc(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function Ie(t){let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"nan":"number";case"object":{if(t===null)return"null";if(Array.isArray(t))return"array";let r=t;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return e}function Lo(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function aL(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function EE(t){let e=atob(t),r=new Uint8Array(e.length);for(let n=0;ne.toString(16).padStart(2,"0")).join("")}var zg=class{constructor(...e){}};var TE=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),t.message=JSON.stringify(e,Uo,2),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},Vd=L("$ZodError",TE),Gc=L("$ZodError",TE,{Parent:Error});function Gd(t,e=r=>r.message){let r={},n=[];for(let i of t.issues)i.path.length>0?(r[i.path[0]]=r[i.path[0]]||[],r[i.path[0]].push(e(i))):n.push(e(i));return{formErrors:n,fieldErrors:r}}function Wd(t,e=r=>r.message){let r={_errors:[]},n=i=>{for(let a of i.issues)if(a.code==="invalid_union"&&a.errors.length)a.errors.map(o=>n({issues:o}));else if(a.code==="invalid_key")n({issues:a.issues});else if(a.code==="invalid_element")n({issues:a.issues});else if(a.path.length===0)r._errors.push(e(a));else{let o=r,s=0;for(;s(e,r,n,i)=>{let a=n?Object.assign(n,{async:!1}):{async:!1},o=e._zod.run({value:r,issues:[]},a);if(o instanceof Promise)throw new ei;if(o.issues.length){let s=new(i?.Err??t)(o.issues.map(c=>Dr(c,a,tr())));throw Bd(s,i?.callee),s}return o.value},Kc=Wc(Gc),Jc=t=>async(e,r,n,i)=>{let a=n?Object.assign(n,{async:!0}):{async:!0},o=e._zod.run({value:r,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let s=new(i?.Err??t)(o.issues.map(c=>Dr(c,a,tr())));throw Bd(s,i?.callee),s}return o.value},Xc=Jc(Gc),Yc=t=>(e,r,n)=>{let i=n?{...n,async:!1}:{async:!1},a=e._zod.run({value:r,issues:[]},i);if(a instanceof Promise)throw new ei;return a.issues.length?{success:!1,error:new(t??Vd)(a.issues.map(o=>Dr(o,i,tr())))}:{success:!0,data:a.value}},Fo=Yc(Gc),Qc=t=>async(e,r,n)=>{let i=n?Object.assign(n,{async:!0}):{async:!0},a=e._zod.run({value:r,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new t(a.issues.map(o=>Dr(o,i,tr())))}:{success:!0,data:a.value}},eu=Qc(Gc),IE=t=>(e,r,n)=>{let i=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Wc(t)(e,r,i)};var PE=t=>(e,r,n)=>Wc(t)(e,r,n);var RE=t=>async(e,r,n)=>{let i=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Jc(t)(e,r,i)};var OE=t=>async(e,r,n)=>Jc(t)(e,r,n);var CE=t=>(e,r,n)=>{let i=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Yc(t)(e,r,i)};var NE=t=>(e,r,n)=>Yc(t)(e,r,n);var jE=t=>async(e,r,n)=>{let i=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Qc(t)(e,r,i)};var AE=t=>async(e,r,n)=>Qc(t)(e,r,n);var pn={};On(pn,{base64:()=>sv,base64url:()=>Kd,bigint:()=>fv,boolean:()=>hv,browserEmail:()=>yL,cidrv4:()=>av,cidrv6:()=>ov,cuid:()=>Vg,cuid2:()=>Gg,date:()=>uv,datetime:()=>dv,domain:()=>xL,duration:()=>Yg,e164:()=>cv,email:()=>ev,emoji:()=>tv,extendedDuration:()=>dL,guid:()=>Qg,hex:()=>SL,hostname:()=>bL,html5Email:()=>hL,idnEmail:()=>vL,integer:()=>mv,ipv4:()=>rv,ipv6:()=>nv,ksuid:()=>Jg,lowercase:()=>yv,mac:()=>iv,md5_base64:()=>$L,md5_base64url:()=>EL,md5_hex:()=>wL,nanoid:()=>Xg,null:()=>gv,number:()=>Jd,rfc5322Email:()=>gL,sha1_base64:()=>TL,sha1_base64url:()=>IL,sha1_hex:()=>kL,sha256_base64:()=>RL,sha256_base64url:()=>OL,sha256_hex:()=>PL,sha384_base64:()=>NL,sha384_base64url:()=>jL,sha384_hex:()=>CL,sha512_base64:()=>ML,sha512_base64url:()=>DL,sha512_hex:()=>AL,string:()=>pv,time:()=>lv,ulid:()=>Wg,undefined:()=>vv,unicodeEmail:()=>ME,uppercase:()=>_v,uuid:()=>Ca,uuid4:()=>pL,uuid6:()=>fL,uuid7:()=>mL,xid:()=>Kg});var Vg=/^[cC][^\s-]{8,}$/,Gg=/^[0-9a-z]+$/,Wg=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Kg=/^[0-9a-vA-V]{20}$/,Jg=/^[A-Za-z0-9]{27}$/,Xg=/^[a-zA-Z0-9_-]{21}$/,Yg=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,dL=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Qg=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Ca=t=>t?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${t}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,pL=Ca(4),fL=Ca(6),mL=Ca(7),ev=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,hL=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,gL=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,ME=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,vL=ME,yL=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,_L="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function tv(){return new RegExp(_L,"u")}var rv=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,nv=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,iv=t=>{let e=dn(t??":");return new RegExp(`^(?:[0-9A-F]{2}${e}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${e}){5}[0-9a-f]{2}$`)},av=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,ov=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,sv=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Kd=/^[A-Za-z0-9_-]*$/,bL=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,xL=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,cv=/^\+[1-9]\d{6,14}$/,DE="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",uv=new RegExp(`^${DE}$`);function zE(t){let e="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof t.precision=="number"?t.precision===-1?`${e}`:t.precision===0?`${e}:[0-5]\\d`:`${e}:[0-5]\\d\\.\\d{${t.precision}}`:`${e}(?::[0-5]\\d(?:\\.\\d+)?)?`}function lv(t){return new RegExp(`^${zE(t)}$`)}function dv(t){let e=zE({precision:t.precision}),r=["Z"];t.local&&r.push(""),t.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let n=`${e}(?:${r.join("|")})`;return new RegExp(`^${DE}T(?:${n})$`)}var pv=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},fv=/^-?\d+n?$/,mv=/^-?\d+$/,Jd=/^-?\d+(?:\.\d+)?$/,hv=/^(?:true|false)$/i,gv=/^null$/i;var vv=/^undefined$/i;var yv=/^[^A-Z]*$/,_v=/^[^a-z]*$/,SL=/^[0-9a-fA-F]*$/;function tu(t,e){return new RegExp(`^[A-Za-z0-9+/]{${t}}${e}$`)}function ru(t){return new RegExp(`^[A-Za-z0-9_-]{${t}}$`)}var wL=/^[0-9a-fA-F]{32}$/,$L=tu(22,"=="),EL=ru(22),kL=/^[0-9a-fA-F]{40}$/,TL=tu(27,"="),IL=ru(27),PL=/^[0-9a-fA-F]{64}$/,RL=tu(43,"="),OL=ru(43),CL=/^[0-9a-fA-F]{96}$/,NL=tu(64,""),jL=ru(64),AL=/^[0-9a-fA-F]{128}$/,ML=tu(86,"=="),DL=ru(86);var wt=L("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),qE={number:"number",bigint:"bigint",object:"date"},bv=L("$ZodCheckLessThan",(t,e)=>{wt.init(t,e);let r=qE[typeof e.value];t._zod.onattach.push(n=>{let i=n._zod.bag,a=(e.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?n.value<=e.value:n.value{wt.init(t,e);let r=qE[typeof e.value];t._zod.onattach.push(n=>{let i=n._zod.bag,a=(e.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>a&&(e.inclusive?i.minimum=e.value:i.exclusiveMinimum=e.value)}),t._zod.check=n=>{(e.inclusive?n.value>=e.value:n.value>e.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof e.value=="object"?e.value.getTime():e.value,input:n.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),LE=L("$ZodCheckMultipleOf",(t,e)=>{wt.init(t,e),t._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=e.value)}),t._zod.check=r=>{if(typeof r.value!=typeof e.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%e.value===BigInt(0):Ug(r.value,e.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:e.value,input:r.value,inst:t,continue:!e.abort})}}),FE=L("$ZodCheckNumberFormat",(t,e)=>{wt.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[i,a]=Hg[e.format];t._zod.onattach.push(o=>{let s=o._zod.bag;s.format=e.format,s.minimum=i,s.maximum=a,r&&(s.pattern=mv)}),t._zod.check=o=>{let s=o.value;if(r){if(!Number.isInteger(s)){o.issues.push({expected:n,format:e.format,code:"invalid_type",continue:!1,input:s,inst:t});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,inclusive:!0,continue:!e.abort}):o.issues.push({input:s,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,inclusive:!0,continue:!e.abort});return}}sa&&o.issues.push({origin:"number",input:s,code:"too_big",maximum:a,inclusive:!0,inst:t,continue:!e.abort})}}),ZE=L("$ZodCheckBigIntFormat",(t,e)=>{wt.init(t,e);let[r,n]=Bg[e.format];t._zod.onattach.push(i=>{let a=i._zod.bag;a.format=e.format,a.minimum=r,a.maximum=n}),t._zod.check=i=>{let a=i.value;an&&i.issues.push({origin:"bigint",input:a,code:"too_big",maximum:n,inclusive:!0,inst:t,continue:!e.abort})}}),HE=L("$ZodCheckMaxSize",(t,e)=>{var r;wt.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!Gi(i)&&i.size!==void 0}),t._zod.onattach.push(n=>{let i=n._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let i=n.value;i.size<=e.maximum||n.issues.push({origin:Bc(i),code:"too_big",maximum:e.maximum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),BE=L("$ZodCheckMinSize",(t,e)=>{var r;wt.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!Gi(i)&&i.size!==void 0}),t._zod.onattach.push(n=>{let i=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>i&&(n._zod.bag.minimum=e.minimum)}),t._zod.check=n=>{let i=n.value;i.size>=e.minimum||n.issues.push({origin:Bc(i),code:"too_small",minimum:e.minimum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),VE=L("$ZodCheckSizeEquals",(t,e)=>{var r;wt.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!Gi(i)&&i.size!==void 0}),t._zod.onattach.push(n=>{let i=n._zod.bag;i.minimum=e.size,i.maximum=e.size,i.size=e.size}),t._zod.check=n=>{let i=n.value,a=i.size;if(a===e.size)return;let o=a>e.size;n.issues.push({origin:Bc(i),...o?{code:"too_big",maximum:e.size}:{code:"too_small",minimum:e.size},inclusive:!0,exact:!0,input:n.value,inst:t,continue:!e.abort})}}),GE=L("$ZodCheckMaxLength",(t,e)=>{var r;wt.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!Gi(i)&&i.length!==void 0}),t._zod.onattach.push(n=>{let i=n._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let i=n.value;if(i.length<=e.maximum)return;let o=Vc(i);n.issues.push({origin:o,code:"too_big",maximum:e.maximum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),WE=L("$ZodCheckMinLength",(t,e)=>{var r;wt.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!Gi(i)&&i.length!==void 0}),t._zod.onattach.push(n=>{let i=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>i&&(n._zod.bag.minimum=e.minimum)}),t._zod.check=n=>{let i=n.value;if(i.length>=e.minimum)return;let o=Vc(i);n.issues.push({origin:o,code:"too_small",minimum:e.minimum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),KE=L("$ZodCheckLengthEquals",(t,e)=>{var r;wt.init(t,e),(r=t._zod.def).when??(r.when=n=>{let i=n.value;return!Gi(i)&&i.length!==void 0}),t._zod.onattach.push(n=>{let i=n._zod.bag;i.minimum=e.length,i.maximum=e.length,i.length=e.length}),t._zod.check=n=>{let i=n.value,a=i.length;if(a===e.length)return;let o=Vc(i),s=a>e.length;n.issues.push({origin:o,...s?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:n.value,inst:t,continue:!e.abort})}}),nu=L("$ZodCheckStringFormat",(t,e)=>{var r,n;wt.init(t,e),t._zod.onattach.push(i=>{let a=i._zod.bag;a.format=e.format,e.pattern&&(a.patterns??(a.patterns=new Set),a.patterns.add(e.pattern))}),e.pattern?(r=t._zod).check??(r.check=i=>{e.pattern.lastIndex=0,!e.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:e.format,input:i.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(n=t._zod).check??(n.check=()=>{})}),JE=L("$ZodCheckRegex",(t,e)=>{nu.init(t,e),t._zod.check=r=>{e.pattern.lastIndex=0,!e.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:e.pattern.toString(),inst:t,continue:!e.abort})}}),XE=L("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=yv),nu.init(t,e)}),YE=L("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=_v),nu.init(t,e)}),QE=L("$ZodCheckIncludes",(t,e)=>{wt.init(t,e);let r=dn(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=n,t._zod.onattach.push(i=>{let a=i._zod.bag;a.patterns??(a.patterns=new Set),a.patterns.add(n)}),t._zod.check=i=>{i.value.includes(e.includes,e.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:i.value,inst:t,continue:!e.abort})}}),ek=L("$ZodCheckStartsWith",(t,e)=>{wt.init(t,e);let r=new RegExp(`^${dn(e.prefix)}.*`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let i=n._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(r)}),t._zod.check=n=>{n.value.startsWith(e.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:n.value,inst:t,continue:!e.abort})}}),tk=L("$ZodCheckEndsWith",(t,e)=>{wt.init(t,e);let r=new RegExp(`.*${dn(e.suffix)}$`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let i=n._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(r)}),t._zod.check=n=>{n.value.endsWith(e.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:n.value,inst:t,continue:!e.abort})}});function UE(t,e,r){t.issues.length&&e.issues.push(...tn(r,t.issues))}var rk=L("$ZodCheckProperty",(t,e)=>{wt.init(t,e),t._zod.check=r=>{let n=e.schema._zod.run({value:r.value[e.property],issues:[]},{});if(n instanceof Promise)return n.then(i=>UE(i,r,e.property));UE(n,r,e.property)}}),nk=L("$ZodCheckMimeType",(t,e)=>{wt.init(t,e);let r=new Set(e.mime);t._zod.onattach.push(n=>{n._zod.bag.mime=e.mime}),t._zod.check=n=>{r.has(n.value.type)||n.issues.push({code:"invalid_value",values:e.mime,input:n.value.type,inst:t,continue:!e.abort})}}),ik=L("$ZodCheckOverwrite",(t,e)=>{wt.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});var Xd=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let n=e.split(` +`).filter(o=>o),i=Math.min(...n.map(o=>o.length-o.trimStart().length)),a=n.map(o=>o.slice(i)).map(o=>" ".repeat(this.indent*2)+o);for(let o of a)this.content.push(o)}compile(){let e=Function,r=this?.args,i=[...(this?.content??[""]).map(a=>` ${a}`)];return new e(...r,i.join(` +`))}};var ok={major:4,minor:3,patch:4};var Ae=L("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=ok;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let i of n)for(let a of i._zod.onattach)a(t);if(n.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let i=(o,s,c)=>{let u=Ji(o),l;for(let d of s){if(d._zod.def.when){if(!d._zod.def.when(o))continue}else if(u)continue;let p=o.issues.length,f=d._zod.check(o);if(f instanceof Promise&&c?.async===!1)throw new ei;if(l||f instanceof Promise)l=(l??Promise.resolve()).then(async()=>{await f,o.issues.length!==p&&(u||(u=Ji(o,p)))});else{if(o.issues.length===p)continue;u||(u=Ji(o,p))}}return l?l.then(()=>o):o},a=(o,s,c)=>{if(Ji(o))return o.aborted=!0,o;let u=i(s,n,c);if(u instanceof Promise){if(c.async===!1)throw new ei;return u.then(l=>t._zod.parse(l,c))}return t._zod.parse(u,c)};t._zod.run=(o,s)=>{if(s.skipChecks)return t._zod.parse(o,s);if(s.direction==="backward"){let u=t._zod.parse({value:o.value,issues:[]},{...s,skipChecks:!0});return u instanceof Promise?u.then(l=>a(l,o,s)):a(u,o,s)}let c=t._zod.parse(o,s);if(c instanceof Promise){if(s.async===!1)throw new ei;return c.then(u=>i(u,n,s))}return i(c,n,s)}}qe(t,"~standard",()=>({validate:i=>{try{let a=Fo(t,i);return a.success?{value:a.data}:{issues:a.error?.issues}}catch{return eu(t,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}))}),Na=L("$ZodString",(t,e)=>{Ae.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??pv(t._zod.bag),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:t}),r}}),_t=L("$ZodStringFormat",(t,e)=>{nu.init(t,e),Na.init(t,e)}),wv=L("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=Qg),_t.init(t,e)}),$v=L("$ZodUUID",(t,e)=>{if(e.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(n===void 0)throw new Error(`Invalid UUID version: "${e.version}"`);e.pattern??(e.pattern=Ca(n))}else e.pattern??(e.pattern=Ca());_t.init(t,e)}),Ev=L("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=ev),_t.init(t,e)}),kv=L("$ZodURL",(t,e)=>{_t.init(t,e),t._zod.check=r=>{try{let n=r.value.trim(),i=new URL(n);e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(i.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:e.hostname.source,input:r.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:r.value,inst:t,continue:!e.abort})),e.normalize?r.value=i.href:r.value=n;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!e.abort})}}}),Tv=L("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=tv()),_t.init(t,e)}),Iv=L("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=Xg),_t.init(t,e)}),Pv=L("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=Vg),_t.init(t,e)}),Rv=L("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=Gg),_t.init(t,e)}),Ov=L("$ZodULID",(t,e)=>{e.pattern??(e.pattern=Wg),_t.init(t,e)}),Cv=L("$ZodXID",(t,e)=>{e.pattern??(e.pattern=Kg),_t.init(t,e)}),Nv=L("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=Jg),_t.init(t,e)}),jv=L("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=dv(e)),_t.init(t,e)}),Av=L("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=uv),_t.init(t,e)}),Mv=L("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=lv(e)),_t.init(t,e)}),Dv=L("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=Yg),_t.init(t,e)}),zv=L("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=rv),_t.init(t,e),t._zod.bag.format="ipv4"}),Uv=L("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=nv),_t.init(t,e),t._zod.bag.format="ipv6",t._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:t,continue:!e.abort})}}}),qv=L("$ZodMAC",(t,e)=>{e.pattern??(e.pattern=iv(e.delimiter)),_t.init(t,e),t._zod.bag.format="mac"}),Lv=L("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=av),_t.init(t,e)}),Fv=L("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=ov),_t.init(t,e),t._zod.check=r=>{let n=r.value.split("/");try{if(n.length!==2)throw new Error;let[i,a]=n;if(!a)throw new Error;let o=Number(a);if(`${o}`!==a)throw new Error;if(o<0||o>128)throw new Error;new URL(`http://[${i}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:t,continue:!e.abort})}}});function yk(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var Zv=L("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=sv),_t.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=r=>{yk(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function zL(t){if(!Kd.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return yk(r)}var Hv=L("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=Kd),_t.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=r=>{zL(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),Bv=L("$ZodE164",(t,e)=>{e.pattern??(e.pattern=cv),_t.init(t,e)});function UL(t,e=null){try{let r=t.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let i=JSON.parse(atob(n));return!("typ"in i&&i?.typ!=="JWT"||!i.alg||e&&(!("alg"in i)||i.alg!==e))}catch{return!1}}var Vv=L("$ZodJWT",(t,e)=>{_t.init(t,e),t._zod.check=r=>{UL(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}}),Gv=L("$ZodCustomStringFormat",(t,e)=>{_t.init(t,e),t._zod.check=r=>{e.fn(r.value)||r.issues.push({code:"invalid_format",format:e.format,input:r.value,inst:t,continue:!e.abort})}}),np=L("$ZodNumber",(t,e)=>{Ae.init(t,e),t._zod.pattern=t._zod.bag.pattern??Jd,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=Number(r.value)}catch{}let i=r.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return r;let a=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:i,inst:t,...a?{received:a}:{}}),r}}),Wv=L("$ZodNumberFormat",(t,e)=>{FE.init(t,e),np.init(t,e)}),iu=L("$ZodBoolean",(t,e)=>{Ae.init(t,e),t._zod.pattern=hv,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=!!r.value}catch{}let i=r.value;return typeof i=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:t}),r}}),ip=L("$ZodBigInt",(t,e)=>{Ae.init(t,e),t._zod.pattern=fv,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=BigInt(r.value)}catch{}return typeof r.value=="bigint"||r.issues.push({expected:"bigint",code:"invalid_type",input:r.value,inst:t}),r}}),Kv=L("$ZodBigIntFormat",(t,e)=>{ZE.init(t,e),ip.init(t,e)}),Jv=L("$ZodSymbol",(t,e)=>{Ae.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;return typeof i=="symbol"||r.issues.push({expected:"symbol",code:"invalid_type",input:i,inst:t}),r}}),Xv=L("$ZodUndefined",(t,e)=>{Ae.init(t,e),t._zod.pattern=vv,t._zod.values=new Set([void 0]),t._zod.optin="optional",t._zod.optout="optional",t._zod.parse=(r,n)=>{let i=r.value;return typeof i>"u"||r.issues.push({expected:"undefined",code:"invalid_type",input:i,inst:t}),r}}),Yv=L("$ZodNull",(t,e)=>{Ae.init(t,e),t._zod.pattern=gv,t._zod.values=new Set([null]),t._zod.parse=(r,n)=>{let i=r.value;return i===null||r.issues.push({expected:"null",code:"invalid_type",input:i,inst:t}),r}}),Qv=L("$ZodAny",(t,e)=>{Ae.init(t,e),t._zod.parse=r=>r}),ey=L("$ZodUnknown",(t,e)=>{Ae.init(t,e),t._zod.parse=r=>r}),ty=L("$ZodNever",(t,e)=>{Ae.init(t,e),t._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)}),ry=L("$ZodVoid",(t,e)=>{Ae.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;return typeof i>"u"||r.issues.push({expected:"void",code:"invalid_type",input:i,inst:t}),r}}),ny=L("$ZodDate",(t,e)=>{Ae.init(t,e),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=new Date(r.value)}catch{}let i=r.value,a=i instanceof Date;return a&&!Number.isNaN(i.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:i,...a?{received:"Invalid Date"}:{},inst:t}),r}});function sk(t,e,r){t.issues.length&&e.issues.push(...tn(r,t.issues)),e.value[r]=t.value}var iy=L("$ZodArray",(t,e)=>{Ae.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;if(!Array.isArray(i))return r.issues.push({expected:"array",code:"invalid_type",input:i,inst:t}),r;r.value=Array(i.length);let a=[];for(let o=0;osk(u,r,o))):sk(c,r,o)}return a.length?Promise.all(a).then(()=>r):r}});function rp(t,e,r,n,i){if(t.issues.length){if(i&&!(r in n))return;e.issues.push(...tn(r,t.issues))}t.value===void 0?r in n&&(e.value[r]=void 0):e.value[r]=t.value}function _k(t){let e=Object.keys(t.shape);for(let n of e)if(!t.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);let r=Zg(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(r)}}function bk(t,e,r,n,i,a){let o=[],s=i.keySet,c=i.catchall._zod,u=c.def.type,l=c.optout==="optional";for(let d in e){if(s.has(d))continue;if(u==="never"){o.push(d);continue}let p=c.run({value:e[d],issues:[]},n);p instanceof Promise?t.push(p.then(f=>rp(f,r,d,e,l))):rp(p,r,d,e,l)}return o.length&&r.issues.push({code:"unrecognized_keys",keys:o,input:e,inst:a}),t.length?Promise.all(t).then(()=>r):r}var xk=L("$ZodObject",(t,e)=>{if(Ae.init(t,e),!Object.getOwnPropertyDescriptor(e,"shape")?.get){let s=e.shape;Object.defineProperty(e,"shape",{get:()=>{let c={...s};return Object.defineProperty(e,"shape",{value:c}),c}})}let n=qo(()=>_k(e));qe(t._zod,"propValues",()=>{let s=e.shape,c={};for(let u in s){let l=s[u]._zod;if(l.values){c[u]??(c[u]=new Set);for(let d of l.values)c[u].add(d)}}return c});let i=Oa,a=e.catchall,o;t._zod.parse=(s,c)=>{o??(o=n.value);let u=s.value;if(!i(u))return s.issues.push({expected:"object",code:"invalid_type",input:u,inst:t}),s;s.value={};let l=[],d=o.shape;for(let p of o.keys){let f=d[p],h=f._zod.optout==="optional",_=f._zod.run({value:u[p],issues:[]},c);_ instanceof Promise?l.push(_.then(y=>rp(y,s,p,u,h))):rp(_,s,p,u,h)}return a?bk(l,u,s,c,n.value,t):l.length?Promise.all(l).then(()=>s):s}}),Sk=L("$ZodObjectJIT",(t,e)=>{xk.init(t,e);let r=t._zod.parse,n=qo(()=>_k(e)),i=p=>{let f=new Xd(["shape","payload","ctx"]),h=n.value,_=g=>{let b=Hd(g);return`shape[${b}]._zod.run({ value: input[${b}], issues: [] }, ctx)`};f.write("const input = payload.value;");let y=Object.create(null),m=0;for(let g of h.keys)y[g]=`key_${m++}`;f.write("const newResult = {};");for(let g of h.keys){let b=y[g],S=Hd(g),w=p[g]?._zod?.optout==="optional";f.write(`const ${b} = ${_(g)};`),w?f.write(` + if (${b}.issues.length) { + if (${S} in input) { + payload.issues = payload.issues.concat(${b}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${S}, ...iss.path] : [${S}] + }))); + } + } + + if (${b}.value === undefined) { + if (${S} in input) { + newResult[${S}] = undefined; + } + } else { + newResult[${S}] = ${b}.value; + } + + `):f.write(` + if (${b}.issues.length) { + payload.issues = payload.issues.concat(${b}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${S}, ...iss.path] : [${S}] + }))); + } + + if (${b}.value === undefined) { + if (${S} in input) { + newResult[${S}] = undefined; + } + } else { + newResult[${S}] = ${b}.value; + } + + `)}f.write("payload.value = newResult;"),f.write("return payload;");let v=f.compile();return(g,b)=>v(p,g,b)},a,o=Oa,s=!Zd.jitless,u=s&&Lg.value,l=e.catchall,d;t._zod.parse=(p,f)=>{d??(d=n.value);let h=p.value;return o(h)?s&&u&&f?.async===!1&&f.jitless!==!0?(a||(a=i(e.shape)),p=a(p,f),l?bk([],h,p,f,d,t):p):r(p,f):(p.issues.push({expected:"object",code:"invalid_type",input:h,inst:t}),p)}});function ck(t,e,r,n){for(let a of t)if(a.issues.length===0)return e.value=a.value,e;let i=t.filter(a=>!Ji(a));return i.length===1?(e.value=i[0].value,i[0]):(e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(a=>a.issues.map(o=>Dr(o,n,tr())))}),e)}var au=L("$ZodUnion",(t,e)=>{Ae.init(t,e),qe(t._zod,"optin",()=>e.options.some(i=>i._zod.optin==="optional")?"optional":void 0),qe(t._zod,"optout",()=>e.options.some(i=>i._zod.optout==="optional")?"optional":void 0),qe(t._zod,"values",()=>{if(e.options.every(i=>i._zod.values))return new Set(e.options.flatMap(i=>Array.from(i._zod.values)))}),qe(t._zod,"pattern",()=>{if(e.options.every(i=>i._zod.pattern)){let i=e.options.map(a=>a._zod.pattern);return new RegExp(`^(${i.map(a=>Zc(a.source)).join("|")})$`)}});let r=e.options.length===1,n=e.options[0]._zod.run;t._zod.parse=(i,a)=>{if(r)return n(i,a);let o=!1,s=[];for(let c of e.options){let u=c._zod.run({value:i.value,issues:[]},a);if(u instanceof Promise)s.push(u),o=!0;else{if(u.issues.length===0)return u;s.push(u)}}return o?Promise.all(s).then(c=>ck(c,i,t,a)):ck(s,i,t,a)}});function uk(t,e,r,n){let i=t.filter(a=>a.issues.length===0);return i.length===1?(e.value=i[0].value,e):(i.length===0?e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(a=>a.issues.map(o=>Dr(o,n,tr())))}):e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:[],inclusive:!1}),e)}var ay=L("$ZodXor",(t,e)=>{au.init(t,e),e.inclusive=!1;let r=e.options.length===1,n=e.options[0]._zod.run;t._zod.parse=(i,a)=>{if(r)return n(i,a);let o=!1,s=[];for(let c of e.options){let u=c._zod.run({value:i.value,issues:[]},a);u instanceof Promise?(s.push(u),o=!0):s.push(u)}return o?Promise.all(s).then(c=>uk(c,i,t,a)):uk(s,i,t,a)}}),oy=L("$ZodDiscriminatedUnion",(t,e)=>{e.inclusive=!1,au.init(t,e);let r=t._zod.parse;qe(t._zod,"propValues",()=>{let i={};for(let a of e.options){let o=a._zod.propValues;if(!o||Object.keys(o).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(a)}"`);for(let[s,c]of Object.entries(o)){i[s]||(i[s]=new Set);for(let u of c)i[s].add(u)}}return i});let n=qo(()=>{let i=e.options,a=new Map;for(let o of i){let s=o._zod.propValues?.[e.discriminator];if(!s||s.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(o)}"`);for(let c of s){if(a.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);a.set(c,o)}}return a});t._zod.parse=(i,a)=>{let o=i.value;if(!Oa(o))return i.issues.push({code:"invalid_type",expected:"object",input:o,inst:t}),i;let s=n.value.get(o?.[e.discriminator]);return s?s._zod.run(i,a):e.unionFallback?r(i,a):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:e.discriminator,input:o,path:[e.discriminator],inst:t}),i)}}),sy=L("$ZodIntersection",(t,e)=>{Ae.init(t,e),t._zod.parse=(r,n)=>{let i=r.value,a=e.left._zod.run({value:i,issues:[]},n),o=e.right._zod.run({value:i,issues:[]},n);return a instanceof Promise||o instanceof Promise?Promise.all([a,o]).then(([c,u])=>lk(r,c,u)):lk(r,a,o)}});function Sv(t,e){if(t===e)return{valid:!0,data:t};if(t instanceof Date&&e instanceof Date&&+t==+e)return{valid:!0,data:t};if(Ki(t)&&Ki(e)){let r=Object.keys(e),n=Object.keys(t).filter(a=>r.indexOf(a)!==-1),i={...t,...e};for(let a of n){let o=Sv(t[a],e[a]);if(!o.valid)return{valid:!1,mergeErrorPath:[a,...o.mergeErrorPath]};i[a]=o.data}return{valid:!0,data:i}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;ns.l&&s.r).map(([s])=>s);if(a.length&&i&&t.issues.push({...i,keys:a}),Ji(t))return t;let o=Sv(e.value,r.value);if(!o.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(o.mergeErrorPath)}`);return t.value=o.data,t}var ap=L("$ZodTuple",(t,e)=>{Ae.init(t,e);let r=e.items;t._zod.parse=(n,i)=>{let a=n.value;if(!Array.isArray(a))return n.issues.push({input:a,inst:t,expected:"tuple",code:"invalid_type"}),n;n.value=[];let o=[],s=[...r].reverse().findIndex(l=>l._zod.optin!=="optional"),c=s===-1?0:r.length-s;if(!e.rest){let l=a.length>r.length,d=a.length=a.length&&u>=c)continue;let d=l._zod.run({value:a[u],issues:[]},i);d instanceof Promise?o.push(d.then(p=>Yd(p,n,u))):Yd(d,n,u)}if(e.rest){let l=a.slice(r.length);for(let d of l){u++;let p=e.rest._zod.run({value:d,issues:[]},i);p instanceof Promise?o.push(p.then(f=>Yd(f,n,u))):Yd(p,n,u)}}return o.length?Promise.all(o).then(()=>n):n}});function Yd(t,e,r){t.issues.length&&e.issues.push(...tn(r,t.issues)),e.value[r]=t.value}var cy=L("$ZodRecord",(t,e)=>{Ae.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;if(!Ki(i))return r.issues.push({expected:"record",code:"invalid_type",input:i,inst:t}),r;let a=[],o=e.keyType._zod.values;if(o){r.value={};let s=new Set;for(let u of o)if(typeof u=="string"||typeof u=="number"||typeof u=="symbol"){s.add(typeof u=="number"?u.toString():u);let l=e.valueType._zod.run({value:i[u],issues:[]},n);l instanceof Promise?a.push(l.then(d=>{d.issues.length&&r.issues.push(...tn(u,d.issues)),r.value[u]=d.value})):(l.issues.length&&r.issues.push(...tn(u,l.issues)),r.value[u]=l.value)}let c;for(let u in i)s.has(u)||(c=c??[],c.push(u));c&&c.length>0&&r.issues.push({code:"unrecognized_keys",input:i,inst:t,keys:c})}else{r.value={};for(let s of Reflect.ownKeys(i)){if(s==="__proto__")continue;let c=e.keyType._zod.run({value:s,issues:[]},n);if(c instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof s=="string"&&Jd.test(s)&&c.issues.length&&c.issues.some(d=>d.code==="invalid_type"&&d.expected==="number")){let d=e.keyType._zod.run({value:Number(s),issues:[]},n);if(d instanceof Promise)throw new Error("Async schemas not supported in object keys currently");d.issues.length===0&&(c=d)}if(c.issues.length){e.mode==="loose"?r.value[s]=i[s]:r.issues.push({code:"invalid_key",origin:"record",issues:c.issues.map(d=>Dr(d,n,tr())),input:s,path:[s],inst:t});continue}let l=e.valueType._zod.run({value:i[s],issues:[]},n);l instanceof Promise?a.push(l.then(d=>{d.issues.length&&r.issues.push(...tn(s,d.issues)),r.value[c.value]=d.value})):(l.issues.length&&r.issues.push(...tn(s,l.issues)),r.value[c.value]=l.value)}}return a.length?Promise.all(a).then(()=>r):r}}),uy=L("$ZodMap",(t,e)=>{Ae.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;if(!(i instanceof Map))return r.issues.push({expected:"map",code:"invalid_type",input:i,inst:t}),r;let a=[];r.value=new Map;for(let[o,s]of i){let c=e.keyType._zod.run({value:o,issues:[]},n),u=e.valueType._zod.run({value:s,issues:[]},n);c instanceof Promise||u instanceof Promise?a.push(Promise.all([c,u]).then(([l,d])=>{dk(l,d,r,o,i,t,n)})):dk(c,u,r,o,i,t,n)}return a.length?Promise.all(a).then(()=>r):r}});function dk(t,e,r,n,i,a,o){t.issues.length&&(Hc.has(typeof n)?r.issues.push(...tn(n,t.issues)):r.issues.push({code:"invalid_key",origin:"map",input:i,inst:a,issues:t.issues.map(s=>Dr(s,o,tr()))})),e.issues.length&&(Hc.has(typeof n)?r.issues.push(...tn(n,e.issues)):r.issues.push({origin:"map",code:"invalid_element",input:i,inst:a,key:n,issues:e.issues.map(s=>Dr(s,o,tr()))})),r.value.set(t.value,e.value)}var ly=L("$ZodSet",(t,e)=>{Ae.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;if(!(i instanceof Set))return r.issues.push({input:i,inst:t,expected:"set",code:"invalid_type"}),r;let a=[];r.value=new Set;for(let o of i){let s=e.valueType._zod.run({value:o,issues:[]},n);s instanceof Promise?a.push(s.then(c=>pk(c,r))):pk(s,r)}return a.length?Promise.all(a).then(()=>r):r}});function pk(t,e){t.issues.length&&e.issues.push(...t.issues),e.value.add(t.value)}var dy=L("$ZodEnum",(t,e)=>{Ae.init(t,e);let r=Fc(e.entries),n=new Set(r);t._zod.values=n,t._zod.pattern=new RegExp(`^(${r.filter(i=>Hc.has(typeof i)).map(i=>typeof i=="string"?dn(i):i.toString()).join("|")})$`),t._zod.parse=(i,a)=>{let o=i.value;return n.has(o)||i.issues.push({code:"invalid_value",values:r,input:o,inst:t}),i}}),py=L("$ZodLiteral",(t,e)=>{if(Ae.init(t,e),e.values.length===0)throw new Error("Cannot create literal schema with no valid values");let r=new Set(e.values);t._zod.values=r,t._zod.pattern=new RegExp(`^(${e.values.map(n=>typeof n=="string"?dn(n):n?dn(n.toString()):String(n)).join("|")})$`),t._zod.parse=(n,i)=>{let a=n.value;return r.has(a)||n.issues.push({code:"invalid_value",values:e.values,input:a,inst:t}),n}}),fy=L("$ZodFile",(t,e)=>{Ae.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;return i instanceof File||r.issues.push({expected:"file",code:"invalid_type",input:i,inst:t}),r}}),my=L("$ZodTransform",(t,e)=>{Ae.init(t,e),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Ra(t.constructor.name);let i=e.transform(r.value,r);if(n.async)return(i instanceof Promise?i:Promise.resolve(i)).then(o=>(r.value=o,r));if(i instanceof Promise)throw new ei;return r.value=i,r}});function fk(t,e){return t.issues.length&&e===void 0?{issues:[],value:void 0}:t}var op=L("$ZodOptional",(t,e)=>{Ae.init(t,e),t._zod.optin="optional",t._zod.optout="optional",qe(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),qe(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Zc(r.source)})?$`):void 0}),t._zod.parse=(r,n)=>{if(e.innerType._zod.optin==="optional"){let i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(a=>fk(a,r.value)):fk(i,r.value)}return r.value===void 0?r:e.innerType._zod.run(r,n)}}),hy=L("$ZodExactOptional",(t,e)=>{op.init(t,e),qe(t._zod,"values",()=>e.innerType._zod.values),qe(t._zod,"pattern",()=>e.innerType._zod.pattern),t._zod.parse=(r,n)=>e.innerType._zod.run(r,n)}),gy=L("$ZodNullable",(t,e)=>{Ae.init(t,e),qe(t._zod,"optin",()=>e.innerType._zod.optin),qe(t._zod,"optout",()=>e.innerType._zod.optout),qe(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Zc(r.source)}|null)$`):void 0}),qe(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,n)=>r.value===null?r:e.innerType._zod.run(r,n)}),vy=L("$ZodDefault",(t,e)=>{Ae.init(t,e),t._zod.optin="optional",qe(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);if(r.value===void 0)return r.value=e.defaultValue,r;let i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(a=>mk(a,e)):mk(i,e)}});function mk(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var yy=L("$ZodPrefault",(t,e)=>{Ae.init(t,e),t._zod.optin="optional",qe(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,n))}),_y=L("$ZodNonOptional",(t,e)=>{Ae.init(t,e),qe(t._zod,"values",()=>{let r=e.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),t._zod.parse=(r,n)=>{let i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(a=>hk(a,t)):hk(i,t)}});function hk(t,e){return!t.issues.length&&t.value===void 0&&t.issues.push({code:"invalid_type",expected:"nonoptional",input:t.value,inst:e}),t}var by=L("$ZodSuccess",(t,e)=>{Ae.init(t,e),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Ra("ZodSuccess");let i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(a=>(r.value=a.issues.length===0,r)):(r.value=i.issues.length===0,r)}}),xy=L("$ZodCatch",(t,e)=>{Ae.init(t,e),qe(t._zod,"optin",()=>e.innerType._zod.optin),qe(t._zod,"optout",()=>e.innerType._zod.optout),qe(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);let i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(a=>(r.value=a.value,a.issues.length&&(r.value=e.catchValue({...r,error:{issues:a.issues.map(o=>Dr(o,n,tr()))},input:r.value}),r.issues=[]),r)):(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(a=>Dr(a,n,tr()))},input:r.value}),r.issues=[]),r)}}),Sy=L("$ZodNaN",(t,e)=>{Ae.init(t,e),t._zod.parse=(r,n)=>((typeof r.value!="number"||!Number.isNaN(r.value))&&r.issues.push({input:r.value,inst:t,expected:"nan",code:"invalid_type"}),r)}),wy=L("$ZodPipe",(t,e)=>{Ae.init(t,e),qe(t._zod,"values",()=>e.in._zod.values),qe(t._zod,"optin",()=>e.in._zod.optin),qe(t._zod,"optout",()=>e.out._zod.optout),qe(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(r,n)=>{if(n.direction==="backward"){let a=e.out._zod.run(r,n);return a instanceof Promise?a.then(o=>Qd(o,e.in,n)):Qd(a,e.in,n)}let i=e.in._zod.run(r,n);return i instanceof Promise?i.then(a=>Qd(a,e.out,n)):Qd(i,e.out,n)}});function Qd(t,e,r){return t.issues.length?(t.aborted=!0,t):e._zod.run({value:t.value,issues:t.issues},r)}var ou=L("$ZodCodec",(t,e)=>{Ae.init(t,e),qe(t._zod,"values",()=>e.in._zod.values),qe(t._zod,"optin",()=>e.in._zod.optin),qe(t._zod,"optout",()=>e.out._zod.optout),qe(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(r,n)=>{if((n.direction||"forward")==="forward"){let a=e.in._zod.run(r,n);return a instanceof Promise?a.then(o=>ep(o,e,n)):ep(a,e,n)}else{let a=e.out._zod.run(r,n);return a instanceof Promise?a.then(o=>ep(o,e,n)):ep(a,e,n)}}});function ep(t,e,r){if(t.issues.length)return t.aborted=!0,t;if((r.direction||"forward")==="forward"){let i=e.transform(t.value,t);return i instanceof Promise?i.then(a=>tp(t,a,e.out,r)):tp(t,i,e.out,r)}else{let i=e.reverseTransform(t.value,t);return i instanceof Promise?i.then(a=>tp(t,a,e.in,r)):tp(t,i,e.in,r)}}function tp(t,e,r,n){return t.issues.length?(t.aborted=!0,t):r._zod.run({value:e,issues:t.issues},n)}var $y=L("$ZodReadonly",(t,e)=>{Ae.init(t,e),qe(t._zod,"propValues",()=>e.innerType._zod.propValues),qe(t._zod,"values",()=>e.innerType._zod.values),qe(t._zod,"optin",()=>e.innerType?._zod?.optin),qe(t._zod,"optout",()=>e.innerType?._zod?.optout),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);let i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(gk):gk(i)}});function gk(t){return t.value=Object.freeze(t.value),t}var Ey=L("$ZodTemplateLiteral",(t,e)=>{Ae.init(t,e);let r=[];for(let n of e.parts)if(typeof n=="object"&&n!==null){if(!n._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...n._zod.traits].shift()}`);let i=n._zod.pattern instanceof RegExp?n._zod.pattern.source:n._zod.pattern;if(!i)throw new Error(`Invalid template literal part: ${n._zod.traits}`);let a=i.startsWith("^")?1:0,o=i.endsWith("$")?i.length-1:i.length;r.push(i.slice(a,o))}else if(n===null||Fg.has(typeof n))r.push(dn(`${n}`));else throw new Error(`Invalid template literal part: ${n}`);t._zod.pattern=new RegExp(`^${r.join("")}$`),t._zod.parse=(n,i)=>typeof n.value!="string"?(n.issues.push({input:n.value,inst:t,expected:"string",code:"invalid_type"}),n):(t._zod.pattern.lastIndex=0,t._zod.pattern.test(n.value)||n.issues.push({input:n.value,inst:t,code:"invalid_format",format:e.format??"template_literal",pattern:t._zod.pattern.source}),n)}),ky=L("$ZodFunction",(t,e)=>(Ae.init(t,e),t._def=e,t._zod.def=e,t.implement=r=>{if(typeof r!="function")throw new Error("implement() must be called with a function");return function(...n){let i=t._def.input?Kc(t._def.input,n):n,a=Reflect.apply(r,this,i);return t._def.output?Kc(t._def.output,a):a}},t.implementAsync=r=>{if(typeof r!="function")throw new Error("implementAsync() must be called with a function");return async function(...n){let i=t._def.input?await Xc(t._def.input,n):n,a=await Reflect.apply(r,this,i);return t._def.output?await Xc(t._def.output,a):a}},t._zod.parse=(r,n)=>typeof r.value!="function"?(r.issues.push({code:"invalid_type",expected:"function",input:r.value,inst:t}),r):(t._def.output&&t._def.output._zod.def.type==="promise"?r.value=t.implementAsync(r.value):r.value=t.implement(r.value),r),t.input=(...r)=>{let n=t.constructor;return Array.isArray(r[0])?new n({type:"function",input:new ap({type:"tuple",items:r[0],rest:r[1]}),output:t._def.output}):new n({type:"function",input:r[0],output:t._def.output})},t.output=r=>{let n=t.constructor;return new n({type:"function",input:t._def.input,output:r})},t)),Ty=L("$ZodPromise",(t,e)=>{Ae.init(t,e),t._zod.parse=(r,n)=>Promise.resolve(r.value).then(i=>e.innerType._zod.run({value:i,issues:[]},n))}),Iy=L("$ZodLazy",(t,e)=>{Ae.init(t,e),qe(t._zod,"innerType",()=>e.getter()),qe(t._zod,"pattern",()=>t._zod.innerType?._zod?.pattern),qe(t._zod,"propValues",()=>t._zod.innerType?._zod?.propValues),qe(t._zod,"optin",()=>t._zod.innerType?._zod?.optin??void 0),qe(t._zod,"optout",()=>t._zod.innerType?._zod?.optout??void 0),t._zod.parse=(r,n)=>t._zod.innerType._zod.run(r,n)}),Py=L("$ZodCustom",(t,e)=>{wt.init(t,e),Ae.init(t,e),t._zod.parse=(r,n)=>r,t._zod.check=r=>{let n=r.value,i=e.fn(n);if(i instanceof Promise)return i.then(a=>vk(a,r,n,t));vk(i,r,n,t)}});function vk(t,e,r,n){if(!t){let i={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(i.params=n._zod.def.params),e.issues.push(Lo(i))}}var LL=()=>{let t={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function e(i){return t[i]??null}let r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},n={nan:"NaN"};return i=>{switch(i.code){case"invalid_type":{let a=n[i.expected]??i.expected,o=Ie(i.input),s=n[o]??o;return`Invalid input: expected ${a}, received ${s}`}case"invalid_value":return i.values.length===1?`Invalid input: expected ${Ee(i.values[0])}`:`Invalid option: expected one of ${$e(i.values,"|")}`;case"too_big":{let a=i.inclusive?"<=":"<",o=e(i.origin);return o?`Too big: expected ${i.origin??"value"} to have ${a}${i.maximum.toString()} ${o.unit??"elements"}`:`Too big: expected ${i.origin??"value"} to be ${a}${i.maximum.toString()}`}case"too_small":{let a=i.inclusive?">=":">",o=e(i.origin);return o?`Too small: expected ${i.origin} to have ${a}${i.minimum.toString()} ${o.unit}`:`Too small: expected ${i.origin} to be ${a}${i.minimum.toString()}`}case"invalid_format":{let a=i;return a.format==="starts_with"?`Invalid string: must start with "${a.prefix}"`:a.format==="ends_with"?`Invalid string: must end with "${a.suffix}"`:a.format==="includes"?`Invalid string: must include "${a.includes}"`:a.format==="regex"?`Invalid string: must match pattern ${a.pattern}`:`Invalid ${r[a.format]??i.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${i.divisor}`;case"unrecognized_keys":return`Unrecognized key${i.keys.length>1?"s":""}: ${$e(i.keys,", ")}`;case"invalid_key":return`Invalid key in ${i.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${i.origin}`;default:return"Invalid input"}}};function Ry(){return{localeError:LL()}}var wk,$k=Symbol("ZodOutput"),Ek=Symbol("ZodInput"),Cy=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...r){let n=r[0];return this._map.set(e,n),n&&typeof n=="object"&&"id"in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let r=this._map.get(e);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(e),this}get(e){let r=e._zod.parent;if(r){let n={...this.get(r)??{}};delete n.id;let i={...n,...this._map.get(e)};return Object.keys(i).length?i:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function Ny(){return new Cy}(wk=globalThis).__zod_globalRegistry??(wk.__zod_globalRegistry=Ny());var kr=globalThis.__zod_globalRegistry;function jy(t,e){return new t({type:"string",...oe(e)})}function sp(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...oe(e)})}function su(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...oe(e)})}function cp(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...oe(e)})}function up(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...oe(e)})}function lp(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...oe(e)})}function dp(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...oe(e)})}function cu(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...oe(e)})}function pp(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...oe(e)})}function fp(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...oe(e)})}function mp(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...oe(e)})}function hp(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...oe(e)})}function gp(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...oe(e)})}function vp(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...oe(e)})}function yp(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...oe(e)})}function _p(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...oe(e)})}function bp(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...oe(e)})}function Ay(t,e){return new t({type:"string",format:"mac",check:"string_format",abort:!1,...oe(e)})}function xp(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...oe(e)})}function Sp(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...oe(e)})}function wp(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...oe(e)})}function $p(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...oe(e)})}function Ep(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...oe(e)})}function kp(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...oe(e)})}function My(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...oe(e)})}function Dy(t,e){return new t({type:"string",format:"date",check:"string_format",...oe(e)})}function zy(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...oe(e)})}function Uy(t,e){return new t({type:"string",format:"duration",check:"string_format",...oe(e)})}function qy(t,e){return new t({type:"number",checks:[],...oe(e)})}function Ly(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...oe(e)})}function Fy(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float32",...oe(e)})}function Zy(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float64",...oe(e)})}function Hy(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"int32",...oe(e)})}function By(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"uint32",...oe(e)})}function Vy(t,e){return new t({type:"boolean",...oe(e)})}function Gy(t,e){return new t({type:"bigint",...oe(e)})}function Wy(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...oe(e)})}function Ky(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...oe(e)})}function Jy(t,e){return new t({type:"symbol",...oe(e)})}function Xy(t,e){return new t({type:"undefined",...oe(e)})}function Yy(t,e){return new t({type:"null",...oe(e)})}function Qy(t){return new t({type:"any"})}function e_(t){return new t({type:"unknown"})}function t_(t,e){return new t({type:"never",...oe(e)})}function r_(t,e){return new t({type:"void",...oe(e)})}function n_(t,e){return new t({type:"date",...oe(e)})}function i_(t,e){return new t({type:"nan",...oe(e)})}function wi(t,e){return new bv({check:"less_than",...oe(e),value:t,inclusive:!1})}function rn(t,e){return new bv({check:"less_than",...oe(e),value:t,inclusive:!0})}function $i(t,e){return new xv({check:"greater_than",...oe(e),value:t,inclusive:!1})}function Tr(t,e){return new xv({check:"greater_than",...oe(e),value:t,inclusive:!0})}function a_(t){return $i(0,t)}function o_(t){return wi(0,t)}function s_(t){return rn(0,t)}function c_(t){return Tr(0,t)}function ja(t,e){return new LE({check:"multiple_of",...oe(e),value:t})}function Aa(t,e){return new HE({check:"max_size",...oe(e),maximum:t})}function Ei(t,e){return new BE({check:"min_size",...oe(e),minimum:t})}function Zo(t,e){return new VE({check:"size_equals",...oe(e),size:t})}function Ho(t,e){return new GE({check:"max_length",...oe(e),maximum:t})}function Xi(t,e){return new WE({check:"min_length",...oe(e),minimum:t})}function Bo(t,e){return new KE({check:"length_equals",...oe(e),length:t})}function uu(t,e){return new JE({check:"string_format",format:"regex",...oe(e),pattern:t})}function lu(t){return new XE({check:"string_format",format:"lowercase",...oe(t)})}function du(t){return new YE({check:"string_format",format:"uppercase",...oe(t)})}function pu(t,e){return new QE({check:"string_format",format:"includes",...oe(e),includes:t})}function fu(t,e){return new ek({check:"string_format",format:"starts_with",...oe(e),prefix:t})}function mu(t,e){return new tk({check:"string_format",format:"ends_with",...oe(e),suffix:t})}function u_(t,e,r){return new rk({check:"property",property:t,schema:e,...oe(r)})}function hu(t,e){return new nk({check:"mime_type",mime:t,...oe(e)})}function ti(t){return new ik({check:"overwrite",tx:t})}function gu(t){return ti(e=>e.normalize(t))}function vu(){return ti(t=>t.trim())}function yu(){return ti(t=>t.toLowerCase())}function _u(){return ti(t=>t.toUpperCase())}function Tp(){return ti(t=>qg(t))}function kk(t,e,r){return new t({type:"array",element:e,...oe(r)})}function l_(t,e){return new t({type:"file",...oe(e)})}function d_(t,e,r){let n=oe(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function p_(t,e,r){return new t({type:"custom",check:"custom",fn:e,...oe(r)})}function f_(t){let e=BL(r=>(r.addIssue=n=>{if(typeof n=="string")r.issues.push(Lo(n,r.value,e._zod.def));else{let i=n;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=r.value),i.inst??(i.inst=e),i.continue??(i.continue=!e._zod.def.abort),r.issues.push(Lo(i))}},t(r.value,r)));return e}function BL(t,e){let r=new wt({check:"custom",...oe(e)});return r._zod.check=t,r}function m_(t){let e=new wt({check:"describe"});return e._zod.onattach=[r=>{let n=kr.get(r)??{};kr.add(r,{...n,description:t})}],e._zod.check=()=>{},e}function h_(t){let e=new wt({check:"meta"});return e._zod.onattach=[r=>{let n=kr.get(r)??{};kr.add(r,{...n,...t})}],e._zod.check=()=>{},e}function g_(t,e){let r=oe(e),n=r.truthy??["true","1","yes","on","y","enabled"],i=r.falsy??["false","0","no","off","n","disabled"];r.case!=="sensitive"&&(n=n.map(f=>typeof f=="string"?f.toLowerCase():f),i=i.map(f=>typeof f=="string"?f.toLowerCase():f));let a=new Set(n),o=new Set(i),s=t.Codec??ou,c=t.Boolean??iu,u=t.String??Na,l=new u({type:"string",error:r.error}),d=new c({type:"boolean",error:r.error}),p=new s({type:"pipe",in:l,out:d,transform:((f,h)=>{let _=f;return r.case!=="sensitive"&&(_=_.toLowerCase()),a.has(_)?!0:o.has(_)?!1:(h.issues.push({code:"invalid_value",expected:"stringbool",values:[...a,...o],input:h.value,inst:p,continue:!1}),{})}),reverseTransform:((f,h)=>f===!0?n[0]||"true":i[0]||"false"),error:r.error});return p}function Vo(t,e,r,n={}){let i=oe(n),a={...oe(n),check:"string_format",type:"string",format:e,fn:typeof r=="function"?r:s=>r.test(s),...i};return r instanceof RegExp&&(a.pattern=r),new t(a)}function Ip(t){let e=t?.target??"draft-2020-12";return e==="draft-4"&&(e="draft-04"),e==="draft-7"&&(e="draft-07"),{processors:t.processors??{},metadataRegistry:t?.metadata??kr,target:e,unrepresentable:t?.unrepresentable??"throw",override:t?.override??(()=>{}),io:t?.io??"output",counter:0,seen:new Map,cycles:t?.cycles??"ref",reused:t?.reused??"inline",external:t?.external??void 0}}function It(t,e,r={path:[],schemaPath:[]}){var n;let i=t._zod.def,a=e.seen.get(t);if(a)return a.count++,r.schemaPath.includes(t)&&(a.cycle=r.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:r.path};e.seen.set(t,o);let s=t._zod.toJSONSchema?.();if(s)o.schema=s;else{let l={...r,schemaPath:[...r.schemaPath,t],path:r.path};if(t._zod.processJSONSchema)t._zod.processJSONSchema(e,o.schema,l);else{let p=o.schema,f=e.processors[i.type];if(!f)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);f(t,e,p,l)}let d=t._zod.parent;d&&(o.ref||(o.ref=d),It(d,e,l),e.seen.get(d).isParent=!0)}let c=e.metadataRegistry.get(t);return c&&Object.assign(o.schema,c),e.io==="input"&&Ir(t)&&(delete o.schema.examples,delete o.schema.default),e.io==="input"&&o.schema._prefault&&((n=o.schema).default??(n.default=o.schema._prefault)),delete o.schema._prefault,e.seen.get(t).schema}function Pp(t,e){let r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=new Map;for(let o of t.seen.entries()){let s=t.metadataRegistry.get(o[0])?.id;if(s){let c=n.get(s);if(c&&c!==o[0])throw new Error(`Duplicate schema id "${s}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(s,o[0])}}let i=o=>{let s=t.target==="draft-2020-12"?"$defs":"definitions";if(t.external){let d=t.external.registry.get(o[0])?.id,p=t.external.uri??(h=>h);if(d)return{ref:p(d)};let f=o[1].defId??o[1].schema.id??`schema${t.counter++}`;return o[1].defId=f,{defId:f,ref:`${p("__shared")}#/${s}/${f}`}}if(o[1]===r)return{ref:"#"};let u=`#/${s}/`,l=o[1].schema.id??`__schema${t.counter++}`;return{defId:l,ref:u+l}},a=o=>{if(o[1].schema.$ref)return;let s=o[1],{ref:c,defId:u}=i(o);s.def={...s.schema},u&&(s.defId=u);let l=s.schema;for(let d in l)delete l[d];l.$ref=c};if(t.cycles==="throw")for(let o of t.seen.entries()){let s=o[1];if(s.cycle)throw new Error(`Cycle detected: #/${s.cycle?.join("/")}/ + +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let o of t.seen.entries()){let s=o[1];if(e===o[0]){a(o);continue}if(t.external){let u=t.external.registry.get(o[0])?.id;if(e!==o[0]&&u){a(o);continue}}if(t.metadataRegistry.get(o[0])?.id){a(o);continue}if(s.cycle){a(o);continue}if(s.count>1&&t.reused==="ref"){a(o);continue}}}function Rp(t,e){let r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=o=>{let s=t.seen.get(o);if(s.ref===null)return;let c=s.def??s.schema,u={...c},l=s.ref;if(s.ref=null,l){n(l);let p=t.seen.get(l),f=p.schema;if(f.$ref&&(t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0")?(c.allOf=c.allOf??[],c.allOf.push(f)):Object.assign(c,f),Object.assign(c,u),o._zod.parent===l)for(let _ in c)_==="$ref"||_==="allOf"||_ in u||delete c[_];if(f.$ref)for(let _ in c)_==="$ref"||_==="allOf"||_ in p.def&&JSON.stringify(c[_])===JSON.stringify(p.def[_])&&delete c[_]}let d=o._zod.parent;if(d&&d!==l){n(d);let p=t.seen.get(d);if(p?.schema.$ref&&(c.$ref=p.schema.$ref,p.def))for(let f in c)f==="$ref"||f==="allOf"||f in p.def&&JSON.stringify(c[f])===JSON.stringify(p.def[f])&&delete c[f]}t.override({zodSchema:o,jsonSchema:c,path:s.path??[]})};for(let o of[...t.seen.entries()].reverse())n(o[0]);let i={};if(t.target==="draft-2020-12"?i.$schema="https://json-schema.org/draft/2020-12/schema":t.target==="draft-07"?i.$schema="http://json-schema.org/draft-07/schema#":t.target==="draft-04"?i.$schema="http://json-schema.org/draft-04/schema#":t.target,t.external?.uri){let o=t.external.registry.get(e)?.id;if(!o)throw new Error("Schema is missing an `id` property");i.$id=t.external.uri(o)}Object.assign(i,r.def??r.schema);let a=t.external?.defs??{};for(let o of t.seen.entries()){let s=o[1];s.def&&s.defId&&(a[s.defId]=s.def)}t.external||Object.keys(a).length>0&&(t.target==="draft-2020-12"?i.$defs=a:i.definitions=a);try{let o=JSON.parse(JSON.stringify(i));return Object.defineProperty(o,"~standard",{value:{...e["~standard"],jsonSchema:{input:bu(e,"input",t.processors),output:bu(e,"output",t.processors)}},enumerable:!1,writable:!1}),o}catch{throw new Error("Error converting schema to JSON.")}}function Ir(t,e){let r=e??{seen:new Set};if(r.seen.has(t))return!1;r.seen.add(t);let n=t._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return Ir(n.element,r);if(n.type==="set")return Ir(n.valueType,r);if(n.type==="lazy")return Ir(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return Ir(n.innerType,r);if(n.type==="intersection")return Ir(n.left,r)||Ir(n.right,r);if(n.type==="record"||n.type==="map")return Ir(n.keyType,r)||Ir(n.valueType,r);if(n.type==="pipe")return Ir(n.in,r)||Ir(n.out,r);if(n.type==="object"){for(let i in n.shape)if(Ir(n.shape[i],r))return!0;return!1}if(n.type==="union"){for(let i of n.options)if(Ir(i,r))return!0;return!1}if(n.type==="tuple"){for(let i of n.items)if(Ir(i,r))return!0;return!!(n.rest&&Ir(n.rest,r))}return!1}var Tk=(t,e={})=>r=>{let n=Ip({...r,processors:e});return It(t,n),Pp(n,t),Rp(n,t)},bu=(t,e,r={})=>n=>{let{libraryOptions:i,target:a}=n??{},o=Ip({...i??{},target:a,io:e,processors:r});return It(t,o),Pp(o,t),Rp(o,t)};var VL={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Ik=(t,e,r,n)=>{let i=r;i.type="string";let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:u}=t._zod.bag;if(typeof a=="number"&&(i.minLength=a),typeof o=="number"&&(i.maxLength=o),s&&(i.format=VL[s]??s,i.format===""&&delete i.format,s==="time"&&delete i.format),u&&(i.contentEncoding=u),c&&c.size>0){let l=[...c];l.length===1?i.pattern=l[0].source:l.length>1&&(i.allOf=[...l.map(d=>({...e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"?{type:"string"}:{},pattern:d.source}))])}},Pk=(t,e,r,n)=>{let i=r,{minimum:a,maximum:o,format:s,multipleOf:c,exclusiveMaximum:u,exclusiveMinimum:l}=t._zod.bag;typeof s=="string"&&s.includes("int")?i.type="integer":i.type="number",typeof l=="number"&&(e.target==="draft-04"||e.target==="openapi-3.0"?(i.minimum=l,i.exclusiveMinimum=!0):i.exclusiveMinimum=l),typeof a=="number"&&(i.minimum=a,typeof l=="number"&&e.target!=="draft-04"&&(l>=a?delete i.minimum:delete i.exclusiveMinimum)),typeof u=="number"&&(e.target==="draft-04"||e.target==="openapi-3.0"?(i.maximum=u,i.exclusiveMaximum=!0):i.exclusiveMaximum=u),typeof o=="number"&&(i.maximum=o,typeof u=="number"&&e.target!=="draft-04"&&(u<=o?delete i.maximum:delete i.exclusiveMaximum)),typeof c=="number"&&(i.multipleOf=c)},Rk=(t,e,r,n)=>{r.type="boolean"},Ok=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},Ck=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},Nk=(t,e,r,n)=>{e.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"},jk=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},Ak=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},Mk=(t,e,r,n)=>{r.not={}},Dk=(t,e,r,n)=>{},zk=(t,e,r,n)=>{},Uk=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},qk=(t,e,r,n)=>{let i=t._zod.def,a=Fc(i.entries);a.every(o=>typeof o=="number")&&(r.type="number"),a.every(o=>typeof o=="string")&&(r.type="string"),r.enum=a},Lk=(t,e,r,n)=>{let i=t._zod.def,a=[];for(let o of i.values)if(o===void 0){if(e.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof o=="bigint"){if(e.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");a.push(Number(o))}else a.push(o);if(a.length!==0)if(a.length===1){let o=a[0];r.type=o===null?"null":typeof o,e.target==="draft-04"||e.target==="openapi-3.0"?r.enum=[o]:r.const=o}else a.every(o=>typeof o=="number")&&(r.type="number"),a.every(o=>typeof o=="string")&&(r.type="string"),a.every(o=>typeof o=="boolean")&&(r.type="boolean"),a.every(o=>o===null)&&(r.type="null"),r.enum=a},Fk=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},Zk=(t,e,r,n)=>{let i=r,a=t._zod.pattern;if(!a)throw new Error("Pattern not found in template literal");i.type="string",i.pattern=a.source},Hk=(t,e,r,n)=>{let i=r,a={type:"string",format:"binary",contentEncoding:"binary"},{minimum:o,maximum:s,mime:c}=t._zod.bag;o!==void 0&&(a.minLength=o),s!==void 0&&(a.maxLength=s),c?c.length===1?(a.contentMediaType=c[0],Object.assign(i,a)):(Object.assign(i,a),i.anyOf=c.map(u=>({contentMediaType:u}))):Object.assign(i,a)},Bk=(t,e,r,n)=>{r.type="boolean"},Vk=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Gk=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},Wk=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Kk=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},Jk=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},Xk=(t,e,r,n)=>{let i=r,a=t._zod.def,{minimum:o,maximum:s}=t._zod.bag;typeof o=="number"&&(i.minItems=o),typeof s=="number"&&(i.maxItems=s),i.type="array",i.items=It(a.element,e,{...n,path:[...n.path,"items"]})},Yk=(t,e,r,n)=>{let i=r,a=t._zod.def;i.type="object",i.properties={};let o=a.shape;for(let u in o)i.properties[u]=It(o[u],e,{...n,path:[...n.path,"properties",u]});let s=new Set(Object.keys(o)),c=new Set([...s].filter(u=>{let l=a.shape[u]._zod;return e.io==="input"?l.optin===void 0:l.optout===void 0}));c.size>0&&(i.required=Array.from(c)),a.catchall?._zod.def.type==="never"?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=It(a.catchall,e,{...n,path:[...n.path,"additionalProperties"]})):e.io==="output"&&(i.additionalProperties=!1)},v_=(t,e,r,n)=>{let i=t._zod.def,a=i.inclusive===!1,o=i.options.map((s,c)=>It(s,e,{...n,path:[...n.path,a?"oneOf":"anyOf",c]}));a?r.oneOf=o:r.anyOf=o},Qk=(t,e,r,n)=>{let i=t._zod.def,a=It(i.left,e,{...n,path:[...n.path,"allOf",0]}),o=It(i.right,e,{...n,path:[...n.path,"allOf",1]}),s=u=>"allOf"in u&&Object.keys(u).length===1,c=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]];r.allOf=c},eT=(t,e,r,n)=>{let i=r,a=t._zod.def;i.type="array";let o=e.target==="draft-2020-12"?"prefixItems":"items",s=e.target==="draft-2020-12"||e.target==="openapi-3.0"?"items":"additionalItems",c=a.items.map((p,f)=>It(p,e,{...n,path:[...n.path,o,f]})),u=a.rest?It(a.rest,e,{...n,path:[...n.path,s,...e.target==="openapi-3.0"?[a.items.length]:[]]}):null;e.target==="draft-2020-12"?(i.prefixItems=c,u&&(i.items=u)):e.target==="openapi-3.0"?(i.items={anyOf:c},u&&i.items.anyOf.push(u),i.minItems=c.length,u||(i.maxItems=c.length)):(i.items=c,u&&(i.additionalItems=u));let{minimum:l,maximum:d}=t._zod.bag;typeof l=="number"&&(i.minItems=l),typeof d=="number"&&(i.maxItems=d)},tT=(t,e,r,n)=>{let i=r,a=t._zod.def;i.type="object";let o=a.keyType,c=o._zod.bag?.patterns;if(a.mode==="loose"&&c&&c.size>0){let l=It(a.valueType,e,{...n,path:[...n.path,"patternProperties","*"]});i.patternProperties={};for(let d of c)i.patternProperties[d.source]=l}else(e.target==="draft-07"||e.target==="draft-2020-12")&&(i.propertyNames=It(a.keyType,e,{...n,path:[...n.path,"propertyNames"]})),i.additionalProperties=It(a.valueType,e,{...n,path:[...n.path,"additionalProperties"]});let u=o._zod.values;if(u){let l=[...u].filter(d=>typeof d=="string"||typeof d=="number");l.length>0&&(i.required=l)}},rT=(t,e,r,n)=>{let i=t._zod.def,a=It(i.innerType,e,n),o=e.seen.get(t);e.target==="openapi-3.0"?(o.ref=i.innerType,r.nullable=!0):r.anyOf=[a,{type:"null"}]},nT=(t,e,r,n)=>{let i=t._zod.def;It(i.innerType,e,n);let a=e.seen.get(t);a.ref=i.innerType},iT=(t,e,r,n)=>{let i=t._zod.def;It(i.innerType,e,n);let a=e.seen.get(t);a.ref=i.innerType,r.default=JSON.parse(JSON.stringify(i.defaultValue))},aT=(t,e,r,n)=>{let i=t._zod.def;It(i.innerType,e,n);let a=e.seen.get(t);a.ref=i.innerType,e.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},oT=(t,e,r,n)=>{let i=t._zod.def;It(i.innerType,e,n);let a=e.seen.get(t);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=o},sT=(t,e,r,n)=>{let i=t._zod.def,a=e.io==="input"?i.in._zod.def.type==="transform"?i.out:i.in:i.out;It(a,e,n);let o=e.seen.get(t);o.ref=a},cT=(t,e,r,n)=>{let i=t._zod.def;It(i.innerType,e,n);let a=e.seen.get(t);a.ref=i.innerType,r.readOnly=!0},uT=(t,e,r,n)=>{let i=t._zod.def;It(i.innerType,e,n);let a=e.seen.get(t);a.ref=i.innerType},y_=(t,e,r,n)=>{let i=t._zod.def;It(i.innerType,e,n);let a=e.seen.get(t);a.ref=i.innerType},lT=(t,e,r,n)=>{let i=t._zod.innerType;It(i,e,n);let a=e.seen.get(t);a.ref=i};function Go(t){return!!t._zod}function An(t,e){return Go(t)?Fo(t,e):t.safeParse(e)}function Op(t){if(!t)return;let e;if(Go(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function fT(t){if(Go(t)){let a=t._zod?.def;if(a){if(a.value!==void 0)return a.value;if(Array.isArray(a.values)&&a.values.length>0)return a.values[0]}}let r=t._def;if(r){if(r.value!==void 0)return r.value;if(Array.isArray(r.values)&&r.values.length>0)return r.values[0]}let n=t.value;if(n!==void 0)return n}var xu={};On(xu,{ZodAny:()=>OT,ZodArray:()=>AT,ZodBase64:()=>F_,ZodBase64URL:()=>Z_,ZodBigInt:()=>qp,ZodBigIntFormat:()=>V_,ZodBoolean:()=>Up,ZodCIDRv4:()=>q_,ZodCIDRv6:()=>L_,ZodCUID:()=>N_,ZodCUID2:()=>j_,ZodCatch:()=>t1,ZodCodec:()=>Q_,ZodCustom:()=>Bp,ZodCustomStringFormat:()=>wu,ZodDate:()=>W_,ZodDefault:()=>KT,ZodDiscriminatedUnion:()=>DT,ZodE164:()=>H_,ZodEmail:()=>R_,ZodEmoji:()=>O_,ZodEnum:()=>Su,ZodExactOptional:()=>VT,ZodFile:()=>HT,ZodFunction:()=>l1,ZodGUID:()=>Np,ZodIPv4:()=>z_,ZodIPv6:()=>U_,ZodIntersection:()=>zT,ZodJWT:()=>B_,ZodKSUID:()=>D_,ZodLazy:()=>s1,ZodLiteral:()=>ZT,ZodMAC:()=>TT,ZodMap:()=>LT,ZodNaN:()=>n1,ZodNanoID:()=>C_,ZodNever:()=>NT,ZodNonOptional:()=>X_,ZodNull:()=>RT,ZodNullable:()=>WT,ZodNumber:()=>zp,ZodNumberFormat:()=>Wo,ZodObject:()=>Lp,ZodOptional:()=>J_,ZodPipe:()=>Y_,ZodPrefault:()=>XT,ZodPromise:()=>u1,ZodReadonly:()=>i1,ZodRecord:()=>Hp,ZodSet:()=>FT,ZodString:()=>Mp,ZodStringFormat:()=>$t,ZodSuccess:()=>e1,ZodSymbol:()=>IT,ZodTemplateLiteral:()=>o1,ZodTransform:()=>BT,ZodTuple:()=>UT,ZodType:()=>ze,ZodULID:()=>A_,ZodURL:()=>Dp,ZodUUID:()=>ki,ZodUndefined:()=>PT,ZodUnion:()=>Fp,ZodUnknown:()=>CT,ZodVoid:()=>jT,ZodXID:()=>M_,ZodXor:()=>MT,_ZodString:()=>P_,_default:()=>JT,_function:()=>c8,any:()=>H9,array:()=>Ge,base64:()=>T9,base64url:()=>I9,bigint:()=>U9,boolean:()=>Qt,catch:()=>r1,check:()=>u8,cidrv4:()=>E9,cidrv6:()=>k9,codec:()=>a8,cuid:()=>v9,cuid2:()=>y9,custom:()=>eb,date:()=>V9,describe:()=>l8,discriminatedUnion:()=>Zp,e164:()=>P9,email:()=>s9,emoji:()=>h9,enum:()=>vr,exactOptional:()=>GT,file:()=>t8,float32:()=>A9,float64:()=>M9,function:()=>c8,guid:()=>c9,hash:()=>j9,hex:()=>N9,hostname:()=>C9,httpUrl:()=>m9,instanceof:()=>p8,int:()=>I_,int32:()=>D9,int64:()=>q9,intersection:()=>Eu,ipv4:()=>S9,ipv6:()=>$9,json:()=>m8,jwt:()=>R9,keyof:()=>G9,ksuid:()=>x9,lazy:()=>c1,literal:()=>ve,looseObject:()=>gr,looseRecord:()=>X9,mac:()=>w9,map:()=>Y9,meta:()=>d8,nan:()=>i8,nanoid:()=>g9,nativeEnum:()=>e8,never:()=>G_,nonoptional:()=>QT,null:()=>$u,nullable:()=>jp,nullish:()=>r8,number:()=>dt,object:()=>le,optional:()=>Nt,partialRecord:()=>J9,pipe:()=>Ap,prefault:()=>YT,preprocess:()=>Vp,promise:()=>s8,readonly:()=>a1,record:()=>Pt,refine:()=>d1,set:()=>Q9,strictObject:()=>W9,string:()=>H,stringFormat:()=>O9,stringbool:()=>f8,success:()=>n8,superRefine:()=>p1,symbol:()=>F9,templateLiteral:()=>o8,transform:()=>K_,tuple:()=>qT,uint32:()=>z9,uint64:()=>L9,ulid:()=>_9,undefined:()=>Z9,union:()=>bt,unknown:()=>Et,url:()=>f9,uuid:()=>u9,uuidv4:()=>l9,uuidv6:()=>d9,uuidv7:()=>p9,void:()=>B9,xid:()=>b9,xor:()=>K9});var Cp={};On(Cp,{endsWith:()=>mu,gt:()=>$i,gte:()=>Tr,includes:()=>pu,length:()=>Bo,lowercase:()=>lu,lt:()=>wi,lte:()=>rn,maxLength:()=>Ho,maxSize:()=>Aa,mime:()=>hu,minLength:()=>Xi,minSize:()=>Ei,multipleOf:()=>ja,negative:()=>o_,nonnegative:()=>c_,nonpositive:()=>s_,normalize:()=>gu,overwrite:()=>ti,positive:()=>a_,property:()=>u_,regex:()=>uu,size:()=>Zo,slugify:()=>Tp,startsWith:()=>fu,toLowerCase:()=>yu,toUpperCase:()=>_u,trim:()=>vu,uppercase:()=>du});var Ma={};On(Ma,{ZodISODate:()=>S_,ZodISODateTime:()=>b_,ZodISODuration:()=>k_,ZodISOTime:()=>$_,date:()=>w_,datetime:()=>x_,duration:()=>T_,time:()=>E_});var b_=L("ZodISODateTime",(t,e)=>{jv.init(t,e),$t.init(t,e)});function x_(t){return My(b_,t)}var S_=L("ZodISODate",(t,e)=>{Av.init(t,e),$t.init(t,e)});function w_(t){return Dy(S_,t)}var $_=L("ZodISOTime",(t,e)=>{Mv.init(t,e),$t.init(t,e)});function E_(t){return zy($_,t)}var k_=L("ZodISODuration",(t,e)=>{Dv.init(t,e),$t.init(t,e)});function T_(t){return Uy(k_,t)}var mT=(t,e)=>{Vd.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>Wd(t,r)},flatten:{value:r=>Gd(t,r)},addIssue:{value:r=>{t.issues.push(r),t.message=JSON.stringify(t.issues,Uo,2)}},addIssues:{value:r=>{t.issues.push(...r),t.message=JSON.stringify(t.issues,Uo,2)}},isEmpty:{get(){return t.issues.length===0}}})},Cye=L("ZodError",mT),nn=L("ZodError",mT,{Parent:Error});var hT=Wc(nn),gT=Jc(nn),vT=Yc(nn),yT=Qc(nn),_T=IE(nn),bT=PE(nn),xT=RE(nn),ST=OE(nn),wT=CE(nn),$T=NE(nn),ET=jE(nn),kT=AE(nn);var ze=L("ZodType",(t,e)=>(Ae.init(t,e),Object.assign(t["~standard"],{jsonSchema:{input:bu(t,"input"),output:bu(t,"output")}}),t.toJSONSchema=Tk(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.check=(...r)=>t.clone(ee.mergeDefs(e,{checks:[...e.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),{parent:!0}),t.with=t.check,t.clone=(r,n)=>Er(t,r,n),t.brand=()=>t,t.register=((r,n)=>(r.add(t,n),t)),t.parse=(r,n)=>hT(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>vT(t,r,n),t.parseAsync=async(r,n)=>gT(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>yT(t,r,n),t.spa=t.safeParseAsync,t.encode=(r,n)=>_T(t,r,n),t.decode=(r,n)=>bT(t,r,n),t.encodeAsync=async(r,n)=>xT(t,r,n),t.decodeAsync=async(r,n)=>ST(t,r,n),t.safeEncode=(r,n)=>wT(t,r,n),t.safeDecode=(r,n)=>$T(t,r,n),t.safeEncodeAsync=async(r,n)=>ET(t,r,n),t.safeDecodeAsync=async(r,n)=>kT(t,r,n),t.refine=(r,n)=>t.check(d1(r,n)),t.superRefine=r=>t.check(p1(r)),t.overwrite=r=>t.check(ti(r)),t.optional=()=>Nt(t),t.exactOptional=()=>GT(t),t.nullable=()=>jp(t),t.nullish=()=>Nt(jp(t)),t.nonoptional=r=>QT(t,r),t.array=()=>Ge(t),t.or=r=>bt([t,r]),t.and=r=>Eu(t,r),t.transform=r=>Ap(t,K_(r)),t.default=r=>JT(t,r),t.prefault=r=>YT(t,r),t.catch=r=>r1(t,r),t.pipe=r=>Ap(t,r),t.readonly=()=>a1(t),t.describe=r=>{let n=t.clone();return kr.add(n,{description:r}),n},Object.defineProperty(t,"description",{get(){return kr.get(t)?.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return kr.get(t);let n=t.clone();return kr.add(n,r[0]),n},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t.apply=r=>r(t),t)),P_=L("_ZodString",(t,e)=>{Na.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(n,i,a)=>Ik(t,n,i,a);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,t.regex=(...n)=>t.check(uu(...n)),t.includes=(...n)=>t.check(pu(...n)),t.startsWith=(...n)=>t.check(fu(...n)),t.endsWith=(...n)=>t.check(mu(...n)),t.min=(...n)=>t.check(Xi(...n)),t.max=(...n)=>t.check(Ho(...n)),t.length=(...n)=>t.check(Bo(...n)),t.nonempty=(...n)=>t.check(Xi(1,...n)),t.lowercase=n=>t.check(lu(n)),t.uppercase=n=>t.check(du(n)),t.trim=()=>t.check(vu()),t.normalize=(...n)=>t.check(gu(...n)),t.toLowerCase=()=>t.check(yu()),t.toUpperCase=()=>t.check(_u()),t.slugify=()=>t.check(Tp())}),Mp=L("ZodString",(t,e)=>{Na.init(t,e),P_.init(t,e),t.email=r=>t.check(sp(R_,r)),t.url=r=>t.check(cu(Dp,r)),t.jwt=r=>t.check(kp(B_,r)),t.emoji=r=>t.check(pp(O_,r)),t.guid=r=>t.check(su(Np,r)),t.uuid=r=>t.check(cp(ki,r)),t.uuidv4=r=>t.check(up(ki,r)),t.uuidv6=r=>t.check(lp(ki,r)),t.uuidv7=r=>t.check(dp(ki,r)),t.nanoid=r=>t.check(fp(C_,r)),t.guid=r=>t.check(su(Np,r)),t.cuid=r=>t.check(mp(N_,r)),t.cuid2=r=>t.check(hp(j_,r)),t.ulid=r=>t.check(gp(A_,r)),t.base64=r=>t.check(wp(F_,r)),t.base64url=r=>t.check($p(Z_,r)),t.xid=r=>t.check(vp(M_,r)),t.ksuid=r=>t.check(yp(D_,r)),t.ipv4=r=>t.check(_p(z_,r)),t.ipv6=r=>t.check(bp(U_,r)),t.cidrv4=r=>t.check(xp(q_,r)),t.cidrv6=r=>t.check(Sp(L_,r)),t.e164=r=>t.check(Ep(H_,r)),t.datetime=r=>t.check(x_(r)),t.date=r=>t.check(w_(r)),t.time=r=>t.check(E_(r)),t.duration=r=>t.check(T_(r))});function H(t){return jy(Mp,t)}var $t=L("ZodStringFormat",(t,e)=>{_t.init(t,e),P_.init(t,e)}),R_=L("ZodEmail",(t,e)=>{Ev.init(t,e),$t.init(t,e)});function s9(t){return sp(R_,t)}var Np=L("ZodGUID",(t,e)=>{wv.init(t,e),$t.init(t,e)});function c9(t){return su(Np,t)}var ki=L("ZodUUID",(t,e)=>{$v.init(t,e),$t.init(t,e)});function u9(t){return cp(ki,t)}function l9(t){return up(ki,t)}function d9(t){return lp(ki,t)}function p9(t){return dp(ki,t)}var Dp=L("ZodURL",(t,e)=>{kv.init(t,e),$t.init(t,e)});function f9(t){return cu(Dp,t)}function m9(t){return cu(Dp,{protocol:/^https?$/,hostname:pn.domain,...ee.normalizeParams(t)})}var O_=L("ZodEmoji",(t,e)=>{Tv.init(t,e),$t.init(t,e)});function h9(t){return pp(O_,t)}var C_=L("ZodNanoID",(t,e)=>{Iv.init(t,e),$t.init(t,e)});function g9(t){return fp(C_,t)}var N_=L("ZodCUID",(t,e)=>{Pv.init(t,e),$t.init(t,e)});function v9(t){return mp(N_,t)}var j_=L("ZodCUID2",(t,e)=>{Rv.init(t,e),$t.init(t,e)});function y9(t){return hp(j_,t)}var A_=L("ZodULID",(t,e)=>{Ov.init(t,e),$t.init(t,e)});function _9(t){return gp(A_,t)}var M_=L("ZodXID",(t,e)=>{Cv.init(t,e),$t.init(t,e)});function b9(t){return vp(M_,t)}var D_=L("ZodKSUID",(t,e)=>{Nv.init(t,e),$t.init(t,e)});function x9(t){return yp(D_,t)}var z_=L("ZodIPv4",(t,e)=>{zv.init(t,e),$t.init(t,e)});function S9(t){return _p(z_,t)}var TT=L("ZodMAC",(t,e)=>{qv.init(t,e),$t.init(t,e)});function w9(t){return Ay(TT,t)}var U_=L("ZodIPv6",(t,e)=>{Uv.init(t,e),$t.init(t,e)});function $9(t){return bp(U_,t)}var q_=L("ZodCIDRv4",(t,e)=>{Lv.init(t,e),$t.init(t,e)});function E9(t){return xp(q_,t)}var L_=L("ZodCIDRv6",(t,e)=>{Fv.init(t,e),$t.init(t,e)});function k9(t){return Sp(L_,t)}var F_=L("ZodBase64",(t,e)=>{Zv.init(t,e),$t.init(t,e)});function T9(t){return wp(F_,t)}var Z_=L("ZodBase64URL",(t,e)=>{Hv.init(t,e),$t.init(t,e)});function I9(t){return $p(Z_,t)}var H_=L("ZodE164",(t,e)=>{Bv.init(t,e),$t.init(t,e)});function P9(t){return Ep(H_,t)}var B_=L("ZodJWT",(t,e)=>{Vv.init(t,e),$t.init(t,e)});function R9(t){return kp(B_,t)}var wu=L("ZodCustomStringFormat",(t,e)=>{Gv.init(t,e),$t.init(t,e)});function O9(t,e,r={}){return Vo(wu,t,e,r)}function C9(t){return Vo(wu,"hostname",pn.hostname,t)}function N9(t){return Vo(wu,"hex",pn.hex,t)}function j9(t,e){let r=e?.enc??"hex",n=`${t}_${r}`,i=pn[n];if(!i)throw new Error(`Unrecognized hash format: ${n}`);return Vo(wu,n,i,e)}var zp=L("ZodNumber",(t,e)=>{np.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(n,i,a)=>Pk(t,n,i,a),t.gt=(n,i)=>t.check($i(n,i)),t.gte=(n,i)=>t.check(Tr(n,i)),t.min=(n,i)=>t.check(Tr(n,i)),t.lt=(n,i)=>t.check(wi(n,i)),t.lte=(n,i)=>t.check(rn(n,i)),t.max=(n,i)=>t.check(rn(n,i)),t.int=n=>t.check(I_(n)),t.safe=n=>t.check(I_(n)),t.positive=n=>t.check($i(0,n)),t.nonnegative=n=>t.check(Tr(0,n)),t.negative=n=>t.check(wi(0,n)),t.nonpositive=n=>t.check(rn(0,n)),t.multipleOf=(n,i)=>t.check(ja(n,i)),t.step=(n,i)=>t.check(ja(n,i)),t.finite=()=>t;let r=t._zod.bag;t.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),t.isFinite=!0,t.format=r.format??null});function dt(t){return qy(zp,t)}var Wo=L("ZodNumberFormat",(t,e)=>{Wv.init(t,e),zp.init(t,e)});function I_(t){return Ly(Wo,t)}function A9(t){return Fy(Wo,t)}function M9(t){return Zy(Wo,t)}function D9(t){return Hy(Wo,t)}function z9(t){return By(Wo,t)}var Up=L("ZodBoolean",(t,e)=>{iu.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Rk(t,r,n,i)});function Qt(t){return Vy(Up,t)}var qp=L("ZodBigInt",(t,e)=>{ip.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(n,i,a)=>Ok(t,n,i,a),t.gte=(n,i)=>t.check(Tr(n,i)),t.min=(n,i)=>t.check(Tr(n,i)),t.gt=(n,i)=>t.check($i(n,i)),t.gte=(n,i)=>t.check(Tr(n,i)),t.min=(n,i)=>t.check(Tr(n,i)),t.lt=(n,i)=>t.check(wi(n,i)),t.lte=(n,i)=>t.check(rn(n,i)),t.max=(n,i)=>t.check(rn(n,i)),t.positive=n=>t.check($i(BigInt(0),n)),t.negative=n=>t.check(wi(BigInt(0),n)),t.nonpositive=n=>t.check(rn(BigInt(0),n)),t.nonnegative=n=>t.check(Tr(BigInt(0),n)),t.multipleOf=(n,i)=>t.check(ja(n,i));let r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});function U9(t){return Gy(qp,t)}var V_=L("ZodBigIntFormat",(t,e)=>{Kv.init(t,e),qp.init(t,e)});function q9(t){return Wy(V_,t)}function L9(t){return Ky(V_,t)}var IT=L("ZodSymbol",(t,e)=>{Jv.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Ck(t,r,n,i)});function F9(t){return Jy(IT,t)}var PT=L("ZodUndefined",(t,e)=>{Xv.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>jk(t,r,n,i)});function Z9(t){return Xy(PT,t)}var RT=L("ZodNull",(t,e)=>{Yv.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Nk(t,r,n,i)});function $u(t){return Yy(RT,t)}var OT=L("ZodAny",(t,e)=>{Qv.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Dk(t,r,n,i)});function H9(){return Qy(OT)}var CT=L("ZodUnknown",(t,e)=>{ey.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>zk(t,r,n,i)});function Et(){return e_(CT)}var NT=L("ZodNever",(t,e)=>{ty.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Mk(t,r,n,i)});function G_(t){return t_(NT,t)}var jT=L("ZodVoid",(t,e)=>{ry.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Ak(t,r,n,i)});function B9(t){return r_(jT,t)}var W_=L("ZodDate",(t,e)=>{ny.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(n,i,a)=>Uk(t,n,i,a),t.min=(n,i)=>t.check(Tr(n,i)),t.max=(n,i)=>t.check(rn(n,i));let r=t._zod.bag;t.minDate=r.minimum?new Date(r.minimum):null,t.maxDate=r.maximum?new Date(r.maximum):null});function V9(t){return n_(W_,t)}var AT=L("ZodArray",(t,e)=>{iy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Xk(t,r,n,i),t.element=e.element,t.min=(r,n)=>t.check(Xi(r,n)),t.nonempty=r=>t.check(Xi(1,r)),t.max=(r,n)=>t.check(Ho(r,n)),t.length=(r,n)=>t.check(Bo(r,n)),t.unwrap=()=>t.element});function Ge(t,e){return kk(AT,t,e)}function G9(t){let e=t._zod.def.shape;return vr(Object.keys(e))}var Lp=L("ZodObject",(t,e)=>{Sk.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Yk(t,r,n,i),ee.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>vr(Object.keys(t._zod.def.shape)),t.catchall=r=>t.clone({...t._zod.def,catchall:r}),t.passthrough=()=>t.clone({...t._zod.def,catchall:Et()}),t.loose=()=>t.clone({...t._zod.def,catchall:Et()}),t.strict=()=>t.clone({...t._zod.def,catchall:G_()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>ee.extend(t,r),t.safeExtend=r=>ee.safeExtend(t,r),t.merge=r=>ee.merge(t,r),t.pick=r=>ee.pick(t,r),t.omit=r=>ee.omit(t,r),t.partial=(...r)=>ee.partial(J_,t,r[0]),t.required=(...r)=>ee.required(X_,t,r[0])});function le(t,e){let r={type:"object",shape:t??{},...ee.normalizeParams(e)};return new Lp(r)}function W9(t,e){return new Lp({type:"object",shape:t,catchall:G_(),...ee.normalizeParams(e)})}function gr(t,e){return new Lp({type:"object",shape:t,catchall:Et(),...ee.normalizeParams(e)})}var Fp=L("ZodUnion",(t,e)=>{au.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>v_(t,r,n,i),t.options=e.options});function bt(t,e){return new Fp({type:"union",options:t,...ee.normalizeParams(e)})}var MT=L("ZodXor",(t,e)=>{Fp.init(t,e),ay.init(t,e),t._zod.processJSONSchema=(r,n,i)=>v_(t,r,n,i),t.options=e.options});function K9(t,e){return new MT({type:"union",options:t,inclusive:!1,...ee.normalizeParams(e)})}var DT=L("ZodDiscriminatedUnion",(t,e)=>{Fp.init(t,e),oy.init(t,e)});function Zp(t,e,r){return new DT({type:"union",options:e,discriminator:t,...ee.normalizeParams(r)})}var zT=L("ZodIntersection",(t,e)=>{sy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Qk(t,r,n,i)});function Eu(t,e){return new zT({type:"intersection",left:t,right:e})}var UT=L("ZodTuple",(t,e)=>{ap.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>eT(t,r,n,i),t.rest=r=>t.clone({...t._zod.def,rest:r})});function qT(t,e,r){let n=e instanceof Ae,i=n?r:e,a=n?e:null;return new UT({type:"tuple",items:t,rest:a,...ee.normalizeParams(i)})}var Hp=L("ZodRecord",(t,e)=>{cy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>tT(t,r,n,i),t.keyType=e.keyType,t.valueType=e.valueType});function Pt(t,e,r){return new Hp({type:"record",keyType:t,valueType:e,...ee.normalizeParams(r)})}function J9(t,e,r){let n=Er(t);return n._zod.values=void 0,new Hp({type:"record",keyType:n,valueType:e,...ee.normalizeParams(r)})}function X9(t,e,r){return new Hp({type:"record",keyType:t,valueType:e,mode:"loose",...ee.normalizeParams(r)})}var LT=L("ZodMap",(t,e)=>{uy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Kk(t,r,n,i),t.keyType=e.keyType,t.valueType=e.valueType,t.min=(...r)=>t.check(Ei(...r)),t.nonempty=r=>t.check(Ei(1,r)),t.max=(...r)=>t.check(Aa(...r)),t.size=(...r)=>t.check(Zo(...r))});function Y9(t,e,r){return new LT({type:"map",keyType:t,valueType:e,...ee.normalizeParams(r)})}var FT=L("ZodSet",(t,e)=>{ly.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Jk(t,r,n,i),t.min=(...r)=>t.check(Ei(...r)),t.nonempty=r=>t.check(Ei(1,r)),t.max=(...r)=>t.check(Aa(...r)),t.size=(...r)=>t.check(Zo(...r))});function Q9(t,e){return new FT({type:"set",valueType:t,...ee.normalizeParams(e)})}var Su=L("ZodEnum",(t,e)=>{dy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(n,i,a)=>qk(t,n,i,a),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(n,i)=>{let a={};for(let o of n)if(r.has(o))a[o]=e.entries[o];else throw new Error(`Key ${o} not found in enum`);return new Su({...e,checks:[],...ee.normalizeParams(i),entries:a})},t.exclude=(n,i)=>{let a={...e.entries};for(let o of n)if(r.has(o))delete a[o];else throw new Error(`Key ${o} not found in enum`);return new Su({...e,checks:[],...ee.normalizeParams(i),entries:a})}});function vr(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new Su({type:"enum",entries:r,...ee.normalizeParams(e)})}function e8(t,e){return new Su({type:"enum",entries:t,...ee.normalizeParams(e)})}var ZT=L("ZodLiteral",(t,e)=>{py.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Lk(t,r,n,i),t.values=new Set(e.values),Object.defineProperty(t,"value",{get(){if(e.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function ve(t,e){return new ZT({type:"literal",values:Array.isArray(t)?t:[t],...ee.normalizeParams(e)})}var HT=L("ZodFile",(t,e)=>{fy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Hk(t,r,n,i),t.min=(r,n)=>t.check(Ei(r,n)),t.max=(r,n)=>t.check(Aa(r,n)),t.mime=(r,n)=>t.check(hu(Array.isArray(r)?r:[r],n))});function t8(t){return l_(HT,t)}var BT=L("ZodTransform",(t,e)=>{my.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Wk(t,r,n,i),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Ra(t.constructor.name);r.addIssue=a=>{if(typeof a=="string")r.issues.push(ee.issue(a,r.value,e));else{let o=a;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=r.value),o.inst??(o.inst=t),r.issues.push(ee.issue(o))}};let i=e.transform(r.value,r);return i instanceof Promise?i.then(a=>(r.value=a,r)):(r.value=i,r)}});function K_(t){return new BT({type:"transform",transform:t})}var J_=L("ZodOptional",(t,e)=>{op.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>y_(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function Nt(t){return new J_({type:"optional",innerType:t})}var VT=L("ZodExactOptional",(t,e)=>{hy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>y_(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function GT(t){return new VT({type:"optional",innerType:t})}var WT=L("ZodNullable",(t,e)=>{gy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>rT(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function jp(t){return new WT({type:"nullable",innerType:t})}function r8(t){return Nt(jp(t))}var KT=L("ZodDefault",(t,e)=>{vy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>iT(t,r,n,i),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function JT(t,e){return new KT({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():ee.shallowClone(e)}})}var XT=L("ZodPrefault",(t,e)=>{yy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>aT(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function YT(t,e){return new XT({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():ee.shallowClone(e)}})}var X_=L("ZodNonOptional",(t,e)=>{_y.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>nT(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function QT(t,e){return new X_({type:"nonoptional",innerType:t,...ee.normalizeParams(e)})}var e1=L("ZodSuccess",(t,e)=>{by.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Bk(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function n8(t){return new e1({type:"success",innerType:t})}var t1=L("ZodCatch",(t,e)=>{xy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>oT(t,r,n,i),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function r1(t,e){return new t1({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var n1=L("ZodNaN",(t,e)=>{Sy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Fk(t,r,n,i)});function i8(t){return i_(n1,t)}var Y_=L("ZodPipe",(t,e)=>{wy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>sT(t,r,n,i),t.in=e.in,t.out=e.out});function Ap(t,e){return new Y_({type:"pipe",in:t,out:e})}var Q_=L("ZodCodec",(t,e)=>{Y_.init(t,e),ou.init(t,e)});function a8(t,e,r){return new Q_({type:"pipe",in:t,out:e,transform:r.decode,reverseTransform:r.encode})}var i1=L("ZodReadonly",(t,e)=>{$y.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>cT(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function a1(t){return new i1({type:"readonly",innerType:t})}var o1=L("ZodTemplateLiteral",(t,e)=>{Ey.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Zk(t,r,n,i)});function o8(t,e){return new o1({type:"template_literal",parts:t,...ee.normalizeParams(e)})}var s1=L("ZodLazy",(t,e)=>{Iy.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>lT(t,r,n,i),t.unwrap=()=>t._zod.def.getter()});function c1(t){return new s1({type:"lazy",getter:t})}var u1=L("ZodPromise",(t,e)=>{Ty.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>uT(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function s8(t){return new u1({type:"promise",innerType:t})}var l1=L("ZodFunction",(t,e)=>{ky.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Gk(t,r,n,i)});function c8(t){return new l1({type:"function",input:Array.isArray(t?.input)?qT(t?.input):t?.input??Ge(Et()),output:t?.output??Et()})}var Bp=L("ZodCustom",(t,e)=>{Py.init(t,e),ze.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Vk(t,r,n,i)});function u8(t){let e=new wt({check:"custom"});return e._zod.check=t,e}function eb(t,e){return d_(Bp,t??(()=>!0),e)}function d1(t,e={}){return p_(Bp,t,e)}function p1(t){return f_(t)}var l8=m_,d8=h_;function p8(t,e={}){let r=new Bp({type:"custom",check:"custom",fn:n=>n instanceof t,abort:!0,...ee.normalizeParams(e)});return r._zod.bag.Class=t,r._zod.check=n=>{n.value instanceof t||n.issues.push({code:"invalid_type",expected:t.name,input:n.value,inst:r,path:[...r._zod.def.path??[]]})},r}var f8=(...t)=>g_({Codec:Q_,Boolean:Up,String:Mp},...t);function m8(t){let e=c1(()=>bt([H(t),dt(),Qt(),$u(),Ge(e),Pt(H(),e)]));return e}function Vp(t,e){return Ap(K_(t),e)}var f1;f1||(f1={});var qye={...xu,...Cp,iso:Ma};tr(Ry());var rb="2025-11-25";var m1=[rb,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Yi="io.modelcontextprotocol/related-task",Wp="2.0",sr=eb(t=>t!==null&&(typeof t=="object"||typeof t=="function")),h1=bt([H(),dt().int()]),g1=H(),a_e=gr({ttl:bt([dt(),$u()]).optional(),pollInterval:dt().optional()}),y8=le({ttl:dt().optional()}),_8=le({taskId:H()}),nb=gr({progressToken:h1.optional(),[Yi]:_8.optional()}),an=le({_meta:nb.optional()}),ku=an.extend({task:y8.optional()}),v1=t=>ku.safeParse(t).success,cr=le({method:H(),params:an.loose().optional()}),fn=le({_meta:nb.optional()}),mn=le({method:H(),params:fn.loose().optional()}),ur=gr({_meta:nb.optional()}),Kp=bt([H(),dt().int()]),y1=le({jsonrpc:ve(Wp),id:Kp,...cr.shape}).strict(),ib=t=>y1.safeParse(t).success,_1=le({jsonrpc:ve(Wp),...mn.shape}).strict(),b1=t=>_1.safeParse(t).success,ab=le({jsonrpc:ve(Wp),id:Kp,result:ur}).strict(),Tu=t=>ab.safeParse(t).success;var Oe;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(Oe||(Oe={}));var ob=le({jsonrpc:ve(Wp),id:Kp.optional(),error:le({code:dt().int(),message:H(),data:Et().optional()})}).strict();var x1=t=>ob.safeParse(t).success;var S1=bt([y1,_1,ab,ob]),o_e=bt([ab,ob]),Da=ur.strict(),b8=fn.extend({requestId:Kp.optional(),reason:H().optional()}),Jp=mn.extend({method:ve("notifications/cancelled"),params:b8}),x8=le({src:H(),mimeType:H().optional(),sizes:Ge(H()).optional(),theme:vr(["light","dark"]).optional()}),Iu=le({icons:Ge(x8).optional()}),Ko=le({name:H(),title:H().optional()}),w1=Ko.extend({...Ko.shape,...Iu.shape,version:H(),websiteUrl:H().optional(),description:H().optional()}),S8=Eu(le({applyDefaults:Qt().optional()}),Pt(H(),Et())),w8=Vp(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,Eu(le({form:S8.optional(),url:sr.optional()}),Pt(H(),Et()).optional())),$8=gr({list:sr.optional(),cancel:sr.optional(),requests:gr({sampling:gr({createMessage:sr.optional()}).optional(),elicitation:gr({create:sr.optional()}).optional()}).optional()}),E8=gr({list:sr.optional(),cancel:sr.optional(),requests:gr({tools:gr({call:sr.optional()}).optional()}).optional()}),k8=le({experimental:Pt(H(),sr).optional(),sampling:le({context:sr.optional(),tools:sr.optional()}).optional(),elicitation:w8.optional(),roots:le({listChanged:Qt().optional()}).optional(),tasks:$8.optional()}),T8=an.extend({protocolVersion:H(),capabilities:k8,clientInfo:w1}),I8=cr.extend({method:ve("initialize"),params:T8});var P8=le({experimental:Pt(H(),sr).optional(),logging:sr.optional(),completions:sr.optional(),prompts:le({listChanged:Qt().optional()}).optional(),resources:le({subscribe:Qt().optional(),listChanged:Qt().optional()}).optional(),tools:le({listChanged:Qt().optional()}).optional(),tasks:E8.optional()}),sb=ur.extend({protocolVersion:H(),capabilities:P8,serverInfo:w1,instructions:H().optional()}),R8=mn.extend({method:ve("notifications/initialized"),params:fn.optional()});var Xp=cr.extend({method:ve("ping"),params:an.optional()}),O8=le({progress:dt(),total:Nt(dt()),message:Nt(H())}),C8=le({...fn.shape,...O8.shape,progressToken:h1}),Yp=mn.extend({method:ve("notifications/progress"),params:C8}),N8=an.extend({cursor:g1.optional()}),Pu=cr.extend({params:N8.optional()}),Ru=ur.extend({nextCursor:g1.optional()}),j8=vr(["working","input_required","completed","failed","cancelled"]),Ou=le({taskId:H(),status:j8,ttl:bt([dt(),$u()]),createdAt:H(),lastUpdatedAt:H(),pollInterval:Nt(dt()),statusMessage:Nt(H())}),za=ur.extend({task:Ou}),A8=fn.merge(Ou),Cu=mn.extend({method:ve("notifications/tasks/status"),params:A8}),Qp=cr.extend({method:ve("tasks/get"),params:an.extend({taskId:H()})}),ef=ur.merge(Ou),tf=cr.extend({method:ve("tasks/result"),params:an.extend({taskId:H()})}),s_e=ur.loose(),rf=Pu.extend({method:ve("tasks/list")}),nf=Ru.extend({tasks:Ge(Ou)}),af=cr.extend({method:ve("tasks/cancel"),params:an.extend({taskId:H()})}),$1=ur.merge(Ou),E1=le({uri:H(),mimeType:Nt(H()),_meta:Pt(H(),Et()).optional()}),k1=E1.extend({text:H()}),cb=H().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),T1=E1.extend({blob:cb}),Nu=vr(["user","assistant"]),Jo=le({audience:Ge(Nu).optional(),priority:dt().min(0).max(1).optional(),lastModified:Ma.datetime({offset:!0}).optional()}),I1=le({...Ko.shape,...Iu.shape,uri:H(),description:Nt(H()),mimeType:Nt(H()),annotations:Jo.optional(),_meta:Nt(gr({}))}),M8=le({...Ko.shape,...Iu.shape,uriTemplate:H(),description:Nt(H()),mimeType:Nt(H()),annotations:Jo.optional(),_meta:Nt(gr({}))}),D8=Pu.extend({method:ve("resources/list")}),ub=Ru.extend({resources:Ge(I1)}),z8=Pu.extend({method:ve("resources/templates/list")}),lb=Ru.extend({resourceTemplates:Ge(M8)}),db=an.extend({uri:H()}),U8=db,q8=cr.extend({method:ve("resources/read"),params:U8}),pb=ur.extend({contents:Ge(bt([k1,T1]))}),fb=mn.extend({method:ve("notifications/resources/list_changed"),params:fn.optional()}),L8=db,F8=cr.extend({method:ve("resources/subscribe"),params:L8}),Z8=db,H8=cr.extend({method:ve("resources/unsubscribe"),params:Z8}),B8=fn.extend({uri:H()}),V8=mn.extend({method:ve("notifications/resources/updated"),params:B8}),G8=le({name:H(),description:Nt(H()),required:Nt(Qt())}),W8=le({...Ko.shape,...Iu.shape,description:Nt(H()),arguments:Nt(Ge(G8)),_meta:Nt(gr({}))}),K8=Pu.extend({method:ve("prompts/list")}),mb=Ru.extend({prompts:Ge(W8)}),J8=an.extend({name:H(),arguments:Pt(H(),H()).optional()}),X8=cr.extend({method:ve("prompts/get"),params:J8}),hb=le({type:ve("text"),text:H(),annotations:Jo.optional(),_meta:Pt(H(),Et()).optional()}),gb=le({type:ve("image"),data:cb,mimeType:H(),annotations:Jo.optional(),_meta:Pt(H(),Et()).optional()}),vb=le({type:ve("audio"),data:cb,mimeType:H(),annotations:Jo.optional(),_meta:Pt(H(),Et()).optional()}),Y8=le({type:ve("tool_use"),name:H(),id:H(),input:Pt(H(),Et()),_meta:Pt(H(),Et()).optional()}),Q8=le({type:ve("resource"),resource:bt([k1,T1]),annotations:Jo.optional(),_meta:Pt(H(),Et()).optional()}),eF=I1.extend({type:ve("resource_link")}),yb=bt([hb,gb,vb,eF,Q8]),tF=le({role:Nu,content:yb}),_b=ur.extend({description:H().optional(),messages:Ge(tF)}),bb=mn.extend({method:ve("notifications/prompts/list_changed"),params:fn.optional()}),rF=le({title:H().optional(),readOnlyHint:Qt().optional(),destructiveHint:Qt().optional(),idempotentHint:Qt().optional(),openWorldHint:Qt().optional()}),nF=le({taskSupport:vr(["required","optional","forbidden"]).optional()}),P1=le({...Ko.shape,...Iu.shape,description:H().optional(),inputSchema:le({type:ve("object"),properties:Pt(H(),sr).optional(),required:Ge(H()).optional()}).catchall(Et()),outputSchema:le({type:ve("object"),properties:Pt(H(),sr).optional(),required:Ge(H()).optional()}).catchall(Et()).optional(),annotations:rF.optional(),execution:nF.optional(),_meta:Pt(H(),Et()).optional()}),iF=Pu.extend({method:ve("tools/list")}),xb=Ru.extend({tools:Ge(P1)}),Xo=ur.extend({content:Ge(yb).default([]),structuredContent:Pt(H(),Et()).optional(),isError:Qt().optional()}),c_e=Xo.or(ur.extend({toolResult:Et()})),aF=ku.extend({name:H(),arguments:Pt(H(),Et()).optional()}),oF=cr.extend({method:ve("tools/call"),params:aF}),Sb=mn.extend({method:ve("notifications/tools/list_changed"),params:fn.optional()}),R1=le({autoRefresh:Qt().default(!0),debounceMs:dt().int().nonnegative().default(300)}),O1=vr(["debug","info","notice","warning","error","critical","alert","emergency"]),sF=an.extend({level:O1}),cF=cr.extend({method:ve("logging/setLevel"),params:sF}),uF=fn.extend({level:O1,logger:H().optional(),data:Et()}),lF=mn.extend({method:ve("notifications/message"),params:uF}),dF=le({name:H().optional()}),pF=le({hints:Ge(dF).optional(),costPriority:dt().min(0).max(1).optional(),speedPriority:dt().min(0).max(1).optional(),intelligencePriority:dt().min(0).max(1).optional()}),fF=le({mode:vr(["auto","required","none"]).optional()}),mF=le({type:ve("tool_result"),toolUseId:H().describe("The unique identifier for the corresponding tool call."),content:Ge(yb).default([]),structuredContent:le({}).loose().optional(),isError:Qt().optional(),_meta:Pt(H(),Et()).optional()}),hF=Zp("type",[hb,gb,vb]),Gp=Zp("type",[hb,gb,vb,Y8,mF]),gF=le({role:Nu,content:bt([Gp,Ge(Gp)]),_meta:Pt(H(),Et()).optional()}),vF=ku.extend({messages:Ge(gF),modelPreferences:pF.optional(),systemPrompt:H().optional(),includeContext:vr(["none","thisServer","allServers"]).optional(),temperature:dt().optional(),maxTokens:dt().int(),stopSequences:Ge(H()).optional(),metadata:sr.optional(),tools:Ge(P1).optional(),toolChoice:fF.optional()}),wb=cr.extend({method:ve("sampling/createMessage"),params:vF}),$b=ur.extend({model:H(),stopReason:Nt(vr(["endTurn","stopSequence","maxTokens"]).or(H())),role:Nu,content:hF}),yF=ur.extend({model:H(),stopReason:Nt(vr(["endTurn","stopSequence","maxTokens","toolUse"]).or(H())),role:Nu,content:bt([Gp,Ge(Gp)])}),_F=le({type:ve("boolean"),title:H().optional(),description:H().optional(),default:Qt().optional()}),bF=le({type:ve("string"),title:H().optional(),description:H().optional(),minLength:dt().optional(),maxLength:dt().optional(),format:vr(["email","uri","date","date-time"]).optional(),default:H().optional()}),xF=le({type:vr(["number","integer"]),title:H().optional(),description:H().optional(),minimum:dt().optional(),maximum:dt().optional(),default:dt().optional()}),SF=le({type:ve("string"),title:H().optional(),description:H().optional(),enum:Ge(H()),default:H().optional()}),wF=le({type:ve("string"),title:H().optional(),description:H().optional(),oneOf:Ge(le({const:H(),title:H()})),default:H().optional()}),$F=le({type:ve("string"),title:H().optional(),description:H().optional(),enum:Ge(H()),enumNames:Ge(H()).optional(),default:H().optional()}),EF=bt([SF,wF]),kF=le({type:ve("array"),title:H().optional(),description:H().optional(),minItems:dt().optional(),maxItems:dt().optional(),items:le({type:ve("string"),enum:Ge(H())}),default:Ge(H()).optional()}),TF=le({type:ve("array"),title:H().optional(),description:H().optional(),minItems:dt().optional(),maxItems:dt().optional(),items:le({anyOf:Ge(le({const:H(),title:H()}))}),default:Ge(H()).optional()}),IF=bt([kF,TF]),PF=bt([$F,EF,IF]),RF=bt([PF,_F,bF,xF]),OF=ku.extend({mode:ve("form").optional(),message:H(),requestedSchema:le({type:ve("object"),properties:Pt(H(),RF),required:Ge(H()).optional()})}),CF=ku.extend({mode:ve("url"),message:H(),elicitationId:H(),url:H().url()}),NF=bt([OF,CF]),Eb=cr.extend({method:ve("elicitation/create"),params:NF}),jF=fn.extend({elicitationId:H()}),AF=mn.extend({method:ve("notifications/elicitation/complete"),params:jF}),kb=ur.extend({action:vr(["accept","decline","cancel"]),content:Vp(t=>t===null?void 0:t,Pt(H(),bt([H(),dt(),Qt(),Ge(H())])).optional())}),MF=le({type:ve("ref/resource"),uri:H()});var DF=le({type:ve("ref/prompt"),name:H()}),zF=an.extend({ref:bt([DF,MF]),argument:le({name:H(),value:H()}),context:le({arguments:Pt(H(),H()).optional()}).optional()}),UF=cr.extend({method:ve("completion/complete"),params:zF});var Tb=ur.extend({completion:gr({values:Ge(H()).max(100),total:Nt(dt().int()),hasMore:Nt(Qt())})}),qF=le({uri:H().startsWith("file://"),name:H().optional(),_meta:Pt(H(),Et()).optional()}),LF=cr.extend({method:ve("roots/list"),params:an.optional()}),FF=ur.extend({roots:Ge(qF)}),ZF=mn.extend({method:ve("notifications/roots/list_changed"),params:fn.optional()}),u_e=bt([Xp,I8,UF,cF,X8,K8,D8,z8,q8,F8,H8,oF,iF,Qp,tf,rf,af]),l_e=bt([Jp,Yp,R8,ZF,Cu]),d_e=bt([Da,$b,yF,kb,FF,ef,nf,za]),p_e=bt([Xp,wb,Eb,LF,Qp,tf,rf,af]),f_e=bt([Jp,Yp,lF,V8,fb,Sb,bb,Cu,AF]),m_e=bt([Da,sb,Tb,_b,mb,ub,lb,pb,Xo,xb,ef,nf,za]),Se=class t extends Error{constructor(e,r,n){super(`MCP error ${e}: ${r}`),this.code=e,this.data=n,this.name="McpError"}static fromError(e,r,n){if(e===Oe.UrlElicitationRequired&&n){let i=n;if(i.elicitations)return new tb(i.elicitations,r)}return new t(e,r,n)}},tb=class extends Se{constructor(e,r=`URL elicitation${e.length>1?"s":""} required`){super(Oe.UrlElicitationRequired,r,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function Qi(t){return t==="completed"||t==="failed"||t==="cancelled"}var HF=Symbol("Let zodToJsonSchema decide on which parser to use");var W_e=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function Ib(t){let r=Op(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=fT(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function Pb(t,e){let r=An(t,e);if(!r.success)throw r.error;return r.data}var JF=6e4,of=class{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(Jp,r=>{this._oncancel(r)}),this.setNotificationHandler(Yp,r=>{this._onprogress(r)}),this.setRequestHandler(Xp,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(Qp,async(r,n)=>{let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new Se(Oe.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(tf,async(r,n)=>{let i=async()=>{let a=r.params.taskId;if(this._taskMessageQueue){let s;for(;s=await this._taskMessageQueue.dequeue(a,n.sessionId);){if(s.type==="response"||s.type==="error"){let c=s.message,u=c.id,l=this._requestResolvers.get(u);if(l)if(this._requestResolvers.delete(u),s.type==="response")l(c);else{let d=c,p=new Se(d.error.code,d.error.message,d.error.data);l(p)}else{let d=s.type==="response"?"Response":"Error";this._onerror(new Error(`${d} handler missing for request ${u}`))}continue}await this._transport?.send(s.message,{relatedRequestId:n.requestId})}}let o=await this._taskStore.getTask(a,n.sessionId);if(!o)throw new Se(Oe.InvalidParams,`Task not found: ${a}`);if(!Qi(o.status))return await this._waitForTaskUpdate(a,n.signal),await i();if(Qi(o.status)){let s=await this._taskStore.getTaskResult(a,n.sessionId);return this._clearTaskQueue(a),{...s,_meta:{...s._meta,[Yi]:{taskId:a}}}}return await i()};return await i()}),this.setRequestHandler(rf,async(r,n)=>{try{let{tasks:i,nextCursor:a}=await this._taskStore.listTasks(r.params?.cursor,n.sessionId);return{tasks:i,nextCursor:a,_meta:{}}}catch(i){throw new Se(Oe.InvalidParams,`Failed to list tasks: ${i instanceof Error?i.message:String(i)}`)}}),this.setRequestHandler(af,async(r,n)=>{try{let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new Se(Oe.InvalidParams,`Task not found: ${r.params.taskId}`);if(Qi(i.status))throw new Se(Oe.InvalidParams,`Cannot cancel task in terminal status: ${i.status}`);await this._taskStore.updateTaskStatus(r.params.taskId,"cancelled","Client cancelled task execution.",n.sessionId),this._clearTaskQueue(r.params.taskId);let a=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!a)throw new Se(Oe.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...a}}catch(i){throw i instanceof Se?i:new Se(Oe.InvalidRequest,`Failed to cancel task: ${i instanceof Error?i.message:String(i)}`)}}))}async _oncancel(e){if(!e.params.requestId)return;this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,r,n,i,a=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(i,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:a,onTimeout:i})}_resetTimeout(e){let r=this._timeoutInfo.get(e);if(!r)return!1;let n=Date.now()-r.startTime;if(r.maxTotalTimeout&&n>=r.maxTotalTimeout)throw this._timeoutInfo.delete(e),Se.fromError(Oe.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:n});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(e){let r=this._timeoutInfo.get(e);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(e))}async connect(e){this._transport=e;let r=this.transport?.onclose;this._transport.onclose=()=>{r?.(),this._onclose()};let n=this.transport?.onerror;this._transport.onerror=a=>{n?.(a),this._onerror(a)};let i=this._transport?.onmessage;this._transport.onmessage=(a,o)=>{i?.(a,o),Tu(a)||x1(a)?this._onresponse(a):ib(a)?this._onrequest(a,o):b1(a)?this._onnotification(a):this._onerror(new Error(`Unknown message type: ${JSON.stringify(a)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();let r=Se.fromError(Oe.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let n of e.values())n(r)}_onerror(e){this.onerror?.(e)}_onnotification(e){let r=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(e)).catch(n=>this._onerror(new Error(`Uncaught error in notification handler: ${n}`)))}_onrequest(e,r){let n=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,i=this._transport,a=e.params?._meta?.[Yi]?.taskId;if(n===void 0){let l={jsonrpc:"2.0",id:e.id,error:{code:Oe.MethodNotFound,message:"Method not found"}};a&&this._taskMessageQueue?this._enqueueTaskMessage(a,{type:"error",message:l,timestamp:Date.now()},i?.sessionId).catch(d=>this._onerror(new Error(`Failed to enqueue error response: ${d}`))):i?.send(l).catch(d=>this._onerror(new Error(`Failed to send an error response: ${d}`)));return}let o=new AbortController;this._requestHandlerAbortControllers.set(e.id,o);let s=v1(e.params)?e.params.task:void 0,c=this._taskStore?this.requestTaskStore(e,i?.sessionId):void 0,u={signal:o.signal,sessionId:i?.sessionId,_meta:e.params?._meta,sendNotification:async l=>{let d={relatedRequestId:e.id};a&&(d.relatedTask={taskId:a}),await this.notification(l,d)},sendRequest:async(l,d,p)=>{let f={...p,relatedRequestId:e.id};a&&!f.relatedTask&&(f.relatedTask={taskId:a});let h=f.relatedTask?.taskId??a;return h&&c&&await c.updateTaskStatus(h,"input_required"),await this.request(l,d,f)},authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo,taskId:a,taskStore:c,taskRequestedTtl:s?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{s&&this.assertTaskHandlerCapability(e.method)}).then(()=>n(e,u)).then(async l=>{if(o.signal.aborted)return;let d={result:l,jsonrpc:"2.0",id:e.id};a&&this._taskMessageQueue?await this._enqueueTaskMessage(a,{type:"response",message:d,timestamp:Date.now()},i?.sessionId):await i?.send(d)},async l=>{if(o.signal.aborted)return;let d={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(l.code)?l.code:Oe.InternalError,message:l.message??"Internal error",...l.data!==void 0&&{data:l.data}}};a&&this._taskMessageQueue?await this._enqueueTaskMessage(a,{type:"error",message:d,timestamp:Date.now()},i?.sessionId):await i?.send(d)}).catch(l=>this._onerror(new Error(`Failed to send response: ${l}`))).finally(()=>{this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...n}=e.params,i=Number(r),a=this._progressHandlers.get(i);if(!a){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let o=this._responseHandlers.get(i),s=this._timeoutInfo.get(i);if(s&&o&&s.resetTimeoutOnProgress)try{this._resetTimeout(i)}catch(c){this._responseHandlers.delete(i),this._progressHandlers.delete(i),this._cleanupTimeout(i),o(c);return}a(n)}_onresponse(e){let r=Number(e.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),Tu(e))n(e);else{let o=new Se(e.error.code,e.error.message,e.error.data);n(o)}return}let i=this._responseHandlers.get(r);if(i===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(r),this._cleanupTimeout(r);let a=!1;if(Tu(e)&&e.result&&typeof e.result=="object"){let o=e.result;if(o.task&&typeof o.task=="object"){let s=o.task;typeof s.taskId=="string"&&(a=!0,this._taskProgressTokens.set(s.taskId,r))}}if(a||this._progressHandlers.delete(r),Tu(e))i(e);else{let o=Se.fromError(e.error.code,e.error.message,e.error.data);i(o)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,r,n){let{task:i}=n??{};if(!i){try{yield{type:"result",result:await this.request(e,r,n)}}catch(o){yield{type:"error",error:o instanceof Se?o:new Se(Oe.InternalError,String(o))}}return}let a;try{let o=await this.request(e,za,n);if(o.task)a=o.task.taskId,yield{type:"taskCreated",task:o.task};else throw new Se(Oe.InternalError,"Task creation did not return a task");for(;;){let s=await this.getTask({taskId:a},n);if(yield{type:"taskStatus",task:s},Qi(s.status)){s.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:a},r,n)}:s.status==="failed"?yield{type:"error",error:new Se(Oe.InternalError,`Task ${a} failed`)}:s.status==="cancelled"&&(yield{type:"error",error:new Se(Oe.InternalError,`Task ${a} was cancelled`)});return}if(s.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:a},r,n)};return}let c=s.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),n?.signal?.throwIfAborted()}}catch(o){yield{type:"error",error:o instanceof Se?o:new Se(Oe.InternalError,String(o))}}}request(e,r,n){let{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o,task:s,relatedTask:c}=n??{};return new Promise((u,l)=>{let d=v=>{l(v)};if(!this._transport){d(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method),s&&this.assertTaskCapability(e.method)}catch(v){d(v);return}n?.signal?.throwIfAborted();let p=this._requestMessageId++,f={...e,jsonrpc:"2.0",id:p};n?.onprogress&&(this._progressHandlers.set(p,n.onprogress),f.params={...e.params,_meta:{...e.params?._meta||{},progressToken:p}}),s&&(f.params={...f.params,task:s}),c&&(f.params={...f.params,_meta:{...f.params?._meta||{},[Yi]:c}});let h=v=>{this._responseHandlers.delete(p),this._progressHandlers.delete(p),this._cleanupTimeout(p),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:p,reason:String(v)}},{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o}).catch(b=>this._onerror(new Error(`Failed to send cancellation: ${b}`)));let g=v instanceof Se?v:new Se(Oe.RequestTimeout,String(v));l(g)};this._responseHandlers.set(p,v=>{if(!n?.signal?.aborted){if(v instanceof Error)return l(v);try{let g=An(r,v.result);g.success?u(g.data):l(g.error)}catch(g){l(g)}}}),n?.signal?.addEventListener("abort",()=>{h(n?.signal?.reason)});let _=n?.timeout??JF,y=()=>h(Se.fromError(Oe.RequestTimeout,"Request timed out",{timeout:_}));this._setupTimeout(p,_,n?.maxTotalTimeout,y,n?.resetTimeoutOnProgress??!1);let m=c?.taskId;if(m){let v=g=>{let b=this._responseHandlers.get(p);b?b(g):this._onerror(new Error(`Response handler missing for side-channeled request ${p}`))};this._requestResolvers.set(p,v),this._enqueueTaskMessage(m,{type:"request",message:f,timestamp:Date.now()}).catch(g=>{this._cleanupTimeout(p),l(g)})}else this._transport.send(f,{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o}).catch(v=>{this._cleanupTimeout(p),l(v)})})}async getTask(e,r){return this.request({method:"tasks/get",params:e},ef,r)}async getTaskResult(e,r,n){return this.request({method:"tasks/result",params:e},r,n)}async listTasks(e,r){return this.request({method:"tasks/list",params:e},nf,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},$1,r)}async notification(e,r){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(e.method);let n=r?.relatedTask?.taskId;if(n){let s={...e,jsonrpc:"2.0",params:{...e.params,_meta:{...e.params?._meta||{},[Yi]:r.relatedTask}}};await this._enqueueTaskMessage(n,{type:"notification",message:s,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(e.method)&&!e.params&&!r?.relatedRequestId&&!r?.relatedTask){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let s={...e,jsonrpc:"2.0"};r?.relatedTask&&(s={...s,params:{...s.params,_meta:{...s.params?._meta||{},[Yi]:r.relatedTask}}}),this._transport?.send(s,r).catch(c=>this._onerror(c))});return}let o={...e,jsonrpc:"2.0"};r?.relatedTask&&(o={...o,params:{...o.params,_meta:{...o.params?._meta||{},[Yi]:r.relatedTask}}}),await this._transport.send(o,r)}setRequestHandler(e,r){let n=Ib(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(i,a)=>{let o=Pb(e,i);return Promise.resolve(r(o,a))})}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,r){let n=Ib(e);this._notificationHandlers.set(n,i=>{let a=Pb(e,i);return Promise.resolve(r(a))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){let r=this._taskProgressTokens.get(e);r!==void 0&&(this._progressHandlers.delete(r),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,r,n){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let i=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,r,n,i)}async _clearTaskQueue(e,r){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,r);for(let i of n)if(i.type==="request"&&ib(i.message)){let a=i.message.id,o=this._requestResolvers.get(a);o?(o(new Se(Oe.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(a)):this._onerror(new Error(`Resolver missing for request ${a} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,r){let n=this._options?.defaultTaskPollInterval??1e3;try{let i=await this._taskStore?.getTask(e);i?.pollInterval&&(n=i.pollInterval)}catch{}return new Promise((i,a)=>{if(r.aborted){a(new Se(Oe.InvalidRequest,"Request cancelled"));return}let o=setTimeout(i,n);r.addEventListener("abort",()=>{clearTimeout(o),a(new Se(Oe.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,r){let n=this._taskStore;if(!n)throw new Error("No task store configured");return{createTask:async i=>{if(!e)throw new Error("No request provided");return await n.createTask(i,e.id,{method:e.method,params:e.params},r)},getTask:async i=>{let a=await n.getTask(i,r);if(!a)throw new Se(Oe.InvalidParams,"Failed to retrieve task: Task not found");return a},storeTaskResult:async(i,a,o)=>{await n.storeTaskResult(i,a,o,r);let s=await n.getTask(i,r);if(s){let c=Cu.parse({method:"notifications/tasks/status",params:s});await this.notification(c),Qi(s.status)&&this._cleanupTaskProgressHandler(i)}},getTaskResult:i=>n.getTaskResult(i,r),updateTaskStatus:async(i,a,o)=>{let s=await n.getTask(i,r);if(!s)throw new Se(Oe.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(Qi(s.status))throw new Se(Oe.InvalidParams,`Cannot update task "${i}" from terminal status "${s.status}" to "${a}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(i,a,o,r);let c=await n.getTask(i,r);if(c){let u=Cu.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Qi(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>n.listTasks(i,r)}}};function C1(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function N1(t,e){let r={...t};for(let n in e){let i=n,a=e[i];if(a===void 0)continue;let o=r[i];C1(o)&&C1(a)?r[i]={...o,...a}:r[i]=a}return r}var _R=yt(m0(),1),bR=yt(yR(),1);function qV(){let t=new _R.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,bR.default)(t),t}var Zf=class{constructor(e){this._ajv=e??qV()}getValidator(e){let r="$id"in e&&typeof e.$id=="string"?this._ajv.getSchema(e.$id)??this._ajv.compile(e):this._ajv.compile(e);return n=>r(n)?{valid:!0,data:n,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}};var Hf=class{constructor(e){this._client=e}async*callToolStream(e,r=Xo,n){let i=this._client,a={...n,task:n?.task??(i.isToolTask(e.name)?{}:void 0)},o=i.requestStream({method:"tools/call",params:e},r,a),s=i.getToolOutputValidator(e.name);for await(let c of o){if(c.type==="result"&&s){let u=c.result;if(!u.structuredContent&&!u.isError){yield{type:"error",error:new Se(Oe.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`)};return}if(u.structuredContent)try{let l=s(u.structuredContent);if(!l.valid){yield{type:"error",error:new Se(Oe.InvalidParams,`Structured content does not match the tool's output schema: ${l.errorMessage}`)};return}}catch(l){if(l instanceof Se){yield{type:"error",error:l};return}yield{type:"error",error:new Se(Oe.InvalidParams,`Failed to validate structured content: ${l instanceof Error?l.message:String(l)}`)};return}}yield c}}async getTask(e,r){return this._client.getTask({taskId:e},r)}async getTaskResult(e,r,n){return this._client.getTaskResult({taskId:e},r,n)}async listTasks(e,r){return this._client.listTasks(e?{cursor:e}:void 0,r)}async cancelTask(e,r){return this._client.cancelTask({taskId:e},r)}requestStream(e,r,n){return this._client.requestStream(e,r,n)}};function xR(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"tools/call":if(!t.tools?.call)throw new Error(`${r} does not support task creation for tools/call (required for ${e})`);break;default:break}}function SR(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"sampling/createMessage":if(!t.sampling?.createMessage)throw new Error(`${r} does not support task creation for sampling/createMessage (required for ${e})`);break;case"elicitation/create":if(!t.elicitation?.create)throw new Error(`${r} does not support task creation for elicitation/create (required for ${e})`);break;default:break}}function Bf(t,e){if(!(!t||e===null||typeof e!="object")){if(t.type==="object"&&t.properties&&typeof t.properties=="object"){let r=e,n=t.properties;for(let i of Object.keys(n)){let a=n[i];r[i]===void 0&&Object.prototype.hasOwnProperty.call(a,"default")&&(r[i]=a.default),r[i]!==void 0&&Bf(a,r[i])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&Bf(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&Bf(r,e)}}function LV(t){if(!t)return{supportsFormMode:!1,supportsUrlMode:!1};let e=t.form!==void 0,r=t.url!==void 0;return{supportsFormMode:e||!e&&!r,supportsUrlMode:r}}var ms=class extends of{constructor(e,r){super(r),this._clientInfo=e,this._cachedToolOutputValidators=new Map,this._cachedKnownTaskTools=new Set,this._cachedRequiredTaskTools=new Set,this._listChangedDebounceTimers=new Map,this._capabilities=r?.capabilities??{},this._jsonSchemaValidator=r?.jsonSchemaValidator??new Zf,r?.listChanged&&(this._pendingListChangedConfig=r.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler("tools",Sb,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler("prompts",bb,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",fb,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new Hf(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=N1(this._capabilities,e)}setRequestHandler(e,r){let i=Op(e)?.method;if(!i)throw new Error("Schema is missing a method literal");let a;if(Go(i)){let s=i;a=s._zod?.def?.value??s.value}else{let s=i;a=s._def?.value??s.value}if(typeof a!="string")throw new Error("Schema method literal must be a string");let o=a;if(o==="elicitation/create"){let s=async(c,u)=>{let l=An(Eb,c);if(!l.success){let v=l.error instanceof Error?l.error.message:String(l.error);throw new Se(Oe.InvalidParams,`Invalid elicitation request: ${v}`)}let{params:d}=l.data;d.mode=d.mode??"form";let{supportsFormMode:p,supportsUrlMode:f}=LV(this._capabilities.elicitation);if(d.mode==="form"&&!p)throw new Se(Oe.InvalidParams,"Client does not support form-mode elicitation requests");if(d.mode==="url"&&!f)throw new Se(Oe.InvalidParams,"Client does not support URL-mode elicitation requests");let h=await Promise.resolve(r(c,u));if(d.task){let v=An(za,h);if(!v.success){let g=v.error instanceof Error?v.error.message:String(v.error);throw new Se(Oe.InvalidParams,`Invalid task creation result: ${g}`)}return v.data}let _=An(kb,h);if(!_.success){let v=_.error instanceof Error?_.error.message:String(_.error);throw new Se(Oe.InvalidParams,`Invalid elicitation result: ${v}`)}let y=_.data,m=d.mode==="form"?d.requestedSchema:void 0;if(d.mode==="form"&&y.action==="accept"&&y.content&&m&&this._capabilities.elicitation?.form?.applyDefaults)try{Bf(m,y.content)}catch{}return y};return super.setRequestHandler(e,s)}if(o==="sampling/createMessage"){let s=async(c,u)=>{let l=An(wb,c);if(!l.success){let h=l.error instanceof Error?l.error.message:String(l.error);throw new Se(Oe.InvalidParams,`Invalid sampling request: ${h}`)}let{params:d}=l.data,p=await Promise.resolve(r(c,u));if(d.task){let h=An(za,p);if(!h.success){let _=h.error instanceof Error?h.error.message:String(h.error);throw new Se(Oe.InvalidParams,`Invalid task creation result: ${_}`)}return h.data}let f=An($b,p);if(!f.success){let h=f.error instanceof Error?f.error.message:String(f.error);throw new Se(Oe.InvalidParams,`Invalid sampling result: ${h}`)}return f.data};return super.setRequestHandler(e,s)}return super.setRequestHandler(e,r)}assertCapability(e,r){if(!this._serverCapabilities?.[e])throw new Error(`Server does not support ${e} (required for ${r})`)}async connect(e,r){if(await super.connect(e),e.sessionId===void 0)try{let n=await this.request({method:"initialize",params:{protocolVersion:rb,capabilities:this._capabilities,clientInfo:this._clientInfo}},sb,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!m1.includes(n.protocolVersion))throw new Error(`Server's protocol version is not supported: ${n.protocolVersion}`);this._serverCapabilities=n.capabilities,this._serverVersion=n.serverInfo,e.setProtocolVersion&&e.setProtocolVersion(n.protocolVersion),this._instructions=n.instructions,await this.notification({method:"notifications/initialized"}),this._pendingListChangedConfig&&(this._setupListChangedHandlers(this._pendingListChangedConfig),this._pendingListChangedConfig=void 0)}catch(n){throw this.close(),n}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(e){switch(e){case"logging/setLevel":if(!this._serverCapabilities?.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!this._serverCapabilities?.prompts)throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":case"resources/subscribe":case"resources/unsubscribe":if(!this._serverCapabilities?.resources)throw new Error(`Server does not support resources (required for ${e})`);if(e==="resources/subscribe"&&!this._serverCapabilities.resources.subscribe)throw new Error(`Server does not support resource subscriptions (required for ${e})`);break;case"tools/call":case"tools/list":if(!this._serverCapabilities?.tools)throw new Error(`Server does not support tools (required for ${e})`);break;case"completion/complete":if(!this._serverCapabilities?.completions)throw new Error(`Server does not support completions (required for ${e})`);break;case"initialize":break;case"ping":break}}assertNotificationCapability(e){switch(e){case"notifications/roots/list_changed":if(!this._capabilities.roots?.listChanged)throw new Error(`Client does not support roots list changed notifications (required for ${e})`);break;case"notifications/initialized":break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){if(this._capabilities)switch(e){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Client does not support sampling capability (required for ${e})`);break;case"elicitation/create":if(!this._capabilities.elicitation)throw new Error(`Client does not support elicitation capability (required for ${e})`);break;case"roots/list":if(!this._capabilities.roots)throw new Error(`Client does not support roots capability (required for ${e})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Client does not support tasks capability (required for ${e})`);break;case"ping":break}}assertTaskCapability(e){xR(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&SR(this._capabilities.tasks?.requests,e,"Client")}async ping(e){return this.request({method:"ping"},Da,e)}async complete(e,r){return this.request({method:"completion/complete",params:e},Tb,r)}async setLoggingLevel(e,r){return this.request({method:"logging/setLevel",params:{level:e}},Da,r)}async getPrompt(e,r){return this.request({method:"prompts/get",params:e},_b,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},mb,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},ub,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},lb,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},pb,r)}async subscribeResource(e,r){return this.request({method:"resources/subscribe",params:e},Da,r)}async unsubscribeResource(e,r){return this.request({method:"resources/unsubscribe",params:e},Da,r)}async callTool(e,r=Xo,n){if(this.isToolTaskRequired(e.name))throw new Se(Oe.InvalidRequest,`Tool "${e.name}" requires task-based execution. Use client.experimental.tasks.callToolStream() instead.`);let i=await this.request({method:"tools/call",params:e},r,n),a=this.getToolOutputValidator(e.name);if(a){if(!i.structuredContent&&!i.isError)throw new Se(Oe.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(i.structuredContent)try{let o=a(i.structuredContent);if(!o.valid)throw new Se(Oe.InvalidParams,`Structured content does not match the tool's output schema: ${o.errorMessage}`)}catch(o){throw o instanceof Se?o:new Se(Oe.InvalidParams,`Failed to validate structured content: ${o instanceof Error?o.message:String(o)}`)}}return i}isToolTask(e){return this._serverCapabilities?.tasks?.requests?.tools?.call?this._cachedKnownTaskTools.has(e):!1}isToolTaskRequired(e){return this._cachedRequiredTaskTools.has(e)}cacheToolMetadata(e){this._cachedToolOutputValidators.clear(),this._cachedKnownTaskTools.clear(),this._cachedRequiredTaskTools.clear();for(let r of e){if(r.outputSchema){let i=this._jsonSchemaValidator.getValidator(r.outputSchema);this._cachedToolOutputValidators.set(r.name,i)}let n=r.execution?.taskSupport;(n==="required"||n==="optional")&&this._cachedKnownTaskTools.add(r.name),n==="required"&&this._cachedRequiredTaskTools.add(r.name)}}getToolOutputValidator(e){return this._cachedToolOutputValidators.get(e)}async listTools(e,r){let n=await this.request({method:"tools/list",params:e},xb,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,i){let a=R1.safeParse(n);if(!a.success)throw new Error(`Invalid ${e} listChanged options: ${a.error.message}`);if(typeof n.onChanged!="function")throw new Error(`Invalid ${e} listChanged options: onChanged must be a function`);let{autoRefresh:o,debounceMs:s}=a.data,{onChanged:c}=n,u=async()=>{if(!o){c(null,null);return}try{let d=await i();c(null,d)}catch(d){let p=d instanceof Error?d:new Error(String(d));c(p,null)}},l=()=>{if(s){let d=this._listChangedDebounceTimers.get(e);d&&clearTimeout(d);let p=setTimeout(u,s);this._listChangedDebounceTimers.set(e,p)}else u()};this.setNotificationHandler(r,l)}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}};var pO=yt(lO(),1),ll=yt(require("node:process"),1),fO=require("node:stream");var Gf=class{append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(` +`);if(e===-1)return null;let r=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),m7(r)}clear(){this._buffer=void 0}};function m7(t){return S1.parse(JSON.parse(t))}function dO(t){return JSON.stringify(t)+` +`}var h7=ll.default.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function g7(){let t={};for(let e of h7){let r=ll.default.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var vs=class{constructor(e){this._readBuffer=new Gf,this._stderrStream=null,this._serverParams=e,(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new fO.PassThrough)}async start(){if(this._process)throw new Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((e,r)=>{this._process=(0,pO.default)(this._serverParams.command,this._serverParams.args??[],{env:{...g7(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:ll.default.platform==="win32"&&v7(),cwd:this._serverParams.cwd}),this._process.on("error",n=>{r(n),this.onerror?.(n)}),this._process.on("spawn",()=>{e()}),this._process.on("close",n=>{this._process=void 0,this.onclose?.()}),this._process.stdin?.on("error",n=>{this.onerror?.(n)}),this._process.stdout?.on("data",n=>{this._readBuffer.append(n),this.processReadBuffer()}),this._process.stdout?.on("error",n=>{this.onerror?.(n)}),this._stderrStream&&this._process.stderr&&this._process.stderr.pipe(this._stderrStream)})}get stderr(){return this._stderrStream?this._stderrStream:this._process?.stderr??null}get pid(){return this._process?.pid??null}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){if(this._process){let e=this._process;this._process=void 0;let r=new Promise(n=>{e.once("close",()=>{n()})});try{e.stdin?.end()}catch{}if(await Promise.race([r,new Promise(n=>setTimeout(n,2e3).unref())]),e.exitCode===null){try{e.kill("SIGTERM")}catch{}await Promise.race([r,new Promise(n=>setTimeout(n,2e3).unref())])}if(e.exitCode===null)try{e.kill("SIGKILL")}catch{}}this._readBuffer.clear()}send(e){return new Promise(r=>{if(!this._process?.stdin)throw new Error("Not connected");let n=dO(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};function v7(){return"type"in ll.default}var Kf=yt(require("path"),1),xO=require("os");Ne();var N0={DEFAULT:3e5,HEALTH_CHECK:3e4,WORKER_STARTUP_WAIT:1e3,WORKER_STARTUP_RETRIES:300,PRE_RESTART_SETTLE_DELAY:2e3,WINDOWS_MULTIPLIER:1.5};function bO(t){return process.platform==="win32"?Math.round(t*N0.WINDOWS_MULTIPLIER):t}on();var Jwe=Kf.default.join((0,xO.homedir)(),".claude","plugins","marketplaces","thedotmack"),Xwe=bO(N0.HEALTH_CHECK),dl=null,pl=null;function Ln(){if(dl!==null)return dl;let t=Kf.default.join(Ke.get("CLAUDE_MEM_DATA_DIR"),"settings.json"),e=Ke.loadFromFile(t);return dl=parseInt(e.CLAUDE_MEM_WORKER_PORT,10),dl}function SO(){if(pl!==null)return pl;let t=Kf.default.join(Ke.get("CLAUDE_MEM_DATA_DIR"),"settings.json");return pl=Ke.loadFromFile(t).CLAUDE_MEM_WORKER_HOST,pl}function wO(){dl=null,pl=null}Ne();var j0=yt(require("path"),1),$O=require("os"),Fn=require("fs"),bs=require("child_process"),EO=require("util");Ne();var Jf=(0,EO.promisify)(bs.exec),kO=j0.default.join((0,$O.homedir)(),".claude-mem"),Ka=j0.default.join(kO,"worker.pid");function A0(t){(0,Fn.mkdirSync)(kO,{recursive:!0}),(0,Fn.writeFileSync)(Ka,JSON.stringify(t,null,2))}function TO(){if(!(0,Fn.existsSync)(Ka))return null;try{return JSON.parse((0,Fn.readFileSync)(Ka,"utf-8"))}catch(t){return k.warn("SYSTEM","Failed to parse PID file",{path:Ka},t),null}}function Ni(){if((0,Fn.existsSync)(Ka))try{(0,Fn.unlinkSync)(Ka)}catch(t){k.warn("SYSTEM","Failed to remove PID file",{path:Ka},t)}}function Ja(t){return process.platform==="win32"?Math.round(t*2):t}async function IO(t){if(process.platform!=="win32")return[];if(!Number.isInteger(t)||t<=0)return k.warn("SYSTEM","Invalid parent PID for child process enumeration",{parentPid:t}),[];try{let e=`powershell -Command "Get-CimInstance Win32_Process | Where-Object { $_.ParentProcessId -eq ${t} } | Select-Object -ExpandProperty ProcessId"`,{stdout:r}=await Jf(e,{timeout:6e4});return r.trim().split(` +`).map(n=>parseInt(n.trim(),10)).filter(n=>!isNaN(n)&&Number.isInteger(n)&&n>0)}catch(e){return k.warn("SYSTEM","Failed to enumerate child processes",{parentPid:t},e),[]}}async function PO(t){if(!Number.isInteger(t)||t<=0){k.warn("SYSTEM","Invalid PID for force kill",{pid:t});return}try{process.platform==="win32"?await Jf(`taskkill /PID ${t} /T /F`,{timeout:6e4}):process.kill(t,"SIGKILL"),k.info("SYSTEM","Killed process",{pid:t})}catch(e){k.debug("SYSTEM","Process already exited during force kill",{pid:t},e)}}async function RO(t,e){let r=Date.now();for(;Date.now()-r{try{return process.kill(i,0),!0}catch{return!1}});if(n.length===0){k.info("SYSTEM","All child processes exited");return}k.debug("SYSTEM","Waiting for processes to exit",{stillAlive:n}),await new Promise(i=>setTimeout(i,100))}k.warn("SYSTEM","Timeout waiting for child processes to exit")}async function OO(){let t=process.platform==="win32",e=[];try{if(t){let r=`powershell -Command "Get-CimInstance Win32_Process | Where-Object { $_.Name -like '*python*' -and $_.CommandLine -like '*chroma-mcp*' } | Select-Object -ExpandProperty ProcessId"`,{stdout:n}=await Jf(r,{timeout:6e4});if(!n.trim()){k.debug("SYSTEM","No orphaned chroma-mcp processes found (Windows)");return}let i=n.trim().split(` +`);for(let a of i){let o=parseInt(a.trim(),10);!isNaN(o)&&Number.isInteger(o)&&o>0&&e.push(o)}}else{let{stdout:r}=await Jf('ps aux | grep "chroma-mcp" | grep -v grep || true');if(!r.trim()){k.debug("SYSTEM","No orphaned chroma-mcp processes found (Unix)");return}let n=r.trim().split(` +`);for(let i of n){let a=i.trim().split(/\s+/);if(a.length>1){let o=parseInt(a[1],10);!isNaN(o)&&Number.isInteger(o)&&o>0&&e.push(o)}}}}catch(r){k.warn("SYSTEM","Failed to enumerate orphaned processes",{},r);return}if(e.length!==0){if(k.info("SYSTEM","Cleaning up orphaned chroma-mcp processes",{platform:t?"Windows":"Unix",count:e.length,pids:e}),t)for(let r of e){if(!Number.isInteger(r)||r<=0){k.warn("SYSTEM","Skipping invalid PID",{pid:r});continue}try{(0,bs.execSync)(`taskkill /PID ${r} /T /F`,{timeout:6e4,stdio:"ignore"})}catch(n){k.debug("SYSTEM","Failed to kill process, may have already exited",{pid:r},n)}}else for(let r of e)try{process.kill(r,"SIGKILL")}catch(n){k.debug("SYSTEM","Process already exited",{pid:r},n)}k.info("SYSTEM","Orphaned processes cleaned up",{count:e.length})}}function M0(t,e,r={}){let n=(0,bs.spawn)(process.execPath,[t,"--daemon"],{detached:!0,stdio:"ignore",windowsHide:!0,env:{...process.env,CLAUDE_MEM_WORKER_PORT:String(e),...r}});if(n.pid!==void 0)return n.unref(),n.pid}function CO(t,e){return async r=>{if(e.value){k.warn("SYSTEM",`Received ${r} but shutdown already in progress`);return}e.value=!0,k.info("SYSTEM",`Received ${r}, shutting down...`);try{await t(),process.exit(0)}catch(n){k.error("SYSTEM","Error during shutdown",{},n),process.exit(1)}}}var D0=yt(require("path"),1),NO=require("os"),jO=require("fs");Ne();async function Xf(t){try{return(await fetch(`http://127.0.0.1:${t}/api/health`)).ok}catch{return!1}}async function fl(t,e=3e4){let r=Date.now();for(;Date.now()-rsetTimeout(n,500))}return!1}async function Yf(t,e=1e4){let r=Date.now();for(;Date.now()-rsetTimeout(n,500))}return!1}async function Qf(t){try{let e=await fetch(`http://127.0.0.1:${t}/api/admin/shutdown`,{method:"POST"});return e.ok?!0:(k.warn("SYSTEM","Shutdown request returned error",{port:t,status:e.status}),!1)}catch(e){return e instanceof Error&&e.message?.includes("ECONNREFUSED")?(k.debug("SYSTEM","Worker already stopped",{port:t},e),!1):(k.warn("SYSTEM","Shutdown request failed unexpectedly",{port:t},e),!1)}}function y7(){let t=D0.default.join((0,NO.homedir)(),".claude","plugins","marketplaces","thedotmack"),e=D0.default.join(t,"package.json");return JSON.parse((0,jO.readFileSync)(e,"utf-8")).version}async function _7(t){try{let e=await fetch(`http://127.0.0.1:${t}/api/version`);return e.ok?(await e.json()).version:null}catch{return k.debug("SYSTEM","Could not fetch worker version",{port:t}),null}}async function AO(t){let e=y7(),r=await _7(t);return r?{matches:e===r,pluginVersion:e,workerVersion:r}:{matches:!0,pluginVersion:e,workerVersion:r}}Ne();async function MO(t){k.info("SYSTEM","Shutdown initiated"),Ni();let e=await IO(process.pid);if(k.info("SYSTEM","Found child processes",{count:e.length,pids:e}),t.server&&(await b7(t.server),k.info("SYSTEM","HTTP server closed")),await t.sessionManager.shutdownAll(),t.mcpClient&&(await t.mcpClient.close(),k.info("SYSTEM","MCP client closed")),t.dbManager&&await t.dbManager.close(),e.length>0){k.info("SYSTEM","Force killing remaining children");for(let r of e)await PO(r);await RO(e,5e3)}k.info("SYSTEM","Worker shutdown complete")}async function b7(t){t.closeAllConnections(),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),await new Promise((e,r)=>{t.close(n=>n?r(n):e())}),process.platform==="win32"&&(await new Promise(e=>setTimeout(e,500)),k.info("SYSTEM","Waited for Windows port cleanup"))}var t4=yt(sh(),1),Bw=yt(require("fs"),1),Vw=yt(require("path"),1);Ne();var Fw=yt(sh(),1),Jz=yt(qz(),1),Xz=yt(require("path"),1);cn();Ne();function Zw(t){let e=[];e.push(Fw.default.json({limit:"50mb"})),e.push((0,Jz.default)()),e.push((i,a,o)=>{let c=[".html",".js",".css",".svg",".png",".jpg",".jpeg",".webp",".woff",".woff2",".ttf",".eot"].some(h=>i.path.endsWith(h)),u=i.path==="/api/logs";if(i.path.startsWith("/health")||i.path==="/"||c||u)return o();let l=Date.now(),d=`${i.method}-${Date.now()}`,p=t(i.method,i.path,i.body);k.info("HTTP",`\u2192 ${i.method} ${i.path}`,{requestId:d},p);let f=a.send.bind(a);a.send=function(h){let _=Date.now()-l;return k.info("HTTP",`\u2190 ${a.statusCode} ${i.path}`,{requestId:d,duration:`${_}ms`}),f(h)},o()});let r=Gr(),n=Xz.default.join(r,"plugin","ui");return e.push(Fw.default.static(n)),e}function ch(t,e,r){let n=t.ip||t.connection.remoteAddress||"";if(!(n==="127.0.0.1"||n==="::1"||n==="::ffff:127.0.0.1"||n==="localhost")){k.warn("SECURITY","Admin endpoint access denied - not localhost",{endpoint:t.path,clientIp:n,method:t.method}),e.status(403).json({error:"Forbidden",message:"Admin endpoints are only accessible from localhost"});return}r()}function Hw(t,e,r){if(!r||Object.keys(r).length===0||e.includes("/init"))return"";if(e.includes("/observations")){let n=r.tool_name||"?",i=r.tool_input;return`tool=${k.formatTool(n,i)}`}return e.includes("/summarize")?"requesting summary":""}Ne();var Gs=class extends Error{constructor(r,n=500,i,a){super(r);this.statusCode=n;this.code=i;this.details=a;this.name="AppError"}};function Yz(t,e,r,n){let i={error:t,message:e};return r&&(i.code=r),n&&(i.details=n),i}var Qz=(t,e,r,n)=>{let i=t instanceof Gs?t.statusCode:500;k.error("HTTP",`Error handling ${e.method} ${e.path}`,{statusCode:i,error:t.message,code:t instanceof Gs?t.code:void 0},t);let a=Yz(t.name||"Error",t.message,t instanceof Gs?t.code:void 0,t instanceof Gs?t.details:void 0);r.status(i).json(a)};function e4(t,e){e.status(404).json(Yz("NotFound",`Cannot ${t.method} ${t.path}`))}var jre="8.5.4",uh=class{app;server=null;options;startTime=Date.now();constructor(e){this.options=e,this.app=(0,t4.default)(),this.setupMiddleware(),this.setupCoreRoutes()}getHttpServer(){return this.server}async listen(e,r){return new Promise((n,i)=>{this.server=this.app.listen(e,r,()=>{k.info("SYSTEM","HTTP server started",{host:r,port:e,pid:process.pid}),n()}),this.server.on("error",i)})}async close(){this.server&&(this.server.closeAllConnections(),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),await new Promise((e,r)=>{this.server.close(n=>n?r(n):e())}),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),this.server=null,k.info("SYSTEM","HTTP server closed"))}registerRoutes(e){e.setupRoutes(this.app)}finalizeRoutes(){this.app.use(e4),this.app.use(Qz)}setupMiddleware(){Zw(Hw).forEach(r=>this.app.use(r))}setupCoreRoutes(){let e="TEST-008-wrapper-ipc";this.app.get("/api/health",(r,n)=>{n.status(200).json({status:"ok",build:e,managed:process.env.CLAUDE_MEM_MANAGED==="true",hasIpc:typeof process.send=="function",platform:process.platform,pid:process.pid,initialized:this.options.getInitializationComplete(),mcpReady:this.options.getMcpReady()})}),this.app.get("/api/readiness",(r,n)=>{this.options.getInitializationComplete()?n.status(200).json({status:"ready",mcpReady:this.options.getMcpReady()}):n.status(503).json({status:"initializing",message:"Worker is still initializing, please retry"})}),this.app.get("/api/version",(r,n)=>{n.status(200).json({version:jre})}),this.app.get("/api/instructions",async(r,n)=>{let i=r.query.topic||"all",a=r.query.operation;try{let o;if(a){let s=Vw.default.join(__dirname,"../skills/mem-search/operations",`${a}.md`);o=await Bw.promises.readFile(s,"utf-8")}else{let s=Vw.default.join(__dirname,"../skills/mem-search/SKILL.md"),c=await Bw.promises.readFile(s,"utf-8");o=this.extractInstructionSection(c,i)}n.json({content:[{type:"text",text:o}]})}catch{n.status(404).json({error:"Instruction not found"})}}),this.app.post("/api/admin/restart",ch,async(r,n)=>{n.json({status:"restarting"}),process.platform==="win32"&&process.env.CLAUDE_MEM_MANAGED==="true"&&process.send?(k.info("SYSTEM","Sending restart request to wrapper"),process.send({type:"restart"})):setTimeout(async()=>{await this.options.onRestart()},100)}),this.app.post("/api/admin/shutdown",ch,async(r,n)=>{n.json({status:"shutting_down"}),process.platform==="win32"&&process.env.CLAUDE_MEM_MANAGED==="true"&&process.send?(k.info("SYSTEM","Sending shutdown request to wrapper"),process.send({type:"shutdown"})):setTimeout(async()=>{await this.options.onShutdown()},100)})}extractInstructionSection(e,r){let n={workflow:this.extractBetween(e,"## The Workflow","## Search Parameters"),search_params:this.extractBetween(e,"## Search Parameters","## Examples"),examples:this.extractBetween(e,"## Examples","## Why This Workflow"),all:e};return n[r]||n.all}extractBetween(e,r,n){let i=e.indexOf(r),a=e.indexOf(n);return i===-1?e:a===-1?e.substring(i):e.substring(i,a).trim()}};var ct=yt(require("path"),1),Yl=require("os"),Mt=require("fs"),i4=require("child_process"),a4=require("util");Ne();var $n=require("fs"),Xl=require("path");Ne();function r4(t){try{return(0,$n.existsSync)(t)?JSON.parse((0,$n.readFileSync)(t,"utf-8")):{}}catch(e){return k.warn("CONFIG","Failed to read Cursor registry, using empty registry",{file:t,error:e instanceof Error?e.message:String(e)}),{}}}function n4(t,e){let r=(0,Xl.join)(t,"..");(0,$n.mkdirSync)(r,{recursive:!0}),(0,$n.writeFileSync)(t,JSON.stringify(e,null,2))}function Gw(t,e){let r=(0,Xl.join)(t,".cursor","rules"),n=(0,Xl.join)(r,"claude-mem-context.mdc"),i=`${n}.tmp`;(0,$n.mkdirSync)(r,{recursive:!0});let a=`--- alwaysApply: true description: "Claude-mem context from past sessions (auto-updated)" --- @@ -685,7 +718,66 @@ ${e} --- *Updated after last session. Use claude-mem's MCP search tools for more detailed queries.* -`;(0,Ir.writeFileSync)(n,s),(0,Ir.renameSync)(n,a)}el();var U1=require("bun:sqlite");vr();Ke();var tl=class{db;constructor(e){e||(ir(Jt),e=Co),this.db=new U1.Database(e),this.db.run("PRAGMA journal_mode = WAL"),this.ensureFTSTables()}ensureFTSTables(){this.db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name LIKE '%_fts'").all().some(a=>a.name==="observations_fts"||a.name==="session_summaries_fts")||(P.info("DB","Creating FTS5 tables"),this.db.run(` +`;(0,$n.writeFileSync)(i,a),(0,$n.renameSync)(i,n)}var oTe=(0,a4.promisify)(i4.exec),Are=ct.default.join((0,Yl.homedir)(),".claude-mem"),o4=ct.default.join(Are,"cursor-projects.json");function Ww(){return process.platform==="win32"?"windows":"unix"}function Mre(){return Ww()==="windows"?".ps1":".sh"}function Kw(){return r4(o4)}function s4(t){n4(o4,t)}function Dre(t,e){let r=Kw();r[t]={workspacePath:e,installedAt:new Date().toISOString()},s4(r),k.info("CURSOR","Registered project for auto-context updates",{projectName:t,workspacePath:e})}function zre(t){let e=Kw();e[t]&&(delete e[t],s4(e),k.info("CURSOR","Unregistered project",{projectName:t}))}async function lh(t,e){let n=Kw()[t];if(n)try{let i=await fetch(`http://127.0.0.1:${e}/api/context/inject?project=${encodeURIComponent(t)}`);if(!i.ok)return;let a=await i.text();if(!a||!a.trim())return;Gw(n.workspacePath,a),k.debug("CURSOR","Updated context file",{projectName:t,workspacePath:n.workspacePath})}catch(i){k.warn("CURSOR","Failed to update context file",{projectName:t},i)}}function c4(){let t=[ct.default.join((0,Yl.homedir)(),".claude","plugins","marketplaces","thedotmack","cursor-hooks"),ct.default.join(ct.default.dirname(__filename),"..","..","cursor-hooks"),ct.default.join(process.cwd(),"cursor-hooks")];for(let e of t)if((0,Mt.existsSync)(ct.default.join(e,"common.sh"))||(0,Mt.existsSync)(ct.default.join(e,"common.ps1")))return e;return null}function u4(t){switch(t){case"project":return ct.default.join(process.cwd(),".cursor");case"user":return ct.default.join((0,Yl.homedir)(),".cursor");case"enterprise":return process.platform==="darwin"?"/Library/Application Support/Cursor":process.platform==="linux"?"/etc/cursor":process.platform==="win32"?ct.default.join(process.env.ProgramData||"C:\\ProgramData","Cursor"):null;default:return null}}async function l4(t,e){let r=Ww(),n=Mre();console.log(` +Installing Claude-Mem Cursor hooks (${e} level, ${r})... +`);let i=u4(e);if(!i)return console.error(`Invalid target: ${e}. Use: project, user, or enterprise`),1;let a=ct.default.join(i,"hooks"),o=process.cwd();try{(0,Mt.mkdirSync)(a,{recursive:!0});let s=r==="windows"?"common.ps1":"common.sh",c=[`session-init${n}`,`context-inject${n}`,`save-observation${n}`,`save-file-edit${n}`,`session-summary${n}`],u=[s,...c];for(let h of u){let _=ct.default.join(t,h),y=ct.default.join(a,h);if((0,Mt.existsSync)(_)){let m=(0,Mt.readFileSync)(_,"utf-8"),v=r==="windows"?void 0:493;(0,Mt.writeFileSync)(y,m,v?{mode:v}:void 0),console.log(` Copied ${h}`)}else console.warn(` ${h} not found in source`)}let l=ct.default.join(i,"hooks.json"),d=e==="project"?"./.cursor/hooks/":`${a}/`,p=h=>{let _=`${d}${h}${n}`;return r==="windows"?`powershell.exe -ExecutionPolicy Bypass -File "${_}"`:_},f={version:1,hooks:{beforeSubmitPrompt:[{command:p("session-init")},{command:p("context-inject")}],afterMCPExecution:[{command:p("save-observation")}],afterShellExecution:[{command:p("save-observation")}],afterFileEdit:[{command:p("save-file-edit")}],stop:[{command:p("session-summary")}]}};return(0,Mt.writeFileSync)(l,JSON.stringify(f,null,2)),console.log(` Created hooks.json (${r} mode)`),e==="project"&&await Ure(i,o),console.log(` +Installation complete! + +Hooks installed to: ${i}/hooks.json +Scripts installed to: ${a} + +Next steps: + 1. Start claude-mem worker: claude-mem start + 2. Restart Cursor to load the hooks + 3. Check Cursor Settings \u2192 Hooks tab to verify + +Context Injection: + Context from past sessions is stored in .cursor/rules/claude-mem-context.mdc + and automatically included in every chat. It updates after each session ends. +`),0}catch(s){return console.error(` +Installation failed: ${s.message}`),e==="enterprise"&&console.error(" Tip: Enterprise installation may require sudo/admin privileges"),1}}async function Ure(t,e){let r=ct.default.join(t,"rules");(0,Mt.mkdirSync)(r,{recursive:!0});let n=Ln(),i=ct.default.basename(e),a=!1;console.log(" Generating initial context...");try{if((await fetch(`http://127.0.0.1:${n}/api/readiness`)).ok){let s=await fetch(`http://127.0.0.1:${n}/api/context/inject?project=${encodeURIComponent(i)}`);if(s.ok){let c=await s.text();c&&c.trim()&&(Gw(e,c),a=!0,console.log(" Generated initial context from existing memory"))}}}catch(o){k.debug("CURSOR","Worker not running during install",{},o)}if(!a){let o=ct.default.join(r,"claude-mem-context.mdc");(0,Mt.writeFileSync)(o,`--- +alwaysApply: true +description: "Claude-mem context from past sessions (auto-updated)" +--- + +# Memory Context from Past Sessions + +*No context yet. Complete your first session and context will appear here.* + +Use claude-mem's MCP search tools for manual memory queries. +`),console.log(" Created placeholder context file (will populate after first session)")}Dre(i,e),console.log(" Registered for auto-context updates")}function qre(t){console.log(` +Uninstalling Claude-Mem Cursor hooks (${t} level)... +`);let e=u4(t);if(!e)return console.error(`Invalid target: ${t}`),1;try{let r=ct.default.join(e,"hooks"),n=ct.default.join(e,"hooks.json"),i=["common.sh","session-init.sh","context-inject.sh","save-observation.sh","save-file-edit.sh","session-summary.sh"],a=["common.ps1","session-init.ps1","context-inject.ps1","save-observation.ps1","save-file-edit.ps1","session-summary.ps1"],o=[...i,...a];for(let s of o){let c=ct.default.join(r,s);(0,Mt.existsSync)(c)&&((0,Mt.unlinkSync)(c),console.log(` Removed ${s}`))}if((0,Mt.existsSync)(n)&&((0,Mt.unlinkSync)(n),console.log(" Removed hooks.json")),t==="project"){let s=ct.default.join(e,"rules","claude-mem-context.mdc");(0,Mt.existsSync)(s)&&((0,Mt.unlinkSync)(s),console.log(" Removed context file"));let c=ct.default.basename(process.cwd());zre(c),console.log(" Unregistered from auto-context updates")}return console.log(` +Uninstallation complete! +`),console.log("Restart Cursor to apply changes."),0}catch(r){return console.error(` +Uninstallation failed: ${r.message}`),1}}function Lre(){console.log(` +Claude-Mem Cursor Hooks Status +`);let t=[{name:"Project",dir:ct.default.join(process.cwd(),".cursor")},{name:"User",dir:ct.default.join((0,Yl.homedir)(),".cursor")}];process.platform==="darwin"?t.push({name:"Enterprise",dir:"/Library/Application Support/Cursor"}):process.platform==="linux"&&t.push({name:"Enterprise",dir:"/etc/cursor"});let e=!1;for(let r of t){let n=ct.default.join(r.dir,"hooks.json"),i=ct.default.join(r.dir,"hooks");if((0,Mt.existsSync)(n)){e=!0,console.log(`${r.name}: Installed`),console.log(` Config: ${n}`);let a=["session-init.sh","context-inject.sh","save-observation.sh"],o=["session-init.ps1","context-inject.ps1","save-observation.ps1"],s=a.some(p=>(0,Mt.existsSync)(ct.default.join(i,p))),c=o.some(p=>(0,Mt.existsSync)(ct.default.join(i,p)));console.log(s&&c?" Platform: Both (bash + PowerShell)":s?" Platform: Unix (bash)":c?" Platform: Windows (PowerShell)":" No hook scripts found");let u=Ww(),d=(u==="windows"?o:a).filter(p=>!(0,Mt.existsSync)(ct.default.join(i,p)));if(d.length>0?console.log(` Missing ${u} scripts: ${d.join(", ")}`):console.log(` Scripts: All present for ${u}`),r.name==="Project"){let p=ct.default.join(r.dir,"rules","claude-mem-context.mdc");(0,Mt.existsSync)(p)?console.log(" Context: Active"):console.log(" Context: Not yet generated (will be created on first prompt)")}}else console.log(`${r.name}: Not installed`);console.log("")}return e||console.log(`No hooks installed. Run: claude-mem cursor install +`),0}async function d4(t,e){switch(t){case"install":{let r=e[0]||"project",n=c4();return n?l4(n,r):(console.error("Could not find cursor-hooks directory"),console.error(" Expected at: ~/.claude/plugins/marketplaces/thedotmack/cursor-hooks/"),1)}case"uninstall":{let r=e[0]||"project";return qre(r)}case"status":return Lre();case"setup":return console.log("Use the main entry point for setup"),0;default:return console.log(` +Claude-Mem Cursor Integration + +Usage: claude-mem cursor [options] + +Commands: + setup Interactive guided setup (recommended for first-time users) + + install [target] Install Cursor hooks + target: project (default), user, or enterprise + + uninstall [target] Remove Cursor hooks + target: project (default), user, or enterprise + + status Check installation status + +Examples: + npm run cursor:setup # Interactive wizard (recommended) + npm run cursor:install # Install for current project + claude-mem cursor install user # Install globally for user + claude-mem cursor uninstall # Remove from current project + claude-mem cursor status # Check if hooks are installed + +For more info: https://docs.claude-mem.ai/cursor + `),0}}dh();var f4=require("bun:sqlite");cn();Ne();var ph=class{db;constructor(e){e||(Vr(Nr),e=Jl),this.db=new f4.Database(e),this.db.run("PRAGMA journal_mode = WAL"),this.ensureFTSTables()}ensureFTSTables(){this.db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name LIKE '%_fts'").all().some(n=>n.name==="observations_fts"||n.name==="session_summaries_fts")||(k.info("DB","Creating FTS5 tables"),this.db.run(` CREATE VIRTUAL TABLE IF NOT EXISTS observations_fts USING fts5( title, subtitle, @@ -749,56 +841,56 @@ ${e} INSERT INTO session_summaries_fts(rowid, request, investigated, learned, completed, next_steps, notes) VALUES (new.id, new.request, new.investigated, new.learned, new.completed, new.next_steps, new.notes); END; - `),P.info("DB","FTS5 tables created successfully"))}buildFilterClause(e,r,a="o"){let n=[];if(e.project&&(n.push(`${a}.project = ?`),r.push(e.project)),e.type)if(Array.isArray(e.type)){let s=e.type.map(()=>"?").join(",");n.push(`${a}.type IN (${s})`),r.push(...e.type)}else n.push(`${a}.type = ?`),r.push(e.type);if(e.dateRange){let{start:s,end:i}=e.dateRange;if(s){let o=typeof s=="number"?s:new Date(s).getTime();n.push(`${a}.created_at_epoch >= ?`),r.push(o)}if(i){let o=typeof i=="number"?i:new Date(i).getTime();n.push(`${a}.created_at_epoch <= ?`),r.push(o)}}if(e.concepts){let s=Array.isArray(e.concepts)?e.concepts:[e.concepts],i=s.map(()=>`EXISTS (SELECT 1 FROM json_each(${a}.concepts) WHERE value = ?)`);i.length>0&&(n.push(`(${i.join(" OR ")})`),r.push(...s))}if(e.files){let s=Array.isArray(e.files)?e.files:[e.files],i=s.map(()=>`( - EXISTS (SELECT 1 FROM json_each(${a}.files_read) WHERE value LIKE ?) - OR EXISTS (SELECT 1 FROM json_each(${a}.files_modified) WHERE value LIKE ?) - )`);i.length>0&&(n.push(`(${i.join(" OR ")})`),s.forEach(o=>{r.push(`%${o}%`,`%${o}%`)}))}return n.length>0?n.join(" AND "):""}buildOrderClause(e="relevance",r=!0,a="observations_fts"){switch(e){case"relevance":return r?`ORDER BY ${a}.rank ASC`:"ORDER BY o.created_at_epoch DESC";case"date_desc":return"ORDER BY o.created_at_epoch DESC";case"date_asc":return"ORDER BY o.created_at_epoch ASC";default:return"ORDER BY o.created_at_epoch DESC"}}searchObservations(e,r={}){let a=[],{limit:n=50,offset:s=0,orderBy:i="relevance",...o}=r;if(!e){let c=this.buildFilterClause(o,a,"o");if(!c)throw new Error("Either query or filters required for search");let u=this.buildOrderClause(i,!1),l=` + `),k.info("DB","FTS5 tables created successfully"))}buildFilterClause(e,r,n="o"){let i=[];if(e.project&&(i.push(`${n}.project = ?`),r.push(e.project)),e.type)if(Array.isArray(e.type)){let a=e.type.map(()=>"?").join(",");i.push(`${n}.type IN (${a})`),r.push(...e.type)}else i.push(`${n}.type = ?`),r.push(e.type);if(e.dateRange){let{start:a,end:o}=e.dateRange;if(a){let s=typeof a=="number"?a:new Date(a).getTime();i.push(`${n}.created_at_epoch >= ?`),r.push(s)}if(o){let s=typeof o=="number"?o:new Date(o).getTime();i.push(`${n}.created_at_epoch <= ?`),r.push(s)}}if(e.concepts){let a=Array.isArray(e.concepts)?e.concepts:[e.concepts],o=a.map(()=>`EXISTS (SELECT 1 FROM json_each(${n}.concepts) WHERE value = ?)`);o.length>0&&(i.push(`(${o.join(" OR ")})`),r.push(...a))}if(e.files){let a=Array.isArray(e.files)?e.files:[e.files],o=a.map(()=>`( + EXISTS (SELECT 1 FROM json_each(${n}.files_read) WHERE value LIKE ?) + OR EXISTS (SELECT 1 FROM json_each(${n}.files_modified) WHERE value LIKE ?) + )`);o.length>0&&(i.push(`(${o.join(" OR ")})`),a.forEach(s=>{r.push(`%${s}%`,`%${s}%`)}))}return i.length>0?i.join(" AND "):""}buildOrderClause(e="relevance",r=!0,n="observations_fts"){switch(e){case"relevance":return r?`ORDER BY ${n}.rank ASC`:"ORDER BY o.created_at_epoch DESC";case"date_desc":return"ORDER BY o.created_at_epoch DESC";case"date_asc":return"ORDER BY o.created_at_epoch ASC";default:return"ORDER BY o.created_at_epoch DESC"}}searchObservations(e,r={}){let n=[],{limit:i=50,offset:a=0,orderBy:o="relevance",...s}=r;if(!e){let c=this.buildFilterClause(s,n,"o");if(!c)throw new Error("Either query or filters required for search");let u=this.buildOrderClause(o,!1),l=` SELECT o.*, o.discovery_tokens FROM observations o WHERE ${c} ${u} LIMIT ? OFFSET ? - `;return a.push(n,s),this.db.prepare(l).all(...a)}return P.warn("DB","Text search not supported - use ChromaDB for vector search"),[]}searchSessions(e,r={}){let a=[],{limit:n=50,offset:s=0,orderBy:i="relevance",...o}=r;if(!e){let c={...o};delete c.type;let u=this.buildFilterClause(c,a,"s");if(!u)throw new Error("Either query or filters required for search");let d=` + `;return n.push(i,a),this.db.prepare(l).all(...n)}return k.warn("DB","Text search not supported - use ChromaDB for vector search"),[]}searchSessions(e,r={}){let n=[],{limit:i=50,offset:a=0,orderBy:o="relevance",...s}=r;if(!e){let c={...s};delete c.type;let u=this.buildFilterClause(c,n,"s");if(!u)throw new Error("Either query or filters required for search");let d=` SELECT s.*, s.discovery_tokens FROM session_summaries s WHERE ${u} - ${i==="date_asc"?"ORDER BY s.created_at_epoch ASC":"ORDER BY s.created_at_epoch DESC"} + ${o==="date_asc"?"ORDER BY s.created_at_epoch ASC":"ORDER BY s.created_at_epoch DESC"} LIMIT ? OFFSET ? - `;return a.push(n,s),this.db.prepare(d).all(...a)}return P.warn("DB","Text search not supported - use ChromaDB for vector search"),[]}findByConcept(e,r={}){let a=[],{limit:n=50,offset:s=0,orderBy:i="date_desc",...o}=r,c={...o,concepts:e},u=this.buildFilterClause(c,a,"o"),l=this.buildOrderClause(i,!1),d=` + `;return n.push(i,a),this.db.prepare(d).all(...n)}return k.warn("DB","Text search not supported - use ChromaDB for vector search"),[]}findByConcept(e,r={}){let n=[],{limit:i=50,offset:a=0,orderBy:o="date_desc",...s}=r,c={...s,concepts:e},u=this.buildFilterClause(c,n,"o"),l=this.buildOrderClause(o,!1),d=` SELECT o.*, o.discovery_tokens FROM observations o WHERE ${u} ${l} LIMIT ? OFFSET ? - `;return a.push(n,s),this.db.prepare(d).all(...a)}findByFile(e,r={}){let a=[],{limit:n=50,offset:s=0,orderBy:i="date_desc",...o}=r,c={...o,files:e},u=this.buildFilterClause(c,a,"o"),l=this.buildOrderClause(i,!1),d=` + `;return n.push(i,a),this.db.prepare(d).all(...n)}findByFile(e,r={}){let n=[],{limit:i=50,offset:a=0,orderBy:o="date_desc",...s}=r,c={...s,files:e},u=this.buildFilterClause(c,n,"o"),l=this.buildOrderClause(o,!1),d=` SELECT o.*, o.discovery_tokens FROM observations o WHERE ${u} ${l} LIMIT ? OFFSET ? - `;a.push(n,s);let p=this.db.prepare(d).all(...a),f=[],v={...o};delete v.type;let _=[];if(v.project&&(_.push("s.project = ?"),f.push(v.project)),v.dateRange){let{start:y,end:g}=v.dateRange;if(y){let b=typeof y=="number"?y:new Date(y).getTime();_.push("s.created_at_epoch >= ?"),f.push(b)}if(g){let b=typeof g=="number"?g:new Date(g).getTime();_.push("s.created_at_epoch <= ?"),f.push(b)}}_.push(`( + `;n.push(i,a);let p=this.db.prepare(d).all(...n),f=[],h={...s};delete h.type;let _=[];if(h.project&&(_.push("s.project = ?"),f.push(h.project)),h.dateRange){let{start:v,end:g}=h.dateRange;if(v){let b=typeof v=="number"?v:new Date(v).getTime();_.push("s.created_at_epoch >= ?"),f.push(b)}if(g){let b=typeof g=="number"?g:new Date(g).getTime();_.push("s.created_at_epoch <= ?"),f.push(b)}}_.push(`( EXISTS (SELECT 1 FROM json_each(s.files_read) WHERE value LIKE ?) OR EXISTS (SELECT 1 FROM json_each(s.files_edited) WHERE value LIKE ?) - )`),f.push(`%${e}%`,`%${e}%`);let m=` + )`),f.push(`%${e}%`,`%${e}%`);let y=` SELECT s.*, s.discovery_tokens FROM session_summaries s WHERE ${_.join(" AND ")} ORDER BY s.created_at_epoch DESC LIMIT ? OFFSET ? - `;f.push(n,s);let h=this.db.prepare(m).all(...f);return{observations:p,sessions:h}}findByType(e,r={}){let a=[],{limit:n=50,offset:s=0,orderBy:i="date_desc",...o}=r,c={...o,type:e},u=this.buildFilterClause(c,a,"o"),l=this.buildOrderClause(i,!1),d=` + `;f.push(i,a);let m=this.db.prepare(y).all(...f);return{observations:p,sessions:m}}findByType(e,r={}){let n=[],{limit:i=50,offset:a=0,orderBy:o="date_desc",...s}=r,c={...s,type:e},u=this.buildFilterClause(c,n,"o"),l=this.buildOrderClause(o,!1),d=` SELECT o.*, o.discovery_tokens FROM observations o WHERE ${u} ${l} LIMIT ? OFFSET ? - `;return a.push(n,s),this.db.prepare(d).all(...a)}searchUserPrompts(e,r={}){let a=[],{limit:n=20,offset:s=0,orderBy:i="relevance",...o}=r,c=[];if(o.project&&(c.push("s.project = ?"),a.push(o.project)),o.dateRange){let{start:u,end:l}=o.dateRange;if(u){let d=typeof u=="number"?u:new Date(u).getTime();c.push("up.created_at_epoch >= ?"),a.push(d)}if(l){let d=typeof l=="number"?l:new Date(l).getTime();c.push("up.created_at_epoch <= ?"),a.push(d)}}if(!e){if(c.length===0)throw new Error("Either query or filters required for search");let d=` + `;return n.push(i,a),this.db.prepare(d).all(...n)}searchUserPrompts(e,r={}){let n=[],{limit:i=20,offset:a=0,orderBy:o="relevance",...s}=r,c=[];if(s.project&&(c.push("s.project = ?"),n.push(s.project)),s.dateRange){let{start:u,end:l}=s.dateRange;if(u){let d=typeof u=="number"?u:new Date(u).getTime();c.push("up.created_at_epoch >= ?"),n.push(d)}if(l){let d=typeof l=="number"?l:new Date(l).getTime();c.push("up.created_at_epoch <= ?"),n.push(d)}}if(!e){if(c.length===0)throw new Error("Either query or filters required for search");let d=` SELECT up.* FROM user_prompts up JOIN sdk_sessions s ON up.content_session_id = s.content_session_id ${`WHERE ${c.join(" AND ")}`} - ${i==="date_asc"?"ORDER BY up.created_at_epoch ASC":"ORDER BY up.created_at_epoch DESC"} + ${o==="date_asc"?"ORDER BY up.created_at_epoch ASC":"ORDER BY up.created_at_epoch DESC"} LIMIT ? OFFSET ? - `;return a.push(n,s),this.db.prepare(d).all(...a)}return P.warn("DB","Text search not supported - use ChromaDB for vector search"),[]}getUserPromptsBySession(e){return this.db.prepare(` + `;return n.push(i,a),this.db.prepare(d).all(...n)}return k.warn("DB","Text search not supported - use ChromaDB for vector search"),[]}getUserPromptsBySession(e){return this.db.prepare(` SELECT id, content_session_id, @@ -809,37 +901,37 @@ ${e} FROM user_prompts WHERE content_session_id = ? ORDER BY prompt_number ASC - `).all(e)}close(){this.db.close()}};el();Ke();hr();vr();var z1=xt(require("path"),1),H1=xt(require("os"),1),rl=class{client=null;transport=null;connected=!1;project;collectionName;VECTOR_DB_DIR;BATCH_SIZE=100;constructor(e){this.project=e,this.collectionName=`cm__${e}`,this.VECTOR_DB_DIR=z1.default.join(H1.default.homedir(),".claude-mem","vector-db")}async ensureConnection(){if(!(this.connected&&this.client)){P.info("CHROMA_SYNC","Connecting to Chroma MCP server...",{project:this.project});try{let r=Be.loadFromFile(Ar).CLAUDE_MEM_PYTHON_VERSION,a=process.platform==="win32",n={command:"uvx",args:["--python",r,"chroma-mcp","--client-type","persistent","--data-dir",this.VECTOR_DB_DIR],stderr:"ignore"};a&&(n.windowsHide=!0,P.debug("CHROMA_SYNC","Windows detected, attempting to hide console window",{project:this.project})),this.transport=new Ws(n),this.client=new Vs({name:"claude-mem-chroma-sync",version:"1.0.0"},{capabilities:{}}),await this.client.connect(this.transport),this.connected=!0,P.info("CHROMA_SYNC","Connected to Chroma MCP server",{project:this.project})}catch(e){throw P.error("CHROMA_SYNC","Failed to connect to Chroma MCP server",{project:this.project},e),new Error(`Chroma connection failed: ${e instanceof Error?e.message:String(e)}`)}}}async ensureCollection(){if(await this.ensureConnection(),!this.client)throw new Error(`Chroma client not initialized. Call ensureConnection() before using client methods. Project: ${this.project}`);try{await this.client.callTool({name:"chroma_get_collection_info",arguments:{collection_name:this.collectionName}}),P.debug("CHROMA_SYNC","Collection exists",{collection:this.collectionName})}catch(e){P.warn("CHROMA_SYNC","Collection check failed, attempting to create",{collection:this.collectionName},e),P.info("CHROMA_SYNC","Creating collection",{collection:this.collectionName});try{await this.client.callTool({name:"chroma_create_collection",arguments:{collection_name:this.collectionName,embedding_function_name:"default"}}),P.info("CHROMA_SYNC","Collection created",{collection:this.collectionName})}catch(r){throw P.error("CHROMA_SYNC","Failed to create collection",{collection:this.collectionName},r),new Error(`Collection creation failed: ${r instanceof Error?r.message:String(r)}`)}}}formatObservationDocs(e){let r=[],a=e.facts?JSON.parse(e.facts):[],n=e.concepts?JSON.parse(e.concepts):[],s=e.files_read?JSON.parse(e.files_read):[],i=e.files_modified?JSON.parse(e.files_modified):[],o={sqlite_id:e.id,doc_type:"observation",memory_session_id:e.memory_session_id,project:e.project,created_at_epoch:e.created_at_epoch,type:e.type||"discovery",title:e.title||"Untitled"};return e.subtitle&&(o.subtitle=e.subtitle),n.length>0&&(o.concepts=n.join(",")),s.length>0&&(o.files_read=s.join(",")),i.length>0&&(o.files_modified=i.join(",")),e.narrative&&r.push({id:`obs_${e.id}_narrative`,document:e.narrative,metadata:{...o,field_type:"narrative"}}),e.text&&r.push({id:`obs_${e.id}_text`,document:e.text,metadata:{...o,field_type:"text"}}),a.forEach((c,u)=>{r.push({id:`obs_${e.id}_fact_${u}`,document:c,metadata:{...o,field_type:"fact",fact_index:u}})}),r}formatSummaryDocs(e){let r=[],a={sqlite_id:e.id,doc_type:"session_summary",memory_session_id:e.memory_session_id,project:e.project,created_at_epoch:e.created_at_epoch,prompt_number:e.prompt_number||0};return e.request&&r.push({id:`summary_${e.id}_request`,document:e.request,metadata:{...a,field_type:"request"}}),e.investigated&&r.push({id:`summary_${e.id}_investigated`,document:e.investigated,metadata:{...a,field_type:"investigated"}}),e.learned&&r.push({id:`summary_${e.id}_learned`,document:e.learned,metadata:{...a,field_type:"learned"}}),e.completed&&r.push({id:`summary_${e.id}_completed`,document:e.completed,metadata:{...a,field_type:"completed"}}),e.next_steps&&r.push({id:`summary_${e.id}_next_steps`,document:e.next_steps,metadata:{...a,field_type:"next_steps"}}),e.notes&&r.push({id:`summary_${e.id}_notes`,document:e.notes,metadata:{...a,field_type:"notes"}}),r}async addDocuments(e){if(e.length!==0){if(await this.ensureCollection(),!this.client)throw new Error(`Chroma client not initialized. Call ensureConnection() before using client methods. Project: ${this.project}`);try{await this.client.callTool({name:"chroma_add_documents",arguments:{collection_name:this.collectionName,documents:e.map(r=>r.document),ids:e.map(r=>r.id),metadatas:e.map(r=>r.metadata)}}),P.debug("CHROMA_SYNC","Documents added",{collection:this.collectionName,count:e.length})}catch(r){throw P.error("CHROMA_SYNC","Failed to add documents",{collection:this.collectionName,count:e.length},r),new Error(`Document add failed: ${r instanceof Error?r.message:String(r)}`)}}}async syncObservation(e,r,a,n,s,i,o=0){let c={id:e,memory_session_id:r,project:a,text:null,type:n.type,title:n.title,subtitle:n.subtitle,facts:JSON.stringify(n.facts),narrative:n.narrative,concepts:JSON.stringify(n.concepts),files_read:JSON.stringify(n.files_read),files_modified:JSON.stringify(n.files_modified),prompt_number:s,discovery_tokens:o,created_at:new Date(i*1e3).toISOString(),created_at_epoch:i},u=this.formatObservationDocs(c);P.info("CHROMA_SYNC","Syncing observation",{observationId:e,documentCount:u.length,project:a}),await this.addDocuments(u)}async syncSummary(e,r,a,n,s,i,o=0){let c={id:e,memory_session_id:r,project:a,request:n.request,investigated:n.investigated,learned:n.learned,completed:n.completed,next_steps:n.next_steps,notes:n.notes,prompt_number:s,discovery_tokens:o,created_at:new Date(i*1e3).toISOString(),created_at_epoch:i},u=this.formatSummaryDocs(c);P.info("CHROMA_SYNC","Syncing summary",{summaryId:e,documentCount:u.length,project:a}),await this.addDocuments(u)}formatUserPromptDoc(e){return{id:`prompt_${e.id}`,document:e.prompt_text,metadata:{sqlite_id:e.id,doc_type:"user_prompt",memory_session_id:e.memory_session_id,project:e.project,created_at_epoch:e.created_at_epoch,prompt_number:e.prompt_number}}}async syncUserPrompt(e,r,a,n,s,i){let o={id:e,content_session_id:"",prompt_number:s,prompt_text:n,created_at:new Date(i*1e3).toISOString(),created_at_epoch:i,memory_session_id:r,project:a},c=this.formatUserPromptDoc(o);P.info("CHROMA_SYNC","Syncing user prompt",{promptId:e,project:a}),await this.addDocuments([c])}async getExistingChromaIds(){if(await this.ensureConnection(),!this.client)throw new Error(`Chroma client not initialized. Call ensureConnection() before using client methods. Project: ${this.project}`);let e=new Set,r=new Set,a=new Set,n=0,s=1e3;for(P.info("CHROMA_SYNC","Fetching existing Chroma document IDs...",{project:this.project});;)try{let o=(await this.client.callTool({name:"chroma_get_documents",arguments:{collection_name:this.collectionName,limit:s,offset:n,where:{project:this.project},include:["metadatas"]}})).content[0];if(o.type!=="text")throw new Error("Unexpected response type from chroma_get_documents");let u=JSON.parse(o.text).metadatas||[];if(u.length===0)break;for(let l of u)l.sqlite_id&&(l.doc_type==="observation"?e.add(l.sqlite_id):l.doc_type==="session_summary"?r.add(l.sqlite_id):l.doc_type==="user_prompt"&&a.add(l.sqlite_id));n+=s,P.debug("CHROMA_SYNC","Fetched batch of existing IDs",{project:this.project,offset:n,batchSize:u.length})}catch(i){throw P.error("CHROMA_SYNC","Failed to fetch existing IDs",{project:this.project},i),i}return P.info("CHROMA_SYNC","Existing IDs fetched",{project:this.project,observations:e.size,summaries:r.size,prompts:a.size}),{observations:e,summaries:r,prompts:a}}async ensureBackfilled(){P.info("CHROMA_SYNC","Starting smart backfill",{project:this.project}),await this.ensureCollection();let e=await this.getExistingChromaIds(),r=new Gn;try{let a=Array.from(e.observations),n=a.length>0?`AND id NOT IN (${a.join(",")})`:"",s=r.db.prepare(` + `).all(e)}close(){this.db.close()}};dh();Ne();on();cn();var m4=yt(require("path"),1),h4=yt(require("os"),1),fh=class{client=null;transport=null;connected=!1;project;collectionName;VECTOR_DB_DIR;BATCH_SIZE=100;constructor(e){this.project=e,this.collectionName=`cm__${e}`,this.VECTOR_DB_DIR=m4.default.join(h4.default.homedir(),".claude-mem","vector-db")}async ensureConnection(){if(!(this.connected&&this.client)){k.info("CHROMA_SYNC","Connecting to Chroma MCP server...",{project:this.project});try{let r=Ke.loadFromFile(wn).CLAUDE_MEM_PYTHON_VERSION,n=process.platform==="win32",i={command:"uvx",args:["--python",r,"chroma-mcp","--client-type","persistent","--data-dir",this.VECTOR_DB_DIR],stderr:"ignore"};n&&(i.windowsHide=!0,k.debug("CHROMA_SYNC","Windows detected, attempting to hide console window",{project:this.project})),this.transport=new vs(i),this.client=new ms({name:"claude-mem-chroma-sync",version:"1.0.0"},{capabilities:{}}),await this.client.connect(this.transport),this.connected=!0,k.info("CHROMA_SYNC","Connected to Chroma MCP server",{project:this.project})}catch(e){throw k.error("CHROMA_SYNC","Failed to connect to Chroma MCP server",{project:this.project},e),new Error(`Chroma connection failed: ${e instanceof Error?e.message:String(e)}`)}}}async ensureCollection(){if(await this.ensureConnection(),!this.client)throw new Error(`Chroma client not initialized. Call ensureConnection() before using client methods. Project: ${this.project}`);try{await this.client.callTool({name:"chroma_get_collection_info",arguments:{collection_name:this.collectionName}}),k.debug("CHROMA_SYNC","Collection exists",{collection:this.collectionName})}catch(e){k.warn("CHROMA_SYNC","Collection check failed, attempting to create",{collection:this.collectionName},e),k.info("CHROMA_SYNC","Creating collection",{collection:this.collectionName});try{await this.client.callTool({name:"chroma_create_collection",arguments:{collection_name:this.collectionName,embedding_function_name:"default"}}),k.info("CHROMA_SYNC","Collection created",{collection:this.collectionName})}catch(r){throw k.error("CHROMA_SYNC","Failed to create collection",{collection:this.collectionName},r),new Error(`Collection creation failed: ${r instanceof Error?r.message:String(r)}`)}}}formatObservationDocs(e){let r=[],n=e.facts?JSON.parse(e.facts):[],i=e.concepts?JSON.parse(e.concepts):[],a=e.files_read?JSON.parse(e.files_read):[],o=e.files_modified?JSON.parse(e.files_modified):[],s={sqlite_id:e.id,doc_type:"observation",memory_session_id:e.memory_session_id,project:e.project,created_at_epoch:e.created_at_epoch,type:e.type||"discovery",title:e.title||"Untitled"};return e.subtitle&&(s.subtitle=e.subtitle),i.length>0&&(s.concepts=i.join(",")),a.length>0&&(s.files_read=a.join(",")),o.length>0&&(s.files_modified=o.join(",")),e.narrative&&r.push({id:`obs_${e.id}_narrative`,document:e.narrative,metadata:{...s,field_type:"narrative"}}),e.text&&r.push({id:`obs_${e.id}_text`,document:e.text,metadata:{...s,field_type:"text"}}),n.forEach((c,u)=>{r.push({id:`obs_${e.id}_fact_${u}`,document:c,metadata:{...s,field_type:"fact",fact_index:u}})}),r}formatSummaryDocs(e){let r=[],n={sqlite_id:e.id,doc_type:"session_summary",memory_session_id:e.memory_session_id,project:e.project,created_at_epoch:e.created_at_epoch,prompt_number:e.prompt_number||0};return e.request&&r.push({id:`summary_${e.id}_request`,document:e.request,metadata:{...n,field_type:"request"}}),e.investigated&&r.push({id:`summary_${e.id}_investigated`,document:e.investigated,metadata:{...n,field_type:"investigated"}}),e.learned&&r.push({id:`summary_${e.id}_learned`,document:e.learned,metadata:{...n,field_type:"learned"}}),e.completed&&r.push({id:`summary_${e.id}_completed`,document:e.completed,metadata:{...n,field_type:"completed"}}),e.next_steps&&r.push({id:`summary_${e.id}_next_steps`,document:e.next_steps,metadata:{...n,field_type:"next_steps"}}),e.notes&&r.push({id:`summary_${e.id}_notes`,document:e.notes,metadata:{...n,field_type:"notes"}}),r}async addDocuments(e){if(e.length!==0){if(await this.ensureCollection(),!this.client)throw new Error(`Chroma client not initialized. Call ensureConnection() before using client methods. Project: ${this.project}`);try{await this.client.callTool({name:"chroma_add_documents",arguments:{collection_name:this.collectionName,documents:e.map(r=>r.document),ids:e.map(r=>r.id),metadatas:e.map(r=>r.metadata)}}),k.debug("CHROMA_SYNC","Documents added",{collection:this.collectionName,count:e.length})}catch(r){throw k.error("CHROMA_SYNC","Failed to add documents",{collection:this.collectionName,count:e.length},r),new Error(`Document add failed: ${r instanceof Error?r.message:String(r)}`)}}}async syncObservation(e,r,n,i,a,o,s=0){let c={id:e,memory_session_id:r,project:n,text:null,type:i.type,title:i.title,subtitle:i.subtitle,facts:JSON.stringify(i.facts),narrative:i.narrative,concepts:JSON.stringify(i.concepts),files_read:JSON.stringify(i.files_read),files_modified:JSON.stringify(i.files_modified),prompt_number:a,discovery_tokens:s,created_at:new Date(o*1e3).toISOString(),created_at_epoch:o},u=this.formatObservationDocs(c);k.info("CHROMA_SYNC","Syncing observation",{observationId:e,documentCount:u.length,project:n}),await this.addDocuments(u)}async syncSummary(e,r,n,i,a,o,s=0){let c={id:e,memory_session_id:r,project:n,request:i.request,investigated:i.investigated,learned:i.learned,completed:i.completed,next_steps:i.next_steps,notes:i.notes,prompt_number:a,discovery_tokens:s,created_at:new Date(o*1e3).toISOString(),created_at_epoch:o},u=this.formatSummaryDocs(c);k.info("CHROMA_SYNC","Syncing summary",{summaryId:e,documentCount:u.length,project:n}),await this.addDocuments(u)}formatUserPromptDoc(e){return{id:`prompt_${e.id}`,document:e.prompt_text,metadata:{sqlite_id:e.id,doc_type:"user_prompt",memory_session_id:e.memory_session_id,project:e.project,created_at_epoch:e.created_at_epoch,prompt_number:e.prompt_number}}}async syncUserPrompt(e,r,n,i,a,o){let s={id:e,content_session_id:"",prompt_number:a,prompt_text:i,created_at:new Date(o*1e3).toISOString(),created_at_epoch:o,memory_session_id:r,project:n},c=this.formatUserPromptDoc(s);k.info("CHROMA_SYNC","Syncing user prompt",{promptId:e,project:n}),await this.addDocuments([c])}async getExistingChromaIds(){if(await this.ensureConnection(),!this.client)throw new Error(`Chroma client not initialized. Call ensureConnection() before using client methods. Project: ${this.project}`);let e=new Set,r=new Set,n=new Set,i=0,a=1e3;for(k.info("CHROMA_SYNC","Fetching existing Chroma document IDs...",{project:this.project});;)try{let s=(await this.client.callTool({name:"chroma_get_documents",arguments:{collection_name:this.collectionName,limit:a,offset:i,where:{project:this.project},include:["metadatas"]}})).content[0];if(s.type!=="text")throw new Error("Unexpected response type from chroma_get_documents");let u=JSON.parse(s.text).metadatas||[];if(u.length===0)break;for(let l of u)l.sqlite_id&&(l.doc_type==="observation"?e.add(l.sqlite_id):l.doc_type==="session_summary"?r.add(l.sqlite_id):l.doc_type==="user_prompt"&&n.add(l.sqlite_id));i+=a,k.debug("CHROMA_SYNC","Fetched batch of existing IDs",{project:this.project,offset:i,batchSize:u.length})}catch(o){throw k.error("CHROMA_SYNC","Failed to fetch existing IDs",{project:this.project},o),o}return k.info("CHROMA_SYNC","Existing IDs fetched",{project:this.project,observations:e.size,summaries:r.size,prompts:n.size}),{observations:e,summaries:r,prompts:n}}async ensureBackfilled(){k.info("CHROMA_SYNC","Starting smart backfill",{project:this.project}),await this.ensureCollection();let e=await this.getExistingChromaIds(),r=new va;try{let n=Array.from(e.observations),i=n.length>0?`AND id NOT IN (${n.join(",")})`:"",a=r.db.prepare(` SELECT * FROM observations WHERE project = ? ${n} ORDER BY id ASC - `).all(this.project),i=r.db.prepare(` + `).all(this.project),o=r.db.prepare(` SELECT COUNT(*) as count FROM observations WHERE project = ? - `).get(this.project);P.info("CHROMA_SYNC","Backfilling observations",{project:this.project,missing:s.length,existing:e.observations.size,total:i.count});let o=[];for(let y of s)o.push(...this.formatObservationDocs(y));for(let y=0;y0?`AND id NOT IN (${c.join(",")})`:"",l=r.db.prepare(` + `).get(this.project);k.info("CHROMA_SYNC","Backfilling observations",{project:this.project,missing:a.length,existing:e.observations.size,total:o.count});let s=[];for(let v of a)s.push(...this.formatObservationDocs(v));for(let v=0;v0?`AND id NOT IN (${c.join(",")})`:"",l=r.db.prepare(` SELECT * FROM session_summaries WHERE project = ? ${u} ORDER BY id ASC `).all(this.project),d=r.db.prepare(` SELECT COUNT(*) as count FROM session_summaries WHERE project = ? - `).get(this.project);P.info("CHROMA_SYNC","Backfilling summaries",{project:this.project,missing:l.length,existing:e.summaries.size,total:d.count});let p=[];for(let y of l)p.push(...this.formatSummaryDocs(y));for(let y=0;y0?`AND up.id NOT IN (${f.join(",")})`:"",_=r.db.prepare(` + `).get(this.project);k.info("CHROMA_SYNC","Backfilling summaries",{project:this.project,missing:l.length,existing:e.summaries.size,total:d.count});let p=[];for(let v of l)p.push(...this.formatSummaryDocs(v));for(let v=0;v0?`AND up.id NOT IN (${f.join(",")})`:"",_=r.db.prepare(` SELECT up.*, s.project, s.memory_session_id FROM user_prompts up JOIN sdk_sessions s ON up.content_session_id = s.content_session_id - WHERE s.project = ? ${v} + WHERE s.project = ? ${h} ORDER BY up.id ASC - `).all(this.project),m=r.db.prepare(` + `).all(this.project),y=r.db.prepare(` SELECT COUNT(*) as count FROM user_prompts up JOIN sdk_sessions s ON up.content_session_id = s.content_session_id WHERE s.project = ? - `).get(this.project);P.info("CHROMA_SYNC","Backfilling user prompts",{project:this.project,missing:_.length,existing:e.prompts.size,total:m.count});let h=[];for(let y of _)h.push(this.formatUserPromptDoc(y));for(let y=0;ysetTimeout(n,1e3))}}toPendingMessageWithId(e){return{...this.store.toPendingMessage(e),_persistentId:e.id,_originalTimestamp:e.created_at_epoch}}waitForMessage(e){return new Promise(r=>{let a=()=>{s(),r()},n=()=>{s(),r()},s=()=>{this.events.off("message",a),e.removeEventListener("abort",n)};this.events.once("message",a),e.addEventListener("abort",n,{once:!0})})}};var sl=class{dbManager;sessions=new Map;sessionQueues=new Map;onSessionDeletedCallback;pendingStore=null;constructor(e){this.dbManager=e}getPendingStore(){if(!this.pendingStore){let e=this.dbManager.getSessionStore();this.pendingStore=new Io(e.db,3)}return this.pendingStore}setOnSessionDeleted(e){this.onSessionDeletedCallback=e}initializeSession(e,r,a){P.info("SESSION","initializeSession called",{sessionDbId:e,promptNumber:a,has_currentUserPrompt:!!r});let n=this.sessions.get(e);if(n){P.info("SESSION","Returning cached session",{sessionDbId:e,contentSessionId:n.contentSessionId,lastPromptNumber:n.lastPromptNumber});let c=this.dbManager.getSessionById(e);return c.project&&c.project!==n.project&&(P.debug("SESSION","Updating project from database",{sessionDbId:e,oldProject:n.project,newProject:c.project}),n.project=c.project),r?(P.debug("SESSION","Updating userPrompt for continuation",{sessionDbId:e,promptNumber:a,oldPrompt:n.userPrompt.substring(0,80),newPrompt:r.substring(0,80)}),n.userPrompt=r,n.lastPromptNumber=a||n.lastPromptNumber):P.debug("SESSION","No currentUserPrompt provided for existing session",{sessionDbId:e,promptNumber:a,usingCachedPrompt:n.userPrompt.substring(0,80)}),n}let s=this.dbManager.getSessionById(e);P.info("SESSION","Fetched session from database",{sessionDbId:e,content_session_id:s.content_session_id,memory_session_id:s.memory_session_id});let i=r||s.user_prompt;r?P.debug("SESSION","Initializing session with fresh userPrompt",{sessionDbId:e,promptNumber:a,userPrompt:r.substring(0,80)}):P.debug("SESSION","No currentUserPrompt provided for new session, using database",{sessionDbId:e,promptNumber:a,dbPrompt:s.user_prompt.substring(0,80)}),n={sessionDbId:e,contentSessionId:s.content_session_id,memorySessionId:s.memory_session_id||null,project:s.project,userPrompt:i,pendingMessages:[],abortController:new AbortController,generatorPromise:null,lastPromptNumber:a||this.dbManager.getSessionStore().getPromptNumberFromUserPrompts(s.content_session_id),startTime:Date.now(),cumulativeInputTokens:0,cumulativeOutputTokens:0,pendingProcessingIds:new Set,earliestPendingTimestamp:null,conversationHistory:[],currentProvider:null},P.info("SESSION","Creating new session object",{sessionDbId:e,contentSessionId:s.content_session_id,memorySessionId:s.memory_session_id||"(none - fresh session)",lastPromptNumber:a||this.dbManager.getSessionStore().getPromptNumberFromUserPrompts(s.content_session_id)}),this.sessions.set(e,n);let o=new B1.EventEmitter;return this.sessionQueues.set(e,o),P.info("SESSION","Session initialized",{sessionId:e,project:n.project,contentSessionId:n.contentSessionId,queueDepth:0,hasGenerator:!1}),n}getSession(e){return this.sessions.get(e)}queueObservation(e,r){let a=this.sessions.get(e);a||(a=this.initializeSession(e));let n={type:"observation",tool_name:r.tool_name,tool_input:r.tool_input,tool_response:r.tool_response,prompt_number:r.prompt_number,cwd:r.cwd};try{let o=this.getPendingStore().enqueue(e,a.contentSessionId,n);P.debug("SESSION","Observation persisted to DB",{sessionId:e,messageId:o,tool:r.tool_name})}catch(o){throw P.error("SESSION","Failed to persist observation to DB",{sessionId:e,tool:r.tool_name},o),o}this.sessionQueues.get(e)?.emit("message");let i=P.formatTool(r.tool_name,r.tool_input);P.info("SESSION","Observation queued",{sessionId:e,tool:i,hasGenerator:!!a.generatorPromise})}queueSummarize(e,r){let a=this.sessions.get(e);a||(a=this.initializeSession(e));let n={type:"summarize",last_assistant_message:r};try{let i=this.getPendingStore().enqueue(e,a.contentSessionId,n);P.debug("SESSION","Summarize persisted to DB",{sessionId:e,messageId:i})}catch(i){throw P.error("SESSION","Failed to persist summarize to DB",{sessionId:e},i),i}this.sessionQueues.get(e)?.emit("message"),P.info("SESSION","Summarize queued",{sessionId:e,hasGenerator:!!a.generatorPromise})}async deleteSession(e){let r=this.sessions.get(e);if(!r)return;let a=Date.now()-r.startTime;r.abortController.abort(),r.generatorPromise&&await r.generatorPromise.catch(n=>{P.debug("SYSTEM","Generator already failed, cleaning up",{sessionId:r.sessionDbId})}),this.sessions.delete(e),this.sessionQueues.delete(e),P.info("SESSION","Session deleted",{sessionId:e,duration:`${(a/1e3).toFixed(1)}s`,project:r.project}),this.onSessionDeletedCallback&&this.onSessionDeletedCallback()}async shutdownAll(){let e=Array.from(this.sessions.keys());await Promise.all(e.map(r=>this.deleteSession(r)))}hasPendingMessages(){return this.getPendingStore().hasAnyPendingWork()}getActiveSessionCount(){return this.sessions.size}getTotalQueueDepth(){let e=0;for(let r of this.sessions.values())e+=this.getPendingStore().getPendingCount(r.sessionDbId);return e}getTotalActiveWork(){return this.getTotalQueueDepth()}isAnySessionProcessing(){return this.getPendingStore().hasAnyPendingWork()}async*getMessageIterator(e){let r=this.sessions.get(e);r||(r=this.initializeSession(e));let a=this.sessionQueues.get(e);if(!a)throw new Error(`No emitter for session ${e}`);let n=new al(this.getPendingStore(),a);for await(let s of n.createIterator(e,r.abortController.signal))r.pendingProcessingIds.add(s._persistentId),r.earliestPendingTimestamp===null?r.earliestPendingTimestamp=s._originalTimestamp:r.earliestPendingTimestamp=Math.min(r.earliestPendingTimestamp,s._originalTimestamp),yield s}getPendingMessageStore(){return this.getPendingStore()}};Ke();var il=class{sseClients=new Set;addClient(e){this.sseClients.add(e),P.debug("WORKER","Client connected",{total:this.sseClients.size}),e.on("close",()=>{this.removeClient(e)}),this.sendToClient(e,{type:"connected",timestamp:Date.now()})}removeClient(e){this.sseClients.delete(e),P.debug("WORKER","Client disconnected",{total:this.sseClients.size})}broadcast(e){if(this.sseClients.size===0){P.debug("WORKER","SSE broadcast skipped (no clients)",{eventType:e.type});return}let r={...e,timestamp:Date.now()},a=`data: ${JSON.stringify(r)} + `).get(this.project);k.info("CHROMA_SYNC","Backfilling user prompts",{project:this.project,missing:_.length,existing:e.prompts.size,total:y.count});let m=[];for(let v of _)m.push(this.formatUserPromptDoc(v));for(let v=0;vsetTimeout(i,1e3))}}toPendingMessageWithId(e){return{...this.store.toPendingMessage(e),_persistentId:e.id,_originalTimestamp:e.created_at_epoch}}waitForMessage(e){return new Promise(r=>{let n=()=>{a(),r()},i=()=>{a(),r()},a=()=>{this.events.off("message",n),e.removeEventListener("abort",i)};this.events.once("message",n),e.addEventListener("abort",i,{once:!0})})}};var gh=class{dbManager;sessions=new Map;sessionQueues=new Map;onSessionDeletedCallback;pendingStore=null;constructor(e){this.dbManager=e}getPendingStore(){if(!this.pendingStore){let e=this.dbManager.getSessionStore();this.pendingStore=new Ql(e.db,3)}return this.pendingStore}setOnSessionDeleted(e){this.onSessionDeletedCallback=e}initializeSession(e,r,n){k.info("SESSION","initializeSession called",{sessionDbId:e,promptNumber:n,has_currentUserPrompt:!!r});let i=this.sessions.get(e);if(i){k.info("SESSION","Returning cached session",{sessionDbId:e,contentSessionId:i.contentSessionId,lastPromptNumber:i.lastPromptNumber});let c=this.dbManager.getSessionById(e);return c.project&&c.project!==i.project&&(k.debug("SESSION","Updating project from database",{sessionDbId:e,oldProject:i.project,newProject:c.project}),i.project=c.project),r?(k.debug("SESSION","Updating userPrompt for continuation",{sessionDbId:e,promptNumber:n,oldPrompt:i.userPrompt.substring(0,80),newPrompt:r.substring(0,80)}),i.userPrompt=r,i.lastPromptNumber=n||i.lastPromptNumber):k.debug("SESSION","No currentUserPrompt provided for existing session",{sessionDbId:e,promptNumber:n,usingCachedPrompt:i.userPrompt.substring(0,80)}),i}let a=this.dbManager.getSessionById(e);k.info("SESSION","Fetched session from database",{sessionDbId:e,content_session_id:a.content_session_id,memory_session_id:a.memory_session_id});let o=r||a.user_prompt;r?k.debug("SESSION","Initializing session with fresh userPrompt",{sessionDbId:e,promptNumber:n,userPrompt:r.substring(0,80)}):k.debug("SESSION","No currentUserPrompt provided for new session, using database",{sessionDbId:e,promptNumber:n,dbPrompt:a.user_prompt.substring(0,80)}),i={sessionDbId:e,contentSessionId:a.content_session_id,memorySessionId:a.memory_session_id||null,project:a.project,userPrompt:o,pendingMessages:[],abortController:new AbortController,generatorPromise:null,lastPromptNumber:n||this.dbManager.getSessionStore().getPromptNumberFromUserPrompts(a.content_session_id),startTime:Date.now(),cumulativeInputTokens:0,cumulativeOutputTokens:0,earliestPendingTimestamp:null,conversationHistory:[],currentProvider:null},k.info("SESSION","Creating new session object",{sessionDbId:e,contentSessionId:a.content_session_id,memorySessionId:a.memory_session_id||"(none - fresh session)",lastPromptNumber:n||this.dbManager.getSessionStore().getPromptNumberFromUserPrompts(a.content_session_id)}),this.sessions.set(e,i);let s=new g4.EventEmitter;return this.sessionQueues.set(e,s),k.info("SESSION","Session initialized",{sessionId:e,project:i.project,contentSessionId:i.contentSessionId,queueDepth:0,hasGenerator:!1}),i}getSession(e){return this.sessions.get(e)}queueObservation(e,r){let n=this.sessions.get(e);n||(n=this.initializeSession(e));let i={type:"observation",tool_name:r.tool_name,tool_input:r.tool_input,tool_response:r.tool_response,prompt_number:r.prompt_number,cwd:r.cwd};try{let s=this.getPendingStore().enqueue(e,n.contentSessionId,i);k.debug("SESSION","Observation persisted to DB",{sessionId:e,messageId:s,tool:r.tool_name})}catch(s){throw k.error("SESSION","Failed to persist observation to DB",{sessionId:e,tool:r.tool_name},s),s}this.sessionQueues.get(e)?.emit("message");let o=k.formatTool(r.tool_name,r.tool_input);k.info("SESSION","Observation queued",{sessionId:e,tool:o,hasGenerator:!!n.generatorPromise})}queueSummarize(e,r){let n=this.sessions.get(e);n||(n=this.initializeSession(e));let i={type:"summarize",last_assistant_message:r};try{let o=this.getPendingStore().enqueue(e,n.contentSessionId,i);k.debug("SESSION","Summarize persisted to DB",{sessionId:e,messageId:o})}catch(o){throw k.error("SESSION","Failed to persist summarize to DB",{sessionId:e},o),o}this.sessionQueues.get(e)?.emit("message"),k.info("SESSION","Summarize queued",{sessionId:e,hasGenerator:!!n.generatorPromise})}async deleteSession(e){let r=this.sessions.get(e);if(!r)return;let n=Date.now()-r.startTime;r.abortController.abort(),r.generatorPromise&&await r.generatorPromise.catch(i=>{k.debug("SYSTEM","Generator already failed, cleaning up",{sessionId:r.sessionDbId})}),this.sessions.delete(e),this.sessionQueues.delete(e),k.info("SESSION","Session deleted",{sessionId:e,duration:`${(n/1e3).toFixed(1)}s`,project:r.project}),this.onSessionDeletedCallback&&this.onSessionDeletedCallback()}async shutdownAll(){let e=Array.from(this.sessions.keys());await Promise.all(e.map(r=>this.deleteSession(r)))}hasPendingMessages(){return this.getPendingStore().hasAnyPendingWork()}getActiveSessionCount(){return this.sessions.size}getTotalQueueDepth(){let e=0;for(let r of this.sessions.values())e+=this.getPendingStore().getPendingCount(r.sessionDbId);return e}getTotalActiveWork(){return this.getTotalQueueDepth()}isAnySessionProcessing(){return this.getPendingStore().hasAnyPendingWork()}async*getMessageIterator(e){let r=this.sessions.get(e);r||(r=this.initializeSession(e));let n=this.sessionQueues.get(e);if(!n)throw new Error(`No emitter for session ${e}`);let i=new hh(this.getPendingStore(),n);for await(let a of i.createIterator(e,r.abortController.signal))r.earliestPendingTimestamp===null?r.earliestPendingTimestamp=a._originalTimestamp:r.earliestPendingTimestamp=Math.min(r.earliestPendingTimestamp,a._originalTimestamp),yield a}getPendingMessageStore(){return this.getPendingStore()}};Ne();var vh=class{sseClients=new Set;addClient(e){this.sseClients.add(e),k.debug("WORKER","Client connected",{total:this.sseClients.size}),e.on("close",()=>{this.removeClient(e)}),this.sendToClient(e,{type:"connected",timestamp:Date.now()})}removeClient(e){this.sseClients.delete(e),k.debug("WORKER","Client disconnected",{total:this.sseClients.size})}broadcast(e){if(this.sseClients.size===0){k.debug("WORKER","SSE broadcast skipped (no clients)",{eventType:e.type});return}let r={...e,timestamp:Date.now()},n=`data: ${JSON.stringify(r)} -`;P.debug("WORKER","SSE broadcast sent",{eventType:e.type,clients:this.sseClients.size});for(let n of this.sseClients)n.write(a)}getClientCount(){return this.sseClients.size}sendToClient(e,r){let a=`data: ${JSON.stringify(r)} +`;k.debug("WORKER","SSE broadcast sent",{eventType:e.type,clients:this.sseClients.size});for(let i of this.sseClients)i.write(n)}getClientCount(){return this.sseClients.size}sendToClient(e,r){let n=`data: ${JSON.stringify(r)} -`;e.write(a)}};var bR=require("child_process"),SR=require("os"),xR=xt(require("path"),1);Ke();Ke();ln();function Ys(t,e){let r=[],a=/([\s\S]*?)<\/observation>/g,n;for(;(n=a.exec(t))!==null;){let s=n[1],i=dn(s,"type"),o=dn(s,"title"),c=dn(s,"subtitle"),u=dn(s,"narrative"),l=cl(s,"facts","fact"),d=cl(s,"concepts","concept"),p=cl(s,"files_read","file"),f=cl(s,"files_modified","file"),_=dt.getInstance().getActiveMode().observation_types.map(g=>g.id),m=_[0],h=m;i?_.includes(i.trim())?h=i.trim():P.warn("PARSER",`Invalid observation type: ${i}, using "${m}"`,{correlationId:e}):P.warn("PARSER",`Observation missing type field, using "${m}"`,{correlationId:e});let y=d.filter(g=>g!==h);y.length!==d.length&&P.warn("PARSER","Removed observation type from concepts array",{correlationId:e,type:h,originalConcepts:d,cleanedConcepts:y}),r.push({type:h,title:o,subtitle:c,facts:l,narrative:u,concepts:y,files_read:p,files_modified:f})}return r}function Qs(t,e){let a=//.exec(t);if(a)return P.info("PARSER","Summary skipped",{sessionId:e,reason:a[1]}),null;let s=/([\s\S]*?)<\/summary>/.exec(t);if(!s)return null;let i=s[1],o=dn(i,"request"),c=dn(i,"investigated"),u=dn(i,"learned"),l=dn(i,"completed"),d=dn(i,"next_steps"),p=dn(i,"notes");return{request:o,investigated:c,learned:u,completed:l,next_steps:d,notes:p}}function dn(t,e){let a=new RegExp(`<${e}>([^<]*)`).exec(t);if(!a)return null;let n=a[1].trim();return n===""?null:n}function cl(t,e,r){let a=[],s=new RegExp(`<${e}>(.*?)`,"s").exec(t);if(!s)return a;let i=s[1],o=new RegExp(`<${r}>([^<]+)`,"g"),c;for(;(c=o.exec(i))!==null;)a.push(c[1].trim());return a}Ke();function ei(t,e,r,a){return`${a.prompts.system_identity} +`;e.write(n)}};var W6=require("child_process"),K6=require("os"),J6=yt(require("path"),1);Ne();Ne();function Ks(t,e,r,n){return`${n.prompts.system_identity} ${r} @@ -894,13 +986,13 @@ ${a.prompts.format_examples} ${a.prompts.footer} -${a.prompts.header_memory_start}`}function ti(t){let e,r;try{e=typeof t.tool_input=="string"?JSON.parse(t.tool_input):t.tool_input}catch(a){P.debug("SDK","Tool input is plain string, using as-is",{toolName:t.tool_name},a),e=t.tool_input}try{r=typeof t.tool_output=="string"?JSON.parse(t.tool_output):t.tool_output}catch(a){P.debug("SDK","Tool output is plain string, using as-is",{toolName:t.tool_name},a),r=t.tool_output}return` +${n.prompts.header_memory_start}`}function Js(t){let e,r;try{e=typeof t.tool_input=="string"?JSON.parse(t.tool_input):t.tool_input}catch(n){k.debug("SDK","Tool input is plain string, using as-is",{toolName:t.tool_name},n),e=t.tool_input}try{r=typeof t.tool_output=="string"?JSON.parse(t.tool_output):t.tool_output}catch(n){k.debug("SDK","Tool output is plain string, using as-is",{toolName:t.tool_name},n),r=t.tool_output}return` ${t.tool_name} ${new Date(t.created_at_epoch).toISOString()}${t.cwd?` ${t.cwd}`:""} ${JSON.stringify(e,null,2)} ${JSON.stringify(r,null,2)} -`}function ri(t,e){let r=t.last_assistant_message||P.happyPathError("SDK","Missing last_assistant_message in session for summary prompt",{sessionId:t.id},void 0,"");return`${e.prompts.header_summary_checkpoint} +`}function Xs(t,e){let r=t.last_assistant_message||k.happyPathError("SDK","Missing last_assistant_message in session for summary prompt",{sessionId:t.id},void 0,"");return`${e.prompts.header_summary_checkpoint} ${e.prompts.summary_instruction} ${e.prompts.summary_context_label} @@ -916,7 +1008,7 @@ ${e.prompts.summary_format_instruction} ${e.prompts.xml_summary_notes_placeholder} -${e.prompts.summary_footer}`}function ni(t,e,r,a){return`${a.prompts.continuation_greeting} +${e.prompts.summary_footer}`}function Ys(t,e,r,n){return`${n.prompts.continuation_greeting} ${t} @@ -975,32 +1067,32 @@ ${a.prompts.format_examples} ${a.prompts.footer} -${a.prompts.header_memory_continued}`}hr();vr();ln();var km=require("path"),DT=require("url"),LT=require("events"),FT=require("child_process"),UT=require("readline"),Te=xt(require("fs"),1),zT=require("fs/promises"),ZT=require("path"),WT=require("os"),Ba=require("path"),XT=require("process"),JT=require("fs"),YT=require("crypto"),rk=require("crypto"),Ei=require("fs"),Rm=require("path"),nk=require("crypto");var cV={},X9=Object.create,J9=Object.getPrototypeOf,Tm=Object.defineProperty,Y9=Object.getOwnPropertyNames,Q9=Object.prototype.hasOwnProperty,ET=(t,e,r)=>{r=t!=null?X9(J9(t)):{};let a=e||!t||!t.__esModule?Tm(r,"default",{value:t,enumerable:!0}):r;for(let n of Y9(t))Q9.call(a,n)||Tm(a,n,{get:()=>t[n],enumerable:!0});return a},Q=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),TT=(t,e)=>{for(var r in e)Tm(t,r,{get:e[r],enumerable:!0,configurable:!0,set:a=>e[r]=()=>a})};var ml=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.regexpCode=t.getEsmExportName=t.getProperty=t.safeStringify=t.stringify=t.strConcat=t.addCodeArg=t.str=t._=t.nil=t._Code=t.Name=t.IDENTIFIER=t._CodeOrName=void 0;class e{}t._CodeOrName=e,t.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class r extends e{constructor(y){if(super(),!t.IDENTIFIER.test(y))throw new Error("CodeGen: name must be a valid identifier");this.str=y}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}t.Name=r;class a extends e{constructor(y){super(),this._items=typeof y=="string"?[y]:y}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let y=this._items[0];return y===""||y==='""'}get str(){var y;return(y=this._str)!==null&&y!==void 0?y:this._str=this._items.reduce((g,b)=>`${g}${b}`,"")}get names(){var y;return(y=this._names)!==null&&y!==void 0?y:this._names=this._items.reduce((g,b)=>(b instanceof r&&(g[b.str]=(g[b.str]||0)+1),g),{})}}t._Code=a,t.nil=new a("");function n(h,...y){let g=[h[0]],b=0;for(;b{Object.defineProperty(t,"__esModule",{value:!0}),t.ValueScope=t.ValueScopeName=t.Scope=t.varKinds=t.UsedValueState=void 0;var e=ml();class r extends Error{constructor(u){super(`CodeGen: "code" for ${u} not defined`),this.value=u.value}}var a;(function(c){c[c.Started=0]="Started",c[c.Completed=1]="Completed"})(a||(t.UsedValueState=a={})),t.varKinds={const:new e.Name("const"),let:new e.Name("let"),var:new e.Name("var")};class n{constructor({prefixes:u,parent:l}={}){this._names={},this._prefixes=u,this._parent=l}toName(u){return u instanceof e.Name?u:this.name(u)}name(u){return new e.Name(this._newName(u))}_newName(u){let l=this._names[u]||this._nameGroup(u);return`${u}${l.index++}`}_nameGroup(u){var l,d;if(!((d=(l=this._parent)===null||l===void 0?void 0:l._prefixes)===null||d===void 0)&&d.has(u)||this._prefixes&&!this._prefixes.has(u))throw new Error(`CodeGen: prefix "${u}" is not allowed in this scope`);return this._names[u]={prefix:u,index:0}}}t.Scope=n;class s extends e.Name{constructor(u,l){super(l),this.prefix=u}setValue(u,{property:l,itemIndex:d}){this.value=u,this.scopePath=(0,e._)`.${new e.Name(l)}[${d}]`}}t.ValueScopeName=s;var i=(0,e._)`\n`;class o extends n{constructor(u){super(u),this._values={},this._scope=u.scope,this.opts={...u,_n:u.lines?i:e.nil}}get(){return this._scope}name(u){return new s(u,this._newName(u))}value(u,l){var d;if(l.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let p=this.toName(u),{prefix:f}=p,v=(d=l.key)!==null&&d!==void 0?d:l.ref,_=this._values[f];if(_){let y=_.get(v);if(y)return y}else _=this._values[f]=new Map;_.set(v,p);let m=this._scope[f]||(this._scope[f]=[]),h=m.length;return m[h]=l.ref,p.setValue(l,{property:f,itemIndex:h}),p}getValue(u,l){let d=this._values[u];if(d)return d.get(l)}scopeRefs(u,l=this._values){return this._reduceValues(l,d=>{if(d.scopePath===void 0)throw new Error(`CodeGen: name "${d}" has no value`);return(0,e._)`${u}${d.scopePath}`})}scopeCode(u=this._values,l,d){return this._reduceValues(u,p=>{if(p.value===void 0)throw new Error(`CodeGen: name "${p}" has no value`);return p.value.code},l,d)}_reduceValues(u,l,d={},p){let f=e.nil;for(let v in u){let _=u[v];if(!_)continue;let m=d[v]=d[v]||new Map;_.forEach(h=>{if(m.has(h))return;m.set(h,a.Started);let y=l(h);if(y){let g=this.opts.es5?t.varKinds.var:t.varKinds.const;f=(0,e._)`${f}${g} ${h} = ${y};${this.opts._n}`}else if(y=p?.(h))f=(0,e._)`${f}${y}${this.opts._n}`;else throw new r(h);m.set(h,a.Completed)})}return f}}t.ValueScope=o}),Ze=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.or=t.and=t.not=t.CodeGen=t.operators=t.varKinds=t.ValueScopeName=t.ValueScope=t.Scope=t.Name=t.regexpCode=t.stringify=t.getProperty=t.nil=t.strConcat=t.str=t._=void 0;var e=ml(),r=G1(),a=ml();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return a._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return a.str}}),Object.defineProperty(t,"strConcat",{enumerable:!0,get:function(){return a.strConcat}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return a.nil}}),Object.defineProperty(t,"getProperty",{enumerable:!0,get:function(){return a.getProperty}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return a.stringify}}),Object.defineProperty(t,"regexpCode",{enumerable:!0,get:function(){return a.regexpCode}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return a.Name}});var n=G1();Object.defineProperty(t,"Scope",{enumerable:!0,get:function(){return n.Scope}}),Object.defineProperty(t,"ValueScope",{enumerable:!0,get:function(){return n.ValueScope}}),Object.defineProperty(t,"ValueScopeName",{enumerable:!0,get:function(){return n.ValueScopeName}}),Object.defineProperty(t,"varKinds",{enumerable:!0,get:function(){return n.varKinds}}),t.operators={GT:new e._Code(">"),GTE:new e._Code(">="),LT:new e._Code("<"),LTE:new e._Code("<="),EQ:new e._Code("==="),NEQ:new e._Code("!=="),NOT:new e._Code("!"),OR:new e._Code("||"),AND:new e._Code("&&"),ADD:new e._Code("+")};class s{optimizeNodes(){return this}optimizeNames(x,k){return this}}class i extends s{constructor(x,k,D){super(),this.varKind=x,this.name=k,this.rhs=D}render({es5:x,_n:k}){let D=x?r.varKinds.var:this.varKind,K=this.rhs===void 0?"":` = ${this.rhs}`;return`${D} ${this.name}${K};`+k}optimizeNames(x,k){if(x[this.name.str])return this.rhs&&(this.rhs=N(this.rhs,x,k)),this}get names(){return this.rhs instanceof e._CodeOrName?this.rhs.names:{}}}class o extends s{constructor(x,k,D){super(),this.lhs=x,this.rhs=k,this.sideEffects=D}render({_n:x}){return`${this.lhs} = ${this.rhs};`+x}optimizeNames(x,k){if(!(this.lhs instanceof e.Name&&!x[this.lhs.str]&&!this.sideEffects))return this.rhs=N(this.rhs,x,k),this}get names(){let x=this.lhs instanceof e.Name?{}:{...this.lhs.names};return H(x,this.rhs)}}class c extends o{constructor(x,k,D,K){super(x,D,K),this.op=k}render({_n:x}){return`${this.lhs} ${this.op}= ${this.rhs};`+x}}class u extends s{constructor(x){super(),this.label=x,this.names={}}render({_n:x}){return`${this.label}:`+x}}class l extends s{constructor(x){super(),this.label=x,this.names={}}render({_n:x}){return`break${this.label?` ${this.label}`:""};`+x}}class d extends s{constructor(x){super(),this.error=x}render({_n:x}){return`throw ${this.error};`+x}get names(){return this.error.names}}class p extends s{constructor(x){super(),this.code=x}render({_n:x}){return`${this.code};`+x}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(x,k){return this.code=N(this.code,x,k),this}get names(){return this.code instanceof e._CodeOrName?this.code.names:{}}}class f extends s{constructor(x=[]){super(),this.nodes=x}render(x){return this.nodes.reduce((k,D)=>k+D.render(x),"")}optimizeNodes(){let{nodes:x}=this,k=x.length;for(;k--;){let D=x[k].optimizeNodes();Array.isArray(D)?x.splice(k,1,...D):D?x[k]=D:x.splice(k,1)}return x.length>0?this:void 0}optimizeNames(x,k){let{nodes:D}=this,K=D.length;for(;K--;){let J=D[K];J.optimizeNames(x,k)||(W(x,J.names),D.splice(K,1))}return D.length>0?this:void 0}get names(){return this.nodes.reduce((x,k)=>q(x,k.names),{})}}class v extends f{render(x){return"{"+x._n+super.render(x)+"}"+x._n}}class _ extends f{}class m extends v{}m.kind="else";class h extends v{constructor(x,k){super(k),this.condition=x}render(x){let k=`if(${this.condition})`+super.render(x);return this.else&&(k+="else "+this.else.render(x)),k}optimizeNodes(){super.optimizeNodes();let x=this.condition;if(x===!0)return this.nodes;let k=this.else;if(k){let D=k.optimizeNodes();k=this.else=Array.isArray(D)?new m(D):D}if(k)return x===!1?k instanceof h?k:k.nodes:this.nodes.length?this:new h(oe(x),k instanceof h?[k]:k.nodes);if(!(x===!1||!this.nodes.length))return this}optimizeNames(x,k){var D;if(this.else=(D=this.else)===null||D===void 0?void 0:D.optimizeNames(x,k),!!(super.optimizeNames(x,k)||this.else))return this.condition=N(this.condition,x,k),this}get names(){let x=super.names;return H(x,this.condition),this.else&&q(x,this.else.names),x}}h.kind="if";class y extends v{}y.kind="for";class g extends y{constructor(x){super(),this.iteration=x}render(x){return`for(${this.iteration})`+super.render(x)}optimizeNames(x,k){if(super.optimizeNames(x,k))return this.iteration=N(this.iteration,x,k),this}get names(){return q(super.names,this.iteration.names)}}class b extends y{constructor(x,k,D,K){super(),this.varKind=x,this.name=k,this.from=D,this.to=K}render(x){let k=x.es5?r.varKinds.var:this.varKind,{name:D,from:K,to:J}=this;return`for(${k} ${D}=${K}; ${D}<${J}; ${D}++)`+super.render(x)}get names(){let x=H(super.names,this.from);return H(x,this.to)}}class w extends y{constructor(x,k,D,K){super(),this.loop=x,this.varKind=k,this.name=D,this.iterable=K}render(x){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(x)}optimizeNames(x,k){if(super.optimizeNames(x,k))return this.iterable=N(this.iterable,x,k),this}get names(){return q(super.names,this.iterable.names)}}class S extends v{constructor(x,k,D){super(),this.name=x,this.args=k,this.async=D}render(x){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(x)}}S.kind="func";class E extends f{render(x){return"return "+super.render(x)}}E.kind="return";class T extends v{render(x){let k="try"+super.render(x);return this.catch&&(k+=this.catch.render(x)),this.finally&&(k+=this.finally.render(x)),k}optimizeNodes(){var x,k;return super.optimizeNodes(),(x=this.catch)===null||x===void 0||x.optimizeNodes(),(k=this.finally)===null||k===void 0||k.optimizeNodes(),this}optimizeNames(x,k){var D,K;return super.optimizeNames(x,k),(D=this.catch)===null||D===void 0||D.optimizeNames(x,k),(K=this.finally)===null||K===void 0||K.optimizeNames(x,k),this}get names(){let x=super.names;return this.catch&&q(x,this.catch.names),this.finally&&q(x,this.finally.names),x}}class R extends v{constructor(x){super(),this.error=x}render(x){return`catch(${this.error})`+super.render(x)}}R.kind="catch";class M extends v{render(x){return"finally"+super.render(x)}}M.kind="finally";class j{constructor(x,k={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...k,_n:k.lines?` -`:""},this._extScope=x,this._scope=new r.Scope({parent:x}),this._nodes=[new _]}toString(){return this._root.render(this.opts)}name(x){return this._scope.name(x)}scopeName(x){return this._extScope.name(x)}scopeValue(x,k){let D=this._extScope.value(x,k);return(this._values[D.prefix]||(this._values[D.prefix]=new Set)).add(D),D}getScopeValue(x,k){return this._extScope.getValue(x,k)}scopeRefs(x){return this._extScope.scopeRefs(x,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(x,k,D,K){let J=this._scope.toName(k);return D!==void 0&&K&&(this._constants[J.str]=D),this._leafNode(new i(x,J,D)),J}const(x,k,D){return this._def(r.varKinds.const,x,k,D)}let(x,k,D){return this._def(r.varKinds.let,x,k,D)}var(x,k,D){return this._def(r.varKinds.var,x,k,D)}assign(x,k,D){return this._leafNode(new o(x,k,D))}add(x,k){return this._leafNode(new c(x,t.operators.ADD,k))}code(x){return typeof x=="function"?x():x!==e.nil&&this._leafNode(new p(x)),this}object(...x){let k=["{"];for(let[D,K]of x)k.length>1&&k.push(","),k.push(D),(D!==K||this.opts.es5)&&(k.push(":"),(0,e.addCodeArg)(k,K));return k.push("}"),new e._Code(k)}if(x,k,D){if(this._blockNode(new h(x)),k&&D)this.code(k).else().code(D).endIf();else if(k)this.code(k).endIf();else if(D)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(x){return this._elseNode(new h(x))}else(){return this._elseNode(new m)}endIf(){return this._endBlockNode(h,m)}_for(x,k){return this._blockNode(x),k&&this.code(k).endFor(),this}for(x,k){return this._for(new g(x),k)}forRange(x,k,D,K,J=this.opts.es5?r.varKinds.var:r.varKinds.let){let de=this._scope.toName(x);return this._for(new b(J,de,k,D),()=>K(de))}forOf(x,k,D,K=r.varKinds.const){let J=this._scope.toName(x);if(this.opts.es5){let de=k instanceof e.Name?k:this.var("_arr",k);return this.forRange("_i",0,(0,e._)`${de}.length`,se=>{this.var(J,(0,e._)`${de}[${se}]`),D(J)})}return this._for(new w("of",K,J,k),()=>D(J))}forIn(x,k,D,K=this.opts.es5?r.varKinds.var:r.varKinds.const){if(this.opts.ownProperties)return this.forOf(x,(0,e._)`Object.keys(${k})`,D);let J=this._scope.toName(x);return this._for(new w("in",K,J,k),()=>D(J))}endFor(){return this._endBlockNode(y)}label(x){return this._leafNode(new u(x))}break(x){return this._leafNode(new l(x))}return(x){let k=new E;if(this._blockNode(k),this.code(x),k.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(E)}try(x,k,D){if(!k&&!D)throw new Error('CodeGen: "try" without "catch" and "finally"');let K=new T;if(this._blockNode(K),this.code(x),k){let J=this.name("e");this._currNode=K.catch=new R(J),k(J)}return D&&(this._currNode=K.finally=new M,this.code(D)),this._endBlockNode(R,M)}throw(x){return this._leafNode(new d(x))}block(x,k){return this._blockStarts.push(this._nodes.length),x&&this.code(x).endBlock(k),this}endBlock(x){let k=this._blockStarts.pop();if(k===void 0)throw new Error("CodeGen: not in self-balancing block");let D=this._nodes.length-k;if(D<0||x!==void 0&&D!==x)throw new Error(`CodeGen: wrong number of nodes: ${D} vs ${x} expected`);return this._nodes.length=k,this}func(x,k=e.nil,D,K){return this._blockNode(new S(x,k,D)),K&&this.code(K).endFunc(),this}endFunc(){return this._endBlockNode(S)}optimize(x=1){for(;x-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(x){return this._currNode.nodes.push(x),this}_blockNode(x){this._currNode.nodes.push(x),this._nodes.push(x)}_endBlockNode(x,k){let D=this._currNode;if(D instanceof x||k&&D instanceof k)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${k?`${x.kind}/${k.kind}`:x.kind}"`)}_elseNode(x){let k=this._currNode;if(!(k instanceof h))throw new Error('CodeGen: "else" without "if"');return this._currNode=k.else=x,this}get _root(){return this._nodes[0]}get _currNode(){let x=this._nodes;return x[x.length-1]}set _currNode(x){let k=this._nodes;k[k.length-1]=x}}t.CodeGen=j;function q(A,x){for(let k in x)A[k]=(A[k]||0)+(x[k]||0);return A}function H(A,x){return x instanceof e._CodeOrName?q(A,x.names):A}function N(A,x,k){if(A instanceof e.Name)return D(A);if(!K(A))return A;return new e._Code(A._items.reduce((J,de)=>(de instanceof e.Name&&(de=D(de)),de instanceof e._Code?J.push(...de._items):J.push(de),J),[]));function D(J){let de=k[J.str];return de===void 0||x[J.str]!==1?J:(delete x[J.str],de)}function K(J){return J instanceof e._Code&&J._items.some(de=>de instanceof e.Name&&x[de.str]===1&&k[de.str]!==void 0)}}function W(A,x){for(let k in x)A[k]=(A[k]||0)-(x[k]||0)}function oe(A){return typeof A=="boolean"||typeof A=="number"||A===null?!A:(0,e._)`!${z(A)}`}t.not=oe;var he=$(t.operators.AND);function ae(...A){return A.reduce(he)}t.and=ae;var re=$(t.operators.OR);function U(...A){return A.reduce(re)}t.or=U;function $(A){return(x,k)=>x===e.nil?k:k===e.nil?x:(0,e._)`${z(x)} ${A} ${z(k)}`}function z(A){return A instanceof e.Name?A:(0,e._)`(${A})`}}),et=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.checkStrictMode=t.getErrorPath=t.Type=t.useFunc=t.setEvaluated=t.evaluatedPropsToName=t.mergeEvaluated=t.eachItem=t.unescapeJsonPointer=t.escapeJsonPointer=t.escapeFragment=t.unescapeFragment=t.schemaRefOrVal=t.schemaHasRulesButRef=t.schemaHasRules=t.checkUnknownRules=t.alwaysValidSchema=t.toHash=void 0;var e=Ze(),r=ml();function a(S){let E={};for(let T of S)E[T]=!0;return E}t.toHash=a;function n(S,E){return typeof E=="boolean"?E:Object.keys(E).length===0?!0:(s(S,E),!i(E,S.self.RULES.all))}t.alwaysValidSchema=n;function s(S,E=S.schema){let{opts:T,self:R}=S;if(!T.strictSchema||typeof E=="boolean")return;let M=R.RULES.keywords;for(let j in E)M[j]||w(S,`unknown keyword: "${j}"`)}t.checkUnknownRules=s;function i(S,E){if(typeof S=="boolean")return!S;for(let T in S)if(E[T])return!0;return!1}t.schemaHasRules=i;function o(S,E){if(typeof S=="boolean")return!S;for(let T in S)if(T!=="$ref"&&E.all[T])return!0;return!1}t.schemaHasRulesButRef=o;function c({topSchemaRef:S,schemaPath:E},T,R,M){if(!M){if(typeof T=="number"||typeof T=="boolean")return T;if(typeof T=="string")return(0,e._)`${T}`}return(0,e._)`${S}${E}${(0,e.getProperty)(R)}`}t.schemaRefOrVal=c;function u(S){return p(decodeURIComponent(S))}t.unescapeFragment=u;function l(S){return encodeURIComponent(d(S))}t.escapeFragment=l;function d(S){return typeof S=="number"?`${S}`:S.replace(/~/g,"~0").replace(/\//g,"~1")}t.escapeJsonPointer=d;function p(S){return S.replace(/~1/g,"/").replace(/~0/g,"~")}t.unescapeJsonPointer=p;function f(S,E){if(Array.isArray(S))for(let T of S)E(T);else E(S)}t.eachItem=f;function v({mergeNames:S,mergeToName:E,mergeValues:T,resultToName:R}){return(M,j,q,H)=>{let N=q===void 0?j:q instanceof e.Name?(j instanceof e.Name?S(M,j,q):E(M,j,q),q):j instanceof e.Name?(E(M,q,j),j):T(j,q);return H===e.Name&&!(N instanceof e.Name)?R(M,N):N}}t.mergeEvaluated={props:v({mergeNames:(S,E,T)=>S.if((0,e._)`${T} !== true && ${E} !== undefined`,()=>{S.if((0,e._)`${E} === true`,()=>S.assign(T,!0),()=>S.assign(T,(0,e._)`${T} || {}`).code((0,e._)`Object.assign(${T}, ${E})`))}),mergeToName:(S,E,T)=>S.if((0,e._)`${T} !== true`,()=>{E===!0?S.assign(T,!0):(S.assign(T,(0,e._)`${T} || {}`),m(S,T,E))}),mergeValues:(S,E)=>S===!0?!0:{...S,...E},resultToName:_}),items:v({mergeNames:(S,E,T)=>S.if((0,e._)`${T} !== true && ${E} !== undefined`,()=>S.assign(T,(0,e._)`${E} === true ? true : ${T} > ${E} ? ${T} : ${E}`)),mergeToName:(S,E,T)=>S.if((0,e._)`${T} !== true`,()=>S.assign(T,E===!0?!0:(0,e._)`${T} > ${E} ? ${T} : ${E}`)),mergeValues:(S,E)=>S===!0?!0:Math.max(S,E),resultToName:(S,E)=>S.var("items",E)})};function _(S,E){if(E===!0)return S.var("props",!0);let T=S.var("props",(0,e._)`{}`);return E!==void 0&&m(S,T,E),T}t.evaluatedPropsToName=_;function m(S,E,T){Object.keys(T).forEach(R=>S.assign((0,e._)`${E}${(0,e.getProperty)(R)}`,!0))}t.setEvaluated=m;var h={};function y(S,E){return S.scopeValue("func",{ref:E,code:h[E.code]||(h[E.code]=new r._Code(E.code))})}t.useFunc=y;var g;(function(S){S[S.Num=0]="Num",S[S.Str=1]="Str"})(g||(t.Type=g={}));function b(S,E,T){if(S instanceof e.Name){let R=E===g.Num;return T?R?(0,e._)`"[" + ${S} + "]"`:(0,e._)`"['" + ${S} + "']"`:R?(0,e._)`"/" + ${S}`:(0,e._)`"/" + ${S}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return T?(0,e.getProperty)(S).toString():"/"+d(S)}t.getErrorPath=b;function w(S,E,T=S.opts.strictSchema){if(T){if(E=`strict mode: ${E}`,T===!0)throw new Error(E);S.self.logger.warn(E)}}t.checkStrictMode=w}),Yn=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r={data:new e.Name("data"),valCxt:new e.Name("valCxt"),instancePath:new e.Name("instancePath"),parentData:new e.Name("parentData"),parentDataProperty:new e.Name("parentDataProperty"),rootData:new e.Name("rootData"),dynamicAnchors:new e.Name("dynamicAnchors"),vErrors:new e.Name("vErrors"),errors:new e.Name("errors"),this:new e.Name("this"),self:new e.Name("self"),scope:new e.Name("scope"),json:new e.Name("json"),jsonPos:new e.Name("jsonPos"),jsonLen:new e.Name("jsonLen"),jsonPart:new e.Name("jsonPart")};t.default=r}),El=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.extendErrors=t.resetErrorsCount=t.reportExtraError=t.reportError=t.keyword$DataError=t.keywordError=void 0;var e=Ze(),r=et(),a=Yn();t.keywordError={message:({keyword:m})=>(0,e.str)`must pass "${m}" keyword validation`},t.keyword$DataError={message:({keyword:m,schemaType:h})=>h?(0,e.str)`"${m}" keyword must be ${h} ($data)`:(0,e.str)`"${m}" keyword is invalid ($data)`};function n(m,h=t.keywordError,y,g){let{it:b}=m,{gen:w,compositeRule:S,allErrors:E}=b,T=d(m,h,y);g??(S||E)?c(w,T):u(b,(0,e._)`[${T}]`)}t.reportError=n;function s(m,h=t.keywordError,y){let{it:g}=m,{gen:b,compositeRule:w,allErrors:S}=g,E=d(m,h,y);c(b,E),w||S||u(g,a.default.vErrors)}t.reportExtraError=s;function i(m,h){m.assign(a.default.errors,h),m.if((0,e._)`${a.default.vErrors} !== null`,()=>m.if(h,()=>m.assign((0,e._)`${a.default.vErrors}.length`,h),()=>m.assign(a.default.vErrors,null)))}t.resetErrorsCount=i;function o({gen:m,keyword:h,schemaValue:y,data:g,errsCount:b,it:w}){if(b===void 0)throw new Error("ajv implementation error");let S=m.name("err");m.forRange("i",b,a.default.errors,E=>{m.const(S,(0,e._)`${a.default.vErrors}[${E}]`),m.if((0,e._)`${S}.instancePath === undefined`,()=>m.assign((0,e._)`${S}.instancePath`,(0,e.strConcat)(a.default.instancePath,w.errorPath))),m.assign((0,e._)`${S}.schemaPath`,(0,e.str)`${w.errSchemaPath}/${h}`),w.opts.verbose&&(m.assign((0,e._)`${S}.schema`,y),m.assign((0,e._)`${S}.data`,g))})}t.extendErrors=o;function c(m,h){let y=m.const("err",h);m.if((0,e._)`${a.default.vErrors} === null`,()=>m.assign(a.default.vErrors,(0,e._)`[${y}]`),(0,e._)`${a.default.vErrors}.push(${y})`),m.code((0,e._)`${a.default.errors}++`)}function u(m,h){let{gen:y,validateName:g,schemaEnv:b}=m;b.$async?y.throw((0,e._)`new ${m.ValidationError}(${h})`):(y.assign((0,e._)`${g}.errors`,h),y.return(!1))}var l={keyword:new e.Name("keyword"),schemaPath:new e.Name("schemaPath"),params:new e.Name("params"),propertyName:new e.Name("propertyName"),message:new e.Name("message"),schema:new e.Name("schema"),parentSchema:new e.Name("parentSchema")};function d(m,h,y){let{createErrors:g}=m.it;return g===!1?(0,e._)`{}`:p(m,h,y)}function p(m,h,y={}){let{gen:g,it:b}=m,w=[f(b,y),v(m,y)];return _(m,h,w),g.object(...w)}function f({errorPath:m},{instancePath:h}){let y=h?(0,e.str)`${m}${(0,r.getErrorPath)(h,r.Type.Str)}`:m;return[a.default.instancePath,(0,e.strConcat)(a.default.instancePath,y)]}function v({keyword:m,it:{errSchemaPath:h}},{schemaPath:y,parentSchema:g}){let b=g?h:(0,e.str)`${h}/${m}`;return y&&(b=(0,e.str)`${b}${(0,r.getErrorPath)(y,r.Type.Str)}`),[l.schemaPath,b]}function _(m,{params:h,message:y},g){let{keyword:b,data:w,schemaValue:S,it:E}=m,{opts:T,propertyName:R,topSchemaRef:M,schemaPath:j}=E;g.push([l.keyword,b],[l.params,typeof h=="function"?h(m):h||(0,e._)`{}`]),T.messages&&g.push([l.message,typeof y=="function"?y(m):y]),T.verbose&&g.push([l.schema,S],[l.parentSchema,(0,e._)`${M}${j}`],[a.default.data,w]),R&&g.push([l.propertyName,R])}}),eq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.boolOrEmptySchema=t.topBoolOrEmptySchema=void 0;var e=El(),r=Ze(),a=Yn(),n={message:"boolean schema is false"};function s(c){let{gen:u,schema:l,validateName:d}=c;l===!1?o(c,!1):typeof l=="object"&&l.$async===!0?u.return(a.default.data):(u.assign((0,r._)`${d}.errors`,null),u.return(!0))}t.topBoolOrEmptySchema=s;function i(c,u){let{gen:l,schema:d}=c;d===!1?(l.var(u,!1),o(c)):l.var(u,!0)}t.boolOrEmptySchema=i;function o(c,u){let{gen:l,data:d}=c,p={gen:l,keyword:"false schema",data:d,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:c};(0,e.reportError)(p,n,void 0,u)}}),kT=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getRules=t.isJSONType=void 0;var e=["string","number","integer","boolean","null","object","array"],r=new Set(e);function a(s){return typeof s=="string"&&r.has(s)}t.isJSONType=a;function n(){let s={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...s,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},s.number,s.string,s.array,s.object],post:{rules:[]},all:{},keywords:{}}}t.getRules=n}),RT=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.shouldUseRule=t.shouldUseGroup=t.schemaHasRulesForType=void 0;function e({schema:n,self:s},i){let o=s.RULES.types[i];return o&&o!==!0&&r(n,o)}t.schemaHasRulesForType=e;function r(n,s){return s.rules.some(i=>a(n,i))}t.shouldUseGroup=r;function a(n,s){var i;return n[s.keyword]!==void 0||((i=s.definition.implements)===null||i===void 0?void 0:i.some(o=>n[o]!==void 0))}t.shouldUseRule=a}),hl=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.reportTypeError=t.checkDataTypes=t.checkDataType=t.coerceAndCheckDataType=t.getJSONTypes=t.getSchemaTypes=t.DataType=void 0;var e=kT(),r=RT(),a=El(),n=Ze(),s=et(),i;(function(g){g[g.Correct=0]="Correct",g[g.Wrong=1]="Wrong"})(i||(t.DataType=i={}));function o(g){let b=c(g.type);if(b.includes("null")){if(g.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!b.length&&g.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');g.nullable===!0&&b.push("null")}return b}t.getSchemaTypes=o;function c(g){let b=Array.isArray(g)?g:g?[g]:[];if(b.every(e.isJSONType))return b;throw new Error("type must be JSONType or JSONType[]: "+b.join(","))}t.getJSONTypes=c;function u(g,b){let{gen:w,data:S,opts:E}=g,T=d(b,E.coerceTypes),R=b.length>0&&!(T.length===0&&b.length===1&&(0,r.schemaHasRulesForType)(g,b[0]));if(R){let M=_(b,S,E.strictNumbers,i.Wrong);w.if(M,()=>{T.length?p(g,b,T):h(g)})}return R}t.coerceAndCheckDataType=u;var l=new Set(["string","number","integer","boolean","null"]);function d(g,b){return b?g.filter(w=>l.has(w)||b==="array"&&w==="array"):[]}function p(g,b,w){let{gen:S,data:E,opts:T}=g,R=S.let("dataType",(0,n._)`typeof ${E}`),M=S.let("coerced",(0,n._)`undefined`);T.coerceTypes==="array"&&S.if((0,n._)`${R} == 'object' && Array.isArray(${E}) && ${E}.length == 1`,()=>S.assign(E,(0,n._)`${E}[0]`).assign(R,(0,n._)`typeof ${E}`).if(_(b,E,T.strictNumbers),()=>S.assign(M,E))),S.if((0,n._)`${M} !== undefined`);for(let q of w)(l.has(q)||q==="array"&&T.coerceTypes==="array")&&j(q);S.else(),h(g),S.endIf(),S.if((0,n._)`${M} !== undefined`,()=>{S.assign(E,M),f(g,M)});function j(q){switch(q){case"string":S.elseIf((0,n._)`${R} == "number" || ${R} == "boolean"`).assign(M,(0,n._)`"" + ${E}`).elseIf((0,n._)`${E} === null`).assign(M,(0,n._)`""`);return;case"number":S.elseIf((0,n._)`${R} == "boolean" || ${E} === null - || (${R} == "string" && ${E} && ${E} == +${E})`).assign(M,(0,n._)`+${E}`);return;case"integer":S.elseIf((0,n._)`${R} === "boolean" || ${E} === null - || (${R} === "string" && ${E} && ${E} == +${E} && !(${E} % 1))`).assign(M,(0,n._)`+${E}`);return;case"boolean":S.elseIf((0,n._)`${E} === "false" || ${E} === 0 || ${E} === null`).assign(M,!1).elseIf((0,n._)`${E} === "true" || ${E} === 1`).assign(M,!0);return;case"null":S.elseIf((0,n._)`${E} === "" || ${E} === 0 || ${E} === false`),S.assign(M,null);return;case"array":S.elseIf((0,n._)`${R} === "string" || ${R} === "number" - || ${R} === "boolean" || ${E} === null`).assign(M,(0,n._)`[${E}]`)}}}function f({gen:g,parentData:b,parentDataProperty:w},S){g.if((0,n._)`${b} !== undefined`,()=>g.assign((0,n._)`${b}[${w}]`,S))}function v(g,b,w,S=i.Correct){let E=S===i.Correct?n.operators.EQ:n.operators.NEQ,T;switch(g){case"null":return(0,n._)`${b} ${E} null`;case"array":T=(0,n._)`Array.isArray(${b})`;break;case"object":T=(0,n._)`${b} && typeof ${b} == "object" && !Array.isArray(${b})`;break;case"integer":T=R((0,n._)`!(${b} % 1) && !isNaN(${b})`);break;case"number":T=R();break;default:return(0,n._)`typeof ${b} ${E} ${g}`}return S===i.Correct?T:(0,n.not)(T);function R(M=n.nil){return(0,n.and)((0,n._)`typeof ${b} == "number"`,M,w?(0,n._)`isFinite(${b})`:n.nil)}}t.checkDataType=v;function _(g,b,w,S){if(g.length===1)return v(g[0],b,w,S);let E,T=(0,s.toHash)(g);if(T.array&&T.object){let R=(0,n._)`typeof ${b} != "object"`;E=T.null?R:(0,n._)`!${b} || ${R}`,delete T.null,delete T.array,delete T.object}else E=n.nil;T.number&&delete T.integer;for(let R in T)E=(0,n.and)(E,v(R,b,w,S));return E}t.checkDataTypes=_;var m={message:({schema:g})=>`must be ${g}`,params:({schema:g,schemaValue:b})=>typeof g=="string"?(0,n._)`{type: ${g}}`:(0,n._)`{type: ${b}}`};function h(g){let b=y(g);(0,a.reportError)(b,m)}t.reportTypeError=h;function y(g){let{gen:b,data:w,schema:S}=g,E=(0,s.schemaRefOrVal)(g,S,"type");return{gen:b,keyword:"type",data:w,schema:S.type,schemaCode:E,schemaValue:E,parentSchema:S,params:{},it:g}}}),tq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.assignDefaults=void 0;var e=Ze(),r=et();function a(s,i){let{properties:o,items:c}=s.schema;if(i==="object"&&o)for(let u in o)n(s,u,o[u].default);else i==="array"&&Array.isArray(c)&&c.forEach((u,l)=>n(s,l,u.default))}t.assignDefaults=a;function n(s,i,o){let{gen:c,compositeRule:u,data:l,opts:d}=s;if(o===void 0)return;let p=(0,e._)`${l}${(0,e.getProperty)(i)}`;if(u){(0,r.checkStrictMode)(s,`default is ignored for: ${p}`);return}let f=(0,e._)`${p} === undefined`;d.useDefaults==="empty"&&(f=(0,e._)`${f} || ${p} === null || ${p} === ""`),c.if(f,(0,e._)`${p} = ${(0,e.stringify)(o)}`)}}),Gr=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateUnion=t.validateArray=t.usePattern=t.callValidateCode=t.schemaProperties=t.allSchemaProperties=t.noPropertyInData=t.propertyInData=t.isOwnProperty=t.hasPropFunc=t.reportMissingProp=t.checkMissingProp=t.checkReportMissingProp=void 0;var e=Ze(),r=et(),a=Yn(),n=et();function s(g,b){let{gen:w,data:S,it:E}=g;w.if(d(w,S,b,E.opts.ownProperties),()=>{g.setParams({missingProperty:(0,e._)`${b}`},!0),g.error()})}t.checkReportMissingProp=s;function i({gen:g,data:b,it:{opts:w}},S,E){return(0,e.or)(...S.map(T=>(0,e.and)(d(g,b,T,w.ownProperties),(0,e._)`${E} = ${T}`)))}t.checkMissingProp=i;function o(g,b){g.setParams({missingProperty:b},!0),g.error()}t.reportMissingProp=o;function c(g){return g.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,e._)`Object.prototype.hasOwnProperty`})}t.hasPropFunc=c;function u(g,b,w){return(0,e._)`${c(g)}.call(${b}, ${w})`}t.isOwnProperty=u;function l(g,b,w,S){let E=(0,e._)`${b}${(0,e.getProperty)(w)} !== undefined`;return S?(0,e._)`${E} && ${u(g,b,w)}`:E}t.propertyInData=l;function d(g,b,w,S){let E=(0,e._)`${b}${(0,e.getProperty)(w)} === undefined`;return S?(0,e.or)(E,(0,e.not)(u(g,b,w))):E}t.noPropertyInData=d;function p(g){return g?Object.keys(g).filter(b=>b!=="__proto__"):[]}t.allSchemaProperties=p;function f(g,b){return p(b).filter(w=>!(0,r.alwaysValidSchema)(g,b[w]))}t.schemaProperties=f;function v({schemaCode:g,data:b,it:{gen:w,topSchemaRef:S,schemaPath:E,errorPath:T},it:R},M,j,q){let H=q?(0,e._)`${g}, ${b}, ${S}${E}`:b,N=[[a.default.instancePath,(0,e.strConcat)(a.default.instancePath,T)],[a.default.parentData,R.parentData],[a.default.parentDataProperty,R.parentDataProperty],[a.default.rootData,a.default.rootData]];R.opts.dynamicRef&&N.push([a.default.dynamicAnchors,a.default.dynamicAnchors]);let W=(0,e._)`${H}, ${w.object(...N)}`;return j!==e.nil?(0,e._)`${M}.call(${j}, ${W})`:(0,e._)`${M}(${W})`}t.callValidateCode=v;var _=(0,e._)`new RegExp`;function m({gen:g,it:{opts:b}},w){let S=b.unicodeRegExp?"u":"",{regExp:E}=b.code,T=E(w,S);return g.scopeValue("pattern",{key:T.toString(),ref:T,code:(0,e._)`${E.code==="new RegExp"?_:(0,n.useFunc)(g,E)}(${w}, ${S})`})}t.usePattern=m;function h(g){let{gen:b,data:w,keyword:S,it:E}=g,T=b.name("valid");if(E.allErrors){let M=b.let("valid",!0);return R(()=>b.assign(M,!1)),M}return b.var(T,!0),R(()=>b.break()),T;function R(M){let j=b.const("len",(0,e._)`${w}.length`);b.forRange("i",0,j,q=>{g.subschema({keyword:S,dataProp:q,dataPropType:r.Type.Num},T),b.if((0,e.not)(T),M)})}}t.validateArray=h;function y(g){let{gen:b,schema:w,keyword:S,it:E}=g;if(!Array.isArray(w))throw new Error("ajv implementation error");if(w.some(j=>(0,r.alwaysValidSchema)(E,j))&&!E.opts.unevaluated)return;let R=b.let("valid",!1),M=b.name("_valid");b.block(()=>w.forEach((j,q)=>{let H=g.subschema({keyword:S,schemaProp:q,compositeRule:!0},M);b.assign(R,(0,e._)`${R} || ${M}`),g.mergeValidEvaluated(H,M)||b.if((0,e.not)(R))})),g.result(R,()=>g.reset(),()=>g.error(!0))}t.validateUnion=y}),rq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateKeywordUsage=t.validSchemaType=t.funcKeywordCode=t.macroKeywordCode=void 0;var e=Ze(),r=Yn(),a=Gr(),n=El();function s(f,v){let{gen:_,keyword:m,schema:h,parentSchema:y,it:g}=f,b=v.macro.call(g.self,h,y,g),w=l(_,m,b);g.opts.validateSchema!==!1&&g.self.validateSchema(b,!0);let S=_.name("valid");f.subschema({schema:b,schemaPath:e.nil,errSchemaPath:`${g.errSchemaPath}/${m}`,topSchemaRef:w,compositeRule:!0},S),f.pass(S,()=>f.error(!0))}t.macroKeywordCode=s;function i(f,v){var _;let{gen:m,keyword:h,schema:y,parentSchema:g,$data:b,it:w}=f;u(w,v);let S=!b&&v.compile?v.compile.call(w.self,y,g,w):v.validate,E=l(m,h,S),T=m.let("valid");f.block$data(T,R),f.ok((_=v.valid)!==null&&_!==void 0?_:T);function R(){if(v.errors===!1)q(),v.modifying&&o(f),H(()=>f.error());else{let N=v.async?M():j();v.modifying&&o(f),H(()=>c(f,N))}}function M(){let N=m.let("ruleErrs",null);return m.try(()=>q((0,e._)`await `),W=>m.assign(T,!1).if((0,e._)`${W} instanceof ${w.ValidationError}`,()=>m.assign(N,(0,e._)`${W}.errors`),()=>m.throw(W))),N}function j(){let N=(0,e._)`${E}.errors`;return m.assign(N,null),q(e.nil),N}function q(N=v.async?(0,e._)`await `:e.nil){let W=w.opts.passContext?r.default.this:r.default.self,oe=!("compile"in v&&!b||v.schema===!1);m.assign(T,(0,e._)`${N}${(0,a.callValidateCode)(f,E,W,oe)}`,v.modifying)}function H(N){var W;m.if((0,e.not)((W=v.valid)!==null&&W!==void 0?W:T),N)}}t.funcKeywordCode=i;function o(f){let{gen:v,data:_,it:m}=f;v.if(m.parentData,()=>v.assign(_,(0,e._)`${m.parentData}[${m.parentDataProperty}]`))}function c(f,v){let{gen:_}=f;_.if((0,e._)`Array.isArray(${v})`,()=>{_.assign(r.default.vErrors,(0,e._)`${r.default.vErrors} === null ? ${v} : ${r.default.vErrors}.concat(${v})`).assign(r.default.errors,(0,e._)`${r.default.vErrors}.length`),(0,n.extendErrors)(f)},()=>f.error())}function u({schemaEnv:f},v){if(v.async&&!f.$async)throw new Error("async keyword in sync schema")}function l(f,v,_){if(_===void 0)throw new Error(`keyword "${v}" failed to compile`);return f.scopeValue("keyword",typeof _=="function"?{ref:_}:{ref:_,code:(0,e.stringify)(_)})}function d(f,v,_=!1){return!v.length||v.some(m=>m==="array"?Array.isArray(f):m==="object"?f&&typeof f=="object"&&!Array.isArray(f):typeof f==m||_&&typeof f>"u")}t.validSchemaType=d;function p({schema:f,opts:v,self:_,errSchemaPath:m},h,y){if(Array.isArray(h.keyword)?!h.keyword.includes(y):h.keyword!==y)throw new Error("ajv implementation error");let g=h.dependencies;if(g?.some(b=>!Object.prototype.hasOwnProperty.call(f,b)))throw new Error(`parent schema must have dependencies of ${y}: ${g.join(",")}`);if(h.validateSchema&&!h.validateSchema(f[y])){let w=`keyword "${y}" value is invalid at path "${m}": `+_.errorsText(h.validateSchema.errors);if(v.validateSchema==="log")_.logger.error(w);else throw new Error(w)}}t.validateKeywordUsage=p}),nq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.extendSubschemaMode=t.extendSubschemaData=t.getSubschema=void 0;var e=Ze(),r=et();function a(i,{keyword:o,schemaProp:c,schema:u,schemaPath:l,errSchemaPath:d,topSchemaRef:p}){if(o!==void 0&&u!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(o!==void 0){let f=i.schema[o];return c===void 0?{schema:f,schemaPath:(0,e._)`${i.schemaPath}${(0,e.getProperty)(o)}`,errSchemaPath:`${i.errSchemaPath}/${o}`}:{schema:f[c],schemaPath:(0,e._)`${i.schemaPath}${(0,e.getProperty)(o)}${(0,e.getProperty)(c)}`,errSchemaPath:`${i.errSchemaPath}/${o}/${(0,r.escapeFragment)(c)}`}}if(u!==void 0){if(l===void 0||d===void 0||p===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:u,schemaPath:l,topSchemaRef:p,errSchemaPath:d}}throw new Error('either "keyword" or "schema" must be passed')}t.getSubschema=a;function n(i,o,{dataProp:c,dataPropType:u,data:l,dataTypes:d,propertyName:p}){if(l!==void 0&&c!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:f}=o;if(c!==void 0){let{errorPath:_,dataPathArr:m,opts:h}=o,y=f.let("data",(0,e._)`${o.data}${(0,e.getProperty)(c)}`,!0);v(y),i.errorPath=(0,e.str)`${_}${(0,r.getErrorPath)(c,u,h.jsPropertySyntax)}`,i.parentDataProperty=(0,e._)`${c}`,i.dataPathArr=[...m,i.parentDataProperty]}if(l!==void 0){let _=l instanceof e.Name?l:f.let("data",l,!0);v(_),p!==void 0&&(i.propertyName=p)}d&&(i.dataTypes=d);function v(_){i.data=_,i.dataLevel=o.dataLevel+1,i.dataTypes=[],o.definedProperties=new Set,i.parentData=o.data,i.dataNames=[...o.dataNames,_]}}t.extendSubschemaData=n;function s(i,{jtdDiscriminator:o,jtdMetadata:c,compositeRule:u,createErrors:l,allErrors:d}){u!==void 0&&(i.compositeRule=u),l!==void 0&&(i.createErrors=l),d!==void 0&&(i.allErrors=d),i.jtdDiscriminator=o,i.jtdMetadata=c}t.extendSubschemaMode=s}),Tl=Q((t,e)=>{e.exports=function r(a,n){if(a===n)return!0;if(a&&n&&typeof a=="object"&&typeof n=="object"){if(a.constructor!==n.constructor)return!1;var s,i,o;if(Array.isArray(a)){if(s=a.length,s!=n.length)return!1;for(i=s;i--!==0;)if(!r(a[i],n[i]))return!1;return!0}if(a.constructor===RegExp)return a.source===n.source&&a.flags===n.flags;if(a.valueOf!==Object.prototype.valueOf)return a.valueOf()===n.valueOf();if(a.toString!==Object.prototype.toString)return a.toString()===n.toString();if(o=Object.keys(a),s=o.length,s!==Object.keys(n).length)return!1;for(i=s;i--!==0;)if(!Object.prototype.hasOwnProperty.call(n,o[i]))return!1;for(i=s;i--!==0;){var c=o[i];if(!r(a[c],n[c]))return!1}return!0}return a!==a&&n!==n}}),aq=Q((t,e)=>{var r=e.exports=function(s,i,o){typeof i=="function"&&(o=i,i={}),o=i.cb||o;var c=typeof o=="function"?o:o.pre||function(){},u=o.post||function(){};a(i,c,u,s,"",s)};r.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0},r.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},r.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},r.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function a(s,i,o,c,u,l,d,p,f,v){if(c&&typeof c=="object"&&!Array.isArray(c)){i(c,u,l,d,p,f,v);for(var _ in c){var m=c[_];if(Array.isArray(m)){if(_ in r.arrayKeywords)for(var h=0;h{Object.defineProperty(t,"__esModule",{value:!0}),t.getSchemaRefs=t.resolveUrl=t.normalizeId=t._getFullPath=t.getFullPath=t.inlineRef=void 0;var e=et(),r=Tl(),a=aq(),n=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function s(m,h=!0){return typeof m=="boolean"?!0:h===!0?!o(m):h?c(m)<=h:!1}t.inlineRef=s;var i=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function o(m){for(let h in m){if(i.has(h))return!0;let y=m[h];if(Array.isArray(y)&&y.some(o)||typeof y=="object"&&o(y))return!0}return!1}function c(m){let h=0;for(let y in m){if(y==="$ref")return 1/0;if(h++,!n.has(y)&&(typeof m[y]=="object"&&(0,e.eachItem)(m[y],g=>h+=c(g)),h===1/0))return 1/0}return h}function u(m,h="",y){y!==!1&&(h=p(h));let g=m.parse(h);return l(m,g)}t.getFullPath=u;function l(m,h){return m.serialize(h).split("#")[0]+"#"}t._getFullPath=l;var d=/#\/?$/;function p(m){return m?m.replace(d,""):""}t.normalizeId=p;function f(m,h,y){return y=p(y),m.resolve(h,y)}t.resolveUrl=f;var v=/^[a-z_][-a-z0-9._]*$/i;function _(m,h){if(typeof m=="boolean")return{};let{schemaId:y,uriResolver:g}=this.opts,b=p(m[y]||h),w={"":b},S=u(g,b,!1),E={},T=new Set;return a(m,{allKeys:!0},(j,q,H,N)=>{if(N===void 0)return;let W=S+q,oe=w[N];typeof j[y]=="string"&&(oe=he.call(this,j[y])),ae.call(this,j.$anchor),ae.call(this,j.$dynamicAnchor),w[q]=oe;function he(re){let U=this.opts.uriResolver.resolve;if(re=p(oe?U(oe,re):re),T.has(re))throw M(re);T.add(re);let $=this.refs[re];return typeof $=="string"&&($=this.refs[$]),typeof $=="object"?R(j,$.schema,re):re!==p(W)&&(re[0]==="#"?(R(j,E[re],re),E[re]=j):this.refs[re]=W),re}function ae(re){if(typeof re=="string"){if(!v.test(re))throw new Error(`invalid anchor "${re}"`);he.call(this,`#${re}`)}}}),E;function R(j,q,H){if(q!==void 0&&!r(j,q))throw M(H)}function M(j){return new Error(`reference "${j}" resolves to more than one schema`)}}t.getSchemaRefs=_}),Rl=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getData=t.KeywordCxt=t.validateFunctionCode=void 0;var e=eq(),r=hl(),a=RT(),n=hl(),s=tq(),i=rq(),o=nq(),c=Ze(),u=Yn(),l=kl(),d=et(),p=El();function f(C){if(S(C)&&(T(C),w(C))){h(C);return}v(C,()=>(0,e.topBoolOrEmptySchema)(C))}t.validateFunctionCode=f;function v({gen:C,validateName:I,schema:F,schemaEnv:Z,opts:ee},ce){ee.code.es5?C.func(I,(0,c._)`${u.default.data}, ${u.default.valCxt}`,Z.$async,()=>{C.code((0,c._)`"use strict"; ${g(F,ee)}`),m(C,ee),C.code(ce)}):C.func(I,(0,c._)`${u.default.data}, ${_(ee)}`,Z.$async,()=>C.code(g(F,ee)).code(ce))}function _(C){return(0,c._)`{${u.default.instancePath}="", ${u.default.parentData}, ${u.default.parentDataProperty}, ${u.default.rootData}=${u.default.data}${C.dynamicRef?(0,c._)`, ${u.default.dynamicAnchors}={}`:c.nil}}={}`}function m(C,I){C.if(u.default.valCxt,()=>{C.var(u.default.instancePath,(0,c._)`${u.default.valCxt}.${u.default.instancePath}`),C.var(u.default.parentData,(0,c._)`${u.default.valCxt}.${u.default.parentData}`),C.var(u.default.parentDataProperty,(0,c._)`${u.default.valCxt}.${u.default.parentDataProperty}`),C.var(u.default.rootData,(0,c._)`${u.default.valCxt}.${u.default.rootData}`),I.dynamicRef&&C.var(u.default.dynamicAnchors,(0,c._)`${u.default.valCxt}.${u.default.dynamicAnchors}`)},()=>{C.var(u.default.instancePath,(0,c._)`""`),C.var(u.default.parentData,(0,c._)`undefined`),C.var(u.default.parentDataProperty,(0,c._)`undefined`),C.var(u.default.rootData,u.default.data),I.dynamicRef&&C.var(u.default.dynamicAnchors,(0,c._)`{}`)})}function h(C){let{schema:I,opts:F,gen:Z}=C;v(C,()=>{F.$comment&&I.$comment&&N(C),j(C),Z.let(u.default.vErrors,null),Z.let(u.default.errors,0),F.unevaluated&&y(C),R(C),W(C)})}function y(C){let{gen:I,validateName:F}=C;C.evaluated=I.const("evaluated",(0,c._)`${F}.evaluated`),I.if((0,c._)`${C.evaluated}.dynamicProps`,()=>I.assign((0,c._)`${C.evaluated}.props`,(0,c._)`undefined`)),I.if((0,c._)`${C.evaluated}.dynamicItems`,()=>I.assign((0,c._)`${C.evaluated}.items`,(0,c._)`undefined`))}function g(C,I){let F=typeof C=="object"&&C[I.schemaId];return F&&(I.code.source||I.code.process)?(0,c._)`/*# sourceURL=${F} */`:c.nil}function b(C,I){if(S(C)&&(T(C),w(C))){E(C,I);return}(0,e.boolOrEmptySchema)(C,I)}function w({schema:C,self:I}){if(typeof C=="boolean")return!C;for(let F in C)if(I.RULES.all[F])return!0;return!1}function S(C){return typeof C.schema!="boolean"}function E(C,I){let{schema:F,gen:Z,opts:ee}=C;ee.$comment&&F.$comment&&N(C),q(C),H(C);let ce=Z.const("_errs",u.default.errors);R(C,ce),Z.var(I,(0,c._)`${ce} === ${u.default.errors}`)}function T(C){(0,d.checkUnknownRules)(C),M(C)}function R(C,I){if(C.opts.jtd)return he(C,[],!1,I);let F=(0,r.getSchemaTypes)(C.schema),Z=(0,r.coerceAndCheckDataType)(C,F);he(C,F,!Z,I)}function M(C){let{schema:I,errSchemaPath:F,opts:Z,self:ee}=C;I.$ref&&Z.ignoreKeywordsWithRef&&(0,d.schemaHasRulesButRef)(I,ee.RULES)&&ee.logger.warn(`$ref: keywords ignored in schema at path "${F}"`)}function j(C){let{schema:I,opts:F}=C;I.default!==void 0&&F.useDefaults&&F.strictSchema&&(0,d.checkStrictMode)(C,"default is ignored in the schema root")}function q(C){let I=C.schema[C.opts.schemaId];I&&(C.baseId=(0,l.resolveUrl)(C.opts.uriResolver,C.baseId,I))}function H(C){if(C.schema.$async&&!C.schemaEnv.$async)throw new Error("async schema in sync schema")}function N({gen:C,schemaEnv:I,schema:F,errSchemaPath:Z,opts:ee}){let ce=F.$comment;if(ee.$comment===!0)C.code((0,c._)`${u.default.self}.logger.log(${ce})`);else if(typeof ee.$comment=="function"){let ke=(0,c.str)`${Z}/$comment`,Ne=C.scopeValue("root",{ref:I.root});C.code((0,c._)`${u.default.self}.opts.$comment(${ce}, ${ke}, ${Ne}.schema)`)}}function W(C){let{gen:I,schemaEnv:F,validateName:Z,ValidationError:ee,opts:ce}=C;F.$async?I.if((0,c._)`${u.default.errors} === 0`,()=>I.return(u.default.data),()=>I.throw((0,c._)`new ${ee}(${u.default.vErrors})`)):(I.assign((0,c._)`${Z}.errors`,u.default.vErrors),ce.unevaluated&&oe(C),I.return((0,c._)`${u.default.errors} === 0`))}function oe({gen:C,evaluated:I,props:F,items:Z}){F instanceof c.Name&&C.assign((0,c._)`${I}.props`,F),Z instanceof c.Name&&C.assign((0,c._)`${I}.items`,Z)}function he(C,I,F,Z){let{gen:ee,schema:ce,data:ke,allErrors:Ne,opts:Me,self:je}=C,{RULES:Re}=je;if(ce.$ref&&(Me.ignoreKeywordsWithRef||!(0,d.schemaHasRulesButRef)(ce,Re))){ee.block(()=>J(C,"$ref",Re.all.$ref.definition));return}Me.jtd||re(C,I),ee.block(()=>{for(let Ue of Re.rules)vt(Ue);vt(Re.post)});function vt(Ue){(0,a.shouldUseGroup)(ce,Ue)&&(Ue.type?(ee.if((0,n.checkDataType)(Ue.type,ke,Me.strictNumbers)),ae(C,Ue),I.length===1&&I[0]===Ue.type&&F&&(ee.else(),(0,n.reportTypeError)(C)),ee.endIf()):ae(C,Ue),Ne||ee.if((0,c._)`${u.default.errors} === ${Z||0}`))}}function ae(C,I){let{gen:F,schema:Z,opts:{useDefaults:ee}}=C;ee&&(0,s.assignDefaults)(C,I.type),F.block(()=>{for(let ce of I.rules)(0,a.shouldUseRule)(Z,ce)&&J(C,ce.keyword,ce.definition,I.type)})}function re(C,I){C.schemaEnv.meta||!C.opts.strictTypes||(U(C,I),C.opts.allowUnionTypes||$(C,I),z(C,C.dataTypes))}function U(C,I){if(I.length){if(!C.dataTypes.length){C.dataTypes=I;return}I.forEach(F=>{x(C.dataTypes,F)||D(C,`type "${F}" not allowed by context "${C.dataTypes.join(",")}"`)}),k(C,I)}}function $(C,I){I.length>1&&!(I.length===2&&I.includes("null"))&&D(C,"use allowUnionTypes to allow union type keyword")}function z(C,I){let F=C.self.RULES.all;for(let Z in F){let ee=F[Z];if(typeof ee=="object"&&(0,a.shouldUseRule)(C.schema,ee)){let{type:ce}=ee.definition;ce.length&&!ce.some(ke=>A(I,ke))&&D(C,`missing type "${ce.join(",")}" for keyword "${Z}"`)}}}function A(C,I){return C.includes(I)||I==="number"&&C.includes("integer")}function x(C,I){return C.includes(I)||I==="integer"&&C.includes("number")}function k(C,I){let F=[];for(let Z of C.dataTypes)x(I,Z)?F.push(Z):I.includes("integer")&&Z==="number"&&F.push("integer");C.dataTypes=F}function D(C,I){let F=C.schemaEnv.baseId+C.errSchemaPath;I+=` at "${F}" (strictTypes)`,(0,d.checkStrictMode)(C,I,C.opts.strictTypes)}class K{constructor(I,F,Z){if((0,i.validateKeywordUsage)(I,F,Z),this.gen=I.gen,this.allErrors=I.allErrors,this.keyword=Z,this.data=I.data,this.schema=I.schema[Z],this.$data=F.$data&&I.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,d.schemaRefOrVal)(I,this.schema,Z,this.$data),this.schemaType=F.schemaType,this.parentSchema=I.schema,this.params={},this.it=I,this.def=F,this.$data)this.schemaCode=I.gen.const("vSchema",me(this.$data,I));else if(this.schemaCode=this.schemaValue,!(0,i.validSchemaType)(this.schema,F.schemaType,F.allowUndefined))throw new Error(`${Z} value must be ${JSON.stringify(F.schemaType)}`);("code"in F?F.trackErrors:F.errors!==!1)&&(this.errsCount=I.gen.const("_errs",u.default.errors))}result(I,F,Z){this.failResult((0,c.not)(I),F,Z)}failResult(I,F,Z){this.gen.if(I),Z?Z():this.error(),F?(this.gen.else(),F(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(I,F){this.failResult((0,c.not)(I),void 0,F)}fail(I){if(I===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(I),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(I){if(!this.$data)return this.fail(I);let{schemaCode:F}=this;this.fail((0,c._)`${F} !== undefined && (${(0,c.or)(this.invalid$data(),I)})`)}error(I,F,Z){if(F){this.setParams(F),this._error(I,Z),this.setParams({});return}this._error(I,Z)}_error(I,F){(I?p.reportExtraError:p.reportError)(this,this.def.error,F)}$dataError(){(0,p.reportError)(this,this.def.$dataError||p.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,p.resetErrorsCount)(this.gen,this.errsCount)}ok(I){this.allErrors||this.gen.if(I)}setParams(I,F){F?Object.assign(this.params,I):this.params=I}block$data(I,F,Z=c.nil){this.gen.block(()=>{this.check$data(I,Z),F()})}check$data(I=c.nil,F=c.nil){if(!this.$data)return;let{gen:Z,schemaCode:ee,schemaType:ce,def:ke}=this;Z.if((0,c.or)((0,c._)`${ee} === undefined`,F)),I!==c.nil&&Z.assign(I,!0),(ce.length||ke.validateSchema)&&(Z.elseIf(this.invalid$data()),this.$dataError(),I!==c.nil&&Z.assign(I,!1)),Z.else()}invalid$data(){let{gen:I,schemaCode:F,schemaType:Z,def:ee,it:ce}=this;return(0,c.or)(ke(),Ne());function ke(){if(Z.length){if(!(F instanceof c.Name))throw new Error("ajv implementation error");let Me=Array.isArray(Z)?Z:[Z];return(0,c._)`${(0,n.checkDataTypes)(Me,F,ce.opts.strictNumbers,n.DataType.Wrong)}`}return c.nil}function Ne(){if(ee.validateSchema){let Me=I.scopeValue("validate$data",{ref:ee.validateSchema});return(0,c._)`!${Me}(${F})`}return c.nil}}subschema(I,F){let Z=(0,o.getSubschema)(this.it,I);(0,o.extendSubschemaData)(Z,this.it,I),(0,o.extendSubschemaMode)(Z,I);let ee={...this.it,...Z,items:void 0,props:void 0};return b(ee,F),ee}mergeEvaluated(I,F){let{it:Z,gen:ee}=this;Z.opts.unevaluated&&(Z.props!==!0&&I.props!==void 0&&(Z.props=d.mergeEvaluated.props(ee,I.props,Z.props,F)),Z.items!==!0&&I.items!==void 0&&(Z.items=d.mergeEvaluated.items(ee,I.items,Z.items,F)))}mergeValidEvaluated(I,F){let{it:Z,gen:ee}=this;if(Z.opts.unevaluated&&(Z.props!==!0||Z.items!==!0))return ee.if(F,()=>this.mergeEvaluated(I,c.Name)),!0}}t.KeywordCxt=K;function J(C,I,F,Z){let ee=new K(C,F,I);"code"in F?F.code(ee,Z):ee.$data&&F.validate?(0,i.funcKeywordCode)(ee,F):"macro"in F?(0,i.macroKeywordCode)(ee,F):(F.compile||F.validate)&&(0,i.funcKeywordCode)(ee,F)}var de=/^\/(?:[^~]|~0|~1)*$/,se=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function me(C,{dataLevel:I,dataNames:F,dataPathArr:Z}){let ee,ce;if(C==="")return u.default.rootData;if(C[0]==="/"){if(!de.test(C))throw new Error(`Invalid JSON-pointer: ${C}`);ee=C,ce=u.default.rootData}else{let je=se.exec(C);if(!je)throw new Error(`Invalid JSON-pointer: ${C}`);let Re=+je[1];if(ee=je[2],ee==="#"){if(Re>=I)throw new Error(Me("property/index",Re));return Z[I-Re]}if(Re>I)throw new Error(Me("data",Re));if(ce=F[I-Re],!ee)return ce}let ke=ce,Ne=ee.split("/");for(let je of Ne)je&&(ce=(0,c._)`${ce}${(0,c.getProperty)((0,d.unescapeJsonPointer)(je))}`,ke=(0,c._)`${ke} && ${ce}`);return ke;function Me(je,Re){return`Cannot access ${je} ${Re} levels up, current level is ${I}`}}t.getData=me}),Gm=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});class e extends Error{constructor(a){super("validation failed"),this.errors=a,this.ajv=this.validation=!0}}t.default=e}),Pl=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=kl();class r extends Error{constructor(n,s,i,o){super(o||`can't resolve reference ${i} from id ${s}`),this.missingRef=(0,e.resolveUrl)(n,s,i),this.missingSchema=(0,e.normalizeId)((0,e.getFullPath)(n,this.missingRef))}}t.default=r}),Zm=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.resolveSchema=t.getCompilingSchema=t.resolveRef=t.compileSchema=t.SchemaEnv=void 0;var e=Ze(),r=Gm(),a=Yn(),n=kl(),s=et(),i=Rl();class o{constructor(y){var g;this.refs={},this.dynamicAnchors={};let b;typeof y.schema=="object"&&(b=y.schema),this.schema=y.schema,this.schemaId=y.schemaId,this.root=y.root||this,this.baseId=(g=y.baseId)!==null&&g!==void 0?g:(0,n.normalizeId)(b?.[y.schemaId||"$id"]),this.schemaPath=y.schemaPath,this.localRefs=y.localRefs,this.meta=y.meta,this.$async=b?.$async,this.refs={}}}t.SchemaEnv=o;function c(h){let y=d.call(this,h);if(y)return y;let g=(0,n.getFullPath)(this.opts.uriResolver,h.root.baseId),{es5:b,lines:w}=this.opts.code,{ownProperties:S}=this.opts,E=new e.CodeGen(this.scope,{es5:b,lines:w,ownProperties:S}),T;h.$async&&(T=E.scopeValue("Error",{ref:r.default,code:(0,e._)`require("ajv/dist/runtime/validation_error").default`}));let R=E.scopeName("validate");h.validateName=R;let M={gen:E,allErrors:this.opts.allErrors,data:a.default.data,parentData:a.default.parentData,parentDataProperty:a.default.parentDataProperty,dataNames:[a.default.data],dataPathArr:[e.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:E.scopeValue("schema",this.opts.code.source===!0?{ref:h.schema,code:(0,e.stringify)(h.schema)}:{ref:h.schema}),validateName:R,ValidationError:T,schema:h.schema,schemaEnv:h,rootId:g,baseId:h.baseId||g,schemaPath:e.nil,errSchemaPath:h.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,e._)`""`,opts:this.opts,self:this},j;try{this._compilations.add(h),(0,i.validateFunctionCode)(M),E.optimize(this.opts.code.optimize);let q=E.toString();j=`${E.scopeRefs(a.default.scope)}return ${q}`,this.opts.code.process&&(j=this.opts.code.process(j,h));let N=new Function(`${a.default.self}`,`${a.default.scope}`,j)(this,this.scope.get());if(this.scope.value(R,{ref:N}),N.errors=null,N.schema=h.schema,N.schemaEnv=h,h.$async&&(N.$async=!0),this.opts.code.source===!0&&(N.source={validateName:R,validateCode:q,scopeValues:E._values}),this.opts.unevaluated){let{props:W,items:oe}=M;N.evaluated={props:W instanceof e.Name?void 0:W,items:oe instanceof e.Name?void 0:oe,dynamicProps:W instanceof e.Name,dynamicItems:oe instanceof e.Name},N.source&&(N.source.evaluated=(0,e.stringify)(N.evaluated))}return h.validate=N,h}catch(q){throw delete h.validate,delete h.validateName,j&&this.logger.error("Error compiling schema, function code:",j),q}finally{this._compilations.delete(h)}}t.compileSchema=c;function u(h,y,g){var b;g=(0,n.resolveUrl)(this.opts.uriResolver,y,g);let w=h.refs[g];if(w)return w;let S=f.call(this,h,g);if(S===void 0){let E=(b=h.localRefs)===null||b===void 0?void 0:b[g],{schemaId:T}=this.opts;E&&(S=new o({schema:E,schemaId:T,root:h,baseId:y}))}if(S!==void 0)return h.refs[g]=l.call(this,S)}t.resolveRef=u;function l(h){return(0,n.inlineRef)(h.schema,this.opts.inlineRefs)?h.schema:h.validate?h:c.call(this,h)}function d(h){for(let y of this._compilations)if(p(y,h))return y}t.getCompilingSchema=d;function p(h,y){return h.schema===y.schema&&h.root===y.root&&h.baseId===y.baseId}function f(h,y){let g;for(;typeof(g=this.refs[y])=="string";)y=g;return g||this.schemas[y]||v.call(this,h,y)}function v(h,y){let g=this.opts.uriResolver.parse(y),b=(0,n._getFullPath)(this.opts.uriResolver,g),w=(0,n.getFullPath)(this.opts.uriResolver,h.baseId,void 0);if(Object.keys(h.schema).length>0&&b===w)return m.call(this,g,h);let S=(0,n.normalizeId)(b),E=this.refs[S]||this.schemas[S];if(typeof E=="string"){let T=v.call(this,h,E);return typeof T?.schema!="object"?void 0:m.call(this,g,T)}if(typeof E?.schema=="object"){if(E.validate||c.call(this,E),S===(0,n.normalizeId)(y)){let{schema:T}=E,{schemaId:R}=this.opts,M=T[R];return M&&(w=(0,n.resolveUrl)(this.opts.uriResolver,w,M)),new o({schema:T,schemaId:R,root:h,baseId:w})}return m.call(this,g,E)}}t.resolveSchema=v;var _=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function m(h,{baseId:y,schema:g,root:b}){var w;if(((w=h.fragment)===null||w===void 0?void 0:w[0])!=="/")return;for(let T of h.fragment.slice(1).split("/")){if(typeof g=="boolean")return;let R=g[(0,s.unescapeFragment)(T)];if(R===void 0)return;g=R;let M=typeof g=="object"&&g[this.opts.schemaId];!_.has(T)&&M&&(y=(0,n.resolveUrl)(this.opts.uriResolver,y,M))}let S;if(typeof g!="boolean"&&g.$ref&&!(0,s.schemaHasRulesButRef)(g,this.RULES)){let T=(0,n.resolveUrl)(this.opts.uriResolver,y,g.$ref);S=v.call(this,b,T)}let{schemaId:E}=this.opts;if(S=S||new o({schema:g,schemaId:E,root:b,baseId:y}),S.schema!==S.root.schema)return S}}),sq=Q((t,e)=>{e.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}}),iq=Q((t,e)=>{var r={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};e.exports={HEX:r}}),oq=Q((t,e)=>{var{HEX:r}=iq(),a=/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u;function n(h){if(u(h,".")<3)return{host:h,isIPV4:!1};let y=h.match(a)||[],[g]=y;return g?{host:c(g,"."),isIPV4:!0}:{host:h,isIPV4:!1}}function s(h,y=!1){let g="",b=!0;for(let w of h){if(r[w]===void 0)return;w!=="0"&&b===!0&&(b=!1),b||(g+=w)}return y&&g.length===0&&(g="0"),g}function i(h){let y=0,g={error:!1,address:"",zone:""},b=[],w=[],S=!1,E=!1,T=!1;function R(){if(w.length){if(S===!1){let M=s(w);if(M!==void 0)b.push(M);else return g.error=!0,!1}w.length=0}return!0}for(let M=0;M7){g.error=!0;break}M-1>=0&&h[M-1]===":"&&(E=!0);continue}else if(j==="%"){if(!R())break;S=!0}else{w.push(j);continue}}return w.length&&(S?g.zone=w.join(""):T?b.push(w.join("")):b.push(s(w))),g.address=b.join(""),g}function o(h){if(u(h,":")<2)return{host:h,isIPV6:!1};let y=i(h);if(y.error)return{host:h,isIPV6:!1};{let g=y.address,b=y.address;return y.zone&&(g+="%"+y.zone,b+="%25"+y.zone),{host:g,escapedHost:b,isIPV6:!0}}}function c(h,y){let g="",b=!0,w=h.length;for(let S=0;S{var r=/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu,a=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;function n(b){return typeof b.secure=="boolean"?b.secure:String(b.scheme).toLowerCase()==="wss"}function s(b){return b.host||(b.error=b.error||"HTTP URIs must have a host."),b}function i(b){let w=String(b.scheme).toLowerCase()==="https";return(b.port===(w?443:80)||b.port==="")&&(b.port=void 0),b.path||(b.path="/"),b}function o(b){return b.secure=n(b),b.resourceName=(b.path||"/")+(b.query?"?"+b.query:""),b.path=void 0,b.query=void 0,b}function c(b){if((b.port===(n(b)?443:80)||b.port==="")&&(b.port=void 0),typeof b.secure=="boolean"&&(b.scheme=b.secure?"wss":"ws",b.secure=void 0),b.resourceName){let[w,S]=b.resourceName.split("?");b.path=w&&w!=="/"?w:void 0,b.query=S,b.resourceName=void 0}return b.fragment=void 0,b}function u(b,w){if(!b.path)return b.error="URN can not be parsed",b;let S=b.path.match(a);if(S){let E=w.scheme||b.scheme||"urn";b.nid=S[1].toLowerCase(),b.nss=S[2];let T=`${E}:${w.nid||b.nid}`,R=g[T];b.path=void 0,R&&(b=R.parse(b,w))}else b.error=b.error||"URN can not be parsed.";return b}function l(b,w){let S=w.scheme||b.scheme||"urn",E=b.nid.toLowerCase(),T=`${S}:${w.nid||E}`,R=g[T];R&&(b=R.serialize(b,w));let M=b,j=b.nss;return M.path=`${E||w.nid}:${j}`,w.skipEscape=!0,M}function d(b,w){let S=b;return S.uuid=S.nss,S.nss=void 0,!w.tolerant&&(!S.uuid||!r.test(S.uuid))&&(S.error=S.error||"UUID is not valid."),S}function p(b){let w=b;return w.nss=(b.uuid||"").toLowerCase(),w}var f={scheme:"http",domainHost:!0,parse:s,serialize:i},v={scheme:"https",domainHost:f.domainHost,parse:s,serialize:i},_={scheme:"ws",domainHost:!0,parse:o,serialize:c},m={scheme:"wss",domainHost:_.domainHost,parse:_.parse,serialize:_.serialize},h={scheme:"urn",parse:u,serialize:l,skipNormalize:!0},y={scheme:"urn:uuid",parse:d,serialize:p,skipNormalize:!0},g={http:f,https:v,ws:_,wss:m,urn:h,"urn:uuid":y};e.exports=g}),PT=Q((t,e)=>{var{normalizeIPv6:r,normalizeIPv4:a,removeDotSegments:n,recomposeAuthority:s,normalizeComponentEncoding:i}=oq(),o=cq();function c(y,g){return typeof y=="string"?y=p(m(y,g),g):typeof y=="object"&&(y=m(p(y,g),g)),y}function u(y,g,b){let w=Object.assign({scheme:"null"},b),S=l(m(y,w),m(g,w),w,!0);return p(S,{...w,skipEscape:!0})}function l(y,g,b,w){let S={};return w||(y=m(p(y,b),b),g=m(p(g,b),b)),b=b||{},!b.tolerant&&g.scheme?(S.scheme=g.scheme,S.userinfo=g.userinfo,S.host=g.host,S.port=g.port,S.path=n(g.path||""),S.query=g.query):(g.userinfo!==void 0||g.host!==void 0||g.port!==void 0?(S.userinfo=g.userinfo,S.host=g.host,S.port=g.port,S.path=n(g.path||""),S.query=g.query):(g.path?(g.path.charAt(0)==="/"?S.path=n(g.path):((y.userinfo!==void 0||y.host!==void 0||y.port!==void 0)&&!y.path?S.path="/"+g.path:y.path?S.path=y.path.slice(0,y.path.lastIndexOf("/")+1)+g.path:S.path=g.path,S.path=n(S.path)),S.query=g.query):(S.path=y.path,g.query!==void 0?S.query=g.query:S.query=y.query),S.userinfo=y.userinfo,S.host=y.host,S.port=y.port),S.scheme=y.scheme),S.fragment=g.fragment,S}function d(y,g,b){return typeof y=="string"?(y=unescape(y),y=p(i(m(y,b),!0),{...b,skipEscape:!0})):typeof y=="object"&&(y=p(i(y,!0),{...b,skipEscape:!0})),typeof g=="string"?(g=unescape(g),g=p(i(m(g,b),!0),{...b,skipEscape:!0})):typeof g=="object"&&(g=p(i(g,!0),{...b,skipEscape:!0})),y.toLowerCase()===g.toLowerCase()}function p(y,g){let b={host:y.host,scheme:y.scheme,userinfo:y.userinfo,port:y.port,path:y.path,query:y.query,nid:y.nid,nss:y.nss,uuid:y.uuid,fragment:y.fragment,reference:y.reference,resourceName:y.resourceName,secure:y.secure,error:""},w=Object.assign({},g),S=[],E=o[(w.scheme||b.scheme||"").toLowerCase()];E&&E.serialize&&E.serialize(b,w),b.path!==void 0&&(w.skipEscape?b.path=unescape(b.path):(b.path=escape(b.path),b.scheme!==void 0&&(b.path=b.path.split("%3A").join(":")))),w.reference!=="suffix"&&b.scheme&&S.push(b.scheme,":");let T=s(b);if(T!==void 0&&(w.reference!=="suffix"&&S.push("//"),S.push(T),b.path&&b.path.charAt(0)!=="/"&&S.push("/")),b.path!==void 0){let R=b.path;!w.absolutePath&&(!E||!E.absolutePath)&&(R=n(R)),T===void 0&&(R=R.replace(/^\/\//u,"/%2F")),S.push(R)}return b.query!==void 0&&S.push("?",b.query),b.fragment!==void 0&&S.push("#",b.fragment),S.join("")}var f=Array.from({length:127},(y,g)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(g)));function v(y){let g=0;for(let b=0,w=y.length;b126||f[g])return!0;return!1}var _=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function m(y,g){let b=Object.assign({},g),w={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},S=y.indexOf("%")!==-1,E=!1;b.reference==="suffix"&&(y=(b.scheme?b.scheme+":":"")+"//"+y);let T=y.match(_);if(T){if(w.scheme=T[1],w.userinfo=T[3],w.host=T[4],w.port=parseInt(T[5],10),w.path=T[6]||"",w.query=T[7],w.fragment=T[8],isNaN(w.port)&&(w.port=T[5]),w.host){let M=a(w.host);if(M.isIPV4===!1){let j=r(M.host);w.host=j.host.toLowerCase(),E=j.isIPV6}else w.host=M.host,E=!0}w.scheme===void 0&&w.userinfo===void 0&&w.host===void 0&&w.port===void 0&&w.query===void 0&&!w.path?w.reference="same-document":w.scheme===void 0?w.reference="relative":w.fragment===void 0?w.reference="absolute":w.reference="uri",b.reference&&b.reference!=="suffix"&&b.reference!==w.reference&&(w.error=w.error||"URI is not a "+b.reference+" reference.");let R=o[(b.scheme||w.scheme||"").toLowerCase()];if(!b.unicodeSupport&&(!R||!R.unicodeSupport)&&w.host&&(b.domainHost||R&&R.domainHost)&&E===!1&&v(w.host))try{w.host=URL.domainToASCII(w.host.toLowerCase())}catch(M){w.error=w.error||"Host's domain name can not be converted to ASCII: "+M}(!R||R&&!R.skipNormalize)&&(S&&w.scheme!==void 0&&(w.scheme=unescape(w.scheme)),S&&w.host!==void 0&&(w.host=unescape(w.host)),w.path&&(w.path=escape(unescape(w.path))),w.fragment&&(w.fragment=encodeURI(decodeURIComponent(w.fragment)))),R&&R.parse&&R.parse(w,b)}else w.error=w.error||"URI can not be parsed.";return w}var h={SCHEMES:o,normalize:c,resolve:u,resolveComponents:l,equal:d,serialize:p,parse:m};e.exports=h,e.exports.default=h,e.exports.fastUri=h}),uq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=PT();e.code='require("ajv/dist/runtime/uri").default',t.default=e}),lq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;var e=Rl();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return e.KeywordCxt}});var r=Ze();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return r._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return r.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return r.CodeGen}});var a=Gm(),n=Pl(),s=kT(),i=Zm(),o=Ze(),c=kl(),u=hl(),l=et(),d=sq(),p=uq(),f=(U,$)=>new RegExp(U,$);f.code="new RegExp";var v=["removeAdditional","useDefaults","coerceTypes"],_=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),m={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},h={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},y=200;function g(U){var $,z,A,x,k,D,K,J,de,se,me,C,I,F,Z,ee,ce,ke,Ne,Me,je,Re,vt,Ue,yr;let Zt=U.strict,Nt=($=U.code)===null||$===void 0?void 0:$.optimize,Lr=Nt===!0||Nt===void 0?1:Nt||0,On=(A=(z=U.code)===null||z===void 0?void 0:z.regExp)!==null&&A!==void 0?A:f,rs=(x=U.uriResolver)!==null&&x!==void 0?x:p.default;return{strictSchema:(D=(k=U.strictSchema)!==null&&k!==void 0?k:Zt)!==null&&D!==void 0?D:!0,strictNumbers:(J=(K=U.strictNumbers)!==null&&K!==void 0?K:Zt)!==null&&J!==void 0?J:!0,strictTypes:(se=(de=U.strictTypes)!==null&&de!==void 0?de:Zt)!==null&&se!==void 0?se:"log",strictTuples:(C=(me=U.strictTuples)!==null&&me!==void 0?me:Zt)!==null&&C!==void 0?C:"log",strictRequired:(F=(I=U.strictRequired)!==null&&I!==void 0?I:Zt)!==null&&F!==void 0?F:!1,code:U.code?{...U.code,optimize:Lr,regExp:On}:{optimize:Lr,regExp:On},loopRequired:(Z=U.loopRequired)!==null&&Z!==void 0?Z:y,loopEnum:(ee=U.loopEnum)!==null&&ee!==void 0?ee:y,meta:(ce=U.meta)!==null&&ce!==void 0?ce:!0,messages:(ke=U.messages)!==null&&ke!==void 0?ke:!0,inlineRefs:(Ne=U.inlineRefs)!==null&&Ne!==void 0?Ne:!0,schemaId:(Me=U.schemaId)!==null&&Me!==void 0?Me:"$id",addUsedSchema:(je=U.addUsedSchema)!==null&&je!==void 0?je:!0,validateSchema:(Re=U.validateSchema)!==null&&Re!==void 0?Re:!0,validateFormats:(vt=U.validateFormats)!==null&&vt!==void 0?vt:!0,unicodeRegExp:(Ue=U.unicodeRegExp)!==null&&Ue!==void 0?Ue:!0,int32range:(yr=U.int32range)!==null&&yr!==void 0?yr:!0,uriResolver:rs}}class b{constructor($={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,$=this.opts={...$,...g($)};let{es5:z,lines:A}=this.opts.code;this.scope=new o.ValueScope({scope:{},prefixes:_,es5:z,lines:A}),this.logger=q($.logger);let x=$.validateFormats;$.validateFormats=!1,this.RULES=(0,s.getRules)(),w.call(this,m,$,"NOT SUPPORTED"),w.call(this,h,$,"DEPRECATED","warn"),this._metaOpts=M.call(this),$.formats&&T.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),$.keywords&&R.call(this,$.keywords),typeof $.meta=="object"&&this.addMetaSchema($.meta),E.call(this),$.validateFormats=x}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:$,meta:z,schemaId:A}=this.opts,x=d;A==="id"&&(x={...d},x.id=x.$id,delete x.$id),z&&$&&this.addMetaSchema(x,x[A],!1)}defaultMeta(){let{meta:$,schemaId:z}=this.opts;return this.opts.defaultMeta=typeof $=="object"?$[z]||$:void 0}validate($,z){let A;if(typeof $=="string"){if(A=this.getSchema($),!A)throw new Error(`no schema with key or ref "${$}"`)}else A=this.compile($);let x=A(z);return"$async"in A||(this.errors=A.errors),x}compile($,z){let A=this._addSchema($,z);return A.validate||this._compileSchemaEnv(A)}compileAsync($,z){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:A}=this.opts;return x.call(this,$,z);async function x(se,me){await k.call(this,se.$schema);let C=this._addSchema(se,me);return C.validate||D.call(this,C)}async function k(se){se&&!this.getSchema(se)&&await x.call(this,{$ref:se},!0)}async function D(se){try{return this._compileSchemaEnv(se)}catch(me){if(!(me instanceof n.default))throw me;return K.call(this,me),await J.call(this,me.missingSchema),D.call(this,se)}}function K({missingSchema:se,missingRef:me}){if(this.refs[se])throw new Error(`AnySchema ${se} is loaded but ${me} cannot be resolved`)}async function J(se){let me=await de.call(this,se);this.refs[se]||await k.call(this,me.$schema),this.refs[se]||this.addSchema(me,se,z)}async function de(se){let me=this._loading[se];if(me)return me;try{return await(this._loading[se]=A(se))}finally{delete this._loading[se]}}}addSchema($,z,A,x=this.opts.validateSchema){if(Array.isArray($)){for(let D of $)this.addSchema(D,void 0,A,x);return this}let k;if(typeof $=="object"){let{schemaId:D}=this.opts;if(k=$[D],k!==void 0&&typeof k!="string")throw new Error(`schema ${D} must be string`)}return z=(0,c.normalizeId)(z||k),this._checkUnique(z),this.schemas[z]=this._addSchema($,A,z,x,!0),this}addMetaSchema($,z,A=this.opts.validateSchema){return this.addSchema($,z,!0,A),this}validateSchema($,z){if(typeof $=="boolean")return!0;let A;if(A=$.$schema,A!==void 0&&typeof A!="string")throw new Error("$schema must be a string");if(A=A||this.opts.defaultMeta||this.defaultMeta(),!A)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let x=this.validate(A,$);if(!x&&z){let k="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(k);else throw new Error(k)}return x}getSchema($){let z;for(;typeof(z=S.call(this,$))=="string";)$=z;if(z===void 0){let{schemaId:A}=this.opts,x=new i.SchemaEnv({schema:{},schemaId:A});if(z=i.resolveSchema.call(this,x,$),!z)return;this.refs[$]=z}return z.validate||this._compileSchemaEnv(z)}removeSchema($){if($ instanceof RegExp)return this._removeAllSchemas(this.schemas,$),this._removeAllSchemas(this.refs,$),this;switch(typeof $){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let z=S.call(this,$);return typeof z=="object"&&this._cache.delete(z.schema),delete this.schemas[$],delete this.refs[$],this}case"object":{let z=$;this._cache.delete(z);let A=$[this.opts.schemaId];return A&&(A=(0,c.normalizeId)(A),delete this.schemas[A],delete this.refs[A]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary($){for(let z of $)this.addKeyword(z);return this}addKeyword($,z){let A;if(typeof $=="string")A=$,typeof z=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),z.keyword=A);else if(typeof $=="object"&&z===void 0){if(z=$,A=z.keyword,Array.isArray(A)&&!A.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(N.call(this,A,z),!z)return(0,l.eachItem)(A,k=>W.call(this,k)),this;he.call(this,z);let x={...z,type:(0,u.getJSONTypes)(z.type),schemaType:(0,u.getJSONTypes)(z.schemaType)};return(0,l.eachItem)(A,x.type.length===0?k=>W.call(this,k,x):k=>x.type.forEach(D=>W.call(this,k,x,D))),this}getKeyword($){let z=this.RULES.all[$];return typeof z=="object"?z.definition:!!z}removeKeyword($){let{RULES:z}=this;delete z.keywords[$],delete z.all[$];for(let A of z.rules){let x=A.rules.findIndex(k=>k.keyword===$);x>=0&&A.rules.splice(x,1)}return this}addFormat($,z){return typeof z=="string"&&(z=new RegExp(z)),this.formats[$]=z,this}errorsText($=this.errors,{separator:z=", ",dataVar:A="data"}={}){return!$||$.length===0?"No errors":$.map(x=>`${A}${x.instancePath} ${x.message}`).reduce((x,k)=>x+z+k)}$dataMetaSchema($,z){let A=this.RULES.all;$=JSON.parse(JSON.stringify($));for(let x of z){let k=x.split("/").slice(1),D=$;for(let K of k)D=D[K];for(let K in A){let J=A[K];if(typeof J!="object")continue;let{$data:de}=J.definition,se=D[K];de&&se&&(D[K]=re(se))}}return $}_removeAllSchemas($,z){for(let A in $){let x=$[A];(!z||z.test(A))&&(typeof x=="string"?delete $[A]:x&&!x.meta&&(this._cache.delete(x.schema),delete $[A]))}}_addSchema($,z,A,x=this.opts.validateSchema,k=this.opts.addUsedSchema){let D,{schemaId:K}=this.opts;if(typeof $=="object")D=$[K];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof $!="boolean")throw new Error("schema must be object or boolean")}let J=this._cache.get($);if(J!==void 0)return J;A=(0,c.normalizeId)(D||A);let de=c.getSchemaRefs.call(this,$,A);return J=new i.SchemaEnv({schema:$,schemaId:K,meta:z,baseId:A,localRefs:de}),this._cache.set(J.schema,J),k&&!A.startsWith("#")&&(A&&this._checkUnique(A),this.refs[A]=J),x&&this.validateSchema($,!0),J}_checkUnique($){if(this.schemas[$]||this.refs[$])throw new Error(`schema with key or id "${$}" already exists`)}_compileSchemaEnv($){if($.meta?this._compileMetaSchema($):i.compileSchema.call(this,$),!$.validate)throw new Error("ajv implementation error");return $.validate}_compileMetaSchema($){let z=this.opts;this.opts=this._metaOpts;try{i.compileSchema.call(this,$)}finally{this.opts=z}}}b.ValidationError=a.default,b.MissingRefError=n.default,t.default=b;function w(U,$,z,A="error"){for(let x in U){let k=x;k in $&&this.logger[A](`${z}: option ${x}. ${U[k]}`)}}function S(U){return U=(0,c.normalizeId)(U),this.schemas[U]||this.refs[U]}function E(){let U=this.opts.schemas;if(U)if(Array.isArray(U))this.addSchema(U);else for(let $ in U)this.addSchema(U[$],$)}function T(){for(let U in this.opts.formats){let $=this.opts.formats[U];$&&this.addFormat(U,$)}}function R(U){if(Array.isArray(U)){this.addVocabulary(U);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let $ in U){let z=U[$];z.keyword||(z.keyword=$),this.addKeyword(z)}}function M(){let U={...this.opts};for(let $ of v)delete U[$];return U}var j={log(){},warn(){},error(){}};function q(U){if(U===!1)return j;if(U===void 0)return console;if(U.log&&U.warn&&U.error)return U;throw new Error("logger must implement log, warn and error methods")}var H=/^[a-z_$][a-z0-9_$:-]*$/i;function N(U,$){let{RULES:z}=this;if((0,l.eachItem)(U,A=>{if(z.keywords[A])throw new Error(`Keyword ${A} is already defined`);if(!H.test(A))throw new Error(`Keyword ${A} has invalid name`)}),!!$&&$.$data&&!("code"in $||"validate"in $))throw new Error('$data keyword must have "code" or "validate" function')}function W(U,$,z){var A;let x=$?.post;if(z&&x)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:k}=this,D=x?k.post:k.rules.find(({type:J})=>J===z);if(D||(D={type:z,rules:[]},k.rules.push(D)),k.keywords[U]=!0,!$)return;let K={keyword:U,definition:{...$,type:(0,u.getJSONTypes)($.type),schemaType:(0,u.getJSONTypes)($.schemaType)}};$.before?oe.call(this,D,K,$.before):D.rules.push(K),k.all[U]=K,(A=$.implements)===null||A===void 0||A.forEach(J=>this.addKeyword(J))}function oe(U,$,z){let A=U.rules.findIndex(x=>x.keyword===z);A>=0?U.rules.splice(A,0,$):(U.rules.push($),this.logger.warn(`rule ${z} is not defined`))}function he(U){let{metaSchema:$}=U;$!==void 0&&(U.$data&&this.opts.$data&&($=re($)),U.validateSchema=this.compile($,!0))}var ae={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function re(U){return{anyOf:[U,ae]}}}),dq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};t.default=e}),pq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.callRef=t.getValidate=void 0;var e=Pl(),r=Gr(),a=Ze(),n=Yn(),s=Zm(),i=et(),o={keyword:"$ref",schemaType:"string",code(l){let{gen:d,schema:p,it:f}=l,{baseId:v,schemaEnv:_,validateName:m,opts:h,self:y}=f,{root:g}=_;if((p==="#"||p==="#/")&&v===g.baseId)return w();let b=s.resolveRef.call(y,g,v,p);if(b===void 0)throw new e.default(f.opts.uriResolver,v,p);if(b instanceof s.SchemaEnv)return S(b);return E(b);function w(){if(_===g)return u(l,m,_,_.$async);let T=d.scopeValue("root",{ref:g});return u(l,(0,a._)`${T}.validate`,g,g.$async)}function S(T){let R=c(l,T);u(l,R,T,T.$async)}function E(T){let R=d.scopeValue("schema",h.code.source===!0?{ref:T,code:(0,a.stringify)(T)}:{ref:T}),M=d.name("valid"),j=l.subschema({schema:T,dataTypes:[],schemaPath:a.nil,topSchemaRef:R,errSchemaPath:p},M);l.mergeEvaluated(j),l.ok(M)}}};function c(l,d){let{gen:p}=l;return d.validate?p.scopeValue("validate",{ref:d.validate}):(0,a._)`${p.scopeValue("wrapper",{ref:d})}.validate`}t.getValidate=c;function u(l,d,p,f){let{gen:v,it:_}=l,{allErrors:m,schemaEnv:h,opts:y}=_,g=y.passContext?n.default.this:a.nil;f?b():w();function b(){if(!h.$async)throw new Error("async schema referenced by sync schema");let T=v.let("valid");v.try(()=>{v.code((0,a._)`await ${(0,r.callValidateCode)(l,d,g)}`),E(d),m||v.assign(T,!0)},R=>{v.if((0,a._)`!(${R} instanceof ${_.ValidationError})`,()=>v.throw(R)),S(R),m||v.assign(T,!1)}),l.ok(T)}function w(){l.result((0,r.callValidateCode)(l,d,g),()=>E(d),()=>S(d))}function S(T){let R=(0,a._)`${T}.errors`;v.assign(n.default.vErrors,(0,a._)`${n.default.vErrors} === null ? ${R} : ${n.default.vErrors}.concat(${R})`),v.assign(n.default.errors,(0,a._)`${n.default.vErrors}.length`)}function E(T){var R;if(!_.opts.unevaluated)return;let M=(R=p?.validate)===null||R===void 0?void 0:R.evaluated;if(_.props!==!0)if(M&&!M.dynamicProps)M.props!==void 0&&(_.props=i.mergeEvaluated.props(v,M.props,_.props));else{let j=v.var("props",(0,a._)`${T}.evaluated.props`);_.props=i.mergeEvaluated.props(v,j,_.props,a.Name)}if(_.items!==!0)if(M&&!M.dynamicItems)M.items!==void 0&&(_.items=i.mergeEvaluated.items(v,M.items,_.items));else{let j=v.var("items",(0,a._)`${T}.evaluated.items`);_.items=i.mergeEvaluated.items(v,j,_.items,a.Name)}}}t.callRef=u,t.default=o}),fq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=dq(),r=pq(),a=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",e.default,r.default];t.default=a}),mq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=e.operators,a={maximum:{okStr:"<=",ok:r.LTE,fail:r.GT},minimum:{okStr:">=",ok:r.GTE,fail:r.LT},exclusiveMaximum:{okStr:"<",ok:r.LT,fail:r.GTE},exclusiveMinimum:{okStr:">",ok:r.GT,fail:r.LTE}},n={message:({keyword:i,schemaCode:o})=>(0,e.str)`must be ${a[i].okStr} ${o}`,params:({keyword:i,schemaCode:o})=>(0,e._)`{comparison: ${a[i].okStr}, limit: ${o}}`},s={keyword:Object.keys(a),type:"number",schemaType:"number",$data:!0,error:n,code(i){let{keyword:o,data:c,schemaCode:u}=i;i.fail$data((0,e._)`${c} ${a[o].fail} ${u} || isNaN(${c})`)}};t.default=s}),hq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r={message:({schemaCode:n})=>(0,e.str)`must be multiple of ${n}`,params:({schemaCode:n})=>(0,e._)`{multipleOf: ${n}}`},a={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:r,code(n){let{gen:s,data:i,schemaCode:o,it:c}=n,u=c.opts.multipleOfPrecision,l=s.let("res"),d=u?(0,e._)`Math.abs(Math.round(${l}) - ${l}) > 1e-${u}`:(0,e._)`${l} !== parseInt(${l})`;n.fail$data((0,e._)`(${o} === 0 || (${l} = ${i}/${o}, ${d}))`)}};t.default=a}),vq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});function e(r){let a=r.length,n=0,s=0,i;for(;s=55296&&i<=56319&&s{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=et(),a=vq(),n={message({keyword:i,schemaCode:o}){let c=i==="maxLength"?"more":"fewer";return(0,e.str)`must NOT have ${c} than ${o} characters`},params:({schemaCode:i})=>(0,e._)`{limit: ${i}}`},s={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:n,code(i){let{keyword:o,data:c,schemaCode:u,it:l}=i,d=o==="maxLength"?e.operators.GT:e.operators.LT,p=l.opts.unicode===!1?(0,e._)`${c}.length`:(0,e._)`${(0,r.useFunc)(i.gen,a.default)}(${c})`;i.fail$data((0,e._)`${p} ${d} ${u}`)}};t.default=s}),yq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Gr(),r=Ze(),a={message:({schemaCode:s})=>(0,r.str)`must match pattern "${s}"`,params:({schemaCode:s})=>(0,r._)`{pattern: ${s}}`},n={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:a,code(s){let{data:i,$data:o,schema:c,schemaCode:u,it:l}=s,d=l.opts.unicodeRegExp?"u":"",p=o?(0,r._)`(new RegExp(${u}, ${d}))`:(0,e.usePattern)(s,c);s.fail$data((0,r._)`!${p}.test(${i})`)}};t.default=n}),_q=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r={message({keyword:n,schemaCode:s}){let i=n==="maxProperties"?"more":"fewer";return(0,e.str)`must NOT have ${i} than ${s} properties`},params:({schemaCode:n})=>(0,e._)`{limit: ${n}}`},a={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:r,code(n){let{keyword:s,data:i,schemaCode:o}=n,c=s==="maxProperties"?e.operators.GT:e.operators.LT;n.fail$data((0,e._)`Object.keys(${i}).length ${c} ${o}`)}};t.default=a}),bq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Gr(),r=Ze(),a=et(),n={message:({params:{missingProperty:i}})=>(0,r.str)`must have required property '${i}'`,params:({params:{missingProperty:i}})=>(0,r._)`{missingProperty: ${i}}`},s={keyword:"required",type:"object",schemaType:"array",$data:!0,error:n,code(i){let{gen:o,schema:c,schemaCode:u,data:l,$data:d,it:p}=i,{opts:f}=p;if(!d&&c.length===0)return;let v=c.length>=f.loopRequired;if(p.allErrors?_():m(),f.strictRequired){let g=i.parentSchema.properties,{definedProperties:b}=i.it;for(let w of c)if(g?.[w]===void 0&&!b.has(w)){let S=p.schemaEnv.baseId+p.errSchemaPath,E=`required property "${w}" is not defined at "${S}" (strictRequired)`;(0,a.checkStrictMode)(p,E,p.opts.strictRequired)}}function _(){if(v||d)i.block$data(r.nil,h);else for(let g of c)(0,e.checkReportMissingProp)(i,g)}function m(){let g=o.let("missing");if(v||d){let b=o.let("valid",!0);i.block$data(b,()=>y(g,b)),i.ok(b)}else o.if((0,e.checkMissingProp)(i,c,g)),(0,e.reportMissingProp)(i,g),o.else()}function h(){o.forOf("prop",u,g=>{i.setParams({missingProperty:g}),o.if((0,e.noPropertyInData)(o,l,g,f.ownProperties),()=>i.error())})}function y(g,b){i.setParams({missingProperty:g}),o.forOf(g,u,()=>{o.assign(b,(0,e.propertyInData)(o,l,g,f.ownProperties)),o.if((0,r.not)(b),()=>{i.error(),o.break()})},r.nil)}}};t.default=s}),Sq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r={message({keyword:n,schemaCode:s}){let i=n==="maxItems"?"more":"fewer";return(0,e.str)`must NOT have ${i} than ${s} items`},params:({schemaCode:n})=>(0,e._)`{limit: ${n}}`},a={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:r,code(n){let{keyword:s,data:i,schemaCode:o}=n,c=s==="maxItems"?e.operators.GT:e.operators.LT;n.fail$data((0,e._)`${i}.length ${c} ${o}`)}};t.default=a}),Wm=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Tl();e.code='require("ajv/dist/runtime/equal").default',t.default=e}),xq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=hl(),r=Ze(),a=et(),n=Wm(),s={message:({params:{i:o,j:c}})=>(0,r.str)`must NOT have duplicate items (items ## ${c} and ${o} are identical)`,params:({params:{i:o,j:c}})=>(0,r._)`{i: ${o}, j: ${c}}`},i={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:s,code(o){let{gen:c,data:u,$data:l,schema:d,parentSchema:p,schemaCode:f,it:v}=o;if(!l&&!d)return;let _=c.let("valid"),m=p.items?(0,e.getSchemaTypes)(p.items):[];o.block$data(_,h,(0,r._)`${f} === false`),o.ok(_);function h(){let w=c.let("i",(0,r._)`${u}.length`),S=c.let("j");o.setParams({i:w,j:S}),c.assign(_,!0),c.if((0,r._)`${w} > 1`,()=>(y()?g:b)(w,S))}function y(){return m.length>0&&!m.some(w=>w==="object"||w==="array")}function g(w,S){let E=c.name("item"),T=(0,e.checkDataTypes)(m,E,v.opts.strictNumbers,e.DataType.Wrong),R=c.const("indices",(0,r._)`{}`);c.for((0,r._)`;${w}--;`,()=>{c.let(E,(0,r._)`${u}[${w}]`),c.if(T,(0,r._)`continue`),m.length>1&&c.if((0,r._)`typeof ${E} == "string"`,(0,r._)`${E} += "_"`),c.if((0,r._)`typeof ${R}[${E}] == "number"`,()=>{c.assign(S,(0,r._)`${R}[${E}]`),o.error(),c.assign(_,!1).break()}).code((0,r._)`${R}[${E}] = ${w}`)})}function b(w,S){let E=(0,a.useFunc)(c,n.default),T=c.name("outer");c.label(T).for((0,r._)`;${w}--;`,()=>c.for((0,r._)`${S} = ${w}; ${S}--;`,()=>c.if((0,r._)`${E}(${u}[${w}], ${u}[${S}])`,()=>{o.error(),c.assign(_,!1).break(T)})))}}};t.default=i}),wq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=et(),a=Wm(),n={message:"must be equal to constant",params:({schemaCode:i})=>(0,e._)`{allowedValue: ${i}}`},s={keyword:"const",$data:!0,error:n,code(i){let{gen:o,data:c,$data:u,schemaCode:l,schema:d}=i;u||d&&typeof d=="object"?i.fail$data((0,e._)`!${(0,r.useFunc)(o,a.default)}(${c}, ${l})`):i.fail((0,e._)`${d} !== ${c}`)}};t.default=s}),Eq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=et(),a=Wm(),n={message:"must be equal to one of the allowed values",params:({schemaCode:i})=>(0,e._)`{allowedValues: ${i}}`},s={keyword:"enum",schemaType:"array",$data:!0,error:n,code(i){let{gen:o,data:c,$data:u,schema:l,schemaCode:d,it:p}=i;if(!u&&l.length===0)throw new Error("enum must have non-empty array");let f=l.length>=p.opts.loopEnum,v,_=()=>v??(v=(0,r.useFunc)(o,a.default)),m;if(f||u)m=o.let("valid"),i.block$data(m,h);else{if(!Array.isArray(l))throw new Error("ajv implementation error");let g=o.const("vSchema",d);m=(0,e.or)(...l.map((b,w)=>y(g,w)))}i.pass(m);function h(){o.assign(m,!1),o.forOf("v",d,g=>o.if((0,e._)`${_()}(${c}, ${g})`,()=>o.assign(m,!0).break()))}function y(g,b){let w=l[b];return typeof w=="object"&&w!==null?(0,e._)`${_()}(${c}, ${g}[${b}])`:(0,e._)`${c} === ${w}`}}};t.default=s}),Tq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=mq(),r=hq(),a=gq(),n=yq(),s=_q(),i=bq(),o=Sq(),c=xq(),u=wq(),l=Eq(),d=[e.default,r.default,a.default,n.default,s.default,i.default,o.default,c.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},u.default,l.default];t.default=d}),$T=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateAdditionalItems=void 0;var e=Ze(),r=et(),a={message:({params:{len:i}})=>(0,e.str)`must NOT have more than ${i} items`,params:({params:{len:i}})=>(0,e._)`{limit: ${i}}`},n={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:a,code(i){let{parentSchema:o,it:c}=i,{items:u}=o;if(!Array.isArray(u)){(0,r.checkStrictMode)(c,'"additionalItems" is ignored when "items" is not an array of schemas');return}s(i,u)}};function s(i,o){let{gen:c,schema:u,data:l,keyword:d,it:p}=i;p.items=!0;let f=c.const("len",(0,e._)`${l}.length`);if(u===!1)i.setParams({len:o.length}),i.pass((0,e._)`${f} <= ${o.length}`);else if(typeof u=="object"&&!(0,r.alwaysValidSchema)(p,u)){let _=c.var("valid",(0,e._)`${f} <= ${o.length}`);c.if((0,e.not)(_),()=>v(_)),i.ok(_)}function v(_){c.forRange("i",o.length,f,m=>{i.subschema({keyword:d,dataProp:m,dataPropType:r.Type.Num},_),p.allErrors||c.if((0,e.not)(_),()=>c.break())})}}t.validateAdditionalItems=s,t.default=n}),OT=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateTuple=void 0;var e=Ze(),r=et(),a=Gr(),n={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(i){let{schema:o,it:c}=i;if(Array.isArray(o))return s(i,"additionalItems",o);c.items=!0,!(0,r.alwaysValidSchema)(c,o)&&i.ok((0,a.validateArray)(i))}};function s(i,o,c=i.schema){let{gen:u,parentSchema:l,data:d,keyword:p,it:f}=i;m(l),f.opts.unevaluated&&c.length&&f.items!==!0&&(f.items=r.mergeEvaluated.items(u,c.length,f.items));let v=u.name("valid"),_=u.const("len",(0,e._)`${d}.length`);c.forEach((h,y)=>{(0,r.alwaysValidSchema)(f,h)||(u.if((0,e._)`${_} > ${y}`,()=>i.subschema({keyword:p,schemaProp:y,dataProp:y},v)),i.ok(v))});function m(h){let{opts:y,errSchemaPath:g}=f,b=c.length,w=b===h.minItems&&(b===h.maxItems||h[o]===!1);if(y.strictTuples&&!w){let S=`"${p}" is ${b}-tuple, but minItems or maxItems/${o} are not specified or different at path "${g}"`;(0,r.checkStrictMode)(f,S,y.strictTuples)}}}t.validateTuple=s,t.default=n}),kq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=OT(),r={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:a=>(0,e.validateTuple)(a,"items")};t.default=r}),Rq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=et(),a=Gr(),n=$T(),s={message:({params:{len:o}})=>(0,e.str)`must NOT have more than ${o} items`,params:({params:{len:o}})=>(0,e._)`{limit: ${o}}`},i={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:s,code(o){let{schema:c,parentSchema:u,it:l}=o,{prefixItems:d}=u;l.items=!0,!(0,r.alwaysValidSchema)(l,c)&&(d?(0,n.validateAdditionalItems)(o,d):o.ok((0,a.validateArray)(o)))}};t.default=i}),Pq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=et(),a={message:({params:{min:s,max:i}})=>i===void 0?(0,e.str)`must contain at least ${s} valid item(s)`:(0,e.str)`must contain at least ${s} and no more than ${i} valid item(s)`,params:({params:{min:s,max:i}})=>i===void 0?(0,e._)`{minContains: ${s}}`:(0,e._)`{minContains: ${s}, maxContains: ${i}}`},n={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:a,code(s){let{gen:i,schema:o,parentSchema:c,data:u,it:l}=s,d,p,{minContains:f,maxContains:v}=c;l.opts.next?(d=f===void 0?1:f,p=v):d=1;let _=i.const("len",(0,e._)`${u}.length`);if(s.setParams({min:d,max:p}),p===void 0&&d===0){(0,r.checkStrictMode)(l,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(p!==void 0&&d>p){(0,r.checkStrictMode)(l,'"minContains" > "maxContains" is always invalid'),s.fail();return}if((0,r.alwaysValidSchema)(l,o)){let b=(0,e._)`${_} >= ${d}`;p!==void 0&&(b=(0,e._)`${b} && ${_} <= ${p}`),s.pass(b);return}l.items=!0;let m=i.name("valid");p===void 0&&d===1?y(m,()=>i.if(m,()=>i.break())):d===0?(i.let(m,!0),p!==void 0&&i.if((0,e._)`${u}.length > 0`,h)):(i.let(m,!1),h()),s.result(m,()=>s.reset());function h(){let b=i.name("_valid"),w=i.let("count",0);y(b,()=>i.if(b,()=>g(w)))}function y(b,w){i.forRange("i",0,_,S=>{s.subschema({keyword:"contains",dataProp:S,dataPropType:r.Type.Num,compositeRule:!0},b),w()})}function g(b){i.code((0,e._)`${b}++`),p===void 0?i.if((0,e._)`${b} >= ${d}`,()=>i.assign(m,!0).break()):(i.if((0,e._)`${b} > ${p}`,()=>i.assign(m,!1).break()),d===1?i.assign(m,!0):i.if((0,e._)`${b} >= ${d}`,()=>i.assign(m,!0)))}}};t.default=n}),$q=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateSchemaDeps=t.validatePropertyDeps=t.error=void 0;var e=Ze(),r=et(),a=Gr();t.error={message:({params:{property:c,depsCount:u,deps:l}})=>{let d=u===1?"property":"properties";return(0,e.str)`must have ${d} ${l} when property ${c} is present`},params:({params:{property:c,depsCount:u,deps:l,missingProperty:d}})=>(0,e._)`{property: ${c}, +${n.prompts.header_memory_continued}`}on();cn();jr();var Jw=["429","500","502","503","ECONNREFUSED","ETIMEDOUT","fetch failed"];Ne();Ne();jr();function y4(t,e){let r=[],n=/([\s\S]*?)<\/observation>/g,i;for(;(i=n.exec(t))!==null;){let a=i[1],o=hi(a,"type"),s=hi(a,"title"),c=hi(a,"subtitle"),u=hi(a,"narrative"),l=_h(a,"facts","fact"),d=_h(a,"concepts","concept"),p=_h(a,"files_read","file"),f=_h(a,"files_modified","file"),_=He.getInstance().getActiveMode().observation_types.map(g=>g.id),y=_[0],m=y;o?_.includes(o.trim())?m=o.trim():k.warn("PARSER",`Invalid observation type: ${o}, using "${y}"`,{correlationId:e}):k.warn("PARSER",`Observation missing type field, using "${y}"`,{correlationId:e});let v=d.filter(g=>g!==m);v.length!==d.length&&k.warn("PARSER","Removed observation type from concepts array",{correlationId:e,type:m,originalConcepts:d,cleanedConcepts:v}),r.push({type:m,title:s,subtitle:c,facts:l,narrative:u,concepts:v,files_read:p,files_modified:f})}return r}function _4(t,e){let n=//.exec(t);if(n)return k.info("PARSER","Summary skipped",{sessionId:e,reason:n[1]}),null;let a=/([\s\S]*?)<\/summary>/.exec(t);if(!a)return null;let o=a[1],s=hi(o,"request"),c=hi(o,"investigated"),u=hi(o,"learned"),l=hi(o,"completed"),d=hi(o,"next_steps"),p=hi(o,"notes");return{request:s,investigated:c,learned:u,completed:l,next_steps:d,notes:p}}function hi(t,e){let n=new RegExp(`<${e}>([^<]*)`).exec(t);if(!n)return null;let i=n[1].trim();return i===""?null:i}function _h(t,e,r){let n=[],a=new RegExp(`<${e}>(.*?)`,"s").exec(t);if(!a)return n;let o=a[1],s=new RegExp(`<${r}>([^<]+)`,"g"),c;for(;(c=s.exec(o))!==null;)n.push(c[1].trim());return n}function Xw(t,e){t?.sseBroadcaster&&t.sseBroadcaster.broadcast({type:"new_observation",observation:e})}function Yw(t,e){t?.sseBroadcaster&&t.sseBroadcaster.broadcast({type:"new_summary",summary:e})}function Qw(t,e){t.earliestPendingTimestamp=null,e&&typeof e.broadcastProcessingStatus=="function"&&e.broadcastProcessingStatus()}async function Vn(t,e,r,n,i,a,o,s){t&&e.conversationHistory.push({role:"assistant",content:t});let c=y4(t,e.contentSessionId),u=_4(t,e.sessionDbId),l=Fre(u),d=r.getSessionStore();if(!e.memorySessionId)throw new Error("Cannot store observations: memorySessionId not yet captured");let p=d.storeObservations(e.memorySessionId,e.project,c,l,e.lastPromptNumber,a,o??void 0);k.info("SDK",`${s} observations and summary saved atomically`,{sessionId:e.sessionDbId,observationCount:p.observationIds.length,hasSummary:!!p.summaryId,atomicTransaction:!0}),await Zre(c,p,e,r,i,a,s),await Hre(u,l,p,e,r,i,a,s),Qw(e,i)}function Fre(t){return t?{request:t.request||"",investigated:t.investigated||"",learned:t.learned||"",completed:t.completed||"",next_steps:t.next_steps||"",notes:t.notes}:null}async function Zre(t,e,r,n,i,a,o){for(let s=0;s{let d=Date.now()-l;k.debug("CHROMA","Observation synced",{obsId:c,duration:`${d}ms`,type:u.type,title:u.title||"(untitled)"})}).catch(d=>{k.warn("CHROMA",`${o} chroma sync failed, continuing without vector search`,{obsId:c,type:u.type,title:u.title||"(untitled)"},d)}),Xw(i,{id:c,memory_session_id:r.memorySessionId,session_id:r.contentSessionId,type:u.type,title:u.title,subtitle:u.subtitle,text:null,narrative:u.narrative||null,facts:JSON.stringify(u.facts||[]),concepts:JSON.stringify(u.concepts||[]),files_read:JSON.stringify(u.files_read||[]),files_modified:JSON.stringify(u.files_modified||[]),project:r.project,prompt_number:r.lastPromptNumber,created_at_epoch:e.createdAtEpoch})}}async function Hre(t,e,r,n,i,a,o,s){if(!e||!r.summaryId)return;let c=Date.now();i.getChromaSync().syncSummary(r.summaryId,n.contentSessionId,n.project,e,n.lastPromptNumber,r.createdAtEpoch,o).then(()=>{let u=Date.now()-c;k.debug("CHROMA","Summary synced",{summaryId:r.summaryId,duration:`${u}ms`,request:e.request||"(no request)"})}).catch(u=>{k.warn("CHROMA",`${s} chroma sync failed, continuing without vector search`,{summaryId:r.summaryId,request:e.request||"(no request)"},u)}),Yw(a,{id:r.summaryId,session_id:n.contentSessionId,request:t.request,investigated:t.investigated,learned:t.learned,completed:t.completed,next_steps:t.next_steps,notes:t.notes,project:n.project,prompt_number:n.lastPromptNumber,created_at_epoch:r.createdAtEpoch}),lh(n.project,Ln()).catch(u=>{k.warn("CURSOR","Context update failed (non-critical)",{project:n.project},u)})}function td(t){let e=Bre(t);return Jw.some(r=>e.includes(r))}function Bre(t){return t==null?"":typeof t=="string"?t:t instanceof Error?t.message:typeof t=="object"&&"message"in t?String(t.message):String(t)}function rd(t){return t==null?!1:t instanceof Error&&t.name==="AbortError"?!0:typeof t=="object"&&"name"in t?t.name==="AbortError":!1}var a$=require("path"),d2=require("url"),p2=require("events"),m2=require("child_process"),h2=require("readline"),xe=yt(require("fs"),1),g2=require("fs/promises"),x2=require("path"),S2=require("os"),go=require("path"),$2=require("process"),E2=require("fs"),k2=require("crypto"),R2=require("crypto"),_c=require("fs"),o$=require("path"),O2=require("crypto");var ife={},Vre=Object.create,Gre=Object.getPrototypeOf,i$=Object.defineProperty,Wre=Object.getOwnPropertyNames,Kre=Object.prototype.hasOwnProperty,Y4=(t,e,r)=>{r=t!=null?Vre(Gre(t)):{};let n=e||!t||!t.__esModule?i$(r,"default",{value:t,enumerable:!0}):r;for(let i of Wre(t))Kre.call(n,i)||i$(n,i,{get:()=>t[i],enumerable:!0});return n},V=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Q4=(t,e)=>{for(var r in e)i$(t,r,{get:e[r],enumerable:!0,configurable:!0,set:n=>e[r]=()=>n})};var Eh=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.regexpCode=t.getEsmExportName=t.getProperty=t.safeStringify=t.stringify=t.strConcat=t.addCodeArg=t.str=t._=t.nil=t._Code=t.Name=t.IDENTIFIER=t._CodeOrName=void 0;class e{}t._CodeOrName=e,t.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class r extends e{constructor(v){if(super(),!t.IDENTIFIER.test(v))throw new Error("CodeGen: name must be a valid identifier");this.str=v}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}t.Name=r;class n extends e{constructor(v){super(),this._items=typeof v=="string"?[v]:v}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let v=this._items[0];return v===""||v==='""'}get str(){var v;return(v=this._str)!==null&&v!==void 0?v:this._str=this._items.reduce((g,b)=>`${g}${b}`,"")}get names(){var v;return(v=this._names)!==null&&v!==void 0?v:this._names=this._items.reduce((g,b)=>(b instanceof r&&(g[b.str]=(g[b.str]||0)+1),g),{})}}t._Code=n,t.nil=new n("");function i(m,...v){let g=[m[0]],b=0;for(;b{Object.defineProperty(t,"__esModule",{value:!0}),t.ValueScope=t.ValueScopeName=t.Scope=t.varKinds=t.UsedValueState=void 0;var e=Eh();class r extends Error{constructor(u){super(`CodeGen: "code" for ${u} not defined`),this.value=u.value}}var n;(function(c){c[c.Started=0]="Started",c[c.Completed=1]="Completed"})(n||(t.UsedValueState=n={})),t.varKinds={const:new e.Name("const"),let:new e.Name("let"),var:new e.Name("var")};class i{constructor({prefixes:u,parent:l}={}){this._names={},this._prefixes=u,this._parent=l}toName(u){return u instanceof e.Name?u:this.name(u)}name(u){return new e.Name(this._newName(u))}_newName(u){let l=this._names[u]||this._nameGroup(u);return`${u}${l.index++}`}_nameGroup(u){var l,d;if(!((d=(l=this._parent)===null||l===void 0?void 0:l._prefixes)===null||d===void 0)&&d.has(u)||this._prefixes&&!this._prefixes.has(u))throw new Error(`CodeGen: prefix "${u}" is not allowed in this scope`);return this._names[u]={prefix:u,index:0}}}t.Scope=i;class a extends e.Name{constructor(u,l){super(l),this.prefix=u}setValue(u,{property:l,itemIndex:d}){this.value=u,this.scopePath=(0,e._)`.${new e.Name(l)}[${d}]`}}t.ValueScopeName=a;var o=(0,e._)`\n`;class s extends i{constructor(u){super(u),this._values={},this._scope=u.scope,this.opts={...u,_n:u.lines?o:e.nil}}get(){return this._scope}name(u){return new a(u,this._newName(u))}value(u,l){var d;if(l.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let p=this.toName(u),{prefix:f}=p,h=(d=l.key)!==null&&d!==void 0?d:l.ref,_=this._values[f];if(_){let v=_.get(h);if(v)return v}else _=this._values[f]=new Map;_.set(h,p);let y=this._scope[f]||(this._scope[f]=[]),m=y.length;return y[m]=l.ref,p.setValue(l,{property:f,itemIndex:m}),p}getValue(u,l){let d=this._values[u];if(d)return d.get(l)}scopeRefs(u,l=this._values){return this._reduceValues(l,d=>{if(d.scopePath===void 0)throw new Error(`CodeGen: name "${d}" has no value`);return(0,e._)`${u}${d.scopePath}`})}scopeCode(u=this._values,l,d){return this._reduceValues(u,p=>{if(p.value===void 0)throw new Error(`CodeGen: name "${p}" has no value`);return p.value.code},l,d)}_reduceValues(u,l,d={},p){let f=e.nil;for(let h in u){let _=u[h];if(!_)continue;let y=d[h]=d[h]||new Map;_.forEach(m=>{if(y.has(m))return;y.set(m,n.Started);let v=l(m);if(v){let g=this.opts.es5?t.varKinds.var:t.varKinds.const;f=(0,e._)`${f}${g} ${m} = ${v};${this.opts._n}`}else if(v=p?.(m))f=(0,e._)`${f}${v}${this.opts._n}`;else throw new r(m);y.set(m,n.Completed)})}return f}}t.ValueScope=s}),Xe=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.or=t.and=t.not=t.CodeGen=t.operators=t.varKinds=t.ValueScopeName=t.ValueScope=t.Scope=t.Name=t.regexpCode=t.stringify=t.getProperty=t.nil=t.strConcat=t.str=t._=void 0;var e=Eh(),r=b4(),n=Eh();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return n._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return n.str}}),Object.defineProperty(t,"strConcat",{enumerable:!0,get:function(){return n.strConcat}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return n.nil}}),Object.defineProperty(t,"getProperty",{enumerable:!0,get:function(){return n.getProperty}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return n.stringify}}),Object.defineProperty(t,"regexpCode",{enumerable:!0,get:function(){return n.regexpCode}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return n.Name}});var i=b4();Object.defineProperty(t,"Scope",{enumerable:!0,get:function(){return i.Scope}}),Object.defineProperty(t,"ValueScope",{enumerable:!0,get:function(){return i.ValueScope}}),Object.defineProperty(t,"ValueScopeName",{enumerable:!0,get:function(){return i.ValueScopeName}}),Object.defineProperty(t,"varKinds",{enumerable:!0,get:function(){return i.varKinds}}),t.operators={GT:new e._Code(">"),GTE:new e._Code(">="),LT:new e._Code("<"),LTE:new e._Code("<="),EQ:new e._Code("==="),NEQ:new e._Code("!=="),NOT:new e._Code("!"),OR:new e._Code("||"),AND:new e._Code("&&"),ADD:new e._Code("+")};class a{optimizeNodes(){return this}optimizeNames($,T){return this}}class o extends a{constructor($,T,N){super(),this.varKind=$,this.name=T,this.rhs=N}render({es5:$,_n:T}){let N=$?r.varKinds.var:this.varKind,W=this.rhs===void 0?"":` = ${this.rhs}`;return`${N} ${this.name}${W};`+T}optimizeNames($,T){if($[this.name.str])return this.rhs&&(this.rhs=U(this.rhs,$,T)),this}get names(){return this.rhs instanceof e._CodeOrName?this.rhs.names:{}}}class s extends a{constructor($,T,N){super(),this.lhs=$,this.rhs=T,this.sideEffects=N}render({_n:$}){return`${this.lhs} = ${this.rhs};`+$}optimizeNames($,T){if(!(this.lhs instanceof e.Name&&!$[this.lhs.str]&&!this.sideEffects))return this.rhs=U(this.rhs,$,T),this}get names(){let $=this.lhs instanceof e.Name?{}:{...this.lhs.names};return B($,this.rhs)}}class c extends s{constructor($,T,N,W){super($,N,W),this.op=T}render({_n:$}){return`${this.lhs} ${this.op}= ${this.rhs};`+$}}class u extends a{constructor($){super(),this.label=$,this.names={}}render({_n:$}){return`${this.label}:`+$}}class l extends a{constructor($){super(),this.label=$,this.names={}}render({_n:$}){return`break${this.label?` ${this.label}`:""};`+$}}class d extends a{constructor($){super(),this.error=$}render({_n:$}){return`throw ${this.error};`+$}get names(){return this.error.names}}class p extends a{constructor($){super(),this.code=$}render({_n:$}){return`${this.code};`+$}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames($,T){return this.code=U(this.code,$,T),this}get names(){return this.code instanceof e._CodeOrName?this.code.names:{}}}class f extends a{constructor($=[]){super(),this.nodes=$}render($){return this.nodes.reduce((T,N)=>T+N.render($),"")}optimizeNodes(){let{nodes:$}=this,T=$.length;for(;T--;){let N=$[T].optimizeNodes();Array.isArray(N)?$.splice(T,1,...N):N?$[T]=N:$.splice(T,1)}return $.length>0?this:void 0}optimizeNames($,T){let{nodes:N}=this,W=N.length;for(;W--;){let K=N[W];K.optimizeNames($,T)||(Y($,K.names),N.splice(W,1))}return N.length>0?this:void 0}get names(){return this.nodes.reduce(($,T)=>q($,T.names),{})}}class h extends f{render($){return"{"+$._n+super.render($)+"}"+$._n}}class _ extends f{}class y extends h{}y.kind="else";class m extends h{constructor($,T){super(T),this.condition=$}render($){let T=`if(${this.condition})`+super.render($);return this.else&&(T+="else "+this.else.render($)),T}optimizeNodes(){super.optimizeNodes();let $=this.condition;if($===!0)return this.nodes;let T=this.else;if(T){let N=T.optimizeNodes();T=this.else=Array.isArray(N)?new y(N):N}if(T)return $===!1?T instanceof m?T:T.nodes:this.nodes.length?this:new m(me($),T instanceof m?[T]:T.nodes);if(!($===!1||!this.nodes.length))return this}optimizeNames($,T){var N;if(this.else=(N=this.else)===null||N===void 0?void 0:N.optimizeNames($,T),!!(super.optimizeNames($,T)||this.else))return this.condition=U(this.condition,$,T),this}get names(){let $=super.names;return B($,this.condition),this.else&&q($,this.else.names),$}}m.kind="if";class v extends h{}v.kind="for";class g extends v{constructor($){super(),this.iteration=$}render($){return`for(${this.iteration})`+super.render($)}optimizeNames($,T){if(super.optimizeNames($,T))return this.iteration=U(this.iteration,$,T),this}get names(){return q(super.names,this.iteration.names)}}class b extends v{constructor($,T,N,W){super(),this.varKind=$,this.name=T,this.from=N,this.to=W}render($){let T=$.es5?r.varKinds.var:this.varKind,{name:N,from:W,to:K}=this;return`for(${T} ${N}=${W}; ${N}<${K}; ${N}++)`+super.render($)}get names(){let $=B(super.names,this.from);return B($,this.to)}}class S extends v{constructor($,T,N,W){super(),this.loop=$,this.varKind=T,this.name=N,this.iterable=W}render($){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render($)}optimizeNames($,T){if(super.optimizeNames($,T))return this.iterable=U(this.iterable,$,T),this}get names(){return q(super.names,this.iterable.names)}}class x extends h{constructor($,T,N){super(),this.name=$,this.args=T,this.async=N}render($){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render($)}}x.kind="func";class w extends f{render($){return"return "+super.render($)}}w.kind="return";class E extends h{render($){let T="try"+super.render($);return this.catch&&(T+=this.catch.render($)),this.finally&&(T+=this.finally.render($)),T}optimizeNodes(){var $,T;return super.optimizeNodes(),($=this.catch)===null||$===void 0||$.optimizeNodes(),(T=this.finally)===null||T===void 0||T.optimizeNodes(),this}optimizeNames($,T){var N,W;return super.optimizeNames($,T),(N=this.catch)===null||N===void 0||N.optimizeNames($,T),(W=this.finally)===null||W===void 0||W.optimizeNames($,T),this}get names(){let $=super.names;return this.catch&&q($,this.catch.names),this.finally&&q($,this.finally.names),$}}class R extends h{constructor($){super(),this.error=$}render($){return`catch(${this.error})`+super.render($)}}R.kind="catch";class A extends h{render($){return"finally"+super.render($)}}A.kind="finally";class M{constructor($,T={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...T,_n:T.lines?` +`:""},this._extScope=$,this._scope=new r.Scope({parent:$}),this._nodes=[new _]}toString(){return this._root.render(this.opts)}name($){return this._scope.name($)}scopeName($){return this._extScope.name($)}scopeValue($,T){let N=this._extScope.value($,T);return(this._values[N.prefix]||(this._values[N.prefix]=new Set)).add(N),N}getScopeValue($,T){return this._extScope.getValue($,T)}scopeRefs($){return this._extScope.scopeRefs($,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def($,T,N,W){let K=this._scope.toName(T);return N!==void 0&&W&&(this._constants[K.str]=N),this._leafNode(new o($,K,N)),K}const($,T,N){return this._def(r.varKinds.const,$,T,N)}let($,T,N){return this._def(r.varKinds.let,$,T,N)}var($,T,N){return this._def(r.varKinds.var,$,T,N)}assign($,T,N){return this._leafNode(new s($,T,N))}add($,T){return this._leafNode(new c($,t.operators.ADD,T))}code($){return typeof $=="function"?$():$!==e.nil&&this._leafNode(new p($)),this}object(...$){let T=["{"];for(let[N,W]of $)T.length>1&&T.push(","),T.push(N),(N!==W||this.opts.es5)&&(T.push(":"),(0,e.addCodeArg)(T,W));return T.push("}"),new e._Code(T)}if($,T,N){if(this._blockNode(new m($)),T&&N)this.code(T).else().code(N).endIf();else if(T)this.code(T).endIf();else if(N)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf($){return this._elseNode(new m($))}else(){return this._elseNode(new y)}endIf(){return this._endBlockNode(m,y)}_for($,T){return this._blockNode($),T&&this.code(T).endFor(),this}for($,T){return this._for(new g($),T)}forRange($,T,N,W,K=this.opts.es5?r.varKinds.var:r.varKinds.let){let pe=this._scope.toName($);return this._for(new b(K,pe,T,N),()=>W(pe))}forOf($,T,N,W=r.varKinds.const){let K=this._scope.toName($);if(this.opts.es5){let pe=T instanceof e.Name?T:this.var("_arr",T);return this.forRange("_i",0,(0,e._)`${pe}.length`,ce=>{this.var(K,(0,e._)`${pe}[${ce}]`),N(K)})}return this._for(new S("of",W,K,T),()=>N(K))}forIn($,T,N,W=this.opts.es5?r.varKinds.var:r.varKinds.const){if(this.opts.ownProperties)return this.forOf($,(0,e._)`Object.keys(${T})`,N);let K=this._scope.toName($);return this._for(new S("in",W,K,T),()=>N(K))}endFor(){return this._endBlockNode(v)}label($){return this._leafNode(new u($))}break($){return this._leafNode(new l($))}return($){let T=new w;if(this._blockNode(T),this.code($),T.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(w)}try($,T,N){if(!T&&!N)throw new Error('CodeGen: "try" without "catch" and "finally"');let W=new E;if(this._blockNode(W),this.code($),T){let K=this.name("e");this._currNode=W.catch=new R(K),T(K)}return N&&(this._currNode=W.finally=new A,this.code(N)),this._endBlockNode(R,A)}throw($){return this._leafNode(new d($))}block($,T){return this._blockStarts.push(this._nodes.length),$&&this.code($).endBlock(T),this}endBlock($){let T=this._blockStarts.pop();if(T===void 0)throw new Error("CodeGen: not in self-balancing block");let N=this._nodes.length-T;if(N<0||$!==void 0&&N!==$)throw new Error(`CodeGen: wrong number of nodes: ${N} vs ${$} expected`);return this._nodes.length=T,this}func($,T=e.nil,N,W){return this._blockNode(new x($,T,N)),W&&this.code(W).endFunc(),this}endFunc(){return this._endBlockNode(x)}optimize($=1){for(;$-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode($){return this._currNode.nodes.push($),this}_blockNode($){this._currNode.nodes.push($),this._nodes.push($)}_endBlockNode($,T){let N=this._currNode;if(N instanceof $||T&&N instanceof T)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${T?`${$.kind}/${T.kind}`:$.kind}"`)}_elseNode($){let T=this._currNode;if(!(T instanceof m))throw new Error('CodeGen: "else" without "if"');return this._currNode=T.else=$,this}get _root(){return this._nodes[0]}get _currNode(){let $=this._nodes;return $[$.length-1]}set _currNode($){let T=this._nodes;T[T.length-1]=$}}t.CodeGen=M;function q(C,$){for(let T in $)C[T]=(C[T]||0)+($[T]||0);return C}function B(C,$){return $ instanceof e._CodeOrName?q(C,$.names):C}function U(C,$,T){if(C instanceof e.Name)return N(C);if(!W(C))return C;return new e._Code(C._items.reduce((K,pe)=>(pe instanceof e.Name&&(pe=N(pe)),pe instanceof e._Code?K.push(...pe._items):K.push(pe),K),[]));function N(K){let pe=T[K.str];return pe===void 0||$[K.str]!==1?K:(delete $[K.str],pe)}function W(K){return K instanceof e._Code&&K._items.some(pe=>pe instanceof e.Name&&$[pe.str]===1&&T[pe.str]!==void 0)}}function Y(C,$){for(let T in $)C[T]=(C[T]||0)-($[T]||0)}function me(C){return typeof C=="boolean"||typeof C=="number"||C===null?!C:(0,e._)`!${D(C)}`}t.not=me;var Qe=I(t.operators.AND);function ft(...C){return C.reduce(Qe)}t.and=ft;var fe=I(t.operators.OR);function F(...C){return C.reduce(fe)}t.or=F;function I(C){return($,T)=>$===e.nil?T:T===e.nil?$:(0,e._)`${D($)} ${C} ${D(T)}`}function D(C){return C instanceof e.Name?C:(0,e._)`(${C})`}}),ut=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.checkStrictMode=t.getErrorPath=t.Type=t.useFunc=t.setEvaluated=t.evaluatedPropsToName=t.mergeEvaluated=t.eachItem=t.unescapeJsonPointer=t.escapeJsonPointer=t.escapeFragment=t.unescapeFragment=t.schemaRefOrVal=t.schemaHasRulesButRef=t.schemaHasRules=t.checkUnknownRules=t.alwaysValidSchema=t.toHash=void 0;var e=Xe(),r=Eh();function n(x){let w={};for(let E of x)w[E]=!0;return w}t.toHash=n;function i(x,w){return typeof w=="boolean"?w:Object.keys(w).length===0?!0:(a(x,w),!o(w,x.self.RULES.all))}t.alwaysValidSchema=i;function a(x,w=x.schema){let{opts:E,self:R}=x;if(!E.strictSchema||typeof w=="boolean")return;let A=R.RULES.keywords;for(let M in w)A[M]||S(x,`unknown keyword: "${M}"`)}t.checkUnknownRules=a;function o(x,w){if(typeof x=="boolean")return!x;for(let E in x)if(w[E])return!0;return!1}t.schemaHasRules=o;function s(x,w){if(typeof x=="boolean")return!x;for(let E in x)if(E!=="$ref"&&w.all[E])return!0;return!1}t.schemaHasRulesButRef=s;function c({topSchemaRef:x,schemaPath:w},E,R,A){if(!A){if(typeof E=="number"||typeof E=="boolean")return E;if(typeof E=="string")return(0,e._)`${E}`}return(0,e._)`${x}${w}${(0,e.getProperty)(R)}`}t.schemaRefOrVal=c;function u(x){return p(decodeURIComponent(x))}t.unescapeFragment=u;function l(x){return encodeURIComponent(d(x))}t.escapeFragment=l;function d(x){return typeof x=="number"?`${x}`:x.replace(/~/g,"~0").replace(/\//g,"~1")}t.escapeJsonPointer=d;function p(x){return x.replace(/~1/g,"/").replace(/~0/g,"~")}t.unescapeJsonPointer=p;function f(x,w){if(Array.isArray(x))for(let E of x)w(E);else w(x)}t.eachItem=f;function h({mergeNames:x,mergeToName:w,mergeValues:E,resultToName:R}){return(A,M,q,B)=>{let U=q===void 0?M:q instanceof e.Name?(M instanceof e.Name?x(A,M,q):w(A,M,q),q):M instanceof e.Name?(w(A,q,M),M):E(M,q);return B===e.Name&&!(U instanceof e.Name)?R(A,U):U}}t.mergeEvaluated={props:h({mergeNames:(x,w,E)=>x.if((0,e._)`${E} !== true && ${w} !== undefined`,()=>{x.if((0,e._)`${w} === true`,()=>x.assign(E,!0),()=>x.assign(E,(0,e._)`${E} || {}`).code((0,e._)`Object.assign(${E}, ${w})`))}),mergeToName:(x,w,E)=>x.if((0,e._)`${E} !== true`,()=>{w===!0?x.assign(E,!0):(x.assign(E,(0,e._)`${E} || {}`),y(x,E,w))}),mergeValues:(x,w)=>x===!0?!0:{...x,...w},resultToName:_}),items:h({mergeNames:(x,w,E)=>x.if((0,e._)`${E} !== true && ${w} !== undefined`,()=>x.assign(E,(0,e._)`${w} === true ? true : ${E} > ${w} ? ${E} : ${w}`)),mergeToName:(x,w,E)=>x.if((0,e._)`${E} !== true`,()=>x.assign(E,w===!0?!0:(0,e._)`${E} > ${w} ? ${E} : ${w}`)),mergeValues:(x,w)=>x===!0?!0:Math.max(x,w),resultToName:(x,w)=>x.var("items",w)})};function _(x,w){if(w===!0)return x.var("props",!0);let E=x.var("props",(0,e._)`{}`);return w!==void 0&&y(x,E,w),E}t.evaluatedPropsToName=_;function y(x,w,E){Object.keys(E).forEach(R=>x.assign((0,e._)`${w}${(0,e.getProperty)(R)}`,!0))}t.setEvaluated=y;var m={};function v(x,w){return x.scopeValue("func",{ref:w,code:m[w.code]||(m[w.code]=new r._Code(w.code))})}t.useFunc=v;var g;(function(x){x[x.Num=0]="Num",x[x.Str=1]="Str"})(g||(t.Type=g={}));function b(x,w,E){if(x instanceof e.Name){let R=w===g.Num;return E?R?(0,e._)`"[" + ${x} + "]"`:(0,e._)`"['" + ${x} + "']"`:R?(0,e._)`"/" + ${x}`:(0,e._)`"/" + ${x}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return E?(0,e.getProperty)(x).toString():"/"+d(x)}t.getErrorPath=b;function S(x,w,E=x.opts.strictSchema){if(E){if(w=`strict mode: ${w}`,E===!0)throw new Error(w);x.self.logger.warn(w)}}t.checkStrictMode=S}),wa=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r={data:new e.Name("data"),valCxt:new e.Name("valCxt"),instancePath:new e.Name("instancePath"),parentData:new e.Name("parentData"),parentDataProperty:new e.Name("parentDataProperty"),rootData:new e.Name("rootData"),dynamicAnchors:new e.Name("dynamicAnchors"),vErrors:new e.Name("vErrors"),errors:new e.Name("errors"),this:new e.Name("this"),self:new e.Name("self"),scope:new e.Name("scope"),json:new e.Name("json"),jsonPos:new e.Name("jsonPos"),jsonLen:new e.Name("jsonLen"),jsonPart:new e.Name("jsonPart")};t.default=r}),Ah=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.extendErrors=t.resetErrorsCount=t.reportExtraError=t.reportError=t.keyword$DataError=t.keywordError=void 0;var e=Xe(),r=ut(),n=wa();t.keywordError={message:({keyword:y})=>(0,e.str)`must pass "${y}" keyword validation`},t.keyword$DataError={message:({keyword:y,schemaType:m})=>m?(0,e.str)`"${y}" keyword must be ${m} ($data)`:(0,e.str)`"${y}" keyword is invalid ($data)`};function i(y,m=t.keywordError,v,g){let{it:b}=y,{gen:S,compositeRule:x,allErrors:w}=b,E=d(y,m,v);g??(x||w)?c(S,E):u(b,(0,e._)`[${E}]`)}t.reportError=i;function a(y,m=t.keywordError,v){let{it:g}=y,{gen:b,compositeRule:S,allErrors:x}=g,w=d(y,m,v);c(b,w),S||x||u(g,n.default.vErrors)}t.reportExtraError=a;function o(y,m){y.assign(n.default.errors,m),y.if((0,e._)`${n.default.vErrors} !== null`,()=>y.if(m,()=>y.assign((0,e._)`${n.default.vErrors}.length`,m),()=>y.assign(n.default.vErrors,null)))}t.resetErrorsCount=o;function s({gen:y,keyword:m,schemaValue:v,data:g,errsCount:b,it:S}){if(b===void 0)throw new Error("ajv implementation error");let x=y.name("err");y.forRange("i",b,n.default.errors,w=>{y.const(x,(0,e._)`${n.default.vErrors}[${w}]`),y.if((0,e._)`${x}.instancePath === undefined`,()=>y.assign((0,e._)`${x}.instancePath`,(0,e.strConcat)(n.default.instancePath,S.errorPath))),y.assign((0,e._)`${x}.schemaPath`,(0,e.str)`${S.errSchemaPath}/${m}`),S.opts.verbose&&(y.assign((0,e._)`${x}.schema`,v),y.assign((0,e._)`${x}.data`,g))})}t.extendErrors=s;function c(y,m){let v=y.const("err",m);y.if((0,e._)`${n.default.vErrors} === null`,()=>y.assign(n.default.vErrors,(0,e._)`[${v}]`),(0,e._)`${n.default.vErrors}.push(${v})`),y.code((0,e._)`${n.default.errors}++`)}function u(y,m){let{gen:v,validateName:g,schemaEnv:b}=y;b.$async?v.throw((0,e._)`new ${y.ValidationError}(${m})`):(v.assign((0,e._)`${g}.errors`,m),v.return(!1))}var l={keyword:new e.Name("keyword"),schemaPath:new e.Name("schemaPath"),params:new e.Name("params"),propertyName:new e.Name("propertyName"),message:new e.Name("message"),schema:new e.Name("schema"),parentSchema:new e.Name("parentSchema")};function d(y,m,v){let{createErrors:g}=y.it;return g===!1?(0,e._)`{}`:p(y,m,v)}function p(y,m,v={}){let{gen:g,it:b}=y,S=[f(b,v),h(y,v)];return _(y,m,S),g.object(...S)}function f({errorPath:y},{instancePath:m}){let v=m?(0,e.str)`${y}${(0,r.getErrorPath)(m,r.Type.Str)}`:y;return[n.default.instancePath,(0,e.strConcat)(n.default.instancePath,v)]}function h({keyword:y,it:{errSchemaPath:m}},{schemaPath:v,parentSchema:g}){let b=g?m:(0,e.str)`${m}/${y}`;return v&&(b=(0,e.str)`${b}${(0,r.getErrorPath)(v,r.Type.Str)}`),[l.schemaPath,b]}function _(y,{params:m,message:v},g){let{keyword:b,data:S,schemaValue:x,it:w}=y,{opts:E,propertyName:R,topSchemaRef:A,schemaPath:M}=w;g.push([l.keyword,b],[l.params,typeof m=="function"?m(y):m||(0,e._)`{}`]),E.messages&&g.push([l.message,typeof v=="function"?v(y):v]),E.verbose&&g.push([l.schema,x],[l.parentSchema,(0,e._)`${A}${M}`],[n.default.data,S]),R&&g.push([l.propertyName,R])}}),Jre=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.boolOrEmptySchema=t.topBoolOrEmptySchema=void 0;var e=Ah(),r=Xe(),n=wa(),i={message:"boolean schema is false"};function a(c){let{gen:u,schema:l,validateName:d}=c;l===!1?s(c,!1):typeof l=="object"&&l.$async===!0?u.return(n.default.data):(u.assign((0,r._)`${d}.errors`,null),u.return(!0))}t.topBoolOrEmptySchema=a;function o(c,u){let{gen:l,schema:d}=c;d===!1?(l.var(u,!1),s(c)):l.var(u,!0)}t.boolOrEmptySchema=o;function s(c,u){let{gen:l,data:d}=c,p={gen:l,keyword:"false schema",data:d,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:c};(0,e.reportError)(p,i,void 0,u)}}),e2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getRules=t.isJSONType=void 0;var e=["string","number","integer","boolean","null","object","array"],r=new Set(e);function n(a){return typeof a=="string"&&r.has(a)}t.isJSONType=n;function i(){let a={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...a,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},a.number,a.string,a.array,a.object],post:{rules:[]},all:{},keywords:{}}}t.getRules=i}),t2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.shouldUseRule=t.shouldUseGroup=t.schemaHasRulesForType=void 0;function e({schema:i,self:a},o){let s=a.RULES.types[o];return s&&s!==!0&&r(i,s)}t.schemaHasRulesForType=e;function r(i,a){return a.rules.some(o=>n(i,o))}t.shouldUseGroup=r;function n(i,a){var o;return i[a.keyword]!==void 0||((o=a.definition.implements)===null||o===void 0?void 0:o.some(s=>i[s]!==void 0))}t.shouldUseRule=n}),kh=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.reportTypeError=t.checkDataTypes=t.checkDataType=t.coerceAndCheckDataType=t.getJSONTypes=t.getSchemaTypes=t.DataType=void 0;var e=e2(),r=t2(),n=Ah(),i=Xe(),a=ut(),o;(function(g){g[g.Correct=0]="Correct",g[g.Wrong=1]="Wrong"})(o||(t.DataType=o={}));function s(g){let b=c(g.type);if(b.includes("null")){if(g.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!b.length&&g.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');g.nullable===!0&&b.push("null")}return b}t.getSchemaTypes=s;function c(g){let b=Array.isArray(g)?g:g?[g]:[];if(b.every(e.isJSONType))return b;throw new Error("type must be JSONType or JSONType[]: "+b.join(","))}t.getJSONTypes=c;function u(g,b){let{gen:S,data:x,opts:w}=g,E=d(b,w.coerceTypes),R=b.length>0&&!(E.length===0&&b.length===1&&(0,r.schemaHasRulesForType)(g,b[0]));if(R){let A=_(b,x,w.strictNumbers,o.Wrong);S.if(A,()=>{E.length?p(g,b,E):m(g)})}return R}t.coerceAndCheckDataType=u;var l=new Set(["string","number","integer","boolean","null"]);function d(g,b){return b?g.filter(S=>l.has(S)||b==="array"&&S==="array"):[]}function p(g,b,S){let{gen:x,data:w,opts:E}=g,R=x.let("dataType",(0,i._)`typeof ${w}`),A=x.let("coerced",(0,i._)`undefined`);E.coerceTypes==="array"&&x.if((0,i._)`${R} == 'object' && Array.isArray(${w}) && ${w}.length == 1`,()=>x.assign(w,(0,i._)`${w}[0]`).assign(R,(0,i._)`typeof ${w}`).if(_(b,w,E.strictNumbers),()=>x.assign(A,w))),x.if((0,i._)`${A} !== undefined`);for(let q of S)(l.has(q)||q==="array"&&E.coerceTypes==="array")&&M(q);x.else(),m(g),x.endIf(),x.if((0,i._)`${A} !== undefined`,()=>{x.assign(w,A),f(g,A)});function M(q){switch(q){case"string":x.elseIf((0,i._)`${R} == "number" || ${R} == "boolean"`).assign(A,(0,i._)`"" + ${w}`).elseIf((0,i._)`${w} === null`).assign(A,(0,i._)`""`);return;case"number":x.elseIf((0,i._)`${R} == "boolean" || ${w} === null + || (${R} == "string" && ${w} && ${w} == +${w})`).assign(A,(0,i._)`+${w}`);return;case"integer":x.elseIf((0,i._)`${R} === "boolean" || ${w} === null + || (${R} === "string" && ${w} && ${w} == +${w} && !(${w} % 1))`).assign(A,(0,i._)`+${w}`);return;case"boolean":x.elseIf((0,i._)`${w} === "false" || ${w} === 0 || ${w} === null`).assign(A,!1).elseIf((0,i._)`${w} === "true" || ${w} === 1`).assign(A,!0);return;case"null":x.elseIf((0,i._)`${w} === "" || ${w} === 0 || ${w} === false`),x.assign(A,null);return;case"array":x.elseIf((0,i._)`${R} === "string" || ${R} === "number" + || ${R} === "boolean" || ${w} === null`).assign(A,(0,i._)`[${w}]`)}}}function f({gen:g,parentData:b,parentDataProperty:S},x){g.if((0,i._)`${b} !== undefined`,()=>g.assign((0,i._)`${b}[${S}]`,x))}function h(g,b,S,x=o.Correct){let w=x===o.Correct?i.operators.EQ:i.operators.NEQ,E;switch(g){case"null":return(0,i._)`${b} ${w} null`;case"array":E=(0,i._)`Array.isArray(${b})`;break;case"object":E=(0,i._)`${b} && typeof ${b} == "object" && !Array.isArray(${b})`;break;case"integer":E=R((0,i._)`!(${b} % 1) && !isNaN(${b})`);break;case"number":E=R();break;default:return(0,i._)`typeof ${b} ${w} ${g}`}return x===o.Correct?E:(0,i.not)(E);function R(A=i.nil){return(0,i.and)((0,i._)`typeof ${b} == "number"`,A,S?(0,i._)`isFinite(${b})`:i.nil)}}t.checkDataType=h;function _(g,b,S,x){if(g.length===1)return h(g[0],b,S,x);let w,E=(0,a.toHash)(g);if(E.array&&E.object){let R=(0,i._)`typeof ${b} != "object"`;w=E.null?R:(0,i._)`!${b} || ${R}`,delete E.null,delete E.array,delete E.object}else w=i.nil;E.number&&delete E.integer;for(let R in E)w=(0,i.and)(w,h(R,b,S,x));return w}t.checkDataTypes=_;var y={message:({schema:g})=>`must be ${g}`,params:({schema:g,schemaValue:b})=>typeof g=="string"?(0,i._)`{type: ${g}}`:(0,i._)`{type: ${b}}`};function m(g){let b=v(g);(0,n.reportError)(b,y)}t.reportTypeError=m;function v(g){let{gen:b,data:S,schema:x}=g,w=(0,a.schemaRefOrVal)(g,x,"type");return{gen:b,keyword:"type",data:S,schema:x.type,schemaCode:w,schemaValue:w,parentSchema:x,params:{},it:g}}}),Xre=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.assignDefaults=void 0;var e=Xe(),r=ut();function n(a,o){let{properties:s,items:c}=a.schema;if(o==="object"&&s)for(let u in s)i(a,u,s[u].default);else o==="array"&&Array.isArray(c)&&c.forEach((u,l)=>i(a,l,u.default))}t.assignDefaults=n;function i(a,o,s){let{gen:c,compositeRule:u,data:l,opts:d}=a;if(s===void 0)return;let p=(0,e._)`${l}${(0,e.getProperty)(o)}`;if(u){(0,r.checkStrictMode)(a,`default is ignored for: ${p}`);return}let f=(0,e._)`${p} === undefined`;d.useDefaults==="empty"&&(f=(0,e._)`${f} || ${p} === null || ${p} === ""`),c.if(f,(0,e._)`${p} = ${(0,e.stringify)(s)}`)}}),Jn=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateUnion=t.validateArray=t.usePattern=t.callValidateCode=t.schemaProperties=t.allSchemaProperties=t.noPropertyInData=t.propertyInData=t.isOwnProperty=t.hasPropFunc=t.reportMissingProp=t.checkMissingProp=t.checkReportMissingProp=void 0;var e=Xe(),r=ut(),n=wa(),i=ut();function a(g,b){let{gen:S,data:x,it:w}=g;S.if(d(S,x,b,w.opts.ownProperties),()=>{g.setParams({missingProperty:(0,e._)`${b}`},!0),g.error()})}t.checkReportMissingProp=a;function o({gen:g,data:b,it:{opts:S}},x,w){return(0,e.or)(...x.map(E=>(0,e.and)(d(g,b,E,S.ownProperties),(0,e._)`${w} = ${E}`)))}t.checkMissingProp=o;function s(g,b){g.setParams({missingProperty:b},!0),g.error()}t.reportMissingProp=s;function c(g){return g.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,e._)`Object.prototype.hasOwnProperty`})}t.hasPropFunc=c;function u(g,b,S){return(0,e._)`${c(g)}.call(${b}, ${S})`}t.isOwnProperty=u;function l(g,b,S,x){let w=(0,e._)`${b}${(0,e.getProperty)(S)} !== undefined`;return x?(0,e._)`${w} && ${u(g,b,S)}`:w}t.propertyInData=l;function d(g,b,S,x){let w=(0,e._)`${b}${(0,e.getProperty)(S)} === undefined`;return x?(0,e.or)(w,(0,e.not)(u(g,b,S))):w}t.noPropertyInData=d;function p(g){return g?Object.keys(g).filter(b=>b!=="__proto__"):[]}t.allSchemaProperties=p;function f(g,b){return p(b).filter(S=>!(0,r.alwaysValidSchema)(g,b[S]))}t.schemaProperties=f;function h({schemaCode:g,data:b,it:{gen:S,topSchemaRef:x,schemaPath:w,errorPath:E},it:R},A,M,q){let B=q?(0,e._)`${g}, ${b}, ${x}${w}`:b,U=[[n.default.instancePath,(0,e.strConcat)(n.default.instancePath,E)],[n.default.parentData,R.parentData],[n.default.parentDataProperty,R.parentDataProperty],[n.default.rootData,n.default.rootData]];R.opts.dynamicRef&&U.push([n.default.dynamicAnchors,n.default.dynamicAnchors]);let Y=(0,e._)`${B}, ${S.object(...U)}`;return M!==e.nil?(0,e._)`${A}.call(${M}, ${Y})`:(0,e._)`${A}(${Y})`}t.callValidateCode=h;var _=(0,e._)`new RegExp`;function y({gen:g,it:{opts:b}},S){let x=b.unicodeRegExp?"u":"",{regExp:w}=b.code,E=w(S,x);return g.scopeValue("pattern",{key:E.toString(),ref:E,code:(0,e._)`${w.code==="new RegExp"?_:(0,i.useFunc)(g,w)}(${S}, ${x})`})}t.usePattern=y;function m(g){let{gen:b,data:S,keyword:x,it:w}=g,E=b.name("valid");if(w.allErrors){let A=b.let("valid",!0);return R(()=>b.assign(A,!1)),A}return b.var(E,!0),R(()=>b.break()),E;function R(A){let M=b.const("len",(0,e._)`${S}.length`);b.forRange("i",0,M,q=>{g.subschema({keyword:x,dataProp:q,dataPropType:r.Type.Num},E),b.if((0,e.not)(E),A)})}}t.validateArray=m;function v(g){let{gen:b,schema:S,keyword:x,it:w}=g;if(!Array.isArray(S))throw new Error("ajv implementation error");if(S.some(M=>(0,r.alwaysValidSchema)(w,M))&&!w.opts.unevaluated)return;let R=b.let("valid",!1),A=b.name("_valid");b.block(()=>S.forEach((M,q)=>{let B=g.subschema({keyword:x,schemaProp:q,compositeRule:!0},A);b.assign(R,(0,e._)`${R} || ${A}`),g.mergeValidEvaluated(B,A)||b.if((0,e.not)(R))})),g.result(R,()=>g.reset(),()=>g.error(!0))}t.validateUnion=v}),Yre=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateKeywordUsage=t.validSchemaType=t.funcKeywordCode=t.macroKeywordCode=void 0;var e=Xe(),r=wa(),n=Jn(),i=Ah();function a(f,h){let{gen:_,keyword:y,schema:m,parentSchema:v,it:g}=f,b=h.macro.call(g.self,m,v,g),S=l(_,y,b);g.opts.validateSchema!==!1&&g.self.validateSchema(b,!0);let x=_.name("valid");f.subschema({schema:b,schemaPath:e.nil,errSchemaPath:`${g.errSchemaPath}/${y}`,topSchemaRef:S,compositeRule:!0},x),f.pass(x,()=>f.error(!0))}t.macroKeywordCode=a;function o(f,h){var _;let{gen:y,keyword:m,schema:v,parentSchema:g,$data:b,it:S}=f;u(S,h);let x=!b&&h.compile?h.compile.call(S.self,v,g,S):h.validate,w=l(y,m,x),E=y.let("valid");f.block$data(E,R),f.ok((_=h.valid)!==null&&_!==void 0?_:E);function R(){if(h.errors===!1)q(),h.modifying&&s(f),B(()=>f.error());else{let U=h.async?A():M();h.modifying&&s(f),B(()=>c(f,U))}}function A(){let U=y.let("ruleErrs",null);return y.try(()=>q((0,e._)`await `),Y=>y.assign(E,!1).if((0,e._)`${Y} instanceof ${S.ValidationError}`,()=>y.assign(U,(0,e._)`${Y}.errors`),()=>y.throw(Y))),U}function M(){let U=(0,e._)`${w}.errors`;return y.assign(U,null),q(e.nil),U}function q(U=h.async?(0,e._)`await `:e.nil){let Y=S.opts.passContext?r.default.this:r.default.self,me=!("compile"in h&&!b||h.schema===!1);y.assign(E,(0,e._)`${U}${(0,n.callValidateCode)(f,w,Y,me)}`,h.modifying)}function B(U){var Y;y.if((0,e.not)((Y=h.valid)!==null&&Y!==void 0?Y:E),U)}}t.funcKeywordCode=o;function s(f){let{gen:h,data:_,it:y}=f;h.if(y.parentData,()=>h.assign(_,(0,e._)`${y.parentData}[${y.parentDataProperty}]`))}function c(f,h){let{gen:_}=f;_.if((0,e._)`Array.isArray(${h})`,()=>{_.assign(r.default.vErrors,(0,e._)`${r.default.vErrors} === null ? ${h} : ${r.default.vErrors}.concat(${h})`).assign(r.default.errors,(0,e._)`${r.default.vErrors}.length`),(0,i.extendErrors)(f)},()=>f.error())}function u({schemaEnv:f},h){if(h.async&&!f.$async)throw new Error("async keyword in sync schema")}function l(f,h,_){if(_===void 0)throw new Error(`keyword "${h}" failed to compile`);return f.scopeValue("keyword",typeof _=="function"?{ref:_}:{ref:_,code:(0,e.stringify)(_)})}function d(f,h,_=!1){return!h.length||h.some(y=>y==="array"?Array.isArray(f):y==="object"?f&&typeof f=="object"&&!Array.isArray(f):typeof f==y||_&&typeof f>"u")}t.validSchemaType=d;function p({schema:f,opts:h,self:_,errSchemaPath:y},m,v){if(Array.isArray(m.keyword)?!m.keyword.includes(v):m.keyword!==v)throw new Error("ajv implementation error");let g=m.dependencies;if(g?.some(b=>!Object.prototype.hasOwnProperty.call(f,b)))throw new Error(`parent schema must have dependencies of ${v}: ${g.join(",")}`);if(m.validateSchema&&!m.validateSchema(f[v])){let S=`keyword "${v}" value is invalid at path "${y}": `+_.errorsText(m.validateSchema.errors);if(h.validateSchema==="log")_.logger.error(S);else throw new Error(S)}}t.validateKeywordUsage=p}),Qre=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.extendSubschemaMode=t.extendSubschemaData=t.getSubschema=void 0;var e=Xe(),r=ut();function n(o,{keyword:s,schemaProp:c,schema:u,schemaPath:l,errSchemaPath:d,topSchemaRef:p}){if(s!==void 0&&u!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(s!==void 0){let f=o.schema[s];return c===void 0?{schema:f,schemaPath:(0,e._)`${o.schemaPath}${(0,e.getProperty)(s)}`,errSchemaPath:`${o.errSchemaPath}/${s}`}:{schema:f[c],schemaPath:(0,e._)`${o.schemaPath}${(0,e.getProperty)(s)}${(0,e.getProperty)(c)}`,errSchemaPath:`${o.errSchemaPath}/${s}/${(0,r.escapeFragment)(c)}`}}if(u!==void 0){if(l===void 0||d===void 0||p===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:u,schemaPath:l,topSchemaRef:p,errSchemaPath:d}}throw new Error('either "keyword" or "schema" must be passed')}t.getSubschema=n;function i(o,s,{dataProp:c,dataPropType:u,data:l,dataTypes:d,propertyName:p}){if(l!==void 0&&c!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:f}=s;if(c!==void 0){let{errorPath:_,dataPathArr:y,opts:m}=s,v=f.let("data",(0,e._)`${s.data}${(0,e.getProperty)(c)}`,!0);h(v),o.errorPath=(0,e.str)`${_}${(0,r.getErrorPath)(c,u,m.jsPropertySyntax)}`,o.parentDataProperty=(0,e._)`${c}`,o.dataPathArr=[...y,o.parentDataProperty]}if(l!==void 0){let _=l instanceof e.Name?l:f.let("data",l,!0);h(_),p!==void 0&&(o.propertyName=p)}d&&(o.dataTypes=d);function h(_){o.data=_,o.dataLevel=s.dataLevel+1,o.dataTypes=[],s.definedProperties=new Set,o.parentData=s.data,o.dataNames=[...s.dataNames,_]}}t.extendSubschemaData=i;function a(o,{jtdDiscriminator:s,jtdMetadata:c,compositeRule:u,createErrors:l,allErrors:d}){u!==void 0&&(o.compositeRule=u),l!==void 0&&(o.createErrors=l),d!==void 0&&(o.allErrors=d),o.jtdDiscriminator=s,o.jtdMetadata=c}t.extendSubschemaMode=a}),Mh=V((t,e)=>{e.exports=function r(n,i){if(n===i)return!0;if(n&&i&&typeof n=="object"&&typeof i=="object"){if(n.constructor!==i.constructor)return!1;var a,o,s;if(Array.isArray(n)){if(a=n.length,a!=i.length)return!1;for(o=a;o--!==0;)if(!r(n[o],i[o]))return!1;return!0}if(n.constructor===RegExp)return n.source===i.source&&n.flags===i.flags;if(n.valueOf!==Object.prototype.valueOf)return n.valueOf()===i.valueOf();if(n.toString!==Object.prototype.toString)return n.toString()===i.toString();if(s=Object.keys(n),a=s.length,a!==Object.keys(i).length)return!1;for(o=a;o--!==0;)if(!Object.prototype.hasOwnProperty.call(i,s[o]))return!1;for(o=a;o--!==0;){var c=s[o];if(!r(n[c],i[c]))return!1}return!0}return n!==n&&i!==i}}),ene=V((t,e)=>{var r=e.exports=function(a,o,s){typeof o=="function"&&(s=o,o={}),s=o.cb||s;var c=typeof s=="function"?s:s.pre||function(){},u=s.post||function(){};n(o,c,u,a,"",a)};r.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0},r.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},r.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},r.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function n(a,o,s,c,u,l,d,p,f,h){if(c&&typeof c=="object"&&!Array.isArray(c)){o(c,u,l,d,p,f,h);for(var _ in c){var y=c[_];if(Array.isArray(y)){if(_ in r.arrayKeywords)for(var m=0;m{Object.defineProperty(t,"__esModule",{value:!0}),t.getSchemaRefs=t.resolveUrl=t.normalizeId=t._getFullPath=t.getFullPath=t.inlineRef=void 0;var e=ut(),r=Mh(),n=ene(),i=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function a(y,m=!0){return typeof y=="boolean"?!0:m===!0?!s(y):m?c(y)<=m:!1}t.inlineRef=a;var o=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function s(y){for(let m in y){if(o.has(m))return!0;let v=y[m];if(Array.isArray(v)&&v.some(s)||typeof v=="object"&&s(v))return!0}return!1}function c(y){let m=0;for(let v in y){if(v==="$ref")return 1/0;if(m++,!i.has(v)&&(typeof y[v]=="object"&&(0,e.eachItem)(y[v],g=>m+=c(g)),m===1/0))return 1/0}return m}function u(y,m="",v){v!==!1&&(m=p(m));let g=y.parse(m);return l(y,g)}t.getFullPath=u;function l(y,m){return y.serialize(m).split("#")[0]+"#"}t._getFullPath=l;var d=/#\/?$/;function p(y){return y?y.replace(d,""):""}t.normalizeId=p;function f(y,m,v){return v=p(v),y.resolve(m,v)}t.resolveUrl=f;var h=/^[a-z_][-a-z0-9._]*$/i;function _(y,m){if(typeof y=="boolean")return{};let{schemaId:v,uriResolver:g}=this.opts,b=p(y[v]||m),S={"":b},x=u(g,b,!1),w={},E=new Set;return n(y,{allKeys:!0},(M,q,B,U)=>{if(U===void 0)return;let Y=x+q,me=S[U];typeof M[v]=="string"&&(me=Qe.call(this,M[v])),ft.call(this,M.$anchor),ft.call(this,M.$dynamicAnchor),S[q]=me;function Qe(fe){let F=this.opts.uriResolver.resolve;if(fe=p(me?F(me,fe):fe),E.has(fe))throw A(fe);E.add(fe);let I=this.refs[fe];return typeof I=="string"&&(I=this.refs[I]),typeof I=="object"?R(M,I.schema,fe):fe!==p(Y)&&(fe[0]==="#"?(R(M,w[fe],fe),w[fe]=M):this.refs[fe]=Y),fe}function ft(fe){if(typeof fe=="string"){if(!h.test(fe))throw new Error(`invalid anchor "${fe}"`);Qe.call(this,`#${fe}`)}}}),w;function R(M,q,B){if(q!==void 0&&!r(M,q))throw A(B)}function A(M){return new Error(`reference "${M}" resolves to more than one schema`)}}t.getSchemaRefs=_}),zh=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getData=t.KeywordCxt=t.validateFunctionCode=void 0;var e=Jre(),r=kh(),n=t2(),i=kh(),a=Xre(),o=Yre(),s=Qre(),c=Xe(),u=wa(),l=Dh(),d=ut(),p=Ah();function f(P){if(x(P)&&(E(P),S(P))){m(P);return}h(P,()=>(0,e.topBoolOrEmptySchema)(P))}t.validateFunctionCode=f;function h({gen:P,validateName:O,schema:z,schemaEnv:Z,opts:J},ie){J.code.es5?P.func(O,(0,c._)`${u.default.data}, ${u.default.valCxt}`,Z.$async,()=>{P.code((0,c._)`"use strict"; ${g(z,J)}`),y(P,J),P.code(ie)}):P.func(O,(0,c._)`${u.default.data}, ${_(J)}`,Z.$async,()=>P.code(g(z,J)).code(ie))}function _(P){return(0,c._)`{${u.default.instancePath}="", ${u.default.parentData}, ${u.default.parentDataProperty}, ${u.default.rootData}=${u.default.data}${P.dynamicRef?(0,c._)`, ${u.default.dynamicAnchors}={}`:c.nil}}={}`}function y(P,O){P.if(u.default.valCxt,()=>{P.var(u.default.instancePath,(0,c._)`${u.default.valCxt}.${u.default.instancePath}`),P.var(u.default.parentData,(0,c._)`${u.default.valCxt}.${u.default.parentData}`),P.var(u.default.parentDataProperty,(0,c._)`${u.default.valCxt}.${u.default.parentDataProperty}`),P.var(u.default.rootData,(0,c._)`${u.default.valCxt}.${u.default.rootData}`),O.dynamicRef&&P.var(u.default.dynamicAnchors,(0,c._)`${u.default.valCxt}.${u.default.dynamicAnchors}`)},()=>{P.var(u.default.instancePath,(0,c._)`""`),P.var(u.default.parentData,(0,c._)`undefined`),P.var(u.default.parentDataProperty,(0,c._)`undefined`),P.var(u.default.rootData,u.default.data),O.dynamicRef&&P.var(u.default.dynamicAnchors,(0,c._)`{}`)})}function m(P){let{schema:O,opts:z,gen:Z}=P;h(P,()=>{z.$comment&&O.$comment&&U(P),M(P),Z.let(u.default.vErrors,null),Z.let(u.default.errors,0),z.unevaluated&&v(P),R(P),Y(P)})}function v(P){let{gen:O,validateName:z}=P;P.evaluated=O.const("evaluated",(0,c._)`${z}.evaluated`),O.if((0,c._)`${P.evaluated}.dynamicProps`,()=>O.assign((0,c._)`${P.evaluated}.props`,(0,c._)`undefined`)),O.if((0,c._)`${P.evaluated}.dynamicItems`,()=>O.assign((0,c._)`${P.evaluated}.items`,(0,c._)`undefined`))}function g(P,O){let z=typeof P=="object"&&P[O.schemaId];return z&&(O.code.source||O.code.process)?(0,c._)`/*# sourceURL=${z} */`:c.nil}function b(P,O){if(x(P)&&(E(P),S(P))){w(P,O);return}(0,e.boolOrEmptySchema)(P,O)}function S({schema:P,self:O}){if(typeof P=="boolean")return!P;for(let z in P)if(O.RULES.all[z])return!0;return!1}function x(P){return typeof P.schema!="boolean"}function w(P,O){let{schema:z,gen:Z,opts:J}=P;J.$comment&&z.$comment&&U(P),q(P),B(P);let ie=Z.const("_errs",u.default.errors);R(P,ie),Z.var(O,(0,c._)`${ie} === ${u.default.errors}`)}function E(P){(0,d.checkUnknownRules)(P),A(P)}function R(P,O){if(P.opts.jtd)return Qe(P,[],!1,O);let z=(0,r.getSchemaTypes)(P.schema),Z=(0,r.coerceAndCheckDataType)(P,z);Qe(P,z,!Z,O)}function A(P){let{schema:O,errSchemaPath:z,opts:Z,self:J}=P;O.$ref&&Z.ignoreKeywordsWithRef&&(0,d.schemaHasRulesButRef)(O,J.RULES)&&J.logger.warn(`$ref: keywords ignored in schema at path "${z}"`)}function M(P){let{schema:O,opts:z}=P;O.default!==void 0&&z.useDefaults&&z.strictSchema&&(0,d.checkStrictMode)(P,"default is ignored in the schema root")}function q(P){let O=P.schema[P.opts.schemaId];O&&(P.baseId=(0,l.resolveUrl)(P.opts.uriResolver,P.baseId,O))}function B(P){if(P.schema.$async&&!P.schemaEnv.$async)throw new Error("async schema in sync schema")}function U({gen:P,schemaEnv:O,schema:z,errSchemaPath:Z,opts:J}){let ie=z.$comment;if(J.$comment===!0)P.code((0,c._)`${u.default.self}.logger.log(${ie})`);else if(typeof J.$comment=="function"){let et=(0,c.str)`${Z}/$comment`,Zt=P.scopeValue("root",{ref:O.root});P.code((0,c._)`${u.default.self}.opts.$comment(${ie}, ${et}, ${Zt}.schema)`)}}function Y(P){let{gen:O,schemaEnv:z,validateName:Z,ValidationError:J,opts:ie}=P;z.$async?O.if((0,c._)`${u.default.errors} === 0`,()=>O.return(u.default.data),()=>O.throw((0,c._)`new ${J}(${u.default.vErrors})`)):(O.assign((0,c._)`${Z}.errors`,u.default.vErrors),ie.unevaluated&&me(P),O.return((0,c._)`${u.default.errors} === 0`))}function me({gen:P,evaluated:O,props:z,items:Z}){z instanceof c.Name&&P.assign((0,c._)`${O}.props`,z),Z instanceof c.Name&&P.assign((0,c._)`${O}.items`,Z)}function Qe(P,O,z,Z){let{gen:J,schema:ie,data:et,allErrors:Zt,opts:gt,self:vt}=P,{RULES:tt}=vt;if(ie.$ref&&(gt.ignoreKeywordsWithRef||!(0,d.schemaHasRulesButRef)(ie,tt))){J.block(()=>K(P,"$ref",tt.all.$ref.definition));return}gt.jtd||fe(P,O),J.block(()=>{for(let Ct of tt.rules)Yr(Ct);Yr(tt.post)});function Yr(Ct){(0,n.shouldUseGroup)(ie,Ct)&&(Ct.type?(J.if((0,i.checkDataType)(Ct.type,et,gt.strictNumbers)),ft(P,Ct),O.length===1&&O[0]===Ct.type&&z&&(J.else(),(0,i.reportTypeError)(P)),J.endIf()):ft(P,Ct),Zt||J.if((0,c._)`${u.default.errors} === ${Z||0}`))}}function ft(P,O){let{gen:z,schema:Z,opts:{useDefaults:J}}=P;J&&(0,a.assignDefaults)(P,O.type),z.block(()=>{for(let ie of O.rules)(0,n.shouldUseRule)(Z,ie)&&K(P,ie.keyword,ie.definition,O.type)})}function fe(P,O){P.schemaEnv.meta||!P.opts.strictTypes||(F(P,O),P.opts.allowUnionTypes||I(P,O),D(P,P.dataTypes))}function F(P,O){if(O.length){if(!P.dataTypes.length){P.dataTypes=O;return}O.forEach(z=>{$(P.dataTypes,z)||N(P,`type "${z}" not allowed by context "${P.dataTypes.join(",")}"`)}),T(P,O)}}function I(P,O){O.length>1&&!(O.length===2&&O.includes("null"))&&N(P,"use allowUnionTypes to allow union type keyword")}function D(P,O){let z=P.self.RULES.all;for(let Z in z){let J=z[Z];if(typeof J=="object"&&(0,n.shouldUseRule)(P.schema,J)){let{type:ie}=J.definition;ie.length&&!ie.some(et=>C(O,et))&&N(P,`missing type "${ie.join(",")}" for keyword "${Z}"`)}}}function C(P,O){return P.includes(O)||O==="number"&&P.includes("integer")}function $(P,O){return P.includes(O)||O==="integer"&&P.includes("number")}function T(P,O){let z=[];for(let Z of P.dataTypes)$(O,Z)?z.push(Z):O.includes("integer")&&Z==="number"&&z.push("integer");P.dataTypes=z}function N(P,O){let z=P.schemaEnv.baseId+P.errSchemaPath;O+=` at "${z}" (strictTypes)`,(0,d.checkStrictMode)(P,O,P.opts.strictTypes)}class W{constructor(O,z,Z){if((0,o.validateKeywordUsage)(O,z,Z),this.gen=O.gen,this.allErrors=O.allErrors,this.keyword=Z,this.data=O.data,this.schema=O.schema[Z],this.$data=z.$data&&O.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,d.schemaRefOrVal)(O,this.schema,Z,this.$data),this.schemaType=z.schemaType,this.parentSchema=O.schema,this.params={},this.it=O,this.def=z,this.$data)this.schemaCode=O.gen.const("vSchema",je(this.$data,O));else if(this.schemaCode=this.schemaValue,!(0,o.validSchemaType)(this.schema,z.schemaType,z.allowUndefined))throw new Error(`${Z} value must be ${JSON.stringify(z.schemaType)}`);("code"in z?z.trackErrors:z.errors!==!1)&&(this.errsCount=O.gen.const("_errs",u.default.errors))}result(O,z,Z){this.failResult((0,c.not)(O),z,Z)}failResult(O,z,Z){this.gen.if(O),Z?Z():this.error(),z?(this.gen.else(),z(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(O,z){this.failResult((0,c.not)(O),void 0,z)}fail(O){if(O===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(O),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(O){if(!this.$data)return this.fail(O);let{schemaCode:z}=this;this.fail((0,c._)`${z} !== undefined && (${(0,c.or)(this.invalid$data(),O)})`)}error(O,z,Z){if(z){this.setParams(z),this._error(O,Z),this.setParams({});return}this._error(O,Z)}_error(O,z){(O?p.reportExtraError:p.reportError)(this,this.def.error,z)}$dataError(){(0,p.reportError)(this,this.def.$dataError||p.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,p.resetErrorsCount)(this.gen,this.errsCount)}ok(O){this.allErrors||this.gen.if(O)}setParams(O,z){z?Object.assign(this.params,O):this.params=O}block$data(O,z,Z=c.nil){this.gen.block(()=>{this.check$data(O,Z),z()})}check$data(O=c.nil,z=c.nil){if(!this.$data)return;let{gen:Z,schemaCode:J,schemaType:ie,def:et}=this;Z.if((0,c.or)((0,c._)`${J} === undefined`,z)),O!==c.nil&&Z.assign(O,!0),(ie.length||et.validateSchema)&&(Z.elseIf(this.invalid$data()),this.$dataError(),O!==c.nil&&Z.assign(O,!1)),Z.else()}invalid$data(){let{gen:O,schemaCode:z,schemaType:Z,def:J,it:ie}=this;return(0,c.or)(et(),Zt());function et(){if(Z.length){if(!(z instanceof c.Name))throw new Error("ajv implementation error");let gt=Array.isArray(Z)?Z:[Z];return(0,c._)`${(0,i.checkDataTypes)(gt,z,ie.opts.strictNumbers,i.DataType.Wrong)}`}return c.nil}function Zt(){if(J.validateSchema){let gt=O.scopeValue("validate$data",{ref:J.validateSchema});return(0,c._)`!${gt}(${z})`}return c.nil}}subschema(O,z){let Z=(0,s.getSubschema)(this.it,O);(0,s.extendSubschemaData)(Z,this.it,O),(0,s.extendSubschemaMode)(Z,O);let J={...this.it,...Z,items:void 0,props:void 0};return b(J,z),J}mergeEvaluated(O,z){let{it:Z,gen:J}=this;Z.opts.unevaluated&&(Z.props!==!0&&O.props!==void 0&&(Z.props=d.mergeEvaluated.props(J,O.props,Z.props,z)),Z.items!==!0&&O.items!==void 0&&(Z.items=d.mergeEvaluated.items(J,O.items,Z.items,z)))}mergeValidEvaluated(O,z){let{it:Z,gen:J}=this;if(Z.opts.unevaluated&&(Z.props!==!0||Z.items!==!0))return J.if(z,()=>this.mergeEvaluated(O,c.Name)),!0}}t.KeywordCxt=W;function K(P,O,z,Z){let J=new W(P,z,O);"code"in z?z.code(J,Z):J.$data&&z.validate?(0,o.funcKeywordCode)(J,z):"macro"in z?(0,o.macroKeywordCode)(J,z):(z.compile||z.validate)&&(0,o.funcKeywordCode)(J,z)}var pe=/^\/(?:[^~]|~0|~1)*$/,ce=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function je(P,{dataLevel:O,dataNames:z,dataPathArr:Z}){let J,ie;if(P==="")return u.default.rootData;if(P[0]==="/"){if(!pe.test(P))throw new Error(`Invalid JSON-pointer: ${P}`);J=P,ie=u.default.rootData}else{let vt=ce.exec(P);if(!vt)throw new Error(`Invalid JSON-pointer: ${P}`);let tt=+vt[1];if(J=vt[2],J==="#"){if(tt>=O)throw new Error(gt("property/index",tt));return Z[O-tt]}if(tt>O)throw new Error(gt("data",tt));if(ie=z[O-tt],!J)return ie}let et=ie,Zt=J.split("/");for(let vt of Zt)vt&&(ie=(0,c._)`${ie}${(0,c.getProperty)((0,d.unescapeJsonPointer)(vt))}`,et=(0,c._)`${et} && ${ie}`);return et;function gt(vt,tt){return`Cannot access ${vt} ${tt} levels up, current level is ${O}`}}t.getData=je}),E$=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});class e extends Error{constructor(n){super("validation failed"),this.errors=n,this.ajv=this.validation=!0}}t.default=e}),Uh=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Dh();class r extends Error{constructor(i,a,o,s){super(s||`can't resolve reference ${o} from id ${a}`),this.missingRef=(0,e.resolveUrl)(i,a,o),this.missingSchema=(0,e.normalizeId)((0,e.getFullPath)(i,this.missingRef))}}t.default=r}),k$=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.resolveSchema=t.getCompilingSchema=t.resolveRef=t.compileSchema=t.SchemaEnv=void 0;var e=Xe(),r=E$(),n=wa(),i=Dh(),a=ut(),o=zh();class s{constructor(v){var g;this.refs={},this.dynamicAnchors={};let b;typeof v.schema=="object"&&(b=v.schema),this.schema=v.schema,this.schemaId=v.schemaId,this.root=v.root||this,this.baseId=(g=v.baseId)!==null&&g!==void 0?g:(0,i.normalizeId)(b?.[v.schemaId||"$id"]),this.schemaPath=v.schemaPath,this.localRefs=v.localRefs,this.meta=v.meta,this.$async=b?.$async,this.refs={}}}t.SchemaEnv=s;function c(m){let v=d.call(this,m);if(v)return v;let g=(0,i.getFullPath)(this.opts.uriResolver,m.root.baseId),{es5:b,lines:S}=this.opts.code,{ownProperties:x}=this.opts,w=new e.CodeGen(this.scope,{es5:b,lines:S,ownProperties:x}),E;m.$async&&(E=w.scopeValue("Error",{ref:r.default,code:(0,e._)`require("ajv/dist/runtime/validation_error").default`}));let R=w.scopeName("validate");m.validateName=R;let A={gen:w,allErrors:this.opts.allErrors,data:n.default.data,parentData:n.default.parentData,parentDataProperty:n.default.parentDataProperty,dataNames:[n.default.data],dataPathArr:[e.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:w.scopeValue("schema",this.opts.code.source===!0?{ref:m.schema,code:(0,e.stringify)(m.schema)}:{ref:m.schema}),validateName:R,ValidationError:E,schema:m.schema,schemaEnv:m,rootId:g,baseId:m.baseId||g,schemaPath:e.nil,errSchemaPath:m.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,e._)`""`,opts:this.opts,self:this},M;try{this._compilations.add(m),(0,o.validateFunctionCode)(A),w.optimize(this.opts.code.optimize);let q=w.toString();M=`${w.scopeRefs(n.default.scope)}return ${q}`,this.opts.code.process&&(M=this.opts.code.process(M,m));let U=new Function(`${n.default.self}`,`${n.default.scope}`,M)(this,this.scope.get());if(this.scope.value(R,{ref:U}),U.errors=null,U.schema=m.schema,U.schemaEnv=m,m.$async&&(U.$async=!0),this.opts.code.source===!0&&(U.source={validateName:R,validateCode:q,scopeValues:w._values}),this.opts.unevaluated){let{props:Y,items:me}=A;U.evaluated={props:Y instanceof e.Name?void 0:Y,items:me instanceof e.Name?void 0:me,dynamicProps:Y instanceof e.Name,dynamicItems:me instanceof e.Name},U.source&&(U.source.evaluated=(0,e.stringify)(U.evaluated))}return m.validate=U,m}catch(q){throw delete m.validate,delete m.validateName,M&&this.logger.error("Error compiling schema, function code:",M),q}finally{this._compilations.delete(m)}}t.compileSchema=c;function u(m,v,g){var b;g=(0,i.resolveUrl)(this.opts.uriResolver,v,g);let S=m.refs[g];if(S)return S;let x=f.call(this,m,g);if(x===void 0){let w=(b=m.localRefs)===null||b===void 0?void 0:b[g],{schemaId:E}=this.opts;w&&(x=new s({schema:w,schemaId:E,root:m,baseId:v}))}if(x!==void 0)return m.refs[g]=l.call(this,x)}t.resolveRef=u;function l(m){return(0,i.inlineRef)(m.schema,this.opts.inlineRefs)?m.schema:m.validate?m:c.call(this,m)}function d(m){for(let v of this._compilations)if(p(v,m))return v}t.getCompilingSchema=d;function p(m,v){return m.schema===v.schema&&m.root===v.root&&m.baseId===v.baseId}function f(m,v){let g;for(;typeof(g=this.refs[v])=="string";)v=g;return g||this.schemas[v]||h.call(this,m,v)}function h(m,v){let g=this.opts.uriResolver.parse(v),b=(0,i._getFullPath)(this.opts.uriResolver,g),S=(0,i.getFullPath)(this.opts.uriResolver,m.baseId,void 0);if(Object.keys(m.schema).length>0&&b===S)return y.call(this,g,m);let x=(0,i.normalizeId)(b),w=this.refs[x]||this.schemas[x];if(typeof w=="string"){let E=h.call(this,m,w);return typeof E?.schema!="object"?void 0:y.call(this,g,E)}if(typeof w?.schema=="object"){if(w.validate||c.call(this,w),x===(0,i.normalizeId)(v)){let{schema:E}=w,{schemaId:R}=this.opts,A=E[R];return A&&(S=(0,i.resolveUrl)(this.opts.uriResolver,S,A)),new s({schema:E,schemaId:R,root:m,baseId:S})}return y.call(this,g,w)}}t.resolveSchema=h;var _=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function y(m,{baseId:v,schema:g,root:b}){var S;if(((S=m.fragment)===null||S===void 0?void 0:S[0])!=="/")return;for(let E of m.fragment.slice(1).split("/")){if(typeof g=="boolean")return;let R=g[(0,a.unescapeFragment)(E)];if(R===void 0)return;g=R;let A=typeof g=="object"&&g[this.opts.schemaId];!_.has(E)&&A&&(v=(0,i.resolveUrl)(this.opts.uriResolver,v,A))}let x;if(typeof g!="boolean"&&g.$ref&&!(0,a.schemaHasRulesButRef)(g,this.RULES)){let E=(0,i.resolveUrl)(this.opts.uriResolver,v,g.$ref);x=h.call(this,b,E)}let{schemaId:w}=this.opts;if(x=x||new s({schema:g,schemaId:w,root:b,baseId:v}),x.schema!==x.root.schema)return x}}),tne=V((t,e)=>{e.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}}),rne=V((t,e)=>{var r={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};e.exports={HEX:r}}),nne=V((t,e)=>{var{HEX:r}=rne(),n=/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u;function i(m){if(u(m,".")<3)return{host:m,isIPV4:!1};let v=m.match(n)||[],[g]=v;return g?{host:c(g,"."),isIPV4:!0}:{host:m,isIPV4:!1}}function a(m,v=!1){let g="",b=!0;for(let S of m){if(r[S]===void 0)return;S!=="0"&&b===!0&&(b=!1),b||(g+=S)}return v&&g.length===0&&(g="0"),g}function o(m){let v=0,g={error:!1,address:"",zone:""},b=[],S=[],x=!1,w=!1,E=!1;function R(){if(S.length){if(x===!1){let A=a(S);if(A!==void 0)b.push(A);else return g.error=!0,!1}S.length=0}return!0}for(let A=0;A7){g.error=!0;break}A-1>=0&&m[A-1]===":"&&(w=!0);continue}else if(M==="%"){if(!R())break;x=!0}else{S.push(M);continue}}return S.length&&(x?g.zone=S.join(""):E?b.push(S.join("")):b.push(a(S))),g.address=b.join(""),g}function s(m){if(u(m,":")<2)return{host:m,isIPV6:!1};let v=o(m);if(v.error)return{host:m,isIPV6:!1};{let g=v.address,b=v.address;return v.zone&&(g+="%"+v.zone,b+="%25"+v.zone),{host:g,escapedHost:b,isIPV6:!0}}}function c(m,v){let g="",b=!0,S=m.length;for(let x=0;x{var r=/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu,n=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;function i(b){return typeof b.secure=="boolean"?b.secure:String(b.scheme).toLowerCase()==="wss"}function a(b){return b.host||(b.error=b.error||"HTTP URIs must have a host."),b}function o(b){let S=String(b.scheme).toLowerCase()==="https";return(b.port===(S?443:80)||b.port==="")&&(b.port=void 0),b.path||(b.path="/"),b}function s(b){return b.secure=i(b),b.resourceName=(b.path||"/")+(b.query?"?"+b.query:""),b.path=void 0,b.query=void 0,b}function c(b){if((b.port===(i(b)?443:80)||b.port==="")&&(b.port=void 0),typeof b.secure=="boolean"&&(b.scheme=b.secure?"wss":"ws",b.secure=void 0),b.resourceName){let[S,x]=b.resourceName.split("?");b.path=S&&S!=="/"?S:void 0,b.query=x,b.resourceName=void 0}return b.fragment=void 0,b}function u(b,S){if(!b.path)return b.error="URN can not be parsed",b;let x=b.path.match(n);if(x){let w=S.scheme||b.scheme||"urn";b.nid=x[1].toLowerCase(),b.nss=x[2];let E=`${w}:${S.nid||b.nid}`,R=g[E];b.path=void 0,R&&(b=R.parse(b,S))}else b.error=b.error||"URN can not be parsed.";return b}function l(b,S){let x=S.scheme||b.scheme||"urn",w=b.nid.toLowerCase(),E=`${x}:${S.nid||w}`,R=g[E];R&&(b=R.serialize(b,S));let A=b,M=b.nss;return A.path=`${w||S.nid}:${M}`,S.skipEscape=!0,A}function d(b,S){let x=b;return x.uuid=x.nss,x.nss=void 0,!S.tolerant&&(!x.uuid||!r.test(x.uuid))&&(x.error=x.error||"UUID is not valid."),x}function p(b){let S=b;return S.nss=(b.uuid||"").toLowerCase(),S}var f={scheme:"http",domainHost:!0,parse:a,serialize:o},h={scheme:"https",domainHost:f.domainHost,parse:a,serialize:o},_={scheme:"ws",domainHost:!0,parse:s,serialize:c},y={scheme:"wss",domainHost:_.domainHost,parse:_.parse,serialize:_.serialize},m={scheme:"urn",parse:u,serialize:l,skipNormalize:!0},v={scheme:"urn:uuid",parse:d,serialize:p,skipNormalize:!0},g={http:f,https:h,ws:_,wss:y,urn:m,"urn:uuid":v};e.exports=g}),r2=V((t,e)=>{var{normalizeIPv6:r,normalizeIPv4:n,removeDotSegments:i,recomposeAuthority:a,normalizeComponentEncoding:o}=nne(),s=ine();function c(v,g){return typeof v=="string"?v=p(y(v,g),g):typeof v=="object"&&(v=y(p(v,g),g)),v}function u(v,g,b){let S=Object.assign({scheme:"null"},b),x=l(y(v,S),y(g,S),S,!0);return p(x,{...S,skipEscape:!0})}function l(v,g,b,S){let x={};return S||(v=y(p(v,b),b),g=y(p(g,b),b)),b=b||{},!b.tolerant&&g.scheme?(x.scheme=g.scheme,x.userinfo=g.userinfo,x.host=g.host,x.port=g.port,x.path=i(g.path||""),x.query=g.query):(g.userinfo!==void 0||g.host!==void 0||g.port!==void 0?(x.userinfo=g.userinfo,x.host=g.host,x.port=g.port,x.path=i(g.path||""),x.query=g.query):(g.path?(g.path.charAt(0)==="/"?x.path=i(g.path):((v.userinfo!==void 0||v.host!==void 0||v.port!==void 0)&&!v.path?x.path="/"+g.path:v.path?x.path=v.path.slice(0,v.path.lastIndexOf("/")+1)+g.path:x.path=g.path,x.path=i(x.path)),x.query=g.query):(x.path=v.path,g.query!==void 0?x.query=g.query:x.query=v.query),x.userinfo=v.userinfo,x.host=v.host,x.port=v.port),x.scheme=v.scheme),x.fragment=g.fragment,x}function d(v,g,b){return typeof v=="string"?(v=unescape(v),v=p(o(y(v,b),!0),{...b,skipEscape:!0})):typeof v=="object"&&(v=p(o(v,!0),{...b,skipEscape:!0})),typeof g=="string"?(g=unescape(g),g=p(o(y(g,b),!0),{...b,skipEscape:!0})):typeof g=="object"&&(g=p(o(g,!0),{...b,skipEscape:!0})),v.toLowerCase()===g.toLowerCase()}function p(v,g){let b={host:v.host,scheme:v.scheme,userinfo:v.userinfo,port:v.port,path:v.path,query:v.query,nid:v.nid,nss:v.nss,uuid:v.uuid,fragment:v.fragment,reference:v.reference,resourceName:v.resourceName,secure:v.secure,error:""},S=Object.assign({},g),x=[],w=s[(S.scheme||b.scheme||"").toLowerCase()];w&&w.serialize&&w.serialize(b,S),b.path!==void 0&&(S.skipEscape?b.path=unescape(b.path):(b.path=escape(b.path),b.scheme!==void 0&&(b.path=b.path.split("%3A").join(":")))),S.reference!=="suffix"&&b.scheme&&x.push(b.scheme,":");let E=a(b);if(E!==void 0&&(S.reference!=="suffix"&&x.push("//"),x.push(E),b.path&&b.path.charAt(0)!=="/"&&x.push("/")),b.path!==void 0){let R=b.path;!S.absolutePath&&(!w||!w.absolutePath)&&(R=i(R)),E===void 0&&(R=R.replace(/^\/\//u,"/%2F")),x.push(R)}return b.query!==void 0&&x.push("?",b.query),b.fragment!==void 0&&x.push("#",b.fragment),x.join("")}var f=Array.from({length:127},(v,g)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(g)));function h(v){let g=0;for(let b=0,S=v.length;b126||f[g])return!0;return!1}var _=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function y(v,g){let b=Object.assign({},g),S={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},x=v.indexOf("%")!==-1,w=!1;b.reference==="suffix"&&(v=(b.scheme?b.scheme+":":"")+"//"+v);let E=v.match(_);if(E){if(S.scheme=E[1],S.userinfo=E[3],S.host=E[4],S.port=parseInt(E[5],10),S.path=E[6]||"",S.query=E[7],S.fragment=E[8],isNaN(S.port)&&(S.port=E[5]),S.host){let A=n(S.host);if(A.isIPV4===!1){let M=r(A.host);S.host=M.host.toLowerCase(),w=M.isIPV6}else S.host=A.host,w=!0}S.scheme===void 0&&S.userinfo===void 0&&S.host===void 0&&S.port===void 0&&S.query===void 0&&!S.path?S.reference="same-document":S.scheme===void 0?S.reference="relative":S.fragment===void 0?S.reference="absolute":S.reference="uri",b.reference&&b.reference!=="suffix"&&b.reference!==S.reference&&(S.error=S.error||"URI is not a "+b.reference+" reference.");let R=s[(b.scheme||S.scheme||"").toLowerCase()];if(!b.unicodeSupport&&(!R||!R.unicodeSupport)&&S.host&&(b.domainHost||R&&R.domainHost)&&w===!1&&h(S.host))try{S.host=URL.domainToASCII(S.host.toLowerCase())}catch(A){S.error=S.error||"Host's domain name can not be converted to ASCII: "+A}(!R||R&&!R.skipNormalize)&&(x&&S.scheme!==void 0&&(S.scheme=unescape(S.scheme)),x&&S.host!==void 0&&(S.host=unescape(S.host)),S.path&&(S.path=escape(unescape(S.path))),S.fragment&&(S.fragment=encodeURI(decodeURIComponent(S.fragment)))),R&&R.parse&&R.parse(S,b)}else S.error=S.error||"URI can not be parsed.";return S}var m={SCHEMES:s,normalize:c,resolve:u,resolveComponents:l,equal:d,serialize:p,parse:y};e.exports=m,e.exports.default=m,e.exports.fastUri=m}),ane=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=r2();e.code='require("ajv/dist/runtime/uri").default',t.default=e}),one=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;var e=zh();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return e.KeywordCxt}});var r=Xe();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return r._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return r.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return r.CodeGen}});var n=E$(),i=Uh(),a=e2(),o=k$(),s=Xe(),c=Dh(),u=kh(),l=ut(),d=tne(),p=ane(),f=(F,I)=>new RegExp(F,I);f.code="new RegExp";var h=["removeAdditional","useDefaults","coerceTypes"],_=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),y={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},m={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},v=200;function g(F){var I,D,C,$,T,N,W,K,pe,ce,je,P,O,z,Z,J,ie,et,Zt,gt,vt,tt,Yr,Ct,ka;let Rn=F.strict,Ta=(I=F.code)===null||I===void 0?void 0:I.optimize,Tc=Ta===!0||Ta===void 0?1:Ta||0,Ic=(C=(D=F.code)===null||D===void 0?void 0:D.regExp)!==null&&C!==void 0?C:f,Ig=($=F.uriResolver)!==null&&$!==void 0?$:p.default;return{strictSchema:(N=(T=F.strictSchema)!==null&&T!==void 0?T:Rn)!==null&&N!==void 0?N:!0,strictNumbers:(K=(W=F.strictNumbers)!==null&&W!==void 0?W:Rn)!==null&&K!==void 0?K:!0,strictTypes:(ce=(pe=F.strictTypes)!==null&&pe!==void 0?pe:Rn)!==null&&ce!==void 0?ce:"log",strictTuples:(P=(je=F.strictTuples)!==null&&je!==void 0?je:Rn)!==null&&P!==void 0?P:"log",strictRequired:(z=(O=F.strictRequired)!==null&&O!==void 0?O:Rn)!==null&&z!==void 0?z:!1,code:F.code?{...F.code,optimize:Tc,regExp:Ic}:{optimize:Tc,regExp:Ic},loopRequired:(Z=F.loopRequired)!==null&&Z!==void 0?Z:v,loopEnum:(J=F.loopEnum)!==null&&J!==void 0?J:v,meta:(ie=F.meta)!==null&&ie!==void 0?ie:!0,messages:(et=F.messages)!==null&&et!==void 0?et:!0,inlineRefs:(Zt=F.inlineRefs)!==null&&Zt!==void 0?Zt:!0,schemaId:(gt=F.schemaId)!==null&>!==void 0?gt:"$id",addUsedSchema:(vt=F.addUsedSchema)!==null&&vt!==void 0?vt:!0,validateSchema:(tt=F.validateSchema)!==null&&tt!==void 0?tt:!0,validateFormats:(Yr=F.validateFormats)!==null&&Yr!==void 0?Yr:!0,unicodeRegExp:(Ct=F.unicodeRegExp)!==null&&Ct!==void 0?Ct:!0,int32range:(ka=F.int32range)!==null&&ka!==void 0?ka:!0,uriResolver:Ig}}class b{constructor(I={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,I=this.opts={...I,...g(I)};let{es5:D,lines:C}=this.opts.code;this.scope=new s.ValueScope({scope:{},prefixes:_,es5:D,lines:C}),this.logger=q(I.logger);let $=I.validateFormats;I.validateFormats=!1,this.RULES=(0,a.getRules)(),S.call(this,y,I,"NOT SUPPORTED"),S.call(this,m,I,"DEPRECATED","warn"),this._metaOpts=A.call(this),I.formats&&E.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),I.keywords&&R.call(this,I.keywords),typeof I.meta=="object"&&this.addMetaSchema(I.meta),w.call(this),I.validateFormats=$}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:I,meta:D,schemaId:C}=this.opts,$=d;C==="id"&&($={...d},$.id=$.$id,delete $.$id),D&&I&&this.addMetaSchema($,$[C],!1)}defaultMeta(){let{meta:I,schemaId:D}=this.opts;return this.opts.defaultMeta=typeof I=="object"?I[D]||I:void 0}validate(I,D){let C;if(typeof I=="string"){if(C=this.getSchema(I),!C)throw new Error(`no schema with key or ref "${I}"`)}else C=this.compile(I);let $=C(D);return"$async"in C||(this.errors=C.errors),$}compile(I,D){let C=this._addSchema(I,D);return C.validate||this._compileSchemaEnv(C)}compileAsync(I,D){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:C}=this.opts;return $.call(this,I,D);async function $(ce,je){await T.call(this,ce.$schema);let P=this._addSchema(ce,je);return P.validate||N.call(this,P)}async function T(ce){ce&&!this.getSchema(ce)&&await $.call(this,{$ref:ce},!0)}async function N(ce){try{return this._compileSchemaEnv(ce)}catch(je){if(!(je instanceof i.default))throw je;return W.call(this,je),await K.call(this,je.missingSchema),N.call(this,ce)}}function W({missingSchema:ce,missingRef:je}){if(this.refs[ce])throw new Error(`AnySchema ${ce} is loaded but ${je} cannot be resolved`)}async function K(ce){let je=await pe.call(this,ce);this.refs[ce]||await T.call(this,je.$schema),this.refs[ce]||this.addSchema(je,ce,D)}async function pe(ce){let je=this._loading[ce];if(je)return je;try{return await(this._loading[ce]=C(ce))}finally{delete this._loading[ce]}}}addSchema(I,D,C,$=this.opts.validateSchema){if(Array.isArray(I)){for(let N of I)this.addSchema(N,void 0,C,$);return this}let T;if(typeof I=="object"){let{schemaId:N}=this.opts;if(T=I[N],T!==void 0&&typeof T!="string")throw new Error(`schema ${N} must be string`)}return D=(0,c.normalizeId)(D||T),this._checkUnique(D),this.schemas[D]=this._addSchema(I,C,D,$,!0),this}addMetaSchema(I,D,C=this.opts.validateSchema){return this.addSchema(I,D,!0,C),this}validateSchema(I,D){if(typeof I=="boolean")return!0;let C;if(C=I.$schema,C!==void 0&&typeof C!="string")throw new Error("$schema must be a string");if(C=C||this.opts.defaultMeta||this.defaultMeta(),!C)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let $=this.validate(C,I);if(!$&&D){let T="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(T);else throw new Error(T)}return $}getSchema(I){let D;for(;typeof(D=x.call(this,I))=="string";)I=D;if(D===void 0){let{schemaId:C}=this.opts,$=new o.SchemaEnv({schema:{},schemaId:C});if(D=o.resolveSchema.call(this,$,I),!D)return;this.refs[I]=D}return D.validate||this._compileSchemaEnv(D)}removeSchema(I){if(I instanceof RegExp)return this._removeAllSchemas(this.schemas,I),this._removeAllSchemas(this.refs,I),this;switch(typeof I){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let D=x.call(this,I);return typeof D=="object"&&this._cache.delete(D.schema),delete this.schemas[I],delete this.refs[I],this}case"object":{let D=I;this._cache.delete(D);let C=I[this.opts.schemaId];return C&&(C=(0,c.normalizeId)(C),delete this.schemas[C],delete this.refs[C]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(I){for(let D of I)this.addKeyword(D);return this}addKeyword(I,D){let C;if(typeof I=="string")C=I,typeof D=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),D.keyword=C);else if(typeof I=="object"&&D===void 0){if(D=I,C=D.keyword,Array.isArray(C)&&!C.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(U.call(this,C,D),!D)return(0,l.eachItem)(C,T=>Y.call(this,T)),this;Qe.call(this,D);let $={...D,type:(0,u.getJSONTypes)(D.type),schemaType:(0,u.getJSONTypes)(D.schemaType)};return(0,l.eachItem)(C,$.type.length===0?T=>Y.call(this,T,$):T=>$.type.forEach(N=>Y.call(this,T,$,N))),this}getKeyword(I){let D=this.RULES.all[I];return typeof D=="object"?D.definition:!!D}removeKeyword(I){let{RULES:D}=this;delete D.keywords[I],delete D.all[I];for(let C of D.rules){let $=C.rules.findIndex(T=>T.keyword===I);$>=0&&C.rules.splice($,1)}return this}addFormat(I,D){return typeof D=="string"&&(D=new RegExp(D)),this.formats[I]=D,this}errorsText(I=this.errors,{separator:D=", ",dataVar:C="data"}={}){return!I||I.length===0?"No errors":I.map($=>`${C}${$.instancePath} ${$.message}`).reduce(($,T)=>$+D+T)}$dataMetaSchema(I,D){let C=this.RULES.all;I=JSON.parse(JSON.stringify(I));for(let $ of D){let T=$.split("/").slice(1),N=I;for(let W of T)N=N[W];for(let W in C){let K=C[W];if(typeof K!="object")continue;let{$data:pe}=K.definition,ce=N[W];pe&&ce&&(N[W]=fe(ce))}}return I}_removeAllSchemas(I,D){for(let C in I){let $=I[C];(!D||D.test(C))&&(typeof $=="string"?delete I[C]:$&&!$.meta&&(this._cache.delete($.schema),delete I[C]))}}_addSchema(I,D,C,$=this.opts.validateSchema,T=this.opts.addUsedSchema){let N,{schemaId:W}=this.opts;if(typeof I=="object")N=I[W];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof I!="boolean")throw new Error("schema must be object or boolean")}let K=this._cache.get(I);if(K!==void 0)return K;C=(0,c.normalizeId)(N||C);let pe=c.getSchemaRefs.call(this,I,C);return K=new o.SchemaEnv({schema:I,schemaId:W,meta:D,baseId:C,localRefs:pe}),this._cache.set(K.schema,K),T&&!C.startsWith("#")&&(C&&this._checkUnique(C),this.refs[C]=K),$&&this.validateSchema(I,!0),K}_checkUnique(I){if(this.schemas[I]||this.refs[I])throw new Error(`schema with key or id "${I}" already exists`)}_compileSchemaEnv(I){if(I.meta?this._compileMetaSchema(I):o.compileSchema.call(this,I),!I.validate)throw new Error("ajv implementation error");return I.validate}_compileMetaSchema(I){let D=this.opts;this.opts=this._metaOpts;try{o.compileSchema.call(this,I)}finally{this.opts=D}}}b.ValidationError=n.default,b.MissingRefError=i.default,t.default=b;function S(F,I,D,C="error"){for(let $ in F){let T=$;T in I&&this.logger[C](`${D}: option ${$}. ${F[T]}`)}}function x(F){return F=(0,c.normalizeId)(F),this.schemas[F]||this.refs[F]}function w(){let F=this.opts.schemas;if(F)if(Array.isArray(F))this.addSchema(F);else for(let I in F)this.addSchema(F[I],I)}function E(){for(let F in this.opts.formats){let I=this.opts.formats[F];I&&this.addFormat(F,I)}}function R(F){if(Array.isArray(F)){this.addVocabulary(F);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let I in F){let D=F[I];D.keyword||(D.keyword=I),this.addKeyword(D)}}function A(){let F={...this.opts};for(let I of h)delete F[I];return F}var M={log(){},warn(){},error(){}};function q(F){if(F===!1)return M;if(F===void 0)return console;if(F.log&&F.warn&&F.error)return F;throw new Error("logger must implement log, warn and error methods")}var B=/^[a-z_$][a-z0-9_$:-]*$/i;function U(F,I){let{RULES:D}=this;if((0,l.eachItem)(F,C=>{if(D.keywords[C])throw new Error(`Keyword ${C} is already defined`);if(!B.test(C))throw new Error(`Keyword ${C} has invalid name`)}),!!I&&I.$data&&!("code"in I||"validate"in I))throw new Error('$data keyword must have "code" or "validate" function')}function Y(F,I,D){var C;let $=I?.post;if(D&&$)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:T}=this,N=$?T.post:T.rules.find(({type:K})=>K===D);if(N||(N={type:D,rules:[]},T.rules.push(N)),T.keywords[F]=!0,!I)return;let W={keyword:F,definition:{...I,type:(0,u.getJSONTypes)(I.type),schemaType:(0,u.getJSONTypes)(I.schemaType)}};I.before?me.call(this,N,W,I.before):N.rules.push(W),T.all[F]=W,(C=I.implements)===null||C===void 0||C.forEach(K=>this.addKeyword(K))}function me(F,I,D){let C=F.rules.findIndex($=>$.keyword===D);C>=0?F.rules.splice(C,0,I):(F.rules.push(I),this.logger.warn(`rule ${D} is not defined`))}function Qe(F){let{metaSchema:I}=F;I!==void 0&&(F.$data&&this.opts.$data&&(I=fe(I)),F.validateSchema=this.compile(I,!0))}var ft={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function fe(F){return{anyOf:[F,ft]}}}),sne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};t.default=e}),cne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.callRef=t.getValidate=void 0;var e=Uh(),r=Jn(),n=Xe(),i=wa(),a=k$(),o=ut(),s={keyword:"$ref",schemaType:"string",code(l){let{gen:d,schema:p,it:f}=l,{baseId:h,schemaEnv:_,validateName:y,opts:m,self:v}=f,{root:g}=_;if((p==="#"||p==="#/")&&h===g.baseId)return S();let b=a.resolveRef.call(v,g,h,p);if(b===void 0)throw new e.default(f.opts.uriResolver,h,p);if(b instanceof a.SchemaEnv)return x(b);return w(b);function S(){if(_===g)return u(l,y,_,_.$async);let E=d.scopeValue("root",{ref:g});return u(l,(0,n._)`${E}.validate`,g,g.$async)}function x(E){let R=c(l,E);u(l,R,E,E.$async)}function w(E){let R=d.scopeValue("schema",m.code.source===!0?{ref:E,code:(0,n.stringify)(E)}:{ref:E}),A=d.name("valid"),M=l.subschema({schema:E,dataTypes:[],schemaPath:n.nil,topSchemaRef:R,errSchemaPath:p},A);l.mergeEvaluated(M),l.ok(A)}}};function c(l,d){let{gen:p}=l;return d.validate?p.scopeValue("validate",{ref:d.validate}):(0,n._)`${p.scopeValue("wrapper",{ref:d})}.validate`}t.getValidate=c;function u(l,d,p,f){let{gen:h,it:_}=l,{allErrors:y,schemaEnv:m,opts:v}=_,g=v.passContext?i.default.this:n.nil;f?b():S();function b(){if(!m.$async)throw new Error("async schema referenced by sync schema");let E=h.let("valid");h.try(()=>{h.code((0,n._)`await ${(0,r.callValidateCode)(l,d,g)}`),w(d),y||h.assign(E,!0)},R=>{h.if((0,n._)`!(${R} instanceof ${_.ValidationError})`,()=>h.throw(R)),x(R),y||h.assign(E,!1)}),l.ok(E)}function S(){l.result((0,r.callValidateCode)(l,d,g),()=>w(d),()=>x(d))}function x(E){let R=(0,n._)`${E}.errors`;h.assign(i.default.vErrors,(0,n._)`${i.default.vErrors} === null ? ${R} : ${i.default.vErrors}.concat(${R})`),h.assign(i.default.errors,(0,n._)`${i.default.vErrors}.length`)}function w(E){var R;if(!_.opts.unevaluated)return;let A=(R=p?.validate)===null||R===void 0?void 0:R.evaluated;if(_.props!==!0)if(A&&!A.dynamicProps)A.props!==void 0&&(_.props=o.mergeEvaluated.props(h,A.props,_.props));else{let M=h.var("props",(0,n._)`${E}.evaluated.props`);_.props=o.mergeEvaluated.props(h,M,_.props,n.Name)}if(_.items!==!0)if(A&&!A.dynamicItems)A.items!==void 0&&(_.items=o.mergeEvaluated.items(h,A.items,_.items));else{let M=h.var("items",(0,n._)`${E}.evaluated.items`);_.items=o.mergeEvaluated.items(h,M,_.items,n.Name)}}}t.callRef=u,t.default=s}),une=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=sne(),r=cne(),n=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",e.default,r.default];t.default=n}),lne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r=e.operators,n={maximum:{okStr:"<=",ok:r.LTE,fail:r.GT},minimum:{okStr:">=",ok:r.GTE,fail:r.LT},exclusiveMaximum:{okStr:"<",ok:r.LT,fail:r.GTE},exclusiveMinimum:{okStr:">",ok:r.GT,fail:r.LTE}},i={message:({keyword:o,schemaCode:s})=>(0,e.str)`must be ${n[o].okStr} ${s}`,params:({keyword:o,schemaCode:s})=>(0,e._)`{comparison: ${n[o].okStr}, limit: ${s}}`},a={keyword:Object.keys(n),type:"number",schemaType:"number",$data:!0,error:i,code(o){let{keyword:s,data:c,schemaCode:u}=o;o.fail$data((0,e._)`${c} ${n[s].fail} ${u} || isNaN(${c})`)}};t.default=a}),dne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r={message:({schemaCode:i})=>(0,e.str)`must be multiple of ${i}`,params:({schemaCode:i})=>(0,e._)`{multipleOf: ${i}}`},n={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:r,code(i){let{gen:a,data:o,schemaCode:s,it:c}=i,u=c.opts.multipleOfPrecision,l=a.let("res"),d=u?(0,e._)`Math.abs(Math.round(${l}) - ${l}) > 1e-${u}`:(0,e._)`${l} !== parseInt(${l})`;i.fail$data((0,e._)`(${s} === 0 || (${l} = ${o}/${s}, ${d}))`)}};t.default=n}),pne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});function e(r){let n=r.length,i=0,a=0,o;for(;a=55296&&o<=56319&&a{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r=ut(),n=pne(),i={message({keyword:o,schemaCode:s}){let c=o==="maxLength"?"more":"fewer";return(0,e.str)`must NOT have ${c} than ${s} characters`},params:({schemaCode:o})=>(0,e._)`{limit: ${o}}`},a={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:i,code(o){let{keyword:s,data:c,schemaCode:u,it:l}=o,d=s==="maxLength"?e.operators.GT:e.operators.LT,p=l.opts.unicode===!1?(0,e._)`${c}.length`:(0,e._)`${(0,r.useFunc)(o.gen,n.default)}(${c})`;o.fail$data((0,e._)`${p} ${d} ${u}`)}};t.default=a}),mne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Jn(),r=Xe(),n={message:({schemaCode:a})=>(0,r.str)`must match pattern "${a}"`,params:({schemaCode:a})=>(0,r._)`{pattern: ${a}}`},i={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:n,code(a){let{data:o,$data:s,schema:c,schemaCode:u,it:l}=a,d=l.opts.unicodeRegExp?"u":"",p=s?(0,r._)`(new RegExp(${u}, ${d}))`:(0,e.usePattern)(a,c);a.fail$data((0,r._)`!${p}.test(${o})`)}};t.default=i}),hne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r={message({keyword:i,schemaCode:a}){let o=i==="maxProperties"?"more":"fewer";return(0,e.str)`must NOT have ${o} than ${a} properties`},params:({schemaCode:i})=>(0,e._)`{limit: ${i}}`},n={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:r,code(i){let{keyword:a,data:o,schemaCode:s}=i,c=a==="maxProperties"?e.operators.GT:e.operators.LT;i.fail$data((0,e._)`Object.keys(${o}).length ${c} ${s}`)}};t.default=n}),gne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Jn(),r=Xe(),n=ut(),i={message:({params:{missingProperty:o}})=>(0,r.str)`must have required property '${o}'`,params:({params:{missingProperty:o}})=>(0,r._)`{missingProperty: ${o}}`},a={keyword:"required",type:"object",schemaType:"array",$data:!0,error:i,code(o){let{gen:s,schema:c,schemaCode:u,data:l,$data:d,it:p}=o,{opts:f}=p;if(!d&&c.length===0)return;let h=c.length>=f.loopRequired;if(p.allErrors?_():y(),f.strictRequired){let g=o.parentSchema.properties,{definedProperties:b}=o.it;for(let S of c)if(g?.[S]===void 0&&!b.has(S)){let x=p.schemaEnv.baseId+p.errSchemaPath,w=`required property "${S}" is not defined at "${x}" (strictRequired)`;(0,n.checkStrictMode)(p,w,p.opts.strictRequired)}}function _(){if(h||d)o.block$data(r.nil,m);else for(let g of c)(0,e.checkReportMissingProp)(o,g)}function y(){let g=s.let("missing");if(h||d){let b=s.let("valid",!0);o.block$data(b,()=>v(g,b)),o.ok(b)}else s.if((0,e.checkMissingProp)(o,c,g)),(0,e.reportMissingProp)(o,g),s.else()}function m(){s.forOf("prop",u,g=>{o.setParams({missingProperty:g}),s.if((0,e.noPropertyInData)(s,l,g,f.ownProperties),()=>o.error())})}function v(g,b){o.setParams({missingProperty:g}),s.forOf(g,u,()=>{s.assign(b,(0,e.propertyInData)(s,l,g,f.ownProperties)),s.if((0,r.not)(b),()=>{o.error(),s.break()})},r.nil)}}};t.default=a}),vne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r={message({keyword:i,schemaCode:a}){let o=i==="maxItems"?"more":"fewer";return(0,e.str)`must NOT have ${o} than ${a} items`},params:({schemaCode:i})=>(0,e._)`{limit: ${i}}`},n={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:r,code(i){let{keyword:a,data:o,schemaCode:s}=i,c=a==="maxItems"?e.operators.GT:e.operators.LT;i.fail$data((0,e._)`${o}.length ${c} ${s}`)}};t.default=n}),T$=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Mh();e.code='require("ajv/dist/runtime/equal").default',t.default=e}),yne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=kh(),r=Xe(),n=ut(),i=T$(),a={message:({params:{i:s,j:c}})=>(0,r.str)`must NOT have duplicate items (items ## ${c} and ${s} are identical)`,params:({params:{i:s,j:c}})=>(0,r._)`{i: ${s}, j: ${c}}`},o={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:a,code(s){let{gen:c,data:u,$data:l,schema:d,parentSchema:p,schemaCode:f,it:h}=s;if(!l&&!d)return;let _=c.let("valid"),y=p.items?(0,e.getSchemaTypes)(p.items):[];s.block$data(_,m,(0,r._)`${f} === false`),s.ok(_);function m(){let S=c.let("i",(0,r._)`${u}.length`),x=c.let("j");s.setParams({i:S,j:x}),c.assign(_,!0),c.if((0,r._)`${S} > 1`,()=>(v()?g:b)(S,x))}function v(){return y.length>0&&!y.some(S=>S==="object"||S==="array")}function g(S,x){let w=c.name("item"),E=(0,e.checkDataTypes)(y,w,h.opts.strictNumbers,e.DataType.Wrong),R=c.const("indices",(0,r._)`{}`);c.for((0,r._)`;${S}--;`,()=>{c.let(w,(0,r._)`${u}[${S}]`),c.if(E,(0,r._)`continue`),y.length>1&&c.if((0,r._)`typeof ${w} == "string"`,(0,r._)`${w} += "_"`),c.if((0,r._)`typeof ${R}[${w}] == "number"`,()=>{c.assign(x,(0,r._)`${R}[${w}]`),s.error(),c.assign(_,!1).break()}).code((0,r._)`${R}[${w}] = ${S}`)})}function b(S,x){let w=(0,n.useFunc)(c,i.default),E=c.name("outer");c.label(E).for((0,r._)`;${S}--;`,()=>c.for((0,r._)`${x} = ${S}; ${x}--;`,()=>c.if((0,r._)`${w}(${u}[${S}], ${u}[${x}])`,()=>{s.error(),c.assign(_,!1).break(E)})))}}};t.default=o}),_ne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r=ut(),n=T$(),i={message:"must be equal to constant",params:({schemaCode:o})=>(0,e._)`{allowedValue: ${o}}`},a={keyword:"const",$data:!0,error:i,code(o){let{gen:s,data:c,$data:u,schemaCode:l,schema:d}=o;u||d&&typeof d=="object"?o.fail$data((0,e._)`!${(0,r.useFunc)(s,n.default)}(${c}, ${l})`):o.fail((0,e._)`${d} !== ${c}`)}};t.default=a}),bne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r=ut(),n=T$(),i={message:"must be equal to one of the allowed values",params:({schemaCode:o})=>(0,e._)`{allowedValues: ${o}}`},a={keyword:"enum",schemaType:"array",$data:!0,error:i,code(o){let{gen:s,data:c,$data:u,schema:l,schemaCode:d,it:p}=o;if(!u&&l.length===0)throw new Error("enum must have non-empty array");let f=l.length>=p.opts.loopEnum,h,_=()=>h??(h=(0,r.useFunc)(s,n.default)),y;if(f||u)y=s.let("valid"),o.block$data(y,m);else{if(!Array.isArray(l))throw new Error("ajv implementation error");let g=s.const("vSchema",d);y=(0,e.or)(...l.map((b,S)=>v(g,S)))}o.pass(y);function m(){s.assign(y,!1),s.forOf("v",d,g=>s.if((0,e._)`${_()}(${c}, ${g})`,()=>s.assign(y,!0).break()))}function v(g,b){let S=l[b];return typeof S=="object"&&S!==null?(0,e._)`${_()}(${c}, ${g}[${b}])`:(0,e._)`${c} === ${S}`}}};t.default=a}),xne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=lne(),r=dne(),n=fne(),i=mne(),a=hne(),o=gne(),s=vne(),c=yne(),u=_ne(),l=bne(),d=[e.default,r.default,n.default,i.default,a.default,o.default,s.default,c.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},u.default,l.default];t.default=d}),n2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateAdditionalItems=void 0;var e=Xe(),r=ut(),n={message:({params:{len:o}})=>(0,e.str)`must NOT have more than ${o} items`,params:({params:{len:o}})=>(0,e._)`{limit: ${o}}`},i={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:n,code(o){let{parentSchema:s,it:c}=o,{items:u}=s;if(!Array.isArray(u)){(0,r.checkStrictMode)(c,'"additionalItems" is ignored when "items" is not an array of schemas');return}a(o,u)}};function a(o,s){let{gen:c,schema:u,data:l,keyword:d,it:p}=o;p.items=!0;let f=c.const("len",(0,e._)`${l}.length`);if(u===!1)o.setParams({len:s.length}),o.pass((0,e._)`${f} <= ${s.length}`);else if(typeof u=="object"&&!(0,r.alwaysValidSchema)(p,u)){let _=c.var("valid",(0,e._)`${f} <= ${s.length}`);c.if((0,e.not)(_),()=>h(_)),o.ok(_)}function h(_){c.forRange("i",s.length,f,y=>{o.subschema({keyword:d,dataProp:y,dataPropType:r.Type.Num},_),p.allErrors||c.if((0,e.not)(_),()=>c.break())})}}t.validateAdditionalItems=a,t.default=i}),i2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateTuple=void 0;var e=Xe(),r=ut(),n=Jn(),i={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(o){let{schema:s,it:c}=o;if(Array.isArray(s))return a(o,"additionalItems",s);c.items=!0,!(0,r.alwaysValidSchema)(c,s)&&o.ok((0,n.validateArray)(o))}};function a(o,s,c=o.schema){let{gen:u,parentSchema:l,data:d,keyword:p,it:f}=o;y(l),f.opts.unevaluated&&c.length&&f.items!==!0&&(f.items=r.mergeEvaluated.items(u,c.length,f.items));let h=u.name("valid"),_=u.const("len",(0,e._)`${d}.length`);c.forEach((m,v)=>{(0,r.alwaysValidSchema)(f,m)||(u.if((0,e._)`${_} > ${v}`,()=>o.subschema({keyword:p,schemaProp:v,dataProp:v},h)),o.ok(h))});function y(m){let{opts:v,errSchemaPath:g}=f,b=c.length,S=b===m.minItems&&(b===m.maxItems||m[s]===!1);if(v.strictTuples&&!S){let x=`"${p}" is ${b}-tuple, but minItems or maxItems/${s} are not specified or different at path "${g}"`;(0,r.checkStrictMode)(f,x,v.strictTuples)}}}t.validateTuple=a,t.default=i}),Sne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=i2(),r={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:n=>(0,e.validateTuple)(n,"items")};t.default=r}),wne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r=ut(),n=Jn(),i=n2(),a={message:({params:{len:s}})=>(0,e.str)`must NOT have more than ${s} items`,params:({params:{len:s}})=>(0,e._)`{limit: ${s}}`},o={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:a,code(s){let{schema:c,parentSchema:u,it:l}=s,{prefixItems:d}=u;l.items=!0,!(0,r.alwaysValidSchema)(l,c)&&(d?(0,i.validateAdditionalItems)(s,d):s.ok((0,n.validateArray)(s)))}};t.default=o}),$ne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r=ut(),n={message:({params:{min:a,max:o}})=>o===void 0?(0,e.str)`must contain at least ${a} valid item(s)`:(0,e.str)`must contain at least ${a} and no more than ${o} valid item(s)`,params:({params:{min:a,max:o}})=>o===void 0?(0,e._)`{minContains: ${a}}`:(0,e._)`{minContains: ${a}, maxContains: ${o}}`},i={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:n,code(a){let{gen:o,schema:s,parentSchema:c,data:u,it:l}=a,d,p,{minContains:f,maxContains:h}=c;l.opts.next?(d=f===void 0?1:f,p=h):d=1;let _=o.const("len",(0,e._)`${u}.length`);if(a.setParams({min:d,max:p}),p===void 0&&d===0){(0,r.checkStrictMode)(l,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(p!==void 0&&d>p){(0,r.checkStrictMode)(l,'"minContains" > "maxContains" is always invalid'),a.fail();return}if((0,r.alwaysValidSchema)(l,s)){let b=(0,e._)`${_} >= ${d}`;p!==void 0&&(b=(0,e._)`${b} && ${_} <= ${p}`),a.pass(b);return}l.items=!0;let y=o.name("valid");p===void 0&&d===1?v(y,()=>o.if(y,()=>o.break())):d===0?(o.let(y,!0),p!==void 0&&o.if((0,e._)`${u}.length > 0`,m)):(o.let(y,!1),m()),a.result(y,()=>a.reset());function m(){let b=o.name("_valid"),S=o.let("count",0);v(b,()=>o.if(b,()=>g(S)))}function v(b,S){o.forRange("i",0,_,x=>{a.subschema({keyword:"contains",dataProp:x,dataPropType:r.Type.Num,compositeRule:!0},b),S()})}function g(b){o.code((0,e._)`${b}++`),p===void 0?o.if((0,e._)`${b} >= ${d}`,()=>o.assign(y,!0).break()):(o.if((0,e._)`${b} > ${p}`,()=>o.assign(y,!1).break()),d===1?o.assign(y,!0):o.if((0,e._)`${b} >= ${d}`,()=>o.assign(y,!0)))}}};t.default=i}),Ene=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateSchemaDeps=t.validatePropertyDeps=t.error=void 0;var e=Xe(),r=ut(),n=Jn();t.error={message:({params:{property:c,depsCount:u,deps:l}})=>{let d=u===1?"property":"properties";return(0,e.str)`must have ${d} ${l} when property ${c} is present`},params:({params:{property:c,depsCount:u,deps:l,missingProperty:d}})=>(0,e._)`{property: ${c}, missingProperty: ${d}, depsCount: ${u}, - deps: ${l}}`};var n={keyword:"dependencies",type:"object",schemaType:"object",error:t.error,code(c){let[u,l]=s(c);i(c,u),o(c,l)}};function s({schema:c}){let u={},l={};for(let d in c){if(d==="__proto__")continue;let p=Array.isArray(c[d])?u:l;p[d]=c[d]}return[u,l]}function i(c,u=c.schema){let{gen:l,data:d,it:p}=c;if(Object.keys(u).length===0)return;let f=l.let("missing");for(let v in u){let _=u[v];if(_.length===0)continue;let m=(0,a.propertyInData)(l,d,v,p.opts.ownProperties);c.setParams({property:v,depsCount:_.length,deps:_.join(", ")}),p.allErrors?l.if(m,()=>{for(let h of _)(0,a.checkReportMissingProp)(c,h)}):(l.if((0,e._)`${m} && (${(0,a.checkMissingProp)(c,_,f)})`),(0,a.reportMissingProp)(c,f),l.else())}}t.validatePropertyDeps=i;function o(c,u=c.schema){let{gen:l,data:d,keyword:p,it:f}=c,v=l.name("valid");for(let _ in u)(0,r.alwaysValidSchema)(f,u[_])||(l.if((0,a.propertyInData)(l,d,_,f.opts.ownProperties),()=>{let m=c.subschema({keyword:p,schemaProp:_},v);c.mergeValidEvaluated(m,v)},()=>l.var(v,!0)),c.ok(v))}t.validateSchemaDeps=o,t.default=n}),Oq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=et(),a={message:"property name must be valid",params:({params:s})=>(0,e._)`{propertyName: ${s.propertyName}}`},n={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:a,code(s){let{gen:i,schema:o,data:c,it:u}=s;if((0,r.alwaysValidSchema)(u,o))return;let l=i.name("valid");i.forIn("key",c,d=>{s.setParams({propertyName:d}),s.subschema({keyword:"propertyNames",data:d,dataTypes:["string"],propertyName:d,compositeRule:!0},l),i.if((0,e.not)(l),()=>{s.error(!0),u.allErrors||i.break()})}),s.ok(l)}};t.default=n}),CT=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Gr(),r=Ze(),a=Yn(),n=et(),s={message:"must NOT have additional properties",params:({params:o})=>(0,r._)`{additionalProperty: ${o.additionalProperty}}`},i={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:s,code(o){let{gen:c,schema:u,parentSchema:l,data:d,errsCount:p,it:f}=o;if(!p)throw new Error("ajv implementation error");let{allErrors:v,opts:_}=f;if(f.props=!0,_.removeAdditional!=="all"&&(0,n.alwaysValidSchema)(f,u))return;let m=(0,e.allSchemaProperties)(l.properties),h=(0,e.allSchemaProperties)(l.patternProperties);y(),o.ok((0,r._)`${p} === ${a.default.errors}`);function y(){c.forIn("key",d,E=>{!m.length&&!h.length?w(E):c.if(g(E),()=>w(E))})}function g(E){let T;if(m.length>8){let R=(0,n.schemaRefOrVal)(f,l.properties,"properties");T=(0,e.isOwnProperty)(c,R,E)}else m.length?T=(0,r.or)(...m.map(R=>(0,r._)`${E} === ${R}`)):T=r.nil;return h.length&&(T=(0,r.or)(T,...h.map(R=>(0,r._)`${(0,e.usePattern)(o,R)}.test(${E})`))),(0,r.not)(T)}function b(E){c.code((0,r._)`delete ${d}[${E}]`)}function w(E){if(_.removeAdditional==="all"||_.removeAdditional&&u===!1){b(E);return}if(u===!1){o.setParams({additionalProperty:E}),o.error(),v||c.break();return}if(typeof u=="object"&&!(0,n.alwaysValidSchema)(f,u)){let T=c.name("valid");_.removeAdditional==="failing"?(S(E,T,!1),c.if((0,r.not)(T),()=>{o.reset(),b(E)})):(S(E,T),v||c.if((0,r.not)(T),()=>c.break()))}}function S(E,T,R){let M={keyword:"additionalProperties",dataProp:E,dataPropType:n.Type.Str};R===!1&&Object.assign(M,{compositeRule:!0,createErrors:!1,allErrors:!1}),o.subschema(M,T)}}};t.default=i}),Cq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Rl(),r=Gr(),a=et(),n=CT(),s={keyword:"properties",type:"object",schemaType:"object",code(i){let{gen:o,schema:c,parentSchema:u,data:l,it:d}=i;d.opts.removeAdditional==="all"&&u.additionalProperties===void 0&&n.default.code(new e.KeywordCxt(d,n.default,"additionalProperties"));let p=(0,r.allSchemaProperties)(c);for(let h of p)d.definedProperties.add(h);d.opts.unevaluated&&p.length&&d.props!==!0&&(d.props=a.mergeEvaluated.props(o,(0,a.toHash)(p),d.props));let f=p.filter(h=>!(0,a.alwaysValidSchema)(d,c[h]));if(f.length===0)return;let v=o.name("valid");for(let h of f)_(h)?m(h):(o.if((0,r.propertyInData)(o,l,h,d.opts.ownProperties)),m(h),d.allErrors||o.else().var(v,!0),o.endIf()),i.it.definedProperties.add(h),i.ok(v);function _(h){return d.opts.useDefaults&&!d.compositeRule&&c[h].default!==void 0}function m(h){i.subschema({keyword:"properties",schemaProp:h,dataProp:h},v)}}};t.default=s}),Iq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Gr(),r=Ze(),a=et(),n=et(),s={keyword:"patternProperties",type:"object",schemaType:"object",code(i){let{gen:o,schema:c,data:u,parentSchema:l,it:d}=i,{opts:p}=d,f=(0,e.allSchemaProperties)(c),v=f.filter(w=>(0,a.alwaysValidSchema)(d,c[w]));if(f.length===0||v.length===f.length&&(!d.opts.unevaluated||d.props===!0))return;let _=p.strictSchema&&!p.allowMatchingProperties&&l.properties,m=o.name("valid");d.props!==!0&&!(d.props instanceof r.Name)&&(d.props=(0,n.evaluatedPropsToName)(o,d.props));let{props:h}=d;y();function y(){for(let w of f)_&&g(w),d.allErrors?b(w):(o.var(m,!0),b(w),o.if(m))}function g(w){for(let S in _)new RegExp(w).test(S)&&(0,a.checkStrictMode)(d,`property ${S} matches pattern ${w} (use allowMatchingProperties)`)}function b(w){o.forIn("key",u,S=>{o.if((0,r._)`${(0,e.usePattern)(i,w)}.test(${S})`,()=>{let E=v.includes(w);E||i.subschema({keyword:"patternProperties",schemaProp:w,dataProp:S,dataPropType:n.Type.Str},m),d.opts.unevaluated&&h!==!0?o.assign((0,r._)`${h}[${S}]`,!0):!E&&!d.allErrors&&o.if((0,r.not)(m),()=>o.break())})})}}};t.default=s}),Aq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=et(),r={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(a){let{gen:n,schema:s,it:i}=a;if((0,e.alwaysValidSchema)(i,s)){a.fail();return}let o=n.name("valid");a.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),a.failResult(o,()=>a.reset(),()=>a.error())},error:{message:"must NOT be valid"}};t.default=r}),Nq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Gr(),r={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:e.validateUnion,error:{message:"must match a schema in anyOf"}};t.default=r}),Mq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=et(),a={message:"must match exactly one schema in oneOf",params:({params:s})=>(0,e._)`{passingSchemas: ${s.passing}}`},n={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:a,code(s){let{gen:i,schema:o,parentSchema:c,it:u}=s;if(!Array.isArray(o))throw new Error("ajv implementation error");if(u.opts.discriminator&&c.discriminator)return;let l=o,d=i.let("valid",!1),p=i.let("passing",null),f=i.name("_valid");s.setParams({passing:p}),i.block(v),s.result(d,()=>s.reset(),()=>s.error(!0));function v(){l.forEach((_,m)=>{let h;(0,r.alwaysValidSchema)(u,_)?i.var(f,!0):h=s.subschema({keyword:"oneOf",schemaProp:m,compositeRule:!0},f),m>0&&i.if((0,e._)`${f} && ${d}`).assign(d,!1).assign(p,(0,e._)`[${p}, ${m}]`).else(),i.if(f,()=>{i.assign(d,!0),i.assign(p,m),h&&s.mergeEvaluated(h,e.Name)})})}}};t.default=n}),jq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=et(),r={keyword:"allOf",schemaType:"array",code(a){let{gen:n,schema:s,it:i}=a;if(!Array.isArray(s))throw new Error("ajv implementation error");let o=n.name("valid");s.forEach((c,u)=>{if((0,e.alwaysValidSchema)(i,c))return;let l=a.subschema({keyword:"allOf",schemaProp:u},o);a.ok(o),a.mergeEvaluated(l)})}};t.default=r}),Dq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=et(),a={message:({params:i})=>(0,e.str)`must match "${i.ifClause}" schema`,params:({params:i})=>(0,e._)`{failingKeyword: ${i.ifClause}}`},n={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:a,code(i){let{gen:o,parentSchema:c,it:u}=i;c.then===void 0&&c.else===void 0&&(0,r.checkStrictMode)(u,'"if" without "then" and "else" is ignored');let l=s(u,"then"),d=s(u,"else");if(!l&&!d)return;let p=o.let("valid",!0),f=o.name("_valid");if(v(),i.reset(),l&&d){let m=o.let("ifClause");i.setParams({ifClause:m}),o.if(f,_("then",m),_("else",m))}else l?o.if(f,_("then")):o.if((0,e.not)(f),_("else"));i.pass(p,()=>i.error(!0));function v(){let m=i.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},f);i.mergeEvaluated(m)}function _(m,h){return()=>{let y=i.subschema({keyword:m},f);o.assign(p,f),i.mergeValidEvaluated(y,p),h?o.assign(h,(0,e._)`${m}`):i.setParams({ifClause:m})}}}};function s(i,o){let c=i.schema[o];return c!==void 0&&!(0,r.alwaysValidSchema)(i,c)}t.default=n}),Lq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=et(),r={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:a,parentSchema:n,it:s}){n.if===void 0&&(0,e.checkStrictMode)(s,`"${a}" without "if" is ignored`)}};t.default=r}),qq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=$T(),r=kq(),a=OT(),n=Rq(),s=Pq(),i=$q(),o=Oq(),c=CT(),u=Cq(),l=Iq(),d=Aq(),p=Nq(),f=Mq(),v=jq(),_=Dq(),m=Lq();function h(y=!1){let g=[d.default,p.default,f.default,v.default,_.default,m.default,o.default,c.default,i.default,u.default,l.default];return y?g.push(r.default,n.default):g.push(e.default,a.default),g.push(s.default),g}t.default=h}),Fq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r={message:({schemaCode:n})=>(0,e.str)`must match format "${n}"`,params:({schemaCode:n})=>(0,e._)`{format: ${n}}`},a={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:r,code(n,s){let{gen:i,data:o,$data:c,schema:u,schemaCode:l,it:d}=n,{opts:p,errSchemaPath:f,schemaEnv:v,self:_}=d;if(!p.validateFormats)return;c?m():h();function m(){let y=i.scopeValue("formats",{ref:_.formats,code:p.code.formats}),g=i.const("fDef",(0,e._)`${y}[${l}]`),b=i.let("fType"),w=i.let("format");i.if((0,e._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>i.assign(b,(0,e._)`${g}.type || "string"`).assign(w,(0,e._)`${g}.validate`),()=>i.assign(b,(0,e._)`"string"`).assign(w,g)),n.fail$data((0,e.or)(S(),E()));function S(){return p.strictSchema===!1?e.nil:(0,e._)`${l} && !${w}`}function E(){let T=v.$async?(0,e._)`(${g}.async ? await ${w}(${o}) : ${w}(${o}))`:(0,e._)`${w}(${o})`,R=(0,e._)`(typeof ${w} == "function" ? ${T} : ${w}.test(${o}))`;return(0,e._)`${w} && ${w} !== true && ${b} === ${s} && !${R}`}}function h(){let y=_.formats[u];if(!y){S();return}if(y===!0)return;let[g,b,w]=E(y);g===s&&n.pass(T());function S(){if(p.strictSchema===!1){_.logger.warn(R());return}throw new Error(R());function R(){return`unknown format "${u}" ignored in schema at path "${f}"`}}function E(R){let M=R instanceof RegExp?(0,e.regexpCode)(R):p.code.formats?(0,e._)`${p.code.formats}${(0,e.getProperty)(u)}`:void 0,j=i.scopeValue("formats",{key:u,ref:R,code:M});return typeof R=="object"&&!(R instanceof RegExp)?[R.type||"string",R.validate,(0,e._)`${j}.validate`]:["string",R,j]}function T(){if(typeof y=="object"&&!(y instanceof RegExp)&&y.async){if(!v.$async)throw new Error("async format in sync schema");return(0,e._)`await ${w}(${o})`}return typeof b=="function"?(0,e._)`${w}(${o})`:(0,e._)`${w}.test(${o})`}}}};t.default=a}),Uq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Fq(),r=[e.default];t.default=r}),zq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.contentVocabulary=t.metadataVocabulary=void 0,t.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],t.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]}),Hq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=fq(),r=Tq(),a=qq(),n=Uq(),s=zq(),i=[e.default,r.default,(0,a.default)(),n.default,s.metadataVocabulary,s.contentVocabulary];t.default=i}),Bq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiscrError=void 0;var e;(function(r){r.Tag="tag",r.Mapping="mapping"})(e||(t.DiscrError=e={}))}),Vq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ze(),r=Bq(),a=Zm(),n=Pl(),s=et(),i={message:({params:{discrError:c,tagName:u}})=>c===r.DiscrError.Tag?`tag "${u}" must be string`:`value of tag "${u}" must be in oneOf`,params:({params:{discrError:c,tag:u,tagName:l}})=>(0,e._)`{error: ${c}, tag: ${l}, tagValue: ${u}}`},o={keyword:"discriminator",type:"object",schemaType:"object",error:i,code(c){let{gen:u,data:l,schema:d,parentSchema:p,it:f}=c,{oneOf:v}=p;if(!f.opts.discriminator)throw new Error("discriminator: requires discriminator option");let _=d.propertyName;if(typeof _!="string")throw new Error("discriminator: requires propertyName");if(d.mapping)throw new Error("discriminator: mapping is not supported");if(!v)throw new Error("discriminator: requires oneOf keyword");let m=u.let("valid",!1),h=u.const("tag",(0,e._)`${l}${(0,e.getProperty)(_)}`);u.if((0,e._)`typeof ${h} == "string"`,()=>y(),()=>c.error(!1,{discrError:r.DiscrError.Tag,tag:h,tagName:_})),c.ok(m);function y(){let w=b();u.if(!1);for(let S in w)u.elseIf((0,e._)`${h} === ${S}`),u.assign(m,g(w[S]));u.else(),c.error(!1,{discrError:r.DiscrError.Mapping,tag:h,tagName:_}),u.endIf()}function g(w){let S=u.name("valid"),E=c.subschema({keyword:"oneOf",schemaProp:w},S);return c.mergeEvaluated(E,e.Name),S}function b(){var w;let S={},E=R(p),T=!0;for(let q=0;q{e.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}}),Zq=Q((t,e)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MissingRefError=t.ValidationError=t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=t.Ajv=void 0;var r=lq(),a=Hq(),n=Vq(),s=Gq(),i=["/properties"],o="http://json-schema.org/draft-07/schema";class c extends r.default{_addVocabularies(){super._addVocabularies(),a.default.forEach(v=>this.addVocabulary(v)),this.opts.discriminator&&this.addKeyword(n.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let v=this.opts.$data?this.$dataMetaSchema(s,i):s;this.addMetaSchema(v,o,!1),this.refs["http://json-schema.org/schema"]=o}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(o)?o:void 0)}}t.Ajv=c,e.exports=t=c,e.exports.Ajv=c,Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var u=Rl();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return u.KeywordCxt}});var l=Ze();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return l._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return l.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return l.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return l.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return l.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return l.CodeGen}});var d=Gm();Object.defineProperty(t,"ValidationError",{enumerable:!0,get:function(){return d.default}});var p=Pl();Object.defineProperty(t,"MissingRefError",{enumerable:!0,get:function(){return p.default}})}),Wq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.formatNames=t.fastFormats=t.fullFormats=void 0;function e(j,q){return{validate:j,compare:q}}t.fullFormats={date:e(s,i),time:e(c(!0),u),"date-time":e(p(!0),f),"iso-time":e(c(),l),"iso-date-time":e(p(),v),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:h,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:M,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:g,int32:{type:"number",validate:S},int64:{type:"number",validate:E},float:{type:"number",validate:T},double:{type:"number",validate:T},password:!0,binary:!0},t.fastFormats={...t.fullFormats,date:e(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,i),time:e(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,u),"date-time":e(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,f),"iso-time":e(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,l),"iso-date-time":e(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,v),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i},t.formatNames=Object.keys(t.fullFormats);function r(j){return j%4===0&&(j%100!==0||j%400===0)}var a=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,n=[0,31,28,31,30,31,30,31,31,30,31,30,31];function s(j){let q=a.exec(j);if(!q)return!1;let H=+q[1],N=+q[2],W=+q[3];return N>=1&&N<=12&&W>=1&&W<=(N===2&&r(H)?29:n[N])}function i(j,q){if(j&&q)return j>q?1:j23||$>59||j&&!ae)return!1;if(W<=23&&oe<=59&&he<60)return!0;let z=oe-$*re,A=W-U*re-(z<0?1:0);return(A===23||A===-1)&&(z===59||z===-1)&&he<61}}function u(j,q){if(!(j&&q))return;let H=new Date("2020-01-01T"+j).valueOf(),N=new Date("2020-01-01T"+q).valueOf();if(H&&N)return H-N}function l(j,q){if(!(j&&q))return;let H=o.exec(j),N=o.exec(q);if(H&&N)return j=H[1]+H[2]+H[3],q=N[1]+N[2]+N[3],j>q?1:j=b}function E(j){return Number.isInteger(j)}function T(){return!0}var R=/[^\\]\\Z/;function M(j){if(R.test(j))return!1;try{return new RegExp(j),!0}catch{return!1}}}),vl=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.regexpCode=t.getEsmExportName=t.getProperty=t.safeStringify=t.stringify=t.strConcat=t.addCodeArg=t.str=t._=t.nil=t._Code=t.Name=t.IDENTIFIER=t._CodeOrName=void 0;class e{}t._CodeOrName=e,t.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class r extends e{constructor(y){if(super(),!t.IDENTIFIER.test(y))throw new Error("CodeGen: name must be a valid identifier");this.str=y}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}t.Name=r;class a extends e{constructor(y){super(),this._items=typeof y=="string"?[y]:y}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let y=this._items[0];return y===""||y==='""'}get str(){var y;return(y=this._str)!==null&&y!==void 0?y:this._str=this._items.reduce((g,b)=>`${g}${b}`,"")}get names(){var y;return(y=this._names)!==null&&y!==void 0?y:this._names=this._items.reduce((g,b)=>(b instanceof r&&(g[b.str]=(g[b.str]||0)+1),g),{})}}t._Code=a,t.nil=new a("");function n(h,...y){let g=[h[0]],b=0;for(;b{Object.defineProperty(t,"__esModule",{value:!0}),t.ValueScope=t.ValueScopeName=t.Scope=t.varKinds=t.UsedValueState=void 0;var e=vl();class r extends Error{constructor(u){super(`CodeGen: "code" for ${u} not defined`),this.value=u.value}}var a;(function(c){c[c.Started=0]="Started",c[c.Completed=1]="Completed"})(a||(t.UsedValueState=a={})),t.varKinds={const:new e.Name("const"),let:new e.Name("let"),var:new e.Name("var")};class n{constructor({prefixes:u,parent:l}={}){this._names={},this._prefixes=u,this._parent=l}toName(u){return u instanceof e.Name?u:this.name(u)}name(u){return new e.Name(this._newName(u))}_newName(u){let l=this._names[u]||this._nameGroup(u);return`${u}${l.index++}`}_nameGroup(u){var l,d;if(!((d=(l=this._parent)===null||l===void 0?void 0:l._prefixes)===null||d===void 0)&&d.has(u)||this._prefixes&&!this._prefixes.has(u))throw new Error(`CodeGen: prefix "${u}" is not allowed in this scope`);return this._names[u]={prefix:u,index:0}}}t.Scope=n;class s extends e.Name{constructor(u,l){super(l),this.prefix=u}setValue(u,{property:l,itemIndex:d}){this.value=u,this.scopePath=(0,e._)`.${new e.Name(l)}[${d}]`}}t.ValueScopeName=s;var i=(0,e._)`\n`;class o extends n{constructor(u){super(u),this._values={},this._scope=u.scope,this.opts={...u,_n:u.lines?i:e.nil}}get(){return this._scope}name(u){return new s(u,this._newName(u))}value(u,l){var d;if(l.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let p=this.toName(u),{prefix:f}=p,v=(d=l.key)!==null&&d!==void 0?d:l.ref,_=this._values[f];if(_){let y=_.get(v);if(y)return y}else _=this._values[f]=new Map;_.set(v,p);let m=this._scope[f]||(this._scope[f]=[]),h=m.length;return m[h]=l.ref,p.setValue(l,{property:f,itemIndex:h}),p}getValue(u,l){let d=this._values[u];if(d)return d.get(l)}scopeRefs(u,l=this._values){return this._reduceValues(l,d=>{if(d.scopePath===void 0)throw new Error(`CodeGen: name "${d}" has no value`);return(0,e._)`${u}${d.scopePath}`})}scopeCode(u=this._values,l,d){return this._reduceValues(u,p=>{if(p.value===void 0)throw new Error(`CodeGen: name "${p}" has no value`);return p.value.code},l,d)}_reduceValues(u,l,d={},p){let f=e.nil;for(let v in u){let _=u[v];if(!_)continue;let m=d[v]=d[v]||new Map;_.forEach(h=>{if(m.has(h))return;m.set(h,a.Started);let y=l(h);if(y){let g=this.opts.es5?t.varKinds.var:t.varKinds.const;f=(0,e._)`${f}${g} ${h} = ${y};${this.opts._n}`}else if(y=p?.(h))f=(0,e._)`${f}${y}${this.opts._n}`;else throw new r(h);m.set(h,a.Completed)})}return f}}t.ValueScope=o}),ze=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.or=t.and=t.not=t.CodeGen=t.operators=t.varKinds=t.ValueScopeName=t.ValueScope=t.Scope=t.Name=t.regexpCode=t.stringify=t.getProperty=t.nil=t.strConcat=t.str=t._=void 0;var e=vl(),r=Z1(),a=vl();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return a._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return a.str}}),Object.defineProperty(t,"strConcat",{enumerable:!0,get:function(){return a.strConcat}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return a.nil}}),Object.defineProperty(t,"getProperty",{enumerable:!0,get:function(){return a.getProperty}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return a.stringify}}),Object.defineProperty(t,"regexpCode",{enumerable:!0,get:function(){return a.regexpCode}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return a.Name}});var n=Z1();Object.defineProperty(t,"Scope",{enumerable:!0,get:function(){return n.Scope}}),Object.defineProperty(t,"ValueScope",{enumerable:!0,get:function(){return n.ValueScope}}),Object.defineProperty(t,"ValueScopeName",{enumerable:!0,get:function(){return n.ValueScopeName}}),Object.defineProperty(t,"varKinds",{enumerable:!0,get:function(){return n.varKinds}}),t.operators={GT:new e._Code(">"),GTE:new e._Code(">="),LT:new e._Code("<"),LTE:new e._Code("<="),EQ:new e._Code("==="),NEQ:new e._Code("!=="),NOT:new e._Code("!"),OR:new e._Code("||"),AND:new e._Code("&&"),ADD:new e._Code("+")};class s{optimizeNodes(){return this}optimizeNames(x,k){return this}}class i extends s{constructor(x,k,D){super(),this.varKind=x,this.name=k,this.rhs=D}render({es5:x,_n:k}){let D=x?r.varKinds.var:this.varKind,K=this.rhs===void 0?"":` = ${this.rhs}`;return`${D} ${this.name}${K};`+k}optimizeNames(x,k){if(x[this.name.str])return this.rhs&&(this.rhs=N(this.rhs,x,k)),this}get names(){return this.rhs instanceof e._CodeOrName?this.rhs.names:{}}}class o extends s{constructor(x,k,D){super(),this.lhs=x,this.rhs=k,this.sideEffects=D}render({_n:x}){return`${this.lhs} = ${this.rhs};`+x}optimizeNames(x,k){if(!(this.lhs instanceof e.Name&&!x[this.lhs.str]&&!this.sideEffects))return this.rhs=N(this.rhs,x,k),this}get names(){let x=this.lhs instanceof e.Name?{}:{...this.lhs.names};return H(x,this.rhs)}}class c extends o{constructor(x,k,D,K){super(x,D,K),this.op=k}render({_n:x}){return`${this.lhs} ${this.op}= ${this.rhs};`+x}}class u extends s{constructor(x){super(),this.label=x,this.names={}}render({_n:x}){return`${this.label}:`+x}}class l extends s{constructor(x){super(),this.label=x,this.names={}}render({_n:x}){return`break${this.label?` ${this.label}`:""};`+x}}class d extends s{constructor(x){super(),this.error=x}render({_n:x}){return`throw ${this.error};`+x}get names(){return this.error.names}}class p extends s{constructor(x){super(),this.code=x}render({_n:x}){return`${this.code};`+x}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(x,k){return this.code=N(this.code,x,k),this}get names(){return this.code instanceof e._CodeOrName?this.code.names:{}}}class f extends s{constructor(x=[]){super(),this.nodes=x}render(x){return this.nodes.reduce((k,D)=>k+D.render(x),"")}optimizeNodes(){let{nodes:x}=this,k=x.length;for(;k--;){let D=x[k].optimizeNodes();Array.isArray(D)?x.splice(k,1,...D):D?x[k]=D:x.splice(k,1)}return x.length>0?this:void 0}optimizeNames(x,k){let{nodes:D}=this,K=D.length;for(;K--;){let J=D[K];J.optimizeNames(x,k)||(W(x,J.names),D.splice(K,1))}return D.length>0?this:void 0}get names(){return this.nodes.reduce((x,k)=>q(x,k.names),{})}}class v extends f{render(x){return"{"+x._n+super.render(x)+"}"+x._n}}class _ extends f{}class m extends v{}m.kind="else";class h extends v{constructor(x,k){super(k),this.condition=x}render(x){let k=`if(${this.condition})`+super.render(x);return this.else&&(k+="else "+this.else.render(x)),k}optimizeNodes(){super.optimizeNodes();let x=this.condition;if(x===!0)return this.nodes;let k=this.else;if(k){let D=k.optimizeNodes();k=this.else=Array.isArray(D)?new m(D):D}if(k)return x===!1?k instanceof h?k:k.nodes:this.nodes.length?this:new h(oe(x),k instanceof h?[k]:k.nodes);if(!(x===!1||!this.nodes.length))return this}optimizeNames(x,k){var D;if(this.else=(D=this.else)===null||D===void 0?void 0:D.optimizeNames(x,k),!!(super.optimizeNames(x,k)||this.else))return this.condition=N(this.condition,x,k),this}get names(){let x=super.names;return H(x,this.condition),this.else&&q(x,this.else.names),x}}h.kind="if";class y extends v{}y.kind="for";class g extends y{constructor(x){super(),this.iteration=x}render(x){return`for(${this.iteration})`+super.render(x)}optimizeNames(x,k){if(super.optimizeNames(x,k))return this.iteration=N(this.iteration,x,k),this}get names(){return q(super.names,this.iteration.names)}}class b extends y{constructor(x,k,D,K){super(),this.varKind=x,this.name=k,this.from=D,this.to=K}render(x){let k=x.es5?r.varKinds.var:this.varKind,{name:D,from:K,to:J}=this;return`for(${k} ${D}=${K}; ${D}<${J}; ${D}++)`+super.render(x)}get names(){let x=H(super.names,this.from);return H(x,this.to)}}class w extends y{constructor(x,k,D,K){super(),this.loop=x,this.varKind=k,this.name=D,this.iterable=K}render(x){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(x)}optimizeNames(x,k){if(super.optimizeNames(x,k))return this.iterable=N(this.iterable,x,k),this}get names(){return q(super.names,this.iterable.names)}}class S extends v{constructor(x,k,D){super(),this.name=x,this.args=k,this.async=D}render(x){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(x)}}S.kind="func";class E extends f{render(x){return"return "+super.render(x)}}E.kind="return";class T extends v{render(x){let k="try"+super.render(x);return this.catch&&(k+=this.catch.render(x)),this.finally&&(k+=this.finally.render(x)),k}optimizeNodes(){var x,k;return super.optimizeNodes(),(x=this.catch)===null||x===void 0||x.optimizeNodes(),(k=this.finally)===null||k===void 0||k.optimizeNodes(),this}optimizeNames(x,k){var D,K;return super.optimizeNames(x,k),(D=this.catch)===null||D===void 0||D.optimizeNames(x,k),(K=this.finally)===null||K===void 0||K.optimizeNames(x,k),this}get names(){let x=super.names;return this.catch&&q(x,this.catch.names),this.finally&&q(x,this.finally.names),x}}class R extends v{constructor(x){super(),this.error=x}render(x){return`catch(${this.error})`+super.render(x)}}R.kind="catch";class M extends v{render(x){return"finally"+super.render(x)}}M.kind="finally";class j{constructor(x,k={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...k,_n:k.lines?` -`:""},this._extScope=x,this._scope=new r.Scope({parent:x}),this._nodes=[new _]}toString(){return this._root.render(this.opts)}name(x){return this._scope.name(x)}scopeName(x){return this._extScope.name(x)}scopeValue(x,k){let D=this._extScope.value(x,k);return(this._values[D.prefix]||(this._values[D.prefix]=new Set)).add(D),D}getScopeValue(x,k){return this._extScope.getValue(x,k)}scopeRefs(x){return this._extScope.scopeRefs(x,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(x,k,D,K){let J=this._scope.toName(k);return D!==void 0&&K&&(this._constants[J.str]=D),this._leafNode(new i(x,J,D)),J}const(x,k,D){return this._def(r.varKinds.const,x,k,D)}let(x,k,D){return this._def(r.varKinds.let,x,k,D)}var(x,k,D){return this._def(r.varKinds.var,x,k,D)}assign(x,k,D){return this._leafNode(new o(x,k,D))}add(x,k){return this._leafNode(new c(x,t.operators.ADD,k))}code(x){return typeof x=="function"?x():x!==e.nil&&this._leafNode(new p(x)),this}object(...x){let k=["{"];for(let[D,K]of x)k.length>1&&k.push(","),k.push(D),(D!==K||this.opts.es5)&&(k.push(":"),(0,e.addCodeArg)(k,K));return k.push("}"),new e._Code(k)}if(x,k,D){if(this._blockNode(new h(x)),k&&D)this.code(k).else().code(D).endIf();else if(k)this.code(k).endIf();else if(D)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(x){return this._elseNode(new h(x))}else(){return this._elseNode(new m)}endIf(){return this._endBlockNode(h,m)}_for(x,k){return this._blockNode(x),k&&this.code(k).endFor(),this}for(x,k){return this._for(new g(x),k)}forRange(x,k,D,K,J=this.opts.es5?r.varKinds.var:r.varKinds.let){let de=this._scope.toName(x);return this._for(new b(J,de,k,D),()=>K(de))}forOf(x,k,D,K=r.varKinds.const){let J=this._scope.toName(x);if(this.opts.es5){let de=k instanceof e.Name?k:this.var("_arr",k);return this.forRange("_i",0,(0,e._)`${de}.length`,se=>{this.var(J,(0,e._)`${de}[${se}]`),D(J)})}return this._for(new w("of",K,J,k),()=>D(J))}forIn(x,k,D,K=this.opts.es5?r.varKinds.var:r.varKinds.const){if(this.opts.ownProperties)return this.forOf(x,(0,e._)`Object.keys(${k})`,D);let J=this._scope.toName(x);return this._for(new w("in",K,J,k),()=>D(J))}endFor(){return this._endBlockNode(y)}label(x){return this._leafNode(new u(x))}break(x){return this._leafNode(new l(x))}return(x){let k=new E;if(this._blockNode(k),this.code(x),k.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(E)}try(x,k,D){if(!k&&!D)throw new Error('CodeGen: "try" without "catch" and "finally"');let K=new T;if(this._blockNode(K),this.code(x),k){let J=this.name("e");this._currNode=K.catch=new R(J),k(J)}return D&&(this._currNode=K.finally=new M,this.code(D)),this._endBlockNode(R,M)}throw(x){return this._leafNode(new d(x))}block(x,k){return this._blockStarts.push(this._nodes.length),x&&this.code(x).endBlock(k),this}endBlock(x){let k=this._blockStarts.pop();if(k===void 0)throw new Error("CodeGen: not in self-balancing block");let D=this._nodes.length-k;if(D<0||x!==void 0&&D!==x)throw new Error(`CodeGen: wrong number of nodes: ${D} vs ${x} expected`);return this._nodes.length=k,this}func(x,k=e.nil,D,K){return this._blockNode(new S(x,k,D)),K&&this.code(K).endFunc(),this}endFunc(){return this._endBlockNode(S)}optimize(x=1){for(;x-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(x){return this._currNode.nodes.push(x),this}_blockNode(x){this._currNode.nodes.push(x),this._nodes.push(x)}_endBlockNode(x,k){let D=this._currNode;if(D instanceof x||k&&D instanceof k)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${k?`${x.kind}/${k.kind}`:x.kind}"`)}_elseNode(x){let k=this._currNode;if(!(k instanceof h))throw new Error('CodeGen: "else" without "if"');return this._currNode=k.else=x,this}get _root(){return this._nodes[0]}get _currNode(){let x=this._nodes;return x[x.length-1]}set _currNode(x){let k=this._nodes;k[k.length-1]=x}}t.CodeGen=j;function q(A,x){for(let k in x)A[k]=(A[k]||0)+(x[k]||0);return A}function H(A,x){return x instanceof e._CodeOrName?q(A,x.names):A}function N(A,x,k){if(A instanceof e.Name)return D(A);if(!K(A))return A;return new e._Code(A._items.reduce((J,de)=>(de instanceof e.Name&&(de=D(de)),de instanceof e._Code?J.push(...de._items):J.push(de),J),[]));function D(J){let de=k[J.str];return de===void 0||x[J.str]!==1?J:(delete x[J.str],de)}function K(J){return J instanceof e._Code&&J._items.some(de=>de instanceof e.Name&&x[de.str]===1&&k[de.str]!==void 0)}}function W(A,x){for(let k in x)A[k]=(A[k]||0)-(x[k]||0)}function oe(A){return typeof A=="boolean"||typeof A=="number"||A===null?!A:(0,e._)`!${z(A)}`}t.not=oe;var he=$(t.operators.AND);function ae(...A){return A.reduce(he)}t.and=ae;var re=$(t.operators.OR);function U(...A){return A.reduce(re)}t.or=U;function $(A){return(x,k)=>x===e.nil?k:k===e.nil?x:(0,e._)`${z(x)} ${A} ${z(k)}`}function z(A){return A instanceof e.Name?A:(0,e._)`(${A})`}}),tt=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.checkStrictMode=t.getErrorPath=t.Type=t.useFunc=t.setEvaluated=t.evaluatedPropsToName=t.mergeEvaluated=t.eachItem=t.unescapeJsonPointer=t.escapeJsonPointer=t.escapeFragment=t.unescapeFragment=t.schemaRefOrVal=t.schemaHasRulesButRef=t.schemaHasRules=t.checkUnknownRules=t.alwaysValidSchema=t.toHash=void 0;var e=ze(),r=vl();function a(S){let E={};for(let T of S)E[T]=!0;return E}t.toHash=a;function n(S,E){return typeof E=="boolean"?E:Object.keys(E).length===0?!0:(s(S,E),!i(E,S.self.RULES.all))}t.alwaysValidSchema=n;function s(S,E=S.schema){let{opts:T,self:R}=S;if(!T.strictSchema||typeof E=="boolean")return;let M=R.RULES.keywords;for(let j in E)M[j]||w(S,`unknown keyword: "${j}"`)}t.checkUnknownRules=s;function i(S,E){if(typeof S=="boolean")return!S;for(let T in S)if(E[T])return!0;return!1}t.schemaHasRules=i;function o(S,E){if(typeof S=="boolean")return!S;for(let T in S)if(T!=="$ref"&&E.all[T])return!0;return!1}t.schemaHasRulesButRef=o;function c({topSchemaRef:S,schemaPath:E},T,R,M){if(!M){if(typeof T=="number"||typeof T=="boolean")return T;if(typeof T=="string")return(0,e._)`${T}`}return(0,e._)`${S}${E}${(0,e.getProperty)(R)}`}t.schemaRefOrVal=c;function u(S){return p(decodeURIComponent(S))}t.unescapeFragment=u;function l(S){return encodeURIComponent(d(S))}t.escapeFragment=l;function d(S){return typeof S=="number"?`${S}`:S.replace(/~/g,"~0").replace(/\//g,"~1")}t.escapeJsonPointer=d;function p(S){return S.replace(/~1/g,"/").replace(/~0/g,"~")}t.unescapeJsonPointer=p;function f(S,E){if(Array.isArray(S))for(let T of S)E(T);else E(S)}t.eachItem=f;function v({mergeNames:S,mergeToName:E,mergeValues:T,resultToName:R}){return(M,j,q,H)=>{let N=q===void 0?j:q instanceof e.Name?(j instanceof e.Name?S(M,j,q):E(M,j,q),q):j instanceof e.Name?(E(M,q,j),j):T(j,q);return H===e.Name&&!(N instanceof e.Name)?R(M,N):N}}t.mergeEvaluated={props:v({mergeNames:(S,E,T)=>S.if((0,e._)`${T} !== true && ${E} !== undefined`,()=>{S.if((0,e._)`${E} === true`,()=>S.assign(T,!0),()=>S.assign(T,(0,e._)`${T} || {}`).code((0,e._)`Object.assign(${T}, ${E})`))}),mergeToName:(S,E,T)=>S.if((0,e._)`${T} !== true`,()=>{E===!0?S.assign(T,!0):(S.assign(T,(0,e._)`${T} || {}`),m(S,T,E))}),mergeValues:(S,E)=>S===!0?!0:{...S,...E},resultToName:_}),items:v({mergeNames:(S,E,T)=>S.if((0,e._)`${T} !== true && ${E} !== undefined`,()=>S.assign(T,(0,e._)`${E} === true ? true : ${T} > ${E} ? ${T} : ${E}`)),mergeToName:(S,E,T)=>S.if((0,e._)`${T} !== true`,()=>S.assign(T,E===!0?!0:(0,e._)`${T} > ${E} ? ${T} : ${E}`)),mergeValues:(S,E)=>S===!0?!0:Math.max(S,E),resultToName:(S,E)=>S.var("items",E)})};function _(S,E){if(E===!0)return S.var("props",!0);let T=S.var("props",(0,e._)`{}`);return E!==void 0&&m(S,T,E),T}t.evaluatedPropsToName=_;function m(S,E,T){Object.keys(T).forEach(R=>S.assign((0,e._)`${E}${(0,e.getProperty)(R)}`,!0))}t.setEvaluated=m;var h={};function y(S,E){return S.scopeValue("func",{ref:E,code:h[E.code]||(h[E.code]=new r._Code(E.code))})}t.useFunc=y;var g;(function(S){S[S.Num=0]="Num",S[S.Str=1]="Str"})(g||(t.Type=g={}));function b(S,E,T){if(S instanceof e.Name){let R=E===g.Num;return T?R?(0,e._)`"[" + ${S} + "]"`:(0,e._)`"['" + ${S} + "']"`:R?(0,e._)`"/" + ${S}`:(0,e._)`"/" + ${S}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return T?(0,e.getProperty)(S).toString():"/"+d(S)}t.getErrorPath=b;function w(S,E,T=S.opts.strictSchema){if(T){if(E=`strict mode: ${E}`,T===!0)throw new Error(E);S.self.logger.warn(E)}}t.checkStrictMode=w}),Qn=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ze(),r={data:new e.Name("data"),valCxt:new e.Name("valCxt"),instancePath:new e.Name("instancePath"),parentData:new e.Name("parentData"),parentDataProperty:new e.Name("parentDataProperty"),rootData:new e.Name("rootData"),dynamicAnchors:new e.Name("dynamicAnchors"),vErrors:new e.Name("vErrors"),errors:new e.Name("errors"),this:new e.Name("this"),self:new e.Name("self"),scope:new e.Name("scope"),json:new e.Name("json"),jsonPos:new e.Name("jsonPos"),jsonLen:new e.Name("jsonLen"),jsonPart:new e.Name("jsonPart")};t.default=r}),$l=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.extendErrors=t.resetErrorsCount=t.reportExtraError=t.reportError=t.keyword$DataError=t.keywordError=void 0;var e=ze(),r=tt(),a=Qn();t.keywordError={message:({keyword:m})=>(0,e.str)`must pass "${m}" keyword validation`},t.keyword$DataError={message:({keyword:m,schemaType:h})=>h?(0,e.str)`"${m}" keyword must be ${h} ($data)`:(0,e.str)`"${m}" keyword is invalid ($data)`};function n(m,h=t.keywordError,y,g){let{it:b}=m,{gen:w,compositeRule:S,allErrors:E}=b,T=d(m,h,y);g??(S||E)?c(w,T):u(b,(0,e._)`[${T}]`)}t.reportError=n;function s(m,h=t.keywordError,y){let{it:g}=m,{gen:b,compositeRule:w,allErrors:S}=g,E=d(m,h,y);c(b,E),w||S||u(g,a.default.vErrors)}t.reportExtraError=s;function i(m,h){m.assign(a.default.errors,h),m.if((0,e._)`${a.default.vErrors} !== null`,()=>m.if(h,()=>m.assign((0,e._)`${a.default.vErrors}.length`,h),()=>m.assign(a.default.vErrors,null)))}t.resetErrorsCount=i;function o({gen:m,keyword:h,schemaValue:y,data:g,errsCount:b,it:w}){if(b===void 0)throw new Error("ajv implementation error");let S=m.name("err");m.forRange("i",b,a.default.errors,E=>{m.const(S,(0,e._)`${a.default.vErrors}[${E}]`),m.if((0,e._)`${S}.instancePath === undefined`,()=>m.assign((0,e._)`${S}.instancePath`,(0,e.strConcat)(a.default.instancePath,w.errorPath))),m.assign((0,e._)`${S}.schemaPath`,(0,e.str)`${w.errSchemaPath}/${h}`),w.opts.verbose&&(m.assign((0,e._)`${S}.schema`,y),m.assign((0,e._)`${S}.data`,g))})}t.extendErrors=o;function c(m,h){let y=m.const("err",h);m.if((0,e._)`${a.default.vErrors} === null`,()=>m.assign(a.default.vErrors,(0,e._)`[${y}]`),(0,e._)`${a.default.vErrors}.push(${y})`),m.code((0,e._)`${a.default.errors}++`)}function u(m,h){let{gen:y,validateName:g,schemaEnv:b}=m;b.$async?y.throw((0,e._)`new ${m.ValidationError}(${h})`):(y.assign((0,e._)`${g}.errors`,h),y.return(!1))}var l={keyword:new e.Name("keyword"),schemaPath:new e.Name("schemaPath"),params:new e.Name("params"),propertyName:new e.Name("propertyName"),message:new e.Name("message"),schema:new e.Name("schema"),parentSchema:new e.Name("parentSchema")};function d(m,h,y){let{createErrors:g}=m.it;return g===!1?(0,e._)`{}`:p(m,h,y)}function p(m,h,y={}){let{gen:g,it:b}=m,w=[f(b,y),v(m,y)];return _(m,h,w),g.object(...w)}function f({errorPath:m},{instancePath:h}){let y=h?(0,e.str)`${m}${(0,r.getErrorPath)(h,r.Type.Str)}`:m;return[a.default.instancePath,(0,e.strConcat)(a.default.instancePath,y)]}function v({keyword:m,it:{errSchemaPath:h}},{schemaPath:y,parentSchema:g}){let b=g?h:(0,e.str)`${h}/${m}`;return y&&(b=(0,e.str)`${b}${(0,r.getErrorPath)(y,r.Type.Str)}`),[l.schemaPath,b]}function _(m,{params:h,message:y},g){let{keyword:b,data:w,schemaValue:S,it:E}=m,{opts:T,propertyName:R,topSchemaRef:M,schemaPath:j}=E;g.push([l.keyword,b],[l.params,typeof h=="function"?h(m):h||(0,e._)`{}`]),T.messages&&g.push([l.message,typeof y=="function"?y(m):y]),T.verbose&&g.push([l.schema,S],[l.parentSchema,(0,e._)`${M}${j}`],[a.default.data,w]),R&&g.push([l.propertyName,R])}}),Kq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.boolOrEmptySchema=t.topBoolOrEmptySchema=void 0;var e=$l(),r=ze(),a=Qn(),n={message:"boolean schema is false"};function s(c){let{gen:u,schema:l,validateName:d}=c;l===!1?o(c,!1):typeof l=="object"&&l.$async===!0?u.return(a.default.data):(u.assign((0,r._)`${d}.errors`,null),u.return(!0))}t.topBoolOrEmptySchema=s;function i(c,u){let{gen:l,schema:d}=c;d===!1?(l.var(u,!1),o(c)):l.var(u,!0)}t.boolOrEmptySchema=i;function o(c,u){let{gen:l,data:d}=c,p={gen:l,keyword:"false schema",data:d,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:c};(0,e.reportError)(p,n,void 0,u)}}),IT=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getRules=t.isJSONType=void 0;var e=["string","number","integer","boolean","null","object","array"],r=new Set(e);function a(s){return typeof s=="string"&&r.has(s)}t.isJSONType=a;function n(){let s={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...s,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},s.number,s.string,s.array,s.object],post:{rules:[]},all:{},keywords:{}}}t.getRules=n}),AT=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.shouldUseRule=t.shouldUseGroup=t.schemaHasRulesForType=void 0;function e({schema:n,self:s},i){let o=s.RULES.types[i];return o&&o!==!0&&r(n,o)}t.schemaHasRulesForType=e;function r(n,s){return s.rules.some(i=>a(n,i))}t.shouldUseGroup=r;function a(n,s){var i;return n[s.keyword]!==void 0||((i=s.definition.implements)===null||i===void 0?void 0:i.some(o=>n[o]!==void 0))}t.shouldUseRule=a}),gl=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.reportTypeError=t.checkDataTypes=t.checkDataType=t.coerceAndCheckDataType=t.getJSONTypes=t.getSchemaTypes=t.DataType=void 0;var e=IT(),r=AT(),a=$l(),n=ze(),s=tt(),i;(function(g){g[g.Correct=0]="Correct",g[g.Wrong=1]="Wrong"})(i||(t.DataType=i={}));function o(g){let b=c(g.type);if(b.includes("null")){if(g.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!b.length&&g.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');g.nullable===!0&&b.push("null")}return b}t.getSchemaTypes=o;function c(g){let b=Array.isArray(g)?g:g?[g]:[];if(b.every(e.isJSONType))return b;throw new Error("type must be JSONType or JSONType[]: "+b.join(","))}t.getJSONTypes=c;function u(g,b){let{gen:w,data:S,opts:E}=g,T=d(b,E.coerceTypes),R=b.length>0&&!(T.length===0&&b.length===1&&(0,r.schemaHasRulesForType)(g,b[0]));if(R){let M=_(b,S,E.strictNumbers,i.Wrong);w.if(M,()=>{T.length?p(g,b,T):h(g)})}return R}t.coerceAndCheckDataType=u;var l=new Set(["string","number","integer","boolean","null"]);function d(g,b){return b?g.filter(w=>l.has(w)||b==="array"&&w==="array"):[]}function p(g,b,w){let{gen:S,data:E,opts:T}=g,R=S.let("dataType",(0,n._)`typeof ${E}`),M=S.let("coerced",(0,n._)`undefined`);T.coerceTypes==="array"&&S.if((0,n._)`${R} == 'object' && Array.isArray(${E}) && ${E}.length == 1`,()=>S.assign(E,(0,n._)`${E}[0]`).assign(R,(0,n._)`typeof ${E}`).if(_(b,E,T.strictNumbers),()=>S.assign(M,E))),S.if((0,n._)`${M} !== undefined`);for(let q of w)(l.has(q)||q==="array"&&T.coerceTypes==="array")&&j(q);S.else(),h(g),S.endIf(),S.if((0,n._)`${M} !== undefined`,()=>{S.assign(E,M),f(g,M)});function j(q){switch(q){case"string":S.elseIf((0,n._)`${R} == "number" || ${R} == "boolean"`).assign(M,(0,n._)`"" + ${E}`).elseIf((0,n._)`${E} === null`).assign(M,(0,n._)`""`);return;case"number":S.elseIf((0,n._)`${R} == "boolean" || ${E} === null - || (${R} == "string" && ${E} && ${E} == +${E})`).assign(M,(0,n._)`+${E}`);return;case"integer":S.elseIf((0,n._)`${R} === "boolean" || ${E} === null - || (${R} === "string" && ${E} && ${E} == +${E} && !(${E} % 1))`).assign(M,(0,n._)`+${E}`);return;case"boolean":S.elseIf((0,n._)`${E} === "false" || ${E} === 0 || ${E} === null`).assign(M,!1).elseIf((0,n._)`${E} === "true" || ${E} === 1`).assign(M,!0);return;case"null":S.elseIf((0,n._)`${E} === "" || ${E} === 0 || ${E} === false`),S.assign(M,null);return;case"array":S.elseIf((0,n._)`${R} === "string" || ${R} === "number" - || ${R} === "boolean" || ${E} === null`).assign(M,(0,n._)`[${E}]`)}}}function f({gen:g,parentData:b,parentDataProperty:w},S){g.if((0,n._)`${b} !== undefined`,()=>g.assign((0,n._)`${b}[${w}]`,S))}function v(g,b,w,S=i.Correct){let E=S===i.Correct?n.operators.EQ:n.operators.NEQ,T;switch(g){case"null":return(0,n._)`${b} ${E} null`;case"array":T=(0,n._)`Array.isArray(${b})`;break;case"object":T=(0,n._)`${b} && typeof ${b} == "object" && !Array.isArray(${b})`;break;case"integer":T=R((0,n._)`!(${b} % 1) && !isNaN(${b})`);break;case"number":T=R();break;default:return(0,n._)`typeof ${b} ${E} ${g}`}return S===i.Correct?T:(0,n.not)(T);function R(M=n.nil){return(0,n.and)((0,n._)`typeof ${b} == "number"`,M,w?(0,n._)`isFinite(${b})`:n.nil)}}t.checkDataType=v;function _(g,b,w,S){if(g.length===1)return v(g[0],b,w,S);let E,T=(0,s.toHash)(g);if(T.array&&T.object){let R=(0,n._)`typeof ${b} != "object"`;E=T.null?R:(0,n._)`!${b} || ${R}`,delete T.null,delete T.array,delete T.object}else E=n.nil;T.number&&delete T.integer;for(let R in T)E=(0,n.and)(E,v(R,b,w,S));return E}t.checkDataTypes=_;var m={message:({schema:g})=>`must be ${g}`,params:({schema:g,schemaValue:b})=>typeof g=="string"?(0,n._)`{type: ${g}}`:(0,n._)`{type: ${b}}`};function h(g){let b=y(g);(0,a.reportError)(b,m)}t.reportTypeError=h;function y(g){let{gen:b,data:w,schema:S}=g,E=(0,s.schemaRefOrVal)(g,S,"type");return{gen:b,keyword:"type",data:w,schema:S.type,schemaCode:E,schemaValue:E,parentSchema:S,params:{},it:g}}}),Xq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.assignDefaults=void 0;var e=ze(),r=tt();function a(s,i){let{properties:o,items:c}=s.schema;if(i==="object"&&o)for(let u in o)n(s,u,o[u].default);else i==="array"&&Array.isArray(c)&&c.forEach((u,l)=>n(s,l,u.default))}t.assignDefaults=a;function n(s,i,o){let{gen:c,compositeRule:u,data:l,opts:d}=s;if(o===void 0)return;let p=(0,e._)`${l}${(0,e.getProperty)(i)}`;if(u){(0,r.checkStrictMode)(s,`default is ignored for: ${p}`);return}let f=(0,e._)`${p} === undefined`;d.useDefaults==="empty"&&(f=(0,e._)`${f} || ${p} === null || ${p} === ""`),c.if(f,(0,e._)`${p} = ${(0,e.stringify)(o)}`)}}),Zr=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateUnion=t.validateArray=t.usePattern=t.callValidateCode=t.schemaProperties=t.allSchemaProperties=t.noPropertyInData=t.propertyInData=t.isOwnProperty=t.hasPropFunc=t.reportMissingProp=t.checkMissingProp=t.checkReportMissingProp=void 0;var e=ze(),r=tt(),a=Qn(),n=tt();function s(g,b){let{gen:w,data:S,it:E}=g;w.if(d(w,S,b,E.opts.ownProperties),()=>{g.setParams({missingProperty:(0,e._)`${b}`},!0),g.error()})}t.checkReportMissingProp=s;function i({gen:g,data:b,it:{opts:w}},S,E){return(0,e.or)(...S.map(T=>(0,e.and)(d(g,b,T,w.ownProperties),(0,e._)`${E} = ${T}`)))}t.checkMissingProp=i;function o(g,b){g.setParams({missingProperty:b},!0),g.error()}t.reportMissingProp=o;function c(g){return g.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,e._)`Object.prototype.hasOwnProperty`})}t.hasPropFunc=c;function u(g,b,w){return(0,e._)`${c(g)}.call(${b}, ${w})`}t.isOwnProperty=u;function l(g,b,w,S){let E=(0,e._)`${b}${(0,e.getProperty)(w)} !== undefined`;return S?(0,e._)`${E} && ${u(g,b,w)}`:E}t.propertyInData=l;function d(g,b,w,S){let E=(0,e._)`${b}${(0,e.getProperty)(w)} === undefined`;return S?(0,e.or)(E,(0,e.not)(u(g,b,w))):E}t.noPropertyInData=d;function p(g){return g?Object.keys(g).filter(b=>b!=="__proto__"):[]}t.allSchemaProperties=p;function f(g,b){return p(b).filter(w=>!(0,r.alwaysValidSchema)(g,b[w]))}t.schemaProperties=f;function v({schemaCode:g,data:b,it:{gen:w,topSchemaRef:S,schemaPath:E,errorPath:T},it:R},M,j,q){let H=q?(0,e._)`${g}, ${b}, ${S}${E}`:b,N=[[a.default.instancePath,(0,e.strConcat)(a.default.instancePath,T)],[a.default.parentData,R.parentData],[a.default.parentDataProperty,R.parentDataProperty],[a.default.rootData,a.default.rootData]];R.opts.dynamicRef&&N.push([a.default.dynamicAnchors,a.default.dynamicAnchors]);let W=(0,e._)`${H}, ${w.object(...N)}`;return j!==e.nil?(0,e._)`${M}.call(${j}, ${W})`:(0,e._)`${M}(${W})`}t.callValidateCode=v;var _=(0,e._)`new RegExp`;function m({gen:g,it:{opts:b}},w){let S=b.unicodeRegExp?"u":"",{regExp:E}=b.code,T=E(w,S);return g.scopeValue("pattern",{key:T.toString(),ref:T,code:(0,e._)`${E.code==="new RegExp"?_:(0,n.useFunc)(g,E)}(${w}, ${S})`})}t.usePattern=m;function h(g){let{gen:b,data:w,keyword:S,it:E}=g,T=b.name("valid");if(E.allErrors){let M=b.let("valid",!0);return R(()=>b.assign(M,!1)),M}return b.var(T,!0),R(()=>b.break()),T;function R(M){let j=b.const("len",(0,e._)`${w}.length`);b.forRange("i",0,j,q=>{g.subschema({keyword:S,dataProp:q,dataPropType:r.Type.Num},T),b.if((0,e.not)(T),M)})}}t.validateArray=h;function y(g){let{gen:b,schema:w,keyword:S,it:E}=g;if(!Array.isArray(w))throw new Error("ajv implementation error");if(w.some(j=>(0,r.alwaysValidSchema)(E,j))&&!E.opts.unevaluated)return;let R=b.let("valid",!1),M=b.name("_valid");b.block(()=>w.forEach((j,q)=>{let H=g.subschema({keyword:S,schemaProp:q,compositeRule:!0},M);b.assign(R,(0,e._)`${R} || ${M}`),g.mergeValidEvaluated(H,M)||b.if((0,e.not)(R))})),g.result(R,()=>g.reset(),()=>g.error(!0))}t.validateUnion=y}),Jq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateKeywordUsage=t.validSchemaType=t.funcKeywordCode=t.macroKeywordCode=void 0;var e=ze(),r=Qn(),a=Zr(),n=$l();function s(f,v){let{gen:_,keyword:m,schema:h,parentSchema:y,it:g}=f,b=v.macro.call(g.self,h,y,g),w=l(_,m,b);g.opts.validateSchema!==!1&&g.self.validateSchema(b,!0);let S=_.name("valid");f.subschema({schema:b,schemaPath:e.nil,errSchemaPath:`${g.errSchemaPath}/${m}`,topSchemaRef:w,compositeRule:!0},S),f.pass(S,()=>f.error(!0))}t.macroKeywordCode=s;function i(f,v){var _;let{gen:m,keyword:h,schema:y,parentSchema:g,$data:b,it:w}=f;u(w,v);let S=!b&&v.compile?v.compile.call(w.self,y,g,w):v.validate,E=l(m,h,S),T=m.let("valid");f.block$data(T,R),f.ok((_=v.valid)!==null&&_!==void 0?_:T);function R(){if(v.errors===!1)q(),v.modifying&&o(f),H(()=>f.error());else{let N=v.async?M():j();v.modifying&&o(f),H(()=>c(f,N))}}function M(){let N=m.let("ruleErrs",null);return m.try(()=>q((0,e._)`await `),W=>m.assign(T,!1).if((0,e._)`${W} instanceof ${w.ValidationError}`,()=>m.assign(N,(0,e._)`${W}.errors`),()=>m.throw(W))),N}function j(){let N=(0,e._)`${E}.errors`;return m.assign(N,null),q(e.nil),N}function q(N=v.async?(0,e._)`await `:e.nil){let W=w.opts.passContext?r.default.this:r.default.self,oe=!("compile"in v&&!b||v.schema===!1);m.assign(T,(0,e._)`${N}${(0,a.callValidateCode)(f,E,W,oe)}`,v.modifying)}function H(N){var W;m.if((0,e.not)((W=v.valid)!==null&&W!==void 0?W:T),N)}}t.funcKeywordCode=i;function o(f){let{gen:v,data:_,it:m}=f;v.if(m.parentData,()=>v.assign(_,(0,e._)`${m.parentData}[${m.parentDataProperty}]`))}function c(f,v){let{gen:_}=f;_.if((0,e._)`Array.isArray(${v})`,()=>{_.assign(r.default.vErrors,(0,e._)`${r.default.vErrors} === null ? ${v} : ${r.default.vErrors}.concat(${v})`).assign(r.default.errors,(0,e._)`${r.default.vErrors}.length`),(0,n.extendErrors)(f)},()=>f.error())}function u({schemaEnv:f},v){if(v.async&&!f.$async)throw new Error("async keyword in sync schema")}function l(f,v,_){if(_===void 0)throw new Error(`keyword "${v}" failed to compile`);return f.scopeValue("keyword",typeof _=="function"?{ref:_}:{ref:_,code:(0,e.stringify)(_)})}function d(f,v,_=!1){return!v.length||v.some(m=>m==="array"?Array.isArray(f):m==="object"?f&&typeof f=="object"&&!Array.isArray(f):typeof f==m||_&&typeof f>"u")}t.validSchemaType=d;function p({schema:f,opts:v,self:_,errSchemaPath:m},h,y){if(Array.isArray(h.keyword)?!h.keyword.includes(y):h.keyword!==y)throw new Error("ajv implementation error");let g=h.dependencies;if(g?.some(b=>!Object.prototype.hasOwnProperty.call(f,b)))throw new Error(`parent schema must have dependencies of ${y}: ${g.join(",")}`);if(h.validateSchema&&!h.validateSchema(f[y])){let w=`keyword "${y}" value is invalid at path "${m}": `+_.errorsText(h.validateSchema.errors);if(v.validateSchema==="log")_.logger.error(w);else throw new Error(w)}}t.validateKeywordUsage=p}),Yq=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.extendSubschemaMode=t.extendSubschemaData=t.getSubschema=void 0;var e=ze(),r=tt();function a(i,{keyword:o,schemaProp:c,schema:u,schemaPath:l,errSchemaPath:d,topSchemaRef:p}){if(o!==void 0&&u!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(o!==void 0){let f=i.schema[o];return c===void 0?{schema:f,schemaPath:(0,e._)`${i.schemaPath}${(0,e.getProperty)(o)}`,errSchemaPath:`${i.errSchemaPath}/${o}`}:{schema:f[c],schemaPath:(0,e._)`${i.schemaPath}${(0,e.getProperty)(o)}${(0,e.getProperty)(c)}`,errSchemaPath:`${i.errSchemaPath}/${o}/${(0,r.escapeFragment)(c)}`}}if(u!==void 0){if(l===void 0||d===void 0||p===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:u,schemaPath:l,topSchemaRef:p,errSchemaPath:d}}throw new Error('either "keyword" or "schema" must be passed')}t.getSubschema=a;function n(i,o,{dataProp:c,dataPropType:u,data:l,dataTypes:d,propertyName:p}){if(l!==void 0&&c!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:f}=o;if(c!==void 0){let{errorPath:_,dataPathArr:m,opts:h}=o,y=f.let("data",(0,e._)`${o.data}${(0,e.getProperty)(c)}`,!0);v(y),i.errorPath=(0,e.str)`${_}${(0,r.getErrorPath)(c,u,h.jsPropertySyntax)}`,i.parentDataProperty=(0,e._)`${c}`,i.dataPathArr=[...m,i.parentDataProperty]}if(l!==void 0){let _=l instanceof e.Name?l:f.let("data",l,!0);v(_),p!==void 0&&(i.propertyName=p)}d&&(i.dataTypes=d);function v(_){i.data=_,i.dataLevel=o.dataLevel+1,i.dataTypes=[],o.definedProperties=new Set,i.parentData=o.data,i.dataNames=[...o.dataNames,_]}}t.extendSubschemaData=n;function s(i,{jtdDiscriminator:o,jtdMetadata:c,compositeRule:u,createErrors:l,allErrors:d}){u!==void 0&&(i.compositeRule=u),l!==void 0&&(i.createErrors=l),d!==void 0&&(i.allErrors=d),i.jtdDiscriminator=o,i.jtdMetadata=c}t.extendSubschemaMode=s}),Qq=Q((t,e)=>{var r=e.exports=function(s,i,o){typeof i=="function"&&(o=i,i={}),o=i.cb||o;var c=typeof o=="function"?o:o.pre||function(){},u=o.post||function(){};a(i,c,u,s,"",s)};r.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0},r.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},r.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},r.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function a(s,i,o,c,u,l,d,p,f,v){if(c&&typeof c=="object"&&!Array.isArray(c)){i(c,u,l,d,p,f,v);for(var _ in c){var m=c[_];if(Array.isArray(m)){if(_ in r.arrayKeywords)for(var h=0;h{Object.defineProperty(t,"__esModule",{value:!0}),t.getSchemaRefs=t.resolveUrl=t.normalizeId=t._getFullPath=t.getFullPath=t.inlineRef=void 0;var e=tt(),r=Tl(),a=Qq(),n=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function s(m,h=!0){return typeof m=="boolean"?!0:h===!0?!o(m):h?c(m)<=h:!1}t.inlineRef=s;var i=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function o(m){for(let h in m){if(i.has(h))return!0;let y=m[h];if(Array.isArray(y)&&y.some(o)||typeof y=="object"&&o(y))return!0}return!1}function c(m){let h=0;for(let y in m){if(y==="$ref")return 1/0;if(h++,!n.has(y)&&(typeof m[y]=="object"&&(0,e.eachItem)(m[y],g=>h+=c(g)),h===1/0))return 1/0}return h}function u(m,h="",y){y!==!1&&(h=p(h));let g=m.parse(h);return l(m,g)}t.getFullPath=u;function l(m,h){return m.serialize(h).split("#")[0]+"#"}t._getFullPath=l;var d=/#\/?$/;function p(m){return m?m.replace(d,""):""}t.normalizeId=p;function f(m,h,y){return y=p(y),m.resolve(h,y)}t.resolveUrl=f;var v=/^[a-z_][-a-z0-9._]*$/i;function _(m,h){if(typeof m=="boolean")return{};let{schemaId:y,uriResolver:g}=this.opts,b=p(m[y]||h),w={"":b},S=u(g,b,!1),E={},T=new Set;return a(m,{allKeys:!0},(j,q,H,N)=>{if(N===void 0)return;let W=S+q,oe=w[N];typeof j[y]=="string"&&(oe=he.call(this,j[y])),ae.call(this,j.$anchor),ae.call(this,j.$dynamicAnchor),w[q]=oe;function he(re){let U=this.opts.uriResolver.resolve;if(re=p(oe?U(oe,re):re),T.has(re))throw M(re);T.add(re);let $=this.refs[re];return typeof $=="string"&&($=this.refs[$]),typeof $=="object"?R(j,$.schema,re):re!==p(W)&&(re[0]==="#"?(R(j,E[re],re),E[re]=j):this.refs[re]=W),re}function ae(re){if(typeof re=="string"){if(!v.test(re))throw new Error(`invalid anchor "${re}"`);he.call(this,`#${re}`)}}}),E;function R(j,q,H){if(q!==void 0&&!r(j,q))throw M(H)}function M(j){return new Error(`reference "${j}" resolves to more than one schema`)}}t.getSchemaRefs=_}),Cl=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getData=t.KeywordCxt=t.validateFunctionCode=void 0;var e=Kq(),r=gl(),a=AT(),n=gl(),s=Xq(),i=Jq(),o=Yq(),c=ze(),u=Qn(),l=Ol(),d=tt(),p=$l();function f(C){if(S(C)&&(T(C),w(C))){h(C);return}v(C,()=>(0,e.topBoolOrEmptySchema)(C))}t.validateFunctionCode=f;function v({gen:C,validateName:I,schema:F,schemaEnv:Z,opts:ee},ce){ee.code.es5?C.func(I,(0,c._)`${u.default.data}, ${u.default.valCxt}`,Z.$async,()=>{C.code((0,c._)`"use strict"; ${g(F,ee)}`),m(C,ee),C.code(ce)}):C.func(I,(0,c._)`${u.default.data}, ${_(ee)}`,Z.$async,()=>C.code(g(F,ee)).code(ce))}function _(C){return(0,c._)`{${u.default.instancePath}="", ${u.default.parentData}, ${u.default.parentDataProperty}, ${u.default.rootData}=${u.default.data}${C.dynamicRef?(0,c._)`, ${u.default.dynamicAnchors}={}`:c.nil}}={}`}function m(C,I){C.if(u.default.valCxt,()=>{C.var(u.default.instancePath,(0,c._)`${u.default.valCxt}.${u.default.instancePath}`),C.var(u.default.parentData,(0,c._)`${u.default.valCxt}.${u.default.parentData}`),C.var(u.default.parentDataProperty,(0,c._)`${u.default.valCxt}.${u.default.parentDataProperty}`),C.var(u.default.rootData,(0,c._)`${u.default.valCxt}.${u.default.rootData}`),I.dynamicRef&&C.var(u.default.dynamicAnchors,(0,c._)`${u.default.valCxt}.${u.default.dynamicAnchors}`)},()=>{C.var(u.default.instancePath,(0,c._)`""`),C.var(u.default.parentData,(0,c._)`undefined`),C.var(u.default.parentDataProperty,(0,c._)`undefined`),C.var(u.default.rootData,u.default.data),I.dynamicRef&&C.var(u.default.dynamicAnchors,(0,c._)`{}`)})}function h(C){let{schema:I,opts:F,gen:Z}=C;v(C,()=>{F.$comment&&I.$comment&&N(C),j(C),Z.let(u.default.vErrors,null),Z.let(u.default.errors,0),F.unevaluated&&y(C),R(C),W(C)})}function y(C){let{gen:I,validateName:F}=C;C.evaluated=I.const("evaluated",(0,c._)`${F}.evaluated`),I.if((0,c._)`${C.evaluated}.dynamicProps`,()=>I.assign((0,c._)`${C.evaluated}.props`,(0,c._)`undefined`)),I.if((0,c._)`${C.evaluated}.dynamicItems`,()=>I.assign((0,c._)`${C.evaluated}.items`,(0,c._)`undefined`))}function g(C,I){let F=typeof C=="object"&&C[I.schemaId];return F&&(I.code.source||I.code.process)?(0,c._)`/*# sourceURL=${F} */`:c.nil}function b(C,I){if(S(C)&&(T(C),w(C))){E(C,I);return}(0,e.boolOrEmptySchema)(C,I)}function w({schema:C,self:I}){if(typeof C=="boolean")return!C;for(let F in C)if(I.RULES.all[F])return!0;return!1}function S(C){return typeof C.schema!="boolean"}function E(C,I){let{schema:F,gen:Z,opts:ee}=C;ee.$comment&&F.$comment&&N(C),q(C),H(C);let ce=Z.const("_errs",u.default.errors);R(C,ce),Z.var(I,(0,c._)`${ce} === ${u.default.errors}`)}function T(C){(0,d.checkUnknownRules)(C),M(C)}function R(C,I){if(C.opts.jtd)return he(C,[],!1,I);let F=(0,r.getSchemaTypes)(C.schema),Z=(0,r.coerceAndCheckDataType)(C,F);he(C,F,!Z,I)}function M(C){let{schema:I,errSchemaPath:F,opts:Z,self:ee}=C;I.$ref&&Z.ignoreKeywordsWithRef&&(0,d.schemaHasRulesButRef)(I,ee.RULES)&&ee.logger.warn(`$ref: keywords ignored in schema at path "${F}"`)}function j(C){let{schema:I,opts:F}=C;I.default!==void 0&&F.useDefaults&&F.strictSchema&&(0,d.checkStrictMode)(C,"default is ignored in the schema root")}function q(C){let I=C.schema[C.opts.schemaId];I&&(C.baseId=(0,l.resolveUrl)(C.opts.uriResolver,C.baseId,I))}function H(C){if(C.schema.$async&&!C.schemaEnv.$async)throw new Error("async schema in sync schema")}function N({gen:C,schemaEnv:I,schema:F,errSchemaPath:Z,opts:ee}){let ce=F.$comment;if(ee.$comment===!0)C.code((0,c._)`${u.default.self}.logger.log(${ce})`);else if(typeof ee.$comment=="function"){let ke=(0,c.str)`${Z}/$comment`,Ne=C.scopeValue("root",{ref:I.root});C.code((0,c._)`${u.default.self}.opts.$comment(${ce}, ${ke}, ${Ne}.schema)`)}}function W(C){let{gen:I,schemaEnv:F,validateName:Z,ValidationError:ee,opts:ce}=C;F.$async?I.if((0,c._)`${u.default.errors} === 0`,()=>I.return(u.default.data),()=>I.throw((0,c._)`new ${ee}(${u.default.vErrors})`)):(I.assign((0,c._)`${Z}.errors`,u.default.vErrors),ce.unevaluated&&oe(C),I.return((0,c._)`${u.default.errors} === 0`))}function oe({gen:C,evaluated:I,props:F,items:Z}){F instanceof c.Name&&C.assign((0,c._)`${I}.props`,F),Z instanceof c.Name&&C.assign((0,c._)`${I}.items`,Z)}function he(C,I,F,Z){let{gen:ee,schema:ce,data:ke,allErrors:Ne,opts:Me,self:je}=C,{RULES:Re}=je;if(ce.$ref&&(Me.ignoreKeywordsWithRef||!(0,d.schemaHasRulesButRef)(ce,Re))){ee.block(()=>J(C,"$ref",Re.all.$ref.definition));return}Me.jtd||re(C,I),ee.block(()=>{for(let Ue of Re.rules)vt(Ue);vt(Re.post)});function vt(Ue){(0,a.shouldUseGroup)(ce,Ue)&&(Ue.type?(ee.if((0,n.checkDataType)(Ue.type,ke,Me.strictNumbers)),ae(C,Ue),I.length===1&&I[0]===Ue.type&&F&&(ee.else(),(0,n.reportTypeError)(C)),ee.endIf()):ae(C,Ue),Ne||ee.if((0,c._)`${u.default.errors} === ${Z||0}`))}}function ae(C,I){let{gen:F,schema:Z,opts:{useDefaults:ee}}=C;ee&&(0,s.assignDefaults)(C,I.type),F.block(()=>{for(let ce of I.rules)(0,a.shouldUseRule)(Z,ce)&&J(C,ce.keyword,ce.definition,I.type)})}function re(C,I){C.schemaEnv.meta||!C.opts.strictTypes||(U(C,I),C.opts.allowUnionTypes||$(C,I),z(C,C.dataTypes))}function U(C,I){if(I.length){if(!C.dataTypes.length){C.dataTypes=I;return}I.forEach(F=>{x(C.dataTypes,F)||D(C,`type "${F}" not allowed by context "${C.dataTypes.join(",")}"`)}),k(C,I)}}function $(C,I){I.length>1&&!(I.length===2&&I.includes("null"))&&D(C,"use allowUnionTypes to allow union type keyword")}function z(C,I){let F=C.self.RULES.all;for(let Z in F){let ee=F[Z];if(typeof ee=="object"&&(0,a.shouldUseRule)(C.schema,ee)){let{type:ce}=ee.definition;ce.length&&!ce.some(ke=>A(I,ke))&&D(C,`missing type "${ce.join(",")}" for keyword "${Z}"`)}}}function A(C,I){return C.includes(I)||I==="number"&&C.includes("integer")}function x(C,I){return C.includes(I)||I==="integer"&&C.includes("number")}function k(C,I){let F=[];for(let Z of C.dataTypes)x(I,Z)?F.push(Z):I.includes("integer")&&Z==="number"&&F.push("integer");C.dataTypes=F}function D(C,I){let F=C.schemaEnv.baseId+C.errSchemaPath;I+=` at "${F}" (strictTypes)`,(0,d.checkStrictMode)(C,I,C.opts.strictTypes)}class K{constructor(I,F,Z){if((0,i.validateKeywordUsage)(I,F,Z),this.gen=I.gen,this.allErrors=I.allErrors,this.keyword=Z,this.data=I.data,this.schema=I.schema[Z],this.$data=F.$data&&I.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,d.schemaRefOrVal)(I,this.schema,Z,this.$data),this.schemaType=F.schemaType,this.parentSchema=I.schema,this.params={},this.it=I,this.def=F,this.$data)this.schemaCode=I.gen.const("vSchema",me(this.$data,I));else if(this.schemaCode=this.schemaValue,!(0,i.validSchemaType)(this.schema,F.schemaType,F.allowUndefined))throw new Error(`${Z} value must be ${JSON.stringify(F.schemaType)}`);("code"in F?F.trackErrors:F.errors!==!1)&&(this.errsCount=I.gen.const("_errs",u.default.errors))}result(I,F,Z){this.failResult((0,c.not)(I),F,Z)}failResult(I,F,Z){this.gen.if(I),Z?Z():this.error(),F?(this.gen.else(),F(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(I,F){this.failResult((0,c.not)(I),void 0,F)}fail(I){if(I===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(I),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(I){if(!this.$data)return this.fail(I);let{schemaCode:F}=this;this.fail((0,c._)`${F} !== undefined && (${(0,c.or)(this.invalid$data(),I)})`)}error(I,F,Z){if(F){this.setParams(F),this._error(I,Z),this.setParams({});return}this._error(I,Z)}_error(I,F){(I?p.reportExtraError:p.reportError)(this,this.def.error,F)}$dataError(){(0,p.reportError)(this,this.def.$dataError||p.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,p.resetErrorsCount)(this.gen,this.errsCount)}ok(I){this.allErrors||this.gen.if(I)}setParams(I,F){F?Object.assign(this.params,I):this.params=I}block$data(I,F,Z=c.nil){this.gen.block(()=>{this.check$data(I,Z),F()})}check$data(I=c.nil,F=c.nil){if(!this.$data)return;let{gen:Z,schemaCode:ee,schemaType:ce,def:ke}=this;Z.if((0,c.or)((0,c._)`${ee} === undefined`,F)),I!==c.nil&&Z.assign(I,!0),(ce.length||ke.validateSchema)&&(Z.elseIf(this.invalid$data()),this.$dataError(),I!==c.nil&&Z.assign(I,!1)),Z.else()}invalid$data(){let{gen:I,schemaCode:F,schemaType:Z,def:ee,it:ce}=this;return(0,c.or)(ke(),Ne());function ke(){if(Z.length){if(!(F instanceof c.Name))throw new Error("ajv implementation error");let Me=Array.isArray(Z)?Z:[Z];return(0,c._)`${(0,n.checkDataTypes)(Me,F,ce.opts.strictNumbers,n.DataType.Wrong)}`}return c.nil}function Ne(){if(ee.validateSchema){let Me=I.scopeValue("validate$data",{ref:ee.validateSchema});return(0,c._)`!${Me}(${F})`}return c.nil}}subschema(I,F){let Z=(0,o.getSubschema)(this.it,I);(0,o.extendSubschemaData)(Z,this.it,I),(0,o.extendSubschemaMode)(Z,I);let ee={...this.it,...Z,items:void 0,props:void 0};return b(ee,F),ee}mergeEvaluated(I,F){let{it:Z,gen:ee}=this;Z.opts.unevaluated&&(Z.props!==!0&&I.props!==void 0&&(Z.props=d.mergeEvaluated.props(ee,I.props,Z.props,F)),Z.items!==!0&&I.items!==void 0&&(Z.items=d.mergeEvaluated.items(ee,I.items,Z.items,F)))}mergeValidEvaluated(I,F){let{it:Z,gen:ee}=this;if(Z.opts.unevaluated&&(Z.props!==!0||Z.items!==!0))return ee.if(F,()=>this.mergeEvaluated(I,c.Name)),!0}}t.KeywordCxt=K;function J(C,I,F,Z){let ee=new K(C,F,I);"code"in F?F.code(ee,Z):ee.$data&&F.validate?(0,i.funcKeywordCode)(ee,F):"macro"in F?(0,i.macroKeywordCode)(ee,F):(F.compile||F.validate)&&(0,i.funcKeywordCode)(ee,F)}var de=/^\/(?:[^~]|~0|~1)*$/,se=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function me(C,{dataLevel:I,dataNames:F,dataPathArr:Z}){let ee,ce;if(C==="")return u.default.rootData;if(C[0]==="/"){if(!de.test(C))throw new Error(`Invalid JSON-pointer: ${C}`);ee=C,ce=u.default.rootData}else{let je=se.exec(C);if(!je)throw new Error(`Invalid JSON-pointer: ${C}`);let Re=+je[1];if(ee=je[2],ee==="#"){if(Re>=I)throw new Error(Me("property/index",Re));return Z[I-Re]}if(Re>I)throw new Error(Me("data",Re));if(ce=F[I-Re],!ee)return ce}let ke=ce,Ne=ee.split("/");for(let je of Ne)je&&(ce=(0,c._)`${ce}${(0,c.getProperty)((0,d.unescapeJsonPointer)(je))}`,ke=(0,c._)`${ke} && ${ce}`);return ke;function Me(je,Re){return`Cannot access ${je} ${Re} levels up, current level is ${I}`}}t.getData=me}),Km=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});class e extends Error{constructor(a){super("validation failed"),this.errors=a,this.ajv=this.validation=!0}}t.default=e}),Il=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ol();class r extends Error{constructor(n,s,i,o){super(o||`can't resolve reference ${i} from id ${s}`),this.missingRef=(0,e.resolveUrl)(n,s,i),this.missingSchema=(0,e.normalizeId)((0,e.getFullPath)(n,this.missingRef))}}t.default=r}),Xm=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.resolveSchema=t.getCompilingSchema=t.resolveRef=t.compileSchema=t.SchemaEnv=void 0;var e=ze(),r=Km(),a=Qn(),n=Ol(),s=tt(),i=Cl();class o{constructor(y){var g;this.refs={},this.dynamicAnchors={};let b;typeof y.schema=="object"&&(b=y.schema),this.schema=y.schema,this.schemaId=y.schemaId,this.root=y.root||this,this.baseId=(g=y.baseId)!==null&&g!==void 0?g:(0,n.normalizeId)(b?.[y.schemaId||"$id"]),this.schemaPath=y.schemaPath,this.localRefs=y.localRefs,this.meta=y.meta,this.$async=b?.$async,this.refs={}}}t.SchemaEnv=o;function c(h){let y=d.call(this,h);if(y)return y;let g=(0,n.getFullPath)(this.opts.uriResolver,h.root.baseId),{es5:b,lines:w}=this.opts.code,{ownProperties:S}=this.opts,E=new e.CodeGen(this.scope,{es5:b,lines:w,ownProperties:S}),T;h.$async&&(T=E.scopeValue("Error",{ref:r.default,code:(0,e._)`require("ajv/dist/runtime/validation_error").default`}));let R=E.scopeName("validate");h.validateName=R;let M={gen:E,allErrors:this.opts.allErrors,data:a.default.data,parentData:a.default.parentData,parentDataProperty:a.default.parentDataProperty,dataNames:[a.default.data],dataPathArr:[e.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:E.scopeValue("schema",this.opts.code.source===!0?{ref:h.schema,code:(0,e.stringify)(h.schema)}:{ref:h.schema}),validateName:R,ValidationError:T,schema:h.schema,schemaEnv:h,rootId:g,baseId:h.baseId||g,schemaPath:e.nil,errSchemaPath:h.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,e._)`""`,opts:this.opts,self:this},j;try{this._compilations.add(h),(0,i.validateFunctionCode)(M),E.optimize(this.opts.code.optimize);let q=E.toString();j=`${E.scopeRefs(a.default.scope)}return ${q}`,this.opts.code.process&&(j=this.opts.code.process(j,h));let N=new Function(`${a.default.self}`,`${a.default.scope}`,j)(this,this.scope.get());if(this.scope.value(R,{ref:N}),N.errors=null,N.schema=h.schema,N.schemaEnv=h,h.$async&&(N.$async=!0),this.opts.code.source===!0&&(N.source={validateName:R,validateCode:q,scopeValues:E._values}),this.opts.unevaluated){let{props:W,items:oe}=M;N.evaluated={props:W instanceof e.Name?void 0:W,items:oe instanceof e.Name?void 0:oe,dynamicProps:W instanceof e.Name,dynamicItems:oe instanceof e.Name},N.source&&(N.source.evaluated=(0,e.stringify)(N.evaluated))}return h.validate=N,h}catch(q){throw delete h.validate,delete h.validateName,j&&this.logger.error("Error compiling schema, function code:",j),q}finally{this._compilations.delete(h)}}t.compileSchema=c;function u(h,y,g){var b;g=(0,n.resolveUrl)(this.opts.uriResolver,y,g);let w=h.refs[g];if(w)return w;let S=f.call(this,h,g);if(S===void 0){let E=(b=h.localRefs)===null||b===void 0?void 0:b[g],{schemaId:T}=this.opts;E&&(S=new o({schema:E,schemaId:T,root:h,baseId:y}))}if(S!==void 0)return h.refs[g]=l.call(this,S)}t.resolveRef=u;function l(h){return(0,n.inlineRef)(h.schema,this.opts.inlineRefs)?h.schema:h.validate?h:c.call(this,h)}function d(h){for(let y of this._compilations)if(p(y,h))return y}t.getCompilingSchema=d;function p(h,y){return h.schema===y.schema&&h.root===y.root&&h.baseId===y.baseId}function f(h,y){let g;for(;typeof(g=this.refs[y])=="string";)y=g;return g||this.schemas[y]||v.call(this,h,y)}function v(h,y){let g=this.opts.uriResolver.parse(y),b=(0,n._getFullPath)(this.opts.uriResolver,g),w=(0,n.getFullPath)(this.opts.uriResolver,h.baseId,void 0);if(Object.keys(h.schema).length>0&&b===w)return m.call(this,g,h);let S=(0,n.normalizeId)(b),E=this.refs[S]||this.schemas[S];if(typeof E=="string"){let T=v.call(this,h,E);return typeof T?.schema!="object"?void 0:m.call(this,g,T)}if(typeof E?.schema=="object"){if(E.validate||c.call(this,E),S===(0,n.normalizeId)(y)){let{schema:T}=E,{schemaId:R}=this.opts,M=T[R];return M&&(w=(0,n.resolveUrl)(this.opts.uriResolver,w,M)),new o({schema:T,schemaId:R,root:h,baseId:w})}return m.call(this,g,E)}}t.resolveSchema=v;var _=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function m(h,{baseId:y,schema:g,root:b}){var w;if(((w=h.fragment)===null||w===void 0?void 0:w[0])!=="/")return;for(let T of h.fragment.slice(1).split("/")){if(typeof g=="boolean")return;let R=g[(0,s.unescapeFragment)(T)];if(R===void 0)return;g=R;let M=typeof g=="object"&&g[this.opts.schemaId];!_.has(T)&&M&&(y=(0,n.resolveUrl)(this.opts.uriResolver,y,M))}let S;if(typeof g!="boolean"&&g.$ref&&!(0,s.schemaHasRulesButRef)(g,this.RULES)){let T=(0,n.resolveUrl)(this.opts.uriResolver,y,g.$ref);S=v.call(this,b,T)}let{schemaId:E}=this.opts;if(S=S||new o({schema:g,schemaId:E,root:b,baseId:y}),S.schema!==S.root.schema)return S}}),e6=Q((t,e)=>{e.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}}),t6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=PT();e.code='require("ajv/dist/runtime/uri").default',t.default=e}),r6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;var e=Cl();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return e.KeywordCxt}});var r=ze();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return r._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return r.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return r.CodeGen}});var a=Km(),n=Il(),s=IT(),i=Xm(),o=ze(),c=Ol(),u=gl(),l=tt(),d=e6(),p=t6(),f=(U,$)=>new RegExp(U,$);f.code="new RegExp";var v=["removeAdditional","useDefaults","coerceTypes"],_=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),m={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},h={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},y=200;function g(U){var $,z,A,x,k,D,K,J,de,se,me,C,I,F,Z,ee,ce,ke,Ne,Me,je,Re,vt,Ue,yr;let Zt=U.strict,Nt=($=U.code)===null||$===void 0?void 0:$.optimize,Lr=Nt===!0||Nt===void 0?1:Nt||0,On=(A=(z=U.code)===null||z===void 0?void 0:z.regExp)!==null&&A!==void 0?A:f,rs=(x=U.uriResolver)!==null&&x!==void 0?x:p.default;return{strictSchema:(D=(k=U.strictSchema)!==null&&k!==void 0?k:Zt)!==null&&D!==void 0?D:!0,strictNumbers:(J=(K=U.strictNumbers)!==null&&K!==void 0?K:Zt)!==null&&J!==void 0?J:!0,strictTypes:(se=(de=U.strictTypes)!==null&&de!==void 0?de:Zt)!==null&&se!==void 0?se:"log",strictTuples:(C=(me=U.strictTuples)!==null&&me!==void 0?me:Zt)!==null&&C!==void 0?C:"log",strictRequired:(F=(I=U.strictRequired)!==null&&I!==void 0?I:Zt)!==null&&F!==void 0?F:!1,code:U.code?{...U.code,optimize:Lr,regExp:On}:{optimize:Lr,regExp:On},loopRequired:(Z=U.loopRequired)!==null&&Z!==void 0?Z:y,loopEnum:(ee=U.loopEnum)!==null&&ee!==void 0?ee:y,meta:(ce=U.meta)!==null&&ce!==void 0?ce:!0,messages:(ke=U.messages)!==null&&ke!==void 0?ke:!0,inlineRefs:(Ne=U.inlineRefs)!==null&&Ne!==void 0?Ne:!0,schemaId:(Me=U.schemaId)!==null&&Me!==void 0?Me:"$id",addUsedSchema:(je=U.addUsedSchema)!==null&&je!==void 0?je:!0,validateSchema:(Re=U.validateSchema)!==null&&Re!==void 0?Re:!0,validateFormats:(vt=U.validateFormats)!==null&&vt!==void 0?vt:!0,unicodeRegExp:(Ue=U.unicodeRegExp)!==null&&Ue!==void 0?Ue:!0,int32range:(yr=U.int32range)!==null&&yr!==void 0?yr:!0,uriResolver:rs}}class b{constructor($={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,$=this.opts={...$,...g($)};let{es5:z,lines:A}=this.opts.code;this.scope=new o.ValueScope({scope:{},prefixes:_,es5:z,lines:A}),this.logger=q($.logger);let x=$.validateFormats;$.validateFormats=!1,this.RULES=(0,s.getRules)(),w.call(this,m,$,"NOT SUPPORTED"),w.call(this,h,$,"DEPRECATED","warn"),this._metaOpts=M.call(this),$.formats&&T.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),$.keywords&&R.call(this,$.keywords),typeof $.meta=="object"&&this.addMetaSchema($.meta),E.call(this),$.validateFormats=x}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:$,meta:z,schemaId:A}=this.opts,x=d;A==="id"&&(x={...d},x.id=x.$id,delete x.$id),z&&$&&this.addMetaSchema(x,x[A],!1)}defaultMeta(){let{meta:$,schemaId:z}=this.opts;return this.opts.defaultMeta=typeof $=="object"?$[z]||$:void 0}validate($,z){let A;if(typeof $=="string"){if(A=this.getSchema($),!A)throw new Error(`no schema with key or ref "${$}"`)}else A=this.compile($);let x=A(z);return"$async"in A||(this.errors=A.errors),x}compile($,z){let A=this._addSchema($,z);return A.validate||this._compileSchemaEnv(A)}compileAsync($,z){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:A}=this.opts;return x.call(this,$,z);async function x(se,me){await k.call(this,se.$schema);let C=this._addSchema(se,me);return C.validate||D.call(this,C)}async function k(se){se&&!this.getSchema(se)&&await x.call(this,{$ref:se},!0)}async function D(se){try{return this._compileSchemaEnv(se)}catch(me){if(!(me instanceof n.default))throw me;return K.call(this,me),await J.call(this,me.missingSchema),D.call(this,se)}}function K({missingSchema:se,missingRef:me}){if(this.refs[se])throw new Error(`AnySchema ${se} is loaded but ${me} cannot be resolved`)}async function J(se){let me=await de.call(this,se);this.refs[se]||await k.call(this,me.$schema),this.refs[se]||this.addSchema(me,se,z)}async function de(se){let me=this._loading[se];if(me)return me;try{return await(this._loading[se]=A(se))}finally{delete this._loading[se]}}}addSchema($,z,A,x=this.opts.validateSchema){if(Array.isArray($)){for(let D of $)this.addSchema(D,void 0,A,x);return this}let k;if(typeof $=="object"){let{schemaId:D}=this.opts;if(k=$[D],k!==void 0&&typeof k!="string")throw new Error(`schema ${D} must be string`)}return z=(0,c.normalizeId)(z||k),this._checkUnique(z),this.schemas[z]=this._addSchema($,A,z,x,!0),this}addMetaSchema($,z,A=this.opts.validateSchema){return this.addSchema($,z,!0,A),this}validateSchema($,z){if(typeof $=="boolean")return!0;let A;if(A=$.$schema,A!==void 0&&typeof A!="string")throw new Error("$schema must be a string");if(A=A||this.opts.defaultMeta||this.defaultMeta(),!A)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let x=this.validate(A,$);if(!x&&z){let k="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(k);else throw new Error(k)}return x}getSchema($){let z;for(;typeof(z=S.call(this,$))=="string";)$=z;if(z===void 0){let{schemaId:A}=this.opts,x=new i.SchemaEnv({schema:{},schemaId:A});if(z=i.resolveSchema.call(this,x,$),!z)return;this.refs[$]=z}return z.validate||this._compileSchemaEnv(z)}removeSchema($){if($ instanceof RegExp)return this._removeAllSchemas(this.schemas,$),this._removeAllSchemas(this.refs,$),this;switch(typeof $){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let z=S.call(this,$);return typeof z=="object"&&this._cache.delete(z.schema),delete this.schemas[$],delete this.refs[$],this}case"object":{let z=$;this._cache.delete(z);let A=$[this.opts.schemaId];return A&&(A=(0,c.normalizeId)(A),delete this.schemas[A],delete this.refs[A]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary($){for(let z of $)this.addKeyword(z);return this}addKeyword($,z){let A;if(typeof $=="string")A=$,typeof z=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),z.keyword=A);else if(typeof $=="object"&&z===void 0){if(z=$,A=z.keyword,Array.isArray(A)&&!A.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(N.call(this,A,z),!z)return(0,l.eachItem)(A,k=>W.call(this,k)),this;he.call(this,z);let x={...z,type:(0,u.getJSONTypes)(z.type),schemaType:(0,u.getJSONTypes)(z.schemaType)};return(0,l.eachItem)(A,x.type.length===0?k=>W.call(this,k,x):k=>x.type.forEach(D=>W.call(this,k,x,D))),this}getKeyword($){let z=this.RULES.all[$];return typeof z=="object"?z.definition:!!z}removeKeyword($){let{RULES:z}=this;delete z.keywords[$],delete z.all[$];for(let A of z.rules){let x=A.rules.findIndex(k=>k.keyword===$);x>=0&&A.rules.splice(x,1)}return this}addFormat($,z){return typeof z=="string"&&(z=new RegExp(z)),this.formats[$]=z,this}errorsText($=this.errors,{separator:z=", ",dataVar:A="data"}={}){return!$||$.length===0?"No errors":$.map(x=>`${A}${x.instancePath} ${x.message}`).reduce((x,k)=>x+z+k)}$dataMetaSchema($,z){let A=this.RULES.all;$=JSON.parse(JSON.stringify($));for(let x of z){let k=x.split("/").slice(1),D=$;for(let K of k)D=D[K];for(let K in A){let J=A[K];if(typeof J!="object")continue;let{$data:de}=J.definition,se=D[K];de&&se&&(D[K]=re(se))}}return $}_removeAllSchemas($,z){for(let A in $){let x=$[A];(!z||z.test(A))&&(typeof x=="string"?delete $[A]:x&&!x.meta&&(this._cache.delete(x.schema),delete $[A]))}}_addSchema($,z,A,x=this.opts.validateSchema,k=this.opts.addUsedSchema){let D,{schemaId:K}=this.opts;if(typeof $=="object")D=$[K];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof $!="boolean")throw new Error("schema must be object or boolean")}let J=this._cache.get($);if(J!==void 0)return J;A=(0,c.normalizeId)(D||A);let de=c.getSchemaRefs.call(this,$,A);return J=new i.SchemaEnv({schema:$,schemaId:K,meta:z,baseId:A,localRefs:de}),this._cache.set(J.schema,J),k&&!A.startsWith("#")&&(A&&this._checkUnique(A),this.refs[A]=J),x&&this.validateSchema($,!0),J}_checkUnique($){if(this.schemas[$]||this.refs[$])throw new Error(`schema with key or id "${$}" already exists`)}_compileSchemaEnv($){if($.meta?this._compileMetaSchema($):i.compileSchema.call(this,$),!$.validate)throw new Error("ajv implementation error");return $.validate}_compileMetaSchema($){let z=this.opts;this.opts=this._metaOpts;try{i.compileSchema.call(this,$)}finally{this.opts=z}}}b.ValidationError=a.default,b.MissingRefError=n.default,t.default=b;function w(U,$,z,A="error"){for(let x in U){let k=x;k in $&&this.logger[A](`${z}: option ${x}. ${U[k]}`)}}function S(U){return U=(0,c.normalizeId)(U),this.schemas[U]||this.refs[U]}function E(){let U=this.opts.schemas;if(U)if(Array.isArray(U))this.addSchema(U);else for(let $ in U)this.addSchema(U[$],$)}function T(){for(let U in this.opts.formats){let $=this.opts.formats[U];$&&this.addFormat(U,$)}}function R(U){if(Array.isArray(U)){this.addVocabulary(U);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let $ in U){let z=U[$];z.keyword||(z.keyword=$),this.addKeyword(z)}}function M(){let U={...this.opts};for(let $ of v)delete U[$];return U}var j={log(){},warn(){},error(){}};function q(U){if(U===!1)return j;if(U===void 0)return console;if(U.log&&U.warn&&U.error)return U;throw new Error("logger must implement log, warn and error methods")}var H=/^[a-z_$][a-z0-9_$:-]*$/i;function N(U,$){let{RULES:z}=this;if((0,l.eachItem)(U,A=>{if(z.keywords[A])throw new Error(`Keyword ${A} is already defined`);if(!H.test(A))throw new Error(`Keyword ${A} has invalid name`)}),!!$&&$.$data&&!("code"in $||"validate"in $))throw new Error('$data keyword must have "code" or "validate" function')}function W(U,$,z){var A;let x=$?.post;if(z&&x)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:k}=this,D=x?k.post:k.rules.find(({type:J})=>J===z);if(D||(D={type:z,rules:[]},k.rules.push(D)),k.keywords[U]=!0,!$)return;let K={keyword:U,definition:{...$,type:(0,u.getJSONTypes)($.type),schemaType:(0,u.getJSONTypes)($.schemaType)}};$.before?oe.call(this,D,K,$.before):D.rules.push(K),k.all[U]=K,(A=$.implements)===null||A===void 0||A.forEach(J=>this.addKeyword(J))}function oe(U,$,z){let A=U.rules.findIndex(x=>x.keyword===z);A>=0?U.rules.splice(A,0,$):(U.rules.push($),this.logger.warn(`rule ${z} is not defined`))}function he(U){let{metaSchema:$}=U;$!==void 0&&(U.$data&&this.opts.$data&&($=re($)),U.validateSchema=this.compile($,!0))}var ae={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function re(U){return{anyOf:[U,ae]}}}),n6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};t.default=e}),a6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.callRef=t.getValidate=void 0;var e=Il(),r=Zr(),a=ze(),n=Qn(),s=Xm(),i=tt(),o={keyword:"$ref",schemaType:"string",code(l){let{gen:d,schema:p,it:f}=l,{baseId:v,schemaEnv:_,validateName:m,opts:h,self:y}=f,{root:g}=_;if((p==="#"||p==="#/")&&v===g.baseId)return w();let b=s.resolveRef.call(y,g,v,p);if(b===void 0)throw new e.default(f.opts.uriResolver,v,p);if(b instanceof s.SchemaEnv)return S(b);return E(b);function w(){if(_===g)return u(l,m,_,_.$async);let T=d.scopeValue("root",{ref:g});return u(l,(0,a._)`${T}.validate`,g,g.$async)}function S(T){let R=c(l,T);u(l,R,T,T.$async)}function E(T){let R=d.scopeValue("schema",h.code.source===!0?{ref:T,code:(0,a.stringify)(T)}:{ref:T}),M=d.name("valid"),j=l.subschema({schema:T,dataTypes:[],schemaPath:a.nil,topSchemaRef:R,errSchemaPath:p},M);l.mergeEvaluated(j),l.ok(M)}}};function c(l,d){let{gen:p}=l;return d.validate?p.scopeValue("validate",{ref:d.validate}):(0,a._)`${p.scopeValue("wrapper",{ref:d})}.validate`}t.getValidate=c;function u(l,d,p,f){let{gen:v,it:_}=l,{allErrors:m,schemaEnv:h,opts:y}=_,g=y.passContext?n.default.this:a.nil;f?b():w();function b(){if(!h.$async)throw new Error("async schema referenced by sync schema");let T=v.let("valid");v.try(()=>{v.code((0,a._)`await ${(0,r.callValidateCode)(l,d,g)}`),E(d),m||v.assign(T,!0)},R=>{v.if((0,a._)`!(${R} instanceof ${_.ValidationError})`,()=>v.throw(R)),S(R),m||v.assign(T,!1)}),l.ok(T)}function w(){l.result((0,r.callValidateCode)(l,d,g),()=>E(d),()=>S(d))}function S(T){let R=(0,a._)`${T}.errors`;v.assign(n.default.vErrors,(0,a._)`${n.default.vErrors} === null ? ${R} : ${n.default.vErrors}.concat(${R})`),v.assign(n.default.errors,(0,a._)`${n.default.vErrors}.length`)}function E(T){var R;if(!_.opts.unevaluated)return;let M=(R=p?.validate)===null||R===void 0?void 0:R.evaluated;if(_.props!==!0)if(M&&!M.dynamicProps)M.props!==void 0&&(_.props=i.mergeEvaluated.props(v,M.props,_.props));else{let j=v.var("props",(0,a._)`${T}.evaluated.props`);_.props=i.mergeEvaluated.props(v,j,_.props,a.Name)}if(_.items!==!0)if(M&&!M.dynamicItems)M.items!==void 0&&(_.items=i.mergeEvaluated.items(v,M.items,_.items));else{let j=v.var("items",(0,a._)`${T}.evaluated.items`);_.items=i.mergeEvaluated.items(v,j,_.items,a.Name)}}}t.callRef=u,t.default=o}),s6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=n6(),r=a6(),a=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",e.default,r.default];t.default=a}),i6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ze(),r=e.operators,a={maximum:{okStr:"<=",ok:r.LTE,fail:r.GT},minimum:{okStr:">=",ok:r.GTE,fail:r.LT},exclusiveMaximum:{okStr:"<",ok:r.LT,fail:r.GTE},exclusiveMinimum:{okStr:">",ok:r.GT,fail:r.LTE}},n={message:({keyword:i,schemaCode:o})=>(0,e.str)`must be ${a[i].okStr} ${o}`,params:({keyword:i,schemaCode:o})=>(0,e._)`{comparison: ${a[i].okStr}, limit: ${o}}`},s={keyword:Object.keys(a),type:"number",schemaType:"number",$data:!0,error:n,code(i){let{keyword:o,data:c,schemaCode:u}=i;i.fail$data((0,e._)`${c} ${a[o].fail} ${u} || isNaN(${c})`)}};t.default=s}),o6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ze(),r={message:({schemaCode:n})=>(0,e.str)`must be multiple of ${n}`,params:({schemaCode:n})=>(0,e._)`{multipleOf: ${n}}`},a={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:r,code(n){let{gen:s,data:i,schemaCode:o,it:c}=n,u=c.opts.multipleOfPrecision,l=s.let("res"),d=u?(0,e._)`Math.abs(Math.round(${l}) - ${l}) > 1e-${u}`:(0,e._)`${l} !== parseInt(${l})`;n.fail$data((0,e._)`(${o} === 0 || (${l} = ${i}/${o}, ${d}))`)}};t.default=a}),c6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});function e(r){let a=r.length,n=0,s=0,i;for(;s=55296&&i<=56319&&s{Object.defineProperty(t,"__esModule",{value:!0});var e=ze(),r=tt(),a=c6(),n={message({keyword:i,schemaCode:o}){let c=i==="maxLength"?"more":"fewer";return(0,e.str)`must NOT have ${c} than ${o} characters`},params:({schemaCode:i})=>(0,e._)`{limit: ${i}}`},s={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:n,code(i){let{keyword:o,data:c,schemaCode:u,it:l}=i,d=o==="maxLength"?e.operators.GT:e.operators.LT,p=l.opts.unicode===!1?(0,e._)`${c}.length`:(0,e._)`${(0,r.useFunc)(i.gen,a.default)}(${c})`;i.fail$data((0,e._)`${p} ${d} ${u}`)}};t.default=s}),l6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Zr(),r=ze(),a={message:({schemaCode:s})=>(0,r.str)`must match pattern "${s}"`,params:({schemaCode:s})=>(0,r._)`{pattern: ${s}}`},n={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:a,code(s){let{data:i,$data:o,schema:c,schemaCode:u,it:l}=s,d=l.opts.unicodeRegExp?"u":"",p=o?(0,r._)`(new RegExp(${u}, ${d}))`:(0,e.usePattern)(s,c);s.fail$data((0,r._)`!${p}.test(${i})`)}};t.default=n}),d6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ze(),r={message({keyword:n,schemaCode:s}){let i=n==="maxProperties"?"more":"fewer";return(0,e.str)`must NOT have ${i} than ${s} properties`},params:({schemaCode:n})=>(0,e._)`{limit: ${n}}`},a={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:r,code(n){let{keyword:s,data:i,schemaCode:o}=n,c=s==="maxProperties"?e.operators.GT:e.operators.LT;n.fail$data((0,e._)`Object.keys(${i}).length ${c} ${o}`)}};t.default=a}),p6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Zr(),r=ze(),a=tt(),n={message:({params:{missingProperty:i}})=>(0,r.str)`must have required property '${i}'`,params:({params:{missingProperty:i}})=>(0,r._)`{missingProperty: ${i}}`},s={keyword:"required",type:"object",schemaType:"array",$data:!0,error:n,code(i){let{gen:o,schema:c,schemaCode:u,data:l,$data:d,it:p}=i,{opts:f}=p;if(!d&&c.length===0)return;let v=c.length>=f.loopRequired;if(p.allErrors?_():m(),f.strictRequired){let g=i.parentSchema.properties,{definedProperties:b}=i.it;for(let w of c)if(g?.[w]===void 0&&!b.has(w)){let S=p.schemaEnv.baseId+p.errSchemaPath,E=`required property "${w}" is not defined at "${S}" (strictRequired)`;(0,a.checkStrictMode)(p,E,p.opts.strictRequired)}}function _(){if(v||d)i.block$data(r.nil,h);else for(let g of c)(0,e.checkReportMissingProp)(i,g)}function m(){let g=o.let("missing");if(v||d){let b=o.let("valid",!0);i.block$data(b,()=>y(g,b)),i.ok(b)}else o.if((0,e.checkMissingProp)(i,c,g)),(0,e.reportMissingProp)(i,g),o.else()}function h(){o.forOf("prop",u,g=>{i.setParams({missingProperty:g}),o.if((0,e.noPropertyInData)(o,l,g,f.ownProperties),()=>i.error())})}function y(g,b){i.setParams({missingProperty:g}),o.forOf(g,u,()=>{o.assign(b,(0,e.propertyInData)(o,l,g,f.ownProperties)),o.if((0,r.not)(b),()=>{i.error(),o.break()})},r.nil)}}};t.default=s}),f6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ze(),r={message({keyword:n,schemaCode:s}){let i=n==="maxItems"?"more":"fewer";return(0,e.str)`must NOT have ${i} than ${s} items`},params:({schemaCode:n})=>(0,e._)`{limit: ${n}}`},a={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:r,code(n){let{keyword:s,data:i,schemaCode:o}=n,c=s==="maxItems"?e.operators.GT:e.operators.LT;n.fail$data((0,e._)`${i}.length ${c} ${o}`)}};t.default=a}),Jm=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Tl();e.code='require("ajv/dist/runtime/equal").default',t.default=e}),m6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=gl(),r=ze(),a=tt(),n=Jm(),s={message:({params:{i:o,j:c}})=>(0,r.str)`must NOT have duplicate items (items ## ${c} and ${o} are identical)`,params:({params:{i:o,j:c}})=>(0,r._)`{i: ${o}, j: ${c}}`},i={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:s,code(o){let{gen:c,data:u,$data:l,schema:d,parentSchema:p,schemaCode:f,it:v}=o;if(!l&&!d)return;let _=c.let("valid"),m=p.items?(0,e.getSchemaTypes)(p.items):[];o.block$data(_,h,(0,r._)`${f} === false`),o.ok(_);function h(){let w=c.let("i",(0,r._)`${u}.length`),S=c.let("j");o.setParams({i:w,j:S}),c.assign(_,!0),c.if((0,r._)`${w} > 1`,()=>(y()?g:b)(w,S))}function y(){return m.length>0&&!m.some(w=>w==="object"||w==="array")}function g(w,S){let E=c.name("item"),T=(0,e.checkDataTypes)(m,E,v.opts.strictNumbers,e.DataType.Wrong),R=c.const("indices",(0,r._)`{}`);c.for((0,r._)`;${w}--;`,()=>{c.let(E,(0,r._)`${u}[${w}]`),c.if(T,(0,r._)`continue`),m.length>1&&c.if((0,r._)`typeof ${E} == "string"`,(0,r._)`${E} += "_"`),c.if((0,r._)`typeof ${R}[${E}] == "number"`,()=>{c.assign(S,(0,r._)`${R}[${E}]`),o.error(),c.assign(_,!1).break()}).code((0,r._)`${R}[${E}] = ${w}`)})}function b(w,S){let E=(0,a.useFunc)(c,n.default),T=c.name("outer");c.label(T).for((0,r._)`;${w}--;`,()=>c.for((0,r._)`${S} = ${w}; ${S}--;`,()=>c.if((0,r._)`${E}(${u}[${w}], ${u}[${S}])`,()=>{o.error(),c.assign(_,!1).break(T)})))}}};t.default=i}),h6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ze(),r=tt(),a=Jm(),n={message:"must be equal to constant",params:({schemaCode:i})=>(0,e._)`{allowedValue: ${i}}`},s={keyword:"const",$data:!0,error:n,code(i){let{gen:o,data:c,$data:u,schemaCode:l,schema:d}=i;u||d&&typeof d=="object"?i.fail$data((0,e._)`!${(0,r.useFunc)(o,a.default)}(${c}, ${l})`):i.fail((0,e._)`${d} !== ${c}`)}};t.default=s}),v6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ze(),r=tt(),a=Jm(),n={message:"must be equal to one of the allowed values",params:({schemaCode:i})=>(0,e._)`{allowedValues: ${i}}`},s={keyword:"enum",schemaType:"array",$data:!0,error:n,code(i){let{gen:o,data:c,$data:u,schema:l,schemaCode:d,it:p}=i;if(!u&&l.length===0)throw new Error("enum must have non-empty array");let f=l.length>=p.opts.loopEnum,v,_=()=>v??(v=(0,r.useFunc)(o,a.default)),m;if(f||u)m=o.let("valid"),i.block$data(m,h);else{if(!Array.isArray(l))throw new Error("ajv implementation error");let g=o.const("vSchema",d);m=(0,e.or)(...l.map((b,w)=>y(g,w)))}i.pass(m);function h(){o.assign(m,!1),o.forOf("v",d,g=>o.if((0,e._)`${_()}(${c}, ${g})`,()=>o.assign(m,!0).break()))}function y(g,b){let w=l[b];return typeof w=="object"&&w!==null?(0,e._)`${_()}(${c}, ${g}[${b}])`:(0,e._)`${c} === ${w}`}}};t.default=s}),g6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=i6(),r=o6(),a=u6(),n=l6(),s=d6(),i=p6(),o=f6(),c=m6(),u=h6(),l=v6(),d=[e.default,r.default,a.default,n.default,s.default,i.default,o.default,c.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},u.default,l.default];t.default=d}),NT=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateAdditionalItems=void 0;var e=ze(),r=tt(),a={message:({params:{len:i}})=>(0,e.str)`must NOT have more than ${i} items`,params:({params:{len:i}})=>(0,e._)`{limit: ${i}}`},n={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:a,code(i){let{parentSchema:o,it:c}=i,{items:u}=o;if(!Array.isArray(u)){(0,r.checkStrictMode)(c,'"additionalItems" is ignored when "items" is not an array of schemas');return}s(i,u)}};function s(i,o){let{gen:c,schema:u,data:l,keyword:d,it:p}=i;p.items=!0;let f=c.const("len",(0,e._)`${l}.length`);if(u===!1)i.setParams({len:o.length}),i.pass((0,e._)`${f} <= ${o.length}`);else if(typeof u=="object"&&!(0,r.alwaysValidSchema)(p,u)){let _=c.var("valid",(0,e._)`${f} <= ${o.length}`);c.if((0,e.not)(_),()=>v(_)),i.ok(_)}function v(_){c.forRange("i",o.length,f,m=>{i.subschema({keyword:d,dataProp:m,dataPropType:r.Type.Num},_),p.allErrors||c.if((0,e.not)(_),()=>c.break())})}}t.validateAdditionalItems=s,t.default=n}),MT=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateTuple=void 0;var e=ze(),r=tt(),a=Zr(),n={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(i){let{schema:o,it:c}=i;if(Array.isArray(o))return s(i,"additionalItems",o);c.items=!0,!(0,r.alwaysValidSchema)(c,o)&&i.ok((0,a.validateArray)(i))}};function s(i,o,c=i.schema){let{gen:u,parentSchema:l,data:d,keyword:p,it:f}=i;m(l),f.opts.unevaluated&&c.length&&f.items!==!0&&(f.items=r.mergeEvaluated.items(u,c.length,f.items));let v=u.name("valid"),_=u.const("len",(0,e._)`${d}.length`);c.forEach((h,y)=>{(0,r.alwaysValidSchema)(f,h)||(u.if((0,e._)`${_} > ${y}`,()=>i.subschema({keyword:p,schemaProp:y,dataProp:y},v)),i.ok(v))});function m(h){let{opts:y,errSchemaPath:g}=f,b=c.length,w=b===h.minItems&&(b===h.maxItems||h[o]===!1);if(y.strictTuples&&!w){let S=`"${p}" is ${b}-tuple, but minItems or maxItems/${o} are not specified or different at path "${g}"`;(0,r.checkStrictMode)(f,S,y.strictTuples)}}}t.validateTuple=s,t.default=n}),y6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=MT(),r={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:a=>(0,e.validateTuple)(a,"items")};t.default=r}),_6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ze(),r=tt(),a=Zr(),n=NT(),s={message:({params:{len:o}})=>(0,e.str)`must NOT have more than ${o} items`,params:({params:{len:o}})=>(0,e._)`{limit: ${o}}`},i={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:s,code(o){let{schema:c,parentSchema:u,it:l}=o,{prefixItems:d}=u;l.items=!0,!(0,r.alwaysValidSchema)(l,c)&&(d?(0,n.validateAdditionalItems)(o,d):o.ok((0,a.validateArray)(o)))}};t.default=i}),b6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ze(),r=tt(),a={message:({params:{min:s,max:i}})=>i===void 0?(0,e.str)`must contain at least ${s} valid item(s)`:(0,e.str)`must contain at least ${s} and no more than ${i} valid item(s)`,params:({params:{min:s,max:i}})=>i===void 0?(0,e._)`{minContains: ${s}}`:(0,e._)`{minContains: ${s}, maxContains: ${i}}`},n={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:a,code(s){let{gen:i,schema:o,parentSchema:c,data:u,it:l}=s,d,p,{minContains:f,maxContains:v}=c;l.opts.next?(d=f===void 0?1:f,p=v):d=1;let _=i.const("len",(0,e._)`${u}.length`);if(s.setParams({min:d,max:p}),p===void 0&&d===0){(0,r.checkStrictMode)(l,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(p!==void 0&&d>p){(0,r.checkStrictMode)(l,'"minContains" > "maxContains" is always invalid'),s.fail();return}if((0,r.alwaysValidSchema)(l,o)){let b=(0,e._)`${_} >= ${d}`;p!==void 0&&(b=(0,e._)`${b} && ${_} <= ${p}`),s.pass(b);return}l.items=!0;let m=i.name("valid");p===void 0&&d===1?y(m,()=>i.if(m,()=>i.break())):d===0?(i.let(m,!0),p!==void 0&&i.if((0,e._)`${u}.length > 0`,h)):(i.let(m,!1),h()),s.result(m,()=>s.reset());function h(){let b=i.name("_valid"),w=i.let("count",0);y(b,()=>i.if(b,()=>g(w)))}function y(b,w){i.forRange("i",0,_,S=>{s.subschema({keyword:"contains",dataProp:S,dataPropType:r.Type.Num,compositeRule:!0},b),w()})}function g(b){i.code((0,e._)`${b}++`),p===void 0?i.if((0,e._)`${b} >= ${d}`,()=>i.assign(m,!0).break()):(i.if((0,e._)`${b} > ${p}`,()=>i.assign(m,!1).break()),d===1?i.assign(m,!0):i.if((0,e._)`${b} >= ${d}`,()=>i.assign(m,!0)))}}};t.default=n}),S6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateSchemaDeps=t.validatePropertyDeps=t.error=void 0;var e=ze(),r=tt(),a=Zr();t.error={message:({params:{property:c,depsCount:u,deps:l}})=>{let d=u===1?"property":"properties";return(0,e.str)`must have ${d} ${l} when property ${c} is present`},params:({params:{property:c,depsCount:u,deps:l,missingProperty:d}})=>(0,e._)`{property: ${c}, + deps: ${l}}`};var i={keyword:"dependencies",type:"object",schemaType:"object",error:t.error,code(c){let[u,l]=a(c);o(c,u),s(c,l)}};function a({schema:c}){let u={},l={};for(let d in c){if(d==="__proto__")continue;let p=Array.isArray(c[d])?u:l;p[d]=c[d]}return[u,l]}function o(c,u=c.schema){let{gen:l,data:d,it:p}=c;if(Object.keys(u).length===0)return;let f=l.let("missing");for(let h in u){let _=u[h];if(_.length===0)continue;let y=(0,n.propertyInData)(l,d,h,p.opts.ownProperties);c.setParams({property:h,depsCount:_.length,deps:_.join(", ")}),p.allErrors?l.if(y,()=>{for(let m of _)(0,n.checkReportMissingProp)(c,m)}):(l.if((0,e._)`${y} && (${(0,n.checkMissingProp)(c,_,f)})`),(0,n.reportMissingProp)(c,f),l.else())}}t.validatePropertyDeps=o;function s(c,u=c.schema){let{gen:l,data:d,keyword:p,it:f}=c,h=l.name("valid");for(let _ in u)(0,r.alwaysValidSchema)(f,u[_])||(l.if((0,n.propertyInData)(l,d,_,f.opts.ownProperties),()=>{let y=c.subschema({keyword:p,schemaProp:_},h);c.mergeValidEvaluated(y,h)},()=>l.var(h,!0)),c.ok(h))}t.validateSchemaDeps=s,t.default=i}),kne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r=ut(),n={message:"property name must be valid",params:({params:a})=>(0,e._)`{propertyName: ${a.propertyName}}`},i={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:n,code(a){let{gen:o,schema:s,data:c,it:u}=a;if((0,r.alwaysValidSchema)(u,s))return;let l=o.name("valid");o.forIn("key",c,d=>{a.setParams({propertyName:d}),a.subschema({keyword:"propertyNames",data:d,dataTypes:["string"],propertyName:d,compositeRule:!0},l),o.if((0,e.not)(l),()=>{a.error(!0),u.allErrors||o.break()})}),a.ok(l)}};t.default=i}),a2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Jn(),r=Xe(),n=wa(),i=ut(),a={message:"must NOT have additional properties",params:({params:s})=>(0,r._)`{additionalProperty: ${s.additionalProperty}}`},o={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:a,code(s){let{gen:c,schema:u,parentSchema:l,data:d,errsCount:p,it:f}=s;if(!p)throw new Error("ajv implementation error");let{allErrors:h,opts:_}=f;if(f.props=!0,_.removeAdditional!=="all"&&(0,i.alwaysValidSchema)(f,u))return;let y=(0,e.allSchemaProperties)(l.properties),m=(0,e.allSchemaProperties)(l.patternProperties);v(),s.ok((0,r._)`${p} === ${n.default.errors}`);function v(){c.forIn("key",d,w=>{!y.length&&!m.length?S(w):c.if(g(w),()=>S(w))})}function g(w){let E;if(y.length>8){let R=(0,i.schemaRefOrVal)(f,l.properties,"properties");E=(0,e.isOwnProperty)(c,R,w)}else y.length?E=(0,r.or)(...y.map(R=>(0,r._)`${w} === ${R}`)):E=r.nil;return m.length&&(E=(0,r.or)(E,...m.map(R=>(0,r._)`${(0,e.usePattern)(s,R)}.test(${w})`))),(0,r.not)(E)}function b(w){c.code((0,r._)`delete ${d}[${w}]`)}function S(w){if(_.removeAdditional==="all"||_.removeAdditional&&u===!1){b(w);return}if(u===!1){s.setParams({additionalProperty:w}),s.error(),h||c.break();return}if(typeof u=="object"&&!(0,i.alwaysValidSchema)(f,u)){let E=c.name("valid");_.removeAdditional==="failing"?(x(w,E,!1),c.if((0,r.not)(E),()=>{s.reset(),b(w)})):(x(w,E),h||c.if((0,r.not)(E),()=>c.break()))}}function x(w,E,R){let A={keyword:"additionalProperties",dataProp:w,dataPropType:i.Type.Str};R===!1&&Object.assign(A,{compositeRule:!0,createErrors:!1,allErrors:!1}),s.subschema(A,E)}}};t.default=o}),Tne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=zh(),r=Jn(),n=ut(),i=a2(),a={keyword:"properties",type:"object",schemaType:"object",code(o){let{gen:s,schema:c,parentSchema:u,data:l,it:d}=o;d.opts.removeAdditional==="all"&&u.additionalProperties===void 0&&i.default.code(new e.KeywordCxt(d,i.default,"additionalProperties"));let p=(0,r.allSchemaProperties)(c);for(let m of p)d.definedProperties.add(m);d.opts.unevaluated&&p.length&&d.props!==!0&&(d.props=n.mergeEvaluated.props(s,(0,n.toHash)(p),d.props));let f=p.filter(m=>!(0,n.alwaysValidSchema)(d,c[m]));if(f.length===0)return;let h=s.name("valid");for(let m of f)_(m)?y(m):(s.if((0,r.propertyInData)(s,l,m,d.opts.ownProperties)),y(m),d.allErrors||s.else().var(h,!0),s.endIf()),o.it.definedProperties.add(m),o.ok(h);function _(m){return d.opts.useDefaults&&!d.compositeRule&&c[m].default!==void 0}function y(m){o.subschema({keyword:"properties",schemaProp:m,dataProp:m},h)}}};t.default=a}),Ine=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Jn(),r=Xe(),n=ut(),i=ut(),a={keyword:"patternProperties",type:"object",schemaType:"object",code(o){let{gen:s,schema:c,data:u,parentSchema:l,it:d}=o,{opts:p}=d,f=(0,e.allSchemaProperties)(c),h=f.filter(S=>(0,n.alwaysValidSchema)(d,c[S]));if(f.length===0||h.length===f.length&&(!d.opts.unevaluated||d.props===!0))return;let _=p.strictSchema&&!p.allowMatchingProperties&&l.properties,y=s.name("valid");d.props!==!0&&!(d.props instanceof r.Name)&&(d.props=(0,i.evaluatedPropsToName)(s,d.props));let{props:m}=d;v();function v(){for(let S of f)_&&g(S),d.allErrors?b(S):(s.var(y,!0),b(S),s.if(y))}function g(S){for(let x in _)new RegExp(S).test(x)&&(0,n.checkStrictMode)(d,`property ${x} matches pattern ${S} (use allowMatchingProperties)`)}function b(S){s.forIn("key",u,x=>{s.if((0,r._)`${(0,e.usePattern)(o,S)}.test(${x})`,()=>{let w=h.includes(S);w||o.subschema({keyword:"patternProperties",schemaProp:S,dataProp:x,dataPropType:i.Type.Str},y),d.opts.unevaluated&&m!==!0?s.assign((0,r._)`${m}[${x}]`,!0):!w&&!d.allErrors&&s.if((0,r.not)(y),()=>s.break())})})}}};t.default=a}),Pne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ut(),r={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(n){let{gen:i,schema:a,it:o}=n;if((0,e.alwaysValidSchema)(o,a)){n.fail();return}let s=i.name("valid");n.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},s),n.failResult(s,()=>n.reset(),()=>n.error())},error:{message:"must NOT be valid"}};t.default=r}),Rne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Jn(),r={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:e.validateUnion,error:{message:"must match a schema in anyOf"}};t.default=r}),One=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r=ut(),n={message:"must match exactly one schema in oneOf",params:({params:a})=>(0,e._)`{passingSchemas: ${a.passing}}`},i={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:n,code(a){let{gen:o,schema:s,parentSchema:c,it:u}=a;if(!Array.isArray(s))throw new Error("ajv implementation error");if(u.opts.discriminator&&c.discriminator)return;let l=s,d=o.let("valid",!1),p=o.let("passing",null),f=o.name("_valid");a.setParams({passing:p}),o.block(h),a.result(d,()=>a.reset(),()=>a.error(!0));function h(){l.forEach((_,y)=>{let m;(0,r.alwaysValidSchema)(u,_)?o.var(f,!0):m=a.subschema({keyword:"oneOf",schemaProp:y,compositeRule:!0},f),y>0&&o.if((0,e._)`${f} && ${d}`).assign(d,!1).assign(p,(0,e._)`[${p}, ${y}]`).else(),o.if(f,()=>{o.assign(d,!0),o.assign(p,y),m&&a.mergeEvaluated(m,e.Name)})})}}};t.default=i}),Cne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ut(),r={keyword:"allOf",schemaType:"array",code(n){let{gen:i,schema:a,it:o}=n;if(!Array.isArray(a))throw new Error("ajv implementation error");let s=i.name("valid");a.forEach((c,u)=>{if((0,e.alwaysValidSchema)(o,c))return;let l=n.subschema({keyword:"allOf",schemaProp:u},s);n.ok(s),n.mergeEvaluated(l)})}};t.default=r}),Nne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r=ut(),n={message:({params:o})=>(0,e.str)`must match "${o.ifClause}" schema`,params:({params:o})=>(0,e._)`{failingKeyword: ${o.ifClause}}`},i={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:n,code(o){let{gen:s,parentSchema:c,it:u}=o;c.then===void 0&&c.else===void 0&&(0,r.checkStrictMode)(u,'"if" without "then" and "else" is ignored');let l=a(u,"then"),d=a(u,"else");if(!l&&!d)return;let p=s.let("valid",!0),f=s.name("_valid");if(h(),o.reset(),l&&d){let y=s.let("ifClause");o.setParams({ifClause:y}),s.if(f,_("then",y),_("else",y))}else l?s.if(f,_("then")):s.if((0,e.not)(f),_("else"));o.pass(p,()=>o.error(!0));function h(){let y=o.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},f);o.mergeEvaluated(y)}function _(y,m){return()=>{let v=o.subschema({keyword:y},f);s.assign(p,f),o.mergeValidEvaluated(v,p),m?s.assign(m,(0,e._)`${y}`):o.setParams({ifClause:y})}}}};function a(o,s){let c=o.schema[s];return c!==void 0&&!(0,r.alwaysValidSchema)(o,c)}t.default=i}),jne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ut(),r={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:n,parentSchema:i,it:a}){i.if===void 0&&(0,e.checkStrictMode)(a,`"${n}" without "if" is ignored`)}};t.default=r}),Ane=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=n2(),r=Sne(),n=i2(),i=wne(),a=$ne(),o=Ene(),s=kne(),c=a2(),u=Tne(),l=Ine(),d=Pne(),p=Rne(),f=One(),h=Cne(),_=Nne(),y=jne();function m(v=!1){let g=[d.default,p.default,f.default,h.default,_.default,y.default,s.default,c.default,o.default,u.default,l.default];return v?g.push(r.default,i.default):g.push(e.default,n.default),g.push(a.default),g}t.default=m}),Mne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r={message:({schemaCode:i})=>(0,e.str)`must match format "${i}"`,params:({schemaCode:i})=>(0,e._)`{format: ${i}}`},n={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:r,code(i,a){let{gen:o,data:s,$data:c,schema:u,schemaCode:l,it:d}=i,{opts:p,errSchemaPath:f,schemaEnv:h,self:_}=d;if(!p.validateFormats)return;c?y():m();function y(){let v=o.scopeValue("formats",{ref:_.formats,code:p.code.formats}),g=o.const("fDef",(0,e._)`${v}[${l}]`),b=o.let("fType"),S=o.let("format");o.if((0,e._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>o.assign(b,(0,e._)`${g}.type || "string"`).assign(S,(0,e._)`${g}.validate`),()=>o.assign(b,(0,e._)`"string"`).assign(S,g)),i.fail$data((0,e.or)(x(),w()));function x(){return p.strictSchema===!1?e.nil:(0,e._)`${l} && !${S}`}function w(){let E=h.$async?(0,e._)`(${g}.async ? await ${S}(${s}) : ${S}(${s}))`:(0,e._)`${S}(${s})`,R=(0,e._)`(typeof ${S} == "function" ? ${E} : ${S}.test(${s}))`;return(0,e._)`${S} && ${S} !== true && ${b} === ${a} && !${R}`}}function m(){let v=_.formats[u];if(!v){x();return}if(v===!0)return;let[g,b,S]=w(v);g===a&&i.pass(E());function x(){if(p.strictSchema===!1){_.logger.warn(R());return}throw new Error(R());function R(){return`unknown format "${u}" ignored in schema at path "${f}"`}}function w(R){let A=R instanceof RegExp?(0,e.regexpCode)(R):p.code.formats?(0,e._)`${p.code.formats}${(0,e.getProperty)(u)}`:void 0,M=o.scopeValue("formats",{key:u,ref:R,code:A});return typeof R=="object"&&!(R instanceof RegExp)?[R.type||"string",R.validate,(0,e._)`${M}.validate`]:["string",R,M]}function E(){if(typeof v=="object"&&!(v instanceof RegExp)&&v.async){if(!h.$async)throw new Error("async format in sync schema");return(0,e._)`await ${S}(${s})`}return typeof b=="function"?(0,e._)`${S}(${s})`:(0,e._)`${S}.test(${s})`}}}};t.default=n}),Dne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Mne(),r=[e.default];t.default=r}),zne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.contentVocabulary=t.metadataVocabulary=void 0,t.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],t.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]}),Une=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=une(),r=xne(),n=Ane(),i=Dne(),a=zne(),o=[e.default,r.default,(0,n.default)(),i.default,a.metadataVocabulary,a.contentVocabulary];t.default=o}),qne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiscrError=void 0;var e;(function(r){r.Tag="tag",r.Mapping="mapping"})(e||(t.DiscrError=e={}))}),Lne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xe(),r=qne(),n=k$(),i=Uh(),a=ut(),o={message:({params:{discrError:c,tagName:u}})=>c===r.DiscrError.Tag?`tag "${u}" must be string`:`value of tag "${u}" must be in oneOf`,params:({params:{discrError:c,tag:u,tagName:l}})=>(0,e._)`{error: ${c}, tag: ${l}, tagValue: ${u}}`},s={keyword:"discriminator",type:"object",schemaType:"object",error:o,code(c){let{gen:u,data:l,schema:d,parentSchema:p,it:f}=c,{oneOf:h}=p;if(!f.opts.discriminator)throw new Error("discriminator: requires discriminator option");let _=d.propertyName;if(typeof _!="string")throw new Error("discriminator: requires propertyName");if(d.mapping)throw new Error("discriminator: mapping is not supported");if(!h)throw new Error("discriminator: requires oneOf keyword");let y=u.let("valid",!1),m=u.const("tag",(0,e._)`${l}${(0,e.getProperty)(_)}`);u.if((0,e._)`typeof ${m} == "string"`,()=>v(),()=>c.error(!1,{discrError:r.DiscrError.Tag,tag:m,tagName:_})),c.ok(y);function v(){let S=b();u.if(!1);for(let x in S)u.elseIf((0,e._)`${m} === ${x}`),u.assign(y,g(S[x]));u.else(),c.error(!1,{discrError:r.DiscrError.Mapping,tag:m,tagName:_}),u.endIf()}function g(S){let x=u.name("valid"),w=c.subschema({keyword:"oneOf",schemaProp:S},x);return c.mergeEvaluated(w,e.Name),x}function b(){var S;let x={},w=R(p),E=!0;for(let q=0;q{e.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}}),Zne=V((t,e)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MissingRefError=t.ValidationError=t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=t.Ajv=void 0;var r=one(),n=Une(),i=Lne(),a=Fne(),o=["/properties"],s="http://json-schema.org/draft-07/schema";class c extends r.default{_addVocabularies(){super._addVocabularies(),n.default.forEach(h=>this.addVocabulary(h)),this.opts.discriminator&&this.addKeyword(i.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let h=this.opts.$data?this.$dataMetaSchema(a,o):a;this.addMetaSchema(h,s,!1),this.refs["http://json-schema.org/schema"]=s}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(s)?s:void 0)}}t.Ajv=c,e.exports=t=c,e.exports.Ajv=c,Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var u=zh();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return u.KeywordCxt}});var l=Xe();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return l._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return l.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return l.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return l.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return l.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return l.CodeGen}});var d=E$();Object.defineProperty(t,"ValidationError",{enumerable:!0,get:function(){return d.default}});var p=Uh();Object.defineProperty(t,"MissingRefError",{enumerable:!0,get:function(){return p.default}})}),Hne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.formatNames=t.fastFormats=t.fullFormats=void 0;function e(M,q){return{validate:M,compare:q}}t.fullFormats={date:e(a,o),time:e(c(!0),u),"date-time":e(p(!0),f),"iso-time":e(c(),l),"iso-date-time":e(p(),h),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:m,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:A,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:g,int32:{type:"number",validate:x},int64:{type:"number",validate:w},float:{type:"number",validate:E},double:{type:"number",validate:E},password:!0,binary:!0},t.fastFormats={...t.fullFormats,date:e(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,o),time:e(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,u),"date-time":e(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,f),"iso-time":e(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,l),"iso-date-time":e(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,h),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i},t.formatNames=Object.keys(t.fullFormats);function r(M){return M%4===0&&(M%100!==0||M%400===0)}var n=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,i=[0,31,28,31,30,31,30,31,31,30,31,30,31];function a(M){let q=n.exec(M);if(!q)return!1;let B=+q[1],U=+q[2],Y=+q[3];return U>=1&&U<=12&&Y>=1&&Y<=(U===2&&r(B)?29:i[U])}function o(M,q){if(M&&q)return M>q?1:M23||I>59||M&&!ft)return!1;if(Y<=23&&me<=59&&Qe<60)return!0;let D=me-I*fe,C=Y-F*fe-(D<0?1:0);return(C===23||C===-1)&&(D===59||D===-1)&&Qe<61}}function u(M,q){if(!(M&&q))return;let B=new Date("2020-01-01T"+M).valueOf(),U=new Date("2020-01-01T"+q).valueOf();if(B&&U)return B-U}function l(M,q){if(!(M&&q))return;let B=s.exec(M),U=s.exec(q);if(B&&U)return M=B[1]+B[2]+B[3],q=U[1]+U[2]+U[3],M>q?1:M=b}function w(M){return Number.isInteger(M)}function E(){return!0}var R=/[^\\]\\Z/;function A(M){if(R.test(M))return!1;try{return new RegExp(M),!0}catch{return!1}}}),Th=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.regexpCode=t.getEsmExportName=t.getProperty=t.safeStringify=t.stringify=t.strConcat=t.addCodeArg=t.str=t._=t.nil=t._Code=t.Name=t.IDENTIFIER=t._CodeOrName=void 0;class e{}t._CodeOrName=e,t.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class r extends e{constructor(v){if(super(),!t.IDENTIFIER.test(v))throw new Error("CodeGen: name must be a valid identifier");this.str=v}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}t.Name=r;class n extends e{constructor(v){super(),this._items=typeof v=="string"?[v]:v}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let v=this._items[0];return v===""||v==='""'}get str(){var v;return(v=this._str)!==null&&v!==void 0?v:this._str=this._items.reduce((g,b)=>`${g}${b}`,"")}get names(){var v;return(v=this._names)!==null&&v!==void 0?v:this._names=this._items.reduce((g,b)=>(b instanceof r&&(g[b.str]=(g[b.str]||0)+1),g),{})}}t._Code=n,t.nil=new n("");function i(m,...v){let g=[m[0]],b=0;for(;b{Object.defineProperty(t,"__esModule",{value:!0}),t.ValueScope=t.ValueScopeName=t.Scope=t.varKinds=t.UsedValueState=void 0;var e=Th();class r extends Error{constructor(u){super(`CodeGen: "code" for ${u} not defined`),this.value=u.value}}var n;(function(c){c[c.Started=0]="Started",c[c.Completed=1]="Completed"})(n||(t.UsedValueState=n={})),t.varKinds={const:new e.Name("const"),let:new e.Name("let"),var:new e.Name("var")};class i{constructor({prefixes:u,parent:l}={}){this._names={},this._prefixes=u,this._parent=l}toName(u){return u instanceof e.Name?u:this.name(u)}name(u){return new e.Name(this._newName(u))}_newName(u){let l=this._names[u]||this._nameGroup(u);return`${u}${l.index++}`}_nameGroup(u){var l,d;if(!((d=(l=this._parent)===null||l===void 0?void 0:l._prefixes)===null||d===void 0)&&d.has(u)||this._prefixes&&!this._prefixes.has(u))throw new Error(`CodeGen: prefix "${u}" is not allowed in this scope`);return this._names[u]={prefix:u,index:0}}}t.Scope=i;class a extends e.Name{constructor(u,l){super(l),this.prefix=u}setValue(u,{property:l,itemIndex:d}){this.value=u,this.scopePath=(0,e._)`.${new e.Name(l)}[${d}]`}}t.ValueScopeName=a;var o=(0,e._)`\n`;class s extends i{constructor(u){super(u),this._values={},this._scope=u.scope,this.opts={...u,_n:u.lines?o:e.nil}}get(){return this._scope}name(u){return new a(u,this._newName(u))}value(u,l){var d;if(l.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let p=this.toName(u),{prefix:f}=p,h=(d=l.key)!==null&&d!==void 0?d:l.ref,_=this._values[f];if(_){let v=_.get(h);if(v)return v}else _=this._values[f]=new Map;_.set(h,p);let y=this._scope[f]||(this._scope[f]=[]),m=y.length;return y[m]=l.ref,p.setValue(l,{property:f,itemIndex:m}),p}getValue(u,l){let d=this._values[u];if(d)return d.get(l)}scopeRefs(u,l=this._values){return this._reduceValues(l,d=>{if(d.scopePath===void 0)throw new Error(`CodeGen: name "${d}" has no value`);return(0,e._)`${u}${d.scopePath}`})}scopeCode(u=this._values,l,d){return this._reduceValues(u,p=>{if(p.value===void 0)throw new Error(`CodeGen: name "${p}" has no value`);return p.value.code},l,d)}_reduceValues(u,l,d={},p){let f=e.nil;for(let h in u){let _=u[h];if(!_)continue;let y=d[h]=d[h]||new Map;_.forEach(m=>{if(y.has(m))return;y.set(m,n.Started);let v=l(m);if(v){let g=this.opts.es5?t.varKinds.var:t.varKinds.const;f=(0,e._)`${f}${g} ${m} = ${v};${this.opts._n}`}else if(v=p?.(m))f=(0,e._)`${f}${v}${this.opts._n}`;else throw new r(m);y.set(m,n.Completed)})}return f}}t.ValueScope=s}),Be=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.or=t.and=t.not=t.CodeGen=t.operators=t.varKinds=t.ValueScopeName=t.ValueScope=t.Scope=t.Name=t.regexpCode=t.stringify=t.getProperty=t.nil=t.strConcat=t.str=t._=void 0;var e=Th(),r=x4(),n=Th();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return n._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return n.str}}),Object.defineProperty(t,"strConcat",{enumerable:!0,get:function(){return n.strConcat}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return n.nil}}),Object.defineProperty(t,"getProperty",{enumerable:!0,get:function(){return n.getProperty}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return n.stringify}}),Object.defineProperty(t,"regexpCode",{enumerable:!0,get:function(){return n.regexpCode}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return n.Name}});var i=x4();Object.defineProperty(t,"Scope",{enumerable:!0,get:function(){return i.Scope}}),Object.defineProperty(t,"ValueScope",{enumerable:!0,get:function(){return i.ValueScope}}),Object.defineProperty(t,"ValueScopeName",{enumerable:!0,get:function(){return i.ValueScopeName}}),Object.defineProperty(t,"varKinds",{enumerable:!0,get:function(){return i.varKinds}}),t.operators={GT:new e._Code(">"),GTE:new e._Code(">="),LT:new e._Code("<"),LTE:new e._Code("<="),EQ:new e._Code("==="),NEQ:new e._Code("!=="),NOT:new e._Code("!"),OR:new e._Code("||"),AND:new e._Code("&&"),ADD:new e._Code("+")};class a{optimizeNodes(){return this}optimizeNames($,T){return this}}class o extends a{constructor($,T,N){super(),this.varKind=$,this.name=T,this.rhs=N}render({es5:$,_n:T}){let N=$?r.varKinds.var:this.varKind,W=this.rhs===void 0?"":` = ${this.rhs}`;return`${N} ${this.name}${W};`+T}optimizeNames($,T){if($[this.name.str])return this.rhs&&(this.rhs=U(this.rhs,$,T)),this}get names(){return this.rhs instanceof e._CodeOrName?this.rhs.names:{}}}class s extends a{constructor($,T,N){super(),this.lhs=$,this.rhs=T,this.sideEffects=N}render({_n:$}){return`${this.lhs} = ${this.rhs};`+$}optimizeNames($,T){if(!(this.lhs instanceof e.Name&&!$[this.lhs.str]&&!this.sideEffects))return this.rhs=U(this.rhs,$,T),this}get names(){let $=this.lhs instanceof e.Name?{}:{...this.lhs.names};return B($,this.rhs)}}class c extends s{constructor($,T,N,W){super($,N,W),this.op=T}render({_n:$}){return`${this.lhs} ${this.op}= ${this.rhs};`+$}}class u extends a{constructor($){super(),this.label=$,this.names={}}render({_n:$}){return`${this.label}:`+$}}class l extends a{constructor($){super(),this.label=$,this.names={}}render({_n:$}){return`break${this.label?` ${this.label}`:""};`+$}}class d extends a{constructor($){super(),this.error=$}render({_n:$}){return`throw ${this.error};`+$}get names(){return this.error.names}}class p extends a{constructor($){super(),this.code=$}render({_n:$}){return`${this.code};`+$}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames($,T){return this.code=U(this.code,$,T),this}get names(){return this.code instanceof e._CodeOrName?this.code.names:{}}}class f extends a{constructor($=[]){super(),this.nodes=$}render($){return this.nodes.reduce((T,N)=>T+N.render($),"")}optimizeNodes(){let{nodes:$}=this,T=$.length;for(;T--;){let N=$[T].optimizeNodes();Array.isArray(N)?$.splice(T,1,...N):N?$[T]=N:$.splice(T,1)}return $.length>0?this:void 0}optimizeNames($,T){let{nodes:N}=this,W=N.length;for(;W--;){let K=N[W];K.optimizeNames($,T)||(Y($,K.names),N.splice(W,1))}return N.length>0?this:void 0}get names(){return this.nodes.reduce(($,T)=>q($,T.names),{})}}class h extends f{render($){return"{"+$._n+super.render($)+"}"+$._n}}class _ extends f{}class y extends h{}y.kind="else";class m extends h{constructor($,T){super(T),this.condition=$}render($){let T=`if(${this.condition})`+super.render($);return this.else&&(T+="else "+this.else.render($)),T}optimizeNodes(){super.optimizeNodes();let $=this.condition;if($===!0)return this.nodes;let T=this.else;if(T){let N=T.optimizeNodes();T=this.else=Array.isArray(N)?new y(N):N}if(T)return $===!1?T instanceof m?T:T.nodes:this.nodes.length?this:new m(me($),T instanceof m?[T]:T.nodes);if(!($===!1||!this.nodes.length))return this}optimizeNames($,T){var N;if(this.else=(N=this.else)===null||N===void 0?void 0:N.optimizeNames($,T),!!(super.optimizeNames($,T)||this.else))return this.condition=U(this.condition,$,T),this}get names(){let $=super.names;return B($,this.condition),this.else&&q($,this.else.names),$}}m.kind="if";class v extends h{}v.kind="for";class g extends v{constructor($){super(),this.iteration=$}render($){return`for(${this.iteration})`+super.render($)}optimizeNames($,T){if(super.optimizeNames($,T))return this.iteration=U(this.iteration,$,T),this}get names(){return q(super.names,this.iteration.names)}}class b extends v{constructor($,T,N,W){super(),this.varKind=$,this.name=T,this.from=N,this.to=W}render($){let T=$.es5?r.varKinds.var:this.varKind,{name:N,from:W,to:K}=this;return`for(${T} ${N}=${W}; ${N}<${K}; ${N}++)`+super.render($)}get names(){let $=B(super.names,this.from);return B($,this.to)}}class S extends v{constructor($,T,N,W){super(),this.loop=$,this.varKind=T,this.name=N,this.iterable=W}render($){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render($)}optimizeNames($,T){if(super.optimizeNames($,T))return this.iterable=U(this.iterable,$,T),this}get names(){return q(super.names,this.iterable.names)}}class x extends h{constructor($,T,N){super(),this.name=$,this.args=T,this.async=N}render($){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render($)}}x.kind="func";class w extends f{render($){return"return "+super.render($)}}w.kind="return";class E extends h{render($){let T="try"+super.render($);return this.catch&&(T+=this.catch.render($)),this.finally&&(T+=this.finally.render($)),T}optimizeNodes(){var $,T;return super.optimizeNodes(),($=this.catch)===null||$===void 0||$.optimizeNodes(),(T=this.finally)===null||T===void 0||T.optimizeNodes(),this}optimizeNames($,T){var N,W;return super.optimizeNames($,T),(N=this.catch)===null||N===void 0||N.optimizeNames($,T),(W=this.finally)===null||W===void 0||W.optimizeNames($,T),this}get names(){let $=super.names;return this.catch&&q($,this.catch.names),this.finally&&q($,this.finally.names),$}}class R extends h{constructor($){super(),this.error=$}render($){return`catch(${this.error})`+super.render($)}}R.kind="catch";class A extends h{render($){return"finally"+super.render($)}}A.kind="finally";class M{constructor($,T={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...T,_n:T.lines?` +`:""},this._extScope=$,this._scope=new r.Scope({parent:$}),this._nodes=[new _]}toString(){return this._root.render(this.opts)}name($){return this._scope.name($)}scopeName($){return this._extScope.name($)}scopeValue($,T){let N=this._extScope.value($,T);return(this._values[N.prefix]||(this._values[N.prefix]=new Set)).add(N),N}getScopeValue($,T){return this._extScope.getValue($,T)}scopeRefs($){return this._extScope.scopeRefs($,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def($,T,N,W){let K=this._scope.toName(T);return N!==void 0&&W&&(this._constants[K.str]=N),this._leafNode(new o($,K,N)),K}const($,T,N){return this._def(r.varKinds.const,$,T,N)}let($,T,N){return this._def(r.varKinds.let,$,T,N)}var($,T,N){return this._def(r.varKinds.var,$,T,N)}assign($,T,N){return this._leafNode(new s($,T,N))}add($,T){return this._leafNode(new c($,t.operators.ADD,T))}code($){return typeof $=="function"?$():$!==e.nil&&this._leafNode(new p($)),this}object(...$){let T=["{"];for(let[N,W]of $)T.length>1&&T.push(","),T.push(N),(N!==W||this.opts.es5)&&(T.push(":"),(0,e.addCodeArg)(T,W));return T.push("}"),new e._Code(T)}if($,T,N){if(this._blockNode(new m($)),T&&N)this.code(T).else().code(N).endIf();else if(T)this.code(T).endIf();else if(N)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf($){return this._elseNode(new m($))}else(){return this._elseNode(new y)}endIf(){return this._endBlockNode(m,y)}_for($,T){return this._blockNode($),T&&this.code(T).endFor(),this}for($,T){return this._for(new g($),T)}forRange($,T,N,W,K=this.opts.es5?r.varKinds.var:r.varKinds.let){let pe=this._scope.toName($);return this._for(new b(K,pe,T,N),()=>W(pe))}forOf($,T,N,W=r.varKinds.const){let K=this._scope.toName($);if(this.opts.es5){let pe=T instanceof e.Name?T:this.var("_arr",T);return this.forRange("_i",0,(0,e._)`${pe}.length`,ce=>{this.var(K,(0,e._)`${pe}[${ce}]`),N(K)})}return this._for(new S("of",W,K,T),()=>N(K))}forIn($,T,N,W=this.opts.es5?r.varKinds.var:r.varKinds.const){if(this.opts.ownProperties)return this.forOf($,(0,e._)`Object.keys(${T})`,N);let K=this._scope.toName($);return this._for(new S("in",W,K,T),()=>N(K))}endFor(){return this._endBlockNode(v)}label($){return this._leafNode(new u($))}break($){return this._leafNode(new l($))}return($){let T=new w;if(this._blockNode(T),this.code($),T.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(w)}try($,T,N){if(!T&&!N)throw new Error('CodeGen: "try" without "catch" and "finally"');let W=new E;if(this._blockNode(W),this.code($),T){let K=this.name("e");this._currNode=W.catch=new R(K),T(K)}return N&&(this._currNode=W.finally=new A,this.code(N)),this._endBlockNode(R,A)}throw($){return this._leafNode(new d($))}block($,T){return this._blockStarts.push(this._nodes.length),$&&this.code($).endBlock(T),this}endBlock($){let T=this._blockStarts.pop();if(T===void 0)throw new Error("CodeGen: not in self-balancing block");let N=this._nodes.length-T;if(N<0||$!==void 0&&N!==$)throw new Error(`CodeGen: wrong number of nodes: ${N} vs ${$} expected`);return this._nodes.length=T,this}func($,T=e.nil,N,W){return this._blockNode(new x($,T,N)),W&&this.code(W).endFunc(),this}endFunc(){return this._endBlockNode(x)}optimize($=1){for(;$-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode($){return this._currNode.nodes.push($),this}_blockNode($){this._currNode.nodes.push($),this._nodes.push($)}_endBlockNode($,T){let N=this._currNode;if(N instanceof $||T&&N instanceof T)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${T?`${$.kind}/${T.kind}`:$.kind}"`)}_elseNode($){let T=this._currNode;if(!(T instanceof m))throw new Error('CodeGen: "else" without "if"');return this._currNode=T.else=$,this}get _root(){return this._nodes[0]}get _currNode(){let $=this._nodes;return $[$.length-1]}set _currNode($){let T=this._nodes;T[T.length-1]=$}}t.CodeGen=M;function q(C,$){for(let T in $)C[T]=(C[T]||0)+($[T]||0);return C}function B(C,$){return $ instanceof e._CodeOrName?q(C,$.names):C}function U(C,$,T){if(C instanceof e.Name)return N(C);if(!W(C))return C;return new e._Code(C._items.reduce((K,pe)=>(pe instanceof e.Name&&(pe=N(pe)),pe instanceof e._Code?K.push(...pe._items):K.push(pe),K),[]));function N(K){let pe=T[K.str];return pe===void 0||$[K.str]!==1?K:(delete $[K.str],pe)}function W(K){return K instanceof e._Code&&K._items.some(pe=>pe instanceof e.Name&&$[pe.str]===1&&T[pe.str]!==void 0)}}function Y(C,$){for(let T in $)C[T]=(C[T]||0)-($[T]||0)}function me(C){return typeof C=="boolean"||typeof C=="number"||C===null?!C:(0,e._)`!${D(C)}`}t.not=me;var Qe=I(t.operators.AND);function ft(...C){return C.reduce(Qe)}t.and=ft;var fe=I(t.operators.OR);function F(...C){return C.reduce(fe)}t.or=F;function I(C){return($,T)=>$===e.nil?T:T===e.nil?$:(0,e._)`${D($)} ${C} ${D(T)}`}function D(C){return C instanceof e.Name?C:(0,e._)`(${C})`}}),lt=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.checkStrictMode=t.getErrorPath=t.Type=t.useFunc=t.setEvaluated=t.evaluatedPropsToName=t.mergeEvaluated=t.eachItem=t.unescapeJsonPointer=t.escapeJsonPointer=t.escapeFragment=t.unescapeFragment=t.schemaRefOrVal=t.schemaHasRulesButRef=t.schemaHasRules=t.checkUnknownRules=t.alwaysValidSchema=t.toHash=void 0;var e=Be(),r=Th();function n(x){let w={};for(let E of x)w[E]=!0;return w}t.toHash=n;function i(x,w){return typeof w=="boolean"?w:Object.keys(w).length===0?!0:(a(x,w),!o(w,x.self.RULES.all))}t.alwaysValidSchema=i;function a(x,w=x.schema){let{opts:E,self:R}=x;if(!E.strictSchema||typeof w=="boolean")return;let A=R.RULES.keywords;for(let M in w)A[M]||S(x,`unknown keyword: "${M}"`)}t.checkUnknownRules=a;function o(x,w){if(typeof x=="boolean")return!x;for(let E in x)if(w[E])return!0;return!1}t.schemaHasRules=o;function s(x,w){if(typeof x=="boolean")return!x;for(let E in x)if(E!=="$ref"&&w.all[E])return!0;return!1}t.schemaHasRulesButRef=s;function c({topSchemaRef:x,schemaPath:w},E,R,A){if(!A){if(typeof E=="number"||typeof E=="boolean")return E;if(typeof E=="string")return(0,e._)`${E}`}return(0,e._)`${x}${w}${(0,e.getProperty)(R)}`}t.schemaRefOrVal=c;function u(x){return p(decodeURIComponent(x))}t.unescapeFragment=u;function l(x){return encodeURIComponent(d(x))}t.escapeFragment=l;function d(x){return typeof x=="number"?`${x}`:x.replace(/~/g,"~0").replace(/\//g,"~1")}t.escapeJsonPointer=d;function p(x){return x.replace(/~1/g,"/").replace(/~0/g,"~")}t.unescapeJsonPointer=p;function f(x,w){if(Array.isArray(x))for(let E of x)w(E);else w(x)}t.eachItem=f;function h({mergeNames:x,mergeToName:w,mergeValues:E,resultToName:R}){return(A,M,q,B)=>{let U=q===void 0?M:q instanceof e.Name?(M instanceof e.Name?x(A,M,q):w(A,M,q),q):M instanceof e.Name?(w(A,q,M),M):E(M,q);return B===e.Name&&!(U instanceof e.Name)?R(A,U):U}}t.mergeEvaluated={props:h({mergeNames:(x,w,E)=>x.if((0,e._)`${E} !== true && ${w} !== undefined`,()=>{x.if((0,e._)`${w} === true`,()=>x.assign(E,!0),()=>x.assign(E,(0,e._)`${E} || {}`).code((0,e._)`Object.assign(${E}, ${w})`))}),mergeToName:(x,w,E)=>x.if((0,e._)`${E} !== true`,()=>{w===!0?x.assign(E,!0):(x.assign(E,(0,e._)`${E} || {}`),y(x,E,w))}),mergeValues:(x,w)=>x===!0?!0:{...x,...w},resultToName:_}),items:h({mergeNames:(x,w,E)=>x.if((0,e._)`${E} !== true && ${w} !== undefined`,()=>x.assign(E,(0,e._)`${w} === true ? true : ${E} > ${w} ? ${E} : ${w}`)),mergeToName:(x,w,E)=>x.if((0,e._)`${E} !== true`,()=>x.assign(E,w===!0?!0:(0,e._)`${E} > ${w} ? ${E} : ${w}`)),mergeValues:(x,w)=>x===!0?!0:Math.max(x,w),resultToName:(x,w)=>x.var("items",w)})};function _(x,w){if(w===!0)return x.var("props",!0);let E=x.var("props",(0,e._)`{}`);return w!==void 0&&y(x,E,w),E}t.evaluatedPropsToName=_;function y(x,w,E){Object.keys(E).forEach(R=>x.assign((0,e._)`${w}${(0,e.getProperty)(R)}`,!0))}t.setEvaluated=y;var m={};function v(x,w){return x.scopeValue("func",{ref:w,code:m[w.code]||(m[w.code]=new r._Code(w.code))})}t.useFunc=v;var g;(function(x){x[x.Num=0]="Num",x[x.Str=1]="Str"})(g||(t.Type=g={}));function b(x,w,E){if(x instanceof e.Name){let R=w===g.Num;return E?R?(0,e._)`"[" + ${x} + "]"`:(0,e._)`"['" + ${x} + "']"`:R?(0,e._)`"/" + ${x}`:(0,e._)`"/" + ${x}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return E?(0,e.getProperty)(x).toString():"/"+d(x)}t.getErrorPath=b;function S(x,w,E=x.opts.strictSchema){if(E){if(w=`strict mode: ${w}`,E===!0)throw new Error(w);x.self.logger.warn(w)}}t.checkStrictMode=S}),$a=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r={data:new e.Name("data"),valCxt:new e.Name("valCxt"),instancePath:new e.Name("instancePath"),parentData:new e.Name("parentData"),parentDataProperty:new e.Name("parentDataProperty"),rootData:new e.Name("rootData"),dynamicAnchors:new e.Name("dynamicAnchors"),vErrors:new e.Name("vErrors"),errors:new e.Name("errors"),this:new e.Name("this"),self:new e.Name("self"),scope:new e.Name("scope"),json:new e.Name("json"),jsonPos:new e.Name("jsonPos"),jsonLen:new e.Name("jsonLen"),jsonPart:new e.Name("jsonPart")};t.default=r}),qh=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.extendErrors=t.resetErrorsCount=t.reportExtraError=t.reportError=t.keyword$DataError=t.keywordError=void 0;var e=Be(),r=lt(),n=$a();t.keywordError={message:({keyword:y})=>(0,e.str)`must pass "${y}" keyword validation`},t.keyword$DataError={message:({keyword:y,schemaType:m})=>m?(0,e.str)`"${y}" keyword must be ${m} ($data)`:(0,e.str)`"${y}" keyword is invalid ($data)`};function i(y,m=t.keywordError,v,g){let{it:b}=y,{gen:S,compositeRule:x,allErrors:w}=b,E=d(y,m,v);g??(x||w)?c(S,E):u(b,(0,e._)`[${E}]`)}t.reportError=i;function a(y,m=t.keywordError,v){let{it:g}=y,{gen:b,compositeRule:S,allErrors:x}=g,w=d(y,m,v);c(b,w),S||x||u(g,n.default.vErrors)}t.reportExtraError=a;function o(y,m){y.assign(n.default.errors,m),y.if((0,e._)`${n.default.vErrors} !== null`,()=>y.if(m,()=>y.assign((0,e._)`${n.default.vErrors}.length`,m),()=>y.assign(n.default.vErrors,null)))}t.resetErrorsCount=o;function s({gen:y,keyword:m,schemaValue:v,data:g,errsCount:b,it:S}){if(b===void 0)throw new Error("ajv implementation error");let x=y.name("err");y.forRange("i",b,n.default.errors,w=>{y.const(x,(0,e._)`${n.default.vErrors}[${w}]`),y.if((0,e._)`${x}.instancePath === undefined`,()=>y.assign((0,e._)`${x}.instancePath`,(0,e.strConcat)(n.default.instancePath,S.errorPath))),y.assign((0,e._)`${x}.schemaPath`,(0,e.str)`${S.errSchemaPath}/${m}`),S.opts.verbose&&(y.assign((0,e._)`${x}.schema`,v),y.assign((0,e._)`${x}.data`,g))})}t.extendErrors=s;function c(y,m){let v=y.const("err",m);y.if((0,e._)`${n.default.vErrors} === null`,()=>y.assign(n.default.vErrors,(0,e._)`[${v}]`),(0,e._)`${n.default.vErrors}.push(${v})`),y.code((0,e._)`${n.default.errors}++`)}function u(y,m){let{gen:v,validateName:g,schemaEnv:b}=y;b.$async?v.throw((0,e._)`new ${y.ValidationError}(${m})`):(v.assign((0,e._)`${g}.errors`,m),v.return(!1))}var l={keyword:new e.Name("keyword"),schemaPath:new e.Name("schemaPath"),params:new e.Name("params"),propertyName:new e.Name("propertyName"),message:new e.Name("message"),schema:new e.Name("schema"),parentSchema:new e.Name("parentSchema")};function d(y,m,v){let{createErrors:g}=y.it;return g===!1?(0,e._)`{}`:p(y,m,v)}function p(y,m,v={}){let{gen:g,it:b}=y,S=[f(b,v),h(y,v)];return _(y,m,S),g.object(...S)}function f({errorPath:y},{instancePath:m}){let v=m?(0,e.str)`${y}${(0,r.getErrorPath)(m,r.Type.Str)}`:y;return[n.default.instancePath,(0,e.strConcat)(n.default.instancePath,v)]}function h({keyword:y,it:{errSchemaPath:m}},{schemaPath:v,parentSchema:g}){let b=g?m:(0,e.str)`${m}/${y}`;return v&&(b=(0,e.str)`${b}${(0,r.getErrorPath)(v,r.Type.Str)}`),[l.schemaPath,b]}function _(y,{params:m,message:v},g){let{keyword:b,data:S,schemaValue:x,it:w}=y,{opts:E,propertyName:R,topSchemaRef:A,schemaPath:M}=w;g.push([l.keyword,b],[l.params,typeof m=="function"?m(y):m||(0,e._)`{}`]),E.messages&&g.push([l.message,typeof v=="function"?v(y):v]),E.verbose&&g.push([l.schema,x],[l.parentSchema,(0,e._)`${A}${M}`],[n.default.data,S]),R&&g.push([l.propertyName,R])}}),Bne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.boolOrEmptySchema=t.topBoolOrEmptySchema=void 0;var e=qh(),r=Be(),n=$a(),i={message:"boolean schema is false"};function a(c){let{gen:u,schema:l,validateName:d}=c;l===!1?s(c,!1):typeof l=="object"&&l.$async===!0?u.return(n.default.data):(u.assign((0,r._)`${d}.errors`,null),u.return(!0))}t.topBoolOrEmptySchema=a;function o(c,u){let{gen:l,schema:d}=c;d===!1?(l.var(u,!1),s(c)):l.var(u,!0)}t.boolOrEmptySchema=o;function s(c,u){let{gen:l,data:d}=c,p={gen:l,keyword:"false schema",data:d,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:c};(0,e.reportError)(p,i,void 0,u)}}),o2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getRules=t.isJSONType=void 0;var e=["string","number","integer","boolean","null","object","array"],r=new Set(e);function n(a){return typeof a=="string"&&r.has(a)}t.isJSONType=n;function i(){let a={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...a,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},a.number,a.string,a.array,a.object],post:{rules:[]},all:{},keywords:{}}}t.getRules=i}),s2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.shouldUseRule=t.shouldUseGroup=t.schemaHasRulesForType=void 0;function e({schema:i,self:a},o){let s=a.RULES.types[o];return s&&s!==!0&&r(i,s)}t.schemaHasRulesForType=e;function r(i,a){return a.rules.some(o=>n(i,o))}t.shouldUseGroup=r;function n(i,a){var o;return i[a.keyword]!==void 0||((o=a.definition.implements)===null||o===void 0?void 0:o.some(s=>i[s]!==void 0))}t.shouldUseRule=n}),Ih=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.reportTypeError=t.checkDataTypes=t.checkDataType=t.coerceAndCheckDataType=t.getJSONTypes=t.getSchemaTypes=t.DataType=void 0;var e=o2(),r=s2(),n=qh(),i=Be(),a=lt(),o;(function(g){g[g.Correct=0]="Correct",g[g.Wrong=1]="Wrong"})(o||(t.DataType=o={}));function s(g){let b=c(g.type);if(b.includes("null")){if(g.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!b.length&&g.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');g.nullable===!0&&b.push("null")}return b}t.getSchemaTypes=s;function c(g){let b=Array.isArray(g)?g:g?[g]:[];if(b.every(e.isJSONType))return b;throw new Error("type must be JSONType or JSONType[]: "+b.join(","))}t.getJSONTypes=c;function u(g,b){let{gen:S,data:x,opts:w}=g,E=d(b,w.coerceTypes),R=b.length>0&&!(E.length===0&&b.length===1&&(0,r.schemaHasRulesForType)(g,b[0]));if(R){let A=_(b,x,w.strictNumbers,o.Wrong);S.if(A,()=>{E.length?p(g,b,E):m(g)})}return R}t.coerceAndCheckDataType=u;var l=new Set(["string","number","integer","boolean","null"]);function d(g,b){return b?g.filter(S=>l.has(S)||b==="array"&&S==="array"):[]}function p(g,b,S){let{gen:x,data:w,opts:E}=g,R=x.let("dataType",(0,i._)`typeof ${w}`),A=x.let("coerced",(0,i._)`undefined`);E.coerceTypes==="array"&&x.if((0,i._)`${R} == 'object' && Array.isArray(${w}) && ${w}.length == 1`,()=>x.assign(w,(0,i._)`${w}[0]`).assign(R,(0,i._)`typeof ${w}`).if(_(b,w,E.strictNumbers),()=>x.assign(A,w))),x.if((0,i._)`${A} !== undefined`);for(let q of S)(l.has(q)||q==="array"&&E.coerceTypes==="array")&&M(q);x.else(),m(g),x.endIf(),x.if((0,i._)`${A} !== undefined`,()=>{x.assign(w,A),f(g,A)});function M(q){switch(q){case"string":x.elseIf((0,i._)`${R} == "number" || ${R} == "boolean"`).assign(A,(0,i._)`"" + ${w}`).elseIf((0,i._)`${w} === null`).assign(A,(0,i._)`""`);return;case"number":x.elseIf((0,i._)`${R} == "boolean" || ${w} === null + || (${R} == "string" && ${w} && ${w} == +${w})`).assign(A,(0,i._)`+${w}`);return;case"integer":x.elseIf((0,i._)`${R} === "boolean" || ${w} === null + || (${R} === "string" && ${w} && ${w} == +${w} && !(${w} % 1))`).assign(A,(0,i._)`+${w}`);return;case"boolean":x.elseIf((0,i._)`${w} === "false" || ${w} === 0 || ${w} === null`).assign(A,!1).elseIf((0,i._)`${w} === "true" || ${w} === 1`).assign(A,!0);return;case"null":x.elseIf((0,i._)`${w} === "" || ${w} === 0 || ${w} === false`),x.assign(A,null);return;case"array":x.elseIf((0,i._)`${R} === "string" || ${R} === "number" + || ${R} === "boolean" || ${w} === null`).assign(A,(0,i._)`[${w}]`)}}}function f({gen:g,parentData:b,parentDataProperty:S},x){g.if((0,i._)`${b} !== undefined`,()=>g.assign((0,i._)`${b}[${S}]`,x))}function h(g,b,S,x=o.Correct){let w=x===o.Correct?i.operators.EQ:i.operators.NEQ,E;switch(g){case"null":return(0,i._)`${b} ${w} null`;case"array":E=(0,i._)`Array.isArray(${b})`;break;case"object":E=(0,i._)`${b} && typeof ${b} == "object" && !Array.isArray(${b})`;break;case"integer":E=R((0,i._)`!(${b} % 1) && !isNaN(${b})`);break;case"number":E=R();break;default:return(0,i._)`typeof ${b} ${w} ${g}`}return x===o.Correct?E:(0,i.not)(E);function R(A=i.nil){return(0,i.and)((0,i._)`typeof ${b} == "number"`,A,S?(0,i._)`isFinite(${b})`:i.nil)}}t.checkDataType=h;function _(g,b,S,x){if(g.length===1)return h(g[0],b,S,x);let w,E=(0,a.toHash)(g);if(E.array&&E.object){let R=(0,i._)`typeof ${b} != "object"`;w=E.null?R:(0,i._)`!${b} || ${R}`,delete E.null,delete E.array,delete E.object}else w=i.nil;E.number&&delete E.integer;for(let R in E)w=(0,i.and)(w,h(R,b,S,x));return w}t.checkDataTypes=_;var y={message:({schema:g})=>`must be ${g}`,params:({schema:g,schemaValue:b})=>typeof g=="string"?(0,i._)`{type: ${g}}`:(0,i._)`{type: ${b}}`};function m(g){let b=v(g);(0,n.reportError)(b,y)}t.reportTypeError=m;function v(g){let{gen:b,data:S,schema:x}=g,w=(0,a.schemaRefOrVal)(g,x,"type");return{gen:b,keyword:"type",data:S,schema:x.type,schemaCode:w,schemaValue:w,parentSchema:x,params:{},it:g}}}),Vne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.assignDefaults=void 0;var e=Be(),r=lt();function n(a,o){let{properties:s,items:c}=a.schema;if(o==="object"&&s)for(let u in s)i(a,u,s[u].default);else o==="array"&&Array.isArray(c)&&c.forEach((u,l)=>i(a,l,u.default))}t.assignDefaults=n;function i(a,o,s){let{gen:c,compositeRule:u,data:l,opts:d}=a;if(s===void 0)return;let p=(0,e._)`${l}${(0,e.getProperty)(o)}`;if(u){(0,r.checkStrictMode)(a,`default is ignored for: ${p}`);return}let f=(0,e._)`${p} === undefined`;d.useDefaults==="empty"&&(f=(0,e._)`${f} || ${p} === null || ${p} === ""`),c.if(f,(0,e._)`${p} = ${(0,e.stringify)(s)}`)}}),Xn=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateUnion=t.validateArray=t.usePattern=t.callValidateCode=t.schemaProperties=t.allSchemaProperties=t.noPropertyInData=t.propertyInData=t.isOwnProperty=t.hasPropFunc=t.reportMissingProp=t.checkMissingProp=t.checkReportMissingProp=void 0;var e=Be(),r=lt(),n=$a(),i=lt();function a(g,b){let{gen:S,data:x,it:w}=g;S.if(d(S,x,b,w.opts.ownProperties),()=>{g.setParams({missingProperty:(0,e._)`${b}`},!0),g.error()})}t.checkReportMissingProp=a;function o({gen:g,data:b,it:{opts:S}},x,w){return(0,e.or)(...x.map(E=>(0,e.and)(d(g,b,E,S.ownProperties),(0,e._)`${w} = ${E}`)))}t.checkMissingProp=o;function s(g,b){g.setParams({missingProperty:b},!0),g.error()}t.reportMissingProp=s;function c(g){return g.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,e._)`Object.prototype.hasOwnProperty`})}t.hasPropFunc=c;function u(g,b,S){return(0,e._)`${c(g)}.call(${b}, ${S})`}t.isOwnProperty=u;function l(g,b,S,x){let w=(0,e._)`${b}${(0,e.getProperty)(S)} !== undefined`;return x?(0,e._)`${w} && ${u(g,b,S)}`:w}t.propertyInData=l;function d(g,b,S,x){let w=(0,e._)`${b}${(0,e.getProperty)(S)} === undefined`;return x?(0,e.or)(w,(0,e.not)(u(g,b,S))):w}t.noPropertyInData=d;function p(g){return g?Object.keys(g).filter(b=>b!=="__proto__"):[]}t.allSchemaProperties=p;function f(g,b){return p(b).filter(S=>!(0,r.alwaysValidSchema)(g,b[S]))}t.schemaProperties=f;function h({schemaCode:g,data:b,it:{gen:S,topSchemaRef:x,schemaPath:w,errorPath:E},it:R},A,M,q){let B=q?(0,e._)`${g}, ${b}, ${x}${w}`:b,U=[[n.default.instancePath,(0,e.strConcat)(n.default.instancePath,E)],[n.default.parentData,R.parentData],[n.default.parentDataProperty,R.parentDataProperty],[n.default.rootData,n.default.rootData]];R.opts.dynamicRef&&U.push([n.default.dynamicAnchors,n.default.dynamicAnchors]);let Y=(0,e._)`${B}, ${S.object(...U)}`;return M!==e.nil?(0,e._)`${A}.call(${M}, ${Y})`:(0,e._)`${A}(${Y})`}t.callValidateCode=h;var _=(0,e._)`new RegExp`;function y({gen:g,it:{opts:b}},S){let x=b.unicodeRegExp?"u":"",{regExp:w}=b.code,E=w(S,x);return g.scopeValue("pattern",{key:E.toString(),ref:E,code:(0,e._)`${w.code==="new RegExp"?_:(0,i.useFunc)(g,w)}(${S}, ${x})`})}t.usePattern=y;function m(g){let{gen:b,data:S,keyword:x,it:w}=g,E=b.name("valid");if(w.allErrors){let A=b.let("valid",!0);return R(()=>b.assign(A,!1)),A}return b.var(E,!0),R(()=>b.break()),E;function R(A){let M=b.const("len",(0,e._)`${S}.length`);b.forRange("i",0,M,q=>{g.subschema({keyword:x,dataProp:q,dataPropType:r.Type.Num},E),b.if((0,e.not)(E),A)})}}t.validateArray=m;function v(g){let{gen:b,schema:S,keyword:x,it:w}=g;if(!Array.isArray(S))throw new Error("ajv implementation error");if(S.some(M=>(0,r.alwaysValidSchema)(w,M))&&!w.opts.unevaluated)return;let R=b.let("valid",!1),A=b.name("_valid");b.block(()=>S.forEach((M,q)=>{let B=g.subschema({keyword:x,schemaProp:q,compositeRule:!0},A);b.assign(R,(0,e._)`${R} || ${A}`),g.mergeValidEvaluated(B,A)||b.if((0,e.not)(R))})),g.result(R,()=>g.reset(),()=>g.error(!0))}t.validateUnion=v}),Gne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateKeywordUsage=t.validSchemaType=t.funcKeywordCode=t.macroKeywordCode=void 0;var e=Be(),r=$a(),n=Xn(),i=qh();function a(f,h){let{gen:_,keyword:y,schema:m,parentSchema:v,it:g}=f,b=h.macro.call(g.self,m,v,g),S=l(_,y,b);g.opts.validateSchema!==!1&&g.self.validateSchema(b,!0);let x=_.name("valid");f.subschema({schema:b,schemaPath:e.nil,errSchemaPath:`${g.errSchemaPath}/${y}`,topSchemaRef:S,compositeRule:!0},x),f.pass(x,()=>f.error(!0))}t.macroKeywordCode=a;function o(f,h){var _;let{gen:y,keyword:m,schema:v,parentSchema:g,$data:b,it:S}=f;u(S,h);let x=!b&&h.compile?h.compile.call(S.self,v,g,S):h.validate,w=l(y,m,x),E=y.let("valid");f.block$data(E,R),f.ok((_=h.valid)!==null&&_!==void 0?_:E);function R(){if(h.errors===!1)q(),h.modifying&&s(f),B(()=>f.error());else{let U=h.async?A():M();h.modifying&&s(f),B(()=>c(f,U))}}function A(){let U=y.let("ruleErrs",null);return y.try(()=>q((0,e._)`await `),Y=>y.assign(E,!1).if((0,e._)`${Y} instanceof ${S.ValidationError}`,()=>y.assign(U,(0,e._)`${Y}.errors`),()=>y.throw(Y))),U}function M(){let U=(0,e._)`${w}.errors`;return y.assign(U,null),q(e.nil),U}function q(U=h.async?(0,e._)`await `:e.nil){let Y=S.opts.passContext?r.default.this:r.default.self,me=!("compile"in h&&!b||h.schema===!1);y.assign(E,(0,e._)`${U}${(0,n.callValidateCode)(f,w,Y,me)}`,h.modifying)}function B(U){var Y;y.if((0,e.not)((Y=h.valid)!==null&&Y!==void 0?Y:E),U)}}t.funcKeywordCode=o;function s(f){let{gen:h,data:_,it:y}=f;h.if(y.parentData,()=>h.assign(_,(0,e._)`${y.parentData}[${y.parentDataProperty}]`))}function c(f,h){let{gen:_}=f;_.if((0,e._)`Array.isArray(${h})`,()=>{_.assign(r.default.vErrors,(0,e._)`${r.default.vErrors} === null ? ${h} : ${r.default.vErrors}.concat(${h})`).assign(r.default.errors,(0,e._)`${r.default.vErrors}.length`),(0,i.extendErrors)(f)},()=>f.error())}function u({schemaEnv:f},h){if(h.async&&!f.$async)throw new Error("async keyword in sync schema")}function l(f,h,_){if(_===void 0)throw new Error(`keyword "${h}" failed to compile`);return f.scopeValue("keyword",typeof _=="function"?{ref:_}:{ref:_,code:(0,e.stringify)(_)})}function d(f,h,_=!1){return!h.length||h.some(y=>y==="array"?Array.isArray(f):y==="object"?f&&typeof f=="object"&&!Array.isArray(f):typeof f==y||_&&typeof f>"u")}t.validSchemaType=d;function p({schema:f,opts:h,self:_,errSchemaPath:y},m,v){if(Array.isArray(m.keyword)?!m.keyword.includes(v):m.keyword!==v)throw new Error("ajv implementation error");let g=m.dependencies;if(g?.some(b=>!Object.prototype.hasOwnProperty.call(f,b)))throw new Error(`parent schema must have dependencies of ${v}: ${g.join(",")}`);if(m.validateSchema&&!m.validateSchema(f[v])){let S=`keyword "${v}" value is invalid at path "${y}": `+_.errorsText(m.validateSchema.errors);if(h.validateSchema==="log")_.logger.error(S);else throw new Error(S)}}t.validateKeywordUsage=p}),Wne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.extendSubschemaMode=t.extendSubschemaData=t.getSubschema=void 0;var e=Be(),r=lt();function n(o,{keyword:s,schemaProp:c,schema:u,schemaPath:l,errSchemaPath:d,topSchemaRef:p}){if(s!==void 0&&u!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(s!==void 0){let f=o.schema[s];return c===void 0?{schema:f,schemaPath:(0,e._)`${o.schemaPath}${(0,e.getProperty)(s)}`,errSchemaPath:`${o.errSchemaPath}/${s}`}:{schema:f[c],schemaPath:(0,e._)`${o.schemaPath}${(0,e.getProperty)(s)}${(0,e.getProperty)(c)}`,errSchemaPath:`${o.errSchemaPath}/${s}/${(0,r.escapeFragment)(c)}`}}if(u!==void 0){if(l===void 0||d===void 0||p===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:u,schemaPath:l,topSchemaRef:p,errSchemaPath:d}}throw new Error('either "keyword" or "schema" must be passed')}t.getSubschema=n;function i(o,s,{dataProp:c,dataPropType:u,data:l,dataTypes:d,propertyName:p}){if(l!==void 0&&c!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:f}=s;if(c!==void 0){let{errorPath:_,dataPathArr:y,opts:m}=s,v=f.let("data",(0,e._)`${s.data}${(0,e.getProperty)(c)}`,!0);h(v),o.errorPath=(0,e.str)`${_}${(0,r.getErrorPath)(c,u,m.jsPropertySyntax)}`,o.parentDataProperty=(0,e._)`${c}`,o.dataPathArr=[...y,o.parentDataProperty]}if(l!==void 0){let _=l instanceof e.Name?l:f.let("data",l,!0);h(_),p!==void 0&&(o.propertyName=p)}d&&(o.dataTypes=d);function h(_){o.data=_,o.dataLevel=s.dataLevel+1,o.dataTypes=[],s.definedProperties=new Set,o.parentData=s.data,o.dataNames=[...s.dataNames,_]}}t.extendSubschemaData=i;function a(o,{jtdDiscriminator:s,jtdMetadata:c,compositeRule:u,createErrors:l,allErrors:d}){u!==void 0&&(o.compositeRule=u),l!==void 0&&(o.createErrors=l),d!==void 0&&(o.allErrors=d),o.jtdDiscriminator=s,o.jtdMetadata=c}t.extendSubschemaMode=a}),Kne=V((t,e)=>{var r=e.exports=function(a,o,s){typeof o=="function"&&(s=o,o={}),s=o.cb||s;var c=typeof s=="function"?s:s.pre||function(){},u=s.post||function(){};n(o,c,u,a,"",a)};r.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0},r.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},r.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},r.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function n(a,o,s,c,u,l,d,p,f,h){if(c&&typeof c=="object"&&!Array.isArray(c)){o(c,u,l,d,p,f,h);for(var _ in c){var y=c[_];if(Array.isArray(y)){if(_ in r.arrayKeywords)for(var m=0;m{Object.defineProperty(t,"__esModule",{value:!0}),t.getSchemaRefs=t.resolveUrl=t.normalizeId=t._getFullPath=t.getFullPath=t.inlineRef=void 0;var e=lt(),r=Mh(),n=Kne(),i=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function a(y,m=!0){return typeof y=="boolean"?!0:m===!0?!s(y):m?c(y)<=m:!1}t.inlineRef=a;var o=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function s(y){for(let m in y){if(o.has(m))return!0;let v=y[m];if(Array.isArray(v)&&v.some(s)||typeof v=="object"&&s(v))return!0}return!1}function c(y){let m=0;for(let v in y){if(v==="$ref")return 1/0;if(m++,!i.has(v)&&(typeof y[v]=="object"&&(0,e.eachItem)(y[v],g=>m+=c(g)),m===1/0))return 1/0}return m}function u(y,m="",v){v!==!1&&(m=p(m));let g=y.parse(m);return l(y,g)}t.getFullPath=u;function l(y,m){return y.serialize(m).split("#")[0]+"#"}t._getFullPath=l;var d=/#\/?$/;function p(y){return y?y.replace(d,""):""}t.normalizeId=p;function f(y,m,v){return v=p(v),y.resolve(m,v)}t.resolveUrl=f;var h=/^[a-z_][-a-z0-9._]*$/i;function _(y,m){if(typeof y=="boolean")return{};let{schemaId:v,uriResolver:g}=this.opts,b=p(y[v]||m),S={"":b},x=u(g,b,!1),w={},E=new Set;return n(y,{allKeys:!0},(M,q,B,U)=>{if(U===void 0)return;let Y=x+q,me=S[U];typeof M[v]=="string"&&(me=Qe.call(this,M[v])),ft.call(this,M.$anchor),ft.call(this,M.$dynamicAnchor),S[q]=me;function Qe(fe){let F=this.opts.uriResolver.resolve;if(fe=p(me?F(me,fe):fe),E.has(fe))throw A(fe);E.add(fe);let I=this.refs[fe];return typeof I=="string"&&(I=this.refs[I]),typeof I=="object"?R(M,I.schema,fe):fe!==p(Y)&&(fe[0]==="#"?(R(M,w[fe],fe),w[fe]=M):this.refs[fe]=Y),fe}function ft(fe){if(typeof fe=="string"){if(!h.test(fe))throw new Error(`invalid anchor "${fe}"`);Qe.call(this,`#${fe}`)}}}),w;function R(M,q,B){if(q!==void 0&&!r(M,q))throw A(B)}function A(M){return new Error(`reference "${M}" resolves to more than one schema`)}}t.getSchemaRefs=_}),Fh=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getData=t.KeywordCxt=t.validateFunctionCode=void 0;var e=Bne(),r=Ih(),n=s2(),i=Ih(),a=Vne(),o=Gne(),s=Wne(),c=Be(),u=$a(),l=Lh(),d=lt(),p=qh();function f(P){if(x(P)&&(E(P),S(P))){m(P);return}h(P,()=>(0,e.topBoolOrEmptySchema)(P))}t.validateFunctionCode=f;function h({gen:P,validateName:O,schema:z,schemaEnv:Z,opts:J},ie){J.code.es5?P.func(O,(0,c._)`${u.default.data}, ${u.default.valCxt}`,Z.$async,()=>{P.code((0,c._)`"use strict"; ${g(z,J)}`),y(P,J),P.code(ie)}):P.func(O,(0,c._)`${u.default.data}, ${_(J)}`,Z.$async,()=>P.code(g(z,J)).code(ie))}function _(P){return(0,c._)`{${u.default.instancePath}="", ${u.default.parentData}, ${u.default.parentDataProperty}, ${u.default.rootData}=${u.default.data}${P.dynamicRef?(0,c._)`, ${u.default.dynamicAnchors}={}`:c.nil}}={}`}function y(P,O){P.if(u.default.valCxt,()=>{P.var(u.default.instancePath,(0,c._)`${u.default.valCxt}.${u.default.instancePath}`),P.var(u.default.parentData,(0,c._)`${u.default.valCxt}.${u.default.parentData}`),P.var(u.default.parentDataProperty,(0,c._)`${u.default.valCxt}.${u.default.parentDataProperty}`),P.var(u.default.rootData,(0,c._)`${u.default.valCxt}.${u.default.rootData}`),O.dynamicRef&&P.var(u.default.dynamicAnchors,(0,c._)`${u.default.valCxt}.${u.default.dynamicAnchors}`)},()=>{P.var(u.default.instancePath,(0,c._)`""`),P.var(u.default.parentData,(0,c._)`undefined`),P.var(u.default.parentDataProperty,(0,c._)`undefined`),P.var(u.default.rootData,u.default.data),O.dynamicRef&&P.var(u.default.dynamicAnchors,(0,c._)`{}`)})}function m(P){let{schema:O,opts:z,gen:Z}=P;h(P,()=>{z.$comment&&O.$comment&&U(P),M(P),Z.let(u.default.vErrors,null),Z.let(u.default.errors,0),z.unevaluated&&v(P),R(P),Y(P)})}function v(P){let{gen:O,validateName:z}=P;P.evaluated=O.const("evaluated",(0,c._)`${z}.evaluated`),O.if((0,c._)`${P.evaluated}.dynamicProps`,()=>O.assign((0,c._)`${P.evaluated}.props`,(0,c._)`undefined`)),O.if((0,c._)`${P.evaluated}.dynamicItems`,()=>O.assign((0,c._)`${P.evaluated}.items`,(0,c._)`undefined`))}function g(P,O){let z=typeof P=="object"&&P[O.schemaId];return z&&(O.code.source||O.code.process)?(0,c._)`/*# sourceURL=${z} */`:c.nil}function b(P,O){if(x(P)&&(E(P),S(P))){w(P,O);return}(0,e.boolOrEmptySchema)(P,O)}function S({schema:P,self:O}){if(typeof P=="boolean")return!P;for(let z in P)if(O.RULES.all[z])return!0;return!1}function x(P){return typeof P.schema!="boolean"}function w(P,O){let{schema:z,gen:Z,opts:J}=P;J.$comment&&z.$comment&&U(P),q(P),B(P);let ie=Z.const("_errs",u.default.errors);R(P,ie),Z.var(O,(0,c._)`${ie} === ${u.default.errors}`)}function E(P){(0,d.checkUnknownRules)(P),A(P)}function R(P,O){if(P.opts.jtd)return Qe(P,[],!1,O);let z=(0,r.getSchemaTypes)(P.schema),Z=(0,r.coerceAndCheckDataType)(P,z);Qe(P,z,!Z,O)}function A(P){let{schema:O,errSchemaPath:z,opts:Z,self:J}=P;O.$ref&&Z.ignoreKeywordsWithRef&&(0,d.schemaHasRulesButRef)(O,J.RULES)&&J.logger.warn(`$ref: keywords ignored in schema at path "${z}"`)}function M(P){let{schema:O,opts:z}=P;O.default!==void 0&&z.useDefaults&&z.strictSchema&&(0,d.checkStrictMode)(P,"default is ignored in the schema root")}function q(P){let O=P.schema[P.opts.schemaId];O&&(P.baseId=(0,l.resolveUrl)(P.opts.uriResolver,P.baseId,O))}function B(P){if(P.schema.$async&&!P.schemaEnv.$async)throw new Error("async schema in sync schema")}function U({gen:P,schemaEnv:O,schema:z,errSchemaPath:Z,opts:J}){let ie=z.$comment;if(J.$comment===!0)P.code((0,c._)`${u.default.self}.logger.log(${ie})`);else if(typeof J.$comment=="function"){let et=(0,c.str)`${Z}/$comment`,Zt=P.scopeValue("root",{ref:O.root});P.code((0,c._)`${u.default.self}.opts.$comment(${ie}, ${et}, ${Zt}.schema)`)}}function Y(P){let{gen:O,schemaEnv:z,validateName:Z,ValidationError:J,opts:ie}=P;z.$async?O.if((0,c._)`${u.default.errors} === 0`,()=>O.return(u.default.data),()=>O.throw((0,c._)`new ${J}(${u.default.vErrors})`)):(O.assign((0,c._)`${Z}.errors`,u.default.vErrors),ie.unevaluated&&me(P),O.return((0,c._)`${u.default.errors} === 0`))}function me({gen:P,evaluated:O,props:z,items:Z}){z instanceof c.Name&&P.assign((0,c._)`${O}.props`,z),Z instanceof c.Name&&P.assign((0,c._)`${O}.items`,Z)}function Qe(P,O,z,Z){let{gen:J,schema:ie,data:et,allErrors:Zt,opts:gt,self:vt}=P,{RULES:tt}=vt;if(ie.$ref&&(gt.ignoreKeywordsWithRef||!(0,d.schemaHasRulesButRef)(ie,tt))){J.block(()=>K(P,"$ref",tt.all.$ref.definition));return}gt.jtd||fe(P,O),J.block(()=>{for(let Ct of tt.rules)Yr(Ct);Yr(tt.post)});function Yr(Ct){(0,n.shouldUseGroup)(ie,Ct)&&(Ct.type?(J.if((0,i.checkDataType)(Ct.type,et,gt.strictNumbers)),ft(P,Ct),O.length===1&&O[0]===Ct.type&&z&&(J.else(),(0,i.reportTypeError)(P)),J.endIf()):ft(P,Ct),Zt||J.if((0,c._)`${u.default.errors} === ${Z||0}`))}}function ft(P,O){let{gen:z,schema:Z,opts:{useDefaults:J}}=P;J&&(0,a.assignDefaults)(P,O.type),z.block(()=>{for(let ie of O.rules)(0,n.shouldUseRule)(Z,ie)&&K(P,ie.keyword,ie.definition,O.type)})}function fe(P,O){P.schemaEnv.meta||!P.opts.strictTypes||(F(P,O),P.opts.allowUnionTypes||I(P,O),D(P,P.dataTypes))}function F(P,O){if(O.length){if(!P.dataTypes.length){P.dataTypes=O;return}O.forEach(z=>{$(P.dataTypes,z)||N(P,`type "${z}" not allowed by context "${P.dataTypes.join(",")}"`)}),T(P,O)}}function I(P,O){O.length>1&&!(O.length===2&&O.includes("null"))&&N(P,"use allowUnionTypes to allow union type keyword")}function D(P,O){let z=P.self.RULES.all;for(let Z in z){let J=z[Z];if(typeof J=="object"&&(0,n.shouldUseRule)(P.schema,J)){let{type:ie}=J.definition;ie.length&&!ie.some(et=>C(O,et))&&N(P,`missing type "${ie.join(",")}" for keyword "${Z}"`)}}}function C(P,O){return P.includes(O)||O==="number"&&P.includes("integer")}function $(P,O){return P.includes(O)||O==="integer"&&P.includes("number")}function T(P,O){let z=[];for(let Z of P.dataTypes)$(O,Z)?z.push(Z):O.includes("integer")&&Z==="number"&&z.push("integer");P.dataTypes=z}function N(P,O){let z=P.schemaEnv.baseId+P.errSchemaPath;O+=` at "${z}" (strictTypes)`,(0,d.checkStrictMode)(P,O,P.opts.strictTypes)}class W{constructor(O,z,Z){if((0,o.validateKeywordUsage)(O,z,Z),this.gen=O.gen,this.allErrors=O.allErrors,this.keyword=Z,this.data=O.data,this.schema=O.schema[Z],this.$data=z.$data&&O.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,d.schemaRefOrVal)(O,this.schema,Z,this.$data),this.schemaType=z.schemaType,this.parentSchema=O.schema,this.params={},this.it=O,this.def=z,this.$data)this.schemaCode=O.gen.const("vSchema",je(this.$data,O));else if(this.schemaCode=this.schemaValue,!(0,o.validSchemaType)(this.schema,z.schemaType,z.allowUndefined))throw new Error(`${Z} value must be ${JSON.stringify(z.schemaType)}`);("code"in z?z.trackErrors:z.errors!==!1)&&(this.errsCount=O.gen.const("_errs",u.default.errors))}result(O,z,Z){this.failResult((0,c.not)(O),z,Z)}failResult(O,z,Z){this.gen.if(O),Z?Z():this.error(),z?(this.gen.else(),z(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(O,z){this.failResult((0,c.not)(O),void 0,z)}fail(O){if(O===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(O),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(O){if(!this.$data)return this.fail(O);let{schemaCode:z}=this;this.fail((0,c._)`${z} !== undefined && (${(0,c.or)(this.invalid$data(),O)})`)}error(O,z,Z){if(z){this.setParams(z),this._error(O,Z),this.setParams({});return}this._error(O,Z)}_error(O,z){(O?p.reportExtraError:p.reportError)(this,this.def.error,z)}$dataError(){(0,p.reportError)(this,this.def.$dataError||p.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,p.resetErrorsCount)(this.gen,this.errsCount)}ok(O){this.allErrors||this.gen.if(O)}setParams(O,z){z?Object.assign(this.params,O):this.params=O}block$data(O,z,Z=c.nil){this.gen.block(()=>{this.check$data(O,Z),z()})}check$data(O=c.nil,z=c.nil){if(!this.$data)return;let{gen:Z,schemaCode:J,schemaType:ie,def:et}=this;Z.if((0,c.or)((0,c._)`${J} === undefined`,z)),O!==c.nil&&Z.assign(O,!0),(ie.length||et.validateSchema)&&(Z.elseIf(this.invalid$data()),this.$dataError(),O!==c.nil&&Z.assign(O,!1)),Z.else()}invalid$data(){let{gen:O,schemaCode:z,schemaType:Z,def:J,it:ie}=this;return(0,c.or)(et(),Zt());function et(){if(Z.length){if(!(z instanceof c.Name))throw new Error("ajv implementation error");let gt=Array.isArray(Z)?Z:[Z];return(0,c._)`${(0,i.checkDataTypes)(gt,z,ie.opts.strictNumbers,i.DataType.Wrong)}`}return c.nil}function Zt(){if(J.validateSchema){let gt=O.scopeValue("validate$data",{ref:J.validateSchema});return(0,c._)`!${gt}(${z})`}return c.nil}}subschema(O,z){let Z=(0,s.getSubschema)(this.it,O);(0,s.extendSubschemaData)(Z,this.it,O),(0,s.extendSubschemaMode)(Z,O);let J={...this.it,...Z,items:void 0,props:void 0};return b(J,z),J}mergeEvaluated(O,z){let{it:Z,gen:J}=this;Z.opts.unevaluated&&(Z.props!==!0&&O.props!==void 0&&(Z.props=d.mergeEvaluated.props(J,O.props,Z.props,z)),Z.items!==!0&&O.items!==void 0&&(Z.items=d.mergeEvaluated.items(J,O.items,Z.items,z)))}mergeValidEvaluated(O,z){let{it:Z,gen:J}=this;if(Z.opts.unevaluated&&(Z.props!==!0||Z.items!==!0))return J.if(z,()=>this.mergeEvaluated(O,c.Name)),!0}}t.KeywordCxt=W;function K(P,O,z,Z){let J=new W(P,z,O);"code"in z?z.code(J,Z):J.$data&&z.validate?(0,o.funcKeywordCode)(J,z):"macro"in z?(0,o.macroKeywordCode)(J,z):(z.compile||z.validate)&&(0,o.funcKeywordCode)(J,z)}var pe=/^\/(?:[^~]|~0|~1)*$/,ce=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function je(P,{dataLevel:O,dataNames:z,dataPathArr:Z}){let J,ie;if(P==="")return u.default.rootData;if(P[0]==="/"){if(!pe.test(P))throw new Error(`Invalid JSON-pointer: ${P}`);J=P,ie=u.default.rootData}else{let vt=ce.exec(P);if(!vt)throw new Error(`Invalid JSON-pointer: ${P}`);let tt=+vt[1];if(J=vt[2],J==="#"){if(tt>=O)throw new Error(gt("property/index",tt));return Z[O-tt]}if(tt>O)throw new Error(gt("data",tt));if(ie=z[O-tt],!J)return ie}let et=ie,Zt=J.split("/");for(let vt of Zt)vt&&(ie=(0,c._)`${ie}${(0,c.getProperty)((0,d.unescapeJsonPointer)(vt))}`,et=(0,c._)`${et} && ${ie}`);return et;function gt(vt,tt){return`Cannot access ${vt} ${tt} levels up, current level is ${O}`}}t.getData=je}),I$=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});class e extends Error{constructor(n){super("validation failed"),this.errors=n,this.ajv=this.validation=!0}}t.default=e}),Zh=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Lh();class r extends Error{constructor(i,a,o,s){super(s||`can't resolve reference ${o} from id ${a}`),this.missingRef=(0,e.resolveUrl)(i,a,o),this.missingSchema=(0,e.normalizeId)((0,e.getFullPath)(i,this.missingRef))}}t.default=r}),P$=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.resolveSchema=t.getCompilingSchema=t.resolveRef=t.compileSchema=t.SchemaEnv=void 0;var e=Be(),r=I$(),n=$a(),i=Lh(),a=lt(),o=Fh();class s{constructor(v){var g;this.refs={},this.dynamicAnchors={};let b;typeof v.schema=="object"&&(b=v.schema),this.schema=v.schema,this.schemaId=v.schemaId,this.root=v.root||this,this.baseId=(g=v.baseId)!==null&&g!==void 0?g:(0,i.normalizeId)(b?.[v.schemaId||"$id"]),this.schemaPath=v.schemaPath,this.localRefs=v.localRefs,this.meta=v.meta,this.$async=b?.$async,this.refs={}}}t.SchemaEnv=s;function c(m){let v=d.call(this,m);if(v)return v;let g=(0,i.getFullPath)(this.opts.uriResolver,m.root.baseId),{es5:b,lines:S}=this.opts.code,{ownProperties:x}=this.opts,w=new e.CodeGen(this.scope,{es5:b,lines:S,ownProperties:x}),E;m.$async&&(E=w.scopeValue("Error",{ref:r.default,code:(0,e._)`require("ajv/dist/runtime/validation_error").default`}));let R=w.scopeName("validate");m.validateName=R;let A={gen:w,allErrors:this.opts.allErrors,data:n.default.data,parentData:n.default.parentData,parentDataProperty:n.default.parentDataProperty,dataNames:[n.default.data],dataPathArr:[e.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:w.scopeValue("schema",this.opts.code.source===!0?{ref:m.schema,code:(0,e.stringify)(m.schema)}:{ref:m.schema}),validateName:R,ValidationError:E,schema:m.schema,schemaEnv:m,rootId:g,baseId:m.baseId||g,schemaPath:e.nil,errSchemaPath:m.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,e._)`""`,opts:this.opts,self:this},M;try{this._compilations.add(m),(0,o.validateFunctionCode)(A),w.optimize(this.opts.code.optimize);let q=w.toString();M=`${w.scopeRefs(n.default.scope)}return ${q}`,this.opts.code.process&&(M=this.opts.code.process(M,m));let U=new Function(`${n.default.self}`,`${n.default.scope}`,M)(this,this.scope.get());if(this.scope.value(R,{ref:U}),U.errors=null,U.schema=m.schema,U.schemaEnv=m,m.$async&&(U.$async=!0),this.opts.code.source===!0&&(U.source={validateName:R,validateCode:q,scopeValues:w._values}),this.opts.unevaluated){let{props:Y,items:me}=A;U.evaluated={props:Y instanceof e.Name?void 0:Y,items:me instanceof e.Name?void 0:me,dynamicProps:Y instanceof e.Name,dynamicItems:me instanceof e.Name},U.source&&(U.source.evaluated=(0,e.stringify)(U.evaluated))}return m.validate=U,m}catch(q){throw delete m.validate,delete m.validateName,M&&this.logger.error("Error compiling schema, function code:",M),q}finally{this._compilations.delete(m)}}t.compileSchema=c;function u(m,v,g){var b;g=(0,i.resolveUrl)(this.opts.uriResolver,v,g);let S=m.refs[g];if(S)return S;let x=f.call(this,m,g);if(x===void 0){let w=(b=m.localRefs)===null||b===void 0?void 0:b[g],{schemaId:E}=this.opts;w&&(x=new s({schema:w,schemaId:E,root:m,baseId:v}))}if(x!==void 0)return m.refs[g]=l.call(this,x)}t.resolveRef=u;function l(m){return(0,i.inlineRef)(m.schema,this.opts.inlineRefs)?m.schema:m.validate?m:c.call(this,m)}function d(m){for(let v of this._compilations)if(p(v,m))return v}t.getCompilingSchema=d;function p(m,v){return m.schema===v.schema&&m.root===v.root&&m.baseId===v.baseId}function f(m,v){let g;for(;typeof(g=this.refs[v])=="string";)v=g;return g||this.schemas[v]||h.call(this,m,v)}function h(m,v){let g=this.opts.uriResolver.parse(v),b=(0,i._getFullPath)(this.opts.uriResolver,g),S=(0,i.getFullPath)(this.opts.uriResolver,m.baseId,void 0);if(Object.keys(m.schema).length>0&&b===S)return y.call(this,g,m);let x=(0,i.normalizeId)(b),w=this.refs[x]||this.schemas[x];if(typeof w=="string"){let E=h.call(this,m,w);return typeof E?.schema!="object"?void 0:y.call(this,g,E)}if(typeof w?.schema=="object"){if(w.validate||c.call(this,w),x===(0,i.normalizeId)(v)){let{schema:E}=w,{schemaId:R}=this.opts,A=E[R];return A&&(S=(0,i.resolveUrl)(this.opts.uriResolver,S,A)),new s({schema:E,schemaId:R,root:m,baseId:S})}return y.call(this,g,w)}}t.resolveSchema=h;var _=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function y(m,{baseId:v,schema:g,root:b}){var S;if(((S=m.fragment)===null||S===void 0?void 0:S[0])!=="/")return;for(let E of m.fragment.slice(1).split("/")){if(typeof g=="boolean")return;let R=g[(0,a.unescapeFragment)(E)];if(R===void 0)return;g=R;let A=typeof g=="object"&&g[this.opts.schemaId];!_.has(E)&&A&&(v=(0,i.resolveUrl)(this.opts.uriResolver,v,A))}let x;if(typeof g!="boolean"&&g.$ref&&!(0,a.schemaHasRulesButRef)(g,this.RULES)){let E=(0,i.resolveUrl)(this.opts.uriResolver,v,g.$ref);x=h.call(this,b,E)}let{schemaId:w}=this.opts;if(x=x||new s({schema:g,schemaId:w,root:b,baseId:v}),x.schema!==x.root.schema)return x}}),Jne=V((t,e)=>{e.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}}),Xne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=r2();e.code='require("ajv/dist/runtime/uri").default',t.default=e}),Yne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;var e=Fh();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return e.KeywordCxt}});var r=Be();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return r._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return r.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return r.CodeGen}});var n=I$(),i=Zh(),a=o2(),o=P$(),s=Be(),c=Lh(),u=Ih(),l=lt(),d=Jne(),p=Xne(),f=(F,I)=>new RegExp(F,I);f.code="new RegExp";var h=["removeAdditional","useDefaults","coerceTypes"],_=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),y={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},m={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},v=200;function g(F){var I,D,C,$,T,N,W,K,pe,ce,je,P,O,z,Z,J,ie,et,Zt,gt,vt,tt,Yr,Ct,ka;let Rn=F.strict,Ta=(I=F.code)===null||I===void 0?void 0:I.optimize,Tc=Ta===!0||Ta===void 0?1:Ta||0,Ic=(C=(D=F.code)===null||D===void 0?void 0:D.regExp)!==null&&C!==void 0?C:f,Ig=($=F.uriResolver)!==null&&$!==void 0?$:p.default;return{strictSchema:(N=(T=F.strictSchema)!==null&&T!==void 0?T:Rn)!==null&&N!==void 0?N:!0,strictNumbers:(K=(W=F.strictNumbers)!==null&&W!==void 0?W:Rn)!==null&&K!==void 0?K:!0,strictTypes:(ce=(pe=F.strictTypes)!==null&&pe!==void 0?pe:Rn)!==null&&ce!==void 0?ce:"log",strictTuples:(P=(je=F.strictTuples)!==null&&je!==void 0?je:Rn)!==null&&P!==void 0?P:"log",strictRequired:(z=(O=F.strictRequired)!==null&&O!==void 0?O:Rn)!==null&&z!==void 0?z:!1,code:F.code?{...F.code,optimize:Tc,regExp:Ic}:{optimize:Tc,regExp:Ic},loopRequired:(Z=F.loopRequired)!==null&&Z!==void 0?Z:v,loopEnum:(J=F.loopEnum)!==null&&J!==void 0?J:v,meta:(ie=F.meta)!==null&&ie!==void 0?ie:!0,messages:(et=F.messages)!==null&&et!==void 0?et:!0,inlineRefs:(Zt=F.inlineRefs)!==null&&Zt!==void 0?Zt:!0,schemaId:(gt=F.schemaId)!==null&>!==void 0?gt:"$id",addUsedSchema:(vt=F.addUsedSchema)!==null&&vt!==void 0?vt:!0,validateSchema:(tt=F.validateSchema)!==null&&tt!==void 0?tt:!0,validateFormats:(Yr=F.validateFormats)!==null&&Yr!==void 0?Yr:!0,unicodeRegExp:(Ct=F.unicodeRegExp)!==null&&Ct!==void 0?Ct:!0,int32range:(ka=F.int32range)!==null&&ka!==void 0?ka:!0,uriResolver:Ig}}class b{constructor(I={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,I=this.opts={...I,...g(I)};let{es5:D,lines:C}=this.opts.code;this.scope=new s.ValueScope({scope:{},prefixes:_,es5:D,lines:C}),this.logger=q(I.logger);let $=I.validateFormats;I.validateFormats=!1,this.RULES=(0,a.getRules)(),S.call(this,y,I,"NOT SUPPORTED"),S.call(this,m,I,"DEPRECATED","warn"),this._metaOpts=A.call(this),I.formats&&E.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),I.keywords&&R.call(this,I.keywords),typeof I.meta=="object"&&this.addMetaSchema(I.meta),w.call(this),I.validateFormats=$}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:I,meta:D,schemaId:C}=this.opts,$=d;C==="id"&&($={...d},$.id=$.$id,delete $.$id),D&&I&&this.addMetaSchema($,$[C],!1)}defaultMeta(){let{meta:I,schemaId:D}=this.opts;return this.opts.defaultMeta=typeof I=="object"?I[D]||I:void 0}validate(I,D){let C;if(typeof I=="string"){if(C=this.getSchema(I),!C)throw new Error(`no schema with key or ref "${I}"`)}else C=this.compile(I);let $=C(D);return"$async"in C||(this.errors=C.errors),$}compile(I,D){let C=this._addSchema(I,D);return C.validate||this._compileSchemaEnv(C)}compileAsync(I,D){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:C}=this.opts;return $.call(this,I,D);async function $(ce,je){await T.call(this,ce.$schema);let P=this._addSchema(ce,je);return P.validate||N.call(this,P)}async function T(ce){ce&&!this.getSchema(ce)&&await $.call(this,{$ref:ce},!0)}async function N(ce){try{return this._compileSchemaEnv(ce)}catch(je){if(!(je instanceof i.default))throw je;return W.call(this,je),await K.call(this,je.missingSchema),N.call(this,ce)}}function W({missingSchema:ce,missingRef:je}){if(this.refs[ce])throw new Error(`AnySchema ${ce} is loaded but ${je} cannot be resolved`)}async function K(ce){let je=await pe.call(this,ce);this.refs[ce]||await T.call(this,je.$schema),this.refs[ce]||this.addSchema(je,ce,D)}async function pe(ce){let je=this._loading[ce];if(je)return je;try{return await(this._loading[ce]=C(ce))}finally{delete this._loading[ce]}}}addSchema(I,D,C,$=this.opts.validateSchema){if(Array.isArray(I)){for(let N of I)this.addSchema(N,void 0,C,$);return this}let T;if(typeof I=="object"){let{schemaId:N}=this.opts;if(T=I[N],T!==void 0&&typeof T!="string")throw new Error(`schema ${N} must be string`)}return D=(0,c.normalizeId)(D||T),this._checkUnique(D),this.schemas[D]=this._addSchema(I,C,D,$,!0),this}addMetaSchema(I,D,C=this.opts.validateSchema){return this.addSchema(I,D,!0,C),this}validateSchema(I,D){if(typeof I=="boolean")return!0;let C;if(C=I.$schema,C!==void 0&&typeof C!="string")throw new Error("$schema must be a string");if(C=C||this.opts.defaultMeta||this.defaultMeta(),!C)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let $=this.validate(C,I);if(!$&&D){let T="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(T);else throw new Error(T)}return $}getSchema(I){let D;for(;typeof(D=x.call(this,I))=="string";)I=D;if(D===void 0){let{schemaId:C}=this.opts,$=new o.SchemaEnv({schema:{},schemaId:C});if(D=o.resolveSchema.call(this,$,I),!D)return;this.refs[I]=D}return D.validate||this._compileSchemaEnv(D)}removeSchema(I){if(I instanceof RegExp)return this._removeAllSchemas(this.schemas,I),this._removeAllSchemas(this.refs,I),this;switch(typeof I){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let D=x.call(this,I);return typeof D=="object"&&this._cache.delete(D.schema),delete this.schemas[I],delete this.refs[I],this}case"object":{let D=I;this._cache.delete(D);let C=I[this.opts.schemaId];return C&&(C=(0,c.normalizeId)(C),delete this.schemas[C],delete this.refs[C]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(I){for(let D of I)this.addKeyword(D);return this}addKeyword(I,D){let C;if(typeof I=="string")C=I,typeof D=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),D.keyword=C);else if(typeof I=="object"&&D===void 0){if(D=I,C=D.keyword,Array.isArray(C)&&!C.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(U.call(this,C,D),!D)return(0,l.eachItem)(C,T=>Y.call(this,T)),this;Qe.call(this,D);let $={...D,type:(0,u.getJSONTypes)(D.type),schemaType:(0,u.getJSONTypes)(D.schemaType)};return(0,l.eachItem)(C,$.type.length===0?T=>Y.call(this,T,$):T=>$.type.forEach(N=>Y.call(this,T,$,N))),this}getKeyword(I){let D=this.RULES.all[I];return typeof D=="object"?D.definition:!!D}removeKeyword(I){let{RULES:D}=this;delete D.keywords[I],delete D.all[I];for(let C of D.rules){let $=C.rules.findIndex(T=>T.keyword===I);$>=0&&C.rules.splice($,1)}return this}addFormat(I,D){return typeof D=="string"&&(D=new RegExp(D)),this.formats[I]=D,this}errorsText(I=this.errors,{separator:D=", ",dataVar:C="data"}={}){return!I||I.length===0?"No errors":I.map($=>`${C}${$.instancePath} ${$.message}`).reduce(($,T)=>$+D+T)}$dataMetaSchema(I,D){let C=this.RULES.all;I=JSON.parse(JSON.stringify(I));for(let $ of D){let T=$.split("/").slice(1),N=I;for(let W of T)N=N[W];for(let W in C){let K=C[W];if(typeof K!="object")continue;let{$data:pe}=K.definition,ce=N[W];pe&&ce&&(N[W]=fe(ce))}}return I}_removeAllSchemas(I,D){for(let C in I){let $=I[C];(!D||D.test(C))&&(typeof $=="string"?delete I[C]:$&&!$.meta&&(this._cache.delete($.schema),delete I[C]))}}_addSchema(I,D,C,$=this.opts.validateSchema,T=this.opts.addUsedSchema){let N,{schemaId:W}=this.opts;if(typeof I=="object")N=I[W];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof I!="boolean")throw new Error("schema must be object or boolean")}let K=this._cache.get(I);if(K!==void 0)return K;C=(0,c.normalizeId)(N||C);let pe=c.getSchemaRefs.call(this,I,C);return K=new o.SchemaEnv({schema:I,schemaId:W,meta:D,baseId:C,localRefs:pe}),this._cache.set(K.schema,K),T&&!C.startsWith("#")&&(C&&this._checkUnique(C),this.refs[C]=K),$&&this.validateSchema(I,!0),K}_checkUnique(I){if(this.schemas[I]||this.refs[I])throw new Error(`schema with key or id "${I}" already exists`)}_compileSchemaEnv(I){if(I.meta?this._compileMetaSchema(I):o.compileSchema.call(this,I),!I.validate)throw new Error("ajv implementation error");return I.validate}_compileMetaSchema(I){let D=this.opts;this.opts=this._metaOpts;try{o.compileSchema.call(this,I)}finally{this.opts=D}}}b.ValidationError=n.default,b.MissingRefError=i.default,t.default=b;function S(F,I,D,C="error"){for(let $ in F){let T=$;T in I&&this.logger[C](`${D}: option ${$}. ${F[T]}`)}}function x(F){return F=(0,c.normalizeId)(F),this.schemas[F]||this.refs[F]}function w(){let F=this.opts.schemas;if(F)if(Array.isArray(F))this.addSchema(F);else for(let I in F)this.addSchema(F[I],I)}function E(){for(let F in this.opts.formats){let I=this.opts.formats[F];I&&this.addFormat(F,I)}}function R(F){if(Array.isArray(F)){this.addVocabulary(F);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let I in F){let D=F[I];D.keyword||(D.keyword=I),this.addKeyword(D)}}function A(){let F={...this.opts};for(let I of h)delete F[I];return F}var M={log(){},warn(){},error(){}};function q(F){if(F===!1)return M;if(F===void 0)return console;if(F.log&&F.warn&&F.error)return F;throw new Error("logger must implement log, warn and error methods")}var B=/^[a-z_$][a-z0-9_$:-]*$/i;function U(F,I){let{RULES:D}=this;if((0,l.eachItem)(F,C=>{if(D.keywords[C])throw new Error(`Keyword ${C} is already defined`);if(!B.test(C))throw new Error(`Keyword ${C} has invalid name`)}),!!I&&I.$data&&!("code"in I||"validate"in I))throw new Error('$data keyword must have "code" or "validate" function')}function Y(F,I,D){var C;let $=I?.post;if(D&&$)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:T}=this,N=$?T.post:T.rules.find(({type:K})=>K===D);if(N||(N={type:D,rules:[]},T.rules.push(N)),T.keywords[F]=!0,!I)return;let W={keyword:F,definition:{...I,type:(0,u.getJSONTypes)(I.type),schemaType:(0,u.getJSONTypes)(I.schemaType)}};I.before?me.call(this,N,W,I.before):N.rules.push(W),T.all[F]=W,(C=I.implements)===null||C===void 0||C.forEach(K=>this.addKeyword(K))}function me(F,I,D){let C=F.rules.findIndex($=>$.keyword===D);C>=0?F.rules.splice(C,0,I):(F.rules.push(I),this.logger.warn(`rule ${D} is not defined`))}function Qe(F){let{metaSchema:I}=F;I!==void 0&&(F.$data&&this.opts.$data&&(I=fe(I)),F.validateSchema=this.compile(I,!0))}var ft={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function fe(F){return{anyOf:[F,ft]}}}),Qne=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};t.default=e}),eie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.callRef=t.getValidate=void 0;var e=Zh(),r=Xn(),n=Be(),i=$a(),a=P$(),o=lt(),s={keyword:"$ref",schemaType:"string",code(l){let{gen:d,schema:p,it:f}=l,{baseId:h,schemaEnv:_,validateName:y,opts:m,self:v}=f,{root:g}=_;if((p==="#"||p==="#/")&&h===g.baseId)return S();let b=a.resolveRef.call(v,g,h,p);if(b===void 0)throw new e.default(f.opts.uriResolver,h,p);if(b instanceof a.SchemaEnv)return x(b);return w(b);function S(){if(_===g)return u(l,y,_,_.$async);let E=d.scopeValue("root",{ref:g});return u(l,(0,n._)`${E}.validate`,g,g.$async)}function x(E){let R=c(l,E);u(l,R,E,E.$async)}function w(E){let R=d.scopeValue("schema",m.code.source===!0?{ref:E,code:(0,n.stringify)(E)}:{ref:E}),A=d.name("valid"),M=l.subschema({schema:E,dataTypes:[],schemaPath:n.nil,topSchemaRef:R,errSchemaPath:p},A);l.mergeEvaluated(M),l.ok(A)}}};function c(l,d){let{gen:p}=l;return d.validate?p.scopeValue("validate",{ref:d.validate}):(0,n._)`${p.scopeValue("wrapper",{ref:d})}.validate`}t.getValidate=c;function u(l,d,p,f){let{gen:h,it:_}=l,{allErrors:y,schemaEnv:m,opts:v}=_,g=v.passContext?i.default.this:n.nil;f?b():S();function b(){if(!m.$async)throw new Error("async schema referenced by sync schema");let E=h.let("valid");h.try(()=>{h.code((0,n._)`await ${(0,r.callValidateCode)(l,d,g)}`),w(d),y||h.assign(E,!0)},R=>{h.if((0,n._)`!(${R} instanceof ${_.ValidationError})`,()=>h.throw(R)),x(R),y||h.assign(E,!1)}),l.ok(E)}function S(){l.result((0,r.callValidateCode)(l,d,g),()=>w(d),()=>x(d))}function x(E){let R=(0,n._)`${E}.errors`;h.assign(i.default.vErrors,(0,n._)`${i.default.vErrors} === null ? ${R} : ${i.default.vErrors}.concat(${R})`),h.assign(i.default.errors,(0,n._)`${i.default.vErrors}.length`)}function w(E){var R;if(!_.opts.unevaluated)return;let A=(R=p?.validate)===null||R===void 0?void 0:R.evaluated;if(_.props!==!0)if(A&&!A.dynamicProps)A.props!==void 0&&(_.props=o.mergeEvaluated.props(h,A.props,_.props));else{let M=h.var("props",(0,n._)`${E}.evaluated.props`);_.props=o.mergeEvaluated.props(h,M,_.props,n.Name)}if(_.items!==!0)if(A&&!A.dynamicItems)A.items!==void 0&&(_.items=o.mergeEvaluated.items(h,A.items,_.items));else{let M=h.var("items",(0,n._)`${E}.evaluated.items`);_.items=o.mergeEvaluated.items(h,M,_.items,n.Name)}}}t.callRef=u,t.default=s}),tie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Qne(),r=eie(),n=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",e.default,r.default];t.default=n}),rie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r=e.operators,n={maximum:{okStr:"<=",ok:r.LTE,fail:r.GT},minimum:{okStr:">=",ok:r.GTE,fail:r.LT},exclusiveMaximum:{okStr:"<",ok:r.LT,fail:r.GTE},exclusiveMinimum:{okStr:">",ok:r.GT,fail:r.LTE}},i={message:({keyword:o,schemaCode:s})=>(0,e.str)`must be ${n[o].okStr} ${s}`,params:({keyword:o,schemaCode:s})=>(0,e._)`{comparison: ${n[o].okStr}, limit: ${s}}`},a={keyword:Object.keys(n),type:"number",schemaType:"number",$data:!0,error:i,code(o){let{keyword:s,data:c,schemaCode:u}=o;o.fail$data((0,e._)`${c} ${n[s].fail} ${u} || isNaN(${c})`)}};t.default=a}),nie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r={message:({schemaCode:i})=>(0,e.str)`must be multiple of ${i}`,params:({schemaCode:i})=>(0,e._)`{multipleOf: ${i}}`},n={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:r,code(i){let{gen:a,data:o,schemaCode:s,it:c}=i,u=c.opts.multipleOfPrecision,l=a.let("res"),d=u?(0,e._)`Math.abs(Math.round(${l}) - ${l}) > 1e-${u}`:(0,e._)`${l} !== parseInt(${l})`;i.fail$data((0,e._)`(${s} === 0 || (${l} = ${o}/${s}, ${d}))`)}};t.default=n}),iie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});function e(r){let n=r.length,i=0,a=0,o;for(;a=55296&&o<=56319&&a{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r=lt(),n=iie(),i={message({keyword:o,schemaCode:s}){let c=o==="maxLength"?"more":"fewer";return(0,e.str)`must NOT have ${c} than ${s} characters`},params:({schemaCode:o})=>(0,e._)`{limit: ${o}}`},a={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:i,code(o){let{keyword:s,data:c,schemaCode:u,it:l}=o,d=s==="maxLength"?e.operators.GT:e.operators.LT,p=l.opts.unicode===!1?(0,e._)`${c}.length`:(0,e._)`${(0,r.useFunc)(o.gen,n.default)}(${c})`;o.fail$data((0,e._)`${p} ${d} ${u}`)}};t.default=a}),oie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xn(),r=Be(),n={message:({schemaCode:a})=>(0,r.str)`must match pattern "${a}"`,params:({schemaCode:a})=>(0,r._)`{pattern: ${a}}`},i={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:n,code(a){let{data:o,$data:s,schema:c,schemaCode:u,it:l}=a,d=l.opts.unicodeRegExp?"u":"",p=s?(0,r._)`(new RegExp(${u}, ${d}))`:(0,e.usePattern)(a,c);a.fail$data((0,r._)`!${p}.test(${o})`)}};t.default=i}),sie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r={message({keyword:i,schemaCode:a}){let o=i==="maxProperties"?"more":"fewer";return(0,e.str)`must NOT have ${o} than ${a} properties`},params:({schemaCode:i})=>(0,e._)`{limit: ${i}}`},n={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:r,code(i){let{keyword:a,data:o,schemaCode:s}=i,c=a==="maxProperties"?e.operators.GT:e.operators.LT;i.fail$data((0,e._)`Object.keys(${o}).length ${c} ${s}`)}};t.default=n}),cie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xn(),r=Be(),n=lt(),i={message:({params:{missingProperty:o}})=>(0,r.str)`must have required property '${o}'`,params:({params:{missingProperty:o}})=>(0,r._)`{missingProperty: ${o}}`},a={keyword:"required",type:"object",schemaType:"array",$data:!0,error:i,code(o){let{gen:s,schema:c,schemaCode:u,data:l,$data:d,it:p}=o,{opts:f}=p;if(!d&&c.length===0)return;let h=c.length>=f.loopRequired;if(p.allErrors?_():y(),f.strictRequired){let g=o.parentSchema.properties,{definedProperties:b}=o.it;for(let S of c)if(g?.[S]===void 0&&!b.has(S)){let x=p.schemaEnv.baseId+p.errSchemaPath,w=`required property "${S}" is not defined at "${x}" (strictRequired)`;(0,n.checkStrictMode)(p,w,p.opts.strictRequired)}}function _(){if(h||d)o.block$data(r.nil,m);else for(let g of c)(0,e.checkReportMissingProp)(o,g)}function y(){let g=s.let("missing");if(h||d){let b=s.let("valid",!0);o.block$data(b,()=>v(g,b)),o.ok(b)}else s.if((0,e.checkMissingProp)(o,c,g)),(0,e.reportMissingProp)(o,g),s.else()}function m(){s.forOf("prop",u,g=>{o.setParams({missingProperty:g}),s.if((0,e.noPropertyInData)(s,l,g,f.ownProperties),()=>o.error())})}function v(g,b){o.setParams({missingProperty:g}),s.forOf(g,u,()=>{s.assign(b,(0,e.propertyInData)(s,l,g,f.ownProperties)),s.if((0,r.not)(b),()=>{o.error(),s.break()})},r.nil)}}};t.default=a}),uie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r={message({keyword:i,schemaCode:a}){let o=i==="maxItems"?"more":"fewer";return(0,e.str)`must NOT have ${o} than ${a} items`},params:({schemaCode:i})=>(0,e._)`{limit: ${i}}`},n={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:r,code(i){let{keyword:a,data:o,schemaCode:s}=i,c=a==="maxItems"?e.operators.GT:e.operators.LT;i.fail$data((0,e._)`${o}.length ${c} ${s}`)}};t.default=n}),R$=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Mh();e.code='require("ajv/dist/runtime/equal").default',t.default=e}),lie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ih(),r=Be(),n=lt(),i=R$(),a={message:({params:{i:s,j:c}})=>(0,r.str)`must NOT have duplicate items (items ## ${c} and ${s} are identical)`,params:({params:{i:s,j:c}})=>(0,r._)`{i: ${s}, j: ${c}}`},o={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:a,code(s){let{gen:c,data:u,$data:l,schema:d,parentSchema:p,schemaCode:f,it:h}=s;if(!l&&!d)return;let _=c.let("valid"),y=p.items?(0,e.getSchemaTypes)(p.items):[];s.block$data(_,m,(0,r._)`${f} === false`),s.ok(_);function m(){let S=c.let("i",(0,r._)`${u}.length`),x=c.let("j");s.setParams({i:S,j:x}),c.assign(_,!0),c.if((0,r._)`${S} > 1`,()=>(v()?g:b)(S,x))}function v(){return y.length>0&&!y.some(S=>S==="object"||S==="array")}function g(S,x){let w=c.name("item"),E=(0,e.checkDataTypes)(y,w,h.opts.strictNumbers,e.DataType.Wrong),R=c.const("indices",(0,r._)`{}`);c.for((0,r._)`;${S}--;`,()=>{c.let(w,(0,r._)`${u}[${S}]`),c.if(E,(0,r._)`continue`),y.length>1&&c.if((0,r._)`typeof ${w} == "string"`,(0,r._)`${w} += "_"`),c.if((0,r._)`typeof ${R}[${w}] == "number"`,()=>{c.assign(x,(0,r._)`${R}[${w}]`),s.error(),c.assign(_,!1).break()}).code((0,r._)`${R}[${w}] = ${S}`)})}function b(S,x){let w=(0,n.useFunc)(c,i.default),E=c.name("outer");c.label(E).for((0,r._)`;${S}--;`,()=>c.for((0,r._)`${x} = ${S}; ${x}--;`,()=>c.if((0,r._)`${w}(${u}[${S}], ${u}[${x}])`,()=>{s.error(),c.assign(_,!1).break(E)})))}}};t.default=o}),die=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r=lt(),n=R$(),i={message:"must be equal to constant",params:({schemaCode:o})=>(0,e._)`{allowedValue: ${o}}`},a={keyword:"const",$data:!0,error:i,code(o){let{gen:s,data:c,$data:u,schemaCode:l,schema:d}=o;u||d&&typeof d=="object"?o.fail$data((0,e._)`!${(0,r.useFunc)(s,n.default)}(${c}, ${l})`):o.fail((0,e._)`${d} !== ${c}`)}};t.default=a}),pie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r=lt(),n=R$(),i={message:"must be equal to one of the allowed values",params:({schemaCode:o})=>(0,e._)`{allowedValues: ${o}}`},a={keyword:"enum",schemaType:"array",$data:!0,error:i,code(o){let{gen:s,data:c,$data:u,schema:l,schemaCode:d,it:p}=o;if(!u&&l.length===0)throw new Error("enum must have non-empty array");let f=l.length>=p.opts.loopEnum,h,_=()=>h??(h=(0,r.useFunc)(s,n.default)),y;if(f||u)y=s.let("valid"),o.block$data(y,m);else{if(!Array.isArray(l))throw new Error("ajv implementation error");let g=s.const("vSchema",d);y=(0,e.or)(...l.map((b,S)=>v(g,S)))}o.pass(y);function m(){s.assign(y,!1),s.forOf("v",d,g=>s.if((0,e._)`${_()}(${c}, ${g})`,()=>s.assign(y,!0).break()))}function v(g,b){let S=l[b];return typeof S=="object"&&S!==null?(0,e._)`${_()}(${c}, ${g}[${b}])`:(0,e._)`${c} === ${S}`}}};t.default=a}),fie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=rie(),r=nie(),n=aie(),i=oie(),a=sie(),o=cie(),s=uie(),c=lie(),u=die(),l=pie(),d=[e.default,r.default,n.default,i.default,a.default,o.default,s.default,c.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},u.default,l.default];t.default=d}),c2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateAdditionalItems=void 0;var e=Be(),r=lt(),n={message:({params:{len:o}})=>(0,e.str)`must NOT have more than ${o} items`,params:({params:{len:o}})=>(0,e._)`{limit: ${o}}`},i={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:n,code(o){let{parentSchema:s,it:c}=o,{items:u}=s;if(!Array.isArray(u)){(0,r.checkStrictMode)(c,'"additionalItems" is ignored when "items" is not an array of schemas');return}a(o,u)}};function a(o,s){let{gen:c,schema:u,data:l,keyword:d,it:p}=o;p.items=!0;let f=c.const("len",(0,e._)`${l}.length`);if(u===!1)o.setParams({len:s.length}),o.pass((0,e._)`${f} <= ${s.length}`);else if(typeof u=="object"&&!(0,r.alwaysValidSchema)(p,u)){let _=c.var("valid",(0,e._)`${f} <= ${s.length}`);c.if((0,e.not)(_),()=>h(_)),o.ok(_)}function h(_){c.forRange("i",s.length,f,y=>{o.subschema({keyword:d,dataProp:y,dataPropType:r.Type.Num},_),p.allErrors||c.if((0,e.not)(_),()=>c.break())})}}t.validateAdditionalItems=a,t.default=i}),u2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateTuple=void 0;var e=Be(),r=lt(),n=Xn(),i={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(o){let{schema:s,it:c}=o;if(Array.isArray(s))return a(o,"additionalItems",s);c.items=!0,!(0,r.alwaysValidSchema)(c,s)&&o.ok((0,n.validateArray)(o))}};function a(o,s,c=o.schema){let{gen:u,parentSchema:l,data:d,keyword:p,it:f}=o;y(l),f.opts.unevaluated&&c.length&&f.items!==!0&&(f.items=r.mergeEvaluated.items(u,c.length,f.items));let h=u.name("valid"),_=u.const("len",(0,e._)`${d}.length`);c.forEach((m,v)=>{(0,r.alwaysValidSchema)(f,m)||(u.if((0,e._)`${_} > ${v}`,()=>o.subschema({keyword:p,schemaProp:v,dataProp:v},h)),o.ok(h))});function y(m){let{opts:v,errSchemaPath:g}=f,b=c.length,S=b===m.minItems&&(b===m.maxItems||m[s]===!1);if(v.strictTuples&&!S){let x=`"${p}" is ${b}-tuple, but minItems or maxItems/${s} are not specified or different at path "${g}"`;(0,r.checkStrictMode)(f,x,v.strictTuples)}}}t.validateTuple=a,t.default=i}),mie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=u2(),r={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:n=>(0,e.validateTuple)(n,"items")};t.default=r}),hie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r=lt(),n=Xn(),i=c2(),a={message:({params:{len:s}})=>(0,e.str)`must NOT have more than ${s} items`,params:({params:{len:s}})=>(0,e._)`{limit: ${s}}`},o={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:a,code(s){let{schema:c,parentSchema:u,it:l}=s,{prefixItems:d}=u;l.items=!0,!(0,r.alwaysValidSchema)(l,c)&&(d?(0,i.validateAdditionalItems)(s,d):s.ok((0,n.validateArray)(s)))}};t.default=o}),gie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r=lt(),n={message:({params:{min:a,max:o}})=>o===void 0?(0,e.str)`must contain at least ${a} valid item(s)`:(0,e.str)`must contain at least ${a} and no more than ${o} valid item(s)`,params:({params:{min:a,max:o}})=>o===void 0?(0,e._)`{minContains: ${a}}`:(0,e._)`{minContains: ${a}, maxContains: ${o}}`},i={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:n,code(a){let{gen:o,schema:s,parentSchema:c,data:u,it:l}=a,d,p,{minContains:f,maxContains:h}=c;l.opts.next?(d=f===void 0?1:f,p=h):d=1;let _=o.const("len",(0,e._)`${u}.length`);if(a.setParams({min:d,max:p}),p===void 0&&d===0){(0,r.checkStrictMode)(l,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(p!==void 0&&d>p){(0,r.checkStrictMode)(l,'"minContains" > "maxContains" is always invalid'),a.fail();return}if((0,r.alwaysValidSchema)(l,s)){let b=(0,e._)`${_} >= ${d}`;p!==void 0&&(b=(0,e._)`${b} && ${_} <= ${p}`),a.pass(b);return}l.items=!0;let y=o.name("valid");p===void 0&&d===1?v(y,()=>o.if(y,()=>o.break())):d===0?(o.let(y,!0),p!==void 0&&o.if((0,e._)`${u}.length > 0`,m)):(o.let(y,!1),m()),a.result(y,()=>a.reset());function m(){let b=o.name("_valid"),S=o.let("count",0);v(b,()=>o.if(b,()=>g(S)))}function v(b,S){o.forRange("i",0,_,x=>{a.subschema({keyword:"contains",dataProp:x,dataPropType:r.Type.Num,compositeRule:!0},b),S()})}function g(b){o.code((0,e._)`${b}++`),p===void 0?o.if((0,e._)`${b} >= ${d}`,()=>o.assign(y,!0).break()):(o.if((0,e._)`${b} > ${p}`,()=>o.assign(y,!1).break()),d===1?o.assign(y,!0):o.if((0,e._)`${b} >= ${d}`,()=>o.assign(y,!0)))}}};t.default=i}),vie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateSchemaDeps=t.validatePropertyDeps=t.error=void 0;var e=Be(),r=lt(),n=Xn();t.error={message:({params:{property:c,depsCount:u,deps:l}})=>{let d=u===1?"property":"properties";return(0,e.str)`must have ${d} ${l} when property ${c} is present`},params:({params:{property:c,depsCount:u,deps:l,missingProperty:d}})=>(0,e._)`{property: ${c}, missingProperty: ${d}, depsCount: ${u}, - deps: ${l}}`};var n={keyword:"dependencies",type:"object",schemaType:"object",error:t.error,code(c){let[u,l]=s(c);i(c,u),o(c,l)}};function s({schema:c}){let u={},l={};for(let d in c){if(d==="__proto__")continue;let p=Array.isArray(c[d])?u:l;p[d]=c[d]}return[u,l]}function i(c,u=c.schema){let{gen:l,data:d,it:p}=c;if(Object.keys(u).length===0)return;let f=l.let("missing");for(let v in u){let _=u[v];if(_.length===0)continue;let m=(0,a.propertyInData)(l,d,v,p.opts.ownProperties);c.setParams({property:v,depsCount:_.length,deps:_.join(", ")}),p.allErrors?l.if(m,()=>{for(let h of _)(0,a.checkReportMissingProp)(c,h)}):(l.if((0,e._)`${m} && (${(0,a.checkMissingProp)(c,_,f)})`),(0,a.reportMissingProp)(c,f),l.else())}}t.validatePropertyDeps=i;function o(c,u=c.schema){let{gen:l,data:d,keyword:p,it:f}=c,v=l.name("valid");for(let _ in u)(0,r.alwaysValidSchema)(f,u[_])||(l.if((0,a.propertyInData)(l,d,_,f.opts.ownProperties),()=>{let m=c.subschema({keyword:p,schemaProp:_},v);c.mergeValidEvaluated(m,v)},()=>l.var(v,!0)),c.ok(v))}t.validateSchemaDeps=o,t.default=n}),x6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ze(),r=tt(),a={message:"property name must be valid",params:({params:s})=>(0,e._)`{propertyName: ${s.propertyName}}`},n={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:a,code(s){let{gen:i,schema:o,data:c,it:u}=s;if((0,r.alwaysValidSchema)(u,o))return;let l=i.name("valid");i.forIn("key",c,d=>{s.setParams({propertyName:d}),s.subschema({keyword:"propertyNames",data:d,dataTypes:["string"],propertyName:d,compositeRule:!0},l),i.if((0,e.not)(l),()=>{s.error(!0),u.allErrors||i.break()})}),s.ok(l)}};t.default=n}),jT=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Zr(),r=ze(),a=Qn(),n=tt(),s={message:"must NOT have additional properties",params:({params:o})=>(0,r._)`{additionalProperty: ${o.additionalProperty}}`},i={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:s,code(o){let{gen:c,schema:u,parentSchema:l,data:d,errsCount:p,it:f}=o;if(!p)throw new Error("ajv implementation error");let{allErrors:v,opts:_}=f;if(f.props=!0,_.removeAdditional!=="all"&&(0,n.alwaysValidSchema)(f,u))return;let m=(0,e.allSchemaProperties)(l.properties),h=(0,e.allSchemaProperties)(l.patternProperties);y(),o.ok((0,r._)`${p} === ${a.default.errors}`);function y(){c.forIn("key",d,E=>{!m.length&&!h.length?w(E):c.if(g(E),()=>w(E))})}function g(E){let T;if(m.length>8){let R=(0,n.schemaRefOrVal)(f,l.properties,"properties");T=(0,e.isOwnProperty)(c,R,E)}else m.length?T=(0,r.or)(...m.map(R=>(0,r._)`${E} === ${R}`)):T=r.nil;return h.length&&(T=(0,r.or)(T,...h.map(R=>(0,r._)`${(0,e.usePattern)(o,R)}.test(${E})`))),(0,r.not)(T)}function b(E){c.code((0,r._)`delete ${d}[${E}]`)}function w(E){if(_.removeAdditional==="all"||_.removeAdditional&&u===!1){b(E);return}if(u===!1){o.setParams({additionalProperty:E}),o.error(),v||c.break();return}if(typeof u=="object"&&!(0,n.alwaysValidSchema)(f,u)){let T=c.name("valid");_.removeAdditional==="failing"?(S(E,T,!1),c.if((0,r.not)(T),()=>{o.reset(),b(E)})):(S(E,T),v||c.if((0,r.not)(T),()=>c.break()))}}function S(E,T,R){let M={keyword:"additionalProperties",dataProp:E,dataPropType:n.Type.Str};R===!1&&Object.assign(M,{compositeRule:!0,createErrors:!1,allErrors:!1}),o.subschema(M,T)}}};t.default=i}),w6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Cl(),r=Zr(),a=tt(),n=jT(),s={keyword:"properties",type:"object",schemaType:"object",code(i){let{gen:o,schema:c,parentSchema:u,data:l,it:d}=i;d.opts.removeAdditional==="all"&&u.additionalProperties===void 0&&n.default.code(new e.KeywordCxt(d,n.default,"additionalProperties"));let p=(0,r.allSchemaProperties)(c);for(let h of p)d.definedProperties.add(h);d.opts.unevaluated&&p.length&&d.props!==!0&&(d.props=a.mergeEvaluated.props(o,(0,a.toHash)(p),d.props));let f=p.filter(h=>!(0,a.alwaysValidSchema)(d,c[h]));if(f.length===0)return;let v=o.name("valid");for(let h of f)_(h)?m(h):(o.if((0,r.propertyInData)(o,l,h,d.opts.ownProperties)),m(h),d.allErrors||o.else().var(v,!0),o.endIf()),i.it.definedProperties.add(h),i.ok(v);function _(h){return d.opts.useDefaults&&!d.compositeRule&&c[h].default!==void 0}function m(h){i.subschema({keyword:"properties",schemaProp:h,dataProp:h},v)}}};t.default=s}),E6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Zr(),r=ze(),a=tt(),n=tt(),s={keyword:"patternProperties",type:"object",schemaType:"object",code(i){let{gen:o,schema:c,data:u,parentSchema:l,it:d}=i,{opts:p}=d,f=(0,e.allSchemaProperties)(c),v=f.filter(w=>(0,a.alwaysValidSchema)(d,c[w]));if(f.length===0||v.length===f.length&&(!d.opts.unevaluated||d.props===!0))return;let _=p.strictSchema&&!p.allowMatchingProperties&&l.properties,m=o.name("valid");d.props!==!0&&!(d.props instanceof r.Name)&&(d.props=(0,n.evaluatedPropsToName)(o,d.props));let{props:h}=d;y();function y(){for(let w of f)_&&g(w),d.allErrors?b(w):(o.var(m,!0),b(w),o.if(m))}function g(w){for(let S in _)new RegExp(w).test(S)&&(0,a.checkStrictMode)(d,`property ${S} matches pattern ${w} (use allowMatchingProperties)`)}function b(w){o.forIn("key",u,S=>{o.if((0,r._)`${(0,e.usePattern)(i,w)}.test(${S})`,()=>{let E=v.includes(w);E||i.subschema({keyword:"patternProperties",schemaProp:w,dataProp:S,dataPropType:n.Type.Str},m),d.opts.unevaluated&&h!==!0?o.assign((0,r._)`${h}[${S}]`,!0):!E&&!d.allErrors&&o.if((0,r.not)(m),()=>o.break())})})}}};t.default=s}),T6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=tt(),r={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(a){let{gen:n,schema:s,it:i}=a;if((0,e.alwaysValidSchema)(i,s)){a.fail();return}let o=n.name("valid");a.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),a.failResult(o,()=>a.reset(),()=>a.error())},error:{message:"must NOT be valid"}};t.default=r}),k6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Zr(),r={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:e.validateUnion,error:{message:"must match a schema in anyOf"}};t.default=r}),R6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ze(),r=tt(),a={message:"must match exactly one schema in oneOf",params:({params:s})=>(0,e._)`{passingSchemas: ${s.passing}}`},n={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:a,code(s){let{gen:i,schema:o,parentSchema:c,it:u}=s;if(!Array.isArray(o))throw new Error("ajv implementation error");if(u.opts.discriminator&&c.discriminator)return;let l=o,d=i.let("valid",!1),p=i.let("passing",null),f=i.name("_valid");s.setParams({passing:p}),i.block(v),s.result(d,()=>s.reset(),()=>s.error(!0));function v(){l.forEach((_,m)=>{let h;(0,r.alwaysValidSchema)(u,_)?i.var(f,!0):h=s.subschema({keyword:"oneOf",schemaProp:m,compositeRule:!0},f),m>0&&i.if((0,e._)`${f} && ${d}`).assign(d,!1).assign(p,(0,e._)`[${p}, ${m}]`).else(),i.if(f,()=>{i.assign(d,!0),i.assign(p,m),h&&s.mergeEvaluated(h,e.Name)})})}}};t.default=n}),P6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=tt(),r={keyword:"allOf",schemaType:"array",code(a){let{gen:n,schema:s,it:i}=a;if(!Array.isArray(s))throw new Error("ajv implementation error");let o=n.name("valid");s.forEach((c,u)=>{if((0,e.alwaysValidSchema)(i,c))return;let l=a.subschema({keyword:"allOf",schemaProp:u},o);a.ok(o),a.mergeEvaluated(l)})}};t.default=r}),$6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ze(),r=tt(),a={message:({params:i})=>(0,e.str)`must match "${i.ifClause}" schema`,params:({params:i})=>(0,e._)`{failingKeyword: ${i.ifClause}}`},n={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:a,code(i){let{gen:o,parentSchema:c,it:u}=i;c.then===void 0&&c.else===void 0&&(0,r.checkStrictMode)(u,'"if" without "then" and "else" is ignored');let l=s(u,"then"),d=s(u,"else");if(!l&&!d)return;let p=o.let("valid",!0),f=o.name("_valid");if(v(),i.reset(),l&&d){let m=o.let("ifClause");i.setParams({ifClause:m}),o.if(f,_("then",m),_("else",m))}else l?o.if(f,_("then")):o.if((0,e.not)(f),_("else"));i.pass(p,()=>i.error(!0));function v(){let m=i.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},f);i.mergeEvaluated(m)}function _(m,h){return()=>{let y=i.subschema({keyword:m},f);o.assign(p,f),i.mergeValidEvaluated(y,p),h?o.assign(h,(0,e._)`${m}`):i.setParams({ifClause:m})}}}};function s(i,o){let c=i.schema[o];return c!==void 0&&!(0,r.alwaysValidSchema)(i,c)}t.default=n}),O6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=tt(),r={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:a,parentSchema:n,it:s}){n.if===void 0&&(0,e.checkStrictMode)(s,`"${a}" without "if" is ignored`)}};t.default=r}),C6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=NT(),r=y6(),a=MT(),n=_6(),s=b6(),i=S6(),o=x6(),c=jT(),u=w6(),l=E6(),d=T6(),p=k6(),f=R6(),v=P6(),_=$6(),m=O6();function h(y=!1){let g=[d.default,p.default,f.default,v.default,_.default,m.default,o.default,c.default,i.default,u.default,l.default];return y?g.push(r.default,n.default):g.push(e.default,a.default),g.push(s.default),g}t.default=h}),I6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ze(),r={message:({schemaCode:n})=>(0,e.str)`must match format "${n}"`,params:({schemaCode:n})=>(0,e._)`{format: ${n}}`},a={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:r,code(n,s){let{gen:i,data:o,$data:c,schema:u,schemaCode:l,it:d}=n,{opts:p,errSchemaPath:f,schemaEnv:v,self:_}=d;if(!p.validateFormats)return;c?m():h();function m(){let y=i.scopeValue("formats",{ref:_.formats,code:p.code.formats}),g=i.const("fDef",(0,e._)`${y}[${l}]`),b=i.let("fType"),w=i.let("format");i.if((0,e._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>i.assign(b,(0,e._)`${g}.type || "string"`).assign(w,(0,e._)`${g}.validate`),()=>i.assign(b,(0,e._)`"string"`).assign(w,g)),n.fail$data((0,e.or)(S(),E()));function S(){return p.strictSchema===!1?e.nil:(0,e._)`${l} && !${w}`}function E(){let T=v.$async?(0,e._)`(${g}.async ? await ${w}(${o}) : ${w}(${o}))`:(0,e._)`${w}(${o})`,R=(0,e._)`(typeof ${w} == "function" ? ${T} : ${w}.test(${o}))`;return(0,e._)`${w} && ${w} !== true && ${b} === ${s} && !${R}`}}function h(){let y=_.formats[u];if(!y){S();return}if(y===!0)return;let[g,b,w]=E(y);g===s&&n.pass(T());function S(){if(p.strictSchema===!1){_.logger.warn(R());return}throw new Error(R());function R(){return`unknown format "${u}" ignored in schema at path "${f}"`}}function E(R){let M=R instanceof RegExp?(0,e.regexpCode)(R):p.code.formats?(0,e._)`${p.code.formats}${(0,e.getProperty)(u)}`:void 0,j=i.scopeValue("formats",{key:u,ref:R,code:M});return typeof R=="object"&&!(R instanceof RegExp)?[R.type||"string",R.validate,(0,e._)`${j}.validate`]:["string",R,j]}function T(){if(typeof y=="object"&&!(y instanceof RegExp)&&y.async){if(!v.$async)throw new Error("async format in sync schema");return(0,e._)`await ${w}(${o})`}return typeof b=="function"?(0,e._)`${w}(${o})`:(0,e._)`${w}.test(${o})`}}}};t.default=a}),A6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=I6(),r=[e.default];t.default=r}),N6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.contentVocabulary=t.metadataVocabulary=void 0,t.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],t.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]}),M6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=s6(),r=g6(),a=C6(),n=A6(),s=N6(),i=[e.default,r.default,(0,a.default)(),n.default,s.metadataVocabulary,s.contentVocabulary];t.default=i}),j6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiscrError=void 0;var e;(function(r){r.Tag="tag",r.Mapping="mapping"})(e||(t.DiscrError=e={}))}),D6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ze(),r=j6(),a=Xm(),n=Il(),s=tt(),i={message:({params:{discrError:c,tagName:u}})=>c===r.DiscrError.Tag?`tag "${u}" must be string`:`value of tag "${u}" must be in oneOf`,params:({params:{discrError:c,tag:u,tagName:l}})=>(0,e._)`{error: ${c}, tag: ${l}, tagValue: ${u}}`},o={keyword:"discriminator",type:"object",schemaType:"object",error:i,code(c){let{gen:u,data:l,schema:d,parentSchema:p,it:f}=c,{oneOf:v}=p;if(!f.opts.discriminator)throw new Error("discriminator: requires discriminator option");let _=d.propertyName;if(typeof _!="string")throw new Error("discriminator: requires propertyName");if(d.mapping)throw new Error("discriminator: mapping is not supported");if(!v)throw new Error("discriminator: requires oneOf keyword");let m=u.let("valid",!1),h=u.const("tag",(0,e._)`${l}${(0,e.getProperty)(_)}`);u.if((0,e._)`typeof ${h} == "string"`,()=>y(),()=>c.error(!1,{discrError:r.DiscrError.Tag,tag:h,tagName:_})),c.ok(m);function y(){let w=b();u.if(!1);for(let S in w)u.elseIf((0,e._)`${h} === ${S}`),u.assign(m,g(w[S]));u.else(),c.error(!1,{discrError:r.DiscrError.Mapping,tag:h,tagName:_}),u.endIf()}function g(w){let S=u.name("valid"),E=c.subschema({keyword:"oneOf",schemaProp:w},S);return c.mergeEvaluated(E,e.Name),S}function b(){var w;let S={},E=R(p),T=!0;for(let q=0;q{e.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}}),q6=Q((t,e)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MissingRefError=t.ValidationError=t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=t.Ajv=void 0;var r=r6(),a=M6(),n=D6(),s=L6(),i=["/properties"],o="http://json-schema.org/draft-07/schema";class c extends r.default{_addVocabularies(){super._addVocabularies(),a.default.forEach(v=>this.addVocabulary(v)),this.opts.discriminator&&this.addKeyword(n.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let v=this.opts.$data?this.$dataMetaSchema(s,i):s;this.addMetaSchema(v,o,!1),this.refs["http://json-schema.org/schema"]=o}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(o)?o:void 0)}}t.Ajv=c,e.exports=t=c,e.exports.Ajv=c,Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var u=Cl();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return u.KeywordCxt}});var l=ze();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return l._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return l.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return l.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return l.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return l.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return l.CodeGen}});var d=Km();Object.defineProperty(t,"ValidationError",{enumerable:!0,get:function(){return d.default}});var p=Il();Object.defineProperty(t,"MissingRefError",{enumerable:!0,get:function(){return p.default}})}),F6=Q(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.formatLimitDefinition=void 0;var e=q6(),r=ze(),a=r.operators,n={formatMaximum:{okStr:"<=",ok:a.LTE,fail:a.GT},formatMinimum:{okStr:">=",ok:a.GTE,fail:a.LT},formatExclusiveMaximum:{okStr:"<",ok:a.LT,fail:a.GTE},formatExclusiveMinimum:{okStr:">",ok:a.GT,fail:a.LTE}},s={message:({keyword:o,schemaCode:c})=>(0,r.str)`should be ${n[o].okStr} ${c}`,params:({keyword:o,schemaCode:c})=>(0,r._)`{comparison: ${n[o].okStr}, limit: ${c}}`};t.formatLimitDefinition={keyword:Object.keys(n),type:"string",schemaType:"string",$data:!0,error:s,code(o){let{gen:c,data:u,schemaCode:l,keyword:d,it:p}=o,{opts:f,self:v}=p;if(!f.validateFormats)return;let _=new e.KeywordCxt(p,v.RULES.all.format.definition,"format");_.$data?m():h();function m(){let g=c.scopeValue("formats",{ref:v.formats,code:f.code.formats}),b=c.const("fmt",(0,r._)`${g}[${_.schemaCode}]`);o.fail$data((0,r.or)((0,r._)`typeof ${b} != "object"`,(0,r._)`${b} instanceof RegExp`,(0,r._)`typeof ${b}.compare != "function"`,y(b)))}function h(){let g=_.schema,b=v.formats[g];if(!b||b===!0)return;if(typeof b!="object"||b instanceof RegExp||typeof b.compare!="function")throw new Error(`"${d}": format "${g}" does not define "compare" function`);let w=c.scopeValue("formats",{key:g,ref:b,code:f.code.formats?(0,r._)`${f.code.formats}${(0,r.getProperty)(g)}`:void 0});o.fail$data(y(w))}function y(g){return(0,r._)`${g}.compare(${u}, ${l}) ${n[d].fail} 0`}},dependencies:["format"]};var i=o=>(o.addKeyword(t.formatLimitDefinition),o);t.default=i}),U6=Q((t,e)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=Wq(),a=F6(),n=ze(),s=new n.Name("fullFormats"),i=new n.Name("fastFormats"),o=(u,l={keywords:!0})=>{if(Array.isArray(l))return c(u,l,r.fullFormats,s),u;let[d,p]=l.mode==="fast"?[r.fastFormats,i]:[r.fullFormats,s],f=l.formats||r.formatNames;return c(u,f,d,p),l.keywords&&(0,a.default)(u),u};o.get=(u,l="full")=>{let p=(l==="fast"?r.fastFormats:r.fullFormats)[u];if(!p)throw new Error(`Unknown format "${u}"`);return p};function c(u,l,d,p){var f,v;(f=(v=u.opts.code).formats)!==null&&f!==void 0||(v.formats=(0,n._)`require("ajv-formats/dist/formats").${p}`);for(let _ of l)u.addFormat(_,d[_])}e.exports=t=o,Object.defineProperty(t,"__esModule",{value:!0}),t.default=o}),z6=50;function qT(t=z6){let e=new AbortController;return(0,LT.setMaxListeners)(t,e.signal),e}var H6=typeof global=="object"&&global&&global.Object===Object&&global,B6=H6,V6=typeof self=="object"&&self&&self.Object===Object&&self,G6=B6||V6||Function("return this")(),Ym=G6,Z6=Ym.Symbol,yl=Z6,HT=Object.prototype,W6=HT.hasOwnProperty,K6=HT.toString,No=yl?yl.toStringTag:void 0;function X6(t){var e=W6.call(t,No),r=t[No];try{t[No]=void 0;var a=!0}catch{}var n=K6.call(t);return a&&(e?t[No]=r:delete t[No]),n}var J6=X6,Y6=Object.prototype,Q6=Y6.toString;function eF(t){return Q6.call(t)}var tF=eF,rF="[object Null]",nF="[object Undefined]",W1=yl?yl.toStringTag:void 0;function aF(t){return t==null?t===void 0?nF:rF:W1&&W1 in Object(t)?J6(t):tF(t)}var sF=aF;function iF(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var BT=iF,oF="[object AsyncFunction]",cF="[object Function]",uF="[object GeneratorFunction]",lF="[object Proxy]";function dF(t){if(!BT(t))return!1;var e=sF(t);return e==cF||e==uF||e==oF||e==lF}var pF=dF,fF=Ym["__core-js_shared__"],Sm=fF,K1=(function(){var t=/[^.]+$/.exec(Sm&&Sm.keys&&Sm.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""})();function mF(t){return!!K1&&K1 in t}var hF=mF,vF=Function.prototype,gF=vF.toString;function yF(t){if(t!=null){try{return gF.call(t)}catch{}try{return t+""}catch{}}return""}var _F=yF,bF=/[\\^$.*+?()[\]{}|]/g,SF=/^\[object .+?Constructor\]$/,xF=Function.prototype,wF=Object.prototype,EF=xF.toString,TF=wF.hasOwnProperty,kF=RegExp("^"+EF.call(TF).replace(bF,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function RF(t){if(!BT(t)||hF(t))return!1;var e=pF(t)?kF:SF;return e.test(_F(t))}var PF=RF;function $F(t,e){return t?.[e]}var OF=$F;function CF(t,e){var r=OF(t,e);return PF(r)?r:void 0}var VT=CF,IF=VT(Object,"create"),Do=IF;function AF(){this.__data__=Do?Do(null):{},this.size=0}var NF=AF;function MF(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var jF=MF,DF="__lodash_hash_undefined__",LF=Object.prototype,qF=LF.hasOwnProperty;function FF(t){var e=this.__data__;if(Do){var r=e[t];return r===DF?void 0:r}return qF.call(e,t)?e[t]:void 0}var UF=FF,zF=Object.prototype,HF=zF.hasOwnProperty;function BF(t){var e=this.__data__;return Do?e[t]!==void 0:HF.call(e,t)}var VF=BF,GF="__lodash_hash_undefined__";function ZF(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=Do&&e===void 0?GF:e,this}var WF=ZF;function Si(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e-1}var oU=iU;function cU(t,e){var r=this.__data__,a=Al(r,t);return a<0?(++this.size,r.push([t,e])):r[a][1]=e,this}var uU=cU;function xi(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{if(!t||t.trim()==="")return null;let e=t.split(",").map(s=>s.trim()).filter(Boolean);if(e.length===0)return null;let r=e.some(s=>s.startsWith("!")),a=e.some(s=>!s.startsWith("!"));if(r&&a)return null;let n=e.map(s=>s.replace(/^!/,"").toLowerCase());return{include:r?[]:n,exclude:r?n:[],isExclusive:r}});function $U(t){let e=[],r=t.match(/^MCP server ["']([^"']+)["']/);if(r&&r[1])e.push("mcp"),e.push(r[1].toLowerCase());else{let s=t.match(/^([^:[]+):/);s&&s[1]&&e.push(s[1].trim().toLowerCase())}let a=t.match(/^\[([^\]]+)]/);a&&a[1]&&e.push(a[1].trim().toLowerCase()),t.toLowerCase().includes("statsig event:")&&e.push("statsig");let n=t.match(/:\s*([^:]+?)(?:\s+(?:type|mode|status|event))?:/);if(n&&n[1]){let s=n[1].trim().toLowerCase();s.length<30&&!s.includes(" ")&&e.push(s)}return Array.from(new Set(e))}function OU(t,e){return e?t.length===0?!1:e.isExclusive?!t.some(r=>e.exclude.includes(r)):t.some(r=>e.include.includes(r)):!0}function CU(t,e){if(!e)return!0;let r=$U(t);return OU(r,e)}function KT(){return process.env.CLAUDE_CONFIG_DIR??(0,ZT.join)((0,WT.homedir)(),".claude")}function Y1(t){if(!t)return!1;if(typeof t=="boolean")return t;let e=t.toLowerCase().trim();return["1","true","yes","on"].includes(e)}var IU={name:"BASH_MAX_OUTPUT_LENGTH",default:3e4,validate:t=>{if(!t)return{effective:3e4,status:"valid"};let a=parseInt(t,10);return isNaN(a)||a<=0?{effective:3e4,status:"invalid",message:`Invalid value "${t}" (using default: 30000)`}:a>15e4?{effective:15e4,status:"capped",message:`Capped from ${a} to 150000`}:{effective:a,status:"valid"}}},AU={name:"CLAUDE_CODE_MAX_OUTPUT_TOKENS",default:32e3,validate:t=>{if(!t)return{effective:32e3,status:"valid"};let a=parseInt(t,10);return isNaN(a)||a<=0?{effective:32e3,status:"invalid",message:`Invalid value "${t}" (using default: 32000)`}:a>64e3?{effective:64e3,status:"capped",message:`Capped from ${a} to 64000`}:{effective:a,status:"valid"}}};function NU(){let t="";return typeof process<"u"&&typeof process.cwd=="function"&&(t=(0,JT.realpathSync)((0,XT.cwd)())),{originalCwd:t,totalCostUSD:0,totalAPIDuration:0,totalAPIDurationWithoutRetries:0,totalToolDuration:0,startTime:Date.now(),lastInteractionTime:Date.now(),totalLinesAdded:0,totalLinesRemoved:0,hasUnknownModelCost:!1,cwd:t,modelUsage:{},mainLoopModelOverride:void 0,initialMainLoopModel:null,modelStrings:null,isInteractive:!1,clientType:"cli",sessionIngressToken:void 0,oauthTokenFromFd:void 0,apiKeyFromFd:void 0,flagSettingsPath:void 0,allowedSettingSources:["userSettings","projectSettings","localSettings","flagSettings","policySettings"],meter:null,sessionCounter:null,locCounter:null,prCounter:null,commitCounter:null,costCounter:null,tokenCounter:null,codeEditToolDecisionCounter:null,activeTimeCounter:null,sessionId:(0,YT.randomUUID)(),loggerProvider:null,eventLogger:null,meterProvider:null,tracerProvider:null,agentColorMap:new Map,agentColorIndex:0,envVarValidators:[IU,AU],lastAPIRequest:null,inMemoryErrorLog:[],inlinePlugins:[],sessionBypassPermissionsMode:!1,sessionPersistenceDisabled:!1,hasExitedPlanMode:!1,needsPlanModeExitAttachment:!1,hasExitedDelegateMode:!1,needsDelegateModeExitAttachment:!1,lspRecommendationShownThisSession:!1,initJsonSchema:null,registeredHooks:null,planSlugCache:new Map,teleportedSessionInfo:null,invokedSkills:new Map}}var MU=NU();function jU(){return MU.sessionId}function DU({writeFn:t,flushIntervalMs:e=1e3,maxBufferSize:r=100,immediateMode:a=!1}){let n=[],s=null;function i(){s&&(clearTimeout(s),s=null)}function o(){n.length!==0&&(t(n.join("")),n=[],i())}function c(){s||(s=setTimeout(o,e))}return{write(u){if(a){t(u);return}n.push(u),c(),n.length>=r&&o()},flush:o,dispose(){o()}}}var Q1=new Set;function LU(t){return Q1.add(t),()=>Q1.delete(t)}var qU=Jo(()=>Y1(process.env.DEBUG)||Y1(process.env.DEBUG_SDK)||process.argv.includes("--debug")||process.argv.includes("-d")||QT()||process.argv.some(t=>t.startsWith("--debug="))),FU=Jo(()=>{let t=process.argv.find(r=>r.startsWith("--debug="));if(!t)return null;let e=t.substring(8);return PU(e)}),QT=Jo(()=>process.argv.includes("--debug-to-stderr")||process.argv.includes("-d2e"));function UU(t){if(typeof process>"u"||typeof process.versions>"u"||typeof process.versions.node>"u")return!1;let e=FU();return CU(t,e)}var zU=!1,ul=null;function HU(){return ul||(ul=DU({writeFn:t=>{let e=ek();En().existsSync((0,Ba.dirname)(e))||En().mkdirSync((0,Ba.dirname)(e)),En().appendFileSync(e,t),BU()},flushIntervalMs:1e3,maxBufferSize:100,immediateMode:qU()}),LU(async()=>ul?.dispose())),ul}function Zn(t,{level:e}={level:"debug"}){if(!UU(t))return;zU&&t.includes(` -`)&&(t=JSON.stringify(t));let a=`${new Date().toISOString()} [${e.toUpperCase()}] ${t.trim()} -`;if(QT()){RU(a);return}HU().write(a)}function ek(){return process.env.CLAUDE_CODE_DEBUG_LOGS_DIR??(0,Ba.join)(KT(),"debug",`${jU()}.txt`)}var BU=Jo(()=>{if(process.argv[2]!=="--ripgrep")try{let t=ek(),e=(0,Ba.dirname)(t),r=(0,Ba.join)(e,"latest");if(En().existsSync(e)||En().mkdirSync(e),En().existsSync(r))try{En().unlinkSync(r)}catch{}En().symlinkSync(t,r)}catch{}}),VU=5;function Ot(t,e){let r=performance.now();try{return e()}finally{let a=performance.now()-r;a>VU&&Zn(`[SLOW OPERATION DETECTED] fs.${t} (${a.toFixed(1)}ms)`)}}var GU={cwd(){return process.cwd()},existsSync(t){return Ot("existsSync",()=>Te.existsSync(t))},async stat(t){return(0,zT.stat)(t)},statSync(t){return Ot("statSync",()=>Te.statSync(t))},lstatSync(t){return Ot("lstatSync",()=>Te.lstatSync(t))},readFileSync(t,e){return Ot("readFileSync",()=>Te.readFileSync(t,{encoding:e.encoding}))},readFileBytesSync(t){return Ot("readFileBytesSync",()=>Te.readFileSync(t))},readSync(t,e){return Ot("readSync",()=>{let r;try{r=Te.openSync(t,"r");let a=Buffer.alloc(e.length),n=Te.readSync(r,a,0,e.length,0);return{buffer:a,bytesRead:n}}finally{r&&Te.closeSync(r)}})},writeFileSync(t,e,r){return Ot("writeFileSync",()=>{let a=Te.existsSync(t);if(!r.flush){let s={encoding:r.encoding};a?r.mode!==void 0&&(s.mode=r.mode):s.mode=r.mode??384,Te.writeFileSync(t,e,s);return}let n;try{let s=a?r.mode:r.mode??384;n=Te.openSync(t,"w",s),Te.writeFileSync(n,e,{encoding:r.encoding}),Te.fsyncSync(n)}finally{n&&Te.closeSync(n)}})},appendFileSync(t,e,r){return Ot("appendFileSync",()=>{if(Te.existsSync(t))Te.appendFileSync(t,e);else{let a=r?.mode??384,n=Te.openSync(t,"a",a);try{Te.appendFileSync(n,e)}finally{Te.closeSync(n)}}})},copyFileSync(t,e){return Ot("copyFileSync",()=>Te.copyFileSync(t,e))},unlinkSync(t){return Ot("unlinkSync",()=>Te.unlinkSync(t))},renameSync(t,e){return Ot("renameSync",()=>Te.renameSync(t,e))},linkSync(t,e){return Ot("linkSync",()=>Te.linkSync(t,e))},symlinkSync(t,e){return Ot("symlinkSync",()=>Te.symlinkSync(t,e))},readlinkSync(t){return Ot("readlinkSync",()=>Te.readlinkSync(t))},realpathSync(t){return Ot("realpathSync",()=>Te.realpathSync(t))},mkdirSync(t){return Ot("mkdirSync",()=>{Te.existsSync(t)||Te.mkdirSync(t,{recursive:!0,mode:448})})},readdirSync(t){return Ot("readdirSync",()=>Te.readdirSync(t,{withFileTypes:!0}))},readdirStringSync(t){return Ot("readdirStringSync",()=>Te.readdirSync(t))},isDirEmptySync(t){return Ot("isDirEmptySync",()=>this.readdirSync(t).length===0)},rmdirSync(t){return Ot("rmdirSync",()=>Te.rmdirSync(t))},rmSync(t,e){return Ot("rmSync",()=>Te.rmSync(t,e))},createWriteStream(t){return Te.createWriteStream(t)}},ZU=GU;function En(){return ZU}var Ha=class extends Error{};function tk(){return process.versions.bun!==void 0}var ll=null,eT=!1;function WU(){if(eT)return ll;if(eT=!0,!process.env.DEBUG_CLAUDE_AGENT_SDK)return null;let t=(0,Rm.join)(KT(),"debug");return ll=(0,Rm.join)(t,`sdk-${(0,rk.randomUUID)()}.txt`),(0,Ei.existsSync)(t)||(0,Ei.mkdirSync)(t,{recursive:!0}),process.stderr.write(`SDK debug logs: ${ll} -`),ll}function za(t){let e=WU();if(!e)return;let a=`${new Date().toISOString()} ${t} -`;(0,Ei.appendFileSync)(e,a)}function KU(t,e){let r={...t};if(e){let a={sandbox:e};if(r.settings)try{a={...JSON.parse(r.settings),sandbox:e}}catch{}r.settings=JSON.stringify(a)}return r}var Pm=class{options;process;processStdin;processStdout;ready=!1;abortController;exitError;exitListeners=[];processExitHandler;abortHandler;constructor(e){this.options=e,this.abortController=e.abortController||qT(),this.initialize()}getDefaultExecutable(){return tk()?"bun":"node"}spawnLocalProcess(e){let{command:r,args:a,cwd:n,env:s,signal:i}=e,o=s.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr?"pipe":"ignore",c=(0,FT.spawn)(r,a,{cwd:n,stdio:["pipe","pipe",o],signal:i,env:s,windowsHide:!0});return(s.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr)&&c.stderr.on("data",l=>{let d=l.toString();za(d),this.options.stderr&&this.options.stderr(d)}),{stdin:c.stdin,stdout:c.stdout,get killed(){return c.killed},get exitCode(){return c.exitCode},kill:c.kill.bind(c),on:c.on.bind(c),once:c.once.bind(c),off:c.off.bind(c)}}initialize(){try{let{additionalDirectories:e=[],betas:r,cwd:a,executable:n=this.getDefaultExecutable(),executableArgs:s=[],extraArgs:i={},pathToClaudeCodeExecutable:o,env:c={...process.env},maxThinkingTokens:u,maxTurns:l,maxBudgetUsd:d,model:p,fallbackModel:f,jsonSchema:v,permissionMode:_,allowDangerouslySkipPermissions:m,permissionPromptToolName:h,continueConversation:y,resume:g,settingSources:b,allowedTools:w=[],disallowedTools:S=[],tools:E,mcpServers:T,strictMcpConfig:R,canUseTool:M,includePartialMessages:j,plugins:q,sandbox:H}=this.options,N=["--output-format","stream-json","--verbose","--input-format","stream-json"];if(u!==void 0&&N.push("--max-thinking-tokens",u.toString()),l&&N.push("--max-turns",l.toString()),d!==void 0&&N.push("--max-budget-usd",d.toString()),p&&N.push("--model",p),r&&r.length>0&&N.push("--betas",r.join(",")),v&&N.push("--json-schema",JSON.stringify(v)),c.DEBUG_CLAUDE_AGENT_SDK&&N.push("--debug-to-stderr"),M){if(h)throw new Error("canUseTool callback cannot be used with permissionPromptToolName. Please use one or the other.");N.push("--permission-prompt-tool","stdio")}else h&&N.push("--permission-prompt-tool",h);if(y&&N.push("--continue"),g&&N.push("--resume",g),w.length>0&&N.push("--allowedTools",w.join(",")),S.length>0&&N.push("--disallowedTools",S.join(",")),E!==void 0&&(Array.isArray(E)?E.length===0?N.push("--tools",""):N.push("--tools",E.join(",")):N.push("--tools","default")),T&&Object.keys(T).length>0&&N.push("--mcp-config",JSON.stringify({mcpServers:T})),b&&N.push("--setting-sources",b.join(",")),R&&N.push("--strict-mcp-config"),_&&N.push("--permission-mode",_),m&&N.push("--allow-dangerously-skip-permissions"),f){if(p&&f===p)throw new Error("Fallback model cannot be the same as the main model. Please specify a different model for fallbackModel option.");N.push("--fallback-model",f)}j&&N.push("--include-partial-messages");for(let $ of e)N.push("--add-dir",$);if(q&&q.length>0)for(let $ of q)if($.type==="local")N.push("--plugin-dir",$.path);else throw new Error(`Unsupported plugin type: ${$.type}`);this.options.forkSession&&N.push("--fork-session"),this.options.resumeSessionAt&&N.push("--resume-session-at",this.options.resumeSessionAt),this.options.persistSession===!1&&N.push("--no-session-persistence");let W=KU(i??{},H);for(let[$,z]of Object.entries(W))z===null?N.push(`--${$}`):N.push(`--${$}`,z);c.CLAUDE_CODE_ENTRYPOINT||(c.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),delete c.NODE_OPTIONS,c.DEBUG_CLAUDE_AGENT_SDK?c.DEBUG="1":delete c.DEBUG;let oe=XU(o),he=oe?o:n,ae=oe?[...s,...N]:[...s,o,...N],re={command:he,args:ae,cwd:a,env:c,signal:this.abortController.signal};if(this.options.spawnClaudeCodeProcess)za(`Spawning Claude Code (custom): ${he} ${ae.join(" ")}`),this.process=this.options.spawnClaudeCodeProcess(re);else{if(!En().existsSync(o)){let z=oe?`Claude Code native binary not found at ${o}. Please ensure Claude Code is installed via native installer or specify a valid path with options.pathToClaudeCodeExecutable.`:`Claude Code executable not found at ${o}. Is options.pathToClaudeCodeExecutable set?`;throw new ReferenceError(z)}za(`Spawning Claude Code: ${he} ${ae.join(" ")}`),this.process=this.spawnLocalProcess(re)}this.processStdin=this.process.stdin,this.processStdout=this.process.stdout;let U=()=>{this.process&&!this.process.killed&&this.process.kill("SIGTERM")};this.processExitHandler=U,this.abortHandler=U,process.on("exit",this.processExitHandler),this.abortController.signal.addEventListener("abort",this.abortHandler),this.process.on("error",$=>{this.ready=!1,this.abortController.signal.aborted?this.exitError=new Ha("Claude Code process aborted by user"):(this.exitError=new Error(`Failed to spawn Claude Code process: ${$.message}`),za(this.exitError.message))}),this.process.on("exit",($,z)=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new Ha("Claude Code process aborted by user");else{let A=this.getProcessExitError($,z);A&&(this.exitError=A,za(A.message))}}),this.ready=!0}catch(e){throw this.ready=!1,e}}getProcessExitError(e,r){if(e!==0&&e!==null)return new Error(`Claude Code process exited with code ${e}`);if(r)return new Error(`Claude Code process terminated by signal ${r}`)}write(e){if(this.abortController.signal.aborted)throw new Ha("Operation aborted");if(!this.ready||!this.processStdin)throw new Error("ProcessTransport is not ready for writing");if(this.process?.killed||this.process?.exitCode!==null)throw new Error("Cannot write to terminated process");if(this.exitError)throw new Error(`Cannot write to process that exited with error: ${this.exitError.message}`);za(`[ProcessTransport] Writing to stdin: ${e.substring(0,100)}`);try{this.processStdin.write(e)||za("[ProcessTransport] Write buffer full, data queued")}catch(r){throw this.ready=!1,new Error(`Failed to write to process stdin: ${r.message}`)}}close(){this.processStdin&&(this.processStdin.end(),this.processStdin=void 0),this.abortHandler&&(this.abortController.signal.removeEventListener("abort",this.abortHandler),this.abortHandler=void 0);for(let{handler:e}of this.exitListeners)this.process?.off("exit",e);this.exitListeners=[],this.process&&!this.process.killed&&(this.process.kill("SIGTERM"),setTimeout(()=>{this.process&&!this.process.killed&&this.process.kill("SIGKILL")},5e3)),this.ready=!1,this.processExitHandler&&(process.off("exit",this.processExitHandler),this.processExitHandler=void 0)}isReady(){return this.ready}async*readMessages(){if(!this.processStdout)throw new Error("ProcessTransport output stream not available");let e=(0,UT.createInterface)({input:this.processStdout});try{for await(let r of e)r.trim()&&(yield JSON.parse(r));await this.waitForExit()}catch(r){throw r}finally{e.close()}}endInput(){this.processStdin&&this.processStdin.end()}getInputStream(){return this.processStdin}onExit(e){if(!this.process)return()=>{};let r=(a,n)=>{let s=this.getProcessExitError(a,n);e(s)};return this.process.on("exit",r),this.exitListeners.push({callback:e,handler:r}),()=>{this.process&&this.process.off("exit",r);let a=this.exitListeners.findIndex(n=>n.handler===r);a!==-1&&this.exitListeners.splice(a,1)}}async waitForExit(){if(!this.process){if(this.exitError)throw this.exitError;return}if(this.process.exitCode!==null||this.process.killed){if(this.exitError)throw this.exitError;return}return new Promise((e,r)=>{let a=(s,i)=>{if(this.abortController.signal.aborted){r(new Ha("Operation aborted"));return}let o=this.getProcessExitError(s,i);o?r(o):e()};this.process.once("exit",a);let n=s=>{this.process.off("exit",a),r(s)};this.process.once("error",n),this.process.once("exit",()=>{this.process.off("error",n)})})}};function XU(t){return![".js",".mjs",".tsx",".ts",".jsx"].some(r=>t.endsWith(r))}var $m=class{returned;queue=[];readResolve;readReject;isDone=!1;hasError;started=!1;constructor(e){this.returned=e}[Symbol.asyncIterator](){if(this.started)throw new Error("Stream can only be iterated once");return this.started=!0,this}next(){return this.queue.length>0?Promise.resolve({done:!1,value:this.queue.shift()}):this.isDone?Promise.resolve({done:!0,value:void 0}):this.hasError?Promise.reject(this.hasError):new Promise((e,r)=>{this.readResolve=e,this.readReject=r})}enqueue(e){if(this.readResolve){let r=this.readResolve;this.readResolve=void 0,this.readReject=void 0,r({done:!1,value:e})}else this.queue.push(e)}done(){if(this.isDone=!0,this.readResolve){let e=this.readResolve;this.readResolve=void 0,this.readReject=void 0,e({done:!0,value:void 0})}}error(e){if(this.hasError=e,this.readReject){let r=this.readReject;this.readResolve=void 0,this.readReject=void 0,r(e)}}return(){return this.isDone=!0,this.returned&&this.returned(),Promise.resolve({done:!0,value:void 0})}},Om=class{sendMcpMessage;isClosed=!1;constructor(e){this.sendMcpMessage=e}onclose;onerror;onmessage;async start(){}async send(e){if(this.isClosed)throw new Error("Transport is closed");this.sendMcpMessage(e)}async close(){this.isClosed||(this.isClosed=!0,this.onclose?.())}},Cm=class{transport;isSingleUserTurn;canUseTool;hooks;abortController;jsonSchema;initConfig;pendingControlResponses=new Map;cleanupPerformed=!1;sdkMessages;inputStream=new $m;initialization;cancelControllers=new Map;hookCallbacks=new Map;nextCallbackId=0;sdkMcpTransports=new Map;sdkMcpServerInstances=new Map;pendingMcpResponses=new Map;firstResultReceivedResolve;firstResultReceived=!1;hasBidirectionalNeeds(){return this.sdkMcpTransports.size>0||this.hooks!==void 0&&Object.keys(this.hooks).length>0||this.canUseTool!==void 0}constructor(e,r,a,n,s,i=new Map,o,c){this.transport=e,this.isSingleUserTurn=r,this.canUseTool=a,this.hooks=n,this.abortController=s,this.jsonSchema=o,this.initConfig=c;for(let[u,l]of i)this.connectSdkMcpServer(u,l);this.sdkMessages=this.readSdkMessages(),this.readMessages(),this.initialization=this.initialize(),this.initialization.catch(()=>{})}setError(e){this.inputStream.error(e)}cleanup(e){if(!this.cleanupPerformed){this.cleanupPerformed=!0;try{this.transport.close(),this.pendingControlResponses.clear(),this.pendingMcpResponses.clear(),this.cancelControllers.clear(),this.hookCallbacks.clear();for(let r of this.sdkMcpTransports.values())try{r.close()}catch{}this.sdkMcpTransports.clear(),e?this.inputStream.error(e):this.inputStream.done()}catch{}}}next(...[e]){return this.sdkMessages.next(e)}return(e){return this.sdkMessages.return(e)}throw(e){return this.sdkMessages.throw(e)}[Symbol.asyncIterator](){return this.sdkMessages}[Symbol.asyncDispose](){return this.sdkMessages[Symbol.asyncDispose]()}async readMessages(){try{for await(let e of this.transport.readMessages()){if(e.type==="control_response"){let r=this.pendingControlResponses.get(e.response.request_id);r&&r(e.response);continue}else if(e.type==="control_request"){this.handleControlRequest(e);continue}else if(e.type==="control_cancel_request"){this.handleControlCancelRequest(e);continue}else if(e.type==="keep_alive")continue;e.type==="result"&&(this.firstResultReceived=!0,this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.isSingleUserTurn&&(Zn("[Query.readMessages] First result received for single-turn query, closing stdin"),this.transport.endInput())),this.inputStream.enqueue(e)}this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.inputStream.done(),this.cleanup()}catch(e){this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.inputStream.error(e),this.cleanup(e)}}async handleControlRequest(e){let r=new AbortController;this.cancelControllers.set(e.request_id,r);try{let a=await this.processControlRequest(e,r.signal),n={type:"control_response",response:{subtype:"success",request_id:e.request_id,response:a}};await Promise.resolve(this.transport.write(JSON.stringify(n)+` -`))}catch(a){let n={type:"control_response",response:{subtype:"error",request_id:e.request_id,error:a.message||String(a)}};await Promise.resolve(this.transport.write(JSON.stringify(n)+` -`))}finally{this.cancelControllers.delete(e.request_id)}}handleControlCancelRequest(e){let r=this.cancelControllers.get(e.request_id);r&&(r.abort(),this.cancelControllers.delete(e.request_id))}async processControlRequest(e,r){if(e.request.subtype==="can_use_tool"){if(!this.canUseTool)throw new Error("canUseTool callback is not provided.");return{...await this.canUseTool(e.request.tool_name,e.request.input,{signal:r,suggestions:e.request.permission_suggestions,blockedPath:e.request.blocked_path,decisionReason:e.request.decision_reason,toolUseID:e.request.tool_use_id,agentID:e.request.agent_id}),toolUseID:e.request.tool_use_id}}else{if(e.request.subtype==="hook_callback")return await this.handleHookCallbacks(e.request.callback_id,e.request.input,e.request.tool_use_id,r);if(e.request.subtype==="mcp_message"){let a=e.request,n=this.sdkMcpTransports.get(a.server_name);if(!n)throw new Error(`SDK MCP server not found: ${a.server_name}`);return"method"in a.message&&"id"in a.message&&a.message.id!==null?{mcp_response:await this.handleMcpControlRequest(a.server_name,a,n)}:(n.onmessage&&n.onmessage(a.message),{mcp_response:{jsonrpc:"2.0",result:{},id:0}})}}throw new Error("Unsupported control request subtype: "+e.request.subtype)}async*readSdkMessages(){for await(let e of this.inputStream)yield e}async initialize(){let e;if(this.hooks){e={};for(let[s,i]of Object.entries(this.hooks))i.length>0&&(e[s]=i.map(o=>{let c=[];for(let u of o.hooks){let l=`hook_${this.nextCallbackId++}`;this.hookCallbacks.set(l,u),c.push(l)}return{matcher:o.matcher,hookCallbackIds:c,timeout:o.timeout}}))}let r=this.sdkMcpTransports.size>0?Array.from(this.sdkMcpTransports.keys()):void 0,a={subtype:"initialize",hooks:e,sdkMcpServers:r,jsonSchema:this.jsonSchema,systemPrompt:this.initConfig?.systemPrompt,appendSystemPrompt:this.initConfig?.appendSystemPrompt,agents:this.initConfig?.agents};return(await this.request(a)).response}async interrupt(){await this.request({subtype:"interrupt"})}async setPermissionMode(e){await this.request({subtype:"set_permission_mode",mode:e})}async setModel(e){await this.request({subtype:"set_model",model:e})}async setMaxThinkingTokens(e){await this.request({subtype:"set_max_thinking_tokens",max_thinking_tokens:e})}async rewindFiles(e){await this.request({subtype:"rewind_files",user_message_id:e})}async processPendingPermissionRequests(e){for(let r of e)r.request.subtype==="can_use_tool"&&this.handleControlRequest(r).catch(()=>{})}request(e){let r=Math.random().toString(36).substring(2,15),a={request_id:r,type:"control_request",request:e};return new Promise((n,s)=>{this.pendingControlResponses.set(r,i=>{i.subtype==="success"?n(i):(s(new Error(i.error)),i.pending_permission_requests&&this.processPendingPermissionRequests(i.pending_permission_requests))}),Promise.resolve(this.transport.write(JSON.stringify(a)+` -`))})}async supportedCommands(){return(await this.initialization).commands}async supportedModels(){return(await this.initialization).models}async mcpServerStatus(){return(await this.request({subtype:"mcp_status"})).response.mcpServers}async setMcpServers(e){let r={},a={};for(let[c,u]of Object.entries(e))u.type==="sdk"&&"instance"in u?r[c]=u.instance:a[c]=u;let n=new Set(this.sdkMcpServerInstances.keys()),s=new Set(Object.keys(r));for(let c of n)s.has(c)||await this.disconnectSdkMcpServer(c);for(let[c,u]of Object.entries(r))n.has(c)||this.connectSdkMcpServer(c,u);let i={};for(let c of Object.keys(r))i[c]={type:"sdk",name:c};return(await this.request({subtype:"mcp_set_servers",servers:{...a,...i}})).response}async accountInfo(){return(await this.initialization).account}async streamInput(e){Zn("[Query.streamInput] Starting to process input stream");try{let r=0;for await(let a of e){if(r++,Zn(`[Query.streamInput] Processing message ${r}: ${a.type}`),this.abortController?.signal.aborted)break;await Promise.resolve(this.transport.write(JSON.stringify(a)+` -`))}Zn(`[Query.streamInput] Finished processing ${r} messages from input stream`),this.hasBidirectionalNeeds()&&(Zn("[Query.streamInput] Has bidirectional needs, waiting for first result"),await this.waitForFirstResult()),Zn("[Query] Calling transport.endInput() to close stdin to CLI process"),this.transport.endInput()}catch(r){if(!(r instanceof Ha))throw r}}waitForFirstResult(){return this.firstResultReceived?(Zn("[Query.waitForFirstResult] Result already received, returning immediately"),Promise.resolve()):new Promise(e=>{if(this.abortController?.signal.aborted){e();return}this.abortController?.signal.addEventListener("abort",()=>e(),{once:!0}),this.firstResultReceivedResolve=e})}handleHookCallbacks(e,r,a,n){let s=this.hookCallbacks.get(e);if(!s)throw new Error(`No hook callback found for ID: ${e}`);return s(r,a,{signal:n})}connectSdkMcpServer(e,r){let a=new Om(n=>this.sendMcpServerMessageToCli(e,n));this.sdkMcpTransports.set(e,a),this.sdkMcpServerInstances.set(e,r),r.connect(a)}async disconnectSdkMcpServer(e){let r=this.sdkMcpTransports.get(e);r&&(await r.close(),this.sdkMcpTransports.delete(e)),this.sdkMcpServerInstances.delete(e)}sendMcpServerMessageToCli(e,r){if("id"in r&&r.id!==null&&r.id!==void 0){let n=`${e}:${r.id}`,s=this.pendingMcpResponses.get(n);if(s){s.resolve(r),this.pendingMcpResponses.delete(n);return}}let a={type:"control_request",request_id:(0,nk.randomUUID)(),request:{subtype:"mcp_message",server_name:e,message:r}};this.transport.write(JSON.stringify(a)+` -`)}handleMcpControlRequest(e,r,a){let n="id"in r.message?r.message.id:null,s=`${e}:${n}`;return new Promise((i,o)=>{let c=()=>{this.pendingMcpResponses.delete(s)},u=d=>{c(),i(d)},l=d=>{c(),o(d)};if(this.pendingMcpResponses.set(s,{resolve:u,reject:l}),a.onmessage)a.onmessage(r.message);else{c(),o(new Error("No message handler registered"));return}})}};var Ye;(function(t){t.assertEqual=n=>{};function e(n){}t.assertIs=e;function r(n){throw new Error}t.assertNever=r,t.arrayToEnum=n=>{let s={};for(let i of n)s[i]=i;return s},t.getValidEnumValues=n=>{let s=t.objectKeys(n).filter(o=>typeof n[n[o]]!="number"),i={};for(let o of s)i[o]=n[o];return t.objectValues(i)},t.objectValues=n=>t.objectKeys(n).map(function(s){return n[s]}),t.objectKeys=typeof Object.keys=="function"?n=>Object.keys(n):n=>{let s=[];for(let i in n)Object.prototype.hasOwnProperty.call(n,i)&&s.push(i);return s},t.find=(n,s)=>{for(let i of n)if(s(i))return i},t.isInteger=typeof Number.isInteger=="function"?n=>Number.isInteger(n):n=>typeof n=="number"&&Number.isFinite(n)&&Math.floor(n)===n;function a(n,s=" | "){return n.map(i=>typeof i=="string"?`'${i}'`:i).join(s)}t.joinValues=a,t.jsonStringifyReplacer=(n,s)=>typeof s=="bigint"?s.toString():s})(Ye||(Ye={}));var tT;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(tT||(tT={}));var _e=Ye.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Wn=t=>{switch(typeof t){case"undefined":return _e.undefined;case"string":return _e.string;case"number":return Number.isNaN(t)?_e.nan:_e.number;case"boolean":return _e.boolean;case"function":return _e.function;case"bigint":return _e.bigint;case"symbol":return _e.symbol;case"object":return Array.isArray(t)?_e.array:t===null?_e.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?_e.promise:typeof Map<"u"&&t instanceof Map?_e.map:typeof Set<"u"&&t instanceof Set?_e.set:typeof Date<"u"&&t instanceof Date?_e.date:_e.object;default:return _e.unknown}},ue=Ye.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),Nr=class t extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=a=>{this.issues=[...this.issues,a]},this.addIssues=(a=[])=>{this.issues=[...this.issues,...a]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}format(e){let r=e||function(s){return s.message},a={_errors:[]},n=s=>{for(let i of s.issues)if(i.code==="invalid_union")i.unionErrors.map(n);else if(i.code==="invalid_return_type")n(i.returnTypeError);else if(i.code==="invalid_arguments")n(i.argumentsError);else if(i.path.length===0)a._errors.push(r(i));else{let o=a,c=0;for(;cr.message){let r={},a=[];for(let n of this.issues)if(n.path.length>0){let s=n.path[0];r[s]=r[s]||[],r[s].push(e(n))}else a.push(e(n));return{formErrors:a,fieldErrors:r}}get formErrors(){return this.flatten()}};Nr.create=t=>new Nr(t);var JU=(t,e)=>{let r;switch(t.code){case ue.invalid_type:t.received===_e.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case ue.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,Ye.jsonStringifyReplacer)}`;break;case ue.unrecognized_keys:r=`Unrecognized key(s) in object: ${Ye.joinValues(t.keys,", ")}`;break;case ue.invalid_union:r="Invalid input";break;case ue.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${Ye.joinValues(t.options)}`;break;case ue.invalid_enum_value:r=`Invalid enum value. Expected ${Ye.joinValues(t.options)}, received '${t.received}'`;break;case ue.invalid_arguments:r="Invalid function arguments";break;case ue.invalid_return_type:r="Invalid function return type";break;case ue.invalid_date:r="Invalid date";break;case ue.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:Ye.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case ue.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case ue.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case ue.custom:r="Invalid input";break;case ue.invalid_intersection_types:r="Intersection results could not be merged";break;case ue.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case ue.not_finite:r="Number must be finite";break;default:r=e.defaultError,Ye.assertNever(t)}return{message:r}},Lo=JU,YU=Lo;function Im(){return YU}var Am=t=>{let{data:e,path:r,errorMaps:a,issueData:n}=t,s=[...r,...n.path||[]],i={...n,path:s};if(n.message!==void 0)return{...n,path:s,message:n.message};let o="",c=a.filter(u=>!!u).slice().reverse();for(let u of c)o=u(i,{data:e,defaultError:o}).message;return{...n,path:s,message:o}};function ve(t,e){let r=Im(),a=Am({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Lo?void 0:Lo].filter(n=>!!n)});t.common.issues.push(a)}var Yt=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let a=[];for(let n of r){if(n.status==="aborted")return Ce;n.status==="dirty"&&e.dirty(),a.push(n.value)}return{status:e.value,value:a}}static async mergeObjectAsync(e,r){let a=[];for(let n of r){let s=await n.key,i=await n.value;a.push({key:s,value:i})}return t.mergeObjectSync(e,a)}static mergeObjectSync(e,r){let a={};for(let n of r){let{key:s,value:i}=n;if(s.status==="aborted"||i.status==="aborted")return Ce;s.status==="dirty"&&e.dirty(),i.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof i.value<"u"||n.alwaysSet)&&(a[s.value]=i.value)}return{status:e.value,value:a}}},Ce=Object.freeze({status:"aborted"}),Mo=t=>({status:"dirty",value:t}),cr=t=>({status:"valid",value:t}),rT=t=>t.status==="aborted",nT=t=>t.status==="dirty",oi=t=>t.status==="valid",_l=t=>typeof Promise<"u"&&t instanceof Promise,Se;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(Se||(Se={}));var Mr=class{constructor(e,r,a,n){this._cachedPath=[],this.parent=e,this.data=r,this._path=a,this._key=n}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},aT=(t,e)=>{if(oi(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new Nr(t.common.issues);return this._error=r,this._error}}};function Le(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:a,description:n}=t;if(e&&(r||a))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:n}:{errorMap:(i,o)=>{let{message:c}=t;return i.code==="invalid_enum_value"?{message:c??o.defaultError}:typeof o.data>"u"?{message:c??a??o.defaultError}:i.code!=="invalid_type"?{message:o.defaultError}:{message:c??r??o.defaultError}},description:n}}var He=class{get description(){return this._def.description}_getType(e){return Wn(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Wn(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Yt,ctx:{common:e.parent.common,data:e.data,parsedType:Wn(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(_l(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let a=this.safeParse(e,r);if(a.success)return a.data;throw a.error}safeParse(e,r){let a={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Wn(e)},n=this._parseSync({data:e,path:a.path,parent:a});return aT(a,n)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Wn(e)};if(!this["~standard"].async)try{let a=this._parseSync({data:e,path:[],parent:r});return oi(a)?{value:a.value}:{issues:r.common.issues}}catch(a){a?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:r}).then(a=>oi(a)?{value:a.value}:{issues:r.common.issues})}async parseAsync(e,r){let a=await this.safeParseAsync(e,r);if(a.success)return a.data;throw a.error}async safeParseAsync(e,r){let a={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Wn(e)},n=this._parse({data:e,path:a.path,parent:a}),s=await(_l(n)?n:Promise.resolve(n));return aT(a,s)}refine(e,r){let a=n=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(n):r;return this._refinement((n,s)=>{let i=e(n),o=()=>s.addIssue({code:ue.custom,...a(n)});return typeof Promise<"u"&&i instanceof Promise?i.then(c=>c?!0:(o(),!1)):i?!0:(o(),!1)})}refinement(e,r){return this._refinement((a,n)=>e(a)?!0:(n.addIssue(typeof r=="function"?r(a,n):r),!1))}_refinement(e){return new Br({schema:this,typeName:Ie.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return Hr.create(this,this._def)}nullable(){return kn.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Jn.create(this)}promise(){return Va.create(this,this._def)}or(e){return di.create([this,e],this._def)}and(e){return pi.create(this,e,this._def)}transform(e){return new Br({...Le(this._def),schema:this,typeName:Ie.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new gi({...Le(this._def),innerType:this,defaultValue:r,typeName:Ie.ZodDefault})}brand(){return new bl({typeName:Ie.ZodBranded,type:this,...Le(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new yi({...Le(this._def),innerType:this,catchValue:r,typeName:Ie.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Sl.create(this,e)}readonly(){return _i.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},QU=/^c[^\s-]{8,}$/i,e5=/^[0-9a-z]+$/,t5=/^[0-9A-HJKMNP-TV-Z]{26}$/i,r5=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,n5=/^[a-z0-9_-]{21}$/i,a5=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,s5=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,i5=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,o5="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",xm,c5=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,u5=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,l5=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,d5=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,p5=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,f5=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,ak="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",m5=new RegExp(`^${ak}$`);function sk(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);let r=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${r}`}function h5(t){return new RegExp(`^${sk(t)}$`)}function v5(t){let e=`${ak}T${sk(t)}`,r=[];return r.push(t.local?"Z?":"Z"),t.offset&&r.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${r.join("|")})`,new RegExp(`^${e}$`)}function g5(t,e){return!!((e==="v4"||!e)&&c5.test(t)||(e==="v6"||!e)&&l5.test(t))}function y5(t,e){if(!a5.test(t))return!1;try{let[r]=t.split(".");if(!r)return!1;let a=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),n=JSON.parse(atob(a));return!(typeof n!="object"||n===null||"typ"in n&&n?.typ!=="JWT"||!n.alg||e&&n.alg!==e)}catch{return!1}}function _5(t,e){return!!((e==="v4"||!e)&&u5.test(t)||(e==="v6"||!e)&&d5.test(t))}var ci=class t extends He{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==_e.string){let s=this._getOrReturnCtx(e);return ve(s,{code:ue.invalid_type,expected:_e.string,received:s.parsedType}),Ce}let a=new Yt,n;for(let s of this._def.checks)if(s.kind==="min")e.data.lengths.value&&(n=this._getOrReturnCtx(e,n),ve(n,{code:ue.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),a.dirty());else if(s.kind==="length"){let i=e.data.length>s.value,o=e.data.lengthe.test(n),{validation:r,code:ue.invalid_string,...Se.errToObj(a)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...Se.errToObj(e)})}url(e){return this._addCheck({kind:"url",...Se.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...Se.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...Se.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...Se.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...Se.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...Se.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...Se.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...Se.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...Se.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...Se.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...Se.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...Se.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...Se.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...Se.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...Se.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...Se.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...Se.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...Se.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...Se.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...Se.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...Se.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...Se.errToObj(r)})}nonempty(e){return this.min(1,Se.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew ci({checks:[],typeName:Ie.ZodString,coerce:t?.coerce??!1,...Le(t)});function b5(t,e){let r=(t.toString().split(".")[1]||"").length,a=(e.toString().split(".")[1]||"").length,n=r>a?r:a,s=Number.parseInt(t.toFixed(n).replace(".","")),i=Number.parseInt(e.toFixed(n).replace(".",""));return s%i/10**n}var qo=class t extends He{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==_e.number){let s=this._getOrReturnCtx(e);return ve(s,{code:ue.invalid_type,expected:_e.number,received:s.parsedType}),Ce}let a,n=new Yt;for(let s of this._def.checks)s.kind==="int"?Ye.isInteger(e.data)||(a=this._getOrReturnCtx(e,a),ve(a,{code:ue.invalid_type,expected:"integer",received:"float",message:s.message}),n.dirty()):s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(a=this._getOrReturnCtx(e,a),ve(a,{code:ue.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),n.dirty()):s.kind==="multipleOf"?b5(e.data,s.value)!==0&&(a=this._getOrReturnCtx(e,a),ve(a,{code:ue.not_multiple_of,multipleOf:s.value,message:s.message}),n.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(a=this._getOrReturnCtx(e,a),ve(a,{code:ue.not_finite,message:s.message}),n.dirty()):Ye.assertNever(s);return{status:n.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,Se.toString(r))}gt(e,r){return this.setLimit("min",e,!1,Se.toString(r))}lte(e,r){return this.setLimit("max",e,!0,Se.toString(r))}lt(e,r){return this.setLimit("max",e,!1,Se.toString(r))}setLimit(e,r,a,n){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:a,message:Se.toString(n)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:Se.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Se.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Se.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Se.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Se.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:Se.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:Se.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Se.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Se.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuee.kind==="int"||e.kind==="multipleOf"&&Ye.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let a of this._def.checks){if(a.kind==="finite"||a.kind==="int"||a.kind==="multipleOf")return!0;a.kind==="min"?(r===null||a.value>r)&&(r=a.value):a.kind==="max"&&(e===null||a.valuenew qo({checks:[],typeName:Ie.ZodNumber,coerce:t?.coerce||!1,...Le(t)});var Fo=class t extends He{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==_e.bigint)return this._getInvalidInput(e);let a,n=new Yt;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(a=this._getOrReturnCtx(e,a),ve(a,{code:ue.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),n.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(a=this._getOrReturnCtx(e,a),ve(a,{code:ue.not_multiple_of,multipleOf:s.value,message:s.message}),n.dirty()):Ye.assertNever(s);return{status:n.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return ve(r,{code:ue.invalid_type,expected:_e.bigint,received:r.parsedType}),Ce}gte(e,r){return this.setLimit("min",e,!0,Se.toString(r))}gt(e,r){return this.setLimit("min",e,!1,Se.toString(r))}lte(e,r){return this.setLimit("max",e,!0,Se.toString(r))}lt(e,r){return this.setLimit("max",e,!1,Se.toString(r))}setLimit(e,r,a,n){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:a,message:Se.toString(n)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Se.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Se.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Se.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Se.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:Se.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew Fo({checks:[],typeName:Ie.ZodBigInt,coerce:t?.coerce??!1,...Le(t)});var Uo=class extends He{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==_e.boolean){let a=this._getOrReturnCtx(e);return ve(a,{code:ue.invalid_type,expected:_e.boolean,received:a.parsedType}),Ce}return cr(e.data)}};Uo.create=t=>new Uo({typeName:Ie.ZodBoolean,coerce:t?.coerce||!1,...Le(t)});var zo=class t extends He{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==_e.date){let s=this._getOrReturnCtx(e);return ve(s,{code:ue.invalid_type,expected:_e.date,received:s.parsedType}),Ce}if(Number.isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return ve(s,{code:ue.invalid_date}),Ce}let a=new Yt,n;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()s.value&&(n=this._getOrReturnCtx(e,n),ve(n,{code:ue.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),a.dirty()):Ye.assertNever(s);return{status:a.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:Se.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:Se.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew zo({checks:[],coerce:t?.coerce||!1,typeName:Ie.ZodDate,...Le(t)});var Ho=class extends He{_parse(e){if(this._getType(e)!==_e.symbol){let a=this._getOrReturnCtx(e);return ve(a,{code:ue.invalid_type,expected:_e.symbol,received:a.parsedType}),Ce}return cr(e.data)}};Ho.create=t=>new Ho({typeName:Ie.ZodSymbol,...Le(t)});var ui=class extends He{_parse(e){if(this._getType(e)!==_e.undefined){let a=this._getOrReturnCtx(e);return ve(a,{code:ue.invalid_type,expected:_e.undefined,received:a.parsedType}),Ce}return cr(e.data)}};ui.create=t=>new ui({typeName:Ie.ZodUndefined,...Le(t)});var li=class extends He{_parse(e){if(this._getType(e)!==_e.null){let a=this._getOrReturnCtx(e);return ve(a,{code:ue.invalid_type,expected:_e.null,received:a.parsedType}),Ce}return cr(e.data)}};li.create=t=>new li({typeName:Ie.ZodNull,...Le(t)});var Bo=class extends He{constructor(){super(...arguments),this._any=!0}_parse(e){return cr(e.data)}};Bo.create=t=>new Bo({typeName:Ie.ZodAny,...Le(t)});var Xn=class extends He{constructor(){super(...arguments),this._unknown=!0}_parse(e){return cr(e.data)}};Xn.create=t=>new Xn({typeName:Ie.ZodUnknown,...Le(t)});var fn=class extends He{_parse(e){let r=this._getOrReturnCtx(e);return ve(r,{code:ue.invalid_type,expected:_e.never,received:r.parsedType}),Ce}};fn.create=t=>new fn({typeName:Ie.ZodNever,...Le(t)});var Vo=class extends He{_parse(e){if(this._getType(e)!==_e.undefined){let a=this._getOrReturnCtx(e);return ve(a,{code:ue.invalid_type,expected:_e.void,received:a.parsedType}),Ce}return cr(e.data)}};Vo.create=t=>new Vo({typeName:Ie.ZodVoid,...Le(t)});var Jn=class t extends He{_parse(e){let{ctx:r,status:a}=this._processInputParams(e),n=this._def;if(r.parsedType!==_e.array)return ve(r,{code:ue.invalid_type,expected:_e.array,received:r.parsedType}),Ce;if(n.exactLength!==null){let i=r.data.length>n.exactLength.value,o=r.data.lengthn.maxLength.value&&(ve(r,{code:ue.too_big,maximum:n.maxLength.value,type:"array",inclusive:!0,exact:!1,message:n.maxLength.message}),a.dirty()),r.common.async)return Promise.all([...r.data].map((i,o)=>n.type._parseAsync(new Mr(r,i,r.path,o)))).then(i=>Yt.mergeArray(a,i));let s=[...r.data].map((i,o)=>n.type._parseSync(new Mr(r,i,r.path,o)));return Yt.mergeArray(a,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:Se.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:Se.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:Se.toString(r)}})}nonempty(e){return this.min(1,e)}};Jn.create=(t,e)=>new Jn({type:t,minLength:null,maxLength:null,exactLength:null,typeName:Ie.ZodArray,...Le(e)});function ai(t){if(t instanceof gr){let e={};for(let r in t.shape){let a=t.shape[r];e[r]=Hr.create(ai(a))}return new gr({...t._def,shape:()=>e})}else return t instanceof Jn?new Jn({...t._def,type:ai(t.element)}):t instanceof Hr?Hr.create(ai(t.unwrap())):t instanceof kn?kn.create(ai(t.unwrap())):t instanceof Tn?Tn.create(t.items.map(e=>ai(e))):t}var gr=class t extends He{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=Ye.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==_e.object){let u=this._getOrReturnCtx(e);return ve(u,{code:ue.invalid_type,expected:_e.object,received:u.parsedType}),Ce}let{status:a,ctx:n}=this._processInputParams(e),{shape:s,keys:i}=this._getCached(),o=[];if(!(this._def.catchall instanceof fn&&this._def.unknownKeys==="strip"))for(let u in n.data)i.includes(u)||o.push(u);let c=[];for(let u of i){let l=s[u],d=n.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new Mr(n,d,n.path,u)),alwaysSet:u in n.data})}if(this._def.catchall instanceof fn){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of o)c.push({key:{status:"valid",value:l},value:{status:"valid",value:n.data[l]}});else if(u==="strict")o.length>0&&(ve(n,{code:ue.unrecognized_keys,keys:o}),a.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of o){let d=n.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new Mr(n,d,n.path,l)),alwaysSet:l in n.data})}}return n.common.async?Promise.resolve().then(async()=>{let u=[];for(let l of c){let d=await l.key,p=await l.value;u.push({key:d,value:p,alwaysSet:l.alwaysSet})}return u}).then(u=>Yt.mergeObjectSync(a,u)):Yt.mergeObjectSync(a,c)}get shape(){return this._def.shape()}strict(e){return Se.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,a)=>{let n=this._def.errorMap?.(r,a).message??a.defaultError;return r.code==="unrecognized_keys"?{message:Se.errToObj(e).message??n}:{message:n}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Ie.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};for(let a of Ye.objectKeys(e))e[a]&&this.shape[a]&&(r[a]=this.shape[a]);return new t({...this._def,shape:()=>r})}omit(e){let r={};for(let a of Ye.objectKeys(this.shape))e[a]||(r[a]=this.shape[a]);return new t({...this._def,shape:()=>r})}deepPartial(){return ai(this)}partial(e){let r={};for(let a of Ye.objectKeys(this.shape)){let n=this.shape[a];e&&!e[a]?r[a]=n:r[a]=n.optional()}return new t({...this._def,shape:()=>r})}required(e){let r={};for(let a of Ye.objectKeys(this.shape))if(e&&!e[a])r[a]=this.shape[a];else{let s=this.shape[a];for(;s instanceof Hr;)s=s._def.innerType;r[a]=s}return new t({...this._def,shape:()=>r})}keyof(){return ik(Ye.objectKeys(this.shape))}};gr.create=(t,e)=>new gr({shape:()=>t,unknownKeys:"strip",catchall:fn.create(),typeName:Ie.ZodObject,...Le(e)});gr.strictCreate=(t,e)=>new gr({shape:()=>t,unknownKeys:"strict",catchall:fn.create(),typeName:Ie.ZodObject,...Le(e)});gr.lazycreate=(t,e)=>new gr({shape:t,unknownKeys:"strip",catchall:fn.create(),typeName:Ie.ZodObject,...Le(e)});var di=class extends He{_parse(e){let{ctx:r}=this._processInputParams(e),a=this._def.options;function n(s){for(let o of s)if(o.result.status==="valid")return o.result;for(let o of s)if(o.result.status==="dirty")return r.common.issues.push(...o.ctx.common.issues),o.result;let i=s.map(o=>new Nr(o.ctx.common.issues));return ve(r,{code:ue.invalid_union,unionErrors:i}),Ce}if(r.common.async)return Promise.all(a.map(async s=>{let i={...r,common:{...r.common,issues:[]},parent:null};return{result:await s._parseAsync({data:r.data,path:r.path,parent:i}),ctx:i}})).then(n);{let s,i=[];for(let c of a){let u={...r,common:{...r.common,issues:[]},parent:null},l=c._parseSync({data:r.data,path:r.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:u}),u.common.issues.length&&i.push(u.common.issues)}if(s)return r.common.issues.push(...s.ctx.common.issues),s.result;let o=i.map(c=>new Nr(c));return ve(r,{code:ue.invalid_union,unionErrors:o}),Ce}}get options(){return this._def.options}};di.create=(t,e)=>new di({options:t,typeName:Ie.ZodUnion,...Le(e)});var wn=t=>t instanceof fi?wn(t.schema):t instanceof Br?wn(t.innerType()):t instanceof mi?[t.value]:t instanceof hi?t.options:t instanceof vi?Ye.objectValues(t.enum):t instanceof gi?wn(t._def.innerType):t instanceof ui?[void 0]:t instanceof li?[null]:t instanceof Hr?[void 0,...wn(t.unwrap())]:t instanceof kn?[null,...wn(t.unwrap())]:t instanceof bl||t instanceof _i?wn(t.unwrap()):t instanceof yi?wn(t._def.innerType):[],Nm=class t extends He{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==_e.object)return ve(r,{code:ue.invalid_type,expected:_e.object,received:r.parsedType}),Ce;let a=this.discriminator,n=r.data[a],s=this.optionsMap.get(n);return s?r.common.async?s._parseAsync({data:r.data,path:r.path,parent:r}):s._parseSync({data:r.data,path:r.path,parent:r}):(ve(r,{code:ue.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[a]}),Ce)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,a){let n=new Map;for(let s of r){let i=wn(s.shape[e]);if(!i.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let o of i){if(n.has(o))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(o)}`);n.set(o,s)}}return new t({typeName:Ie.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:n,...Le(a)})}};function Mm(t,e){let r=Wn(t),a=Wn(e);if(t===e)return{valid:!0,data:t};if(r===_e.object&&a===_e.object){let n=Ye.objectKeys(e),s=Ye.objectKeys(t).filter(o=>n.indexOf(o)!==-1),i={...t,...e};for(let o of s){let c=Mm(t[o],e[o]);if(!c.valid)return{valid:!1};i[o]=c.data}return{valid:!0,data:i}}else if(r===_e.array&&a===_e.array){if(t.length!==e.length)return{valid:!1};let n=[];for(let s=0;s{if(rT(s)||rT(i))return Ce;let o=Mm(s.value,i.value);return o.valid?((nT(s)||nT(i))&&r.dirty(),{status:r.value,value:o.data}):(ve(a,{code:ue.invalid_intersection_types}),Ce)};return a.common.async?Promise.all([this._def.left._parseAsync({data:a.data,path:a.path,parent:a}),this._def.right._parseAsync({data:a.data,path:a.path,parent:a})]).then(([s,i])=>n(s,i)):n(this._def.left._parseSync({data:a.data,path:a.path,parent:a}),this._def.right._parseSync({data:a.data,path:a.path,parent:a}))}};pi.create=(t,e,r)=>new pi({left:t,right:e,typeName:Ie.ZodIntersection,...Le(r)});var Tn=class t extends He{_parse(e){let{status:r,ctx:a}=this._processInputParams(e);if(a.parsedType!==_e.array)return ve(a,{code:ue.invalid_type,expected:_e.array,received:a.parsedType}),Ce;if(a.data.lengththis._def.items.length&&(ve(a,{code:ue.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...a.data].map((i,o)=>{let c=this._def.items[o]||this._def.rest;return c?c._parse(new Mr(a,i,a.path,o)):null}).filter(i=>!!i);return a.common.async?Promise.all(s).then(i=>Yt.mergeArray(r,i)):Yt.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};Tn.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Tn({items:t,typeName:Ie.ZodTuple,rest:null,...Le(e)})};var jm=class t extends He{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:a}=this._processInputParams(e);if(a.parsedType!==_e.object)return ve(a,{code:ue.invalid_type,expected:_e.object,received:a.parsedType}),Ce;let n=[],s=this._def.keyType,i=this._def.valueType;for(let o in a.data)n.push({key:s._parse(new Mr(a,o,a.path,o)),value:i._parse(new Mr(a,a.data[o],a.path,o)),alwaysSet:o in a.data});return a.common.async?Yt.mergeObjectAsync(r,n):Yt.mergeObjectSync(r,n)}get element(){return this._def.valueType}static create(e,r,a){return r instanceof He?new t({keyType:e,valueType:r,typeName:Ie.ZodRecord,...Le(a)}):new t({keyType:ci.create(),valueType:e,typeName:Ie.ZodRecord,...Le(r)})}},Go=class extends He{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:a}=this._processInputParams(e);if(a.parsedType!==_e.map)return ve(a,{code:ue.invalid_type,expected:_e.map,received:a.parsedType}),Ce;let n=this._def.keyType,s=this._def.valueType,i=[...a.data.entries()].map(([o,c],u)=>({key:n._parse(new Mr(a,o,a.path,[u,"key"])),value:s._parse(new Mr(a,c,a.path,[u,"value"]))}));if(a.common.async){let o=new Map;return Promise.resolve().then(async()=>{for(let c of i){let u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return Ce;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),o.set(u.value,l.value)}return{status:r.value,value:o}})}else{let o=new Map;for(let c of i){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return Ce;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),o.set(u.value,l.value)}return{status:r.value,value:o}}}};Go.create=(t,e,r)=>new Go({valueType:e,keyType:t,typeName:Ie.ZodMap,...Le(r)});var Zo=class t extends He{_parse(e){let{status:r,ctx:a}=this._processInputParams(e);if(a.parsedType!==_e.set)return ve(a,{code:ue.invalid_type,expected:_e.set,received:a.parsedType}),Ce;let n=this._def;n.minSize!==null&&a.data.sizen.maxSize.value&&(ve(a,{code:ue.too_big,maximum:n.maxSize.value,type:"set",inclusive:!0,exact:!1,message:n.maxSize.message}),r.dirty());let s=this._def.valueType;function i(c){let u=new Set;for(let l of c){if(l.status==="aborted")return Ce;l.status==="dirty"&&r.dirty(),u.add(l.value)}return{status:r.value,value:u}}let o=[...a.data.values()].map((c,u)=>s._parse(new Mr(a,c,a.path,u)));return a.common.async?Promise.all(o).then(c=>i(c)):i(o)}min(e,r){return new t({...this._def,minSize:{value:e,message:Se.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:Se.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};Zo.create=(t,e)=>new Zo({valueType:t,minSize:null,maxSize:null,typeName:Ie.ZodSet,...Le(e)});var Dm=class t extends He{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==_e.function)return ve(r,{code:ue.invalid_type,expected:_e.function,received:r.parsedType}),Ce;function a(o,c){return Am({data:o,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Im(),Lo].filter(u=>!!u),issueData:{code:ue.invalid_arguments,argumentsError:c}})}function n(o,c){return Am({data:o,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Im(),Lo].filter(u=>!!u),issueData:{code:ue.invalid_return_type,returnTypeError:c}})}let s={errorMap:r.common.contextualErrorMap},i=r.data;if(this._def.returns instanceof Va){let o=this;return cr(async function(...c){let u=new Nr([]),l=await o._def.args.parseAsync(c,s).catch(f=>{throw u.addIssue(a(c,f)),u}),d=await Reflect.apply(i,this,l);return await o._def.returns._def.type.parseAsync(d,s).catch(f=>{throw u.addIssue(n(d,f)),u})})}else{let o=this;return cr(function(...c){let u=o._def.args.safeParse(c,s);if(!u.success)throw new Nr([a(c,u.error)]);let l=Reflect.apply(i,this,u.data),d=o._def.returns.safeParse(l,s);if(!d.success)throw new Nr([n(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:Tn.create(e).rest(Xn.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,a){return new t({args:e||Tn.create([]).rest(Xn.create()),returns:r||Xn.create(),typeName:Ie.ZodFunction,...Le(a)})}},fi=class extends He{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};fi.create=(t,e)=>new fi({getter:t,typeName:Ie.ZodLazy,...Le(e)});var mi=class extends He{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return ve(r,{received:r.data,code:ue.invalid_literal,expected:this._def.value}),Ce}return{status:"valid",value:e.data}}get value(){return this._def.value}};mi.create=(t,e)=>new mi({value:t,typeName:Ie.ZodLiteral,...Le(e)});function ik(t,e){return new hi({values:t,typeName:Ie.ZodEnum,...Le(e)})}var hi=class t extends He{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),a=this._def.values;return ve(r,{expected:Ye.joinValues(a),received:r.parsedType,code:ue.invalid_type}),Ce}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let r=this._getOrReturnCtx(e),a=this._def.values;return ve(r,{received:r.data,code:ue.invalid_enum_value,options:a}),Ce}return cr(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(a=>!e.includes(a)),{...this._def,...r})}};hi.create=ik;var vi=class extends He{_parse(e){let r=Ye.getValidEnumValues(this._def.values),a=this._getOrReturnCtx(e);if(a.parsedType!==_e.string&&a.parsedType!==_e.number){let n=Ye.objectValues(r);return ve(a,{expected:Ye.joinValues(n),received:a.parsedType,code:ue.invalid_type}),Ce}if(this._cache||(this._cache=new Set(Ye.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let n=Ye.objectValues(r);return ve(a,{received:a.data,code:ue.invalid_enum_value,options:n}),Ce}return cr(e.data)}get enum(){return this._def.values}};vi.create=(t,e)=>new vi({values:t,typeName:Ie.ZodNativeEnum,...Le(e)});var Va=class extends He{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==_e.promise&&r.common.async===!1)return ve(r,{code:ue.invalid_type,expected:_e.promise,received:r.parsedType}),Ce;let a=r.parsedType===_e.promise?r.data:Promise.resolve(r.data);return cr(a.then(n=>this._def.type.parseAsync(n,{path:r.path,errorMap:r.common.contextualErrorMap})))}};Va.create=(t,e)=>new Va({type:t,typeName:Ie.ZodPromise,...Le(e)});var Br=class extends He{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Ie.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:a}=this._processInputParams(e),n=this._def.effect||null,s={addIssue:i=>{ve(a,i),i.fatal?r.abort():r.dirty()},get path(){return a.path}};if(s.addIssue=s.addIssue.bind(s),n.type==="preprocess"){let i=n.transform(a.data,s);if(a.common.async)return Promise.resolve(i).then(async o=>{if(r.value==="aborted")return Ce;let c=await this._def.schema._parseAsync({data:o,path:a.path,parent:a});return c.status==="aborted"?Ce:c.status==="dirty"||r.value==="dirty"?Mo(c.value):c});{if(r.value==="aborted")return Ce;let o=this._def.schema._parseSync({data:i,path:a.path,parent:a});return o.status==="aborted"?Ce:o.status==="dirty"||r.value==="dirty"?Mo(o.value):o}}if(n.type==="refinement"){let i=o=>{let c=n.refinement(o,s);if(a.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return o};if(a.common.async===!1){let o=this._def.schema._parseSync({data:a.data,path:a.path,parent:a});return o.status==="aborted"?Ce:(o.status==="dirty"&&r.dirty(),i(o.value),{status:r.value,value:o.value})}else return this._def.schema._parseAsync({data:a.data,path:a.path,parent:a}).then(o=>o.status==="aborted"?Ce:(o.status==="dirty"&&r.dirty(),i(o.value).then(()=>({status:r.value,value:o.value}))))}if(n.type==="transform")if(a.common.async===!1){let i=this._def.schema._parseSync({data:a.data,path:a.path,parent:a});if(!oi(i))return Ce;let o=n.transform(i.value,s);if(o instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:o}}else return this._def.schema._parseAsync({data:a.data,path:a.path,parent:a}).then(i=>oi(i)?Promise.resolve(n.transform(i.value,s)).then(o=>({status:r.value,value:o})):Ce);Ye.assertNever(n)}};Br.create=(t,e,r)=>new Br({schema:t,typeName:Ie.ZodEffects,effect:e,...Le(r)});Br.createWithPreprocess=(t,e,r)=>new Br({schema:e,effect:{type:"preprocess",transform:t},typeName:Ie.ZodEffects,...Le(r)});var Hr=class extends He{_parse(e){return this._getType(e)===_e.undefined?cr(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Hr.create=(t,e)=>new Hr({innerType:t,typeName:Ie.ZodOptional,...Le(e)});var kn=class extends He{_parse(e){return this._getType(e)===_e.null?cr(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};kn.create=(t,e)=>new kn({innerType:t,typeName:Ie.ZodNullable,...Le(e)});var gi=class extends He{_parse(e){let{ctx:r}=this._processInputParams(e),a=r.data;return r.parsedType===_e.undefined&&(a=this._def.defaultValue()),this._def.innerType._parse({data:a,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};gi.create=(t,e)=>new gi({innerType:t,typeName:Ie.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Le(e)});var yi=class extends He{_parse(e){let{ctx:r}=this._processInputParams(e),a={...r,common:{...r.common,issues:[]}},n=this._def.innerType._parse({data:a.data,path:a.path,parent:{...a}});return _l(n)?n.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Nr(a.common.issues)},input:a.data})})):{status:"valid",value:n.status==="valid"?n.value:this._def.catchValue({get error(){return new Nr(a.common.issues)},input:a.data})}}removeCatch(){return this._def.innerType}};yi.create=(t,e)=>new yi({innerType:t,typeName:Ie.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Le(e)});var Wo=class extends He{_parse(e){if(this._getType(e)!==_e.nan){let a=this._getOrReturnCtx(e);return ve(a,{code:ue.invalid_type,expected:_e.nan,received:a.parsedType}),Ce}return{status:"valid",value:e.data}}};Wo.create=t=>new Wo({typeName:Ie.ZodNaN,...Le(t)});var TJ=Symbol("zod_brand"),bl=class extends He{_parse(e){let{ctx:r}=this._processInputParams(e),a=r.data;return this._def.type._parse({data:a,path:r.path,parent:r})}unwrap(){return this._def.type}},Sl=class t extends He{_parse(e){let{status:r,ctx:a}=this._processInputParams(e);if(a.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:a.data,path:a.path,parent:a});return s.status==="aborted"?Ce:s.status==="dirty"?(r.dirty(),Mo(s.value)):this._def.out._parseAsync({data:s.value,path:a.path,parent:a})})();{let n=this._def.in._parseSync({data:a.data,path:a.path,parent:a});return n.status==="aborted"?Ce:n.status==="dirty"?(r.dirty(),{status:"dirty",value:n.value}):this._def.out._parseSync({data:n.value,path:a.path,parent:a})}}static create(e,r){return new t({in:e,out:r,typeName:Ie.ZodPipeline})}},_i=class extends He{_parse(e){let r=this._def.innerType._parse(e),a=n=>(oi(n)&&(n.value=Object.freeze(n.value)),n);return _l(r)?r.then(n=>a(n)):a(r)}unwrap(){return this._def.innerType}};_i.create=(t,e)=>new _i({innerType:t,typeName:Ie.ZodReadonly,...Le(e)});var kJ={object:gr.lazycreate},Ie;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(Ie||(Ie={}));var RJ=ci.create,PJ=qo.create,$J=Wo.create,OJ=Fo.create,CJ=Uo.create,IJ=zo.create,AJ=Ho.create,NJ=ui.create,MJ=li.create,jJ=Bo.create,DJ=Xn.create,LJ=fn.create,qJ=Vo.create,FJ=Jn.create,UJ=gr.create,zJ=gr.strictCreate,HJ=di.create,BJ=Nm.create,VJ=pi.create,GJ=Tn.create,ZJ=jm.create,WJ=Go.create,KJ=Zo.create,XJ=Dm.create,JJ=fi.create,YJ=mi.create,QJ=hi.create,eY=vi.create,tY=Va.create,rY=Br.create,nY=Hr.create,aY=kn.create,sY=Br.createWithPreprocess,iY=Sl.create,oY=Object.freeze({status:"aborted"});function ne(t,e,r){function a(o,c){var u;Object.defineProperty(o,"_zod",{value:o._zod??{},enumerable:!1}),(u=o._zod).traits??(u.traits=new Set),o._zod.traits.add(t),e(o,c);for(let l in i.prototype)l in o||Object.defineProperty(o,l,{value:i.prototype[l].bind(o)});o._zod.constr=i,o._zod.def=c}let n=r?.Parent??Object;class s extends n{}Object.defineProperty(s,"name",{value:t});function i(o){var c;let u=r?.Parent?new s:this;a(u,o),(c=u._zod).deferred??(c.deferred=[]);for(let l of u._zod.deferred)l();return u}return Object.defineProperty(i,"init",{value:a}),Object.defineProperty(i,Symbol.hasInstance,{value:o=>r?.Parent&&o instanceof r.Parent?!0:o?._zod?.traits?.has(t)}),Object.defineProperty(i,"name",{value:t}),i}var cY=Symbol("zod_brand"),Ga=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Lm={};function Rn(t){return t&&Object.assign(Lm,t),Lm}var ft={};TT(ft,{unwrapMessage:()=>jo,stringifyPrimitive:()=>rh,required:()=>q5,randomString:()=>P5,propertyKeyTypes:()=>dk,promiseAllObject:()=>R5,primitiveTypes:()=>C5,prefixIssues:()=>Kn,pick:()=>N5,partial:()=>L5,optionalKeys:()=>pk,omit:()=>M5,numKeys:()=>$5,nullish:()=>jl,normalizeParams:()=>$e,merge:()=>D5,jsonStringifyReplacer:()=>ck,joinValues:()=>qm,issue:()=>mk,isPlainObject:()=>Xo,isObject:()=>Ko,getSizableOrigin:()=>F5,getParsedType:()=>O5,getLengthableOrigin:()=>Ll,getEnumValues:()=>ok,getElementAtPath:()=>k5,floatSafeRemainder:()=>uk,finalizeIssue:()=>Pn,extend:()=>j5,escapeRegex:()=>Ti,esc:()=>si,defineLazy:()=>mt,createTransparentProxy:()=>I5,clone:()=>ea,cleanRegex:()=>Dl,cleanEnum:()=>U5,captureStackTrace:()=>th,cached:()=>Ml,assignProp:()=>eh,assertNotEqual:()=>x5,assertNever:()=>E5,assertIs:()=>w5,assertEqual:()=>S5,assert:()=>T5,allowsEval:()=>lk,aborted:()=>ii,NUMBER_FORMAT_RANGES:()=>fk,Class:()=>Fm,BIGINT_FORMAT_RANGES:()=>A5});function S5(t){return t}function x5(t){return t}function w5(t){}function E5(t){throw new Error}function T5(t){}function ok(t){let e=Object.values(t).filter(a=>typeof a=="number");return Object.entries(t).filter(([a,n])=>e.indexOf(+a)===-1).map(([a,n])=>n)}function qm(t,e="|"){return t.map(r=>rh(r)).join(e)}function ck(t,e){return typeof e=="bigint"?e.toString():e}function Ml(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function jl(t){return t==null}function Dl(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function uk(t,e){let r=(t.toString().split(".")[1]||"").length,a=(e.toString().split(".")[1]||"").length,n=r>a?r:a,s=Number.parseInt(t.toFixed(n).replace(".","")),i=Number.parseInt(e.toFixed(n).replace(".",""));return s%i/10**n}function mt(t,e,r){Object.defineProperty(t,e,{get(){{let n=r();return t[e]=n,n}throw new Error("cached value already set")},set(n){Object.defineProperty(t,e,{value:n})},configurable:!0})}function eh(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function k5(t,e){return e?e.reduce((r,a)=>r?.[a],t):t}function R5(t){let e=Object.keys(t),r=e.map(a=>t[a]);return Promise.all(r).then(a=>{let n={};for(let s=0;s{};function Ko(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var lk=Ml(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function Xo(t){if(Ko(t)===!1)return!1;let e=t.constructor;if(e===void 0)return!0;let r=e.prototype;return!(Ko(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function $5(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var O5=t=>{let e=typeof t;switch(e){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(t)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(t)?"array":t===null?"null":t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?"promise":typeof Map<"u"&&t instanceof Map?"map":typeof Set<"u"&&t instanceof Set?"set":typeof Date<"u"&&t instanceof Date?"date":typeof File<"u"&&t instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${e}`)}},dk=new Set(["string","number","symbol"]),C5=new Set(["string","number","bigint","boolean","symbol","undefined"]);function Ti(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ea(t,e,r){let a=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(a._zod.parent=t),a}function $e(t){let e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if(e?.message!==void 0){if(e?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function I5(t){let e;return new Proxy({},{get(r,a,n){return e??(e=t()),Reflect.get(e,a,n)},set(r,a,n,s){return e??(e=t()),Reflect.set(e,a,n,s)},has(r,a){return e??(e=t()),Reflect.has(e,a)},deleteProperty(r,a){return e??(e=t()),Reflect.deleteProperty(e,a)},ownKeys(r){return e??(e=t()),Reflect.ownKeys(e)},getOwnPropertyDescriptor(r,a){return e??(e=t()),Reflect.getOwnPropertyDescriptor(e,a)},defineProperty(r,a,n){return e??(e=t()),Reflect.defineProperty(e,a,n)}})}function rh(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function pk(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var fk={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},A5={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function N5(t,e){let r={},a=t._zod.def;for(let n in e){if(!(n in a.shape))throw new Error(`Unrecognized key: "${n}"`);e[n]&&(r[n]=a.shape[n])}return ea(t,{...t._zod.def,shape:r,checks:[]})}function M5(t,e){let r={...t._zod.def.shape},a=t._zod.def;for(let n in e){if(!(n in a.shape))throw new Error(`Unrecognized key: "${n}"`);e[n]&&delete r[n]}return ea(t,{...t._zod.def,shape:r,checks:[]})}function j5(t,e){if(!Xo(e))throw new Error("Invalid input to extend: expected a plain object");let r={...t._zod.def,get shape(){let a={...t._zod.def.shape,...e};return eh(this,"shape",a),a},checks:[]};return ea(t,r)}function D5(t,e){return ea(t,{...t._zod.def,get shape(){let r={...t._zod.def.shape,...e._zod.def.shape};return eh(this,"shape",r),r},catchall:e._zod.def.catchall,checks:[]})}function L5(t,e,r){let a=e._zod.def.shape,n={...a};if(r)for(let s in r){if(!(s in a))throw new Error(`Unrecognized key: "${s}"`);r[s]&&(n[s]=t?new t({type:"optional",innerType:a[s]}):a[s])}else for(let s in a)n[s]=t?new t({type:"optional",innerType:a[s]}):a[s];return ea(e,{...e._zod.def,shape:n,checks:[]})}function q5(t,e,r){let a=e._zod.def.shape,n={...a};if(r)for(let s in r){if(!(s in n))throw new Error(`Unrecognized key: "${s}"`);r[s]&&(n[s]=new t({type:"nonoptional",innerType:a[s]}))}else for(let s in a)n[s]=new t({type:"nonoptional",innerType:a[s]});return ea(e,{...e._zod.def,shape:n,checks:[]})}function ii(t,e=0){for(let r=e;r{var a;return(a=r).path??(a.path=[]),r.path.unshift(t),r})}function jo(t){return typeof t=="string"?t:t?.message}function Pn(t,e,r){let a={...t,path:t.path??[]};if(!t.message){let n=jo(t.inst?._zod.def?.error?.(t))??jo(e?.error?.(t))??jo(r.customError?.(t))??jo(r.localeError?.(t))??"Invalid input";a.message=n}return delete a.inst,delete a.continue,e?.reportInput||delete a.input,a}function F5(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function Ll(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function mk(...t){let[e,r,a]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:a}:{...e}}function U5(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}var Fm=class{constructor(...e){}},hk=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),Object.defineProperty(t,"message",{get(){return JSON.stringify(e,ck,2)},enumerable:!0})},vk=ne("$ZodError",hk),gk=ne("$ZodError",hk,{Parent:Error});function z5(t,e=r=>r.message){let r={},a=[];for(let n of t.issues)n.path.length>0?(r[n.path[0]]=r[n.path[0]]||[],r[n.path[0]].push(e(n))):a.push(e(n));return{formErrors:a,fieldErrors:r}}function H5(t,e){let r=e||function(s){return s.message},a={_errors:[]},n=s=>{for(let i of s.issues)if(i.code==="invalid_union"&&i.errors.length)i.errors.map(o=>n({issues:o}));else if(i.code==="invalid_key")n({issues:i.issues});else if(i.code==="invalid_element")n({issues:i.issues});else if(i.path.length===0)a._errors.push(r(i));else{let o=a,c=0;for(;c(e,r,a,n)=>{let s=a?Object.assign(a,{async:!1}):{async:!1},i=e._zod.run({value:r,issues:[]},s);if(i instanceof Promise)throw new Ga;if(i.issues.length){let o=new(n?.Err??t)(i.issues.map(c=>Pn(c,s,Rn())));throw th(o,n?.callee),o}return i.value};var V5=t=>async(e,r,a,n)=>{let s=a?Object.assign(a,{async:!0}):{async:!0},i=e._zod.run({value:r,issues:[]},s);if(i instanceof Promise&&(i=await i),i.issues.length){let o=new(n?.Err??t)(i.issues.map(c=>Pn(c,s,Rn())));throw th(o,n?.callee),o}return i.value};var yk=t=>(e,r,a)=>{let n=a?{...a,async:!1}:{async:!1},s=e._zod.run({value:r,issues:[]},n);if(s instanceof Promise)throw new Ga;return s.issues.length?{success:!1,error:new(t??vk)(s.issues.map(i=>Pn(i,n,Rn())))}:{success:!0,data:s.value}},G5=yk(gk),_k=t=>async(e,r,a)=>{let n=a?Object.assign(a,{async:!0}):{async:!0},s=e._zod.run({value:r,issues:[]},n);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new t(s.issues.map(i=>Pn(i,n,Rn())))}:{success:!0,data:s.value}},Z5=_k(gk),W5=/^[cC][^\s-]{8,}$/,K5=/^[0-9a-z]+$/,X5=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,J5=/^[0-9a-vA-V]{20}$/,Y5=/^[A-Za-z0-9]{27}$/,Q5=/^[a-zA-Z0-9_-]{21}$/,ez=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,tz=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,sT=t=>t?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${t}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/,rz=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,nz="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function az(){return new RegExp(nz,"u")}var sz=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,iz=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/,oz=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,cz=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,uz=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,bk=/^[A-Za-z0-9_-]*$/,lz=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,dz=/^\+(?:[0-9]){6,14}[0-9]$/,Sk="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",pz=new RegExp(`^${Sk}$`);function xk(t){let e="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof t.precision=="number"?t.precision===-1?`${e}`:t.precision===0?`${e}:[0-5]\\d`:`${e}:[0-5]\\d\\.\\d{${t.precision}}`:`${e}(?::[0-5]\\d(?:\\.\\d+)?)?`}function fz(t){return new RegExp(`^${xk(t)}$`)}function mz(t){let e=xk({precision:t.precision}),r=["Z"];t.local&&r.push(""),t.offset&&r.push("([+-]\\d{2}:\\d{2})");let a=`${e}(?:${r.join("|")})`;return new RegExp(`^${Sk}T(?:${a})$`)}var hz=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},vz=/^\d+$/,gz=/^-?\d+(?:\.\d+)?/i,yz=/true|false/i,_z=/null/i,bz=/^[^A-Z]*$/,Sz=/^[^a-z]*$/,ur=ne("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),wk={number:"number",bigint:"bigint",object:"date"},Ek=ne("$ZodCheckLessThan",(t,e)=>{ur.init(t,e);let r=wk[typeof e.value];t._zod.onattach.push(a=>{let n=a._zod.bag,s=(e.inclusive?n.maximum:n.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?a.value<=e.value:a.value{ur.init(t,e);let r=wk[typeof e.value];t._zod.onattach.push(a=>{let n=a._zod.bag,s=(e.inclusive?n.minimum:n.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>s&&(e.inclusive?n.minimum=e.value:n.exclusiveMinimum=e.value)}),t._zod.check=a=>{(e.inclusive?a.value>=e.value:a.value>e.value)||a.issues.push({origin:r,code:"too_small",minimum:e.value,input:a.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),xz=ne("$ZodCheckMultipleOf",(t,e)=>{ur.init(t,e),t._zod.onattach.push(r=>{var a;(a=r._zod.bag).multipleOf??(a.multipleOf=e.value)}),t._zod.check=r=>{if(typeof r.value!=typeof e.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%e.value===BigInt(0):uk(r.value,e.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:e.value,input:r.value,inst:t,continue:!e.abort})}}),wz=ne("$ZodCheckNumberFormat",(t,e)=>{ur.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),a=r?"int":"number",[n,s]=fk[e.format];t._zod.onattach.push(i=>{let o=i._zod.bag;o.format=e.format,o.minimum=n,o.maximum=s,r&&(o.pattern=vz)}),t._zod.check=i=>{let o=i.value;if(r){if(!Number.isInteger(o)){i.issues.push({expected:a,format:e.format,code:"invalid_type",input:o,inst:t});return}if(!Number.isSafeInteger(o)){o>0?i.issues.push({input:o,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:a,continue:!e.abort}):i.issues.push({input:o,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:a,continue:!e.abort});return}}os&&i.issues.push({origin:"number",input:o,code:"too_big",maximum:s,inst:t})}}),Ez=ne("$ZodCheckMaxLength",(t,e)=>{ur.init(t,e),t._zod.when=r=>{let a=r.value;return!jl(a)&&a.length!==void 0},t._zod.onattach.push(r=>{let a=r._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let a=r.value;if(a.length<=e.maximum)return;let s=Ll(a);r.issues.push({origin:s,code:"too_big",maximum:e.maximum,inclusive:!0,input:a,inst:t,continue:!e.abort})}}),Tz=ne("$ZodCheckMinLength",(t,e)=>{ur.init(t,e),t._zod.when=r=>{let a=r.value;return!jl(a)&&a.length!==void 0},t._zod.onattach.push(r=>{let a=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>a&&(r._zod.bag.minimum=e.minimum)}),t._zod.check=r=>{let a=r.value;if(a.length>=e.minimum)return;let s=Ll(a);r.issues.push({origin:s,code:"too_small",minimum:e.minimum,inclusive:!0,input:a,inst:t,continue:!e.abort})}}),kz=ne("$ZodCheckLengthEquals",(t,e)=>{ur.init(t,e),t._zod.when=r=>{let a=r.value;return!jl(a)&&a.length!==void 0},t._zod.onattach.push(r=>{let a=r._zod.bag;a.minimum=e.length,a.maximum=e.length,a.length=e.length}),t._zod.check=r=>{let a=r.value,n=a.length;if(n===e.length)return;let s=Ll(a),i=n>e.length;r.issues.push({origin:s,...i?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:r.value,inst:t,continue:!e.abort})}}),ql=ne("$ZodCheckStringFormat",(t,e)=>{var r,a;ur.init(t,e),t._zod.onattach.push(n=>{let s=n._zod.bag;s.format=e.format,e.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(e.pattern))}),e.pattern?(r=t._zod).check??(r.check=n=>{e.pattern.lastIndex=0,!e.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:e.format,input:n.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(a=t._zod).check??(a.check=()=>{})}),Rz=ne("$ZodCheckRegex",(t,e)=>{ql.init(t,e),t._zod.check=r=>{e.pattern.lastIndex=0,!e.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:e.pattern.toString(),inst:t,continue:!e.abort})}}),Pz=ne("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=bz),ql.init(t,e)}),$z=ne("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=Sz),ql.init(t,e)}),Oz=ne("$ZodCheckIncludes",(t,e)=>{ur.init(t,e);let r=Ti(e.includes),a=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=a,t._zod.onattach.push(n=>{let s=n._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(a)}),t._zod.check=n=>{n.value.includes(e.includes,e.position)||n.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:n.value,inst:t,continue:!e.abort})}}),Cz=ne("$ZodCheckStartsWith",(t,e)=>{ur.init(t,e);let r=new RegExp(`^${Ti(e.prefix)}.*`);e.pattern??(e.pattern=r),t._zod.onattach.push(a=>{let n=a._zod.bag;n.patterns??(n.patterns=new Set),n.patterns.add(r)}),t._zod.check=a=>{a.value.startsWith(e.prefix)||a.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:a.value,inst:t,continue:!e.abort})}}),Iz=ne("$ZodCheckEndsWith",(t,e)=>{ur.init(t,e);let r=new RegExp(`.*${Ti(e.suffix)}$`);e.pattern??(e.pattern=r),t._zod.onattach.push(a=>{let n=a._zod.bag;n.patterns??(n.patterns=new Set),n.patterns.add(r)}),t._zod.check=a=>{a.value.endsWith(e.suffix)||a.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:a.value,inst:t,continue:!e.abort})}}),Az=ne("$ZodCheckOverwrite",(t,e)=>{ur.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}}),Um=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let a=e.split(` -`).filter(i=>i),n=Math.min(...a.map(i=>i.length-i.trimStart().length)),s=a.map(i=>i.slice(n)).map(i=>" ".repeat(this.indent*2)+i);for(let i of s)this.content.push(i)}compile(){let e=Function,r=this?.args,n=[...(this?.content??[""]).map(s=>` ${s}`)];return new e(...r,n.join(` -`))}},Nz={major:4,minor:0,patch:0},ht=ne("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=Nz;let a=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&a.unshift(t);for(let n of a)for(let s of n._zod.onattach)s(t);if(a.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let n=(s,i,o)=>{let c=ii(s),u;for(let l of i){if(l._zod.when){if(!l._zod.when(s))continue}else if(c)continue;let d=s.issues.length,p=l._zod.check(s);if(p instanceof Promise&&o?.async===!1)throw new Ga;if(u||p instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await p,s.issues.length!==d&&(c||(c=ii(s,d)))});else{if(s.issues.length===d)continue;c||(c=ii(s,d))}}return u?u.then(()=>s):s};t._zod.run=(s,i)=>{let o=t._zod.parse(s,i);if(o instanceof Promise){if(i.async===!1)throw new Ga;return o.then(c=>n(c,a,i))}return n(o,a,i)}}t["~standard"]={validate:n=>{try{let s=G5(t,n);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return Z5(t,n).then(i=>i.success?{value:i.data}:{issues:i.error?.issues})}},vendor:"zod",version:1}}),nh=ne("$ZodString",(t,e)=>{ht.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??hz(t._zod.bag),t._zod.parse=(r,a)=>{if(e.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:t}),r}}),yt=ne("$ZodStringFormat",(t,e)=>{ql.init(t,e),nh.init(t,e)}),Mz=ne("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=tz),yt.init(t,e)}),jz=ne("$ZodUUID",(t,e)=>{if(e.version){let a={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(a===void 0)throw new Error(`Invalid UUID version: "${e.version}"`);e.pattern??(e.pattern=sT(a))}else e.pattern??(e.pattern=sT());yt.init(t,e)}),Dz=ne("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=rz),yt.init(t,e)}),Lz=ne("$ZodURL",(t,e)=>{yt.init(t,e),t._zod.check=r=>{try{let a=r.value,n=new URL(a),s=n.href;e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(n.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:lz.source,input:r.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(n.protocol.endsWith(":")?n.protocol.slice(0,-1):n.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:r.value,inst:t,continue:!e.abort})),!a.endsWith("/")&&s.endsWith("/")?r.value=s.slice(0,-1):r.value=s;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!e.abort})}}}),qz=ne("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=az()),yt.init(t,e)}),Fz=ne("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=Q5),yt.init(t,e)}),Uz=ne("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=W5),yt.init(t,e)}),zz=ne("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=K5),yt.init(t,e)}),Hz=ne("$ZodULID",(t,e)=>{e.pattern??(e.pattern=X5),yt.init(t,e)}),Bz=ne("$ZodXID",(t,e)=>{e.pattern??(e.pattern=J5),yt.init(t,e)}),Vz=ne("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=Y5),yt.init(t,e)}),Gz=ne("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=mz(e)),yt.init(t,e)}),Zz=ne("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=pz),yt.init(t,e)}),Wz=ne("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=fz(e)),yt.init(t,e)}),Kz=ne("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=ez),yt.init(t,e)}),Xz=ne("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=sz),yt.init(t,e),t._zod.onattach.push(r=>{let a=r._zod.bag;a.format="ipv4"})}),Jz=ne("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=iz),yt.init(t,e),t._zod.onattach.push(r=>{let a=r._zod.bag;a.format="ipv6"}),t._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:t,continue:!e.abort})}}}),Yz=ne("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=oz),yt.init(t,e)}),Qz=ne("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=cz),yt.init(t,e),t._zod.check=r=>{let[a,n]=r.value.split("/");try{if(!n)throw new Error;let s=Number(n);if(`${s}`!==n)throw new Error;if(s<0||s>128)throw new Error;new URL(`http://[${a}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:t,continue:!e.abort})}}});function kk(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var e3=ne("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=uz),yt.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64"}),t._zod.check=r=>{kk(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function t3(t){if(!bk.test(t))return!1;let e=t.replace(/[-_]/g,a=>a==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return kk(r)}var r3=ne("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=bk),yt.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64url"}),t._zod.check=r=>{t3(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),n3=ne("$ZodE164",(t,e)=>{e.pattern??(e.pattern=dz),yt.init(t,e)});function a3(t,e=null){try{let r=t.split(".");if(r.length!==3)return!1;let[a]=r;if(!a)return!1;let n=JSON.parse(atob(a));return!("typ"in n&&n?.typ!=="JWT"||!n.alg||e&&(!("alg"in n)||n.alg!==e))}catch{return!1}}var s3=ne("$ZodJWT",(t,e)=>{yt.init(t,e),t._zod.check=r=>{a3(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}}),Rk=ne("$ZodNumber",(t,e)=>{ht.init(t,e),t._zod.pattern=t._zod.bag.pattern??gz,t._zod.parse=(r,a)=>{if(e.coerce)try{r.value=Number(r.value)}catch{}let n=r.value;if(typeof n=="number"&&!Number.isNaN(n)&&Number.isFinite(n))return r;let s=typeof n=="number"?Number.isNaN(n)?"NaN":Number.isFinite(n)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:n,inst:t,...s?{received:s}:{}}),r}}),i3=ne("$ZodNumber",(t,e)=>{wz.init(t,e),Rk.init(t,e)}),o3=ne("$ZodBoolean",(t,e)=>{ht.init(t,e),t._zod.pattern=yz,t._zod.parse=(r,a)=>{if(e.coerce)try{r.value=!!r.value}catch{}let n=r.value;return typeof n=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:n,inst:t}),r}}),c3=ne("$ZodNull",(t,e)=>{ht.init(t,e),t._zod.pattern=_z,t._zod.values=new Set([null]),t._zod.parse=(r,a)=>{let n=r.value;return n===null||r.issues.push({expected:"null",code:"invalid_type",input:n,inst:t}),r}}),u3=ne("$ZodUnknown",(t,e)=>{ht.init(t,e),t._zod.parse=r=>r}),l3=ne("$ZodNever",(t,e)=>{ht.init(t,e),t._zod.parse=(r,a)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)});function iT(t,e,r){t.issues.length&&e.issues.push(...Kn(r,t.issues)),e.value[r]=t.value}var d3=ne("$ZodArray",(t,e)=>{ht.init(t,e),t._zod.parse=(r,a)=>{let n=r.value;if(!Array.isArray(n))return r.issues.push({expected:"array",code:"invalid_type",input:n,inst:t}),r;r.value=Array(n.length);let s=[];for(let i=0;iiT(u,r,i))):iT(c,r,i)}return s.length?Promise.all(s).then(()=>r):r}});function dl(t,e,r){t.issues.length&&e.issues.push(...Kn(r,t.issues)),e.value[r]=t.value}function oT(t,e,r,a){t.issues.length?a[r]===void 0?r in a?e.value[r]=void 0:e.value[r]=t.value:e.issues.push(...Kn(r,t.issues)):t.value===void 0?r in a&&(e.value[r]=void 0):e.value[r]=t.value}var p3=ne("$ZodObject",(t,e)=>{ht.init(t,e);let r=Ml(()=>{let d=Object.keys(e.shape);for(let f of d)if(!(e.shape[f]instanceof ht))throw new Error(`Invalid element at key "${f}": expected a Zod schema`);let p=pk(e.shape);return{shape:e.shape,keys:d,keySet:new Set(d),numKeys:d.length,optionalKeys:new Set(p)}});mt(t._zod,"propValues",()=>{let d=e.shape,p={};for(let f in d){let v=d[f]._zod;if(v.values){p[f]??(p[f]=new Set);for(let _ of v.values)p[f].add(_)}}return p});let a=d=>{let p=new Um(["shape","payload","ctx"]),f=r.value,v=y=>{let g=si(y);return`shape[${g}]._zod.run({ value: input[${g}], issues: [] }, ctx)`};p.write("const input = payload.value;");let _=Object.create(null),m=0;for(let y of f.keys)_[y]=`key_${m++}`;p.write("const newResult = {}");for(let y of f.keys)if(f.optionalKeys.has(y)){let g=_[y];p.write(`const ${g} = ${v(y)};`);let b=si(y);p.write(` + deps: ${l}}`};var i={keyword:"dependencies",type:"object",schemaType:"object",error:t.error,code(c){let[u,l]=a(c);o(c,u),s(c,l)}};function a({schema:c}){let u={},l={};for(let d in c){if(d==="__proto__")continue;let p=Array.isArray(c[d])?u:l;p[d]=c[d]}return[u,l]}function o(c,u=c.schema){let{gen:l,data:d,it:p}=c;if(Object.keys(u).length===0)return;let f=l.let("missing");for(let h in u){let _=u[h];if(_.length===0)continue;let y=(0,n.propertyInData)(l,d,h,p.opts.ownProperties);c.setParams({property:h,depsCount:_.length,deps:_.join(", ")}),p.allErrors?l.if(y,()=>{for(let m of _)(0,n.checkReportMissingProp)(c,m)}):(l.if((0,e._)`${y} && (${(0,n.checkMissingProp)(c,_,f)})`),(0,n.reportMissingProp)(c,f),l.else())}}t.validatePropertyDeps=o;function s(c,u=c.schema){let{gen:l,data:d,keyword:p,it:f}=c,h=l.name("valid");for(let _ in u)(0,r.alwaysValidSchema)(f,u[_])||(l.if((0,n.propertyInData)(l,d,_,f.opts.ownProperties),()=>{let y=c.subschema({keyword:p,schemaProp:_},h);c.mergeValidEvaluated(y,h)},()=>l.var(h,!0)),c.ok(h))}t.validateSchemaDeps=s,t.default=i}),yie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r=lt(),n={message:"property name must be valid",params:({params:a})=>(0,e._)`{propertyName: ${a.propertyName}}`},i={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:n,code(a){let{gen:o,schema:s,data:c,it:u}=a;if((0,r.alwaysValidSchema)(u,s))return;let l=o.name("valid");o.forIn("key",c,d=>{a.setParams({propertyName:d}),a.subschema({keyword:"propertyNames",data:d,dataTypes:["string"],propertyName:d,compositeRule:!0},l),o.if((0,e.not)(l),()=>{a.error(!0),u.allErrors||o.break()})}),a.ok(l)}};t.default=i}),l2=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xn(),r=Be(),n=$a(),i=lt(),a={message:"must NOT have additional properties",params:({params:s})=>(0,r._)`{additionalProperty: ${s.additionalProperty}}`},o={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:a,code(s){let{gen:c,schema:u,parentSchema:l,data:d,errsCount:p,it:f}=s;if(!p)throw new Error("ajv implementation error");let{allErrors:h,opts:_}=f;if(f.props=!0,_.removeAdditional!=="all"&&(0,i.alwaysValidSchema)(f,u))return;let y=(0,e.allSchemaProperties)(l.properties),m=(0,e.allSchemaProperties)(l.patternProperties);v(),s.ok((0,r._)`${p} === ${n.default.errors}`);function v(){c.forIn("key",d,w=>{!y.length&&!m.length?S(w):c.if(g(w),()=>S(w))})}function g(w){let E;if(y.length>8){let R=(0,i.schemaRefOrVal)(f,l.properties,"properties");E=(0,e.isOwnProperty)(c,R,w)}else y.length?E=(0,r.or)(...y.map(R=>(0,r._)`${w} === ${R}`)):E=r.nil;return m.length&&(E=(0,r.or)(E,...m.map(R=>(0,r._)`${(0,e.usePattern)(s,R)}.test(${w})`))),(0,r.not)(E)}function b(w){c.code((0,r._)`delete ${d}[${w}]`)}function S(w){if(_.removeAdditional==="all"||_.removeAdditional&&u===!1){b(w);return}if(u===!1){s.setParams({additionalProperty:w}),s.error(),h||c.break();return}if(typeof u=="object"&&!(0,i.alwaysValidSchema)(f,u)){let E=c.name("valid");_.removeAdditional==="failing"?(x(w,E,!1),c.if((0,r.not)(E),()=>{s.reset(),b(w)})):(x(w,E),h||c.if((0,r.not)(E),()=>c.break()))}}function x(w,E,R){let A={keyword:"additionalProperties",dataProp:w,dataPropType:i.Type.Str};R===!1&&Object.assign(A,{compositeRule:!0,createErrors:!1,allErrors:!1}),s.subschema(A,E)}}};t.default=o}),_ie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Fh(),r=Xn(),n=lt(),i=l2(),a={keyword:"properties",type:"object",schemaType:"object",code(o){let{gen:s,schema:c,parentSchema:u,data:l,it:d}=o;d.opts.removeAdditional==="all"&&u.additionalProperties===void 0&&i.default.code(new e.KeywordCxt(d,i.default,"additionalProperties"));let p=(0,r.allSchemaProperties)(c);for(let m of p)d.definedProperties.add(m);d.opts.unevaluated&&p.length&&d.props!==!0&&(d.props=n.mergeEvaluated.props(s,(0,n.toHash)(p),d.props));let f=p.filter(m=>!(0,n.alwaysValidSchema)(d,c[m]));if(f.length===0)return;let h=s.name("valid");for(let m of f)_(m)?y(m):(s.if((0,r.propertyInData)(s,l,m,d.opts.ownProperties)),y(m),d.allErrors||s.else().var(h,!0),s.endIf()),o.it.definedProperties.add(m),o.ok(h);function _(m){return d.opts.useDefaults&&!d.compositeRule&&c[m].default!==void 0}function y(m){o.subschema({keyword:"properties",schemaProp:m,dataProp:m},h)}}};t.default=a}),bie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xn(),r=Be(),n=lt(),i=lt(),a={keyword:"patternProperties",type:"object",schemaType:"object",code(o){let{gen:s,schema:c,data:u,parentSchema:l,it:d}=o,{opts:p}=d,f=(0,e.allSchemaProperties)(c),h=f.filter(S=>(0,n.alwaysValidSchema)(d,c[S]));if(f.length===0||h.length===f.length&&(!d.opts.unevaluated||d.props===!0))return;let _=p.strictSchema&&!p.allowMatchingProperties&&l.properties,y=s.name("valid");d.props!==!0&&!(d.props instanceof r.Name)&&(d.props=(0,i.evaluatedPropsToName)(s,d.props));let{props:m}=d;v();function v(){for(let S of f)_&&g(S),d.allErrors?b(S):(s.var(y,!0),b(S),s.if(y))}function g(S){for(let x in _)new RegExp(S).test(x)&&(0,n.checkStrictMode)(d,`property ${x} matches pattern ${S} (use allowMatchingProperties)`)}function b(S){s.forIn("key",u,x=>{s.if((0,r._)`${(0,e.usePattern)(o,S)}.test(${x})`,()=>{let w=h.includes(S);w||o.subschema({keyword:"patternProperties",schemaProp:S,dataProp:x,dataPropType:i.Type.Str},y),d.opts.unevaluated&&m!==!0?s.assign((0,r._)`${m}[${x}]`,!0):!w&&!d.allErrors&&s.if((0,r.not)(y),()=>s.break())})})}}};t.default=a}),xie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=lt(),r={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(n){let{gen:i,schema:a,it:o}=n;if((0,e.alwaysValidSchema)(o,a)){n.fail();return}let s=i.name("valid");n.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},s),n.failResult(s,()=>n.reset(),()=>n.error())},error:{message:"must NOT be valid"}};t.default=r}),Sie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Xn(),r={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:e.validateUnion,error:{message:"must match a schema in anyOf"}};t.default=r}),wie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r=lt(),n={message:"must match exactly one schema in oneOf",params:({params:a})=>(0,e._)`{passingSchemas: ${a.passing}}`},i={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:n,code(a){let{gen:o,schema:s,parentSchema:c,it:u}=a;if(!Array.isArray(s))throw new Error("ajv implementation error");if(u.opts.discriminator&&c.discriminator)return;let l=s,d=o.let("valid",!1),p=o.let("passing",null),f=o.name("_valid");a.setParams({passing:p}),o.block(h),a.result(d,()=>a.reset(),()=>a.error(!0));function h(){l.forEach((_,y)=>{let m;(0,r.alwaysValidSchema)(u,_)?o.var(f,!0):m=a.subschema({keyword:"oneOf",schemaProp:y,compositeRule:!0},f),y>0&&o.if((0,e._)`${f} && ${d}`).assign(d,!1).assign(p,(0,e._)`[${p}, ${y}]`).else(),o.if(f,()=>{o.assign(d,!0),o.assign(p,y),m&&a.mergeEvaluated(m,e.Name)})})}}};t.default=i}),$ie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=lt(),r={keyword:"allOf",schemaType:"array",code(n){let{gen:i,schema:a,it:o}=n;if(!Array.isArray(a))throw new Error("ajv implementation error");let s=i.name("valid");a.forEach((c,u)=>{if((0,e.alwaysValidSchema)(o,c))return;let l=n.subschema({keyword:"allOf",schemaProp:u},s);n.ok(s),n.mergeEvaluated(l)})}};t.default=r}),Eie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r=lt(),n={message:({params:o})=>(0,e.str)`must match "${o.ifClause}" schema`,params:({params:o})=>(0,e._)`{failingKeyword: ${o.ifClause}}`},i={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:n,code(o){let{gen:s,parentSchema:c,it:u}=o;c.then===void 0&&c.else===void 0&&(0,r.checkStrictMode)(u,'"if" without "then" and "else" is ignored');let l=a(u,"then"),d=a(u,"else");if(!l&&!d)return;let p=s.let("valid",!0),f=s.name("_valid");if(h(),o.reset(),l&&d){let y=s.let("ifClause");o.setParams({ifClause:y}),s.if(f,_("then",y),_("else",y))}else l?s.if(f,_("then")):s.if((0,e.not)(f),_("else"));o.pass(p,()=>o.error(!0));function h(){let y=o.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},f);o.mergeEvaluated(y)}function _(y,m){return()=>{let v=o.subschema({keyword:y},f);s.assign(p,f),o.mergeValidEvaluated(v,p),m?s.assign(m,(0,e._)`${y}`):o.setParams({ifClause:y})}}}};function a(o,s){let c=o.schema[s];return c!==void 0&&!(0,r.alwaysValidSchema)(o,c)}t.default=i}),kie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=lt(),r={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:n,parentSchema:i,it:a}){i.if===void 0&&(0,e.checkStrictMode)(a,`"${n}" without "if" is ignored`)}};t.default=r}),Tie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=c2(),r=mie(),n=u2(),i=hie(),a=gie(),o=vie(),s=yie(),c=l2(),u=_ie(),l=bie(),d=xie(),p=Sie(),f=wie(),h=$ie(),_=Eie(),y=kie();function m(v=!1){let g=[d.default,p.default,f.default,h.default,_.default,y.default,s.default,c.default,o.default,u.default,l.default];return v?g.push(r.default,i.default):g.push(e.default,n.default),g.push(a.default),g}t.default=m}),Iie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r={message:({schemaCode:i})=>(0,e.str)`must match format "${i}"`,params:({schemaCode:i})=>(0,e._)`{format: ${i}}`},n={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:r,code(i,a){let{gen:o,data:s,$data:c,schema:u,schemaCode:l,it:d}=i,{opts:p,errSchemaPath:f,schemaEnv:h,self:_}=d;if(!p.validateFormats)return;c?y():m();function y(){let v=o.scopeValue("formats",{ref:_.formats,code:p.code.formats}),g=o.const("fDef",(0,e._)`${v}[${l}]`),b=o.let("fType"),S=o.let("format");o.if((0,e._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>o.assign(b,(0,e._)`${g}.type || "string"`).assign(S,(0,e._)`${g}.validate`),()=>o.assign(b,(0,e._)`"string"`).assign(S,g)),i.fail$data((0,e.or)(x(),w()));function x(){return p.strictSchema===!1?e.nil:(0,e._)`${l} && !${S}`}function w(){let E=h.$async?(0,e._)`(${g}.async ? await ${S}(${s}) : ${S}(${s}))`:(0,e._)`${S}(${s})`,R=(0,e._)`(typeof ${S} == "function" ? ${E} : ${S}.test(${s}))`;return(0,e._)`${S} && ${S} !== true && ${b} === ${a} && !${R}`}}function m(){let v=_.formats[u];if(!v){x();return}if(v===!0)return;let[g,b,S]=w(v);g===a&&i.pass(E());function x(){if(p.strictSchema===!1){_.logger.warn(R());return}throw new Error(R());function R(){return`unknown format "${u}" ignored in schema at path "${f}"`}}function w(R){let A=R instanceof RegExp?(0,e.regexpCode)(R):p.code.formats?(0,e._)`${p.code.formats}${(0,e.getProperty)(u)}`:void 0,M=o.scopeValue("formats",{key:u,ref:R,code:A});return typeof R=="object"&&!(R instanceof RegExp)?[R.type||"string",R.validate,(0,e._)`${M}.validate`]:["string",R,M]}function E(){if(typeof v=="object"&&!(v instanceof RegExp)&&v.async){if(!h.$async)throw new Error("async format in sync schema");return(0,e._)`await ${S}(${s})`}return typeof b=="function"?(0,e._)`${S}(${s})`:(0,e._)`${S}.test(${s})`}}}};t.default=n}),Pie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Iie(),r=[e.default];t.default=r}),Rie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.contentVocabulary=t.metadataVocabulary=void 0,t.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],t.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]}),Oie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=tie(),r=fie(),n=Tie(),i=Pie(),a=Rie(),o=[e.default,r.default,(0,n.default)(),i.default,a.metadataVocabulary,a.contentVocabulary];t.default=o}),Cie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiscrError=void 0;var e;(function(r){r.Tag="tag",r.Mapping="mapping"})(e||(t.DiscrError=e={}))}),Nie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Be(),r=Cie(),n=P$(),i=Zh(),a=lt(),o={message:({params:{discrError:c,tagName:u}})=>c===r.DiscrError.Tag?`tag "${u}" must be string`:`value of tag "${u}" must be in oneOf`,params:({params:{discrError:c,tag:u,tagName:l}})=>(0,e._)`{error: ${c}, tag: ${l}, tagValue: ${u}}`},s={keyword:"discriminator",type:"object",schemaType:"object",error:o,code(c){let{gen:u,data:l,schema:d,parentSchema:p,it:f}=c,{oneOf:h}=p;if(!f.opts.discriminator)throw new Error("discriminator: requires discriminator option");let _=d.propertyName;if(typeof _!="string")throw new Error("discriminator: requires propertyName");if(d.mapping)throw new Error("discriminator: mapping is not supported");if(!h)throw new Error("discriminator: requires oneOf keyword");let y=u.let("valid",!1),m=u.const("tag",(0,e._)`${l}${(0,e.getProperty)(_)}`);u.if((0,e._)`typeof ${m} == "string"`,()=>v(),()=>c.error(!1,{discrError:r.DiscrError.Tag,tag:m,tagName:_})),c.ok(y);function v(){let S=b();u.if(!1);for(let x in S)u.elseIf((0,e._)`${m} === ${x}`),u.assign(y,g(S[x]));u.else(),c.error(!1,{discrError:r.DiscrError.Mapping,tag:m,tagName:_}),u.endIf()}function g(S){let x=u.name("valid"),w=c.subschema({keyword:"oneOf",schemaProp:S},x);return c.mergeEvaluated(w,e.Name),x}function b(){var S;let x={},w=R(p),E=!0;for(let q=0;q{e.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}}),Aie=V((t,e)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MissingRefError=t.ValidationError=t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=t.Ajv=void 0;var r=Yne(),n=Oie(),i=Nie(),a=jie(),o=["/properties"],s="http://json-schema.org/draft-07/schema";class c extends r.default{_addVocabularies(){super._addVocabularies(),n.default.forEach(h=>this.addVocabulary(h)),this.opts.discriminator&&this.addKeyword(i.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let h=this.opts.$data?this.$dataMetaSchema(a,o):a;this.addMetaSchema(h,s,!1),this.refs["http://json-schema.org/schema"]=s}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(s)?s:void 0)}}t.Ajv=c,e.exports=t=c,e.exports.Ajv=c,Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var u=Fh();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return u.KeywordCxt}});var l=Be();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return l._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return l.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return l.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return l.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return l.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return l.CodeGen}});var d=I$();Object.defineProperty(t,"ValidationError",{enumerable:!0,get:function(){return d.default}});var p=Zh();Object.defineProperty(t,"MissingRefError",{enumerable:!0,get:function(){return p.default}})}),Mie=V(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.formatLimitDefinition=void 0;var e=Aie(),r=Be(),n=r.operators,i={formatMaximum:{okStr:"<=",ok:n.LTE,fail:n.GT},formatMinimum:{okStr:">=",ok:n.GTE,fail:n.LT},formatExclusiveMaximum:{okStr:"<",ok:n.LT,fail:n.GTE},formatExclusiveMinimum:{okStr:">",ok:n.GT,fail:n.LTE}},a={message:({keyword:s,schemaCode:c})=>(0,r.str)`should be ${i[s].okStr} ${c}`,params:({keyword:s,schemaCode:c})=>(0,r._)`{comparison: ${i[s].okStr}, limit: ${c}}`};t.formatLimitDefinition={keyword:Object.keys(i),type:"string",schemaType:"string",$data:!0,error:a,code(s){let{gen:c,data:u,schemaCode:l,keyword:d,it:p}=s,{opts:f,self:h}=p;if(!f.validateFormats)return;let _=new e.KeywordCxt(p,h.RULES.all.format.definition,"format");_.$data?y():m();function y(){let g=c.scopeValue("formats",{ref:h.formats,code:f.code.formats}),b=c.const("fmt",(0,r._)`${g}[${_.schemaCode}]`);s.fail$data((0,r.or)((0,r._)`typeof ${b} != "object"`,(0,r._)`${b} instanceof RegExp`,(0,r._)`typeof ${b}.compare != "function"`,v(b)))}function m(){let g=_.schema,b=h.formats[g];if(!b||b===!0)return;if(typeof b!="object"||b instanceof RegExp||typeof b.compare!="function")throw new Error(`"${d}": format "${g}" does not define "compare" function`);let S=c.scopeValue("formats",{key:g,ref:b,code:f.code.formats?(0,r._)`${f.code.formats}${(0,r.getProperty)(g)}`:void 0});s.fail$data(v(S))}function v(g){return(0,r._)`${g}.compare(${u}, ${l}) ${i[d].fail} 0`}},dependencies:["format"]};var o=s=>(s.addKeyword(t.formatLimitDefinition),s);t.default=o}),Die=V((t,e)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=Hne(),n=Mie(),i=Be(),a=new i.Name("fullFormats"),o=new i.Name("fastFormats"),s=(u,l={keywords:!0})=>{if(Array.isArray(l))return c(u,l,r.fullFormats,a),u;let[d,p]=l.mode==="fast"?[r.fastFormats,o]:[r.fullFormats,a],f=l.formats||r.formatNames;return c(u,f,d,p),l.keywords&&(0,n.default)(u),u};s.get=(u,l="full")=>{let p=(l==="fast"?r.fastFormats:r.fullFormats)[u];if(!p)throw new Error(`Unknown format "${u}"`);return p};function c(u,l,d,p){var f,h;(f=(h=u.opts.code).formats)!==null&&f!==void 0||(h.formats=(0,i._)`require("ajv-formats/dist/formats").${p}`);for(let _ of l)u.addFormat(_,d[_])}e.exports=t=s,Object.defineProperty(t,"__esModule",{value:!0}),t.default=s}),zie=50;function f2(t=zie){let e=new AbortController;return(0,p2.setMaxListeners)(t,e.signal),e}var Uie=typeof global=="object"&&global&&global.Object===Object&&global,qie=Uie,Lie=typeof self=="object"&&self&&self.Object===Object&&self,Fie=qie||Lie||Function("return this")(),O$=Fie,Zie=O$.Symbol,Ph=Zie,v2=Object.prototype,Hie=v2.hasOwnProperty,Bie=v2.toString,nd=Ph?Ph.toStringTag:void 0;function Vie(t){var e=Hie.call(t,nd),r=t[nd];try{t[nd]=void 0;var n=!0}catch{}var i=Bie.call(t);return n&&(e?t[nd]=r:delete t[nd]),i}var Gie=Vie,Wie=Object.prototype,Kie=Wie.toString;function Jie(t){return Kie.call(t)}var Xie=Jie,Yie="[object Null]",Qie="[object Undefined]",S4=Ph?Ph.toStringTag:void 0;function eae(t){return t==null?t===void 0?Qie:Yie:S4&&S4 in Object(t)?Gie(t):Xie(t)}var tae=eae;function rae(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var y2=rae,nae="[object AsyncFunction]",iae="[object Function]",aae="[object GeneratorFunction]",oae="[object Proxy]";function sae(t){if(!y2(t))return!1;var e=tae(t);return e==iae||e==aae||e==nae||e==oae}var cae=sae,uae=O$["__core-js_shared__"],e$=uae,w4=(function(){var t=/[^.]+$/.exec(e$&&e$.keys&&e$.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""})();function lae(t){return!!w4&&w4 in t}var dae=lae,pae=Function.prototype,fae=pae.toString;function mae(t){if(t!=null){try{return fae.call(t)}catch{}try{return t+""}catch{}}return""}var hae=mae,gae=/[\\^$.*+?()[\]{}|]/g,vae=/^\[object .+?Constructor\]$/,yae=Function.prototype,_ae=Object.prototype,bae=yae.toString,xae=_ae.hasOwnProperty,Sae=RegExp("^"+bae.call(xae).replace(gae,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function wae(t){if(!y2(t)||dae(t))return!1;var e=cae(t)?Sae:vae;return e.test(hae(t))}var $ae=wae;function Eae(t,e){return t?.[e]}var kae=Eae;function Tae(t,e){var r=kae(t,e);return $ae(r)?r:void 0}var _2=Tae,Iae=_2(Object,"create"),od=Iae;function Pae(){this.__data__=od?od(null):{},this.size=0}var Rae=Pae;function Oae(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var Cae=Oae,Nae="__lodash_hash_undefined__",jae=Object.prototype,Aae=jae.hasOwnProperty;function Mae(t){var e=this.__data__;if(od){var r=e[t];return r===Nae?void 0:r}return Aae.call(e,t)?e[t]:void 0}var Dae=Mae,zae=Object.prototype,Uae=zae.hasOwnProperty;function qae(t){var e=this.__data__;return od?e[t]!==void 0:Uae.call(e,t)}var Lae=qae,Fae="__lodash_hash_undefined__";function Zae(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=od&&e===void 0?Fae:e,this}var Hae=Zae;function gc(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e-1}var noe=roe;function ioe(t,e){var r=this.__data__,n=Hh(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}var aoe=ioe;function vc(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{if(!t||t.trim()==="")return null;let e=t.split(",").map(a=>a.trim()).filter(Boolean);if(e.length===0)return null;let r=e.some(a=>a.startsWith("!")),n=e.some(a=>!a.startsWith("!"));if(r&&n)return null;let i=e.map(a=>a.replace(/^!/,"").toLowerCase());return{include:r?[]:i,exclude:r?i:[],isExclusive:r}});function Eoe(t){let e=[],r=t.match(/^MCP server ["']([^"']+)["']/);if(r&&r[1])e.push("mcp"),e.push(r[1].toLowerCase());else{let a=t.match(/^([^:[]+):/);a&&a[1]&&e.push(a[1].trim().toLowerCase())}let n=t.match(/^\[([^\]]+)]/);n&&n[1]&&e.push(n[1].trim().toLowerCase()),t.toLowerCase().includes("statsig event:")&&e.push("statsig");let i=t.match(/:\s*([^:]+?)(?:\s+(?:type|mode|status|event))?:/);if(i&&i[1]){let a=i[1].trim().toLowerCase();a.length<30&&!a.includes(" ")&&e.push(a)}return Array.from(new Set(e))}function koe(t,e){return e?t.length===0?!1:e.isExclusive?!t.some(r=>e.exclude.includes(r)):t.some(r=>e.include.includes(r)):!0}function Toe(t,e){if(!e)return!0;let r=Eoe(t);return koe(r,e)}function w2(){return process.env.CLAUDE_CONFIG_DIR??(0,x2.join)((0,S2.homedir)(),".claude")}function k4(t){if(!t)return!1;if(typeof t=="boolean")return t;let e=t.toLowerCase().trim();return["1","true","yes","on"].includes(e)}var Ioe={name:"BASH_MAX_OUTPUT_LENGTH",default:3e4,validate:t=>{if(!t)return{effective:3e4,status:"valid"};let n=parseInt(t,10);return isNaN(n)||n<=0?{effective:3e4,status:"invalid",message:`Invalid value "${t}" (using default: 30000)`}:n>15e4?{effective:15e4,status:"capped",message:`Capped from ${n} to 150000`}:{effective:n,status:"valid"}}},Poe={name:"CLAUDE_CODE_MAX_OUTPUT_TOKENS",default:32e3,validate:t=>{if(!t)return{effective:32e3,status:"valid"};let n=parseInt(t,10);return isNaN(n)||n<=0?{effective:32e3,status:"invalid",message:`Invalid value "${t}" (using default: 32000)`}:n>64e3?{effective:64e3,status:"capped",message:`Capped from ${n} to 64000`}:{effective:n,status:"valid"}}};function Roe(){let t="";return typeof process<"u"&&typeof process.cwd=="function"&&(t=(0,E2.realpathSync)((0,$2.cwd)())),{originalCwd:t,totalCostUSD:0,totalAPIDuration:0,totalAPIDurationWithoutRetries:0,totalToolDuration:0,startTime:Date.now(),lastInteractionTime:Date.now(),totalLinesAdded:0,totalLinesRemoved:0,hasUnknownModelCost:!1,cwd:t,modelUsage:{},mainLoopModelOverride:void 0,initialMainLoopModel:null,modelStrings:null,isInteractive:!1,clientType:"cli",sessionIngressToken:void 0,oauthTokenFromFd:void 0,apiKeyFromFd:void 0,flagSettingsPath:void 0,allowedSettingSources:["userSettings","projectSettings","localSettings","flagSettings","policySettings"],meter:null,sessionCounter:null,locCounter:null,prCounter:null,commitCounter:null,costCounter:null,tokenCounter:null,codeEditToolDecisionCounter:null,activeTimeCounter:null,sessionId:(0,k2.randomUUID)(),loggerProvider:null,eventLogger:null,meterProvider:null,tracerProvider:null,agentColorMap:new Map,agentColorIndex:0,envVarValidators:[Ioe,Poe],lastAPIRequest:null,inMemoryErrorLog:[],inlinePlugins:[],sessionBypassPermissionsMode:!1,sessionPersistenceDisabled:!1,hasExitedPlanMode:!1,needsPlanModeExitAttachment:!1,hasExitedDelegateMode:!1,needsDelegateModeExitAttachment:!1,lspRecommendationShownThisSession:!1,initJsonSchema:null,registeredHooks:null,planSlugCache:new Map,teleportedSessionInfo:null,invokedSkills:new Map}}var Ooe=Roe();function Coe(){return Ooe.sessionId}function Noe({writeFn:t,flushIntervalMs:e=1e3,maxBufferSize:r=100,immediateMode:n=!1}){let i=[],a=null;function o(){a&&(clearTimeout(a),a=null)}function s(){i.length!==0&&(t(i.join("")),i=[],o())}function c(){a||(a=setTimeout(s,e))}return{write(u){if(n){t(u);return}i.push(u),c(),i.length>=r&&s()},flush:s,dispose(){s()}}}var T4=new Set;function joe(t){return T4.add(t),()=>T4.delete(t)}var Aoe=bd(()=>k4(process.env.DEBUG)||k4(process.env.DEBUG_SDK)||process.argv.includes("--debug")||process.argv.includes("-d")||T2()||process.argv.some(t=>t.startsWith("--debug="))),Moe=bd(()=>{let t=process.argv.find(r=>r.startsWith("--debug="));if(!t)return null;let e=t.substring(8);return $oe(e)}),T2=bd(()=>process.argv.includes("--debug-to-stderr")||process.argv.includes("-d2e"));function Doe(t){if(typeof process>"u"||typeof process.versions>"u"||typeof process.versions.node>"u")return!1;let e=Moe();return Toe(t,e)}var zoe=!1,bh=null;function Uoe(){return bh||(bh=Noe({writeFn:t=>{let e=I2();Di().existsSync((0,go.dirname)(e))||Di().mkdirSync((0,go.dirname)(e)),Di().appendFileSync(e,t),qoe()},flushIntervalMs:1e3,maxBufferSize:100,immediateMode:Aoe()}),joe(async()=>bh?.dispose())),bh}function ya(t,{level:e}={level:"debug"}){if(!Doe(t))return;zoe&&t.includes(` +`)&&(t=JSON.stringify(t));let n=`${new Date().toISOString()} [${e.toUpperCase()}] ${t.trim()} +`;if(T2()){woe(n);return}Uoe().write(n)}function I2(){return process.env.CLAUDE_CODE_DEBUG_LOGS_DIR??(0,go.join)(w2(),"debug",`${Coe()}.txt`)}var qoe=bd(()=>{if(process.argv[2]!=="--ripgrep")try{let t=I2(),e=(0,go.dirname)(t),r=(0,go.join)(e,"latest");if(Di().existsSync(e)||Di().mkdirSync(e),Di().existsSync(r))try{Di().unlinkSync(r)}catch{}Di().symlinkSync(t,r)}catch{}}),Loe=5;function Yt(t,e){let r=performance.now();try{return e()}finally{let n=performance.now()-r;n>Loe&&ya(`[SLOW OPERATION DETECTED] fs.${t} (${n.toFixed(1)}ms)`)}}var Foe={cwd(){return process.cwd()},existsSync(t){return Yt("existsSync",()=>xe.existsSync(t))},async stat(t){return(0,g2.stat)(t)},statSync(t){return Yt("statSync",()=>xe.statSync(t))},lstatSync(t){return Yt("lstatSync",()=>xe.lstatSync(t))},readFileSync(t,e){return Yt("readFileSync",()=>xe.readFileSync(t,{encoding:e.encoding}))},readFileBytesSync(t){return Yt("readFileBytesSync",()=>xe.readFileSync(t))},readSync(t,e){return Yt("readSync",()=>{let r;try{r=xe.openSync(t,"r");let n=Buffer.alloc(e.length),i=xe.readSync(r,n,0,e.length,0);return{buffer:n,bytesRead:i}}finally{r&&xe.closeSync(r)}})},writeFileSync(t,e,r){return Yt("writeFileSync",()=>{let n=xe.existsSync(t);if(!r.flush){let a={encoding:r.encoding};n?r.mode!==void 0&&(a.mode=r.mode):a.mode=r.mode??384,xe.writeFileSync(t,e,a);return}let i;try{let a=n?r.mode:r.mode??384;i=xe.openSync(t,"w",a),xe.writeFileSync(i,e,{encoding:r.encoding}),xe.fsyncSync(i)}finally{i&&xe.closeSync(i)}})},appendFileSync(t,e,r){return Yt("appendFileSync",()=>{if(xe.existsSync(t))xe.appendFileSync(t,e);else{let n=r?.mode??384,i=xe.openSync(t,"a",n);try{xe.appendFileSync(i,e)}finally{xe.closeSync(i)}}})},copyFileSync(t,e){return Yt("copyFileSync",()=>xe.copyFileSync(t,e))},unlinkSync(t){return Yt("unlinkSync",()=>xe.unlinkSync(t))},renameSync(t,e){return Yt("renameSync",()=>xe.renameSync(t,e))},linkSync(t,e){return Yt("linkSync",()=>xe.linkSync(t,e))},symlinkSync(t,e){return Yt("symlinkSync",()=>xe.symlinkSync(t,e))},readlinkSync(t){return Yt("readlinkSync",()=>xe.readlinkSync(t))},realpathSync(t){return Yt("realpathSync",()=>xe.realpathSync(t))},mkdirSync(t){return Yt("mkdirSync",()=>{xe.existsSync(t)||xe.mkdirSync(t,{recursive:!0,mode:448})})},readdirSync(t){return Yt("readdirSync",()=>xe.readdirSync(t,{withFileTypes:!0}))},readdirStringSync(t){return Yt("readdirStringSync",()=>xe.readdirSync(t))},isDirEmptySync(t){return Yt("isDirEmptySync",()=>this.readdirSync(t).length===0)},rmdirSync(t){return Yt("rmdirSync",()=>xe.rmdirSync(t))},rmSync(t,e){return Yt("rmSync",()=>xe.rmSync(t,e))},createWriteStream(t){return xe.createWriteStream(t)}},Zoe=Foe;function Di(){return Zoe}var ho=class extends Error{};function P2(){return process.versions.bun!==void 0}var xh=null,I4=!1;function Hoe(){if(I4)return xh;if(I4=!0,!process.env.DEBUG_CLAUDE_AGENT_SDK)return null;let t=(0,o$.join)(w2(),"debug");return xh=(0,o$.join)(t,`sdk-${(0,R2.randomUUID)()}.txt`),(0,_c.existsSync)(t)||(0,_c.mkdirSync)(t,{recursive:!0}),process.stderr.write(`SDK debug logs: ${xh} +`),xh}function mo(t){let e=Hoe();if(!e)return;let n=`${new Date().toISOString()} ${t} +`;(0,_c.appendFileSync)(e,n)}function Boe(t,e){let r={...t};if(e){let n={sandbox:e};if(r.settings)try{n={...JSON.parse(r.settings),sandbox:e}}catch{}r.settings=JSON.stringify(n)}return r}var s$=class{options;process;processStdin;processStdout;ready=!1;abortController;exitError;exitListeners=[];processExitHandler;abortHandler;constructor(e){this.options=e,this.abortController=e.abortController||f2(),this.initialize()}getDefaultExecutable(){return P2()?"bun":"node"}spawnLocalProcess(e){let{command:r,args:n,cwd:i,env:a,signal:o}=e,s=a.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr?"pipe":"ignore",c=(0,m2.spawn)(r,n,{cwd:i,stdio:["pipe","pipe",s],signal:o,env:a,windowsHide:!0});return(a.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr)&&c.stderr.on("data",l=>{let d=l.toString();mo(d),this.options.stderr&&this.options.stderr(d)}),{stdin:c.stdin,stdout:c.stdout,get killed(){return c.killed},get exitCode(){return c.exitCode},kill:c.kill.bind(c),on:c.on.bind(c),once:c.once.bind(c),off:c.off.bind(c)}}initialize(){try{let{additionalDirectories:e=[],betas:r,cwd:n,executable:i=this.getDefaultExecutable(),executableArgs:a=[],extraArgs:o={},pathToClaudeCodeExecutable:s,env:c={...process.env},maxThinkingTokens:u,maxTurns:l,maxBudgetUsd:d,model:p,fallbackModel:f,jsonSchema:h,permissionMode:_,allowDangerouslySkipPermissions:y,permissionPromptToolName:m,continueConversation:v,resume:g,settingSources:b,allowedTools:S=[],disallowedTools:x=[],tools:w,mcpServers:E,strictMcpConfig:R,canUseTool:A,includePartialMessages:M,plugins:q,sandbox:B}=this.options,U=["--output-format","stream-json","--verbose","--input-format","stream-json"];if(u!==void 0&&U.push("--max-thinking-tokens",u.toString()),l&&U.push("--max-turns",l.toString()),d!==void 0&&U.push("--max-budget-usd",d.toString()),p&&U.push("--model",p),r&&r.length>0&&U.push("--betas",r.join(",")),h&&U.push("--json-schema",JSON.stringify(h)),c.DEBUG_CLAUDE_AGENT_SDK&&U.push("--debug-to-stderr"),A){if(m)throw new Error("canUseTool callback cannot be used with permissionPromptToolName. Please use one or the other.");U.push("--permission-prompt-tool","stdio")}else m&&U.push("--permission-prompt-tool",m);if(v&&U.push("--continue"),g&&U.push("--resume",g),S.length>0&&U.push("--allowedTools",S.join(",")),x.length>0&&U.push("--disallowedTools",x.join(",")),w!==void 0&&(Array.isArray(w)?w.length===0?U.push("--tools",""):U.push("--tools",w.join(",")):U.push("--tools","default")),E&&Object.keys(E).length>0&&U.push("--mcp-config",JSON.stringify({mcpServers:E})),b&&U.push("--setting-sources",b.join(",")),R&&U.push("--strict-mcp-config"),_&&U.push("--permission-mode",_),y&&U.push("--allow-dangerously-skip-permissions"),f){if(p&&f===p)throw new Error("Fallback model cannot be the same as the main model. Please specify a different model for fallbackModel option.");U.push("--fallback-model",f)}M&&U.push("--include-partial-messages");for(let I of e)U.push("--add-dir",I);if(q&&q.length>0)for(let I of q)if(I.type==="local")U.push("--plugin-dir",I.path);else throw new Error(`Unsupported plugin type: ${I.type}`);this.options.forkSession&&U.push("--fork-session"),this.options.resumeSessionAt&&U.push("--resume-session-at",this.options.resumeSessionAt),this.options.persistSession===!1&&U.push("--no-session-persistence");let Y=Boe(o??{},B);for(let[I,D]of Object.entries(Y))D===null?U.push(`--${I}`):U.push(`--${I}`,D);c.CLAUDE_CODE_ENTRYPOINT||(c.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),delete c.NODE_OPTIONS,c.DEBUG_CLAUDE_AGENT_SDK?c.DEBUG="1":delete c.DEBUG;let me=Voe(s),Qe=me?s:i,ft=me?[...a,...U]:[...a,s,...U],fe={command:Qe,args:ft,cwd:n,env:c,signal:this.abortController.signal};if(this.options.spawnClaudeCodeProcess)mo(`Spawning Claude Code (custom): ${Qe} ${ft.join(" ")}`),this.process=this.options.spawnClaudeCodeProcess(fe);else{if(!Di().existsSync(s)){let D=me?`Claude Code native binary not found at ${s}. Please ensure Claude Code is installed via native installer or specify a valid path with options.pathToClaudeCodeExecutable.`:`Claude Code executable not found at ${s}. Is options.pathToClaudeCodeExecutable set?`;throw new ReferenceError(D)}mo(`Spawning Claude Code: ${Qe} ${ft.join(" ")}`),this.process=this.spawnLocalProcess(fe)}this.processStdin=this.process.stdin,this.processStdout=this.process.stdout;let F=()=>{this.process&&!this.process.killed&&this.process.kill("SIGTERM")};this.processExitHandler=F,this.abortHandler=F,process.on("exit",this.processExitHandler),this.abortController.signal.addEventListener("abort",this.abortHandler),this.process.on("error",I=>{this.ready=!1,this.abortController.signal.aborted?this.exitError=new ho("Claude Code process aborted by user"):(this.exitError=new Error(`Failed to spawn Claude Code process: ${I.message}`),mo(this.exitError.message))}),this.process.on("exit",(I,D)=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new ho("Claude Code process aborted by user");else{let C=this.getProcessExitError(I,D);C&&(this.exitError=C,mo(C.message))}}),this.ready=!0}catch(e){throw this.ready=!1,e}}getProcessExitError(e,r){if(e!==0&&e!==null)return new Error(`Claude Code process exited with code ${e}`);if(r)return new Error(`Claude Code process terminated by signal ${r}`)}write(e){if(this.abortController.signal.aborted)throw new ho("Operation aborted");if(!this.ready||!this.processStdin)throw new Error("ProcessTransport is not ready for writing");if(this.process?.killed||this.process?.exitCode!==null)throw new Error("Cannot write to terminated process");if(this.exitError)throw new Error(`Cannot write to process that exited with error: ${this.exitError.message}`);mo(`[ProcessTransport] Writing to stdin: ${e.substring(0,100)}`);try{this.processStdin.write(e)||mo("[ProcessTransport] Write buffer full, data queued")}catch(r){throw this.ready=!1,new Error(`Failed to write to process stdin: ${r.message}`)}}close(){this.processStdin&&(this.processStdin.end(),this.processStdin=void 0),this.abortHandler&&(this.abortController.signal.removeEventListener("abort",this.abortHandler),this.abortHandler=void 0);for(let{handler:e}of this.exitListeners)this.process?.off("exit",e);this.exitListeners=[],this.process&&!this.process.killed&&(this.process.kill("SIGTERM"),setTimeout(()=>{this.process&&!this.process.killed&&this.process.kill("SIGKILL")},5e3)),this.ready=!1,this.processExitHandler&&(process.off("exit",this.processExitHandler),this.processExitHandler=void 0)}isReady(){return this.ready}async*readMessages(){if(!this.processStdout)throw new Error("ProcessTransport output stream not available");let e=(0,h2.createInterface)({input:this.processStdout});try{for await(let r of e)r.trim()&&(yield JSON.parse(r));await this.waitForExit()}catch(r){throw r}finally{e.close()}}endInput(){this.processStdin&&this.processStdin.end()}getInputStream(){return this.processStdin}onExit(e){if(!this.process)return()=>{};let r=(n,i)=>{let a=this.getProcessExitError(n,i);e(a)};return this.process.on("exit",r),this.exitListeners.push({callback:e,handler:r}),()=>{this.process&&this.process.off("exit",r);let n=this.exitListeners.findIndex(i=>i.handler===r);n!==-1&&this.exitListeners.splice(n,1)}}async waitForExit(){if(!this.process){if(this.exitError)throw this.exitError;return}if(this.process.exitCode!==null||this.process.killed){if(this.exitError)throw this.exitError;return}return new Promise((e,r)=>{let n=(a,o)=>{if(this.abortController.signal.aborted){r(new ho("Operation aborted"));return}let s=this.getProcessExitError(a,o);s?r(s):e()};this.process.once("exit",n);let i=a=>{this.process.off("exit",n),r(a)};this.process.once("error",i),this.process.once("exit",()=>{this.process.off("error",i)})})}};function Voe(t){return![".js",".mjs",".tsx",".ts",".jsx"].some(r=>t.endsWith(r))}var c$=class{returned;queue=[];readResolve;readReject;isDone=!1;hasError;started=!1;constructor(e){this.returned=e}[Symbol.asyncIterator](){if(this.started)throw new Error("Stream can only be iterated once");return this.started=!0,this}next(){return this.queue.length>0?Promise.resolve({done:!1,value:this.queue.shift()}):this.isDone?Promise.resolve({done:!0,value:void 0}):this.hasError?Promise.reject(this.hasError):new Promise((e,r)=>{this.readResolve=e,this.readReject=r})}enqueue(e){if(this.readResolve){let r=this.readResolve;this.readResolve=void 0,this.readReject=void 0,r({done:!1,value:e})}else this.queue.push(e)}done(){if(this.isDone=!0,this.readResolve){let e=this.readResolve;this.readResolve=void 0,this.readReject=void 0,e({done:!0,value:void 0})}}error(e){if(this.hasError=e,this.readReject){let r=this.readReject;this.readResolve=void 0,this.readReject=void 0,r(e)}}return(){return this.isDone=!0,this.returned&&this.returned(),Promise.resolve({done:!0,value:void 0})}},u$=class{sendMcpMessage;isClosed=!1;constructor(e){this.sendMcpMessage=e}onclose;onerror;onmessage;async start(){}async send(e){if(this.isClosed)throw new Error("Transport is closed");this.sendMcpMessage(e)}async close(){this.isClosed||(this.isClosed=!0,this.onclose?.())}},l$=class{transport;isSingleUserTurn;canUseTool;hooks;abortController;jsonSchema;initConfig;pendingControlResponses=new Map;cleanupPerformed=!1;sdkMessages;inputStream=new c$;initialization;cancelControllers=new Map;hookCallbacks=new Map;nextCallbackId=0;sdkMcpTransports=new Map;sdkMcpServerInstances=new Map;pendingMcpResponses=new Map;firstResultReceivedResolve;firstResultReceived=!1;hasBidirectionalNeeds(){return this.sdkMcpTransports.size>0||this.hooks!==void 0&&Object.keys(this.hooks).length>0||this.canUseTool!==void 0}constructor(e,r,n,i,a,o=new Map,s,c){this.transport=e,this.isSingleUserTurn=r,this.canUseTool=n,this.hooks=i,this.abortController=a,this.jsonSchema=s,this.initConfig=c;for(let[u,l]of o)this.connectSdkMcpServer(u,l);this.sdkMessages=this.readSdkMessages(),this.readMessages(),this.initialization=this.initialize(),this.initialization.catch(()=>{})}setError(e){this.inputStream.error(e)}cleanup(e){if(!this.cleanupPerformed){this.cleanupPerformed=!0;try{this.transport.close(),this.pendingControlResponses.clear(),this.pendingMcpResponses.clear(),this.cancelControllers.clear(),this.hookCallbacks.clear();for(let r of this.sdkMcpTransports.values())try{r.close()}catch{}this.sdkMcpTransports.clear(),e?this.inputStream.error(e):this.inputStream.done()}catch{}}}next(...[e]){return this.sdkMessages.next(e)}return(e){return this.sdkMessages.return(e)}throw(e){return this.sdkMessages.throw(e)}[Symbol.asyncIterator](){return this.sdkMessages}[Symbol.asyncDispose](){return this.sdkMessages[Symbol.asyncDispose]()}async readMessages(){try{for await(let e of this.transport.readMessages()){if(e.type==="control_response"){let r=this.pendingControlResponses.get(e.response.request_id);r&&r(e.response);continue}else if(e.type==="control_request"){this.handleControlRequest(e);continue}else if(e.type==="control_cancel_request"){this.handleControlCancelRequest(e);continue}else if(e.type==="keep_alive")continue;e.type==="result"&&(this.firstResultReceived=!0,this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.isSingleUserTurn&&(ya("[Query.readMessages] First result received for single-turn query, closing stdin"),this.transport.endInput())),this.inputStream.enqueue(e)}this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.inputStream.done(),this.cleanup()}catch(e){this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.inputStream.error(e),this.cleanup(e)}}async handleControlRequest(e){let r=new AbortController;this.cancelControllers.set(e.request_id,r);try{let n=await this.processControlRequest(e,r.signal),i={type:"control_response",response:{subtype:"success",request_id:e.request_id,response:n}};await Promise.resolve(this.transport.write(JSON.stringify(i)+` +`))}catch(n){let i={type:"control_response",response:{subtype:"error",request_id:e.request_id,error:n.message||String(n)}};await Promise.resolve(this.transport.write(JSON.stringify(i)+` +`))}finally{this.cancelControllers.delete(e.request_id)}}handleControlCancelRequest(e){let r=this.cancelControllers.get(e.request_id);r&&(r.abort(),this.cancelControllers.delete(e.request_id))}async processControlRequest(e,r){if(e.request.subtype==="can_use_tool"){if(!this.canUseTool)throw new Error("canUseTool callback is not provided.");return{...await this.canUseTool(e.request.tool_name,e.request.input,{signal:r,suggestions:e.request.permission_suggestions,blockedPath:e.request.blocked_path,decisionReason:e.request.decision_reason,toolUseID:e.request.tool_use_id,agentID:e.request.agent_id}),toolUseID:e.request.tool_use_id}}else{if(e.request.subtype==="hook_callback")return await this.handleHookCallbacks(e.request.callback_id,e.request.input,e.request.tool_use_id,r);if(e.request.subtype==="mcp_message"){let n=e.request,i=this.sdkMcpTransports.get(n.server_name);if(!i)throw new Error(`SDK MCP server not found: ${n.server_name}`);return"method"in n.message&&"id"in n.message&&n.message.id!==null?{mcp_response:await this.handleMcpControlRequest(n.server_name,n,i)}:(i.onmessage&&i.onmessage(n.message),{mcp_response:{jsonrpc:"2.0",result:{},id:0}})}}throw new Error("Unsupported control request subtype: "+e.request.subtype)}async*readSdkMessages(){for await(let e of this.inputStream)yield e}async initialize(){let e;if(this.hooks){e={};for(let[a,o]of Object.entries(this.hooks))o.length>0&&(e[a]=o.map(s=>{let c=[];for(let u of s.hooks){let l=`hook_${this.nextCallbackId++}`;this.hookCallbacks.set(l,u),c.push(l)}return{matcher:s.matcher,hookCallbackIds:c,timeout:s.timeout}}))}let r=this.sdkMcpTransports.size>0?Array.from(this.sdkMcpTransports.keys()):void 0,n={subtype:"initialize",hooks:e,sdkMcpServers:r,jsonSchema:this.jsonSchema,systemPrompt:this.initConfig?.systemPrompt,appendSystemPrompt:this.initConfig?.appendSystemPrompt,agents:this.initConfig?.agents};return(await this.request(n)).response}async interrupt(){await this.request({subtype:"interrupt"})}async setPermissionMode(e){await this.request({subtype:"set_permission_mode",mode:e})}async setModel(e){await this.request({subtype:"set_model",model:e})}async setMaxThinkingTokens(e){await this.request({subtype:"set_max_thinking_tokens",max_thinking_tokens:e})}async rewindFiles(e){await this.request({subtype:"rewind_files",user_message_id:e})}async processPendingPermissionRequests(e){for(let r of e)r.request.subtype==="can_use_tool"&&this.handleControlRequest(r).catch(()=>{})}request(e){let r=Math.random().toString(36).substring(2,15),n={request_id:r,type:"control_request",request:e};return new Promise((i,a)=>{this.pendingControlResponses.set(r,o=>{o.subtype==="success"?i(o):(a(new Error(o.error)),o.pending_permission_requests&&this.processPendingPermissionRequests(o.pending_permission_requests))}),Promise.resolve(this.transport.write(JSON.stringify(n)+` +`))})}async supportedCommands(){return(await this.initialization).commands}async supportedModels(){return(await this.initialization).models}async mcpServerStatus(){return(await this.request({subtype:"mcp_status"})).response.mcpServers}async setMcpServers(e){let r={},n={};for(let[c,u]of Object.entries(e))u.type==="sdk"&&"instance"in u?r[c]=u.instance:n[c]=u;let i=new Set(this.sdkMcpServerInstances.keys()),a=new Set(Object.keys(r));for(let c of i)a.has(c)||await this.disconnectSdkMcpServer(c);for(let[c,u]of Object.entries(r))i.has(c)||this.connectSdkMcpServer(c,u);let o={};for(let c of Object.keys(r))o[c]={type:"sdk",name:c};return(await this.request({subtype:"mcp_set_servers",servers:{...n,...o}})).response}async accountInfo(){return(await this.initialization).account}async streamInput(e){ya("[Query.streamInput] Starting to process input stream");try{let r=0;for await(let n of e){if(r++,ya(`[Query.streamInput] Processing message ${r}: ${n.type}`),this.abortController?.signal.aborted)break;await Promise.resolve(this.transport.write(JSON.stringify(n)+` +`))}ya(`[Query.streamInput] Finished processing ${r} messages from input stream`),this.hasBidirectionalNeeds()&&(ya("[Query.streamInput] Has bidirectional needs, waiting for first result"),await this.waitForFirstResult()),ya("[Query] Calling transport.endInput() to close stdin to CLI process"),this.transport.endInput()}catch(r){if(!(r instanceof ho))throw r}}waitForFirstResult(){return this.firstResultReceived?(ya("[Query.waitForFirstResult] Result already received, returning immediately"),Promise.resolve()):new Promise(e=>{if(this.abortController?.signal.aborted){e();return}this.abortController?.signal.addEventListener("abort",()=>e(),{once:!0}),this.firstResultReceivedResolve=e})}handleHookCallbacks(e,r,n,i){let a=this.hookCallbacks.get(e);if(!a)throw new Error(`No hook callback found for ID: ${e}`);return a(r,n,{signal:i})}connectSdkMcpServer(e,r){let n=new u$(i=>this.sendMcpServerMessageToCli(e,i));this.sdkMcpTransports.set(e,n),this.sdkMcpServerInstances.set(e,r),r.connect(n)}async disconnectSdkMcpServer(e){let r=this.sdkMcpTransports.get(e);r&&(await r.close(),this.sdkMcpTransports.delete(e)),this.sdkMcpServerInstances.delete(e)}sendMcpServerMessageToCli(e,r){if("id"in r&&r.id!==null&&r.id!==void 0){let i=`${e}:${r.id}`,a=this.pendingMcpResponses.get(i);if(a){a.resolve(r),this.pendingMcpResponses.delete(i);return}}let n={type:"control_request",request_id:(0,O2.randomUUID)(),request:{subtype:"mcp_message",server_name:e,message:r}};this.transport.write(JSON.stringify(n)+` +`)}handleMcpControlRequest(e,r,n){let i="id"in r.message?r.message.id:null,a=`${e}:${i}`;return new Promise((o,s)=>{let c=()=>{this.pendingMcpResponses.delete(a)},u=d=>{c(),o(d)},l=d=>{c(),s(d)};if(this.pendingMcpResponses.set(a,{resolve:u,reject:l}),n.onmessage)n.onmessage(r.message);else{c(),s(new Error("No message handler registered"));return}})}};var st;(function(t){t.assertEqual=i=>{};function e(i){}t.assertIs=e;function r(i){throw new Error}t.assertNever=r,t.arrayToEnum=i=>{let a={};for(let o of i)a[o]=o;return a},t.getValidEnumValues=i=>{let a=t.objectKeys(i).filter(s=>typeof i[i[s]]!="number"),o={};for(let s of a)o[s]=i[s];return t.objectValues(o)},t.objectValues=i=>t.objectKeys(i).map(function(a){return i[a]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let a=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&a.push(o);return a},t.find=(i,a)=>{for(let o of i)if(a(o))return o},t.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function n(i,a=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(a)}t.joinValues=n,t.jsonStringifyReplacer=(i,a)=>typeof a=="bigint"?a.toString():a})(st||(st={}));var P4;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(P4||(P4={}));var de=st.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),_a=t=>{switch(typeof t){case"undefined":return de.undefined;case"string":return de.string;case"number":return Number.isNaN(t)?de.nan:de.number;case"boolean":return de.boolean;case"function":return de.function;case"bigint":return de.bigint;case"symbol":return de.symbol;case"object":return Array.isArray(t)?de.array:t===null?de.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?de.promise:typeof Map<"u"&&t instanceof Map?de.map:typeof Set<"u"&&t instanceof Set?de.set:typeof Date<"u"&&t instanceof Date?de.date:de.object;default:return de.unknown}},te=st.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),En=class t extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}format(e){let r=e||function(a){return a.message},n={_errors:[]},i=a=>{for(let o of a.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let s=n,c=0;for(;cr.message){let r={},n=[];for(let i of this.issues)if(i.path.length>0){let a=i.path[0];r[a]=r[a]||[],r[a].push(e(i))}else n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};En.create=t=>new En(t);var Goe=(t,e)=>{let r;switch(t.code){case te.invalid_type:t.received===de.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case te.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,st.jsonStringifyReplacer)}`;break;case te.unrecognized_keys:r=`Unrecognized key(s) in object: ${st.joinValues(t.keys,", ")}`;break;case te.invalid_union:r="Invalid input";break;case te.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${st.joinValues(t.options)}`;break;case te.invalid_enum_value:r=`Invalid enum value. Expected ${st.joinValues(t.options)}, received '${t.received}'`;break;case te.invalid_arguments:r="Invalid function arguments";break;case te.invalid_return_type:r="Invalid function return type";break;case te.invalid_date:r="Invalid date";break;case te.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:st.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case te.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case te.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case te.custom:r="Invalid input";break;case te.invalid_intersection_types:r="Intersection results could not be merged";break;case te.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case te.not_finite:r="Number must be finite";break;default:r=e.defaultError,st.assertNever(t)}return{message:r}},sd=Goe,Woe=sd;function d$(){return Woe}var p$=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,a=[...r,...i.path||[]],o={...i,path:a};if(i.message!==void 0)return{...i,path:a,message:i.message};let s="",c=n.filter(u=>!!u).slice().reverse();for(let u of c)s=u(o,{data:e,defaultError:s}).message;return{...i,path:a,message:s}};function se(t,e){let r=d$(),n=p$({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===sd?void 0:sd].filter(i=>!!i)});t.common.issues.push(n)}var Ar=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let i of r){if(i.status==="aborted")return Pe;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let a=await i.key,o=await i.value;n.push({key:a,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:a,value:o}=i;if(a.status==="aborted"||o.status==="aborted")return Pe;a.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),a.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[a.value]=o.value)}return{status:e.value,value:n}}},Pe=Object.freeze({status:"aborted"}),id=t=>({status:"dirty",value:t}),Wr=t=>({status:"valid",value:t}),R4=t=>t.status==="aborted",O4=t=>t.status==="dirty",rc=t=>t.status==="valid",Rh=t=>typeof Promise<"u"&&t instanceof Promise,ge;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(ge||(ge={}));var kn=class{constructor(e,r,n,i){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},C4=(t,e)=>{if(rc(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new En(t.common.issues);return this._error=r,this._error}}};function De(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:i}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(o,s)=>{let{message:c}=t;return o.code==="invalid_enum_value"?{message:c??s.defaultError}:typeof s.data>"u"?{message:c??n??s.defaultError}:o.code!=="invalid_type"?{message:s.defaultError}:{message:c??r??s.defaultError}},description:i}}var Ve=class{get description(){return this._def.description}_getType(e){return _a(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:_a(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Ar,ctx:{common:e.parent.common,data:e.data,parsedType:_a(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Rh(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){let n={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:_a(e)},i=this._parseSync({data:e,path:n.path,parent:n});return C4(n,i)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:_a(e)};if(!this["~standard"].async)try{let n=this._parseSync({data:e,path:[],parent:r});return rc(n)?{value:n.value}:{issues:r.common.issues}}catch(n){n?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:r}).then(n=>rc(n)?{value:n.value}:{issues:r.common.issues})}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:_a(e)},i=this._parse({data:e,path:n.path,parent:n}),a=await(Rh(i)?i:Promise.resolve(i));return C4(n,a)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,a)=>{let o=e(i),s=()=>a.addIssue({code:te.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(s(),!1)):o?!0:(s(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new Wn({schema:this,typeName:Re.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return Gn.create(this,this._def)}nullable(){return Ui.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Sa.create(this)}promise(){return vo.create(this,this._def)}or(e){return oc.create([this,e],this._def)}and(e){return sc.create(this,e,this._def)}transform(e){return new Wn({...De(this._def),schema:this,typeName:Re.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new pc({...De(this._def),innerType:this,defaultValue:r,typeName:Re.ZodDefault})}brand(){return new Oh({typeName:Re.ZodBranded,type:this,...De(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new fc({...De(this._def),innerType:this,catchValue:r,typeName:Re.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Ch.create(this,e)}readonly(){return mc.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Koe=/^c[^\s-]{8,}$/i,Joe=/^[0-9a-z]+$/,Xoe=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Yoe=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Qoe=/^[a-z0-9_-]{21}$/i,ese=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,tse=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,rse=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,nse="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",t$,ise=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ase=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ose=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,sse=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,cse=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,use=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,C2="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",lse=new RegExp(`^${C2}$`);function N2(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);let r=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${r}`}function dse(t){return new RegExp(`^${N2(t)}$`)}function pse(t){let e=`${C2}T${N2(t)}`,r=[];return r.push(t.local?"Z?":"Z"),t.offset&&r.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${r.join("|")})`,new RegExp(`^${e}$`)}function fse(t,e){return!!((e==="v4"||!e)&&ise.test(t)||(e==="v6"||!e)&&ose.test(t))}function mse(t,e){if(!ese.test(t))return!1;try{let[r]=t.split(".");if(!r)return!1;let n=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),i=JSON.parse(atob(n));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||e&&i.alg!==e)}catch{return!1}}function hse(t,e){return!!((e==="v4"||!e)&&ase.test(t)||(e==="v6"||!e)&&sse.test(t))}var nc=class t extends Ve{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==de.string){let a=this._getOrReturnCtx(e);return se(a,{code:te.invalid_type,expected:de.string,received:a.parsedType}),Pe}let n=new Ar,i;for(let a of this._def.checks)if(a.kind==="min")e.data.lengtha.value&&(i=this._getOrReturnCtx(e,i),se(i,{code:te.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),n.dirty());else if(a.kind==="length"){let o=e.data.length>a.value,s=e.data.lengthe.test(i),{validation:r,code:te.invalid_string,...ge.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...ge.errToObj(e)})}url(e){return this._addCheck({kind:"url",...ge.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...ge.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...ge.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...ge.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...ge.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...ge.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...ge.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...ge.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...ge.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...ge.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...ge.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...ge.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...ge.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...ge.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...ge.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...ge.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...ge.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...ge.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...ge.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...ge.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...ge.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...ge.errToObj(r)})}nonempty(e){return this.min(1,ge.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew nc({checks:[],typeName:Re.ZodString,coerce:t?.coerce??!1,...De(t)});function gse(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,a=Number.parseInt(t.toFixed(i).replace(".","")),o=Number.parseInt(e.toFixed(i).replace(".",""));return a%o/10**i}var cd=class t extends Ve{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==de.number){let a=this._getOrReturnCtx(e);return se(a,{code:te.invalid_type,expected:de.number,received:a.parsedType}),Pe}let n,i=new Ar;for(let a of this._def.checks)a.kind==="int"?st.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),se(n,{code:te.invalid_type,expected:"integer",received:"float",message:a.message}),i.dirty()):a.kind==="min"?(a.inclusive?e.dataa.value:e.data>=a.value)&&(n=this._getOrReturnCtx(e,n),se(n,{code:te.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),i.dirty()):a.kind==="multipleOf"?gse(e.data,a.value)!==0&&(n=this._getOrReturnCtx(e,n),se(n,{code:te.not_multiple_of,multipleOf:a.value,message:a.message}),i.dirty()):a.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),se(n,{code:te.not_finite,message:a.message}),i.dirty()):st.assertNever(a);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,ge.toString(r))}gt(e,r){return this.setLimit("min",e,!1,ge.toString(r))}lte(e,r){return this.setLimit("max",e,!0,ge.toString(r))}lt(e,r){return this.setLimit("max",e,!1,ge.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:ge.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:ge.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:ge.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:ge.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:ge.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:ge.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:ge.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:ge.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:ge.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:ge.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuee.kind==="int"||e.kind==="multipleOf"&&st.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.valuenew cd({checks:[],typeName:Re.ZodNumber,coerce:t?.coerce||!1,...De(t)});var ud=class t extends Ve{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==de.bigint)return this._getInvalidInput(e);let n,i=new Ar;for(let a of this._def.checks)a.kind==="min"?(a.inclusive?e.dataa.value:e.data>=a.value)&&(n=this._getOrReturnCtx(e,n),se(n,{code:te.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),i.dirty()):a.kind==="multipleOf"?e.data%a.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),se(n,{code:te.not_multiple_of,multipleOf:a.value,message:a.message}),i.dirty()):st.assertNever(a);return{status:i.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return se(r,{code:te.invalid_type,expected:de.bigint,received:r.parsedType}),Pe}gte(e,r){return this.setLimit("min",e,!0,ge.toString(r))}gt(e,r){return this.setLimit("min",e,!1,ge.toString(r))}lte(e,r){return this.setLimit("max",e,!0,ge.toString(r))}lt(e,r){return this.setLimit("max",e,!1,ge.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:ge.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:ge.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:ge.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:ge.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:ge.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:ge.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew ud({checks:[],typeName:Re.ZodBigInt,coerce:t?.coerce??!1,...De(t)});var ld=class extends Ve{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==de.boolean){let n=this._getOrReturnCtx(e);return se(n,{code:te.invalid_type,expected:de.boolean,received:n.parsedType}),Pe}return Wr(e.data)}};ld.create=t=>new ld({typeName:Re.ZodBoolean,coerce:t?.coerce||!1,...De(t)});var dd=class t extends Ve{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==de.date){let a=this._getOrReturnCtx(e);return se(a,{code:te.invalid_type,expected:de.date,received:a.parsedType}),Pe}if(Number.isNaN(e.data.getTime())){let a=this._getOrReturnCtx(e);return se(a,{code:te.invalid_date}),Pe}let n=new Ar,i;for(let a of this._def.checks)a.kind==="min"?e.data.getTime()a.value&&(i=this._getOrReturnCtx(e,i),se(i,{code:te.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),n.dirty()):st.assertNever(a);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:ge.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:ge.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew dd({checks:[],coerce:t?.coerce||!1,typeName:Re.ZodDate,...De(t)});var pd=class extends Ve{_parse(e){if(this._getType(e)!==de.symbol){let n=this._getOrReturnCtx(e);return se(n,{code:te.invalid_type,expected:de.symbol,received:n.parsedType}),Pe}return Wr(e.data)}};pd.create=t=>new pd({typeName:Re.ZodSymbol,...De(t)});var ic=class extends Ve{_parse(e){if(this._getType(e)!==de.undefined){let n=this._getOrReturnCtx(e);return se(n,{code:te.invalid_type,expected:de.undefined,received:n.parsedType}),Pe}return Wr(e.data)}};ic.create=t=>new ic({typeName:Re.ZodUndefined,...De(t)});var ac=class extends Ve{_parse(e){if(this._getType(e)!==de.null){let n=this._getOrReturnCtx(e);return se(n,{code:te.invalid_type,expected:de.null,received:n.parsedType}),Pe}return Wr(e.data)}};ac.create=t=>new ac({typeName:Re.ZodNull,...De(t)});var fd=class extends Ve{constructor(){super(...arguments),this._any=!0}_parse(e){return Wr(e.data)}};fd.create=t=>new fd({typeName:Re.ZodAny,...De(t)});var xa=class extends Ve{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Wr(e.data)}};xa.create=t=>new xa({typeName:Re.ZodUnknown,...De(t)});var vi=class extends Ve{_parse(e){let r=this._getOrReturnCtx(e);return se(r,{code:te.invalid_type,expected:de.never,received:r.parsedType}),Pe}};vi.create=t=>new vi({typeName:Re.ZodNever,...De(t)});var md=class extends Ve{_parse(e){if(this._getType(e)!==de.undefined){let n=this._getOrReturnCtx(e);return se(n,{code:te.invalid_type,expected:de.void,received:n.parsedType}),Pe}return Wr(e.data)}};md.create=t=>new md({typeName:Re.ZodVoid,...De(t)});var Sa=class t extends Ve{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==de.array)return se(r,{code:te.invalid_type,expected:de.array,received:r.parsedType}),Pe;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,s=r.data.lengthi.maxLength.value&&(se(r,{code:te.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,s)=>i.type._parseAsync(new kn(r,o,r.path,s)))).then(o=>Ar.mergeArray(n,o));let a=[...r.data].map((o,s)=>i.type._parseSync(new kn(r,o,r.path,s)));return Ar.mergeArray(n,a)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:ge.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:ge.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:ge.toString(r)}})}nonempty(e){return this.min(1,e)}};Sa.create=(t,e)=>new Sa({type:t,minLength:null,maxLength:null,exactLength:null,typeName:Re.ZodArray,...De(e)});function Qs(t){if(t instanceof un){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=Gn.create(Qs(n))}return new un({...t._def,shape:()=>e})}else return t instanceof Sa?new Sa({...t._def,type:Qs(t.element)}):t instanceof Gn?Gn.create(Qs(t.unwrap())):t instanceof Ui?Ui.create(Qs(t.unwrap())):t instanceof zi?zi.create(t.items.map(e=>Qs(e))):t}var un=class t extends Ve{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=st.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==de.object){let u=this._getOrReturnCtx(e);return se(u,{code:te.invalid_type,expected:de.object,received:u.parsedType}),Pe}let{status:n,ctx:i}=this._processInputParams(e),{shape:a,keys:o}=this._getCached(),s=[];if(!(this._def.catchall instanceof vi&&this._def.unknownKeys==="strip"))for(let u in i.data)o.includes(u)||s.push(u);let c=[];for(let u of o){let l=a[u],d=i.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new kn(i,d,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof vi){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of s)c.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(u==="strict")s.length>0&&(se(i,{code:te.unrecognized_keys,keys:s}),n.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of s){let d=i.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new kn(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let u=[];for(let l of c){let d=await l.key,p=await l.value;u.push({key:d,value:p,alwaysSet:l.alwaysSet})}return u}).then(u=>Ar.mergeObjectSync(n,u)):Ar.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(e){return ge.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{let i=this._def.errorMap?.(r,n).message??n.defaultError;return r.code==="unrecognized_keys"?{message:ge.errToObj(e).message??i}:{message:i}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Re.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};for(let n of st.objectKeys(e))e[n]&&this.shape[n]&&(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}omit(e){let r={};for(let n of st.objectKeys(this.shape))e[n]||(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}deepPartial(){return Qs(this)}partial(e){let r={};for(let n of st.objectKeys(this.shape)){let i=this.shape[n];e&&!e[n]?r[n]=i:r[n]=i.optional()}return new t({...this._def,shape:()=>r})}required(e){let r={};for(let n of st.objectKeys(this.shape))if(e&&!e[n])r[n]=this.shape[n];else{let a=this.shape[n];for(;a instanceof Gn;)a=a._def.innerType;r[n]=a}return new t({...this._def,shape:()=>r})}keyof(){return j2(st.objectKeys(this.shape))}};un.create=(t,e)=>new un({shape:()=>t,unknownKeys:"strip",catchall:vi.create(),typeName:Re.ZodObject,...De(e)});un.strictCreate=(t,e)=>new un({shape:()=>t,unknownKeys:"strict",catchall:vi.create(),typeName:Re.ZodObject,...De(e)});un.lazycreate=(t,e)=>new un({shape:t,unknownKeys:"strip",catchall:vi.create(),typeName:Re.ZodObject,...De(e)});var oc=class extends Ve{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(a){for(let s of a)if(s.result.status==="valid")return s.result;for(let s of a)if(s.result.status==="dirty")return r.common.issues.push(...s.ctx.common.issues),s.result;let o=a.map(s=>new En(s.ctx.common.issues));return se(r,{code:te.invalid_union,unionErrors:o}),Pe}if(r.common.async)return Promise.all(n.map(async a=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await a._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let a,o=[];for(let c of n){let u={...r,common:{...r.common,issues:[]},parent:null},l=c._parseSync({data:r.data,path:r.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!a&&(a={result:l,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(a)return r.common.issues.push(...a.ctx.common.issues),a.result;let s=o.map(c=>new En(c));return se(r,{code:te.invalid_union,unionErrors:s}),Pe}}get options(){return this._def.options}};oc.create=(t,e)=>new oc({options:t,typeName:Re.ZodUnion,...De(e)});var Mi=t=>t instanceof cc?Mi(t.schema):t instanceof Wn?Mi(t.innerType()):t instanceof uc?[t.value]:t instanceof lc?t.options:t instanceof dc?st.objectValues(t.enum):t instanceof pc?Mi(t._def.innerType):t instanceof ic?[void 0]:t instanceof ac?[null]:t instanceof Gn?[void 0,...Mi(t.unwrap())]:t instanceof Ui?[null,...Mi(t.unwrap())]:t instanceof Oh||t instanceof mc?Mi(t.unwrap()):t instanceof fc?Mi(t._def.innerType):[],f$=class t extends Ve{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==de.object)return se(r,{code:te.invalid_type,expected:de.object,received:r.parsedType}),Pe;let n=this.discriminator,i=r.data[n],a=this.optionsMap.get(i);return a?r.common.async?a._parseAsync({data:r.data,path:r.path,parent:r}):a._parseSync({data:r.data,path:r.path,parent:r}):(se(r,{code:te.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),Pe)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let i=new Map;for(let a of r){let o=Mi(a.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let s of o){if(i.has(s))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(s)}`);i.set(s,a)}}return new t({typeName:Re.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...De(n)})}};function m$(t,e){let r=_a(t),n=_a(e);if(t===e)return{valid:!0,data:t};if(r===de.object&&n===de.object){let i=st.objectKeys(e),a=st.objectKeys(t).filter(s=>i.indexOf(s)!==-1),o={...t,...e};for(let s of a){let c=m$(t[s],e[s]);if(!c.valid)return{valid:!1};o[s]=c.data}return{valid:!0,data:o}}else if(r===de.array&&n===de.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let a=0;a{if(R4(a)||R4(o))return Pe;let s=m$(a.value,o.value);return s.valid?((O4(a)||O4(o))&&r.dirty(),{status:r.value,value:s.data}):(se(n,{code:te.invalid_intersection_types}),Pe)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([a,o])=>i(a,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};sc.create=(t,e,r)=>new sc({left:t,right:e,typeName:Re.ZodIntersection,...De(r)});var zi=class t extends Ve{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==de.array)return se(n,{code:te.invalid_type,expected:de.array,received:n.parsedType}),Pe;if(n.data.lengththis._def.items.length&&(se(n,{code:te.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let a=[...n.data].map((o,s)=>{let c=this._def.items[s]||this._def.rest;return c?c._parse(new kn(n,o,n.path,s)):null}).filter(o=>!!o);return n.common.async?Promise.all(a).then(o=>Ar.mergeArray(r,o)):Ar.mergeArray(r,a)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};zi.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new zi({items:t,typeName:Re.ZodTuple,rest:null,...De(e)})};var h$=class t extends Ve{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==de.object)return se(n,{code:te.invalid_type,expected:de.object,received:n.parsedType}),Pe;let i=[],a=this._def.keyType,o=this._def.valueType;for(let s in n.data)i.push({key:a._parse(new kn(n,s,n.path,s)),value:o._parse(new kn(n,n.data[s],n.path,s)),alwaysSet:s in n.data});return n.common.async?Ar.mergeObjectAsync(r,i):Ar.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof Ve?new t({keyType:e,valueType:r,typeName:Re.ZodRecord,...De(n)}):new t({keyType:nc.create(),valueType:e,typeName:Re.ZodRecord,...De(r)})}},hd=class extends Ve{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==de.map)return se(n,{code:te.invalid_type,expected:de.map,received:n.parsedType}),Pe;let i=this._def.keyType,a=this._def.valueType,o=[...n.data.entries()].map(([s,c],u)=>({key:i._parse(new kn(n,s,n.path,[u,"key"])),value:a._parse(new kn(n,c,n.path,[u,"value"]))}));if(n.common.async){let s=new Map;return Promise.resolve().then(async()=>{for(let c of o){let u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return Pe;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),s.set(u.value,l.value)}return{status:r.value,value:s}})}else{let s=new Map;for(let c of o){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return Pe;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),s.set(u.value,l.value)}return{status:r.value,value:s}}}};hd.create=(t,e,r)=>new hd({valueType:e,keyType:t,typeName:Re.ZodMap,...De(r)});var gd=class t extends Ve{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==de.set)return se(n,{code:te.invalid_type,expected:de.set,received:n.parsedType}),Pe;let i=this._def;i.minSize!==null&&n.data.sizei.maxSize.value&&(se(n,{code:te.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let a=this._def.valueType;function o(c){let u=new Set;for(let l of c){if(l.status==="aborted")return Pe;l.status==="dirty"&&r.dirty(),u.add(l.value)}return{status:r.value,value:u}}let s=[...n.data.values()].map((c,u)=>a._parse(new kn(n,c,n.path,u)));return n.common.async?Promise.all(s).then(c=>o(c)):o(s)}min(e,r){return new t({...this._def,minSize:{value:e,message:ge.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:ge.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};gd.create=(t,e)=>new gd({valueType:t,minSize:null,maxSize:null,typeName:Re.ZodSet,...De(e)});var g$=class t extends Ve{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==de.function)return se(r,{code:te.invalid_type,expected:de.function,received:r.parsedType}),Pe;function n(s,c){return p$({data:s,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,d$(),sd].filter(u=>!!u),issueData:{code:te.invalid_arguments,argumentsError:c}})}function i(s,c){return p$({data:s,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,d$(),sd].filter(u=>!!u),issueData:{code:te.invalid_return_type,returnTypeError:c}})}let a={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof vo){let s=this;return Wr(async function(...c){let u=new En([]),l=await s._def.args.parseAsync(c,a).catch(f=>{throw u.addIssue(n(c,f)),u}),d=await Reflect.apply(o,this,l);return await s._def.returns._def.type.parseAsync(d,a).catch(f=>{throw u.addIssue(i(d,f)),u})})}else{let s=this;return Wr(function(...c){let u=s._def.args.safeParse(c,a);if(!u.success)throw new En([n(c,u.error)]);let l=Reflect.apply(o,this,u.data),d=s._def.returns.safeParse(l,a);if(!d.success)throw new En([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:zi.create(e).rest(xa.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||zi.create([]).rest(xa.create()),returns:r||xa.create(),typeName:Re.ZodFunction,...De(n)})}},cc=class extends Ve{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};cc.create=(t,e)=>new cc({getter:t,typeName:Re.ZodLazy,...De(e)});var uc=class extends Ve{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return se(r,{received:r.data,code:te.invalid_literal,expected:this._def.value}),Pe}return{status:"valid",value:e.data}}get value(){return this._def.value}};uc.create=(t,e)=>new uc({value:t,typeName:Re.ZodLiteral,...De(e)});function j2(t,e){return new lc({values:t,typeName:Re.ZodEnum,...De(e)})}var lc=class t extends Ve{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return se(r,{expected:st.joinValues(n),received:r.parsedType,code:te.invalid_type}),Pe}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return se(r,{received:r.data,code:te.invalid_enum_value,options:n}),Pe}return Wr(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(n=>!e.includes(n)),{...this._def,...r})}};lc.create=j2;var dc=class extends Ve{_parse(e){let r=st.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==de.string&&n.parsedType!==de.number){let i=st.objectValues(r);return se(n,{expected:st.joinValues(i),received:n.parsedType,code:te.invalid_type}),Pe}if(this._cache||(this._cache=new Set(st.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let i=st.objectValues(r);return se(n,{received:n.data,code:te.invalid_enum_value,options:i}),Pe}return Wr(e.data)}get enum(){return this._def.values}};dc.create=(t,e)=>new dc({values:t,typeName:Re.ZodNativeEnum,...De(e)});var vo=class extends Ve{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==de.promise&&r.common.async===!1)return se(r,{code:te.invalid_type,expected:de.promise,received:r.parsedType}),Pe;let n=r.parsedType===de.promise?r.data:Promise.resolve(r.data);return Wr(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};vo.create=(t,e)=>new vo({type:t,typeName:Re.ZodPromise,...De(e)});var Wn=class extends Ve{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Re.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,a={addIssue:o=>{se(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(a.addIssue=a.addIssue.bind(a),i.type==="preprocess"){let o=i.transform(n.data,a);if(n.common.async)return Promise.resolve(o).then(async s=>{if(r.value==="aborted")return Pe;let c=await this._def.schema._parseAsync({data:s,path:n.path,parent:n});return c.status==="aborted"?Pe:c.status==="dirty"||r.value==="dirty"?id(c.value):c});{if(r.value==="aborted")return Pe;let s=this._def.schema._parseSync({data:o,path:n.path,parent:n});return s.status==="aborted"?Pe:s.status==="dirty"||r.value==="dirty"?id(s.value):s}}if(i.type==="refinement"){let o=s=>{let c=i.refinement(s,a);if(n.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return s};if(n.common.async===!1){let s=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?Pe:(s.status==="dirty"&&r.dirty(),o(s.value),{status:r.value,value:s.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(s=>s.status==="aborted"?Pe:(s.status==="dirty"&&r.dirty(),o(s.value).then(()=>({status:r.value,value:s.value}))))}if(i.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!rc(o))return Pe;let s=i.transform(o.value,a);if(s instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:s}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>rc(o)?Promise.resolve(i.transform(o.value,a)).then(s=>({status:r.value,value:s})):Pe);st.assertNever(i)}};Wn.create=(t,e,r)=>new Wn({schema:t,typeName:Re.ZodEffects,effect:e,...De(r)});Wn.createWithPreprocess=(t,e,r)=>new Wn({schema:e,effect:{type:"preprocess",transform:t},typeName:Re.ZodEffects,...De(r)});var Gn=class extends Ve{_parse(e){return this._getType(e)===de.undefined?Wr(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Gn.create=(t,e)=>new Gn({innerType:t,typeName:Re.ZodOptional,...De(e)});var Ui=class extends Ve{_parse(e){return this._getType(e)===de.null?Wr(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Ui.create=(t,e)=>new Ui({innerType:t,typeName:Re.ZodNullable,...De(e)});var pc=class extends Ve{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===de.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};pc.create=(t,e)=>new pc({innerType:t,typeName:Re.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...De(e)});var fc=class extends Ve{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Rh(i)?i.then(a=>({status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new En(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new En(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};fc.create=(t,e)=>new fc({innerType:t,typeName:Re.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...De(e)});var vd=class extends Ve{_parse(e){if(this._getType(e)!==de.nan){let n=this._getOrReturnCtx(e);return se(n,{code:te.invalid_type,expected:de.nan,received:n.parsedType}),Pe}return{status:"valid",value:e.data}}};vd.create=t=>new vd({typeName:Re.ZodNaN,...De(t)});var o1e=Symbol("zod_brand"),Oh=class extends Ve{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},Ch=class t extends Ve{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let a=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?Pe:a.status==="dirty"?(r.dirty(),id(a.value)):this._def.out._parseAsync({data:a.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?Pe:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:Re.ZodPipeline})}},mc=class extends Ve{_parse(e){let r=this._def.innerType._parse(e),n=i=>(rc(i)&&(i.value=Object.freeze(i.value)),i);return Rh(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};mc.create=(t,e)=>new mc({innerType:t,typeName:Re.ZodReadonly,...De(e)});var s1e={object:un.lazycreate},Re;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(Re||(Re={}));var c1e=nc.create,u1e=cd.create,l1e=vd.create,d1e=ud.create,p1e=ld.create,f1e=dd.create,m1e=pd.create,h1e=ic.create,g1e=ac.create,v1e=fd.create,y1e=xa.create,_1e=vi.create,b1e=md.create,x1e=Sa.create,S1e=un.create,w1e=un.strictCreate,$1e=oc.create,E1e=f$.create,k1e=sc.create,T1e=zi.create,I1e=h$.create,P1e=hd.create,R1e=gd.create,O1e=g$.create,C1e=cc.create,N1e=uc.create,j1e=lc.create,A1e=dc.create,M1e=vo.create,D1e=Wn.create,z1e=Gn.create,U1e=Ui.create,q1e=Wn.createWithPreprocess,L1e=Ch.create,F1e=Object.freeze({status:"aborted"});function X(t,e,r){function n(s,c){var u;Object.defineProperty(s,"_zod",{value:s._zod??{},enumerable:!1}),(u=s._zod).traits??(u.traits=new Set),s._zod.traits.add(t),e(s,c);for(let l in o.prototype)l in s||Object.defineProperty(s,l,{value:o.prototype[l].bind(s)});s._zod.constr=o,s._zod.def=c}let i=r?.Parent??Object;class a extends i{}Object.defineProperty(a,"name",{value:t});function o(s){var c;let u=r?.Parent?new a:this;n(u,s),(c=u._zod).deferred??(c.deferred=[]);for(let l of u._zod.deferred)l();return u}return Object.defineProperty(o,"init",{value:n}),Object.defineProperty(o,Symbol.hasInstance,{value:s=>r?.Parent&&s instanceof r.Parent?!0:s?._zod?.traits?.has(t)}),Object.defineProperty(o,"name",{value:t}),o}var Z1e=Symbol("zod_brand"),yo=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},v$={};function qi(t){return t&&Object.assign(v$,t),v$}var Dt={};Q4(Dt,{unwrapMessage:()=>ad,stringifyPrimitive:()=>A$,required:()=>Ase,randomString:()=>$se,propertyKeyTypes:()=>U2,promiseAllObject:()=>wse,primitiveTypes:()=>Tse,prefixIssues:()=>ba,pick:()=>Rse,partial:()=>jse,optionalKeys:()=>q2,omit:()=>Ose,numKeys:()=>Ese,nullish:()=>Gh,normalizeParams:()=>ke,merge:()=>Nse,jsonStringifyReplacer:()=>M2,joinValues:()=>y$,issue:()=>F2,isPlainObject:()=>_d,isObject:()=>yd,getSizableOrigin:()=>Mse,getParsedType:()=>kse,getLengthableOrigin:()=>Kh,getEnumValues:()=>A2,getElementAtPath:()=>Sse,floatSafeRemainder:()=>D2,finalizeIssue:()=>Li,extend:()=>Cse,escapeRegex:()=>bc,esc:()=>ec,defineLazy:()=>zt,createTransparentProxy:()=>Ise,clone:()=>Ea,cleanRegex:()=>Wh,cleanEnum:()=>Dse,captureStackTrace:()=>j$,cached:()=>Vh,assignProp:()=>N$,assertNotEqual:()=>yse,assertNever:()=>bse,assertIs:()=>_se,assertEqual:()=>vse,assert:()=>xse,allowsEval:()=>z2,aborted:()=>tc,NUMBER_FORMAT_RANGES:()=>L2,Class:()=>_$,BIGINT_FORMAT_RANGES:()=>Pse});function vse(t){return t}function yse(t){return t}function _se(t){}function bse(t){throw new Error}function xse(t){}function A2(t){let e=Object.values(t).filter(n=>typeof n=="number");return Object.entries(t).filter(([n,i])=>e.indexOf(+n)===-1).map(([n,i])=>i)}function y$(t,e="|"){return t.map(r=>A$(r)).join(e)}function M2(t,e){return typeof e=="bigint"?e.toString():e}function Vh(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Gh(t){return t==null}function Wh(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function D2(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,a=Number.parseInt(t.toFixed(i).replace(".","")),o=Number.parseInt(e.toFixed(i).replace(".",""));return a%o/10**i}function zt(t,e,r){Object.defineProperty(t,e,{get(){{let i=r();return t[e]=i,i}throw new Error("cached value already set")},set(i){Object.defineProperty(t,e,{value:i})},configurable:!0})}function N$(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function Sse(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function wse(t){let e=Object.keys(t),r=e.map(n=>t[n]);return Promise.all(r).then(n=>{let i={};for(let a=0;a{};function yd(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var z2=Vh(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function _d(t){if(yd(t)===!1)return!1;let e=t.constructor;if(e===void 0)return!0;let r=e.prototype;return!(yd(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function Ese(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var kse=t=>{let e=typeof t;switch(e){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(t)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(t)?"array":t===null?"null":t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?"promise":typeof Map<"u"&&t instanceof Map?"map":typeof Set<"u"&&t instanceof Set?"set":typeof Date<"u"&&t instanceof Date?"date":typeof File<"u"&&t instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${e}`)}},U2=new Set(["string","number","symbol"]),Tse=new Set(["string","number","bigint","boolean","symbol","undefined"]);function bc(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ea(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function ke(t){let e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if(e?.message!==void 0){if(e?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function Ise(t){let e;return new Proxy({},{get(r,n,i){return e??(e=t()),Reflect.get(e,n,i)},set(r,n,i,a){return e??(e=t()),Reflect.set(e,n,i,a)},has(r,n){return e??(e=t()),Reflect.has(e,n)},deleteProperty(r,n){return e??(e=t()),Reflect.deleteProperty(e,n)},ownKeys(r){return e??(e=t()),Reflect.ownKeys(e)},getOwnPropertyDescriptor(r,n){return e??(e=t()),Reflect.getOwnPropertyDescriptor(e,n)},defineProperty(r,n,i){return e??(e=t()),Reflect.defineProperty(e,n,i)}})}function A$(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function q2(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var L2={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},Pse={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function Rse(t,e){let r={},n=t._zod.def;for(let i in e){if(!(i in n.shape))throw new Error(`Unrecognized key: "${i}"`);e[i]&&(r[i]=n.shape[i])}return Ea(t,{...t._zod.def,shape:r,checks:[]})}function Ose(t,e){let r={...t._zod.def.shape},n=t._zod.def;for(let i in e){if(!(i in n.shape))throw new Error(`Unrecognized key: "${i}"`);e[i]&&delete r[i]}return Ea(t,{...t._zod.def,shape:r,checks:[]})}function Cse(t,e){if(!_d(e))throw new Error("Invalid input to extend: expected a plain object");let r={...t._zod.def,get shape(){let n={...t._zod.def.shape,...e};return N$(this,"shape",n),n},checks:[]};return Ea(t,r)}function Nse(t,e){return Ea(t,{...t._zod.def,get shape(){let r={...t._zod.def.shape,...e._zod.def.shape};return N$(this,"shape",r),r},catchall:e._zod.def.catchall,checks:[]})}function jse(t,e,r){let n=e._zod.def.shape,i={...n};if(r)for(let a in r){if(!(a in n))throw new Error(`Unrecognized key: "${a}"`);r[a]&&(i[a]=t?new t({type:"optional",innerType:n[a]}):n[a])}else for(let a in n)i[a]=t?new t({type:"optional",innerType:n[a]}):n[a];return Ea(e,{...e._zod.def,shape:i,checks:[]})}function Ase(t,e,r){let n=e._zod.def.shape,i={...n};if(r)for(let a in r){if(!(a in i))throw new Error(`Unrecognized key: "${a}"`);r[a]&&(i[a]=new t({type:"nonoptional",innerType:n[a]}))}else for(let a in n)i[a]=new t({type:"nonoptional",innerType:n[a]});return Ea(e,{...e._zod.def,shape:i,checks:[]})}function tc(t,e=0){for(let r=e;r{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function ad(t){return typeof t=="string"?t:t?.message}function Li(t,e,r){let n={...t,path:t.path??[]};if(!t.message){let i=ad(t.inst?._zod.def?.error?.(t))??ad(e?.error?.(t))??ad(r.customError?.(t))??ad(r.localeError?.(t))??"Invalid input";n.message=i}return delete n.inst,delete n.continue,e?.reportInput||delete n.input,n}function Mse(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function Kh(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function F2(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function Dse(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}var _$=class{constructor(...e){}},Z2=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),Object.defineProperty(t,"message",{get(){return JSON.stringify(e,M2,2)},enumerable:!0})},H2=X("$ZodError",Z2),B2=X("$ZodError",Z2,{Parent:Error});function zse(t,e=r=>r.message){let r={},n=[];for(let i of t.issues)i.path.length>0?(r[i.path[0]]=r[i.path[0]]||[],r[i.path[0]].push(e(i))):n.push(e(i));return{formErrors:n,fieldErrors:r}}function Use(t,e){let r=e||function(a){return a.message},n={_errors:[]},i=a=>{for(let o of a.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(s=>i({issues:s}));else if(o.code==="invalid_key")i({issues:o.issues});else if(o.code==="invalid_element")i({issues:o.issues});else if(o.path.length===0)n._errors.push(r(o));else{let s=n,c=0;for(;c(e,r,n,i)=>{let a=n?Object.assign(n,{async:!1}):{async:!1},o=e._zod.run({value:r,issues:[]},a);if(o instanceof Promise)throw new yo;if(o.issues.length){let s=new(i?.Err??t)(o.issues.map(c=>Li(c,a,qi())));throw j$(s,i?.callee),s}return o.value};var Lse=t=>async(e,r,n,i)=>{let a=n?Object.assign(n,{async:!0}):{async:!0},o=e._zod.run({value:r,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let s=new(i?.Err??t)(o.issues.map(c=>Li(c,a,qi())));throw j$(s,i?.callee),s}return o.value};var V2=t=>(e,r,n)=>{let i=n?{...n,async:!1}:{async:!1},a=e._zod.run({value:r,issues:[]},i);if(a instanceof Promise)throw new yo;return a.issues.length?{success:!1,error:new(t??H2)(a.issues.map(o=>Li(o,i,qi())))}:{success:!0,data:a.value}},Fse=V2(B2),G2=t=>async(e,r,n)=>{let i=n?Object.assign(n,{async:!0}):{async:!0},a=e._zod.run({value:r,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new t(a.issues.map(o=>Li(o,i,qi())))}:{success:!0,data:a.value}},Zse=G2(B2),Hse=/^[cC][^\s-]{8,}$/,Bse=/^[0-9a-z]+$/,Vse=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Gse=/^[0-9a-vA-V]{20}$/,Wse=/^[A-Za-z0-9]{27}$/,Kse=/^[a-zA-Z0-9_-]{21}$/,Jse=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Xse=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,N4=t=>t?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${t}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/,Yse=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Qse="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function ece(){return new RegExp(Qse,"u")}var tce=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,rce=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/,nce=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,ice=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,ace=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,W2=/^[A-Za-z0-9_-]*$/,oce=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,sce=/^\+(?:[0-9]){6,14}[0-9]$/,K2="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",cce=new RegExp(`^${K2}$`);function J2(t){let e="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof t.precision=="number"?t.precision===-1?`${e}`:t.precision===0?`${e}:[0-5]\\d`:`${e}:[0-5]\\d\\.\\d{${t.precision}}`:`${e}(?::[0-5]\\d(?:\\.\\d+)?)?`}function uce(t){return new RegExp(`^${J2(t)}$`)}function lce(t){let e=J2({precision:t.precision}),r=["Z"];t.local&&r.push(""),t.offset&&r.push("([+-]\\d{2}:\\d{2})");let n=`${e}(?:${r.join("|")})`;return new RegExp(`^${K2}T(?:${n})$`)}var dce=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},pce=/^\d+$/,fce=/^-?\d+(?:\.\d+)?/i,mce=/true|false/i,hce=/null/i,gce=/^[^A-Z]*$/,vce=/^[^a-z]*$/,Kr=X("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),X2={number:"number",bigint:"bigint",object:"date"},Y2=X("$ZodCheckLessThan",(t,e)=>{Kr.init(t,e);let r=X2[typeof e.value];t._zod.onattach.push(n=>{let i=n._zod.bag,a=(e.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?n.value<=e.value:n.value{Kr.init(t,e);let r=X2[typeof e.value];t._zod.onattach.push(n=>{let i=n._zod.bag,a=(e.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>a&&(e.inclusive?i.minimum=e.value:i.exclusiveMinimum=e.value)}),t._zod.check=n=>{(e.inclusive?n.value>=e.value:n.value>e.value)||n.issues.push({origin:r,code:"too_small",minimum:e.value,input:n.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),yce=X("$ZodCheckMultipleOf",(t,e)=>{Kr.init(t,e),t._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=e.value)}),t._zod.check=r=>{if(typeof r.value!=typeof e.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%e.value===BigInt(0):D2(r.value,e.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:e.value,input:r.value,inst:t,continue:!e.abort})}}),_ce=X("$ZodCheckNumberFormat",(t,e)=>{Kr.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[i,a]=L2[e.format];t._zod.onattach.push(o=>{let s=o._zod.bag;s.format=e.format,s.minimum=i,s.maximum=a,r&&(s.pattern=pce)}),t._zod.check=o=>{let s=o.value;if(r){if(!Number.isInteger(s)){o.issues.push({expected:n,format:e.format,code:"invalid_type",input:s,inst:t});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,continue:!e.abort}):o.issues.push({input:s,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,continue:!e.abort});return}}sa&&o.issues.push({origin:"number",input:s,code:"too_big",maximum:a,inst:t})}}),bce=X("$ZodCheckMaxLength",(t,e)=>{Kr.init(t,e),t._zod.when=r=>{let n=r.value;return!Gh(n)&&n.length!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let n=r.value;if(n.length<=e.maximum)return;let a=Kh(n);r.issues.push({origin:a,code:"too_big",maximum:e.maximum,inclusive:!0,input:n,inst:t,continue:!e.abort})}}),xce=X("$ZodCheckMinLength",(t,e)=>{Kr.init(t,e),t._zod.when=r=>{let n=r.value;return!Gh(n)&&n.length!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>n&&(r._zod.bag.minimum=e.minimum)}),t._zod.check=r=>{let n=r.value;if(n.length>=e.minimum)return;let a=Kh(n);r.issues.push({origin:a,code:"too_small",minimum:e.minimum,inclusive:!0,input:n,inst:t,continue:!e.abort})}}),Sce=X("$ZodCheckLengthEquals",(t,e)=>{Kr.init(t,e),t._zod.when=r=>{let n=r.value;return!Gh(n)&&n.length!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag;n.minimum=e.length,n.maximum=e.length,n.length=e.length}),t._zod.check=r=>{let n=r.value,i=n.length;if(i===e.length)return;let a=Kh(n),o=i>e.length;r.issues.push({origin:a,...o?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:r.value,inst:t,continue:!e.abort})}}),Jh=X("$ZodCheckStringFormat",(t,e)=>{var r,n;Kr.init(t,e),t._zod.onattach.push(i=>{let a=i._zod.bag;a.format=e.format,e.pattern&&(a.patterns??(a.patterns=new Set),a.patterns.add(e.pattern))}),e.pattern?(r=t._zod).check??(r.check=i=>{e.pattern.lastIndex=0,!e.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:e.format,input:i.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(n=t._zod).check??(n.check=()=>{})}),wce=X("$ZodCheckRegex",(t,e)=>{Jh.init(t,e),t._zod.check=r=>{e.pattern.lastIndex=0,!e.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:e.pattern.toString(),inst:t,continue:!e.abort})}}),$ce=X("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=gce),Jh.init(t,e)}),Ece=X("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=vce),Jh.init(t,e)}),kce=X("$ZodCheckIncludes",(t,e)=>{Kr.init(t,e);let r=bc(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=n,t._zod.onattach.push(i=>{let a=i._zod.bag;a.patterns??(a.patterns=new Set),a.patterns.add(n)}),t._zod.check=i=>{i.value.includes(e.includes,e.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:i.value,inst:t,continue:!e.abort})}}),Tce=X("$ZodCheckStartsWith",(t,e)=>{Kr.init(t,e);let r=new RegExp(`^${bc(e.prefix)}.*`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let i=n._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(r)}),t._zod.check=n=>{n.value.startsWith(e.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:n.value,inst:t,continue:!e.abort})}}),Ice=X("$ZodCheckEndsWith",(t,e)=>{Kr.init(t,e);let r=new RegExp(`.*${bc(e.suffix)}$`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let i=n._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(r)}),t._zod.check=n=>{n.value.endsWith(e.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:n.value,inst:t,continue:!e.abort})}}),Pce=X("$ZodCheckOverwrite",(t,e)=>{Kr.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}}),b$=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let n=e.split(` +`).filter(o=>o),i=Math.min(...n.map(o=>o.length-o.trimStart().length)),a=n.map(o=>o.slice(i)).map(o=>" ".repeat(this.indent*2)+o);for(let o of a)this.content.push(o)}compile(){let e=Function,r=this?.args,i=[...(this?.content??[""]).map(a=>` ${a}`)];return new e(...r,i.join(` +`))}},Rce={major:4,minor:0,patch:0},Ut=X("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=Rce;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let i of n)for(let a of i._zod.onattach)a(t);if(n.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let i=(a,o,s)=>{let c=tc(a),u;for(let l of o){if(l._zod.when){if(!l._zod.when(a))continue}else if(c)continue;let d=a.issues.length,p=l._zod.check(a);if(p instanceof Promise&&s?.async===!1)throw new yo;if(u||p instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await p,a.issues.length!==d&&(c||(c=tc(a,d)))});else{if(a.issues.length===d)continue;c||(c=tc(a,d))}}return u?u.then(()=>a):a};t._zod.run=(a,o)=>{let s=t._zod.parse(a,o);if(s instanceof Promise){if(o.async===!1)throw new yo;return s.then(c=>i(c,n,o))}return i(s,n,o)}}t["~standard"]={validate:i=>{try{let a=Fse(t,i);return a.success?{value:a.data}:{issues:a.error?.issues}}catch{return Zse(t,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}}),M$=X("$ZodString",(t,e)=>{Ut.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??dce(t._zod.bag),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:t}),r}}),Lt=X("$ZodStringFormat",(t,e)=>{Jh.init(t,e),M$.init(t,e)}),Oce=X("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=Xse),Lt.init(t,e)}),Cce=X("$ZodUUID",(t,e)=>{if(e.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(n===void 0)throw new Error(`Invalid UUID version: "${e.version}"`);e.pattern??(e.pattern=N4(n))}else e.pattern??(e.pattern=N4());Lt.init(t,e)}),Nce=X("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=Yse),Lt.init(t,e)}),jce=X("$ZodURL",(t,e)=>{Lt.init(t,e),t._zod.check=r=>{try{let n=r.value,i=new URL(n),a=i.href;e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(i.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:oce.source,input:r.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:r.value,inst:t,continue:!e.abort})),!n.endsWith("/")&&a.endsWith("/")?r.value=a.slice(0,-1):r.value=a;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!e.abort})}}}),Ace=X("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=ece()),Lt.init(t,e)}),Mce=X("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=Kse),Lt.init(t,e)}),Dce=X("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=Hse),Lt.init(t,e)}),zce=X("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=Bse),Lt.init(t,e)}),Uce=X("$ZodULID",(t,e)=>{e.pattern??(e.pattern=Vse),Lt.init(t,e)}),qce=X("$ZodXID",(t,e)=>{e.pattern??(e.pattern=Gse),Lt.init(t,e)}),Lce=X("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=Wse),Lt.init(t,e)}),Fce=X("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=lce(e)),Lt.init(t,e)}),Zce=X("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=cce),Lt.init(t,e)}),Hce=X("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=uce(e)),Lt.init(t,e)}),Bce=X("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=Jse),Lt.init(t,e)}),Vce=X("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=tce),Lt.init(t,e),t._zod.onattach.push(r=>{let n=r._zod.bag;n.format="ipv4"})}),Gce=X("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=rce),Lt.init(t,e),t._zod.onattach.push(r=>{let n=r._zod.bag;n.format="ipv6"}),t._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:t,continue:!e.abort})}}}),Wce=X("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=nce),Lt.init(t,e)}),Kce=X("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=ice),Lt.init(t,e),t._zod.check=r=>{let[n,i]=r.value.split("/");try{if(!i)throw new Error;let a=Number(i);if(`${a}`!==i)throw new Error;if(a<0||a>128)throw new Error;new URL(`http://[${n}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:t,continue:!e.abort})}}});function e6(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var Jce=X("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=ace),Lt.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64"}),t._zod.check=r=>{e6(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function Xce(t){if(!W2.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return e6(r)}var Yce=X("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=W2),Lt.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64url"}),t._zod.check=r=>{Xce(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),Qce=X("$ZodE164",(t,e)=>{e.pattern??(e.pattern=sce),Lt.init(t,e)});function eue(t,e=null){try{let r=t.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let i=JSON.parse(atob(n));return!("typ"in i&&i?.typ!=="JWT"||!i.alg||e&&(!("alg"in i)||i.alg!==e))}catch{return!1}}var tue=X("$ZodJWT",(t,e)=>{Lt.init(t,e),t._zod.check=r=>{eue(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}}),t6=X("$ZodNumber",(t,e)=>{Ut.init(t,e),t._zod.pattern=t._zod.bag.pattern??fce,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=Number(r.value)}catch{}let i=r.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return r;let a=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:i,inst:t,...a?{received:a}:{}}),r}}),rue=X("$ZodNumber",(t,e)=>{_ce.init(t,e),t6.init(t,e)}),nue=X("$ZodBoolean",(t,e)=>{Ut.init(t,e),t._zod.pattern=mce,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=!!r.value}catch{}let i=r.value;return typeof i=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:t}),r}}),iue=X("$ZodNull",(t,e)=>{Ut.init(t,e),t._zod.pattern=hce,t._zod.values=new Set([null]),t._zod.parse=(r,n)=>{let i=r.value;return i===null||r.issues.push({expected:"null",code:"invalid_type",input:i,inst:t}),r}}),aue=X("$ZodUnknown",(t,e)=>{Ut.init(t,e),t._zod.parse=r=>r}),oue=X("$ZodNever",(t,e)=>{Ut.init(t,e),t._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)});function j4(t,e,r){t.issues.length&&e.issues.push(...ba(r,t.issues)),e.value[r]=t.value}var sue=X("$ZodArray",(t,e)=>{Ut.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;if(!Array.isArray(i))return r.issues.push({expected:"array",code:"invalid_type",input:i,inst:t}),r;r.value=Array(i.length);let a=[];for(let o=0;oj4(u,r,o))):j4(c,r,o)}return a.length?Promise.all(a).then(()=>r):r}});function Sh(t,e,r){t.issues.length&&e.issues.push(...ba(r,t.issues)),e.value[r]=t.value}function A4(t,e,r,n){t.issues.length?n[r]===void 0?r in n?e.value[r]=void 0:e.value[r]=t.value:e.issues.push(...ba(r,t.issues)):t.value===void 0?r in n&&(e.value[r]=void 0):e.value[r]=t.value}var cue=X("$ZodObject",(t,e)=>{Ut.init(t,e);let r=Vh(()=>{let d=Object.keys(e.shape);for(let f of d)if(!(e.shape[f]instanceof Ut))throw new Error(`Invalid element at key "${f}": expected a Zod schema`);let p=q2(e.shape);return{shape:e.shape,keys:d,keySet:new Set(d),numKeys:d.length,optionalKeys:new Set(p)}});zt(t._zod,"propValues",()=>{let d=e.shape,p={};for(let f in d){let h=d[f]._zod;if(h.values){p[f]??(p[f]=new Set);for(let _ of h.values)p[f].add(_)}}return p});let n=d=>{let p=new b$(["shape","payload","ctx"]),f=r.value,h=v=>{let g=ec(v);return`shape[${g}]._zod.run({ value: input[${g}], issues: [] }, ctx)`};p.write("const input = payload.value;");let _=Object.create(null),y=0;for(let v of f.keys)_[v]=`key_${y++}`;p.write("const newResult = {}");for(let v of f.keys)if(f.optionalKeys.has(v)){let g=_[v];p.write(`const ${g} = ${h(v)};`);let b=ec(v);p.write(` if (${g}.issues.length) { if (input[${b}] === undefined) { if (${b} in input) { @@ -1019,16 +1111,16 @@ ${a.prompts.header_memory_continued}`}hr();vr();ln();var km=require("path"),DT=r } else { newResult[${b}] = ${g}.value; } - `)}else{let g=_[y];p.write(`const ${g} = ${v(y)};`),p.write(` + `)}else{let g=_[v];p.write(`const ${g} = ${h(v)};`),p.write(` if (${g}.issues.length) payload.issues = payload.issues.concat(${g}.issues.map(iss => ({ ...iss, - path: iss.path ? [${si(y)}, ...iss.path] : [${si(y)}] - })));`),p.write(`newResult[${si(y)}] = ${g}.value`)}p.write("payload.value = newResult;"),p.write("return payload;");let h=p.compile();return(y,g)=>h(d,y,g)},n,s=Ko,i=!Lm.jitless,c=i&&lk.value,u=e.catchall,l;t._zod.parse=(d,p)=>{l??(l=r.value);let f=d.value;if(!s(f))return d.issues.push({expected:"object",code:"invalid_type",input:f,inst:t}),d;let v=[];if(i&&c&&p?.async===!1&&p.jitless!==!0)n||(n=a(e.shape)),d=n(d,p);else{d.value={};let g=l.shape;for(let b of l.keys){let w=g[b],S=w._zod.run({value:f[b],issues:[]},p),E=w._zod.optin==="optional"&&w._zod.optout==="optional";S instanceof Promise?v.push(S.then(T=>E?oT(T,d,b,f):dl(T,d,b))):E?oT(S,d,b,f):dl(S,d,b)}}if(!u)return v.length?Promise.all(v).then(()=>d):d;let _=[],m=l.keySet,h=u._zod,y=h.def.type;for(let g of Object.keys(f)){if(m.has(g))continue;if(y==="never"){_.push(g);continue}let b=h.run({value:f[g],issues:[]},p);b instanceof Promise?v.push(b.then(w=>dl(w,d,g))):dl(b,d,g)}return _.length&&d.issues.push({code:"unrecognized_keys",keys:_,input:f,inst:t}),v.length?Promise.all(v).then(()=>d):d}});function cT(t,e,r,a){for(let n of t)if(n.issues.length===0)return e.value=n.value,e;return e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(n=>n.issues.map(s=>Pn(s,a,Rn())))}),e}var Pk=ne("$ZodUnion",(t,e)=>{ht.init(t,e),mt(t._zod,"optin",()=>e.options.some(r=>r._zod.optin==="optional")?"optional":void 0),mt(t._zod,"optout",()=>e.options.some(r=>r._zod.optout==="optional")?"optional":void 0),mt(t._zod,"values",()=>{if(e.options.every(r=>r._zod.values))return new Set(e.options.flatMap(r=>Array.from(r._zod.values)))}),mt(t._zod,"pattern",()=>{if(e.options.every(r=>r._zod.pattern)){let r=e.options.map(a=>a._zod.pattern);return new RegExp(`^(${r.map(a=>Dl(a.source)).join("|")})$`)}}),t._zod.parse=(r,a)=>{let n=!1,s=[];for(let i of e.options){let o=i._zod.run({value:r.value,issues:[]},a);if(o instanceof Promise)s.push(o),n=!0;else{if(o.issues.length===0)return o;s.push(o)}}return n?Promise.all(s).then(i=>cT(i,r,t,a)):cT(s,r,t,a)}}),f3=ne("$ZodDiscriminatedUnion",(t,e)=>{Pk.init(t,e);let r=t._zod.parse;mt(t._zod,"propValues",()=>{let n={};for(let s of e.options){let i=s._zod.propValues;if(!i||Object.keys(i).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(s)}"`);for(let[o,c]of Object.entries(i)){n[o]||(n[o]=new Set);for(let u of c)n[o].add(u)}}return n});let a=Ml(()=>{let n=e.options,s=new Map;for(let i of n){let o=i._zod.propValues[e.discriminator];if(!o||o.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(i)}"`);for(let c of o){if(s.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);s.set(c,i)}}return s});t._zod.parse=(n,s)=>{let i=n.value;if(!Ko(i))return n.issues.push({code:"invalid_type",expected:"object",input:i,inst:t}),n;let o=a.value.get(i?.[e.discriminator]);return o?o._zod.run(n,s):e.unionFallback?r(n,s):(n.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:i,path:[e.discriminator],inst:t}),n)}}),m3=ne("$ZodIntersection",(t,e)=>{ht.init(t,e),t._zod.parse=(r,a)=>{let n=r.value,s=e.left._zod.run({value:n,issues:[]},a),i=e.right._zod.run({value:n,issues:[]},a);return s instanceof Promise||i instanceof Promise?Promise.all([s,i]).then(([c,u])=>uT(r,c,u)):uT(r,s,i)}});function zm(t,e){if(t===e)return{valid:!0,data:t};if(t instanceof Date&&e instanceof Date&&+t==+e)return{valid:!0,data:t};if(Xo(t)&&Xo(e)){let r=Object.keys(e),a=Object.keys(t).filter(s=>r.indexOf(s)!==-1),n={...t,...e};for(let s of a){let i=zm(t[s],e[s]);if(!i.valid)return{valid:!1,mergeErrorPath:[s,...i.mergeErrorPath]};n[s]=i.data}return{valid:!0,data:n}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let a=0;a{ht.init(t,e),t._zod.parse=(r,a)=>{let n=r.value;if(!Xo(n))return r.issues.push({expected:"record",code:"invalid_type",input:n,inst:t}),r;let s=[];if(e.keyType._zod.values){let i=e.keyType._zod.values;r.value={};for(let c of i)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let u=e.valueType._zod.run({value:n[c],issues:[]},a);u instanceof Promise?s.push(u.then(l=>{l.issues.length&&r.issues.push(...Kn(c,l.issues)),r.value[c]=l.value})):(u.issues.length&&r.issues.push(...Kn(c,u.issues)),r.value[c]=u.value)}let o;for(let c in n)i.has(c)||(o=o??[],o.push(c));o&&o.length>0&&r.issues.push({code:"unrecognized_keys",input:n,inst:t,keys:o})}else{r.value={};for(let i of Reflect.ownKeys(n)){if(i==="__proto__")continue;let o=e.keyType._zod.run({value:i,issues:[]},a);if(o instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(o.issues.length){r.issues.push({origin:"record",code:"invalid_key",issues:o.issues.map(u=>Pn(u,a,Rn())),input:i,path:[i],inst:t}),r.value[o.value]=o.value;continue}let c=e.valueType._zod.run({value:n[i],issues:[]},a);c instanceof Promise?s.push(c.then(u=>{u.issues.length&&r.issues.push(...Kn(i,u.issues)),r.value[o.value]=u.value})):(c.issues.length&&r.issues.push(...Kn(i,c.issues)),r.value[o.value]=c.value)}}return s.length?Promise.all(s).then(()=>r):r}}),v3=ne("$ZodEnum",(t,e)=>{ht.init(t,e);let r=ok(e.entries);t._zod.values=new Set(r),t._zod.pattern=new RegExp(`^(${r.filter(a=>dk.has(typeof a)).map(a=>typeof a=="string"?Ti(a):a.toString()).join("|")})$`),t._zod.parse=(a,n)=>{let s=a.value;return t._zod.values.has(s)||a.issues.push({code:"invalid_value",values:r,input:s,inst:t}),a}}),g3=ne("$ZodLiteral",(t,e)=>{ht.init(t,e),t._zod.values=new Set(e.values),t._zod.pattern=new RegExp(`^(${e.values.map(r=>typeof r=="string"?Ti(r):r?r.toString():String(r)).join("|")})$`),t._zod.parse=(r,a)=>{let n=r.value;return t._zod.values.has(n)||r.issues.push({code:"invalid_value",values:e.values,input:n,inst:t}),r}}),y3=ne("$ZodTransform",(t,e)=>{ht.init(t,e),t._zod.parse=(r,a)=>{let n=e.transform(r.value,r);if(a.async)return(n instanceof Promise?n:Promise.resolve(n)).then(i=>(r.value=i,r));if(n instanceof Promise)throw new Ga;return r.value=n,r}}),_3=ne("$ZodOptional",(t,e)=>{ht.init(t,e),t._zod.optin="optional",t._zod.optout="optional",mt(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),mt(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Dl(r.source)})?$`):void 0}),t._zod.parse=(r,a)=>e.innerType._zod.optin==="optional"?e.innerType._zod.run(r,a):r.value===void 0?r:e.innerType._zod.run(r,a)}),b3=ne("$ZodNullable",(t,e)=>{ht.init(t,e),mt(t._zod,"optin",()=>e.innerType._zod.optin),mt(t._zod,"optout",()=>e.innerType._zod.optout),mt(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Dl(r.source)}|null)$`):void 0}),mt(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,a)=>r.value===null?r:e.innerType._zod.run(r,a)}),S3=ne("$ZodDefault",(t,e)=>{ht.init(t,e),t._zod.optin="optional",mt(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,a)=>{if(r.value===void 0)return r.value=e.defaultValue,r;let n=e.innerType._zod.run(r,a);return n instanceof Promise?n.then(s=>lT(s,e)):lT(n,e)}});function lT(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var x3=ne("$ZodPrefault",(t,e)=>{ht.init(t,e),t._zod.optin="optional",mt(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,a)=>(r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,a))}),w3=ne("$ZodNonOptional",(t,e)=>{ht.init(t,e),mt(t._zod,"values",()=>{let r=e.innerType._zod.values;return r?new Set([...r].filter(a=>a!==void 0)):void 0}),t._zod.parse=(r,a)=>{let n=e.innerType._zod.run(r,a);return n instanceof Promise?n.then(s=>dT(s,t)):dT(n,t)}});function dT(t,e){return!t.issues.length&&t.value===void 0&&t.issues.push({code:"invalid_type",expected:"nonoptional",input:t.value,inst:e}),t}var E3=ne("$ZodCatch",(t,e)=>{ht.init(t,e),t._zod.optin="optional",mt(t._zod,"optout",()=>e.innerType._zod.optout),mt(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,a)=>{let n=e.innerType._zod.run(r,a);return n instanceof Promise?n.then(s=>(r.value=s.value,s.issues.length&&(r.value=e.catchValue({...r,error:{issues:s.issues.map(i=>Pn(i,a,Rn()))},input:r.value}),r.issues=[]),r)):(r.value=n.value,n.issues.length&&(r.value=e.catchValue({...r,error:{issues:n.issues.map(s=>Pn(s,a,Rn()))},input:r.value}),r.issues=[]),r)}}),T3=ne("$ZodPipe",(t,e)=>{ht.init(t,e),mt(t._zod,"values",()=>e.in._zod.values),mt(t._zod,"optin",()=>e.in._zod.optin),mt(t._zod,"optout",()=>e.out._zod.optout),t._zod.parse=(r,a)=>{let n=e.in._zod.run(r,a);return n instanceof Promise?n.then(s=>pT(s,e,a)):pT(n,e,a)}});function pT(t,e,r){return ii(t)?t:e.out._zod.run({value:t.value,issues:t.issues},r)}var k3=ne("$ZodReadonly",(t,e)=>{ht.init(t,e),mt(t._zod,"propValues",()=>e.innerType._zod.propValues),mt(t._zod,"values",()=>e.innerType._zod.values),mt(t._zod,"optin",()=>e.innerType._zod.optin),mt(t._zod,"optout",()=>e.innerType._zod.optout),t._zod.parse=(r,a)=>{let n=e.innerType._zod.run(r,a);return n instanceof Promise?n.then(fT):fT(n)}});function fT(t){return t.value=Object.freeze(t.value),t}var R3=ne("$ZodCustom",(t,e)=>{ur.init(t,e),ht.init(t,e),t._zod.parse=(r,a)=>r,t._zod.check=r=>{let a=r.value,n=e.fn(a);if(n instanceof Promise)return n.then(s=>mT(s,r,a,t));mT(n,r,a,t)}});function mT(t,e,r,a){if(!t){let n={code:"custom",input:r,inst:a,path:[...a._zod.def.path??[]],continue:!a._zod.def.abort};a._zod.def.params&&(n.params=a._zod.def.params),e.issues.push(mk(n))}}var P3=t=>{let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"NaN":"number";case"object":{if(Array.isArray(t))return"array";if(t===null)return"null";if(Object.getPrototypeOf(t)!==Object.prototype&&t.constructor)return t.constructor.name}}return e},$3=()=>{let t={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function e(a){return t[a]??null}let r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return a=>{switch(a.code){case"invalid_type":return`Invalid input: expected ${a.expected}, received ${P3(a.input)}`;case"invalid_value":return a.values.length===1?`Invalid input: expected ${rh(a.values[0])}`:`Invalid option: expected one of ${qm(a.values,"|")}`;case"too_big":{let n=a.inclusive?"<=":"<",s=e(a.origin);return s?`Too big: expected ${a.origin??"value"} to have ${n}${a.maximum.toString()} ${s.unit??"elements"}`:`Too big: expected ${a.origin??"value"} to be ${n}${a.maximum.toString()}`}case"too_small":{let n=a.inclusive?">=":">",s=e(a.origin);return s?`Too small: expected ${a.origin} to have ${n}${a.minimum.toString()} ${s.unit}`:`Too small: expected ${a.origin} to be ${n}${a.minimum.toString()}`}case"invalid_format":{let n=a;return n.format==="starts_with"?`Invalid string: must start with "${n.prefix}"`:n.format==="ends_with"?`Invalid string: must end with "${n.suffix}"`:n.format==="includes"?`Invalid string: must include "${n.includes}"`:n.format==="regex"?`Invalid string: must match pattern ${n.pattern}`:`Invalid ${r[n.format]??a.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${a.divisor}`;case"unrecognized_keys":return`Unrecognized key${a.keys.length>1?"s":""}: ${qm(a.keys,", ")}`;case"invalid_key":return`Invalid key in ${a.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${a.origin}`;default:return"Invalid input"}}};function O3(){return{localeError:$3()}}var uY=Symbol("ZodOutput"),lY=Symbol("ZodInput"),Hm=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...r){let a=r[0];if(this._map.set(e,a),a&&typeof a=="object"&&"id"in a){if(this._idmap.has(a.id))throw new Error(`ID ${a.id} already exists in the registry`);this._idmap.set(a.id,e)}return this}remove(e){return this._map.delete(e),this}get(e){let r=e._zod.parent;if(r){let a={...this.get(r)??{}};return delete a.id,{...a,...this._map.get(e)}}return this._map.get(e)}has(e){return this._map.has(e)}};function C3(){return new Hm}var pl=C3();function I3(t,e){return new t({type:"string",...$e(e)})}function A3(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...$e(e)})}function hT(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...$e(e)})}function N3(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...$e(e)})}function M3(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...$e(e)})}function j3(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...$e(e)})}function D3(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...$e(e)})}function L3(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...$e(e)})}function q3(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...$e(e)})}function F3(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...$e(e)})}function U3(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...$e(e)})}function z3(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...$e(e)})}function H3(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...$e(e)})}function B3(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...$e(e)})}function V3(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...$e(e)})}function G3(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...$e(e)})}function Z3(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...$e(e)})}function W3(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...$e(e)})}function K3(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...$e(e)})}function X3(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...$e(e)})}function J3(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...$e(e)})}function Y3(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...$e(e)})}function Q3(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...$e(e)})}function eH(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...$e(e)})}function tH(t,e){return new t({type:"string",format:"date",check:"string_format",...$e(e)})}function rH(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...$e(e)})}function nH(t,e){return new t({type:"string",format:"duration",check:"string_format",...$e(e)})}function aH(t,e){return new t({type:"number",checks:[],...$e(e)})}function sH(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...$e(e)})}function iH(t,e){return new t({type:"boolean",...$e(e)})}function oH(t,e){return new t({type:"null",...$e(e)})}function cH(t){return new t({type:"unknown"})}function uH(t,e){return new t({type:"never",...$e(e)})}function vT(t,e){return new Ek({check:"less_than",...$e(e),value:t,inclusive:!1})}function wm(t,e){return new Ek({check:"less_than",...$e(e),value:t,inclusive:!0})}function gT(t,e){return new Tk({check:"greater_than",...$e(e),value:t,inclusive:!1})}function Em(t,e){return new Tk({check:"greater_than",...$e(e),value:t,inclusive:!0})}function yT(t,e){return new xz({check:"multiple_of",...$e(e),value:t})}function $k(t,e){return new Ez({check:"max_length",...$e(e),maximum:t})}function xl(t,e){return new Tz({check:"min_length",...$e(e),minimum:t})}function Ok(t,e){return new kz({check:"length_equals",...$e(e),length:t})}function lH(t,e){return new Rz({check:"string_format",format:"regex",...$e(e),pattern:t})}function dH(t){return new Pz({check:"string_format",format:"lowercase",...$e(t)})}function pH(t){return new $z({check:"string_format",format:"uppercase",...$e(t)})}function fH(t,e){return new Oz({check:"string_format",format:"includes",...$e(e),includes:t})}function mH(t,e){return new Cz({check:"string_format",format:"starts_with",...$e(e),prefix:t})}function hH(t,e){return new Iz({check:"string_format",format:"ends_with",...$e(e),suffix:t})}function Yo(t){return new Az({check:"overwrite",tx:t})}function vH(t){return Yo(e=>e.normalize(t))}function gH(){return Yo(t=>t.trim())}function yH(){return Yo(t=>t.toLowerCase())}function _H(){return Yo(t=>t.toUpperCase())}function bH(t,e,r){return new t({type:"array",element:e,...$e(r)})}function SH(t,e,r){let a=$e(r);return a.abort??(a.abort=!0),new t({type:"custom",check:"custom",fn:e,...a})}function xH(t,e,r){return new t({type:"custom",check:"custom",fn:e,...$e(r)})}var Ck={};TT(Ck,{time:()=>Dk,duration:()=>qk,datetime:()=>Ak,date:()=>Mk,ZodISOTime:()=>jk,ZodISODuration:()=>Lk,ZodISODateTime:()=>Ik,ZodISODate:()=>Nk});var Ik=ne("ZodISODateTime",(t,e)=>{Gz.init(t,e),Tt.init(t,e)});function Ak(t){return eH(Ik,t)}var Nk=ne("ZodISODate",(t,e)=>{Zz.init(t,e),Tt.init(t,e)});function Mk(t){return tH(Nk,t)}var jk=ne("ZodISOTime",(t,e)=>{Wz.init(t,e),Tt.init(t,e)});function Dk(t){return rH(jk,t)}var Lk=ne("ZodISODuration",(t,e)=>{Kz.init(t,e),Tt.init(t,e)});function qk(t){return nH(Lk,t)}var Fk=(t,e)=>{vk.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>H5(t,r)},flatten:{value:r=>z5(t,r)},addIssue:{value:r=>t.issues.push(r)},addIssues:{value:r=>t.issues.push(...r)},isEmpty:{get(){return t.issues.length===0}}})},dY=ne("ZodError",Fk),Fl=ne("ZodError",Fk,{Parent:Error}),wH=B5(Fl),EH=V5(Fl),TH=yk(Fl),kH=_k(Fl),Et=ne("ZodType",(t,e)=>(ht.init(t,e),t.def=e,Object.defineProperty(t,"_def",{value:e}),t.check=(...r)=>t.clone({...e,checks:[...e.checks??[],...r.map(a=>typeof a=="function"?{_zod:{check:a,def:{check:"custom"},onattach:[]}}:a)]}),t.clone=(r,a)=>ea(t,r,a),t.brand=()=>t,t.register=(r,a)=>(r.add(t,a),t),t.parse=(r,a)=>wH(t,r,a,{callee:t.parse}),t.safeParse=(r,a)=>TH(t,r,a),t.parseAsync=async(r,a)=>EH(t,r,a,{callee:t.parseAsync}),t.safeParseAsync=async(r,a)=>kH(t,r,a),t.spa=t.safeParseAsync,t.refine=(r,a)=>t.check(vB(r,a)),t.superRefine=r=>t.check(gB(r)),t.overwrite=r=>t.check(Yo(r)),t.optional=()=>we(t),t.nullable=()=>ST(t),t.nullish=()=>we(ST(t)),t.nonoptional=r=>cB(t,r),t.array=()=>Xe(t),t.or=r=>_t([t,r]),t.and=r=>ah(t,r),t.transform=r=>Vm(t,Zk(r)),t.default=r=>sB(t,r),t.prefault=r=>oB(t,r),t.catch=r=>lB(t,r),t.pipe=r=>Vm(t,r),t.readonly=()=>fB(t),t.describe=r=>{let a=t.clone();return pl.add(a,{description:r}),a},Object.defineProperty(t,"description",{get(){return pl.get(t)?.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return pl.get(t);let a=t.clone();return pl.add(a,r[0]),a},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t)),Uk=ne("_ZodString",(t,e)=>{nh.init(t,e),Et.init(t,e);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,t.regex=(...a)=>t.check(lH(...a)),t.includes=(...a)=>t.check(fH(...a)),t.startsWith=(...a)=>t.check(mH(...a)),t.endsWith=(...a)=>t.check(hH(...a)),t.min=(...a)=>t.check(xl(...a)),t.max=(...a)=>t.check($k(...a)),t.length=(...a)=>t.check(Ok(...a)),t.nonempty=(...a)=>t.check(xl(1,...a)),t.lowercase=a=>t.check(dH(a)),t.uppercase=a=>t.check(pH(a)),t.trim=()=>t.check(gH()),t.normalize=(...a)=>t.check(vH(...a)),t.toLowerCase=()=>t.check(yH()),t.toUpperCase=()=>t.check(_H())}),RH=ne("ZodString",(t,e)=>{nh.init(t,e),Uk.init(t,e),t.email=r=>t.check(A3(PH,r)),t.url=r=>t.check(L3($H,r)),t.jwt=r=>t.check(Q3(BH,r)),t.emoji=r=>t.check(q3(OH,r)),t.guid=r=>t.check(hT(_T,r)),t.uuid=r=>t.check(N3(fl,r)),t.uuidv4=r=>t.check(M3(fl,r)),t.uuidv6=r=>t.check(j3(fl,r)),t.uuidv7=r=>t.check(D3(fl,r)),t.nanoid=r=>t.check(F3(CH,r)),t.guid=r=>t.check(hT(_T,r)),t.cuid=r=>t.check(U3(IH,r)),t.cuid2=r=>t.check(z3(AH,r)),t.ulid=r=>t.check(H3(NH,r)),t.base64=r=>t.check(X3(UH,r)),t.base64url=r=>t.check(J3(zH,r)),t.xid=r=>t.check(B3(MH,r)),t.ksuid=r=>t.check(V3(jH,r)),t.ipv4=r=>t.check(G3(DH,r)),t.ipv6=r=>t.check(Z3(LH,r)),t.cidrv4=r=>t.check(W3(qH,r)),t.cidrv6=r=>t.check(K3(FH,r)),t.e164=r=>t.check(Y3(HH,r)),t.datetime=r=>t.check(Ak(r)),t.date=r=>t.check(Mk(r)),t.time=r=>t.check(Dk(r)),t.duration=r=>t.check(qk(r))});function te(t){return I3(RH,t)}var Tt=ne("ZodStringFormat",(t,e)=>{yt.init(t,e),Uk.init(t,e)}),PH=ne("ZodEmail",(t,e)=>{Dz.init(t,e),Tt.init(t,e)}),_T=ne("ZodGUID",(t,e)=>{Mz.init(t,e),Tt.init(t,e)}),fl=ne("ZodUUID",(t,e)=>{jz.init(t,e),Tt.init(t,e)}),$H=ne("ZodURL",(t,e)=>{Lz.init(t,e),Tt.init(t,e)}),OH=ne("ZodEmoji",(t,e)=>{qz.init(t,e),Tt.init(t,e)}),CH=ne("ZodNanoID",(t,e)=>{Fz.init(t,e),Tt.init(t,e)}),IH=ne("ZodCUID",(t,e)=>{Uz.init(t,e),Tt.init(t,e)}),AH=ne("ZodCUID2",(t,e)=>{zz.init(t,e),Tt.init(t,e)}),NH=ne("ZodULID",(t,e)=>{Hz.init(t,e),Tt.init(t,e)}),MH=ne("ZodXID",(t,e)=>{Bz.init(t,e),Tt.init(t,e)}),jH=ne("ZodKSUID",(t,e)=>{Vz.init(t,e),Tt.init(t,e)}),DH=ne("ZodIPv4",(t,e)=>{Xz.init(t,e),Tt.init(t,e)}),LH=ne("ZodIPv6",(t,e)=>{Jz.init(t,e),Tt.init(t,e)}),qH=ne("ZodCIDRv4",(t,e)=>{Yz.init(t,e),Tt.init(t,e)}),FH=ne("ZodCIDRv6",(t,e)=>{Qz.init(t,e),Tt.init(t,e)}),UH=ne("ZodBase64",(t,e)=>{e3.init(t,e),Tt.init(t,e)}),zH=ne("ZodBase64URL",(t,e)=>{r3.init(t,e),Tt.init(t,e)}),HH=ne("ZodE164",(t,e)=>{n3.init(t,e),Tt.init(t,e)}),BH=ne("ZodJWT",(t,e)=>{s3.init(t,e),Tt.init(t,e)}),zk=ne("ZodNumber",(t,e)=>{Rk.init(t,e),Et.init(t,e),t.gt=(a,n)=>t.check(gT(a,n)),t.gte=(a,n)=>t.check(Em(a,n)),t.min=(a,n)=>t.check(Em(a,n)),t.lt=(a,n)=>t.check(vT(a,n)),t.lte=(a,n)=>t.check(wm(a,n)),t.max=(a,n)=>t.check(wm(a,n)),t.int=a=>t.check(bT(a)),t.safe=a=>t.check(bT(a)),t.positive=a=>t.check(gT(0,a)),t.nonnegative=a=>t.check(Em(0,a)),t.negative=a=>t.check(vT(0,a)),t.nonpositive=a=>t.check(wm(0,a)),t.multipleOf=(a,n)=>t.check(yT(a,n)),t.step=(a,n)=>t.check(yT(a,n)),t.finite=()=>t;let r=t._zod.bag;t.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),t.isFinite=!0,t.format=r.format??null});function pt(t){return aH(zk,t)}var VH=ne("ZodNumberFormat",(t,e)=>{i3.init(t,e),zk.init(t,e)});function bT(t){return sH(VH,t)}var GH=ne("ZodBoolean",(t,e)=>{o3.init(t,e),Et.init(t,e)});function Bt(t){return iH(GH,t)}var ZH=ne("ZodNull",(t,e)=>{c3.init(t,e),Et.init(t,e)});function Hk(t){return oH(ZH,t)}var WH=ne("ZodUnknown",(t,e)=>{u3.init(t,e),Et.init(t,e)});function jt(){return cH(WH)}var KH=ne("ZodNever",(t,e)=>{l3.init(t,e),Et.init(t,e)});function XH(t){return uH(KH,t)}var JH=ne("ZodArray",(t,e)=>{d3.init(t,e),Et.init(t,e),t.element=e.element,t.min=(r,a)=>t.check(xl(r,a)),t.nonempty=r=>t.check(xl(1,r)),t.max=(r,a)=>t.check($k(r,a)),t.length=(r,a)=>t.check(Ok(r,a)),t.unwrap=()=>t.element});function Xe(t,e){return bH(JH,t,e)}var Bk=ne("ZodObject",(t,e)=>{p3.init(t,e),Et.init(t,e),ft.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>Vt(Object.keys(t._zod.def.shape)),t.catchall=r=>t.clone({...t._zod.def,catchall:r}),t.passthrough=()=>t.clone({...t._zod.def,catchall:jt()}),t.loose=()=>t.clone({...t._zod.def,catchall:jt()}),t.strict=()=>t.clone({...t._zod.def,catchall:XH()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>ft.extend(t,r),t.merge=r=>ft.merge(t,r),t.pick=r=>ft.pick(t,r),t.omit=r=>ft.omit(t,r),t.partial=(...r)=>ft.partial(Wk,t,r[0]),t.required=(...r)=>ft.required(Kk,t,r[0])});function le(t,e){let r={type:"object",get shape(){return ft.assignProp(this,"shape",{...t}),this.shape},...ft.normalizeParams(e)};return new Bk(r)}function Vr(t,e){return new Bk({type:"object",get shape(){return ft.assignProp(this,"shape",{...t}),this.shape},catchall:jt(),...ft.normalizeParams(e)})}var Vk=ne("ZodUnion",(t,e)=>{Pk.init(t,e),Et.init(t,e),t.options=e.options});function _t(t,e){return new Vk({type:"union",options:t,...ft.normalizeParams(e)})}var YH=ne("ZodDiscriminatedUnion",(t,e)=>{Vk.init(t,e),f3.init(t,e)});function Gk(t,e,r){return new YH({type:"union",options:e,discriminator:t,...ft.normalizeParams(r)})}var QH=ne("ZodIntersection",(t,e)=>{m3.init(t,e),Et.init(t,e)});function ah(t,e){return new QH({type:"intersection",left:t,right:e})}var eB=ne("ZodRecord",(t,e)=>{h3.init(t,e),Et.init(t,e),t.keyType=e.keyType,t.valueType=e.valueType});function Dt(t,e,r){return new eB({type:"record",keyType:t,valueType:e,...ft.normalizeParams(r)})}var Bm=ne("ZodEnum",(t,e)=>{v3.init(t,e),Et.init(t,e),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(a,n)=>{let s={};for(let i of a)if(r.has(i))s[i]=e.entries[i];else throw new Error(`Key ${i} not found in enum`);return new Bm({...e,checks:[],...ft.normalizeParams(n),entries:s})},t.exclude=(a,n)=>{let s={...e.entries};for(let i of a)if(r.has(i))delete s[i];else throw new Error(`Key ${i} not found in enum`);return new Bm({...e,checks:[],...ft.normalizeParams(n),entries:s})}});function Vt(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(a=>[a,a])):t;return new Bm({type:"enum",entries:r,...ft.normalizeParams(e)})}var tB=ne("ZodLiteral",(t,e)=>{g3.init(t,e),Et.init(t,e),t.values=new Set(e.values),Object.defineProperty(t,"value",{get(){if(e.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function Ee(t,e){return new tB({type:"literal",values:Array.isArray(t)?t:[t],...ft.normalizeParams(e)})}var rB=ne("ZodTransform",(t,e)=>{y3.init(t,e),Et.init(t,e),t._zod.parse=(r,a)=>{r.addIssue=s=>{if(typeof s=="string")r.issues.push(ft.issue(s,r.value,e));else{let i=s;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=r.value),i.inst??(i.inst=t),i.continue??(i.continue=!0),r.issues.push(ft.issue(i))}};let n=e.transform(r.value,r);return n instanceof Promise?n.then(s=>(r.value=s,r)):(r.value=n,r)}});function Zk(t){return new rB({type:"transform",transform:t})}var Wk=ne("ZodOptional",(t,e)=>{_3.init(t,e),Et.init(t,e),t.unwrap=()=>t._zod.def.innerType});function we(t){return new Wk({type:"optional",innerType:t})}var nB=ne("ZodNullable",(t,e)=>{b3.init(t,e),Et.init(t,e),t.unwrap=()=>t._zod.def.innerType});function ST(t){return new nB({type:"nullable",innerType:t})}var aB=ne("ZodDefault",(t,e)=>{S3.init(t,e),Et.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function sB(t,e){return new aB({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var iB=ne("ZodPrefault",(t,e)=>{x3.init(t,e),Et.init(t,e),t.unwrap=()=>t._zod.def.innerType});function oB(t,e){return new iB({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var Kk=ne("ZodNonOptional",(t,e)=>{w3.init(t,e),Et.init(t,e),t.unwrap=()=>t._zod.def.innerType});function cB(t,e){return new Kk({type:"nonoptional",innerType:t,...ft.normalizeParams(e)})}var uB=ne("ZodCatch",(t,e)=>{E3.init(t,e),Et.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function lB(t,e){return new uB({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var dB=ne("ZodPipe",(t,e)=>{T3.init(t,e),Et.init(t,e),t.in=e.in,t.out=e.out});function Vm(t,e){return new dB({type:"pipe",in:t,out:e})}var pB=ne("ZodReadonly",(t,e)=>{k3.init(t,e),Et.init(t,e)});function fB(t){return new pB({type:"readonly",innerType:t})}var Xk=ne("ZodCustom",(t,e)=>{R3.init(t,e),Et.init(t,e)});function mB(t,e){let r=new ur({check:"custom",...ft.normalizeParams(e)});return r._zod.check=t,r}function hB(t,e){return SH(Xk,t??(()=>!0),e)}function vB(t,e={}){return xH(Xk,t,e)}function gB(t,e){let r=mB(a=>(a.addIssue=n=>{if(typeof n=="string")a.issues.push(ft.issue(n,a.value,r._zod.def));else{let s=n;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=a.value),s.inst??(s.inst=r),s.continue??(s.continue=!r._zod.def.abort),a.issues.push(ft.issue(s))}},t(a.value,a)),e);return r}function Jk(t,e){return Vm(Zk(t),e)}Rn(O3());var sh="io.modelcontextprotocol/related-task",Ul="2.0",pn=hB(t=>t!==null&&(typeof t=="object"||typeof t=="function")),Yk=_t([te(),pt().int()]),Qk=te(),yB=Vr({ttl:_t([pt(),Hk()]).optional(),pollInterval:pt().optional()}),ih=Vr({taskId:te()}),_B=Vr({progressToken:Yk.optional(),[sh]:ih.optional()}),lr=Vr({task:yB.optional(),_meta:_B.optional()}),Ut=le({method:te(),params:lr.optional()}),Za=Vr({_meta:le({[sh]:we(ih)}).passthrough().optional()}),jr=le({method:te(),params:Za.optional()}),Gt=Vr({_meta:Vr({[sh]:ih.optional()}).optional()}),zl=_t([te(),pt().int()]),bB=le({jsonrpc:Ee(Ul),id:zl,...Ut.shape}).strict();var SB=le({jsonrpc:Ee(Ul),...jr.shape}).strict();var xB=le({jsonrpc:Ee(Ul),id:zl,result:Gt}).strict();var xT;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(xT||(xT={}));var wB=le({jsonrpc:Ee(Ul),id:zl,error:le({code:pt().int(),message:te(),data:we(jt())})}).strict();var pY=_t([bB,SB,xB,wB]),eR=Gt.strict(),EB=Za.extend({requestId:zl,reason:te().optional()}),tR=jr.extend({method:Ee("notifications/cancelled"),params:EB}),TB=le({src:te(),mimeType:te().optional(),sizes:Xe(te()).optional()}),Qo=le({icons:Xe(TB).optional()}),bi=le({name:te(),title:te().optional()}),rR=bi.extend({...bi.shape,...Qo.shape,version:te(),websiteUrl:te().optional()}),kB=ah(le({applyDefaults:Bt().optional()}),Dt(te(),jt())),RB=Jk(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,ah(le({form:kB.optional(),url:pn.optional()}),Dt(te(),jt()).optional())),PB=le({list:we(le({}).passthrough()),cancel:we(le({}).passthrough()),requests:we(le({sampling:we(le({createMessage:we(le({}).passthrough())}).passthrough()),elicitation:we(le({create:we(le({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),$B=le({list:we(le({}).passthrough()),cancel:we(le({}).passthrough()),requests:we(le({tools:we(le({call:we(le({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),OB=le({experimental:Dt(te(),pn).optional(),sampling:le({context:pn.optional(),tools:pn.optional()}).optional(),elicitation:RB.optional(),roots:le({listChanged:Bt().optional()}).optional(),tasks:we(PB)}),CB=lr.extend({protocolVersion:te(),capabilities:OB,clientInfo:rR}),IB=Ut.extend({method:Ee("initialize"),params:CB}),AB=le({experimental:Dt(te(),pn).optional(),logging:pn.optional(),completions:pn.optional(),prompts:we(le({listChanged:we(Bt())})),resources:le({subscribe:Bt().optional(),listChanged:Bt().optional()}).optional(),tools:le({listChanged:Bt().optional()}).optional(),tasks:we($B)}).passthrough(),NB=Gt.extend({protocolVersion:te(),capabilities:AB,serverInfo:rR,instructions:te().optional()}),MB=jr.extend({method:Ee("notifications/initialized")}),nR=Ut.extend({method:Ee("ping")}),jB=le({progress:pt(),total:we(pt()),message:we(te())}),DB=le({...Za.shape,...jB.shape,progressToken:Yk}),aR=jr.extend({method:Ee("notifications/progress"),params:DB}),LB=lr.extend({cursor:Qk.optional()}),ec=Ut.extend({params:LB.optional()}),tc=Gt.extend({nextCursor:we(Qk)}),rc=le({taskId:te(),status:Vt(["working","input_required","completed","failed","cancelled"]),ttl:_t([pt(),Hk()]),createdAt:te(),lastUpdatedAt:te(),pollInterval:we(pt()),statusMessage:we(te())}),sR=Gt.extend({task:rc}),qB=Za.merge(rc),iR=jr.extend({method:Ee("notifications/tasks/status"),params:qB}),oR=Ut.extend({method:Ee("tasks/get"),params:lr.extend({taskId:te()})}),cR=Gt.merge(rc),uR=Ut.extend({method:Ee("tasks/result"),params:lr.extend({taskId:te()})}),lR=ec.extend({method:Ee("tasks/list")}),dR=tc.extend({tasks:Xe(rc)}),fY=Ut.extend({method:Ee("tasks/cancel"),params:lr.extend({taskId:te()})}),mY=Gt.merge(rc),pR=le({uri:te(),mimeType:we(te()),_meta:Dt(te(),jt()).optional()}),fR=pR.extend({text:te()}),oh=te().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),mR=pR.extend({blob:oh}),ki=le({audience:Xe(Vt(["user","assistant"])).optional(),priority:pt().min(0).max(1).optional(),lastModified:Ck.datetime({offset:!0}).optional()}),hR=le({...bi.shape,...Qo.shape,uri:te(),description:we(te()),mimeType:we(te()),annotations:ki.optional(),_meta:we(Vr({}))}),FB=le({...bi.shape,...Qo.shape,uriTemplate:te(),description:we(te()),mimeType:we(te()),annotations:ki.optional(),_meta:we(Vr({}))}),UB=ec.extend({method:Ee("resources/list")}),zB=tc.extend({resources:Xe(hR)}),HB=ec.extend({method:Ee("resources/templates/list")}),BB=tc.extend({resourceTemplates:Xe(FB)}),ch=lr.extend({uri:te()}),VB=ch,GB=Ut.extend({method:Ee("resources/read"),params:VB}),ZB=Gt.extend({contents:Xe(_t([fR,mR]))}),WB=jr.extend({method:Ee("notifications/resources/list_changed")}),KB=ch,XB=Ut.extend({method:Ee("resources/subscribe"),params:KB}),JB=ch,YB=Ut.extend({method:Ee("resources/unsubscribe"),params:JB}),QB=Za.extend({uri:te()}),e7=jr.extend({method:Ee("notifications/resources/updated"),params:QB}),t7=le({name:te(),description:we(te()),required:we(Bt())}),r7=le({...bi.shape,...Qo.shape,description:we(te()),arguments:we(Xe(t7)),_meta:we(Vr({}))}),n7=ec.extend({method:Ee("prompts/list")}),a7=tc.extend({prompts:Xe(r7)}),s7=lr.extend({name:te(),arguments:Dt(te(),te()).optional()}),i7=Ut.extend({method:Ee("prompts/get"),params:s7}),uh=le({type:Ee("text"),text:te(),annotations:ki.optional(),_meta:Dt(te(),jt()).optional()}),lh=le({type:Ee("image"),data:oh,mimeType:te(),annotations:ki.optional(),_meta:Dt(te(),jt()).optional()}),dh=le({type:Ee("audio"),data:oh,mimeType:te(),annotations:ki.optional(),_meta:Dt(te(),jt()).optional()}),o7=le({type:Ee("tool_use"),name:te(),id:te(),input:le({}).passthrough(),_meta:we(le({}).passthrough())}).passthrough(),c7=le({type:Ee("resource"),resource:_t([fR,mR]),annotations:ki.optional(),_meta:Dt(te(),jt()).optional()}),u7=hR.extend({type:Ee("resource_link")}),ph=_t([uh,lh,dh,u7,c7]),l7=le({role:Vt(["user","assistant"]),content:ph}),d7=Gt.extend({description:we(te()),messages:Xe(l7)}),p7=jr.extend({method:Ee("notifications/prompts/list_changed")}),f7=le({title:te().optional(),readOnlyHint:Bt().optional(),destructiveHint:Bt().optional(),idempotentHint:Bt().optional(),openWorldHint:Bt().optional()}),m7=le({taskSupport:Vt(["required","optional","forbidden"]).optional()}),vR=le({...bi.shape,...Qo.shape,description:te().optional(),inputSchema:le({type:Ee("object"),properties:Dt(te(),pn).optional(),required:Xe(te()).optional()}).catchall(jt()),outputSchema:le({type:Ee("object"),properties:Dt(te(),pn).optional(),required:Xe(te()).optional()}).catchall(jt()).optional(),annotations:we(f7),execution:we(m7),_meta:Dt(te(),jt()).optional()}),h7=ec.extend({method:Ee("tools/list")}),v7=tc.extend({tools:Xe(vR)}),gR=Gt.extend({content:Xe(ph).default([]),structuredContent:Dt(te(),jt()).optional(),isError:we(Bt())}),hY=gR.or(Gt.extend({toolResult:jt()})),g7=lr.extend({name:te(),arguments:we(Dt(te(),jt()))}),y7=Ut.extend({method:Ee("tools/call"),params:g7}),_7=jr.extend({method:Ee("notifications/tools/list_changed")}),yR=Vt(["debug","info","notice","warning","error","critical","alert","emergency"]),b7=lr.extend({level:yR}),S7=Ut.extend({method:Ee("logging/setLevel"),params:b7}),x7=Za.extend({level:yR,logger:te().optional(),data:jt()}),w7=jr.extend({method:Ee("notifications/message"),params:x7}),E7=le({name:te().optional()}),T7=le({hints:we(Xe(E7)),costPriority:we(pt().min(0).max(1)),speedPriority:we(pt().min(0).max(1)),intelligencePriority:we(pt().min(0).max(1))}),k7=le({mode:we(Vt(["auto","required","none"]))}),R7=le({type:Ee("tool_result"),toolUseId:te().describe("The unique identifier for the corresponding tool call."),content:Xe(ph).default([]),structuredContent:le({}).passthrough().optional(),isError:we(Bt()),_meta:we(le({}).passthrough())}).passthrough(),P7=Gk("type",[uh,lh,dh]),wl=Gk("type",[uh,lh,dh,o7,R7]),$7=le({role:Vt(["user","assistant"]),content:_t([wl,Xe(wl)]),_meta:we(le({}).passthrough())}).passthrough(),O7=lr.extend({messages:Xe($7),modelPreferences:T7.optional(),systemPrompt:te().optional(),includeContext:Vt(["none","thisServer","allServers"]).optional(),temperature:pt().optional(),maxTokens:pt().int(),stopSequences:Xe(te()).optional(),metadata:pn.optional(),tools:we(Xe(vR)),toolChoice:we(k7)}),C7=Ut.extend({method:Ee("sampling/createMessage"),params:O7}),I7=Gt.extend({model:te(),stopReason:we(Vt(["endTurn","stopSequence","maxTokens"]).or(te())),role:Vt(["user","assistant"]),content:P7}),A7=Gt.extend({model:te(),stopReason:we(Vt(["endTurn","stopSequence","maxTokens","toolUse"]).or(te())),role:Vt(["user","assistant"]),content:_t([wl,Xe(wl)])}),N7=le({type:Ee("boolean"),title:te().optional(),description:te().optional(),default:Bt().optional()}),M7=le({type:Ee("string"),title:te().optional(),description:te().optional(),minLength:pt().optional(),maxLength:pt().optional(),format:Vt(["email","uri","date","date-time"]).optional(),default:te().optional()}),j7=le({type:Vt(["number","integer"]),title:te().optional(),description:te().optional(),minimum:pt().optional(),maximum:pt().optional(),default:pt().optional()}),D7=le({type:Ee("string"),title:te().optional(),description:te().optional(),enum:Xe(te()),default:te().optional()}),L7=le({type:Ee("string"),title:te().optional(),description:te().optional(),oneOf:Xe(le({const:te(),title:te()})),default:te().optional()}),q7=le({type:Ee("string"),title:te().optional(),description:te().optional(),enum:Xe(te()),enumNames:Xe(te()).optional(),default:te().optional()}),F7=_t([D7,L7]),U7=le({type:Ee("array"),title:te().optional(),description:te().optional(),minItems:pt().optional(),maxItems:pt().optional(),items:le({type:Ee("string"),enum:Xe(te())}),default:Xe(te()).optional()}),z7=le({type:Ee("array"),title:te().optional(),description:te().optional(),minItems:pt().optional(),maxItems:pt().optional(),items:le({anyOf:Xe(le({const:te(),title:te()}))}),default:Xe(te()).optional()}),H7=_t([U7,z7]),B7=_t([q7,F7,H7]),V7=_t([B7,N7,M7,j7]),G7=lr.extend({mode:Ee("form").optional(),message:te(),requestedSchema:le({type:Ee("object"),properties:Dt(te(),V7),required:Xe(te()).optional()})}),Z7=lr.extend({mode:Ee("url"),message:te(),elicitationId:te(),url:te().url()}),W7=_t([G7,Z7]),K7=Ut.extend({method:Ee("elicitation/create"),params:W7}),X7=Za.extend({elicitationId:te()}),J7=jr.extend({method:Ee("notifications/elicitation/complete"),params:X7}),Y7=Gt.extend({action:Vt(["accept","decline","cancel"]),content:Jk(t=>t===null?void 0:t,Dt(te(),_t([te(),pt(),Bt(),Xe(te())])).optional())}),Q7=le({type:Ee("ref/resource"),uri:te()}),eV=le({type:Ee("ref/prompt"),name:te()}),tV=lr.extend({ref:_t([eV,Q7]),argument:le({name:te(),value:te()}),context:le({arguments:Dt(te(),te()).optional()}).optional()}),rV=Ut.extend({method:Ee("completion/complete"),params:tV});var nV=Gt.extend({completion:Vr({values:Xe(te()).max(100),total:we(pt().int()),hasMore:we(Bt())})}),aV=le({uri:te().startsWith("file://"),name:te().optional(),_meta:Dt(te(),jt()).optional()}),sV=Ut.extend({method:Ee("roots/list")}),iV=Gt.extend({roots:Xe(aV)}),oV=jr.extend({method:Ee("notifications/roots/list_changed")}),vY=_t([nR,IB,rV,S7,i7,n7,UB,HB,GB,XB,YB,y7,h7,oR,uR,lR]),gY=_t([tR,aR,MB,oV,iR]),yY=_t([eR,I7,A7,Y7,iV,cR,dR,sR]),_Y=_t([nR,C7,K7,sV,oR,uR,lR]),bY=_t([tR,aR,w7,e7,WB,_7,p7,iR,J7]),SY=_t([eR,NB,nV,d7,a7,zB,BB,ZB,gR,v7,cR,dR,sR]);var xY=Symbol("Let zodToJsonSchema decide on which parser to use");var wY=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");var EY=ET(Zq(),1),TY=ET(U6(),1);var kY=Symbol.for("mcp.completable");var wT;(function(t){t.Completable="McpCompletable"})(wT||(wT={}));function _R({prompt:t,options:e}){let{systemPrompt:r,settingSources:a,sandbox:n,...s}=e??{},i,o;r===void 0?i="":typeof r=="string"?i=r:r.type==="preset"&&(o=r.append);let c=s.pathToClaudeCodeExecutable;if(!c){let Z=(0,DT.fileURLToPath)(cV.url),ee=(0,km.join)(Z,"..");c=(0,km.join)(ee,"cli.js")}process.env.CLAUDE_AGENT_SDK_VERSION="0.1.75";let{abortController:u=qT(),additionalDirectories:l=[],agents:d,allowedTools:p=[],betas:f,canUseTool:v,continue:_,cwd:m,disallowedTools:h=[],tools:y,env:g,executable:b=tk()?"bun":"node",executableArgs:w=[],extraArgs:S={},fallbackModel:E,enableFileCheckpointing:T,forkSession:R,hooks:M,includePartialMessages:j,persistSession:q,maxThinkingTokens:H,maxTurns:N,maxBudgetUsd:W,mcpServers:oe,model:he,outputFormat:ae,permissionMode:re="default",allowDangerouslySkipPermissions:U=!1,permissionPromptToolName:$,plugins:z,resume:A,resumeSessionAt:x,stderr:k,strictMcpConfig:D}=s,K=ae?.type==="json_schema"?ae.schema:void 0,J=g;if(J||(J={...process.env}),J.CLAUDE_CODE_ENTRYPOINT||(J.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),T&&(J.CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING="true"),!c)throw new Error("pathToClaudeCodeExecutable is required");let de={},se=new Map;if(oe)for(let[Z,ee]of Object.entries(oe))ee.type==="sdk"&&"instance"in ee?(se.set(Z,ee.instance),de[Z]={type:"sdk",name:Z}):de[Z]=ee;let me=typeof t=="string",C=new Pm({abortController:u,additionalDirectories:l,betas:f,cwd:m,executable:b,executableArgs:w,extraArgs:S,pathToClaudeCodeExecutable:c,env:J,forkSession:R,stderr:k,maxThinkingTokens:H,maxTurns:N,maxBudgetUsd:W,model:he,fallbackModel:E,jsonSchema:K,permissionMode:re,allowDangerouslySkipPermissions:U,permissionPromptToolName:$,continueConversation:_,resume:A,resumeSessionAt:x,settingSources:a??[],allowedTools:p,disallowedTools:h,tools:y,mcpServers:de,strictMcpConfig:D,canUseTool:!!v,hooks:!!M,includePartialMessages:j,persistSession:q,plugins:z,sandbox:n,spawnClaudeCodeProcess:s.spawnClaudeCodeProcess}),I={systemPrompt:i,appendSystemPrompt:o,agents:d},F=new Cm(C,me,v,M,u,se,K,I);return typeof t=="string"?C.write(JSON.stringify({type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:t}]},parent_tool_use_id:null})+` -`):F.streamInput(t),F}var Hl=class{dbManager;sessionManager;constructor(e,r){this.dbManager=e,this.sessionManager=r}async startSession(e,r){let a=this.findClaudeExecutable(),n=this.getModelId(),s=["Bash","Read","Write","Edit","Grep","Glob","WebFetch","WebSearch","Task","NotebookEdit","AskUserQuestion","TodoWrite"],i=this.createMessageGenerator(e),o=!!e.memorySessionId;P.info("SDK","Starting SDK query",{sessionDbId:e.sessionDbId,contentSessionId:e.contentSessionId,memorySessionId:e.memorySessionId,hasRealMemorySessionId:o,resume_parameter:o?e.memorySessionId:"(none - fresh start)",lastPromptNumber:e.lastPromptNumber}),e.lastPromptNumber>1?P.info("SDK",`[ALIGNMENT] Resume Decision | contentSessionId=${e.contentSessionId} | memorySessionId=${e.memorySessionId} | prompt#=${e.lastPromptNumber} | hasRealMemorySessionId=${o} | resumeWith=${o?e.memorySessionId:"NONE (fresh SDK session)"}`):P.info("SDK",`[ALIGNMENT] First Prompt | contentSessionId=${e.contentSessionId} | prompt#=${e.lastPromptNumber} | Will capture memorySessionId from first SDK response`);let c=_R({prompt:i,options:{model:n,...o&&{resume:e.memorySessionId},disallowedTools:s,abortController:e.abortController,pathToClaudeCodeExecutable:a}});for await(let l of c){if(!e.memorySessionId&&l.session_id&&(e.memorySessionId=l.session_id,this.dbManager.getSessionStore().updateMemorySessionId(e.sessionDbId,l.session_id),P.info("SDK","Captured memory session ID",{sessionDbId:e.sessionDbId,memorySessionId:l.session_id}),P.info("SDK",`[ALIGNMENT] Captured | contentSessionId=${e.contentSessionId} \u2192 memorySessionId=${l.session_id} | Future prompts will resume with this ID`)),l.type==="assistant"){let d=l.message.content,p=Array.isArray(d)?d.filter(y=>y.type==="text").map(y=>y.text).join(` -`):typeof d=="string"?d:"",f=p.length,v=e.cumulativeInputTokens+e.cumulativeOutputTokens,_=l.message.usage;_&&(e.cumulativeInputTokens+=_.input_tokens||0,e.cumulativeOutputTokens+=_.output_tokens||0,_.cache_creation_input_tokens&&(e.cumulativeInputTokens+=_.cache_creation_input_tokens),P.debug("SDK","Token usage captured",{sessionId:e.sessionDbId,inputTokens:_.input_tokens,outputTokens:_.output_tokens,cacheCreation:_.cache_creation_input_tokens||0,cacheRead:_.cache_read_input_tokens||0,cumulativeInput:e.cumulativeInputTokens,cumulativeOutput:e.cumulativeOutputTokens}));let m=e.cumulativeInputTokens+e.cumulativeOutputTokens-v,h=e.earliestPendingTimestamp;if(f>0){let y=f>100?p.substring(0,100)+"...":p;P.dataOut("SDK",`Response received (${f} chars)`,{sessionId:e.sessionDbId,promptNumber:e.lastPromptNumber},y)}await this.processSDKResponse(e,p,r,m,h)}l.type==="result"&&l.subtype}let u=Date.now()-e.startTime;P.success("SDK","Agent completed",{sessionId:e.sessionDbId,duration:`${(u/1e3).toFixed(1)}s`})}async*createMessageGenerator(e){let r=dt.getInstance().getActiveMode(),a=e.lastPromptNumber===1;P.info("SDK","Creating message generator",{sessionDbId:e.sessionDbId,contentSessionId:e.contentSessionId,lastPromptNumber:e.lastPromptNumber,isInitPrompt:a,promptType:a?"INIT":"CONTINUATION"});let n=a?ei(e.project,e.contentSessionId,e.userPrompt,r):ni(e.userPrompt,e.lastPromptNumber,e.contentSessionId,r);e.conversationHistory.push({role:"user",content:n}),yield{type:"user",message:{role:"user",content:n},session_id:e.contentSessionId,parent_tool_use_id:null,isSynthetic:!0};for await(let s of this.sessionManager.getMessageIterator(e.sessionDbId))if(s.type==="observation"){s.prompt_number!==void 0&&(e.lastPromptNumber=s.prompt_number);let i=ti({id:0,tool_name:s.tool_name,tool_input:JSON.stringify(s.tool_input),tool_output:JSON.stringify(s.tool_response),created_at_epoch:Date.now(),cwd:s.cwd});e.conversationHistory.push({role:"user",content:i}),yield{type:"user",message:{role:"user",content:i},session_id:e.contentSessionId,parent_tool_use_id:null,isSynthetic:!0}}else if(s.type==="summarize"){let i=ri({id:e.sessionDbId,memory_session_id:e.memorySessionId,project:e.project,user_prompt:e.userPrompt,last_assistant_message:s.last_assistant_message||""},r);e.conversationHistory.push({role:"user",content:i}),yield{type:"user",message:{role:"user",content:i},session_id:e.contentSessionId,parent_tool_use_id:null,isSynthetic:!0}}}async processSDKResponse(e,r,a,n,s){r&&e.conversationHistory.push({role:"assistant",content:r});let i=Ys(r,e.contentSessionId),o=Qs(r,e.sessionDbId),c=this.sessionManager.getPendingMessageStore(),u=this.dbManager.getSessionStore();if(e.pendingProcessingIds.size>0){for(let d of e.pendingProcessingIds){if(!e.memorySessionId)throw new Error("Cannot store observations: memorySessionId not yet captured");let p=u.storeObservationsAndMarkComplete(e.memorySessionId,e.project,i,o||null,d,c,e.lastPromptNumber,n,s??void 0);P.info("SDK","Observations and summary saved atomically",{sessionId:e.sessionDbId,messageId:d,observationCount:p.observationIds.length,hasSummary:!!p.summaryId,atomicTransaction:!0});for(let f=0;f{let h=Date.now()-m;P.debug("CHROMA","Observation synced",{obsId:v,duration:`${h}ms`,type:_.type,title:_.title||"(untitled)"})}).catch(h=>{P.warn("CHROMA","Observation sync failed, continuing without vector search",{obsId:v,type:_.type,title:_.title||"(untitled)"},h)}),a&&a.sseBroadcaster&&a.sseBroadcaster.broadcast({type:"new_observation",observation:{id:v,memory_session_id:e.memorySessionId,session_id:e.contentSessionId,type:_.type,title:_.title,subtitle:_.subtitle,text:_.text||null,narrative:_.narrative||null,facts:JSON.stringify(_.facts||[]),concepts:JSON.stringify(_.concepts||[]),files_read:JSON.stringify(_.files||[]),files_modified:JSON.stringify([]),project:e.project,prompt_number:e.lastPromptNumber,created_at_epoch:p.createdAtEpoch}})}if(o&&p.summaryId){let f=Date.now();this.dbManager.getChromaSync().syncSummary(p.summaryId,e.contentSessionId,e.project,o,e.lastPromptNumber,p.createdAtEpoch,n).then(()=>{let v=Date.now()-f;P.debug("CHROMA","Summary synced",{summaryId:p.summaryId,duration:`${v}ms`,request:o.request||"(no request)"})}).catch(v=>{P.warn("CHROMA","Summary sync failed, continuing without vector search",{summaryId:p.summaryId,request:o.request||"(no request)"},v)}),a&&a.sseBroadcaster&&a.sseBroadcaster.broadcast({type:"new_summary",summary:{id:p.summaryId,session_id:e.contentSessionId,request:o.request,investigated:o.investigated,learned:o.learned,completed:o.completed,next_steps:o.next_steps,notes:o.notes,project:e.project,prompt_number:e.lastPromptNumber,created_at_epoch:p.createdAtEpoch}}),Wa(e.project,Xt()).catch(v=>{P.warn("CURSOR","Context update failed (non-critical)",{project:e.project},v)})}}e.pendingProcessingIds.clear(),e.earliestPendingTimestamp=null;let l=c.cleanupProcessed(100);l>0&&P.debug("SDK","Cleaned up old processed messages",{deletedCount:l}),a&&typeof a.broadcastProcessingStatus=="function"&&a.broadcastProcessingStatus()}}findClaudeExecutable(){let e=Be.loadFromFile(Ar);if(e.CLAUDE_CODE_PATH){let{existsSync:r}=require("fs");if(!r(e.CLAUDE_CODE_PATH))throw new Error(`CLAUDE_CODE_PATH is set to "${e.CLAUDE_CODE_PATH}" but the file does not exist.`);return e.CLAUDE_CODE_PATH}try{let r=(0,bR.execSync)(process.platform==="win32"?"where claude":"which claude",{encoding:"utf8",windowsHide:!0,stdio:["ignore","pipe","ignore"]}).trim().split(` -`)[0].trim();if(r)return r}catch(r){P.debug("SDK","Claude executable auto-detection failed",{},r)}throw new Error(`Claude executable not found. Please either: + path: iss.path ? [${ec(v)}, ...iss.path] : [${ec(v)}] + })));`),p.write(`newResult[${ec(v)}] = ${g}.value`)}p.write("payload.value = newResult;"),p.write("return payload;");let m=p.compile();return(v,g)=>m(d,v,g)},i,a=yd,o=!v$.jitless,c=o&&z2.value,u=e.catchall,l;t._zod.parse=(d,p)=>{l??(l=r.value);let f=d.value;if(!a(f))return d.issues.push({expected:"object",code:"invalid_type",input:f,inst:t}),d;let h=[];if(o&&c&&p?.async===!1&&p.jitless!==!0)i||(i=n(e.shape)),d=i(d,p);else{d.value={};let g=l.shape;for(let b of l.keys){let S=g[b],x=S._zod.run({value:f[b],issues:[]},p),w=S._zod.optin==="optional"&&S._zod.optout==="optional";x instanceof Promise?h.push(x.then(E=>w?A4(E,d,b,f):Sh(E,d,b))):w?A4(x,d,b,f):Sh(x,d,b)}}if(!u)return h.length?Promise.all(h).then(()=>d):d;let _=[],y=l.keySet,m=u._zod,v=m.def.type;for(let g of Object.keys(f)){if(y.has(g))continue;if(v==="never"){_.push(g);continue}let b=m.run({value:f[g],issues:[]},p);b instanceof Promise?h.push(b.then(S=>Sh(S,d,g))):Sh(b,d,g)}return _.length&&d.issues.push({code:"unrecognized_keys",keys:_,input:f,inst:t}),h.length?Promise.all(h).then(()=>d):d}});function M4(t,e,r,n){for(let i of t)if(i.issues.length===0)return e.value=i.value,e;return e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(i=>i.issues.map(a=>Li(a,n,qi())))}),e}var r6=X("$ZodUnion",(t,e)=>{Ut.init(t,e),zt(t._zod,"optin",()=>e.options.some(r=>r._zod.optin==="optional")?"optional":void 0),zt(t._zod,"optout",()=>e.options.some(r=>r._zod.optout==="optional")?"optional":void 0),zt(t._zod,"values",()=>{if(e.options.every(r=>r._zod.values))return new Set(e.options.flatMap(r=>Array.from(r._zod.values)))}),zt(t._zod,"pattern",()=>{if(e.options.every(r=>r._zod.pattern)){let r=e.options.map(n=>n._zod.pattern);return new RegExp(`^(${r.map(n=>Wh(n.source)).join("|")})$`)}}),t._zod.parse=(r,n)=>{let i=!1,a=[];for(let o of e.options){let s=o._zod.run({value:r.value,issues:[]},n);if(s instanceof Promise)a.push(s),i=!0;else{if(s.issues.length===0)return s;a.push(s)}}return i?Promise.all(a).then(o=>M4(o,r,t,n)):M4(a,r,t,n)}}),uue=X("$ZodDiscriminatedUnion",(t,e)=>{r6.init(t,e);let r=t._zod.parse;zt(t._zod,"propValues",()=>{let i={};for(let a of e.options){let o=a._zod.propValues;if(!o||Object.keys(o).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(a)}"`);for(let[s,c]of Object.entries(o)){i[s]||(i[s]=new Set);for(let u of c)i[s].add(u)}}return i});let n=Vh(()=>{let i=e.options,a=new Map;for(let o of i){let s=o._zod.propValues[e.discriminator];if(!s||s.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(o)}"`);for(let c of s){if(a.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);a.set(c,o)}}return a});t._zod.parse=(i,a)=>{let o=i.value;if(!yd(o))return i.issues.push({code:"invalid_type",expected:"object",input:o,inst:t}),i;let s=n.value.get(o?.[e.discriminator]);return s?s._zod.run(i,a):e.unionFallback?r(i,a):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:o,path:[e.discriminator],inst:t}),i)}}),lue=X("$ZodIntersection",(t,e)=>{Ut.init(t,e),t._zod.parse=(r,n)=>{let i=r.value,a=e.left._zod.run({value:i,issues:[]},n),o=e.right._zod.run({value:i,issues:[]},n);return a instanceof Promise||o instanceof Promise?Promise.all([a,o]).then(([c,u])=>D4(r,c,u)):D4(r,a,o)}});function x$(t,e){if(t===e)return{valid:!0,data:t};if(t instanceof Date&&e instanceof Date&&+t==+e)return{valid:!0,data:t};if(_d(t)&&_d(e)){let r=Object.keys(e),n=Object.keys(t).filter(a=>r.indexOf(a)!==-1),i={...t,...e};for(let a of n){let o=x$(t[a],e[a]);if(!o.valid)return{valid:!1,mergeErrorPath:[a,...o.mergeErrorPath]};i[a]=o.data}return{valid:!0,data:i}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;n{Ut.init(t,e),t._zod.parse=(r,n)=>{let i=r.value;if(!_d(i))return r.issues.push({expected:"record",code:"invalid_type",input:i,inst:t}),r;let a=[];if(e.keyType._zod.values){let o=e.keyType._zod.values;r.value={};for(let c of o)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let u=e.valueType._zod.run({value:i[c],issues:[]},n);u instanceof Promise?a.push(u.then(l=>{l.issues.length&&r.issues.push(...ba(c,l.issues)),r.value[c]=l.value})):(u.issues.length&&r.issues.push(...ba(c,u.issues)),r.value[c]=u.value)}let s;for(let c in i)o.has(c)||(s=s??[],s.push(c));s&&s.length>0&&r.issues.push({code:"unrecognized_keys",input:i,inst:t,keys:s})}else{r.value={};for(let o of Reflect.ownKeys(i)){if(o==="__proto__")continue;let s=e.keyType._zod.run({value:o,issues:[]},n);if(s instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(s.issues.length){r.issues.push({origin:"record",code:"invalid_key",issues:s.issues.map(u=>Li(u,n,qi())),input:o,path:[o],inst:t}),r.value[s.value]=s.value;continue}let c=e.valueType._zod.run({value:i[o],issues:[]},n);c instanceof Promise?a.push(c.then(u=>{u.issues.length&&r.issues.push(...ba(o,u.issues)),r.value[s.value]=u.value})):(c.issues.length&&r.issues.push(...ba(o,c.issues)),r.value[s.value]=c.value)}}return a.length?Promise.all(a).then(()=>r):r}}),pue=X("$ZodEnum",(t,e)=>{Ut.init(t,e);let r=A2(e.entries);t._zod.values=new Set(r),t._zod.pattern=new RegExp(`^(${r.filter(n=>U2.has(typeof n)).map(n=>typeof n=="string"?bc(n):n.toString()).join("|")})$`),t._zod.parse=(n,i)=>{let a=n.value;return t._zod.values.has(a)||n.issues.push({code:"invalid_value",values:r,input:a,inst:t}),n}}),fue=X("$ZodLiteral",(t,e)=>{Ut.init(t,e),t._zod.values=new Set(e.values),t._zod.pattern=new RegExp(`^(${e.values.map(r=>typeof r=="string"?bc(r):r?r.toString():String(r)).join("|")})$`),t._zod.parse=(r,n)=>{let i=r.value;return t._zod.values.has(i)||r.issues.push({code:"invalid_value",values:e.values,input:i,inst:t}),r}}),mue=X("$ZodTransform",(t,e)=>{Ut.init(t,e),t._zod.parse=(r,n)=>{let i=e.transform(r.value,r);if(n.async)return(i instanceof Promise?i:Promise.resolve(i)).then(o=>(r.value=o,r));if(i instanceof Promise)throw new yo;return r.value=i,r}}),hue=X("$ZodOptional",(t,e)=>{Ut.init(t,e),t._zod.optin="optional",t._zod.optout="optional",zt(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),zt(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Wh(r.source)})?$`):void 0}),t._zod.parse=(r,n)=>e.innerType._zod.optin==="optional"?e.innerType._zod.run(r,n):r.value===void 0?r:e.innerType._zod.run(r,n)}),gue=X("$ZodNullable",(t,e)=>{Ut.init(t,e),zt(t._zod,"optin",()=>e.innerType._zod.optin),zt(t._zod,"optout",()=>e.innerType._zod.optout),zt(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Wh(r.source)}|null)$`):void 0}),zt(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,n)=>r.value===null?r:e.innerType._zod.run(r,n)}),vue=X("$ZodDefault",(t,e)=>{Ut.init(t,e),t._zod.optin="optional",zt(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(r.value===void 0)return r.value=e.defaultValue,r;let i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(a=>z4(a,e)):z4(i,e)}});function z4(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var yue=X("$ZodPrefault",(t,e)=>{Ut.init(t,e),t._zod.optin="optional",zt(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>(r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,n))}),_ue=X("$ZodNonOptional",(t,e)=>{Ut.init(t,e),zt(t._zod,"values",()=>{let r=e.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),t._zod.parse=(r,n)=>{let i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(a=>U4(a,t)):U4(i,t)}});function U4(t,e){return!t.issues.length&&t.value===void 0&&t.issues.push({code:"invalid_type",expected:"nonoptional",input:t.value,inst:e}),t}var bue=X("$ZodCatch",(t,e)=>{Ut.init(t,e),t._zod.optin="optional",zt(t._zod,"optout",()=>e.innerType._zod.optout),zt(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{let i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(a=>(r.value=a.value,a.issues.length&&(r.value=e.catchValue({...r,error:{issues:a.issues.map(o=>Li(o,n,qi()))},input:r.value}),r.issues=[]),r)):(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(a=>Li(a,n,qi()))},input:r.value}),r.issues=[]),r)}}),xue=X("$ZodPipe",(t,e)=>{Ut.init(t,e),zt(t._zod,"values",()=>e.in._zod.values),zt(t._zod,"optin",()=>e.in._zod.optin),zt(t._zod,"optout",()=>e.out._zod.optout),t._zod.parse=(r,n)=>{let i=e.in._zod.run(r,n);return i instanceof Promise?i.then(a=>q4(a,e,n)):q4(i,e,n)}});function q4(t,e,r){return tc(t)?t:e.out._zod.run({value:t.value,issues:t.issues},r)}var Sue=X("$ZodReadonly",(t,e)=>{Ut.init(t,e),zt(t._zod,"propValues",()=>e.innerType._zod.propValues),zt(t._zod,"values",()=>e.innerType._zod.values),zt(t._zod,"optin",()=>e.innerType._zod.optin),zt(t._zod,"optout",()=>e.innerType._zod.optout),t._zod.parse=(r,n)=>{let i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(L4):L4(i)}});function L4(t){return t.value=Object.freeze(t.value),t}var wue=X("$ZodCustom",(t,e)=>{Kr.init(t,e),Ut.init(t,e),t._zod.parse=(r,n)=>r,t._zod.check=r=>{let n=r.value,i=e.fn(n);if(i instanceof Promise)return i.then(a=>F4(a,r,n,t));F4(i,r,n,t)}});function F4(t,e,r,n){if(!t){let i={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(i.params=n._zod.def.params),e.issues.push(F2(i))}}var $ue=t=>{let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"NaN":"number";case"object":{if(Array.isArray(t))return"array";if(t===null)return"null";if(Object.getPrototypeOf(t)!==Object.prototype&&t.constructor)return t.constructor.name}}return e},Eue=()=>{let t={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function e(n){return t[n]??null}let r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return n=>{switch(n.code){case"invalid_type":return`Invalid input: expected ${n.expected}, received ${$ue(n.input)}`;case"invalid_value":return n.values.length===1?`Invalid input: expected ${A$(n.values[0])}`:`Invalid option: expected one of ${y$(n.values,"|")}`;case"too_big":{let i=n.inclusive?"<=":"<",a=e(n.origin);return a?`Too big: expected ${n.origin??"value"} to have ${i}${n.maximum.toString()} ${a.unit??"elements"}`:`Too big: expected ${n.origin??"value"} to be ${i}${n.maximum.toString()}`}case"too_small":{let i=n.inclusive?">=":">",a=e(n.origin);return a?`Too small: expected ${n.origin} to have ${i}${n.minimum.toString()} ${a.unit}`:`Too small: expected ${n.origin} to be ${i}${n.minimum.toString()}`}case"invalid_format":{let i=n;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${r[i.format]??n.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${n.divisor}`;case"unrecognized_keys":return`Unrecognized key${n.keys.length>1?"s":""}: ${y$(n.keys,", ")}`;case"invalid_key":return`Invalid key in ${n.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${n.origin}`;default:return"Invalid input"}}};function kue(){return{localeError:Eue()}}var H1e=Symbol("ZodOutput"),B1e=Symbol("ZodInput"),S$=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...r){let n=r[0];if(this._map.set(e,n),n&&typeof n=="object"&&"id"in n){if(this._idmap.has(n.id))throw new Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,e)}return this}remove(e){return this._map.delete(e),this}get(e){let r=e._zod.parent;if(r){let n={...this.get(r)??{}};return delete n.id,{...n,...this._map.get(e)}}return this._map.get(e)}has(e){return this._map.has(e)}};function Tue(){return new S$}var wh=Tue();function Iue(t,e){return new t({type:"string",...ke(e)})}function Pue(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...ke(e)})}function Z4(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...ke(e)})}function Rue(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...ke(e)})}function Oue(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...ke(e)})}function Cue(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...ke(e)})}function Nue(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...ke(e)})}function jue(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...ke(e)})}function Aue(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...ke(e)})}function Mue(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...ke(e)})}function Due(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...ke(e)})}function zue(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...ke(e)})}function Uue(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...ke(e)})}function que(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...ke(e)})}function Lue(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...ke(e)})}function Fue(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...ke(e)})}function Zue(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...ke(e)})}function Hue(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...ke(e)})}function Bue(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...ke(e)})}function Vue(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...ke(e)})}function Gue(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...ke(e)})}function Wue(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...ke(e)})}function Kue(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...ke(e)})}function Jue(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...ke(e)})}function Xue(t,e){return new t({type:"string",format:"date",check:"string_format",...ke(e)})}function Yue(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...ke(e)})}function Que(t,e){return new t({type:"string",format:"duration",check:"string_format",...ke(e)})}function ele(t,e){return new t({type:"number",checks:[],...ke(e)})}function tle(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...ke(e)})}function rle(t,e){return new t({type:"boolean",...ke(e)})}function nle(t,e){return new t({type:"null",...ke(e)})}function ile(t){return new t({type:"unknown"})}function ale(t,e){return new t({type:"never",...ke(e)})}function H4(t,e){return new Y2({check:"less_than",...ke(e),value:t,inclusive:!1})}function r$(t,e){return new Y2({check:"less_than",...ke(e),value:t,inclusive:!0})}function B4(t,e){return new Q2({check:"greater_than",...ke(e),value:t,inclusive:!1})}function n$(t,e){return new Q2({check:"greater_than",...ke(e),value:t,inclusive:!0})}function V4(t,e){return new yce({check:"multiple_of",...ke(e),value:t})}function n6(t,e){return new bce({check:"max_length",...ke(e),maximum:t})}function Nh(t,e){return new xce({check:"min_length",...ke(e),minimum:t})}function i6(t,e){return new Sce({check:"length_equals",...ke(e),length:t})}function ole(t,e){return new wce({check:"string_format",format:"regex",...ke(e),pattern:t})}function sle(t){return new $ce({check:"string_format",format:"lowercase",...ke(t)})}function cle(t){return new Ece({check:"string_format",format:"uppercase",...ke(t)})}function ule(t,e){return new kce({check:"string_format",format:"includes",...ke(e),includes:t})}function lle(t,e){return new Tce({check:"string_format",format:"starts_with",...ke(e),prefix:t})}function dle(t,e){return new Ice({check:"string_format",format:"ends_with",...ke(e),suffix:t})}function xd(t){return new Pce({check:"overwrite",tx:t})}function ple(t){return xd(e=>e.normalize(t))}function fle(){return xd(t=>t.trim())}function mle(){return xd(t=>t.toLowerCase())}function hle(){return xd(t=>t.toUpperCase())}function gle(t,e,r){return new t({type:"array",element:e,...ke(r)})}function vle(t,e,r){let n=ke(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function yle(t,e,r){return new t({type:"custom",check:"custom",fn:e,...ke(r)})}var a6={};Q4(a6,{time:()=>d6,duration:()=>f6,datetime:()=>s6,date:()=>u6,ZodISOTime:()=>l6,ZodISODuration:()=>p6,ZodISODateTime:()=>o6,ZodISODate:()=>c6});var o6=X("ZodISODateTime",(t,e)=>{Fce.init(t,e),Vt.init(t,e)});function s6(t){return Jue(o6,t)}var c6=X("ZodISODate",(t,e)=>{Zce.init(t,e),Vt.init(t,e)});function u6(t){return Xue(c6,t)}var l6=X("ZodISOTime",(t,e)=>{Hce.init(t,e),Vt.init(t,e)});function d6(t){return Yue(l6,t)}var p6=X("ZodISODuration",(t,e)=>{Bce.init(t,e),Vt.init(t,e)});function f6(t){return Que(p6,t)}var m6=(t,e)=>{H2.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>Use(t,r)},flatten:{value:r=>zse(t,r)},addIssue:{value:r=>t.issues.push(r)},addIssues:{value:r=>t.issues.push(...r)},isEmpty:{get(){return t.issues.length===0}}})},V1e=X("ZodError",m6),Xh=X("ZodError",m6,{Parent:Error}),_le=qse(Xh),ble=Lse(Xh),xle=V2(Xh),Sle=G2(Xh),Bt=X("ZodType",(t,e)=>(Ut.init(t,e),t.def=e,Object.defineProperty(t,"_def",{value:e}),t.check=(...r)=>t.clone({...e,checks:[...e.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),t.clone=(r,n)=>Ea(t,r,n),t.brand=()=>t,t.register=(r,n)=>(r.add(t,n),t),t.parse=(r,n)=>_le(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>xle(t,r,n),t.parseAsync=async(r,n)=>ble(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>Sle(t,r,n),t.spa=t.safeParseAsync,t.refine=(r,n)=>t.check(pde(r,n)),t.superRefine=r=>t.check(fde(r)),t.overwrite=r=>t.check(xd(r)),t.optional=()=>_e(t),t.nullable=()=>K4(t),t.nullish=()=>_e(K4(t)),t.nonoptional=r=>ide(t,r),t.array=()=>it(t),t.or=r=>Ft([t,r]),t.and=r=>D$(t,r),t.transform=r=>$$(t,x6(r)),t.default=r=>tde(t,r),t.prefault=r=>nde(t,r),t.catch=r=>ode(t,r),t.pipe=r=>$$(t,r),t.readonly=()=>ude(t),t.describe=r=>{let n=t.clone();return wh.add(n,{description:r}),n},Object.defineProperty(t,"description",{get(){return wh.get(t)?.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return wh.get(t);let n=t.clone();return wh.add(n,r[0]),n},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t)),h6=X("_ZodString",(t,e)=>{M$.init(t,e),Bt.init(t,e);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,t.regex=(...n)=>t.check(ole(...n)),t.includes=(...n)=>t.check(ule(...n)),t.startsWith=(...n)=>t.check(lle(...n)),t.endsWith=(...n)=>t.check(dle(...n)),t.min=(...n)=>t.check(Nh(...n)),t.max=(...n)=>t.check(n6(...n)),t.length=(...n)=>t.check(i6(...n)),t.nonempty=(...n)=>t.check(Nh(1,...n)),t.lowercase=n=>t.check(sle(n)),t.uppercase=n=>t.check(cle(n)),t.trim=()=>t.check(fle()),t.normalize=(...n)=>t.check(ple(...n)),t.toLowerCase=()=>t.check(mle()),t.toUpperCase=()=>t.check(hle())}),wle=X("ZodString",(t,e)=>{M$.init(t,e),h6.init(t,e),t.email=r=>t.check(Pue($le,r)),t.url=r=>t.check(jue(Ele,r)),t.jwt=r=>t.check(Kue(qle,r)),t.emoji=r=>t.check(Aue(kle,r)),t.guid=r=>t.check(Z4(G4,r)),t.uuid=r=>t.check(Rue($h,r)),t.uuidv4=r=>t.check(Oue($h,r)),t.uuidv6=r=>t.check(Cue($h,r)),t.uuidv7=r=>t.check(Nue($h,r)),t.nanoid=r=>t.check(Mue(Tle,r)),t.guid=r=>t.check(Z4(G4,r)),t.cuid=r=>t.check(Due(Ile,r)),t.cuid2=r=>t.check(zue(Ple,r)),t.ulid=r=>t.check(Uue(Rle,r)),t.base64=r=>t.check(Vue(Dle,r)),t.base64url=r=>t.check(Gue(zle,r)),t.xid=r=>t.check(que(Ole,r)),t.ksuid=r=>t.check(Lue(Cle,r)),t.ipv4=r=>t.check(Fue(Nle,r)),t.ipv6=r=>t.check(Zue(jle,r)),t.cidrv4=r=>t.check(Hue(Ale,r)),t.cidrv6=r=>t.check(Bue(Mle,r)),t.e164=r=>t.check(Wue(Ule,r)),t.datetime=r=>t.check(s6(r)),t.date=r=>t.check(u6(r)),t.time=r=>t.check(d6(r)),t.duration=r=>t.check(f6(r))});function G(t){return Iue(wle,t)}var Vt=X("ZodStringFormat",(t,e)=>{Lt.init(t,e),h6.init(t,e)}),$le=X("ZodEmail",(t,e)=>{Nce.init(t,e),Vt.init(t,e)}),G4=X("ZodGUID",(t,e)=>{Oce.init(t,e),Vt.init(t,e)}),$h=X("ZodUUID",(t,e)=>{Cce.init(t,e),Vt.init(t,e)}),Ele=X("ZodURL",(t,e)=>{jce.init(t,e),Vt.init(t,e)}),kle=X("ZodEmoji",(t,e)=>{Ace.init(t,e),Vt.init(t,e)}),Tle=X("ZodNanoID",(t,e)=>{Mce.init(t,e),Vt.init(t,e)}),Ile=X("ZodCUID",(t,e)=>{Dce.init(t,e),Vt.init(t,e)}),Ple=X("ZodCUID2",(t,e)=>{zce.init(t,e),Vt.init(t,e)}),Rle=X("ZodULID",(t,e)=>{Uce.init(t,e),Vt.init(t,e)}),Ole=X("ZodXID",(t,e)=>{qce.init(t,e),Vt.init(t,e)}),Cle=X("ZodKSUID",(t,e)=>{Lce.init(t,e),Vt.init(t,e)}),Nle=X("ZodIPv4",(t,e)=>{Vce.init(t,e),Vt.init(t,e)}),jle=X("ZodIPv6",(t,e)=>{Gce.init(t,e),Vt.init(t,e)}),Ale=X("ZodCIDRv4",(t,e)=>{Wce.init(t,e),Vt.init(t,e)}),Mle=X("ZodCIDRv6",(t,e)=>{Kce.init(t,e),Vt.init(t,e)}),Dle=X("ZodBase64",(t,e)=>{Jce.init(t,e),Vt.init(t,e)}),zle=X("ZodBase64URL",(t,e)=>{Yce.init(t,e),Vt.init(t,e)}),Ule=X("ZodE164",(t,e)=>{Qce.init(t,e),Vt.init(t,e)}),qle=X("ZodJWT",(t,e)=>{tue.init(t,e),Vt.init(t,e)}),g6=X("ZodNumber",(t,e)=>{t6.init(t,e),Bt.init(t,e),t.gt=(n,i)=>t.check(B4(n,i)),t.gte=(n,i)=>t.check(n$(n,i)),t.min=(n,i)=>t.check(n$(n,i)),t.lt=(n,i)=>t.check(H4(n,i)),t.lte=(n,i)=>t.check(r$(n,i)),t.max=(n,i)=>t.check(r$(n,i)),t.int=n=>t.check(W4(n)),t.safe=n=>t.check(W4(n)),t.positive=n=>t.check(B4(0,n)),t.nonnegative=n=>t.check(n$(0,n)),t.negative=n=>t.check(H4(0,n)),t.nonpositive=n=>t.check(r$(0,n)),t.multipleOf=(n,i)=>t.check(V4(n,i)),t.step=(n,i)=>t.check(V4(n,i)),t.finite=()=>t;let r=t._zod.bag;t.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),t.isFinite=!0,t.format=r.format??null});function Ot(t){return ele(g6,t)}var Lle=X("ZodNumberFormat",(t,e)=>{rue.init(t,e),g6.init(t,e)});function W4(t){return tle(Lle,t)}var Fle=X("ZodBoolean",(t,e)=>{nue.init(t,e),Bt.init(t,e)});function xr(t){return rle(Fle,t)}var Zle=X("ZodNull",(t,e)=>{iue.init(t,e),Bt.init(t,e)});function v6(t){return nle(Zle,t)}var Hle=X("ZodUnknown",(t,e)=>{aue.init(t,e),Bt.init(t,e)});function nr(){return ile(Hle)}var Ble=X("ZodNever",(t,e)=>{oue.init(t,e),Bt.init(t,e)});function Vle(t){return ale(Ble,t)}var Gle=X("ZodArray",(t,e)=>{sue.init(t,e),Bt.init(t,e),t.element=e.element,t.min=(r,n)=>t.check(Nh(r,n)),t.nonempty=r=>t.check(Nh(1,r)),t.max=(r,n)=>t.check(n6(r,n)),t.length=(r,n)=>t.check(i6(r,n)),t.unwrap=()=>t.element});function it(t,e){return gle(Gle,t,e)}var y6=X("ZodObject",(t,e)=>{cue.init(t,e),Bt.init(t,e),Dt.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>Sr(Object.keys(t._zod.def.shape)),t.catchall=r=>t.clone({...t._zod.def,catchall:r}),t.passthrough=()=>t.clone({...t._zod.def,catchall:nr()}),t.loose=()=>t.clone({...t._zod.def,catchall:nr()}),t.strict=()=>t.clone({...t._zod.def,catchall:Vle()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>Dt.extend(t,r),t.merge=r=>Dt.merge(t,r),t.pick=r=>Dt.pick(t,r),t.omit=r=>Dt.omit(t,r),t.partial=(...r)=>Dt.partial(S6,t,r[0]),t.required=(...r)=>Dt.required(w6,t,r[0])});function re(t,e){let r={type:"object",get shape(){return Dt.assignProp(this,"shape",{...t}),this.shape},...Dt.normalizeParams(e)};return new y6(r)}function Kn(t,e){return new y6({type:"object",get shape(){return Dt.assignProp(this,"shape",{...t}),this.shape},catchall:nr(),...Dt.normalizeParams(e)})}var _6=X("ZodUnion",(t,e)=>{r6.init(t,e),Bt.init(t,e),t.options=e.options});function Ft(t,e){return new _6({type:"union",options:t,...Dt.normalizeParams(e)})}var Wle=X("ZodDiscriminatedUnion",(t,e)=>{_6.init(t,e),uue.init(t,e)});function b6(t,e,r){return new Wle({type:"union",options:e,discriminator:t,...Dt.normalizeParams(r)})}var Kle=X("ZodIntersection",(t,e)=>{lue.init(t,e),Bt.init(t,e)});function D$(t,e){return new Kle({type:"intersection",left:t,right:e})}var Jle=X("ZodRecord",(t,e)=>{due.init(t,e),Bt.init(t,e),t.keyType=e.keyType,t.valueType=e.valueType});function ir(t,e,r){return new Jle({type:"record",keyType:t,valueType:e,...Dt.normalizeParams(r)})}var w$=X("ZodEnum",(t,e)=>{pue.init(t,e),Bt.init(t,e),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(n,i)=>{let a={};for(let o of n)if(r.has(o))a[o]=e.entries[o];else throw new Error(`Key ${o} not found in enum`);return new w$({...e,checks:[],...Dt.normalizeParams(i),entries:a})},t.exclude=(n,i)=>{let a={...e.entries};for(let o of n)if(r.has(o))delete a[o];else throw new Error(`Key ${o} not found in enum`);return new w$({...e,checks:[],...Dt.normalizeParams(i),entries:a})}});function Sr(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new w$({type:"enum",entries:r,...Dt.normalizeParams(e)})}var Xle=X("ZodLiteral",(t,e)=>{fue.init(t,e),Bt.init(t,e),t.values=new Set(e.values),Object.defineProperty(t,"value",{get(){if(e.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function be(t,e){return new Xle({type:"literal",values:Array.isArray(t)?t:[t],...Dt.normalizeParams(e)})}var Yle=X("ZodTransform",(t,e)=>{mue.init(t,e),Bt.init(t,e),t._zod.parse=(r,n)=>{r.addIssue=a=>{if(typeof a=="string")r.issues.push(Dt.issue(a,r.value,e));else{let o=a;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=r.value),o.inst??(o.inst=t),o.continue??(o.continue=!0),r.issues.push(Dt.issue(o))}};let i=e.transform(r.value,r);return i instanceof Promise?i.then(a=>(r.value=a,r)):(r.value=i,r)}});function x6(t){return new Yle({type:"transform",transform:t})}var S6=X("ZodOptional",(t,e)=>{hue.init(t,e),Bt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function _e(t){return new S6({type:"optional",innerType:t})}var Qle=X("ZodNullable",(t,e)=>{gue.init(t,e),Bt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function K4(t){return new Qle({type:"nullable",innerType:t})}var ede=X("ZodDefault",(t,e)=>{vue.init(t,e),Bt.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function tde(t,e){return new ede({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var rde=X("ZodPrefault",(t,e)=>{yue.init(t,e),Bt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function nde(t,e){return new rde({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var w6=X("ZodNonOptional",(t,e)=>{_ue.init(t,e),Bt.init(t,e),t.unwrap=()=>t._zod.def.innerType});function ide(t,e){return new w6({type:"nonoptional",innerType:t,...Dt.normalizeParams(e)})}var ade=X("ZodCatch",(t,e)=>{bue.init(t,e),Bt.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function ode(t,e){return new ade({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var sde=X("ZodPipe",(t,e)=>{xue.init(t,e),Bt.init(t,e),t.in=e.in,t.out=e.out});function $$(t,e){return new sde({type:"pipe",in:t,out:e})}var cde=X("ZodReadonly",(t,e)=>{Sue.init(t,e),Bt.init(t,e)});function ude(t){return new cde({type:"readonly",innerType:t})}var $6=X("ZodCustom",(t,e)=>{wue.init(t,e),Bt.init(t,e)});function lde(t,e){let r=new Kr({check:"custom",...Dt.normalizeParams(e)});return r._zod.check=t,r}function dde(t,e){return vle($6,t??(()=>!0),e)}function pde(t,e={}){return yle($6,t,e)}function fde(t,e){let r=lde(n=>(n.addIssue=i=>{if(typeof i=="string")n.issues.push(Dt.issue(i,n.value,r._zod.def));else{let a=i;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=n.value),a.inst??(a.inst=r),a.continue??(a.continue=!r._zod.def.abort),n.issues.push(Dt.issue(a))}},t(n.value,n)),e);return r}function E6(t,e){return $$(x6(t),e)}qi(kue());var z$="io.modelcontextprotocol/related-task",Yh="2.0",gi=dde(t=>t!==null&&(typeof t=="object"||typeof t=="function")),k6=Ft([G(),Ot().int()]),T6=G(),mde=Kn({ttl:Ft([Ot(),v6()]).optional(),pollInterval:Ot().optional()}),U$=Kn({taskId:G()}),hde=Kn({progressToken:k6.optional(),[z$]:U$.optional()}),Jr=Kn({task:mde.optional(),_meta:hde.optional()}),fr=re({method:G(),params:Jr.optional()}),_o=Kn({_meta:re({[z$]:_e(U$)}).passthrough().optional()}),Tn=re({method:G(),params:_o.optional()}),wr=Kn({_meta:Kn({[z$]:U$.optional()}).optional()}),Qh=Ft([G(),Ot().int()]),gde=re({jsonrpc:be(Yh),id:Qh,...fr.shape}).strict();var vde=re({jsonrpc:be(Yh),...Tn.shape}).strict();var yde=re({jsonrpc:be(Yh),id:Qh,result:wr}).strict();var J4;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(J4||(J4={}));var _de=re({jsonrpc:be(Yh),id:Qh,error:re({code:Ot().int(),message:G(),data:_e(nr())})}).strict();var G1e=Ft([gde,vde,yde,_de]),I6=wr.strict(),bde=_o.extend({requestId:Qh,reason:G().optional()}),P6=Tn.extend({method:be("notifications/cancelled"),params:bde}),xde=re({src:G(),mimeType:G().optional(),sizes:it(G()).optional()}),Sd=re({icons:it(xde).optional()}),hc=re({name:G(),title:G().optional()}),R6=hc.extend({...hc.shape,...Sd.shape,version:G(),websiteUrl:G().optional()}),Sde=D$(re({applyDefaults:xr().optional()}),ir(G(),nr())),wde=E6(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,D$(re({form:Sde.optional(),url:gi.optional()}),ir(G(),nr()).optional())),$de=re({list:_e(re({}).passthrough()),cancel:_e(re({}).passthrough()),requests:_e(re({sampling:_e(re({createMessage:_e(re({}).passthrough())}).passthrough()),elicitation:_e(re({create:_e(re({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),Ede=re({list:_e(re({}).passthrough()),cancel:_e(re({}).passthrough()),requests:_e(re({tools:_e(re({call:_e(re({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),kde=re({experimental:ir(G(),gi).optional(),sampling:re({context:gi.optional(),tools:gi.optional()}).optional(),elicitation:wde.optional(),roots:re({listChanged:xr().optional()}).optional(),tasks:_e($de)}),Tde=Jr.extend({protocolVersion:G(),capabilities:kde,clientInfo:R6}),Ide=fr.extend({method:be("initialize"),params:Tde}),Pde=re({experimental:ir(G(),gi).optional(),logging:gi.optional(),completions:gi.optional(),prompts:_e(re({listChanged:_e(xr())})),resources:re({subscribe:xr().optional(),listChanged:xr().optional()}).optional(),tools:re({listChanged:xr().optional()}).optional(),tasks:_e(Ede)}).passthrough(),Rde=wr.extend({protocolVersion:G(),capabilities:Pde,serverInfo:R6,instructions:G().optional()}),Ode=Tn.extend({method:be("notifications/initialized")}),O6=fr.extend({method:be("ping")}),Cde=re({progress:Ot(),total:_e(Ot()),message:_e(G())}),Nde=re({..._o.shape,...Cde.shape,progressToken:k6}),C6=Tn.extend({method:be("notifications/progress"),params:Nde}),jde=Jr.extend({cursor:T6.optional()}),wd=fr.extend({params:jde.optional()}),$d=wr.extend({nextCursor:_e(T6)}),Ed=re({taskId:G(),status:Sr(["working","input_required","completed","failed","cancelled"]),ttl:Ft([Ot(),v6()]),createdAt:G(),lastUpdatedAt:G(),pollInterval:_e(Ot()),statusMessage:_e(G())}),N6=wr.extend({task:Ed}),Ade=_o.merge(Ed),j6=Tn.extend({method:be("notifications/tasks/status"),params:Ade}),A6=fr.extend({method:be("tasks/get"),params:Jr.extend({taskId:G()})}),M6=wr.merge(Ed),D6=fr.extend({method:be("tasks/result"),params:Jr.extend({taskId:G()})}),z6=wd.extend({method:be("tasks/list")}),U6=$d.extend({tasks:it(Ed)}),W1e=fr.extend({method:be("tasks/cancel"),params:Jr.extend({taskId:G()})}),K1e=wr.merge(Ed),q6=re({uri:G(),mimeType:_e(G()),_meta:ir(G(),nr()).optional()}),L6=q6.extend({text:G()}),q$=G().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),F6=q6.extend({blob:q$}),xc=re({audience:it(Sr(["user","assistant"])).optional(),priority:Ot().min(0).max(1).optional(),lastModified:a6.datetime({offset:!0}).optional()}),Z6=re({...hc.shape,...Sd.shape,uri:G(),description:_e(G()),mimeType:_e(G()),annotations:xc.optional(),_meta:_e(Kn({}))}),Mde=re({...hc.shape,...Sd.shape,uriTemplate:G(),description:_e(G()),mimeType:_e(G()),annotations:xc.optional(),_meta:_e(Kn({}))}),Dde=wd.extend({method:be("resources/list")}),zde=$d.extend({resources:it(Z6)}),Ude=wd.extend({method:be("resources/templates/list")}),qde=$d.extend({resourceTemplates:it(Mde)}),L$=Jr.extend({uri:G()}),Lde=L$,Fde=fr.extend({method:be("resources/read"),params:Lde}),Zde=wr.extend({contents:it(Ft([L6,F6]))}),Hde=Tn.extend({method:be("notifications/resources/list_changed")}),Bde=L$,Vde=fr.extend({method:be("resources/subscribe"),params:Bde}),Gde=L$,Wde=fr.extend({method:be("resources/unsubscribe"),params:Gde}),Kde=_o.extend({uri:G()}),Jde=Tn.extend({method:be("notifications/resources/updated"),params:Kde}),Xde=re({name:G(),description:_e(G()),required:_e(xr())}),Yde=re({...hc.shape,...Sd.shape,description:_e(G()),arguments:_e(it(Xde)),_meta:_e(Kn({}))}),Qde=wd.extend({method:be("prompts/list")}),epe=$d.extend({prompts:it(Yde)}),tpe=Jr.extend({name:G(),arguments:ir(G(),G()).optional()}),rpe=fr.extend({method:be("prompts/get"),params:tpe}),F$=re({type:be("text"),text:G(),annotations:xc.optional(),_meta:ir(G(),nr()).optional()}),Z$=re({type:be("image"),data:q$,mimeType:G(),annotations:xc.optional(),_meta:ir(G(),nr()).optional()}),H$=re({type:be("audio"),data:q$,mimeType:G(),annotations:xc.optional(),_meta:ir(G(),nr()).optional()}),npe=re({type:be("tool_use"),name:G(),id:G(),input:re({}).passthrough(),_meta:_e(re({}).passthrough())}).passthrough(),ipe=re({type:be("resource"),resource:Ft([L6,F6]),annotations:xc.optional(),_meta:ir(G(),nr()).optional()}),ape=Z6.extend({type:be("resource_link")}),B$=Ft([F$,Z$,H$,ape,ipe]),ope=re({role:Sr(["user","assistant"]),content:B$}),spe=wr.extend({description:_e(G()),messages:it(ope)}),cpe=Tn.extend({method:be("notifications/prompts/list_changed")}),upe=re({title:G().optional(),readOnlyHint:xr().optional(),destructiveHint:xr().optional(),idempotentHint:xr().optional(),openWorldHint:xr().optional()}),lpe=re({taskSupport:Sr(["required","optional","forbidden"]).optional()}),H6=re({...hc.shape,...Sd.shape,description:G().optional(),inputSchema:re({type:be("object"),properties:ir(G(),gi).optional(),required:it(G()).optional()}).catchall(nr()),outputSchema:re({type:be("object"),properties:ir(G(),gi).optional(),required:it(G()).optional()}).catchall(nr()).optional(),annotations:_e(upe),execution:_e(lpe),_meta:ir(G(),nr()).optional()}),dpe=wd.extend({method:be("tools/list")}),ppe=$d.extend({tools:it(H6)}),B6=wr.extend({content:it(B$).default([]),structuredContent:ir(G(),nr()).optional(),isError:_e(xr())}),J1e=B6.or(wr.extend({toolResult:nr()})),fpe=Jr.extend({name:G(),arguments:_e(ir(G(),nr()))}),mpe=fr.extend({method:be("tools/call"),params:fpe}),hpe=Tn.extend({method:be("notifications/tools/list_changed")}),V6=Sr(["debug","info","notice","warning","error","critical","alert","emergency"]),gpe=Jr.extend({level:V6}),vpe=fr.extend({method:be("logging/setLevel"),params:gpe}),ype=_o.extend({level:V6,logger:G().optional(),data:nr()}),_pe=Tn.extend({method:be("notifications/message"),params:ype}),bpe=re({name:G().optional()}),xpe=re({hints:_e(it(bpe)),costPriority:_e(Ot().min(0).max(1)),speedPriority:_e(Ot().min(0).max(1)),intelligencePriority:_e(Ot().min(0).max(1))}),Spe=re({mode:_e(Sr(["auto","required","none"]))}),wpe=re({type:be("tool_result"),toolUseId:G().describe("The unique identifier for the corresponding tool call."),content:it(B$).default([]),structuredContent:re({}).passthrough().optional(),isError:_e(xr()),_meta:_e(re({}).passthrough())}).passthrough(),$pe=b6("type",[F$,Z$,H$]),jh=b6("type",[F$,Z$,H$,npe,wpe]),Epe=re({role:Sr(["user","assistant"]),content:Ft([jh,it(jh)]),_meta:_e(re({}).passthrough())}).passthrough(),kpe=Jr.extend({messages:it(Epe),modelPreferences:xpe.optional(),systemPrompt:G().optional(),includeContext:Sr(["none","thisServer","allServers"]).optional(),temperature:Ot().optional(),maxTokens:Ot().int(),stopSequences:it(G()).optional(),metadata:gi.optional(),tools:_e(it(H6)),toolChoice:_e(Spe)}),Tpe=fr.extend({method:be("sampling/createMessage"),params:kpe}),Ipe=wr.extend({model:G(),stopReason:_e(Sr(["endTurn","stopSequence","maxTokens"]).or(G())),role:Sr(["user","assistant"]),content:$pe}),Ppe=wr.extend({model:G(),stopReason:_e(Sr(["endTurn","stopSequence","maxTokens","toolUse"]).or(G())),role:Sr(["user","assistant"]),content:Ft([jh,it(jh)])}),Rpe=re({type:be("boolean"),title:G().optional(),description:G().optional(),default:xr().optional()}),Ope=re({type:be("string"),title:G().optional(),description:G().optional(),minLength:Ot().optional(),maxLength:Ot().optional(),format:Sr(["email","uri","date","date-time"]).optional(),default:G().optional()}),Cpe=re({type:Sr(["number","integer"]),title:G().optional(),description:G().optional(),minimum:Ot().optional(),maximum:Ot().optional(),default:Ot().optional()}),Npe=re({type:be("string"),title:G().optional(),description:G().optional(),enum:it(G()),default:G().optional()}),jpe=re({type:be("string"),title:G().optional(),description:G().optional(),oneOf:it(re({const:G(),title:G()})),default:G().optional()}),Ape=re({type:be("string"),title:G().optional(),description:G().optional(),enum:it(G()),enumNames:it(G()).optional(),default:G().optional()}),Mpe=Ft([Npe,jpe]),Dpe=re({type:be("array"),title:G().optional(),description:G().optional(),minItems:Ot().optional(),maxItems:Ot().optional(),items:re({type:be("string"),enum:it(G())}),default:it(G()).optional()}),zpe=re({type:be("array"),title:G().optional(),description:G().optional(),minItems:Ot().optional(),maxItems:Ot().optional(),items:re({anyOf:it(re({const:G(),title:G()}))}),default:it(G()).optional()}),Upe=Ft([Dpe,zpe]),qpe=Ft([Ape,Mpe,Upe]),Lpe=Ft([qpe,Rpe,Ope,Cpe]),Fpe=Jr.extend({mode:be("form").optional(),message:G(),requestedSchema:re({type:be("object"),properties:ir(G(),Lpe),required:it(G()).optional()})}),Zpe=Jr.extend({mode:be("url"),message:G(),elicitationId:G(),url:G().url()}),Hpe=Ft([Fpe,Zpe]),Bpe=fr.extend({method:be("elicitation/create"),params:Hpe}),Vpe=_o.extend({elicitationId:G()}),Gpe=Tn.extend({method:be("notifications/elicitation/complete"),params:Vpe}),Wpe=wr.extend({action:Sr(["accept","decline","cancel"]),content:E6(t=>t===null?void 0:t,ir(G(),Ft([G(),Ot(),xr(),it(G())])).optional())}),Kpe=re({type:be("ref/resource"),uri:G()}),Jpe=re({type:be("ref/prompt"),name:G()}),Xpe=Jr.extend({ref:Ft([Jpe,Kpe]),argument:re({name:G(),value:G()}),context:re({arguments:ir(G(),G()).optional()}).optional()}),Ype=fr.extend({method:be("completion/complete"),params:Xpe});var Qpe=wr.extend({completion:Kn({values:it(G()).max(100),total:_e(Ot().int()),hasMore:_e(xr())})}),efe=re({uri:G().startsWith("file://"),name:G().optional(),_meta:ir(G(),nr()).optional()}),tfe=fr.extend({method:be("roots/list")}),rfe=wr.extend({roots:it(efe)}),nfe=Tn.extend({method:be("notifications/roots/list_changed")}),X1e=Ft([O6,Ide,Ype,vpe,rpe,Qde,Dde,Ude,Fde,Vde,Wde,mpe,dpe,A6,D6,z6]),Y1e=Ft([P6,C6,Ode,nfe,j6]),Q1e=Ft([I6,Ipe,Ppe,Wpe,rfe,M6,U6,N6]),eIe=Ft([O6,Tpe,Bpe,tfe,A6,D6,z6]),tIe=Ft([P6,C6,_pe,Jde,Hde,hpe,cpe,j6,Gpe]),rIe=Ft([I6,Rde,Qpe,spe,epe,zde,qde,Zde,B6,ppe,M6,U6,N6]);var nIe=Symbol("Let zodToJsonSchema decide on which parser to use");var iIe=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");var aIe=Y4(Zne(),1),oIe=Y4(Die(),1);var sIe=Symbol.for("mcp.completable");var X4;(function(t){t.Completable="McpCompletable"})(X4||(X4={}));function G6({prompt:t,options:e}){let{systemPrompt:r,settingSources:n,sandbox:i,...a}=e??{},o,s;r===void 0?o="":typeof r=="string"?o=r:r.type==="preset"&&(s=r.append);let c=a.pathToClaudeCodeExecutable;if(!c){let Z=(0,d2.fileURLToPath)(ife.url),J=(0,a$.join)(Z,"..");c=(0,a$.join)(J,"cli.js")}process.env.CLAUDE_AGENT_SDK_VERSION="0.1.76";let{abortController:u=f2(),additionalDirectories:l=[],agents:d,allowedTools:p=[],betas:f,canUseTool:h,continue:_,cwd:y,disallowedTools:m=[],tools:v,env:g,executable:b=P2()?"bun":"node",executableArgs:S=[],extraArgs:x={},fallbackModel:w,enableFileCheckpointing:E,forkSession:R,hooks:A,includePartialMessages:M,persistSession:q,maxThinkingTokens:B,maxTurns:U,maxBudgetUsd:Y,mcpServers:me,model:Qe,outputFormat:ft,permissionMode:fe="default",allowDangerouslySkipPermissions:F=!1,permissionPromptToolName:I,plugins:D,resume:C,resumeSessionAt:$,stderr:T,strictMcpConfig:N}=a,W=ft?.type==="json_schema"?ft.schema:void 0,K=g;if(K||(K={...process.env}),K.CLAUDE_CODE_ENTRYPOINT||(K.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),E&&(K.CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING="true"),!c)throw new Error("pathToClaudeCodeExecutable is required");let pe={},ce=new Map;if(me)for(let[Z,J]of Object.entries(me))J.type==="sdk"&&"instance"in J?(ce.set(Z,J.instance),pe[Z]={type:"sdk",name:Z}):pe[Z]=J;let je=typeof t=="string",P=new s$({abortController:u,additionalDirectories:l,betas:f,cwd:y,executable:b,executableArgs:S,extraArgs:x,pathToClaudeCodeExecutable:c,env:K,forkSession:R,stderr:T,maxThinkingTokens:B,maxTurns:U,maxBudgetUsd:Y,model:Qe,fallbackModel:w,jsonSchema:W,permissionMode:fe,allowDangerouslySkipPermissions:F,permissionPromptToolName:I,continueConversation:_,resume:C,resumeSessionAt:$,settingSources:n??[],allowedTools:p,disallowedTools:m,tools:v,mcpServers:pe,strictMcpConfig:N,canUseTool:!!h,hooks:!!A,includePartialMessages:M,persistSession:q,plugins:D,sandbox:i,spawnClaudeCodeProcess:a.spawnClaudeCodeProcess}),O={systemPrompt:o,appendSystemPrompt:s,agents:d},z=new l$(P,je,h,A,u,ce,W,O);return typeof t=="string"?P.write(JSON.stringify({type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:t}]},parent_tool_use_id:null})+` +`):z.streamInput(t),z}var eg=class{dbManager;sessionManager;constructor(e,r){this.dbManager=e,this.sessionManager=r}async startSession(e,r){let n=this.findClaudeExecutable(),i=this.getModelId(),a=["Bash","Read","Write","Edit","Grep","Glob","WebFetch","WebSearch","Task","NotebookEdit","AskUserQuestion","TodoWrite"],o=this.createMessageGenerator(e),s=!!e.memorySessionId;k.info("SDK","Starting SDK query",{sessionDbId:e.sessionDbId,contentSessionId:e.contentSessionId,memorySessionId:e.memorySessionId,hasRealMemorySessionId:s,resume_parameter:s?e.memorySessionId:"(none - fresh start)",lastPromptNumber:e.lastPromptNumber}),e.lastPromptNumber>1?k.info("SDK",`[ALIGNMENT] Resume Decision | contentSessionId=${e.contentSessionId} | memorySessionId=${e.memorySessionId} | prompt#=${e.lastPromptNumber} | hasRealMemorySessionId=${s} | resumeWith=${s?e.memorySessionId:"NONE (fresh SDK session)"}`):k.info("SDK",`[ALIGNMENT] First Prompt | contentSessionId=${e.contentSessionId} | prompt#=${e.lastPromptNumber} | Will capture memorySessionId from first SDK response`);let c=G6({prompt:o,options:{model:i,...s&&{resume:e.memorySessionId},disallowedTools:a,abortController:e.abortController,pathToClaudeCodeExecutable:n}});for await(let l of c){if(!e.memorySessionId&&l.session_id&&(e.memorySessionId=l.session_id,this.dbManager.getSessionStore().updateMemorySessionId(e.sessionDbId,l.session_id),k.info("SDK","Captured memory session ID",{sessionDbId:e.sessionDbId,memorySessionId:l.session_id}),k.info("SDK",`[ALIGNMENT] Captured | contentSessionId=${e.contentSessionId} \u2192 memorySessionId=${l.session_id} | Future prompts will resume with this ID`)),l.type==="assistant"){let d=l.message.content,p=Array.isArray(d)?d.filter(v=>v.type==="text").map(v=>v.text).join(` +`):typeof d=="string"?d:"",f=p.length,h=e.cumulativeInputTokens+e.cumulativeOutputTokens,_=l.message.usage;_&&(e.cumulativeInputTokens+=_.input_tokens||0,e.cumulativeOutputTokens+=_.output_tokens||0,_.cache_creation_input_tokens&&(e.cumulativeInputTokens+=_.cache_creation_input_tokens),k.debug("SDK","Token usage captured",{sessionId:e.sessionDbId,inputTokens:_.input_tokens,outputTokens:_.output_tokens,cacheCreation:_.cache_creation_input_tokens||0,cacheRead:_.cache_read_input_tokens||0,cumulativeInput:e.cumulativeInputTokens,cumulativeOutput:e.cumulativeOutputTokens}));let y=e.cumulativeInputTokens+e.cumulativeOutputTokens-h,m=e.earliestPendingTimestamp;if(f>0){let v=f>100?p.substring(0,100)+"...":p;k.dataOut("SDK",`Response received (${f} chars)`,{sessionId:e.sessionDbId,promptNumber:e.lastPromptNumber},v)}await Vn(p,e,this.dbManager,this.sessionManager,r,y,m,"SDK")}l.type==="result"&&l.subtype}let u=Date.now()-e.startTime;k.success("SDK","Agent completed",{sessionId:e.sessionDbId,duration:`${(u/1e3).toFixed(1)}s`})}async*createMessageGenerator(e){let r=He.getInstance().getActiveMode(),n=e.lastPromptNumber===1;k.info("SDK","Creating message generator",{sessionDbId:e.sessionDbId,contentSessionId:e.contentSessionId,lastPromptNumber:e.lastPromptNumber,isInitPrompt:n,promptType:n?"INIT":"CONTINUATION"});let i=n?Ks(e.project,e.contentSessionId,e.userPrompt,r):Ys(e.userPrompt,e.lastPromptNumber,e.contentSessionId,r);e.conversationHistory.push({role:"user",content:i}),yield{type:"user",message:{role:"user",content:i},session_id:e.contentSessionId,parent_tool_use_id:null,isSynthetic:!0};for await(let a of this.sessionManager.getMessageIterator(e.sessionDbId))if(a.type==="observation"){a.prompt_number!==void 0&&(e.lastPromptNumber=a.prompt_number);let o=Js({id:0,tool_name:a.tool_name,tool_input:JSON.stringify(a.tool_input),tool_output:JSON.stringify(a.tool_response),created_at_epoch:Date.now(),cwd:a.cwd});e.conversationHistory.push({role:"user",content:o}),yield{type:"user",message:{role:"user",content:o},session_id:e.contentSessionId,parent_tool_use_id:null,isSynthetic:!0}}else if(a.type==="summarize"){let o=Xs({id:e.sessionDbId,memory_session_id:e.memorySessionId,project:e.project,user_prompt:e.userPrompt,last_assistant_message:a.last_assistant_message||""},r);e.conversationHistory.push({role:"user",content:o}),yield{type:"user",message:{role:"user",content:o},session_id:e.contentSessionId,parent_tool_use_id:null,isSynthetic:!0}}}findClaudeExecutable(){let e=Ke.loadFromFile(wn);if(e.CLAUDE_CODE_PATH){let{existsSync:r}=require("fs");if(!r(e.CLAUDE_CODE_PATH))throw new Error(`CLAUDE_CODE_PATH is set to "${e.CLAUDE_CODE_PATH}" but the file does not exist.`);return e.CLAUDE_CODE_PATH}try{let r=(0,W6.execSync)(process.platform==="win32"?"where claude":"which claude",{encoding:"utf8",windowsHide:!0,stdio:["ignore","pipe","ignore"]}).trim().split(` +`)[0].trim();if(r)return r}catch(r){k.debug("SDK","Claude executable auto-detection failed",{},r)}throw new Error(`Claude executable not found. Please either: 1. Add "claude" to your system PATH, or -2. Set CLAUDE_CODE_PATH in ~/.claude-mem/settings.json`)}getModelId(){let e=xR.default.join((0,SR.homedir)(),".claude-mem","settings.json");return Be.loadFromFile(e).CLAUDE_MEM_MODEL}};var Vl=xt(require("path"),1),Gl=require("os");Ke();hr();ln();var uV="https://generativelanguage.googleapis.com/v1beta/models",lV={"gemini-2.5-flash-lite":10,"gemini-2.5-flash":10,"gemini-2.5-pro":5,"gemini-2.0-flash":15,"gemini-2.0-flash-lite":30},wR=0;async function dV(t,e){if(!e)return;let r=lV[t]||5,a=Math.ceil(6e4/r)+100,s=Date.now()-wR;if(ssetTimeout(o,i))}wR=Date.now()}var Bl=class{dbManager;sessionManager;fallbackAgent=null;constructor(e,r){this.dbManager=e,this.sessionManager=r}setFallbackAgent(e){this.fallbackAgent=e}shouldFallbackToClaude(e){let r=e?.message||"";return r.includes("429")||r.includes("500")||r.includes("502")||r.includes("503")||r.includes("ECONNREFUSED")||r.includes("ETIMEDOUT")||r.includes("fetch failed")}async startSession(e,r){try{let{apiKey:a,model:n,rateLimitingEnabled:s}=this.getGeminiConfig();if(!a)throw new Error("Gemini API key not configured. Set CLAUDE_MEM_GEMINI_API_KEY in settings or GEMINI_API_KEY environment variable.");let i=dt.getInstance().getActiveMode(),o=e.lastPromptNumber===1?ei(e.project,e.contentSessionId,e.userPrompt,i):ni(e.userPrompt,e.lastPromptNumber,e.contentSessionId,i);e.conversationHistory.push({role:"user",content:o});let c=await this.queryGeminiMultiTurn(e.conversationHistory,a,n,s);if(c.content){e.conversationHistory.push({role:"assistant",content:c.content});let l=c.tokensUsed||0;e.cumulativeInputTokens+=Math.floor(l*.7),e.cumulativeOutputTokens+=Math.floor(l*.3),await this.processGeminiResponse(e,c.content,r,l,null)}else P.warn("SDK","Empty Gemini init response - session may lack context",{sessionId:e.sessionDbId,model:n});for await(let l of this.sessionManager.getMessageIterator(e.sessionDbId)){let d=e.earliestPendingTimestamp;if(l.type==="observation"){l.prompt_number!==void 0&&(e.lastPromptNumber=l.prompt_number);let p=ti({id:0,tool_name:l.tool_name,tool_input:JSON.stringify(l.tool_input),tool_output:JSON.stringify(l.tool_response),created_at_epoch:d??Date.now(),cwd:l.cwd});e.conversationHistory.push({role:"user",content:p});let f=await this.queryGeminiMultiTurn(e.conversationHistory,a,n,s);if(f.content){e.conversationHistory.push({role:"assistant",content:f.content});let v=f.tokensUsed||0;e.cumulativeInputTokens+=Math.floor(v*.7),e.cumulativeOutputTokens+=Math.floor(v*.3)}await this.processGeminiResponse(e,f.content||"",r,tokensUsed,d)}else if(l.type==="summarize"){let p=ri({id:e.sessionDbId,memory_session_id:e.memorySessionId,project:e.project,user_prompt:e.userPrompt,last_assistant_message:l.last_assistant_message||""},i);e.conversationHistory.push({role:"user",content:p});let f=await this.queryGeminiMultiTurn(e.conversationHistory,a,n,s);if(f.content){e.conversationHistory.push({role:"assistant",content:f.content});let v=f.tokensUsed||0;e.cumulativeInputTokens+=Math.floor(v*.7),e.cumulativeOutputTokens+=Math.floor(v*.3)}await this.processGeminiResponse(e,f.content||"",r,tokensUsed,d)}}let u=Date.now()-e.startTime;P.success("SDK","Gemini agent completed",{sessionId:e.sessionDbId,duration:`${(u/1e3).toFixed(1)}s`,historyLength:e.conversationHistory.length})}catch(a){if(a.name==="AbortError")throw P.warn("SDK","Gemini agent aborted",{sessionId:e.sessionDbId}),a;if(this.shouldFallbackToClaude(a)&&this.fallbackAgent){P.warn("SDK","Gemini API failed, falling back to Claude SDK",{sessionDbId:e.sessionDbId,error:a.message,historyLength:e.conversationHistory.length});let s=this.sessionManager.getPendingMessageStore().resetStuckMessages(0);return s>0&&P.info("SDK","Reset processing messages for fallback",{sessionDbId:e.sessionDbId,resetCount:s}),this.fallbackAgent.startSession(e,r)}throw P.failure("SDK","Gemini agent error",{sessionDbId:e.sessionDbId},a),a}}conversationToGeminiContents(e){return e.map(r=>({role:r.role==="assistant"?"model":"user",parts:[{text:r.content}]}))}async queryGeminiMultiTurn(e,r,a,n){let s=this.conversationToGeminiContents(e),i=e.reduce((p,f)=>p+f.content.length,0);P.debug("SDK",`Querying Gemini multi-turn (${a})`,{turns:e.length,totalChars:i});let o=`${uV}/${a}:generateContent?key=${r}`;await dV(a,n);let c=await fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contents:s,generationConfig:{temperature:.3,maxOutputTokens:4096}})});if(!c.ok){let p=await c.text();throw new Error(`Gemini API error: ${c.status} - ${p}`)}let u=await c.json();if(!u.candidates?.[0]?.content?.parts?.[0]?.text)return P.warn("SDK","Empty response from Gemini"),{content:""};let l=u.candidates[0].content.parts[0].text,d=u.usageMetadata?.totalTokenCount;return{content:l,tokensUsed:d}}async processGeminiResponse(e,r,a,n,s){let i=Ys(r,e.contentSessionId),o=Qs(r,e.sessionDbId),c=o?{request:o.request||"",investigated:o.investigated||"",learned:o.learned||"",completed:o.completed||"",next_steps:o.next_steps||"",notes:o.notes}:null,u=this.sessionManager.getPendingMessageStore(),l=this.dbManager.getSessionStore();if(e.pendingProcessingIds.size>0){for(let p of e.pendingProcessingIds){if(!e.memorySessionId)throw new Error("Cannot store observations: memorySessionId not yet captured");let f=l.storeObservationsAndMarkComplete(e.memorySessionId,e.project,i,c,p,u,e.lastPromptNumber,n,s??void 0);P.info("SDK","Gemini observations and summary saved atomically",{sessionId:e.sessionDbId,messageId:p,observationCount:f.observationIds.length,hasSummary:!!f.summaryId,atomicTransaction:!0});for(let v=0;v{P.warn("SDK","Gemini chroma sync failed",{obsId:_},h)}),a&&a.sseBroadcaster&&a.sseBroadcaster.broadcast({type:"new_observation",observation:{id:_,memory_session_id:e.memorySessionId,session_id:e.contentSessionId,type:m.type,title:m.title,subtitle:m.subtitle,text:null,narrative:m.narrative||null,facts:JSON.stringify(m.facts||[]),concepts:JSON.stringify(m.concepts||[]),files_read:JSON.stringify(m.files_read||[]),files_modified:JSON.stringify(m.files_modified||[]),project:e.project,prompt_number:e.lastPromptNumber,created_at_epoch:f.createdAtEpoch}})}c&&f.summaryId&&(this.dbManager.getChromaSync().syncSummary(f.summaryId,e.contentSessionId,e.project,c,e.lastPromptNumber,f.createdAtEpoch,n).catch(v=>{P.warn("SDK","Gemini chroma sync failed",{summaryId:f.summaryId},v)}),a&&a.sseBroadcaster&&a.sseBroadcaster.broadcast({type:"new_summary",summary:{id:f.summaryId,session_id:e.contentSessionId,request:o.request,investigated:o.investigated,learned:o.learned,completed:o.completed,next_steps:o.next_steps,notes:o.notes,project:e.project,prompt_number:e.lastPromptNumber,created_at_epoch:f.createdAtEpoch}}),Wa(e.project,Xt()).catch(v=>{P.warn("CURSOR","Context update failed (non-critical)",{project:e.project},v)}))}e.pendingProcessingIds.clear(),e.earliestPendingTimestamp=null;let d=u.cleanupProcessed(100);d>0&&P.debug("SDK","Cleaned up old processed messages",{deletedCount:d}),a&&typeof a.broadcastProcessingStatus=="function"&&a.broadcastProcessingStatus()}}getGeminiConfig(){let e=Vl.default.join((0,Gl.homedir)(),".claude-mem","settings.json"),r=Be.loadFromFile(e),a=r.CLAUDE_MEM_GEMINI_API_KEY||process.env.GEMINI_API_KEY||"",n="gemini-2.5-flash",s=r.CLAUDE_MEM_GEMINI_MODEL||n,i=["gemini-2.5-flash-lite","gemini-2.5-flash","gemini-2.5-pro","gemini-2.0-flash","gemini-2.0-flash-lite"],o;i.includes(s)?o=s:(P.warn("SDK",`Invalid Gemini model "${s}", falling back to ${n}`,{configured:s,validModels:i}),o=n);let c=r.CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED!=="false";return{apiKey:a,model:o,rateLimitingEnabled:c}}};function fh(){let t=Vl.default.join((0,Gl.homedir)(),".claude-mem","settings.json");return!!(Be.loadFromFile(t).CLAUDE_MEM_GEMINI_API_KEY||process.env.GEMINI_API_KEY)}function mh(){let t=Vl.default.join((0,Gl.homedir)(),".claude-mem","settings.json");return Be.loadFromFile(t).CLAUDE_MEM_PROVIDER==="gemini"}Ke();hr();vr();ln();var pV="https://openrouter.ai/api/v1/chat/completions",fV=20,mV=1e5,hV=4,Zl=class{dbManager;sessionManager;fallbackAgent=null;constructor(e,r){this.dbManager=e,this.sessionManager=r}setFallbackAgent(e){this.fallbackAgent=e}shouldFallbackToClaude(e){let r=e?.message||"";return r.includes("429")||r.includes("500")||r.includes("502")||r.includes("503")||r.includes("ECONNREFUSED")||r.includes("ETIMEDOUT")||r.includes("fetch failed")}async startSession(e,r){try{let{apiKey:a,model:n,siteUrl:s,appName:i}=this.getOpenRouterConfig();if(!a)throw new Error("OpenRouter API key not configured. Set CLAUDE_MEM_OPENROUTER_API_KEY in settings or OPENROUTER_API_KEY environment variable.");let o=dt.getInstance().getActiveMode(),c=e.lastPromptNumber===1?ei(e.project,e.contentSessionId,e.userPrompt,o):ni(e.userPrompt,e.lastPromptNumber,e.contentSessionId,o);e.conversationHistory.push({role:"user",content:c});let u=await this.queryOpenRouterMultiTurn(e.conversationHistory,a,n,s,i);if(u.content){e.conversationHistory.push({role:"assistant",content:u.content});let d=u.tokensUsed||0;e.cumulativeInputTokens+=Math.floor(d*.7),e.cumulativeOutputTokens+=Math.floor(d*.3),await this.processOpenRouterResponse(e,u.content,r,d,null)}else P.warn("SDK","Empty OpenRouter init response - session may lack context",{sessionId:e.sessionDbId,model:n});for await(let d of this.sessionManager.getMessageIterator(e.sessionDbId)){let p=e.earliestPendingTimestamp;if(d.type==="observation"){d.prompt_number!==void 0&&(e.lastPromptNumber=d.prompt_number);let f=ti({id:0,tool_name:d.tool_name,tool_input:JSON.stringify(d.tool_input),tool_output:JSON.stringify(d.tool_response),created_at_epoch:p??Date.now(),cwd:d.cwd});e.conversationHistory.push({role:"user",content:f});let v=await this.queryOpenRouterMultiTurn(e.conversationHistory,a,n,s,i);if(v.content){e.conversationHistory.push({role:"assistant",content:v.content});let _=v.tokensUsed||0;e.cumulativeInputTokens+=Math.floor(_*.7),e.cumulativeOutputTokens+=Math.floor(_*.3)}await this.processOpenRouterResponse(e,v.content||"",r,tokensUsed,p)}else if(d.type==="summarize"){let f=ri({id:e.sessionDbId,memory_session_id:e.memorySessionId,project:e.project,user_prompt:e.userPrompt,last_assistant_message:d.last_assistant_message||""},o);e.conversationHistory.push({role:"user",content:f});let v=await this.queryOpenRouterMultiTurn(e.conversationHistory,a,n,s,i);if(v.content){e.conversationHistory.push({role:"assistant",content:v.content});let _=v.tokensUsed||0;e.cumulativeInputTokens+=Math.floor(_*.7),e.cumulativeOutputTokens+=Math.floor(_*.3)}await this.processOpenRouterResponse(e,v.content||"",r,tokensUsed,p)}}let l=Date.now()-e.startTime;P.success("SDK","OpenRouter agent completed",{sessionId:e.sessionDbId,duration:`${(l/1e3).toFixed(1)}s`,historyLength:e.conversationHistory.length,model:n})}catch(a){if(a.name==="AbortError")throw P.warn("SDK","OpenRouter agent aborted",{sessionId:e.sessionDbId}),a;if(this.shouldFallbackToClaude(a)&&this.fallbackAgent){P.warn("SDK","OpenRouter API failed, falling back to Claude SDK",{sessionDbId:e.sessionDbId,error:a.message,historyLength:e.conversationHistory.length});let s=this.sessionManager.getPendingMessageStore().resetStuckMessages(0);return s>0&&P.info("SDK","Reset processing messages for fallback",{sessionDbId:e.sessionDbId,resetCount:s}),this.fallbackAgent.startSession(e,r)}throw P.failure("SDK","OpenRouter agent error",{sessionDbId:e.sessionDbId},a),a}}estimateTokens(e){return Math.ceil(e.length/hV)}truncateHistory(e){let r=Be.loadFromFile(Ar),a=parseInt(r.CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES)||fV,n=parseInt(r.CLAUDE_MEM_OPENROUTER_MAX_TOKENS)||mV;if(e.length<=a&&e.reduce((c,u)=>c+this.estimateTokens(u.content),0)<=n)return e;let s=[],i=0;for(let o=e.length-1;o>=0;o--){let c=e[o],u=this.estimateTokens(c.content);if(s.length>=a||i+u>n){P.warn("SDK","Context window truncated to prevent runaway costs",{originalMessages:e.length,keptMessages:s.length,droppedMessages:o+1,estimatedTokens:i,tokenLimit:n});break}s.unshift(c),i+=u}return s}conversationToOpenAIMessages(e){return e.map(r=>({role:r.role==="assistant"?"assistant":"user",content:r.content}))}async queryOpenRouterMultiTurn(e,r,a,n,s){let i=this.truncateHistory(e),o=this.conversationToOpenAIMessages(i),c=i.reduce((v,_)=>v+_.content.length,0),u=this.estimateTokens(i.map(v=>v.content).join(""));P.debug("SDK",`Querying OpenRouter multi-turn (${a})`,{turns:i.length,totalChars:c,estimatedTokens:u});let l=await fetch(pV,{method:"POST",headers:{Authorization:`Bearer ${r}`,"HTTP-Referer":n||"https://github.com/thedotmack/claude-mem","X-Title":s||"claude-mem","Content-Type":"application/json"},body:JSON.stringify({model:a,messages:o,temperature:.3,max_tokens:4096})});if(!l.ok){let v=await l.text();throw new Error(`OpenRouter API error: ${l.status} - ${v}`)}let d=await l.json();if(d.error)throw new Error(`OpenRouter API error: ${d.error.code} - ${d.error.message}`);if(!d.choices?.[0]?.message?.content)return P.warn("SDK","Empty response from OpenRouter"),{content:""};let p=d.choices[0].message.content,f=d.usage?.total_tokens;if(f){let v=d.usage?.prompt_tokens||0,_=d.usage?.completion_tokens||0,m=v/1e6*3+_/1e6*15;P.info("SDK","OpenRouter API usage",{model:a,inputTokens:v,outputTokens:_,totalTokens:f,estimatedCostUSD:m.toFixed(4),messagesInContext:i.length}),f>5e4&&P.warn("SDK","High token usage detected - consider reducing context",{totalTokens:f,estimatedCost:m.toFixed(4)})}return{content:p,tokensUsed:f}}async processOpenRouterResponse(e,r,a,n,s){let i=Ys(r,e.contentSessionId),o=Qs(r,e.sessionDbId),c=o?{request:o.request||"",investigated:o.investigated||"",learned:o.learned||"",completed:o.completed||"",next_steps:o.next_steps||"",notes:o.notes}:null,u=this.sessionManager.getPendingMessageStore(),l=this.dbManager.getSessionStore();if(e.pendingProcessingIds.size>0){for(let p of e.pendingProcessingIds){if(!e.memorySessionId)throw new Error("Cannot store observations: memorySessionId not yet captured");let f=l.storeObservationsAndMarkComplete(e.memorySessionId,e.project,i,c,p,u,e.lastPromptNumber,n,s??void 0);P.info("SDK","OpenRouter observations and summary saved atomically",{sessionId:e.sessionDbId,messageId:p,observationCount:f.observationIds.length,hasSummary:!!f.summaryId,atomicTransaction:!0});for(let v=0;v{P.warn("SDK","OpenRouter chroma sync failed",{obsId:_},h)}),a&&a.sseBroadcaster&&a.sseBroadcaster.broadcast({type:"new_observation",observation:{id:_,memory_session_id:e.memorySessionId,session_id:e.contentSessionId,type:m.type,title:m.title,subtitle:m.subtitle,text:null,narrative:m.narrative||null,facts:JSON.stringify(m.facts||[]),concepts:JSON.stringify(m.concepts||[]),files_read:JSON.stringify(m.files_read||[]),files_modified:JSON.stringify(m.files_modified||[]),project:e.project,prompt_number:e.lastPromptNumber,created_at_epoch:f.createdAtEpoch}})}c&&f.summaryId&&(this.dbManager.getChromaSync().syncSummary(f.summaryId,e.contentSessionId,e.project,c,e.lastPromptNumber,f.createdAtEpoch,n).catch(v=>{P.warn("SDK","OpenRouter chroma sync failed",{summaryId:f.summaryId},v)}),a&&a.sseBroadcaster&&a.sseBroadcaster.broadcast({type:"new_summary",summary:{id:f.summaryId,session_id:e.contentSessionId,request:o.request,investigated:o.investigated,learned:o.learned,completed:o.completed,next_steps:o.next_steps,notes:o.notes,project:e.project,prompt_number:e.lastPromptNumber,created_at_epoch:f.createdAtEpoch}}),Wa(e.project,Xt()).catch(v=>{P.warn("CURSOR","Context update failed (non-critical)",{project:e.project},v)}))}e.pendingProcessingIds.clear(),e.earliestPendingTimestamp=null;let d=u.cleanupProcessed(100);d>0&&P.debug("SDK","Cleaned up old processed messages",{deletedCount:d}),a&&typeof a.broadcastProcessingStatus=="function"&&a.broadcastProcessingStatus()}}getOpenRouterConfig(){let e=Ar,r=Be.loadFromFile(e),a=r.CLAUDE_MEM_OPENROUTER_API_KEY||process.env.OPENROUTER_API_KEY||"",n=r.CLAUDE_MEM_OPENROUTER_MODEL||"xiaomi/mimo-v2-flash:free",s=r.CLAUDE_MEM_OPENROUTER_SITE_URL||"",i=r.CLAUDE_MEM_OPENROUTER_APP_NAME||"claude-mem";return{apiKey:a,model:n,siteUrl:s,appName:i}}};function hh(){let t=Ar;return!!(Be.loadFromFile(t).CLAUDE_MEM_OPENROUTER_API_KEY||process.env.OPENROUTER_API_KEY)}function vh(){let t=Ar;return Be.loadFromFile(t).CLAUDE_MEM_PROVIDER==="openrouter"}Ke();var Wl=class{dbManager;constructor(e){this.dbManager=e}stripProjectPath(e,r){let a=`/${r}/`,n=e.indexOf(a);return n!==-1?e.substring(n+a.length):e}stripProjectPaths(e,r){if(!e)return e;try{let n=JSON.parse(e).map(s=>this.stripProjectPath(s,r));return JSON.stringify(n)}catch(a){return P.debug("WORKER","File paths is plain string, using as-is",{},a),e}}sanitizeObservation(e){return{...e,files_read:this.stripProjectPaths(e.files_read,e.project),files_modified:this.stripProjectPaths(e.files_modified,e.project)}}getObservations(e,r,a){let n=this.paginate("observations","id, memory_session_id, project, type, title, subtitle, narrative, text, facts, concepts, files_read, files_modified, prompt_number, created_at, created_at_epoch",e,r,a);return{...n,items:n.items.map(s=>this.sanitizeObservation(s))}}getSummaries(e,r,a){let n=this.dbManager.getSessionStore().db,s=` +2. Set CLAUDE_CODE_PATH in ~/.claude-mem/settings.json`)}getModelId(){let e=J6.default.join((0,K6.homedir)(),".claude-mem","settings.json");return Ke.loadFromFile(e).CLAUDE_MEM_MODEL}};var rg=yt(require("path"),1),ng=require("os");Ne();on();jr();var afe="https://generativelanguage.googleapis.com/v1beta/models",ofe={"gemini-2.5-flash-lite":10,"gemini-2.5-flash":10,"gemini-2.5-pro":5,"gemini-2.0-flash":15,"gemini-2.0-flash-lite":30},X6=0;async function sfe(t,e){if(!e)return;let r=ofe[t]||5,n=Math.ceil(6e4/r)+100,a=Date.now()-X6;if(asetTimeout(s,o))}X6=Date.now()}var tg=class{dbManager;sessionManager;fallbackAgent=null;constructor(e,r){this.dbManager=e,this.sessionManager=r}setFallbackAgent(e){this.fallbackAgent=e}async startSession(e,r){try{let{apiKey:n,model:i,rateLimitingEnabled:a}=this.getGeminiConfig();if(!n)throw new Error("Gemini API key not configured. Set CLAUDE_MEM_GEMINI_API_KEY in settings or GEMINI_API_KEY environment variable.");let o=He.getInstance().getActiveMode(),s=e.lastPromptNumber===1?Ks(e.project,e.contentSessionId,e.userPrompt,o):Ys(e.userPrompt,e.lastPromptNumber,e.contentSessionId,o);e.conversationHistory.push({role:"user",content:s});let c=await this.queryGeminiMultiTurn(e.conversationHistory,n,i,a);if(c.content){e.conversationHistory.push({role:"assistant",content:c.content});let l=c.tokensUsed||0;e.cumulativeInputTokens+=Math.floor(l*.7),e.cumulativeOutputTokens+=Math.floor(l*.3),await Vn(c.content,e,this.dbManager,this.sessionManager,r,l,null,"Gemini")}else k.warn("SDK","Empty Gemini init response - session may lack context",{sessionId:e.sessionDbId,model:i});for await(let l of this.sessionManager.getMessageIterator(e.sessionDbId)){let d=e.earliestPendingTimestamp;if(l.type==="observation"){l.prompt_number!==void 0&&(e.lastPromptNumber=l.prompt_number);let p=Js({id:0,tool_name:l.tool_name,tool_input:JSON.stringify(l.tool_input),tool_output:JSON.stringify(l.tool_response),created_at_epoch:d??Date.now(),cwd:l.cwd});e.conversationHistory.push({role:"user",content:p});let f=await this.queryGeminiMultiTurn(e.conversationHistory,n,i,a),h=0;f.content&&(e.conversationHistory.push({role:"assistant",content:f.content}),h=f.tokensUsed||0,e.cumulativeInputTokens+=Math.floor(h*.7),e.cumulativeOutputTokens+=Math.floor(h*.3)),await Vn(f.content||"",e,this.dbManager,this.sessionManager,r,h,d,"Gemini")}else if(l.type==="summarize"){let p=Xs({id:e.sessionDbId,memory_session_id:e.memorySessionId,project:e.project,user_prompt:e.userPrompt,last_assistant_message:l.last_assistant_message||""},o);e.conversationHistory.push({role:"user",content:p});let f=await this.queryGeminiMultiTurn(e.conversationHistory,n,i,a),h=0;f.content&&(e.conversationHistory.push({role:"assistant",content:f.content}),h=f.tokensUsed||0,e.cumulativeInputTokens+=Math.floor(h*.7),e.cumulativeOutputTokens+=Math.floor(h*.3)),await Vn(f.content||"",e,this.dbManager,this.sessionManager,r,h,d,"Gemini")}}let u=Date.now()-e.startTime;k.success("SDK","Gemini agent completed",{sessionId:e.sessionDbId,duration:`${(u/1e3).toFixed(1)}s`,historyLength:e.conversationHistory.length})}catch(n){if(rd(n))throw k.warn("SDK","Gemini agent aborted",{sessionId:e.sessionDbId}),n;if(td(n)&&this.fallbackAgent)return k.warn("SDK","Gemini API failed, falling back to Claude SDK",{sessionDbId:e.sessionDbId,error:n instanceof Error?n.message:String(n),historyLength:e.conversationHistory.length}),this.fallbackAgent.startSession(e,r);throw k.failure("SDK","Gemini agent error",{sessionDbId:e.sessionDbId},n),n}}conversationToGeminiContents(e){return e.map(r=>({role:r.role==="assistant"?"model":"user",parts:[{text:r.content}]}))}async queryGeminiMultiTurn(e,r,n,i){let a=this.conversationToGeminiContents(e),o=e.reduce((p,f)=>p+f.content.length,0);k.debug("SDK",`Querying Gemini multi-turn (${n})`,{turns:e.length,totalChars:o});let s=`${afe}/${n}:generateContent?key=${r}`;await sfe(n,i);let c=await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contents:a,generationConfig:{temperature:.3,maxOutputTokens:4096}})});if(!c.ok){let p=await c.text();throw new Error(`Gemini API error: ${c.status} - ${p}`)}let u=await c.json();if(!u.candidates?.[0]?.content?.parts?.[0]?.text)return k.warn("SDK","Empty response from Gemini"),{content:""};let l=u.candidates[0].content.parts[0].text,d=u.usageMetadata?.totalTokenCount;return{content:l,tokensUsed:d}}getGeminiConfig(){let e=rg.default.join((0,ng.homedir)(),".claude-mem","settings.json"),r=Ke.loadFromFile(e),n=r.CLAUDE_MEM_GEMINI_API_KEY||process.env.GEMINI_API_KEY||"",i="gemini-2.5-flash",a=r.CLAUDE_MEM_GEMINI_MODEL||i,o=["gemini-2.5-flash-lite","gemini-2.5-flash","gemini-2.5-pro","gemini-2.0-flash","gemini-2.0-flash-lite"],s;o.includes(a)?s=a:(k.warn("SDK",`Invalid Gemini model "${a}", falling back to ${i}`,{configured:a,validModels:o}),s=i);let c=r.CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED!=="false";return{apiKey:n,model:s,rateLimitingEnabled:c}}};function V$(){let t=rg.default.join((0,ng.homedir)(),".claude-mem","settings.json");return!!(Ke.loadFromFile(t).CLAUDE_MEM_GEMINI_API_KEY||process.env.GEMINI_API_KEY)}function G$(){let t=rg.default.join((0,ng.homedir)(),".claude-mem","settings.json");return Ke.loadFromFile(t).CLAUDE_MEM_PROVIDER==="gemini"}Ne();on();cn();jr();var cfe="https://openrouter.ai/api/v1/chat/completions",ufe=20,lfe=1e5,dfe=4,ig=class{dbManager;sessionManager;fallbackAgent=null;constructor(e,r){this.dbManager=e,this.sessionManager=r}setFallbackAgent(e){this.fallbackAgent=e}async startSession(e,r){try{let{apiKey:n,model:i,siteUrl:a,appName:o}=this.getOpenRouterConfig();if(!n)throw new Error("OpenRouter API key not configured. Set CLAUDE_MEM_OPENROUTER_API_KEY in settings or OPENROUTER_API_KEY environment variable.");let s=He.getInstance().getActiveMode(),c=e.lastPromptNumber===1?Ks(e.project,e.contentSessionId,e.userPrompt,s):Ys(e.userPrompt,e.lastPromptNumber,e.contentSessionId,s);e.conversationHistory.push({role:"user",content:c});let u=await this.queryOpenRouterMultiTurn(e.conversationHistory,n,i,a,o);if(u.content){e.conversationHistory.push({role:"assistant",content:u.content});let d=u.tokensUsed||0;e.cumulativeInputTokens+=Math.floor(d*.7),e.cumulativeOutputTokens+=Math.floor(d*.3),await Vn(u.content,e,this.dbManager,this.sessionManager,r,d,null,"OpenRouter")}else k.warn("SDK","Empty OpenRouter init response - session may lack context",{sessionId:e.sessionDbId,model:i});for await(let d of this.sessionManager.getMessageIterator(e.sessionDbId)){let p=e.earliestPendingTimestamp;if(d.type==="observation"){d.prompt_number!==void 0&&(e.lastPromptNumber=d.prompt_number);let f=Js({id:0,tool_name:d.tool_name,tool_input:JSON.stringify(d.tool_input),tool_output:JSON.stringify(d.tool_response),created_at_epoch:p??Date.now(),cwd:d.cwd});e.conversationHistory.push({role:"user",content:f});let h=await this.queryOpenRouterMultiTurn(e.conversationHistory,n,i,a,o),_=0;h.content&&(e.conversationHistory.push({role:"assistant",content:h.content}),_=h.tokensUsed||0,e.cumulativeInputTokens+=Math.floor(_*.7),e.cumulativeOutputTokens+=Math.floor(_*.3)),await Vn(h.content||"",e,this.dbManager,this.sessionManager,r,_,p,"OpenRouter")}else if(d.type==="summarize"){let f=Xs({id:e.sessionDbId,memory_session_id:e.memorySessionId,project:e.project,user_prompt:e.userPrompt,last_assistant_message:d.last_assistant_message||""},s);e.conversationHistory.push({role:"user",content:f});let h=await this.queryOpenRouterMultiTurn(e.conversationHistory,n,i,a,o),_=0;h.content&&(e.conversationHistory.push({role:"assistant",content:h.content}),_=h.tokensUsed||0,e.cumulativeInputTokens+=Math.floor(_*.7),e.cumulativeOutputTokens+=Math.floor(_*.3)),await Vn(h.content||"",e,this.dbManager,this.sessionManager,r,_,p,"OpenRouter")}}let l=Date.now()-e.startTime;k.success("SDK","OpenRouter agent completed",{sessionId:e.sessionDbId,duration:`${(l/1e3).toFixed(1)}s`,historyLength:e.conversationHistory.length,model:i})}catch(n){if(rd(n))throw k.warn("SDK","OpenRouter agent aborted",{sessionId:e.sessionDbId}),n;if(td(n)&&this.fallbackAgent)return k.warn("SDK","OpenRouter API failed, falling back to Claude SDK",{sessionDbId:e.sessionDbId,error:n instanceof Error?n.message:String(n),historyLength:e.conversationHistory.length}),this.fallbackAgent.startSession(e,r);throw k.failure("SDK","OpenRouter agent error",{sessionDbId:e.sessionDbId},n),n}}estimateTokens(e){return Math.ceil(e.length/dfe)}truncateHistory(e){let r=Ke.loadFromFile(wn),n=parseInt(r.CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES)||ufe,i=parseInt(r.CLAUDE_MEM_OPENROUTER_MAX_TOKENS)||lfe;if(e.length<=n&&e.reduce((c,u)=>c+this.estimateTokens(u.content),0)<=i)return e;let a=[],o=0;for(let s=e.length-1;s>=0;s--){let c=e[s],u=this.estimateTokens(c.content);if(a.length>=n||o+u>i){k.warn("SDK","Context window truncated to prevent runaway costs",{originalMessages:e.length,keptMessages:a.length,droppedMessages:s+1,estimatedTokens:o,tokenLimit:i});break}a.unshift(c),o+=u}return a}conversationToOpenAIMessages(e){return e.map(r=>({role:r.role==="assistant"?"assistant":"user",content:r.content}))}async queryOpenRouterMultiTurn(e,r,n,i,a){let o=this.truncateHistory(e),s=this.conversationToOpenAIMessages(o),c=o.reduce((h,_)=>h+_.content.length,0),u=this.estimateTokens(o.map(h=>h.content).join(""));k.debug("SDK",`Querying OpenRouter multi-turn (${n})`,{turns:o.length,totalChars:c,estimatedTokens:u});let l=await fetch(cfe,{method:"POST",headers:{Authorization:`Bearer ${r}`,"HTTP-Referer":i||"https://github.com/thedotmack/claude-mem","X-Title":a||"claude-mem","Content-Type":"application/json"},body:JSON.stringify({model:n,messages:s,temperature:.3,max_tokens:4096})});if(!l.ok){let h=await l.text();throw new Error(`OpenRouter API error: ${l.status} - ${h}`)}let d=await l.json();if(d.error)throw new Error(`OpenRouter API error: ${d.error.code} - ${d.error.message}`);if(!d.choices?.[0]?.message?.content)return k.warn("SDK","Empty response from OpenRouter"),{content:""};let p=d.choices[0].message.content,f=d.usage?.total_tokens;if(f){let h=d.usage?.prompt_tokens||0,_=d.usage?.completion_tokens||0,y=h/1e6*3+_/1e6*15;k.info("SDK","OpenRouter API usage",{model:n,inputTokens:h,outputTokens:_,totalTokens:f,estimatedCostUSD:y.toFixed(4),messagesInContext:o.length}),f>5e4&&k.warn("SDK","High token usage detected - consider reducing context",{totalTokens:f,estimatedCost:y.toFixed(4)})}return{content:p,tokensUsed:f}}getOpenRouterConfig(){let e=wn,r=Ke.loadFromFile(e),n=r.CLAUDE_MEM_OPENROUTER_API_KEY||process.env.OPENROUTER_API_KEY||"",i=r.CLAUDE_MEM_OPENROUTER_MODEL||"xiaomi/mimo-v2-flash:free",a=r.CLAUDE_MEM_OPENROUTER_SITE_URL||"",o=r.CLAUDE_MEM_OPENROUTER_APP_NAME||"claude-mem";return{apiKey:n,model:i,siteUrl:a,appName:o}}};function W$(){let t=wn;return!!(Ke.loadFromFile(t).CLAUDE_MEM_OPENROUTER_API_KEY||process.env.OPENROUTER_API_KEY)}function K$(){let t=wn;return Ke.loadFromFile(t).CLAUDE_MEM_PROVIDER==="openrouter"}Ne();var ag=class{dbManager;constructor(e){this.dbManager=e}stripProjectPath(e,r){let n=`/${r}/`,i=e.indexOf(n);return i!==-1?e.substring(i+n.length):e}stripProjectPaths(e,r){if(!e)return e;try{let i=JSON.parse(e).map(a=>this.stripProjectPath(a,r));return JSON.stringify(i)}catch(n){return k.debug("WORKER","File paths is plain string, using as-is",{},n),e}}sanitizeObservation(e){return{...e,files_read:this.stripProjectPaths(e.files_read,e.project),files_modified:this.stripProjectPaths(e.files_modified,e.project)}}getObservations(e,r,n){let i=this.paginate("observations","id, memory_session_id, project, type, title, subtitle, narrative, text, facts, concepts, files_read, files_modified, prompt_number, created_at, created_at_epoch",e,r,n);return{...i,items:i.items.map(a=>this.sanitizeObservation(a))}}getSummaries(e,r,n){let i=this.dbManager.getSessionStore().db,a=` SELECT ss.id, s.content_session_id as session_id, @@ -1042,64 +1134,84 @@ ${a.prompts.header_memory_continued}`}hr();vr();ln();var km=require("path"),DT=r ss.created_at_epoch FROM session_summaries ss JOIN sdk_sessions s ON ss.memory_session_id = s.memory_session_id - `,i=[];a&&(s+=" WHERE ss.project = ?",i.push(a)),s+=" ORDER BY ss.created_at_epoch DESC LIMIT ? OFFSET ?",i.push(r+1,e);let c=n.prepare(s).all(...i);return{items:c.slice(0,r),hasMore:c.length>r,offset:e,limit:r}}getPrompts(e,r,a){let n=this.dbManager.getSessionStore().db,s=` + `,o=[];n&&(a+=" WHERE ss.project = ?",o.push(n)),a+=" ORDER BY ss.created_at_epoch DESC LIMIT ? OFFSET ?",o.push(r+1,e);let c=i.prepare(a).all(...o);return{items:c.slice(0,r),hasMore:c.length>r,offset:e,limit:r}}getPrompts(e,r,n){let i=this.dbManager.getSessionStore().db,a=` SELECT up.id, up.content_session_id, s.project, up.prompt_number, up.prompt_text, up.created_at, up.created_at_epoch FROM user_prompts up JOIN sdk_sessions s ON up.content_session_id = s.content_session_id - `,i=[];a&&(s+=" WHERE s.project = ?",i.push(a)),s+=" ORDER BY up.created_at_epoch DESC LIMIT ? OFFSET ?",i.push(r+1,e);let c=n.prepare(s).all(...i);return{items:c.slice(0,r),hasMore:c.length>r,offset:e,limit:r}}paginate(e,r,a,n,s){let i=this.dbManager.getSessionStore().db,o=`SELECT ${r} FROM ${e}`,c=[];s&&(o+=" WHERE project = ?",c.push(s)),o+=" ORDER BY created_at_epoch DESC LIMIT ? OFFSET ?",c.push(n+1,a);let l=i.prepare(o).all(...c);return{items:l.slice(0,n),hasMore:l.length>n,offset:a,limit:n}}};Ke();var Kl=class{dbManager;defaultSettings={sidebarOpen:!0,selectedProject:null,theme:"system"};constructor(e){this.dbManager=e}getSettings(){let e=this.dbManager.getSessionStore().db;try{let a=e.prepare("SELECT key, value FROM viewer_settings").all(),n={...this.defaultSettings};for(let s of a){let i=s.key;i in n&&(n[i]=JSON.parse(s.value))}return n}catch(r){return P.debug("WORKER","Failed to load settings, using defaults",{},r),{...this.defaultSettings}}}updateSettings(e){let a=this.dbManager.getSessionStore().db.prepare(` + `,o=[];n&&(a+=" WHERE s.project = ?",o.push(n)),a+=" ORDER BY up.created_at_epoch DESC LIMIT ? OFFSET ?",o.push(r+1,e);let c=i.prepare(a).all(...o);return{items:c.slice(0,r),hasMore:c.length>r,offset:e,limit:r}}paginate(e,r,n,i,a){let o=this.dbManager.getSessionStore().db,s=`SELECT ${r} FROM ${e}`,c=[];a&&(s+=" WHERE project = ?",c.push(a)),s+=" ORDER BY created_at_epoch DESC LIMIT ? OFFSET ?",c.push(i+1,n);let l=o.prepare(s).all(...c);return{items:l.slice(0,i),hasMore:l.length>i,offset:n,limit:i}}};Ne();var og=class{dbManager;defaultSettings={sidebarOpen:!0,selectedProject:null,theme:"system"};constructor(e){this.dbManager=e}getSettings(){let e=this.dbManager.getSessionStore().db;try{let n=e.prepare("SELECT key, value FROM viewer_settings").all(),i={...this.defaultSettings};for(let a of n){let o=a.key;o in i&&(i[o]=JSON.parse(a.value))}return i}catch(r){return k.debug("WORKER","Failed to load settings, using defaults",{},r),{...this.defaultSettings}}}updateSettings(e){let n=this.dbManager.getSessionStore().db.prepare(` INSERT OR REPLACE INTO viewer_settings (key, value) VALUES (?, ?) - `);for(let[n,s]of Object.entries(e))a.run(n,JSON.stringify(s));return this.getSettings()}};var TR=require("path");Ke();_h();ln();var gV=90,Pi=gV*24*60*60*1e3,Jl=class{constructor(e,r,a,n,s){this.sessionSearch=e;this.sessionStore=r;this.chromaSync=a;this.formatter=n;this.timelineService=s}async queryChroma(e,r,a){return await this.chromaSync.queryChroma(e,r,a)}normalizeParams(e){let r={...e};return r.concepts&&typeof r.concepts=="string"&&(r.concepts=r.concepts.split(",").map(a=>a.trim()).filter(Boolean)),r.files&&typeof r.files=="string"&&(r.files=r.files.split(",").map(a=>a.trim()).filter(Boolean)),r.obs_type&&typeof r.obs_type=="string"&&(r.obs_type=r.obs_type.split(",").map(a=>a.trim()).filter(Boolean)),r.type&&typeof r.type=="string"&&r.type.includes(",")&&(r.type=r.type.split(",").map(a=>a.trim()).filter(Boolean)),(r.dateStart||r.dateEnd)&&(r.dateRange={start:r.dateStart,end:r.dateEnd},delete r.dateStart,delete r.dateEnd),r}async search(e){let r=this.normalizeParams(e),{query:a,type:n,obs_type:s,concepts:i,files:o,format:c,...u}=r,l=[],d=[],p=[],f=!1,v=!n||n==="observations",_=!n||n==="sessions",m=!n||n==="prompts";if(a)if(this.chromaSync){let E=!1;P.debug("SEARCH","Using ChromaDB semantic search",{typeFilter:n||"all"});let T;n==="observations"?T={doc_type:"observation"}:n==="sessions"?T={doc_type:"session_summary"}:n==="prompts"&&(T={doc_type:"user_prompt"});let R=await this.queryChroma(a,100,T);if(E=!0,P.debug("SEARCH","ChromaDB returned semantic matches",{matchCount:R.ids.length}),R.ids.length>0){let M=Date.now()-Pi,j=R.metadatas.map((W,oe)=>({id:R.ids[oe],meta:W,isRecent:W&&W.created_at_epoch>M})).filter(W=>W.isRecent);P.debug("SEARCH","Results within 90-day window",{count:j.length});let q=[],H=[],N=[];for(let W of j){let oe=W.meta?.doc_type;oe==="observation"&&v?q.push(W.id):oe==="session_summary"&&_?H.push(W.id):oe==="user_prompt"&&m&&N.push(W.id)}if(P.debug("SEARCH","Categorized results by type",{observations:q.length,sessions:H.length,prompts:p.length}),q.length>0){let W={...u,type:s,concepts:i,files:o};l=this.sessionStore.getObservationsByIds(q,W)}H.length>0&&(d=this.sessionStore.getSessionSummariesByIds(H,{orderBy:"date_desc",limit:u.limit,project:u.project})),N.length>0&&(p=this.sessionStore.getUserPromptsByIds(N,{orderBy:"date_desc",limit:u.limit,project:u.project})),P.debug("SEARCH","Hydrated results from SQLite",{observations:l.length,sessions:d.length,prompts:p.length})}else P.debug("SEARCH","ChromaDB found no matches (final result, no FTS5 fallback)",{})}else a&&(f=!0,P.debug("SEARCH","ChromaDB not initialized - semantic search unavailable",{}),P.debug("SEARCH","Install UVX/Python to enable vector search",{url:"https://docs.astral.sh/uv/getting-started/installation/"}),l=[],d=[],p=[]);else{P.debug("SEARCH","Filter-only query (no query text), using direct SQLite filtering",{enablesDateFilters:!0});let E={...u,type:s,concepts:i,files:o};v&&(l=this.sessionSearch.searchObservations(void 0,E)),_&&(d=this.sessionSearch.searchSessions(void 0,u)),m&&(p=this.sessionSearch.searchUserPrompts(void 0,u))}let h=l.length+d.length+p.length;if(c==="json")return{observations:l,sessions:d,prompts:p,totalResults:h,query:a||""};if(h===0)return f?{content:[{type:"text",text:`\u26A0\uFE0F Vector search failed - semantic search unavailable. + `);for(let[i,a]of Object.entries(e))n.run(i,JSON.stringify(a));return this.getSettings()}};var Y6=require("path");Ne();kd();jr();var Zi=class{emptyResult(e){return{results:{observations:[],sessions:[],prompts:[]},usedChroma:e==="chroma"||e==="hybrid",fellBack:!1,strategy:e}}};var qt={RECENCY_WINDOW_DAYS:90,RECENCY_WINDOW_MS:2160*60*60*1e3,DEFAULT_LIMIT:20,CHROMA_BATCH_SIZE:100};Ne();var Td=class extends Zi{constructor(r,n){super();this.chromaSync=r;this.sessionStore=n}name="chroma";canHandle(r){return!!r.query&&!!this.chromaSync}async search(r){let{query:n,searchType:i="all",obsType:a,concepts:o,files:s,limit:c=qt.DEFAULT_LIMIT,project:u,orderBy:l="date_desc"}=r;if(!n)return this.emptyResult("chroma");let d=i==="all"||i==="observations",p=i==="all"||i==="sessions",f=i==="all"||i==="prompts",h=[],_=[],y=[];try{let m=this.buildWhereFilter(i);k.debug("SEARCH","ChromaSearchStrategy: Querying Chroma",{query:n,searchType:i});let v=await this.chromaSync.queryChroma(n,qt.CHROMA_BATCH_SIZE,m);if(k.debug("SEARCH","ChromaSearchStrategy: Chroma returned matches",{matchCount:v.ids.length}),v.ids.length===0)return{results:{observations:[],sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"chroma"};let g=this.filterByRecency(v);k.debug("SEARCH","ChromaSearchStrategy: Filtered by recency",{count:g.length});let b=this.categorizeByDocType(g,{searchObservations:d,searchSessions:p,searchPrompts:f});if(b.obsIds.length>0){let S={type:a,concepts:o,files:s,orderBy:l,limit:c,project:u};h=this.sessionStore.getObservationsByIds(b.obsIds,S)}return b.sessionIds.length>0&&(_=this.sessionStore.getSessionSummariesByIds(b.sessionIds,{orderBy:l,limit:c,project:u})),b.promptIds.length>0&&(y=this.sessionStore.getUserPromptsByIds(b.promptIds,{orderBy:l,limit:c,project:u})),k.debug("SEARCH","ChromaSearchStrategy: Hydrated results",{observations:h.length,sessions:_.length,prompts:y.length}),{results:{observations:h,sessions:_,prompts:y},usedChroma:!0,fellBack:!1,strategy:"chroma"}}catch(m){return k.warn("SEARCH","ChromaSearchStrategy: Search failed",{},m),{results:{observations:[],sessions:[],prompts:[]},usedChroma:!1,fellBack:!1,strategy:"chroma"}}}buildWhereFilter(r){switch(r){case"observations":return{doc_type:"observation"};case"sessions":return{doc_type:"session_summary"};case"prompts":return{doc_type:"user_prompt"};default:return}}filterByRecency(r){let n=Date.now()-qt.RECENCY_WINDOW_MS;return r.metadatas.map((i,a)=>({id:r.ids[a],meta:i})).filter(i=>i.meta&&i.meta.created_at_epoch>n)}categorizeByDocType(r,n){let i=[],a=[],o=[];for(let s of r){let c=s.meta?.doc_type;c==="observation"&&n.searchObservations?i.push(s.id):c==="session_summary"&&n.searchSessions?a.push(s.id):c==="user_prompt"&&n.searchPrompts&&o.push(s.id)}return{obsIds:i,sessionIds:a,promptIds:o}}};Ne();var Id=class extends Zi{constructor(r){super();this.sessionSearch=r}name="sqlite";canHandle(r){return!r.query||r.strategyHint==="sqlite"}async search(r){let{searchType:n="all",obsType:i,concepts:a,files:o,limit:s=qt.DEFAULT_LIMIT,offset:c=0,project:u,dateRange:l,orderBy:d="date_desc"}=r,p=n==="all"||n==="observations",f=n==="all"||n==="sessions",h=n==="all"||n==="prompts",_=[],y=[],m=[],v={limit:s,offset:c,orderBy:d,project:u,dateRange:l};k.debug("SEARCH","SQLiteSearchStrategy: Filter-only query",{searchType:n,hasDateRange:!!l,hasProject:!!u});try{if(p){let g={...v,type:i,concepts:a,files:o};_=this.sessionSearch.searchObservations(void 0,g)}return f&&(y=this.sessionSearch.searchSessions(void 0,v)),h&&(m=this.sessionSearch.searchUserPrompts(void 0,v)),k.debug("SEARCH","SQLiteSearchStrategy: Results",{observations:_.length,sessions:y.length,prompts:m.length}),{results:{observations:_,sessions:y,prompts:m},usedChroma:!1,fellBack:!1,strategy:"sqlite"}}catch(g){return k.warn("SEARCH","SQLiteSearchStrategy: Search failed",{},g),this.emptyResult("sqlite")}}findByConcept(r,n){let{limit:i=qt.DEFAULT_LIMIT,project:a,dateRange:o,orderBy:s="date_desc"}=n;return this.sessionSearch.findByConcept(r,{limit:i,project:a,dateRange:o,orderBy:s})}findByType(r,n){let{limit:i=qt.DEFAULT_LIMIT,project:a,dateRange:o,orderBy:s="date_desc"}=n;return this.sessionSearch.findByType(r,{limit:i,project:a,dateRange:o,orderBy:s})}findByFile(r,n){let{limit:i=qt.DEFAULT_LIMIT,project:a,dateRange:o,orderBy:s="date_desc"}=n;return this.sessionSearch.findByFile(r,{limit:i,project:a,dateRange:o,orderBy:s})}};Ne();var Pd=class extends Zi{constructor(r,n,i){super();this.chromaSync=r;this.sessionStore=n;this.sessionSearch=i}name="hybrid";canHandle(r){return!!this.chromaSync&&(!!r.concepts||!!r.files||!!r.type&&!!r.query||r.strategyHint==="hybrid")}async search(r){let{query:n,limit:i=qt.DEFAULT_LIMIT,project:a}=r;return n?this.emptyResult("hybrid"):this.emptyResult("hybrid")}async findByConcept(r,n){let{limit:i=qt.DEFAULT_LIMIT,project:a,dateRange:o,orderBy:s}=n,c={limit:i,project:a,dateRange:o,orderBy:s};try{k.debug("SEARCH","HybridSearchStrategy: findByConcept",{concept:r});let u=this.sessionSearch.findByConcept(r,c);if(k.debug("SEARCH","HybridSearchStrategy: Found metadata matches",{count:u.length}),u.length===0)return this.emptyResult("hybrid");let l=u.map(f=>f.id),d=await this.chromaSync.queryChroma(r,Math.min(l.length,qt.CHROMA_BATCH_SIZE)),p=this.intersectWithRanking(l,d.ids);if(k.debug("SEARCH","HybridSearchStrategy: Ranked by semantic relevance",{count:p.length}),p.length>0){let f=this.sessionStore.getObservationsByIds(p,{limit:i});return f.sort((h,_)=>p.indexOf(h.id)-p.indexOf(_.id)),{results:{observations:f,sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"hybrid"}}return this.emptyResult("hybrid")}catch(u){return k.warn("SEARCH","HybridSearchStrategy: findByConcept failed",{},u),{results:{observations:this.sessionSearch.findByConcept(r,c),sessions:[],prompts:[]},usedChroma:!1,fellBack:!0,strategy:"hybrid"}}}async findByType(r,n){let{limit:i=qt.DEFAULT_LIMIT,project:a,dateRange:o,orderBy:s}=n,c={limit:i,project:a,dateRange:o,orderBy:s},u=Array.isArray(r)?r.join(", "):r;try{k.debug("SEARCH","HybridSearchStrategy: findByType",{type:u});let l=this.sessionSearch.findByType(r,c);if(k.debug("SEARCH","HybridSearchStrategy: Found metadata matches",{count:l.length}),l.length===0)return this.emptyResult("hybrid");let d=l.map(h=>h.id),p=await this.chromaSync.queryChroma(u,Math.min(d.length,qt.CHROMA_BATCH_SIZE)),f=this.intersectWithRanking(d,p.ids);if(k.debug("SEARCH","HybridSearchStrategy: Ranked by semantic relevance",{count:f.length}),f.length>0){let h=this.sessionStore.getObservationsByIds(f,{limit:i});return h.sort((_,y)=>f.indexOf(_.id)-f.indexOf(y.id)),{results:{observations:h,sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"hybrid"}}return this.emptyResult("hybrid")}catch(l){return k.warn("SEARCH","HybridSearchStrategy: findByType failed",{},l),{results:{observations:this.sessionSearch.findByType(r,c),sessions:[],prompts:[]},usedChroma:!1,fellBack:!0,strategy:"hybrid"}}}async findByFile(r,n){let{limit:i=qt.DEFAULT_LIMIT,project:a,dateRange:o,orderBy:s}=n,c={limit:i,project:a,dateRange:o,orderBy:s};try{k.debug("SEARCH","HybridSearchStrategy: findByFile",{filePath:r});let u=this.sessionSearch.findByFile(r,c);k.debug("SEARCH","HybridSearchStrategy: Found file matches",{observations:u.observations.length,sessions:u.sessions.length});let l=u.sessions;if(u.observations.length===0)return{observations:[],sessions:l,usedChroma:!1};let d=u.observations.map(h=>h.id),p=await this.chromaSync.queryChroma(r,Math.min(d.length,qt.CHROMA_BATCH_SIZE)),f=this.intersectWithRanking(d,p.ids);if(k.debug("SEARCH","HybridSearchStrategy: Ranked observations",{count:f.length}),f.length>0){let h=this.sessionStore.getObservationsByIds(f,{limit:i});return h.sort((_,y)=>f.indexOf(_.id)-f.indexOf(y.id)),{observations:h,sessions:l,usedChroma:!0}}return{observations:[],sessions:l,usedChroma:!1}}catch(u){k.warn("SEARCH","HybridSearchStrategy: findByFile failed",{},u);let l=this.sessionSearch.findByFile(r,c);return{observations:l.observations,sessions:l.sessions,usedChroma:!1}}}intersectWithRanking(r,n){let i=new Set(r),a=[];for(let o of n)i.has(o)&&!a.includes(o)&&a.push(o);return a}};jr();kd();var ffe=4,Rd=class{formatSearchResults(e,r,n=!1){let i=e.observations.length+e.sessions.length+e.prompts.length;if(i===0)return n?this.formatChromaFailureMessage():`No results found matching "${r}"`;let a=this.combineResults(e);a.sort((u,l)=>l.epoch-u.epoch);let o=process.cwd(),s=sg(a,u=>u.created_at),c=[];c.push(`Found ${i} result(s) matching "${r}" (${e.observations.length} obs, ${e.sessions.length} sessions, ${e.prompts.length} prompts)`),c.push("");for(let[u,l]of s){c.push(`### ${u}`),c.push("");let d=new Map;for(let p of l){let f="General";p.type==="observation"&&(f=Yn(p.data.files_modified,o)),d.has(f)||d.set(f,[]),d.get(f).push(p)}for(let[p,f]of d){c.push(`**${p}**`),c.push(this.formatSearchTableHeader());let h="";for(let _ of f)if(_.type==="observation"){let y=this.formatObservationSearchRow(_.data,h);c.push(y.row),h=y.time}else if(_.type==="session"){let y=this.formatSessionSearchRow(_.data,h);c.push(y.row),h=y.time}else{let y=this.formatPromptSearchRow(_.data,h);c.push(y.row),h=y.time}c.push("")}}return c.join(` +`)}combineResults(e){return[...e.observations.map(r=>({type:"observation",data:r,epoch:r.created_at_epoch,created_at:r.created_at})),...e.sessions.map(r=>({type:"session",data:r,epoch:r.created_at_epoch,created_at:r.created_at})),...e.prompts.map(r=>({type:"prompt",data:r,epoch:r.created_at_epoch,created_at:r.created_at}))]}formatSearchTableHeader(){return`| ID | Time | T | Title | Read | +|----|------|---|-------|------|`}formatTableHeader(){return`| ID | Time | T | Title | Read | Work | +|-----|------|---|-------|------|------|`}formatObservationSearchRow(e,r){let n=`#${e.id}`,i=Mr(e.created_at_epoch),a=He.getInstance().getTypeIcon(e.type),o=e.title||"Untitled",s=this.estimateReadTokens(e);return{row:`| ${n} | ${i===r?'"':i} | ${a} | ${o} | ~${s} |`,time:i}}formatSessionSearchRow(e,r){let n=`#S${e.id}`,i=Mr(e.created_at_epoch),a="\u{1F3AF}",o=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return{row:`| ${n} | ${i===r?'"':i} | ${a} | ${o} | - |`,time:i}}formatPromptSearchRow(e,r){let n=`#P${e.id}`,i=Mr(e.created_at_epoch),a="\u{1F4AC}",o=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return{row:`| ${n} | ${i===r?'"':i} | ${a} | ${o} | - |`,time:i}}formatObservationIndex(e,r){let n=`#${e.id}`,i=Mr(e.created_at_epoch),a=He.getInstance().getTypeIcon(e.type),o=e.title||"Untitled",s=this.estimateReadTokens(e),c=He.getInstance().getWorkEmoji(e.type),u=e.discovery_tokens||0,l=u>0?`${c} ${u}`:"-";return`| ${n} | ${i} | ${a} | ${o} | ~${s} | ${l} |`}formatSessionIndex(e,r){let n=`#S${e.id}`,i=Mr(e.created_at_epoch),a="\u{1F3AF}",o=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return`| ${n} | ${i} | ${a} | ${o} | - | - |`}formatPromptIndex(e,r){let n=`#P${e.id}`,i=Mr(e.created_at_epoch),a="\u{1F4AC}",o=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return`| ${n} | ${i} | ${a} | ${o} | - | - |`}estimateReadTokens(e){let r=(e.title?.length||0)+(e.subtitle?.length||0)+(e.narrative?.length||0)+(e.facts?.length||0);return Math.ceil(r/ffe)}formatChromaFailureMessage(){return`Vector search failed - semantic search unavailable. To enable semantic search: 1. Install uv: https://docs.astral.sh/uv/getting-started/installation/ 2. Restart the worker: npm run worker:restart -Note: You can still use filter-only searches (date ranges, types, files) without a query term.`}]}:{content:[{type:"text",text:`No results found matching "${a}"`}]};let y=[...l.map(E=>({type:"observation",data:E,epoch:E.created_at_epoch,created_at:E.created_at})),...d.map(E=>({type:"session",data:E,epoch:E.created_at_epoch,created_at:E.created_at})),...p.map(E=>({type:"prompt",data:E,epoch:E.created_at_epoch,created_at:E.created_at}))];u.orderBy==="date_desc"?y.sort((E,T)=>T.epoch-E.epoch):u.orderBy==="date_asc"&&y.sort((E,T)=>E.epoch-T.epoch);let g=y.slice(0,u.limit||20),b=process.cwd(),w=ER(g,E=>E.created_at),S=[];S.push(`Found ${h} result(s) matching "${a}" (${l.length} obs, ${d.length} sessions, ${p.length} prompts)`),S.push("");for(let[E,T]of w){S.push(`### ${E}`),S.push("");let R=new Map;for(let M of T){let j="General";M.type==="observation"&&(j=Xa(M.data.files_modified,b)),R.has(j)||R.set(j,[]),R.get(j).push(M)}for(let[M,j]of R){S.push(`**${M}**`),S.push(this.formatter.formatSearchTableHeader());let q="";for(let H of j)if(H.type==="observation"){let N=this.formatter.formatObservationSearchRow(H.data,q);S.push(N.row),q=N.time}else if(H.type==="session"){let N=this.formatter.formatSessionSearchRow(H.data,q);S.push(N.row),q=N.time}else{let N=this.formatter.formatUserPromptSearchRow(H.data,q);S.push(N.row),q=N.time}S.push("")}}return{content:[{type:"text",text:S.join(` -`)}]}}async timeline(e){let{anchor:r,query:a,depth_before:n=10,depth_after:s=10,project:i}=e,o=process.cwd();if(!r&&!a)return{content:[{type:"text",text:'Error: Must provide either "anchor" or "query" parameter'}],isError:!0};if(r&&a)return{content:[{type:"text",text:'Error: Cannot provide both "anchor" and "query" parameters. Use one or the other.'}],isError:!0};let c,u,l;if(a){let m=[];if(this.chromaSync)try{P.debug("SEARCH","Using hybrid semantic search for timeline query",{});let y=await this.queryChroma(a,100);if(P.debug("SEARCH","Chroma returned semantic matches for timeline",{matchCount:y?.ids?.length??0}),y?.ids&&y.ids.length>0){let g=Date.now()-Pi,b=y.ids.filter((w,S)=>{let E=y.metadatas[S];return E&&E.created_at_epoch>g});b.length>0&&(m=this.sessionStore.getObservationsByIds(b,{orderBy:"date_desc",limit:1}))}}catch(y){P.warn("SEARCH","Chroma search failed for timeline, continuing without semantic results",{},y)}if(m.length===0)return{content:[{type:"text",text:`No observations found matching "${a}". Try a different search query.`}]};let h=m[0];c=h.id,u=h.created_at_epoch,P.debug("SEARCH","Query mode: Using observation as timeline anchor",{observationId:h.id}),l=this.sessionStore.getTimelineAroundObservation(h.id,h.created_at_epoch,n,s,i)}else if(typeof r=="number"){let m=this.sessionStore.getObservationById(r);if(!m)return{content:[{type:"text",text:`Observation #${r} not found`}],isError:!0};c=r,u=m.created_at_epoch,l=this.sessionStore.getTimelineAroundObservation(r,u,n,s,i)}else if(typeof r=="string")if(r.startsWith("S")||r.startsWith("#S")){let m=r.replace(/^#?S/,""),h=parseInt(m,10),y=this.sessionStore.getSessionSummariesByIds([h]);if(y.length===0)return{content:[{type:"text",text:`Session #${h} not found`}],isError:!0};u=y[0].created_at_epoch,c=`S${h}`,l=this.sessionStore.getTimelineAroundTimestamp(u,n,s,i)}else{let m=new Date(r);if(isNaN(m.getTime()))return{content:[{type:"text",text:`Invalid timestamp: ${r}`}],isError:!0};u=m.getTime(),c=r,l=this.sessionStore.getTimelineAroundTimestamp(u,n,s,i)}else return{content:[{type:"text",text:'Invalid anchor: must be observation ID (number), session ID (e.g., "S123"), or ISO timestamp'}],isError:!0};let d=[...(l.observations||[]).map(m=>({type:"observation",data:m,epoch:m.created_at_epoch})),...(l.sessions||[]).map(m=>({type:"session",data:m,epoch:m.created_at_epoch})),...(l.prompts||[]).map(m=>({type:"prompt",data:m,epoch:m.created_at_epoch}))];d.sort((m,h)=>m.epoch-h.epoch);let p=this.timelineService.filterByDepth(d,c,u,n,s);if(!p||p.length===0)return{content:[{type:"text",text:a?`Found observation matching "${a}", but no timeline context available (${n} records before, ${s} records after).`:`No context found around anchor (${n} records before, ${s} records after)`}]};let f=[];if(a){let m=p.find(y=>y.type==="observation"&&y.data.id===c),h=m&&m.type==="observation"?m.data.title||"Untitled":"Unknown";f.push(`# Timeline for query: "${a}"`),f.push(`**Anchor:** Observation #${c} - ${h}`)}else f.push(`# Timeline around anchor: ${c}`);f.push(`**Window:** ${n} records before \u2192 ${s} records after | **Items:** ${p?.length??0}`),f.push("");let v=new Map;for(let m of p){let h=Ka(m.epoch);v.has(h)||v.set(h,[]),v.get(h).push(m)}let _=Array.from(v.entries()).sort((m,h)=>{let y=new Date(m[0]).getTime(),g=new Date(h[0]).getTime();return y-g});for(let[m,h]of _){f.push(`### ${m}`),f.push("");let y=null,g="",b=!1;for(let w of h){let S=typeof c=="number"&&w.type==="observation"&&w.data.id===c||typeof c=="string"&&c.startsWith("S")&&w.type==="session"&&`S${w.data.id}`===c;if(w.type==="session"){b&&(f.push(""),b=!1,y=null,g="");let E=w.data,T=E.request||"Session summary",R=S?" \u2190 **ANCHOR**":"";f.push(`**\u{1F3AF} #S${E.id}** ${T} (${$n(w.epoch)})${R}`),f.push("")}else if(w.type==="prompt"){b&&(f.push(""),b=!1,y=null,g="");let E=w.data,T=E.prompt_text.length>100?E.prompt_text.substring(0,100)+"...":E.prompt_text;f.push(`**\u{1F4AC} User Prompt #${E.prompt_number}** (${$n(w.epoch)})`),f.push(`> ${T}`),f.push("")}else if(w.type==="observation"){let E=w.data,T=Xa(E.files_modified,o);T!==y&&(b&&f.push(""),f.push(`**${T}**`),f.push("| ID | Time | T | Title | Tokens |"),f.push("|----|------|---|-------|--------|"),y=T,b=!0,g="");let R=dt.getInstance().getTypeIcon(E.type),M=Ri(w.epoch),j=E.title||"Untitled",q=Xl(E.narrative),N=M!==g?M:"\u2033";g=M;let W=S?" \u2190 **ANCHOR**":"";f.push(`| #${E.id} | ${N} | ${R} | ${j}${W} | ~${q} |`)}}b&&f.push("")}return{content:[{type:"text",text:f.join(` -`)}]}}async decisions(e){let r=this.normalizeParams(e),{query:a,...n}=r,s=[];if(this.chromaSync)try{if(a){P.debug("SEARCH","Using Chroma semantic search with type=decision filter",{});let u=(await this.queryChroma(a,Math.min((n.limit||20)*2,100),{type:"decision"})).ids;u.length>0&&(s=this.sessionStore.getObservationsByIds(u,{...n,type:"decision"}),s.sort((l,d)=>u.indexOf(l.id)-u.indexOf(d.id)))}else{P.debug("SEARCH","Using metadata-first + semantic ranking for decisions",{});let c=this.sessionSearch.findByType("decision",n);if(c.length>0){let u=c.map(p=>p.id),l=await this.queryChroma("decision",Math.min(u.length,100)),d=[];for(let p of l.ids)u.includes(p)&&!d.includes(p)&&d.push(p);d.length>0&&(s=this.sessionStore.getObservationsByIds(d,{limit:n.limit||20}),s.sort((p,f)=>d.indexOf(p.id)-d.indexOf(f.id)))}}}catch(c){P.warn("SEARCH","Chroma search failed for decisions, falling back to metadata search",{},c)}if(s.length===0&&(s=this.sessionSearch.findByType("decision",n)),s.length===0)return{content:[{type:"text",text:"No decision observations found"}]};let i=`Found ${s.length} decision(s) +Note: You can still use filter-only searches (date ranges, types, files) without a query term.`}formatSearchTips(){return` +--- +Search Strategy: +1. Search with index to see titles, dates, IDs +2. Use timeline to get context around interesting results +3. Batch fetch full details: get_observations(ids=[...]) -${this.formatter.formatTableHeader()}`,o=s.map((c,u)=>this.formatter.formatObservationIndex(c,u));return{content:[{type:"text",text:i+` +Tips: +- Filter by type: obs_type="bugfix,feature" +- Filter by date: dateStart="2025-01-01" +- Sort: orderBy="date_desc" or "date_asc"`}};jr();kd();var bo=class{buildTimeline(e){let r=[...e.observations.map(n=>({type:"observation",data:n,epoch:n.created_at_epoch})),...e.sessions.map(n=>({type:"session",data:n,epoch:n.created_at_epoch})),...e.prompts.map(n=>({type:"prompt",data:n,epoch:n.created_at_epoch}))];return r.sort((n,i)=>n.epoch-i.epoch),r}filterByDepth(e,r,n,i,a){if(e.length===0)return e;let o=this.findAnchorIndex(e,r,n);if(o===-1)return e;let s=Math.max(0,o-i),c=Math.min(e.length,o+a+1);return e.slice(s,c)}findAnchorIndex(e,r,n){if(typeof r=="number")return e.findIndex(a=>a.type==="observation"&&a.data.id===r);if(typeof r=="string"&&r.startsWith("S")){let a=parseInt(r.slice(1),10);return e.findIndex(o=>o.type==="session"&&o.data.id===a)}let i=e.findIndex(a=>a.epoch>=n);return i===-1?e.length-1:i}formatTimeline(e,r,n={}){let{query:i,depthBefore:a,depthAfter:o,cwd:s=process.cwd()}=n;if(e.length===0)return i?`Found observation matching "${i}", but no timeline context available.`:"No timeline items found";let c=[];if(i&&r){let d=e.find(f=>f.type==="observation"&&f.data.id===r),p=d?d.data.title||"Untitled":"Unknown";c.push(`# Timeline for query: "${i}"`),c.push(`**Anchor:** Observation #${r} - ${p}`)}else r?c.push(`# Timeline around anchor: ${r}`):c.push("# Timeline");a!==void 0&&o!==void 0?c.push(`**Window:** ${a} records before -> ${o} records after | **Items:** ${e.length}`):c.push(`**Items:** ${e.length}`),c.push("");let u=this.groupByDay(e),l=this.sortDaysChronologically(u);for(let[d,p]of l){c.push(`### ${d}`),c.push("");let f=null,h="",_=!1;for(let y of p){let m=this.isAnchorItem(y,r);if(y.type==="session"){_&&(c.push(""),_=!1,f=null,h="");let v=y.data,g=v.request||"Session summary",b=m?" <- **ANCHOR**":"";c.push(`**\u{1F3AF} #S${v.id}** ${g} (${In(y.epoch)})${b}`),c.push("")}else if(y.type==="prompt"){_&&(c.push(""),_=!1,f=null,h="");let v=y.data,g=v.prompt_text.length>100?v.prompt_text.substring(0,100)+"...":v.prompt_text;c.push(`**\u{1F4AC} User Prompt #${v.prompt_number}** (${In(y.epoch)})`),c.push(`> ${g}`),c.push("")}else if(y.type==="observation"){let v=y.data,g=Yn(v.files_modified,s);g!==f&&(_&&c.push(""),c.push(`**${g}**`),c.push("| ID | Time | T | Title | Tokens |"),c.push("|----|------|---|-------|--------|"),f=g,_=!0,h="");let b=He.getInstance().getTypeIcon(v.type),S=Mr(y.epoch),x=v.title||"Untitled",w=Sc(v.narrative),R=S!==h?S:'"';h=S;let A=m?" <- **ANCHOR**":"";c.push(`| #${v.id} | ${R} | ${b} | ${x}${A} | ~${w} |`)}}_&&c.push("")}return c.join(` +`)}groupByDay(e){let r=new Map;for(let n of e){let i=Fi(n.epoch);r.has(i)||r.set(i,[]),r.get(i).push(n)}return r}sortDaysChronologically(e){return Array.from(e.entries()).sort((r,n)=>{let i=new Date(r[0]).getTime(),a=new Date(n[0]).getTime();return i-a})}isAnchorItem(e,r){return r===null?!1:typeof r=="number"&&e.type==="observation"?e.data.id===r:typeof r=="string"&&r.startsWith("S")&&e.type==="session"?`S${e.data.id}`===r:!1}};Ne();var Od=class{constructor(e,r,n){this.sessionSearch=e;this.sessionStore=r;this.chromaSync=n;this.sqliteStrategy=new Id(e),n&&(this.chromaStrategy=new Td(n,r),this.hybridStrategy=new Pd(n,r,e)),this.resultFormatter=new Rd,this.timelineBuilder=new bo}chromaStrategy=null;sqliteStrategy;hybridStrategy=null;resultFormatter;timelineBuilder;async search(e){let r=this.normalizeParams(e);return await this.executeWithFallback(r)}async executeWithFallback(e){if(!e.query)return k.debug("SEARCH","Orchestrator: Filter-only query, using SQLite",{}),await this.sqliteStrategy.search(e);if(this.chromaStrategy){k.debug("SEARCH","Orchestrator: Using Chroma semantic search",{});let r=await this.chromaStrategy.search(e);return r.usedChroma?r:(k.debug("SEARCH","Orchestrator: Chroma failed, falling back to SQLite",{}),{...await this.sqliteStrategy.search({...e,query:void 0}),fellBack:!0})}return k.debug("SEARCH","Orchestrator: Chroma not available",{}),{results:{observations:[],sessions:[],prompts:[]},usedChroma:!1,fellBack:!1,strategy:"sqlite"}}async findByConcept(e,r){let n=this.normalizeParams(r);return this.hybridStrategy?await this.hybridStrategy.findByConcept(e,n):{results:{observations:this.sqliteStrategy.findByConcept(e,n),sessions:[],prompts:[]},usedChroma:!1,fellBack:!1,strategy:"sqlite"}}async findByType(e,r){let n=this.normalizeParams(r);return this.hybridStrategy?await this.hybridStrategy.findByType(e,n):{results:{observations:this.sqliteStrategy.findByType(e,n),sessions:[],prompts:[]},usedChroma:!1,fellBack:!1,strategy:"sqlite"}}async findByFile(e,r){let n=this.normalizeParams(r);return this.hybridStrategy?await this.hybridStrategy.findByFile(e,n):{...this.sqliteStrategy.findByFile(e,n),usedChroma:!1}}getTimeline(e,r,n,i,a){let o=this.timelineBuilder.buildTimeline(e);return this.timelineBuilder.filterByDepth(o,r,n,i,a)}formatTimeline(e,r,n={}){return this.timelineBuilder.formatTimeline(e,r,n)}formatSearchResults(e,r,n=!1){return this.resultFormatter.formatSearchResults(e,r,n)}getFormatter(){return this.resultFormatter}getTimelineBuilder(){return this.timelineBuilder}normalizeParams(e){let r={...e};return r.concepts&&typeof r.concepts=="string"&&(r.concepts=r.concepts.split(",").map(n=>n.trim()).filter(Boolean)),r.files&&typeof r.files=="string"&&(r.files=r.files.split(",").map(n=>n.trim()).filter(Boolean)),r.obs_type&&typeof r.obs_type=="string"&&(r.obsType=r.obs_type.split(",").map(n=>n.trim()).filter(Boolean),delete r.obs_type),r.type&&typeof r.type=="string"&&r.type.includes(",")&&(r.type=r.type.split(",").map(n=>n.trim()).filter(Boolean)),r.type&&!r.searchType&&["observations","sessions","prompts"].includes(r.type)&&(r.searchType=r.type,delete r.type),(r.dateStart||r.dateEnd)&&(r.dateRange={start:r.dateStart,end:r.dateEnd},delete r.dateStart,delete r.dateEnd),r}isChromaAvailable(){return!!this.chromaSync}};var cg=class{constructor(e,r,n,i,a){this.sessionSearch=e;this.sessionStore=r;this.chromaSync=n;this.formatter=i;this.timelineService=a;this.orchestrator=new Od(e,r,n),this.timelineBuilder=new bo}orchestrator;timelineBuilder;async queryChroma(e,r,n){return await this.chromaSync.queryChroma(e,r,n)}normalizeParams(e){let r={...e};return r.concepts&&typeof r.concepts=="string"&&(r.concepts=r.concepts.split(",").map(n=>n.trim()).filter(Boolean)),r.files&&typeof r.files=="string"&&(r.files=r.files.split(",").map(n=>n.trim()).filter(Boolean)),r.obs_type&&typeof r.obs_type=="string"&&(r.obs_type=r.obs_type.split(",").map(n=>n.trim()).filter(Boolean)),r.type&&typeof r.type=="string"&&r.type.includes(",")&&(r.type=r.type.split(",").map(n=>n.trim()).filter(Boolean)),(r.dateStart||r.dateEnd)&&(r.dateRange={start:r.dateStart,end:r.dateEnd},delete r.dateStart,delete r.dateEnd),r}async search(e){let r=this.normalizeParams(e),{query:n,type:i,obs_type:a,concepts:o,files:s,format:c,...u}=r,l=[],d=[],p=[],f=!1,h=!i||i==="observations",_=!i||i==="sessions",y=!i||i==="prompts";if(n)if(this.chromaSync){let w=!1;k.debug("SEARCH","Using ChromaDB semantic search",{typeFilter:i||"all"});let E;i==="observations"?E={doc_type:"observation"}:i==="sessions"?E={doc_type:"session_summary"}:i==="prompts"&&(E={doc_type:"user_prompt"});let R=await this.queryChroma(n,100,E);if(w=!0,k.debug("SEARCH","ChromaDB returned semantic matches",{matchCount:R.ids.length}),R.ids.length>0){let A=Date.now()-qt.RECENCY_WINDOW_MS,M=R.metadatas.map((Y,me)=>({id:R.ids[me],meta:Y,isRecent:Y&&Y.created_at_epoch>A})).filter(Y=>Y.isRecent);k.debug("SEARCH","Results within 90-day window",{count:M.length});let q=[],B=[],U=[];for(let Y of M){let me=Y.meta?.doc_type;me==="observation"&&h?q.push(Y.id):me==="session_summary"&&_?B.push(Y.id):me==="user_prompt"&&y&&U.push(Y.id)}if(k.debug("SEARCH","Categorized results by type",{observations:q.length,sessions:B.length,prompts:p.length}),q.length>0){let Y={...u,type:a,concepts:o,files:s};l=this.sessionStore.getObservationsByIds(q,Y)}B.length>0&&(d=this.sessionStore.getSessionSummariesByIds(B,{orderBy:"date_desc",limit:u.limit,project:u.project})),U.length>0&&(p=this.sessionStore.getUserPromptsByIds(U,{orderBy:"date_desc",limit:u.limit,project:u.project})),k.debug("SEARCH","Hydrated results from SQLite",{observations:l.length,sessions:d.length,prompts:p.length})}else k.debug("SEARCH","ChromaDB found no matches (final result, no FTS5 fallback)",{})}else n&&(f=!0,k.debug("SEARCH","ChromaDB not initialized - semantic search unavailable",{}),k.debug("SEARCH","Install UVX/Python to enable vector search",{url:"https://docs.astral.sh/uv/getting-started/installation/"}),l=[],d=[],p=[]);else{k.debug("SEARCH","Filter-only query (no query text), using direct SQLite filtering",{enablesDateFilters:!0});let w={...u,type:a,concepts:o,files:s};h&&(l=this.sessionSearch.searchObservations(void 0,w)),_&&(d=this.sessionSearch.searchSessions(void 0,u)),y&&(p=this.sessionSearch.searchUserPrompts(void 0,u))}let m=l.length+d.length+p.length;if(c==="json")return{observations:l,sessions:d,prompts:p,totalResults:m,query:n||""};if(m===0)return f?{content:[{type:"text",text:`Vector search failed - semantic search unavailable. + +To enable semantic search: +1. Install uv: https://docs.astral.sh/uv/getting-started/installation/ +2. Restart the worker: npm run worker:restart + +Note: You can still use filter-only searches (date ranges, types, files) without a query term.`}]}:{content:[{type:"text",text:`No results found matching "${n}"`}]};let v=[...l.map(w=>({type:"observation",data:w,epoch:w.created_at_epoch,created_at:w.created_at})),...d.map(w=>({type:"session",data:w,epoch:w.created_at_epoch,created_at:w.created_at})),...p.map(w=>({type:"prompt",data:w,epoch:w.created_at_epoch,created_at:w.created_at}))];u.orderBy==="date_desc"?v.sort((w,E)=>E.epoch-w.epoch):u.orderBy==="date_asc"&&v.sort((w,E)=>w.epoch-E.epoch);let g=v.slice(0,u.limit||20),b=process.cwd(),S=sg(g,w=>w.created_at),x=[];x.push(`Found ${m} result(s) matching "${n}" (${l.length} obs, ${d.length} sessions, ${p.length} prompts)`),x.push("");for(let[w,E]of S){x.push(`### ${w}`),x.push("");let R=new Map;for(let A of E){let M="General";A.type==="observation"&&(M=Yn(A.data.files_modified,b)),R.has(M)||R.set(M,[]),R.get(M).push(A)}for(let[A,M]of R){x.push(`**${A}**`),x.push(this.formatter.formatSearchTableHeader());let q="";for(let B of M)if(B.type==="observation"){let U=this.formatter.formatObservationSearchRow(B.data,q);x.push(U.row),q=U.time}else if(B.type==="session"){let U=this.formatter.formatSessionSearchRow(B.data,q);x.push(U.row),q=U.time}else{let U=this.formatter.formatUserPromptSearchRow(B.data,q);x.push(U.row),q=U.time}x.push("")}}return{content:[{type:"text",text:x.join(` +`)}]}}async timeline(e){let{anchor:r,query:n,depth_before:i=10,depth_after:a=10,project:o}=e,s=process.cwd();if(!r&&!n)return{content:[{type:"text",text:'Error: Must provide either "anchor" or "query" parameter'}],isError:!0};if(r&&n)return{content:[{type:"text",text:'Error: Cannot provide both "anchor" and "query" parameters. Use one or the other.'}],isError:!0};let c,u,l;if(n){let y=[];if(this.chromaSync)try{k.debug("SEARCH","Using hybrid semantic search for timeline query",{});let v=await this.queryChroma(n,100);if(k.debug("SEARCH","Chroma returned semantic matches for timeline",{matchCount:v?.ids?.length??0}),v?.ids&&v.ids.length>0){let g=Date.now()-qt.RECENCY_WINDOW_MS,b=v.ids.filter((S,x)=>{let w=v.metadatas[x];return w&&w.created_at_epoch>g});b.length>0&&(y=this.sessionStore.getObservationsByIds(b,{orderBy:"date_desc",limit:1}))}}catch(v){k.warn("SEARCH","Chroma search failed for timeline, continuing without semantic results",{},v)}if(y.length===0)return{content:[{type:"text",text:`No observations found matching "${n}". Try a different search query.`}]};let m=y[0];c=m.id,u=m.created_at_epoch,k.debug("SEARCH","Query mode: Using observation as timeline anchor",{observationId:m.id}),l=this.sessionStore.getTimelineAroundObservation(m.id,m.created_at_epoch,i,a,o)}else if(typeof r=="number"){let y=this.sessionStore.getObservationById(r);if(!y)return{content:[{type:"text",text:`Observation #${r} not found`}],isError:!0};c=r,u=y.created_at_epoch,l=this.sessionStore.getTimelineAroundObservation(r,u,i,a,o)}else if(typeof r=="string")if(r.startsWith("S")||r.startsWith("#S")){let y=r.replace(/^#?S/,""),m=parseInt(y,10),v=this.sessionStore.getSessionSummariesByIds([m]);if(v.length===0)return{content:[{type:"text",text:`Session #${m} not found`}],isError:!0};u=v[0].created_at_epoch,c=`S${m}`,l=this.sessionStore.getTimelineAroundTimestamp(u,i,a,o)}else{let y=new Date(r);if(isNaN(y.getTime()))return{content:[{type:"text",text:`Invalid timestamp: ${r}`}],isError:!0};u=y.getTime(),c=r,l=this.sessionStore.getTimelineAroundTimestamp(u,i,a,o)}else return{content:[{type:"text",text:'Invalid anchor: must be observation ID (number), session ID (e.g., "S123"), or ISO timestamp'}],isError:!0};let d=[...(l.observations||[]).map(y=>({type:"observation",data:y,epoch:y.created_at_epoch})),...(l.sessions||[]).map(y=>({type:"session",data:y,epoch:y.created_at_epoch})),...(l.prompts||[]).map(y=>({type:"prompt",data:y,epoch:y.created_at_epoch}))];d.sort((y,m)=>y.epoch-m.epoch);let p=this.timelineService.filterByDepth(d,c,u,i,a);if(!p||p.length===0)return{content:[{type:"text",text:n?`Found observation matching "${n}", but no timeline context available (${i} records before, ${a} records after).`:`No context found around anchor (${i} records before, ${a} records after)`}]};let f=[];if(n){let y=p.find(v=>v.type==="observation"&&v.data.id===c),m=y&&y.type==="observation"?y.data.title||"Untitled":"Unknown";f.push(`# Timeline for query: "${n}"`),f.push(`**Anchor:** Observation #${c} - ${m}`)}else f.push(`# Timeline around anchor: ${c}`);f.push(`**Window:** ${i} records before -> ${a} records after | **Items:** ${p?.length??0}`),f.push("");let h=new Map;for(let y of p){let m=Fi(y.epoch);h.has(m)||h.set(m,[]),h.get(m).push(y)}let _=Array.from(h.entries()).sort((y,m)=>{let v=new Date(y[0]).getTime(),g=new Date(m[0]).getTime();return v-g});for(let[y,m]of _){f.push(`### ${y}`),f.push("");let v=null,g="",b=!1;for(let S of m){let x=typeof c=="number"&&S.type==="observation"&&S.data.id===c||typeof c=="string"&&c.startsWith("S")&&S.type==="session"&&`S${S.data.id}`===c;if(S.type==="session"){b&&(f.push(""),b=!1,v=null,g="");let w=S.data,E=w.request||"Session summary",R=x?" <- **ANCHOR**":"";f.push(`**\u{1F3AF} #S${w.id}** ${E} (${In(S.epoch)})${R}`),f.push("")}else if(S.type==="prompt"){b&&(f.push(""),b=!1,v=null,g="");let w=S.data,E=w.prompt_text.length>100?w.prompt_text.substring(0,100)+"...":w.prompt_text;f.push(`**\u{1F4AC} User Prompt #${w.prompt_number}** (${In(S.epoch)})`),f.push(`> ${E}`),f.push("")}else if(S.type==="observation"){let w=S.data,E=Yn(w.files_modified,s);E!==v&&(b&&f.push(""),f.push(`**${E}**`),f.push("| ID | Time | T | Title | Tokens |"),f.push("|----|------|---|-------|--------|"),v=E,b=!0,g="");let R=He.getInstance().getTypeIcon(w.type),A=Mr(S.epoch),M=w.title||"Untitled",q=Sc(w.narrative),U=A!==g?A:'"';g=A;let Y=x?" <- **ANCHOR**":"";f.push(`| #${w.id} | ${U} | ${R} | ${M}${Y} | ~${q} |`)}}b&&f.push("")}return{content:[{type:"text",text:f.join(` +`)}]}}async decisions(e){let r=this.normalizeParams(e),{query:n,...i}=r,a=[];if(this.chromaSync)try{if(n){k.debug("SEARCH","Using Chroma semantic search with type=decision filter",{});let u=(await this.queryChroma(n,Math.min((i.limit||20)*2,100),{type:"decision"})).ids;u.length>0&&(a=this.sessionStore.getObservationsByIds(u,{...i,type:"decision"}),a.sort((l,d)=>u.indexOf(l.id)-u.indexOf(d.id)))}else{k.debug("SEARCH","Using metadata-first + semantic ranking for decisions",{});let c=this.sessionSearch.findByType("decision",i);if(c.length>0){let u=c.map(p=>p.id),l=await this.queryChroma("decision",Math.min(u.length,100)),d=[];for(let p of l.ids)u.includes(p)&&!d.includes(p)&&d.push(p);d.length>0&&(a=this.sessionStore.getObservationsByIds(d,{limit:i.limit||20}),a.sort((p,f)=>d.indexOf(p.id)-d.indexOf(f.id)))}}}catch(c){k.warn("SEARCH","Chroma search failed for decisions, falling back to metadata search",{},c)}if(a.length===0&&(a=this.sessionSearch.findByType("decision",i)),a.length===0)return{content:[{type:"text",text:"No decision observations found"}]};let o=`Found ${a.length} decision(s) + +${this.formatter.formatTableHeader()}`,s=a.map((c,u)=>this.formatter.formatObservationIndex(c,u));return{content:[{type:"text",text:o+` +`+s.join(` +`)}]}}async changes(e){let r=this.normalizeParams(e),{...n}=r,i=[];if(this.chromaSync)try{k.debug("SEARCH","Using hybrid search for change-related observations",{});let s=this.sessionSearch.findByType("change",n),c=this.sessionSearch.findByConcept("change",n),u=this.sessionSearch.findByConcept("what-changed",n),l=new Set;if([...s,...c,...u].forEach(d=>l.add(d.id)),l.size>0){let d=Array.from(l),p=await this.queryChroma("what changed",Math.min(d.length,100)),f=[];for(let h of p.ids)d.includes(h)&&!f.includes(h)&&f.push(h);f.length>0&&(i=this.sessionStore.getObservationsByIds(f,{limit:n.limit||20}),i.sort((h,_)=>f.indexOf(h.id)-f.indexOf(_.id)))}}catch(s){k.warn("SEARCH","Chroma search failed for changes, falling back to metadata search",{},s)}if(i.length===0){let s=this.sessionSearch.findByType("change",n),c=this.sessionSearch.findByConcept("change",n),u=this.sessionSearch.findByConcept("what-changed",n),l=new Set;[...s,...c,...u].forEach(d=>l.add(d.id)),i=Array.from(l).map(d=>s.find(p=>p.id===d)||c.find(p=>p.id===d)||u.find(p=>p.id===d)).filter(Boolean),i.sort((d,p)=>p.created_at_epoch-d.created_at_epoch),i=i.slice(0,n.limit||20)}if(i.length===0)return{content:[{type:"text",text:"No change-related observations found"}]};let a=`Found ${i.length} change-related observation(s) + +${this.formatter.formatTableHeader()}`,o=i.map((s,c)=>this.formatter.formatObservationIndex(s,c));return{content:[{type:"text",text:a+` `+o.join(` -`)}]}}async changes(e){let r=this.normalizeParams(e),{...a}=r,n=[];if(this.chromaSync)try{P.debug("SEARCH","Using hybrid search for change-related observations",{});let o=this.sessionSearch.findByType("change",a),c=this.sessionSearch.findByConcept("change",a),u=this.sessionSearch.findByConcept("what-changed",a),l=new Set;if([...o,...c,...u].forEach(d=>l.add(d.id)),l.size>0){let d=Array.from(l),p=await this.queryChroma("what changed",Math.min(d.length,100)),f=[];for(let v of p.ids)d.includes(v)&&!f.includes(v)&&f.push(v);f.length>0&&(n=this.sessionStore.getObservationsByIds(f,{limit:a.limit||20}),n.sort((v,_)=>f.indexOf(v.id)-f.indexOf(_.id)))}}catch(o){P.warn("SEARCH","Chroma search failed for changes, falling back to metadata search",{},o)}if(n.length===0){let o=this.sessionSearch.findByType("change",a),c=this.sessionSearch.findByConcept("change",a),u=this.sessionSearch.findByConcept("what-changed",a),l=new Set;[...o,...c,...u].forEach(d=>l.add(d.id)),n=Array.from(l).map(d=>o.find(p=>p.id===d)||c.find(p=>p.id===d)||u.find(p=>p.id===d)).filter(Boolean),n.sort((d,p)=>p.created_at_epoch-d.created_at_epoch),n=n.slice(0,a.limit||20)}if(n.length===0)return{content:[{type:"text",text:"No change-related observations found"}]};let s=`Found ${n.length} change-related observation(s) +`)}]}}async howItWorks(e){let r=this.normalizeParams(e),{...n}=r,i=[];if(this.chromaSync){k.debug("SEARCH","Using metadata-first + semantic ranking for how-it-works",{});let s=this.sessionSearch.findByConcept("how-it-works",n);if(s.length>0){let c=s.map(d=>d.id),u=await this.queryChroma("how it works architecture",Math.min(c.length,100)),l=[];for(let d of u.ids)c.includes(d)&&!l.includes(d)&&l.push(d);l.length>0&&(i=this.sessionStore.getObservationsByIds(l,{limit:n.limit||20}),i.sort((d,p)=>l.indexOf(d.id)-l.indexOf(p.id)))}}if(i.length===0&&(i=this.sessionSearch.findByConcept("how-it-works",n)),i.length===0)return{content:[{type:"text",text:'No "how it works" observations found'}]};let a=`Found ${i.length} "how it works" observation(s) -${this.formatter.formatTableHeader()}`,i=n.map((o,c)=>this.formatter.formatObservationIndex(o,c));return{content:[{type:"text",text:s+` -`+i.join(` -`)}]}}async howItWorks(e){let r=this.normalizeParams(e),{...a}=r,n=[];if(this.chromaSync){P.debug("SEARCH","Using metadata-first + semantic ranking for how-it-works",{});let o=this.sessionSearch.findByConcept("how-it-works",a);if(o.length>0){let c=o.map(d=>d.id),u=await this.queryChroma("how it works architecture",Math.min(c.length,100)),l=[];for(let d of u.ids)c.includes(d)&&!l.includes(d)&&l.push(d);l.length>0&&(n=this.sessionStore.getObservationsByIds(l,{limit:a.limit||20}),n.sort((d,p)=>l.indexOf(d.id)-l.indexOf(p.id)))}}if(n.length===0&&(n=this.sessionSearch.findByConcept("how-it-works",a)),n.length===0)return{content:[{type:"text",text:'No "how it works" observations found'}]};let s=`Found ${n.length} "how it works" observation(s) - -${this.formatter.formatTableHeader()}`,i=n.map((o,c)=>this.formatter.formatObservationIndex(o,c));return{content:[{type:"text",text:s+` -`+i.join(` -`)}]}}async searchObservations(e){let r=this.normalizeParams(e),{query:a,...n}=r,s=[];if(this.chromaSync){P.debug("SEARCH","Using hybrid semantic search (Chroma + SQLite)",{});let c=await this.queryChroma(a,100);if(P.debug("SEARCH","Chroma returned semantic matches",{matchCount:c.ids.length}),c.ids.length>0){let u=Date.now()-Pi,l=c.ids.filter((d,p)=>{let f=c.metadatas[p];return f&&f.created_at_epoch>u});if(P.debug("SEARCH","Results within 90-day window",{count:l.length}),l.length>0){let d=n.limit||20;s=this.sessionStore.getObservationsByIds(l,{orderBy:"date_desc",limit:d}),P.debug("SEARCH","Hydrated observations from SQLite",{count:s.length})}}}if(s.length===0)return{content:[{type:"text",text:`No observations found matching "${a}"`}]};let i=`Found ${s.length} observation(s) matching "${a}" - -${this.formatter.formatTableHeader()}`,o=s.map((c,u)=>this.formatter.formatObservationIndex(c,u));return{content:[{type:"text",text:i+` +${this.formatter.formatTableHeader()}`,o=i.map((s,c)=>this.formatter.formatObservationIndex(s,c));return{content:[{type:"text",text:a+` `+o.join(` -`)}]}}async searchSessions(e){let r=this.normalizeParams(e),{query:a,...n}=r,s=[];if(this.chromaSync){P.debug("SEARCH","Using hybrid semantic search for sessions",{});let c=await this.queryChroma(a,100,{doc_type:"session_summary"});if(P.debug("SEARCH","Chroma returned semantic matches for sessions",{matchCount:c.ids.length}),c.ids.length>0){let u=Date.now()-Pi,l=c.ids.filter((d,p)=>{let f=c.metadatas[p];return f&&f.created_at_epoch>u});if(P.debug("SEARCH","Results within 90-day window",{count:l.length}),l.length>0){let d=n.limit||20;s=this.sessionStore.getSessionSummariesByIds(l,{orderBy:"date_desc",limit:d}),P.debug("SEARCH","Hydrated sessions from SQLite",{count:s.length})}}}if(s.length===0)return{content:[{type:"text",text:`No sessions found matching "${a}"`}]};let i=`Found ${s.length} session(s) matching "${a}" +`)}]}}async searchObservations(e){let r=this.normalizeParams(e),{query:n,...i}=r,a=[];if(this.chromaSync){k.debug("SEARCH","Using hybrid semantic search (Chroma + SQLite)",{});let c=await this.queryChroma(n,100);if(k.debug("SEARCH","Chroma returned semantic matches",{matchCount:c.ids.length}),c.ids.length>0){let u=Date.now()-qt.RECENCY_WINDOW_MS,l=c.ids.filter((d,p)=>{let f=c.metadatas[p];return f&&f.created_at_epoch>u});if(k.debug("SEARCH","Results within 90-day window",{count:l.length}),l.length>0){let d=i.limit||20;a=this.sessionStore.getObservationsByIds(l,{orderBy:"date_desc",limit:d}),k.debug("SEARCH","Hydrated observations from SQLite",{count:a.length})}}}if(a.length===0)return{content:[{type:"text",text:`No observations found matching "${n}"`}]};let o=`Found ${a.length} observation(s) matching "${n}" -${this.formatter.formatTableHeader()}`,o=s.map((c,u)=>this.formatter.formatSessionIndex(c,u));return{content:[{type:"text",text:i+` -`+o.join(` -`)}]}}async searchUserPrompts(e){let r=this.normalizeParams(e),{query:a,...n}=r,s=[];if(this.chromaSync){P.debug("SEARCH","Using hybrid semantic search for user prompts",{});let c=await this.queryChroma(a,100,{doc_type:"user_prompt"});if(P.debug("SEARCH","Chroma returned semantic matches for prompts",{matchCount:c.ids.length}),c.ids.length>0){let u=Date.now()-Pi,l=c.ids.filter((d,p)=>{let f=c.metadatas[p];return f&&f.created_at_epoch>u});if(P.debug("SEARCH","Results within 90-day window",{count:l.length}),l.length>0){let d=n.limit||20;s=this.sessionStore.getUserPromptsByIds(l,{orderBy:"date_desc",limit:d}),P.debug("SEARCH","Hydrated user prompts from SQLite",{count:s.length})}}}if(s.length===0)return{content:[{type:"text",text:a?`No user prompts found matching "${a}"`:"No user prompts found"}]};let i=`Found ${s.length} user prompt(s) matching "${a}" +${this.formatter.formatTableHeader()}`,s=a.map((c,u)=>this.formatter.formatObservationIndex(c,u));return{content:[{type:"text",text:o+` +`+s.join(` +`)}]}}async searchSessions(e){let r=this.normalizeParams(e),{query:n,...i}=r,a=[];if(this.chromaSync){k.debug("SEARCH","Using hybrid semantic search for sessions",{});let c=await this.queryChroma(n,100,{doc_type:"session_summary"});if(k.debug("SEARCH","Chroma returned semantic matches for sessions",{matchCount:c.ids.length}),c.ids.length>0){let u=Date.now()-qt.RECENCY_WINDOW_MS,l=c.ids.filter((d,p)=>{let f=c.metadatas[p];return f&&f.created_at_epoch>u});if(k.debug("SEARCH","Results within 90-day window",{count:l.length}),l.length>0){let d=i.limit||20;a=this.sessionStore.getSessionSummariesByIds(l,{orderBy:"date_desc",limit:d}),k.debug("SEARCH","Hydrated sessions from SQLite",{count:a.length})}}}if(a.length===0)return{content:[{type:"text",text:`No sessions found matching "${n}"`}]};let o=`Found ${a.length} session(s) matching "${n}" -${this.formatter.formatTableHeader()}`,o=s.map((c,u)=>this.formatter.formatUserPromptIndex(c,u));return{content:[{type:"text",text:i+` -`+o.join(` -`)}]}}async findByConcept(e){let r=this.normalizeParams(e),{concepts:a,...n}=r,s=[];if(this.chromaSync){P.debug("SEARCH","Using metadata-first + semantic ranking for concept search",{});let c=this.sessionSearch.findByConcept(a,n);if(P.debug("SEARCH","Found observations with concept",{concept:a,count:c.length}),c.length>0){let u=c.map(p=>p.id),l=await this.queryChroma(a,Math.min(u.length,100)),d=[];for(let p of l.ids)u.includes(p)&&!d.includes(p)&&d.push(p);P.debug("SEARCH","Chroma ranked results by semantic relevance",{count:d.length}),d.length>0&&(s=this.sessionStore.getObservationsByIds(d,{limit:n.limit||20}),s.sort((p,f)=>d.indexOf(p.id)-d.indexOf(f.id)))}}if(s.length===0&&(P.debug("SEARCH","Using SQLite-only concept search",{}),s=this.sessionSearch.findByConcept(a,n)),s.length===0)return{content:[{type:"text",text:`No observations found with concept "${a}"`}]};let i=`Found ${s.length} observation(s) with concept "${a}" +${this.formatter.formatTableHeader()}`,s=a.map((c,u)=>this.formatter.formatSessionIndex(c,u));return{content:[{type:"text",text:o+` +`+s.join(` +`)}]}}async searchUserPrompts(e){let r=this.normalizeParams(e),{query:n,...i}=r,a=[];if(this.chromaSync){k.debug("SEARCH","Using hybrid semantic search for user prompts",{});let c=await this.queryChroma(n,100,{doc_type:"user_prompt"});if(k.debug("SEARCH","Chroma returned semantic matches for prompts",{matchCount:c.ids.length}),c.ids.length>0){let u=Date.now()-qt.RECENCY_WINDOW_MS,l=c.ids.filter((d,p)=>{let f=c.metadatas[p];return f&&f.created_at_epoch>u});if(k.debug("SEARCH","Results within 90-day window",{count:l.length}),l.length>0){let d=i.limit||20;a=this.sessionStore.getUserPromptsByIds(l,{orderBy:"date_desc",limit:d}),k.debug("SEARCH","Hydrated user prompts from SQLite",{count:a.length})}}}if(a.length===0)return{content:[{type:"text",text:n?`No user prompts found matching "${n}"`:"No user prompts found"}]};let o=`Found ${a.length} user prompt(s) matching "${n}" -${this.formatter.formatTableHeader()}`,o=s.map((c,u)=>this.formatter.formatObservationIndex(c,u));return{content:[{type:"text",text:i+` -`+o.join(` -`)}]}}async findByFile(e){let r=this.normalizeParams(e),{files:a,...n}=r,s=[],i=[];if(this.chromaSync){P.debug("SEARCH","Using metadata-first + semantic ranking for file search",{});let l=this.sessionSearch.findByFile(a,n);if(P.debug("SEARCH","Found results for file",{file:a,observations:l.observations.length,sessions:l.sessions.length}),i=l.sessions,l.observations.length>0){let d=l.observations.map(v=>v.id),p=await this.queryChroma(a,Math.min(d.length,100)),f=[];for(let v of p.ids)d.includes(v)&&!f.includes(v)&&f.push(v);P.debug("SEARCH","Chroma ranked observations by semantic relevance",{count:f.length}),f.length>0&&(s=this.sessionStore.getObservationsByIds(f,{limit:n.limit||20}),s.sort((v,_)=>f.indexOf(v.id)-f.indexOf(_.id)))}}if(s.length===0&&i.length===0){P.debug("SEARCH","Using SQLite-only file search",{});let l=this.sessionSearch.findByFile(a,n);s=l.observations,i=l.sessions}let o=s.length+i.length;if(o===0)return{content:[{type:"text",text:`No results found for file "${a}"`}]};let c=`Found ${o} result(s) for file "${a}" +${this.formatter.formatTableHeader()}`,s=a.map((c,u)=>this.formatter.formatUserPromptIndex(c,u));return{content:[{type:"text",text:o+` +`+s.join(` +`)}]}}async findByConcept(e){let r=this.normalizeParams(e),{concepts:n,...i}=r,a=[];if(this.chromaSync){k.debug("SEARCH","Using metadata-first + semantic ranking for concept search",{});let c=this.sessionSearch.findByConcept(n,i);if(k.debug("SEARCH","Found observations with concept",{concept:n,count:c.length}),c.length>0){let u=c.map(p=>p.id),l=await this.queryChroma(n,Math.min(u.length,100)),d=[];for(let p of l.ids)u.includes(p)&&!d.includes(p)&&d.push(p);k.debug("SEARCH","Chroma ranked results by semantic relevance",{count:d.length}),d.length>0&&(a=this.sessionStore.getObservationsByIds(d,{limit:i.limit||20}),a.sort((p,f)=>d.indexOf(p.id)-d.indexOf(f.id)))}}if(a.length===0&&(k.debug("SEARCH","Using SQLite-only concept search",{}),a=this.sessionSearch.findByConcept(n,i)),a.length===0)return{content:[{type:"text",text:`No observations found with concept "${n}"`}]};let o=`Found ${a.length} observation(s) with concept "${n}" -${this.formatter.formatTableHeader()}`,u=[];return s.forEach((l,d)=>{u.push(this.formatter.formatObservationIndex(l,d))}),i.forEach((l,d)=>{u.push(this.formatter.formatSessionIndex(l,d+s.length))}),{content:[{type:"text",text:c+` +${this.formatter.formatTableHeader()}`,s=a.map((c,u)=>this.formatter.formatObservationIndex(c,u));return{content:[{type:"text",text:o+` +`+s.join(` +`)}]}}async findByFile(e){let r=this.normalizeParams(e),{files:n,...i}=r,a=[],o=[];if(this.chromaSync){k.debug("SEARCH","Using metadata-first + semantic ranking for file search",{});let l=this.sessionSearch.findByFile(n,i);if(k.debug("SEARCH","Found results for file",{file:n,observations:l.observations.length,sessions:l.sessions.length}),o=l.sessions,l.observations.length>0){let d=l.observations.map(h=>h.id),p=await this.queryChroma(n,Math.min(d.length,100)),f=[];for(let h of p.ids)d.includes(h)&&!f.includes(h)&&f.push(h);k.debug("SEARCH","Chroma ranked observations by semantic relevance",{count:f.length}),f.length>0&&(a=this.sessionStore.getObservationsByIds(f,{limit:i.limit||20}),a.sort((h,_)=>f.indexOf(h.id)-f.indexOf(_.id)))}}if(a.length===0&&o.length===0){k.debug("SEARCH","Using SQLite-only file search",{});let l=this.sessionSearch.findByFile(n,i);a=l.observations,o=l.sessions}let s=a.length+o.length;if(s===0)return{content:[{type:"text",text:`No results found for file "${n}"`}]};let c=`Found ${s} result(s) for file "${n}" + +${this.formatter.formatTableHeader()}`,u=[];return a.forEach((l,d)=>{u.push(this.formatter.formatObservationIndex(l,d))}),o.forEach((l,d)=>{u.push(this.formatter.formatSessionIndex(l,d+a.length))}),{content:[{type:"text",text:c+` `+u.join(` -`)}]}}async findByType(e){let r=this.normalizeParams(e),{type:a,...n}=r,s=Array.isArray(a)?a.join(", "):a,i=[];if(this.chromaSync){P.debug("SEARCH","Using metadata-first + semantic ranking for type search",{});let u=this.sessionSearch.findByType(a,n);if(P.debug("SEARCH","Found observations with type",{type:s,count:u.length}),u.length>0){let l=u.map(f=>f.id),d=await this.queryChroma(s,Math.min(l.length,100)),p=[];for(let f of d.ids)l.includes(f)&&!p.includes(f)&&p.push(f);P.debug("SEARCH","Chroma ranked results by semantic relevance",{count:p.length}),p.length>0&&(i=this.sessionStore.getObservationsByIds(p,{limit:n.limit||20}),i.sort((f,v)=>p.indexOf(f.id)-p.indexOf(v.id)))}}if(i.length===0&&(P.debug("SEARCH","Using SQLite-only type search",{}),i=this.sessionSearch.findByType(a,n)),i.length===0)return{content:[{type:"text",text:`No observations found with type "${s}"`}]};let o=`Found ${i.length} observation(s) with type "${s}" +`)}]}}async findByType(e){let r=this.normalizeParams(e),{type:n,...i}=r,a=Array.isArray(n)?n.join(", "):n,o=[];if(this.chromaSync){k.debug("SEARCH","Using metadata-first + semantic ranking for type search",{});let u=this.sessionSearch.findByType(n,i);if(k.debug("SEARCH","Found observations with type",{type:a,count:u.length}),u.length>0){let l=u.map(f=>f.id),d=await this.queryChroma(a,Math.min(l.length,100)),p=[];for(let f of d.ids)l.includes(f)&&!p.includes(f)&&p.push(f);k.debug("SEARCH","Chroma ranked results by semantic relevance",{count:p.length}),p.length>0&&(o=this.sessionStore.getObservationsByIds(p,{limit:i.limit||20}),o.sort((f,h)=>p.indexOf(f.id)-p.indexOf(h.id)))}}if(o.length===0&&(k.debug("SEARCH","Using SQLite-only type search",{}),o=this.sessionSearch.findByType(n,i)),o.length===0)return{content:[{type:"text",text:`No observations found with type "${a}"`}]};let s=`Found ${o.length} observation(s) with type "${a}" -${this.formatter.formatTableHeader()}`,c=i.map((u,l)=>this.formatter.formatObservationIndex(u,l));return{content:[{type:"text",text:o+` +${this.formatter.formatTableHeader()}`,c=o.map((u,l)=>this.formatter.formatObservationIndex(u,l));return{content:[{type:"text",text:s+` `+c.join(` -`)}]}}async getRecentContext(e){let r=e.project||(0,TR.basename)(process.cwd()),a=e.limit||3,n=this.sessionStore.getRecentSessionsWithStatus(r,a);if(n.length===0)return{content:[{type:"text",text:`# Recent Session Context +`)}]}}async getRecentContext(e){let r=e.project||(0,Y6.basename)(process.cwd()),n=e.limit||3,i=this.sessionStore.getRecentSessionsWithStatus(r,n);if(i.length===0)return{content:[{type:"text",text:`# Recent Session Context -No previous sessions found for project "${r}".`}]};let s=[];s.push("# Recent Session Context"),s.push(""),s.push(`Showing last ${n.length} session(s) for **${r}**:`),s.push("");for(let i of n)if(i.memory_session_id){if(s.push("---"),s.push(""),i.has_summary){let o=this.sessionStore.getSummaryForSession(i.memory_session_id);if(o){let c=o.prompt_number?` (Prompt #${o.prompt_number})`:"";if(s.push(`**Summary${c}**`),s.push(""),o.request&&s.push(`**Request:** ${o.request}`),o.completed&&s.push(`**Completed:** ${o.completed}`),o.learned&&s.push(`**Learned:** ${o.learned}`),o.next_steps&&s.push(`**Next Steps:** ${o.next_steps}`),o.files_read)try{let l=JSON.parse(o.files_read);Array.isArray(l)&&l.length>0&&s.push(`**Files Read:** ${l.join(", ")}`)}catch(l){P.debug("WORKER","files_read is plain string, using as-is",{},l),o.files_read.trim()&&s.push(`**Files Read:** ${o.files_read}`)}if(o.files_edited)try{let l=JSON.parse(o.files_edited);Array.isArray(l)&&l.length>0&&s.push(`**Files Edited:** ${l.join(", ")}`)}catch(l){P.debug("WORKER","files_edited is plain string, using as-is",{},l),o.files_edited.trim()&&s.push(`**Files Edited:** ${o.files_edited}`)}let u=new Date(o.created_at).toLocaleString();s.push(`**Date:** ${u}`)}}else if(i.status==="active"){s.push("**In Progress**"),s.push(""),i.user_prompt&&s.push(`**Request:** ${i.user_prompt}`);let o=this.sessionStore.getObservationsForSession(i.memory_session_id);if(o.length>0){s.push(""),s.push(`**Observations (${o.length}):**`);for(let u of o)s.push(`- ${u.title}`)}else s.push(""),s.push("*No observations yet*");s.push(""),s.push("**Status:** Active - summary pending");let c=new Date(i.started_at).toLocaleString();s.push(`**Date:** ${c}`)}else{s.push(`**${i.status.charAt(0).toUpperCase()+i.status.slice(1)}**`),s.push(""),i.user_prompt&&s.push(`**Request:** ${i.user_prompt}`),s.push(""),s.push(`**Status:** ${i.status} - no summary available`);let o=new Date(i.started_at).toLocaleString();s.push(`**Date:** ${o}`)}s.push("")}return{content:[{type:"text",text:s.join(` -`)}]}}async getContextTimeline(e){let{anchor:r,depth_before:a=10,depth_after:n=10,project:s}=e,i=process.cwd(),o,c=r,u;if(typeof r=="number"){let _=this.sessionStore.getObservationById(r);if(!_)return{content:[{type:"text",text:`Observation #${r} not found`}],isError:!0};o=_.created_at_epoch,u=this.sessionStore.getTimelineAroundObservation(r,o,a,n,s)}else if(typeof r=="string")if(r.startsWith("S")||r.startsWith("#S")){let _=r.replace(/^#?S/,""),m=parseInt(_,10),h=this.sessionStore.getSessionSummariesByIds([m]);if(h.length===0)return{content:[{type:"text",text:`Session #${m} not found`}],isError:!0};o=h[0].created_at_epoch,c=`S${m}`,u=this.sessionStore.getTimelineAroundTimestamp(o,a,n,s)}else{let _=new Date(r);if(isNaN(_.getTime()))return{content:[{type:"text",text:`Invalid timestamp: ${r}`}],isError:!0};o=_.getTime(),u=this.sessionStore.getTimelineAroundTimestamp(o,a,n,s)}else return{content:[{type:"text",text:'Invalid anchor: must be observation ID (number), session ID (e.g., "S123"), or ISO timestamp'}],isError:!0};let l=[...u.observations.map(_=>({type:"observation",data:_,epoch:_.created_at_epoch})),...u.sessions.map(_=>({type:"session",data:_,epoch:_.created_at_epoch})),...u.prompts.map(_=>({type:"prompt",data:_,epoch:_.created_at_epoch}))];l.sort((_,m)=>_.epoch-m.epoch);let d=this.timelineService.filterByDepth(l,c,o,a,n);if(!d||d.length===0)return{content:[{type:"text",text:`No context found around ${new Date(o).toLocaleString()} (${a} records before, ${n} records after)`}]};let p=[];p.push(`# Timeline around anchor: ${c}`),p.push(`**Window:** ${a} records before \u2192 ${n} records after | **Items:** ${d?.length??0}`),p.push("");let f=new Map;for(let _ of d){let m=Ka(_.epoch);f.has(m)||f.set(m,[]),f.get(m).push(_)}let v=Array.from(f.entries()).sort((_,m)=>{let h=new Date(_[0]).getTime(),y=new Date(m[0]).getTime();return h-y});for(let[_,m]of v){p.push(`### ${_}`),p.push("");let h=null,y="",g=!1;for(let b of m){let w=typeof c=="number"&&b.type==="observation"&&b.data.id===c||typeof c=="string"&&c.startsWith("S")&&b.type==="session"&&`S${b.data.id}`===c;if(b.type==="session"){g&&(p.push(""),g=!1,h=null,y="");let S=b.data,E=S.request||"Session summary",T=w?" \u2190 **ANCHOR**":"";p.push(`**\u{1F3AF} #S${S.id}** ${E} (${$n(b.epoch)})${T}`),p.push("")}else if(b.type==="prompt"){g&&(p.push(""),g=!1,h=null,y="");let S=b.data,E=S.prompt_text.length>100?S.prompt_text.substring(0,100)+"...":S.prompt_text;p.push(`**\u{1F4AC} User Prompt #${S.prompt_number}** (${$n(b.epoch)})`),p.push(`> ${E}`),p.push("")}else if(b.type==="observation"){let S=b.data,E=Xa(S.files_modified,i);E!==h&&(g&&p.push(""),p.push(`**${E}**`),p.push("| ID | Time | T | Title | Tokens |"),p.push("|----|------|---|-------|--------|"),h=E,g=!0,y="");let T=dt.getInstance().getTypeIcon(S.type),R=Ri(b.epoch),M=S.title||"Untitled",j=Xl(S.narrative),H=R!==y?R:"\u2033";y=R;let N=w?" \u2190 **ANCHOR**":"";p.push(`| #${S.id} | ${H} | ${T} | ${M}${N} | ~${j} |`)}}g&&p.push("")}return{content:[{type:"text",text:p.join(` -`)}]}}async getTimelineByQuery(e){let{query:r,mode:a="auto",depth_before:n=10,depth_after:s=10,limit:i=5,project:o}=e,c=process.cwd(),u=[];if(this.chromaSync){P.debug("SEARCH","Using hybrid semantic search for timeline query",{});let l=await this.queryChroma(r,100);if(P.debug("SEARCH","Chroma returned semantic matches for timeline",{matchCount:l.ids.length}),l.ids.length>0){let d=Date.now()-Pi,p=l.ids.filter((f,v)=>{let _=l.metadatas[v];return _&&_.created_at_epoch>d});P.debug("SEARCH","Results within 90-day window",{count:p.length}),p.length>0&&(u=this.sessionStore.getObservationsByIds(p,{orderBy:"date_desc",limit:a==="auto"?1:i}),P.debug("SEARCH","Hydrated observations from SQLite",{count:u.length}))}}if(u.length===0)return{content:[{type:"text",text:`No observations found matching "${r}". Try a different search query.`}]};if(a==="interactive"){let l=[];l.push("# Timeline Anchor Search Results"),l.push(""),l.push(`Found ${u.length} observation(s) matching "${r}"`),l.push(""),l.push("To get timeline context around any of these observations, use the `get_context_timeline` tool with the observation ID as the anchor."),l.push(""),l.push(`**Top ${u.length} matches:**`),l.push("");for(let d=0;d({type:"observation",data:h,epoch:h.created_at_epoch})),...(d.sessions||[]).map(h=>({type:"session",data:h,epoch:h.created_at_epoch})),...(d.prompts||[]).map(h=>({type:"prompt",data:h,epoch:h.created_at_epoch}))];p.sort((h,y)=>h.epoch-y.epoch);let f=this.timelineService.filterByDepth(p,l.id,0,n,s);if(!f||f.length===0)return{content:[{type:"text",text:`Found observation #${l.id} matching "${r}", but no timeline context available (${n} records before, ${s} records after).`}]};let v=[];v.push(`# Timeline for query: "${r}"`),v.push(`**Anchor:** Observation #${l.id} - ${l.title||"Untitled"}`),v.push(`**Window:** ${n} records before \u2192 ${s} records after | **Items:** ${f?.length??0}`),v.push("");let _=new Map;for(let h of f){let y=Ka(h.epoch);_.has(y)||_.set(y,[]),_.get(y).push(h)}let m=Array.from(_.entries()).sort((h,y)=>{let g=new Date(h[0]).getTime(),b=new Date(y[0]).getTime();return g-b});for(let[h,y]of m){v.push(`### ${h}`),v.push("");let g=null,b="",w=!1;for(let S of y){let E=S.type==="observation"&&S.data.id===l.id;if(S.type==="session"){w&&(v.push(""),w=!1,g=null,b="");let T=S.data,R=T.request||"Session summary";v.push(`**\u{1F3AF} #S${T.id}** ${R} (${$n(S.epoch)})`),v.push("")}else if(S.type==="prompt"){w&&(v.push(""),w=!1,g=null,b="");let T=S.data,R=T.prompt_text.length>100?T.prompt_text.substring(0,100)+"...":T.prompt_text;v.push(`**\u{1F4AC} User Prompt #${T.prompt_number}** (${$n(S.epoch)})`),v.push(`> ${R}`),v.push("")}else if(S.type==="observation"){let T=S.data,R=Xa(T.files_modified,c);R!==g&&(w&&v.push(""),v.push(`**${R}**`),v.push("| ID | Time | T | Title | Tokens |"),v.push("|----|------|---|-------|--------|"),g=R,w=!0,b="");let M=dt.getInstance().getTypeIcon(T.type),j=Ri(S.epoch),q=T.title||"Untitled",H=Xl(T.narrative),W=j!==b?j:"\u2033";b=j;let oe=E?" \u2190 **ANCHOR**":"";v.push(`| #${T.id} | ${W} | ${M} | ${q}${oe} | ~${H} |`)}}w&&v.push("")}return{content:[{type:"text",text:v.join(` -`)}]}}}};ln();var yV=4,Yl=class{formatSearchTips(){return` +No previous sessions found for project "${r}".`}]};let a=[];a.push("# Recent Session Context"),a.push(""),a.push(`Showing last ${i.length} session(s) for **${r}**:`),a.push("");for(let o of i)if(o.memory_session_id){if(a.push("---"),a.push(""),o.has_summary){let s=this.sessionStore.getSummaryForSession(o.memory_session_id);if(s){let c=s.prompt_number?` (Prompt #${s.prompt_number})`:"";if(a.push(`**Summary${c}**`),a.push(""),s.request&&a.push(`**Request:** ${s.request}`),s.completed&&a.push(`**Completed:** ${s.completed}`),s.learned&&a.push(`**Learned:** ${s.learned}`),s.next_steps&&a.push(`**Next Steps:** ${s.next_steps}`),s.files_read)try{let l=JSON.parse(s.files_read);Array.isArray(l)&&l.length>0&&a.push(`**Files Read:** ${l.join(", ")}`)}catch(l){k.debug("WORKER","files_read is plain string, using as-is",{},l),s.files_read.trim()&&a.push(`**Files Read:** ${s.files_read}`)}if(s.files_edited)try{let l=JSON.parse(s.files_edited);Array.isArray(l)&&l.length>0&&a.push(`**Files Edited:** ${l.join(", ")}`)}catch(l){k.debug("WORKER","files_edited is plain string, using as-is",{},l),s.files_edited.trim()&&a.push(`**Files Edited:** ${s.files_edited}`)}let u=new Date(s.created_at).toLocaleString();a.push(`**Date:** ${u}`)}}else if(o.status==="active"){a.push("**In Progress**"),a.push(""),o.user_prompt&&a.push(`**Request:** ${o.user_prompt}`);let s=this.sessionStore.getObservationsForSession(o.memory_session_id);if(s.length>0){a.push(""),a.push(`**Observations (${s.length}):**`);for(let u of s)a.push(`- ${u.title}`)}else a.push(""),a.push("*No observations yet*");a.push(""),a.push("**Status:** Active - summary pending");let c=new Date(o.started_at).toLocaleString();a.push(`**Date:** ${c}`)}else{a.push(`**${o.status.charAt(0).toUpperCase()+o.status.slice(1)}**`),a.push(""),o.user_prompt&&a.push(`**Request:** ${o.user_prompt}`),a.push(""),a.push(`**Status:** ${o.status} - no summary available`);let s=new Date(o.started_at).toLocaleString();a.push(`**Date:** ${s}`)}a.push("")}return{content:[{type:"text",text:a.join(` +`)}]}}async getContextTimeline(e){let{anchor:r,depth_before:n=10,depth_after:i=10,project:a}=e,o=process.cwd(),s,c=r,u;if(typeof r=="number"){let _=this.sessionStore.getObservationById(r);if(!_)return{content:[{type:"text",text:`Observation #${r} not found`}],isError:!0};s=_.created_at_epoch,u=this.sessionStore.getTimelineAroundObservation(r,s,n,i,a)}else if(typeof r=="string")if(r.startsWith("S")||r.startsWith("#S")){let _=r.replace(/^#?S/,""),y=parseInt(_,10),m=this.sessionStore.getSessionSummariesByIds([y]);if(m.length===0)return{content:[{type:"text",text:`Session #${y} not found`}],isError:!0};s=m[0].created_at_epoch,c=`S${y}`,u=this.sessionStore.getTimelineAroundTimestamp(s,n,i,a)}else{let _=new Date(r);if(isNaN(_.getTime()))return{content:[{type:"text",text:`Invalid timestamp: ${r}`}],isError:!0};s=_.getTime(),u=this.sessionStore.getTimelineAroundTimestamp(s,n,i,a)}else return{content:[{type:"text",text:'Invalid anchor: must be observation ID (number), session ID (e.g., "S123"), or ISO timestamp'}],isError:!0};let l=[...u.observations.map(_=>({type:"observation",data:_,epoch:_.created_at_epoch})),...u.sessions.map(_=>({type:"session",data:_,epoch:_.created_at_epoch})),...u.prompts.map(_=>({type:"prompt",data:_,epoch:_.created_at_epoch}))];l.sort((_,y)=>_.epoch-y.epoch);let d=this.timelineService.filterByDepth(l,c,s,n,i);if(!d||d.length===0)return{content:[{type:"text",text:`No context found around ${new Date(s).toLocaleString()} (${n} records before, ${i} records after)`}]};let p=[];p.push(`# Timeline around anchor: ${c}`),p.push(`**Window:** ${n} records before -> ${i} records after | **Items:** ${d?.length??0}`),p.push("");let f=new Map;for(let _ of d){let y=Fi(_.epoch);f.has(y)||f.set(y,[]),f.get(y).push(_)}let h=Array.from(f.entries()).sort((_,y)=>{let m=new Date(_[0]).getTime(),v=new Date(y[0]).getTime();return m-v});for(let[_,y]of h){p.push(`### ${_}`),p.push("");let m=null,v="",g=!1;for(let b of y){let S=typeof c=="number"&&b.type==="observation"&&b.data.id===c||typeof c=="string"&&c.startsWith("S")&&b.type==="session"&&`S${b.data.id}`===c;if(b.type==="session"){g&&(p.push(""),g=!1,m=null,v="");let x=b.data,w=x.request||"Session summary",E=S?" <- **ANCHOR**":"";p.push(`**\u{1F3AF} #S${x.id}** ${w} (${In(b.epoch)})${E}`),p.push("")}else if(b.type==="prompt"){g&&(p.push(""),g=!1,m=null,v="");let x=b.data,w=x.prompt_text.length>100?x.prompt_text.substring(0,100)+"...":x.prompt_text;p.push(`**\u{1F4AC} User Prompt #${x.prompt_number}** (${In(b.epoch)})`),p.push(`> ${w}`),p.push("")}else if(b.type==="observation"){let x=b.data,w=Yn(x.files_modified,o);w!==m&&(g&&p.push(""),p.push(`**${w}**`),p.push("| ID | Time | T | Title | Tokens |"),p.push("|----|------|---|-------|--------|"),m=w,g=!0,v="");let E=He.getInstance().getTypeIcon(x.type),R=Mr(b.epoch),A=x.title||"Untitled",M=Sc(x.narrative),B=R!==v?R:'"';v=R;let U=S?" <- **ANCHOR**":"";p.push(`| #${x.id} | ${B} | ${E} | ${A}${U} | ~${M} |`)}}g&&p.push("")}return{content:[{type:"text",text:p.join(` +`)}]}}async getTimelineByQuery(e){let{query:r,mode:n="auto",depth_before:i=10,depth_after:a=10,limit:o=5,project:s}=e,c=process.cwd(),u=[];if(this.chromaSync){k.debug("SEARCH","Using hybrid semantic search for timeline query",{});let l=await this.queryChroma(r,100);if(k.debug("SEARCH","Chroma returned semantic matches for timeline",{matchCount:l.ids.length}),l.ids.length>0){let d=Date.now()-qt.RECENCY_WINDOW_MS,p=l.ids.filter((f,h)=>{let _=l.metadatas[h];return _&&_.created_at_epoch>d});k.debug("SEARCH","Results within 90-day window",{count:p.length}),p.length>0&&(u=this.sessionStore.getObservationsByIds(p,{orderBy:"date_desc",limit:n==="auto"?1:o}),k.debug("SEARCH","Hydrated observations from SQLite",{count:u.length}))}}if(u.length===0)return{content:[{type:"text",text:`No observations found matching "${r}". Try a different search query.`}]};if(n==="interactive"){let l=[];l.push("# Timeline Anchor Search Results"),l.push(""),l.push(`Found ${u.length} observation(s) matching "${r}"`),l.push(""),l.push("To get timeline context around any of these observations, use the `get_context_timeline` tool with the observation ID as the anchor."),l.push(""),l.push(`**Top ${u.length} matches:**`),l.push("");for(let d=0;d({type:"observation",data:m,epoch:m.created_at_epoch})),...(d.sessions||[]).map(m=>({type:"session",data:m,epoch:m.created_at_epoch})),...(d.prompts||[]).map(m=>({type:"prompt",data:m,epoch:m.created_at_epoch}))];p.sort((m,v)=>m.epoch-v.epoch);let f=this.timelineService.filterByDepth(p,l.id,0,i,a);if(!f||f.length===0)return{content:[{type:"text",text:`Found observation #${l.id} matching "${r}", but no timeline context available (${i} records before, ${a} records after).`}]};let h=[];h.push(`# Timeline for query: "${r}"`),h.push(`**Anchor:** Observation #${l.id} - ${l.title||"Untitled"}`),h.push(`**Window:** ${i} records before -> ${a} records after | **Items:** ${f?.length??0}`),h.push("");let _=new Map;for(let m of f){let v=Fi(m.epoch);_.has(v)||_.set(v,[]),_.get(v).push(m)}let y=Array.from(_.entries()).sort((m,v)=>{let g=new Date(m[0]).getTime(),b=new Date(v[0]).getTime();return g-b});for(let[m,v]of y){h.push(`### ${m}`),h.push("");let g=null,b="",S=!1;for(let x of v){let w=x.type==="observation"&&x.data.id===l.id;if(x.type==="session"){S&&(h.push(""),S=!1,g=null,b="");let E=x.data,R=E.request||"Session summary";h.push(`**\u{1F3AF} #S${E.id}** ${R} (${In(x.epoch)})`),h.push("")}else if(x.type==="prompt"){S&&(h.push(""),S=!1,g=null,b="");let E=x.data,R=E.prompt_text.length>100?E.prompt_text.substring(0,100)+"...":E.prompt_text;h.push(`**\u{1F4AC} User Prompt #${E.prompt_number}** (${In(x.epoch)})`),h.push(`> ${R}`),h.push("")}else if(x.type==="observation"){let E=x.data,R=Yn(E.files_modified,c);R!==g&&(S&&h.push(""),h.push(`**${R}**`),h.push("| ID | Time | T | Title | Tokens |"),h.push("|----|------|---|-------|--------|"),g=R,S=!0,b="");let A=He.getInstance().getTypeIcon(E.type),M=Mr(x.epoch),q=E.title||"Untitled",B=Sc(E.narrative),Y=M!==b?M:'"';b=M;let me=w?" <- **ANCHOR**":"";h.push(`| #${E.id} | ${Y} | ${A} | ${q}${me} | ~${B} |`)}}S&&h.push("")}return{content:[{type:"text",text:h.join(` +`)}]}}}};jr();var mfe=4,ug=class{formatSearchTips(){return` --- \u{1F4A1} Search Strategy: 1. Search with index to see titles, dates, IDs @@ -1109,162 +1221,18 @@ No previous sessions found for project "${r}".`}]};let s=[];s.push("# Recent Ses Tips: \u2022 Filter by type: obs_type="bugfix,feature" \u2022 Filter by date: dateStart="2025-01-01" -\u2022 Sort: orderBy="date_desc" or "date_asc"`}formatTime(e){return new Date(e).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}estimateReadTokens(e){let r=(e.title?.length||0)+(e.subtitle?.length||0)+(e.narrative?.length||0)+(e.facts?.length||0);return Math.ceil(r/yV)}formatObservationIndex(e,r){let a=`#${e.id}`,n=this.formatTime(e.created_at_epoch),s=dt.getInstance().getTypeIcon(e.type),i=e.title||"Untitled",o=this.estimateReadTokens(e),c=dt.getInstance().getWorkEmoji(e.type),u=e.discovery_tokens||0,l=u>0?`${c} ${u}`:"-";return`| ${a} | ${n} | ${s} | ${i} | ~${o} | ${l} |`}formatSessionIndex(e,r){let a=`#S${e.id}`,n=this.formatTime(e.created_at_epoch),s="\u{1F3AF}",i=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return`| ${a} | ${n} | ${s} | ${i} | - | - |`}formatUserPromptIndex(e,r){let a=`#P${e.id}`,n=this.formatTime(e.created_at_epoch),s="\u{1F4AC}",i=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return`| ${a} | ${n} | ${s} | ${i} | - | - |`}formatTableHeader(){return`| ID | Time | T | Title | Read | Work | +\u2022 Sort: orderBy="date_desc" or "date_asc"`}formatTime(e){return new Date(e).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}estimateReadTokens(e){let r=(e.title?.length||0)+(e.subtitle?.length||0)+(e.narrative?.length||0)+(e.facts?.length||0);return Math.ceil(r/mfe)}formatObservationIndex(e,r){let n=`#${e.id}`,i=this.formatTime(e.created_at_epoch),a=He.getInstance().getTypeIcon(e.type),o=e.title||"Untitled",s=this.estimateReadTokens(e),c=He.getInstance().getWorkEmoji(e.type),u=e.discovery_tokens||0,l=u>0?`${c} ${u}`:"-";return`| ${n} | ${i} | ${a} | ${o} | ~${s} | ${l} |`}formatSessionIndex(e,r){let n=`#S${e.id}`,i=this.formatTime(e.created_at_epoch),a="\u{1F3AF}",o=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return`| ${n} | ${i} | ${a} | ${o} | - | - |`}formatUserPromptIndex(e,r){let n=`#P${e.id}`,i=this.formatTime(e.created_at_epoch),a="\u{1F4AC}",o=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return`| ${n} | ${i} | ${a} | ${o} | - | - |`}formatTableHeader(){return`| ID | Time | T | Title | Read | Work | |-----|------|---|-------|------|------|`}formatSearchTableHeader(){return`| ID | Time | T | Title | Read | -|----|------|---|-------|------|`}formatObservationSearchRow(e,r){let a=`#${e.id}`,n=this.formatTime(e.created_at_epoch),s=dt.getInstance().getTypeIcon(e.type),i=e.title||"Untitled",o=this.estimateReadTokens(e);return{row:`| ${a} | ${n===r?"\u2033":n} | ${s} | ${i} | ~${o} |`,time:n}}formatSessionSearchRow(e,r){let a=`#S${e.id}`,n=this.formatTime(e.created_at_epoch),s="\u{1F3AF}",i=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return{row:`| ${a} | ${n===r?"\u2033":n} | ${s} | ${i} | - |`,time:n}}formatUserPromptSearchRow(e,r){let a=`#P${e.id}`,n=this.formatTime(e.created_at_epoch),s="\u{1F4AC}",i=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return{row:`| ${a} | ${n===r?"\u2033":n} | ${s} | ${i} | - |`,time:n}}};ln();var Ql=class{buildTimeline(e){let r=[...e.observations.map(a=>({type:"observation",data:a,epoch:a.created_at_epoch})),...e.sessions.map(a=>({type:"session",data:a,epoch:a.created_at_epoch})),...e.prompts.map(a=>({type:"prompt",data:a,epoch:a.created_at_epoch}))];return r.sort((a,n)=>a.epoch-n.epoch),r}filterByDepth(e,r,a,n,s){if(e.length===0)return e;let i=-1;if(typeof r=="number")i=e.findIndex(u=>u.type==="observation"&&u.data.id===r);else if(typeof r=="string"&&r.startsWith("S")){let u=parseInt(r.slice(1),10);i=e.findIndex(l=>l.type==="session"&&l.data.id===u)}else i=e.findIndex(u=>u.epoch>=a),i===-1&&(i=e.length-1);if(i===-1)return e;let o=Math.max(0,i-n),c=Math.min(e.length,i+s+1);return e.slice(o,c)}formatTimeline(e,r,a,n,s){if(e.length===0)return a?`Found observation matching "${a}", but no timeline context available.`:"No timeline items found";let i=[];if(a&&r){let u=e.find(d=>d.type==="observation"&&d.data.id===r),l=u?u.data.title||"Untitled":"Unknown";i.push(`# Timeline for query: "${a}"`),i.push(`**Anchor:** Observation #${r} - ${l}`)}else r?i.push(`# Timeline around anchor: ${r}`):i.push("# Timeline");n!==void 0&&s!==void 0?i.push(`**Window:** ${n} records before \u2192 ${s} records after | **Items:** ${e.length}`):i.push(`**Items:** ${e.length}`),i.push(""),i.push("**Legend:** \u{1F3AF} session-request | \u{1F534} bugfix | \u{1F7E3} feature | \u{1F504} refactor | \u2705 change | \u{1F535} discovery | \u{1F9E0} decision"),i.push("");let o=new Map;for(let u of e){let l=this.formatDate(u.epoch);o.has(l)||o.set(l,[]),o.get(l).push(u)}let c=Array.from(o.entries()).sort((u,l)=>{let d=new Date(u[0]).getTime(),p=new Date(l[0]).getTime();return d-p});for(let[u,l]of c){i.push(`### ${u}`),i.push("");let d=null,p="",f=!1;for(let v of l){let _=typeof r=="number"&&v.type==="observation"&&v.data.id===r||typeof r=="string"&&r.startsWith("S")&&v.type==="session"&&`S${v.data.id}`===r;if(v.type==="session"){f&&(i.push(""),f=!1,d=null,p="");let m=v.data,h=m.request||"Session summary",y=_?" \u2190 **ANCHOR**":"";i.push(`**\u{1F3AF} #S${m.id}** ${h} (${this.formatDateTime(v.epoch)})${y}`),i.push("")}else if(v.type==="prompt"){f&&(i.push(""),f=!1,d=null,p="");let m=v.data,h=m.prompt_text.length>100?m.prompt_text.substring(0,100)+"...":m.prompt_text;i.push(`**\u{1F4AC} User Prompt #${m.prompt_number}** (${this.formatDateTime(v.epoch)})`),i.push(`> ${h}`),i.push("")}else if(v.type==="observation"){let m=v.data,h="General";h!==d&&(f&&i.push(""),i.push(`**${h}**`),i.push("| ID | Time | T | Title | Tokens |"),i.push("|----|------|---|-------|--------|"),d=h,f=!0,p="");let y=this.getTypeIcon(m.type),g=this.formatTime(v.epoch),b=m.title||"Untitled",w=this.estimateTokens(m.narrative),E=g!==p?g:"\u2033";p=g;let T=_?" \u2190 **ANCHOR**":"";i.push(`| #${m.id} | ${E} | ${y} | ${b}${T} | ~${w} |`)}}f&&i.push("")}return i.join(` -`)}getTypeIcon(e){return dt.getInstance().getTypeIcon(e)}formatDate(e){return new Date(e).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})}formatTime(e){return new Date(e).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}formatDateTime(e){return new Date(e).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0})}estimateTokens(e){return e?Math.ceil(e.length/4):0}};var ed=class{constructor(e,r){this.sseBroadcaster=e;this.workerService=r}broadcastNewPrompt(e){this.sseBroadcaster.broadcast({type:"new_prompt",prompt:e}),this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:!0}),this.workerService.broadcastProcessingStatus()}broadcastSessionStarted(e,r){this.sseBroadcaster.broadcast({type:"session_started",sessionDbId:e,project:r}),this.workerService.broadcastProcessingStatus()}broadcastObservationQueued(e){this.sseBroadcaster.broadcast({type:"observation_queued",sessionDbId:e}),this.workerService.broadcastProcessingStatus()}broadcastSessionCompleted(e){this.sseBroadcaster.broadcast({type:"session_completed",timestamp:Date.now(),sessionDbId:e}),this.workerService.broadcastProcessingStatus()}broadcastSummarizeQueued(){this.workerService.broadcastProcessingStatus()}};var bh=xt(gu(),1),CR=xt(OR(),1),IR=xt(require("path"),1);vr();Ke();function AR(t){let e=[];e.push(bh.default.json({limit:"50mb"})),e.push((0,CR.default)()),e.push((n,s,i)=>{let c=[".html",".js",".css",".svg",".png",".jpg",".jpeg",".webp",".woff",".woff2",".ttf",".eot"].some(v=>n.path.endsWith(v)),u=n.path==="/api/logs";if(n.path.startsWith("/health")||n.path==="/"||c||u)return i();let l=Date.now(),d=`${n.method}-${Date.now()}`,p=t(n.method,n.path,n.body);P.info("HTTP",`\u2192 ${n.method} ${n.path}`,{requestId:d},p);let f=s.send.bind(s);s.send=function(v){let _=Date.now()-l;return P.info("HTTP",`\u2190 ${s.statusCode} ${n.path}`,{requestId:d,duration:`${_}ms`}),f(v)},i()});let r=or(),a=IR.default.join(r,"plugin","ui");return e.push(bh.default.static(a)),e}function Sh(t,e,r){let a=t.ip||t.connection.remoteAddress||"";if(!(a==="127.0.0.1"||a==="::1"||a==="::ffff:127.0.0.1"||a==="localhost")){P.warn("SECURITY","Admin endpoint access denied - not localhost",{endpoint:t.path,clientIp:a,method:t.method}),e.status(403).json({error:"Forbidden",message:"Admin endpoints are only accessible from localhost"});return}r()}function NR(t,e,r){if(!r||Object.keys(r).length===0||e.includes("/init"))return"";if(e.includes("/observations")){let a=r.tool_name||"?",n=r.tool_input;return`tool=${P.formatTool(a,n)}`}return e.includes("/summarize")?"requesting summary":""}var MR=xt(gu(),1),td=xt(require("path"),1),nd=require("fs");vr();Ke();var dr=class{wrapHandler(e){return(r,a)=>{try{let n=e(r,a);n instanceof Promise&&n.catch(s=>this.handleError(a,s))}catch(n){P.error("HTTP","Route handler error",{path:r.path},n),this.handleError(a,n)}}}parseIntParam(e,r,a){let n=parseInt(e.params[a],10);return isNaN(n)?(this.badRequest(r,`Invalid ${a}`),null):n}validateRequired(e,r,a){for(let n of a)if(e.body[n]===void 0||e.body[n]===null)return this.badRequest(r,`Missing ${n}`),!1;return!0}badRequest(e,r){e.status(400).json({error:r})}notFound(e,r){e.status(404).json({error:r})}handleError(e,r,a){P.failure("WORKER",a||"Request failed",{},r),e.headersSent||e.status(500).json({error:r.message})}};var rd=class extends dr{constructor(r,a,n){super();this.sseBroadcaster=r;this.dbManager=a;this.sessionManager=n}setupRoutes(r){let a=or();r.use(MR.default.static(td.default.join(a,"ui"))),r.get("/health",this.handleHealth.bind(this)),r.get("/",this.handleViewerUI.bind(this)),r.get("/stream",this.handleSSEStream.bind(this))}handleHealth=this.wrapHandler((r,a)=>{a.json({status:"ok",timestamp:Date.now()})});handleViewerUI=this.wrapHandler((r,a)=>{let n=or(),i=[td.default.join(n,"ui","viewer.html"),td.default.join(n,"plugin","ui","viewer.html")].find(c=>(0,nd.existsSync)(c));if(!i)throw new Error("Viewer UI not found at any expected location");let o=(0,nd.readFileSync)(i,"utf-8");a.setHeader("Content-Type","text/html"),a.send(o)});handleSSEStream=this.wrapHandler((r,a)=>{a.setHeader("Content-Type","text/event-stream"),a.setHeader("Cache-Control","no-cache"),a.setHeader("Connection","keep-alive"),this.sseBroadcaster.addClient(a);let n=this.dbManager.getSessionStore().getAllProjects();this.sseBroadcaster.broadcast({type:"initial_load",projects:n,timestamp:Date.now()});let s=this.sessionManager.isAnySessionProcessing(),i=this.sessionManager.getTotalActiveWork();this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:s,queueDepth:i})})};Ke();Ke();var jR=100;function wV(t){let e=(t.match(//g)||[]).length,r=(t.match(//g)||[]).length;return e+r}function DR(t){let e=wV(t);return e>jR&&P.warn("SYSTEM","tag count exceeds limit",void 0,{tagCount:e,maxAllowed:jR,contentLength:t.length}),t.replace(/[\s\S]*?<\/claude-mem-context>/g,"").replace(/[\s\S]*?<\/private>/g,"").trim()}function xh(t){return DR(t)}function LR(t){return DR(t)}var ad=class{constructor(e,r){this.sessionManager=e;this.eventBroadcaster=r}async completeByDbId(e){await this.sessionManager.deleteSession(e),this.eventBroadcaster.broadcastSessionCompleted(e)}};Ke();var nc=class{static checkUserPromptPrivacy(e,r,a,n,s,i){let o=e.getUserPrompt(r,a);return!o||o.trim()===""?(P.debug("HOOK",`Skipping ${n} - user prompt was entirely private`,{sessionId:s,promptNumber:a,...i}),null):o}};hr();vr();var sd=class extends dr{constructor(r,a,n,s,i,o,c){super();this.sessionManager=r;this.dbManager=a;this.sdkAgent=n;this.geminiAgent=s;this.openRouterAgent=i;this.eventBroadcaster=o;this.workerService=c;this.completionHandler=new ad(r,o)}completionHandler;getActiveAgent(){if(vh()){if(hh())return P.debug("SESSION","Using OpenRouter agent"),this.openRouterAgent;throw new Error("OpenRouter provider selected but no API key configured. Set CLAUDE_MEM_OPENROUTER_API_KEY in settings or OPENROUTER_API_KEY environment variable.")}if(mh()){if(fh())return P.debug("SESSION","Using Gemini agent"),this.geminiAgent;throw new Error("Gemini provider selected but no API key configured. Set CLAUDE_MEM_GEMINI_API_KEY in settings or GEMINI_API_KEY environment variable.")}return this.sdkAgent}getSelectedProvider(){return vh()&&hh()?"openrouter":mh()&&fh()?"gemini":"claude"}ensureGeneratorRunning(r,a){let n=this.sessionManager.getSession(r);if(!n)return;let s=this.getSelectedProvider();if(!n.generatorPromise){this.startGeneratorWithProvider(n,s,a);return}n.currentProvider&&n.currentProvider!==s&&P.info("SESSION","Provider changed, will switch after current generator finishes",{sessionId:r,currentProvider:n.currentProvider,selectedProvider:s,historyLength:n.conversationHistory.length})}startGeneratorWithProvider(r,a,n){if(!r)return;let s=a==="openrouter"?this.openRouterAgent:a==="gemini"?this.geminiAgent:this.sdkAgent,i=a==="openrouter"?"OpenRouter":a==="gemini"?"Gemini":"Claude SDK";P.info("SESSION",`Generator auto-starting (${n}) using ${i}`,{sessionId:r.sessionDbId,queueDepth:r.pendingMessages.length,historyLength:r.conversationHistory.length}),r.currentProvider=a,r.generatorPromise=s.startSession(r,this.workerService).catch(o=>{if(r.abortController.signal.aborted)return;P.error("SESSION","Generator failed",{sessionId:r.sessionDbId,provider:a,error:o.message},o);let c=this.sessionManager.getPendingMessageStore();try{let u=c.markSessionMessagesFailed(r.sessionDbId);u>0&&P.warn("SESSION","Marked messages as failed after generator error",{sessionId:r.sessionDbId,failedCount:u})}catch(u){P.error("SESSION","Failed to mark messages as failed",{sessionId:r.sessionDbId},u)}}).finally(()=>{let o=r.sessionDbId,c=r.abortController.signal.aborted;if(c?P.info("SESSION","Generator aborted",{sessionId:o}):P.warn("SESSION","Generator exited unexpectedly",{sessionId:o}),r.generatorPromise=null,r.currentProvider=null,this.workerService.broadcastProcessingStatus(),!c)try{let l=this.sessionManager.getPendingMessageStore().getPendingCount(o);l>0?(P.info("SESSION","Restarting generator after crash/exit with pending work",{sessionId:o,pendingCount:l}),r.abortController=new AbortController,setTimeout(()=>{let d=this.sessionManager.getSession(o);d&&!d.generatorPromise&&this.startGeneratorWithProvider(d,this.getSelectedProvider(),"crash-recovery")},1e3)):(r.abortController.abort(),P.debug("SESSION","Aborted controller after natural completion",{sessionId:o}))}catch(u){P.debug("SESSION","Error during recovery check, aborting to prevent leaks",{sessionId:o,error:u instanceof Error?u.message:String(u)}),r.abortController.abort()}})}setupRoutes(r){r.post("/sessions/:sessionDbId/init",this.handleSessionInit.bind(this)),r.post("/sessions/:sessionDbId/observations",this.handleObservations.bind(this)),r.post("/sessions/:sessionDbId/summarize",this.handleSummarize.bind(this)),r.get("/sessions/:sessionDbId/status",this.handleSessionStatus.bind(this)),r.delete("/sessions/:sessionDbId",this.handleSessionDelete.bind(this)),r.post("/sessions/:sessionDbId/complete",this.handleSessionComplete.bind(this)),r.post("/api/sessions/init",this.handleSessionInitByClaudeId.bind(this)),r.post("/api/sessions/observations",this.handleObservationsByClaudeId.bind(this)),r.post("/api/sessions/summarize",this.handleSummarizeByClaudeId.bind(this))}handleSessionInit=this.wrapHandler((r,a)=>{let n=this.parseIntParam(r,a,"sessionDbId");if(n===null)return;let{userPrompt:s,promptNumber:i}=r.body;P.info("HTTP","SessionRoutes: handleSessionInit called",{sessionDbId:n,promptNumber:i,has_userPrompt:!!s});let o=this.sessionManager.initializeSession(n,s,i),c=this.dbManager.getSessionStore().getLatestUserPrompt(o.contentSessionId);if(c){this.eventBroadcaster.broadcastNewPrompt({id:c.id,content_session_id:c.content_session_id,project:c.project,prompt_number:c.prompt_number,prompt_text:c.prompt_text,created_at_epoch:c.created_at_epoch});let u=Date.now(),l=c.prompt_text;this.dbManager.getChromaSync().syncUserPrompt(c.id,c.memory_session_id,c.project,l,c.prompt_number,c.created_at_epoch).then(()=>{let d=Date.now()-u,p=l.length>60?l.substring(0,60)+"...":l;P.debug("CHROMA","User prompt synced",{promptId:c.id,duration:`${d}ms`,prompt:p})}).catch(d=>{P.warn("CHROMA","User prompt sync failed, continuing without vector search",{promptId:c.id,prompt:l.length>60?l.substring(0,60)+"...":l},d)})}this.startGeneratorWithProvider(o,this.getSelectedProvider(),"init"),this.eventBroadcaster.broadcastSessionStarted(n,o.project),a.json({status:"initialized",sessionDbId:n,port:Xt()})});handleObservations=this.wrapHandler((r,a)=>{let n=this.parseIntParam(r,a,"sessionDbId");if(n===null)return;let{tool_name:s,tool_input:i,tool_response:o,prompt_number:c,cwd:u}=r.body;this.sessionManager.queueObservation(n,{tool_name:s,tool_input:i,tool_response:o,prompt_number:c,cwd:u}),this.ensureGeneratorRunning(n,"observation"),this.eventBroadcaster.broadcastObservationQueued(n),a.json({status:"queued"})});handleSummarize=this.wrapHandler((r,a)=>{let n=this.parseIntParam(r,a,"sessionDbId");if(n===null)return;let{last_assistant_message:s}=r.body;this.sessionManager.queueSummarize(n,s),this.ensureGeneratorRunning(n,"summarize"),this.eventBroadcaster.broadcastSummarizeQueued(),a.json({status:"queued"})});handleSessionStatus=this.wrapHandler((r,a)=>{let n=this.parseIntParam(r,a,"sessionDbId");if(n===null)return;let s=this.sessionManager.getSession(n);if(!s){a.json({status:"not_found"});return}a.json({status:"active",sessionDbId:n,project:s.project,queueLength:s.pendingMessages.length,uptime:Date.now()-s.startTime})});handleSessionDelete=this.wrapHandler(async(r,a)=>{let n=this.parseIntParam(r,a,"sessionDbId");n!==null&&(await this.completionHandler.completeByDbId(n),a.json({status:"deleted"}))});handleSessionComplete=this.wrapHandler(async(r,a)=>{let n=this.parseIntParam(r,a,"sessionDbId");n!==null&&(await this.completionHandler.completeByDbId(n),a.json({success:!0}))});handleObservationsByClaudeId=this.wrapHandler((r,a)=>{let{contentSessionId:n,tool_name:s,tool_input:i,tool_response:o,cwd:c}=r.body;if(!n)return this.badRequest(a,"Missing contentSessionId");let u=Be.loadFromFile(Ar);if(new Set(u.CLAUDE_MEM_SKIP_TOOLS.split(",").map(y=>y.trim()).filter(Boolean)).has(s)){P.debug("SESSION","Skipping observation for tool",{tool_name:s}),a.json({status:"skipped",reason:"tool_excluded"});return}if(new Set(["Edit","Write","Read","NotebookEdit"]).has(s)&&i){let y=i.file_path||i.notebook_path;if(y&&y.includes("session-memory")){P.debug("SESSION","Skipping meta-observation for session-memory file",{tool_name:s,file_path:y}),a.json({status:"skipped",reason:"session_memory_meta"});return}}let p=this.dbManager.getSessionStore(),f=p.createSDKSession(n,"",""),v=p.getPromptNumberFromUserPrompts(n);if(!nc.checkUserPromptPrivacy(p,n,v,"observation",f,{tool_name:s})){a.json({status:"skipped",reason:"private"});return}let m=i!==void 0?xh(JSON.stringify(i)):"{}",h=o!==void 0?xh(JSON.stringify(o)):"{}";this.sessionManager.queueObservation(f,{tool_name:s,tool_input:m,tool_response:h,prompt_number:v,cwd:c||P.happyPathError("SESSION","Missing cwd when queueing observation in SessionRoutes",{sessionId:f},{tool_name:s},"")}),this.ensureGeneratorRunning(f,"observation"),this.eventBroadcaster.broadcastObservationQueued(f),a.json({status:"queued"})});handleSummarizeByClaudeId=this.wrapHandler((r,a)=>{let{contentSessionId:n,last_assistant_message:s}=r.body;if(!n)return this.badRequest(a,"Missing contentSessionId");let i=this.dbManager.getSessionStore(),o=i.createSDKSession(n,"",""),c=i.getPromptNumberFromUserPrompts(n);if(!nc.checkUserPromptPrivacy(i,n,c,"summarize",o)){a.json({status:"skipped",reason:"private"});return}this.sessionManager.queueSummarize(o,s),this.ensureGeneratorRunning(o,"summarize"),this.eventBroadcaster.broadcastSummarizeQueued(),a.json({status:"queued"})});handleSessionInitByClaudeId=this.wrapHandler((r,a)=>{let{contentSessionId:n,project:s,prompt:i}=r.body;if(P.info("HTTP","SessionRoutes: handleSessionInitByClaudeId called",{contentSessionId:n,project:s,prompt_length:i?.length}),!this.validateRequired(r,a,["contentSessionId","project","prompt"]))return;let o=this.dbManager.getSessionStore(),c=o.createSDKSession(n,s,i);P.info("HTTP","SessionRoutes: createSDKSession returned",{sessionDbId:c,contentSessionId:n});let l=o.getSessionById(c)?.memory_session_id||null,d=!!l,p=o.getPromptNumberFromUserPrompts(n),f=p+1;P.info("HTTP","SessionRoutes: Calculated promptNumber",{sessionDbId:c,promptNumber:f,currentCount:p}),f>1?P.info("HTTP",`[ALIGNMENT] DB Lookup Proof | contentSessionId=${n} \u2192 memorySessionId=${l||"(not yet captured)"} | prompt#=${f} | hasCapturedMemoryId=${d}`):P.info("HTTP",`[ALIGNMENT] New Session | contentSessionId=${n} | prompt#=${f} | memorySessionId will be captured on first SDK response`);let v=LR(i);if(!v||v.trim()===""){P.debug("HOOK","Session init - prompt entirely private",{sessionId:c,promptNumber:f,originalLength:i.length}),a.json({sessionDbId:c,promptNumber:f,skipped:!0,reason:"private"});return}o.saveUserPrompt(n,f,v),P.info("SESSION","Session initialized via HTTP",{sessionId:c,promptNumber:f,project:s}),a.json({sessionDbId:c,promptNumber:f,skipped:!1})})};var wh=xt(require("path"),1),$i=require("fs");Ke();var qR=require("os");vr();var id=class extends dr{constructor(r,a,n,s,i,o){super();this.paginationHelper=r;this.dbManager=a;this.sessionManager=n;this.sseBroadcaster=s;this.workerService=i;this.startTime=o}setupRoutes(r){r.get("/api/observations",this.handleGetObservations.bind(this)),r.get("/api/summaries",this.handleGetSummaries.bind(this)),r.get("/api/prompts",this.handleGetPrompts.bind(this)),r.get("/api/observation/:id",this.handleGetObservationById.bind(this)),r.post("/api/observations/batch",this.handleGetObservationsByIds.bind(this)),r.get("/api/session/:id",this.handleGetSessionById.bind(this)),r.post("/api/sdk-sessions/batch",this.handleGetSdkSessionsByIds.bind(this)),r.get("/api/prompt/:id",this.handleGetPromptById.bind(this)),r.get("/api/stats",this.handleGetStats.bind(this)),r.get("/api/projects",this.handleGetProjects.bind(this)),r.get("/api/processing-status",this.handleGetProcessingStatus.bind(this)),r.post("/api/processing",this.handleSetProcessing.bind(this)),r.get("/api/pending-queue",this.handleGetPendingQueue.bind(this)),r.post("/api/pending-queue/process",this.handleProcessPendingQueue.bind(this)),r.delete("/api/pending-queue/failed",this.handleClearFailedQueue.bind(this)),r.delete("/api/pending-queue/all",this.handleClearAllQueue.bind(this)),r.post("/api/import",this.handleImport.bind(this))}handleGetObservations=this.wrapHandler((r,a)=>{let{offset:n,limit:s,project:i}=this.parsePaginationParams(r),o=this.paginationHelper.getObservations(n,s,i);a.json(o)});handleGetSummaries=this.wrapHandler((r,a)=>{let{offset:n,limit:s,project:i}=this.parsePaginationParams(r),o=this.paginationHelper.getSummaries(n,s,i);a.json(o)});handleGetPrompts=this.wrapHandler((r,a)=>{let{offset:n,limit:s,project:i}=this.parsePaginationParams(r),o=this.paginationHelper.getPrompts(n,s,i);a.json(o)});handleGetObservationById=this.wrapHandler((r,a)=>{let n=this.parseIntParam(r,a,"id");if(n===null)return;let i=this.dbManager.getSessionStore().getObservationById(n);if(!i){this.notFound(a,`Observation #${n} not found`);return}a.json(i)});handleGetObservationsByIds=this.wrapHandler((r,a)=>{let{ids:n,orderBy:s,limit:i,project:o}=r.body;if(!n||!Array.isArray(n)){this.badRequest(a,"ids must be an array of numbers");return}if(n.length===0){a.json([]);return}if(!n.every(l=>typeof l=="number"&&Number.isInteger(l))){this.badRequest(a,"All ids must be integers");return}let u=this.dbManager.getSessionStore().getObservationsByIds(n,{orderBy:s,limit:i,project:o});a.json(u)});handleGetSessionById=this.wrapHandler((r,a)=>{let n=this.parseIntParam(r,a,"id");if(n===null)return;let i=this.dbManager.getSessionStore().getSessionSummariesByIds([n]);if(i.length===0){this.notFound(a,`Session #${n} not found`);return}a.json(i[0])});handleGetSdkSessionsByIds=this.wrapHandler((r,a)=>{let{memorySessionIds:n}=r.body;if(!Array.isArray(n)){this.badRequest(a,"memorySessionIds must be an array");return}let i=this.dbManager.getSessionStore().getSdkSessionsBySessionIds(n);a.json(i)});handleGetPromptById=this.wrapHandler((r,a)=>{let n=this.parseIntParam(r,a,"id");if(n===null)return;let i=this.dbManager.getSessionStore().getUserPromptsByIds([n]);if(i.length===0){this.notFound(a,`Prompt #${n} not found`);return}a.json(i[0])});handleGetStats=this.wrapHandler((r,a)=>{let n=this.dbManager.getSessionStore().db,s=or(),i=wh.default.join(s,"package.json"),c=JSON.parse((0,$i.readFileSync)(i,"utf-8")).version,u=n.prepare("SELECT COUNT(*) as count FROM observations").get(),l=n.prepare("SELECT COUNT(*) as count FROM sdk_sessions").get(),d=n.prepare("SELECT COUNT(*) as count FROM session_summaries").get(),p=wh.default.join((0,qR.homedir)(),".claude-mem","claude-mem.db"),f=0;(0,$i.existsSync)(p)&&(f=(0,$i.statSync)(p).size);let v=Math.floor((Date.now()-this.startTime)/1e3),_=this.sessionManager.getActiveSessionCount(),m=this.sseBroadcaster.getClientCount();a.json({worker:{version:c,uptime:v,activeSessions:_,sseClients:m,port:Xt()},database:{path:p,size:f,observations:u.count,sessions:l.count,summaries:d.count}})});handleGetProjects=this.wrapHandler((r,a)=>{let i=this.dbManager.getSessionStore().db.prepare(` +|----|------|---|-------|------|`}formatObservationSearchRow(e,r){let n=`#${e.id}`,i=this.formatTime(e.created_at_epoch),a=He.getInstance().getTypeIcon(e.type),o=e.title||"Untitled",s=this.estimateReadTokens(e);return{row:`| ${n} | ${i===r?"\u2033":i} | ${a} | ${o} | ~${s} |`,time:i}}formatSessionSearchRow(e,r){let n=`#S${e.id}`,i=this.formatTime(e.created_at_epoch),a="\u{1F3AF}",o=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return{row:`| ${n} | ${i===r?"\u2033":i} | ${a} | ${o} | - |`,time:i}}formatUserPromptSearchRow(e,r){let n=`#P${e.id}`,i=this.formatTime(e.created_at_epoch),a="\u{1F4AC}",o=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return{row:`| ${n} | ${i===r?"\u2033":i} | ${a} | ${o} | - |`,time:i}}};jr();var lg=class{buildTimeline(e){let r=[...e.observations.map(n=>({type:"observation",data:n,epoch:n.created_at_epoch})),...e.sessions.map(n=>({type:"session",data:n,epoch:n.created_at_epoch})),...e.prompts.map(n=>({type:"prompt",data:n,epoch:n.created_at_epoch}))];return r.sort((n,i)=>n.epoch-i.epoch),r}filterByDepth(e,r,n,i,a){if(e.length===0)return e;let o=-1;if(typeof r=="number")o=e.findIndex(u=>u.type==="observation"&&u.data.id===r);else if(typeof r=="string"&&r.startsWith("S")){let u=parseInt(r.slice(1),10);o=e.findIndex(l=>l.type==="session"&&l.data.id===u)}else o=e.findIndex(u=>u.epoch>=n),o===-1&&(o=e.length-1);if(o===-1)return e;let s=Math.max(0,o-i),c=Math.min(e.length,o+a+1);return e.slice(s,c)}formatTimeline(e,r,n,i,a){if(e.length===0)return n?`Found observation matching "${n}", but no timeline context available.`:"No timeline items found";let o=[];if(n&&r){let u=e.find(d=>d.type==="observation"&&d.data.id===r),l=u?u.data.title||"Untitled":"Unknown";o.push(`# Timeline for query: "${n}"`),o.push(`**Anchor:** Observation #${r} - ${l}`)}else r?o.push(`# Timeline around anchor: ${r}`):o.push("# Timeline");i!==void 0&&a!==void 0?o.push(`**Window:** ${i} records before \u2192 ${a} records after | **Items:** ${e.length}`):o.push(`**Items:** ${e.length}`),o.push(""),o.push("**Legend:** \u{1F3AF} session-request | \u{1F534} bugfix | \u{1F7E3} feature | \u{1F504} refactor | \u2705 change | \u{1F535} discovery | \u{1F9E0} decision"),o.push("");let s=new Map;for(let u of e){let l=this.formatDate(u.epoch);s.has(l)||s.set(l,[]),s.get(l).push(u)}let c=Array.from(s.entries()).sort((u,l)=>{let d=new Date(u[0]).getTime(),p=new Date(l[0]).getTime();return d-p});for(let[u,l]of c){o.push(`### ${u}`),o.push("");let d=null,p="",f=!1;for(let h of l){let _=typeof r=="number"&&h.type==="observation"&&h.data.id===r||typeof r=="string"&&r.startsWith("S")&&h.type==="session"&&`S${h.data.id}`===r;if(h.type==="session"){f&&(o.push(""),f=!1,d=null,p="");let y=h.data,m=y.request||"Session summary",v=_?" \u2190 **ANCHOR**":"";o.push(`**\u{1F3AF} #S${y.id}** ${m} (${this.formatDateTime(h.epoch)})${v}`),o.push("")}else if(h.type==="prompt"){f&&(o.push(""),f=!1,d=null,p="");let y=h.data,m=y.prompt_text.length>100?y.prompt_text.substring(0,100)+"...":y.prompt_text;o.push(`**\u{1F4AC} User Prompt #${y.prompt_number}** (${this.formatDateTime(h.epoch)})`),o.push(`> ${m}`),o.push("")}else if(h.type==="observation"){let y=h.data,m="General";m!==d&&(f&&o.push(""),o.push(`**${m}**`),o.push("| ID | Time | T | Title | Tokens |"),o.push("|----|------|---|-------|--------|"),d=m,f=!0,p="");let v=this.getTypeIcon(y.type),g=this.formatTime(h.epoch),b=y.title||"Untitled",S=this.estimateTokens(y.narrative),w=g!==p?g:"\u2033";p=g;let E=_?" \u2190 **ANCHOR**":"";o.push(`| #${y.id} | ${w} | ${v} | ${b}${E} | ~${S} |`)}}f&&o.push("")}return o.join(` +`)}getTypeIcon(e){return He.getInstance().getTypeIcon(e)}formatDate(e){return new Date(e).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})}formatTime(e){return new Date(e).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}formatDateTime(e){return new Date(e).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0})}estimateTokens(e){return e?Math.ceil(e.length/4):0}};var dg=class{constructor(e,r){this.sseBroadcaster=e;this.workerService=r}broadcastNewPrompt(e){this.sseBroadcaster.broadcast({type:"new_prompt",prompt:e}),this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:!0}),this.workerService.broadcastProcessingStatus()}broadcastSessionStarted(e,r){this.sseBroadcaster.broadcast({type:"session_started",sessionDbId:e,project:r}),this.workerService.broadcastProcessingStatus()}broadcastObservationQueued(e){this.sseBroadcaster.broadcast({type:"observation_queued",sessionDbId:e}),this.workerService.broadcastProcessingStatus()}broadcastSessionCompleted(e){this.sseBroadcaster.broadcast({type:"session_completed",timestamp:Date.now(),sessionDbId:e}),this.workerService.broadcastProcessingStatus()}broadcastSummarizeQueued(){this.workerService.broadcastProcessingStatus()}};var Q6=yt(sh(),1),pg=yt(require("path"),1),mg=require("fs");cn();Ne();var Xr=class{wrapHandler(e){return(r,n)=>{try{let i=e(r,n);i instanceof Promise&&i.catch(a=>this.handleError(n,a))}catch(i){k.error("HTTP","Route handler error",{path:r.path},i),this.handleError(n,i)}}}parseIntParam(e,r,n){let i=parseInt(e.params[n],10);return isNaN(i)?(this.badRequest(r,`Invalid ${n}`),null):i}validateRequired(e,r,n){for(let i of n)if(e.body[i]===void 0||e.body[i]===null)return this.badRequest(r,`Missing ${i}`),!1;return!0}badRequest(e,r){e.status(400).json({error:r})}notFound(e,r){e.status(404).json({error:r})}handleError(e,r,n){k.failure("WORKER",n||"Request failed",{},r),e.headersSent||e.status(500).json({error:r.message})}};var fg=class extends Xr{constructor(r,n,i){super();this.sseBroadcaster=r;this.dbManager=n;this.sessionManager=i}setupRoutes(r){let n=Gr();r.use(Q6.default.static(pg.default.join(n,"ui"))),r.get("/health",this.handleHealth.bind(this)),r.get("/",this.handleViewerUI.bind(this)),r.get("/stream",this.handleSSEStream.bind(this))}handleHealth=this.wrapHandler((r,n)=>{n.json({status:"ok",timestamp:Date.now()})});handleViewerUI=this.wrapHandler((r,n)=>{let i=Gr(),o=[pg.default.join(i,"ui","viewer.html"),pg.default.join(i,"plugin","ui","viewer.html")].find(c=>(0,mg.existsSync)(c));if(!o)throw new Error("Viewer UI not found at any expected location");let s=(0,mg.readFileSync)(o,"utf-8");n.setHeader("Content-Type","text/html"),n.send(s)});handleSSEStream=this.wrapHandler((r,n)=>{n.setHeader("Content-Type","text/event-stream"),n.setHeader("Cache-Control","no-cache"),n.setHeader("Connection","keep-alive"),this.sseBroadcaster.addClient(n);let i=this.dbManager.getSessionStore().getAllProjects();this.sseBroadcaster.broadcast({type:"initial_load",projects:i,timestamp:Date.now()});let a=this.sessionManager.isAnySessionProcessing(),o=this.sessionManager.getTotalActiveWork();this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:a,queueDepth:o})})};Ne();Ne();var eU=100;function hfe(t){let e=(t.match(//g)||[]).length,r=(t.match(//g)||[]).length;return e+r}function tU(t){let e=hfe(t);return e>eU&&k.warn("SYSTEM","tag count exceeds limit",void 0,{tagCount:e,maxAllowed:eU,contentLength:t.length}),t.replace(/[\s\S]*?<\/claude-mem-context>/g,"").replace(/[\s\S]*?<\/private>/g,"").trim()}function Y$(t){return tU(t)}function rU(t){return tU(t)}var hg=class{constructor(e,r){this.sessionManager=e;this.eventBroadcaster=r}async completeByDbId(e){await this.sessionManager.deleteSession(e),this.eventBroadcaster.broadcastSessionCompleted(e)}};Ne();var Cd=class{static checkUserPromptPrivacy(e,r,n,i,a,o){let s=e.getUserPrompt(r,n);return!s||s.trim()===""?(k.debug("HOOK",`Skipping ${i} - user prompt was entirely private`,{sessionId:a,promptNumber:n,...o}),null):s}};on();cn();var gg=class extends Xr{constructor(r,n,i,a,o,s,c){super();this.sessionManager=r;this.dbManager=n;this.sdkAgent=i;this.geminiAgent=a;this.openRouterAgent=o;this.eventBroadcaster=s;this.workerService=c;this.completionHandler=new hg(r,s)}completionHandler;getActiveAgent(){if(K$()){if(W$())return k.debug("SESSION","Using OpenRouter agent"),this.openRouterAgent;throw new Error("OpenRouter provider selected but no API key configured. Set CLAUDE_MEM_OPENROUTER_API_KEY in settings or OPENROUTER_API_KEY environment variable.")}if(G$()){if(V$())return k.debug("SESSION","Using Gemini agent"),this.geminiAgent;throw new Error("Gemini provider selected but no API key configured. Set CLAUDE_MEM_GEMINI_API_KEY in settings or GEMINI_API_KEY environment variable.")}return this.sdkAgent}getSelectedProvider(){return K$()&&W$()?"openrouter":G$()&&V$()?"gemini":"claude"}ensureGeneratorRunning(r,n){let i=this.sessionManager.getSession(r);if(!i)return;let a=this.getSelectedProvider();if(!i.generatorPromise){this.startGeneratorWithProvider(i,a,n);return}i.currentProvider&&i.currentProvider!==a&&k.info("SESSION","Provider changed, will switch after current generator finishes",{sessionId:r,currentProvider:i.currentProvider,selectedProvider:a,historyLength:i.conversationHistory.length})}startGeneratorWithProvider(r,n,i){if(!r)return;let a=n==="openrouter"?this.openRouterAgent:n==="gemini"?this.geminiAgent:this.sdkAgent,o=n==="openrouter"?"OpenRouter":n==="gemini"?"Gemini":"Claude SDK";k.info("SESSION",`Generator auto-starting (${i}) using ${o}`,{sessionId:r.sessionDbId,queueDepth:r.pendingMessages.length,historyLength:r.conversationHistory.length}),r.currentProvider=n,r.generatorPromise=a.startSession(r,this.workerService).catch(s=>{if(r.abortController.signal.aborted)return;k.error("SESSION","Generator failed",{sessionId:r.sessionDbId,provider:n,error:s.message},s);let c=this.sessionManager.getPendingMessageStore();try{let u=c.markSessionMessagesFailed(r.sessionDbId);u>0&&k.warn("SESSION","Marked messages as failed after generator error",{sessionId:r.sessionDbId,failedCount:u})}catch(u){k.error("SESSION","Failed to mark messages as failed",{sessionId:r.sessionDbId},u)}}).finally(()=>{let s=r.sessionDbId,c=r.abortController.signal.aborted;if(c?k.info("SESSION","Generator aborted",{sessionId:s}):k.warn("SESSION","Generator exited unexpectedly",{sessionId:s}),r.generatorPromise=null,r.currentProvider=null,this.workerService.broadcastProcessingStatus(),!c)try{let l=this.sessionManager.getPendingMessageStore().getPendingCount(s);l>0?(k.info("SESSION","Restarting generator after crash/exit with pending work",{sessionId:s,pendingCount:l}),r.abortController=new AbortController,setTimeout(()=>{let d=this.sessionManager.getSession(s);d&&!d.generatorPromise&&this.startGeneratorWithProvider(d,this.getSelectedProvider(),"crash-recovery")},1e3)):(r.abortController.abort(),k.debug("SESSION","Aborted controller after natural completion",{sessionId:s}))}catch(u){k.debug("SESSION","Error during recovery check, aborting to prevent leaks",{sessionId:s,error:u instanceof Error?u.message:String(u)}),r.abortController.abort()}})}setupRoutes(r){r.post("/sessions/:sessionDbId/init",this.handleSessionInit.bind(this)),r.post("/sessions/:sessionDbId/observations",this.handleObservations.bind(this)),r.post("/sessions/:sessionDbId/summarize",this.handleSummarize.bind(this)),r.get("/sessions/:sessionDbId/status",this.handleSessionStatus.bind(this)),r.delete("/sessions/:sessionDbId",this.handleSessionDelete.bind(this)),r.post("/sessions/:sessionDbId/complete",this.handleSessionComplete.bind(this)),r.post("/api/sessions/init",this.handleSessionInitByClaudeId.bind(this)),r.post("/api/sessions/observations",this.handleObservationsByClaudeId.bind(this)),r.post("/api/sessions/summarize",this.handleSummarizeByClaudeId.bind(this))}handleSessionInit=this.wrapHandler((r,n)=>{let i=this.parseIntParam(r,n,"sessionDbId");if(i===null)return;let{userPrompt:a,promptNumber:o}=r.body;k.info("HTTP","SessionRoutes: handleSessionInit called",{sessionDbId:i,promptNumber:o,has_userPrompt:!!a});let s=this.sessionManager.initializeSession(i,a,o),c=this.dbManager.getSessionStore().getLatestUserPrompt(s.contentSessionId);if(c){this.eventBroadcaster.broadcastNewPrompt({id:c.id,content_session_id:c.content_session_id,project:c.project,prompt_number:c.prompt_number,prompt_text:c.prompt_text,created_at_epoch:c.created_at_epoch});let u=Date.now(),l=c.prompt_text;this.dbManager.getChromaSync().syncUserPrompt(c.id,c.memory_session_id,c.project,l,c.prompt_number,c.created_at_epoch).then(()=>{let d=Date.now()-u,p=l.length>60?l.substring(0,60)+"...":l;k.debug("CHROMA","User prompt synced",{promptId:c.id,duration:`${d}ms`,prompt:p})}).catch(d=>{k.warn("CHROMA","User prompt sync failed, continuing without vector search",{promptId:c.id,prompt:l.length>60?l.substring(0,60)+"...":l},d)})}this.startGeneratorWithProvider(s,this.getSelectedProvider(),"init"),this.eventBroadcaster.broadcastSessionStarted(i,s.project),n.json({status:"initialized",sessionDbId:i,port:Ln()})});handleObservations=this.wrapHandler((r,n)=>{let i=this.parseIntParam(r,n,"sessionDbId");if(i===null)return;let{tool_name:a,tool_input:o,tool_response:s,prompt_number:c,cwd:u}=r.body;this.sessionManager.queueObservation(i,{tool_name:a,tool_input:o,tool_response:s,prompt_number:c,cwd:u}),this.ensureGeneratorRunning(i,"observation"),this.eventBroadcaster.broadcastObservationQueued(i),n.json({status:"queued"})});handleSummarize=this.wrapHandler((r,n)=>{let i=this.parseIntParam(r,n,"sessionDbId");if(i===null)return;let{last_assistant_message:a}=r.body;this.sessionManager.queueSummarize(i,a),this.ensureGeneratorRunning(i,"summarize"),this.eventBroadcaster.broadcastSummarizeQueued(),n.json({status:"queued"})});handleSessionStatus=this.wrapHandler((r,n)=>{let i=this.parseIntParam(r,n,"sessionDbId");if(i===null)return;let a=this.sessionManager.getSession(i);if(!a){n.json({status:"not_found"});return}n.json({status:"active",sessionDbId:i,project:a.project,queueLength:a.pendingMessages.length,uptime:Date.now()-a.startTime})});handleSessionDelete=this.wrapHandler(async(r,n)=>{let i=this.parseIntParam(r,n,"sessionDbId");i!==null&&(await this.completionHandler.completeByDbId(i),n.json({status:"deleted"}))});handleSessionComplete=this.wrapHandler(async(r,n)=>{let i=this.parseIntParam(r,n,"sessionDbId");i!==null&&(await this.completionHandler.completeByDbId(i),n.json({success:!0}))});handleObservationsByClaudeId=this.wrapHandler((r,n)=>{let{contentSessionId:i,tool_name:a,tool_input:o,tool_response:s,cwd:c}=r.body;if(!i)return this.badRequest(n,"Missing contentSessionId");let u=Ke.loadFromFile(wn);if(new Set(u.CLAUDE_MEM_SKIP_TOOLS.split(",").map(v=>v.trim()).filter(Boolean)).has(a)){k.debug("SESSION","Skipping observation for tool",{tool_name:a}),n.json({status:"skipped",reason:"tool_excluded"});return}if(new Set(["Edit","Write","Read","NotebookEdit"]).has(a)&&o){let v=o.file_path||o.notebook_path;if(v&&v.includes("session-memory")){k.debug("SESSION","Skipping meta-observation for session-memory file",{tool_name:a,file_path:v}),n.json({status:"skipped",reason:"session_memory_meta"});return}}let p=this.dbManager.getSessionStore(),f=p.createSDKSession(i,"",""),h=p.getPromptNumberFromUserPrompts(i);if(!Cd.checkUserPromptPrivacy(p,i,h,"observation",f,{tool_name:a})){n.json({status:"skipped",reason:"private"});return}let y=o!==void 0?Y$(JSON.stringify(o)):"{}",m=s!==void 0?Y$(JSON.stringify(s)):"{}";this.sessionManager.queueObservation(f,{tool_name:a,tool_input:y,tool_response:m,prompt_number:h,cwd:c||k.happyPathError("SESSION","Missing cwd when queueing observation in SessionRoutes",{sessionId:f},{tool_name:a},"")}),this.ensureGeneratorRunning(f,"observation"),this.eventBroadcaster.broadcastObservationQueued(f),n.json({status:"queued"})});handleSummarizeByClaudeId=this.wrapHandler((r,n)=>{let{contentSessionId:i,last_assistant_message:a}=r.body;if(!i)return this.badRequest(n,"Missing contentSessionId");let o=this.dbManager.getSessionStore(),s=o.createSDKSession(i,"",""),c=o.getPromptNumberFromUserPrompts(i);if(!Cd.checkUserPromptPrivacy(o,i,c,"summarize",s)){n.json({status:"skipped",reason:"private"});return}this.sessionManager.queueSummarize(s,a),this.ensureGeneratorRunning(s,"summarize"),this.eventBroadcaster.broadcastSummarizeQueued(),n.json({status:"queued"})});handleSessionInitByClaudeId=this.wrapHandler((r,n)=>{let{contentSessionId:i,project:a,prompt:o}=r.body;if(k.info("HTTP","SessionRoutes: handleSessionInitByClaudeId called",{contentSessionId:i,project:a,prompt_length:o?.length}),!this.validateRequired(r,n,["contentSessionId","project","prompt"]))return;let s=this.dbManager.getSessionStore(),c=s.createSDKSession(i,a,o);k.info("HTTP","SessionRoutes: createSDKSession returned",{sessionDbId:c,contentSessionId:i});let l=s.getSessionById(c)?.memory_session_id||null,d=!!l,p=s.getPromptNumberFromUserPrompts(i),f=p+1;k.info("HTTP","SessionRoutes: Calculated promptNumber",{sessionDbId:c,promptNumber:f,currentCount:p}),f>1?k.info("HTTP",`[ALIGNMENT] DB Lookup Proof | contentSessionId=${i} \u2192 memorySessionId=${l||"(not yet captured)"} | prompt#=${f} | hasCapturedMemoryId=${d}`):k.info("HTTP",`[ALIGNMENT] New Session | contentSessionId=${i} | prompt#=${f} | memorySessionId will be captured on first SDK response`);let h=rU(o);if(!h||h.trim()===""){k.debug("HOOK","Session init - prompt entirely private",{sessionId:c,promptNumber:f,originalLength:o.length}),n.json({sessionDbId:c,promptNumber:f,skipped:!0,reason:"private"});return}s.saveUserPrompt(i,f,h),k.info("SESSION","Session initialized via HTTP",{sessionId:c,promptNumber:f,project:a}),n.json({sessionDbId:c,promptNumber:f,skipped:!1})})};var Q$=yt(require("path"),1),wc=require("fs");Ne();var nU=require("os");cn();var vg=class extends Xr{constructor(r,n,i,a,o,s){super();this.paginationHelper=r;this.dbManager=n;this.sessionManager=i;this.sseBroadcaster=a;this.workerService=o;this.startTime=s}setupRoutes(r){r.get("/api/observations",this.handleGetObservations.bind(this)),r.get("/api/summaries",this.handleGetSummaries.bind(this)),r.get("/api/prompts",this.handleGetPrompts.bind(this)),r.get("/api/observation/:id",this.handleGetObservationById.bind(this)),r.post("/api/observations/batch",this.handleGetObservationsByIds.bind(this)),r.get("/api/session/:id",this.handleGetSessionById.bind(this)),r.post("/api/sdk-sessions/batch",this.handleGetSdkSessionsByIds.bind(this)),r.get("/api/prompt/:id",this.handleGetPromptById.bind(this)),r.get("/api/stats",this.handleGetStats.bind(this)),r.get("/api/projects",this.handleGetProjects.bind(this)),r.get("/api/processing-status",this.handleGetProcessingStatus.bind(this)),r.post("/api/processing",this.handleSetProcessing.bind(this)),r.get("/api/pending-queue",this.handleGetPendingQueue.bind(this)),r.post("/api/pending-queue/process",this.handleProcessPendingQueue.bind(this)),r.delete("/api/pending-queue/failed",this.handleClearFailedQueue.bind(this)),r.delete("/api/pending-queue/all",this.handleClearAllQueue.bind(this)),r.post("/api/import",this.handleImport.bind(this))}handleGetObservations=this.wrapHandler((r,n)=>{let{offset:i,limit:a,project:o}=this.parsePaginationParams(r),s=this.paginationHelper.getObservations(i,a,o);n.json(s)});handleGetSummaries=this.wrapHandler((r,n)=>{let{offset:i,limit:a,project:o}=this.parsePaginationParams(r),s=this.paginationHelper.getSummaries(i,a,o);n.json(s)});handleGetPrompts=this.wrapHandler((r,n)=>{let{offset:i,limit:a,project:o}=this.parsePaginationParams(r),s=this.paginationHelper.getPrompts(i,a,o);n.json(s)});handleGetObservationById=this.wrapHandler((r,n)=>{let i=this.parseIntParam(r,n,"id");if(i===null)return;let o=this.dbManager.getSessionStore().getObservationById(i);if(!o){this.notFound(n,`Observation #${i} not found`);return}n.json(o)});handleGetObservationsByIds=this.wrapHandler((r,n)=>{let{ids:i,orderBy:a,limit:o,project:s}=r.body;if(!i||!Array.isArray(i)){this.badRequest(n,"ids must be an array of numbers");return}if(i.length===0){n.json([]);return}if(!i.every(l=>typeof l=="number"&&Number.isInteger(l))){this.badRequest(n,"All ids must be integers");return}let u=this.dbManager.getSessionStore().getObservationsByIds(i,{orderBy:a,limit:o,project:s});n.json(u)});handleGetSessionById=this.wrapHandler((r,n)=>{let i=this.parseIntParam(r,n,"id");if(i===null)return;let o=this.dbManager.getSessionStore().getSessionSummariesByIds([i]);if(o.length===0){this.notFound(n,`Session #${i} not found`);return}n.json(o[0])});handleGetSdkSessionsByIds=this.wrapHandler((r,n)=>{let{memorySessionIds:i}=r.body;if(!Array.isArray(i)){this.badRequest(n,"memorySessionIds must be an array");return}let o=this.dbManager.getSessionStore().getSdkSessionsBySessionIds(i);n.json(o)});handleGetPromptById=this.wrapHandler((r,n)=>{let i=this.parseIntParam(r,n,"id");if(i===null)return;let o=this.dbManager.getSessionStore().getUserPromptsByIds([i]);if(o.length===0){this.notFound(n,`Prompt #${i} not found`);return}n.json(o[0])});handleGetStats=this.wrapHandler((r,n)=>{let i=this.dbManager.getSessionStore().db,a=Gr(),o=Q$.default.join(a,"package.json"),c=JSON.parse((0,wc.readFileSync)(o,"utf-8")).version,u=i.prepare("SELECT COUNT(*) as count FROM observations").get(),l=i.prepare("SELECT COUNT(*) as count FROM sdk_sessions").get(),d=i.prepare("SELECT COUNT(*) as count FROM session_summaries").get(),p=Q$.default.join((0,nU.homedir)(),".claude-mem","claude-mem.db"),f=0;(0,wc.existsSync)(p)&&(f=(0,wc.statSync)(p).size);let h=Math.floor((Date.now()-this.startTime)/1e3),_=this.sessionManager.getActiveSessionCount(),y=this.sseBroadcaster.getClientCount();n.json({worker:{version:c,uptime:h,activeSessions:_,sseClients:y,port:Ln()},database:{path:p,size:f,observations:u.count,sessions:l.count,summaries:d.count}})});handleGetProjects=this.wrapHandler((r,n)=>{let o=this.dbManager.getSessionStore().db.prepare(` SELECT DISTINCT project FROM observations WHERE project IS NOT NULL GROUP BY project ORDER BY MAX(created_at_epoch) DESC - `).all().map(o=>o.project);a.json({projects:i})});handleGetProcessingStatus=this.wrapHandler((r,a)=>{let n=this.sessionManager.isAnySessionProcessing(),s=this.sessionManager.getTotalActiveWork();a.json({isProcessing:n,queueDepth:s})});handleSetProcessing=this.wrapHandler((r,a)=>{this.workerService.broadcastProcessingStatus();let n=this.sessionManager.isAnySessionProcessing(),s=this.sessionManager.getTotalQueueDepth(),i=this.sessionManager.getActiveSessionCount();a.json({status:"ok",isProcessing:n,queueDepth:s,activeSessions:i})});parsePaginationParams(r){let a=parseInt(r.query.offset,10)||0,n=Math.min(parseInt(r.query.limit,10)||20,100),s=r.query.project;return{offset:a,limit:n,project:s}}handleImport=this.wrapHandler((r,a)=>{let{sessions:n,summaries:s,observations:i,prompts:o}=r.body,c={sessionsImported:0,sessionsSkipped:0,summariesImported:0,summariesSkipped:0,observationsImported:0,observationsSkipped:0,promptsImported:0,promptsSkipped:0},u=this.dbManager.getSessionStore();if(Array.isArray(n))for(let l of n)u.importSdkSession(l).imported?c.sessionsImported++:c.sessionsSkipped++;if(Array.isArray(s))for(let l of s)u.importSessionSummary(l).imported?c.summariesImported++:c.summariesSkipped++;if(Array.isArray(i))for(let l of i)u.importObservation(l).imported?c.observationsImported++:c.observationsSkipped++;if(Array.isArray(o))for(let l of o)u.importUserPrompt(l).imported?c.promptsImported++:c.promptsSkipped++;a.json({success:!0,stats:c})});handleGetPendingQueue=this.wrapHandler((r,a)=>{let{PendingMessageStore:n}=(Ua(),dc(Js)),s=new n(this.dbManager.getSessionStore().db,3),i=s.getQueueMessages(),o=s.getRecentlyProcessed(20,30),c=s.getStuckCount(300*1e3),u=s.getSessionsWithPendingMessages();a.json({queue:{messages:i,totalPending:i.filter(l=>l.status==="pending").length,totalProcessing:i.filter(l=>l.status==="processing").length,totalFailed:i.filter(l=>l.status==="failed").length,stuckCount:c},recentlyProcessed:o,sessionsWithPendingWork:u})});handleProcessPendingQueue=this.wrapHandler(async(r,a)=>{let n=Math.min(Math.max(parseInt(r.body.sessionLimit,10)||10,1),100),s=await this.workerService.processPendingQueues(n);a.json({success:!0,...s})});handleClearFailedQueue=this.wrapHandler((r,a)=>{let{PendingMessageStore:n}=(Ua(),dc(Js)),i=new n(this.dbManager.getSessionStore().db,3).clearFailed();P.info("QUEUE","Cleared failed queue messages",{clearedCount:i}),a.json({success:!0,clearedCount:i})});handleClearAllQueue=this.wrapHandler((r,a)=>{let{PendingMessageStore:n}=(Ua(),dc(Js)),i=new n(this.dbManager.getSessionStore().db,3).clearAll();P.warn("QUEUE","Cleared ALL queue messages (pending, processing, failed)",{clearedCount:i}),a.json({success:!0,clearedCount:i})})};var ld=class extends dr{constructor(r){super();this.searchManager=r}setupRoutes(r){r.get("/api/search",this.handleUnifiedSearch.bind(this)),r.get("/api/timeline",this.handleUnifiedTimeline.bind(this)),r.get("/api/decisions",this.handleDecisions.bind(this)),r.get("/api/changes",this.handleChanges.bind(this)),r.get("/api/how-it-works",this.handleHowItWorks.bind(this)),r.get("/api/search/observations",this.handleSearchObservations.bind(this)),r.get("/api/search/sessions",this.handleSearchSessions.bind(this)),r.get("/api/search/prompts",this.handleSearchPrompts.bind(this)),r.get("/api/search/by-concept",this.handleSearchByConcept.bind(this)),r.get("/api/search/by-file",this.handleSearchByFile.bind(this)),r.get("/api/search/by-type",this.handleSearchByType.bind(this)),r.get("/api/context/recent",this.handleGetRecentContext.bind(this)),r.get("/api/context/timeline",this.handleGetContextTimeline.bind(this)),r.get("/api/context/preview",this.handleContextPreview.bind(this)),r.get("/api/context/inject",this.handleContextInject.bind(this)),r.get("/api/timeline/by-query",this.handleGetTimelineByQuery.bind(this)),r.get("/api/search/help",this.handleSearchHelp.bind(this))}handleUnifiedSearch=this.wrapHandler(async(r,a)=>{let n=await this.searchManager.search(r.query);a.json(n)});handleUnifiedTimeline=this.wrapHandler(async(r,a)=>{let n=await this.searchManager.timeline(r.query);a.json(n)});handleDecisions=this.wrapHandler(async(r,a)=>{let n=await this.searchManager.decisions(r.query);a.json(n)});handleChanges=this.wrapHandler(async(r,a)=>{let n=await this.searchManager.changes(r.query);a.json(n)});handleHowItWorks=this.wrapHandler(async(r,a)=>{let n=await this.searchManager.howItWorks(r.query);a.json(n)});handleSearchObservations=this.wrapHandler(async(r,a)=>{let n=await this.searchManager.searchObservations(r.query);a.json(n)});handleSearchSessions=this.wrapHandler(async(r,a)=>{let n=await this.searchManager.searchSessions(r.query);a.json(n)});handleSearchPrompts=this.wrapHandler(async(r,a)=>{let n=await this.searchManager.searchUserPrompts(r.query);a.json(n)});handleSearchByConcept=this.wrapHandler(async(r,a)=>{let n=await this.searchManager.findByConcept(r.query);a.json(n)});handleSearchByFile=this.wrapHandler(async(r,a)=>{let n=await this.searchManager.findByFile(r.query);a.json(n)});handleSearchByType=this.wrapHandler(async(r,a)=>{let n=await this.searchManager.findByType(r.query);a.json(n)});handleGetRecentContext=this.wrapHandler(async(r,a)=>{let n=await this.searchManager.getRecentContext(r.query);a.json(n)});handleGetContextTimeline=this.wrapHandler(async(r,a)=>{let n=await this.searchManager.getContextTimeline(r.query);a.json(n)});handleContextPreview=this.wrapHandler(async(r,a)=>{let n=r.query.project;if(!n){this.badRequest(a,"Project parameter is required");return}let{generateContext:s}=await Promise.resolve().then(()=>(Th(),Eh)),i=`/preview/${n}`,o=await s({session_id:"preview-"+Date.now(),cwd:i},!0);a.setHeader("Content-Type","text/plain; charset=utf-8"),a.send(o)});handleContextInject=this.wrapHandler(async(r,a)=>{let n=r.query.project,s=r.query.colors==="true";if(!n){this.badRequest(a,"Project parameter is required");return}let{generateContext:i}=await Promise.resolve().then(()=>(Th(),Eh)),o=`/context/${n}`,c=await i({session_id:"context-inject-"+Date.now(),cwd:o},s);a.setHeader("Content-Type","text/plain; charset=utf-8"),a.send(c)});handleGetTimelineByQuery=this.wrapHandler(async(r,a)=>{let n=await this.searchManager.getTimelineByQuery(r.query);a.json(n)});handleSearchHelp=this.wrapHandler((r,a)=>{a.json({title:"Claude-Mem Search API",description:"HTTP API for searching persistent memory",endpoints:[{path:"/api/search/observations",method:"GET",description:"Search observations using full-text search",parameters:{query:"Search query (required)",limit:"Number of results (default: 20)",project:"Filter by project name (optional)"}},{path:"/api/search/sessions",method:"GET",description:"Search session summaries using full-text search",parameters:{query:"Search query (required)",limit:"Number of results (default: 20)"}},{path:"/api/search/prompts",method:"GET",description:"Search user prompts using full-text search",parameters:{query:"Search query (required)",limit:"Number of results (default: 20)",project:"Filter by project name (optional)"}},{path:"/api/search/by-concept",method:"GET",description:"Find observations by concept tag",parameters:{concept:"Concept tag (required): discovery, decision, bugfix, feature, refactor",limit:"Number of results (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/search/by-file",method:"GET",description:"Find observations and sessions by file path",parameters:{filePath:"File path or partial path (required)",limit:"Number of results per type (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/search/by-type",method:"GET",description:"Find observations by type",parameters:{type:"Observation type (required): discovery, decision, bugfix, feature, refactor",limit:"Number of results (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/context/recent",method:"GET",description:"Get recent session context including summaries and observations",parameters:{project:"Project name (default: current directory)",limit:"Number of recent sessions (default: 3)"}},{path:"/api/context/timeline",method:"GET",description:"Get unified timeline around a specific point in time",parameters:{anchor:'Anchor point: observation ID, session ID (e.g., "S123"), or ISO timestamp (required)',depth_before:"Number of records before anchor (default: 10)",depth_after:"Number of records after anchor (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/timeline/by-query",method:"GET",description:"Search for best match, then get timeline around it",parameters:{query:"Search query (required)",mode:'Search mode: "auto", "observations", or "sessions" (default: "auto")',depth_before:"Number of records before match (default: 10)",depth_after:"Number of records after match (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/search/help",method:"GET",description:"Get this help documentation"}],examples:['curl "http://localhost:37777/api/search/observations?query=authentication&limit=5"','curl "http://localhost:37777/api/search/by-type?type=bugfix&limit=10"','curl "http://localhost:37777/api/context/recent?project=claude-mem&limit=3"','curl "http://localhost:37777/api/context/timeline?anchor=123&depth_before=5&depth_after=5"']})})};var Ya=xt(require("path"),1),zt=require("fs"),$h=require("os");vr();Ke();var Rh=require("child_process"),Ja=require("fs"),BR=require("os"),ac=require("path");Ke();var sc=(0,ac.join)((0,BR.homedir)(),".claude","plugins","marketplaces","thedotmack");function kh(t){return!t||typeof t!="string"?!1:/^[a-zA-Z0-9][a-zA-Z0-9._/-]*$/.test(t)&&!t.includes("..")}var OV=3e5,Ph=6e5;function Dr(t){let e=(0,Rh.spawnSync)("git",t,{cwd:sc,encoding:"utf-8",timeout:OV,windowsHide:!0,shell:!1});if(e.error)throw e.error;if(e.status!==0)throw new Error(e.stderr||e.stdout||"Git command failed");return e.stdout.trim()}function VR(t,e=Ph){let a=process.platform==="win32"?"npm.cmd":"npm",n=(0,Rh.spawnSync)(a,t,{cwd:sc,encoding:"utf-8",timeout:e,windowsHide:!0,shell:!1});if(n.error)throw n.error;if(n.status!==0)throw new Error(n.stderr||n.stdout||"npm command failed");return n.stdout.trim()}function dd(){let t=(0,ac.join)(sc,".git");if(!(0,Ja.existsSync)(t))return{branch:null,isBeta:!1,isGitRepo:!1,isDirty:!1,canSwitch:!1,error:"Installed plugin is not a git repository"};try{let e=Dr(["rev-parse","--abbrev-ref","HEAD"]),a=Dr(["status","--porcelain"]).length>0,n=e.startsWith("beta");return{branch:e,isBeta:n,isGitRepo:!0,isDirty:a,canSwitch:!0}}catch(e){return P.error("BRANCH","Failed to get branch info",{},e),{branch:null,isBeta:!1,isGitRepo:!0,isDirty:!1,canSwitch:!1,error:e.message}}}async function GR(t){if(!kh(t))return{success:!1,error:`Invalid branch name: ${t}. Branch names must be alphanumeric with hyphens, underscores, slashes, or dots.`};let e=dd();if(!e.isGitRepo)return{success:!1,error:"Installed plugin is not a git repository. Please reinstall."};if(e.branch===t)return{success:!0,branch:t,message:`Already on branch ${t}`};try{P.info("BRANCH","Starting branch switch",{from:e.branch,to:t}),P.debug("BRANCH","Discarding local changes"),Dr(["checkout","--","."]),Dr(["clean","-fd"]),P.debug("BRANCH","Fetching from origin"),Dr(["fetch","origin"]),P.debug("BRANCH","Checking out branch",{branch:t});try{Dr(["checkout",t])}catch(a){P.debug("BRANCH","Branch not local, tracking remote",{branch:t,error:a instanceof Error?a.message:String(a)}),Dr(["checkout","-b",t,`origin/${t}`])}P.debug("BRANCH","Pulling latest"),Dr(["pull","origin",t]);let r=(0,ac.join)(sc,".install-version");return(0,Ja.existsSync)(r)&&(0,Ja.unlinkSync)(r),P.debug("BRANCH","Running npm install"),VR(["install"],Ph),P.success("BRANCH","Branch switch complete",{branch:t}),{success:!0,branch:t,message:`Switched to ${t}. Worker will restart automatically.`}}catch(r){P.error("BRANCH","Branch switch failed",{targetBranch:t},r);try{e.branch&&kh(e.branch)&&Dr(["checkout",e.branch])}catch(a){P.warn("BRANCH","Recovery checkout also failed",{originalBranch:e.branch},a)}return{success:!1,error:`Branch switch failed: ${r.message}`}}}async function ZR(){let t=dd();if(!t.isGitRepo||!t.branch)return{success:!1,error:"Cannot pull updates: not a git repository"};try{if(!kh(t.branch))return{success:!1,error:`Invalid current branch name: ${t.branch}`};P.info("BRANCH","Pulling updates",{branch:t.branch}),Dr(["checkout","--","."]),Dr(["fetch","origin"]),Dr(["pull","origin",t.branch]);let e=(0,ac.join)(sc,".install-version");return(0,Ja.existsSync)(e)&&(0,Ja.unlinkSync)(e),VR(["install"],Ph),P.success("BRANCH","Updates pulled",{branch:t.branch}),{success:!0,branch:t.branch,message:`Updated ${t.branch}. Worker will restart automatically.`}}catch(e){return P.error("BRANCH","Pull failed",{},e),{success:!1,error:`Pull failed: ${e.message}`}}}hr();var pd=class extends dr{constructor(r){super();this.settingsManager=r}setupRoutes(r){r.get("/api/settings",this.handleGetSettings.bind(this)),r.post("/api/settings",this.handleUpdateSettings.bind(this)),r.get("/api/mcp/status",this.handleGetMcpStatus.bind(this)),r.post("/api/mcp/toggle",this.handleToggleMcp.bind(this)),r.get("/api/branch/status",this.handleGetBranchStatus.bind(this)),r.post("/api/branch/switch",this.handleSwitchBranch.bind(this)),r.post("/api/branch/update",this.handleUpdateBranch.bind(this))}handleGetSettings=this.wrapHandler((r,a)=>{let n=Ya.default.join((0,$h.homedir)(),".claude-mem","settings.json");this.ensureSettingsFile(n);let s=Be.loadFromFile(n);a.json(s)});handleUpdateSettings=this.wrapHandler((r,a)=>{let n=this.validateSettings(r.body);if(!n.valid){a.status(400).json({success:!1,error:n.error});return}let s=Ya.default.join((0,$h.homedir)(),".claude-mem","settings.json");this.ensureSettingsFile(s);let i={};if((0,zt.existsSync)(s)){let c=(0,zt.readFileSync)(s,"utf-8");try{i=JSON.parse(c)}catch(u){P.error("SETTINGS","Failed to parse settings file",{settingsPath:s},u),a.status(500).json({success:!1,error:"Settings file is corrupted. Delete ~/.claude-mem/settings.json to reset."});return}}let o=["CLAUDE_MEM_MODEL","CLAUDE_MEM_CONTEXT_OBSERVATIONS","CLAUDE_MEM_WORKER_PORT","CLAUDE_MEM_WORKER_HOST","CLAUDE_MEM_PROVIDER","CLAUDE_MEM_GEMINI_API_KEY","CLAUDE_MEM_GEMINI_MODEL","CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED","CLAUDE_MEM_OPENROUTER_API_KEY","CLAUDE_MEM_OPENROUTER_MODEL","CLAUDE_MEM_OPENROUTER_SITE_URL","CLAUDE_MEM_OPENROUTER_APP_NAME","CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES","CLAUDE_MEM_OPENROUTER_MAX_TOKENS","CLAUDE_MEM_DATA_DIR","CLAUDE_MEM_LOG_LEVEL","CLAUDE_MEM_PYTHON_VERSION","CLAUDE_CODE_PATH","CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS","CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS","CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT","CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT","CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES","CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS","CLAUDE_MEM_CONTEXT_FULL_COUNT","CLAUDE_MEM_CONTEXT_FULL_FIELD","CLAUDE_MEM_CONTEXT_SESSION_COUNT","CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY","CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE"];for(let c of o)r.body[c]!==void 0&&(i[c]=r.body[c]);(0,zt.writeFileSync)(s,JSON.stringify(i,null,2),"utf-8"),R1(),P.info("WORKER","Settings updated"),a.json({success:!0,message:"Settings updated successfully"})});handleGetMcpStatus=this.wrapHandler((r,a)=>{let n=this.isMcpEnabled();a.json({enabled:n})});handleToggleMcp=this.wrapHandler((r,a)=>{let{enabled:n}=r.body;if(typeof n!="boolean"){this.badRequest(a,"enabled must be a boolean");return}this.toggleMcp(n),a.json({success:!0,enabled:this.isMcpEnabled()})});handleGetBranchStatus=this.wrapHandler((r,a)=>{let n=dd();a.json(n)});handleSwitchBranch=this.wrapHandler(async(r,a)=>{let{branch:n}=r.body;if(!n){a.status(400).json({success:!1,error:"Missing branch parameter"});return}let s=["main","beta/7.0","feature/bun-executable"];if(!s.includes(n)){a.status(400).json({success:!1,error:`Invalid branch. Allowed: ${s.join(", ")}`});return}P.info("WORKER","Branch switch requested",{branch:n});let i=await GR(n);i.success&&setTimeout(()=>{P.info("WORKER","Restarting worker after branch switch"),process.exit(0)},1e3),a.json(i)});handleUpdateBranch=this.wrapHandler(async(r,a)=>{P.info("WORKER","Branch update requested");let n=await ZR();n.success&&setTimeout(()=>{P.info("WORKER","Restarting worker after branch update"),process.exit(0)},1e3),a.json(n)});validateSettings(r){if(r.CLAUDE_MEM_PROVIDER&&!["claude","gemini","openrouter"].includes(r.CLAUDE_MEM_PROVIDER))return{valid:!1,error:'CLAUDE_MEM_PROVIDER must be "claude", "gemini", or "openrouter"'};if(r.CLAUDE_MEM_GEMINI_MODEL&&!["gemini-2.5-flash-lite","gemini-2.5-flash","gemini-3-flash"].includes(r.CLAUDE_MEM_GEMINI_MODEL))return{valid:!1,error:"CLAUDE_MEM_GEMINI_MODEL must be one of: gemini-2.5-flash-lite, gemini-2.5-flash, gemini-3-flash"};if(r.CLAUDE_MEM_CONTEXT_OBSERVATIONS){let n=parseInt(r.CLAUDE_MEM_CONTEXT_OBSERVATIONS,10);if(isNaN(n)||n<1||n>200)return{valid:!1,error:"CLAUDE_MEM_CONTEXT_OBSERVATIONS must be between 1 and 200"}}if(r.CLAUDE_MEM_WORKER_PORT){let n=parseInt(r.CLAUDE_MEM_WORKER_PORT,10);if(isNaN(n)||n<1024||n>65535)return{valid:!1,error:"CLAUDE_MEM_WORKER_PORT must be between 1024 and 65535"}}if(r.CLAUDE_MEM_WORKER_HOST){let n=r.CLAUDE_MEM_WORKER_HOST;if(!/^(127\.0\.0\.1|0\.0\.0\.0|localhost|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/.test(n))return{valid:!1,error:"CLAUDE_MEM_WORKER_HOST must be a valid IP address (e.g., 127.0.0.1, 0.0.0.0)"}}if(r.CLAUDE_MEM_LOG_LEVEL&&!["DEBUG","INFO","WARN","ERROR","SILENT"].includes(r.CLAUDE_MEM_LOG_LEVEL.toUpperCase()))return{valid:!1,error:"CLAUDE_MEM_LOG_LEVEL must be one of: DEBUG, INFO, WARN, ERROR, SILENT"};if(r.CLAUDE_MEM_PYTHON_VERSION&&!/^3\.\d{1,2}$/.test(r.CLAUDE_MEM_PYTHON_VERSION))return{valid:!1,error:'CLAUDE_MEM_PYTHON_VERSION must be in format "3.X" or "3.XX" (e.g., "3.13")'};let a=["CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS","CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS","CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT","CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT","CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY","CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE"];for(let n of a)if(r[n]&&!["true","false"].includes(r[n]))return{valid:!1,error:`${n} must be "true" or "false"`};if(r.CLAUDE_MEM_CONTEXT_FULL_COUNT){let n=parseInt(r.CLAUDE_MEM_CONTEXT_FULL_COUNT,10);if(isNaN(n)||n<0||n>20)return{valid:!1,error:"CLAUDE_MEM_CONTEXT_FULL_COUNT must be between 0 and 20"}}if(r.CLAUDE_MEM_CONTEXT_SESSION_COUNT){let n=parseInt(r.CLAUDE_MEM_CONTEXT_SESSION_COUNT,10);if(isNaN(n)||n<1||n>50)return{valid:!1,error:"CLAUDE_MEM_CONTEXT_SESSION_COUNT must be between 1 and 50"}}if(r.CLAUDE_MEM_CONTEXT_FULL_FIELD&&!["narrative","facts"].includes(r.CLAUDE_MEM_CONTEXT_FULL_FIELD))return{valid:!1,error:'CLAUDE_MEM_CONTEXT_FULL_FIELD must be "narrative" or "facts"'};if(r.CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES){let n=parseInt(r.CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES,10);if(isNaN(n)||n<1||n>100)return{valid:!1,error:"CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES must be between 1 and 100"}}if(r.CLAUDE_MEM_OPENROUTER_MAX_TOKENS){let n=parseInt(r.CLAUDE_MEM_OPENROUTER_MAX_TOKENS,10);if(isNaN(n)||n<1e3||n>1e6)return{valid:!1,error:"CLAUDE_MEM_OPENROUTER_MAX_TOKENS must be between 1000 and 1000000"}}if(r.CLAUDE_MEM_OPENROUTER_SITE_URL)try{new URL(r.CLAUDE_MEM_OPENROUTER_SITE_URL)}catch(n){return P.debug("SETTINGS","Invalid URL format",{url:r.CLAUDE_MEM_OPENROUTER_SITE_URL,error:n instanceof Error?n.message:String(n)}),{valid:!1,error:"CLAUDE_MEM_OPENROUTER_SITE_URL must be a valid URL"}}return{valid:!0}}isMcpEnabled(){let r=or(),a=Ya.default.join(r,"plugin",".mcp.json");return(0,zt.existsSync)(a)}toggleMcp(r){let a=or(),n=Ya.default.join(a,"plugin",".mcp.json"),s=Ya.default.join(a,"plugin",".mcp.json.disabled");r&&(0,zt.existsSync)(s)?((0,zt.renameSync)(s,n),P.info("WORKER","MCP search server enabled")):!r&&(0,zt.existsSync)(n)?((0,zt.renameSync)(n,s),P.info("WORKER","MCP search server disabled")):P.debug("WORKER","MCP toggle no-op (already in desired state)",{enabled:r})}ensureSettingsFile(r){if(!(0,zt.existsSync)(r)){let a=Be.getAllDefaults(),n=Ya.default.dirname(r);(0,zt.existsSync)(n)||(0,zt.mkdirSync)(n,{recursive:!0}),(0,zt.writeFileSync)(r,JSON.stringify(a,null,2),"utf-8"),P.info("SETTINGS","Created settings file with defaults",{settingsPath:r})}}};var Qa=require("fs"),fd=require("path");Ke();hr();var md=class extends dr{getLogFilePath(){let e=Be.get("CLAUDE_MEM_DATA_DIR"),r=(0,fd.join)(e,"logs"),a=new Date().toISOString().split("T")[0];return(0,fd.join)(r,`claude-mem-${a}.log`)}getLogsDir(){let e=Be.get("CLAUDE_MEM_DATA_DIR");return(0,fd.join)(e,"logs")}setupRoutes(e){e.get("/api/logs",this.handleGetLogs.bind(this)),e.post("/api/logs/clear",this.handleClearLogs.bind(this))}handleGetLogs=this.wrapHandler((e,r)=>{let a=this.getLogFilePath();if(!(0,Qa.existsSync)(a)){r.json({logs:"",path:a,exists:!1});return}let n=parseInt(e.query.lines||"1000",10),s=Math.min(n,1e4),o=(0,Qa.readFileSync)(a,"utf-8").split(` -`),c=Math.max(0,o.length-s),u=o.slice(c).join(` -`);r.json({logs:u,path:a,exists:!0,totalLines:o.length,returnedLines:o.length-c})});handleClearLogs=this.wrapHandler((e,r)=>{let a=this.getLogFilePath();if(!(0,Qa.existsSync)(a)){r.json({success:!0,message:"Log file does not exist",path:a});return}(0,Qa.writeFileSync)(a,"","utf-8"),P.info("SYSTEM","Log file cleared via UI",{path:a}),r.json({success:!0,message:"Log file cleared",path:a})})};var ic=(0,XR.promisify)(ra.exec),CV="8.5.5",Mh=xe.default.join((0,Wr.homedir)(),".claude-mem"),ts=xe.default.join(Mh,"worker.pid"),JR=xe.default.join(Mh,"cursor-projects.json");function Ah(t){(0,Ae.mkdirSync)(Mh,{recursive:!0}),(0,Ae.writeFileSync)(ts,JSON.stringify(t,null,2))}function IV(){if(!(0,Ae.existsSync)(ts))return null;try{return JSON.parse((0,Ae.readFileSync)(ts,"utf-8"))}catch(t){return P.warn("SYSTEM","Failed to parse PID file",{path:ts},t),null}}function ta(){if((0,Ae.existsSync)(ts))try{(0,Ae.unlinkSync)(ts)}catch(t){P.warn("SYSTEM","Failed to remove PID file",{path:ts},t)}}function jh(){return P1(JR)}function YR(t){$1(JR,t)}function AV(t,e){let r=jh();r[t]={workspacePath:e,installedAt:new Date().toISOString()},YR(r),P.info("CURSOR","Registered project for auto-context updates",{projectName:t,workspacePath:e})}function NV(t){let e=jh();e[t]&&(delete e[t],YR(e),P.info("CURSOR","Unregistered project",{projectName:t}))}async function Wa(t,e){let a=jh()[t];if(a)try{let n=await fetch(`http://127.0.0.1:${e}/api/context/inject?project=${encodeURIComponent(t)}`);if(!n.ok)return;let s=await n.text();if(!s||!s.trim())return;O1(a.workspacePath,s),P.debug("CURSOR","Updated context file",{projectName:t,workspacePath:a.workspacePath})}catch(n){P.warn("CURSOR","Failed to update context file",{projectName:t},n)}}function es(t){return process.platform==="win32"?Math.round(t*2):t}async function Nh(t){try{return(await fetch(`http://127.0.0.1:${t}/api/health`)).ok}catch{return!1}}async function Ci(t,e=3e4){let r=Date.now();for(;Date.now()-rsetTimeout(a,500))}return!1}async function Oh(t){try{let e=await fetch(`http://127.0.0.1:${t}/api/admin/shutdown`,{method:"POST"});return e.ok?!0:(P.warn("SYSTEM","Shutdown request returned error",{port:t,status:e.status}),!1)}catch(e){return e instanceof Error&&e.message?.includes("ECONNREFUSED")?(P.debug("SYSTEM","Worker already stopped",{port:t},e),!1):(P.warn("SYSTEM","Shutdown request failed unexpectedly",{port:t},e),!1)}}async function Ch(t,e=1e4){let r=Date.now();for(;Date.now()-rsetTimeout(a,500))}return!1}function MV(){let t=xe.default.join((0,Wr.homedir)(),".claude","plugins","marketplaces","thedotmack"),e=xe.default.join(t,"package.json");return JSON.parse((0,Ae.readFileSync)(e,"utf-8")).version}async function jV(t){try{let e=await fetch(`http://127.0.0.1:${t}/api/version`);return e.ok?(await e.json()).version:null}catch{return P.debug("SYSTEM","Could not fetch worker version",{port:t}),null}}async function DV(t){let e=MV(),r=await jV(t);return r?{matches:e===r,pluginVersion:e,workerVersion:r}:{matches:!0,pluginVersion:e,workerVersion:r}}var hd=class{app;server=null;startTime=Date.now();mcpClient;mcpReady=!1;initializationCompleteFlag=!1;isShuttingDown=!1;dbManager;sessionManager;sseBroadcaster;sdkAgent;geminiAgent;openRouterAgent;paginationHelper;settingsManager;sessionEventBroadcaster;viewerRoutes;sessionRoutes;dataRoutes;searchRoutes;settingsRoutes;logsRoutes;initializationComplete;resolveInitialization;constructor(){this.app=(0,WR.default)(),this.initializationComplete=new Promise(e=>{this.resolveInitialization=e}),this.dbManager=new nl,this.sessionManager=new sl(this.dbManager),this.sseBroadcaster=new il,this.sdkAgent=new Hl(this.dbManager,this.sessionManager),this.geminiAgent=new Bl(this.dbManager,this.sessionManager),this.geminiAgent.setFallbackAgent(this.sdkAgent),this.openRouterAgent=new Zl(this.dbManager,this.sessionManager),this.openRouterAgent.setFallbackAgent(this.sdkAgent),this.paginationHelper=new Wl(this.dbManager),this.settingsManager=new Kl(this.dbManager),this.sessionEventBroadcaster=new ed(this.sseBroadcaster,this),this.sessionManager.setOnSessionDeleted(()=>{this.broadcastProcessingStatus()}),this.mcpClient=new Vs({name:"worker-search-proxy",version:"1.0.0"},{capabilities:{}}),this.viewerRoutes=new rd(this.sseBroadcaster,this.dbManager,this.sessionManager),this.sessionRoutes=new sd(this.sessionManager,this.dbManager,this.sdkAgent,this.geminiAgent,this.openRouterAgent,this.sessionEventBroadcaster,this),this.dataRoutes=new id(this.paginationHelper,this.dbManager,this.sessionManager,this.sseBroadcaster,this,this.startTime),this.searchRoutes=null,this.settingsRoutes=new pd(this.settingsManager),this.logsRoutes=new md,this.setupMiddleware(),this.setupRoutes(),this.registerSignalHandlers()}registerSignalHandlers(){let e=async r=>{if(this.isShuttingDown){P.warn("SYSTEM",`Received ${r} but shutdown already in progress`);return}this.isShuttingDown=!0,P.info("SYSTEM",`Received ${r}, shutting down...`);try{await this.shutdown(),process.exit(0)}catch(a){P.error("SYSTEM","Error during shutdown",{},a),process.exit(1)}};process.on("SIGTERM",()=>e("SIGTERM")),process.on("SIGINT",()=>e("SIGINT"))}setupMiddleware(){AR(this.summarizeRequestBody.bind(this)).forEach(r=>this.app.use(r))}setupRoutes(){let e="TEST-008-wrapper-ipc";this.app.get("/api/health",(r,a)=>{a.status(200).json({status:"ok",build:e,managed:process.env.CLAUDE_MEM_MANAGED==="true",hasIpc:typeof process.send=="function",platform:process.platform,pid:process.pid,initialized:this.initializationCompleteFlag,mcpReady:this.mcpReady})}),this.app.get("/api/readiness",(r,a)=>{this.initializationCompleteFlag?a.status(200).json({status:"ready",mcpReady:this.mcpReady}):a.status(503).json({status:"initializing",message:"Worker is still initializing, please retry"})}),this.app.get("/api/version",(r,a)=>{a.status(200).json({version:CV})}),this.app.get("/api/instructions",async(r,a)=>{let n=r.query.topic||"all",s=r.query.operation,i;if(s){let o=xe.default.join(__dirname,"../skills/mem-search/operations",`${s}.md`);i=await Ih.promises.readFile(o,"utf-8")}else{let o=xe.default.join(__dirname,"../skills/mem-search/SKILL.md"),c=await Ih.promises.readFile(o,"utf-8");i=this.extractInstructionSection(c,n)}a.json({content:[{type:"text",text:i}]})}),this.app.post("/api/admin/restart",Sh,async(r,a)=>{a.json({status:"restarting"}),process.platform==="win32"&&process.env.CLAUDE_MEM_MANAGED==="true"&&process.send?(P.info("SYSTEM","Sending restart request to wrapper"),process.send({type:"restart"})):setTimeout(async()=>{await this.shutdown(),process.exit(0)},100)}),this.app.post("/api/admin/shutdown",Sh,async(r,a)=>{a.json({status:"shutting_down"}),process.platform==="win32"&&process.env.CLAUDE_MEM_MANAGED==="true"&&process.send?(P.info("SYSTEM","Sending shutdown request to wrapper"),process.send({type:"shutdown"})):setTimeout(async()=>{await this.shutdown(),process.exit(0)},100)}),this.viewerRoutes.setupRoutes(this.app),this.sessionRoutes.setupRoutes(this.app),this.dataRoutes.setupRoutes(this.app),this.settingsRoutes.setupRoutes(this.app),this.logsRoutes.setupRoutes(this.app),this.app.get("/api/context/inject",async(r,a,n)=>{let i=new Promise((o,c)=>setTimeout(()=>c(new Error("Initialization timeout")),3e5));if(await Promise.race([this.initializationComplete,i]),!this.searchRoutes){a.status(503).json({error:"Search routes not initialized"});return}n()})}async cleanupOrphanedProcesses(){let e=process.platform==="win32",r=[];if(e){let a=`powershell -Command "Get-CimInstance Win32_Process | Where-Object { $_.Name -like '*python*' -and $_.CommandLine -like '*chroma-mcp*' } | Select-Object -ExpandProperty ProcessId"`,{stdout:n}=await ic(a,{timeout:6e4});if(!n.trim()){P.debug("SYSTEM","No orphaned chroma-mcp processes found (Windows)");return}let s=n.trim().split(` -`);for(let i of s){let o=parseInt(i.trim(),10);!isNaN(o)&&Number.isInteger(o)&&o>0&&r.push(o)}}else{let{stdout:a}=await ic('ps aux | grep "chroma-mcp" | grep -v grep || true');if(!a.trim()){P.debug("SYSTEM","No orphaned chroma-mcp processes found (Unix)");return}let n=a.trim().split(` -`);for(let s of n){let i=s.trim().split(/\s+/);if(i.length>1){let o=parseInt(i[1],10);!isNaN(o)&&Number.isInteger(o)&&o>0&&r.push(o)}}}if(r.length!==0){if(P.info("SYSTEM","Cleaning up orphaned chroma-mcp processes",{platform:e?"Windows":"Unix",count:r.length,pids:r}),e)for(let a of r){if(!Number.isInteger(a)||a<=0){P.warn("SYSTEM","Skipping invalid PID",{pid:a});continue}try{(0,ra.execSync)(`taskkill /PID ${a} /T /F`,{timeout:6e4,stdio:"ignore"})}catch(n){P.debug("SYSTEM","Failed to kill process, may have already exited",{pid:a},n)}}else for(let a of r)try{process.kill(a,"SIGKILL")}catch(n){P.debug("SYSTEM","Process already exited",{pid:a},n)}P.info("SYSTEM","Orphaned processes cleaned up",{count:r.length})}}async start(){let e=Xt(),r=k1();this.server=await new Promise((a,n)=>{let s=this.app.listen(e,r,()=>a(s));s.on("error",n)}),P.info("SYSTEM","Worker started",{host:r,port:e,pid:process.pid}),this.initializeBackground().catch(a=>{P.error("SYSTEM","Background initialization failed",{},a)})}async initializeBackground(){try{await this.cleanupOrphanedProcesses();let{ModeManager:e}=await Promise.resolve().then(()=>(ln(),V1)),{SettingsDefaultsManager:r}=await Promise.resolve().then(()=>(hr(),w1)),{USER_SETTINGS_PATH:a}=await Promise.resolve().then(()=>(vr(),q1)),s=r.loadFromFile(a).CLAUDE_MEM_MODE;e.getInstance().loadMode(s),P.info("SYSTEM",`Mode loaded: ${s}`),await this.dbManager.initialize();let{PendingMessageStore:i}=await Promise.resolve().then(()=>(Ua(),Js)),o=new i(this.dbManager.getSessionStore().db,3),c=300*1e3,u=o.resetStuckMessages(c);u>0&&P.info("SYSTEM",`Recovered ${u} stuck messages from previous session`,{thresholdMinutes:5});let l=new Yl,d=new Ql,p=new Jl(this.dbManager.getSessionSearch(),this.dbManager.getSessionStore(),this.dbManager.getChromaSync(),l,d);this.searchRoutes=new ld(p),this.searchRoutes.setupRoutes(this.app),P.info("WORKER","SearchManager initialized and search routes registered");let f=xe.default.join(__dirname,"mcp-server.cjs"),v=new Ws({command:"node",args:[f],env:process.env}),_=3e5,m=this.mcpClient.connect(v),h=new Promise((y,g)=>setTimeout(()=>g(new Error("MCP connection timeout after 5 minutes")),_));await Promise.race([m,h]),this.mcpReady=!0,P.success("WORKER","Connected to MCP server"),this.initializationCompleteFlag=!0,this.resolveInitialization(),P.info("SYSTEM","Background initialization complete"),this.processPendingQueues(50).then(y=>{y.sessionsStarted>0&&P.info("SYSTEM",`Auto-recovered ${y.sessionsStarted} sessions with pending work`,{totalPending:y.totalPendingSessions,started:y.sessionsStarted,sessionIds:y.startedSessionIds})}).catch(y=>{P.warn("SYSTEM","Auto-recovery of pending queues failed",{},y)})}catch(e){throw P.error("SYSTEM","Background initialization failed",{},e),e}}startSessionProcessor(e,r){if(!e)return;let a=e.sessionDbId;P.info("SYSTEM",`Starting generator (${r})`,{sessionId:a}),e.generatorPromise=this.sdkAgent.startSession(e,this).catch(n=>{P.error("SDK","Session generator failed",{sessionId:e.sessionDbId,project:e.project},n)}).finally(()=>{e.generatorPromise=null,this.broadcastProcessingStatus()})}async processPendingQueues(e=10){let{PendingMessageStore:r}=await Promise.resolve().then(()=>(Ua(),Js)),a=new r(this.dbManager.getSessionStore().db,3),n=a.getSessionsWithPendingMessages(),s={totalPendingSessions:n.length,sessionsStarted:0,sessionsSkipped:0,startedSessionIds:[]};if(n.length===0)return s;P.info("SYSTEM",`Processing up to ${e} of ${n.length} pending session queues`);for(let i of n){if(s.sessionsStarted>=e)break;try{if(this.sessionManager.getSession(i)?.generatorPromise){s.sessionsSkipped++;continue}let c=this.sessionManager.initializeSession(i);P.info("SYSTEM",`Starting processor for session ${i}`,{project:c.project,pendingCount:a.getPendingCount(i)}),this.startSessionProcessor(c,"startup-recovery"),s.sessionsStarted++,s.startedSessionIds.push(i),await new Promise(u=>setTimeout(u,100))}catch(o){P.warn("SYSTEM",`Failed to process session ${i}`,{},o),s.sessionsSkipped++}}return s}extractInstructionSection(e,r){let a={workflow:this.extractBetween(e,"## The Workflow","## Search Parameters"),search_params:this.extractBetween(e,"## Search Parameters","## Examples"),examples:this.extractBetween(e,"## Examples","## Why This Workflow"),all:e};return a[r]||a.all}extractBetween(e,r,a){let n=e.indexOf(r),s=e.indexOf(a);return n===-1?e:s===-1?e.substring(n):e.substring(n,s).trim()}async shutdown(){P.info("SYSTEM","Shutdown initiated"),ta();let e=await this.getChildProcesses(process.pid);if(P.info("SYSTEM","Found child processes",{count:e.length,pids:e}),this.server&&(this.server.closeAllConnections(),process.platform==="win32"&&await new Promise(r=>setTimeout(r,500)),await new Promise((r,a)=>{this.server.close(n=>n?a(n):r())}),this.server=null,P.info("SYSTEM","HTTP server closed"),process.platform==="win32"&&(await new Promise(r=>setTimeout(r,500)),P.info("SYSTEM","Waited for Windows port cleanup"))),await this.sessionManager.shutdownAll(),this.mcpClient&&(await this.mcpClient.close(),P.info("SYSTEM","MCP client closed")),await this.dbManager.close(),e.length>0){P.info("SYSTEM","Force killing remaining children");for(let r of e)await this.forceKillProcess(r);await this.waitForProcessesExit(e,5e3)}P.info("SYSTEM","Worker shutdown complete")}async getChildProcesses(e){if(process.platform!=="win32")return[];if(!Number.isInteger(e)||e<=0)return P.warn("SYSTEM","Invalid parent PID for child process enumeration",{parentPid:e}),[];try{let r=`powershell -Command "Get-CimInstance Win32_Process | Where-Object { $_.ParentProcessId -eq ${e} } | Select-Object -ExpandProperty ProcessId"`,{stdout:a}=await ic(r,{timeout:6e4});return a.trim().split(` -`).map(n=>parseInt(n.trim(),10)).filter(n=>!isNaN(n)&&Number.isInteger(n)&&n>0)}catch(r){return P.warn("SYSTEM","Failed to enumerate child processes",{parentPid:e},r),[]}}async forceKillProcess(e){if(!Number.isInteger(e)||e<=0){P.warn("SYSTEM","Invalid PID for force kill",{pid:e});return}try{process.platform==="win32"?await ic(`taskkill /PID ${e} /T /F`,{timeout:6e4}):process.kill(e,"SIGKILL"),P.info("SYSTEM","Killed process",{pid:e})}catch(r){P.debug("SYSTEM","Process already exited during force kill",{pid:e},r)}}async waitForProcessesExit(e,r){let a=Date.now();for(;Date.now()-a{try{return process.kill(s,0),!0}catch{return!1}});if(n.length===0){P.info("SYSTEM","All child processes exited");return}P.debug("SYSTEM","Waiting for processes to exit",{stillAlive:n}),await new Promise(s=>setTimeout(s,100))}P.warn("SYSTEM","Timeout waiting for child processes to exit")}summarizeRequestBody(e,r,a){return NR(e,r,a)}broadcastProcessingStatus(){let e=this.sessionManager.isAnySessionProcessing(),r=this.sessionManager.getTotalActiveWork(),a=this.sessionManager.getActiveSessionCount();P.info("WORKER","Broadcasting processing status",{isProcessing:e,queueDepth:r,activeSessions:a}),this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:e,queueDepth:r})}};async function LV(){let t=KR.createInterface({input:process.stdin,output:process.stdout}),e=r=>new Promise(a=>t.question(r,a));console.log(` -\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557 -\u2551 Claude-Mem Cursor Setup Wizard \u2551 -\u2551 \u2551 -\u2551 This wizard will guide you through setting up claude-mem \u2551 -\u2551 for use with Cursor IDE. \u2551 -\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D -`);try{console.log(`Step 1: Checking environment... -`);let r=await qV(),a=xe.default.join((0,Wr.homedir)(),".claude-mem","settings.json"),n={};if((0,Ae.existsSync)(a))try{n=JSON.parse((0,Ae.readFileSync)(a,"utf-8"))}catch(d){P.debug("SETUP","Corrupt settings file, starting fresh",{path:a},d)}let s=n.CLAUDE_MEM_PROVIDER||(r?"claude-sdk":"none");console.log(r?`\u2705 Claude Code detected -`:`\u2139\uFE0F Claude Code not detected -`),console.log(`Current provider: ${s} -`),console.log(`Step 2: Choose AI Provider -`),console.log(r?" [1] Claude SDK (Recommended - uses your Claude Code subscription)":" [1] Claude SDK (requires Claude Code subscription)"),console.log(" [2] Gemini (1500 free requests/day)"),console.log(" [3] OpenRouter (100+ models, some free)"),console.log(` [4] Keep current settings -`);let i=await e("Enter choice [1-4]: ");if(i==="1")n.CLAUDE_MEM_PROVIDER="claude-sdk",(0,Ae.mkdirSync)(xe.default.dirname(a),{recursive:!0}),(0,Ae.writeFileSync)(a,JSON.stringify(n,null,2)),console.log(` -\u2705 Claude SDK configured! -`);else if(i==="2"){console.log(` -\u{1F4DD} Configuring Gemini... -`),console.log(` Get your free API key at: https://aistudio.google.com/apikey -`);let d=await e("Enter your Gemini API key: ");d.trim()?(n.CLAUDE_MEM_PROVIDER="gemini",n.CLAUDE_MEM_GEMINI_API_KEY=d.trim(),(0,Ae.mkdirSync)(xe.default.dirname(a),{recursive:!0}),(0,Ae.writeFileSync)(a,JSON.stringify(n,null,2)),console.log(` -\u2705 Gemini configured successfully! -`)):console.log(` -\u26A0\uFE0F No API key provided. You can add it later in ~/.claude-mem/settings.json -`)}else if(i==="3"){console.log(` -\u{1F4DD} Configuring OpenRouter... -`),console.log(` Get your API key at: https://openrouter.ai/keys -`);let d=await e("Enter your OpenRouter API key: ");d.trim()?(n.CLAUDE_MEM_PROVIDER="openrouter",n.CLAUDE_MEM_OPENROUTER_API_KEY=d.trim(),(0,Ae.mkdirSync)(xe.default.dirname(a),{recursive:!0}),(0,Ae.writeFileSync)(a,JSON.stringify(n,null,2)),console.log(` -\u2705 OpenRouter configured successfully! -`)):console.log(` -\u26A0\uFE0F No API key provided. You can add it later in ~/.claude-mem/settings.json -`)}else console.log(` -\u2705 Keeping current settings. -`);console.log(`Step 3: Choose installation scope -`),console.log(" [1] Project (current directory only) - Recommended"),console.log(" [2] User (all projects for current user)"),console.log(` [3] Skip hook installation -`);let o=await e("Enter choice [1-3]: "),c=null;if(o==="1"?c="project":o==="2"?c="user":console.log(` -\u26A0\uFE0F Skipping hook installation. -`),c){console.log(`Step 4: Installing Cursor hooks (${c})... -`);let d=QR();if(!d)return console.error("\u274C Could not find cursor-hooks directory"),console.error(" Make sure you ran npm run build first."),t.close(),1;let p=await eP(d,c);if(p!==0)return t.close(),p;console.log(` -Step 5: Configuring MCP server for memory search... -`),UV(c)!==0?(console.warn("\u26A0\uFE0F MCP configuration failed, but hooks are installed."),console.warn(` You can manually configure MCP later. -`)):console.log("")}console.log(` -Step 6: Starting claude-mem worker... -`);let u=Xt();if(await Ci(u,1e3))console.log(`\u2705 Worker is already running! -`);else{console.log(" Starting worker in background...");let d=(0,ra.spawn)(process.execPath,[__filename,"--daemon"],{detached:!0,stdio:"ignore",windowsHide:!0,env:{...process.env,CLAUDE_MEM_WORKER_PORT:String(u)}});if(d.pid===void 0)return console.error("\u274C Failed to start worker"),t.close(),1;if(d.unref(),Ah({pid:d.pid,port:u,startedAt:new Date().toISOString()}),!await Ci(u,es(3e4)))return ta(),console.error("\u274C Worker failed to start"),t.close(),1;console.log(`\u2705 Worker started successfully! -`)}return console.log(` -\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557 -\u2551 Setup Complete! \u{1F389} \u2551 -\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D - -What's installed: - \u2713 Cursor hooks - Automatically capture sessions - \u2713 Context injection - Past work injected into new chats - \u2713 MCP search server - Ask "what did I work on last week?" - -Next steps: - 1. Restart Cursor to load the hooks and MCP server - 2. Start chatting - your sessions will be remembered! - 3. Use natural language to search: "find where I fixed the auth bug" - -Useful commands: - npm run cursor:status Check installation status - npm run worker:status Check worker status - npm run worker:logs View worker logs - -Memory viewer: - http://localhost:${u} - -Documentation: - https://docs.claude-mem.ai/cursor -`),t.close(),0}catch(r){return t.close(),console.error(` -\u274C Setup failed: ${r.message}`),1}}async function qV(){try{let{stdout:e}=await ic("which claude || where claude",{timeout:5e3});if(e.trim())return!0}catch(e){P.debug("SYSTEM","Claude CLI not in PATH",{},e)}let t=xe.default.join((0,Wr.homedir)(),".claude","plugins");return!!(0,Ae.existsSync)(t)}function QR(){let t=[xe.default.join((0,Wr.homedir)(),".claude","plugins","marketplaces","thedotmack","cursor-hooks"),xe.default.join(xe.default.dirname(__filename),"..","..","cursor-hooks"),xe.default.join(process.cwd(),"cursor-hooks")];for(let e of t)if((0,Ae.existsSync)(xe.default.join(e,"common.sh"))||(0,Ae.existsSync)(xe.default.join(e,"common.ps1")))return e;return null}function FV(){let t=[xe.default.join((0,Wr.homedir)(),".claude","plugins","marketplaces","thedotmack","plugin","scripts","mcp-server.cjs"),xe.default.join(xe.default.dirname(__filename),"mcp-server.cjs"),xe.default.join(process.cwd(),"plugin","scripts","mcp-server.cjs")];for(let e of t)if((0,Ae.existsSync)(e))return e;return null}function UV(t){let e=FV();if(!e)return console.error("\u274C Could not find MCP server script"),console.error(" Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/mcp-server.cjs"),1;let r,a;switch(t){case"project":r=xe.default.join(process.cwd(),".cursor"),a=xe.default.join(r,"mcp.json");break;case"user":r=xe.default.join((0,Wr.homedir)(),".cursor"),a=xe.default.join(r,"mcp.json");break;default:return console.error(`\u274C Invalid target: ${t}. Use: project or user`),1}try{(0,Ae.mkdirSync)(r,{recursive:!0});let n={mcpServers:{}};if((0,Ae.existsSync)(a))try{n=JSON.parse((0,Ae.readFileSync)(a,"utf-8")),n.mcpServers||(n.mcpServers={})}catch(s){P.warn("SYSTEM","Corrupt mcp.json, creating new config",{path:a},s),n={mcpServers:{}}}return n.mcpServers["claude-mem"]={command:"node",args:[e]},(0,Ae.writeFileSync)(a,JSON.stringify(n,null,2)),console.log(` \u2713 Configured MCP server in ${t==="user"?"~/.cursor":".cursor"}/mcp.json`),console.log(` Server path: ${e}`),0}catch(n){return console.error(`\u274C Failed to configure MCP: ${n.message}`),1}}async function zV(t,e){switch(t){case"install":{let r=e[0]||"project",a=QR();return a?eP(a,r):(console.error("\u274C Could not find cursor-hooks directory"),console.error(" Expected at: ~/.claude/plugins/marketplaces/thedotmack/cursor-hooks/"),1)}case"uninstall":{let r=e[0]||"project";return BV(r)}case"status":return VV();case"setup":return await LV();default:return console.log(` -Claude-Mem Cursor Integration - -Usage: claude-mem cursor [options] - -Commands: - setup Interactive guided setup (recommended for first-time users) - - install [target] Install Cursor hooks - target: project (default), user, or enterprise - - uninstall [target] Remove Cursor hooks - target: project (default), user, or enterprise - - status Check installation status - -Examples: - npm run cursor:setup # Interactive wizard (recommended) - npm run cursor:install # Install for current project - claude-mem cursor install user # Install globally for user - claude-mem cursor uninstall # Remove from current project - claude-mem cursor status # Check if hooks are installed - -For more info: https://docs.claude-mem.ai/cursor - `),0}}function Dh(){return process.platform==="win32"?"windows":"unix"}function HV(){return Dh()==="windows"?".ps1":".sh"}async function eP(t,e){let r=Dh(),a=HV();console.log(` -\u{1F4E6} Installing Claude-Mem Cursor hooks (${e} level, ${r})... -`);let n,s,i=process.cwd();switch(e){case"project":n=xe.default.join(process.cwd(),".cursor"),s=xe.default.join(n,"hooks");break;case"user":n=xe.default.join((0,Wr.homedir)(),".cursor"),s=xe.default.join(n,"hooks");break;case"enterprise":if(process.platform==="darwin")n="/Library/Application Support/Cursor",s=xe.default.join(n,"hooks");else if(process.platform==="linux")n="/etc/cursor",s=xe.default.join(n,"hooks");else if(process.platform==="win32")n=xe.default.join(process.env.ProgramData||"C:\\ProgramData","Cursor"),s=xe.default.join(n,"hooks");else return console.error("\u274C Enterprise installation not supported on this platform"),1;break;default:return console.error(`\u274C Invalid target: ${e}. Use: project, user, or enterprise`),1}try{(0,Ae.mkdirSync)(s,{recursive:!0});let o=r==="windows"?"common.ps1":"common.sh",c=[`session-init${a}`,`context-inject${a}`,`save-observation${a}`,`save-file-edit${a}`,`session-summary${a}`],u=[o,...c];for(let v of u){let _=xe.default.join(t,v),m=xe.default.join(s,v);if((0,Ae.existsSync)(_)){let h=(0,Ae.readFileSync)(_,"utf-8"),y=r==="windows"?void 0:493;(0,Ae.writeFileSync)(m,h,y?{mode:y}:void 0),console.log(` \u2713 Copied ${v}`)}else console.warn(` \u26A0 ${v} not found in source`)}let l=xe.default.join(n,"hooks.json"),d=e==="project"?"./.cursor/hooks/":`${s}/`,p=v=>{let _=`${d}${v}${a}`;return r==="windows"?`powershell.exe -ExecutionPolicy Bypass -File "${_}"`:_},f={version:1,hooks:{beforeSubmitPrompt:[{command:p("session-init")},{command:p("context-inject")}],afterMCPExecution:[{command:p("save-observation")}],afterShellExecution:[{command:p("save-observation")}],afterFileEdit:[{command:p("save-file-edit")}],stop:[{command:p("session-summary")}]}};if((0,Ae.writeFileSync)(l,JSON.stringify(f,null,2)),console.log(` \u2713 Created hooks.json (${r} mode)`),e==="project"){let v=xe.default.join(n,"rules");(0,Ae.mkdirSync)(v,{recursive:!0});let _=Xt(),m=xe.default.basename(i),h=!1;console.log(" \u23F3 Generating initial context...");try{if((await fetch(`http://127.0.0.1:${_}/api/readiness`)).ok){let g=await fetch(`http://127.0.0.1:${_}/api/context/inject?project=${encodeURIComponent(m)}`);if(g.ok){let b=await g.text();if(b&&b.trim()){let w=xe.default.join(v,"claude-mem-context.mdc"),S=`--- -alwaysApply: true -description: "Claude-mem context from past sessions (auto-updated)" ---- - -# Memory Context from Past Sessions - -The following context is from claude-mem, a persistent memory system that tracks your coding sessions. - -${b} - ---- -*This context is updated after each session. Use claude-mem's MCP search tools for more detailed queries.* -`;(0,Ae.writeFileSync)(w,S),h=!0,console.log(" \u2713 Generated initial context from existing memory")}}}}catch(y){P.debug("CURSOR","Worker not running during install",{},y)}if(!h){let y=xe.default.join(v,"claude-mem-context.mdc");(0,Ae.writeFileSync)(y,`--- -alwaysApply: true -description: "Claude-mem context from past sessions (auto-updated)" ---- - -# Memory Context from Past Sessions - -*No context yet. Complete your first session and context will appear here.* - -Use claude-mem's MCP search tools for manual memory queries. -`),console.log(" \u2713 Created placeholder context file (will populate after first session)")}AV(m,i),console.log(" \u2713 Registered for auto-context updates")}return console.log(` -\u2705 Installation complete! - -Hooks installed to: ${n}/hooks.json -Scripts installed to: ${s} - -Next steps: - 1. Start claude-mem worker: claude-mem start - 2. Restart Cursor to load the hooks - 3. Check Cursor Settings \u2192 Hooks tab to verify - -Context Injection: - Context from past sessions is stored in .cursor/rules/claude-mem-context.mdc - and automatically included in every chat. It updates after each session ends. -`),0}catch(o){return console.error(` -\u274C Installation failed: ${o.message}`),e==="enterprise"&&console.error(" Tip: Enterprise installation may require sudo/admin privileges"),1}}function BV(t){console.log(` -\u{1F5D1}\uFE0F Uninstalling Claude-Mem Cursor hooks (${t} level)... -`);let e;switch(t){case"project":e=xe.default.join(process.cwd(),".cursor");break;case"user":e=xe.default.join((0,Wr.homedir)(),".cursor");break;case"enterprise":if(process.platform==="darwin")e="/Library/Application Support/Cursor";else if(process.platform==="linux")e="/etc/cursor";else return console.error("\u274C Enterprise not supported on Windows"),1;break;default:return console.error(`\u274C Invalid target: ${t}`),1}try{let r=xe.default.join(e,"hooks"),a=xe.default.join(e,"hooks.json"),n=["common.sh","session-init.sh","context-inject.sh","save-observation.sh","save-file-edit.sh","session-summary.sh"],s=["common.ps1","session-init.ps1","context-inject.ps1","save-observation.ps1","save-file-edit.ps1","session-summary.ps1"],i=[...n,...s];for(let o of i){let c=xe.default.join(r,o);(0,Ae.existsSync)(c)&&((0,Ae.unlinkSync)(c),console.log(` \u2713 Removed ${o}`))}if((0,Ae.existsSync)(a)&&((0,Ae.unlinkSync)(a),console.log(" \u2713 Removed hooks.json")),t==="project"){let o=xe.default.join(e,"rules","claude-mem-context.mdc");(0,Ae.existsSync)(o)&&((0,Ae.unlinkSync)(o),console.log(" \u2713 Removed context file"));let c=xe.default.basename(process.cwd());NV(c),console.log(" \u2713 Unregistered from auto-context updates")}return console.log(` -\u2705 Uninstallation complete! -`),console.log("Restart Cursor to apply changes."),0}catch(r){return console.error(` -\u274C Uninstallation failed: ${r.message}`),1}}function VV(){console.log(` -\u{1F50D} Claude-Mem Cursor Hooks Status -`);let t=[{name:"Project",dir:xe.default.join(process.cwd(),".cursor")},{name:"User",dir:xe.default.join((0,Wr.homedir)(),".cursor")}];process.platform==="darwin"?t.push({name:"Enterprise",dir:"/Library/Application Support/Cursor"}):process.platform==="linux"&&t.push({name:"Enterprise",dir:"/etc/cursor"});let e=!1;for(let r of t){let a=xe.default.join(r.dir,"hooks.json"),n=xe.default.join(r.dir,"hooks");if((0,Ae.existsSync)(a)){e=!0,console.log(`\u2705 ${r.name}: Installed`),console.log(` Config: ${a}`);let s=["session-init.sh","context-inject.sh","save-observation.sh"],i=["session-init.ps1","context-inject.ps1","save-observation.ps1"],o=s.some(p=>(0,Ae.existsSync)(xe.default.join(n,p))),c=i.some(p=>(0,Ae.existsSync)(xe.default.join(n,p)));console.log(o&&c?" Platform: Both (bash + PowerShell)":o?" Platform: Unix (bash)":c?" Platform: Windows (PowerShell)":" \u26A0 No hook scripts found");let u=Dh(),d=(u==="windows"?i:s).filter(p=>!(0,Ae.existsSync)(xe.default.join(n,p)));if(d.length>0?console.log(` \u26A0 Missing ${u} scripts: ${d.join(", ")}`):console.log(` Scripts: All present for ${u}`),r.name==="Project"){let p=xe.default.join(r.dir,"rules","claude-mem-context.mdc");(0,Ae.existsSync)(p)?console.log(" Context: Active"):console.log(" Context: Not yet generated (will be created on first prompt)")}}else console.log(`\u274C ${r.name}: Not installed`);console.log("")}return e||console.log(`No hooks installed. Run: claude-mem cursor install -`),0}async function GV(){let t=process.argv[2],e=Xt();switch(t){case"start":{if(await Ci(e,1e3)){let s=await DV(e);s.matches?(P.info("SYSTEM","Worker already running and healthy"),process.exit(0)):(P.info("SYSTEM","Worker version mismatch detected - auto-restarting",{pluginVersion:s.pluginVersion,workerVersion:s.workerVersion}),await Oh(e),await Ch(e,es(15e3))||(P.error("SYSTEM","Port did not free up after shutdown for version mismatch restart",{port:e}),process.exit(1)),ta())}await Nh(e)&&(P.info("SYSTEM","Port in use, waiting for worker to become healthy"),await Ci(e,es(15e3))&&(P.info("SYSTEM","Worker is now healthy"),process.exit(0)),P.error("SYSTEM","Port in use but worker not responding to health checks"),process.exit(1)),P.info("SYSTEM","Starting worker daemon");let a=(0,ra.spawn)(process.execPath,[__filename,"--daemon"],{detached:!0,stdio:"ignore",windowsHide:!0,env:{...process.env,CLAUDE_MEM_WORKER_PORT:String(e)}});a.pid===void 0&&(P.error("SYSTEM","Failed to spawn worker daemon"),process.exit(1)),a.unref(),Ah({pid:a.pid,port:e,startedAt:new Date().toISOString()}),await Ci(e,es(3e4))||(ta(),P.error("SYSTEM","Worker failed to start (health check timeout)"),process.exit(1)),P.info("SYSTEM","Worker started successfully"),process.exit(0)}case"stop":await Oh(e),await Ch(e,es(15e3))||P.warn("SYSTEM","Port did not free up after shutdown",{port:e}),ta(),P.info("SYSTEM","Worker stopped successfully"),process.exit(0);case"restart":{P.info("SYSTEM","Restarting worker"),await Oh(e),await Ch(e,es(15e3))||(P.error("SYSTEM","Port did not free up after shutdown, aborting restart",{port:e}),process.exit(1)),ta();let a=(0,ra.spawn)(process.execPath,[__filename,"--daemon"],{detached:!0,stdio:"ignore",windowsHide:!0,env:{...process.env,CLAUDE_MEM_WORKER_PORT:String(e)}});a.pid===void 0&&(P.error("SYSTEM","Failed to spawn worker daemon during restart"),process.exit(1)),a.unref(),Ah({pid:a.pid,port:e,startedAt:new Date().toISOString()}),await Ci(e,es(3e4))||(ta(),P.error("SYSTEM","Worker failed to restart"),process.exit(1)),P.info("SYSTEM","Worker restarted successfully"),process.exit(0)}case"status":{let r=await Nh(e),a=IV();r&&a?(console.log("Worker is running"),console.log(` PID: ${a.pid}`),console.log(` Port: ${a.port}`),console.log(` Started: ${a.startedAt}`)):console.log("Worker is not running"),process.exit(0)}case"cursor":{let r=process.argv[3],a=await zV(r,process.argv.slice(4));process.exit(a)}case"--daemon":default:new hd().start().catch(a=>{P.failure("SYSTEM","Worker failed to start",{},a),ta(),process.exit(1)})}}(require.main===module||!module.parent)&&GV();0&&(module.exports={WorkerService,updateCursorContextForProject}); + `).all().map(s=>s.project);n.json({projects:o})});handleGetProcessingStatus=this.wrapHandler((r,n)=>{let i=this.sessionManager.isAnySessionProcessing(),a=this.sessionManager.getTotalActiveWork();n.json({isProcessing:i,queueDepth:a})});handleSetProcessing=this.wrapHandler((r,n)=>{this.workerService.broadcastProcessingStatus();let i=this.sessionManager.isAnySessionProcessing(),a=this.sessionManager.getTotalQueueDepth(),o=this.sessionManager.getActiveSessionCount();n.json({status:"ok",isProcessing:i,queueDepth:a,activeSessions:o})});parsePaginationParams(r){let n=parseInt(r.query.offset,10)||0,i=Math.min(parseInt(r.query.limit,10)||20,100),a=r.query.project;return{offset:n,limit:i,project:a}}handleImport=this.wrapHandler((r,n)=>{let{sessions:i,summaries:a,observations:o,prompts:s}=r.body,c={sessionsImported:0,sessionsSkipped:0,summariesImported:0,summariesSkipped:0,observationsImported:0,observationsSkipped:0,promptsImported:0,promptsSkipped:0},u=this.dbManager.getSessionStore();if(Array.isArray(i))for(let l of i)u.importSdkSession(l).imported?c.sessionsImported++:c.sessionsSkipped++;if(Array.isArray(a))for(let l of a)u.importSessionSummary(l).imported?c.summariesImported++:c.summariesSkipped++;if(Array.isArray(o))for(let l of o)u.importObservation(l).imported?c.observationsImported++:c.observationsSkipped++;if(Array.isArray(s))for(let l of s)u.importUserPrompt(l).imported?c.promptsImported++:c.promptsSkipped++;n.json({success:!0,stats:c})});handleGetPendingQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:i}=(fo(),Ud(Ws)),a=new i(this.dbManager.getSessionStore().db,3),o=a.getQueueMessages(),s=a.getRecentlyProcessed(20,30),c=a.getStuckCount(300*1e3),u=a.getSessionsWithPendingMessages();n.json({queue:{messages:o,totalPending:o.filter(l=>l.status==="pending").length,totalProcessing:o.filter(l=>l.status==="processing").length,totalFailed:o.filter(l=>l.status==="failed").length,stuckCount:c},recentlyProcessed:s,sessionsWithPendingWork:u})});handleProcessPendingQueue=this.wrapHandler(async(r,n)=>{let i=Math.min(Math.max(parseInt(r.body.sessionLimit,10)||10,1),100),a=await this.workerService.processPendingQueues(i);n.json({success:!0,...a})});handleClearFailedQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:i}=(fo(),Ud(Ws)),o=new i(this.dbManager.getSessionStore().db,3).clearFailed();k.info("QUEUE","Cleared failed queue messages",{clearedCount:o}),n.json({success:!0,clearedCount:o})});handleClearAllQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:i}=(fo(),Ud(Ws)),o=new i(this.dbManager.getSessionStore().db,3).clearAll();k.warn("QUEUE","Cleared ALL queue messages (pending, processing, failed)",{clearedCount:o}),n.json({success:!0,clearedCount:o})})};var Sg=class extends Xr{constructor(r){super();this.searchManager=r}setupRoutes(r){r.get("/api/search",this.handleUnifiedSearch.bind(this)),r.get("/api/timeline",this.handleUnifiedTimeline.bind(this)),r.get("/api/decisions",this.handleDecisions.bind(this)),r.get("/api/changes",this.handleChanges.bind(this)),r.get("/api/how-it-works",this.handleHowItWorks.bind(this)),r.get("/api/search/observations",this.handleSearchObservations.bind(this)),r.get("/api/search/sessions",this.handleSearchSessions.bind(this)),r.get("/api/search/prompts",this.handleSearchPrompts.bind(this)),r.get("/api/search/by-concept",this.handleSearchByConcept.bind(this)),r.get("/api/search/by-file",this.handleSearchByFile.bind(this)),r.get("/api/search/by-type",this.handleSearchByType.bind(this)),r.get("/api/context/recent",this.handleGetRecentContext.bind(this)),r.get("/api/context/timeline",this.handleGetContextTimeline.bind(this)),r.get("/api/context/preview",this.handleContextPreview.bind(this)),r.get("/api/context/inject",this.handleContextInject.bind(this)),r.get("/api/timeline/by-query",this.handleGetTimelineByQuery.bind(this)),r.get("/api/search/help",this.handleSearchHelp.bind(this))}handleUnifiedSearch=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.search(r.query);n.json(i)});handleUnifiedTimeline=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.timeline(r.query);n.json(i)});handleDecisions=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.decisions(r.query);n.json(i)});handleChanges=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.changes(r.query);n.json(i)});handleHowItWorks=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.howItWorks(r.query);n.json(i)});handleSearchObservations=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.searchObservations(r.query);n.json(i)});handleSearchSessions=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.searchSessions(r.query);n.json(i)});handleSearchPrompts=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.searchUserPrompts(r.query);n.json(i)});handleSearchByConcept=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.findByConcept(r.query);n.json(i)});handleSearchByFile=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.findByFile(r.query);n.json(i)});handleSearchByType=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.findByType(r.query);n.json(i)});handleGetRecentContext=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.getRecentContext(r.query);n.json(i)});handleGetContextTimeline=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.getContextTimeline(r.query);n.json(i)});handleContextPreview=this.wrapHandler(async(r,n)=>{let i=r.query.project;if(!i){this.badRequest(n,"Project parameter is required");return}let{generateContext:a}=await Promise.resolve().then(()=>(dE(),lE)),o=`/preview/${i}`,s=await a({session_id:"preview-"+Date.now(),cwd:o},!0);n.setHeader("Content-Type","text/plain; charset=utf-8"),n.send(s)});handleContextInject=this.wrapHandler(async(r,n)=>{let i=r.query.project,a=r.query.colors==="true";if(!i){this.badRequest(n,"Project parameter is required");return}let{generateContext:o}=await Promise.resolve().then(()=>(dE(),lE)),s=`/context/${i}`,c=await o({session_id:"context-inject-"+Date.now(),cwd:s},a);n.setHeader("Content-Type","text/plain; charset=utf-8"),n.send(c)});handleGetTimelineByQuery=this.wrapHandler(async(r,n)=>{let i=await this.searchManager.getTimelineByQuery(r.query);n.json(i)});handleSearchHelp=this.wrapHandler((r,n)=>{n.json({title:"Claude-Mem Search API",description:"HTTP API for searching persistent memory",endpoints:[{path:"/api/search/observations",method:"GET",description:"Search observations using full-text search",parameters:{query:"Search query (required)",limit:"Number of results (default: 20)",project:"Filter by project name (optional)"}},{path:"/api/search/sessions",method:"GET",description:"Search session summaries using full-text search",parameters:{query:"Search query (required)",limit:"Number of results (default: 20)"}},{path:"/api/search/prompts",method:"GET",description:"Search user prompts using full-text search",parameters:{query:"Search query (required)",limit:"Number of results (default: 20)",project:"Filter by project name (optional)"}},{path:"/api/search/by-concept",method:"GET",description:"Find observations by concept tag",parameters:{concept:"Concept tag (required): discovery, decision, bugfix, feature, refactor",limit:"Number of results (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/search/by-file",method:"GET",description:"Find observations and sessions by file path",parameters:{filePath:"File path or partial path (required)",limit:"Number of results per type (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/search/by-type",method:"GET",description:"Find observations by type",parameters:{type:"Observation type (required): discovery, decision, bugfix, feature, refactor",limit:"Number of results (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/context/recent",method:"GET",description:"Get recent session context including summaries and observations",parameters:{project:"Project name (default: current directory)",limit:"Number of recent sessions (default: 3)"}},{path:"/api/context/timeline",method:"GET",description:"Get unified timeline around a specific point in time",parameters:{anchor:'Anchor point: observation ID, session ID (e.g., "S123"), or ISO timestamp (required)',depth_before:"Number of records before anchor (default: 10)",depth_after:"Number of records after anchor (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/timeline/by-query",method:"GET",description:"Search for best match, then get timeline around it",parameters:{query:"Search query (required)",mode:'Search mode: "auto", "observations", or "sessions" (default: "auto")',depth_before:"Number of records before match (default: 10)",depth_after:"Number of records after match (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/search/help",method:"GET",description:"Get this help documentation"}],examples:['curl "http://localhost:37777/api/search/observations?query=authentication&limit=5"','curl "http://localhost:37777/api/search/by-type?type=bugfix&limit=10"','curl "http://localhost:37777/api/context/recent?project=claude-mem&limit=3"','curl "http://localhost:37777/api/context/timeline?anchor=123&depth_before=5&depth_after=5"']})})};var wo=yt(require("path"),1),mr=require("fs"),hE=require("os");cn();Ne();var fE=require("child_process"),So=require("fs"),rq=require("os"),Md=require("path");Ne();var Dd=(0,Md.join)((0,rq.homedir)(),".claude","plugins","marketplaces","thedotmack");function pE(t){return!t||typeof t!="string"?!1:/^[a-zA-Z0-9][a-zA-Z0-9._/-]*$/.test(t)&&!t.includes("..")}var kfe=3e5,mE=6e5;function Pn(t){let e=(0,fE.spawnSync)("git",t,{cwd:Dd,encoding:"utf-8",timeout:kfe,windowsHide:!0,shell:!1});if(e.error)throw e.error;if(e.status!==0)throw new Error(e.stderr||e.stdout||"Git command failed");return e.stdout.trim()}function nq(t,e=mE){let n=process.platform==="win32"?"npm.cmd":"npm",i=(0,fE.spawnSync)(n,t,{cwd:Dd,encoding:"utf-8",timeout:e,windowsHide:!0,shell:!1});if(i.error)throw i.error;if(i.status!==0)throw new Error(i.stderr||i.stdout||"npm command failed");return i.stdout.trim()}function wg(){let t=(0,Md.join)(Dd,".git");if(!(0,So.existsSync)(t))return{branch:null,isBeta:!1,isGitRepo:!1,isDirty:!1,canSwitch:!1,error:"Installed plugin is not a git repository"};try{let e=Pn(["rev-parse","--abbrev-ref","HEAD"]),n=Pn(["status","--porcelain"]).length>0,i=e.startsWith("beta");return{branch:e,isBeta:i,isGitRepo:!0,isDirty:n,canSwitch:!0}}catch(e){return k.error("BRANCH","Failed to get branch info",{},e),{branch:null,isBeta:!1,isGitRepo:!0,isDirty:!1,canSwitch:!1,error:e.message}}}async function iq(t){if(!pE(t))return{success:!1,error:`Invalid branch name: ${t}. Branch names must be alphanumeric with hyphens, underscores, slashes, or dots.`};let e=wg();if(!e.isGitRepo)return{success:!1,error:"Installed plugin is not a git repository. Please reinstall."};if(e.branch===t)return{success:!0,branch:t,message:`Already on branch ${t}`};try{k.info("BRANCH","Starting branch switch",{from:e.branch,to:t}),k.debug("BRANCH","Discarding local changes"),Pn(["checkout","--","."]),Pn(["clean","-fd"]),k.debug("BRANCH","Fetching from origin"),Pn(["fetch","origin"]),k.debug("BRANCH","Checking out branch",{branch:t});try{Pn(["checkout",t])}catch(n){k.debug("BRANCH","Branch not local, tracking remote",{branch:t,error:n instanceof Error?n.message:String(n)}),Pn(["checkout","-b",t,`origin/${t}`])}k.debug("BRANCH","Pulling latest"),Pn(["pull","origin",t]);let r=(0,Md.join)(Dd,".install-version");return(0,So.existsSync)(r)&&(0,So.unlinkSync)(r),k.debug("BRANCH","Running npm install"),nq(["install"],mE),k.success("BRANCH","Branch switch complete",{branch:t}),{success:!0,branch:t,message:`Switched to ${t}. Worker will restart automatically.`}}catch(r){k.error("BRANCH","Branch switch failed",{targetBranch:t},r);try{e.branch&&pE(e.branch)&&Pn(["checkout",e.branch])}catch(n){k.warn("BRANCH","Recovery checkout also failed",{originalBranch:e.branch},n)}return{success:!1,error:`Branch switch failed: ${r.message}`}}}async function aq(){let t=wg();if(!t.isGitRepo||!t.branch)return{success:!1,error:"Cannot pull updates: not a git repository"};try{if(!pE(t.branch))return{success:!1,error:`Invalid current branch name: ${t.branch}`};k.info("BRANCH","Pulling updates",{branch:t.branch}),Pn(["checkout","--","."]),Pn(["fetch","origin"]),Pn(["pull","origin",t.branch]);let e=(0,Md.join)(Dd,".install-version");return(0,So.existsSync)(e)&&(0,So.unlinkSync)(e),nq(["install"],mE),k.success("BRANCH","Updates pulled",{branch:t.branch}),{success:!0,branch:t.branch,message:`Updated ${t.branch}. Worker will restart automatically.`}}catch(e){return k.error("BRANCH","Pull failed",{},e),{success:!1,error:`Pull failed: ${e.message}`}}}on();var $g=class extends Xr{constructor(r){super();this.settingsManager=r}setupRoutes(r){r.get("/api/settings",this.handleGetSettings.bind(this)),r.post("/api/settings",this.handleUpdateSettings.bind(this)),r.get("/api/mcp/status",this.handleGetMcpStatus.bind(this)),r.post("/api/mcp/toggle",this.handleToggleMcp.bind(this)),r.get("/api/branch/status",this.handleGetBranchStatus.bind(this)),r.post("/api/branch/switch",this.handleSwitchBranch.bind(this)),r.post("/api/branch/update",this.handleUpdateBranch.bind(this))}handleGetSettings=this.wrapHandler((r,n)=>{let i=wo.default.join((0,hE.homedir)(),".claude-mem","settings.json");this.ensureSettingsFile(i);let a=Ke.loadFromFile(i);n.json(a)});handleUpdateSettings=this.wrapHandler((r,n)=>{let i=this.validateSettings(r.body);if(!i.valid){n.status(400).json({success:!1,error:i.error});return}let a=wo.default.join((0,hE.homedir)(),".claude-mem","settings.json");this.ensureSettingsFile(a);let o={};if((0,mr.existsSync)(a)){let c=(0,mr.readFileSync)(a,"utf-8");try{o=JSON.parse(c)}catch(u){k.error("SETTINGS","Failed to parse settings file",{settingsPath:a},u),n.status(500).json({success:!1,error:"Settings file is corrupted. Delete ~/.claude-mem/settings.json to reset."});return}}let s=["CLAUDE_MEM_MODEL","CLAUDE_MEM_CONTEXT_OBSERVATIONS","CLAUDE_MEM_WORKER_PORT","CLAUDE_MEM_WORKER_HOST","CLAUDE_MEM_PROVIDER","CLAUDE_MEM_GEMINI_API_KEY","CLAUDE_MEM_GEMINI_MODEL","CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED","CLAUDE_MEM_OPENROUTER_API_KEY","CLAUDE_MEM_OPENROUTER_MODEL","CLAUDE_MEM_OPENROUTER_SITE_URL","CLAUDE_MEM_OPENROUTER_APP_NAME","CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES","CLAUDE_MEM_OPENROUTER_MAX_TOKENS","CLAUDE_MEM_DATA_DIR","CLAUDE_MEM_LOG_LEVEL","CLAUDE_MEM_PYTHON_VERSION","CLAUDE_CODE_PATH","CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS","CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS","CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT","CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT","CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES","CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS","CLAUDE_MEM_CONTEXT_FULL_COUNT","CLAUDE_MEM_CONTEXT_FULL_FIELD","CLAUDE_MEM_CONTEXT_SESSION_COUNT","CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY","CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE"];for(let c of s)r.body[c]!==void 0&&(o[c]=r.body[c]);(0,mr.writeFileSync)(a,JSON.stringify(o,null,2),"utf-8"),wO(),k.info("WORKER","Settings updated"),n.json({success:!0,message:"Settings updated successfully"})});handleGetMcpStatus=this.wrapHandler((r,n)=>{let i=this.isMcpEnabled();n.json({enabled:i})});handleToggleMcp=this.wrapHandler((r,n)=>{let{enabled:i}=r.body;if(typeof i!="boolean"){this.badRequest(n,"enabled must be a boolean");return}this.toggleMcp(i),n.json({success:!0,enabled:this.isMcpEnabled()})});handleGetBranchStatus=this.wrapHandler((r,n)=>{let i=wg();n.json(i)});handleSwitchBranch=this.wrapHandler(async(r,n)=>{let{branch:i}=r.body;if(!i){n.status(400).json({success:!1,error:"Missing branch parameter"});return}let a=["main","beta/7.0","feature/bun-executable"];if(!a.includes(i)){n.status(400).json({success:!1,error:`Invalid branch. Allowed: ${a.join(", ")}`});return}k.info("WORKER","Branch switch requested",{branch:i});let o=await iq(i);o.success&&setTimeout(()=>{k.info("WORKER","Restarting worker after branch switch"),process.exit(0)},1e3),n.json(o)});handleUpdateBranch=this.wrapHandler(async(r,n)=>{k.info("WORKER","Branch update requested");let i=await aq();i.success&&setTimeout(()=>{k.info("WORKER","Restarting worker after branch update"),process.exit(0)},1e3),n.json(i)});validateSettings(r){if(r.CLAUDE_MEM_PROVIDER&&!["claude","gemini","openrouter"].includes(r.CLAUDE_MEM_PROVIDER))return{valid:!1,error:'CLAUDE_MEM_PROVIDER must be "claude", "gemini", or "openrouter"'};if(r.CLAUDE_MEM_GEMINI_MODEL&&!["gemini-2.5-flash-lite","gemini-2.5-flash","gemini-3-flash"].includes(r.CLAUDE_MEM_GEMINI_MODEL))return{valid:!1,error:"CLAUDE_MEM_GEMINI_MODEL must be one of: gemini-2.5-flash-lite, gemini-2.5-flash, gemini-3-flash"};if(r.CLAUDE_MEM_CONTEXT_OBSERVATIONS){let i=parseInt(r.CLAUDE_MEM_CONTEXT_OBSERVATIONS,10);if(isNaN(i)||i<1||i>200)return{valid:!1,error:"CLAUDE_MEM_CONTEXT_OBSERVATIONS must be between 1 and 200"}}if(r.CLAUDE_MEM_WORKER_PORT){let i=parseInt(r.CLAUDE_MEM_WORKER_PORT,10);if(isNaN(i)||i<1024||i>65535)return{valid:!1,error:"CLAUDE_MEM_WORKER_PORT must be between 1024 and 65535"}}if(r.CLAUDE_MEM_WORKER_HOST){let i=r.CLAUDE_MEM_WORKER_HOST;if(!/^(127\.0\.0\.1|0\.0\.0\.0|localhost|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/.test(i))return{valid:!1,error:"CLAUDE_MEM_WORKER_HOST must be a valid IP address (e.g., 127.0.0.1, 0.0.0.0)"}}if(r.CLAUDE_MEM_LOG_LEVEL&&!["DEBUG","INFO","WARN","ERROR","SILENT"].includes(r.CLAUDE_MEM_LOG_LEVEL.toUpperCase()))return{valid:!1,error:"CLAUDE_MEM_LOG_LEVEL must be one of: DEBUG, INFO, WARN, ERROR, SILENT"};if(r.CLAUDE_MEM_PYTHON_VERSION&&!/^3\.\d{1,2}$/.test(r.CLAUDE_MEM_PYTHON_VERSION))return{valid:!1,error:'CLAUDE_MEM_PYTHON_VERSION must be in format "3.X" or "3.XX" (e.g., "3.13")'};let n=["CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS","CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS","CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT","CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT","CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY","CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE"];for(let i of n)if(r[i]&&!["true","false"].includes(r[i]))return{valid:!1,error:`${i} must be "true" or "false"`};if(r.CLAUDE_MEM_CONTEXT_FULL_COUNT){let i=parseInt(r.CLAUDE_MEM_CONTEXT_FULL_COUNT,10);if(isNaN(i)||i<0||i>20)return{valid:!1,error:"CLAUDE_MEM_CONTEXT_FULL_COUNT must be between 0 and 20"}}if(r.CLAUDE_MEM_CONTEXT_SESSION_COUNT){let i=parseInt(r.CLAUDE_MEM_CONTEXT_SESSION_COUNT,10);if(isNaN(i)||i<1||i>50)return{valid:!1,error:"CLAUDE_MEM_CONTEXT_SESSION_COUNT must be between 1 and 50"}}if(r.CLAUDE_MEM_CONTEXT_FULL_FIELD&&!["narrative","facts"].includes(r.CLAUDE_MEM_CONTEXT_FULL_FIELD))return{valid:!1,error:'CLAUDE_MEM_CONTEXT_FULL_FIELD must be "narrative" or "facts"'};if(r.CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES){let i=parseInt(r.CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES,10);if(isNaN(i)||i<1||i>100)return{valid:!1,error:"CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES must be between 1 and 100"}}if(r.CLAUDE_MEM_OPENROUTER_MAX_TOKENS){let i=parseInt(r.CLAUDE_MEM_OPENROUTER_MAX_TOKENS,10);if(isNaN(i)||i<1e3||i>1e6)return{valid:!1,error:"CLAUDE_MEM_OPENROUTER_MAX_TOKENS must be between 1000 and 1000000"}}if(r.CLAUDE_MEM_OPENROUTER_SITE_URL)try{new URL(r.CLAUDE_MEM_OPENROUTER_SITE_URL)}catch(i){return k.debug("SETTINGS","Invalid URL format",{url:r.CLAUDE_MEM_OPENROUTER_SITE_URL,error:i instanceof Error?i.message:String(i)}),{valid:!1,error:"CLAUDE_MEM_OPENROUTER_SITE_URL must be a valid URL"}}return{valid:!0}}isMcpEnabled(){let r=Gr(),n=wo.default.join(r,"plugin",".mcp.json");return(0,mr.existsSync)(n)}toggleMcp(r){let n=Gr(),i=wo.default.join(n,"plugin",".mcp.json"),a=wo.default.join(n,"plugin",".mcp.json.disabled");r&&(0,mr.existsSync)(a)?((0,mr.renameSync)(a,i),k.info("WORKER","MCP search server enabled")):!r&&(0,mr.existsSync)(i)?((0,mr.renameSync)(i,a),k.info("WORKER","MCP search server disabled")):k.debug("WORKER","MCP toggle no-op (already in desired state)",{enabled:r})}ensureSettingsFile(r){if(!(0,mr.existsSync)(r)){let n=Ke.getAllDefaults(),i=wo.default.dirname(r);(0,mr.existsSync)(i)||(0,mr.mkdirSync)(i,{recursive:!0}),(0,mr.writeFileSync)(r,JSON.stringify(n,null,2),"utf-8"),k.info("SETTINGS","Created settings file with defaults",{settingsPath:r})}}};var $o=require("fs"),Eg=require("path");Ne();on();var kg=class extends Xr{getLogFilePath(){let e=Ke.get("CLAUDE_MEM_DATA_DIR"),r=(0,Eg.join)(e,"logs"),n=new Date().toISOString().split("T")[0];return(0,Eg.join)(r,`claude-mem-${n}.log`)}getLogsDir(){let e=Ke.get("CLAUDE_MEM_DATA_DIR");return(0,Eg.join)(e,"logs")}setupRoutes(e){e.get("/api/logs",this.handleGetLogs.bind(this)),e.post("/api/logs/clear",this.handleClearLogs.bind(this))}handleGetLogs=this.wrapHandler((e,r)=>{let n=this.getLogFilePath();if(!(0,$o.existsSync)(n)){r.json({logs:"",path:n,exists:!1});return}let i=parseInt(e.query.lines||"1000",10),a=Math.min(i,1e4),s=(0,$o.readFileSync)(n,"utf-8").split(` +`),c=Math.max(0,s.length-a),u=s.slice(c).join(` +`);r.json({logs:u,path:n,exists:!0,totalLines:s.length,returnedLines:s.length-c})});handleClearLogs=this.wrapHandler((e,r)=>{let n=this.getLogFilePath();if(!(0,$o.existsSync)(n)){r.json({success:!0,message:"Log file does not exist",path:n});return}(0,$o.writeFileSync)(n,"","utf-8"),k.info("SYSTEM","Log file cleared via UI",{path:n}),r.json({success:!0,message:"Log file cleared",path:n})})};var Tg=class{server;startTime=Date.now();mcpClient;mcpReady=!1;initializationCompleteFlag=!1;isShuttingDown=!1;dbManager;sessionManager;sseBroadcaster;sdkAgent;geminiAgent;openRouterAgent;paginationHelper;settingsManager;sessionEventBroadcaster;searchRoutes=null;initializationComplete;resolveInitialization;constructor(){this.initializationComplete=new Promise(e=>{this.resolveInitialization=e}),this.dbManager=new mh,this.sessionManager=new gh(this.dbManager),this.sseBroadcaster=new vh,this.sdkAgent=new eg(this.dbManager,this.sessionManager),this.geminiAgent=new tg(this.dbManager,this.sessionManager),this.geminiAgent.setFallbackAgent(this.sdkAgent),this.openRouterAgent=new ig(this.dbManager,this.sessionManager),this.openRouterAgent.setFallbackAgent(this.sdkAgent),this.paginationHelper=new ag(this.dbManager),this.settingsManager=new og(this.dbManager),this.sessionEventBroadcaster=new dg(this.sseBroadcaster,this),this.sessionManager.setOnSessionDeleted(()=>{this.broadcastProcessingStatus()}),this.mcpClient=new ms({name:"worker-search-proxy",version:"1.0.0"},{capabilities:{}}),this.server=new uh({getInitializationComplete:()=>this.initializationCompleteFlag,getMcpReady:()=>this.mcpReady,onShutdown:()=>this.shutdown(),onRestart:()=>this.shutdown()}),this.registerRoutes(),this.registerSignalHandlers()}registerSignalHandlers(){let e={value:this.isShuttingDown},r=CO(()=>this.shutdown(),e);process.on("SIGTERM",()=>{this.isShuttingDown=e.value,r("SIGTERM")}),process.on("SIGINT",()=>{this.isShuttingDown=e.value,r("SIGINT")})}registerRoutes(){this.server.registerRoutes(new fg(this.sseBroadcaster,this.dbManager,this.sessionManager)),this.server.registerRoutes(new gg(this.sessionManager,this.dbManager,this.sdkAgent,this.geminiAgent,this.openRouterAgent,this.sessionEventBroadcaster,this)),this.server.registerRoutes(new vg(this.paginationHelper,this.dbManager,this.sessionManager,this.sseBroadcaster,this,this.startTime)),this.server.registerRoutes(new $g(this.settingsManager)),this.server.registerRoutes(new kg),this.server.app.get("/api/context/inject",async(e,r,n)=>{let a=new Promise((o,s)=>setTimeout(()=>s(new Error("Initialization timeout")),3e5));if(await Promise.race([this.initializationComplete,a]),!this.searchRoutes){r.status(503).json({error:"Search routes not initialized"});return}n()})}async start(){let e=Ln(),r=SO();await this.server.listen(e,r),k.info("SYSTEM","Worker started",{host:r,port:e,pid:process.pid}),this.initializeBackground().catch(n=>{k.error("SYSTEM","Background initialization failed",{},n)})}async initializeBackground(){try{await OO();let{ModeManager:e}=await Promise.resolve().then(()=>(jr(),v4)),{SettingsDefaultsManager:r}=await Promise.resolve().then(()=>(on(),_O)),{USER_SETTINGS_PATH:n}=await Promise.resolve().then(()=>(cn(),Kz)),a=r.loadFromFile(n).CLAUDE_MEM_MODE;e.getInstance().loadMode(a),k.info("SYSTEM",`Mode loaded: ${a}`),await this.dbManager.initialize();let{PendingMessageStore:o}=await Promise.resolve().then(()=>(fo(),Ws)),s=new o(this.dbManager.getSessionStore().db,3),c=300*1e3,u=s.resetStuckMessages(c);u>0&&k.info("SYSTEM",`Recovered ${u} stuck messages from previous session`,{thresholdMinutes:5});let l=new ug,d=new lg,p=new cg(this.dbManager.getSessionSearch(),this.dbManager.getSessionStore(),this.dbManager.getChromaSync(),l,d);this.searchRoutes=new Sg(p),this.server.registerRoutes(this.searchRoutes),k.info("WORKER","SearchManager initialized and search routes registered");let f=oq.default.join(__dirname,"mcp-server.cjs"),h=new vs({command:"node",args:[f],env:process.env}),_=3e5,y=this.mcpClient.connect(h),m=new Promise((v,g)=>setTimeout(()=>g(new Error("MCP connection timeout after 5 minutes")),_));await Promise.race([y,m]),this.mcpReady=!0,k.success("WORKER","Connected to MCP server"),this.initializationCompleteFlag=!0,this.resolveInitialization(),k.info("SYSTEM","Background initialization complete"),this.processPendingQueues(50).then(v=>{v.sessionsStarted>0&&k.info("SYSTEM",`Auto-recovered ${v.sessionsStarted} sessions with pending work`,{totalPending:v.totalPendingSessions,started:v.sessionsStarted,sessionIds:v.startedSessionIds})}).catch(v=>{k.warn("SYSTEM","Auto-recovery of pending queues failed",{},v)})}catch(e){throw k.error("SYSTEM","Background initialization failed",{},e),e}}startSessionProcessor(e,r){if(!e)return;let n=e.sessionDbId;k.info("SYSTEM",`Starting generator (${r})`,{sessionId:n}),e.generatorPromise=this.sdkAgent.startSession(e,this).catch(i=>{k.error("SDK","Session generator failed",{sessionId:e.sessionDbId,project:e.project},i)}).finally(()=>{e.generatorPromise=null,this.broadcastProcessingStatus()})}async processPendingQueues(e=10){let{PendingMessageStore:r}=await Promise.resolve().then(()=>(fo(),Ws)),n=new r(this.dbManager.getSessionStore().db,3),i=n.getSessionsWithPendingMessages(),a={totalPendingSessions:i.length,sessionsStarted:0,sessionsSkipped:0,startedSessionIds:[]};if(i.length===0)return a;k.info("SYSTEM",`Processing up to ${e} of ${i.length} pending session queues`);for(let o of i){if(a.sessionsStarted>=e)break;try{if(this.sessionManager.getSession(o)?.generatorPromise){a.sessionsSkipped++;continue}let c=this.sessionManager.initializeSession(o);k.info("SYSTEM",`Starting processor for session ${o}`,{project:c.project,pendingCount:n.getPendingCount(o)}),this.startSessionProcessor(c,"startup-recovery"),a.sessionsStarted++,a.startedSessionIds.push(o),await new Promise(u=>setTimeout(u,100))}catch(s){k.warn("SYSTEM",`Failed to process session ${o}`,{},s),a.sessionsSkipped++}}return a}async shutdown(){await MO({server:this.server.getHttpServer(),sessionManager:this.sessionManager,mcpClient:this.mcpClient,dbManager:this.dbManager})}broadcastProcessingStatus(){let e=this.sessionManager.isAnySessionProcessing(),r=this.sessionManager.getTotalActiveWork(),n=this.sessionManager.getActiveSessionCount();k.info("WORKER","Broadcasting processing status",{isProcessing:e,queueDepth:r,activeSessions:n}),this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:e,queueDepth:r})}};async function Tfe(){let t=process.argv[2],e=Ln();switch(t){case"start":{if(await fl(e,1e3)){let a=await AO(e);a.matches?(k.info("SYSTEM","Worker already running and healthy"),process.exit(0)):(k.info("SYSTEM","Worker version mismatch detected - auto-restarting",{pluginVersion:a.pluginVersion,workerVersion:a.workerVersion}),await Qf(e),await Yf(e,Ja(15e3))||(k.error("SYSTEM","Port did not free up after shutdown for version mismatch restart",{port:e}),process.exit(1)),Ni())}await Xf(e)&&(k.info("SYSTEM","Port in use, waiting for worker to become healthy"),await fl(e,Ja(15e3))&&(k.info("SYSTEM","Worker is now healthy"),process.exit(0)),k.error("SYSTEM","Port in use but worker not responding to health checks"),process.exit(1)),k.info("SYSTEM","Starting worker daemon");let n=M0(__filename,e);n===void 0&&(k.error("SYSTEM","Failed to spawn worker daemon"),process.exit(1)),A0({pid:n,port:e,startedAt:new Date().toISOString()}),await fl(e,Ja(3e4))||(Ni(),k.error("SYSTEM","Worker failed to start (health check timeout)"),process.exit(1)),k.info("SYSTEM","Worker started successfully"),process.exit(0)}case"stop":await Qf(e),await Yf(e,Ja(15e3))||k.warn("SYSTEM","Port did not free up after shutdown",{port:e}),Ni(),k.info("SYSTEM","Worker stopped successfully"),process.exit(0);case"restart":{k.info("SYSTEM","Restarting worker"),await Qf(e),await Yf(e,Ja(15e3))||(k.error("SYSTEM","Port did not free up after shutdown, aborting restart",{port:e}),process.exit(1)),Ni();let n=M0(__filename,e);n===void 0&&(k.error("SYSTEM","Failed to spawn worker daemon during restart"),process.exit(1)),A0({pid:n,port:e,startedAt:new Date().toISOString()}),await fl(e,Ja(3e4))||(Ni(),k.error("SYSTEM","Worker failed to restart"),process.exit(1)),k.info("SYSTEM","Worker restarted successfully"),process.exit(0)}case"status":{let r=await Xf(e),n=TO();r&&n?(console.log("Worker is running"),console.log(` PID: ${n.pid}`),console.log(` Port: ${n.port}`),console.log(` Started: ${n.startedAt}`)):console.log("Worker is not running"),process.exit(0)}case"cursor":{let r=process.argv[3],n=await d4(r,process.argv.slice(4));process.exit(n)}case"--daemon":default:new Tg().start().catch(n=>{k.failure("SYSTEM","Worker failed to start",{},n),Ni(),process.exit(1)})}}(require.main===module||!module.parent)&&Tfe();0&&(module.exports={WorkerService,updateCursorContextForProject}); /*! Bundled license information: depd/index.js: diff --git a/scripts/cleanup-duplicates.ts b/scripts/cleanup-duplicates.ts new file mode 100644 index 00000000..983e5569 --- /dev/null +++ b/scripts/cleanup-duplicates.ts @@ -0,0 +1,243 @@ +#!/usr/bin/env bun +/** + * Cleanup script for duplicate observations created by the batching bug. + * + * The bug: When multiple messages were batched together, observations were stored + * once per message ID instead of once per observation. For example, if 4 messages + * were batched and produced 3 observations, those 3 observations were stored + * 12 times (4×3) instead of 3 times. + * + * This script identifies duplicates by matching on: + * - memory_session_id (same session) + * - text (same content) + * - type (same observation type) + * - created_at_epoch within 60 seconds (same batch window) + * + * Usage: + * bun scripts/cleanup-duplicates.ts # Dry run (default) + * bun scripts/cleanup-duplicates.ts --execute # Actually delete duplicates + */ + +import { Database } from 'bun:sqlite'; +import { homedir } from 'os'; +import { join } from 'path'; + +const DB_PATH = join(homedir(), '.claude-mem', 'claude-mem.db'); + +// Time window modes for duplicate detection +const TIME_WINDOW_MODES = { + strict: 5, // 5 seconds - only exact duplicates from same batch + normal: 60, // 60 seconds - duplicates within same minute + aggressive: 0, // 0 = ignore time entirely, match on session+text+type only +}; + +interface DuplicateGroup { + memory_session_id: string; + title: string; + type: string; + epoch_bucket: number; + count: number; + ids: number[]; + keep_id: number; + delete_ids: number[]; +} + +interface ObservationRow { + id: number; + memory_session_id: string; + title: string | null; + subtitle: string | null; + narrative: string | null; + type: string; + created_at_epoch: number; +} + +function main() { + const dryRun = !process.argv.includes('--execute'); + const aggressive = process.argv.includes('--aggressive'); + const strict = process.argv.includes('--strict'); + + // Determine time window + let windowMode: keyof typeof TIME_WINDOW_MODES = 'normal'; + if (aggressive) windowMode = 'aggressive'; + if (strict) windowMode = 'strict'; + const batchWindowSeconds = TIME_WINDOW_MODES[windowMode]; + + console.log('='.repeat(60)); + console.log('Claude-Mem Duplicate Observation Cleanup'); + console.log('='.repeat(60)); + console.log(`Mode: ${dryRun ? 'DRY RUN (use --execute to delete)' : 'EXECUTE'}`); + console.log(`Database: ${DB_PATH}`); + console.log(`Time window: ${windowMode} (${batchWindowSeconds === 0 ? 'ignore time' : batchWindowSeconds + ' seconds'})`); + console.log(''); + console.log('Options:'); + console.log(' --execute Actually delete duplicates (default: dry run)'); + console.log(' --strict 5-second window (exact batch duplicates only)'); + console.log(' --aggressive Ignore time, match on session+text+type only'); + console.log(''); + + const db = dryRun + ? new Database(DB_PATH, { readonly: true }) + : new Database(DB_PATH); + + // Get total observation count + const totalCount = db.prepare('SELECT COUNT(*) as count FROM observations').get() as { count: number }; + console.log(`Total observations in database: ${totalCount.count}`); + + // Find all observations and group by content fingerprint + const observations = db.prepare(` + SELECT + id, + memory_session_id, + title, + subtitle, + narrative, + type, + created_at_epoch + FROM observations + ORDER BY memory_session_id, title, type, created_at_epoch + `).all() as ObservationRow[]; + + console.log(`Analyzing ${observations.length} observations for duplicates...`); + console.log(''); + + // Group observations by fingerprint (session + text + type + time bucket) + const groups = new Map(); + + for (const obs of observations) { + // Skip observations without title (can't dedupe without content identifier) + if (obs.title === null) continue; + + // Create content hash from title + subtitle + narrative + const contentKey = `${obs.title}|${obs.subtitle || ''}|${obs.narrative || ''}`; + + // Create fingerprint based on time window mode + let fingerprint: string; + if (batchWindowSeconds === 0) { + // Aggressive mode: ignore time entirely + fingerprint = `${obs.memory_session_id}|${obs.type}|${contentKey}`; + } else { + // Normal/strict mode: include time bucket + const epochBucket = Math.floor(obs.created_at_epoch / batchWindowSeconds); + fingerprint = `${obs.memory_session_id}|${obs.type}|${epochBucket}|${contentKey}`; + } + + if (!groups.has(fingerprint)) { + groups.set(fingerprint, []); + } + groups.get(fingerprint)!.push(obs); + } + + // Find groups with duplicates + const duplicateGroups: DuplicateGroup[] = []; + + for (const [fingerprint, rows] of groups) { + if (rows.length > 1) { + // Sort by id to keep the oldest (lowest id) + rows.sort((a, b) => a.id - b.id); + const keepId = rows[0].id; + const deleteIds = rows.slice(1).map(r => r.id); + + // SAFETY: Never delete all copies - always keep at least one + if (deleteIds.length >= rows.length) { + throw new Error(`SAFETY VIOLATION: Would delete all ${rows.length} copies! Aborting.`); + } + if (!deleteIds.every(id => id !== keepId)) { + throw new Error(`SAFETY VIOLATION: Delete list contains keep_id ${keepId}! Aborting.`); + } + + const title = rows[0].title || ''; + duplicateGroups.push({ + memory_session_id: rows[0].memory_session_id, + title: title.substring(0, 100) + (title.length > 100 ? '...' : ''), + type: rows[0].type, + epoch_bucket: batchWindowSeconds > 0 ? Math.floor(rows[0].created_at_epoch / batchWindowSeconds) : 0, + count: rows.length, + ids: rows.map(r => r.id), + keep_id: keepId, + delete_ids: deleteIds, + }); + } + } + + if (duplicateGroups.length === 0) { + console.log('No duplicate observations found!'); + db.close(); + return; + } + + // Calculate stats + const totalDuplicates = duplicateGroups.reduce((sum, g) => sum + g.delete_ids.length, 0); + const affectedSessions = new Set(duplicateGroups.map(g => g.memory_session_id)).size; + + console.log('DUPLICATE ANALYSIS:'); + console.log('-'.repeat(60)); + console.log(`Duplicate groups found: ${duplicateGroups.length}`); + console.log(`Total duplicates to remove: ${totalDuplicates}`); + console.log(`Affected sessions: ${affectedSessions}`); + console.log(`Observations after cleanup: ${totalCount.count - totalDuplicates}`); + console.log(''); + + // Show sample of duplicates + console.log('SAMPLE DUPLICATES (first 10 groups):'); + console.log('-'.repeat(60)); + + for (const group of duplicateGroups.slice(0, 10)) { + console.log(`Session: ${group.memory_session_id.substring(0, 20)}...`); + console.log(`Type: ${group.type}`); + console.log(`Count: ${group.count} copies (keeping id=${group.keep_id}, deleting ${group.delete_ids.length})`); + console.log(`Title: "${group.title}"`); + console.log(''); + } + + if (duplicateGroups.length > 10) { + console.log(`... and ${duplicateGroups.length - 10} more groups`); + console.log(''); + } + + // Execute deletion if not dry run + if (!dryRun) { + console.log('EXECUTING DELETION...'); + console.log('-'.repeat(60)); + + const allDeleteIds = duplicateGroups.flatMap(g => g.delete_ids); + + // Delete in batches of 500 to avoid SQLite limits + const BATCH_SIZE = 500; + let deleted = 0; + + db.exec('BEGIN TRANSACTION'); + + try { + for (let i = 0; i < allDeleteIds.length; i += BATCH_SIZE) { + const batch = allDeleteIds.slice(i, i + BATCH_SIZE); + const placeholders = batch.map(() => '?').join(','); + const stmt = db.prepare(`DELETE FROM observations WHERE id IN (${placeholders})`); + const result = stmt.run(...batch); + deleted += result.changes; + console.log(`Deleted batch ${Math.floor(i / BATCH_SIZE) + 1}: ${result.changes} observations`); + } + + db.exec('COMMIT'); + console.log(''); + console.log(`Successfully deleted ${deleted} duplicate observations!`); + + // Verify final count + const finalCount = db.prepare('SELECT COUNT(*) as count FROM observations').get() as { count: number }; + console.log(`Final observation count: ${finalCount.count}`); + + } catch (error) { + db.exec('ROLLBACK'); + console.error('Error during deletion, rolled back:', error); + process.exit(1); + } + } else { + console.log('DRY RUN COMPLETE'); + console.log('-'.repeat(60)); + console.log('No changes were made. Run with --execute to delete duplicates.'); + } + + db.close(); +} + +main(); diff --git a/src/services/Context.ts b/src/services/Context.ts new file mode 100644 index 00000000..d4ff2ba7 --- /dev/null +++ b/src/services/Context.ts @@ -0,0 +1,8 @@ +/** + * Context - Named re-export facade + * + * Provides a clean import path for context generation functionality. + * Import from './Context.js' or './context/index.js'. + */ + +export * from './context/index.js'; diff --git a/src/services/context-generator.ts b/src/services/context-generator.ts index ac5e9b65..8aafcc99 100644 --- a/src/services/context-generator.ts +++ b/src/services/context-generator.ts @@ -1,659 +1,18 @@ /** - * Context Generator - generates context injection for SessionStart + * Context Generator - DEPRECATED * - * This module contains all the logic for building the context injection string. - * It's used by the worker service and called via HTTP from the context-hook. + * This file is maintained for backward compatibility. + * New code should import from './Context.js' or './context/index.js'. + * + * The context generation logic has been restructured into: + * - src/services/context/ContextBuilder.ts - Main orchestrator + * - src/services/context/ContextConfigLoader.ts - Configuration loading + * - src/services/context/TokenCalculator.ts - Token economics + * - src/services/context/ObservationCompiler.ts - Data retrieval + * - src/services/context/formatters/ - Output formatting + * - src/services/context/sections/ - Section rendering */ -import path from 'path'; -import { homedir } from 'os'; -import { existsSync, readFileSync, unlinkSync } from 'fs'; -import { SessionStore } from './sqlite/SessionStore.js'; -import { logger } from '../utils/logger.js'; -import { SettingsDefaultsManager } from '../shared/SettingsDefaultsManager.js'; -import { - parseJsonArray, - formatDateTime, - formatTime, - formatDate, - toRelativePath, - extractFirstFile -} from '../shared/timeline-formatting.js'; -import { getProjectName } from '../utils/project-name.js'; -import { ModeManager } from './domain/ModeManager.js'; - -// Version marker path - use homedir-based path that works in both CJS and ESM contexts -const VERSION_MARKER_PATH = path.join(homedir(), '.claude', 'plugins', 'marketplaces', 'thedotmack', 'plugin', '.install-version'); - -interface ContextConfig { - // Display counts - totalObservationCount: number; - fullObservationCount: number; - sessionCount: number; - - // Token display toggles - showReadTokens: boolean; - showWorkTokens: boolean; - showSavingsAmount: boolean; - showSavingsPercent: boolean; - - // Filters - observationTypes: Set; - observationConcepts: Set; - - // Display options - fullObservationField: 'narrative' | 'facts'; - showLastSummary: boolean; - showLastMessage: boolean; -} - -/** - * Load all context configuration settings - * Priority: ~/.claude-mem/settings.json > env var > defaults - */ -function loadContextConfig(): ContextConfig { - const settingsPath = path.join(homedir(), '.claude-mem', 'settings.json'); - const settings = SettingsDefaultsManager.loadFromFile(settingsPath); - - // For non-code modes, use all types/concepts from active mode instead of settings - const modeId = settings.CLAUDE_MEM_MODE; - const isCodeMode = modeId === 'code' || modeId.startsWith('code--'); - - let observationTypes: Set; - let observationConcepts: Set; - - if (isCodeMode) { - // Code mode: use settings-based filtering - observationTypes = new Set( - settings.CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES.split(',').map((t: string) => t.trim()).filter(Boolean) - ); - observationConcepts = new Set( - settings.CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS.split(',').map((c: string) => c.trim()).filter(Boolean) - ); - } else { - // Non-code modes: use all types/concepts from active mode - const mode = ModeManager.getInstance().getActiveMode(); - observationTypes = new Set(mode.observation_types.map(t => t.id)); - observationConcepts = new Set(mode.observation_concepts.map(c => c.id)); - } - - return { - totalObservationCount: parseInt(settings.CLAUDE_MEM_CONTEXT_OBSERVATIONS, 10), - fullObservationCount: parseInt(settings.CLAUDE_MEM_CONTEXT_FULL_COUNT, 10), - sessionCount: parseInt(settings.CLAUDE_MEM_CONTEXT_SESSION_COUNT, 10), - showReadTokens: settings.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS === 'true', - showWorkTokens: settings.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS === 'true', - showSavingsAmount: settings.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT === 'true', - showSavingsPercent: settings.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT === 'true', - observationTypes, - observationConcepts, - fullObservationField: settings.CLAUDE_MEM_CONTEXT_FULL_FIELD as 'narrative' | 'facts', - showLastSummary: settings.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY === 'true', - showLastMessage: settings.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE === 'true', - }; -} - -// Configuration constants -const CHARS_PER_TOKEN_ESTIMATE = 4; -const SUMMARY_LOOKAHEAD = 1; - -export interface ContextInput { - session_id?: string; - transcript_path?: string; - cwd?: string; - hook_event_name?: string; - source?: "startup" | "resume" | "clear" | "compact"; - [key: string]: any; -} - -// ANSI color codes for terminal output -const colors = { - reset: '\x1b[0m', - bright: '\x1b[1m', - dim: '\x1b[2m', - cyan: '\x1b[36m', - green: '\x1b[32m', - yellow: '\x1b[33m', - blue: '\x1b[34m', - magenta: '\x1b[35m', - gray: '\x1b[90m', - red: '\x1b[31m', -}; - -interface Observation { - id: number; - memory_session_id: string; - type: string; - title: string | null; - subtitle: string | null; - narrative: string | null; - facts: string | null; - concepts: string | null; - files_read: string | null; - files_modified: string | null; - discovery_tokens: number | null; - created_at: string; - created_at_epoch: number; -} - -interface SessionSummary { - id: number; - memory_session_id: string; - request: string | null; - investigated: string | null; - learned: string | null; - completed: string | null; - next_steps: string | null; - created_at: string; - created_at_epoch: number; -} - -// Helper: Render a summary field -function renderSummaryField(label: string, value: string | null, color: string, useColors: boolean): string[] { - if (!value) return []; - - if (useColors) { - return [`${color}${label}:${colors.reset} ${value}`, '']; - } - return [`**${label}**: ${value}`, '']; -} - -// Helper: Convert cwd path to dashed format -function cwdToDashed(cwd: string): string { - return cwd.replace(/\//g, '-'); -} - -// Helper: Extract last assistant message from transcript file -function extractPriorMessages(transcriptPath: string): { userMessage: string; assistantMessage: string } { - try { - if (!existsSync(transcriptPath)) { - return { userMessage: '', assistantMessage: '' }; - } - - const content = readFileSync(transcriptPath, 'utf-8').trim(); - if (!content) { - return { userMessage: '', assistantMessage: '' }; - } - - const lines = content.split('\n').filter(line => line.trim()); - let lastAssistantMessage = ''; - - for (let i = lines.length - 1; i >= 0; i--) { - try { - const line = lines[i]; - if (!line.includes('"type":"assistant"')) { - continue; - } - - const entry = JSON.parse(line); - if (entry.type === 'assistant' && entry.message?.content && Array.isArray(entry.message.content)) { - let text = ''; - for (const block of entry.message.content) { - if (block.type === 'text') { - text += block.text; - } - } - text = text.replace(/[\s\S]*?<\/system-reminder>/g, '').trim(); - if (text) { - lastAssistantMessage = text; - break; - } - } - } catch (parseError) { - logger.debug('PARSER', 'Skipping malformed transcript line', { lineIndex: i }, parseError as Error); - continue; - } - } - - return { userMessage: '', assistantMessage: lastAssistantMessage }; - } catch (error) { - logger.failure('WORKER', `Failed to extract prior messages from transcript`, { transcriptPath }, error as Error); - return { userMessage: '', assistantMessage: '' }; - } -} - -/** - * Generate context for a project - */ -export async function generateContext(input?: ContextInput, useColors: boolean = false): Promise { - const config = loadContextConfig(); - const cwd = input?.cwd ?? process.cwd(); - const project = getProjectName(cwd); - - let db: SessionStore | null = null; - try { - db = new SessionStore(); - } catch (error: any) { - if (error.code === 'ERR_DLOPEN_FAILED') { - try { - unlinkSync(VERSION_MARKER_PATH); - } catch (unlinkError) { - logger.debug('SYSTEM', 'Marker file cleanup failed (may not exist)', {}, unlinkError as Error); - } - logger.error('SYSTEM', 'Native module rebuild needed - restart Claude Code to auto-fix'); - return ''; - } - throw error; - } - - // Build SQL WHERE clause for observation types - const typeArray = Array.from(config.observationTypes); - const typePlaceholders = typeArray.map(() => '?').join(','); - - // Build SQL WHERE clause for concepts - const conceptArray = Array.from(config.observationConcepts); - const conceptPlaceholders = conceptArray.map(() => '?').join(','); - - // Get recent observations - const observations = db.db.prepare(` - SELECT - id, memory_session_id, type, title, subtitle, narrative, - facts, concepts, files_read, files_modified, discovery_tokens, - created_at, created_at_epoch - FROM observations - WHERE project = ? - AND type IN (${typePlaceholders}) - AND EXISTS ( - SELECT 1 FROM json_each(concepts) - WHERE value IN (${conceptPlaceholders}) - ) - ORDER BY created_at_epoch DESC - LIMIT ? - `).all(project, ...typeArray, ...conceptArray, config.totalObservationCount) as Observation[]; - - // Get recent summaries - const recentSummaries = db.db.prepare(` - SELECT id, memory_session_id, request, investigated, learned, completed, next_steps, created_at, created_at_epoch - FROM session_summaries - WHERE project = ? - ORDER BY created_at_epoch DESC - LIMIT ? - `).all(project, config.sessionCount + SUMMARY_LOOKAHEAD) as SessionSummary[]; - - // Retrieve prior session messages if enabled - let priorUserMessage = ''; - let priorAssistantMessage = ''; - - if (config.showLastMessage && observations.length > 0) { - const currentSessionId = input?.session_id; - const priorSessionObs = observations.find(obs => obs.memory_session_id !== currentSessionId); - - if (priorSessionObs) { - const priorSessionId = priorSessionObs.memory_session_id; - const dashedCwd = cwdToDashed(cwd); - const transcriptPath = path.join(homedir(), '.claude', 'projects', dashedCwd, `${priorSessionId}.jsonl`); - const messages = extractPriorMessages(transcriptPath); - priorUserMessage = messages.userMessage; - priorAssistantMessage = messages.assistantMessage; - } - } - - // If we have neither observations nor summaries, show empty state - if (observations.length === 0 && recentSummaries.length === 0) { - db?.close(); - if (useColors) { - return `\n${colors.bright}${colors.cyan}[${project}] recent context${colors.reset}\n${colors.gray}${'─'.repeat(60)}${colors.reset}\n\n${colors.dim}No previous sessions found for this project yet.${colors.reset}\n`; - } - return `# [${project}] recent context\n\nNo previous sessions found for this project yet.`; - } - - const displaySummaries = recentSummaries.slice(0, config.sessionCount); - const timelineObs = observations; - - // Build output - const output: string[] = []; - - // Header - if (useColors) { - output.push(''); - output.push(`${colors.bright}${colors.cyan}[${project}] recent context${colors.reset}`); - output.push(`${colors.gray}${'─'.repeat(60)}${colors.reset}`); - output.push(''); - } else { - output.push(`# [${project}] recent context`); - output.push(''); - } - - // Chronological Timeline - if (timelineObs.length > 0) { - // Legend - generate dynamically from active mode - const mode = ModeManager.getInstance().getActiveMode(); - const typeLegendItems = mode.observation_types.map(t => `${t.emoji} ${t.id}`).join(' | '); - if (useColors) { - output.push(`${colors.dim}Legend: 🎯 session-request | ${typeLegendItems}${colors.reset}`); - } else { - output.push(`**Legend:** 🎯 session-request | ${typeLegendItems}`); - } - output.push(''); - - // Column Key - if (useColors) { - output.push(`${colors.bright}💡 Column Key${colors.reset}`); - output.push(`${colors.dim} Read: Tokens to read this observation (cost to learn it now)${colors.reset}`); - output.push(`${colors.dim} Work: Tokens spent on work that produced this record (🔍 research, 🛠️ building, ⚖️ deciding)${colors.reset}`); - } else { - output.push(`💡 **Column Key**:`); - output.push(`- **Read**: Tokens to read this observation (cost to learn it now)`); - output.push(`- **Work**: Tokens spent on work that produced this record (🔍 research, 🛠️ building, ⚖️ deciding)`); - } - output.push(''); - - // Context Index Instructions - if (useColors) { - output.push(`${colors.dim}💡 Context Index: This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.${colors.reset}`); - output.push(''); - output.push(`${colors.dim}When you need implementation details, rationale, or debugging context:${colors.reset}`); - output.push(`${colors.dim} - Use the mem-search skill to fetch full observations on-demand${colors.reset}`); - output.push(`${colors.dim} - Critical types (🔴 bugfix, ⚖️ decision) often need detailed fetching${colors.reset}`); - output.push(`${colors.dim} - Trust this index over re-reading code for past decisions and learnings${colors.reset}`); - } else { - output.push(`💡 **Context Index:** This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.`); - output.push(''); - output.push(`When you need implementation details, rationale, or debugging context:`); - output.push(`- Use the mem-search skill to fetch full observations on-demand`); - output.push(`- Critical types (🔴 bugfix, ⚖️ decision) often need detailed fetching`); - output.push(`- Trust this index over re-reading code for past decisions and learnings`); - } - output.push(''); - - // Context Economics - const totalObservations = observations.length; - const totalReadTokens = observations.reduce((sum, obs) => { - const obsSize = (obs.title?.length || 0) + - (obs.subtitle?.length || 0) + - (obs.narrative?.length || 0) + - JSON.stringify(obs.facts || []).length; - return sum + Math.ceil(obsSize / CHARS_PER_TOKEN_ESTIMATE); - }, 0); - const totalDiscoveryTokens = observations.reduce((sum, obs) => sum + (obs.discovery_tokens || 0), 0); - const savings = totalDiscoveryTokens - totalReadTokens; - const savingsPercent = totalDiscoveryTokens > 0 - ? Math.round((savings / totalDiscoveryTokens) * 100) - : 0; - - const showContextEconomics = config.showReadTokens || config.showWorkTokens || - config.showSavingsAmount || config.showSavingsPercent; - - if (showContextEconomics) { - if (useColors) { - output.push(`${colors.bright}${colors.cyan}📊 Context Economics${colors.reset}`); - output.push(`${colors.dim} Loading: ${totalObservations} observations (${totalReadTokens.toLocaleString()} tokens to read)${colors.reset}`); - output.push(`${colors.dim} Work investment: ${totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions${colors.reset}`); - if (totalDiscoveryTokens > 0 && (config.showSavingsAmount || config.showSavingsPercent)) { - let savingsLine = ' Your savings: '; - if (config.showSavingsAmount && config.showSavingsPercent) { - savingsLine += `${savings.toLocaleString()} tokens (${savingsPercent}% reduction from reuse)`; - } else if (config.showSavingsAmount) { - savingsLine += `${savings.toLocaleString()} tokens`; - } else { - savingsLine += `${savingsPercent}% reduction from reuse`; - } - output.push(`${colors.green}${savingsLine}${colors.reset}`); - } - output.push(''); - } else { - output.push(`📊 **Context Economics**:`); - output.push(`- Loading: ${totalObservations} observations (${totalReadTokens.toLocaleString()} tokens to read)`); - output.push(`- Work investment: ${totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions`); - if (totalDiscoveryTokens > 0 && (config.showSavingsAmount || config.showSavingsPercent)) { - let savingsLine = '- Your savings: '; - if (config.showSavingsAmount && config.showSavingsPercent) { - savingsLine += `${savings.toLocaleString()} tokens (${savingsPercent}% reduction from reuse)`; - } else if (config.showSavingsAmount) { - savingsLine += `${savings.toLocaleString()} tokens`; - } else { - savingsLine += `${savingsPercent}% reduction from reuse`; - } - output.push(savingsLine); - } - output.push(''); - } - } - - // Prepare summaries for timeline display - const mostRecentSummaryId = recentSummaries[0]?.id; - - interface SummaryTimelineItem extends SessionSummary { - displayEpoch: number; - displayTime: string; - shouldShowLink: boolean; - } - - const summariesForTimeline: SummaryTimelineItem[] = displaySummaries.map((summary, i) => { - const olderSummary = i === 0 ? null : recentSummaries[i + 1]; - return { - ...summary, - displayEpoch: olderSummary ? olderSummary.created_at_epoch : summary.created_at_epoch, - displayTime: olderSummary ? olderSummary.created_at : summary.created_at, - shouldShowLink: summary.id !== mostRecentSummaryId - }; - }); - - // Identify which observations should show full details - const fullObservationIds = new Set( - observations - .slice(0, config.fullObservationCount) - .map(obs => obs.id) - ); - - type TimelineItem = - | { type: 'observation'; data: Observation } - | { type: 'summary'; data: SummaryTimelineItem }; - - const timeline: TimelineItem[] = [ - ...timelineObs.map(obs => ({ type: 'observation' as const, data: obs })), - ...summariesForTimeline.map(summary => ({ type: 'summary' as const, data: summary })) - ]; - - // Sort chronologically - timeline.sort((a, b) => { - const aEpoch = a.type === 'observation' ? a.data.created_at_epoch : a.data.displayEpoch; - const bEpoch = b.type === 'observation' ? b.data.created_at_epoch : b.data.displayEpoch; - return aEpoch - bEpoch; - }); - - // Group by day - const itemsByDay = new Map(); - for (const item of timeline) { - const itemDate = item.type === 'observation' ? item.data.created_at : item.data.displayTime; - const day = formatDate(itemDate); - if (!itemsByDay.has(day)) { - itemsByDay.set(day, []); - } - itemsByDay.get(day)!.push(item); - } - - // Sort days chronologically - const sortedDays = Array.from(itemsByDay.entries()).sort((a, b) => { - const aDate = new Date(a[0]).getTime(); - const bDate = new Date(b[0]).getTime(); - return aDate - bDate; - }); - - // Render each day's timeline - for (const [day, dayItems] of sortedDays) { - if (useColors) { - output.push(`${colors.bright}${colors.cyan}${day}${colors.reset}`); - output.push(''); - } else { - output.push(`### ${day}`); - output.push(''); - } - - let currentFile: string | null = null; - let lastTime = ''; - let tableOpen = false; - - for (const item of dayItems) { - if (item.type === 'summary') { - if (tableOpen) { - output.push(''); - tableOpen = false; - currentFile = null; - lastTime = ''; - } - - const summary = item.data; - const summaryTitle = `${summary.request || 'Session started'} (${formatDateTime(summary.displayTime)})`; - - if (useColors) { - output.push(`🎯 ${colors.yellow}#S${summary.id}${colors.reset} ${summaryTitle}`); - } else { - output.push(`**🎯 #S${summary.id}** ${summaryTitle}`); - } - output.push(''); - } else { - const obs = item.data; - const file = extractFirstFile(obs.files_modified, cwd); - - if (file !== currentFile) { - if (tableOpen) { - output.push(''); - } - - if (useColors) { - output.push(`${colors.dim}${file}${colors.reset}`); - } else { - output.push(`**${file}**`); - } - - if (!useColors) { - output.push(`| ID | Time | T | Title | Read | Work |`); - output.push(`|----|------|---|-------|------|------|`); - } - - currentFile = file; - tableOpen = true; - lastTime = ''; - } - - const time = formatTime(obs.created_at); - const title = obs.title || 'Untitled'; - const icon = ModeManager.getInstance().getTypeIcon(obs.type); - - const obsSize = (obs.title?.length || 0) + - (obs.subtitle?.length || 0) + - (obs.narrative?.length || 0) + - JSON.stringify(obs.facts || []).length; - const readTokens = Math.ceil(obsSize / CHARS_PER_TOKEN_ESTIMATE); - const discoveryTokens = obs.discovery_tokens || 0; - const workEmoji = ModeManager.getInstance().getWorkEmoji(obs.type); - const discoveryDisplay = discoveryTokens > 0 ? `${workEmoji} ${discoveryTokens.toLocaleString()}` : '-'; - - const showTime = time !== lastTime; - const timeDisplay = showTime ? time : ''; - lastTime = time; - - const shouldShowFull = fullObservationIds.has(obs.id); - - if (shouldShowFull) { - const detailField = config.fullObservationField === 'narrative' - ? obs.narrative - : (obs.facts ? parseJsonArray(obs.facts).join('\n') : null); - - if (useColors) { - const timePart = showTime ? `${colors.dim}${time}${colors.reset}` : ' '.repeat(time.length); - const readPart = (config.showReadTokens && readTokens > 0) ? `${colors.dim}(~${readTokens}t)${colors.reset}` : ''; - const discoveryPart = (config.showWorkTokens && discoveryTokens > 0) ? `${colors.dim}(${workEmoji} ${discoveryTokens.toLocaleString()}t)${colors.reset}` : ''; - - output.push(` ${colors.dim}#${obs.id}${colors.reset} ${timePart} ${icon} ${colors.bright}${title}${colors.reset}`); - if (detailField) { - output.push(` ${colors.dim}${detailField}${colors.reset}`); - } - if (readPart || discoveryPart) { - output.push(` ${readPart} ${discoveryPart}`); - } - output.push(''); - } else { - if (tableOpen) { - output.push(''); - tableOpen = false; - } - - output.push(`**#${obs.id}** ${timeDisplay || '″'} ${icon} **${title}**`); - if (detailField) { - output.push(''); - output.push(detailField); - output.push(''); - } - const tokenParts: string[] = []; - if (config.showReadTokens) { - tokenParts.push(`Read: ~${readTokens}`); - } - if (config.showWorkTokens) { - tokenParts.push(`Work: ${discoveryDisplay}`); - } - if (tokenParts.length > 0) { - output.push(tokenParts.join(', ')); - } - output.push(''); - currentFile = null; - } - } else { - if (useColors) { - const timePart = showTime ? `${colors.dim}${time}${colors.reset}` : ' '.repeat(time.length); - const readPart = (config.showReadTokens && readTokens > 0) ? `${colors.dim}(~${readTokens}t)${colors.reset}` : ''; - const discoveryPart = (config.showWorkTokens && discoveryTokens > 0) ? `${colors.dim}(${workEmoji} ${discoveryTokens.toLocaleString()}t)${colors.reset}` : ''; - output.push(` ${colors.dim}#${obs.id}${colors.reset} ${timePart} ${icon} ${title} ${readPart} ${discoveryPart}`); - } else { - const readCol = config.showReadTokens ? `~${readTokens}` : ''; - const workCol = config.showWorkTokens ? discoveryDisplay : ''; - output.push(`| #${obs.id} | ${timeDisplay || '″'} | ${icon} | ${title} | ${readCol} | ${workCol} |`); - } - } - } - } - - if (tableOpen) { - output.push(''); - } - } - - // Add full summary details for most recent session - const mostRecentSummary = recentSummaries[0]; - const mostRecentObservation = observations[0]; - - const shouldShowSummary = config.showLastSummary && - mostRecentSummary && - (mostRecentSummary.investigated || mostRecentSummary.learned || mostRecentSummary.completed || mostRecentSummary.next_steps) && - (!mostRecentObservation || mostRecentSummary.created_at_epoch > mostRecentObservation.created_at_epoch); - - if (shouldShowSummary) { - output.push(...renderSummaryField('Investigated', mostRecentSummary.investigated, colors.blue, useColors)); - output.push(...renderSummaryField('Learned', mostRecentSummary.learned, colors.yellow, useColors)); - output.push(...renderSummaryField('Completed', mostRecentSummary.completed, colors.green, useColors)); - output.push(...renderSummaryField('Next Steps', mostRecentSummary.next_steps, colors.magenta, useColors)); - } - - // Previously section - if (priorAssistantMessage) { - output.push(''); - output.push('---'); - output.push(''); - if (useColors) { - output.push(`${colors.bright}${colors.magenta}📋 Previously${colors.reset}`); - output.push(''); - output.push(`${colors.dim}A: ${priorAssistantMessage}${colors.reset}`); - } else { - output.push(`**📋 Previously**`); - output.push(''); - output.push(`A: ${priorAssistantMessage}`); - } - output.push(''); - } - - // Footer - if (showContextEconomics && totalDiscoveryTokens > 0 && savings > 0) { - const workTokensK = Math.round(totalDiscoveryTokens / 1000); - output.push(''); - if (useColors) { - output.push(`${colors.dim}💰 Access ${workTokensK}k tokens of past research & decisions for just ${totalReadTokens.toLocaleString()}t. Use the mem-search skill to access memories by ID instead of re-reading files.${colors.reset}`); - } else { - output.push(`💰 Access ${workTokensK}k tokens of past research & decisions for just ${totalReadTokens.toLocaleString()}t. Use the mem-search skill to access memories by ID instead of re-reading files.`); - } - } - } - - db?.close(); - return output.join('\n').trimEnd(); -} +// Re-export everything from the new context module +export { generateContext } from './context/index.js'; +export type { ContextInput, ContextConfig } from './context/types.js'; diff --git a/src/services/context/ContextBuilder.ts b/src/services/context/ContextBuilder.ts new file mode 100644 index 00000000..52229dda --- /dev/null +++ b/src/services/context/ContextBuilder.ts @@ -0,0 +1,161 @@ +/** + * ContextBuilder - Main orchestrator for context generation + * + * Coordinates all context generation components to build the final output. + * This is the primary entry point for context generation. + */ + +import path from 'path'; +import { homedir } from 'os'; +import { unlinkSync } from 'fs'; +import { SessionStore } from '../sqlite/SessionStore.js'; +import { logger } from '../../utils/logger.js'; +import { getProjectName } from '../../utils/project-name.js'; + +import type { ContextInput, ContextConfig, Observation, SessionSummary } from './types.js'; +import { loadContextConfig } from './ContextConfigLoader.js'; +import { calculateTokenEconomics } from './TokenCalculator.js'; +import { + queryObservations, + querySummaries, + getPriorSessionMessages, + prepareSummariesForTimeline, + buildTimeline, + getFullObservationIds, +} from './ObservationCompiler.js'; +import { renderHeader } from './sections/HeaderRenderer.js'; +import { renderTimeline } from './sections/TimelineRenderer.js'; +import { shouldShowSummary, renderSummaryFields } from './sections/SummaryRenderer.js'; +import { renderPreviouslySection, renderFooter } from './sections/FooterRenderer.js'; +import { renderMarkdownEmptyState } from './formatters/MarkdownFormatter.js'; +import { renderColorEmptyState } from './formatters/ColorFormatter.js'; + +// Version marker path for native module error handling +const VERSION_MARKER_PATH = path.join( + homedir(), + '.claude', + 'plugins', + 'marketplaces', + 'thedotmack', + 'plugin', + '.install-version' +); + +/** + * Initialize database connection with error handling + */ +function initializeDatabase(): SessionStore | null { + try { + return new SessionStore(); + } catch (error: any) { + if (error.code === 'ERR_DLOPEN_FAILED') { + try { + unlinkSync(VERSION_MARKER_PATH); + } catch (unlinkError) { + logger.debug('SYSTEM', 'Marker file cleanup failed (may not exist)', {}, unlinkError as Error); + } + logger.error('SYSTEM', 'Native module rebuild needed - restart Claude Code to auto-fix'); + return null; + } + throw error; + } +} + +/** + * Render empty state when no data exists + */ +function renderEmptyState(project: string, useColors: boolean): string { + return useColors ? renderColorEmptyState(project) : renderMarkdownEmptyState(project); +} + +/** + * Build context output from loaded data + */ +function buildContextOutput( + project: string, + observations: Observation[], + summaries: SessionSummary[], + config: ContextConfig, + cwd: string, + sessionId: string | undefined, + useColors: boolean +): string { + const output: string[] = []; + + // Calculate token economics + const economics = calculateTokenEconomics(observations); + + // Render header section + output.push(...renderHeader(project, economics, config, useColors)); + + // Prepare timeline data + const displaySummaries = summaries.slice(0, config.sessionCount); + const summariesForTimeline = prepareSummariesForTimeline(displaySummaries, summaries); + const timeline = buildTimeline(observations, summariesForTimeline); + const fullObservationIds = getFullObservationIds(observations, config.fullObservationCount); + + // Render timeline + output.push(...renderTimeline(timeline, fullObservationIds, config, cwd, useColors)); + + // Render most recent summary if applicable + const mostRecentSummary = summaries[0]; + const mostRecentObservation = observations[0]; + + if (shouldShowSummary(config, mostRecentSummary, mostRecentObservation)) { + output.push(...renderSummaryFields(mostRecentSummary, useColors)); + } + + // Render previously section (prior assistant message) + const priorMessages = getPriorSessionMessages(observations, config, sessionId, cwd); + output.push(...renderPreviouslySection(priorMessages, useColors)); + + // Render footer + output.push(...renderFooter(economics, config, useColors)); + + return output.join('\n').trimEnd(); +} + +/** + * Generate context for a project + * + * Main entry point for context generation. Orchestrates loading config, + * querying data, and rendering the final context string. + */ +export async function generateContext( + input?: ContextInput, + useColors: boolean = false +): Promise { + const config = loadContextConfig(); + const cwd = input?.cwd ?? process.cwd(); + const project = getProjectName(cwd); + + // Initialize database + const db = initializeDatabase(); + if (!db) { + return ''; + } + + try { + // Query data + const observations = queryObservations(db, project, config); + const summaries = querySummaries(db, project, config); + + // Handle empty state + if (observations.length === 0 && summaries.length === 0) { + return renderEmptyState(project, useColors); + } + + // Build and return context + return buildContextOutput( + project, + observations, + summaries, + config, + cwd, + input?.session_id, + useColors + ); + } finally { + db.close(); + } +} diff --git a/src/services/context/ContextConfigLoader.ts b/src/services/context/ContextConfigLoader.ts new file mode 100644 index 00000000..ad37f7b8 --- /dev/null +++ b/src/services/context/ContextConfigLoader.ts @@ -0,0 +1,57 @@ +/** + * ContextConfigLoader - Loads and validates context configuration + * + * Handles loading settings from file with mode-based filtering for observation types. + */ + +import path from 'path'; +import { homedir } from 'os'; +import { SettingsDefaultsManager } from '../../shared/SettingsDefaultsManager.js'; +import { ModeManager } from '../domain/ModeManager.js'; +import type { ContextConfig } from './types.js'; + +/** + * Load all context configuration settings + * Priority: ~/.claude-mem/settings.json > env var > defaults + */ +export function loadContextConfig(): ContextConfig { + const settingsPath = path.join(homedir(), '.claude-mem', 'settings.json'); + const settings = SettingsDefaultsManager.loadFromFile(settingsPath); + + // For non-code modes, use all types/concepts from active mode instead of settings + const modeId = settings.CLAUDE_MEM_MODE; + const isCodeMode = modeId === 'code' || modeId.startsWith('code--'); + + let observationTypes: Set; + let observationConcepts: Set; + + if (isCodeMode) { + // Code mode: use settings-based filtering + observationTypes = new Set( + settings.CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES.split(',').map((t: string) => t.trim()).filter(Boolean) + ); + observationConcepts = new Set( + settings.CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS.split(',').map((c: string) => c.trim()).filter(Boolean) + ); + } else { + // Non-code modes: use all types/concepts from active mode + const mode = ModeManager.getInstance().getActiveMode(); + observationTypes = new Set(mode.observation_types.map(t => t.id)); + observationConcepts = new Set(mode.observation_concepts.map(c => c.id)); + } + + return { + totalObservationCount: parseInt(settings.CLAUDE_MEM_CONTEXT_OBSERVATIONS, 10), + fullObservationCount: parseInt(settings.CLAUDE_MEM_CONTEXT_FULL_COUNT, 10), + sessionCount: parseInt(settings.CLAUDE_MEM_CONTEXT_SESSION_COUNT, 10), + showReadTokens: settings.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS === 'true', + showWorkTokens: settings.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS === 'true', + showSavingsAmount: settings.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT === 'true', + showSavingsPercent: settings.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT === 'true', + observationTypes, + observationConcepts, + fullObservationField: settings.CLAUDE_MEM_CONTEXT_FULL_FIELD as 'narrative' | 'facts', + showLastSummary: settings.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY === 'true', + showLastMessage: settings.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE === 'true', + }; +} diff --git a/src/services/context/ObservationCompiler.ts b/src/services/context/ObservationCompiler.ts new file mode 100644 index 00000000..6aa40cf6 --- /dev/null +++ b/src/services/context/ObservationCompiler.ts @@ -0,0 +1,202 @@ +/** + * ObservationCompiler - Query building and data retrieval for context + * + * Handles database queries for observations and summaries, plus transcript extraction. + */ + +import path from 'path'; +import { homedir } from 'os'; +import { existsSync, readFileSync } from 'fs'; +import { SessionStore } from '../sqlite/SessionStore.js'; +import { logger } from '../../utils/logger.js'; +import type { + ContextConfig, + Observation, + SessionSummary, + SummaryTimelineItem, + TimelineItem, + PriorMessages, +} from './types.js'; +import { SUMMARY_LOOKAHEAD } from './types.js'; + +/** + * Query observations from database with type and concept filtering + */ +export function queryObservations( + db: SessionStore, + project: string, + config: ContextConfig +): Observation[] { + const typeArray = Array.from(config.observationTypes); + const typePlaceholders = typeArray.map(() => '?').join(','); + const conceptArray = Array.from(config.observationConcepts); + const conceptPlaceholders = conceptArray.map(() => '?').join(','); + + return db.db.prepare(` + SELECT + id, memory_session_id, type, title, subtitle, narrative, + facts, concepts, files_read, files_modified, discovery_tokens, + created_at, created_at_epoch + FROM observations + WHERE project = ? + AND type IN (${typePlaceholders}) + AND EXISTS ( + SELECT 1 FROM json_each(concepts) + WHERE value IN (${conceptPlaceholders}) + ) + ORDER BY created_at_epoch DESC + LIMIT ? + `).all(project, ...typeArray, ...conceptArray, config.totalObservationCount) as Observation[]; +} + +/** + * Query recent session summaries from database + */ +export function querySummaries( + db: SessionStore, + project: string, + config: ContextConfig +): SessionSummary[] { + return db.db.prepare(` + SELECT id, memory_session_id, request, investigated, learned, completed, next_steps, created_at, created_at_epoch + FROM session_summaries + WHERE project = ? + ORDER BY created_at_epoch DESC + LIMIT ? + `).all(project, config.sessionCount + SUMMARY_LOOKAHEAD) as SessionSummary[]; +} + +/** + * Convert cwd path to dashed format for transcript lookup + */ +function cwdToDashed(cwd: string): string { + return cwd.replace(/\//g, '-'); +} + +/** + * Extract prior messages from transcript file + */ +export function extractPriorMessages(transcriptPath: string): PriorMessages { + try { + if (!existsSync(transcriptPath)) { + return { userMessage: '', assistantMessage: '' }; + } + + const content = readFileSync(transcriptPath, 'utf-8').trim(); + if (!content) { + return { userMessage: '', assistantMessage: '' }; + } + + const lines = content.split('\n').filter(line => line.trim()); + let lastAssistantMessage = ''; + + for (let i = lines.length - 1; i >= 0; i--) { + try { + const line = lines[i]; + if (!line.includes('"type":"assistant"')) { + continue; + } + + const entry = JSON.parse(line); + if (entry.type === 'assistant' && entry.message?.content && Array.isArray(entry.message.content)) { + let text = ''; + for (const block of entry.message.content) { + if (block.type === 'text') { + text += block.text; + } + } + text = text.replace(/[\s\S]*?<\/system-reminder>/g, '').trim(); + if (text) { + lastAssistantMessage = text; + break; + } + } + } catch (parseError) { + logger.debug('PARSER', 'Skipping malformed transcript line', { lineIndex: i }, parseError as Error); + continue; + } + } + + return { userMessage: '', assistantMessage: lastAssistantMessage }; + } catch (error) { + logger.failure('WORKER', `Failed to extract prior messages from transcript`, { transcriptPath }, error as Error); + return { userMessage: '', assistantMessage: '' }; + } +} + +/** + * Get prior session messages if enabled + */ +export function getPriorSessionMessages( + observations: Observation[], + config: ContextConfig, + currentSessionId: string | undefined, + cwd: string +): PriorMessages { + if (!config.showLastMessage || observations.length === 0) { + return { userMessage: '', assistantMessage: '' }; + } + + const priorSessionObs = observations.find(obs => obs.memory_session_id !== currentSessionId); + if (!priorSessionObs) { + return { userMessage: '', assistantMessage: '' }; + } + + const priorSessionId = priorSessionObs.memory_session_id; + const dashedCwd = cwdToDashed(cwd); + const transcriptPath = path.join(homedir(), '.claude', 'projects', dashedCwd, `${priorSessionId}.jsonl`); + return extractPriorMessages(transcriptPath); +} + +/** + * Prepare summaries for timeline display + */ +export function prepareSummariesForTimeline( + displaySummaries: SessionSummary[], + allSummaries: SessionSummary[] +): SummaryTimelineItem[] { + const mostRecentSummaryId = allSummaries[0]?.id; + + return displaySummaries.map((summary, i) => { + const olderSummary = i === 0 ? null : allSummaries[i + 1]; + return { + ...summary, + displayEpoch: olderSummary ? olderSummary.created_at_epoch : summary.created_at_epoch, + displayTime: olderSummary ? olderSummary.created_at : summary.created_at, + shouldShowLink: summary.id !== mostRecentSummaryId + }; + }); +} + +/** + * Build unified timeline from observations and summaries + */ +export function buildTimeline( + observations: Observation[], + summaries: SummaryTimelineItem[] +): TimelineItem[] { + const timeline: TimelineItem[] = [ + ...observations.map(obs => ({ type: 'observation' as const, data: obs })), + ...summaries.map(summary => ({ type: 'summary' as const, data: summary })) + ]; + + // Sort chronologically + timeline.sort((a, b) => { + const aEpoch = a.type === 'observation' ? a.data.created_at_epoch : a.data.displayEpoch; + const bEpoch = b.type === 'observation' ? b.data.created_at_epoch : b.data.displayEpoch; + return aEpoch - bEpoch; + }); + + return timeline; +} + +/** + * Get set of observation IDs that should show full details + */ +export function getFullObservationIds(observations: Observation[], count: number): Set { + return new Set( + observations + .slice(0, count) + .map(obs => obs.id) + ); +} diff --git a/src/services/context/TokenCalculator.ts b/src/services/context/TokenCalculator.ts new file mode 100644 index 00000000..7c6f182e --- /dev/null +++ b/src/services/context/TokenCalculator.ts @@ -0,0 +1,78 @@ +/** + * TokenCalculator - Token budget calculations for context economics + * + * Handles estimation of token counts for observations and context economics. + */ + +import type { Observation, TokenEconomics, ContextConfig } from './types.js'; +import { CHARS_PER_TOKEN_ESTIMATE } from './types.js'; +import { ModeManager } from '../domain/ModeManager.js'; + +/** + * Calculate token count for a single observation + */ +export function calculateObservationTokens(obs: Observation): number { + const obsSize = (obs.title?.length || 0) + + (obs.subtitle?.length || 0) + + (obs.narrative?.length || 0) + + JSON.stringify(obs.facts || []).length; + return Math.ceil(obsSize / CHARS_PER_TOKEN_ESTIMATE); +} + +/** + * Calculate context economics for a set of observations + */ +export function calculateTokenEconomics(observations: Observation[]): TokenEconomics { + const totalObservations = observations.length; + + const totalReadTokens = observations.reduce((sum, obs) => { + return sum + calculateObservationTokens(obs); + }, 0); + + const totalDiscoveryTokens = observations.reduce((sum, obs) => { + return sum + (obs.discovery_tokens || 0); + }, 0); + + const savings = totalDiscoveryTokens - totalReadTokens; + const savingsPercent = totalDiscoveryTokens > 0 + ? Math.round((savings / totalDiscoveryTokens) * 100) + : 0; + + return { + totalObservations, + totalReadTokens, + totalDiscoveryTokens, + savings, + savingsPercent, + }; +} + +/** + * Get work emoji for an observation type + */ +export function getWorkEmoji(obsType: string): string { + return ModeManager.getInstance().getWorkEmoji(obsType); +} + +/** + * Format token display for an observation + */ +export function formatObservationTokenDisplay( + obs: Observation, + config: ContextConfig +): { readTokens: number; discoveryTokens: number; discoveryDisplay: string; workEmoji: string } { + const readTokens = calculateObservationTokens(obs); + const discoveryTokens = obs.discovery_tokens || 0; + const workEmoji = getWorkEmoji(obs.type); + const discoveryDisplay = discoveryTokens > 0 ? `${workEmoji} ${discoveryTokens.toLocaleString()}` : '-'; + + return { readTokens, discoveryTokens, discoveryDisplay, workEmoji }; +} + +/** + * Check if context economics should be shown + */ +export function shouldShowContextEconomics(config: ContextConfig): boolean { + return config.showReadTokens || config.showWorkTokens || + config.showSavingsAmount || config.showSavingsPercent; +} diff --git a/src/services/context/formatters/ColorFormatter.ts b/src/services/context/formatters/ColorFormatter.ts new file mode 100644 index 00000000..1480eaf3 --- /dev/null +++ b/src/services/context/formatters/ColorFormatter.ts @@ -0,0 +1,223 @@ +/** + * ColorFormatter - Formats context output with ANSI colors for terminal + * + * Handles all colored formatting for context injection (terminal display). + */ + +import type { + ContextConfig, + Observation, + TokenEconomics, + PriorMessages, +} from '../types.js'; +import { colors } from '../types.js'; +import { ModeManager } from '../../domain/ModeManager.js'; +import { formatObservationTokenDisplay } from '../TokenCalculator.js'; + +/** + * Render colored header + */ +export function renderColorHeader(project: string): string[] { + return [ + '', + `${colors.bright}${colors.cyan}[${project}] recent context${colors.reset}`, + `${colors.gray}${'─'.repeat(60)}${colors.reset}`, + '' + ]; +} + +/** + * Render colored legend + */ +export function renderColorLegend(): string[] { + const mode = ModeManager.getInstance().getActiveMode(); + const typeLegendItems = mode.observation_types.map(t => `${t.emoji} ${t.id}`).join(' | '); + + return [ + `${colors.dim}Legend: session-request | ${typeLegendItems}${colors.reset}`, + '' + ]; +} + +/** + * Render colored column key + */ +export function renderColorColumnKey(): string[] { + return [ + `${colors.bright}Column Key${colors.reset}`, + `${colors.dim} Read: Tokens to read this observation (cost to learn it now)${colors.reset}`, + `${colors.dim} Work: Tokens spent on work that produced this record ( research, building, deciding)${colors.reset}`, + '' + ]; +} + +/** + * Render colored context index instructions + */ +export function renderColorContextIndex(): string[] { + return [ + `${colors.dim}Context Index: This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.${colors.reset}`, + '', + `${colors.dim}When you need implementation details, rationale, or debugging context:${colors.reset}`, + `${colors.dim} - Use the mem-search skill to fetch full observations on-demand${colors.reset}`, + `${colors.dim} - Critical types ( bugfix, decision) often need detailed fetching${colors.reset}`, + `${colors.dim} - Trust this index over re-reading code for past decisions and learnings${colors.reset}`, + '' + ]; +} + +/** + * Render colored context economics + */ +export function renderColorContextEconomics( + economics: TokenEconomics, + config: ContextConfig +): string[] { + const output: string[] = []; + + output.push(`${colors.bright}${colors.cyan}Context Economics${colors.reset}`); + output.push(`${colors.dim} Loading: ${economics.totalObservations} observations (${economics.totalReadTokens.toLocaleString()} tokens to read)${colors.reset}`); + output.push(`${colors.dim} Work investment: ${economics.totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions${colors.reset}`); + + if (economics.totalDiscoveryTokens > 0 && (config.showSavingsAmount || config.showSavingsPercent)) { + let savingsLine = ' Your savings: '; + if (config.showSavingsAmount && config.showSavingsPercent) { + savingsLine += `${economics.savings.toLocaleString()} tokens (${economics.savingsPercent}% reduction from reuse)`; + } else if (config.showSavingsAmount) { + savingsLine += `${economics.savings.toLocaleString()} tokens`; + } else { + savingsLine += `${economics.savingsPercent}% reduction from reuse`; + } + output.push(`${colors.green}${savingsLine}${colors.reset}`); + } + output.push(''); + + return output; +} + +/** + * Render colored day header + */ +export function renderColorDayHeader(day: string): string[] { + return [ + `${colors.bright}${colors.cyan}${day}${colors.reset}`, + '' + ]; +} + +/** + * Render colored file header + */ +export function renderColorFileHeader(file: string): string[] { + return [ + `${colors.dim}${file}${colors.reset}` + ]; +} + +/** + * Render colored table row for observation + */ +export function renderColorTableRow( + obs: Observation, + time: string, + showTime: boolean, + config: ContextConfig +): string { + const title = obs.title || 'Untitled'; + const icon = ModeManager.getInstance().getTypeIcon(obs.type); + const { readTokens, discoveryTokens, workEmoji } = formatObservationTokenDisplay(obs, config); + + const timePart = showTime ? `${colors.dim}${time}${colors.reset}` : ' '.repeat(time.length); + const readPart = (config.showReadTokens && readTokens > 0) ? `${colors.dim}(~${readTokens}t)${colors.reset}` : ''; + const discoveryPart = (config.showWorkTokens && discoveryTokens > 0) ? `${colors.dim}(${workEmoji} ${discoveryTokens.toLocaleString()}t)${colors.reset}` : ''; + + return ` ${colors.dim}#${obs.id}${colors.reset} ${timePart} ${icon} ${title} ${readPart} ${discoveryPart}`; +} + +/** + * Render colored full observation + */ +export function renderColorFullObservation( + obs: Observation, + time: string, + showTime: boolean, + detailField: string | null, + config: ContextConfig +): string[] { + const output: string[] = []; + const title = obs.title || 'Untitled'; + const icon = ModeManager.getInstance().getTypeIcon(obs.type); + const { readTokens, discoveryTokens, workEmoji } = formatObservationTokenDisplay(obs, config); + + const timePart = showTime ? `${colors.dim}${time}${colors.reset}` : ' '.repeat(time.length); + const readPart = (config.showReadTokens && readTokens > 0) ? `${colors.dim}(~${readTokens}t)${colors.reset}` : ''; + const discoveryPart = (config.showWorkTokens && discoveryTokens > 0) ? `${colors.dim}(${workEmoji} ${discoveryTokens.toLocaleString()}t)${colors.reset}` : ''; + + output.push(` ${colors.dim}#${obs.id}${colors.reset} ${timePart} ${icon} ${colors.bright}${title}${colors.reset}`); + if (detailField) { + output.push(` ${colors.dim}${detailField}${colors.reset}`); + } + if (readPart || discoveryPart) { + output.push(` ${readPart} ${discoveryPart}`); + } + output.push(''); + + return output; +} + +/** + * Render colored summary item in timeline + */ +export function renderColorSummaryItem( + summary: { id: number; request: string | null }, + formattedTime: string +): string[] { + const summaryTitle = `${summary.request || 'Session started'} (${formattedTime})`; + return [ + `${colors.yellow}#S${summary.id}${colors.reset} ${summaryTitle}`, + '' + ]; +} + +/** + * Render colored summary field + */ +export function renderColorSummaryField(label: string, value: string | null, color: string): string[] { + if (!value) return []; + return [`${color}${label}:${colors.reset} ${value}`, '']; +} + +/** + * Render colored previously section + */ +export function renderColorPreviouslySection(priorMessages: PriorMessages): string[] { + if (!priorMessages.assistantMessage) return []; + + return [ + '', + '---', + '', + `${colors.bright}${colors.magenta}Previously${colors.reset}`, + '', + `${colors.dim}A: ${priorMessages.assistantMessage}${colors.reset}`, + '' + ]; +} + +/** + * Render colored footer + */ +export function renderColorFooter(totalDiscoveryTokens: number, totalReadTokens: number): string[] { + const workTokensK = Math.round(totalDiscoveryTokens / 1000); + return [ + '', + `${colors.dim}Access ${workTokensK}k tokens of past research & decisions for just ${totalReadTokens.toLocaleString()}t. Use the mem-search skill to access memories by ID instead of re-reading files.${colors.reset}` + ]; +} + +/** + * Render colored empty state + */ +export function renderColorEmptyState(project: string): string { + return `\n${colors.bright}${colors.cyan}[${project}] recent context${colors.reset}\n${colors.gray}${'─'.repeat(60)}${colors.reset}\n\n${colors.dim}No previous sessions found for this project yet.${colors.reset}\n`; +} diff --git a/src/services/context/formatters/MarkdownFormatter.ts b/src/services/context/formatters/MarkdownFormatter.ts new file mode 100644 index 00000000..e7e92ba4 --- /dev/null +++ b/src/services/context/formatters/MarkdownFormatter.ts @@ -0,0 +1,226 @@ +/** + * MarkdownFormatter - Formats context output as markdown (non-colored mode) + * + * Handles all markdown formatting for context injection. + */ + +import type { + ContextConfig, + Observation, + SessionSummary, + TokenEconomics, + PriorMessages, +} from '../types.js'; +import { ModeManager } from '../../domain/ModeManager.js'; +import { formatObservationTokenDisplay } from '../TokenCalculator.js'; + +/** + * Render markdown header + */ +export function renderMarkdownHeader(project: string): string[] { + return [ + `# [${project}] recent context`, + '' + ]; +} + +/** + * Render markdown legend + */ +export function renderMarkdownLegend(): string[] { + const mode = ModeManager.getInstance().getActiveMode(); + const typeLegendItems = mode.observation_types.map(t => `${t.emoji} ${t.id}`).join(' | '); + + return [ + `**Legend:** session-request | ${typeLegendItems}`, + '' + ]; +} + +/** + * Render markdown column key + */ +export function renderMarkdownColumnKey(): string[] { + return [ + `**Column Key**:`, + `- **Read**: Tokens to read this observation (cost to learn it now)`, + `- **Work**: Tokens spent on work that produced this record ( research, building, deciding)`, + '' + ]; +} + +/** + * Render markdown context index instructions + */ +export function renderMarkdownContextIndex(): string[] { + return [ + `**Context Index:** This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.`, + '', + `When you need implementation details, rationale, or debugging context:`, + `- Use the mem-search skill to fetch full observations on-demand`, + `- Critical types ( bugfix, decision) often need detailed fetching`, + `- Trust this index over re-reading code for past decisions and learnings`, + '' + ]; +} + +/** + * Render markdown context economics + */ +export function renderMarkdownContextEconomics( + economics: TokenEconomics, + config: ContextConfig +): string[] { + const output: string[] = []; + + output.push(`**Context Economics**:`); + output.push(`- Loading: ${economics.totalObservations} observations (${economics.totalReadTokens.toLocaleString()} tokens to read)`); + output.push(`- Work investment: ${economics.totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions`); + + if (economics.totalDiscoveryTokens > 0 && (config.showSavingsAmount || config.showSavingsPercent)) { + let savingsLine = '- Your savings: '; + if (config.showSavingsAmount && config.showSavingsPercent) { + savingsLine += `${economics.savings.toLocaleString()} tokens (${economics.savingsPercent}% reduction from reuse)`; + } else if (config.showSavingsAmount) { + savingsLine += `${economics.savings.toLocaleString()} tokens`; + } else { + savingsLine += `${economics.savingsPercent}% reduction from reuse`; + } + output.push(savingsLine); + } + output.push(''); + + return output; +} + +/** + * Render markdown day header + */ +export function renderMarkdownDayHeader(day: string): string[] { + return [ + `### ${day}`, + '' + ]; +} + +/** + * Render markdown file header with table header + */ +export function renderMarkdownFileHeader(file: string): string[] { + return [ + `**${file}**`, + `| ID | Time | T | Title | Read | Work |`, + `|----|------|---|-------|------|------|` + ]; +} + +/** + * Render markdown table row for observation + */ +export function renderMarkdownTableRow( + obs: Observation, + timeDisplay: string, + config: ContextConfig +): string { + const title = obs.title || 'Untitled'; + const icon = ModeManager.getInstance().getTypeIcon(obs.type); + const { readTokens, discoveryDisplay } = formatObservationTokenDisplay(obs, config); + + const readCol = config.showReadTokens ? `~${readTokens}` : ''; + const workCol = config.showWorkTokens ? discoveryDisplay : ''; + + return `| #${obs.id} | ${timeDisplay || '"'} | ${icon} | ${title} | ${readCol} | ${workCol} |`; +} + +/** + * Render markdown full observation + */ +export function renderMarkdownFullObservation( + obs: Observation, + timeDisplay: string, + detailField: string | null, + config: ContextConfig +): string[] { + const output: string[] = []; + const title = obs.title || 'Untitled'; + const icon = ModeManager.getInstance().getTypeIcon(obs.type); + const { readTokens, discoveryDisplay } = formatObservationTokenDisplay(obs, config); + + output.push(`**#${obs.id}** ${timeDisplay || '"'} ${icon} **${title}**`); + if (detailField) { + output.push(''); + output.push(detailField); + output.push(''); + } + + const tokenParts: string[] = []; + if (config.showReadTokens) { + tokenParts.push(`Read: ~${readTokens}`); + } + if (config.showWorkTokens) { + tokenParts.push(`Work: ${discoveryDisplay}`); + } + if (tokenParts.length > 0) { + output.push(tokenParts.join(', ')); + } + output.push(''); + + return output; +} + +/** + * Render markdown summary item in timeline + */ +export function renderMarkdownSummaryItem( + summary: { id: number; request: string | null }, + formattedTime: string +): string[] { + const summaryTitle = `${summary.request || 'Session started'} (${formattedTime})`; + return [ + `**#S${summary.id}** ${summaryTitle}`, + '' + ]; +} + +/** + * Render markdown summary field + */ +export function renderMarkdownSummaryField(label: string, value: string | null): string[] { + if (!value) return []; + return [`**${label}**: ${value}`, '']; +} + +/** + * Render markdown previously section + */ +export function renderMarkdownPreviouslySection(priorMessages: PriorMessages): string[] { + if (!priorMessages.assistantMessage) return []; + + return [ + '', + '---', + '', + `**Previously**`, + '', + `A: ${priorMessages.assistantMessage}`, + '' + ]; +} + +/** + * Render markdown footer + */ +export function renderMarkdownFooter(totalDiscoveryTokens: number, totalReadTokens: number): string[] { + const workTokensK = Math.round(totalDiscoveryTokens / 1000); + return [ + '', + `Access ${workTokensK}k tokens of past research & decisions for just ${totalReadTokens.toLocaleString()}t. Use the mem-search skill to access memories by ID instead of re-reading files.` + ]; +} + +/** + * Render markdown empty state + */ +export function renderMarkdownEmptyState(project: string): string { + return `# [${project}] recent context\n\nNo previous sessions found for this project yet.`; +} diff --git a/src/services/context/index.ts b/src/services/context/index.ts new file mode 100644 index 00000000..a5789d73 --- /dev/null +++ b/src/services/context/index.ts @@ -0,0 +1,18 @@ +/** + * Context Module - Public API + * + * Re-exports the main context generation functionality. + */ + +export { generateContext } from './ContextBuilder.js'; +export type { ContextInput, ContextConfig } from './types.js'; + +// Component exports for advanced usage +export { loadContextConfig } from './ContextConfigLoader.js'; +export { calculateTokenEconomics, calculateObservationTokens } from './TokenCalculator.js'; +export { + queryObservations, + querySummaries, + buildTimeline, + getPriorSessionMessages, +} from './ObservationCompiler.js'; diff --git a/src/services/context/sections/FooterRenderer.ts b/src/services/context/sections/FooterRenderer.ts new file mode 100644 index 00000000..a592a1af --- /dev/null +++ b/src/services/context/sections/FooterRenderer.ts @@ -0,0 +1,42 @@ +/** + * FooterRenderer - Renders the context footer sections + * + * Handles rendering of previously section and token savings footer. + */ + +import type { ContextConfig, TokenEconomics, PriorMessages } from '../types.js'; +import { shouldShowContextEconomics } from '../TokenCalculator.js'; +import * as Markdown from '../formatters/MarkdownFormatter.js'; +import * as Color from '../formatters/ColorFormatter.js'; + +/** + * Render the previously section (prior assistant message) + */ +export function renderPreviouslySection( + priorMessages: PriorMessages, + useColors: boolean +): string[] { + if (useColors) { + return Color.renderColorPreviouslySection(priorMessages); + } + return Markdown.renderMarkdownPreviouslySection(priorMessages); +} + +/** + * Render the footer with token savings info + */ +export function renderFooter( + economics: TokenEconomics, + config: ContextConfig, + useColors: boolean +): string[] { + // Only show footer if we have savings to display + if (!shouldShowContextEconomics(config) || economics.totalDiscoveryTokens <= 0 || economics.savings <= 0) { + return []; + } + + if (useColors) { + return Color.renderColorFooter(economics.totalDiscoveryTokens, economics.totalReadTokens); + } + return Markdown.renderMarkdownFooter(economics.totalDiscoveryTokens, economics.totalReadTokens); +} diff --git a/src/services/context/sections/HeaderRenderer.ts b/src/services/context/sections/HeaderRenderer.ts new file mode 100644 index 00000000..42ac201e --- /dev/null +++ b/src/services/context/sections/HeaderRenderer.ts @@ -0,0 +1,61 @@ +/** + * HeaderRenderer - Renders the context header sections + * + * Handles rendering of header, legend, column key, context index, and economics. + */ + +import type { ContextConfig, TokenEconomics } from '../types.js'; +import { shouldShowContextEconomics } from '../TokenCalculator.js'; +import * as Markdown from '../formatters/MarkdownFormatter.js'; +import * as Color from '../formatters/ColorFormatter.js'; + +/** + * Render the complete header section + */ +export function renderHeader( + project: string, + economics: TokenEconomics, + config: ContextConfig, + useColors: boolean +): string[] { + const output: string[] = []; + + // Main header + if (useColors) { + output.push(...Color.renderColorHeader(project)); + } else { + output.push(...Markdown.renderMarkdownHeader(project)); + } + + // Legend + if (useColors) { + output.push(...Color.renderColorLegend()); + } else { + output.push(...Markdown.renderMarkdownLegend()); + } + + // Column key + if (useColors) { + output.push(...Color.renderColorColumnKey()); + } else { + output.push(...Markdown.renderMarkdownColumnKey()); + } + + // Context index instructions + if (useColors) { + output.push(...Color.renderColorContextIndex()); + } else { + output.push(...Markdown.renderMarkdownContextIndex()); + } + + // Context economics + if (shouldShowContextEconomics(config)) { + if (useColors) { + output.push(...Color.renderColorContextEconomics(economics, config)); + } else { + output.push(...Markdown.renderMarkdownContextEconomics(economics, config)); + } + } + + return output; +} diff --git a/src/services/context/sections/SummaryRenderer.ts b/src/services/context/sections/SummaryRenderer.ts new file mode 100644 index 00000000..fcf51a9c --- /dev/null +++ b/src/services/context/sections/SummaryRenderer.ts @@ -0,0 +1,65 @@ +/** + * SummaryRenderer - Renders the summary section at the end of context + * + * Handles rendering of the most recent session summary fields. + */ + +import type { ContextConfig, Observation, SessionSummary } from '../types.js'; +import { colors } from '../types.js'; +import * as Markdown from '../formatters/MarkdownFormatter.js'; +import * as Color from '../formatters/ColorFormatter.js'; + +/** + * Check if summary should be displayed + */ +export function shouldShowSummary( + config: ContextConfig, + mostRecentSummary: SessionSummary | undefined, + mostRecentObservation: Observation | undefined +): boolean { + if (!config.showLastSummary || !mostRecentSummary) { + return false; + } + + const hasContent = !!( + mostRecentSummary.investigated || + mostRecentSummary.learned || + mostRecentSummary.completed || + mostRecentSummary.next_steps + ); + + if (!hasContent) { + return false; + } + + // Only show if summary is more recent than observations + if (mostRecentObservation && mostRecentSummary.created_at_epoch <= mostRecentObservation.created_at_epoch) { + return false; + } + + return true; +} + +/** + * Render summary fields + */ +export function renderSummaryFields( + summary: SessionSummary, + useColors: boolean +): string[] { + const output: string[] = []; + + if (useColors) { + output.push(...Color.renderColorSummaryField('Investigated', summary.investigated, colors.blue)); + output.push(...Color.renderColorSummaryField('Learned', summary.learned, colors.yellow)); + output.push(...Color.renderColorSummaryField('Completed', summary.completed, colors.green)); + output.push(...Color.renderColorSummaryField('Next Steps', summary.next_steps, colors.magenta)); + } else { + output.push(...Markdown.renderMarkdownSummaryField('Investigated', summary.investigated)); + output.push(...Markdown.renderMarkdownSummaryField('Learned', summary.learned)); + output.push(...Markdown.renderMarkdownSummaryField('Completed', summary.completed)); + output.push(...Markdown.renderMarkdownSummaryField('Next Steps', summary.next_steps)); + } + + return output; +} diff --git a/src/services/context/sections/TimelineRenderer.ts b/src/services/context/sections/TimelineRenderer.ts new file mode 100644 index 00000000..5a493e27 --- /dev/null +++ b/src/services/context/sections/TimelineRenderer.ts @@ -0,0 +1,170 @@ +/** + * TimelineRenderer - Renders the chronological timeline of observations and summaries + * + * Handles day grouping, file grouping within days, and table rendering. + */ + +import type { + ContextConfig, + Observation, + TimelineItem, + SummaryTimelineItem, +} from '../types.js'; +import { formatTime, formatDate, formatDateTime, extractFirstFile, parseJsonArray } from '../../../shared/timeline-formatting.js'; +import * as Markdown from '../formatters/MarkdownFormatter.js'; +import * as Color from '../formatters/ColorFormatter.js'; + +/** + * Group timeline items by day + */ +export function groupTimelineByDay(timeline: TimelineItem[]): Map { + const itemsByDay = new Map(); + + for (const item of timeline) { + const itemDate = item.type === 'observation' ? item.data.created_at : item.data.displayTime; + const day = formatDate(itemDate); + if (!itemsByDay.has(day)) { + itemsByDay.set(day, []); + } + itemsByDay.get(day)!.push(item); + } + + // Sort days chronologically + const sortedEntries = Array.from(itemsByDay.entries()).sort((a, b) => { + const aDate = new Date(a[0]).getTime(); + const bDate = new Date(b[0]).getTime(); + return aDate - bDate; + }); + + return new Map(sortedEntries); +} + +/** + * Get detail field content for full observation display + */ +function getDetailField(obs: Observation, config: ContextConfig): string | null { + if (config.fullObservationField === 'narrative') { + return obs.narrative; + } + return obs.facts ? parseJsonArray(obs.facts).join('\n') : null; +} + +/** + * Render a single day's timeline items + */ +export function renderDayTimeline( + day: string, + dayItems: TimelineItem[], + fullObservationIds: Set, + config: ContextConfig, + cwd: string, + useColors: boolean +): string[] { + const output: string[] = []; + + // Day header + if (useColors) { + output.push(...Color.renderColorDayHeader(day)); + } else { + output.push(...Markdown.renderMarkdownDayHeader(day)); + } + + let currentFile: string | null = null; + let lastTime = ''; + let tableOpen = false; + + for (const item of dayItems) { + if (item.type === 'summary') { + // Close any open table before summary + if (tableOpen) { + output.push(''); + tableOpen = false; + currentFile = null; + lastTime = ''; + } + + const summary = item.data as SummaryTimelineItem; + const formattedTime = formatDateTime(summary.displayTime); + + if (useColors) { + output.push(...Color.renderColorSummaryItem(summary, formattedTime)); + } else { + output.push(...Markdown.renderMarkdownSummaryItem(summary, formattedTime)); + } + } else { + const obs = item.data as Observation; + const file = extractFirstFile(obs.files_modified, cwd); + const time = formatTime(obs.created_at); + const showTime = time !== lastTime; + const timeDisplay = showTime ? time : ''; + lastTime = time; + + const shouldShowFull = fullObservationIds.has(obs.id); + + // Check if we need a new file section + if (file !== currentFile) { + if (tableOpen) { + output.push(''); + } + + if (useColors) { + output.push(...Color.renderColorFileHeader(file)); + } else { + output.push(...Markdown.renderMarkdownFileHeader(file)); + } + + currentFile = file; + tableOpen = true; + } + + if (shouldShowFull) { + const detailField = getDetailField(obs, config); + + if (useColors) { + output.push(...Color.renderColorFullObservation(obs, time, showTime, detailField, config)); + } else { + // Close table for full observation in markdown mode + if (tableOpen && !useColors) { + output.push(''); + tableOpen = false; + } + output.push(...Markdown.renderMarkdownFullObservation(obs, timeDisplay, detailField, config)); + currentFile = null; // Reset to trigger new table header if needed + } + } else { + if (useColors) { + output.push(Color.renderColorTableRow(obs, time, showTime, config)); + } else { + output.push(Markdown.renderMarkdownTableRow(obs, timeDisplay, config)); + } + } + } + } + + // Close any remaining open table + if (tableOpen) { + output.push(''); + } + + return output; +} + +/** + * Render the complete timeline + */ +export function renderTimeline( + timeline: TimelineItem[], + fullObservationIds: Set, + config: ContextConfig, + cwd: string, + useColors: boolean +): string[] { + const output: string[] = []; + const itemsByDay = groupTimelineByDay(timeline); + + for (const [day, dayItems] of itemsByDay) { + output.push(...renderDayTimeline(day, dayItems, fullObservationIds, config, cwd, useColors)); + } + + return output; +} diff --git a/src/services/context/types.ts b/src/services/context/types.ts new file mode 100644 index 00000000..5b785915 --- /dev/null +++ b/src/services/context/types.ts @@ -0,0 +1,131 @@ +/** + * Context Types - Shared types for context generation module + */ + +/** + * Input parameters for context generation + */ +export interface ContextInput { + session_id?: string; + transcript_path?: string; + cwd?: string; + hook_event_name?: string; + source?: "startup" | "resume" | "clear" | "compact"; + [key: string]: any; +} + +/** + * Configuration for context generation + */ +export interface ContextConfig { + // Display counts + totalObservationCount: number; + fullObservationCount: number; + sessionCount: number; + + // Token display toggles + showReadTokens: boolean; + showWorkTokens: boolean; + showSavingsAmount: boolean; + showSavingsPercent: boolean; + + // Filters + observationTypes: Set; + observationConcepts: Set; + + // Display options + fullObservationField: 'narrative' | 'facts'; + showLastSummary: boolean; + showLastMessage: boolean; +} + +/** + * Observation record from database + */ +export interface Observation { + id: number; + memory_session_id: string; + type: string; + title: string | null; + subtitle: string | null; + narrative: string | null; + facts: string | null; + concepts: string | null; + files_read: string | null; + files_modified: string | null; + discovery_tokens: number | null; + created_at: string; + created_at_epoch: number; +} + +/** + * Session summary record from database + */ +export interface SessionSummary { + id: number; + memory_session_id: string; + request: string | null; + investigated: string | null; + learned: string | null; + completed: string | null; + next_steps: string | null; + created_at: string; + created_at_epoch: number; +} + +/** + * Summary with timeline display info + */ +export interface SummaryTimelineItem extends SessionSummary { + displayEpoch: number; + displayTime: string; + shouldShowLink: boolean; +} + +/** + * Timeline item - either observation or summary + */ +export type TimelineItem = + | { type: 'observation'; data: Observation } + | { type: 'summary'; data: SummaryTimelineItem }; + +/** + * Token economics data + */ +export interface TokenEconomics { + totalObservations: number; + totalReadTokens: number; + totalDiscoveryTokens: number; + savings: number; + savingsPercent: number; +} + +/** + * Prior messages from transcript + */ +export interface PriorMessages { + userMessage: string; + assistantMessage: string; +} + +/** + * ANSI color codes for terminal output + */ +export const colors = { + reset: '\x1b[0m', + bright: '\x1b[1m', + dim: '\x1b[2m', + cyan: '\x1b[36m', + green: '\x1b[32m', + yellow: '\x1b[33m', + blue: '\x1b[34m', + magenta: '\x1b[35m', + gray: '\x1b[90m', + red: '\x1b[31m', +}; + +/** + * Configuration constants + */ +export const CHARS_PER_TOKEN_ESTIMATE = 4; +export const SUMMARY_LOOKAHEAD = 1; diff --git a/src/services/infrastructure/GracefulShutdown.ts b/src/services/infrastructure/GracefulShutdown.ts new file mode 100644 index 00000000..35226d14 --- /dev/null +++ b/src/services/infrastructure/GracefulShutdown.ts @@ -0,0 +1,115 @@ +/** + * GracefulShutdown - Cleanup utilities for graceful exit + * + * Extracted from worker-service.ts to provide centralized shutdown coordination. + * Handles: + * - HTTP server closure (with Windows-specific delays) + * - Session manager shutdown coordination + * - Child process cleanup (Windows zombie port fix) + */ + +import http from 'http'; +import { logger } from '../../utils/logger.js'; +import { + getChildProcesses, + forceKillProcess, + waitForProcessesExit, + removePidFile +} from './ProcessManager.js'; + +export interface ShutdownableService { + shutdownAll(): Promise; +} + +export interface CloseableClient { + close(): Promise; +} + +export interface CloseableDatabase { + close(): Promise; +} + +/** + * Configuration for graceful shutdown + */ +export interface GracefulShutdownConfig { + server: http.Server | null; + sessionManager: ShutdownableService; + mcpClient?: CloseableClient; + dbManager?: CloseableDatabase; +} + +/** + * Perform graceful shutdown of all services + * + * IMPORTANT: On Windows, we must kill all child processes before exiting + * to prevent zombie ports. The socket handle can be inherited by children, + * and if not properly closed, the port stays bound after process death. + */ +export async function performGracefulShutdown(config: GracefulShutdownConfig): Promise { + logger.info('SYSTEM', 'Shutdown initiated'); + + // Clean up PID file on shutdown + removePidFile(); + + // STEP 1: Enumerate all child processes BEFORE we start closing things + const childPids = await getChildProcesses(process.pid); + logger.info('SYSTEM', 'Found child processes', { count: childPids.length, pids: childPids }); + + // STEP 2: Close HTTP server first + if (config.server) { + await closeHttpServer(config.server); + logger.info('SYSTEM', 'HTTP server closed'); + } + + // STEP 3: Shutdown active sessions + await config.sessionManager.shutdownAll(); + + // STEP 4: Close MCP client connection (signals child to exit gracefully) + if (config.mcpClient) { + await config.mcpClient.close(); + logger.info('SYSTEM', 'MCP client closed'); + } + + // STEP 5: Close database connection (includes ChromaSync cleanup) + if (config.dbManager) { + await config.dbManager.close(); + } + + // STEP 6: Force kill any remaining child processes (Windows zombie port fix) + if (childPids.length > 0) { + logger.info('SYSTEM', 'Force killing remaining children'); + for (const pid of childPids) { + await forceKillProcess(pid); + } + // Wait for children to fully exit + await waitForProcessesExit(childPids, 5000); + } + + logger.info('SYSTEM', 'Worker shutdown complete'); +} + +/** + * Close HTTP server with Windows-specific delays + * Windows needs extra time to release sockets properly + */ +async function closeHttpServer(server: http.Server): Promise { + // Close all active connections + server.closeAllConnections(); + + // Give Windows time to close connections before closing server (prevents zombie ports) + if (process.platform === 'win32') { + await new Promise(r => setTimeout(r, 500)); + } + + // Close the server + await new Promise((resolve, reject) => { + server.close(err => err ? reject(err) : resolve()); + }); + + // Extra delay on Windows to ensure port is fully released + if (process.platform === 'win32') { + await new Promise(r => setTimeout(r, 500)); + logger.info('SYSTEM', 'Waited for Windows port cleanup'); + } +} diff --git a/src/services/infrastructure/HealthMonitor.ts b/src/services/infrastructure/HealthMonitor.ts new file mode 100644 index 00000000..adf53b0c --- /dev/null +++ b/src/services/infrastructure/HealthMonitor.ts @@ -0,0 +1,143 @@ +/** + * HealthMonitor - Port monitoring, health checks, and version checking + * + * Extracted from worker-service.ts monolith to provide centralized health monitoring. + * Handles: + * - Port availability checking + * - Worker health/readiness polling + * - Version mismatch detection (critical for plugin updates) + * - HTTP-based shutdown requests + */ + +import path from 'path'; +import { homedir } from 'os'; +import { readFileSync } from 'fs'; +import { logger } from '../../utils/logger.js'; + +/** + * Check if a port is in use by querying the health endpoint + */ +export async function isPortInUse(port: number): Promise { + try { + // Note: Removed AbortSignal.timeout to avoid Windows Bun cleanup issue (libuv assertion) + const response = await fetch(`http://127.0.0.1:${port}/api/health`); + return response.ok; + } catch (error) { + // [ANTI-PATTERN IGNORED]: Health check polls every 500ms, logging would flood + return false; + } +} + +/** + * Wait for the worker to become fully ready (passes readiness check) + * @param port Worker port to check + * @param timeoutMs Maximum time to wait in milliseconds + * @returns true if worker became ready, false if timeout + */ +export async function waitForHealth(port: number, timeoutMs: number = 30000): Promise { + const start = Date.now(); + while (Date.now() - start < timeoutMs) { + try { + // Note: Removed AbortSignal.timeout to avoid Windows Bun cleanup issue (libuv assertion) + const response = await fetch(`http://127.0.0.1:${port}/api/readiness`); + if (response.ok) return true; + } catch (error) { + // [ANTI-PATTERN IGNORED]: Retry loop - expected failures during startup, will retry + logger.debug('SYSTEM', 'Service not ready yet, will retry', { port }, error as Error); + } + await new Promise(r => setTimeout(r, 500)); + } + return false; +} + +/** + * Wait for a port to become free (no longer responding to health checks) + * Used after shutdown to confirm the port is available for restart + */ +export async function waitForPortFree(port: number, timeoutMs: number = 10000): Promise { + const start = Date.now(); + while (Date.now() - start < timeoutMs) { + if (!(await isPortInUse(port))) return true; + await new Promise(r => setTimeout(r, 500)); + } + return false; +} + +/** + * Send HTTP shutdown request to a running worker + * @param port Worker port + * @returns true if shutdown request was acknowledged, false otherwise + */ +export async function httpShutdown(port: number): Promise { + try { + // Note: Removed AbortSignal.timeout to avoid Windows Bun cleanup issue (libuv assertion) + const response = await fetch(`http://127.0.0.1:${port}/api/admin/shutdown`, { + method: 'POST' + }); + if (!response.ok) { + logger.warn('SYSTEM', 'Shutdown request returned error', { port, status: response.status }); + return false; + } + return true; + } catch (error) { + // Connection refused is expected if worker already stopped + if (error instanceof Error && error.message?.includes('ECONNREFUSED')) { + logger.debug('SYSTEM', 'Worker already stopped', { port }, error); + return false; + } + // Unexpected error - log full details + logger.warn('SYSTEM', 'Shutdown request failed unexpectedly', { port }, error as Error); + return false; + } +} + +/** + * Get the plugin version from the installed marketplace package.json + * This is the "expected" version that should be running + */ +export function getInstalledPluginVersion(): string { + const marketplaceRoot = path.join(homedir(), '.claude', 'plugins', 'marketplaces', 'thedotmack'); + const packageJsonPath = path.join(marketplaceRoot, 'package.json'); + const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8')); + return packageJson.version; +} + +/** + * Get the running worker's version via API + * This is the "actual" version currently running + */ +export async function getRunningWorkerVersion(port: number): Promise { + try { + const response = await fetch(`http://127.0.0.1:${port}/api/version`); + if (!response.ok) return null; + const data = await response.json() as { version: string }; + return data.version; + } catch { + // Expected: worker not running or version endpoint unavailable + logger.debug('SYSTEM', 'Could not fetch worker version', { port }); + return null; + } +} + +export interface VersionCheckResult { + matches: boolean; + pluginVersion: string; + workerVersion: string | null; +} + +/** + * Check if worker version matches plugin version + * Critical for detecting when plugin is updated but worker is still running old code + * Returns true if versions match or if we can't determine (assume match for graceful degradation) + */ +export async function checkVersionMatch(port: number): Promise { + const pluginVersion = getInstalledPluginVersion(); + const workerVersion = await getRunningWorkerVersion(port); + + // If we can't get worker version, assume it matches (graceful degradation) + if (!workerVersion) { + return { matches: true, pluginVersion, workerVersion }; + } + + return { matches: pluginVersion === workerVersion, pluginVersion, workerVersion }; +} diff --git a/src/services/infrastructure/ProcessManager.ts b/src/services/infrastructure/ProcessManager.ts new file mode 100644 index 00000000..571f7c78 --- /dev/null +++ b/src/services/infrastructure/ProcessManager.ts @@ -0,0 +1,306 @@ +/** + * ProcessManager - PID files, signal handlers, and child process lifecycle management + * + * Extracted from worker-service.ts monolith to provide centralized process management. + * Handles: + * - PID file management for daemon coordination + * - Signal handler registration for graceful shutdown + * - Child process enumeration and cleanup (especially for Windows zombie port fix) + */ + +import path from 'path'; +import { homedir } from 'os'; +import { existsSync, writeFileSync, readFileSync, unlinkSync, mkdirSync } from 'fs'; +import { exec, execSync, spawn } from 'child_process'; +import { promisify } from 'util'; +import { logger } from '../../utils/logger.js'; + +const execAsync = promisify(exec); + +// Standard paths for PID file management +const DATA_DIR = path.join(homedir(), '.claude-mem'); +const PID_FILE = path.join(DATA_DIR, 'worker.pid'); + +export interface PidInfo { + pid: number; + port: number; + startedAt: string; +} + +/** + * Write PID info to the standard PID file location + */ +export function writePidFile(info: PidInfo): void { + mkdirSync(DATA_DIR, { recursive: true }); + writeFileSync(PID_FILE, JSON.stringify(info, null, 2)); +} + +/** + * Read PID info from the standard PID file location + * Returns null if file doesn't exist or is corrupted + */ +export function readPidFile(): PidInfo | null { + if (!existsSync(PID_FILE)) return null; + + try { + return JSON.parse(readFileSync(PID_FILE, 'utf-8')); + } catch (error) { + logger.warn('SYSTEM', 'Failed to parse PID file', { path: PID_FILE }, error as Error); + return null; + } +} + +/** + * Remove the PID file (called during shutdown) + */ +export function removePidFile(): void { + if (!existsSync(PID_FILE)) return; + + try { + unlinkSync(PID_FILE); + } catch (error) { + // [ANTI-PATTERN IGNORED]: Cleanup function - PID file removal failure is non-critical + logger.warn('SYSTEM', 'Failed to remove PID file', { path: PID_FILE }, error as Error); + } +} + +/** + * Get platform-adjusted timeout (Windows socket cleanup is slower) + */ +export function getPlatformTimeout(baseMs: number): number { + const WINDOWS_MULTIPLIER = 2.0; + return process.platform === 'win32' ? Math.round(baseMs * WINDOWS_MULTIPLIER) : baseMs; +} + +/** + * Get all child process PIDs (Windows-specific) + * Used for cleanup to prevent zombie ports when parent exits + */ +export async function getChildProcesses(parentPid: number): Promise { + if (process.platform !== 'win32') { + return []; + } + + // SECURITY: Validate PID is a positive integer to prevent command injection + if (!Number.isInteger(parentPid) || parentPid <= 0) { + logger.warn('SYSTEM', 'Invalid parent PID for child process enumeration', { parentPid }); + return []; + } + + try { + const cmd = `powershell -Command "Get-CimInstance Win32_Process | Where-Object { $_.ParentProcessId -eq ${parentPid} } | Select-Object -ExpandProperty ProcessId"`; + const { stdout } = await execAsync(cmd, { timeout: 60000 }); + return stdout + .trim() + .split('\n') + .map(s => parseInt(s.trim(), 10)) + .filter(n => !isNaN(n) && Number.isInteger(n) && n > 0); + } catch (error) { + // Shutdown cleanup - failure is non-critical, continue without child process cleanup + logger.warn('SYSTEM', 'Failed to enumerate child processes', { parentPid }, error as Error); + return []; + } +} + +/** + * Force kill a process by PID + * Windows: uses taskkill /F /T to kill process tree + * Unix: uses SIGKILL + */ +export async function forceKillProcess(pid: number): Promise { + // SECURITY: Validate PID is a positive integer to prevent command injection + if (!Number.isInteger(pid) || pid <= 0) { + logger.warn('SYSTEM', 'Invalid PID for force kill', { pid }); + return; + } + + try { + if (process.platform === 'win32') { + // /T kills entire process tree, /F forces termination + await execAsync(`taskkill /PID ${pid} /T /F`, { timeout: 60000 }); + } else { + process.kill(pid, 'SIGKILL'); + } + logger.info('SYSTEM', 'Killed process', { pid }); + } catch (error) { + // [ANTI-PATTERN IGNORED]: Shutdown cleanup - process already exited, continue + logger.debug('SYSTEM', 'Process already exited during force kill', { pid }, error as Error); + } +} + +/** + * Wait for processes to fully exit + */ +export async function waitForProcessesExit(pids: number[], timeoutMs: number): Promise { + const start = Date.now(); + + while (Date.now() - start < timeoutMs) { + const stillAlive = pids.filter(pid => { + try { + process.kill(pid, 0); + return true; + } catch (error) { + // [ANTI-PATTERN IGNORED]: Tight loop checking 100s of PIDs every 100ms during cleanup + return false; + } + }); + + if (stillAlive.length === 0) { + logger.info('SYSTEM', 'All child processes exited'); + return; + } + + logger.debug('SYSTEM', 'Waiting for processes to exit', { stillAlive }); + await new Promise(r => setTimeout(r, 100)); + } + + logger.warn('SYSTEM', 'Timeout waiting for child processes to exit'); +} + +/** + * Clean up orphaned chroma-mcp processes from previous worker sessions + * Prevents process accumulation and memory leaks + */ +export async function cleanupOrphanedProcesses(): Promise { + const isWindows = process.platform === 'win32'; + const pids: number[] = []; + + try { + if (isWindows) { + // Windows: Use PowerShell Get-CimInstance to find chroma-mcp processes + const cmd = `powershell -Command "Get-CimInstance Win32_Process | Where-Object { $_.Name -like '*python*' -and $_.CommandLine -like '*chroma-mcp*' } | Select-Object -ExpandProperty ProcessId"`; + const { stdout } = await execAsync(cmd, { timeout: 60000 }); + + if (!stdout.trim()) { + logger.debug('SYSTEM', 'No orphaned chroma-mcp processes found (Windows)'); + return; + } + + const pidStrings = stdout.trim().split('\n'); + for (const pidStr of pidStrings) { + const pid = parseInt(pidStr.trim(), 10); + // SECURITY: Validate PID is positive integer before adding to list + if (!isNaN(pid) && Number.isInteger(pid) && pid > 0) { + pids.push(pid); + } + } + } else { + // Unix: Use ps aux | grep + const { stdout } = await execAsync('ps aux | grep "chroma-mcp" | grep -v grep || true'); + + if (!stdout.trim()) { + logger.debug('SYSTEM', 'No orphaned chroma-mcp processes found (Unix)'); + return; + } + + const lines = stdout.trim().split('\n'); + for (const line of lines) { + const parts = line.trim().split(/\s+/); + if (parts.length > 1) { + const pid = parseInt(parts[1], 10); + // SECURITY: Validate PID is positive integer before adding to list + if (!isNaN(pid) && Number.isInteger(pid) && pid > 0) { + pids.push(pid); + } + } + } + } + } catch (error) { + // Orphan cleanup is non-critical - log and continue + logger.warn('SYSTEM', 'Failed to enumerate orphaned processes', {}, error as Error); + return; + } + + if (pids.length === 0) { + return; + } + + logger.info('SYSTEM', 'Cleaning up orphaned chroma-mcp processes', { + platform: isWindows ? 'Windows' : 'Unix', + count: pids.length, + pids + }); + + // Kill all found processes + if (isWindows) { + for (const pid of pids) { + // SECURITY: Double-check PID validation before using in taskkill command + if (!Number.isInteger(pid) || pid <= 0) { + logger.warn('SYSTEM', 'Skipping invalid PID', { pid }); + continue; + } + try { + execSync(`taskkill /PID ${pid} /T /F`, { timeout: 60000, stdio: 'ignore' }); + } catch (error) { + // [ANTI-PATTERN IGNORED]: Cleanup loop - process may have exited, continue to next PID + logger.debug('SYSTEM', 'Failed to kill process, may have already exited', { pid }, error as Error); + } + } + } else { + for (const pid of pids) { + try { + process.kill(pid, 'SIGKILL'); + } catch (error) { + // [ANTI-PATTERN IGNORED]: Cleanup loop - process may have exited, continue to next PID + logger.debug('SYSTEM', 'Process already exited', { pid }, error as Error); + } + } + } + + logger.info('SYSTEM', 'Orphaned processes cleaned up', { count: pids.length }); +} + +/** + * Spawn a detached daemon process + * Returns the child PID or undefined if spawn failed + */ +export function spawnDaemon( + scriptPath: string, + port: number, + extraEnv: Record = {} +): number | undefined { + const child = spawn(process.execPath, [scriptPath, '--daemon'], { + detached: true, + stdio: 'ignore', + windowsHide: true, + env: { + ...process.env, + CLAUDE_MEM_WORKER_PORT: String(port), + ...extraEnv + } + }); + + if (child.pid === undefined) { + return undefined; + } + + child.unref(); + return child.pid; +} + +/** + * Create signal handler factory for graceful shutdown + * Returns a handler function that can be passed to process.on('SIGTERM') etc. + */ +export function createSignalHandler( + shutdownFn: () => Promise, + isShuttingDownRef: { value: boolean } +): (signal: string) => Promise { + return async (signal: string) => { + if (isShuttingDownRef.value) { + logger.warn('SYSTEM', `Received ${signal} but shutdown already in progress`); + return; + } + isShuttingDownRef.value = true; + + logger.info('SYSTEM', `Received ${signal}, shutting down...`); + try { + await shutdownFn(); + process.exit(0); + } catch (error) { + // Top-level signal handler - log any shutdown error and exit + logger.error('SYSTEM', 'Error during shutdown', {}, error as Error); + process.exit(1); + } + }; +} diff --git a/src/services/infrastructure/index.ts b/src/services/infrastructure/index.ts new file mode 100644 index 00000000..0a11b2fb --- /dev/null +++ b/src/services/infrastructure/index.ts @@ -0,0 +1,7 @@ +/** + * Infrastructure module - Process management, health monitoring, and shutdown utilities + */ + +export * from './ProcessManager.js'; +export * from './HealthMonitor.js'; +export * from './GracefulShutdown.js'; diff --git a/src/services/integrations/CursorHooksInstaller.ts b/src/services/integrations/CursorHooksInstaller.ts new file mode 100644 index 00000000..3c3e7569 --- /dev/null +++ b/src/services/integrations/CursorHooksInstaller.ts @@ -0,0 +1,668 @@ +/** + * CursorHooksInstaller - Cursor IDE integration for claude-mem + * + * Extracted from worker-service.ts monolith to provide centralized Cursor integration. + * Handles: + * - Cursor hooks installation/uninstallation + * - MCP server configuration + * - Context file generation + * - Project registry management + */ + +import path from 'path'; +import { homedir } from 'os'; +import { existsSync, readFileSync, writeFileSync, unlinkSync, mkdirSync } from 'fs'; +import { exec } from 'child_process'; +import { promisify } from 'util'; +import { logger } from '../../utils/logger.js'; +import { getWorkerPort } from '../../shared/worker-utils.js'; +import { + readCursorRegistry as readCursorRegistryFromFile, + writeCursorRegistry as writeCursorRegistryToFile, + writeContextFile, + type CursorProjectRegistry +} from '../../utils/cursor-utils.js'; +import type { CursorInstallTarget, CursorHooksJson, CursorMcpConfig, Platform } from './types.js'; + +const execAsync = promisify(exec); + +// Standard paths +const DATA_DIR = path.join(homedir(), '.claude-mem'); +const CURSOR_REGISTRY_FILE = path.join(DATA_DIR, 'cursor-projects.json'); + +// ============================================================================ +// Platform Detection +// ============================================================================ + +/** + * Detect platform for script selection + */ +export function detectPlatform(): Platform { + return process.platform === 'win32' ? 'windows' : 'unix'; +} + +/** + * Get script extension based on platform + */ +export function getScriptExtension(): string { + return detectPlatform() === 'windows' ? '.ps1' : '.sh'; +} + +// ============================================================================ +// Project Registry +// ============================================================================ + +/** + * Read the Cursor project registry + */ +export function readCursorRegistry(): CursorProjectRegistry { + return readCursorRegistryFromFile(CURSOR_REGISTRY_FILE); +} + +/** + * Write the Cursor project registry + */ +export function writeCursorRegistry(registry: CursorProjectRegistry): void { + writeCursorRegistryToFile(CURSOR_REGISTRY_FILE, registry); +} + +/** + * Register a project for auto-context updates + */ +export function registerCursorProject(projectName: string, workspacePath: string): void { + const registry = readCursorRegistry(); + registry[projectName] = { + workspacePath, + installedAt: new Date().toISOString() + }; + writeCursorRegistry(registry); + logger.info('CURSOR', 'Registered project for auto-context updates', { projectName, workspacePath }); +} + +/** + * Unregister a project from auto-context updates + */ +export function unregisterCursorProject(projectName: string): void { + const registry = readCursorRegistry(); + if (registry[projectName]) { + delete registry[projectName]; + writeCursorRegistry(registry); + logger.info('CURSOR', 'Unregistered project', { projectName }); + } +} + +/** + * Update Cursor context files for all registered projects matching this project name. + * Called by SDK agents after saving a summary. + */ +export async function updateCursorContextForProject(projectName: string, port: number): Promise { + const registry = readCursorRegistry(); + const entry = registry[projectName]; + + if (!entry) return; // Project doesn't have Cursor hooks installed + + try { + // Fetch fresh context from worker + const response = await fetch( + `http://127.0.0.1:${port}/api/context/inject?project=${encodeURIComponent(projectName)}` + ); + + if (!response.ok) return; + + const context = await response.text(); + if (!context || !context.trim()) return; + + // Write to the project's Cursor rules file using shared utility + writeContextFile(entry.workspacePath, context); + logger.debug('CURSOR', 'Updated context file', { projectName, workspacePath: entry.workspacePath }); + } catch (error) { + // [ANTI-PATTERN IGNORED]: Background context update - failure is non-critical, user workflow continues + logger.warn('CURSOR', 'Failed to update context file', { projectName }, error as Error); + } +} + +// ============================================================================ +// Path Finding +// ============================================================================ + +/** + * Find cursor-hooks directory + * Searches in order: marketplace install, source repo + * Checks for both bash (common.sh) and PowerShell (common.ps1) scripts + */ +export function findCursorHooksDir(): string | null { + const possiblePaths = [ + // Marketplace install location + path.join(homedir(), '.claude', 'plugins', 'marketplaces', 'thedotmack', 'cursor-hooks'), + // Development/source location (relative to built worker-service.cjs in plugin/scripts/) + path.join(path.dirname(__filename), '..', '..', 'cursor-hooks'), + // Alternative dev location + path.join(process.cwd(), 'cursor-hooks'), + ]; + + for (const p of possiblePaths) { + // Check for either bash or PowerShell common script + if (existsSync(path.join(p, 'common.sh')) || existsSync(path.join(p, 'common.ps1'))) { + return p; + } + } + return null; +} + +/** + * Find MCP server script path + * Searches in order: marketplace install, source repo + */ +export function findMcpServerPath(): string | null { + const possiblePaths = [ + // Marketplace install location + path.join(homedir(), '.claude', 'plugins', 'marketplaces', 'thedotmack', 'plugin', 'scripts', 'mcp-server.cjs'), + // Development/source location (relative to built worker-service.cjs in plugin/scripts/) + path.join(path.dirname(__filename), 'mcp-server.cjs'), + // Alternative dev location + path.join(process.cwd(), 'plugin', 'scripts', 'mcp-server.cjs'), + ]; + + for (const p of possiblePaths) { + if (existsSync(p)) { + return p; + } + } + return null; +} + +/** + * Get the target directory for Cursor hooks based on install target + */ +export function getTargetDir(target: CursorInstallTarget): string | null { + switch (target) { + case 'project': + return path.join(process.cwd(), '.cursor'); + case 'user': + return path.join(homedir(), '.cursor'); + case 'enterprise': + if (process.platform === 'darwin') { + return '/Library/Application Support/Cursor'; + } else if (process.platform === 'linux') { + return '/etc/cursor'; + } else if (process.platform === 'win32') { + return path.join(process.env.ProgramData || 'C:\\ProgramData', 'Cursor'); + } + return null; + default: + return null; + } +} + +// ============================================================================ +// MCP Configuration +// ============================================================================ + +/** + * Configure MCP server in Cursor's mcp.json + * @param target 'project' or 'user' + * @returns 0 on success, 1 on failure + */ +export function configureCursorMcp(target: CursorInstallTarget): number { + const mcpServerPath = findMcpServerPath(); + + if (!mcpServerPath) { + console.error('Could not find MCP server script'); + console.error(' Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/mcp-server.cjs'); + return 1; + } + + const targetDir = getTargetDir(target); + if (!targetDir) { + console.error(`Invalid target: ${target}. Use: project or user`); + return 1; + } + + const mcpJsonPath = path.join(targetDir, 'mcp.json'); + + try { + // Create directory if needed + mkdirSync(targetDir, { recursive: true }); + + // Load existing config or create new + let config: CursorMcpConfig = { mcpServers: {} }; + if (existsSync(mcpJsonPath)) { + try { + config = JSON.parse(readFileSync(mcpJsonPath, 'utf-8')); + if (!config.mcpServers) { + config.mcpServers = {}; + } + } catch (error) { + // [ANTI-PATTERN IGNORED]: Fallback behavior - corrupt config, continue with empty + logger.warn('SYSTEM', 'Corrupt mcp.json, creating new config', { path: mcpJsonPath }, error as Error); + config = { mcpServers: {} }; + } + } + + // Add claude-mem MCP server + config.mcpServers['claude-mem'] = { + command: 'node', + args: [mcpServerPath] + }; + + writeFileSync(mcpJsonPath, JSON.stringify(config, null, 2)); + console.log(` Configured MCP server in ${target === 'user' ? '~/.cursor' : '.cursor'}/mcp.json`); + console.log(` Server path: ${mcpServerPath}`); + + return 0; + } catch (error) { + console.error(`Failed to configure MCP: ${(error as Error).message}`); + return 1; + } +} + +// ============================================================================ +// Hook Installation +// ============================================================================ + +/** + * Install Cursor hooks + */ +export async function installCursorHooks(sourceDir: string, target: CursorInstallTarget): Promise { + const platform = detectPlatform(); + const scriptExt = getScriptExtension(); + + console.log(`\nInstalling Claude-Mem Cursor hooks (${target} level, ${platform})...\n`); + + const targetDir = getTargetDir(target); + if (!targetDir) { + console.error(`Invalid target: ${target}. Use: project, user, or enterprise`); + return 1; + } + + const hooksDir = path.join(targetDir, 'hooks'); + const workspaceRoot = process.cwd(); + + try { + // Create directories + mkdirSync(hooksDir, { recursive: true }); + + // Determine which scripts to copy based on platform + const commonScript = platform === 'windows' ? 'common.ps1' : 'common.sh'; + const hookScripts = [ + `session-init${scriptExt}`, + `context-inject${scriptExt}`, + `save-observation${scriptExt}`, + `save-file-edit${scriptExt}`, + `session-summary${scriptExt}` + ]; + + const scripts = [commonScript, ...hookScripts]; + + for (const script of scripts) { + const srcPath = path.join(sourceDir, script); + const dstPath = path.join(hooksDir, script); + + if (existsSync(srcPath)) { + const content = readFileSync(srcPath, 'utf-8'); + // Unix scripts need execute permission; Windows PowerShell doesn't need it + const mode = platform === 'windows' ? undefined : 0o755; + writeFileSync(dstPath, content, mode ? { mode } : undefined); + console.log(` Copied ${script}`); + } else { + console.warn(` ${script} not found in source`); + } + } + + // Generate hooks.json with correct paths and platform-appropriate commands + const hooksJsonPath = path.join(targetDir, 'hooks.json'); + const hookPrefix = target === 'project' ? './.cursor/hooks/' : `${hooksDir}/`; + + // For PowerShell, we need to invoke via powershell.exe + const makeHookCommand = (scriptName: string) => { + const scriptPath = `${hookPrefix}${scriptName}${scriptExt}`; + if (platform === 'windows') { + // PowerShell execution: use -ExecutionPolicy Bypass to ensure scripts run + return `powershell.exe -ExecutionPolicy Bypass -File "${scriptPath}"`; + } + return scriptPath; + }; + + const hooksJson: CursorHooksJson = { + version: 1, + hooks: { + beforeSubmitPrompt: [ + { command: makeHookCommand('session-init') }, + { command: makeHookCommand('context-inject') } + ], + afterMCPExecution: [ + { command: makeHookCommand('save-observation') } + ], + afterShellExecution: [ + { command: makeHookCommand('save-observation') } + ], + afterFileEdit: [ + { command: makeHookCommand('save-file-edit') } + ], + stop: [ + { command: makeHookCommand('session-summary') } + ] + } + }; + + writeFileSync(hooksJsonPath, JSON.stringify(hooksJson, null, 2)); + console.log(` Created hooks.json (${platform} mode)`); + + // For project-level: create initial context file + if (target === 'project') { + await setupProjectContext(targetDir, workspaceRoot); + } + + console.log(` +Installation complete! + +Hooks installed to: ${targetDir}/hooks.json +Scripts installed to: ${hooksDir} + +Next steps: + 1. Start claude-mem worker: claude-mem start + 2. Restart Cursor to load the hooks + 3. Check Cursor Settings → Hooks tab to verify + +Context Injection: + Context from past sessions is stored in .cursor/rules/claude-mem-context.mdc + and automatically included in every chat. It updates after each session ends. +`); + + return 0; + } catch (error) { + console.error(`\nInstallation failed: ${(error as Error).message}`); + if (target === 'enterprise') { + console.error(' Tip: Enterprise installation may require sudo/admin privileges'); + } + return 1; + } +} + +/** + * Setup initial context file for project-level installation + */ +async function setupProjectContext(targetDir: string, workspaceRoot: string): Promise { + const rulesDir = path.join(targetDir, 'rules'); + mkdirSync(rulesDir, { recursive: true }); + + const port = getWorkerPort(); + const projectName = path.basename(workspaceRoot); + let contextGenerated = false; + + console.log(` Generating initial context...`); + + try { + // Check if worker is running + const healthResponse = await fetch(`http://127.0.0.1:${port}/api/readiness`); + if (healthResponse.ok) { + // Fetch context + const contextResponse = await fetch( + `http://127.0.0.1:${port}/api/context/inject?project=${encodeURIComponent(projectName)}` + ); + if (contextResponse.ok) { + const context = await contextResponse.text(); + if (context && context.trim()) { + writeContextFile(workspaceRoot, context); + contextGenerated = true; + console.log(` Generated initial context from existing memory`); + } + } + } + } catch (error) { + // [ANTI-PATTERN IGNORED]: Fallback behavior - worker not running, use placeholder + logger.debug('CURSOR', 'Worker not running during install', {}, error as Error); + } + + if (!contextGenerated) { + // Create placeholder context file + const rulesFile = path.join(rulesDir, 'claude-mem-context.mdc'); + const placeholderContent = `--- +alwaysApply: true +description: "Claude-mem context from past sessions (auto-updated)" +--- + +# Memory Context from Past Sessions + +*No context yet. Complete your first session and context will appear here.* + +Use claude-mem's MCP search tools for manual memory queries. +`; + writeFileSync(rulesFile, placeholderContent); + console.log(` Created placeholder context file (will populate after first session)`); + } + + // Register project for automatic context updates after summaries + registerCursorProject(projectName, workspaceRoot); + console.log(` Registered for auto-context updates`); +} + +/** + * Uninstall Cursor hooks + */ +export function uninstallCursorHooks(target: CursorInstallTarget): number { + console.log(`\nUninstalling Claude-Mem Cursor hooks (${target} level)...\n`); + + const targetDir = getTargetDir(target); + if (!targetDir) { + console.error(`Invalid target: ${target}`); + return 1; + } + + try { + const hooksDir = path.join(targetDir, 'hooks'); + const hooksJsonPath = path.join(targetDir, 'hooks.json'); + + // Remove hook scripts for both platforms (in case user switches platforms) + const bashScripts = ['common.sh', 'session-init.sh', 'context-inject.sh', + 'save-observation.sh', 'save-file-edit.sh', 'session-summary.sh']; + const psScripts = ['common.ps1', 'session-init.ps1', 'context-inject.ps1', + 'save-observation.ps1', 'save-file-edit.ps1', 'session-summary.ps1']; + + const allScripts = [...bashScripts, ...psScripts]; + + for (const script of allScripts) { + const scriptPath = path.join(hooksDir, script); + if (existsSync(scriptPath)) { + unlinkSync(scriptPath); + console.log(` Removed ${script}`); + } + } + + // Remove hooks.json + if (existsSync(hooksJsonPath)) { + unlinkSync(hooksJsonPath); + console.log(` Removed hooks.json`); + } + + // Remove context file and unregister if project-level + if (target === 'project') { + const contextFile = path.join(targetDir, 'rules', 'claude-mem-context.mdc'); + if (existsSync(contextFile)) { + unlinkSync(contextFile); + console.log(` Removed context file`); + } + + // Unregister from auto-context updates + const projectName = path.basename(process.cwd()); + unregisterCursorProject(projectName); + console.log(` Unregistered from auto-context updates`); + } + + console.log(`\nUninstallation complete!\n`); + console.log('Restart Cursor to apply changes.'); + + return 0; + } catch (error) { + console.error(`\nUninstallation failed: ${(error as Error).message}`); + return 1; + } +} + +/** + * Check Cursor hooks installation status + */ +export function checkCursorHooksStatus(): number { + console.log('\nClaude-Mem Cursor Hooks Status\n'); + + const locations: Array<{ name: string; dir: string }> = [ + { name: 'Project', dir: path.join(process.cwd(), '.cursor') }, + { name: 'User', dir: path.join(homedir(), '.cursor') }, + ]; + + if (process.platform === 'darwin') { + locations.push({ name: 'Enterprise', dir: '/Library/Application Support/Cursor' }); + } else if (process.platform === 'linux') { + locations.push({ name: 'Enterprise', dir: '/etc/cursor' }); + } + + let anyInstalled = false; + + for (const loc of locations) { + const hooksJson = path.join(loc.dir, 'hooks.json'); + const hooksDir = path.join(loc.dir, 'hooks'); + + if (existsSync(hooksJson)) { + anyInstalled = true; + console.log(`${loc.name}: Installed`); + console.log(` Config: ${hooksJson}`); + + // Detect which platform's scripts are installed + const bashScripts = ['session-init.sh', 'context-inject.sh', 'save-observation.sh']; + const psScripts = ['session-init.ps1', 'context-inject.ps1', 'save-observation.ps1']; + + const hasBash = bashScripts.some(s => existsSync(path.join(hooksDir, s))); + const hasPs = psScripts.some(s => existsSync(path.join(hooksDir, s))); + + if (hasBash && hasPs) { + console.log(` Platform: Both (bash + PowerShell)`); + } else if (hasBash) { + console.log(` Platform: Unix (bash)`); + } else if (hasPs) { + console.log(` Platform: Windows (PowerShell)`); + } else { + console.log(` No hook scripts found`); + } + + // Check for appropriate scripts based on current platform + const platform = detectPlatform(); + const scripts = platform === 'windows' ? psScripts : bashScripts; + const missing = scripts.filter(s => !existsSync(path.join(hooksDir, s))); + + if (missing.length > 0) { + console.log(` Missing ${platform} scripts: ${missing.join(', ')}`); + } else { + console.log(` Scripts: All present for ${platform}`); + } + + // Check for context file (project only) + if (loc.name === 'Project') { + const contextFile = path.join(loc.dir, 'rules', 'claude-mem-context.mdc'); + if (existsSync(contextFile)) { + console.log(` Context: Active`); + } else { + console.log(` Context: Not yet generated (will be created on first prompt)`); + } + } + } else { + console.log(`${loc.name}: Not installed`); + } + console.log(''); + } + + if (!anyInstalled) { + console.log('No hooks installed. Run: claude-mem cursor install\n'); + } + + return 0; +} + +/** + * Detect if Claude Code is available + * Checks for the Claude Code CLI and plugin directory + */ +export async function detectClaudeCode(): Promise { + try { + // Check for Claude Code CLI + const { stdout } = await execAsync('which claude || where claude', { timeout: 5000 }); + if (stdout.trim()) { + return true; + } + } catch (error) { + // [ANTI-PATTERN IGNORED]: Fallback behavior - CLI not found, continue to directory check + logger.debug('SYSTEM', 'Claude CLI not in PATH', {}, error as Error); + } + + // Check for Claude Code plugin directory + const pluginDir = path.join(homedir(), '.claude', 'plugins'); + if (existsSync(pluginDir)) { + return true; + } + + return false; +} + +/** + * Handle cursor subcommand for hooks installation + */ +export async function handleCursorCommand(subcommand: string, args: string[]): Promise { + switch (subcommand) { + case 'install': { + const target = (args[0] || 'project') as CursorInstallTarget; + const cursorHooksDir = findCursorHooksDir(); + + if (!cursorHooksDir) { + console.error('Could not find cursor-hooks directory'); + console.error(' Expected at: ~/.claude/plugins/marketplaces/thedotmack/cursor-hooks/'); + return 1; + } + + return installCursorHooks(cursorHooksDir, target); + } + + case 'uninstall': { + const target = (args[0] || 'project') as CursorInstallTarget; + return uninstallCursorHooks(target); + } + + case 'status': { + return checkCursorHooksStatus(); + } + + case 'setup': { + // Interactive guided setup - handled by main() in worker-service.ts + // This is a placeholder that should not be reached + console.log('Use the main entry point for setup'); + return 0; + } + + default: { + console.log(` +Claude-Mem Cursor Integration + +Usage: claude-mem cursor [options] + +Commands: + setup Interactive guided setup (recommended for first-time users) + + install [target] Install Cursor hooks + target: project (default), user, or enterprise + + uninstall [target] Remove Cursor hooks + target: project (default), user, or enterprise + + status Check installation status + +Examples: + npm run cursor:setup # Interactive wizard (recommended) + npm run cursor:install # Install for current project + claude-mem cursor install user # Install globally for user + claude-mem cursor uninstall # Remove from current project + claude-mem cursor status # Check if hooks are installed + +For more info: https://docs.claude-mem.ai/cursor + `); + return 0; + } + } +} diff --git a/src/services/integrations/index.ts b/src/services/integrations/index.ts new file mode 100644 index 00000000..db0abfa1 --- /dev/null +++ b/src/services/integrations/index.ts @@ -0,0 +1,6 @@ +/** + * Integrations module - IDE integrations (Cursor, etc.) + */ + +export * from './types.js'; +export * from './CursorHooksInstaller.js'; diff --git a/src/services/integrations/types.ts b/src/services/integrations/types.ts new file mode 100644 index 00000000..c979eb63 --- /dev/null +++ b/src/services/integrations/types.ts @@ -0,0 +1,27 @@ +/** + * Integration Types - Shared types for IDE integrations + */ + +export interface CursorMcpConfig { + mcpServers: { + [name: string]: { + command: string; + args?: string[]; + env?: Record; + }; + }; +} + +export type CursorInstallTarget = 'project' | 'user' | 'enterprise'; +export type Platform = 'windows' | 'unix'; + +export interface CursorHooksJson { + version: number; + hooks: { + beforeSubmitPrompt?: Array<{ command: string }>; + afterMCPExecution?: Array<{ command: string }>; + afterShellExecution?: Array<{ command: string }>; + afterFileEdit?: Array<{ command: string }>; + stop?: Array<{ command: string }>; + }; +} diff --git a/src/services/queue/SessionQueueProcessor.ts b/src/services/queue/SessionQueueProcessor.ts index e7062f42..caa12791 100644 --- a/src/services/queue/SessionQueueProcessor.ts +++ b/src/services/queue/SessionQueueProcessor.ts @@ -11,21 +11,22 @@ export class SessionQueueProcessor { /** * Create an async iterator that yields messages as they become available. - * Uses atomic database claiming to prevent race conditions. + * Uses atomic claim-and-delete to prevent duplicates. + * The queue is a pure buffer: claim it, delete it, process in memory. * Waits for 'message' event when queue is empty. */ async *createIterator(sessionDbId: number, signal: AbortSignal): AsyncIterableIterator { while (!signal.aborted) { try { - // 1. Atomically claim next message from DB - const persistentMessage = this.store.claimNextMessage(sessionDbId); + // Atomically claim AND DELETE next message from DB + // Message is now in memory only - no "processing" state tracking needed + const persistentMessage = this.store.claimAndDelete(sessionDbId); if (persistentMessage) { - // Yield the message for processing + // Yield the message for processing (it's already deleted from queue) yield this.toPendingMessageWithId(persistentMessage); } else { - // 2. Queue empty - wait for wake-up event - // We use a promise that resolves on 'message' event or abort + // Queue empty - wait for wake-up event await this.waitForMessage(signal); } } catch (error) { diff --git a/src/services/server/ErrorHandler.ts b/src/services/server/ErrorHandler.ts new file mode 100644 index 00000000..131cf784 --- /dev/null +++ b/src/services/server/ErrorHandler.ts @@ -0,0 +1,102 @@ +/** + * ErrorHandler - Centralized error handling for Express + * + * Provides error handling middleware and utilities for the server. + */ + +import { Request, Response, NextFunction, ErrorRequestHandler } from 'express'; +import { logger } from '../../utils/logger.js'; + +/** + * Standard error response format + */ +export interface ErrorResponse { + error: string; + message: string; + code?: string; + details?: unknown; +} + +/** + * Application error with additional context + */ +export class AppError extends Error { + constructor( + message: string, + public statusCode: number = 500, + public code?: string, + public details?: unknown + ) { + super(message); + this.name = 'AppError'; + } +} + +/** + * Create an error response object + */ +export function createErrorResponse( + error: string, + message: string, + code?: string, + details?: unknown +): ErrorResponse { + const response: ErrorResponse = { error, message }; + if (code) response.code = code; + if (details) response.details = details; + return response; +} + +/** + * Global error handler middleware + * Should be registered last in the middleware chain + */ +export const errorHandler: ErrorRequestHandler = ( + err: Error | AppError, + req: Request, + res: Response, + _next: NextFunction +): void => { + // Determine status code + const statusCode = err instanceof AppError ? err.statusCode : 500; + + // Log error + logger.error('HTTP', `Error handling ${req.method} ${req.path}`, { + statusCode, + error: err.message, + code: err instanceof AppError ? err.code : undefined + }, err); + + // Build response + const response = createErrorResponse( + err.name || 'Error', + err.message, + err instanceof AppError ? err.code : undefined, + err instanceof AppError ? err.details : undefined + ); + + // Send response (don't call next, as we've handled the error) + res.status(statusCode).json(response); +}; + +/** + * Not found handler - for routes that don't exist + */ +export function notFoundHandler(req: Request, res: Response): void { + res.status(404).json(createErrorResponse( + 'NotFound', + `Cannot ${req.method} ${req.path}` + )); +} + +/** + * Async wrapper to catch errors in async route handlers + * Automatically passes errors to Express error handler + */ +export function asyncHandler( + fn: (req: Request, res: Response, next: NextFunction) => Promise +): (req: Request, res: Response, next: NextFunction) => void { + return (req: Request, res: Response, next: NextFunction): void => { + Promise.resolve(fn(req, res, next)).catch(next); + }; +} diff --git a/src/services/server/Middleware.ts b/src/services/server/Middleware.ts new file mode 100644 index 00000000..f8198b0f --- /dev/null +++ b/src/services/server/Middleware.ts @@ -0,0 +1,14 @@ +/** + * Server Middleware - Re-exports and enhances existing middleware + * + * This module provides a unified interface for server middleware. + * Re-exports from worker/http/middleware.ts to maintain backward compatibility + * while providing a cleaner import path for server setup. + */ + +// Re-export all middleware from the existing location +export { + createMiddleware, + requireLocalhost, + summarizeRequestBody +} from '../worker/http/middleware.js'; diff --git a/src/services/server/Server.ts b/src/services/server/Server.ts new file mode 100644 index 00000000..6dd3e3bf --- /dev/null +++ b/src/services/server/Server.ts @@ -0,0 +1,271 @@ +/** + * Server - Express app setup and route registration + * + * Extracted from worker-service.ts monolith to provide centralized HTTP server management. + * Handles: + * - Express app creation and configuration + * - Middleware registration + * - Route registration (delegates to route handlers) + * - Core system endpoints (health, readiness, version, admin) + */ + +import express, { Request, Response, Application } from 'express'; +import http from 'http'; +import * as fs from 'fs'; +import path from 'path'; +import { logger } from '../../utils/logger.js'; +import { createMiddleware, summarizeRequestBody, requireLocalhost } from './Middleware.js'; +import { errorHandler, notFoundHandler } from './ErrorHandler.js'; + +// Build-time injected version constant (set by esbuild define) +declare const __DEFAULT_PACKAGE_VERSION__: string; +const BUILT_IN_VERSION = typeof __DEFAULT_PACKAGE_VERSION__ !== 'undefined' + ? __DEFAULT_PACKAGE_VERSION__ + : 'development'; + +/** + * Interface for route handlers that can be registered with the server + */ +export interface RouteHandler { + setupRoutes(app: Application): void; +} + +/** + * Options for initializing the server + */ +export interface ServerOptions { + /** Whether initialization is complete (for readiness check) */ + getInitializationComplete: () => boolean; + /** Whether MCP is ready (for health/readiness info) */ + getMcpReady: () => boolean; + /** Shutdown function for admin endpoints */ + onShutdown: () => Promise; + /** Restart function for admin endpoints */ + onRestart: () => Promise; +} + +/** + * Express application and HTTP server wrapper + * Provides centralized setup for middleware and routes + */ +export class Server { + readonly app: Application; + private server: http.Server | null = null; + private readonly options: ServerOptions; + private readonly startTime: number = Date.now(); + + constructor(options: ServerOptions) { + this.options = options; + this.app = express(); + this.setupMiddleware(); + this.setupCoreRoutes(); + } + + /** + * Get the underlying HTTP server + */ + getHttpServer(): http.Server | null { + return this.server; + } + + /** + * Start listening on the specified host and port + */ + async listen(port: number, host: string): Promise { + return new Promise((resolve, reject) => { + this.server = this.app.listen(port, host, () => { + logger.info('SYSTEM', 'HTTP server started', { host, port, pid: process.pid }); + resolve(); + }); + this.server.on('error', reject); + }); + } + + /** + * Close the HTTP server + */ + async close(): Promise { + if (!this.server) return; + + // Close all active connections + this.server.closeAllConnections(); + + // Give Windows time to close connections before closing server + if (process.platform === 'win32') { + await new Promise(r => setTimeout(r, 500)); + } + + // Close the server + await new Promise((resolve, reject) => { + this.server!.close(err => err ? reject(err) : resolve()); + }); + + // Extra delay on Windows to ensure port is fully released + if (process.platform === 'win32') { + await new Promise(r => setTimeout(r, 500)); + } + + this.server = null; + logger.info('SYSTEM', 'HTTP server closed'); + } + + /** + * Register a route handler + */ + registerRoutes(handler: RouteHandler): void { + handler.setupRoutes(this.app); + } + + /** + * Finalize route setup by adding error handlers + * Call this after all routes have been registered + */ + finalizeRoutes(): void { + // 404 handler for unmatched routes + this.app.use(notFoundHandler); + + // Global error handler (must be last) + this.app.use(errorHandler); + } + + /** + * Setup Express middleware + */ + private setupMiddleware(): void { + const middlewares = createMiddleware(summarizeRequestBody); + middlewares.forEach(mw => this.app.use(mw)); + } + + /** + * Setup core system routes (health, readiness, version, admin) + */ + private setupCoreRoutes(): void { + // Test build ID for debugging which build is running + const TEST_BUILD_ID = 'TEST-008-wrapper-ipc'; + + // Health check endpoint - always responds, even during initialization + this.app.get('/api/health', (_req: Request, res: Response) => { + res.status(200).json({ + status: 'ok', + build: TEST_BUILD_ID, + managed: process.env.CLAUDE_MEM_MANAGED === 'true', + hasIpc: typeof process.send === 'function', + platform: process.platform, + pid: process.pid, + initialized: this.options.getInitializationComplete(), + mcpReady: this.options.getMcpReady(), + }); + }); + + // Readiness check endpoint - returns 503 until full initialization completes + this.app.get('/api/readiness', (_req: Request, res: Response) => { + if (this.options.getInitializationComplete()) { + res.status(200).json({ + status: 'ready', + mcpReady: this.options.getMcpReady(), + }); + } else { + res.status(503).json({ + status: 'initializing', + message: 'Worker is still initializing, please retry', + }); + } + }); + + // Version endpoint - returns the worker's built-in version + this.app.get('/api/version', (_req: Request, res: Response) => { + res.status(200).json({ version: BUILT_IN_VERSION }); + }); + + // Instructions endpoint - loads SKILL.md sections on-demand + this.app.get('/api/instructions', async (req: Request, res: Response) => { + const topic = (req.query.topic as string) || 'all'; + const operation = req.query.operation as string | undefined; + + try { + let content: string; + + if (operation) { + const operationPath = path.join(__dirname, '../skills/mem-search/operations', `${operation}.md`); + content = await fs.promises.readFile(operationPath, 'utf-8'); + } else { + const skillPath = path.join(__dirname, '../skills/mem-search/SKILL.md'); + const fullContent = await fs.promises.readFile(skillPath, 'utf-8'); + content = this.extractInstructionSection(fullContent, topic); + } + + res.json({ + content: [{ type: 'text', text: content }] + }); + } catch (error) { + res.status(404).json({ error: 'Instruction not found' }); + } + }); + + // Admin endpoints for process management (localhost-only) + this.app.post('/api/admin/restart', requireLocalhost, async (_req: Request, res: Response) => { + res.json({ status: 'restarting' }); + + // Handle Windows managed mode via IPC + const isWindowsManaged = process.platform === 'win32' && + process.env.CLAUDE_MEM_MANAGED === 'true' && + process.send; + + if (isWindowsManaged) { + logger.info('SYSTEM', 'Sending restart request to wrapper'); + process.send!({ type: 'restart' }); + } else { + // Unix or standalone Windows - handle restart ourselves + setTimeout(async () => { + await this.options.onRestart(); + }, 100); + } + }); + + this.app.post('/api/admin/shutdown', requireLocalhost, async (_req: Request, res: Response) => { + res.json({ status: 'shutting_down' }); + + // Handle Windows managed mode via IPC + const isWindowsManaged = process.platform === 'win32' && + process.env.CLAUDE_MEM_MANAGED === 'true' && + process.send; + + if (isWindowsManaged) { + logger.info('SYSTEM', 'Sending shutdown request to wrapper'); + process.send!({ type: 'shutdown' }); + } else { + // Unix or standalone Windows - handle shutdown ourselves + setTimeout(async () => { + await this.options.onShutdown(); + }, 100); + } + }); + } + + /** + * Extract a specific section from instruction content + */ + private extractInstructionSection(content: string, topic: string): string { + const sections: Record = { + 'workflow': this.extractBetween(content, '## The Workflow', '## Search Parameters'), + 'search_params': this.extractBetween(content, '## Search Parameters', '## Examples'), + 'examples': this.extractBetween(content, '## Examples', '## Why This Workflow'), + 'all': content + }; + + return sections[topic] || sections['all']; + } + + /** + * Extract text between two markers + */ + private extractBetween(content: string, startMarker: string, endMarker: string): string { + const startIdx = content.indexOf(startMarker); + const endIdx = content.indexOf(endMarker); + + if (startIdx === -1) return content; + if (endIdx === -1) return content.substring(startIdx); + + return content.substring(startIdx, endIdx).trim(); + } +} diff --git a/src/services/server/index.ts b/src/services/server/index.ts new file mode 100644 index 00000000..ecea8f3f --- /dev/null +++ b/src/services/server/index.ts @@ -0,0 +1,7 @@ +/** + * Server module - HTTP server, middleware, and error handling + */ + +export * from './Server.js'; +export * from './Middleware.js'; +export * from './ErrorHandler.js'; diff --git a/src/services/sqlite/Database.ts b/src/services/sqlite/Database.ts index 392d8626..2a600e19 100644 --- a/src/services/sqlite/Database.ts +++ b/src/services/sqlite/Database.ts @@ -1,6 +1,7 @@ import { Database } from 'bun:sqlite'; import { DATA_DIR, DB_PATH, ensureDir } from '../../shared/paths.js'; import { logger } from '../../utils/logger.js'; +import { MigrationRunner } from './migrations/runner.js'; // SQLite configuration constants const SQLITE_MMAP_SIZE_BYTES = 256 * 1024 * 1024; // 256MB @@ -14,8 +15,53 @@ export interface Migration { let dbInstance: Database | null = null; +/** + * ClaudeMemDatabase - New entry point for the sqlite module + * + * Replaces SessionStore as the database coordinator. + * Sets up bun:sqlite with optimized settings and runs all migrations. + * + * Usage: + * const db = new ClaudeMemDatabase(); // uses default DB_PATH + * const db = new ClaudeMemDatabase('/path/to/db.sqlite'); + * const db = new ClaudeMemDatabase(':memory:'); // for tests + */ +export class ClaudeMemDatabase { + public db: Database; + + constructor(dbPath: string = DB_PATH) { + // Ensure data directory exists (skip for in-memory databases) + if (dbPath !== ':memory:') { + ensureDir(DATA_DIR); + } + + // Create database connection + this.db = new Database(dbPath, { create: true, readwrite: true }); + + // Apply optimized SQLite settings + this.db.run('PRAGMA journal_mode = WAL'); + this.db.run('PRAGMA synchronous = NORMAL'); + this.db.run('PRAGMA foreign_keys = ON'); + this.db.run('PRAGMA temp_store = memory'); + this.db.run(`PRAGMA mmap_size = ${SQLITE_MMAP_SIZE_BYTES}`); + this.db.run(`PRAGMA cache_size = ${SQLITE_CACHE_SIZE_PAGES}`); + + // Run all migrations + const migrationRunner = new MigrationRunner(this.db); + migrationRunner.runAllMigrations(); + } + + /** + * Close the database connection + */ + close(): void { + this.db.close(); + } +} + /** * SQLite Database singleton with migration support and optimized settings + * @deprecated Use ClaudeMemDatabase instead for new code */ export class DatabaseManager { private static instance: DatabaseManager; @@ -173,4 +219,17 @@ export async function initializeDatabase(): Promise { return await manager.initialize(); } -export { Database }; \ No newline at end of file +// Re-export bun:sqlite Database type +export { Database }; + +// Re-export MigrationRunner for external use +export { MigrationRunner } from './migrations/runner.js'; + +// Re-export all module functions for convenient imports +export * from './Sessions.js'; +export * from './Observations.js'; +export * from './Summaries.js'; +export * from './Prompts.js'; +export * from './Timeline.js'; +export * from './Import.js'; +export * from './transactions.js'; \ No newline at end of file diff --git a/src/services/sqlite/Import.ts b/src/services/sqlite/Import.ts new file mode 100644 index 00000000..48288fb7 --- /dev/null +++ b/src/services/sqlite/Import.ts @@ -0,0 +1,5 @@ +/** + * Import functions for bulk data import with duplicate checking + */ + +export * from './import/bulk.js'; diff --git a/src/services/sqlite/Observations.ts b/src/services/sqlite/Observations.ts new file mode 100644 index 00000000..e2ac00ec --- /dev/null +++ b/src/services/sqlite/Observations.ts @@ -0,0 +1,10 @@ +/** + * Observations module - named re-exports + * Provides all observation-related database operations + */ + +export * from './observations/types.js'; +export * from './observations/store.js'; +export * from './observations/get.js'; +export * from './observations/recent.js'; +export * from './observations/files.js'; diff --git a/src/services/sqlite/PendingMessageStore.ts b/src/services/sqlite/PendingMessageStore.ts index c4c70f9d..a9011889 100644 --- a/src/services/sqlite/PendingMessageStore.ts +++ b/src/services/sqlite/PendingMessageStore.ts @@ -26,17 +26,14 @@ export interface PersistentPendingMessage { /** * PendingMessageStore - Persistent work queue for SDK messages * - * Messages are persisted before processing and marked complete after success. - * This enables recovery from SDK hangs and worker crashes. + * Messages are persisted before processing using a claim-and-delete pattern. + * This simplifies the lifecycle and eliminates duplicate processing bugs. * * Lifecycle: * 1. enqueue() - Message persisted with status 'pending' - * 2. markProcessing() - Status changes to 'processing' when yielded to SDK - * 3. markProcessed() - Status changes to 'processed' after successful SDK response - * 4. markFailed() - Status changes to 'failed' if max retries exceeded + * 2. claimAndDelete() - Atomically claims and deletes message (process in memory) * * Recovery: - * - resetStuckMessages() - Moves 'processing' messages back to 'pending' if stuck * - getSessionsWithPendingMessages() - Find sessions that need recovery on startup */ export class PendingMessageStore { @@ -80,14 +77,13 @@ export class PendingMessageStore { } /** - * Atomically claim the next pending message for processing - * Finds oldest pending -> marks processing -> returns it - * Uses a transaction to prevent race conditions + * Atomically claim and DELETE the next pending message. + * Finds oldest pending -> returns it -> deletes from queue. + * The queue is a pure buffer: claim it, delete it, process in memory. + * Uses a transaction to prevent race conditions. */ - claimNextMessage(sessionDbId: number): PersistentPendingMessage | null { - const now = Date.now(); - - const claimTx = this.db.transaction((sessionId: number, timestamp: number) => { + claimAndDelete(sessionDbId: number): PersistentPendingMessage | null { + const claimTx = this.db.transaction((sessionId: number) => { const peekStmt = this.db.prepare(` SELECT * FROM pending_messages WHERE session_db_id = ? AND status = 'pending' @@ -95,26 +91,16 @@ export class PendingMessageStore { LIMIT 1 `); const msg = peekStmt.get(sessionId) as PersistentPendingMessage | null; - + if (msg) { - const updateStmt = this.db.prepare(` - UPDATE pending_messages - SET status = 'processing', started_processing_at_epoch = ? - WHERE id = ? - `); - updateStmt.run(timestamp, msg.id); - - // Return updated object - return { - ...msg, - status: 'processing', - started_processing_at_epoch: timestamp - } as PersistentPendingMessage; + // Delete immediately - no "processing" state needed + const deleteStmt = this.db.prepare('DELETE FROM pending_messages WHERE id = ?'); + deleteStmt.run(msg.id); } - return null; + return msg; }); - return claimTx(sessionDbId, now) as PersistentPendingMessage | null; + return claimTx(sessionDbId) as PersistentPendingMessage | null; } /** @@ -254,38 +240,7 @@ export class PendingMessageStore { } /** - * Mark message as being processed (status: pending -> processing) - */ - markProcessing(messageId: number): void { - const now = Date.now(); - const stmt = this.db.prepare(` - UPDATE pending_messages - SET status = 'processing', started_processing_at_epoch = ? - WHERE id = ? AND status = 'pending' - `); - stmt.run(now, messageId); - } - - /** - * Mark message as successfully processed (status: processing -> processed) - * Clears tool_input and tool_response to save space (observations are already saved) - */ - markProcessed(messageId: number): void { - const now = Date.now(); - const stmt = this.db.prepare(` - UPDATE pending_messages - SET - status = 'processed', - completed_at_epoch = ?, - tool_input = NULL, - tool_response = NULL - WHERE id = ? AND status = 'processing' - `); - stmt.run(now, messageId); - } - - /** - * Mark message as failed (status: processing -> failed or back to pending for retry) + * Mark message as failed (status: pending -> failed or back to pending for retry) * If retry_count < maxRetries, moves back to 'pending' for retry * Otherwise marks as 'failed' permanently */ @@ -381,28 +336,6 @@ export class PendingMessageStore { return result ? { sessionDbId: result.session_db_id, contentSessionId: result.content_session_id } : null; } - /** - * Cleanup old processed messages (retention policy) - * Keeps the most recent N processed messages, deletes the rest - * @param retentionCount Number of processed messages to keep (default: 100) - * @returns Number of messages deleted - */ - cleanupProcessed(retentionCount: number = 100): number { - const stmt = this.db.prepare(` - DELETE FROM pending_messages - WHERE status = 'processed' - AND id NOT IN ( - SELECT id FROM pending_messages - WHERE status = 'processed' - ORDER BY completed_at_epoch DESC - LIMIT ? - ) - `); - - const result = stmt.run(retentionCount); - return result.changes; - } - /** * Clear all failed messages from the queue * @returns Number of messages deleted diff --git a/src/services/sqlite/Prompts.ts b/src/services/sqlite/Prompts.ts new file mode 100644 index 00000000..ef20d7c2 --- /dev/null +++ b/src/services/sqlite/Prompts.ts @@ -0,0 +1,10 @@ +/** + * User prompts module - named re-exports + * + * Provides all user prompt database operations as standalone functions. + * Each function takes `db: Database` as first parameter. + */ + +export * from './prompts/types.js'; +export * from './prompts/store.js'; +export * from './prompts/get.js'; diff --git a/src/services/sqlite/SessionStore.ts b/src/services/sqlite/SessionStore.ts index 814bb639..a5831b66 100644 --- a/src/services/sqlite/SessionStore.ts +++ b/src/services/sqlite/SessionStore.ts @@ -1324,6 +1324,119 @@ export class SessionStore { } /** + * ATOMIC: Store observations + summary (no message tracking) + * + * Simplified version for use with claim-and-delete queue pattern. + * Messages are deleted from queue immediately on claim, so there's no + * message completion to track. This just stores observations and summary. + * + * @param memorySessionId - SDK memory session ID + * @param project - Project name + * @param observations - Array of observations to store (can be empty) + * @param summary - Optional summary to store + * @param promptNumber - Optional prompt number + * @param discoveryTokens - Discovery tokens count + * @param overrideTimestampEpoch - Optional override timestamp + * @returns Object with observation IDs, optional summary ID, and timestamp + */ + storeObservations( + memorySessionId: string, + project: string, + observations: Array<{ + type: string; + title: string | null; + subtitle: string | null; + facts: string[]; + narrative: string | null; + concepts: string[]; + files_read: string[]; + files_modified: string[]; + }>, + summary: { + request: string; + investigated: string; + learned: string; + completed: string; + next_steps: string; + notes: string | null; + } | null, + promptNumber?: number, + discoveryTokens: number = 0, + overrideTimestampEpoch?: number + ): { observationIds: number[]; summaryId: number | null; createdAtEpoch: number } { + // Use override timestamp if provided + const timestampEpoch = overrideTimestampEpoch ?? Date.now(); + const timestampIso = new Date(timestampEpoch).toISOString(); + + // Create transaction that wraps all operations + const storeTx = this.db.transaction(() => { + const observationIds: number[] = []; + + // 1. Store all observations + const obsStmt = this.db.prepare(` + INSERT INTO observations + (memory_session_id, project, type, title, subtitle, facts, narrative, concepts, + files_read, files_modified, prompt_number, discovery_tokens, created_at, created_at_epoch) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `); + + for (const observation of observations) { + const result = obsStmt.run( + memorySessionId, + project, + observation.type, + observation.title, + observation.subtitle, + JSON.stringify(observation.facts), + observation.narrative, + JSON.stringify(observation.concepts), + JSON.stringify(observation.files_read), + JSON.stringify(observation.files_modified), + promptNumber || null, + discoveryTokens, + timestampIso, + timestampEpoch + ); + observationIds.push(Number(result.lastInsertRowid)); + } + + // 2. Store summary if provided + let summaryId: number | null = null; + if (summary) { + const summaryStmt = this.db.prepare(` + INSERT INTO session_summaries + (memory_session_id, project, request, investigated, learned, completed, + next_steps, notes, prompt_number, discovery_tokens, created_at, created_at_epoch) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `); + + const result = summaryStmt.run( + memorySessionId, + project, + summary.request, + summary.investigated, + summary.learned, + summary.completed, + summary.next_steps, + summary.notes, + promptNumber || null, + discoveryTokens, + timestampIso, + timestampEpoch + ); + summaryId = Number(result.lastInsertRowid); + } + + return { observationIds, summaryId, createdAtEpoch: timestampEpoch }; + }); + + // Execute the transaction and return results + return storeTx(); + } + + /** + * @deprecated Use storeObservations instead. This method is kept for backwards compatibility. + * * ATOMIC: Store observations + summary + mark pending message as processed * * This method wraps observation storage, summary storage, and message completion diff --git a/src/services/sqlite/Sessions.ts b/src/services/sqlite/Sessions.ts new file mode 100644 index 00000000..b9be2f8f --- /dev/null +++ b/src/services/sqlite/Sessions.ts @@ -0,0 +1,11 @@ +/** + * Sessions module - re-exports all session-related functions + * + * Usage: + * import { createSDKSession, getSessionById } from './Sessions.js'; + * const sessionId = createSDKSession(db, contentId, project, prompt); + */ + +export * from './sessions/types.js'; +export * from './sessions/create.js'; +export * from './sessions/get.js'; diff --git a/src/services/sqlite/Summaries.ts b/src/services/sqlite/Summaries.ts new file mode 100644 index 00000000..39b98911 --- /dev/null +++ b/src/services/sqlite/Summaries.ts @@ -0,0 +1,7 @@ +/** + * Summaries module - Named re-exports for summary-related database operations + */ +export * from './summaries/types.js'; +export * from './summaries/store.js'; +export * from './summaries/get.js'; +export * from './summaries/recent.js'; diff --git a/src/services/sqlite/Timeline.ts b/src/services/sqlite/Timeline.ts new file mode 100644 index 00000000..9306fa32 --- /dev/null +++ b/src/services/sqlite/Timeline.ts @@ -0,0 +1,8 @@ +/** + * Timeline module re-exports + * Provides time-based context queries for observations, sessions, and prompts + * + * grep-friendly: Timeline, getTimelineAroundTimestamp, getTimelineAroundObservation, getAllProjects + */ + +export * from './timeline/queries.js'; diff --git a/src/services/sqlite/import/bulk.ts b/src/services/sqlite/import/bulk.ts new file mode 100644 index 00000000..9cb477c7 --- /dev/null +++ b/src/services/sqlite/import/bulk.ts @@ -0,0 +1,236 @@ +/** + * Bulk import functions for importing data with duplicate checking + */ + +import { Database } from 'bun:sqlite'; + +export interface ImportResult { + imported: boolean; + id: number; +} + +/** + * Import SDK session with duplicate checking + * Duplicates are identified by content_session_id + */ +export function importSdkSession( + db: Database, + session: { + content_session_id: string; + memory_session_id: string; + project: string; + user_prompt: string; + started_at: string; + started_at_epoch: number; + completed_at: string | null; + completed_at_epoch: number | null; + status: string; + } +): ImportResult { + // Check if session already exists + const existing = db + .prepare('SELECT id FROM sdk_sessions WHERE content_session_id = ?') + .get(session.content_session_id) as { id: number } | undefined; + + if (existing) { + return { imported: false, id: existing.id }; + } + + const stmt = db.prepare(` + INSERT INTO sdk_sessions ( + content_session_id, memory_session_id, project, user_prompt, + started_at, started_at_epoch, completed_at, completed_at_epoch, status + ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) + `); + + const result = stmt.run( + session.content_session_id, + session.memory_session_id, + session.project, + session.user_prompt, + session.started_at, + session.started_at_epoch, + session.completed_at, + session.completed_at_epoch, + session.status + ); + + return { imported: true, id: result.lastInsertRowid as number }; +} + +/** + * Import session summary with duplicate checking + * Duplicates are identified by memory_session_id + */ +export function importSessionSummary( + db: Database, + summary: { + memory_session_id: string; + project: string; + request: string | null; + investigated: string | null; + learned: string | null; + completed: string | null; + next_steps: string | null; + files_read: string | null; + files_edited: string | null; + notes: string | null; + prompt_number: number | null; + discovery_tokens: number; + created_at: string; + created_at_epoch: number; + } +): ImportResult { + // Check if summary already exists for this session + const existing = db + .prepare('SELECT id FROM session_summaries WHERE memory_session_id = ?') + .get(summary.memory_session_id) as { id: number } | undefined; + + if (existing) { + return { imported: false, id: existing.id }; + } + + const stmt = db.prepare(` + INSERT INTO session_summaries ( + memory_session_id, project, request, investigated, learned, + completed, next_steps, files_read, files_edited, notes, + prompt_number, discovery_tokens, created_at, created_at_epoch + ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `); + + const result = stmt.run( + summary.memory_session_id, + summary.project, + summary.request, + summary.investigated, + summary.learned, + summary.completed, + summary.next_steps, + summary.files_read, + summary.files_edited, + summary.notes, + summary.prompt_number, + summary.discovery_tokens || 0, + summary.created_at, + summary.created_at_epoch + ); + + return { imported: true, id: result.lastInsertRowid as number }; +} + +/** + * Import observation with duplicate checking + * Duplicates are identified by memory_session_id + title + created_at_epoch + */ +export function importObservation( + db: Database, + obs: { + memory_session_id: string; + project: string; + text: string | null; + type: string; + title: string | null; + subtitle: string | null; + facts: string | null; + narrative: string | null; + concepts: string | null; + files_read: string | null; + files_modified: string | null; + prompt_number: number | null; + discovery_tokens: number; + created_at: string; + created_at_epoch: number; + } +): ImportResult { + // Check if observation already exists + const existing = db + .prepare( + ` + SELECT id FROM observations + WHERE memory_session_id = ? AND title = ? AND created_at_epoch = ? + ` + ) + .get(obs.memory_session_id, obs.title, obs.created_at_epoch) as + | { id: number } + | undefined; + + if (existing) { + return { imported: false, id: existing.id }; + } + + const stmt = db.prepare(` + INSERT INTO observations ( + memory_session_id, project, text, type, title, subtitle, + facts, narrative, concepts, files_read, files_modified, + prompt_number, discovery_tokens, created_at, created_at_epoch + ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `); + + const result = stmt.run( + obs.memory_session_id, + obs.project, + obs.text, + obs.type, + obs.title, + obs.subtitle, + obs.facts, + obs.narrative, + obs.concepts, + obs.files_read, + obs.files_modified, + obs.prompt_number, + obs.discovery_tokens || 0, + obs.created_at, + obs.created_at_epoch + ); + + return { imported: true, id: result.lastInsertRowid as number }; +} + +/** + * Import user prompt with duplicate checking + * Duplicates are identified by content_session_id + prompt_number + */ +export function importUserPrompt( + db: Database, + prompt: { + content_session_id: string; + prompt_number: number; + prompt_text: string; + created_at: string; + created_at_epoch: number; + } +): ImportResult { + // Check if prompt already exists + const existing = db + .prepare( + ` + SELECT id FROM user_prompts + WHERE content_session_id = ? AND prompt_number = ? + ` + ) + .get(prompt.content_session_id, prompt.prompt_number) as + | { id: number } + | undefined; + + if (existing) { + return { imported: false, id: existing.id }; + } + + const stmt = db.prepare(` + INSERT INTO user_prompts ( + content_session_id, prompt_number, prompt_text, + created_at, created_at_epoch + ) VALUES (?, ?, ?, ?, ?) + `); + + const result = stmt.run( + prompt.content_session_id, + prompt.prompt_number, + prompt.prompt_text, + prompt.created_at, + prompt.created_at_epoch + ); + + return { imported: true, id: result.lastInsertRowid as number }; +} diff --git a/src/services/sqlite/index.ts b/src/services/sqlite/index.ts index 7ebe5def..abe783aa 100644 --- a/src/services/sqlite/index.ts +++ b/src/services/sqlite/index.ts @@ -1,7 +1,14 @@ // Export main components -export { DatabaseManager, getDatabase, initializeDatabase } from './Database.js'; +export { + ClaudeMemDatabase, + DatabaseManager, + getDatabase, + initializeDatabase, + MigrationRunner +} from './Database.js'; // Export session store (CRUD operations for sessions, observations, summaries) +// @deprecated Use modular functions from Database.ts instead export { SessionStore } from './SessionStore.js'; // Export session search (FTS5 and structured search) @@ -12,3 +19,14 @@ export * from './types.js'; // Export migrations export { migrations } from './migrations.js'; + +// Export transactions +export { storeObservations, storeObservationsAndMarkComplete } from './transactions.js'; + +// Re-export all modular functions for convenient access +export * from './Sessions.js'; +export * from './Observations.js'; +export * from './Summaries.js'; +export * from './Prompts.js'; +export * from './Timeline.js'; +export * from './Import.js'; diff --git a/src/services/sqlite/migrations.ts b/src/services/sqlite/migrations.ts index c5c7ad23..e2fea814 100644 --- a/src/services/sqlite/migrations.ts +++ b/src/services/sqlite/migrations.ts @@ -1,6 +1,9 @@ import { Database } from 'bun:sqlite'; import { Migration } from './Database.js'; +// Re-export MigrationRunner for SessionStore migration extraction +export { MigrationRunner } from './migrations/runner.js'; + /** * Initial schema migration - creates all core tables */ diff --git a/src/services/sqlite/migrations/runner.ts b/src/services/sqlite/migrations/runner.ts new file mode 100644 index 00000000..f48a59c9 --- /dev/null +++ b/src/services/sqlite/migrations/runner.ts @@ -0,0 +1,631 @@ +import { Database } from 'bun:sqlite'; +import { logger } from '../../../utils/logger.js'; +import { + TableColumnInfo, + IndexInfo, + TableNameRow, + SchemaVersion +} from '../../../types/database.js'; + +/** + * MigrationRunner handles all database schema migrations + * Extracted from SessionStore to separate concerns + */ +export class MigrationRunner { + constructor(private db: Database) {} + + /** + * Run all migrations in order + * This is the only public method - all migrations are internal + */ + runAllMigrations(): void { + this.initializeSchema(); + this.ensureWorkerPortColumn(); + this.ensurePromptTrackingColumns(); + this.removeSessionSummariesUniqueConstraint(); + this.addObservationHierarchicalFields(); + this.makeObservationsTextNullable(); + this.createUserPromptsTable(); + this.ensureDiscoveryTokensColumn(); + this.createPendingMessagesTable(); + this.renameSessionIdColumns(); + this.repairSessionIdColumnRename(); + this.addFailedAtEpochColumn(); + } + + /** + * Initialize database schema using migrations (migration004) + * This runs the core SDK tables migration if no tables exist + */ + private initializeSchema(): void { + // Create schema_versions table if it doesn't exist + this.db.run(` + CREATE TABLE IF NOT EXISTS schema_versions ( + id INTEGER PRIMARY KEY, + version INTEGER UNIQUE NOT NULL, + applied_at TEXT NOT NULL + ) + `); + + // Get applied migrations + const appliedVersions = this.db.prepare('SELECT version FROM schema_versions ORDER BY version').all() as SchemaVersion[]; + const maxApplied = appliedVersions.length > 0 ? Math.max(...appliedVersions.map(v => v.version)) : 0; + + // Only run migration004 if no migrations have been applied + // This creates the sdk_sessions, observations, and session_summaries tables + if (maxApplied === 0) { + logger.info('DB', 'Initializing fresh database with migration004'); + + // Migration004: SDK agent architecture tables + this.db.run(` + CREATE TABLE IF NOT EXISTS sdk_sessions ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + content_session_id TEXT UNIQUE NOT NULL, + memory_session_id TEXT UNIQUE, + project TEXT NOT NULL, + user_prompt TEXT, + started_at TEXT NOT NULL, + started_at_epoch INTEGER NOT NULL, + completed_at TEXT, + completed_at_epoch INTEGER, + status TEXT CHECK(status IN ('active', 'completed', 'failed')) NOT NULL DEFAULT 'active' + ); + + CREATE INDEX IF NOT EXISTS idx_sdk_sessions_claude_id ON sdk_sessions(content_session_id); + CREATE INDEX IF NOT EXISTS idx_sdk_sessions_sdk_id ON sdk_sessions(memory_session_id); + CREATE INDEX IF NOT EXISTS idx_sdk_sessions_project ON sdk_sessions(project); + CREATE INDEX IF NOT EXISTS idx_sdk_sessions_status ON sdk_sessions(status); + CREATE INDEX IF NOT EXISTS idx_sdk_sessions_started ON sdk_sessions(started_at_epoch DESC); + + CREATE TABLE IF NOT EXISTS observations ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + memory_session_id TEXT NOT NULL, + project TEXT NOT NULL, + text TEXT NOT NULL, + type TEXT NOT NULL CHECK(type IN ('decision', 'bugfix', 'feature', 'refactor', 'discovery')), + created_at TEXT NOT NULL, + created_at_epoch INTEGER NOT NULL, + FOREIGN KEY(memory_session_id) REFERENCES sdk_sessions(memory_session_id) ON DELETE CASCADE + ); + + CREATE INDEX IF NOT EXISTS idx_observations_sdk_session ON observations(memory_session_id); + CREATE INDEX IF NOT EXISTS idx_observations_project ON observations(project); + CREATE INDEX IF NOT EXISTS idx_observations_type ON observations(type); + CREATE INDEX IF NOT EXISTS idx_observations_created ON observations(created_at_epoch DESC); + + CREATE TABLE IF NOT EXISTS session_summaries ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + memory_session_id TEXT UNIQUE NOT NULL, + project TEXT NOT NULL, + request TEXT, + investigated TEXT, + learned TEXT, + completed TEXT, + next_steps TEXT, + files_read TEXT, + files_edited TEXT, + notes TEXT, + created_at TEXT NOT NULL, + created_at_epoch INTEGER NOT NULL, + FOREIGN KEY(memory_session_id) REFERENCES sdk_sessions(memory_session_id) ON DELETE CASCADE + ); + + CREATE INDEX IF NOT EXISTS idx_session_summaries_sdk_session ON session_summaries(memory_session_id); + CREATE INDEX IF NOT EXISTS idx_session_summaries_project ON session_summaries(project); + CREATE INDEX IF NOT EXISTS idx_session_summaries_created ON session_summaries(created_at_epoch DESC); + `); + + // Record migration004 as applied + this.db.prepare('INSERT INTO schema_versions (version, applied_at) VALUES (?, ?)').run(4, new Date().toISOString()); + + logger.info('DB', 'Migration004 applied successfully'); + } + } + + /** + * Ensure worker_port column exists (migration 5) + */ + private ensureWorkerPortColumn(): void { + // Check if migration already applied + const applied = this.db.prepare('SELECT version FROM schema_versions WHERE version = ?').get(5) as SchemaVersion | undefined; + if (applied) return; + + // Check if column exists + const tableInfo = this.db.query('PRAGMA table_info(sdk_sessions)').all() as TableColumnInfo[]; + const hasWorkerPort = tableInfo.some(col => col.name === 'worker_port'); + + if (!hasWorkerPort) { + this.db.run('ALTER TABLE sdk_sessions ADD COLUMN worker_port INTEGER'); + logger.info('DB', 'Added worker_port column to sdk_sessions table'); + } + + // Record migration + this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(5, new Date().toISOString()); + } + + /** + * Ensure prompt tracking columns exist (migration 6) + */ + private ensurePromptTrackingColumns(): void { + // Check if migration already applied + const applied = this.db.prepare('SELECT version FROM schema_versions WHERE version = ?').get(6) as SchemaVersion | undefined; + if (applied) return; + + // Check sdk_sessions for prompt_counter + const sessionsInfo = this.db.query('PRAGMA table_info(sdk_sessions)').all() as TableColumnInfo[]; + const hasPromptCounter = sessionsInfo.some(col => col.name === 'prompt_counter'); + + if (!hasPromptCounter) { + this.db.run('ALTER TABLE sdk_sessions ADD COLUMN prompt_counter INTEGER DEFAULT 0'); + logger.info('DB', 'Added prompt_counter column to sdk_sessions table'); + } + + // Check observations for prompt_number + const observationsInfo = this.db.query('PRAGMA table_info(observations)').all() as TableColumnInfo[]; + const obsHasPromptNumber = observationsInfo.some(col => col.name === 'prompt_number'); + + if (!obsHasPromptNumber) { + this.db.run('ALTER TABLE observations ADD COLUMN prompt_number INTEGER'); + logger.info('DB', 'Added prompt_number column to observations table'); + } + + // Check session_summaries for prompt_number + const summariesInfo = this.db.query('PRAGMA table_info(session_summaries)').all() as TableColumnInfo[]; + const sumHasPromptNumber = summariesInfo.some(col => col.name === 'prompt_number'); + + if (!sumHasPromptNumber) { + this.db.run('ALTER TABLE session_summaries ADD COLUMN prompt_number INTEGER'); + logger.info('DB', 'Added prompt_number column to session_summaries table'); + } + + // Record migration + this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(6, new Date().toISOString()); + } + + /** + * Remove UNIQUE constraint from session_summaries.memory_session_id (migration 7) + */ + private removeSessionSummariesUniqueConstraint(): void { + // Check if migration already applied + const applied = this.db.prepare('SELECT version FROM schema_versions WHERE version = ?').get(7) as SchemaVersion | undefined; + if (applied) return; + + // Check if UNIQUE constraint exists + const summariesIndexes = this.db.query('PRAGMA index_list(session_summaries)').all() as IndexInfo[]; + const hasUniqueConstraint = summariesIndexes.some(idx => idx.unique === 1); + + if (!hasUniqueConstraint) { + // Already migrated (no constraint exists) + this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(7, new Date().toISOString()); + return; + } + + logger.info('DB', 'Removing UNIQUE constraint from session_summaries.memory_session_id'); + + // Begin transaction + this.db.run('BEGIN TRANSACTION'); + + // Create new table without UNIQUE constraint + this.db.run(` + CREATE TABLE session_summaries_new ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + memory_session_id TEXT NOT NULL, + project TEXT NOT NULL, + request TEXT, + investigated TEXT, + learned TEXT, + completed TEXT, + next_steps TEXT, + files_read TEXT, + files_edited TEXT, + notes TEXT, + prompt_number INTEGER, + created_at TEXT NOT NULL, + created_at_epoch INTEGER NOT NULL, + FOREIGN KEY(memory_session_id) REFERENCES sdk_sessions(memory_session_id) ON DELETE CASCADE + ) + `); + + // Copy data from old table + this.db.run(` + INSERT INTO session_summaries_new + SELECT id, memory_session_id, project, request, investigated, learned, + completed, next_steps, files_read, files_edited, notes, + prompt_number, created_at, created_at_epoch + FROM session_summaries + `); + + // Drop old table + this.db.run('DROP TABLE session_summaries'); + + // Rename new table + this.db.run('ALTER TABLE session_summaries_new RENAME TO session_summaries'); + + // Recreate indexes + this.db.run(` + CREATE INDEX idx_session_summaries_sdk_session ON session_summaries(memory_session_id); + CREATE INDEX idx_session_summaries_project ON session_summaries(project); + CREATE INDEX idx_session_summaries_created ON session_summaries(created_at_epoch DESC); + `); + + // Commit transaction + this.db.run('COMMIT'); + + // Record migration + this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(7, new Date().toISOString()); + + logger.info('DB', 'Successfully removed UNIQUE constraint from session_summaries.memory_session_id'); + } + + /** + * Add hierarchical fields to observations table (migration 8) + */ + private addObservationHierarchicalFields(): void { + // Check if migration already applied + const applied = this.db.prepare('SELECT version FROM schema_versions WHERE version = ?').get(8) as SchemaVersion | undefined; + if (applied) return; + + // Check if new fields already exist + const tableInfo = this.db.query('PRAGMA table_info(observations)').all() as TableColumnInfo[]; + const hasTitle = tableInfo.some(col => col.name === 'title'); + + if (hasTitle) { + // Already migrated + this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(8, new Date().toISOString()); + return; + } + + logger.info('DB', 'Adding hierarchical fields to observations table'); + + // Add new columns + this.db.run(` + ALTER TABLE observations ADD COLUMN title TEXT; + ALTER TABLE observations ADD COLUMN subtitle TEXT; + ALTER TABLE observations ADD COLUMN facts TEXT; + ALTER TABLE observations ADD COLUMN narrative TEXT; + ALTER TABLE observations ADD COLUMN concepts TEXT; + ALTER TABLE observations ADD COLUMN files_read TEXT; + ALTER TABLE observations ADD COLUMN files_modified TEXT; + `); + + // Record migration + this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(8, new Date().toISOString()); + + logger.info('DB', 'Successfully added hierarchical fields to observations table'); + } + + /** + * Make observations.text nullable (migration 9) + * The text field is deprecated in favor of structured fields (title, subtitle, narrative, etc.) + */ + private makeObservationsTextNullable(): void { + // Check if migration already applied + const applied = this.db.prepare('SELECT version FROM schema_versions WHERE version = ?').get(9) as SchemaVersion | undefined; + if (applied) return; + + // Check if text column is already nullable + const tableInfo = this.db.query('PRAGMA table_info(observations)').all() as TableColumnInfo[]; + const textColumn = tableInfo.find(col => col.name === 'text'); + + if (!textColumn || textColumn.notnull === 0) { + // Already migrated or text column doesn't exist + this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(9, new Date().toISOString()); + return; + } + + logger.info('DB', 'Making observations.text nullable'); + + // Begin transaction + this.db.run('BEGIN TRANSACTION'); + + // Create new table with text as nullable + this.db.run(` + CREATE TABLE observations_new ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + memory_session_id TEXT NOT NULL, + project TEXT NOT NULL, + text TEXT, + type TEXT NOT NULL CHECK(type IN ('decision', 'bugfix', 'feature', 'refactor', 'discovery', 'change')), + title TEXT, + subtitle TEXT, + facts TEXT, + narrative TEXT, + concepts TEXT, + files_read TEXT, + files_modified TEXT, + prompt_number INTEGER, + created_at TEXT NOT NULL, + created_at_epoch INTEGER NOT NULL, + FOREIGN KEY(memory_session_id) REFERENCES sdk_sessions(memory_session_id) ON DELETE CASCADE + ) + `); + + // Copy data from old table (all existing columns) + this.db.run(` + INSERT INTO observations_new + SELECT id, memory_session_id, project, text, type, title, subtitle, facts, + narrative, concepts, files_read, files_modified, prompt_number, + created_at, created_at_epoch + FROM observations + `); + + // Drop old table + this.db.run('DROP TABLE observations'); + + // Rename new table + this.db.run('ALTER TABLE observations_new RENAME TO observations'); + + // Recreate indexes + this.db.run(` + CREATE INDEX idx_observations_sdk_session ON observations(memory_session_id); + CREATE INDEX idx_observations_project ON observations(project); + CREATE INDEX idx_observations_type ON observations(type); + CREATE INDEX idx_observations_created ON observations(created_at_epoch DESC); + `); + + // Commit transaction + this.db.run('COMMIT'); + + // Record migration + this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(9, new Date().toISOString()); + + logger.info('DB', 'Successfully made observations.text nullable'); + } + + /** + * Create user_prompts table with FTS5 support (migration 10) + */ + private createUserPromptsTable(): void { + // Check if migration already applied + const applied = this.db.prepare('SELECT version FROM schema_versions WHERE version = ?').get(10) as SchemaVersion | undefined; + if (applied) return; + + // Check if table already exists + const tableInfo = this.db.query('PRAGMA table_info(user_prompts)').all() as TableColumnInfo[]; + if (tableInfo.length > 0) { + // Already migrated + this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(10, new Date().toISOString()); + return; + } + + logger.info('DB', 'Creating user_prompts table with FTS5 support'); + + // Begin transaction + this.db.run('BEGIN TRANSACTION'); + + // Create main table (using content_session_id since memory_session_id is set asynchronously by worker) + this.db.run(` + CREATE TABLE user_prompts ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + content_session_id TEXT NOT NULL, + prompt_number INTEGER NOT NULL, + prompt_text TEXT NOT NULL, + created_at TEXT NOT NULL, + created_at_epoch INTEGER NOT NULL, + FOREIGN KEY(content_session_id) REFERENCES sdk_sessions(content_session_id) ON DELETE CASCADE + ); + + CREATE INDEX idx_user_prompts_claude_session ON user_prompts(content_session_id); + CREATE INDEX idx_user_prompts_created ON user_prompts(created_at_epoch DESC); + CREATE INDEX idx_user_prompts_prompt_number ON user_prompts(prompt_number); + CREATE INDEX idx_user_prompts_lookup ON user_prompts(content_session_id, prompt_number); + `); + + // Create FTS5 virtual table + this.db.run(` + CREATE VIRTUAL TABLE user_prompts_fts USING fts5( + prompt_text, + content='user_prompts', + content_rowid='id' + ); + `); + + // Create triggers to sync FTS5 + this.db.run(` + CREATE TRIGGER user_prompts_ai AFTER INSERT ON user_prompts BEGIN + INSERT INTO user_prompts_fts(rowid, prompt_text) + VALUES (new.id, new.prompt_text); + END; + + CREATE TRIGGER user_prompts_ad AFTER DELETE ON user_prompts BEGIN + INSERT INTO user_prompts_fts(user_prompts_fts, rowid, prompt_text) + VALUES('delete', old.id, old.prompt_text); + END; + + CREATE TRIGGER user_prompts_au AFTER UPDATE ON user_prompts BEGIN + INSERT INTO user_prompts_fts(user_prompts_fts, rowid, prompt_text) + VALUES('delete', old.id, old.prompt_text); + INSERT INTO user_prompts_fts(rowid, prompt_text) + VALUES (new.id, new.prompt_text); + END; + `); + + // Commit transaction + this.db.run('COMMIT'); + + // Record migration + this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(10, new Date().toISOString()); + + logger.info('DB', 'Successfully created user_prompts table with FTS5 support'); + } + + /** + * Ensure discovery_tokens column exists (migration 11) + * CRITICAL: This migration was incorrectly using version 7 (which was already taken by removeSessionSummariesUniqueConstraint) + * The duplicate version number may have caused migration tracking issues in some databases + */ + private ensureDiscoveryTokensColumn(): void { + // Check if migration already applied to avoid unnecessary re-runs + const applied = this.db.prepare('SELECT version FROM schema_versions WHERE version = ?').get(11) as SchemaVersion | undefined; + if (applied) return; + + // Check if discovery_tokens column exists in observations table + const observationsInfo = this.db.query('PRAGMA table_info(observations)').all() as TableColumnInfo[]; + const obsHasDiscoveryTokens = observationsInfo.some(col => col.name === 'discovery_tokens'); + + if (!obsHasDiscoveryTokens) { + this.db.run('ALTER TABLE observations ADD COLUMN discovery_tokens INTEGER DEFAULT 0'); + logger.info('DB', 'Added discovery_tokens column to observations table'); + } + + // Check if discovery_tokens column exists in session_summaries table + const summariesInfo = this.db.query('PRAGMA table_info(session_summaries)').all() as TableColumnInfo[]; + const sumHasDiscoveryTokens = summariesInfo.some(col => col.name === 'discovery_tokens'); + + if (!sumHasDiscoveryTokens) { + this.db.run('ALTER TABLE session_summaries ADD COLUMN discovery_tokens INTEGER DEFAULT 0'); + logger.info('DB', 'Added discovery_tokens column to session_summaries table'); + } + + // Record migration only after successful column verification/addition + this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(11, new Date().toISOString()); + } + + /** + * Create pending_messages table for persistent work queue (migration 16) + * Messages are persisted before processing and deleted after success. + * Enables recovery from SDK hangs and worker crashes. + */ + private createPendingMessagesTable(): void { + // Check if migration already applied + const applied = this.db.prepare('SELECT version FROM schema_versions WHERE version = ?').get(16) as SchemaVersion | undefined; + if (applied) return; + + // Check if table already exists + const tables = this.db.query("SELECT name FROM sqlite_master WHERE type='table' AND name='pending_messages'").all() as TableNameRow[]; + if (tables.length > 0) { + this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(16, new Date().toISOString()); + return; + } + + logger.info('DB', 'Creating pending_messages table'); + + this.db.run(` + CREATE TABLE pending_messages ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + session_db_id INTEGER NOT NULL, + content_session_id TEXT NOT NULL, + message_type TEXT NOT NULL CHECK(message_type IN ('observation', 'summarize')), + tool_name TEXT, + tool_input TEXT, + tool_response TEXT, + cwd TEXT, + last_user_message TEXT, + last_assistant_message TEXT, + prompt_number INTEGER, + status TEXT NOT NULL DEFAULT 'pending' CHECK(status IN ('pending', 'processing', 'processed', 'failed')), + retry_count INTEGER NOT NULL DEFAULT 0, + created_at_epoch INTEGER NOT NULL, + started_processing_at_epoch INTEGER, + completed_at_epoch INTEGER, + FOREIGN KEY (session_db_id) REFERENCES sdk_sessions(id) ON DELETE CASCADE + ) + `); + + this.db.run('CREATE INDEX IF NOT EXISTS idx_pending_messages_session ON pending_messages(session_db_id)'); + this.db.run('CREATE INDEX IF NOT EXISTS idx_pending_messages_status ON pending_messages(status)'); + this.db.run('CREATE INDEX IF NOT EXISTS idx_pending_messages_claude_session ON pending_messages(content_session_id)'); + + this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(16, new Date().toISOString()); + + logger.info('DB', 'pending_messages table created successfully'); + } + + /** + * Rename session ID columns for semantic clarity (migration 17) + * - claude_session_id -> content_session_id (user's observed session) + * - sdk_session_id -> memory_session_id (memory agent's session for resume) + * + * IDEMPOTENT: Checks each table individually before renaming. + * This handles databases in any intermediate state (partial migration, fresh install, etc.) + */ + private renameSessionIdColumns(): void { + const applied = this.db.prepare('SELECT version FROM schema_versions WHERE version = ?').get(17) as SchemaVersion | undefined; + if (applied) return; + + logger.info('DB', 'Checking session ID columns for semantic clarity rename'); + + let renamesPerformed = 0; + + // Helper to safely rename a column if it exists + const safeRenameColumn = (table: string, oldCol: string, newCol: string): boolean => { + const tableInfo = this.db.query(`PRAGMA table_info(${table})`).all() as TableColumnInfo[]; + const hasOldCol = tableInfo.some(col => col.name === oldCol); + const hasNewCol = tableInfo.some(col => col.name === newCol); + + if (hasNewCol) { + // Already renamed, nothing to do + return false; + } + + if (hasOldCol) { + // SQLite 3.25+ supports ALTER TABLE RENAME COLUMN + this.db.run(`ALTER TABLE ${table} RENAME COLUMN ${oldCol} TO ${newCol}`); + logger.info('DB', `Renamed ${table}.${oldCol} to ${newCol}`); + return true; + } + + // Neither column exists - table might not exist or has different schema + logger.warn('DB', `Column ${oldCol} not found in ${table}, skipping rename`); + return false; + }; + + // Rename in sdk_sessions table + if (safeRenameColumn('sdk_sessions', 'claude_session_id', 'content_session_id')) renamesPerformed++; + if (safeRenameColumn('sdk_sessions', 'sdk_session_id', 'memory_session_id')) renamesPerformed++; + + // Rename in pending_messages table + if (safeRenameColumn('pending_messages', 'claude_session_id', 'content_session_id')) renamesPerformed++; + + // Rename in observations table + if (safeRenameColumn('observations', 'sdk_session_id', 'memory_session_id')) renamesPerformed++; + + // Rename in session_summaries table + if (safeRenameColumn('session_summaries', 'sdk_session_id', 'memory_session_id')) renamesPerformed++; + + // Rename in user_prompts table + if (safeRenameColumn('user_prompts', 'claude_session_id', 'content_session_id')) renamesPerformed++; + + // Record migration + this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(17, new Date().toISOString()); + + if (renamesPerformed > 0) { + logger.info('DB', `Successfully renamed ${renamesPerformed} session ID columns`); + } else { + logger.info('DB', 'No session ID column renames needed (already up to date)'); + } + } + + /** + * Repair session ID column renames (migration 19) + * DEPRECATED: Migration 17 is now fully idempotent and handles all cases. + * This migration is kept for backwards compatibility but does nothing. + */ + private repairSessionIdColumnRename(): void { + const applied = this.db.prepare('SELECT version FROM schema_versions WHERE version = ?').get(19) as SchemaVersion | undefined; + if (applied) return; + + // Migration 17 now handles all column rename cases idempotently. + // Just record this migration as applied. + this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(19, new Date().toISOString()); + } + + /** + * Add failed_at_epoch column to pending_messages (migration 20) + * Used by markSessionMessagesFailed() for error recovery tracking + */ + private addFailedAtEpochColumn(): void { + const applied = this.db.prepare('SELECT version FROM schema_versions WHERE version = ?').get(20) as SchemaVersion | undefined; + if (applied) return; + + const tableInfo = this.db.query('PRAGMA table_info(pending_messages)').all() as TableColumnInfo[]; + const hasColumn = tableInfo.some(col => col.name === 'failed_at_epoch'); + + if (!hasColumn) { + this.db.run('ALTER TABLE pending_messages ADD COLUMN failed_at_epoch INTEGER'); + logger.info('DB', 'Added failed_at_epoch column to pending_messages table'); + } + + this.db.prepare('INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)').run(20, new Date().toISOString()); + } +} diff --git a/src/services/sqlite/observations/files.ts b/src/services/sqlite/observations/files.ts new file mode 100644 index 00000000..12b3f225 --- /dev/null +++ b/src/services/sqlite/observations/files.ts @@ -0,0 +1,52 @@ +/** + * Session file retrieval functions + * Extracted from SessionStore.ts for modular organization + */ + +import { Database } from 'bun:sqlite'; +import type { SessionFilesResult } from './types.js'; + +/** + * Get aggregated files from all observations for a session + */ +export function getFilesForSession( + db: Database, + memorySessionId: string +): SessionFilesResult { + const stmt = db.prepare(` + SELECT files_read, files_modified + FROM observations + WHERE memory_session_id = ? + `); + + const rows = stmt.all(memorySessionId) as Array<{ + files_read: string | null; + files_modified: string | null; + }>; + + const filesReadSet = new Set(); + const filesModifiedSet = new Set(); + + for (const row of rows) { + // Parse files_read + if (row.files_read) { + const files = JSON.parse(row.files_read); + if (Array.isArray(files)) { + files.forEach(f => filesReadSet.add(f)); + } + } + + // Parse files_modified + if (row.files_modified) { + const files = JSON.parse(row.files_modified); + if (Array.isArray(files)) { + files.forEach(f => filesModifiedSet.add(f)); + } + } + } + + return { + filesRead: Array.from(filesReadSet), + filesModified: Array.from(filesModifiedSet) + }; +} diff --git a/src/services/sqlite/observations/get.ts b/src/services/sqlite/observations/get.ts new file mode 100644 index 00000000..8bf7d085 --- /dev/null +++ b/src/services/sqlite/observations/get.ts @@ -0,0 +1,112 @@ +/** + * Observation retrieval functions + * Extracted from SessionStore.ts for modular organization + */ + +import { Database } from 'bun:sqlite'; +import type { ObservationRecord } from '../../../types/database.js'; +import type { GetObservationsByIdsOptions, ObservationSessionRow } from './types.js'; + +/** + * Get a single observation by ID + */ +export function getObservationById(db: Database, id: number): ObservationRecord | null { + const stmt = db.prepare(` + SELECT * + FROM observations + WHERE id = ? + `); + + return stmt.get(id) as ObservationRecord | undefined || null; +} + +/** + * Get observations by array of IDs with ordering and limit + */ +export function getObservationsByIds( + db: Database, + ids: number[], + options: GetObservationsByIdsOptions = {} +): ObservationRecord[] { + if (ids.length === 0) return []; + + const { orderBy = 'date_desc', limit, project, type, concepts, files } = options; + const orderClause = orderBy === 'date_asc' ? 'ASC' : 'DESC'; + const limitClause = limit ? `LIMIT ${limit}` : ''; + + // Build placeholders for IN clause + const placeholders = ids.map(() => '?').join(','); + const params: any[] = [...ids]; + const additionalConditions: string[] = []; + + // Apply project filter + if (project) { + additionalConditions.push('project = ?'); + params.push(project); + } + + // Apply type filter + if (type) { + if (Array.isArray(type)) { + const typePlaceholders = type.map(() => '?').join(','); + additionalConditions.push(`type IN (${typePlaceholders})`); + params.push(...type); + } else { + additionalConditions.push('type = ?'); + params.push(type); + } + } + + // Apply concepts filter + if (concepts) { + const conceptsList = Array.isArray(concepts) ? concepts : [concepts]; + const conceptConditions = conceptsList.map(() => + 'EXISTS (SELECT 1 FROM json_each(concepts) WHERE value = ?)' + ); + params.push(...conceptsList); + additionalConditions.push(`(${conceptConditions.join(' OR ')})`); + } + + // Apply files filter + if (files) { + const filesList = Array.isArray(files) ? files : [files]; + const fileConditions = filesList.map(() => { + return '(EXISTS (SELECT 1 FROM json_each(files_read) WHERE value LIKE ?) OR EXISTS (SELECT 1 FROM json_each(files_modified) WHERE value LIKE ?))'; + }); + filesList.forEach(file => { + params.push(`%${file}%`, `%${file}%`); + }); + additionalConditions.push(`(${fileConditions.join(' OR ')})`); + } + + const whereClause = additionalConditions.length > 0 + ? `WHERE id IN (${placeholders}) AND ${additionalConditions.join(' AND ')}` + : `WHERE id IN (${placeholders})`; + + const stmt = db.prepare(` + SELECT * + FROM observations + ${whereClause} + ORDER BY created_at_epoch ${orderClause} + ${limitClause} + `); + + return stmt.all(...params) as ObservationRecord[]; +} + +/** + * Get observations for a specific session + */ +export function getObservationsForSession( + db: Database, + memorySessionId: string +): ObservationSessionRow[] { + const stmt = db.prepare(` + SELECT title, subtitle, type, prompt_number + FROM observations + WHERE memory_session_id = ? + ORDER BY created_at_epoch ASC + `); + + return stmt.all(memorySessionId) as ObservationSessionRow[]; +} diff --git a/src/services/sqlite/observations/recent.ts b/src/services/sqlite/observations/recent.ts new file mode 100644 index 00000000..fe8a5e42 --- /dev/null +++ b/src/services/sqlite/observations/recent.ts @@ -0,0 +1,43 @@ +/** + * Recent observation retrieval functions + * Extracted from SessionStore.ts for modular organization + */ + +import { Database } from 'bun:sqlite'; +import type { RecentObservationRow, AllRecentObservationRow } from './types.js'; + +/** + * Get recent observations for a project + */ +export function getRecentObservations( + db: Database, + project: string, + limit: number = 20 +): RecentObservationRow[] { + const stmt = db.prepare(` + SELECT type, text, prompt_number, created_at + FROM observations + WHERE project = ? + ORDER BY created_at_epoch DESC + LIMIT ? + `); + + return stmt.all(project, limit) as RecentObservationRow[]; +} + +/** + * Get recent observations across all projects (for web UI) + */ +export function getAllRecentObservations( + db: Database, + limit: number = 100 +): AllRecentObservationRow[] { + const stmt = db.prepare(` + SELECT id, type, title, subtitle, text, project, prompt_number, created_at, created_at_epoch + FROM observations + ORDER BY created_at_epoch DESC + LIMIT ? + `); + + return stmt.all(limit) as AllRecentObservationRow[]; +} diff --git a/src/services/sqlite/observations/store.ts b/src/services/sqlite/observations/store.ts new file mode 100644 index 00000000..b72c607c --- /dev/null +++ b/src/services/sqlite/observations/store.ts @@ -0,0 +1,54 @@ +/** + * Store observation function + * Extracted from SessionStore.ts for modular organization + */ + +import { Database } from 'bun:sqlite'; +import type { ObservationInput, StoreObservationResult } from './types.js'; + +/** + * Store an observation (from SDK parsing) + * Assumes session already exists (created by hook) + */ +export function storeObservation( + db: Database, + memorySessionId: string, + project: string, + observation: ObservationInput, + promptNumber?: number, + discoveryTokens: number = 0, + overrideTimestampEpoch?: number +): StoreObservationResult { + // Use override timestamp if provided (for processing backlog messages with original timestamps) + const timestampEpoch = overrideTimestampEpoch ?? Date.now(); + const timestampIso = new Date(timestampEpoch).toISOString(); + + const stmt = db.prepare(` + INSERT INTO observations + (memory_session_id, project, type, title, subtitle, facts, narrative, concepts, + files_read, files_modified, prompt_number, discovery_tokens, created_at, created_at_epoch) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `); + + const result = stmt.run( + memorySessionId, + project, + observation.type, + observation.title, + observation.subtitle, + JSON.stringify(observation.facts), + observation.narrative, + JSON.stringify(observation.concepts), + JSON.stringify(observation.files_read), + JSON.stringify(observation.files_modified), + promptNumber || null, + discoveryTokens, + timestampIso, + timestampEpoch + ); + + return { + id: Number(result.lastInsertRowid), + createdAtEpoch: timestampEpoch + }; +} diff --git a/src/services/sqlite/observations/types.ts b/src/services/sqlite/observations/types.ts new file mode 100644 index 00000000..abae2e5d --- /dev/null +++ b/src/services/sqlite/observations/types.ts @@ -0,0 +1,81 @@ +/** + * Type definitions for observation operations + * Extracted from SessionStore.ts for modular organization + */ + +/** + * Input type for storeObservation function + */ +export interface ObservationInput { + type: string; + title: string | null; + subtitle: string | null; + facts: string[]; + narrative: string | null; + concepts: string[]; + files_read: string[]; + files_modified: string[]; +} + +/** + * Result from storing an observation + */ +export interface StoreObservationResult { + id: number; + createdAtEpoch: number; +} + +/** + * Options for getObservationsByIds + */ +export interface GetObservationsByIdsOptions { + orderBy?: 'date_desc' | 'date_asc'; + limit?: number; + project?: string; + type?: string | string[]; + concepts?: string | string[]; + files?: string | string[]; +} + +/** + * Result type for getFilesForSession + */ +export interface SessionFilesResult { + filesRead: string[]; + filesModified: string[]; +} + +/** + * Simple observation row for getObservationsForSession + */ +export interface ObservationSessionRow { + title: string; + subtitle: string; + type: string; + prompt_number: number | null; +} + +/** + * Recent observation row type + */ +export interface RecentObservationRow { + type: string; + text: string; + prompt_number: number | null; + created_at: string; +} + +/** + * Full recent observation row (for web UI) + */ +export interface AllRecentObservationRow { + id: number; + type: string; + title: string | null; + subtitle: string | null; + text: string; + project: string; + prompt_number: number | null; + created_at: string; + created_at_epoch: number; +} diff --git a/src/services/sqlite/prompts/get.ts b/src/services/sqlite/prompts/get.ts new file mode 100644 index 00000000..31b9ca6a --- /dev/null +++ b/src/services/sqlite/prompts/get.ts @@ -0,0 +1,168 @@ +/** + * User prompt retrieval operations + */ + +import type { Database } from 'bun:sqlite'; +import type { UserPromptRecord, LatestPromptResult } from '../../../types/database.js'; +import type { RecentUserPromptResult, PromptWithProject, GetPromptsByIdsOptions } from './types.js'; + +/** + * Get user prompt by session ID and prompt number + * @returns The prompt text, or null if not found + */ +export function getUserPrompt( + db: Database, + contentSessionId: string, + promptNumber: number +): string | null { + const stmt = db.prepare(` + SELECT prompt_text + FROM user_prompts + WHERE content_session_id = ? AND prompt_number = ? + LIMIT 1 + `); + + const result = stmt.get(contentSessionId, promptNumber) as { prompt_text: string } | undefined; + return result?.prompt_text ?? null; +} + +/** + * Get current prompt number by counting user_prompts for this session + * Replaces the prompt_counter column which is no longer maintained + */ +export function getPromptNumberFromUserPrompts(db: Database, contentSessionId: string): number { + const result = db.prepare(` + SELECT COUNT(*) as count FROM user_prompts WHERE content_session_id = ? + `).get(contentSessionId) as { count: number }; + return result.count; +} + +/** + * Get latest user prompt with session info for a Claude session + * Used for syncing prompts to Chroma during session initialization + */ +export function getLatestUserPrompt( + db: Database, + contentSessionId: string +): LatestPromptResult | undefined { + const stmt = db.prepare(` + SELECT + up.*, + s.memory_session_id, + s.project + FROM user_prompts up + JOIN sdk_sessions s ON up.content_session_id = s.content_session_id + WHERE up.content_session_id = ? + ORDER BY up.created_at_epoch DESC + LIMIT 1 + `); + + return stmt.get(contentSessionId) as LatestPromptResult | undefined; +} + +/** + * Get recent user prompts across all sessions (for web UI) + */ +export function getAllRecentUserPrompts( + db: Database, + limit: number = 100 +): RecentUserPromptResult[] { + const stmt = db.prepare(` + SELECT + up.id, + up.content_session_id, + s.project, + up.prompt_number, + up.prompt_text, + up.created_at, + up.created_at_epoch + FROM user_prompts up + LEFT JOIN sdk_sessions s ON up.content_session_id = s.content_session_id + ORDER BY up.created_at_epoch DESC + LIMIT ? + `); + + return stmt.all(limit) as RecentUserPromptResult[]; +} + +/** + * Get a single user prompt by ID + */ +export function getPromptById(db: Database, id: number): PromptWithProject | null { + const stmt = db.prepare(` + SELECT + p.id, + p.content_session_id, + p.prompt_number, + p.prompt_text, + s.project, + p.created_at, + p.created_at_epoch + FROM user_prompts p + LEFT JOIN sdk_sessions s ON p.content_session_id = s.content_session_id + WHERE p.id = ? + LIMIT 1 + `); + + return (stmt.get(id) as PromptWithProject | undefined) || null; +} + +/** + * Get multiple user prompts by IDs + */ +export function getPromptsByIds(db: Database, ids: number[]): PromptWithProject[] { + if (ids.length === 0) return []; + + const placeholders = ids.map(() => '?').join(','); + const stmt = db.prepare(` + SELECT + p.id, + p.content_session_id, + p.prompt_number, + p.prompt_text, + s.project, + p.created_at, + p.created_at_epoch + FROM user_prompts p + LEFT JOIN sdk_sessions s ON p.content_session_id = s.content_session_id + WHERE p.id IN (${placeholders}) + ORDER BY p.created_at_epoch DESC + `); + + return stmt.all(...ids) as PromptWithProject[]; +} + +/** + * Get user prompts by IDs (for hybrid Chroma search) + * Returns prompts in specified temporal order with optional project filter + */ +export function getUserPromptsByIds( + db: Database, + ids: number[], + options: GetPromptsByIdsOptions = {} +): UserPromptRecord[] { + if (ids.length === 0) return []; + + const { orderBy = 'date_desc', limit, project } = options; + const orderClause = orderBy === 'date_asc' ? 'ASC' : 'DESC'; + const limitClause = limit ? `LIMIT ${limit}` : ''; + const placeholders = ids.map(() => '?').join(','); + const params: (number | string)[] = [...ids]; + + const projectFilter = project ? 'AND s.project = ?' : ''; + if (project) params.push(project); + + const stmt = db.prepare(` + SELECT + up.*, + s.project, + s.memory_session_id + FROM user_prompts up + JOIN sdk_sessions s ON up.content_session_id = s.content_session_id + WHERE up.id IN (${placeholders}) ${projectFilter} + ORDER BY up.created_at_epoch ${orderClause} + ${limitClause} + `); + + return stmt.all(...params) as UserPromptRecord[]; +} diff --git a/src/services/sqlite/prompts/store.ts b/src/services/sqlite/prompts/store.ts new file mode 100644 index 00000000..7c054d51 --- /dev/null +++ b/src/services/sqlite/prompts/store.ts @@ -0,0 +1,28 @@ +/** + * User prompt storage operations + */ + +import type { Database } from 'bun:sqlite'; + +/** + * Save a user prompt to the database + * @returns The inserted row ID + */ +export function saveUserPrompt( + db: Database, + contentSessionId: string, + promptNumber: number, + promptText: string +): number { + const now = new Date(); + const nowEpoch = now.getTime(); + + const stmt = db.prepare(` + INSERT INTO user_prompts + (content_session_id, prompt_number, prompt_text, created_at, created_at_epoch) + VALUES (?, ?, ?, ?, ?) + `); + + const result = stmt.run(contentSessionId, promptNumber, promptText, now.toISOString(), nowEpoch); + return result.lastInsertRowid as number; +} diff --git a/src/services/sqlite/prompts/types.ts b/src/services/sqlite/prompts/types.ts new file mode 100644 index 00000000..7e1982a3 --- /dev/null +++ b/src/services/sqlite/prompts/types.ts @@ -0,0 +1,40 @@ +/** + * Type definitions for user prompts module + */ + +import type { Database } from 'bun:sqlite'; + +/** + * Result type for getAllRecentUserPrompts + */ +export interface RecentUserPromptResult { + id: number; + content_session_id: string; + project: string; + prompt_number: number; + prompt_text: string; + created_at: string; + created_at_epoch: number; +} + +/** + * Result type for getPromptById and getPromptsByIds + */ +export interface PromptWithProject { + id: number; + content_session_id: string; + prompt_number: number; + prompt_text: string; + project: string; + created_at: string; + created_at_epoch: number; +} + +/** + * Options for getUserPromptsByIds + */ +export interface GetPromptsByIdsOptions { + orderBy?: 'date_desc' | 'date_asc'; + limit?: number; + project?: string; +} diff --git a/src/services/sqlite/sessions/create.ts b/src/services/sqlite/sessions/create.ts new file mode 100644 index 00000000..88e19a11 --- /dev/null +++ b/src/services/sqlite/sessions/create.ts @@ -0,0 +1,62 @@ +/** + * Session creation and update functions + * Database-first parameter pattern for functional composition + */ + +import type { Database } from 'bun:sqlite'; + +/** + * Create a new SDK session (idempotent - returns existing session ID if already exists) + * + * IDEMPOTENCY via INSERT OR IGNORE pattern: + * - Prompt #1: session_id not in database -> INSERT creates new row + * - Prompt #2+: session_id exists -> INSERT ignored, fetch existing ID + * - Result: Same database ID returned for all prompts in conversation + * + * WHY THIS MATTERS: + * - NO "does session exist?" checks needed anywhere + * - NO risk of creating duplicate sessions + * - ALL hooks automatically connected via session_id + * - SAVE hook observations go to correct session (same session_id) + * - SDKAgent continuation prompt has correct context (same session_id) + */ +export function createSDKSession( + db: Database, + contentSessionId: string, + project: string, + userPrompt: string +): number { + const now = new Date(); + const nowEpoch = now.getTime(); + + // Pure INSERT OR IGNORE - no updates, no complexity + // NOTE: memory_session_id starts as NULL. It is captured by SDKAgent from the first SDK + // response and stored via updateMemorySessionId(). CRITICAL: memory_session_id must NEVER + // equal contentSessionId - that would inject memory messages into the user's transcript! + db.prepare(` + INSERT OR IGNORE INTO sdk_sessions + (content_session_id, memory_session_id, project, user_prompt, started_at, started_at_epoch, status) + VALUES (?, NULL, ?, ?, ?, ?, 'active') + `).run(contentSessionId, project, userPrompt, now.toISOString(), nowEpoch); + + // Return existing or new ID + const row = db.prepare('SELECT id FROM sdk_sessions WHERE content_session_id = ?') + .get(contentSessionId) as { id: number }; + return row.id; +} + +/** + * Update the memory session ID for a session + * Called by SDKAgent when it captures the session ID from the first SDK message + */ +export function updateMemorySessionId( + db: Database, + sessionDbId: number, + memorySessionId: string +): void { + db.prepare(` + UPDATE sdk_sessions + SET memory_session_id = ? + WHERE id = ? + `).run(memorySessionId, sessionDbId); +} diff --git a/src/services/sqlite/sessions/get.ts b/src/services/sqlite/sessions/get.ts new file mode 100644 index 00000000..6e0c2d5d --- /dev/null +++ b/src/services/sqlite/sessions/get.ts @@ -0,0 +1,106 @@ +/** + * Session retrieval functions + * Database-first parameter pattern for functional composition + */ + +import type { Database } from 'bun:sqlite'; +import type { + SessionBasic, + SessionFull, + SessionWithStatus, + SessionSummaryDetail, +} from './types.js'; + +/** + * Get session by ID (basic fields only) + */ +export function getSessionById(db: Database, id: number): SessionBasic | null { + const stmt = db.prepare(` + SELECT id, content_session_id, memory_session_id, project, user_prompt + FROM sdk_sessions + WHERE id = ? + LIMIT 1 + `); + + return (stmt.get(id) as SessionBasic | undefined) || null; +} + +/** + * Get SDK sessions by memory session IDs + * Used for exporting session metadata + */ +export function getSdkSessionsBySessionIds( + db: Database, + memorySessionIds: string[] +): SessionFull[] { + if (memorySessionIds.length === 0) return []; + + const placeholders = memorySessionIds.map(() => '?').join(','); + const stmt = db.prepare(` + SELECT id, content_session_id, memory_session_id, project, user_prompt, + started_at, started_at_epoch, completed_at, completed_at_epoch, status + FROM sdk_sessions + WHERE memory_session_id IN (${placeholders}) + ORDER BY started_at_epoch DESC + `); + + return stmt.all(...memorySessionIds) as SessionFull[]; +} + +/** + * Get recent sessions with their status and summary info + * Returns sessions ordered oldest-first for display + */ +export function getRecentSessionsWithStatus( + db: Database, + project: string, + limit: number = 3 +): SessionWithStatus[] { + const stmt = db.prepare(` + SELECT * FROM ( + SELECT + s.memory_session_id, + s.status, + s.started_at, + s.started_at_epoch, + s.user_prompt, + CASE WHEN sum.memory_session_id IS NOT NULL THEN 1 ELSE 0 END as has_summary + FROM sdk_sessions s + LEFT JOIN session_summaries sum ON s.memory_session_id = sum.memory_session_id + WHERE s.project = ? AND s.memory_session_id IS NOT NULL + GROUP BY s.memory_session_id + ORDER BY s.started_at_epoch DESC + LIMIT ? + ) + ORDER BY started_at_epoch ASC + `); + + return stmt.all(project, limit) as SessionWithStatus[]; +} + +/** + * Get full session summary by ID (includes request_summary and learned_summary) + */ +export function getSessionSummaryById( + db: Database, + id: number +): SessionSummaryDetail | null { + const stmt = db.prepare(` + SELECT + id, + memory_session_id, + content_session_id, + project, + user_prompt, + request_summary, + learned_summary, + status, + created_at, + created_at_epoch + FROM sdk_sessions + WHERE id = ? + LIMIT 1 + `); + + return (stmt.get(id) as SessionSummaryDetail | undefined) || null; +} diff --git a/src/services/sqlite/sessions/types.ts b/src/services/sqlite/sessions/types.ts new file mode 100644 index 00000000..a5c9ab35 --- /dev/null +++ b/src/services/sqlite/sessions/types.ts @@ -0,0 +1,58 @@ +/** + * Session-related type definitions + * Standalone types for session query results + */ + +/** + * Basic session info (minimal fields) + */ +export interface SessionBasic { + id: number; + content_session_id: string; + memory_session_id: string | null; + project: string; + user_prompt: string; +} + +/** + * Full session record with timestamps + */ +export interface SessionFull { + id: number; + content_session_id: string; + memory_session_id: string; + project: string; + user_prompt: string; + started_at: string; + started_at_epoch: number; + completed_at: string | null; + completed_at_epoch: number | null; + status: string; +} + +/** + * Session with summary info for status display + */ +export interface SessionWithStatus { + memory_session_id: string | null; + status: string; + started_at: string; + user_prompt: string | null; + has_summary: boolean; +} + +/** + * Session summary with all detail fields + */ +export interface SessionSummaryDetail { + id: number; + memory_session_id: string | null; + content_session_id: string; + project: string; + user_prompt: string; + request_summary: string | null; + learned_summary: string | null; + status: string; + created_at: string; + created_at_epoch: number; +} diff --git a/src/services/sqlite/summaries/get.ts b/src/services/sqlite/summaries/get.ts new file mode 100644 index 00000000..329011c0 --- /dev/null +++ b/src/services/sqlite/summaries/get.ts @@ -0,0 +1,86 @@ +/** + * Get session summaries from the database + */ +import type { Database } from 'bun:sqlite'; +import type { SessionSummaryRecord } from '../../../types/database.js'; +import type { SessionSummary, GetByIdsOptions } from './types.js'; + +/** + * Get summary for a specific session + * + * @param db - Database instance + * @param memorySessionId - SDK memory session ID + * @returns Most recent summary for the session, or null if none exists + */ +export function getSummaryForSession( + db: Database, + memorySessionId: string +): SessionSummary | null { + const stmt = db.prepare(` + SELECT + request, investigated, learned, completed, next_steps, + files_read, files_edited, notes, prompt_number, created_at, + created_at_epoch + FROM session_summaries + WHERE memory_session_id = ? + ORDER BY created_at_epoch DESC + LIMIT 1 + `); + + return (stmt.get(memorySessionId) as SessionSummary | undefined) || null; +} + +/** + * Get a single session summary by ID + * + * @param db - Database instance + * @param id - Summary ID + * @returns Full summary record or null if not found + */ +export function getSummaryById( + db: Database, + id: number +): SessionSummaryRecord | null { + const stmt = db.prepare(` + SELECT * FROM session_summaries WHERE id = ? + `); + + return (stmt.get(id) as SessionSummaryRecord | undefined) || null; +} + +/** + * Get session summaries by IDs (for hybrid Chroma search) + * Returns summaries in specified temporal order + * + * @param db - Database instance + * @param ids - Array of summary IDs + * @param options - Query options (orderBy, limit, project) + */ +export function getSummariesByIds( + db: Database, + ids: number[], + options: GetByIdsOptions = {} +): SessionSummaryRecord[] { + if (ids.length === 0) return []; + + const { orderBy = 'date_desc', limit, project } = options; + const orderClause = orderBy === 'date_asc' ? 'ASC' : 'DESC'; + const limitClause = limit ? `LIMIT ${limit}` : ''; + const placeholders = ids.map(() => '?').join(','); + const params: (number | string)[] = [...ids]; + + // Apply project filter + const whereClause = project + ? `WHERE id IN (${placeholders}) AND project = ?` + : `WHERE id IN (${placeholders})`; + if (project) params.push(project); + + const stmt = db.prepare(` + SELECT * FROM session_summaries + ${whereClause} + ORDER BY created_at_epoch ${orderClause} + ${limitClause} + `); + + return stmt.all(...params) as SessionSummaryRecord[]; +} diff --git a/src/services/sqlite/summaries/recent.ts b/src/services/sqlite/summaries/recent.ts new file mode 100644 index 00000000..3e29fd95 --- /dev/null +++ b/src/services/sqlite/summaries/recent.ts @@ -0,0 +1,77 @@ +/** + * Get recent session summaries from the database + */ +import type { Database } from 'bun:sqlite'; +import type { RecentSummary, SummaryWithSessionInfo, FullSummary } from './types.js'; + +/** + * Get recent session summaries for a project + * + * @param db - Database instance + * @param project - Project name to filter by + * @param limit - Maximum number of summaries to return (default 10) + */ +export function getRecentSummaries( + db: Database, + project: string, + limit: number = 10 +): RecentSummary[] { + const stmt = db.prepare(` + SELECT + request, investigated, learned, completed, next_steps, + files_read, files_edited, notes, prompt_number, created_at + FROM session_summaries + WHERE project = ? + ORDER BY created_at_epoch DESC + LIMIT ? + `); + + return stmt.all(project, limit) as RecentSummary[]; +} + +/** + * Get recent summaries with session info for context display + * + * @param db - Database instance + * @param project - Project name to filter by + * @param limit - Maximum number of summaries to return (default 3) + */ +export function getRecentSummariesWithSessionInfo( + db: Database, + project: string, + limit: number = 3 +): SummaryWithSessionInfo[] { + const stmt = db.prepare(` + SELECT + memory_session_id, request, learned, completed, next_steps, + prompt_number, created_at + FROM session_summaries + WHERE project = ? + ORDER BY created_at_epoch DESC + LIMIT ? + `); + + return stmt.all(project, limit) as SummaryWithSessionInfo[]; +} + +/** + * Get recent summaries across all projects (for web UI) + * + * @param db - Database instance + * @param limit - Maximum number of summaries to return (default 50) + */ +export function getAllRecentSummaries( + db: Database, + limit: number = 50 +): FullSummary[] { + const stmt = db.prepare(` + SELECT id, request, investigated, learned, completed, next_steps, + files_read, files_edited, notes, project, prompt_number, + created_at, created_at_epoch + FROM session_summaries + ORDER BY created_at_epoch DESC + LIMIT ? + `); + + return stmt.all(limit) as FullSummary[]; +} diff --git a/src/services/sqlite/summaries/store.ts b/src/services/sqlite/summaries/store.ts new file mode 100644 index 00000000..625b7728 --- /dev/null +++ b/src/services/sqlite/summaries/store.ts @@ -0,0 +1,58 @@ +/** + * Store session summaries in the database + */ +import type { Database } from 'bun:sqlite'; +import type { SummaryInput, StoreSummaryResult } from './types.js'; + +/** + * Store a session summary (from SDK parsing) + * Assumes session already exists - will fail with FK error if not + * + * @param db - Database instance + * @param memorySessionId - SDK memory session ID + * @param project - Project name + * @param summary - Summary content from SDK parsing + * @param promptNumber - Optional prompt number + * @param discoveryTokens - Token count for discovery (default 0) + * @param overrideTimestampEpoch - Optional timestamp override for backlog processing + */ +export function storeSummary( + db: Database, + memorySessionId: string, + project: string, + summary: SummaryInput, + promptNumber?: number, + discoveryTokens: number = 0, + overrideTimestampEpoch?: number +): StoreSummaryResult { + // Use override timestamp if provided (for processing backlog messages with original timestamps) + const timestampEpoch = overrideTimestampEpoch ?? Date.now(); + const timestampIso = new Date(timestampEpoch).toISOString(); + + const stmt = db.prepare(` + INSERT INTO session_summaries + (memory_session_id, project, request, investigated, learned, completed, + next_steps, notes, prompt_number, discovery_tokens, created_at, created_at_epoch) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `); + + const result = stmt.run( + memorySessionId, + project, + summary.request, + summary.investigated, + summary.learned, + summary.completed, + summary.next_steps, + summary.notes, + promptNumber || null, + discoveryTokens, + timestampIso, + timestampEpoch + ); + + return { + id: Number(result.lastInsertRowid), + createdAtEpoch: timestampEpoch + }; +} diff --git a/src/services/sqlite/summaries/types.ts b/src/services/sqlite/summaries/types.ts new file mode 100644 index 00000000..93e8bead --- /dev/null +++ b/src/services/sqlite/summaries/types.ts @@ -0,0 +1,97 @@ +/** + * Type definitions for summary-related database operations + */ + +/** + * Summary input for storage (from SDK parsing) + */ +export interface SummaryInput { + request: string; + investigated: string; + learned: string; + completed: string; + next_steps: string; + notes: string | null; +} + +/** + * Result from storing a summary + */ +export interface StoreSummaryResult { + id: number; + createdAtEpoch: number; +} + +/** + * Summary for a specific session (minimal fields) + */ +export interface SessionSummary { + request: string | null; + investigated: string | null; + learned: string | null; + completed: string | null; + next_steps: string | null; + files_read: string | null; + files_edited: string | null; + notes: string | null; + prompt_number: number | null; + created_at: string; + created_at_epoch: number; +} + +/** + * Summary with session info for context display + */ +export interface SummaryWithSessionInfo { + memory_session_id: string; + request: string | null; + learned: string | null; + completed: string | null; + next_steps: string | null; + prompt_number: number | null; + created_at: string; +} + +/** + * Recent summary (for project-scoped queries) + */ +export interface RecentSummary { + request: string | null; + investigated: string | null; + learned: string | null; + completed: string | null; + next_steps: string | null; + files_read: string | null; + files_edited: string | null; + notes: string | null; + prompt_number: number | null; + created_at: string; +} + +/** + * Full summary with all fields (for web UI) + */ +export interface FullSummary { + id: number; + request: string | null; + investigated: string | null; + learned: string | null; + completed: string | null; + next_steps: string | null; + files_read: string | null; + files_edited: string | null; + notes: string | null; + project: string; + prompt_number: number | null; + created_at: string; + created_at_epoch: number; +} + +/** + * Options for getByIds query + */ +export interface GetByIdsOptions { + orderBy?: 'date_desc' | 'date_asc'; + limit?: number; + project?: string; +} diff --git a/src/services/sqlite/timeline/queries.ts b/src/services/sqlite/timeline/queries.ts new file mode 100644 index 00000000..4a18c472 --- /dev/null +++ b/src/services/sqlite/timeline/queries.ts @@ -0,0 +1,218 @@ +/** + * Timeline query functions + * Provides time-based context queries for observations, sessions, and prompts + * + * grep-friendly: getTimelineAroundTimestamp, getTimelineAroundObservation, getAllProjects + */ + +import type { Database } from 'bun:sqlite'; +import type { ObservationRecord, SessionSummaryRecord, UserPromptRecord } from '../../../types/database.js'; +import { logger } from '../../../utils/logger.js'; + +/** + * Timeline result containing observations, sessions, and prompts within a time window + */ +export interface TimelineResult { + observations: ObservationRecord[]; + sessions: Array<{ + id: number; + memory_session_id: string; + project: string; + request: string | null; + completed: string | null; + next_steps: string | null; + created_at: string; + created_at_epoch: number; + }>; + prompts: Array<{ + id: number; + content_session_id: string; + prompt_number: number; + prompt_text: string; + project: string | undefined; + created_at: string; + created_at_epoch: number; + }>; +} + +/** + * Get timeline around a specific timestamp + * Convenience wrapper that delegates to getTimelineAroundObservation with null anchor + * + * @param db Database connection + * @param anchorEpoch Epoch timestamp to anchor the query around + * @param depthBefore Number of records to retrieve before anchor (any type) + * @param depthAfter Number of records to retrieve after anchor (any type) + * @param project Optional project filter + * @returns Object containing observations, sessions, and prompts for the specified window + */ +export function getTimelineAroundTimestamp( + db: Database, + anchorEpoch: number, + depthBefore: number = 10, + depthAfter: number = 10, + project?: string +): TimelineResult { + return getTimelineAroundObservation(db, null, anchorEpoch, depthBefore, depthAfter, project); +} + +/** + * Get timeline around a specific observation ID + * Uses observation ID offsets to determine time boundaries, then fetches all record types in that window + * + * @param db Database connection + * @param anchorObservationId Observation ID to anchor around (null for timestamp-based) + * @param anchorEpoch Epoch timestamp fallback or anchor for timestamp-based queries + * @param depthBefore Number of records to retrieve before anchor + * @param depthAfter Number of records to retrieve after anchor + * @param project Optional project filter + * @returns Object containing observations, sessions, and prompts for the specified window + */ +export function getTimelineAroundObservation( + db: Database, + anchorObservationId: number | null, + anchorEpoch: number, + depthBefore: number = 10, + depthAfter: number = 10, + project?: string +): TimelineResult { + const projectFilter = project ? 'AND project = ?' : ''; + const projectParams = project ? [project] : []; + + let startEpoch: number; + let endEpoch: number; + + if (anchorObservationId !== null) { + // Get boundary observations by ID offset + const beforeQuery = ` + SELECT id, created_at_epoch + FROM observations + WHERE id <= ? ${projectFilter} + ORDER BY id DESC + LIMIT ? + `; + const afterQuery = ` + SELECT id, created_at_epoch + FROM observations + WHERE id >= ? ${projectFilter} + ORDER BY id ASC + LIMIT ? + `; + + try { + const beforeRecords = db.prepare(beforeQuery).all(anchorObservationId, ...projectParams, depthBefore + 1) as Array<{id: number; created_at_epoch: number}>; + const afterRecords = db.prepare(afterQuery).all(anchorObservationId, ...projectParams, depthAfter + 1) as Array<{id: number; created_at_epoch: number}>; + + // Get the earliest and latest timestamps from boundary observations + if (beforeRecords.length === 0 && afterRecords.length === 0) { + return { observations: [], sessions: [], prompts: [] }; + } + + startEpoch = beforeRecords.length > 0 ? beforeRecords[beforeRecords.length - 1].created_at_epoch : anchorEpoch; + endEpoch = afterRecords.length > 0 ? afterRecords[afterRecords.length - 1].created_at_epoch : anchorEpoch; + } catch (err: any) { + logger.error('DB', 'Error getting boundary observations', undefined, { error: err, project }); + return { observations: [], sessions: [], prompts: [] }; + } + } else { + // For timestamp-based anchors, use time-based boundaries + // Get observations to find the time window + const beforeQuery = ` + SELECT created_at_epoch + FROM observations + WHERE created_at_epoch <= ? ${projectFilter} + ORDER BY created_at_epoch DESC + LIMIT ? + `; + const afterQuery = ` + SELECT created_at_epoch + FROM observations + WHERE created_at_epoch >= ? ${projectFilter} + ORDER BY created_at_epoch ASC + LIMIT ? + `; + + try { + const beforeRecords = db.prepare(beforeQuery).all(anchorEpoch, ...projectParams, depthBefore) as Array<{created_at_epoch: number}>; + const afterRecords = db.prepare(afterQuery).all(anchorEpoch, ...projectParams, depthAfter + 1) as Array<{created_at_epoch: number}>; + + if (beforeRecords.length === 0 && afterRecords.length === 0) { + return { observations: [], sessions: [], prompts: [] }; + } + + startEpoch = beforeRecords.length > 0 ? beforeRecords[beforeRecords.length - 1].created_at_epoch : anchorEpoch; + endEpoch = afterRecords.length > 0 ? afterRecords[afterRecords.length - 1].created_at_epoch : anchorEpoch; + } catch (err: any) { + logger.error('DB', 'Error getting boundary timestamps', undefined, { error: err, project }); + return { observations: [], sessions: [], prompts: [] }; + } + } + + // Now query ALL record types within the time window + const obsQuery = ` + SELECT * + FROM observations + WHERE created_at_epoch >= ? AND created_at_epoch <= ? ${projectFilter} + ORDER BY created_at_epoch ASC + `; + + const sessQuery = ` + SELECT * + FROM session_summaries + WHERE created_at_epoch >= ? AND created_at_epoch <= ? ${projectFilter} + ORDER BY created_at_epoch ASC + `; + + const promptQuery = ` + SELECT up.*, s.project, s.memory_session_id + FROM user_prompts up + JOIN sdk_sessions s ON up.content_session_id = s.content_session_id + WHERE up.created_at_epoch >= ? AND up.created_at_epoch <= ? ${projectFilter.replace('project', 's.project')} + ORDER BY up.created_at_epoch ASC + `; + + const observations = db.prepare(obsQuery).all(startEpoch, endEpoch, ...projectParams) as ObservationRecord[]; + const sessions = db.prepare(sessQuery).all(startEpoch, endEpoch, ...projectParams) as SessionSummaryRecord[]; + const prompts = db.prepare(promptQuery).all(startEpoch, endEpoch, ...projectParams) as UserPromptRecord[]; + + return { + observations, + sessions: sessions.map(s => ({ + id: s.id, + memory_session_id: s.memory_session_id, + project: s.project, + request: s.request, + completed: s.completed, + next_steps: s.next_steps, + created_at: s.created_at, + created_at_epoch: s.created_at_epoch + })), + prompts: prompts.map(p => ({ + id: p.id, + content_session_id: p.content_session_id, + prompt_number: p.prompt_number, + prompt_text: p.prompt_text, + project: p.project, + created_at: p.created_at, + created_at_epoch: p.created_at_epoch + })) + }; +} + +/** + * Get all unique projects from the database (for web UI project filter) + * + * @param db Database connection + * @returns Array of unique project names + */ +export function getAllProjects(db: Database): string[] { + const stmt = db.prepare(` + SELECT DISTINCT project + FROM sdk_sessions + WHERE project IS NOT NULL AND project != '' + ORDER BY project ASC + `); + + const rows = stmt.all() as Array<{ project: string }>; + return rows.map(row => row.project); +} diff --git a/src/services/sqlite/transactions.ts b/src/services/sqlite/transactions.ts new file mode 100644 index 00000000..267c5380 --- /dev/null +++ b/src/services/sqlite/transactions.ts @@ -0,0 +1,236 @@ +/** + * Cross-boundary database transactions + * + * This module contains atomic transactions that span multiple domains + * (observations, summaries, pending messages). These functions ensure + * data consistency across domain boundaries. + */ + +import { Database } from 'bun:sqlite'; +import type { ObservationInput } from './observations/types.js'; +import type { SummaryInput } from './summaries/types.js'; + +/** + * Result from storeObservations / storeObservationsAndMarkComplete transaction + */ +export interface StoreObservationsResult { + observationIds: number[]; + summaryId: number | null; + createdAtEpoch: number; +} + +// Legacy alias for backwards compatibility +export type StoreAndMarkCompleteResult = StoreObservationsResult; + +/** + * ATOMIC: Store observations + summary + mark pending message as processed + * + * This function wraps observation storage, summary storage, and message completion + * in a single database transaction to prevent race conditions. If the worker crashes + * during processing, either all operations succeed together or all fail together. + * + * This fixes the observation duplication bug where observations were stored but + * the message wasn't marked complete, causing reprocessing on crash recovery. + * + * @param db - Database instance + * @param memorySessionId - SDK memory session ID + * @param project - Project name + * @param observations - Array of observations to store (can be empty) + * @param summary - Optional summary to store + * @param messageId - Pending message ID to mark as processed + * @param promptNumber - Optional prompt number + * @param discoveryTokens - Discovery tokens count + * @param overrideTimestampEpoch - Optional override timestamp + * @returns Object with observation IDs, optional summary ID, and timestamp + */ +export function storeObservationsAndMarkComplete( + db: Database, + memorySessionId: string, + project: string, + observations: ObservationInput[], + summary: SummaryInput | null, + messageId: number, + promptNumber?: number, + discoveryTokens: number = 0, + overrideTimestampEpoch?: number +): StoreAndMarkCompleteResult { + // Use override timestamp if provided + const timestampEpoch = overrideTimestampEpoch ?? Date.now(); + const timestampIso = new Date(timestampEpoch).toISOString(); + + // Create transaction that wraps all operations + const storeAndMarkTx = db.transaction(() => { + const observationIds: number[] = []; + + // 1. Store all observations + const obsStmt = db.prepare(` + INSERT INTO observations + (memory_session_id, project, type, title, subtitle, facts, narrative, concepts, + files_read, files_modified, prompt_number, discovery_tokens, created_at, created_at_epoch) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `); + + for (const observation of observations) { + const result = obsStmt.run( + memorySessionId, + project, + observation.type, + observation.title, + observation.subtitle, + JSON.stringify(observation.facts), + observation.narrative, + JSON.stringify(observation.concepts), + JSON.stringify(observation.files_read), + JSON.stringify(observation.files_modified), + promptNumber || null, + discoveryTokens, + timestampIso, + timestampEpoch + ); + observationIds.push(Number(result.lastInsertRowid)); + } + + // 2. Store summary if provided + let summaryId: number | null = null; + if (summary) { + const summaryStmt = db.prepare(` + INSERT INTO session_summaries + (memory_session_id, project, request, investigated, learned, completed, + next_steps, notes, prompt_number, discovery_tokens, created_at, created_at_epoch) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `); + + const result = summaryStmt.run( + memorySessionId, + project, + summary.request, + summary.investigated, + summary.learned, + summary.completed, + summary.next_steps, + summary.notes, + promptNumber || null, + discoveryTokens, + timestampIso, + timestampEpoch + ); + summaryId = Number(result.lastInsertRowid); + } + + // 3. Mark pending message as processed + // This UPDATE is part of the same transaction, so if it fails, + // observations and summary will be rolled back + const updateStmt = db.prepare(` + UPDATE pending_messages + SET + status = 'processed', + completed_at_epoch = ?, + tool_input = NULL, + tool_response = NULL + WHERE id = ? AND status = 'processing' + `); + updateStmt.run(timestampEpoch, messageId); + + return { observationIds, summaryId, createdAtEpoch: timestampEpoch }; + }); + + // Execute the transaction and return results + return storeAndMarkTx(); +} + +/** + * ATOMIC: Store observations + summary (no message tracking) + * + * Simplified version for use with claim-and-delete queue pattern. + * Messages are deleted from queue immediately on claim, so there's no + * message completion to track. This just stores observations and summary. + * + * @param db - Database instance + * @param memorySessionId - SDK memory session ID + * @param project - Project name + * @param observations - Array of observations to store (can be empty) + * @param summary - Optional summary to store + * @param promptNumber - Optional prompt number + * @param discoveryTokens - Discovery tokens count + * @param overrideTimestampEpoch - Optional override timestamp + * @returns Object with observation IDs, optional summary ID, and timestamp + */ +export function storeObservations( + db: Database, + memorySessionId: string, + project: string, + observations: ObservationInput[], + summary: SummaryInput | null, + promptNumber?: number, + discoveryTokens: number = 0, + overrideTimestampEpoch?: number +): StoreObservationsResult { + // Use override timestamp if provided + const timestampEpoch = overrideTimestampEpoch ?? Date.now(); + const timestampIso = new Date(timestampEpoch).toISOString(); + + // Create transaction that wraps all operations + const storeTx = db.transaction(() => { + const observationIds: number[] = []; + + // 1. Store all observations + const obsStmt = db.prepare(` + INSERT INTO observations + (memory_session_id, project, type, title, subtitle, facts, narrative, concepts, + files_read, files_modified, prompt_number, discovery_tokens, created_at, created_at_epoch) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `); + + for (const observation of observations) { + const result = obsStmt.run( + memorySessionId, + project, + observation.type, + observation.title, + observation.subtitle, + JSON.stringify(observation.facts), + observation.narrative, + JSON.stringify(observation.concepts), + JSON.stringify(observation.files_read), + JSON.stringify(observation.files_modified), + promptNumber || null, + discoveryTokens, + timestampIso, + timestampEpoch + ); + observationIds.push(Number(result.lastInsertRowid)); + } + + // 2. Store summary if provided + let summaryId: number | null = null; + if (summary) { + const summaryStmt = db.prepare(` + INSERT INTO session_summaries + (memory_session_id, project, request, investigated, learned, completed, + next_steps, notes, prompt_number, discovery_tokens, created_at, created_at_epoch) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `); + + const result = summaryStmt.run( + memorySessionId, + project, + summary.request, + summary.investigated, + summary.learned, + summary.completed, + summary.next_steps, + summary.notes, + promptNumber || null, + discoveryTokens, + timestampIso, + timestampEpoch + ); + summaryId = Number(result.lastInsertRowid); + } + + return { observationIds, summaryId, createdAtEpoch: timestampEpoch }; + }); + + // Execute the transaction and return results + return storeTx(); +} diff --git a/src/services/worker-service.ts b/src/services/worker-service.ts index 8d25f5fc..8bee65f7 100644 --- a/src/services/worker-service.ts +++ b/src/services/worker-service.ts @@ -1,254 +1,58 @@ /** * Worker Service - Slim Orchestrator * - * Refactored from 2000-line monolith to ~150-line orchestrator. - * Routes organized by feature area in http/routes/*.ts - * See src/services/worker/README.md for architecture details. + * Refactored from 2000-line monolith to ~300-line orchestrator. + * Delegates to specialized modules: + * - src/services/server/ - HTTP server, middleware, error handling + * - src/services/infrastructure/ - Process management, health monitoring, shutdown + * - src/services/integrations/ - IDE integrations (Cursor) + * - src/services/worker/ - Business logic, routes, agents */ -import express from 'express'; -import http from 'http'; import path from 'path'; import * as fs from 'fs'; +import { spawn } from 'child_process'; +import { homedir } from 'os'; +import { existsSync, writeFileSync, readFileSync, mkdirSync } from 'fs'; +import * as readline from 'readline'; import { Client } from '@modelcontextprotocol/sdk/client/index.js'; import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js'; import { getWorkerPort, getWorkerHost } from '../shared/worker-utils.js'; import { logger } from '../utils/logger.js'; -import { exec, execSync, spawn } from 'child_process'; -import { homedir } from 'os'; -import { existsSync, writeFileSync, readFileSync, unlinkSync, mkdirSync } from 'fs'; -import * as readline from 'readline'; -import { promisify } from 'util'; + +// Infrastructure imports import { - readCursorRegistry as readCursorRegistryFromFile, - writeCursorRegistry as writeCursorRegistryToFile, - writeContextFile, - type CursorProjectRegistry -} from '../utils/cursor-utils.js'; + writePidFile, + readPidFile, + removePidFile, + getPlatformTimeout, + cleanupOrphanedProcesses, + spawnDaemon, + createSignalHandler +} from './infrastructure/ProcessManager.js'; +import { + isPortInUse, + waitForHealth, + waitForPortFree, + httpShutdown, + checkVersionMatch +} from './infrastructure/HealthMonitor.js'; +import { performGracefulShutdown } from './infrastructure/GracefulShutdown.js'; -const execAsync = promisify(exec); +// Server imports +import { Server } from './server/Server.js'; -// Build-time injected version constant (set by esbuild define) -declare const __DEFAULT_PACKAGE_VERSION__: string; -const BUILT_IN_VERSION = typeof __DEFAULT_PACKAGE_VERSION__ !== 'undefined' - ? __DEFAULT_PACKAGE_VERSION__ - : 'development'; +// Integration imports +import { + updateCursorContextForProject, + handleCursorCommand, + detectClaudeCode, + findCursorHooksDir, + installCursorHooks, + configureCursorMcp +} from './integrations/CursorHooksInstaller.js'; -// PID file management for self-spawn pattern -const DATA_DIR = path.join(homedir(), '.claude-mem'); -const PID_FILE = path.join(DATA_DIR, 'worker.pid'); -const CURSOR_REGISTRY_FILE = path.join(DATA_DIR, 'cursor-projects.json'); -const HOOK_RESPONSE = '{"continue": true, "suppressOutput": true}'; - -interface PidInfo { - pid: number; - port: number; - startedAt: string; -} - -// PID file utility functions -function writePidFile(info: PidInfo): void { - mkdirSync(DATA_DIR, { recursive: true }); - writeFileSync(PID_FILE, JSON.stringify(info, null, 2)); -} - -function readPidFile(): PidInfo | null { - if (!existsSync(PID_FILE)) return null; - - try { - return JSON.parse(readFileSync(PID_FILE, 'utf-8')); - } catch (error) { - logger.warn('SYSTEM', 'Failed to parse PID file', { path: PID_FILE }, error as Error); - return null; - } -} - -function removePidFile(): void { - if (!existsSync(PID_FILE)) return; - - try { - unlinkSync(PID_FILE); - } catch (error) { - // [ANTI-PATTERN IGNORED]: Cleanup function - PID file removal failure is non-critical - logger.warn('SYSTEM', 'Failed to remove PID file', { path: PID_FILE }, error as Error); - } -} - -// ============================================================================ -// Cursor Project Registry -// Tracks which projects have Cursor hooks installed for auto-context updates -// Uses pure functions from cursor-utils.ts for testability -// ============================================================================ - -function readCursorRegistry(): CursorProjectRegistry { - return readCursorRegistryFromFile(CURSOR_REGISTRY_FILE); -} - -function writeCursorRegistry(registry: CursorProjectRegistry): void { - writeCursorRegistryToFile(CURSOR_REGISTRY_FILE, registry); -} - -function registerCursorProject(projectName: string, workspacePath: string): void { - const registry = readCursorRegistry(); - registry[projectName] = { - workspacePath, - installedAt: new Date().toISOString() - }; - writeCursorRegistry(registry); - logger.info('CURSOR', 'Registered project for auto-context updates', { projectName, workspacePath }); -} - -function unregisterCursorProject(projectName: string): void { - const registry = readCursorRegistry(); - if (registry[projectName]) { - delete registry[projectName]; - writeCursorRegistry(registry); - logger.info('CURSOR', 'Unregistered project', { projectName }); - } -} - -/** - * Update Cursor context files for all registered projects matching this project name. - * Called by SDK agents after saving a summary. - */ -export async function updateCursorContextForProject(projectName: string, port: number): Promise { - const registry = readCursorRegistry(); - const entry = registry[projectName]; - - if (!entry) return; // Project doesn't have Cursor hooks installed - - try { - // Fetch fresh context from worker - const response = await fetch( - `http://127.0.0.1:${port}/api/context/inject?project=${encodeURIComponent(projectName)}` - ); - - if (!response.ok) return; - - const context = await response.text(); - if (!context || !context.trim()) return; - - // Write to the project's Cursor rules file using shared utility - writeContextFile(entry.workspacePath, context); - logger.debug('CURSOR', 'Updated context file', { projectName, workspacePath: entry.workspacePath }); - } catch (error) { - // [ANTI-PATTERN IGNORED]: Background context update - failure is non-critical, user workflow continues - logger.warn('CURSOR', 'Failed to update context file', { projectName }, error as Error); - } -} - -// No lock file needed - health checks and port binding provide coordination - -/** - * Get platform-adjusted timeout (Windows socket cleanup is slower) - */ -function getPlatformTimeout(baseMs: number): number { - const WINDOWS_MULTIPLIER = 2.0; - return process.platform === 'win32' ? Math.round(baseMs * WINDOWS_MULTIPLIER) : baseMs; -} - -async function isPortInUse(port: number): Promise { - try { - // Note: Removed AbortSignal.timeout to avoid Windows Bun cleanup issue (libuv assertion) - const response = await fetch(`http://127.0.0.1:${port}/api/health`); - return response.ok; - } catch (error) { - // [ANTI-PATTERN IGNORED]: Health check polls every 500ms, logging would flood - return false; - } -} - -async function waitForHealth(port: number, timeoutMs: number = 30000): Promise { - const start = Date.now(); - while (Date.now() - start < timeoutMs) { - try { - // Note: Removed AbortSignal.timeout to avoid Windows Bun cleanup issue (libuv assertion) - const response = await fetch(`http://127.0.0.1:${port}/api/readiness`); - if (response.ok) return true; - } catch (error) { - // [ANTI-PATTERN IGNORED]: Retry loop - expected failures during startup, will retry - logger.debug('SYSTEM', 'Service not ready yet, will retry', { port }, error as Error); - } - await new Promise(r => setTimeout(r, 500)); - } - return false; -} - -async function httpShutdown(port: number): Promise { - try { - // Note: Removed AbortSignal.timeout to avoid Windows Bun cleanup issue (libuv assertion) - const response = await fetch(`http://127.0.0.1:${port}/api/admin/shutdown`, { - method: 'POST' - }); - if (!response.ok) { - logger.warn('SYSTEM', 'Shutdown request returned error', { port, status: response.status }); - return false; - } - return true; - } catch (error) { - // Connection refused is expected if worker already stopped - if (error instanceof Error && error.message?.includes('ECONNREFUSED')) { - logger.debug('SYSTEM', 'Worker already stopped', { port }, error); - return false; - } - // Unexpected error - log full details - logger.warn('SYSTEM', 'Shutdown request failed unexpectedly', { port }, error as Error); - return false; - } -} - -async function waitForPortFree(port: number, timeoutMs: number = 10000): Promise { - const start = Date.now(); - while (Date.now() - start < timeoutMs) { - if (!(await isPortInUse(port))) return true; - await new Promise(r => setTimeout(r, 500)); - } - return false; -} - -/** - * Get the plugin version from the installed marketplace package.json - */ -function getInstalledPluginVersion(): string { - const marketplaceRoot = path.join(homedir(), '.claude', 'plugins', 'marketplaces', 'thedotmack'); - const packageJsonPath = path.join(marketplaceRoot, 'package.json'); - const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8')); - return packageJson.version; -} - -/** - * Get the running worker's version via API - */ -async function getRunningWorkerVersion(port: number): Promise { - try { - const response = await fetch(`http://127.0.0.1:${port}/api/version`); - if (!response.ok) return null; - const data = await response.json() as { version: string }; - return data.version; - } catch { - // Expected: worker not running or version endpoint unavailable - logger.debug('SYSTEM', 'Could not fetch worker version', { port }); - return null; - } -} - -/** - * Check if worker version matches plugin version - * Returns true if versions match or if we can't determine (assume match) - */ -async function checkVersionMatch(port: number): Promise<{ matches: boolean; pluginVersion: string; workerVersion: string | null }> { - const pluginVersion = getInstalledPluginVersion(); - const workerVersion = await getRunningWorkerVersion(port); - - // If we can't get worker version, assume it matches (graceful degradation) - if (!workerVersion) { - return { matches: true, pluginVersion, workerVersion }; - } - - return { matches: pluginVersion === workerVersion, pluginVersion, workerVersion }; -} - -// Import composed service layer +// Service layer imports import { DatabaseManager } from './worker/DatabaseManager.js'; import { SessionManager } from './worker/SessionManager.js'; import { SSEBroadcaster } from './worker/SSEBroadcaster.js'; @@ -262,8 +66,7 @@ import { FormattingService } from './worker/FormattingService.js'; import { TimelineService } from './worker/TimelineService.js'; import { SessionEventBroadcaster } from './worker/events/SessionEventBroadcaster.js'; -// Import HTTP layer -import { createMiddleware, summarizeRequestBody as summarizeBody, requireLocalhost } from './worker/http/middleware.js'; +// HTTP route handlers import { ViewerRoutes } from './worker/http/routes/ViewerRoutes.js'; import { SessionRoutes } from './worker/http/routes/SessionRoutes.js'; import { DataRoutes } from './worker/http/routes/DataRoutes.js'; @@ -271,13 +74,15 @@ import { SearchRoutes } from './worker/http/routes/SearchRoutes.js'; import { SettingsRoutes } from './worker/http/routes/SettingsRoutes.js'; import { LogsRoutes } from './worker/http/routes/LogsRoutes.js'; +// Re-export updateCursorContextForProject for SDK agents +export { updateCursorContextForProject }; + export class WorkerService { - private app: express.Application; - private server: http.Server | null = null; + private server: Server; private startTime: number = Date.now(); private mcpClient: Client; - // Initialization flags for MCP/SDK readiness tracking + // Initialization flags private mcpReady: boolean = false; private initializationCompleteFlag: boolean = false; private isShuttingDown: boolean = false; @@ -294,20 +99,13 @@ export class WorkerService { private sessionEventBroadcaster: SessionEventBroadcaster; // Route handlers - private viewerRoutes: ViewerRoutes; - private sessionRoutes: SessionRoutes; - private dataRoutes: DataRoutes; - private searchRoutes: SearchRoutes | null; - private settingsRoutes: SettingsRoutes; - private logsRoutes: LogsRoutes; + private searchRoutes: SearchRoutes | null = null; // Initialization tracking private initializationComplete: Promise; private resolveInitialization!: () => void; constructor() { - this.app = express(); - // Initialize the promise that will resolve when background initialization completes this.initializationComplete = new Promise((resolve) => { this.resolveInitialization = resolve; @@ -319,14 +117,14 @@ export class WorkerService { this.sseBroadcaster = new SSEBroadcaster(); this.sdkAgent = new SDKAgent(this.dbManager, this.sessionManager); this.geminiAgent = new GeminiAgent(this.dbManager, this.sessionManager); - this.geminiAgent.setFallbackAgent(this.sdkAgent); // Enable fallback to Claude on Gemini API failure + this.geminiAgent.setFallbackAgent(this.sdkAgent); this.openRouterAgent = new OpenRouterAgent(this.dbManager, this.sessionManager); - this.openRouterAgent.setFallbackAgent(this.sdkAgent); // Enable fallback to Claude on OpenRouter API failure + this.openRouterAgent.setFallbackAgent(this.sdkAgent); this.paginationHelper = new PaginationHelper(this.dbManager); this.settingsManager = new SettingsManager(this.dbManager); this.sessionEventBroadcaster = new SessionEventBroadcaster(this.sseBroadcaster, this); - // Set callback for when sessions are deleted (to update activity indicator) + // Set callback for when sessions are deleted this.sessionManager.setOnSessionDeleted(() => { this.broadcastProcessingStatus(); }); @@ -337,179 +135,51 @@ export class WorkerService { version: '1.0.0' }, { capabilities: {} }); - // Initialize route handlers (SearchRoutes will use MCP client initially, then switch to SearchManager after DB init) - this.viewerRoutes = new ViewerRoutes(this.sseBroadcaster, this.dbManager, this.sessionManager); - this.sessionRoutes = new SessionRoutes(this.sessionManager, this.dbManager, this.sdkAgent, this.geminiAgent, this.openRouterAgent, this.sessionEventBroadcaster, this); - this.dataRoutes = new DataRoutes(this.paginationHelper, this.dbManager, this.sessionManager, this.sseBroadcaster, this, this.startTime); - // SearchRoutes needs SearchManager which requires initialized DB - will be created in initializeBackground() - this.searchRoutes = null; - this.settingsRoutes = new SettingsRoutes(this.settingsManager); - this.logsRoutes = new LogsRoutes(); + // Initialize HTTP server with core routes + this.server = new Server({ + getInitializationComplete: () => this.initializationCompleteFlag, + getMcpReady: () => this.mcpReady, + onShutdown: () => this.shutdown(), + onRestart: () => this.shutdown() + }); - this.setupMiddleware(); - this.setupRoutes(); + // Register route handlers + this.registerRoutes(); // Register signal handlers early to ensure cleanup even if start() hasn't completed - // The shutdown() method is defensive and safe to call at any initialization stage this.registerSignalHandlers(); } /** * Register signal handlers for graceful shutdown - * Called in constructor to ensure cleanup even if start() hasn't completed */ private registerSignalHandlers(): void { - const handleShutdown = async (signal: string) => { - if (this.isShuttingDown) { - logger.warn('SYSTEM', `Received ${signal} but shutdown already in progress`); - return; - } - this.isShuttingDown = true; + const shutdownRef = { value: this.isShuttingDown }; + const handler = createSignalHandler(() => this.shutdown(), shutdownRef); - logger.info('SYSTEM', `Received ${signal}, shutting down...`); - try { - await this.shutdown(); - process.exit(0); - } catch (error) { - // Top-level signal handler - log any shutdown error and exit - logger.error('SYSTEM', 'Error during shutdown', {}, error as Error); - process.exit(1); - } - }; - - process.on('SIGTERM', () => handleShutdown('SIGTERM')); - process.on('SIGINT', () => handleShutdown('SIGINT')); + process.on('SIGTERM', () => { + this.isShuttingDown = shutdownRef.value; + handler('SIGTERM'); + }); + process.on('SIGINT', () => { + this.isShuttingDown = shutdownRef.value; + handler('SIGINT'); + }); } /** - * Setup Express middleware + * Register all route handlers with the server */ - private setupMiddleware(): void { - const middlewares = createMiddleware(this.summarizeRequestBody.bind(this)); - middlewares.forEach(mw => this.app.use(mw)); - } + private registerRoutes(): void { + // Standard routes + this.server.registerRoutes(new ViewerRoutes(this.sseBroadcaster, this.dbManager, this.sessionManager)); + this.server.registerRoutes(new SessionRoutes(this.sessionManager, this.dbManager, this.sdkAgent, this.geminiAgent, this.openRouterAgent, this.sessionEventBroadcaster, this)); + this.server.registerRoutes(new DataRoutes(this.paginationHelper, this.dbManager, this.sessionManager, this.sseBroadcaster, this, this.startTime)); + this.server.registerRoutes(new SettingsRoutes(this.settingsManager)); + this.server.registerRoutes(new LogsRoutes()); - /** - * Setup HTTP routes (delegate to route classes) - */ - private setupRoutes(): void { - // Health check endpoint - // TEST_BUILD_ID helps verify which build is running during debugging - const TEST_BUILD_ID = 'TEST-008-wrapper-ipc'; - this.app.get('/api/health', (_req, res) => { - res.status(200).json({ - status: 'ok', - build: TEST_BUILD_ID, - managed: process.env.CLAUDE_MEM_MANAGED === 'true', - hasIpc: typeof process.send === 'function', - platform: process.platform, - pid: process.pid, - initialized: this.initializationCompleteFlag, - mcpReady: this.mcpReady, - }); - }); - - // Readiness check endpoint - returns 503 until full initialization completes - // Used by ProcessManager and worker-utils to ensure worker is fully ready before routing requests - this.app.get('/api/readiness', (_req, res) => { - if (this.initializationCompleteFlag) { - res.status(200).json({ - status: 'ready', - mcpReady: this.mcpReady, - }); - } else { - res.status(503).json({ - status: 'initializing', - message: 'Worker is still initializing, please retry', - }); - } - }); - - // Version endpoint - returns the worker's built-in version (compiled at build time) - // This is critical for detecting version mismatch when plugin is updated but worker is still running old code - this.app.get('/api/version', (_req, res) => { - res.status(200).json({ version: BUILT_IN_VERSION }); - }); - - // Instructions endpoint - loads SKILL.md sections on-demand for progressive instruction loading - this.app.get('/api/instructions', async (req, res) => { - const topic = (req.query.topic as string) || 'all'; - const operation = req.query.operation as string | undefined; - - // Path resolution: __dirname is build output directory (plugin/scripts/) - // SKILL.md is at plugin/skills/mem-search/SKILL.md - // Operations are at plugin/skills/mem-search/operations/*.md - - let content: string; - - if (operation) { - const operationPath = path.join(__dirname, '../skills/mem-search/operations', `${operation}.md`); - content = await fs.promises.readFile(operationPath, 'utf-8'); - } else { - const skillPath = path.join(__dirname, '../skills/mem-search/SKILL.md'); - const fullContent = await fs.promises.readFile(skillPath, 'utf-8'); - content = this.extractInstructionSection(fullContent, topic); - } - - res.json({ - content: [{ type: 'text', text: content }] - }); - }); - - // Admin endpoints for process management (localhost-only) - this.app.post('/api/admin/restart', requireLocalhost, async (_req, res) => { - res.json({ status: 'restarting' }); - - // On Windows, if managed by wrapper, send message to parent to handle restart - // This solves the Windows zombie port problem where sockets aren't properly released - const isWindowsManaged = process.platform === 'win32' && - process.env.CLAUDE_MEM_MANAGED === 'true' && - process.send; - - if (isWindowsManaged) { - logger.info('SYSTEM', 'Sending restart request to wrapper'); - process.send!({ type: 'restart' }); - } else { - // Unix or standalone Windows - handle restart ourselves - setTimeout(async () => { - await this.shutdown(); - process.exit(0); - }, 100); - } - }); - - this.app.post('/api/admin/shutdown', requireLocalhost, async (_req, res) => { - res.json({ status: 'shutting_down' }); - - // On Windows, if managed by wrapper, send message to parent to handle shutdown - const isWindowsManaged = process.platform === 'win32' && - process.env.CLAUDE_MEM_MANAGED === 'true' && - process.send; - - if (isWindowsManaged) { - logger.info('SYSTEM', 'Sending shutdown request to wrapper'); - process.send!({ type: 'shutdown' }); - } else { - // Unix or standalone Windows - handle shutdown ourselves - setTimeout(async () => { - await this.shutdown(); - process.exit(0); - }, 100); - } - }); - - this.viewerRoutes.setupRoutes(this.app); - this.sessionRoutes.setupRoutes(this.app); - this.dataRoutes.setupRoutes(this.app); - // searchRoutes is set up after database initialization in initializeBackground() - this.settingsRoutes.setupRoutes(this.app); - this.logsRoutes.setupRoutes(this.app); - - // Register early handler for /api/context/inject to avoid 404 during startup - // This handler waits for initialization to complete before delegating to SearchRoutes - // NOTE: This duplicates logic from SearchRoutes.handleContextInject by design, - // as we need the route available immediately before SearchRoutes is initialized - this.app.get('/api/context/inject', async (req, res, next) => { + // Early handler for /api/context/inject to avoid 404 during startup + this.server.app.get('/api/context/inject', async (req, res, next) => { const timeoutMs = 300000; // 5 minute timeout for slow systems const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error('Initialization timeout')), timeoutMs) @@ -526,106 +196,15 @@ export class WorkerService { }); } - - /** - * Clean up orphaned chroma-mcp processes from previous worker sessions - * Prevents process accumulation and memory leaks - */ - private async cleanupOrphanedProcesses(): Promise { - const isWindows = process.platform === 'win32'; - const pids: number[] = []; - - if (isWindows) { - // Windows: Use PowerShell Get-CimInstance to find chroma-mcp processes - const cmd = `powershell -Command "Get-CimInstance Win32_Process | Where-Object { $_.Name -like '*python*' -and $_.CommandLine -like '*chroma-mcp*' } | Select-Object -ExpandProperty ProcessId"`; - const { stdout } = await execAsync(cmd, { timeout: 60000 }); - - if (!stdout.trim()) { - logger.debug('SYSTEM', 'No orphaned chroma-mcp processes found (Windows)'); - return; - } - - const pidStrings = stdout.trim().split('\n'); - for (const pidStr of pidStrings) { - const pid = parseInt(pidStr.trim(), 10); - // SECURITY: Validate PID is positive integer before adding to list - if (!isNaN(pid) && Number.isInteger(pid) && pid > 0) { - pids.push(pid); - } - } - } else { - // Unix: Use ps aux | grep - const { stdout } = await execAsync('ps aux | grep "chroma-mcp" | grep -v grep || true'); - - if (!stdout.trim()) { - logger.debug('SYSTEM', 'No orphaned chroma-mcp processes found (Unix)'); - return; - } - - const lines = stdout.trim().split('\n'); - for (const line of lines) { - const parts = line.trim().split(/\s+/); - if (parts.length > 1) { - const pid = parseInt(parts[1], 10); - // SECURITY: Validate PID is positive integer before adding to list - if (!isNaN(pid) && Number.isInteger(pid) && pid > 0) { - pids.push(pid); - } - } - } - } - - if (pids.length === 0) { - return; - } - - logger.info('SYSTEM', 'Cleaning up orphaned chroma-mcp processes', { - platform: isWindows ? 'Windows' : 'Unix', - count: pids.length, - pids - }); - - // Kill all found processes - if (isWindows) { - for (const pid of pids) { - // SECURITY: Double-check PID validation before using in taskkill command - if (!Number.isInteger(pid) || pid <= 0) { - logger.warn('SYSTEM', 'Skipping invalid PID', { pid }); - continue; - } - try { - execSync(`taskkill /PID ${pid} /T /F`, { timeout: 60000, stdio: 'ignore' }); - } catch (error) { - // [ANTI-PATTERN IGNORED]: Cleanup loop - process may have exited, continue to next PID - logger.debug('SYSTEM', 'Failed to kill process, may have already exited', { pid }, error as Error); - } - } - } else { - for (const pid of pids) { - try { - process.kill(pid, 'SIGKILL'); - } catch (error) { - // [ANTI-PATTERN IGNORED]: Cleanup loop - process may have exited, continue to next PID - logger.debug('SYSTEM', 'Process already exited', { pid }, error as Error); - } - } - } - - logger.info('SYSTEM', 'Orphaned processes cleaned up', { count: pids.length }); - } - /** * Start the worker service */ async start(): Promise { - // Start HTTP server FIRST - make port available immediately const port = getWorkerPort(); const host = getWorkerHost(); - this.server = await new Promise((resolve, reject) => { - const srv = this.app.listen(port, host, () => resolve(srv)); - srv.on('error', reject); - }); + // Start HTTP server FIRST - make port available immediately + await this.server.listen(port, host); logger.info('SYSTEM', 'Worker started', { host, port, pid: process.pid }); // Do slow initialization in background (non-blocking) @@ -639,7 +218,7 @@ export class WorkerService { */ private async initializeBackground(): Promise { try { - await this.cleanupOrphanedProcesses(); + await cleanupOrphanedProcesses(); // Load mode configuration const { ModeManager } = await import('./domain/ModeManager.js'); @@ -673,7 +252,7 @@ export class WorkerService { timelineService ); this.searchRoutes = new SearchRoutes(searchManager); - this.searchRoutes.setupRoutes(this.app); + this.server.registerRoutes(this.searchRoutes); logger.info('WORKER', 'SearchManager initialized and search routes registered'); // Connect to MCP server @@ -711,7 +290,6 @@ export class WorkerService { logger.warn('SYSTEM', 'Auto-recovery of pending queues failed', {}, error as Error); }); } catch (error) { - // Initialization failure - log and rethrow to keep readiness check failing logger.error('SYSTEM', 'Background initialization failed', {}, error as Error); throw error; } @@ -719,7 +297,6 @@ export class WorkerService { /** * Start a session processor - * It will run continuously until the session is deleted/aborted */ private startSessionProcessor( session: ReturnType, @@ -728,9 +305,7 @@ export class WorkerService { if (!session) return; const sid = session.sessionDbId; - logger.info('SYSTEM', `Starting generator (${source})`, { - sessionId: sid - }); + logger.info('SYSTEM', `Starting generator (${source})`, { sessionId: sid }); session.generatorPromise = this.sdkAgent.startSession(session, this) .catch(error => { @@ -738,7 +313,6 @@ export class WorkerService { sessionId: session.sessionDbId, project: session.project }, error as Error); - // Note: Error is logged but not rethrown - session marked as complete via finally }) .finally(() => { session.generatorPromise = null; @@ -748,9 +322,6 @@ export class WorkerService { /** * Process pending session queues - * Starts SDK agents for sessions that have pending messages but no active processor - * @param sessionLimit Maximum number of sessions to start processing (default: 10) - * @returns Info about what was started */ async processPendingQueues(sessionLimit: number = 10): Promise<{ totalPendingSessions: number; @@ -769,44 +340,32 @@ export class WorkerService { startedSessionIds: [] as number[] }; - if (orphanedSessionIds.length === 0) { - return result; - } + if (orphanedSessionIds.length === 0) return result; logger.info('SYSTEM', `Processing up to ${sessionLimit} of ${orphanedSessionIds.length} pending session queues`); - // Process each session sequentially up to the limit for (const sessionDbId of orphanedSessionIds) { - if (result.sessionsStarted >= sessionLimit) { - break; - } + if (result.sessionsStarted >= sessionLimit) break; try { - // Skip if session already has an active generator const existingSession = this.sessionManager.getSession(sessionDbId); if (existingSession?.generatorPromise) { result.sessionsSkipped++; continue; } - // Initialize session and start SDK agent const session = this.sessionManager.initializeSession(sessionDbId); - logger.info('SYSTEM', `Starting processor for session ${sessionDbId}`, { project: session.project, pendingCount: pendingStore.getPendingCount(sessionDbId) }); - // Start SDK agent (non-blocking) this.startSessionProcessor(session, 'startup-recovery'); - result.sessionsStarted++; result.startedSessionIds.push(sessionDbId); - // Small delay between sessions to avoid rate limiting await new Promise(resolve => setTimeout(resolve, 100)); } catch (error) { - // [ANTI-PATTERN IGNORED]: Recovery loop - skip failed session, continue to next logger.warn('SYSTEM', `Failed to process session ${sessionDbId}`, {}, error as Error); result.sessionsSkipped++; } @@ -815,198 +374,24 @@ export class WorkerService { return result; } - /** - * Extract a specific section from instruction content - * Used by /api/instructions endpoint for progressive instruction loading - */ - private extractInstructionSection(content: string, topic: string): string { - const sections: Record = { - 'workflow': this.extractBetween(content, '## The Workflow', '## Search Parameters'), - 'search_params': this.extractBetween(content, '## Search Parameters', '## Examples'), - 'examples': this.extractBetween(content, '## Examples', '## Why This Workflow'), - 'all': content - }; - - return sections[topic] || sections['all']; - } - - /** - * Extract text between two markers - * Helper for extractInstructionSection - */ - private extractBetween(content: string, startMarker: string, endMarker: string): string { - const startIdx = content.indexOf(startMarker); - const endIdx = content.indexOf(endMarker); - - if (startIdx === -1) return content; - if (endIdx === -1) return content.substring(startIdx); - - return content.substring(startIdx, endIdx).trim(); - } - /** * Shutdown the worker service - * - * IMPORTANT: On Windows, we must kill all child processes before exiting - * to prevent zombie ports. The socket handle can be inherited by children, - * and if not properly closed, the port stays bound after process death. */ async shutdown(): Promise { - logger.info('SYSTEM', 'Shutdown initiated'); - - // Clean up PID file on shutdown - removePidFile(); - - // STEP 1: Enumerate all child processes BEFORE we start closing things - const childPids = await this.getChildProcesses(process.pid); - logger.info('SYSTEM', 'Found child processes', { count: childPids.length, pids: childPids }); - - // STEP 2: Close HTTP server first - if (this.server) { - this.server.closeAllConnections(); - - // Give Windows time to close connections before closing server (prevents zombie ports) - if (process.platform === 'win32') { - await new Promise(r => setTimeout(r, 500)); - } - - await new Promise((resolve, reject) => { - this.server!.close(err => err ? reject(err) : resolve()); - }); - this.server = null; - logger.info('SYSTEM', 'HTTP server closed'); - - // Extra delay on Windows to ensure port is fully released - if (process.platform === 'win32') { - await new Promise(r => setTimeout(r, 500)); - logger.info('SYSTEM', 'Waited for Windows port cleanup'); - } - } - - // STEP 3: Shutdown active sessions - await this.sessionManager.shutdownAll(); - - // STEP 4: Close MCP client connection (signals child to exit gracefully) - if (this.mcpClient) { - await this.mcpClient.close(); - logger.info('SYSTEM', 'MCP client closed'); - } - - // STEP 5: Close database connection (includes ChromaSync cleanup) - await this.dbManager.close(); - - // STEP 6: Force kill any remaining child processes (Windows zombie port fix) - if (childPids.length > 0) { - logger.info('SYSTEM', 'Force killing remaining children'); - for (const pid of childPids) { - await this.forceKillProcess(pid); - } - // Wait for children to fully exit - await this.waitForProcessesExit(childPids, 5000); - } - - logger.info('SYSTEM', 'Worker shutdown complete'); - } - - /** - * Get all child process PIDs (Windows-specific) - */ - private async getChildProcesses(parentPid: number): Promise { - if (process.platform !== 'win32') { - return []; - } - - // SECURITY: Validate PID is a positive integer to prevent command injection - if (!Number.isInteger(parentPid) || parentPid <= 0) { - logger.warn('SYSTEM', 'Invalid parent PID for child process enumeration', { parentPid }); - return []; - } - - try { - const cmd = `powershell -Command "Get-CimInstance Win32_Process | Where-Object { $_.ParentProcessId -eq ${parentPid} } | Select-Object -ExpandProperty ProcessId"`; - const { stdout } = await execAsync(cmd, { timeout: 60000 }); - return stdout - .trim() - .split('\n') - .map(s => parseInt(s.trim(), 10)) - .filter(n => !isNaN(n) && Number.isInteger(n) && n > 0); - } catch (error) { - // Shutdown cleanup - failure is non-critical, continue without child process cleanup - logger.warn('SYSTEM', 'Failed to enumerate child processes', { parentPid }, error as Error); - return []; - } - } - - /** - * Force kill a process by PID (Windows: uses taskkill /F /T) - */ - private async forceKillProcess(pid: number): Promise { - // SECURITY: Validate PID is a positive integer to prevent command injection - if (!Number.isInteger(pid) || pid <= 0) { - logger.warn('SYSTEM', 'Invalid PID for force kill', { pid }); - return; - } - - try { - if (process.platform === 'win32') { - // /T kills entire process tree, /F forces termination - await execAsync(`taskkill /PID ${pid} /T /F`, { timeout: 60000 }); - } else { - process.kill(pid, 'SIGKILL'); - } - logger.info('SYSTEM', 'Killed process', { pid }); - } catch (error) { - // [ANTI-PATTERN IGNORED]: Shutdown cleanup - process already exited, continue - logger.debug('SYSTEM', 'Process already exited during force kill', { pid }, error as Error); - } - } - - /** - * Wait for processes to fully exit - */ - private async waitForProcessesExit(pids: number[], timeoutMs: number): Promise { - const start = Date.now(); - - while (Date.now() - start < timeoutMs) { - const stillAlive = pids.filter(pid => { - try { - process.kill(pid, 0); - return true; - } catch (error) { - // [ANTI-PATTERN IGNORED]: Tight loop checking 100s of PIDs every 100ms during cleanup - return false; - } - }); - - if (stillAlive.length === 0) { - logger.info('SYSTEM', 'All child processes exited'); - return; - } - - logger.debug('SYSTEM', 'Waiting for processes to exit', { stillAlive }); - await new Promise(r => setTimeout(r, 100)); - } - - logger.warn('SYSTEM', 'Timeout waiting for child processes to exit'); - } - - /** - * Summarize request body for logging - * Used to avoid logging sensitive data or large payloads - */ - private summarizeRequestBody(method: string, path: string, body: any): string { - return summarizeBody(method, path, body); + await performGracefulShutdown({ + server: this.server.getHttpServer(), + sessionManager: this.sessionManager, + mcpClient: this.mcpClient, + dbManager: this.dbManager + }); } /** * Broadcast processing status change to SSE clients - * Checks both queue depth and active generators to prevent premature spinner stop - * - * PUBLIC: Called by route handlers (SessionRoutes, DataRoutes) */ broadcastProcessingStatus(): void { const isProcessing = this.sessionManager.isAnySessionProcessing(); - const queueDepth = this.sessionManager.getTotalActiveWork(); // Includes queued + actively processing + const queueDepth = this.sessionManager.getTotalActiveWork(); const activeSessions = this.sessionManager.getActiveSessionCount(); logger.info('WORKER', 'Broadcasting processing status', { @@ -1024,13 +409,9 @@ export class WorkerService { } // ============================================================================ -// Cursor Hooks Installation +// Interactive Setup Wizard // ============================================================================ -/** - * Interactive setup wizard for Cursor users - * Guides through provider selection and API key configuration - */ async function runInteractiveSetup(): Promise { const rl = readline.createInterface({ input: process.stdin, @@ -1051,19 +432,16 @@ async function runInteractiveSetup(): Promise { `); try { - // Step 1: Check environment console.log('Step 1: Checking environment...\n'); const hasClaudeCode = await detectClaudeCode(); const settingsPath = path.join(homedir(), '.claude-mem', 'settings.json'); let settings: Record = {}; - // Load existing settings if present if (existsSync(settingsPath)) { try { settings = JSON.parse(readFileSync(settingsPath, 'utf-8')); } catch (error) { - // [ANTI-PATTERN IGNORED]: Fallback behavior - corrupt settings, continue with defaults logger.debug('SETUP', 'Corrupt settings file, starting fresh', { path: settingsPath }, error as Error); } } @@ -1071,14 +449,13 @@ async function runInteractiveSetup(): Promise { const currentProvider = settings['CLAUDE_MEM_PROVIDER'] as string || (hasClaudeCode ? 'claude-sdk' : 'none'); if (hasClaudeCode) { - console.log('✅ Claude Code detected\n'); + console.log('Claude Code detected\n'); } else { - console.log('ℹ️ Claude Code not detected\n'); + console.log('Claude Code not detected\n'); } console.log(`Current provider: ${currentProvider}\n`); - // Step 2: Provider selection (always show) console.log('Step 2: Choose AI Provider\n'); if (hasClaudeCode) { console.log(' [1] Claude SDK (Recommended - uses your Claude Code subscription)'); @@ -1095,44 +472,39 @@ async function runInteractiveSetup(): Promise { settings['CLAUDE_MEM_PROVIDER'] = 'claude-sdk'; mkdirSync(path.dirname(settingsPath), { recursive: true }); writeFileSync(settingsPath, JSON.stringify(settings, null, 2)); - console.log('\n✅ Claude SDK configured!\n'); + console.log('\nClaude SDK configured!\n'); } else if (providerChoice === '2') { - console.log('\n📝 Configuring Gemini...\n'); + console.log('\nConfiguring Gemini...\n'); console.log(' Get your free API key at: https://aistudio.google.com/apikey\n'); const apiKey = await question('Enter your Gemini API key: '); - - if (!apiKey.trim()) { - console.log('\n⚠️ No API key provided. You can add it later in ~/.claude-mem/settings.json\n'); - } else { + if (apiKey.trim()) { settings['CLAUDE_MEM_PROVIDER'] = 'gemini'; settings['CLAUDE_MEM_GEMINI_API_KEY'] = apiKey.trim(); - mkdirSync(path.dirname(settingsPath), { recursive: true }); writeFileSync(settingsPath, JSON.stringify(settings, null, 2)); - console.log('\n✅ Gemini configured successfully!\n'); + console.log('\nGemini configured successfully!\n'); + } else { + console.log('\nNo API key provided. You can add it later in ~/.claude-mem/settings.json\n'); } } else if (providerChoice === '3') { - console.log('\n📝 Configuring OpenRouter...\n'); + console.log('\nConfiguring OpenRouter...\n'); console.log(' Get your API key at: https://openrouter.ai/keys\n'); const apiKey = await question('Enter your OpenRouter API key: '); - - if (!apiKey.trim()) { - console.log('\n⚠️ No API key provided. You can add it later in ~/.claude-mem/settings.json\n'); - } else { + if (apiKey.trim()) { settings['CLAUDE_MEM_PROVIDER'] = 'openrouter'; settings['CLAUDE_MEM_OPENROUTER_API_KEY'] = apiKey.trim(); - mkdirSync(path.dirname(settingsPath), { recursive: true }); writeFileSync(settingsPath, JSON.stringify(settings, null, 2)); - console.log('\n✅ OpenRouter configured successfully!\n'); + console.log('\nOpenRouter configured successfully!\n'); + } else { + console.log('\nNo API key provided. You can add it later in ~/.claude-mem/settings.json\n'); } } else { - console.log('\n✅ Keeping current settings.\n'); + console.log('\nKeeping current settings.\n'); } - // Step 3: Install location console.log('Step 3: Choose installation scope\n'); console.log(' [1] Project (current directory only) - Recommended'); console.log(' [2] User (all projects for current user)'); @@ -1146,91 +518,75 @@ async function runInteractiveSetup(): Promise { } else if (scopeChoice === '2') { installTarget = 'user'; } else { - console.log('\n⚠️ Skipping hook installation.\n'); + console.log('\nSkipping hook installation.\n'); } - // Step 4: Install hooks (if target selected) if (installTarget) { console.log(`Step 4: Installing Cursor hooks (${installTarget})...\n`); const cursorHooksDir = findCursorHooksDir(); if (!cursorHooksDir) { - console.error('❌ Could not find cursor-hooks directory'); + console.error('Could not find cursor-hooks directory'); console.error(' Make sure you ran npm run build first.'); rl.close(); return 1; } - const installResult = await installCursorHooks(cursorHooksDir, installTarget); - + const installResult = await installCursorHooks(cursorHooksDir, installTarget as 'project' | 'user'); if (installResult !== 0) { rl.close(); return installResult; } - // Step 5: Configure MCP server for memory search console.log('\nStep 5: Configuring MCP server for memory search...\n'); - - const mcpResult = configureCursorMcp(installTarget); + const mcpResult = configureCursorMcp(installTarget as 'project' | 'user'); if (mcpResult !== 0) { - console.warn('⚠️ MCP configuration failed, but hooks are installed.'); + console.warn('MCP configuration failed, but hooks are installed.'); console.warn(' You can manually configure MCP later.\n'); } else { console.log(''); } } - // Step 6: Start worker console.log('\nStep 6: Starting claude-mem worker...\n'); const port = getWorkerPort(); const alreadyRunning = await waitForHealth(port, 1000); if (alreadyRunning) { - console.log('✅ Worker is already running!\n'); + console.log('Worker is already running!\n'); } else { console.log(' Starting worker in background...'); - // Spawn worker daemon - const child = spawn(process.execPath, [__filename, '--daemon'], { - detached: true, - stdio: 'ignore', - windowsHide: true, - env: { ...process.env, CLAUDE_MEM_WORKER_PORT: String(port) } - }); - - if (child.pid === undefined) { - console.error('❌ Failed to start worker'); + const pid = spawnDaemon(__filename, port); + if (pid === undefined) { + console.error('Failed to start worker'); rl.close(); return 1; } - child.unref(); - writePidFile({ pid: child.pid, port, startedAt: new Date().toISOString() }); + writePidFile({ pid, port, startedAt: new Date().toISOString() }); - // Wait for health const healthy = await waitForHealth(port, getPlatformTimeout(30000)); - if (!healthy) { removePidFile(); - console.error('❌ Worker failed to start'); + console.error('Worker failed to start'); rl.close(); return 1; } - console.log('✅ Worker started successfully!\n'); + console.log('Worker started successfully!\n'); } - // Final summary console.log(` ╔══════════════════════════════════════════════════════════════════╗ -║ Setup Complete! 🎉 ║ +║ Setup Complete! ║ ╚══════════════════════════════════════════════════════════════════╝ What's installed: - ✓ Cursor hooks - Automatically capture sessions - ✓ Context injection - Past work injected into new chats - ✓ MCP search server - Ask "what did I work on last week?" + - Cursor hooks - Automatically capture sessions + - Context injection - Past work injected into new chats + - MCP search server - Ask "what did I work on last week?" Next steps: 1. Restart Cursor to load the hooks and MCP server @@ -1253,604 +609,11 @@ Documentation: return 0; } catch (error) { rl.close(); - console.error(`\n❌ Setup failed: ${(error as Error).message}`); + console.error(`\nSetup failed: ${(error as Error).message}`); return 1; } } -/** - * Detect if Claude Code is available - * Checks for the Claude Code CLI and plugin directory - */ -async function detectClaudeCode(): Promise { - try { - // Check for Claude Code CLI - const { stdout } = await execAsync('which claude || where claude', { timeout: 5000 }); - if (stdout.trim()) { - return true; - } - } catch (error) { - // [ANTI-PATTERN IGNORED]: Fallback behavior - CLI not found, continue to directory check - logger.debug('SYSTEM', 'Claude CLI not in PATH', {}, error as Error); - } - - // Check for Claude Code plugin directory - const pluginDir = path.join(homedir(), '.claude', 'plugins'); - if (existsSync(pluginDir)) { - return true; - } - - return false; -} - -/** - * Find cursor-hooks directory - * Searches in order: marketplace install, source repo - * Checks for both bash (common.sh) and PowerShell (common.ps1) scripts - */ -function findCursorHooksDir(): string | null { - const possiblePaths = [ - // Marketplace install location - path.join(homedir(), '.claude', 'plugins', 'marketplaces', 'thedotmack', 'cursor-hooks'), - // Development/source location (relative to built worker-service.cjs in plugin/scripts/) - path.join(path.dirname(__filename), '..', '..', 'cursor-hooks'), - // Alternative dev location - path.join(process.cwd(), 'cursor-hooks'), - ]; - - for (const p of possiblePaths) { - // Check for either bash or PowerShell common script - if (existsSync(path.join(p, 'common.sh')) || existsSync(path.join(p, 'common.ps1'))) { - return p; - } - } - return null; -} - -/** - * Find MCP server script path - * Searches in order: marketplace install, source repo - */ -function findMcpServerPath(): string | null { - const possiblePaths = [ - // Marketplace install location - path.join(homedir(), '.claude', 'plugins', 'marketplaces', 'thedotmack', 'plugin', 'scripts', 'mcp-server.cjs'), - // Development/source location (relative to built worker-service.cjs in plugin/scripts/) - path.join(path.dirname(__filename), 'mcp-server.cjs'), - // Alternative dev location - path.join(process.cwd(), 'plugin', 'scripts', 'mcp-server.cjs'), - ]; - - for (const p of possiblePaths) { - if (existsSync(p)) { - return p; - } - } - return null; -} - -interface CursorMcpConfig { - mcpServers: { - [name: string]: { - command: string; - args?: string[]; - env?: Record; - }; - }; -} - -/** - * Configure MCP server in Cursor's mcp.json - * @param target 'project' or 'user' - * @returns 0 on success, 1 on failure - */ -function configureCursorMcp(target: string): number { - const mcpServerPath = findMcpServerPath(); - - if (!mcpServerPath) { - console.error('❌ Could not find MCP server script'); - console.error(' Expected at: ~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/mcp-server.cjs'); - return 1; - } - - let mcpJsonDir: string; - let mcpJsonPath: string; - - switch (target) { - case 'project': - mcpJsonDir = path.join(process.cwd(), '.cursor'); - mcpJsonPath = path.join(mcpJsonDir, 'mcp.json'); - break; - case 'user': - mcpJsonDir = path.join(homedir(), '.cursor'); - mcpJsonPath = path.join(mcpJsonDir, 'mcp.json'); - break; - default: - console.error(`❌ Invalid target: ${target}. Use: project or user`); - return 1; - } - - try { - // Create directory if needed - mkdirSync(mcpJsonDir, { recursive: true }); - - // Load existing config or create new - let config: CursorMcpConfig = { mcpServers: {} }; - if (existsSync(mcpJsonPath)) { - try { - config = JSON.parse(readFileSync(mcpJsonPath, 'utf-8')); - if (!config.mcpServers) { - config.mcpServers = {}; - } - } catch (error) { - // [ANTI-PATTERN IGNORED]: Fallback behavior - corrupt config, continue with empty - logger.warn('SYSTEM', 'Corrupt mcp.json, creating new config', { path: mcpJsonPath }, error as Error); - config = { mcpServers: {} }; - } - } - - // Add claude-mem MCP server - config.mcpServers['claude-mem'] = { - command: 'node', - args: [mcpServerPath] - }; - - writeFileSync(mcpJsonPath, JSON.stringify(config, null, 2)); - console.log(` ✓ Configured MCP server in ${target === 'user' ? '~/.cursor' : '.cursor'}/mcp.json`); - console.log(` Server path: ${mcpServerPath}`); - - return 0; - } catch (error) { - console.error(`❌ Failed to configure MCP: ${(error as Error).message}`); - return 1; - } -} - -/** - * Handle cursor subcommand for hooks installation - */ -async function handleCursorCommand(subcommand: string, args: string[]): Promise { - switch (subcommand) { - case 'install': { - const target = args[0] || 'project'; - const cursorHooksDir = findCursorHooksDir(); - - if (!cursorHooksDir) { - console.error('❌ Could not find cursor-hooks directory'); - console.error(' Expected at: ~/.claude/plugins/marketplaces/thedotmack/cursor-hooks/'); - return 1; - } - - return installCursorHooks(cursorHooksDir, target); - } - - case 'uninstall': { - const target = args[0] || 'project'; - return uninstallCursorHooks(target); - } - - case 'status': { - return checkCursorHooksStatus(); - } - - case 'setup': { - // Interactive guided setup for Cursor users - return await runInteractiveSetup(); - } - - default: { - console.log(` -Claude-Mem Cursor Integration - -Usage: claude-mem cursor [options] - -Commands: - setup Interactive guided setup (recommended for first-time users) - - install [target] Install Cursor hooks - target: project (default), user, or enterprise - - uninstall [target] Remove Cursor hooks - target: project (default), user, or enterprise - - status Check installation status - -Examples: - npm run cursor:setup # Interactive wizard (recommended) - npm run cursor:install # Install for current project - claude-mem cursor install user # Install globally for user - claude-mem cursor uninstall # Remove from current project - claude-mem cursor status # Check if hooks are installed - -For more info: https://docs.claude-mem.ai/cursor - `); - return 0; - } - } -} - -/** - * Detect platform for script selection - */ -function detectPlatform(): 'windows' | 'unix' { - return process.platform === 'win32' ? 'windows' : 'unix'; -} - -/** - * Get script extension based on platform - */ -function getScriptExtension(): string { - return detectPlatform() === 'windows' ? '.ps1' : '.sh'; -} - -/** - * Install Cursor hooks - */ -async function installCursorHooks(sourceDir: string, target: string): Promise { - const platform = detectPlatform(); - const scriptExt = getScriptExtension(); - - console.log(`\n📦 Installing Claude-Mem Cursor hooks (${target} level, ${platform})...\n`); - - let targetDir: string; - let hooksDir: string; - let workspaceRoot: string = process.cwd(); - - switch (target) { - case 'project': - targetDir = path.join(process.cwd(), '.cursor'); - hooksDir = path.join(targetDir, 'hooks'); - break; - case 'user': - targetDir = path.join(homedir(), '.cursor'); - hooksDir = path.join(targetDir, 'hooks'); - break; - case 'enterprise': - if (process.platform === 'darwin') { - targetDir = '/Library/Application Support/Cursor'; - hooksDir = path.join(targetDir, 'hooks'); - } else if (process.platform === 'linux') { - targetDir = '/etc/cursor'; - hooksDir = path.join(targetDir, 'hooks'); - } else if (process.platform === 'win32') { - targetDir = path.join(process.env.ProgramData || 'C:\\ProgramData', 'Cursor'); - hooksDir = path.join(targetDir, 'hooks'); - } else { - console.error('❌ Enterprise installation not supported on this platform'); - return 1; - } - break; - default: - console.error(`❌ Invalid target: ${target}. Use: project, user, or enterprise`); - return 1; - } - - try { - // Create directories - mkdirSync(hooksDir, { recursive: true }); - - // Determine which scripts to copy based on platform - const commonScript = platform === 'windows' ? 'common.ps1' : 'common.sh'; - const hookScripts = [ - `session-init${scriptExt}`, - `context-inject${scriptExt}`, - `save-observation${scriptExt}`, - `save-file-edit${scriptExt}`, - `session-summary${scriptExt}` - ]; - - const scripts = [commonScript, ...hookScripts]; - - for (const script of scripts) { - const srcPath = path.join(sourceDir, script); - const dstPath = path.join(hooksDir, script); - - if (existsSync(srcPath)) { - const content = readFileSync(srcPath, 'utf-8'); - // Unix scripts need execute permission; Windows PowerShell doesn't need it - const mode = platform === 'windows' ? undefined : 0o755; - writeFileSync(dstPath, content, mode ? { mode } : undefined); - console.log(` ✓ Copied ${script}`); - } else { - console.warn(` ⚠ ${script} not found in source`); - } - } - - // Generate hooks.json with correct paths and platform-appropriate commands - const hooksJsonPath = path.join(targetDir, 'hooks.json'); - const hookPrefix = target === 'project' ? './.cursor/hooks/' : `${hooksDir}/`; - - // For PowerShell, we need to invoke via powershell.exe - const makeHookCommand = (scriptName: string) => { - const scriptPath = `${hookPrefix}${scriptName}${scriptExt}`; - if (platform === 'windows') { - // PowerShell execution: use -ExecutionPolicy Bypass to ensure scripts run - return `powershell.exe -ExecutionPolicy Bypass -File "${scriptPath}"`; - } - return scriptPath; - }; - - const hooksJson = { - version: 1, - hooks: { - beforeSubmitPrompt: [ - { command: makeHookCommand('session-init') }, - { command: makeHookCommand('context-inject') } - ], - afterMCPExecution: [ - { command: makeHookCommand('save-observation') } - ], - afterShellExecution: [ - { command: makeHookCommand('save-observation') } - ], - afterFileEdit: [ - { command: makeHookCommand('save-file-edit') } - ], - stop: [ - { command: makeHookCommand('session-summary') } - ] - } - }; - - writeFileSync(hooksJsonPath, JSON.stringify(hooksJson, null, 2)); - console.log(` ✓ Created hooks.json (${platform} mode)`); - - // For project-level: create initial context file - if (target === 'project') { - const rulesDir = path.join(targetDir, 'rules'); - mkdirSync(rulesDir, { recursive: true }); - - // Try to generate initial context from existing memory - const port = getWorkerPort(); - const projectName = path.basename(workspaceRoot); - let contextGenerated = false; - - console.log(` ⏳ Generating initial context...`); - - try { - // Check if worker is running - const healthResponse = await fetch(`http://127.0.0.1:${port}/api/readiness`); - if (healthResponse.ok) { - // Fetch context - const contextResponse = await fetch( - `http://127.0.0.1:${port}/api/context/inject?project=${encodeURIComponent(projectName)}` - ); - if (contextResponse.ok) { - const context = await contextResponse.text(); - if (context && context.trim()) { - const rulesFile = path.join(rulesDir, 'claude-mem-context.mdc'); - const contextContent = `--- -alwaysApply: true -description: "Claude-mem context from past sessions (auto-updated)" ---- - -# Memory Context from Past Sessions - -The following context is from claude-mem, a persistent memory system that tracks your coding sessions. - -${context} - ---- -*This context is updated after each session. Use claude-mem's MCP search tools for more detailed queries.* -`; - writeFileSync(rulesFile, contextContent); - contextGenerated = true; - console.log(` ✓ Generated initial context from existing memory`); - } - } - } - } catch (error) { - // [ANTI-PATTERN IGNORED]: Fallback behavior - worker not running, use placeholder - logger.debug('CURSOR', 'Worker not running during install', {}, error as Error); - } - - if (!contextGenerated) { - // Create placeholder context file - const rulesFile = path.join(rulesDir, 'claude-mem-context.mdc'); - const placeholderContent = `--- -alwaysApply: true -description: "Claude-mem context from past sessions (auto-updated)" ---- - -# Memory Context from Past Sessions - -*No context yet. Complete your first session and context will appear here.* - -Use claude-mem's MCP search tools for manual memory queries. -`; - writeFileSync(rulesFile, placeholderContent); - console.log(` ✓ Created placeholder context file (will populate after first session)`); - } - - // Register project for automatic context updates after summaries - registerCursorProject(projectName, workspaceRoot); - console.log(` ✓ Registered for auto-context updates`); - } - - console.log(` -✅ Installation complete! - -Hooks installed to: ${targetDir}/hooks.json -Scripts installed to: ${hooksDir} - -Next steps: - 1. Start claude-mem worker: claude-mem start - 2. Restart Cursor to load the hooks - 3. Check Cursor Settings → Hooks tab to verify - -Context Injection: - Context from past sessions is stored in .cursor/rules/claude-mem-context.mdc - and automatically included in every chat. It updates after each session ends. -`); - - return 0; - } catch (error) { - console.error(`\n❌ Installation failed: ${(error as Error).message}`); - if (target === 'enterprise') { - console.error(' Tip: Enterprise installation may require sudo/admin privileges'); - } - return 1; - } -} - -/** - * Uninstall Cursor hooks - */ -function uninstallCursorHooks(target: string): number { - console.log(`\n🗑️ Uninstalling Claude-Mem Cursor hooks (${target} level)...\n`); - - let targetDir: string; - - switch (target) { - case 'project': - targetDir = path.join(process.cwd(), '.cursor'); - break; - case 'user': - targetDir = path.join(homedir(), '.cursor'); - break; - case 'enterprise': - if (process.platform === 'darwin') { - targetDir = '/Library/Application Support/Cursor'; - } else if (process.platform === 'linux') { - targetDir = '/etc/cursor'; - } else { - console.error('❌ Enterprise not supported on Windows'); - return 1; - } - break; - default: - console.error(`❌ Invalid target: ${target}`); - return 1; - } - - try { - const hooksDir = path.join(targetDir, 'hooks'); - const hooksJsonPath = path.join(targetDir, 'hooks.json'); - - // Remove hook scripts for both platforms (in case user switches platforms) - const bashScripts = ['common.sh', 'session-init.sh', 'context-inject.sh', - 'save-observation.sh', 'save-file-edit.sh', 'session-summary.sh']; - const psScripts = ['common.ps1', 'session-init.ps1', 'context-inject.ps1', - 'save-observation.ps1', 'save-file-edit.ps1', 'session-summary.ps1']; - - const allScripts = [...bashScripts, ...psScripts]; - - for (const script of allScripts) { - const scriptPath = path.join(hooksDir, script); - if (existsSync(scriptPath)) { - unlinkSync(scriptPath); - console.log(` ✓ Removed ${script}`); - } - } - - // Remove hooks.json - if (existsSync(hooksJsonPath)) { - unlinkSync(hooksJsonPath); - console.log(` ✓ Removed hooks.json`); - } - - // Remove context file and unregister if project-level - if (target === 'project') { - const contextFile = path.join(targetDir, 'rules', 'claude-mem-context.mdc'); - if (existsSync(contextFile)) { - unlinkSync(contextFile); - console.log(` ✓ Removed context file`); - } - - // Unregister from auto-context updates - const projectName = path.basename(process.cwd()); - unregisterCursorProject(projectName); - console.log(` ✓ Unregistered from auto-context updates`); - } - - console.log(`\n✅ Uninstallation complete!\n`); - console.log('Restart Cursor to apply changes.'); - - return 0; - } catch (error) { - console.error(`\n❌ Uninstallation failed: ${(error as Error).message}`); - return 1; - } -} - -/** - * Check Cursor hooks installation status - */ -function checkCursorHooksStatus(): number { - console.log('\n🔍 Claude-Mem Cursor Hooks Status\n'); - - const locations = [ - { name: 'Project', dir: path.join(process.cwd(), '.cursor') }, - { name: 'User', dir: path.join(homedir(), '.cursor') }, - ]; - - if (process.platform === 'darwin') { - locations.push({ name: 'Enterprise', dir: '/Library/Application Support/Cursor' }); - } else if (process.platform === 'linux') { - locations.push({ name: 'Enterprise', dir: '/etc/cursor' }); - } - - let anyInstalled = false; - - for (const loc of locations) { - const hooksJson = path.join(loc.dir, 'hooks.json'); - const hooksDir = path.join(loc.dir, 'hooks'); - - if (existsSync(hooksJson)) { - anyInstalled = true; - console.log(`✅ ${loc.name}: Installed`); - console.log(` Config: ${hooksJson}`); - - // Detect which platform's scripts are installed - const bashScripts = ['session-init.sh', 'context-inject.sh', 'save-observation.sh']; - const psScripts = ['session-init.ps1', 'context-inject.ps1', 'save-observation.ps1']; - - const hasBash = bashScripts.some(s => existsSync(path.join(hooksDir, s))); - const hasPs = psScripts.some(s => existsSync(path.join(hooksDir, s))); - - if (hasBash && hasPs) { - console.log(` Platform: Both (bash + PowerShell)`); - } else if (hasBash) { - console.log(` Platform: Unix (bash)`); - } else if (hasPs) { - console.log(` Platform: Windows (PowerShell)`); - } else { - console.log(` ⚠ No hook scripts found`); - } - - // Check for appropriate scripts based on current platform - const platform = detectPlatform(); - const scripts = platform === 'windows' ? psScripts : bashScripts; - const missing = scripts.filter(s => !existsSync(path.join(hooksDir, s))); - - if (missing.length > 0) { - console.log(` ⚠ Missing ${platform} scripts: ${missing.join(', ')}`); - } else { - console.log(` Scripts: All present for ${platform}`); - } - - // Check for context file (project only) - if (loc.name === 'Project') { - const contextFile = path.join(loc.dir, 'rules', 'claude-mem-context.mdc'); - if (existsSync(contextFile)) { - console.log(` Context: Active`); - } else { - console.log(` Context: Not yet generated (will be created on first prompt)`); - } - } - } else { - console.log(`❌ ${loc.name}: Not installed`); - } - console.log(''); - } - - if (!anyInstalled) { - console.log('No hooks installed. Run: claude-mem cursor install\n'); - } - - return 0; -} - // ============================================================================ // CLI Entry Point // ============================================================================ @@ -1861,10 +624,7 @@ async function main() { switch (command) { case 'start': { - // Health-check-first approach: simple, fast, reliable - // Check if worker is already healthy if (await waitForHealth(port, 1000)) { - // Worker is healthy - check for version mismatch (issue #484) const versionCheck = await checkVersionMatch(port); if (!versionCheck.matches) { logger.info('SYSTEM', 'Worker version mismatch detected - auto-restarting', { @@ -1872,28 +632,21 @@ async function main() { workerVersion: versionCheck.workerVersion }); - // Shutdown the old worker await httpShutdown(port); const freed = await waitForPortFree(port, getPlatformTimeout(15000)); - if (!freed) { logger.error('SYSTEM', 'Port did not free up after shutdown for version mismatch restart', { port }); process.exit(1); } - removePidFile(); - // Fall through to spawn new daemon below } else { logger.info('SYSTEM', 'Worker already running and healthy'); process.exit(0); } } - // Worker not healthy - check if port is in use const portInUse = await isPortInUse(port); - if (portInUse) { - // Port in use but not healthy - wait a bit longer in case it's starting up logger.info('SYSTEM', 'Port in use, waiting for worker to become healthy'); const healthy = await waitForHealth(port, getPlatformTimeout(15000)); if (healthy) { @@ -1904,28 +657,16 @@ async function main() { process.exit(1); } - // Port not in use - spawn daemon logger.info('SYSTEM', 'Starting worker daemon'); - const child = spawn(process.execPath, [__filename, '--daemon'], { - detached: true, - stdio: 'ignore', - windowsHide: true, - env: { ...process.env, CLAUDE_MEM_WORKER_PORT: String(port) } - }); - - if (child.pid === undefined) { + const pid = spawnDaemon(__filename, port); + if (pid === undefined) { logger.error('SYSTEM', 'Failed to spawn worker daemon'); process.exit(1); } - child.unref(); + writePidFile({ pid, port, startedAt: new Date().toISOString() }); - // Write PID file - writePidFile({ pid: child.pid, port, startedAt: new Date().toISOString() }); - - // Wait for health with platform-adjusted timeout const healthy = await waitForHealth(port, getPlatformTimeout(30000)); - if (!healthy) { removePidFile(); logger.error('SYSTEM', 'Worker failed to start (health check timeout)'); @@ -1937,53 +678,35 @@ async function main() { } case 'stop': { - // Simple stop: send shutdown request, wait for port to free await httpShutdown(port); const freed = await waitForPortFree(port, getPlatformTimeout(15000)); - if (!freed) { logger.warn('SYSTEM', 'Port did not free up after shutdown', { port }); - // Could force kill here if we knew the PID, but for now just warn } - removePidFile(); logger.info('SYSTEM', 'Worker stopped successfully'); process.exit(0); } case 'restart': { - // Simple restart: stop, then start logger.info('SYSTEM', 'Restarting worker'); - await httpShutdown(port); const freed = await waitForPortFree(port, getPlatformTimeout(15000)); - if (!freed) { logger.error('SYSTEM', 'Port did not free up after shutdown, aborting restart', { port }); process.exit(1); } - removePidFile(); - // Spawn new daemon - const child = spawn(process.execPath, [__filename, '--daemon'], { - detached: true, - stdio: 'ignore', - windowsHide: true, - env: { ...process.env, CLAUDE_MEM_WORKER_PORT: String(port) } - }); - - if (child.pid === undefined) { + const pid = spawnDaemon(__filename, port); + if (pid === undefined) { logger.error('SYSTEM', 'Failed to spawn worker daemon during restart'); process.exit(1); } - child.unref(); - writePidFile({ pid: child.pid, port, startedAt: new Date().toISOString() }); + writePidFile({ pid, port, startedAt: new Date().toISOString() }); - // Wait for health const healthy = await waitForHealth(port, getPlatformTimeout(30000)); - if (!healthy) { removePidFile(); logger.error('SYSTEM', 'Worker failed to restart'); @@ -2009,7 +732,6 @@ async function main() { } case 'cursor': { - // Cursor hooks installation subcommand const subcommand = process.argv[3]; const cursorResult = await handleCursorCommand(subcommand, process.argv.slice(4)); process.exit(cursorResult); @@ -2017,9 +739,7 @@ async function main() { case '--daemon': default: { - // Run server directly const worker = new WorkerService(); - worker.start().catch((error) => { logger.failure('SYSTEM', 'Worker failed to start', {}, error as Error); removePidFile(); diff --git a/src/services/worker-types.ts b/src/services/worker-types.ts index f82bb26e..13fe96eb 100644 --- a/src/services/worker-types.ts +++ b/src/services/worker-types.ts @@ -30,7 +30,6 @@ export interface ActiveSession { startTime: number; cumulativeInputTokens: number; // Track input tokens for discovery cost cumulativeOutputTokens: number; // Track output tokens for discovery cost - pendingProcessingIds: Set; // Track ALL message IDs yielded but not yet processed earliestPendingTimestamp: number | null; // Original timestamp of earliest pending message (for accurate observation timestamps) conversationHistory: ConversationMessage[]; // Shared conversation history for provider switching currentProvider: 'claude' | 'gemini' | 'openrouter' | null; // Track which provider is currently running diff --git a/src/services/worker/GeminiAgent.ts b/src/services/worker/GeminiAgent.ts index df21e335..f7c52202 100644 --- a/src/services/worker/GeminiAgent.ts +++ b/src/services/worker/GeminiAgent.ts @@ -15,13 +15,17 @@ import { homedir } from 'os'; import { DatabaseManager } from './DatabaseManager.js'; import { SessionManager } from './SessionManager.js'; import { logger } from '../../utils/logger.js'; -import { parseObservations, parseSummary } from '../../sdk/parser.js'; import { buildInitPrompt, buildObservationPrompt, buildSummaryPrompt, buildContinuationPrompt } from '../../sdk/prompts.js'; import { SettingsDefaultsManager } from '../../shared/SettingsDefaultsManager.js'; import type { ActiveSession, ConversationMessage } from '../worker-types.js'; import { ModeManager } from '../domain/ModeManager.js'; -import { updateCursorContextForProject } from '../worker-service.js'; -import { getWorkerPort } from '../../shared/worker-utils.js'; +import { + processAgentResponse, + shouldFallbackToClaude, + isAbortError, + type WorkerRef, + type FallbackAgent +} from './agents/index.js'; // Gemini API endpoint const GEMINI_API_URL = 'https://generativelanguage.googleapis.com/v1beta/models'; @@ -96,11 +100,6 @@ interface GeminiContent { parts: Array<{ text: string }>; } -// Forward declaration for fallback agent type -type FallbackAgent = { - startSession(session: ActiveSession, worker?: any): Promise; -}; - export class GeminiAgent { private dbManager: DatabaseManager; private sessionManager: SessionManager; @@ -119,28 +118,11 @@ export class GeminiAgent { this.fallbackAgent = agent; } - /** - * Check if an error should trigger fallback to Claude - */ - private shouldFallbackToClaude(error: any): boolean { - const message = error?.message || ''; - // Fall back on rate limit (429), server errors (5xx), or network issues - return ( - message.includes('429') || - message.includes('500') || - message.includes('502') || - message.includes('503') || - message.includes('ECONNREFUSED') || - message.includes('ETIMEDOUT') || - message.includes('fetch failed') - ); - } - /** * Start Gemini agent for a session * Uses multi-turn conversation to maintain context across messages */ - async startSession(session: ActiveSession, worker?: any): Promise { + async startSession(session: ActiveSession, worker?: WorkerRef): Promise { try { // Get Gemini configuration const { apiKey, model, rateLimitingEnabled } = this.getGeminiConfig(); @@ -170,8 +152,17 @@ export class GeminiAgent { session.cumulativeInputTokens += Math.floor(tokensUsed * 0.7); // Rough estimate session.cumulativeOutputTokens += Math.floor(tokensUsed * 0.3); - // Process response (no original timestamp for init - not from queue) - await this.processGeminiResponse(session, initResponse.content, worker, tokensUsed, null); + // Process response using shared ResponseProcessor (no original timestamp for init - not from queue) + await processAgentResponse( + initResponse.content, + session, + this.dbManager, + this.sessionManager, + worker, + tokensUsed, + null, + 'Gemini' + ); } else { logger.warn('SDK', 'Empty Gemini init response - session may lack context', { sessionId: session.sessionDbId, @@ -205,18 +196,27 @@ export class GeminiAgent { session.conversationHistory.push({ role: 'user', content: obsPrompt }); const obsResponse = await this.queryGeminiMultiTurn(session.conversationHistory, apiKey, model, rateLimitingEnabled); + let tokensUsed = 0; if (obsResponse.content) { // Add response to conversation history session.conversationHistory.push({ role: 'assistant', content: obsResponse.content }); - const tokensUsed = obsResponse.tokensUsed || 0; + tokensUsed = obsResponse.tokensUsed || 0; session.cumulativeInputTokens += Math.floor(tokensUsed * 0.7); session.cumulativeOutputTokens += Math.floor(tokensUsed * 0.3); } - // Process response (even if empty) - empty responses will have no observations/summaries - // but messages still need to be marked complete atomically - await this.processGeminiResponse(session, obsResponse.content || '', worker, tokensUsed, originalTimestamp); + // Process response using shared ResponseProcessor + await processAgentResponse( + obsResponse.content || '', + session, + this.dbManager, + this.sessionManager, + worker, + tokensUsed, + originalTimestamp, + 'Gemini' + ); } else if (message.type === 'summarize') { // Build summary prompt @@ -232,18 +232,27 @@ export class GeminiAgent { session.conversationHistory.push({ role: 'user', content: summaryPrompt }); const summaryResponse = await this.queryGeminiMultiTurn(session.conversationHistory, apiKey, model, rateLimitingEnabled); + let tokensUsed = 0; if (summaryResponse.content) { // Add response to conversation history session.conversationHistory.push({ role: 'assistant', content: summaryResponse.content }); - const tokensUsed = summaryResponse.tokensUsed || 0; + tokensUsed = summaryResponse.tokensUsed || 0; session.cumulativeInputTokens += Math.floor(tokensUsed * 0.7); session.cumulativeOutputTokens += Math.floor(tokensUsed * 0.3); } - // Process response (even if empty) - empty responses will have no observations/summaries - // but messages still need to be marked complete atomically - await this.processGeminiResponse(session, summaryResponse.content || '', worker, tokensUsed, originalTimestamp); + // Process response using shared ResponseProcessor + await processAgentResponse( + summaryResponse.content || '', + session, + this.dbManager, + this.sessionManager, + worker, + tokensUsed, + originalTimestamp, + 'Gemini' + ); } } @@ -255,37 +264,26 @@ export class GeminiAgent { historyLength: session.conversationHistory.length }); - } catch (error: any) { - if (error.name === 'AbortError') { + } catch (error: unknown) { + if (isAbortError(error)) { logger.warn('SDK', 'Gemini agent aborted', { sessionId: session.sessionDbId }); throw error; } // Check if we should fall back to Claude - if (this.shouldFallbackToClaude(error) && this.fallbackAgent) { + if (shouldFallbackToClaude(error) && this.fallbackAgent) { logger.warn('SDK', 'Gemini API failed, falling back to Claude SDK', { sessionDbId: session.sessionDbId, - error: error.message, + error: error instanceof Error ? error.message : String(error), historyLength: session.conversationHistory.length }); - // Reset any 'processing' messages back to 'pending' so Claude can retry them - // This handles the case where Gemini failed mid-processing a message - const pendingStore = this.sessionManager.getPendingMessageStore(); - const resetCount = pendingStore.resetStuckMessages(0); // 0 = reset ALL processing messages - if (resetCount > 0) { - logger.info('SDK', 'Reset processing messages for fallback', { - sessionDbId: session.sessionDbId, - resetCount - }); - } - // Fall back to Claude - it will use the same session with shared conversationHistory - // Note: Claude SDK will continue processing from current state + // Note: With claim-and-delete queue pattern, messages are already deleted on claim return this.fallbackAgent.startSession(session, worker); } - logger.failure('SDK', 'Gemini agent error', { sessionDbId: session.sessionDbId }, error); + logger.failure('SDK', 'Gemini agent error', { sessionDbId: session.sessionDbId }, error as Error); throw error; } } @@ -356,166 +354,6 @@ export class GeminiAgent { return { content, tokensUsed }; } - /** - * Process Gemini response (same format as Claude) - * @param originalTimestamp - Original epoch when message was queued (for backlog processing accuracy) - */ - private async processGeminiResponse( - session: ActiveSession, - text: string, - worker: any | undefined, - discoveryTokens: number, - originalTimestamp: number | null - ): Promise { - // Parse observations and summary - const observations = parseObservations(text, session.contentSessionId); - const summary = parseSummary(text, session.sessionDbId); - - // Convert nullable fields to empty strings for storeSummary (if summary exists) - const summaryForStore = summary ? { - request: summary.request || '', - investigated: summary.investigated || '', - learned: summary.learned || '', - completed: summary.completed || '', - next_steps: summary.next_steps || '', - notes: summary.notes - } : null; - - // Get the pending message ID(s) for this response - const pendingMessageStore = this.sessionManager.getPendingMessageStore(); - const sessionStore = this.dbManager.getSessionStore(); - - if (session.pendingProcessingIds.size > 0) { - // ATOMIC TRANSACTION: Store observations + summary + mark message(s) complete - for (const messageId of session.pendingProcessingIds) { - // CRITICAL: Must use memorySessionId (not contentSessionId) for FK constraint - if (!session.memorySessionId) { - throw new Error('Cannot store observations: memorySessionId not yet captured'); - } - - const result = sessionStore.storeObservationsAndMarkComplete( - session.memorySessionId, - session.project, - observations, - summaryForStore, - messageId, - pendingMessageStore, - session.lastPromptNumber, - discoveryTokens, - originalTimestamp ?? undefined - ); - - logger.info('SDK', 'Gemini observations and summary saved atomically', { - sessionId: session.sessionDbId, - messageId, - observationCount: result.observationIds.length, - hasSummary: !!result.summaryId, - atomicTransaction: true - }); - - // AFTER transaction commits - async operations (can fail safely) - for (let i = 0; i < observations.length; i++) { - const obsId = result.observationIds[i]; - const obs = observations[i]; - - this.dbManager.getChromaSync().syncObservation( - obsId, - session.contentSessionId, - session.project, - obs, - session.lastPromptNumber, - result.createdAtEpoch, - discoveryTokens - ).catch(err => { - logger.warn('SDK', 'Gemini chroma sync failed', { obsId }, err); - }); - - // Broadcast to SSE clients - if (worker && worker.sseBroadcaster) { - worker.sseBroadcaster.broadcast({ - type: 'new_observation', - observation: { - id: obsId, - memory_session_id: session.memorySessionId, - session_id: session.contentSessionId, - type: obs.type, - title: obs.title, - subtitle: obs.subtitle, - text: null, - narrative: obs.narrative || null, - facts: JSON.stringify(obs.facts || []), - concepts: JSON.stringify(obs.concepts || []), - files_read: JSON.stringify(obs.files_read || []), - files_modified: JSON.stringify(obs.files_modified || []), - project: session.project, - prompt_number: session.lastPromptNumber, - created_at_epoch: result.createdAtEpoch - } - }); - } - } - - // Sync summary to Chroma (if present) - if (summaryForStore && result.summaryId) { - this.dbManager.getChromaSync().syncSummary( - result.summaryId, - session.contentSessionId, - session.project, - summaryForStore, - session.lastPromptNumber, - result.createdAtEpoch, - discoveryTokens - ).catch(err => { - logger.warn('SDK', 'Gemini chroma sync failed', { summaryId: result.summaryId }, err); - }); - - // Broadcast to SSE clients - if (worker && worker.sseBroadcaster) { - worker.sseBroadcaster.broadcast({ - type: 'new_summary', - summary: { - id: result.summaryId, - session_id: session.contentSessionId, - request: summary!.request, - investigated: summary!.investigated, - learned: summary!.learned, - completed: summary!.completed, - next_steps: summary!.next_steps, - notes: summary!.notes, - project: session.project, - prompt_number: session.lastPromptNumber, - created_at_epoch: result.createdAtEpoch - } - }); - } - - // Update Cursor context file for registered projects (fire-and-forget) - updateCursorContextForProject(session.project, getWorkerPort()).catch(error => { - logger.warn('CURSOR', 'Context update failed (non-critical)', { project: session.project }, error as Error); - }); - } - } - - // Clear the processed message IDs - session.pendingProcessingIds.clear(); - session.earliestPendingTimestamp = null; - - // Clean up old processed messages - const deletedCount = pendingMessageStore.cleanupProcessed(100); - if (deletedCount > 0) { - logger.debug('SDK', 'Cleaned up old processed messages', { deletedCount }); - } - - // Broadcast activity status after processing - if (worker && typeof worker.broadcastProcessingStatus === 'function') { - worker.broadcastProcessingStatus(); - } - } - } - - // REMOVED: markMessagesProcessed() - replaced by atomic transaction in processGeminiResponse() - // Messages are now marked complete atomically with observation storage to prevent duplicates - /** * Get Gemini configuration from settings or environment */ diff --git a/src/services/worker/OpenRouterAgent.ts b/src/services/worker/OpenRouterAgent.ts index 7c69882b..b7ded622 100644 --- a/src/services/worker/OpenRouterAgent.ts +++ b/src/services/worker/OpenRouterAgent.ts @@ -14,14 +14,18 @@ import { DatabaseManager } from './DatabaseManager.js'; import { SessionManager } from './SessionManager.js'; import { logger } from '../../utils/logger.js'; -import { parseObservations, parseSummary } from '../../sdk/parser.js'; import { buildInitPrompt, buildObservationPrompt, buildSummaryPrompt, buildContinuationPrompt } from '../../sdk/prompts.js'; import { SettingsDefaultsManager } from '../../shared/SettingsDefaultsManager.js'; import { USER_SETTINGS_PATH } from '../../shared/paths.js'; import type { ActiveSession, ConversationMessage } from '../worker-types.js'; import { ModeManager } from '../domain/ModeManager.js'; -import { updateCursorContextForProject } from '../worker-service.js'; -import { getWorkerPort } from '../../shared/worker-utils.js'; +import { + processAgentResponse, + shouldFallbackToClaude, + isAbortError, + type WorkerRef, + type FallbackAgent +} from './agents/index.js'; // OpenRouter API endpoint const OPENROUTER_API_URL = 'https://openrouter.ai/api/v1/chat/completions'; @@ -29,7 +33,7 @@ const OPENROUTER_API_URL = 'https://openrouter.ai/api/v1/chat/completions'; // Context window management constants (defaults, overridable via settings) const DEFAULT_MAX_CONTEXT_MESSAGES = 20; // Maximum messages to keep in conversation history const DEFAULT_MAX_ESTIMATED_TOKENS = 100000; // ~100k tokens max context (safety limit) -const CHARS_PER_TOKEN_ESTIMATE = 4; // Conservative estimate: 1 token ≈ 4 chars +const CHARS_PER_TOKEN_ESTIMATE = 4; // Conservative estimate: 1 token = 4 chars // OpenAI-compatible message format interface OpenAIMessage { @@ -56,11 +60,6 @@ interface OpenRouterResponse { }; } -// Forward declaration for fallback agent type -type FallbackAgent = { - startSession(session: ActiveSession, worker?: any): Promise; -}; - export class OpenRouterAgent { private dbManager: DatabaseManager; private sessionManager: SessionManager; @@ -79,28 +78,11 @@ export class OpenRouterAgent { this.fallbackAgent = agent; } - /** - * Check if an error should trigger fallback to Claude - */ - private shouldFallbackToClaude(error: any): boolean { - const message = error?.message || ''; - // Fall back on rate limit (429), server errors (5xx), or network issues - return ( - message.includes('429') || - message.includes('500') || - message.includes('502') || - message.includes('503') || - message.includes('ECONNREFUSED') || - message.includes('ETIMEDOUT') || - message.includes('fetch failed') - ); - } - /** * Start OpenRouter agent for a session * Uses multi-turn conversation to maintain context across messages */ - async startSession(session: ActiveSession, worker?: any): Promise { + async startSession(session: ActiveSession, worker?: WorkerRef): Promise { try { // Get OpenRouter configuration const { apiKey, model, siteUrl, appName } = this.getOpenRouterConfig(); @@ -130,8 +112,17 @@ export class OpenRouterAgent { session.cumulativeInputTokens += Math.floor(tokensUsed * 0.7); // Rough estimate session.cumulativeOutputTokens += Math.floor(tokensUsed * 0.3); - // Process response (no original timestamp for init - not from queue) - await this.processOpenRouterResponse(session, initResponse.content, worker, tokensUsed, null); + // Process response using shared ResponseProcessor (no original timestamp for init - not from queue) + await processAgentResponse( + initResponse.content, + session, + this.dbManager, + this.sessionManager, + worker, + tokensUsed, + null, + 'OpenRouter' + ); } else { logger.warn('SDK', 'Empty OpenRouter init response - session may lack context', { sessionId: session.sessionDbId, @@ -164,18 +155,27 @@ export class OpenRouterAgent { session.conversationHistory.push({ role: 'user', content: obsPrompt }); const obsResponse = await this.queryOpenRouterMultiTurn(session.conversationHistory, apiKey, model, siteUrl, appName); + let tokensUsed = 0; if (obsResponse.content) { // Add response to conversation history session.conversationHistory.push({ role: 'assistant', content: obsResponse.content }); - const tokensUsed = obsResponse.tokensUsed || 0; + tokensUsed = obsResponse.tokensUsed || 0; session.cumulativeInputTokens += Math.floor(tokensUsed * 0.7); session.cumulativeOutputTokens += Math.floor(tokensUsed * 0.3); } - // Process response (even if empty) - empty responses will have no observations/summaries - // but messages still need to be marked complete atomically - await this.processOpenRouterResponse(session, obsResponse.content || '', worker, tokensUsed, originalTimestamp); + // Process response using shared ResponseProcessor + await processAgentResponse( + obsResponse.content || '', + session, + this.dbManager, + this.sessionManager, + worker, + tokensUsed, + originalTimestamp, + 'OpenRouter' + ); } else if (message.type === 'summarize') { // Build summary prompt @@ -191,18 +191,27 @@ export class OpenRouterAgent { session.conversationHistory.push({ role: 'user', content: summaryPrompt }); const summaryResponse = await this.queryOpenRouterMultiTurn(session.conversationHistory, apiKey, model, siteUrl, appName); + let tokensUsed = 0; if (summaryResponse.content) { // Add response to conversation history session.conversationHistory.push({ role: 'assistant', content: summaryResponse.content }); - const tokensUsed = summaryResponse.tokensUsed || 0; + tokensUsed = summaryResponse.tokensUsed || 0; session.cumulativeInputTokens += Math.floor(tokensUsed * 0.7); session.cumulativeOutputTokens += Math.floor(tokensUsed * 0.3); } - // Process response (even if empty) - empty responses will have no observations/summaries - // but messages still need to be marked complete atomically - await this.processOpenRouterResponse(session, summaryResponse.content || '', worker, tokensUsed, originalTimestamp); + // Process response using shared ResponseProcessor + await processAgentResponse( + summaryResponse.content || '', + session, + this.dbManager, + this.sessionManager, + worker, + tokensUsed, + originalTimestamp, + 'OpenRouter' + ); } } @@ -215,35 +224,26 @@ export class OpenRouterAgent { model }); - } catch (error: any) { - if (error.name === 'AbortError') { + } catch (error: unknown) { + if (isAbortError(error)) { logger.warn('SDK', 'OpenRouter agent aborted', { sessionId: session.sessionDbId }); throw error; } // Check if we should fall back to Claude - if (this.shouldFallbackToClaude(error) && this.fallbackAgent) { + if (shouldFallbackToClaude(error) && this.fallbackAgent) { logger.warn('SDK', 'OpenRouter API failed, falling back to Claude SDK', { sessionDbId: session.sessionDbId, - error: error.message, + error: error instanceof Error ? error.message : String(error), historyLength: session.conversationHistory.length }); - // Reset any 'processing' messages back to 'pending' so Claude can retry them - const pendingStore = this.sessionManager.getPendingMessageStore(); - const resetCount = pendingStore.resetStuckMessages(0); // 0 = reset ALL processing messages - if (resetCount > 0) { - logger.info('SDK', 'Reset processing messages for fallback', { - sessionDbId: session.sessionDbId, - resetCount - }); - } - // Fall back to Claude - it will use the same session with shared conversationHistory + // Note: With claim-and-delete queue pattern, messages are already deleted on claim return this.fallbackAgent.startSession(session, worker); } - logger.failure('SDK', 'OpenRouter agent error', { sessionDbId: session.sessionDbId }, error); + logger.failure('SDK', 'OpenRouter agent error', { sessionDbId: session.sessionDbId }, error as Error); throw error; } } @@ -260,9 +260,7 @@ export class OpenRouterAgent { * Keeps most recent messages within token budget */ private truncateHistory(history: ConversationMessage[]): ConversationMessage[] { - const settings = SettingsDefaultsManager.loadFromFile( - USER_SETTINGS_PATH - ); + const settings = SettingsDefaultsManager.loadFromFile(USER_SETTINGS_PATH); const MAX_CONTEXT_MESSAGES = parseInt(settings.CLAUDE_MEM_OPENROUTER_MAX_CONTEXT_MESSAGES) || DEFAULT_MAX_CONTEXT_MESSAGES; const MAX_ESTIMATED_TOKENS = parseInt(settings.CLAUDE_MEM_OPENROUTER_MAX_TOKENS) || DEFAULT_MAX_ESTIMATED_TOKENS; @@ -399,166 +397,6 @@ export class OpenRouterAgent { return { content, tokensUsed }; } - /** - * Process OpenRouter response (same format as Claude/Gemini) - * @param originalTimestamp - Original epoch when message was queued (for backlog processing accuracy) - */ - private async processOpenRouterResponse( - session: ActiveSession, - text: string, - worker: any | undefined, - discoveryTokens: number, - originalTimestamp: number | null - ): Promise { - // Parse observations and summary - const observations = parseObservations(text, session.contentSessionId); - const summary = parseSummary(text, session.sessionDbId); - - // Convert nullable fields to empty strings for storeSummary (if summary exists) - const summaryForStore = summary ? { - request: summary.request || '', - investigated: summary.investigated || '', - learned: summary.learned || '', - completed: summary.completed || '', - next_steps: summary.next_steps || '', - notes: summary.notes - } : null; - - // Get the pending message ID(s) for this response - const pendingMessageStore = this.sessionManager.getPendingMessageStore(); - const sessionStore = this.dbManager.getSessionStore(); - - if (session.pendingProcessingIds.size > 0) { - // ATOMIC TRANSACTION: Store observations + summary + mark message(s) complete - for (const messageId of session.pendingProcessingIds) { - // CRITICAL: Must use memorySessionId (not contentSessionId) for FK constraint - if (!session.memorySessionId) { - throw new Error('Cannot store observations: memorySessionId not yet captured'); - } - - const result = sessionStore.storeObservationsAndMarkComplete( - session.memorySessionId, - session.project, - observations, - summaryForStore, - messageId, - pendingMessageStore, - session.lastPromptNumber, - discoveryTokens, - originalTimestamp ?? undefined - ); - - logger.info('SDK', 'OpenRouter observations and summary saved atomically', { - sessionId: session.sessionDbId, - messageId, - observationCount: result.observationIds.length, - hasSummary: !!result.summaryId, - atomicTransaction: true - }); - - // AFTER transaction commits - async operations (can fail safely) - for (let i = 0; i < observations.length; i++) { - const obsId = result.observationIds[i]; - const obs = observations[i]; - - this.dbManager.getChromaSync().syncObservation( - obsId, - session.contentSessionId, - session.project, - obs, - session.lastPromptNumber, - result.createdAtEpoch, - discoveryTokens - ).catch(err => { - logger.warn('SDK', 'OpenRouter chroma sync failed', { obsId }, err); - }); - - // Broadcast to SSE clients - if (worker && worker.sseBroadcaster) { - worker.sseBroadcaster.broadcast({ - type: 'new_observation', - observation: { - id: obsId, - memory_session_id: session.memorySessionId, - session_id: session.contentSessionId, - type: obs.type, - title: obs.title, - subtitle: obs.subtitle, - text: null, - narrative: obs.narrative || null, - facts: JSON.stringify(obs.facts || []), - concepts: JSON.stringify(obs.concepts || []), - files_read: JSON.stringify(obs.files_read || []), - files_modified: JSON.stringify(obs.files_modified || []), - project: session.project, - prompt_number: session.lastPromptNumber, - created_at_epoch: result.createdAtEpoch - } - }); - } - } - - // Sync summary to Chroma (if present) - if (summaryForStore && result.summaryId) { - this.dbManager.getChromaSync().syncSummary( - result.summaryId, - session.contentSessionId, - session.project, - summaryForStore, - session.lastPromptNumber, - result.createdAtEpoch, - discoveryTokens - ).catch(err => { - logger.warn('SDK', 'OpenRouter chroma sync failed', { summaryId: result.summaryId }, err); - }); - - // Broadcast to SSE clients - if (worker && worker.sseBroadcaster) { - worker.sseBroadcaster.broadcast({ - type: 'new_summary', - summary: { - id: result.summaryId, - session_id: session.contentSessionId, - request: summary!.request, - investigated: summary!.investigated, - learned: summary!.learned, - completed: summary!.completed, - next_steps: summary!.next_steps, - notes: summary!.notes, - project: session.project, - prompt_number: session.lastPromptNumber, - created_at_epoch: result.createdAtEpoch - } - }); - } - - // Update Cursor context file for registered projects (fire-and-forget) - updateCursorContextForProject(session.project, getWorkerPort()).catch(error => { - logger.warn('CURSOR', 'Context update failed (non-critical)', { project: session.project }, error as Error); - }); - } - } - - // Clear the processed message IDs - session.pendingProcessingIds.clear(); - session.earliestPendingTimestamp = null; - - // Clean up old processed messages - const deletedCount = pendingMessageStore.cleanupProcessed(100); - if (deletedCount > 0) { - logger.debug('SDK', 'Cleaned up old processed messages', { deletedCount }); - } - - // Broadcast activity status after processing - if (worker && typeof worker.broadcastProcessingStatus === 'function') { - worker.broadcastProcessingStatus(); - } - } - } - - // REMOVED: markMessagesProcessed() - replaced by atomic transaction in processOpenRouterResponse() - // Messages are now marked complete atomically with observation storage to prevent duplicates - /** * Get OpenRouter configuration from settings or environment */ diff --git a/src/services/worker/SDKAgent.ts b/src/services/worker/SDKAgent.ts index 19404b8e..72ddcaf1 100644 --- a/src/services/worker/SDKAgent.ts +++ b/src/services/worker/SDKAgent.ts @@ -14,14 +14,12 @@ import path from 'path'; import { DatabaseManager } from './DatabaseManager.js'; import { SessionManager } from './SessionManager.js'; import { logger } from '../../utils/logger.js'; -import { parseObservations, parseSummary } from '../../sdk/parser.js'; import { buildInitPrompt, buildObservationPrompt, buildSummaryPrompt, buildContinuationPrompt } from '../../sdk/prompts.js'; import { SettingsDefaultsManager } from '../../shared/SettingsDefaultsManager.js'; import { USER_SETTINGS_PATH } from '../../shared/paths.js'; -import type { ActiveSession, SDKUserMessage, PendingMessage } from '../worker-types.js'; +import type { ActiveSession, SDKUserMessage } from '../worker-types.js'; import { ModeManager } from '../domain/ModeManager.js'; -import { updateCursorContextForProject } from '../worker-service.js'; -import { getWorkerPort } from '../../shared/worker-utils.js'; +import { processAgentResponse, type WorkerRef } from './agents/index.js'; // Import Agent SDK (assumes it's installed) // @ts-ignore - Agent SDK types may not be available @@ -40,161 +38,163 @@ export class SDKAgent { * Start SDK agent for a session (event-driven, no polling) * @param worker WorkerService reference for spinner control (optional) */ - async startSession(session: ActiveSession, worker?: any): Promise { + async startSession(session: ActiveSession, worker?: WorkerRef): Promise { + // Find Claude executable + const claudePath = this.findClaudeExecutable(); + // Get model ID and disallowed tools + const modelId = this.getModelId(); + // Memory agent is OBSERVER ONLY - no tools allowed + const disallowedTools = [ + 'Bash', // Prevent infinite loops + 'Read', // No file reading + 'Write', // No file writing + 'Edit', // No file editing + 'Grep', // No code searching + 'Glob', // No file pattern matching + 'WebFetch', // No web fetching + 'WebSearch', // No web searching + 'Task', // No spawning sub-agents + 'NotebookEdit', // No notebook editing + 'AskUserQuestion',// No asking questions + 'TodoWrite' // No todo management + ]; + // Create message generator (event-driven) + const messageGenerator = this.createMessageGenerator(session); + // CRITICAL: Only resume if memorySessionId exists (was captured from a previous SDK response). + // memorySessionId starts as NULL and is captured on first SDK message. + // NEVER use contentSessionId for resume - that would inject messages into the user's transcript! + const hasRealMemorySessionId = !!session.memorySessionId; - // Find Claude executable - const claudePath = this.findClaudeExecutable(); - - // Get model ID and disallowed tools - const modelId = this.getModelId(); - // Memory agent is OBSERVER ONLY - no tools allowed - const disallowedTools = [ - 'Bash', // Prevent infinite loops - 'Read', // No file reading - 'Write', // No file writing - 'Edit', // No file editing - 'Grep', // No code searching - 'Glob', // No file pattern matching - 'WebFetch', // No web fetching - 'WebSearch', // No web searching - 'Task', // No spawning sub-agents - 'NotebookEdit', // No notebook editing - 'AskUserQuestion',// No asking questions - 'TodoWrite' // No todo management - ]; - - // Create message generator (event-driven) - const messageGenerator = this.createMessageGenerator(session); - - // CRITICAL: Only resume if memorySessionId exists (was captured from a previous SDK response). - // memorySessionId starts as NULL and is captured on first SDK message. - // NEVER use contentSessionId for resume - that would inject messages into the user's transcript! - const hasRealMemorySessionId = !!session.memorySessionId; - - logger.info('SDK', 'Starting SDK query', { - sessionDbId: session.sessionDbId, - contentSessionId: session.contentSessionId, - memorySessionId: session.memorySessionId, - hasRealMemorySessionId, - resume_parameter: hasRealMemorySessionId ? session.memorySessionId : '(none - fresh start)', - lastPromptNumber: session.lastPromptNumber - }); - - // SESSION ALIGNMENT LOG: Resume decision proof - show if we're resuming with correct memorySessionId - if (session.lastPromptNumber > 1) { - logger.info('SDK', `[ALIGNMENT] Resume Decision | contentSessionId=${session.contentSessionId} | memorySessionId=${session.memorySessionId} | prompt#=${session.lastPromptNumber} | hasRealMemorySessionId=${hasRealMemorySessionId} | resumeWith=${hasRealMemorySessionId ? session.memorySessionId : 'NONE (fresh SDK session)'}`); - } else { - logger.info('SDK', `[ALIGNMENT] First Prompt | contentSessionId=${session.contentSessionId} | prompt#=${session.lastPromptNumber} | Will capture memorySessionId from first SDK response`); - } - - // Run Agent SDK query loop - // Only resume if we have a captured memory session ID - const queryResult = query({ - prompt: messageGenerator, - options: { - model: modelId, - // Resume with captured memorySessionId (null on first prompt, real ID on subsequent) - ...(hasRealMemorySessionId && { resume: session.memorySessionId }), - disallowedTools, - abortController: session.abortController, - pathToClaudeCodeExecutable: claudePath - } - }); - - // Process SDK messages - for await (const message of queryResult) { - // Capture memory session ID from first SDK message (any type has session_id) - // This enables resume for subsequent generator starts within the same user session - if (!session.memorySessionId && message.session_id) { - session.memorySessionId = message.session_id; - // Persist to database for cross-restart recovery - this.dbManager.getSessionStore().updateMemorySessionId( - session.sessionDbId, - message.session_id - ); - logger.info('SDK', 'Captured memory session ID', { - sessionDbId: session.sessionDbId, - memorySessionId: message.session_id - }); - // SESSION ALIGNMENT LOG: Memory session ID captured - now contentSessionId→memorySessionId mapping is complete - logger.info('SDK', `[ALIGNMENT] Captured | contentSessionId=${session.contentSessionId} → memorySessionId=${message.session_id} | Future prompts will resume with this ID`); - } - - // Handle assistant messages - if (message.type === 'assistant') { - const content = message.message.content; - const textContent = Array.isArray(content) - ? content.filter((c: any) => c.type === 'text').map((c: any) => c.text).join('\n') - : typeof content === 'string' ? content : ''; - - const responseSize = textContent.length; - - // Capture token state BEFORE updating (for delta calculation) - const tokensBeforeResponse = session.cumulativeInputTokens + session.cumulativeOutputTokens; - - // Extract and track token usage - const usage = message.message.usage; - if (usage) { - session.cumulativeInputTokens += usage.input_tokens || 0; - session.cumulativeOutputTokens += usage.output_tokens || 0; - - // Cache creation counts as discovery, cache read doesn't - if (usage.cache_creation_input_tokens) { - session.cumulativeInputTokens += usage.cache_creation_input_tokens; - } - - logger.debug('SDK', 'Token usage captured', { - sessionId: session.sessionDbId, - inputTokens: usage.input_tokens, - outputTokens: usage.output_tokens, - cacheCreation: usage.cache_creation_input_tokens || 0, - cacheRead: usage.cache_read_input_tokens || 0, - cumulativeInput: session.cumulativeInputTokens, - cumulativeOutput: session.cumulativeOutputTokens - }); - } - - // Calculate discovery tokens (delta for this response only) - const discoveryTokens = (session.cumulativeInputTokens + session.cumulativeOutputTokens) - tokensBeforeResponse; - - // Process response (empty or not) and mark messages as processed - // Capture earliest timestamp BEFORE processing (will be cleared after) - const originalTimestamp = session.earliestPendingTimestamp; - - if (responseSize > 0) { - const truncatedResponse = responseSize > 100 - ? textContent.substring(0, 100) + '...' - : textContent; - logger.dataOut('SDK', `Response received (${responseSize} chars)`, { - sessionId: session.sessionDbId, - promptNumber: session.lastPromptNumber - }, truncatedResponse); - } - - // Parse and process response (even if empty) with discovery token delta and original timestamp - // Empty responses will result in empty observations array and null summary - await this.processSDKResponse(session, textContent, worker, discoveryTokens, originalTimestamp); - } - - // Log result messages - if (message.type === 'result' && message.subtype === 'success') { - // Usage telemetry is captured at SDK level - } - } - - // Mark session complete - const sessionDuration = Date.now() - session.startTime; - logger.success('SDK', 'Agent completed', { - sessionId: session.sessionDbId, - duration: `${(sessionDuration / 1000).toFixed(1)}s` - }); - + logger.info('SDK', 'Starting SDK query', { + sessionDbId: session.sessionDbId, + contentSessionId: session.contentSessionId, + memorySessionId: session.memorySessionId, + hasRealMemorySessionId, + resume_parameter: hasRealMemorySessionId ? session.memorySessionId : '(none - fresh start)', + lastPromptNumber: session.lastPromptNumber + }); + // SESSION ALIGNMENT LOG: Resume decision proof - show if we're resuming with correct memorySessionId + if (session.lastPromptNumber > 1) { + logger.info('SDK', `[ALIGNMENT] Resume Decision | contentSessionId=${session.contentSessionId} | memorySessionId=${session.memorySessionId} | prompt#=${session.lastPromptNumber} | hasRealMemorySessionId=${hasRealMemorySessionId} | resumeWith=${hasRealMemorySessionId ? session.memorySessionId : 'NONE (fresh SDK session)'}`); + } else { + logger.info('SDK', `[ALIGNMENT] First Prompt | contentSessionId=${session.contentSessionId} | prompt#=${session.lastPromptNumber} | Will capture memorySessionId from first SDK response`); } + // Run Agent SDK query loop + // Only resume if we have a captured memory session ID + const queryResult = query({ + prompt: messageGenerator, + options: { + model: modelId, + // Resume with captured memorySessionId (null on first prompt, real ID on subsequent) + ...(hasRealMemorySessionId && { resume: session.memorySessionId }), + disallowedTools, + abortController: session.abortController, + pathToClaudeCodeExecutable: claudePath + } + }); + + // Process SDK messages + for await (const message of queryResult) { + // Capture memory session ID from first SDK message (any type has session_id) + // This enables resume for subsequent generator starts within the same user session + if (!session.memorySessionId && message.session_id) { + session.memorySessionId = message.session_id; + // Persist to database for cross-restart recovery + this.dbManager.getSessionStore().updateMemorySessionId( + session.sessionDbId, + message.session_id + ); + logger.info('SDK', 'Captured memory session ID', { + sessionDbId: session.sessionDbId, + memorySessionId: message.session_id + }); + // SESSION ALIGNMENT LOG: Memory session ID captured - now contentSessionId→memorySessionId mapping is complete + logger.info('SDK', `[ALIGNMENT] Captured | contentSessionId=${session.contentSessionId} → memorySessionId=${message.session_id} | Future prompts will resume with this ID`); + } + + // Handle assistant messages + if (message.type === 'assistant') { + const content = message.message.content; + const textContent = Array.isArray(content) + ? content.filter((c: any) => c.type === 'text').map((c: any) => c.text).join('\n') + : typeof content === 'string' ? content : ''; + + const responseSize = textContent.length; + + // Capture token state BEFORE updating (for delta calculation) + const tokensBeforeResponse = session.cumulativeInputTokens + session.cumulativeOutputTokens; + + // Extract and track token usage + const usage = message.message.usage; + if (usage) { + session.cumulativeInputTokens += usage.input_tokens || 0; + session.cumulativeOutputTokens += usage.output_tokens || 0; + + // Cache creation counts as discovery, cache read doesn't + if (usage.cache_creation_input_tokens) { + session.cumulativeInputTokens += usage.cache_creation_input_tokens; + } + + logger.debug('SDK', 'Token usage captured', { + sessionId: session.sessionDbId, + inputTokens: usage.input_tokens, + outputTokens: usage.output_tokens, + cacheCreation: usage.cache_creation_input_tokens || 0, + cacheRead: usage.cache_read_input_tokens || 0, + cumulativeInput: session.cumulativeInputTokens, + cumulativeOutput: session.cumulativeOutputTokens + }); + } + + // Calculate discovery tokens (delta for this response only) + const discoveryTokens = (session.cumulativeInputTokens + session.cumulativeOutputTokens) - tokensBeforeResponse; + + // Process response (empty or not) and mark messages as processed + // Capture earliest timestamp BEFORE processing (will be cleared after) + const originalTimestamp = session.earliestPendingTimestamp; + + if (responseSize > 0) { + const truncatedResponse = responseSize > 100 + ? textContent.substring(0, 100) + '...' + : textContent; + logger.dataOut('SDK', `Response received (${responseSize} chars)`, { + sessionId: session.sessionDbId, + promptNumber: session.lastPromptNumber + }, truncatedResponse); + } + + // Parse and process response using shared ResponseProcessor + await processAgentResponse( + textContent, + session, + this.dbManager, + this.sessionManager, + worker, + discoveryTokens, + originalTimestamp, + 'SDK' + ); + } + + // Log result messages + if (message.type === 'result' && message.subtype === 'success') { + // Usage telemetry is captured at SDK level + } + } + + // Mark session complete + const sessionDuration = Date.now() - session.startTime; + logger.success('SDK', 'Agent completed', { + sessionId: session.sessionDbId, + duration: `${(sessionDuration / 1000).toFixed(1)}s` + }); + } + /** * Create event-driven message generator (yields messages from SessionManager) * @@ -315,190 +315,6 @@ export class SDKAgent { } } - /** - * Process SDK response text (parse XML, save to database, sync to Chroma) - * @param discoveryTokens - Token cost for discovering this response (delta, not cumulative) - * @param originalTimestamp - Original epoch when message was queued (for backlog processing accuracy) - * - * Also captures assistant responses to shared conversation history for provider interop. - * This allows Gemini to see full context if provider is switched mid-session. - * - * CRITICAL: Uses atomic transaction to prevent observation duplication on crash recovery. - */ - private async processSDKResponse(session: ActiveSession, text: string, worker: any | undefined, discoveryTokens: number, originalTimestamp: number | null): Promise { - // Add assistant response to shared conversation history for provider interop - if (text) { - session.conversationHistory.push({ role: 'assistant', content: text }); - } - - // Parse observations and summary - const observations = parseObservations(text, session.contentSessionId); - const summary = parseSummary(text, session.sessionDbId); - - // Get the pending message ID(s) for this response - // In normal operation, this should be ONE message (FIFO processing) - // But we handle multiple for safety (in case SDK batches messages) - const pendingMessageStore = this.sessionManager.getPendingMessageStore(); - const sessionStore = this.dbManager.getSessionStore(); - - if (session.pendingProcessingIds.size > 0) { - // ATOMIC TRANSACTION: Store observations + summary + mark message(s) complete - // This prevents duplicates if the worker crashes after storing but before marking complete - for (const messageId of session.pendingProcessingIds) { - // CRITICAL: Must use memorySessionId (not contentSessionId) for FK constraint - if (!session.memorySessionId) { - throw new Error('Cannot store observations: memorySessionId not yet captured'); - } - - const result = sessionStore.storeObservationsAndMarkComplete( - session.memorySessionId, - session.project, - observations, - summary || null, - messageId, - pendingMessageStore, - session.lastPromptNumber, - discoveryTokens, - originalTimestamp ?? undefined - ); - - // Log what was saved - logger.info('SDK', 'Observations and summary saved atomically', { - sessionId: session.sessionDbId, - messageId, - observationCount: result.observationIds.length, - hasSummary: !!result.summaryId, - atomicTransaction: true - }); - - // AFTER transaction commits - async operations (can fail safely without data loss) - // Sync observations to Chroma - for (let i = 0; i < observations.length; i++) { - const obsId = result.observationIds[i]; - const obs = observations[i]; - const chromaStart = Date.now(); - - this.dbManager.getChromaSync().syncObservation( - obsId, - session.contentSessionId, - session.project, - obs, - session.lastPromptNumber, - result.createdAtEpoch, - discoveryTokens - ).then(() => { - const chromaDuration = Date.now() - chromaStart; - logger.debug('CHROMA', 'Observation synced', { - obsId, - duration: `${chromaDuration}ms`, - type: obs.type, - title: obs.title || '(untitled)' - }); - }).catch((error) => { - logger.warn('CHROMA', 'Observation sync failed, continuing without vector search', { - obsId, - type: obs.type, - title: obs.title || '(untitled)' - }, error); - }); - - // Broadcast to SSE clients (for web UI) - if (worker && worker.sseBroadcaster) { - worker.sseBroadcaster.broadcast({ - type: 'new_observation', - observation: { - id: obsId, - memory_session_id: session.memorySessionId, - session_id: session.contentSessionId, - type: obs.type, - title: obs.title, - subtitle: obs.subtitle, - text: obs.text || null, - narrative: obs.narrative || null, - facts: JSON.stringify(obs.facts || []), - concepts: JSON.stringify(obs.concepts || []), - files_read: JSON.stringify(obs.files || []), - files_modified: JSON.stringify([]), - project: session.project, - prompt_number: session.lastPromptNumber, - created_at_epoch: result.createdAtEpoch - } - }); - } - } - - // Sync summary to Chroma (if present) - if (summary && result.summaryId) { - const chromaStart = Date.now(); - this.dbManager.getChromaSync().syncSummary( - result.summaryId, - session.contentSessionId, - session.project, - summary, - session.lastPromptNumber, - result.createdAtEpoch, - discoveryTokens - ).then(() => { - const chromaDuration = Date.now() - chromaStart; - logger.debug('CHROMA', 'Summary synced', { - summaryId: result.summaryId, - duration: `${chromaDuration}ms`, - request: summary.request || '(no request)' - }); - }).catch((error) => { - logger.warn('CHROMA', 'Summary sync failed, continuing without vector search', { - summaryId: result.summaryId, - request: summary.request || '(no request)' - }, error); - }); - - // Broadcast to SSE clients (for web UI) - if (worker && worker.sseBroadcaster) { - worker.sseBroadcaster.broadcast({ - type: 'new_summary', - summary: { - id: result.summaryId, - session_id: session.contentSessionId, - request: summary.request, - investigated: summary.investigated, - learned: summary.learned, - completed: summary.completed, - next_steps: summary.next_steps, - notes: summary.notes, - project: session.project, - prompt_number: session.lastPromptNumber, - created_at_epoch: result.createdAtEpoch - } - }); - } - - // Update Cursor context file for registered projects (fire-and-forget) - updateCursorContextForProject(session.project, getWorkerPort()).catch(error => { - logger.warn('CURSOR', 'Context update failed (non-critical)', { project: session.project }, error as Error); - }); - } - } - - // Clear the processed message IDs - session.pendingProcessingIds.clear(); - session.earliestPendingTimestamp = null; - - // Clean up old processed messages (keep last 100 for UI display) - const deletedCount = pendingMessageStore.cleanupProcessed(100); - if (deletedCount > 0) { - logger.debug('SDK', 'Cleaned up old processed messages', { deletedCount }); - } - - // Broadcast activity status after processing (queue may have changed) - if (worker && typeof worker.broadcastProcessingStatus === 'function') { - worker.broadcastProcessingStatus(); - } - } - } - - // REMOVED: markMessagesProcessed() - replaced by atomic transaction in processSDKResponse() - // Messages are now marked complete atomically with observation storage to prevent duplicates - // ============================================================================ // Configuration Helpers // ============================================================================ @@ -508,7 +324,7 @@ export class SDKAgent { */ private findClaudeExecutable(): string { const settings = SettingsDefaultsManager.loadFromFile(USER_SETTINGS_PATH); - + // 1. Check configured path if (settings.CLAUDE_CODE_PATH) { // Lazy load fs to keep startup fast @@ -522,10 +338,10 @@ export class SDKAgent { // 2. Try auto-detection try { const claudePath = execSync( - process.platform === 'win32' ? 'where claude' : 'which claude', + process.platform === 'win32' ? 'where claude' : 'which claude', { encoding: 'utf8', windowsHide: true, stdio: ['ignore', 'pipe', 'ignore'] } ).trim().split('\n')[0].trim(); - + if (claudePath) return claudePath; } catch (error) { // [ANTI-PATTERN IGNORED]: Fallback behavior - which/where failed, continue to throw clear error diff --git a/src/services/worker/Search.ts b/src/services/worker/Search.ts new file mode 100644 index 00000000..0f3f8ba2 --- /dev/null +++ b/src/services/worker/Search.ts @@ -0,0 +1,7 @@ +/** + * Search.ts - Named re-export facade for search module + * + * Provides a clean import path for the search module. + */ + +export * from './search/index.js'; diff --git a/src/services/worker/SearchManager.ts b/src/services/worker/SearchManager.ts index 7e36a27a..3e7bc667 100644 --- a/src/services/worker/SearchManager.ts +++ b/src/services/worker/SearchManager.ts @@ -1,9 +1,16 @@ /** * SearchManager - Core search orchestration for claude-mem - * Extracted from mcp-server.ts to centralize business logic in Worker services * - * This class contains all tool handler logic that was previously in the MCP server. - * The MCP server now acts as a thin HTTP wrapper that calls these methods via HTTP. + * This class is a thin wrapper that delegates to the modular search infrastructure. + * It maintains the same public interface for backward compatibility. + * + * The actual search logic is now in: + * - SearchOrchestrator: Strategy selection and coordination + * - ChromaSearchStrategy: Vector-based semantic search + * - SQLiteSearchStrategy: Filter-only queries + * - HybridSearchStrategy: Metadata filtering + semantic ranking + * - ResultFormatter: Output formatting + * - TimelineBuilder: Timeline construction */ import { basename } from 'path'; @@ -17,21 +24,36 @@ import { logger } from '../../utils/logger.js'; import { formatDate, formatTime, formatDateTime, extractFirstFile, groupByDate, estimateTokens } from '../../shared/timeline-formatting.js'; import { ModeManager } from '../domain/ModeManager.js'; -const COLLECTION_NAME = 'cm__claude-mem'; -const RECENCY_WINDOW_DAYS = 90; -const RECENCY_WINDOW_MS = RECENCY_WINDOW_DAYS * 24 * 60 * 60 * 1000; +import { + SearchOrchestrator, + TimelineBuilder, + TimelineData, + SEARCH_CONSTANTS +} from './search/index.js'; export class SearchManager { + private orchestrator: SearchOrchestrator; + private timelineBuilder: TimelineBuilder; + constructor( private sessionSearch: SessionSearch, private sessionStore: SessionStore, private chromaSync: ChromaSync, private formatter: FormattingService, private timelineService: TimelineService - ) {} + ) { + // Initialize the new modular search infrastructure + this.orchestrator = new SearchOrchestrator( + sessionSearch, + sessionStore, + chromaSync + ); + this.timelineBuilder = new TimelineBuilder(); + } /** * Query Chroma vector database via ChromaSync + * @deprecated Use orchestrator.search() instead */ private async queryChroma( query: string, @@ -71,8 +93,8 @@ export class SearchManager { // Flatten dateStart/dateEnd into dateRange object if (normalized.dateStart || normalized.dateEnd) { normalized.dateRange = { - start: normalized.dateStart, - end: normalized.dateEnd + start: normalized.dateStart, + end: normalized.dateEnd }; delete normalized.dateStart; delete normalized.dateEnd; @@ -104,13 +126,13 @@ export class SearchManager { logger.debug('SEARCH', 'Filter-only query (no query text), using direct SQLite filtering', { enablesDateFilters: true }); const obsOptions = { ...options, type: obs_type, concepts, files }; if (searchObservations) { - observations = this.sessionSearch.searchObservations(undefined, obsOptions); + observations = this.sessionSearch.searchObservations(undefined, obsOptions); } if (searchSessions) { - sessions = this.sessionSearch.searchSessions(undefined, options); + sessions = this.sessionSearch.searchSessions(undefined, options); } if (searchPrompts) { - prompts = this.sessionSearch.searchUserPrompts(undefined, options); + prompts = this.sessionSearch.searchUserPrompts(undefined, options); } } // PATH 2: CHROMA SEMANTIC SEARCH (query text + Chroma available) @@ -121,11 +143,11 @@ export class SearchManager { // Build Chroma where filter for doc_type let whereFilter: Record | undefined; if (type === 'observations') { - whereFilter = { doc_type: 'observation' }; + whereFilter = { doc_type: 'observation' }; } else if (type === 'sessions') { - whereFilter = { doc_type: 'session_summary' }; + whereFilter = { doc_type: 'session_summary' }; } else if (type === 'prompts') { - whereFilter = { doc_type: 'user_prompt' }; + whereFilter = { doc_type: 'user_prompt' }; } // Step 1: Chroma semantic search with optional type filter @@ -134,51 +156,51 @@ export class SearchManager { logger.debug('SEARCH', 'ChromaDB returned semantic matches', { matchCount: chromaResults.ids.length }); if (chromaResults.ids.length > 0) { - // Step 2: Filter by recency (90 days) - const ninetyDaysAgo = Date.now() - RECENCY_WINDOW_MS; - const recentMetadata = chromaResults.metadatas.map((meta, idx) => ({ - id: chromaResults.ids[idx], - meta, - isRecent: meta && meta.created_at_epoch > ninetyDaysAgo - })).filter(item => item.isRecent); + // Step 2: Filter by recency (90 days) + const ninetyDaysAgo = Date.now() - SEARCH_CONSTANTS.RECENCY_WINDOW_MS; + const recentMetadata = chromaResults.metadatas.map((meta, idx) => ({ + id: chromaResults.ids[idx], + meta, + isRecent: meta && meta.created_at_epoch > ninetyDaysAgo + })).filter(item => item.isRecent); - logger.debug('SEARCH', 'Results within 90-day window', { count: recentMetadata.length }); + logger.debug('SEARCH', 'Results within 90-day window', { count: recentMetadata.length }); - // Step 3: Categorize IDs by document type - const obsIds: number[] = []; - const sessionIds: number[] = []; - const promptIds: number[] = []; + // Step 3: Categorize IDs by document type + const obsIds: number[] = []; + const sessionIds: number[] = []; + const promptIds: number[] = []; - for (const item of recentMetadata) { - const docType = item.meta?.doc_type; - if (docType === 'observation' && searchObservations) { - obsIds.push(item.id); - } else if (docType === 'session_summary' && searchSessions) { - sessionIds.push(item.id); - } else if (docType === 'user_prompt' && searchPrompts) { - promptIds.push(item.id); - } - } + for (const item of recentMetadata) { + const docType = item.meta?.doc_type; + if (docType === 'observation' && searchObservations) { + obsIds.push(item.id); + } else if (docType === 'session_summary' && searchSessions) { + sessionIds.push(item.id); + } else if (docType === 'user_prompt' && searchPrompts) { + promptIds.push(item.id); + } + } - logger.debug('SEARCH', 'Categorized results by type', { observations: obsIds.length, sessions: sessionIds.length, prompts: prompts.length }); + logger.debug('SEARCH', 'Categorized results by type', { observations: obsIds.length, sessions: sessionIds.length, prompts: prompts.length }); - // Step 4: Hydrate from SQLite with additional filters - if (obsIds.length > 0) { - // Apply obs_type, concepts, files filters if provided - const obsOptions = { ...options, type: obs_type, concepts, files }; - observations = this.sessionStore.getObservationsByIds(obsIds, obsOptions); - } - if (sessionIds.length > 0) { - sessions = this.sessionStore.getSessionSummariesByIds(sessionIds, { orderBy: 'date_desc', limit: options.limit, project: options.project }); - } - if (promptIds.length > 0) { - prompts = this.sessionStore.getUserPromptsByIds(promptIds, { orderBy: 'date_desc', limit: options.limit, project: options.project }); - } + // Step 4: Hydrate from SQLite with additional filters + if (obsIds.length > 0) { + // Apply obs_type, concepts, files filters if provided + const obsOptions = { ...options, type: obs_type, concepts, files }; + observations = this.sessionStore.getObservationsByIds(obsIds, obsOptions); + } + if (sessionIds.length > 0) { + sessions = this.sessionStore.getSessionSummariesByIds(sessionIds, { orderBy: 'date_desc', limit: options.limit, project: options.project }); + } + if (promptIds.length > 0) { + prompts = this.sessionStore.getUserPromptsByIds(promptIds, { orderBy: 'date_desc', limit: options.limit, project: options.project }); + } - logger.debug('SEARCH', 'Hydrated results from SQLite', { observations: observations.length, sessions: sessions.length, prompts: prompts.length }); + logger.debug('SEARCH', 'Hydrated results from SQLite', { observations: observations.length, sessions: sessions.length, prompts: prompts.length }); } else { - // Chroma returned 0 results - this is the correct answer, don't fall back to FTS5 - logger.debug('SEARCH', 'ChromaDB found no matches (final result, no FTS5 fallback)', {}); + // Chroma returned 0 results - this is the correct answer, don't fall back to FTS5 + logger.debug('SEARCH', 'ChromaDB found no matches (final result, no FTS5 fallback)', {}); } } // ChromaDB not initialized - mark as failed to show proper error message @@ -196,28 +218,28 @@ export class SearchManager { // JSON format: return raw data for programmatic access (e.g., export scripts) if (format === 'json') { return { - observations, - sessions, - prompts, - totalResults, - query: query || '' + observations, + sessions, + prompts, + totalResults, + query: query || '' }; } if (totalResults === 0) { if (chromaFailed) { - return { - content: [{ - type: 'text' as const, - text: `⚠️ Vector search failed - semantic search unavailable.\n\nTo enable semantic search:\n1. Install uv: https://docs.astral.sh/uv/getting-started/installation/\n2. Restart the worker: npm run worker:restart\n\nNote: You can still use filter-only searches (date ranges, types, files) without a query term.` - }] - }; + return { + content: [{ + type: 'text' as const, + text: `Vector search failed - semantic search unavailable.\n\nTo enable semantic search:\n1. Install uv: https://docs.astral.sh/uv/getting-started/installation/\n2. Restart the worker: npm run worker:restart\n\nNote: You can still use filter-only searches (date ranges, types, files) without a query term.` + }] + }; } return { - content: [{ - type: 'text' as const, - text: `No results found matching "${query}"` - }] + content: [{ + type: 'text' as const, + text: `No results found matching "${query}"` + }] }; } @@ -231,22 +253,22 @@ export class SearchManager { const allResults: CombinedResult[] = [ ...observations.map(obs => ({ - type: 'observation' as const, - data: obs, - epoch: obs.created_at_epoch, - created_at: obs.created_at + type: 'observation' as const, + data: obs, + epoch: obs.created_at_epoch, + created_at: obs.created_at })), ...sessions.map(sess => ({ - type: 'session' as const, - data: sess, - epoch: sess.created_at_epoch, - created_at: sess.created_at + type: 'session' as const, + data: sess, + epoch: sess.created_at_epoch, + created_at: sess.created_at })), ...prompts.map(prompt => ({ - type: 'prompt' as const, - data: prompt, - epoch: prompt.created_at_epoch, - created_at: prompt.created_at + type: 'prompt' as const, + data: prompt, + epoch: prompt.created_at_epoch, + created_at: prompt.created_at })) ]; @@ -276,46 +298,46 @@ export class SearchManager { // Group by file within this day const resultsByFile = new Map(); for (const result of dayResults) { - let file = 'General'; - if (result.type === 'observation') { - file = extractFirstFile(result.data.files_modified, cwd); - } - if (!resultsByFile.has(file)) { - resultsByFile.set(file, []); - } - resultsByFile.get(file)!.push(result); + let file = 'General'; + if (result.type === 'observation') { + file = extractFirstFile(result.data.files_modified, cwd); + } + if (!resultsByFile.has(file)) { + resultsByFile.set(file, []); + } + resultsByFile.get(file)!.push(result); } // Render each file section for (const [file, fileResults] of resultsByFile) { - lines.push(`**${file}**`); - lines.push(this.formatter.formatSearchTableHeader()); + lines.push(`**${file}**`); + lines.push(this.formatter.formatSearchTableHeader()); - let lastTime = ''; - for (const result of fileResults) { - if (result.type === 'observation') { - const formatted = this.formatter.formatObservationSearchRow(result.data as ObservationSearchResult, lastTime); - lines.push(formatted.row); - lastTime = formatted.time; - } else if (result.type === 'session') { - const formatted = this.formatter.formatSessionSearchRow(result.data as SessionSummarySearchResult, lastTime); - lines.push(formatted.row); - lastTime = formatted.time; - } else { - const formatted = this.formatter.formatUserPromptSearchRow(result.data as UserPromptSearchResult, lastTime); - lines.push(formatted.row); - lastTime = formatted.time; - } - } + let lastTime = ''; + for (const result of fileResults) { + if (result.type === 'observation') { + const formatted = this.formatter.formatObservationSearchRow(result.data as ObservationSearchResult, lastTime); + lines.push(formatted.row); + lastTime = formatted.time; + } else if (result.type === 'session') { + const formatted = this.formatter.formatSessionSearchRow(result.data as SessionSummarySearchResult, lastTime); + lines.push(formatted.row); + lastTime = formatted.time; + } else { + const formatted = this.formatter.formatUserPromptSearchRow(result.data as UserPromptSearchResult, lastTime); + lines.push(formatted.row); + lastTime = formatted.time; + } + } - lines.push(''); + lines.push(''); } } return { content: [{ - type: 'text' as const, - text: lines.join('\n') + type: 'text' as const, + text: lines.join('\n') }] }; } @@ -364,7 +386,7 @@ export class SearchManager { logger.debug('SEARCH', 'Chroma returned semantic matches for timeline', { matchCount: chromaResults?.ids?.length ?? 0 }); if (chromaResults?.ids && chromaResults.ids.length > 0) { - const ninetyDaysAgo = Date.now() - RECENCY_WINDOW_MS; + const ninetyDaysAgo = Date.now() - SEARCH_CONSTANTS.RECENCY_WINDOW_MS; const recentIds = chromaResults.ids.filter((_id, idx) => { const meta = chromaResults.metadatas[idx]; return meta && meta.created_at_epoch > ninetyDaysAgo; @@ -488,7 +510,7 @@ export class SearchManager { lines.push(`# Timeline around anchor: ${anchorId}`); } - lines.push(`**Window:** ${depth_before} records before → ${depth_after} records after | **Items:** ${filteredItems?.length ?? 0}`); + lines.push(`**Window:** ${depth_before} records before -> ${depth_after} records after | **Items:** ${filteredItems?.length ?? 0}`); lines.push(''); @@ -534,9 +556,9 @@ export class SearchManager { const sess = item.data as SessionSummarySearchResult; const title = sess.request || 'Session summary'; - const marker = isAnchor ? ' ← **ANCHOR**' : ''; + const marker = isAnchor ? ' <- **ANCHOR**' : ''; - lines.push(`**🎯 #S${sess.id}** ${title} (${formatDateTime(item.epoch)})${marker}`); + lines.push(`**\uD83C\uDFAF #S${sess.id}** ${title} (${formatDateTime(item.epoch)})${marker}`); lines.push(''); } else if (item.type === 'prompt') { if (tableOpen) { @@ -549,7 +571,7 @@ export class SearchManager { const prompt = item.data as UserPromptSearchResult; const truncated = prompt.prompt_text.length > 100 ? prompt.prompt_text.substring(0, 100) + '...' : prompt.prompt_text; - lines.push(`**💬 User Prompt #${prompt.prompt_number}** (${formatDateTime(item.epoch)})`); + lines.push(`**\uD83D\uDCAC User Prompt #${prompt.prompt_number}** (${formatDateTime(item.epoch)})`); lines.push(`> ${truncated}`); lines.push(''); } else if (item.type === 'observation') { @@ -577,10 +599,10 @@ export class SearchManager { const tokens = estimateTokens(obs.narrative); const showTime = time !== lastTime; - const timeDisplay = showTime ? time : '″'; + const timeDisplay = showTime ? time : '"'; lastTime = time; - const anchorMarker = isAnchor ? ' ← **ANCHOR**' : ''; + const anchorMarker = isAnchor ? ' <- **ANCHOR**' : ''; lines.push(`| #${obs.id} | ${timeDisplay} | ${icon} | ${title}${anchorMarker} | ~${tokens} |`); } } @@ -592,8 +614,8 @@ export class SearchManager { return { content: [{ - type: 'text' as const, - text: lines.join('\n') + type: 'text' as const, + text: lines.join('\n') }] }; } @@ -830,7 +852,7 @@ export class SearchManager { if (chromaResults.ids.length > 0) { // Step 2: Filter by recency (90 days) - const ninetyDaysAgo = Date.now() - RECENCY_WINDOW_MS; + const ninetyDaysAgo = Date.now() - SEARCH_CONSTANTS.RECENCY_WINDOW_MS; const recentIds = chromaResults.ids.filter((_id, idx) => { const meta = chromaResults.metadatas[idx]; return meta && meta.created_at_epoch > ninetyDaysAgo; @@ -887,7 +909,7 @@ export class SearchManager { if (chromaResults.ids.length > 0) { // Step 2: Filter by recency (90 days) - const ninetyDaysAgo = Date.now() - RECENCY_WINDOW_MS; + const ninetyDaysAgo = Date.now() - SEARCH_CONSTANTS.RECENCY_WINDOW_MS; const recentIds = chromaResults.ids.filter((_id, idx) => { const meta = chromaResults.metadatas[idx]; return meta && meta.created_at_epoch > ninetyDaysAgo; @@ -944,7 +966,7 @@ export class SearchManager { if (chromaResults.ids.length > 0) { // Step 2: Filter by recency (90 days) - const ninetyDaysAgo = Date.now() - RECENCY_WINDOW_MS; + const ninetyDaysAgo = Date.now() - SEARCH_CONSTANTS.RECENCY_WINDOW_MS; const recentIds = chromaResults.ids.filter((_id, idx) => { const meta = chromaResults.metadatas[idx]; return meta && meta.created_at_epoch > ninetyDaysAgo; @@ -1425,7 +1447,7 @@ export class SearchManager { // Header lines.push(`# Timeline around anchor: ${anchorId}`); - lines.push(`**Window:** ${depth_before} records before → ${depth_after} records after | **Items:** ${filteredItems?.length ?? 0}`); + lines.push(`**Window:** ${depth_before} records before -> ${depth_after} records after | **Items:** ${filteredItems?.length ?? 0}`); lines.push(''); @@ -1473,9 +1495,9 @@ export class SearchManager { // Render session const sess = item.data as SessionSummarySearchResult; const title = sess.request || 'Session summary'; - const marker = isAnchor ? ' ← **ANCHOR**' : ''; + const marker = isAnchor ? ' <- **ANCHOR**' : ''; - lines.push(`**🎯 #S${sess.id}** ${title} (${formatDateTime(item.epoch)})${marker}`); + lines.push(`**\uD83C\uDFAF #S${sess.id}** ${title} (${formatDateTime(item.epoch)})${marker}`); lines.push(''); } else if (item.type === 'prompt') { // Close any open table @@ -1490,7 +1512,7 @@ export class SearchManager { const prompt = item.data as UserPromptSearchResult; const truncated = prompt.prompt_text.length > 100 ? prompt.prompt_text.substring(0, 100) + '...' : prompt.prompt_text; - lines.push(`**💬 User Prompt #${prompt.prompt_number}** (${formatDateTime(item.epoch)})`); + lines.push(`**\uD83D\uDCAC User Prompt #${prompt.prompt_number}** (${formatDateTime(item.epoch)})`); lines.push(`> ${truncated}`); lines.push(''); } else if (item.type === 'observation') { @@ -1523,10 +1545,10 @@ export class SearchManager { const tokens = estimateTokens(obs.narrative); const showTime = time !== lastTime; - const timeDisplay = showTime ? time : '″'; + const timeDisplay = showTime ? time : '"'; lastTime = time; - const anchorMarker = isAnchor ? ' ← **ANCHOR**' : ''; + const anchorMarker = isAnchor ? ' <- **ANCHOR**' : ''; lines.push(`| #${obs.id} | ${timeDisplay} | ${icon} | ${title}${anchorMarker} | ~${tokens} |`); } } @@ -1563,7 +1585,7 @@ export class SearchManager { if (chromaResults.ids.length > 0) { // Filter by recency (90 days) - const ninetyDaysAgo = Date.now() - RECENCY_WINDOW_MS; + const ninetyDaysAgo = Date.now() - SEARCH_CONSTANTS.RECENCY_WINDOW_MS; const recentIds = chromaResults.ids.filter((_id, idx) => { const meta = chromaResults.metadatas[idx]; return meta && meta.created_at_epoch > ninetyDaysAgo; @@ -1659,7 +1681,7 @@ export class SearchManager { // Header lines.push(`# Timeline for query: "${query}"`); lines.push(`**Anchor:** Observation #${topResult.id} - ${topResult.title || 'Untitled'}`); - lines.push(`**Window:** ${depth_before} records before → ${depth_after} records after | **Items:** ${filteredItems?.length ?? 0}`); + lines.push(`**Window:** ${depth_before} records before -> ${depth_after} records after | **Items:** ${filteredItems?.length ?? 0}`); lines.push(''); @@ -1705,7 +1727,7 @@ export class SearchManager { const sess = item.data as SessionSummarySearchResult; const title = sess.request || 'Session summary'; - lines.push(`**🎯 #S${sess.id}** ${title} (${formatDateTime(item.epoch)})`); + lines.push(`**\uD83C\uDFAF #S${sess.id}** ${title} (${formatDateTime(item.epoch)})`); lines.push(''); } else if (item.type === 'prompt') { // Close any open table @@ -1720,7 +1742,7 @@ export class SearchManager { const prompt = item.data as UserPromptSearchResult; const truncated = prompt.prompt_text.length > 100 ? prompt.prompt_text.substring(0, 100) + '...' : prompt.prompt_text; - lines.push(`**💬 User Prompt #${prompt.prompt_number}** (${formatDateTime(item.epoch)})`); + lines.push(`**\uD83D\uDCAC User Prompt #${prompt.prompt_number}** (${formatDateTime(item.epoch)})`); lines.push(`> ${truncated}`); lines.push(''); } else if (item.type === 'observation') { @@ -1753,10 +1775,10 @@ export class SearchManager { const tokens = estimateTokens(obs.narrative); const showTime = time !== lastTime; - const timeDisplay = showTime ? time : '″'; + const timeDisplay = showTime ? time : '"'; lastTime = time; - const anchorMarker = isAnchor ? ' ← **ANCHOR**' : ''; + const anchorMarker = isAnchor ? ' <- **ANCHOR**' : ''; lines.push(`| #${obs.id} | ${timeDisplay} | ${icon} | ${title}${anchorMarker} | ~${tokens} |`); } } diff --git a/src/services/worker/SessionManager.ts b/src/services/worker/SessionManager.ts index 12b366e2..f3f732b9 100644 --- a/src/services/worker/SessionManager.ts +++ b/src/services/worker/SessionManager.ts @@ -137,7 +137,6 @@ export class SessionManager { startTime: Date.now(), cumulativeInputTokens: 0, cumulativeOutputTokens: 0, - pendingProcessingIds: new Set(), earliestPendingTimestamp: null, conversationHistory: [], // Initialize empty - will be populated by agents currentProvider: null // Will be set when generator starts @@ -379,12 +378,9 @@ export class SessionManager { } const processor = new SessionQueueProcessor(this.getPendingStore(), emitter); - - // Use the robust Pump iterator - for await (const message of processor.createIterator(sessionDbId, session.abortController.signal)) { - // Track this message ID for completion marking - session.pendingProcessingIds.add(message._persistentId); + // Use the robust iterator - messages are deleted on claim (no tracking needed) + for await (const message of processor.createIterator(sessionDbId, session.abortController.signal)) { // Track earliest timestamp for accurate observation timestamps // This ensures backlog messages get their original timestamps, not current time if (session.earliestPendingTimestamp === null) { diff --git a/src/services/worker/agents/FallbackErrorHandler.ts b/src/services/worker/agents/FallbackErrorHandler.ts new file mode 100644 index 00000000..015cc139 --- /dev/null +++ b/src/services/worker/agents/FallbackErrorHandler.ts @@ -0,0 +1,73 @@ +/** + * FallbackErrorHandler: Error detection for provider fallback + * + * Responsibility: + * - Determine if an error should trigger fallback to Claude SDK + * - Provide consistent error classification across Gemini and OpenRouter + */ + +import { FALLBACK_ERROR_PATTERNS } from './types.js'; + +/** + * Check if an error should trigger fallback to Claude SDK + * + * Errors that trigger fallback: + * - 429: Rate limit exceeded + * - 500/502/503: Server errors + * - ECONNREFUSED: Connection refused (server down) + * - ETIMEDOUT: Request timeout + * - fetch failed: Network failure + * + * @param error - Error object to check + * @returns true if the error should trigger fallback to Claude + */ +export function shouldFallbackToClaude(error: unknown): boolean { + const message = getErrorMessage(error); + + return FALLBACK_ERROR_PATTERNS.some(pattern => message.includes(pattern)); +} + +/** + * Extract error message from various error types + */ +function getErrorMessage(error: unknown): string { + if (error === null || error === undefined) { + return ''; + } + + if (typeof error === 'string') { + return error; + } + + if (error instanceof Error) { + return error.message; + } + + if (typeof error === 'object' && 'message' in error) { + return String((error as { message: unknown }).message); + } + + return String(error); +} + +/** + * Check if error is an AbortError (user cancelled) + * + * @param error - Error object to check + * @returns true if this is an abort/cancellation error + */ +export function isAbortError(error: unknown): boolean { + if (error === null || error === undefined) { + return false; + } + + if (error instanceof Error && error.name === 'AbortError') { + return true; + } + + if (typeof error === 'object' && 'name' in error) { + return (error as { name: unknown }).name === 'AbortError'; + } + + return false; +} diff --git a/src/services/worker/agents/ObservationBroadcaster.ts b/src/services/worker/agents/ObservationBroadcaster.ts new file mode 100644 index 00000000..b170d939 --- /dev/null +++ b/src/services/worker/agents/ObservationBroadcaster.ts @@ -0,0 +1,54 @@ +/** + * ObservationBroadcaster: SSE broadcasting for observations and summaries + * + * Responsibility: + * - Broadcast new observations to SSE clients + * - Broadcast new summaries to SSE clients + * - Handle worker reference safely (null checks) + * + * BUGFIX: This module fixes the incorrect field names in SDKAgent: + * - SDKAgent used `obs.files` which doesn't exist - should be `obs.files_read` + * - SDKAgent used hardcoded `files_modified: JSON.stringify([])` - should use `obs.files_modified` + */ + +import type { WorkerRef, ObservationSSEPayload, SummarySSEPayload } from './types.js'; + +/** + * Broadcast a new observation to SSE clients + * + * @param worker - Worker reference with SSE broadcaster (can be undefined) + * @param payload - Observation data to broadcast + */ +export function broadcastObservation( + worker: WorkerRef | undefined, + payload: ObservationSSEPayload +): void { + if (!worker?.sseBroadcaster) { + return; + } + + worker.sseBroadcaster.broadcast({ + type: 'new_observation', + observation: payload + }); +} + +/** + * Broadcast a new summary to SSE clients + * + * @param worker - Worker reference with SSE broadcaster (can be undefined) + * @param payload - Summary data to broadcast + */ +export function broadcastSummary( + worker: WorkerRef | undefined, + payload: SummarySSEPayload +): void { + if (!worker?.sseBroadcaster) { + return; + } + + worker.sseBroadcaster.broadcast({ + type: 'new_summary', + summary: payload + }); +} diff --git a/src/services/worker/agents/ResponseProcessor.ts b/src/services/worker/agents/ResponseProcessor.ts new file mode 100644 index 00000000..4fdd6d7b --- /dev/null +++ b/src/services/worker/agents/ResponseProcessor.ts @@ -0,0 +1,270 @@ +/** + * ResponseProcessor: Shared response processing for all agent implementations + * + * Responsibility: + * - Parse observations and summaries from agent responses + * - Execute atomic database transactions + * - Orchestrate Chroma sync (fire-and-forget) + * - Broadcast to SSE clients + * - Clean up processed messages + * + * This module extracts 150+ lines of duplicate code from SDKAgent, GeminiAgent, and OpenRouterAgent. + */ + +import { logger } from '../../../utils/logger.js'; +import { parseObservations, parseSummary, type ParsedObservation, type ParsedSummary } from '../../../sdk/parser.js'; +import { updateCursorContextForProject } from '../../worker-service.js'; +import { getWorkerPort } from '../../../shared/worker-utils.js'; +import type { ActiveSession } from '../../worker-types.js'; +import type { DatabaseManager } from '../DatabaseManager.js'; +import type { SessionManager } from '../SessionManager.js'; +import type { WorkerRef, StorageResult } from './types.js'; +import { broadcastObservation, broadcastSummary } from './ObservationBroadcaster.js'; +import { cleanupProcessedMessages } from './SessionCleanupHelper.js'; + +/** + * Process agent response text (parse XML, save to database, sync to Chroma, broadcast SSE) + * + * This is the unified response processor that handles: + * 1. Adding response to conversation history (for provider interop) + * 2. Parsing observations and summaries from XML + * 3. Atomic database transaction to store observations + summary + * 4. Async Chroma sync (fire-and-forget, failures are non-critical) + * 5. SSE broadcast to web UI clients + * 6. Session cleanup + * + * @param text - Response text from the agent + * @param session - Active session being processed + * @param dbManager - Database manager for storage operations + * @param sessionManager - Session manager for message tracking + * @param worker - Worker reference for SSE broadcasting (optional) + * @param discoveryTokens - Token cost delta for this response + * @param originalTimestamp - Original epoch when message was queued (for accurate timestamps) + * @param agentName - Name of the agent for logging (e.g., 'SDK', 'Gemini', 'OpenRouter') + */ +export async function processAgentResponse( + text: string, + session: ActiveSession, + dbManager: DatabaseManager, + sessionManager: SessionManager, + worker: WorkerRef | undefined, + discoveryTokens: number, + originalTimestamp: number | null, + agentName: string +): Promise { + // Add assistant response to shared conversation history for provider interop + if (text) { + session.conversationHistory.push({ role: 'assistant', content: text }); + } + + // Parse observations and summary + const observations = parseObservations(text, session.contentSessionId); + const summary = parseSummary(text, session.sessionDbId); + + // Convert nullable fields to empty strings for storeSummary (if summary exists) + const summaryForStore = normalizeSummaryForStorage(summary); + + // Get session store for atomic transaction + const sessionStore = dbManager.getSessionStore(); + + // CRITICAL: Must use memorySessionId (not contentSessionId) for FK constraint + if (!session.memorySessionId) { + throw new Error('Cannot store observations: memorySessionId not yet captured'); + } + + // ATOMIC TRANSACTION: Store observations + summary ONCE + // Messages are already deleted from queue on claim, so no completion tracking needed + const result = sessionStore.storeObservations( + session.memorySessionId, + session.project, + observations, + summaryForStore, + session.lastPromptNumber, + discoveryTokens, + originalTimestamp ?? undefined + ); + + // Log what was saved + logger.info('SDK', `${agentName} observations and summary saved atomically`, { + sessionId: session.sessionDbId, + observationCount: result.observationIds.length, + hasSummary: !!result.summaryId, + atomicTransaction: true + }); + + // AFTER transaction commits - async operations (can fail safely without data loss) + await syncAndBroadcastObservations( + observations, + result, + session, + dbManager, + worker, + discoveryTokens, + agentName + ); + + // Sync and broadcast summary if present + await syncAndBroadcastSummary( + summary, + summaryForStore, + result, + session, + dbManager, + worker, + discoveryTokens, + agentName + ); + + // Clean up session state + cleanupProcessedMessages(session, worker); +} + +/** + * Normalize summary for storage (convert null fields to empty strings) + */ +function normalizeSummaryForStorage(summary: ParsedSummary | null): { + request: string; + investigated: string; + learned: string; + completed: string; + next_steps: string; + notes: string | null; +} | null { + if (!summary) return null; + + return { + request: summary.request || '', + investigated: summary.investigated || '', + learned: summary.learned || '', + completed: summary.completed || '', + next_steps: summary.next_steps || '', + notes: summary.notes + }; +} + +/** + * Sync observations to Chroma and broadcast to SSE clients + */ +async function syncAndBroadcastObservations( + observations: ParsedObservation[], + result: StorageResult, + session: ActiveSession, + dbManager: DatabaseManager, + worker: WorkerRef | undefined, + discoveryTokens: number, + agentName: string +): Promise { + for (let i = 0; i < observations.length; i++) { + const obsId = result.observationIds[i]; + const obs = observations[i]; + const chromaStart = Date.now(); + + // Sync to Chroma (fire-and-forget) + dbManager.getChromaSync().syncObservation( + obsId, + session.contentSessionId, + session.project, + obs, + session.lastPromptNumber, + result.createdAtEpoch, + discoveryTokens + ).then(() => { + const chromaDuration = Date.now() - chromaStart; + logger.debug('CHROMA', 'Observation synced', { + obsId, + duration: `${chromaDuration}ms`, + type: obs.type, + title: obs.title || '(untitled)' + }); + }).catch((error) => { + logger.warn('CHROMA', `${agentName} chroma sync failed, continuing without vector search`, { + obsId, + type: obs.type, + title: obs.title || '(untitled)' + }, error); + }); + + // Broadcast to SSE clients (for web UI) + // BUGFIX: Use obs.files_read and obs.files_modified (not obs.files) + broadcastObservation(worker, { + id: obsId, + memory_session_id: session.memorySessionId, + session_id: session.contentSessionId, + type: obs.type, + title: obs.title, + subtitle: obs.subtitle, + text: null, // text field is not in ParsedObservation + narrative: obs.narrative || null, + facts: JSON.stringify(obs.facts || []), + concepts: JSON.stringify(obs.concepts || []), + files_read: JSON.stringify(obs.files_read || []), + files_modified: JSON.stringify(obs.files_modified || []), + project: session.project, + prompt_number: session.lastPromptNumber, + created_at_epoch: result.createdAtEpoch + }); + } +} + +/** + * Sync summary to Chroma and broadcast to SSE clients + */ +async function syncAndBroadcastSummary( + summary: ParsedSummary | null, + summaryForStore: { request: string; investigated: string; learned: string; completed: string; next_steps: string; notes: string | null } | null, + result: StorageResult, + session: ActiveSession, + dbManager: DatabaseManager, + worker: WorkerRef | undefined, + discoveryTokens: number, + agentName: string +): Promise { + if (!summaryForStore || !result.summaryId) { + return; + } + + const chromaStart = Date.now(); + + // Sync to Chroma (fire-and-forget) + dbManager.getChromaSync().syncSummary( + result.summaryId, + session.contentSessionId, + session.project, + summaryForStore, + session.lastPromptNumber, + result.createdAtEpoch, + discoveryTokens + ).then(() => { + const chromaDuration = Date.now() - chromaStart; + logger.debug('CHROMA', 'Summary synced', { + summaryId: result.summaryId, + duration: `${chromaDuration}ms`, + request: summaryForStore.request || '(no request)' + }); + }).catch((error) => { + logger.warn('CHROMA', `${agentName} chroma sync failed, continuing without vector search`, { + summaryId: result.summaryId, + request: summaryForStore.request || '(no request)' + }, error); + }); + + // Broadcast to SSE clients (for web UI) + broadcastSummary(worker, { + id: result.summaryId, + session_id: session.contentSessionId, + request: summary!.request, + investigated: summary!.investigated, + learned: summary!.learned, + completed: summary!.completed, + next_steps: summary!.next_steps, + notes: summary!.notes, + project: session.project, + prompt_number: session.lastPromptNumber, + created_at_epoch: result.createdAtEpoch + }); + + // Update Cursor context file for registered projects (fire-and-forget) + updateCursorContextForProject(session.project, getWorkerPort()).catch(error => { + logger.warn('CURSOR', 'Context update failed (non-critical)', { project: session.project }, error as Error); + }); +} diff --git a/src/services/worker/agents/SessionCleanupHelper.ts b/src/services/worker/agents/SessionCleanupHelper.ts new file mode 100644 index 00000000..c69381be --- /dev/null +++ b/src/services/worker/agents/SessionCleanupHelper.ts @@ -0,0 +1,36 @@ +/** + * SessionCleanupHelper: Session state cleanup after response processing + * + * Responsibility: + * - Reset earliest pending timestamp + * - Broadcast processing status updates + * + * NOTE: With claim-and-delete queue pattern, messages are deleted on claim, + * so there's no pendingProcessingIds tracking or processed message cleanup. + */ + +import type { ActiveSession } from '../../worker-types.js'; +import type { WorkerRef } from './types.js'; + +/** + * Clean up session state after response processing + * + * With claim-and-delete queue pattern, this function simply: + * 1. Resets the earliest pending timestamp + * 2. Broadcasts updated processing status to SSE clients + * + * @param session - Active session to clean up + * @param worker - Worker reference for status broadcasting (optional) + */ +export function cleanupProcessedMessages( + session: ActiveSession, + worker: WorkerRef | undefined +): void { + // Reset earliest pending timestamp for next batch + session.earliestPendingTimestamp = null; + + // Broadcast activity status after processing (queue may have changed) + if (worker && typeof worker.broadcastProcessingStatus === 'function') { + worker.broadcastProcessingStatus(); + } +} diff --git a/src/services/worker/agents/index.ts b/src/services/worker/agents/index.ts new file mode 100644 index 00000000..661b0961 --- /dev/null +++ b/src/services/worker/agents/index.ts @@ -0,0 +1,38 @@ +/** + * Agent Consolidation Module + * + * This module provides shared utilities for SDK, Gemini, and OpenRouter agents. + * It extracts common patterns to reduce code duplication and ensure consistent behavior. + * + * Usage: + * ```typescript + * import { processAgentResponse, shouldFallbackToClaude } from './agents/index.js'; + * ``` + */ + +// Types +export type { + WorkerRef, + ObservationSSEPayload, + SummarySSEPayload, + SSEEventPayload, + StorageResult, + ResponseProcessingContext, + ParsedResponse, + FallbackAgent, + BaseAgentConfig, +} from './types.js'; + +export { FALLBACK_ERROR_PATTERNS } from './types.js'; + +// Response Processing +export { processAgentResponse } from './ResponseProcessor.js'; + +// SSE Broadcasting +export { broadcastObservation, broadcastSummary } from './ObservationBroadcaster.js'; + +// Session Cleanup +export { cleanupProcessedMessages } from './SessionCleanupHelper.js'; + +// Error Handling +export { shouldFallbackToClaude, isAbortError } from './FallbackErrorHandler.js'; diff --git a/src/services/worker/agents/types.ts b/src/services/worker/agents/types.ts new file mode 100644 index 00000000..b3334e84 --- /dev/null +++ b/src/services/worker/agents/types.ts @@ -0,0 +1,133 @@ +/** + * Shared agent types for SDK, Gemini, and OpenRouter agents + * + * Responsibility: + * - Define common interfaces used across all agent implementations + * - Provide type safety for response processing and broadcasting + */ + +import type { ActiveSession } from '../../worker-types.js'; +import type { ParsedObservation, ParsedSummary } from '../../../sdk/parser.js'; + +// ============================================================================ +// Worker Reference Type +// ============================================================================ + +/** + * Worker reference for SSE broadcasting and status updates + * Both sseBroadcaster and broadcastProcessingStatus are optional + * to allow agents to run without a full worker context (e.g., testing) + */ +export interface WorkerRef { + sseBroadcaster?: { + broadcast(event: SSEEventPayload): void; + }; + broadcastProcessingStatus?: () => void; +} + +// ============================================================================ +// SSE Event Payloads +// ============================================================================ + +export interface ObservationSSEPayload { + id: number; + memory_session_id: string | null; + session_id: string; + type: string; + title: string | null; + subtitle: string | null; + text: string | null; + narrative: string | null; + facts: string; // JSON stringified + concepts: string; // JSON stringified + files_read: string; // JSON stringified + files_modified: string; // JSON stringified + project: string; + prompt_number: number; + created_at_epoch: number; +} + +export interface SummarySSEPayload { + id: number; + session_id: string; + request: string | null; + investigated: string | null; + learned: string | null; + completed: string | null; + next_steps: string | null; + notes: string | null; + project: string; + prompt_number: number; + created_at_epoch: number; +} + +export type SSEEventPayload = + | { type: 'new_observation'; observation: ObservationSSEPayload } + | { type: 'new_summary'; summary: SummarySSEPayload }; + +// ============================================================================ +// Response Processing Types +// ============================================================================ + +/** + * Result from atomic database transaction for observations/summary storage + */ +export interface StorageResult { + observationIds: number[]; + summaryId: number | null; + createdAtEpoch: number; +} + +/** + * Context needed for response processing + */ +export interface ResponseProcessingContext { + session: ActiveSession; + worker: WorkerRef | undefined; + discoveryTokens: number; + originalTimestamp: number | null; +} + +/** + * Parsed response data ready for storage + */ +export interface ParsedResponse { + observations: ParsedObservation[]; + summary: ParsedSummary | null; +} + +// ============================================================================ +// Fallback Agent Interface +// ============================================================================ + +/** + * Interface for fallback agent (used by Gemini/OpenRouter to fall back to Claude) + */ +export interface FallbackAgent { + startSession(session: ActiveSession, worker?: WorkerRef): Promise; +} + +// ============================================================================ +// Agent Configuration Types +// ============================================================================ + +/** + * Base configuration shared across all agents + */ +export interface BaseAgentConfig { + dbManager: import('../DatabaseManager.js').DatabaseManager; + sessionManager: import('../SessionManager.js').SessionManager; +} + +/** + * Error codes that should trigger fallback to Claude + */ +export const FALLBACK_ERROR_PATTERNS = [ + '429', // Rate limit + '500', // Internal server error + '502', // Bad gateway + '503', // Service unavailable + 'ECONNREFUSED', // Connection refused + 'ETIMEDOUT', // Timeout + 'fetch failed', // Network failure +] as const; diff --git a/src/services/worker/search/ResultFormatter.ts b/src/services/worker/search/ResultFormatter.ts new file mode 100644 index 00000000..62440e02 --- /dev/null +++ b/src/services/worker/search/ResultFormatter.ts @@ -0,0 +1,302 @@ +/** + * ResultFormatter - Formats search results for display + * + * Consolidates formatting logic from FormattingService and SearchManager. + * Provides consistent table and text formatting for all search result types. + */ + +import { + ObservationSearchResult, + SessionSummarySearchResult, + UserPromptSearchResult, + CombinedResult, + SearchResults +} from './types.js'; +import { ModeManager } from '../../domain/ModeManager.js'; +import { formatTime, extractFirstFile, groupByDate, estimateTokens } from '../../../shared/timeline-formatting.js'; + +const CHARS_PER_TOKEN_ESTIMATE = 4; + +export class ResultFormatter { + /** + * Format search results as markdown text + */ + formatSearchResults( + results: SearchResults, + query: string, + chromaFailed: boolean = false + ): string { + const totalResults = results.observations.length + + results.sessions.length + + results.prompts.length; + + if (totalResults === 0) { + if (chromaFailed) { + return this.formatChromaFailureMessage(); + } + return `No results found matching "${query}"`; + } + + // Combine all results with timestamps for unified sorting + const combined = this.combineResults(results); + + // Sort by date + combined.sort((a, b) => b.epoch - a.epoch); + + // Group by date, then by file within each day + const cwd = process.cwd(); + const resultsByDate = groupByDate(combined, item => item.created_at); + + // Build output with date/file grouping + const lines: string[] = []; + lines.push(`Found ${totalResults} result(s) matching "${query}" (${results.observations.length} obs, ${results.sessions.length} sessions, ${results.prompts.length} prompts)`); + lines.push(''); + + for (const [day, dayResults] of resultsByDate) { + lines.push(`### ${day}`); + lines.push(''); + + // Group by file within this day + const resultsByFile = new Map(); + for (const result of dayResults) { + let file = 'General'; + if (result.type === 'observation') { + file = extractFirstFile( + (result.data as ObservationSearchResult).files_modified, + cwd + ); + } + if (!resultsByFile.has(file)) { + resultsByFile.set(file, []); + } + resultsByFile.get(file)!.push(result); + } + + // Render each file section + for (const [file, fileResults] of resultsByFile) { + lines.push(`**${file}**`); + lines.push(this.formatSearchTableHeader()); + + let lastTime = ''; + for (const result of fileResults) { + if (result.type === 'observation') { + const formatted = this.formatObservationSearchRow( + result.data as ObservationSearchResult, + lastTime + ); + lines.push(formatted.row); + lastTime = formatted.time; + } else if (result.type === 'session') { + const formatted = this.formatSessionSearchRow( + result.data as SessionSummarySearchResult, + lastTime + ); + lines.push(formatted.row); + lastTime = formatted.time; + } else { + const formatted = this.formatPromptSearchRow( + result.data as UserPromptSearchResult, + lastTime + ); + lines.push(formatted.row); + lastTime = formatted.time; + } + } + + lines.push(''); + } + } + + return lines.join('\n'); + } + + /** + * Combine results into unified format + */ + combineResults(results: SearchResults): CombinedResult[] { + return [ + ...results.observations.map(obs => ({ + type: 'observation' as const, + data: obs, + epoch: obs.created_at_epoch, + created_at: obs.created_at + })), + ...results.sessions.map(sess => ({ + type: 'session' as const, + data: sess, + epoch: sess.created_at_epoch, + created_at: sess.created_at + })), + ...results.prompts.map(prompt => ({ + type: 'prompt' as const, + data: prompt, + epoch: prompt.created_at_epoch, + created_at: prompt.created_at + })) + ]; + } + + /** + * Format search table header (no Work column) + */ + formatSearchTableHeader(): string { + return `| ID | Time | T | Title | Read | +|----|------|---|-------|------|`; + } + + /** + * Format full table header (with Work column) + */ + formatTableHeader(): string { + return `| ID | Time | T | Title | Read | Work | +|-----|------|---|-------|------|------|`; + } + + /** + * Format observation as table row for search results + */ + formatObservationSearchRow( + obs: ObservationSearchResult, + lastTime: string + ): { row: string; time: string } { + const id = `#${obs.id}`; + const time = formatTime(obs.created_at_epoch); + const icon = ModeManager.getInstance().getTypeIcon(obs.type); + const title = obs.title || 'Untitled'; + const readTokens = this.estimateReadTokens(obs); + + const timeDisplay = time === lastTime ? '"' : time; + + return { + row: `| ${id} | ${timeDisplay} | ${icon} | ${title} | ~${readTokens} |`, + time + }; + } + + /** + * Format session as table row for search results + */ + formatSessionSearchRow( + session: SessionSummarySearchResult, + lastTime: string + ): { row: string; time: string } { + const id = `#S${session.id}`; + const time = formatTime(session.created_at_epoch); + const icon = '\uD83C\uDFAF'; // Target emoji + const title = session.request || + `Session ${session.memory_session_id?.substring(0, 8) || 'unknown'}`; + + const timeDisplay = time === lastTime ? '"' : time; + + return { + row: `| ${id} | ${timeDisplay} | ${icon} | ${title} | - |`, + time + }; + } + + /** + * Format user prompt as table row for search results + */ + formatPromptSearchRow( + prompt: UserPromptSearchResult, + lastTime: string + ): { row: string; time: string } { + const id = `#P${prompt.id}`; + const time = formatTime(prompt.created_at_epoch); + const icon = '\uD83D\uDCAC'; // Speech bubble emoji + const title = prompt.prompt_text.length > 60 + ? prompt.prompt_text.substring(0, 57) + '...' + : prompt.prompt_text; + + const timeDisplay = time === lastTime ? '"' : time; + + return { + row: `| ${id} | ${timeDisplay} | ${icon} | ${title} | - |`, + time + }; + } + + /** + * Format observation as index row (with Work column) + */ + formatObservationIndex(obs: ObservationSearchResult, _index: number): string { + const id = `#${obs.id}`; + const time = formatTime(obs.created_at_epoch); + const icon = ModeManager.getInstance().getTypeIcon(obs.type); + const title = obs.title || 'Untitled'; + const readTokens = this.estimateReadTokens(obs); + const workEmoji = ModeManager.getInstance().getWorkEmoji(obs.type); + const workTokens = obs.discovery_tokens || 0; + const workDisplay = workTokens > 0 ? `${workEmoji} ${workTokens}` : '-'; + + return `| ${id} | ${time} | ${icon} | ${title} | ~${readTokens} | ${workDisplay} |`; + } + + /** + * Format session as index row + */ + formatSessionIndex(session: SessionSummarySearchResult, _index: number): string { + const id = `#S${session.id}`; + const time = formatTime(session.created_at_epoch); + const icon = '\uD83C\uDFAF'; + const title = session.request || + `Session ${session.memory_session_id?.substring(0, 8) || 'unknown'}`; + + return `| ${id} | ${time} | ${icon} | ${title} | - | - |`; + } + + /** + * Format user prompt as index row + */ + formatPromptIndex(prompt: UserPromptSearchResult, _index: number): string { + const id = `#P${prompt.id}`; + const time = formatTime(prompt.created_at_epoch); + const icon = '\uD83D\uDCAC'; + const title = prompt.prompt_text.length > 60 + ? prompt.prompt_text.substring(0, 57) + '...' + : prompt.prompt_text; + + return `| ${id} | ${time} | ${icon} | ${title} | - | - |`; + } + + /** + * Estimate read tokens for an observation + */ + private estimateReadTokens(obs: ObservationSearchResult): number { + const size = (obs.title?.length || 0) + + (obs.subtitle?.length || 0) + + (obs.narrative?.length || 0) + + (obs.facts?.length || 0); + return Math.ceil(size / CHARS_PER_TOKEN_ESTIMATE); + } + + /** + * Format Chroma failure message + */ + private formatChromaFailureMessage(): string { + return `Vector search failed - semantic search unavailable. + +To enable semantic search: +1. Install uv: https://docs.astral.sh/uv/getting-started/installation/ +2. Restart the worker: npm run worker:restart + +Note: You can still use filter-only searches (date ranges, types, files) without a query term.`; + } + + /** + * Format search tips footer + */ + formatSearchTips(): string { + return ` +--- +Search Strategy: +1. Search with index to see titles, dates, IDs +2. Use timeline to get context around interesting results +3. Batch fetch full details: get_observations(ids=[...]) + +Tips: +- Filter by type: obs_type="bugfix,feature" +- Filter by date: dateStart="2025-01-01" +- Sort: orderBy="date_desc" or "date_asc"`; + } +} diff --git a/src/services/worker/search/SearchOrchestrator.ts b/src/services/worker/search/SearchOrchestrator.ts new file mode 100644 index 00000000..3418bae4 --- /dev/null +++ b/src/services/worker/search/SearchOrchestrator.ts @@ -0,0 +1,287 @@ +/** + * SearchOrchestrator - Coordinates search strategies and handles fallback logic + * + * This is the main entry point for search operations. It: + * 1. Normalizes input parameters + * 2. Selects the appropriate strategy + * 3. Executes the search + * 4. Handles fallbacks on failure + * 5. Delegates to formatters for output + */ + +import { SessionSearch } from '../../sqlite/SessionSearch.js'; +import { SessionStore } from '../../sqlite/SessionStore.js'; +import { ChromaSync } from '../../sync/ChromaSync.js'; + +import { ChromaSearchStrategy } from './strategies/ChromaSearchStrategy.js'; +import { SQLiteSearchStrategy } from './strategies/SQLiteSearchStrategy.js'; +import { HybridSearchStrategy } from './strategies/HybridSearchStrategy.js'; + +import { ResultFormatter } from './ResultFormatter.js'; +import { TimelineBuilder, TimelineItem, TimelineData } from './TimelineBuilder.js'; + +import { + StrategySearchOptions, + StrategySearchResult, + SearchResults, + SEARCH_CONSTANTS, + ObservationSearchResult +} from './types.js'; +import { logger } from '../../../utils/logger.js'; + +/** + * Normalized parameters from URL-friendly format + */ +interface NormalizedParams extends StrategySearchOptions { + concepts?: string[]; + files?: string[]; + obsType?: string[]; +} + +export class SearchOrchestrator { + private chromaStrategy: ChromaSearchStrategy | null = null; + private sqliteStrategy: SQLiteSearchStrategy; + private hybridStrategy: HybridSearchStrategy | null = null; + private resultFormatter: ResultFormatter; + private timelineBuilder: TimelineBuilder; + + constructor( + private sessionSearch: SessionSearch, + private sessionStore: SessionStore, + private chromaSync: ChromaSync | null + ) { + // Initialize strategies + this.sqliteStrategy = new SQLiteSearchStrategy(sessionSearch); + + if (chromaSync) { + this.chromaStrategy = new ChromaSearchStrategy(chromaSync, sessionStore); + this.hybridStrategy = new HybridSearchStrategy(chromaSync, sessionStore, sessionSearch); + } + + this.resultFormatter = new ResultFormatter(); + this.timelineBuilder = new TimelineBuilder(); + } + + /** + * Main search entry point + */ + async search(args: any): Promise { + const options = this.normalizeParams(args); + + // Decision tree for strategy selection + return await this.executeWithFallback(options); + } + + /** + * Execute search with fallback logic + */ + private async executeWithFallback( + options: NormalizedParams + ): Promise { + // PATH 1: FILTER-ONLY (no query text) - Use SQLite + if (!options.query) { + logger.debug('SEARCH', 'Orchestrator: Filter-only query, using SQLite', {}); + return await this.sqliteStrategy.search(options); + } + + // PATH 2: CHROMA SEMANTIC SEARCH (query text + Chroma available) + if (this.chromaStrategy) { + logger.debug('SEARCH', 'Orchestrator: Using Chroma semantic search', {}); + const result = await this.chromaStrategy.search(options); + + // If Chroma succeeded (even with 0 results), return + if (result.usedChroma) { + return result; + } + + // Chroma failed - fall back to SQLite for filter-only + logger.debug('SEARCH', 'Orchestrator: Chroma failed, falling back to SQLite', {}); + const fallbackResult = await this.sqliteStrategy.search({ + ...options, + query: undefined // Remove query for SQLite fallback + }); + + return { + ...fallbackResult, + fellBack: true + }; + } + + // PATH 3: No Chroma available + logger.debug('SEARCH', 'Orchestrator: Chroma not available', {}); + return { + results: { observations: [], sessions: [], prompts: [] }, + usedChroma: false, + fellBack: false, + strategy: 'sqlite' + }; + } + + /** + * Find by concept with hybrid search + */ + async findByConcept(concept: string, args: any): Promise { + const options = this.normalizeParams(args); + + if (this.hybridStrategy) { + return await this.hybridStrategy.findByConcept(concept, options); + } + + // Fallback to SQLite + const results = this.sqliteStrategy.findByConcept(concept, options); + return { + results: { observations: results, sessions: [], prompts: [] }, + usedChroma: false, + fellBack: false, + strategy: 'sqlite' + }; + } + + /** + * Find by type with hybrid search + */ + async findByType(type: string | string[], args: any): Promise { + const options = this.normalizeParams(args); + + if (this.hybridStrategy) { + return await this.hybridStrategy.findByType(type, options); + } + + // Fallback to SQLite + const results = this.sqliteStrategy.findByType(type, options); + return { + results: { observations: results, sessions: [], prompts: [] }, + usedChroma: false, + fellBack: false, + strategy: 'sqlite' + }; + } + + /** + * Find by file with hybrid search + */ + async findByFile(filePath: string, args: any): Promise<{ + observations: ObservationSearchResult[]; + sessions: any[]; + usedChroma: boolean; + }> { + const options = this.normalizeParams(args); + + if (this.hybridStrategy) { + return await this.hybridStrategy.findByFile(filePath, options); + } + + // Fallback to SQLite + const results = this.sqliteStrategy.findByFile(filePath, options); + return { ...results, usedChroma: false }; + } + + /** + * Get timeline around anchor + */ + getTimeline( + timelineData: TimelineData, + anchorId: number | string, + anchorEpoch: number, + depthBefore: number, + depthAfter: number + ): TimelineItem[] { + const items = this.timelineBuilder.buildTimeline(timelineData); + return this.timelineBuilder.filterByDepth(items, anchorId, anchorEpoch, depthBefore, depthAfter); + } + + /** + * Format timeline for display + */ + formatTimeline( + items: TimelineItem[], + anchorId: number | string | null, + options: { + query?: string; + depthBefore?: number; + depthAfter?: number; + } = {} + ): string { + return this.timelineBuilder.formatTimeline(items, anchorId, options); + } + + /** + * Format search results for display + */ + formatSearchResults( + results: SearchResults, + query: string, + chromaFailed: boolean = false + ): string { + return this.resultFormatter.formatSearchResults(results, query, chromaFailed); + } + + /** + * Get result formatter for direct access + */ + getFormatter(): ResultFormatter { + return this.resultFormatter; + } + + /** + * Get timeline builder for direct access + */ + getTimelineBuilder(): TimelineBuilder { + return this.timelineBuilder; + } + + /** + * Normalize query parameters from URL-friendly format + */ + private normalizeParams(args: any): NormalizedParams { + const normalized: any = { ...args }; + + // Parse comma-separated concepts into array + if (normalized.concepts && typeof normalized.concepts === 'string') { + normalized.concepts = normalized.concepts.split(',').map((s: string) => s.trim()).filter(Boolean); + } + + // Parse comma-separated files into array + if (normalized.files && typeof normalized.files === 'string') { + normalized.files = normalized.files.split(',').map((s: string) => s.trim()).filter(Boolean); + } + + // Parse comma-separated obs_type into array + if (normalized.obs_type && typeof normalized.obs_type === 'string') { + normalized.obsType = normalized.obs_type.split(',').map((s: string) => s.trim()).filter(Boolean); + delete normalized.obs_type; + } + + // Parse comma-separated type (for filterSchema) into array + if (normalized.type && typeof normalized.type === 'string' && normalized.type.includes(',')) { + normalized.type = normalized.type.split(',').map((s: string) => s.trim()).filter(Boolean); + } + + // Map 'type' param to 'searchType' for API consistency + if (normalized.type && !normalized.searchType) { + if (['observations', 'sessions', 'prompts'].includes(normalized.type)) { + normalized.searchType = normalized.type; + delete normalized.type; + } + } + + // Flatten dateStart/dateEnd into dateRange object + if (normalized.dateStart || normalized.dateEnd) { + normalized.dateRange = { + start: normalized.dateStart, + end: normalized.dateEnd + }; + delete normalized.dateStart; + delete normalized.dateEnd; + } + + return normalized; + } + + /** + * Check if Chroma is available + */ + isChromaAvailable(): boolean { + return !!this.chromaSync; + } +} diff --git a/src/services/worker/search/TimelineBuilder.ts b/src/services/worker/search/TimelineBuilder.ts new file mode 100644 index 00000000..ef28a315 --- /dev/null +++ b/src/services/worker/search/TimelineBuilder.ts @@ -0,0 +1,302 @@ +/** + * TimelineBuilder - Constructs timeline views for search results + * + * Builds chronological views around anchor points with depth control. + * Used by the timeline tool and get_context_timeline tool. + */ + +import { + ObservationSearchResult, + SessionSummarySearchResult, + UserPromptSearchResult, + CombinedResult +} from './types.js'; +import { ModeManager } from '../../domain/ModeManager.js'; +import { + formatDate, + formatTime, + formatDateTime, + extractFirstFile, + estimateTokens +} from '../../../shared/timeline-formatting.js'; + +/** + * Timeline item for unified chronological display + */ +export interface TimelineItem { + type: 'observation' | 'session' | 'prompt'; + data: ObservationSearchResult | SessionSummarySearchResult | UserPromptSearchResult; + epoch: number; +} + +/** + * Raw timeline data from SessionStore + */ +export interface TimelineData { + observations: ObservationSearchResult[]; + sessions: SessionSummarySearchResult[]; + prompts: UserPromptSearchResult[]; +} + +export class TimelineBuilder { + /** + * Build timeline items from raw data + */ + buildTimeline(data: TimelineData): TimelineItem[] { + const items: TimelineItem[] = [ + ...data.observations.map(obs => ({ + type: 'observation' as const, + data: obs, + epoch: obs.created_at_epoch + })), + ...data.sessions.map(sess => ({ + type: 'session' as const, + data: sess, + epoch: sess.created_at_epoch + })), + ...data.prompts.map(prompt => ({ + type: 'prompt' as const, + data: prompt, + epoch: prompt.created_at_epoch + })) + ]; + + // Sort chronologically + items.sort((a, b) => a.epoch - b.epoch); + return items; + } + + /** + * Filter timeline items to respect depth window around anchor + */ + filterByDepth( + items: TimelineItem[], + anchorId: number | string, + anchorEpoch: number, + depthBefore: number, + depthAfter: number + ): TimelineItem[] { + if (items.length === 0) return items; + + let anchorIndex = this.findAnchorIndex(items, anchorId, anchorEpoch); + + if (anchorIndex === -1) return items; + + const startIndex = Math.max(0, anchorIndex - depthBefore); + const endIndex = Math.min(items.length, anchorIndex + depthAfter + 1); + return items.slice(startIndex, endIndex); + } + + /** + * Find anchor index in timeline items + */ + private findAnchorIndex( + items: TimelineItem[], + anchorId: number | string, + anchorEpoch: number + ): number { + if (typeof anchorId === 'number') { + // Observation ID + return items.findIndex( + item => item.type === 'observation' && + (item.data as ObservationSearchResult).id === anchorId + ); + } + + if (typeof anchorId === 'string' && anchorId.startsWith('S')) { + // Session ID + const sessionNum = parseInt(anchorId.slice(1), 10); + return items.findIndex( + item => item.type === 'session' && + (item.data as SessionSummarySearchResult).id === sessionNum + ); + } + + // Timestamp anchor - find closest item + const index = items.findIndex(item => item.epoch >= anchorEpoch); + return index === -1 ? items.length - 1 : index; + } + + /** + * Format timeline as markdown + */ + formatTimeline( + items: TimelineItem[], + anchorId: number | string | null, + options: { + query?: string; + depthBefore?: number; + depthAfter?: number; + cwd?: string; + } = {} + ): string { + const { query, depthBefore, depthAfter, cwd = process.cwd() } = options; + + if (items.length === 0) { + return query + ? `Found observation matching "${query}", but no timeline context available.` + : 'No timeline items found'; + } + + const lines: string[] = []; + + // Header + if (query && anchorId) { + const anchorObs = items.find( + item => item.type === 'observation' && + (item.data as ObservationSearchResult).id === anchorId + ); + const anchorTitle = anchorObs + ? ((anchorObs.data as ObservationSearchResult).title || 'Untitled') + : 'Unknown'; + lines.push(`# Timeline for query: "${query}"`); + lines.push(`**Anchor:** Observation #${anchorId} - ${anchorTitle}`); + } else if (anchorId) { + lines.push(`# Timeline around anchor: ${anchorId}`); + } else { + lines.push(`# Timeline`); + } + + if (depthBefore !== undefined && depthAfter !== undefined) { + lines.push(`**Window:** ${depthBefore} records before -> ${depthAfter} records after | **Items:** ${items.length}`); + } else { + lines.push(`**Items:** ${items.length}`); + } + lines.push(''); + + // Group by day + const dayMap = this.groupByDay(items); + const sortedDays = this.sortDaysChronologically(dayMap); + + // Render each day + for (const [day, dayItems] of sortedDays) { + lines.push(`### ${day}`); + lines.push(''); + + let currentFile: string | null = null; + let lastTime = ''; + let tableOpen = false; + + for (const item of dayItems) { + const isAnchor = this.isAnchorItem(item, anchorId); + + if (item.type === 'session') { + // Close any open table + if (tableOpen) { + lines.push(''); + tableOpen = false; + currentFile = null; + lastTime = ''; + } + + const sess = item.data as SessionSummarySearchResult; + const title = sess.request || 'Session summary'; + const marker = isAnchor ? ' <- **ANCHOR**' : ''; + + lines.push(`**\uD83C\uDFAF #S${sess.id}** ${title} (${formatDateTime(item.epoch)})${marker}`); + lines.push(''); + + } else if (item.type === 'prompt') { + if (tableOpen) { + lines.push(''); + tableOpen = false; + currentFile = null; + lastTime = ''; + } + + const prompt = item.data as UserPromptSearchResult; + const truncated = prompt.prompt_text.length > 100 + ? prompt.prompt_text.substring(0, 100) + '...' + : prompt.prompt_text; + + lines.push(`**\uD83D\uDCAC User Prompt #${prompt.prompt_number}** (${formatDateTime(item.epoch)})`); + lines.push(`> ${truncated}`); + lines.push(''); + + } else if (item.type === 'observation') { + const obs = item.data as ObservationSearchResult; + const file = extractFirstFile(obs.files_modified, cwd); + + if (file !== currentFile) { + if (tableOpen) { + lines.push(''); + } + + lines.push(`**${file}**`); + lines.push(`| ID | Time | T | Title | Tokens |`); + lines.push(`|----|------|---|-------|--------|`); + + currentFile = file; + tableOpen = true; + lastTime = ''; + } + + const icon = ModeManager.getInstance().getTypeIcon(obs.type); + const time = formatTime(item.epoch); + const title = obs.title || 'Untitled'; + const tokens = estimateTokens(obs.narrative); + + const showTime = time !== lastTime; + const timeDisplay = showTime ? time : '"'; + lastTime = time; + + const anchorMarker = isAnchor ? ' <- **ANCHOR**' : ''; + lines.push(`| #${obs.id} | ${timeDisplay} | ${icon} | ${title}${anchorMarker} | ~${tokens} |`); + } + } + + if (tableOpen) { + lines.push(''); + } + } + + return lines.join('\n'); + } + + /** + * Group timeline items by day + */ + private groupByDay(items: TimelineItem[]): Map { + const dayMap = new Map(); + + for (const item of items) { + const day = formatDate(item.epoch); + if (!dayMap.has(day)) { + dayMap.set(day, []); + } + dayMap.get(day)!.push(item); + } + + return dayMap; + } + + /** + * Sort days chronologically + */ + private sortDaysChronologically( + dayMap: Map + ): Array<[string, TimelineItem[]]> { + return Array.from(dayMap.entries()).sort((a, b) => { + const aDate = new Date(a[0]).getTime(); + const bDate = new Date(b[0]).getTime(); + return aDate - bDate; + }); + } + + /** + * Check if item is the anchor + */ + private isAnchorItem(item: TimelineItem, anchorId: number | string | null): boolean { + if (anchorId === null) return false; + + if (typeof anchorId === 'number' && item.type === 'observation') { + return (item.data as ObservationSearchResult).id === anchorId; + } + + if (typeof anchorId === 'string' && anchorId.startsWith('S') && item.type === 'session') { + return `S${(item.data as SessionSummarySearchResult).id}` === anchorId; + } + + return false; + } +} diff --git a/src/services/worker/search/filters/DateFilter.ts b/src/services/worker/search/filters/DateFilter.ts new file mode 100644 index 00000000..3c3fafdb --- /dev/null +++ b/src/services/worker/search/filters/DateFilter.ts @@ -0,0 +1,101 @@ +/** + * DateFilter - Date range filtering for search results + * + * Provides utilities for filtering search results by date range. + */ + +import { DateRange, SearchResult, CombinedResult, SEARCH_CONSTANTS } from '../types.js'; + +/** + * Parse date range values to epoch milliseconds + */ +export function parseDateRange(dateRange?: DateRange): { + startEpoch?: number; + endEpoch?: number; +} { + if (!dateRange) { + return {}; + } + + const result: { startEpoch?: number; endEpoch?: number } = {}; + + if (dateRange.start) { + result.startEpoch = typeof dateRange.start === 'number' + ? dateRange.start + : new Date(dateRange.start).getTime(); + } + + if (dateRange.end) { + result.endEpoch = typeof dateRange.end === 'number' + ? dateRange.end + : new Date(dateRange.end).getTime(); + } + + return result; +} + +/** + * Check if an epoch timestamp is within a date range + */ +export function isWithinDateRange( + epoch: number, + dateRange?: DateRange +): boolean { + if (!dateRange) { + return true; + } + + const { startEpoch, endEpoch } = parseDateRange(dateRange); + + if (startEpoch && epoch < startEpoch) { + return false; + } + + if (endEpoch && epoch > endEpoch) { + return false; + } + + return true; +} + +/** + * Check if an epoch timestamp is within the recency window + */ +export function isRecent(epoch: number): boolean { + const cutoff = Date.now() - SEARCH_CONSTANTS.RECENCY_WINDOW_MS; + return epoch > cutoff; +} + +/** + * Filter combined results by date range + */ +export function filterResultsByDate( + results: T[], + dateRange?: DateRange +): T[] { + if (!dateRange) { + return results; + } + + return results.filter(result => isWithinDateRange(result.epoch, dateRange)); +} + +/** + * Get date boundaries for common ranges + */ +export function getDateBoundaries(range: 'today' | 'week' | 'month' | '90days'): DateRange { + const now = Date.now(); + const startOfToday = new Date(); + startOfToday.setHours(0, 0, 0, 0); + + switch (range) { + case 'today': + return { start: startOfToday.getTime() }; + case 'week': + return { start: now - 7 * 24 * 60 * 60 * 1000 }; + case 'month': + return { start: now - 30 * 24 * 60 * 60 * 1000 }; + case '90days': + return { start: now - SEARCH_CONSTANTS.RECENCY_WINDOW_MS }; + } +} diff --git a/src/services/worker/search/filters/ProjectFilter.ts b/src/services/worker/search/filters/ProjectFilter.ts new file mode 100644 index 00000000..8ee04c13 --- /dev/null +++ b/src/services/worker/search/filters/ProjectFilter.ts @@ -0,0 +1,59 @@ +/** + * ProjectFilter - Project scoping for search results + * + * Provides utilities for filtering search results by project. + */ + +import { basename } from 'path'; + +/** + * Get the current project name from cwd + */ +export function getCurrentProject(): string { + return basename(process.cwd()); +} + +/** + * Normalize project name for filtering + */ +export function normalizeProject(project?: string): string | undefined { + if (!project) { + return undefined; + } + + // Remove leading/trailing whitespace + const trimmed = project.trim(); + if (!trimmed) { + return undefined; + } + + return trimmed; +} + +/** + * Check if a result matches the project filter + */ +export function matchesProject( + resultProject: string, + filterProject?: string +): boolean { + if (!filterProject) { + return true; + } + + return resultProject === filterProject; +} + +/** + * Filter results by project + */ +export function filterResultsByProject( + results: T[], + project?: string +): T[] { + if (!project) { + return results; + } + + return results.filter(result => matchesProject(result.project, project)); +} diff --git a/src/services/worker/search/filters/TypeFilter.ts b/src/services/worker/search/filters/TypeFilter.ts new file mode 100644 index 00000000..3421643b --- /dev/null +++ b/src/services/worker/search/filters/TypeFilter.ts @@ -0,0 +1,75 @@ +/** + * TypeFilter - Observation type filtering for search results + * + * Provides utilities for filtering observations by type. + */ + +type ObservationType = 'decision' | 'bugfix' | 'feature' | 'refactor' | 'discovery' | 'change'; + +/** + * Valid observation types + */ +export const OBSERVATION_TYPES: ObservationType[] = [ + 'decision', + 'bugfix', + 'feature', + 'refactor', + 'discovery', + 'change' +]; + +/** + * Normalize type filter value(s) + */ +export function normalizeType( + type?: string | string[] +): ObservationType[] | undefined { + if (!type) { + return undefined; + } + + const types = Array.isArray(type) ? type : [type]; + const normalized = types + .map(t => t.trim().toLowerCase()) + .filter(t => OBSERVATION_TYPES.includes(t as ObservationType)) as ObservationType[]; + + return normalized.length > 0 ? normalized : undefined; +} + +/** + * Check if a result matches the type filter + */ +export function matchesType( + resultType: string, + filterTypes?: ObservationType[] +): boolean { + if (!filterTypes || filterTypes.length === 0) { + return true; + } + + return filterTypes.includes(resultType as ObservationType); +} + +/** + * Filter observations by type + */ +export function filterObservationsByType( + observations: T[], + types?: ObservationType[] +): T[] { + if (!types || types.length === 0) { + return observations; + } + + return observations.filter(obs => matchesType(obs.type, types)); +} + +/** + * Parse comma-separated type string + */ +export function parseTypeString(typeString: string): ObservationType[] { + return typeString + .split(',') + .map(t => t.trim().toLowerCase()) + .filter(t => OBSERVATION_TYPES.includes(t as ObservationType)) as ObservationType[]; +} diff --git a/src/services/worker/search/index.ts b/src/services/worker/search/index.ts new file mode 100644 index 00000000..4e3e320d --- /dev/null +++ b/src/services/worker/search/index.ts @@ -0,0 +1,26 @@ +/** + * Search Module - Named exports for search functionality + * + * This is the public API for the search module. + */ + +// Main orchestrator +export { SearchOrchestrator } from './SearchOrchestrator.js'; + +// Formatters +export { ResultFormatter } from './ResultFormatter.js'; +export { TimelineBuilder, TimelineItem, TimelineData } from './TimelineBuilder.js'; + +// Strategies +export { SearchStrategy, BaseSearchStrategy } from './strategies/SearchStrategy.js'; +export { ChromaSearchStrategy } from './strategies/ChromaSearchStrategy.js'; +export { SQLiteSearchStrategy } from './strategies/SQLiteSearchStrategy.js'; +export { HybridSearchStrategy } from './strategies/HybridSearchStrategy.js'; + +// Filters +export * from './filters/DateFilter.js'; +export * from './filters/ProjectFilter.js'; +export * from './filters/TypeFilter.js'; + +// Types +export * from './types.js'; diff --git a/src/services/worker/search/strategies/ChromaSearchStrategy.ts b/src/services/worker/search/strategies/ChromaSearchStrategy.ts new file mode 100644 index 00000000..d5f86d75 --- /dev/null +++ b/src/services/worker/search/strategies/ChromaSearchStrategy.ts @@ -0,0 +1,213 @@ +/** + * ChromaSearchStrategy - Vector-based semantic search via Chroma + * + * This strategy handles semantic search queries using ChromaDB: + * 1. Query Chroma for semantically similar documents + * 2. Filter by recency (90-day window) + * 3. Categorize by document type + * 4. Hydrate from SQLite + * + * Used when: Query text is provided and Chroma is available + */ + +import { BaseSearchStrategy, SearchStrategy } from './SearchStrategy.js'; +import { + StrategySearchOptions, + StrategySearchResult, + SEARCH_CONSTANTS, + ChromaMetadata, + ObservationSearchResult, + SessionSummarySearchResult, + UserPromptSearchResult +} from '../types.js'; +import { ChromaSync } from '../../../sync/ChromaSync.js'; +import { SessionStore } from '../../../sqlite/SessionStore.js'; +import { logger } from '../../../../utils/logger.js'; + +export class ChromaSearchStrategy extends BaseSearchStrategy implements SearchStrategy { + readonly name = 'chroma'; + + constructor( + private chromaSync: ChromaSync, + private sessionStore: SessionStore + ) { + super(); + } + + canHandle(options: StrategySearchOptions): boolean { + // Can handle when query text is provided and Chroma is available + return !!options.query && !!this.chromaSync; + } + + async search(options: StrategySearchOptions): Promise { + const { + query, + searchType = 'all', + obsType, + concepts, + files, + limit = SEARCH_CONSTANTS.DEFAULT_LIMIT, + project, + orderBy = 'date_desc' + } = options; + + if (!query) { + return this.emptyResult('chroma'); + } + + const searchObservations = searchType === 'all' || searchType === 'observations'; + const searchSessions = searchType === 'all' || searchType === 'sessions'; + const searchPrompts = searchType === 'all' || searchType === 'prompts'; + + let observations: ObservationSearchResult[] = []; + let sessions: SessionSummarySearchResult[] = []; + let prompts: UserPromptSearchResult[] = []; + + try { + // Build Chroma where filter for doc_type + const whereFilter = this.buildWhereFilter(searchType); + + // Step 1: Chroma semantic search + logger.debug('SEARCH', 'ChromaSearchStrategy: Querying Chroma', { query, searchType }); + const chromaResults = await this.chromaSync.queryChroma( + query, + SEARCH_CONSTANTS.CHROMA_BATCH_SIZE, + whereFilter + ); + + logger.debug('SEARCH', 'ChromaSearchStrategy: Chroma returned matches', { + matchCount: chromaResults.ids.length + }); + + if (chromaResults.ids.length === 0) { + // No matches - this is the correct answer + return { + results: { observations: [], sessions: [], prompts: [] }, + usedChroma: true, + fellBack: false, + strategy: 'chroma' + }; + } + + // Step 2: Filter by recency (90 days) + const recentItems = this.filterByRecency(chromaResults); + logger.debug('SEARCH', 'ChromaSearchStrategy: Filtered by recency', { + count: recentItems.length + }); + + // Step 3: Categorize by document type + const categorized = this.categorizeByDocType(recentItems, { + searchObservations, + searchSessions, + searchPrompts + }); + + // Step 4: Hydrate from SQLite with additional filters + if (categorized.obsIds.length > 0) { + const obsOptions = { type: obsType, concepts, files, orderBy, limit, project }; + observations = this.sessionStore.getObservationsByIds(categorized.obsIds, obsOptions); + } + + if (categorized.sessionIds.length > 0) { + sessions = this.sessionStore.getSessionSummariesByIds(categorized.sessionIds, { + orderBy, + limit, + project + }); + } + + if (categorized.promptIds.length > 0) { + prompts = this.sessionStore.getUserPromptsByIds(categorized.promptIds, { + orderBy, + limit, + project + }); + } + + logger.debug('SEARCH', 'ChromaSearchStrategy: Hydrated results', { + observations: observations.length, + sessions: sessions.length, + prompts: prompts.length + }); + + return { + results: { observations, sessions, prompts }, + usedChroma: true, + fellBack: false, + strategy: 'chroma' + }; + + } catch (error) { + logger.warn('SEARCH', 'ChromaSearchStrategy: Search failed', {}, error as Error); + // Return empty result - caller may try fallback strategy + return { + results: { observations: [], sessions: [], prompts: [] }, + usedChroma: false, + fellBack: false, + strategy: 'chroma' + }; + } + } + + /** + * Build Chroma where filter for document type + */ + private buildWhereFilter(searchType: string): Record | undefined { + switch (searchType) { + case 'observations': + return { doc_type: 'observation' }; + case 'sessions': + return { doc_type: 'session_summary' }; + case 'prompts': + return { doc_type: 'user_prompt' }; + default: + return undefined; + } + } + + /** + * Filter results by recency (90-day window) + */ + private filterByRecency(chromaResults: { + ids: number[]; + metadatas: ChromaMetadata[]; + }): Array<{ id: number; meta: ChromaMetadata }> { + const cutoff = Date.now() - SEARCH_CONSTANTS.RECENCY_WINDOW_MS; + + return chromaResults.metadatas + .map((meta, idx) => ({ + id: chromaResults.ids[idx], + meta + })) + .filter(item => item.meta && item.meta.created_at_epoch > cutoff); + } + + /** + * Categorize IDs by document type + */ + private categorizeByDocType( + items: Array<{ id: number; meta: ChromaMetadata }>, + options: { + searchObservations: boolean; + searchSessions: boolean; + searchPrompts: boolean; + } + ): { obsIds: number[]; sessionIds: number[]; promptIds: number[] } { + const obsIds: number[] = []; + const sessionIds: number[] = []; + const promptIds: number[] = []; + + for (const item of items) { + const docType = item.meta?.doc_type; + if (docType === 'observation' && options.searchObservations) { + obsIds.push(item.id); + } else if (docType === 'session_summary' && options.searchSessions) { + sessionIds.push(item.id); + } else if (docType === 'user_prompt' && options.searchPrompts) { + promptIds.push(item.id); + } + } + + return { obsIds, sessionIds, promptIds }; + } +} diff --git a/src/services/worker/search/strategies/HybridSearchStrategy.ts b/src/services/worker/search/strategies/HybridSearchStrategy.ts new file mode 100644 index 00000000..2a492ec8 --- /dev/null +++ b/src/services/worker/search/strategies/HybridSearchStrategy.ts @@ -0,0 +1,270 @@ +/** + * HybridSearchStrategy - Combines metadata filtering with semantic ranking + * + * This strategy provides the best of both worlds: + * 1. SQLite metadata filter (get all IDs matching criteria) + * 2. Chroma semantic ranking (rank by relevance) + * 3. Intersection (keep only IDs from step 1, in rank order from step 2) + * 4. Hydrate from SQLite in semantic rank order + * + * Used for: findByConcept, findByFile, findByType with Chroma available + */ + +import { BaseSearchStrategy, SearchStrategy } from './SearchStrategy.js'; +import { + StrategySearchOptions, + StrategySearchResult, + SEARCH_CONSTANTS, + ObservationSearchResult, + SessionSummarySearchResult +} from '../types.js'; +import { ChromaSync } from '../../../sync/ChromaSync.js'; +import { SessionStore } from '../../../sqlite/SessionStore.js'; +import { SessionSearch } from '../../../sqlite/SessionSearch.js'; +import { logger } from '../../../../utils/logger.js'; + +export class HybridSearchStrategy extends BaseSearchStrategy implements SearchStrategy { + readonly name = 'hybrid'; + + constructor( + private chromaSync: ChromaSync, + private sessionStore: SessionStore, + private sessionSearch: SessionSearch + ) { + super(); + } + + canHandle(options: StrategySearchOptions): boolean { + // Can handle when we have metadata filters and Chroma is available + return !!this.chromaSync && ( + !!options.concepts || + !!options.files || + (!!options.type && !!options.query) || + options.strategyHint === 'hybrid' + ); + } + + async search(options: StrategySearchOptions): Promise { + // This is the generic hybrid search - specific operations use dedicated methods + const { query, limit = SEARCH_CONSTANTS.DEFAULT_LIMIT, project } = options; + + if (!query) { + return this.emptyResult('hybrid'); + } + + // For generic hybrid search, use the standard Chroma path + // More specific operations (findByConcept, etc.) have dedicated methods + return this.emptyResult('hybrid'); + } + + /** + * Find observations by concept with semantic ranking + * Pattern: Metadata filter -> Chroma ranking -> Intersection -> Hydrate + */ + async findByConcept( + concept: string, + options: StrategySearchOptions + ): Promise { + const { limit = SEARCH_CONSTANTS.DEFAULT_LIMIT, project, dateRange, orderBy } = options; + const filterOptions = { limit, project, dateRange, orderBy }; + + try { + logger.debug('SEARCH', 'HybridSearchStrategy: findByConcept', { concept }); + + // Step 1: SQLite metadata filter + const metadataResults = this.sessionSearch.findByConcept(concept, filterOptions); + logger.debug('SEARCH', 'HybridSearchStrategy: Found metadata matches', { + count: metadataResults.length + }); + + if (metadataResults.length === 0) { + return this.emptyResult('hybrid'); + } + + // Step 2: Chroma semantic ranking + const ids = metadataResults.map(obs => obs.id); + const chromaResults = await this.chromaSync.queryChroma( + concept, + Math.min(ids.length, SEARCH_CONSTANTS.CHROMA_BATCH_SIZE) + ); + + // Step 3: Intersect - keep only IDs from metadata, in Chroma rank order + const rankedIds = this.intersectWithRanking(ids, chromaResults.ids); + logger.debug('SEARCH', 'HybridSearchStrategy: Ranked by semantic relevance', { + count: rankedIds.length + }); + + // Step 4: Hydrate in semantic rank order + if (rankedIds.length > 0) { + const observations = this.sessionStore.getObservationsByIds(rankedIds, { limit }); + // Restore semantic ranking order + observations.sort((a, b) => rankedIds.indexOf(a.id) - rankedIds.indexOf(b.id)); + + return { + results: { observations, sessions: [], prompts: [] }, + usedChroma: true, + fellBack: false, + strategy: 'hybrid' + }; + } + + return this.emptyResult('hybrid'); + + } catch (error) { + logger.warn('SEARCH', 'HybridSearchStrategy: findByConcept failed', {}, error as Error); + // Fall back to metadata-only results + const results = this.sessionSearch.findByConcept(concept, filterOptions); + return { + results: { observations: results, sessions: [], prompts: [] }, + usedChroma: false, + fellBack: true, + strategy: 'hybrid' + }; + } + } + + /** + * Find observations by type with semantic ranking + */ + async findByType( + type: string | string[], + options: StrategySearchOptions + ): Promise { + const { limit = SEARCH_CONSTANTS.DEFAULT_LIMIT, project, dateRange, orderBy } = options; + const filterOptions = { limit, project, dateRange, orderBy }; + const typeStr = Array.isArray(type) ? type.join(', ') : type; + + try { + logger.debug('SEARCH', 'HybridSearchStrategy: findByType', { type: typeStr }); + + // Step 1: SQLite metadata filter + const metadataResults = this.sessionSearch.findByType(type as any, filterOptions); + logger.debug('SEARCH', 'HybridSearchStrategy: Found metadata matches', { + count: metadataResults.length + }); + + if (metadataResults.length === 0) { + return this.emptyResult('hybrid'); + } + + // Step 2: Chroma semantic ranking + const ids = metadataResults.map(obs => obs.id); + const chromaResults = await this.chromaSync.queryChroma( + typeStr, + Math.min(ids.length, SEARCH_CONSTANTS.CHROMA_BATCH_SIZE) + ); + + // Step 3: Intersect with ranking + const rankedIds = this.intersectWithRanking(ids, chromaResults.ids); + logger.debug('SEARCH', 'HybridSearchStrategy: Ranked by semantic relevance', { + count: rankedIds.length + }); + + // Step 4: Hydrate in rank order + if (rankedIds.length > 0) { + const observations = this.sessionStore.getObservationsByIds(rankedIds, { limit }); + observations.sort((a, b) => rankedIds.indexOf(a.id) - rankedIds.indexOf(b.id)); + + return { + results: { observations, sessions: [], prompts: [] }, + usedChroma: true, + fellBack: false, + strategy: 'hybrid' + }; + } + + return this.emptyResult('hybrid'); + + } catch (error) { + logger.warn('SEARCH', 'HybridSearchStrategy: findByType failed', {}, error as Error); + const results = this.sessionSearch.findByType(type as any, filterOptions); + return { + results: { observations: results, sessions: [], prompts: [] }, + usedChroma: false, + fellBack: true, + strategy: 'hybrid' + }; + } + } + + /** + * Find observations and sessions by file path with semantic ranking + */ + async findByFile( + filePath: string, + options: StrategySearchOptions + ): Promise<{ + observations: ObservationSearchResult[]; + sessions: SessionSummarySearchResult[]; + usedChroma: boolean; + }> { + const { limit = SEARCH_CONSTANTS.DEFAULT_LIMIT, project, dateRange, orderBy } = options; + const filterOptions = { limit, project, dateRange, orderBy }; + + try { + logger.debug('SEARCH', 'HybridSearchStrategy: findByFile', { filePath }); + + // Step 1: SQLite metadata filter + const metadataResults = this.sessionSearch.findByFile(filePath, filterOptions); + logger.debug('SEARCH', 'HybridSearchStrategy: Found file matches', { + observations: metadataResults.observations.length, + sessions: metadataResults.sessions.length + }); + + // Sessions don't need semantic ranking (already summarized) + const sessions = metadataResults.sessions; + + if (metadataResults.observations.length === 0) { + return { observations: [], sessions, usedChroma: false }; + } + + // Step 2: Chroma semantic ranking for observations + const ids = metadataResults.observations.map(obs => obs.id); + const chromaResults = await this.chromaSync.queryChroma( + filePath, + Math.min(ids.length, SEARCH_CONSTANTS.CHROMA_BATCH_SIZE) + ); + + // Step 3: Intersect with ranking + const rankedIds = this.intersectWithRanking(ids, chromaResults.ids); + logger.debug('SEARCH', 'HybridSearchStrategy: Ranked observations', { + count: rankedIds.length + }); + + // Step 4: Hydrate in rank order + if (rankedIds.length > 0) { + const observations = this.sessionStore.getObservationsByIds(rankedIds, { limit }); + observations.sort((a, b) => rankedIds.indexOf(a.id) - rankedIds.indexOf(b.id)); + + return { observations, sessions, usedChroma: true }; + } + + return { observations: [], sessions, usedChroma: false }; + + } catch (error) { + logger.warn('SEARCH', 'HybridSearchStrategy: findByFile failed', {}, error as Error); + const results = this.sessionSearch.findByFile(filePath, filterOptions); + return { + observations: results.observations, + sessions: results.sessions, + usedChroma: false + }; + } + } + + /** + * Intersect metadata IDs with Chroma IDs, preserving Chroma's rank order + */ + private intersectWithRanking(metadataIds: number[], chromaIds: number[]): number[] { + const metadataSet = new Set(metadataIds); + const rankedIds: number[] = []; + + for (const chromaId of chromaIds) { + if (metadataSet.has(chromaId) && !rankedIds.includes(chromaId)) { + rankedIds.push(chromaId); + } + } + + return rankedIds; + } +} diff --git a/src/services/worker/search/strategies/SQLiteSearchStrategy.ts b/src/services/worker/search/strategies/SQLiteSearchStrategy.ts new file mode 100644 index 00000000..8f5df164 --- /dev/null +++ b/src/services/worker/search/strategies/SQLiteSearchStrategy.ts @@ -0,0 +1,131 @@ +/** + * SQLiteSearchStrategy - Direct SQLite queries for filter-only searches + * + * This strategy handles searches without query text (filter-only): + * - Date range filtering + * - Project filtering + * - Type filtering + * - Concept/file filtering + * + * Used when: No query text is provided, or as a fallback when Chroma fails + */ + +import { BaseSearchStrategy, SearchStrategy } from './SearchStrategy.js'; +import { + StrategySearchOptions, + StrategySearchResult, + SEARCH_CONSTANTS, + ObservationSearchResult, + SessionSummarySearchResult, + UserPromptSearchResult +} from '../types.js'; +import { SessionSearch } from '../../../sqlite/SessionSearch.js'; +import { logger } from '../../../../utils/logger.js'; + +export class SQLiteSearchStrategy extends BaseSearchStrategy implements SearchStrategy { + readonly name = 'sqlite'; + + constructor(private sessionSearch: SessionSearch) { + super(); + } + + canHandle(options: StrategySearchOptions): boolean { + // Can handle filter-only queries (no query text) + // Also used as fallback when Chroma is unavailable + return !options.query || options.strategyHint === 'sqlite'; + } + + async search(options: StrategySearchOptions): Promise { + const { + searchType = 'all', + obsType, + concepts, + files, + limit = SEARCH_CONSTANTS.DEFAULT_LIMIT, + offset = 0, + project, + dateRange, + orderBy = 'date_desc' + } = options; + + const searchObservations = searchType === 'all' || searchType === 'observations'; + const searchSessions = searchType === 'all' || searchType === 'sessions'; + const searchPrompts = searchType === 'all' || searchType === 'prompts'; + + let observations: ObservationSearchResult[] = []; + let sessions: SessionSummarySearchResult[] = []; + let prompts: UserPromptSearchResult[] = []; + + const baseOptions = { limit, offset, orderBy, project, dateRange }; + + logger.debug('SEARCH', 'SQLiteSearchStrategy: Filter-only query', { + searchType, + hasDateRange: !!dateRange, + hasProject: !!project + }); + + try { + if (searchObservations) { + const obsOptions = { + ...baseOptions, + type: obsType, + concepts, + files + }; + observations = this.sessionSearch.searchObservations(undefined, obsOptions); + } + + if (searchSessions) { + sessions = this.sessionSearch.searchSessions(undefined, baseOptions); + } + + if (searchPrompts) { + prompts = this.sessionSearch.searchUserPrompts(undefined, baseOptions); + } + + logger.debug('SEARCH', 'SQLiteSearchStrategy: Results', { + observations: observations.length, + sessions: sessions.length, + prompts: prompts.length + }); + + return { + results: { observations, sessions, prompts }, + usedChroma: false, + fellBack: false, + strategy: 'sqlite' + }; + + } catch (error) { + logger.warn('SEARCH', 'SQLiteSearchStrategy: Search failed', {}, error as Error); + return this.emptyResult('sqlite'); + } + } + + /** + * Find observations by concept (used by findByConcept tool) + */ + findByConcept(concept: string, options: StrategySearchOptions): ObservationSearchResult[] { + const { limit = SEARCH_CONSTANTS.DEFAULT_LIMIT, project, dateRange, orderBy = 'date_desc' } = options; + return this.sessionSearch.findByConcept(concept, { limit, project, dateRange, orderBy }); + } + + /** + * Find observations by type (used by findByType tool) + */ + findByType(type: string | string[], options: StrategySearchOptions): ObservationSearchResult[] { + const { limit = SEARCH_CONSTANTS.DEFAULT_LIMIT, project, dateRange, orderBy = 'date_desc' } = options; + return this.sessionSearch.findByType(type as any, { limit, project, dateRange, orderBy }); + } + + /** + * Find observations and sessions by file path (used by findByFile tool) + */ + findByFile(filePath: string, options: StrategySearchOptions): { + observations: ObservationSearchResult[]; + sessions: SessionSummarySearchResult[]; + } { + const { limit = SEARCH_CONSTANTS.DEFAULT_LIMIT, project, dateRange, orderBy = 'date_desc' } = options; + return this.sessionSearch.findByFile(filePath, { limit, project, dateRange, orderBy }); + } +} diff --git a/src/services/worker/search/strategies/SearchStrategy.ts b/src/services/worker/search/strategies/SearchStrategy.ts new file mode 100644 index 00000000..4fe43967 --- /dev/null +++ b/src/services/worker/search/strategies/SearchStrategy.ts @@ -0,0 +1,60 @@ +/** + * SearchStrategy - Interface for search strategy implementations + * + * Each strategy implements a different approach to searching: + * - ChromaSearchStrategy: Vector-based semantic search via Chroma + * - SQLiteSearchStrategy: Direct SQLite queries for filter-only searches + * - HybridSearchStrategy: Metadata filtering + semantic ranking + */ + +import { SearchResults, StrategySearchOptions, StrategySearchResult } from '../types.js'; + +/** + * Base interface for all search strategies + */ +export interface SearchStrategy { + /** + * Execute a search with the given options + * @param options Search options including query and filters + * @returns Promise resolving to categorized search results + */ + search(options: StrategySearchOptions): Promise; + + /** + * Check if this strategy can handle the given search options + * @param options Search options to evaluate + * @returns true if this strategy can handle the search + */ + canHandle(options: StrategySearchOptions): boolean; + + /** + * Strategy name for logging and debugging + */ + readonly name: string; +} + +/** + * Abstract base class providing common functionality for strategies + */ +export abstract class BaseSearchStrategy implements SearchStrategy { + abstract readonly name: string; + + abstract search(options: StrategySearchOptions): Promise; + abstract canHandle(options: StrategySearchOptions): boolean; + + /** + * Create an empty search result + */ + protected emptyResult(strategy: 'chroma' | 'sqlite' | 'hybrid'): StrategySearchResult { + return { + results: { + observations: [], + sessions: [], + prompts: [] + }, + usedChroma: strategy === 'chroma' || strategy === 'hybrid', + fellBack: false, + strategy + }; + } +} diff --git a/src/services/worker/search/types.ts b/src/services/worker/search/types.ts new file mode 100644 index 00000000..ea4fa496 --- /dev/null +++ b/src/services/worker/search/types.ts @@ -0,0 +1,120 @@ +/** + * Search Types - Type definitions for the search module + * Centralizes all search-related types, options, and result interfaces + */ + +import { ObservationSearchResult, SessionSummarySearchResult, UserPromptSearchResult, SearchOptions, DateRange } from '../../sqlite/types.js'; + +// Re-export base types for convenience +export { ObservationSearchResult, SessionSummarySearchResult, UserPromptSearchResult, SearchOptions, DateRange }; + +/** + * Constants used across search strategies + */ +export const SEARCH_CONSTANTS = { + RECENCY_WINDOW_DAYS: 90, + RECENCY_WINDOW_MS: 90 * 24 * 60 * 60 * 1000, + DEFAULT_LIMIT: 20, + CHROMA_BATCH_SIZE: 100 +} as const; + +/** + * Document types stored in Chroma + */ +export type ChromaDocType = 'observation' | 'session_summary' | 'user_prompt'; + +/** + * Chroma query result with typed metadata + */ +export interface ChromaQueryResult { + ids: number[]; + distances: number[]; + metadatas: ChromaMetadata[]; +} + +/** + * Metadata stored with each Chroma document + */ +export interface ChromaMetadata { + sqlite_id: number; + doc_type: ChromaDocType; + memory_session_id: string; + project: string; + created_at_epoch: number; + type?: string; + title?: string; + subtitle?: string; + concepts?: string; + files_read?: string; + files_modified?: string; + field_type?: string; + prompt_number?: number; +} + +/** + * Unified search result type for all document types + */ +export type SearchResult = ObservationSearchResult | SessionSummarySearchResult | UserPromptSearchResult; + +/** + * Search results container with categorized results + */ +export interface SearchResults { + observations: ObservationSearchResult[]; + sessions: SessionSummarySearchResult[]; + prompts: UserPromptSearchResult[]; +} + +/** + * Extended search options for the search module + */ +export interface ExtendedSearchOptions extends SearchOptions { + /** Type filter for search API (observations, sessions, prompts) */ + searchType?: 'observations' | 'sessions' | 'prompts' | 'all'; + /** Observation type filter (decision, bugfix, feature, etc.) */ + obsType?: string | string[]; + /** Concept tags to filter by */ + concepts?: string | string[]; + /** File paths to filter by */ + files?: string | string[]; + /** Output format */ + format?: 'text' | 'json'; +} + +/** + * Search strategy selection hint + */ +export type SearchStrategyHint = 'chroma' | 'sqlite' | 'hybrid' | 'auto'; + +/** + * Options passed to search strategies + */ +export interface StrategySearchOptions extends ExtendedSearchOptions { + /** Query text for semantic search (optional for filter-only queries) */ + query?: string; + /** Force a specific strategy */ + strategyHint?: SearchStrategyHint; +} + +/** + * Result from a search strategy + */ +export interface StrategySearchResult { + results: SearchResults; + /** Whether Chroma was used successfully */ + usedChroma: boolean; + /** Whether fallback was triggered */ + fellBack: boolean; + /** Strategy that produced the results */ + strategy: SearchStrategyHint; +} + +/** + * Combined result type for timeline items + */ +export interface CombinedResult { + type: 'observation' | 'session' | 'prompt'; + data: SearchResult; + epoch: number; + created_at: string; +}