From d03ff2fa636eea40ffc0e30c2e8ed2e960d82041 Mon Sep 17 00:00:00 2001 From: joesobo Date: Wed, 27 May 2026 12:47:24 -0700 Subject: [PATCH 01/17] Start CodeGraphy website --- .gitignore | 3 + CONTEXT.md | 33 ++ apps/web/app/_site/brand.tsx | 14 + apps/web/app/_site/footer.tsx | 10 + apps/web/app/_site/header.tsx | 25 + apps/web/app/_ui/button.tsx | 47 ++ apps/web/app/_ui/card.tsx | 14 + apps/web/app/_ui/cn.ts | 6 + apps/web/app/_ui/icons.tsx | 29 + apps/web/app/account/page.tsx | 5 + apps/web/app/account/view.test.tsx | 14 + apps/web/app/account/view.tsx | 58 ++ apps/web/app/auth/view.test.tsx | 25 + apps/web/app/auth/view.tsx | 100 ++++ apps/web/app/globals.css | 97 ++++ apps/web/app/home/content.ts | 413 ++++++++++++++ apps/web/app/home/view.test.tsx | 30 + apps/web/app/home/view.tsx | 392 +++++++++++++ apps/web/app/icon.svg | 6 + apps/web/app/layout.tsx | 19 + apps/web/app/login/page.tsx | 5 + apps/web/app/page.tsx | 5 + apps/web/app/signup/page.tsx | 5 + apps/web/components.json | 18 + apps/web/next-env.d.ts | 6 + apps/web/next.config.mjs | 13 + apps/web/package.json | 37 ++ apps/web/postcss.config.cjs | 6 + apps/web/public/codegraphy-icon.svg | 6 + .../product-media/codegraphy-architecture.png | Bin 0 -> 150219 bytes .../public/product-media/graph-sections.png | Bin 0 -> 127801 bytes .../product-media/hero-relationship-graph.png | Bin 0 -> 183965 bytes .../public/product-media/large-repo-graph.png | Bin 0 -> 421165 bytes .../public/product-media/plugins-panel.png | Bin 0 -> 82370 bytes .../product-media/relationship-graph-2d.png | Bin 0 -> 126774 bytes .../product-media/relationship-graph-3d.png | Bin 0 -> 118389 bytes .../product-media/search-filter-panel.png | Bin 0 -> 34641 bytes .../product-media/symbol-nodes-graph.png | Bin 0 -> 323691 bytes apps/web/tailwind.config.cjs | 41 ++ apps/web/tests/setup.ts | 7 + apps/web/tsconfig.json | 42 ++ apps/web/vitest.config.ts | 10 + .../saas-landing-page-structure-reference.png | Bin 0 -> 311271 bytes docs/plans/2026-05-26-codegraphy-website.md | 413 ++++++++++++++ package.json | 4 +- pnpm-lock.yaml | 536 ++++++++++++++++++ pnpm-workspace.yaml | 1 + 47 files changed, 2494 insertions(+), 1 deletion(-) create mode 100644 apps/web/app/_site/brand.tsx create mode 100644 apps/web/app/_site/footer.tsx create mode 100644 apps/web/app/_site/header.tsx create mode 100644 apps/web/app/_ui/button.tsx create mode 100644 apps/web/app/_ui/card.tsx create mode 100644 apps/web/app/_ui/cn.ts create mode 100644 apps/web/app/_ui/icons.tsx create mode 100644 apps/web/app/account/page.tsx create mode 100644 apps/web/app/account/view.test.tsx create mode 100644 apps/web/app/account/view.tsx create mode 100644 apps/web/app/auth/view.test.tsx create mode 100644 apps/web/app/auth/view.tsx create mode 100644 apps/web/app/globals.css create mode 100644 apps/web/app/home/content.ts create mode 100644 apps/web/app/home/view.test.tsx create mode 100644 apps/web/app/home/view.tsx create mode 100644 apps/web/app/icon.svg create mode 100644 apps/web/app/layout.tsx create mode 100644 apps/web/app/login/page.tsx create mode 100644 apps/web/app/page.tsx create mode 100644 apps/web/app/signup/page.tsx create mode 100644 apps/web/components.json create mode 100644 apps/web/next-env.d.ts create mode 100644 apps/web/next.config.mjs create mode 100644 apps/web/package.json create mode 100644 apps/web/postcss.config.cjs create mode 100644 apps/web/public/codegraphy-icon.svg create mode 100644 apps/web/public/product-media/codegraphy-architecture.png create mode 100644 apps/web/public/product-media/graph-sections.png create mode 100644 apps/web/public/product-media/hero-relationship-graph.png create mode 100644 apps/web/public/product-media/large-repo-graph.png create mode 100644 apps/web/public/product-media/plugins-panel.png create mode 100644 apps/web/public/product-media/relationship-graph-2d.png create mode 100644 apps/web/public/product-media/relationship-graph-3d.png create mode 100644 apps/web/public/product-media/search-filter-panel.png create mode 100644 apps/web/public/product-media/symbol-nodes-graph.png create mode 100644 apps/web/tailwind.config.cjs create mode 100644 apps/web/tests/setup.ts create mode 100644 apps/web/tsconfig.json create mode 100644 apps/web/vitest.config.ts create mode 100644 docs/media/website/saas-landing-page-structure-reference.png create mode 100644 docs/plans/2026-05-26-codegraphy-website.md diff --git a/.gitignore b/.gitignore index b6f6e29c4..9d174e936 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ node_modules/ +.next/ +*.tsbuildinfo dist/ *.vsix .vscode-test/ @@ -13,6 +15,7 @@ dist-e2e/ .playwright-cli/ playwright-report/ test-results/ +/output/ blob-report/ .superpowers/ .turbo/ diff --git a/CONTEXT.md b/CONTEXT.md index 1e5ba5406..247222d82 100644 --- a/CONTEXT.md +++ b/CONTEXT.md @@ -350,6 +350,28 @@ _Avoid_: Required plugin The headless plugin installed with `@codegraphy-dev/core`, enabled by default for new CodeGraphy Workspaces, and still toggleable like other plugins. _Avoid_: External markdown extension +### Commercial Layer + +**CodeGraphy Account**: +A signed-in website account that starts free and can later hold paid Pro package entitlements. +_Avoid_: Pro Account when the account has no paid package + +**Free Account**: +A CodeGraphy Account without an active paid Pro package entitlement. +_Avoid_: Free CodeGraphy use when the user has not signed up + +**CodeGraphy Pro**: +The paid commercial tier for CodeGraphy Accounts. A user becomes Pro by paying for at least one Pro Package. +_Avoid_: CodeGraphy Account, Free Account + +**Pro Package**: +A paid package attached to a CodeGraphy Account as a Pro entitlement. +_Avoid_: Workspace Package, Plugin Package + +**Organize**: +The first planned Pro Package for keeping, switching, arranging, and presenting useful CodeGraphy graph setups. +_Avoid_: CodeGraphy Pro when referring only to this package + ### Settings And Styling **Setting**: @@ -665,6 +687,10 @@ _Avoid_: Graph export - A **Plugin Package** is the packaging route for third-party plugins. - **Built-in Plugins** in this monorepo are examples and fast-development plugins, not required dependencies unless explicitly installed or bundled by the Core Package. - The **Markdown Plugin** is installed with `@codegraphy-dev/core` and enabled by default for new CodeGraphy Workspaces, but users can still toggle it off. +- Free CodeGraphy use starts from the **VS Code Extension** and does not require a **CodeGraphy Account**. +- A user can create a **Free Account** on the website before buying any **Pro Package**. +- A **CodeGraphy Account** becomes **CodeGraphy Pro** when it has at least one active paid **Pro Package** entitlement. +- **Organize** is a **Pro Package** inside **CodeGraphy Pro**, not a synonym for all signed-in account behavior. - A **Settings Control** changes a **Setting**; it is not a separate persisted concept. - **Settings** are saved workspace-locally under `.codegraphy/settings.json` so graph preferences survive between sessions. - **Graph Scope**, **Filter Setting**, **Display Setting**, **Favorite**, and **Legend Entry Toggle** are settings because they are saved between sessions. @@ -739,6 +765,12 @@ _Avoid_: Graph export > > **Dev:** "If I turn off the Godot `*.gd` Legend Entry, do GDScript files disappear?" > **Domain expert:** "No. The **Legend Entry Toggle** only disables that styling, so matching nodes fall back to lower-priority styling." +> +> **Dev:** "Does installing CodeGraphy require a Pro account?" +> **Domain expert:** "No. Free CodeGraphy starts from the **VS Code Extension** and does not require a **CodeGraphy Account**. The website can still let someone create a **Free Account**." +> +> **Dev:** "Is Organize the same thing as Pro?" +> **Domain expert:** "No. **CodeGraphy Pro** is the paid tier. **Organize** is the first **Pro Package** inside that tier." ## Flagged ambiguities @@ -754,6 +786,7 @@ _Avoid_: Graph export - "collapse dependents" was ambiguous; resolved: **Collapse** absorbs downstream relationship nodes, not upstream nodes. - Shared downstream relationship targets stay visible when they are still related to by visible nodes outside the collapsed subgraph. - When a shared relationship target stays visible, the downstream path to it stays visible as a **Boundary Path**. +- "Bookmark" conflicts with **Favorite** if it only means marking a node; unresolved: website and Organize language still need a canonical term for reusable saved graph setups. - Collapse behavior is not renderer-owned; resolved: CodeGraphy owns **Collapse Projection**, it runs after the **Visible Graph** exists, and the force graph renderer displays the resulting graph. - Do not introduce "Collapsed Graph" as a separate pipeline term for now; resolved: the user still sees the **Visible Graph**, updated by **Collapse Projection**. - "filter" and "collapse" both reduce **Visible Graph** detail but are not synonyms; resolved: **Filter** means persistent include/exclude criteria, while **Collapse** means summarize relevant hidden detail. diff --git a/apps/web/app/_site/brand.tsx b/apps/web/app/_site/brand.tsx new file mode 100644 index 000000000..eefebbbc8 --- /dev/null +++ b/apps/web/app/_site/brand.tsx @@ -0,0 +1,14 @@ +import Link from 'next/link'; + +export function Brand({ + href = '/', +}: { + href?: string; +}): React.ReactElement { + return ( + + + CodeGraphy + + ); +} diff --git a/apps/web/app/_site/footer.tsx b/apps/web/app/_site/footer.tsx new file mode 100644 index 000000000..67151d32c --- /dev/null +++ b/apps/web/app/_site/footer.tsx @@ -0,0 +1,10 @@ +export function SiteFooter(): React.ReactElement { + return ( + + ); +} diff --git a/apps/web/app/_site/header.tsx b/apps/web/app/_site/header.tsx new file mode 100644 index 000000000..b99ba2bf8 --- /dev/null +++ b/apps/web/app/_site/header.tsx @@ -0,0 +1,25 @@ +import Link from 'next/link'; +import { Button } from '../_ui/button'; +import { VsCodeIcon } from '../_ui/icons'; +import { Brand } from './brand'; + +export function SiteHeader(): React.ReactElement { + return ( +
+
+ +
+ + +
+
+
+ ); +} diff --git a/apps/web/app/_ui/button.tsx b/apps/web/app/_ui/button.tsx new file mode 100644 index 000000000..6b5b72223 --- /dev/null +++ b/apps/web/app/_ui/button.tsx @@ -0,0 +1,47 @@ +import { Slot } from '@radix-ui/react-slot'; +import { cva, type VariantProps } from 'class-variance-authority'; +import * as React from 'react'; +import { cn } from './cn'; + +const buttonVariants = cva( + 'inline-flex min-h-10 items-center justify-center gap-2 rounded-md text-sm font-semibold transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50', + { + variants: { + variant: { + default: 'bg-primary text-primary-foreground hover:bg-primary/90', + outline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground', + ghost: 'hover:bg-accent hover:text-accent-foreground', + secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80', + }, + size: { + default: 'px-4 py-2', + sm: 'px-3 py-1.5', + lg: 'px-5 py-3 text-base', + }, + }, + defaultVariants: { + variant: 'default', + size: 'default', + }, + }, +); + +export interface ButtonProps + extends React.ButtonHTMLAttributes, + VariantProps { + asChild?: boolean; +} + +export function Button({ + asChild = false, + className, + size, + variant, + ...props +}: ButtonProps): React.ReactElement { + const Comp = asChild ? Slot : 'button'; + + return ; +} + +export { buttonVariants }; diff --git a/apps/web/app/_ui/card.tsx b/apps/web/app/_ui/card.tsx new file mode 100644 index 000000000..9a65aedd9 --- /dev/null +++ b/apps/web/app/_ui/card.tsx @@ -0,0 +1,14 @@ +import * as React from 'react'; +import { cn } from './cn'; + +export function Card({ + className, + ...props +}: React.HTMLAttributes): React.ReactElement { + return ( +
+ ); +} diff --git a/apps/web/app/_ui/cn.ts b/apps/web/app/_ui/cn.ts new file mode 100644 index 000000000..a7c26636a --- /dev/null +++ b/apps/web/app/_ui/cn.ts @@ -0,0 +1,6 @@ +import { clsx, type ClassValue } from 'clsx'; +import { twMerge } from 'tailwind-merge'; + +export function cn(...inputs: ClassValue[]): string { + return twMerge(clsx(inputs)); +} diff --git a/apps/web/app/_ui/icons.tsx b/apps/web/app/_ui/icons.tsx new file mode 100644 index 000000000..6f1d28b78 --- /dev/null +++ b/apps/web/app/_ui/icons.tsx @@ -0,0 +1,29 @@ +export function GitHubIcon({ + className = 'h-4 w-4', +}: { + className?: string; +}): React.ReactElement { + return ( + + ); +} + +export function VsCodeIcon({ + className = 'h-4 w-4', +}: { + className?: string; +}): React.ReactElement { + return ( + + ); +} diff --git a/apps/web/app/account/page.tsx b/apps/web/app/account/page.tsx new file mode 100644 index 000000000..78187c616 --- /dev/null +++ b/apps/web/app/account/page.tsx @@ -0,0 +1,5 @@ +import { AccountView } from './view'; + +export default function AccountPage(): React.ReactElement { + return ; +} diff --git a/apps/web/app/account/view.test.tsx b/apps/web/app/account/view.test.tsx new file mode 100644 index 000000000..c5ce53aa1 --- /dev/null +++ b/apps/web/app/account/view.test.tsx @@ -0,0 +1,14 @@ +import { render, screen } from '@testing-library/react'; +import { describe, expect, it } from 'vitest'; +import { AccountView } from './view'; + +describe('CodeGraphy website account page', () => { + it('shows the account email and active Pro package status', () => { + render(); + + expect(screen.getByText('Account: maya@codegraphy.dev')).toBeInTheDocument(); + expect(screen.getByRole('heading', { name: 'Pro packages' })).toBeInTheDocument(); + expect(screen.getByText('Organize: Active')).toBeInTheDocument(); + expect(screen.getByRole('button', { name: 'Stripe customer portal coming later' })).toBeDisabled(); + }); +}); diff --git a/apps/web/app/account/view.tsx b/apps/web/app/account/view.tsx new file mode 100644 index 000000000..12c1c2546 --- /dev/null +++ b/apps/web/app/account/view.tsx @@ -0,0 +1,58 @@ +import Link from 'next/link'; +import { LogOut, PackageCheck, UserRound } from 'lucide-react'; +import { Button } from '../_ui/button'; +import { Card } from '../_ui/card'; +import { SiteFooter } from '../_site/footer'; +import { SiteHeader } from '../_site/header'; + +export function AccountView(): React.ReactElement { + return ( + <> + +
+

+ CodeGraphy Account +

+

Account

+

+ Package status and subscription management land here. +

+ +
+ +
+ +
+

Account: maya@codegraphy.dev

+
+ + +
+ +

Pro packages

+
+

Organize: Active

+
+ + +

Manage subscription

+ +
+ + +
+ +

Session

+
+ +
+
+
+ + + ); +} diff --git a/apps/web/app/auth/view.test.tsx b/apps/web/app/auth/view.test.tsx new file mode 100644 index 000000000..2ae107ea9 --- /dev/null +++ b/apps/web/app/auth/view.test.tsx @@ -0,0 +1,25 @@ +import { render, screen } from '@testing-library/react'; +import { describe, expect, it } from 'vitest'; +import { AuthView } from './view'; + +describe('CodeGraphy website auth pages', () => { + it('renders login with email, Google, GitHub, and signup navigation', () => { + render(); + + expect(screen.getByRole('heading', { name: 'Sign in' })).toBeInTheDocument(); + expect(screen.getByLabelText('Email address')).toBeInTheDocument(); + expect(screen.getByLabelText('Password')).toBeInTheDocument(); + expect(screen.getByRole('link', { name: 'Continue with Google' })).toBeInTheDocument(); + expect(screen.getByRole('link', { name: 'Continue with GitHub' })).toBeInTheDocument(); + expect(screen.getByRole('link', { name: 'Sign up' })).toHaveAttribute('href', '/signup'); + }); + + it('renders signup without a confirm-password field and links back to login', () => { + render(); + + expect(screen.getByRole('heading', { name: 'Create a free account' })).toBeInTheDocument(); + expect(screen.getAllByLabelText('Password')).toHaveLength(1); + expect(screen.queryByLabelText(/Confirm password/i)).not.toBeInTheDocument(); + expect(screen.getByRole('link', { name: 'Log in' })).toHaveAttribute('href', '/login'); + }); +}); diff --git a/apps/web/app/auth/view.tsx b/apps/web/app/auth/view.tsx new file mode 100644 index 000000000..ae2ddc7a9 --- /dev/null +++ b/apps/web/app/auth/view.tsx @@ -0,0 +1,100 @@ +import Link from 'next/link'; +import { Button } from '../_ui/button'; +import { Card } from '../_ui/card'; +import { Brand } from '../_site/brand'; + +export function AuthView({ + mode, +}: { + mode: 'login' | 'signup'; +}): React.ReactElement { + const isLogin = mode === 'login'; + const emailInputId = `${mode}-email`; + const passwordInputId = `${mode}-password`; + + return ( +
+ + +

+ CodeGraphy Account +

+

+ {isLogin ? 'Sign in' : 'Create a free account'} +

+ +
+
+ + +
+
+
+ + {isLogin ? ( + + Forgot password? + + ) : null} +
+ +
+ +
+ +
+ + or + +
+ +
+ + +
+
+ +

+ {isLogin ? "Don't have an account?" : 'Already have an account?'}{' '} + + {isLogin ? 'Sign up' : 'Log in'} + +

+
+ ); +} diff --git a/apps/web/app/globals.css b/apps/web/app/globals.css new file mode 100644 index 000000000..82e3493df --- /dev/null +++ b/apps/web/app/globals.css @@ -0,0 +1,97 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --background: 39 38% 94%; + --foreground: 214 29% 13%; + --card: 0 0% 100%; + --card-foreground: 214 29% 13%; + --primary: 214 29% 13%; + --primary-foreground: 0 0% 100%; + --secondary: 42 27% 88%; + --secondary-foreground: 214 29% 13%; + --muted: 42 24% 90%; + --muted-foreground: 212 13% 38%; + --accent: 210 78% 92%; + --accent-foreground: 211 72% 30%; + --brand-blue: 210 72% 42%; + --brand-orange: 28 86% 46%; + --border: 214 20% 83%; + --input: 214 20% 83%; + --ring: 210 72% 42%; + --radius: 0.5rem; +} + +* { + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + margin: 0; + background: + linear-gradient(hsl(var(--foreground) / 0.045) 1px, transparent 1px), + linear-gradient(90deg, hsl(var(--foreground) / 0.045) 1px, transparent 1px), + hsl(var(--background)); + background-size: 30px 30px; + color: hsl(var(--foreground)); + font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; + letter-spacing: 0; +} + +a { + color: inherit; + text-decoration: none; +} + +button, +input { + font: inherit; +} + +img { + display: block; + max-width: 100%; +} + +.home-hero-overlay { + background: + linear-gradient( + 90deg, + hsl(var(--background)) 0%, + hsl(var(--background) / 0.88) 50%, + hsl(var(--background) / 0.42) 100% + ), + linear-gradient(0deg, hsl(var(--background)) 0%, hsl(var(--background) / 0) 42%); +} + +.graph-preview-grid { + background-image: + linear-gradient(hsl(var(--foreground) / 0.06) 1px, transparent 1px), + linear-gradient(90deg, hsl(var(--foreground) / 0.06) 1px, transparent 1px); + background-size: 34px 34px; +} + +.section-plain { + background: hsl(var(--card) / 0.72); +} + +.section-kicker-blue { + color: hsl(var(--brand-blue)); +} + +.section-kicker-orange, +.feature-icon { + color: hsl(var(--brand-orange)); +} + +.section-cta { + background: + radial-gradient(circle at 18% 18%, hsl(var(--brand-orange) / 0.14), transparent 28rem), + radial-gradient(circle at 78% 20%, hsl(var(--brand-blue) / 0.14), transparent 30rem), + hsl(var(--card) / 0.72); +} diff --git a/apps/web/app/home/content.ts b/apps/web/app/home/content.ts new file mode 100644 index 000000000..64455608b --- /dev/null +++ b/apps/web/app/home/content.ts @@ -0,0 +1,413 @@ +import { + Bot, + BrainCircuit, + Bookmark, + Database, + FileImage, + MapPinned, + Monitor, + Network, + Pin, + Palette, + Plug, + Search, + Workflow, +} from 'lucide-react'; + +export const installHref = 'https://marketplace.visualstudio.com/items?itemName=codegraphy.codegraphy'; +export const githubHref = 'https://github.com/joesobo/CodeGraphyV4'; +export const mcpPackageHref = 'https://www.npmjs.com/package/@codegraphy-dev/mcp'; +export const pluginApiPackageHref = 'https://www.npmjs.com/package/@codegraphy-dev/plugin-api'; +export const pluginDocsHref = `${githubHref}/blob/main/docs/PLUGINS.md`; +export const pluginLifecycleHref = `${githubHref}/blob/main/docs/plugin-api/LIFECYCLE.md`; +export const pluginTypesHref = `${githubHref}/blob/main/docs/plugin-api/TYPES.md`; +export const mcpDocsHref = `${githubHref}/blob/main/docs/MCP.md`; +export const coreReadmeHref = `${githubHref}/blob/main/packages/core/README.md`; +export const rootReadmeHref = `${githubHref}/blob/main/README.md`; + +export type FaqTextPart = + | string + | { + href: string; + kind: 'link'; + text: string; + } + | { + kind: 'code'; + text: string; + }; + +export type FaqAnswerBlock = + | { + parts: FaqTextPart[]; + type: 'paragraph'; + } + | { + items: FaqTextPart[][]; + label?: string; + type: 'list'; + } + | { + code: string; + type: 'code'; + } + | { + alt: string; + caption: string; + src: string; + type: 'image'; + } + | { + label?: string; + links: Array<{ + href: string; + text: string; + }>; + type: 'links'; + }; + +export type FaqItem = { + answer: FaqAnswerBlock[]; + defaultOpen?: boolean; + question: string; +}; + +export const workflowSteps = [ + { + description: + 'Core analyzes a workspace with Tree-sitter, path discovery, Git history, settings, and enabled plugins.', + icon: BrainCircuit, + image: '/product-media/codegraphy-architecture.png', + title: 'Core builds the graph', + }, + { + description: + 'Plugins add language and framework meaning: symbols, calls, references, scenes, docs, tests, and custom Edge Types.', + icon: Plug, + image: '/product-media/plugins-panel.png', + title: 'Plugins enrich it', + }, + { + description: + 'Use the same nodes and edges through the CLI, the local MCP server for agents, or the interactive graph extension.', + icon: Workflow, + image: '/product-media/relationship-graph-2d.png', + title: 'Every surface reads it', + }, +]; + +export const socialProofItems = [ + { + image: '/product-media/relationship-graph-2d.png', + text: 'The CodeGraphy repo gets the first top-down view so the tool can prove itself on its own package structure.', + title: 'CodeGraphy itself', + }, + { + image: '/product-media/symbol-nodes-graph.png', + text: 'A planned set of curated popular repos will show how different languages, themes, and settings change the graph.', + title: 'Popular repo studies', + }, + { + image: '/product-media/graph-sections.png', + text: 'Each example is meant to show the broad shape first, then let people inspect the details when a cluster looks interesting.', + title: 'Top-down structure', + }, +]; + +export const galleryItems = [ + { + image: '/product-media/relationship-graph-2d.png', + text: 'Folder and package context stays visible without forcing every question back into a file tree.', + title: 'Folder view', + }, + { + image: '/product-media/relationship-graph-3d.png', + text: 'Switch into depth when the physical shape of the workspace is the thing you need to understand.', + title: '3D view', + }, + { + image: '/product-media/search-filter-panel.png', + text: 'Search temporarily, then save filters when generated files, tests, or docs are not part of the question.', + title: 'Search and filters', + }, + { + image: '/product-media/plugins-panel.png', + text: 'Enable ecosystem plugins to add symbols, framework defaults, and richer relationships to the same graph.', + title: 'Plugin system', + }, + { + image: '/product-media/large-repo-graph.png', + text: 'Force-based physics lets related code form natural groups instead of pretending folders are the only structure.', + title: 'Natural clusters', + }, + { + image: '/product-media/codegraphy-architecture.png', + text: 'The internal examples folder gives CodeGraphy small, controlled workspaces across TypeScript, Python, Godot, Markdown, and more.', + title: 'Examples folder', + }, +]; + +export const coreFeatures = [ + { + icon: Network, + text: 'Relationship Graph with files, folders, packages, symbols, and plugin nodes', + }, + { + icon: Database, + text: 'Local Graph Cache in the workspace', + }, + { + icon: Search, + text: 'Search, filters, and Graph Scope', + }, + { + icon: Palette, + text: 'Integrated VS Code theming and Legend styling', + }, + { + icon: Monitor, + text: '2D or 3D graph views', + }, + { + icon: Bot, + text: 'CLI and local MCP access for agents', + }, + { + icon: Plug, + text: 'Plugin API for language and framework enrichment', + }, +]; + +export const optionalPackages = [ + { + description: 'Pins, sections, saved setups, and polished graph organization tools.', + features: [ + { + icon: MapPinned, + text: 'Sections for shaping clusters into named areas', + }, + { + icon: Pin, + text: 'Pin nodes to keep important code in place', + }, + { + icon: Bookmark, + text: 'Bookmark graph settings and organization patterns', + }, + { + icon: FileImage, + text: 'Advanced exports for polished graph images and shareable map artifacts', + }, + ], + href: null, + name: 'Organize', + price: '$5/mo', + screenshots: [ + { + image: '/product-media/graph-sections.png', + title: 'Sections', + }, + { + image: '/product-media/search-filter-panel.png', + title: 'Saved setup controls', + }, + { + image: '/product-media/relationship-graph-2d.png', + title: 'Polished graph maps', + }, + ], + }, +]; + +export const faqItems: FaqItem[] = [ + { + answer: [ + { + parts: [ + 'CodeGraphy has three entry points that all read the same local graph: the ', + { href: installHref, kind: 'link', text: 'VS Code extension' }, + ', the ', + { href: mcpPackageHref, kind: 'link', text: 'codegraphy CLI and MCP package' }, + ', and the open-source repo docs for deeper setup.', + ], + type: 'paragraph', + }, + { + items: [ + [ + 'Install the VS Code extension when you want the interactive graph beside your editor, then open the CodeGraphy view and index the workspace.', + ], + [ + 'Install ', + { kind: 'code', text: '@codegraphy-dev/mcp' }, + ' when you want the CLI or local agent access without opening VS Code.', + ], + [ + 'Run ', + { kind: 'code', text: 'codegraphy index' }, + ' from a project folder to build the workspace-local Graph Cache.', + ], + [ + 'Ask an agent questions through MCP, or use the extension graph to inspect the same files, symbols, folders, packages, and plugin relationships visually.', + ], + ], + label: 'Good starting paths', + type: 'list', + }, + { + code: 'npm install -g @codegraphy-dev/mcp\ncodegraphy setup\ncodegraphy index', + type: 'code', + }, + { + alt: 'CodeGraphy architecture diagram showing core, plugins, the extension, CLI, and MCP reading the same graph data', + caption: 'Core indexes the workspace, plugins enrich the graph, then the extension, CLI, and MCP read the same relationships.', + src: '/product-media/codegraphy-architecture.png', + type: 'image', + }, + { + label: 'Get started', + links: [ + { href: installHref, text: 'VS Code extension' }, + { href: mcpPackageHref, text: 'MCP package' }, + { href: mcpDocsHref, text: 'MCP setup docs' }, + { href: rootReadmeHref, text: 'GitHub README' }, + ], + type: 'links', + }, + ], + defaultOpen: true, + question: 'How do I use CodeGraphy?', + }, + { + answer: [ + { + items: [ + ['Relationship Graph with file, folder, package, symbol, and plugin nodes'], + ['Workspace-local Graph Cache under ', { kind: 'code', text: '.codegraphy/' }], + ['Graph Scope, search, filters, and context actions'], + ['Integrated VS Code theming and Legend styling'], + ['2D and 3D graph views'], + ['Timeline-aware indexing support'], + ['CLI and local MCP access for agents'], + ['Plugin API support for language and framework enrichment'], + ], + type: 'list', + }, + ], + question: 'What features are in core CodeGraphy?', + }, + { + answer: [ + { + parts: [ + 'Connections are made during local indexing. CodeGraphy discovers files, reads folder and package structure, runs Tree-sitter analysis, applies enabled plugins, then writes the result into a workspace-local Graph Cache.', + ], + type: 'paragraph', + }, + { + items: [ + ['Your source is analyzed on your machine.'], + ['The extension, CLI, and MCP server read the local Graph Cache instead of uploading source code.'], + ['Plugins can add more relationship evidence, but they still participate in the same local indexing flow.'], + ], + label: 'Privacy model', + type: 'list', + }, + { + label: 'Read the local graph docs', + links: [ + { href: coreReadmeHref, text: 'Core package README' }, + { href: mcpDocsHref, text: 'MCP docs' }, + ], + type: 'links', + }, + ], + question: 'How are code connections made?', + }, + { + answer: [ + { + parts: [ + 'Plugins teach CodeGraphy more about a language, framework, file format, or private codebase convention. Core builds the baseline graph; plugins add meaning on top of it.', + ], + type: 'paragraph', + }, + { + items: [ + ['Add symbols, references, calls, imports, loads, scenes, resources, docs links, or test relationships'], + ['Contribute Node Types and Edge Types for concepts Core does not know by default'], + ['Set ecosystem defaults such as filters, colors, and Legend styling'], + ['Represent private architecture rules or internal framework conventions'], + ], + label: 'Plugins can be used to', + type: 'list', + }, + { + label: 'Explore plugin docs', + links: [ + { href: pluginDocsHref, text: 'Plugin Guide' }, + { href: pluginApiPackageHref, text: 'Plugin API package' }, + { href: pluginTypesHref, text: 'Plugin API types' }, + ], + type: 'links', + }, + ], + question: 'What are plugins?', + }, + { + answer: [ + { + parts: ['Install the plugin, refresh CodeGraphy\'s plugin cache, enable it for the current workspace, then re-index. Python is a good example:'], + type: 'paragraph', + }, + { + code: 'npm install -g @codegraphy-dev/plugin-python\ncodegraphy plugins refresh\ncodegraphy plugins enable @codegraphy-dev/plugin-python\ncodegraphy index', + type: 'code', + }, + { + label: 'Install a plugin', + links: [ + { href: 'https://www.npmjs.com/package/@codegraphy-dev/plugin-typescript', text: 'TypeScript/JavaScript' }, + { href: 'https://www.npmjs.com/package/@codegraphy-dev/plugin-python', text: 'Python' }, + { href: 'https://www.npmjs.com/package/@codegraphy-dev/plugin-csharp', text: 'C#' }, + { href: 'https://www.npmjs.com/package/@codegraphy-dev/plugin-godot', text: 'Godot' }, + { href: 'https://www.npmjs.com/package/@codegraphy-dev/plugin-markdown', text: 'Markdown' }, + ], + type: 'links', + }, + ], + question: 'How do I install plugins?', + }, + { + answer: [ + { + parts: [ + 'Start with ', + { href: pluginApiPackageHref, kind: 'link', text: '@codegraphy-dev/plugin-api' }, + ' for the typed contracts, then follow the Plugin Guide for package metadata, lifecycle hooks, analysis results, and local testing.', + ], + type: 'paragraph', + }, + { + items: [ + ['Install the Plugin API as a dev dependency.'], + ['Implement the plugin hooks that add relationship evidence for your files.'], + ['Declare CodeGraphy metadata in ', { kind: 'code', text: 'package.json' }, ' so the CLI can discover and validate the package.'], + ['Index a small fixture workspace and inspect the graph before trying the plugin on a large repo.'], + ], + type: 'list', + }, + { + label: 'Build your own plugin', + links: [ + { href: pluginApiPackageHref, text: 'Plugin API on npm' }, + { href: `${githubHref}/blob/main/packages/plugin-api/README.md`, text: 'Plugin API README' }, + { href: pluginDocsHref, text: 'Plugin Guide' }, + { href: pluginLifecycleHref, text: 'Lifecycle docs' }, + ], + type: 'links', + }, + ], + question: 'How do I make plugins?', + }, +]; diff --git a/apps/web/app/home/view.test.tsx b/apps/web/app/home/view.test.tsx new file mode 100644 index 000000000..c690d2fcf --- /dev/null +++ b/apps/web/app/home/view.test.tsx @@ -0,0 +1,30 @@ +import { render, screen } from '@testing-library/react'; +import { describe, expect, it } from 'vitest'; +import { HomeView } from './view'; + +describe('CodeGraphy website home page', () => { + it('starts from the selected light website direction without design-lab chrome', () => { + render(); + + expect(screen.getByRole('heading', { level: 1, name: 'See how everything connects.' })).toBeInTheDocument(); + expect(screen.getAllByRole('link', { name: /Install CodeGraphy/i })).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + href: 'https://marketplace.visualstudio.com/items?itemName=codegraphy.codegraphy', + }), + ]), + ); + expect(screen.getAllByRole('link', { name: /GitHub/i })[0]).toHaveAttribute( + 'href', + 'https://github.com/joesobo/CodeGraphyV4', + ); + expect(screen.getByRole('link', { name: 'MCP package' })).toHaveAttribute( + 'href', + 'https://www.npmjs.com/package/@codegraphy-dev/mcp', + ); + expect(screen.getByText('Relationship Graph with file, folder, package, symbol, and plugin nodes')).toBeInTheDocument(); + expect(screen.getByRole('img', { name: /CodeGraphy architecture diagram/i })).toBeInTheDocument(); + expect(screen.queryByText('Do I need an account?')).not.toBeInTheDocument(); + expect(screen.queryByText('PROTOTYPE')).not.toBeInTheDocument(); + }); +}); diff --git a/apps/web/app/home/view.tsx b/apps/web/app/home/view.tsx new file mode 100644 index 000000000..bfdaf840c --- /dev/null +++ b/apps/web/app/home/view.tsx @@ -0,0 +1,392 @@ +import { Button } from '../_ui/button'; +import { Card } from '../_ui/card'; +import { GitHubIcon, VsCodeIcon } from '../_ui/icons'; +import { SiteFooter } from '../_site/footer'; +import { SiteHeader } from '../_site/header'; +import { + coreFeatures, + faqItems, + galleryItems, + githubHref, + installHref, + optionalPackages, + socialProofItems, + workflowSteps, +} from './content'; +import type { FaqAnswerBlock, FaqTextPart } from './content'; + +function renderFaqText(parts: FaqTextPart[], keyPrefix: string): React.ReactNode { + return parts.map((part, index) => { + if (typeof part === 'string') { + return part; + } + + if (part.kind === 'code') { + return ( + + {part.text} + + ); + } + + return ( + + {part.text} + + ); + }); +} + +function FaqAnswer({ blocks }: { blocks: FaqAnswerBlock[] }): React.ReactElement { + return ( +
+ {blocks.map((block, blockIndex) => { + if (block.type === 'paragraph') { + return ( +

+ {renderFaqText(block.parts, `paragraph-${blockIndex}`)} +

+ ); + } + + if (block.type === 'list') { + return ( +
+ {block.label ?

{block.label}

: null} +
    + {block.items.map((item, itemIndex) => ( +
  • + {renderFaqText(item, `list-${blockIndex}-${itemIndex}`)} +
  • + ))} +
+
+ ); + } + + if (block.type === 'code') { + return ( +
+              {block.code}
+            
+ ); + } + + if (block.type === 'image') { + return ( +
+ {block.alt} +
{block.caption}
+
+ ); + } + + return ( +
+ {block.label ?

{block.label}

: null} +
+ {block.links.map(link => ( + + {link.text} + + ))} +
+
+ ); + })} +
+ ); +} + +export function HomeView(): React.ReactElement { + return ( + <> + +
+
+ +
+
+
+

+ See how everything connects. +

+

+ CodeGraphy maps the real structure of your code so files, symbols, plugins, and agents can work from the same relationships. +

+ +
+
+
+ +
+
+
+

Social proof

+

+ Popular repos, mapped from the top down. +

+
+

+ This section will become a demonstration gallery for curated popular repositories, each with tuned themes and settings so people can see what high-level graph views look like. CodeGraphy itself can be one of the examples. +

+
+
+ {socialProofItems.map(item => ( + + +
+

{item.title}

+

{item.text}

+
+
+ ))} +
+
+ +
+
+
+

Problem

+

+ Organization is hard because folders are only one opinion. +

+
+
+

+ Renaming, reorganizing, and splitting code can feel impossible when the actual dependencies are hidden behind folder names. +

+

+ CodeGraphy shows the true way your code connects, then gives you graph tools to change that shape until it matches what you need. +

+
+
+
+ +
+
+
+

How it works

+

+ Code wants to form its own map. +

+
+

+ Instead of boxing code into arbitrary human categories, CodeGraphy leans into spatial awareness. Nearby nodes are naturally more relevant to what you are working on, and distant groups show where the system is pulling apart. +

+
+
+ {workflowSteps.map(step => { + const Icon = step.icon; + + return ( + + +
+ +

{step.title}

+

{step.description}

+
+
+ ); + })} +
+
+ + + +
+

Pricing

+

+ One open core. Pro Packages when you need more. +

+ +
+

Core

+

Open-source graph tools

+

+ Install CodeGraphy, index a project, and start moving through code by shape instead of guesswork. +

+ +
+
    + {coreFeatures.map(feature => ( +
  • + + {feature.text} +
  • + ))} +
+
+
+
+

Pro Packages

+

Private plugins

+
+
+
+ {optionalPackages.map(plan => ( + +
+

{plan.name}

+ +

{plan.description}

+

{plan.price}

+
+
+
    + {plan.features.map(feature => { + const Icon = feature.icon; + + return ( +
  • + + {feature.text} +
  • + ); + })} +
+
+ {plan.screenshots.map(screenshot => ( +
+ +
+ {screenshot.title} +
+
+ ))} +
+
+
+ ))} +
+
+ +
+
+

FAQ

+

+ Questions worth answering. +

+
+ {faqItems.map(item => ( +
+ + {item.question} + + + + + + +
+ ))} +
+
+
+ +
+
+
+

Start mapping

+

+ Let the graph show you where the code already wants to go. +

+

+ Install the extension for the visual graph, or jump into the open-source repo to explore the CLI, MCP, core, and plugins. +

+ +
+ +
+
+
+ + + ); +} diff --git a/apps/web/app/icon.svg b/apps/web/app/icon.svg new file mode 100644 index 000000000..4603a8379 --- /dev/null +++ b/apps/web/app/icon.svg @@ -0,0 +1,6 @@ + + + diff --git a/apps/web/app/layout.tsx b/apps/web/app/layout.tsx new file mode 100644 index 000000000..9f4ca64e3 --- /dev/null +++ b/apps/web/app/layout.tsx @@ -0,0 +1,19 @@ +import type { Metadata } from 'next'; +import './globals.css'; + +export const metadata: Metadata = { + title: 'CodeGraphy', + description: 'CodeGraphy turns VS Code workspaces into local Relationship Graphs.', +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>): React.ReactElement { + return ( + + {children} + + ); +} diff --git a/apps/web/app/login/page.tsx b/apps/web/app/login/page.tsx new file mode 100644 index 000000000..b3b15b6f6 --- /dev/null +++ b/apps/web/app/login/page.tsx @@ -0,0 +1,5 @@ +import { AuthView } from '../auth/view'; + +export default function LoginPage(): React.ReactElement { + return ; +} diff --git a/apps/web/app/page.tsx b/apps/web/app/page.tsx new file mode 100644 index 000000000..fb93d60c0 --- /dev/null +++ b/apps/web/app/page.tsx @@ -0,0 +1,5 @@ +import { HomeView } from './home/view'; + +export default function Home(): React.ReactElement { + return ; +} diff --git a/apps/web/app/signup/page.tsx b/apps/web/app/signup/page.tsx new file mode 100644 index 000000000..0e73b92d0 --- /dev/null +++ b/apps/web/app/signup/page.tsx @@ -0,0 +1,5 @@ +import { AuthView } from '../auth/view'; + +export default function SignupPage(): React.ReactElement { + return ; +} diff --git a/apps/web/components.json b/apps/web/components.json new file mode 100644 index 000000000..2222e754f --- /dev/null +++ b/apps/web/components.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": true, + "tsx": true, + "tailwind": { + "config": "tailwind.config.cjs", + "css": "app/globals.css", + "baseColor": "zinc", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/app", + "utils": "@/app/_ui/cn", + "ui": "@/app/_ui" + } +} diff --git a/apps/web/next-env.d.ts b/apps/web/next-env.d.ts new file mode 100644 index 000000000..9edff1c7c --- /dev/null +++ b/apps/web/next-env.d.ts @@ -0,0 +1,6 @@ +/// +/// +import "./.next/types/routes.d.ts"; + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/apps/web/next.config.mjs b/apps/web/next.config.mjs new file mode 100644 index 000000000..d87dd8d15 --- /dev/null +++ b/apps/web/next.config.mjs @@ -0,0 +1,13 @@ +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const appDir = path.dirname(fileURLToPath(import.meta.url)); + +/** @type {import('next').NextConfig} */ +const nextConfig = { + turbopack: { + root: path.resolve(appDir, '../..'), + }, +}; + +export default nextConfig; diff --git a/apps/web/package.json b/apps/web/package.json new file mode 100644 index 000000000..c61a39217 --- /dev/null +++ b/apps/web/package.json @@ -0,0 +1,37 @@ +{ + "name": "@codegraphy-dev/web", + "version": "0.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "test": "vitest run", + "typecheck": "tsc --noEmit" + }, + "dependencies": { + "@radix-ui/react-slot": "^1.2.4", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "lucide-react": "1.16.0", + "next": "16.2.6", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "tailwind-merge": "^3.4.0" + }, + "devDependencies": { + "@testing-library/jest-dom": "^6.2.0", + "@testing-library/react": "^14.1.2", + "@types/node": "^20.11.0", + "@types/react": "^18.2.48", + "@types/react-dom": "^18.2.18", + "@vitejs/plugin-react": "^4.2.1", + "autoprefixer": "^10.4.17", + "jsdom": "^25.0.0", + "postcss": "^8.4.33", + "tailwindcss": "^3.4.1", + "typescript": "^5.3.3", + "vitest": "^3.0.0" + } +} diff --git a/apps/web/postcss.config.cjs b/apps/web/postcss.config.cjs new file mode 100644 index 000000000..12a703d90 --- /dev/null +++ b/apps/web/postcss.config.cjs @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/apps/web/public/codegraphy-icon.svg b/apps/web/public/codegraphy-icon.svg new file mode 100644 index 000000000..4603a8379 --- /dev/null +++ b/apps/web/public/codegraphy-icon.svg @@ -0,0 +1,6 @@ + + + diff --git a/apps/web/public/product-media/codegraphy-architecture.png b/apps/web/public/product-media/codegraphy-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..417175071458c98dea54ec0be51f92a7f080100d GIT binary patch literal 150219 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 z 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

&B#1D5fw z);mHAeJ#S3+V8uX&npfMO-UCe$$ET?xQ@`#kZ+k@H%OlZ*6;>zytydq*ZVpMJJr;b zmBz^8)dW})(jw!BjzP` zCC&@I$Rh;!u#A~aIzRR}?w-9W)&X_55k^yAV4vrTFN_7quP;*f7$vp`03UuD$b|2Oq?b9|U!_C39dMtt_x2b2x`@ zV}f!Bgk_KNm|(^y;QwRqtskO_y0+mnGlYPYh#(EpE!~WYBHf)zOG!5jDpCSUH%K=~ zcPQPUfOJW>L&Ly((7WE}e!lN7c+U^a05fOrv-jF-uXU|!t-Uhyzy&fQ@=4(tz4BGX zMz-oh#9PORfbsW{=XLnPn!C>^KwiyY;fPH7vw4xc)0FI;-{d3+TKL@bBhbTe9CJnZ ztn|QXBg`2iOt3sY^^?QvGEsj$9)8Z+7fabwRmVh|n z;76!B{Y!!IvDy*Q!3tK<= z_4$DTQ>*Q)f2soy{pUA_&Fq9Qx;X=D0MY`leqm`kx^Wng@uogO>WBn zF3IE1%6VDzJIo=GdDf?N!1HO6S6n;VK|y)@-6y<`n82b#lg?;(_9;QIRK~A6A4zpa z*O;1{9UREWM#Gm*i2uZq(Tvju1{tR}p;2W0KP7WZD>GSzmSPU>df%O5?nnQNywxp~ zI@xy@6A2nZ9cGspJFpSew%gEcjx2+VrNX>j9Af;{)y>T>Uq-{w>4k*;_BQacUUIczKaz3gi248kK_`R*{RAld06sq7$^ zT~SR%)tdjX$iTPHZr-lUS~Lx>(AN0>USnDq6(M!6P;wtTJUl9FQ3X!M!c7BVotj+s5Fk%Ybc6S9r6dF1Jpv39)0geX7hO=Izs z@(h+{U{K6xTyO%@Qd%;VFBbZPNLzntc65)LWK)Joc|V^yXqRZ6OVVqaaf5t;Wqi9s zL9aJHr|*5Vs>Yu_qY)+k%<5^{sn*Q&4SOc9>^07UWNJUh(+5^v;Nh_WN~^IiS#I7& zyA_{TH5p$JwywS55Y#{JTja88ZNu|Ixh4QERAVH3Hc(P=HVz}trb=srOX6`KS~}Kz zS>gNEWPuP|2|?k>{(C=>-sA$dfa;1WSN0%gZ#9=zg||oR=Vw|0yFL)@νdNVo7P zX0B6xBEpfqZgVrtfoDhv@F0t_Z$eg(*-37m)bg&0a7HJMaaTtRrBV?FNZqjcZi8?f zkl!RL#-wmNte;Y)1cslHIoz8#zG3;YvV&&w^<|yhXlVU=E(}Da&u7YPN*qE$Vu~~0 zXBGh5UEe;Z(uBoVwl{Kv!N>P22Q)ZHR=|$%`TVzol%PD*5X3g^n8;{2n0n!>IAaugVgL6d|N418`w;TcHw&W?fPZebGDEOI?+_Ae zEnVsS`EbV4lW~P-(ZozU%wS`srV$m_In>Liic;!44&F?x5~hLOAMU+|V1T`rEPpF3 z0U9xLH}_*?`Xtr-<$wxM7Sh@rpP>>}Sxl{b`4iIgjQwt!xB{O+P!-Ip? zm1uVDJ5Z&yl8mfZ>h;)ZInvKXu|ZY}TMXxR%SM+F$n}YlrDQ zjnihR{`|raraT2v4z7AuMh3hah5@&XHgy1ateNaB!1QOk5*p(6^ywM!F+a8l4bY+F zseMC3IHF}b*sBXg&=|510;XJf12AB+@0B$Kz8afB2rLL`on}VLPU@Vh9ty9KxL8R) zk&>!AD!rP9PmL%${1uy}Q$=-e=Bg-%nCUdse9u4@B`zp)B(giE`T-@N5)2BGC1V6s zAN5RnsxoR40yOVVa}7NQ?{8cu%Yb>WvxFC=^O!F*2mJ+->e|sHQ zO+We$(~faa(7MIdMyb=eea0TxSt<35*WiS|cl}Cwj8MdRVPZyPg$X{_=<$&IM_zE= z30KgGfE(^@-gC>^-g((&&2cHI4yp_5UL1)Vbp^Yy&RCKYSL0SlWfLbPL>&lG5fF}) z8iVYeo7S=XAMToIz+}VJU1eqeP)c3SQF|-28 z3kFBS-vyN$R6RH3FFYhx%qsS$ro`;C? z@O|(1jg^_Sbmz#R3!}H~+gI^r_*G2zlKV@nX#gm(tolpDQ|*5xnE({npsY8`q9gXEOdnq0 zlX4Kas@T%%(1MImS%CxW(xoednRzfaPmFd$zPefQlKO*~Y8c9uiqP~?-F2Ec=sO!l zM-9zr*Vmxdk5GLOlM<;4jIn)1Zghd7hC04k7{pj$ms`Fhw-bnW8>&=eM!WTzc2B~L zbVGRV=x0$h;q>%2q`yX;5jkJSYLcBk90N3E3oG+&ENkmDg#q zoiTvh$1i0>3t34&l~Vs5bfM(n$GU42oaKKr;B5=1iic~e_t|d-Tt2ZcZJZr{y^=sc zQ{a=UI;aQ#PPXR#$XUOe=VJV43z4m)C*=hY-HDY?iRhNXy?|VH>H=(TH`2gP^0A?18 zaw8V-#Y$scb0c8l%TikLb%BiNs|=f)F>j6l`??a_FYO!^jLt{1o!mT|5yGbIHwsIGdUeOe|GloX@k_*bk16A?C;o8nZ~mGU z3{q_Wc^!7i#K({(j6!QQkT1md&?P05F6&Rd|273Sw)F1*`f%OUg5qhYU4Wa!jb^yH zR8;<+us_ItlIjn+gPeAd-<0 z0IRwDy+-W!jAPXL?D#mESN{1o!j(X9Cjs@)KQ7|x`!Uki&RZxX5@d&N8}pJ0tyiy% zQ@H(^_`f|koWCK6{@0~~)&3W1|K}L}ea*NN^dBSjkB0zX7zqBVm48ggKVM{N{-ekL zZX*W%A5Z=723Y<7bKL%Qb9Lx{&h;HB9-!k&=!TEn9{{KYfUn}Py zZ)9oyv337@1!m0mMGBIeL{MIyc`)j+AL|J8q0V?&BgWUq^`@%+cqRL-`oxlpt5(8tydQcbbYoYT>H=1L<>wl^*R`p^k zfw4l5qW!@eO?|HRUs?q_W|NMXvSSOe5{eN~IB<60u{6=Kc0)iM`Cqyj{Jz-Qk7qvR z@1C0?9bK^;qU=j6$A<+lfs%S-ber8jp|*}aub37{B{jX!BDO@L39@Y&Izw30+_`jr(png z>AMnuhJrB(9f(Ksvg!g)vi2kUUriL|t8(x1)joF^i_aa&UOfPd>I;(iEYO`U<8kKH zGZQ;migb5)wtON9jhcqJohHAPw8rn?e<8vz(C%%IEXsUF$VGGyiEeaf3nMkFLdj zyGkgpXN!GPG1(A6X6?HvKx1d3il{UJMGfm{q?Zv$pD~oc0ZcJ^+GRxONoW6+X0qt21E{qr0u ziwl?jSuCHcx*sV*ZcQft>b(I67NW`Wx1*z>d7wM8ddev-4_r1&?(E$U;4)LH7YC$j z+2e;Hr#KhgxC6JM;%Ny$(hmy2Labyak7LiH?)D zK{7ldJU@2^_xf-`is8;0xs=q?H%LrYRbjmg-;JnI!#Z-JYtYvSt@T5V3O2M5pR`CF z>UB>}3A(-rAw4O@UnvL%&v%K zQG!JnP%U>=maK&FW&8&4f9FdrdcO^N&MM@W{x~Me{kN6Hs71^ge0!$y+l}>%ZM2=d zeWf{b%|rMxPpVJmcCf5cEgm4Frb;3!3KIR!U6!u&XIgj(LE8}<4@4*$mP9*}RY%cA zJF^>O6{2n&utVOZE0Jckei;S@(0hs&O|}OyVv;p{b<*a%tRm%6v`D(AJHj{4i@3w} z#Z%!1Nf2dW77*%z0jeqA*Pe^s1I=XjfBHu#5k_FNC5w@Xshj1w<~thDK!4i!M)#Gf ztDmAeg+ntKziNDa1xKg-GjWf~pedB%-Hm|;X57e9M5q8UpFPz7Wxg&{F}BmRo^jW@P( z<3(QvU068yDM)pwjF+(E0zr033v_?**7c_~eY@8k%MegQ-9RV+@ONGPfiqYwx99VP z7Lm_E+@-7~r!mMyw&EA^F?hQ#EsU&#k%PHC&%v+}U8F=fCMZsRprC!iU_X28F&&sd_bs_&Nh1DPH~>54a%R+`*Q79b{rbr`6OAn*!EXJgr?R+KQ1{LnSE8obAq5*fl_};TWB&6t z>jiXyTJcbLr-0`1lnMx7y&&?DY3RI4%?h}g#mHbJ<~dis9`Drt8JM5op;}XM&B!V- zs=%Wtb2H?uzM~3%a4*A~p^2-buZRXWjZCnIUt{a&zXzejWpMtCH_;mYp%G8LIo6ps z*g>)T20#6Xh^Z4a6O^(k!J#FVOo;t6K&Ah+mEG*9|G#E9t@m?N^;$-PnNwuHQiOjk z)d870qY9s++rasoAq8&pSh&G4da&q@5oUSZXFH;RV{a@>0o zu#ogf+W$%M%q-q}XoP6<_K77xIq)6pg(aNZ*@uR#leL> zMMUY;GS2obNoV^8UK&ApcRjm%uV**9 z6@zKd+Mck0)_zyEB;pkzdX6WvIpU-1!GnoK3j?BiMsYUCGhOT0fS{ zD-U-?R!t(jS_6k@mnG%VY<7x=s;Oc9m)7!|+jFDgc+ZitMk%f!fYG=%yIR4}700Sj zT-A8j*rTq^hE32)`m9)T<&2iDx3uLAV?U_?p}Y9h#X+CfyznABXP+2gYSjCzClSg@ zt}exz3O`ciM{OlSU_|fds41cAr2?cDSsWhI^kH8LG2Ecu#dGfNeh`Y727z_kTern{ zoJS^>y&Yp=Q4NokHd30PMP;s5uEue{Y6DkRr>q;G zYJ3wZlXvkNPq+2Pm2Ta3c6eQtgeGr0<>xs6IB$q_fY@nbb;*-MKd?Tm?)E!&?0M=h zdi#Wo^ykdy{8>fg&Eu=6i-Nn4pCWta z+1wv@>lmMeeRmtg!`PkmJeXpmx+O~B!(~pH?k?M0;w@xM`q?^H9BNrrdNt;`gJ>?^ zd0#^e)Fb)htYyE9VJ14gBjFd&()#&kxi4!FVV_o%#pR(r3k*#LnSLM;M5q4 zbv4-;{rMA-QJ}p>K}rnpdyDUmzc3TK^>#=D^J-4GWjiMao-mj#5nUH`A{46yT01&i z3*On*TZ7oZ7Ejo1J!YU)Qib5>Kj0R1c^8C&<`Wv&eF8|(6N;A&5I2eWuT@j6Nqwbj zUi|3QV$=M{;TQ1ykkOYbiKBSu_~Q@(%Uk;6O_t7#Y-{mFzg7yHI8($g2wscKNxuF` z2j|o+X`CrCYM=s@G~Ky@kbL?0m!exmI_1=XPY`YoB$Chba2u`99xZ29)6?!tbFw!r zd-%x?a>e*3mJSGNctfIzNMm@!&{}U>EO6}TMqZSWgQv!#ncL0rSvJsq9A^;cZbAoW zL}$OeI`*)7E-iu(qNj79UkFW)rB?7KiYu`_IYc{V;qn$1rC^q^elg}ko_@A|@3ZZ1Wr;sioFZ&vEm1bfZoJcgLg87%bcjc=#QiH+Y7}Qu zaOL4?isFpk7tITqFR&J6S_|cTE9SIfDfak;ML!c*m-|U>)?AK!6@IFfmeFkJaIzUW z&wkz8`k^(fXPOn*(0FPgwF%$YJumR=Z9OfU8oiy9+5y5g7^H5$J zaWPg)dr&o702o0t-#^oX$$7hm9#cZAO~w=QM@vAgnNUUIRu&~dh>8zw){AN?L3Hcf zW!$`#cdUw~Vt}{JtxHvIEix?dZS%RPLHhQ^sOCyNY(<)MkNNuk`bl=*?3H5cjK=a{ ze;R{~^6U7KoY9jjZnnAdQk@D;12RDjft-4Z%W0M0_3ojDL+>uWm-xjDGhP{7Hh0Mx zrF#CN-O=pxLbXdMVEg=*xfefeKhQY|^H-dD!uj(AvuOT=^u>LM5c~a^hHt#a$Ax3K z7R?`%jg)r|Ia!7mX9O4qw@963u70&buH^R2Gni~>zx%O5tTrB zjwvXs7uCrnF@X_o`ZRTO2TE)9l+(0Um`TDutJO0&MVesY3=M1J&9>~C+@i>2$))jr z^lyw;wc<)1p6a4?QjX2FjnM)5II0-37j{I1D{1a*9@()W_hi4(OA=eK4XVr_Q;-Jl z&K)h9#f>i2*lU)Rx8$0PD&0AR_ol8IOiFgqbC|gNB>1I9=c|2ID>GbJ%MNE5cRGNK z6_bFG8h`!>w{e4FjGvTS)Dyc=S&c1kV%L?Laivlt6vHUame14VTlg;8HPRzSejbTW z$aYE|xYu4S?{>TJ`)5T*hsbdKo*%5Ujd+xlYk515R(P-d6lZ0Y9f2EovaKCQcR#LU z`B%4D#VcHU?9=ey5nfviD9=^R7h}lo@4UT%xv<&Xu;j@OrQcVypVj1Wb+H>?U77C| zR@FuDw(KyLMAZ5&rCE5Fcsok63v>Okd2)W8-AiLibt8^jlh#+nFI3T}r#h`RXnNPo z-{>hj_0${H;FGF7mjI>9pkrcwpeJ2Tk}mZ0;PWUqe9~xAR~UVmvUEcJnr?x9;(EXA z)2YRl))%g*<|6#C-ixDWw$zS=;D&F~C149m5T1l<)uhM4H1e^*V|_{S*kq=w`^u=M zy$0I(R6lSjKN7?-eqQcmIRS&OnY%tI9)v`lfADx{$+F*h;lfs$3coICQs2Ii>-FMW zd{kO`VRWF`xisN+@>62VYq=Y(P^AI$$H!!*=Bq(QJ==+F0QJ?&ZhK$;PS+0wBJ$hz z*o`eag6l1vpBn2=HyeBNfu22==uI<$DHxySn7eWXXXG-;V48=Mqr-up1PC&PL@pZ4 zI#Y6_U&)0oYDmk4r+Il4Ue8|tEL<~UyM_={e@bDVrm~#R){$SX2jP)obv6x0=j|~Z zZ3*YS0#xvPED4{GbDM>r@z)Py90EnqA~IZTYAZDD${m589z4tH*9#$p_y`9#O^jlD zR^jXGm1ECqt_{!LmAfX!b{)mGZm%Fmv*)b04WU1*CL0D2#>PdRAs*J>{D&0ie$i$6 zHO=C?)Vlw2ryTcE;|Ta401L8~${DpG4AK z<)0dQJbZn*6p|3y54o@%z!XTrjn|Df)GL4~)8@&`Zy2=Rnk|_SIfE6-Ds__{VaI38 z*el!Hrdya#XN}J%)P&Ti->Ye`9~lZ;!;|gd>gDXtrhw| z>R$(?1$K>*8o!_E4AJX@;Km9YP^hZi2|N|Xo=u4HssF32~&_>znrl36D^+}TJ26f8{1VOisk3x%kB|XdgqMDJ*l&&?6 za|cxEF*&rOua1$9x;9q7^H(&}BXo0peVCvFuWqdDOXLYkQrv#0%`*n*n8bFv>m~;V zaJV?Q4_U;?lpFK*<-Y*2jYC2)3Gp5T&zobHVj6e4B)>aNZD?gr<&4P|V}B?XsTs&) zUMRRu+0rtEZJKEa7Pw%LN#u>?ju^rhn3X^6;ObL5Oq@==Ha<)he(@j$p?*|}_;Gq! z^PMO~t3YYH96VUIRy~rNw1U6eRX#LgJzMZR9v`EvsD@a+8MHiI zKDU*35w2|`+;5`z=N7;gLj<`XO_IiAj6@po`|+NPi7Zsuopue8 zG;{2QjMxtJf%}o32>)4w#-jQRFN8eN^UDR&D{V2q^@hAh_ za$BqJS&+jF9!N)T*CEc0#ZEv=Lf0js(8WFL-Nz)*%c*bq{N<)N0BK(=Q`Sk7U4C{!2 z>XKYRD%ftK7*>ll`VUbxA0w17VhKH9EkvTVucDN#u^Y{tUHipDpUs*B6wA>Jhm-SF z$yw{X$;nj73EE>jKM$fMv^+m`>uf_-Q9{0#^xPYZbh!tdk`ZfK)5S=U=~hld__wO6 z7;@aW=!T8+W;?$)Xoh(wMMwb-J9)j?Oyp7In%)GHm*G*|PFc3vQPzA3CRggNbGnyn z#tth#jS$jlY#|KMNm!*F76F%%uQX_vFuttwC^1=u9y|)pTvoa_>+}SS875HkrkPWr zEp2w}2J4`2TQ^v&jWgZo$%joL=PVe=Y)X#TFOR-(V%Ed-hU{hdZ@QB9UO2p~w+jaWriRj+7a`B4)!UsAdP?kqPh!ud3E zh^t}QV~?w6Z-9JUq11<9*rvcdJu#5@v>nSB6+7fnyUzN0Zl`*+i3xFjXAD`uk1!9k z4xA8zbe9lWVyXIv!uG;jjPAYuoyh;P&61`{Z7Qk~q!KOKa@v*TGC^`Ry`If_Vy>Tz z*kuS)Js%9-i(G6X!S90l^bV>g+b3VQHy)j1mQv#at4-6c?kDipzb;Dphk`az)ExYc zqhs2yu2zZA3OTNB7>sDORDbEVsZFm<>PGU#RuIvZSSFR5kEgC<<5sq2sO|^!N@^>0 z&7qDvzB{ghIuq+K?$ZR5!0;qQY{^mSxa|q@B$$ZHs0H^Yktte`fCb;sI;OTwo^qRW z!mq}b>Qd@PE4(s`+zX?%ABdp2hcPeTBCxSL2jrNbJYaA6GSX@E4R=BI7I z@(|I(xYO;_IwiE3WTbO`!V^1-8NvvgX|A2iI4=Kw3x z)s@OVGS{_NW=7AhD!VrlhFEuXeQYv@MSNXg4zMRl>@0*#AvE>E z5_L6z8V3>zu(ZOK=dNyzx!{5ha_*aTm4D&I-iNw!a?5}mOH|6aRk+%8rU%9AFFMoK z*W~c#`WgDOafER;jV=LB_kFCu-fU>S#8k`?D}+!ZQzQ^pOXfAbQZ6#Q7V{vPMn`xv zAa*Ev4Fv&8gn*w-w%KE}MDVAL7P`V95yNUfT{G>ymp}1}`Mcs?#mfmygi5J};Qa%^ z{fv;I*)Y%zoOKD;1N)%Qy z1qcvvjF>-KtO*=^S)3}O1R;sx$1cG_d=)>tkB#rI#~QJ1cOUlMnv3_W@b>;BZKJQ{ zU4pFNGECgJlqECFa~-x$N-eDXUvMnrwYDAP>K|K_-rc`L!eDeO!GimdlRp{Fw9K%6 zHE!9DS5a$An61M4)(*#_4tEcc4wH`US*D%T|!9SE-M_@LIJ8)GE2%S_9@1D z@w`_0zrTxv0oh!}Rv*83F7oY=gU0P<-`0je4`& z?6N6(yQMsE?ZIAm>M+T}TeqRTZD_>uNZ+PHK`yO^Va(_DkyP=i&^*a;(sbebmfYzF zG<}>1_(Lx?;{#bA!mY3NfmJZh4`LT5GML89&t5*}EKyUv@hdYLE!_%bjK49qUNTK@ z?K;HKkEi&!OrP03O~>dbNqQ7Xx-NcDU75Q?cZ&FVrBb-O2b393^}D5v zsW`Uz+=t(3p?0NrDzpKL!7?>nCFb81B2jJs)xX(_mus*E*ZZ;d)@!eYcNYF_?} zm;!~#F+0AiKeqTAV(&vW&={vynk$^%)QZnOn3y$~qfp-eq{lpQhv3IY2SOp}h9e!v zh%%hGmqj)XQ9vSp5|0MReeXKO!-2B4a7q^HGZQ#5UCDigruXDsX}qrkG8FC)@Fx3f zVa`V&1u<@azEIEYsF|41&Tur$7I|I0g0U9!8BrhG>p_f8)5_aU?~FJ6<+66ruLA;M zdP_J(BJ}VoaURzz9p7eTRTP)qmva`gB&Fq&)c9k@cSA3<1&Qs>-D!J&7VSU<02&wA zc$*k{#q?I;@i~yg9Hx5a#|}bZc?8@VZ}ZS(reo*$Y(IhZ*-)g<)?*%)qrdYl{}!+a zKNnD`ID86cDyCf%J;v3UtVdJ@KaqEHL zH9uisLk5M3r8SvV`~`=Bgcu%0o-O~9&K-^hTnOutK$GfOVKz#fXiupj^>}%UuW&5A z(aZ{Nk~~EfW)fM)ti&)XDUypcNGrUUxBI0WC2x-hKAD8%>lVL}D(Tth zq3=A`=$GT-&v=O}kdNk5)1o8wA8wqbsVTLb`FEir8BTPH_SmGWd=&s4pEd>^HNedQ zijRSIcZGh7c$kkOFO7ywHUb)Q@#TE&>oTf76;snRNF4{+ z2+{C92J2RMrXRHlP>S$<$LHnN^UkUR%Civ7CK>(7G$sWyJ9@wtug#9J%r0d?O4_Wcb5Hj z!KUnB!_nJfd!+14bAUplYI6&L+(LS5a+k{?Ml>I}ISgjVISE{CV&7B=!f;cr%z-e~_LUb&J`2 zNt?CRQc_tmdn%x}hQ5m$tPj{+ed*vaKt4u1CV@sOWqR`nY-$?KjvMwv5lNqhB@WCM zYj|(sH{F5ofA=jQznrg953x!W<%U!&&Nwmi0Oj~Alp8#)`eRb53c zN5nOYoproo`9)35?8P zWL=@Sd}VFqurzy3G$aV|zBHuxvbBuS?#yxOYOPu5>mj$ieHP~{?@IR~KIfNH%aZsMxN&Lb2MbnWV7zdg|)OanEX_}heEF_AJPBR6jhIB&fq`XE^DXAm zHKWvx9j7-+SEm7E+(?eSThNp34Kj zrgEta={L5Ik1^-CuEwqhzw?ckqYZD(uUYSnf0>ws0^A&+#o_Tbh6@!z@52mIUjRfKYPcPCszlEzK%}s z?P5Z>-x33rX>&j74`kt-2JTX|;(HTBOzOp7l1+J5Im>?S?!GF~ZCzs|y!r%CxgNYx zLfa>ploVWMR#XSrM+f@l<6sRMtBMJWP|MrkN?eLM*$TDVD4bX0#r%kL%eu~;kS+{f zbq4|uAm0$Dy1`wMtiPHs*UL^j51N7AYp+K_Nkb2M!%3jSZFt^Izf-3tDnx18g){V| z^nljb8T}#d$6bnEXf#@eq|9Q>lXp&irgF*K3V{7R+*i1j&ehiQK&q`MpXZQm&p|_) zQM}hABy*LMyheoca}WB)f(7%)B%`FquoV zfJ?)8bkmzePc+v8F}G4YFIQTw}yofxZVwY%PXmcs>B+8 zJ803g*SHtuo}IkCvi-R*-$zkU6ykVzQj+;6?tF|qCr=&sGR?yMQB&fNVT%ZKUp!C8 zUJ$u_H_&{$)%wSD${Zu;QMJmHQI#2(b68Acz$LBbg~8;RACw7EwfF$(sZlPLCU&yv zIE*x+*n{ON4edZ{vL#e2*`R>0YW%lq?ZE*7}Qw*L<3) zQds7zFJ#m}{N;sv|FZT;{20Q{nq%GfC?Gig$N~1U9+LOr;B;`jGhoclON-L0MUVVe z3wb_BkxBdc`*TtkhYtSsfi`6sm&6G&{_86(%AVfDz+qWOF&q1=qqu6s3(TgI_eLqy z^_P8-AGZhI7x{_50x2j=4N~q>qb2)=beACUy6k#RfXFLJruX-n@fpAQZnjnX(z5+d%m=_=f|`BiDqds zVX5?%tF;ivcMO#V!_R4Y^=p>QJ?odr#nhcz;fsxrB+?Kr(H8M5CjX|9-PN^0$TG&^ z)%iuL$MM6(zImf^t))H0y1fyJ{UXi+>|+#xCRVE-Clk$Qa9Mu=m$e(gI}=2|Z~}xU zymj^L`-GAzCfb_Qohe_qNyMhI1~pLlDLQGZCx#>ud%0Yzq|oJ7?VVE~A`rr4WMt%H zg3g`cpmn6E*Q`6TOR2cXoqqc%vu|Yd1G4yshR(EWaWmWE$xjZVy$$O2la1(_eP&CK zx~|eVVMNs>yN#bEKAOcH@oW)s3w{1R7*2>l32gZfn8Q}}dhIxfu=q&V`MkSXY4C!d zqtR${4d2PSIz4~%_6dovD{PqDF8*w1>zZC&@eR*qi|j2lMAv*Omr$Bd%Rco9xMYK5 zG3=(EtAD_apBZpAjyAQPQlI{z%c9{=YxkY%_9mKs@@9hTXZ-y|r|wgHB1j9H|9xM6 zM6uz;SPdWS9-mH{1eexzXsqbhYdsm}L7~N0`emka+6Uux3}F@nUihUGAnbi#t;LIR zSjM_LAROgC3WZTGtH9H=!V44?{9~jostr(lUWK)?Z?DJjCYIhH=M>GI`ds+cVv7(D zs_UAzHWa!Lc?k~#Gd5-C+%CVL>2^#oA)7vTNS3l$gMO?fd4JE7M2O0Jcl-+_{BXIJ_hDhS0nWHuf02vF zWJoDcRnAJ@G8Z{yfRugv9Rh}Pcu=E7L|UOGvvX+Xehx3w<`0HAGwHjg*NT|g=Q6a# zN@pW^sUxe)-)B$6=)o+rt%52OWx^XsDeTK9i2p(Mc&?#@^E?bwVESG}Ett;pbSFzU ztW>M>B-Uqa#{))VEjRwV$RRQDmbQV;zL z3DE1!?xvI@rDS&fqU58*qVD=nKe1!hpJfxCv)^uYd@$;7qPhEU;{5t_Ek1{6Re_qx zBMoGF;O}w4;YTOUd+(n&xPoi4L4cO_X;m0<0x8EDvoyLuH7Q$hhiw~_sggD3o;#z zd~Hu;ZToZOszvVE=d;iCj*FBV&Wo_XiQXpK7p7rWyGhb+`I7%6appW!#ixWTluqaiM^ZE~N+X)@IvM*c}bxE7|Nx%T1f#t;pDaXdoNdb!!dYmAy zcw{e>4Y)&WvYI46#-;=CCO?}V(8Xt`u3s4)J^IT?u=js@>a_+1YTs_#Tft^OMqK>?(4pKfDd9WQtq-e{keqFn zMYL>UKJ_E+kqvXT*L&riR${ z@A66MqWmq-v|k)*$t_=39C3YQ-toFws7!`3wS7O2t?NCZ(y6H`5@M9v+#Wt%9-)Z0 z#Y%lt>v-)p-G(fjFWuDx_T}Ly@MxMNO?b!nirIiGAjGkgSeA+~HRL(9EX8_)39%O3 zZhr+Zbs91I%|P9KwhdU)vJs5|m-HUw3u7Myb-4N z$dxz&>CXE&DX`3}%CcQ#ixDXj`WPmmK1Ja=`}MlH3i~*CTT0Uep;y6(el*TZRQ*!8N0bhKt@K zRM|SnWWPDiZ8Ne+uW~B>TEV%0!@8x+21^DVLk-=7EgT~`Y*S8-FB_JL;QNmSWUHYF zJe^`t$MHNcoiQ7iy94WJ*Bf$G+8JwV;VFaZjTaSTiP;|2?x2d{L#g3$Q+W`b9pk7m z0_DVvTAJMJS(M9ls1uJCh+FQ*xb|HN4z*eO0@eDL_1R&Dlvg|nrYb#B)CMQkZoi4qcLa#H%VDpN~4;N zI0~5%R%@eiA2J}xZv?(NQG+K=RTGnFxZ~WK?k2ExEZYET zBts9e5%i@G%cY$GfP(aR(r^(@+1RUtQp)_JNb~LQ*v`>rYmg4B{ESWLgv#p)A#3mzk_E-chuw$@rqi{Y1=(PCEH!VQ?G`AsO-@5;A>B?Ld_ zJp?yG(8Ky{Y}_>!qIF>)f=S<^n3{0-c&Z9y@v~B~cdEOa>Eh(28_zTzx-~EDmQ|g# znpgOuM5ZFji7N1v^b7c|#fQHYDI{qoB1V-v6tD*nnBN=8JZdmrp3vJU12>YZBvgG{2DRW9hGFsUm#7Z6PAd3Hc#99KcN)I5mu#5@r8Tfz}% zMRye?^4;|?ZAJ?{e$FbrM$JeDn%JVX|89X7o~ZBXGNRm?W0#qGqz42tvTG!+VMgzk zlorGVwzphQ93;kgsd2T=`V^yhlw`yeIAlvX#vsbonl{C!SjuDtWh$Rpj9s()4Nb_? zjligZYl{E(U29QJBwB1K1Xa1?S$aZ$Cpa=Ho3djl=I{&)B&Vy7+7>kkntgMG7Z+_lpv zgppUeGYapG9SU+8&cU9|B-R=KlCh;_PO$c&^FN+da z8O!e|b5g`LQ~ymjSvGKCUUs_OBf zqZ~$E5JNQu&d=kO(E_2_NuUX^QYBd5oCjI*xki!VO9#;O)ET z&kOL+yromVLLA@`5y3T$jw6d$2u_ceKLSsBE;dv1n@i^?TH$h99j%&ERX5oK63JM) zzvi*r6EC&b{CN>k?!eRZ{_1jUMn=T8+$6J(+QPR4{BN+^kRJ#E;D?R2Ud3E;a=YYl z3n&eLuEV51Rd@Y_nkeh1&PU*ho{4_1#Aw#(l?e}_{elSvTIGOdbP{28!F}cP)Ww&} zo}=NhpnI6NJ|GyMUI)i5leFM1{!Y?!uQiP^K;n!U2Tj;#6!$jt(AybfO9LuWT7kR0 ziOwF9#^Zw3k{~A)ZLc<(TdI?eQHk@)ul~;$X+O24N%lgi<@}!G+=e>eb>3aqfNsB^ zJlWkumrs&xpuI4Eo$x_d_{>p*K_6LtA zP?6~%{!?}0|1kI7QB8H-|6l+GeP}9J009*c=~AROr6!?B=pao{q=eo}0C@xzX`y!! zLhrqUA|M??@4bZHdy={Ml<)igX3ebMnwdXlvlchyo^tozXYaF5&OV>jT1hFglso&N z(IwBS<~NkHRU6eYt}aBy(0O{KC0I=Kum1e=|L^4GrO$<~($zQQjMdF!yjO69+}e#p z8}2d>+`T*I%5I`VLM|ige`&QB$dkIPp(942%`nkZh(c$=C3DjPI@_>aYGb<%`nLB? zokkx;PY-Cy|4{#S=wGRm8V?HIOpl%NUDL6*w+fEQepL<|Hp z!!G()!afujvrM_xT4PGO77DwLe2iw2*Z4l;YW~g<#h=#`*4x%c6Ahc*(Yot>0(eJh z+~BEyOoeM%@52WOg-C5Xppi?1@;4oL|IPqE^PhCAbzXOf1n`<9Wgmq<5zz&pj1pfy zp=M{hjdhNx8@uPZVT_yEewnFU9#8;!zw>o94cH?6elN3!5f^oGLNfe6xN*P !Iw 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