diff --git a/.env.example b/.env.example index f2e2627..4299377 100644 --- a/.env.example +++ b/.env.example @@ -17,8 +17,10 @@ NEXT_PUBLIC_SENTRY_PROJECT_NAME=example CONVEX_SELF_HOSTED_URL=https://api.convex.example.com # convex-backend:3210 CONVEX_SELF_HOSTED_ADMIN_KEY= # Generate after hosted on docker # Convex Auth -CONVEX_SITE_URL=https://convex.example.com # convex-backend:3211 +CONVEX_SITE_URL=http://localhost:3000 # Always localhost:3000 for local dev; update in Convex Dashboard for production USESEND_API_KEY= +USESEND_URL=https://usesend.example.com +USESEND_FROM_EMAIL=My App AUTH_AUTHENTIK_ID= AUTH_AUTHENTIK_SECRET= AUTH_AUTHENTIK_ISSUER= diff --git a/.npmrc b/.npmrc deleted file mode 100644 index e69de29..0000000 diff --git a/AGENTS.md b/AGENTS.md index 626ee8b..e26ef34 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,114 +1,386 @@ -# AGENTS.md - Convex Turbo Monorepo +# AGENTS.md — Convex Turbo Monorepo -## For AI Agents Working in This Repo - -**Testing & Quality Checks:** - -- **ALWAYS prefer `bun typecheck`** over `bun build` when checking your work - - Typecheck is faster and sufficient for validation - - Build is for production deployment only and takes much longer - -**Scope Focus:** - -- **Ignore `apps/expo/` directory** unless explicitly asked to work on it - - Focus on Next.js app and backend for now - - Expo setup is incomplete and will be addressed later - -**Backend Package Note:** - -- `@gib/backend` has no root `tsconfig.json` (only `convex/tsconfig.json`) - - This is intentional - follows Convex's recommended structure - - Running `bun typecheck` on backend will show TypeScript help output - - This is expected behavior, not an error - -**Self-Hosted Setup:** - -- This project uses self-hosted Convex (not Convex cloud) -- Database runs on separate server via Docker -- See `docker/` directory for deployment configuration +This is the definitive onboarding guide for AI agents (and humans) working in this +repository. Read it fully before making any changes. It covers architecture, patterns, +constraints, and known issues — everything you need to work effectively without +breaking things or introducing inconsistencies. --- -## Quick Reference +## Table of Contents -### Build/Lint/Test Commands - -```bash -# Development -bun dev # Run all apps (Next.js + Expo + Backend) -bun dev:next # Run Next.js + Convex backend only -bun dev:expo # Run Expo + Convex backend only -bun dev:backend # Run Convex backend only -bun dev:expo:tunnel # Expo with tunnel for physical device - -# Quality (PREFER typecheck over build for testing) -bun typecheck # TypeScript checking (PREFERRED for validation) -bun lint # Lint all packages -bun lint:fix # Lint and auto-fix -bun format # Check formatting -bun format:fix # Fix formatting - -# Build (production only, slower) -bun build # Build all packages - -# Single Package Commands (use Turborepo filters) -bun turbo run dev -F @gib/next # Single app dev -bun turbo run lint -F @gib/backend # Lint single package -bun turbo run typecheck -F @gib/ui # Typecheck single package - -# Cleanup -bun clean # Clean all node_modules (git clean) -bun clean:ws # Clean workspace caches -``` +1. [What This Repo Is](#1-what-this-repo-is) +2. [Critical Rules — Read First](#2-critical-rules--read-first) +3. [Monorepo Architecture Overview](#3-monorepo-architecture-overview) +4. [Self-Hosted Stack & Runtime Requirements](#4-self-hosted-stack--runtime-requirements) +5. [Environment Variables — Complete Reference](#5-environment-variables--complete-reference) +6. [Dependency Management — The Catalog System](#6-dependency-management--the-catalog-system) +7. [Convex Backend Deep Dive](#7-convex-backend-deep-dive) +8. [Next.js App Deep Dive](#8-nextjs-app-deep-dive) +9. [UI Package (`@gib/ui`)](#9-ui-package-gibui) +10. [Tools — Shared Configuration Packages](#10-tools--shared-configuration-packages) +11. [Docker & Deployment](#11-docker--deployment) +12. [Code Style Reference](#12-code-style-reference) +13. [Adding New Features — Checklists](#13-adding-new-features--checklists) +14. [Expo App — Known Issues, Do Not Touch](#14-expo-app--known-issues-do-not-touch) +15. [Known Issues & Technical Debt](#15-known-issues--technical-debt) +16. [Quick Command Reference](#16-quick-command-reference) --- -## Project Structure +## 1. What This Repo Is + +This is a personal full-stack monorepo template for spinning up self-hosted web +applications quickly. The core idea: clone the repo, configure the environment +variables, stand up two Docker containers for Convex, reverse-proxy them through +nginx-proxy-manager, and you have a production-ready Next.js website with: + +- **Self-hosted Convex** as the backend/database (not Convex Cloud) +- **Convex Auth** with two providers: Authentik (OAuth SSO) and a custom Password + provider with email OTP via a self-hosted UseSend instance +- **Sentry** for error tracking and performance monitoring +- **Plausible** for privacy-focused analytics +- A **stubbed Expo app** that is present for future mobile work but is not the focus + +The primary deliverable from this template is the **Next.js web app**. Every project +built from this template has been entirely focused on `apps/next/` and +`packages/backend/`. The Expo app exists structurally but is non-functional and +should be ignored unless explicitly asked to work on it. + +When working in this repo as an AI agent, you are almost certainly working on an +existing running instance of this template — the Convex backend is already deployed, +auth is already configured, and your job is to build features on top of the +established foundation. + +--- + +## 2. Critical Rules — Read First + +These are hard constraints. Violating them will break things that are intentionally +configured and difficult to re-stabilize. + +### Never do these without explicit instruction: + +- **NEVER modify anything inside `packages/backend/convex/_generated/`** — these + files are auto-generated by the Convex CLI and will be overwritten. Read them for + type information, never edit them. + +- **NEVER rename `apps/next/next.config.js` to `next.config.ts`** — the config uses + `jiti` to import `./src/env.ts` (a TypeScript file) at build time. This pattern + only works when the config itself is a `.js` file. Renaming it to `.ts` will break + the build. + +- **NEVER rename `apps/next/src/proxy.ts` to `middleware.ts`** — `proxy.ts` is the + correct and intentional name for the Next.js route handler file in Next.js 16+. + This was an official rename from the Next.js team to reduce confusion. The file + works exactly as middleware did; it's just named differently now. + +- **NEVER modify the Sentry configuration files without explicit instruction** — these + took significant effort to get working correctly with the standalone Docker build, + Plausible proxy, and self-hosted Sentry. The files to leave alone are: + - `apps/next/next.config.js` + - `apps/next/src/instrumentation.ts` + - `apps/next/src/instrumentation-client.ts` + - `apps/next/src/sentry.server.config.ts` + +- **NEVER remove `typescript.ignoreBuildErrors: true` from `next.config.js`** — some + shadcn/ui components produce spurious TypeScript build errors. This flag keeps the + build working. It's intentional and should stay until explicitly removed. + +- **NEVER modify `tools/tailwind/theme.css` without explicit instruction** — this file + contains the entire OKLCH-based design system. When a theme change is needed, the + file is replaced wholesale with a new theme generated from a shadcn theme generator. + Don't tweak individual values without being asked. + +- **NEVER touch `packages/backend/convex/http.ts`** — this file only calls + `auth.addHttpRoutes(http)` and must stay exactly as it is for Convex Auth to work. + +### Always do these: + +- **ALWAYS use `bun typecheck` to validate your work**, never `bun build`. Typecheck + is fast and sufficient. Build is slow and for production deployments only. + +- **ALWAYS use `const` arrow functions over `function` declarations** — this is a + strong style preference throughout the codebase: + + ```typescript + // ✅ Correct + const handleSubmit = async (data: FormData) => { ... }; + const MyComponent = () => { ... }; + + // ❌ Wrong + function handleSubmit(data: FormData) { ... } + function MyComponent() { ... } + ``` + + Note: exported Convex functions (`query`, `mutation`, `action`) are already defined + using the Convex builder pattern and are fine as-is. + +- **ALWAYS import env vars from `@/env`**, never from `process.env` directly. The + ESLint `restrictEnvAccess` rule will error if you use `process.env` anywhere outside + of `apps/next/src/env.ts`. + +- **ALWAYS add `.js` extensions** when importing from Convex-generated files: + + ```typescript + // ✅ Correct + import type { Id } from '@gib/backend/convex/_generated/dataModel.js'; + // ❌ Wrong — will fail at runtime + import { api } from '@gib/backend/convex/_generated/api'; + import { api } from '@gib/backend/convex/_generated/api.js'; + ``` + + The project uses `"type": "module"` in all `package.json` files, which requires + explicit file extensions for ESM imports. The `.js` extension is required even + though the source files are `.ts`. + +--- + +## 3. Monorepo Architecture Overview + +This is a Turborepo monorepo with three top-level categories of packages: ``` convex-monorepo/ ├── apps/ -│ ├── next/ # Next.js 16.0.0 web app (@gib/next) -│ └── expo/ # Expo 54 mobile app (@gib/expo) [IGNORE FOR NOW] +│ ├── next/ # @gib/next — Next.js 16 web application +│ └── expo/ # @gib/expo — Expo 54 mobile app (WIP, broken) ├── packages/ -│ ├── backend/ # Convex backend (@gib/backend) -│ │ ├── convex/ # Convex functions, schema, auth (synced to cloud) -│ │ ├── scripts/ # Build utilities (e.g., key generation) -│ │ └── types/ # Shared type definitions -│ └── ui/ # Shared shadcn/ui components (@gib/ui) +│ ├── backend/ # @gib/backend — Self-hosted Convex backend +│ └── ui/ # @gib/ui — Shared shadcn/ui component library ├── tools/ -│ ├── eslint/ # @gib/eslint-config -│ ├── prettier/ # @gib/prettier-config -│ ├── tailwind/ # @gib/tailwind-config -│ └── typescript/ # @gib/tsconfig -├── docker/ # Self-hosted Convex deployment -└── .env # Central environment variables +│ ├── eslint/ # @gib/eslint-config — ESLint configuration +│ ├── prettier/ # @gib/prettier-config — Prettier + import sorting +│ ├── tailwind/ # @gib/tailwind-config — Tailwind v4 + theme +│ └── typescript/ # @gib/tsconfig — Shared TypeScript configs +├── docker/ # Docker Compose for self-hosted deployment +├── turbo/ # Turborepo generators (scaffolding) +├── turbo.json # Turborepo pipeline configuration +├── package.json # Root workspace + dependency catalogs +└── .env # Central environment variables (gitignored) ``` -**Note:** Only `packages/backend/convex/` is synced to Convex cloud. Other directories (`scripts/`, `types/`) are kept separate to avoid sync issues. +### How the pieces connect + +The dependency graph flows like this: + +``` +@gib/tsconfig + └── @gib/eslint-config + └── @gib/tailwind-config + └── @gib/prettier-config + └── @gib/ui (components + shared styles) + └── @gib/backend (Convex functions + types) + └── @gib/next (consumes everything) +``` + +`tools/` packages are pure configuration — they export ESLint rules, TypeScript +compiler options, Tailwind PostCSS config, and Prettier options. Every app and package +extends them; you should rarely need to modify them. + +`packages/ui` contains every shadcn/ui component plus a few custom additions. +Everything is re-exported from a single `@gib/ui` barrel — no package-specific deep +imports needed. + +`packages/backend` is the Convex backend. Only the `convex/` subdirectory is synced +to the Convex deployment. The `scripts/` and `types/` directories sit outside +`convex/` intentionally so they're not uploaded to Convex cloud. + +### Turborepo pipeline + +`turbo.json` defines the task pipeline. Key points for agents: + +- **`globalEnv`** — all environment variables that affect builds must be listed here, + or Turborepo won't include them in cache keys and cached outputs may be stale. + Whenever you add a new env var, add it to `globalEnv`. +- **`globalDependencies`** — `**/.env.*local` is tracked, so changes to + `.env.local` files invalidate the cache. +- The `build` task runs `^build` (dependencies first), then emits to `dist/`. +- The `dev` task is not cached and not persistent (`persistent: false` means + Turborepo considers it non-blocking). +- `typecheck` and `lint` both depend on `^topo` and `^build`, meaning they wait for + dependency packages to build first. --- -## Dependency Management +## 4. Self-Hosted Stack & Runtime Requirements -### Catalogs (Single Source of Truth) +### Before any development work can start -All shared dependencies are defined in root `package.json` catalogs: +The Convex backend must be running and reachable. `bun dev:next` will fail or behave +unexpectedly if it cannot connect to Convex. In practice, when you are working in this +repo on an active project, the Convex containers are already running on the server and +have been configured. If you are starting fresh from the template, see the README for +the full setup walkthrough. + +The two Convex-related Docker containers are: + +- **`convex-backend`** — the actual Convex runtime (default: `https://api.convexmonorepo.gbrown.org`) +- **`convex-dashboard`** — the admin UI (default: `https://dashboard.convexmonorepo.gbrown.org`) + +### The `packages/backend/.env.local` file + +You may notice a `.env.local` file in `packages/backend/`. This file is +auto-generated by the `convex dev` command and is not something agents need to create +or manage. It contains `CONVEX_URL` and `CONVEX_SITE_URL` values that Convex uses +internally when running `bun dev:backend`. It is gitignored and can be safely ignored. + +### `CONVEX_SITE_URL` — a nuance worth understanding + +`CONVEX_SITE_URL` is used by `packages/backend/convex/auth.config.ts` as the CORS +domain that Convex Auth trusts for token exchange. For **local development**, this +should always be `http://localhost:3000` (the Next.js dev server). For **production**, +this needs to match your public domain — but this value must be updated directly in +the **Convex Dashboard** (environment variables section), not just in the root `.env`. + +The value in `.env` is always `http://localhost:3000` for dev. When you need Convex +Auth to work on your production domain, go to the Convex Dashboard at +`https://dashboard.convexmonorepo.gbrown.org` and update `CONVEX_SITE_URL` there. + +--- + +## 5. Environment Variables — Complete Reference + +### The single source of truth: `/.env` + +All environment variables live in the root `.env` file. Every app and package loads +them via `dotenv-cli` using the `with-env` script pattern: + +```json +"with-env": "dotenv -e ../../.env --" +``` + +The root `.env` is gitignored. The root `.env.example` is the committed template that +shows all required variable names without real values. **Keep `.env.example` up to +date whenever you add a new env var.** + +### Complete variable reference + +| Variable | Used By | Purpose | Sync to Convex? | +| --------------------------------- | -------------- | ------------------------------------------------------------------------ | --------------- | +| `NODE_ENV` | Next.js | `development` / `production` | No | +| `SENTRY_AUTH_TOKEN` | Next.js build | Source map upload to Sentry | No | +| `NEXT_PUBLIC_SITE_URL` | Next.js | Public URL of the Next.js app | No | +| `NEXT_PUBLIC_CONVEX_URL` | Next.js | Convex backend API URL | No | +| `NEXT_PUBLIC_PLAUSIBLE_URL` | Next.js | Self-hosted Plausible instance URL | No | +| `NEXT_PUBLIC_SENTRY_DSN` | Next.js | Sentry DSN for error reporting | No | +| `NEXT_PUBLIC_SENTRY_URL` | Next.js build | Self-hosted Sentry URL | No | +| `NEXT_PUBLIC_SENTRY_ORG` | Next.js build | Sentry organization slug | No | +| `NEXT_PUBLIC_SENTRY_PROJECT_NAME` | Next.js build | Sentry project name | No | +| `CONVEX_SELF_HOSTED_URL` | Convex CLI | URL of the self-hosted Convex backend | No | +| `CONVEX_SELF_HOSTED_ADMIN_KEY` | Convex CLI | Admin key for the self-hosted backend | No | +| `CONVEX_SITE_URL` | Convex Auth | CORS domain for token exchange (localhost:3000 for dev) | Yes (Dashboard) | +| `USESEND_API_KEY` | Convex backend | API key for the self-hosted UseSend instance | Yes | +| `USESEND_URL` | Convex backend | URL of the self-hosted UseSend instance | Yes | +| `USESEND_FROM_EMAIL` | Convex backend | From address for transactional emails (e.g. `App `) | Yes | +| `AUTH_AUTHENTIK_ID` | Convex backend | Authentik OAuth client ID | Yes | +| `AUTH_AUTHENTIK_SECRET` | Convex backend | Authentik OAuth client secret | Yes | +| `AUTH_AUTHENTIK_ISSUER` | Convex backend | Authentik issuer URL | Yes | + +### Typesafe env vars — `apps/next/src/env.ts` + +The Next.js app uses `@t3-oss/env-nextjs` with Zod to validate all environment +variables at build time. This file is the contract between the `.env` file and the +application code. + +The ESLint `restrictEnvAccess` rule in `@gib/eslint-config` blocks direct +`process.env` access everywhere except in `env.ts`. All app code must import the +validated `env` object: + +```typescript +import { env } from '@/env'; + +// ✅ Correct — validated and typed +const url = env.NEXT_PUBLIC_CONVEX_URL; + +// ❌ Will trigger ESLint error +const url = process.env.NEXT_PUBLIC_CONVEX_URL; +``` + +### Adding a new environment variable — the 4-step checklist + +Every time you introduce a new env var, all four of these steps are required: + +**Step 1: Add to `/.env`** + +```bash +MY_NEW_VAR=value +``` + +**Step 2: Add to `apps/next/src/env.ts`** + +```typescript +// In the server{} block for server-only vars: +MY_NEW_VAR: z.string(), + +// In the client{} block for NEXT_PUBLIC_ vars: +NEXT_PUBLIC_MY_VAR: z.url(), + +// And in the runtimeEnv{} block: +MY_NEW_VAR: process.env.MY_NEW_VAR, +``` + +**Step 3: Add to `turbo.json` `globalEnv` array** + +```json +"globalEnv": [ + ..., + "MY_NEW_VAR" +] +``` + +Skipping this means Turborepo won't bust its cache when the variable changes. + +**Step 4 (if the backend needs it): Sync to Convex** + +```bash +# From packages/backend/ +bun with-env npx convex env set MY_NEW_VAR "value" +``` + +Or set it directly in the Convex Dashboard. + +Also update `/.env.example` with the new variable (empty value or a placeholder). + +--- + +## 6. Dependency Management — The Catalog System + +### What catalogs are + +The root `package.json` uses Bun workspaces with a catalog system — a single source +of truth for shared dependency versions. When a package declares `"react": "catalog:react19"`, +it means "use whatever version is defined in the `react19` catalog in the root +`package.json`". This prevents version drift across packages. + +The current catalogs: ```json "catalog": { - "prettier": "^3.6.2", + "@eslint/js": "^9.38.0", + "@tailwindcss/postcss": "^4.1.16", + "@types/node": "^22.19.15", + "eslint": "^9.39.4", + "prettier": "^3.8.1", + "tailwindcss": "^4.1.16", "typescript": "^5.9.3", - "eslint": "^9.38.0", - "zod": "^4.1.12" + "zod": "^4.3.6" }, "catalogs": { - "convex": { "convex": "^1.28.0", "@convex-dev/auth": "^0.0.81" }, - "react19": { "react": "19.1.4", "react-dom": "19.1.4" } + "convex": { + "convex": "^1.33.1", + "@convex-dev/auth": "^0.0.81" + }, + "react19": { + "@types/react": "~19.1.0", + "@types/react-dom": "~19.1.0", + "react": "19.1.4", + "react-dom": "19.1.4" + } } ``` -### Using Catalogs in Packages +Usage in package `package.json` files: ```json "dependencies": { @@ -123,221 +395,150 @@ All shared dependencies are defined in root `package.json` catalogs: } ``` -### Updating Dependencies +The `catalog:` syntax (no name) refers to the default catalog. `catalog:convex` and +`catalog:react19` refer to named catalogs. -**IMPORTANT:** Do NOT use `bun update` directly - it may replace `catalog:` with hard-coded versions. +### The update regression — how to safely update dependencies + +**Do NOT run `bun update` directly inside individual package directories.** This is a +known issue: running `bun update` in a package directory will replace `catalog:` +references with explicit hardcoded version strings, breaking the single-source-of-truth +system. + +The correct dependency update workflow: + +1. Edit the version in the **root `package.json`** catalog section +2. Run `bun install` from the root +3. Verify with `bun lint:ws` (which runs `sherif` to check workspace consistency) + +### sherif runs on `postinstall` + +The root `package.json` has `"postinstall": "sherif"`. This means every time you run +`bun install`, `sherif` runs automatically and will **fail the install** if any +`catalog:` references are broken or if package versions are inconsistent. This is a +feature, not a bug — it catches the regression described above immediately. + +If you see `sherif` errors after running `bun install`, it usually means a +`catalog:` reference was accidentally replaced with a hardcoded version. Fix it by +restoring the `catalog:` syntax in the affected `package.json`. + +### Adding new packages to the monorepo + +Use the Turborepo generator to scaffold a new package: ```bash -# Correct workflow: -1. Edit version in root package.json catalog section -2. Run: bun install -3. Verify with: bun lint:ws (runs sherif) +bun turbo gen init ``` +This will prompt you for: + +1. **Package name** — enter with or without the `@gib/` prefix (it's stripped automatically) +2. **Dependencies** — space-separated list of npm packages to install + +The generator creates: + +- `packages//eslint.config.ts` +- `packages//package.json` (with workspace devDeps and latest versions for any + specified deps) +- `packages//tsconfig.json` +- `packages//src/index.ts` + +After scaffolding it runs `bun install` and formats the new files. + --- -## Code Style Guidelines +## 7. Convex Backend Deep Dive -### Imports (via @gib/prettier-config) - -```typescript -// Order: Types → React → Next/Expo → Third-party → @gib/* → Local -import type { Metadata } from 'next'; -import { useState } from 'react'; -import { useRouter } from 'next/navigation'; -import { useMutation, useQuery } from 'convex/react'; -import { ConvexError } from 'convex/values'; - -import type { Id } from '@gib/backend/convex/_generated/dataModel.js'; -import { api } from '@gib/backend/convex/_generated/api.js'; // Note .js! - -import { cn } from '@gib/ui'; -import { Button } from '@gib/ui/button'; - -import type { User } from './types'; -import { helper } from '../utils'; -``` - -### Convex Imports (.js Extensions) - -**IMPORTANT:** Convex generated files require `.js` extensions due to ESM compatibility: - -```typescript -// ✅ Correct - with .js extension -import type { Id } from '@gib/backend/convex/_generated/dataModel.js'; -// ❌ Wrong - will fail to import -import { api } from '@gib/backend/convex/_generated/api'; -import { api } from '@gib/backend/convex/_generated/api.js'; -``` - -**Why?** The project uses `"type": "module"` in package.json, requiring explicit file extensions for local module imports per ESM specification. - -**Files using this pattern:** - -- `apps/next/src/app/(auth)/profile/page.tsx:12` -- `apps/next/src/components/layout/auth/profile/avatar-upload.tsx:10-11` -- `apps/next/src/components/layout/auth/profile/header.tsx:6` -- `apps/next/src/components/layout/auth/profile/reset-password.tsx:11` -- `apps/next/src/components/layout/auth/profile/user-info.tsx:11` - -### TypeScript - -- Strict mode enabled (`noUncheckedIndexedAccess: true`) -- Use `type` imports: `import type { X } from 'y'` -- Prefix unused vars with `_`: `const _unused = ...` -- Avoid `any` - use `unknown` with type guards - -### Naming Conventions - -- Components: `PascalCase` (`UserProfile.tsx`) -- Functions/variables: `camelCase` -- Constants: `SCREAMING_SNAKE_CASE` -- Files: `kebab-case.ts` (except components) - -### Error Handling - -```typescript -// Convex functions - use ConvexError -import { ConvexError } from 'convex/values'; - -throw new ConvexError('User not found.'); - -// Client-side - handle gracefully -try { - await updateUser({ name }); -} catch (e) { - if (e instanceof ConvexError) { - toast.error(e.message); - } -} -``` - -### Formatting - -- Single quotes, trailing commas -- 80 char line width, 2 space indent -- Tailwind classes sorted via prettier-plugin-tailwindcss -- Use `cn()` for conditional classes: `cn('base', condition && 'active')` - ---- - -## Environment Variables - -### Central .env (root) - -All env vars in `/.env`. Apps load via `with-env` script: - -```json -"scripts": { - "dev": "bun with-env next dev --turbo", - "with-env": "dotenv -e ../../.env --" -} -``` - -### Required Variables - -```bash -# Convex Backend (Self-Hosted) -CONVEX_SELF_HOSTED_URL=https://api.convex.example.com -CONVEX_SELF_HOSTED_ADMIN_KEY= -CONVEX_SITE_URL=https://convex.example.com - -# Next.js Public -NEXT_PUBLIC_CONVEX_URL=https://api.convex.example.com -NEXT_PUBLIC_SITE_URL=https://example.com -NEXT_PUBLIC_PLAUSIBLE_URL=https://plausible.example.com -NEXT_PUBLIC_SENTRY_DSN= -NEXT_PUBLIC_SENTRY_URL= -NEXT_PUBLIC_SENTRY_ORG= -NEXT_PUBLIC_SENTRY_PROJECT_NAME= - -# Server-side -SENTRY_AUTH_TOKEN= - -# Auth (sync to Convex deployment - see below) -AUTH_AUTHENTIK_ID= -AUTH_AUTHENTIK_SECRET= -AUTH_AUTHENTIK_ISSUER= -USESEND_API_KEY= -``` - -### Syncing to Convex Deployment - -Environment variables needed by backend functions must be synced to Convex: - -```bash -# Via CLI (from packages/backend/) -bun with-env npx convex env set AUTH_AUTHENTIK_ID "value" -bun with-env npx convex env set AUTH_AUTHENTIK_SECRET "value" -bun with-env npx convex env set AUTH_AUTHENTIK_ISSUER "value" -bun with-env npx convex env set USESEND_API_KEY "value" -bun with-env npx convex env set CONVEX_SITE_URL "https://convex.example.com" - -# Or via Convex Dashboard at your self-hosted URL -``` - ---- - -## Convex Backend Patterns - -### Package Structure +### Package structure ``` packages/backend/ -├── convex/ # Convex functions (synced to cloud) -│ ├── _generated/ # Auto-generated API/types -│ ├── custom/ # Custom auth providers +├── convex/ # ← Only this directory is synced to Convex +│ ├── _generated/ # Auto-generated — NEVER edit +│ ├── custom/ │ │ └── auth/ +│ │ ├── index.ts # Barrel: Password + validatePassword exports │ │ └── providers/ -│ │ ├── password.ts -│ │ └── usesend.ts -│ ├── auth.config.ts # Auth CORS configuration -│ ├── auth.ts # Auth setup + user queries/mutations -│ ├── crons.ts # Scheduled jobs -│ ├── files.ts # File upload/storage utilities -│ ├── http.ts # HTTP routes for auth -│ ├── schema.ts # Database schema -│ ├── utils.ts # Helper functions -│ └── tsconfig.json # Convex-specific TypeScript config -├── scripts/ # Build scripts (outside convex/) -│ └── generateKeys.mjs # JWT key generation for auth -└── types/ # Shared type exports (outside convex/) - ├── auth.ts # Password validation constants - └── index.ts +│ │ ├── password.ts # Custom Password provider +│ │ └── usesend.ts # UseSend email OTP provider +│ ├── auth.config.ts # CORS domain configuration +│ ├── auth.ts # Auth setup + all user-related functions +│ ├── crons.ts # Cron jobs (commented examples) +│ ├── files.ts # File upload/storage +│ ├── http.ts # HTTP routes (auth only) — DO NOT TOUCH +│ ├── schema.ts # Database schema — the source of truth +│ └── tsconfig.json # Convex-required TS config +├── scripts/ +│ └── generateKeys.mjs # RS256 JWT keypair generator for Convex Auth +└── types/ + ├── auth.ts # Password validation constants + └── index.ts # Barrel export ``` -**Note:** Only `convex/` directory is synced to Convex cloud. Other directories (`scripts/`, `types/`) are kept separate to avoid sync issues with Convex deployment. +**Important:** The backend package has no root `tsconfig.json` — only +`convex/tsconfig.json`. This is intentional and follows Convex's recommended +structure. When `bun typecheck` runs from the repo root, it will print TypeScript help +output for `@gib/backend` (because there's no valid project to check). This is +expected and not an error. -### Schema (`packages/backend/convex/schema.ts`) +### Schema design — always extend `users` directly + +The preferred and enforced approach in this repo is to **extend the `users` table +directly** for all application data. Do not create a separate `profiles` table. + +The Convex Auth library (`@convex-dev/auth`) provides base fields via `authTables` +(name, image, email, emailVerificationTime, phone, phoneVerificationTime, isAnonymous). +Custom fields are added directly to the `users` table definition in `schema.ts`: ```typescript -import { authTables } from '@convex-dev/auth/server'; -import { defineSchema, defineTable } from 'convex/server'; -import { v } from 'convex/values'; - -export default defineSchema({ - ...authTables, +// packages/backend/convex/schema.ts +const applicationTables = { users: defineTable({ name: v.optional(v.string()), - image: v.optional(v.id('_storage')), + image: v.optional(v.string()), // stores Convex storage ID as string email: v.optional(v.string()), emailVerificationTime: v.optional(v.number()), phone: v.optional(v.string()), phoneVerificationTime: v.optional(v.number()), isAnonymous: v.optional(v.boolean()), + /* Custom fields below */ + themePreference: v.optional( + v.union(v.literal('light'), v.literal('dark'), v.literal('system')), + ), }) .index('email', ['email']) - .index('name', ['name']) - .index('phone', ['phone']), + .index('phone', ['phone']) + .index('name', ['name']), +}; - profiles: defineTable({ - userId: v.id('users'), - theme_preference: v.optional(v.string()), - }).index('userId', ['userId']), +export default defineSchema({ + ...authTables, + ...applicationTables, }); ``` -### Queries & Mutations +The `themePreference` field demonstrates the pattern. When your app needs to store +user-specific data (preferences, profile info, settings), add a field here. + +**Note on `image`:** The `image` field is typed as `v.string()` because `authTables` +defines it that way. In practice it stores a Convex storage ID (which is a string at +runtime). The `updateUser` mutation accepts `v.id('_storage')` and casts it when +writing. This is a known, harmless type mismatch — leave it as `v.string()` in the +schema for now. + +### Writing backend functions + +The three Convex function types: + +- **`query`** — read-only, reactive, called from client with `useQuery` or server with + `preloadQuery`. Always check auth if the data should be protected. +- **`mutation`** — write operations (database inserts, patches, deletes). Runs + transactionally. Cannot make external HTTP calls. +- **`action`** — for side effects: calling external APIs, Convex storage operations, + or certain `@convex-dev/auth` operations. Can call `ctx.runQuery` and + `ctx.runMutation` internally. + +Always authenticate inside protected functions: ```typescript import { getAuthUserId } from '@convex-dev/auth/server'; @@ -345,300 +546,890 @@ import { ConvexError, v } from 'convex/values'; import { mutation, query } from './_generated/server'; -export const getUser = query({ - args: { userId: v.optional(v.id('users')) }, - handler: async (ctx, args) => { - const userId = args.userId ?? (await getAuthUserId(ctx)); - if (!userId) throw new ConvexError('Not authenticated.'); - - const user = await ctx.db.get(userId); - if (!user) throw new ConvexError('User not found.'); - - return user; +export const getMyData = query({ + args: {}, + handler: async (ctx) => { + const userId = await getAuthUserId(ctx); + if (!userId) return null; // or throw if auth is truly required + return ctx.db.get(userId); }, }); -export const updateUser = mutation({ - args: { - name: v.optional(v.string()), - email: v.optional(v.string()), - image: v.optional(v.id('_storage')), - }, +export const updateMyData = mutation({ + args: { value: v.string() }, handler: async (ctx, args) => { const userId = await getAuthUserId(ctx); if (!userId) throw new ConvexError('Not authenticated.'); - - await ctx.db.patch(userId, args); + await ctx.db.patch(userId, { someField: args.value }); }, }); ``` -### Auth Setup +### Why `updateUserPassword` is an `action`, not a `mutation` + +`@convex-dev/auth`'s `modifyAccountCredentials` function makes internal HTTP calls +under the hood. Convex mutations cannot make external/internal HTTP calls — only +actions can. That's why any password change operation must be an `action`: ```typescript -import { Authentik } from '@convex-dev/auth/providers/authentik'; -import { convexAuth } from '@convex-dev/auth/server'; +export const updateUserPassword = action({ + args: { currentPassword: v.string(), newPassword: v.string() }, + handler: async (ctx, { currentPassword, newPassword }) => { + const userId = await getAuthUserId(ctx); + if (!userId) throw new ConvexError('Not authenticated.'); + // retrieveAccount and modifyAccountCredentials both require action context + const verified = await retrieveAccount(ctx, { + provider: 'password', + account: { id: user.email, secret: currentPassword }, + }); + if (!verified) throw new ConvexError('Current password is incorrect.'); + await modifyAccountCredentials(ctx, { + provider: 'password', + account: { id: user.email, secret: newPassword }, + }); + }, +}); +``` -import { Password } from './custom/auth/providers/password'; +Similarly, any auth function that needs to call into Convex Auth internals +(`retrieveAccount`, `modifyAccountCredentials`, `createAccount`, etc.) must be an +action. +### Authentication setup + +```typescript +// convex/auth.ts export const { auth, signIn, signOut, store, isAuthenticated } = convexAuth({ providers: [Authentik({ allowDangerousEmailAccountLinking: true }), Password], }); ``` -**Providers:** +Two providers are configured: -1. **Authentik** - OAuth SSO provider -2. **Password** - Custom password auth with email OTP verification via UseSend +1. **Authentik** — OAuth SSO. The `allowDangerousEmailAccountLinking: true` flag + allows users who previously registered with the Password provider to link their + Authentik account if it shares the same email address. + +2. **Password** — custom provider in `convex/custom/auth/providers/password.ts`. + Uses `UseSendOTP` for email verification during sign-up and `UseSendOTPPasswordReset` + for password reset flows. + +### The UseSend email provider + +`convex/custom/auth/providers/usesend.ts` is the custom email OTP provider. It reads +configuration from environment variables: + +- `USESEND_API_KEY` — the API key for your UseSend instance +- `USESEND_URL` — the base URL of your self-hosted UseSend instance +- `USESEND_FROM_EMAIL` — the from address for emails (e.g. `My App `) + +The provider creates two exports used in `password.ts`: + +- `UseSendOTP` — 20-minute OTP for sign-up email verification +- `UseSendOTPPasswordReset` — 1-hour OTP for password reset + +Email templates are currently inline HTML strings in `usesend.ts`. The +`@react-email/components` and `react-email` packages are in `package.json` as planned +dependencies — React Email templates will eventually replace the inline HTML. + +### File uploads + +`convex/files.ts` provides two functions: + +```typescript +// Get a signed upload URL (call this first) +const uploadUrl = await generateUploadUrl(); + +// POST your file to the URL, get back a storage ID +// Then store the ID: +await updateUser({ image: storageId }); + +// Get a temporary signed URL to display the image: +const imageUrl = await getImageUrl({ storageId }); +``` + +The profile avatar upload in `apps/next/src/components/layout/auth/profile/avatar-upload.tsx` +demonstrates the complete flow: crop the image client-side → get an upload URL → +POST to Convex storage → save the storage ID to the user record. + +### Cron jobs + +`convex/crons.ts` is the place for scheduled jobs. The file currently contains +commented-out examples. When you need to add a cron job, add it to this file following +the pattern in the comments. + +### Generating JWT keys for Convex Auth + +When setting up a new deployment, you need to generate RS256 JWT keys for Convex Auth +to work: + +```bash +# From packages/backend/ +bun run scripts/generateKeys.mjs +``` + +This outputs `JWT_PRIVATE_KEY` and `JWKS` values that must be synced to Convex: + +```bash +bun with-env npx convex env set JWT_PRIVATE_KEY "..." +bun with-env npx convex env set JWKS "..." +``` --- -## Next.js Patterns +## 8. Next.js App Deep Dive -### Convex Provider Setup (Dual-Layer) +### Files you should not casually modify -**Root Layout** (`app/layout.tsx`): +| File | Why | +| ------------------------------- | ---------------------------------------------------------- | +| `next.config.js` | Sentry, Plausible, standalone build — carefully configured | +| `src/proxy.ts` | Auth routing + IP banning — the project's middleware | +| `src/env.ts` | The env contract — add to it, don't restructure it | +| `src/instrumentation.ts` | Sentry server setup — don't touch | +| `src/instrumentation-client.ts` | Sentry client setup — don't touch | +| `src/sentry.server.config.ts` | Sentry server config — don't touch | +| `src/app/styles.css` | Tailwind setup + theme import — don't touch | -```tsx -import { ConvexAuthNextjsServerProvider } from '@convex-dev/auth/nextjs/server'; +### Route structure -export default function RootLayout({ children }) { - return ( - - - - {children} - - - - ); -} +The app uses the Next.js App Router. All authenticated routes live in the `(auth)` +route group (which doesn't create a URL segment — it's just for organization): + +| Route | File | Rendering | Purpose | +| ------------------ | ------------------------------------- | ---------------- | ---------------------------------------------- | +| `/` | `app/page.tsx` | Server Component | Landing page (hero, features, tech stack, CTA) | +| `/sign-in` | `app/(auth)/sign-in/page.tsx` | Client Component | Sign in, sign up, email OTP — all in one | +| `/profile` | `app/(auth)/profile/page.tsx` | Server Component | User profile management | +| `/forgot-password` | `app/(auth)/forgot-password/page.tsx` | Client Component | Password reset flow | + +The `/profile` route is protected — `src/proxy.ts` redirects unauthenticated users to +`/sign-in`. The `/sign-in` route redirects already-authenticated users to `/`. + +To protect a new route, add its pattern to `isProtectedRoute` in `src/proxy.ts`: + +```typescript +const isProtectedRoute = createRouteMatcher([ + '/profile', + '/dashboard', + '/settings', +]); ``` -**Client Provider** (`components/providers/ConvexClientProvider.tsx`): +### The dual Convex provider setup + +Two providers are required and both must be present: + +**1. `ConvexAuthNextjsServerProvider`** — wraps the root `` element in +`app/layout.tsx`. This is the server-side half that handles cookie reading and +initial token passing. It has no visible UI. + +**2. `ConvexClientProvider`** — a `'use client'` component in +`components/providers/ConvexClientProvider.tsx`. This wraps `ConvexAuthNextjsProvider` +and initializes the `ConvexReactClient`. All client-side reactive queries and +mutations flow through this. ```tsx -'use client'; - -import { ConvexAuthNextjsProvider } from '@convex-dev/auth/nextjs'; -import { ConvexReactClient } from 'convex/react'; - -const convex = new ConvexReactClient(process.env.NEXT_PUBLIC_CONVEX_URL!); - -export function ConvexClientProvider({ children }) { - return ( - - {children} - - ); -} +// app/layout.tsx (server) + + + + {children} + + + ``` -### Server Component Data Preloading +Removing either provider breaks auth. The server provider is needed for SSR token +hydration; the client provider is needed for reactive updates. + +### SSR data preloading — the preferred pattern for new pages + +For any page that needs Convex data, use `preloadQuery` on the server and +`usePreloadedQuery` on the client. This avoids a loading flash and gives you +SSR-rendered content. + +**Server component (the page file):** ```tsx -'use server'; - -import { ProfileComponent } from '@/components/profile'; +// app/(auth)/some-page/page.tsx +import { SomeComponent } from '@/components/some-component'; import { preloadQuery } from 'convex/nextjs'; import { api } from '@gib/backend/convex/_generated/api.js'; -const ProfilePage = async () => { - const preloadedUser = await preloadQuery(api.auth.getUser); +const SomePage = async () => { + const preloadedData = await preloadQuery(api.someModule.someQuery); - return ; + return ; }; -export default ProfilePage; +export default SomePage; ``` -### Client Component Hydration +**Client component (the interactive part):** ```tsx +// components/some-component.tsx 'use client'; import type { Preloaded } from 'convex/react'; -import { useMutation, usePreloadedQuery } from 'convex/react'; +import { usePreloadedQuery } from 'convex/react'; import type { api } from '@gib/backend/convex/_generated/api.js'; interface Props { - preloadedUser: Preloaded; + preloadedData: Preloaded; } -export function ProfileComponent({ preloadedUser }: Props) { - const user = usePreloadedQuery(preloadedUser); - const updateUser = useMutation(api.auth.updateUser); - - // ... interactive logic -} +export const SomeComponent = ({ preloadedData }: Props) => { + const data = usePreloadedQuery(preloadedData); + // data is immediately available with SSR value, then stays reactive + return
{data.name}
; +}; ``` -### Path Aliases +This is the pattern used on the `/profile` page and should be used for all new +data-fetching pages. -- `@/*` → `./src/*` (Next.js) -- `~/*` → `./src/*` (Expo) +### Auth-conditional UI — always use a loading skeleton -### Middleware (Auth Protection) +Any component that renders differently based on whether the user is authenticated +**must** show a loading skeleton while auth resolves. Never render a "signed in" state +optimistically or flash from "not logged in" to "logged in". -```typescript -import { - convexAuthNextjsMiddleware, - isAuthenticatedNextjs, -} from '@convex-dev/auth/nextjs/server'; - -export default convexAuthNextjsMiddleware(async (request, { convexAuth }) => { - // Redirect authenticated users away from sign-in - if (isSignInPage(request) && (await convexAuth.isAuthenticated())) { - return nextjsMiddlewareRedirect(request, '/'); - } - - // Protect routes - if (isProtectedRoute(request) && !(await convexAuth.isAuthenticated())) { - return nextjsMiddlewareRedirect(request, '/sign-in'); - } -}); -``` - ---- - -## Expo Patterns [IGNORE FOR NOW] - -### NativeWind (Tailwind for RN) +The `AvatarDropdown` component in +`src/components/layout/header/controls/AvatarDropdown.tsx` is the canonical example: ```tsx -import '../styles.css'; +'use client'; -// Use className like web: +import { useAuthActions } from '@convex-dev/auth/react'; +import { useConvexAuth } from 'convex/react'; + +export const AvatarDropdown = () => { + const { isLoading, isAuthenticated } = useConvexAuth(); + + if (isLoading) { + // Always show a skeleton while auth state is resolving + return ; + } + + if (!isAuthenticated) { + return ; + } + + return ; +}; ``` -### Secure Storage for Auth +### `src/proxy.ts` — route protection and IP banning -```typescript -import * as SecureStore from 'expo-secure-store'; +This file is the Next.js proxy/middleware. It does two things in sequence: -// Tokens stored via SecureStore, not AsyncStorage -``` +1. **IP banning** — `banSuspiciousIPs(request)` runs first. It checks the incoming + request against known malicious patterns (path traversal, PHP probes, etc.) and + rate-limits suspicious IPs. If a ban is triggered, a 403 is returned immediately + before auth runs. + +2. **Auth routing** — `convexAuthNextjsMiddleware` handles authentication: + - Unauthenticated users hitting `/profile` are redirected to `/sign-in` + - Authenticated users hitting `/sign-in` are redirected to `/` + +Session cookies are configured with a 30-day max age. + +### The IP banning system (`src/lib/proxy/ban-sus-ips.ts`) + +This is an in-memory security layer. Key behaviors: + +- Tracks request counts per IP using an in-memory Map +- 10 requests matching malicious patterns within 1 minute → 30-minute ban +- 10 404 responses within 2 minutes → ban +- Detects and bans suspicious HTTP methods (TRACE, PUT, DELETE, PATCH) +- The ban response message is deliberately direct — consider softening it for + professional/client-facing deployments +- **Bans reset on server restart** (in-memory). This is a known limitation; a future + enhancement would persist bans to Convex or Redis. + +Agents can extend the suspicious patterns by adding to the arrays at the top of the +file if new attack vectors are observed. + +IP detection order: `x-forwarded-for` → `x-real-ip` → `cf-connecting-ip` → host. +This handles the nginx-proxy-manager reverse proxy setup correctly. + +### `next.config.js` — key behaviors + +- **`output: 'standalone'`** — generates a self-contained build for Docker deployment +- **`typescript.ignoreBuildErrors: true`** — suppresses TypeScript errors during build + (shadcn components can produce spurious errors) +- **`serverExternalPackages: ['require-in-the-middle']`** — Sentry compatibility +- **`transpilePackages: ['@gib/backend', '@gib/ui']`** — workspace packages need + transpilation since Next.js doesn't transpile `node_modules` by default +- **`images.remotePatterns`** — currently only allows `*.gbrown.org`. If you're + deploying for a different domain, update this or profile pictures won't load. +- **`serverActions.bodySizeLimit: '10mb'`** — allows large file uploads for avatar +- The config is wrapped with `withPlausibleProxy` then `withSentryConfig` + +### Fonts + +Fonts are configured in `apps/next/src/app/layout.tsx` using `next/font`. The current +typeface system: + +- **Kanit** — display font used in the header logo and CTA (loaded via `next/font/google`) +- **Poppins** — primary sans-serif body font +- **Libre Baskerville** — serif font (available for editorial use) +- **Victor Mono** — monospace font (available for code blocks) + +The fonts are injected as CSS variables and mapped in `tools/tailwind/theme.css`. +To change fonts, update the `next/font` imports in `layout.tsx` and update the +corresponding CSS variable assignments in `theme.css`. + +### Analytics and monitoring + +**Plausible** is injected via `next-plausible` and proxied through the Next.js app +itself via `withPlausibleProxy` in `next.config.js`. This means analytics requests go +to `/` (the Next.js server) first, which then forwards them to the Plausible instance. +Ad blockers that block `plausible.io` directly cannot block this setup. + +**Sentry** is configured with `tracesSampleRate: 1.0` (100% trace sampling) on both +client and server. This is appropriate for development and low-traffic deployments. For +high-traffic production sites, reduce this to `0.1`–`0.2` in +`instrumentation-client.ts` and `sentry.server.config.ts`. --- -## Self-Hosted Deployment +## 9. UI Package (`@gib/ui`) -This repo includes Docker configuration for self-hosted Convex deployment in `docker/`. +### The single-import rule -**Services:** +**Everything** from the UI package is importable from the single `@gib/ui` entry +point. Never import from specific component file paths: -- `convex-backend` - Self-hosted Convex instance (port 3210) -- `convex-dashboard` - Admin dashboard (port 6791) -- `next-app` - Next.js application (standalone build) +```typescript +// ✅ Correct — single import from @gib/ui +import { Button, Card, CardContent, cn, useIsMobile } from '@gib/ui'; +// ❌ Wrong — never import from subpaths like this +import { Button } from '@gib/ui/src/button'; +``` -**Quick Start:** +This includes utility functions (`cn`, `ccn`), all components, and all hooks. + +### Available components + +The UI package contains the complete shadcn/ui component set (new-york style) plus +custom additions. Key custom components: + +- **`BasedAvatar`** — shows user initials or a user icon when no image is set; use + this instead of the base `Avatar` for user avatars +- **`BasedProgress`** — progress bar variant +- **`ImageCrop`** — image cropping UI built on `react-image-crop`; used in the profile + avatar upload flow +- **`SubmitButton`** — button with built-in loading state for form submissions +- **`StatusMessage`** — standardized success/error message display +- **`Spinner`** — loading spinner + +Full component list: Accordion, Alert, AlertDialog, AspectRatio, Avatar, Badge, +BasedAvatar, BasedProgress, Breadcrumb, Button, ButtonGroup, Calendar, Card, Carousel, +Chart, Checkbox, Collapsible, Combobox, Command, ContextMenu, Dialog, Drawer, +DropdownMenu, Empty, Field, Form, HoverCard, ImageCrop, Input, InputGroup, InputOTP, +Item, Kbd, Label, NavigationMenu, NativeSelect, Pagination, Popover, Progress, +RadioGroup, Resizable, ScrollArea, Select, Separator, Sheet, Sidebar, Skeleton, Slider, +Sonner (Toaster), Spinner, StatusMessage, SubmitButton, Switch, Table, Tabs, Textarea, +ThemeProvider, ThemeToggle, Toggle, ToggleGroup, Tooltip. + +### Available hooks (also from `@gib/ui`) + +- `useIsMobile` — returns `true` when viewport width is below 768px +- `useOnClickOutside` — fires a callback when a click occurs outside a ref element + +### Adding a new component via `bun ui-add` + +```bash +# From the repo root +bun ui-add +``` + +This runs `bunx shadcn@latest add` interactively. After adding a new component: + +1. Any internal imports the component makes (to other shadcn components, `cn`, hooks) + **must be updated** to come from `@gib/ui` instead of relative paths +2. Export the new component(s) from `packages/ui/src/index.tsx` + +If you add a new hook, add it to `packages/ui/src/hooks/` and export it from both +`packages/ui/src/hooks/index.tsx` and the main `packages/ui/src/index.tsx`. + +### `components.json` note + +The shadcn `components.json` file specifies `style: "new-york"` and `baseColor: "zinc"`. +The `zinc` base color is irrelevant — the actual visual theme is entirely determined by +`tools/tailwind/theme.css` which overrides all color tokens with OKLCH values. The +`zinc` setting only affects how `bunx shadcn` generates new component defaults; the +runtime appearance is controlled by the theme. + +--- + +## 10. Tools — Shared Configuration Packages + +### `@gib/eslint-config` + +Three exported configs used across the monorepo: + +- **`baseConfig`** — TypeScript-aware ESLint with `recommended`, `recommendedTypeChecked`, + and `stylisticTypeChecked` rules. Used by all packages. +- **`reactConfig`** — adds `eslint-plugin-react` and `react-hooks` rules. +- **`nextjsConfig`** — adds `@next/eslint-plugin-next` rules including core-web-vitals. +- **`restrictEnvAccess`** — blocks direct `process.env` access outside `env.ts`. + +Key enforced rules: + +- `@typescript-eslint/consistent-type-imports` — type imports must be separate (`import type`) +- `@typescript-eslint/no-non-null-assertion` — non-null assertions (`!`) are errors +- `@typescript-eslint/no-unused-vars` — unused vars are warnings; prefix with `_` to suppress +- `import/consistent-type-specifier-style` — prefer top-level `import type` over inline `type` + +Note: the `consistent-type-imports` enforcement is a known item to potentially relax +in the future (see Known Issues). + +### `@gib/prettier-config` + +Key settings: + +- `singleQuote: true`, `jsxSingleQuote: true` — single quotes throughout +- `trailingComma: 'all'` — trailing commas on all multi-line structures +- `printWidth: 80`, `tabWidth: 2` +- `tailwindFunctions: ['cn', 'cva']` — Tailwind class sorting in these functions + +Import order (enforced automatically by `@ianvs/prettier-plugin-sort-imports`): + +``` +1. Type imports (all) +2. react / react-native +3. next / expo +4. Third-party packages +5. @gib/* type imports, then @gib/* value imports +6. Local type imports, then local relative imports +``` + +You do not need to manually order imports — Prettier handles it on format. Run +`bun format:fix` to apply. + +### `@gib/tailwind-config` + +- **`theme.css`** — the complete OKLCH-based design system. Light mode: warm cream + background with reddish-brown primary. Dark mode: warm dark background with + orange-warm primary. Do not modify without explicit instruction. When the theme + needs to change, the entire file is replaced with a new theme generated from a + shadcn theme generator. +- **`postcss-config.js`** — re-exports `{ plugins: { '@tailwindcss/postcss': {} } }`. + Used by all apps via `postcss.config.js`. + +### `@gib/tsconfig` + +- **`base.json`** — strict TypeScript config for all packages. Notable settings: + `noUncheckedIndexedAccess: true` (array/object access returns `T | undefined`), + `moduleResolution: "Bundler"`, `module: "Preserve"`, `isolatedModules: true`. + Uses `tsBuildInfoFile` for incremental caching in `.cache/`. +- **`compiled-package.json`** — extends base with declaration emit settings for + packages that need to output `.d.ts` files. + +--- + +## 11. Docker & Deployment + +### Container overview + +Three Docker services are defined in `docker/compose.yml`: + +**`convex-backend`** (`ghcr.io/get-convex/convex-backend`) + +- The self-hosted Convex runtime +- Data persists in `docker/data/` (gitignored, must be backed up) +- Health check via `curl http://localhost:3210/version` +- Watchtower-enabled for automatic image updates +- `stop_signal: SIGINT` + 10s grace period for clean shutdown + +**`convex-dashboard`** (`ghcr.io/get-convex/convex-dashboard`) + +- Admin UI for the Convex backend +- Starts only after `convex-backend` is healthy + +**`next-app`** (built from `docker/Dockerfile`) + +- Multi-stage build: `oven/bun:alpine` builder → `node:20-alpine` runner +- Standalone Next.js output (`CMD ["node", "apps/next/server.js"]`) +- Reverse-proxied by nginx — ports are not directly exposed + +All services share the external `nginx-bridge` Docker network. + +### Typical production deployment workflow + +The Convex backend and dashboard are long-running and rarely need to be rebuilt. +The typical workflow when you've made changes to the Next.js app: + +```bash +# On the production server (via SSH) +cd docker/ + +# Build the Next.js app with current source +sudo docker compose build next-app + +# Once build succeeds, bring up the new container +sudo docker compose up -d next-app +``` + +If you need to start everything from scratch: + +```bash +sudo docker compose up -d convex-backend convex-dashboard +# Wait for backend to be healthy, then: +sudo docker compose up -d next-app +``` + +### The `.dockerignore` situation (known issue) + +There are two `.dockerignore` files: + +- `/.dockerignore` (root) — has `.env` commented out, meaning the `.env` file IS + included in the Docker build context +- `/docker/.dockerignore` — explicitly excludes `.env` + +The Docker build context is set to the repo root in `compose.yml`. The root +`.dockerignore` is the one that applies. Because `.env` is not excluded, it gets sent +to the builder and environment variables are available at build time. This is how +`SENTRY_AUTH_TOKEN` and other build-time vars reach the Next.js build step. + +This is a known imperfect approach but it works. Do not "fix" it without understanding +the full implications — removing `.env` from the build context would break Sentry +source map uploads and `NEXT_PUBLIC_*` variable baking into the client bundle. + +### Convex data persistence + +`docker/data/` is mounted as a Docker volume and contains all Convex database data. +This directory is gitignored. Back it up before any server migrations, restarts, or +image updates. + +### `generate_convex_admin_key` + +A bash script in `docker/` that generates the admin key from a running Convex backend: ```bash cd docker/ -./generate_convex_admin_key # Generate CONVEX_SELF_HOSTED_ADMIN_KEY -# Edit .env with your values -docker compose up -d +./generate_convex_admin_key ``` -**Network:** Uses external `nginx-bridge` network by default. Change in `compose.yml` if needed. - -See `docker/compose.yml` and `docker/.env.example` for full configuration details. +This runs the key generation script inside the `convex-backend` container and prints +the `CONVEX_SELF_HOSTED_ADMIN_KEY` value to stdout. --- -## Known Issues / Cleanup Needed +## 12. Code Style Reference -### Next.js App (apps/next/) +### Functions — always `const` arrow syntax -1. ✅ **No @acme references** - Successfully migrated to @gib namespace +```typescript +// ✅ Correct — use const for all functions +const fetchUser = async (userId: string) => { + return await db.get(userId); +}; -2. ⚠️ **TRPC in middleware matcher** (`src/middleware.ts:32`) +const MyComponent = ({ name }: { name: string }) => { + return
{name}
; +}; + +// ❌ Wrong — function declarations +function fetchUser(userId: string) { ... } +function MyComponent({ name }: { name: string }) { ... } +``` + +### Naming conventions + +| Thing | Convention | Example | +| --------------------------- | ---------------------- | ------------------- | +| React components | `PascalCase` | `UserProfile.tsx` | +| Non-component files | `kebab-case.ts` | `ban-sus-ips.ts` | +| Functions and variables | `camelCase` | `const getUserById` | +| Constants | `SCREAMING_SNAKE_CASE` | `PASSWORD_MIN` | +| TypeScript types/interfaces | `PascalCase` | `type UserDoc` | +| Unused vars/params | prefix with `_` | `const _unused` | + +### Imports + +- Use `import type` for type-only imports (enforced by ESLint) +- Import order is handled automatically by Prettier on format — don't manually sort +- Always use `.js` extension for Convex-generated file imports +- All UI components and utilities come from `@gib/ui` +- All env vars come from `@/env` + +### Error handling + +```typescript +// Backend — throw ConvexError with a user-readable message +import { ConvexError } from 'convex/values'; + +throw new ConvexError('User not found.'); + +// Frontend — catch ConvexError and display with toast +try { + await someConvexMutation(args); +} catch (e) { + if (e instanceof ConvexError) { + toast.error(e.message); + } +} +``` + +### TypeScript + +- Strict mode is on everywhere (`strict: true`, `noUncheckedIndexedAccess: true`) +- Array/object index access returns `T | undefined` — always handle the undefined case +- Avoid `any` — use `unknown` with type guards or proper generics +- Non-null assertions (`!`) are ESLint errors — prove your types instead + +### Template customization points + +When using this repo as a template for a **new project** (not working on the existing +deployment), these things should be updated: + +- `apps/next/src/lib/metadata.ts` — update the title template and metadata +- `apps/next/next.config.js` — update `images.remotePatterns` for your domain +- `apps/next/src/app/layout.tsx` — update the root ``, site title, etc. +- Root `package.json` — update the workspace `name` field to fit the new project +- `/.env` — fill out all values for the new deployment +- `docker/.env` — fill out container names and domain URLs + +--- + +## 13. Adding New Features — Checklists + +### Adding a new field to the users table + +1. Add the field to `users` in `packages/backend/convex/schema.ts` +2. Add or update the relevant `mutation` in `packages/backend/convex/auth.ts` +3. Run `bun dev:backend` to let `convex dev` regenerate `_generated/` types +4. Add the corresponding UI in the profile page or wherever the field is managed +5. Update `packages/backend/types/auth.ts` if the field has shared validation constants + +### Adding a new Convex function + +1. Write the function in the appropriate `.ts` file in `packages/backend/convex/` +2. Run `bun dev:backend` — `convex dev --until-success` will push it and regenerate + `_generated/api.ts` with the new export +3. Import using `api.moduleName.functionName` with the `.js` extension: ```typescript - // Can safely remove 'trpc' from this line (unused pattern): - matcher: ['/(api|trpc)(.*)']; + import { api } from '@gib/backend/convex/_generated/api.js'; ``` -### Expo App (apps/expo/) - IGNORE FOR NOW +### Adding a new page -3. ⚠️ **@acme TRPC references** (`src/utils/api.tsx:1`, line 49) - - Imports `AppRouter` from `@acme/api` - - Exports `RouterInputs`, `RouterOutputs` from `@acme/api` +1. Create `apps/next/src/app//page.tsx` +2. If the page needs data: use the `preloadQuery` + `usePreloadedQuery` SSR pattern +3. If the page should be protected: add its path to `isProtectedRoute` in `src/proxy.ts` +4. Add a layout file if you need a custom ``: + ```typescript + export const metadata = { title: 'Page Name' }; + ``` +5. Run `bun typecheck` to validate -4. ⚠️ **@acme tailwind config** (`postcss.config.js:1`) - - Requires `@acme/tailwind-config/postcss-config` - - Should be `@gib/tailwind-config/postcss-config` +### Adding a new environment variable -5. ⚠️ **Uses better-auth** - Should migrate to `@convex-dev/auth` (future work) +See the 4-step checklist in [Section 5](#5-environment-variables--complete-reference). -### Backend Package (packages/backend/) +### Adding a new UI component via shadcn -6. ℹ️ **No root tsconfig.json** - This is intentional, not a bug - - Only `convex/tsconfig.json` exists (Convex requirement) - - Running `bun typecheck` shows TypeScript help message (expected) - - `scripts/` and `types/` folders outside `convex/` to avoid sync issues with Convex cloud - -7. ⚠️ **Hardcoded branding** (`convex/custom/auth/providers/usesend.ts:26`) - - Email templates reference "TechTracker" and "Study Buddy" - - Should be parameterized or use generic branding - -8. ⚠️ **Password validation mismatch** (`convex/custom/auth/providers/password.ts`) - - `types/auth.ts` `PASSWORD_REGEX` requires special characters - - `validatePassword()` function doesn't enforce special characters - - Either update regex or update validation function - -9. ⚠️ **getAllUsers lacks auth** (`convex/auth.ts`) - - Public query accessible to anyone - - Should require authentication or be internal-only - -### UI Package (packages/ui/) - -10. ⚠️ **Uses pnpm dlx** (`package.json:40`) - ```json - "ui-add": "pnpm dlx shadcn@latest add && prettier src --write --list-different" - ``` - - - Should use `bunx shadcn@latest add` instead - - Keep prettier command as-is +1. Run `bun ui-add` from the repo root +2. Select the component(s) to add +3. Update any internal imports in the new files to use `@gib/ui` instead of relative paths +4. Add exports to `packages/ui/src/index.tsx` +5. Run `bun typecheck` to validate --- -## Adding UI Components +## 14. Expo App — Known Issues, Do Not Touch + +The `apps/expo/` directory exists as a placeholder for future mobile development. +It is currently non-functional — it still contains the original T3 Turbo template +code and has not been migrated to use Convex or `@convex-dev/auth`. + +**Do not work on the Expo app unless explicitly asked.** If you are asked to work on it, +be aware that the following are all broken and will need to be addressed: + +| File | Issue | +| ----------------------- | ------------------------------------------------------------------------------------------------------------------ | +| `src/utils/api.tsx` | Imports `AppRouter` from `@acme/api` — package does not exist. Uses tRPC, which is not used anywhere in this repo. | +| `src/utils/auth.ts` | Uses `better-auth` / `@better-auth/expo` instead of `@convex-dev/auth` | +| `src/app/index.tsx` | Old T3 Turbo template code using tRPC mutations and better-auth session patterns | +| `src/app/post/[id].tsx` | Same — tRPC and better-auth patterns throughout | +| `postcss.config.js` | References `@acme/tailwind-config` — package does not exist | +| `src/styles.css` | Imports from `@acme/tailwind-config` — package does not exist | +| `eslint.config.mts` | Imports from `@acme/eslint-config` — package does not exist | +| `eas.json` | Specifies `pnpm 9.15.4` as the package manager — should be bun | + +When the time comes to properly implement the Expo app, the right approach is to start +fresh with Convex + `@convex-dev/auth` patterns (mirroring how the Next.js app works), +not to try to incrementally fix the broken T3 Turbo code. + +--- + +## 15. Known Issues & Technical Debt + +A comprehensive list of known issues, organized by priority. Add new issues here as +they're discovered. + +--- + +**1. Catalog update regression** ⚠️ High priority + +Running `bun update` inside individual package directories replaces `catalog:` +references with hard-coded version strings, breaking the single-source-of-truth system. +The correct update workflow (edit root `package.json` catalog → `bun install` → +`bun lint:ws`) needs to be better enforced/documented. Investigate whether Bun has a +native fix for this or if a custom update script is needed. + +--- + +**2. Password validation mismatch** ⚠️ Medium priority + +`packages/backend/types/auth.ts` exports `PASSWORD_REGEX` which requires special +characters. `packages/backend/convex/custom/auth/providers/password.ts::validatePassword()` +does NOT check for special characters. These two are inconsistent. The frontend sign-in +form does enforce special characters via its own Zod schema, but the backend validation +is weaker than the type definition implies. Either align `validatePassword()` to match +`PASSWORD_REGEX`, or update `PASSWORD_REGEX` to not require special characters. + +--- + +**3. `import type` enforcement removed** ✅ Fixed + +The `@typescript-eslint/consistent-type-imports` and `import/consistent-type-specifier-style` +rules that forced separate `import type` statements have been removed from +`tools/eslint/base.ts`. Type imports can now be mixed inline or on separate lines — +whatever reads most naturally in context. + +--- + +**4. `const` arrow function lint rule added** ✅ Fixed + +`eslint-plugin-prefer-arrow-functions` has been added to `tools/eslint/base.ts` and the +`prefer-arrow-functions/prefer-arrow-functions` rule is now enforced as a warning. All +function declarations across the codebase have been auto-converted to `const` arrow +function syntax. + +--- + +**5. Turbo generator uses pnpm** ✅ Fixed in this session + +`turbo/generators/config.ts` previously called `pnpm i` and `pnpm prettier`. This has +been fixed to use `bun install` and `bun prettier`. + +--- + +**6. Root `.dockerignore` includes `.env` in build context** ℹ️ Known, works intentionally + +The root `.dockerignore` has `.env` commented out, meaning the `.env` file is sent to +the Docker build context. This is how build-time env vars (Sentry token, `NEXT_PUBLIC_*`) +reach the Next.js build step. It's a known imperfect approach but fully functional. +A proper solution would use Docker build args (`ARG`) or multi-stage secrets, but this +requires careful restructuring to avoid breaking Sentry source map uploads. + +--- + +**7. In-memory IP banning resets on restart** ℹ️ Future enhancement + +`src/lib/proxy/ban-sus-ips.ts` stores bans in a JavaScript `Map`. Bans reset whenever +the Next.js server restarts (container restart, redeploy, etc.). A more robust solution +would persist bans to Convex (using a `bans` table with TTL-based cleanup via a cron +job) or to Redis. + +--- + +**8. `apps/next/src/lib/metadata.ts` has hardcoded branding** ⚠️ Template concern + +When using this as a template for a new project, `metadata.ts` must be updated: +the title template (`'%s | Convex Monorepo'`) and any other project-specific strings. +Same for `next.config.js` `images.remotePatterns` (currently `*.gbrown.org`). + +--- + +**9. No CI/CD** ℹ️ Future enhancement + +There is no `.github/workflows/` directory. All deployment is done manually via SSH. +A future enhancement would add GitHub Actions (or Gitea Actions, since this repo is +on Gitea) for automated lint and typecheck on pull requests. + +--- + +**10. Scripts organization** ℹ️ Future exploration + +Currently: + +- `packages/backend/scripts/generateKeys.mjs` — generates JWT keys (run manually) +- `docker/generate_convex_admin_key` — bash script to get the admin key from Docker + +These are separate workflows that both need to be run once when setting up a new +deployment. Explore combining these into a unified setup script — potentially one that +generates the keys AND automatically syncs them to Convex in one step, possibly +moving everything to `docker/scripts/`. + +--- + +**11. Expo `eas.json` specifies pnpm** ⚠️ Low priority (Expo is WIP anyway) + +`apps/expo/eas.json` specifies `pnpm 9.15.4` as the package manager. Should specify +bun. This is low priority since the Expo app is not in active development. + +--- + +**12. React Email templates not yet implemented** ℹ️ Future enhancement + +`@react-email/components` and `react-email` are in `packages/backend/package.json` as +planned dependencies. The current `usesend.ts` uses inline HTML strings for email +templates. These will be replaced with proper React Email templates in a future update. + +--- + +## 16. Quick Command Reference ```bash -bun ui-add # Interactive shadcn/ui component addition +# ── Development ─────────────────────────────────────────────────────────────── +bun dev # Start all apps (Next.js + Expo + Convex backend) +bun dev:next # Start Next.js + Convex backend (most common) +bun dev:backend # Start Convex backend only +bun dev:expo # Start Expo + Convex backend +bun dev:expo:tunnel # Expo with tunnel for physical device testing + +# ── Quality Checks ──────────────────────────────────────────────────────────── +bun typecheck # ← PREFERRED — TypeScript checking, fast +bun lint # ESLint all packages +bun lint:fix # ESLint with auto-fix +bun lint:ws # Check workspace consistency with sherif +bun format # Check Prettier formatting +bun format:fix # Apply Prettier formatting + +# ── Build (production only) ─────────────────────────────────────────────────── +bun build # Build all packages + +# ── Utilities ───────────────────────────────────────────────────────────────── +bun ui-add # Add shadcn/ui components interactively +bun clean # Clean all node_modules (git clean -xdf) +bun clean:ws # Clean workspace caches only + +# ── Single Package (Turborepo filters) ──────────────────────────────────────── +bun turbo run typecheck -F @gib/next # Typecheck Next.js app only +bun turbo run lint -F @gib/backend # Lint backend only +bun turbo run dev -F @gib/next # Dev Next.js only (no Convex) + +# ── Scaffolding ─────────────────────────────────────────────────────────────── +bun turbo gen init # Scaffold a new package + +# ── Convex CLI (run from packages/backend/) ─────────────────────────────────── +bun dev # Runs convex dev (push functions + watch) +bun setup # Runs convex dev --until-success (push once then exit) +bun with-env npx convex env set VAR "value" # Sync env var to Convex deployment + +# ── Docker (run from docker/) ───────────────────────────────────────────────── +sudo docker compose up -d convex-backend convex-dashboard # Start Convex +sudo docker compose build next-app # Build Next.js image +sudo docker compose up -d next-app # Deploy Next.js +sudo docker compose logs -f # Stream all logs +./generate_convex_admin_key # Get admin key ``` - -**Note:** Currently uses `pnpm dlx` internally (see Known Issues #10). Will be updated to use `bunx`. - ---- - -## Troubleshooting - -### Backend typecheck shows help message - -**Issue:** Running `bun typecheck` from root shows TypeScript help for `@gib/backend`. - -**Explanation:** This is expected. The backend package has no root `tsconfig.json` (only `convex/tsconfig.json`) following Convex's recommended structure. - -**Solution:** No action needed. This is intentional behavior. - -### Imports from Convex fail without .js extension - -**Issue:** TypeScript can't resolve `@gib/backend/convex/_generated/api`. - -**Solution:** Add `.js` extension: `@gib/backend/convex/_generated/api.js` - -**Why:** Project uses `"type": "module"` requiring explicit extensions for ESM. - -### Catalog updates break workspace - -**Issue:** After updating dependencies, packages show version mismatches. - -**Solution:** - -1. Never use `bun update` directly -2. Edit version in root `package.json` catalog -3. Run `bun install` -4. Verify with `bun lint:ws` diff --git a/README.md b/README.md index 9f6dba3..b610f62 100644 --- a/README.md +++ b/README.md @@ -32,15 +32,21 @@ A production-ready Turborepo starter with Next.js, Expo, and self-hosted Convex ## Getting Started +This is a self-hosted template. The full setup requires a server (home server or VPS) +to host the Convex backend and dashboard, and a reverse proxy (nginx-proxy-manager is +recommended) to expose them over HTTPS. The Next.js app can run locally in dev mode +once the Convex containers are reachable. + ### Prerequisites -- [Bun](https://bun.sh) (v1.2.19+) +- [Bun](https://bun.sh) (v1.2+) - [Docker](https://www.docker.com/) & Docker Compose (for self-hosted Convex) -- Node.js 22.20.0+ (for compatibility) +- Node.js 22+ (for compatibility) +- A running nginx-proxy-manager instance (or similar reverse proxy) to expose Convex over HTTPS -### Development Setup +--- -#### 1. Clone & Install +### Step 1 — Clone & Install ```bash git clone https://git.gbrown.org/gib/convex-monorepo @@ -48,88 +54,152 @@ cd convex-monorepo bun install ``` -#### 2. Configure Environment Variables - -Create a `.env` file in the project root with the following variables: +If you're using this as a template for a new project, remove the existing remote and +add your own: ```bash -# Convex Backend (Self-Hosted) -CONVEX_SELF_HOSTED_URL=https://api.convex.example.com -CONVEX_SELF_HOSTED_ADMIN_KEY=<generated> -CONVEX_SITE_URL=https://convex.example.com - -# Next.js Public -NEXT_PUBLIC_CONVEX_URL=https://api.convex.example.com -NEXT_PUBLIC_SITE_URL=https://example.com -NEXT_PUBLIC_PLAUSIBLE_URL=https://plausible.example.com -NEXT_PUBLIC_SENTRY_DSN= -NEXT_PUBLIC_SENTRY_URL= -NEXT_PUBLIC_SENTRY_ORG= -NEXT_PUBLIC_SENTRY_PROJECT_NAME= - -# Server-side -SENTRY_AUTH_TOKEN= - -# Auth (will be synced to Convex) -AUTH_AUTHENTIK_ID= -AUTH_AUTHENTIK_SECRET= -AUTH_AUTHENTIK_ISSUER= -USESEND_API_KEY= +git remote remove origin +git remote add origin https://your-git-host.com/your/new-repo.git ``` -**For local development:** Use `http://localhost:3210` for Convex URLs. +--- -#### 3. Configure Docker Environment +### Step 2 — Configure the Docker Environment -Check and update environment variables in `docker/.env` for your deployment: +The `docker/` directory contains everything needed to run the Convex backend and the +Next.js app in production. ```bash cd docker/ cp .env.example .env -# Edit .env with your configuration ``` -#### 4. Start Self-Hosted Convex +Edit `docker/.env` and fill in your values. The variables below the Next.js app section +control the Convex containers — you'll need to choose: -Spin up the Convex backend and dashboard: +- `INSTANCE_NAME` — a unique name for your Convex instance +- `INSTANCE_SECRET` — a secret string (generate something random) +- `CONVEX_CLOUD_ORIGIN` — the public HTTPS URL for your Convex backend API (e.g. `https://api.convex.example.com`) +- `CONVEX_SITE_ORIGIN` — the public HTTPS URL for Convex Auth HTTP routes (e.g. `https://api.convex.example.com`) +- `NEXT_PUBLIC_DEPLOYMENT_URL` — the URL for the Convex dashboard (e.g. `https://dashboard.convex.example.com`) + +--- + +### Step 3 — Start the Convex Containers ```bash cd docker/ -docker compose up -d convex-backend convex-dashboard +sudo docker compose up -d convex-backend convex-dashboard ``` -**Services:** +Wait a moment for `convex-backend` to pass its health check, then verify both +containers are running: -- **Backend:** http://localhost:3210 -- **Dashboard:** http://localhost:6791 +```bash +sudo docker compose ps +``` -#### 5. Generate Auth Keys & Sync Environment Variables +Reverse-proxy the two Convex services through nginx-proxy-manager (or your preferred +proxy) to the URLs you chose in Step 2. Both must be reachable over HTTPS before you +can proceed. -Generate JWT keys for Convex Auth: +--- + +### Step 4 — Generate the Convex Admin Key + +With the backend container running, generate the admin key: + +```bash +cd docker/ +./generate_convex_admin_key +``` + +Copy the printed key — you'll need it as `CONVEX_SELF_HOSTED_ADMIN_KEY` in the root +`.env` file. + +--- + +### Step 5 — Configure Root Environment Variables + +Create the root `.env` file: + +```bash +# From the repo root +cp .env.example .env +``` + +Fill out all values in `/.env`: + +```bash +# Next.js +NODE_ENV=development +SENTRY_AUTH_TOKEN= # From your self-hosted Sentry +NEXT_PUBLIC_SITE_URL=https://example.com +NEXT_PUBLIC_CONVEX_URL=https://api.convex.example.com +NEXT_PUBLIC_PLAUSIBLE_URL=https://plausible.example.com +NEXT_PUBLIC_SENTRY_DSN= +NEXT_PUBLIC_SENTRY_URL=https://sentry.example.com +NEXT_PUBLIC_SENTRY_ORG=sentry +NEXT_PUBLIC_SENTRY_PROJECT_NAME=my-project + +# Convex +CONVEX_SELF_HOSTED_URL=https://api.convex.example.com +CONVEX_SELF_HOSTED_ADMIN_KEY= # From Step 4 +CONVEX_SITE_URL=http://localhost:3000 # Always localhost:3000 for local dev + +# Auth (synced to Convex in Step 6) +USESEND_API_KEY= +USESEND_URL=https://usesend.example.com +USESEND_FROM_EMAIL=My App <noreply@example.com> +AUTH_AUTHENTIK_ID= +AUTH_AUTHENTIK_SECRET= +AUTH_AUTHENTIK_ISSUER=https://auth.example.com/application/o/my-app/ +``` + +--- + +### Step 6 — Generate JWT Keys & Sync Environment Variables to Convex + +Generate the RS256 JWT keypair needed for Convex Auth: ```bash cd packages/backend bun run scripts/generateKeys.mjs ``` -Sync environment variables to Convex deployment (via CLI or Dashboard): +This prints `JWT_PRIVATE_KEY` and `JWKS` values. Sync them to your Convex deployment +along with all other backend environment variables: ```bash -cd packages/backend -bun with-env npx convex env set AUTH_AUTHENTIK_ID "your-value" -bun with-env npx convex env set AUTH_AUTHENTIK_SECRET "your-value" +# From packages/backend/ +bun with-env npx convex env set JWT_PRIVATE_KEY "your-private-key" +bun with-env npx convex env set JWKS "your-jwks" +bun with-env npx convex env set AUTH_AUTHENTIK_ID "your-client-id" +bun with-env npx convex env set AUTH_AUTHENTIK_SECRET "your-client-secret" bun with-env npx convex env set AUTH_AUTHENTIK_ISSUER "your-issuer-url" bun with-env npx convex env set USESEND_API_KEY "your-api-key" -bun with-env npx convex env set CONVEX_SITE_URL "http://localhost:3000" +bun with-env npx convex env set USESEND_URL "https://usesend.example.com" +bun with-env npx convex env set USESEND_FROM_EMAIL "My App <noreply@example.com>" ``` -**Important:** For local development, set `CONVEX_SITE_URL` to `http://localhost:3000`. +**For production auth to work**, you must also update `CONVEX_SITE_URL` in the Convex +Dashboard to your production Next.js URL. Go to +`https://dashboard.convex.example.com` → Settings → Environment Variables and set: -#### 6. Start Development Server +``` +CONVEX_SITE_URL = https://example.com +``` + +The root `.env` value of `http://localhost:3000` is correct for local dev and should +not be changed — only update it in the Dashboard for production. + +--- + +### Step 7 — Start the Development Server ```bash # From project root -bun dev:next # Next.js app + Convex backend +bun dev:next # Next.js app + Convex backend (most common) # or bun dev # All apps (Next.js + Expo + Backend) ``` @@ -137,7 +207,7 @@ bun dev # All apps (Next.js + Expo + Backend) **App URLs:** - **Next.js:** http://localhost:3000 -- **Convex Dashboard:** http://localhost:6791 +- **Convex Dashboard:** https://dashboard.convex.example.com --- @@ -193,7 +263,7 @@ convex-monorepo/ │ ├── packages/ │ ├── backend/ # Convex backend -│ │ ├── convex/ # Convex functions (synced to cloud) +│ │ ├── convex/ # Convex functions (synced to deployment) │ │ ├── scripts/ # Utilities (generateKeys.mjs) │ │ └── types/ # Shared types │ └── ui/ # shadcn/ui components @@ -223,16 +293,16 @@ convex-monorepo/ - **OAuth:** Authentik SSO integration - **Password:** Custom password auth with email verification - **OTP:** Email verification via self-hosted UseSend -- **Session Management:** Secure cookie-based sessions +- **Session Management:** Secure cookie-based sessions (30-day max age) ### Next.js App - **App Router:** Next.js 16 with React Server Components -- **Data Preloading:** Server-side data fetching with Convex -- **Middleware:** Route protection & authentication -- **Styling:** Tailwind CSS v4 with dark mode -- **Analytics:** Plausible (privacy-focused) -- **Monitoring:** Sentry error tracking +- **Data Preloading:** SSR data fetching with `preloadQuery` + `usePreloadedQuery` +- **Middleware:** Route protection & IP-based security (`src/proxy.ts`) +- **Styling:** Tailwind CSS v4 with dark mode (OKLCH-based theme) +- **Analytics:** Plausible (privacy-focused, proxied through Next.js) +- **Monitoring:** Sentry error tracking & performance ### Backend @@ -244,87 +314,113 @@ convex-monorepo/ ### Developer Experience -- **Monorepo:** Turborepo for efficient builds +- **Monorepo:** Turborepo for efficient builds and caching - **Type Safety:** Strict TypeScript throughout - **Code Quality:** ESLint + Prettier with auto-fix - **Hot Reload:** Fast refresh for all packages -- **Catalog Deps:** Centralized version management +- **Catalog Deps:** Centralized dependency version management --- ## Deployment -### Docker (Recommended) +### Production Deployment (Docker) -Build and deploy with Docker Compose: +Once the Convex containers are running (they only need to be started once), deploying +a new version of the Next.js app is a two-command workflow: + +```bash +# SSH onto your server, then: +cd docker/ + +# Build the new image +sudo docker compose build next-app + +# Deploy it +sudo docker compose up -d next-app +``` + +To start all services from scratch: ```bash cd docker/ - -# Start all services -docker compose up -d - -# View logs -docker compose logs -f - -# Stop services -docker compose down +sudo docker compose up -d convex-backend convex-dashboard +# Wait for backend health check to pass, then: +sudo docker compose up -d next-app ``` **Services:** -- `next-app` - Next.js standalone build -- `convex-backend` - Convex backend (port 3210) -- `convex-dashboard` - Admin dashboard (port 6791) +- `next-app` — Next.js standalone build +- `convex-backend` — Convex backend (port 3210) +- `convex-dashboard` — Admin dashboard (port 6791) -**Network:** Uses `nginx-bridge` network (configurable in `compose.yml`). +**Network:** Uses `nginx-bridge` Docker network (reverse proxy via nginx-proxy-manager). ### Production Checklist -- [ ] Update environment variables in `docker/.env` -- [ ] Generate `CONVEX_SELF_HOSTED_ADMIN_KEY` -- [ ] Configure reverse proxy (Nginx/Traefik) -- [ ] Set up SSL certificates -- [ ] Sync auth environment variables to Convex -- [ ] Configure backup strategy for `docker/data/` -- [ ] Test authentication flow -- [ ] Enable Sentry error tracking +- [ ] Fill out `docker/.env` with your domain names and secrets +- [ ] Start `convex-backend` and `convex-dashboard` containers +- [ ] Generate and set `CONVEX_SELF_HOSTED_ADMIN_KEY` via `./generate_convex_admin_key` +- [ ] Reverse-proxy both Convex services via nginx-proxy-manager with SSL +- [ ] Fill out root `/.env` with all environment variables +- [ ] Generate JWT keys and sync all env vars to Convex (`bun with-env npx convex env set ...`) +- [ ] Update `CONVEX_SITE_URL` in the Convex Dashboard to your production Next.js URL +- [ ] Build and start the `next-app` container +- [ ] Back up `docker/data/` regularly (contains all Convex database data) --- ## Documentation -- **[AGENTS.md](./AGENTS.md)** - Comprehensive guide for AI agents & developers -- **[Convex Docs](https://docs.convex.dev)** - Official Convex documentation -- **[Turborepo Docs](https://turbo.build/repo/docs)** - Turborepo documentation -- **[Next.js Docs](https://nextjs.org/docs)** - Next.js documentation +- **[AGENTS.md](./AGENTS.md)** — Comprehensive guide for AI agents & developers +- **[Convex Docs](https://docs.convex.dev)** — Official Convex documentation +- **[Turborepo Docs](https://turbo.build/repo/docs)** — Turborepo documentation +- **[Next.js Docs](https://nextjs.org/docs)** — Next.js documentation --- ## Troubleshooting -### Backend typecheck shows help message +### Backend typecheck shows TypeScript help message -This is expected behavior. The backend package follows Convex's structure with only `convex/tsconfig.json` (no root tsconfig). See [AGENTS.md](./AGENTS.md) for details. +This is expected behavior. The backend package follows Convex's structure with only +`convex/tsconfig.json` (no root tsconfig). Running `bun typecheck` from the repo root +will show TypeScript's help text for `@gib/backend` — this is not an error. -### Imports from Convex require .js extension +### Imports from Convex require `.js` extension -The project uses ESM (`"type": "module"`), requiring explicit file extensions: +The project uses ESM (`"type": "module"`), which requires explicit file extensions: ```typescript // ✅ Correct - -// ❌ Wrong +import type { Id } from '@gib/backend/convex/_generated/dataModel.js'; +// ❌ Wrong — will fail at runtime import { api } from '@gib/backend/convex/_generated/api'; import { api } from '@gib/backend/convex/_generated/api.js'; ``` ### Docker containers won't start -1. Check Docker logs: `docker compose logs` +1. Check Docker logs: `sudo docker compose logs` 2. Verify environment variables in `docker/.env` -3. Ensure ports 3210 and 6791 are available -4. Check network configuration (`nginx-bridge`) +3. Ensure the `nginx-bridge` network exists: `sudo docker network create nginx-bridge` +4. Check that the required ports (3210, 6791) are not already in use + +### Auth doesn't work in production + +Make sure `CONVEX_SITE_URL` is set to your production Next.js URL in the **Convex +Dashboard** (not just in the root `.env` file). The root `.env` should always contain +`http://localhost:3000`; the Dashboard must have your production URL. + +### Catalog updates break workspace + +After updating dependencies, if you see `sherif` errors on `bun install`: + +1. Never use `bun update` inside individual package directories +2. Edit the version in root `package.json` catalog section instead +3. Run `bun install` from the root +4. Verify with `bun lint:ws` --- @@ -337,6 +433,7 @@ This is a personal monorepo template. Feel free to fork and adapt for your needs - Single quotes, trailing commas - 80 character line width - ESLint + Prettier enforced +- `const fn = () => {}` over `function fn()` (strong preference) - Import order: Types → React → Next → Third-party → @gib → Local Run `bun lint:fix` and `bun format:fix` before committing. diff --git a/apps/expo/.cache/.prettiercache b/apps/expo/.cache/.prettiercache index e9cdc87..28378c5 100644 --- a/apps/expo/.cache/.prettiercache +++ b/apps/expo/.cache/.prettiercache @@ -1 +1 @@ -[["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21"],{"key":"22","value":"23"},{"key":"24","value":"25"},{"key":"26","value":"27"},{"key":"28","value":"29"},{"key":"30","value":"31"},{"key":"32","value":"33"},{"key":"34","value":"35"},{"key":"36","value":"37"},{"key":"38","value":"39"},{"key":"40","value":"41"},{"key":"42","value":"43"},{"key":"44","value":"45"},{"key":"46","value":"47"},{"key":"48","value":"49"},{"key":"50","value":"51"},{"key":"52","value":"53"},{"key":"54","value":"55"},{"key":"56","value":"57"},{"key":"58","value":"59"},{"key":"60","value":"61"},{"key":"62","value":"63"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/package.json",{"size":2249,"mtime":1766222924000,"hash":"64","data":"65"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/index.ts",{"size":28,"mtime":1768155639000,"hash":"66","data":"67"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/metro.config.js",{"size":511,"mtime":1768155639000,"hash":"68","data":"69"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/src/app/index.tsx",{"size":5019,"mtime":1768372346938,"hash":"70","data":"71"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/turbo.json",{"size":163,"mtime":1766222924000,"hash":"72","data":"73"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/postcss.config.js",{"size":66,"mtime":1768155639000,"hash":"74","data":"75"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/eas.json",{"size":567,"mtime":1766222924000,"hash":"76","data":"77"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/.expo-shared/assets.json",{"size":155,"mtime":1766222924000,"hash":"78","data":"79"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/src/app/_layout.tsx",{"size":927,"mtime":1768155639000,"hash":"80","data":"81"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/nativewind-env.d.ts",{"size":246,"mtime":1766222924000,"hash":"82","data":"83"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/src/utils/auth.ts",{"size":398,"mtime":1768155639000,"hash":"84","data":"85"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/src/app/post/[id].tsx",{"size":757,"mtime":1768372346967,"hash":"86","data":"87"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/src/styles.css",{"size":90,"mtime":1768155639000,"hash":"88","data":"89"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/src/utils/session-store.ts",{"size":272,"mtime":1768155639000,"hash":"90","data":"91"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/assets/icon-dark.png",{"size":19633,"mtime":1766222924000,"hash":"92"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/eslint.config.mts",{"size":275,"mtime":1768155639000,"hash":"93","data":"94"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/src/utils/api.tsx",{"size":1326,"mtime":1768155639000,"hash":"95","data":"96"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/src/utils/base-url.ts",{"size":880,"mtime":1768155639000,"hash":"97","data":"98"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/app.config.ts",{"size":1333,"mtime":1768155639000,"hash":"99","data":"100"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/assets/icon-light.png",{"size":19133,"mtime":1766222924000,"hash":"101"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/tsconfig.json",{"size":387,"mtime":1766228480000,"hash":"102","data":"103"},"d8763702c14cdc382dcfb84f6f9a068f",{"hashOfOptions":"104"},"11cdbef6afa001cd39bc187041ca6865",{"hashOfOptions":"105"},"dbe97bcde588a81538bbcd6a9befdddd",{"hashOfOptions":"106"},"73c235a66242df70b69394cce29d1ed3",{"hashOfOptions":"107"},"c7d4dcf839dfeaa02e0407adfd5e47a6",{"hashOfOptions":"108"},"b7edffce093c4c84092cc93f3dc208ef",{"hashOfOptions":"109"},"a3c1487f8318513ae7c156acc857fde2",{"hashOfOptions":"110"},"0f7f54c7161b8403d3bc42d91f59cd91",{"hashOfOptions":"111"},"8e407b4b1b0c0bd9c862a00243344be3",{"hashOfOptions":"112"},"d4d589c153ac8b5e7bf0fb130a5b5a7d",{"hashOfOptions":"113"},"cecbed1604a530a7cc099fecddddd76c",{"hashOfOptions":"114"},"ead19d73283f9d8e08b55c896c9fd570",{"hashOfOptions":"115"},"52a1d72379b952dd802f47e1865bd0da",{"hashOfOptions":"116"},"1bc3e15a40c117eecc51294886ea9b38",{"hashOfOptions":"117"},"1e8ac0d261e95efb19d290ffcf70ce36","1c1710ce3de3ce02e8054cc3787c8579",{"hashOfOptions":"118"},"5ff899a601102659dcbd2900e415ce8b",{"hashOfOptions":"119"},"dd2007a211e323deabb3f7fa7d16313f",{"hashOfOptions":"120"},"4f49c6df7733f874fbe72b4e20b3092b",{"hashOfOptions":"121"},"863da15dbd856008b7c24077ca746d91","6937fb7370f1e17491df649888d6ecc9",{"hashOfOptions":"122"},"1820601142","1684748001","3531839294","2748941218","956511134","132171752","3925902565","1550174236","2506462393","526883382","4111358426","2953691686","2383171816","2740949298","3787272667","3740930138","4230803759","3315245788","3164486579"] \ No newline at end of file +[["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22"],{"key":"23","value":"24"},{"key":"25","value":"26"},{"key":"27","value":"28"},{"key":"29","value":"30"},{"key":"31","value":"32"},{"key":"33","value":"34"},{"key":"35","value":"36"},{"key":"37","value":"38"},{"key":"39","value":"40"},{"key":"41","value":"42"},{"key":"43","value":"44"},{"key":"45","value":"46"},{"key":"47","value":"48"},{"key":"49","value":"50"},{"key":"51","value":"52"},{"key":"53","value":"54"},{"key":"55","value":"56"},{"key":"57","value":"58"},{"key":"59","value":"60"},{"key":"61","value":"62"},{"key":"63","value":"64"},{"key":"65","value":"66"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/src/app/index.tsx",{"size":5019,"mtime":1768372346938,"hash":"67","data":"68"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/index.ts",{"size":28,"mtime":1768155639000,"hash":"69","data":"70"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/assets/icon-dark.png",{"size":19633,"mtime":1766222924000,"hash":"71"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/postcss.config.js",{"size":66,"mtime":1768155639000,"hash":"72","data":"73"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/src/utils/auth.ts",{"size":398,"mtime":1768155639000,"hash":"74","data":"75"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/src/app/post/[id].tsx",{"size":757,"mtime":1768372346967,"hash":"76","data":"77"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/src/utils/api.tsx",{"size":1326,"mtime":1768155639000,"hash":"78","data":"79"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/eas.json",{"size":567,"mtime":1766222924000,"hash":"80","data":"81"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/src/app/_layout.tsx",{"size":927,"mtime":1768155639000,"hash":"82","data":"83"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/src/styles.css",{"size":90,"mtime":1768155639000,"hash":"84","data":"85"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/.cache/.prettiercache",{"size":4929,"mtime":1774544485533},"/home/gib/Documents/Code/convex-monorepo/apps/expo/assets/icon-light.png",{"size":19133,"mtime":1766222924000,"hash":"86"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/package.json",{"size":2255,"mtime":1774544484676,"hash":"87","data":"88"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/turbo.json",{"size":171,"mtime":1774031879321,"hash":"89","data":"90"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/eslint.config.mts",{"size":275,"mtime":1768155639000,"hash":"91","data":"92"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/tsconfig.json",{"size":387,"mtime":1766228480000,"hash":"93","data":"94"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/metro.config.js",{"size":511,"mtime":1768155639000,"hash":"95","data":"96"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/nativewind-env.d.ts",{"size":246,"mtime":1766222924000,"hash":"97","data":"98"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/src/utils/base-url.ts",{"size":880,"mtime":1768155639000,"hash":"99","data":"100"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/.expo-shared/assets.json",{"size":155,"mtime":1766222924000,"hash":"101","data":"102"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/src/utils/session-store.ts",{"size":272,"mtime":1768155639000,"hash":"103","data":"104"},"/home/gib/Documents/Code/convex-monorepo/apps/expo/app.config.ts",{"size":1333,"mtime":1768155639000,"hash":"105","data":"106"},"73c235a66242df70b69394cce29d1ed3",{"hashOfOptions":"107"},"11cdbef6afa001cd39bc187041ca6865",{"hashOfOptions":"108"},"1e8ac0d261e95efb19d290ffcf70ce36","b7edffce093c4c84092cc93f3dc208ef",{"hashOfOptions":"109"},"cecbed1604a530a7cc099fecddddd76c",{"hashOfOptions":"110"},"ead19d73283f9d8e08b55c896c9fd570",{"hashOfOptions":"111"},"5ff899a601102659dcbd2900e415ce8b",{"hashOfOptions":"112"},"a3c1487f8318513ae7c156acc857fde2",{"hashOfOptions":"113"},"8e407b4b1b0c0bd9c862a00243344be3",{"hashOfOptions":"114"},"52a1d72379b952dd802f47e1865bd0da",{"hashOfOptions":"115"},"863da15dbd856008b7c24077ca746d91","d8763702c14cdc382dcfb84f6f9a068f",{"hashOfOptions":"116"},"c7d4dcf839dfeaa02e0407adfd5e47a6",{"hashOfOptions":"117"},"1c1710ce3de3ce02e8054cc3787c8579",{"hashOfOptions":"118"},"6937fb7370f1e17491df649888d6ecc9",{"hashOfOptions":"119"},"dbe97bcde588a81538bbcd6a9befdddd",{"hashOfOptions":"120"},"d4d589c153ac8b5e7bf0fb130a5b5a7d",{"hashOfOptions":"121"},"dd2007a211e323deabb3f7fa7d16313f",{"hashOfOptions":"122"},"0f7f54c7161b8403d3bc42d91f59cd91",{"hashOfOptions":"123"},"1bc3e15a40c117eecc51294886ea9b38",{"hashOfOptions":"124"},"4f49c6df7733f874fbe72b4e20b3092b",{"hashOfOptions":"125"},"3000879843","3103968608","384110377","68329755","141502567","3992868763","1050155876","2025343866","4147067111","4228440757","3451484829","4039211292","3318113268","2585374463","45764855","1418614640","2754339483","1950506033","3468872477"] \ No newline at end of file diff --git a/apps/expo/package.json b/apps/expo/package.json index 3c1d9bc..3368539 100644 --- a/apps/expo/package.json +++ b/apps/expo/package.json @@ -65,4 +65,3 @@ }, "prettier": "@gib/prettier-config" } - diff --git a/apps/next/.cache/.eslintcache b/apps/next/.cache/.eslintcache new file mode 100644 index 0000000..9fc735e --- /dev/null +++ b/apps/next/.cache/.eslintcache @@ -0,0 +1 @@ +[{"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/(auth)/forgot-password/layout.tsx":"1","/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/(auth)/forgot-password/page.tsx":"2","/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/(auth)/profile/layout.tsx":"3","/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/(auth)/profile/page.tsx":"4","/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/(auth)/sign-in/layout.tsx":"5","/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/(auth)/sign-in/page.tsx":"6","/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/global-error.tsx":"7","/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/layout.tsx":"8","/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/page.tsx":"9","/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/landing/cta.tsx":"10","/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/landing/features.tsx":"11","/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/landing/hero.tsx":"12","/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/landing/index.tsx":"13","/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/landing/tech-stack.tsx":"14","/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/buttons/gibs-auth.tsx":"15","/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/buttons/index.tsx":"16","/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/profile/avatar-upload.tsx":"17","/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/profile/header.tsx":"18","/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/profile/index.tsx":"19","/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/profile/reset-password.tsx":"20","/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/profile/sign-out.tsx":"21","/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/profile/user-info.tsx":"22","/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/footer/index.tsx":"23","/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/header/controls/AvatarDropdown.tsx":"24","/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/header/controls/index.tsx":"25","/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/header/index.tsx":"26","/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/providers/ConvexClientProvider.tsx":"27","/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/providers/index.tsx":"28","/home/gib/Documents/Code/convex-monorepo/apps/next/src/instrumentation-client.ts":"29","/home/gib/Documents/Code/convex-monorepo/apps/next/src/instrumentation.ts":"30","/home/gib/Documents/Code/convex-monorepo/apps/next/src/lib/metadata.ts":"31","/home/gib/Documents/Code/convex-monorepo/apps/next/src/lib/proxy/ban-sus-ips.ts":"32","/home/gib/Documents/Code/convex-monorepo/apps/next/src/proxy.ts":"33"},{"size":298,"mtime":1768236967188,"results":"34","hashOfConfig":"35"},{"size":10607,"mtime":1768372347281,"results":"36","hashOfConfig":"35"},{"size":276,"mtime":1768236979857,"results":"37","hashOfConfig":"35"},{"size":1515,"mtime":1768372347312,"results":"38","hashOfConfig":"35"},{"size":274,"mtime":1768236849421,"results":"39","hashOfConfig":"35"},{"size":16567,"mtime":1774544486885,"results":"40","hashOfConfig":"35"},{"size":2410,"mtime":1774544486967,"results":"41","hashOfConfig":"35"},{"size":2042,"mtime":1774131581680,"results":"42","hashOfConfig":"35"},{"size":253,"mtime":1768372347406,"results":"43","hashOfConfig":"35"},{"size":1139,"mtime":1774544487103,"results":"44","hashOfConfig":"35"},{"size":2916,"mtime":1774544487137,"results":"45","hashOfConfig":"35"},{"size":4045,"mtime":1774544487187,"results":"46","hashOfConfig":"35"},{"size":141,"mtime":1768325738000,"results":"47","hashOfConfig":"35"},{"size":2697,"mtime":1774544487253,"results":"48","hashOfConfig":"35"},{"size":1081,"mtime":1768372347496,"results":"49","hashOfConfig":"35"},{"size":52,"mtime":1768188510036,"results":"50","hashOfConfig":"35"},{"size":6797,"mtime":1768372347532,"results":"51","hashOfConfig":"35"},{"size":384,"mtime":1774544487414,"results":"52","hashOfConfig":"35"},{"size":230,"mtime":1768238412936,"results":"53","hashOfConfig":"35"},{"size":5681,"mtime":1768372347569,"results":"54","hashOfConfig":"35"},{"size":1234,"mtime":1768372347581,"results":"55","hashOfConfig":"35"},{"size":4786,"mtime":1774544487590,"results":"56","hashOfConfig":"35"},{"size":4010,"mtime":1768372347611,"results":"57","hashOfConfig":"35"},{"size":2539,"mtime":1768372347626,"results":"58","hashOfConfig":"35"},{"size":499,"mtime":1768372347633,"results":"59","hashOfConfig":"35"},{"size":2470,"mtime":1774544487733,"results":"60","hashOfConfig":"35"},{"size":444,"mtime":1774544487759,"results":"61","hashOfConfig":"35"},{"size":63,"mtime":1768171856108,"results":"62","hashOfConfig":"35"},{"size":982,"mtime":1774544487814,"results":"63","hashOfConfig":"35"},{"size":283,"mtime":1768341407000,"results":"64","hashOfConfig":"35"},{"size":3088,"mtime":1768334221000,"results":"65","hashOfConfig":"35"},{"size":4894,"mtime":1768226323845,"results":"66","hashOfConfig":"35"},{"size":1109,"mtime":1768330175000,"results":"67","hashOfConfig":"35"},{"filePath":"68","messages":"69","suppressedMessages":"70","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1wm2hhh",{"filePath":"71","messages":"72","suppressedMessages":"73","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"74","messages":"75","suppressedMessages":"76","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"77","messages":"78","suppressedMessages":"79","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"80","messages":"81","suppressedMessages":"82","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"83","messages":"84","suppressedMessages":"85","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"86","messages":"87","suppressedMessages":"88","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"89","messages":"90","suppressedMessages":"91","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"92","messages":"93","suppressedMessages":"94","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"95","messages":"96","suppressedMessages":"97","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"98","messages":"99","suppressedMessages":"100","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"101","messages":"102","suppressedMessages":"103","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"104","messages":"105","suppressedMessages":"106","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"107","messages":"108","suppressedMessages":"109","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"110","messages":"111","suppressedMessages":"112","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"113","messages":"114","suppressedMessages":"115","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"116","messages":"117","suppressedMessages":"118","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"119","messages":"120","suppressedMessages":"121","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"122","messages":"123","suppressedMessages":"124","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"125","messages":"126","suppressedMessages":"127","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"128","messages":"129","suppressedMessages":"130","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"131","messages":"132","suppressedMessages":"133","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"134","messages":"135","suppressedMessages":"136","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"137","messages":"138","suppressedMessages":"139","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"140","messages":"141","suppressedMessages":"142","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"143","messages":"144","suppressedMessages":"145","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"146","messages":"147","suppressedMessages":"148","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"149","messages":"150","suppressedMessages":"151","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"152","messages":"153","suppressedMessages":"154","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"155","messages":"156","suppressedMessages":"157","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"158","messages":"159","suppressedMessages":"160","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"161","messages":"162","suppressedMessages":"163","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"164","messages":"165","suppressedMessages":"166","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/(auth)/forgot-password/layout.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/(auth)/forgot-password/page.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/(auth)/profile/layout.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/(auth)/profile/page.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/(auth)/sign-in/layout.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/(auth)/sign-in/page.tsx",["167","168"],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/global-error.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/layout.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/page.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/landing/cta.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/landing/features.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/landing/hero.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/landing/index.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/landing/tech-stack.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/buttons/gibs-auth.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/buttons/index.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/profile/avatar-upload.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/profile/header.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/profile/index.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/profile/reset-password.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/profile/sign-out.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/profile/user-info.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/footer/index.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/header/controls/AvatarDropdown.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/header/controls/index.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/header/index.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/providers/ConvexClientProvider.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/providers/index.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/instrumentation-client.ts",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/instrumentation.ts",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/lib/metadata.ts",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/lib/proxy/ban-sus-ips.ts",[],[],"/home/gib/Documents/Code/convex-monorepo/apps/next/src/proxy.ts",[],[],{"ruleId":"169","severity":1,"message":"170","line":162,"column":5,"nodeType":null,"messageId":"171","endLine":162,"endColumn":11},{"ruleId":"169","severity":1,"message":"172","line":197,"column":30,"nodeType":null,"messageId":"171","endLine":197,"endColumn":35},"@typescript-eslint/no-unused-vars","'values' is defined but never used. Allowed unused args must match /^_/u.","unusedVar","'field' is defined but never used. Allowed unused args must match /^_/u."] \ No newline at end of file diff --git a/apps/next/.cache/.prettiercache b/apps/next/.cache/.prettiercache index b290dc6..df581d4 100644 --- a/apps/next/.cache/.prettiercache +++ b/apps/next/.cache/.prettiercache @@ -1 +1 @@ -[["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54"],{"key":"55","value":"56"},{"key":"57","value":"58"},{"key":"59","value":"60"},{"key":"61","value":"62"},{"key":"63","value":"64"},{"key":"65","value":"66"},{"key":"67","value":"68"},{"key":"69","value":"70"},{"key":"71","value":"72"},{"key":"73","value":"74"},{"key":"75","value":"76"},{"key":"77","value":"78"},{"key":"79","value":"80"},{"key":"81","value":"82"},{"key":"83","value":"84"},{"key":"85","value":"86"},{"key":"87","value":"88"},{"key":"89","value":"90"},{"key":"91","value":"92"},{"key":"93","value":"94"},{"key":"95","value":"96"},{"key":"97","value":"98"},{"key":"99","value":"100"},{"key":"101","value":"102"},{"key":"103","value":"104"},{"key":"105","value":"106"},{"key":"107","value":"108"},{"key":"109","value":"110"},{"key":"111","value":"112"},{"key":"113","value":"114"},{"key":"115","value":"116"},{"key":"117","value":"118"},{"key":"119","value":"120"},{"key":"121","value":"122"},{"key":"123","value":"124"},{"key":"125","value":"126"},{"key":"127","value":"128"},{"key":"129","value":"130"},{"key":"131","value":"132"},{"key":"133","value":"134"},{"key":"135","value":"136"},{"key":"137","value":"138"},{"key":"139","value":"140"},{"key":"141","value":"142"},{"key":"143","value":"144"},{"key":"145","value":"146"},{"key":"147","value":"148"},{"key":"149","value":"150"},{"key":"151","value":"152"},{"key":"153","value":"154"},{"key":"155","value":"156"},{"key":"157","value":"158"},{"key":"159","value":"160"},{"key":"161","value":"162"},"/home/gib/Documents/Code/convex-monorepo/apps/next/public/misc/convex/convex-logo-black.svg",{"size":3942,"mtime":1717458243000,"hash":"163"},"/home/gib/Documents/Code/convex-monorepo/apps/next/public/misc/convex/convex-symbol-color.svg",{"size":948,"mtime":1717458243000,"hash":"164"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/(auth)/sign-in/page.tsx",{"size":16469,"mtime":1768372347364,"hash":"165","data":"166"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/(auth)/profile/layout.tsx",{"size":276,"mtime":1768236979857,"hash":"167","data":"168"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/instrumentation-client.ts",{"size":986,"mtime":1768341407000,"hash":"169","data":"170"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/lib/proxy/ban-sus-ips.ts",{"size":4894,"mtime":1768226323845,"hash":"171","data":"172"},"/home/gib/Documents/Code/convex-monorepo/apps/next/public/misc/convex/convex-logo-color.svg",{"size":3949,"mtime":1717458243000,"hash":"173"},"/home/gib/Documents/Code/convex-monorepo/apps/next/public/misc/convex/convex-symbol-black.svg",{"size":948,"mtime":1717458243000,"hash":"174"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/(auth)/forgot-password/page.tsx",{"size":10607,"mtime":1768372347281,"hash":"175","data":"176"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/landing/hero.tsx",{"size":4282,"mtime":1768372347453,"hash":"177","data":"178"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/landing/tech-stack.tsx",{"size":2781,"mtime":1768372347478,"hash":"179","data":"180"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/profile/avatar-upload.tsx",{"size":6797,"mtime":1768372347532,"hash":"181","data":"182"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/profile/header.tsx",{"size":717,"mtime":1768372347541,"hash":"183","data":"184"},"/home/gib/Documents/Code/convex-monorepo/apps/next/postcss.config.js",{"size":63,"mtime":1766225879000,"hash":"185","data":"186"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/header/controls/AvatarDropdown.tsx",{"size":2539,"mtime":1768372347626,"hash":"187","data":"188"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/header/controls/index.tsx",{"size":499,"mtime":1768372347633,"hash":"189","data":"190"},"/home/gib/Documents/Code/convex-monorepo/apps/next/public/favicon.png",{"size":17263,"mtime":1717458300000,"hash":"191"},"/home/gib/Documents/Code/convex-monorepo/apps/next/public/misc/convex/convex-wordmark-white.svg",{"size":3096,"mtime":1717458243000,"hash":"192"},"/home/gib/Documents/Code/convex-monorepo/apps/next/public/misc/convex/convex-wordmark-black.svg",{"size":3110,"mtime":1717458243000,"hash":"193"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/layout.tsx",{"size":1982,"mtime":1768372347399,"hash":"194","data":"195"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/landing/cta.tsx",{"size":1314,"mtime":1768372347426,"hash":"196","data":"197"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/providers/ConvexClientProvider.tsx",{"size":462,"mtime":1768239264017,"hash":"198","data":"199"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/proxy.ts",{"size":1109,"mtime":1768330175000,"hash":"200","data":"201"},"/home/gib/Documents/Code/convex-monorepo/apps/next/public/favicon-light.png",{"size":14406,"mtime":1717458300000,"hash":"202"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/(auth)/sign-in/layout.tsx",{"size":274,"mtime":1768236849421,"hash":"203","data":"204"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/profile/user-info.tsx",{"size":4620,"mtime":1768372347599,"hash":"205","data":"206"},"/home/gib/Documents/Code/convex-monorepo/apps/next/.cache/tsbuildinfo.json",{"size":459978,"mtime":1768371159057,"hash":"207","data":"208"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/(auth)/forgot-password/layout.tsx",{"size":298,"mtime":1768236967188,"hash":"209","data":"210"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/profile/index.tsx",{"size":230,"mtime":1768238412936,"hash":"211","data":"212"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/profile/sign-out.tsx",{"size":1234,"mtime":1768372347581,"hash":"213","data":"214"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/header/index.tsx",{"size":2465,"mtime":1768372347642,"hash":"215","data":"216"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/providers/index.tsx",{"size":63,"mtime":1768171856108,"hash":"217","data":"218"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/landing/index.tsx",{"size":141,"mtime":1768325738000,"hash":"219","data":"220"},"/home/gib/Documents/Code/convex-monorepo/apps/next/next.config.js",{"size":1898,"mtime":1768239263537,"hash":"221","data":"222"},"/home/gib/Documents/Code/convex-monorepo/apps/next/public/misc/convex/convex-logo-white.svg",{"size":3921,"mtime":1717458243000,"hash":"223"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/lib/metadata.ts",{"size":3088,"mtime":1768334221000,"hash":"224","data":"225"},"/home/gib/Documents/Code/convex-monorepo/apps/next/package.json",{"size":1484,"mtime":1768173526007,"hash":"226","data":"227"},"/home/gib/Documents/Code/convex-monorepo/apps/next/public/misc/gitea/gitea.svg",{"size":1844,"mtime":1747415494000,"hash":"228"},"/home/gib/Documents/Code/convex-monorepo/apps/next/public/misc/convex/convex-symbol-white.svg",{"size":942,"mtime":1717458243000,"hash":"229"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/(auth)/profile/page.tsx",{"size":1515,"mtime":1768372347312,"hash":"230","data":"231"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/buttons/gibs-auth.tsx",{"size":1081,"mtime":1768372347496,"hash":"232","data":"233"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/sentry.server.config.ts",{"size":188,"mtime":1768341407000,"hash":"234","data":"235"},"/home/gib/Documents/Code/convex-monorepo/apps/next/tsconfig.json",{"size":297,"mtime":1766225936000,"hash":"236","data":"237"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/styles.css",{"size":595,"mtime":1768186094852,"hash":"238","data":"239"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/landing/features.tsx",{"size":2989,"mtime":1768372347440,"hash":"240","data":"241"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/buttons/index.tsx",{"size":52,"mtime":1768188510036,"hash":"242","data":"243"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/profile/reset-password.tsx",{"size":5681,"mtime":1768372347569,"hash":"244","data":"245"},"/home/gib/Documents/Code/convex-monorepo/apps/next/eslint.config.ts",{"size":369,"mtime":1768155639000,"hash":"246","data":"247"},"/home/gib/Documents/Code/convex-monorepo/apps/next/public/misc/auth/gibs-auth-logo.png",{"size":865044,"mtime":1744295935000,"hash":"248"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/global-error.tsx",{"size":2346,"mtime":1768372347388,"hash":"249","data":"250"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/page.tsx",{"size":253,"mtime":1768372347406,"hash":"251","data":"252"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/footer/index.tsx",{"size":4010,"mtime":1768372347611,"hash":"253","data":"254"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/env.js",{"size":1676,"mtime":1768155639000,"hash":"255","data":"256"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/instrumentation.ts",{"size":283,"mtime":1768341407000,"hash":"257","data":"258"},"a1b5d64f627bc733a9d23581d38b3850","ba997c77432ecaa8aba0ff9cac0001bb","0d981f9d2a2ef6fd934345b58b44f9c7",{"hashOfOptions":"259"},"f931981cf65d01e80e4daea7c602bd3e",{"hashOfOptions":"260"},"d7955d8a7807479f20b06f7a4ba951b6",{"hashOfOptions":"261"},"5225199ffcca0402c852ffd8d19e2cee",{"hashOfOptions":"262"},"70b5fd90e75475dbb7eae1efc586b220","02cb8f3cce1e39794d3b82a38a983cb8","9106a63e01a7eaa0ca570e206713566e",{"hashOfOptions":"263"},"d65dec578c4955dd3d5525da34a86875",{"hashOfOptions":"264"},"ea265bd1924706480b7efc2df039fe71",{"hashOfOptions":"265"},"b20aa5a3ffff1e63005cd045e2ab3b10",{"hashOfOptions":"266"},"719d9af2930e31cfe9218f0e3a1a4dd5",{"hashOfOptions":"267"},"d9fa362e836306677416d4e30dfb1528",{"hashOfOptions":"268"},"066c220e9e46cd0e6930825636e1c348",{"hashOfOptions":"269"},"bb137459f322f5f7e81b97abc69d7641",{"hashOfOptions":"270"},"9aa87bb545385e0fa9603bdaef53ae96","e4ea6990c6979b66bb28cf7f0860aff5","564f328871391379d8cc17ced3082bcc","f67394b7550b2b9722a969faa6b02a54",{"hashOfOptions":"271"},"1c96209c7fb1521aacdb77c20de084cc",{"hashOfOptions":"272"},"a11baac0b3f4295a9a850cc059cffcdc",{"hashOfOptions":"273"},"8a05ba7e3ee68fa4710884bdc8b28c60",{"hashOfOptions":"274"},"0866ffeaed5d4d665eaf33601b38962c","693d4b19ca786d9ba8633745187e61f4",{"hashOfOptions":"275"},"609e71048768fcdcc63e8a49cc4f1c78",{"hashOfOptions":"276"},"8fd01f3c8a6d983319200899f29f28e5",{"hashOfOptions":"277"},"9f05c3eace62672b5bc6d3335eba9fd0",{"hashOfOptions":"278"},"34dec2764b76a2881b36ee552b80f532",{"hashOfOptions":"279"},"d8e43b516bddc01199409891c174bf6e",{"hashOfOptions":"280"},"cdb2a69ae644d369ecc48f7898cc65ab",{"hashOfOptions":"281"},"53c4570985ddffc2d83d6325d42bdc71",{"hashOfOptions":"282"},"4324ea06035bdd64caa311fd44d00ec5",{"hashOfOptions":"283"},"613de2866c4439d2e5f7ffad956efed6",{"hashOfOptions":"284"},"b7195c2cdf0fac103929901d0dfff8b8","0ef98046290cc8ad8800d3dd9f0ecbf7",{"hashOfOptions":"285"},"62343aef61431d56eca0bb4c64c6bd4f",{"hashOfOptions":"286"},"40fcde90e04dcb2e30e1c60dfcfb1f71","3e53c679b7596295cab8080632bd0aff","d06a1f6b512e06c81d9766e32b30bf70",{"hashOfOptions":"287"},"30044a3a91d3dd3ea30348b42d1aedc4",{"hashOfOptions":"288"},"cbc523490bb047d4c6732da67bd661e3",{"hashOfOptions":"289"},"785dd21512a5bdf43635be77f6a483ae",{"hashOfOptions":"290"},"dfff38be9a12d6e3dcf5756661542bdf",{"hashOfOptions":"291"},"c8875638622391bebca1cd817be42382",{"hashOfOptions":"292"},"f030cda6238b76472047d1372aa19ebc",{"hashOfOptions":"293"},"372c5a526af2dfe0c7ece98f64604af4",{"hashOfOptions":"294"},"a9eecac327a9c09dd26e82c515134edc",{"hashOfOptions":"295"},"9fcbf360e8f2f12bd26530b187b73912","b7599f9b9e8fffb885a2c14d950de582",{"hashOfOptions":"296"},"22a5c01ab59e5bb518a67b74c32db809",{"hashOfOptions":"297"},"88f27e7faa7e9f5517f940dfd5df5899",{"hashOfOptions":"298"},"08dcc17ca04632a7262728b699450d5d",{"hashOfOptions":"299"},"a2ecf9414957b82c6db34d402ad91b3e",{"hashOfOptions":"300"},"921026608","735238455","4052273815","206206486","1458926176","620699626","1428045793","3304120847","416566829","3133550345","2024593288","367483182","4014078675","1119848218","3750890728","4037288591","1096518891","3943753034","2419415667","139798299","3911014860","1791530590","2201193111","2175321767","1028794108","2771831167","2323733288","318630613","111768188","526615604","2376577475","1949524948","1928286613","427370189","3327434116","3788368985","3104451283","53228263","720282136","2063114917","2755217882","296748399"] \ No newline at end of file +[["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56"],{"key":"57","value":"58"},{"key":"59","value":"60"},{"key":"61","value":"62"},{"key":"63","value":"64"},{"key":"65","value":"66"},{"key":"67","value":"68"},{"key":"69","value":"70"},{"key":"71","value":"72"},{"key":"73","value":"74"},{"key":"75","value":"76"},{"key":"77","value":"78"},{"key":"79","value":"80"},{"key":"81","value":"82"},{"key":"83","value":"84"},{"key":"85","value":"86"},{"key":"87","value":"88"},{"key":"89","value":"90"},{"key":"91","value":"92"},{"key":"93","value":"94"},{"key":"95","value":"96"},{"key":"97","value":"98"},{"key":"99","value":"100"},{"key":"101","value":"102"},{"key":"103","value":"104"},{"key":"105","value":"106"},{"key":"107","value":"108"},{"key":"109","value":"110"},{"key":"111","value":"112"},{"key":"113","value":"114"},{"key":"115","value":"116"},{"key":"117","value":"118"},{"key":"119","value":"120"},{"key":"121","value":"122"},{"key":"123","value":"124"},{"key":"125","value":"126"},{"key":"127","value":"128"},{"key":"129","value":"130"},{"key":"131","value":"132"},{"key":"133","value":"134"},{"key":"135","value":"136"},{"key":"137","value":"138"},{"key":"139","value":"140"},{"key":"141","value":"142"},{"key":"143","value":"144"},{"key":"145","value":"146"},{"key":"147","value":"148"},{"key":"149","value":"150"},{"key":"151","value":"152"},{"key":"153","value":"154"},{"key":"155","value":"156"},{"key":"157","value":"158"},{"key":"159","value":"160"},{"key":"161","value":"162"},{"key":"163","value":"164"},{"key":"165","value":"166"},{"key":"167","value":"168"},"/home/gib/Documents/Code/convex-monorepo/apps/next/public/misc/convex/convex-symbol-black.svg",{"size":948,"mtime":1717458243000,"hash":"169"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/header/controls/index.tsx",{"size":499,"mtime":1768372347633,"hash":"170","data":"171"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/buttons/gibs-auth.tsx",{"size":1081,"mtime":1768372347496,"hash":"172","data":"173"},"/home/gib/Documents/Code/convex-monorepo/apps/next/public/misc/convex/convex-wordmark-black.svg",{"size":3110,"mtime":1717458243000,"hash":"174"},"/home/gib/Documents/Code/convex-monorepo/apps/next/public/misc/gitea/gitea.svg",{"size":1844,"mtime":1747415494000,"hash":"175"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/sentry.server.config.ts",{"size":184,"mtime":1774544487955,"hash":"176","data":"177"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/profile/reset-password.tsx",{"size":5681,"mtime":1768372347569,"hash":"178","data":"179"},"/home/gib/Documents/Code/convex-monorepo/apps/next/public/misc/convex/convex-symbol-color.svg",{"size":948,"mtime":1717458243000,"hash":"180"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/instrumentation-client.ts",{"size":982,"mtime":1774544487814,"hash":"181","data":"182"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/landing/tech-stack.tsx",{"size":2697,"mtime":1774544487253,"hash":"183","data":"184"},"/home/gib/Documents/Code/convex-monorepo/apps/next/public/favicon-light.png",{"size":14406,"mtime":1717458300000,"hash":"185"},"/home/gib/Documents/Code/convex-monorepo/apps/next/.cache/tsbuildinfo.json",{"size":784653,"mtime":1774544485739,"hash":"186","data":"187"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/global-error.tsx",{"size":2410,"mtime":1774544486967,"hash":"188","data":"189"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/footer/index.tsx",{"size":4010,"mtime":1768372347611,"hash":"190","data":"191"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/header/controls/AvatarDropdown.tsx",{"size":2539,"mtime":1768372347626,"hash":"192","data":"193"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/landing/cta.tsx",{"size":1139,"mtime":1774544487103,"hash":"194","data":"195"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/profile/sign-out.tsx",{"size":1234,"mtime":1768372347581,"hash":"196","data":"197"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/landing/index.tsx",{"size":141,"mtime":1768325738000,"hash":"198","data":"199"},"/home/gib/Documents/Code/convex-monorepo/apps/next/public/misc/convex/convex-symbol-white.svg",{"size":942,"mtime":1717458243000,"hash":"200"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/buttons/index.tsx",{"size":52,"mtime":1768188510036,"hash":"201","data":"202"},"/home/gib/Documents/Code/convex-monorepo/apps/next/postcss.config.js",{"size":63,"mtime":1766225879000,"hash":"203","data":"204"},"/home/gib/Documents/Code/convex-monorepo/apps/next/public/misc/convex/convex-wordmark-white.svg",{"size":3096,"mtime":1717458243000,"hash":"205"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/proxy.ts",{"size":1109,"mtime":1768330175000,"hash":"206","data":"207"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/providers/index.tsx",{"size":63,"mtime":1768171856108,"hash":"208","data":"209"},"/home/gib/Documents/Code/convex-monorepo/apps/next/next.config.js",{"size":2019,"mtime":1774544486096,"hash":"210","data":"211"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/profile/user-info.tsx",{"size":4786,"mtime":1774544487590,"hash":"212","data":"213"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/profile/index.tsx",{"size":230,"mtime":1768238412936,"hash":"214","data":"215"},"/home/gib/Documents/Code/convex-monorepo/apps/next/public/misc/auth/gibs-auth-logo.png",{"size":865044,"mtime":1744295935000,"hash":"216"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/profile/header.tsx",{"size":384,"mtime":1774544487414,"hash":"217","data":"218"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/instrumentation.ts",{"size":283,"mtime":1768341407000,"hash":"219","data":"220"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/page.tsx",{"size":253,"mtime":1768372347406,"hash":"221","data":"222"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/layout.tsx",{"size":2042,"mtime":1774131581680,"hash":"223","data":"224"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/styles.css",{"size":595,"mtime":1768186094852,"hash":"225","data":"226"},"/home/gib/Documents/Code/convex-monorepo/apps/next/.cache/.eslintcache",{"size":14397,"mtime":1774544649433},"/home/gib/Documents/Code/convex-monorepo/apps/next/.cache/.prettiercache",{"size":13269,"mtime":1774544487967},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/(auth)/forgot-password/page.tsx",{"size":10607,"mtime":1768372347281,"hash":"227","data":"228"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/landing/hero.tsx",{"size":4045,"mtime":1774544487187,"hash":"229","data":"230"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/providers/ConvexClientProvider.tsx",{"size":444,"mtime":1774544487759,"hash":"231","data":"232"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/lib/metadata.ts",{"size":3088,"mtime":1768334221000,"hash":"233","data":"234"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/(auth)/profile/page.tsx",{"size":1515,"mtime":1768372347312,"hash":"235","data":"236"},"/home/gib/Documents/Code/convex-monorepo/apps/next/public/misc/convex/convex-logo-black.svg",{"size":3942,"mtime":1717458243000,"hash":"237"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/(auth)/profile/layout.tsx",{"size":276,"mtime":1768236979857,"hash":"238","data":"239"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/(auth)/forgot-password/layout.tsx",{"size":298,"mtime":1768236967188,"hash":"240","data":"241"},"/home/gib/Documents/Code/convex-monorepo/apps/next/package.json",{"size":1529,"mtime":1774182527959,"hash":"242","data":"243"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/landing/features.tsx",{"size":2916,"mtime":1774544487137,"hash":"244","data":"245"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/lib/proxy/ban-sus-ips.ts",{"size":4894,"mtime":1768226323845,"hash":"246","data":"247"},"/home/gib/Documents/Code/convex-monorepo/apps/next/tsconfig.json",{"size":297,"mtime":1766225936000,"hash":"248","data":"249"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/env.ts",{"size":1660,"mtime":1774544487796,"data":"250"},"/home/gib/Documents/Code/convex-monorepo/apps/next/public/misc/convex/convex-logo-color.svg",{"size":3949,"mtime":1717458243000,"hash":"251"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/header/index.tsx",{"size":2470,"mtime":1774544487733,"hash":"252","data":"253"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/(auth)/sign-in/page.tsx",{"size":16567,"mtime":1774544486885,"hash":"254","data":"255"},"/home/gib/Documents/Code/convex-monorepo/apps/next/public/favicon.png",{"size":17263,"mtime":1717458300000,"hash":"256"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/components/layout/auth/profile/avatar-upload.tsx",{"size":6797,"mtime":1768372347532,"hash":"257","data":"258"},"/home/gib/Documents/Code/convex-monorepo/apps/next/src/app/(auth)/sign-in/layout.tsx",{"size":274,"mtime":1768236849421,"hash":"259","data":"260"},"/home/gib/Documents/Code/convex-monorepo/apps/next/public/misc/convex/convex-logo-white.svg",{"size":3921,"mtime":1717458243000,"hash":"261"},"/home/gib/Documents/Code/convex-monorepo/apps/next/eslint.config.ts",{"size":369,"mtime":1768155639000,"hash":"262","data":"263"},"02cb8f3cce1e39794d3b82a38a983cb8","bb137459f322f5f7e81b97abc69d7641",{"hashOfOptions":"264"},"30044a3a91d3dd3ea30348b42d1aedc4",{"hashOfOptions":"265"},"564f328871391379d8cc17ced3082bcc","40fcde90e04dcb2e30e1c60dfcfb1f71","cbc523490bb047d4c6732da67bd661e3",{"hashOfOptions":"266"},"372c5a526af2dfe0c7ece98f64604af4",{"hashOfOptions":"267"},"ba997c77432ecaa8aba0ff9cac0001bb","d7955d8a7807479f20b06f7a4ba951b6",{"hashOfOptions":"268"},"ea265bd1924706480b7efc2df039fe71",{"hashOfOptions":"269"},"0866ffeaed5d4d665eaf33601b38962c","8fd01f3c8a6d983319200899f29f28e5",{"hashOfOptions":"270"},"b7599f9b9e8fffb885a2c14d950de582",{"hashOfOptions":"271"},"88f27e7faa7e9f5517f940dfd5df5899",{"hashOfOptions":"272"},"066c220e9e46cd0e6930825636e1c348",{"hashOfOptions":"273"},"1c96209c7fb1521aacdb77c20de084cc",{"hashOfOptions":"274"},"d8e43b516bddc01199409891c174bf6e",{"hashOfOptions":"275"},"4324ea06035bdd64caa311fd44d00ec5",{"hashOfOptions":"276"},"3e53c679b7596295cab8080632bd0aff","f030cda6238b76472047d1372aa19ebc",{"hashOfOptions":"277"},"d9fa362e836306677416d4e30dfb1528",{"hashOfOptions":"278"},"e4ea6990c6979b66bb28cf7f0860aff5","8a05ba7e3ee68fa4710884bdc8b28c60",{"hashOfOptions":"279"},"53c4570985ddffc2d83d6325d42bdc71",{"hashOfOptions":"280"},"613de2866c4439d2e5f7ffad956efed6",{"hashOfOptions":"281"},"609e71048768fcdcc63e8a49cc4f1c78",{"hashOfOptions":"282"},"34dec2764b76a2881b36ee552b80f532",{"hashOfOptions":"283"},"9fcbf360e8f2f12bd26530b187b73912","719d9af2930e31cfe9218f0e3a1a4dd5",{"hashOfOptions":"284"},"a2ecf9414957b82c6db34d402ad91b3e",{"hashOfOptions":"285"},"22a5c01ab59e5bb518a67b74c32db809",{"hashOfOptions":"286"},"f67394b7550b2b9722a969faa6b02a54",{"hashOfOptions":"287"},"dfff38be9a12d6e3dcf5756661542bdf",{"hashOfOptions":"288"},"9106a63e01a7eaa0ca570e206713566e",{"hashOfOptions":"289"},"d65dec578c4955dd3d5525da34a86875",{"hashOfOptions":"290"},"a11baac0b3f4295a9a850cc059cffcdc",{"hashOfOptions":"291"},"0ef98046290cc8ad8800d3dd9f0ecbf7",{"hashOfOptions":"292"},"d06a1f6b512e06c81d9766e32b30bf70",{"hashOfOptions":"293"},"a1b5d64f627bc733a9d23581d38b3850","f931981cf65d01e80e4daea7c602bd3e",{"hashOfOptions":"294"},"9f05c3eace62672b5bc6d3335eba9fd0",{"hashOfOptions":"295"},"62343aef61431d56eca0bb4c64c6bd4f",{"hashOfOptions":"296"},"c8875638622391bebca1cd817be42382",{"hashOfOptions":"297"},"5225199ffcca0402c852ffd8d19e2cee",{"hashOfOptions":"298"},"785dd21512a5bdf43635be77f6a483ae",{"hashOfOptions":"299"},{"hashOfOptions":"300"},"70b5fd90e75475dbb7eae1efc586b220","cdb2a69ae644d369ecc48f7898cc65ab",{"hashOfOptions":"301"},"0d981f9d2a2ef6fd934345b58b44f9c7",{"hashOfOptions":"302"},"9aa87bb545385e0fa9603bdaef53ae96","b20aa5a3ffff1e63005cd045e2ab3b10",{"hashOfOptions":"303"},"693d4b19ca786d9ba8633745187e61f4",{"hashOfOptions":"304"},"b7195c2cdf0fac103929901d0dfff8b8","a9eecac327a9c09dd26e82c515134edc",{"hashOfOptions":"305"},"2541644015","324101299","3229001348","2335984282","589786840","3791528482","574992436","1257393510","139612324","2459957767","487256857","3965691423","3492381563","371088643","3385488970","2150160910","2770064294","240759166","3741238729","954669387","2063167086","938028910","1621064343","3901785042","1815992980","3456517153","1234023339","3348843561","1842614761","725091901","2874252408","1092036700","2726470228","3754449294","2180624789","2103151637","2517595215","277690518","1534350321","826401678","3235532844","4005233490"] \ No newline at end of file diff --git a/apps/next/.cache/tsbuildinfo.json b/apps/next/.cache/tsbuildinfo.json index ea26a13..cfcb838 100644 --- a/apps/next/.cache/tsbuildinfo.json +++ b/apps/next/.cache/tsbuildinfo.json @@ -283,6 +283,7 @@ "../../../node_modules/@types/node/http.d.ts", "../../../node_modules/@types/node/http2.d.ts", "../../../node_modules/@types/node/https.d.ts", + "../../../node_modules/@types/node/inspector.d.ts", "../../../node_modules/@types/node/inspector.generated.d.ts", "../../../node_modules/@types/node/module.d.ts", "../../../node_modules/@types/node/net.d.ts", @@ -328,34 +329,38 @@ "../../../node_modules/next/dist/shared/lib/modern-browserslist-target.d.ts", "../../../node_modules/next/dist/shared/lib/entry-constants.d.ts", "../../../node_modules/next/dist/shared/lib/constants.d.ts", + "../../../node_modules/next/dist/lib/bundler.d.ts", "../../../node_modules/next/dist/server/config.d.ts", "../../../node_modules/next/dist/lib/load-custom-routes.d.ts", "../../../node_modules/next/dist/shared/lib/image-config.d.ts", "../../../node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts", "../../../node_modules/next/dist/server/body-streams.d.ts", + "../../../node_modules/next/dist/server/request/search-params.d.ts", + "../../../node_modules/next/dist/shared/lib/segment-cache/vary-params-decoding.d.ts", + "../../../node_modules/next/dist/server/app-render/vary-params.d.ts", + "../../../node_modules/next/dist/server/request/params.d.ts", + "../../../node_modules/next/dist/server/route-kind.d.ts", + "../../../node_modules/next/dist/server/route-definitions/route-definition.d.ts", + "../../../node_modules/next/dist/server/route-matches/route-match.d.ts", + "../../../node_modules/next/dist/client/components/app-router-headers.d.ts", "../../../node_modules/next/dist/server/lib/cache-control.d.ts", + "../../../node_modules/next/dist/shared/lib/app-router-types.d.ts", + "../../../node_modules/next/dist/server/lib/cache-handlers/types.d.ts", + "../../../node_modules/next/dist/server/use-cache/use-cache-wrapper.d.ts", + "../../../node_modules/next/dist/server/resume-data-cache/cache-store.d.ts", + "../../../node_modules/next/dist/server/resume-data-cache/resume-data-cache.d.ts", + "../../../node_modules/next/dist/lib/constants.d.ts", + "../../../node_modules/next/dist/server/render-result.d.ts", + "../../../node_modules/next/dist/server/response-cache/types.d.ts", + "../../../node_modules/next/dist/server/response-cache/index.d.ts", + "../../../node_modules/@types/react/jsx-runtime.d.ts", + "../../../node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.d.ts", + "../../../node_modules/next/dist/build/static-paths/types.d.ts", + "../../../node_modules/next/dist/server/route-definitions/app-page-route-definition.d.ts", + "../../../node_modules/next/dist/build/adapter/setup-node-env.external.d.ts", + "../../../node_modules/next/dist/server/instrumentation/types.d.ts", "../../../node_modules/next/dist/lib/setup-exception-listeners.d.ts", "../../../node_modules/next/dist/lib/worker.d.ts", - "../../../node_modules/next/dist/lib/constants.d.ts", - "../../../node_modules/next/dist/lib/bundler.d.ts", - "../../../node_modules/next/dist/client/components/app-router-headers.d.ts", - "../../../node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts", - "../../../node_modules/next/dist/client/flight-data-helpers.d.ts", - "../../../node_modules/next/dist/client/components/segment-cache-impl/navigation.d.ts", - "../../../node_modules/next/dist/client/components/segment-cache-impl/cache-key.d.ts", - "../../../node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.d.ts", - "../../../node_modules/next/dist/client/components/segment-cache-impl/scheduler.d.ts", - "../../../node_modules/next/dist/client/components/segment-cache-impl/prefetch.d.ts", - "../../../node_modules/next/dist/client/route-params.d.ts", - "../../../node_modules/next/dist/client/components/segment-cache-impl/cache-map.d.ts", - "../../../node_modules/next/dist/client/components/segment-cache-impl/cache.d.ts", - "../../../node_modules/next/dist/client/components/segment-cache.d.ts", - "../../../node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts", - "../../../node_modules/next/dist/shared/lib/app-router-types.d.ts", - "../../../node_modules/next/dist/build/static-paths/types.d.ts", - "../../../node_modules/next/dist/build/rendering-mode.d.ts", - "../../../node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.d.ts", - "../../../node_modules/next/dist/server/require-hook.d.ts", "../../../node_modules/next/dist/server/lib/experimental/ppr.d.ts", "../../../node_modules/next/dist/lib/page-types.d.ts", "../../../node_modules/next/dist/build/segment-config/app/app-segment-config.d.ts", @@ -363,31 +368,133 @@ "../../../node_modules/next/dist/build/analysis/get-page-static-info.d.ts", "../../../node_modules/next/dist/build/webpack/loaders/get-module-build-info.d.ts", "../../../node_modules/next/dist/build/webpack/plugins/middleware-plugin.d.ts", + "../../../node_modules/next/dist/server/require-hook.d.ts", "../../../node_modules/next/dist/server/node-polyfill-crypto.d.ts", "../../../node_modules/next/dist/server/node-environment-baseline.d.ts", "../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.d.ts", "../../../node_modules/next/dist/server/node-environment-extensions/console-file.d.ts", "../../../node_modules/next/dist/server/node-environment-extensions/console-exit.d.ts", "../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.d.ts", - "../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.d.ts", + "../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.d.ts", "../../../node_modules/next/dist/server/node-environment-extensions/random.d.ts", "../../../node_modules/next/dist/server/node-environment-extensions/date.d.ts", "../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.d.ts", "../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.d.ts", + "../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.d.ts", "../../../node_modules/next/dist/server/node-environment.d.ts", "../../../node_modules/next/dist/build/page-extensions-type.d.ts", - "../../../node_modules/next/dist/server/route-kind.d.ts", - "../../../node_modules/next/dist/server/route-definitions/route-definition.d.ts", - "../../../node_modules/next/dist/server/route-definitions/app-page-route-definition.d.ts", - "../../../node_modules/next/dist/server/lib/cache-handlers/types.d.ts", - "../../../node_modules/next/dist/server/response-cache/types.d.ts", - "../../../node_modules/next/dist/server/resume-data-cache/cache-store.d.ts", - "../../../node_modules/next/dist/server/resume-data-cache/resume-data-cache.d.ts", - "../../../node_modules/next/dist/server/render-result.d.ts", - "../../../node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.d.ts", - "../../../node_modules/next/dist/server/instrumentation/types.d.ts", - "../../../node_modules/next/dist/lib/coalesced-function.d.ts", + "../../../node_modules/next/dist/server/route-modules/app-page/module.compiled.d.ts", + "../../../node_modules/next/dist/server/route-definitions/app-route-route-definition.d.ts", + "../../../node_modules/next/dist/server/lib/i18n-provider.d.ts", + "../../../node_modules/next/dist/server/web/next-url.d.ts", + "../../../node_modules/next/dist/compiled/@edge-runtime/cookies/index.d.ts", + "../../../node_modules/next/dist/server/web/spec-extension/cookies.d.ts", + "../../../node_modules/next/dist/server/web/spec-extension/request.d.ts", + "../../../node_modules/next/dist/shared/lib/deep-readonly.d.ts", + "../../../node_modules/next/dist/server/lib/incremental-cache/index.d.ts", "../../../node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.d.ts", + "../../../node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.d.ts", + "../../../node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.d.ts", + "../../../node_modules/next/dist/server/route-definitions/locale-route-definition.d.ts", + "../../../node_modules/next/dist/server/route-definitions/pages-route-definition.d.ts", + "../../../node_modules/next/dist/shared/lib/mitt.d.ts", + "../../../node_modules/next/dist/client/with-router.d.ts", + "../../../node_modules/next/dist/client/router.d.ts", + "../../../node_modules/next/dist/client/route-loader.d.ts", + "../../../node_modules/next/dist/client/page-loader.d.ts", + "../../../node_modules/next/dist/shared/lib/bloom-filter.d.ts", + "../../../node_modules/next/dist/shared/lib/router/router.d.ts", + "../../../node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts", + "../../../node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts", + "../../../node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts", + "../../../node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts", + "../../../node_modules/next/dist/client/components/readonly-url-search-params.d.ts", + "../../../node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts", + "../../../node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts", + "../../../node_modules/next/dist/client/flight-data-helpers.d.ts", + "../../../node_modules/next/dist/client/components/segment-cache/cache-key.d.ts", + "../../../node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts", + "../../../node_modules/next/dist/client/components/segment-cache/types.d.ts", + "../../../node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.d.ts", + "../../../node_modules/next/dist/client/components/segment-cache/scheduler.d.ts", + "../../../node_modules/next/dist/client/components/segment-cache/cache-map.d.ts", + "../../../node_modules/next/dist/client/components/segment-cache/vary-path.d.ts", + "../../../node_modules/next/dist/client/components/segment-cache/cache.d.ts", + "../../../node_modules/next/dist/client/components/router-reducer/ppr-navigations.d.ts", + "../../../node_modules/next/dist/client/components/segment-cache/navigation.d.ts", + "../../../node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts", + "../../../node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts", + "../../../node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts", + "../../../node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.d.ts", + "../../../node_modules/next/dist/server/route-modules/pages/module.compiled.d.ts", + "../../../node_modules/next/dist/build/templates/pages.d.ts", + "../../../node_modules/next/dist/server/route-modules/pages/module.d.ts", + "../../../node_modules/next/dist/server/render.d.ts", + "../../../node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.d.ts", + "../../../node_modules/next/dist/server/route-definitions/pages-api-route-definition.d.ts", + "../../../node_modules/next/dist/server/route-matches/pages-api-route-match.d.ts", + "../../../node_modules/next/dist/server/route-matchers/route-matcher.d.ts", + "../../../node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.d.ts", + "../../../node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.d.ts", + "../../../node_modules/next/dist/server/normalizers/normalizer.d.ts", + "../../../node_modules/next/dist/server/normalizers/locale-route-normalizer.d.ts", + "../../../node_modules/next/dist/server/normalizers/request/pathname-normalizer.d.ts", + "../../../node_modules/next/dist/server/normalizers/request/suffix.d.ts", + "../../../node_modules/next/dist/server/normalizers/request/rsc.d.ts", + "../../../node_modules/next/dist/server/normalizers/request/next-data.d.ts", + "../../../node_modules/next/dist/server/after/builtin-request-context.d.ts", + "../../../node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.d.ts", + "../../../node_modules/next/dist/server/route-modules/pages/builtin/_error.d.ts", + "../../../node_modules/next/dist/server/load-default-error-components.d.ts", + "../../../node_modules/next/dist/server/base-server.d.ts", + "../../../node_modules/next/dist/server/after/after.d.ts", + "../../../node_modules/next/dist/server/after/after-context.d.ts", + "../../../node_modules/next/dist/server/use-cache/cache-life.d.ts", + "../../../node_modules/next/dist/server/app-render/work-async-storage-instance.d.ts", + "../../../node_modules/next/dist/server/lib/lazy-result.d.ts", + "../../../node_modules/next/dist/server/app-render/create-error-handler.d.ts", + "../../../node_modules/next/dist/shared/lib/action-revalidation-kind.d.ts", + "../../../node_modules/next/dist/server/app-render/work-async-storage.external.d.ts", + "../../../node_modules/next/dist/server/async-storage/work-store.d.ts", + "../../../node_modules/next/dist/server/web/http.d.ts", + "../../../node_modules/next/dist/client/components/hooks-server-context.d.ts", + "../../../node_modules/next/dist/server/route-modules/app-route/shared-modules.d.ts", + "../../../node_modules/next/dist/client/components/redirect-status-code.d.ts", + "../../../node_modules/next/dist/client/components/redirect-error.d.ts", + "../../../node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.d.ts", + "../../../node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts", + "../../../node_modules/next/dist/server/web/spec-extension/adapters/headers.d.ts", + "../../../node_modules/next/dist/server/app-render/cache-signal.d.ts", + "../../../node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.d.ts", + "../../../node_modules/next/dist/server/app-render/instant-validation/instant-validation-error.d.ts", + "../../../node_modules/next/dist/shared/lib/router/utils/parse-relative-url.d.ts", + "../../../node_modules/next/dist/server/app-render/instant-validation/instant-samples.d.ts", + "../../../node_modules/next/dist/server/app-render/dynamic-rendering.d.ts", + "../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.d.ts", + "../../../node_modules/next/dist/server/lib/implicit-tags.d.ts", + "../../../node_modules/next/dist/server/app-render/staged-rendering.d.ts", + "../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.d.ts", + "../../../node_modules/next/dist/build/templates/app-route.d.ts", + "../../../node_modules/next/dist/server/app-render/action-async-storage-instance.d.ts", + "../../../node_modules/next/dist/server/app-render/action-async-storage.external.d.ts", + "../../../node_modules/next/dist/server/route-modules/app-route/module.d.ts", + "../../../node_modules/next/dist/server/route-modules/app-route/module.compiled.d.ts", + "../../../node_modules/next/dist/build/segment-config/app/app-segments.d.ts", + "../../../node_modules/next/dist/build/get-supported-browsers.d.ts", + "../../../node_modules/next/dist/build/utils.d.ts", + "../../../node_modules/next/dist/build/rendering-mode.d.ts", + "../../../node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.d.ts", + "../../../node_modules/next/dist/server/lib/cpu-profile.d.ts", + "../../../node_modules/next/dist/build/turborepo-access-trace/types.d.ts", + "../../../node_modules/next/dist/build/turborepo-access-trace/result.d.ts", + "../../../node_modules/next/dist/build/turborepo-access-trace/helpers.d.ts", + "../../../node_modules/next/dist/build/turborepo-access-trace/index.d.ts", + "../../../node_modules/next/dist/export/routes/types.d.ts", + "../../../node_modules/next/dist/export/types.d.ts", + "../../../node_modules/next/dist/export/worker.d.ts", + "../../../node_modules/next/dist/build/worker.d.ts", + "../../../node_modules/next/dist/build/index.d.ts", + "../../../node_modules/next/dist/lib/coalesced-function.d.ts", "../../../node_modules/next/dist/server/lib/router-utils/types.d.ts", "../../../node_modules/next/dist/trace/types.d.ts", "../../../node_modules/next/dist/trace/trace.d.ts", @@ -399,9 +506,10 @@ "../../../node_modules/next/dist/build/webpack/plugins/telemetry-plugin/telemetry-plugin.d.ts", "../../../node_modules/next/dist/telemetry/storage.d.ts", "../../../node_modules/next/dist/build/build-context.d.ts", - "../../../node_modules/next/dist/shared/lib/bloom-filter.d.ts", "../../../node_modules/next/dist/build/webpack-config.d.ts", "../../../node_modules/next/dist/build/swc/generated-native.d.ts", + "../../../node_modules/next/dist/build/define-env.d.ts", + "../../../node_modules/next/dist/build/swc/index.d.ts", "../../../node_modules/next/dist/build/swc/types.d.ts", "../../../node_modules/next/dist/server/dev/parse-version-info.d.ts", "../../../node_modules/next/dist/next-devtools/shared/types.d.ts", @@ -411,63 +519,16 @@ "../../../node_modules/next/dist/next-devtools/server/shared.d.ts", "../../../node_modules/next/dist/next-devtools/shared/stack-frame.d.ts", "../../../node_modules/next/dist/next-devtools/dev-overlay/utils/get-error-by-type.d.ts", - "../../../node_modules/@types/react/jsx-runtime.d.ts", "../../../node_modules/next/dist/next-devtools/dev-overlay/container/runtime-error/render-error.d.ts", "../../../node_modules/next/dist/next-devtools/dev-overlay/shared.d.ts", "../../../node_modules/next/dist/server/dev/debug-channel.d.ts", "../../../node_modules/next/dist/server/dev/hot-reloader-types.d.ts", - "../../../node_modules/next/dist/server/lib/i18n-provider.d.ts", - "../../../node_modules/next/dist/server/web/next-url.d.ts", - "../../../node_modules/next/dist/compiled/@edge-runtime/cookies/index.d.ts", - "../../../node_modules/next/dist/server/web/spec-extension/cookies.d.ts", - "../../../node_modules/next/dist/server/web/spec-extension/request.d.ts", - "../../../node_modules/next/dist/server/after/builtin-request-context.d.ts", "../../../node_modules/next/dist/server/web/spec-extension/fetch-event.d.ts", "../../../node_modules/next/dist/server/web/spec-extension/response.d.ts", "../../../node_modules/next/dist/build/segment-config/middleware/middleware-config.d.ts", "../../../node_modules/next/dist/server/web/types.d.ts", - "../../../node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.d.ts", "../../../node_modules/next/dist/shared/lib/router/utils/parse-url.d.ts", "../../../node_modules/next/dist/server/base-http/node.d.ts", - "../../../node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.d.ts", - "../../../node_modules/next/dist/server/route-definitions/locale-route-definition.d.ts", - "../../../node_modules/next/dist/server/route-definitions/pages-route-definition.d.ts", - "../../../node_modules/next/dist/shared/lib/mitt.d.ts", - "../../../node_modules/next/dist/client/with-router.d.ts", - "../../../node_modules/next/dist/client/router.d.ts", - "../../../node_modules/next/dist/client/route-loader.d.ts", - "../../../node_modules/next/dist/client/page-loader.d.ts", - "../../../node_modules/next/dist/shared/lib/router/router.d.ts", - "../../../node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts", - "../../../node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts", - "../../../node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts", - "../../../node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts", - "../../../node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts", - "../../../node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts", - "../../../node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts", - "../../../node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts", - "../../../node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.d.ts", - "../../../node_modules/next/dist/server/route-modules/pages/module.compiled.d.ts", - "../../../node_modules/next/dist/build/templates/pages.d.ts", - "../../../node_modules/next/dist/server/route-modules/pages/module.d.ts", - "../../../node_modules/next/dist/shared/lib/deep-readonly.d.ts", - "../../../node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.d.ts", - "../../../node_modules/next/dist/server/render.d.ts", - "../../../node_modules/next/dist/server/response-cache/index.d.ts", - "../../../node_modules/next/dist/server/route-definitions/pages-api-route-definition.d.ts", - "../../../node_modules/next/dist/server/route-matches/pages-api-route-match.d.ts", - "../../../node_modules/next/dist/server/route-matchers/route-matcher.d.ts", - "../../../node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.d.ts", - "../../../node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.d.ts", - "../../../node_modules/next/dist/server/normalizers/normalizer.d.ts", - "../../../node_modules/next/dist/server/normalizers/locale-route-normalizer.d.ts", - "../../../node_modules/next/dist/server/normalizers/request/pathname-normalizer.d.ts", - "../../../node_modules/next/dist/server/normalizers/request/suffix.d.ts", - "../../../node_modules/next/dist/server/normalizers/request/rsc.d.ts", - "../../../node_modules/next/dist/server/normalizers/request/prefetch-rsc.d.ts", - "../../../node_modules/next/dist/server/normalizers/request/next-data.d.ts", - "../../../node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.d.ts", - "../../../node_modules/next/dist/server/base-server.d.ts", "../../../node_modules/next/dist/server/lib/async-callback-set.d.ts", "../../../node_modules/next/dist/shared/lib/router/utils/route-regex.d.ts", "../../../node_modules/next/dist/shared/lib/router/utils/route-matcher.d.ts", @@ -477,7 +538,6 @@ "../../../node_modules/next/dist/server/lib/types.d.ts", "../../../node_modules/next/dist/server/lib/lru-cache.d.ts", "../../../node_modules/next/dist/server/lib/dev-bundler-service.d.ts", - "../../../node_modules/next/dist/server/use-cache/cache-life.d.ts", "../../../node_modules/next/dist/server/dev/static-paths-worker.d.ts", "../../../node_modules/next/dist/server/dev/next-dev-server.d.ts", "../../../node_modules/next/dist/server/next.d.ts", @@ -494,29 +554,13 @@ "../../../node_modules/next/dist/build/webpack/loaders/metadata/types.d.ts", "../../../node_modules/next/dist/build/webpack/loaders/next-app-loader/index.d.ts", "../../../node_modules/next/dist/server/lib/app-dir-module.d.ts", - "../../../node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.d.ts", - "../../../node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts", - "../../../node_modules/next/dist/server/web/spec-extension/adapters/headers.d.ts", - "../../../node_modules/next/dist/server/app-render/cache-signal.d.ts", - "../../../node_modules/next/dist/server/app-render/dynamic-rendering.d.ts", - "../../../node_modules/next/dist/server/request/fallback-params.d.ts", - "../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.d.ts", - "../../../node_modules/next/dist/server/lib/lazy-result.d.ts", - "../../../node_modules/next/dist/server/lib/implicit-tags.d.ts", - "../../../node_modules/next/dist/server/app-render/staged-rendering.d.ts", - "../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.d.ts", - "../../../node_modules/next/dist/shared/lib/router/utils/parse-relative-url.d.ts", "../../../node_modules/next/dist/server/app-render/app-render.d.ts", "../../../node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.d.ts", "../../../node_modules/next/dist/client/components/error-boundary.d.ts", "../../../node_modules/next/dist/client/components/layout-router.d.ts", "../../../node_modules/next/dist/client/components/render-from-template-context.d.ts", - "../../../node_modules/next/dist/server/app-render/action-async-storage-instance.d.ts", - "../../../node_modules/next/dist/server/app-render/action-async-storage.external.d.ts", "../../../node_modules/next/dist/client/components/client-page.d.ts", "../../../node_modules/next/dist/client/components/client-segment.d.ts", - "../../../node_modules/next/dist/server/request/search-params.d.ts", - "../../../node_modules/next/dist/client/components/hooks-server-context.d.ts", "../../../node_modules/next/dist/client/components/http-access-fallback/error-boundary.d.ts", "../../../node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts", "../../../node_modules/next/dist/lib/metadata/types/extra-types.d.ts", @@ -534,45 +578,27 @@ "../../../node_modules/next/dist/server/app-render/rsc/postpone.d.ts", "../../../node_modules/next/dist/server/app-render/rsc/taint.d.ts", "../../../node_modules/next/dist/server/app-render/collect-segment-data.d.ts", + "../../../node_modules/next/dist/server/app-render/instant-validation/instant-validation.d.ts", "../../../node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.d.ts", "../../../node_modules/next/dist/server/app-render/entry-base.d.ts", "../../../node_modules/next/dist/build/templates/app-page.d.ts", + "../../../node_modules/next/dist/server/route-modules/app-page/helpers/prerender-manifest-matcher.d.ts", "../../../node_modules/@types/react/jsx-dev-runtime.d.ts", "../../../node_modules/@types/react/compiler-runtime.d.ts", "../../../node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.d.ts", "../../../node_modules/@types/react-dom/server.d.ts", "../../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.d.ts", "../../../node_modules/next/dist/server/route-modules/app-page/module.d.ts", - "../../../node_modules/next/dist/server/route-modules/app-page/module.compiled.d.ts", - "../../../node_modules/next/dist/server/route-definitions/app-route-route-definition.d.ts", - "../../../node_modules/next/dist/server/async-storage/work-store.d.ts", - "../../../node_modules/next/dist/server/web/http.d.ts", - "../../../node_modules/next/dist/server/route-modules/app-route/shared-modules.d.ts", - "../../../node_modules/next/dist/client/components/redirect-status-code.d.ts", - "../../../node_modules/next/dist/client/components/redirect-error.d.ts", - "../../../node_modules/next/dist/build/templates/app-route.d.ts", - "../../../node_modules/next/dist/server/route-modules/app-route/module.d.ts", - "../../../node_modules/next/dist/server/route-modules/app-route/module.compiled.d.ts", - "../../../node_modules/next/dist/build/segment-config/app/app-segments.d.ts", - "../../../node_modules/next/dist/build/utils.d.ts", - "../../../node_modules/next/dist/build/turborepo-access-trace/types.d.ts", - "../../../node_modules/next/dist/build/turborepo-access-trace/result.d.ts", - "../../../node_modules/next/dist/build/turborepo-access-trace/helpers.d.ts", - "../../../node_modules/next/dist/build/turborepo-access-trace/index.d.ts", - "../../../node_modules/next/dist/export/routes/types.d.ts", - "../../../node_modules/next/dist/export/types.d.ts", - "../../../node_modules/next/dist/export/worker.d.ts", - "../../../node_modules/next/dist/build/worker.d.ts", - "../../../node_modules/next/dist/build/index.d.ts", - "../../../node_modules/next/dist/server/lib/incremental-cache/index.d.ts", - "../../../node_modules/next/dist/server/after/after.d.ts", - "../../../node_modules/next/dist/server/after/after-context.d.ts", - "../../../node_modules/next/dist/server/app-render/work-async-storage-instance.d.ts", - "../../../node_modules/next/dist/server/app-render/work-async-storage.external.d.ts", - "../../../node_modules/next/dist/server/request/params.d.ts", - "../../../node_modules/next/dist/server/route-matches/route-match.d.ts", + "../../../node_modules/next/dist/server/request/fallback-params.d.ts", + "../../../node_modules/next/dist/server/web/spec-extension/image-response.d.ts", + "../../../node_modules/next/dist/server/web/spec-extension/user-agent.d.ts", + "../../../node_modules/next/dist/server/web/spec-extension/url-pattern.d.ts", + "../../../node_modules/next/dist/server/after/index.d.ts", + "../../../node_modules/next/dist/server/request/connection.d.ts", + "../../../node_modules/next/dist/server/web/exports/index.d.ts", "../../../node_modules/next/dist/server/request-meta.d.ts", "../../../node_modules/next/dist/cli/next-test.d.ts", + "../../../node_modules/next/dist/shared/lib/size-limit.d.ts", "../../../node_modules/next/dist/server/config-shared.d.ts", "../../../node_modules/next/dist/server/base-http/index.d.ts", "../../../node_modules/next/dist/server/api-utils/index.d.ts", @@ -592,6 +618,8 @@ "../../../node_modules/next/dist/shared/lib/dynamic.d.ts", "../../../node_modules/next/dynamic.d.ts", "../../../node_modules/next/dist/pages/_error.d.ts", + "../../../node_modules/next/dist/client/components/catch-error.d.ts", + "../../../node_modules/next/dist/api/error.d.ts", "../../../node_modules/next/error.d.ts", "../../../node_modules/next/dist/shared/lib/head.d.ts", "../../../node_modules/next/head.d.ts", @@ -605,7 +633,6 @@ "../../../node_modules/next/image.d.ts", "../../../node_modules/next/dist/client/link.d.ts", "../../../node_modules/next/link.d.ts", - "../../../node_modules/next/dist/client/components/readonly-url-search-params.d.ts", "../../../node_modules/next/dist/client/components/unrecognized-action-error.d.ts", "../../../node_modules/next/dist/client/components/redirect.d.ts", "../../../node_modules/next/dist/client/components/not-found.d.ts", @@ -619,14 +646,9 @@ "../../../node_modules/next/router.d.ts", "../../../node_modules/next/dist/client/script.d.ts", "../../../node_modules/next/script.d.ts", - "../../../node_modules/next/dist/server/web/spec-extension/user-agent.d.ts", "../../../node_modules/next/dist/compiled/@edge-runtime/primitives/url.d.ts", - "../../../node_modules/next/dist/server/web/spec-extension/image-response.d.ts", "../../../node_modules/next/dist/compiled/@vercel/og/satori/index.d.ts", - "../../../node_modules/next/dist/compiled/@vercel/og/emoji/index.d.ts", "../../../node_modules/next/dist/compiled/@vercel/og/types.d.ts", - "../../../node_modules/next/dist/server/after/index.d.ts", - "../../../node_modules/next/dist/server/request/connection.d.ts", "../../../node_modules/next/server.d.ts", "../../../node_modules/next/types/global.d.ts", "../../../node_modules/next/types/compiled.d.ts", @@ -635,11 +657,14 @@ "../../../node_modules/next/image-types/global.d.ts", "../.next/dev/types/routes.d.ts", "../next-env.d.ts", + "../../../node_modules/jiti/lib/types.d.ts", + "../../../node_modules/jiti/lib/jiti.d.mts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/types-hoist/measurement.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/attributes.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/types-hoist/attachment.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/types-hoist/severity.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/types-hoist/breadcrumb.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/featureFlags.d.ts", - "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/types-hoist/measurement.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/types-hoist/opentelemetry.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/types-hoist/spanStatus.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/types-hoist/transaction.d.ts", @@ -687,6 +712,7 @@ "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/types-hoist/options.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/integration.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/types-hoist/startSpanOptions.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/promisebuffer.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/client.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/sdk.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/traceData.d.ts", @@ -723,19 +749,23 @@ "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/eventProcessors.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/report-dialog.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/api.d.ts", - "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/promisebuffer.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/transports/base.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/transports/multiplexed.d.ts", - "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/applyScopeDataToEvent.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/ai/providerSkip.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/envToBool.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/scopeData.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/checkin.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/hasSpansEnabled.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/isSentryRequestUrl.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/handleCallbackErrors.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/parameterize.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/tunnel.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/ipAddress.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/spanOnScope.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/parseSampleRate.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/sdkMetadata.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/lru.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/tracePropagationTargets.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/meta.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/debounce.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/request.d.ts", @@ -751,6 +781,7 @@ "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/integrations/extraerrordata.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/integrations/rewriteframes.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/integrations/supabase.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/integrations/postgresjs.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/integrations/zoderrors.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/integrations/third-party-errors-filter.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/types-hoist/instrument.d.ts", @@ -758,9 +789,11 @@ "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/integrations/featureFlags/featureFlagsIntegration.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/integrations/featureFlags/growthbook.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/integrations/featureFlags/index.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/integrations/conversationId.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/profiling.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/fetch.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/trpc.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/integrations/mcp-server/types.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/integrations/mcp-server/index.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/feedback.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/logs/internal.d.ts", @@ -769,21 +802,25 @@ "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/metrics/internal.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/metrics/public-api.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/integrations/consola.d.ts", - "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/vercel-ai/index.d.ts", - "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/vercel-ai/types.d.ts", - "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/vercel-ai/utils.d.ts", - "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/openai/constants.d.ts", - "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/openai/types.d.ts", - "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/openai/index.d.ts", - "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/anthropic-ai/constants.d.ts", - "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/anthropic-ai/types.d.ts", - "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/anthropic-ai/index.d.ts", - "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/google-genai/constants.d.ts", - "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/google-genai/types.d.ts", - "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/google-genai/index.d.ts", - "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/langchain/types.d.ts", - "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/langchain/index.d.ts", - "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/langchain/constants.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/tracing/vercel-ai/index.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/tracing/vercel-ai/types.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/tracing/vercel-ai/utils.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/tracing/vercel-ai/constants.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/tracing/openai/constants.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/tracing/openai/types.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/tracing/openai/index.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/tracing/anthropic-ai/constants.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/tracing/anthropic-ai/types.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/tracing/anthropic-ai/index.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/tracing/google-genai/constants.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/tracing/google-genai/types.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/tracing/google-genai/index.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/tracing/langchain/types.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/tracing/langchain/index.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/tracing/langchain/constants.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/tracing/langgraph/types.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/tracing/langgraph/index.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/tracing/langgraph/constants.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/aggregate-errors.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/breadcrumb-log-level.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/browser.d.ts", @@ -795,6 +832,7 @@ "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/instrument/globalUnhandledRejection.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/instrument/handlers.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/types-hoist/polymorphics.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/types-hoist/vue.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/is.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/isBrowser.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/debug-logger.d.ts", @@ -820,17 +858,18 @@ "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/url.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/eventbuilder.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/anr.d.ts", - "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/lru.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/propagationContext.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/vercelWaitUntil.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/flushIfServerless.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/version.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/debug-ids.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/metadata.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/types-hoist/error.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/types-hoist/runtime.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/types-hoist/browseroptions.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/types-hoist/view-hierarchy.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/build-time-plugins/buildTimeOptionsBase.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/utils/randomSafeContext.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/core/build/types/index.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/react/node_modules/@sentry/browser/build/npm/types/feedbackAsync.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/react/node_modules/@sentry/browser/build/npm/types/feedbackSync.d.ts", @@ -838,6 +877,7 @@ "../../../node_modules/@sentry/nextjs/node_modules/@sentry/react/node_modules/@sentry/browser/build/npm/types/client.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/react/node_modules/@sentry/browser/build/npm/types/helpers.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/react/node_modules/@sentry/browser/build/npm/types/transports/fetch.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/react/node_modules/@sentry/browser/build/npm/types/profiling/index.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/react/node_modules/@sentry/browser/build/npm/types/stack-parsers.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/react/node_modules/@sentry/browser/build/npm/types/eventbuilder.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/react/node_modules/@sentry/browser/build/npm/types/userfeedback.d.ts", @@ -848,6 +888,7 @@ "../../../node_modules/@sentry/nextjs/node_modules/@sentry/react/node_modules/@sentry/browser/build/npm/types/integrations/httpcontext.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/react/node_modules/@sentry/browser/build/npm/types/integrations/linkederrors.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/react/node_modules/@sentry/browser/build/npm/types/integrations/browserapierrors.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/react/node_modules/@sentry/browser/build/npm/types/integrations/browsersession.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/react/node_modules/@sentry/browser/build/npm/types/utils/lazyLoadIntegration.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/react/node_modules/@sentry/browser/build/npm/types/exports.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/react/node_modules/@sentry/browser/build/npm/types/integrations/reportingobserver.d.ts", @@ -895,7 +936,7 @@ "../../../node_modules/@sentry/nextjs/node_modules/@sentry/react/node_modules/@sentry/browser/build/npm/types/transports/offline.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/react/node_modules/@sentry/browser/build/npm/types/profiling/integration.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/react/node_modules/@sentry/browser/build/npm/types/integrations/spotlight.d.ts", - "../../../node_modules/@sentry/nextjs/node_modules/@sentry/react/node_modules/@sentry/browser/build/npm/types/integrations/browsersession.d.ts", + "../../../node_modules/@sentry/nextjs/node_modules/@sentry/react/node_modules/@sentry/browser/build/npm/types/integrations/culturecontext.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/react/node_modules/@sentry/browser/build/npm/types/integrations/featureFlags/launchdarkly/types.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/react/node_modules/@sentry/browser/build/npm/types/integrations/featureFlags/launchdarkly/integration.d.ts", "../../../node_modules/@sentry/nextjs/node_modules/@sentry/react/node_modules/@sentry/browser/build/npm/types/integrations/featureFlags/launchdarkly/index.d.ts", @@ -949,6 +990,7 @@ "../../../node_modules/@sentry/nextjs/build/types/common/captureRequestError.d.ts", "../../../node_modules/@sentry/nextjs/build/types/common/index.d.ts", "../../../node_modules/@sentry/nextjs/build/types/common/pages-router-instrumentation/_error.d.ts", + "../../../node_modules/@sentry/nextjs/build/types/common/utils/nextSpan.d.ts", "../../../node_modules/@sentry/nextjs/build/types/client/browserTracingIntegration.d.ts", "../../../node_modules/@sentry/nextjs/build/types/client/routing/appRouterRoutingInstrumentation.d.ts", "../../../node_modules/@sentry/nextjs/build/types/client/index.d.ts", @@ -1015,9 +1057,7 @@ "../../../node_modules/@opentelemetry/resources/build/src/detectors/NoopDetector.d.ts", "../../../node_modules/@opentelemetry/resources/build/src/detectors/index.d.ts", "../../../node_modules/@opentelemetry/resources/build/src/ResourceImpl.d.ts", - "../../../node_modules/@opentelemetry/resources/build/src/platform/node/default-service-name.d.ts", - "../../../node_modules/@opentelemetry/resources/build/src/platform/node/index.d.ts", - "../../../node_modules/@opentelemetry/resources/build/src/platform/index.d.ts", + "../../../node_modules/@opentelemetry/resources/build/src/default-service-name.d.ts", "../../../node_modules/@opentelemetry/resources/build/src/index.d.ts", "../../../node_modules/@opentelemetry/sdk-trace-base/build/src/IdGenerator.d.ts", "../../../node_modules/@opentelemetry/sdk-trace-base/build/src/Sampler.d.ts", @@ -1032,8 +1072,7 @@ "../../../node_modules/@opentelemetry/core/build/src/ExportResult.d.ts", "../../../node_modules/@opentelemetry/core/build/src/baggage/utils.d.ts", "../../../node_modules/@opentelemetry/core/build/src/platform/node/environment.d.ts", - "../../../node_modules/@opentelemetry/core/build/src/platform/node/globalThis.d.ts", - "../../../node_modules/@opentelemetry/core/build/src/platform/node/performance.d.ts", + "../../../node_modules/@opentelemetry/core/build/src/common/globalThis.d.ts", "../../../node_modules/@opentelemetry/core/build/src/platform/node/sdk-info.d.ts", "../../../node_modules/@opentelemetry/core/build/src/platform/node/index.d.ts", "../../../node_modules/@opentelemetry/core/build/src/platform/index.d.ts", @@ -1085,9 +1124,6 @@ "../../../node_modules/@opentelemetry/api-logs/build/src/types/LoggerOptions.d.ts", "../../../node_modules/@opentelemetry/api-logs/build/src/types/LoggerProvider.d.ts", "../../../node_modules/@opentelemetry/api-logs/build/src/NoopLogger.d.ts", - "../../../node_modules/@opentelemetry/api-logs/build/src/NoopLoggerProvider.d.ts", - "../../../node_modules/@opentelemetry/api-logs/build/src/ProxyLogger.d.ts", - "../../../node_modules/@opentelemetry/api-logs/build/src/ProxyLoggerProvider.d.ts", "../../../node_modules/@opentelemetry/api-logs/build/src/api/logs.d.ts", "../../../node_modules/@opentelemetry/api-logs/build/src/index.d.ts", "../../../node_modules/@opentelemetry/instrumentation/build/src/types.d.ts", @@ -1109,56 +1145,8 @@ "../../../node_modules/@opentelemetry/instrumentation-http/build/src/index.d.ts", "../../../node_modules/@sentry/node/node_modules/@sentry/core/build/types/index.d.ts", "../../../node_modules/@sentry/node-core/node_modules/@sentry/core/build/types/index.d.ts", - "../../../node_modules/@sentry/node-core/build/types/logs/capture.d.ts", - "../../../node_modules/@sentry/node-core/build/types/logs/exports.d.ts", "../../../node_modules/@sentry/node-core/build/types/integrations/http/SentryHttpInstrumentation.d.ts", "../../../node_modules/@sentry/node-core/build/types/integrations/http/index.d.ts", - "../../../node_modules/@sentry/node-core/build/types/transports/http-module.d.ts", - "../../../node_modules/@sentry/node-core/build/types/transports/http.d.ts", - "../../../node_modules/@sentry/node-core/build/types/transports/index.d.ts", - "../../../node_modules/@sentry/node-core/build/types/types.d.ts", - "../../../node_modules/@sentry/node-core/build/types/sdk/client.d.ts", - "../../../node_modules/@sentry/node-core/build/types/integrations/http/httpServerSpansIntegration.d.ts", - "../../../node_modules/@sentry/node-core/build/types/integrations/http/httpServerIntegration.d.ts", - "../../../node_modules/@sentry/node-core/build/types/integrations/node-fetch/index.d.ts", - "../../../node_modules/@sentry/node-core/build/types/integrations/node-fetch/SentryNodeFetchInstrumentation.d.ts", - "../../../node_modules/@sentry/node-core/build/types/integrations/context.d.ts", - "../../../node_modules/@sentry/node-core/build/types/integrations/contextlines.d.ts", - "../../../node_modules/@sentry/node-core/build/types/integrations/local-variables/common.d.ts", - "../../../node_modules/@sentry/node-core/build/types/integrations/local-variables/index.d.ts", - "../../../node_modules/@sentry/node-core/build/types/integrations/modules.d.ts", - "../../../node_modules/@sentry/node-core/build/types/integrations/onuncaughtexception.d.ts", - "../../../node_modules/@sentry/node-core/build/types/integrations/onunhandledrejection.d.ts", - "../../../node_modules/@sentry/node-core/build/types/integrations/anr/common.d.ts", - "../../../node_modules/@sentry/node-core/build/types/integrations/anr/index.d.ts", - "../../../node_modules/@sentry/node-core/build/types/integrations/spotlight.d.ts", - "../../../node_modules/@sentry/node-core/build/types/integrations/systemError.d.ts", - "../../../node_modules/@sentry/node-core/build/types/integrations/childProcess.d.ts", - "../../../node_modules/@sentry/node-core/build/types/integrations/winston.d.ts", - "../../../node_modules/@sentry/node-core/build/types/integrations/pino.d.ts", - "../../../node_modules/@opentelemetry/context-async-hooks/build/src/AbstractAsyncHooksContextManager.d.ts", - "../../../node_modules/@opentelemetry/context-async-hooks/build/src/AsyncHooksContextManager.d.ts", - "../../../node_modules/@opentelemetry/context-async-hooks/build/src/AsyncLocalStorageContextManager.d.ts", - "../../../node_modules/@opentelemetry/context-async-hooks/build/src/index.d.ts", - "../../../node_modules/@sentry/node-core/build/types/otel/contextManager.d.ts", - "../../../node_modules/@sentry/node-core/build/types/otel/logger.d.ts", - "../../../node_modules/@sentry/node-core/build/types/otel/instrument.d.ts", - "../../../node_modules/@sentry/node-core/build/types/sdk/index.d.ts", - "../../../node_modules/@sentry/node-core/build/types/sdk/scope.d.ts", - "../../../node_modules/@sentry/node-core/build/types/sdk/api.d.ts", - "../../../node_modules/@sentry/node-core/build/types/utils/module.d.ts", - "../../../node_modules/@sentry/node-core/build/types/utils/addOriginToSpan.d.ts", - "../../../node_modules/@sentry/node-core/build/types/utils/getRequestUrl.d.ts", - "../../../node_modules/@sentry/node-core/build/types/sdk/esmLoader.d.ts", - "../../../node_modules/@sentry/node-core/build/types/utils/detection.d.ts", - "../../../node_modules/@sentry/node-core/build/types/utils/ensureIsWrapped.d.ts", - "../../../node_modules/@sentry/node-core/build/types/utils/createMissingInstrumentationContext.d.ts", - "../../../node_modules/@sentry/node-core/build/types/utils/envToBool.d.ts", - "../../../node_modules/@sentry/node-core/build/types/cron/cron.d.ts", - "../../../node_modules/@sentry/node-core/build/types/cron/node-cron.d.ts", - "../../../node_modules/@sentry/node-core/build/types/cron/node-schedule.d.ts", - "../../../node_modules/@sentry/node-core/build/types/cron/index.d.ts", - "../../../node_modules/@sentry/node-core/build/types/nodeVersion.d.ts", "../../../node_modules/@sentry/opentelemetry/build/types/semanticAttributes.d.ts", "../../../node_modules/@sentry/opentelemetry/node_modules/@sentry/core/build/types/index.d.ts", "../../../node_modules/@sentry/opentelemetry/build/types/utils/getRequestSpanData.d.ts", @@ -1180,6 +1168,55 @@ "../../../node_modules/@sentry/opentelemetry/build/types/sampler.d.ts", "../../../node_modules/@sentry/opentelemetry/build/types/utils/setupCheck.d.ts", "../../../node_modules/@sentry/opentelemetry/build/types/index.d.ts", + "../../../node_modules/@sentry/node-core/build/types/transports/http-module.d.ts", + "../../../node_modules/@sentry/node-core/build/types/transports/http.d.ts", + "../../../node_modules/@sentry/node-core/build/types/transports/index.d.ts", + "../../../node_modules/@sentry/node-core/build/types/types.d.ts", + "../../../node_modules/@sentry/node-core/build/types/sdk/client.d.ts", + "../../../node_modules/@sentry/node-core/build/types/integrations/http/httpServerSpansIntegration.d.ts", + "../../../node_modules/@sentry/node-core/build/types/integrations/http/httpServerIntegration.d.ts", + "../../../node_modules/@sentry/node-core/build/types/integrations/node-fetch/index.d.ts", + "../../../node_modules/@sentry/node-core/build/types/integrations/node-fetch/SentryNodeFetchInstrumentation.d.ts", + "../../../node_modules/@opentelemetry/context-async-hooks/build/src/AbstractAsyncHooksContextManager.d.ts", + "../../../node_modules/@opentelemetry/context-async-hooks/build/src/AsyncHooksContextManager.d.ts", + "../../../node_modules/@opentelemetry/context-async-hooks/build/src/AsyncLocalStorageContextManager.d.ts", + "../../../node_modules/@opentelemetry/context-async-hooks/build/src/index.d.ts", + "../../../node_modules/@sentry/node-core/build/types/otel/contextManager.d.ts", + "../../../node_modules/@sentry/node-core/build/types/otel/logger.d.ts", + "../../../node_modules/@sentry/node-core/build/types/otel/instrument.d.ts", + "../../../node_modules/@sentry/node-core/build/types/sdk/index.d.ts", + "../../../node_modules/@sentry/node-core/build/types/sdk/scope.d.ts", + "../../../node_modules/@sentry/node-core/build/types/utils/ensureIsWrapped.d.ts", + "../../../node_modules/@sentry/node-core/build/types/integrations/processSession.d.ts", + "../../../node_modules/@sentry/node-core/build/types/integrations/anr/common.d.ts", + "../../../node_modules/@sentry/node-core/build/types/integrations/anr/index.d.ts", + "../../../node_modules/@sentry/node-core/build/types/logs/capture.d.ts", + "../../../node_modules/@sentry/node-core/build/types/logs/exports.d.ts", + "../../../node_modules/@sentry/node-core/build/types/integrations/context.d.ts", + "../../../node_modules/@sentry/node-core/build/types/integrations/contextlines.d.ts", + "../../../node_modules/@sentry/node-core/build/types/integrations/local-variables/common.d.ts", + "../../../node_modules/@sentry/node-core/build/types/integrations/local-variables/index.d.ts", + "../../../node_modules/@sentry/node-core/build/types/integrations/modules.d.ts", + "../../../node_modules/@sentry/node-core/build/types/integrations/onuncaughtexception.d.ts", + "../../../node_modules/@sentry/node-core/build/types/integrations/onunhandledrejection.d.ts", + "../../../node_modules/@sentry/node-core/build/types/integrations/spotlight.d.ts", + "../../../node_modules/@sentry/node-core/build/types/integrations/systemError.d.ts", + "../../../node_modules/@sentry/node-core/build/types/integrations/childProcess.d.ts", + "../../../node_modules/@sentry/node-core/build/types/integrations/winston.d.ts", + "../../../node_modules/@sentry/node-core/build/types/integrations/pino.d.ts", + "../../../node_modules/@sentry/node-core/build/types/sdk/api.d.ts", + "../../../node_modules/@sentry/node-core/build/types/utils/module.d.ts", + "../../../node_modules/@sentry/node-core/build/types/utils/addOriginToSpan.d.ts", + "../../../node_modules/@sentry/node-core/build/types/utils/getRequestUrl.d.ts", + "../../../node_modules/@sentry/node-core/build/types/sdk/esmLoader.d.ts", + "../../../node_modules/@sentry/node-core/build/types/utils/detection.d.ts", + "../../../node_modules/@sentry/node-core/build/types/utils/createMissingInstrumentationContext.d.ts", + "../../../node_modules/@sentry/node-core/build/types/cron/cron.d.ts", + "../../../node_modules/@sentry/node-core/build/types/cron/node-cron.d.ts", + "../../../node_modules/@sentry/node-core/build/types/cron/node-schedule.d.ts", + "../../../node_modules/@sentry/node-core/build/types/cron/index.d.ts", + "../../../node_modules/@sentry/node-core/build/types/nodeVersion.d.ts", + "../../../node_modules/@sentry/node-core/build/types/common-exports.d.ts", "../../../node_modules/@sentry/node-core/build/types/index.d.ts", "../../../node_modules/@sentry/node/build/types/types.d.ts", "../../../node_modules/@sentry/node/build/types/integrations/http.d.ts", @@ -1225,6 +1262,9 @@ "../../../node_modules/@opentelemetry/instrumentation-mysql2/build/src/instrumentation.d.ts", "../../../node_modules/@opentelemetry/instrumentation-mysql2/build/src/index.d.ts", "../../../node_modules/@sentry/node/build/types/integrations/tracing/mysql2.d.ts", + "../../../node_modules/@opentelemetry/instrumentation-ioredis/build/src/types.d.ts", + "../../../node_modules/@opentelemetry/instrumentation-ioredis/build/src/instrumentation.d.ts", + "../../../node_modules/@opentelemetry/instrumentation-ioredis/build/src/index.d.ts", "../../../node_modules/@sentry/node/build/types/integrations/tracing/redis.d.ts", "../../../node_modules/pg-types/index.d.ts", "../../../node_modules/pg-protocol/dist/messages.d.ts", @@ -1240,6 +1280,32 @@ "../../../node_modules/@opentelemetry/instrumentation-pg/build/src/index.d.ts", "../../../node_modules/@sentry/node/build/types/integrations/tracing/postgres.d.ts", "../../../node_modules/@sentry/node/build/types/integrations/tracing/postgresjs.d.ts", + "../../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/types/AnyValue.d.ts", + "../../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/types/LogRecord.d.ts", + "../../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/types/Logger.d.ts", + "../../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/types/LoggerOptions.d.ts", + "../../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/types/LoggerProvider.d.ts", + "../../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/NoopLogger.d.ts", + "../../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/NoopLoggerProvider.d.ts", + "../../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/ProxyLogger.d.ts", + "../../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/ProxyLoggerProvider.d.ts", + "../../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/api/logs.d.ts", + "../../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/node_modules/@opentelemetry/api-logs/build/src/index.d.ts", + "../../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/types.d.ts", + "../../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/types_internal.d.ts", + "../../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/autoLoader.d.ts", + "../../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/shimmer.d.ts", + "../../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/instrumentation.d.ts", + "../../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/platform/node/instrumentation.d.ts", + "../../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/platform/node/normalize.d.ts", + "../../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/platform/node/index.d.ts", + "../../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/platform/index.d.ts", + "../../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/instrumentationNodeModuleDefinition.d.ts", + "../../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/instrumentationNodeModuleFile.d.ts", + "../../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/utils.d.ts", + "../../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/semconvStability.d.ts", + "../../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/src/index.d.ts", + "../../../node_modules/@prisma/instrumentation/dist/index.d.ts", "../../../node_modules/@sentry/node/build/types/integrations/tracing/prisma.d.ts", "../../../node_modules/@opentelemetry/instrumentation-hapi/build/src/instrumentation.d.ts", "../../../node_modules/@opentelemetry/instrumentation-hapi/build/src/enums/AttributeNames.d.ts", @@ -1282,11 +1348,11 @@ "../../../node_modules/@sentry/node/build/types/integrations/tracing/vercelai/instrumentation.d.ts", "../../../node_modules/@sentry/node/build/types/integrations/tracing/vercelai/types.d.ts", "../../../node_modules/@sentry/node/build/types/integrations/tracing/vercelai/index.d.ts", - "../../../node_modules/@sentry/node/build/types/integrations/tracing/openai/instrumentation.d.ts", "../../../node_modules/@sentry/node/build/types/integrations/tracing/openai/index.d.ts", "../../../node_modules/@sentry/node/build/types/integrations/tracing/anthropic-ai/index.d.ts", "../../../node_modules/@sentry/node/build/types/integrations/tracing/google-genai/index.d.ts", "../../../node_modules/@sentry/node/build/types/integrations/tracing/langchain/index.d.ts", + "../../../node_modules/@sentry/node/build/types/integrations/tracing/langgraph/index.d.ts", "../../../node_modules/@sentry/node/build/types/integrations/featureFlagShims/launchDarkly.d.ts", "../../../node_modules/@sentry/node/build/types/integrations/featureFlagShims/openFeature.d.ts", "../../../node_modules/@sentry/node/build/types/integrations/featureFlagShims/statsig.d.ts", @@ -1304,73 +1370,20 @@ "../../../node_modules/@sentry/node/build/types/index.d.ts", "../../../node_modules/@sentry/nextjs/build/types/common/pages-router-instrumentation/wrapApiHandlerWithSentry.d.ts", "../../../node_modules/@sentry/nextjs/build/types/server/index.d.ts", - "../../../node_modules/@sentry/bundler-plugin-core/node_modules/magic-string/dist/magic-string.es.d.mts", - "../../../node_modules/rollup/dist/rollup.d.ts", - "../../../node_modules/acorn/dist/acorn.d.mts", - "../../../node_modules/@types/eslint-scope/index.d.ts", - "../../../node_modules/schema-utils/declarations/ValidationError.d.ts", - "../../../node_modules/fast-uri/types/index.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/compile/codegen/code.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/compile/codegen/scope.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/compile/codegen/index.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/compile/rules.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/compile/util.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/compile/validate/subschema.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/compile/errors.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/compile/validate/index.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/compile/validate/dataType.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/applicator/additionalItems.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/applicator/contains.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/applicator/propertyNames.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/applicator/not.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/applicator/anyOf.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/applicator/oneOf.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/applicator/if.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/applicator/index.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/validation/limitNumber.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/validation/multipleOf.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/validation/pattern.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/validation/required.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/validation/uniqueItems.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/validation/const.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/validation/enum.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/validation/index.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/format/format.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/validation/dependentRequired.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/discriminator/types.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/discriminator/index.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/vocabularies/errors.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/types/json-schema.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/types/jtd-schema.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/runtime/validation_error.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/compile/ref_error.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/core.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/compile/resolve.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/compile/index.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/types/index.d.ts", - "../../../node_modules/schema-utils/node_modules/ajv/dist/ajv.d.ts", - "../../../node_modules/schema-utils/declarations/validate.d.ts", - "../../../node_modules/schema-utils/declarations/index.d.ts", - "../../../node_modules/tapable/tapable.d.ts", - "../../../node_modules/webpack/types.d.ts", - "../../../node_modules/esbuild/lib/main.d.ts", - "../../../node_modules/webpack-virtual-modules/lib/index.d.ts", - "../../../node_modules/unplugin/dist/index.d.ts", + "../../../node_modules/magic-string/dist/magic-string.es.d.mts", + "../../../node_modules/@sentry/bundler-plugin-core/dist/types/utils.d.ts", + "../../../node_modules/@sentry/bundler-plugin-core/dist/types/glob.d.ts", "../../../node_modules/@sentry/bundler-plugin-core/dist/types/logger.d.ts", "../../../node_modules/@sentry/bundler-plugin-core/dist/types/types.d.ts", - "../../../node_modules/@sentry/bundler-plugin-core/dist/types/utils.d.ts", "../../../node_modules/@sentry/bundler-plugin-core/dist/types/options-mapping.d.ts", "../../../node_modules/@sentry/bundler-plugin-core/dist/types/build-plugin-manager.d.ts", + "../../../node_modules/@sentry/bundler-plugin-core/dist/types/debug-id-upload.d.ts", "../../../node_modules/@sentry/bundler-plugin-core/dist/types/index.d.ts", "../../../node_modules/@sentry/webpack-plugin/dist/types/webpack4and5.d.ts", "../../../node_modules/@sentry/webpack-plugin/dist/types/index.d.ts", "../../../node_modules/@sentry/nextjs/build/types/config/types.d.ts", - "../../../node_modules/@sentry/nextjs/build/types/config/withSentryConfig.d.ts", + "../../../node_modules/@sentry/nextjs/build/types/config/withSentryConfig/constants.d.ts", + "../../../node_modules/@sentry/nextjs/build/types/config/withSentryConfig/index.d.ts", "../../../node_modules/@sentry/nextjs/build/types/config/index.d.ts", "../../../node_modules/@sentry/nextjs/build/types/index.types.d.ts", "../../../node_modules/next-plausible/dist/lib/usePlausible.d.ts", @@ -1378,9 +1391,16 @@ "../../../node_modules/next-plausible/dist/lib/withPlausibleProxy.d.ts", "../../../node_modules/next-plausible/dist/lib/PlausibleProvider.d.ts", "../../../node_modules/next-plausible/dist/index.d.ts", + "../next.config.js", + "../../../tools/tailwind/postcss-config.js", + "../postcss.config.js", + "../../../node_modules/@t3-oss/env-core/dist/standard.d.ts", "../../../node_modules/@t3-oss/env-core/dist/index.d.ts", "../../../node_modules/@t3-oss/env-nextjs/dist/index.d.ts", + "../../../node_modules/zod/v4/core/json-schema.d.cts", "../../../node_modules/zod/v4/core/standard-schema.d.cts", + "../../../node_modules/zod/v4/core/registries.d.cts", + "../../../node_modules/zod/v4/core/to-json-schema.d.cts", "../../../node_modules/zod/v4/core/util.d.cts", "../../../node_modules/zod/v4/core/versions.d.cts", "../../../node_modules/zod/v4/core/schemas.d.cts", @@ -1406,6 +1426,7 @@ "../../../node_modules/zod/v4/locales/fr-CA.d.cts", "../../../node_modules/zod/v4/locales/he.d.cts", "../../../node_modules/zod/v4/locales/hu.d.cts", + "../../../node_modules/zod/v4/locales/hy.d.cts", "../../../node_modules/zod/v4/locales/id.d.cts", "../../../node_modules/zod/v4/locales/is.d.cts", "../../../node_modules/zod/v4/locales/it.d.cts", @@ -1432,70 +1453,1099 @@ "../../../node_modules/zod/v4/locales/ua.d.cts", "../../../node_modules/zod/v4/locales/uk.d.cts", "../../../node_modules/zod/v4/locales/ur.d.cts", + "../../../node_modules/zod/v4/locales/uz.d.cts", "../../../node_modules/zod/v4/locales/vi.d.cts", "../../../node_modules/zod/v4/locales/zh-CN.d.cts", "../../../node_modules/zod/v4/locales/zh-TW.d.cts", "../../../node_modules/zod/v4/locales/yo.d.cts", "../../../node_modules/zod/v4/locales/index.d.cts", - "../../../node_modules/zod/v4/core/registries.d.cts", "../../../node_modules/zod/v4/core/doc.d.cts", "../../../node_modules/zod/v4/core/api.d.cts", - "../../../node_modules/zod/v4/core/json-schema.d.cts", - "../../../node_modules/zod/v4/core/to-json-schema.d.cts", + "../../../node_modules/zod/v4/core/json-schema-processors.d.cts", + "../../../node_modules/zod/v4/core/json-schema-generator.d.cts", "../../../node_modules/zod/v4/core/index.d.cts", "../../../node_modules/zod/v4/classic/errors.d.cts", "../../../node_modules/zod/v4/classic/parse.d.cts", "../../../node_modules/zod/v4/classic/schemas.d.cts", "../../../node_modules/zod/v4/classic/checks.d.cts", "../../../node_modules/zod/v4/classic/compat.d.cts", + "../../../node_modules/zod/v4/classic/from-json-schema.d.cts", "../../../node_modules/zod/v4/classic/iso.d.cts", "../../../node_modules/zod/v4/classic/coerce.d.cts", "../../../node_modules/zod/v4/classic/external.d.cts", "../../../node_modules/zod/v4/classic/index.d.cts", "../../../node_modules/zod/v4/index.d.cts", - "../src/env.js", - "../next.config.js", - "../../../tools/tailwind/postcss-config.js", - "../postcss.config.js", - "../src/lib/middleware/ban-sus-ips.ts", + "../src/env.ts", + "../src/instrumentation-client.ts", + "../src/sentry.server.config.ts", + "../src/instrumentation.ts", + "../src/lib/proxy/ban-sus-ips.ts", "../../../node_modules/@convex-dev/auth/dist/nextjs/server/routeMatcher.d.ts", "../../../node_modules/@convex-dev/auth/dist/nextjs/server/index.d.ts", - "../src/middleware.ts", + "../src/proxy.ts", "../../../node_modules/next/dist/compiled/@next/font/dist/types.d.ts", "../../../node_modules/next/dist/compiled/@next/font/dist/google/index.d.ts", "../../../node_modules/next/font/google/index.d.ts", "../src/components/layout/footer/index.tsx", + "../../../node_modules/lucide-react/dist/lucide-react.d.ts", "../../../node_modules/clsx/clsx.d.mts", "../../../node_modules/class-variance-authority/dist/types.d.ts", "../../../node_modules/class-variance-authority/dist/index.d.ts", "../../../node_modules/tailwind-merge/dist/types.d.ts", + "../../../node_modules/@radix-ui/react-accessible-icon/dist/index.d.mts", "../../../node_modules/@radix-ui/react-context/dist/index.d.mts", "../../../node_modules/@radix-ui/react-primitive/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-avatar/dist/index.d.mts", - "../../../packages/ui/src/avatar.tsx", - "../../../node_modules/lucide-react/dist/lucide-react.d.ts", - "../../../packages/ui/src/based-avatar.tsx", - "../../../node_modules/@radix-ui/react-progress/dist/index.d.mts", - "../../../packages/ui/src/based-progress.tsx", - "../../../node_modules/@radix-ui/react-slot/dist/index.d.mts", - "../../../packages/ui/src/button.tsx", - "../../../packages/ui/src/card.tsx", - "../../../node_modules/@radix-ui/react-checkbox/dist/index.d.mts", - "../../../packages/ui/src/checkbox.tsx", + "../../../node_modules/@radix-ui/react-collapsible/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-accordion/dist/index.d.mts", "../../../node_modules/@radix-ui/react-dismissable-layer/dist/index.d.mts", "../../../node_modules/@radix-ui/react-focus-scope/dist/index.d.mts", "../../../node_modules/@radix-ui/react-portal/dist/index.d.mts", "../../../node_modules/@radix-ui/react-dialog/dist/index.d.mts", - "../../../node_modules/vaul/dist/index.d.mts", - "../../../packages/ui/src/drawer.tsx", + "../../../node_modules/@radix-ui/react-alert-dialog/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-aspect-ratio/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-avatar/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-checkbox/dist/index.d.mts", "../../../node_modules/@radix-ui/react-arrow/dist/index.d.mts", "../../../node_modules/@radix-ui/rect/dist/index.d.mts", "../../../node_modules/@radix-ui/react-popper/dist/index.d.mts", "../../../node_modules/@radix-ui/react-roving-focus/dist/index.d.mts", "../../../node_modules/@radix-ui/react-menu/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-context-menu/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-direction/dist/index.d.mts", "../../../node_modules/@radix-ui/react-dropdown-menu/dist/index.d.mts", - "../../../packages/ui/src/dropdown-menu.tsx", "../../../node_modules/@radix-ui/react-label/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-form/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-hover-card/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-menubar/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-visually-hidden/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-navigation-menu/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-one-time-password-field/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-password-toggle-field/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-popover/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-progress/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-radio-group/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-scroll-area/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-select/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-separator/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-slider/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-slot/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-switch/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-tabs/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-toast/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-toggle/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-toggle-group/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-toolbar/dist/index.d.mts", + "../../../node_modules/@radix-ui/react-tooltip/dist/index.d.mts", + "../../../node_modules/radix-ui/dist/index.d.mts", + "../../../packages/ui/src/accordion.tsx", + "../../../packages/ui/src/alert.tsx", + "../../../packages/ui/src/alert-dialog.tsx", + "../../../packages/ui/src/aspect-ratio.tsx", + "../../../packages/ui/src/avatar.tsx", + "../../../packages/ui/src/badge.tsx", + "../../../packages/ui/src/based-avatar.tsx", + "../../../packages/ui/src/based-progress.tsx", + "../../../packages/ui/src/breadcrumb.tsx", + "../../../packages/ui/src/button.tsx", + "../../../packages/ui/src/button-group.tsx", + "../../../node_modules/@date-fns/tz/constants/index.d.ts", + "../../../node_modules/@date-fns/tz/date/index.d.ts", + "../../../node_modules/@date-fns/tz/date/mini.d.ts", + "../../../node_modules/@date-fns/tz/tz/index.d.ts", + "../../../node_modules/@date-fns/tz/tzOffset/index.d.ts", + "../../../node_modules/@date-fns/tz/tzScan/index.d.ts", + "../../../node_modules/@date-fns/tz/tzName/index.d.ts", + "../../../node_modules/@date-fns/tz/index.d.ts", + "../../../node_modules/date-fns/constants.d.ts", + "../../../node_modules/date-fns/locale/types.d.ts", + "../../../node_modules/date-fns/fp/types.d.ts", + "../../../node_modules/date-fns/types.d.ts", + "../../../node_modules/date-fns/add.d.ts", + "../../../node_modules/date-fns/addBusinessDays.d.ts", + "../../../node_modules/date-fns/addDays.d.ts", + "../../../node_modules/date-fns/addHours.d.ts", + "../../../node_modules/date-fns/addISOWeekYears.d.ts", + "../../../node_modules/date-fns/addMilliseconds.d.ts", + "../../../node_modules/date-fns/addMinutes.d.ts", + "../../../node_modules/date-fns/addMonths.d.ts", + "../../../node_modules/date-fns/addQuarters.d.ts", + "../../../node_modules/date-fns/addSeconds.d.ts", + "../../../node_modules/date-fns/addWeeks.d.ts", + "../../../node_modules/date-fns/addYears.d.ts", + "../../../node_modules/date-fns/areIntervalsOverlapping.d.ts", + "../../../node_modules/date-fns/clamp.d.ts", + "../../../node_modules/date-fns/closestIndexTo.d.ts", + "../../../node_modules/date-fns/closestTo.d.ts", + "../../../node_modules/date-fns/compareAsc.d.ts", + "../../../node_modules/date-fns/compareDesc.d.ts", + "../../../node_modules/date-fns/constructFrom.d.ts", + "../../../node_modules/date-fns/constructNow.d.ts", + "../../../node_modules/date-fns/daysToWeeks.d.ts", + "../../../node_modules/date-fns/differenceInBusinessDays.d.ts", + "../../../node_modules/date-fns/differenceInCalendarDays.d.ts", + "../../../node_modules/date-fns/differenceInCalendarISOWeekYears.d.ts", + "../../../node_modules/date-fns/differenceInCalendarISOWeeks.d.ts", + "../../../node_modules/date-fns/differenceInCalendarMonths.d.ts", + "../../../node_modules/date-fns/differenceInCalendarQuarters.d.ts", + "../../../node_modules/date-fns/differenceInCalendarWeeks.d.ts", + "../../../node_modules/date-fns/differenceInCalendarYears.d.ts", + "../../../node_modules/date-fns/differenceInDays.d.ts", + "../../../node_modules/date-fns/differenceInHours.d.ts", + "../../../node_modules/date-fns/differenceInISOWeekYears.d.ts", + "../../../node_modules/date-fns/differenceInMilliseconds.d.ts", + "../../../node_modules/date-fns/differenceInMinutes.d.ts", + "../../../node_modules/date-fns/differenceInMonths.d.ts", + "../../../node_modules/date-fns/differenceInQuarters.d.ts", + "../../../node_modules/date-fns/differenceInSeconds.d.ts", + "../../../node_modules/date-fns/differenceInWeeks.d.ts", + "../../../node_modules/date-fns/differenceInYears.d.ts", + "../../../node_modules/date-fns/eachDayOfInterval.d.ts", + "../../../node_modules/date-fns/eachHourOfInterval.d.ts", + "../../../node_modules/date-fns/eachMinuteOfInterval.d.ts", + "../../../node_modules/date-fns/eachMonthOfInterval.d.ts", + "../../../node_modules/date-fns/eachQuarterOfInterval.d.ts", + "../../../node_modules/date-fns/eachWeekOfInterval.d.ts", + "../../../node_modules/date-fns/eachWeekendOfInterval.d.ts", + "../../../node_modules/date-fns/eachWeekendOfMonth.d.ts", + "../../../node_modules/date-fns/eachWeekendOfYear.d.ts", + "../../../node_modules/date-fns/eachYearOfInterval.d.ts", + "../../../node_modules/date-fns/endOfDay.d.ts", + "../../../node_modules/date-fns/endOfDecade.d.ts", + "../../../node_modules/date-fns/endOfHour.d.ts", + "../../../node_modules/date-fns/endOfISOWeek.d.ts", + "../../../node_modules/date-fns/endOfISOWeekYear.d.ts", + "../../../node_modules/date-fns/endOfMinute.d.ts", + "../../../node_modules/date-fns/endOfMonth.d.ts", + "../../../node_modules/date-fns/endOfQuarter.d.ts", + "../../../node_modules/date-fns/endOfSecond.d.ts", + "../../../node_modules/date-fns/endOfToday.d.ts", + "../../../node_modules/date-fns/endOfTomorrow.d.ts", + "../../../node_modules/date-fns/endOfWeek.d.ts", + "../../../node_modules/date-fns/endOfYear.d.ts", + "../../../node_modules/date-fns/endOfYesterday.d.ts", + "../../../node_modules/date-fns/_lib/format/formatters.d.ts", + "../../../node_modules/date-fns/_lib/format/longFormatters.d.ts", + "../../../node_modules/date-fns/format.d.ts", + "../../../node_modules/date-fns/formatDistance.d.ts", + "../../../node_modules/date-fns/formatDistanceStrict.d.ts", + "../../../node_modules/date-fns/formatDistanceToNow.d.ts", + "../../../node_modules/date-fns/formatDistanceToNowStrict.d.ts", + "../../../node_modules/date-fns/formatDuration.d.ts", + "../../../node_modules/date-fns/formatISO.d.ts", + "../../../node_modules/date-fns/formatISO9075.d.ts", + "../../../node_modules/date-fns/formatISODuration.d.ts", + "../../../node_modules/date-fns/formatRFC3339.d.ts", + "../../../node_modules/date-fns/formatRFC7231.d.ts", + "../../../node_modules/date-fns/formatRelative.d.ts", + "../../../node_modules/date-fns/fromUnixTime.d.ts", + "../../../node_modules/date-fns/getDate.d.ts", + "../../../node_modules/date-fns/getDay.d.ts", + "../../../node_modules/date-fns/getDayOfYear.d.ts", + "../../../node_modules/date-fns/getDaysInMonth.d.ts", + "../../../node_modules/date-fns/getDaysInYear.d.ts", + "../../../node_modules/date-fns/getDecade.d.ts", + "../../../node_modules/date-fns/_lib/defaultOptions.d.ts", + "../../../node_modules/date-fns/getDefaultOptions.d.ts", + "../../../node_modules/date-fns/getHours.d.ts", + "../../../node_modules/date-fns/getISODay.d.ts", + "../../../node_modules/date-fns/getISOWeek.d.ts", + "../../../node_modules/date-fns/getISOWeekYear.d.ts", + "../../../node_modules/date-fns/getISOWeeksInYear.d.ts", + "../../../node_modules/date-fns/getMilliseconds.d.ts", + "../../../node_modules/date-fns/getMinutes.d.ts", + "../../../node_modules/date-fns/getMonth.d.ts", + "../../../node_modules/date-fns/getOverlappingDaysInIntervals.d.ts", + "../../../node_modules/date-fns/getQuarter.d.ts", + "../../../node_modules/date-fns/getSeconds.d.ts", + "../../../node_modules/date-fns/getTime.d.ts", + "../../../node_modules/date-fns/getUnixTime.d.ts", + "../../../node_modules/date-fns/getWeek.d.ts", + "../../../node_modules/date-fns/getWeekOfMonth.d.ts", + "../../../node_modules/date-fns/getWeekYear.d.ts", + "../../../node_modules/date-fns/getWeeksInMonth.d.ts", + "../../../node_modules/date-fns/getYear.d.ts", + "../../../node_modules/date-fns/hoursToMilliseconds.d.ts", + "../../../node_modules/date-fns/hoursToMinutes.d.ts", + "../../../node_modules/date-fns/hoursToSeconds.d.ts", + "../../../node_modules/date-fns/interval.d.ts", + "../../../node_modules/date-fns/intervalToDuration.d.ts", + "../../../node_modules/date-fns/intlFormat.d.ts", + "../../../node_modules/date-fns/intlFormatDistance.d.ts", + "../../../node_modules/date-fns/isAfter.d.ts", + "../../../node_modules/date-fns/isBefore.d.ts", + "../../../node_modules/date-fns/isDate.d.ts", + "../../../node_modules/date-fns/isEqual.d.ts", + "../../../node_modules/date-fns/isExists.d.ts", + "../../../node_modules/date-fns/isFirstDayOfMonth.d.ts", + "../../../node_modules/date-fns/isFriday.d.ts", + "../../../node_modules/date-fns/isFuture.d.ts", + "../../../node_modules/date-fns/isLastDayOfMonth.d.ts", + "../../../node_modules/date-fns/isLeapYear.d.ts", + "../../../node_modules/date-fns/isMatch.d.ts", + "../../../node_modules/date-fns/isMonday.d.ts", + "../../../node_modules/date-fns/isPast.d.ts", + "../../../node_modules/date-fns/isSameDay.d.ts", + "../../../node_modules/date-fns/isSameHour.d.ts", + "../../../node_modules/date-fns/isSameISOWeek.d.ts", + "../../../node_modules/date-fns/isSameISOWeekYear.d.ts", + "../../../node_modules/date-fns/isSameMinute.d.ts", + "../../../node_modules/date-fns/isSameMonth.d.ts", + "../../../node_modules/date-fns/isSameQuarter.d.ts", + "../../../node_modules/date-fns/isSameSecond.d.ts", + "../../../node_modules/date-fns/isSameWeek.d.ts", + "../../../node_modules/date-fns/isSameYear.d.ts", + "../../../node_modules/date-fns/isSaturday.d.ts", + "../../../node_modules/date-fns/isSunday.d.ts", + "../../../node_modules/date-fns/isThisHour.d.ts", + "../../../node_modules/date-fns/isThisISOWeek.d.ts", + "../../../node_modules/date-fns/isThisMinute.d.ts", + "../../../node_modules/date-fns/isThisMonth.d.ts", + "../../../node_modules/date-fns/isThisQuarter.d.ts", + "../../../node_modules/date-fns/isThisSecond.d.ts", + "../../../node_modules/date-fns/isThisWeek.d.ts", + "../../../node_modules/date-fns/isThisYear.d.ts", + "../../../node_modules/date-fns/isThursday.d.ts", + "../../../node_modules/date-fns/isToday.d.ts", + "../../../node_modules/date-fns/isTomorrow.d.ts", + "../../../node_modules/date-fns/isTuesday.d.ts", + "../../../node_modules/date-fns/isValid.d.ts", + "../../../node_modules/date-fns/isWednesday.d.ts", + "../../../node_modules/date-fns/isWeekend.d.ts", + "../../../node_modules/date-fns/isWithinInterval.d.ts", + "../../../node_modules/date-fns/isYesterday.d.ts", + "../../../node_modules/date-fns/lastDayOfDecade.d.ts", + "../../../node_modules/date-fns/lastDayOfISOWeek.d.ts", + "../../../node_modules/date-fns/lastDayOfISOWeekYear.d.ts", + "../../../node_modules/date-fns/lastDayOfMonth.d.ts", + "../../../node_modules/date-fns/lastDayOfQuarter.d.ts", + "../../../node_modules/date-fns/lastDayOfWeek.d.ts", + "../../../node_modules/date-fns/lastDayOfYear.d.ts", + "../../../node_modules/date-fns/_lib/format/lightFormatters.d.ts", + "../../../node_modules/date-fns/lightFormat.d.ts", + "../../../node_modules/date-fns/max.d.ts", + "../../../node_modules/date-fns/milliseconds.d.ts", + "../../../node_modules/date-fns/millisecondsToHours.d.ts", + "../../../node_modules/date-fns/millisecondsToMinutes.d.ts", + "../../../node_modules/date-fns/millisecondsToSeconds.d.ts", + "../../../node_modules/date-fns/min.d.ts", + "../../../node_modules/date-fns/minutesToHours.d.ts", + "../../../node_modules/date-fns/minutesToMilliseconds.d.ts", + "../../../node_modules/date-fns/minutesToSeconds.d.ts", + "../../../node_modules/date-fns/monthsToQuarters.d.ts", + "../../../node_modules/date-fns/monthsToYears.d.ts", + "../../../node_modules/date-fns/nextDay.d.ts", + "../../../node_modules/date-fns/nextFriday.d.ts", + "../../../node_modules/date-fns/nextMonday.d.ts", + "../../../node_modules/date-fns/nextSaturday.d.ts", + "../../../node_modules/date-fns/nextSunday.d.ts", + "../../../node_modules/date-fns/nextThursday.d.ts", + "../../../node_modules/date-fns/nextTuesday.d.ts", + "../../../node_modules/date-fns/nextWednesday.d.ts", + "../../../node_modules/date-fns/parse/_lib/types.d.ts", + "../../../node_modules/date-fns/parse/_lib/Setter.d.ts", + "../../../node_modules/date-fns/parse/_lib/Parser.d.ts", + "../../../node_modules/date-fns/parse/_lib/parsers.d.ts", + "../../../node_modules/date-fns/parse.d.ts", + "../../../node_modules/date-fns/parseISO.d.ts", + "../../../node_modules/date-fns/parseJSON.d.ts", + "../../../node_modules/date-fns/previousDay.d.ts", + "../../../node_modules/date-fns/previousFriday.d.ts", + "../../../node_modules/date-fns/previousMonday.d.ts", + "../../../node_modules/date-fns/previousSaturday.d.ts", + "../../../node_modules/date-fns/previousSunday.d.ts", + "../../../node_modules/date-fns/previousThursday.d.ts", + "../../../node_modules/date-fns/previousTuesday.d.ts", + "../../../node_modules/date-fns/previousWednesday.d.ts", + "../../../node_modules/date-fns/quartersToMonths.d.ts", + "../../../node_modules/date-fns/quartersToYears.d.ts", + "../../../node_modules/date-fns/roundToNearestHours.d.ts", + "../../../node_modules/date-fns/roundToNearestMinutes.d.ts", + "../../../node_modules/date-fns/secondsToHours.d.ts", + "../../../node_modules/date-fns/secondsToMilliseconds.d.ts", + "../../../node_modules/date-fns/secondsToMinutes.d.ts", + "../../../node_modules/date-fns/set.d.ts", + "../../../node_modules/date-fns/setDate.d.ts", + "../../../node_modules/date-fns/setDay.d.ts", + "../../../node_modules/date-fns/setDayOfYear.d.ts", + "../../../node_modules/date-fns/setDefaultOptions.d.ts", + "../../../node_modules/date-fns/setHours.d.ts", + "../../../node_modules/date-fns/setISODay.d.ts", + "../../../node_modules/date-fns/setISOWeek.d.ts", + "../../../node_modules/date-fns/setISOWeekYear.d.ts", + "../../../node_modules/date-fns/setMilliseconds.d.ts", + "../../../node_modules/date-fns/setMinutes.d.ts", + "../../../node_modules/date-fns/setMonth.d.ts", + "../../../node_modules/date-fns/setQuarter.d.ts", + "../../../node_modules/date-fns/setSeconds.d.ts", + "../../../node_modules/date-fns/setWeek.d.ts", + "../../../node_modules/date-fns/setWeekYear.d.ts", + "../../../node_modules/date-fns/setYear.d.ts", + "../../../node_modules/date-fns/startOfDay.d.ts", + "../../../node_modules/date-fns/startOfDecade.d.ts", + "../../../node_modules/date-fns/startOfHour.d.ts", + "../../../node_modules/date-fns/startOfISOWeek.d.ts", + "../../../node_modules/date-fns/startOfISOWeekYear.d.ts", + "../../../node_modules/date-fns/startOfMinute.d.ts", + "../../../node_modules/date-fns/startOfMonth.d.ts", + "../../../node_modules/date-fns/startOfQuarter.d.ts", + "../../../node_modules/date-fns/startOfSecond.d.ts", + "../../../node_modules/date-fns/startOfToday.d.ts", + "../../../node_modules/date-fns/startOfTomorrow.d.ts", + "../../../node_modules/date-fns/startOfWeek.d.ts", + "../../../node_modules/date-fns/startOfWeekYear.d.ts", + "../../../node_modules/date-fns/startOfYear.d.ts", + "../../../node_modules/date-fns/startOfYesterday.d.ts", + "../../../node_modules/date-fns/sub.d.ts", + "../../../node_modules/date-fns/subBusinessDays.d.ts", + "../../../node_modules/date-fns/subDays.d.ts", + "../../../node_modules/date-fns/subHours.d.ts", + "../../../node_modules/date-fns/subISOWeekYears.d.ts", + "../../../node_modules/date-fns/subMilliseconds.d.ts", + "../../../node_modules/date-fns/subMinutes.d.ts", + "../../../node_modules/date-fns/subMonths.d.ts", + "../../../node_modules/date-fns/subQuarters.d.ts", + "../../../node_modules/date-fns/subSeconds.d.ts", + "../../../node_modules/date-fns/subWeeks.d.ts", + "../../../node_modules/date-fns/subYears.d.ts", + "../../../node_modules/date-fns/toDate.d.ts", + "../../../node_modules/date-fns/transpose.d.ts", + "../../../node_modules/date-fns/weeksToDays.d.ts", + "../../../node_modules/date-fns/yearsToDays.d.ts", + "../../../node_modules/date-fns/yearsToMonths.d.ts", + "../../../node_modules/date-fns/yearsToQuarters.d.ts", + "../../../node_modules/date-fns/index.d.ts", + "../../../node_modules/date-fns/locale/af.d.ts", + "../../../node_modules/date-fns/locale/ar.d.ts", + "../../../node_modules/date-fns/locale/ar-DZ.d.ts", + "../../../node_modules/date-fns/locale/ar-EG.d.ts", + "../../../node_modules/date-fns/locale/ar-MA.d.ts", + "../../../node_modules/date-fns/locale/ar-SA.d.ts", + "../../../node_modules/date-fns/locale/ar-TN.d.ts", + "../../../node_modules/date-fns/locale/az.d.ts", + "../../../node_modules/date-fns/locale/be.d.ts", + "../../../node_modules/date-fns/locale/be-tarask.d.ts", + "../../../node_modules/date-fns/locale/bg.d.ts", + "../../../node_modules/date-fns/locale/bn.d.ts", + "../../../node_modules/date-fns/locale/bs.d.ts", + "../../../node_modules/date-fns/locale/ca.d.ts", + "../../../node_modules/date-fns/locale/ckb.d.ts", + "../../../node_modules/date-fns/locale/cs.d.ts", + "../../../node_modules/date-fns/locale/cy.d.ts", + "../../../node_modules/date-fns/locale/da.d.ts", + "../../../node_modules/date-fns/locale/de.d.ts", + "../../../node_modules/date-fns/locale/de-AT.d.ts", + "../../../node_modules/date-fns/locale/el.d.ts", + "../../../node_modules/date-fns/locale/en-AU.d.ts", + "../../../node_modules/date-fns/locale/en-CA.d.ts", + "../../../node_modules/date-fns/locale/en-GB.d.ts", + "../../../node_modules/date-fns/locale/en-IE.d.ts", + "../../../node_modules/date-fns/locale/en-IN.d.ts", + "../../../node_modules/date-fns/locale/en-NZ.d.ts", + "../../../node_modules/date-fns/locale/en-US.d.ts", + "../../../node_modules/date-fns/locale/en-ZA.d.ts", + "../../../node_modules/date-fns/locale/eo.d.ts", + "../../../node_modules/date-fns/locale/es.d.ts", + "../../../node_modules/date-fns/locale/et.d.ts", + "../../../node_modules/date-fns/locale/eu.d.ts", + "../../../node_modules/date-fns/locale/fa-IR.d.ts", + "../../../node_modules/date-fns/locale/fi.d.ts", + "../../../node_modules/date-fns/locale/fr.d.ts", + "../../../node_modules/date-fns/locale/fr-CA.d.ts", + "../../../node_modules/date-fns/locale/fr-CH.d.ts", + "../../../node_modules/date-fns/locale/fy.d.ts", + "../../../node_modules/date-fns/locale/gd.d.ts", + "../../../node_modules/date-fns/locale/gl.d.ts", + "../../../node_modules/date-fns/locale/gu.d.ts", + "../../../node_modules/date-fns/locale/he.d.ts", + "../../../node_modules/date-fns/locale/hi.d.ts", + "../../../node_modules/date-fns/locale/hr.d.ts", + "../../../node_modules/date-fns/locale/ht.d.ts", + "../../../node_modules/date-fns/locale/hu.d.ts", + "../../../node_modules/date-fns/locale/hy.d.ts", + "../../../node_modules/date-fns/locale/id.d.ts", + "../../../node_modules/date-fns/locale/is.d.ts", + "../../../node_modules/date-fns/locale/it.d.ts", + "../../../node_modules/date-fns/locale/it-CH.d.ts", + "../../../node_modules/date-fns/locale/ja.d.ts", + "../../../node_modules/date-fns/locale/ja-Hira.d.ts", + "../../../node_modules/date-fns/locale/ka.d.ts", + "../../../node_modules/date-fns/locale/kk.d.ts", + "../../../node_modules/date-fns/locale/km.d.ts", + "../../../node_modules/date-fns/locale/kn.d.ts", + "../../../node_modules/date-fns/locale/ko.d.ts", + "../../../node_modules/date-fns/locale/lb.d.ts", + "../../../node_modules/date-fns/locale/lt.d.ts", + "../../../node_modules/date-fns/locale/lv.d.ts", + "../../../node_modules/date-fns/locale/mk.d.ts", + "../../../node_modules/date-fns/locale/mn.d.ts", + "../../../node_modules/date-fns/locale/ms.d.ts", + "../../../node_modules/date-fns/locale/mt.d.ts", + "../../../node_modules/date-fns/locale/nb.d.ts", + "../../../node_modules/date-fns/locale/nl.d.ts", + "../../../node_modules/date-fns/locale/nl-BE.d.ts", + "../../../node_modules/date-fns/locale/nn.d.ts", + "../../../node_modules/date-fns/locale/oc.d.ts", + "../../../node_modules/date-fns/locale/pl.d.ts", + "../../../node_modules/date-fns/locale/pt.d.ts", + "../../../node_modules/date-fns/locale/pt-BR.d.ts", + "../../../node_modules/date-fns/locale/ro.d.ts", + "../../../node_modules/date-fns/locale/ru.d.ts", + "../../../node_modules/date-fns/locale/se.d.ts", + "../../../node_modules/date-fns/locale/sk.d.ts", + "../../../node_modules/date-fns/locale/sl.d.ts", + "../../../node_modules/date-fns/locale/sq.d.ts", + "../../../node_modules/date-fns/locale/sr.d.ts", + "../../../node_modules/date-fns/locale/sr-Latn.d.ts", + "../../../node_modules/date-fns/locale/sv.d.ts", + "../../../node_modules/date-fns/locale/ta.d.ts", + "../../../node_modules/date-fns/locale/te.d.ts", + "../../../node_modules/date-fns/locale/th.d.ts", + "../../../node_modules/date-fns/locale/tr.d.ts", + "../../../node_modules/date-fns/locale/ug.d.ts", + "../../../node_modules/date-fns/locale/uk.d.ts", + "../../../node_modules/date-fns/locale/uz.d.ts", + "../../../node_modules/date-fns/locale/uz-Cyrl.d.ts", + "../../../node_modules/date-fns/locale/vi.d.ts", + "../../../node_modules/date-fns/locale/zh-CN.d.ts", + "../../../node_modules/date-fns/locale/zh-HK.d.ts", + "../../../node_modules/date-fns/locale/zh-TW.d.ts", + "../../../node_modules/date-fns/locale.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/Button.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/CaptionLabel.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/Chevron.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/MonthCaption.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/Week.d.ts", + "../../../node_modules/react-day-picker/dist/esm/labels/labelDayButton.d.ts", + "../../../node_modules/react-day-picker/dist/esm/labels/labelGrid.d.ts", + "../../../node_modules/react-day-picker/dist/esm/labels/labelGridcell.d.ts", + "../../../node_modules/react-day-picker/dist/esm/labels/labelMonthDropdown.d.ts", + "../../../node_modules/react-day-picker/dist/esm/labels/labelNav.d.ts", + "../../../node_modules/react-day-picker/dist/esm/labels/labelNext.d.ts", + "../../../node_modules/react-day-picker/dist/esm/labels/labelPrevious.d.ts", + "../../../node_modules/react-day-picker/dist/esm/labels/labelWeekday.d.ts", + "../../../node_modules/react-day-picker/dist/esm/labels/labelWeekNumber.d.ts", + "../../../node_modules/react-day-picker/dist/esm/labels/labelWeekNumberHeader.d.ts", + "../../../node_modules/react-day-picker/dist/esm/labels/labelYearDropdown.d.ts", + "../../../node_modules/react-day-picker/dist/esm/labels/index.d.ts", + "../../../node_modules/react-day-picker/dist/esm/UI.d.ts", + "../../../node_modules/react-day-picker/dist/esm/classes/CalendarWeek.d.ts", + "../../../node_modules/react-day-picker/dist/esm/classes/CalendarMonth.d.ts", + "../../../node_modules/react-day-picker/dist/esm/types/props.d.ts", + "../../../node_modules/react-day-picker/dist/esm/types/selection.d.ts", + "../../../node_modules/react-day-picker/dist/esm/useDayPicker.d.ts", + "../../../node_modules/react-day-picker/dist/esm/types/deprecated.d.ts", + "../../../node_modules/react-day-picker/dist/esm/types/index.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/Day.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/DayButton.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/Dropdown.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/DropdownNav.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/Footer.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/Month.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/MonthGrid.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/Months.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/MonthsDropdown.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/Nav.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/NextMonthButton.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/Option.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/PreviousMonthButton.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/Root.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/Select.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/Weekday.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/Weekdays.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/WeekNumber.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/WeekNumberHeader.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/Weeks.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/YearsDropdown.d.ts", + "../../../node_modules/react-day-picker/dist/esm/components/custom-components.d.ts", + "../../../node_modules/react-day-picker/dist/esm/formatters/formatCaption.d.ts", + "../../../node_modules/react-day-picker/dist/esm/formatters/formatDay.d.ts", + "../../../node_modules/react-day-picker/dist/esm/formatters/formatMonthDropdown.d.ts", + "../../../node_modules/react-day-picker/dist/esm/formatters/formatWeekdayName.d.ts", + "../../../node_modules/react-day-picker/dist/esm/formatters/formatWeekNumber.d.ts", + "../../../node_modules/react-day-picker/dist/esm/formatters/formatWeekNumberHeader.d.ts", + "../../../node_modules/react-day-picker/dist/esm/formatters/formatYearDropdown.d.ts", + "../../../node_modules/react-day-picker/dist/esm/formatters/index.d.ts", + "../../../node_modules/react-day-picker/dist/esm/types/shared.d.ts", + "../../../node_modules/react-day-picker/dist/esm/locale/en-US.d.ts", + "../../../node_modules/react-day-picker/dist/esm/classes/DateLib.d.ts", + "../../../node_modules/react-day-picker/dist/esm/classes/CalendarDay.d.ts", + "../../../node_modules/react-day-picker/dist/esm/classes/index.d.ts", + "../../../node_modules/react-day-picker/dist/esm/DayPicker.d.ts", + "../../../node_modules/react-day-picker/dist/esm/helpers/getDefaultClassNames.d.ts", + "../../../node_modules/react-day-picker/dist/esm/helpers/index.d.ts", + "../../../node_modules/react-day-picker/dist/esm/utils/addToRange.d.ts", + "../../../node_modules/react-day-picker/dist/esm/utils/dateMatchModifiers.d.ts", + "../../../node_modules/react-day-picker/dist/esm/utils/rangeContainsDayOfWeek.d.ts", + "../../../node_modules/react-day-picker/dist/esm/utils/rangeContainsModifiers.d.ts", + "../../../node_modules/react-day-picker/dist/esm/utils/rangeIncludesDate.d.ts", + "../../../node_modules/react-day-picker/dist/esm/utils/rangeOverlaps.d.ts", + "../../../node_modules/react-day-picker/dist/esm/utils/typeguards.d.ts", + "../../../node_modules/react-day-picker/dist/esm/utils/index.d.ts", + "../../../node_modules/react-day-picker/dist/esm/index.d.ts", + "../../../packages/ui/src/calendar.tsx", + "../../../packages/ui/src/card.tsx", + "../../../node_modules/embla-carousel/esm/components/Alignment.d.ts", + "../../../node_modules/embla-carousel/esm/components/NodeRects.d.ts", + "../../../node_modules/embla-carousel/esm/components/Axis.d.ts", + "../../../node_modules/embla-carousel/esm/components/SlidesToScroll.d.ts", + "../../../node_modules/embla-carousel/esm/components/Limit.d.ts", + "../../../node_modules/embla-carousel/esm/components/ScrollContain.d.ts", + "../../../node_modules/embla-carousel/esm/components/DragTracker.d.ts", + "../../../node_modules/embla-carousel/esm/components/utils.d.ts", + "../../../node_modules/embla-carousel/esm/components/Animations.d.ts", + "../../../node_modules/embla-carousel/esm/components/Counter.d.ts", + "../../../node_modules/embla-carousel/esm/components/EventHandler.d.ts", + "../../../node_modules/embla-carousel/esm/components/EventStore.d.ts", + "../../../node_modules/embla-carousel/esm/components/PercentOfView.d.ts", + "../../../node_modules/embla-carousel/esm/components/ResizeHandler.d.ts", + "../../../node_modules/embla-carousel/esm/components/Vector1d.d.ts", + "../../../node_modules/embla-carousel/esm/components/ScrollBody.d.ts", + "../../../node_modules/embla-carousel/esm/components/ScrollBounds.d.ts", + "../../../node_modules/embla-carousel/esm/components/ScrollLooper.d.ts", + "../../../node_modules/embla-carousel/esm/components/ScrollProgress.d.ts", + "../../../node_modules/embla-carousel/esm/components/SlideRegistry.d.ts", + "../../../node_modules/embla-carousel/esm/components/ScrollTarget.d.ts", + "../../../node_modules/embla-carousel/esm/components/ScrollTo.d.ts", + "../../../node_modules/embla-carousel/esm/components/SlideFocus.d.ts", + "../../../node_modules/embla-carousel/esm/components/Translate.d.ts", + "../../../node_modules/embla-carousel/esm/components/SlideLooper.d.ts", + "../../../node_modules/embla-carousel/esm/components/SlidesHandler.d.ts", + "../../../node_modules/embla-carousel/esm/components/SlidesInView.d.ts", + "../../../node_modules/embla-carousel/esm/components/Engine.d.ts", + "../../../node_modules/embla-carousel/esm/components/OptionsHandler.d.ts", + "../../../node_modules/embla-carousel/esm/components/Plugins.d.ts", + "../../../node_modules/embla-carousel/esm/components/EmblaCarousel.d.ts", + "../../../node_modules/embla-carousel/esm/components/DragHandler.d.ts", + "../../../node_modules/embla-carousel/esm/components/Options.d.ts", + "../../../node_modules/embla-carousel/esm/index.d.ts", + "../../../node_modules/embla-carousel-react/esm/components/useEmblaCarousel.d.ts", + "../../../node_modules/embla-carousel-react/esm/index.d.ts", + "../../../packages/ui/src/carousel.tsx", + "../../../node_modules/@types/d3-time/index.d.ts", + "../../../node_modules/@types/d3-scale/index.d.ts", + "../../../node_modules/victory-vendor/d3-scale.d.ts", + "../../../node_modules/recharts/types/shape/Dot.d.ts", + "../../../node_modules/recharts/types/component/Text.d.ts", + "../../../node_modules/recharts/types/zIndex/ZIndexLayer.d.ts", + "../../../node_modules/recharts/types/cartesian/getCartesianPosition.d.ts", + "../../../node_modules/recharts/types/component/Label.d.ts", + "../../../node_modules/recharts/types/cartesian/CartesianAxis.d.ts", + "../../../node_modules/recharts/types/util/scale/CustomScaleDefinition.d.ts", + "../../../node_modules/redux/dist/redux.d.ts", + "../../../node_modules/@reduxjs/toolkit/node_modules/immer/dist/immer.d.ts", + "../../../node_modules/reselect/dist/reselect.d.ts", + "../../../node_modules/redux-thunk/dist/redux-thunk.d.ts", + "../../../node_modules/@reduxjs/toolkit/dist/uncheckedindexed.ts", + "../../../node_modules/@reduxjs/toolkit/dist/index.d.mts", + "../../../node_modules/recharts/types/state/cartesianAxisSlice.d.ts", + "../../../node_modules/recharts/types/synchronisation/types.d.ts", + "../../../node_modules/recharts/types/chart/types.d.ts", + "../../../node_modules/recharts/types/component/DefaultTooltipContent.d.ts", + "../../../node_modules/recharts/types/context/brushUpdateContext.d.ts", + "../../../node_modules/recharts/types/state/chartDataSlice.d.ts", + "../../../node_modules/recharts/types/state/types/LineSettings.d.ts", + "../../../node_modules/recharts/types/state/types/ScatterSettings.d.ts", + "../../../node_modules/@types/d3-path/index.d.ts", + "../../../node_modules/@types/d3-shape/index.d.ts", + "../../../node_modules/victory-vendor/d3-shape.d.ts", + "../../../node_modules/recharts/types/shape/Curve.d.ts", + "../../../node_modules/recharts/types/component/LabelList.d.ts", + "../../../node_modules/recharts/types/component/DefaultLegendContent.d.ts", + "../../../node_modules/recharts/types/util/payload/getUniqPayload.d.ts", + "../../../node_modules/recharts/types/util/useElementOffset.d.ts", + "../../../node_modules/recharts/types/component/Legend.d.ts", + "../../../node_modules/recharts/types/state/legendSlice.d.ts", + "../../../node_modules/recharts/types/state/types/StackedGraphicalItem.d.ts", + "../../../node_modules/recharts/types/util/stacks/stackTypes.d.ts", + "../../../node_modules/recharts/types/util/scale/RechartsScale.d.ts", + "../../../node_modules/recharts/types/util/ChartUtils.d.ts", + "../../../node_modules/recharts/types/state/selectors/areaSelectors.d.ts", + "../../../node_modules/recharts/types/cartesian/Area.d.ts", + "../../../node_modules/recharts/types/state/types/AreaSettings.d.ts", + "../../../node_modules/recharts/types/animation/easing.d.ts", + "../../../node_modules/recharts/types/shape/Rectangle.d.ts", + "../../../node_modules/recharts/types/cartesian/Bar.d.ts", + "../../../node_modules/recharts/types/util/BarUtils.d.ts", + "../../../node_modules/recharts/types/state/types/BarSettings.d.ts", + "../../../node_modules/recharts/types/state/types/RadialBarSettings.d.ts", + "../../../node_modules/recharts/types/util/svgPropertiesNoEvents.d.ts", + "../../../node_modules/recharts/types/util/useUniqueId.d.ts", + "../../../node_modules/recharts/types/state/types/PieSettings.d.ts", + "../../../node_modules/recharts/types/state/types/RadarSettings.d.ts", + "../../../node_modules/recharts/types/state/graphicalItemsSlice.d.ts", + "../../../node_modules/recharts/types/state/tooltipSlice.d.ts", + "../../../node_modules/recharts/types/state/optionsSlice.d.ts", + "../../../node_modules/recharts/types/state/layoutSlice.d.ts", + "../../../node_modules/immer/dist/immer.d.ts", + "../../../node_modules/recharts/types/util/IfOverflow.d.ts", + "../../../node_modules/recharts/types/util/resolveDefaultProps.d.ts", + "../../../node_modules/recharts/types/cartesian/ReferenceLine.d.ts", + "../../../node_modules/recharts/types/state/referenceElementsSlice.d.ts", + "../../../node_modules/recharts/types/state/brushSlice.d.ts", + "../../../node_modules/recharts/types/state/rootPropsSlice.d.ts", + "../../../node_modules/recharts/types/state/polarAxisSlice.d.ts", + "../../../node_modules/recharts/types/state/polarOptionsSlice.d.ts", + "../../../node_modules/recharts/types/cartesian/Line.d.ts", + "../../../node_modules/recharts/types/util/Constants.d.ts", + "../../../node_modules/recharts/types/util/ScatterUtils.d.ts", + "../../../node_modules/recharts/types/shape/Symbols.d.ts", + "../../../node_modules/recharts/types/cartesian/Scatter.d.ts", + "../../../node_modules/recharts/types/cartesian/ErrorBar.d.ts", + "../../../node_modules/recharts/types/state/errorBarSlice.d.ts", + "../../../node_modules/recharts/types/state/zIndexSlice.d.ts", + "../../../node_modules/recharts/types/state/eventSettingsSlice.d.ts", + "../../../node_modules/recharts/types/state/renderedTicksSlice.d.ts", + "../../../node_modules/recharts/types/state/store.d.ts", + "../../../node_modules/recharts/types/cartesian/getTicks.d.ts", + "../../../node_modules/recharts/types/cartesian/CartesianGrid.d.ts", + "../../../node_modules/recharts/types/state/selectors/combiners/combineDisplayedStackedData.d.ts", + "../../../node_modules/recharts/types/state/selectors/selectTooltipAxisType.d.ts", + "../../../node_modules/recharts/types/types.d.ts", + "../../../node_modules/recharts/types/hooks.d.ts", + "../../../node_modules/recharts/types/state/selectors/axisSelectors.d.ts", + "../../../node_modules/recharts/types/component/Dots.d.ts", + "../../../node_modules/recharts/types/util/typedDataKey.d.ts", + "../../../node_modules/recharts/types/util/types.d.ts", + "../../../node_modules/recharts/types/container/Surface.d.ts", + "../../../node_modules/recharts/types/container/Layer.d.ts", + "../../../node_modules/recharts/types/component/Cursor.d.ts", + "../../../node_modules/recharts/types/component/Tooltip.d.ts", + "../../../node_modules/recharts/types/component/ResponsiveContainer.d.ts", + "../../../node_modules/recharts/types/component/Cell.d.ts", + "../../../node_modules/recharts/types/component/Customized.d.ts", + "../../../node_modules/recharts/types/shape/Sector.d.ts", + "../../../node_modules/recharts/types/shape/Polygon.d.ts", + "../../../node_modules/recharts/types/shape/Cross.d.ts", + "../../../node_modules/recharts/types/polar/PolarGrid.d.ts", + "../../../node_modules/recharts/types/polar/defaultPolarRadiusAxisProps.d.ts", + "../../../node_modules/recharts/types/polar/PolarRadiusAxis.d.ts", + "../../../node_modules/recharts/types/polar/defaultPolarAngleAxisProps.d.ts", + "../../../node_modules/recharts/types/polar/PolarAngleAxis.d.ts", + "../../../node_modules/recharts/types/context/tooltipContext.d.ts", + "../../../node_modules/recharts/types/polar/Pie.d.ts", + "../../../node_modules/recharts/types/polar/Radar.d.ts", + "../../../node_modules/recharts/types/util/RadialBarUtils.d.ts", + "../../../node_modules/recharts/types/polar/RadialBar.d.ts", + "../../../node_modules/recharts/types/cartesian/Brush.d.ts", + "../../../node_modules/recharts/types/cartesian/ReferenceDot.d.ts", + "../../../node_modules/recharts/types/util/excludeEventProps.d.ts", + "../../../node_modules/recharts/types/util/svgPropertiesAndEvents.d.ts", + "../../../node_modules/recharts/types/cartesian/ReferenceArea.d.ts", + "../../../node_modules/recharts/types/cartesian/BarStack.d.ts", + "../../../node_modules/recharts/types/cartesian/XAxis.d.ts", + "../../../node_modules/recharts/types/cartesian/YAxis.d.ts", + "../../../node_modules/recharts/types/cartesian/ZAxis.d.ts", + "../../../node_modules/recharts/types/chart/LineChart.d.ts", + "../../../node_modules/recharts/types/chart/BarChart.d.ts", + "../../../node_modules/recharts/types/chart/PieChart.d.ts", + "../../../node_modules/recharts/types/chart/Treemap.d.ts", + "../../../node_modules/recharts/types/chart/Sankey.d.ts", + "../../../node_modules/recharts/types/chart/RadarChart.d.ts", + "../../../node_modules/recharts/types/chart/ScatterChart.d.ts", + "../../../node_modules/recharts/types/chart/AreaChart.d.ts", + "../../../node_modules/recharts/types/chart/RadialBarChart.d.ts", + "../../../node_modules/recharts/types/chart/ComposedChart.d.ts", + "../../../node_modules/recharts/types/chart/SunburstChart.d.ts", + "../../../node_modules/recharts/types/shape/Trapezoid.d.ts", + "../../../node_modules/recharts/types/cartesian/Funnel.d.ts", + "../../../node_modules/recharts/types/chart/FunnelChart.d.ts", + "../../../node_modules/recharts/types/util/Global.d.ts", + "../../../node_modules/recharts/types/zIndex/DefaultZIndexes.d.ts", + "../../../node_modules/decimal.js-light/decimal.d.ts", + "../../../node_modules/recharts/types/util/scale/getNiceTickValues.d.ts", + "../../../node_modules/recharts/types/context/chartLayoutContext.d.ts", + "../../../node_modules/recharts/types/util/getRelativeCoordinate.d.ts", + "../../../node_modules/recharts/types/util/createCartesianCharts.d.ts", + "../../../node_modules/recharts/types/util/createPolarCharts.d.ts", + "../../../node_modules/recharts/types/index.d.ts", + "../../../packages/ui/src/chart.tsx", + "../../../packages/ui/src/checkbox.tsx", + "../../../packages/ui/src/collapsible.tsx", + "../../../node_modules/@base-ui/react/esm/utils/reason-parts.d.ts", + "../../../node_modules/@base-ui/react/esm/utils/reasons.d.ts", + "../../../node_modules/@base-ui/react/esm/utils/createBaseUIEventDetails.d.ts", + "../../../node_modules/@base-ui/react/esm/types/index.d.ts", + "../../../node_modules/@base-ui/react/esm/utils/types.d.ts", + "../../../node_modules/@base-ui/react/esm/accordion/root/AccordionRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/utils/useTransitionStatus.d.ts", + "../../../node_modules/@base-ui/react/esm/collapsible/root/CollapsibleRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/collapsible/root/useCollapsibleRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/accordion/item/AccordionItem.d.ts", + "../../../node_modules/@base-ui/react/esm/accordion/header/AccordionHeader.d.ts", + "../../../node_modules/@base-ui/react/esm/accordion/trigger/AccordionTrigger.d.ts", + "../../../node_modules/@base-ui/react/esm/accordion/panel/AccordionPanel.d.ts", + "../../../node_modules/@base-ui/react/esm/accordion/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/accordion/index.d.ts", + "../../../node_modules/@base-ui/utils/esm/store/createSelector.d.ts", + "../../../node_modules/@base-ui/utils/esm/fastHooks.d.ts", + "../../../node_modules/@base-ui/utils/esm/store/Store.d.ts", + "../../../node_modules/@base-ui/utils/esm/store/useStore.d.ts", + "../../../node_modules/@base-ui/utils/esm/store/ReactStore.d.ts", + "../../../node_modules/@base-ui/utils/esm/store/StoreInspector.d.ts", + "../../../node_modules/@base-ui/utils/esm/store/index.d.ts", + "../../../node_modules/@base-ui/utils/esm/useEnhancedClickHandler.d.ts", + "../../../node_modules/@floating-ui/utils/dist/floating-ui.utils.d.mts", + "../../../node_modules/@floating-ui/core/dist/floating-ui.core.d.mts", + "../../../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.d.mts", + "../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.d.mts", + "../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.d.mts", + "../../../node_modules/@base-ui/react/esm/floating-ui-react/utils/constants.d.ts", + "../../../node_modules/@base-ui/react/esm/floating-ui-react/hooks/useInteractions.d.ts", + "../../../node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingTreeStore.d.ts", + "../../../node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingRootStore.d.ts", + "../../../node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingFocusManager.d.ts", + "../../../node_modules/@base-ui/react/esm/utils/getStateAttributesProps.d.ts", + "../../../node_modules/@base-ui/react/esm/utils/useRenderElement.d.ts", + "../../../node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingPortal.d.ts", + "../../../node_modules/@base-ui/react/esm/floating-ui-react/hooks/useClientPoint.d.ts", + "../../../node_modules/@base-ui/react/esm/floating-ui-react/hooks/useDismiss.d.ts", + "../../../node_modules/@base-ui/react/esm/floating-ui-react/hooks/useFocus.d.ts", + "../../../node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHoverShared.d.ts", + "../../../node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHover.d.ts", + "../../../node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHoverFloatingInteraction.d.ts", + "../../../node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHoverReferenceInteraction.d.ts", + "../../../node_modules/@base-ui/react/esm/floating-ui-react/hooks/useListNavigation.d.ts", + "../../../node_modules/@base-ui/react/esm/floating-ui-react/hooks/useRole.d.ts", + "../../../node_modules/@base-ui/react/esm/floating-ui-react/hooks/useTypeahead.d.ts", + "../../../node_modules/@base-ui/react/esm/floating-ui-react/hooks/useFloatingRootContext.d.ts", + "../../../node_modules/@base-ui/react/esm/floating-ui-react/safePolygon.d.ts", + "../../../node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingTree.d.ts", + "../../../node_modules/@base-ui/react/esm/floating-ui-react/types.d.ts", + "../../../node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingDelayGroup.d.ts", + "../../../node_modules/@base-ui/react/esm/floating-ui-react/hooks/useClick.d.ts", + "../../../node_modules/@base-ui/react/esm/floating-ui-react/hooks/useFloating.d.ts", + "../../../node_modules/@base-ui/react/esm/floating-ui-react/hooks/useSyncedFloatingRootContext.d.ts", + "../../../node_modules/@base-ui/react/esm/floating-ui-react/index.d.ts", + "../../../node_modules/@base-ui/react/esm/utils/popups/popupTriggerMap.d.ts", + "../../../node_modules/@base-ui/react/esm/utils/popups/store.d.ts", + "../../../node_modules/@base-ui/react/esm/utils/popups/popupStoreUtils.d.ts", + "../../../node_modules/@base-ui/react/esm/utils/popups/index.d.ts", + "../../../node_modules/@base-ui/react/esm/dialog/root/DialogRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/dialog/store/DialogStore.d.ts", + "../../../node_modules/@base-ui/react/esm/dialog/store/DialogHandle.d.ts", + "../../../node_modules/@base-ui/react/esm/alert-dialog/root/AlertDialogRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/dialog/backdrop/DialogBackdrop.d.ts", + "../../../node_modules/@base-ui/react/esm/dialog/close/DialogClose.d.ts", + "../../../node_modules/@base-ui/react/esm/dialog/description/DialogDescription.d.ts", + "../../../node_modules/@base-ui/react/esm/dialog/popup/DialogPopup.d.ts", + "../../../node_modules/@base-ui/react/esm/dialog/portal/DialogPortal.d.ts", + "../../../node_modules/@base-ui/react/esm/dialog/title/DialogTitle.d.ts", + "../../../node_modules/@base-ui/react/esm/dialog/trigger/DialogTrigger.d.ts", + "../../../node_modules/@base-ui/react/esm/dialog/viewport/DialogViewport.d.ts", + "../../../node_modules/@base-ui/react/esm/alert-dialog/handle.d.ts", + "../../../node_modules/@base-ui/react/esm/alert-dialog/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/alert-dialog/index.d.ts", + "../../../node_modules/@base-ui/react/esm/utils/resolveValueLabel.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/root/AriaCombobox.d.ts", + "../../../node_modules/@base-ui/react/esm/autocomplete/root/AutocompleteRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/autocomplete/value/AutocompleteValue.d.ts", + "../../../node_modules/@base-ui/react/esm/form/FormContext.d.ts", + "../../../node_modules/@base-ui/react/esm/form/Form.d.ts", + "../../../node_modules/@base-ui/react/esm/form/index.d.ts", + "../../../node_modules/@base-ui/react/esm/field/root/FieldRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/utils/useAnchorPositioning.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/trigger/ComboboxTrigger.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/input/ComboboxInput.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/input-group/ComboboxInputGroup.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/icon/ComboboxIcon.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/clear/ComboboxClear.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/list/ComboboxList.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/status/ComboboxStatus.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/portal/ComboboxPortal.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/backdrop/ComboboxBackdrop.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/positioner/ComboboxPositioner.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/popup/ComboboxPopup.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/arrow/ComboboxArrow.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/group/ComboboxGroup.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/group-label/ComboboxGroupLabel.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/item/ComboboxItem.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/row/ComboboxRow.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/collection/ComboboxCollection.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/empty/ComboboxEmpty.d.ts", + "../../../node_modules/@base-ui/react/esm/separator/Separator.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/root/utils/useFilter.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/root/utils/useFilteredItems.d.ts", + "../../../node_modules/@base-ui/react/esm/autocomplete/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/autocomplete/index.d.ts", + "../../../node_modules/@base-ui/react/esm/avatar/root/AvatarRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/avatar/image/useImageLoadingStatus.d.ts", + "../../../node_modules/@base-ui/react/esm/avatar/image/AvatarImage.d.ts", + "../../../node_modules/@base-ui/react/esm/avatar/fallback/AvatarFallback.d.ts", + "../../../node_modules/@base-ui/react/esm/avatar/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/avatar/index.d.ts", + "../../../node_modules/@base-ui/react/esm/button/Button.d.ts", + "../../../node_modules/@base-ui/react/esm/button/index.d.ts", + "../../../node_modules/@base-ui/react/esm/checkbox/root/CheckboxRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/checkbox/indicator/CheckboxIndicator.d.ts", + "../../../node_modules/@base-ui/react/esm/checkbox/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/checkbox/index.d.ts", + "../../../node_modules/@base-ui/react/esm/checkbox-group/CheckboxGroup.d.ts", + "../../../node_modules/@base-ui/react/esm/checkbox-group/index.d.ts", + "../../../node_modules/@base-ui/react/esm/collapsible/trigger/CollapsibleTrigger.d.ts", + "../../../node_modules/@base-ui/react/esm/collapsible/panel/CollapsiblePanel.d.ts", + "../../../node_modules/@base-ui/react/esm/collapsible/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/collapsible/index.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/root/ComboboxRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/label/ComboboxLabel.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/value/ComboboxValue.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/item-indicator/ComboboxItemIndicator.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/chips/ComboboxChips.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/chip/ComboboxChip.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/chip-remove/ComboboxChipRemove.d.ts", + "../../../node_modules/@base-ui/react/esm/separator/index.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/combobox/index.d.ts", + "../../../node_modules/@base-ui/react/esm/menu/arrow/MenuArrow.d.ts", + "../../../node_modules/@base-ui/react/esm/menu/backdrop/MenuBackdrop.d.ts", + "../../../node_modules/@base-ui/react/esm/menu/store/MenuStore.d.ts", + "../../../node_modules/@base-ui/react/esm/menu/root/MenuRootContext.d.ts", + "../../../node_modules/@base-ui/react/esm/menubar/MenubarContext.d.ts", + "../../../node_modules/@base-ui/react/esm/context-menu/root/ContextMenuRootContext.d.ts", + "../../../node_modules/@base-ui/react/esm/menu/store/MenuHandle.d.ts", + "../../../node_modules/@base-ui/react/esm/menu/root/MenuRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/menu/checkbox-item/MenuCheckboxItem.d.ts", + "../../../node_modules/@base-ui/react/esm/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.d.ts", + "../../../node_modules/@base-ui/react/esm/menu/group/MenuGroup.d.ts", + "../../../node_modules/@base-ui/react/esm/menu/group-label/MenuGroupLabel.d.ts", + "../../../node_modules/@base-ui/react/esm/menu/item/MenuItem.d.ts", + "../../../node_modules/@base-ui/react/esm/menu/link-item/MenuLinkItem.d.ts", + "../../../node_modules/@base-ui/react/esm/menu/popup/MenuPopup.d.ts", + "../../../node_modules/@base-ui/react/esm/menu/portal/MenuPortal.d.ts", + "../../../node_modules/@base-ui/react/esm/menu/positioner/MenuPositioner.d.ts", + "../../../node_modules/@base-ui/react/esm/menu/radio-group/MenuRadioGroup.d.ts", + "../../../node_modules/@base-ui/react/esm/menu/radio-item/MenuRadioItem.d.ts", + "../../../node_modules/@base-ui/react/esm/menu/radio-item-indicator/MenuRadioItemIndicator.d.ts", + "../../../node_modules/@base-ui/react/esm/menu/submenu-root/MenuSubmenuRootContext.d.ts", + "../../../node_modules/@base-ui/react/esm/menu/submenu-root/MenuSubmenuRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/menu/trigger/MenuTrigger.d.ts", + "../../../node_modules/@base-ui/react/esm/menu/viewport/MenuViewport.d.ts", + "../../../node_modules/@base-ui/react/esm/menu/submenu-trigger/MenuSubmenuTrigger.d.ts", + "../../../node_modules/@base-ui/react/esm/menu/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/menu/index.d.ts", + "../../../node_modules/@base-ui/react/esm/context-menu/root/ContextMenuRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/context-menu/trigger/ContextMenuTrigger.d.ts", + "../../../node_modules/@base-ui/react/esm/context-menu/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/context-menu/index.d.ts", + "../../../node_modules/@base-ui/react/esm/csp-provider/CSPProvider.d.ts", + "../../../node_modules/@base-ui/react/esm/csp-provider/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/csp-provider/index.d.ts", + "../../../node_modules/@base-ui/react/esm/dialog/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/dialog/index.d.ts", + "../../../node_modules/@base-ui/react/esm/direction-provider/DirectionContext.d.ts", + "../../../node_modules/@base-ui/react/esm/direction-provider/DirectionProvider.d.ts", + "../../../node_modules/@base-ui/react/esm/direction-provider/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/direction-provider/index.d.ts", + "../../../node_modules/@base-ui/react/esm/drawer/backdrop/DrawerBackdrop.d.ts", + "../../../node_modules/@base-ui/react/esm/drawer/close/DrawerClose.d.ts", + "../../../node_modules/@base-ui/react/esm/drawer/content/DrawerContent.d.ts", + "../../../node_modules/@base-ui/react/esm/drawer/description/DrawerDescription.d.ts", + "../../../node_modules/@base-ui/react/esm/drawer/indent/DrawerIndent.d.ts", + "../../../node_modules/@base-ui/react/esm/drawer/indent-background/DrawerIndentBackground.d.ts", + "../../../node_modules/@base-ui/react/esm/utils/useSwipeDismiss.d.ts", + "../../../node_modules/@base-ui/react/esm/drawer/root/DrawerRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/drawer/root/DrawerRootContext.d.ts", + "../../../node_modules/@base-ui/react/esm/drawer/popup/DrawerPopup.d.ts", + "../../../node_modules/@base-ui/react/esm/drawer/portal/DrawerPortal.d.ts", + "../../../node_modules/@base-ui/react/esm/drawer/provider/DrawerProvider.d.ts", + "../../../node_modules/@base-ui/react/esm/drawer/swipe-area/DrawerSwipeArea.d.ts", + "../../../node_modules/@base-ui/react/esm/drawer/title/DrawerTitle.d.ts", + "../../../node_modules/@base-ui/react/esm/drawer/trigger/DrawerTrigger.d.ts", + "../../../node_modules/@base-ui/react/esm/drawer/viewport/DrawerViewport.d.ts", + "../../../node_modules/@base-ui/react/esm/drawer/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/drawer/index.d.ts", + "../../../node_modules/@base-ui/react/esm/field/label/FieldLabel.d.ts", + "../../../node_modules/@base-ui/react/esm/field/error/FieldError.d.ts", + "../../../node_modules/@base-ui/react/esm/field/description/FieldDescription.d.ts", + "../../../node_modules/@base-ui/react/esm/field/control/FieldControl.d.ts", + "../../../node_modules/@base-ui/react/esm/field/validity/FieldValidity.d.ts", + "../../../node_modules/@base-ui/react/esm/field/item/FieldItem.d.ts", + "../../../node_modules/@base-ui/react/esm/field/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/field/index.d.ts", + "../../../node_modules/@base-ui/react/esm/fieldset/root/FieldsetRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/fieldset/legend/FieldsetLegend.d.ts", + "../../../node_modules/@base-ui/react/esm/fieldset/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/fieldset/index.d.ts", + "../../../node_modules/@base-ui/react/esm/input/Input.d.ts", + "../../../node_modules/@base-ui/react/esm/input/index.d.ts", + "../../../node_modules/@base-ui/react/esm/menubar/Menubar.d.ts", + "../../../node_modules/@base-ui/react/esm/menubar/index.d.ts", + "../../../node_modules/@base-ui/react/esm/merge-props/mergeProps.d.ts", + "../../../node_modules/@base-ui/react/esm/merge-props/index.d.ts", + "../../../node_modules/@base-ui/react/esm/meter/root/MeterRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/meter/track/MeterTrack.d.ts", + "../../../node_modules/@base-ui/react/esm/meter/indicator/MeterIndicator.d.ts", + "../../../node_modules/@base-ui/react/esm/meter/value/MeterValue.d.ts", + "../../../node_modules/@base-ui/react/esm/meter/label/MeterLabel.d.ts", + "../../../node_modules/@base-ui/react/esm/meter/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/meter/index.d.ts", + "../../../node_modules/@base-ui/react/esm/navigation-menu/root/NavigationMenuRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/navigation-menu/list/NavigationMenuList.d.ts", + "../../../node_modules/@base-ui/react/esm/navigation-menu/item/NavigationMenuItem.d.ts", + "../../../node_modules/@base-ui/react/esm/navigation-menu/content/NavigationMenuContent.d.ts", + "../../../node_modules/@base-ui/react/esm/navigation-menu/trigger/NavigationMenuTrigger.d.ts", + "../../../node_modules/@base-ui/react/esm/navigation-menu/portal/NavigationMenuPortal.d.ts", + "../../../node_modules/@base-ui/react/esm/navigation-menu/positioner/NavigationMenuPositioner.d.ts", + "../../../node_modules/@base-ui/react/esm/navigation-menu/viewport/NavigationMenuViewport.d.ts", + "../../../node_modules/@base-ui/react/esm/navigation-menu/backdrop/NavigationMenuBackdrop.d.ts", + "../../../node_modules/@base-ui/react/esm/navigation-menu/popup/NavigationMenuPopup.d.ts", + "../../../node_modules/@base-ui/react/esm/navigation-menu/arrow/NavigationMenuArrow.d.ts", + "../../../node_modules/@base-ui/react/esm/navigation-menu/link/NavigationMenuLink.d.ts", + "../../../node_modules/@base-ui/react/esm/navigation-menu/icon/NavigationMenuIcon.d.ts", + "../../../node_modules/@base-ui/react/esm/navigation-menu/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/navigation-menu/index.d.ts", + "../../../node_modules/@base-ui/react/esm/number-field/utils/types.d.ts", + "../../../node_modules/@base-ui/react/esm/number-field/root/NumberFieldRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/number-field/group/NumberFieldGroup.d.ts", + "../../../node_modules/@base-ui/react/esm/number-field/increment/NumberFieldIncrement.d.ts", + "../../../node_modules/@base-ui/react/esm/number-field/decrement/NumberFieldDecrement.d.ts", + "../../../node_modules/@base-ui/react/esm/number-field/input/NumberFieldInput.d.ts", + "../../../node_modules/@base-ui/react/esm/number-field/scrub-area/NumberFieldScrubArea.d.ts", + "../../../node_modules/@base-ui/react/esm/number-field/scrub-area-cursor/NumberFieldScrubAreaCursor.d.ts", + "../../../node_modules/@base-ui/react/esm/number-field/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/number-field/index.d.ts", + "../../../node_modules/@base-ui/utils/esm/useTimeout.d.ts", + "../../../node_modules/@base-ui/react/esm/popover/store/PopoverStore.d.ts", + "../../../node_modules/@base-ui/react/esm/popover/store/PopoverHandle.d.ts", + "../../../node_modules/@base-ui/react/esm/popover/root/PopoverRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/popover/trigger/PopoverTrigger.d.ts", + "../../../node_modules/@base-ui/react/esm/popover/portal/PopoverPortal.d.ts", + "../../../node_modules/@base-ui/react/esm/popover/positioner/PopoverPositioner.d.ts", + "../../../node_modules/@base-ui/react/esm/popover/popup/PopoverPopup.d.ts", + "../../../node_modules/@base-ui/react/esm/popover/arrow/PopoverArrow.d.ts", + "../../../node_modules/@base-ui/react/esm/popover/backdrop/PopoverBackdrop.d.ts", + "../../../node_modules/@base-ui/react/esm/popover/title/PopoverTitle.d.ts", + "../../../node_modules/@base-ui/react/esm/popover/description/PopoverDescription.d.ts", + "../../../node_modules/@base-ui/react/esm/popover/close/PopoverClose.d.ts", + "../../../node_modules/@base-ui/react/esm/popover/viewport/PopoverViewport.d.ts", + "../../../node_modules/@base-ui/react/esm/popover/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/popover/index.d.ts", + "../../../node_modules/@base-ui/react/esm/preview-card/store/PreviewCardStore.d.ts", + "../../../node_modules/@base-ui/react/esm/preview-card/store/PreviewCardHandle.d.ts", + "../../../node_modules/@base-ui/react/esm/preview-card/root/PreviewCardRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/utils/FloatingPortalLite.d.ts", + "../../../node_modules/@base-ui/react/esm/preview-card/portal/PreviewCardPortal.d.ts", + "../../../node_modules/@base-ui/react/esm/preview-card/trigger/PreviewCardTrigger.d.ts", + "../../../node_modules/@base-ui/react/esm/preview-card/positioner/PreviewCardPositioner.d.ts", + "../../../node_modules/@base-ui/react/esm/preview-card/popup/PreviewCardPopup.d.ts", + "../../../node_modules/@base-ui/react/esm/preview-card/arrow/PreviewCardArrow.d.ts", + "../../../node_modules/@base-ui/react/esm/preview-card/backdrop/PreviewCardBackdrop.d.ts", + "../../../node_modules/@base-ui/react/esm/preview-card/viewport/PreviewCardViewport.d.ts", + "../../../node_modules/@base-ui/react/esm/preview-card/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/preview-card/index.d.ts", + "../../../node_modules/@base-ui/react/esm/progress/root/ProgressRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/progress/track/ProgressTrack.d.ts", + "../../../node_modules/@base-ui/react/esm/progress/indicator/ProgressIndicator.d.ts", + "../../../node_modules/@base-ui/react/esm/progress/value/ProgressValue.d.ts", + "../../../node_modules/@base-ui/react/esm/progress/label/ProgressLabel.d.ts", + "../../../node_modules/@base-ui/react/esm/progress/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/progress/index.d.ts", + "../../../node_modules/@base-ui/react/esm/radio/root/RadioRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/radio/indicator/RadioIndicator.d.ts", + "../../../node_modules/@base-ui/react/esm/radio/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/radio/index.d.ts", + "../../../node_modules/@base-ui/react/esm/radio-group/RadioGroup.d.ts", + "../../../node_modules/@base-ui/react/esm/radio-group/index.d.ts", + "../../../node_modules/@base-ui/react/esm/scroll-area/root/ScrollAreaRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/scroll-area/viewport/ScrollAreaViewport.d.ts", + "../../../node_modules/@base-ui/react/esm/scroll-area/scrollbar/ScrollAreaScrollbar.d.ts", + "../../../node_modules/@base-ui/react/esm/scroll-area/content/ScrollAreaContent.d.ts", + "../../../node_modules/@base-ui/react/esm/scroll-area/thumb/ScrollAreaThumb.d.ts", + "../../../node_modules/@base-ui/react/esm/scroll-area/corner/ScrollAreaCorner.d.ts", + "../../../node_modules/@base-ui/react/esm/scroll-area/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/scroll-area/index.d.ts", + "../../../node_modules/@base-ui/react/esm/select/root/SelectRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/select/label/SelectLabel.d.ts", + "../../../node_modules/@base-ui/react/esm/select/trigger/SelectTrigger.d.ts", + "../../../node_modules/@base-ui/react/esm/select/value/SelectValue.d.ts", + "../../../node_modules/@base-ui/react/esm/select/icon/SelectIcon.d.ts", + "../../../node_modules/@base-ui/react/esm/select/portal/SelectPortal.d.ts", + "../../../node_modules/@base-ui/react/esm/select/backdrop/SelectBackdrop.d.ts", + "../../../node_modules/@base-ui/react/esm/select/positioner/SelectPositioner.d.ts", + "../../../node_modules/@base-ui/react/esm/select/popup/SelectPopup.d.ts", + "../../../node_modules/@base-ui/react/esm/select/list/SelectList.d.ts", + "../../../node_modules/@base-ui/react/esm/select/item/SelectItem.d.ts", + "../../../node_modules/@base-ui/react/esm/select/item-indicator/SelectItemIndicator.d.ts", + "../../../node_modules/@base-ui/react/esm/select/item-text/SelectItemText.d.ts", + "../../../node_modules/@base-ui/react/esm/select/arrow/SelectArrow.d.ts", + "../../../node_modules/@base-ui/react/esm/select/scroll-down-arrow/SelectScrollDownArrow.d.ts", + "../../../node_modules/@base-ui/react/esm/select/scroll-up-arrow/SelectScrollUpArrow.d.ts", + "../../../node_modules/@base-ui/react/esm/select/group/SelectGroup.d.ts", + "../../../node_modules/@base-ui/react/esm/select/group-label/SelectGroupLabel.d.ts", + "../../../node_modules/@base-ui/react/esm/select/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/select/index.d.ts", + "../../../node_modules/@base-ui/react/esm/slider/root/SliderRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/slider/label/SliderLabel.d.ts", + "../../../node_modules/@base-ui/react/esm/slider/value/SliderValue.d.ts", + "../../../node_modules/@base-ui/react/esm/slider/control/SliderControl.d.ts", + "../../../node_modules/@base-ui/react/esm/slider/track/SliderTrack.d.ts", + "../../../node_modules/@base-ui/react/esm/labelable-provider/LabelableContext.d.ts", + "../../../node_modules/@base-ui/react/esm/slider/thumb/SliderThumb.d.ts", + "../../../node_modules/@base-ui/react/esm/slider/indicator/SliderIndicator.d.ts", + "../../../node_modules/@base-ui/react/esm/slider/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/slider/index.d.ts", + "../../../node_modules/@base-ui/react/esm/switch/root/SwitchRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/switch/thumb/SwitchThumb.d.ts", + "../../../node_modules/@base-ui/react/esm/switch/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/switch/index.d.ts", + "../../../node_modules/@base-ui/react/esm/tabs/tab/TabsTab.d.ts", + "../../../node_modules/@base-ui/react/esm/tabs/root/TabsRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/tabs/indicator/TabsIndicator.d.ts", + "../../../node_modules/@base-ui/react/esm/tabs/panel/TabsPanel.d.ts", + "../../../node_modules/@base-ui/react/esm/tabs/list/TabsList.d.ts", + "../../../node_modules/@base-ui/react/esm/tabs/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/tabs/index.d.ts", + "../../../node_modules/@base-ui/react/esm/toast/positioner/ToastPositioner.d.ts", + "../../../node_modules/@base-ui/react/esm/toast/useToastManager.d.ts", + "../../../node_modules/@base-ui/react/esm/toast/createToastManager.d.ts", + "../../../node_modules/@base-ui/react/esm/toast/provider/ToastProvider.d.ts", + "../../../node_modules/@base-ui/react/esm/toast/viewport/ToastViewport.d.ts", + "../../../node_modules/@base-ui/react/esm/toast/root/ToastRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/toast/content/ToastContent.d.ts", + "../../../node_modules/@base-ui/react/esm/toast/description/ToastDescription.d.ts", + "../../../node_modules/@base-ui/react/esm/toast/title/ToastTitle.d.ts", + "../../../node_modules/@base-ui/react/esm/toast/close/ToastClose.d.ts", + "../../../node_modules/@base-ui/react/esm/toast/action/ToastAction.d.ts", + "../../../node_modules/@base-ui/react/esm/toast/portal/ToastPortal.d.ts", + "../../../node_modules/@base-ui/react/esm/toast/arrow/ToastArrow.d.ts", + "../../../node_modules/@base-ui/react/esm/toast/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/toast/index.d.ts", + "../../../node_modules/@base-ui/react/esm/toggle/Toggle.d.ts", + "../../../node_modules/@base-ui/react/esm/toggle/index.d.ts", + "../../../node_modules/@base-ui/react/esm/toggle-group/ToggleGroup.d.ts", + "../../../node_modules/@base-ui/react/esm/toggle-group/index.d.ts", + "../../../node_modules/@base-ui/react/esm/toolbar/separator/ToolbarSeparator.d.ts", + "../../../node_modules/@base-ui/react/esm/toolbar/root/ToolbarRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/toolbar/group/ToolbarGroup.d.ts", + "../../../node_modules/@base-ui/react/esm/toolbar/button/ToolbarButton.d.ts", + "../../../node_modules/@base-ui/react/esm/toolbar/link/ToolbarLink.d.ts", + "../../../node_modules/@base-ui/react/esm/toolbar/input/ToolbarInput.d.ts", + "../../../node_modules/@base-ui/react/esm/toolbar/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/toolbar/index.d.ts", + "../../../node_modules/@base-ui/react/esm/tooltip/store/TooltipStore.d.ts", + "../../../node_modules/@base-ui/react/esm/tooltip/store/TooltipHandle.d.ts", + "../../../node_modules/@base-ui/react/esm/tooltip/root/TooltipRoot.d.ts", + "../../../node_modules/@base-ui/react/esm/tooltip/trigger/TooltipTrigger.d.ts", + "../../../node_modules/@base-ui/react/esm/tooltip/portal/TooltipPortal.d.ts", + "../../../node_modules/@base-ui/react/esm/tooltip/positioner/TooltipPositioner.d.ts", + "../../../node_modules/@base-ui/react/esm/tooltip/popup/TooltipPopup.d.ts", + "../../../node_modules/@base-ui/react/esm/tooltip/arrow/TooltipArrow.d.ts", + "../../../node_modules/@base-ui/react/esm/tooltip/provider/TooltipProvider.d.ts", + "../../../node_modules/@base-ui/react/esm/tooltip/viewport/TooltipViewport.d.ts", + "../../../node_modules/@base-ui/react/esm/tooltip/index.parts.d.ts", + "../../../node_modules/@base-ui/react/esm/tooltip/index.d.ts", + "../../../node_modules/@base-ui/react/esm/use-render/useRender.d.ts", + "../../../node_modules/@base-ui/react/esm/use-render/index.d.ts", + "../../../node_modules/@base-ui/react/esm/index.d.ts", + "../../../packages/ui/src/combobox.tsx", + "../../../node_modules/cmdk/dist/index.d.ts", + "../../../packages/ui/src/command.tsx", + "../../../packages/ui/src/context-menu.tsx", + "../../../packages/ui/src/dialog.tsx", + "../../../node_modules/vaul/dist/index.d.mts", + "../../../packages/ui/src/drawer.tsx", + "../../../packages/ui/src/dropdown-menu.tsx", + "../../../packages/ui/src/empty.tsx", + "../../../packages/ui/src/field.tsx", "../../../node_modules/react-hook-form/dist/constants.d.ts", "../../../node_modules/react-hook-form/dist/utils/createSubject.d.ts", "../../../node_modules/react-hook-form/dist/types/events.d.ts", @@ -1528,53 +2578,48 @@ "../../../node_modules/react-hook-form/dist/watch.d.ts", "../../../node_modules/react-hook-form/dist/index.d.ts", "../../../packages/ui/src/form.tsx", + "../../../packages/ui/src/hover-card.tsx", "../../../node_modules/react-image-crop/dist/index.d.ts", - "../../../node_modules/@radix-ui/react-accessible-icon/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-collapsible/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-accordion/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-alert-dialog/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-aspect-ratio/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-context-menu/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-direction/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-form/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-hover-card/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-menubar/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-visually-hidden/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-navigation-menu/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-one-time-password-field/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-password-toggle-field/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-popover/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-radio-group/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-scroll-area/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-select/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-separator/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-slider/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-switch/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-tabs/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-toast/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-toggle/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-toggle-group/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-toolbar/dist/index.d.mts", - "../../../node_modules/@radix-ui/react-tooltip/dist/index.d.mts", - "../../../node_modules/radix-ui/dist/index.d.mts", - "../../../packages/ui/src/shadcn-io/image-crop/index.tsx", + "../../../packages/ui/src/image-crop.tsx", "../../../packages/ui/src/input.tsx", + "../../../packages/ui/src/input-group.tsx", "../../../node_modules/input-otp/dist/index.d.ts", "../../../packages/ui/src/input-otp.tsx", + "../../../packages/ui/src/item.tsx", + "../../../packages/ui/src/kbd.tsx", "../../../packages/ui/src/label.tsx", + "../../../packages/ui/src/native-select.tsx", + "../../../packages/ui/src/navigation-menu.tsx", "../../../packages/ui/src/pagination.tsx", + "../../../packages/ui/src/popover.tsx", "../../../packages/ui/src/progress.tsx", + "../../../packages/ui/src/radio-group.tsx", + "../../../node_modules/react-resizable-panels/dist/react-resizable-panels.d.ts", + "../../../packages/ui/src/resizable.tsx", "../../../packages/ui/src/scroll-area.tsx", + "../../../packages/ui/src/select.tsx", "../../../packages/ui/src/separator.tsx", + "../../../packages/ui/src/sheet.tsx", + "../../../packages/ui/src/sidebar.tsx", + "../../../packages/ui/src/skeleton.tsx", + "../../../packages/ui/src/slider.tsx", + "../../../packages/ui/src/spinner.tsx", "../../../packages/ui/src/status-message.tsx", "../../../packages/ui/src/submit-button.tsx", "../../../packages/ui/src/switch.tsx", "../../../packages/ui/src/table.tsx", "../../../packages/ui/src/tabs.tsx", - "../../../node_modules/sonner/dist/index.d.mts", + "../../../packages/ui/src/textarea.tsx", "../../../node_modules/next-themes/dist/index.d.ts", - "../../../packages/ui/src/sonner.tsx", "../../../packages/ui/src/theme.tsx", + "../../../node_modules/sonner/dist/index.d.mts", + "../../../packages/ui/src/sonner.tsx", + "../../../packages/ui/src/toggle.tsx", + "../../../packages/ui/src/toggle-group.tsx", + "../../../packages/ui/src/tooltip.tsx", + "../../../packages/ui/src/hooks/use-mobile.ts", + "../../../packages/ui/src/hooks/use-on-click-outside.tsx", + "../../../packages/ui/src/hooks/index.tsx", "../../../packages/ui/src/index.tsx", "../../../node_modules/convex/dist/esm-types/values/value.d.ts", "../../../node_modules/convex/dist/esm-types/type_utils.d.ts", @@ -1583,6 +2628,7 @@ "../../../node_modules/convex/dist/esm-types/values/base64.d.ts", "../../../node_modules/convex/dist/esm-types/values/errors.d.ts", "../../../node_modules/convex/dist/esm-types/values/compare.d.ts", + "../../../node_modules/convex/dist/esm-types/values/size.d.ts", "../../../node_modules/convex/dist/esm-types/values/index.d.ts", "../../../node_modules/convex/dist/esm-types/browser/sync/function_result.d.ts", "../../../node_modules/convex/dist/esm-types/browser/logging.d.ts", @@ -1614,12 +2660,15 @@ "../../../node_modules/convex/dist/esm-types/browser/sync/local_state.d.ts", "../../../node_modules/convex/dist/esm-types/browser/sync/authentication_manager.d.ts", "../../../node_modules/convex/dist/esm-types/browser/sync/client.d.ts", + "../../../node_modules/convex/dist/esm-types/browser/sync/pagination.d.ts", "../../../node_modules/convex/dist/esm-types/browser/simple_client.d.ts", "../../../node_modules/convex/dist/esm-types/browser/http_client.d.ts", "../../../node_modules/convex/dist/esm-types/browser/index.d.ts", "../../../node_modules/convex/dist/esm-types/react/use_paginated_query.d.ts", + "../../../node_modules/convex/dist/esm-types/react/use_paginated_query2.d.ts", "../../../node_modules/convex/dist/esm-types/browser/query_options.d.ts", "../../../node_modules/convex/dist/esm-types/react/client.d.ts", + "../../../node_modules/convex/dist/esm-types/browser/sync/paginated_query_client.d.ts", "../../../node_modules/convex/dist/esm-types/react/queries_observer.d.ts", "../../../node_modules/convex/dist/esm-types/react/use_queries.d.ts", "../../../node_modules/convex/dist/esm-types/react/auth_helpers.d.ts", @@ -1627,6 +2676,7 @@ "../../../node_modules/convex/dist/esm-types/react/hydration.d.ts", "../../../node_modules/convex/dist/esm-types/react/index.d.ts", "../../../node_modules/@convex-dev/auth/dist/react/index.d.ts", + "../../../node_modules/@convex-dev/auth/dist/server/convex_types.d.ts", "../../../node_modules/@auth/core/lib/vendored/cookie.d.ts", "../../../node_modules/oauth4webapi/build/index.d.ts", "../../../node_modules/@auth/core/lib/utils/cookie.d.ts", @@ -1649,8 +2699,6 @@ "../../../node_modules/@auth/core/providers/oauth-types.d.ts", "../../../node_modules/@auth/core/providers/oauth.d.ts", "../../../node_modules/@auth/core/providers/index.d.ts", - "../../../node_modules/@auth/core/providers/authentik.d.ts", - "../../../node_modules/@convex-dev/auth/dist/server/convex_types.d.ts", "../../../node_modules/@convex-dev/auth/dist/providers/ConvexCredentials.d.ts", "../../../node_modules/@convex-dev/auth/dist/server/types.d.ts", "../../../node_modules/@convex-dev/auth/dist/server/implementation/types.d.ts", @@ -1659,6 +2707,7 @@ "../../../node_modules/@convex-dev/auth/dist/server/index.d.ts", "../../../packages/backend/convex/schema.ts", "../../../packages/backend/convex/_generated/dataModel.d.ts", + "../../../node_modules/@auth/core/providers/authentik.d.ts", "../../../packages/backend/convex/_generated/server.d.ts", "../../../node_modules/@convex-dev/auth/dist/providers/Password.d.ts", "../../../packages/backend/convex/custom/auth/providers/password.ts", @@ -1687,6 +2736,7 @@ "../src/components/providers/ConvexClientProvider.tsx", "../src/components/providers/index.tsx", "../src/lib/metadata.ts", + "../src/app/global-error.tsx", "../src/app/layout.tsx", "../src/components/landing/hero.tsx", "../src/components/landing/features.tsx", @@ -1734,12 +2784,14 @@ "../../../node_modules/@types/babel__traverse/index.d.ts", "../../../node_modules/@types/babel__core/index.d.ts", "../../../node_modules/@types/cors/index.d.ts", + "../../../node_modules/@types/d3-array/index.d.ts", + "../../../node_modules/@types/d3-color/index.d.ts", + "../../../node_modules/@types/d3-ease/index.d.ts", + "../../../node_modules/@types/d3-interpolate/index.d.ts", + "../../../node_modules/@types/d3-timer/index.d.ts", "../../../node_modules/@types/eslint/use-at-your-own-risk.d.ts", "../../../node_modules/@types/eslint/index.d.ts", - "../../../node_modules/minimatch/dist/cjs/ast.d.ts", - "../../../node_modules/minimatch/dist/cjs/escape.d.ts", - "../../../node_modules/minimatch/dist/cjs/unescape.d.ts", - "../../../node_modules/minimatch/dist/cjs/index.d.ts", + "../../../node_modules/@types/eslint-scope/index.d.ts", "../../../node_modules/@types/glob/index.d.ts", "../../../node_modules/@types/graceful-fs/index.d.ts", "../../../node_modules/@types/hammerjs/index.d.ts", @@ -1834,1202 +2886,1789 @@ "../../../node_modules/@types/istanbul-lib-report/index.d.ts", "../../../node_modules/@types/istanbul-reports/index.d.ts", "../../../node_modules/@types/json5/index.d.ts", - "../../../node_modules/minimatch/dist/mjs/ast.d.ts", - "../../../node_modules/minimatch/dist/mjs/escape.d.ts", - "../../../node_modules/minimatch/dist/mjs/unescape.d.ts", - "../../../node_modules/minimatch/dist/mjs/index.d.ts", "../../../node_modules/@types/mysql/index.d.ts", "../../../node_modules/@types/pg-pool/index.d.ts", "../../../node_modules/@types/shimmer/index.d.ts", "../../../node_modules/@types/stack-utils/index.d.ts", "../../../node_modules/@types/tedious/index.d.ts", "../../../node_modules/@types/tinycolor2/index.d.ts", + "../../../node_modules/@types/use-sync-external-store/index.d.ts", "../../../node_modules/@types/yargs-parser/index.d.ts", "../../../node_modules/@types/yargs/index.d.ts" ], "fileIdsList": [ - [218, 267], - [64, 196, 198, 202, 218, 267], - [218, 267, 632, 633, 634], - [218, 267, 632, 1373, 1378, 1454], - [218, 267, 1456], - [218, 267, 632], - [206, 218, 267, 616, 1527, 1572, 1576, 1627, 1710, 1711, 1713], - [218, 267, 1576, 1680, 1721, 1722], + [218, 267, 284, 285], + [64, 196, 198, 202, 218, 267, 284, 285], + [218, 267, 284, 285, 654, 655, 656], + [218, 267, 284, 285, 654, 659, 1386, 1391], + [218, 267, 284, 285, 1393], + [218, 267, 284, 285, 654], + [206, 218, 267, 284, 285, 643, 2577, 2613, 2621, 2676, 2760, 2761, 2763], + [218, 267, 284, 285, 2621, 2729, 2771, 2772], [ - 206, 218, 267, 605, 616, 1527, 1572, 1576, 1584, 1627, 1710, 1711, 1713, - 1726 - ], - [218, 267, 632, 1378, 1460, 1464, 1465, 1576, 1683, 1686, 1687], - [218, 267, 1693], - [218, 267, 605, 1479], - [218, 267, 1480], - [218, 267, 1689, 1690, 1691, 1692], - [206, 218, 267, 603, 1468, 1576, 1627], - [218, 267, 1725], - [206, 218, 267, 1474, 1572, 1576, 1626, 1659, 1680], - [218, 267, 1576, 1626, 1680], - [218, 267, 1716, 1717, 1718, 1719, 1720], - [206, 218, 267, 1527, 1572, 1576, 1626, 1680, 1710, 1711, 1713], - [206, 218, 267, 616, 1474, 1576, 1627], - [206, 218, 267, 1527, 1572, 1576, 1626, 1680, 1710, 1711], - [218, 267, 605], - [218, 267, 605, 616, 1576, 1626, 1627, 1680], - [218, 267, 1576, 1681], - [206, 218, 267, 603, 605, 1682], - [206, 218, 267, 1454, 1626, 1684], - [218, 267, 1685], - [218, 267, 1380, 1453], - [218, 267, 632, 1373], - [218, 267, 628], - [218, 267, 1458, 1460], - [218, 267, 1641, 1649], - [218, 267, 1631, 1632, 1633, 1634, 1635, 1636, 1638, 1641, 1649], - [218, 267, 1638, 1641], - [218, 267, 1631], - [218, 267, 1641], - [218, 267, 1637, 1641], - [218, 267, 1637], - [218, 267, 1630, 1634, 1639, 1641], - [218, 267, 1649], - [218, 267, 1641, 1643, 1649], - [218, 267, 1641, 1645, 1649], - [218, 267, 1639, 1641, 1644, 1646, 1648], - [218, 267, 1641, 1646], - [218, 267, 1629, 1631, 1637, 1641, 1647, 1649], - [218, 267, 1628, 1629, 1630, 1637, 1638, 1640, 1649], - [218, 267, 1728], - [206, 218, 267, 412, 1626], - [206, 218, 267, 412, 426, 628, 629, 1459], - [218, 267, 605, 628], - [218, 267, 1584, 1605, 1657], - [218, 267, 1584, 1605, 1652, 1657], - [206, 218, 267, 412, 1584, 1626], - [218, 267, 1584, 1605], - [218, 267, 1584, 1605, 1651, 1653, 1654, 1655], - [218, 267, 1584, 1605, 1654, 1657], - [218, 267, 1584, 1605, 1651], - [218, 267, 1651, 1653, 1656], - [218, 267, 1584, 1605, 1641, 1649, 1651, 1652], - [65, 218, 267], - [60, 218, 267], - [61, 62, 218, 267], - [61, 218, 267], - [69, 218, 267], - [218, 267, 1709], - [218, 267, 1443, 1527, 1708], - [218, 267, 1081, 1082], - [218, 267, 1082, 1083, 1084], - [218, 267, 1081, 1082, 1083], - [218, 267, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089], - [218, 267, 1001, 1080], - [218, 267, 1081], - [218, 267, 1001], - [218, 267, 1082, 1083], - [218, 267, 960], - [218, 267, 963], - [218, 267, 968, 970], - [218, 267, 956, 960, 972, 973], - [218, 267, 983, 986, 992, 994], - [218, 267, 955, 960], - [218, 267, 954], - [218, 267, 955], - [218, 267, 962], - [218, 267, 965], - [ - 218, 267, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, - 968, 969, 970, 971, 972, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, - 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 995, 996, 997, 998, 999, - 1000 - ], - [218, 267, 971], - [218, 267, 967], - [218, 267, 968], - [218, 267, 959, 960, 966], - [218, 267, 967, 968], - [218, 267, 974], - [218, 267, 995], - [218, 267, 960, 980, 982, 983, 984], - [218, 267, 983, 984, 986], - [218, 267, 960, 975, 978, 981, 988], - [218, 267, 975, 976], - [218, 267, 958, 975, 978, 981], - [218, 267, 959], - [218, 267, 960, 977, 980], - [218, 267, 976], - [218, 267, 977], - [218, 267, 975, 977], - [218, 267, 957, 958, 975, 977, 978, 979], - [218, 267, 977, 980], - [218, 267, 960, 980, 982], - [218, 267, 983, 984], - [218, 267, 1001, 1137], - [218, 267, 1138, 1139], - [218, 267, 1001, 1025], - [218, 267, 1025], - [ - 218, 267, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, - 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048 - ], - [218, 267, 1030], - [218, 267, 1036], - [218, 267, 1032, 1033, 1034, 1035], - [218, 267, 1104, 1276], - [218, 267, 1276, 1277], - [218, 267, 316, 1001, 1104], - [218, 267, 1257, 1258], - [218, 267, 1001, 1104, 1255, 1256], - [218, 267, 1255], - [218, 267, 1272, 1273], - [218, 267, 1104, 1272], - [218, 267, 1104], - [218, 267, 1189, 1190, 1191, 1192], - [218, 267, 1104, 1190], - [218, 267, 1001, 1104, 1189], - [218, 267, 1269], - [218, 267, 1199, 1200], - [218, 267, 1104, 1199], - [218, 267, 1001, 1104], - [218, 267, 1242, 1243], - [218, 267, 1104, 1105], - [218, 267, 1105, 1106], - [218, 267, 281, 316, 1001, 1104], - [218, 267, 1203, 1204], - [218, 267, 1104, 1203], - [218, 267, 1261, 1262], - [218, 267, 1104, 1261], - [218, 267, 1250, 1251, 1252], - [218, 267, 1104, 1250], - [218, 267, 1207], - [218, 267, 1210, 1211], - [218, 267, 1104, 1210], - [218, 267, 1214, 1215], - [218, 267, 1104, 1214], - [218, 267, 1218, 1219], - [218, 267, 1104, 1218], - [218, 267, 1222, 1223], - [218, 267, 1104, 1222], - [218, 267, 1235, 1236, 1237], - [218, 267, 1104, 1235], - [218, 267, 1001, 1104, 1234], - [218, 267, 1265, 1266], - [218, 267, 1104, 1265], - [218, 267, 1184, 1185], - [218, 267, 1104, 1184], - [218, 267, 1092], - [218, 267, 1091, 1092, 1093, 1099, 1100, 1101, 1102, 1103], - [218, 267, 1001, 1090, 1091], - [218, 267, 1091], - [218, 267, 1098], - [218, 267, 1096, 1097], - [218, 267, 1091, 1094, 1095], - [218, 267, 288], - [218, 267, 1001, 1090], - [218, 267, 1001, 1002], - [218, 267, 1002, 1004], - [218, 267, 1002], - [218, 267, 1003, 1004], - [218, 267, 1002, 1003], - [218, 267, 1006, 1012, 1013], - [218, 267, 1011], - [218, 267, 1007, 1008, 1009, 1010], - [218, 267, 1002, 1003, 1004, 1005, 1014, 1015, 1018], - [218, 267, 1017], - [218, 267, 1016], - [218, 267, 1001, 1003], - [218, 267, 1001, 1054], - [218, 267, 1001, 1019, 1049, 1050, 1051, 1053, 1054], - [218, 267, 1001, 1051, 1052], - [218, 267, 1001, 1051, 1052, 1053, 1054, 1056], - [218, 267, 1049, 1051, 1056], - [218, 267, 1001, 1051, 1052, 1053], - [218, 267, 1001, 1019, 1049, 1050], - [218, 267, 1001, 1051, 1052, 1053, 1056], - [218, 267, 1049, 1051], - [ - 218, 267, 1020, 1021, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1061, - 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069 - ], - [218, 267, 1060], - [218, 267, 1020], - [218, 267, 1054, 1057], - [218, 267, 1058, 1059], - [218, 267, 1021], - [218, 267, 1001, 1021], - [218, 267, 1001, 1019, 1020, 1021, 1053], - [206, 218, 267], - [206, 218, 267, 1470, 1471, 1531], - [206, 218, 267, 1470, 1486], - [206, 218, 267, 1471], - [206, 218, 267, 1470, 1471], - [206, 218, 267, 412, 1470, 1471], - [206, 218, 267, 1470, 1471, 1493], - [206, 218, 267, 1470, 1471, 1483, 1484, 1485], - [206, 218, 267, 412, 1470, 1471, 1496], - [206, 218, 267, 1470, 1471, 1483, 1485, 1491], - [206, 218, 267, 1470, 1471, 1483, 1484, 1485, 1491, 1492], - [206, 218, 267, 412, 1470, 1471, 1492, 1493], - [206, 218, 267, 1470, 1471, 1483, 1540], - [206, 218, 267, 1471, 1492], - [206, 218, 267, 1470, 1471, 1483, 1484, 1485, 1491], - [206, 218, 267, 1470, 1471, 1489, 1490], - [206, 218, 267, 1470, 1471, 1492], - [206, 218, 267, 1470, 1471, 1483], - [206, 218, 267, 1470, 1471, 1492, 1553], - [206, 218, 267, 1470, 1471, 1492, 1548, 1554], - [218, 267, 862], - [218, 267, 854, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866], - [218, 267, 832], - [218, 267, 832, 856], - [218, 267, 854], - [218, 267, 832, 862], - [ - 218, 267, 636, 637, 638, 639, 640, 642, 643, 644, 646, 647, 648, 649, 650, - 651, 652, 653, 654, 658, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, - 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 693, 694, 696, 697, 698, 699, 700, 704, - 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, - 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, - 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 758, - 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 772, 773, 774, - 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, - 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, - 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, - 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831 - ], - [218, 267, 1362, 1363, 1365], - [218, 267, 1305, 1361, 1362, 1363, 1364, 1366], - [218, 267, 1362, 1363], - [218, 267, 1305], - [218, 267, 832, 930], - [218, 267, 832, 930, 948, 949, 950, 951], - [ - 218, 267, 931, 932, 933, 934, 935, 936, 939, 940, 941, 943, 944, 945, 946, - 947 - ], - [218, 267, 632, 938], - [218, 267, 938], - [218, 267, 582], - [218, 267, 589], - [218, 267, 593, 632], - [218, 267, 632, 832, 937], - [218, 267, 942], - [218, 267, 1370, 1371], - [218, 267, 832, 1369], - [218, 267, 1370], - [218, 267, 948, 949, 1077, 1078], - [218, 267, 832, 938, 947, 952, 1079, 1304, 1372], - [218, 267, 948, 949, 1302, 1303], - [218, 267, 654, 668, 722], - [218, 267, 694, 698], - [218, 267, 674, 688, 694], - [218, 267, 674, 690, 692, 693], - [218, 267, 638], - [218, 267, 662, 663, 674, 688, 694, 695, 697], - [218, 267, 650, 654, 670, 683], - [ - 218, 267, 637, 638, 644, 647, 650, 651, 652, 654, 660, 661, 662, 663, 669, - 670, 671, 674, 680, 681, 683, 684, 685, 686, 687 - ], - [218, 267, 649, 674, 688], - [218, 267, 674], - [218, 267, 653, 654, 668, 669, 670, 680, 683, 688, 705], - [218, 267, 671, 680], - [218, 267, 637, 648, 650, 658, 669, 671, 672, 674, 680, 715], - [218, 267, 660, 674, 680], - [218, 267, 644, 647, 754], - [218, 267, 754], - [218, 267, 681, 685, 688], - [218, 267, 681], - [218, 267, 662, 688], - [218, 267, 754, 832], - [218, 267, 680, 681], - [218, 267, 756, 757], - [218, 267, 676, 832], - [218, 267, 681, 754], - [218, 267, 662, 674, 688], - [218, 267, 661, 662, 674, 732], - [218, 267, 663, 674, 688], - [218, 267, 663, 674], - [218, 267, 665], - [218, 267, 654], - [ - 218, 267, 636, 637, 638, 644, 647, 648, 649, 658, 669, 670, 671, 672, 673, - 680, 688 - ], - [218, 267, 685, 688], - [218, 267, 637, 650, 661, 674, 680, 684, 685, 688], - [218, 267, 669], - [218, 267, 644, 670, 674, 688], - [218, 267, 644, 687], - [218, 267, 692, 701, 702, 703, 705, 706, 707, 708, 709, 710, 711], - [218, 267, 644], - [218, 267, 640, 704, 832], - [218, 267, 682, 685], - [218, 267, 642, 644], - [218, 267, 642, 644, 645, 704], - [218, 267, 644, 674, 687, 691], - [218, 267, 644, 674], - [218, 267, 684, 724], - [218, 267, 670, 680, 684], - [218, 267, 670, 684], - [218, 267, 637], - [218, 267, 649], - [218, 267, 651], - [218, 267, 639, 644, 645, 648], - [ - 218, 267, 636, 644, 650, 652, 653, 654, 660, 662, 663, 665, 666, 668, 669, - 680 + 206, 218, 267, 284, 285, 633, 643, 2577, 2613, 2621, 2630, 2676, 2760, + 2761, 2763, 2776 ], [ - 218, 267, 636, 637, 638, 640, 643, 644, 647, 648, 649, 658, 664, 668, 672, - 674, 675, 678, 679 - ], - [218, 267, 680], - [218, 267, 675, 677], - [218, 267, 648, 655, 656], - [218, 267, 636], - [218, 267, 636, 655, 657, 659, 681], - [218, 267, 648, 658, 680], - [218, 267, 646], - [218, 267, 680, 688], - [218, 267, 661], - [218, 267, 647], - [218, 267, 638, 644, 662, 663, 673, 674, 677, 680, 681, 682, 683, 684], - [218, 267, 640, 664, 681, 688], - [218, 267, 644, 647, 648], - [218, 267, 667], - [218, 267, 668], - [218, 267, 658], - [218, 267, 640, 641, 642, 643, 645], - [218, 267, 676], - [218, 267, 644, 645, 674], - [218, 267, 677], - [218, 267, 670], - [218, 267, 670, 688], - [218, 267, 677, 678, 680], - [218, 267, 777], - [218, 267, 776], - [218, 267, 674, 680], - [218, 267, 652, 670], - [218, 267, 664, 677], - [218, 267, 654, 688], - [218, 267, 636, 644, 651, 654, 668, 670, 680, 683], - [218, 267, 637, 661, 676, 677, 678, 680, 688], - [218, 267, 780], - [218, 267, 779], - [218, 267, 685], - [218, 267, 658, 669], - [218, 267, 648, 661, 795], - [218, 267, 688], - [218, 267, 782], - [218, 267, 673], - [218, 267, 675, 676, 680], - [218, 267, 802], - [218, 267, 774], - [218, 267, 773], - [218, 267, 674, 677, 680, 685, 688], - [218, 267, 651, 684], - [218, 267, 646, 647], - [218, 267, 642, 644, 645, 649], - [218, 267, 676, 677, 680], - [218, 267, 809], - [218, 267, 644, 673, 674, 688], - [218, 267, 643, 673, 688], - [218, 267, 644, 649, 771], - [218, 267, 696, 698], - [206, 218, 267, 914], - [206, 218, 267, 832, 914], - [218, 267, 914, 915, 916, 917, 918, 919, 921, 922, 923, 928, 929], - [206, 218, 267, 832], - [218, 267, 924, 925, 926], - [206, 218, 267, 832, 914, 920], - [218, 267, 920], - [218, 267, 832, 920], - [218, 267, 832, 914, 920], - [218, 267, 832, 914, 920, 927], - [218, 267, 832, 914], - [218, 267, 832, 835], - [ - 218, 267, 832, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, - 848, 849 + 206, 218, 267, 284, 285, 621, 651, 654, 1386, 1391, 1476, 1486, 1487, + 2621, 2732, 2735, 2736 ], [ - 218, 267, 832, 833, 834, 850, 851, 852, 853, 868, 878, 880, 888, 889, 890, - 891, 892, 893, 894, 895, 896, 899, 902, 905, 908, 911, 912, 913 + 218, 267, 284, 285, 651, 654, 1391, 1476, 1482, 1486, 1487, 2621, 2732, + 2735, 2736 ], - [218, 267, 907], - [218, 267, 832, 906], - [218, 267, 898], - [218, 267, 832, 897], - [218, 267, 901], - [218, 267, 832, 900], - [218, 267, 910], - [218, 267, 832, 909], - [218, 267, 904], - [218, 267, 832, 903], - [218, 267, 832, 867], - [218, 267, 832, 836], - [218, 267, 832, 835, 837], - [218, 267, 884], - [218, 267, 832, 882, 883], - [218, 267, 881, 884, 885, 886, 887], - [218, 267, 832, 878], - [218, 267, 879], - [218, 267, 875, 876, 877], - [218, 267, 832, 875], - [218, 267, 869, 870, 872, 873, 874], - [218, 267, 869], - [218, 267, 832, 869, 870, 871, 872, 873], - [218, 267, 832, 870, 872], - [218, 267, 867], - [218, 267, 876], - [218, 267, 1155, 1156, 1157], + [218, 267, 284, 285, 2743], + [218, 267, 284, 285, 2621], + [218, 267, 284, 285, 631, 633, 1486, 2621], + [218, 267, 284, 285, 2739, 2740, 2741, 2742], + [206, 218, 267, 284, 285, 631, 1491, 2621, 2676], + [218, 267, 284, 285, 2775], + [206, 218, 267, 284, 285, 1488, 2613, 2621, 2675, 2707, 2729], + [218, 267, 284, 285, 2766, 2767, 2768, 2769, 2770], + [206, 218, 267, 284, 285, 2577, 2613, 2621, 2675, 2729, 2760, 2761, 2763], + [206, 218, 267, 284, 285, 643, 1488, 2621, 2676], + [206, 218, 267, 284, 285, 2577, 2613, 2621, 2675, 2729, 2760, 2761], + [218, 267, 284, 285, 633, 1486], + [218, 267, 284, 285, 633, 643, 2621, 2675, 2676, 2707, 2729], + [218, 267, 284, 285, 2621, 2730], + [206, 218, 267, 284, 285, 631, 633, 1486, 1488, 2731], + [206, 218, 267, 284, 285, 1476, 2675, 2733], + [218, 267, 284, 285, 2734], + [218, 267, 284, 285, 1397, 1475], + [218, 267, 284, 285, 1386, 1476], + [218, 267, 284, 285, 654, 1386, 1478], + [218, 267, 284, 285, 654, 1386], + [218, 267, 284, 285, 650], + [218, 267, 284, 285, 1480, 1482], + [218, 267, 284, 285, 2691, 2699], + [218, 267, 284, 285, 2681, 2682, 2683, 2684, 2685, 2686, 2688, 2691, 2699], + [218, 267, 284, 285, 2688, 2691], + [218, 267, 284, 285, 2681], + [218, 267, 284, 285, 2691], + [218, 267, 284, 285, 2687, 2691], + [218, 267, 284, 285, 2687], + [218, 267, 284, 285, 2680, 2684, 2689, 2691], + [218, 267, 284, 285, 2699], + [218, 267, 284, 285, 2691, 2693, 2699], + [218, 267, 284, 285, 2691, 2695, 2699], + [218, 267, 284, 285, 2689, 2691, 2694, 2696, 2698], + [218, 267, 284, 285, 2691, 2696], + [218, 267, 284, 285, 2679, 2681, 2687, 2691, 2697, 2699], + [218, 267, 284, 285, 2678, 2679, 2680, 2687, 2688, 2690, 2699], + [218, 267, 284, 285, 2778], + [206, 218, 267, 284, 285, 2166, 2171], + [218, 267, 284, 285, 2167, 2171, 2172, 2173, 2174, 2175], + [218, 267, 284, 285, 2167, 2171, 2172, 2173, 2174], + [206, 218, 267, 284, 285, 2163, 2164, 2166, 2167, 2170], + [206, 218, 267, 284, 285, 2166, 2167, 2168, 2171], + [206, 218, 267, 284, 285, 2163, 2164, 2166], + [218, 267, 284, 285, 2223], + [218, 267, 284, 285, 2224, 2234], [ - 218, 267, 832, 1111, 1112, 1113, 1114, 1116, 1117, 1118, 1119, 1120, 1121, - 1122, 1123, 1124, 1126, 1127, 1128, 1129, 1131, 1132, 1133, 1134, 1135, - 1136, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, - 1152, 1153, 1154, 1158, 1159, 1180 + 218, 267, 284, 285, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, + 2232, 2233 ], - [218, 267, 832, 1130], - [218, 267, 279, 832], - [218, 267, 281, 832, 1104], - [218, 267, 278, 281, 832], - [218, 267, 281, 832, 1118], - [218, 267, 281, 832, 1104, 1112], - [218, 267, 284], - [218, 267, 832, 1125], - [218, 267, 832, 1118], - [218, 267, 832, 1110], - [218, 267, 1140], - [218, 267, 832, 1001, 1070, 1117], - [218, 267, 832, 1117, 1118], - [218, 267, 281, 283], - [218, 267, 832, 1114], - [218, 267, 1115], - [218, 267, 832, 1001, 1070, 1104, 1116], - [218, 267, 832, 1001], - [218, 267, 281], + [206, 218, 267, 284, 285, 354, 2164, 2221, 2223], [ - 218, 267, 832, 1180, 1181, 1182, 1183, 1187, 1188, 1194, 1198, 1202, 1206, - 1209, 1213, 1217, 1221, 1225, 1226, 1239, 1240, 1241, 1246, 1249, 1254, - 1260, 1264, 1268, 1271, 1275, 1279, 1282, 1284, 1285, 1286, 1287, 1293, - 1298, 1299, 1300, 1301 + 218, 267, 284, 285, 2238, 2239, 2245, 2246, 2247, 2250, 2251, 2252, 2253, + 2254, 2255, 2256, 2257, 2258, 2259, 2261, 2262, 2264, 2266 ], - [218, 267, 1288, 1289, 1290, 1291, 1292], - [218, 267, 281, 832, 1104, 1107, 1181, 1182], - [218, 267, 832, 1186], - [218, 267, 832, 1278], - [218, 267, 832, 1104], - [218, 267, 832, 1259], - [218, 267, 832, 1274], - [218, 267, 281, 832, 1193], - [218, 267, 832, 1104, 1195, 1197], - [218, 267, 1104, 1196], - [218, 267, 832, 1296], - [218, 267, 1297], - [218, 267, 1104, 1294], - [218, 267, 1294, 1295], - [218, 267, 832, 1270], - [218, 267, 832, 1201], - [218, 267, 832, 1244, 1245], - [218, 267, 298], - [218, 267, 832, 1247, 1248], - [218, 267, 832, 1205], - [218, 267, 832, 1263], - [218, 267, 832, 1253], - [218, 267, 832, 1208], - [218, 267, 832, 1212], - [218, 267, 832, 1216], - [218, 267, 832, 1220], - [218, 267, 832, 1224], - [218, 267, 832, 1283], - [218, 267, 832, 1238], - [218, 267, 832, 1267], - [218, 267, 832, 1280, 1281], - [218, 267, 832, 1181, 1182], - [218, 267, 1070, 1181], - [218, 267, 832, 1001, 1070, 1104, 1181], - [218, 267, 832, 1163], [ - 218, 267, 832, 1160, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, - 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179 + 218, 267, 284, 285, 2238, 2239, 2245, 2246, 2247, 2248, 2249, 2250, 2251, + 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, + 2264, 2265 ], - [218, 267, 832, 1001, 1049], - [218, 267, 832, 1001, 1070], - [218, 267, 1001, 1070], - [218, 267, 832, 1001, 1163], - [218, 267, 1001, 1163], - [218, 267, 1163], - [218, 267, 1001, 1070, 1163], - [218, 267, 832, 1070, 1073], - [218, 267, 832, 1071, 1073, 1074, 1075, 1076], - [218, 267, 832, 1071, 1073], - [218, 267, 832, 1071, 1072], - [218, 267, 1367, 1368], - [218, 267, 1367], - [218, 267, 1379], - [218, 267, 1728, 1729, 1730, 1731, 1732], - [218, 267, 1728, 1730], - [218, 267, 281, 316], - [67, 69, 218, 267, 1306], - [60, 67, 218, 267, 1306, 1735], - [218, 267, 1736], - [218, 267, 278, 279, 316, 1740], - [218, 267, 279, 316], + [206, 218, 267, 284, 285, 2237], + [206, 218, 267, 284, 285], + [206, 218, 267, 284, 285, 2166, 2268], + [206, 218, 267, 284, 285, 2166, 2168, 2268, 2269], + [218, 267, 284, 285, 2268, 2270, 2271, 2272], + [218, 267, 284, 285, 2268, 2270, 2271], + [206, 218, 267, 284, 285, 2166], + [218, 267, 284, 285, 2274], + [206, 218, 267, 284, 285, 2163, 2164, 2166, 2243], + [218, 267, 284, 285, 2280], + [218, 267, 284, 285, 2276, 2277, 2278], + [218, 267, 284, 285, 2276, 2277], + [206, 218, 267, 284, 285, 2166, 2168, 2276], + [218, 267, 284, 285, 2169, 2282, 2283, 2284], + [218, 267, 284, 285, 2169, 2282, 2283], + [206, 218, 267, 284, 285, 2166, 2168, 2169], + [206, 218, 267, 284, 285, 2163, 2164, 2166, 2170], + [206, 218, 267, 284, 285, 2168, 2169], + [206, 218, 267, 284, 285, 2166, 2169], + [206, 218, 267, 284, 285, 2166, 2244], + [206, 218, 267, 284, 285, 2166, 2168], [ - 218, 267, 293, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, - 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1825, 1826, 1827, 1828, 1829 + 218, 267, 284, 285, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, + 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2264, 2286, 2287, + 2288, 2289, 2290, 2291, 2292, 2294 ], - [218, 267, 1830], - [218, 267, 1809, 1810, 1830], - [218, 267, 293, 1807, 1812, 1830], - [218, 267, 293, 1813, 1814, 1830], - [218, 267, 293, 1813, 1830], - [218, 267, 293, 1807, 1813, 1830], - [218, 267, 293, 1819, 1830], - [218, 267, 293, 1830], - [218, 267, 1808, 1824, 1830], - [218, 267, 1807, 1824, 1830], - [218, 267, 293, 1807], - [218, 267, 1812], - [218, 267, 293], - [218, 267, 1807, 1830], [ - 218, 267, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, - 1754, 1755, 1756, 1757, 1758, 1763, 1764, 1766, 1768, 1769, 1770, 1771, - 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1784, 1785, - 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, - 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806 + 218, 267, 284, 285, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, + 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2264, 2265, 2286, + 2287, 2288, 2289, 2290, 2291, 2292, 2293 ], - [218, 267, 1744, 1746, 1751], - [218, 267, 1746, 1783], - [218, 267, 1745, 1750], - [218, 267, 1744, 1745, 1746, 1747, 1748, 1749], - [218, 267, 1745, 1746], - [218, 267, 1746, 1782], - [218, 267, 1744, 1745, 1746, 1751], - [218, 267, 1744, 1745, 1759], - [218, 267, 1744, 1745, 1746, 1747, 1750], - [218, 267, 1744, 1745], - [218, 267, 1745], - [218, 267, 1744, 1746, 1750, 1751], - [218, 267, 1745, 1746, 1747, 1750, 1783], - [218, 267, 1750], - [218, 267, 1750, 1790], - [218, 267, 1744, 1745, 1746, 1750], - [218, 267, 1745, 1746, 1747, 1750], - [218, 267, 1744, 1745, 1746, 1750, 1751], - [218, 267, 1807], - [218, 267, 1744, 1745, 1758], - [218, 267, 1760, 1761], - [218, 267, 1744, 1745, 1759, 1760], - [218, 267, 1744, 1745, 1758, 1759, 1761], - [218, 267, 1760], - [218, 267, 1744, 1745, 1760, 1761], - [218, 267, 1767], - [218, 267, 1762], - [218, 267, 1765], - [218, 267, 1744, 1750], - [218, 267, 1831], - [218, 267, 1832], - [218, 267, 278, 298, 306, 316], - [218, 264, 267], - [218, 266, 267], - [267], - [218, 267, 272, 301], - [218, 267, 268, 273, 278, 286, 298, 309], - [218, 267, 268, 269, 278, 286], - [213, 214, 215, 218, 267], - [218, 267, 270, 310], - [218, 267, 271, 272, 279, 287], - [218, 267, 272, 298, 306], - [218, 267, 273, 275, 278, 286], - [218, 266, 267, 274], - [218, 267, 275, 276], - [218, 267, 277, 278], - [218, 266, 267, 278], - [218, 267, 278, 279, 280, 298, 309], - [218, 267, 278, 279, 280, 293, 298, 301], - [218, 260, 267, 275, 278, 281, 286, 298, 309], - [218, 267, 278, 279, 281, 282, 286, 298, 306, 309], - [218, 267, 281, 283, 298, 306, 309], + [206, 218, 267, 284, 285, 2166, 2243, 2244], + [206, 218, 267, 284, 285, 2166, 2243], + [206, 218, 267, 284, 285, 2166, 2168, 2184, 2244], + [206, 218, 267, 284, 285, 2216], + [206, 218, 267, 284, 285, 2163, 2164, 2236], + [ + 218, 267, 284, 285, 2296, 2297, 2304, 2305, 2306, 2307, 2308, 2309, 2310, + 2311, 2312, 2313, 2314, 2315, 2317, 2320, 2323, 2324, 2325 + ], + [ + 218, 267, 284, 285, 2263, 2296, 2297, 2304, 2305, 2306, 2307, 2308, 2309, + 2310, 2311, 2312, 2313, 2314, 2315, 2317, 2320, 2323, 2324 + ], + [218, 267, 284, 285, 354, 2165, 2303, 2322], + [206, 218, 267, 284, 285, 2323], + [206, 218, 267, 284, 285, 354], + [218, 267, 284, 285, 2327, 2328], + [218, 267, 284, 285, 2327], + [ + 218, 267, 284, 285, 2221, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, + 2330 + ], + [ + 218, 267, 284, 285, 2221, 2223, 2225, 2226, 2227, 2228, 2229, 2230, 2231, + 2232 + ], + [206, 218, 267, 284, 285, 2166, 2168, 2184], + [206, 218, 267, 284, 285, 354, 2163, 2164, 2220, 2223], + [218, 267, 284, 285, 2222], + [206, 218, 267, 284, 285, 2168, 2183, 2184, 2193, 2216, 2220, 2221, 2536], + [206, 218, 267, 284, 285, 2166, 2223], + [206, 218, 267, 284, 285, 2332], + [218, 267, 284, 285, 2333, 2334], + [218, 267, 284, 285, 2332, 2333], + [ + 218, 267, 284, 285, 2336, 2337, 2338, 2339, 2340, 2341, 2343, 2345, 2346, + 2347, 2348, 2349, 2350, 2351, 2352 + ], + [ + 218, 267, 284, 285, 2223, 2336, 2337, 2338, 2339, 2340, 2341, 2343, 2345, + 2346, 2347, 2348, 2349, 2350, 2351 + ], + [206, 218, 267, 284, 285, 2166, 2168, 2184, 2344], + [206, 218, 267, 284, 285, 354, 2163, 2164, 2220, 2223, 2344], + [206, 218, 267, 284, 285, 2342, 2343], + [206, 218, 267, 284, 285, 2166, 2342, 2344], + [206, 218, 267, 284, 285, 2166, 2168, 2243], + [218, 267, 284, 285, 2243, 2354, 2355, 2356, 2357, 2358, 2359, 2360], + [218, 267, 284, 285, 2243, 2354, 2355, 2356, 2357, 2358, 2359], + [206, 218, 267, 284, 285, 2166, 2242], + [206, 218, 267, 284, 285, 2168, 2243], + [218, 267, 284, 285, 2362, 2363, 2364], + [218, 267, 284, 285, 2362, 2363], + [206, 218, 267, 284, 285, 2211], + [206, 218, 267, 284, 285, 2184, 2192, 2211], + [206, 218, 267, 284, 285, 2166, 2196], + [206, 218, 267, 284, 285, 2164, 2183, 2211, 2220], + [206, 218, 267, 284, 285, 2192, 2211], + [218, 267, 284, 285, 2211], + [218, 267, 284, 285, 2163, 2211], + [218, 267, 284, 285, 2192, 2211], + [218, 267, 284, 285, 2164, 2193, 2211], + [218, 267, 284, 285, 2201, 2211], + [206, 218, 267, 284, 285, 2166, 2192, 2201, 2211], + [206, 218, 267, 284, 285, 2190, 2211], + [218, 267, 284, 285, 2165, 2183, 2193, 2220], + [ + 218, 267, 284, 285, 2189, 2191, 2192, 2194, 2197, 2198, 2199, 2200, 2202, + 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, + 2215 + ], + [218, 267, 284, 285, 2201], + [ + 206, 218, 267, 284, 285, 2164, 2189, 2191, 2192, 2193, 2194, 2197, 2198, + 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, + 2212, 2216 + ], + [206, 218, 267, 284, 285, 2163, 2164, 2166, 2240], + [206, 218, 267, 284, 285, 2241, 2243], + [218, 267, 284, 285, 2241], + [ + 218, 267, 284, 285, 2165, 2176, 2235, 2242, 2267, 2273, 2275, 2279, 2281, + 2285, 2293, 2295, 2322, 2326, 2329, 2331, 2335, 2353, 2361, 2365, 2367, + 2369, 2371, 2378, 2393, 2403, 2419, 2432, 2439, 2443, 2445, 2453, 2473, + 2483, 2487, 2494, 2509, 2511, 2513, 2521, 2533, 2535 + ], + [206, 218, 267, 284, 285, 2166, 2361], + [218, 267, 284, 285, 2366], + [206, 218, 267, 284, 285, 2166, 2303], + [ + 218, 267, 284, 285, 2296, 2297, 2303, 2304, 2305, 2306, 2307, 2308, 2309, + 2310, 2311, 2312, 2313, 2314, 2315, 2317, 2318, 2319, 2320, 2321 + ], + [ + 218, 267, 284, 285, 2263, 2296, 2297, 2302, 2303, 2304, 2305, 2306, 2307, + 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2317, 2318, 2319, 2320 + ], + [ + 206, 218, 267, 284, 285, 354, 2163, 2164, 2220, 2298, 2299, 2300, 2301, + 2302 + ], + [206, 218, 267, 284, 285, 2298, 2303], + [218, 267, 284, 285, 2298], + [ + 206, 218, 267, 284, 285, 2166, 2168, 2183, 2192, 2193, 2216, 2220, 2303, + 2322 + ], + [218, 267, 284, 285, 354, 2303, 2316], + [206, 218, 267, 284, 285, 2298], + [206, 218, 267, 284, 285, 2166, 2302], + [206, 218, 267, 284, 285, 2303], + [218, 267, 284, 285, 2368], + [218, 267, 284, 285, 2370], + [218, 267, 284, 285, 2372, 2373, 2374, 2375, 2376, 2377], + [218, 267, 284, 285, 2372, 2373, 2374, 2375, 2376], + [206, 218, 267, 284, 285, 2166, 2372], + [ + 218, 267, 284, 285, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, + 2388, 2389, 2390, 2391, 2392 + ], + [ + 218, 267, 284, 285, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, + 2388, 2389, 2390, 2391 + ], + [206, 218, 267, 284, 285, 2166, 2168, 2244], + [206, 218, 267, 284, 285, 2166, 2395], + [218, 267, 284, 285, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402], + [218, 267, 284, 285, 2395, 2396, 2397, 2398, 2399, 2400, 2401], + [206, 218, 267, 284, 285, 2163, 2164, 2166, 2243, 2394], + [ + 218, 267, 284, 285, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, + 2416, 2417, 2418 + ], + [ + 218, 267, 284, 285, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, + 2415, 2416, 2417 + ], + [206, 218, 267, 284, 285, 354, 2163, 2164, 2220, 2406], + [218, 267, 284, 285, 2405], + [ + 206, 218, 267, 284, 285, 2168, 2183, 2184, 2193, 2216, 2220, 2404, 2407, + 2419, 2536 + ], + [206, 218, 267, 284, 285, 2166, 2406], + [218, 267, 284, 285, 2422, 2424, 2425, 2426, 2427, 2428, 2429, 2431], + [218, 267, 284, 285, 2421, 2422, 2424, 2425, 2426, 2427, 2428, 2429, 2430], + [206, 218, 267, 284, 285, 2423], + [206, 218, 267, 284, 285, 354, 2163, 2164, 2220, 2421], + [218, 267, 284, 285, 2420], + [206, 218, 267, 284, 285, 2168, 2183, 2193, 2216, 2220, 2422, 2536], + [206, 218, 267, 284, 285, 2166, 2421], + [218, 267, 284, 285, 2433, 2434, 2435, 2436, 2437, 2438], + [218, 267, 284, 285, 2433, 2434, 2435, 2436, 2437], + [206, 218, 267, 284, 285, 2166, 2433], + [218, 267, 284, 285, 2444], + [218, 267, 284, 285, 2440, 2441, 2442], + [218, 267, 284, 285, 2440, 2441], + [206, 218, 267, 284, 285, 2166, 2446], + [218, 267, 284, 285, 2446, 2447, 2448, 2449, 2450, 2451, 2452], + [218, 267, 284, 285, 2446, 2447, 2448, 2449, 2450, 2451], + [ + 218, 267, 284, 285, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, + 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472 + ], + [ + 218, 267, 284, 285, 2263, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, + 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471 + ], + [218, 267, 284, 285, 2263], + [206, 218, 267, 284, 285, 2166, 2474], + [218, 267, 284, 285, 2474, 2475, 2476, 2477, 2478, 2480, 2481, 2482], + [218, 267, 284, 285, 2474, 2475, 2476, 2477, 2478, 2480, 2481], + [206, 218, 267, 284, 285, 2166, 2474, 2479], + [218, 267, 284, 285, 2484, 2485, 2486], + [218, 267, 284, 285, 2484, 2485], + [206, 218, 267, 284, 285, 2163, 2165, 2166, 2243], + [206, 218, 267, 284, 285, 2166, 2484], + [218, 267, 284, 285, 2488, 2489, 2490, 2491, 2492, 2493], + [218, 267, 284, 285, 2488, 2489, 2490, 2491, 2492], + [206, 218, 267, 284, 285, 2166, 2488, 2489], + [206, 218, 267, 284, 285, 2166, 2489], + [206, 218, 267, 284, 285, 2166, 2168, 2488, 2489], + [206, 218, 267, 284, 285, 2163, 2164, 2166, 2488], + [218, 267, 284, 285, 2496], + [ + 218, 267, 284, 285, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, + 2504, 2505, 2506, 2507, 2508 + ], + [ + 218, 267, 284, 285, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, + 2504, 2505, 2506, 2507 + ], + [206, 218, 267, 284, 285, 2166, 2244, 2496], + [206, 218, 267, 284, 285, 2497], + [206, 218, 267, 284, 285, 2166, 2168, 2496], + [206, 218, 267, 284, 285, 2495], + [218, 267, 284, 285, 2512], + [218, 267, 284, 285, 2510], + [206, 218, 267, 284, 285, 2166, 2515], + [218, 267, 284, 285, 2514, 2515, 2516, 2517, 2518, 2519, 2520], + [218, 267, 284, 285, 2166, 2514, 2515, 2516, 2517, 2518, 2519], + [206, 218, 267, 284, 285, 2166, 2293], + [218, 267, 284, 285, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2532], + [218, 267, 284, 285, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531], + [206, 218, 267, 284, 285, 354, 2163, 2164, 2220, 2523], + [218, 267, 284, 285, 2522], + [206, 218, 267, 284, 285, 2168, 2183, 2193, 2216, 2220, 2524, 2533, 2536], + [206, 218, 267, 284, 285, 2166, 2523], + [206, 218, 267, 284, 285, 2164], + [218, 267, 284, 285, 2166, 2534], + [206, 218, 267, 284, 285, 2166, 2195], + [218, 267, 284, 285, 2163], + [218, 267, 284, 285, 2217, 2218, 2219], + [206, 218, 267, 284, 285, 2168, 2183, 2218], + [218, 267, 284, 285, 2166, 2168, 2193, 2216, 2217], + [218, 267, 284, 285, 2162], + [206, 218, 267, 284, 285, 2165], + [206, 218, 267, 284, 285, 2185, 2216], + [218, 267, 284, 285, 2179], + [206, 218, 267, 284, 285, 354, 2179], + [218, 267, 284, 285, 2034], + [218, 267, 284, 285, 2177, 2179, 2180, 2181, 2182], + [218, 267, 284, 285, 2178, 2179], + [206, 218, 267, 284, 285, 354, 2675], + [206, 218, 267, 284, 285, 354, 527, 650, 651, 1481], + [218, 267, 284, 285, 633, 650], + [218, 267, 284, 285, 2630, 2651, 2705], + [218, 267, 284, 285, 2630, 2651, 2700, 2705], + [206, 218, 267, 284, 285, 354, 2630, 2675], + [218, 267, 284, 285, 2630, 2651], + [218, 267, 284, 285, 2630, 2651, 2677, 2701, 2702, 2703], + [218, 267, 284, 285, 2630, 2651, 2702, 2705], + [218, 267, 284, 285, 2630, 2651, 2677], + [218, 267, 284, 285, 2677, 2701, 2704], + [218, 267, 284, 285, 2630, 2651, 2677, 2691, 2699, 2700], + [218, 267, 284, 285, 1549], + [218, 267, 284, 285, 1550], + [218, 267, 284, 285, 1549, 1550, 1551, 1552, 1553, 1554, 1555], + [65, 218, 267, 284, 285], + [60, 218, 267, 284, 285], + [61, 62, 218, 267, 284, 285], + [61, 218, 267, 284, 285], + [69, 218, 267, 284, 285], + [218, 267, 284, 285, 2185], + [218, 267, 284, 285, 2186, 2187], + [206, 218, 267, 284, 285, 2188], + [218, 267, 284, 285, 2759], + [218, 267, 284, 285, 1464, 2577, 2758], + [218, 267, 284, 285, 1120, 1121], + [218, 267, 284, 285, 1121, 1122, 1123], + [218, 267, 284, 285, 1119, 1120, 1121, 1122, 1123, 1124, 1125], + [218, 267, 284, 285, 1043, 1119], + [218, 267, 284, 285, 1120], + [218, 267, 284, 285, 1043], + [218, 267, 284, 285, 1121, 1122], + [218, 267, 284, 285, 1002], + [218, 267, 284, 285, 1005], + [218, 267, 284, 285, 1010, 1012], + [218, 267, 284, 285, 998, 1002, 1014, 1015], + [218, 267, 284, 285, 1025, 1028, 1034, 1036], + [218, 267, 284, 285, 997, 1002], + [218, 267, 284, 285, 996], + [218, 267, 284, 285, 997], + [218, 267, 284, 285, 1004], + [218, 267, 284, 285, 1007], + [ + 218, 267, 284, 285, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, + 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1016, 1017, 1018, + 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, + 1031, 1032, 1033, 1034, 1035, 1037, 1038, 1039, 1040, 1041, 1042 + ], + [218, 267, 284, 285, 1013], + [218, 267, 284, 285, 1009], + [218, 267, 284, 285, 1010], + [218, 267, 284, 285, 1001, 1002, 1008], + [218, 267, 284, 285, 1009, 1010], + [218, 267, 284, 285, 1016], + [218, 267, 284, 285, 1037], + [218, 267, 284, 285, 1002, 1022, 1024, 1025, 1026], + [218, 267, 284, 285, 1025, 1026, 1028], + [218, 267, 284, 285, 1002, 1017, 1020, 1023, 1030], + [218, 267, 284, 285, 1017, 1018], + [218, 267, 284, 285, 1000, 1017, 1020, 1023], + [218, 267, 284, 285, 1001], + [218, 267, 284, 285, 1002, 1019, 1022], + [218, 267, 284, 285, 1018], + [218, 267, 284, 285, 1019], + [218, 267, 284, 285, 1017, 1019], + [218, 267, 284, 285, 999, 1000, 1017, 1019, 1020, 1021], + [218, 267, 284, 285, 1019, 1022], + [218, 267, 284, 285, 1002, 1022, 1024], + [218, 267, 284, 285, 1025, 1026], + [218, 267, 284, 285, 1043, 1178], + [218, 267, 284, 285, 1179, 1180], + [218, 267, 284, 285, 1043, 1065], + [218, 267, 284, 285, 1065], + [ + 218, 267, 284, 285, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, + 1071, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, + 1087 + ], + [218, 267, 284, 285, 1070], + [218, 267, 284, 285, 1075], + [218, 267, 284, 285, 1072, 1073, 1074], + [218, 267, 284, 285, 1140, 1342], + [218, 267, 284, 285, 1342, 1343], + [218, 267, 284, 285, 317, 1043, 1140], + [218, 267, 284, 285, 1323, 1324], + [218, 267, 284, 285, 1043, 1140, 1321, 1322], + [218, 267, 284, 285, 1321], + [218, 267, 284, 285, 1338, 1339], + [218, 267, 284, 285, 1140, 1338], + [218, 267, 284, 285, 1140], + [218, 267, 284, 285, 1226, 1227, 1228, 1229], + [218, 267, 284, 285, 1140, 1227], + [218, 267, 284, 285, 1043, 1140, 1226], + [218, 267, 284, 285, 1335], + [218, 267, 284, 285, 1236, 1237], + [218, 267, 284, 285, 1140, 1236], + [218, 267, 284, 285, 1043, 1140], + [218, 267, 284, 285, 1308, 1309], + [218, 267, 284, 285, 1140, 1141], + [218, 267, 284, 285, 1141, 1142], + [218, 267, 281, 284, 285, 317, 1043, 1140], + [218, 267, 284, 285, 1263, 1264], + [218, 267, 284, 285, 1140, 1263], + [218, 267, 284, 285, 1240, 1241], + [218, 267, 284, 285, 1140, 1240], + [218, 267, 284, 285, 1327, 1328], + [218, 267, 284, 285, 1140, 1327], + [218, 267, 284, 285, 1316, 1317, 1318], + [218, 267, 284, 285, 1140, 1316], + [218, 267, 284, 285, 1244], + [218, 267, 284, 285, 1247, 1248], + [218, 267, 284, 285, 1140, 1247], + [218, 267, 284, 285, 1251, 1252], + [218, 267, 284, 285, 1140, 1251], + [218, 267, 284, 285, 1255, 1256], + [218, 267, 284, 285, 1140, 1255], + [218, 267, 284, 285, 1259, 1260], + [218, 267, 284, 285, 1140, 1259], + [218, 267, 284, 285, 1275, 1276, 1277], + [218, 267, 284, 285, 1140, 1275], + [218, 267, 284, 285, 1043, 1140, 1274], + [218, 267, 284, 285, 1331, 1332], + [218, 267, 284, 285, 1140, 1331], + [218, 267, 284, 285, 1221, 1222], + [218, 267, 284, 285, 1140, 1221], + [218, 267, 284, 285, 1128], + [218, 267, 284, 285, 1127, 1128, 1129, 1135, 1136, 1137, 1138, 1139], + [218, 267, 284, 285, 1043, 1126, 1127], + [218, 267, 284, 285, 1127], + [218, 267, 284, 285, 1134], + [218, 267, 284, 285, 1132, 1133], + [218, 267, 284, 285, 1127, 1130, 1131], + [218, 267, 284, 285, 289], + [218, 267, 284, 285, 1043, 1126], + [218, 267, 284, 285, 1043, 1044], + [218, 267, 284, 285, 1044, 1046], + [218, 267, 284, 285, 1044], + [218, 267, 284, 285, 1045, 1046], + [218, 267, 284, 285, 1044, 1045], + [218, 267, 284, 285, 1048, 1054, 1055], + [218, 267, 284, 285, 1053], + [218, 267, 284, 285, 1049, 1050, 1051, 1052], + [218, 267, 284, 285, 1044, 1045, 1046, 1047, 1056, 1057, 1058], + [218, 267, 284, 285, 1043, 1045], + [218, 267, 284, 285, 1043, 1093], + [218, 267, 284, 285, 1043, 1059, 1088, 1089, 1090, 1092, 1093], + [218, 267, 284, 285, 1043, 1090, 1091], + [218, 267, 284, 285, 1043, 1090, 1091, 1092, 1093, 1095], + [218, 267, 284, 285, 1088, 1090, 1095], + [218, 267, 284, 285, 1043, 1090, 1091, 1092], + [218, 267, 284, 285, 1043, 1059, 1088, 1089], + [218, 267, 284, 285, 1043, 1090, 1091, 1092, 1095], + [218, 267, 284, 285, 1088, 1090], + [ + 218, 267, 284, 285, 1060, 1061, 1089, 1090, 1091, 1092, 1093, 1094, 1095, + 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108 + ], + [218, 267, 284, 285, 1099], + [218, 267, 284, 285, 1060], + [218, 267, 284, 285, 1093, 1096], + [218, 267, 284, 285, 1097, 1098], + [218, 267, 284, 285, 1061], + [218, 267, 284, 285, 1043, 1061], + [218, 267, 284, 285, 1043, 1059, 1060, 1061, 1092], + [218, 267, 284, 285, 1043, 1305], + [218, 267, 284, 285, 1293], + [218, 267, 284, 285, 1292, 1293, 1294, 1300, 1301, 1302, 1303, 1304], + [218, 267, 284, 285, 1043, 1291, 1292], + [218, 267, 284, 285, 1292], + [218, 267, 284, 285, 1299], + [218, 267, 284, 285, 1297, 1298], + [218, 267, 284, 285, 1292, 1295, 1296], + [218, 267, 284, 285, 1043, 1291], + [218, 267, 284, 285, 1282, 1283], + [218, 267, 284, 285, 1283, 1284, 1285], + [218, 267, 284, 285, 1282, 1283, 1284], + [ + 218, 267, 284, 285, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, + 1290 + ], + [218, 267, 284, 285, 1043, 1281], + [218, 267, 284, 285, 1282], + [218, 267, 284, 285, 1283, 1284], + [206, 218, 267, 284, 285, 1494, 1495, 1496], + [206, 218, 267, 284, 285, 1494, 1501], + [206, 218, 267, 284, 285, 1495], + [206, 218, 267, 284, 285, 1494, 1495], + [206, 218, 267, 284, 285, 354, 1494, 1495], + [206, 218, 267, 284, 285, 1494, 1495, 1510], + [206, 218, 267, 284, 285, 1494, 1495, 1498, 1499, 1500], + [206, 218, 267, 284, 285, 354, 1494, 1495, 1514], + [206, 218, 267, 284, 285, 1494, 1495, 1498, 1500, 1508], + [206, 218, 267, 284, 285, 1494, 1495, 1498, 1499, 1500, 1508, 1509], + [206, 218, 267, 284, 285, 354, 1494, 1495, 1509, 1510], + [206, 218, 267, 284, 285, 1494, 1495, 1498, 1518], + [206, 218, 267, 284, 285, 1495, 1509], + [206, 218, 267, 284, 285, 1494, 1495, 1498, 1499, 1500, 1508], + [206, 218, 267, 284, 285, 1494, 1495, 1506, 1507], + [206, 218, 267, 284, 285, 1494, 1495, 1509], + [206, 218, 267, 284, 285, 1494, 1495, 1498], + [206, 218, 267, 284, 285, 1494, 1495, 1509, 1533], + [206, 218, 267, 284, 285, 1494, 1495, 1509, 1527, 1534], + [218, 267, 284, 285, 2032, 2033, 2034, 2035, 2036], + [218, 267, 284, 285, 903], + [218, 267, 284, 285, 895, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907], + [218, 267, 284, 285, 871], + [218, 267, 284, 285, 871, 897], + [218, 267, 284, 285, 895], + [218, 267, 284, 285, 871, 903], + [ + 218, 267, 284, 285, 660, 662, 663, 664, 665, 667, 668, 669, 671, 672, 673, + 674, 675, 676, 677, 678, 679, 683, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 719, 720, 722, 723, 724, + 725, 726, 730, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, + 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, + 780, 781, 782, 783, 784, 785, 786, 789, 790, 791, 792, 793, 795, 796, 797, + 798, 799, 800, 801, 802, 803, 805, 806, 807, 808, 809, 810, 811, 812, 813, + 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, + 829, 830, 831, 832, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, + 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, + 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870 + ], + [218, 267, 284, 285, 1374, 1375, 1376], + [218, 267, 284, 285, 1374, 1375, 1377], + [218, 267, 284, 285, 1372, 1373, 1374, 1375, 1377, 1378], + [218, 267, 284, 285, 1374, 1375], + [218, 267, 284, 285, 1371], + [218, 267, 284, 285, 871, 971], + [218, 267, 284, 285, 871, 971, 989, 990, 991, 992, 993], + [ + 218, 267, 284, 285, 972, 973, 974, 975, 976, 977, 980, 981, 982, 984, 985, + 986, 987, 988 + ], + [218, 267, 284, 285, 654, 979], + [218, 267, 284, 285, 979], + [218, 267, 284, 285, 608], + [218, 267, 284, 285, 615], + [218, 267, 284, 285, 621, 654], + [218, 267, 284, 285, 654, 871, 978], + [218, 267, 284, 285, 983], + [218, 267, 284, 285, 1382, 1384], + [218, 267, 284, 285, 871, 1381], + [218, 267, 284, 285, 1382, 1383], + [218, 267, 284, 285, 989, 990, 991, 1116, 1117], + [218, 267, 284, 285, 871, 979, 988, 994, 1118, 1370, 1385], + [218, 267, 284, 285, 989, 990, 991, 1368, 1369], + [218, 267, 284, 285, 679, 693, 748], + [218, 267, 284, 285, 720, 724], + [218, 267, 284, 285, 699, 714, 720], + [218, 267, 284, 285, 699, 716, 718, 719], + [218, 267, 284, 285, 660], + [218, 267, 284, 285, 664], + [218, 267, 284, 285, 687, 688, 699, 714, 720, 721, 723], + [218, 267, 284, 285, 675, 679, 695, 708], + [ + 218, 267, 284, 285, 663, 664, 669, 672, 675, 676, 677, 679, 685, 686, 687, + 688, 694, 695, 696, 699, 705, 706, 708, 709, 710, 711, 712, 713 + ], + [218, 267, 284, 285, 674, 699, 714], + [218, 267, 284, 285, 699], + [218, 267, 284, 285, 678, 679, 693, 694, 695, 705, 708, 714, 731], + [218, 267, 284, 285, 696, 705], + [218, 267, 284, 285, 663, 673, 675, 683, 694, 696, 697, 699, 705, 741], + [218, 267, 284, 285, 685, 699, 705], + [218, 267, 284, 285, 669, 672, 785], + [218, 267, 284, 285, 785], + [218, 267, 284, 285, 706, 710, 714], + [218, 267, 284, 285, 706], + [218, 267, 284, 285, 687, 714], + [218, 267, 284, 285, 785, 871], + [218, 267, 284, 285, 705, 706], + [218, 267, 284, 285, 787, 788], + [218, 267, 284, 285, 794], + [218, 267, 284, 285, 669], + [218, 267, 284, 285, 701, 871], + [218, 267, 284, 285, 706, 785], + [218, 267, 284, 285, 687, 714, 871], + [218, 267, 284, 285, 686, 687, 699, 759], + [218, 267, 284, 285, 702, 705], + [218, 267, 284, 285, 688, 699, 714], + [218, 267, 284, 285, 688, 699], + [218, 267, 284, 285, 690], + [218, 267, 284, 285, 679], + [ + 218, 267, 284, 285, 661, 662, 663, 664, 669, 672, 673, 674, 683, 694, 695, + 696, 697, 698, 705, 714 + ], + [218, 267, 284, 285, 710, 714], + [218, 267, 284, 285, 663, 675, 686, 699, 705, 709, 710, 714], + [218, 267, 284, 285, 694], + [218, 267, 284, 285, 811], + [218, 267, 284, 285, 810], + [218, 267, 284, 285, 669, 695, 699, 714], + [218, 267, 284, 285, 814], + [218, 267, 284, 285, 813], + [218, 267, 284, 285, 669, 712], + [218, 267, 284, 285, 718, 727, 728, 729, 731, 732, 733, 734, 735, 736, 737], + [218, 267, 284, 285, 816], + [218, 267, 284, 285, 819], + [218, 267, 284, 285, 660, 730, 871], + [218, 267, 284, 285, 808], + [218, 267, 284, 285, 807], + [218, 267, 284, 285, 707, 710], + [218, 267, 284, 285, 667, 669], + [218, 267, 284, 285, 667, 669, 670, 730], + [218, 267, 284, 285, 669, 699, 712, 717], + [218, 267, 284, 285, 669, 699], + [218, 267, 284, 285, 804], + [218, 267, 284, 285, 714], + [218, 267, 284, 285, 669, 674, 804], + [218, 267, 284, 285, 709, 713], + [218, 267, 284, 285, 695, 705, 709], + [218, 267, 284, 285, 695, 709], + [218, 267, 284, 285, 663], + [218, 267, 284, 285, 674], + [218, 267, 284, 285, 676], + [218, 267, 284, 285, 665, 669, 670, 673], + [ + 218, 267, 284, 285, 662, 669, 675, 677, 678, 679, 685, 687, 688, 690, 691, + 693, 694, 705 + ], + [ + 218, 267, 284, 285, 660, 662, 663, 664, 668, 669, 672, 673, 674, 683, 689, + 693, 697, 699, 700, 703, 704 + ], + [218, 267, 284, 285, 705], + [218, 267, 284, 285, 700, 702], + [218, 267, 284, 285, 673, 680, 681], + [218, 267, 284, 285, 662], + [218, 267, 284, 285, 662, 680, 682, 684, 706], + [218, 267, 284, 285, 673, 683, 705], + [218, 267, 284, 285, 671], + [218, 267, 284, 285, 705, 714], + [218, 267, 284, 285, 661, 686], + [218, 267, 284, 285, 661], + [218, 267, 284, 285, 672], + [ + 218, 267, 284, 285, 664, 669, 687, 688, 698, 699, 702, 705, 706, 707, 708, + 709 + ], + [218, 267, 284, 285, 660, 689, 706, 714], + [218, 267, 284, 285, 669, 672, 673], + [218, 267, 284, 285, 692], + [218, 267, 284, 285, 693], + [218, 267, 284, 285, 683], + [218, 267, 284, 285, 660, 666, 667, 668, 670], + [218, 267, 284, 285, 701], + [218, 267, 284, 285, 669, 670, 699], + [218, 267, 284, 285, 702], + [218, 267, 284, 285, 695], + [218, 267, 284, 285, 695, 714], + [218, 267, 284, 285, 702, 703, 705], + [218, 267, 284, 285, 677, 695], + [218, 267, 284, 285, 689, 702], + [218, 267, 284, 285, 679, 714], + [218, 267, 284, 285, 662, 669, 676, 679, 693, 695, 705, 708], + [218, 267, 284, 285, 663, 686, 701, 702, 703, 705, 714], + [218, 267, 284, 285, 710], + [218, 267, 284, 285, 683, 694], + [218, 267, 284, 285, 673, 686, 832, 833], + [218, 267, 284, 285, 698], + [218, 267, 284, 285, 700, 701, 705], + [218, 267, 284, 285, 840], + [218, 267, 284, 285, 686], + [218, 267, 284, 285, 699, 702, 705, 710, 714], + [218, 267, 284, 285, 676, 709], + [218, 267, 284, 285, 671, 672], + [218, 267, 284, 285, 699, 705], + [218, 267, 284, 285, 667, 669, 670, 674], + [218, 267, 284, 285, 701, 702, 705, 833], + [218, 267, 284, 285, 847], + [218, 267, 284, 285, 669, 698, 699, 714], + [218, 267, 284, 285, 710, 765], + [218, 267, 284, 285, 668, 698, 714], + [218, 267, 284, 285, 722, 724], + [206, 218, 267, 284, 285, 955], + [206, 218, 267, 284, 285, 871, 955], + [218, 267, 284, 285, 955, 956, 957, 958, 959, 960, 962, 963, 964, 969, 970], + [206, 218, 267, 284, 285, 871], + [218, 267, 284, 285, 965, 966, 967], + [206, 218, 267, 284, 285, 871, 955, 961], + [218, 267, 284, 285, 871, 961], + [218, 267, 284, 285, 871, 955, 961], + [218, 267, 284, 285, 871, 955, 961, 968], + [218, 267, 284, 285, 871, 955], + [218, 267, 284, 285, 871, 874], + [ + 218, 267, 284, 285, 871, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, + 885, 886, 887, 888, 889, 890 + ], + [ + 218, 267, 284, 285, 871, 872, 873, 891, 892, 893, 894, 909, 919, 921, 929, + 930, 931, 932, 933, 934, 935, 936, 937, 940, 943, 946, 949, 952, 953, 954 + ], + [218, 267, 284, 285, 948], + [218, 267, 284, 285, 871, 947], + [218, 267, 284, 285, 939], + [218, 267, 284, 285, 871, 938], + [218, 267, 284, 285, 942], + [218, 267, 284, 285, 871, 941], + [218, 267, 284, 285, 951], + [218, 267, 284, 285, 871, 950], + [218, 267, 284, 285, 945], + [218, 267, 284, 285, 871, 944], + [218, 267, 284, 285, 871, 908], + [218, 267, 284, 285, 871, 875], + [218, 267, 284, 285, 871, 874, 876], + [218, 267, 284, 285, 925], + [218, 267, 284, 285, 871, 923, 924], + [218, 267, 284, 285, 922, 925, 926, 927, 928], + [218, 267, 284, 285, 871, 919], + [218, 267, 284, 285, 920], + [218, 267, 284, 285, 916, 917, 918], + [218, 267, 284, 285, 871, 916], + [218, 267, 284, 285, 910, 911, 913, 914, 915], + [218, 267, 284, 285, 910], + [218, 267, 284, 285, 871, 910, 911, 912, 913, 914], + [218, 267, 284, 285, 871, 911, 913], + [218, 267, 284, 285, 908], + [218, 267, 284, 285, 917], + [ + 218, 267, 284, 285, 871, 1169, 1171, 1172, 1192, 1193, 1194, 1196, 1197, + 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, + 1210, 1211, 1215, 1216 + ], + [218, 267, 284, 285, 1212, 1213, 1214], + [ + 218, 267, 284, 285, 871, 1146, 1147, 1168, 1172, 1173, 1174, 1175, 1176, + 1177, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1190, 1217 + ], + [218, 267, 284, 285, 871, 1189], + [218, 267, 279, 284, 285, 871], + [218, 267, 281, 284, 285, 871, 1140], + [218, 267, 278, 281, 284, 285, 871], + [218, 267, 281, 284, 285, 871, 1173], + [218, 267, 281, 284, 285, 871, 1140, 1146], + [218, 267, 284, 285, 871, 1195], + [218, 267, 284, 285, 871, 1173], + [218, 267, 284, 285, 871, 1191], + [218, 267, 284, 285, 1168, 1181], + [218, 267, 284, 285, 871, 1043, 1109, 1168, 1172], + [218, 267, 284, 285, 871, 1172, 1173], + [218, 267, 281, 283, 284, 285], + [218, 267, 284, 285, 871, 1169], + [218, 267, 284, 285, 1170], + [218, 267, 284, 285, 871, 1043, 1109, 1140, 1171], + [218, 267, 284, 285, 871, 1043], + [ + 218, 267, 284, 285, 871, 1168, 1218, 1219, 1220, 1224, 1225, 1231, 1235, + 1239, 1243, 1246, 1250, 1254, 1258, 1262, 1266, 1279, 1280, 1307, 1312, + 1315, 1320, 1326, 1330, 1334, 1337, 1341, 1345, 1348, 1349, 1350, 1351, + 1352, 1353, 1359, 1364, 1365, 1366, 1367 + ], + [218, 267, 284, 285, 1354, 1355, 1356, 1357, 1358], + [218, 267, 281, 284, 285, 871, 1140, 1143, 1218, 1219], + [218, 267, 284, 285, 871, 1223], + [218, 267, 284, 285, 871, 1344], + [218, 267, 284, 285, 871, 1140], + [218, 267, 284, 285, 871, 1325], + [218, 267, 284, 285, 871, 1340], + [218, 267, 281, 284, 285, 871, 1230], + [218, 267, 284, 285, 871, 1140, 1232, 1234], + [218, 267, 284, 285, 1140, 1233], + [218, 267, 284, 285, 871, 1362], + [218, 267, 284, 285, 1363], + [218, 267, 284, 285, 1140, 1360], + [218, 267, 284, 285, 1360, 1361], + [218, 267, 284, 285, 871, 1336], + [218, 267, 284, 285, 871, 1238], + [218, 267, 284, 285, 871, 1310, 1311], + [218, 267, 284, 285, 299], + [218, 267, 284, 285, 871, 1313, 1314], + [218, 267, 284, 285, 871, 1242], + [218, 267, 284, 285, 871, 1329], + [218, 267, 284, 285, 871, 1319], + [218, 267, 284, 285, 871, 1245], + [218, 267, 284, 285, 871, 1249], + [218, 267, 284, 285, 871, 1253], + [218, 267, 284, 285, 871, 1257], + [218, 267, 284, 285, 871, 1261], + [218, 267, 284, 285, 871, 1278], + [218, 267, 284, 285, 871, 1140, 1306], + [218, 267, 284, 285, 871, 1265], + [218, 267, 284, 285, 871, 1333], + [218, 267, 284, 285, 871, 1346, 1347], + [218, 267, 284, 285, 871, 1218, 1219], + [218, 267, 284, 285, 1109, 1168, 1218], + [218, 267, 284, 285, 871, 1043, 1109, 1218], + [218, 266, 267, 284, 285, 1043], + [218, 267, 284, 285, 871, 1151], + [ + 218, 267, 284, 285, 871, 1148, 1150, 1151, 1152, 1153, 1154, 1155, 1156, + 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167 + ], + [218, 267, 284, 285, 871, 1043, 1088], + [218, 267, 284, 285, 871, 1043, 1109], + [218, 267, 284, 285, 1043, 1109], + [218, 267, 284, 285, 871, 1043, 1151], + [218, 267, 284, 285, 1043, 1151], + [218, 267, 284, 285, 1151], + [218, 267, 284, 285, 1043, 1109, 1151], + [218, 267, 284, 285, 871, 1109, 1112], + [218, 267, 284, 285, 871, 1110, 1112, 1113, 1114, 1115], + [218, 267, 284, 285, 871, 1110, 1112], + [218, 267, 284, 285, 871, 1110, 1111], + [218, 267, 284, 285, 1379, 1380], + [218, 267, 284, 285, 1379], + [218, 267, 284, 285, 1395], + [218, 267, 284, 285, 1396], + [218, 267, 284, 285, 2778, 2779, 2780, 2781, 2782], + [218, 267, 284, 285, 2778, 2780], + [218, 267, 281, 284, 285, 317], + [218, 267, 284, 285, 2786], + [218, 267, 284, 285, 2022], + [218, 267, 284, 285, 2046], + [67, 69, 218, 267, 284, 285], + [60, 67, 218, 267, 284, 285, 2790], + [218, 267, 284, 285, 2791], + [218, 267, 278, 279, 284, 285, 317], + [218, 267, 279, 284, 285, 317], + [ + 218, 267, 284, 285, 294, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, + 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2877, 2878, 2879, + 2880, 2881 + ], + [218, 267, 284, 285, 2882], + [218, 267, 284, 285, 2861, 2862, 2882], + [218, 267, 284, 285, 294, 2859, 2864, 2882], + [218, 267, 284, 285, 294, 2865, 2866, 2882], + [218, 267, 284, 285, 294, 2865, 2882], + [218, 267, 284, 285, 294, 2859, 2865, 2882], + [218, 267, 284, 285, 294, 2871, 2882], + [218, 267, 284, 285, 294, 2882], + [218, 267, 284, 285, 2860, 2876, 2882], + [218, 267, 284, 285, 2859, 2876, 2882], + [218, 267, 284, 285, 294, 2859], + [218, 267, 284, 285, 2864], + [218, 267, 284, 285, 294], + [218, 267, 284, 285, 2859, 2882], + [ + 218, 267, 284, 285, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, + 2805, 2806, 2807, 2808, 2809, 2810, 2815, 2816, 2818, 2820, 2821, 2822, + 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2836, + 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, + 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858 + ], + [218, 267, 284, 285, 2796, 2798, 2803], + [218, 267, 284, 285, 2798, 2835], + [218, 267, 284, 285, 2797, 2802], + [218, 267, 284, 285, 2796, 2797, 2798, 2799, 2800, 2801], + [218, 267, 284, 285, 2797, 2798], + [218, 267, 284, 285, 2798, 2834], + [218, 267, 284, 285, 2796, 2797, 2798, 2803], + [218, 267, 284, 285, 2796, 2797, 2811], + [218, 267, 284, 285, 2796, 2797, 2798, 2799, 2802], + [218, 267, 284, 285, 2796, 2797], + [218, 267, 284, 285, 2797], + [218, 267, 284, 285, 2796, 2798, 2802, 2803], + [218, 267, 284, 285, 2797, 2798, 2799, 2802, 2835], + [218, 267, 284, 285, 2802], + [218, 267, 284, 285, 2802, 2842], + [218, 267, 284, 285, 2796, 2797, 2798, 2802], + [218, 267, 284, 285, 2797, 2798, 2799, 2802], + [218, 267, 284, 285, 2796, 2797, 2798, 2802, 2803], + [218, 267, 284, 285, 2859], + [218, 267, 284, 285, 2796, 2797, 2810], + [218, 267, 284, 285, 2812, 2813], + [218, 267, 284, 285, 2796, 2797, 2811, 2812], + [218, 267, 284, 285, 2796, 2797, 2810, 2811, 2813], + [218, 267, 284, 285, 2812], + [218, 267, 284, 285, 2796, 2797, 2812, 2813], + [218, 267, 284, 285, 2819], + [218, 267, 284, 285, 2814], + [218, 267, 284, 285, 2817], + [218, 267, 284, 285, 2796, 2802], + [218, 267, 284, 285, 2883], + [218, 267, 284, 285, 2884], + [218, 267, 278, 284, 285, 299, 307, 317], + [218, 264, 265, 267, 284, 285], + [218, 266, 267, 284, 285], + [267, 284, 285], + [218, 267, 272, 284, 285, 302], + [218, 267, 268, 273, 278, 284, 285, 287, 299, 310], + [218, 267, 268, 269, 278, 284, 285, 287], + [213, 214, 215, 218, 267, 284, 285], + [218, 267, 270, 284, 285, 311], + [218, 267, 271, 272, 279, 284, 285, 288], + [218, 267, 272, 284, 285, 299, 307], + [218, 267, 273, 275, 278, 284, 285, 287], + [218, 266, 267, 274, 284, 285], + [218, 267, 275, 276, 284, 285], + [218, 267, 277, 278, 284, 285], + [218, 266, 267, 278, 284, 285], + [218, 267, 278, 279, 280, 284, 285, 299, 310], + [218, 267, 278, 279, 280, 284, 285, 294, 299, 302], + [218, 260, 267, 275, 278, 281, 284, 285, 287, 299, 310], + [218, 267, 278, 279, 281, 282, 284, 285, 287, 299, 307, 310], + [218, 267, 281, 283, 284, 285, 299, 307, 310], [ 216, 217, 218, 219, 220, 221, 222, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315 + 314, 315, 316 ], - [218, 267, 278, 284], - [218, 267, 285, 309], - [218, 267, 275, 278, 286, 298], - [218, 267, 287], - [218, 266, 267, 289], + [218, 267, 278, 284, 285], + [218, 267, 284, 285, 286, 310], + [218, 267, 275, 278, 284, 285, 287, 299], + [218, 267, 284, 285, 288], + [218, 266, 267, 284, 285, 290], [ 218, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315 + 308, 309, 310, 311, 312, 313, 314, 315, 316 ], - [218, 267, 291], - [218, 267, 292], - [218, 267, 278, 293, 294], - [218, 267, 293, 295, 310, 312], - [218, 267, 279], - [218, 267, 278, 298, 299, 301], - [218, 267, 300, 301], - [218, 267, 298, 299], - [218, 267, 301], - [218, 267, 302], - [218, 264, 267, 298, 303], - [218, 267, 278, 304, 305], - [218, 267, 304, 305], - [218, 267, 272, 286, 298, 306], - [218, 267, 307], - [218, 267, 286, 308], - [218, 267, 281, 292, 309], - [218, 267, 272, 310], - [218, 267, 298, 311], - [218, 267, 285, 312], - [218, 267, 313], - [218, 260, 267], - [218, 260, 267, 278, 280, 289, 298, 301, 309, 311, 312, 314], - [218, 267, 298, 315], - [218, 267, 1234], - [218, 267, 1233], - [218, 267, 278, 298, 306, 316, 1227, 1228, 1231, 1232, 1233], - [206, 210, 218, 267, 317, 318, 319, 321, 322, 323, 541, 578, 625], - [206, 210, 218, 267, 317, 318, 319, 320, 322, 578, 625], - [206, 218, 267, 320, 323], - [206, 210, 218, 267, 318, 322, 323, 578, 625], - [206, 210, 218, 267, 317, 322, 323, 578, 625], - [204, 205, 218, 267], - [218, 267, 278, 306, 316], - [218, 267, 298, 316], - [218, 267, 1845], - [78, 81, 218, 267], - [82, 218, 267], - [78, 127, 136, 147, 150, 218, 267], - [78, 148, 155, 218, 267], - [78, 107, 108, 218, 267], - [109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 218, 267], - [78, 107, 218, 267], - [107, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 218, 267], - [121, 122, 127, 148, 150, 152, 153, 156, 218, 267], - [78, 151, 218, 267], - [78, 127, 150, 218, 267], - [78, 122, 148, 150, 153, 218, 267], - [78, 151, 152, 218, 267], - [78, 98, 218, 267], - [154, 218, 267], - [78, 128, 133, 146, 148, 218, 267], - [78, 122, 127, 128, 133, 146, 148, 218, 267], - [78, 127, 128, 133, 146, 148, 218, 267], + [218, 267, 284, 285, 292], + [218, 267, 284, 285, 293], + [218, 267, 278, 284, 285, 294, 295], + [218, 267, 284, 285, 294, 296, 311, 313], + [218, 267, 279, 284, 285], + [218, 267, 278, 284, 285, 299, 300, 302], + [218, 267, 284, 285, 301, 302], + [218, 267, 284, 285, 299, 300], + [218, 267, 284, 285, 302], + [218, 267, 284, 285, 303], + [218, 264, 267, 284, 285, 299, 304, 310], + [218, 267, 278, 284, 285, 305, 306], + [218, 267, 284, 285, 305, 306], + [218, 267, 272, 284, 285, 287, 299, 307], + [218, 267, 284, 285, 308], + [218, 267, 284, 285, 287, 309], + [218, 267, 281, 284, 285, 293, 310], + [218, 267, 272, 284, 285, 311], + [218, 267, 284, 285, 299, 312], + [218, 267, 284, 285, 286, 313], + [218, 267, 284, 285, 314], + [218, 260, 267, 284, 285], + [218, 260, 267, 278, 280, 284, 285, 290, 299, 302, 310, 312, 313, 315], + [218, 267, 284, 285, 299, 316], + [218, 267, 284, 285, 1274], + [218, 267, 284, 285, 1273], + [218, 267, 278, 284, 285, 299, 307, 317, 1267, 1268, 1271, 1272, 1273], + [206, 210, 218, 267, 284, 285, 318, 319, 320, 322, 323, 324, 587, 604, 649], + [206, 210, 218, 267, 284, 285, 318, 319, 320, 321, 323, 604, 649], + [206, 218, 267, 284, 285, 321, 324], + [206, 210, 218, 267, 284, 285, 319, 323, 324, 604, 649], + [206, 210, 218, 267, 284, 285, 318, 323, 324, 604, 649], + [204, 205, 218, 267, 284, 285], + [218, 267, 278, 284, 285, 307, 317], + [218, 267, 284, 285, 299, 317], + [218, 267, 284, 285, 2894], + [78, 81, 218, 267, 284, 285], + [82, 218, 267, 284, 285], + [78, 127, 136, 147, 150, 218, 267, 284, 285], + [78, 148, 155, 218, 267, 284, 285], + [78, 107, 108, 218, 267, 284, 285], + [109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 218, 267, 284, 285], + [78, 107, 218, 267, 284, 285], + [ + 107, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 218, 267, + 284, 285 + ], + [121, 122, 127, 148, 150, 152, 153, 156, 218, 267, 284, 285], + [78, 151, 218, 267, 284, 285], + [78, 127, 150, 218, 267, 284, 285], + [78, 122, 148, 150, 153, 218, 267, 284, 285], + [78, 151, 152, 218, 267, 284, 285], + [78, 98, 218, 267, 284, 285], + [154, 218, 267, 284, 285], + [78, 128, 133, 146, 148, 218, 267, 284, 285], + [78, 122, 127, 128, 133, 146, 148, 218, 267, 284, 285], + [78, 127, 128, 133, 146, 148, 218, 267, 284, 285], [ 129, 130, 131, 132, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 147, 149, 218, 267 + 145, 147, 149, 218, 267, 284, 285 ], - [78, 121, 122, 127, 128, 129, 130, 131, 132, 146, 148, 218, 267], + [78, 121, 122, 127, 128, 129, 130, 131, 132, 146, 148, 218, 267, 284, 285], [ 128, 129, 130, 131, 132, 134, 135, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 149, 218, 267 + 145, 146, 147, 149, 218, 267, 284, 285 ], - [78, 123, 218, 267], - [124, 125, 150, 218, 267], - [123, 218, 267], - [78, 121, 122, 150, 218, 267], - [124, 125, 126, 218, 267], - [73, 218, 267], - [74, 75, 76, 77, 218, 267], - [73, 75, 218, 267], - [74, 77, 218, 267], - [73, 88, 218, 267], - [73, 88, 89, 218, 267], - [79, 80, 86, 89, 90, 91, 92, 93, 94, 95, 99, 100, 101, 102, 218, 267], - [73, 86, 218, 267], - [78, 218, 267], - [73, 83, 84, 86, 87, 89, 218, 267], - [73, 78, 86, 218, 267], - [73, 86, 93, 218, 267], - [86, 98, 218, 267], - [73, 78, 84, 218, 267], - [78, 84, 85, 218, 267], - [104, 171, 218, 267], - [172, 173, 174, 175, 176, 218, 267], - [104, 218, 267], - [177, 178, 179, 180, 218, 267], - [171, 218, 267], - [162, 218, 267], - [182, 183, 184, 185, 186, 187, 218, 267], - [104, 160, 171, 181, 188, 191, 218, 267], - [106, 159, 162, 164, 218, 267], - [167, 168, 218, 267], - [159, 161, 162, 164, 165, 218, 267], - [104, 106, 158, 218, 267], - [163, 218, 267], - [104, 105, 158, 160, 161, 163, 165, 218, 267], - [104, 106, 162, 163, 165, 218, 267], - [157, 218, 267], - [104, 158, 159, 218, 267], - [162, 163, 218, 267], - [165, 166, 218, 267], - [163, 165, 166, 218, 267], - [105, 106, 158, 159, 161, 162, 163, 164, 165, 169, 170, 218, 267], - [78, 103, 218, 267], - [189, 190, 218, 267], - [96, 97, 218, 267], - [218, 267, 1466, 1467], - [218, 267, 1466], - [218, 267, 1586, 1605, 1607], - [218, 267, 1585, 1608, 1610, 1611, 1614, 1615, 1616], - [218, 267, 1584, 1585], - [218, 267, 1607], - [218, 267, 1605, 1613, 1614, 1617], - [218, 267, 1586, 1610, 1612], - [218, 267, 1584, 1585, 1586, 1608, 1609, 1610, 1611, 1613], - [218, 267, 1584], - [218, 267, 1584, 1610, 1611], - [218, 267, 1584, 1607], - [218, 267, 1584, 1587, 1609], - [218, 267, 1605, 1626], - [206, 218, 267, 1614], - [206, 218, 267, 1584, 1586, 1606, 1607, 1610, 1614, 1617, 1619], - [218, 267, 1614, 1618, 1620, 1622, 1623, 1624, 1625], - [218, 267, 1584, 1607, 1610, 1620], - [218, 267, 1578, 1584, 1605, 1607, 1617], - [218, 267, 1584, 1607, 1621], - [218, 267, 1578, 1591, 1606], - [218, 267, 1602, 1606, 1607], - [218, 267, 1584, 1599, 1607], - [218, 267, 1584, 1588, 1593, 1594, 1595], - [218, 267, 1584, 1588], - [218, 267, 1588, 1606], + [78, 123, 218, 267, 284, 285], + [124, 125, 150, 218, 267, 284, 285], + [123, 218, 267, 284, 285], + [78, 121, 122, 150, 218, 267, 284, 285], + [124, 125, 126, 218, 267, 284, 285], + [73, 218, 267, 284, 285], + [74, 75, 76, 77, 218, 267, 284, 285], + [73, 75, 218, 267, 284, 285], + [74, 77, 218, 267, 284, 285], + [73, 88, 218, 267, 284, 285], + [73, 88, 89, 218, 267, 284, 285], [ - 218, 267, 1578, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, - 1596, 1597, 1598, 1599, 1600, 1601, 1603, 1604, 1606, 1607 + 79, 80, 86, 89, 90, 91, 92, 93, 94, 95, 99, 100, 101, 102, 218, 267, 284, + 285 ], - [218, 267, 1588], - [218, 267, 1579], - [218, 267, 1588, 1589, 1590, 1591, 1592], - [218, 267, 1577, 1578, 1579, 1580, 1588, 1599, 1604, 1605, 1607], - [218, 267, 1606], - [218, 267, 1577, 1607], - [218, 267, 1578, 1579, 1580, 1588, 1594], - [218, 267, 1578, 1584, 1588], - [218, 267, 1577, 1588], - [218, 267, 1577], - [218, 267, 1577, 1579, 1580, 1581, 1582, 1583], - [218, 267, 1578, 1579, 1584], - [218, 267, 1577, 1580, 1584], - [200, 218, 267], - [63, 218, 267], - [61, 67, 68, 218, 267, 1306], - [218, 267, 1740], - [218, 267, 1737, 1738, 1739], - [218, 267, 1838], - [218, 267, 1835, 1836, 1837], - [218, 267, 1374, 1376, 1377], - [218, 267, 632, 1375], - [218, 267, 581], - [218, 267, 583, 584, 585, 586], - [218, 267, 328, 330, 334, 354, 363, 564, 574], - [218, 267, 330, 358, 359, 360, 362, 574], - [218, 267, 330, 393, 395, 397, 398, 401, 574, 576], - [218, 267, 330, 334, 336, 337, 338, 339, 353, 354, 355, 563, 574, 576], - [218, 267, 574], - [218, 267, 352, 353, 359, 544, 553, 570], - [218, 267, 330], - [218, 267, 324, 352, 570], - [218, 267, 403], - [218, 267, 402, 574, 576], - [218, 267, 281, 536, 544, 630], - [218, 267, 281, 505, 517, 553, 569], - [218, 267, 281, 448], - [218, 267, 557], - [218, 267, 556, 557, 558], - [218, 267, 556], + [73, 86, 218, 267, 284, 285], + [78, 218, 267, 284, 285], + [73, 83, 84, 86, 87, 89, 218, 267, 284, 285], + [73, 78, 86, 218, 267, 284, 285], + [73, 86, 93, 218, 267, 284, 285], + [86, 98, 218, 267, 284, 285], + [73, 78, 84, 218, 267, 284, 285], + [78, 84, 85, 218, 267, 284, 285], + [104, 171, 218, 267, 284, 285], + [172, 173, 174, 175, 176, 218, 267, 284, 285], + [104, 218, 267, 284, 285], + [177, 178, 179, 180, 218, 267, 284, 285], + [171, 218, 267, 284, 285], + [162, 218, 267, 284, 285], + [182, 183, 184, 185, 186, 187, 218, 267, 284, 285], + [104, 160, 171, 181, 188, 191, 218, 267, 284, 285], + [106, 159, 162, 164, 218, 267, 284, 285], + [167, 168, 218, 267, 284, 285], + [159, 161, 162, 164, 165, 218, 267, 284, 285], + [104, 106, 158, 218, 267, 284, 285], + [163, 218, 267, 284, 285], + [104, 105, 158, 160, 161, 163, 165, 218, 267, 284, 285], + [104, 106, 162, 163, 165, 218, 267, 284, 285], + [157, 218, 267, 284, 285], + [104, 158, 159, 218, 267, 284, 285], + [162, 163, 218, 267, 284, 285], + [165, 166, 218, 267, 284, 285], + [163, 165, 166, 218, 267, 284, 285], + [105, 106, 158, 159, 161, 162, 163, 164, 165, 169, 170, 218, 267, 284, 285], + [78, 103, 218, 267, 284, 285], + [189, 190, 218, 267, 284, 285], + [96, 97, 218, 267, 284, 285], + [218, 267, 284, 285, 1489, 1490], + [218, 267, 284, 285, 1489], + [206, 218, 267, 284, 285, 1501], + [218, 267, 284, 285, 2632, 2651, 2653], + [218, 267, 284, 285, 2631, 2654, 2656, 2657, 2660, 2661, 2662, 2663], + [218, 267, 284, 285, 2630, 2631], + [218, 267, 284, 285, 2653], + [218, 267, 284, 285, 2651, 2659, 2660, 2661, 2664], + [218, 267, 284, 285, 2632, 2656, 2658], + [218, 267, 284, 285, 2630, 2631, 2632, 2654, 2655, 2656, 2657, 2659], + [218, 267, 284, 285, 2630], + [218, 267, 284, 285, 2630, 2656, 2657], + [218, 267, 284, 285, 2630, 2653], + [218, 267, 284, 285, 2630, 2657, 2660, 2661], + [218, 267, 284, 285, 2630, 2633, 2655], + [218, 267, 284, 285, 2651, 2675], + [206, 218, 267, 284, 285, 2660], [ - 212, 218, 267, 281, 324, 330, 334, 337, 353, 356, 357, 359, 363, 375, 376, - 403, 478, 554, 574, 578 + 206, 218, 267, 284, 285, 2630, 2632, 2652, 2653, 2656, 2660, 2661, 2664, + 2667 ], - [218, 267, 328, 330, 361, 393, 394, 399, 400, 574, 630], - [218, 267, 361, 630], - [218, 267, 328, 376, 492, 574, 630], - [218, 267, 630], - [218, 267, 330, 361, 362, 630], - [218, 267, 396, 630], - [218, 267, 356, 555, 562], - [218, 267, 292, 412, 570], - [218, 267, 412, 570], - [206, 218, 267, 412], - [206, 218, 267, 509], - [218, 267, 445, 446, 570, 606, 607, 614], - [218, 267, 550, 606, 608, 609, 610, 611, 613], - [218, 267, 549], - [218, 267, 549, 550], - [218, 267, 339, 340, 341, 350, 352], - [218, 267, 351, 352], - [218, 267, 343, 344, 345, 347, 348, 350, 352], - [218, 267, 350, 352], - [218, 267, 343, 344, 350, 352], - [218, 267, 342, 343, 345, 346, 349], - [218, 267, 612], - [218, 267, 352], - [206, 218, 267, 331, 600], - [206, 218, 267, 309], - [206, 218, 267, 361, 436], - [206, 218, 267, 361], - [218, 267, 292, 350, 351, 352], - [218, 267, 434, 438], - [206, 218, 267, 435, 580], - [218, 267, 1462], - [206, 210, 218, 267, 281, 316, 317, 318, 322, 323, 578, 623, 624], - [218, 267, 281, 334, 383, 453, 468, 489, 491, 559, 560, 574, 575], - [218, 267, 375, 561], - [218, 267, 578], - [218, 267, 329], - [206, 218, 267, 494, 507, 516, 526, 528, 569], - [218, 267, 292, 494, 507, 525, 526, 527, 569, 629], - [218, 267, 519, 520, 521, 522, 523, 524], - [218, 267, 521], - [218, 267, 525], - [218, 267, 410, 411, 412, 414], - [206, 218, 267, 404, 405, 406, 407, 413], - [218, 267, 410, 413], - [218, 267, 408], - [218, 267, 409], - [206, 218, 267, 412, 435, 580], - [206, 218, 267, 412, 579, 580], - [206, 218, 267, 412, 580], - [218, 267, 468, 566], - [218, 267, 566], - [218, 267, 281, 575, 580], - [218, 267, 513], - [218, 266, 267, 512], + [218, 267, 284, 285, 2660, 2665, 2666, 2668, 2671, 2672, 2673, 2674], + [218, 267, 284, 285, 2630, 2653, 2656, 2661, 2668, 2669, 2671], + [218, 267, 284, 285, 2623, 2630, 2651, 2653, 2664], + [218, 267, 284, 285, 2665], + [218, 267, 284, 285, 2630, 2653, 2670], + [218, 267, 284, 285, 2623, 2637, 2652], + [218, 267, 284, 285, 2648, 2652, 2653], + [218, 267, 284, 285, 2630, 2645, 2653], + [218, 267, 284, 285, 2630, 2634, 2639, 2640, 2641], + [218, 267, 284, 285, 2630, 2634], + [218, 267, 284, 285, 2634, 2652], [ - 218, 267, 352, 384, 385, 451, 454, 491, 500, 503, 505, 506, 543, 569, 572, - 575 + 218, 267, 284, 285, 2623, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, + 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2649, 2650, 2652, 2653 ], - [218, 267, 344, 352, 385], - [218, 267, 505, 569], + [218, 267, 284, 285, 2634], + [218, 267, 284, 285, 2622, 2624], + [218, 267, 284, 285, 2634, 2635, 2636, 2637, 2638], + [218, 267, 284, 285, 2622, 2623, 2624, 2625, 2634, 2645, 2650, 2651, 2653], + [218, 267, 284, 285, 2652], + [218, 267, 284, 285, 2622, 2653], + [218, 267, 284, 285, 2623, 2624, 2625, 2634, 2640], + [218, 267, 284, 285, 2623, 2630, 2634], + [218, 267, 284, 285, 2622, 2634], + [218, 267, 284, 285, 2622], + [218, 267, 284, 285, 2622, 2624, 2625, 2626, 2627, 2628, 2629], + [218, 267, 284, 285, 2623, 2624, 2630], + [218, 267, 284, 285, 2622, 2623, 2625, 2630], + [218, 267, 284, 285, 1560], + [218, 267, 284, 285, 1558, 1560], + [218, 267, 284, 285, 1558], + [218, 267, 284, 285, 1560, 1624, 1625], + [218, 267, 284, 285, 1560, 1627], + [218, 267, 284, 285, 1560, 1628], + [218, 267, 284, 285, 1645], [ - 206, 218, 267, 505, 510, 511, 513, 514, 515, 516, 517, 518, 529, 530, 531, - 532, 533, 534, 535, 569, 570, 630 + 218, 267, 284, 285, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, + 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, + 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, + 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, + 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, + 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1626, 1627, 1628, 1629, 1630, + 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, + 1643, 1644, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, + 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, + 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, + 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, + 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, + 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, + 1716, 1717, 1718, 1719, 1720, 1722, 1723, 1724, 1725, 1726, 1727, 1728, + 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, + 1741, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, + 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, + 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, + 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, + 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, + 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813 ], - [218, 267, 499], + [218, 267, 284, 285, 1560, 1721], [ - 218, 267, 281, 292, 331, 383, 385, 386, 407, 430, 451, 468, 478, 489, 490, - 543, 565, 574, 575, 576, 578, 630 + 218, 267, 284, 285, 1558, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, + 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, + 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, + 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, + 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, + 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, + 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, + 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, + 1907, 1908, 1909 ], - [218, 267, 569], - [218, 266, 267, 359, 451, 478, 502, 565, 567, 568, 575], - [218, 267, 505], + [218, 267, 284, 285, 1560, 1625, 1745], + [218, 267, 284, 285, 1558, 1742, 1743], + [218, 267, 284, 285, 1560, 1742], + [218, 267, 284, 285, 1744], + [218, 267, 284, 285, 1557, 1558, 1559], + [218, 267, 284, 285, 2018], + [218, 267, 284, 285, 2019], + [218, 267, 284, 285, 1992, 2012], + [218, 267, 284, 285, 1986], [ - 218, 266, 267, 383, 420, 454, 495, 496, 497, 498, 499, 500, 501, 503, 504, - 569, 570 + 218, 267, 284, 285, 1987, 1991, 1992, 1993, 1994, 1995, 1997, 1999, 2000, + 2005, 2006, 2015 ], - [218, 267, 281, 420, 421, 495, 575, 576], - [218, 267, 359, 468, 478, 491, 565, 569, 575], - [218, 267, 281, 574, 576], - [218, 267, 281, 298, 572, 575, 576], + [218, 267, 284, 285, 1987, 1992], + [218, 267, 284, 285, 1995, 2012, 2014, 2017], [ - 218, 267, 281, 292, 309, 324, 334, 353, 361, 384, 385, 386, 388, 417, 422, - 427, 430, 451, 453, 454, 456, 459, 461, 464, 465, 466, 467, 489, 491, 564, - 565, 570, 572, 574, 575, 576 + 218, 267, 284, 285, 1986, 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, + 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, + 2009, 2010, 2011, 2016, 2017 ], - [218, 267, 281, 298], - [218, 267, 330, 331, 332, 357, 572, 573, 578, 580, 630], - [218, 267, 328, 574], - [218, 267, 416], - [218, 267, 281, 298, 309, 378, 401, 403, 404, 405, 406, 407, 414, 415, 630], + [218, 267, 284, 285, 2015], + [218, 267, 284, 285, 1985, 1987, 1988, 1990, 1998, 2007, 2010, 2011, 2016], + [218, 267, 284, 285, 1992, 2017], + [218, 267, 284, 285, 2013, 2015, 2017], + [218, 267, 284, 285, 1986, 1987, 1992, 1995, 2015], + [218, 267, 284, 285, 1999], + [218, 267, 284, 285, 1989, 1997, 1999, 2000], + [218, 267, 284, 285, 1989], + [218, 267, 284, 285, 1989, 1999], + [218, 267, 284, 285, 1993, 1994, 1995, 1999, 2000, 2005], + [218, 267, 284, 285, 1995, 1996, 2000, 2004, 2006, 2015], + [218, 267, 284, 285, 1987, 1999, 2008], + [218, 267, 284, 285, 1988, 1989, 1990], + [218, 267, 284, 285, 1995, 2015], + [218, 267, 284, 285, 1995], + [218, 267, 284, 285, 1986, 1987], + [218, 267, 284, 285, 1987], + [218, 267, 284, 285, 1991], + [218, 267, 284, 285, 1995, 2000, 2012, 2013, 2014, 2015, 2017], + [200, 218, 267, 284, 285], + [63, 218, 267, 284, 285], + [61, 67, 68, 218, 267, 284, 285], + [218, 267, 284, 285, 658], + [218, 267, 284, 285, 1387, 1389, 1390], + [218, 267, 284, 285, 654, 1388], + [218, 267, 284, 285, 607], + [218, 267, 284, 285, 609, 610, 611, 612], + [218, 267, 284, 285, 557, 618, 619], + [218, 267, 284, 285, 329, 330, 332, 344, 368, 483, 494, 600], + [218, 267, 284, 285, 332, 363, 364, 365, 367, 600], + [218, 267, 284, 285, 332, 500, 502, 504, 505, 507, 600, 602], + [218, 267, 284, 285, 332, 366, 403, 600], [ - 218, 267, 292, 309, 324, 353, 378, 393, 426, 427, 428, 429, 454, 459, 468, - 474, 477, 479, 489, 491, 565, 570, 572 + 218, 267, 284, 285, 330, 332, 343, 344, 350, 356, 361, 482, 483, 484, 493, + 600, 602 ], - [218, 267, 353, 356, 357, 375, 478, 565, 574], - [218, 267, 281, 309, 331, 334, 454, 472, 572, 574], - [218, 267, 493], - [218, 267, 281, 407, 415, 475, 476, 486], - [218, 267, 572, 574], - [218, 267, 500, 502], - [218, 267, 451, 454, 564, 580], - [218, 267, 281, 292, 389, 393, 429, 459, 474, 477, 481, 572], - [218, 267, 281, 356, 375, 393, 482], - [218, 267, 330, 388, 484, 564, 574], - [218, 267, 281, 309, 407, 574], - [218, 267, 281, 361, 387, 388, 389, 398, 416, 483, 485, 564, 574], - [212, 218, 267, 385, 451, 488, 578, 580], + [218, 267, 284, 285, 600], + [218, 267, 284, 285, 339, 345, 364, 384, 479], + [218, 267, 284, 285, 332], + [218, 267, 284, 285, 325, 339, 345], + [218, 267, 284, 285, 511], + [218, 267, 284, 285, 508, 509, 511], + [218, 267, 284, 285, 508, 510, 600], + [218, 267, 281, 284, 285, 384, 581, 597], + [218, 267, 281, 284, 285, 455, 458, 474, 479, 597], + [218, 267, 281, 284, 285, 427, 597], + [218, 267, 284, 285, 487], + [218, 267, 284, 285, 486, 487, 488], + [218, 267, 284, 285, 486], [ - 218, 267, 281, 292, 309, 334, 356, 363, 375, 384, 386, 422, 426, 427, 428, - 429, 430, 454, 456, 468, 469, 471, 473, 489, 491, 564, 565, 570, 571, 572, - 580 + 212, 218, 267, 281, 284, 285, 325, 332, 344, 350, 356, 362, 364, 368, 369, + 382, 383, 450, 480, 481, 494, 600, 604 ], - [218, 267, 281, 298, 356, 474, 480, 486, 572], - [218, 267, 366, 367, 368, 369, 370, 371, 372, 373, 374], - [218, 267, 417, 460], - [218, 267, 462], - [218, 267, 460], - [218, 267, 462, 463], - [218, 267, 281, 334, 337, 339, 383, 575], + [218, 267, 284, 285, 329, 332, 366, 403, 500, 501, 506, 600, 652], + [218, 267, 284, 285, 366, 652], + [218, 267, 284, 285, 329, 383, 552, 600, 652], + [218, 267, 284, 285, 652], + [218, 267, 284, 285, 332, 366, 367, 652], + [218, 267, 284, 285, 503, 652], + [218, 267, 284, 285, 369, 482, 485, 492], + [206, 218, 267, 284, 285, 557], + [218, 267, 284, 285, 293, 339, 354], + [218, 267, 284, 285, 339, 354], + [206, 218, 267, 284, 285, 424], + [206, 218, 267, 284, 285, 345, 354, 557], + [218, 267, 284, 285, 339, 410, 424, 425, 634, 641], + [218, 267, 284, 285, 409, 635, 636, 637, 638, 640], + [218, 267, 284, 285, 460], + [218, 267, 284, 285, 460, 461], + [218, 267, 284, 285, 343, 345, 412, 413], + [218, 267, 284, 285, 345, 419, 420], + [218, 267, 284, 285, 345, 414, 422], + [218, 267, 284, 285, 419], + [218, 267, 284, 285, 337, 345, 412, 413, 414, 415, 416, 417, 418, 419, 422], + [218, 267, 284, 285, 345, 412, 419, 420, 421, 423], + [218, 267, 284, 285, 345, 413, 415, 416], + [218, 267, 284, 285, 413, 415, 418, 420], + [218, 267, 284, 285, 639], + [218, 267, 284, 285, 345], + [206, 218, 267, 284, 285, 333, 628], + [206, 218, 267, 284, 285, 310], + [206, 218, 267, 284, 285, 366, 401], + [206, 218, 267, 284, 285, 366, 494], + [218, 267, 284, 285, 399, 404], + [206, 218, 267, 284, 285, 400, 606], + [218, 267, 284, 285, 1484], + [206, 210, 218, 267, 281, 284, 285, 318, 319, 323, 324, 604, 648], + [218, 267, 281, 284, 285, 345], [ - 218, 267, 281, 292, 329, 331, 384, 385, 430, 450, 451, 452, 489, 572, 576, - 578, 580 + 218, 267, 281, 284, 285, 344, 349, 430, 447, 489, 490, 494, 549, 551, 600, + 601 ], - [218, 267, 281, 292, 309, 333, 339, 452, 454, 500, 565, 571, 575], - [218, 267, 495], - [218, 267, 496], - [218, 267, 352, 353, 543], - [218, 267, 497], - [218, 267, 377, 381], - [218, 267, 281, 334, 377, 384], - [218, 267, 380, 381], - [218, 267, 382], - [218, 267, 377, 378], - [218, 267, 377, 431], - [218, 267, 377], - [218, 267, 417, 458, 571], - [218, 267, 457], - [218, 267, 378, 570, 571], - [218, 267, 455, 571], - [218, 267, 378, 570], - [218, 267, 543], + [218, 267, 284, 285, 382, 491], + [218, 267, 284, 285, 604], + [218, 267, 284, 285, 331], + [206, 218, 267, 284, 285, 336, 339, 554, 570, 572], + [218, 267, 284, 285, 293, 339, 554, 569, 570, 571, 651], + [218, 267, 284, 285, 563, 564, 565, 566, 567, 568], + [218, 267, 284, 285, 565], + [218, 267, 284, 285, 569], + [218, 267, 284, 285, 354, 518, 519, 521], + [206, 218, 267, 284, 285, 345, 512, 513, 514, 515, 520], + [218, 267, 284, 285, 518, 520], + [218, 267, 284, 285, 516], + [218, 267, 284, 285, 517], + [206, 218, 267, 284, 285, 354, 400, 606], + [206, 218, 267, 284, 285, 354, 605, 606], + [206, 218, 267, 284, 285, 354, 606], + [218, 267, 284, 285, 447, 448], + [218, 267, 284, 285, 448], + [218, 267, 281, 284, 285, 601, 606], + [218, 267, 284, 285, 477], + [218, 266, 267, 284, 285, 476], [ - 218, 267, 334, 352, 354, 379, 384, 451, 454, 488, 491, 494, 500, 507, 508, - 537, 540, 542, 564, 572, 575 + 218, 267, 284, 285, 339, 345, 351, 353, 455, 468, 472, 474, 551, 554, 589, + 590, 597, 601 ], - [218, 267, 439, 442, 443, 444, 445, 446], - [206, 218, 267, 319, 323, 412, 538, 539], - [206, 218, 267, 319, 322, 323, 412, 538, 539, 541], - [218, 267, 552], + [218, 267, 284, 285, 345, 394, 416], + [218, 267, 284, 285, 455, 466, 469, 474], [ - 218, 267, 359, 421, 451, 488, 491, 505, 513, 517, 545, 546, 547, 548, 550, - 551, 554, 564, 569, 574 + 206, 218, 267, 284, 285, 336, 339, 455, 458, 474, 477, 511, 558, 559, 560, + 561, 562, 573, 574, 575, 576, 577, 578, 579, 580, 652 ], - [218, 267, 445], - [218, 267, 450], - [218, 267, 281, 384, 432, 447, 449, 453, 488, 572, 578, 580], - [218, 267, 439, 440, 441, 442, 443, 444, 445, 446, 579], + [218, 267, 284, 285, 336, 339, 364, 455, 462, 463, 464, 467, 468], + [218, 267, 284, 285, 299, 345, 364, 466, 473, 554, 555, 597], + [218, 267, 284, 285, 470], [ - 212, 218, 267, 281, 292, 309, 377, 378, 386, 430, 451, 454, 486, 487, 489, - 564, 565, 574, 575, 578 + 218, 267, 281, 284, 285, 293, 333, 345, 349, 359, 391, 392, 395, 447, 450, + 515, 549, 550, 589, 600, 601, 602, 604, 652 ], - [218, 267, 421, 423, 426, 565], - [218, 267, 281, 417, 574], - [218, 267, 420, 505], - [218, 267, 419], - [218, 267, 421, 422], - [218, 267, 418, 420, 574], - [218, 267, 281, 333, 421, 423, 424, 425, 574, 575], - [206, 218, 267, 340, 352, 570], - [206, 218, 267, 351], - [218, 267, 326, 327], - [206, 218, 267, 331], - [206, 218, 267, 570], - [206, 212, 218, 267, 430, 451, 578, 580], - [218, 267, 331, 600, 601], - [206, 218, 267, 438], - [206, 218, 267, 292, 309, 329, 400, 433, 435, 437, 580], - [218, 267, 361, 570, 575], - [218, 267, 470, 570], - [206, 218, 267, 279, 281, 292, 328, 329, 395, 438, 578, 579], - [206, 218, 267, 317, 318, 322, 323, 578, 625], - [206, 207, 208, 209, 210, 218, 267], - [218, 267, 272], - [218, 267, 390, 391, 392], - [218, 267, 390], + [218, 267, 284, 285, 336, 337, 339], + [218, 267, 284, 285, 455], + [218, 266, 267, 284, 285, 364, 391, 392, 449, 450, 451, 452, 453, 454, 601], + [218, 267, 284, 285, 474], [ - 206, 210, 218, 267, 281, 283, 292, 316, 317, 318, 319, 322, 323, 324, 329, - 386, 481, 525, 576, 577, 580, 625 + 218, 266, 267, 284, 285, 338, 339, 349, 353, 389, 455, 462, 463, 464, 465, + 466, 469, 470, 471, 472, 473, 590 ], - [218, 267, 588], - [218, 267, 590], - [218, 267, 592], - [218, 267, 1463], - [218, 267, 594], - [218, 267, 596, 597, 598], - [218, 267, 602], + [218, 267, 281, 284, 285, 389, 390, 462, 601, 602], + [218, 267, 284, 285, 364, 392, 447, 450, 455, 551, 601], + [218, 267, 281, 284, 285, 600, 602], + [218, 267, 281, 284, 285, 299, 597, 601, 602], [ - 211, 218, 267, 582, 587, 589, 591, 593, 595, 599, 603, 605, 616, 617, 619, - 628, 629, 630, 631 + 218, 267, 281, 284, 285, 293, 325, 339, 344, 351, 353, 356, 359, 366, 386, + 391, 392, 393, 394, 395, 430, 431, 433, 436, 438, 441, 442, 443, 444, 446, + 494, 549, 551, 597, 600, 601, 602 ], - [218, 267, 604], - [218, 267, 615], - [218, 267, 435], - [218, 267, 618], - [218, 266, 267, 421, 423, 424, 426, 620, 621, 622, 625, 626, 627], - [218, 267, 316], - [218, 267, 1664], - [218, 267, 1664, 1665, 1671], - [218, 267, 1664, 1665], - [218, 267, 1664, 1665, 1666, 1667, 1668, 1669, 1670], - [218, 267, 316, 1228, 1229, 1230], - [218, 267, 298, 316, 1228], - [218, 267, 1642], - [218, 267, 1643], + [218, 267, 281, 284, 285, 299], + [218, 267, 284, 285, 332, 333, 334, 362, 597, 598, 599, 604, 606, 652], + [218, 267, 284, 285, 329, 330, 600], + [218, 267, 284, 285, 523], [ - 218, 267, 1472, 1476, 1478, 1481, 1485, 1486, 1494, 1496, 1530, 1531, - 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, - 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, - 1556 + 218, 267, 281, 284, 285, 299, 310, 341, 507, 511, 512, 513, 514, 515, 521, + 522, 652 ], - [206, 218, 267, 1511], [ - 218, 267, 1511, 1512, 1513, 1516, 1517, 1518, 1519, 1520, 1521, 1522, - 1525, 1526 + 218, 267, 284, 285, 293, 310, 325, 339, 341, 353, 356, 392, 431, 436, 446, + 447, 500, 527, 528, 529, 535, 538, 539, 549, 551, 597, 600 ], - [218, 267, 1511], - [218, 267, 1514, 1515], - [206, 218, 267, 1509, 1511], - [218, 267, 1506, 1507, 1509], - [218, 267, 1502, 1505, 1507, 1509], - [218, 267, 1506, 1509], - [206, 218, 267, 1497, 1498, 1499, 1502, 1503, 1504, 1506, 1507, 1508, 1509], - [218, 267, 1499, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510], - [218, 267, 1506], - [218, 267, 1500, 1506, 1507], - [218, 267, 1500, 1501], - [218, 267, 1505, 1507, 1508], - [218, 267, 1505], - [218, 267, 1497, 1502, 1507, 1508], - [218, 267, 1523, 1524], - [67, 218, 267, 1306], - [60, 218, 267, 1355], - [218, 267, 1355], - [60, 218, 267, 1309, 1354], - [218, 267, 1313, 1314, 1318, 1345, 1346, 1348, 1349, 1350, 1352, 1353], - [218, 267, 1311, 1312], - [218, 267, 1311], - [218, 267, 1313, 1353], - [218, 267, 1313, 1314, 1350, 1351, 1353], - [218, 267, 1353], - [218, 267, 1310, 1353, 1354], - [218, 267, 1313, 1314, 1352, 1353], - [218, 267, 1313, 1314, 1316, 1317, 1352, 1353], - [218, 267, 1313, 1314, 1315, 1352, 1353], - [218, 267, 1313, 1314, 1318, 1345, 1346, 1347, 1348, 1349, 1352, 1353], - [218, 267, 1310, 1313, 1314, 1318, 1350, 1352], - [218, 267, 1318, 1353], + [218, 267, 284, 285, 356, 362, 369, 382, 392, 450, 600], + [218, 267, 281, 284, 285, 310, 333, 344, 353, 392, 533, 597, 600], + [218, 267, 284, 285, 553], + [218, 267, 281, 284, 285, 523, 536, 537, 546], + [218, 267, 284, 285, 597, 600], + [218, 267, 284, 285, 452, 590], + [218, 267, 284, 285, 353, 391, 494, 606], + [218, 267, 281, 284, 285, 293, 331, 436, 496, 500, 529, 535, 538, 541, 597], + [218, 267, 281, 284, 285, 369, 382, 500, 542], + [218, 267, 284, 285, 332, 393, 494, 544, 600, 602], + [218, 267, 281, 284, 285, 310, 515, 600], + [218, 267, 281, 284, 285, 366, 393, 494, 495, 496, 505, 523, 543, 545, 600], + [212, 218, 267, 281, 284, 285, 391, 548, 604, 606], + [218, 267, 284, 285, 445, 549], [ - 218, 267, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1353 + 218, 267, 281, 284, 285, 293, 339, 342, 344, 345, 351, 353, 359, 368, 369, + 382, 392, 395, 431, 433, 443, 446, 447, 494, 527, 528, 529, 530, 532, 534, + 549, 551, 597, 606 ], - [218, 267, 1343, 1353], - [218, 267, 1319, 1330, 1338, 1339, 1340, 1341, 1342, 1344], - [218, 267, 1323, 1353], - [218, 267, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1353], - [192, 218, 267], - [171, 192, 193, 194, 218, 267], - [218, 232, 236, 267, 309], - [218, 232, 267, 298, 309], - [218, 227, 267], - [218, 229, 232, 267, 306, 309], - [218, 267, 286, 306], - [218, 227, 267, 316], - [218, 229, 232, 267, 286, 309], - [218, 224, 225, 228, 231, 267, 278, 298, 309], - [218, 232, 239, 267], - [218, 224, 230, 267], - [218, 232, 253, 254, 267], - [218, 228, 232, 267, 301, 309, 316], - [218, 253, 267, 316], - [218, 226, 227, 267, 316], - [218, 232, 267], + [218, 267, 281, 284, 285, 299, 369, 535, 540, 546, 597], + [218, 267, 284, 285, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381], + [218, 267, 284, 285, 386, 437], + [218, 267, 284, 285, 439], + [218, 267, 284, 285, 437], + [218, 267, 284, 285, 439, 440], + [218, 267, 281, 284, 285, 343, 344, 345, 349, 350, 601], + [ + 218, 267, 281, 284, 285, 293, 331, 333, 351, 355, 391, 394, 395, 429, 549, + 597, 602, 604, 606 + ], + [ + 218, 267, 281, 284, 285, 293, 310, 335, 342, 343, 353, 355, 392, 547, 590, + 596, 601 + ], + [218, 267, 284, 285, 462], + [218, 267, 284, 285, 463], + [218, 267, 284, 285, 345, 356, 589], + [218, 267, 284, 285, 464], + [218, 267, 284, 285, 338], + [218, 267, 284, 285, 340, 352], + [218, 267, 281, 284, 285, 340, 344, 351], + [218, 267, 284, 285, 347, 352], + [218, 267, 284, 285, 348], + [218, 267, 284, 285, 340, 341], + [218, 267, 284, 285, 340, 396], + [218, 267, 284, 285, 340], + [218, 267, 284, 285, 342, 386, 435], + [218, 267, 284, 285, 434], + [218, 267, 284, 285, 339, 341, 342], + [218, 267, 284, 285, 342, 432], + [218, 267, 284, 285, 339, 341], + [218, 267, 284, 285, 391, 494], + [218, 267, 284, 285, 589], + [ + 218, 267, 281, 284, 285, 310, 351, 353, 357, 391, 494, 548, 551, 554, 555, + 556, 582, 583, 586, 588, 590, 597, 601 + ], + [218, 267, 284, 285, 405, 408, 410, 411, 424, 425], + [206, 218, 267, 284, 285, 320, 324, 354, 584, 585], + [206, 218, 267, 284, 285, 320, 323, 324, 354, 584, 585, 587], + [218, 267, 284, 285, 478], + [ + 218, 267, 284, 285, 364, 385, 390, 391, 455, 456, 457, 458, 459, 461, 474, + 475, 477, 480, 548, 551, 600, 602 + ], + [218, 267, 284, 285, 424], + [218, 267, 281, 284, 285, 429, 597], + [218, 267, 284, 285, 429], + [218, 267, 281, 284, 285, 351, 397, 426, 428, 430, 548, 597, 604, 606], + [218, 267, 284, 285, 405, 406, 407, 408, 410, 411, 424, 425, 605], + [ + 212, 218, 267, 281, 284, 285, 293, 310, 340, 341, 353, 359, 391, 392, 395, + 494, 546, 547, 549, 597, 600, 601, 604 + ], + [218, 267, 284, 285, 336, 339, 346], + [218, 267, 284, 285, 390, 392, 524, 527], + [218, 267, 284, 285, 390, 525, 591, 592, 593, 594, 595], + [218, 267, 281, 284, 285, 386, 600], + [218, 267, 281, 284, 285], + [218, 267, 284, 285, 389, 474], + [218, 267, 284, 285, 388], + [218, 267, 284, 285, 390, 443], + [218, 267, 284, 285, 387, 389, 600], + [218, 267, 281, 284, 285, 335, 390, 524, 525, 526, 597, 600, 601], + [206, 218, 267, 284, 285, 339, 345, 423], + [206, 218, 267, 284, 285, 337], + [218, 267, 284, 285, 327, 328], + [206, 218, 267, 284, 285, 333], + [206, 218, 267, 284, 285, 339, 409], + [206, 212, 218, 267, 284, 285, 391, 395, 604, 606], + [218, 267, 284, 285, 333, 628, 629], + [206, 218, 267, 284, 285, 404], + [206, 218, 267, 284, 285, 293, 310, 331, 398, 400, 402, 403, 606], + [218, 267, 284, 285, 339, 366, 601], + [218, 267, 284, 285, 339, 531], + [206, 218, 267, 279, 281, 284, 285, 293, 329, 331, 404, 502, 604, 605], + [206, 218, 267, 284, 285, 318, 319, 323, 324, 604, 649], + [206, 207, 208, 209, 210, 218, 267, 284, 285], + [218, 267, 272, 284, 285], + [218, 267, 284, 285, 497, 498, 499], + [218, 267, 284, 285, 497], + [ + 206, 210, 218, 267, 281, 283, 284, 285, 293, 317, 318, 319, 320, 323, 324, + 325, 331, 359, 364, 541, 569, 602, 603, 606, 649 + ], + [218, 267, 284, 285, 614], + [218, 267, 284, 285, 616], + [218, 267, 284, 285, 620], + [218, 267, 284, 285, 1485], + [218, 267, 284, 285, 622], + [218, 267, 284, 285, 624, 625, 626], + [218, 267, 284, 285, 630], + [ + 211, 218, 267, 284, 285, 608, 613, 615, 617, 621, 623, 627, 631, 633, 643, + 644, 646, 650, 651, 652, 653 + ], + [218, 267, 284, 285, 632], + [218, 267, 284, 285, 642], + [218, 267, 284, 285, 400], + [218, 267, 284, 285, 645], + [218, 266, 267, 284, 285, 390, 524, 525, 527, 591, 592, 594, 595, 647, 649], + [218, 267, 284, 285, 317], + [218, 267, 284, 285, 2713], + [218, 267, 284, 285, 2713, 2714, 2720], + [218, 267, 284, 285, 2713, 2714], + [218, 267, 284, 285, 2713, 2714, 2715, 2716, 2717, 2718, 2719], + [218, 267, 284, 285, 317, 1268, 1269, 1270], + [218, 267, 284, 285, 299, 317, 1268], + [218, 267, 284, 285, 2692], + [218, 267, 284, 285, 2693], + [ + 218, 267, 284, 285, 1493, 1496, 1497, 1500, 1501, 1502, 1503, 1504, 1505, + 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, + 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, + 1535, 1536 + ], + [206, 218, 267, 284, 285, 1935], + [218, 267, 284, 285, 1968], + [218, 267, 284, 285, 1929], + [218, 267, 284, 285, 1969], + [218, 267, 284, 285, 1814, 1910, 1966, 1967], + [218, 267, 284, 285, 1929, 1930, 1968, 1969], + [206, 218, 267, 284, 285, 1935, 1970], + [206, 218, 267, 284, 285, 1930], + [206, 218, 267, 284, 285, 1970], + [206, 218, 267, 284, 285, 1938], + [ + 218, 267, 284, 285, 1911, 1912, 1913, 1914, 1915, 1936, 1937, 1938, 1939, + 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, + 1952, 1953, 1954, 1955, 1956 + ], + [218, 267, 284, 285, 1958, 1959, 1960, 1961, 1962, 1963, 1964], + [218, 267, 284, 285, 1935], + [218, 267, 284, 285, 1972], + [ + 218, 267, 284, 285, 1556, 1927, 1928, 1933, 1935, 1957, 1965, 1970, 1971, + 1973, 1981 + ], + [ + 218, 267, 284, 285, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, + 1925, 1926 + ], + [218, 267, 284, 285, 1935, 1968], + [218, 267, 284, 285, 1914, 1915, 1927, 1928, 1931, 1933, 1966], + [218, 267, 284, 285, 1931, 1932, 1934, 1966], + [206, 218, 267, 284, 285, 1928, 1966, 1968], + [218, 267, 284, 285, 1931, 1966], + [206, 218, 267, 284, 285, 1927, 1928, 1957, 1965], + [206, 218, 267, 284, 285, 1930, 1931, 1932, 1966, 1969], + [218, 267, 284, 285, 1974, 1975, 1976, 1977, 1978, 1979, 1980], + [206, 218, 267, 284, 285, 2561], + [ + 218, 267, 284, 285, 2561, 2562, 2563, 2566, 2567, 2568, 2569, 2570, 2571, + 2572, 2575, 2576 + ], + [218, 267, 284, 285, 2561], + [218, 267, 284, 285, 2564, 2565], + [206, 218, 267, 284, 285, 2559, 2561], + [218, 267, 284, 285, 2556, 2557, 2559], + [218, 267, 284, 285, 2552, 2555, 2557, 2559], + [218, 267, 284, 285, 2556, 2559], + [ + 206, 218, 267, 284, 285, 2547, 2548, 2549, 2552, 2553, 2554, 2556, 2557, + 2558, 2559 + ], + [ + 218, 267, 284, 285, 2549, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, + 2560 + ], + [218, 267, 284, 285, 2556], + [218, 267, 284, 285, 2550, 2556, 2557], + [218, 267, 284, 285, 2550, 2551], + [218, 267, 284, 285, 2555, 2557, 2558], + [218, 267, 284, 285, 2555], + [218, 267, 284, 285, 2547, 2552, 2557, 2558], + [218, 267, 284, 285, 2573, 2574], + [ + 206, 218, 267, 284, 285, 2027, 2038, 2043, 2049, 2050, 2057, 2059, 2060, + 2062, 2103, 2106 + ], + [ + 206, 218, 267, 284, 285, 2027, 2038, 2043, 2048, 2050, 2059, 2063, 2064, + 2066, 2067, 2103, 2106 + ], + [206, 218, 267, 284, 285, 2059, 2064, 2108], + [206, 218, 267, 284, 285, 2042, 2106], + [206, 218, 267, 284, 285, 2026, 2027, 2029, 2038, 2106], + [206, 218, 267, 284, 285, 2027, 2038, 2059, 2097, 2106], + [206, 218, 267, 284, 285, 2027, 2065, 2086, 2090, 2106], + [206, 218, 267, 284, 285, 2050, 2073, 2074, 2106, 2147], + [206, 218, 267, 284, 285, 2027, 2038, 2043, 2049, 2050, 2103, 2106], + [206, 218, 267, 284, 285, 2027, 2029, 2064, 2078, 2130], + [206, 218, 267, 284, 285, 2025, 2027, 2029, 2078], + [206, 218, 267, 284, 285, 2027, 2029, 2058, 2078, 2079, 2106], + [ + 206, 218, 267, 284, 285, 2027, 2038, 2041, 2045, 2049, 2050, 2074, 2088, + 2089, 2103, 2106 + ], + [206, 218, 267, 284, 285, 2031, 2038, 2106], + [206, 218, 267, 284, 285, 2031, 2038, 2103, 2106], + [218, 267, 284, 285, 2026, 2106], + [218, 267, 284, 285, 2038, 2106], + [206, 218, 267, 284, 285, 2106], + [206, 218, 267, 284, 285, 2064, 2074, 2106], + [206, 218, 267, 284, 285, 2026, 2074, 2106], + [206, 218, 267, 284, 285, 2074, 2106], + [206, 218, 267, 284, 285, 2039], + [206, 218, 267, 284, 285, 2027, 2074, 2106], + [206, 218, 267, 284, 285, 2025, 2027, 2106], + [206, 218, 267, 284, 285, 2026, 2027, 2028, 2106], + [206, 218, 267, 284, 285, 2026, 2027, 2029, 2106, 2158], + [206, 218, 267, 284, 285, 2051, 2052, 2053], + [206, 218, 267, 284, 285, 2038, 2040, 2041, 2052, 2074, 2106, 2109], + [218, 267, 284, 285, 2096, 2106], + [218, 267, 284, 285, 2038, 2039, 2058, 2101, 2103, 2106], + [ + 218, 267, 284, 285, 2025, 2026, 2027, 2029, 2030, 2031, 2038, 2039, 2041, + 2049, 2050, 2051, 2054, 2058, 2061, 2064, 2065, 2074, 2078, 2080, 2086, + 2088, 2089, 2090, 2091, 2098, 2101, 2102, 2103, 2106, 2107, 2108, 2110, + 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2119, 2121, 2123, 2124, 2125, + 2126, 2127, 2128, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, + 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, + 2153, 2154, 2155, 2156, 2157 + ], + [206, 218, 267, 284, 285, 2027, 2043, 2050, 2069, 2071, 2106, 2122], + [206, 218, 267, 284, 285, 2027, 2031, 2038, 2079, 2106, 2120], + [206, 218, 267, 284, 285, 2027, 2038], + [206, 218, 267, 284, 285, 2027, 2031, 2038, 2079, 2106, 2118], + [206, 218, 267, 284, 285, 2027, 2050, 2058, 2070, 2079, 2106], + [ + 206, 218, 267, 284, 285, 2027, 2038, 2043, 2048, 2050, 2059, 2103, 2106, + 2114, 2122, 2125 + ], + [206, 218, 267, 284, 285, 2048, 2106], + [206, 218, 267, 284, 285, 2063, 2106], + [218, 267, 284, 285, 2032, 2037, 2106], + [218, 267, 284, 285, 2030, 2031, 2032, 2037, 2103, 2106], + [218, 267, 284, 285, 2032, 2037, 2042], + [218, 267, 284, 285, 2032, 2037, 2073, 2091, 2106], + [ + 218, 267, 284, 285, 2032, 2037, 2038, 2043, 2044, 2045, 2062, 2067, 2068, + 2071, 2072, 2106 + ], + [218, 267, 284, 285, 2032, 2037, 2051, 2054, 2106], + [218, 267, 284, 285, 2032, 2037, 2074, 2106], + [218, 267, 284, 285, 2032, 2037, 2038], + [218, 267, 284, 285, 2032, 2037], + [218, 267, 284, 285, 2032, 2037, 2038, 2077, 2078, 2080], + [218, 267, 284, 285, 2032, 2037, 2038, 2077, 2106], + [218, 267, 284, 285, 2032, 2037, 2039, 2061, 2106], + [218, 267, 284, 285, 2057, 2073, 2096, 2106], + [ + 218, 267, 284, 285, 2038, 2043, 2056, 2057, 2058, 2073, 2081, 2084, 2092, + 2096, 2098, 2099, 2100, 2102, 2106 + ], + [218, 267, 284, 285, 2038, 2043, 2056, 2057], + [218, 267, 284, 285, 2096], + [ + 218, 267, 284, 285, 2037, 2038, 2043, 2055, 2073, 2074, 2075, 2076, 2081, + 2082, 2083, 2084, 2085, 2092, 2093, 2094, 2095 + ], + [218, 267, 284, 285, 2032, 2037, 2038, 2040, 2041, 2073, 2106], + [218, 267, 284, 285, 2043, 2056, 2061, 2073, 2106], + [218, 267, 284, 285, 2056, 2066, 2073], + [218, 267, 284, 285, 2043, 2073, 2106], + [206, 218, 267, 284, 285, 2041, 2069, 2070, 2073, 2106], + [218, 267, 284, 285, 2073], + [218, 267, 284, 285, 2056, 2073], + [218, 267, 284, 285, 2041, 2043, 2073, 2106], + [218, 267, 284, 285, 2059, 2073, 2106], + [218, 267, 284, 285, 2074, 2106], + [206, 218, 267, 284, 285, 2064, 2065, 2106], + [218, 267, 284, 285, 2041, 2048, 2055, 2057, 2058, 2074, 2103, 2106], + [206, 218, 267, 284, 285, 2126], + [206, 218, 267, 284, 285, 2073, 2087, 2090, 2106], + [ + 206, 218, 267, 284, 285, 2061, 2065, 2086, 2090, 2106, 2133, 2134, 2135, + 2148 + ], + [206, 218, 267, 284, 285, 2106, 2119, 2121, 2123, 2124, 2126], + [218, 267, 284, 285, 2106], + [218, 267, 284, 285, 2031, 2106], + [218, 267, 284, 285, 2038, 2106, 2152], + [218, 267, 284, 285, 2048, 2056, 2059, 2073], + [206, 218, 267, 284, 285, 2069, 2129], + [ + 206, 218, 267, 284, 285, 2024, 2025, 2026, 2029, 2030, 2031, 2038, 2039, + 2040, 2043, 2061, 2069, 2103, 2104, 2105, 2158 + ], + [218, 267, 284, 285, 2032], + [192, 218, 267, 284, 285], + [171, 192, 193, 194, 218, 267, 284, 285], + [218, 232, 236, 267, 284, 285, 310], + [218, 232, 267, 284, 285, 299, 310], + [218, 227, 267, 284, 285], + [218, 229, 232, 267, 284, 285, 307, 310], + [218, 267, 284, 285, 287, 307], + [218, 227, 267, 284, 285, 317], + [218, 229, 232, 267, 284, 285, 287, 310], + [218, 224, 225, 228, 231, 267, 278, 284, 285, 299, 310], + [218, 232, 239, 267, 284, 285], + [218, 224, 230, 267, 284, 285], + [218, 232, 253, 254, 267, 284, 285], + [218, 228, 232, 267, 284, 285, 302, 310, 317], + [218, 253, 267, 284, 285, 317], + [218, 226, 227, 267, 284, 285, 317], + [218, 232, 267, 284, 285], [ 218, 226, 227, 228, 229, 230, 231, 232, 233, 234, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 254, 255, 256, - 257, 258, 259, 267 + 257, 258, 259, 267, 284, 285 ], - [218, 232, 247, 267], - [218, 232, 239, 240, 267], - [218, 230, 232, 240, 241, 267], - [218, 231, 267], - [218, 224, 227, 232, 267], - [218, 232, 236, 240, 241, 267], - [218, 236, 267], - [218, 230, 232, 235, 267, 309], - [218, 224, 229, 232, 239, 267], - [218, 227, 232, 253, 267, 314, 316], - [218, 267, 1306, 1358, 1359, 1360], - [206, 218, 267, 1486], - [218, 267, 1358], + [218, 232, 247, 267, 284, 285], + [218, 232, 239, 240, 267, 284, 285], + [218, 230, 232, 240, 241, 267, 284, 285], + [218, 231, 267, 284, 285], + [218, 224, 227, 232, 267, 284, 285], + [218, 232, 236, 240, 241, 267, 284, 285], + [218, 236, 267, 284, 285], + [218, 230, 232, 235, 267, 284, 285, 310], + [218, 224, 229, 232, 239, 267, 284, 285], + [218, 227, 232, 253, 267, 284, 285, 315, 317], + [218, 267, 284, 285, 2023], + [218, 267, 284, 285, 2047], + [218, 267, 284, 285, 1473], + [218, 267, 284, 285, 2746, 2747, 2758], + [218, 267, 284, 285, 2748, 2749], + [218, 267, 284, 285, 2746, 2747, 2748, 2750, 2751, 2756], + [218, 267, 284, 285, 2747, 2748], + [218, 267, 284, 285, 2756], + [218, 267, 284, 285, 2757], + [218, 267, 284, 285, 2748], + [218, 267, 284, 285, 2746, 2747, 2748, 2751, 2752, 2753, 2754, 2755], + [218, 267, 284, 285, 1464], + [218, 267, 284, 285, 1464, 1467], [ - 60, 67, 218, 267, 281, 283, 284, 286, 306, 309, 312, 1306, 1307, 1308, - 1309, 1356, 1357 + 218, 267, 284, 285, 1459, 1462, 1464, 1465, 1466, 1467, 1468, 1469, 1470, + 1471, 1472 ], - [218, 267, 1451], - [218, 267, 1696, 1697, 1708], - [218, 267, 1698, 1699], - [218, 267, 1696, 1697, 1698, 1700, 1701, 1706], - [218, 267, 1697, 1698], - [218, 267, 1706], - [218, 267, 1707], - [218, 267, 1698], - [218, 267, 1696, 1697, 1698, 1701, 1702, 1703, 1704, 1705], - [218, 267, 1443], - [218, 267, 1443, 1446], - [218, 267, 1437, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450], - [218, 267, 1443, 1444], - [218, 267, 1443, 1445], - [218, 267, 1382, 1384, 1385, 1386, 1387], - [218, 267, 1382, 1384, 1386, 1387], - [218, 267, 1382, 1384, 1386], - [218, 267, 1381, 1382, 1384, 1385, 1387], + [218, 267, 284, 285, 1398, 1400, 1467], + [218, 267, 284, 285, 1464, 1465], + [218, 267, 284, 285, 1399, 1464, 1466], + [218, 267, 284, 285, 1400, 1402, 1404, 1405, 1406, 1407], + [218, 267, 284, 285, 1402, 1404, 1406, 1407], + [218, 267, 284, 285, 1402, 1404, 1406], + [218, 267, 284, 285, 1399, 1402, 1404, 1405, 1407], [ - 218, 267, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1437, 1438, - 1439, 1440, 1441, 1442 + 218, 267, 284, 285, 1398, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, + 1408, 1409, 1459, 1460, 1461, 1462, 1463 ], - [218, 267, 1384, 1387], - [218, 267, 1381, 1382, 1383, 1385, 1386, 1387], - [218, 267, 1384, 1438, 1441], - [218, 267, 1384, 1385, 1386, 1387], - [218, 267, 1452], - [218, 267, 1386], + [218, 267, 284, 285, 1398, 1400, 1401, 1404], + [218, 267, 284, 285, 1400, 1401, 1404], + [218, 267, 284, 285, 1404, 1407], + [218, 267, 284, 285, 1398, 1399, 1401, 1402, 1403, 1405, 1406, 1407], + [218, 267, 284, 285, 1398, 1399, 1400, 1404, 1464], + [218, 267, 284, 285, 1404, 1405, 1406, 1407], + [218, 267, 284, 285, 1474], + [218, 267, 284, 285, 1406], [ - 218, 267, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, - 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, - 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, - 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, - 1436 + 218, 267, 284, 285, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, + 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, + 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, + 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, + 1455, 1456, 1457, 1458 ], - [218, 267, 1605, 1662, 1673, 1674, 1675, 1676, 1677, 1678, 1679], - [218, 267, 1584, 1605, 1658], - [218, 267, 1605, 1659], - [218, 267, 1584, 1650, 1657, 1659, 1660, 1674, 1680], - [218, 267, 1605, 1680], - [218, 267, 1662, 1673], - [218, 267, 1584, 1659, 1661, 1674], - [218, 267, 1646, 1663, 1671, 1672], - [218, 267, 1584, 1657, 1660], - [218, 267, 1605, 1675], - [218, 267, 1712], - [206, 218, 267, 1472, 1576], - [206, 218, 267, 1472, 1474, 1576], - [206, 218, 267, 1476, 1576], - [206, 218, 267, 1468, 1478, 1576], - [206, 218, 267, 1576], - [206, 218, 267, 1474, 1481, 1576], - [206, 218, 267, 1487, 1576], - [206, 218, 267, 1474, 1494, 1576], - [206, 218, 267, 1478, 1496, 1527, 1576], + [218, 267, 284, 285, 2651, 2711, 2722, 2723, 2724, 2725, 2726, 2727, 2728], + [218, 267, 284, 285, 2630, 2651, 2706], + [218, 267, 284, 285, 2651, 2707], + [218, 267, 284, 285, 2630, 2705, 2707, 2708, 2709, 2723, 2729], + [218, 267, 284, 285, 2651, 2729], + [218, 267, 284, 285, 2711, 2722], + [218, 267, 284, 285, 2630, 2707, 2710, 2723], + [218, 267, 284, 285, 2696, 2712, 2720, 2721], + [218, 267, 284, 285, 2630, 2705, 2709], + [218, 267, 284, 285, 2651, 2724], + [218, 267, 284, 285, 2762], + [206, 218, 267, 284, 285, 1488, 1537, 2621], + [206, 218, 267, 284, 285, 1537, 2621], + [206, 218, 267, 284, 285, 1491, 2621], + [218, 267, 284, 285, 1537], + [206, 218, 267, 284, 285, 1491, 1537, 2621], + [206, 218, 267, 284, 285, 1488, 1504, 2621], + [206, 218, 267, 284, 285, 1523, 2621], + [218, 267, 284, 285, 1491, 1537, 2621], + [206, 218, 267, 284, 285, 1488, 1982, 2621], + [206, 218, 267, 284, 285, 2621], + [206, 218, 267, 284, 285, 1488, 2020, 2621], + [206, 218, 267, 284, 285, 2158, 2621], + [206, 218, 267, 284, 285, 1488, 2536, 2621], + [206, 218, 267, 284, 285, 1488, 2538, 2621], + [206, 218, 267, 284, 285, 2542, 2621], + [218, 267, 284, 285, 1491, 2621], + [206, 218, 267, 284, 285, 1514, 1529, 2577, 2621], + [218, 267, 284, 285, 2618, 2619], + [206, 218, 267, 284, 285, 1488], + [206, 218, 267, 284, 285, 651, 1488, 1537, 2580, 2621], [ - 218, 267, 1468, 1469, 1473, 1475, 1477, 1479, 1480, 1482, 1488, 1495, - 1528, 1558, 1559, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, - 1570, 1571, 1574, 1575 + 218, 267, 284, 285, 1491, 1492, 1538, 1539, 1540, 1541, 1542, 1543, 1544, + 1545, 1546, 1547, 1548, 1983, 1984, 2021, 2159, 2160, 2161, 2537, 2539, + 2540, 2541, 2543, 2544, 2545, 2546, 2578, 2579, 2581, 2582, 2583, 2585, + 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2596, 2597, 2598, + 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, + 2612, 2614, 2615, 2616, 2617, 2620 ], - [206, 218, 267, 1474, 1560, 1576], - [206, 218, 267, 1496, 1576], - [206, 218, 267, 1474, 1576], - [206, 218, 267, 1546, 1576], - [206, 218, 267, 1548, 1576], - [206, 218, 267, 1474, 1529, 1557, 1576], - [218, 267, 1572, 1573], - [206, 218, 267, 319, 323, 1474, 1576], - [206, 218, 267, 1550, 1576], - [206, 218, 267, 1551, 1576], - [206, 218, 267, 1474, 1573, 1576], - [64, 66, 70, 71, 72, 195, 218, 267, 288], - [64, 197, 218, 267], - [64, 199, 201, 218, 267] + [206, 218, 267, 284, 285, 1488, 2584, 2621], + [206, 218, 267, 284, 285, 1488, 2621], + [206, 218, 267, 284, 285, 1488, 1491, 1537, 2621], + [218, 267, 284, 285, 1488, 2595, 2621], + [206, 218, 267, 284, 285, 1527, 2621], + [218, 267, 284, 285, 1488, 2611, 2613], + [218, 267, 284, 285, 1488, 2621], + [206, 218, 267, 284, 285, 320, 324, 1488, 2621], + [206, 218, 267, 284, 285, 1488, 2611, 2621], + [64, 66, 70, 71, 72, 195, 218, 267, 284, 285, 289], + [64, 197, 218, 267, 284, 285], + [64, 199, 201, 218, 267, 284, 285] ], "fileInfos": [ { @@ -3324,7 +4963,8 @@ "impliedFormat": 1 }, { - "version": "73b38ba5118432ef1fffa2c7c88d8e6594a6ad6da6f38b4fdbb5f631272d9291", + "version": "ac450542cbfd50a4d7bf0f3ec8aeedb9e95791ecc6f2b2b19367696bd303e8c6", + "signature": "73b38ba5118432ef1fffa2c7c88d8e6594a6ad6da6f38b4fdbb5f631272d9291", "impliedFormat": 1 }, { @@ -3356,7 +4996,8 @@ "impliedFormat": 1 }, { - "version": "e99161067d9684ab365b4c32b1850c936f86e4c7f87ad16065cfa2522d3e46fc", + "version": "3cf631a6ae0060fddf4898c816958e39f47e16570faf7bc7048c774c83cd7a7e", + "signature": "e99161067d9684ab365b4c32b1850c936f86e4c7f87ad16065cfa2522d3e46fc", "impliedFormat": 1 }, { @@ -4122,7 +5763,8 @@ "impliedFormat": 1 }, { - "version": "2cbe0621042e2a68c7cbce5dfed3906a1862a16a7d496010636cdbdb91341c0f", + "version": "b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68", + "signature": "2cbe0621042e2a68c7cbce5dfed3906a1862a16a7d496010636cdbdb91341c0f", "affectsGlobalScope": true, "impliedFormat": 1 }, @@ -4137,11 +5779,13 @@ "impliedFormat": 1 }, { - "version": "df48adbf5b82b79ed989ec3bef2979d988b94978907fd86b4f30ba2b668e49de", + "version": "0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29", + "signature": "df48adbf5b82b79ed989ec3bef2979d988b94978907fd86b4f30ba2b668e49de", "impliedFormat": 1 }, { - "version": "7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419", + "version": "33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f", + "signature": "7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419", "impliedFormat": 1 }, { @@ -4184,7 +5828,8 @@ "impliedFormat": 1 }, { - "version": "6851b67b164a1e84add721ea67ac52696b5aee426b800f68283c6a13046f95ec", + "version": "4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d", + "signature": "6851b67b164a1e84add721ea67ac52696b5aee426b800f68283c6a13046f95ec", "impliedFormat": 1 }, { @@ -4209,7 +5854,8 @@ "impliedFormat": 1 }, { - "version": "a0c4ff5309f0108772562412d15aaa15b32f5db3326288a4490fd461f66a95c8", + "version": "58647d85d0f722a1ce9de50955df60a7489f0593bf1a7015521efe901c06d770", + "signature": "a0c4ff5309f0108772562412d15aaa15b32f5db3326288a4490fd461f66a95c8", "impliedFormat": 1 }, { @@ -4221,7 +5867,13 @@ "impliedFormat": 1 }, { - "version": "ed58b9974bb3114f39806c9c2c6258c4ffa6a255921976a7c53dfa94bf178f42", + "version": "e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc", + "signature": "ed58b9974bb3114f39806c9c2c6258c4ffa6a255921976a7c53dfa94bf178f42", "impliedFormat": 1 }, { @@ -4230,7 +5882,8 @@ "impliedFormat": 1 }, { - "version": "b57f8f7247d878e1bb5c329acbd4c1ad8efb073f4ffa6dc120d52924b1e30e40", + "version": "83e63d6ccf8ec004a3bb6d58b9bb0104f60e002754b1e968024b320730cc5311", + "signature": "b57f8f7247d878e1bb5c329acbd4c1ad8efb073f4ffa6dc120d52924b1e30e40", "impliedFormat": 1 }, { @@ -4238,7 +5891,8 @@ "impliedFormat": 1 }, { - "version": "45875bcae57270aeb3ebc73a5e3fb4c7b9d91d6b045f107c1d8513c28ece71c0", + "version": "8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472", + "signature": "45875bcae57270aeb3ebc73a5e3fb4c7b9d91d6b045f107c1d8513c28ece71c0", "impliedFormat": 1 }, { @@ -4247,7 +5901,8 @@ "impliedFormat": 1 }, { - "version": "6fac322c7864146db8daa23389f979fdb9fb97f63f212a9424a302f01c2a40d1", + "version": "bceb58df66ab8fb00170df20cd813978c5ab84be1d285710c4eb005d8e9d8efb", + "signature": "6fac322c7864146db8daa23389f979fdb9fb97f63f212a9424a302f01c2a40d1", "affectsGlobalScope": true, "impliedFormat": 1 }, @@ -4276,7 +5931,8 @@ "impliedFormat": 1 }, { - "version": "248bc21b92f51ce0b8a67140f2e55887c5f598095e9a790a05fdd2729b531e7a", + "version": "a3fc63c0d7b031693f665f5494412ba4b551fe644ededccc0ab5922401079c95", + "signature": "248bc21b92f51ce0b8a67140f2e55887c5f598095e9a790a05fdd2729b531e7a", "impliedFormat": 1 }, { @@ -4292,7 +5948,8 @@ "impliedFormat": 1 }, { - "version": "dba28a419aec76ed864ef43e5f577a5c99a010c32e5949fe4e17a4d57c58dd11", + "version": "6b039f55681caaf111d5eb84d292b9bee9e0131d0db1ad0871eef0964f533c73", + "signature": "dba28a419aec76ed864ef43e5f577a5c99a010c32e5949fe4e17a4d57c58dd11", "affectsGlobalScope": true, "impliedFormat": 1 }, @@ -4301,7 +5958,8 @@ "impliedFormat": 1 }, { - "version": "c959a391a75be9789b43c8468f71e3fa06488b4d691d5729dde1416dcd38225b", + "version": "c8d3e5a18ba35629954e48c4cc8f11dc88224650067a172685c736b27a34a4dc", + "signature": "c959a391a75be9789b43c8468f71e3fa06488b4d691d5729dde1416dcd38225b", "impliedFormat": 1 }, { @@ -4314,7 +5972,8 @@ "impliedFormat": 1 }, { - "version": "8c66347a2f5b28e579a306672633dd900751e72bb5c3150ceb10b1fcfcf3d12d", + "version": "2b55d426ff2b9087485e52ac4bc7cfafe1dc420fc76dad926cd46526567c501a", + "signature": "8c66347a2f5b28e579a306672633dd900751e72bb5c3150ceb10b1fcfcf3d12d", "impliedFormat": 1 }, { @@ -4326,12 +5985,14 @@ "impliedFormat": 1 }, { - "version": "ea2e8e586844e2ebda7986fd859c4c7b283dc90198cd485250498a5412db27a0", + "version": "5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef", + "signature": "ea2e8e586844e2ebda7986fd859c4c7b283dc90198cd485250498a5412db27a0", "affectsGlobalScope": true, "impliedFormat": 1 }, { - "version": "4bf07b8f59b43670a28f14d0d5668a5f4abfe106d481fad660f8a1010529609a", + "version": "5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69", + "signature": "4bf07b8f59b43670a28f14d0d5668a5f4abfe106d481fad660f8a1010529609a", "affectsGlobalScope": true, "impliedFormat": 1 }, @@ -4348,16 +6009,19 @@ "impliedFormat": 1 }, { - "version": "71122b94871f11a2be216426470523b679a318b08b34dab23e5e4ba9bdf54c23", + "version": "8a1a0d0a4a06a8d278947fcb66bf684f117bf147f89b06e50662d79a53be3e9f", + "signature": "71122b94871f11a2be216426470523b679a318b08b34dab23e5e4ba9bdf54c23", "affectsGlobalScope": true, "impliedFormat": 1 }, { - "version": "02aa5feb7aaa41b25b86c7a873839a799d4c6beee4f7d1789aa338905554e495", + "version": "358765d5ea8afd285d4fd1532e78b88273f18cb3f87403a9b16fef61ac9fdcfe", + "signature": "02aa5feb7aaa41b25b86c7a873839a799d4c6beee4f7d1789aa338905554e495", "impliedFormat": 1 }, { - "version": "bdf1feb266c87edbee61f12ceaaef60ab0e2e5dba70ca19360b6448911c53d52", + "version": "9f55299850d4f0921e79b6bf344b47c420ce0f507b9dcf593e532b09ea7eeea1", + "signature": "bdf1feb266c87edbee61f12ceaaef60ab0e2e5dba70ca19360b6448911c53d52", "impliedFormat": 1 }, { @@ -4406,19 +6070,27 @@ "impliedFormat": 1 }, { - "version": "14109b34dc927e3b872c0f954a8d2536c245e38062bc47e8f97ba27f922fc9bd", + "version": "2f4e6b4d39426a1b85ecf4bdeb9dddbf4d9b3397d95d8555d46f925c9519ec7d", + "signature": "14109b34dc927e3b872c0f954a8d2536c245e38062bc47e8f97ba27f922fc9bd", "impliedFormat": 1 }, { - "version": "1214c8bb321e2376f9dfc174a97b06c6e7bef05a61a1c50f094617d99fc4c9dd", + "version": "78a2869ad0cbf3f9045dda08c0d4562b7e1b2bfe07b19e0db072f5c3c56e9584", "impliedFormat": 1 }, { - "version": "96ffa70b486207241c0fcedb5d9553684f7fa6746bc2b04c519e7ebf41a51205", + "version": "89d5d28d4f57e000b836ac273079be1b75710e28ce14750d081fb420d37e2ca5", + "signature": "1214c8bb321e2376f9dfc174a97b06c6e7bef05a61a1c50f094617d99fc4c9dd", "impliedFormat": 1 }, { - "version": "5c24c66b3ba29ce9f2a79c719967e6e944131352a117a0bc43fa5b346b5562b3", + "version": "fd4e24ccff3966390600d7f5d6aa1fed5a512e92ada735ea5fbc933d313ad3d3", + "signature": "96ffa70b486207241c0fcedb5d9553684f7fa6746bc2b04c519e7ebf41a51205", + "impliedFormat": 1 + }, + { + "version": "b7cddfe1aa6b86b5fad3c9ccb30d05b3ccb165aebbf112f48d2d8a5f69dd98b1", + "signature": "5c24c66b3ba29ce9f2a79c719967e6e944131352a117a0bc43fa5b346b5562b3", "impliedFormat": 1 }, { @@ -4429,96 +6101,124 @@ "version": "ad0d1d75d129b1c80f911be438d6b61bfa8703930a8ff2be2f0e1f8a91841c64", "impliedFormat": 1 }, + { + "version": "bd2c7ada3dee03653d3f601011d30072194bc3970cd93208f9588fbdc0c69347", + "signature": "8a8c64dafaba11c806efa56f5c69f611276471bef80a1db1f71316ec4168acef", + "impliedFormat": 1 + }, + { + "version": "e480da45d32313e7174b265674da504f075f59ef326852f0c5a5d863b438ae85", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "ad54850f61fcf5d014e11be80d2f46fea9265cfa7e77456da876f7833ef81769", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "6f7c9e8bd2b5b6a080b07080065f94900bd3c7e5ebbd3047bc33fcce2fab1dd8", + "signature": "a0ba218ac1baa3da0d5d9c1ec1a7c2f8676c284e6f5b920d6d049b13fa267377", + "impliedFormat": 1 + }, + { + "version": "3e7efde639c6a6c3edb9847b3f61e308bf7a69685b92f665048c45132f51c218", + "impliedFormat": 1 + }, + { + "version": "df45ca1176e6ac211eae7ddf51336dc075c5314bc5c253651bae639defd5eec5", + "impliedFormat": 1 + }, + { + "version": "8a0e762ceb20c7e72504feef83d709468a70af4abccb304f32d6b9bac1129b2c", + "impliedFormat": 1 + }, + { + "version": "da5950ee2a90721df6f3fba45f5d05308f7e4c35835392215dd2cd404505e2de", + "signature": "f0a1bd6ad77f98dd7ed0d3207fcbcb5dd109ba144799cf41b8ea4dacb4e3e009", + "impliedFormat": 1 + }, { "version": "ce75b1aebb33d510ff28af960a9221410a3eaf7f18fc5f21f9404075fba77256", "impliedFormat": 1 }, + { + "version": "f42d5fed19610d485c646a0c430e768115567d078c7fc855c57b0c578b3d6cd3", + "signature": "df3c987836720acdc5d116ca3cafed0b7999d1d6d1001bcb7f4e95d08be143e8", + "impliedFormat": 1 + }, + { + "version": "ee8df1cb8d0faaca4013a1b442e99130769ce06f438d18d510fed95890067563", + "impliedFormat": 1 + }, + { + "version": "d5630f2ad9b4541e5ce891648121022f9412ecdca1820baa1f0104f70fd7eff7", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "4d15375ab13497104bc8fe56fdef2b5fd6853f29255737d23a33fa306ff7fd69", + "signature": "6f491d0108927478d3247bbbc489c78c2da7ef552fd5277f1ab6819986fdf0b1", + "impliedFormat": 1 + }, + { + "version": "2cd3fc1d0d6a1e85baffd2d4f50f5efb192b5446eef567e97c94765402f0aad4", + "signature": "0d8f2b8781c721170b87a6b662b3cb038fd1a721165ecca390352c818d425872", + "impliedFormat": 1 + }, + { + "version": "e4cbf2f1e89ecccaddd2c045e600ae41b732295953fb06247c7dcbc2d281ed30", + "signature": "099f915371bf0f8fd812d48a088531397f9edaf2ebfefe422cbe774c274a1621", + "impliedFormat": 1 + }, + { + "version": "27bbdb7509a5bb564020321fc5485764d0db3230a10d2336ae5ce2c1d401b0e7", + "signature": "15a234e5031b19c48a69ccc1607522d6e4b50f57d308ecb7fe863d44cd9f9eb3", + "impliedFormat": 1 + }, + { + "version": "8c1697d90c394a6fd955b98eae01238eff628e129b987a68aea10f898a48e7da", + "signature": "bfb7f8475428637bee12bdd31bd9968c1c8a1cc2c3e426c959e2f3a307f8936f", + "impliedFormat": 1 + }, + { + "version": "7580e62139cb2b44a0270c8d01abcbfcba2819a02514a527342447fa69b34ef1", + "signature": "162e071992b34bc36ca257d629547f93cb43728d6fe073ad18a237e4f7c52d7d", + "impliedFormat": 1 + }, + { + "version": "42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3", + "impliedFormat": 1 + }, + { + "version": "f374cb24e93e7798c4d9e83ff872fa52d2cdb36306392b840a6ddf46cb925cb6", + "impliedFormat": 1 + }, + { + "version": "d10d63718e1646c2279e3b33831f82c60e31f622b2b7020f1196409ca4c09242", + "signature": "b06d68a692d3c1dd12bed02eaa3b4c06cfc2a3e9560b0cecd2014bba480c4e8e", + "impliedFormat": 1 + }, + { + "version": "106c6025f1d99fd468fd8bf6e5bda724e11e5905a4076c5d29790b6c3745e50c", + "impliedFormat": 1 + }, + { + "version": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "148679c6d0f449210a96e7d2e562d589e56fcde87f843a92808b3ff103f1a774", + "impliedFormat": 1 + }, { "version": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "impliedFormat": 1 }, { - "version": "496bbf339f3838c41f164238543e9fe5f1f10659cb30b68903851618464b98ba", - "impliedFormat": 1 - }, - { - "version": "099f915371bf0f8fd812d48a088531397f9edaf2ebfefe422cbe774c274a1621", - "impliedFormat": 1 - }, - { - "version": "78a2869ad0cbf3f9045dda08c0d4562b7e1b2bfe07b19e0db072f5c3c56e9584", - "impliedFormat": 1 - }, - { - "version": "f0a1bd6ad77f98dd7ed0d3207fcbcb5dd109ba144799cf41b8ea4dacb4e3e009", - "impliedFormat": 1 - }, - { - "version": "197efda3bbcdd3f1bc5379cd0534f1ab740f3be957efb17b320da8e7dcb2743b", - "impliedFormat": 1 - }, - { - "version": "0c05e9842ec4f8b7bfebfd3ca61604bb8c914ba8da9b5337c4f25da427a005f2", - "impliedFormat": 1 - }, - { - "version": "6b078c751b5d5e6b6c413be9d5b4dfc19429415f68b332fe2a39e9f1542b7d8b", - "impliedFormat": 1 - }, - { - "version": "faed7a5153215dbd6ebe76dfdcc0af0cfe760f7362bed43284be544308b114cf", - "impliedFormat": 1 - }, - { - "version": "2821b2fa5851e13a32c60ee34bcc77e9dcc49a1c11e9b90b4bce66e9bc33cd77", - "impliedFormat": 1 - }, - { - "version": "202490d447095d89dd86dd60afb8a4e444181c38ad3af29564f3fe1fd5850b8e", - "impliedFormat": 1 - }, - { - "version": "d3a0843edb8ee75a797f6e646c34b2a865f44719048244666dd1f191d2204bc7", - "impliedFormat": 1 - }, - { - "version": "9346288f949b2b88527b173a7c8bf85aca37be087d0ca4e56df8f84421bcd721", - "impliedFormat": 1 - }, - { - "version": "ed27e451ce2425f7cc032d16d15621600d4599d308c2f0da8fd9e4548a90fbe4", - "impliedFormat": 1 - }, - { - "version": "a7907a713895fe2b67001b10870649ecc286f102d21fb1b07a09eb7f86684f81", - "impliedFormat": 1 - }, - { - "version": "c327002046cc4dd450cff982d36e64e020838dae04eafb06d8d6f2dc1333237a", - "impliedFormat": 1 - }, - { - "version": "808b5d89d2ee266eb5552a053c1dd9633e6fb313f6c24c1788034a755c790552", - "impliedFormat": 1 - }, - { - "version": "df3c987836720acdc5d116ca3cafed0b7999d1d6d1001bcb7f4e95d08be143e8", - "impliedFormat": 1 - }, - { - "version": "b06d68a692d3c1dd12bed02eaa3b4c06cfc2a3e9560b0cecd2014bba480c4e8e", - "impliedFormat": 1 - }, - { - "version": "9e2739b32f741859263fdba0244c194ca8e96da49b430377930b8f721d77c000", - "impliedFormat": 1 - }, - { - "version": "fb1d8e814a3eeb5101ca13515e0548e112bd1ff3fb358ece535b93e94adf5a3a", - "impliedFormat": 1 - }, - { - "version": "ffa495b17a5ef1d0399586b590bd281056cee6ce3583e34f39926f8dcc6ecdb5", + "version": "02436d7e9ead85e09a2f8e27d5f47d9464bced31738dec138ca735390815c9f0", + "signature": "496bbf339f3838c41f164238543e9fe5f1f10659cb30b68903851618464b98ba", "impliedFormat": 1 }, { @@ -4530,7 +6230,8 @@ "impliedFormat": 1 }, { - "version": "6975047b49da82197056852c16534c41e7faff71d5048ec5c41cc943ebcf8ca4", + "version": "a22dd55aa4d39906252000ab8e8a1b83b195eef7f4274eb51e457c1f11cf6580", + "signature": "6975047b49da82197056852c16534c41e7faff71d5048ec5c41cc943ebcf8ca4", "impliedFormat": 1 }, { @@ -4542,11 +6243,18 @@ "impliedFormat": 1 }, { - "version": "4e01846df98d478a2a626ec3641524964b38acaac13945c2db198bf9f3df22ee", + "version": "612d9da66bb046a9c1e2e8d026245ded881fc4b9f98cbfae714415d57ee0ae0b", + "signature": "4e01846df98d478a2a626ec3641524964b38acaac13945c2db198bf9f3df22ee", "impliedFormat": 1 }, { - "version": "678d6d4c43e5728bf66e92fc2269da9fa709cb60510fed988a27161473c3853f", + "version": "32c2ad9494dad5d11b0564a619fee18f388db6c1e9e2cd3c360b3122549691eb", + "signature": "678d6d4c43e5728bf66e92fc2269da9fa709cb60510fed988a27161473c3853f", + "impliedFormat": 1 + }, + { + "version": "6c301d40aec56a74ec7bd7324e31a728dadf9bfba3e96def02938d3d973534ec", + "signature": "ffa495b17a5ef1d0399586b590bd281056cee6ce3583e34f39926f8dcc6ecdb5", "impliedFormat": 1 }, { @@ -4570,11 +6278,13 @@ "impliedFormat": 1 }, { - "version": "f9358de24a0b2592b856b7497181294314885a54b5339ac1878937311e320597", + "version": "493c700ac3bd317177b2eb913805c87fe60d4e8af4fb39c41f04ba81fae7e170", + "signature": "f9358de24a0b2592b856b7497181294314885a54b5339ac1878937311e320597", "impliedFormat": 1 }, { "version": "aeb554d876c6b8c818da2e118d8b11e1e559adbe6bf606cc9a611c1b6c09f670", + "signature": false, "impliedFormat": 1 }, { @@ -4594,7 +6304,13 @@ "impliedFormat": 1 }, { - "version": "892258709c8fc69cc1711d3554503f35101381df7e33eec344356bdc443ba07b", + "version": "25a5f6fd3a2243c859eddc99ab5fba11d970af2fe7a5df9c32b7668f76f97b01", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "8d207e1f9d2c30d6f77dfa693f3827c3fbf0d89240297e10bdfe1041d433df68", + "signature": "892258709c8fc69cc1711d3554503f35101381df7e33eec344356bdc443ba07b", "impliedFormat": 1 }, { @@ -4602,163 +6318,11 @@ "impliedFormat": 1 }, { - "version": "3e7efde639c6a6c3edb9847b3f61e308bf7a69685b92f665048c45132f51c218", + "version": "6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff", "impliedFormat": 1 }, { - "version": "df45ca1176e6ac211eae7ddf51336dc075c5314bc5c253651bae639defd5eec5", - "impliedFormat": 1 - }, - { - "version": "106c6025f1d99fd468fd8bf6e5bda724e11e5905a4076c5d29790b6c3745e50c", - "impliedFormat": 1 - }, - { - "version": "ee8df1cb8d0faaca4013a1b442e99130769ce06f438d18d510fed95890067563", - "impliedFormat": 1 - }, - { - "version": "bfb7f8475428637bee12bdd31bd9968c1c8a1cc2c3e426c959e2f3a307f8936f", - "impliedFormat": 1 - }, - { - "version": "6f491d0108927478d3247bbbc489c78c2da7ef552fd5277f1ab6819986fdf0b1", - "impliedFormat": 1 - }, - { - "version": "0d8f2b8781c721170b87a6b662b3cb038fd1a721165ecca390352c818d425872", - "impliedFormat": 1 - }, - { - "version": "15a234e5031b19c48a69ccc1607522d6e4b50f57d308ecb7fe863d44cd9f9eb3", - "impliedFormat": 1 - }, - { - "version": "380647d8f3b7f852cca6d154a376dbf8ac620a2f12b936594504a8a852e71d2f", - "impliedFormat": 1 - }, - { - "version": "148679c6d0f449210a96e7d2e562d589e56fcde87f843a92808b3ff103f1a774", - "impliedFormat": 1 - }, - { - "version": "6459054aabb306821a043e02b89d54da508e3a6966601a41e71c166e4ea1474f", - "impliedFormat": 1 - }, - { - "version": "2f9c89cbb29d362290531b48880a4024f258c6033aaeb7e59fbc62db26819650", - "impliedFormat": 1 - }, - { - "version": "bb37588926aba35c9283fe8d46ebf4e79ffe976343105f5c6d45f282793352b2", - "impliedFormat": 1 - }, - { - "version": "05c97cddbaf99978f83d96de2d8af86aded9332592f08ce4a284d72d0952c391", - "impliedFormat": 1 - }, - { - "version": "72179f9dd22a86deaad4cc3490eb0fe69ee084d503b686985965654013f1391b", - "impliedFormat": 1 - }, - { - "version": "2e6114a7dd6feeef85b2c80120fdbfb59a5529c0dcc5bfa8447b6996c97a69f5", - "impliedFormat": 1 - }, - { - "version": "7b6ff760c8a240b40dab6e4419b989f06a5b782f4710d2967e67c695ef3e93c4", - "impliedFormat": 1 - }, - { - "version": "c8f004e6036aa1c764ad4ec543cf89a5c1893a9535c80ef3f2b653e370de45e6", - "impliedFormat": 1 - }, - { - "version": "dd80b1e600d00f5c6a6ba23f455b84a7db121219e68f89f10552c54ba46e4dc9", - "impliedFormat": 1 - }, - { - "version": "b064c36f35de7387d71c599bfcf28875849a1dbc733e82bd26cae3d1cd060521", - "impliedFormat": 1 - }, - { - "version": "05c7280d72f3ed26f346cbe7cbbbb002fb7f15739197cbbee6ab3fd1a6cb9347", - "impliedFormat": 1 - }, - { - "version": "8de9fe97fa9e00ec00666fa77ab6e91b35d25af8ca75dabcb01e14ad3299b150", - "impliedFormat": 1 - }, - { - "version": "f63ab283a1c8f5c79fabe7ca4ef85f9633339c4f0e822fce6a767f9d59282af2", - "impliedFormat": 1 - }, - { - "version": "dba114fb6a32b355a9cfc26ca2276834d72fe0e94cd2c3494005547025015369", - "impliedFormat": 1 - }, - { - "version": "7ab12b2f1249187223d11a589f5789c75177a0b597b9eb7f8e2e42d045393347", - "impliedFormat": 1 - }, - { - "version": "11c90ce55a33b4b3542d4eddaba4cf5305121ec0e97f9ab900d2c29ee0d1ab19", - "impliedFormat": 1 - }, - { - "version": "3996be00e03a6ad70bf746a62015cd8f530fd9c99166d7551f0b1434f6a5a4bb", - "impliedFormat": 1 - }, - { - "version": "f974e4a06953682a2c15d5bd5114c0284d5abf8bc0fe4da25cb9159427b70072", - "impliedFormat": 1 - }, - { - "version": "50256e9c31318487f3752b7ac12ff365c8949953e04568009c8705db802776fb", - "impliedFormat": 1 - }, - { - "version": "7d73b24e7bf31dfb8a931ca6c4245f6bb0814dfae17e4b60c9e194a631fe5f7b", - "impliedFormat": 1 - }, - { - "version": "d130c5f73768de51402351d5dc7d1b36eaec980ca697846e53156e4ea9911476", - "impliedFormat": 1 - }, - { - "version": "413586add0cfe7369b64979d4ec2ed56c3f771c0667fbde1bf1f10063ede0b08", - "impliedFormat": 1 - }, - { - "version": "06472528e998d152375ad3bd8ebcb69ff4694fd8d2effaf60a9d9f25a37a097a", - "impliedFormat": 1 - }, - { - "version": "50b5bc34ce6b12eccb76214b51aadfa56572aa6cc79c2b9455cdbb3d6c76af1d", - "impliedFormat": 1 - }, - { - "version": "b7e16ef7f646a50991119b205794ebfd3a4d8f8e0f314981ebbe991639023d0e", - "impliedFormat": 1 - }, - { - "version": "42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3", - "impliedFormat": 1 - }, - { - "version": "a401617604fa1f6ce437b81689563dfdc377069e4c58465dbd8d16069aede0a5", - "impliedFormat": 1 - }, - { - "version": "6e9082e91370de5040e415cd9f24e595b490382e8c7402c4e938a8ce4bccc99f", - "impliedFormat": 1 - }, - { - "version": "97307708b8350a98d82c8201f755d8bcb62ef00d7861e5b57ccbd4aa54aedb05", - "impliedFormat": 1 - }, - { - "version": "dd30e671d9d907727dd28fbc06a2811da6e092dba46967b0643eff22ca74b877", + "version": "2652448ac55a2010a1f71dd141f828b682298d39728f9871e1cdf8696ef443fd", "impliedFormat": 1 }, { @@ -4782,35 +6346,20 @@ "impliedFormat": 1 }, { - "version": "b01bd582a6e41457bc56e6f0f9de4cb17f33f5f3843a7cf8210ac9c18472fb0f", + "version": "9c82171d836c47486074e4ca8e059735bf97b205e70b196535b5efd40cbe1bc5", "impliedFormat": 1 }, { - "version": "0a437ae178f999b46b6153d79095b60c42c996bc0458c04955f1c996dc68b971", + "version": "8c70ddc0c22d85e56011d49fddfaae3405eb53d47b59327b9dd589e82df672e7", "impliedFormat": 1 }, { - "version": "74b2a5e5197bd0f2e0077a1ea7c07455bbea67b87b0869d9786d55104006784f", + "version": "2f9c89cbb29d362290531b48880a4024f258c6033aaeb7e59fbc62db26819650", "impliedFormat": 1 }, { - "version": "4a7baeb6325920044f66c0f8e5e6f1f52e06e6d87588d837bdf44feb6f35c664", - "impliedFormat": 1 - }, - { - "version": "12d218a49dbe5655b911e6cc3c13b2c655e4c783471c3b0432137769c79e1b3c", - "impliedFormat": 1 - }, - { - "version": "7274fbffbd7c9589d8d0ffba68157237afd5cecff1e99881ea3399127e60572f", - "impliedFormat": 1 - }, - { - "version": "6b0fc04121360f752d196ba35b6567192f422d04a97b2840d7d85f8b79921c92", - "impliedFormat": 1 - }, - { - "version": "1a82deef4c1d39f6882f28d275cad4c01f907b9b39be9cbc472fcf2cf051e05b", + "version": "a365c4d3bed3be4e4e20793c999c51f5cd7e6792322f14650949d827fbcd170f", + "signature": "380647d8f3b7f852cca6d154a376dbf8ac620a2f12b936594504a8a852e71d2f", "impliedFormat": 1 }, { @@ -4838,7 +6387,8 @@ "impliedFormat": 1 }, { - "version": "42189cd810c0bf1247da0742d5744bb7c1486de6fd62269d5c25833b7ec38732", + "version": "273782b8454e78f6a8b30d2cfbf6860499c930595095fcc1689637115f0eddda", + "signature": "42189cd810c0bf1247da0742d5744bb7c1486de6fd62269d5c25833b7ec38732", "affectsGlobalScope": true, "impliedFormat": 1 }, @@ -4847,6 +6397,10 @@ "affectsGlobalScope": true, "impliedFormat": 1 }, + { + "version": "dba114fb6a32b355a9cfc26ca2276834d72fe0e94cd2c3494005547025015369", + "impliedFormat": 1 + }, { "version": "a8f8e6ab2fa07b45251f403548b78eaf2022f3c2254df3dc186cb2671fe4996d", "affectsGlobalScope": true, @@ -4870,7 +6424,12 @@ "impliedFormat": 1 }, { - "version": "40436e992021afc07b61da5f488e9671729a3c5b5e6665b99b1fb43a39081ee3", + "version": "9f9bb6755a8ce32d656ffa4763a8144aa4f274d6b69b59d7c32811031467216e", + "impliedFormat": 1 + }, + { + "version": "5c32bdfbd2d65e8fffbb9fbda04d7165e9181b08dad61154961852366deb7540", + "signature": "40436e992021afc07b61da5f488e9671729a3c5b5e6665b99b1fb43a39081ee3", "impliedFormat": 1 }, { @@ -4878,7 +6437,67 @@ "impliedFormat": 1 }, { - "version": "3a788c7fb7b1b1153d69a4d1d9e1d0dfbcf1127e703bdb02b6d12698e683d1fb", + "version": "0c05e9842ec4f8b7bfebfd3ca61604bb8c914ba8da9b5337c4f25da427a005f2", + "impliedFormat": 1 + }, + { + "version": "faed7a5153215dbd6ebe76dfdcc0af0cfe760f7362bed43284be544308b114cf", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "7029e566b8df176f703fb59fd437a38670c7a0e02c58b2d66dfb5b2e2b2defdb", + "signature": "808b5d89d2ee266eb5552a053c1dd9633e6fb313f6c24c1788034a755c790552", + "impliedFormat": 1 + }, + { + "version": "7f2aa4d4989a82530aaac3f72b3dceca90e9c25bee0b1a327e8a08a1262435ad", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "d96b39301d0ded3f1a27b47759676a33a02f6f5049bfcbde81e533fd10f50dcb", + "signature": "2821b2fa5851e13a32c60ee34bcc77e9dcc49a1c11e9b90b4bce66e9bc33cd77", + "impliedFormat": 1 + }, + { + "version": "e9f147ecca73d9346a4c073432843c159ccbe50bdcb678a78f6da10eae2cecf4", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "de061f7d72bd65c06fc1419f841dfdcb29a8e22fe6fa527d1e6eb20b897d4de0", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "663beafc2446079574570cba86e9b15f986f908ddb1b01274509970126fee945", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "a3102887d5058bf4cb5b37fa6964c09e9527c42053b3b5c642b89878620748de", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "0aaaa1727edd29673d85c9b26d7ca4d54e5407a48586903c51b48b7f7d196f61", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "d35bca0b261bff02635758c48e8ab99c61c420d0dfabbcf467e847171d876b7d", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "3bc12c40d90c342ff88a3d876996c555ed5cbee5fe8c3308a240b321f401ee46", + "signature": "197efda3bbcdd3f1bc5379cd0534f1ab740f3be957efb17b320da8e7dcb2743b", + "impliedFormat": 1 + }, + { + "version": "ba130768aae855a5477e9e148e5c879548e6e7ccbcc56fd1934c8a18ea5b7569", + "signature": "3a788c7fb7b1b1153d69a4d1d9e1d0dfbcf1127e703bdb02b6d12698e683d1fb", "impliedFormat": 1 }, { @@ -4894,7 +6513,8 @@ "impliedFormat": 1 }, { - "version": "4805f6161c2c8cefb8d3b8bd96a080c0fe8dbc9315f6ad2e53238f9a79e528a6", + "version": "b499af2054a037a162b3b72cd886f48bbf32a3502c865c6e29fac7d2ab3ce0b5", + "signature": "4805f6161c2c8cefb8d3b8bd96a080c0fe8dbc9315f6ad2e53238f9a79e528a6", "impliedFormat": 1 }, { @@ -4902,19 +6522,12 @@ "impliedFormat": 1 }, { - "version": "9c82171d836c47486074e4ca8e059735bf97b205e70b196535b5efd40cbe1bc5", + "version": "d87f90d2df7b638204d81d6c57e1f2a8cc9317c45ca331c691c375649aa9255c", + "signature": "42b81043b00ff27c6bd955aea0f6e741545f2265978bf364b614702b72a027ab", "impliedFormat": 1 }, { - "version": "f374cb24e93e7798c4d9e83ff872fa52d2cdb36306392b840a6ddf46cb925cb6", - "impliedFormat": 1 - }, - { - "version": "42b81043b00ff27c6bd955aea0f6e741545f2265978bf364b614702b72a027ab", - "impliedFormat": 1 - }, - { - "version": "162e071992b34bc36ca257d629547f93cb43728d6fe073ad18a237e4f7c52d7d", + "version": "7274fbffbd7c9589d8d0ffba68157237afd5cecff1e99881ea3399127e60572f", "impliedFormat": 1 }, { @@ -4958,11 +6571,11 @@ "impliedFormat": 1 }, { - "version": "45490817629431853543adcb91c0673c25af52a456479588b6486daba34f68bb", + "version": "802e797bcab5663b2c9f63f51bdf67eff7c41bc64c0fd65e6da3e7941359e2f7", "impliedFormat": 1 }, { - "version": "802e797bcab5663b2c9f63f51bdf67eff7c41bc64c0fd65e6da3e7941359e2f7", + "version": "b01bd582a6e41457bc56e6f0f9de4cb17f33f5f3843a7cf8210ac9c18472fb0f", "impliedFormat": 1 }, { @@ -4970,43 +6583,26 @@ "impliedFormat": 1 }, { - "version": "a85397e1b7fc6ee7ea6fe7e040a94331c961f207687827e33ee0c5591e90874e", + "version": "4cceef18d7f088e797a463e90b7a9dad10c6bc667724b7686e3e740ae00122be", + "signature": false, "impliedFormat": 1 }, { - "version": "4b20fcf10a5413680e39f5666464859fc56b1003e7dfe2405ced82371ebd49b6", + "version": "7ee86fbb3754388e004de0ef9e6505485ddfb3be7640783d6d015711c03d302d", + "signature": false, "impliedFormat": 1 }, { - "version": "c06ef3b2569b1c1ad99fcd7fe5fba8d466e2619da5375dfa940a94e0feea899b", + "version": "cc1954b539604b1e562319119ac7e888172208b32ca873f9a357a92c826bd046", + "signature": "a85397e1b7fc6ee7ea6fe7e040a94331c961f207687827e33ee0c5591e90874e", "impliedFormat": 1 }, { - "version": "f7d628893c9fa52ba3ab01bcb5e79191636c4331ee5667ecc6373cbccff8ae12", + "version": "a67b87d0281c97dfc1197ef28dfe397fc2c865ccd41f7e32b53f647184cc7307", "impliedFormat": 1 }, { - "version": "5b2323ca2d1bd97e1f32f09452908e015b012e0e4f958f649cbe0c8989a3fb4f", - "impliedFormat": 1 - }, - { - "version": "8c50ee1fcb97de2860d9ebd76561614ab6d365ac8390ef4a02bb4e76929705d1", - "impliedFormat": 1 - }, - { - "version": "cff125b5bbb8b819d7835c6b78809416d08da8b00e66611bfe368e0964be7b83", - "impliedFormat": 1 - }, - { - "version": "d663134457d8d669ae0df34eabd57028bddc04fc444c4bc04bc5215afc91e1f4", - "impliedFormat": 1 - }, - { - "version": "985153f0deb9b4391110331a2f0c114019dbea90cba5ca68a4107700796e0d75", - "impliedFormat": 1 - }, - { - "version": "30fe85f1312ab83e45dab3fc3f63b566e0486b64abb6986805a4613560dc7a78", + "version": "771ffb773f1ddd562492a6b9aaca648192ac3f056f0e1d997678ff97dbb6bf9b", "impliedFormat": 1 }, { @@ -5014,67 +6610,54 @@ "impliedFormat": 1 }, { - "version": "58659b06d33fa430bee1105b75cf876c0a35b2567207487c8578aec51ca2d977", + "version": "232f70c0cf2b432f3a6e56a8dc3417103eb162292a9fd376d51a3a9ea5fbbf6f", "impliedFormat": 1 }, { - "version": "d8cdd9477b9c5d1a8fbf2fa58e2eb6723969e7201b3549f998e0d2661dfec9d8", + "version": "bb8f2dbc03533abca2066ce4655c119bff353dd4514375beb93c08590c03e023", + "signature": "8c030e515014c10a2b98f9f48408e3ba18023dfd3f56e3312c6c2f3ae1f55a16", "impliedFormat": 1 }, { - "version": "cfa846a7b7847a1d973605fbb8c91f47f3a0f0643c18ac05c47077ebc72e71c7", + "version": "706dd95827e7ebaabda91d5db2b755233e0952d98570e9c032b0f066a15c1177", + "signature": false, + "affectsGlobalScope": true, "impliedFormat": 1 }, { - "version": "20e1c8beced348a9bf7864dd2b3ca7efa9ea6675dde8ecae6109b1a3f7248cd2", + "version": "0b103e9abfe82d14c0ad06a55d9f91d6747154ef7cacc73cf27ecad2bfb3afcf", + "signature": false, "impliedFormat": 1 }, { - "version": "6c800b281b9e89e69165fd11536195488de3ff53004e55905e6c0059a2d8591e", + "version": "990b8fad2327b77e6920cc792af320e8867e68f02ce849b12c0a6ab9a1aebb09", + "signature": "4162ae9d4c1b8a7ab7f9ef287d98e9000b57062db1eb1ae735c4814845c2cb5d", "impliedFormat": 1 }, { - "version": "7d4254b4c6c67a29d5e7f65e67d72540480ac2cfb041ca484847f5ae70480b62", + "version": "5eb8cd1cb0c9143d74a8190b577c522720878c31aef67d866fcd29973f83e955", + "signature": "02c4fc9e6bb27545fa021f6056e88ff5fdf10d9d9f1467f1d10536c6e749ac50", "impliedFormat": 1 }, { - "version": "19c3d6db2020cee6f9d8d79e13c15e546e05b6db2020a3ee63789ec74a9990b3", + "version": "120599fd965257b1f4d0ff794bc696162832d9d8467224f4665f713a3119078b", "impliedFormat": 1 }, { - "version": "41eeb453ccb75c5b2c3abef97adbbd741bd7e9112a2510e12f03f646dc9ad13d", + "version": "43ba4f2fa8c698f5c304d21a3ef596741e8e85a810b7c1f9b692653791d8d97a", "impliedFormat": 1 }, { - "version": "4c9894b4900bc407719c258656b6c34a7888833f0424403b803023c4ada4763f", + "version": "5433f33b0a20300cca35d2f229a7fc20b0e8477c44be2affeb21cb464af60c76", "impliedFormat": 1 }, { - "version": "301cf1d98bce8b1666184888c7aaacd6c9dfed9185510f4317ed623596e38d2c", + "version": "db036c56f79186da50af66511d37d9fe77fa6793381927292d17f81f787bb195", "impliedFormat": 1 }, { - "version": "6c66d5cf284a56109703f941c92b9a22f2472c14645f80a2dbb8e4ef2128d67c", - "impliedFormat": 1 - }, - { - "version": "a3e7d932dc9c09daa99141a8e4800fc6c58c625af0d4bbb017773dc36da75426", - "impliedFormat": 1 - }, - { - "version": "3c06285ec67f1dd3d6829584b6088204d43830f498671fbe69d099049a9b6f91", - "impliedFormat": 1 - }, - { - "version": "a57b1802794433adec9ff3fed12aa79d671faed86c49b09e02e1ac41b4f1d33a", - "impliedFormat": 1 - }, - { - "version": "ad10d4f0517599cdeca7755b930f148804e3e0e5b5a3847adce0f1f71bbccd74", - "impliedFormat": 1 - }, - { - "version": "1042064ece5bb47d6aba91648fbe0635c17c600ebdf567588b4ca715602f0a9d", + "version": "a6805fcafed712aea7759f8bc731014f9d22738c1d6ef9d43b8091d1d48346d5", + "signature": "bd4131091b773973ca5d2326c60b789ab1f5e02d8843b3587effe6e1ea7c9d86", "impliedFormat": 1 }, { @@ -5094,11 +6677,28 @@ "impliedFormat": 1 }, { - "version": "d3c8b73132efa48e9399d63e8946a57ed4a7176e2f26d2f144bb14c89fcdefc1", + "version": "142617b3cdf902b69c6464c9fbd942b60ab3e733ca18c032b19e0f7e2adbefe8", + "signature": false, "impliedFormat": 1 }, { - "version": "96171c03c2e7f314d66d38acd581f9667439845865b7f85da8df598ff9617476", + "version": "0b603555f1881f87256ffd6344d3e3ed6d466c2e701eabf381f28be8c2125892", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "897e4f7662488e3ecc79e743bdd3b78f13bdb69a97851afa5b440c4211e32ea9", + "signature": "f56bdc6884648806d34bc66d31cdb787c4718d04105ce2cd88535db214631f82", + "impliedFormat": 1 + }, + { + "version": "e2e1c6d3b2d93add5200bd7bc1a8cccb4e446836b2111ece45db8683a2c765de", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "251b03d5cd243854ce870d9a9a39f491faf69898c5d6b5eee28cc7649c57417b", + "signature": "d3c8b73132efa48e9399d63e8946a57ed4a7176e2f26d2f144bb14c89fcdefc1", "impliedFormat": 1 }, { @@ -5106,43 +6706,23 @@ "impliedFormat": 1 }, { - "version": "8c030e515014c10a2b98f9f48408e3ba18023dfd3f56e3312c6c2f3ae1f55a16", + "version": "2c4de79f406d137390608e8c0a44fba2ff8e00bacfcae7c9d1781fef10e9440d", + "signature": "d193c8a86144b3a87b22bc1f5534b9c3e0f5a187873ec337c289a183973a58fe", "impliedFormat": 1 }, { - "version": "d193c8a86144b3a87b22bc1f5534b9c3e0f5a187873ec337c289a183973a58fe", + "version": "07ba23a10465791be5d22deaf5ef7de7658774ddff53721e5ea17fedea1bc721", + "signature": "d2aa1580a899bcec04c29b1c37f2a60f62e2f03acb731534d4e210307c982da8", "impliedFormat": 1 }, { - "version": "d2aa1580a899bcec04c29b1c37f2a60f62e2f03acb731534d4e210307c982da8", + "version": "dca8c645c5afeb03b1ecedbf16323f33e7d0afaa6256c8e047e6e38087a97f53", + "signature": "47bdec88bb6708e8dfde9e97343fd3ea4bc8e5c4674ccdd7b73611caea205bb8", "impliedFormat": 1 }, { - "version": "47bdec88bb6708e8dfde9e97343fd3ea4bc8e5c4674ccdd7b73611caea205bb8", - "impliedFormat": 1 - }, - { - "version": "f56bdc6884648806d34bc66d31cdb787c4718d04105ce2cd88535db214631f82", - "impliedFormat": 1 - }, - { - "version": "68ab1530f0ddf7475425917b0e04068afdc1aee2db033bed9aa9b60a914c512e", - "impliedFormat": 1 - }, - { - "version": "01479d9d5a5dda16d529b91811375187f61a06e74be294a35ecce77e0b9e8d6c", - "impliedFormat": 1 - }, - { - "version": "49f95e989b4632c6c2a578cc0078ee19a5831832d79cc59abecf5160ea71abad", - "impliedFormat": 1 - }, - { - "version": "9666533332f26e8995e4d6fe472bdeec9f15d405693723e6497bf94120c566c8", - "impliedFormat": 1 - }, - { - "version": "ce0df82a9ae6f914ba08409d4d883983cc08e6d59eb2df02d8e4d68309e7848b", + "version": "775f181bd4a533d6f8b5e55ec1d9f1624559720ae8a70e9432258da26b38d27c", + "signature": "c7f6485931085bf010fbaf46880a9b9ec1a285ad9dc8c695a9e936f5a48f34b4", "impliedFormat": 1 }, { @@ -5153,6 +6733,381 @@ "version": "5df15a69187d737d6d8d066e189ae4f97e41f4d53712a46b2710ff9f8563ec9f", "impliedFormat": 1 }, + { + "version": "0659e6650e6c528420733abc2cdc36474ef14cc8d64ef3c6fee794d71c69cc2e", + "signature": "14f6b927888a1112d662877a5966b05ac1bf7ed25d6c84386db4c23c95a5363b", + "impliedFormat": 1 + }, + { + "version": "6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff", + "impliedFormat": 1 + }, + { + "version": "622694a8522b46f6310c2a9b5d2530dde1e2854cb5829354e6d1ff8f371cf469", + "signature": "b5189fd031ef3232ec66817df5a8e7b23b079fdf3cd29a0c100eff1e98b2ce8e", + "impliedFormat": 1 + }, + { + "version": "cd8ce8d68567f62dd580b3c3c37777ac3f5b81944c7417f5ea83030eab533385", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "e374d1eaa05b7dc38580062942ac8351ce79cbe11f6dbce4946a582a5680582d", + "signature": "8d0cbb73a990e0107ac60bccea2b06b1eeaa425350be95f5e318fedba1a19a07", + "impliedFormat": 1 + }, + { + "version": "9e2739b32f741859263fdba0244c194ca8e96da49b430377930b8f721d77c000", + "impliedFormat": 1 + }, + { + "version": "a9e6c0ff3f8186fccd05752cf75fc94e147c02645087ac6de5cc16403323d870", + "signature": "fb1d8e814a3eeb5101ca13515e0548e112bd1ff3fb358ece535b93e94adf5a3a", + "impliedFormat": 1 + }, + { + "version": "49af4b52f0d4d2304c5f2c6fe5fab3e153e0acc38830d0202821b877c097dd02", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "49c346823ba6d4b12278c12c977fb3a31c06b9ca719015978cb145eb86da1c61", + "impliedFormat": 1 + }, + { + "version": "bfac6e50eaa7e73bb66b7e052c38fdc8ccfc8dbde2777648642af33cf349f7f1", + "impliedFormat": 1 + }, + { + "version": "92f7c1a4da7fbfd67a2228d1687d5c2e1faa0ba865a94d3550a3941d7527a45d", + "impliedFormat": 1 + }, + { + "version": "f53b120213a9289d9a26f5af90c4c686dd71d91487a0aa5451a38366c70dc64b", + "impliedFormat": 1 + }, + { + "version": "e68b8e5a1df7c1be2bc105141456ecba70215806e1c28bfbc5c12bfce4be6e68", + "signature": "83fe880c090afe485a5c02262c0b7cdd76a299a50c48d9bde02be8e908fb4ae6", + "impliedFormat": 1 + }, + { + "version": "511c8f02329808d47d00b859c532ae9115590048b17325a946c74dac48428650", + "signature": "946a709579b7868a92a70ad70906444f32803fa6e6ce3739b6594c17691837ce", + "impliedFormat": 1 + }, + { + "version": "57d67b72e06059adc5e9454de26bbfe567d412b962a501d263c75c2db430f40e", + "impliedFormat": 1 + }, + { + "version": "b5f9e66625783eefcbe3d2da074b2e7ba2066d61ce3fc6ef4f22805ad946cab4", + "signature": "6511e4503cf74c469c60aafd6589e4d14d5eb0a25f9bf043dcbecdf65f261972", + "impliedFormat": 1 + }, + { + "version": "e37115962d284b9f7a37c2bdd2add50f88365dde41f5e0ff591ffc48a8ec7575", + "signature": "3174d4a29957cdcff56d28f64edba4678f1b6cc9faf7c1a9c59a88f6746fe91a", + "impliedFormat": 1 + }, + { + "version": "6459054aabb306821a043e02b89d54da508e3a6966601a41e71c166e4ea1474f", + "impliedFormat": 1 + }, + { + "version": "bb37588926aba35c9283fe8d46ebf4e79ffe976343105f5c6d45f282793352b2", + "impliedFormat": 1 + }, + { + "version": "f89488602bec98a142072fae7ea5ba99431a569ff580c64b7be39896474799d8", + "signature": "05c97cddbaf99978f83d96de2d8af86aded9332592f08ce4a284d72d0952c391", + "impliedFormat": 1 + }, + { + "version": "bbbc47961f39a57df103cf4ca3bb8f8732b4b6678a18225a0aa76d59c466956c", + "signature": "72179f9dd22a86deaad4cc3490eb0fe69ee084d503b686985965654013f1391b", + "impliedFormat": 1 + }, + { + "version": "2e6114a7dd6feeef85b2c80120fdbfb59a5529c0dcc5bfa8447b6996c97a69f5", + "impliedFormat": 1 + }, + { + "version": "2ffb043dc5163458e473b7010859f86e01dc4edffcae0a93d885d028b426a546", + "signature": "7b6ff760c8a240b40dab6e4419b989f06a5b782f4710d2967e67c695ef3e93c4", + "impliedFormat": 1 + }, + { + "version": "c8f004e6036aa1c764ad4ec543cf89a5c1893a9535c80ef3f2b653e370de45e6", + "impliedFormat": 1 + }, + { + "version": "dd80b1e600d00f5c6a6ba23f455b84a7db121219e68f89f10552c54ba46e4dc9", + "impliedFormat": 1 + }, + { + "version": "b064c36f35de7387d71c599bfcf28875849a1dbc733e82bd26cae3d1cd060521", + "impliedFormat": 1 + }, + { + "version": "05c7280d72f3ed26f346cbe7cbbbb002fb7f15739197cbbee6ab3fd1a6cb9347", + "impliedFormat": 1 + }, + { + "version": "8de9fe97fa9e00ec00666fa77ab6e91b35d25af8ca75dabcb01e14ad3299b150", + "impliedFormat": 1 + }, + { + "version": "04b7b2e0832dfd3c31e81df3975e8d8fda28e7ff999b0aa2932608a8f6661d5c", + "signature": "f63ab283a1c8f5c79fabe7ca4ef85f9633339c4f0e822fce6a767f9d59282af2", + "impliedFormat": 1 + }, + { + "version": "ca2d34c6ed5cbd3070b8b6f32f42ae54adcc6499c1e4b99f0a5798b3f27cc653", + "signature": "7ab12b2f1249187223d11a589f5789c75177a0b597b9eb7f8e2e42d045393347", + "impliedFormat": 1 + }, + { + "version": "9ec68995e66dd6b9dac834bf5ae85fde802714ea2e82151a5d1d53ef01b463ef", + "signature": "11c90ce55a33b4b3542d4eddaba4cf5305121ec0e97f9ab900d2c29ee0d1ab19", + "impliedFormat": 1 + }, + { + "version": "5c4d626b4902f2ef8a1cc146d761d276cef988016dc674e3b98fbad70e64bc9f", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "fdfaa0aad899524962e2955287b5b991ffe3be50f64e02eb60c933ca44644a94", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "53c972a0f9bc3a4ec70fff7314123ea8cfcf75b3703046f767d2dc1eea87b2fb", + "signature": "3996be00e03a6ad70bf746a62015cd8f530fd9c99166d7551f0b1434f6a5a4bb", + "impliedFormat": 1 + }, + { + "version": "f974e4a06953682a2c15d5bd5114c0284d5abf8bc0fe4da25cb9159427b70072", + "impliedFormat": 1 + }, + { + "version": "50256e9c31318487f3752b7ac12ff365c8949953e04568009c8705db802776fb", + "impliedFormat": 1 + }, + { + "version": "7d73b24e7bf31dfb8a931ca6c4245f6bb0814dfae17e4b60c9e194a631fe5f7b", + "impliedFormat": 1 + }, + { + "version": "d130c5f73768de51402351d5dc7d1b36eaec980ca697846e53156e4ea9911476", + "impliedFormat": 1 + }, + { + "version": "413586add0cfe7369b64979d4ec2ed56c3f771c0667fbde1bf1f10063ede0b08", + "impliedFormat": 1 + }, + { + "version": "06472528e998d152375ad3bd8ebcb69ff4694fd8d2effaf60a9d9f25a37a097a", + "impliedFormat": 1 + }, + { + "version": "7303b45138d2511035056a5901a1490ebdcbf055cbb1276f8629c5121cbe733e", + "signature": "50b5bc34ce6b12eccb76214b51aadfa56572aa6cc79c2b9455cdbb3d6c76af1d", + "impliedFormat": 1 + }, + { + "version": "27f874cd5327507eeff699a74567f60c1215b94509f4308633a7b01922471ed2", + "signature": "b7e16ef7f646a50991119b205794ebfd3a4d8f8e0f314981ebbe991639023d0e", + "impliedFormat": 1 + }, + { + "version": "a401617604fa1f6ce437b81689563dfdc377069e4c58465dbd8d16069aede0a5", + "impliedFormat": 1 + }, + { + "version": "2c6cf04bc525caf6546e859e8ef10bfb9573837ec0bc5ec7b53a7b1b8ca72781", + "signature": "6e9082e91370de5040e415cd9f24e595b490382e8c7402c4e938a8ce4bccc99f", + "impliedFormat": 1 + }, + { + "version": "8695dec09ad439b0ceef3776ea68a232e381135b516878f0901ed2ea114fd0fe", + "signature": "97307708b8350a98d82c8201f755d8bcb62ef00d7861e5b57ccbd4aa54aedb05", + "impliedFormat": 1 + }, + { + "version": "304b44b1e97dd4c94697c3313df89a578dca4930a104454c99863f1784a54357", + "signature": "dd30e671d9d907727dd28fbc06a2811da6e092dba46967b0643eff22ca74b877", + "impliedFormat": 1 + }, + { + "version": "0a437ae178f999b46b6153d79095b60c42c996bc0458c04955f1c996dc68b971", + "impliedFormat": 1 + }, + { + "version": "74b2a5e5197bd0f2e0077a1ea7c07455bbea67b87b0869d9786d55104006784f", + "impliedFormat": 1 + }, + { + "version": "4a7baeb6325920044f66c0f8e5e6f1f52e06e6d87588d837bdf44feb6f35c664", + "impliedFormat": 1 + }, + { + "version": "87cc05fe13108f02e12da7e3efd8e360fef78d96a0c9e11408ea1b1b9fb3e03d", + "signature": "12d218a49dbe5655b911e6cc3c13b2c655e4c783471c3b0432137769c79e1b3c", + "impliedFormat": 1 + }, + { + "version": "1abbf67c218d23c2ce76887caac2df6c7dab3d97ba2b65348432b876f510002a", + "signature": "6b0fc04121360f752d196ba35b6567192f422d04a97b2840d7d85f8b79921c92", + "impliedFormat": 1 + }, + { + "version": "1a82deef4c1d39f6882f28d275cad4c01f907b9b39be9cbc472fcf2cf051e05b", + "impliedFormat": 1 + }, + { + "version": "4b20fcf10a5413680e39f5666464859fc56b1003e7dfe2405ced82371ebd49b6", + "impliedFormat": 1 + }, + { + "version": "c06ef3b2569b1c1ad99fcd7fe5fba8d466e2619da5375dfa940a94e0feea899b", + "impliedFormat": 1 + }, + { + "version": "f7d628893c9fa52ba3ab01bcb5e79191636c4331ee5667ecc6373cbccff8ae12", + "impliedFormat": 1 + }, + { + "version": "1d879125d1ec570bf04bc1f362fdbe0cb538315c7ac4bcfcdf0c1e9670846aa6", + "signature": "5b2323ca2d1bd97e1f32f09452908e015b012e0e4f958f649cbe0c8989a3fb4f", + "impliedFormat": 1 + }, + { + "version": "8bd496cf710d4873d15e4891a5dbf945673e3321ca74cf75187e347fd5ed295e", + "signature": "8c50ee1fcb97de2860d9ebd76561614ab6d365ac8390ef4a02bb4e76929705d1", + "impliedFormat": 1 + }, + { + "version": "a6dba407fc287f1e25454e75028c91bbc00675f2d1c4e8b3edcc36c08611a486", + "signature": "cff125b5bbb8b819d7835c6b78809416d08da8b00e66611bfe368e0964be7b83", + "impliedFormat": 1 + }, + { + "version": "d663134457d8d669ae0df34eabd57028bddc04fc444c4bc04bc5215afc91e1f4", + "impliedFormat": 1 + }, + { + "version": "e91f7b1344577a02f051b9b471f33044fef8334a76dc9e1de003d17595a5219b", + "signature": "985153f0deb9b4391110331a2f0c114019dbea90cba5ca68a4107700796e0d75", + "impliedFormat": 1 + }, + { + "version": "c0723195c85e19656d6b5b9fdb81d3f3403c1ae4679e722c6ea058c516b38d12", + "signature": "30fe85f1312ab83e45dab3fc3f63b566e0486b64abb6986805a4613560dc7a78", + "impliedFormat": 1 + }, + { + "version": "186eea74805194f04e41038fc5eca653788b9dedbab7c2d7d17e10139622dd92", + "signature": "58659b06d33fa430bee1105b75cf876c0a35b2567207487c8578aec51ca2d977", + "impliedFormat": 1 + }, + { + "version": "71d9eb4c4e99456b78ae182fb20a5dfc20eb1667f091dbb9335b3c017dd1c783", + "signature": "d8cdd9477b9c5d1a8fbf2fa58e2eb6723969e7201b3549f998e0d2661dfec9d8", + "impliedFormat": 1 + }, + { + "version": "cfa846a7b7847a1d973605fbb8c91f47f3a0f0643c18ac05c47077ebc72e71c7", + "impliedFormat": 1 + }, + { + "version": "1594da19968752a22b2ac48c2d0e60575700e745c577a8a4a676b841238ad5bb", + "signature": "20e1c8beced348a9bf7864dd2b3ca7efa9ea6675dde8ecae6109b1a3f7248cd2", + "impliedFormat": 1 + }, + { + "version": "e0cee12109e0a10a4c3d6769fcc7644b7c1ea7f52365bea51728f5af29f8a137", + "signature": "6c800b281b9e89e69165fd11536195488de3ff53004e55905e6c0059a2d8591e", + "impliedFormat": 1 + }, + { + "version": "7d4254b4c6c67a29d5e7f65e67d72540480ac2cfb041ca484847f5ae70480b62", + "impliedFormat": 1 + }, + { + "version": "3536968defef8a75514f547ead5e2e9c1e984820290ec9b00c5fdfb6ef786535", + "signature": "19c3d6db2020cee6f9d8d79e13c15e546e05b6db2020a3ee63789ec74a9990b3", + "impliedFormat": 1 + }, + { + "version": "d83773870080c30a230e322ce13a9c6f3398e8dacea4ea8a83e26370f3bac23e", + "signature": "41eeb453ccb75c5b2c3abef97adbbd741bd7e9112a2510e12f03f646dc9ad13d", + "impliedFormat": 1 + }, + { + "version": "dcfeaf98d66314fec29a9076c4290e45d0b196a65827becc19138e9c7b855f37", + "signature": "4c9894b4900bc407719c258656b6c34a7888833f0424403b803023c4ada4763f", + "impliedFormat": 1 + }, + { + "version": "6849fe9210fe4946d5f085bfed36758f33dc6ae15a751338d178dd4daa017c46", + "signature": "301cf1d98bce8b1666184888c7aaacd6c9dfed9185510f4317ed623596e38d2c", + "impliedFormat": 1 + }, + { + "version": "888cda0fa66d7f74e985a3f7b1af1f64b8ff03eb3d5e80d051c3cbdeb7f32ab7", + "signature": "6c66d5cf284a56109703f941c92b9a22f2472c14645f80a2dbb8e4ef2128d67c", + "impliedFormat": 1 + }, + { + "version": "60681e13f3545be5e9477acb752b741eae6eaf4cc01658a25ec05bff8b82a2ef", + "signature": "a3e7d932dc9c09daa99141a8e4800fc6c58c625af0d4bbb017773dc36da75426", + "impliedFormat": 1 + }, + { + "version": "ffae4e1e06aa848a1e4bcef162cd1c48e5909b26223515981310af9c036bdfc7", + "signature": "3c06285ec67f1dd3d6829584b6088204d43830f498671fbe69d099049a9b6f91", + "impliedFormat": 1 + }, + { + "version": "a57b1802794433adec9ff3fed12aa79d671faed86c49b09e02e1ac41b4f1d33a", + "impliedFormat": 1 + }, + { + "version": "34e16eb7c31768a11a08aebcfb3d70d7b8f0b016197e98d8419e566ceae6d6c8", + "signature": "ad10d4f0517599cdeca7755b930f148804e3e0e5b5a3847adce0f1f71bbccd74", + "impliedFormat": 1 + }, + { + "version": "f94ec1f7e4b709d26960306c9082a7a1b728a6e13089346aa48ba57c74cbf47e", + "signature": "1042064ece5bb47d6aba91648fbe0635c17c600ebdf567588b4ca715602f0a9d", + "impliedFormat": 1 + }, + { + "version": "9a11cb4033405e96c247cd5aa29790212aaffdd127869e8a5219103f0b389fd5", + "signature": "68ab1530f0ddf7475425917b0e04068afdc1aee2db033bed9aa9b60a914c512e", + "impliedFormat": 1 + }, + { + "version": "01479d9d5a5dda16d529b91811375187f61a06e74be294a35ecce77e0b9e8d6c", + "impliedFormat": 1 + }, + { + "version": "aff5213585cb72e94054dfe17250ff315f3569b3919d1ef1ad235f37c4ee894e", + "signature": "49f95e989b4632c6c2a578cc0078ee19a5831832d79cc59abecf5160ea71abad", + "impliedFormat": 1 + }, + { + "version": "fb2ea35e1be6388d722d7725e2b49c697d34d9c890c3b96758faaeb86d35cef8", + "signature": "9666533332f26e8995e4d6fe472bdeec9f15d405693723e6497bf94120c566c8", + "impliedFormat": 1 + }, + { + "version": "ce0df82a9ae6f914ba08409d4d883983cc08e6d59eb2df02d8e4d68309e7848b", + "impliedFormat": 1 + }, { "version": "1a4dc28334a926d90ba6a2d811ba0ff6c22775fcc13679521f034c124269fd40", "impliedFormat": 1 @@ -5161,14 +7116,6 @@ "version": "f05315ff85714f0b87cc0b54bcd3dde2716e5a6b99aedcc19cad02bf2403e08c", "impliedFormat": 1 }, - { - "version": "8a8c64dafaba11c806efa56f5c69f611276471bef80a1db1f71316ec4168acef", - "impliedFormat": 1 - }, - { - "version": "43ba4f2fa8c698f5c304d21a3ef596741e8e85a810b7c1f9b692653791d8d97a", - "impliedFormat": 1 - }, { "version": "5fad3b31fc17a5bc58095118a8b160f5260964787c52e7eb51e3d4fcf5d4a6f0", "impliedFormat": 1 @@ -5178,7 +7125,8 @@ "impliedFormat": 1 }, { - "version": "d0a4cac61fa080f2be5ebb68b82726be835689b35994ba0e22e3ed4d2bc45e3b", + "version": "456006a6975b26c0a1785feddae165f6d307e2d601ffde27e21fc4a790e448a4", + "signature": "d0a4cac61fa080f2be5ebb68b82726be835689b35994ba0e22e3ed4d2bc45e3b", "impliedFormat": 1 }, { @@ -5190,15 +7138,18 @@ "impliedFormat": 1 }, { - "version": "2d7db1d73456e8c5075387d4240c29a2a900847f9c1bff106a2e490da8fbd457", + "version": "1fe0d18b111e1145a7e7601855bccd4ca20f24e3b9a5aba6bb1fa9d1a7059170", + "signature": "2d7db1d73456e8c5075387d4240c29a2a900847f9c1bff106a2e490da8fbd457", "impliedFormat": 1 }, { - "version": "2b15c805f48e4e970f8ec0b1915f22d13ca6212375e8987663e2ef5f0205e832", + "version": "5632c3c26d420c063eebe64c45b1248b9492a67bf44f1d0c57e9dc8f6cf449bb", + "signature": "2b15c805f48e4e970f8ec0b1915f22d13ca6212375e8987663e2ef5f0205e832", "impliedFormat": 1 }, { - "version": "205a31b31beb7be73b8df18fcc43109cbc31f398950190a0967afc7a12cb478c", + "version": "0df5aa619ab12993a39ea6dae062ee46eadbb4d738916460e636ada52bced75b", + "signature": "205a31b31beb7be73b8df18fcc43109cbc31f398950190a0967afc7a12cb478c", "impliedFormat": 1 }, { @@ -5210,11 +7161,13 @@ "impliedFormat": 1 }, { - "version": "dba6c7006e14a98ec82999c6f89fbbbfd1c642f41db148535f3b77b8018829b8", + "version": "10ab7be91f87ebe8916b62cf28af2e45b5601fc7b0e311adf838f912c6b31dd8", + "signature": "dba6c7006e14a98ec82999c6f89fbbbfd1c642f41db148535f3b77b8018829b8", "impliedFormat": 1 }, { - "version": "7f897b285f22a57a5c4dc14a27da2747c01084a542b4d90d33897216dceeea2e", + "version": "bc636fbc08e0979ceb7eb0731a33000283d77a33b62e1f71ee65be50394e40ba", + "signature": "7f897b285f22a57a5c4dc14a27da2747c01084a542b4d90d33897216dceeea2e", "impliedFormat": 1 }, { @@ -5234,7 +7187,13 @@ "impliedFormat": 1 }, { - "version": "05c20b01929a2386831b27903b2b1a1c624205b24123bab8ec3931ba00115b34", + "version": "75bbd3be047d539988a0ff0b56384ef7a6a25f3b676ad96bee547d44c31622a7", + "signature": "05c20b01929a2386831b27903b2b1a1c624205b24123bab8ec3931ba00115b34", + "impliedFormat": 1 + }, + { + "version": "42960001a776b089ade681ab5cfddc936e0afb0615133ec1841f3dee89d3e1bf", + "signature": false, "impliedFormat": 1 }, { @@ -5242,12 +7201,19 @@ "impliedFormat": 1 }, { - "version": "ca0f4d9068d652bad47e326cf6ba424ac71ab866e44b24ddb6c2bd82d129586a", + "version": "da47712b394d944328245482603bc6f416d3949b67c9392279caab595076b510", + "signature": "ca0f4d9068d652bad47e326cf6ba424ac71ab866e44b24ddb6c2bd82d129586a", "affectsGlobalScope": true, "impliedFormat": 1 }, { - "version": "04d36005fcbeac741ac50c421181f4e0316d57d148d37cc321a8ea285472462b", + "version": "37d0071d8f0a06dc55c2c5e0ec3391affd4fd107c53410bf358196ec0bf3923f", + "signature": "04d36005fcbeac741ac50c421181f4e0316d57d148d37cc321a8ea285472462b", + "impliedFormat": 1 + }, + { + "version": "b213dad76ca37fd552274c9499056e1c0d9c1bd38a55bb7f68b22ba6b84c3ad7", + "signature": false, "impliedFormat": 1 }, { @@ -5272,123 +7238,43 @@ "impliedFormat": 1 }, { - "version": "1b239954e46191b95913d20771cf4283f63c3ebac79d7e30736a8d40b094fdaf", + "version": "5a49adaef698b7ad7e6127949fa1b0bbd3d46b7cbd11c54e392a4dcdd51f5190", + "signature": "1b239954e46191b95913d20771cf4283f63c3ebac79d7e30736a8d40b094fdaf", "impliedFormat": 1 }, { - "version": "6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff", + "version": "96171c03c2e7f314d66d38acd581f9667439845865b7f85da8df598ff9617476", "impliedFormat": 1 }, { - "version": "2652448ac55a2010a1f71dd141f828b682298d39728f9871e1cdf8696ef443fd", + "version": "27be6622e2922a1b412eb057faa854831b95db9db5035c3f6d4b677b902ab3b7", "impliedFormat": 1 }, { - "version": "02c4fc9e6bb27545fa021f6056e88ff5fdf10d9d9f1467f1d10536c6e749ac50", + "version": "5c634644d45a1b6bc7b05e71e05e52ec04f3d73d9ac85d5927f647a5f965181a", "impliedFormat": 1 }, { - "version": "120599fd965257b1f4d0ff794bc696162832d9d8467224f4665f713a3119078b", + "version": "2489bf04d77dc025ba67f49f1a56eb24b9db477d5ff88123d887e163ed1776aa", + "signature": false, "impliedFormat": 1 }, { - "version": "5433f33b0a20300cca35d2f229a7fc20b0e8477c44be2affeb21cb464af60c76", + "version": "63a7595a5015e65262557f883463f934904959da563b4f788306f699411e9bac", "impliedFormat": 1 }, { - "version": "db036c56f79186da50af66511d37d9fe77fa6793381927292d17f81f787bb195", + "version": "4ba137d6553965703b6b55fd2000b4e07ba365f8caeb0359162ad7247f9707a6", "impliedFormat": 1 }, { - "version": "bd4131091b773973ca5d2326c60b789ab1f5e02d8843b3587effe6e1ea7c9d86", + "version": "0b77b819b5417775fccb20c678293cf614c054a5b1a65421a5b933a9124ba998", + "signature": false, "impliedFormat": 1 }, { - "version": "c7f6485931085bf010fbaf46880a9b9ec1a285ad9dc8c695a9e936f5a48f34b4", - "impliedFormat": 1 - }, - { - "version": "14f6b927888a1112d662877a5966b05ac1bf7ed25d6c84386db4c23c95a5363b", - "impliedFormat": 1 - }, - { - "version": "6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff", - "impliedFormat": 1 - }, - { - "version": "b5189fd031ef3232ec66817df5a8e7b23b079fdf3cd29a0c100eff1e98b2ce8e", - "impliedFormat": 1 - }, - { - "version": "8d0cbb73a990e0107ac60bccea2b06b1eeaa425350be95f5e318fedba1a19a07", - "impliedFormat": 1 - }, - { - "version": "49c346823ba6d4b12278c12c977fb3a31c06b9ca719015978cb145eb86da1c61", - "impliedFormat": 1 - }, - { - "version": "bfac6e50eaa7e73bb66b7e052c38fdc8ccfc8dbde2777648642af33cf349f7f1", - "impliedFormat": 1 - }, - { - "version": "92f7c1a4da7fbfd67a2228d1687d5c2e1faa0ba865a94d3550a3941d7527a45d", - "impliedFormat": 1 - }, - { - "version": "f53b120213a9289d9a26f5af90c4c686dd71d91487a0aa5451a38366c70dc64b", - "impliedFormat": 1 - }, - { - "version": "83fe880c090afe485a5c02262c0b7cdd76a299a50c48d9bde02be8e908fb4ae6", - "impliedFormat": 1 - }, - { - "version": "946a709579b7868a92a70ad70906444f32803fa6e6ce3739b6594c17691837ce", - "impliedFormat": 1 - }, - { - "version": "57d67b72e06059adc5e9454de26bbfe567d412b962a501d263c75c2db430f40e", - "impliedFormat": 1 - }, - { - "version": "6511e4503cf74c469c60aafd6589e4d14d5eb0a25f9bf043dcbecdf65f261972", - "impliedFormat": 1 - }, - { - "version": "3174d4a29957cdcff56d28f64edba4678f1b6cc9faf7c1a9c59a88f6746fe91a", - "impliedFormat": 1 - }, - { - "version": "8c70ddc0c22d85e56011d49fddfaae3405eb53d47b59327b9dd589e82df672e7", - "impliedFormat": 1 - }, - { - "version": "a67b87d0281c97dfc1197ef28dfe397fc2c865ccd41f7e32b53f647184cc7307", - "impliedFormat": 1 - }, - { - "version": "771ffb773f1ddd562492a6b9aaca648192ac3f056f0e1d997678ff97dbb6bf9b", - "impliedFormat": 1 - }, - { - "version": "232f70c0cf2b432f3a6e56a8dc3417103eb162292a9fd376d51a3a9ea5fbbf6f", - "impliedFormat": 1 - }, - { - "version": "4162ae9d4c1b8a7ab7f9ef287d98e9000b57062db1eb1ae735c4814845c2cb5d", - "impliedFormat": 1 - }, - { - "version": "a0ba218ac1baa3da0d5d9c1ec1a7c2f8676c284e6f5b920d6d049b13fa267377", - "impliedFormat": 1 - }, - { - "version": "8a0e762ceb20c7e72504feef83d709468a70af4abccb304f32d6b9bac1129b2c", - "impliedFormat": 1 - }, - { - "version": "e8a68cafbba564f74b7b737b0c831f57c6223f87affc1b71c672b21e24e08329", + "version": "e1f6076688a95bd82deaac740fccbe3cdea0d8a22057cccc9c5bce4398bdd33b", + "signature": "e8a68cafbba564f74b7b737b0c831f57c6223f87affc1b71c672b21e24e08329", "impliedFormat": 1 }, { @@ -5396,7 +7282,13 @@ "impliedFormat": 1 }, { - "version": "9353792eaa8271bc0e6e70e37ce06455c58056f4cf1b868feaed76b17b8449d0", + "version": "b1f1d57fde8247599731b24a733395c880a6561ec0c882efaaf20d7df968c5af", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "c8dadeff90ccc638d88a989c1139fd6a1329a5b39c2a7cbef1811c83ffe40903", + "signature": "9353792eaa8271bc0e6e70e37ce06455c58056f4cf1b868feaed76b17b8449d0", "impliedFormat": 1 }, { @@ -5408,16 +7300,19 @@ "impliedFormat": 1 }, { - "version": "371bf6127c1d427836de95197155132501cb6b69ef8709176ce6e0b85d059264", + "version": "5a3ea721d03a361ccbdd7390ccd75f6e84cbca3a3f01f4b331ecc9af31890c49", + "signature": "371bf6127c1d427836de95197155132501cb6b69ef8709176ce6e0b85d059264", "impliedFormat": 1 }, { - "version": "2bafd700e617d3693d568e972d02b92224b514781f542f70d497a8fdf92d52a2", + "version": "e7dfaee4af38d45b1cab8a1ee0b3bc1f85ddcf64545ed391d675d78ae6526274", + "signature": "2bafd700e617d3693d568e972d02b92224b514781f542f70d497a8fdf92d52a2", "affectsGlobalScope": true, "impliedFormat": 1 }, { - "version": "5542d8a7ea13168cb573be0d1ba0d29460d59430fb12bb7bf4674efd5604e14c", + "version": "98e2b197bf7fe7800f89c87825e2556d66474869845e97ad9c2b36f347c43539", + "signature": "5542d8a7ea13168cb573be0d1ba0d29460d59430fb12bb7bf4674efd5604e14c", "impliedFormat": 1 }, { @@ -5437,7 +7332,8 @@ "impliedFormat": 1 }, { - "version": "22f3e5ec72c82809784e4b9ea68920c5096f71e3cffbbd4a6e2b4bc7db05a49a", + "version": "1de8c302fd35220d8f29dea378a4ae45199dc8ff83ca9923aca1400f2b28848a", + "signature": "22f3e5ec72c82809784e4b9ea68920c5096f71e3cffbbd4a6e2b4bc7db05a49a", "impliedFormat": 1 }, { @@ -5473,7 +7369,18 @@ "impliedFormat": 1 }, { - "version": "a3f41ed1b4f2fc3049394b945a68ae4fdefd49fa1739c32f149d32c0545d67f5", + "version": "07ed3ddab975995eea41b22f3010506fb9f5fb301d04820b07d7a1aee5477d7c", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "969d8b0965849f4bae7cab0ba90bd1e1220e95999c2c6f01117fa7500901c017", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "6ec840ee5e2bc103f557fe38b1d585ee250540468713d7634ee066de372bf332", + "signature": "a3f41ed1b4f2fc3049394b945a68ae4fdefd49fa1739c32f149d32c0545d67f5", "impliedFormat": 1 }, { @@ -5517,23 +7424,21 @@ "impliedFormat": 1 }, { - "version": "b6c1f64158da02580f55e8a2728eda6805f79419aed46a930f43e68ad66a38fc", + "version": "e297c0a524edee7677939122f90027bfbe5f2698939d9a85728e5044b39c7124", + "signature": "b6c1f64158da02580f55e8a2728eda6805f79419aed46a930f43e68ad66a38fc", "impliedFormat": 1 }, { "version": "cdf21eee8007e339b1b9945abf4a7b44930b1d695cc528459e68a3adc39a622e", "impliedFormat": 1 }, - { - "version": "9f9bb6755a8ce32d656ffa4763a8144aa4f274d6b69b59d7c32811031467216e", - "impliedFormat": 1 - }, { "version": "bc9ee0192f056b3d5527bcd78dc3f9e527a9ba2bdc0a2c296fbc9027147df4b2", "impliedFormat": 1 }, { - "version": "330896c1a2b9693edd617be24fbf9e5895d6e18c7955d6c08f028f272b37314d", + "version": "b62381cae176db34f003cc6172ee8f3e0122014889d66391aa73698105cf4934", + "signature": "330896c1a2b9693edd617be24fbf9e5895d6e18c7955d6c08f028f272b37314d", "impliedFormat": 1 }, { @@ -5557,11 +7462,13 @@ "impliedFormat": 1 }, { - "version": "4c0a1233155afb94bd4d7518c75c84f98567cd5f13fc215d258de196cdb40d91", + "version": "41eb514d9ce0a6e87957f08a4b7af70d93f87637f37dee706e2d92a6601c25a9", + "signature": "4c0a1233155afb94bd4d7518c75c84f98567cd5f13fc215d258de196cdb40d91", "impliedFormat": 1 }, { - "version": "f9ceb394e029da0392ebd49564002b01fb4517cef0d14b238f2a8e7362a833e1", + "version": "e7765aa8bcb74a38b3230d212b4547686eb9796621ffb4367a104451c3f9614f", + "signature": "f9ceb394e029da0392ebd49564002b01fb4517cef0d14b238f2a8e7362a833e1", "impliedFormat": 1 }, { @@ -5580,45 +7487,28 @@ "version": "5835a6e0d7cd2738e56b671af0e561e7c1b4fb77751383672f4b009f4e161d70", "impliedFormat": 1 }, - { - "version": "5c634644d45a1b6bc7b05e71e05e52ec04f3d73d9ac85d5927f647a5f965181a", - "impliedFormat": 1 - }, { "version": "4b7f74b772140395e7af67c4841be1ab867c11b3b82a51b1aeb692822b76c872", "impliedFormat": 1 }, { - "version": "27be6622e2922a1b412eb057faa854831b95db9db5035c3f6d4b677b902ab3b7", - "impliedFormat": 1 - }, - { - "version": "a68d4b3182e8d776cdede7ac9630c209a7bfbb59191f99a52479151816ef9f9e", + "version": "7bd01f0f28cd3aeb2046274d85208e245965f6f2948edf4f7b2057bcf9f22ccc", + "signature": "a68d4b3182e8d776cdede7ac9630c209a7bfbb59191f99a52479151816ef9f9e", "impliedFormat": 99 }, { - "version": "39644b343e4e3d748344af8182111e3bbc594930fff0170256567e13bbdbebb0", + "version": "d2f2cf2b8cc92bea913cda4a076e0f790b23a21e84f989d12f0116a7fe3906e0", + "signature": "ed7fd5160b47b0de3b1571c5c5578e8e7e3314e33ae0b8ea85a895774ee64749", "impliedFormat": 99 }, - { - "version": "ed7fd5160b47b0de3b1571c5c5578e8e7e3314e33ae0b8ea85a895774ee64749", - "impliedFormat": 99 - }, - { - "version": "63a7595a5015e65262557f883463f934904959da563b4f788306f699411e9bac", - "impliedFormat": 1 - }, - { - "version": "4ba137d6553965703b6b55fd2000b4e07ba365f8caeb0359162ad7247f9707a6", - "impliedFormat": 1 - }, { "version": "6de125ea94866c736c6d58d68eb15272cf7d1020a5b459fea1c660027eca9a90", "affectsGlobalScope": true, "impliedFormat": 1 }, { - "version": "8fac4a15690b27612d8474fb2fc7cc00388df52d169791b78d1a3645d60b4c8b", + "version": "f5b20bc288ee49989c95b20847fc93b96bf61cc0845598897a6a53a967dd7d07", + "signature": "8fac4a15690b27612d8474fb2fc7cc00388df52d169791b78d1a3645d60b4c8b", "affectsGlobalScope": true, "impliedFormat": 1 }, @@ -5643,6 +7533,26 @@ "affectsGlobalScope": true }, "7ad303e40d4fddf44f156129e397511953a71481c5cfd86b1862649aaaf240cc", + { + "version": "3770072eb0a627c5a07f5f8b631a52d9ee3193ef52049a5d91ceedf474388b76", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c6c2f7ca8e09b0020387e38962dcafba007738506197c0098c58db9f365eeb84", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "86b102e60a4d4c285c07c64769e4aaa93307284cc88917d9424420609f489400", + "signature": "467743fe014ba642d20c5bf9e682284edd096567f62107aa64331f90650cbcec", + "impliedFormat": 1 + }, + { + "version": "26340d098786f276f40e5406480b1787ce58afce404f13b7e0f645cc1113e7b2", + "signature": false, + "impliedFormat": 1 + }, { "version": "e76f888e1511e2b699b9d10bb972a4e34a2ffd5d1fb0f6ec08e2e50804ee2970", "impliedFormat": 1 @@ -5659,16 +7569,13 @@ "version": "c8ec757be6c03d17766ebce65802bd41703c7501f395be6f2d3283442fbe37f3", "impliedFormat": 1 }, - { - "version": "467743fe014ba642d20c5bf9e682284edd096567f62107aa64331f90650cbcec", - "impliedFormat": 1 - }, { "version": "fd6d64a541a847e5ae59f78103cc0e6a856bd86819453c8a47704c5eaf557d04", "impliedFormat": 1 }, { - "version": "84be7d50ab02318f3e458d72a7b6b91296ed0d724892ae6d718df3bacb91d7c6", + "version": "5b1d18741093b1a8de17f6a4fc5bca378957f782d71b6a14b4d8d713718c82cc", + "signature": "84be7d50ab02318f3e458d72a7b6b91296ed0d724892ae6d718df3bacb91d7c6", "impliedFormat": 1 }, { @@ -5700,7 +7607,8 @@ "impliedFormat": 1 }, { - "version": "edd1555324ca186dfa924a41c7121a892854e22cc50269435a81421b76183ac6", + "version": "8109063db4edb419af0fe70241bd2f8b09f0c2e4a2cf9bca0482e3150c8a2c7a", + "signature": "edd1555324ca186dfa924a41c7121a892854e22cc50269435a81421b76183ac6", "impliedFormat": 1 }, { @@ -5708,7 +7616,8 @@ "impliedFormat": 1 }, { - "version": "99ca75ffd830a8b51bea29a7be0927e9b7f998d1b33835b6d5aef8b9621763d0", + "version": "6db826c2ef889c0215fb881f80a42b776b03e61f1e8d19e0397af1cee2aa75c2", + "signature": "99ca75ffd830a8b51bea29a7be0927e9b7f998d1b33835b6d5aef8b9621763d0", "impliedFormat": 1 }, { @@ -5748,11 +7657,13 @@ "impliedFormat": 1 }, { - "version": "ad72b15d9d6413bb7d851d3ad096862dcc20521e2c8260b49fece30acad0e891", + "version": "bc47cdc983e9e53cf6b0a9afc8a7ed5870f305e26a1c8c2cde7b9b5f7e7c17c9", + "signature": "ad72b15d9d6413bb7d851d3ad096862dcc20521e2c8260b49fece30acad0e891", "impliedFormat": 1 }, { - "version": "e56977119e43b2cc059bac9568b6133e61049c6f9222d7db36b03c5aa21f03f5", + "version": "7c26c9292ffe1e6cd500ca7c2a9b05c60cd4f14cc448c9a1dbbce0115aa224cf", + "signature": "e56977119e43b2cc059bac9568b6133e61049c6f9222d7db36b03c5aa21f03f5", "impliedFormat": 1 }, { @@ -5796,7 +7707,8 @@ "impliedFormat": 1 }, { - "version": "c9de0460155763182925f8bae41738dc0e263a70df0c17ea91874bd427dbe6ea", + "version": "5573ca9fa776eff37bfa901e839ddf063ad2e876831a124cd0ff6e2b7b105ade", + "signature": "c9de0460155763182925f8bae41738dc0e263a70df0c17ea91874bd427dbe6ea", "impliedFormat": 1 }, { @@ -5836,11 +7748,13 @@ "impliedFormat": 1 }, { - "version": "744966884196e5bcc2d46ff63bbdd0809e2c18ad95081cd06501d59e428ddabc", + "version": "4aa132e059dacfc51cdc33fa4f807abde80bbd0b1fdcdac488d23305a03ab379", + "signature": "744966884196e5bcc2d46ff63bbdd0809e2c18ad95081cd06501d59e428ddabc", "impliedFormat": 1 }, { - "version": "9fb19a10372c04bb5f9e694544f0a6d0e0373f62a1dcba28a72b1d4aa7ea9005", + "version": "c19f9770b4e1d05c70ff519c80307622c6919ff9250a6beb8549285366fdb553", + "signature": "9fb19a10372c04bb5f9e694544f0a6d0e0373f62a1dcba28a72b1d4aa7ea9005", "impliedFormat": 1 }, { @@ -5852,7 +7766,12 @@ "impliedFormat": 1 }, { - "version": "5991cd90fac6cb67cfaf069248767c212c5e5b82d73a0452d0513dd04c0ec482", + "version": "3ac5d50f1f1c95405eb72a4230b1bc83cc743474a78e336669200479c03b414e", + "impliedFormat": 1 + }, + { + "version": "3da0e146b6d7bbf26ccb2556bd84946d3ccd51aeea0f5d2db7f31ffea41fc9b6", + "signature": "5991cd90fac6cb67cfaf069248767c212c5e5b82d73a0452d0513dd04c0ec482", "impliedFormat": 1 }, { @@ -5888,7 +7807,8 @@ "impliedFormat": 1 }, { - "version": "d48617c56f0232564df9d556a3f416d43d418d03e8998465294c0b63c5927c02", + "version": "f38fb1c0a48829df6832411a4907bbf8dd82ed71390ce4893fdf6f1f0e5dd08a", + "signature": "d48617c56f0232564df9d556a3f416d43d418d03e8998465294c0b63c5927c02", "impliedFormat": 1 }, { @@ -5900,7 +7820,8 @@ "impliedFormat": 1 }, { - "version": "b33ba1f439377dee2342535c4ac55a7189f27b29da86a4b47eed6c1f1f37f9f0", + "version": "d628db9a48397700abeebb7526da22a4a6624745b0dc83be9aba85cbace3180f", + "signature": "b33ba1f439377dee2342535c4ac55a7189f27b29da86a4b47eed6c1f1f37f9f0", "impliedFormat": 1 }, { @@ -5928,7 +7849,8 @@ "impliedFormat": 1 }, { - "version": "c14767dd60d02d8c7d92b2c09721d0cc04daffe1f5ad74bb2a0ed102b2237d84", + "version": "ad73c95ccffc1439d04520958a1f41e3ceab8399424d1311c6d1c8603da4fe55", + "signature": "c14767dd60d02d8c7d92b2c09721d0cc04daffe1f5ad74bb2a0ed102b2237d84", "impliedFormat": 1 }, { @@ -5952,7 +7874,8 @@ "impliedFormat": 1 }, { - "version": "e2578d703fc6f157315109dc0a8d5ba2253cdb358d558c00002a22898aa81e4b", + "version": "f987703c9e27a121cb01ea02a4a8333f84b10ac9d0e506cecaf82676bd8ea719", + "signature": "e2578d703fc6f157315109dc0a8d5ba2253cdb358d558c00002a22898aa81e4b", "impliedFormat": 1 }, { @@ -5964,7 +7887,8 @@ "impliedFormat": 1 }, { - "version": "63797cde2043f6d8d0dd426819ef25da796561a12c7fe0fcb6bcc97742bb7716", + "version": "354b770772cb211687d6dc95a11020f8fffae477ace16c236ce63b714d27719c", + "signature": "63797cde2043f6d8d0dd426819ef25da796561a12c7fe0fcb6bcc97742bb7716", "impliedFormat": 1 }, { @@ -5995,20 +7919,28 @@ "version": "fb888c5a5956550e39e7bcaaf1fe5aad043593df897f00f37cdba580393003f7", "impliedFormat": 1 }, - { - "version": "3ac5d50f1f1c95405eb72a4230b1bc83cc743474a78e336669200479c03b414e", - "impliedFormat": 1 - }, { "version": "174834865f27ee63be116cf7252c67b42f1144343efccf96ddc38b3254ffdd60", "impliedFormat": 1 }, { - "version": "b29bdf363cb3c7457d5d3f7fe8158a84016a63f7dc7c54893799843d869ae808", + "version": "57fa785e9330221c0cc17ea880842469cac556df892b88bde5b84210427275ca", + "signature": "b29bdf363cb3c7457d5d3f7fe8158a84016a63f7dc7c54893799843d869ae808", "impliedFormat": 1 }, { - "version": "b6c86566dc5985bfc85e7c9d2186e95e557f04fcbfdaa4305b1a5b05d52a63af", + "version": "654d87dabe3bde9a6dc185b0e592728dfd5dcb250c09390e05dea27bc0cf6e05", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "bf8d985fc022d631ca8e07c313aa8257aab72843600965edf8b71bbaf790816e", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "22632341762a793e74d850c68e363cb44a49190514eb8a602dec805f0022de11", + "signature": false, "impliedFormat": 1 }, { @@ -6031,6 +7963,11 @@ "version": "06c9ff76d57f08ee25dcb3d17da952c32645de6578753b1eadf7bcf38c865482", "impliedFormat": 1 }, + { + "version": "ace0b3104b38c72d3b419ef63e9cf2cc67c6e8d74c4c2c0766805b0304f90493", + "signature": false, + "impliedFormat": 1 + }, { "version": "dfbbd2888718ed9322cb11ffa93dfa112ae04b9049e7a88ea90bb191eceaedc6", "impliedFormat": 1 @@ -6047,6 +7984,15 @@ "version": "88536d645d9532b2def693ae1d73507d99bcca5d474df07351ae0ad3805e40dc", "impliedFormat": 1 }, + { + "version": "b22ce67d8165eb963e4562d04e8f2d2b14eeb2a1149d39147a3be9f8ef083ac3", + "impliedFormat": 1 + }, + { + "version": "18662f19cd845e75735447045b2239c481a184cf1053f95803cf2b7386dabf46", + "signature": false, + "impliedFormat": 1 + }, { "version": "b3e0e511a59924e0d89df3d6b36c8faf157ddfc5aacc2a1b28cd6b6259b2f505", "impliedFormat": 1 @@ -6056,11 +8002,13 @@ "impliedFormat": 1 }, { - "version": "8ead91946edf502d55fd5f1584c15386a70e5241d3fb4a800baa1f43cf51bfc2", + "version": "b802f1d72349bd6ba037341a710a09add8679b859ea08ae14aa9e21d4972e2cd", + "signature": "8ead91946edf502d55fd5f1584c15386a70e5241d3fb4a800baa1f43cf51bfc2", "impliedFormat": 1 }, { - "version": "0e61ab0c786c3e3825af3c359208f682aab24f72294497d92afea0bd6652ac35", + "version": "f822c6938a5610cf468f265fbde1d47f7128dffb9996bdb181dde826c7e5af15", + "signature": "0e61ab0c786c3e3825af3c359208f682aab24f72294497d92afea0bd6652ac35", "impliedFormat": 1 }, { @@ -6107,12 +8055,18 @@ "version": "cbf296365f5dda152e06d25d3a1a602ca6dfb88985b539e5b7c22582af21f080", "impliedFormat": 1 }, + { + "version": "5082bf4dc0bdd52c9986f74b60bcd7175d7ae725c47e52bbcdd9052b6d0bcc89", + "signature": false, + "impliedFormat": 1 + }, { "version": "cc842002527d85469442ac0bb86ca87f8b06638c3dd302113f0dd1e2246d85ff", "impliedFormat": 1 }, { - "version": "adccb317950f68bce5a862a570ea00c754f65b806e9908cd7ac79aafc8a7bff8", + "version": "6db13dcb7310850962f428a68909212d10168a9f69b2126c05468c4cc3bd6678", + "signature": "adccb317950f68bce5a862a570ea00c754f65b806e9908cd7ac79aafc8a7bff8", "impliedFormat": 1 }, { @@ -6136,7 +8090,13 @@ "impliedFormat": 1 }, { - "version": "22133c0cfa2e5f9001b9b46ae4e98aa48adaa7e298bd5f1a3757d27c8ebe0a7f", + "version": "d69da5ed404cad095d48aa5b3bf0108424c998680f1d37fbc59e9bff745b30c6", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "260c761225625eba7408a265f77b1e199e9beae4725c722bf0f2952c2ef68081", + "signature": "22133c0cfa2e5f9001b9b46ae4e98aa48adaa7e298bd5f1a3757d27c8ebe0a7f", "impliedFormat": 1 }, { @@ -6148,7 +8108,13 @@ "impliedFormat": 1 }, { - "version": "3cf52ea2d2f71287918b36daccc13f8bb3255f6de0a92980e3028a15bae83443", + "version": "15c897dd57fb04b36874c52eaa0be98045ddb5c94d752f1a2390af1eb69d5ba4", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "d9d617d0fe71ce20bc73ce139aba0973581729f8965a335538ffe70eaa8ec091", + "signature": "3cf52ea2d2f71287918b36daccc13f8bb3255f6de0a92980e3028a15bae83443", "impliedFormat": 1 }, { @@ -6156,7 +8122,8 @@ "impliedFormat": 1 }, { - "version": "5941d9fa8c42318679bb5dcf7d4304acde6cf96c6947bc045f424eb1b190d6e8", + "version": "eab8a32518514b5898c3219e1ecf132b6492d8214ab3f895b0112ea15266eb62", + "signature": "5941d9fa8c42318679bb5dcf7d4304acde6cf96c6947bc045f424eb1b190d6e8", "impliedFormat": 1 }, { @@ -6168,75 +8135,113 @@ "impliedFormat": 1 }, { - "version": "81c396584c226e26bb9233346c41bf324c0a580d9600a219445588d2ce47d242", + "version": "f74b2243dab7450133a50670682ffc90ab67059ee7ce31dbed7834519af1459f", + "signature": "81c396584c226e26bb9233346c41bf324c0a580d9600a219445588d2ce47d242", "impliedFormat": 1 }, { - "version": "26580d84e069bc7e09ff8191a2e23ace3c62acc04d41cbc15a1435921af3617d", + "version": "5e05c2323e1a66d6e4e160749e5b41ff5816c3c042098f42a502bbca254ba2b9", + "signature": "26580d84e069bc7e09ff8191a2e23ace3c62acc04d41cbc15a1435921af3617d", "impliedFormat": 1 }, { - "version": "e5dacae40e8df290a74adb0468b4df1e5424646ede269afcc86cbff819598744", + "version": "d3d08060421f4c5c6ee366aae6de7ffe373188b61048a741e15d84c85f526e8d", + "signature": "e5dacae40e8df290a74adb0468b4df1e5424646ede269afcc86cbff819598744", "impliedFormat": 1 }, { "version": "fdc7c80234f3514e6684ba92d76eb8a3f7f421d7afed8c8c5a4e38ac5c09dece", + "signature": false, "impliedFormat": 1 }, { - "version": "ba99a89f5645bf0dd9017734d3522dde3604d3d616ab92f13c429bee6047885a", + "version": "80257cd2ece1777d51e36c904699c4cfc7ed056b6a762e486ba8bc411a8da37d", + "signature": false, "impliedFormat": 1 }, { - "version": "981a45764f10658057ce2e063f323db3abafe64ea9ab3b6da4d6db3d5be2ab30", + "version": "9655c91910ec260a52fee8610afedba17e6625748c26a8a232e5388b77c8987c", + "signature": false, "impliedFormat": 1 }, { - "version": "42cc526e9e8ed1a036d270823d647084597a53fa131ae6cad4553e89252739cd", + "version": "1a71a1dcf26e837062ed2a2df7fab181bb533059256769c009c21d6650c569b4", + "signature": false, "impliedFormat": 1 }, { - "version": "fcb479b75cc2633ead6bc979dece4e0e9a31c9070352a0645671fd65762ad8d1", + "version": "fbbd919af21d33ad0cfad0ed21455bed47dce7f2a58402dfa4e8276c45a2afda", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "e025b2d167fd6852a49f674b08f3590186b29ad1606030417bca9fb893710927", + "signature": false, "impliedFormat": 1 }, { "version": "6ba01c5f3fbefad3c5fc491091f5be9efdb24b40e520f71571e027f404620f99", + "signature": false, "impliedFormat": 1 }, { "version": "88287b61d5b7b1196d92e47c3748d094ab50a37ace67207f9a4cde73ed33d713", + "signature": false, "impliedFormat": 1 }, { "version": "1455d4cc7e25a7a9abb85df11fa9545b64da27647f0b5d615816895b58d08ba8", + "signature": false, "impliedFormat": 1 }, { "version": "fec0e7056aea3e3ceed3f02ac0591d5c45589e19ebd517b9a1cf342678be5721", + "signature": false, "impliedFormat": 1 }, { "version": "7394d433c1f3307951f6e0a247fc645ef3760d9cec4a38a9fab68765dde74796", + "signature": false, "impliedFormat": 1 }, { "version": "d6c7209dff6b430c2f8730281dcf06b1a738f60d9b9968fdefa282ace986da92", + "signature": false, "impliedFormat": 1 }, { "version": "5dcf68b529709161444768647090f94d19dd50310cd937f3732865d83164dc2f", + "signature": false, "impliedFormat": 1 }, { - "version": "6d3f190b87149ee8867343b2277810e682f53c4544bf263813973623962f3a6a", + "version": "18396073ffbf1a38413587d6c962f5acdf9a6cfb671daae7703ead038cd84426", + "signature": false, "impliedFormat": 1 }, { "version": "edab1807a237e21867a9ee7a64308fd6d37f75fabb228805873ecd7a39d3b2a1", + "signature": false, "impliedFormat": 1 }, { "version": "d2f25b7bf88a2031886183815236d9d05a5b2d32d5cc74636090445c7f6e9626", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "39d261215d131f301eeeb0ed9c97e959dc0fa9b6be37691b2ab20714c1f505f6", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "e04315c35ea65210b1e680548210358f11ce3eea601b2cd449ceef8d36f9243e", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "c9b781a244b97e7031245fe35be8fca013ea16098b7a554634f4d12a85d33b35", + "signature": false, "impliedFormat": 1 }, { @@ -6280,11 +8285,18 @@ "impliedFormat": 1 }, { - "version": "5fc26d080486b85ef079179870b541136e212412dd432f0dd1a752c5f2eeb109", + "version": "2877ff863af41e84f20c108409c6c69b06a61bad3e07a6ac2279455282db866b", + "signature": "5fc26d080486b85ef079179870b541136e212412dd432f0dd1a752c5f2eeb109", "impliedFormat": 1 }, { - "version": "e7f734a2094ecfbc3f9c40c4567239f42e2180d7c1d0274a8c373093a5b267c1", + "version": "21dc554aaf7291955838936f07a8d78dbfe08585d63ff707f66b4e03aabcd4fb", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "0e8341398f41f27df2cf714c4306706d2d50f30ce8961f351d99b4b124d9a65b", + "signature": "e7f734a2094ecfbc3f9c40c4567239f42e2180d7c1d0274a8c373093a5b267c1", "impliedFormat": 1 }, { @@ -6296,7 +8308,8 @@ "impliedFormat": 1 }, { - "version": "dac560a21f43a47a4d5d09a3b534be9a6ed8dcc8b0fb56cbcbd6f6ed163e0638", + "version": "3b268a41864c0ad19b51a7400ab96e4635bb97ee087431ec50c095e3cdd55254", + "signature": "dac560a21f43a47a4d5d09a3b534be9a6ed8dcc8b0fb56cbcbd6f6ed163e0638", "impliedFormat": 1 }, { @@ -6312,7 +8325,8 @@ "impliedFormat": 1 }, { - "version": "ae013d9668e5b179ae6d18c2fdc1d979d36048e1e14a301344ff1fba04c5b56c", + "version": "cd48b06477e85c7542dcfe483b40f25bc92d4eb35fbb18d8669d647d354f9dca", + "signature": "ae013d9668e5b179ae6d18c2fdc1d979d36048e1e14a301344ff1fba04c5b56c", "impliedFormat": 1 }, { @@ -6328,7 +8342,8 @@ "impliedFormat": 1 }, { - "version": "270aac161eda482cf3d0a324d0e56719a0ee898d110e3afd0418d989fb025c41", + "version": "1929f416abeeb29d80dc448d6d3c145125b023c1d988b30eea1df6fa5c9df8a2", + "signature": "270aac161eda482cf3d0a324d0e56719a0ee898d110e3afd0418d989fb025c41", "impliedFormat": 1 }, { @@ -6372,21 +8387,19 @@ "impliedFormat": 1 }, { - "version": "76eb4512fc61c43a5be09f3451b5499601f9323e53af82d3ede0072ed8664b1f", + "version": "94044fa21380382135c76eb7de8dc50348f37b2ae87d97b9bd726adfead28c66", + "signature": "76eb4512fc61c43a5be09f3451b5499601f9323e53af82d3ede0072ed8664b1f", "impliedFormat": 1 }, { - "version": "60b51f9e2afff9b795704412503e85143631a7e2a5077fe4a36edf67f742348a", + "version": "7cf8b7e877a162bbde841e7aa46d2e8ea477cef7b51fd3c575646bdcd52040ad", + "signature": "60b51f9e2afff9b795704412503e85143631a7e2a5077fe4a36edf67f742348a", "impliedFormat": 1 }, { "version": "04c1f616c16ab14f485f00b8a9061edb49a7cb48d3dfdf24a9c257ae25df2023", "impliedFormat": 1 }, - { - "version": "b22ce67d8165eb963e4562d04e8f2d2b14eeb2a1149d39147a3be9f8ef083ac3", - "impliedFormat": 1 - }, { "version": "791e53f4962819a309432e2f1a863e68d9de8193567371495c573b121d69b315", "impliedFormat": 1 @@ -6404,7 +8417,13 @@ "impliedFormat": 1 }, { - "version": "1c1318673407a1820e91992fbd8712639db55085753a517e915987083b8dec8e", + "version": "1a416fa77716007ce5f2388e651974032ce6dd16f542942847ea899c24d9a84f", + "signature": "1c1318673407a1820e91992fbd8712639db55085753a517e915987083b8dec8e", + "impliedFormat": 1 + }, + { + "version": "63c9d377adf66f0eac304ba29b7e8bb5ccab3b523ec1912bf41bbf12cad46b06", + "signature": false, "impliedFormat": 1 }, { @@ -6416,7 +8435,8 @@ "impliedFormat": 1 }, { - "version": "f8f2c5fb7c00b1f8c1e4ce73b1c709038b5a636cc1f932b60f274232fde84bc7", + "version": "098eef14e558f01293630398a08a566e832c8e8d6b749c135ff193f35df6c66b", + "signature": "f8f2c5fb7c00b1f8c1e4ce73b1c709038b5a636cc1f932b60f274232fde84bc7", "impliedFormat": 1 }, { @@ -6424,27 +8444,38 @@ "impliedFormat": 1 }, { - "version": "777c10dd534ae2067ed951fb7d24ae652ef8126c032a3d22b28d8affa326e3e5", + "version": "bd350e8341e83735bb5095e40f32b8da0ca87f238823b0f24a6b692fb2c0c44e", + "signature": "777c10dd534ae2067ed951fb7d24ae652ef8126c032a3d22b28d8affa326e3e5", "impliedFormat": 1 }, { - "version": "b4c7e187c949e6101a96d5b70652f46ab80856cf8f11998bfe514a7ff4a292ab", + "version": "ae396ddebb22bbeeff4fc82310c6d2d03533e863062133fea2a53b536978d679", + "signature": false, "impliedFormat": 1 }, { - "version": "7b99d4d763e67c2d7531ed96af118585485248ff36597a798c15390aee871ec6", + "version": "3875f9986470e60b87dcf03d4891d6590193dbd11063228bc8ce1629692af82d", + "signature": "b4c7e187c949e6101a96d5b70652f46ab80856cf8f11998bfe514a7ff4a292ab", "impliedFormat": 1 }, { - "version": "ea5770e68e95a8cdccbadf99544cb2f34ba7d33d7a86cc31665e5b7d14c512bd", + "version": "e0b648fa6bdfa8e24ee2e77d1a544d50f39539d339e05285d4641618cc85162e", + "signature": "7b99d4d763e67c2d7531ed96af118585485248ff36597a798c15390aee871ec6", "impliedFormat": 1 }, { - "version": "6f397c4b1de48c392f96b321e28121e58b1bd06e42b8802c1a1bacb8b11ad29a", + "version": "84e3c6e1cbe8fcb78e6d9cc4fdc5c53cf9717120cf5825c004b6cbb2b3522b55", + "signature": "ea5770e68e95a8cdccbadf99544cb2f34ba7d33d7a86cc31665e5b7d14c512bd", "impliedFormat": 1 }, { - "version": "a7e8cfa2dd7ff1cf9e4764a85d7f3d842331ac8a1fb232f5027e947395885e44", + "version": "095af94d1b06f8c7099240174c5221128e7b4e89be1e82966bfd288dac95f7f6", + "signature": "6f397c4b1de48c392f96b321e28121e58b1bd06e42b8802c1a1bacb8b11ad29a", + "impliedFormat": 1 + }, + { + "version": "e0c650c644fa032243b09c0c419111757dbe65a2410c57cf5166fcfe8ec9a306", + "signature": "a7e8cfa2dd7ff1cf9e4764a85d7f3d842331ac8a1fb232f5027e947395885e44", "impliedFormat": 1 }, { @@ -6455,6 +8486,11 @@ "version": "6a50e3d12e9ca5aef267205c603ef4dde26423b37949f01e2e9500392fe6ae05", "impliedFormat": 1 }, + { + "version": "72101dd1dc549e97baaa3160d929d367705179a8df778a6901271a6904f35c43", + "signature": false, + "impliedFormat": 1 + }, { "version": "0ddab6fa84c76be6c82c49495d00b628610fbb3f99b8f944402e6fe477d00fea", "impliedFormat": 1 @@ -6480,7 +8516,8 @@ "impliedFormat": 1 }, { - "version": "a2197c2f1ba8d3c1105edfd72afc2dc43b88687563249ee67a9aff54106c0b0a", + "version": "c0f23f635c51467286dce569148edac352722f8dcee352aaa82d439173ff5057", + "signature": "a2197c2f1ba8d3c1105edfd72afc2dc43b88687563249ee67a9aff54106c0b0a", "impliedFormat": 1 }, { @@ -6496,11 +8533,18 @@ "impliedFormat": 1 }, { - "version": "d35c0e5ea3b7fd0494e5c1d1212f2821dcd3696405b378f27f05683852178c25", + "version": "b49d558ac56d28e458a34f2b3c3d4e56ac91db0850589ced007ac6bfcfcf8710", + "signature": "a22824d1fc0d5f0abd98cf68d41c7000dcd3e5c0bef066e957ac936eb2f465c1", "impliedFormat": 1 }, { - "version": "3ef328b8499e90524770780d04e6ad75e057de89e6fb9fcb7f744f7f9ce1d13a", + "version": "fd9a664a1fe1ae10aff56e7706931b2ac9104e71881cee7df344ddb7c6328a60", + "signature": "d35c0e5ea3b7fd0494e5c1d1212f2821dcd3696405b378f27f05683852178c25", + "impliedFormat": 1 + }, + { + "version": "64867671065ec6dcc7b79a1a389108b5acec4757b118c9d06449cd1482b53969", + "signature": "3ef328b8499e90524770780d04e6ad75e057de89e6fb9fcb7f744f7f9ce1d13a", "impliedFormat": 1 }, { @@ -6520,7 +8564,8 @@ "impliedFormat": 1 }, { - "version": "b4c7e187c949e6101a96d5b70652f46ab80856cf8f11998bfe514a7ff4a292ab", + "version": "3875f9986470e60b87dcf03d4891d6590193dbd11063228bc8ce1629692af82d", + "signature": "b4c7e187c949e6101a96d5b70652f46ab80856cf8f11998bfe514a7ff4a292ab", "impliedFormat": 1 }, { @@ -6560,7 +8605,8 @@ "impliedFormat": 1 }, { - "version": "0fa2a30e41879ca34f97defa98fd30cd972ddc5ac94e8e71d2e2ee272c517422", + "version": "c36036b85f3c2addf406b3ff0c064e97b3f37eceafd3c39c68aa2a406b71b9c0", + "signature": "0fa2a30e41879ca34f97defa98fd30cd972ddc5ac94e8e71d2e2ee272c517422", "impliedFormat": 1 }, { @@ -6572,7 +8618,8 @@ "impliedFormat": 1 }, { - "version": "1b0a5088e0f5fcd993c0af245338d5011a867460d04d6dcc9995acc414abccf7", + "version": "07ce493ec6947a668e1759beacb3bae93a969c599890f8b2dbacef7c4c42a7b5", + "signature": "1b0a5088e0f5fcd993c0af245338d5011a867460d04d6dcc9995acc414abccf7", "impliedFormat": 1 }, { @@ -6596,7 +8643,8 @@ "impliedFormat": 1 }, { - "version": "890fb061fb26b94be4423d4d0a919728c6256b877234ad29dbde5f5f88204abf", + "version": "5dfcedc428d68e115c5ad7a03e86def522d2f878accd4d4782a9a9c1158de0d8", + "signature": "890fb061fb26b94be4423d4d0a919728c6256b877234ad29dbde5f5f88204abf", "impliedFormat": 1 }, { @@ -6604,7 +8652,8 @@ "impliedFormat": 1 }, { - "version": "af197df17f7d70c110f97ae9f72ab9d718e09f67a247be59b39632477e8e31a5", + "version": "8426ee0766091376cf487d0365429d31cd737885e93007c4a93e2e7cc6790944", + "signature": "af197df17f7d70c110f97ae9f72ab9d718e09f67a247be59b39632477e8e31a5", "impliedFormat": 1 }, { @@ -6636,7 +8685,8 @@ "impliedFormat": 1 }, { - "version": "97d6eaf5912f9ba3b410cd72b363c9bcffc8fe45793304cf2e99d7767a519be1", + "version": "fff5b5e7ca461b67b296c20c538752054eb08db3249bab80d1e260d22f6e2b8b", + "signature": "97d6eaf5912f9ba3b410cd72b363c9bcffc8fe45793304cf2e99d7767a519be1", "impliedFormat": 1 }, { @@ -6660,7 +8710,8 @@ "impliedFormat": 1 }, { - "version": "b47d5a837d8f2cbecab67c2510470aa4701cefa94bfd351fc190bb007ad28048", + "version": "12cb10a3c721e920afa28d045844ae42ef8c8b2ec5033669c40186aa6ba5addc", + "signature": "b47d5a837d8f2cbecab67c2510470aa4701cefa94bfd351fc190bb007ad28048", "impliedFormat": 1 }, { @@ -6684,7 +8735,8 @@ "impliedFormat": 1 }, { - "version": "a22824d1fc0d5f0abd98cf68d41c7000dcd3e5c0bef066e957ac936eb2f465c1", + "version": "fba44e215687bab53ebc3f5f06d86abafbcad900c2f30c4aa7b757a1e2c83eee", + "signature": false, "impliedFormat": 1 }, { @@ -6752,11 +8804,13 @@ "impliedFormat": 1 }, { - "version": "136712891ebbef8a8bd99953ab5d69bf7179c0bf281092ffa8973e2ec056eb70", + "version": "daf84df325239641e025bd0c22e990927d34f257678f29025815f41daea2fcfc", + "signature": "136712891ebbef8a8bd99953ab5d69bf7179c0bf281092ffa8973e2ec056eb70", "impliedFormat": 1 }, { - "version": "932dce0d63b679a45bea86c40233dc339c8b34fce153dcdb6d9e1e06d1477214", + "version": "a8fc80002fb13049fa71f7cf40fe7de037b8fe0318fc554c56d2757ce37b173e", + "signature": "932dce0d63b679a45bea86c40233dc339c8b34fce153dcdb6d9e1e06d1477214", "impliedFormat": 1 }, { @@ -6796,19 +8850,23 @@ "impliedFormat": 1 }, { - "version": "6f0e6394269a9c667aa38f0566d1e84d7876223c0c89d23a7d6b23289071b469", + "version": "6d29d5b80d237cb622cf45ab8ff6b6876b61a4797455c72c56d4dd5df5c12960", + "signature": "6f0e6394269a9c667aa38f0566d1e84d7876223c0c89d23a7d6b23289071b469", "impliedFormat": 1 }, { - "version": "35a13aeda169f9ab2e5832187d5ad6985f8ce7908184e179fa103348ff3228e1", + "version": "110c30dea76a18ea1c8d1f980601db2b3300571ad00ec025b26858f7b45ebee7", + "signature": "35a13aeda169f9ab2e5832187d5ad6985f8ce7908184e179fa103348ff3228e1", "impliedFormat": 1 }, { - "version": "f1449818e856b6bcac733990f82243f13a13913678bad072f6c8d1a3bb59b55b", + "version": "769b47b13af06bdc5ac041b559690da8223a519d42508944b4c98eb6cc0ec934", + "signature": "f1449818e856b6bcac733990f82243f13a13913678bad072f6c8d1a3bb59b55b", "impliedFormat": 1 }, { - "version": "ba12b182f28d1eadc90e414b9ce07f04a3f589b77edb15d00ab885dcedd2c1ba", + "version": "bf2319665c8c69517cf89377765d2d3af231cf559cf1080aa37ff15015e9a4eb", + "signature": "ba12b182f28d1eadc90e414b9ce07f04a3f589b77edb15d00ab885dcedd2c1ba", "impliedFormat": 1 }, { @@ -6880,7 +8938,8 @@ "impliedFormat": 1 }, { - "version": "0586a1d7af54269b57f44247fba037195f337f4a0aeb8c653fcb383f53ee73d6", + "version": "39248e5c8d993cf56705b739f649c97afcadee7ffdb4cd658ddf8809887751f8", + "signature": "0586a1d7af54269b57f44247fba037195f337f4a0aeb8c653fcb383f53ee73d6", "impliedFormat": 1 }, { @@ -6896,7 +8955,13 @@ "impliedFormat": 1 }, { - "version": "689272d7b9ad108cbb4d7c8b3662194f81916a7b467dec2aea4eb306a45511a1", + "version": "e9f662d3776b1c5b725747596bf4df2b9319131044927e73ab77a6ff44f091bb", + "signature": "689272d7b9ad108cbb4d7c8b3662194f81916a7b467dec2aea4eb306a45511a1", + "impliedFormat": 1 + }, + { + "version": "d0f5db2bc91d8f845db76baff5fa6f62292ecbfc167b78ec5ff75da5bfd5ba3e", + "signature": false, "impliedFormat": 1 }, { @@ -6908,11 +8973,13 @@ "impliedFormat": 1 }, { - "version": "5b2eaca1f709f45124a2d17beef80f17981c60b70bb0fe4929f6715e41e05c29", + "version": "ab9fddfef297dbf96d74b5295f9c83da745054404f1f82f872b5d18f7405ecec", + "signature": "5b2eaca1f709f45124a2d17beef80f17981c60b70bb0fe4929f6715e41e05c29", "impliedFormat": 1 }, { - "version": "b4c7e187c949e6101a96d5b70652f46ab80856cf8f11998bfe514a7ff4a292ab", + "version": "3875f9986470e60b87dcf03d4891d6590193dbd11063228bc8ce1629692af82d", + "signature": "b4c7e187c949e6101a96d5b70652f46ab80856cf8f11998bfe514a7ff4a292ab", "impliedFormat": 1 }, { @@ -7124,7 +9191,8 @@ "impliedFormat": 1 }, { - "version": "c882fe350b62808c18174c1a5daa9594cde916c284065b36e884fcee0f954a7c", + "version": "2da6a88db7c63476444b4f86836a181afc665a27a76216e2573228e31945aa20", + "signature": "c882fe350b62808c18174c1a5daa9594cde916c284065b36e884fcee0f954a7c", "impliedFormat": 1 }, { @@ -7164,19 +9232,13 @@ "impliedFormat": 1 }, { - "version": "df9e6f89f923a5e8acf9ce879ec70b4b2d8d744c3fb8a54993396b19660ac42a", + "version": "901716549627e07fb0e37968cfba8bab25df470d409376e19ea69ef06409dd3e", + "signature": false, "impliedFormat": 1 }, { - "version": "175628176d1c2430092d82b06895e072176d92d6627b661c8ea85bee65232f6e", - "impliedFormat": 1 - }, - { - "version": "21625e9b1e7687f847a48347d9b77ce02b9631e8f14990cffb7689236e95f2bb", - "impliedFormat": 1 - }, - { - "version": "5120ff160d697869468634966d8f295b3ed9cce5b618cc0d8bce68435600f563", + "version": "a1e8ec7e9901514002cebcf3b0eba3c9e5b6a043d4507d3c0e0f11917d570d95", + "signature": "5120ff160d697869468634966d8f295b3ed9cce5b618cc0d8bce68435600f563", "impliedFormat": 1 }, { @@ -7200,7 +9262,8 @@ "impliedFormat": 1 }, { - "version": "e602eb4d18c44caea171a13d20f676f3efe2a91560e4c3800bcb1793a4acff80", + "version": "15c662fe6ce3e8d1bf0d44191296e37420e0823a81958f2c79618890282c0a59", + "signature": "e602eb4d18c44caea171a13d20f676f3efe2a91560e4c3800bcb1793a4acff80", "impliedFormat": 1 }, { @@ -7212,7 +9275,8 @@ "impliedFormat": 1 }, { - "version": "d5689cb5d542c8e901195d8df6c2011a516d5f14c6a2283ffdaae381f5c38c01", + "version": "f521ab6dd9c7d1bffed41fc69f1c7f763743ed4bbc07a4ccae664e65c84711ee", + "signature": "d5689cb5d542c8e901195d8df6c2011a516d5f14c6a2283ffdaae381f5c38c01", "impliedFormat": 1 }, { @@ -7232,11 +9296,8 @@ "impliedFormat": 1 }, { - "version": "e4b31fc1a59b688d30ff95f5a511bfb05e340097981e0de3e03419cbefe36c0e", - "impliedFormat": 1 - }, - { - "version": "ec54b18c784137267a7e166d6619e5c00f75ec32250f85e7f95782748d607fcd", + "version": "d6025465105bae03153679b3241805998316f492a6a449f14cd8b92489c2a6a9", + "signature": false, "impliedFormat": 1 }, { @@ -7244,7 +9305,8 @@ "impliedFormat": 1 }, { - "version": "66279c958dd956b0c3b3e8f966d9a066ae0ee0ea3c50499e9e89c7460accd09d", + "version": "27b33e3a7a19563752b13d0973039240b549ede107009dc02866e12c5dd2273e", + "signature": "66279c958dd956b0c3b3e8f966d9a066ae0ee0ea3c50499e9e89c7460accd09d", "impliedFormat": 1 }, { @@ -7284,7 +9346,8 @@ "impliedFormat": 1 }, { - "version": "124b96661046ec3f63b7590dc13579d4f69df5bb42fa6d3e257c437835a68b4d", + "version": "d2c19aa3fe2b5fab220c5f1e911ac5a936ad771a9c5cd3d00d1e868112ab97ad", + "signature": "124b96661046ec3f63b7590dc13579d4f69df5bb42fa6d3e257c437835a68b4d", "impliedFormat": 1 }, { @@ -7308,15 +9371,18 @@ "impliedFormat": 1 }, { - "version": "889f32b2c39967bfdea316bcb0c3392a62172ca60acfe5955fc644cd6c09bf98", + "version": "ed6d3024f7812bf10119bfb0e14ae6ed13b4080caa08a6f8704ff1c3fe78f919", + "signature": "889f32b2c39967bfdea316bcb0c3392a62172ca60acfe5955fc644cd6c09bf98", "impliedFormat": 1 }, { - "version": "1553d16fb752521327f101465a3844fe73684503fdd10bed79bd886c6d72a1bc", + "version": "cc0e834c8cb2733d07941d61b178ff4600bb98f3a85082a5e2f20728f1029a96", + "signature": "1553d16fb752521327f101465a3844fe73684503fdd10bed79bd886c6d72a1bc", "impliedFormat": 1 }, { - "version": "d51166c5b2c3f8b3837f31b557975c381b405c5ae26afc449c89878e54a6bf73", + "version": "bcd3257c5486e9c4572ede5089524f899824dd86fd910f5b826d6838019b745e", + "signature": "d51166c5b2c3f8b3837f31b557975c381b405c5ae26afc449c89878e54a6bf73", "impliedFormat": 1 }, { @@ -7328,7 +9394,8 @@ "impliedFormat": 1 }, { - "version": "5a51eff6f27604597e929b13ee67a39267df8f44bbd6a634417ed561a2fa05d6", + "version": "39aa4e7fb238e24c127b6b641dd7f20eb0dd99a0a1d994d6ff1d82a6ac251db2", + "signature": "5a51eff6f27604597e929b13ee67a39267df8f44bbd6a634417ed561a2fa05d6", "impliedFormat": 1 }, { @@ -7356,7 +9423,8 @@ "impliedFormat": 1 }, { - "version": "6660f762a2de778a19e3150a6867e978e2a299daa19311664737decaa2ff0c92", + "version": "48a2488687e14191e50930fbd59058638af6c35c7432ce99d87b575e566816cc", + "signature": "6660f762a2de778a19e3150a6867e978e2a299daa19311664737decaa2ff0c92", "impliedFormat": 1 }, { @@ -7376,7 +9444,8 @@ "impliedFormat": 1 }, { - "version": "6066b918eb4475bfcce362999f7199ce5df84cea78bd55ed338da57c73043d45", + "version": "717242c9a1be7039ea5872293a9acadcab0e578221f9523d1534267fec31d60d", + "signature": "6066b918eb4475bfcce362999f7199ce5df84cea78bd55ed338da57c73043d45", "impliedFormat": 1 }, { @@ -7388,11 +9457,13 @@ "impliedFormat": 1 }, { - "version": "adc6fec48279a9686ac1642fa7a3ddf8ea5f45a74601b01f1daff77b70f67386", + "version": "85af5f2145b5f284dc938f239b201e8f2939b741d91540b0a9f6f143440adf42", + "signature": "adc6fec48279a9686ac1642fa7a3ddf8ea5f45a74601b01f1daff77b70f67386", "impliedFormat": 1 }, { - "version": "96795b5b66036a6ee7a16b1ff671d5c133485f9493fe233ab50ac03435a15536", + "version": "f1b346754b2ea845146fe89ccafc326de1bc87092565fa7b67164456d86dc623", + "signature": "96795b5b66036a6ee7a16b1ff671d5c133485f9493fe233ab50ac03435a15536", "impliedFormat": 1 }, { @@ -7408,7 +9479,8 @@ "impliedFormat": 1 }, { - "version": "f150b8b4007b903021aba83b9f2b13437bb9309f63d160fc5100c27151e077c7", + "version": "c1399f9d32aa36f0b2dabe1f494a6061ca85e2e5e2a67070a9c5c36d2a83a3fb", + "signature": "f150b8b4007b903021aba83b9f2b13437bb9309f63d160fc5100c27151e077c7", "impliedFormat": 1 }, { @@ -7416,7 +9488,8 @@ "impliedFormat": 1 }, { - "version": "415e1b97789456e46b282f2f6fa700c8bba549e7cf3a7cb7da71862dc6998dda", + "version": "cc2418937183b4354a3bf621a5d9a8e11a490fbceee71f46515058f039c7746e", + "signature": "415e1b97789456e46b282f2f6fa700c8bba549e7cf3a7cb7da71862dc6998dda", "impliedFormat": 1 }, { @@ -7424,7 +9497,8 @@ "impliedFormat": 1 }, { - "version": "9a6c138e2cab1b066e726e50227a1d9fa02be68f28402b59b9a7ef5a3a5544b4", + "version": "cd34fe236632c8c8cebdaa374d5b6ca4edfdfef0bc29d365f6613498970b4a44", + "signature": "9a6c138e2cab1b066e726e50227a1d9fa02be68f28402b59b9a7ef5a3a5544b4", "impliedFormat": 1 }, { @@ -7432,7 +9506,8 @@ "impliedFormat": 1 }, { - "version": "caa48f3b98f9737d51fabce5ce2d126de47d8f9dffeb7ad17cd500f7fd5112e0", + "version": "a82f1cae07471a353623bedad67e7fb26eb626d7791142cfe6037cd9c4e7bde3", + "signature": "caa48f3b98f9737d51fabce5ce2d126de47d8f9dffeb7ad17cd500f7fd5112e0", "impliedFormat": 1 }, { @@ -7443,24 +9518,13 @@ "version": "2900496cc3034767cd31dd8e628e046bc3e1e5f199afe7323ece090e8872cfa7", "impliedFormat": 1 }, - { - "version": "ba74ef369486b613146fa4a3bccb959f3e64cdc6a43f05cc7010338ba0eab9f7", - "impliedFormat": 1 - }, - { - "version": "dd8e7bc9fe83f86f16e960b3ae0e43dcc6f92e8e657c70c8b49de45f735827d4", - "impliedFormat": 1 - }, - { - "version": "6ecab81e94fd8d2b6e8b7ab7fb887e2f116a6935e2a0828069d6b0b7c92aec17", - "impliedFormat": 1 - }, { "version": "6d2089f3928a72795c3648b3a296047cb566cd2dae161db50434faf12e0b2843", "impliedFormat": 1 }, { - "version": "06767240be8807db054b6f050785761090321698540f30d125919fe47b2f6265", + "version": "97e8c3a9ffa71c62eb745f3eeb41d493e42127baca20b7cd03e4a53702e99254", + "signature": "06767240be8807db054b6f050785761090321698540f30d125919fe47b2f6265", "impliedFormat": 1 }, { @@ -7480,7 +9544,8 @@ "impliedFormat": 1 }, { - "version": "ede1c79a89f65cc927cef2fe6f2ed052a78d12096edc0ecac9b92ca53cc3d8b6", + "version": "800336060bed9892ffe5b618002e55a6341589d49f33f0b4f0aeffd950e90180", + "signature": "ede1c79a89f65cc927cef2fe6f2ed052a78d12096edc0ecac9b92ca53cc3d8b6", "impliedFormat": 1 }, { @@ -7500,15 +9565,18 @@ "impliedFormat": 1 }, { - "version": "fec98193e9fe88584a25a46c5ccbf965c70921aa97c0becba84b4875b22452d0", + "version": "a4fafc9e188dbcd3f030170698b98d0610290b923baa6dbc5ef73652fa73239e", + "signature": "fec98193e9fe88584a25a46c5ccbf965c70921aa97c0becba84b4875b22452d0", "impliedFormat": 1 }, { - "version": "188857be1eebad5f4021f5f771f248cf04495e27ad467aa1cf9624e35346e647", + "version": "ceea84e44e119a15325c107bb6a9da6f567fc0dfe0c7c0f0e14e01a6c414965a", + "signature": "188857be1eebad5f4021f5f771f248cf04495e27ad467aa1cf9624e35346e647", "impliedFormat": 1 }, { - "version": "d0a20f432f1f10dc5dbb04ae3bee7253f5c7cee5865a262f9aac007b84902276", + "version": "bfc0481f643bb66acbe6ff99773257c7d7b46b3a675faa4facc7bf50a8ba2208", + "signature": "d0a20f432f1f10dc5dbb04ae3bee7253f5c7cee5865a262f9aac007b84902276", "impliedFormat": 1 }, { @@ -7524,7 +9592,8 @@ "impliedFormat": 1 }, { - "version": "815e80d24cb5f324074d7c36af945481adc518e4c93b4d10ca7f2eb57683fdb2", + "version": "1ba3a5fb02029c4bb2e542ca700e3308c972a7b34b153b344b078e45ea0db005", + "signature": "815e80d24cb5f324074d7c36af945481adc518e4c93b4d10ca7f2eb57683fdb2", "impliedFormat": 1 }, { @@ -7532,211 +9601,23 @@ "impliedFormat": 1 }, { - "version": "b4c7e187c949e6101a96d5b70652f46ab80856cf8f11998bfe514a7ff4a292ab", + "version": "3875f9986470e60b87dcf03d4891d6590193dbd11063228bc8ce1629692af82d", + "signature": "b4c7e187c949e6101a96d5b70652f46ab80856cf8f11998bfe514a7ff4a292ab", "impliedFormat": 1 }, { - "version": "b4c7e187c949e6101a96d5b70652f46ab80856cf8f11998bfe514a7ff4a292ab", + "version": "3875f9986470e60b87dcf03d4891d6590193dbd11063228bc8ce1629692af82d", + "signature": "b4c7e187c949e6101a96d5b70652f46ab80856cf8f11998bfe514a7ff4a292ab", "impliedFormat": 1 }, { - "version": "8b268efb0c49011ef2a4450fd0b537f79fe44d78e0b40a5d1ede3de4eec2846e", + "version": "c310cdd8f5c5f7195436a6a94800126c046aeeeb3aeb447f76165a682798857f", + "signature": "9e7c72296a3c24abd4de140d1b6edee9500b1cb1adb96f90979014a0979cffc2", "impliedFormat": 1 }, { - "version": "ebc64809ce8cdfaff8617d53b98743ffca60c465b39f21bd88c320cffb6ac525", - "impliedFormat": 1 - }, - { - "version": "9e7c72296a3c24abd4de140d1b6edee9500b1cb1adb96f90979014a0979cffc2", - "impliedFormat": 1 - }, - { - "version": "8d5d37cf6d4ba15ceb07854c2b94fdba0b845cd74a4117a47fcdf764a9bde1ef", - "impliedFormat": 1 - }, - { - "version": "a901268ccef541a32ee9bbb5e894215c3abdd399c88330d4ba02dda52b565da1", - "impliedFormat": 1 - }, - { - "version": "2f22d882ee58be775380e4dda709bdebeb5880669b92f22bf47e1d9afc919539", - "impliedFormat": 1 - }, - { - "version": "e96dc917d49c213d8ddb9eb28e5c9d1dbde2555ce565fbbb7556051deb4287c8", - "impliedFormat": 1 - }, - { - "version": "3f0decd3da915e9df6477244791707808d2e2cb0453e982eac7f5aabb928ff60", - "impliedFormat": 1 - }, - { - "version": "f28350436fed262e3147e564a1dec0af16b402a49a8a01a4b9af93d385ac75e3", - "impliedFormat": 1 - }, - { - "version": "488512750e3332ebc673ba30368af2a48ff735b61d70e5f4c56885bc81502510", - "impliedFormat": 1 - }, - { - "version": "bc921a0906835c13ac4ccb2d9c980db6305325caf3e3f71fe688e43d49e9327e", - "impliedFormat": 1 - }, - { - "version": "69291503956638bd5e45fcd5dea887ff368d455d03f114deb8b5d89831444b90", - "impliedFormat": 1 - }, - { - "version": "0580ab5d386155708c8da8401973cba5931c601b674d51d7d29de07e95e12100", - "impliedFormat": 1 - }, - { - "version": "0206d6a896c3e0ea6493e37c336a5208fe175dbdb36a561ef707fd5936a00fc8", - "impliedFormat": 1 - }, - { - "version": "0539e7dcef1edc97d9380b6049d5a4ef8ef8c8133a5602febd970c06413a30e3", - "impliedFormat": 1 - }, - { - "version": "a48dc1395a20d86235e113c3b9441441133f987ef0f15fb5064567948cf0ab16", - "impliedFormat": 1 - }, - { - "version": "a50bb1e0b8e55f5bd4e314a265f864c898fbdf8e8f834da298d6d6d9be3ca825", - "impliedFormat": 1 - }, - { - "version": "9e24aba05882bc5f2dea831035dc78c1ac66cc42bd2235f2da6aaf65bac007ce", - "impliedFormat": 1 - }, - { - "version": "698a3416ce487bd0791358d7df5f996e9bf14dfa00e0181f8198ca984c39526a", - "impliedFormat": 1 - }, - { - "version": "107d632cd956af70ba6cef4171bb72b75e8d3ededc30f591e7b8d97678feadc6", - "impliedFormat": 1 - }, - { - "version": "9751eb2b973ef42d6a82ca267d7d69a8f5cf32e9367200ec98a8b30eec517c52", - "impliedFormat": 1 - }, - { - "version": "cbb8809fe16cfb990d51b0b4a674e3b1beafaf3a3d69a2e6926506b5acfd30fe", - "impliedFormat": 1 - }, - { - "version": "ce4a8e66384d464ec0469dafb0925e3ff8bd6af437c84777846e133488c4cb3b", - "impliedFormat": 1 - }, - { - "version": "c872b7329674ad2210c9d3b2522d5d4cadf5cffd2c5ca62ef1a18ec1f2e1b30e", - "impliedFormat": 1 - }, - { - "version": "4aa262ee533377af3943db1effd9666795d1fb9901d8581d39c1b6a0a84d9722", - "impliedFormat": 1 - }, - { - "version": "68dd7017b5d004f4d41972eee623eeaff0b66d506abb8bfafdc04dbc5ef99e18", - "impliedFormat": 1 - }, - { - "version": "0abf8f5eff9a5fd84334db349115d04a089a5f9691e4ed67627048751ec544bb", - "impliedFormat": 1 - }, - { - "version": "f9d6586afc335a86d826509948d820369f837d8ea06fe5be065be02dbb3fd00c", - "impliedFormat": 1 - }, - { - "version": "914250c3281db40c68c1f2b5ec3d9e50207ae4f7fcc45692ed8377a71ddbae64", - "impliedFormat": 1 - }, - { - "version": "f1b960f33f68bcb6685806b9471dc415676108541ca0db3c0c6cae512bed87dc", - "impliedFormat": 1 - }, - { - "version": "6a7572e29ba3dbec7a066a82fa0f7b57268295a8120467ba81ce3165e0e63aa1", - "impliedFormat": 1 - }, - { - "version": "bb270c56ac9efa4ba708bcb51dded63a0f3dc64b5153c348dd125ee23bbd42ab", - "impliedFormat": 1 - }, - { - "version": "4b9fcf61d3788633f9c441180233aa55a35b80a8793e7266e451726bc1f068a3", - "impliedFormat": 1 - }, - { - "version": "ab90eee34f8b89770059c0563ba52911a5710c57fecbdd69d3b8cb2408034a87", - "impliedFormat": 1 - }, - { - "version": "4b7ee2be595a4604d0d93f24b451e8b726e99db002fe395957f7d7169bf80f38", - "impliedFormat": 1 - }, - { - "version": "bc253412815953c66797b6c25bf50f2824fa89e7da4637f02e02542c536d44e3", - "impliedFormat": 1 - }, - { - "version": "81fc85f262ea5b2d1a25fe90d483f8d0d5a420de5aa1dcb8cbafac714a61e89a", - "impliedFormat": 1 - }, - { - "version": "3c7f18662fe8009316c923d17d1369b8f8b4b394e1915de670d4b8a2b2d609f5", - "impliedFormat": 1 - }, - { - "version": "839f4844367b8df7fde41f8e5f7e786dd403605bf3902852bb00ff326663efa4", - "impliedFormat": 1 - }, - { - "version": "bb1339969f4096c8d1885583d8769e0fc5674798c48f8fdc7f9c04c0f2914197", - "impliedFormat": 1 - }, - { - "version": "3dcd8780801a3a6bc1eb2b8ba231a0769a184860205192e75ba0dcf6c50aede2", - "impliedFormat": 1 - }, - { - "version": "f4a3ba0235c069c9da36ffab0194553167ccddbedcfd1b8322f7d05d8a58683e", - "impliedFormat": 1 - }, - { - "version": "6bd4dddedecf608a398948b7ccdd577709d2ef1e38b1b54cdefac21ecd5d8b0b", - "impliedFormat": 1 - }, - { - "version": "7de72abaf1da882a87fbb801e0f197320ddbef2d25478ed62b00793c2698285a", - "impliedFormat": 1 - }, - { - "version": "bf8d985fc022d631ca8e07c313aa8257aab72843600965edf8b71bbaf790816e", - "impliedFormat": 1 - }, - { - "version": "6850c096e0a3af591106b5af9370c11849480bd9f128ff83677aaf7db6102f7b", - "impliedFormat": 1 - }, - { - "version": "df79d82763a923177cdb4c385579767633309c5aafd75581a5bbfe3ab1bb0d37", - "impliedFormat": 1 - }, - { - "version": "dba820bb54ea381546394733fd626e4f201e25c7120dc015a40456255fe92b16", - "impliedFormat": 1 - }, - { - "version": "c766a45991ba8bf02bda29ed6e97f29f735b180d66a9ac8ddc6a96a6df41284a", - "impliedFormat": 1 - }, - { - "version": "5b979bb871cef894b2e0565e1d142b139a9e2e05cd7563444d2f8257066c45d3", + "version": "429ac276218b289820898ae3b2057ee418c6d30c968d1fa17851b2063122899b", + "signature": "8d5d37cf6d4ba15ceb07854c2b94fdba0b845cd74a4117a47fcdf764a9bde1ef", "impliedFormat": 1 }, { @@ -7744,7 +9625,8 @@ "impliedFormat": 1 }, { - "version": "b4c7e187c949e6101a96d5b70652f46ab80856cf8f11998bfe514a7ff4a292ab", + "version": "3875f9986470e60b87dcf03d4891d6590193dbd11063228bc8ce1629692af82d", + "signature": "b4c7e187c949e6101a96d5b70652f46ab80856cf8f11998bfe514a7ff4a292ab", "impliedFormat": 1 }, { @@ -7784,7 +9666,8 @@ "impliedFormat": 1 }, { - "version": "8e8644d6346026572bfa7e368708735dbac98f7d507dd331152289b8abfcfc4e", + "version": "23b69abd7830907e3cb24e8a8f7071328dd2915cb44a729171e69a6fa48626ef", + "signature": "8e8644d6346026572bfa7e368708735dbac98f7d507dd331152289b8abfcfc4e", "impliedFormat": 1 }, { @@ -7800,11 +9683,13 @@ "impliedFormat": 1 }, { - "version": "6b94d3bd31b2b4d4b172372cff76872537da0d6c05a0ef1041f3c8b2e66d0875", + "version": "025323d353041634f51777be926c79dc47366c4867886485b3971d5718046e0b", + "signature": "6b94d3bd31b2b4d4b172372cff76872537da0d6c05a0ef1041f3c8b2e66d0875", "impliedFormat": 1 }, { - "version": "374a327e54a8602aca84b017976f31881529717bb0d27b457eaefdee4f4a0e5e", + "version": "15daaffa8710627bdbc8acb01d2dca6d3008599f732e2ebddca1cb0e81301d6a", + "signature": "374a327e54a8602aca84b017976f31881529717bb0d27b457eaefdee4f4a0e5e", "impliedFormat": 1 }, { @@ -7820,23 +9705,239 @@ "impliedFormat": 1 }, { - "version": "4656833be17b4043972ded7562907014e32e15ef7ce99198079af9d3bc0aa21b", + "version": "7d6962e3173e2d678390c064af25d4300f6ba0a44330064734d76b95851fe32f", + "signature": "4656833be17b4043972ded7562907014e32e15ef7ce99198079af9d3bc0aa21b", "impliedFormat": 1 }, { - "version": "f283b7510fa9c59f16f1d88f4900a06524fe57710b3ebf0524584c7e5f47d969", + "version": "a901268ccef541a32ee9bbb5e894215c3abdd399c88330d4ba02dda52b565da1", "impliedFormat": 1 }, { - "version": "451624dbab1a9573f86ae45a90147336305b45878b4c809ad7a92be6ba7c85b8", + "version": "d97f61aa454c09026d827c6eb0167ac5c5db661e214d8a50e87abddfeac8d822", + "signature": "2f22d882ee58be775380e4dda709bdebeb5880669b92f22bf47e1d9afc919539", "impliedFormat": 1 }, { - "version": "1da3662dbb0455c46489f078125a8888543eba081cb8b8342dd50d6c064b1426", + "version": "e96dc917d49c213d8ddb9eb28e5c9d1dbde2555ce565fbbb7556051deb4287c8", "impliedFormat": 1 }, { - "version": "d9fcf1bf89b7cea1aad70069043b491a33f46851f552089f4fa53560438ca748", + "version": "4910d65c8c49642e68d09ddb016488b22db9e130356c40fdea250bc7611d4340", + "signature": "3f0decd3da915e9df6477244791707808d2e2cb0453e982eac7f5aabb928ff60", + "impliedFormat": 1 + }, + { + "version": "5610f32d4a772d2ec704d19a6e488f92f1448543295b3ee61dcf74e9fa46faf3", + "signature": "f28350436fed262e3147e564a1dec0af16b402a49a8a01a4b9af93d385ac75e3", + "impliedFormat": 1 + }, + { + "version": "488512750e3332ebc673ba30368af2a48ff735b61d70e5f4c56885bc81502510", + "impliedFormat": 1 + }, + { + "version": "e70042f617e0e0afecc02961eebff126a21d891ca0a48243c736385cac078681", + "signature": "bc921a0906835c13ac4ccb2d9c980db6305325caf3e3f71fe688e43d49e9327e", + "impliedFormat": 1 + }, + { + "version": "d0cc19ab8c73d8ae77ea36af6d2cd9c3ba676f4b2515ce31627eff39bfb98caa", + "signature": "69291503956638bd5e45fcd5dea887ff368d455d03f114deb8b5d89831444b90", + "impliedFormat": 1 + }, + { + "version": "3f2542f11fff5c15b8304bc11440bc109a63700dd7c25f56ad843e519bc19a64", + "signature": "0580ab5d386155708c8da8401973cba5931c601b674d51d7d29de07e95e12100", + "impliedFormat": 1 + }, + { + "version": "f9d6586afc335a86d826509948d820369f837d8ea06fe5be065be02dbb3fd00c", + "impliedFormat": 1 + }, + { + "version": "6b7b8218850f21248a311812c4d6c196ffc293e0e41c71eacceafdfa6c74eaf0", + "signature": "914250c3281db40c68c1f2b5ec3d9e50207ae4f7fcc45692ed8377a71ddbae64", + "impliedFormat": 1 + }, + { + "version": "f1b960f33f68bcb6685806b9471dc415676108541ca0db3c0c6cae512bed87dc", + "impliedFormat": 1 + }, + { + "version": "6a7572e29ba3dbec7a066a82fa0f7b57268295a8120467ba81ce3165e0e63aa1", + "impliedFormat": 1 + }, + { + "version": "9144e1dc296c867f4d99baabe57e470c07f3552b5c3f05822058cc4d73033012", + "signature": "bb270c56ac9efa4ba708bcb51dded63a0f3dc64b5153c348dd125ee23bbd42ab", + "impliedFormat": 1 + }, + { + "version": "4b9fcf61d3788633f9c441180233aa55a35b80a8793e7266e451726bc1f068a3", + "impliedFormat": 1 + }, + { + "version": "ab90eee34f8b89770059c0563ba52911a5710c57fecbdd69d3b8cb2408034a87", + "impliedFormat": 1 + }, + { + "version": "4b7ee2be595a4604d0d93f24b451e8b726e99db002fe395957f7d7169bf80f38", + "impliedFormat": 1 + }, + { + "version": "bc253412815953c66797b6c25bf50f2824fa89e7da4637f02e02542c536d44e3", + "impliedFormat": 1 + }, + { + "version": "6bd4dddedecf608a398948b7ccdd577709d2ef1e38b1b54cdefac21ecd5d8b0b", + "impliedFormat": 1 + }, + { + "version": "34c85e0b9ecb1eb38630b40a9f0682a04a6f01b48cef91a84a1fd4a75c5cd2fe", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "9751eb2b973ef42d6a82ca267d7d69a8f5cf32e9367200ec98a8b30eec517c52", + "impliedFormat": 1 + }, + { + "version": "e8b97248e5ea151d6e91ce33bfd0e818c1a699ecb9d6bac69dbfc4324e5252cb", + "signature": "cbb8809fe16cfb990d51b0b4a674e3b1beafaf3a3d69a2e6926506b5acfd30fe", + "impliedFormat": 1 + }, + { + "version": "8b268efb0c49011ef2a4450fd0b537f79fe44d78e0b40a5d1ede3de4eec2846e", + "impliedFormat": 1 + }, + { + "version": "ebc64809ce8cdfaff8617d53b98743ffca60c465b39f21bd88c320cffb6ac525", + "impliedFormat": 1 + }, + { + "version": "0206d6a896c3e0ea6493e37c336a5208fe175dbdb36a561ef707fd5936a00fc8", + "impliedFormat": 1 + }, + { + "version": "0539e7dcef1edc97d9380b6049d5a4ef8ef8c8133a5602febd970c06413a30e3", + "impliedFormat": 1 + }, + { + "version": "8cd3e5ee9e30d714095c91dff08ae98fb883a7622199d34bd1ec6a682f085479", + "signature": "a48dc1395a20d86235e113c3b9441441133f987ef0f15fb5064567948cf0ab16", + "impliedFormat": 1 + }, + { + "version": "a50bb1e0b8e55f5bd4e314a265f864c898fbdf8e8f834da298d6d6d9be3ca825", + "impliedFormat": 1 + }, + { + "version": "9e24aba05882bc5f2dea831035dc78c1ac66cc42bd2235f2da6aaf65bac007ce", + "impliedFormat": 1 + }, + { + "version": "698a3416ce487bd0791358d7df5f996e9bf14dfa00e0181f8198ca984c39526a", + "impliedFormat": 1 + }, + { + "version": "107d632cd956af70ba6cef4171bb72b75e8d3ededc30f591e7b8d97678feadc6", + "impliedFormat": 1 + }, + { + "version": "ce4a8e66384d464ec0469dafb0925e3ff8bd6af437c84777846e133488c4cb3b", + "impliedFormat": 1 + }, + { + "version": "c872b7329674ad2210c9d3b2522d5d4cadf5cffd2c5ca62ef1a18ec1f2e1b30e", + "impliedFormat": 1 + }, + { + "version": "4aa262ee533377af3943db1effd9666795d1fb9901d8581d39c1b6a0a84d9722", + "impliedFormat": 1 + }, + { + "version": "d4e4287637c7999738bd087539a5ace51056e40c85b9d7b6b466a831ec12725f", + "signature": "68dd7017b5d004f4d41972eee623eeaff0b66d506abb8bfafdc04dbc5ef99e18", + "impliedFormat": 1 + }, + { + "version": "0abf8f5eff9a5fd84334db349115d04a089a5f9691e4ed67627048751ec544bb", + "impliedFormat": 1 + }, + { + "version": "81fc85f262ea5b2d1a25fe90d483f8d0d5a420de5aa1dcb8cbafac714a61e89a", + "impliedFormat": 1 + }, + { + "version": "3c7f18662fe8009316c923d17d1369b8f8b4b394e1915de670d4b8a2b2d609f5", + "impliedFormat": 1 + }, + { + "version": "839f4844367b8df7fde41f8e5f7e786dd403605bf3902852bb00ff326663efa4", + "impliedFormat": 1 + }, + { + "version": "43667dbe51bdb67469cbe6d32dd4ae46d334661078799b8cc2b6b0b420cf40b7", + "signature": "bb1339969f4096c8d1885583d8769e0fc5674798c48f8fdc7f9c04c0f2914197", + "impliedFormat": 1 + }, + { + "version": "3dcd8780801a3a6bc1eb2b8ba231a0769a184860205192e75ba0dcf6c50aede2", + "impliedFormat": 1 + }, + { + "version": "f4a3ba0235c069c9da36ffab0194553167ccddbedcfd1b8322f7d05d8a58683e", + "impliedFormat": 1 + }, + { + "version": "7de72abaf1da882a87fbb801e0f197320ddbef2d25478ed62b00793c2698285a", + "impliedFormat": 1 + }, + { + "version": "6850c096e0a3af591106b5af9370c11849480bd9f128ff83677aaf7db6102f7b", + "impliedFormat": 1 + }, + { + "version": "13325ea1df70110200862ac733a40b4378619de7f5978c040e1d7661353e0232", + "signature": "df79d82763a923177cdb4c385579767633309c5aafd75581a5bbfe3ab1bb0d37", + "impliedFormat": 1 + }, + { + "version": "dba820bb54ea381546394733fd626e4f201e25c7120dc015a40456255fe92b16", + "impliedFormat": 1 + }, + { + "version": "c766a45991ba8bf02bda29ed6e97f29f735b180d66a9ac8ddc6a96a6df41284a", + "impliedFormat": 1 + }, + { + "version": "5b979bb871cef894b2e0565e1d142b139a9e2e05cd7563444d2f8257066c45d3", + "impliedFormat": 1 + }, + { + "version": "7b27c9b7231cadd8a98c00aa248a989bb0d82f600b986aab7d9d8e696290b289", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "b8daa0cd0161175591a5b756cd9bf3bc63be4b588a609edd9b5e99a1fc813a97", + "signature": "f283b7510fa9c59f16f1d88f4900a06524fe57710b3ebf0524584c7e5f47d969", + "impliedFormat": 1 + }, + { + "version": "4cd3682dfe49841843535b4e89f51f7817d17211043eef8cbc9cb6c964729386", + "signature": "451624dbab1a9573f86ae45a90147336305b45878b4c809ad7a92be6ba7c85b8", + "impliedFormat": 1 + }, + { + "version": "1cf4c41b8403123d15e7cb065695d1e691fbfc55b232c51c3efe7490de56f971", + "signature": "1da3662dbb0455c46489f078125a8888543eba081cb8b8342dd50d6c064b1426", + "impliedFormat": 1 + }, + { + "version": "f33ec7ea9796b967fc49a94f46561509f4c6581a37ea8dcf65528c1a97a1d7af", + "signature": "d9fcf1bf89b7cea1aad70069043b491a33f46851f552089f4fa53560438ca748", "impliedFormat": 1 }, { @@ -7848,7 +9949,8 @@ "impliedFormat": 1 }, { - "version": "520db3601cba5889148f6e35757f4b7b6bd80e87bba671a0cdb6d15d47423b9c", + "version": "44f32b8d2cb13a50a55b1636fd1bc52b85c2ffa9c54c3c3ca6eef4c91517cfa2", + "signature": "520db3601cba5889148f6e35757f4b7b6bd80e87bba671a0cdb6d15d47423b9c", "impliedFormat": 1 }, { @@ -7880,7 +9982,8 @@ "impliedFormat": 1 }, { - "version": "385f8367e7a389655aae9086cb2ee9c4f4122cba5667d5e1a2719926b489171e", + "version": "a344447cc50acdd5b8b1e2bbd8e6243d02c769933a93efe8984db9cf416e15d6", + "signature": "385f8367e7a389655aae9086cb2ee9c4f4122cba5667d5e1a2719926b489171e", "impliedFormat": 1 }, { @@ -7892,11 +9995,13 @@ "impliedFormat": 1 }, { - "version": "7504a244fe6827e35cbaca83078af5c18e5357115b745a5ef09bf8bf2ed21775", + "version": "bacf49e8ada6acb41e41655afc46dd7d070011c44b8c62a2123e0d6402c02a05", + "signature": "7504a244fe6827e35cbaca83078af5c18e5357115b745a5ef09bf8bf2ed21775", "impliedFormat": 1 }, { - "version": "21e464ba874b104864668763fffcf482ad239cd4dcaa47b3d2dfe63e30dd3f30", + "version": "a622328851bcf8bb37dc862e0c498c8acf0bdabf7df2b83b330d34ed07242413", + "signature": "21e464ba874b104864668763fffcf482ad239cd4dcaa47b3d2dfe63e30dd3f30", "impliedFormat": 1 }, { @@ -7912,7 +10017,8 @@ "impliedFormat": 1 }, { - "version": "7e409aea716df22aa31db2f81937a387dd5f61a72a50a084db1c332d7b041d51", + "version": "c83729dafd0665cb850faa9a80336e2242753b981faf810af60e21c3de17cb6d", + "signature": "7e409aea716df22aa31db2f81937a387dd5f61a72a50a084db1c332d7b041d51", "impliedFormat": 1 }, { @@ -7944,7 +10050,8 @@ "impliedFormat": 1 }, { - "version": "cb8555f754a4351c0be95806a593b70e320e8c64d678eee49253af63363d229d", + "version": "b9edaf1420603a4f1c3fd394a4b027a61c46cfae0dd262e34a989a0e7503553c", + "signature": "cb8555f754a4351c0be95806a593b70e320e8c64d678eee49253af63363d229d", "impliedFormat": 1 }, { @@ -7960,7 +10067,8 @@ "impliedFormat": 1 }, { - "version": "b93a968f8d67831d81d7f29a87632e72e9ec4a24abbad258a3806ae8cb3a8df0", + "version": "8cafcf37b663b6963b0859f96f55865e71b39b3fe9d1d6df6ccdb33ef6d15029", + "signature": "b93a968f8d67831d81d7f29a87632e72e9ec4a24abbad258a3806ae8cb3a8df0", "impliedFormat": 1 }, { @@ -7976,7 +10084,8 @@ "impliedFormat": 1 }, { - "version": "98c84172befb2851fe0015817eea9b5d5e7ee2820eab2a9a8b0920f5ccb22e79", + "version": "864c14f7528692ef51f65aa6d9fe868578fd7ccb4741d9d9320df53b5cd8d540", + "signature": "98c84172befb2851fe0015817eea9b5d5e7ee2820eab2a9a8b0920f5ccb22e79", "impliedFormat": 1 }, { @@ -7992,7 +10101,8 @@ "impliedFormat": 1 }, { - "version": "6c7e7af3556602691a6ec66db9ca7362edf92b479e495427d1799ea6724e5b7d", + "version": "18dad4108a3c47eb60ba84db63ec5e316f84534cf5d16d661f38590fb2a7e29b", + "signature": "6c7e7af3556602691a6ec66db9ca7362edf92b479e495427d1799ea6724e5b7d", "impliedFormat": 1 }, { @@ -8004,7 +10114,23 @@ "impliedFormat": 1 }, { - "version": "3adb942213eccf67f0996894a18756677544b781d8b34130c1197aa2efa1e017", + "version": "832818ee76c21953841e09e96746111036d81c4c43347514f3efe95d1a36b435", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "506f020d57f0533306ceea918d20b9750693bd41276100f39a13a88bfe51a356", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "6a54f042169c236a081d5b1a5fb4264a9f96a9da36d38ea1c1c70861516cee1b", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "e843fd50f7390f97a570f0c20a73b0f303ef9f0849229c53c6faf9d9d6a542d3", + "signature": "3adb942213eccf67f0996894a18756677544b781d8b34130c1197aa2efa1e017", "impliedFormat": 1 }, { @@ -8032,7 +10158,8 @@ "impliedFormat": 1 }, { - "version": "fe62b82c98a4d5bca3f8de616b606d20211b18c14e881bb6856807d9ab58131b", + "version": "6ded4be4f8a693d0c1646dfa2f1b6582e34b73c66ce334cb5e86c7bf8c2e52b7", + "signature": "fe62b82c98a4d5bca3f8de616b606d20211b18c14e881bb6856807d9ab58131b", "impliedFormat": 1 }, { @@ -8040,7 +10167,8 @@ "impliedFormat": 99 }, { - "version": "63fdffffa7773c0110c9b67461c56446d62bf39c452c270c8beeb0ab21870bee", + "version": "6d23119f30c32c38641427d412d1cf04d0119d22b4b12016043e261e89291b5f", + "signature": "63fdffffa7773c0110c9b67461c56446d62bf39c452c270c8beeb0ab21870bee", "impliedFormat": 1 }, { @@ -8056,15 +10184,148 @@ "impliedFormat": 1 }, { - "version": "98aafd9d19541a3a4d1443ae63e3264335a322dc062e9f5ba565b8e78694b445", + "version": "b29806c40b944edab3ae5074d535ce02a90a8e5a2dc95348ba7898bd8b6edb13", + "signature": "98aafd9d19541a3a4d1443ae63e3264335a322dc062e9f5ba565b8e78694b445", "impliedFormat": 1 }, { - "version": "5d42ab9ea53a31b06f966a7df4f69c5d8ff1b9feb65ccf7ee2ae912768182386", + "version": "681dacd8d5d3ca833f7e0b9c5574c1f74c682fcac6da8a29604bdb953ca25f28", + "signature": "5d42ab9ea53a31b06f966a7df4f69c5d8ff1b9feb65ccf7ee2ae912768182386", "impliedFormat": 1 }, { - "version": "0ee0fe7575e7e73c170ed8b62373ad8bfaaf3d7a7be9bdb92b55533b0a80e13d", + "version": "56dba2f61eaeac928ef53a9c4b6df96df33834f0b8d39f59ac820bc4f0b65f5c", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "9a6c138e2cab1b066e726e50227a1d9fa02be68f28402b59b9a7ef5a3a5544b4", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "e009f9f511db1a215577f241b2dc6d3f9418f9bc1686b6950a1d3f1b433a37ff", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "caa48f3b98f9737d51fabce5ce2d126de47d8f9dffeb7ad17cd500f7fd5112e0", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "64d15723ce818bb7074679f5e8d4d19a6e753223f5965fd9f1a9a1f029f802f7", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "2900496cc3034767cd31dd8e628e046bc3e1e5f199afe7323ece090e8872cfa7", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "ba74ef369486b613146fa4a3bccb959f3e64cdc6a43f05cc7010338ba0eab9f7", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "dd8e7bc9fe83f86f16e960b3ae0e43dcc6f92e8e657c70c8b49de45f735827d4", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "6ecab81e94fd8d2b6e8b7ab7fb887e2f116a6935e2a0828069d6b0b7c92aec17", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "6d2089f3928a72795c3648b3a296047cb566cd2dae161db50434faf12e0b2843", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "06767240be8807db054b6f050785761090321698540f30d125919fe47b2f6265", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "6ea62a927ac2607a6411804617e52761741fae66e533f617d5fbf3f3eff1073b", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "ac8582e453158a1e4cccfb683af8850b9d2a0420e7f6f9a260ab268fc715ab0d", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "c80aa3ff0661e065d700a72d8924dcec32bf30eb8f184c962da43f01a5edeb6f", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "42ac0a2d5b1092413b8866603841ce62aeaaf4ee51d07dd872e6a2813dd83fd5", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "ede1c79a89f65cc927cef2fe6f2ed052a78d12096edc0ecac9b92ca53cc3d8b6", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "ece1e5ebb02df1f9a6dcc24dd972c88b065b2c74494b3c475817b70e9a62c289", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "cdec09a633b816046d9496a59345ad81f5f97c642baf4fe1611554aa3fbf4a41", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "5b933c1b71bff2aa417038dabb527b8318d9ef6136f7bd612046e66a062f5dbf", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "b94a350c0e4d7d40b81c5873b42ae0e3629b0c45abf2a1eeb1a3c88f60a26e9a", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "fec98193e9fe88584a25a46c5ccbf965c70921aa97c0becba84b4875b22452d0", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "188857be1eebad5f4021f5f771f248cf04495e27ad467aa1cf9624e35346e647", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "d0a20f432f1f10dc5dbb04ae3bee7253f5c7cee5865a262f9aac007b84902276", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "f218c747145eec6830f8e0efc8d788987f67fce6dabfcb70bde3560bf47d0511", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "f13c9631dc6452116f3a986087dd9a7821b22deeb0c786b941d1483b35189287", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "a239ee6317594257766506b6f2bd04c16e2f7f8fd4695ccd97545c7d0648ce88", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "ce08852fccf842857358d318c80ca151228aeeac4ad3d6614c00fa7d39bcde84", + "signature": "0ee0fe7575e7e73c170ed8b62373ad8bfaaf3d7a7be9bdb92b55533b0a80e13d", "impliedFormat": 1 }, { @@ -8160,11 +10421,13 @@ "impliedFormat": 1 }, { - "version": "417042e6e96b1d290e3dc49e6a545d32c6949a57713b4967683a140cd9b9411a", + "version": "74e92192bfbc408f7902d24fa2900b1fe5429eb137a15ee60ae98ec3f5d5d2eb", + "signature": "417042e6e96b1d290e3dc49e6a545d32c6949a57713b4967683a140cd9b9411a", "impliedFormat": 1 }, { - "version": "31917366c856fbbccddfb9a0821ba5d66e0014ae13ed3f2a7ec8d367fcfe725a", + "version": "2d95cec546c5862a836807827e129c0ad916975afb635fa5954b74a0e4d7b388", + "signature": "31917366c856fbbccddfb9a0821ba5d66e0014ae13ed3f2a7ec8d367fcfe725a", "impliedFormat": 1 }, { @@ -8204,11 +10467,13 @@ "impliedFormat": 1 }, { - "version": "b1bcb9d6aeaeb73041c906ec1ec25937f0998c35d2e89562e839076e1b7364ab", + "version": "f8d69203e30cc93373a19f2616b28bcc9082f3397917385f491fd68989c9a1cb", + "signature": "b1bcb9d6aeaeb73041c906ec1ec25937f0998c35d2e89562e839076e1b7364ab", "impliedFormat": 1 }, { - "version": "9b393353bbf233fd5677eef899b7fb0df9097ce98d1dcf6f2ff03331de462734", + "version": "6dab3f6d7fecffeb8fd4cb1c250f07a718e20e1aed052aa7f8be93bc9a94f5b3", + "signature": "9b393353bbf233fd5677eef899b7fb0df9097ce98d1dcf6f2ff03331de462734", "impliedFormat": 1 }, { @@ -8220,7 +10485,8 @@ "impliedFormat": 1 }, { - "version": "bb5c3411ca88fecc475801d123b8597a015cb289f352fcaff8e71c1bfc55424d", + "version": "175a849d4c0f817d5c2ffde35a3f241146082535b005e3b45a501c732df438f3", + "signature": "bb5c3411ca88fecc475801d123b8597a015cb289f352fcaff8e71c1bfc55424d", "impliedFormat": 1 }, { @@ -8232,11 +10498,8 @@ "impliedFormat": 1 }, { - "version": "42d188940d90b7377c4174c1abe4b9eeca7efe245fddf1dea41da136d5379bd7", - "impliedFormat": 1 - }, - { - "version": "511d68939342db3bf7281b9d5e778539c3e17e283e7ad7ca0bb9921526402f7d", + "version": "66d1cc0cd17ff530cb1ed8a58eed122dcdbf0f5230c01c555edd7bd710cc3b96", + "signature": "511d68939342db3bf7281b9d5e778539c3e17e283e7ad7ca0bb9921526402f7d", "impliedFormat": 1 }, { @@ -8248,7 +10511,13 @@ "impliedFormat": 1 }, { - "version": "eaa7b0e1c216ba53f00f79c29919bfc1b23009683bc9924108ac3692ff8ed7b7", + "version": "ba55d434c2b8017e933b7ca70e586e90a8e191310675303e42926a47e6d7bcaa", + "signature": "eaa7b0e1c216ba53f00f79c29919bfc1b23009683bc9924108ac3692ff8ed7b7", + "impliedFormat": 1 + }, + { + "version": "4f2a8e61ee3ebb3672147b91a2bde6ceeaebcc098b7a6b1638d3df931a5ddd92", + "signature": false, "impliedFormat": 1 }, { @@ -8280,7 +10549,8 @@ "impliedFormat": 1 }, { - "version": "677450f71ecc0b84f2f56a9455e8a4d748da6e2be4df1e5d5cda29799e4f0b2a", + "version": "93191770fc276b56538a58d95add8fea33f11958f9fa555364bcea96c2f9e802", + "signature": "677450f71ecc0b84f2f56a9455e8a4d748da6e2be4df1e5d5cda29799e4f0b2a", "impliedFormat": 1 }, { @@ -8300,7 +10570,8 @@ "impliedFormat": 1 }, { - "version": "1d71a8d60e420d7285e308e05e69013c82490f5d36765e5137be3026f588931b", + "version": "1c5fc8608d7bce18d9dc79c302ed3396241368756e5fe18484f3a9c1658bc7f4", + "signature": "1d71a8d60e420d7285e308e05e69013c82490f5d36765e5137be3026f588931b", "impliedFormat": 1 }, { @@ -8308,7 +10579,8 @@ "impliedFormat": 1 }, { - "version": "b52b3faacef290d8a55bbd7699f6183460061e80c5289c0123bc16863a3bbe4b", + "version": "dd44bf9993c40d5e1d8025f960a4554124b223bd35ff8a83c4f552455f8c7e15", + "signature": "b52b3faacef290d8a55bbd7699f6183460061e80c5289c0123bc16863a3bbe4b", "impliedFormat": 1 }, { @@ -8316,237 +10588,23 @@ "impliedFormat": 1 }, { - "version": "24adbffaf34a4d91f8dcd576c1717e02ba9a91c19c2b20f6d326e6f2d92622cd", + "version": "6f49028cb42c1c7cb64a604315dff771ed4723f2853098b205682356ea3c9b87", + "signature": "24adbffaf34a4d91f8dcd576c1717e02ba9a91c19c2b20f6d326e6f2d92622cd", "impliedFormat": 1 }, { - "version": "5a89914e7673b2304165dd233b03ac4d68950ad453dce4b487b57c1e8d42a792", + "version": "2be2227c3810dfd84e46674fd33b8d09a4a28ad9cb633ed536effd411665ea1e", + "signature": false, "impliedFormat": 99 }, { - "version": "67f0933742a1e547fc31cc52c4183b2be0726ffa9689586b761cef241ca6b251", - "affectsGlobalScope": true, + "version": "994280162938908065cf871994bfc5dc6f8618a4daa3ae7803fb6959f9a2ec6c", + "signature": "5009d673df5a9fd2f0c0d6641052e41203c21b3b8fe4d848b8589ba3cf4a41c2", "impliedFormat": 1 }, { - "version": "a4abbf5d5ecd7367532921a52e2a2762a6f5f38c3e4ad6c25e6e90152c403804", - "impliedFormat": 99 - }, - { - "version": "1f68ab0e055994eb337b67aa87d2a15e0200951e9664959b3866ee6f6b11a0fe", - "impliedFormat": 1 - }, - { - "version": "be5de08f7e80755a34e3247ebd7fd29634afc6143ae1860bd0efe2b8da6e6980", - "impliedFormat": 1 - }, - { - "version": "84bcc7c6b06f4d643a55dc63b56be0c81d990f8d549b66ea615c553268774dc3", - "impliedFormat": 1 - }, - { - "version": "2d225e7bda2871c066a7079c88174340950fb604f624f2586d3ea27bb9e5f4ff", - "impliedFormat": 1 - }, - { - "version": "6a785f84e63234035e511817dd48ada756d984dd8f9344e56eb8b2bdcd8fd001", - "impliedFormat": 1 - }, - { - "version": "c1422d016f7df2ccd3594c06f2923199acd09898f2c42f50ea8159f1f856f618", - "impliedFormat": 1 - }, - { - "version": "2973b1b7857ca144251375b97f98474e9847a890331e27132d5a8b3aea9350a8", - "impliedFormat": 1 - }, - { - "version": "0eb6152d37c84d6119295493dfcc20c331c6fda1304a513d159cdaa599dcb78b", - "impliedFormat": 1 - }, - { - "version": "237df26f8c326ca00cd9d2deb40214a079749062156386b6d75bdcecc6988a6b", - "impliedFormat": 1 - }, - { - "version": "cd44995ee13d5d23df17a10213fed7b483fabfd5ea08f267ab52c07ce0b6b4da", - "impliedFormat": 1 - }, - { - "version": "58ce1486f851942bd2d3056b399079bc9cb978ec933fe9833ea417e33eab676e", - "impliedFormat": 1 - }, - { - "version": "7557d4d7f19f94341f4413575a3453ba7f6039c9591015bcf4282a8e75414043", - "impliedFormat": 1 - }, - { - "version": "a3b2cc16f3ce2d882eca44e1066f57a24751545f2a5e4a153d4de31b4cac9bb5", - "impliedFormat": 1 - }, - { - "version": "ac2b3b377d3068bfb6e1cb8889c99098f2c875955e2325315991882a74d92cc8", - "impliedFormat": 1 - }, - { - "version": "8deb39d89095469957f73bd194d11f01d9894b8c1f1e27fbf3f6e8122576b336", - "impliedFormat": 1 - }, - { - "version": "a38a9c41f433b608a0d37e645a31eecf7233ef3d3fffeb626988d3219f80e32f", - "impliedFormat": 1 - }, - { - "version": "8e1428dcba6a984489863935049893631170a37f9584c0479f06e1a5b1f04332", - "impliedFormat": 1 - }, - { - "version": "1fce9ecb87a2d3898941c60df617e52e50fb0c03c9b7b2ba8381972448327285", - "impliedFormat": 1 - }, - { - "version": "5ef0597b8238443908b2c4bf69149ed3894ac0ddd0515ac583d38c7595b151f1", - "impliedFormat": 1 - }, - { - "version": "ac52b775a80badff5f4ac329c5725a26bd5aaadd57afa7ad9e98b4844767312a", - "impliedFormat": 1 - }, - { - "version": "6ae5b4a63010c82bf2522b4ecfc29ffe6a8b0c5eea6b2b35120077e9ac54d7a1", - "impliedFormat": 1 - }, - { - "version": "dd7109c49f416f218915921d44f0f28975df78e04e437c62e1e1eb3be5e18a35", - "impliedFormat": 1 - }, - { - "version": "eee181112e420b345fc78422a6cc32385ede3d27e2eaf8b8c4ad8b2c29e3e52e", - "impliedFormat": 1 - }, - { - "version": "25fbe57c8ee3079e2201fe580578fab4f3a78881c98865b7c96233af00bf9624", - "impliedFormat": 1 - }, - { - "version": "62cc8477858487b4c4de7d7ae5e745a8ce0015c1592f398b63ee05d6e64ca295", - "impliedFormat": 1 - }, - { - "version": "cc2a9ec3cb10e4c0b8738b02c31798fad312d21ef20b6a2f5be1d077e9f5409d", - "impliedFormat": 1 - }, - { - "version": "4b4fadcda7d34034737598c07e2dca5d7e1e633cb3ba8dd4d2e6a7782b30b296", - "impliedFormat": 1 - }, - { - "version": "360fdc8829a51c5428636f1f83e7db36fef6c5a15ed4411b582d00a1c2bd6e97", - "impliedFormat": 1 - }, - { - "version": "1cf0d15e6ab1ecabbf329b906ae8543e6b8955133b7f6655f04d433e3a0597ab", - "impliedFormat": 1 - }, - { - "version": "7c9f98fe812643141502b30fb2b5ec56d16aaf94f98580276ae37b7924dd44a4", - "impliedFormat": 1 - }, - { - "version": "b3547893f24f59d0a644c52f55901b15a3fa1a115bc5ea9a582911469b9348b7", - "impliedFormat": 1 - }, - { - "version": "596e5b88b6ca8399076afcc22af6e6e0c4700c7cd1f420a78d637c3fb44a885e", - "impliedFormat": 1 - }, - { - "version": "adddf736e08132c7059ee572b128fdacb1c2650ace80d0f582e93d097ed4fbaf", - "impliedFormat": 1 - }, - { - "version": "d4cad9dc13e9c5348637170ddd5d95f7ed5fdfc856ddca40234fa55518bc99a6", - "impliedFormat": 1 - }, - { - "version": "d70675ba7ba7d02e52b7070a369957a70827e4b2bca2c1680c38a832e87b61fd", - "impliedFormat": 1 - }, - { - "version": "3be71f4ce8988a01e2f5368bdd58e1d60236baf511e4510ee9291c7b3729a27e", - "impliedFormat": 1 - }, - { - "version": "423d2ccc38e369a7527988d682fafc40267bcd6688a7473e59c5eea20a29b64f", - "impliedFormat": 1 - }, - { - "version": "2f9fde0868ed030277c678b435f63fcf03d27c04301299580a4017963cc04ce6", - "impliedFormat": 1 - }, - { - "version": "feeb73d48cc41c6dd23d17473521b0af877751504c30c18dc84267c8eeea429a", - "impliedFormat": 1 - }, - { - "version": "25f1159094dc0bf3a71313a74e0885426af21c5d6564a254004f2cadf9c5b052", - "impliedFormat": 1 - }, - { - "version": "cde493e09daad4bb29922fe633f760be9f0e8e2f39cdca999cce3b8690b5e13a", - "impliedFormat": 1 - }, - { - "version": "3d7f9eb12aface876f7b535cc89dcd416daf77f0b3573333f16ec0a70bcf902a", - "impliedFormat": 1 - }, - { - "version": "b83139ae818dd20f365118f9999335ca4cd84ae518348619adc5728e7e0372d5", - "impliedFormat": 1 - }, - { - "version": "e0205f04611bea8b5b82168065b8ef1476a8e96236201494eb8c785331c43118", - "impliedFormat": 1 - }, - { - "version": "62d26d8ba4fa15ab425c1b57a050ed76c5b0ecbffaa53f182110aa3a02405a07", - "impliedFormat": 1 - }, - { - "version": "9941cbf7ca695e95d588f5f1692ab040b078d44a95d231fa9a8f828186b7b77d", - "impliedFormat": 1 - }, - { - "version": "41b8775befd7ded7245a627e9f4de6110236688ce4c124d2d40c37bc1a3bfe05", - "impliedFormat": 1 - }, - { - "version": "9de8d92a60e62a15c05a8685b1de0ea00d55033834b0c5ab7898c582e2320578", - "impliedFormat": 1 - }, - { - "version": "a00b0ad2a2a3c3731e481652cf853c57d9f4593e91e8c219b0862bda334e5d81", - "impliedFormat": 1 - }, - { - "version": "ef7c69c87186bc3b3b45238a1a1bac4c55fa1c5d065f45d4e45ab695291d9d05", - "impliedFormat": 1 - }, - { - "version": "eb9d3c462f322032ce6b08725c0ce51f147f5b0987e8ad81ccc73b908c7d933a", - "impliedFormat": 1 - }, - { - "version": "161c8e0690c46021506e32fda85956d785b70f309ae97011fd27374c065cac9b", - "affectsGlobalScope": true, - "impliedFormat": 1 - }, - { - "version": "3b4a5308f2ec2450e4c2013d36d90e2232c83f31cb77e28257a915462d2e880e", - "impliedFormat": 1 - }, - { - "version": "d5bda9ebe38f70980e25ec1a92218fae6991d5916c65ae4ce2ab2f4d75ded6b1", + "version": "89934915a25c4262eecc3094bd7660699717fa2bd2a2bbc5282fdb45d2ed566b", + "signature": false, "impliedFormat": 1 }, { @@ -8554,27 +10612,33 @@ "impliedFormat": 1 }, { - "version": "6afcb718bff1a2294a62db7ae61d7c75ec463d3226f8ad92540d2f51b4619095", + "version": "ccfcdded0ff47da010c5b8515c9547ab7a598b2552962ad6659f26aab245540b", + "signature": "6afcb718bff1a2294a62db7ae61d7c75ec463d3226f8ad92540d2f51b4619095", "impliedFormat": 1 }, { - "version": "5009d673df5a9fd2f0c0d6641052e41203c21b3b8fe4d848b8589ba3cf4a41c2", + "version": "9a4c0f006b63c80014445bc6e3aba8457d1cf89b12cc293b863a9f2ac8c790d9", + "signature": "fb32c440a608339284630154dbb39def1220ae8e44df04809b0f82be4f8808e5", "impliedFormat": 1 }, { - "version": "fb32c440a608339284630154dbb39def1220ae8e44df04809b0f82be4f8808e5", + "version": "948da454347607aad817b0675068c962e81116b632213eaacd168c18b85a2580", + "signature": "38cb7efd7412c6821633704a4621a81267145f054033027458536bb4a477ce0f", "impliedFormat": 1 }, { - "version": "38cb7efd7412c6821633704a4621a81267145f054033027458536bb4a477ce0f", + "version": "12fbd4118f865a49c468ce1c9b079a5af3c0eb3e792a0b5f51698faa9c443cf8", + "signature": false, "impliedFormat": 1 }, { - "version": "484f99d562596b01f96cbf7a7657dc432bb86e9ed8e15b7053a0f0226b110ceb", + "version": "ae538a0e37c00b8589ce5fe2849e7d8530c2291f7e4537fdc6741295a8f50c29", + "signature": "484f99d562596b01f96cbf7a7657dc432bb86e9ed8e15b7053a0f0226b110ceb", "impliedFormat": 1 }, { - "version": "b113188be0814e33b9fcf545ef73606f86c98b0aabea3bd6d931210ea7af4ca1", + "version": "6bb1083101a04340cc599614352cfae7c5c5ec5c2d68b21f4c59adafa79d459c", + "signature": "b113188be0814e33b9fcf545ef73606f86c98b0aabea3bd6d931210ea7af4ca1", "impliedFormat": 1 }, { @@ -8582,11 +10646,18 @@ "impliedFormat": 1 }, { - "version": "d7939e1e11543f697d669c3d3869c66b9529b67a4f9f1676d46d513cb9c3d61b", + "version": "393d7de03d8bcde8218dd2413d14157d8f74b65a4eb59765bd055c35f9a33d86", + "signature": "d7939e1e11543f697d669c3d3869c66b9529b67a4f9f1676d46d513cb9c3d61b", "impliedFormat": 1 }, { - "version": "6374c8f112546c475def1619d7e4074a5058169678ea0aa84429bfac0c937934", + "version": "e71cc50a342e740e9071733b32ea7c44a3ae13efe64db3b7b4a47e8e18ac0a60", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "ff698b2b7c176d93dfceb8c5c8abf8d38f7025b86a2f189e0d143307e7ce36d1", + "signature": false, "impliedFormat": 1 }, { @@ -8598,283 +10669,339 @@ "impliedFormat": 1 }, { - "version": "696ca21fc9b4f49e3feea34dc18dd840649ae65678a8b6dbc952cb4bb237c87d", + "version": "e11cb41ed58b2f70a93e53d7c405f15ec4343a2dc758610d458d638d5ed6a522", + "signature": "696ca21fc9b4f49e3feea34dc18dd840649ae65678a8b6dbc952cb4bb237c87d", "impliedFormat": 1 }, { - "version": "f69bec2d5a62da8753c84e31016ae38c71e1342f88edb6d94d835dac7076bdee", + "version": "2591ce802940d7319238c848105b283eeece5cce3752a4aa7b937c21792bc71d", + "signature": "f69bec2d5a62da8753c84e31016ae38c71e1342f88edb6d94d835dac7076bdee", "impliedFormat": 1 }, { - "version": "d901ec634d4ebd0da8c4745a7eefae376421e1194edb5286ebbbac88b86bde3c", + "version": "5bd6de5dfd4b36dc13fb9feb8462b50b3176153fdf99d6d6cb8d807aa59c06e9", + "signature": "d901ec634d4ebd0da8c4745a7eefae376421e1194edb5286ebbbac88b86bde3c", "impliedFormat": 1 }, { - "version": "d11b936703b2c2fc5ce07140146a903869580e9a368b1fdb4763cac1ad77055e", + "version": "28e93480f3a48b0e6a3ec30ced8f5362fdee96194e05683b78e7c341f851f1f4", + "signature": "d11b936703b2c2fc5ce07140146a903869580e9a368b1fdb4763cac1ad77055e", "impliedFormat": 1 }, { - "version": "67b0e3da8a2760c481723566e92b5f78c0f812c0e566dfef691a36f8024f16cd", + "version": "711ab39a13e902330153b047b74f4629acc7fc858cf9b49f6a1e91bcc1301fa1", + "signature": "67b0e3da8a2760c481723566e92b5f78c0f812c0e566dfef691a36f8024f16cd", "impliedFormat": 1 }, { - "version": "73e5555643a4bf2820d108777bf94d196297ccb2ddef743f99bd379c31cb61fc", + "version": "a63443e4ea965ea0ce15f3be4b17c989f418b27757e4eb7c5b7896f2aad6bcc1", + "signature": "97b2f8bb95f029c675203ee4dc664d9efee2a6c4299dc92f51a68676b9d0965d" + }, + "4cae941be9bc3bee9a6905e47ea7a51aee216d587d34a8cc4ae48f78fd6d8159", + "cccebe2695746988667cb613a31df70b6652c5b6e5b23b7114f3401a4b7be1b7", + { + "version": "155d2e6caadb7de14cd4c337164f7febade2bcefb7645c7094158cd80e4b9c1f", + "signature": false, "impliedFormat": 99 }, { - "version": "68fc7da7956f13295692186c7de9dff30aadc5860ce8fffbb1be39c5fd4624fa", + "version": "fcc60c64e9ff115a2ddb9fcaeb19d45668b353ccafc55054588c0ffb5bfb7a53", + "signature": "73e5555643a4bf2820d108777bf94d196297ccb2ddef743f99bd379c31cb61fc", "impliedFormat": 99 }, { - "version": "309ebd217636d68cf8784cbc3272c16fb94fb8e969e18b6fe88c35200340aef1", + "version": "0c2f0f87ad46e9b8f458f4392e355a07d8231d07ab4648c9cb8b108d3c947bb0", + "signature": "68fc7da7956f13295692186c7de9dff30aadc5860ce8fffbb1be39c5fd4624fa", + "impliedFormat": 99 + }, + { + "version": "c1a2e05eb6d7ca8d7e4a7f4c93ccf0c2857e842a64c98eaee4d85841ee9855e6", "impliedFormat": 1 }, { - "version": "f987c74a4b4baf361afbf22a16d230ee490d662f9aa2066853bb7ebbb8611355", - "impliedFormat": 1 - }, - { - "version": "1ff91526fcdd634148c655ef86e912a273ce6a0239e2505701561f086678262b", - "impliedFormat": 1 - }, - { - "version": "bd93f6fc4da70275db4def32903eed2be03547a41857142df63ddfebb9a67bdf", - "impliedFormat": 1 - }, - { - "version": "8d67b13da77316a8a2fabc21d340866ddf8a4b99e76a6c951cc45189142df652", - "impliedFormat": 1 - }, - { - "version": "7952419455ca298776db0005b9b5b75571d484d526a29bfbdf041652213bce6f", - "impliedFormat": 1 - }, - { - "version": "21360500b20e0ec570f26f1cbb388c155ede043698970f316969840da4f16465", - "impliedFormat": 1 - }, - { - "version": "3a819c2928ee06bbcc84e2797fd3558ae2ebb7e0ed8d87f71732fb2e2acc87b4", - "impliedFormat": 1 - }, - { - "version": "1765e61249cb44bf5064d42bfa06956455bbc74dc05f074d5727e8962592c920", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe", - "impliedFormat": 1 - }, - { - "version": "26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", - "impliedFormat": 1 - }, - { - "version": "568b463d762d0df07ed10081293715069168ad7cf6308525a3bb93777b127845", + "version": "835fb2909ce458740fb4a49fc61709896c6864f5ce3db7f0a88f06c720d74d02", + "signature": "309ebd217636d68cf8784cbc3272c16fb94fb8e969e18b6fe88c35200340aef1", "impliedFormat": 1 }, { "version": "6e5857f38aa297a859cab4ec891408659218a5a2610cd317b6dcbef9979459cc", "impliedFormat": 1 }, + { + "version": "ead8e39c2e11891f286b06ae2aa71f208b1802661fcdb2425cffa4f494a68854", + "signature": "85021a58f728318a9c83977a8a3a09196dcfc61345e0b8bbbb39422c1594f36b", + "impliedFormat": 1 + }, + { + "version": "82919acbb38870fcf5786ec1292f0f5afe490f9b3060123e48675831bd947192", + "signature": "f987c74a4b4baf361afbf22a16d230ee490d662f9aa2066853bb7ebbb8611355", + "impliedFormat": 1 + }, + { + "version": "e222701788ec77bd57c28facbbd142eadf5c749a74d586bc2f317db7e33544b1", + "signature": "1ff91526fcdd634148c655ef86e912a273ce6a0239e2505701561f086678262b", + "impliedFormat": 1 + }, + { + "version": "09154713fae0ed7befacdad783e5bd1970c06fc41a5f866f7f933b96312ce764", + "signature": "bd93f6fc4da70275db4def32903eed2be03547a41857142df63ddfebb9a67bdf", + "impliedFormat": 1 + }, + { + "version": "8d67b13da77316a8a2fabc21d340866ddf8a4b99e76a6c951cc45189142df652", + "impliedFormat": 1 + }, + { + "version": "a91c8d28d10fee7fe717ddf3743f287b68770c813c98f796b6e38d5d164bd459", + "signature": "7952419455ca298776db0005b9b5b75571d484d526a29bfbdf041652213bce6f", + "impliedFormat": 1 + }, + { + "version": "68add36d9632bc096d7245d24d6b0b8ad5f125183016102a3dad4c9c2438ccb0", + "signature": "21360500b20e0ec570f26f1cbb388c155ede043698970f316969840da4f16465", + "impliedFormat": 1 + }, + { + "version": "3a819c2928ee06bbcc84e2797fd3558ae2ebb7e0ed8d87f71732fb2e2acc87b4", + "impliedFormat": 1 + }, + { + "version": "f6f827cd43e92685f194002d6b52a9408309cda1cec46fb7ca8489a95cbd2fd4", + "signature": "1765e61249cb44bf5064d42bfa06956455bbc74dc05f074d5727e8962592c920", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "signature": "26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "signature": "26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "signature": "26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "signature": "26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "signature": "26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "signature": "26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "signature": "26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d", + "impliedFormat": 1 + }, + { + "version": "a270a1a893d1aee5a3c1c8c276cd2778aa970a2741ee2ccf29cc3210d7da80f5", + "signature": "568b463d762d0df07ed10081293715069168ad7cf6308525a3bb93777b127845", + "impliedFormat": 1 + }, { "version": "add0ce7b77ba5b308492fa68f77f24d1ed1d9148534bdf05ac17c30763fc1a79", "impliedFormat": 1 }, { - "version": "56ccc6238510b913f5e6c21afdc447632873f76748d0b30a87cb313b42f1c196", + "version": "8926594ee895917e90701d8cbb5fdf77fc238b266ac540f929c7253f8ad6233d", + "signature": "56ccc6238510b913f5e6c21afdc447632873f76748d0b30a87cb313b42f1c196", "impliedFormat": 1 }, { - "version": "c1a2e05eb6d7ca8d7e4a7f4c93ccf0c2857e842a64c98eaee4d85841ee9855e6", + "version": "2f67911e4bf4e0717dc2ded248ce2d5e4398d945ee13889a6852c1233ea41508", + "signature": false, "impliedFormat": 1 }, { - "version": "85021a58f728318a9c83977a8a3a09196dcfc61345e0b8bbbb39422c1594f36b", + "version": "d8430c275b0f59417ea8e173cfb888a4477b430ec35b595bf734f3ec7a7d729f", + "signature": false, "impliedFormat": 1 }, { - "version": "d91805544905a40fbd639ba1b85f65dc13d6996a07034848d634aa9edb63479e", + "version": "69364df1c776372d7df1fb46a6cb3a6bf7f55e700f533a104e3f9d70a32bec18", + "signature": "d91805544905a40fbd639ba1b85f65dc13d6996a07034848d634aa9edb63479e", "impliedFormat": 1 }, { @@ -8886,17 +11013,24 @@ "impliedFormat": 1 }, { - "version": "8610f5dc475d74c4b095aafa0c191548bfd43f65802e6da54b5e526202b8cfe0", + "version": "ed8763205f02fb65e84eff7432155258df7f93b7d938f01785cb447d043d53f3", + "signature": "8610f5dc475d74c4b095aafa0c191548bfd43f65802e6da54b5e526202b8cfe0", "impliedFormat": 1 }, { - "version": "7b9496d2e1664155c3c293e1fbbe2aba288614163c88cb81ed6061905924b8f9", + "version": "30db853bb2e60170ba11e39ab48bacecb32d06d4def89eedf17e58ebab762a65", + "signature": "7b9496d2e1664155c3c293e1fbbe2aba288614163c88cb81ed6061905924b8f9", "impliedFormat": 1 }, { "version": "e27451b24234dfed45f6cf22112a04955183a99c42a2691fb4936d63cfe42761", "impliedFormat": 1 }, + { + "version": "2316301dd223d31962d917999acf8e543e0119c5d24ec984c9f22cb23247160c", + "signature": false, + "impliedFormat": 1 + }, { "version": "58d65a2803c3b6629b0e18c8bf1bc883a686fcf0333230dd0151ab6e85b74307", "impliedFormat": 1 @@ -8906,7 +11040,8 @@ "impliedFormat": 1 }, { - "version": "2fbc91ba70096f93f57e22d1f0af22b707dbb3f9f5692cc4f1200861d3b75d88", + "version": "d4a5b1d2ff02c37643e18db302488cd64c342b00e2786e65caac4e12bda9219b", + "signature": "2fbc91ba70096f93f57e22d1f0af22b707dbb3f9f5692cc4f1200861d3b75d88", "impliedFormat": 1 }, { @@ -8917,11 +11052,26 @@ "version": "8cb31102790372bebfd78dd56d6752913b0f3e2cefbeb08375acd9f5ba737155", "impliedFormat": 1 }, - "f48ae351c72efcc5725ae3c02582660035f243c5f8e147e5801f8be6602b0629", - "97b2f8bb95f029c675203ee4dc664d9efee2a6c4299dc92f51a68676b9d0965d", - "4cae941be9bc3bee9a6905e47ea7a51aee216d587d34a8cc4ae48f78fd6d8159", - "cccebe2695746988667cb613a31df70b6652c5b6e5b23b7114f3401a4b7be1b7", - "e76e63b9f74bcfbec7b7a2ba4072219e4582b0c2cbd03f7f6bfb0c0c6a600838", + { + "version": "ff2d893e0d165319e79150ee524f957236565973ef92ed83b7ecde30361fab87", + "signature": false + }, + { + "version": "68285d20a110ef76bacf1feb705aa96d3e623b697e0328a0aa13b72b76311906", + "signature": false + }, + { + "version": "891b3d15d9c41cb905e78fe82be06dff181b2f331d2385eaa00bdfbab82ad04e", + "signature": false + }, + { + "version": "61364ade746ea1645fcf6596f4ad192da2b363048bf037c867a56772370e7a2b", + "signature": false + }, + { + "version": "e76e63b9f74bcfbec7b7a2ba4072219e4582b0c2cbd03f7f6bfb0c0c6a600838", + "signature": false + }, { "version": "ba8a633546c5af05c60a53ea9a9649234cbdd559aae0301d0fd7645b05b05d9c", "impliedFormat": 99 @@ -8930,13 +11080,17 @@ "version": "10cc3485ee9eecd291db79396caab1b904ec56218a3287c55a0ddbaf0a0452f4", "impliedFormat": 99 }, - "90067a015ef3a3a57a25152be16f8e55bb4c945c49e54204b002661c25ec3f94", + { + "version": "1847392b6785b0154d31f9c5833f51ebdc736d930e97da40dd9fae7db1328533", + "signature": false + }, { "version": "fe93c474ab38ac02e30e3af073412b4f92b740152cf3a751fdaee8cbea982341", "impliedFormat": 1 }, { - "version": "ba05cce5bca2232bc3edf9274a3d9e7102907f0847e179280a42a2b78cb7f087", + "version": "3255b97f3f24af29c79cc1aa88004efb13b6285ebdde0a567bf32e19bb65250d", + "signature": "ba05cce5bca2232bc3edf9274a3d9e7102907f0847e179280a42a2b78cb7f087", "impliedFormat": 1 }, { @@ -8944,9 +11098,14 @@ "impliedFormat": 1 }, { - "version": "88310e61d63ab018dc54fe54518b610b0ca809a465469a5df8d10c1bb87e125e", + "version": "ac5f571dd7f1daefbed00a58081dc72c3a3da67c63644ab63f35e5f98b0d6f72", "signature": "71f255c282738f3d1bd895a59df9a7270e2890169778e8e9f45032469555ffcb" }, + { + "version": "db7da89b083e353471f3911adb59288c2d4bda401b25433943e8128d654e0afc", + "signature": "7704cbebe7b3b3f00b6929818c64befb7923cf9162fe1c7ef56045a0ae3ed6fc", + "impliedFormat": 1 + }, { "version": "c57b441e0c0a9cbdfa7d850dae1f8a387d6f81cbffbc3cd0465d530084c2417d", "impliedFormat": 99 @@ -8963,6 +11122,10 @@ "version": "8b15d05f236e8537d3ecbe4422ce46bf0de4e4cd40b2f909c91c5818af4ff17a", "impliedFormat": 1 }, + { + "version": "024829c0b317972acf4f871bf701525f81896ad74015f1a52d46ae6036205cb9", + "impliedFormat": 99 + }, { "version": "a9373d52584b48809ffd61d74f5b3dfd127da846e3c4ee3c415560386df3994b", "impliedFormat": 99 @@ -8972,31 +11135,13 @@ "impliedFormat": 99 }, { - "version": "8085954ba165e611c6230596078063627f3656fed3fb68ad1e36a414c4d7599a", + "version": "0943a6e4e026d0de8a4969ee975a7283e0627bf41aa4635d8502f6f24365ac9b", "impliedFormat": 99 }, - "c17c31763a356c67e1e7e45130b5b2323131064eaca83b0db17d7cfe25b2e215", { - "version": "7704cbebe7b3b3f00b6929818c64befb7923cf9162fe1c7ef56045a0ae3ed6fc", - "impliedFormat": 1 - }, - "74a420202e0653c32b137529c599053f2882879bf91c1ab612071f56c73becbc", - { - "version": "cbfd5ef0c8fdb4983202252b5f5758a579f4500edc3b9ad413da60cffb5c3564", + "version": "1461efc4aefd3e999244f238f59c9b9753a7e3dfede923ebe2b4a11d6e13a0d0", "impliedFormat": 99 }, - "53a85b95c1d36bbc8d1cb85e7fa6867bc378cf779501b52602cd948b171d5cca", - { - "version": "a80ec72f5e178862476deaeed532c305bdfcd3627014ae7ac2901356d794fc93", - "impliedFormat": 99 - }, - "d1bedb34c25ef621b71ff4eb9b3ee542b94e0a17ad516c07473982f967a52d8d", - "91c72009f2653bb8f1706fffa15622adf3acd53f81cf0defb8703f268e7ab9d8", - { - "version": "2c57db2bf2dbd9e8ef4853be7257d62a1cb72845f7b976bb4ee827d362675f96", - "impliedFormat": 99 - }, - "08f982c6c06fe3211ea4a7e0411898c559bbd677c988fdb6727f5042f61a8b45", { "version": "7ec047b73f621c526468517fea779fec2007dd05baa880989def59126c98ef79", "impliedFormat": 99 @@ -9014,10 +11159,21 @@ "impliedFormat": 99 }, { - "version": "e7441be68f390975c6155c805cea8f54cc1b7f3656b6b9440ecbbbd7753499e6", + "version": "31c30cc54e8c3da37c8e2e40e5658471f65915df22d348990d1601901e8c9ff3", + "impliedFormat": 99 + }, + { + "version": "36d8011f1437aecf0e6e88677d933e4fb3403557f086f4ac00c5a4cb6d028ac2", + "impliedFormat": 99 + }, + { + "version": "8085954ba165e611c6230596078063627f3656fed3fb68ad1e36a414c4d7599a", + "impliedFormat": 99 + }, + { + "version": "2c57db2bf2dbd9e8ef4853be7257d62a1cb72845f7b976bb4ee827d362675f96", "impliedFormat": 99 }, - "7fd1b08fe8e8a400656dab2c602847a18c06d91ed8c0881b1ec72dd6c41fc634", { "version": "6b5f886fe41e2e767168e491fe6048398ed6439d44e006d9f51cc31265f08978", "impliedFormat": 99 @@ -9038,15 +11194,5135 @@ "version": "89783bd45ab35df55203b522f8271500189c3526976af533a599a86caaf31362", "impliedFormat": 99 }, + { + "version": "6da2e0928bdab05861abc4e4abebea0c7cf0b67e25374ba35a94df2269563dd8", + "impliedFormat": 99 + }, + { + "version": "e7b00bec016013bcde74268d837a8b57173951add2b23c8fd12ffe57f204d88f", + "impliedFormat": 99 + }, { "version": "26e6c521a290630ea31f0205a46a87cab35faac96e2b30606f37bae7bcda4f9d", "impliedFormat": 99 }, - "d310ee2d232ae0f5f5c20f00b40fd46643f2be24651c370e43c8f70d91d8021b", { "version": "71acd198e19fa38447a3cbc5c33f2f5a719d933fccf314aaff0e8b0593271324", "impliedFormat": 99 }, + { + "version": "044047026c70439867589d8596ffe417b56158a1f054034f590166dd793b676b", + "impliedFormat": 99 + }, + { + "version": "89ad9a4e8044299f356f38879a1c2176bc60c997519b442c92cc5a70b731a360", + "impliedFormat": 99 + }, + { + "version": "fd4f58cd6b5fc8ce8af0d04bfef5142f15c4bafaac9a9899c6daa056f10bb517", + "impliedFormat": 99 + }, + { + "version": "2a00cea77767cb26393ee6f972fd32941249a0d65b246bfcb20a780a2b919a21", + "impliedFormat": 99 + }, + { + "version": "440cb5b34e06fabe3dcb13a3f77b98d771bf696857c8e97ce170b4f345f8a26b", + "impliedFormat": 99 + }, + { + "version": "5bc7f0946c94e23765bd1b8f62dc3ab65d7716285ca7cf45609f57777ddb436f", + "impliedFormat": 99 + }, + { + "version": "7d5a5e603a68faea3d978630a84cacad7668f11e14164c4dd10224fa1e210f56", + "impliedFormat": 99 + }, + { + "version": "2535fc1a5fe64892783ff8f61321b181c24f824e688a4a05ae738da33466605b", + "impliedFormat": 99 + }, + { + "version": "cbfd5ef0c8fdb4983202252b5f5758a579f4500edc3b9ad413da60cffb5c3564", + "impliedFormat": 99 + }, + { + "version": "9f7a3c434912fd3feb87af4aabdf0d1b614152ecb5e7b2aa1fff3429879cdd51", + "impliedFormat": 99 + }, + { + "version": "99d1a601593495371e798da1850b52877bf63d0678f15722d5f048e404f002e4", + "impliedFormat": 99 + }, + { + "version": "1179ef8174e0e4a09d35576199df04803b1db17c0fb35b9326442884bc0b0cce", + "impliedFormat": 99 + }, + { + "version": "9c580c6eae94f8c9a38373566e59d5c3282dc194aa266b23a50686fe10560159", + "impliedFormat": 99 + }, + { + "version": "cc3738ba01d9af5ba1206a313896837ff8779791afcd9869e582783550f17f38", + "impliedFormat": 99 + }, + { + "version": "a80ec72f5e178862476deaeed532c305bdfcd3627014ae7ac2901356d794fc93", + "impliedFormat": 99 + }, + { + "version": "4a5aa16151dbec524bb043a5cbce2c3fec75957d175475c115a953aca53999a9", + "impliedFormat": 99 + }, + { + "version": "7a14bf21ae8a29d64c42173c08f026928daf418bed1b97b37ac4bb2aa197b89b", + "impliedFormat": 99 + }, + { + "version": "c5013d60cbff572255ccc87c314c39e198c8cc6c5aa7855db7a21b79e06a510f", + "impliedFormat": 99 + }, + { + "version": "69ec8d900cfec3d40e50490fedbbea5c1b49d32c38adbc236e73a3b8978c0b11", + "impliedFormat": 99 + }, + { + "version": "7fd629484ba6772b686885b443914655089246f75a13dd685845d0abae337671", + "impliedFormat": 99 + }, + { + "version": "13dcccb62e8537329ac0448f088ab16fe5b0bbed71e56906d28d202072759804", + "impliedFormat": 99 + }, + { + "version": "233267a4a036c64aee95f66a0d31e3e0ef048cccc57dd66f9cf87582b38691e4", + "impliedFormat": 99 + }, + { + "version": "ccb9fbe369885d02cf6c2b2948fb5060451565d37b04356bbe753807f98e0682", + "impliedFormat": 99 + }, + { + "version": "3609a3817b0d0ddce3bfa3afdb2bbd01164712ba6722e9164719beeed41aef54", + "signature": false + }, + { + "version": "e88d44d29d979fd65eb7c59bd8e31c906efdc51d6c3a3149ecc0c2e0e2c36067", + "signature": false + }, + { + "version": "585ac8e3b0eb35f88287da3fd69be49a0f984467e3e718c52d9dc82aa1cbe5e2", + "signature": false + }, + { + "version": "465b847ddb73151cfe98fa694ce7fca4efe9a313980924c00021894faacd4805", + "signature": false + }, + { + "version": "787c4c980cb20ff89265e1885de0241fa4a193dcbbe0165547c30c261c38ed80", + "signature": "c17c31763a356c67e1e7e45130b5b2323131064eaca83b0db17d7cfe25b2e215" + }, + { + "version": "06a55eb4ab3952380d156134bc11cd5c178616e204ca76b75a8827376f7a2272", + "signature": false + }, + { + "version": "836b4bb372b90e69e7d6b7c06e9f208641eb420d3cccb0462a8fe074e5fc11b3", + "signature": "74a420202e0653c32b137529c599053f2882879bf91c1ab612071f56c73becbc" + }, + { + "version": "d8c67f22851ba2e68727c6305d7f7feef0cc1357a6183fd869a32ea7e10e3c1b", + "signature": "53a85b95c1d36bbc8d1cb85e7fa6867bc378cf779501b52602cd948b171d5cca" + }, + { + "version": "a8e1bbf515b1e276223c62c771562befde776e2a17cf7772fb13492e5aed1268", + "signature": false + }, + { + "version": "a70358d0a92b1631bc4e3bced197c5ea80c1ed17df4587254578a780f56b2833", + "signature": "d1bedb34c25ef621b71ff4eb9b3ee542b94e0a17ad516c07473982f967a52d8d" + }, + { + "version": "8aae06e2e1b9f2f9fff2716249cac142b219c049662f46355c2a2e1d8f549d11", + "signature": false + }, + { + "version": "57ae71d27ee71b7d1f2c6d867ddafbbfbaa629ad75565e63a508dbaa3ef9f859", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "60924ca0c60f0674f208bfa1eaaa54e6973ced7650df7c7a81ae069730ef665a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e3181c7595a89dd03ba9a20eb5065fa37e0b0a514261bed774f6ae2241634470", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c42d5cbf94816659c01f7c2298d0370247f1a981f8ca6370301b7a03b3ced950", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "18c18ab0341fd5fdfefb5d992c365be1696bfe000c7081c964582b315e33f8f2", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "dafbd4199902d904e3d4a233b5faf5dc4c98847fcd8c0ddd7617b2aed50e90d8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9fc866f9783d12d0412ed8d68af5e4c9e44f0072d442b0c33c3bda0a5c8cae15", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5fc13d24a2d0328eac00c4e73cc052a987fbced2151bc0d3b7eb8f3ba4d0f4e2", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2cef84bf00cbdb452fdc5d8ecfe7b8c0aa3fa788bdc4ad8961e2e636530dbb60", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "24104650185414f379d5cc35c0e2c19f06684a73de5b472bae79e0d855771ecf", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "799003c0ab928582fca04977f47b8d85b43a8de610f4eef0ad2d069fbb9f9399", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b13dd41c344a23e085f81b2f5cd96792e6b35ae814f32b25e39d9841844ad240", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "17d8b4e6416e48b6e23b73d05fd2fde407e2af8fddbe9da2a98ede14949c3489", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "6d17b2b41f874ab4369b8e04bdbe660163ea5c8239785c850f767370604959e3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "04b4c044c8fe6af77b6c196a16c41e0f7d76b285d036d79dcaa6d92e24b4982b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "30bdeead5293c1ddfaea4097d3e9dd5a6b0bc59a1e07ff4714ea1bbe7c5b2318", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e7df226dcc1b0ce76b32f160556f3d1550124c894aae2d5f73cefaaf28df7779", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f2b7eef5c46c61e6e72fba9afd7cc612a08c0c48ed44c3c5518559d8508146a2", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "00f0ba57e829398d10168b7db1e16217f87933e61bd8612b53a894bd7d6371da", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "126b20947d9fa74a88bb4e9281462bda05e529f90e22d08ee9f116a224291e84", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "40d9e43acee39702745eb5c641993978ac40f227475eacc99a83ba893ad995db", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8a66b69b21c8de9cb88b4b6d12f655d5b7636e692a014c5aa1bd81745c8c51d5", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ebbb846bdd5a78fdacff59ae04cea7a097912aeb1a2b34f8d88f4ebb84643069", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7321adb29ffd637acb33ee67ea035f1a97d0aa0b14173291cc2fd58e93296e04", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "320816f1a4211188f07a782bdb6c1a44555b3e716ce13018f528ad7387108d5f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b2cc8a474b7657f4a03c67baf6bff75e26635fd4b5850675e8cad524a09ddd0c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "0d081e9dc251063cc69611041c17d25847e8bdbe18164baaa89b7f1f1633c0ab", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a64c25d8f4ec16339db49867ea2324e77060782993432a875d6e5e8608b0de1e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "0739310b6b777f3e2baaf908c0fbc622c71160e6310eb93e0d820d86a52e2e23", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "37b32e4eadd8cd3c263e7ac1681c58b2ac54f3f77bb34c5e4326cc78516d55a9", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9b7a8974e028c4ed6f7f9abb969e3eb224c069fd7f226e26fcc3a5b0e2a1eba8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e8100b569926a5592146ed68a0418109d625a045a94ed878a8c5152b1379237c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "594201c616c318b7f3149a912abd8d6bdf338d765b7bcbde86bca2e66b144606", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "03e380975e047c5c6ded532cf8589e6cc85abb7be3629e1e4b0c9e703f2fd36f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "fae14b53b7f52a8eb3274c67c11f261a58530969885599efe3df0277b48909e1", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c41206757c428186f2e0d1fd373915c823504c249336bdc9a9c9bbdf9da95fef", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e961f853b7b0111c42b763a6aa46fc70d06a697db3d8ed69b38f7ba0ae42a62b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "3db90f79e36bcb60b3f8de1bc60321026800979c150e5615047d598c787a64b7", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "639b6fb3afbb8f6067c1564af2bd284c3e883f0f1556d59bd5eb87cdbbdd8486", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "49795f5478cb607fd5965aa337135a8e7fd1c58bc40c0b6db726adf186dd403f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7d8890e6e2e4e215959e71d5b5bd49482cf7a23be68d48ea446601a4c99bd511", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d56f72c4bb518de5702b8b6ae3d3c3045c99e0fd48b3d3b54c653693a8378017", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4c9ac40163e4265b5750510d6d2933fb7b39023eed69f7b7c68b540ad960826e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8dfab17cf48e7be6e023c438a9cdf6d15a9b4d2fa976c26e223ba40c53eb8da8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "38bdf7ccacfd8e418de3a7b1e3cecc29b5625f90abc2fa4ac7843a290f3bf555", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9819e46a914735211fbc04b8dc6ba65152c62e3a329ca0601a46ba6e05b2c897", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "50f0dc9a42931fb5d65cdd64ba0f7b378aedd36e0cfca988aa4109aad5e714cb", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "894f23066f9fafccc6e2dd006ed5bd85f3b913de90f17cf1fe15a2eb677fd603", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "abdf39173867e6c2d6045f120a316de451bbb6351a6929546b8470ddf2e4b3b9", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "aa2cb4053f948fbd606228195bbe44d78733861b6f7204558bbee603202ee440", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "6911b41bfe9942ac59c2da1bbcbe5c3c1f4e510bf65cae89ed00f434cc588860", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7b81bc4d4e2c764e85d869a8dd9fe3652b34b45c065482ac94ffaacc642b2507", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "895df4edb46ccdcbce2ec982f5eed292cf7ea3f7168f1efea738ee346feab273", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8692bb1a4799eda7b2e3288a6646519d4cebb9a0bddf800085fc1bd8076997a0", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "239c9e98547fe99711b01a0293f8a1a776fc10330094aa261f3970aaba957c82", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "34833ec50360a32efdc12780ae624e9a710dd1fd7013b58c540abf856b54285a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "647538e4007dcc351a8882067310a0835b5bb8559d1cfa5f378e929bceb2e64d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "992d6b1abcc9b6092e5a574d51d441238566b6461ade5de53cb9718e4f27da46", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "938702305649bf1050bd79f3803cf5cc2904596fc1edd4e3b91033184eae5c54", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "1e931d3c367d4b96fe043e792196d9c2cf74f672ff9c0b894be54e000280a79d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "05bec322ea9f6eb9efcd6458bb47087e55bd688afdd232b78379eb5d526816ed", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4c449a874c2d2e5e5bc508e6aa98f3140218e78c585597a21a508a647acd780a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "dae15e326140a633d7693e92b1af63274f7295ea94fb7c322d5cbe3f5e48be88", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c2b0a869713bca307e58d81d1d1f4b99ebfc7ec8b8f17e80dde40739aa8a2bc6", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "6e4b4ff6c7c54fa9c6022e88f2f3e675eac3c6923143eb8b9139150f09074049", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "69559172a9a97bbe34a32bff8c24ef1d8c8063feb5f16a6d3407833b7ee504cf", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "86b94a2a3edcb78d9bfcdb3b382547d47cb017e71abe770c9ee8721e9c84857f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e3fafafda82853c45c0afc075fea1eaf0df373a06daf6e6c7f382f9f61b2deb3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a4ba4b31de9e9140bc49c0addddbfaf96b943a7956a46d45f894822e12bf5560", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d8a7926fc75f2ed887f17bae732ee31a4064b8a95a406c87e430c58578ee1f67", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9886ffbb134b0a0059fd82219eba2a75f8af341d98bc6331b6ef8a921e10ec68", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c2ead057b70d0ae7b87a771461a6222ebdb187ba6f300c974768b0ae5966d10e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "46687d985aed8485ab2c71085f82fafb11e69e82e8552cf5d3849c00e64a00a5", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "999ca66d4b5e2790b656e0a7ce42267737577fc7a52b891e97644ec418eff7ec", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ec948ee7e92d0888f92d4a490fdd0afb27fbf6d7aabebe2347a3e8ac82c36db9", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "03ef2386c683707ce741a1c30cb126e8c51a908aa0acc01c3471fafb9baaacd5", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "66a372e03c41d2d5e920df5282dadcec2acae4c629cb51cab850825d2a144cea", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ddf9b157bd4c06c2e4646c9f034f36267a0fbd028bd4738214709de7ea7c548b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "3e795aac9be23d4ad9781c00b153e7603be580602e40e5228e2dafe8a8e3aba1", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "98c461ec5953dfb1b5d5bca5fee0833c8a932383b9e651ca6548e55f1e2c71c3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5c42107b46cb1d36b6f1dee268df125e930b81f9b47b5fa0b7a5f2a42d556c10", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7e32f1251d1e986e9dd98b6ff25f62c06445301b94aeebdf1f4296dbd2b8652f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2f7e328dda700dcb2b72db0f58c652ae926913de27391bd11505fc5e9aae6c33", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "3de7190e4d37da0c316db53a8a60096dbcd06d1a50677ccf11d182fa26882080", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a9d6f87e59b32b02c861aade3f4477d7277c30d43939462b93f48644fa548c58", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2bce8fd2d16a9432110bbe0ba1e663fd02f7d8b8968cd10178ea7bc306c4a5df", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "798bedbf45a8f1e55594e6879cd46023e8767757ecce1d3feaa78d16ad728703", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "62723d5ac66f7ed6885a3931dd5cfa017797e73000d590492988a944832e8bc2", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "03db8e7df7514bf17fc729c87fff56ca99567b9aa50821f544587a666537c233", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9b1f311ba4409968b68bf20b5d892dbd3c5b1d65c673d5841c7dbde351bc0d0b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2d1e8b5431502739fe335ceec0aaded030b0f918e758a5d76f61effa0965b189", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e725839b8f884dab141b42e9d7ff5659212f6e1d7b4054caa23bc719a4629071", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4fa38a0b8ae02507f966675d0a7d230ed67c92ab8b5736d99a16c5fbe2b42036", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "50ec1e8c23bad160ddedf8debeebc722becbddda127b8fdce06c23eacd3fe689", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9a0aea3a113064fd607f41375ade308c035911d3c8af5ae9db89593b5ca9f1f9", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8d643903b58a0bf739ce4e6a8b0e5fb3fbdfaacbae50581b90803934b27d5b89", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "19de2915ccebc0a1482c2337b34cb178d446def2493bf775c4018a4ea355adb8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9be8fc03c8b5392cd17d40fd61063d73f08d0ee3457ecf075dcb3768ae1427bd", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a2d89a8dc5a993514ca79585039eea083a56822b1d9b9d9d85b14232e4782cbe", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f526f20cae73f17e8f38905de4c3765287575c9c4d9ecacee41cfda8c887da5b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d9ec0978b7023612b9b83a71fee8972e290d02f8ff894e95cdd732cd0213b070", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7ab10c473a058ec8ac4790b05cae6f3a86c56be9b0c0a897771d428a2a48a9f9", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "451d7a93f8249d2e1453b495b13805e58f47784ef2131061821b0e456a9fd0e1", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "21c56fe515d227ed4943f275a8b242d884046001722a4ba81f342a08dbe74ae2", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d8311f0c39381aa1825081c921efde36e618c5cf46258c351633342a11601208", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "6b50c3bcc92dc417047740810596fcb2df2502aa3f280c9e7827e87896da168a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "18a6b318d1e7b31e5749a52be0cf9bbce1b275f63190ef32e2c79db0579328ca", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "6a2d0af2c27b993aa85414f3759898502aa198301bc58b0d410948fe908b07b0", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2da11b6f5c374300e5e66a6b01c3c78ec21b5d3fec0748a28cc28e00be73e006", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "0729691b39c24d222f0b854776b00530877217bfc30aac1dc7fa2f4b1795c536", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ca45bb5c98c474d669f0e47615e4a5ae65d90a2e78531fda7862ee43e687a059", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c1c058b91d5b9a24c95a51aea814b0ad4185f411c38ac1d5eef0bf3cebec17dc", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "3ab0ed4060b8e5b5e594138aab3e7f0262d68ad671d6678bcda51568d4fc4ccc", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e2bf1faba4ff10a6020c41df276411f641d3fdce5c6bae1db0ec84a0bf042106", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "80b0a8fe14d47a71e23d7c3d4dcee9584d4282ef1d843b70cab1a42a4ea1588c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a0f02a73f6e3de48168d14abe33bf5970fdacdb52d7c574e908e75ad571e78f7", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c728002a759d8ec6bccb10eed56184e86aeff0a762c1555b62b5d0fa9d1f7d64", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "586f94e07a295f3d02f847f9e0e47dbf14c16e04ccc172b011b3f4774a28aaea", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "cfe1a0f4ed2df36a2c65ea6bc235dbb8cf6e6c25feb6629989f1fa51210b32e7", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8ba69c9bf6de79c177329451ffde48ddab7ec495410b86972ded226552f664df", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "15111cbe020f8802ad1d150524f974a5251f53d2fe10eb55675f9df1e82dbb62", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "782dc153c56a99c9ed07b2f6f497d8ad2747764966876dbfef32f3e27ce11421", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "cc2db30c3d8bb7feb53a9c9ff9b0b859dd5e04c83d678680930b5594b2bf99cb", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "46909b8c85a6fd52e0807d18045da0991e3bdc7373435794a6ba425bc23cc6be", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e4e511ff63bb6bd69a2a51e472c6044298bca2c27835a34a20827bc3ef9b7d13", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2c86f279d7db3c024de0f21cd9c8c2c972972f842357016bfbbd86955723b223", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "112c895cff9554cf754f928477c7d58a21191c8089bffbf6905c87fe2dc6054f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8cfc293b33082003cacbf7856b8b5e2d6dd3bde46abbd575b0c935dc83af4844", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d2c5c53f85ce0474b3a876d76c4fc44ff7bb766b14ed1bf495f9abac181d7f5f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "3c523f27926905fcbe20b8301a0cc2da317f3f9aea2273f8fc8d9ae88b524819", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9ca0d706f6b039cc52552323aeccb4db72e600b67ddc7a54cebc095fc6f35539", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a64909a9f75081342ddd061f8c6b49decf0d28051bc78e698d347bdcb9746577", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7d8d55ae58766d0d52033eae73084c4db6a93c4630a3e17f419dd8a0b2a4dcd8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b8b5c8ba972d9ffff313b3c8a3321e7c14523fc58173862187e8d1cb814168ac", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9c42c0fa76ee36cf9cc7cc34b1389fbb4bd49033ec124b93674ec635fabf7ffe", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "6184c8da9d8107e3e67c0b99dedb5d2dfe5ccf6dfea55c2a71d4037caf8ca196", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4030ceea7bf41449c1b86478b786e3b7eadd13dfe5a4f8f5fe2eb359260e08b3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7bf516ec5dfc60e97a5bde32a6b73d772bd9de24a2e0ec91d83138d39ac83d04", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e6a6fb3e6525f84edf42ba92e261240d4efead3093aca3d6eb1799d5942ba393", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "45df74648934f97d26800262e9b2af2f77ef7191d4a5c2eb1df0062f55e77891", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "3fe361e4e567f32a53af1f2c67ad62d958e3d264e974b0a8763d174102fe3b29", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "28b520acee4bc6911bfe458d1ad3ebc455fa23678463f59946ad97a327c9ab2b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "121b39b1a9ad5d23ed1076b0db2fe326025150ef476dccb8bf87778fcc4f6dd7", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f791f92a060b52aa043dde44eb60307938f18d4c7ac13df1b52c82a1e658953f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "df09443e7743fd6adc7eb108e760084bacdf5914403b7aac5fbd4dc4e24e0c2c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "eeb4ff4aa06956083eaa2aad59070361c20254b865d986bc997ee345dbd44cbb", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ed84d5043444d51e1e5908f664addc4472c227b9da8401f13daa565f23624b6e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "146bf888b703d8baa825f3f2fb1b7b31bda5dff803e15973d9636cdda33f4af3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b4ec8b7a8d23bdf7e1c31e43e5beac3209deb7571d2ccf2a9572865bf242da7c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "3fba0d61d172091638e56fba651aa1f8a8500aac02147d29bd5a9cc0bc8f9ec2", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a5a57deb0351b03041e0a1448d3a0cc5558c48e0ed9b79b69c99163cdca64ad8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9bcecf0cbc2bfc17e33199864c19549905309a0f9ecc37871146107aac6e05ae", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d6a211db4b4a821e93c978add57e484f2a003142a6aef9dbfa1fe990c66f337b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "bd4d10bd44ce3f630dd9ce44f102422cb2814ead5711955aa537a52c8d2cae14", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "08e4c39ab1e52eea1e528ee597170480405716bae92ebe7a7c529f490afff1e0", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "625bb2bc3867557ea7912bd4581288a9fca4f3423b8dffa1d9ed57fafc8610e3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d1992164ecc334257e0bef56b1fd7e3e1cea649c70c64ffc39999bb480c0ecdf", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a53ff2c4037481eb357e33b85e0d78e8236e285b6428b93aa286ceea1db2f5dc", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4fe608d524954b6857d78857efce623852fcb0c155f010710656f9db86e973a5", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b53b62a9838d3f57b70cc456093662302abb9962e5555f5def046172a4fe0d4e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9866369eb72b6e77be2a92589c9df9be1232a1a66e96736170819e8a1297b61f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "43abfbdf4e297868d780b8f4cfdd8b781b90ecd9f588b05e845192146a86df34", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "582419791241fb851403ae4a08d0712a63d4c94787524a7419c2bc8e0eb1b031", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "18437eeb932fe48590b15f404090db0ab3b32d58f831d5ffc157f63b04885ee5", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "0c5eaedf622d7a8150f5c2ec1f79ac3d51eea1966b0b3e61bfdea35e8ca213a7", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "fac39fc7a9367c0246de3543a6ee866a0cf2e4c3a8f64641461c9f2dac0d8aae", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "3b9f559d0200134f3c196168630997caedeadc6733523c8b6076a09615d5dec8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "932af64286d9723da5ef7b77a0c4229829ce8e085e6bcc5f874cb0b83e8310d4", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "adeb9278f11f5561157feee565171c72fd48f5fe34ed06f71abf24e561fcaa1e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2269fef79b4900fc6b08c840260622ca33524771ff24fda5b9101ad98ea551f3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "73d47498a1b73d5392d40fb42a3e7b009ae900c8423f4088c4faa663cc508886", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7efc34cdc4da0968c3ba687bc780d5cacde561915577d8d1c1e46c7ac931d023", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "3c20a3bb0c50c819419f44aa55acc58476dad4754a16884cef06012d02b0722f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4569abf6bc7d51a455503670f3f1c0e9b4f8632a3b030e0794c61bfbba2d13be", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "98b2297b4dc1404078a54b61758d8643e4c1d7830af724f3ed2445d77a7a2d57", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "952ba89d75f1b589e07070fea2d8174332e3028752e76fd46e1c16cc51e6e2af", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b6c9a2deefb6a57ff68d2a38d33c34407b9939487fc9ee9f32ba3ecf2987a88a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f6b371377bab3018dac2bca63e27502ecbd5d06f708ad7e312658d3b5315d948", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "31947dd8f1c8eeb7841e1f139a493a73bd520f90e59a6415375d0d8e6a031f01", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "95cd83b807e10b1af408e62caf5fea98562221e8ddca9d7ccc053d482283ddda", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "19287d6b76288c2814f1633bdd68d2b76748757ffd355e73e41151644e4773d6", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "fc4e6ec7dade5f9d422b153c5d8f6ad074bd9cc4e280415b7dc58fb5c52b5df1", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "3aea973106e1184db82d8880f0ca134388b6cbc420f7309d1c8947b842886349", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "765e278c464923da94dda7c2b281ece92f58981642421ae097862effe2bd30fa", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "de260bed7f7d25593f59e859bd7c7f8c6e6bb87e8686a0fcafa3774cb5ca02d8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b5c341ce978f5777fbe05bc86f65e9906a492fa6b327bda3c6aae900c22e76c6", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "686ddbfaf88f06b02c6324005042f85317187866ca0f8f4c9584dd9479653344", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7f789c0c1db29dd3aab6e159d1ba82894a046bf8df595ac48385931ae6ad83e0", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8eb3057d4fe9b59b2492921b73a795a2455ebe94ccb3d01027a7866612ead137", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "1e43c5d7aee1c5ec20611e28b5417f5840c75d048de9d7f1800d6808499236f8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d42610a5a2bee4b71769968a24878885c9910cd049569daa2d2ee94208b3a7a5", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f6ed95506a6ed2d40ed5425747529befaa4c35fcbbc1e0d793813f6d725690fa", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a6fcc1cd6583939506c906dff1276e7ebdc38fbe12d3e108ba38ad231bd18d97", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ed13354f0d96fb6d5878655b1fead51722b54875e91d5e53ef16de5b71a0e278", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "1193b4872c1fb65769d8b164ca48124c7ebacc33eae03abf52087c2b29e8c46c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "af682dfabe85688289b420d939020a10eb61f0120e393d53c127f1968b3e9f66", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "0dca04006bf13f72240c6a6a502df9c0b49c41c3cab2be75e81e9b592dcd4ea8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "79d6ac4a2a229047259116688f9cd62fda25422dee3ad304f77d7e9af53a41ef", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "64534c17173990dc4c3d9388d16675a059aac407031cfce8f7fdffa4ee2de988", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ba46d160a192639f3ca9e5b640b870b1263f24ac77b6895ab42960937b42dcbb", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5e5ddd6fc5b590190dde881974ab969455e7fad61012e32423415ae3d085b037", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "1c16fd00c42b60b96fe0fa62113a953af58ddf0d93b0a49cb4919cf5644616f0", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "eb240c0e6b412c57f7d9a9f1c6cd933642a929837c807b179a818f6e8d3a4e44", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4a7bde5a1155107fc7d9483b8830099f1a6072b6afda5b78d91eb5d6549b3956", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "3c1baaffa9a24cc7ef9eea6b64742394498e0616b127ca630aca0e11e3298006", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "87ca1c31a326c898fa3feb99ec10750d775e1c84dbb7c4b37252bcf3742c7b21", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d7bd26af1f5457f037225602035c2d7e876b80d02663ab4ca644099ad3a55888", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2ad0a6b93e84a56b64f92f36a07de7ebcb910822f9a72ad22df5f5d642aff6f3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "523d1775135260f53f672264937ee0f3dc42a92a39de8bee6c48c7ea60b50b5a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e441b9eebbc1284e5d995d99b53ed520b76a87cab512286651c4612d86cd408e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "76f853ee21425c339a79d28e0859d74f2e53dee2e4919edafff6883dd7b7a80f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "00cf042cd6ba1915648c8d6d2aa00e63bbbc300ea54d28ed087185f0f662e080", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f57e6707d035ab89a03797d34faef37deefd3dd90aa17d90de2f33dce46a2c56", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "cc8b559b2cf9380ca72922c64576a43f000275c72042b2af2415ce0fb88d7077", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "1a337ca294c428ba8f2eb01e887b28d080ee4a4307ae87e02e468b1d26af4a74", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5a15362fc2e72765a908c0d4dd89e3ab3b763e8bc8c23f19234a709ecfd202fe", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2dffdfe62ac8af0943853234519616db6fd8958fc7ff631149fd8364e663f361", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5dbdb2b2229b5547d8177c34705272da5a10b8d0033c49efbc9f6efba5e617f2", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "6fc0498cd8823d139004baff830343c9a0d210c687b2402c1384fb40f0aa461c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8492306a4864a1dc6fc7e0cc0de0ae9279cbd37f3aae3e9dc1065afcdc83dddc", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c011b378127497d6337a93f020a05f726db2c30d55dc56d20e6a5090f05919a6", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f4556979e95a274687ae206bbab2bb9a71c3ad923b92df241d9ab88c184b3f40", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "50e82bb6e238db008b5beba16d733b77e8b2a933c9152d1019cf8096845171a4", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d6011f8b8bbf5163ef1e73588e64a53e8bf1f13533c375ec53e631aad95f1375", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "693cd7936ac7acfa026d4bcb5801fce71cec49835ba45c67af1ef90dbfd30af7", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "195e2cf684ecddfc1f6420564535d7c469f9611ce7a380d6e191811f84556cd2", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "1dc6b6e7b2a7f2962f31c77f4713f3a5a132bbe14c00db75d557568fe82e4311", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "add93b1180e9aaac2dae4ef3b16f7655893e2ecbe62bd9e48366c305f0063d89", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "594bd896fe37c970aafb7a376ebeec4c0d636b62a5f611e2e27d30fb839ad8a5", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b1c6a6faf60542ba4b4271db045d7faea56e143b326ef507d2797815250f3afc", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8c8b165beb794260f462679329b131419e9f5f35212de11c4d53e6d4d9cbedf6", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ee5a4cf57d49fcf977249ab73c690a59995997c4672bb73fcaaf2eed65dbd1b2", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f9f36051f138ab1c40b76b230c2a12b3ce6e1271179f4508da06a959f8bee4c1", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9dc2011a3573d271a45c12656326530c0930f92539accbec3531d65131a14a14", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "091521ce3ede6747f784ae6f68ad2ea86bbda76b59d2bf678bcad2f9d141f629", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "202c2be951f53bafe943fb2c8d1245e35ed0e4dfed89f48c9a948e4d186dd6d4", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c618aead1d799dbf4f5b28df5a6b9ce13d72722000a0ec3fe90a8115b1ea9226", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9b0bf59708549c3e77fddd36530b95b55419414f88bbe5893f7bc8b534617973", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7e216f67c4886f1bde564fb4eebdd6b185f262fe85ad1d6128cad9b229b10354", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "cd51e60b96b4d43698df74a665aa7a16604488193de86aa60ec0c44d9f114951", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b63341fb6c7ba6f2aeabd9fc46b43e6cc2d2b9eec06534cfd583d9709f310ec2", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "be2af50c81b15bcfe54ad60f53eb1c72dae681c72d0a9dce1967825e1b5830a3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "be5366845dfb9726f05005331b9b9645f237f1ddc594c0def851208e8b7d297b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5ddd536aaeadd4bf0f020492b3788ed209a7050ce27abec4e01c7563ff65da81", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e243b24da119c1ef0d79af2a45217e50682b139cb48e7607efd66cc01bd9dcda", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5b1398c8257fd180d0bf62e999fe0a89751c641e87089a83b24392efda720476", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "1588b1359f8507a16dbef67cd2759965fc2e8d305e5b3eb71be5aa9506277dff", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4c99f2524eee1ec81356e2b4f67047a4b7efaf145f1c4eb530cd358c36784423", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b30c6b9f6f30c35d6ef84daed1c3781e367f4360171b90598c02468b0db2fc3d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "79c0d32274ccfd45fae74ac61d17a2be27aea74c70806d22c43fc625b7e9f12a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "1b7e3958f668063c9d24ac75279f3e610755b0f49b1c02bb3b1c232deb958f54", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "779d4022c3d0a4df070f94858a33d9ebf54af3664754536c4ce9fd37c6f4a8db", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e662f063d46aa8c088edffdf1d96cb13d9a2cbf06bc38dc6fc62b4d125fb7b49", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d1d612df1e41c90d9678b07740d13d4f8e6acec2f17390d4ff4be5c889a6d37d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c95933fe140918892d569186f17b70ef6b1162f851a0f13f6a89e8f4d599c5a1", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "1d8d30677f87c13c2786980a80750ac1e281bdb65aa013ea193766fe9f0edd74", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4661673cbc984b8a6ee5e14875a71ed529b64e7f8e347e12c0db4cecc25ad67d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7f980a414274f0f23658baa9a16e21d828535f9eac538e2eab2bb965325841db", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "20fb747a339d3c1d4a032a31881d0c65695f8167575e01f222df98791a65da9b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "dd4e7ebd3f205a11becf1157422f98db675a626243d2fbd123b8b93efe5fb505", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "43ec6b74c8d31e88bb6947bb256ad78e5c6c435cbbbad991c3ff39315b1a3dba", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b27242dd3af2a5548d0c7231db7da63d6373636d6c4e72d9b616adaa2acef7e1", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e0ee7ba0571b83c53a3d6ec761cf391e7128d8f8f590f8832c28661b73c21b68", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "072bfd97fc61c894ef260723f43a416d49ebd8b703696f647c8322671c598873", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e70875232f5d5528f1650dd6f5c94a5bed344ecf04bdbb998f7f78a3c1317d02", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8e495129cb6cd8008de6f4ff8ce34fe1302a9e0dcff8d13714bd5593be3f7898", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "0345bc0b1067588c4ea4c48e34425d3284498c629bc6788ebc481c59949c9037", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e30f5b5d77c891bc16bd65a2e46cd5384ea57ab3d216c377f482f535db48fc8f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f113afe92ee919df8fc29bca91cab6b2ffbdd12e4ac441d2bb56121eb5e7dbe3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "49d567cc002efb337f437675717c04f207033f7067825b42bb59c9c269313d83", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "1d248f707d02dc76555298a934fba0f337f5028bb1163ce59cd7afb831c9070f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5d8debffc9e7b842dc0f17b111673fe0fc0cca65e67655a2b543db2150743385", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5fccbedc3eb3b23bc6a3a1e44ceb110a1f1a70fa8e76941dce3ae25752caa7a9", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f4031b95f3bab2b40e1616bd973880fb2f1a97c730bac5491d28d6484fac9560", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "dbe75b3c5ed547812656e7945628f023c4cd0bc1879db0db3f43a57fb8ec0e2b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b754718a546a1939399a6d2a99f9022d8a515f2db646bab09f7d2b5bff3cbb82", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2eef10fb18ed0b4be450accf7a6d5bcce7b7f98e02cac4e6e793b7ad04fc0d79", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c46f471e172c3be12c0d85d24876fedcc0c334b0dab48060cdb1f0f605f09fed", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7d6ddeead1d208588586c58c26e4a23f0a826b7a143fb93de62ed094d0056a33", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7c5782291ff6e7f2a3593295681b9a411c126e3736b83b37848032834832e6b9", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "3a3f09df6258a657dd909d06d4067ee360cd2dccc5f5d41533ae397944a11828", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ea54615be964503fec7bce04336111a6fa455d3e8d93d44da37b02c863b93eb8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2a83694bc3541791b64b0e57766228ea23d92834df5bf0b0fcb93c5bb418069c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b5913641d6830e7de0c02366c08b1d26063b5758132d8464c938e78a45355979", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "46c095d39c1887979d9494a824eda7857ec13fb5c20a6d4f7d02c2975309bf45", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f6e02ca076dc8e624aa38038e3488ebd0091e2faea419082ed764187ba8a6500", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4d49e8a78aba1d4e0ad32289bf8727ae53bc2def9285dff56151a91e7d770c3e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "63315cf08117cc728eab8f3eec8801a91d2cd86f91d0ae895d7fd928ab54596d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a14a6f3a5636bcaebfe9ec2ccfa9b07dc94deb1f6c30358e9d8ea800a1190d5e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "21206e7e81876dabf2a7af7aa403f343af1c205bdcf7eff24d9d7f4eee6214c4", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "cd0a9f0ffec2486cad86b7ef1e4da42953ffeb0eb9f79f536e16ff933ec28698", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f609a6ec6f1ab04dba769e14d6b55411262fd4627a099e333aa8876ea125b822", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "6d8052bb814be030c64cb22ca0e041fe036ad3fc8d66208170f4e90d0167d354", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "851f72a5d3e8a2bf7eeb84a3544da82628f74515c92bdf23c4a40af26dcc1d16", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "59692a7938aab65ea812a8339bbc63c160d64097fe5a457906ea734d6f36bcd4", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8cb3b95e610c44a9986a7eab94d7b8f8462e5de457d5d10a0b9c6dd16bde563b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f571713abd9a676da6237fe1e624d2c6b88c0ca271c9f1acc1b4d8efeea60b66", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "16c5d3637d1517a3d17ed5ebcfbb0524f8a9997a7b60f6100f7c5309b3bb5ac8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ca1ec669726352c8e9d897f24899abf27ad15018a6b6bcf9168d5cd1242058ab", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "bffb1b39484facf6d0c5d5feefe6c0736d06b73540b9ce0cf0f12da2edfd8e1d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f1663c030754f6171b8bb429096c7d2743282de7733bccd6f67f84a4c588d96e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "dd09693285e58504057413c3adc84943f52b07d2d2fd455917f50fa2a63c9d69", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d94c94593d03d44a03810a85186ae6d61ebeb3a17a9b210a995d85f4b584f23d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c7c3bf625a8cb5a04b1c0a2fbe8066ecdbb1f383d574ca3ffdabe7571589a935", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7a2f39a4467b819e873cd672c184f45f548511b18f6a408fe4e826136d0193bb", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f8a0ae0d3d4993616196619da15da60a6ec5a7dfaf294fe877d274385eb07433", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2cca80de38c80ef6c26deb4e403ca1ff4efbe3cf12451e26adae5e165421b58d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "0070d3e17aa5ad697538bf865faaff94c41f064db9304b2b949eb8bcccb62d34", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "53df93f2db5b7eb8415e98242c1c60f6afcac2db44bce4a8830c8f21eee6b1dd", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d67bf28dc9e6691d165357424c8729c5443290367344263146d99b2f02a72584", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "932557e93fbdf0c36cc29b9e35950f6875425b3ac917fa0d3c7c2a6b4f550078", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e3dc7ec1597fb61de7959335fb7f8340c17bebf2feb1852ed8167a552d9a4a25", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b64e15030511c5049542c2e0300f1fe096f926cf612662884f40227267f5cd9f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "1932796f09c193783801972a05d8fb1bfef941bb46ac76fbe1abb0b3bfb674fa", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d9575d5787311ee7d61ad503f5061ebcfaf76b531cfecce3dc12afb72bb2d105", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5b41d96c9a4c2c2d83f1200949f795c3b6a4d2be432b357ad1ab687e0f0de07c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "38ec829a548e869de4c5e51671245a909644c8fb8e7953259ebb028d36b4dd06", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "20c2c5e44d37dac953b516620b5dba60c9abd062235cdf2c3bfbf722d877a96b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "875fe6f7103cf87c1b741a0895fda9240fed6353d5e7941c8c8cbfb686f072b4", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c0ccccf8fbcf5d95f88ed151d0d8ce3015aa88cf98d4fd5e8f75e5f1534ee7ae", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "1b1f4aba21fd956269ced249b00b0e5bfdbd5ebd9e628a2877ab1a2cf493c919", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "939e3299952dff0869330e3324ba16efe42d2cf25456d7721d7f01a43c1b0b34", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f0a9b52faec508ba22053dedfa4013a61c0425c8b96598cef3dea9e4a22637c6", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d5b302f50db61181adc6e209af46ae1f27d7ef3d822de5ea808c9f44d7d219fd", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "19131632ba492c83e8eeadf91a481def0e0b39ffc3f155bc20a7f640e0570335", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4581c03abea21396c3e1bb119e2fd785a4d91408756209cbeed0de7070f0ab5b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ebcd3b99e17329e9d542ef2ccdd64fddab7f39bc958ee99bbdb09056c02d6e64", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4b148999deb1d95b8aedd1a810473a41d9794655af52b40e4894b51a8a4e6a6d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "1781cc99a0f3b4f11668bb37cca7b8d71f136911e87269e032f15cf5baa339bf", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "33f1b7fa96117d690035a235b60ecd3cd979fb670f5f77b08206e4d8eb2eb521", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "01429b306b94ff0f1f5548ce5331344e4e0f5872b97a4776bd38fd2035ad4764", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c1bc4f2136de7044943d784e7a18cb8411c558dbb7be4e4b4876d273cbd952af", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5470f84a69b94643697f0d7ec2c8a54a4bea78838aaa9170189b9e0a6e75d2cf", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "36aaa44ee26b2508e9a6e93cd567e20ec700940b62595caf962249035e95b5e3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f8343562f283b7f701f86ad3732d0c7fd000c20fe5dc47fa4ed0073614202b4d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a53c572630a78cd99a25b529069c1e1370f8a5d8586d98e798875f9052ad7ad1", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4ad3451d066711dde1430c544e30e123f39e23c744341b2dfd3859431c186c53", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8069cbef9efa7445b2f09957ffbc27b5f8946fdbade4358fb68019e23df4c462", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "cd8b4e7ad04ba9d54eb5b28ac088315c07335b837ee6908765436a78d382b4c3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d533d8f8e5c80a30c51f0cbfe067b60b89b620f2321d3a581b5ba9ac8ffd7c3a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "33f49f22fdda67e1ddbacdcba39e62924793937ea7f71f4948ed36e237555de3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "710c31d7c30437e2b8795854d1aca43b540cb37cefd5900f09cfcd9e5b8540c4", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b2c03a0e9628273bc26a1a58112c311ffbc7a0d39938f3878837ab14acf3bc41", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a93beb0aa992c9b6408e355ea3f850c6f41e20328186a8e064173106375876c2", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "efdcba88fcd5421867898b5c0e8ea6331752492bd3547942dea96c7ebcb65194", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a98e777e7a6c2c32336a017b011ba1419e327320c3556b9139413e48a8460b9a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ea44f7f8e1fe490516803c06636c1b33a6b82314366be1bd6ffa4ba89bc09f86", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c25f22d78cc7f46226179c33bef0e4b29c54912bde47b62e5fdaf9312f22ffcb", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d57579cfedc5a60fda79be303080e47dfe0c721185a5d95276523612228fcefc", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a41630012afe0d4a9ff14707f96a7e26e1154266c008ddbd229e3f614e4d1cf7", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "298a858633dfa361bb8306bbd4cfd74f25ab7cc20631997dd9f57164bc2116d1", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "921782c45e09940feb232d8626a0b8edb881be2956520c42c44141d9b1ddb779", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "06117e4cc7399ce1c2b512aa070043464e0561f956bda39ef8971a2fcbcdbf2e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "daccf332594b304566c7677c2732fed6e8d356da5faac8c5f09e38c2f607a4ab", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4386051a0b6b072f35a2fc0695fecbe4a7a8a469a1d28c73be514548e95cd558", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "78e41de491fe25947a7fd8eeef7ebc8f1c28c1849a90705d6e33f34b1a083b90", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "3ccd198e0a693dd293ed22e527c8537c76b8fe188e1ebf20923589c7cfb2c270", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2ebf2ee015d5c8008428493d4987e2af9815a76e4598025dd8c2f138edc1dcae", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "0dcc8f61382c9fcdafd48acc54b6ffda69ca4bb7e872f8ad12fb011672e8b20c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9db563287eb527ead0bcb9eb26fbec32f662f225869101af3cabcb6aee9259cf", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "068489bec523be43f12d8e4c5c337be4ff6a7efb4fe8658283673ae5aae14b85", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "838212d0dc5b97f7c5b5e29a89953de3906f72fce13c5ae3c5ade346f561d226", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ddc78d29af824ad7587152ea523ed5d60f2bc0148d8741c5dacf9b5b44587b1b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "019b522e3783e5519966927ceeb570eefcc64aba3f9545828a5fb4ae1fde53c6", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b34623cc86497a5123de522afba770390009a56eebddba38d2aa5798b70b0a87", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d2a8cbeb0c0caaf531342062b4b5c227118862879f6a25033e31fad00797b7eb", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "14891c20f15be1d0d42ecbbd63de1c56a4d745e3ea2b4c56775a4d5d36855630", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e55a1f6b198a39e38a3cea3ffe916aab6fde7965c827db3b8a1cacf144a67cd9", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f7910ccfe56131e99d52099d24f3585570dc9df9c85dd599a387b4499596dd4d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9409ac347c5779f339112000d7627f17ede6e39b0b6900679ce5454d3ad2e3c9", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "22dfe27b0aa1c669ce2891f5c89ece9be18074a867fe5dd8b8eb7c46be295ca1", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "684a5c26ce2bb7956ef6b21e7f2d1c584172cd120709e5764bc8b89bac1a10eb", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "93761e39ce9d3f8dd58c4327e615483f0713428fa1a230883eb812292d47bbe8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c66be51e3d121c163a4e140b6b520a92e1a6a8a8862d44337be682e6f5ec290a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "66e486a9c9a86154dc9780f04325e61741f677713b7e78e515938bf54364fee2", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d211bc80b6b6e98445df46fe9dd3091944825dd924986a1c15f9c66d7659c495", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8dd2b72f5e9bf88939d066d965144d07518e180efec3e2b6d06ae5e725d84c7d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "949cb88e315ab1a098c3aa4a8b02496a32b79c7ef6d189eee381b96471a7f609", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "bc43af2a5fa30a36be4a3ed195ff29ffb8067bf4925aa350ace9d9f18f380cc2", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "36844f94161a10af6586f50b95d40baa244215fea31055f27bcbea42cd30373e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8428e71f6d1b63acf55ceb56244aad9cf07678cf9626166e4aded15e3d252f8a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "11505212ab24aa0f06d719a09add4be866e26f0fc15e96a1a2a8522c0c6a73a8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "55828c4ddfee3bc66d533123ff52942ae67a2115f7395b2a2e0a22cea3ca64e7", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c44bb0071cededc08236d57d1131c44339c1add98b029a95584dfe1462533575", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7a4935af71877da3bbc53938af00e5d4f6d445ef850e1573a240447dcb137b5c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4e313033202712168ecc70a6d830964ad05c9c93f81d806d7a25d344f6352565", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8a1fc69eaf8fc8d447e6f776fbfa0c1b12245d7f35f1dbfb18fbc2d941f5edd8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "afb9b4c8bd38fb43d38a674de56e6f940698f91114fded0aa119de99c6cd049a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "1d277860f19b8825d027947fca9928ee1f3bfaa0095e85a97dd7a681b0698dfc", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "6d32122bb1e7c0b38b6f126d166dff1f74c8020f8ba050248d182dcafc835d08", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "cfac5627d337b82d2fbeff5f0f638b48a370a8d72d653327529868a70c5bc0f8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8a826bc18afa4c5ed096ceb5d923e2791a5bae802219e588a999f535b1c80492", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "73e94021c55ab908a1b8c53792e03bf7e0d195fee223bdc5567791b2ccbfcdec", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5f73eb47b37f3a957fe2ac6fe654648d60185908cab930fc01c31832a5cb4b10", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "cb6372a2460010a342ba39e06e1dcfd722e696c9d63b4a71577f9a3c72d09e0a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "1e289698069f553f36bbf12ee0084c492245004a69409066faceb173d2304ec4", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f1ca71145e5c3bba4d7f731db295d593c3353e9a618b40c4af0a4e9a814bb290", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ac12a6010ff501e641f5a8334b8eaf521d0e0739a7e254451b6eea924c3035c7", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "97395d1e03af4928f3496cc3b118c0468b560765ab896ce811acb86f6b902b5c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7dcfbd6a9f1ce1ddf3050bd469aa680e5259973b4522694dc6291afe20a2ae28", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "6e545419ad200ae4614f8e14d32b7e67e039c26a872c0f93437b0713f54cde53", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "efc225581aae9bb47d421a1b9f278db0238bc617b257ce6447943e59a2d1621e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8833b88e26156b685bc6f3d6a014c2014a878ffbd240a01a8aee8a9091014e9c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7a2a42a1ac642a9c28646731bd77d9849cb1a05aa1b7a8e648f19ab7d72dd7dc", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4d371c53067a3cc1a882ff16432b03291a016f4834875b77169a2d10bb1b023e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "99b38f72e30976fd1946d7b4efe91aa227ecf0c9180e1dd6502c1d39f37445b4", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "df1bcf0b1c413e2945ce63a67a1c5a7b21dbbec156a97d55e9ea0eed90d2c604", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "6e2011a859fa435b1196da1720be944ed59c668bb42d2f2711b49a506b3e4e90", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b4bfa90fac90c6e0d0185d2fe22f059fec67587cc34281f62294f9c4615a8082", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "036d363e409ebe316a6366aff5207380846f8f82e100c2e3db4af5fe0ad0c378", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5ae6642588e4a72e5a62f6111cb750820034a7fbe56b5d8ec2bcb29df806ce52", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "6fca09e1abc83168caf36b751dec4ddda308b5714ec841c3ff0f3dc07b93c1b8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2f7268e6ac610c7122b6b416e34415ce42b51c56d080bef41786d2365f06772d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9a07957f75128ed0be5fc8a692a14da900878d5d5c21880f7c08f89688354aa4", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8b6f3ae84eab35c50cf0f1b608c143fe95f1f765df6f753cd5855ae61b3efbe2", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "992491d83ff2d1e7f64a8b9117daee73724af13161f1b03171f0fa3ffe9b4e3e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "12bcf6af851be8dd5f3e66c152bb77a83829a6a8ba8c5acc267e7b15e11aa9ab", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e2704efc7423b077d7d9a21ddb42f640af1565e668d5ec85f0c08550eff8b833", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e0513c71fd562f859a98940633830a7e5bcd7316b990310e8bb68b1d41d676a3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "712071b9066a2d8f4e11c3b8b3d5ada6253f211a90f06c6e131cff413312e26d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5a187a7bc1e7514ef1c3d6eaafa470fc45541674d8fca0f9898238728d62666a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "0c06897f7ab3830cef0701e0e083b2c684ed783ae820b306aedd501f32e9562d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "56cc6eae48fd08fa709cf9163d01649f8d24d3fea5806f488d2b1b53d25e1d6c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "57a925b13947b38c34277d93fb1e85d6f03f47be18ca5293b14082a1bd4a48f5", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9d9d64c1fa76211dd529b6a24061b8d724e2110ee55d3829131bca47f3fe4838", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c13042e244bb8cf65586e4131ef7aed9ca33bf1e029a43ed0ebab338b4465553", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "54be9b9c71a17cb2519b841fad294fa9dc6e0796ed86c8ac8dd9d8c0d1c3a631", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "10881be85efd595bef1d74dfa7b9a76a5ab1bfed9fb4a4ca7f73396b72d25b90", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "925e71eaa87021d9a1215b5cf5c5933f85fe2371ddc81c32d1191d7842565302", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "faed0b3f8979bfbfb54babcff9d91bd51fda90931c7716effa686b4f30a09575", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "53c72d68328780f711dbd39de7af674287d57e387ddc5a7d94f0ffd53d8d3564", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "51129924d359cdebdccbf20dbabc98c381b58bfebe2457a7defed57002a61316", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7270a757071e3bc7b5e7a6175f1ac9a4ddf4de09f3664d80cb8805138f7d365b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ea7b5c6a79a6511cdeeedc47610370be1b0e932e93297404ef75c90f05fc1b61", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "edf3caf6631c99fc347445f3e29de37c71435135fe7566a09e989b0fa714ce05", + "signature": false + }, + { + "version": "41a9217dae164360b7f0816ce260ce12ab291a662b5852d3e14702d8498df934", + "signature": "91c72009f2653bb8f1706fffa15622adf3acd53f81cf0defb8703f268e7ab9d8" + }, + { + "version": "e516240bc1e5e9faef055432b900bc0d3c9ca7edce177fdabbc6c53d728cced8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5402765feacf44e052068ccb4535a346716fa1318713e3dae1af46e1e85f29a9", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e16ec5d4796e7a765810efee80373675cedc4aa4814cf7272025a88addf5f0be", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "1f57157fcd45f9300c6efcfc53e2071fbe43396b0a7ed2701fbd1efb5599f07f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9f1886f3efddfac35babcada2d454acd4e23164345d11c979966c594af63468b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a3541c308f223863526df064933e408eba640c0208c7345769d7dc330ad90407", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "59af208befeb7b3c9ab0cb6c511e4fec54ede11922f2ffb7b497351deaf8aa2e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "928b16f344f6cddaba565da8238f4cf2ddf12fe03eb426ab46a7560e9b3078fa", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "120bdf62bccef4ea96562a3d30dd60c9d55481662f5cf31c19725f56c0056b34", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "39e0da933908de42ba76ea1a92e4657305ae195804cfaa8760664e80baac2d6a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "55ce6ca8df9d774d60cef58dd5d716807d5cc8410b8b065c06d3edac13f2e726", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "788a0faf3f28d43ce3793b4147b7539418a887b4a15a00ffb037214ed8f0b7f6", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a3e66e7b8ccdab967cd4ada0f178151f1c42746eabb589a06958482fd4ed354e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "bf45a2964a872c9966d06b971d0823daecbd707f97e927f2368ba54bb1b13a90", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "39973a12c57e06face646fb79462aabe8002e5523eec4e86e399228eb34b32c9", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f01091e9b5028acfb38208113ae051fad8a0b4b8ec1f7137a2a5cf903c47eefc", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b3e87824c9e7e3a3be7f76246e45c8d603ce83d116733047200b3aa95875445b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7e1f7f9ae14e362d41167dc861be6a8d76eca30dde3a9893c42946dc5a5fc686", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9308ef3b9433063ac753a55c3f36d6d89fa38a8e6c51e05d9d8329c7f1174f24", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "cd3bb1aa24726a0abd67558fde5759fe968c3c6aa3ec7bad272e718851502894", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "1ae0f22c3b8420b5c2fec118f07b7ebd5ae9716339ab3477f63c603fe7a151c8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "919ff537fff349930acc8ad8b875fd985a17582fb1beb43e2f558c541fd6ecd9", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4e67811e45bae6c44bd6f13a160e4188d72fd643665f40c2ac3e8a27552d3fd9", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "3d1450fd1576c1073f6f4db9ebae5104e52e2c4599afb68d7d6c3d283bdbaf4f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c072af873c33ff11af126c56a846dfada32461b393983a72b6da7bff373e0002", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "de66e997ea5376d4aeb16d77b86f01c7b7d6d72fbb738241966459d42a4089e0", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d77ea3b91e4bc44d710b7c9487c2c6158e8e5a3439d25fc578befeb27b03efd7", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a3d5c695c3d1ebc9b0bd55804afaf2ac7c97328667cbeedf2c0861b933c45d3e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "270724545d446036f42ddea422ee4d06963db1563ccc5e18b01c76f6e67968ae", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "85441c4f6883f7cfd1c5a211c26e702d33695acbabec8044e7fa6831ed501b45", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "0f268017a6b1891fdeea69c2a11d576646d7fd9cdfc8aac74d003cd7e87e9c5a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9ece188c336c80358742a5a0279f2f550175f5a07264349d8e0ce64db9701c0b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "cf41b0fc7d57643d1a8d21af07b0247db2f2d7e2391c2e55929e9c00fbe6ab9a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "11e7ddddd9eddaac56a6f23d8699ae7a94c2a55ae8c986fdabc719d3c3e875a1", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "dd129c2d348be7dbf9f15d34661defdfc11ee00628ca6f7161bead46095c6bc3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c38d8e7cfc64bbfc14a63346388249c1cfa2cc02166c5f37e5a57da4790ce27f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "69449b625f80f67aaf300ffc05433236854f11e88734dcd034bd25f749c2b54b", + "signature": false + }, + { + "version": "56208c500dcb5f42be7e18e8cb578f257a1a89b94b3280c506818fed06391805", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "0c94c2e497e1b9bcfda66aea239d5d36cd980d12a6d9d59e66f4be1fa3da5d5a", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "eb9271b3c585ea9dc7b19b906a921bf93f30f22330408ffec6df6a22057f3296", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "aa4a927d0c7239dff845a64e676c71aeed2bbda89a7fb486baab22eb7688ba1d", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "340a990742a00862049b378aaa482b5bb8323d443c799dded51ce711f4f8eb51", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "89eeeebbc612a079c6e7ebe0bde08e06fbc46cfeaebf6157ea3051ed55967b10", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "4c72f66622e266b542fb097f4d1fe88eb858b88b98414a13ef3dd901109e03a1", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "23a933d83f3a8d595b35f3827c5e68239fb4f6eb44e96389269d183fe7ff09ba", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "2acad3ae616a9fb5a8c3d4d7bb5edb11d1d0102372ee939e7fc64359fec4046e", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "c812eabb7d2e13c8e72e216208448f92341a4094dd107cbb0bdb2cb23d1a83e7", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "f734b58ea162765ff4d4a36f671ee06da898921e985a2064510f4925ec1ed062", + "signature": false, + "affectsGlobalScope": true, + "impliedFormat": 1 + }, + { + "version": "55c0569d0b70dbc0bb9a811469a1e2a7b8e2bab2d70c013f2e40dfb2d2803d05", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "37f96daaddc2dd96712b2e86f3901f477ac01a5c2539b1bc07fd609d62039ee1", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "9c5c84c449a3d74e417343410ba9f1bd8bfeb32abd16945a1b3d0592ded31bc8", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "a7f09d2aaf994dbfd872eda4f2411d619217b04dbe0916202304e7a3d4b0f5f8", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "a66ebe9a1302d167b34d302dd6719a83697897f3104d255fe02ff65c47c5814e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a7f23fecdccf1504dae27c359db676d0a1fbaaeb400b55959078924e4c3a4992", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "bee66a62aa1da254412bb2c3c8c1a0dd12efea0722d35cc6ea7b5fdaa6778fd1", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "05d80364872e31465f8a1eaf2697e4fc418f78aa336f4cea68620a23f1379f6f", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "7345ba3b9eb2182d8cdc4c961b62847c3c9918985179ddefd5ca58a80d8b9e6a", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "81c4a0e6de3d5674ec3a721e04b3eb3244180bda86a22c4185ecac0e3f051cd8", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "39975a01d837394bcac2559639e88ecdc4cfd22433327b46ea6f78eb2c584813", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "7261cabedede09ebfd50e135af40be34f76fb9dbc617e129eaec21b00161ae86", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "ea554794a0d4136c5c6ea8f59ae894c3c0848b17848468a63ed5d3a307e148ae", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "2c378d9368abcd2eba8c29b294d40909845f68557bc0b38117e4f04fc56e5f9c", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "9b048390bcffe88c023a4cd742a720b41d4cd7df83bc9270e6f2339bf38de278", + "signature": false, + "affectsGlobalScope": true, + "impliedFormat": 1 + }, + { + "version": "c60b14c297cc569c648ddaea70bc1540903b7f4da416edd46687e88a543515a1", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "acfa00e5599216bcb8c9f3095e5fec4aeddfcc65aabe0eac7e8dbc51e33691c9", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "922d8f0f46dbe9fb80def96f7bcd9d5c1a6c0022d71023afa9eb7b45189d61f2", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "90588fb5ef85f4a8a4234e8062eb97bd3c8114dfb86a0c67f62685969222da8b", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "6ce50ada4bc9d2ad69927dce35cead36da337a618de0a2daaaeeafe38c692597", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "13b8d0a9b0493191f15d11a5452e7c523f811583a983852c1c8539ab2cfdae7c", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "8932771f941e3f8f153a950c65707d0611f30f577256aa59d4b92eda1c3d8f32", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "df6251bd4b5fad52759bfe96e8ab8f2ce625d0b6739b825209b263729a9c321e", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "846068dbe466864be6e2cae9993a4e3ac492a5cb05a36d5ce36e98690fde41f4", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "94c8c60f751015c8f38923e0d1ae32dd4780b572660123fa087b0cf9884a68a8", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "db8747c785df161ef65237bac36a7716168e5ebf18976ab16fd2fff69cf9c6ce", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "3085abdf921a6d225ad037c89eb2ba26a4c3b2c262f842dd3061949d1969b784", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "8e8f7b36675be31c4e9538529c30a552538c42ff866ba59fe70f23ba18479c5a", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "f4f7fbf0e5bf2097ddee2c998cca04b063f6f9cdcb255e728c0e85967119f9e5", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "c5b47653a15ec7c0bde956e77e5ca103ddc180d40eb4b311e4a024ef7c668fb0", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "223709d7c096b4e2bb00390775e43481426c370ac8e270de7e4c36d355fc8bc9", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "0528a80462b04f2f2ad8bee604fe9db235db6a359d1208f370a236e23fc0b1e0", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "17fb3716df78592be07500e9a90bd8c9424dd70c6201226886a8e71b9d2af396", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "82ef7d775e89b200380d8a14dc6af6d985a45868478773d98850ea2449f1be56", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "b86720947f763bbb869c2b183f8e58bca9fa089ed8f9c5a1574b2bea18cfbc02", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "fb7e20b94d23d989fa7c7d20fccebef31c1ef2d3d9ca179cadba6516e4e918ad", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "8326f735a1f0d2b4ad20539cda4e0d2e7c5fc0b534e3c0d503d5ed20a5711009", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "8d720cd4ee809af1d81f4ce88f02168568d5fded574d89875afd8fe7afd9549e", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "df87c2628c5567fd71dc0b765c845b0cbfef61e7c2e56961ac527bfb615ea639", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "659a83f1dd901de4198c9c2aa70e4a46a9bd0c41ce8a42ee26f2dbff5e86b1f3", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "1db5c2491eebd894eb9be03408601cddfe1b08357d021aeb86c3fb6c329a7843", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "224f85b48786de61fb0b018fbea89620ebec6289179daa78ed33c0f83014fc75", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "05fbfcb5c5c247a8b8a1d97dd8557c78ead2fff524f0b6380b4ac9d3e35249fb", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "322f70408b4e1f550ecc411869707764d8b28da3608e4422587630b366daf9de", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "acb93abc527fa52eb2adc5602a7c3c0949861f8e4317a187bb5c3372f872eff4", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "c4ef9e9e0fcb14b52c97ce847fb26a446b7d668d9db98a7de915a22c46f44c37", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "0e447b14e81b5b3e5d83cbea58b734850f78fb883f810e46d3dedba1a5124658", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "045f36d3a830b5ae1b7586492e1a2368d0e4b4209fa656f529fd6f6bb9ac7ced", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "929939785efdef0b6781b7d3a7098238ea3af41be010f18d6627fd061b6c9edf", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "fca68ac3b92725dbf3dac3f9fbc80775b66d2a9c642e75595a4a11a2095b3c9a", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "245d13141d7f9ec6edd36b14844b247e0680950c1c3289774d431cbbd47e714e", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "4326dc453ff5bf36ad778e93b7021cdd9abcfc4efe75a5c04032324f404af558", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "27b47fbd2f2d0d3cd44b8c7231c800f8528949cc56f421093e2b829d6976f173", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "0795a213434963328e8b60e65a9d03a88efc138ae171bbcca39d9000c040e7a4", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "fc745bebefc96e2a518a2d559af6850626cada22a75f794fd40a17aae11e2d54", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "2b0fe9ba00d0d593fb475d4204214a0f604ad8a56f22a5f05c378b52205ef36b", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "3d94a259051acf8acd2108cee57ad58fee7f7b278de76a7a5746f0656eecbff6", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "46097d076be332463ea64865c41d232865614cf358a11af75095dd9cef2871cc", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "6e18a70a7c64e6fe578a8f3ecc1dd562cd0bf6843bbf8e65fde37cf63b9a8ea8", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "3f3526aea8d29f0c53f8fb99201c770c87c357b5e87349aca8494bfd0c145c26", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "6ee92d844e5a1c0eb562d110676a3a17f00d2cd2ea2aaaff0a98d7881b9a4041", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "b9dc36d1f7c5c2350feafb55c090127104e59b7d2a20729b286dab00d70e283d", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "45d3f1d53fa99783a5e3c29debb065d6060d0db650a6a1055308a8619bd6b263", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "a14febaf38fd75a88620a0808732cf9841afc403da2dc3de7a6fc9a49d36bdbc", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "6052522a593f094cfee0e99c76312a229cf2d49ac2e75095af83813ec9f4b109", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "a0ceb6ce93981581494bae078b971b17e36b67502a36a056966940377517091d", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "a63ce903dd08c662702e33700a3d28ca66ed21ac0591e1dbf4a0b309ae80e690", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "2b63d2725550866e0f2b56b2394ce001ebf1145cb4b04dc9daa29d73867b878c", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "e885933b92f26fa3204403999eddc61651cd3109faf8bffa4f6b6e558b0ab2fa", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "bd834465d4395ac3d8d55e94bf2a39c1f5e9be719c99340957b3b6a3a85ec66a", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "0b1238c0e3536321ae822c84216614bad2f3a7bd3f1de5c6ec8a85b26d900e6b", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "6e2d2b63c278fd1c8dd54da2328622c964f50afa62978ed1a73ccd85e99a4fc7", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "e151e41c82004cf09b7ea863f591348c9035e0f7a69d4189cbac89cc9611b89d", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "74d62eb5f24ae3e1fa7374380fa6ef354449757293c7434d00b702b1c7f87249", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "b83ffe71adbac91c5596133251e5ec0c9e6664017ee5b776841effe93de8f466", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "61ecf051972c69e7c992bab9cf74c511ecba51b273c4e1590574d97a542bd4ea", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "068f5afbae92a20a5fcd9cfce76f7b90de2c59a952396b5da225b61f95a1d60a", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "bdf5e07a22e661de2c7115e8364b98ef399c24c9fe62035dc1ac945a9dd3372a", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "4e024e2530feda4719448af6bdd0c0c7cfa28d1a4887900f4886bec70cd48fea", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "99c88ea4f93e883d10c04961dbf37c403c4f3c8444948b86effec0bf52176d0e", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "e88f3729fcc3d38d2a1b3cdcbd773d13d72ea3bdf4d0c0c784818e3bfbe7998d", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "f25b1264b694a647593b0a9a044a267098aaf249d646981a7f0503b8bb185352", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "964d0862660f8e46675c83793f42ab2af336f3d6106dee966a4053d5dc433063", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "292ad4203c181f33beb9eb8fe7c6aaae29f62163793278a7ffc2fcc0d0dbed19", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "4e04e6263670ad377f2f6bcd477def099ac3634d760ee8a7cca74a6f39d70a48", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "f1a4ca3688d951daa2d7740da5a0827fa34d4a7709eed7b8225215986ee87108", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "7879a9ca9f953587b6d1471d5b9c7ed0d9852f1a30e9c5b6a7227a7bb7a0894d", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "f8453a3fe0fe49ab718357120bec2b8205e15eb91ff62eada60a4780458fa91e", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "06f186bb9a6408ef8563dbf17d53cbe23e68422518b49b96afac732844ddbaa1", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "525f9c06245b5b43b1237cfd757396fd7fd8090e5d6a4ded758c7ce17a04bf42", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "04bc74b8fa987f140989e9f4d6dc37f04a307417af3e0a3767baa1eef4964e10", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "6a9d3aa58228faa62ec3d9e305f472a24441f22a8d028234577beb592ec295b2", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "683e2d454f64394931d233740b762dabc379e3ce5c4c4ad4747cdbd6d5fd8e8d", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "18594ddc7900f3e477645819bce4d824989ad296e3d70bdcdce13cabc5d97335", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "9376cce4d849f1d6ad2cb0048807c77cfeb78cee6e29b61dcfe74c7ab2980e18", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "2698935791615907eb632186119dfc307363d6a163f26017084009e44ea261f2", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "4edfc4848068bf58016856dfeb27341c15679884575e1a501e2389a1fea5c579", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "0c3d7a094ef401b3c36c8e3d88382a7e7a8b1e4f702769eba861d03db559876b", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "d3c3280f081f28e846239d27c2f77a41417e6a19f39267d20a282fd07ef36b96", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "7e3a4800683a39375bc99f0d53b21328b0a0377ab7cbb732c564ca7ca04d9b37", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "c777b498a93261d6caa5dbd1187090b79f0263a03526c64ea4f844a679e8299e", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "b4677e9d8802a82455a0f03a211b85f5d4b04cfbc89fc9aa691695b8e70df326", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "7cb0d946957daea11f78a31b85de435e00bcd8964eba66d3e8056ba9d14b9c55", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "b3e441cdb9d9e55e6e120052fe8bf2a8b5e5a46287f21d5bc39561594574e1a9", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "0870e8eb0527c044e844a1d83127f020aa7f79048218a62b2875e818355f8cb2", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "6b7446f89f9e5d47835117416e6d7656bac2bf700513d330254ae979260ce99f", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "9750752db342b88df1b860958a20fac9fd6a507f67c5cfb6bd5cfa8759338b1e", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "946de511c5e04659d9dfaf5ef83770122846d26d3ffe30e636d3339482bbf35a", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "fbcc201a8fc377a92714567491e3f81e204750b612d51a1720af452f1a254760", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "6dd704b0ba0131eb9e707aeedc39be6a224b4669544e518217a75eb7f5dd65c2", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "6effa89f483e5c83c0e0063df5f1d8b006d9d0f1de7eed2233886642424dc8fb", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "84a8c844f9562da8994c07b44dd2777178a147e06020c62a7f6e349e695e7149", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "d43130c35762a80da2299f8b59a4321b6e64acfb0b11a36183379b4c7b83314b", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "6bf44b890824799af8e20c0387ffa987e890fac5c5954a3a7352351eefe55d5d", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "892b19153694b7a3c9a69bcedb54e1c8ad3b9fa370076db4d3522838afd2cd60", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "5461fca70947a4d8fa272d3dda4c729317cec825141313352adf33bc94de142a", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "f83afa274e0f11860c6609198ecca220f5df60690923b990ca06cae21771016e", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "af31f37264ea5d5349eec50786ceca75c572ed3be91bdd7cb428fdd8cd14b17c", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "85e4673ec8507aef18afd4a9acfae0294bdfaac29458ede0b8b56f5a63738486", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "40683566071340b03c74d0a4ffa84d49fedb181a691ce04c97e11b231a7deee4", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "81c8ab81daa2286241ad27468d6fc7ad3ecc62da04b18b77ce9b9b437f6b0863", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "f158721f7427976b5510660c8e53389d5033c915496c028558c66caaf3d1db1c", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "8e56db8febfe127a9142435940c9a5a1ad17ddb2b2a6d8e9e8984785a76db1fd", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "6113c2f172a875db117357f0aa35aa7c1b6316516e813977ef98dc3b4b8baf2a", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "f25c9802b1316afbf667dd8fa6db4ed23aa5e7acc076a1054ca45d7bc9c8e811", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "e99285f74c22ad823c0b9fac55316b84144e15eb91830034badd9eb0fafe71bf", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "c71e746211324b26672f056d7041da9ca5805e6410d446100e50cc676a2c7952", + "signature": false + }, + { + "version": "c8b25eeaa4e754d517cfab854564aa7093bf03143f481f8e4b9f435eb7f97ccc", + "signature": "08f982c6c06fe3211ea4a7e0411898c559bbd677c988fdb6727f5042f61a8b45" + }, + { + "version": "10f9c8808d08b3c3950d0cb564e426b92b67e9e72a1bb05d58abcc2438bf6b56", + "signature": false + }, + { + "version": "7459d85c80f2971be954b562724106b13d5a2a57e8bfde51723e94e838f6fcbf", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c24ab9ac84d65b417a807ada25456697bb2adf1189fa80cb240625dfb3e61c42", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2f0fa19ebe34e7d2cf7823063555ee4439857c69edb03b6a705b97ce95a69070", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "959ffb2edd511f72c17bb07c9192443bc512f7dd707b0127c513ef3fe13b397f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4a950137dbff496fdca742066964f48efdaa748794668dd552419d43a6125603", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4b15cc0373f1ca84bdb230115a283869f9016d7246b22ee76d2b93af5d2f1004", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4d857105510df8011cfb5b3769dec55624a1df92e85d399cd03bc82bb89d090c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "0027415abaae3a127e25fabad82bb581b09d89235c553a1eb847fa14faf69bc9", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2e10e08e6ab5ebb88025cb0309457f86f59af9e4ae87186df0d096b53802445c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "21e5c69ad89ff162b5de9fee105994d98d63fa3fe7a5673ba8fe8e366a75d7da", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "cfaf4f60b3290259d7cb24e27644fe868da003713f3f389602e6607ed7a9b1c6", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "61d1912d86dffc312be80f1126bd65f1f6dd2e3ca6b4539eb029a209a77f408f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "97bc6fd88a4a101f9132ae93bc684a0c195a4ee401eab1492c6248f6bf012375", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "00ec6732d15b24c301e967de238c4a75cf7b8b87d5b0e9924052d0bc97978193", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "eb7f907ec09c730f66cfaef2aee237c86e43eed68bcb794db7f81fcecb01c577", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "59a69685139ba76cc6e0c9a0a596ac5aff1041f3874949c5e89decb555e43cff", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "144a4e5780b800c0553949169f50be285eccbdb0298afd83ef2ae03fef77e2d2", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "66aeb47bf8638d6767f7b4ff684c2d794391c981590073025e98f98e1afed499", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "26748898fec8579096c776866e8e6f07754845b3d08f5ae98c3a59baa9e85c2e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "6d805abd62920edbd9ed4b20be26d040d01529f3ce53fdab9ca4d0fa9b589f02", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9cb3e4826879023518628e2d6b3cc936a1dc1c558e3e65c450263886dd060703", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7009f30d921edd039a57942d50060fd7f856159384075a53e6405a5c03fd603f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "97b02501eb45f487174d5a0ff89b6a95690d50e9eae242e2162118edd5f2705c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2b4276dde46aa2faf0dd86119999c76b81e6488cd6b0d0fcf9fb985769cd11c0", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "38d4cff03e87dc58bfd50ffe5a3fb25e6e6d4136a1282883285baf71d35967c5", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5ecea63968444d55f7c3cf677cbec9525db9229953b34f06be0386a24b0fffd2", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "6ea9c8bf2ae4d47a0dbc2a1f9ac1e36c639b2ac9225c4d271c2f63a2faf24831", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a3d603c46b55d51493799241b8a456169d36301cc926ff72c75f5480e7eb25bf", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ad98c359284db8c984e88949b2c3394e4a35158880767b772491489788a6c5a0", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5c117cca0b75ed634fe3085142a931df2e2214e26f2bbcb34c592b767f13c1e8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "773c18e2bcc18598df8f8b2be930eb26b22608edf368e42e9ca3484828ec4122", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c385a1392fbde5ad2e29d1bda89b5438ba11d99f03108d4465cb3af50a26fdff", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "425a03d68f43164e0214b1c333cd58e777d4186f412b530467c18ef0d2b37a80", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "26cfaec143443411bc7d5363f274f885ced430b8f4bee25a81f7827248848d7b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f9a591e5fe0be6728cc84e70325aacafffcf203b051ddef37d65651b43c05056", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4594572155e436ee22bff36cd0c41990b644797530e1d5ac0ae44d7bd9a9b6d7", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "de8b4c367880fe92a0a740b706f08a46d1cf9e3981d55c2701e82423e81ef0ef", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4a056a71ffda9ff3f2adec60c0189c906f7e46976a0c6650fa196674ff8c4dff", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "3a3fd6f5ca85ceeb293f2a010125f9455404958122b6dd0ba0b34f7dab74feb5", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "42b58bc8da11e9181ecf4ac498d41c74930c73c8ebef091474d0f8cf971b50ac", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "0458fbed073aeebfe0ce055b9bcc450627f5fc9aaec7634a6b9c44ff10431d8e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "fc30f37a98ab20a8db1309801095f4f7234f4840f0a9281dc63251e9dd75fad1", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "951e9556f7441d86eef0b6160779e2f97c0d43da6110951b4fff87d493143ac7", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d2746ea0021f79365dcff95fc255ac529b6ef7f51981fc8e9cff62e65a2087a6", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9fe94c8f6b36cb41acd30d89567761a52246932dece21e1ce104baa2e84b07ac", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d0d58671b91fad1b24b87186a81bac181d07a6d61c58dc067f79b38c8c1e2b88", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c5aa3449a1a90686b5bb9e9c389b88e9a6fd8ed410289fff3c8d9359e4d510aa", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e96bd939a55117abe6ccbc02839f2f4d9ce3893368fea528ca91c59ebddf496f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "81f6bf27eedb1ed92466abfcee33795a6b2304691ae01f42e60f8c76894fade7", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4b05275d33bc4acbc41634e6c38d95da3771c23182ca12c00139b6069c66a15c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "26a0c2d883e1ed55ba00810d957dedcde5d16d637e33063686e2bc3f58a5c64a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b2c697a96a297c1a207d9bc9b3fd4cb92b95bac1c0717c94a364f3590c25fda6", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "bfb900f7de2066a4be644c269285fda8ccca40b065476a27b082173014d00467", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "0817f58fceb66836eb354fb16f1b20093f9bc3d475995b2d20f3621a2e5dd3f0", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7e2b8299e85423435784cc6244e2d559ea862d226e7b0ec871c6a53f88e5139f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8eca47167dadd486582ecd4e41f7fba6ae66cc4a4c5202f1f7acf34129a0dadf", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5f6aa85935176c45e47cfed4d6af31c2c53fa4a24ccb92ea32ff9c9a915a1908", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "fea899959c19f5d41eb556cfb29e0d6722c470463b27036b23e672aaa4da70f5", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "062c0cf9641ca90ff3ad8edc61c2e06299fe6585fb9a4014a8acdf7f11810d51", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "745db40747b91a21d6b87a140dbf26c995545994c87ad2297a4033d6192113a8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5db46b90fabb0e78d84d231fe090aff47e09d2cacb4a38b6b06bc5a2f9c73cb0", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "0eb30dfdea5fb0bc646ece93f7e368e39f63a846c28728eaa3714ae67ebf4a4b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "533fe789a14f6087b274308c257964da60cce305b42f55f5e9483315e5ac19b6", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2a1fc3ab59c5d74c4e7bec3880b98c1e11d48276173b314eaccd9b34c4aceaa7", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "112c5c25a4e75f0bd1bcdda0630afddd634d96f74263c0d0c98a14505577c7ba", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "0751c7fbc7fd80df189156cd8b277d1b537e6b711b316db0b6aa35b9c674a6fa", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d8f7ba1d7a0eb2191ac0b656a4ff4624cc7c615c9f0209760a664aa4f2993ba4", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "62d30429d222ea6faafe408fe136c3a1e9df0cde180b0dba5fa4ebd77c0807ee", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ea2276e4ce7ceab26d8a340f53554db2ace013d85903d7b5e781ace26c3eee41", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "dbe63b3e06a26a1a3e74b407474745d3a9148775f2bf96588863099d64d1e54c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "fd41f8da8f9ee3606b5460e3810572ada02d29726e2f0180fcdac1be260a6da7", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "3bbde357e5d8d70cd29460e158586f4ff7c57e12d4ae997ad5368d6431a5e892", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d2000199162496a4e85e7ddc9ea0ab05286737b6acb6b8390100fac220e8cb77", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "aaebbcd44c28c0e088dda4bd1c94aabc126318a96938dc849c0fc21d5ce0afc7", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "faf9a217d8d237b02ab6d95508d8736ae431bbeb38d98885eb5b8fb6dbe48cec", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d5633ef9a26db101247322db090e95c7b0eef123503cc53099850d35fcb4fe8b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "838c1878bc1ec773ca2b72ecc544d0f5b8913711fa8cb2b7f14cef8259743669", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "74b564cd3da8f83d5e472a5b0cc53bf7e276b25576097cb89e6f67caf95b12dc", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "68333289edbcca548c7f8370f9c1dcb71694136a11f418e38691f05bd2c299ce", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ae3a1d96127f7c759d2b6c466d2f3e96657c830356bde016f89c44075add8da6", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "cce820aba9ba9d1984461c67d0d543d8eba7ea25c6a1be7a47c31cc18907a631", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "6a1e5cea457be906011d1736eea8d0ae82e883cff9fe4a91f3218c5c9cd84e13", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "51b6335f5a8e177306647558a3eefa1f6abe259b283c6462223be3d7d0f33300", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4674cb63fb87b9ccd97b95106de31583132dac5ab544c414e5902d10db34699a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "3ffe7d5bb7b38b8133e65f41e7b17d8799479418fdae3e352c891a64d14f65ac", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "474dcc8f8d16e3b9c43fddd9b1930fbed50d26a66dc75cf17a2888ffc654c0bb", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "cbf0390e81de86db9f6979227deaa5cf4f6bc4df00d1b034716a5adf1044e079", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "136bde95f389f316a60b40bbf0f53c2a30474d8941b3554dba2d246f14dd254b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "be31399eb87d9773cdf0d109ff2af942a6a22c82efdaa3c389102c287c419e8b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "079a563e723579e9f4b37c0a26e88437fae2716e976273425615c939b821cdff", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "667d3df98d1432158d20452fd0c175b0fffade57db9c7cecdd3922567f23c7e8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d16321086fd36596aaf00d9590c2de1812f8204c6f870ac8f0d8fecde70570b5", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "46a2c32879b8082fb031f575977bbdec9f3041167bf8acc9abba34b498e49443", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2d09c2f8b415e6973baa6b314f9023612c47f76fda13d542c711b08eba4b6f6e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f5593ebceb9e3ea81f78c9ea001d8b22e86210a03ba1de9c6d66eaddc667b797", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2c285a3af1b420020956dc9d315bd73861aa943df786143d0aab6580053d0b77", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "fb732d4dfd6387d8efd99f0757c3a68a1664e9b16a0461e4572bb2cf1b1f978b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7804e6d8dd4e50c1ee6b4466eca30dedcff424c04113c23a0083afb5a588b9b8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a79f09851a1353dc376b19bedf96bb7191402ec01890308119f6ab8cb33b9726", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d5897465eb4696de9518faa21172441ee95ce80a0b1d7c8b90dbcf70d3db7e67", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e8d2d8e7bf7eb324f9e5c9f323384d4066f508f7182a0506dbf7336cf70e1f4e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b6bdd50d0e977f5fb48d01ec58387c4ea4ca4061180896d92667a121d8c359ce", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "aaa93af07b03d69f6d7f49380ef42d13b41a2c6169b248c2e07552bb94c08faf", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b62d96002ec0c8710d0e99aa3175434e1df0f22f5a09291b19e5ec05e8a877e6", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d93c145cb04df5d21c2d0f66194700d2f1d6f8e04abe7ef723651e915bc6bc4e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "6e085274a812504f697c8130336ad47a6b249eab56a547a2a34f9b2c294e9a3a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5834c68c6e0f55055514834fe00e65ebe8d0ed8f8e127ab071ce2ced36eb0967", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "433839016857a5a785134d2d5e760fdcc9819d241a3ffb5cb76985e666a34a8c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "fe75ad82fe44452125aba2301647fb1197bd611ecc5857e225d022f9d95469eb", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "23a55ad8067538d0d1cb0b55b1aff47b6a5979b9ef2e46c6e9b0160377a46616", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "66cd137411911fea6db4b352a98279470e386eb3b1cac5db3de1efad678a9015", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f8d95db2d66d268765d447b554dffdb3f1cd2a22e8da7f6f57dfdcad6a19a1e8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "bdceae6ab40835cb0a1fa08e0367ec3fc43cfcecb1840d3a90ea75bcfe605ddf", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e38a172f8912eebc79671e07b81687a304a9d366a47933fde9f97ad79f8ac08a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "42f60dc9ecd3ef8ae7ef6c883f648243cdc645ea7f539d16eb2ce043f9ca3d27", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "6082ee8fee6b3736c8bcd0a1d9dfff7125a406039020316f9512d88ab21b4206", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f6ba66f3f6c4409e878f48161529c585b3c0e687c8917dd8f6c6464fc5cd4f8e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "0366e97d9c966d748ad91b782e8ce843ebb692d93a1d211ef5b84cccbe8f53a8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "aa74551dc1eea3e902560acc832ac63a78ae05fe5f3b04c6813fe2ec57511456", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b86777df5a816b1b1a2b12a017a8ef8f14ea2fb1a533d1e18e956ced70ac9d28", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ce9e6f87c3a69558b58fe849abe2ed9a105cd5195809851d99397395a4442bc0", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8c85110d99da8adc0da3cc811023d6f7e0f6ee28564d10a26b27c190f34e200c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ab95baa99c5dc2a49bd1d1c00d90955088463e675f4eb869008a357b5b02d6fe", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7980ab0dad3e7e1eb6e9873231d45f3860864c84c48608267864e4774c4bf39d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "845b523a3ca13e3fbd496a579aaf51875d60e15ee56f4be60a358dfd87699afe", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "53c3302d92c8cf76bc6557a1f762fc2f7ee6156af5bc7a2ef22c591d53cbc4cf", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "32c98d5e98a05f108f4e405c853db481f83c5a1a9cd6c53870501d8248f9afad", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d7ce891d302b15d9f28cae31eddc6a88be37c290c512fb1247735e7f923b1104", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "147ca4dfd1729f9b34c3c074589cdf518c0b80fd1efa29ef75bdb39507b23153", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ea8f093cdf681d9487034f80323bdd4168c727eb9d5c985f250e3c4488d64639", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "09b8b299789b2ac464776895e96f64cca0ffa6449a178d775adea0401d9b49fb", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "15abcaa279117eb516a90c09c4b60c53fb29c1242c7f67bb1003e0cce06f7d19", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "df506f8ab6bcab64cd24be5e65bcf12b959d1d00cd9127d73afc59ba4062867c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ecb5aeb3771bea2795b5f4c0f79036c061c3a2bfe0b1d5a83d9183a43e38cd9c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8a5ff6c3f290223a222cd540136d2bf4880d1c13d94f62503d7029ff74533b41", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "eabb41775a846406c423449b13eca4e43214c0bab2ab00b4e22b01e39d510023", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "015ed10c7e81ea426199e7d9b92978416f420466088487b25577bea09b469a54", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d5da26af31358a4883edb6112879018b14c7c1fbcc457aa36961b03ee17bedea", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4e93fb2d2c59bbc1f1a5211b36c447efe4d0af568d682ef1e5eb5f84ca6ccc2e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "3d13fe973e92e708ad3dbbf1b2385bb799f8e70c8da71a1ac72fcb5521c8a5e9", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "16f3f66b5182e57c554d0e374e29fdc0a899c1321b3f94fa997d19abf9faf931", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a8d6a3a562196c0a6e193e303ff1b2c6932a6a16a631ce14f2110dcb1667f622", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "556079af6cfdcb562e1a7408e73ac2203ed8fad6cc768d498238b137ac06247d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "17096b785db48bd6b340542cf9752db28508b637e9721022e9993aa15372367a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e177a7a7a17e5d282c4379cc20c3b21f3bcd22abdb88557695eb83c4d51b186b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "49f41e28b536a2a1722017672ef24a0720b2d0a37f66f1a272c7d8595b3b3a39", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "dfa5ecdeea6492f56d1a1b7905fe3fc24a2ab44a5420ca23fc9133da991015e7", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ca359d684454111a2118c60f361166ad3595b74fd7b9c8eea5c7de05d9ba13a3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c61abe93e13d89322bef06b0d2063ffcca5e0c547722fcea7a57c6f435cd58a4", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2ab01a0368f65b3b891e25416ae785dca54808f70d8f6204b99589ed4f7f1d2f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "43b5886036965659dae63950130d2aa6c4728c336fe1ffd09b0832fbeb027b15", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "0e93b1f86d8778076f04fe97295548d6d10b31d29daaa3980568929da4c94b5f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2984438b44f77f375cf80075b7c26e84d593aa56490e3703ebe094e34626e183", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b594999319e34d99ba2048dbdeb0fb2660044d4fd2e26456275f4d6a43f61f65", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7bae4a3f50a844fcbdc504d717f5f13dd7178ca99f131b230305db6b55e1dbc3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "214c393513df9438d6956ad5b738efcb1538c301c81d60e0adb9f2113c780265", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "58977c552caa6b5993e10d48a8d97bb7e636516b1526cfbcfd045c144476597d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2288fdc58bb7180154bf4e3e20b01f2f0a279a5ff253679baa8d326bbc3c0020", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "dbf382db41bc652896fe67296a9bd1880836cd2ddc16a3811bfd7bb9c2fec1ea", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f49e8feb6d7473579a5ceb5872598bbc1be3723da653993472720629c72fa0ba", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "14c727434cfe6a078b51a88d005033ad01a76bec36292d7b47369d82e48e1cb0", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d909cc4d55736652a82d5f76be92980a1cfb14b6beb65137171deb4c7cbb608c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "0a37887a4d2c6a6ed5e5ddd3619d04165079eda5477340fa56e635510333e8a3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "53adb1224146150628fd59d35c5a3f3f69629a649052c34ef6ee5186cc911c81", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f645ed7ab08689c3fc4afec989000af708f562adb32819d1079762c027f225e7", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b03aa91aef645f9856216a2223a47001a84954caf37b7ffb1d63d1327b4231fe", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2d982c7dba93b9bcabb045898b00e62dd09919b2b35ee63c42880b22494a7ad8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "cfcb85724714ed6320c09fddcffed5ac71069125cd5b9957406c920dfd4c16ec", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7142177cf3158dad7b42726ea15c78512dbad6370117509c8eadefcedae72534", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9322da0c85b107feebedf3005249cb863f4e03736c4b8ab3edcbfcc29981d13b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "54a730e06094b37f96436ccc8e736bb65b74d256439bf1663344e3fab16d2246", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e502cb97a6fa3ea9268d2c2b2bcad7a1c8cfaade589f501a30cbf542e098f4a8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "19586f37701483574eb9615faa417281f9b417225c0595c2a242031f6c86e267", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4e8b929462a5c46c53151f6e7519a06e31ea6754a735c942d9ac5d8b535a46fd", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d2e6d9f45141863efb1ce3846875ca23fca7b731496c45006e4931837c3ff3e4", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d06ad53b5004aefc1adffde50247af521e0e10d334392fc0cdfa8fa965d7243f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8f1eceb25b3591bc9222483317ca1bd13d4be70aff908d9d26fa3c18b7f7ce2b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b56026fce41fba17e89346ef0ad03b2f5fcd04c1120176e4eac77a7d72dcd8e9", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d3aa309128e84a97c160e41f2cd9408e19e43e3a6373b72b37fcec94fd3f2c7d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "0513d6c3cb14947d45f1471345eab07dfa5b9237124f639c9e0dc056df236584", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a4a1f24de17edfa0b47c4e939390b38f229d9e42ded4f53639e9df475fe453be", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "366c1b30d171d42458d361430d16dac31854cff2db854abb59ff4a5df3e349c3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ab2dc76864097e3d2dc5a0553376474ebf026fc5f25e10adbb5e81b1247b03d7", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8e68a48d38419d478b823e2f04c8418fc348fb6d4d370b15743cde4d48392506", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a93626ded4c88421ac4e27150b0e11a514683a25f54d6639347a66652e118c9a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5804ffbc65b78751fd510218b90827a7ca677ca34a45b4709a00783b658cbaba", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5bc28e22162587d3940c3f73668bfd191a65d7381ad7c242901ed7a395e04198", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "31dad812abb967c21c2ba11f6c1ade44ed75a7441c2df7e6fa78f6af0f112eba", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ff9e2545e5c4e207179f01a1ec905d0fbbfa1d162501679a01cc75591fd5bfe1", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "1c247df73ee92991ea75d19419b5625e37a9da3bef05f015d7097a35c66a1fc0", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c29921af69f3db7348ed27915972a51cddde446ac029fface772271c085eacbb", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e4a58769bce747f03a3606f55e84690c2003f754ab4354a27ac6aba30eef01bb", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "78bd82da60d7021316b170afa284acb4a0400d52eb34ed089e38861bd3c53d10", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "1ce699f32fea004f388368e19e9cadb41dd52ecc72c9d6b353c9d9e01abe2cf4", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "597fc3b46d5654c4f8361c36ded591d5f12826dd1df9e7643e8bcf1f0803cbd9", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b56a743deaeb1ec9be37a9a8e5599e1cccd267267d4fc41c01e0c5371892a70b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d8fbed05640e6df144bbc9bc1ce7586d6e020119968f9491c157ab670c97f003", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ac782435f9434aeda13f2d65fe840eb282bdbe2405549b166b2a89bcdea2396e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "98ef9c3f5f15c18abcd6fa9f12e93e1bbd608225501151603cce97642dbc961d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c80a56a10f1a8e01c4b7f08df6e9260ae076c910402dae8173fa6c7dcacc51fe", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "809cabbaee3df008c5c31e842047b487417eca144d2f4a4b0e04940827a3d062", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "30d726e77d959648e8f6fe104bacdc29ee4e1cfc6e8ea7c952141b3a3482d007", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7dfcc5f32fd73d26d849530d15ab3459a60d296c13dee963fb2cbc5b78052d0f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "930c6bd33500b62b1338a60a9a5bc3a2d57267ac49ba66d75917cb1fda319238", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "3612c99dd83ed479d269970994dac77984c951cd7b9a52a291051517cc09e6de", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "32b344c3765dc7c383516f3326c108ca84c33df44ece8ac789fce47d47ba8810", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "88a44d532be7c83da9c55d744c23721edd5c7401e7319207d957cc0afa36a341", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ae8a68cf0adad59ea1b6e86f51588d809fca647b917bb0f92c155b6023b09e4d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "606d6d2855288bbd8da341607890f38aae30cd54be6a13246b901db07dc0b041", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "6ae92eaaaef30fae975de604d3af31d5b00eca7f02d89fab589152df926685fd", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "cef2c14946e957c2c4a5d99837c6a9f730390158c08ce313fc7248baeee0cde3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f1363ec1f8aafcad89a89c7cfaf805dc709107294c32ffcca1cede004ccfbba0", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9f074f00a892947b04f99252866ce01cbdad4899eab96d1ea2d090419b9d0383", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "94f793b66dcb1a755800090817a189e5ffa519d524f0223e6b918f9e20df92e8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b96130e763eeb5392b6501ffabcec57fe110780ffcaeeef061e7cdeca4d65960", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4a0be6234a190079827c8909b3ec1949d44434ada4d898450b5fb330cc64551d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "28bdaf936bc3792e20a906ce59550aa56fbe62ec1a575421202cca5bb347941c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "52d0e4a995a1328cafd0c0a9441b729136bbdeea7896789c253aece60e4ec2c7", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "68337576317652e5fccf4c687020c06c00728c1bb0dc60a10fd8d78cc15091bc", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "06ef9e335bec6e052d9df473a06a08552d34dca231a5a31a04fe0e05c194e933", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8fd2aa139269a583dc70ef2f34fbbf57bbfa7490136ddead980ee23a408029f5", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "89dba06f08c33ff2006e6ca98e01284846927a6be23a9aa7be6856a8d7242939", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8e551cda9ceaeac0ed69fa73b16de6ec53b41a07309b2af1922425132e90ca8f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "706b3fd6ff575b15077a97851686c5a8d4f563f096050a397c5fb15cd9ce0b78", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2ca97aeaca4ac5be7b3815c3468c86f512e3c8504ab6ad0599e418d2feef1b5c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "85a60f3f0491c3c835a7679464349048513bb8e4d61fe865a9b1833229ebc9e9", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7194c45f80a22684e43fea3a9aeaeb69845361d8039d6f013f50230c78792f21", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4f81fb228ca91355a6210787a2db9fb9ebeb7b45fda1b577af6b2da1cc40702a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "57b1def459ec822d42eba31a62d69cc6d0329a88d45331ec987c6ec60d46ed82", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2ae910ab09cdf74168412a94bdb35966a1f62fe396e478cd20a734c98a360782", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2b5177892e7b27a3597ecb4769c9e048dff0610ac1a5312202f2ba595f2b09d2", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "dffbd270006e6d1eb7e54019953f568f745fbad1f286e6b6f9700c713dd9d71d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "3209d42dcb86b35a13c127fc39981a644b61a1fb0e59524038d0f3bd7fe25768", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a165816fd744d55bb0b17e7851eb07c3e372081f0de12b37ab18b5241bb8777a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e8da9d04f0bb044998c238d339d6fce0afbd773827eb0921fa5b11b804740242", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "415295fdda8d3f2630dcba09d2c6ac1ad737e9b5c8e91880514029953eb629dd", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "57a75ba33c112c59a783a2e7595294b86c6ab4a5fcc65a537ff9356a3b23abc2", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f846b7cc91e29c0ddd12b8d817abc81f4e3ba1c37dceaaacc82a896031a771a1", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "070062b01eed7a9d7c7763eb25d98c6581182edcd39bfe6d84aa64ffb9b980be", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "128cd80e8980123fd5174b2ab5c1295add61e51a5659a1e8d4fcfb82884edbda", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "fa6df0af2818d39dcccafa76a485baf0944292ecaf7acc623acdc5832149f796", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "bf2f4914e8b356a9907f7b347f984d4cb8efd2fd359d443793c52d55d9f2abb6", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f8d6e2784bb518d523898f614b8c0ae55341968c982d4617f08867b5d11cf354", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b47f1dc9eccc82752263ec4d70ff7464f0412469102bd22537a5005ec298aa68", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7b75a17e8586b0d83e4d3732ffe41a10812873a89eafec329b879988537fa83e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "768989d7bcc666427495223f2e78c1e5b541e16b6542e64abb92d54f0f37b7cb", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a171b8cb18c8c2e92ed5c39ca1ed713b803722352829b948e3c84cd463b2b617", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a2c7210b0f2be82aed4cdfc51ca084b3ac017a2d2e9baf5b519732fafb6feff7", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f10d4445bd7db9939402b239776287476b42d1ac4bc8e6b80a7ab7013b9c9981", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4df8dc56ba9be273bee231caa239d04fb28293b92c109c32f4fc027f65e5aca8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7458750d4c17b31f538c9faa569a75ece0bad5ff89be08b54aa7ebf485ec1dcb", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2dc42bdd932c6f6c33203ef3adf9a3c3f9c92e55119967c4b8eca75048527ec8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a8a30971ee06a579685d25fa7135d8226f1faf0fa6571a3dadeceacb9291f2ed", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e2aafc728d8f60a248d640eb447028edcf9b80d9d99f50c465b06011d885bd6a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "3015667b8858f86fee317668c4572b9bddc3b14df96d23383507d618edcdc577", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f46d9c50782b5c3d0d0a1114188c704288224e91dec2d078fb50180621d58c1d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "edf1398a29effd40893b4e850271ea22bdeb0d3d6a901eb08ad2516f13b8bd05", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "73421be7cc17957418f22a7be68c4e6b8d818f1597585bb3020aeb6ef7006f9c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d80c3265f6b0717428e089d897e503d19debb1f5348dc5d286f3a850e93d5061", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5bb81a9aa2387411321b9f1f5c021b6303428634bee563c9a8f1cd388b1be443", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "30522d15d4f6aadebfabfa0d23ad5adf467335a6ef7bc8508db50e8dc388b3fa", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9c160cf18020aec7bd1deac84fb3bda1a03c590ceae2bc5c150ab037dd226886", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4b966b4f48c930b166a0058b0d8aadcf0b111135b99a6297aaaad1528c42ed97", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "113fd627693c4050016f9da31114c196ed3e55d1a94ea023bd6bc829dca4c550", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "bd90ad1350bb360f83082e98021e7cfbeb6bbc75565b76c70bd2ebf9ba936a23", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c2ef4463c7d697365ca578709c801077009dd3caef689c5dba0a8521969a95eb", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "15b34f0a2bc3d983723e394aa54333b2f4cd41e391a5e68aa5bb782351e359fe", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ac5b9f2d5cbd50ec86d5856917c5eb5ab6fc7152fb182598c9b9fc2bf458b8d4", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "1d44832eaee499d791379ab65c32f9b72ed807613b72d7efe0e4dabec955d21b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "db17327ad596824321aefdfa22cc1d45d9fe3192fc8fefe4ad17dafe93c739c3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "0819b4f64eb1b87f884d52895505d8e913a3f84e1eb164bdf96ea2b50354e7d6", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "60e6c7ed01a617453bb91682fe4958e698292ec3ab2e8473a3123c3b6daf0676", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8d426454bc1da7cdd3408c926c58228bce4dcc30c8a962bb0141cc13b1d81018", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f04c3edcb4544775f079ade30ad601d9e50aef13a19fcc0325bb1d33fadc3f58", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "025c17c748488159fcafcd87b95b08a029ecdbd25000f598804bdd7788b1b6f6", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4c22848e2508e85af2c9f8e895d5ed64d92e1b02711f45c751e709086e4da919", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7b928049f4bb3f15bca40fc7d57ff661cdb6c24a7b235fc8fa083f4dc863ede3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2693d3e219283d2bb133924f0bdfd8aed628ff62b3857a6de107282a4c145dd9", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d1a2690ce0378c3d377e7bd07614bb3c7e2bec52dd7f660198475a550dc13cc6", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "46b171ad2ab9b534979ea5086fbe669948fb8e31eeb2b7ad3d45d6a9ded78748", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2e73ce1cc735fa0c03af07b0dd40b90bfc7bd5cc11d6271a9a965f0403cf69d9", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "753b3efbdc07a3d9993a8fff8295f7b4f95663e308ea85efc7a0c1ffd2ef116f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b08d54872af7b7df6fa9533cfe07b2e7aa2f50f5a84f172d292d53c75a54f8cc", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e9e0b502312db594634de99abc4a0becaa67c69faf5531f66d7495e0bd5f5e0b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "427bcc746c725d19ef8e041226bf8a60e20acc421e08cc723b0239b599a97482", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "bd012f6cfbb374e40d238c255eacd604243d1bf5bb065e216bd72bbb57aa2182", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "29ea832df7ac71578ed701393fb6e3e158cc643dfd1d3cc80b41a4c289e86524", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "df7600c69bc9611d77639d13248b087203b232e2acba76b3b4cdaa4cbc25d0e4", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8be849acfdb4ade6d987865b17febdda1b9a6e320e87c746deec0e555121567b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "cdc0b51f289385c35e0befb4db66c36821431bc4275369d51b2e2d3f3652049d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c79752b70dcb13137ee7bf01e6add89298c15e0d773d4c6faf56c1caa5d997bb", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7e44cb4862e072b762134c46b95bc3e86124439931ae85159e845d0ca2166bb0", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "eb76bb4ca060b378e6bab61d7dd24e2cd7ca61a5c448e1bb327c63baa96ea6c3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9376146c27f8e0cace730fbf789648da353877c78e990e173391befa191e70ed", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c7f6096a62192ee567f7de6cba63e1a19e32e6cf51e11725126446ae6ffa3d31", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e8682dbf2be4ee767cc14576f3e461a8b8c2b1e59a7f787e89d22d1cb6876377", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "f9791fdca540b14eb2d745e95ce1904716f1f81f7b8955bccc96e4a0501fba00", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2673620ee9cb5e62777ceeea4e84f0c53a2bea44d74f103ece49bfb7efe95aec", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "525f82081df6786aee16931dbb571de908e7235f3d0e55a774e71eb855cd4ae3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "87fed3456418e122f03bde7afa0c512c55bfcd2ba6d6305385dd6c5e3c71ff6d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2ea4160e3867a56867f27637c7ecc3ab01a1d7534f892493582af82b24bff97f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "dc9875d80504e711826648ca27882ffc145a136db37031e6f250b31fd357b8f0", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e73198b060fba5d556b7b411073ac48383a539227522afbe5a3a9156edea2fdf", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "bd40604dce7f9329f800afebad8601fe708f32012c464fcab62c68cbf2fd39d7", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b95561e98ee78519d7c2e98f86da7a9342b936b0e52cbc42894a517c38682f4b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "91a9ebdd32734499d34fc812087ff1f59a70d2c6185981f229fcc2679a33b8e8", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c0ff7336db1bb822f6e38dd91d58ba77f107309f453e8d5ed85d7bccaaa7863e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c42858690ca5e76a83277a2234057c126033a927b1419228f98011caf9332e22", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b8b9141324d97526669e3b9c2914d5707c5fc2d1f4842d76f74c902b7a03549e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "80b6ab00ab7bd0bfdebe92d387ca33446a7102ec4f5ae67a7aa392311f0647ab", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "3c9e08a6171b77f9409f6fbeee92cc7cec90295165305f4749c15b66984094b7", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d5f52fef25eebd772b28fe3acd0ef103cb3d338c73fd23dae81235aa3d3216f3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a1d51984613f1b5faef052fb04f81743b8209fce70f8d1a1d73f2fb9be6d6912", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e313dde308495525f7e18a1e3a62d49407e562d389661bff3def7aa6718547b4", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b6fc849fefcf2d80c9f877a4b609da4e913a1b960adf9b8ee78dcebf2ccb1a18", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ad93293f86fb21b8941415ebc7785f728d4fe8389f855f185dbc77dba548fe53", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d582707b4fbb409fd9e62253e66631a521a79e57ec8a79ba205e6364877d3c0f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a1d1ddfa2b0d806b2778b931ef3221e5a16cf993005eed4b74b2561d7020864f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c71b08b656ec67568f366241678b35569c65fe7df5b1b1d450bee7e9b06f8ff5", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4866caa6f66072a9029b8081a0b0614ddff5995126486d8b96414a8d2a22285c", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "6d37cb963c5288b5225af7fa9d072c429920718fa87d8352f72b5b80978aaf0b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e429692aefa26a42888b1e63959688bc0c75ef34fd3eb7c246f32b8872aeeb31", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d97cf67eb2772d68fbc0ba44ac3c6d6f4d5ae620d8980084690acd049be0cc28", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "79182cb8300ae458110b9014011f3bce7a1f5983223128b1635f429ca4962b81", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9bb8a03e0015254999c1e96830242fa3764856fd14958d3b097149f4491b1fa6", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "21655de6cf9d8df920b2dd8aaa5d6b4f88630c5c6f4df66947f4a2c4e59f7c79", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7db915f07d1dec500718675edd2881ccd140132b7954eecb1bbc4313597ab4b0", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7981d90e43327e29911a56c198f090dd816c5f2a15335c294c3f010f02b8f01b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5819a2787a272ae1b20f1cc8c81d98ddf09b163ad24cd1318719113a61205970", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7f45ae699788ef0d76c10eaf0ed2fd3843ae12514355842c7ec6d5403925ace1", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c565deb632ba928f5ca6e1ad8fea0410a7695b6fabbd1132618f0d329cda0f50", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "111346e95c27db969bebdf620d68008685571fb01e07c4f9c722f600f5fdda3e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a482905e0aed325e2f3cfd61de96fbf7c11e068e79c65f1974948d8962b85c2e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "21ba214033e94c069266f184870db915957890ba80ee669cdca6f2c2346644d7", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8dd2b29d482fb6746cfdcff57c1441d105f41ee91daaf346e1d11fd47650c783", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "4b3035f436869dc5da9815cb51a371a972fe31e2515c5dc594b3d74ddb701bee", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "13e18664181a3e017dcd8d6da49baf9d039092717810b0c7ca28fa50e3c8734f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8d2a9a4b17120c5c34ff1016a92b33b90e72f9430d8f58f16504beac3f5eba81", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "580307f6deb46c1f0045f9e74281cc285d2e7e39c96b378e31c251ba09521c9b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5b800f6a5c739360992423332074038edd736bc74b5565373448162289e933af", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "b78a24b52dea49fa0b8651db08e733debc94c4289700d1ebc89601972daabcbe", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e1ce38cfb5b10848859e3c4dfbe9c42521967c4e91042e1f3c40c59c17432dda", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a6835ba7439febe71eb3106bb4d26584794dc0f4855cd4c2af3ac2c9f5b25377", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "85948b36914a06d93bd22ee8580794b8e8486fcd814c301ffbbdce2371dea86d", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ec455fb31d11dc3782f7c7bc81bc1ffee91e360b66ee6a55ee8135c896a9b0cd", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d8f1e5f8e2f59c9ace3deedff9f1d5fd9aea1fd6abea384dde6f9ca132b5fe79", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7022da6a9c58eee4317bc9ed61af467e92ade72a59f9e3785ab7fe8badcb9a35", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "5692c147dca7d616c0c8f2e8c533515c94457b7232fa255970102aebebaf3fc2", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e75a927cc44a75ceadbe2e95ed18cf0b9ba904e14d37c1e2bd24b17b9ae7843b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "a97e0fea0ab50bceccc582e21eab30bdcfb4336df84ba51ac633fc1331ad6e90", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2ae624226a9bcb73293716bf1054b244938ba91eb3926f4cbc81157e3252513e", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "59ec53aae4cb5a602660390aab1cbddfc30a8ade8827395ee2e3b30e579377a5", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2dca9b2566990a7508270b19ff7a36bce81d829509214a4ac87564ae2bb386fd", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "cd0c217d59afc04deccdffbe56c75fcfd86170e18252990c7bd8c67725e07132", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9737c5818211975651a00a350f9dd836dd13c4de1fd8e5557e208bcecf5a6cea", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "2d0a4e661dac6ba0e8b6b8e0672d62e5dafea155223d185d9a9298acf2d14665", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d6828477d01712f5841330b674ce2f6a76ae298a926f6fdbe67ba7660ec3ace3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "347290356c13d55723dd8a866f9f1c85c463b2d00463a72ad072a55600fc8616", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "642899659eb387a4ced2f61d5d6a2fd20d792b68a3ee4321c446e014da5bf9e1", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "8fc9c4434476710427388af587998bac7a347cc68329b7da3a57fb11b72d12f3", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d64fd4bea85624039b7b0441454419bbedd4501b553395a71bcbf8656f8df237", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "016e62f3268bdd7223c7ae9b9dc48acad3703ab46d83551b40c448bf24988426", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "ec3602337c24adb3702d9057f07a2b8751783059303663316736830011d4b474", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "c8a2414eda9226c6c50af454a9ea1536c176e58432e755ba5fcb229f996d9133", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "d14328f8d67ccb14c3cff684f2232433977c7eea206444561fa2f379702408eb", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "6c924e274aa22a4e099fc378a61cadbc90c4fbea075cd1fd577e2a0e9afaf182", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "393d1b40f1541ea9861b860564c623e3a40e3d959147382af1f49eed8b84be43", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "7ffda1567fdd3b535ef60e5b8cbab6bb2d11f8fc998e88060c30e595bf61452f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "164af37e5cde8d2d830b5a5f2aaa6be547b8004e4e98b33fd6977581f8be4d4a", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "3f677da0a7ddc370dcab43603da691955a7e0479dac12086696355af9741b5ac", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e0ace1698102560c3b8090c2dd1f63ecd0a2b8601b4cb4b16df8642793fd036f", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "cfb10af0ff7ca1449f9cfe9ab9ea22717f78e7b7d1ca41a88095c584316a4515", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "e038fcb79d0716bd68af2421b6ed71d35f665b9c6f54948688366284e264c1bd", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9052804c912704d31ad2107e130ceca04774b52abaf25735b0b3bdea8e1494b2", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9c31f13604ee809712dd2c1e5c78283ec52cdad5b8713f5664c554b8d772e71b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "247a2bf9af2424c27a8c888e7765657d516284a66c64b1c6c718460a50130370", + "signature": false + }, + { + "version": "bb703864a1bc9ca5ac3589ffd83785f6dc86f7f6c485c97d7ffd53438777cb9e", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "5c0521497bc8e41208de4b19c6361b5825d1769355a7408c15b9a9cdb5736b90", + "signature": false + }, + { + "version": "f4035cebf588a9216210f8cc2843a802116cec56a5680354b43895f75a58ceec", + "signature": false + }, + { + "version": "a6e01865e8e400c22aff8b678431e6638951b125054bb57e643fac93b5afbcdf", + "signature": false + }, + { + "version": "e7441be68f390975c6155c805cea8f54cc1b7f3656b6b9440ecbbbd7753499e6", + "impliedFormat": 99 + }, + { + "version": "6345bd378f52f294bab420af457b2aaf25254e5ea7ccc72cd936edd9059ffe7c", + "signature": "7fd1b08fe8e8a400656dab2c602847a18c06d91ed8c0881b1ec72dd6c41fc634" + }, + { + "version": "268e586af26cf43731894b4dba5d735f1ab073c805b47a202e6de8b59d9bb153", + "signature": "d310ee2d232ae0f5f5c20f00b40fd46643f2be24651c370e43c8f70d91d8021b" + }, + { + "version": "609cb7d5b90042c196decc702bc350def6cbd14bda26bfdbb1a6e2ed9079d29b", + "signature": false + }, + { + "version": "25d541cda6b45124e12e7ec57fd83d7095366bc752706e7f26ee94ddd36a82f6", + "signature": false + }, { "version": "91b4ce96f6ad631a0a6920eb0ab928159ff01a439ae0e266ecdc9ea83126a195", "impliedFormat": 1 @@ -9171,153 +16447,186 @@ "version": "5f200be1d6585239093ed367e7a77a5400c76c80a00309ba9b4fc2bb5add9899", "impliedFormat": 1 }, - "224a74545ab40761f15b2b21438883fb56f77e4d16c961e7c1fbaaeae289bc85", + { + "version": "d744414bb4ad10b13c3148148ba0164235f9bac32512dec76531adde485192e5", + "signature": "224a74545ab40761f15b2b21438883fb56f77e4d16c961e7c1fbaaeae289bc85" + }, + { + "version": "d2e5ada0ed30cd13efa58379f0b3da01f408a5da10f3e882201258ae9999cf0f", + "signature": false + }, { "version": "0bae91f96a7bd8fbfce9143b6d00f643e551f901d6ab647cae5f499774f27648", "impliedFormat": 99 }, { - "version": "024829c0b317972acf4f871bf701525f81896ad74015f1a52d46ae6036205cb9", - "impliedFormat": 99 + "version": "fe42ef207e924d9683aeb848c9a90bfc2e6ac1674fcb48459c9ae26fdf5d9efe", + "signature": false }, { - "version": "0943a6e4e026d0de8a4969ee975a7283e0627bf41aa4635d8502f6f24365ac9b", - "impliedFormat": 99 + "version": "a0b6cfdc304b44cf85e7774cd6cf1d98bf21139f4bbb69d27657da89b90b6f16", + "signature": "9f4caf82995e2134d97e85969994148c5dedfea6349750473a6f11a06203c232" }, { - "version": "1461efc4aefd3e999244f238f59c9b9753a7e3dfede923ebe2b4a11d6e13a0d0", - "impliedFormat": 99 + "version": "bfda1ab72bf2fc15737dfa8e1cba3918c54d37fa1ffdbd91b9b3ad0b523dc8eb", + "signature": false }, - { - "version": "31c30cc54e8c3da37c8e2e40e5658471f65915df22d348990d1601901e8c9ff3", - "impliedFormat": 99 - }, - { - "version": "36d8011f1437aecf0e6e88677d933e4fb3403557f086f4ac00c5a4cb6d028ac2", - "impliedFormat": 99 - }, - { - "version": "6da2e0928bdab05861abc4e4abebea0c7cf0b67e25374ba35a94df2269563dd8", - "impliedFormat": 99 - }, - { - "version": "e7b00bec016013bcde74268d837a8b57173951add2b23c8fd12ffe57f204d88f", - "impliedFormat": 99 - }, - { - "version": "044047026c70439867589d8596ffe417b56158a1f054034f590166dd793b676b", - "impliedFormat": 99 - }, - { - "version": "89ad9a4e8044299f356f38879a1c2176bc60c997519b442c92cc5a70b731a360", - "impliedFormat": 99 - }, - { - "version": "fd4f58cd6b5fc8ce8af0d04bfef5142f15c4bafaac9a9899c6daa056f10bb517", - "impliedFormat": 99 - }, - { - "version": "2a00cea77767cb26393ee6f972fd32941249a0d65b246bfcb20a780a2b919a21", - "impliedFormat": 99 - }, - { - "version": "440cb5b34e06fabe3dcb13a3f77b98d771bf696857c8e97ce170b4f345f8a26b", - "impliedFormat": 99 - }, - { - "version": "5bc7f0946c94e23765bd1b8f62dc3ab65d7716285ca7cf45609f57777ddb436f", - "impliedFormat": 99 - }, - { - "version": "7d5a5e603a68faea3d978630a84cacad7668f11e14164c4dd10224fa1e210f56", - "impliedFormat": 99 - }, - { - "version": "2535fc1a5fe64892783ff8f61321b181c24f824e688a4a05ae738da33466605b", - "impliedFormat": 99 - }, - { - "version": "9f7a3c434912fd3feb87af4aabdf0d1b614152ecb5e7b2aa1fff3429879cdd51", - "impliedFormat": 99 - }, - { - "version": "99d1a601593495371e798da1850b52877bf63d0678f15722d5f048e404f002e4", - "impliedFormat": 99 - }, - { - "version": "1179ef8174e0e4a09d35576199df04803b1db17c0fb35b9326442884bc0b0cce", - "impliedFormat": 99 - }, - { - "version": "9c580c6eae94f8c9a38373566e59d5c3282dc194aa266b23a50686fe10560159", - "impliedFormat": 99 - }, - { - "version": "cc3738ba01d9af5ba1206a313896837ff8779791afcd9869e582783550f17f38", - "impliedFormat": 99 - }, - { - "version": "4a5aa16151dbec524bb043a5cbce2c3fec75957d175475c115a953aca53999a9", - "impliedFormat": 99 - }, - { - "version": "7a14bf21ae8a29d64c42173c08f026928daf418bed1b97b37ac4bb2aa197b89b", - "impliedFormat": 99 - }, - { - "version": "c5013d60cbff572255ccc87c314c39e198c8cc6c5aa7855db7a21b79e06a510f", - "impliedFormat": 99 - }, - { - "version": "69ec8d900cfec3d40e50490fedbbea5c1b49d32c38adbc236e73a3b8978c0b11", - "impliedFormat": 99 - }, - { - "version": "7fd629484ba6772b686885b443914655089246f75a13dd685845d0abae337671", - "impliedFormat": 99 - }, - { - "version": "13dcccb62e8537329ac0448f088ab16fe5b0bbed71e56906d28d202072759804", - "impliedFormat": 99 - }, - { - "version": "233267a4a036c64aee95f66a0d31e3e0ef048cccc57dd66f9cf87582b38691e4", - "impliedFormat": 99 - }, - { - "version": "ccb9fbe369885d02cf6c2b2948fb5060451565d37b04356bbe753807f98e0682", - "impliedFormat": 99 - }, - "a1ba6d5a95da05f6c3f99f395cb442d0ed1981ab8e363d9e337c632621d46a69", - "9f4caf82995e2134d97e85969994148c5dedfea6349750473a6f11a06203c232", { "version": "b843496b17a2bbd79c83809c73fd9c59fab53d3e361e04e52e2d489524eea764", "impliedFormat": 1 }, - "a4b8354adcb8c06cf45f6c2b18a50abac402dd1a869bab166b00d085e4a39d15", - "a09f8f8cef12e943638471a9f24e8c808039c59ed037f445676270ccced2a557", - "26e8c4a7f5c958dcf27484e992a3c23eb53302f2804ae469111c9ee562cdbfd4", - "e5f23477d6400cd103d8d4ba6d1738f20cd2f3caab9ebddafece679e2d085f94", - "78837b6bf021538b2711b05fb945ce2efd8ed2e99eb219ce21ad321b78391653", - "ae1a056bfd0a1bc783f65325beeb7b8372040b98cb47965c8500ca5a9abe3640", - "cd5568da4941c6291cc64fb78ab713e714db7f74215b7bd3c4c924ba493e7a22", - "95e3f89c022e0ea8835000f3b4c901eb90052dde79cc719ebeb22ea027c8874d", - "c70a0dcb21e5d53c8053e436021eb063e10d17f96e1475475acb610d97c9b926", - "bccf36badf87a56ba92381fc8630d4cee33dcde0513e9855f7955140ecb38fb3", - "5e89dba71abc409c7f6604a4110eee79f3986aca463f08d19cb97a8fa062a8e1", { - "version": "6aa2859da46f726a22040725e684ea964d7469a6b26f1c0a6634bb65e79062b0", + "version": "10b96d10359c34670ccf607198149b6a3530dc1af65f66cb48f9bca34eafbaf7", + "signature": "a4b8354adcb8c06cf45f6c2b18a50abac402dd1a869bab166b00d085e4a39d15" + }, + { + "version": "8e61b5658fee84b19220845ba5f34d864885bbb8670f0751ddaeb6c380cf2de3", + "signature": false + }, + { + "version": "631c9cdda14a15c4b6587fdeb028873bf92aa5f814ef479ba615358815ea4e2c", + "signature": false + }, + { + "version": "56aa952202aad31a03b6855933028097e2552b84b793225d3b56e99cd0ef4941", + "signature": "a09f8f8cef12e943638471a9f24e8c808039c59ed037f445676270ccced2a557" + }, + { + "version": "14531ad92531afbd704a0d2c0922c45ea079a9207f078d8f1d8ab94a5eac8e35", + "signature": false + }, + { + "version": "efa619d39f4164f639f9fb3261f3b606e3540ace14b65cecd3417b80b04d3663", + "signature": false + }, + { + "version": "538ec3fe59658de91a266c87bd0b784b4b4d075d85555616bbcc87f858529b4a", + "signature": "26e8c4a7f5c958dcf27484e992a3c23eb53302f2804ae469111c9ee562cdbfd4" + }, + { + "version": "acd07735d804d07a749c2556073dd9c4d1c358e6971c17f03eec7e61cad73a92", + "signature": false + }, + { + "version": "89892febe634f5d9ca4f945ec3482ea4d6adda458897130909517863efa94af2", + "signature": "e5f23477d6400cd103d8d4ba6d1738f20cd2f3caab9ebddafece679e2d085f94" + }, + { + "version": "9e6e9f43ee321d97a5a1160797dd66cc94359d473de8edc4417f47bc7e31cda8", + "signature": false + }, + { + "version": "6e4e0571da6787901793b3424ad6d4f3af17e133756350418ff06fec1fd740ba", + "signature": false, "impliedFormat": 99 }, + { + "version": "261f99e24ebfeb472fb4bc8b70b0aa778e3ef9eac030d23c56f892a425367397", + "signature": false + }, + { + "version": "668b786632dbb81bd0114f17f4b18007a7aa22baac323595f95935da23e73fbb", + "signature": "78837b6bf021538b2711b05fb945ce2efd8ed2e99eb219ce21ad321b78391653" + }, + { + "version": "fa0d5f4be1a0264c2e76d07d959e13b40b047fb077f48312568b634ce23e8ed9", + "signature": false + }, + { + "version": "15b843d9c7bfb8001cea9fc513a0abff9b91d57bb0be885fdf3ce2591b766cf2", + "signature": "ae1a056bfd0a1bc783f65325beeb7b8372040b98cb47965c8500ca5a9abe3640" + }, + { + "version": "639cb65bfe3eabba928b2d67a40e3fbe842cc425033ded68cb72c85eed14a5c3", + "signature": false + }, + { + "version": "31bbef46647114ca10cd8c0d13a6c6d0e25f328cfa89c11d31e596e2b3845ec4", + "signature": false + }, + { + "version": "cb6bc9b872585e7a3c41ad3ff373c205037131fa06bcae5978f6d4229b6703c2", + "signature": false + }, + { + "version": "9fa6af88d606181d5022d28b012e7be8b4cdf224497cb98cd2bb916c5c08ec81", + "signature": false + }, + { + "version": "06ea3f92f5435c30d205f2e2c0db4c7f04a55496485cbd5e8c285c868b873e6b", + "signature": false + }, + { + "version": "0ca61e8b1b9e77e107f454e9b56a3acbba83ba2536e20e92613deba351cf1c83", + "signature": "cd5568da4941c6291cc64fb78ab713e714db7f74215b7bd3c4c924ba493e7a22" + }, + { + "version": "4374e37ee7783045f80c7d1d1cd1ae197a5ffde2a8be945782ea542f2cdcbc77", + "signature": "95e3f89c022e0ea8835000f3b4c901eb90052dde79cc719ebeb22ea027c8874d" + }, + { + "version": "d2e2a04c077a574a09f7700075ddf6001acbe17b89507fcdc513340969029e3c", + "signature": "c70a0dcb21e5d53c8053e436021eb063e10d17f96e1475475acb610d97c9b926" + }, + { + "version": "4ea7e91f2c11d115f442aa800899a1716bff7e1d71981b27996406ae4cf1b85a", + "signature": "bccf36badf87a56ba92381fc8630d4cee33dcde0513e9855f7955140ecb38fb3" + }, + { + "version": "45d9d5c624a98d233a89c9b23715812418e87fff6fc16de32c7fe13903dacb1b", + "signature": "5e89dba71abc409c7f6604a4110eee79f3986aca463f08d19cb97a8fa062a8e1" + }, + { + "version": "76f3ee81e9952781614f65382849d71d0b614cccf5ad0261db9a613a4af66c09", + "signature": false + }, { "version": "6c05d0fcee91437571513c404e62396ee798ff37a2d8bef2104accdc79deb9c0", "impliedFormat": 1 }, - "a4f1be15ebe04003debb12b210fe992cc98ab484955bc493637e5b8dcb8af696", - "b1d8e2d8650ca6394ecdf093163a3cb2ed61d16aee71122319308110b9bf7c2a", - "965604339a49ab8bc8c747141cf5532168588f842f5b51c3cc328fc5cab5b976", { - "version": "8567c4f44c0d1c40726745701a7bbd715c0e8301b6b15bc25b208cec0317bd3d", + "version": "ba97bf5a05e0f1edfaf350b2ad1c61d687e83fd1f9986983f992316539040c5d", + "signature": "b1d8e2d8650ca6394ecdf093163a3cb2ed61d16aee71122319308110b9bf7c2a" + }, + { + "version": "6aa2859da46f726a22040725e684ea964d7469a6b26f1c0a6634bb65e79062b0", + "impliedFormat": 99 + }, + { + "version": "3a36847ae7d8aefdafa8121db60110079cb2c0988f8eea4da52cc51647831455", + "signature": "a4f1be15ebe04003debb12b210fe992cc98ab484955bc493637e5b8dcb8af696" + }, + { + "version": "621e82914bbaf83b2ba9418cd1401edc53a3bbded665a2bb567f06dc700f8268", + "signature": false + }, + { + "version": "83f7bf41b54337c9f7df7a6ae934acac2209b08321b072971e42db3227789234", + "signature": false + }, + { + "version": "4e255e8398c1a031161be98acd115a31e4001ecff4b1c952d9b75c8da94de308", + "signature": false + }, + { + "version": "82bff42ff087bd5dc90a5d17609cc428b8688de92d1333073a839af5ad3c9cbd", + "signature": false + }, + { + "version": "58236ec573df62d9192586e45c6b62ef924a160ef9a9450d53de19d4bcfba4d3", + "signature": false + }, + { + "version": "3d49073fa197347bb741ea058e8ebc4e43876e717aa5c500ddd02a4168e7b184", + "signature": false + }, + { + "version": "f28ef8758fd0f99ba378b95abbb780653f9996bbc6a04bd93a2185dfed43c3cb", + "signature": "965604339a49ab8bc8c747141cf5532168588f842f5b51c3cc328fc5cab5b976" + }, + { + "version": "b8e049e11e28043c79dab4129c374bdf419fd850883dea6728115ee338504537", + "signature": "8567c4f44c0d1c40726745701a7bbd715c0e8301b6b15bc25b208cec0317bd3d", "impliedFormat": 99 }, { @@ -9325,11 +16634,13 @@ "impliedFormat": 99 }, { - "version": "d619113674b97169b14dd63cec0cd38ca586550be0b898342d84860c6966e016", + "version": "c3a167d97f273863ebaab83d2542d6f65ad441c1ecd503941380ade6e1917d5c", + "signature": "d619113674b97169b14dd63cec0cd38ca586550be0b898342d84860c6966e016", "impliedFormat": 99 }, { - "version": "11aa84b8f18926639643de83d61e46dcefabcfcbbfc503be11d837d81ac9d4e6", + "version": "7850d6321a180d766be2135754e02dad1abdf4c838c68af9a209bd1f58b65f4f", + "signature": "11aa84b8f18926639643de83d61e46dcefabcfcbbfc503be11d837d81ac9d4e6", "impliedFormat": 99 }, { @@ -9345,7 +16656,13 @@ "impliedFormat": 99 }, { - "version": "d52cc473d0d96c4d8a8e9768846f8a38d24b053750b1a1d1c01f9d8112fe05c7", + "version": "1dd1b5dbac5619a8cbec1534db4912fb630347d360083750dad29cf438a94118", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "0a7e9d7d7549e76e20b61d5ffeeedda9fc221db143c08980e9c55cf9909722cd", + "signature": "d52cc473d0d96c4d8a8e9768846f8a38d24b053750b1a1d1c01f9d8112fe05c7", "impliedFormat": 99 }, { @@ -9373,7 +16690,8 @@ "impliedFormat": 99 }, { - "version": "91dff8d71a435d11575a5d0f1d14562776c02bfa99e7aef7529766e842fcdbba", + "version": "6ad179a688d2cc17c4450ff68d7736487513d84de3bcf56012be7695193abe0c", + "signature": "91dff8d71a435d11575a5d0f1d14562776c02bfa99e7aef7529766e842fcdbba", "impliedFormat": 99 }, { @@ -9381,7 +16699,8 @@ "impliedFormat": 99 }, { - "version": "fe05dff4d835a34d8b61468deeb948abf13e77378cb2ec24607f132f2a4065f4", + "version": "eac382beb3caab54de8539a7a012aebca873032987acca9a6e60b65b8c5139bd", + "signature": "fe05dff4d835a34d8b61468deeb948abf13e77378cb2ec24607f132f2a4065f4", "impliedFormat": 99 }, { @@ -9389,23 +16708,28 @@ "impliedFormat": 99 }, { - "version": "0a0cad5d6e29fe9a045330b1b22021780664ad3e4b4a9af7b98a4086a45b5d79", + "version": "3079f20851804cfff72cd1b8ca93d8c7a14ea60465176c56dc7ae713498d8c7d", + "signature": "0a0cad5d6e29fe9a045330b1b22021780664ad3e4b4a9af7b98a4086a45b5d79", "impliedFormat": 99 }, { - "version": "db98970865a44b3c7d7c8c6a5bf17e75916bbc672e59c8e59f2672c221ca4d59", + "version": "986fc8888567348fbc70abaaa8e41f58f2b0fbcbe0d46f556389cd9750a7e406", + "signature": "db98970865a44b3c7d7c8c6a5bf17e75916bbc672e59c8e59f2672c221ca4d59", "impliedFormat": 99 }, { - "version": "886e27d585b99cea11db1f8ec5504e7d3da92f48fc819db0e8fc1b615a47f9b5", + "version": "da26ce433bffc096a52108d0ef4ac55881d13d70b0c371738d73cbd67591bad2", + "signature": "886e27d585b99cea11db1f8ec5504e7d3da92f48fc819db0e8fc1b615a47f9b5", "impliedFormat": 99 }, { - "version": "5c4621a72b5994b6c8d84ca2dc6592ab7288c70a72e86df68b89187f801ebfa7", + "version": "34b6847b168dd7aa74c772c0f5c68afe7c6b35348f5d3071681c1f26e276318d", + "signature": "5c4621a72b5994b6c8d84ca2dc6592ab7288c70a72e86df68b89187f801ebfa7", "impliedFormat": 99 }, { - "version": "0a2602130be5a581a921d84f465ce0f81e62c961b4d2ffe10e9bcd4060dd41cf", + "version": "5e8dab7ea4056d557b1ac48dc2905b97669a5fdea37c3c79a5563e2e126f1b29", + "signature": "0a2602130be5a581a921d84f465ce0f81e62c961b4d2ffe10e9bcd4060dd41cf", "impliedFormat": 99 }, { @@ -9433,11 +16757,13 @@ "impliedFormat": 99 }, { - "version": "0d4079e5d31dee0ea3f724aad8ff19a01e248d5e4d234ee81dfe561731b484d9", + "version": "3b25ebad946a53bbf61fa93f8d5ff1dfd7b97ffa8b45cab0af0d1d98d4764940", + "signature": "0d4079e5d31dee0ea3f724aad8ff19a01e248d5e4d234ee81dfe561731b484d9", "impliedFormat": 99 }, { - "version": "64a8c0db1ac49d639d35064e7f20360b8ebb2f64266136adf94a604d698b4ff7", + "version": "5282413ed863194cc7cd873fe3f485168ad08658a91bf026c2a0a8e4db900196", + "signature": "64a8c0db1ac49d639d35064e7f20360b8ebb2f64266136adf94a604d698b4ff7", "impliedFormat": 99 }, { @@ -9453,11 +16779,13 @@ "impliedFormat": 99 }, { - "version": "a5bfd069a7e7353c542f85dc68a48404ee92ea25113b2315546d608046070302", + "version": "38f9e317ee90e3ad8cb39d4aafe8afeb784bcb84210bfbb7dd8788e769f1afb3", + "signature": "a5bfd069a7e7353c542f85dc68a48404ee92ea25113b2315546d608046070302", "impliedFormat": 99 }, { - "version": "135bfd490a0085fba7aae3eca4bad22c7a9979de352a6a9918452cd8ba6f5cd5", + "version": "7ce4403d02c6b349ad44d71cd3e016013046a6509def1124cf6b47247d393163", + "signature": "135bfd490a0085fba7aae3eca4bad22c7a9979de352a6a9918452cd8ba6f5cd5", "impliedFormat": 99 }, { @@ -9465,35 +16793,56 @@ "impliedFormat": 99 }, { - "version": "427d1ca9333dd5735458edfd8977b5ea0f67c5db26a581596a948e27390034cc", + "version": "7c16e0b561a1b5c3215896d7ef2029e73f1b1431a0e8eeb000a8f84d4b8e3c8b", + "signature": "427d1ca9333dd5735458edfd8977b5ea0f67c5db26a581596a948e27390034cc", "impliedFormat": 99 }, { - "version": "74572fa7e88c5bf3bb1b68b8b6d63aa72ae78fdfa30c3581908f62ef997ef68f", + "version": "815fb4112c165f37fd2732d5ccd19f5e81ae33b662fb5a3af933b8bfd7954b32", + "signature": false, "impliedFormat": 99 }, { - "version": "bb472aa65a61e2dae218a19b2515503285e802ba248aab73af25c151049709a8", + "version": "cda7c95ef6f305bdab792edf17cba63f8020898de687d94230735b702ede2c44", + "signature": "74572fa7e88c5bf3bb1b68b8b6d63aa72ae78fdfa30c3581908f62ef997ef68f", "impliedFormat": 99 }, { - "version": "4ea0a0dab29217c4f09550a75ed1eb420413925a309d6fbb92863eb256528eaf", + "version": "9a0514b8d9fc823de2efa2618853532c0587e6f2acf177574ac937452a57ab0b", + "signature": "bb472aa65a61e2dae218a19b2515503285e802ba248aab73af25c151049709a8", + "impliedFormat": 99 + }, + { + "version": "d45ef31be79806fcc75cd3372344f0a9e192bfdc74a4f317d4067f905d5ee706", + "signature": "4ea0a0dab29217c4f09550a75ed1eb420413925a309d6fbb92863eb256528eaf", "impliedFormat": 99 }, { "version": "fe150492b61ddafa7107def7794e18c699c3251ed4bc5c396a40bb6f062caffb", "impliedFormat": 99 }, + { + "version": "6613416863489144bd552f14860da0156bae705b15431342d910399548c954d3", + "signature": false, + "impliedFormat": 99 + }, { "version": "aba8091760d701c5e63a48fa98eba3c62c218e89e3bda7880feab56c6f3e6f09", "impliedFormat": 99 }, { - "version": "0deb1454b865f5d8893db5f522f00b07cfe10a3e30a59e8facefb2b5b4fb4f24", + "version": "b989caa8ec6c445b5449405d9306201c7ae6e620c45d58b65db162f766b00d18", + "signature": "0deb1454b865f5d8893db5f522f00b07cfe10a3e30a59e8facefb2b5b4fb4f24", "impliedFormat": 99 }, { - "version": "1ce6c066696877330c72b47aff7faf7411efaae19b095a0539cfa6c7e2a8f3f2", + "version": "a3c5413ba38000527d406a57f231838bff7b9b64c060a2247ebb972ca277c86b", + "signature": false, + "impliedFormat": 99 + }, + { + "version": "9cc9e426a68c265748a862565ad3d0c50e3b83f95cbf729c578b15f0fe56960d", + "signature": "1ce6c066696877330c72b47aff7faf7411efaae19b095a0539cfa6c7e2a8f3f2", "impliedFormat": 99 }, { @@ -9513,13 +16862,18 @@ "impliedFormat": 99 }, { - "version": "82969ae82ef3736673d8269eea4133a7858293ce1ad0b385c241752ea68c66b0", + "version": "edf177084b82c6fd23cb21c31b205929cbfb3cb3683da0ef943749aa01c51996", + "signature": "82969ae82ef3736673d8269eea4133a7858293ce1ad0b385c241752ea68c66b0", "impliedFormat": 99 }, { "version": "81780aeb17e4e2cfe8c29689b33504ef0c161dbfd150a9c490bd30d760c1a4d2", "impliedFormat": 99 }, + { + "version": "eb232b9056d7407e248c5870944a5fccf7074d93809bb95ce7e010c77a39daae", + "impliedFormat": 99 + }, { "version": "fa2c48fd724dd8f0e11dfb04f20d727a2595890bfa95419c83b21ed575ed77d1", "impliedFormat": 99 @@ -9608,14 +16962,6 @@ "version": "d11667aa2a6063fde3c4054da9ab98e3b9bc7e3da800beaca437f1eff2a17fe2", "impliedFormat": 99 }, - { - "version": "f3f79393ad9d2e7af9d36f2e4a9b21e89b8a3113fd184da2d8b1ac19086cbd90", - "impliedFormat": 99 - }, - { - "version": "eb232b9056d7407e248c5870944a5fccf7074d93809bb95ce7e010c77a39daae", - "impliedFormat": 99 - }, { "version": "f5fb9448b302836cc9cdeb2873af6535ec5330fbed104ac8fba4dd62f047a6a1", "impliedFormat": 99 @@ -9640,9 +16986,22 @@ "version": "885f283fffd4502b930e32663436c63223c7d9a422739fe2c6a672c2c5fad424", "impliedFormat": 99 }, - "b04de2eb22b1439727320436faeaa21c6eeea4eaa92b4ff1f744187a700bf860", - "d70591b280b4c77c0b82243785056025463e4d4b115412deb71dc443114b4d99", - "532915b9a7eb59faea346c48b5de7046339eacf1141692e25319dcd72da375fc", + { + "version": "2515869637c94b48ea0cfb40cb50be2dd9aadbd16527c48ac722864baa34aa8f", + "signature": "b04de2eb22b1439727320436faeaa21c6eeea4eaa92b4ff1f744187a700bf860" + }, + { + "version": "db177073d16a4393c7a96bcdc3a2a904e88c2432d54d138ca7715cc431982c17", + "signature": "d70591b280b4c77c0b82243785056025463e4d4b115412deb71dc443114b4d99" + }, + { + "version": "f3f79393ad9d2e7af9d36f2e4a9b21e89b8a3113fd184da2d8b1ac19086cbd90", + "impliedFormat": 99 + }, + { + "version": "b0c8d708aaa165b10633bb6181dea1af4b9976a71ad001d75f42785ddfbca458", + "signature": "532915b9a7eb59faea346c48b5de7046339eacf1141692e25319dcd72da375fc" + }, { "version": "af4b65c62076b306207059d0747d0829b1a8f90ed2b969d95cfc045371aa9b58", "impliedFormat": 99 @@ -9688,34 +17047,74 @@ "version": "bfddd4cc51973db6d75b0cdb28d9b9b5657fd4e3972836c52353db1a28fa0f32", "impliedFormat": 1 }, - "00be0c7e62dccca4f3f80deff09aeb71dce1eca7cdc54bcb694a488909a35157", + { + "version": "986321bcead409fcb033aae7519d6f7c72e8524405e600cfc9bec9d3e14282f0", + "signature": "00be0c7e62dccca4f3f80deff09aeb71dce1eca7cdc54bcb694a488909a35157" + }, "a8d6094e708c570767332d9798fa1bbc9ec8d4e50bc93e39bc9ce6fd737091e0", - "b89826089153365d9b8ae74f4f3c26121ed236de3ca4a0e558a040b8b7f79e16", + { + "version": "e151308baf5db4e4e96616781804c0894c3b6b5e4085467b846a7ce6cc823d08", + "signature": "b89826089153365d9b8ae74f4f3c26121ed236de3ca4a0e558a040b8b7f79e16" + }, "e5b58fb224466fdad906ab1368853d7d52d8315a4e9d23bdfd5d695288768b4f", "1b25bd070f941eccadaa46ed9655fd304e377da3c7d176cac9e5959396ef66c7", "95286eb2ad444fe5bb236abc46f19637ae47bd92c92fcd98a98652b4f59824f9", "6fe039142dfe51a9029f3bfe297e9058e135af013794dca8c3c2cb5cd9d5f89c", - "d64221849db18009f2a768be084268bcfc5e224b8e6c9ac9ad90dad602dfda89", - "e2fbda8fc72328ce630357394b71fd6487b1cb00750603da54ea2aa7f3214ec7", - "228589c38501be74a034068954b56e81d1d315fc910c1ca143d67c60ac0b3db4", - "f053bfc73181467568a22f9794b5ec551947aaddd967ef2f90e1bc7a27fa27b7", + { + "version": "2149689a6d91ea70cb5483cbe36a16021014c516e912f0f3a61efb6b6ca39de0", + "signature": "d64221849db18009f2a768be084268bcfc5e224b8e6c9ac9ad90dad602dfda89" + }, + { + "version": "01ee53c8ecc526b22fba47522d87b2a53d6b9ff44190aa0140fd2a92f39e17eb", + "signature": "e2fbda8fc72328ce630357394b71fd6487b1cb00750603da54ea2aa7f3214ec7" + }, + { + "version": "2084d5041ef95d495546060c712a7d7a81cc804535deae1fec6ffe78326a177f", + "signature": "228589c38501be74a034068954b56e81d1d315fc910c1ca143d67c60ac0b3db4" + }, + { + "version": "d5728dcf95fcf5e5a4c8afc5eb7502db7ca08f50e4fcf2d33827d690d5852b40", + "signature": "f053bfc73181467568a22f9794b5ec551947aaddd967ef2f90e1bc7a27fa27b7" + }, { "version": "f9c7c509c4c5179620913a952ecbcfc7589f104e40dea90940ddb304d7d5ae2a", "impliedFormat": 99 }, "40a7cf7096ba5fe4604699e9e9c61dc3e2628dffc9427e9dfdf8f318276db6ed", "f3360e92ee6f5dbc757f13ecdea441162ece47a4ffbe7d75758a5473e279ece9", - "d922641076288bd728f06b714f162cfbf1f33d3f2cb154dd180c852eca7f562a", { - "version": "8e8933a56ceec038cff256079ba9c6379ca9194ff3bafd0c7bca612986bb217a", + "version": "ad6da9cd7f5534c51dfd49010c3a090d1d4eb25ccca3c9a2c3b1a51b85ba68a3", + "signature": "d922641076288bd728f06b714f162cfbf1f33d3f2cb154dd180c852eca7f562a" + }, + { + "version": "c70e6f856af71729dc153a7683f19a77d89990430338ddd6fb390411569087a8", + "signature": false + }, + { + "version": "056e397d576c6749f80fe5f191b34c002a112e7ac4def8df6648b97123205be8", "signature": "21c3e76a81be5df4154eb512c1da0cdd7302a1233b296f3b4dc025ccec7c362e" }, - "2aa6991cfac2f91a6bb34f0d00bb45fb8727dcfa410c64119063235a1db01d3a", - "6c80f3c784084538fb9c19933621794cea4d64e3fb8496b661393318293a9896", - "d6dd983a3b86d9f5c94ac807f56e39d087893fb4a23729ed755c3a26d6354210", - "4361becbdaee75e949b4c9dfeeeb426991dd121ea95dc9832c240b2035a98358", + { + "version": "6537de327808ad9aefcf28d7e2c59c2ab641695b4f66bc1d93445d349eaa1cb4", + "signature": "2aa6991cfac2f91a6bb34f0d00bb45fb8727dcfa410c64119063235a1db01d3a" + }, + { + "version": "048ea7441bf798b949d2ab4ba4e798bb4da809f2e78a80e7c464286a8e0351f1", + "signature": "6c80f3c784084538fb9c19933621794cea4d64e3fb8496b661393318293a9896" + }, + { + "version": "db2cfc77102264e6cf33fe9d5de309192282a906a33a0cf4969b12135e8297da", + "signature": "d6dd983a3b86d9f5c94ac807f56e39d087893fb4a23729ed755c3a26d6354210" + }, + { + "version": "539c6002892d72d0670d2ca472aed0dc84a146469651bb67cffe00c293a912ef", + "signature": "4361becbdaee75e949b4c9dfeeeb426991dd121ea95dc9832c240b2035a98358" + }, "31d6aa0dd9cce9575126af70ae2bf7be7c5f5001502410abae74138aac88aee1", - "9212418623e90355486528666d05bb9c10f4f5e43cb80e499cfb90b5956e8f37", + { + "version": "18998031fdb45c0d8fa00511177019781d7ea7aeca783cc24f76f48f05f9296d", + "signature": "9212418623e90355486528666d05bb9c10f4f5e43cb80e499cfb90b5956e8f37" + }, "046240bd8fa2805abf5914967d471c4a8f751824deb87ec1b43d9be2050f97a8", { "version": "d3cfde44f8089768ebb08098c96d01ca260b88bccf238d55eee93f1c620ff5a5", @@ -9726,7 +17125,8 @@ "impliedFormat": 1 }, { - "version": "206e73f49f16633113787cc651dc03dc900379395dfa02ab1ef4c9cbbcd5adc2", + "version": "36eb5babc665b890786550d4a8cb20ef7105673a6d5551fbdd7012877bb26942", + "signature": "206e73f49f16633113787cc651dc03dc900379395dfa02ab1ef4c9cbbcd5adc2", "impliedFormat": 1 }, { @@ -9783,23 +17183,29 @@ }, "feb22d94150b9f67c73627fa4111c0c165aad04c8dfa9504b8c3b9ff2ba4f6f1", "a1f0147a61528aa480d3836e19641f410dd9ed911ceae88472b46ba3e87f49fe", - "9b5e88c723f00de166a74251119f7cb9fd066c15a7ac224641b1be8f3a7f2477", - "9aea0694ee3e9b9f4b40de7f3372738f57b3d4624675c352f31ad01726a4b46e", - "e4425d06794dbec1a9769c76796be2e399c3d13c1f233ed32d5a04dc74a19fa0", { - "version": "dcaae3cacc1e4319370dee127e85f01b28de13f6d1bc6a0346fc0d7bac563d62", + "version": "17e66270055cd906f6511b6ef8d9226f0add20b2d737d9f817057253c6505f1e", + "signature": "9b5e88c723f00de166a74251119f7cb9fd066c15a7ac224641b1be8f3a7f2477" + }, + "9aea0694ee3e9b9f4b40de7f3372738f57b3d4624675c352f31ad01726a4b46e", + { + "version": "0b87ba38c3f2fdd08a4b077c8b7e4e90e87a7e04d34eee8895aed7385e699cc8", + "signature": "e4425d06794dbec1a9769c76796be2e399c3d13c1f233ed32d5a04dc74a19fa0" + }, + { + "version": "460638da79a2ce7b2ba53cb14d62ff26a822b8d7330414e8f0d7d356cf54e7dc", "signature": "1c658dc9106874bd71a6d7e716003ee0fb252bcf1181d96d12205c324946ff48" }, { - "version": "ed36ba497602cafe98b936bb5bac23161b5b83f3b951375e3f0f35148b5e646e", + "version": "230ff4af11d784971f535a3cd4511a49fee8ca40c4406fdb365d7f81f60e4637", "signature": "3f42e9435009253cd9edf8645627a3ec26f48370fd3dc014df17d97cba6f5541" }, { - "version": "66161ecf9b8536c95aa5f60baa7b1b300fb16728dd8763510a61399b73dda353", + "version": "72592ead32da30c17dde4f068fbb27ecd39c2c1a1da9c75716c91670e5dc26e3", "signature": "bf56bc048fa334ced2877586078ab3e05d074d7f576af59abd350c56ffa0577e" }, { - "version": "7a297894fca343e761b130ab5c8e3e26a3bd7008f15c4fa9f6128dc7cbfdfaec", + "version": "29a290f03ae1d785cc2bec49e9527f3a54190258b55d83bc04f9e8f1af74af68", "signature": "e781c54270f5c8da08e52c7cb4376913fa9f32aa355b7924912f78311cab7975" }, "b718ed2fec19cd221d14cc7bbd89ed850f45cb3cd8c53dff13a3b0b6e557d18b", @@ -9808,13 +17214,19 @@ "impliedFormat": 99 }, { - "version": "db3af79b7fdb5b56e8877490b0587d2381d8e017cf1d8cd5d7394dee041da29f", + "version": "b436e02d74d3a9386695c33a78e401979fb6cc7ded7031a52628542d6739341c", "signature": "ef4540ac3e8fca10e0ef8c3e1b2f124c4c14487a83641878351d102fad161817" }, "bbbe2c8dea94ed5e8b509640b3ebb7541f915ae9bb0b60d963d98ef7ecd78d29", - "b2fb28ca0e6c08d0d2e0f1c200aa51522eec8824d0688a7baeb36433e6219a57", + { + "version": "227c6b9685a785db07ad29a6ad37d61f48cf6d62ade571436c31abe1d5c966d6", + "signature": "b2fb28ca0e6c08d0d2e0f1c200aa51522eec8824d0688a7baeb36433e6219a57" + }, "edf878df729154b040d0a56754951c7423aa9cc334bc3db58d15dd0d5d479fdf", - "07c496333af0c4e5edbf2d90e241cf7c60e1dbdd54fbeba1d6e0364e8aca848d", + { + "version": "7c2f43f5f6b4197dbf19c90555077284ab94bd29c6406e5c695c78c39f178034", + "signature": "07c496333af0c4e5edbf2d90e241cf7c60e1dbdd54fbeba1d6e0364e8aca848d" + }, { "version": "c2c2a861a338244d7dd700d0c52a78916b4bb75b98fc8ca5e7c501899fc03796", "impliedFormat": 1 @@ -9843,6 +17255,31 @@ "version": "25be1eb939c9c63242c7a45446edb20c40541da967f43f1aa6a00ed53c0552db", "impliedFormat": 1 }, + { + "version": "b1538a92b9bae8d230267210c5db38c2eb6bdb352128a3ce3aa8c6acf9fc9622", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "6fc1a4f64372593767a9b7b774e9b3b92bf04e8785c3f9ea98973aa9f4bbe490", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "ff09b6fbdcf74d8af4e131b8866925c5e18d225540b9b19ce9485ca93e574d84", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "d5895252efa27a50f134a9b580aa61f7def5ab73d0a8071f9b5bf9a317c01c2d", + "signature": false, + "impliedFormat": 1 + }, + { + "version": "1f366bde16e0513fa7b64f87f86689c4d36efd85afce7eb24753e9c99b91c319", + "signature": false, + "impliedFormat": 1 + }, { "version": "a4a39b5714adfcadd3bbea6698ca2e942606d833bde62ad5fb6ec55f5e438ff8", "impliedFormat": 1 @@ -9852,19 +17289,7 @@ "impliedFormat": 1 }, { - "version": "97066cfd7010c2463bfcc2e7c0adc4bf2786ea682035f5a210c21f123ca42237", - "impliedFormat": 1 - }, - { - "version": "de0199a112f75809a7f80ec071495159dcf3e434bc021347e0175627398264c3", - "impliedFormat": 1 - }, - { - "version": "1a2bed55cfa62b4649485df27c0e560b04d4da4911e3a9f0475468721495563f", - "impliedFormat": 1 - }, - { - "version": "854045924626ba585f454b53531c42aed4365f02301aa8eca596423f4675b71f", + "version": "1f68ab0e055994eb337b67aa87d2a15e0200951e9664959b3866ee6f6b11a0fe", "impliedFormat": 1 }, { @@ -10245,28 +17670,13 @@ "version": "96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538", "impliedFormat": 1 }, - { - "version": "97066cfd7010c2463bfcc2e7c0adc4bf2786ea682035f5a210c21f123ca42237", - "impliedFormat": 99 - }, - { - "version": "de0199a112f75809a7f80ec071495159dcf3e434bc021347e0175627398264c3", - "impliedFormat": 99 - }, - { - "version": "1a2bed55cfa62b4649485df27c0e560b04d4da4911e3a9f0475468721495563f", - "impliedFormat": 99 - }, - { - "version": "854045924626ba585f454b53531c42aed4365f02301aa8eca596423f4675b71f", - "impliedFormat": 99 - }, { "version": "4113fcb657953db88a125082f517a4b51083526a18765e90f2401a5dbb864d7e", "impliedFormat": 1 }, { - "version": "b3a24e1c22dd4fde2ce413fb8244e5fa8773ffca88e8173c780845c9856aef73", + "version": "619b27779179fc871684a78d5a6432de23491571983363bff6af262a996a9058", + "signature": "b3a24e1c22dd4fde2ce413fb8244e5fa8773ffca88e8173c780845c9856aef73", "impliedFormat": 1 }, { @@ -10285,6 +17695,11 @@ "version": "10281654231a4dfa1a41af0415afbd6d0998417959aed30c9f0054644ce10f5c", "impliedFormat": 1 }, + { + "version": "7fa8d75d229eeaee235a801758d9c694e94405013fe77d5d1dd8e3201fc414f1", + "signature": false, + "impliedFormat": 1 + }, { "version": "bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960", "impliedFormat": 1 @@ -10296,17 +17711,16 @@ ], "root": [ 203, - 635, - 1454, - 1455, - 1457, - 1458, - 1461, - 1465, - [1681, 1683], - [1685, 1695], - [1714, 1721], - [1723, 1727] + 657, + 1392, + 1394, + [1476, 1480], + 1483, + 1487, + [2730, 2732], + [2734, 2745], + [2764, 2771], + [2773, 2777] ], "options": { "allowJs": true, @@ -10321,1619 +17735,2625 @@ "tsBuildInfoFile": "./tsbuildinfo.json" }, "referencedMap": [ - [634, 1], - [203, 2], - [635, 3], - [1455, 4], - [1457, 5], - [1695, 6], - [1714, 7], - [1715, 6], - [1723, 8], - [1724, 6], - [1727, 9], - [1688, 10], - [1694, 11], - [1692, 12], - [1690, 13], - [1689, 12], - [1693, 14], - [1691, 1], - [1725, 15], - [1726, 16], - [1716, 17], - [1717, 18], - [1721, 19], - [1718, 20], - [1719, 21], - [1720, 22], - [1465, 23], - [1681, 24], - [1682, 25], - [1683, 26], - [1685, 27], - [1686, 28], - [1454, 29], - [1687, 30], - [1458, 31], - [1461, 32], - [1634, 33], - [1637, 34], - [1635, 35], - [1632, 36], - [1631, 1], - [1636, 37], - [1630, 37], - [1633, 38], - [1638, 39], - [1640, 40], - [1628, 1], - [1650, 41], - [1644, 42], - [1646, 43], - [1649, 44], - [1645, 45], - [1647, 1], - [1648, 46], - [1639, 33], - [1641, 47], - [1730, 48], - [1728, 1], - [1684, 49], - [1460, 50], - [1459, 51], - [1652, 52], - [1661, 53], - [1627, 54], - [1651, 55], - [1656, 56], - [1655, 57], - [1654, 58], - [1657, 59], - [1653, 60], - [66, 61], - [65, 62], - [63, 63], - [62, 64], - [61, 62], - [70, 65], - [1710, 66], - [1709, 67], - [395, 1], - [197, 65], - [1085, 68], - [1086, 69], - [1087, 70], - [1088, 69], - [1089, 69], - [1090, 71], - [1080, 1], - [1081, 72], - [1082, 73], - [1083, 74], - [1084, 75], - [962, 76], - [965, 77], - [971, 78], - [974, 79], - [995, 80], - [973, 81], - [954, 1], - [955, 82], - [956, 83], - [959, 1], - [957, 1], - [958, 1], - [996, 84], - [961, 76], - [960, 1], - [997, 85], - [964, 77], - [963, 1], - [1001, 86], - [998, 87], - [968, 88], - [970, 89], - [967, 90], - [969, 91], - [966, 88], - [999, 92], - [972, 76], - [1000, 93], - [985, 94], - [987, 95], - [989, 96], - [988, 97], - [982, 98], - [975, 99], - [994, 100], - [991, 101], - [993, 102], - [978, 103], - [980, 104], - [977, 101], - [981, 1], - [992, 105], - [979, 1], - [990, 1], - [976, 1], - [983, 106], - [984, 1], - [986, 107], - [1137, 74], - [1138, 108], - [1139, 108], - [1140, 109], - [1030, 1], - [1022, 74], - [1031, 74], - [1023, 1], - [1024, 74], - [1026, 110], - [1027, 111], - [1028, 74], - [1029, 1], - [1025, 74], - [1049, 112], - [1048, 113], - [1037, 114], - [1032, 1], - [1033, 1], - [1036, 115], - [1034, 1], - [1035, 1], - [1038, 74], - [1042, 74], - [1039, 74], - [1040, 74], - [1041, 74], - [1046, 1], - [1047, 74], - [1043, 1], - [1044, 1], - [1045, 1], - [1277, 116], - [1278, 117], - [1276, 118], - [1258, 1], - [1259, 119], - [1257, 120], - [1256, 121], - [1274, 122], - [1273, 123], - [1272, 124], - [1192, 1], - [1189, 1], - [1193, 125], - [1191, 126], - [1190, 127], - [1270, 128], - [1269, 124], - [1201, 129], - [1200, 130], - [1199, 131], - [1243, 1], - [1244, 132], - [1242, 124], - [1106, 133], - [1107, 134], - [1105, 135], - [1205, 136], - [1204, 137], - [1203, 118], - [1263, 138], - [1262, 139], - [1261, 124], - [1252, 1], - [1253, 140], - [1251, 141], - [1250, 131], - [1208, 142], - [1207, 124], - [1212, 143], - [1211, 144], - [1210, 131], - [1216, 145], - [1215, 146], - [1214, 131], - [1220, 147], - [1219, 148], - [1218, 124], - [1224, 149], - [1223, 150], - [1222, 131], - [1237, 1], - [1238, 151], - [1236, 152], - [1235, 153], - [1267, 154], - [1266, 155], - [1265, 124], - [1186, 156], - [1184, 118], - [1185, 157], - [1093, 158], - [1104, 159], - [1095, 160], - [1100, 161], - [1101, 161], - [1099, 162], - [1098, 163], - [1096, 164], - [1097, 165], - [1103, 1], - [1094, 161], - [1091, 166], - [1092, 160], - [1102, 161], - [1004, 167], - [1015, 168], - [1003, 169], - [1005, 170], - [1006, 171], - [1013, 169], - [1014, 172], - [1012, 173], - [1007, 171], - [1008, 171], - [1009, 171], - [1010, 171], - [1011, 174], - [1019, 175], - [1018, 176], - [1016, 1], - [1017, 177], - [1002, 178], - [1055, 179], - [1020, 1], - [1021, 74], - [1052, 180], - [1053, 181], - [1050, 74], - [1057, 182], - [1062, 183], - [1063, 183], - [1065, 184], - [1051, 185], - [1064, 186], - [1056, 187], - [1070, 188], - [1061, 189], - [1059, 190], - [1058, 191], - [1060, 192], - [1066, 193], - [1067, 193], - [1068, 194], - [1069, 193], - [1054, 195], - [1663, 1], - [1530, 196], - [1532, 197], - [1533, 198], - [1489, 199], - [1534, 199], - [1472, 200], - [1481, 201], - [1531, 200], - [1535, 202], - [1470, 196], - [1486, 203], - [1536, 196], - [1483, 199], - [1494, 202], - [1484, 199], - [1537, 204], - [1538, 205], - [1496, 199], - [1493, 206], - [1539, 207], - [1541, 208], - [1542, 209], - [1543, 196], - [1544, 210], - [1491, 211], - [1485, 199], - [1471, 196], - [1476, 200], - [1545, 212], - [1492, 200], - [1546, 200], - [1547, 210], - [1548, 199], - [1549, 200], - [1478, 196], - [1550, 200], - [1551, 212], - [1552, 213], - [1554, 214], - [1553, 199], - [1555, 215], - [1556, 205], - [1540, 199], - [1490, 1], - [863, 216], - [867, 217], - [860, 218], - [861, 218], - [864, 218], - [857, 219], - [858, 1], - [856, 220], - [854, 1], - [866, 218], - [859, 218], - [865, 221], - [862, 218], - [855, 222], - [1366, 223], - [1367, 224], - [1362, 1], - [1365, 225], - [1363, 1], - [1364, 226], - [1305, 1], - [950, 227], - [952, 228], - [951, 218], - [947, 1], - [948, 229], - [949, 6], - [1303, 230], - [941, 231], - [933, 232], - [934, 233], - [935, 234], - [932, 6], - [936, 6], - [931, 6], - [944, 1], - [938, 235], - [946, 1], - [945, 231], - [943, 236], - [940, 231], - [939, 231], - [1372, 237], - [937, 218], - [1370, 238], - [1371, 239], - [1079, 240], - [942, 1], - [1078, 236], - [1373, 241], - [1304, 242], - [723, 243], - [719, 244], - [695, 245], - [694, 246], - [741, 247], - [831, 1], - [698, 248], - [728, 249], - [688, 250], - [740, 1], - [717, 251], - [718, 252], - [714, 253], - [721, 254], - [716, 255], - [763, 256], - [760, 257], - [832, 222], - [790, 258], - [791, 258], - [792, 258], - [793, 258], - [794, 1], - [686, 259], - [747, 260], - [769, 261], - [755, 262], - [748, 263], - [743, 260], - [749, 260], - [756, 260], - [757, 260], - [758, 264], - [742, 260], - [744, 260], - [762, 1], - [745, 218], - [746, 260], - [750, 265], - [751, 260], - [753, 218], - [752, 263], - [766, 266], - [764, 267], - [765, 268], - [767, 269], - [768, 270], - [759, 271], - [722, 272], - [674, 273], - [689, 274], - [713, 1], - [700, 275], - [720, 276], - [708, 277], - [701, 1], - [703, 278], - [712, 279], - [711, 280], - [709, 281], - [710, 282], - [706, 283], - [705, 284], - [707, 283], - [692, 285], - [702, 286], - [725, 287], - [726, 288], - [699, 289], - [761, 1], - [636, 1], - [638, 290], - [829, 1], - [650, 291], - [652, 292], - [649, 293], - [653, 1], - [651, 1], - [664, 1], - [654, 1], - [670, 294], - [827, 1], - [680, 295], - [671, 296], - [678, 297], - [672, 1], - [657, 298], - [655, 299], - [660, 300], - [659, 301], [656, 1], - [754, 302], - [681, 303], - [645, 280], - [662, 304], - [640, 1], - [675, 1], - [663, 1], - [648, 305], - [641, 1], - [685, 306], - [667, 1], - [661, 1], - [795, 1], - [665, 307], - [666, 296], - [647, 302], - [828, 1], - [682, 308], - [668, 309], - [683, 310], - [669, 311], - [637, 1], - [644, 312], - [642, 1], - [676, 1], - [677, 313], - [687, 314], - [679, 315], - [704, 280], - [673, 316], - [643, 1], - [684, 317], - [658, 1], - [830, 1], - [646, 1], - [802, 1], - [785, 318], - [820, 313], - [776, 1], - [778, 319], - [777, 320], - [727, 321], - [817, 316], - [786, 290], - [787, 1], - [815, 322], - [738, 1], - [826, 323], - [798, 258], - [788, 324], - [696, 1], - [814, 325], - [789, 258], - [819, 326], - [806, 1], - [639, 296], - [824, 1], - [779, 1], - [781, 327], - [780, 328], - [731, 1], - [729, 329], - [733, 330], - [796, 331], - [797, 1], - [730, 332], - [784, 1], - [783, 333], - [782, 1], - [821, 1], - [737, 334], - [799, 335], - [808, 315], - [800, 1], - [801, 1], - [803, 336], - [773, 1], - [775, 337], - [774, 338], - [732, 304], - [735, 1], - [804, 1], - [715, 339], - [724, 1], - [822, 1], - [816, 340], - [739, 341], - [736, 329], - [805, 290], - [734, 286], - [693, 342], - [807, 343], - [810, 344], - [811, 1], - [812, 1], + [203, 2], + [657, 3], + [1392, 4], + [1394, 5], + [2745, 6], + [2764, 7], + [2765, 6], + [2773, 8], + [2774, 6], + [2777, 9], + [2737, 10], + [2738, 11], + [2744, 12], + [2742, 1], + [2740, 13], + [2739, 14], + [2743, 15], + [2741, 1], + [2775, 16], + [2776, 17], + [2766, 18], + [2767, 13], + [2771, 19], + [2768, 20], + [2769, 21], + [2770, 22], + [1487, 23], + [2730, 24], + [2731, 25], + [2732, 26], + [2734, 27], + [2735, 28], + [1476, 29], + [1477, 30], + [1479, 31], + [2736, 32], + [1480, 33], + [1483, 34], + [1478, 30], + [2684, 35], + [2687, 36], + [2685, 37], + [2682, 38], + [2681, 1], + [2686, 39], + [2680, 39], + [2683, 40], + [2688, 41], + [2690, 42], + [2678, 1], + [2708, 43], + [2694, 44], + [2696, 45], + [2699, 46], + [2695, 47], + [2697, 1], + [2698, 48], + [2689, 35], + [2691, 49], + [2780, 50], + [2778, 1], + [2172, 51], + [2176, 52], + [2175, 53], + [2171, 54], + [2174, 55], + [2167, 56], + [2173, 51], + [2233, 57], + [2235, 58], + [2234, 59], + [2224, 60], + [2267, 61], + [2266, 62], + [2238, 63], + [2239, 64], + [2271, 65], + [2270, 66], + [2269, 64], + [2273, 67], + [2272, 68], + [2268, 69], + [2274, 69], + [2275, 70], + [2280, 71], + [2281, 72], + [2279, 73], + [2278, 74], + [2277, 75], + [2276, 71], + [2285, 76], + [2284, 77], + [2283, 78], + [2169, 79], + [2170, 80], + [2282, 81], + [2256, 82], + [2253, 83], + [2292, 69], + [2291, 69], + [2290, 69], + [2249, 83], + [2261, 64], + [2262, 69], + [2258, 69], + [2257, 69], + [2248, 69], + [2295, 84], + [2294, 85], + [2247, 86], + [2246, 86], + [2289, 83], + [2259, 69], + [2287, 87], + [2250, 69], + [2255, 88], + [2252, 89], + [2254, 82], + [2237, 90], + [2286, 63], + [2264, 1], + [2265, 1], + [2260, 69], + [2251, 69], + [2245, 86], + [2288, 64], + [2326, 91], + [2325, 92], + [2323, 93], + [2301, 94], + [2324, 69], + [2327, 95], + [2329, 96], + [2328, 97], + [2225, 83], + [2226, 69], + [2227, 69], + [2331, 98], + [2330, 99], + [2228, 100], + [2229, 89], + [2221, 101], + [2223, 102], + [2222, 103], + [2230, 69], + [2231, 104], + [2232, 83], + [2332, 64], + [2333, 105], + [2335, 106], + [2334, 107], + [2336, 83], + [2337, 69], + [2338, 69], + [2339, 69], + [2341, 69], + [2340, 69], + [2353, 108], + [2352, 109], + [2345, 110], + [2346, 89], + [2347, 95], + [2343, 111], + [2344, 112], + [2348, 113], + [2349, 69], + [2350, 104], + [2351, 83], + [2357, 71], + [2356, 87], + [2355, 114], + [2361, 115], + [2360, 116], + [2359, 87], + [2354, 87], + [2243, 117], + [2358, 118], + [2365, 119], + [2364, 120], + [2363, 69], + [2362, 69], + [2212, 121], + [2194, 122], + [2197, 123], + [2193, 124], + [2210, 125], + [2192, 126], + [2213, 127], + [2198, 126], + [2199, 128], + [2214, 126], + [2208, 129], + [2200, 126], + [2202, 130], + [2203, 126], + [2204, 131], + [2201, 126], + [2191, 132], + [2205, 125], + [2206, 126], + [2215, 133], + [2207, 121], + [2216, 134], + [2209, 135], + [2211, 136], + [2190, 1], + [2241, 137], + [2240, 138], + [2242, 139], + [2536, 140], + [2366, 141], + [2367, 142], + [2479, 69], + [2296, 82], + [2297, 83], + [2305, 83], + [2304, 143], + [2307, 69], + [2306, 69], + [2322, 144], + [2321, 145], + [2308, 69], + [2309, 69], + [2310, 88], + [2311, 89], + [2312, 82], + [2313, 143], + [2315, 83], + [2314, 69], + [2303, 146], + [2299, 147], + [2302, 148], + [2298, 149], + [2317, 150], + [2316, 151], + [2320, 69], + [2318, 152], + [2319, 69], + [2368, 143], + [2300, 153], + [2369, 154], + [2371, 155], + [2370, 69], + [2378, 156], + [2377, 157], + [2374, 158], + [2376, 158], + [2372, 69], + [2373, 158], + [2375, 158], + [2389, 82], + [2387, 83], + [2382, 83], + [2391, 69], + [2393, 159], + [2392, 160], + [2381, 69], + [2390, 69], + [2380, 69], + [2388, 161], + [2384, 89], + [2385, 82], + [2379, 56], + [2383, 69], + [2386, 69], + [2398, 162], + [2396, 162], + [2397, 162], + [2403, 163], + [2402, 164], + [2399, 162], + [2395, 165], + [2401, 162], + [2400, 162], + [2394, 1], + [2412, 82], + [2413, 83], + [2416, 69], + [2415, 69], + [2419, 166], + [2418, 167], + [2411, 88], + [2409, 89], + [2410, 82], + [2407, 168], + [2406, 169], + [2405, 170], + [2414, 69], + [2408, 171], + [2417, 69], + [2428, 82], + [2429, 83], + [2432, 172], + [2431, 173], + [2427, 161], + [2424, 174], + [2426, 82], + [2422, 175], + [2421, 176], + [2420, 177], + [2425, 178], + [2430, 69], + [2439, 179], + [2438, 180], + [2435, 181], + [2437, 181], + [2433, 69], + [2434, 181], + [2436, 181], + [2444, 71], + [2445, 182], + [2443, 183], + [2442, 184], + [2441, 83], + [2440, 87], + [2449, 185], + [2451, 69], + [2453, 186], + [2452, 187], + [2446, 69], + [2448, 185], + [2450, 69], + [2447, 185], + [2467, 82], + [2460, 83], + [2471, 69], + [2470, 69], + [2458, 69], + [2473, 188], + [2472, 189], + [2465, 83], + [2466, 69], + [2464, 69], + [2455, 87], + [2463, 69], + [2462, 88], + [2459, 89], + [2461, 82], + [2454, 90], + [2468, 69], + [2469, 69], + [2456, 87], + [2457, 69], + [2263, 69], + [2293, 190], + [2477, 191], + [2483, 192], + [2482, 193], + [2481, 191], + [2475, 191], + [2474, 71], + [2480, 194], + [2478, 191], + [2476, 191], + [2487, 195], + [2486, 196], + [2484, 197], + [2485, 198], + [2494, 199], + [2493, 200], + [2490, 201], + [2492, 202], + [2491, 203], + [2489, 204], + [2488, 202], + [2505, 69], + [2507, 82], + [2504, 69], + [2501, 69], + [2497, 205], + [2502, 69], + [2509, 206], + [2508, 207], + [2506, 174], + [2495, 208], + [2498, 209], + [2500, 210], + [2503, 69], + [2496, 211], + [2499, 69], + [2512, 56], + [2513, 212], + [2510, 56], + [2511, 213], + [2517, 214], + [2516, 214], + [2521, 215], + [2520, 216], + [2519, 214], + [2518, 214], + [2515, 69], + [2514, 217], + [2529, 82], + [2533, 218], + [2532, 219], + [2528, 161], + [2526, 174], + [2527, 82], + [2530, 64], + [2524, 220], + [2523, 221], + [2522, 222], + [2525, 223], + [2531, 69], + [2165, 224], + [2535, 225], + [2534, 226], + [2423, 89], + [2164, 227], + [2195, 1], + [2220, 228], + [2219, 229], + [2217, 1], + [2218, 230], + [2162, 1], + [2163, 231], + [2236, 64], + [2166, 232], + [2244, 233], + [2196, 226], + [2342, 64], + [2168, 64], + [2178, 64], + [2181, 234], + [2179, 1], + [2182, 235], + [2177, 236], + [2183, 237], + [2180, 238], + [2184, 64], + [2404, 1], + [2733, 239], + [1482, 240], + [1481, 241], + [2700, 242], + [2710, 243], + [2676, 244], + [2677, 245], + [2704, 246], + [2703, 247], + [2702, 248], + [2705, 249], + [2701, 250], + [1549, 1], + [1550, 251], + [1551, 252], + [1556, 253], + [1552, 252], + [1555, 1], + [1553, 1], + [1554, 1], + [66, 254], + [65, 255], + [63, 256], + [62, 257], + [61, 255], + [70, 258], + [2186, 259], + [2188, 260], + [2189, 261], + [2185, 1], + [2187, 1], + [2760, 262], + [2759, 263], + [502, 1], + [197, 258], + [1124, 264], + [1125, 265], + [1126, 266], + [1119, 1], + [1120, 267], + [1121, 268], + [1122, 269], + [1123, 270], + [1004, 271], + [1007, 272], + [1013, 273], + [1016, 274], + [1037, 275], + [1015, 276], + [996, 1], + [997, 277], + [998, 278], + [1001, 1], + [999, 1], + [1000, 1], + [1038, 279], + [1003, 271], + [1002, 1], + [1039, 280], + [1006, 272], + [1005, 1], + [1043, 281], + [1040, 282], + [1010, 283], + [1012, 284], + [1009, 285], + [1011, 286], + [1008, 283], + [1041, 287], + [1014, 271], + [1042, 288], + [1027, 289], + [1029, 290], + [1031, 291], + [1030, 292], + [1024, 293], + [1017, 294], + [1036, 295], + [1033, 296], + [1035, 297], + [1020, 298], + [1022, 299], + [1019, 296], + [1023, 1], + [1034, 300], + [1021, 1], + [1032, 1], + [1018, 1], + [1025, 301], + [1026, 1], + [1028, 302], + [1178, 269], + [1179, 303], + [1180, 303], + [1181, 304], + [1070, 1], + [1062, 269], + [1071, 269], + [1063, 1], + [1064, 269], + [1066, 305], + [1073, 1], + [1067, 306], + [1068, 269], + [1069, 1], + [1065, 269], + [1088, 307], + [1087, 308], + [1076, 309], + [1072, 1], + [1075, 310], + [1074, 1], + [1077, 269], + [1081, 269], + [1078, 269], + [1079, 269], + [1080, 269], + [1085, 1], + [1086, 269], + [1082, 1], + [1083, 1], + [1084, 1], + [1343, 311], + [1344, 312], + [1342, 313], + [1324, 1], + [1325, 314], + [1323, 315], + [1322, 316], + [1340, 317], + [1339, 318], + [1338, 319], + [1229, 1], + [1226, 1], + [1230, 320], + [1228, 321], + [1227, 322], + [1336, 323], + [1335, 319], + [1238, 324], + [1237, 325], + [1236, 326], + [1309, 1], + [1310, 327], + [1308, 319], + [1142, 328], + [1143, 329], + [1141, 330], + [1265, 331], + [1264, 332], + [1263, 313], + [1242, 333], + [1241, 334], + [1240, 313], + [1329, 335], + [1328, 336], + [1327, 319], + [1318, 1], + [1319, 337], + [1317, 338], + [1316, 326], + [1245, 339], + [1244, 319], + [1249, 340], + [1248, 341], + [1247, 326], + [1253, 342], + [1252, 343], + [1251, 326], + [1257, 344], + [1256, 345], + [1255, 319], + [1261, 346], + [1260, 347], + [1259, 326], + [1277, 1], + [1278, 348], + [1276, 349], + [1275, 350], + [1333, 351], + [1332, 352], + [1331, 319], + [1223, 353], + [1221, 313], + [1222, 354], + [1129, 355], + [1140, 356], + [1131, 357], + [1136, 358], + [1137, 358], + [1135, 359], + [1134, 360], + [1132, 361], + [1133, 362], + [1139, 1], + [1130, 358], + [1127, 363], + [1128, 357], + [1138, 358], + [1046, 364], + [1057, 365], + [1045, 366], + [1058, 1], + [1047, 367], + [1048, 368], + [1055, 366], + [1056, 369], + [1054, 370], + [1049, 368], + [1050, 368], + [1051, 368], + [1052, 368], + [1053, 371], + [1059, 372], + [1044, 373], + [1094, 374], + [1060, 1], + [1061, 269], + [1091, 375], + [1092, 376], + [1089, 269], + [1096, 377], + [1101, 378], + [1102, 378], + [1104, 379], + [1090, 380], + [1103, 381], + [1095, 382], + [1109, 383], + [1100, 384], + [1098, 385], + [1097, 386], + [1099, 387], + [1105, 388], + [1106, 388], + [1107, 389], + [1108, 388], + [1093, 390], + [2712, 1], + [1306, 391], + [1294, 392], + [1305, 393], + [1296, 394], + [1301, 395], + [1302, 395], + [1300, 396], + [1299, 397], + [1297, 398], + [1298, 362], + [1304, 1], + [1295, 395], + [1292, 399], + [1293, 394], + [1303, 395], + [1286, 400], + [1287, 401], + [1288, 402], + [1289, 401], + [1290, 401], + [1291, 403], + [1281, 1], + [1282, 404], + [1283, 405], + [1284, 269], + [1285, 406], + [1493, 64], + [1497, 407], + [1502, 408], + [1506, 409], + [1503, 409], + [1504, 410], + [1505, 411], + [1496, 410], + [1511, 412], + [1494, 64], + [1501, 413], + [1512, 64], + [1498, 409], + [1513, 412], + [1499, 409], + [1515, 414], + [1516, 415], + [1514, 409], + [1510, 416], + [1517, 417], + [1519, 418], + [1520, 419], + [1521, 64], + [1522, 420], + [1508, 421], + [1500, 409], + [1495, 64], + [1523, 410], + [1524, 422], + [1509, 410], + [1525, 410], + [1526, 420], + [1527, 409], + [1528, 410], + [1529, 64], + [1530, 410], + [1531, 422], + [1532, 423], + [1534, 424], + [1533, 409], + [1535, 425], + [1536, 415], + [1518, 409], + [1507, 1], + [2037, 426], + [2036, 1], + [2033, 1], + [904, 427], + [908, 428], + [901, 429], + [902, 429], + [905, 429], + [898, 430], + [899, 1], + [897, 431], + [895, 1], + [907, 429], + [900, 429], + [906, 432], + [903, 429], + [896, 433], + [1377, 434], + [1378, 435], + [1373, 1], + [1379, 436], + [1374, 1], + [1376, 437], + [1375, 1], + [1372, 438], + [992, 439], + [994, 440], + [993, 429], + [988, 1], + [989, 441], + [990, 6], + [1369, 442], + [982, 443], + [974, 444], + [975, 445], + [976, 446], + [973, 6], + [977, 6], + [972, 6], + [985, 1], + [979, 447], + [991, 429], + [987, 1], + [986, 443], + [984, 448], + [981, 443], + [980, 443], + [1385, 449], + [978, 429], + [1382, 450], + [1383, 1], + [1384, 451], + [1118, 452], + [983, 1], + [1117, 448], + [1386, 453], + [1370, 454], + [749, 455], + [745, 456], + [721, 457], + [720, 458], + [661, 459], + [771, 460], + [869, 1], + [724, 461], + [755, 462], + [714, 463], + [770, 1], + [743, 464], + [744, 465], + [740, 466], + [747, 467], + [742, 468], + [796, 469], + [792, 470], + [871, 433], + [827, 471], + [828, 471], + [829, 471], + [830, 471], + [831, 1], + [711, 472], + [777, 473], + [802, 474], + [786, 475], + [790, 473], + [778, 476], + [773, 473], + [779, 473], + [787, 473], + [788, 473], + [789, 477], + [772, 473], + [774, 473], + [795, 478], + [794, 479], + [775, 429], + [782, 479], + [776, 473], + [780, 480], + [781, 473], + [784, 429], + [783, 476], + [799, 481], + [797, 482], + [798, 483], + [864, 484], + [800, 485], + [801, 486], + [791, 487], + [748, 488], + [699, 489], + [715, 490], + [739, 1], + [726, 491], + [746, 492], + [810, 1], + [812, 493], + [811, 494], + [734, 495], + [727, 1], [813, 1], - [690, 345], - [691, 346], - [818, 280], - [770, 332], - [771, 1], - [772, 347], - [823, 1], - [825, 1], - [697, 348], - [809, 1], - [916, 349], - [918, 350], - [930, 351], - [917, 352], - [927, 353], - [924, 354], - [926, 355], - [925, 356], - [923, 354], - [921, 357], - [928, 358], - [929, 358], - [919, 218], - [915, 359], - [922, 359], - [920, 196], - [836, 360], + [815, 496], + [814, 497], + [729, 498], + [738, 499], + [818, 1], + [817, 500], + [816, 1], + [821, 1], + [820, 501], + [819, 1], + [737, 479], + [735, 502], + [807, 1], + [809, 503], + [808, 504], + [736, 505], + [732, 506], + [731, 507], + [733, 506], + [718, 508], + [728, 509], + [806, 510], + [803, 511], + [804, 1], + [805, 512], + [750, 513], + [751, 514], + [725, 515], + [793, 1], + [662, 1], + [664, 516], + [867, 1], + [675, 517], + [677, 518], + [674, 519], + [678, 1], + [676, 1], + [689, 1], + [679, 1], + [695, 520], + [865, 1], + [705, 521], + [696, 522], + [703, 523], + [697, 1], + [682, 524], + [680, 525], + [685, 526], + [684, 527], + [681, 1], + [785, 528], + [706, 529], + [670, 479], + [687, 530], + [660, 1], + [700, 1], + [688, 531], + [673, 532], + [666, 1], + [710, 533], + [692, 1], + [686, 1], + [832, 1], + [690, 534], + [691, 522], + [672, 528], + [866, 1], + [707, 535], + [693, 536], + [708, 537], + [694, 538], + [663, 1], + [669, 539], + [667, 1], + [701, 1], + [702, 540], + [712, 541], + [704, 542], + [730, 479], + [698, 543], + [668, 1], + [709, 544], + [683, 1], + [868, 1], + [833, 1], + [671, 1], + [840, 1], + [822, 545], + [752, 1], + [858, 540], + [855, 543], + [823, 516], + [824, 1], + [853, 546], + [768, 1], + [863, 547], + [836, 471], + [825, 548], + [722, 1], + [753, 1], + [852, 549], + [826, 471], + [857, 550], + [844, 1], + [665, 522], + [861, 1], + [758, 1], + [756, 551], + [761, 552], + [834, 553], + [835, 1], + [757, 511], + [765, 1], + [767, 554], + [837, 555], + [846, 542], + [838, 1], + [839, 1], + [841, 556], + [759, 557], + [763, 1], + [842, 1], + [741, 558], + [713, 1], + [859, 1], + [870, 1], + [854, 559], + [769, 560], + [754, 561], + [764, 551], + [843, 516], + [762, 509], + [719, 562], + [845, 563], + [848, 564], + [849, 1], + [850, 1], + [851, 1], + [716, 565], + [766, 566], + [717, 567], + [760, 1], + [856, 479], + [860, 1], + [862, 1], + [723, 568], + [847, 1], + [957, 569], + [959, 570], + [971, 571], + [958, 572], + [968, 573], + [965, 574], + [967, 575], + [966, 575], + [964, 574], + [962, 576], + [969, 577], + [970, 577], + [960, 429], + [956, 578], + [963, 578], + [961, 64], + [875, 579], + [953, 1], + [880, 429], + [891, 580], + [872, 429], + [873, 429], + [876, 429], + [955, 581], + [884, 429], + [888, 429], + [889, 429], + [894, 429], + [937, 429], + [949, 582], + [948, 583], + [947, 1], + [940, 584], + [939, 585], + [938, 1], + [943, 586], + [942, 587], + [941, 1], + [952, 588], + [951, 589], + [950, 1], + [946, 590], + [945, 591], + [944, 1], + [885, 429], + [909, 592], + [893, 429], + [886, 429], + [887, 429], + [892, 429], + [936, 429], + [954, 429], + [878, 429], + [935, 429], + [883, 429], + [882, 593], + [879, 429], + [931, 429], + [932, 429], + [930, 429], + [933, 429], + [877, 594], + [934, 429], + [874, 429], + [881, 429], + [890, 429], + [923, 1], + [926, 595], + [925, 596], + [922, 429], + [924, 429], + [929, 597], + [927, 429], + [928, 429], + [920, 598], + [921, 599], + [919, 600], + [917, 601], + [916, 602], + [911, 603], + [915, 604], + [914, 605], + [910, 606], + [913, 1], + [918, 607], [912, 1], - [840, 218], - [850, 361], - [833, 218], - [834, 218], - [837, 218], - [914, 362], - [844, 218], - [848, 218], - [896, 218], - [853, 218], - [908, 363], - [907, 364], - [906, 1], - [899, 365], - [898, 366], - [897, 1], - [902, 367], - [901, 368], - [900, 1], - [911, 369], - [910, 370], - [909, 1], - [905, 371], - [904, 372], - [903, 1], - [845, 218], - [868, 373], - [852, 218], - [846, 218], - [847, 218], - [851, 218], - [895, 218], - [913, 218], - [894, 218], - [843, 218], - [842, 374], - [839, 218], - [890, 218], - [891, 218], - [889, 218], - [892, 218], - [838, 375], - [893, 218], - [835, 218], - [841, 218], - [849, 218], - [882, 1], - [885, 376], - [884, 377], - [881, 218], - [883, 218], - [888, 378], - [886, 218], - [887, 218], - [879, 379], - [880, 380], - [878, 381], - [876, 382], - [875, 383], - [870, 384], - [874, 385], - [873, 386], - [869, 387], - [872, 1], - [877, 388], - [871, 1], - [1155, 1], - [1158, 389], - [1156, 1], - [1157, 1], - [1181, 390], - [1130, 218], - [1131, 391], - [1134, 218], - [1123, 392], - [1124, 218], - [1112, 393], - [1120, 394], - [1119, 395], - [1113, 396], - [1125, 397], - [1126, 398], - [1127, 218], - [1122, 124], - [1121, 218], - [1128, 399], - [1129, 218], - [1136, 218], - [1132, 218], - [1133, 218], - [1135, 218], - [1110, 218], - [1111, 400], - [1159, 1], - [1141, 401], - [1143, 124], - [1142, 1], - [1146, 218], - [1118, 402], - [1150, 1], - [1144, 403], - [1145, 218], - [1114, 404], - [1115, 405], - [1116, 406], - [1117, 407], - [1148, 408], - [1153, 218], - [1151, 1], - [1152, 1], - [1154, 1], - [1149, 409], - [1147, 1], - [1109, 222], - [1302, 410], - [1292, 218], - [1293, 411], - [1288, 218], - [1289, 218], - [1290, 218], - [1291, 218], - [1188, 218], - [1183, 412], - [1187, 413], - [1279, 414], - [1285, 415], - [1260, 416], - [1275, 417], - [1194, 418], - [1198, 419], + [1217, 608], + [1212, 1], + [1215, 609], + [1213, 429], + [1214, 1], + [1218, 610], + [1189, 429], + [1190, 611], + [1202, 429], + [1193, 612], + [1194, 429], + [1146, 613], + [1175, 614], + [1174, 615], + [1147, 616], [1195, 1], - [1197, 420], - [1196, 131], - [1297, 421], - [1298, 422], - [1295, 423], - [1296, 424], - [1294, 131], - [1271, 425], - [1286, 415], - [1202, 426], - [1246, 427], - [1245, 428], - [1249, 429], - [1247, 131], - [1248, 1], - [1301, 218], - [1206, 430], - [1264, 431], - [1254, 432], - [1287, 415], - [1209, 433], - [1213, 434], - [1217, 435], - [1221, 436], - [1225, 437], - [1284, 438], - [1283, 415], - [1239, 439], - [1240, 415], - [1241, 415], - [1226, 218], - [1268, 440], - [1282, 441], - [1280, 124], - [1281, 218], - [1299, 442], - [1300, 443], - [1182, 444], - [1108, 222], - [1174, 1], - [1175, 74], - [1164, 445], - [1180, 446], - [1176, 447], - [1178, 448], + [1196, 617], + [1197, 429], + [1177, 319], + [1176, 429], + [1198, 618], + [1199, 429], + [1204, 429], + [1188, 429], + [1200, 429], + [1201, 429], + [1203, 429], + [1191, 429], + [1192, 619], + [1216, 1], + [1182, 620], + [1184, 319], + [1183, 1], + [1205, 429], + [1173, 621], + [1209, 1], + [1185, 622], + [1186, 429], + [1169, 623], + [1170, 624], + [1171, 625], + [1172, 626], + [1207, 627], + [1211, 429], + [1210, 1], + [1187, 1], + [1208, 1], + [1206, 1], + [1145, 433], + [1368, 628], + [1358, 429], + [1359, 629], + [1354, 429], + [1355, 429], + [1356, 429], + [1357, 429], + [1225, 429], + [1220, 630], + [1224, 631], + [1345, 632], + [1350, 633], + [1326, 634], + [1341, 635], + [1231, 636], + [1235, 637], + [1232, 1], + [1234, 638], + [1233, 326], + [1363, 639], + [1364, 640], + [1361, 641], + [1362, 642], + [1360, 326], + [1337, 643], + [1351, 633], + [1239, 644], + [1312, 645], + [1311, 646], + [1315, 647], + [1313, 326], + [1314, 1], + [1367, 429], + [1243, 648], + [1330, 649], + [1320, 650], + [1352, 633], + [1353, 633], + [1246, 651], + [1250, 652], + [1254, 653], + [1258, 654], + [1262, 655], + [1349, 633], + [1279, 656], + [1280, 633], + [1307, 657], + [1266, 658], + [1334, 659], + [1348, 660], + [1346, 319], + [1347, 429], + [1365, 661], + [1366, 662], + [1219, 663], + [1144, 433], + [1162, 1], + [1163, 664], + [1152, 665], + [1168, 666], + [1164, 667], + [1166, 668], + [1148, 1], + [1161, 429], + [1165, 669], + [1159, 670], + [1151, 668], + [1154, 670], + [1157, 429], + [1158, 269], + [1150, 668], + [1153, 671], + [1156, 672], + [1167, 1], + [1155, 673], [1160, 1], - [1173, 218], - [1177, 449], - [1171, 450], - [1163, 448], - [1166, 450], - [1169, 218], - [1170, 74], - [1162, 448], - [1165, 451], - [1168, 452], - [1179, 1], - [1167, 453], - [1172, 1], - [1161, 222], - [1071, 454], - [1077, 455], - [1076, 218], - [1075, 218], - [1074, 456], - [1072, 218], - [1073, 457], - [953, 222], - [1369, 458], - [1368, 459], - [1379, 1], - [1380, 460], - [1733, 461], - [1729, 48], - [1731, 462], - [1732, 48], - [1255, 463], - [1734, 463], - [1308, 464], - [1736, 465], - [1735, 466], + [1149, 433], + [1110, 674], + [1116, 675], + [1115, 429], + [1114, 429], + [1113, 676], + [1111, 429], + [1112, 677], + [995, 433], + [1381, 678], + [1380, 679], + [1396, 680], + [1395, 1], + [1397, 681], + [2783, 682], + [2779, 50], + [2781, 683], + [2782, 50], + [1321, 684], + [2784, 684], + [2785, 1], + [2786, 1], + [2787, 1], + [2788, 685], + [2046, 1], + [2023, 686], + [2047, 687], + [2022, 1], + [2789, 1], + [2792, 688], + [2791, 689], + [2790, 690], [67, 1], - [1741, 467], - [1742, 468], - [1743, 1], - [1830, 469], - [1809, 470], - [1811, 471], - [1810, 470], - [1813, 472], - [1815, 473], - [1816, 474], - [1817, 475], - [1818, 473], - [1819, 474], - [1820, 473], - [1821, 476], - [1822, 474], - [1823, 473], - [1824, 477], - [1825, 478], - [1826, 479], - [1827, 480], - [1814, 481], - [1828, 482], - [1812, 482], - [1829, 483], - [1807, 484], - [1757, 485], - [1755, 485], - [1782, 486], - [1770, 487], - [1750, 488], - [1747, 489], - [1783, 490], - [1756, 491], - [1758, 492], - [1751, 493], - [1746, 494], - [1744, 495], - [1806, 1], - [1752, 496], - [1780, 487], - [1781, 487], - [1784, 497], - [1785, 487], - [1786, 487], - [1787, 487], - [1788, 487], - [1789, 487], - [1790, 498], - [1791, 499], - [1792, 487], - [1748, 487], - [1793, 487], - [1794, 487], - [1795, 498], - [1796, 487], - [1797, 487], - [1798, 500], - [1799, 487], - [1800, 497], - [1801, 487], - [1749, 487], - [1802, 487], - [1803, 487], - [1804, 501], - [1753, 502], - [1805, 503], - [1759, 504], - [1767, 505], - [1762, 505], - [1761, 506], - [1760, 507], - [1765, 508], - [1769, 509], - [1768, 510], - [1763, 511], - [1764, 508], - [1766, 512], - [1754, 1], - [1745, 513], - [1775, 1], - [1776, 1], - [1777, 1], - [1779, 1], - [1778, 1], - [1773, 1], - [1774, 498], - [1772, 1], - [1771, 495], - [1831, 1], - [1832, 514], - [1833, 515], + [2793, 691], + [2794, 692], + [2795, 1], + [2882, 693], + [2861, 694], + [2863, 695], + [2862, 694], + [2865, 696], + [2867, 697], + [2868, 698], + [2869, 699], + [2870, 697], + [2871, 698], + [2872, 697], + [2873, 700], + [2874, 698], + [2875, 697], + [2876, 701], + [2877, 702], + [2878, 703], + [2879, 704], + [2866, 705], + [2880, 706], + [2864, 706], + [2881, 707], + [2859, 708], + [2809, 709], + [2807, 709], + [2834, 710], + [2822, 711], + [2802, 712], + [2799, 713], + [2835, 714], + [2808, 715], + [2810, 716], + [2803, 717], + [2798, 718], + [2796, 719], + [2858, 1], + [2804, 720], + [2832, 711], + [2833, 711], + [2836, 721], + [2837, 711], + [2838, 711], + [2839, 711], + [2840, 711], + [2841, 711], + [2842, 722], + [2843, 723], + [2844, 711], + [2800, 711], + [2845, 711], + [2846, 711], + [2847, 722], + [2848, 711], + [2849, 711], + [2850, 724], + [2851, 711], + [2852, 721], + [2853, 711], + [2801, 711], + [2854, 711], + [2855, 711], + [2856, 725], + [2805, 726], + [2857, 727], + [2811, 728], + [2819, 729], + [2814, 729], + [2813, 730], + [2812, 731], + [2817, 732], + [2821, 733], + [2820, 734], + [2815, 735], + [2816, 732], + [2818, 736], + [2806, 1], + [2797, 737], + [2827, 1], + [2828, 1], + [2829, 1], + [2831, 1], + [2830, 1], + [2825, 1], + [2826, 722], + [2824, 1], + [2823, 719], + [2883, 1], + [2884, 738], + [2885, 739], [60, 1], - [1834, 1], - [1839, 516], - [264, 517], - [265, 517], - [266, 518], - [218, 519], - [267, 520], - [268, 521], - [269, 522], + [2886, 1], + [2887, 740], + [264, 741], + [265, 741], + [266, 742], + [218, 743], + [267, 744], + [268, 745], + [269, 746], [213, 1], - [216, 523], + [216, 747], [214, 1], [215, 1], - [270, 524], - [271, 525], - [272, 526], - [273, 527], - [274, 528], - [275, 529], - [276, 529], - [277, 530], - [278, 531], - [279, 532], - [280, 533], + [270, 748], + [271, 749], + [272, 750], + [273, 751], + [274, 752], + [275, 753], + [276, 753], + [277, 754], + [278, 755], + [279, 756], + [280, 757], [219, 1], [217, 1], - [281, 534], - [282, 535], - [283, 536], - [316, 537], - [284, 538], - [285, 539], - [286, 540], - [287, 541], - [288, 165], - [289, 542], - [290, 543], - [291, 544], - [292, 545], - [293, 546], - [294, 546], - [295, 547], - [296, 1], - [297, 548], - [298, 549], - [300, 550], - [299, 551], - [301, 552], - [302, 553], - [303, 554], - [304, 555], - [305, 556], - [306, 557], - [307, 558], - [308, 559], - [309, 560], - [310, 561], - [311, 562], - [312, 563], - [313, 564], + [281, 758], + [282, 759], + [283, 760], + [317, 761], + [284, 762], + [285, 1], + [286, 763], + [287, 764], + [288, 765], + [289, 362], + [290, 766], + [291, 767], + [292, 768], + [293, 769], + [294, 770], + [295, 770], + [296, 771], + [297, 1], + [298, 772], + [299, 773], + [301, 774], + [300, 775], + [302, 776], + [303, 777], + [304, 778], + [305, 779], + [306, 780], + [307, 781], + [308, 782], + [309, 783], + [310, 784], + [311, 785], + [312, 786], + [313, 787], + [314, 788], [220, 1], [221, 1], [222, 1], - [261, 565], + [261, 789], [262, 1], [263, 1], - [314, 566], - [315, 567], - [1840, 568], - [1234, 569], - [1233, 570], - [1232, 569], - [322, 571], - [320, 196], - [323, 572], - [319, 196], - [541, 573], - [321, 573], - [317, 574], - [539, 1], - [318, 575], + [315, 790], + [316, 791], + [2888, 792], + [1274, 793], + [1273, 794], + [1272, 793], + [323, 795], + [321, 64], + [324, 796], + [320, 64], + [587, 797], + [322, 797], + [318, 798], + [585, 1], + [319, 799], [204, 1], - [206, 576], - [538, 196], - [412, 196], - [1841, 1], - [1842, 1], - [1843, 577], - [1808, 578], - [1844, 1], - [1845, 1], - [1846, 579], - [82, 580], - [83, 581], - [148, 582], - [156, 583], - [109, 584], - [110, 584], - [120, 585], - [108, 586], + [206, 800], + [584, 64], + [354, 64], + [2889, 1], + [2890, 1], + [2891, 801], + [2860, 802], + [2892, 1], + [2893, 1], + [2894, 1], + [2895, 803], + [82, 804], + [83, 805], + [148, 806], + [156, 807], + [109, 808], + [110, 808], + [120, 809], + [108, 810], [107, 1], - [111, 584], - [112, 584], - [113, 584], - [114, 584], - [115, 584], - [116, 584], - [117, 584], - [118, 584], - [119, 584], - [121, 587], - [157, 588], - [152, 589], - [122, 590], - [154, 591], - [153, 592], - [151, 593], - [155, 594], - [149, 595], - [134, 595], - [147, 595], - [135, 595], - [136, 595], - [137, 595], - [138, 595], - [139, 595], - [129, 596], - [140, 595], - [130, 597], - [141, 595], - [131, 595], - [146, 598], - [133, 599], + [111, 808], + [112, 808], + [113, 808], + [114, 808], + [115, 808], + [116, 808], + [117, 808], + [118, 808], + [119, 808], + [121, 811], + [157, 812], + [152, 813], + [122, 814], + [154, 815], + [153, 816], + [151, 817], + [155, 818], + [149, 819], + [134, 819], + [147, 819], + [135, 819], + [136, 819], + [137, 819], + [138, 819], + [139, 819], + [129, 820], + [140, 819], + [130, 821], + [141, 819], + [131, 819], + [146, 822], + [133, 823], [128, 1], - [142, 595], - [143, 595], - [132, 595], - [144, 595], - [145, 595], - [150, 600], - [124, 601], - [126, 602], - [125, 603], - [123, 604], - [127, 605], - [74, 606], - [78, 607], + [142, 819], + [143, 819], + [132, 819], + [144, 819], + [145, 819], + [150, 824], + [124, 825], + [126, 826], + [125, 827], + [123, 828], + [127, 829], + [74, 830], + [78, 831], [75, 1], - [76, 608], - [77, 609], + [76, 832], + [77, 833], [79, 1], - [80, 606], - [89, 610], - [90, 611], - [91, 606], - [103, 612], - [92, 613], - [87, 614], + [80, 830], + [89, 834], + [90, 835], + [91, 830], + [103, 836], + [92, 837], + [87, 838], [95, 1], - [88, 615], - [93, 616], - [94, 617], - [99, 618], - [85, 619], - [86, 620], - [84, 610], + [88, 839], + [93, 840], + [94, 841], + [99, 842], + [85, 843], + [86, 844], + [84, 834], [100, 1], [101, 1], [102, 1], [173, 1], - [175, 621], - [172, 621], - [177, 622], - [174, 623], - [176, 621], - [178, 623], - [181, 624], - [179, 623], - [180, 623], - [185, 625], - [187, 626], + [175, 845], + [172, 845], + [177, 846], + [174, 847], + [176, 845], + [178, 847], + [181, 848], + [179, 847], + [180, 847], + [185, 849], + [187, 850], [182, 1], [183, 1], - [184, 621], - [188, 627], + [184, 845], + [188, 851], [186, 1], - [192, 628], + [192, 852], [160, 1], - [105, 623], - [165, 629], - [169, 630], - [163, 631], - [159, 632], - [106, 614], - [164, 633], - [162, 634], - [170, 635], - [158, 636], - [161, 637], - [166, 638], - [167, 639], - [168, 640], - [171, 641], - [104, 642], + [105, 847], + [165, 853], + [169, 854], + [163, 855], + [159, 856], + [106, 838], + [164, 857], + [162, 858], + [170, 859], + [158, 860], + [161, 861], + [166, 862], + [167, 863], + [168, 864], + [171, 865], + [104, 866], [190, 1], - [191, 643], + [191, 867], [189, 1], - [96, 614], - [98, 644], + [96, 838], + [98, 868], [97, 1], - [1307, 1], [223, 1], - [1468, 645], - [1467, 646], - [1466, 1], - [1616, 647], - [1617, 648], - [1586, 649], - [1619, 650], - [1615, 651], - [1613, 652], - [1614, 653], - [1585, 654], - [1612, 655], - [1608, 656], - [1610, 657], - [1611, 654], - [1722, 658], - [1624, 659], - [1623, 196], - [1620, 660], - [1625, 650], - [1626, 661], - [1621, 662], - [1618, 663], - [1622, 664], - [1607, 665], - [1587, 654], - [1603, 666], - [1602, 1], - [1600, 667], - [1588, 654], - [1596, 668], - [1589, 669], - [1597, 670], - [1605, 671], - [1590, 672], - [1591, 673], - [1593, 674], - [1606, 675], - [1601, 676], - [1599, 677], - [1595, 678], - [1592, 672], - [1598, 654], - [1594, 679], - [1604, 680], - [1578, 1], - [1581, 1], - [1583, 681], - [1582, 681], - [1584, 682], - [1580, 683], - [1579, 684], - [1577, 1], - [1609, 1], + [1491, 869], + [1490, 870], + [1489, 1], + [2538, 871], + [2663, 872], + [2664, 873], + [2632, 874], + [2667, 875], + [2662, 876], + [2659, 877], + [2660, 878], + [2631, 879], + [2658, 880], + [2654, 881], + [2669, 882], + [2661, 245], + [2656, 883], + [2657, 879], + [2772, 884], + [2673, 885], + [2672, 64], + [2668, 886], + [2674, 875], + [2675, 887], + [2670, 888], + [2665, 889], + [2666, 890], + [2671, 891], + [2653, 892], + [2633, 879], + [2649, 893], + [2648, 1], + [2646, 894], + [2634, 879], + [2642, 895], + [2635, 896], + [2643, 897], + [2651, 898], + [2636, 899], + [2637, 900], + [2639, 901], + [2652, 902], + [2647, 903], + [2645, 904], + [2641, 905], + [2638, 899], + [2644, 879], + [2640, 906], + [2650, 907], + [2623, 1], + [2626, 1], + [2628, 908], + [2627, 908], + [2630, 909], + [2629, 908], + [2625, 910], + [2624, 911], + [2622, 1], + [2655, 1], [205, 1], - [1359, 1], - [71, 65], - [200, 464], - [201, 685], - [199, 65], - [72, 65], - [64, 686], - [69, 687], - [68, 65], - [1310, 1], - [1560, 196], - [1474, 196], - [1737, 688], - [1738, 688], - [1740, 689], - [1739, 688], - [1835, 690], - [1836, 690], - [1838, 691], - [1837, 690], - [1378, 692], - [1377, 196], - [1375, 1], - [1374, 1], - [1376, 693], - [1573, 196], - [582, 694], - [587, 695], - [577, 696], - [361, 697], - [399, 698], - [564, 699], - [394, 700], - [376, 1], - [354, 1], - [359, 1], - [554, 701], - [425, 702], - [360, 1], - [353, 703], - [402, 704], - [403, 705], - [537, 706], - [551, 707], - [449, 708], - [558, 709], - [559, 710], - [557, 711], - [556, 1], - [555, 712], - [401, 713], - [362, 714], - [492, 1], - [493, 715], - [385, 716], - [363, 717], - [430, 716], - [427, 716], - [332, 716], - [397, 718], - [396, 1], - [563, 719], - [573, 1], - [339, 1], - [514, 720], - [515, 721], - [509, 196], - [610, 1], - [517, 1], - [518, 722], - [510, 723], - [615, 724], - [614, 725], - [609, 1], - [606, 1], - [550, 726], - [549, 1], - [608, 727], - [511, 196], - [351, 728], - [340, 729], - [343, 1], - [348, 1], - [349, 730], - [342, 731], - [346, 731], - [345, 732], - [350, 733], - [611, 1], - [607, 1], - [613, 734], - [612, 1], - [341, 735], - [601, 736], - [604, 737], - [437, 738], - [436, 739], - [347, 740], - [435, 741], - [618, 196], - [434, 742], - [419, 1], - [621, 1], - [1463, 743], - [1462, 1], - [624, 1], - [623, 196], - [625, 744], - [325, 1], - [560, 409], - [561, 745], - [562, 746], - [338, 1], - [387, 1], - [337, 747], - [324, 1], - [530, 196], - [330, 748], - [529, 749], - [528, 750], - [519, 1], - [520, 1], - [527, 1], - [522, 1], - [525, 751], - [521, 1], - [523, 752], - [526, 753], - [524, 752], + [1645, 912], + [1624, 913], + [1721, 1], + [1625, 914], + [1561, 912], + [1562, 912], + [1563, 912], + [1564, 912], + [1565, 912], + [1566, 912], + [1567, 912], + [1568, 912], + [1569, 912], + [1570, 912], + [1571, 912], + [1572, 912], + [1573, 912], + [1574, 912], + [1575, 912], + [1576, 912], + [1577, 912], + [1578, 912], + [1557, 1], + [1579, 912], + [1580, 912], + [1581, 1], + [1582, 912], + [1583, 912], + [1584, 912], + [1585, 912], + [1586, 912], + [1587, 912], + [1588, 912], + [1589, 912], + [1590, 912], + [1591, 912], + [1592, 912], + [1593, 912], + [1594, 912], + [1595, 912], + [1596, 912], + [1597, 912], + [1598, 912], + [1599, 912], + [1600, 912], + [1601, 912], + [1602, 912], + [1603, 912], + [1604, 912], + [1605, 912], + [1606, 912], + [1607, 912], + [1608, 912], + [1609, 912], + [1610, 912], + [1611, 912], + [1612, 912], + [1613, 912], + [1614, 912], + [1615, 912], + [1616, 912], + [1617, 912], + [1618, 912], + [1619, 912], + [1620, 912], + [1621, 912], + [1622, 912], + [1623, 912], + [1626, 915], + [1627, 912], + [1628, 912], + [1629, 916], + [1630, 917], + [1631, 912], + [1632, 912], + [1633, 912], + [1634, 912], + [1635, 912], + [1636, 912], + [1637, 912], + [1559, 1], + [1638, 912], + [1639, 912], + [1640, 912], + [1641, 912], + [1642, 912], + [1643, 912], + [1644, 912], + [1646, 918], + [1647, 912], + [1648, 912], + [1649, 912], + [1650, 912], + [1651, 912], + [1652, 912], + [1653, 912], + [1654, 912], + [1655, 912], + [1656, 912], + [1657, 912], + [1658, 912], + [1659, 912], + [1660, 912], + [1661, 912], + [1662, 912], + [1663, 912], + [1664, 912], + [1665, 1], + [1666, 1], + [1667, 1], + [1814, 919], + [1668, 912], + [1669, 912], + [1670, 912], + [1671, 912], + [1672, 912], + [1673, 912], + [1674, 1], + [1675, 912], + [1676, 1], + [1677, 912], + [1678, 912], + [1679, 912], + [1680, 912], + [1681, 912], + [1682, 912], + [1683, 912], + [1684, 912], + [1685, 912], + [1686, 912], + [1687, 912], + [1688, 912], + [1689, 912], + [1690, 912], + [1691, 912], + [1692, 912], + [1693, 912], + [1694, 912], + [1695, 912], + [1696, 912], + [1697, 912], + [1698, 912], + [1699, 912], + [1700, 912], + [1701, 912], + [1702, 912], + [1703, 912], + [1704, 912], + [1705, 912], + [1706, 912], + [1707, 912], + [1708, 912], + [1709, 1], + [1710, 912], + [1711, 912], + [1712, 912], + [1713, 912], + [1714, 912], + [1715, 912], + [1716, 912], + [1717, 912], + [1718, 912], + [1719, 912], + [1720, 912], + [1722, 920], + [1910, 921], + [1815, 914], + [1817, 914], + [1818, 914], + [1819, 914], + [1820, 914], + [1821, 914], + [1816, 914], + [1822, 914], + [1824, 914], + [1823, 914], + [1825, 914], + [1826, 914], + [1827, 914], + [1828, 914], + [1829, 914], + [1830, 914], + [1831, 914], + [1832, 914], + [1834, 914], + [1833, 914], + [1835, 914], + [1836, 914], + [1837, 914], + [1838, 914], + [1839, 914], + [1840, 914], + [1841, 914], + [1842, 914], + [1843, 914], + [1844, 914], + [1845, 914], + [1846, 914], + [1847, 914], + [1848, 914], + [1849, 914], + [1851, 914], + [1852, 914], + [1850, 914], + [1853, 914], + [1854, 914], + [1855, 914], + [1856, 914], + [1857, 914], + [1858, 914], + [1859, 914], + [1860, 914], + [1861, 914], + [1862, 914], + [1863, 914], + [1864, 914], + [1866, 914], + [1865, 914], + [1868, 914], + [1867, 914], + [1869, 914], + [1870, 914], + [1871, 914], + [1872, 914], + [1873, 914], + [1874, 914], + [1875, 914], + [1876, 914], + [1877, 914], + [1878, 914], + [1879, 914], + [1880, 914], + [1881, 914], + [1883, 914], + [1882, 914], + [1884, 914], + [1885, 914], + [1886, 914], + [1888, 914], + [1887, 914], + [1889, 914], + [1890, 914], + [1891, 914], + [1892, 914], + [1893, 914], + [1894, 914], + [1896, 914], + [1895, 914], + [1897, 914], + [1898, 914], + [1899, 914], + [1900, 914], + [1901, 914], + [1558, 912], + [1902, 914], + [1903, 914], + [1905, 914], + [1904, 914], + [1906, 914], + [1907, 914], + [1908, 914], + [1909, 914], + [1723, 912], + [1724, 912], + [1725, 1], + [1726, 1], + [1727, 1], + [1728, 912], + [1729, 1], + [1730, 1], + [1731, 1], + [1732, 1], + [1733, 1], + [1734, 912], + [1735, 912], + [1736, 912], + [1737, 912], + [1738, 912], + [1739, 912], + [1740, 912], + [1741, 912], + [1746, 922], + [1744, 923], + [1743, 924], + [1745, 925], + [1742, 912], + [1747, 912], + [1748, 912], + [1749, 912], + [1750, 912], + [1751, 912], + [1752, 912], + [1753, 912], + [1754, 912], + [1755, 912], + [1756, 912], + [1757, 1], + [1758, 1], + [1759, 912], + [1760, 912], + [1761, 1], + [1762, 1], + [1763, 1], + [1764, 912], + [1765, 912], + [1766, 912], + [1767, 912], + [1768, 918], + [1769, 912], + [1770, 912], + [1771, 912], + [1772, 912], + [1773, 912], + [1774, 912], + [1775, 912], + [1776, 912], + [1777, 912], + [1778, 912], + [1779, 912], + [1780, 912], + [1781, 912], + [1782, 912], + [1783, 912], + [1784, 912], + [1785, 912], + [1786, 912], + [1787, 912], + [1788, 912], + [1789, 912], + [1790, 912], + [1791, 912], + [1792, 912], + [1793, 912], + [1794, 912], + [1795, 912], + [1796, 912], + [1797, 912], + [1798, 912], + [1799, 912], + [1800, 912], + [1801, 912], + [1802, 912], + [1803, 912], + [1804, 912], + [1805, 912], + [1806, 912], + [1807, 912], + [1808, 912], + [1809, 912], + [1560, 926], + [1810, 1], + [1811, 1], + [1812, 1], + [1813, 1], + [2152, 1], + [2019, 927], + [2020, 928], + [1985, 1], + [1993, 929], + [1987, 930], + [1994, 1], + [2016, 931], + [1991, 932], + [2015, 933], + [2012, 934], + [1995, 935], + [1996, 1], + [1989, 1], + [1986, 1], + [2017, 936], + [2013, 937], + [1997, 1], + [2014, 938], + [1998, 939], + [2000, 940], + [2001, 941], + [1990, 942], + [2002, 943], + [2003, 942], + [2005, 943], + [2006, 944], + [2007, 945], + [2009, 946], + [2004, 947], + [2010, 948], + [2011, 949], + [1988, 950], + [2008, 951], + [1999, 1], + [1992, 952], + [2018, 953], + [71, 258], + [200, 688], + [201, 954], + [199, 258], + [72, 258], + [64, 955], + [69, 956], + [68, 258], + [2077, 1], + [2584, 64], + [659, 957], + [658, 1], + [1488, 64], + [1371, 1], + [1391, 958], + [1390, 64], + [1388, 1], + [1387, 1], + [1389, 959], + [2611, 64], + [608, 960], + [613, 961], + [620, 962], + [603, 963], [358, 1], - [335, 1], - [336, 716], - [407, 1], - [413, 754], - [414, 755], - [411, 756], - [409, 757], - [410, 758], - [405, 1], - [535, 722], - [452, 722], - [581, 759], - [588, 760], - [592, 761], - [567, 762], - [566, 1], - [422, 1], - [626, 763], - [576, 764], - [512, 765], - [513, 766], - [507, 767], - [498, 1], - [534, 768], - [499, 769], - [536, 770], - [532, 771], - [531, 1], - [533, 1], - [504, 1], - [491, 772], - [568, 773], - [569, 774], - [501, 775], - [505, 776], - [496, 777], - [546, 778], - [575, 779], - [429, 780], - [468, 781], - [333, 782], - [574, 783], - [329, 784], - [415, 785], - [406, 1], - [416, 786], - [480, 787], - [404, 1], - [479, 788], - [212, 1], - [473, 789], - [386, 1], - [494, 790], - [469, 1], - [334, 1], - [380, 1], - [477, 791], - [357, 1], - [417, 792], - [503, 793], - [565, 794], - [502, 1], - [476, 1], - [408, 1], - [482, 795], - [483, 796], - [355, 1], - [485, 797], - [487, 798], - [486, 799], - [389, 1], - [475, 782], - [489, 800], - [474, 801], - [481, 802], - [365, 1], - [369, 1], - [368, 1], - [367, 1], - [372, 1], - [366, 1], - [374, 1], - [371, 1], - [370, 1], - [373, 1], - [375, 803], + [366, 964], + [506, 965], + [509, 966], + [481, 1], + [494, 967], + [501, 968], + [383, 1], + [483, 1], [364, 1], - [461, 804], + [480, 969], + [526, 970], + [365, 1], + [356, 971], + [508, 972], + [510, 973], + [511, 974], + [582, 975], + [475, 976], + [428, 977], + [488, 978], + [489, 979], + [487, 980], + [486, 1], + [482, 981], + [507, 982], + [367, 983], + [552, 1], + [553, 984], + [394, 985], + [368, 986], + [395, 985], + [431, 985], + [334, 985], + [504, 987], + [503, 1], + [493, 988], + [598, 1], + [343, 1], + [619, 989], + [560, 990], + [561, 991], + [557, 992], + [637, 1], + [458, 1], + [562, 95], + [558, 993], + [642, 994], + [641, 995], + [636, 1], + [409, 1], + [461, 996], [460, 1], - [466, 805], - [462, 806], - [465, 807], - [464, 807], - [467, 805], - [463, 806], - [384, 808], - [453, 809], - [572, 810], - [627, 1], - [596, 811], - [598, 812], - [500, 813], - [597, 814], - [570, 773], - [516, 773], - [356, 1], - [454, 815], - [381, 816], - [382, 817], - [383, 818], - [379, 819], - [545, 819], - [431, 819], - [455, 820], - [432, 820], - [378, 821], - [377, 1], - [459, 822], - [458, 823], - [457, 824], - [456, 825], - [571, 826], - [544, 827], - [543, 828], - [508, 829], - [540, 830], - [542, 831], - [553, 832], - [552, 833], - [548, 834], - [448, 835], - [450, 836], - [447, 837], - [488, 838], - [478, 1], - [586, 1], - [490, 839], - [547, 1], - [418, 840], - [497, 409], - [495, 841], - [420, 842], - [423, 843], - [622, 1], - [421, 844], - [424, 844], - [584, 1], - [583, 1], - [585, 1], - [620, 1], - [426, 845], - [445, 846], - [352, 847], - [400, 1], - [328, 848], - [451, 1], - [590, 196], - [327, 1], - [600, 849], - [444, 196], - [594, 722], - [443, 850], - [579, 851], - [442, 849], - [331, 1], - [602, 852], - [440, 196], - [441, 196], - [433, 1], + [635, 997], + [559, 64], + [414, 998], + [421, 999], + [423, 1000], + [413, 1], + [418, 1001], + [420, 1002], + [422, 1003], + [417, 1004], + [415, 1], + [419, 1005], + [638, 1], + [634, 1], + [640, 1006], + [639, 1], + [412, 1007], + [629, 1008], + [632, 1009], + [402, 1010], + [401, 1011], + [400, 1012], + [645, 64], + [399, 1013], + [388, 1], + [647, 1], + [1485, 1014], + [1484, 1], + [648, 64], + [649, 1015], [326, 1], - [439, 853], - [438, 854], - [388, 855], - [506, 545], - [428, 545], + [490, 1016], + [491, 1017], + [492, 1018], + [330, 1], + [495, 1], + [350, 1019], + [325, 1], + [574, 64], + [332, 1020], + [573, 1021], + [572, 1022], + [563, 1], + [564, 1], + [571, 1], + [566, 1], + [569, 1023], + [565, 1], + [567, 1024], + [570, 1025], + [568, 1024], + [363, 1], + [360, 1], + [361, 985], + [515, 1], + [520, 1026], + [521, 1027], + [519, 1028], + [517, 1029], + [518, 1030], + [513, 1], + [580, 95], + [355, 95], + [607, 1031], + [614, 1032], + [618, 1033], + [449, 1034], + [448, 1], + [443, 1], + [594, 1035], + [602, 1036], + [476, 1037], + [477, 1038], + [555, 1039], + [465, 1], + [578, 1040], + [453, 64], + [470, 1041], + [581, 1042], + [466, 1], + [469, 1043], + [467, 1], + [579, 1044], + [576, 1045], + [575, 1], + [577, 1], + [473, 1], + [551, 1046], + [338, 1047], + [451, 1048], + [455, 1049], + [471, 1050], + [474, 1051], + [463, 1052], + [456, 1053], + [601, 1054], + [529, 1055], + [447, 1056], + [335, 1057], + [600, 1058], + [331, 1059], + [522, 1060], + [514, 1], + [523, 1061], + [540, 1062], + [512, 1], + [539, 1063], + [212, 1], + [534, 1064], + [359, 1], + [554, 1065], + [530, 1], + [344, 1], + [346, 1], + [485, 1], + [538, 1066], + [362, 1], + [386, 1067], + [472, 1068], + [392, 1069], + [452, 1], + [537, 1], + [516, 1], + [542, 1070], + [543, 1071], [484, 1], - [471, 856], - [470, 1], - [344, 735], - [446, 196], - [580, 857], - [207, 196], - [210, 858], - [211, 859], - [208, 196], + [545, 1072], + [547, 1073], + [546, 1074], + [496, 1], + [536, 1057], + [549, 1075], + [446, 1076], + [535, 1077], + [541, 1078], + [371, 1], + [375, 1], + [374, 1], + [373, 1], + [378, 1], + [372, 1], + [381, 1], + [380, 1], + [377, 1], + [376, 1], + [379, 1], + [382, 1079], + [370, 1], + [438, 1080], + [437, 1], + [442, 1081], + [439, 1082], + [441, 1083], + [444, 1081], + [440, 1082], + [351, 1084], + [430, 1085], + [597, 1086], + [595, 1], + [624, 1087], + [626, 1088], + [590, 1089], + [625, 1090], + [339, 1091], + [336, 1091], + [369, 1], + [353, 1092], + [352, 1093], + [348, 1094], + [349, 1095], + [357, 1096], + [385, 1096], + [396, 1096], + [432, 1097], + [397, 1097], + [341, 1098], + [340, 1], + [436, 1099], + [435, 1100], + [434, 1101], + [433, 1102], + [342, 1103], + [583, 1104], + [384, 1105], + [589, 1106], + [556, 1107], + [586, 1108], + [588, 1109], + [479, 1110], + [478, 1111], + [459, 1112], + [445, 1113], + [427, 1114], + [429, 1115], + [426, 1116], + [548, 1117], + [450, 1], + [612, 1], + [347, 1118], + [550, 1119], + [596, 1120], + [457, 1], + [387, 1121], + [464, 1122], + [462, 1123], + [389, 1124], + [524, 1125], + [591, 1], + [390, 1126], + [525, 1126], + [610, 1], + [609, 1], + [611, 1], + [593, 1], + [592, 1], + [527, 1127], + [454, 1], + [424, 1128], + [345, 1129], + [403, 1], + [329, 1130], + [391, 1], + [616, 64], + [328, 1], + [628, 1131], + [411, 64], + [622, 95], + [410, 1132], + [605, 1133], + [408, 1131], + [333, 1], + [630, 1134], + [406, 64], + [407, 64], + [398, 1], + [327, 1], + [405, 1135], + [404, 1136], + [393, 1137], + [468, 769], + [528, 769], + [544, 1], + [532, 1138], + [531, 1], + [416, 1007], + [337, 1], + [425, 64], + [599, 1019], + [606, 1139], + [207, 64], + [210, 1140], + [211, 1141], + [208, 64], [209, 1], - [398, 860], - [393, 861], - [392, 1], - [391, 862], - [390, 1], - [578, 863], - [589, 864], - [591, 865], - [593, 866], - [1464, 867], - [595, 868], - [599, 869], - [633, 870], - [603, 870], - [632, 871], - [605, 872], - [616, 873], - [617, 874], - [619, 875], - [628, 876], - [631, 747], - [630, 1], - [629, 877], - [1629, 1], - [1670, 878], - [1666, 879], - [1667, 880], - [1671, 881], - [1669, 1], - [1668, 879], - [1665, 878], - [1664, 1], - [1231, 882], - [1228, 877], - [1230, 883], - [1229, 1], - [1227, 1], - [1643, 884], - [1642, 885], - [1557, 886], - [1497, 1], - [1512, 887], - [1513, 887], - [1527, 888], - [1514, 889], - [1515, 889], - [1516, 890], - [1510, 891], - [1508, 892], - [1499, 1], - [1503, 893], - [1507, 894], - [1505, 895], - [1511, 896], - [1500, 897], - [1501, 898], - [1502, 899], - [1504, 900], - [1506, 901], - [1509, 902], - [1517, 889], - [1518, 889], - [1519, 889], - [1520, 887], - [1521, 889], - [1522, 889], - [1498, 889], - [1523, 1], - [1525, 903], - [1524, 889], - [1526, 887], - [1529, 196], - [1306, 904], - [1309, 905], - [1356, 906], - [1355, 907], - [1354, 908], - [1311, 1], - [1313, 909], - [1312, 910], - [1317, 911], - [1352, 912], - [1349, 913], - [1351, 914], - [1314, 913], - [1315, 915], - [1319, 915], - [1318, 916], - [1316, 917], - [1350, 918], - [1348, 913], - [1353, 919], - [1346, 1], - [1347, 1], - [1320, 920], - [1325, 913], - [1327, 913], - [1322, 913], - [1323, 920], - [1329, 913], - [1330, 921], - [1321, 913], - [1326, 913], - [1328, 913], - [1324, 913], - [1344, 922], - [1343, 913], - [1345, 923], - [1339, 913], - [1341, 913], - [1340, 913], - [1336, 913], - [1342, 924], - [1337, 913], - [1338, 925], - [1331, 913], - [1332, 913], - [1333, 913], - [1334, 913], - [1335, 913], - [472, 578], - [1572, 196], - [1469, 1], - [1357, 1], + [505, 1142], + [500, 1143], + [499, 1], + [498, 1144], + [497, 1], + [604, 1145], + [615, 1146], + [617, 1147], + [621, 1148], + [1486, 1149], + [623, 1150], + [627, 1151], + [655, 1152], + [631, 1152], + [654, 1153], + [633, 1154], + [643, 1155], + [644, 1156], + [646, 1157], + [650, 1158], + [653, 1019], + [652, 1], + [651, 1159], + [2679, 1], + [2719, 1160], + [2715, 1161], + [2716, 1162], + [2720, 1163], + [2718, 1], + [2717, 1161], + [2714, 1160], + [2713, 1], + [1271, 1164], + [1268, 1159], + [1270, 1165], + [1269, 1], + [1267, 1], + [2693, 1166], + [2692, 1167], + [1537, 1168], + [1971, 1169], + [1928, 64], + [1969, 1170], + [1930, 1171], + [1929, 1172], + [1968, 1173], + [1970, 1174], + [1911, 64], + [1912, 64], + [1913, 64], + [1936, 1175], + [1937, 1175], + [1938, 1169], + [1939, 64], + [1940, 64], + [1941, 1176], + [1914, 1177], + [1942, 64], + [1943, 64], + [1944, 1178], + [1945, 64], + [1946, 64], + [1947, 64], + [1948, 64], + [1949, 64], + [1950, 64], + [1915, 1177], + [1953, 1177], + [1954, 64], + [1951, 64], + [1952, 64], + [1955, 64], + [1956, 1178], + [1957, 1179], + [1958, 1170], + [1959, 1170], + [1960, 1170], + [1962, 1170], + [1963, 1], + [1961, 1170], + [1964, 1170], + [1965, 1180], + [1972, 1181], + [1973, 1182], + [1982, 1183], + [1927, 1184], + [1916, 1185], + [1917, 1170], + [1918, 1185], + [1919, 1170], + [1920, 1], + [1921, 1170], + [1922, 1], + [1924, 1170], + [1925, 1170], + [1923, 1170], + [1926, 1170], + [1967, 1170], + [1934, 1186], + [1935, 1187], + [1931, 1188], + [1932, 1189], + [1966, 1190], + [1933, 1191], + [1974, 1185], + [1975, 1185], + [1981, 1192], + [1976, 1170], + [1977, 1185], + [1978, 1185], + [1979, 1170], + [1980, 1185], + [2547, 1], + [2562, 1193], + [2563, 1193], + [2577, 1194], + [2564, 1195], + [2565, 1195], + [2566, 1196], + [2560, 1197], + [2558, 1198], + [2549, 1], + [2553, 1199], + [2557, 1200], + [2555, 1201], + [2561, 1202], + [2550, 1203], + [2551, 1204], + [2552, 1205], + [2554, 1206], + [2556, 1207], + [2559, 1208], + [2567, 1195], + [2568, 1195], + [2569, 1195], + [2570, 1193], + [2571, 1195], + [2572, 1195], + [2548, 1195], + [2573, 1], + [2575, 1209], + [2574, 1195], + [2576, 1193], + [2580, 64], + [2595, 95], + [2063, 1], + [2061, 1210], + [2065, 1211], + [2132, 1212], + [2127, 1213], + [2030, 1214], + [2098, 1215], + [2091, 1216], + [2148, 1217], + [2086, 1218], + [2131, 1219], + [2128, 1220], + [2080, 1221], + [2090, 1222], + [2133, 1223], + [2134, 1223], + [2135, 1224], + [2028, 1225], + [2097, 1226], + [2143, 1227], + [2137, 1227], + [2145, 1227], + [2149, 1227], + [2136, 1227], + [2138, 1227], + [2141, 1227], + [2144, 1227], + [2140, 1228], + [2142, 1227], + [2146, 1229], + [2139, 1230], + [2040, 1231], + [2112, 64], + [2109, 1232], + [2113, 64], + [2051, 1227], + [2041, 1227], + [2104, 1233], + [2029, 1234], + [2050, 1235], + [2054, 1236], + [2111, 1227], + [2026, 64], + [2110, 1237], + [2108, 64], + [2107, 1227], + [2042, 64], + [2154, 1238], + [2122, 1230], + [2102, 1239], + [2158, 1240], + [2123, 1241], + [2121, 1242], + [2117, 1243], + [2119, 1244], + [2124, 1245], + [2126, 1246], + [2120, 1], + [2118, 1], + [2116, 64], + [2049, 1247], + [2025, 1227], + [2115, 1227], + [2064, 1248], + [2114, 64], + [2089, 1247], + [2147, 1227], + [2082, 1249], + [2038, 1250], + [2043, 1251], + [2092, 1252], + [2094, 1249], + [2073, 1253], + [2076, 1249], + [2055, 1254], + [2075, 1255], + [2084, 1256], + [2085, 1257], + [2081, 1258], + [2095, 1259], + [2083, 1260], + [2060, 1261], + [2103, 1262], + [2099, 1263], + [2100, 1264], + [2096, 1265], + [2074, 1266], + [2062, 1267], + [2067, 1268], + [2044, 1269], + [2071, 1270], + [2072, 1271], + [2068, 1272], + [2045, 1273], + [2056, 1274], + [2093, 1257], + [2039, 1275], + [2101, 1], + [2066, 1276], + [2059, 1277], + [2087, 1], + [2150, 1], + [2078, 1], + [2125, 1278], + [2088, 1279], + [2156, 1280], + [2157, 1281], + [2129, 1], + [2155, 1282], + [2052, 1], + [2079, 1], + [2031, 1282], + [2058, 1283], + [2153, 1284], + [2057, 1285], + [2130, 1286], + [2069, 1], + [2105, 1], + [2106, 1287], + [2053, 1], + [2070, 1], + [2151, 1], + [2027, 64], + [2035, 1288], + [2032, 1], + [2034, 1], + [533, 802], + [2613, 64], + [1492, 1], [193, 1], - [194, 926], - [195, 927], + [194, 1289], + [195, 1290], [58, 1], [59, 1], [10, 1], @@ -11993,373 +20413,453 @@ [57, 1], [56, 1], [1, 1], - [81, 606], + [81, 830], [73, 1], - [239, 928], - [249, 929], - [238, 928], - [259, 930], - [230, 931], - [229, 932], - [258, 877], - [252, 933], - [257, 934], - [232, 935], - [246, 936], - [231, 937], - [255, 938], - [227, 939], - [226, 877], - [256, 940], - [228, 941], - [233, 942], + [239, 1291], + [249, 1292], + [238, 1291], + [259, 1293], + [230, 1294], + [229, 1295], + [258, 1159], + [252, 1296], + [257, 1297], + [232, 1298], + [246, 1299], + [231, 1300], + [255, 1301], + [227, 1302], + [226, 1159], + [256, 1303], + [228, 1304], + [233, 1305], [234, 1], - [237, 942], + [237, 1305], [224, 1], - [260, 943], - [250, 944], - [241, 945], - [242, 946], - [244, 947], - [240, 948], - [243, 949], - [253, 877], - [235, 950], - [236, 951], - [245, 952], - [225, 428], - [248, 944], - [247, 942], + [260, 1306], + [250, 1307], + [241, 1308], + [242, 1309], + [244, 1310], + [240, 1311], + [243, 1312], + [253, 1159], + [235, 1313], + [236, 1314], + [245, 1315], + [225, 646], + [248, 1307], + [247, 1305], [251, 1], - [254, 953], - [1361, 954], - [1672, 196], - [1487, 955], - [1360, 956], - [1358, 957], - [1711, 958], - [1698, 959], - [1700, 960], - [1707, 961], - [1702, 1], - [1703, 1], - [1701, 962], - [1704, 963], - [1696, 1], - [1697, 1], - [1708, 964], - [1699, 965], - [1705, 1], - [1706, 966], - [1447, 967], - [1450, 968], - [1448, 968], - [1444, 967], - [1451, 969], - [1452, 958], - [1449, 968], - [1445, 970], - [1446, 971], - [1440, 972], - [1385, 973], - [1387, 974], - [1439, 1], - [1386, 975], - [1443, 976], - [1441, 1], - [1388, 973], - [1389, 1], - [1438, 977], - [1384, 978], - [1381, 1], - [1442, 979], - [1382, 980], - [1383, 1], - [1453, 981], - [1390, 982], - [1391, 982], - [1392, 982], - [1393, 982], - [1394, 982], - [1395, 982], - [1396, 982], - [1397, 982], - [1398, 982], - [1399, 982], - [1400, 982], - [1401, 982], - [1402, 982], - [1404, 982], - [1403, 982], - [1405, 982], - [1406, 982], - [1407, 982], - [1437, 983], - [1408, 982], - [1409, 982], - [1410, 982], - [1411, 982], - [1412, 982], - [1413, 982], - [1414, 982], - [1415, 982], - [1416, 982], - [1417, 982], - [1418, 982], - [1419, 982], - [1420, 982], - [1422, 982], - [1421, 982], - [1423, 982], - [1424, 982], - [1425, 982], - [1426, 982], - [1427, 982], - [1428, 982], - [1429, 982], - [1430, 982], - [1431, 982], - [1432, 982], - [1433, 982], - [1436, 982], - [1434, 982], - [1435, 982], - [1680, 984], - [1659, 985], - [1660, 986], - [1675, 987], - [1676, 988], - [1674, 989], - [1662, 990], - [1673, 991], - [1677, 992], - [1678, 993], - [1658, 52], - [1679, 1], - [1712, 1], - [1713, 994], - [1473, 995], - [1475, 996], - [1477, 997], - [1479, 998], - [1480, 999], - [1482, 1000], - [1488, 1001], - [1495, 1002], - [1528, 1003], - [1576, 1004], - [1561, 1005], - [1559, 999], - [1562, 1006], - [1563, 1007], - [1564, 997], - [1565, 1008], - [1566, 1009], - [1558, 1010], - [1574, 1011], - [1567, 999], - [1568, 1012], - [1569, 1013], - [1570, 999], - [1571, 1014], - [1575, 1015], - [196, 1016], - [198, 1017], - [202, 1018], - [1456, 1] + [254, 1316], + [2721, 64], + [2542, 871], + [2024, 1317], + [2048, 1318], + [2761, 1319], + [2748, 1320], + [2750, 1321], + [2757, 1322], + [2752, 1], + [2753, 1], + [2751, 1323], + [2754, 1324], + [2746, 1], + [2747, 1], + [2758, 1325], + [2749, 1326], + [2755, 1], + [2756, 1327], + [1468, 1328], + [1472, 1329], + [1469, 1329], + [1465, 1328], + [1473, 1330], + [1470, 1331], + [1474, 1319], + [1471, 1329], + [1466, 1332], + [1467, 1333], + [1461, 1334], + [1405, 1335], + [1407, 1336], + [1460, 1], + [1406, 1337], + [1464, 1338], + [1463, 1339], + [1462, 1340], + [1398, 1], + [1408, 1335], + [1409, 1], + [1400, 1341], + [1404, 1342], + [1399, 1], + [1401, 1343], + [1402, 1344], + [1403, 1], + [1475, 1345], + [1410, 1346], + [1411, 1346], + [1412, 1346], + [1413, 1346], + [1414, 1346], + [1415, 1346], + [1416, 1346], + [1417, 1346], + [1418, 1346], + [1419, 1346], + [1420, 1346], + [1421, 1346], + [1422, 1346], + [1424, 1346], + [1423, 1346], + [1425, 1346], + [1426, 1346], + [1427, 1346], + [1428, 1346], + [1459, 1347], + [1429, 1346], + [1430, 1346], + [1431, 1346], + [1432, 1346], + [1433, 1346], + [1434, 1346], + [1435, 1346], + [1436, 1346], + [1437, 1346], + [1438, 1346], + [1439, 1346], + [1440, 1346], + [1441, 1346], + [1443, 1346], + [1442, 1346], + [1444, 1346], + [1445, 1346], + [1446, 1346], + [1447, 1346], + [1448, 1346], + [1449, 1346], + [1450, 1346], + [1451, 1346], + [1452, 1346], + [1453, 1346], + [1454, 1346], + [1455, 1346], + [1458, 1346], + [1456, 1346], + [1457, 1346], + [2729, 1348], + [2707, 1349], + [2709, 1350], + [2724, 1351], + [2725, 1352], + [2723, 1353], + [2711, 1354], + [2722, 1355], + [2726, 1356], + [2727, 1357], + [2706, 242], + [2728, 1], + [2762, 1], + [2763, 1358], + [1538, 1359], + [1540, 1360], + [1539, 1361], + [1541, 1362], + [1542, 1360], + [1543, 1363], + [1544, 1364], + [1545, 1365], + [1546, 1359], + [1548, 1366], + [1547, 1363], + [1983, 1367], + [1984, 1368], + [2021, 1369], + [2159, 1370], + [2160, 1359], + [2161, 1362], + [2537, 1371], + [2539, 1372], + [2540, 1359], + [2541, 1359], + [2543, 1373], + [2544, 1359], + [2545, 1374], + [2546, 1361], + [2578, 1375], + [2620, 1376], + [2618, 64], + [2619, 1377], + [2579, 1360], + [2581, 1378], + [2621, 1379], + [2583, 1361], + [2585, 1380], + [2582, 1368], + [2586, 1363], + [2587, 13], + [2588, 1360], + [2589, 1381], + [2590, 1382], + [2591, 1381], + [2592, 1360], + [2593, 1360], + [2594, 1359], + [2596, 1383], + [2597, 1360], + [2598, 1359], + [2599, 1384], + [2600, 1359], + [2601, 1382], + [2602, 13], + [2603, 1360], + [2614, 1385], + [2604, 1386], + [2605, 1368], + [2606, 1387], + [2607, 1360], + [2608, 1368], + [2609, 1363], + [2610, 1368], + [2612, 1388], + [2616, 1363], + [2615, 1363], + [2617, 1360], + [196, 1389], + [198, 1390], + [202, 1391], + [1393, 1] ], - "semanticDiagnosticsPerFile": [ - [ - 196, - [ - { - "start": 1112, - "length": 69, - "code": 2345, - "category": 1, - "messageText": { - "messageText": "Argument of type 'ConfigObject<RulesConfig>' is not assignable to parameter of type 'InfiniteArray<ConfigWithExtends>'.", - "category": 1, - "code": 2345, - "next": [ - { - "messageText": "Type 'ConfigObject<RulesConfig>' is not assignable to type 'ConfigWithExtends'.", - "category": 1, - "code": 2322, - "next": [ - { - "messageText": "Types of property 'plugins' are incompatible.", - "category": 1, - "code": 2326, - "next": [ - { - "messageText": "Type 'Record<string, import(\"/home/gib/Documents/Code/convex-monorepo/node_modules/@eslint/compat/node_modules/@eslint/core/dist/esm/types\").Plugin> | undefined' is not assignable to type 'Record<string, import(\"/home/gib/Documents/Code/convex-monorepo/node_modules/@eslint/core/dist/cjs/types\").Plugin> | undefined'.", - "category": 1, - "code": 2322, - "next": [ - { - "messageText": "Type 'Record<string, import(\"/home/gib/Documents/Code/convex-monorepo/node_modules/@eslint/compat/node_modules/@eslint/core/dist/esm/types\").Plugin>' is not assignable to type 'Record<string, import(\"/home/gib/Documents/Code/convex-monorepo/node_modules/@eslint/core/dist/cjs/types\").Plugin>'.", - "category": 1, - "code": 2322, - "next": [ - { - "messageText": "'string' index signatures are incompatible.", - "category": 1, - "code": 2634, - "next": [ - { - "messageText": "Type 'import(\"/home/gib/Documents/Code/convex-monorepo/node_modules/@eslint/compat/node_modules/@eslint/core/dist/esm/types\").Plugin' is not assignable to type 'import(\"/home/gib/Documents/Code/convex-monorepo/node_modules/@eslint/core/dist/cjs/types\").Plugin'.", - "category": 1, - "code": 2322, - "next": [ - { - "messageText": "Types of property 'configs' are incompatible.", - "category": 1, - "code": 2326, - "next": [ - { - "messageText": "Type 'Record<string, import(\"/home/gib/Documents/Code/convex-monorepo/node_modules/@eslint/compat/node_modules/@eslint/core/dist/esm/types\").ConfigObject<import(\"/home/gib/Documents/Code/convex-monorepo/node_modules/@eslint/compat/node_modules/@eslint/core/dist/esm/types\").RulesConfig> | import(\"/home/gib/Documents/Code/c...' is not assignable to type 'Record<string, import(\"/home/gib/Documents/Code/convex-monorepo/node_modules/@eslint/core/dist/cjs/types\").ConfigObject<import(\"/home/gib/Documents/Code/convex-monorepo/node_modules/@eslint/core/dist/cjs/types\").RulesConfig> | import(\"/home/gib/Documents/Code/convex-monorepo/node_modules/@eslint/core/dist/cjs/types\"...'.", - "category": 1, - "code": 2322, - "next": [ - { - "messageText": "Type 'Record<string, import(\"/home/gib/Documents/Code/convex-monorepo/node_modules/@eslint/compat/node_modules/@eslint/core/dist/esm/types\").ConfigObject<import(\"/home/gib/Documents/Code/convex-monorepo/node_modules/@eslint/compat/node_modules/@eslint/core/dist/esm/types\").RulesConfig> | import(\"/home/gib/Documents/Code/c...' is not assignable to type 'Record<string, import(\"/home/gib/Documents/Code/convex-monorepo/node_modules/@eslint/core/dist/cjs/types\").ConfigObject<import(\"/home/gib/Documents/Code/convex-monorepo/node_modules/@eslint/core/dist/cjs/types\").RulesConfig> | import(\"/home/gib/Documents/Code/convex-monorepo/node_modules/@eslint/core/dist/cjs/types\"...'.", - "category": 1, - "code": 2322, - "next": [ - { - "messageText": "'string' index signatures are incompatible.", - "category": 1, - "code": 2634, - "next": [ - { - "messageText": "Type 'import(\"/home/gib/Documents/Code/convex-monorepo/node_modules/@eslint/compat/node_modules/@eslint/core/dist/esm/types\").ConfigObject<import(\"/home/gib/Documents/Code/convex-monorepo/node_modules/@eslint/compat/node_modules/@eslint/core/dist/esm/types\").RulesConfig> | import(\"/home/gib/Documents/Code/convex-monorepo/...' is not assignable to type 'import(\"/home/gib/Documents/Code/convex-monorepo/node_modules/@eslint/core/dist/cjs/types\").ConfigObject<import(\"/home/gib/Documents/Code/convex-monorepo/node_modules/@eslint/core/dist/cjs/types\").RulesConfig> | import(\"/home/gib/Documents/Code/convex-monorepo/node_modules/@eslint/core/dist/cjs/types\").LegacyConfigO...'.", - "category": 1, - "code": 2322, - "next": [ - { - "messageText": "Type 'ConfigObject<RulesConfig>' is not assignable to type 'ConfigObject<RulesConfig> | LegacyConfigObject<RulesConfig, RulesConfig> | ConfigObject<RulesConfig>[]'.", - "category": 1, - "code": 2322 - } - ] - } - ] - } - ] - } - ], - "canonicalHead": { - "code": 2322, - "messageText": "Type 'import(\"/home/gib/Documents/Code/convex-monorepo/node_modules/@eslint/compat/node_modules/@eslint/core/dist/esm/types\").Plugin' is not assignable to type 'import(\"/home/gib/Documents/Code/convex-monorepo/node_modules/@eslint/core/dist/cjs/types\").Plugin'." - } - } - ] - } - ] - } - ] - } - ] - } - ], - "canonicalHead": { - "code": 2322, - "messageText": "Type 'ConfigObject<RulesConfig>' is not assignable to type 'ConfigWithExtends'." - } - } - ] - } - ] - } - ] - } - } - ] - ], - [ - 1454, - [ - { - "start": 1051, - "length": 2, - "code": 2353, - "category": 1, - "messageText": "Object literal may only specify known properties, and 'CI' does not exist in type 'Record<\"NODE_ENV\" | \"NEXT_PUBLIC_SITE_URL\" | \"NEXT_PUBLIC_CONVEX_URL\" | \"NEXT_PUBLIC_PLAUSIBLE_URL\" | \"NEXT_PUBLIC_SENTRY_DSN\" | \"NEXT_PUBLIC_SENTRY_URL\" | \"NEXT_PUBLIC_SENTRY_ORG\" | \"NEXT_PUBLIC_SENTRY_PROJECT_NAME\", string | ... 2 more ... | undefined>'.", - "relatedInformation": [ - { - "file": "../../../node_modules/@t3-oss/env-nextjs/dist/index.d.ts", - "start": 979, - "length": 24, - "messageText": "The expected type comes from property 'experimental__runtimeEnv' which is declared here on type 'Options<{ SENTRY_AUTH_TOKEN: ZodString; }, { NEXT_PUBLIC_SITE_URL: ZodURL; NEXT_PUBLIC_CONVEX_URL: ZodURL; NEXT_PUBLIC_PLAUSIBLE_URL: ZodURL; NEXT_PUBLIC_SENTRY_DSN: ZodString; NEXT_PUBLIC_SENTRY_URL: ZodString; NEXT_PUBLIC_SENTRY_ORG: ZodString; NEXT_PUBLIC_SENTRY_PROJECT_NAME: ZodString; }, { ...; }, [], DefaultCo...'", - "category": 3, - "code": 6500 - } - ] - } - ] - ], - [ - 1455, - [ - { - "start": 1075, - "length": 2, - "code": 2339, - "category": 1, - "messageText": "Property 'CI' does not exist on type 'Readonly<{ NODE_ENV: \"development\" | \"production\" | \"test\"; SENTRY_AUTH_TOKEN: string; NEXT_PUBLIC_SITE_URL: string; NEXT_PUBLIC_CONVEX_URL: string; NEXT_PUBLIC_PLAUSIBLE_URL: string; NEXT_PUBLIC_SENTRY_DSN: string; NEXT_PUBLIC_SENTRY_URL: string; NEXT_PUBLIC_SENTRY_ORG: string; NEXT_PUBLIC_SENTRY_PROJECT_NAME: stri...'." - } - ] - ], - [ - 1716, - [ - { - "start": 1551, - "length": 48, - "code": 2345, - "category": 1, - "messageText": { - "messageText": "Argument of type '\"skip\" | { storageId: string; }' is not assignable to parameter of type '{ storageId: Id<\"_storage\">; } | \"skip\"'.", - "category": 1, - "code": 2345, - "next": [ - { - "messageText": "Type '{ storageId: string; }' is not assignable to type '{ storageId: Id<\"_storage\">; } | \"skip\"'.", - "category": 1, - "code": 2322, - "next": [ - { - "messageText": "Types of property 'storageId' are incompatible.", - "category": 1, - "code": 2326, - "next": [ - { - "messageText": "Type 'string' is not assignable to type 'Id<\"_storage\">'.", - "category": 1, - "code": 2322, - "next": [ - { - "messageText": "Type 'string' is not assignable to type '{ __tableName: \"_storage\"; }'.", - "category": 1, - "code": 2322 - } - ] - } - ] - } - ] - } - ] - } - } - ] - ] + "changeFileSet": [ + 656, 203, 657, 1392, 1394, 2745, 2764, 2765, 2773, 2774, 2777, 2737, 2738, + 2744, 2742, 2740, 2739, 2743, 2741, 2775, 2776, 2766, 2767, 2771, 2768, + 2769, 2770, 1487, 2730, 2731, 2732, 2734, 2735, 1476, 1477, 1479, 2736, + 1480, 1483, 1478, 2684, 2687, 2685, 2682, 2681, 2686, 2680, 2683, 2688, + 2690, 2678, 2708, 2694, 2696, 2699, 2695, 2697, 2698, 2689, 2691, 2780, + 2778, 2172, 2176, 2175, 2171, 2174, 2167, 2173, 2233, 2235, 2234, 2224, + 2267, 2266, 2238, 2239, 2271, 2270, 2269, 2273, 2272, 2268, 2274, 2275, + 2280, 2281, 2279, 2278, 2277, 2276, 2285, 2284, 2283, 2169, 2170, 2282, + 2256, 2253, 2292, 2291, 2290, 2249, 2261, 2262, 2258, 2257, 2248, 2295, + 2294, 2247, 2246, 2289, 2259, 2287, 2250, 2255, 2252, 2254, 2237, 2286, + 2264, 2265, 2260, 2251, 2245, 2288, 2326, 2325, 2323, 2301, 2324, 2327, + 2329, 2328, 2225, 2226, 2227, 2331, 2330, 2228, 2229, 2221, 2223, 2222, + 2230, 2231, 2232, 2332, 2333, 2335, 2334, 2336, 2337, 2338, 2339, 2341, + 2340, 2353, 2352, 2345, 2346, 2347, 2343, 2344, 2348, 2349, 2350, 2351, + 2357, 2356, 2355, 2361, 2360, 2359, 2354, 2243, 2358, 2365, 2364, 2363, + 2362, 2212, 2194, 2197, 2193, 2210, 2192, 2213, 2198, 2199, 2214, 2208, + 2200, 2202, 2203, 2204, 2201, 2191, 2205, 2206, 2215, 2207, 2216, 2209, + 2211, 2190, 2241, 2240, 2242, 2536, 2366, 2367, 2479, 2296, 2297, 2305, + 2304, 2307, 2306, 2322, 2321, 2308, 2309, 2310, 2311, 2312, 2313, 2315, + 2314, 2303, 2299, 2302, 2298, 2317, 2316, 2320, 2318, 2319, 2368, 2300, + 2369, 2371, 2370, 2378, 2377, 2374, 2376, 2372, 2373, 2375, 2389, 2387, + 2382, 2391, 2393, 2392, 2381, 2390, 2380, 2388, 2384, 2385, 2379, 2383, + 2386, 2398, 2396, 2397, 2403, 2402, 2399, 2395, 2401, 2400, 2394, 2412, + 2413, 2416, 2415, 2419, 2418, 2411, 2409, 2410, 2407, 2406, 2405, 2414, + 2408, 2417, 2428, 2429, 2432, 2431, 2427, 2424, 2426, 2422, 2421, 2420, + 2425, 2430, 2439, 2438, 2435, 2437, 2433, 2434, 2436, 2444, 2445, 2443, + 2442, 2441, 2440, 2449, 2451, 2453, 2452, 2446, 2448, 2450, 2447, 2467, + 2460, 2471, 2470, 2458, 2473, 2472, 2465, 2466, 2464, 2455, 2463, 2462, + 2459, 2461, 2454, 2468, 2469, 2456, 2457, 2263, 2293, 2477, 2483, 2482, + 2481, 2475, 2474, 2480, 2478, 2476, 2487, 2486, 2484, 2485, 2494, 2493, + 2490, 2492, 2491, 2489, 2488, 2505, 2507, 2504, 2501, 2497, 2502, 2509, + 2508, 2506, 2495, 2498, 2500, 2503, 2496, 2499, 2512, 2513, 2510, 2511, + 2517, 2516, 2521, 2520, 2519, 2518, 2515, 2514, 2529, 2533, 2532, 2528, + 2526, 2527, 2530, 2524, 2523, 2522, 2525, 2531, 2165, 2535, 2534, 2423, + 2164, 2195, 2220, 2219, 2217, 2218, 2162, 2163, 2236, 2166, 2244, 2196, + 2342, 2168, 2178, 2181, 2179, 2182, 2177, 2183, 2180, 2184, 2404, 2733, + 1482, 1481, 2700, 2710, 2676, 2677, 2704, 2703, 2702, 2705, 2701, 1549, + 1550, 1551, 1556, 1552, 1555, 1553, 1554, 66, 65, 63, 62, 61, 70, 2186, + 2188, 2189, 2185, 2187, 2760, 2759, 502, 197, 1124, 1125, 1126, 1119, 1120, + 1121, 1122, 1123, 1004, 1007, 1013, 1016, 1037, 1015, 996, 997, 998, 1001, + 999, 1000, 1038, 1003, 1002, 1039, 1006, 1005, 1043, 1040, 1010, 1012, 1009, + 1011, 1008, 1041, 1014, 1042, 1027, 1029, 1031, 1030, 1024, 1017, 1036, + 1033, 1035, 1020, 1022, 1019, 1023, 1034, 1021, 1032, 1018, 1025, 1026, + 1028, 1178, 1179, 1180, 1181, 1070, 1062, 1071, 1063, 1064, 1066, 1073, + 1067, 1068, 1069, 1065, 1088, 1087, 1076, 1072, 1075, 1074, 1077, 1081, + 1078, 1079, 1080, 1085, 1086, 1082, 1083, 1084, 1343, 1344, 1342, 1324, + 1325, 1323, 1322, 1340, 1339, 1338, 1229, 1226, 1230, 1228, 1227, 1336, + 1335, 1238, 1237, 1236, 1309, 1310, 1308, 1142, 1143, 1141, 1265, 1264, + 1263, 1242, 1241, 1240, 1329, 1328, 1327, 1318, 1319, 1317, 1316, 1245, + 1244, 1249, 1248, 1247, 1253, 1252, 1251, 1257, 1256, 1255, 1261, 1260, + 1259, 1277, 1278, 1276, 1275, 1333, 1332, 1331, 1223, 1221, 1222, 1129, + 1140, 1131, 1136, 1137, 1135, 1134, 1132, 1133, 1139, 1130, 1127, 1128, + 1138, 1046, 1057, 1045, 1058, 1047, 1048, 1055, 1056, 1054, 1049, 1050, + 1051, 1052, 1053, 1059, 1044, 1094, 1060, 1061, 1091, 1092, 1089, 1096, + 1101, 1102, 1104, 1090, 1103, 1095, 1109, 1100, 1098, 1097, 1099, 1105, + 1106, 1107, 1108, 1093, 2712, 1306, 1294, 1305, 1296, 1301, 1302, 1300, + 1299, 1297, 1298, 1304, 1295, 1292, 1293, 1303, 1286, 1287, 1288, 1289, + 1290, 1291, 1281, 1282, 1283, 1284, 1285, 1493, 1497, 1502, 1506, 1503, + 1504, 1505, 1496, 1511, 1494, 1501, 1512, 1498, 1513, 1499, 1515, 1516, + 1514, 1510, 1517, 1519, 1520, 1521, 1522, 1508, 1500, 1495, 1523, 1524, + 1509, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1534, 1533, 1535, + 1536, 1518, 1507, 2037, 2036, 2033, 904, 908, 901, 902, 905, 898, 899, 897, + 895, 907, 900, 906, 903, 896, 1377, 1378, 1373, 1379, 1374, 1376, 1375, + 1372, 992, 994, 993, 988, 989, 990, 1369, 982, 974, 975, 976, 973, 977, 972, + 985, 979, 991, 987, 986, 984, 981, 980, 1385, 978, 1382, 1383, 1384, 1118, + 983, 1117, 1386, 1370, 749, 745, 721, 720, 661, 771, 869, 724, 755, 714, + 770, 743, 744, 740, 747, 742, 796, 792, 871, 827, 828, 829, 830, 831, 711, + 777, 802, 786, 790, 778, 773, 779, 787, 788, 789, 772, 774, 795, 794, 775, + 782, 776, 780, 781, 784, 783, 799, 797, 798, 864, 800, 801, 791, 748, 699, + 715, 739, 726, 746, 810, 812, 811, 734, 727, 813, 815, 814, 729, 738, 818, + 817, 816, 821, 820, 819, 737, 735, 807, 809, 808, 736, 732, 731, 733, 718, + 728, 806, 803, 804, 805, 750, 751, 725, 793, 662, 664, 867, 675, 677, 674, + 678, 676, 689, 679, 695, 865, 705, 696, 703, 697, 682, 680, 685, 684, 681, + 785, 706, 670, 687, 660, 700, 688, 673, 666, 710, 692, 686, 832, 690, 691, + 672, 866, 707, 693, 708, 694, 663, 669, 667, 701, 702, 712, 704, 730, 698, + 668, 709, 683, 868, 833, 671, 840, 822, 752, 858, 855, 823, 824, 853, 768, + 863, 836, 825, 722, 753, 852, 826, 857, 844, 665, 861, 758, 756, 761, 834, + 835, 757, 765, 767, 837, 846, 838, 839, 841, 759, 763, 842, 741, 713, 859, + 870, 854, 769, 754, 764, 843, 762, 719, 845, 848, 849, 850, 851, 716, 766, + 717, 760, 856, 860, 862, 723, 847, 957, 959, 971, 958, 968, 965, 967, 966, + 964, 962, 969, 970, 960, 956, 963, 961, 875, 953, 880, 891, 872, 873, 876, + 955, 884, 888, 889, 894, 937, 949, 948, 947, 940, 939, 938, 943, 942, 941, + 952, 951, 950, 946, 945, 944, 885, 909, 893, 886, 887, 892, 936, 954, 878, + 935, 883, 882, 879, 931, 932, 930, 933, 877, 934, 874, 881, 890, 923, 926, + 925, 922, 924, 929, 927, 928, 920, 921, 919, 917, 916, 911, 915, 914, 910, + 913, 918, 912, 1217, 1212, 1215, 1213, 1214, 1218, 1189, 1190, 1202, 1193, + 1194, 1146, 1175, 1174, 1147, 1195, 1196, 1197, 1177, 1176, 1198, 1199, + 1204, 1188, 1200, 1201, 1203, 1191, 1192, 1216, 1182, 1184, 1183, 1205, + 1173, 1209, 1185, 1186, 1169, 1170, 1171, 1172, 1207, 1211, 1210, 1187, + 1208, 1206, 1145, 1368, 1358, 1359, 1354, 1355, 1356, 1357, 1225, 1220, + 1224, 1345, 1350, 1326, 1341, 1231, 1235, 1232, 1234, 1233, 1363, 1364, + 1361, 1362, 1360, 1337, 1351, 1239, 1312, 1311, 1315, 1313, 1314, 1367, + 1243, 1330, 1320, 1352, 1353, 1246, 1250, 1254, 1258, 1262, 1349, 1279, + 1280, 1307, 1266, 1334, 1348, 1346, 1347, 1365, 1366, 1219, 1144, 1162, + 1163, 1152, 1168, 1164, 1166, 1148, 1161, 1165, 1159, 1151, 1154, 1157, + 1158, 1150, 1153, 1156, 1167, 1155, 1160, 1149, 1110, 1116, 1115, 1114, + 1113, 1111, 1112, 995, 1381, 1380, 1396, 1395, 1397, 2783, 2779, 2781, 2782, + 1321, 2784, 2785, 2786, 2787, 2788, 2046, 2023, 2047, 2022, 2789, 2792, + 2791, 2790, 67, 2793, 2794, 2795, 2882, 2861, 2863, 2862, 2865, 2867, 2868, + 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2866, + 2880, 2864, 2881, 2859, 2809, 2807, 2834, 2822, 2802, 2799, 2835, 2808, + 2810, 2803, 2798, 2796, 2858, 2804, 2832, 2833, 2836, 2837, 2838, 2839, + 2840, 2841, 2842, 2843, 2844, 2800, 2845, 2846, 2847, 2848, 2849, 2850, + 2851, 2852, 2853, 2801, 2854, 2855, 2856, 2805, 2857, 2811, 2819, 2814, + 2813, 2812, 2817, 2821, 2820, 2815, 2816, 2818, 2806, 2797, 2827, 2828, + 2829, 2831, 2830, 2825, 2826, 2824, 2823, 2883, 2884, 2885, 60, 2886, 2887, + 264, 265, 266, 218, 267, 268, 269, 213, 216, 214, 215, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 219, 217, 281, 282, 283, 317, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 301, + 300, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 220, + 221, 222, 261, 262, 263, 315, 316, 2888, 1274, 1273, 1272, 323, 321, 324, + 320, 587, 322, 318, 585, 319, 204, 206, 584, 354, 2889, 2890, 2891, 2860, + 2892, 2893, 2894, 2895, 82, 83, 148, 156, 109, 110, 120, 108, 107, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 121, 157, 152, 122, 154, 153, 151, 155, + 149, 134, 147, 135, 136, 137, 138, 139, 129, 140, 130, 141, 131, 146, 133, + 128, 142, 143, 132, 144, 145, 150, 124, 126, 125, 123, 127, 74, 78, 75, 76, + 77, 79, 80, 89, 90, 91, 103, 92, 87, 95, 88, 93, 94, 99, 85, 86, 84, 100, + 101, 102, 173, 175, 172, 177, 174, 176, 178, 181, 179, 180, 185, 187, 182, + 183, 184, 188, 186, 192, 160, 105, 165, 169, 163, 159, 106, 164, 162, 170, + 158, 161, 166, 167, 168, 171, 104, 190, 191, 189, 96, 98, 97, 223, 1491, + 1490, 1489, 2538, 2663, 2664, 2632, 2667, 2662, 2659, 2660, 2631, 2658, + 2654, 2669, 2661, 2656, 2657, 2772, 2673, 2672, 2668, 2674, 2675, 2670, + 2665, 2666, 2671, 2653, 2633, 2649, 2648, 2646, 2634, 2642, 2635, 2643, + 2651, 2636, 2637, 2639, 2652, 2647, 2645, 2641, 2638, 2644, 2640, 2650, + 2623, 2626, 2628, 2627, 2630, 2629, 2625, 2624, 2622, 2655, 205, 1645, 1624, + 1721, 1625, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, + 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1557, 1579, 1580, 1581, + 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, + 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, + 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, + 1618, 1619, 1620, 1621, 1622, 1623, 1626, 1627, 1628, 1629, 1630, 1631, + 1632, 1633, 1634, 1635, 1636, 1637, 1559, 1638, 1639, 1640, 1641, 1642, + 1643, 1644, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, + 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, + 1814, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, + 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, + 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, + 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, + 1715, 1716, 1717, 1718, 1719, 1720, 1722, 1910, 1815, 1817, 1818, 1819, + 1820, 1821, 1816, 1822, 1824, 1823, 1825, 1826, 1827, 1828, 1829, 1830, + 1831, 1832, 1834, 1833, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, + 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1851, 1852, 1850, 1853, 1854, + 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1866, 1865, + 1868, 1867, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, + 1879, 1880, 1881, 1883, 1882, 1884, 1885, 1886, 1888, 1887, 1889, 1890, + 1891, 1892, 1893, 1894, 1896, 1895, 1897, 1898, 1899, 1900, 1901, 1558, + 1902, 1903, 1905, 1904, 1906, 1907, 1908, 1909, 1723, 1724, 1725, 1726, + 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, + 1739, 1740, 1741, 1746, 1744, 1743, 1745, 1742, 1747, 1748, 1749, 1750, + 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, + 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, + 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, + 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, + 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1560, + 1810, 1811, 1812, 1813, 2152, 2019, 2020, 1985, 1993, 1987, 1994, 2016, + 1991, 2015, 2012, 1995, 1996, 1989, 1986, 2017, 2013, 1997, 2014, 1998, + 2000, 2001, 1990, 2002, 2003, 2005, 2006, 2007, 2009, 2004, 2010, 2011, + 1988, 2008, 1999, 1992, 2018, 71, 200, 201, 199, 72, 64, 69, 68, 2077, 2584, + 659, 658, 1488, 1371, 1391, 1390, 1388, 1387, 1389, 2611, 608, 613, 620, + 603, 358, 366, 506, 509, 481, 494, 501, 383, 483, 364, 480, 526, 365, 356, + 508, 510, 511, 582, 475, 428, 488, 489, 487, 486, 482, 507, 367, 552, 553, + 394, 368, 395, 431, 334, 504, 503, 493, 598, 343, 619, 560, 561, 557, 637, + 458, 562, 558, 642, 641, 636, 409, 461, 460, 635, 559, 414, 421, 423, 413, + 418, 420, 422, 417, 415, 419, 638, 634, 640, 639, 412, 629, 632, 402, 401, + 400, 645, 399, 388, 647, 1485, 1484, 648, 649, 326, 490, 491, 492, 330, 495, + 350, 325, 574, 332, 573, 572, 563, 564, 571, 566, 569, 565, 567, 570, 568, + 363, 360, 361, 515, 520, 521, 519, 517, 518, 513, 580, 355, 607, 614, 618, + 449, 448, 443, 594, 602, 476, 477, 555, 465, 578, 453, 470, 581, 466, 469, + 467, 579, 576, 575, 577, 473, 551, 338, 451, 455, 471, 474, 463, 456, 601, + 529, 447, 335, 600, 331, 522, 514, 523, 540, 512, 539, 212, 534, 359, 554, + 530, 344, 346, 485, 538, 362, 386, 472, 392, 452, 537, 516, 542, 543, 484, + 545, 547, 546, 496, 536, 549, 446, 535, 541, 371, 375, 374, 373, 378, 372, + 381, 380, 377, 376, 379, 382, 370, 438, 437, 442, 439, 441, 444, 440, 351, + 430, 597, 595, 624, 626, 590, 625, 339, 336, 369, 353, 352, 348, 349, 357, + 385, 396, 432, 397, 341, 340, 436, 435, 434, 433, 342, 583, 384, 589, 556, + 586, 588, 479, 478, 459, 445, 427, 429, 426, 548, 450, 612, 347, 550, 596, + 457, 387, 464, 462, 389, 524, 591, 390, 525, 610, 609, 611, 593, 592, 527, + 454, 424, 345, 403, 329, 391, 616, 328, 628, 411, 622, 410, 605, 408, 333, + 630, 406, 407, 398, 327, 405, 404, 393, 468, 528, 544, 532, 531, 416, 337, + 425, 599, 606, 207, 210, 211, 208, 209, 505, 500, 499, 498, 497, 604, 615, + 617, 621, 1486, 623, 627, 655, 631, 654, 633, 643, 644, 646, 650, 653, 652, + 651, 2679, 2719, 2715, 2716, 2720, 2718, 2717, 2714, 2713, 1271, 1268, 1270, + 1269, 1267, 2693, 2692, 1537, 1971, 1928, 1969, 1930, 1929, 1968, 1970, + 1911, 1912, 1913, 1936, 1937, 1938, 1939, 1940, 1941, 1914, 1942, 1943, + 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1915, 1953, 1954, 1951, 1952, + 1955, 1956, 1957, 1958, 1959, 1960, 1962, 1963, 1961, 1964, 1965, 1972, + 1973, 1982, 1927, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1924, 1925, + 1923, 1926, 1967, 1934, 1935, 1931, 1932, 1966, 1933, 1974, 1975, 1981, + 1976, 1977, 1978, 1979, 1980, 2547, 2562, 2563, 2577, 2564, 2565, 2566, + 2560, 2558, 2549, 2553, 2557, 2555, 2561, 2550, 2551, 2552, 2554, 2556, + 2559, 2567, 2568, 2569, 2570, 2571, 2572, 2548, 2573, 2575, 2574, 2576, + 2580, 2595, 2063, 2061, 2065, 2132, 2127, 2030, 2098, 2091, 2148, 2086, + 2131, 2128, 2080, 2090, 2133, 2134, 2135, 2028, 2097, 2143, 2137, 2145, + 2149, 2136, 2138, 2141, 2144, 2140, 2142, 2146, 2139, 2040, 2112, 2109, + 2113, 2051, 2041, 2104, 2029, 2050, 2054, 2111, 2026, 2110, 2108, 2107, + 2042, 2154, 2122, 2102, 2158, 2123, 2121, 2117, 2119, 2124, 2126, 2120, + 2118, 2116, 2049, 2025, 2115, 2064, 2114, 2089, 2147, 2082, 2038, 2043, + 2092, 2094, 2073, 2076, 2055, 2075, 2084, 2085, 2081, 2095, 2083, 2060, + 2103, 2099, 2100, 2096, 2074, 2062, 2067, 2044, 2071, 2072, 2068, 2045, + 2056, 2093, 2039, 2101, 2066, 2059, 2087, 2150, 2078, 2125, 2088, 2156, + 2157, 2129, 2155, 2052, 2079, 2031, 2058, 2153, 2057, 2130, 2069, 2105, + 2106, 2053, 2070, 2151, 2027, 2035, 2032, 2034, 533, 2613, 1492, 193, 194, + 195, 58, 59, 10, 11, 13, 12, 2, 14, 15, 16, 17, 18, 19, 20, 21, 3, 22, 23, + 4, 24, 28, 25, 26, 27, 29, 30, 31, 5, 32, 33, 34, 35, 6, 39, 36, 37, 38, 40, + 7, 41, 46, 47, 42, 43, 44, 45, 8, 51, 48, 49, 50, 52, 9, 53, 54, 55, 57, 56, + 1, 81, 73, 239, 249, 238, 259, 230, 229, 258, 252, 257, 232, 246, 231, 255, + 227, 226, 256, 228, 233, 234, 237, 224, 260, 250, 241, 242, 244, 240, 243, + 253, 235, 236, 245, 225, 248, 247, 251, 254, 2721, 2542, 2024, 2048, 2761, + 2748, 2750, 2757, 2752, 2753, 2751, 2754, 2746, 2747, 2758, 2749, 2755, + 2756, 1468, 1472, 1469, 1465, 1473, 1470, 1474, 1471, 1466, 1467, 1461, + 1405, 1407, 1460, 1406, 1464, 1463, 1462, 1398, 1408, 1409, 1400, 1404, + 1399, 1401, 1402, 1403, 1475, 1410, 1411, 1412, 1413, 1414, 1415, 1416, + 1417, 1418, 1419, 1420, 1421, 1422, 1424, 1423, 1425, 1426, 1427, 1428, + 1459, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, + 1440, 1441, 1443, 1442, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, + 1452, 1453, 1454, 1455, 1458, 1456, 1457, 2729, 2707, 2709, 2724, 2725, + 2723, 2711, 2722, 2726, 2727, 2706, 2728, 2762, 2763, 1538, 1540, 1539, + 1541, 1542, 1543, 1544, 1545, 1546, 1548, 1547, 1983, 1984, 2021, 2159, + 2160, 2161, 2537, 2539, 2540, 2541, 2543, 2544, 2545, 2546, 2578, 2620, + 2618, 2619, 2579, 2581, 2621, 2583, 2585, 2582, 2586, 2587, 2588, 2589, + 2590, 2591, 2592, 2593, 2594, 2596, 2597, 2598, 2599, 2600, 2601, 2602, + 2603, 2614, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2612, 2616, 2615, + 2617, 196, 198, 202, 1393 ], "affectedFilesPendingEmit": [ - 203, 1455, 1457, 1695, 1714, 1715, 1723, 1724, 1727, 1688, 1694, 1692, 1690, - 1689, 1693, 1691, 1725, 1726, 1716, 1717, 1721, 1718, 1719, 1720, 1465, - 1681, 1682, 1683, 1685, 1686, 1454, 1687, 1458, 1461 + 203, 1392, 1394, 2745, 2764, 2765, 2773, 2774, 2777, 2738, 2744, 2742, 2740, + 2739, 2743, 2741, 2775, 2776, 2766, 2767, 2771, 2768, 2769, 2770, 1487, + 2730, 2731, 2732, 2734, 2735, 2736 ], "version": "5.9.3" } diff --git a/apps/next/next.config.js b/apps/next/next.config.js index d67d2b2..06c7dac 100644 --- a/apps/next/next.config.js +++ b/apps/next/next.config.js @@ -1,5 +1,5 @@ -import { createJiti } from 'jiti'; import { withSentryConfig } from '@sentry/nextjs'; +import { createJiti } from 'jiti'; import { withPlausibleProxy } from 'next-plausible'; const jiti = createJiti(import.meta.url); diff --git a/apps/next/src/app/(auth)/sign-in/page.tsx b/apps/next/src/app/(auth)/sign-in/page.tsx index 6d3917f..0d55f97 100644 --- a/apps/next/src/app/(auth)/sign-in/page.tsx +++ b/apps/next/src/app/(auth)/sign-in/page.tsx @@ -252,27 +252,27 @@ const SignIn = () => { <Tabs defaultValue={flow} onValueChange={(value) => setFlow(value as 'signIn' | 'signUp')} - className='items-center flex-col' + className='flex-col items-center' > <TabsList> <TabsTrigger value='signIn' - className='cursor-pointer py-2 px-6 text-2xl font-bold' + className='cursor-pointer px-6 py-2 text-2xl font-bold' > Sign In </TabsTrigger> <TabsTrigger value='signUp' - className='cursor-pointer py-2 px-6 text-2xl font-bold' + className='cursor-pointer px-6 py-2 text-2xl font-bold' > Sign Up </TabsTrigger> </TabsList> <TabsContent value='signIn' - className='min-h-[560px] items-center flex flex-row' + className='flex min-h-[560px] flex-row items-center' > - <Card className='bg-card/50 min-w-xs sm:min-w-sm py-10'> + <Card className='bg-card/50 min-w-xs py-10 sm:min-w-sm'> <CardContent> <Form {...signInForm}> <form diff --git a/apps/next/src/app/global-error.tsx b/apps/next/src/app/global-error.tsx index 5154cec..fae61df 100644 --- a/apps/next/src/app/global-error.tsx +++ b/apps/next/src/app/global-error.tsx @@ -10,12 +10,12 @@ import { useEffect } from 'react'; import Footer from '@/components/layout/footer'; import Header from '@/components/layout/header'; import { ConvexClientProvider } from '@/components/providers'; +import { env } from '@/env'; import { generateMetadata } from '@/lib/metadata'; import * as Sentry from '@sentry/nextjs'; import PlausibleProvider from 'next-plausible'; import { Button, ThemeProvider, Toaster } from '@gib/ui'; -import { env } from '@/env'; export const metadata: Metadata = generateMetadata(); diff --git a/apps/next/src/components/landing/cta.tsx b/apps/next/src/components/landing/cta.tsx index 936eedd..728c5bc 100644 --- a/apps/next/src/components/landing/cta.tsx +++ b/apps/next/src/components/landing/cta.tsx @@ -1,33 +1,31 @@ -export function CTA() { - return ( - <section className='container mx-auto px-4 py-24'> - <div className='mx-auto max-w-4xl'> - <div className='border-border/40 from-muted/50 to-muted/30 rounded-2xl border bg-linear-to-br p-8 text-center md:p-12'> - <h2 className='mb-4 text-3xl font-bold tracking-tight sm:text-4xl'> - Ready to Build Something Amazing? - </h2> - <p className='text-muted-foreground mb-8 text-lg'> - Clone the repository and start building your next project with - everything pre-configured. - </p> +export const CTA = () => ( + <section className='container mx-auto px-4 py-24'> + <div className='mx-auto max-w-4xl'> + <div className='border-border/40 from-muted/50 to-muted/30 rounded-2xl border bg-linear-to-br p-8 text-center md:p-12'> + <h2 className='mb-4 text-3xl font-bold tracking-tight sm:text-4xl'> + Ready to Build Something Amazing? + </h2> + <p className='text-muted-foreground mb-8 text-lg'> + Clone the repository and start building your next project with + everything pre-configured. + </p> - {/* Quick Start Command */} - <div className='mt-12'> - <p className='text-muted-foreground mb-3 text-sm font-medium'> - Quick Start - </p> - <div className='border-border/40 bg-background mx-auto max-w-2xl rounded-lg border p-4'> - <code className='text-sm'> - git clone https://git.gbrown.org/gib/convex-monorepo.git - <br /> - cd convex-monorepo - <br /> - bun i - </code> - </div> + {/* Quick Start Command */} + <div className='mt-12'> + <p className='text-muted-foreground mb-3 text-sm font-medium'> + Quick Start + </p> + <div className='border-border/40 bg-background mx-auto max-w-2xl rounded-lg border p-4'> + <code className='text-sm'> + git clone https://git.gbrown.org/gib/convex-monorepo.git + <br /> + cd convex-monorepo + <br /> + bun i + </code> </div> </div> </div> - </section> - ); -} + </div> + </section> +); diff --git a/apps/next/src/components/landing/features.tsx b/apps/next/src/components/landing/features.tsx index da44afe..8f92b28 100644 --- a/apps/next/src/components/landing/features.tsx +++ b/apps/next/src/components/landing/features.tsx @@ -57,36 +57,34 @@ const features = [ }, ]; -export function Features() { - return ( - <section id='features' className='container mx-auto px-4 py-24'> - <div className='mx-auto max-w-6xl'> - {/* Section Header */} - <div className='mb-16 text-center'> - <h2 className='mb-4 text-3xl font-bold tracking-tight sm:text-4xl md:text-5xl'> - Everything You Need to Ship Fast - </h2> - <p className='text-muted-foreground mx-auto max-w-2xl text-lg'> - A complete monorepo template with all the tools and patterns you - need for production-ready applications. - </p> - </div> - - {/* Features Grid */} - <div className='grid gap-6 md:grid-cols-2 lg:grid-cols-3'> - {features.map((feature) => ( - <Card key={feature.title} className='border-border/40'> - <CardHeader className='flex items-center gap-2'> - <div className='mb-2 text-3xl'>{feature.icon}</div> - <CardTitle className='text-xl'>{feature.title}</CardTitle> - </CardHeader> - <CardContent> - <p className='text-muted-foreground'>{feature.description}</p> - </CardContent> - </Card> - ))} - </div> +export const Features = () => ( + <section id='features' className='container mx-auto px-4 py-24'> + <div className='mx-auto max-w-6xl'> + {/* Section Header */} + <div className='mb-16 text-center'> + <h2 className='mb-4 text-3xl font-bold tracking-tight sm:text-4xl md:text-5xl'> + Everything You Need to Ship Fast + </h2> + <p className='text-muted-foreground mx-auto max-w-2xl text-lg'> + A complete monorepo template with all the tools and patterns you need + for production-ready applications. + </p> </div> - </section> - ); -} + + {/* Features Grid */} + <div className='grid gap-6 md:grid-cols-2 lg:grid-cols-3'> + {features.map((feature) => ( + <Card key={feature.title} className='border-border/40'> + <CardHeader className='flex items-center gap-2'> + <div className='mb-2 text-3xl'>{feature.icon}</div> + <CardTitle className='text-xl'>{feature.title}</CardTitle> + </CardHeader> + <CardContent> + <p className='text-muted-foreground'>{feature.description}</p> + </CardContent> + </Card> + ))} + </div> + </div> + </section> +); diff --git a/apps/next/src/components/landing/hero.tsx b/apps/next/src/components/landing/hero.tsx index 5ccbbc2..913e935 100644 --- a/apps/next/src/components/landing/hero.tsx +++ b/apps/next/src/components/landing/hero.tsx @@ -9,120 +9,118 @@ const kanitSans = Kanit({ weight: ['400', '500', '600', '700'], }); -export function Hero() { - return ( - <section className='container mx-auto px-4 py-24 md:py-32 lg:py-40'> - <div className='mx-auto flex max-w-5xl flex-col items-center gap-8 text-center'> - {/* Badge */} - <div className='border-border/40 bg-muted/50 inline-flex items-center rounded-full border px-3 py-1 text-sm font-medium'> - <span className='mr-2'>🚀</span> - <span>Production-ready monorepo template</span> - </div> +export const Hero = () => ( + <section className='container mx-auto px-4 py-24 md:py-32 lg:py-40'> + <div className='mx-auto flex max-w-5xl flex-col items-center gap-8 text-center'> + {/* Badge */} + <div className='border-border/40 bg-muted/50 inline-flex items-center rounded-full border px-3 py-1 text-sm font-medium'> + <span className='mr-2'>🚀</span> + <span>Production-ready monorepo template</span> + </div> - {/* Heading */} - <h1 className='from-foreground to-foreground/70 bg-linear-to-br bg-clip-text text-4xl font-bold tracking-tight text-transparent sm:text-5xl md:text-6xl lg:text-7xl'> - Build Full-Stack Apps with{' '} - <span - className={`${kanitSans.className} to-accent-foreground bg-linear-to-r from-[#281A65] via-[#363354] bg-clip-text text-transparent sm:text-6xl lg:text-7xl xl:text-8xl dark:from-[#bec8e6] dark:via-[#F0EEE4] dark:to-[#FFF8E7]`} + {/* Heading */} + <h1 className='from-foreground to-foreground/70 bg-linear-to-br bg-clip-text text-4xl font-bold tracking-tight text-transparent sm:text-5xl md:text-6xl lg:text-7xl'> + Build Full-Stack Apps with{' '} + <span + className={`${kanitSans.className} to-accent-foreground bg-linear-to-r from-[#281A65] via-[#363354] bg-clip-text text-transparent sm:text-6xl lg:text-7xl xl:text-8xl dark:from-[#bec8e6] dark:via-[#F0EEE4] dark:to-[#FFF8E7]`} + > + convex monorepo + </span> + </h1> + + {/* Description */} + <p className='text-muted-foreground max-w-2xl text-lg md:text-xl'> + A Turborepo starter with Next.js, Expo, and self-hosted Convex. Ship web + and mobile apps faster with shared code, type-safe backend, and complete + control over your infrastructure. + </p> + + {/* CTA Buttons */} + <div className='flex flex-col gap-3 sm:flex-row'> + <Button size='lg' variant='outline' asChild> + <Link + href='https://git.gbrown.org/gib/convex-monorepo' + target='_blank' + rel='noopener noreferrer' > - convex monorepo - </span> - </h1> + <Image + src='/misc/gitea/gitea.svg' + alt='Gitea' + width={20} + height={20} + /> + View Source Code + </Link> + </Button> + </div> - {/* Description */} - <p className='text-muted-foreground max-w-2xl text-lg md:text-xl'> - A Turborepo starter with Next.js, Expo, and self-hosted Convex. Ship - web and mobile apps faster with shared code, type-safe backend, and - complete control over your infrastructure. - </p> - - {/* CTA Buttons */} - <div className='flex flex-col gap-3 sm:flex-row'> - <Button size='lg' variant='outline' asChild> - <Link - href='https://git.gbrown.org/gib/convex-monorepo' - target='_blank' - rel='noopener noreferrer' - > - <Image - src='/misc/gitea/gitea.svg' - alt='Gitea' - width={20} - height={20} - /> - View Source Code - </Link> - </Button> + {/* Features Quick List */} + <div className='text-muted-foreground mt-8 flex flex-wrap items-center justify-center gap-6 text-sm'> + <div className='flex items-center gap-2'> + <svg + className='h-5 w-5 text-green-500' + fill='none' + viewBox='0 0 24 24' + stroke='currentColor' + > + <path + strokeLinecap='round' + strokeLinejoin='round' + strokeWidth={2} + d='M5 13l4 4L19 7' + /> + </svg> + <span>TypeScript</span> </div> - - {/* Features Quick List */} - <div className='text-muted-foreground mt-8 flex flex-wrap items-center justify-center gap-6 text-sm'> - <div className='flex items-center gap-2'> - <svg - className='h-5 w-5 text-green-500' - fill='none' - viewBox='0 0 24 24' - stroke='currentColor' - > - <path - strokeLinecap='round' - strokeLinejoin='round' - strokeWidth={2} - d='M5 13l4 4L19 7' - /> - </svg> - <span>TypeScript</span> - </div> - <div className='flex items-center gap-2'> - <svg - className='h-5 w-5 text-green-500' - fill='none' - viewBox='0 0 24 24' - stroke='currentColor' - > - <path - strokeLinecap='round' - strokeLinejoin='round' - strokeWidth={2} - d='M5 13l4 4L19 7' - /> - </svg> - <span>Self-Hosted</span> - </div> - <div className='flex items-center gap-2'> - <svg - className='h-5 w-5 text-green-500' - fill='none' - viewBox='0 0 24 24' - stroke='currentColor' - > - <path - strokeLinecap='round' - strokeLinejoin='round' - strokeWidth={2} - d='M5 13l4 4L19 7' - /> - </svg> - <span>Real-time</span> - </div> - <div className='flex items-center gap-2'> - <svg - className='h-5 w-5 text-green-500' - fill='none' - viewBox='0 0 24 24' - stroke='currentColor' - > - <path - strokeLinecap='round' - strokeLinejoin='round' - strokeWidth={2} - d='M5 13l4 4L19 7' - /> - </svg> - <span>Auth Included</span> - </div> + <div className='flex items-center gap-2'> + <svg + className='h-5 w-5 text-green-500' + fill='none' + viewBox='0 0 24 24' + stroke='currentColor' + > + <path + strokeLinecap='round' + strokeLinejoin='round' + strokeWidth={2} + d='M5 13l4 4L19 7' + /> + </svg> + <span>Self-Hosted</span> + </div> + <div className='flex items-center gap-2'> + <svg + className='h-5 w-5 text-green-500' + fill='none' + viewBox='0 0 24 24' + stroke='currentColor' + > + <path + strokeLinecap='round' + strokeLinejoin='round' + strokeWidth={2} + d='M5 13l4 4L19 7' + /> + </svg> + <span>Real-time</span> + </div> + <div className='flex items-center gap-2'> + <svg + className='h-5 w-5 text-green-500' + fill='none' + viewBox='0 0 24 24' + stroke='currentColor' + > + <path + strokeLinecap='round' + strokeLinejoin='round' + strokeWidth={2} + d='M5 13l4 4L19 7' + /> + </svg> + <span>Auth Included</span> </div> </div> - </section> - ); -} + </div> + </section> +); diff --git a/apps/next/src/components/landing/tech-stack.tsx b/apps/next/src/components/landing/tech-stack.tsx index 75f707c..140321e 100644 --- a/apps/next/src/components/landing/tech-stack.tsx +++ b/apps/next/src/components/landing/tech-stack.tsx @@ -36,44 +36,42 @@ const techStack = [ }, ]; -export function TechStack() { - return ( - <section id='tech-stack' className='border-border/40 bg-muted/30 border-t'> - <div className='container mx-auto px-4 py-24'> - <div className='mx-auto max-w-6xl'> - {/* Section Header */} - <div className='mb-16 text-center'> - <h2 className='mb-4 text-3xl font-bold tracking-tight sm:text-4xl md:text-5xl'> - Modern Tech Stack - </h2> - <p className='text-muted-foreground mx-auto max-w-2xl text-lg'> - Built with the latest and greatest tools for maximum productivity - and performance. - </p> - </div> +export const TechStack = () => ( + <section id='tech-stack' className='border-border/40 bg-muted/30 border-t'> + <div className='container mx-auto px-4 py-24'> + <div className='mx-auto max-w-6xl'> + {/* Section Header */} + <div className='mb-16 text-center'> + <h2 className='mb-4 text-3xl font-bold tracking-tight sm:text-4xl md:text-5xl'> + Modern Tech Stack + </h2> + <p className='text-muted-foreground mx-auto max-w-2xl text-lg'> + Built with the latest and greatest tools for maximum productivity + and performance. + </p> + </div> - {/* Tech Stack Grid */} - <div className='grid gap-12 md:grid-cols-3'> - {techStack.map((stack) => ( - <div key={stack.category}> - <h3 className='mb-6 text-xl font-semibold'>{stack.category}</h3> - <ul className='space-y-4'> - {stack.technologies.map((tech) => ( - <li key={tech.name}> - <div className='text-foreground font-medium'> - {tech.name} - </div> - <div className='text-muted-foreground text-sm'> - {tech.description} - </div> - </li> - ))} - </ul> - </div> - ))} - </div> + {/* Tech Stack Grid */} + <div className='grid gap-12 md:grid-cols-3'> + {techStack.map((stack) => ( + <div key={stack.category}> + <h3 className='mb-6 text-xl font-semibold'>{stack.category}</h3> + <ul className='space-y-4'> + {stack.technologies.map((tech) => ( + <li key={tech.name}> + <div className='text-foreground font-medium'> + {tech.name} + </div> + <div className='text-muted-foreground text-sm'> + {tech.description} + </div> + </li> + ))} + </ul> + </div> + ))} </div> </div> - </section> - ); -} + </div> + </section> +); diff --git a/apps/next/src/components/layout/auth/profile/header.tsx b/apps/next/src/components/layout/auth/profile/header.tsx index f7e8803..dbef373 100644 --- a/apps/next/src/components/layout/auth/profile/header.tsx +++ b/apps/next/src/components/layout/auth/profile/header.tsx @@ -1,4 +1,5 @@ 'use client'; + import { CardDescription, CardHeader, CardTitle } from '@gib/ui'; const ProfileHeader = () => { diff --git a/apps/next/src/components/layout/auth/profile/user-info.tsx b/apps/next/src/components/layout/auth/profile/user-info.tsx index 41734e2..c7d0339 100644 --- a/apps/next/src/components/layout/auth/profile/user-info.tsx +++ b/apps/next/src/components/layout/auth/profile/user-info.tsx @@ -53,7 +53,7 @@ export const UserInfoForm = ({ const userProvider = usePreloadedQuery(preloadedProvider); const providerMap: Record<string, string> = { unknown: 'Provider', - authentik: 'Gib\'s Auth', + authentik: "Gib's Auth", }; const [loading, setLoading] = useState(false); @@ -150,7 +150,8 @@ export const UserInfoForm = ({ </FormDescription> ) : ( <FormDescription> - Email is managed through your {providerMap[userProvider ?? 'unknown']} account + Email is managed through your{' '} + {providerMap[userProvider ?? 'unknown']} account </FormDescription> )} <FormMessage /> diff --git a/apps/next/src/components/layout/header/index.tsx b/apps/next/src/components/layout/header/index.tsx index 0999702..b9ace04 100644 --- a/apps/next/src/components/layout/header/index.tsx +++ b/apps/next/src/components/layout/header/index.tsx @@ -28,7 +28,7 @@ export default function Header(headerProps: ComponentProps<'header'>) { alt='Convex Monorepo' width={50} height={50} - className='invert dark:invert-0 w-15' + className='w-15 invert dark:invert-0' /> <span className={`mb-3 hidden font-extrabold lg:inline lg:text-5xl ${kanitSans.className}`} diff --git a/apps/next/src/components/providers/ConvexClientProvider.tsx b/apps/next/src/components/providers/ConvexClientProvider.tsx index 8fbe367..a69d062 100644 --- a/apps/next/src/components/providers/ConvexClientProvider.tsx +++ b/apps/next/src/components/providers/ConvexClientProvider.tsx @@ -7,10 +7,8 @@ import { ConvexReactClient } from 'convex/react'; const convex = new ConvexReactClient(env.NEXT_PUBLIC_CONVEX_URL); -export function ConvexClientProvider({ children }: { children: ReactNode }) { - return ( - <ConvexAuthNextjsProvider client={convex}> - {children} - </ConvexAuthNextjsProvider> - ); -} +export const ConvexClientProvider = ({ children }: { children: ReactNode }) => ( + <ConvexAuthNextjsProvider client={convex}> + {children} + </ConvexAuthNextjsProvider> +); diff --git a/apps/next/src/env.ts b/apps/next/src/env.ts index 57655ac..9d83467 100644 --- a/apps/next/src/env.ts +++ b/apps/next/src/env.ts @@ -38,7 +38,8 @@ export const env = createEnv({ NEXT_PUBLIC_SENTRY_DSN: process.env.NEXT_PUBLIC_SENTRY_DSN, NEXT_PUBLIC_SENTRY_URL: process.env.NEXT_PUBLIC_SENTRY_URL, NEXT_PUBLIC_SENTRY_ORG: process.env.NEXT_PUBLIC_SENTRY_ORG, - NEXT_PUBLIC_SENTRY_PROJECT_NAME: process.env.NEXT_PUBLIC_SENTRY_PROJECT_NAME, + NEXT_PUBLIC_SENTRY_PROJECT_NAME: + process.env.NEXT_PUBLIC_SENTRY_PROJECT_NAME, }, skipValidation: !!process.env.SKIP_ENV_VALIDATION, emptyStringAsUndefined: true, diff --git a/apps/next/src/instrumentation-client.ts b/apps/next/src/instrumentation-client.ts index c309a4f..2469515 100644 --- a/apps/next/src/instrumentation-client.ts +++ b/apps/next/src/instrumentation-client.ts @@ -1,6 +1,6 @@ // https://docs.sentry.io/platforms/javascript/guides/nextjs/ -import * as Sentry from '@sentry/nextjs'; import { env } from '@/env'; +import * as Sentry from '@sentry/nextjs'; Sentry.init({ dsn: env.NEXT_PUBLIC_SENTRY_DSN, diff --git a/apps/next/src/sentry.server.config.ts b/apps/next/src/sentry.server.config.ts index 19095bf..cb40217 100644 --- a/apps/next/src/sentry.server.config.ts +++ b/apps/next/src/sentry.server.config.ts @@ -1,5 +1,5 @@ -import * as Sentry from '@sentry/nextjs'; import { env } from '@/env'; +import * as Sentry from '@sentry/nextjs'; Sentry.init({ dsn: env.NEXT_PUBLIC_SENTRY_DSN, diff --git a/bun.lock b/bun.lock index ca13787..7e055eb 100644 --- a/bun.lock +++ b/bun.lock @@ -181,6 +181,7 @@ "@next/eslint-plugin-next": "^16.0.0", "eslint-plugin-import": "^2.32.0", "eslint-plugin-jsx-a11y": "^6.10.2", + "eslint-plugin-prefer-arrow-functions": "^3.9.1", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-turbo": "^2.5.8", @@ -1951,6 +1952,8 @@ "eslint-plugin-jsx-a11y": ["eslint-plugin-jsx-a11y@6.10.2", "", { "dependencies": { "aria-query": "^5.3.2", "array-includes": "^3.1.8", "array.prototype.flatmap": "^1.3.2", "ast-types-flow": "^0.0.8", "axe-core": "^4.10.0", "axobject-query": "^4.1.0", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", "hasown": "^2.0.2", "jsx-ast-utils": "^3.3.5", "language-tags": "^1.0.9", "minimatch": "^3.1.2", "object.fromentries": "^2.0.8", "safe-regex-test": "^1.0.3", "string.prototype.includes": "^2.0.1" }, "peerDependencies": { "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q=="], + "eslint-plugin-prefer-arrow-functions": ["eslint-plugin-prefer-arrow-functions@3.9.1", "", { "dependencies": { "@typescript-eslint/types": "^8.19.1", "@typescript-eslint/utils": "^8.19.1" }, "peerDependencies": { "eslint": ">=9.17.0" } }, "sha512-Mr9Ia8i5ohfCMcZBRedXXWdDJIo30gdKdPfRQ5DtO62yzogB5ErVGwQWPz+ycRlQPKpCAlBHpJdp1TCeCtt+YA=="], + "eslint-plugin-react": ["eslint-plugin-react@7.37.5", "", { "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", "array.prototype.flatmap": "^1.3.3", "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", "es-iterator-helpers": "^1.2.1", "estraverse": "^5.3.0", "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.9", "object.fromentries": "^2.0.8", "object.values": "^1.2.1", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", "string.prototype.matchall": "^4.0.12", "string.prototype.repeat": "^1.0.0" }, "peerDependencies": { "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA=="], "eslint-plugin-react-hooks": ["eslint-plugin-react-hooks@7.0.1", "", { "dependencies": { "@babel/core": "^7.24.4", "@babel/parser": "^7.24.4", "hermes-parser": "^0.25.1", "zod": "^3.25.0 || ^4.0.0", "zod-validation-error": "^3.5.0 || ^4.0.0" }, "peerDependencies": { "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA=="], diff --git a/docker/Dockerfile b/docker/Dockerfile index 82d2d3e..c90dfb7 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -18,7 +18,7 @@ ENV NODE_ENV=production RUN bun run build --filter=@gib/next # Runner stage -FROM node:20-alpine AS runner +FROM node:22-alpine AS runner WORKDIR /app ENV NODE_ENV=production diff --git a/packages/backend/.cache/.prettiercache b/packages/backend/.cache/.prettiercache index 26221c0..48835b1 100644 --- a/packages/backend/.cache/.prettiercache +++ b/packages/backend/.cache/.prettiercache @@ -1 +1 @@ -[["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22"],{"key":"23","value":"24"},{"key":"25","value":"26"},{"key":"27","value":"28"},{"key":"29","value":"30"},{"key":"31","value":"32"},{"key":"33","value":"34"},{"key":"35","value":"36"},{"key":"37","value":"38"},{"key":"39","value":"40"},{"key":"41","value":"42"},{"key":"43","value":"44"},{"key":"45","value":"46"},{"key":"47","value":"48"},{"key":"49","value":"50"},{"key":"51","value":"52"},{"key":"53","value":"54"},{"key":"55","value":"56"},{"key":"57","value":"58"},{"key":"59","value":"60"},{"key":"61","value":"62"},{"key":"63","value":"64"},{"key":"65","value":"66"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/crons.ts",{"size":528,"mtime":1768239263662,"hash":"67","data":"68"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/auth.ts",{"size":4050,"mtime":1768338105000,"hash":"69","data":"70"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/custom/auth/providers/password.ts",{"size":900,"mtime":1768239263701,"hash":"71","data":"72"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/_generated/dataModel.d.ts",{"size":1726,"mtime":1768372015506,"hash":"73","data":"74"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/.gitignore",{"size":16,"mtime":1766222924000,"hash":"75"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/auth.config.ts",{"size":127,"mtime":1768156477000,"hash":"76","data":"77"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/utils.ts",{"size":635,"mtime":1768155639000,"hash":"78","data":"79"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/custom/auth/providers/usesend.ts",{"size":3115,"mtime":1768164053000,"hash":"80","data":"81"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/tsconfig.json",{"size":732,"mtime":1766222924000,"hash":"82","data":"83"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/package.json",{"size":1300,"mtime":1768239263823,"hash":"84","data":"85"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/_generated/server.js",{"size":3474,"mtime":1768372015599,"hash":"86","data":"87"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/_generated/server.d.ts",{"size":5695,"mtime":1768372015561,"hash":"88","data":"89"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/types/auth.ts",{"size":174,"mtime":1768188156942,"hash":"90","data":"91"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/files.ts",{"size":582,"mtime":1768239263763,"hash":"92","data":"93"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/scripts/generateKeys.mjs",{"size":520,"mtime":1768368324432,"hash":"94","data":"95"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/_generated/api.d.ts",{"size":1521,"mtime":1768372015429,"hash":"96","data":"97"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/types/index.ts",{"size":69,"mtime":1768239263861,"hash":"98","data":"99"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/_generated/api.js",{"size":480,"mtime":1768372015467,"hash":"100","data":"101"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/README.md",{"size":2525,"mtime":1768155639000,"hash":"102","data":"103"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/http.ts",{"size":153,"mtime":1768157491000,"hash":"104","data":"105"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/custom/auth/index.ts",{"size":142,"mtime":1768157708000,"hash":"106","data":"107"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/schema.ts",{"size":1197,"mtime":1768239263796,"hash":"108","data":"109"},"0d76c3867783aec5435b0c716f1bfc65",{"hashOfOptions":"110"},"3d304208139ef0b2775272a5a4a2a970",{"hashOfOptions":"111"},"55bcf7d546da727edf2c1b7e52db6c7f",{"hashOfOptions":"112"},"ce3275ccdd28673d7e9280b33792057c",{"hashOfOptions":"113"},"175b1a771387d8b7e26145c3d04e0475","2d4f4ccfc784af9d668d8c64726c2f6b",{"hashOfOptions":"114"},"6a3198db454396c63e99ee08065726bd",{"hashOfOptions":"115"},"14f5e2d18e21f65282ac744b382f2d5f",{"hashOfOptions":"116"},"cfa98923457caed911ec68b626ef4234",{"hashOfOptions":"117"},"5d96f2526115241c4a37250b0f45ac4d",{"hashOfOptions":"118"},"f42d53bd1ba24bfee1407d2098f3b9ff",{"hashOfOptions":"119"},"6719b019702fc173de16b1bdc8e8ed47",{"hashOfOptions":"120"},"f0f9ef72dc6fef350f3521d3fd8adfc7",{"hashOfOptions":"121"},"5ff3856f1a61b946df899f7c9880b72a",{"hashOfOptions":"122"},"ccf5b9105ad4ff66fce0a7133fa3db4b",{"hashOfOptions":"123"},"7c522302bfb45e9cf5f1c271b48fa247",{"hashOfOptions":"124"},"57577de5aadfa618e91739aea3630342",{"hashOfOptions":"125"},"9d0d3b8d30fb1a1207df0584bf0f4c2e",{"hashOfOptions":"126"},"f5aa8269478f140adb4ccf0470dd1244",{"hashOfOptions":"127"},"4bbb95a66a1e615c30ea7c5098a4a609",{"hashOfOptions":"128"},"8776a23ed6f2ab3681e4ba5b4bcf3d74",{"hashOfOptions":"129"},"7e6dcc47831030bfaa3e235d2226cec6",{"hashOfOptions":"130"},"1020160825","972565336","1364770799","2690082698","1113171190","201642029","3656613861","1950122280","3924270347","1465331622","3460399206","1784561496","4145051687","958814035","3556143055","808606508","1682539407","2997860458","913323416","1779268725","3323078655"] \ No newline at end of file +[["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23"],{"key":"24","value":"25"},{"key":"26","value":"27"},{"key":"28","value":"29"},{"key":"30","value":"31"},{"key":"32","value":"33"},{"key":"34","value":"35"},{"key":"36","value":"37"},{"key":"38","value":"39"},{"key":"40","value":"41"},{"key":"42","value":"43"},{"key":"44","value":"45"},{"key":"46","value":"47"},{"key":"48","value":"49"},{"key":"50","value":"51"},{"key":"52","value":"53"},{"key":"54","value":"55"},{"key":"56","value":"57"},{"key":"58","value":"59"},{"key":"60","value":"61"},{"key":"62","value":"63"},{"key":"64","value":"65"},{"key":"66","value":"67"},{"key":"68","value":"69"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/.gitignore",{"size":16,"mtime":1766222924000,"hash":"70"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/custom/auth/providers/usesend.ts",{"size":3245,"mtime":1774543332725,"hash":"71","data":"72"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/scripts/generateKeys.mjs",{"size":520,"mtime":1768368324432,"hash":"73","data":"74"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/tsconfig.json",{"size":732,"mtime":1766222924000,"hash":"75","data":"76"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/http.ts",{"size":153,"mtime":1768157491000,"hash":"77","data":"78"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/utils.ts",{"size":635,"mtime":1768155639000,"hash":"79","data":"80"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/schema.ts",{"size":1161,"mtime":1774544485430,"hash":"81","data":"82"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/auth.ts",{"size":3770,"mtime":1774537696767,"hash":"83","data":"84"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/files.ts",{"size":582,"mtime":1768239263763,"hash":"85","data":"86"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/custom/auth/index.ts",{"size":142,"mtime":1768157708000,"hash":"87","data":"88"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/types/auth.ts",{"size":174,"mtime":1768188156942,"hash":"89","data":"90"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/crons.ts",{"size":528,"mtime":1768239263662,"hash":"91","data":"92"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/auth.config.ts",{"size":127,"mtime":1768156477000,"hash":"93","data":"94"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/_generated/server.d.ts",{"size":5600,"mtime":1774544485136,"hash":"95","data":"96"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/README.md",{"size":2525,"mtime":1768155639000,"hash":"97","data":"98"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/_generated/api.d.ts",{"size":1632,"mtime":1774544486629,"hash":"99","data":"100"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/_generated/dataModel.d.ts",{"size":1737,"mtime":1774544663844,"hash":"101","data":"102"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/_generated/server.js",{"size":3696,"mtime":1774544485100,"hash":"103","data":"104"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/types/index.ts",{"size":69,"mtime":1768239263861,"hash":"105","data":"106"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/custom/auth/providers/password.ts",{"size":900,"mtime":1768239263701,"hash":"107","data":"108"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/.cache/.prettiercache",{"size":5478,"mtime":1774544485685},"/home/gib/Documents/Code/convex-monorepo/packages/backend/package.json",{"size":1300,"mtime":1768239263823,"hash":"109","data":"110"},"/home/gib/Documents/Code/convex-monorepo/packages/backend/convex/_generated/api.js",{"size":480,"mtime":1774544485141,"hash":"111","data":"112"},"175b1a771387d8b7e26145c3d04e0475","14f5e2d18e21f65282ac744b382f2d5f",{"hashOfOptions":"113"},"ccf5b9105ad4ff66fce0a7133fa3db4b",{"hashOfOptions":"114"},"cfa98923457caed911ec68b626ef4234",{"hashOfOptions":"115"},"4bbb95a66a1e615c30ea7c5098a4a609",{"hashOfOptions":"116"},"6a3198db454396c63e99ee08065726bd",{"hashOfOptions":"117"},"7e6dcc47831030bfaa3e235d2226cec6",{"hashOfOptions":"118"},"3d304208139ef0b2775272a5a4a2a970",{"hashOfOptions":"119"},"5ff3856f1a61b946df899f7c9880b72a",{"hashOfOptions":"120"},"8776a23ed6f2ab3681e4ba5b4bcf3d74",{"hashOfOptions":"121"},"f0f9ef72dc6fef350f3521d3fd8adfc7",{"hashOfOptions":"122"},"0d76c3867783aec5435b0c716f1bfc65",{"hashOfOptions":"123"},"2d4f4ccfc784af9d668d8c64726c2f6b",{"hashOfOptions":"124"},"6719b019702fc173de16b1bdc8e8ed47",{"hashOfOptions":"125"},"f5aa8269478f140adb4ccf0470dd1244",{"hashOfOptions":"126"},"7c522302bfb45e9cf5f1c271b48fa247",{"hashOfOptions":"127"},"ce3275ccdd28673d7e9280b33792057c",{"hashOfOptions":"128"},"f42d53bd1ba24bfee1407d2098f3b9ff",{"hashOfOptions":"129"},"57577de5aadfa618e91739aea3630342",{"hashOfOptions":"130"},"55bcf7d546da727edf2c1b7e52db6c7f",{"hashOfOptions":"131"},"5d96f2526115241c4a37250b0f45ac4d",{"hashOfOptions":"132"},"9d0d3b8d30fb1a1207df0584bf0f4c2e",{"hashOfOptions":"133"},"559378404","1572137748","2802546153","2396101593","842922540","1478655424","2455343513","491364902","2374011252","309999831","1661441336","3087589493","3464494565","1153437227","1400189712","392706379","2060074149","2291384685","3538931632","3443151820","2295863120"] \ No newline at end of file diff --git a/packages/backend/convex/custom/auth/providers/usesend.ts b/packages/backend/convex/custom/auth/providers/usesend.ts index 3f95364..cdef531 100644 --- a/packages/backend/convex/custom/auth/providers/usesend.ts +++ b/packages/backend/convex/custom/auth/providers/usesend.ts @@ -8,7 +8,7 @@ export default function UseSendProvider(config: EmailUserConfig): EmailConfig { id: 'usesend', type: 'email', name: 'UseSend', - from: 'Convex Monorepo <admin@convexmonorepo.gbrown.org>', + from: process.env.USESEND_FROM_EMAIL ?? 'noreply@example.com', maxAge: 24 * 60 * 60, // 24 hours async generateVerificationToken() { @@ -21,13 +21,14 @@ export default function UseSendProvider(config: EmailUserConfig): EmailConfig { }, async sendVerificationRequest(params) { - const { identifier: to, provider, url, theme, token } = params; - //const { host } = new URL(url); - const host = 'Convex Monorepo'; + const { identifier: to, provider, url, token } = params; + // Derive a display name from the site URL, fallback to 'App' + const siteUrl = process.env.USESEND_FROM_EMAIL ?? ''; + const appName = siteUrl.split('@')[1]?.split('.')[0] ?? 'App'; const useSend = new UseSend( process.env.USESEND_API_KEY!, - 'https://usesend.gbrown.org', + process.env.USESEND_URL!, ); // For password reset, we want to send the code, not the magic link @@ -38,8 +39,8 @@ export default function UseSendProvider(config: EmailUserConfig): EmailConfig { from: provider.from!, to: [to], subject: isPasswordReset - ? `Reset your password - ${host}` - : `Sign in to ${host}`, + ? `Reset your password - ${appName}` + : `Sign in to ${appName}`, text: isPasswordReset ? `Your password reset code is ${token}` : `Your sign in code is ${token}`, diff --git a/packages/backend/convex/schema.ts b/packages/backend/convex/schema.ts index e209836..155a6d1 100644 --- a/packages/backend/convex/schema.ts +++ b/packages/backend/convex/schema.ts @@ -18,11 +18,9 @@ const applicationTables = { phoneVerificationTime: v.optional(v.number()), isAnonymous: v.optional(v.boolean()), /* Fields below here are custom & not defined in authTables */ - themePreference: v.optional(v.union( - v.literal('light'), - v.literal('dark'), - v.literal('system'), - )), + themePreference: v.optional( + v.union(v.literal('light'), v.literal('dark'), v.literal('system')), + ), }) .index('email', ['email']) .index('phone', ['phone']) diff --git a/packages/ui/.cache/.eslintcache b/packages/ui/.cache/.eslintcache new file mode 100644 index 0000000..073c60c --- /dev/null +++ b/packages/ui/.cache/.eslintcache @@ -0,0 +1 @@ +[{"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/accordion.tsx":"1","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/alert-dialog.tsx":"2","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/alert.tsx":"3","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/aspect-ratio.tsx":"4","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/avatar.tsx":"5","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/badge.tsx":"6","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/based-avatar.tsx":"7","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/based-progress.tsx":"8","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/breadcrumb.tsx":"9","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/button-group.tsx":"10","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/button.tsx":"11","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/calendar.tsx":"12","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/card.tsx":"13","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/carousel.tsx":"14","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/chart.tsx":"15","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/checkbox.tsx":"16","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/collapsible.tsx":"17","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/combobox.tsx":"18","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/command.tsx":"19","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/context-menu.tsx":"20","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/dialog.tsx":"21","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/drawer.tsx":"22","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/dropdown-menu.tsx":"23","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/empty.tsx":"24","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/field.tsx":"25","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/form.tsx":"26","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/hooks/index.tsx":"27","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/hooks/use-mobile.ts":"28","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/hooks/use-on-click-outside.tsx":"29","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/hover-card.tsx":"30","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/image-crop.tsx":"31","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/index.tsx":"32","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/input-group.tsx":"33","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/input-otp.tsx":"34","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/input.tsx":"35","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/item.tsx":"36","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/kbd.tsx":"37","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/label.tsx":"38","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/menubar.tsx":"39","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/native-select.tsx":"40","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/navigation-menu.tsx":"41","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/pagination.tsx":"42","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/popover.tsx":"43","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/progress.tsx":"44","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/radio-group.tsx":"45","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/resizable.tsx":"46","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/scroll-area.tsx":"47","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/select.tsx":"48","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/separator.tsx":"49","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/sheet.tsx":"50","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/sidebar.tsx":"51","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/skeleton.tsx":"52","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/slider.tsx":"53","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/sonner.tsx":"54","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/spinner.tsx":"55","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/status-message.tsx":"56","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/submit-button.tsx":"57","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/switch.tsx":"58","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/table.tsx":"59","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/tabs.tsx":"60","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/textarea.tsx":"61","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/theme.tsx":"62","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/toggle-group.tsx":"63","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/toggle.tsx":"64","/home/gib/Documents/Code/convex-monorepo/packages/ui/src/tooltip.tsx":"65"},{"size":2618,"mtime":1774544484670,"results":"66","hashOfConfig":"67"},{"size":5302,"mtime":1774544484831,"results":"68","hashOfConfig":"67"},{"size":2002,"mtime":1774544485001,"results":"69","hashOfConfig":"67"},{"size":273,"mtime":1774544485059,"results":"70","hashOfConfig":"67"},{"size":2764,"mtime":1774544485222,"results":"71","hashOfConfig":"67"},{"size":1833,"mtime":1774544470961,"results":"72","hashOfConfig":"67"},{"size":1738,"mtime":1773778628580,"results":"73","hashOfConfig":"67"},{"size":1372,"mtime":1773778628580,"results":"74","hashOfConfig":"67"},{"size":2238,"mtime":1774544485702,"results":"75","hashOfConfig":"67"},{"size":2297,"mtime":1774544485788,"results":"76","hashOfConfig":"67"},{"size":3380,"mtime":1774544470961,"results":"77","hashOfConfig":"67"},{"size":8444,"mtime":1774544470961,"results":"78","hashOfConfig":"67"},{"size":2462,"mtime":1774544486082,"results":"79","hashOfConfig":"67"},{"size":5758,"mtime":1774544486321,"results":"80","hashOfConfig":"67"},{"size":10055,"mtime":1774544486484,"results":"81","hashOfConfig":"67"},{"size":1359,"mtime":1774544486513,"results":"82","hashOfConfig":"67"},{"size":757,"mtime":1774544486533,"results":"83","hashOfConfig":"67"},{"size":8572,"mtime":1774544486634,"results":"84","hashOfConfig":"67"},{"size":4628,"mtime":1774544486715,"results":"85","hashOfConfig":"67"},{"size":8006,"mtime":1774544486782,"results":"86","hashOfConfig":"67"},{"size":3925,"mtime":1774544486830,"results":"87","hashOfConfig":"67"},{"size":4165,"mtime":1774544486870,"results":"88","hashOfConfig":"67"},{"size":8511,"mtime":1774544486927,"results":"89","hashOfConfig":"67"},{"size":2265,"mtime":1774544486964,"results":"90","hashOfConfig":"67"},{"size":5789,"mtime":1774544487028,"results":"91","hashOfConfig":"67"},{"size":3810,"mtime":1774544487072,"results":"92","hashOfConfig":"67"},{"size":104,"mtime":1774538639553,"results":"93","hashOfConfig":"67"},{"size":589,"mtime":1774544470961,"results":"94","hashOfConfig":"67"},{"size":1530,"mtime":1774544487137,"results":"95","hashOfConfig":"67"},{"size":1476,"mtime":1774544487157,"results":"96","hashOfConfig":"67"},{"size":10320,"mtime":1774544470962,"results":"97","hashOfConfig":"67"},{"size":7589,"mtime":1774538739012,"results":"98","hashOfConfig":"67"},{"size":4980,"mtime":1774544487352,"results":"99","hashOfConfig":"67"},{"size":2474,"mtime":1774544487380,"results":"100","hashOfConfig":"67"},{"size":950,"mtime":1774544487397,"results":"101","hashOfConfig":"67"},{"size":4575,"mtime":1774544487439,"results":"102","hashOfConfig":"67"},{"size":788,"mtime":1774544487458,"results":"103","hashOfConfig":"67"},{"size":585,"mtime":1774544487498,"results":"104","hashOfConfig":"67"},{"size":8040,"mtime":1774544487542,"results":"105","hashOfConfig":"67"},{"size":1788,"mtime":1774544487573,"results":"106","hashOfConfig":"67"},{"size":6420,"mtime":1774544487625,"results":"107","hashOfConfig":"67"},{"size":2667,"mtime":1774544487661,"results":"108","hashOfConfig":"67"},{"size":2261,"mtime":1774544487690,"results":"109","hashOfConfig":"67"},{"size":714,"mtime":1774544487711,"results":"110","hashOfConfig":"67"},{"size":1406,"mtime":1774544487730,"results":"111","hashOfConfig":"67"},{"size":1750,"mtime":1774544487757,"results":"112","hashOfConfig":"67"},{"size":1619,"mtime":1774544487784,"results":"113","hashOfConfig":"67"},{"size":6105,"mtime":1774544487823,"results":"114","hashOfConfig":"67"},{"size":675,"mtime":1774544487842,"results":"115","hashOfConfig":"67"},{"size":4013,"mtime":1774544487881,"results":"116","hashOfConfig":"67"},{"size":21264,"mtime":1774544488032,"results":"117","hashOfConfig":"67"},{"size":253,"mtime":1774544488045,"results":"118","hashOfConfig":"67"},{"size":2002,"mtime":1774544470962,"results":"119","hashOfConfig":"67"},{"size":1160,"mtime":1773938365512,"results":"120","hashOfConfig":"67"},{"size":307,"mtime":1774544488097,"results":"121","hashOfConfig":"67"},{"size":1619,"mtime":1773778628581,"results":"122","hashOfConfig":"67"},{"size":1192,"mtime":1773778628581,"results":"123","hashOfConfig":"67"},{"size":1712,"mtime":1774544488148,"results":"124","hashOfConfig":"67"},{"size":2176,"mtime":1774544488171,"results":"125","hashOfConfig":"67"},{"size":3435,"mtime":1774544488194,"results":"126","hashOfConfig":"67"},{"size":736,"mtime":1774544488211,"results":"127","hashOfConfig":"67"},{"size":1338,"mtime":1774544488228,"results":"128","hashOfConfig":"67"},{"size":2238,"mtime":1774544488249,"results":"129","hashOfConfig":"67"},{"size":1596,"mtime":1774544488268,"results":"130","hashOfConfig":"67"},{"size":1771,"mtime":1774544488284,"results":"131","hashOfConfig":"67"},{"filePath":"132","messages":"133","suppressedMessages":"134","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"ls4k5m",{"filePath":"135","messages":"136","suppressedMessages":"137","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"138","messages":"139","suppressedMessages":"140","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"141","messages":"142","suppressedMessages":"143","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"144","messages":"145","suppressedMessages":"146","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"147","messages":"148","suppressedMessages":"149","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"150","messages":"151","suppressedMessages":"152","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"153","messages":"154","suppressedMessages":"155","errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"156","messages":"157","suppressedMessages":"158","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"159","messages":"160","suppressedMessages":"161","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"162","messages":"163","suppressedMessages":"164","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"165","messages":"166","suppressedMessages":"167","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"168","messages":"169","suppressedMessages":"170","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"171","messages":"172","suppressedMessages":"173","errorCount":2,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"174","messages":"175","suppressedMessages":"176","errorCount":59,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"177","messages":"178","suppressedMessages":"179","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"180","messages":"181","suppressedMessages":"182","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"183","messages":"184","suppressedMessages":"185","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"186","messages":"187","suppressedMessages":"188","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"189","messages":"190","suppressedMessages":"191","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"192","messages":"193","suppressedMessages":"194","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"195","messages":"196","suppressedMessages":"197","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"198","messages":"199","suppressedMessages":"200","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"201","messages":"202","suppressedMessages":"203","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"204","messages":"205","suppressedMessages":"206","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"207","messages":"208","suppressedMessages":"209","errorCount":2,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"210","messages":"211","suppressedMessages":"212","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"213","messages":"214","suppressedMessages":"215","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"216","messages":"217","suppressedMessages":"218","errorCount":2,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"219","messages":"220","suppressedMessages":"221","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"222","messages":"223","suppressedMessages":"224","errorCount":8,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"225","messages":"226","suppressedMessages":"227","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"228","messages":"229","suppressedMessages":"230","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"231","messages":"232","suppressedMessages":"233","errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"234","messages":"235","suppressedMessages":"236","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"237","messages":"238","suppressedMessages":"239","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"240","messages":"241","suppressedMessages":"242","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"243","messages":"244","suppressedMessages":"245","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"246","messages":"247","suppressedMessages":"248","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"249","messages":"250","suppressedMessages":"251","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"252","messages":"253","suppressedMessages":"254","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"255","messages":"256","suppressedMessages":"257","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"258","messages":"259","suppressedMessages":"260","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"261","messages":"262","suppressedMessages":"263","errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"264","messages":"265","suppressedMessages":"266","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"267","messages":"268","suppressedMessages":"269","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"270","messages":"271","suppressedMessages":"272","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"273","messages":"274","suppressedMessages":"275","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"276","messages":"277","suppressedMessages":"278","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"279","messages":"280","suppressedMessages":"281","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"282","messages":"283","suppressedMessages":"284","errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"285","messages":"286","suppressedMessages":"287","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"288","messages":"289","suppressedMessages":"290","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"291","messages":"292","suppressedMessages":"293","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"294","messages":"295","suppressedMessages":"296","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"297","messages":"298","suppressedMessages":"299","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"300","messages":"301","suppressedMessages":"302","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"303","messages":"304","suppressedMessages":"305","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"306","messages":"307","suppressedMessages":"308","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"309","messages":"310","suppressedMessages":"311","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"312","messages":"313","suppressedMessages":"314","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"315","messages":"316","suppressedMessages":"317","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"318","messages":"319","suppressedMessages":"320","errorCount":4,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"321","messages":"322","suppressedMessages":"323","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"324","messages":"325","suppressedMessages":"326","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/accordion.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/alert-dialog.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/alert.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/aspect-ratio.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/avatar.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/badge.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/based-avatar.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/based-progress.tsx",["327"],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/breadcrumb.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/button-group.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/button.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/calendar.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/card.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/carousel.tsx",["328","329"],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/chart.tsx",["330","331","332","333","334","335","336","337","338","339","340","341","342","343","344","345","346","347","348","349","350","351","352","353","354","355","356","357","358","359","360","361","362","363","364","365","366","367","368","369","370","371","372","373","374","375","376","377","378","379","380","381","382","383","384","385","386","387","388"],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/checkbox.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/collapsible.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/combobox.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/command.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/context-menu.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/dialog.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/drawer.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/dropdown-menu.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/empty.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/field.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/form.tsx",["389","390"],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/hooks/index.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/hooks/use-mobile.ts",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/hooks/use-on-click-outside.tsx",["391","392","393","394"],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/hover-card.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/image-crop.tsx",["395","396","397","398","399","400","401","402"],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/index.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/input-group.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/input-otp.tsx",["403"],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/input.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/item.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/kbd.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/label.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/menubar.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/native-select.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/navigation-menu.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/pagination.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/popover.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/progress.tsx",["404"],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/radio-group.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/resizable.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/scroll-area.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/select.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/separator.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/sheet.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/sidebar.tsx",["405"],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/skeleton.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/slider.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/sonner.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/spinner.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/status-message.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/submit-button.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/switch.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/table.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/tabs.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/textarea.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/theme.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/toggle-group.tsx",["406","407","408","409"],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/toggle.tsx",[],[],"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/tooltip.tsx",[],[],{"ruleId":"410","severity":2,"message":"411","line":48,"column":51,"nodeType":"412","messageId":"413","endLine":48,"endColumn":59},{"ruleId":"410","severity":2,"message":"414","line":101,"column":10,"nodeType":"415","messageId":"416","endLine":101,"endColumn":12,"suggestions":"417"},{"ruleId":"410","severity":2,"message":"418","line":112,"column":11,"nodeType":"412","messageId":"419","endLine":112,"endColumn":22},{"ruleId":"420","severity":2,"message":"421","line":51,"column":31,"nodeType":"422","messageId":"423","endLine":51,"endColumn":33,"suggestions":"424"},{"ruleId":"420","severity":2,"message":"421","line":75,"column":34,"nodeType":"422","messageId":"423","endLine":75,"endColumn":36,"suggestions":"425"},{"ruleId":"420","severity":2,"message":"421","line":92,"column":66,"nodeType":"422","messageId":"423","endLine":92,"endColumn":68,"suggestions":"426"},{"ruleId":"427","severity":2,"message":"428","line":133,"column":32,"nodeType":"412","messageId":"429","endLine":133,"endColumn":38},{"ruleId":"430","severity":2,"message":"431","line":137,"column":11,"nodeType":"432","messageId":"433","endLine":137,"endColumn":27},{"ruleId":"420","severity":2,"message":"421","line":138,"column":29,"nodeType":"422","messageId":"423","endLine":138,"endColumn":31,"suggestions":"434"},{"ruleId":"427","severity":2,"message":"435","line":138,"column":38,"nodeType":"412","messageId":"429","endLine":138,"endColumn":45},{"ruleId":"420","severity":2,"message":"421","line":138,"column":46,"nodeType":"422","messageId":"423","endLine":138,"endColumn":48,"suggestions":"436"},{"ruleId":"427","severity":2,"message":"437","line":138,"column":55,"nodeType":"412","messageId":"429","endLine":138,"endColumn":59},{"ruleId":"420","severity":2,"message":"421","line":138,"column":60,"nodeType":"422","messageId":"423","endLine":138,"endColumn":62,"suggestions":"438"},{"ruleId":"420","severity":2,"message":"421","line":142,"column":32,"nodeType":"422","messageId":"423","endLine":142,"endColumn":34,"suggestions":"439"},{"ruleId":"440","severity":2,"message":"441","line":148,"column":34,"nodeType":"412","messageId":"442","endLine":148,"endColumn":41},{"ruleId":"427","severity":2,"message":"428","line":168,"column":28,"nodeType":"412","messageId":"429","endLine":168,"endColumn":34},{"ruleId":"427","severity":2,"message":"428","line":172,"column":29,"nodeType":"412","messageId":"429","endLine":172,"endColumn":35},{"ruleId":"443","severity":2,"message":"444","line":183,"column":10,"nodeType":"415","messageId":"445","endLine":185,"endColumn":15},{"ruleId":"443","severity":2,"message":"444","line":183,"column":10,"nodeType":"415","messageId":"445","endLine":184,"endColumn":18},{"ruleId":"427","severity":2,"message":"446","line":184,"column":12,"nodeType":"412","messageId":"429","endLine":184,"endColumn":18},{"ruleId":"427","severity":2,"message":"447","line":184,"column":34,"nodeType":"412","messageId":"429","endLine":184,"endColumn":38},{"ruleId":"427","severity":2,"message":"448","line":185,"column":12,"nodeType":"412","messageId":"429","endLine":185,"endColumn":15},{"ruleId":"420","severity":2,"message":"421","line":186,"column":36,"nodeType":"422","messageId":"423","endLine":186,"endColumn":38,"suggestions":"449"},{"ruleId":"427","severity":2,"message":"450","line":186,"column":44,"nodeType":"412","messageId":"429","endLine":186,"endColumn":48},{"ruleId":"420","severity":2,"message":"421","line":186,"column":49,"nodeType":"422","messageId":"423","endLine":186,"endColumn":51,"suggestions":"451"},{"ruleId":"427","severity":2,"message":"452","line":186,"column":57,"nodeType":"412","messageId":"429","endLine":186,"endColumn":64},{"ruleId":"420","severity":2,"message":"421","line":186,"column":65,"nodeType":"422","messageId":"423","endLine":186,"endColumn":67,"suggestions":"453"},{"ruleId":"430","severity":2,"message":"454","line":188,"column":19,"nodeType":"432","messageId":"433","endLine":188,"endColumn":76},{"ruleId":"420","severity":2,"message":"421","line":188,"column":42,"nodeType":"422","messageId":"423","endLine":188,"endColumn":44,"suggestions":"455"},{"ruleId":"427","severity":2,"message":"456","line":188,"column":50,"nodeType":"412","messageId":"429","endLine":188,"endColumn":57},{"ruleId":"420","severity":2,"message":"421","line":188,"column":63,"nodeType":"422","messageId":"423","endLine":188,"endColumn":65,"suggestions":"457"},{"ruleId":"427","severity":2,"message":"458","line":188,"column":71,"nodeType":"412","messageId":"429","endLine":188,"endColumn":76},{"ruleId":"430","severity":2,"message":"454","line":192,"column":22,"nodeType":"415","messageId":"433","endLine":192,"endColumn":34},{"ruleId":"427","severity":2,"message":"452","line":192,"column":27,"nodeType":"412","messageId":"429","endLine":192,"endColumn":34},{"ruleId":"427","severity":2,"message":"459","line":198,"column":37,"nodeType":"412","messageId":"429","endLine":198,"endColumn":42},{"ruleId":"427","severity":2,"message":"450","line":198,"column":65,"nodeType":"412","messageId":"429","endLine":198,"endColumn":69},{"ruleId":"440","severity":2,"message":"460","line":199,"column":29,"nodeType":"415","messageId":"442","endLine":199,"endColumn":39},{"ruleId":"427","severity":2,"message":"459","line":199,"column":34,"nodeType":"412","messageId":"429","endLine":199,"endColumn":39},{"ruleId":"440","severity":2,"message":"461","line":199,"column":41,"nodeType":"415","messageId":"442","endLine":199,"endColumn":50},{"ruleId":"427","severity":2,"message":"450","line":199,"column":46,"nodeType":"412","messageId":"429","endLine":199,"endColumn":50},{"ruleId":"440","severity":2,"message":"462","line":199,"column":52,"nodeType":"412","messageId":"442","endLine":199,"endColumn":56},{"ruleId":"440","severity":2,"message":"463","line":199,"column":58,"nodeType":"412","messageId":"442","endLine":199,"endColumn":63},{"ruleId":"440","severity":2,"message":"464","line":199,"column":65,"nodeType":"415","messageId":"442","endLine":199,"endColumn":77},{"ruleId":"427","severity":2,"message":"456","line":199,"column":70,"nodeType":"412","messageId":"429","endLine":199,"endColumn":77},{"ruleId":"430","severity":2,"message":"454","line":219,"column":31,"nodeType":"465","messageId":"433","endLine":219,"endColumn":59},{"ruleId":"430","severity":2,"message":"454","line":220,"column":31,"nodeType":"465","messageId":"433","endLine":220,"endColumn":63},{"ruleId":"420","severity":2,"message":"421","line":235,"column":46,"nodeType":"422","messageId":"423","endLine":235,"endColumn":48,"suggestions":"466"},{"ruleId":"427","severity":2,"message":"450","line":235,"column":54,"nodeType":"412","messageId":"429","endLine":235,"endColumn":58},{"ruleId":"427","severity":2,"message":"459","line":238,"column":29,"nodeType":"412","messageId":"429","endLine":238,"endColumn":34},{"ruleId":"443","severity":2,"message":"467","line":240,"column":28,"nodeType":"415","messageId":"445","endLine":240,"endColumn":53},{"ruleId":"427","severity":2,"message":"459","line":240,"column":33,"nodeType":"412","messageId":"429","endLine":240,"endColumn":38},{"ruleId":"443","severity":2,"message":"444","line":281,"column":8,"nodeType":"415","messageId":"445","endLine":283,"endColumn":13},{"ruleId":"443","severity":2,"message":"444","line":281,"column":8,"nodeType":"415","messageId":"445","endLine":282,"endColumn":16},{"ruleId":"427","severity":2,"message":"447","line":282,"column":32,"nodeType":"412","messageId":"429","endLine":282,"endColumn":36},{"ruleId":"427","severity":2,"message":"448","line":283,"column":10,"nodeType":"412","messageId":"429","endLine":283,"endColumn":13},{"ruleId":"420","severity":2,"message":"421","line":284,"column":34,"nodeType":"422","messageId":"423","endLine":284,"endColumn":36,"suggestions":"468"},{"ruleId":"427","severity":2,"message":"452","line":284,"column":42,"nodeType":"412","messageId":"429","endLine":284,"endColumn":49},{"ruleId":"420","severity":2,"message":"421","line":284,"column":50,"nodeType":"422","messageId":"423","endLine":284,"endColumn":52,"suggestions":"469"},{"ruleId":"430","severity":2,"message":"454","line":289,"column":20,"nodeType":"415","messageId":"433","endLine":289,"endColumn":30},{"ruleId":"427","severity":2,"message":"459","line":289,"column":25,"nodeType":"412","messageId":"429","endLine":289,"endColumn":30},{"ruleId":"430","severity":2,"message":"454","line":300,"column":21,"nodeType":"465","messageId":"433","endLine":300,"endColumn":48},{"ruleId":"427","severity":2,"message":"458","line":300,"column":43,"nodeType":"412","messageId":"429","endLine":300,"endColumn":48},{"ruleId":"410","severity":2,"message":"470","line":49,"column":7,"nodeType":"471","messageId":"472","endLine":49,"endColumn":20},{"ruleId":"410","severity":2,"message":"414","line":141,"column":36,"nodeType":"415","messageId":"416","endLine":141,"endColumn":38,"suggestions":"473"},{"ruleId":"474","severity":1,"message":"475","line":2,"column":10,"nodeType":null,"messageId":"476","endLine":2,"endColumn":27},{"ruleId":"474","severity":1,"message":"477","line":2,"column":29,"nodeType":null,"messageId":"476","endLine":2,"endColumn":30},{"ruleId":"443","severity":2,"message":"444","line":36,"column":41,"nodeType":"415","messageId":"445","endLine":36,"endColumn":59},{"ruleId":"443","severity":2,"message":"444","line":37,"column":27,"nodeType":"415","messageId":"445","endLine":37,"endColumn":47},{"ruleId":"478","severity":2,"message":"479","line":156,"column":17,"nodeType":"415","messageId":"480","endLine":156,"endColumn":30},{"ruleId":"420","severity":2,"message":"421","line":156,"column":43,"nodeType":"422","messageId":"423","endLine":156,"endColumn":45,"suggestions":"481"},{"ruleId":"482","severity":2,"message":"483","line":179,"column":5,"nodeType":"484","messageId":"485","endLine":179,"endColumn":7,"suggestions":"486"},{"ruleId":"487","severity":2,"message":"488","line":296,"column":54,"nodeType":"489","messageId":"490","endLine":296,"endColumn":57,"suggestions":"491"},{"ruleId":"487","severity":2,"message":"488","line":307,"column":21,"nodeType":"489","messageId":"490","endLine":307,"endColumn":24,"suggestions":"492"},{"ruleId":"487","severity":2,"message":"488","line":333,"column":54,"nodeType":"489","messageId":"490","endLine":333,"endColumn":57,"suggestions":"493"},{"ruleId":"487","severity":2,"message":"488","line":344,"column":21,"nodeType":"489","messageId":"490","endLine":344,"endColumn":24,"suggestions":"494"},{"ruleId":"487","severity":2,"message":"488","line":375,"column":19,"nodeType":"489","messageId":"490","endLine":375,"endColumn":22,"suggestions":"495"},{"ruleId":"410","severity":2,"message":"414","line":50,"column":59,"nodeType":"415","messageId":"416","endLine":50,"endColumn":61,"suggestions":"496"},{"ruleId":"420","severity":2,"message":"421","line":24,"column":55,"nodeType":"422","messageId":"423","endLine":24,"endColumn":57,"suggestions":"497"},{"ruleId":"498","severity":2,"message":"499","line":606,"column":26,"nodeType":null,"endLine":606,"endColumn":39},{"ruleId":"420","severity":2,"message":"421","line":61,"column":37,"nodeType":"422","messageId":"423","endLine":61,"endColumn":39,"suggestions":"500"},{"ruleId":"420","severity":2,"message":"421","line":62,"column":31,"nodeType":"422","messageId":"423","endLine":62,"endColumn":33,"suggestions":"501"},{"ruleId":"420","severity":2,"message":"421","line":66,"column":36,"nodeType":"422","messageId":"423","endLine":66,"endColumn":38,"suggestions":"502"},{"ruleId":"420","severity":2,"message":"421","line":67,"column":30,"nodeType":"422","messageId":"423","endLine":67,"endColumn":32,"suggestions":"503"},"@typescript-eslint/no-unnecessary-condition","Unnecessary conditional, expected left-hand side of `??` operator to be possibly null or undefined.","Identifier","neverNullish","Unnecessary optional chain on a non-nullish value.","MemberExpression","neverOptionalChain",["504"],"Unnecessary conditional, value is always truthy.","alwaysTruthy","@typescript-eslint/prefer-nullish-coalescing","Prefer using nullish coalescing operator (`??`) instead of a logical or (`||`), as it is a safer operator.","Punctuator","preferNullishOverOr",["505"],["506"],["507"],"@typescript-eslint/no-unsafe-member-access","Unsafe member access .length on an `error` typed value.","unsafeMemberExpression","@typescript-eslint/no-unsafe-assignment","Unsafe assignment of an error typed value.","VariableDeclarator","anyAssignment",["508"],"Unsafe member access .dataKey on an `error` typed value.",["509"],"Unsafe member access .name on an `error` typed value.",["510"],["511"],"@typescript-eslint/no-unsafe-argument","Unsafe argument of type error typed assigned to a parameter of type `readonly Payload<ValueType, NameType>[]`.","unsafeArgument","@typescript-eslint/no-unsafe-call","Unsafe call of a(n) `error` type typed value.","unsafeCall","Unsafe member access .filter on an `error` typed value.","Unsafe member access .type on an `any` value.","Unsafe member access .map on an `error` typed value.",["512"],"Unsafe member access .name on an `any` value.",["513"],"Unsafe member access .dataKey on an `any` value.",["514"],"Unsafe assignment of an `any` value.",["515"],"Unsafe member access .payload on an `any` value.",["516"],"Unsafe member access .color on an `any` value.","Unsafe member access .value on an `any` value.","Unsafe argument of type `any` assigned to a parameter of type `ValueType | undefined`.","Unsafe argument of type `any` assigned to a parameter of type `NameType | undefined`.","Unsafe argument of type `any` assigned to a parameter of type `Payload<ValueType, NameType>`.","Unsafe argument of type `any` assigned to a parameter of type `number`.","Unsafe argument of type `any` assigned to a parameter of type `readonly Payload<ValueType, NameType>[]`.","Property",["517"],"Unsafe call of a(n) `any` typed value.",["518"],["519"],"Unnecessary conditional, value is always falsy.","UnaryExpression","alwaysFalsy",["520"],"@typescript-eslint/no-unused-vars","'MousePointerClick' is defined but never used. Allowed unused vars must match /^_/u.","unusedVar","'X' is defined but never used. Allowed unused vars must match /^_/u.","@typescript-eslint/no-base-to-string","'reader.result' may use Object's default stringification format ('[object Object]') when stringified.","baseToString",["521"],"@typescript-eslint/require-await","Async arrow function 'handleComplete' has no 'await' expression.","ArrowFunctionExpression","missingAwait",["522"],"@typescript-eslint/no-explicit-any","Unexpected any. Specify a different type.","TSAnyKeyword","unexpectedAny",["523","524"],["525","526"],["527","528"],["529","530"],["531","532"],["533"],["534"],"react-hooks/purity","Error: Cannot call impure function during render\n\n`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent).\n\n/home/gib/Documents/Code/convex-monorepo/packages/ui/src/sidebar.tsx:606:26\n 604 | // Random width between 50 to 90%.\n 605 | const width = React.useMemo(() => {\n> 606 | return `${Math.floor(Math.random() * 40) + 50}%`;\n | ^^^^^^^^^^^^^ Cannot call impure function\n 607 | }, []);\n 608 |\n 609 | return (",["535"],["536"],["537"],["538"],{"messageId":"539","fix":"540","desc":"541"},{"messageId":"542","data":"543","fix":"544","desc":"545"},{"messageId":"542","data":"546","fix":"547","desc":"545"},{"messageId":"542","data":"548","fix":"549","desc":"545"},{"messageId":"542","data":"550","fix":"551","desc":"545"},{"messageId":"542","data":"552","fix":"553","desc":"545"},{"messageId":"542","data":"554","fix":"555","desc":"545"},{"messageId":"542","data":"556","fix":"557","desc":"545"},{"messageId":"542","data":"558","fix":"559","desc":"545"},{"messageId":"542","data":"560","fix":"561","desc":"545"},{"messageId":"542","data":"562","fix":"563","desc":"545"},{"messageId":"542","data":"564","fix":"565","desc":"545"},{"messageId":"542","data":"566","fix":"567","desc":"545"},{"messageId":"542","data":"568","fix":"569","desc":"545"},{"messageId":"542","data":"570","fix":"571","desc":"545"},{"messageId":"542","data":"572","fix":"573","desc":"545"},{"messageId":"539","fix":"574","desc":"541"},{"messageId":"542","data":"575","fix":"576","desc":"545"},{"messageId":"577","fix":"578","desc":"579"},{"messageId":"580","fix":"581","desc":"582"},{"messageId":"583","fix":"584","desc":"585"},{"messageId":"580","fix":"586","desc":"582"},{"messageId":"583","fix":"587","desc":"585"},{"messageId":"580","fix":"588","desc":"582"},{"messageId":"583","fix":"589","desc":"585"},{"messageId":"580","fix":"590","desc":"582"},{"messageId":"583","fix":"591","desc":"585"},{"messageId":"580","fix":"592","desc":"582"},{"messageId":"583","fix":"593","desc":"585"},{"messageId":"539","fix":"594","desc":"541"},{"messageId":"542","data":"595","fix":"596","desc":"545"},{"messageId":"542","data":"597","fix":"598","desc":"545"},{"messageId":"542","data":"599","fix":"600","desc":"545"},{"messageId":"542","data":"601","fix":"602","desc":"545"},{"messageId":"542","data":"603","fix":"604","desc":"545"},"suggestRemoveOptionalChain",{"range":"605","text":"606"},"Remove unnecessary optional chain","suggestNullish",{"equals":"607"},{"range":"608","text":"609"},"Fix to nullish coalescing operator (`??`).",{"equals":"607"},{"range":"610","text":"609"},{"equals":"607"},{"range":"611","text":"609"},{"equals":"607"},{"range":"612","text":"613"},{"equals":"607"},{"range":"614","text":"615"},{"equals":"607"},{"range":"616","text":"609"},{"equals":"607"},{"range":"617","text":"609"},{"equals":"607"},{"range":"618","text":"619"},{"equals":"607"},{"range":"620","text":"621"},{"equals":"607"},{"range":"622","text":"609"},{"equals":"607"},{"range":"623","text":"624"},{"equals":"607"},{"range":"625","text":"609"},{"equals":"607"},{"range":"626","text":"609"},{"equals":"607"},{"range":"627","text":"628"},{"equals":"607"},{"range":"629","text":"609"},{"range":"630","text":"606"},{"equals":"607"},{"range":"631","text":"609"},"removeAsync",{"range":"632","text":"607"},"Remove 'async'.","suggestUnknown",{"range":"633","text":"634"},"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct.","suggestNever",{"range":"635","text":"636"},"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of.",{"range":"637","text":"634"},{"range":"638","text":"636"},{"range":"639","text":"634"},{"range":"640","text":"636"},{"range":"641","text":"634"},{"range":"642","text":"636"},{"range":"643","text":"634"},{"range":"644","text":"636"},{"range":"645","text":"606"},{"equals":"607"},{"range":"646","text":"609"},{"equals":"607"},{"range":"647","text":"609"},{"equals":"607"},{"range":"648","text":"609"},{"equals":"607"},{"range":"649","text":"609"},{"equals":"607"},{"range":"650","text":"609"},[2578,2580],".","",[1088,1090],"??",[2394,2396],[2773,2775],[3652,3677],"(labelKey ?? item?.dataKey)",[3664,3691],"(item?.dataKey ?? item?.name)",[3692,3694],[3871,3873],[4857,4877],"(nameKey ?? item.name)",[4868,4893],"(item.name ?? item.dataKey)",[4894,4896],[5022,5048],"(color ?? item.payload.fill)",[5049,5051],[7130,7132],[8293,8316],"(nameKey ?? item.dataKey)",[8317,8319],[3426,3428],[3924,3926],[4466,4472],[6783,6786],"unknown",[6783,6786],"never",[6951,6954],[6951,6954],[7468,7471],[7468,7471],[7636,7639],[7636,7639],[8277,8280],[8277,8280],[1202,1204],[641,643],[1539,1541],[1581,1583],[1708,1710],[1749,1751]] \ No newline at end of file diff --git a/packages/ui/.cache/.prettiercache b/packages/ui/.cache/.prettiercache new file mode 100644 index 0000000..2337c94 --- /dev/null +++ b/packages/ui/.cache/.prettiercache @@ -0,0 +1 @@ +[["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71"],{"key":"72","value":"73"},{"key":"74","value":"75"},{"key":"76","value":"77"},{"key":"78","value":"79"},{"key":"80","value":"81"},{"key":"82","value":"83"},{"key":"84","value":"85"},{"key":"86","value":"87"},{"key":"88","value":"89"},{"key":"90","value":"91"},{"key":"92","value":"93"},{"key":"94","value":"95"},{"key":"96","value":"97"},{"key":"98","value":"99"},{"key":"100","value":"101"},{"key":"102","value":"103"},{"key":"104","value":"105"},{"key":"106","value":"107"},{"key":"108","value":"109"},{"key":"110","value":"111"},{"key":"112","value":"113"},{"key":"114","value":"115"},{"key":"116","value":"117"},{"key":"118","value":"119"},{"key":"120","value":"121"},{"key":"122","value":"123"},{"key":"124","value":"125"},{"key":"126","value":"127"},{"key":"128","value":"129"},{"key":"130","value":"131"},{"key":"132","value":"133"},{"key":"134","value":"135"},{"key":"136","value":"137"},{"key":"138","value":"139"},{"key":"140","value":"141"},{"key":"142","value":"143"},{"key":"144","value":"145"},{"key":"146","value":"147"},{"key":"148","value":"149"},{"key":"150","value":"151"},{"key":"152","value":"153"},{"key":"154","value":"155"},{"key":"156","value":"157"},{"key":"158","value":"159"},{"key":"160","value":"161"},{"key":"162","value":"163"},{"key":"164","value":"165"},{"key":"166","value":"167"},{"key":"168","value":"169"},{"key":"170","value":"171"},{"key":"172","value":"173"},{"key":"174","value":"175"},{"key":"176","value":"177"},{"key":"178","value":"179"},{"key":"180","value":"181"},{"key":"182","value":"183"},{"key":"184","value":"185"},{"key":"186","value":"187"},{"key":"188","value":"189"},{"key":"190","value":"191"},{"key":"192","value":"193"},{"key":"194","value":"195"},{"key":"196","value":"197"},{"key":"198","value":"199"},{"key":"200","value":"201"},{"key":"202","value":"203"},{"key":"204","value":"205"},{"key":"206","value":"207"},{"key":"208","value":"209"},{"key":"210","value":"211"},{"key":"212","value":"213"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/based-avatar.tsx",{"size":1738,"mtime":1773778628580,"data":"214"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/hooks/index.tsx",{"size":104,"mtime":1774538639553,"data":"215"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/hover-card.tsx",{"size":1476,"mtime":1774544487157,"data":"216"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/popover.tsx",{"size":2261,"mtime":1774544487690,"data":"217"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/tooltip.tsx",{"size":1771,"mtime":1774544488284,"data":"218"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/aspect-ratio.tsx",{"size":273,"mtime":1774544485059,"data":"219"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/button.tsx",{"size":3380,"mtime":1774544470961,"data":"220"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/toggle-group.tsx",{"size":2238,"mtime":1774544488249,"data":"221"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/hooks/use-mobile.ts",{"size":589,"mtime":1774544470961,"data":"222"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/submit-button.tsx",{"size":1192,"mtime":1773778628581,"data":"223"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/.cache/.eslintcache",{"size":45499,"mtime":1774544652212},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/carousel.tsx",{"size":5758,"mtime":1774544486321,"data":"224"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/textarea.tsx",{"size":736,"mtime":1774544488211,"data":"225"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/.cache/.prettiercache",{"size":13281,"mtime":1774544488300},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/avatar.tsx",{"size":2764,"mtime":1774544485222,"data":"226"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/command.tsx",{"size":4628,"mtime":1774544486715,"data":"227"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/dropdown-menu.tsx",{"size":8511,"mtime":1774544486927,"data":"228"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/empty.tsx",{"size":2265,"mtime":1774544486964,"data":"229"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/item.tsx",{"size":4575,"mtime":1774544487439,"data":"230"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/spinner.tsx",{"size":307,"mtime":1774544488097,"data":"231"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/package.json",{"size":2103,"mtime":1774538890797,"data":"232"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/dialog.tsx",{"size":3925,"mtime":1774544486830,"data":"233"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/input-otp.tsx",{"size":2474,"mtime":1774544487380,"data":"234"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/input.tsx",{"size":950,"mtime":1774544487397,"data":"235"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/label.tsx",{"size":585,"mtime":1774544487498,"data":"236"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/select.tsx",{"size":6105,"mtime":1774544487823,"data":"237"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/based-progress.tsx",{"size":1372,"mtime":1773778628580,"data":"238"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/kbd.tsx",{"size":788,"mtime":1774544487458,"data":"239"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/resizable.tsx",{"size":1750,"mtime":1774544487757,"data":"240"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/separator.tsx",{"size":675,"mtime":1774544487842,"data":"241"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/tsconfig.json",{"size":212,"mtime":1773778628581,"data":"242"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/accordion.tsx",{"size":2618,"mtime":1774544484670,"data":"243"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/chart.tsx",{"size":10055,"mtime":1774544486484,"data":"244"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/navigation-menu.tsx",{"size":6420,"mtime":1774544487625,"data":"245"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/switch.tsx",{"size":1712,"mtime":1774544488148,"data":"246"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/toggle.tsx",{"size":1596,"mtime":1774544488268,"data":"247"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/badge.tsx",{"size":1833,"mtime":1774544470961,"data":"248"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/slider.tsx",{"size":2002,"mtime":1774544470962,"data":"249"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/theme.tsx",{"size":1338,"mtime":1774544488228,"data":"250"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/eslint.config.ts",{"size":254,"mtime":1773778628580,"data":"251"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/field.tsx",{"size":5789,"mtime":1774544487028,"data":"252"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/form.tsx",{"size":3810,"mtime":1774544487072,"data":"253"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/image-crop.tsx",{"size":10320,"mtime":1774544470962,"data":"254"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/native-select.tsx",{"size":1788,"mtime":1774544487573,"data":"255"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/alert-dialog.tsx",{"size":5302,"mtime":1774544484831,"data":"256"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/drawer.tsx",{"size":4165,"mtime":1774544486870,"data":"257"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/progress.tsx",{"size":714,"mtime":1774544487711,"data":"258"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/scroll-area.tsx",{"size":1619,"mtime":1774544487784,"data":"259"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/skeleton.tsx",{"size":253,"mtime":1774544488045,"data":"260"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/sonner.tsx",{"size":1160,"mtime":1773938365512,"data":"261"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/button-group.tsx",{"size":2297,"mtime":1774544485788,"data":"262"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/status-message.tsx",{"size":1619,"mtime":1773778628581,"data":"263"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/breadcrumb.tsx",{"size":2238,"mtime":1774544485702,"data":"264"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/checkbox.tsx",{"size":1359,"mtime":1774544486513,"data":"265"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/context-menu.tsx",{"size":8006,"mtime":1774544486782,"data":"266"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/hooks/use-on-click-outside.tsx",{"size":1530,"mtime":1774544487137,"data":"267"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/alert.tsx",{"size":2002,"mtime":1774544485001,"data":"268"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/index.tsx",{"size":7589,"mtime":1774538739012,"data":"269"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/table.tsx",{"size":2176,"mtime":1774544488171,"data":"270"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/combobox.tsx",{"size":8572,"mtime":1774544486634,"data":"271"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/radio-group.tsx",{"size":1406,"mtime":1774544487730,"data":"272"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/sheet.tsx",{"size":4013,"mtime":1774544487881,"data":"273"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/components.json",{"size":334,"mtime":1773778628580,"data":"274"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/calendar.tsx",{"size":8444,"mtime":1774544470961,"data":"275"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/card.tsx",{"size":2462,"mtime":1774544486082,"data":"276"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/collapsible.tsx",{"size":757,"mtime":1774544486533,"data":"277"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/input-group.tsx",{"size":4980,"mtime":1774544487352,"data":"278"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/menubar.tsx",{"size":8040,"mtime":1774544487542,"data":"279"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/pagination.tsx",{"size":2667,"mtime":1774544487661,"data":"280"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/sidebar.tsx",{"size":21264,"mtime":1774544488032,"data":"281"},"/home/gib/Documents/Code/convex-monorepo/packages/ui/src/tabs.tsx",{"size":3435,"mtime":1774544488194,"data":"282"},{"hashOfOptions":"283"},{"hashOfOptions":"284"},{"hashOfOptions":"285"},{"hashOfOptions":"286"},{"hashOfOptions":"287"},{"hashOfOptions":"288"},{"hashOfOptions":"289"},{"hashOfOptions":"290"},{"hashOfOptions":"291"},{"hashOfOptions":"292"},{"hashOfOptions":"293"},{"hashOfOptions":"294"},{"hashOfOptions":"295"},{"hashOfOptions":"296"},{"hashOfOptions":"297"},{"hashOfOptions":"298"},{"hashOfOptions":"299"},{"hashOfOptions":"300"},{"hashOfOptions":"301"},{"hashOfOptions":"302"},{"hashOfOptions":"303"},{"hashOfOptions":"304"},{"hashOfOptions":"305"},{"hashOfOptions":"306"},{"hashOfOptions":"307"},{"hashOfOptions":"308"},{"hashOfOptions":"309"},{"hashOfOptions":"310"},{"hashOfOptions":"311"},{"hashOfOptions":"312"},{"hashOfOptions":"313"},{"hashOfOptions":"314"},{"hashOfOptions":"315"},{"hashOfOptions":"316"},{"hashOfOptions":"317"},{"hashOfOptions":"318"},{"hashOfOptions":"319"},{"hashOfOptions":"320"},{"hashOfOptions":"321"},{"hashOfOptions":"322"},{"hashOfOptions":"323"},{"hashOfOptions":"324"},{"hashOfOptions":"325"},{"hashOfOptions":"326"},{"hashOfOptions":"327"},{"hashOfOptions":"328"},{"hashOfOptions":"329"},{"hashOfOptions":"330"},{"hashOfOptions":"331"},{"hashOfOptions":"332"},{"hashOfOptions":"333"},{"hashOfOptions":"334"},{"hashOfOptions":"335"},{"hashOfOptions":"336"},{"hashOfOptions":"337"},{"hashOfOptions":"338"},{"hashOfOptions":"339"},{"hashOfOptions":"340"},{"hashOfOptions":"341"},{"hashOfOptions":"342"},{"hashOfOptions":"343"},{"hashOfOptions":"344"},{"hashOfOptions":"345"},{"hashOfOptions":"346"},{"hashOfOptions":"347"},{"hashOfOptions":"348"},{"hashOfOptions":"349"},{"hashOfOptions":"350"},{"hashOfOptions":"351"},"1184689735","660239897","180314549","2051734059","880268265","198318730","1141869862","1123175354","2337392641","107484621","1347677460","1849566670","3290150093","3520368305","761107969","3968385043","370864359","1181604639","4244029006","2977393756","2806355726","3149566864","1660808922","4225762768","2372592059","1582912979","1535320241","2102224395","3689442971","2367691918","305120708","2920925054","1163466280","2121680520","279570377","1117210645","1718382351","2550719820","3175771648","477959384","845238134","2177684728","3087551917","1672865797","3991061825","20049715","3611214177","3396089821","4274111832","2778273760","4175810647","962607959","941313905","1902845259","105560002","2056788376","3353269652","79199185","2576520211","4241885477","1446467142","2175131602","574553988","2578775728","4115303618","2308038938","3595592494","3317595938","1218342738"] \ No newline at end of file diff --git a/packages/ui/src/accordion.tsx b/packages/ui/src/accordion.tsx index d78012b..50402a8 100644 --- a/packages/ui/src/accordion.tsx +++ b/packages/ui/src/accordion.tsx @@ -6,82 +6,74 @@ import { Accordion as AccordionPrimitive } from 'radix-ui'; import { cn } from '@gib/ui'; -function Accordion({ +const Accordion = ({ className, ...props -}: React.ComponentProps<typeof AccordionPrimitive.Root>) { - return ( - <AccordionPrimitive.Root - data-slot='accordion' - className={cn('flex w-full flex-col', className)} - {...props} - /> - ); -} +}: React.ComponentProps<typeof AccordionPrimitive.Root>) => ( + <AccordionPrimitive.Root + data-slot='accordion' + className={cn('flex w-full flex-col', className)} + {...props} + /> +); -function AccordionItem({ +const AccordionItem = ({ className, ...props -}: React.ComponentProps<typeof AccordionPrimitive.Item>) { - return ( - <AccordionPrimitive.Item - data-slot='accordion-item' - className={cn('not-last:border-b', className)} - {...props} - /> - ); -} +}: React.ComponentProps<typeof AccordionPrimitive.Item>) => ( + <AccordionPrimitive.Item + data-slot='accordion-item' + className={cn('not-last:border-b', className)} + {...props} + /> +); -function AccordionTrigger({ +const AccordionTrigger = ({ className, children, ...props -}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) { - return ( - <AccordionPrimitive.Header className='flex'> - <AccordionPrimitive.Trigger - data-slot='accordion-trigger' - className={cn( - 'focus-visible:ring-ring/50 focus-visible:border-ring focus-visible:after:border-ring **:data-[slot=accordion-trigger-icon]:text-muted-foreground group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-3 disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4', - className, - )} - {...props} - > - {children} - <ChevronDownIcon - data-slot='accordion-trigger-icon' - className='pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden' - /> - <ChevronUpIcon - data-slot='accordion-trigger-icon' - className='pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline' - /> - </AccordionPrimitive.Trigger> - </AccordionPrimitive.Header> - ); -} - -function AccordionContent({ - className, - children, - ...props -}: React.ComponentProps<typeof AccordionPrimitive.Content>) { - return ( - <AccordionPrimitive.Content - data-slot='accordion-content' - className='data-open:animate-accordion-down data-closed:animate-accordion-up overflow-hidden text-sm' +}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) => ( + <AccordionPrimitive.Header className='flex'> + <AccordionPrimitive.Trigger + data-slot='accordion-trigger' + className={cn( + 'focus-visible:ring-ring/50 focus-visible:border-ring focus-visible:after:border-ring **:data-[slot=accordion-trigger-icon]:text-muted-foreground group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-3 disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4', + className, + )} {...props} > - <div - className={cn( - '[&_a]:hover:text-foreground h-(--radix-accordion-content-height) pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_p:not(:last-child)]:mb-4', - className, - )} - > - {children} - </div> - </AccordionPrimitive.Content> - ); -} + {children} + <ChevronDownIcon + data-slot='accordion-trigger-icon' + className='pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden' + /> + <ChevronUpIcon + data-slot='accordion-trigger-icon' + className='pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline' + /> + </AccordionPrimitive.Trigger> + </AccordionPrimitive.Header> +); + +const AccordionContent = ({ + className, + children, + ...props +}: React.ComponentProps<typeof AccordionPrimitive.Content>) => ( + <AccordionPrimitive.Content + data-slot='accordion-content' + className='data-open:animate-accordion-down data-closed:animate-accordion-up overflow-hidden text-sm' + {...props} + > + <div + className={cn( + '[&_a]:hover:text-foreground h-(--radix-accordion-content-height) pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_p:not(:last-child)]:mb-4', + className, + )} + > + {children} + </div> + </AccordionPrimitive.Content> +); export { Accordion, AccordionItem, AccordionTrigger, AccordionContent }; diff --git a/packages/ui/src/alert-dialog.tsx b/packages/ui/src/alert-dialog.tsx index c41f6e1..601ff5f 100644 --- a/packages/ui/src/alert-dialog.tsx +++ b/packages/ui/src/alert-dialog.tsx @@ -5,182 +5,160 @@ import { AlertDialog as AlertDialogPrimitive } from 'radix-ui'; import { Button, cn } from '@gib/ui'; -function AlertDialog({ +const AlertDialog = ({ ...props -}: React.ComponentProps<typeof AlertDialogPrimitive.Root>) { - return <AlertDialogPrimitive.Root data-slot='alert-dialog' {...props} />; -} +}: React.ComponentProps<typeof AlertDialogPrimitive.Root>) => ( + <AlertDialogPrimitive.Root data-slot='alert-dialog' {...props} /> +); -function AlertDialogTrigger({ +const AlertDialogTrigger = ({ ...props -}: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>) { - return ( - <AlertDialogPrimitive.Trigger data-slot='alert-dialog-trigger' {...props} /> - ); -} +}: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>) => ( + <AlertDialogPrimitive.Trigger data-slot='alert-dialog-trigger' {...props} /> +); -function AlertDialogPortal({ +const AlertDialogPortal = ({ ...props -}: React.ComponentProps<typeof AlertDialogPrimitive.Portal>) { - return ( - <AlertDialogPrimitive.Portal data-slot='alert-dialog-portal' {...props} /> - ); -} +}: React.ComponentProps<typeof AlertDialogPrimitive.Portal>) => ( + <AlertDialogPrimitive.Portal data-slot='alert-dialog-portal' {...props} /> +); -function AlertDialogOverlay({ +const AlertDialogOverlay = ({ className, ...props -}: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>) { - return ( - <AlertDialogPrimitive.Overlay - data-slot='alert-dialog-overlay' - className={cn( - 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 fixed inset-0 z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>) => ( + <AlertDialogPrimitive.Overlay + data-slot='alert-dialog-overlay' + className={cn( + 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 fixed inset-0 z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs', + className, + )} + {...props} + /> +); -function AlertDialogContent({ +const AlertDialogContent = ({ className, size = 'default', ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Content> & { size?: 'default' | 'sm'; -}) { - return ( - <AlertDialogPortal> - <AlertDialogOverlay /> - <AlertDialogPrimitive.Content - data-slot='alert-dialog-content' - data-size={size} - className={cn( - 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 bg-background ring-foreground/10 group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl p-4 ring-1 duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-sm', - className, - )} - {...props} - /> - </AlertDialogPortal> - ); -} - -function AlertDialogHeader({ - className, - ...props -}: React.ComponentProps<'div'>) { - return ( - <div - data-slot='alert-dialog-header' +}) => ( + <AlertDialogPortal> + <AlertDialogOverlay /> + <AlertDialogPrimitive.Content + data-slot='alert-dialog-content' + data-size={size} className={cn( - 'grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]', + 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 bg-background ring-foreground/10 group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl p-4 ring-1 duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-sm', className, )} {...props} /> - ); -} + </AlertDialogPortal> +); -function AlertDialogFooter({ +const AlertDialogHeader = ({ className, ...props -}: React.ComponentProps<'div'>) { - return ( - <div - data-slot='alert-dialog-footer' - className={cn( - 'bg-muted/50 -mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t p-4 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<'div'>) => ( + <div + data-slot='alert-dialog-header' + className={cn( + 'grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]', + className, + )} + {...props} + /> +); -function AlertDialogMedia({ +const AlertDialogFooter = ({ className, ...props -}: React.ComponentProps<'div'>) { - return ( - <div - data-slot='alert-dialog-media' - className={cn( - "bg-muted mb-2 inline-flex size-10 items-center justify-center rounded-md sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-6", - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<'div'>) => ( + <div + data-slot='alert-dialog-footer' + className={cn( + 'bg-muted/50 -mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t p-4 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end', + className, + )} + {...props} + /> +); -function AlertDialogTitle({ +const AlertDialogMedia = ({ className, ...props -}: React.ComponentProps<typeof AlertDialogPrimitive.Title>) { - return ( - <AlertDialogPrimitive.Title - data-slot='alert-dialog-title' - className={cn( - 'text-base font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<'div'>) => ( + <div + data-slot='alert-dialog-media' + className={cn( + "bg-muted mb-2 inline-flex size-10 items-center justify-center rounded-md sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-6", + className, + )} + {...props} + /> +); -function AlertDialogDescription({ +const AlertDialogTitle = ({ className, ...props -}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) { - return ( - <AlertDialogPrimitive.Description - data-slot='alert-dialog-description' - className={cn( - 'text-muted-foreground *:[a]:hover:text-foreground text-sm text-balance md:text-pretty *:[a]:underline *:[a]:underline-offset-3', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<typeof AlertDialogPrimitive.Title>) => ( + <AlertDialogPrimitive.Title + data-slot='alert-dialog-title' + className={cn( + 'text-base font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2', + className, + )} + {...props} + /> +); -function AlertDialogAction({ +const AlertDialogDescription = ({ + className, + ...props +}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) => ( + <AlertDialogPrimitive.Description + data-slot='alert-dialog-description' + className={cn( + 'text-muted-foreground *:[a]:hover:text-foreground text-sm text-balance md:text-pretty *:[a]:underline *:[a]:underline-offset-3', + className, + )} + {...props} + /> +); + +const AlertDialogAction = ({ className, variant = 'default', size = 'default', ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Action> & - Pick<React.ComponentProps<typeof Button>, 'variant' | 'size'>) { - return ( - <Button variant={variant} size={size} asChild> - <AlertDialogPrimitive.Action - data-slot='alert-dialog-action' - className={cn(className)} - {...props} - /> - </Button> - ); -} + Pick<React.ComponentProps<typeof Button>, 'variant' | 'size'>) => ( + <Button variant={variant} size={size} asChild> + <AlertDialogPrimitive.Action + data-slot='alert-dialog-action' + className={cn(className)} + {...props} + /> + </Button> +); -function AlertDialogCancel({ +const AlertDialogCancel = ({ className, variant = 'outline', size = 'default', ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Cancel> & - Pick<React.ComponentProps<typeof Button>, 'variant' | 'size'>) { - return ( - <Button variant={variant} size={size} asChild> - <AlertDialogPrimitive.Cancel - data-slot='alert-dialog-cancel' - className={cn(className)} - {...props} - /> - </Button> - ); -} + Pick<React.ComponentProps<typeof Button>, 'variant' | 'size'>) => ( + <Button variant={variant} size={size} asChild> + <AlertDialogPrimitive.Cancel + data-slot='alert-dialog-cancel' + className={cn(className)} + {...props} + /> + </Button> +); export { AlertDialog, diff --git a/packages/ui/src/alert.tsx b/packages/ui/src/alert.tsx index aee323b..05907ad 100644 --- a/packages/ui/src/alert.tsx +++ b/packages/ui/src/alert.tsx @@ -20,58 +20,50 @@ const alertVariants = cva( }, ); -function Alert({ +const Alert = ({ className, variant, ...props -}: React.ComponentProps<'div'> & VariantProps<typeof alertVariants>) { - return ( - <div - data-slot='alert' - role='alert' - className={cn(alertVariants({ variant }), className)} - {...props} - /> - ); -} +}: React.ComponentProps<'div'> & VariantProps<typeof alertVariants>) => ( + <div + data-slot='alert' + role='alert' + className={cn(alertVariants({ variant }), className)} + {...props} + /> +); -function AlertTitle({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='alert-title' - className={cn( - '[&_a]:hover:text-foreground font-medium group-has-[>svg]/alert:col-start-2 [&_a]:underline [&_a]:underline-offset-3', - className, - )} - {...props} - /> - ); -} +const AlertTitle = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='alert-title' + className={cn( + '[&_a]:hover:text-foreground font-medium group-has-[>svg]/alert:col-start-2 [&_a]:underline [&_a]:underline-offset-3', + className, + )} + {...props} + /> +); -function AlertDescription({ +const AlertDescription = ({ className, ...props -}: React.ComponentProps<'div'>) { - return ( - <div - data-slot='alert-description' - className={cn( - 'text-muted-foreground [&_a]:hover:text-foreground text-sm text-balance md:text-pretty [&_a]:underline [&_a]:underline-offset-3 [&_p:not(:last-child)]:mb-4', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<'div'>) => ( + <div + data-slot='alert-description' + className={cn( + 'text-muted-foreground [&_a]:hover:text-foreground text-sm text-balance md:text-pretty [&_a]:underline [&_a]:underline-offset-3 [&_p:not(:last-child)]:mb-4', + className, + )} + {...props} + /> +); -function AlertAction({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='alert-action' - className={cn('absolute top-2 right-2', className)} - {...props} - /> - ); -} +const AlertAction = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='alert-action' + className={cn('absolute top-2 right-2', className)} + {...props} + /> +); export { Alert, AlertTitle, AlertDescription, AlertAction }; diff --git a/packages/ui/src/aspect-ratio.tsx b/packages/ui/src/aspect-ratio.tsx index 3b7255e..f12cbb7 100644 --- a/packages/ui/src/aspect-ratio.tsx +++ b/packages/ui/src/aspect-ratio.tsx @@ -2,9 +2,9 @@ import { AspectRatio as AspectRatioPrimitive } from 'radix-ui'; -function AspectRatio({ +const AspectRatio = ({ ...props -}: React.ComponentProps<typeof AspectRatioPrimitive.Root>) { - return <AspectRatioPrimitive.Root data-slot='aspect-ratio' {...props} />; -} +}: React.ComponentProps<typeof AspectRatioPrimitive.Root>) => ( + <AspectRatioPrimitive.Root data-slot='aspect-ratio' {...props} /> +); export { AspectRatio }; diff --git a/packages/ui/src/avatar.tsx b/packages/ui/src/avatar.tsx index f05a165..1c32b0b 100644 --- a/packages/ui/src/avatar.tsx +++ b/packages/ui/src/avatar.tsx @@ -5,99 +5,87 @@ import { Avatar as AvatarPrimitive } from 'radix-ui'; import { cn } from '@gib/ui'; -function Avatar({ +const Avatar = ({ className, size = 'default', ...props }: React.ComponentProps<typeof AvatarPrimitive.Root> & { size?: 'default' | 'sm' | 'lg'; -}) { - return ( - <AvatarPrimitive.Root - data-slot='avatar' - data-size={size} - className={cn( - 'group/avatar relative flex size-8 shrink-0 overflow-hidden rounded-full select-none data-[size=lg]:size-10 data-[size=sm]:size-6', - className, - )} - {...props} - /> - ); -} +}) => ( + <AvatarPrimitive.Root + data-slot='avatar' + data-size={size} + className={cn( + 'group/avatar relative flex size-8 shrink-0 overflow-hidden rounded-full select-none data-[size=lg]:size-10 data-[size=sm]:size-6', + className, + )} + {...props} + /> +); -function AvatarImage({ +const AvatarImage = ({ className, ...props -}: React.ComponentProps<typeof AvatarPrimitive.Image>) { - return ( - <AvatarPrimitive.Image - data-slot='avatar-image' - className={cn('aspect-square size-full', className)} - {...props} - /> - ); -} +}: React.ComponentProps<typeof AvatarPrimitive.Image>) => ( + <AvatarPrimitive.Image + data-slot='avatar-image' + className={cn('aspect-square size-full', className)} + {...props} + /> +); -function AvatarFallback({ +const AvatarFallback = ({ className, ...props -}: React.ComponentProps<typeof AvatarPrimitive.Fallback>) { - return ( - <AvatarPrimitive.Fallback - data-slot='avatar-fallback' - className={cn( - 'bg-muted text-muted-foreground flex size-full items-center justify-center rounded-full text-sm group-data-[size=sm]/avatar:text-xs', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<typeof AvatarPrimitive.Fallback>) => ( + <AvatarPrimitive.Fallback + data-slot='avatar-fallback' + className={cn( + 'bg-muted text-muted-foreground flex size-full items-center justify-center rounded-full text-sm group-data-[size=sm]/avatar:text-xs', + className, + )} + {...props} + /> +); -function AvatarBadge({ className, ...props }: React.ComponentProps<'span'>) { - return ( - <span - data-slot='avatar-badge' - className={cn( - 'bg-primary text-primary-foreground ring-background absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full ring-2 select-none', - 'group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden', - 'group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2', - 'group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2', - className, - )} - {...props} - /> - ); -} +const AvatarBadge = ({ className, ...props }: React.ComponentProps<'span'>) => ( + <span + data-slot='avatar-badge' + className={cn( + 'bg-primary text-primary-foreground ring-background absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full ring-2 select-none', + 'group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden', + 'group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2', + 'group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2', + className, + )} + {...props} + /> +); -function AvatarGroup({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='avatar-group' - className={cn( - 'group/avatar-group *:data-[slot=avatar]:ring-background flex -space-x-2 *:data-[slot=avatar]:ring-2', - className, - )} - {...props} - /> - ); -} +const AvatarGroup = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='avatar-group' + className={cn( + 'group/avatar-group *:data-[slot=avatar]:ring-background flex -space-x-2 *:data-[slot=avatar]:ring-2', + className, + )} + {...props} + /> +); -function AvatarGroupCount({ +const AvatarGroupCount = ({ className, ...props -}: React.ComponentProps<'div'>) { - return ( - <div - data-slot='avatar-group-count' - className={cn( - 'bg-muted text-muted-foreground ring-background relative flex size-8 shrink-0 items-center justify-center rounded-full text-sm ring-2 group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<'div'>) => ( + <div + data-slot='avatar-group-count' + className={cn( + 'bg-muted text-muted-foreground ring-background relative flex size-8 shrink-0 items-center justify-center rounded-full text-sm ring-2 group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3', + className, + )} + {...props} + /> +); export { Avatar, diff --git a/packages/ui/src/badge.tsx b/packages/ui/src/badge.tsx index 473994f..8a9c7f4 100644 --- a/packages/ui/src/badge.tsx +++ b/packages/ui/src/badge.tsx @@ -27,13 +27,13 @@ const badgeVariants = cva( }, ); -function Badge({ +const Badge = ({ className, variant = 'default', asChild = false, ...props }: React.ComponentProps<'span'> & - VariantProps<typeof badgeVariants> & { asChild?: boolean }) { + VariantProps<typeof badgeVariants> & { asChild?: boolean }) => { const Comp = asChild ? Slot.Root : 'span'; return ( @@ -44,6 +44,6 @@ function Badge({ {...props} /> ); -} +}; export { Badge, badgeVariants }; diff --git a/packages/ui/src/breadcrumb.tsx b/packages/ui/src/breadcrumb.tsx index dc4170a..a26ef04 100644 --- a/packages/ui/src/breadcrumb.tsx +++ b/packages/ui/src/breadcrumb.tsx @@ -4,40 +4,42 @@ import { Slot } from 'radix-ui'; import { cn } from '@gib/ui'; -function Breadcrumb({ ...props }: React.ComponentProps<'nav'>) { - return <nav aria-label='breadcrumb' data-slot='breadcrumb' {...props} />; -} +const Breadcrumb = ({ ...props }: React.ComponentProps<'nav'>) => ( + <nav aria-label='breadcrumb' data-slot='breadcrumb' {...props} /> +); -function BreadcrumbList({ className, ...props }: React.ComponentProps<'ol'>) { - return ( - <ol - data-slot='breadcrumb-list' - className={cn( - 'text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5', - className, - )} - {...props} - /> - ); -} +const BreadcrumbList = ({ + className, + ...props +}: React.ComponentProps<'ol'>) => ( + <ol + data-slot='breadcrumb-list' + className={cn( + 'text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5', + className, + )} + {...props} + /> +); -function BreadcrumbItem({ className, ...props }: React.ComponentProps<'li'>) { - return ( - <li - data-slot='breadcrumb-item' - className={cn('inline-flex items-center gap-1.5', className)} - {...props} - /> - ); -} +const BreadcrumbItem = ({ + className, + ...props +}: React.ComponentProps<'li'>) => ( + <li + data-slot='breadcrumb-item' + className={cn('inline-flex items-center gap-1.5', className)} + {...props} + /> +); -function BreadcrumbLink({ +const BreadcrumbLink = ({ asChild, className, ...props }: React.ComponentProps<'a'> & { asChild?: boolean; -}) { +}) => { const Comp = asChild ? Slot.Root : 'a'; return ( @@ -47,56 +49,53 @@ function BreadcrumbLink({ {...props} /> ); -} +}; -function BreadcrumbPage({ className, ...props }: React.ComponentProps<'span'>) { - return ( - <span - data-slot='breadcrumb-page' - role='link' - aria-disabled='true' - aria-current='page' - className={cn('text-foreground font-normal', className)} - {...props} - /> - ); -} +const BreadcrumbPage = ({ + className, + ...props +}: React.ComponentProps<'span'>) => ( + <span + data-slot='breadcrumb-page' + role='link' + aria-disabled='true' + aria-current='page' + className={cn('text-foreground font-normal', className)} + {...props} + /> +); -function BreadcrumbSeparator({ +const BreadcrumbSeparator = ({ children, className, ...props -}: React.ComponentProps<'li'>) { - return ( - <li - data-slot='breadcrumb-separator' - role='presentation' - aria-hidden='true' - className={cn('[&>svg]:size-3.5', className)} - {...props} - > - {children ?? <ChevronRight />} - </li> - ); -} +}: React.ComponentProps<'li'>) => ( + <li + data-slot='breadcrumb-separator' + role='presentation' + aria-hidden='true' + className={cn('[&>svg]:size-3.5', className)} + {...props} + > + {children ?? <ChevronRight />} + </li> +); -function BreadcrumbEllipsis({ +const BreadcrumbEllipsis = ({ className, ...props -}: React.ComponentProps<'span'>) { - return ( - <span - data-slot='breadcrumb-ellipsis' - role='presentation' - aria-hidden='true' - className={cn('flex size-9 items-center justify-center', className)} - {...props} - > - <MoreHorizontal className='size-4' /> - <span className='sr-only'>More</span> - </span> - ); -} +}: React.ComponentProps<'span'>) => ( + <span + data-slot='breadcrumb-ellipsis' + role='presentation' + aria-hidden='true' + className={cn('flex size-9 items-center justify-center', className)} + {...props} + > + <MoreHorizontal className='size-4' /> + <span className='sr-only'>More</span> + </span> +); export { Breadcrumb, diff --git a/packages/ui/src/button-group.tsx b/packages/ui/src/button-group.tsx index 2120744..46c868e 100644 --- a/packages/ui/src/button-group.tsx +++ b/packages/ui/src/button-group.tsx @@ -21,29 +21,27 @@ const buttonGroupVariants = cva( }, ); -function ButtonGroup({ +const ButtonGroup = ({ className, orientation, ...props -}: React.ComponentProps<'div'> & VariantProps<typeof buttonGroupVariants>) { - return ( - <div - role='group' - data-slot='button-group' - data-orientation={orientation} - className={cn(buttonGroupVariants({ orientation }), className)} - {...props} - /> - ); -} +}: React.ComponentProps<'div'> & VariantProps<typeof buttonGroupVariants>) => ( + <div + role='group' + data-slot='button-group' + data-orientation={orientation} + className={cn(buttonGroupVariants({ orientation }), className)} + {...props} + /> +); -function ButtonGroupText({ +const ButtonGroupText = ({ className, asChild = false, ...props }: React.ComponentProps<'div'> & { asChild?: boolean; -}) { +}) => { const Comp = asChild ? Slot.Root : 'div'; return ( @@ -55,25 +53,23 @@ function ButtonGroupText({ {...props} /> ); -} +}; -function ButtonGroupSeparator({ +const ButtonGroupSeparator = ({ className, orientation = 'vertical', ...props -}: React.ComponentProps<typeof Separator>) { - return ( - <Separator - data-slot='button-group-separator' - orientation={orientation} - className={cn( - 'bg-input relative self-stretch data-horizontal:mx-px data-horizontal:w-auto data-vertical:my-px data-vertical:h-auto', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<typeof Separator>) => ( + <Separator + data-slot='button-group-separator' + orientation={orientation} + className={cn( + 'bg-input relative self-stretch data-horizontal:mx-px data-horizontal:w-auto data-vertical:my-px data-vertical:h-auto', + className, + )} + {...props} + /> +); export { ButtonGroup, diff --git a/packages/ui/src/button.tsx b/packages/ui/src/button.tsx index aef0d0a..c87912a 100644 --- a/packages/ui/src/button.tsx +++ b/packages/ui/src/button.tsx @@ -42,7 +42,7 @@ const buttonVariants = cva( }, ); -function Button({ +const Button = ({ className, variant = 'default', size = 'default', @@ -51,7 +51,7 @@ function Button({ }: React.ComponentProps<'button'> & VariantProps<typeof buttonVariants> & { asChild?: boolean; - }) { + }) => { const Comp = asChild ? Slot.Root : 'button'; return ( @@ -63,6 +63,6 @@ function Button({ {...props} /> ); -} +}; export { Button, buttonVariants }; diff --git a/packages/ui/src/calendar.tsx b/packages/ui/src/calendar.tsx index fd6572b..eb49192 100644 --- a/packages/ui/src/calendar.tsx +++ b/packages/ui/src/calendar.tsx @@ -11,7 +11,7 @@ import { DayPicker, getDefaultClassNames } from 'react-day-picker'; import { Button, buttonVariants, cn } from '@gib/ui'; -function Calendar({ +const Calendar = ({ className, classNames, showOutsideDays = true, @@ -23,7 +23,7 @@ function Calendar({ ...props }: React.ComponentProps<typeof DayPicker> & { buttonVariant?: React.ComponentProps<typeof Button>['variant']; -}) { +}) => { const defaultClassNames = getDefaultClassNames(); return ( @@ -183,15 +183,15 @@ function Calendar({ {...props} /> ); -} +}; -function CalendarDayButton({ +const CalendarDayButton = ({ className, day, modifiers, locale, ...props -}: React.ComponentProps<typeof DayButton> & { locale?: Partial<Locale> }) { +}: React.ComponentProps<typeof DayButton> & { locale?: Partial<Locale> }) => { const defaultClassNames = getDefaultClassNames(); const ref = React.useRef<HTMLButtonElement>(null); @@ -222,6 +222,6 @@ function CalendarDayButton({ {...props} /> ); -} +}; export { Calendar, CalendarDayButton }; diff --git a/packages/ui/src/card.tsx b/packages/ui/src/card.tsx index c492f36..f699cfa 100644 --- a/packages/ui/src/card.tsx +++ b/packages/ui/src/card.tsx @@ -2,95 +2,84 @@ import type * as React from 'react'; import { cn } from '@gib/ui'; -function Card({ +const Card = ({ className, size = 'default', ...props -}: React.ComponentProps<'div'> & { size?: 'default' | 'sm' }) { - return ( - <div - data-slot='card' - data-size={size} - className={cn( - 'ring-foreground/10 bg-card text-card-foreground group/card flex flex-col gap-4 overflow-hidden rounded-xl py-4 text-sm ring-1 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<'div'> & { size?: 'default' | 'sm' }) => ( + <div + data-slot='card' + data-size={size} + className={cn( + 'ring-foreground/10 bg-card text-card-foreground group/card flex flex-col gap-4 overflow-hidden rounded-xl py-4 text-sm ring-1 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl', + className, + )} + {...props} + /> +); -function CardHeader({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='card-header' - className={cn( - 'group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3', - className, - )} - {...props} - /> - ); -} +const CardHeader = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='card-header' + className={cn( + 'group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3', + className, + )} + {...props} + /> +); -function CardTitle({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='card-title' - className={cn( - 'text-base leading-snug font-medium group-data-[size=sm]/card:text-sm', - className, - )} - {...props} - /> - ); -} +const CardTitle = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='card-title' + className={cn( + 'text-base leading-snug font-medium group-data-[size=sm]/card:text-sm', + className, + )} + {...props} + /> +); -function CardDescription({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='card-description' - className={cn('text-muted-foreground text-sm', className)} - {...props} - /> - ); -} +const CardDescription = ({ + className, + ...props +}: React.ComponentProps<'div'>) => ( + <div + data-slot='card-description' + className={cn('text-muted-foreground text-sm', className)} + {...props} + /> +); -function CardAction({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='card-action' - className={cn( - 'col-start-2 row-span-2 row-start-1 self-start justify-self-end', - className, - )} - {...props} - /> - ); -} +const CardAction = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='card-action' + className={cn( + 'col-start-2 row-span-2 row-start-1 self-start justify-self-end', + className, + )} + {...props} + /> +); -function CardContent({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='card-content' - className={cn('px-4 group-data-[size=sm]/card:px-3', className)} - {...props} - /> - ); -} +const CardContent = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='card-content' + className={cn('px-4 group-data-[size=sm]/card:px-3', className)} + {...props} + /> +); -function CardFooter({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='card-footer' - className={cn( - 'bg-muted/50 flex items-center rounded-b-xl border-t p-4 group-data-[size=sm]/card:p-3', - className, - )} - {...props} - /> - ); -} +const CardFooter = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='card-footer' + className={cn( + 'bg-muted/50 flex items-center rounded-b-xl border-t p-4 group-data-[size=sm]/card:p-3', + className, + )} + {...props} + /> +); export { Card, diff --git a/packages/ui/src/carousel.tsx b/packages/ui/src/carousel.tsx index 6da4ccd..3a8ea9e 100644 --- a/packages/ui/src/carousel.tsx +++ b/packages/ui/src/carousel.tsx @@ -12,12 +12,12 @@ type UseCarouselParameters = Parameters<typeof useEmblaCarousel>; type CarouselOptions = UseCarouselParameters[0]; type CarouselPlugin = UseCarouselParameters[1]; -type CarouselProps = { +interface CarouselProps { opts?: CarouselOptions; plugins?: CarouselPlugin; orientation?: 'horizontal' | 'vertical'; setApi?: (api: CarouselApi) => void; -}; +} type CarouselContextProps = { carouselRef: ReturnType<typeof useEmblaCarousel>[0]; @@ -30,7 +30,7 @@ type CarouselContextProps = { const CarouselContext = React.createContext<CarouselContextProps | null>(null); -function useCarousel() { +const useCarousel = () => { const context = React.useContext(CarouselContext); if (!context) { @@ -38,9 +38,9 @@ function useCarousel() { } return context; -} +}; -function Carousel({ +const Carousel = ({ orientation = 'horizontal', opts, setApi, @@ -48,7 +48,7 @@ function Carousel({ className, children, ...props -}: React.ComponentProps<'div'> & CarouselProps) { +}: React.ComponentProps<'div'> & CarouselProps) => { const [carouselRef, api] = useEmblaCarousel( { ...opts, @@ -128,9 +128,12 @@ function Carousel({ </div> </CarouselContext.Provider> ); -} +}; -function CarouselContent({ className, ...props }: React.ComponentProps<'div'>) { +const CarouselContent = ({ + className, + ...props +}: React.ComponentProps<'div'>) => { const { carouselRef, orientation } = useCarousel(); return ( @@ -149,9 +152,9 @@ function CarouselContent({ className, ...props }: React.ComponentProps<'div'>) { /> </div> ); -} +}; -function CarouselItem({ className, ...props }: React.ComponentProps<'div'>) { +const CarouselItem = ({ className, ...props }: React.ComponentProps<'div'>) => { const { orientation } = useCarousel(); return ( @@ -167,14 +170,14 @@ function CarouselItem({ className, ...props }: React.ComponentProps<'div'>) { {...props} /> ); -} +}; -function CarouselPrevious({ +const CarouselPrevious = ({ className, variant = 'outline', size = 'icon-sm', ...props -}: React.ComponentProps<typeof Button>) { +}: React.ComponentProps<typeof Button>) => { const { orientation, scrollPrev, canScrollPrev } = useCarousel(); return ( @@ -197,14 +200,14 @@ function CarouselPrevious({ <span className='sr-only'>Previous slide</span> </Button> ); -} +}; -function CarouselNext({ +const CarouselNext = ({ className, variant = 'outline', size = 'icon-sm', ...props -}: React.ComponentProps<typeof Button>) { +}: React.ComponentProps<typeof Button>) => { const { orientation, scrollNext, canScrollNext } = useCarousel(); return ( @@ -227,7 +230,7 @@ function CarouselNext({ <span className='sr-only'>Next slide</span> </Button> ); -} +}; export { type CarouselApi, diff --git a/packages/ui/src/chart.tsx b/packages/ui/src/chart.tsx index dbff066..fdb507c 100644 --- a/packages/ui/src/chart.tsx +++ b/packages/ui/src/chart.tsx @@ -8,23 +8,24 @@ import { cn } from '@gib/ui'; // Format: { THEME_NAME: CSS_SELECTOR } const THEMES = { light: '', dark: '.dark' } as const; -export type ChartConfig = { - [k in string]: { +export type ChartConfig = Record< + string, + { label?: React.ReactNode; icon?: React.ComponentType; } & ( | { color?: string; theme?: never } | { color?: never; theme: Record<keyof typeof THEMES, string> } - ); -}; + ) +>; -type ChartContextProps = { +interface ChartContextProps { config: ChartConfig; -}; +} const ChartContext = React.createContext<ChartContextProps | null>(null); -function useChart() { +const useChart = () => { const context = React.useContext(ChartContext); if (!context) { @@ -32,9 +33,9 @@ function useChart() { } return context; -} +}; -function ChartContainer({ +const ChartContainer = ({ id, className, children, @@ -45,7 +46,7 @@ function ChartContainer({ children: React.ComponentProps< typeof RechartsPrimitive.ResponsiveContainer >['children']; -}) { +}) => { const uniqueId = React.useId(); const chartId = `chart-${id || uniqueId.replace(/:/g, '')}`; @@ -67,7 +68,7 @@ function ChartContainer({ </div> </ChartContext.Provider> ); -} +}; const ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => { const colorConfig = Object.entries(config).filter( @@ -104,7 +105,7 @@ ${colorConfig const ChartTooltip = RechartsPrimitive.Tooltip; -function ChartTooltipContent({ +const ChartTooltipContent = ({ active, payload, className, @@ -125,7 +126,7 @@ function ChartTooltipContent({ indicator?: 'line' | 'dot' | 'dashed'; nameKey?: string; labelKey?: string; - }) { + }) => { const { config } = useChart(); const tooltipLabel = React.useMemo(() => { @@ -138,7 +139,7 @@ function ChartTooltipContent({ const itemConfig = getPayloadConfigFromPayload(config, item, key); const value = !labelKey && typeof label === 'string' - ? config[label as keyof typeof config]?.label || label + ? config[label]?.label || label : itemConfig?.label; if (labelFormatter) { @@ -248,11 +249,11 @@ function ChartTooltipContent({ </div> </div> ); -} +}; const ChartLegend = RechartsPrimitive.Legend; -function ChartLegendContent({ +const ChartLegendContent = ({ className, hideIcon = false, payload, @@ -262,7 +263,7 @@ function ChartLegendContent({ Pick<RechartsPrimitive.LegendProps, 'payload' | 'verticalAlign'> & { hideIcon?: boolean; nameKey?: string; - }) { + }) => { const { config } = useChart(); if (!payload?.length) { @@ -306,13 +307,13 @@ function ChartLegendContent({ })} </div> ); -} +}; -function getPayloadConfigFromPayload( +const getPayloadConfigFromPayload = ( config: ChartConfig, payload: unknown, key: string, -) { +) => { if (typeof payload !== 'object' || payload === null) { return undefined; } @@ -341,10 +342,8 @@ function getPayloadConfigFromPayload( ] as string; } - return configLabelKey in config - ? config[configLabelKey] - : config[key as keyof typeof config]; -} + return configLabelKey in config ? config[configLabelKey] : config[key]; +}; export { ChartContainer, diff --git a/packages/ui/src/checkbox.tsx b/packages/ui/src/checkbox.tsx index 083f95f..8369d00 100644 --- a/packages/ui/src/checkbox.tsx +++ b/packages/ui/src/checkbox.tsx @@ -6,27 +6,25 @@ import { Checkbox as CheckboxPrimitive } from 'radix-ui'; import { cn } from '@gib/ui'; -function Checkbox({ +const Checkbox = ({ className, ...props -}: React.ComponentProps<typeof CheckboxPrimitive.Root>) { - return ( - <CheckboxPrimitive.Root - data-slot='checkbox' - className={cn( - 'border-input dark:bg-input/30 data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary data-checked:border-primary aria-invalid:aria-checked:border-primary aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-3 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3', - className, - )} - {...props} +}: React.ComponentProps<typeof CheckboxPrimitive.Root>) => ( + <CheckboxPrimitive.Root + data-slot='checkbox' + className={cn( + 'border-input dark:bg-input/30 data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary data-checked:border-primary aria-invalid:aria-checked:border-primary aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-3 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3', + className, + )} + {...props} + > + <CheckboxPrimitive.Indicator + data-slot='checkbox-indicator' + className='grid place-content-center text-current transition-none [&>svg]:size-3.5' > - <CheckboxPrimitive.Indicator - data-slot='checkbox-indicator' - className='grid place-content-center text-current transition-none [&>svg]:size-3.5' - > - <CheckIcon /> - </CheckboxPrimitive.Indicator> - </CheckboxPrimitive.Root> - ); -} + <CheckIcon /> + </CheckboxPrimitive.Indicator> + </CheckboxPrimitive.Root> +); export { Checkbox }; diff --git a/packages/ui/src/collapsible.tsx b/packages/ui/src/collapsible.tsx index af00253..dcf5706 100644 --- a/packages/ui/src/collapsible.tsx +++ b/packages/ui/src/collapsible.tsx @@ -2,32 +2,28 @@ import { Collapsible as CollapsiblePrimitive } from 'radix-ui'; -function Collapsible({ +const Collapsible = ({ ...props -}: React.ComponentProps<typeof CollapsiblePrimitive.Root>) { - return <CollapsiblePrimitive.Root data-slot='collapsible' {...props} />; -} +}: React.ComponentProps<typeof CollapsiblePrimitive.Root>) => ( + <CollapsiblePrimitive.Root data-slot='collapsible' {...props} /> +); -function CollapsibleTrigger({ +const CollapsibleTrigger = ({ ...props -}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) { - return ( - <CollapsiblePrimitive.CollapsibleTrigger - data-slot='collapsible-trigger' - {...props} - /> - ); -} +}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) => ( + <CollapsiblePrimitive.CollapsibleTrigger + data-slot='collapsible-trigger' + {...props} + /> +); -function CollapsibleContent({ +const CollapsibleContent = ({ ...props -}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) { - return ( - <CollapsiblePrimitive.CollapsibleContent - data-slot='collapsible-content' - {...props} - /> - ); -} +}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) => ( + <CollapsiblePrimitive.CollapsibleContent + data-slot='collapsible-content' + {...props} + /> +); export { Collapsible, CollapsibleTrigger, CollapsibleContent }; diff --git a/packages/ui/src/combobox.tsx b/packages/ui/src/combobox.tsx index 3448bfe..3cafed6 100644 --- a/packages/ui/src/combobox.tsx +++ b/packages/ui/src/combobox.tsx @@ -15,43 +15,42 @@ import { const Combobox = ComboboxPrimitive.Root; -function ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props) { - return <ComboboxPrimitive.Value data-slot='combobox-value' {...props} />; -} +const ComboboxValue = ({ ...props }: ComboboxPrimitive.Value.Props) => ( + <ComboboxPrimitive.Value data-slot='combobox-value' {...props} /> +); -function ComboboxTrigger({ +const ComboboxTrigger = ({ className, children, ...props -}: ComboboxPrimitive.Trigger.Props) { - return ( - <ComboboxPrimitive.Trigger - data-slot='combobox-trigger' - className={cn("[&_svg:not([class*='size-'])]:size-4", className)} - {...props} - > - {children} - <ChevronDownIcon className='text-muted-foreground pointer-events-none size-4' /> - </ComboboxPrimitive.Trigger> - ); -} +}: ComboboxPrimitive.Trigger.Props) => ( + <ComboboxPrimitive.Trigger + data-slot='combobox-trigger' + className={cn("[&_svg:not([class*='size-'])]:size-4", className)} + {...props} + > + {children} + <ChevronDownIcon className='text-muted-foreground pointer-events-none size-4' /> + </ComboboxPrimitive.Trigger> +); -function ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear.Props) { - return ( - <ComboboxPrimitive.Clear - data-slot='combobox-clear' - className={cn(className)} - {...props} - render={ - <InputGroupButton variant='ghost' size='icon-xs'> - <XIcon className='pointer-events-none' /> - </InputGroupButton> - } - /> - ); -} +const ComboboxClear = ({ + className, + ...props +}: ComboboxPrimitive.Clear.Props) => ( + <ComboboxPrimitive.Clear + data-slot='combobox-clear' + className={cn(className)} + {...props} + render={ + <InputGroupButton variant='ghost' size='icon-xs'> + <XIcon className='pointer-events-none' /> + </InputGroupButton> + } + /> +); -function ComboboxInput({ +const ComboboxInput = ({ className, children, disabled = false, @@ -61,32 +60,30 @@ function ComboboxInput({ }: ComboboxPrimitive.Input.Props & { showTrigger?: boolean; showClear?: boolean; -}) { - return ( - <InputGroup className={cn('w-auto', className)}> - <ComboboxPrimitive.Input - render={<InputGroupInput disabled={disabled} />} - {...props} - /> - <InputGroupAddon align='inline-end'> - {showTrigger && ( - <InputGroupButton - size='icon-xs' - variant='ghost' - render={<ComboboxTrigger />} - data-slot='input-group-button' - className='group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent' - disabled={disabled} - /> - )} - {showClear && <ComboboxClear disabled={disabled} />} - </InputGroupAddon> - {children} - </InputGroup> - ); -} +}) => ( + <InputGroup className={cn('w-auto', className)}> + <ComboboxPrimitive.Input + render={<InputGroupInput disabled={disabled} />} + {...props} + /> + <InputGroupAddon align='inline-end'> + {showTrigger && ( + <InputGroupButton + size='icon-xs' + variant='ghost' + render={<ComboboxTrigger />} + data-slot='input-group-button' + className='group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent' + disabled={disabled} + /> + )} + {showClear && <ComboboxClear disabled={disabled} />} + </InputGroupAddon> + {children} + </InputGroup> +); -function ComboboxContent({ +const ComboboxContent = ({ className, side = 'bottom', sideOffset = 6, @@ -98,191 +95,178 @@ function ComboboxContent({ Pick< ComboboxPrimitive.Positioner.Props, 'side' | 'align' | 'sideOffset' | 'alignOffset' | 'anchor' - >) { - return ( - <ComboboxPrimitive.Portal> - <ComboboxPrimitive.Positioner - side={side} - sideOffset={sideOffset} - align={align} - alignOffset={alignOffset} - anchor={anchor} - className='isolate z-50' - > - <ComboboxPrimitive.Popup - data-slot='combobox-content' - data-chips={!!anchor} - className={cn( - 'bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:border-input/30 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-lg shadow-md ring-1 duration-100 data-[chips=true]:min-w-(--anchor-width) *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:shadow-none', - className, - )} - {...props} - /> - </ComboboxPrimitive.Positioner> - </ComboboxPrimitive.Portal> - ); -} + >) => ( + <ComboboxPrimitive.Portal> + <ComboboxPrimitive.Positioner + side={side} + sideOffset={sideOffset} + align={align} + alignOffset={alignOffset} + anchor={anchor} + className='isolate z-50' + > + <ComboboxPrimitive.Popup + data-slot='combobox-content' + data-chips={!!anchor} + className={cn( + 'bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:border-input/30 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-lg shadow-md ring-1 duration-100 data-[chips=true]:min-w-(--anchor-width) *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:shadow-none', + className, + )} + {...props} + /> + </ComboboxPrimitive.Positioner> + </ComboboxPrimitive.Portal> +); -function ComboboxList({ className, ...props }: ComboboxPrimitive.List.Props) { - return ( - <ComboboxPrimitive.List - data-slot='combobox-list' - className={cn( - 'no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0', - className, - )} - {...props} - /> - ); -} +const ComboboxList = ({ + className, + ...props +}: ComboboxPrimitive.List.Props) => ( + <ComboboxPrimitive.List + data-slot='combobox-list' + className={cn( + 'no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0', + className, + )} + {...props} + /> +); -function ComboboxItem({ +const ComboboxItem = ({ className, children, ...props -}: ComboboxPrimitive.Item.Props) { - return ( - <ComboboxPrimitive.Item - data-slot='combobox-item' - className={cn( - "data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", - className, - )} - {...props} - > - {children} - <ComboboxPrimitive.ItemIndicator - render={ - <span className='pointer-events-none absolute right-2 flex size-4 items-center justify-center'> - <CheckIcon className='pointer-events-none' /> - </span> - } - /> - </ComboboxPrimitive.Item> - ); -} - -function ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group.Props) { - return ( - <ComboboxPrimitive.Group - data-slot='combobox-group' - className={cn(className)} - {...props} +}: ComboboxPrimitive.Item.Props) => ( + <ComboboxPrimitive.Item + data-slot='combobox-item' + className={cn( + "data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", + className, + )} + {...props} + > + {children} + <ComboboxPrimitive.ItemIndicator + render={ + <span className='pointer-events-none absolute right-2 flex size-4 items-center justify-center'> + <CheckIcon className='pointer-events-none' /> + </span> + } /> - ); -} + </ComboboxPrimitive.Item> +); -function ComboboxLabel({ +const ComboboxGroup = ({ className, ...props -}: ComboboxPrimitive.GroupLabel.Props) { - return ( - <ComboboxPrimitive.GroupLabel - data-slot='combobox-label' - className={cn('text-muted-foreground px-2 py-1.5 text-xs', className)} - {...props} - /> - ); -} +}: ComboboxPrimitive.Group.Props) => ( + <ComboboxPrimitive.Group + data-slot='combobox-group' + className={cn(className)} + {...props} + /> +); -function ComboboxCollection({ ...props }: ComboboxPrimitive.Collection.Props) { - return ( - <ComboboxPrimitive.Collection data-slot='combobox-collection' {...props} /> - ); -} - -function ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty.Props) { - return ( - <ComboboxPrimitive.Empty - data-slot='combobox-empty' - className={cn( - 'text-muted-foreground hidden w-full justify-center py-2 text-center text-sm group-data-empty/combobox-content:flex', - className, - )} - {...props} - /> - ); -} - -function ComboboxSeparator({ +const ComboboxLabel = ({ className, ...props -}: ComboboxPrimitive.Separator.Props) { - return ( - <ComboboxPrimitive.Separator - data-slot='combobox-separator' - className={cn('bg-border -mx-1 my-1 h-px', className)} - {...props} - /> - ); -} +}: ComboboxPrimitive.GroupLabel.Props) => ( + <ComboboxPrimitive.GroupLabel + data-slot='combobox-label' + className={cn('text-muted-foreground px-2 py-1.5 text-xs', className)} + {...props} + /> +); -function ComboboxChips({ +const ComboboxCollection = ({ + ...props +}: ComboboxPrimitive.Collection.Props) => ( + <ComboboxPrimitive.Collection data-slot='combobox-collection' {...props} /> +); + +const ComboboxEmpty = ({ + className, + ...props +}: ComboboxPrimitive.Empty.Props) => ( + <ComboboxPrimitive.Empty + data-slot='combobox-empty' + className={cn( + 'text-muted-foreground hidden w-full justify-center py-2 text-center text-sm group-data-empty/combobox-content:flex', + className, + )} + {...props} + /> +); + +const ComboboxSeparator = ({ + className, + ...props +}: ComboboxPrimitive.Separator.Props) => ( + <ComboboxPrimitive.Separator + data-slot='combobox-separator' + className={cn('bg-border -mx-1 my-1 h-px', className)} + {...props} + /> +); + +const ComboboxChips = ({ className, ...props }: React.ComponentPropsWithRef<typeof ComboboxPrimitive.Chips> & - ComboboxPrimitive.Chips.Props) { - return ( - <ComboboxPrimitive.Chips - data-slot='combobox-chips' - className={cn( - 'dark:bg-input/30 border-input focus-within:border-ring focus-within:ring-ring/50 has-aria-invalid:ring-destructive/20 dark:has-aria-invalid:ring-destructive/40 has-aria-invalid:border-destructive dark:has-aria-invalid:border-destructive/50 flex min-h-8 flex-wrap items-center gap-1 rounded-lg border bg-transparent bg-clip-padding px-2.5 py-1 text-sm transition-colors focus-within:ring-3 has-aria-invalid:ring-3 has-data-[slot=combobox-chip]:px-1', - className, - )} - {...props} - /> - ); -} + ComboboxPrimitive.Chips.Props) => ( + <ComboboxPrimitive.Chips + data-slot='combobox-chips' + className={cn( + 'dark:bg-input/30 border-input focus-within:border-ring focus-within:ring-ring/50 has-aria-invalid:ring-destructive/20 dark:has-aria-invalid:ring-destructive/40 has-aria-invalid:border-destructive dark:has-aria-invalid:border-destructive/50 flex min-h-8 flex-wrap items-center gap-1 rounded-lg border bg-transparent bg-clip-padding px-2.5 py-1 text-sm transition-colors focus-within:ring-3 has-aria-invalid:ring-3 has-data-[slot=combobox-chip]:px-1', + className, + )} + {...props} + /> +); -function ComboboxChip({ +const ComboboxChip = ({ className, children, showRemove = true, ...props }: ComboboxPrimitive.Chip.Props & { showRemove?: boolean; -}) { - return ( - <ComboboxPrimitive.Chip - data-slot='combobox-chip' - className={cn( - 'bg-muted text-foreground flex h-[calc(--spacing(5.25))] w-fit items-center justify-center gap-1 rounded-sm px-1.5 text-xs font-medium whitespace-nowrap has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0', - className, - )} - {...props} - > - {children} - {showRemove && ( - <ComboboxPrimitive.ChipRemove - className='-ml-1 opacity-50 hover:opacity-100' - data-slot='combobox-chip-remove' - render={ - <Button variant='ghost' size='icon-xs'> - <XIcon className='pointer-events-none' /> - </Button> - } - /> - )} - </ComboboxPrimitive.Chip> - ); -} +}) => ( + <ComboboxPrimitive.Chip + data-slot='combobox-chip' + className={cn( + 'bg-muted text-foreground flex h-[calc(--spacing(5.25))] w-fit items-center justify-center gap-1 rounded-sm px-1.5 text-xs font-medium whitespace-nowrap has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0', + className, + )} + {...props} + > + {children} + {showRemove && ( + <ComboboxPrimitive.ChipRemove + className='-ml-1 opacity-50 hover:opacity-100' + data-slot='combobox-chip-remove' + render={ + <Button variant='ghost' size='icon-xs'> + <XIcon className='pointer-events-none' /> + </Button> + } + /> + )} + </ComboboxPrimitive.Chip> +); -function ComboboxChipsInput({ +const ComboboxChipsInput = ({ className, ...props -}: ComboboxPrimitive.Input.Props) { - return ( - <ComboboxPrimitive.Input - data-slot='combobox-chip-input' - className={cn('min-w-16 flex-1 outline-none', className)} - {...props} - /> - ); -} +}: ComboboxPrimitive.Input.Props) => ( + <ComboboxPrimitive.Input + data-slot='combobox-chip-input' + className={cn('min-w-16 flex-1 outline-none', className)} + {...props} + /> +); -function useComboboxAnchor() { - return React.useRef<HTMLDivElement | null>(null); -} +const useComboboxAnchor = () => React.useRef<HTMLDivElement | null>(null); export { Combobox, diff --git a/packages/ui/src/command.tsx b/packages/ui/src/command.tsx index 2d10707..a709de7 100644 --- a/packages/ui/src/command.tsx +++ b/packages/ui/src/command.tsx @@ -15,23 +15,21 @@ import { InputGroupAddon, } from '@gib/ui'; -function Command({ +const Command = ({ className, ...props -}: React.ComponentProps<typeof CommandPrimitive>) { - return ( - <CommandPrimitive - data-slot='command' - className={cn( - 'bg-popover text-popover-foreground flex size-full flex-col overflow-hidden rounded-xl! p-1', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<typeof CommandPrimitive>) => ( + <CommandPrimitive + data-slot='command' + className={cn( + 'bg-popover text-popover-foreground flex size-full flex-col overflow-hidden rounded-xl! p-1', + className, + )} + {...props} + /> +); -function CommandDialog({ +const CommandDialog = ({ title = 'Command Palette', description = 'Search for a command to run...', children, @@ -43,142 +41,126 @@ function CommandDialog({ description?: string; className?: string; showCloseButton?: boolean; -}) { - return ( - <Dialog {...props}> - <DialogHeader className='sr-only'> - <DialogTitle>{title}</DialogTitle> - <DialogDescription>{description}</DialogDescription> - </DialogHeader> - <DialogContent +}) => ( + <Dialog {...props}> + <DialogHeader className='sr-only'> + <DialogTitle>{title}</DialogTitle> + <DialogDescription>{description}</DialogDescription> + </DialogHeader> + <DialogContent + className={cn( + 'top-1/3 translate-y-0 overflow-hidden rounded-xl! p-0', + className, + )} + showCloseButton={showCloseButton} + > + {children} + </DialogContent> + </Dialog> +); + +const CommandInput = ({ + className, + ...props +}: React.ComponentProps<typeof CommandPrimitive.Input>) => ( + <div data-slot='command-input-wrapper' className='p-1 pb-0'> + <InputGroup className='bg-input/30 border-input/30 h-8! rounded-lg! shadow-none! *:data-[slot=input-group-addon]:pl-2!'> + <CommandPrimitive.Input + data-slot='command-input' className={cn( - 'top-1/3 translate-y-0 overflow-hidden rounded-xl! p-0', + 'w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50', className, )} - showCloseButton={showCloseButton} - > - {children} - </DialogContent> - </Dialog> - ); -} + {...props} + /> + <InputGroupAddon> + <SearchIcon className='size-4 shrink-0 opacity-50' /> + </InputGroupAddon> + </InputGroup> + </div> +); -function CommandInput({ +const CommandList = ({ className, ...props -}: React.ComponentProps<typeof CommandPrimitive.Input>) { - return ( - <div data-slot='command-input-wrapper' className='p-1 pb-0'> - <InputGroup className='bg-input/30 border-input/30 h-8! rounded-lg! shadow-none! *:data-[slot=input-group-addon]:pl-2!'> - <CommandPrimitive.Input - data-slot='command-input' - className={cn( - 'w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50', - className, - )} - {...props} - /> - <InputGroupAddon> - <SearchIcon className='size-4 shrink-0 opacity-50' /> - </InputGroupAddon> - </InputGroup> - </div> - ); -} +}: React.ComponentProps<typeof CommandPrimitive.List>) => ( + <CommandPrimitive.List + data-slot='command-list' + className={cn( + 'no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none', + className, + )} + {...props} + /> +); -function CommandList({ +const CommandEmpty = ({ className, ...props -}: React.ComponentProps<typeof CommandPrimitive.List>) { - return ( - <CommandPrimitive.List - data-slot='command-list' - className={cn( - 'no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<typeof CommandPrimitive.Empty>) => ( + <CommandPrimitive.Empty + data-slot='command-empty' + className={cn('py-6 text-center text-sm', className)} + {...props} + /> +); -function CommandEmpty({ +const CommandGroup = ({ className, ...props -}: React.ComponentProps<typeof CommandPrimitive.Empty>) { - return ( - <CommandPrimitive.Empty - data-slot='command-empty' - className={cn('py-6 text-center text-sm', className)} - {...props} - /> - ); -} +}: React.ComponentProps<typeof CommandPrimitive.Group>) => ( + <CommandPrimitive.Group + data-slot='command-group' + className={cn( + 'text-foreground **:[[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium', + className, + )} + {...props} + /> +); -function CommandGroup({ +const CommandSeparator = ({ className, ...props -}: React.ComponentProps<typeof CommandPrimitive.Group>) { - return ( - <CommandPrimitive.Group - data-slot='command-group' - className={cn( - 'text-foreground **:[[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<typeof CommandPrimitive.Separator>) => ( + <CommandPrimitive.Separator + data-slot='command-separator' + className={cn('bg-border -mx-1 h-px', className)} + {...props} + /> +); -function CommandSeparator({ - className, - ...props -}: React.ComponentProps<typeof CommandPrimitive.Separator>) { - return ( - <CommandPrimitive.Separator - data-slot='command-separator' - className={cn('bg-border -mx-1 h-px', className)} - {...props} - /> - ); -} - -function CommandItem({ +const CommandItem = ({ className, children, ...props -}: React.ComponentProps<typeof CommandPrimitive.Item>) { - return ( - <CommandPrimitive.Item - data-slot='command-item' - className={cn( - "data-selected:bg-muted data-selected:text-foreground data-selected:*:[svg]:text-foreground group/command-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none in-data-[slot=dialog-content]:rounded-lg! data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", - className, - )} - {...props} - > - {children} - <CheckIcon className='ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100' /> - </CommandPrimitive.Item> - ); -} +}: React.ComponentProps<typeof CommandPrimitive.Item>) => ( + <CommandPrimitive.Item + data-slot='command-item' + className={cn( + "data-selected:bg-muted data-selected:text-foreground data-selected:*:[svg]:text-foreground group/command-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none in-data-[slot=dialog-content]:rounded-lg! data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", + className, + )} + {...props} + > + {children} + <CheckIcon className='ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100' /> + </CommandPrimitive.Item> +); -function CommandShortcut({ +const CommandShortcut = ({ className, ...props -}: React.ComponentProps<'span'>) { - return ( - <span - data-slot='command-shortcut' - className={cn( - 'text-muted-foreground group-data-selected/command-item:text-foreground ml-auto text-xs tracking-widest', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<'span'>) => ( + <span + data-slot='command-shortcut' + className={cn( + 'text-muted-foreground group-data-selected/command-item:text-foreground ml-auto text-xs tracking-widest', + className, + )} + {...props} + /> +); export { Command, diff --git a/packages/ui/src/context-menu.tsx b/packages/ui/src/context-menu.tsx index d13d702..0c41bb8 100644 --- a/packages/ui/src/context-menu.tsx +++ b/packages/ui/src/context-menu.tsx @@ -6,79 +6,69 @@ import { ContextMenu as ContextMenuPrimitive } from 'radix-ui'; import { cn } from '@gib/ui'; -function ContextMenu({ +const ContextMenu = ({ ...props -}: React.ComponentProps<typeof ContextMenuPrimitive.Root>) { - return <ContextMenuPrimitive.Root data-slot='context-menu' {...props} />; -} +}: React.ComponentProps<typeof ContextMenuPrimitive.Root>) => ( + <ContextMenuPrimitive.Root data-slot='context-menu' {...props} /> +); -function ContextMenuTrigger({ +const ContextMenuTrigger = ({ className, ...props -}: React.ComponentProps<typeof ContextMenuPrimitive.Trigger>) { - return ( - <ContextMenuPrimitive.Trigger - data-slot='context-menu-trigger' - className={cn('select-none', className)} - {...props} - /> - ); -} +}: React.ComponentProps<typeof ContextMenuPrimitive.Trigger>) => ( + <ContextMenuPrimitive.Trigger + data-slot='context-menu-trigger' + className={cn('select-none', className)} + {...props} + /> +); -function ContextMenuGroup({ +const ContextMenuGroup = ({ ...props -}: React.ComponentProps<typeof ContextMenuPrimitive.Group>) { - return ( - <ContextMenuPrimitive.Group data-slot='context-menu-group' {...props} /> - ); -} +}: React.ComponentProps<typeof ContextMenuPrimitive.Group>) => ( + <ContextMenuPrimitive.Group data-slot='context-menu-group' {...props} /> +); -function ContextMenuPortal({ +const ContextMenuPortal = ({ ...props -}: React.ComponentProps<typeof ContextMenuPrimitive.Portal>) { - return ( - <ContextMenuPrimitive.Portal data-slot='context-menu-portal' {...props} /> - ); -} +}: React.ComponentProps<typeof ContextMenuPrimitive.Portal>) => ( + <ContextMenuPrimitive.Portal data-slot='context-menu-portal' {...props} /> +); -function ContextMenuSub({ +const ContextMenuSub = ({ ...props -}: React.ComponentProps<typeof ContextMenuPrimitive.Sub>) { - return <ContextMenuPrimitive.Sub data-slot='context-menu-sub' {...props} />; -} +}: React.ComponentProps<typeof ContextMenuPrimitive.Sub>) => ( + <ContextMenuPrimitive.Sub data-slot='context-menu-sub' {...props} /> +); -function ContextMenuRadioGroup({ +const ContextMenuRadioGroup = ({ ...props -}: React.ComponentProps<typeof ContextMenuPrimitive.RadioGroup>) { - return ( - <ContextMenuPrimitive.RadioGroup - data-slot='context-menu-radio-group' - {...props} - /> - ); -} +}: React.ComponentProps<typeof ContextMenuPrimitive.RadioGroup>) => ( + <ContextMenuPrimitive.RadioGroup + data-slot='context-menu-radio-group' + {...props} + /> +); -function ContextMenuContent({ +const ContextMenuContent = ({ className, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Content> & { side?: 'top' | 'right' | 'bottom' | 'left'; -}) { - return ( - <ContextMenuPrimitive.Portal> - <ContextMenuPrimitive.Content - data-slot='context-menu-content' - className={cn( - 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground z-50 max-h-(--radix-context-menu-content-available-height) min-w-36 origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg p-1 shadow-md ring-1 duration-100', - className, - )} - {...props} - /> - </ContextMenuPrimitive.Portal> - ); -} +}) => ( + <ContextMenuPrimitive.Portal> + <ContextMenuPrimitive.Content + data-slot='context-menu-content' + className={cn( + 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground z-50 max-h-(--radix-context-menu-content-available-height) min-w-36 origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg p-1 shadow-md ring-1 duration-100', + className, + )} + {...props} + /> + </ContextMenuPrimitive.Portal> +); -function ContextMenuItem({ +const ContextMenuItem = ({ className, inset, variant = 'default', @@ -86,62 +76,56 @@ function ContextMenuItem({ }: React.ComponentProps<typeof ContextMenuPrimitive.Item> & { inset?: boolean; variant?: 'default' | 'destructive'; -}) { - return ( - <ContextMenuPrimitive.Item - data-slot='context-menu-item' - data-inset={inset} - data-variant={variant} - className={cn( - "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive focus:*:[svg]:text-accent-foreground group/context-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", - className, - )} - {...props} - /> - ); -} +}) => ( + <ContextMenuPrimitive.Item + data-slot='context-menu-item' + data-inset={inset} + data-variant={variant} + className={cn( + "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive focus:*:[svg]:text-accent-foreground group/context-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", + className, + )} + {...props} + /> +); -function ContextMenuSubTrigger({ +const ContextMenuSubTrigger = ({ className, inset, children, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.SubTrigger> & { inset?: boolean; -}) { - return ( - <ContextMenuPrimitive.SubTrigger - data-slot='context-menu-sub-trigger' - data-inset={inset} - className={cn( - "focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", - className, - )} - {...props} - > - {children} - <ChevronRightIcon className='cn-rtl-flip ml-auto' /> - </ContextMenuPrimitive.SubTrigger> - ); -} +}) => ( + <ContextMenuPrimitive.SubTrigger + data-slot='context-menu-sub-trigger' + data-inset={inset} + className={cn( + "focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", + className, + )} + {...props} + > + {children} + <ChevronRightIcon className='cn-rtl-flip ml-auto' /> + </ContextMenuPrimitive.SubTrigger> +); -function ContextMenuSubContent({ +const ContextMenuSubContent = ({ className, ...props -}: React.ComponentProps<typeof ContextMenuPrimitive.SubContent>) { - return ( - <ContextMenuPrimitive.SubContent - data-slot='context-menu-sub-content' - className={cn( - 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 bg-popover text-popover-foreground z-50 min-w-32 origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-lg border p-1 shadow-lg duration-100', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<typeof ContextMenuPrimitive.SubContent>) => ( + <ContextMenuPrimitive.SubContent + data-slot='context-menu-sub-content' + className={cn( + 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 bg-popover text-popover-foreground z-50 min-w-32 origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-lg border p-1 shadow-lg duration-100', + className, + )} + {...props} + /> +); -function ContextMenuCheckboxItem({ +const ContextMenuCheckboxItem = ({ className, children, checked, @@ -149,104 +133,94 @@ function ContextMenuCheckboxItem({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.CheckboxItem> & { inset?: boolean; -}) { - return ( - <ContextMenuPrimitive.CheckboxItem - data-slot='context-menu-checkbox-item' - data-inset={inset} - className={cn( - "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", - className, - )} - checked={checked} - {...props} - > - <span className='pointer-events-none absolute right-2'> - <ContextMenuPrimitive.ItemIndicator> - <CheckIcon /> - </ContextMenuPrimitive.ItemIndicator> - </span> - {children} - </ContextMenuPrimitive.CheckboxItem> - ); -} +}) => ( + <ContextMenuPrimitive.CheckboxItem + data-slot='context-menu-checkbox-item' + data-inset={inset} + className={cn( + "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", + className, + )} + checked={checked} + {...props} + > + <span className='pointer-events-none absolute right-2'> + <ContextMenuPrimitive.ItemIndicator> + <CheckIcon /> + </ContextMenuPrimitive.ItemIndicator> + </span> + {children} + </ContextMenuPrimitive.CheckboxItem> +); -function ContextMenuRadioItem({ +const ContextMenuRadioItem = ({ className, children, inset, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.RadioItem> & { inset?: boolean; -}) { - return ( - <ContextMenuPrimitive.RadioItem - data-slot='context-menu-radio-item' - data-inset={inset} - className={cn( - "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", - className, - )} - {...props} - > - <span className='pointer-events-none absolute right-2'> - <ContextMenuPrimitive.ItemIndicator> - <CheckIcon /> - </ContextMenuPrimitive.ItemIndicator> - </span> - {children} - </ContextMenuPrimitive.RadioItem> - ); -} +}) => ( + <ContextMenuPrimitive.RadioItem + data-slot='context-menu-radio-item' + data-inset={inset} + className={cn( + "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", + className, + )} + {...props} + > + <span className='pointer-events-none absolute right-2'> + <ContextMenuPrimitive.ItemIndicator> + <CheckIcon /> + </ContextMenuPrimitive.ItemIndicator> + </span> + {children} + </ContextMenuPrimitive.RadioItem> +); -function ContextMenuLabel({ +const ContextMenuLabel = ({ className, inset, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Label> & { inset?: boolean; -}) { - return ( - <ContextMenuPrimitive.Label - data-slot='context-menu-label' - data-inset={inset} - className={cn( - 'text-muted-foreground px-1.5 py-1 text-xs font-medium data-inset:pl-7', - className, - )} - {...props} - /> - ); -} +}) => ( + <ContextMenuPrimitive.Label + data-slot='context-menu-label' + data-inset={inset} + className={cn( + 'text-muted-foreground px-1.5 py-1 text-xs font-medium data-inset:pl-7', + className, + )} + {...props} + /> +); -function ContextMenuSeparator({ +const ContextMenuSeparator = ({ className, ...props -}: React.ComponentProps<typeof ContextMenuPrimitive.Separator>) { - return ( - <ContextMenuPrimitive.Separator - data-slot='context-menu-separator' - className={cn('bg-border -mx-1 my-1 h-px', className)} - {...props} - /> - ); -} +}: React.ComponentProps<typeof ContextMenuPrimitive.Separator>) => ( + <ContextMenuPrimitive.Separator + data-slot='context-menu-separator' + className={cn('bg-border -mx-1 my-1 h-px', className)} + {...props} + /> +); -function ContextMenuShortcut({ +const ContextMenuShortcut = ({ className, ...props -}: React.ComponentProps<'span'>) { - return ( - <span - data-slot='context-menu-shortcut' - className={cn( - 'text-muted-foreground group-focus/context-menu-item:text-accent-foreground ml-auto text-xs tracking-widest', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<'span'>) => ( + <span + data-slot='context-menu-shortcut' + className={cn( + 'text-muted-foreground group-focus/context-menu-item:text-accent-foreground ml-auto text-xs tracking-widest', + className, + )} + {...props} + /> +); export { ContextMenu, diff --git a/packages/ui/src/dialog.tsx b/packages/ui/src/dialog.tsx index f656b62..fbde0bc 100644 --- a/packages/ui/src/dialog.tsx +++ b/packages/ui/src/dialog.tsx @@ -6,148 +6,136 @@ import { Dialog as DialogPrimitive } from 'radix-ui'; import { Button, cn } from '@gib/ui'; -function Dialog({ +const Dialog = ({ ...props -}: React.ComponentProps<typeof DialogPrimitive.Root>) { - return <DialogPrimitive.Root data-slot='dialog' {...props} />; -} +}: React.ComponentProps<typeof DialogPrimitive.Root>) => ( + <DialogPrimitive.Root data-slot='dialog' {...props} /> +); -function DialogTrigger({ +const DialogTrigger = ({ ...props -}: React.ComponentProps<typeof DialogPrimitive.Trigger>) { - return <DialogPrimitive.Trigger data-slot='dialog-trigger' {...props} />; -} +}: React.ComponentProps<typeof DialogPrimitive.Trigger>) => ( + <DialogPrimitive.Trigger data-slot='dialog-trigger' {...props} /> +); -function DialogPortal({ +const DialogPortal = ({ ...props -}: React.ComponentProps<typeof DialogPrimitive.Portal>) { - return <DialogPrimitive.Portal data-slot='dialog-portal' {...props} />; -} +}: React.ComponentProps<typeof DialogPrimitive.Portal>) => ( + <DialogPrimitive.Portal data-slot='dialog-portal' {...props} /> +); -function DialogClose({ +const DialogClose = ({ ...props -}: React.ComponentProps<typeof DialogPrimitive.Close>) { - return <DialogPrimitive.Close data-slot='dialog-close' {...props} />; -} +}: React.ComponentProps<typeof DialogPrimitive.Close>) => ( + <DialogPrimitive.Close data-slot='dialog-close' {...props} /> +); -function DialogOverlay({ +const DialogOverlay = ({ className, ...props -}: React.ComponentProps<typeof DialogPrimitive.Overlay>) { - return ( - <DialogPrimitive.Overlay - data-slot='dialog-overlay' - className={cn( - 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<typeof DialogPrimitive.Overlay>) => ( + <DialogPrimitive.Overlay + data-slot='dialog-overlay' + className={cn( + 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs', + className, + )} + {...props} + /> +); -function DialogContent({ +const DialogContent = ({ className, children, showCloseButton = true, ...props }: React.ComponentProps<typeof DialogPrimitive.Content> & { showCloseButton?: boolean; -}) { - return ( - <DialogPortal> - <DialogOverlay /> - <DialogPrimitive.Content - data-slot='dialog-content' - className={cn( - 'bg-background data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 ring-foreground/10 fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl p-4 text-sm ring-1 duration-100 outline-none sm:max-w-sm', - className, - )} - {...props} - > - {children} - {showCloseButton && ( - <DialogPrimitive.Close data-slot='dialog-close' asChild> - <Button - variant='ghost' - className='absolute top-2 right-2' - size='icon-sm' - > - <XIcon /> - <span className='sr-only'>Close</span> - </Button> - </DialogPrimitive.Close> - )} - </DialogPrimitive.Content> - </DialogPortal> - ); -} - -function DialogHeader({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='dialog-header' - className={cn('flex flex-col gap-2', className)} - {...props} - /> - ); -} - -function DialogFooter({ - className, - showCloseButton = false, - children, - ...props -}: React.ComponentProps<'div'> & { - showCloseButton?: boolean; -}) { - return ( - <div - data-slot='dialog-footer' +}) => ( + <DialogPortal> + <DialogOverlay /> + <DialogPrimitive.Content + data-slot='dialog-content' className={cn( - 'bg-muted/50 -mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t p-4 sm:flex-row sm:justify-end', + 'bg-background data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 ring-foreground/10 fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl p-4 text-sm ring-1 duration-100 outline-none sm:max-w-sm', className, )} {...props} > {children} {showCloseButton && ( - <DialogPrimitive.Close asChild> - <Button variant='outline'>Close</Button> + <DialogPrimitive.Close data-slot='dialog-close' asChild> + <Button + variant='ghost' + className='absolute top-2 right-2' + size='icon-sm' + > + <XIcon /> + <span className='sr-only'>Close</span> + </Button> </DialogPrimitive.Close> )} - </div> - ); -} + </DialogPrimitive.Content> + </DialogPortal> +); -function DialogTitle({ +const DialogHeader = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='dialog-header' + className={cn('flex flex-col gap-2', className)} + {...props} + /> +); + +const DialogFooter = ({ + className, + showCloseButton = false, + children, + ...props +}: React.ComponentProps<'div'> & { + showCloseButton?: boolean; +}) => ( + <div + data-slot='dialog-footer' + className={cn( + 'bg-muted/50 -mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t p-4 sm:flex-row sm:justify-end', + className, + )} + {...props} + > + {children} + {showCloseButton && ( + <DialogPrimitive.Close asChild> + <Button variant='outline'>Close</Button> + </DialogPrimitive.Close> + )} + </div> +); + +const DialogTitle = ({ className, ...props -}: React.ComponentProps<typeof DialogPrimitive.Title>) { - return ( - <DialogPrimitive.Title - data-slot='dialog-title' - className={cn('text-base leading-none font-medium', className)} - {...props} - /> - ); -} +}: React.ComponentProps<typeof DialogPrimitive.Title>) => ( + <DialogPrimitive.Title + data-slot='dialog-title' + className={cn('text-base leading-none font-medium', className)} + {...props} + /> +); -function DialogDescription({ +const DialogDescription = ({ className, ...props -}: React.ComponentProps<typeof DialogPrimitive.Description>) { - return ( - <DialogPrimitive.Description - data-slot='dialog-description' - className={cn( - 'text-muted-foreground *:[a]:hover:text-foreground text-sm *:[a]:underline *:[a]:underline-offset-3', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<typeof DialogPrimitive.Description>) => ( + <DialogPrimitive.Description + data-slot='dialog-description' + className={cn( + 'text-muted-foreground *:[a]:hover:text-foreground text-sm *:[a]:underline *:[a]:underline-offset-3', + className, + )} + {...props} + /> +); export { Dialog, diff --git a/packages/ui/src/drawer.tsx b/packages/ui/src/drawer.tsx index 7e8ad5e..53b1fd4 100644 --- a/packages/ui/src/drawer.tsx +++ b/packages/ui/src/drawer.tsx @@ -5,117 +5,105 @@ import { Drawer as DrawerPrimitive } from 'vaul'; import { cn } from '@gib/ui'; -function Drawer({ +const Drawer = ({ ...props -}: React.ComponentProps<typeof DrawerPrimitive.Root>) { - return <DrawerPrimitive.Root data-slot='drawer' {...props} />; -} +}: React.ComponentProps<typeof DrawerPrimitive.Root>) => ( + <DrawerPrimitive.Root data-slot='drawer' {...props} /> +); -function DrawerTrigger({ +const DrawerTrigger = ({ ...props -}: React.ComponentProps<typeof DrawerPrimitive.Trigger>) { - return <DrawerPrimitive.Trigger data-slot='drawer-trigger' {...props} />; -} +}: React.ComponentProps<typeof DrawerPrimitive.Trigger>) => ( + <DrawerPrimitive.Trigger data-slot='drawer-trigger' {...props} /> +); -function DrawerPortal({ +const DrawerPortal = ({ ...props -}: React.ComponentProps<typeof DrawerPrimitive.Portal>) { - return <DrawerPrimitive.Portal data-slot='drawer-portal' {...props} />; -} +}: React.ComponentProps<typeof DrawerPrimitive.Portal>) => ( + <DrawerPrimitive.Portal data-slot='drawer-portal' {...props} /> +); -function DrawerClose({ +const DrawerClose = ({ ...props -}: React.ComponentProps<typeof DrawerPrimitive.Close>) { - return <DrawerPrimitive.Close data-slot='drawer-close' {...props} />; -} +}: React.ComponentProps<typeof DrawerPrimitive.Close>) => ( + <DrawerPrimitive.Close data-slot='drawer-close' {...props} /> +); -function DrawerOverlay({ +const DrawerOverlay = ({ className, ...props -}: React.ComponentProps<typeof DrawerPrimitive.Overlay>) { - return ( - <DrawerPrimitive.Overlay - data-slot='drawer-overlay' - className={cn( - 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 fixed inset-0 z-50 bg-black/10 supports-backdrop-filter:backdrop-blur-xs', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<typeof DrawerPrimitive.Overlay>) => ( + <DrawerPrimitive.Overlay + data-slot='drawer-overlay' + className={cn( + 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 fixed inset-0 z-50 bg-black/10 supports-backdrop-filter:backdrop-blur-xs', + className, + )} + {...props} + /> +); -function DrawerContent({ +const DrawerContent = ({ className, children, ...props -}: React.ComponentProps<typeof DrawerPrimitive.Content>) { - return ( - <DrawerPortal data-slot='drawer-portal'> - <DrawerOverlay /> - <DrawerPrimitive.Content - data-slot='drawer-content' - className={cn( - 'bg-background group/drawer-content fixed z-50 flex h-auto flex-col text-sm data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-xl data-[vaul-drawer-direction=bottom]:border-t data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:rounded-r-xl data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:rounded-l-xl data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-xl data-[vaul-drawer-direction=top]:border-b data-[vaul-drawer-direction=left]:sm:max-w-sm data-[vaul-drawer-direction=right]:sm:max-w-sm', - className, - )} - {...props} - > - <div className='bg-muted mx-auto mt-4 hidden h-1 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block' /> - {children} - </DrawerPrimitive.Content> - </DrawerPortal> - ); -} - -function DrawerHeader({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='drawer-header' +}: React.ComponentProps<typeof DrawerPrimitive.Content>) => ( + <DrawerPortal data-slot='drawer-portal'> + <DrawerOverlay /> + <DrawerPrimitive.Content + data-slot='drawer-content' className={cn( - 'flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-0.5 md:text-left', + 'bg-background group/drawer-content fixed z-50 flex h-auto flex-col text-sm data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-xl data-[vaul-drawer-direction=bottom]:border-t data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:rounded-r-xl data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:rounded-l-xl data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-xl data-[vaul-drawer-direction=top]:border-b data-[vaul-drawer-direction=left]:sm:max-w-sm data-[vaul-drawer-direction=right]:sm:max-w-sm', className, )} {...props} - /> - ); -} + > + <div className='bg-muted mx-auto mt-4 hidden h-1 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block' /> + {children} + </DrawerPrimitive.Content> + </DrawerPortal> +); -function DrawerFooter({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='drawer-footer' - className={cn('mt-auto flex flex-col gap-2 p-4', className)} - {...props} - /> - ); -} +const DrawerHeader = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='drawer-header' + className={cn( + 'flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-0.5 md:text-left', + className, + )} + {...props} + /> +); -function DrawerTitle({ +const DrawerFooter = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='drawer-footer' + className={cn('mt-auto flex flex-col gap-2 p-4', className)} + {...props} + /> +); + +const DrawerTitle = ({ className, ...props -}: React.ComponentProps<typeof DrawerPrimitive.Title>) { - return ( - <DrawerPrimitive.Title - data-slot='drawer-title' - className={cn('text-foreground text-base font-medium', className)} - {...props} - /> - ); -} +}: React.ComponentProps<typeof DrawerPrimitive.Title>) => ( + <DrawerPrimitive.Title + data-slot='drawer-title' + className={cn('text-foreground text-base font-medium', className)} + {...props} + /> +); -function DrawerDescription({ +const DrawerDescription = ({ className, ...props -}: React.ComponentProps<typeof DrawerPrimitive.Description>) { - return ( - <DrawerPrimitive.Description - data-slot='drawer-description' - className={cn('text-muted-foreground text-sm', className)} - {...props} - /> - ); -} +}: React.ComponentProps<typeof DrawerPrimitive.Description>) => ( + <DrawerPrimitive.Description + data-slot='drawer-description' + className={cn('text-muted-foreground text-sm', className)} + {...props} + /> +); export { Drawer, diff --git a/packages/ui/src/dropdown-menu.tsx b/packages/ui/src/dropdown-menu.tsx index b34a1a5..37eb098 100644 --- a/packages/ui/src/dropdown-menu.tsx +++ b/packages/ui/src/dropdown-menu.tsx @@ -6,62 +6,51 @@ import { DropdownMenu as DropdownMenuPrimitive } from 'radix-ui'; import { cn } from '@gib/ui'; -function DropdownMenu({ +const DropdownMenu = ({ ...props -}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) { - return <DropdownMenuPrimitive.Root data-slot='dropdown-menu' {...props} />; -} +}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) => ( + <DropdownMenuPrimitive.Root data-slot='dropdown-menu' {...props} /> +); -function DropdownMenuPortal({ +const DropdownMenuPortal = ({ ...props -}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) { - return ( - <DropdownMenuPrimitive.Portal data-slot='dropdown-menu-portal' {...props} /> - ); -} +}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) => ( + <DropdownMenuPrimitive.Portal data-slot='dropdown-menu-portal' {...props} /> +); -function DropdownMenuTrigger({ +const DropdownMenuTrigger = ({ ...props -}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) { - return ( - <DropdownMenuPrimitive.Trigger - data-slot='dropdown-menu-trigger' - {...props} - /> - ); -} +}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) => ( + <DropdownMenuPrimitive.Trigger data-slot='dropdown-menu-trigger' {...props} /> +); -function DropdownMenuContent({ +const DropdownMenuContent = ({ className, align = 'start', sideOffset = 4, ...props -}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) { - return ( - <DropdownMenuPrimitive.Portal> - <DropdownMenuPrimitive.Content - data-slot='dropdown-menu-content' - sideOffset={sideOffset} - align={align} - className={cn( - 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground z-50 max-h-(--radix-dropdown-menu-content-available-height) w-(--radix-dropdown-menu-trigger-width) min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg p-1 shadow-md ring-1 duration-100 data-[state=closed]:overflow-hidden', - className, - )} - {...props} - /> - </DropdownMenuPrimitive.Portal> - ); -} +}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) => ( + <DropdownMenuPrimitive.Portal> + <DropdownMenuPrimitive.Content + data-slot='dropdown-menu-content' + sideOffset={sideOffset} + align={align} + className={cn( + 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground z-50 max-h-(--radix-dropdown-menu-content-available-height) w-(--radix-dropdown-menu-trigger-width) min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg p-1 shadow-md ring-1 duration-100 data-[state=closed]:overflow-hidden', + className, + )} + {...props} + /> + </DropdownMenuPrimitive.Portal> +); -function DropdownMenuGroup({ +const DropdownMenuGroup = ({ ...props -}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) { - return ( - <DropdownMenuPrimitive.Group data-slot='dropdown-menu-group' {...props} /> - ); -} +}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) => ( + <DropdownMenuPrimitive.Group data-slot='dropdown-menu-group' {...props} /> +); -function DropdownMenuItem({ +const DropdownMenuItem = ({ className, inset, variant = 'default', @@ -69,22 +58,20 @@ function DropdownMenuItem({ }: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & { inset?: boolean; variant?: 'default' | 'destructive'; -}) { - return ( - <DropdownMenuPrimitive.Item - data-slot='dropdown-menu-item' - data-inset={inset} - data-variant={variant} - className={cn( - "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive not-data-[variant=destructive]:focus:**:text-accent-foreground group/dropdown-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", - className, - )} - {...props} - /> - ); -} +}) => ( + <DropdownMenuPrimitive.Item + data-slot='dropdown-menu-item' + data-inset={inset} + data-variant={variant} + className={cn( + "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive not-data-[variant=destructive]:focus:**:text-accent-foreground group/dropdown-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", + className, + )} + {...props} + /> +); -function DropdownMenuCheckboxItem({ +const DropdownMenuCheckboxItem = ({ className, children, checked, @@ -92,167 +79,151 @@ function DropdownMenuCheckboxItem({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem> & { inset?: boolean; -}) { - return ( - <DropdownMenuPrimitive.CheckboxItem - data-slot='dropdown-menu-checkbox-item' - data-inset={inset} - className={cn( - "focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", - className, - )} - checked={checked} - {...props} +}) => ( + <DropdownMenuPrimitive.CheckboxItem + data-slot='dropdown-menu-checkbox-item' + data-inset={inset} + className={cn( + "focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", + className, + )} + checked={checked} + {...props} + > + <span + className='pointer-events-none absolute right-2 flex items-center justify-center' + data-slot='dropdown-menu-checkbox-item-indicator' > - <span - className='pointer-events-none absolute right-2 flex items-center justify-center' - data-slot='dropdown-menu-checkbox-item-indicator' - > - <DropdownMenuPrimitive.ItemIndicator> - <CheckIcon /> - </DropdownMenuPrimitive.ItemIndicator> - </span> - {children} - </DropdownMenuPrimitive.CheckboxItem> - ); -} + <DropdownMenuPrimitive.ItemIndicator> + <CheckIcon /> + </DropdownMenuPrimitive.ItemIndicator> + </span> + {children} + </DropdownMenuPrimitive.CheckboxItem> +); -function DropdownMenuRadioGroup({ +const DropdownMenuRadioGroup = ({ ...props -}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) { - return ( - <DropdownMenuPrimitive.RadioGroup - data-slot='dropdown-menu-radio-group' - {...props} - /> - ); -} +}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) => ( + <DropdownMenuPrimitive.RadioGroup + data-slot='dropdown-menu-radio-group' + {...props} + /> +); -function DropdownMenuRadioItem({ +const DropdownMenuRadioItem = ({ className, children, inset, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem> & { inset?: boolean; -}) { - return ( - <DropdownMenuPrimitive.RadioItem - data-slot='dropdown-menu-radio-item' - data-inset={inset} - className={cn( - "focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", - className, - )} - {...props} +}) => ( + <DropdownMenuPrimitive.RadioItem + data-slot='dropdown-menu-radio-item' + data-inset={inset} + className={cn( + "focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", + className, + )} + {...props} + > + <span + className='pointer-events-none absolute right-2 flex items-center justify-center' + data-slot='dropdown-menu-radio-item-indicator' > - <span - className='pointer-events-none absolute right-2 flex items-center justify-center' - data-slot='dropdown-menu-radio-item-indicator' - > - <DropdownMenuPrimitive.ItemIndicator> - <CheckIcon /> - </DropdownMenuPrimitive.ItemIndicator> - </span> - {children} - </DropdownMenuPrimitive.RadioItem> - ); -} + <DropdownMenuPrimitive.ItemIndicator> + <CheckIcon /> + </DropdownMenuPrimitive.ItemIndicator> + </span> + {children} + </DropdownMenuPrimitive.RadioItem> +); -function DropdownMenuLabel({ +const DropdownMenuLabel = ({ className, inset, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & { inset?: boolean; -}) { - return ( - <DropdownMenuPrimitive.Label - data-slot='dropdown-menu-label' - data-inset={inset} - className={cn( - 'text-muted-foreground px-1.5 py-1 text-xs font-medium data-inset:pl-7', - className, - )} - {...props} - /> - ); -} +}) => ( + <DropdownMenuPrimitive.Label + data-slot='dropdown-menu-label' + data-inset={inset} + className={cn( + 'text-muted-foreground px-1.5 py-1 text-xs font-medium data-inset:pl-7', + className, + )} + {...props} + /> +); -function DropdownMenuSeparator({ +const DropdownMenuSeparator = ({ className, ...props -}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) { - return ( - <DropdownMenuPrimitive.Separator - data-slot='dropdown-menu-separator' - className={cn('bg-border -mx-1 my-1 h-px', className)} - {...props} - /> - ); -} +}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) => ( + <DropdownMenuPrimitive.Separator + data-slot='dropdown-menu-separator' + className={cn('bg-border -mx-1 my-1 h-px', className)} + {...props} + /> +); -function DropdownMenuShortcut({ +const DropdownMenuShortcut = ({ className, ...props -}: React.ComponentProps<'span'>) { - return ( - <span - data-slot='dropdown-menu-shortcut' - className={cn( - 'text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground ml-auto text-xs tracking-widest', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<'span'>) => ( + <span + data-slot='dropdown-menu-shortcut' + className={cn( + 'text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground ml-auto text-xs tracking-widest', + className, + )} + {...props} + /> +); -function DropdownMenuSub({ +const DropdownMenuSub = ({ ...props -}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) { - return <DropdownMenuPrimitive.Sub data-slot='dropdown-menu-sub' {...props} />; -} +}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) => ( + <DropdownMenuPrimitive.Sub data-slot='dropdown-menu-sub' {...props} /> +); -function DropdownMenuSubTrigger({ +const DropdownMenuSubTrigger = ({ className, inset, children, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & { inset?: boolean; -}) { - return ( - <DropdownMenuPrimitive.SubTrigger - data-slot='dropdown-menu-sub-trigger' - data-inset={inset} - className={cn( - "focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", - className, - )} - {...props} - > - {children} - <ChevronRightIcon className='cn-rtl-flip ml-auto' /> - </DropdownMenuPrimitive.SubTrigger> - ); -} +}) => ( + <DropdownMenuPrimitive.SubTrigger + data-slot='dropdown-menu-sub-trigger' + data-inset={inset} + className={cn( + "focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", + className, + )} + {...props} + > + {children} + <ChevronRightIcon className='cn-rtl-flip ml-auto' /> + </DropdownMenuPrimitive.SubTrigger> +); -function DropdownMenuSubContent({ +const DropdownMenuSubContent = ({ className, ...props -}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) { - return ( - <DropdownMenuPrimitive.SubContent - data-slot='dropdown-menu-sub-content' - className={cn( - 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground z-50 min-w-[96px] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-lg p-1 shadow-lg ring-1 duration-100', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) => ( + <DropdownMenuPrimitive.SubContent + data-slot='dropdown-menu-sub-content' + className={cn( + 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground z-50 min-w-[96px] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-lg p-1 shadow-lg ring-1 duration-100', + className, + )} + {...props} + /> +); export { DropdownMenu, diff --git a/packages/ui/src/empty.tsx b/packages/ui/src/empty.tsx index f51784b..cf6e4c0 100644 --- a/packages/ui/src/empty.tsx +++ b/packages/ui/src/empty.tsx @@ -3,28 +3,24 @@ import { cva } from 'class-variance-authority'; import { cn } from '@gib/ui'; -function Empty({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='empty' - className={cn( - 'flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded-xl border-dashed p-6 text-center text-balance', - className, - )} - {...props} - /> - ); -} +const Empty = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='empty' + className={cn( + 'flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded-xl border-dashed p-6 text-center text-balance', + className, + )} + {...props} + /> +); -function EmptyHeader({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='empty-header' - className={cn('flex max-w-sm flex-col items-center gap-2', className)} - {...props} - /> - ); -} +const EmptyHeader = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='empty-header' + className={cn('flex max-w-sm flex-col items-center gap-2', className)} + {...props} + /> +); const emptyMediaVariants = cva( 'mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0', @@ -41,56 +37,51 @@ const emptyMediaVariants = cva( }, ); -function EmptyMedia({ +const EmptyMedia = ({ className, variant = 'default', ...props -}: React.ComponentProps<'div'> & VariantProps<typeof emptyMediaVariants>) { - return ( - <div - data-slot='empty-icon' - data-variant={variant} - className={cn(emptyMediaVariants({ variant, className }))} - {...props} - /> - ); -} +}: React.ComponentProps<'div'> & VariantProps<typeof emptyMediaVariants>) => ( + <div + data-slot='empty-icon' + data-variant={variant} + className={cn(emptyMediaVariants({ variant, className }))} + {...props} + /> +); -function EmptyTitle({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='empty-title' - className={cn('text-sm font-medium tracking-tight', className)} - {...props} - /> - ); -} +const EmptyTitle = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='empty-title' + className={cn('text-sm font-medium tracking-tight', className)} + {...props} + /> +); -function EmptyDescription({ className, ...props }: React.ComponentProps<'p'>) { - return ( - <div - data-slot='empty-description' - className={cn( - 'text-muted-foreground [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4', - className, - )} - {...props} - /> - ); -} +const EmptyDescription = ({ + className, + ...props +}: React.ComponentProps<'p'>) => ( + <div + data-slot='empty-description' + className={cn( + 'text-muted-foreground [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4', + className, + )} + {...props} + /> +); -function EmptyContent({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='empty-content' - className={cn( - 'flex w-full max-w-sm min-w-0 flex-col items-center gap-2.5 text-sm text-balance', - className, - )} - {...props} - /> - ); -} +const EmptyContent = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='empty-content' + className={cn( + 'flex w-full max-w-sm min-w-0 flex-col items-center gap-2.5 text-sm text-balance', + className, + )} + {...props} + /> +); export { Empty, diff --git a/packages/ui/src/field.tsx b/packages/ui/src/field.tsx index c67a293..510a3d9 100644 --- a/packages/ui/src/field.tsx +++ b/packages/ui/src/field.tsx @@ -6,58 +6,52 @@ import { cva } from 'class-variance-authority'; import { cn, Label, Separator } from '@gib/ui'; -export function FieldSet({ +export const FieldSet = ({ className, ...props -}: React.ComponentProps<'fieldset'>) { - return ( - <fieldset - data-slot='field-set' - className={cn( - 'flex flex-col gap-6', - 'has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<'fieldset'>) => ( + <fieldset + data-slot='field-set' + className={cn( + 'flex flex-col gap-6', + 'has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3', + className, + )} + {...props} + /> +); -export function FieldLegend({ +export const FieldLegend = ({ className, variant = 'legend', ...props -}: React.ComponentProps<'legend'> & { variant?: 'legend' | 'label' }) { - return ( - <legend - data-slot='field-legend' - data-variant={variant} - className={cn( - 'mb-3 font-medium', - 'data-[variant=legend]:text-base', - 'data-[variant=label]:text-sm', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<'legend'> & { variant?: 'legend' | 'label' }) => ( + <legend + data-slot='field-legend' + data-variant={variant} + className={cn( + 'mb-3 font-medium', + 'data-[variant=legend]:text-base', + 'data-[variant=label]:text-sm', + className, + )} + {...props} + /> +); -export function FieldGroup({ +export const FieldGroup = ({ className, ...props -}: React.ComponentProps<'div'>) { - return ( - <div - data-slot='field-group' - className={cn( - 'group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<'div'>) => ( + <div + data-slot='field-group' + className={cn( + 'group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4', + className, + )} + {...props} + /> +); const fieldVariants = cva( 'group/field data-[invalid=true]:text-destructive flex w-full gap-3', @@ -83,128 +77,116 @@ const fieldVariants = cva( }, ); -export function Field({ +export const Field = ({ className, orientation = 'vertical', ...props -}: React.ComponentProps<'div'> & VariantProps<typeof fieldVariants>) { - return ( - <div - role='group' - data-slot='field' - data-orientation={orientation} - className={cn(fieldVariants({ orientation }), className)} - {...props} - /> - ); -} +}: React.ComponentProps<'div'> & VariantProps<typeof fieldVariants>) => ( + <div + role='group' + data-slot='field' + data-orientation={orientation} + className={cn(fieldVariants({ orientation }), className)} + {...props} + /> +); -export function FieldContent({ +export const FieldContent = ({ className, ...props -}: React.ComponentProps<'div'>) { - return ( - <div - data-slot='field-content' - className={cn( - 'group/field-content flex flex-1 flex-col gap-1.5 leading-snug', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<'div'>) => ( + <div + data-slot='field-content' + className={cn( + 'group/field-content flex flex-1 flex-col gap-1.5 leading-snug', + className, + )} + {...props} + /> +); -export function FieldLabel({ +export const FieldLabel = ({ className, ...props -}: React.ComponentProps<typeof Label>) { - return ( - <Label - data-slot='field-label' - className={cn( - 'group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50', - 'has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-4', - 'has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<typeof Label>) => ( + <Label + data-slot='field-label' + className={cn( + 'group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50', + 'has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-4', + 'has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10', + className, + )} + {...props} + /> +); -export function FieldTitle({ +export const FieldTitle = ({ className, ...props -}: React.ComponentProps<'div'>) { - return ( - <div - data-slot='field-label' - className={cn( - 'flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<'div'>) => ( + <div + data-slot='field-label' + className={cn( + 'flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50', + className, + )} + {...props} + /> +); -export function FieldDescription({ +export const FieldDescription = ({ className, ...props -}: React.ComponentProps<'p'>) { - return ( - <p - data-slot='field-description' - className={cn( - 'text-muted-foreground text-sm leading-normal font-normal group-has-[[data-orientation=horizontal]]/field:text-balance', - 'last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5', - '[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<'p'>) => ( + <p + data-slot='field-description' + className={cn( + 'text-muted-foreground text-sm leading-normal font-normal group-has-[[data-orientation=horizontal]]/field:text-balance', + 'last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5', + '[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4', + className, + )} + {...props} + /> +); -export function FieldSeparator({ +export const FieldSeparator = ({ children, className, ...props }: React.ComponentProps<'div'> & { children?: React.ReactNode; -}) { - return ( - <div - data-slot='field-separator' - data-content={!!children} - className={cn( - 'relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2', - className, - )} - {...props} - > - <Separator className='absolute inset-0 top-1/2' /> - {children && ( - <span - className='bg-background text-muted-foreground relative mx-auto block w-fit px-2' - data-slot='field-separator-content' - > - {children} - </span> - )} - </div> - ); -} +}) => ( + <div + data-slot='field-separator' + data-content={!!children} + className={cn( + 'relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2', + className, + )} + {...props} + > + <Separator className='absolute inset-0 top-1/2' /> + {children && ( + <span + className='bg-background text-muted-foreground relative mx-auto block w-fit px-2' + data-slot='field-separator-content' + > + {children} + </span> + )} + </div> +); -export function FieldError({ +export const FieldError = ({ className, children, errors: maybeErrors, ...props }: React.ComponentProps<'div'> & { errors?: ({ message?: string } | undefined)[]; -}) { +}) => { const content = useMemo(() => { if (children) { return children; @@ -244,4 +226,4 @@ export function FieldError({ {content} </div> ); -} +}; diff --git a/packages/ui/src/form.tsx b/packages/ui/src/form.tsx index 5dbbdd4..80f9a50 100644 --- a/packages/ui/src/form.tsx +++ b/packages/ui/src/form.tsx @@ -15,12 +15,12 @@ import { cn, Label } from '@gib/ui'; const Form = FormProvider; -type FormFieldContextValue< +interface FormFieldContextValue< TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, -> = { +> { name: TName; -}; +} const FormFieldContext = React.createContext<FormFieldContextValue>( {} as FormFieldContextValue, @@ -62,15 +62,15 @@ const useFormField = () => { }; }; -type FormItemContextValue = { +interface FormItemContextValue { id: string; -}; +} const FormItemContext = React.createContext<FormItemContextValue>( {} as FormItemContextValue, ); -function FormItem({ className, ...props }: React.ComponentProps<'div'>) { +const FormItem = ({ className, ...props }: React.ComponentProps<'div'>) => { const id = React.useId(); return ( @@ -82,12 +82,12 @@ function FormItem({ className, ...props }: React.ComponentProps<'div'>) { /> </FormItemContext.Provider> ); -} +}; -function FormLabel({ +const FormLabel = ({ className, ...props -}: React.ComponentProps<typeof LabelPrimitive.Root>) { +}: React.ComponentProps<typeof LabelPrimitive.Root>) => { const { error, formItemId } = useFormField(); return ( @@ -99,9 +99,9 @@ function FormLabel({ {...props} /> ); -} +}; -function FormControl({ ...props }: React.ComponentProps<typeof Slot>) { +const FormControl = ({ ...props }: React.ComponentProps<typeof Slot>) => { const { error, formItemId, formDescriptionId, formMessageId } = useFormField(); @@ -118,9 +118,12 @@ function FormControl({ ...props }: React.ComponentProps<typeof Slot>) { {...props} /> ); -} +}; -function FormDescription({ className, ...props }: React.ComponentProps<'p'>) { +const FormDescription = ({ + className, + ...props +}: React.ComponentProps<'p'>) => { const { formDescriptionId } = useFormField(); return ( @@ -131,9 +134,9 @@ function FormDescription({ className, ...props }: React.ComponentProps<'p'>) { {...props} /> ); -} +}; -function FormMessage({ className, ...props }: React.ComponentProps<'p'>) { +const FormMessage = ({ className, ...props }: React.ComponentProps<'p'>) => { const { error, formMessageId } = useFormField(); const body = error ? String(error?.message ?? '') : props.children; @@ -151,7 +154,7 @@ function FormMessage({ className, ...props }: React.ComponentProps<'p'>) { {body} </p> ); -} +}; export { useFormField, diff --git a/packages/ui/src/hooks/use-mobile.ts b/packages/ui/src/hooks/use-mobile.ts index 821f8ff..51d3f2d 100644 --- a/packages/ui/src/hooks/use-mobile.ts +++ b/packages/ui/src/hooks/use-mobile.ts @@ -2,7 +2,7 @@ import * as React from 'react'; const MOBILE_BREAKPOINT = 768; -export function useIsMobile() { +export const useIsMobile = () => { const [isMobile, setIsMobile] = React.useState<boolean | undefined>( undefined, ); @@ -18,4 +18,4 @@ export function useIsMobile() { }, []); return !!isMobile; -} +}; diff --git a/packages/ui/src/hooks/use-on-click-outside.tsx b/packages/ui/src/hooks/use-on-click-outside.tsx index 1c051dc..4ec849c 100644 --- a/packages/ui/src/hooks/use-on-click-outside.tsx +++ b/packages/ui/src/hooks/use-on-click-outside.tsx @@ -9,12 +9,12 @@ type EventType = | 'focusin' | 'focusout'; -export function useOnClickOutside<T extends HTMLElement = HTMLElement>( +export const useOnClickOutside = <T,>( ref: React.RefObject<T | null> | React.RefObject<T | null>[], handler: (event: MouseEvent | TouchEvent | FocusEvent) => void, eventType: EventType = 'mousedown', eventListenerOptions: AddEventListenerOptions = {}, -): void { +): void => { const savedHandler = React.useRef(handler); React.useLayoutEffect(() => { @@ -55,6 +55,6 @@ export function useOnClickOutside<T extends HTMLElement = HTMLElement>( ); }; }, [ref, eventType, eventListenerOptions]); -} +}; export type { EventType }; diff --git a/packages/ui/src/hover-card.tsx b/packages/ui/src/hover-card.tsx index 760077e..36f656c 100644 --- a/packages/ui/src/hover-card.tsx +++ b/packages/ui/src/hover-card.tsx @@ -5,40 +5,36 @@ import { HoverCard as HoverCardPrimitive } from 'radix-ui'; import { cn } from '@gib/ui'; -function HoverCard({ +const HoverCard = ({ ...props -}: React.ComponentProps<typeof HoverCardPrimitive.Root>) { - return <HoverCardPrimitive.Root data-slot='hover-card' {...props} />; -} +}: React.ComponentProps<typeof HoverCardPrimitive.Root>) => ( + <HoverCardPrimitive.Root data-slot='hover-card' {...props} /> +); -function HoverCardTrigger({ +const HoverCardTrigger = ({ ...props -}: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) { - return ( - <HoverCardPrimitive.Trigger data-slot='hover-card-trigger' {...props} /> - ); -} +}: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) => ( + <HoverCardPrimitive.Trigger data-slot='hover-card-trigger' {...props} /> +); -function HoverCardContent({ +const HoverCardContent = ({ className, align = 'center', sideOffset = 4, ...props -}: React.ComponentProps<typeof HoverCardPrimitive.Content>) { - return ( - <HoverCardPrimitive.Portal data-slot='hover-card-portal'> - <HoverCardPrimitive.Content - data-slot='hover-card-content' - align={align} - sideOffset={sideOffset} - className={cn( - 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-lg p-2.5 text-sm shadow-md ring-1 outline-hidden duration-100', - className, - )} - {...props} - /> - </HoverCardPrimitive.Portal> - ); -} +}: React.ComponentProps<typeof HoverCardPrimitive.Content>) => ( + <HoverCardPrimitive.Portal data-slot='hover-card-portal'> + <HoverCardPrimitive.Content + data-slot='hover-card-content' + align={align} + sideOffset={sideOffset} + className={cn( + 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-lg p-2.5 text-sm shadow-md ring-1 outline-hidden duration-100', + className, + )} + {...props} + /> + </HoverCardPrimitive.Portal> +); export { HoverCard, HoverCardTrigger, HoverCardContent }; diff --git a/packages/ui/src/image-crop.tsx b/packages/ui/src/image-crop.tsx index 9391b5a..9249a5b 100644 --- a/packages/ui/src/image-crop.tsx +++ b/packages/ui/src/image-crop.tsx @@ -378,7 +378,7 @@ export const Cropper = ({ </ImageCrop> ); -export function Demo() { +export const Demo = () => { const [file, setFile] = useState<File | null>(null); const [croppedImage, setCroppedImage] = useState<string | null>(null); @@ -432,4 +432,4 @@ export function Demo() { </div> </div> ); -} +}; diff --git a/packages/ui/src/input-group.tsx b/packages/ui/src/input-group.tsx index 2836e2d..282b80e 100644 --- a/packages/ui/src/input-group.tsx +++ b/packages/ui/src/input-group.tsx @@ -6,19 +6,17 @@ import { cva } from 'class-variance-authority'; import { Button, cn, Input, Textarea } from '@gib/ui'; -function InputGroup({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='input-group' - role='group' - className={cn( - 'border-input dark:bg-input/30 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-disabled:bg-input/50 dark:has-disabled:bg-input/80 group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-3 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5', - className, - )} - {...props} - /> - ); -} +const InputGroup = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='input-group' + role='group' + className={cn( + 'border-input dark:bg-input/30 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-disabled:bg-input/50 dark:has-disabled:bg-input/80 group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-3 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5', + className, + )} + {...props} + /> +); const inputGroupAddonVariants = cva( "text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4", @@ -41,27 +39,26 @@ const inputGroupAddonVariants = cva( }, ); -function InputGroupAddon({ +const InputGroupAddon = ({ className, align = 'inline-start', ...props -}: React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>) { - return ( - <div - role='group' - data-slot='input-group-addon' - data-align={align} - className={cn(inputGroupAddonVariants({ align }), className)} - onClick={(e) => { - if ((e.target as HTMLElement).closest('button')) { - return; - } - e.currentTarget.parentElement?.querySelector('input')?.focus(); - }} - {...props} - /> - ); -} +}: React.ComponentProps<'div'> & + VariantProps<typeof inputGroupAddonVariants>) => ( + <div + role='group' + data-slot='input-group-addon' + data-align={align} + className={cn(inputGroupAddonVariants({ align }), className)} + onClick={(e) => { + if ((e.target as HTMLElement).closest('button')) { + return; + } + e.currentTarget.parentElement?.querySelector('input')?.focus(); + }} + {...props} + /> +); const inputGroupButtonVariants = cva( 'flex items-center gap-2 text-sm shadow-none', @@ -81,68 +78,63 @@ const inputGroupButtonVariants = cva( }, ); -function InputGroupButton({ +const InputGroupButton = ({ className, type = 'button', variant = 'ghost', size = 'xs', ...props }: Omit<React.ComponentProps<typeof Button>, 'size'> & - VariantProps<typeof inputGroupButtonVariants>) { - return ( - <Button - type={type} - data-size={size} - variant={variant} - className={cn(inputGroupButtonVariants({ size }), className)} - {...props} - /> - ); -} + VariantProps<typeof inputGroupButtonVariants>) => ( + <Button + type={type} + data-size={size} + variant={variant} + className={cn(inputGroupButtonVariants({ size }), className)} + {...props} + /> +); -function InputGroupText({ className, ...props }: React.ComponentProps<'span'>) { - return ( - <span - className={cn( - "text-muted-foreground flex items-center gap-2 text-sm [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4", - className, - )} - {...props} - /> - ); -} - -function InputGroupInput({ +const InputGroupText = ({ className, ...props -}: React.ComponentProps<'input'>) { - return ( - <Input - data-slot='input-group-control' - className={cn( - 'flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<'span'>) => ( + <span + className={cn( + "text-muted-foreground flex items-center gap-2 text-sm [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4", + className, + )} + {...props} + /> +); -function InputGroupTextarea({ +const InputGroupInput = ({ className, ...props -}: React.ComponentProps<'textarea'>) { - return ( - <Textarea - data-slot='input-group-control' - className={cn( - 'flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<'input'>) => ( + <Input + data-slot='input-group-control' + className={cn( + 'flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent', + className, + )} + {...props} + /> +); + +const InputGroupTextarea = ({ + className, + ...props +}: React.ComponentProps<'textarea'>) => ( + <Textarea + data-slot='input-group-control' + className={cn( + 'flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent', + className, + )} + {...props} + /> +); export { InputGroup, diff --git a/packages/ui/src/input-otp.tsx b/packages/ui/src/input-otp.tsx index 36ae017..6c8d77d 100644 --- a/packages/ui/src/input-otp.tsx +++ b/packages/ui/src/input-otp.tsx @@ -6,47 +6,46 @@ import { MinusIcon } from 'lucide-react'; import { cn } from '@gib/ui'; -function InputOTP({ +const InputOTP = ({ className, containerClassName, ...props }: React.ComponentProps<typeof OTPInput> & { containerClassName?: string; -}) { - return ( - <OTPInput - data-slot='input-otp' - containerClassName={cn( - 'cn-input-otp flex items-center has-disabled:opacity-50', - containerClassName, - )} - spellCheck={false} - className={cn('disabled:cursor-not-allowed', className)} - {...props} - /> - ); -} +}) => ( + <OTPInput + data-slot='input-otp' + containerClassName={cn( + 'cn-input-otp flex items-center has-disabled:opacity-50', + containerClassName, + )} + spellCheck={false} + className={cn('disabled:cursor-not-allowed', className)} + {...props} + /> +); -function InputOTPGroup({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='input-otp-group' - className={cn( - 'has-aria-invalid:ring-destructive/20 dark:has-aria-invalid:ring-destructive/40 has-aria-invalid:border-destructive flex items-center rounded-lg has-aria-invalid:ring-3', - className, - )} - {...props} - /> - ); -} +const InputOTPGroup = ({ + className, + ...props +}: React.ComponentProps<'div'>) => ( + <div + data-slot='input-otp-group' + className={cn( + 'has-aria-invalid:ring-destructive/20 dark:has-aria-invalid:ring-destructive/40 has-aria-invalid:border-destructive flex items-center rounded-lg has-aria-invalid:ring-3', + className, + )} + {...props} + /> +); -function InputOTPSlot({ +const InputOTPSlot = ({ index, className, ...props }: React.ComponentProps<'div'> & { index: number; -}) { +}) => { const inputOTPContext = React.useContext(OTPInputContext); const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {}; @@ -68,19 +67,17 @@ function InputOTPSlot({ )} </div> ); -} +}; -function InputOTPSeparator({ ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='input-otp-separator' - className="flex items-center [&_svg:not([class*='size-'])]:size-4" - role='separator' - {...props} - > - <MinusIcon /> - </div> - ); -} +const InputOTPSeparator = ({ ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='input-otp-separator' + className="flex items-center [&_svg:not([class*='size-'])]:size-4" + role='separator' + {...props} + > + <MinusIcon /> + </div> +); export { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator }; diff --git a/packages/ui/src/input.tsx b/packages/ui/src/input.tsx index dce7ae8..fcc5c32 100644 --- a/packages/ui/src/input.tsx +++ b/packages/ui/src/input.tsx @@ -2,18 +2,20 @@ import type * as React from 'react'; import { cn } from '@gib/ui'; -function Input({ className, type, ...props }: React.ComponentProps<'input'>) { - return ( - <input - type={type} - data-slot='input' - className={cn( - 'dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 disabled:bg-input/50 dark:disabled:bg-input/80 file:text-foreground placeholder:text-muted-foreground h-8 w-full min-w-0 rounded-lg border bg-transparent px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:ring-3 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3 md:text-sm', - className, - )} - {...props} - /> - ); -} +const Input = ({ + className, + type, + ...props +}: React.ComponentProps<'input'>) => ( + <input + type={type} + data-slot='input' + className={cn( + 'dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 disabled:bg-input/50 dark:disabled:bg-input/80 file:text-foreground placeholder:text-muted-foreground h-8 w-full min-w-0 rounded-lg border bg-transparent px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:ring-3 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3 md:text-sm', + className, + )} + {...props} + /> +); export { Input }; diff --git a/packages/ui/src/item.tsx b/packages/ui/src/item.tsx index a589ad0..26fdee6 100644 --- a/packages/ui/src/item.tsx +++ b/packages/ui/src/item.tsx @@ -5,33 +5,29 @@ import { Slot } from 'radix-ui'; import { cn, Separator } from '@gib/ui'; -function ItemGroup({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - role='list' - data-slot='item-group' - className={cn( - 'group/item-group flex w-full flex-col gap-4 has-data-[size=sm]:gap-2.5 has-data-[size=xs]:gap-2', - className, - )} - {...props} - /> - ); -} +const ItemGroup = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + role='list' + data-slot='item-group' + className={cn( + 'group/item-group flex w-full flex-col gap-4 has-data-[size=sm]:gap-2.5 has-data-[size=xs]:gap-2', + className, + )} + {...props} + /> +); -function ItemSeparator({ +const ItemSeparator = ({ className, ...props -}: React.ComponentProps<typeof Separator>) { - return ( - <Separator - data-slot='item-separator' - orientation='horizontal' - className={cn('my-2', className)} - {...props} - /> - ); -} +}: React.ComponentProps<typeof Separator>) => ( + <Separator + data-slot='item-separator' + orientation='horizontal' + className={cn('my-2', className)} + {...props} + /> +); const itemVariants = cva( '[a]:hover:bg-muted group/item focus-visible:border-ring focus-visible:ring-ring/50 flex w-full flex-wrap items-center rounded-lg border text-sm transition-colors duration-100 outline-none focus-visible:ring-[3px] [a]:transition-colors', @@ -55,14 +51,14 @@ const itemVariants = cva( }, ); -function Item({ +const Item = ({ className, variant = 'default', size = 'default', asChild = false, ...props }: React.ComponentProps<'div'> & - VariantProps<typeof itemVariants> & { asChild?: boolean }) { + VariantProps<typeof itemVariants> & { asChild?: boolean }) => { const Comp = asChild ? Slot.Root : 'div'; return ( <Comp @@ -73,7 +69,7 @@ function Item({ {...props} /> ); -} +}; const itemMediaVariants = cva( 'flex shrink-0 items-center justify-center gap-2 group-has-data-[slot=item-description]/item:translate-y-0.5 group-has-data-[slot=item-description]/item:self-start [&_svg]:pointer-events-none', @@ -92,95 +88,84 @@ const itemMediaVariants = cva( }, ); -function ItemMedia({ +const ItemMedia = ({ className, variant = 'default', ...props -}: React.ComponentProps<'div'> & VariantProps<typeof itemMediaVariants>) { - return ( - <div - data-slot='item-media' - data-variant={variant} - className={cn(itemMediaVariants({ variant, className }))} - {...props} - /> - ); -} +}: React.ComponentProps<'div'> & VariantProps<typeof itemMediaVariants>) => ( + <div + data-slot='item-media' + data-variant={variant} + className={cn(itemMediaVariants({ variant, className }))} + {...props} + /> +); -function ItemContent({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='item-content' - className={cn( - 'flex flex-1 flex-col gap-1 group-data-[size=xs]/item:gap-0 [&+[data-slot=item-content]]:flex-none', - className, - )} - {...props} - /> - ); -} +const ItemContent = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='item-content' + className={cn( + 'flex flex-1 flex-col gap-1 group-data-[size=xs]/item:gap-0 [&+[data-slot=item-content]]:flex-none', + className, + )} + {...props} + /> +); -function ItemTitle({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='item-title' - className={cn( - 'line-clamp-1 flex w-fit items-center gap-2 text-sm leading-snug font-medium underline-offset-4', - className, - )} - {...props} - /> - ); -} +const ItemTitle = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='item-title' + className={cn( + 'line-clamp-1 flex w-fit items-center gap-2 text-sm leading-snug font-medium underline-offset-4', + className, + )} + {...props} + /> +); -function ItemDescription({ className, ...props }: React.ComponentProps<'p'>) { - return ( - <p - data-slot='item-description' - className={cn( - 'text-muted-foreground [&>a:hover]:text-primary line-clamp-2 text-left text-sm leading-normal font-normal group-data-[size=xs]/item:text-xs [&>a]:underline [&>a]:underline-offset-4', - className, - )} - {...props} - /> - ); -} +const ItemDescription = ({ + className, + ...props +}: React.ComponentProps<'p'>) => ( + <p + data-slot='item-description' + className={cn( + 'text-muted-foreground [&>a:hover]:text-primary line-clamp-2 text-left text-sm leading-normal font-normal group-data-[size=xs]/item:text-xs [&>a]:underline [&>a]:underline-offset-4', + className, + )} + {...props} + /> +); -function ItemActions({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='item-actions' - className={cn('flex items-center gap-2', className)} - {...props} - /> - ); -} +const ItemActions = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='item-actions' + className={cn('flex items-center gap-2', className)} + {...props} + /> +); -function ItemHeader({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='item-header' - className={cn( - 'flex basis-full items-center justify-between gap-2', - className, - )} - {...props} - /> - ); -} +const ItemHeader = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='item-header' + className={cn( + 'flex basis-full items-center justify-between gap-2', + className, + )} + {...props} + /> +); -function ItemFooter({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='item-footer' - className={cn( - 'flex basis-full items-center justify-between gap-2', - className, - )} - {...props} - /> - ); -} +const ItemFooter = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='item-footer' + className={cn( + 'flex basis-full items-center justify-between gap-2', + className, + )} + {...props} + /> +); export { Item, diff --git a/packages/ui/src/kbd.tsx b/packages/ui/src/kbd.tsx index 19fc47c..363a776 100644 --- a/packages/ui/src/kbd.tsx +++ b/packages/ui/src/kbd.tsx @@ -1,26 +1,22 @@ import { cn } from '@gib/ui'; -function Kbd({ className, ...props }: React.ComponentProps<'kbd'>) { - return ( - <kbd - data-slot='kbd' - className={cn( - "bg-muted text-muted-foreground in-data-[slot=tooltip-content]:bg-background/20 in-data-[slot=tooltip-content]:text-background dark:in-data-[slot=tooltip-content]:bg-background/10 pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm px-1 font-sans text-xs font-medium select-none [&_svg:not([class*='size-'])]:size-3", - className, - )} - {...props} - /> - ); -} +const Kbd = ({ className, ...props }: React.ComponentProps<'kbd'>) => ( + <kbd + data-slot='kbd' + className={cn( + "bg-muted text-muted-foreground in-data-[slot=tooltip-content]:bg-background/20 in-data-[slot=tooltip-content]:text-background dark:in-data-[slot=tooltip-content]:bg-background/10 pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm px-1 font-sans text-xs font-medium select-none [&_svg:not([class*='size-'])]:size-3", + className, + )} + {...props} + /> +); -function KbdGroup({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <kbd - data-slot='kbd-group' - className={cn('inline-flex items-center gap-1', className)} - {...props} - /> - ); -} +const KbdGroup = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <kbd + data-slot='kbd-group' + className={cn('inline-flex items-center gap-1', className)} + {...props} + /> +); export { Kbd, KbdGroup }; diff --git a/packages/ui/src/label.tsx b/packages/ui/src/label.tsx index 0438311..da0f4c5 100644 --- a/packages/ui/src/label.tsx +++ b/packages/ui/src/label.tsx @@ -5,19 +5,17 @@ import { Label as LabelPrimitive } from 'radix-ui'; import { cn } from '@gib/ui'; -function Label({ +const Label = ({ className, ...props -}: React.ComponentProps<typeof LabelPrimitive.Root>) { - return ( - <LabelPrimitive.Root - data-slot='label' - className={cn( - 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<typeof LabelPrimitive.Root>) => ( + <LabelPrimitive.Root + data-slot='label' + className={cn( + 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50', + className, + )} + {...props} + /> +); export { Label }; diff --git a/packages/ui/src/menubar.tsx b/packages/ui/src/menubar.tsx index a248b7a..17b7f76 100644 --- a/packages/ui/src/menubar.tsx +++ b/packages/ui/src/menubar.tsx @@ -6,89 +6,81 @@ import { Menubar as MenubarPrimitive } from 'radix-ui'; import { cn } from '@gib/ui'; -function Menubar({ +const Menubar = ({ className, ...props -}: React.ComponentProps<typeof MenubarPrimitive.Root>) { - return ( - <MenubarPrimitive.Root - data-slot='menubar' - className={cn( - 'bg-background flex h-9 items-center gap-1 rounded-md border p-1 shadow-xs', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<typeof MenubarPrimitive.Root>) => ( + <MenubarPrimitive.Root + data-slot='menubar' + className={cn( + 'bg-background flex h-9 items-center gap-1 rounded-md border p-1 shadow-xs', + className, + )} + {...props} + /> +); -function MenubarMenu({ +const MenubarMenu = ({ ...props -}: React.ComponentProps<typeof MenubarPrimitive.Menu>) { - return <MenubarPrimitive.Menu data-slot='menubar-menu' {...props} />; -} +}: React.ComponentProps<typeof MenubarPrimitive.Menu>) => ( + <MenubarPrimitive.Menu data-slot='menubar-menu' {...props} /> +); -function MenubarGroup({ +const MenubarGroup = ({ ...props -}: React.ComponentProps<typeof MenubarPrimitive.Group>) { - return <MenubarPrimitive.Group data-slot='menubar-group' {...props} />; -} +}: React.ComponentProps<typeof MenubarPrimitive.Group>) => ( + <MenubarPrimitive.Group data-slot='menubar-group' {...props} /> +); -function MenubarPortal({ +const MenubarPortal = ({ ...props -}: React.ComponentProps<typeof MenubarPrimitive.Portal>) { - return <MenubarPrimitive.Portal data-slot='menubar-portal' {...props} />; -} +}: React.ComponentProps<typeof MenubarPrimitive.Portal>) => ( + <MenubarPrimitive.Portal data-slot='menubar-portal' {...props} /> +); -function MenubarRadioGroup({ +const MenubarRadioGroup = ({ ...props -}: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>) { - return ( - <MenubarPrimitive.RadioGroup data-slot='menubar-radio-group' {...props} /> - ); -} +}: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>) => ( + <MenubarPrimitive.RadioGroup data-slot='menubar-radio-group' {...props} /> +); -function MenubarTrigger({ +const MenubarTrigger = ({ className, ...props -}: React.ComponentProps<typeof MenubarPrimitive.Trigger>) { - return ( - <MenubarPrimitive.Trigger - data-slot='menubar-trigger' - className={cn( - 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<typeof MenubarPrimitive.Trigger>) => ( + <MenubarPrimitive.Trigger + data-slot='menubar-trigger' + className={cn( + 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none', + className, + )} + {...props} + /> +); -function MenubarContent({ +const MenubarContent = ({ className, align = 'start', alignOffset = -4, sideOffset = 8, ...props -}: React.ComponentProps<typeof MenubarPrimitive.Content>) { - return ( - <MenubarPortal> - <MenubarPrimitive.Content - data-slot='menubar-content' - align={align} - alignOffset={alignOffset} - sideOffset={sideOffset} - className={cn( - 'bg-popover text-popover-foreground data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 z-50 min-w-[12rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-md', - className, - )} - {...props} - /> - </MenubarPortal> - ); -} +}: React.ComponentProps<typeof MenubarPrimitive.Content>) => ( + <MenubarPortal> + <MenubarPrimitive.Content + data-slot='menubar-content' + align={align} + alignOffset={alignOffset} + sideOffset={sideOffset} + className={cn( + 'bg-popover text-popover-foreground data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 z-50 min-w-[12rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-md', + className, + )} + {...props} + /> + </MenubarPortal> +); -function MenubarItem({ +const MenubarItem = ({ className, inset, variant = 'default', @@ -96,165 +88,149 @@ function MenubarItem({ }: React.ComponentProps<typeof MenubarPrimitive.Item> & { inset?: boolean; variant?: 'default' | 'destructive'; -}) { - return ( - <MenubarPrimitive.Item - data-slot='menubar-item' - data-inset={inset} - data-variant={variant} - className={cn( - "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive! relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", - className, - )} - {...props} - /> - ); -} +}) => ( + <MenubarPrimitive.Item + data-slot='menubar-item' + data-inset={inset} + data-variant={variant} + className={cn( + "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive! relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", + className, + )} + {...props} + /> +); -function MenubarCheckboxItem({ +const MenubarCheckboxItem = ({ className, children, checked, ...props -}: React.ComponentProps<typeof MenubarPrimitive.CheckboxItem>) { - return ( - <MenubarPrimitive.CheckboxItem - data-slot='menubar-checkbox-item' - className={cn( - "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", - className, - )} - checked={checked} - {...props} - > - <span className='pointer-events-none absolute left-2 flex size-3.5 items-center justify-center'> - <MenubarPrimitive.ItemIndicator> - <CheckIcon className='size-4' /> - </MenubarPrimitive.ItemIndicator> - </span> - {children} - </MenubarPrimitive.CheckboxItem> - ); -} +}: React.ComponentProps<typeof MenubarPrimitive.CheckboxItem>) => ( + <MenubarPrimitive.CheckboxItem + data-slot='menubar-checkbox-item' + className={cn( + "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", + className, + )} + checked={checked} + {...props} + > + <span className='pointer-events-none absolute left-2 flex size-3.5 items-center justify-center'> + <MenubarPrimitive.ItemIndicator> + <CheckIcon className='size-4' /> + </MenubarPrimitive.ItemIndicator> + </span> + {children} + </MenubarPrimitive.CheckboxItem> +); -function MenubarRadioItem({ +const MenubarRadioItem = ({ className, children, ...props -}: React.ComponentProps<typeof MenubarPrimitive.RadioItem>) { - return ( - <MenubarPrimitive.RadioItem - data-slot='menubar-radio-item' - className={cn( - "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", - className, - )} - {...props} - > - <span className='pointer-events-none absolute left-2 flex size-3.5 items-center justify-center'> - <MenubarPrimitive.ItemIndicator> - <CircleIcon className='size-2 fill-current' /> - </MenubarPrimitive.ItemIndicator> - </span> - {children} - </MenubarPrimitive.RadioItem> - ); -} +}: React.ComponentProps<typeof MenubarPrimitive.RadioItem>) => ( + <MenubarPrimitive.RadioItem + data-slot='menubar-radio-item' + className={cn( + "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", + className, + )} + {...props} + > + <span className='pointer-events-none absolute left-2 flex size-3.5 items-center justify-center'> + <MenubarPrimitive.ItemIndicator> + <CircleIcon className='size-2 fill-current' /> + </MenubarPrimitive.ItemIndicator> + </span> + {children} + </MenubarPrimitive.RadioItem> +); -function MenubarLabel({ +const MenubarLabel = ({ className, inset, ...props }: React.ComponentProps<typeof MenubarPrimitive.Label> & { inset?: boolean; -}) { - return ( - <MenubarPrimitive.Label - data-slot='menubar-label' - data-inset={inset} - className={cn( - 'px-2 py-1.5 text-sm font-medium data-[inset]:pl-8', - className, - )} - {...props} - /> - ); -} +}) => ( + <MenubarPrimitive.Label + data-slot='menubar-label' + data-inset={inset} + className={cn( + 'px-2 py-1.5 text-sm font-medium data-[inset]:pl-8', + className, + )} + {...props} + /> +); -function MenubarSeparator({ +const MenubarSeparator = ({ className, ...props -}: React.ComponentProps<typeof MenubarPrimitive.Separator>) { - return ( - <MenubarPrimitive.Separator - data-slot='menubar-separator' - className={cn('bg-border -mx-1 my-1 h-px', className)} - {...props} - /> - ); -} +}: React.ComponentProps<typeof MenubarPrimitive.Separator>) => ( + <MenubarPrimitive.Separator + data-slot='menubar-separator' + className={cn('bg-border -mx-1 my-1 h-px', className)} + {...props} + /> +); -function MenubarShortcut({ +const MenubarShortcut = ({ className, ...props -}: React.ComponentProps<'span'>) { - return ( - <span - data-slot='menubar-shortcut' - className={cn( - 'text-muted-foreground ml-auto text-xs tracking-widest', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<'span'>) => ( + <span + data-slot='menubar-shortcut' + className={cn( + 'text-muted-foreground ml-auto text-xs tracking-widest', + className, + )} + {...props} + /> +); -function MenubarSub({ +const MenubarSub = ({ ...props -}: React.ComponentProps<typeof MenubarPrimitive.Sub>) { - return <MenubarPrimitive.Sub data-slot='menubar-sub' {...props} />; -} +}: React.ComponentProps<typeof MenubarPrimitive.Sub>) => ( + <MenubarPrimitive.Sub data-slot='menubar-sub' {...props} /> +); -function MenubarSubTrigger({ +const MenubarSubTrigger = ({ className, inset, children, ...props }: React.ComponentProps<typeof MenubarPrimitive.SubTrigger> & { inset?: boolean; -}) { - return ( - <MenubarPrimitive.SubTrigger - data-slot='menubar-sub-trigger' - data-inset={inset} - className={cn( - 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[inset]:pl-8', - className, - )} - {...props} - > - {children} - <ChevronRightIcon className='ml-auto h-4 w-4' /> - </MenubarPrimitive.SubTrigger> - ); -} +}) => ( + <MenubarPrimitive.SubTrigger + data-slot='menubar-sub-trigger' + data-inset={inset} + className={cn( + 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[inset]:pl-8', + className, + )} + {...props} + > + {children} + <ChevronRightIcon className='ml-auto h-4 w-4' /> + </MenubarPrimitive.SubTrigger> +); -function MenubarSubContent({ +const MenubarSubContent = ({ className, ...props -}: React.ComponentProps<typeof MenubarPrimitive.SubContent>) { - return ( - <MenubarPrimitive.SubContent - data-slot='menubar-sub-content' - className={cn( - 'bg-popover text-popover-foreground data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 z-50 min-w-[8rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<typeof MenubarPrimitive.SubContent>) => ( + <MenubarPrimitive.SubContent + data-slot='menubar-sub-content' + className={cn( + 'bg-popover text-popover-foreground data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 z-50 min-w-[8rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg', + className, + )} + {...props} + /> +); export { Menubar, diff --git a/packages/ui/src/native-select.tsx b/packages/ui/src/native-select.tsx index 89c9f69..777fa3f 100644 --- a/packages/ui/src/native-select.tsx +++ b/packages/ui/src/native-select.tsx @@ -3,51 +3,49 @@ import { ChevronDownIcon } from 'lucide-react'; import { cn } from '@gib/ui'; -function NativeSelect({ +const NativeSelect = ({ className, size = 'default', ...props -}: Omit<React.ComponentProps<'select'>, 'size'> & { size?: 'sm' | 'default' }) { - return ( - <div - className='group/native-select relative w-fit has-[select:disabled]:opacity-50' - data-slot='native-select-wrapper' - > - <select - data-slot='native-select' - data-size={size} - className={cn( - 'border-input selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 h-9 w-full min-w-0 appearance-none rounded-md border bg-transparent px-3 py-2 pr-9 text-sm shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed data-[size=sm]:h-8 data-[size=sm]:py-1', - 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]', - 'aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40', - className, - )} - {...props} - /> - <ChevronDownIcon - className='text-muted-foreground pointer-events-none absolute top-1/2 right-3.5 size-4 -translate-y-1/2 opacity-50 select-none' - aria-hidden='true' - data-slot='native-select-icon' - /> - </div> - ); -} - -function NativeSelectOption({ ...props }: React.ComponentProps<'option'>) { - return <option data-slot='native-select-option' {...props} />; -} - -function NativeSelectOptGroup({ - className, - ...props -}: React.ComponentProps<'optgroup'>) { - return ( - <optgroup - data-slot='native-select-optgroup' - className={cn(className)} +}: Omit<React.ComponentProps<'select'>, 'size'> & { + size?: 'sm' | 'default'; +}) => ( + <div + className='group/native-select relative w-fit has-[select:disabled]:opacity-50' + data-slot='native-select-wrapper' + > + <select + data-slot='native-select' + data-size={size} + className={cn( + 'border-input selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 h-9 w-full min-w-0 appearance-none rounded-md border bg-transparent px-3 py-2 pr-9 text-sm shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed data-[size=sm]:h-8 data-[size=sm]:py-1', + 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]', + 'aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40', + className, + )} {...props} /> - ); -} + <ChevronDownIcon + className='text-muted-foreground pointer-events-none absolute top-1/2 right-3.5 size-4 -translate-y-1/2 opacity-50 select-none' + aria-hidden='true' + data-slot='native-select-icon' + /> + </div> +); + +const NativeSelectOption = ({ ...props }: React.ComponentProps<'option'>) => ( + <option data-slot='native-select-option' {...props} /> +); + +const NativeSelectOptGroup = ({ + className, + ...props +}: React.ComponentProps<'optgroup'>) => ( + <optgroup + data-slot='native-select-optgroup' + className={cn(className)} + {...props} + /> +); export { NativeSelect, NativeSelectOptGroup, NativeSelectOption }; diff --git a/packages/ui/src/navigation-menu.tsx b/packages/ui/src/navigation-menu.tsx index baa2ec4..5fb4d3d 100644 --- a/packages/ui/src/navigation-menu.tsx +++ b/packages/ui/src/navigation-menu.tsx @@ -5,155 +5,137 @@ import { NavigationMenu as NavigationMenuPrimitive } from 'radix-ui'; import { cn } from '@gib/ui'; -function NavigationMenu({ +const NavigationMenu = ({ className, children, viewport = true, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Root> & { viewport?: boolean; -}) { - return ( - <NavigationMenuPrimitive.Root - data-slot='navigation-menu' - data-viewport={viewport} - className={cn( - 'group/navigation-menu relative flex max-w-max flex-1 items-center justify-center', - className, - )} - {...props} - > - {children} - {viewport && <NavigationMenuViewport />} - </NavigationMenuPrimitive.Root> - ); -} +}) => ( + <NavigationMenuPrimitive.Root + data-slot='navigation-menu' + data-viewport={viewport} + className={cn( + 'group/navigation-menu relative flex max-w-max flex-1 items-center justify-center', + className, + )} + {...props} + > + {children} + {viewport && <NavigationMenuViewport />} + </NavigationMenuPrimitive.Root> +); -function NavigationMenuList({ +const NavigationMenuList = ({ className, ...props -}: React.ComponentProps<typeof NavigationMenuPrimitive.List>) { - return ( - <NavigationMenuPrimitive.List - data-slot='navigation-menu-list' - className={cn( - 'group flex flex-1 list-none items-center justify-center gap-1', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<typeof NavigationMenuPrimitive.List>) => ( + <NavigationMenuPrimitive.List + data-slot='navigation-menu-list' + className={cn( + 'group flex flex-1 list-none items-center justify-center gap-1', + className, + )} + {...props} + /> +); -function NavigationMenuItem({ +const NavigationMenuItem = ({ className, ...props -}: React.ComponentProps<typeof NavigationMenuPrimitive.Item>) { - return ( - <NavigationMenuPrimitive.Item - data-slot='navigation-menu-item' - className={cn('relative', className)} - {...props} - /> - ); -} +}: React.ComponentProps<typeof NavigationMenuPrimitive.Item>) => ( + <NavigationMenuPrimitive.Item + data-slot='navigation-menu-item' + className={cn('relative', className)} + {...props} + /> +); const navigationMenuTriggerStyle = cva( 'group bg-background hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:ring-ring/50 data-[state=open]:bg-accent/50 data-[state=open]:text-accent-foreground data-[state=open]:hover:bg-accent data-[state=open]:focus:bg-accent inline-flex h-9 w-max items-center justify-center rounded-md px-4 py-2 text-sm font-medium transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50', ); -function NavigationMenuTrigger({ +const NavigationMenuTrigger = ({ className, children, ...props -}: React.ComponentProps<typeof NavigationMenuPrimitive.Trigger>) { - return ( - <NavigationMenuPrimitive.Trigger - data-slot='navigation-menu-trigger' - className={cn(navigationMenuTriggerStyle(), 'group', className)} - {...props} - > - {children}{' '} - <ChevronDownIcon - className='relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180' - aria-hidden='true' - /> - </NavigationMenuPrimitive.Trigger> - ); -} +}: React.ComponentProps<typeof NavigationMenuPrimitive.Trigger>) => ( + <NavigationMenuPrimitive.Trigger + data-slot='navigation-menu-trigger' + className={cn(navigationMenuTriggerStyle(), 'group', className)} + {...props} + > + {children}{' '} + <ChevronDownIcon + className='relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180' + aria-hidden='true' + /> + </NavigationMenuPrimitive.Trigger> +); -function NavigationMenuContent({ +const NavigationMenuContent = ({ className, ...props -}: React.ComponentProps<typeof NavigationMenuPrimitive.Content>) { - return ( - <NavigationMenuPrimitive.Content - data-slot='navigation-menu-content' +}: React.ComponentProps<typeof NavigationMenuPrimitive.Content>) => ( + <NavigationMenuPrimitive.Content + data-slot='navigation-menu-content' + className={cn( + 'data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out top-0 left-0 w-full p-2 pr-2.5 md:absolute md:w-auto', + 'group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95 group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none', + className, + )} + {...props} + /> +); + +const NavigationMenuViewport = ({ + className, + ...props +}: React.ComponentProps<typeof NavigationMenuPrimitive.Viewport>) => ( + <div + className={cn('absolute top-full left-0 isolate z-50 flex justify-center')} + > + <NavigationMenuPrimitive.Viewport + data-slot='navigation-menu-viewport' className={cn( - 'data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out top-0 left-0 w-full p-2 pr-2.5 md:absolute md:w-auto', - 'group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95 group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none', + 'origin-top-center bg-popover text-popover-foreground data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]', className, )} {...props} /> - ); -} + </div> +); -function NavigationMenuViewport({ +const NavigationMenuLink = ({ className, ...props -}: React.ComponentProps<typeof NavigationMenuPrimitive.Viewport>) { - return ( - <div - className={cn( - 'absolute top-full left-0 isolate z-50 flex justify-center', - )} - > - <NavigationMenuPrimitive.Viewport - data-slot='navigation-menu-viewport' - className={cn( - 'origin-top-center bg-popover text-popover-foreground data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]', - className, - )} - {...props} - /> - </div> - ); -} +}: React.ComponentProps<typeof NavigationMenuPrimitive.Link>) => ( + <NavigationMenuPrimitive.Link + data-slot='navigation-menu-link' + className={cn( + "hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:ring-ring/50 data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground data-[active=true]:hover:bg-accent data-[active=true]:focus:bg-accent [&_svg:not([class*='text-'])]:text-muted-foreground flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4", + className, + )} + {...props} + /> +); -function NavigationMenuLink({ +const NavigationMenuIndicator = ({ className, ...props -}: React.ComponentProps<typeof NavigationMenuPrimitive.Link>) { - return ( - <NavigationMenuPrimitive.Link - data-slot='navigation-menu-link' - className={cn( - "hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:ring-ring/50 data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground data-[active=true]:hover:bg-accent data-[active=true]:focus:bg-accent [&_svg:not([class*='text-'])]:text-muted-foreground flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4", - className, - )} - {...props} - /> - ); -} - -function NavigationMenuIndicator({ - className, - ...props -}: React.ComponentProps<typeof NavigationMenuPrimitive.Indicator>) { - return ( - <NavigationMenuPrimitive.Indicator - data-slot='navigation-menu-indicator' - className={cn( - 'data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:animate-in data-[state=visible]:fade-in top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden', - className, - )} - {...props} - > - <div className='bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md' /> - </NavigationMenuPrimitive.Indicator> - ); -} +}: React.ComponentProps<typeof NavigationMenuPrimitive.Indicator>) => ( + <NavigationMenuPrimitive.Indicator + data-slot='navigation-menu-indicator' + className={cn( + 'data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:animate-in data-[state=visible]:fade-in top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden', + className, + )} + {...props} + > + <div className='bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md' /> + </NavigationMenuPrimitive.Indicator> +); export { NavigationMenu, diff --git a/packages/ui/src/pagination.tsx b/packages/ui/src/pagination.tsx index c99f4fc..df1891a 100644 --- a/packages/ui/src/pagination.tsx +++ b/packages/ui/src/pagination.tsx @@ -7,118 +7,106 @@ import { import { Button, cn } from '@gib/ui'; -function Pagination({ className, ...props }: React.ComponentProps<'nav'>) { - return ( - <nav - role='navigation' - aria-label='pagination' - data-slot='pagination' - className={cn('mx-auto flex w-full justify-center', className)} - {...props} - /> - ); -} +const Pagination = ({ className, ...props }: React.ComponentProps<'nav'>) => ( + <nav + role='navigation' + aria-label='pagination' + data-slot='pagination' + className={cn('mx-auto flex w-full justify-center', className)} + {...props} + /> +); -function PaginationContent({ +const PaginationContent = ({ className, ...props -}: React.ComponentProps<'ul'>) { - return ( - <ul - data-slot='pagination-content' - className={cn('flex items-center gap-0.5', className)} - {...props} - /> - ); -} +}: React.ComponentProps<'ul'>) => ( + <ul + data-slot='pagination-content' + className={cn('flex items-center gap-0.5', className)} + {...props} + /> +); -function PaginationItem({ ...props }: React.ComponentProps<'li'>) { - return <li data-slot='pagination-item' {...props} />; -} +const PaginationItem = ({ ...props }: React.ComponentProps<'li'>) => ( + <li data-slot='pagination-item' {...props} /> +); type PaginationLinkProps = { isActive?: boolean; } & Pick<React.ComponentProps<typeof Button>, 'size'> & React.ComponentProps<'a'>; -function PaginationLink({ +const PaginationLink = ({ className, isActive, size = 'icon', ...props -}: PaginationLinkProps) { - return ( - <Button - asChild - variant={isActive ? 'outline' : 'ghost'} - size={size} - className={cn(className)} - > - <a - aria-current={isActive ? 'page' : undefined} - data-slot='pagination-link' - data-active={isActive} - {...props} - /> - </Button> - ); -} +}: PaginationLinkProps) => ( + <Button + asChild + variant={isActive ? 'outline' : 'ghost'} + size={size} + className={cn(className)} + > + <a + aria-current={isActive ? 'page' : undefined} + data-slot='pagination-link' + data-active={isActive} + {...props} + /> + </Button> +); -function PaginationPrevious({ +const PaginationPrevious = ({ className, text = 'Previous', ...props -}: React.ComponentProps<typeof PaginationLink> & { text?: string }) { - return ( - <PaginationLink - aria-label='Go to previous page' - size='default' - className={cn('pl-1.5!', className)} - {...props} - > - <ChevronLeftIcon data-icon='inline-start' className='cn-rtl-flip' /> - <span className='hidden sm:block'>{text}</span> - </PaginationLink> - ); -} +}: React.ComponentProps<typeof PaginationLink> & { text?: string }) => ( + <PaginationLink + aria-label='Go to previous page' + size='default' + className={cn('pl-1.5!', className)} + {...props} + > + <ChevronLeftIcon data-icon='inline-start' className='cn-rtl-flip' /> + <span className='hidden sm:block'>{text}</span> + </PaginationLink> +); -function PaginationNext({ +const PaginationNext = ({ className, text = 'Next', ...props -}: React.ComponentProps<typeof PaginationLink> & { text?: string }) { - return ( - <PaginationLink - aria-label='Go to next page' - size='default' - className={cn('pr-1.5!', className)} - {...props} - > - <span className='hidden sm:block'>{text}</span> - <ChevronRightIcon data-icon='inline-end' className='cn-rtl-flip' /> - </PaginationLink> - ); -} +}: React.ComponentProps<typeof PaginationLink> & { text?: string }) => ( + <PaginationLink + aria-label='Go to next page' + size='default' + className={cn('pr-1.5!', className)} + {...props} + > + <span className='hidden sm:block'>{text}</span> + <ChevronRightIcon data-icon='inline-end' className='cn-rtl-flip' /> + </PaginationLink> +); -function PaginationEllipsis({ +const PaginationEllipsis = ({ className, ...props -}: React.ComponentProps<'span'>) { - return ( - <span - aria-hidden - data-slot='pagination-ellipsis' - className={cn( - "flex size-8 items-center justify-center [&_svg:not([class*='size-'])]:size-4", - className, - )} - {...props} - > - <MoreHorizontalIcon /> - <span className='sr-only'>More pages</span> - </span> - ); -} +}: React.ComponentProps<'span'>) => ( + <span + aria-hidden + data-slot='pagination-ellipsis' + className={cn( + "flex size-8 items-center justify-center [&_svg:not([class*='size-'])]:size-4", + className, + )} + {...props} + > + <MoreHorizontalIcon /> + <span className='sr-only'>More pages</span> + </span> +); export { Pagination, diff --git a/packages/ui/src/popover.tsx b/packages/ui/src/popover.tsx index b2723d7..83a0c6b 100644 --- a/packages/ui/src/popover.tsx +++ b/packages/ui/src/popover.tsx @@ -5,78 +5,73 @@ import { Popover as PopoverPrimitive } from 'radix-ui'; import { cn } from '@gib/ui'; -function Popover({ +const Popover = ({ ...props -}: React.ComponentProps<typeof PopoverPrimitive.Root>) { - return <PopoverPrimitive.Root data-slot='popover' {...props} />; -} +}: React.ComponentProps<typeof PopoverPrimitive.Root>) => ( + <PopoverPrimitive.Root data-slot='popover' {...props} /> +); -function PopoverTrigger({ +const PopoverTrigger = ({ ...props -}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) { - return <PopoverPrimitive.Trigger data-slot='popover-trigger' {...props} />; -} +}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) => ( + <PopoverPrimitive.Trigger data-slot='popover-trigger' {...props} /> +); -function PopoverContent({ +const PopoverContent = ({ className, align = 'center', sideOffset = 4, ...props -}: React.ComponentProps<typeof PopoverPrimitive.Content>) { - return ( - <PopoverPrimitive.Portal> - <PopoverPrimitive.Content - data-slot='popover-content' - align={align} - sideOffset={sideOffset} - className={cn( - 'bg-popover text-popover-foreground data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden', - className, - )} - {...props} - /> - </PopoverPrimitive.Portal> - ); -} +}: React.ComponentProps<typeof PopoverPrimitive.Content>) => ( + <PopoverPrimitive.Portal> + <PopoverPrimitive.Content + data-slot='popover-content' + align={align} + sideOffset={sideOffset} + className={cn( + 'bg-popover text-popover-foreground data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden', + className, + )} + {...props} + /> + </PopoverPrimitive.Portal> +); -function PopoverAnchor({ +const PopoverAnchor = ({ ...props -}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) { - return <PopoverPrimitive.Anchor data-slot='popover-anchor' {...props} />; -} +}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) => ( + <PopoverPrimitive.Anchor data-slot='popover-anchor' {...props} /> +); -function PopoverHeader({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='popover-header' - className={cn('flex flex-col gap-1 text-sm', className)} - {...props} - /> - ); -} - -function PopoverTitle({ className, ...props }: React.ComponentProps<'h2'>) { - return ( - <div - data-slot='popover-title' - className={cn('font-medium', className)} - {...props} - /> - ); -} - -function PopoverDescription({ +const PopoverHeader = ({ className, ...props -}: React.ComponentProps<'p'>) { - return ( - <p - data-slot='popover-description' - className={cn('text-muted-foreground', className)} - {...props} - /> - ); -} +}: React.ComponentProps<'div'>) => ( + <div + data-slot='popover-header' + className={cn('flex flex-col gap-1 text-sm', className)} + {...props} + /> +); + +const PopoverTitle = ({ className, ...props }: React.ComponentProps<'h2'>) => ( + <div + data-slot='popover-title' + className={cn('font-medium', className)} + {...props} + /> +); + +const PopoverDescription = ({ + className, + ...props +}: React.ComponentProps<'p'>) => ( + <p + data-slot='popover-description' + className={cn('text-muted-foreground', className)} + {...props} + /> +); export { Popover, diff --git a/packages/ui/src/progress.tsx b/packages/ui/src/progress.tsx index 77a69c5..d0695dd 100644 --- a/packages/ui/src/progress.tsx +++ b/packages/ui/src/progress.tsx @@ -5,27 +5,25 @@ import { Progress as ProgressPrimitive } from 'radix-ui'; import { cn } from '@gib/ui'; -function Progress({ +const Progress = ({ className, value, ...props -}: React.ComponentProps<typeof ProgressPrimitive.Root>) { - return ( - <ProgressPrimitive.Root - data-slot='progress' - className={cn( - 'bg-muted relative flex h-1 w-full items-center overflow-x-hidden rounded-full', - className, - )} - {...props} - > - <ProgressPrimitive.Indicator - data-slot='progress-indicator' - className='bg-primary size-full flex-1 transition-all' - style={{ transform: `translateX(-${100 - (value || 0)}%)` }} - /> - </ProgressPrimitive.Root> - ); -} +}: React.ComponentProps<typeof ProgressPrimitive.Root>) => ( + <ProgressPrimitive.Root + data-slot='progress' + className={cn( + 'bg-muted relative flex h-1 w-full items-center overflow-x-hidden rounded-full', + className, + )} + {...props} + > + <ProgressPrimitive.Indicator + data-slot='progress-indicator' + className='bg-primary size-full flex-1 transition-all' + style={{ transform: `translateX(-${100 - (value || 0)}%)` }} + /> + </ProgressPrimitive.Root> +); export { Progress }; diff --git a/packages/ui/src/radio-group.tsx b/packages/ui/src/radio-group.tsx index c71176f..081064a 100644 --- a/packages/ui/src/radio-group.tsx +++ b/packages/ui/src/radio-group.tsx @@ -6,40 +6,36 @@ import { RadioGroup as RadioGroupPrimitive } from 'radix-ui'; import { cn } from '@gib/ui'; -function RadioGroup({ +const RadioGroup = ({ className, ...props -}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) { - return ( - <RadioGroupPrimitive.Root - data-slot='radio-group' - className={cn('grid gap-3', className)} - {...props} - /> - ); -} +}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) => ( + <RadioGroupPrimitive.Root + data-slot='radio-group' + className={cn('grid gap-3', className)} + {...props} + /> +); -function RadioGroupItem({ +const RadioGroupItem = ({ className, ...props -}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) { - return ( - <RadioGroupPrimitive.Item - data-slot='radio-group-item' - className={cn( - 'border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:bg-input/30 dark:aria-invalid:ring-destructive/40 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50', - className, - )} - {...props} +}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) => ( + <RadioGroupPrimitive.Item + data-slot='radio-group-item' + className={cn( + 'border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:bg-input/30 dark:aria-invalid:ring-destructive/40 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50', + className, + )} + {...props} + > + <RadioGroupPrimitive.Indicator + data-slot='radio-group-indicator' + className='relative flex items-center justify-center' > - <RadioGroupPrimitive.Indicator - data-slot='radio-group-indicator' - className='relative flex items-center justify-center' - > - <CircleIcon className='fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2' /> - </RadioGroupPrimitive.Indicator> - </RadioGroupPrimitive.Item> - ); -} + <CircleIcon className='fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2' /> + </RadioGroupPrimitive.Indicator> + </RadioGroupPrimitive.Item> +); export { RadioGroup, RadioGroupItem }; diff --git a/packages/ui/src/resizable.tsx b/packages/ui/src/resizable.tsx index f777a37..d56d848 100644 --- a/packages/ui/src/resizable.tsx +++ b/packages/ui/src/resizable.tsx @@ -5,49 +5,45 @@ import * as ResizablePrimitive from 'react-resizable-panels'; import { cn } from '@gib/ui'; -function ResizablePanelGroup({ +const ResizablePanelGroup = ({ className, ...props -}: ResizablePrimitive.GroupProps) { - return ( - <ResizablePrimitive.Group - data-slot='resizable-panel-group' - className={cn( - 'flex h-full w-full aria-[orientation=vertical]:flex-col', - className, - )} - {...props} - /> - ); -} +}: ResizablePrimitive.GroupProps) => ( + <ResizablePrimitive.Group + data-slot='resizable-panel-group' + className={cn( + 'flex h-full w-full aria-[orientation=vertical]:flex-col', + className, + )} + {...props} + /> +); -function ResizablePanel({ ...props }: ResizablePrimitive.PanelProps) { - return <ResizablePrimitive.Panel data-slot='resizable-panel' {...props} />; -} +const ResizablePanel = ({ ...props }: ResizablePrimitive.PanelProps) => ( + <ResizablePrimitive.Panel data-slot='resizable-panel' {...props} /> +); -function ResizableHandle({ +const ResizableHandle = ({ withHandle, className, ...props }: ResizablePrimitive.SeparatorProps & { withHandle?: boolean; -}) { - return ( - <ResizablePrimitive.Separator - data-slot='resizable-handle' - className={cn( - 'bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90', - className, - )} - {...props} - > - {withHandle && ( - <div className='bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border'> - <GripVerticalIcon className='size-2.5' /> - </div> - )} - </ResizablePrimitive.Separator> - ); -} +}) => ( + <ResizablePrimitive.Separator + data-slot='resizable-handle' + className={cn( + 'bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90', + className, + )} + {...props} + > + {withHandle && ( + <div className='bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border'> + <GripVerticalIcon className='size-2.5' /> + </div> + )} + </ResizablePrimitive.Separator> +); export { ResizableHandle, ResizablePanel, ResizablePanelGroup }; diff --git a/packages/ui/src/scroll-area.tsx b/packages/ui/src/scroll-area.tsx index 8611c0a..50b21bd 100644 --- a/packages/ui/src/scroll-area.tsx +++ b/packages/ui/src/scroll-area.tsx @@ -5,51 +5,47 @@ import { ScrollArea as ScrollAreaPrimitive } from 'radix-ui'; import { cn } from '@gib/ui'; -function ScrollArea({ +const ScrollArea = ({ className, children, ...props -}: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) { - return ( - <ScrollAreaPrimitive.Root - data-slot='scroll-area' - className={cn('relative', className)} - {...props} +}: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) => ( + <ScrollAreaPrimitive.Root + data-slot='scroll-area' + className={cn('relative', className)} + {...props} + > + <ScrollAreaPrimitive.Viewport + data-slot='scroll-area-viewport' + className='focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1' > - <ScrollAreaPrimitive.Viewport - data-slot='scroll-area-viewport' - className='focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1' - > - {children} - </ScrollAreaPrimitive.Viewport> - <ScrollBar /> - <ScrollAreaPrimitive.Corner /> - </ScrollAreaPrimitive.Root> - ); -} + {children} + </ScrollAreaPrimitive.Viewport> + <ScrollBar /> + <ScrollAreaPrimitive.Corner /> + </ScrollAreaPrimitive.Root> +); -function ScrollBar({ +const ScrollBar = ({ className, orientation = 'vertical', ...props -}: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) { - return ( - <ScrollAreaPrimitive.ScrollAreaScrollbar - data-slot='scroll-area-scrollbar' - data-orientation={orientation} - orientation={orientation} - className={cn( - 'flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent', - className, - )} - {...props} - > - <ScrollAreaPrimitive.ScrollAreaThumb - data-slot='scroll-area-thumb' - className='bg-border relative flex-1 rounded-full' - /> - </ScrollAreaPrimitive.ScrollAreaScrollbar> - ); -} +}: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) => ( + <ScrollAreaPrimitive.ScrollAreaScrollbar + data-slot='scroll-area-scrollbar' + data-orientation={orientation} + orientation={orientation} + className={cn( + 'flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent', + className, + )} + {...props} + > + <ScrollAreaPrimitive.ScrollAreaThumb + data-slot='scroll-area-thumb' + className='bg-border relative flex-1 rounded-full' + /> + </ScrollAreaPrimitive.ScrollAreaScrollbar> +); export { ScrollArea, ScrollBar }; diff --git a/packages/ui/src/select.tsx b/packages/ui/src/select.tsx index 00c0d4b..b60da0b 100644 --- a/packages/ui/src/select.tsx +++ b/packages/ui/src/select.tsx @@ -6,175 +6,161 @@ import { Select as SelectPrimitive } from 'radix-ui'; import { cn } from '@gib/ui'; -function Select({ +const Select = ({ ...props -}: React.ComponentProps<typeof SelectPrimitive.Root>) { - return <SelectPrimitive.Root data-slot='select' {...props} />; -} +}: React.ComponentProps<typeof SelectPrimitive.Root>) => ( + <SelectPrimitive.Root data-slot='select' {...props} /> +); -function SelectGroup({ +const SelectGroup = ({ ...props -}: React.ComponentProps<typeof SelectPrimitive.Group>) { - return <SelectPrimitive.Group data-slot='select-group' {...props} />; -} +}: React.ComponentProps<typeof SelectPrimitive.Group>) => ( + <SelectPrimitive.Group data-slot='select-group' {...props} /> +); -function SelectValue({ +const SelectValue = ({ ...props -}: React.ComponentProps<typeof SelectPrimitive.Value>) { - return <SelectPrimitive.Value data-slot='select-value' {...props} />; -} +}: React.ComponentProps<typeof SelectPrimitive.Value>) => ( + <SelectPrimitive.Value data-slot='select-value' {...props} /> +); -function SelectTrigger({ +const SelectTrigger = ({ className, size = 'default', children, ...props }: React.ComponentProps<typeof SelectPrimitive.Trigger> & { size?: 'sm' | 'default'; -}) { - return ( - <SelectPrimitive.Trigger - data-slot='select-trigger' - data-size={size} - className={cn( - "border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:ring-destructive/40 [&_svg:not([class*='text-'])]:text-muted-foreground flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", - className, - )} - {...props} - > - {children} - <SelectPrimitive.Icon asChild> - <ChevronDownIcon className='size-4 opacity-50' /> - </SelectPrimitive.Icon> - </SelectPrimitive.Trigger> - ); -} +}) => ( + <SelectPrimitive.Trigger + data-slot='select-trigger' + data-size={size} + className={cn( + "border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:ring-destructive/40 [&_svg:not([class*='text-'])]:text-muted-foreground flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", + className, + )} + {...props} + > + {children} + <SelectPrimitive.Icon asChild> + <ChevronDownIcon className='size-4 opacity-50' /> + </SelectPrimitive.Icon> + </SelectPrimitive.Trigger> +); -function SelectContent({ +const SelectContent = ({ className, children, position = 'item-aligned', align = 'center', ...props -}: React.ComponentProps<typeof SelectPrimitive.Content>) { - return ( - <SelectPrimitive.Portal> - <SelectPrimitive.Content - data-slot='select-content' +}: React.ComponentProps<typeof SelectPrimitive.Content>) => ( + <SelectPrimitive.Portal> + <SelectPrimitive.Content + data-slot='select-content' + className={cn( + 'bg-popover text-popover-foreground data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md', + position === 'popper' && + 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1', + className, + )} + position={position} + align={align} + {...props} + > + <SelectScrollUpButton /> + <SelectPrimitive.Viewport className={cn( - 'bg-popover text-popover-foreground data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md', + 'p-1', position === 'popper' && - 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1', - className, + 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1', )} - position={position} - align={align} - {...props} > - <SelectScrollUpButton /> - <SelectPrimitive.Viewport - className={cn( - 'p-1', - position === 'popper' && - 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1', - )} - > - {children} - </SelectPrimitive.Viewport> - <SelectScrollDownButton /> - </SelectPrimitive.Content> - </SelectPrimitive.Portal> - ); -} + {children} + </SelectPrimitive.Viewport> + <SelectScrollDownButton /> + </SelectPrimitive.Content> + </SelectPrimitive.Portal> +); -function SelectLabel({ +const SelectLabel = ({ className, ...props -}: React.ComponentProps<typeof SelectPrimitive.Label>) { - return ( - <SelectPrimitive.Label - data-slot='select-label' - className={cn('text-muted-foreground px-2 py-1.5 text-xs', className)} - {...props} - /> - ); -} +}: React.ComponentProps<typeof SelectPrimitive.Label>) => ( + <SelectPrimitive.Label + data-slot='select-label' + className={cn('text-muted-foreground px-2 py-1.5 text-xs', className)} + {...props} + /> +); -function SelectItem({ +const SelectItem = ({ className, children, ...props -}: React.ComponentProps<typeof SelectPrimitive.Item>) { - return ( - <SelectPrimitive.Item - data-slot='select-item' - className={cn( - "focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", - className, - )} - {...props} +}: React.ComponentProps<typeof SelectPrimitive.Item>) => ( + <SelectPrimitive.Item + data-slot='select-item' + className={cn( + "focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", + className, + )} + {...props} + > + <span + data-slot='select-item-indicator' + className='absolute right-2 flex size-3.5 items-center justify-center' > - <span - data-slot='select-item-indicator' - className='absolute right-2 flex size-3.5 items-center justify-center' - > - <SelectPrimitive.ItemIndicator> - <CheckIcon className='size-4' /> - </SelectPrimitive.ItemIndicator> - </span> - <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText> - </SelectPrimitive.Item> - ); -} + <SelectPrimitive.ItemIndicator> + <CheckIcon className='size-4' /> + </SelectPrimitive.ItemIndicator> + </span> + <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText> + </SelectPrimitive.Item> +); -function SelectSeparator({ +const SelectSeparator = ({ className, ...props -}: React.ComponentProps<typeof SelectPrimitive.Separator>) { - return ( - <SelectPrimitive.Separator - data-slot='select-separator' - className={cn('bg-border pointer-events-none -mx-1 my-1 h-px', className)} - {...props} - /> - ); -} +}: React.ComponentProps<typeof SelectPrimitive.Separator>) => ( + <SelectPrimitive.Separator + data-slot='select-separator' + className={cn('bg-border pointer-events-none -mx-1 my-1 h-px', className)} + {...props} + /> +); -function SelectScrollUpButton({ +const SelectScrollUpButton = ({ className, ...props -}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) { - return ( - <SelectPrimitive.ScrollUpButton - data-slot='select-scroll-up-button' - className={cn( - 'flex cursor-default items-center justify-center py-1', - className, - )} - {...props} - > - <ChevronUpIcon className='size-4' /> - </SelectPrimitive.ScrollUpButton> - ); -} +}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) => ( + <SelectPrimitive.ScrollUpButton + data-slot='select-scroll-up-button' + className={cn( + 'flex cursor-default items-center justify-center py-1', + className, + )} + {...props} + > + <ChevronUpIcon className='size-4' /> + </SelectPrimitive.ScrollUpButton> +); -function SelectScrollDownButton({ +const SelectScrollDownButton = ({ className, ...props -}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) { - return ( - <SelectPrimitive.ScrollDownButton - data-slot='select-scroll-down-button' - className={cn( - 'flex cursor-default items-center justify-center py-1', - className, - )} - {...props} - > - <ChevronDownIcon className='size-4' /> - </SelectPrimitive.ScrollDownButton> - ); -} +}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) => ( + <SelectPrimitive.ScrollDownButton + data-slot='select-scroll-down-button' + className={cn( + 'flex cursor-default items-center justify-center py-1', + className, + )} + {...props} + > + <ChevronDownIcon className='size-4' /> + </SelectPrimitive.ScrollDownButton> +); export { Select, diff --git a/packages/ui/src/separator.tsx b/packages/ui/src/separator.tsx index 510c4a3..fc0598c 100644 --- a/packages/ui/src/separator.tsx +++ b/packages/ui/src/separator.tsx @@ -5,24 +5,22 @@ import * as SeparatorPrimitive from '@radix-ui/react-separator'; import { cn } from '@gib/ui'; -function Separator({ +const Separator = ({ className, orientation = 'horizontal', decorative = true, ...props -}: React.ComponentProps<typeof SeparatorPrimitive.Root>) { - return ( - <SeparatorPrimitive.Root - data-slot='separator' - decorative={decorative} - orientation={orientation} - className={cn( - 'bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<typeof SeparatorPrimitive.Root>) => ( + <SeparatorPrimitive.Root + data-slot='separator' + decorative={decorative} + orientation={orientation} + className={cn( + 'bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px', + className, + )} + {...props} + /> +); export { Separator }; diff --git a/packages/ui/src/sheet.tsx b/packages/ui/src/sheet.tsx index 74e6fcd..bc6077c 100644 --- a/packages/ui/src/sheet.tsx +++ b/packages/ui/src/sheet.tsx @@ -6,45 +6,45 @@ import { Dialog as SheetPrimitive } from 'radix-ui'; import { cn } from '@gib/ui'; -function Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) { - return <SheetPrimitive.Root data-slot='sheet' {...props} />; -} - -function SheetTrigger({ +const Sheet = ({ ...props -}: React.ComponentProps<typeof SheetPrimitive.Trigger>) { - return <SheetPrimitive.Trigger data-slot='sheet-trigger' {...props} />; -} +}: React.ComponentProps<typeof SheetPrimitive.Root>) => ( + <SheetPrimitive.Root data-slot='sheet' {...props} /> +); -function SheetClose({ +const SheetTrigger = ({ ...props -}: React.ComponentProps<typeof SheetPrimitive.Close>) { - return <SheetPrimitive.Close data-slot='sheet-close' {...props} />; -} +}: React.ComponentProps<typeof SheetPrimitive.Trigger>) => ( + <SheetPrimitive.Trigger data-slot='sheet-trigger' {...props} /> +); -function SheetPortal({ +const SheetClose = ({ ...props -}: React.ComponentProps<typeof SheetPrimitive.Portal>) { - return <SheetPrimitive.Portal data-slot='sheet-portal' {...props} />; -} +}: React.ComponentProps<typeof SheetPrimitive.Close>) => ( + <SheetPrimitive.Close data-slot='sheet-close' {...props} /> +); -function SheetOverlay({ +const SheetPortal = ({ + ...props +}: React.ComponentProps<typeof SheetPrimitive.Portal>) => ( + <SheetPrimitive.Portal data-slot='sheet-portal' {...props} /> +); + +const SheetOverlay = ({ className, ...props -}: React.ComponentProps<typeof SheetPrimitive.Overlay>) { - return ( - <SheetPrimitive.Overlay - data-slot='sheet-overlay' - className={cn( - 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<typeof SheetPrimitive.Overlay>) => ( + <SheetPrimitive.Overlay + data-slot='sheet-overlay' + className={cn( + 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50', + className, + )} + {...props} + /> +); -function SheetContent({ +const SheetContent = ({ className, children, side = 'right', @@ -53,83 +53,73 @@ function SheetContent({ }: React.ComponentProps<typeof SheetPrimitive.Content> & { side?: 'top' | 'right' | 'bottom' | 'left'; showCloseButton?: boolean; -}) { - return ( - <SheetPortal> - <SheetOverlay /> - <SheetPrimitive.Content - data-slot='sheet-content' - className={cn( - 'bg-background data-[state=closed]:animate-out data-[state=open]:animate-in fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500', - side === 'right' && - 'data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm', - side === 'left' && - 'data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm', - side === 'top' && - 'data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b', - side === 'bottom' && - 'data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t', - className, - )} - {...props} - > - {children} - {showCloseButton && ( - <SheetPrimitive.Close className='ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none'> - <XIcon className='size-4' /> - <span className='sr-only'>Close</span> - </SheetPrimitive.Close> - )} - </SheetPrimitive.Content> - </SheetPortal> - ); -} - -function SheetHeader({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='sheet-header' - className={cn('flex flex-col gap-1.5 p-4', className)} +}) => ( + <SheetPortal> + <SheetOverlay /> + <SheetPrimitive.Content + data-slot='sheet-content' + className={cn( + 'bg-background data-[state=closed]:animate-out data-[state=open]:animate-in fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500', + side === 'right' && + 'data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm', + side === 'left' && + 'data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm', + side === 'top' && + 'data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b', + side === 'bottom' && + 'data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t', + className, + )} {...props} - /> - ); -} + > + {children} + {showCloseButton && ( + <SheetPrimitive.Close className='ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none'> + <XIcon className='size-4' /> + <span className='sr-only'>Close</span> + </SheetPrimitive.Close> + )} + </SheetPrimitive.Content> + </SheetPortal> +); -function SheetFooter({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='sheet-footer' - className={cn('mt-auto flex flex-col gap-2 p-4', className)} - {...props} - /> - ); -} +const SheetHeader = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='sheet-header' + className={cn('flex flex-col gap-1.5 p-4', className)} + {...props} + /> +); -function SheetTitle({ +const SheetFooter = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='sheet-footer' + className={cn('mt-auto flex flex-col gap-2 p-4', className)} + {...props} + /> +); + +const SheetTitle = ({ className, ...props -}: React.ComponentProps<typeof SheetPrimitive.Title>) { - return ( - <SheetPrimitive.Title - data-slot='sheet-title' - className={cn('text-foreground font-semibold', className)} - {...props} - /> - ); -} +}: React.ComponentProps<typeof SheetPrimitive.Title>) => ( + <SheetPrimitive.Title + data-slot='sheet-title' + className={cn('text-foreground font-semibold', className)} + {...props} + /> +); -function SheetDescription({ +const SheetDescription = ({ className, ...props -}: React.ComponentProps<typeof SheetPrimitive.Description>) { - return ( - <SheetPrimitive.Description - data-slot='sheet-description' - className={cn('text-muted-foreground text-sm', className)} - {...props} - /> - ); -} +}: React.ComponentProps<typeof SheetPrimitive.Description>) => ( + <SheetPrimitive.Description + data-slot='sheet-description' + className={cn('text-muted-foreground text-sm', className)} + {...props} + /> +); export { Sheet, diff --git a/packages/ui/src/sidebar.tsx b/packages/ui/src/sidebar.tsx index 60ef81d..71e04b6 100644 --- a/packages/ui/src/sidebar.tsx +++ b/packages/ui/src/sidebar.tsx @@ -31,7 +31,7 @@ const SIDEBAR_WIDTH_MOBILE = '18rem'; const SIDEBAR_WIDTH_ICON = '3rem'; const SIDEBAR_KEYBOARD_SHORTCUT = 'b'; -type SidebarContextProps = { +interface SidebarContextProps { state: 'expanded' | 'collapsed'; open: boolean; setOpen: (open: boolean) => void; @@ -39,20 +39,20 @@ type SidebarContextProps = { setOpenMobile: (open: boolean) => void; isMobile: boolean; toggleSidebar: () => void; -}; +} const SidebarContext = React.createContext<SidebarContextProps | null>(null); -function useSidebar() { +const useSidebar = () => { const context = React.useContext(SidebarContext); if (!context) { throw new Error('useSidebar must be used within a SidebarProvider.'); } return context; -} +}; -function SidebarProvider({ +const SidebarProvider = ({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, @@ -64,7 +64,7 @@ function SidebarProvider({ defaultOpen?: boolean; open?: boolean; onOpenChange?: (open: boolean) => void; -}) { +}) => { const isMobile = useIsMobile(); const [openMobile, setOpenMobile] = React.useState(false); @@ -148,9 +148,9 @@ function SidebarProvider({ </TooltipProvider> </SidebarContext.Provider> ); -} +}; -function Sidebar({ +const Sidebar = ({ side = 'left', variant = 'sidebar', collapsible = 'offcanvas', @@ -161,7 +161,7 @@ function Sidebar({ side?: 'left' | 'right'; variant?: 'sidebar' | 'floating' | 'inset'; collapsible?: 'offcanvas' | 'icon' | 'none'; -}) { +}) => { const { isMobile, state, openMobile, setOpenMobile } = useSidebar(); if (collapsible === 'none') { @@ -250,13 +250,13 @@ function Sidebar({ </div> </div> ); -} +}; -function SidebarTrigger({ +const SidebarTrigger = ({ className, onClick, ...props -}: React.ComponentProps<typeof Button>) { +}: React.ComponentProps<typeof Button>) => { const { toggleSidebar } = useSidebar(); return ( @@ -276,9 +276,12 @@ function SidebarTrigger({ <span className='sr-only'>Toggle Sidebar</span> </Button> ); -} +}; -function SidebarRail({ className, ...props }: React.ComponentProps<'button'>) { +const SidebarRail = ({ + className, + ...props +}: React.ComponentProps<'button'>) => { const { toggleSidebar } = useSidebar(); return ( @@ -301,102 +304,100 @@ function SidebarRail({ className, ...props }: React.ComponentProps<'button'>) { {...props} /> ); -} +}; -function SidebarInset({ className, ...props }: React.ComponentProps<'main'>) { - return ( - <main - data-slot='sidebar-inset' - className={cn( - 'bg-background relative flex w-full flex-1 flex-col', - 'md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2', - className, - )} - {...props} - /> - ); -} - -function SidebarInput({ +const SidebarInset = ({ className, ...props -}: React.ComponentProps<typeof Input>) { - return ( - <Input - data-slot='sidebar-input' - data-sidebar='input' - className={cn('bg-background h-8 w-full shadow-none', className)} - {...props} - /> - ); -} +}: React.ComponentProps<'main'>) => ( + <main + data-slot='sidebar-inset' + className={cn( + 'bg-background relative flex w-full flex-1 flex-col', + 'md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2', + className, + )} + {...props} + /> +); -function SidebarHeader({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='sidebar-header' - data-sidebar='header' - className={cn('flex flex-col gap-2 p-2', className)} - {...props} - /> - ); -} - -function SidebarFooter({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='sidebar-footer' - data-sidebar='footer' - className={cn('flex flex-col gap-2 p-2', className)} - {...props} - /> - ); -} - -function SidebarSeparator({ +const SidebarInput = ({ className, ...props -}: React.ComponentProps<typeof Separator>) { - return ( - <Separator - data-slot='sidebar-separator' - data-sidebar='separator' - className={cn('bg-sidebar-border mx-2 w-auto', className)} - {...props} - /> - ); -} +}: React.ComponentProps<typeof Input>) => ( + <Input + data-slot='sidebar-input' + data-sidebar='input' + className={cn('bg-background h-8 w-full shadow-none', className)} + {...props} + /> +); -function SidebarContent({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='sidebar-content' - data-sidebar='content' - className={cn( - 'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden', - className, - )} - {...props} - /> - ); -} +const SidebarHeader = ({ + className, + ...props +}: React.ComponentProps<'div'>) => ( + <div + data-slot='sidebar-header' + data-sidebar='header' + className={cn('flex flex-col gap-2 p-2', className)} + {...props} + /> +); -function SidebarGroup({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='sidebar-group' - data-sidebar='group' - className={cn('relative flex w-full min-w-0 flex-col p-2', className)} - {...props} - /> - ); -} +const SidebarFooter = ({ + className, + ...props +}: React.ComponentProps<'div'>) => ( + <div + data-slot='sidebar-footer' + data-sidebar='footer' + className={cn('flex flex-col gap-2 p-2', className)} + {...props} + /> +); -function SidebarGroupLabel({ +const SidebarSeparator = ({ + className, + ...props +}: React.ComponentProps<typeof Separator>) => ( + <Separator + data-slot='sidebar-separator' + data-sidebar='separator' + className={cn('bg-sidebar-border mx-2 w-auto', className)} + {...props} + /> +); + +const SidebarContent = ({ + className, + ...props +}: React.ComponentProps<'div'>) => ( + <div + data-slot='sidebar-content' + data-sidebar='content' + className={cn( + 'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden', + className, + )} + {...props} + /> +); + +const SidebarGroup = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='sidebar-group' + data-sidebar='group' + className={cn('relative flex w-full min-w-0 flex-col p-2', className)} + {...props} + /> +); + +const SidebarGroupLabel = ({ className, asChild = false, ...props -}: React.ComponentProps<'div'> & { asChild?: boolean }) { +}: React.ComponentProps<'div'> & { asChild?: boolean }) => { const Comp = asChild ? Slot.Root : 'div'; return ( @@ -411,13 +412,13 @@ function SidebarGroupLabel({ {...props} /> ); -} +}; -function SidebarGroupAction({ +const SidebarGroupAction = ({ className, asChild = false, ...props -}: React.ComponentProps<'button'> & { asChild?: boolean }) { +}: React.ComponentProps<'button'> & { asChild?: boolean }) => { const Comp = asChild ? Slot.Root : 'button'; return ( @@ -434,43 +435,40 @@ function SidebarGroupAction({ {...props} /> ); -} +}; -function SidebarGroupContent({ +const SidebarGroupContent = ({ className, ...props -}: React.ComponentProps<'div'>) { - return ( - <div - data-slot='sidebar-group-content' - data-sidebar='group-content' - className={cn('w-full text-sm', className)} - {...props} - /> - ); -} +}: React.ComponentProps<'div'>) => ( + <div + data-slot='sidebar-group-content' + data-sidebar='group-content' + className={cn('w-full text-sm', className)} + {...props} + /> +); -function SidebarMenu({ className, ...props }: React.ComponentProps<'ul'>) { - return ( - <ul - data-slot='sidebar-menu' - data-sidebar='menu' - className={cn('flex w-full min-w-0 flex-col gap-1', className)} - {...props} - /> - ); -} +const SidebarMenu = ({ className, ...props }: React.ComponentProps<'ul'>) => ( + <ul + data-slot='sidebar-menu' + data-sidebar='menu' + className={cn('flex w-full min-w-0 flex-col gap-1', className)} + {...props} + /> +); -function SidebarMenuItem({ className, ...props }: React.ComponentProps<'li'>) { - return ( - <li - data-slot='sidebar-menu-item' - data-sidebar='menu-item' - className={cn('group/menu-item relative', className)} - {...props} - /> - ); -} +const SidebarMenuItem = ({ + className, + ...props +}: React.ComponentProps<'li'>) => ( + <li + data-slot='sidebar-menu-item' + data-sidebar='menu-item' + className={cn('group/menu-item relative', className)} + {...props} + /> +); const sidebarMenuButtonVariants = cva( 'peer/menu-button ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:font-medium [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0', @@ -494,7 +492,7 @@ const sidebarMenuButtonVariants = cva( }, ); -function SidebarMenuButton({ +const SidebarMenuButton = ({ asChild = false, isActive = false, variant = 'default', @@ -506,7 +504,7 @@ function SidebarMenuButton({ asChild?: boolean; isActive?: boolean; tooltip?: string | React.ComponentProps<typeof TooltipContent>; -} & VariantProps<typeof sidebarMenuButtonVariants>) { +} & VariantProps<typeof sidebarMenuButtonVariants>) => { const Comp = asChild ? Slot.Root : 'button'; const { isMobile, state } = useSidebar(); @@ -542,9 +540,9 @@ function SidebarMenuButton({ /> </Tooltip> ); -} +}; -function SidebarMenuAction({ +const SidebarMenuAction = ({ className, asChild = false, showOnHover = false, @@ -552,7 +550,7 @@ function SidebarMenuAction({ }: React.ComponentProps<'button'> & { asChild?: boolean; showOnHover?: boolean; -}) { +}) => { const Comp = asChild ? Slot.Root : 'button'; return ( @@ -574,37 +572,35 @@ function SidebarMenuAction({ {...props} /> ); -} +}; -function SidebarMenuBadge({ +const SidebarMenuBadge = ({ className, ...props -}: React.ComponentProps<'div'>) { - return ( - <div - data-slot='sidebar-menu-badge' - data-sidebar='menu-badge' - className={cn( - 'text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none', - 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground', - 'peer-data-[size=sm]/menu-button:top-1', - 'peer-data-[size=default]/menu-button:top-1.5', - 'peer-data-[size=lg]/menu-button:top-2.5', - 'group-data-[collapsible=icon]:hidden', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<'div'>) => ( + <div + data-slot='sidebar-menu-badge' + data-sidebar='menu-badge' + className={cn( + 'text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none', + 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground', + 'peer-data-[size=sm]/menu-button:top-1', + 'peer-data-[size=default]/menu-button:top-1.5', + 'peer-data-[size=lg]/menu-button:top-2.5', + 'group-data-[collapsible=icon]:hidden', + className, + )} + {...props} + /> +); -function SidebarMenuSkeleton({ +const SidebarMenuSkeleton = ({ className, showIcon = false, ...props }: React.ComponentProps<'div'> & { showIcon?: boolean; -}) { +}) => { // Random width between 50 to 90%. const width = React.useMemo(() => { return `${Math.floor(Math.random() * 40) + 50}%`; @@ -634,38 +630,37 @@ function SidebarMenuSkeleton({ /> </div> ); -} +}; -function SidebarMenuSub({ className, ...props }: React.ComponentProps<'ul'>) { - return ( - <ul - data-slot='sidebar-menu-sub' - data-sidebar='menu-sub' - className={cn( - 'border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5', - 'group-data-[collapsible=icon]:hidden', - className, - )} - {...props} - /> - ); -} - -function SidebarMenuSubItem({ +const SidebarMenuSub = ({ className, ...props -}: React.ComponentProps<'li'>) { - return ( - <li - data-slot='sidebar-menu-sub-item' - data-sidebar='menu-sub-item' - className={cn('group/menu-sub-item relative', className)} - {...props} - /> - ); -} +}: React.ComponentProps<'ul'>) => ( + <ul + data-slot='sidebar-menu-sub' + data-sidebar='menu-sub' + className={cn( + 'border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5', + 'group-data-[collapsible=icon]:hidden', + className, + )} + {...props} + /> +); -function SidebarMenuSubButton({ +const SidebarMenuSubItem = ({ + className, + ...props +}: React.ComponentProps<'li'>) => ( + <li + data-slot='sidebar-menu-sub-item' + data-sidebar='menu-sub-item' + className={cn('group/menu-sub-item relative', className)} + {...props} + /> +); + +const SidebarMenuSubButton = ({ asChild = false, size = 'md', isActive = false, @@ -675,7 +670,7 @@ function SidebarMenuSubButton({ asChild?: boolean; size?: 'sm' | 'md'; isActive?: boolean; -}) { +}) => { const Comp = asChild ? Slot.Root : 'a'; return ( @@ -695,7 +690,7 @@ function SidebarMenuSubButton({ {...props} /> ); -} +}; export { Sidebar, diff --git a/packages/ui/src/skeleton.tsx b/packages/ui/src/skeleton.tsx index 486e73e..3264172 100644 --- a/packages/ui/src/skeleton.tsx +++ b/packages/ui/src/skeleton.tsx @@ -1,13 +1,11 @@ import { cn } from '@gib/ui'; -function Skeleton({ className, ...props }: React.ComponentProps<'div'>) { - return ( - <div - data-slot='skeleton' - className={cn('bg-accent animate-pulse rounded-md', className)} - {...props} - /> - ); -} +const Skeleton = ({ className, ...props }: React.ComponentProps<'div'>) => ( + <div + data-slot='skeleton' + className={cn('bg-accent animate-pulse rounded-md', className)} + {...props} + /> +); export { Skeleton }; diff --git a/packages/ui/src/slider.tsx b/packages/ui/src/slider.tsx index e0a6851..56123f4 100644 --- a/packages/ui/src/slider.tsx +++ b/packages/ui/src/slider.tsx @@ -5,14 +5,14 @@ import { Slider as SliderPrimitive } from 'radix-ui'; import { cn } from '@gib/ui'; -function Slider({ +const Slider = ({ className, defaultValue, value, min = 0, max = 100, ...props -}: React.ComponentProps<typeof SliderPrimitive.Root>) { +}: React.ComponentProps<typeof SliderPrimitive.Root>) => { const _values = React.useMemo( () => Array.isArray(value) @@ -58,6 +58,6 @@ function Slider({ ))} </SliderPrimitive.Root> ); -} +}; export { Slider }; diff --git a/packages/ui/src/spinner.tsx b/packages/ui/src/spinner.tsx index 7b434be..fb0d874 100644 --- a/packages/ui/src/spinner.tsx +++ b/packages/ui/src/spinner.tsx @@ -2,15 +2,13 @@ import { Loader2Icon } from 'lucide-react'; import { cn } from '@gib/ui'; -function Spinner({ className, ...props }: React.ComponentProps<'svg'>) { - return ( - <Loader2Icon - role='status' - aria-label='Loading' - className={cn('size-4 animate-spin', className)} - {...props} - /> - ); -} +const Spinner = ({ className, ...props }: React.ComponentProps<'svg'>) => ( + <Loader2Icon + role='status' + aria-label='Loading' + className={cn('size-4 animate-spin', className)} + {...props} + /> +); export { Spinner }; diff --git a/packages/ui/src/switch.tsx b/packages/ui/src/switch.tsx index 19a120d..ccb4582 100644 --- a/packages/ui/src/switch.tsx +++ b/packages/ui/src/switch.tsx @@ -5,29 +5,27 @@ import { Switch as SwitchPrimitive } from 'radix-ui'; import { cn } from '@gib/ui'; -function Switch({ +const Switch = ({ className, size = 'default', ...props }: React.ComponentProps<typeof SwitchPrimitive.Root> & { size?: 'sm' | 'default'; -}) { - return ( - <SwitchPrimitive.Root - data-slot='switch' - data-size={size} - className={cn( - 'data-checked:bg-primary data-unchecked:bg-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 dark:data-unchecked:bg-input/80 peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-transparent transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-3 aria-invalid:ring-3 data-disabled:cursor-not-allowed data-disabled:opacity-50 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px]', - className, - )} - {...props} - > - <SwitchPrimitive.Thumb - data-slot='switch-thumb' - className='bg-background dark:data-unchecked:bg-foreground dark:data-checked:bg-primary-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0' - /> - </SwitchPrimitive.Root> - ); -} +}) => ( + <SwitchPrimitive.Root + data-slot='switch' + data-size={size} + className={cn( + 'data-checked:bg-primary data-unchecked:bg-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 dark:data-unchecked:bg-input/80 peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-transparent transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-3 aria-invalid:ring-3 data-disabled:cursor-not-allowed data-disabled:opacity-50 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px]', + className, + )} + {...props} + > + <SwitchPrimitive.Thumb + data-slot='switch-thumb' + className='bg-background dark:data-unchecked:bg-foreground dark:data-checked:bg-primary-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0' + /> + </SwitchPrimitive.Root> +); export { Switch }; diff --git a/packages/ui/src/table.tsx b/packages/ui/src/table.tsx index ad88bb6..6bb70af 100644 --- a/packages/ui/src/table.tsx +++ b/packages/ui/src/table.tsx @@ -4,105 +4,92 @@ import type * as React from 'react'; import { cn } from '@gib/ui'; -function Table({ className, ...props }: React.ComponentProps<'table'>) { - return ( - <div - data-slot='table-container' - className='relative w-full overflow-x-auto' - > - <table - data-slot='table' - className={cn('w-full caption-bottom text-sm', className)} - {...props} - /> - </div> - ); -} - -function TableHeader({ className, ...props }: React.ComponentProps<'thead'>) { - return ( - <thead - data-slot='table-header' - className={cn('[&_tr]:border-b', className)} +const Table = ({ className, ...props }: React.ComponentProps<'table'>) => ( + <div data-slot='table-container' className='relative w-full overflow-x-auto'> + <table + data-slot='table' + className={cn('w-full caption-bottom text-sm', className)} {...props} /> - ); -} + </div> +); -function TableBody({ className, ...props }: React.ComponentProps<'tbody'>) { - return ( - <tbody - data-slot='table-body' - className={cn('[&_tr:last-child]:border-0', className)} - {...props} - /> - ); -} - -function TableFooter({ className, ...props }: React.ComponentProps<'tfoot'>) { - return ( - <tfoot - data-slot='table-footer' - className={cn( - 'bg-muted/50 border-t font-medium [&>tr]:last:border-b-0', - className, - )} - {...props} - /> - ); -} - -function TableRow({ className, ...props }: React.ComponentProps<'tr'>) { - return ( - <tr - data-slot='table-row' - className={cn( - 'hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors', - className, - )} - {...props} - /> - ); -} - -function TableHead({ className, ...props }: React.ComponentProps<'th'>) { - return ( - <th - data-slot='table-head' - className={cn( - 'text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0', - className, - )} - {...props} - /> - ); -} - -function TableCell({ className, ...props }: React.ComponentProps<'td'>) { - return ( - <td - data-slot='table-cell' - className={cn( - 'p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0', - className, - )} - {...props} - /> - ); -} - -function TableCaption({ +const TableHeader = ({ className, ...props -}: React.ComponentProps<'caption'>) { - return ( - <caption - data-slot='table-caption' - className={cn('text-muted-foreground mt-4 text-sm', className)} - {...props} - /> - ); -} +}: React.ComponentProps<'thead'>) => ( + <thead + data-slot='table-header' + className={cn('[&_tr]:border-b', className)} + {...props} + /> +); + +const TableBody = ({ className, ...props }: React.ComponentProps<'tbody'>) => ( + <tbody + data-slot='table-body' + className={cn('[&_tr:last-child]:border-0', className)} + {...props} + /> +); + +const TableFooter = ({ + className, + ...props +}: React.ComponentProps<'tfoot'>) => ( + <tfoot + data-slot='table-footer' + className={cn( + 'bg-muted/50 border-t font-medium [&>tr]:last:border-b-0', + className, + )} + {...props} + /> +); + +const TableRow = ({ className, ...props }: React.ComponentProps<'tr'>) => ( + <tr + data-slot='table-row' + className={cn( + 'hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors', + className, + )} + {...props} + /> +); + +const TableHead = ({ className, ...props }: React.ComponentProps<'th'>) => ( + <th + data-slot='table-head' + className={cn( + 'text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0', + className, + )} + {...props} + /> +); + +const TableCell = ({ className, ...props }: React.ComponentProps<'td'>) => ( + <td + data-slot='table-cell' + className={cn( + 'p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0', + className, + )} + {...props} + /> +); + +const TableCaption = ({ + className, + ...props +}: React.ComponentProps<'caption'>) => ( + <caption + data-slot='table-caption' + className={cn('text-muted-foreground mt-4 text-sm', className)} + {...props} + /> +); export { Table, diff --git a/packages/ui/src/tabs.tsx b/packages/ui/src/tabs.tsx index 057a07d..ce9736c 100644 --- a/packages/ui/src/tabs.tsx +++ b/packages/ui/src/tabs.tsx @@ -7,23 +7,18 @@ import { Tabs as TabsPrimitive } from 'radix-ui'; import { cn } from '@gib/ui'; -function Tabs({ +const Tabs = ({ className, orientation = 'horizontal', ...props -}: React.ComponentProps<typeof TabsPrimitive.Root>) { - return ( - <TabsPrimitive.Root - data-slot='tabs' - data-orientation={orientation} - className={cn( - 'group/tabs flex gap-2 data-horizontal:flex-col', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<typeof TabsPrimitive.Root>) => ( + <TabsPrimitive.Root + data-slot='tabs' + data-orientation={orientation} + className={cn('group/tabs flex gap-2 data-horizontal:flex-col', className)} + {...props} + /> +); const tabsListVariants = cva( 'group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center rounded-lg p-[3px] group-data-horizontal/tabs:h-8 group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col data-[variant=line]:rounded-none', @@ -40,52 +35,46 @@ const tabsListVariants = cva( }, ); -function TabsList({ +const TabsList = ({ className, variant = 'default', ...props }: React.ComponentProps<typeof TabsPrimitive.List> & - VariantProps<typeof tabsListVariants>) { - return ( - <TabsPrimitive.List - data-slot='tabs-list' - data-variant={variant} - className={cn(tabsListVariants({ variant }), className)} - {...props} - /> - ); -} + VariantProps<typeof tabsListVariants>) => ( + <TabsPrimitive.List + data-slot='tabs-list' + data-variant={variant} + className={cn(tabsListVariants({ variant }), className)} + {...props} + /> +); -function TabsTrigger({ +const TabsTrigger = ({ className, ...props -}: React.ComponentProps<typeof TabsPrimitive.Trigger>) { - return ( - <TabsPrimitive.Trigger - data-slot='tabs-trigger' - className={cn( - "text-foreground/60 hover:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:text-muted-foreground dark:hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium whitespace-nowrap transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", - 'group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent', - 'data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground', - 'after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100', - className, - )} - {...props} - /> - ); -} +}: React.ComponentProps<typeof TabsPrimitive.Trigger>) => ( + <TabsPrimitive.Trigger + data-slot='tabs-trigger' + className={cn( + "text-foreground/60 hover:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:text-muted-foreground dark:hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium whitespace-nowrap transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", + 'group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent', + 'data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground', + 'after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100', + className, + )} + {...props} + /> +); -function TabsContent({ +const TabsContent = ({ className, ...props -}: React.ComponentProps<typeof TabsPrimitive.Content>) { - return ( - <TabsPrimitive.Content - data-slot='tabs-content' - className={cn('flex-1 text-sm outline-none', className)} - {...props} - /> - ); -} +}: React.ComponentProps<typeof TabsPrimitive.Content>) => ( + <TabsPrimitive.Content + data-slot='tabs-content' + className={cn('flex-1 text-sm outline-none', className)} + {...props} + /> +); export { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants }; diff --git a/packages/ui/src/textarea.tsx b/packages/ui/src/textarea.tsx index 0f0d4f0..642bbc5 100644 --- a/packages/ui/src/textarea.tsx +++ b/packages/ui/src/textarea.tsx @@ -2,17 +2,18 @@ import * as React from 'react'; import { cn } from '@gib/ui'; -function Textarea({ className, ...props }: React.ComponentProps<'textarea'>) { - return ( - <textarea - data-slot='textarea' - className={cn( - 'border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:bg-input/30 dark:aria-invalid:ring-destructive/40 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm', - className, - )} - {...props} - /> - ); -} +const Textarea = ({ + className, + ...props +}: React.ComponentProps<'textarea'>) => ( + <textarea + data-slot='textarea' + className={cn( + 'border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:bg-input/30 dark:aria-invalid:ring-destructive/40 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm', + className, + )} + {...props} + /> +); export { Textarea }; diff --git a/packages/ui/src/theme.tsx b/packages/ui/src/theme.tsx index 142bc22..8102069 100644 --- a/packages/ui/src/theme.tsx +++ b/packages/ui/src/theme.tsx @@ -1,16 +1,16 @@ 'use client'; import type { ComponentProps } from 'react'; -import { ThemeProvider as NextThemesProvider, useTheme } from 'next-themes'; import { Moon, Sun } from 'lucide-react'; -import { Button, cn } from '@gib/ui'; +import { ThemeProvider as NextThemesProvider, useTheme } from 'next-themes'; +import { Button, cn } from '@gib/ui'; const ThemeProvider = ({ children, ...props }: ComponentProps<typeof NextThemesProvider>) => { - return <NextThemesProvider {...props}>{children}</NextThemesProvider> + return <NextThemesProvider {...props}>{children}</NextThemesProvider>; }; interface ThemeToggleProps { @@ -22,23 +22,21 @@ const ThemeToggle = ({ size = 1, buttonProps }: ThemeToggleProps) => { const { setTheme, resolvedTheme } = useTheme(); return ( <Button - variant="outline" - size="icon" + variant='outline' + size='icon' onClick={() => setTheme(resolvedTheme === 'dark' ? 'light' : 'dark')} {...buttonProps} className={cn('cursor-pointer', buttonProps?.className)} > <Sun style={{ height: `${size}rem`, width: `${size}rem` }} - className='scale-100 rotate-0 transition-all - dark:scale-0 dark:-rotate-90' + className='scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90' /> <Moon style={{ height: `${size}rem`, width: `${size}rem` }} - className='absolute scale-0 rotate-90 transition-all - dark:scale-100 dark:rotate-0' + className='absolute scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0' /> - <span className="sr-only">Toggle theme</span> + <span className='sr-only'>Toggle theme</span> </Button> ); }; diff --git a/packages/ui/src/toggle-group.tsx b/packages/ui/src/toggle-group.tsx index 37a5a99..62c45d9 100644 --- a/packages/ui/src/toggle-group.tsx +++ b/packages/ui/src/toggle-group.tsx @@ -16,7 +16,7 @@ const ToggleGroupContext = React.createContext< spacing: 0, }); -function ToggleGroup({ +const ToggleGroup = ({ className, variant, size, @@ -26,35 +26,33 @@ function ToggleGroup({ }: React.ComponentProps<typeof ToggleGroupPrimitive.Root> & VariantProps<typeof toggleVariants> & { spacing?: number; - }) { - return ( - <ToggleGroupPrimitive.Root - data-slot='toggle-group' - data-variant={variant} - data-size={size} - data-spacing={spacing} - style={{ '--gap': spacing } as React.CSSProperties} - className={cn( - 'group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs', - className, - )} - {...props} - > - <ToggleGroupContext.Provider value={{ variant, size, spacing }}> - {children} - </ToggleGroupContext.Provider> - </ToggleGroupPrimitive.Root> - ); -} + }) => ( + <ToggleGroupPrimitive.Root + data-slot='toggle-group' + data-variant={variant} + data-size={size} + data-spacing={spacing} + style={{ '--gap': spacing } as React.CSSProperties} + className={cn( + 'group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs', + className, + )} + {...props} + > + <ToggleGroupContext.Provider value={{ variant, size, spacing }}> + {children} + </ToggleGroupContext.Provider> + </ToggleGroupPrimitive.Root> +); -function ToggleGroupItem({ +const ToggleGroupItem = ({ className, children, variant, size, ...props }: React.ComponentProps<typeof ToggleGroupPrimitive.Item> & - VariantProps<typeof toggleVariants>) { + VariantProps<typeof toggleVariants>) => { const context = React.useContext(ToggleGroupContext); return ( @@ -77,6 +75,6 @@ function ToggleGroupItem({ {children} </ToggleGroupPrimitive.Item> ); -} +}; export { ToggleGroup, ToggleGroupItem }; diff --git a/packages/ui/src/toggle.tsx b/packages/ui/src/toggle.tsx index aa09560..a14ee51 100644 --- a/packages/ui/src/toggle.tsx +++ b/packages/ui/src/toggle.tsx @@ -29,20 +29,18 @@ const toggleVariants = cva( }, ); -function Toggle({ +const Toggle = ({ className, variant, size, ...props }: React.ComponentProps<typeof TogglePrimitive.Root> & - VariantProps<typeof toggleVariants>) { - return ( - <TogglePrimitive.Root - data-slot='toggle' - className={cn(toggleVariants({ variant, size, className }))} - {...props} - /> - ); -} + VariantProps<typeof toggleVariants>) => ( + <TogglePrimitive.Root + data-slot='toggle' + className={cn(toggleVariants({ variant, size, className }))} + {...props} + /> +); export { Toggle, toggleVariants }; diff --git a/packages/ui/src/tooltip.tsx b/packages/ui/src/tooltip.tsx index e88e7f4..bd8604e 100644 --- a/packages/ui/src/tooltip.tsx +++ b/packages/ui/src/tooltip.tsx @@ -5,53 +5,49 @@ import { Tooltip as TooltipPrimitive } from 'radix-ui'; import { cn } from '@gib/ui'; -function TooltipProvider({ +const TooltipProvider = ({ delayDuration = 0, ...props -}: React.ComponentProps<typeof TooltipPrimitive.Provider>) { - return ( - <TooltipPrimitive.Provider - data-slot='tooltip-provider' - delayDuration={delayDuration} - {...props} - /> - ); -} +}: React.ComponentProps<typeof TooltipPrimitive.Provider>) => ( + <TooltipPrimitive.Provider + data-slot='tooltip-provider' + delayDuration={delayDuration} + {...props} + /> +); -function Tooltip({ +const Tooltip = ({ ...props -}: React.ComponentProps<typeof TooltipPrimitive.Root>) { - return <TooltipPrimitive.Root data-slot='tooltip' {...props} />; -} +}: React.ComponentProps<typeof TooltipPrimitive.Root>) => ( + <TooltipPrimitive.Root data-slot='tooltip' {...props} /> +); -function TooltipTrigger({ +const TooltipTrigger = ({ ...props -}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) { - return <TooltipPrimitive.Trigger data-slot='tooltip-trigger' {...props} />; -} +}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) => ( + <TooltipPrimitive.Trigger data-slot='tooltip-trigger' {...props} /> +); -function TooltipContent({ +const TooltipContent = ({ className, sideOffset = 0, children, ...props -}: React.ComponentProps<typeof TooltipPrimitive.Content>) { - return ( - <TooltipPrimitive.Portal> - <TooltipPrimitive.Content - data-slot='tooltip-content' - sideOffset={sideOffset} - className={cn( - 'animate-in bg-foreground text-background fade-in-0 zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance', - className, - )} - {...props} - > - {children} - <TooltipPrimitive.Arrow className='bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]' /> - </TooltipPrimitive.Content> - </TooltipPrimitive.Portal> - ); -} +}: React.ComponentProps<typeof TooltipPrimitive.Content>) => ( + <TooltipPrimitive.Portal> + <TooltipPrimitive.Content + data-slot='tooltip-content' + sideOffset={sideOffset} + className={cn( + 'animate-in bg-foreground text-background fade-in-0 zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance', + className, + )} + {...props} + > + {children} + <TooltipPrimitive.Arrow className='bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]' /> + </TooltipPrimitive.Content> + </TooltipPrimitive.Portal> +); export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }; diff --git a/tools/eslint/.cache/.prettiercache b/tools/eslint/.cache/.prettiercache index 74b5c62..ca76dd3 100644 --- a/tools/eslint/.cache/.prettiercache +++ b/tools/eslint/.cache/.prettiercache @@ -1 +1 @@ -[["1","2","3","4","5"],{"key":"6","value":"7"},{"key":"8","value":"9"},{"key":"10","value":"11"},{"key":"12","value":"13"},{"key":"14","value":"15"},"/home/gib/Documents/Code/convex-monorepo/tools/eslint/package.json",{"size":979,"mtime":1768166330000,"hash":"16","data":"17"},"/home/gib/Documents/Code/convex-monorepo/tools/eslint/nextjs.ts",{"size":440,"mtime":1768155639000,"hash":"18","data":"19"},"/home/gib/Documents/Code/convex-monorepo/tools/eslint/react.ts",{"size":592,"mtime":1768155639000,"hash":"20","data":"21"},"/home/gib/Documents/Code/convex-monorepo/tools/eslint/base.ts",{"size":2508,"mtime":1768320541000,"hash":"22","data":"23"},"/home/gib/Documents/Code/convex-monorepo/tools/eslint/tsconfig.json",{"size":94,"mtime":1766222924000,"hash":"24","data":"25"},"a5326aca75246da261fd2e354257b45a",{"hashOfOptions":"26"},"25c52c46972131dcc296288599ff108d",{"hashOfOptions":"27"},"2292935ede6baf909f6a0c61486e15da",{"hashOfOptions":"28"},"6a779439826cf31b5561a21273d134a9",{"hashOfOptions":"29"},"b3c77d33a30318d89c9c2cafcbe00bbe",{"hashOfOptions":"30"},"1249441784","4234667885","3945480854","3486090744","681484145"] \ No newline at end of file +[["1","2","3","4","5","6"],{"key":"7","value":"8"},{"key":"9","value":"10"},{"key":"11","value":"12"},{"key":"13","value":"14"},{"key":"15","value":"16"},{"key":"17","value":"18"},"/home/gib/Documents/Code/convex-monorepo/tools/eslint/base.ts",{"size":2963,"mtime":1774544629518,"hash":"19","data":"20"},"/home/gib/Documents/Code/convex-monorepo/tools/eslint/nextjs.ts",{"size":440,"mtime":1768155639000,"hash":"21","data":"22"},"/home/gib/Documents/Code/convex-monorepo/tools/eslint/.cache/.prettiercache",{"size":1278,"mtime":1774544484642},"/home/gib/Documents/Code/convex-monorepo/tools/eslint/package.json",{"size":1033,"mtime":1774544387169,"hash":"23","data":"24"},"/home/gib/Documents/Code/convex-monorepo/tools/eslint/react.ts",{"size":592,"mtime":1768155639000,"hash":"25","data":"26"},"/home/gib/Documents/Code/convex-monorepo/tools/eslint/tsconfig.json",{"size":94,"mtime":1766222924000,"hash":"27","data":"28"},"6a779439826cf31b5561a21273d134a9",{"hashOfOptions":"29"},"25c52c46972131dcc296288599ff108d",{"hashOfOptions":"30"},"a5326aca75246da261fd2e354257b45a",{"hashOfOptions":"31"},"2292935ede6baf909f6a0c61486e15da",{"hashOfOptions":"32"},"b3c77d33a30318d89c9c2cafcbe00bbe",{"hashOfOptions":"33"},"1686097143","2347540204","302976953","3406150487","1582266352"] \ No newline at end of file diff --git a/tools/eslint/base.ts b/tools/eslint/base.ts index 984de2f..b81d867 100644 --- a/tools/eslint/base.ts +++ b/tools/eslint/base.ts @@ -2,10 +2,15 @@ import * as path from 'node:path'; import { includeIgnoreFile } from '@eslint/compat'; import eslint from '@eslint/js'; import importPlugin from 'eslint-plugin-import'; +// eslint-plugin-prefer-arrow-functions doesn't ship flat config types — cast needed +import preferArrowFunctions from 'eslint-plugin-prefer-arrow-functions'; import turboPlugin from 'eslint-plugin-turbo'; import { defineConfig } from 'eslint/config'; import tseslint from 'typescript-eslint'; +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const preferArrowPlugin = preferArrowFunctions as any; + /** * All packages that leverage t3-env should use this rule */ @@ -45,6 +50,7 @@ export const baseConfig = defineConfig( plugins: { import: importPlugin, turbo: turboPlugin, + 'prefer-arrow-functions': preferArrowPlugin, }, extends: [ eslint.configs.recommended, @@ -58,10 +64,6 @@ export const baseConfig = defineConfig( 'warn', { argsIgnorePattern: '^_', varsIgnorePattern: '^_' }, ], - '@typescript-eslint/consistent-type-imports': [ - 'warn', - { prefer: 'type-imports', fixStyle: 'inline-type-imports' }, - ], '@typescript-eslint/no-misused-promises': [ 2, { checksVoidReturn: { attributes: false } }, @@ -73,7 +75,17 @@ export const baseConfig = defineConfig( }, ], '@typescript-eslint/no-non-null-assertion': 'error', - 'import/consistent-type-specifier-style': ['error', 'prefer-top-level'], + '@typescript-eslint/consistent-type-definitions': 'off', + 'prefer-arrow-functions/prefer-arrow-functions': [ + 'warn', + { + allowNamedFunctions: false, + classPropertiesAllowed: false, + disallowPrototype: false, + returnStyle: 'unchanged', + singleReturnOnly: false, + }, + ], }, }, { diff --git a/tools/eslint/package.json b/tools/eslint/package.json index 709edf8..0666d12 100644 --- a/tools/eslint/package.json +++ b/tools/eslint/package.json @@ -18,6 +18,7 @@ "@next/eslint-plugin-next": "^16.0.0", "eslint-plugin-import": "^2.32.0", "eslint-plugin-jsx-a11y": "^6.10.2", + "eslint-plugin-prefer-arrow-functions": "^3.9.1", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-turbo": "^2.5.8", diff --git a/tools/prettier/.cache/.prettiercache b/tools/prettier/.cache/.prettiercache index cabc39c..0e989b3 100644 --- a/tools/prettier/.cache/.prettiercache +++ b/tools/prettier/.cache/.prettiercache @@ -1 +1 @@ -[["1","2","3"],{"key":"4","value":"5"},{"key":"6","value":"7"},{"key":"8","value":"9"},"/home/gib/Documents/Code/convex-monorepo/tools/prettier/tsconfig.json",{"size":94,"mtime":1766222924000,"hash":"10","data":"11"},"/home/gib/Documents/Code/convex-monorepo/tools/prettier/package.json",{"size":607,"mtime":1766222924000,"hash":"12","data":"13"},"/home/gib/Documents/Code/convex-monorepo/tools/prettier/index.js",{"size":1194,"mtime":1768372320442,"hash":"14","data":"15"},"b3c77d33a30318d89c9c2cafcbe00bbe",{"hashOfOptions":"16"},"11b634ce56ac720ac9a2860d77fbd2cc",{"hashOfOptions":"17"},"ecbaa91166a940dfcec8117059f52402",{"hashOfOptions":"18"},"67859251","550572982","1674623979"] \ No newline at end of file +[["1","2","3","4"],{"key":"5","value":"6"},{"key":"7","value":"8"},{"key":"9","value":"10"},{"key":"11","value":"12"},"/home/gib/Documents/Code/convex-monorepo/tools/prettier/.cache/.prettiercache",{"size":832,"mtime":1774544484482},"/home/gib/Documents/Code/convex-monorepo/tools/prettier/index.js",{"size":1194,"mtime":1768372320442,"hash":"13","data":"14"},"/home/gib/Documents/Code/convex-monorepo/tools/prettier/package.json",{"size":607,"mtime":1774032385569,"hash":"15","data":"16"},"/home/gib/Documents/Code/convex-monorepo/tools/prettier/tsconfig.json",{"size":94,"mtime":1766222924000,"hash":"17","data":"18"},"ecbaa91166a940dfcec8117059f52402",{"hashOfOptions":"19"},"11b634ce56ac720ac9a2860d77fbd2cc",{"hashOfOptions":"20"},"b3c77d33a30318d89c9c2cafcbe00bbe",{"hashOfOptions":"21"},"1828250668","802511607","4250532914"] \ No newline at end of file diff --git a/tools/tailwind/.cache/.eslintcache b/tools/tailwind/.cache/.eslintcache new file mode 100644 index 0000000..06be5bc --- /dev/null +++ b/tools/tailwind/.cache/.eslintcache @@ -0,0 +1 @@ +[{"/home/gib/Documents/Code/convex-monorepo/tools/tailwind/postcss-config.js":"1"},{"size":70,"mtime":1768155639000,"results":"2","hashOfConfig":"3"},{"filePath":"4","messages":"5","suppressedMessages":"6","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"z9il2c","/home/gib/Documents/Code/convex-monorepo/tools/tailwind/postcss-config.js",[],[]] \ No newline at end of file diff --git a/tools/tailwind/.cache/.prettiercache b/tools/tailwind/.cache/.prettiercache index b5e9ebb..3defe10 100644 --- a/tools/tailwind/.cache/.prettiercache +++ b/tools/tailwind/.cache/.prettiercache @@ -1 +1 @@ -[["1","2","3","4","5"],{"key":"6","value":"7"},{"key":"8","value":"9"},{"key":"10","value":"11"},{"key":"12","value":"13"},{"key":"14","value":"15"},"/home/gib/Documents/Code/convex-monorepo/tools/tailwind/package.json",{"size":851,"mtime":1766222924000,"hash":"16","data":"17"},"/home/gib/Documents/Code/convex-monorepo/tools/tailwind/postcss-config.js",{"size":70,"mtime":1768155639000,"hash":"18","data":"19"},"/home/gib/Documents/Code/convex-monorepo/tools/tailwind/eslint.config.ts",{"size":143,"mtime":1768155639000,"hash":"20","data":"21"},"/home/gib/Documents/Code/convex-monorepo/tools/tailwind/theme.css",{"size":7273,"mtime":1768320378000,"hash":"22","data":"23"},"/home/gib/Documents/Code/convex-monorepo/tools/tailwind/tsconfig.json",{"size":94,"mtime":1766222924000,"hash":"24","data":"25"},"0d22e47f57739db9de04c6f8420d6fb5",{"hashOfOptions":"26"},"9a944fbda06979be39571bd9bd00b0d9",{"hashOfOptions":"27"},"b8fec960cb32340eea62ca1485093e68",{"hashOfOptions":"28"},"e40c2569ef375a9c828c80c0f9ce1bf2",{"hashOfOptions":"29"},"b3c77d33a30318d89c9c2cafcbe00bbe",{"hashOfOptions":"30"},"34296497","1053475182","4101125807","919761249","2958815992"] \ No newline at end of file +[["1","2","3","4","5","6","7"],{"key":"8","value":"9"},{"key":"10","value":"11"},{"key":"12","value":"13"},{"key":"14","value":"15"},{"key":"16","value":"17"},{"key":"18","value":"19"},{"key":"20","value":"21"},"/home/gib/Documents/Code/convex-monorepo/tools/tailwind/.cache/.eslintcache",{"size":396,"mtime":1774544641255},"/home/gib/Documents/Code/convex-monorepo/tools/tailwind/.cache/.prettiercache",{"size":1450,"mtime":1774544484418},"/home/gib/Documents/Code/convex-monorepo/tools/tailwind/package.json",{"size":851,"mtime":1774032407411,"hash":"22","data":"23"},"/home/gib/Documents/Code/convex-monorepo/tools/tailwind/tsconfig.json",{"size":94,"mtime":1766222924000,"hash":"24","data":"25"},"/home/gib/Documents/Code/convex-monorepo/tools/tailwind/eslint.config.ts",{"size":143,"mtime":1768155639000,"hash":"26","data":"27"},"/home/gib/Documents/Code/convex-monorepo/tools/tailwind/theme.css",{"size":7273,"mtime":1768320378000,"hash":"28","data":"29"},"/home/gib/Documents/Code/convex-monorepo/tools/tailwind/postcss-config.js",{"size":70,"mtime":1768155639000,"hash":"30","data":"31"},"0d22e47f57739db9de04c6f8420d6fb5",{"hashOfOptions":"32"},"b3c77d33a30318d89c9c2cafcbe00bbe",{"hashOfOptions":"33"},"b8fec960cb32340eea62ca1485093e68",{"hashOfOptions":"34"},"e40c2569ef375a9c828c80c0f9ce1bf2",{"hashOfOptions":"35"},"9a944fbda06979be39571bd9bd00b0d9",{"hashOfOptions":"36"},"286235122","2846522359","1288936688","2683656544","1694755693"] \ No newline at end of file diff --git a/turbo.json b/turbo.json index 11e2315..4b1089f 100644 --- a/turbo.json +++ b/turbo.json @@ -15,13 +15,13 @@ "CONVEX_SELF_HOSTED_ADMIN_KEY", "CONVEX_SITE_URL", "USESEND_API_KEY", + "USESEND_URL", + "USESEND_FROM_EMAIL", "AUTH_AUTHENTIK_ID", "AUTH_AUTHENTIK_SECRET", "AUTH_AUTHENTIK_ISSUER" ], - "globalPassThroughEnv": [ - "NODE_ENV" - ], + "globalPassThroughEnv": ["NODE_ENV"], "ui": "tui", "tasks": { "topo": { diff --git a/turbo/generators/config.ts b/turbo/generators/config.ts index 70ca7cd..5ba84c0 100644 --- a/turbo/generators/config.ts +++ b/turbo/generators/config.ts @@ -1,5 +1,5 @@ -import { execSync } from "node:child_process"; -import type { PlopTypes } from "@turbo/gen"; +import { execSync } from 'node:child_process'; +import type { PlopTypes } from '@turbo/gen'; interface PackageJson { name: string; @@ -9,58 +9,58 @@ interface PackageJson { } export default function generator(plop: PlopTypes.NodePlopAPI): void { - plop.setGenerator("init", { - description: "Generate a new package for the Acme Monorepo", + plop.setGenerator('init', { + description: 'Generate a new package for the Monorepo', prompts: [ { - type: "input", - name: "name", + type: 'input', + name: 'name', message: - "What is the name of the package? (You can skip the `@gib/` prefix)", + 'What is the name of the package? (You can skip the `@gib/` prefix)', }, { - type: "input", - name: "deps", + type: 'input', + name: 'deps', message: - "Enter a space separated list of dependencies you would like to install", + 'Enter a space separated list of dependencies you would like to install', }, ], actions: [ (answers) => { - if ("name" in answers && typeof answers.name === "string") { - if (answers.name.startsWith("@gib/")) { - answers.name = answers.name.replace("@gib/", ""); + if ('name' in answers && typeof answers.name === 'string') { + if (answers.name.startsWith('@gib/')) { + answers.name = answers.name.replace('@gib/', ''); } } - return "Config sanitized"; + return 'Config sanitized'; }, { - type: "add", - path: "packages/{{ name }}/eslint.config.ts", - templateFile: "templates/eslint.config.ts.hbs", + type: 'add', + path: 'packages/{{ name }}/eslint.config.ts', + templateFile: 'templates/eslint.config.ts.hbs', }, { - type: "add", - path: "packages/{{ name }}/package.json", - templateFile: "templates/package.json.hbs", + type: 'add', + path: 'packages/{{ name }}/package.json', + templateFile: 'templates/package.json.hbs', }, { - type: "add", - path: "packages/{{ name }}/tsconfig.json", - templateFile: "templates/tsconfig.json.hbs", + type: 'add', + path: 'packages/{{ name }}/tsconfig.json', + templateFile: 'templates/tsconfig.json.hbs', }, { - type: "add", - path: "packages/{{ name }}/src/index.ts", + type: 'add', + path: 'packages/{{ name }}/src/index.ts', template: "export const name = '{{ name }}';", }, { - type: "modify", - path: "packages/{{ name }}/package.json", + type: 'modify', + path: 'packages/{{ name }}/package.json', async transform(content, answers) { - if ("deps" in answers && typeof answers.deps === "string") { + if ('deps' in answers && typeof answers.deps === 'string') { const pkg = JSON.parse(content) as PackageJson; - for (const dep of answers.deps.split(" ").filter(Boolean)) { + for (const dep of answers.deps.split(' ').filter(Boolean)) { const version = await fetch( `https://registry.npmjs.org/-/package/${dep}/dist-tags`, ) @@ -78,17 +78,15 @@ export default function generator(plop: PlopTypes.NodePlopAPI): void { /** * Install deps and format everything */ - if ("name" in answers && typeof answers.name === "string") { - // execSync("pnpm dlx sherif@latest --fix", { - // stdio: "inherit", - // }); - execSync("pnpm i", { stdio: "inherit" }); + if ('name' in answers && typeof answers.name === 'string') { + execSync('bun install', { stdio: 'inherit' }); execSync( - `pnpm prettier --write packages/${answers.name}/** --list-different`, + `bun prettier --write packages/${answers.name}/** --list-different`, + { stdio: 'inherit' }, ); - return "Package scaffolded"; + return 'Package scaffolded'; } - return "Package not scaffolded"; + return 'Package not scaffolded'; }, ], });