From 795f4d272ab804048ddff758d51add31e4b1e3d2 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Thu, 19 Mar 2026 21:07:22 +0100 Subject: [PATCH] auto-git: [add] README.md [add] backend/libraries/punk/library.json [add] backend/libraries/punk/stage/19f1e5d2ceaab5fd1f1dc58ff07422388f156610d16dfdea2bdb35a5b9e70813--GeorgeJordac-TheVoiceOfHumanJustice.pdf [add] backend/libraries/punk/stage/85fce554ff7685f7bccb136aff5768e54b9ba8361672fe45dbce599598c4be4b--4_Strings_-_Take_Me_Away_Into_The_Night_Vocal_Radio_Mix_.mp3 [add] backend/libraries/punk/stage/e816ca61aebd84159747d248fedd6d5ff318c471c36bcc31b1ac6bf9aebcd3c1--The_Evolution_of_Cooperation_Robert_Axelrod_liber3.pdf [add] backend/local_rag.py [add] backend/rag/__init__.py [add] backend/rag/corpus_builder.py [add] backend/rag/corpus_enricher.py [add] backend/rag/index_builder.py [add] backend/rag/unified_rag.py [add] dist/assets/index-Cc0DLWqA.css [add] dist/assets/index-DKAz6gtp.js [add] dist/index.html [add] src/LibraryManager.jsx [add] wheelcheck2117/pydantic-2.11.7-py3-none-any.whl [add] wheelcheck274/pydantic-2.7.4-py3-none-any.whl [change] backend/main.py [change] backend/requirements.txt [change] backend/schemas.py [change] electron/main.cjs [change] electron/preload.cjs [change] package.json [change] run.sh [change] src/App.jsx [change] src/InterfaceSettings.jsx [change] src/colorSchemes.js [change] src/main.jsx [change] src/styles.css --- README.md | 89 + backend/libraries/punk/library.json | 32 + ...3--GeorgeJordac-TheVoiceOfHumanJustice.pdf | 1 + ...e_Away_Into_The_Night_Vocal_Radio_Mix_.mp3 | 1 + ...n_of_Cooperation_Robert_Axelrod_liber3.pdf | 1 + backend/local_rag.py | 526 +++++ backend/main.py | 9 +- backend/rag/__init__.py | 0 backend/rag/corpus_builder.py | 1741 +++++++++++++++++ backend/rag/corpus_enricher.py | 1048 ++++++++++ backend/rag/index_builder.py | 525 +++++ backend/rag/unified_rag.py | 687 +++++++ backend/requirements.txt | 19 +- backend/schemas.py | 6 +- dist/assets/index-Cc0DLWqA.css | 1 + dist/assets/index-DKAz6gtp.js | 69 + dist/index.html | 14 + electron/main.cjs | 113 +- electron/preload.cjs | 2 + package.json | 2 +- run.sh | 21 +- src/App.jsx | 839 +++++--- src/InterfaceSettings.jsx | 89 +- src/LibraryManager.jsx | 274 +++ src/colorSchemes.js | 112 +- src/main.jsx | 4 +- src/styles.css | 157 ++ .../pydantic-2.11.7-py3-none-any.whl | Bin 0 -> 444782 bytes wheelcheck274/pydantic-2.7.4-py3-none-any.whl | Bin 0 -> 409017 bytes 29 files changed, 6023 insertions(+), 359 deletions(-) create mode 100644 README.md create mode 100644 backend/libraries/punk/library.json create mode 120000 backend/libraries/punk/stage/19f1e5d2ceaab5fd1f1dc58ff07422388f156610d16dfdea2bdb35a5b9e70813--GeorgeJordac-TheVoiceOfHumanJustice.pdf create mode 120000 backend/libraries/punk/stage/85fce554ff7685f7bccb136aff5768e54b9ba8361672fe45dbce599598c4be4b--4_Strings_-_Take_Me_Away_Into_The_Night_Vocal_Radio_Mix_.mp3 create mode 120000 backend/libraries/punk/stage/e816ca61aebd84159747d248fedd6d5ff318c471c36bcc31b1ac6bf9aebcd3c1--The_Evolution_of_Cooperation_Robert_Axelrod_liber3.pdf create mode 100644 backend/local_rag.py create mode 100644 backend/rag/__init__.py create mode 100644 backend/rag/corpus_builder.py create mode 100644 backend/rag/corpus_enricher.py create mode 100644 backend/rag/index_builder.py create mode 100644 backend/rag/unified_rag.py create mode 100644 dist/assets/index-Cc0DLWqA.css create mode 100644 dist/assets/index-DKAz6gtp.js create mode 100644 dist/index.html create mode 100644 src/LibraryManager.jsx create mode 100644 wheelcheck2117/pydantic-2.11.7-py3-none-any.whl create mode 100644 wheelcheck274/pydantic-2.7.4-py3-none-any.whl diff --git a/README.md b/README.md new file mode 100644 index 0000000..1bc783b --- /dev/null +++ b/README.md @@ -0,0 +1,89 @@ +# Heimgeist + +Heimgeist is a local desktop chat client for Ollama. It combines an Electron + React renderer with a FastAPI backend, stores chat history in SQLite, supports optional SearXNG-backed web search, and can enrich prompts with context from local library indexes. + +## Features + +- Local desktop chat UI with Electron +- Ollama-backed chat with streaming and non-streaming replies +- Persistent chat sessions and automatic title generation +- Edit-and-regenerate flow for earlier user messages +- Optional web search enrichment with source chips +- Local library management for RAG-style prompt enrichment +- Theme selection and UI scale controls + +## Local Libraries + +The `DBs` tab is no longer a placeholder. You can: + +- create and rename libraries +- register files and folders +- build, enrich, and index library content +- mark one library as active for chat context +- open or remove registered files from the UI + +When a chat library is active, Heimgeist queries it before sending a message and appends the returned context block to the prompt. + +## Stack + +- Frontend: Electron, React, Vite +- Backend: FastAPI, SQLAlchemy, SQLite +- Search enrichment: SearXNG + page fetching/reranking +- Local RAG pipeline: corpus build, enrichment, embedding, and retrieval helpers under `backend/rag/` + +## Development + +Requirements: + +- Node.js 18+ +- Python 3.13 +- Ollama running locally +- Optional: SearXNG on `http://localhost:8888` + +Quick start: + +```bash +./run.sh +``` + +This creates or refreshes `backend/.venv`, installs Python dependencies, installs npm dependencies, and starts the dev stack. + +Manual startup: + +```bash +python3.13 -m venv backend/.venv +backend/.venv/bin/python -m pip install -r backend/requirements.txt +npm install +npm run dev +``` + +## Project Layout + +```text +. +├── backend/ +│ ├── main.py +│ ├── local_rag.py +│ ├── rag/ +│ ├── websearch.py +│ ├── ollama_client.py +│ ├── models.py +│ ├── database.py +│ ├── schemas.py +│ └── requirements.txt +├── electron/ +│ ├── main.cjs +│ └── preload.cjs +├── src/ +│ ├── App.jsx +│ ├── LibraryManager.jsx +│ ├── GeneralSettings.jsx +│ ├── InterfaceSettings.jsx +│ ├── WebsearchSettings.jsx +│ ├── markdown.js +│ ├── colorSchemes.js +│ └── styles.css +├── package.json +├── run.sh +└── vite.config.js +``` diff --git a/backend/libraries/punk/library.json b/backend/libraries/punk/library.json new file mode 100644 index 0000000..0c5fce7 --- /dev/null +++ b/backend/libraries/punk/library.json @@ -0,0 +1,32 @@ +{ + "id": "f5194228933140b68625347333749baf", + "name": "Punk", + "slug": "punk", + "created_at": "2026-03-19T20:02:20Z", + "files": [ + { + "sha256": "e816ca61aebd84159747d248fedd6d5ff318c471c36bcc31b1ac6bf9aebcd3c1", + "path": "/Users/giers/Documents/The Evolution of Cooperation_Robert Axelrod_liber3.pdf", + "rel": "e816ca61aebd84159747d248fedd6d5ff318c471c36bcc31b1ac6bf9aebcd3c1--The_Evolution_of_Cooperation_Robert_Axelrod_liber3.pdf", + "name": "The Evolution of Cooperation_Robert Axelrod_liber3.pdf", + "size": 1208035, + "added_at": "2026-03-19T20:02:53Z" + }, + { + "sha256": "19f1e5d2ceaab5fd1f1dc58ff07422388f156610d16dfdea2bdb35a5b9e70813", + "path": "/Users/giers/Documents/GeorgeJordac-TheVoiceOfHumanJustice.pdf", + "rel": "19f1e5d2ceaab5fd1f1dc58ff07422388f156610d16dfdea2bdb35a5b9e70813--GeorgeJordac-TheVoiceOfHumanJustice.pdf", + "name": "GeorgeJordac-TheVoiceOfHumanJustice.pdf", + "size": 849816, + "added_at": "2026-03-19T20:04:17Z" + }, + { + "sha256": "85fce554ff7685f7bccb136aff5768e54b9ba8361672fe45dbce599598c4be4b", + "path": "/Users/giers/Music/4 Strings - Take Me Away (Into The Night) (Vocal Radio Mix).mp3", + "rel": "85fce554ff7685f7bccb136aff5768e54b9ba8361672fe45dbce599598c4be4b--4_Strings_-_Take_Me_Away_Into_The_Night_Vocal_Radio_Mix_.mp3", + "name": "4 Strings - Take Me Away (Into The Night) (Vocal Radio Mix).mp3", + "size": 7994108, + "added_at": "2026-03-19T20:06:30Z" + } + ] +} \ No newline at end of file diff --git a/backend/libraries/punk/stage/19f1e5d2ceaab5fd1f1dc58ff07422388f156610d16dfdea2bdb35a5b9e70813--GeorgeJordac-TheVoiceOfHumanJustice.pdf b/backend/libraries/punk/stage/19f1e5d2ceaab5fd1f1dc58ff07422388f156610d16dfdea2bdb35a5b9e70813--GeorgeJordac-TheVoiceOfHumanJustice.pdf new file mode 120000 index 0000000..44e3f4c --- /dev/null +++ b/backend/libraries/punk/stage/19f1e5d2ceaab5fd1f1dc58ff07422388f156610d16dfdea2bdb35a5b9e70813--GeorgeJordac-TheVoiceOfHumanJustice.pdf @@ -0,0 +1 @@ +/Users/giers/Documents/GeorgeJordac-TheVoiceOfHumanJustice.pdf \ No newline at end of file diff --git a/backend/libraries/punk/stage/85fce554ff7685f7bccb136aff5768e54b9ba8361672fe45dbce599598c4be4b--4_Strings_-_Take_Me_Away_Into_The_Night_Vocal_Radio_Mix_.mp3 b/backend/libraries/punk/stage/85fce554ff7685f7bccb136aff5768e54b9ba8361672fe45dbce599598c4be4b--4_Strings_-_Take_Me_Away_Into_The_Night_Vocal_Radio_Mix_.mp3 new file mode 120000 index 0000000..a460770 --- /dev/null +++ b/backend/libraries/punk/stage/85fce554ff7685f7bccb136aff5768e54b9ba8361672fe45dbce599598c4be4b--4_Strings_-_Take_Me_Away_Into_The_Night_Vocal_Radio_Mix_.mp3 @@ -0,0 +1 @@ +/Users/giers/Music/4 Strings - Take Me Away (Into The Night) (Vocal Radio Mix).mp3 \ No newline at end of file diff --git a/backend/libraries/punk/stage/e816ca61aebd84159747d248fedd6d5ff318c471c36bcc31b1ac6bf9aebcd3c1--The_Evolution_of_Cooperation_Robert_Axelrod_liber3.pdf b/backend/libraries/punk/stage/e816ca61aebd84159747d248fedd6d5ff318c471c36bcc31b1ac6bf9aebcd3c1--The_Evolution_of_Cooperation_Robert_Axelrod_liber3.pdf new file mode 120000 index 0000000..06db110 --- /dev/null +++ b/backend/libraries/punk/stage/e816ca61aebd84159747d248fedd6d5ff318c471c36bcc31b1ac6bf9aebcd3c1--The_Evolution_of_Cooperation_Robert_Axelrod_liber3.pdf @@ -0,0 +1 @@ +/Users/giers/Documents/The Evolution of Cooperation_Robert Axelrod_liber3.pdf \ No newline at end of file diff --git a/backend/local_rag.py b/backend/local_rag.py new file mode 100644 index 0000000..1b208cd --- /dev/null +++ b/backend/local_rag.py @@ -0,0 +1,526 @@ +from __future__ import annotations + +import asyncio +import functools +import hashlib +import importlib +import json +import os +import re +import shutil +import threading +import uuid +from concurrent.futures import ThreadPoolExecutor +from datetime import datetime +from pathlib import Path +from typing import Any, Dict, List, Optional +from urllib.parse import quote + +from fastapi import APIRouter, HTTPException +from pydantic import BaseModel + + +router = APIRouter(tags=["local-rag"]) + +LIB_ROOT = Path(__file__).parent / "libraries" +LIB_ROOT.mkdir(parents=True, exist_ok=True) + +JOB_EXECUTOR = ThreadPoolExecutor(max_workers=2) +JOBS: Dict[str, Dict[str, Any]] = {} +LIB_LOCKS: Dict[str, asyncio.Lock] = {} + + +class CreateLibraryRequest(BaseModel): + name: str + + +class RenameLibraryRequest(BaseModel): + name: str + + +class RegisterPathsRequest(BaseModel): + paths: List[str] + + +class RemoveFileRequest(BaseModel): + rel: str + + +class EmbedLibraryRequest(BaseModel): + embed_model: str = "dengcao/Qwen3-Embedding-0.6B:F16" + ollama: str = "http://localhost:11434" + target_chars: int = 2000 + overlap_chars: int = 200 + concurrency: int = 6 + + +class LibraryContextRequest(BaseModel): + prompt: str + top_k: int = 5 + ollama: str = "http://localhost:11434" + embed_model: str = "dengcao/Qwen3-Embedding-0.6B:F16" + gen_model: str = "qwen3:4b" + + +def now_iso() -> str: + return datetime.utcnow().isoformat(timespec="seconds") + "Z" + + +def slugify(name: str) -> str: + cleaned = re.sub(r"[^a-zA-Z0-9\- ]+", "", name).strip().lower() + cleaned = re.sub(r"\s+", "-", cleaned) + return cleaned or f"lib-{uuid.uuid4().hex[:8]}" + + +def lib_dir(slug: str) -> Path: + return LIB_ROOT / slug + + +def lib_json(slug: str) -> Path: + return lib_dir(slug) / "library.json" + + +def stage_dir(slug: str) -> Path: + path = lib_dir(slug) / "stage" + path.mkdir(parents=True, exist_ok=True) + return path + + +def indexes_dir(slug: str) -> Path: + path = lib_dir(slug) / "indexes" + path.mkdir(parents=True, exist_ok=True) + return path + + +def default_library_data(name: str, slug: str) -> Dict[str, Any]: + return { + "id": uuid.uuid4().hex, + "name": name, + "slug": slug, + "created_at": now_iso(), + "files": [], + } + + +def _read_json(path: Path) -> Dict[str, Any]: + return json.loads(path.read_text(encoding="utf-8")) + + +def read_library(slug: str) -> Dict[str, Any]: + path = lib_json(slug) + if not path.exists(): + raise HTTPException(status_code=404, detail="Library not found") + return _read_json(path) + + +def write_library(slug: str, data: Dict[str, Any]) -> None: + path = lib_json(slug) + path.parent.mkdir(parents=True, exist_ok=True) + tmp = path.with_suffix(".tmp") + tmp.write_text(json.dumps(data, indent=2), encoding="utf-8") + tmp.replace(path) + + +def _line_count(path: Path) -> int: + if not path.exists(): + return 0 + with path.open("r", encoding="utf-8", errors="ignore") as handle: + return sum(1 for line in handle if line.strip()) + + +def _file_uri(path_value: str) -> str: + return f"file://{quote(path_value)}" + + +def _collect_library_paths(slug: str) -> Dict[str, Path]: + base = lib_dir(slug) + return { + "base": base, + "stage": stage_dir(slug), + "corpus": base / "corpus.jsonl", + "enhanced": base / "corpus.enhanced.jsonl", + "shadow": base / "corpus.shadow.jsonl", + "indexes": indexes_dir(slug), + "shadow_index": indexes_dir(slug) / "shadow.index.faiss", + "shadow_store": indexes_dir(slug) / "shadow.meta.jsonl", + "content_index": indexes_dir(slug) / "content.index.faiss", + "content_store": indexes_dir(slug) / "content.meta.jsonl", + } + + +def library_payload(data: Dict[str, Any]) -> Dict[str, Any]: + paths = _collect_library_paths(data["slug"]) + files = list(data.get("files", [])) + stages = { + "has_files": len(files) > 0, + "has_corpus": paths["corpus"].exists(), + "is_enriched": paths["enhanced"].exists() and paths["shadow"].exists(), + "is_indexed": paths["shadow_index"].exists() and paths["content_index"].exists(), + } + artifacts = { + "corpus_records": _line_count(paths["corpus"]), + "enhanced_records": _line_count(paths["enhanced"]), + "shadow_records": _line_count(paths["shadow"]), + } + return { + **data, + "files": files, + "states": stages, + "artifacts": artifacts, + } + + +def _walk_input_paths(paths: List[str]) -> List[Path]: + out: List[Path] = [] + for raw in paths: + current = Path(raw).expanduser().resolve() + if not current.exists(): + continue + if current.is_file(): + out.append(current) + continue + for child in current.rglob("*"): + if child.is_file(): + out.append(child.resolve()) + return out + + +def _sha256_file(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as handle: + for chunk in iter(lambda: handle.read(1024 * 1024), b""): + digest.update(chunk) + return digest.hexdigest() + + +def _stage_name(sha: str, path: Path) -> str: + safe_name = re.sub(r"[^A-Za-z0-9._-]+", "_", path.name).strip("._") or "file" + return f"{sha}--{safe_name}" + + +def _job_public(job: Dict[str, Any]) -> Dict[str, Any]: + return { + "id": job["id"], + "slug": job["slug"], + "type": job["type"], + "status": job["status"], + "phase": job.get("phase"), + "progress": job.get("progress", 0.0), + "detail": job.get("detail", ""), + "error": job.get("error"), + "result": job.get("result"), + "created_at": job["created_at"], + "finished_at": job.get("finished_at"), + } + + +def _has_active_job(slug: str) -> bool: + return any( + job["slug"] == slug and job["status"] in {"queued", "running"} + for job in JOBS.values() + ) + + +def _load_pipeline_fn(module_name: str, attr: str): + try: + module = importlib.import_module(f"backend.rag.{module_name}") + except ModuleNotFoundError: + module = importlib.import_module(f".rag.{module_name}", package=__package__) + return getattr(module, attr) + + +async def _run_job(job_id: str, fn_name: str, **kwargs): + loop = asyncio.get_running_loop() + job = JOBS[job_id] + + def on_progress(phase: str, pct: float, detail: str): + job["phase"] = phase + job["progress"] = round(float(pct) * 100.0, 1) + job["detail"] = detail + + job["status"] = "running" + try: + if fn_name == "build": + runner = _load_pipeline_fn("corpus_builder", "run_build") + elif fn_name == "enrich": + runner = _load_pipeline_fn("corpus_enricher", "run_enrich") + elif fn_name == "embed": + runner = _load_pipeline_fn("index_builder", "run_index") + else: + raise RuntimeError(f"Unknown job type: {fn_name}") + + call = functools.partial(runner, on_progress=on_progress, **kwargs) + result = await loop.run_in_executor(JOB_EXECUTOR, call) + job["status"] = "succeeded" + job["progress"] = 100.0 + job["phase"] = "done" + job["detail"] = "Completed." + job["result"] = result + except Exception as exc: + job["status"] = "failed" + job["error"] = f"{type(exc).__name__}: {exc}" + finally: + job["finished_at"] = now_iso() + + +def _start_job(slug: str, job_type: str, **kwargs) -> str: + job_id = uuid.uuid4().hex + JOBS[job_id] = { + "id": job_id, + "slug": slug, + "type": job_type, + "status": "queued", + "phase": "queued", + "progress": 0.0, + "detail": "", + "created_at": now_iso(), + "finished_at": None, + "result": None, + "error": None, + } + asyncio.create_task(_run_job(job_id, job_type, **kwargs)) + return job_id + + +def _build_local_context(prompt: str, results: Dict[str, Any], top_k: int = 5) -> Dict[str, Any]: + sources = results.get("sources") or [] + selected = sources[: max(1, top_k)] + if not selected: + context_block = ( + "\n" + "No useful results were found in the selected local knowledge base.\n" + "" + ) + return {"context_block": context_block, "sources": []} + + blocks: List[str] = [""] + file_sources: List[str] = [] + for idx, source in enumerate(selected, start=1): + title = (source.get("title") or Path(source.get("url") or source.get("doc_id") or f"Source {idx}").name).strip() + snippet = re.sub(r"\s+", " ", (source.get("snippet") or "")).strip() + if len(snippet) > 1400: + snippet = snippet[:1400].rstrip() + "..." + raw_path = source.get("url") or source.get("doc_id") or "" + if raw_path and os.path.isabs(raw_path): + file_sources.append(_file_uri(raw_path)) + blocks.append(f"[L{idx}] {title}\n{snippet}") + blocks.append("") + blocks.append( + "Use the local knowledge base context when it is relevant. " + "If it does not answer the question, say so clearly instead of inventing details." + ) + return {"context_block": "\n".join(blocks), "sources": file_sources} + + +@router.get("/libraries") +def list_libraries(): + libraries: List[Dict[str, Any]] = [] + for path in LIB_ROOT.iterdir(): + if not path.is_dir(): + continue + meta = path / "library.json" + if not meta.exists(): + continue + try: + libraries.append(library_payload(_read_json(meta))) + except Exception: + continue + libraries.sort(key=lambda item: item.get("created_at", ""), reverse=True) + return {"libraries": libraries} + + +@router.post("/libraries") +def create_library(req: CreateLibraryRequest): + slug = slugify(req.name) + base_slug = slug + idx = 2 + while lib_dir(slug).exists(): + slug = f"{base_slug}-{idx}" + idx += 1 + data = default_library_data(req.name, slug) + stage_dir(slug) + indexes_dir(slug) + write_library(slug, data) + return library_payload(data) + + +@router.get("/libraries/{slug}") +def get_library(slug: str): + return library_payload(read_library(slug)) + + +@router.patch("/libraries/{slug}") +def rename_library(slug: str, req: RenameLibraryRequest): + data = read_library(slug) + data["name"] = req.name.strip() or data["name"] + write_library(slug, data) + return library_payload(data) + + +@router.delete("/libraries/{slug}") +def delete_library(slug: str): + path = lib_dir(slug) + if not path.exists(): + raise HTTPException(status_code=404, detail="Library not found") + shutil.rmtree(path) + return {"ok": True} + + +@router.post("/libraries/{slug}/files/register") +def register_paths(slug: str, req: RegisterPathsRequest): + data = read_library(slug) + stage = stage_dir(slug) + existing = {entry.get("sha256"): entry for entry in data.get("files", [])} + added: List[Dict[str, Any]] = [] + skipped: List[str] = [] + + for file_path in _walk_input_paths(req.paths): + sha = _sha256_file(file_path) + if sha in existing: + skipped.append(str(file_path)) + continue + stage_name = _stage_name(sha, file_path) + symlink_path = stage / stage_name + if symlink_path.exists(): + symlink_path.unlink() + symlink_path.symlink_to(file_path) + entry = { + "sha256": sha, + "path": str(file_path), + "rel": stage_name, + "name": file_path.name, + "size": file_path.stat().st_size, + "added_at": now_iso(), + } + data.setdefault("files", []).append(entry) + added.append(entry) + existing[sha] = entry + + write_library(slug, data) + return { + "added": added, + "skipped": skipped, + "library": library_payload(data), + } + + +@router.delete("/libraries/{slug}/files") +def remove_file(slug: str, req: RemoveFileRequest): + data = read_library(slug) + before = len(data.get("files", [])) + data["files"] = [entry for entry in data.get("files", []) if entry.get("rel") != req.rel] + symlink_path = stage_dir(slug) / req.rel + if symlink_path.exists(): + symlink_path.unlink() + write_library(slug, data) + if len(data["files"]) == before: + raise HTTPException(status_code=404, detail="File not found") + return {"ok": True, "library": library_payload(data)} + + +@router.post("/libraries/{slug}/jobs/build") +async def build_library(slug: str): + data = read_library(slug) + if not data.get("files"): + raise HTTPException(status_code=400, detail="Add files before building a library.") + lock = LIB_LOCKS.setdefault(slug, asyncio.Lock()) + async with lock: + if _has_active_job(slug): + raise HTTPException(status_code=409, detail="This library already has an active job.") + job_id = _start_job( + slug, + "build", + root=stage_dir(slug), + out=_collect_library_paths(slug)["corpus"], + ) + return {"job_id": job_id} + + +@router.post("/libraries/{slug}/jobs/enrich") +async def enrich_library(slug: str): + paths = _collect_library_paths(slug) + if not paths["corpus"].exists(): + raise HTTPException(status_code=400, detail="Build the corpus before enrichment.") + lock = LIB_LOCKS.setdefault(slug, asyncio.Lock()) + async with lock: + if _has_active_job(slug): + raise HTTPException(status_code=409, detail="This library already has an active job.") + job_id = _start_job( + slug, + "enrich", + inp=paths["corpus"], + out=paths["enhanced"], + shadow_out=paths["shadow"], + ) + return {"job_id": job_id} + + +@router.post("/libraries/{slug}/jobs/embed") +async def embed_library(slug: str, req: EmbedLibraryRequest): + paths = _collect_library_paths(slug) + if not paths["corpus"].exists(): + raise HTTPException(status_code=400, detail="Build the corpus before indexing.") + lock = LIB_LOCKS.setdefault(slug, asyncio.Lock()) + async with lock: + if _has_active_job(slug): + raise HTTPException(status_code=409, detail="This library already has an active job.") + job_id = _start_job( + slug, + "embed", + raw=paths["corpus"], + enhanced=paths["enhanced"] if paths["enhanced"].exists() else None, + shadow=paths["shadow"] if paths["shadow"].exists() else None, + out_dir=paths["indexes"], + embed_model=req.embed_model, + ollama=req.ollama, + target_chars=req.target_chars, + overlap_chars=req.overlap_chars, + concurrency=req.concurrency, + ) + return {"job_id": job_id} + + +@router.get("/jobs") +def list_jobs(slug: Optional[str] = None): + jobs = [_job_public(job) for job in JOBS.values() if slug is None or job["slug"] == slug] + jobs.sort(key=lambda item: item.get("created_at", ""), reverse=True) + return {"jobs": jobs} + + +@router.get("/jobs/{job_id}") +def get_job(job_id: str): + job = JOBS.get(job_id) + if not job: + raise HTTPException(status_code=404, detail="Job not found") + return _job_public(job) + + +@router.post("/libraries/{slug}/context") +def library_context(slug: str, req: LibraryContextRequest): + paths = _collect_library_paths(slug) + if not paths["shadow_index"].exists() or not paths["content_index"].exists(): + raise HTTPException(status_code=400, detail="Index the library before using it in chat.") + try: + run_query = _load_pipeline_fn("unified_rag", "run_query") + result = run_query( + shadow_index=paths["shadow_index"], + shadow_store=paths["shadow_store"], + content_index=paths["content_index"], + content_store=paths["content_store"], + query=req.prompt, + answer=False, + ollama=req.ollama, + embed_model=req.embed_model, + gen_model=req.gen_model, + no_rerank=True, + k=max(1, req.top_k), + ) + except Exception as exc: + raise HTTPException(status_code=500, detail=f"Local retrieval failed: {type(exc).__name__}: {exc}") from exc + + context = _build_local_context(req.prompt, result, top_k=req.top_k) + return { + "context_block": context["context_block"], + "sources": context["sources"], + "result": result, + } diff --git a/backend/main.py b/backend/main.py index b6d7b8a..33e6c25 100644 --- a/backend/main.py +++ b/backend/main.py @@ -8,6 +8,7 @@ import html import json from . import models, schemas from .database import Base, engine, SessionLocal, ensure_sources_column +from .local_rag import router as local_rag_router from .ollama_client import list_models as ollama_list, chat as ollama_chat, chat_stream as ollama_chat_stream from .websearch import enrich_prompt @@ -25,6 +26,7 @@ app.add_middleware( allow_methods=["*"], allow_headers=["*"], ) +app.include_router(local_rag_router) def get_db(): db = SessionLocal() @@ -331,8 +333,11 @@ async def websearch_route(req: schemas.WebSearchRequest): searx_url=req.searx_url, engines=req.engines, ) - return {"enriched_prompt": enriched, "sources": sources} + context_block = "" + if "" in enriched: + context_block = enriched[enriched.index(""):].strip() + return {"enriched_prompt": enriched, "sources": sources, "context_block": context_block} except Exception: - return {"enriched_prompt": req.prompt, "sources": []} + return {"enriched_prompt": req.prompt, "sources": [], "context_block": ""} # To run standalone: python -m uvicorn backend.main:app --host 127.0.0.1 --port 8000 diff --git a/backend/rag/__init__.py b/backend/rag/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/rag/corpus_builder.py b/backend/rag/corpus_builder.py new file mode 100644 index 0000000..c7ddcaf --- /dev/null +++ b/backend/rag/corpus_builder.py @@ -0,0 +1,1741 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +Build a JSONL corpus from a folder (recurses subdirectories). + +What it does (type-specific): + • PDF: PyMuPDF extraction (multi-column); OCR scanned PDFs via ocrmypdf. + • HTML: strip chrome; split into H1/H2 sections. + • Text: encoding-sniffed read. + • EPUB: extract spine sections (BS4) + OCR embedded images; optional EPUB→PDF fallback. + • Audio/Video: ffmpeg → mono 16k WAV → slice into N overlapping parts → multi-process Whisper (base) → merge. + • Images: detect text-like → Tesseract OCR; otherwise VLM description via Ollama (qwen2.5vl); OCR→VLM fallback if empty. + • Code: summarize with Ollama (qwen3:4b), no code copied into text (only description). + +RAG-friendly emission: + • --emit {per-file, per-page, per-section, auto} + - PDF per-page (auto, with optional per-PDF page threads) + - EPUB/HTML per-section (auto) + - everything else per-file + • A/V can emit per-slice and/or joined via --emit-av {joined, slices, both} + +LLM hygiene: + • Strips , code fences, normalizes whitespace before writing JSONL. + +Language detection: + • Uses langid or langdetect (if installed). Store `lang` per record. + +Concurrency: + • ThreadPoolExecutor for files and per-PDF page extraction (safe variant). + • Multiprocessing for Whisper slices. + • Bounded semaphore for Ollama calls. + +External tools: + • ocrmypdf, tesseract, ffmpeg, ffprobe + • (optional) Calibre `ebook-convert` or `pandoc` for EPUB→PDF fallback + • Ollama running qwen2.5vl:7b and qwen3:4b models + +Python deps (install as needed): + pymupdf beautifulsoup4 ebooklib chardet pillow numpy requests tqdm + openai-whisper + langid (or langdetect) + opencv-python-headless (optional, improves image text-detect) +""" + +from __future__ import annotations +import argparse +import concurrent.futures as cf +import json +import os +import re +import shutil +import subprocess +import sys +import tempfile +import base64 +import csv +import mimetypes +import threading +import queue +import multiprocessing as mp +import warnings +from dataclasses import dataclass, asdict +from pathlib import Path +from typing import Iterable, List, Tuple, Dict, Optional, Any, Callable +import faulthandler, signal +import multiprocessing as mp_context +import time + +os.environ.setdefault("PYTORCH_ENABLE_MPS_FALLBACK", "1") +os.environ.setdefault("OBJC_DISABLE_INITIALIZE_FORK_SAFETY", "YES") + +# ------------------------- +# Async writer (chunked + optional rotation) +# ------------------------- + +_writer_q: Optional[queue.Queue] = None +_writer_thread: Optional[threading.Thread] = None + +def start_writer(out_path: Path, rotate_mb: int, queue_max: int): + """Background writer with bounded queue and optional file rotation.""" + global _writer_q, _writer_thread + _writer_q = queue.Queue(maxsize=max(1, queue_max)) + + def _run(): + bytes_since_rotate = 0 + fh = open(out_path, "a", encoding="utf-8", buffering=1<<20) # 1 MiB buffer + try: + while True: + chunk = _writer_q.get() + if chunk is None: + break + fh.write(chunk) + bytes_since_rotate += len(chunk.encode("utf-8", "ignore")) + if rotate_mb and bytes_since_rotate >= rotate_mb * 1024 * 1024: + fh.flush() + fh.close() + fh = open(out_path, "a", encoding="utf-8", buffering=1<<20) + bytes_since_rotate = 0 + finally: + try: + fh.flush() + fh.close() + except Exception: + pass + + _writer_thread = threading.Thread(target=_run, daemon=True) + _writer_thread.start() + +def enqueue_records_chunked(records: List["Record"], chunk_size: int): + """Serialize records in small batches to keep latency/GC sane.""" + if not records: + return + step = max(1, int(chunk_size)) + for i in range(0, len(records), step): + batch = records[i:i+step] + chunk = "".join(json.dumps(asdict(r), ensure_ascii=False) + "\n" for r in batch) + _writer_q.put(chunk) + +def stop_writer(): + if _writer_q is not None: + _writer_q.put(None) + if _writer_thread is not None: + _writer_thread.join() + +# ------------------------- +# Crash diagnostics +# ------------------------- + +try: + faulthandler.enable() + for _sig in (signal.SIGSEGV, signal.SIGBUS, signal.SIGABRT): + try: + faulthandler.register(_sig, chain=True) + except Exception: + pass +except Exception: + pass + +# ------------------------- +# Subprocess isolation helper (for crashy libs) +# ------------------------- + +def _subproc_entry(conn, func, path, args): + """Run `func(path, args)` in a clean process and send back (status, payload).""" + try: + recs = func(path, args) + conn.send(("ok", recs)) + except Exception as e: + conn.send(("err", f"{type(e).__name__}: {e}")) + finally: + try: + conn.close() + except Exception: + pass + +def run_isolated(func, path, args, *, timeout=900, cancellation_event: Optional[mp_context.Event] = None): + """ + Run a CPU/IO-heavy function in a child process. + If the child segfaults, times out, or crashes, we return a synthetic error. + """ + ctx = mp_context.get_context("fork" if sys.platform == "darwin" else "spawn") + parent_conn, child_conn = ctx.Pipe(duplex=False) + p = ctx.Process(target=_subproc_entry, args=(child_conn, func, path, args), daemon=True) + p.start() + try: + child_conn.close() + status, payload = ("err", "crash") + while p.is_alive(): + if cancellation_event and cancellation_event.is_set(): + p.terminate() + p.join() + return [], "cancelled" + if parent_conn.poll(0.1): # Check for data with a small timeout + status, payload = parent_conn.recv() + break + time.sleep(0.1) # Small sleep to prevent busy-waiting + else: # Process died without sending data + if not cancellation_event or not cancellation_event.is_set(): + # Only report crash if not cancelled + status, payload = ("err", "crash") + + if status == "ok": + return payload, None + else: + return [], f"isolated-{status}: {payload}" + + except EOFError: + return [], "isolated-eof" + except Exception as e: + return [], f"isolated-exception: {e}" + finally: + try: + parent_conn.close() + except Exception: + pass + if p.is_alive(): + p.terminate() + p.join() + +try: + mp_context.set_start_method("fork") +except RuntimeError: + pass + +# ---- Required core deps +try: + import fitz # PyMuPDF +except ImportError: + print("[ERROR] PyMuPDF (fitz) is required. Install with: pip install pymupdf", file=sys.stderr) + sys.exit(1) + +try: + from bs4 import BeautifulSoup +except ImportError: + print("[ERROR] BeautifulSoup is required. Install with: pip install beautifulsoup4", file=sys.stderr) + sys.exit(1) + +# ---- Optional but recommended +try: + from ebooklib import epub +except ImportError: + epub = None + +try: + import chardet +except ImportError: + chardet = None + +try: + from PIL import Image, ImageOps, ImageChops +except ImportError: + Image = None + ImageOps = None + ImageChops = None + +try: + import numpy as np +except ImportError: + np = None + +try: + import cv2 # optional +except ImportError: + cv2 = None + +# Whisper (OpenAI) +try: + import whisper +except ImportError: + whisper = None + +# Optional: device hinting for Whisper +try: + import torch +except Exception: + torch = None + +# Optional language detection (either works) +try: + import langid +except ImportError: + langid = None +try: + from langdetect import detect as _ld_detect, DetectorFactory as _ld_factory + _ld_factory.seed = 42 +except Exception: + _ld_detect = None + +# Progress +try: + from tqdm import tqdm +except ImportError: + tqdm = None # fallback to simple prints + +warnings.filterwarnings("ignore", message="FP16 is not supported on CPU; using FP32 instead") + +# ------------------------- +# CLI args +# ------------------------- + +def parse_args(): + p = argparse.ArgumentParser(description="Build a JSONL corpus from a folder") + + # Root input (recurses) + p.add_argument("--root", help="Path to input root directory") + p.add_argument("--mirror", help="(Deprecated) Path to website mirror root (alias of --root)") + p.add_argument("--out", required=True, help="Output JSONL file path") + p.add_argument("--workers", type=int, default=os.cpu_count() or 4, help="Concurrent per-file workers") + p.add_argument("--verbose", action="store_true", help="Verbose logging") + + # Emission granularity + p.add_argument("--emit", choices=["per-file", "per-page", "per-section", "auto"], default="auto", + help="Granularity: per-file, per-page (PDF), per-section (EPUB/HTML), or auto") + p.add_argument("--emit-av", choices=["joined", "slices", "both"], default="joined", + help="For audio/video: emit one joined record, per-slice records, or both") + + # PDF/EPUB/HTML specifics + p.add_argument("--ocr-page-jobs", type=int, default=1, help="Per-PDF page concurrency for ocrmypdf --jobs") + p.add_argument("--ocr-lang", default="eng", help="Tesseract language(s), e.g. 'eng+deu'") + p.add_argument("--max-cols", type=int, default=4, help="Maximum columns to consider per PDF page") + p.add_argument("--epub-strategy", choices=["direct", "pdf-fallback", "force-pdf"], default="pdf-fallback", + help="EPUB handling: try direct, fallback to PDF; or always convert to PDF") + p.add_argument("--pdf-page-workers", type=int, default=0, + help="Threads per PDF for page extraction (0=auto: min(4, cpu)). Only used when emitting per-page/auto.") + p.add_argument("--html-section-workers", type=int, default=0, + help="Threads per HTML for per-section record building (0=auto: min(4, cpu)).") + + # Include/Exclude + p.add_argument( + "--include", + default=( + r".*\.(?:pdf|html?|txt|md|rst|epub|" + r"png|jpe?g|gif|bmp|tiff?|webp|heic|" + r"mp3|wav|m4a|flac|ogg|opus|aac|" + r"mp4|mkv|mov|webm|avi|ts|" + r"py|ipynb|js|ts|tsx|jsx|java|c|cpp|rs|go|rb|php|cs|swift|kt|m|sh|bat|ps1|sql)$" + ), + help="Regex for files to include" + ) + p.add_argument( + "--exclude", + default=r"(^|[\\/])\.|__MACOSX([\\/]|$)|\.DS_Store$|\.ocr\.txt$", + help="Regex for files/paths to exclude" + ) + + # ASR (Whisper-base, multi-process slices) + p.add_argument("--whisper-model", default="base", help="OpenAI Whisper model size (tiny, base, small, …)") + p.add_argument("--num-slices", type=int, default=8, help="Number of equal slices per media file") + p.add_argument("--overlap-sec", type=float, default=1.0, help="Overlap seconds between slices") + p.add_argument("--max-overlap-words", type=int, default=7, help="Max words to align/dedup across slice boundaries") + p.add_argument("--mp-workers", type=int, default=0, help="Multiprocessing workers (0 -> use num-slices)") + p.add_argument("--asr-task", choices=["transcribe", "translate"], default="transcribe", + help="Whisper task: transcribe (original language) or translate (to English)") + p.add_argument("--max-av-duration", type=float, default=5*3600, help="Hard cap (seconds) for audio/video") + + # NEW: device control (avoid MPS crash by default) + p.add_argument("--whisper-device", choices=["auto","cpu","cuda","mps"], default="auto", + help="Device for Whisper slices. Default 'auto' prefers CUDA, otherwise CPU (not MPS).") + + # Ollama (images, code) + p.add_argument("--ollama-host", default="http://localhost:11434", help="Ollama host URL") + p.add_argument("--vlm-model", default="qwen2.5vl:7b", help="Vision LLM model for image description") + p.add_argument("--code-llm", default="qwen3:4b", help="Code summarizer model") + p.add_argument("--llm-parallel", type=int, default=1, help="Parallel LLM calls (Ollama)") + + # Images + p.add_argument("--image-max-edge", type=int, default=1600, help="Resize longest edge before VLM to save VRAM") + + # Image OCR gate + thresholds + p.add_argument("--image-text-gate", + choices=["tesseract-conf", "vlm-gate", "always-ocr", "always-vlm"], + default="tesseract-conf", + help="How to decide OCR vs VLM for images.") + p.add_argument("--ocr-psms", default="6,11", + help="Comma-separated PSMs to probe for OCR gating (e.g. '6,11').") + p.add_argument("--ocr-min-conf", type=int, default=55, + help="Minimum median word confidence to accept OCR.") + p.add_argument("--ocr-min-words", type=int, default=10, + help="Minimum word count to accept OCR.") + p.add_argument("--ocr-min-alnum", type=float, default=0.55, + help="Minimum alnum ratio over non-space printable chars to accept OCR.") + + # Code + p.add_argument("--code-max-bytes", type=int, default=200_000, help="Read at most N bytes from code files") + + # Language hints/detection + p.add_argument("--lang-hint", default=None, help="Optional language hint for OCR") + p.add_argument("--lang-detect", action="store_true", default=True, help="Detect language of each record") + p.add_argument("--no-lang-detect", dest="lang_detect", action="store_false") + + # Writer tuning + p.add_argument("--writer-queue", type=int, default=64, help="Max queued chunks to the writer thread") + p.add_argument("--writer-chunk", type=int, default=256, help="Records per JSONL chunk enqueued to writer") + p.add_argument("--writer-rotate-mb", type=int, default=0, help="Rotate (close/reopen) writer every N MB; 0=off") + + # External tools + p.add_argument("--ffmpeg", default=shutil.which("ffmpeg") or "/usr/bin/ffmpeg", help="Path to ffmpeg") + p.add_argument("--ffprobe", default=shutil.which("ffprobe") or "/usr/bin/ffprobe", help="Path to ffprobe") + p.add_argument("--tesseract", default=shutil.which("tesseract") or "/usr/bin/tesseract", help="Path to tesseract") + p.add_argument("--ebook-convert", dest="ebook_convert", default=shutil.which("ebook-convert"), help="Path to Calibre's ebook-convert (optional)") + p.add_argument("--pandoc", default=shutil.which("pandoc"), help="Path to pandoc (optional)") + + return p.parse_args() + +# ------------------------- +# Utilities +# ------------------------- + +def log(msg: str, *, verbose: bool = True): + if verbose: + print(msg, flush=True) + +def ensure_parent(path: Path): + path.parent.mkdir(parents=True, exist_ok=True) + +def detect_encoding(b: bytes) -> str: + if chardet is None: + return "utf-8" + guess = chardet.detect(b) or {} + enc = guess.get("encoding") or "utf-8" + return enc + +def read_text_file(path: Path) -> str: + data = path.read_bytes() + enc = detect_encoding(data) + try: + return data.decode(enc, errors="replace") + except Exception: + return data.decode("utf-8", errors="replace") + +def run_cmd(cmd: List[str], *, cwd: Optional[Path] = None, env: Optional[Dict[str, str]] = None) -> subprocess.CompletedProcess: + return subprocess.run(cmd, cwd=str(cwd) if cwd else None, env=env, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True) + +def ffprobe_json(ffprobe_bin: str, media_path: Path) -> Optional[Dict]: + cmd = [ffprobe_bin, "-v", "error", "-print_format", "json", "-show_format", "-show_streams", str(media_path)] + res = run_cmd(cmd) + if res.returncode != 0: + return None + try: + return json.loads(res.stdout) + except Exception: + return None + +def extract_audio_wav(ffmpeg_bin: str, input_path: Path, out_wav: Path, *, samplerate=16000) -> bool: + cmd = [ffmpeg_bin, "-y", "-i", str(input_path), "-ac", "1", "-ar", str(samplerate), "-f", "wav", str(out_wav)] + res = run_cmd(cmd) + return res.returncode == 0 + +def try_mutool_clean(in_pdf: Path) -> Optional[Path]: + if not shutil.which("mutool"): return None + tmp = Path(tempfile.mkstemp(suffix=".clean.pdf")[1]) + res = run_cmd(["mutool", "clean", "-gg", str(in_pdf), str(tmp)]) + return tmp if res.returncode == 0 and tmp.exists() else None + +def pdftotext_fallback(in_pdf: Path) -> str: + if not shutil.which("pdftotext"): return "" + tmp = Path(tempfile.mkstemp(suffix=".txt")[1]) + try: + run_cmd(["pdftotext", "-layout", "-enc", "UTF-8", str(in_pdf), str(tmp)]) + return tmp.read_text("utf-8", errors="ignore") + finally: + try: tmp.unlink() + except Exception: pass + +# ---- Ollama HTTP helpers +def ollama_generate(host: str, model: str, prompt: str, images_b64: Optional[List[str]] = None, options: Optional[Dict]=None, stream: bool=False) -> str: + try: + import requests + except ImportError as e: + raise RuntimeError("The 'requests' package is required for Ollama calls. Install with: pip install requests") from e + payload = {"model": model, "prompt": prompt, "stream": stream} + if images_b64: + payload["images"] = images_b64 + if options: + payload["options"] = options + resp = requests.post(f"{host.rstrip('/')}/api/generate", json=payload, timeout=600) + resp.raise_for_status() + data = resp.json() + return data.get("response", "") + +def encode_image_b64(path: Path, max_edge: int = 1600) -> str: + if Image is None: + return base64.b64encode(path.read_bytes()).decode("ascii") + try: + img = Image.open(path).convert("RGB") + except Exception: + return base64.b64encode(path.read_bytes()).decode("ascii") + w, h = img.size + scale = max(w, h) + if scale > max_edge: + ratio = max_edge / float(scale) + img = img.resize((int(w*ratio), int(h*ratio))) + buf = tempfile.NamedTemporaryFile(suffix=".jpg", delete=False) + try: + img.save(buf.name, format="JPEG", quality=90) + b = Path(buf.name).read_bytes() + return base64.b64encode(b).decode("ascii") + finally: + try: + os.unlink(buf.name) + except Exception: + pass + +# ---- LLM hygiene / language detection +def sanitize_llm_text(s: str) -> str: + s = re.sub(r".*?", "", s, flags=re.S|re.I) + s = re.sub(r"^\s*```(?:\w+)?\s*|\s*```\s*$", "", s, flags=re.M) + s = re.sub(r"[ \t]+", " ", s) + s = re.sub(r"\n{3,}", "\n\n", s) + return s.strip() + +def detect_language(text: str) -> Optional[str]: + text = (text or "").strip() + if not text: + return None + n = len(text) + if n > 3000: + head = text[:1000]; mid = text[n//2:n//2+1000]; tail = text[-1000:] + sample = head + "\n" + mid + "\n" + tail + else: + sample = text + try: + if langid is not None: + lang, _ = langid.classify(sample) + return lang + if _ld_detect is not None: + return _ld_detect(sample) + except Exception: + pass + return None + +# ------------------------- +# Image text-likeness detection (optional) +# ------------------------- + +def image_is_textlike(path: Path) -> bool: + try: + if cv2 is not None and np is not None: + data = np.fromfile(str(path), dtype=np.uint8) + img = cv2.imdecode(data, cv2.IMREAD_GRAYSCALE) + if img is None: + return False + h, w = img.shape[:2] + scale = max(h, w) + if scale > 1800: + r = 1800.0 / scale + img = cv2.resize(img, (int(w*r), int(h*r)), interpolation=cv2.INTER_AREA) + thr = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, + cv2.THRESH_BINARY, 35, 11) + contours, _ = cv2.findContours(thr, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE) + if not contours: + return False + areas = [cv2.contourArea(c) for c in contours] + small = [a for a in areas if 10 < a < 5000] + density = len(small) / (img.shape[0]*img.shape[1] / 1e5) + return density > 8 + else: + if Image is None or np is None: + return False + img = Image.open(path).convert("L") + w, h = img.size + if max(w, h) > 1800: + r = 1800.0 / max(w, h) + img = img.resize((int(w*r), int(h*r))) + arr = np.array(img, dtype=np.float32) + dx = np.abs(np.diff(arr, axis=1)) + dy = np.abs(np.diff(arr, axis=0)) + edge_ratio = (np.pad((dx[:, :-1]**2 + dy[:-1, :]**2)**0.5, ((0,1),(0,1))) > 25).mean() + thresh = (arr > 200).mean() + (arr < 55).mean() + return (edge_ratio > 0.15) and (thresh > 0.25) + except Exception: + return False + +# ------------------------- +# PDF helpers +# ------------------------- + +def is_probably_scanned(pdf_path: Path, sample_pages: int = 3) -> bool: + try: + with fitz.open(pdf_path) as doc: + n = min(len(doc), max(1, sample_pages)) + text_len = 0 + for i in range(n): + page = doc.load_page(i) + txt = page.get_text("text") + text_len += len(txt.strip()) + return text_len < 50 * n + except Exception: + return True + +def ocrmypdf_searchable(in_pdf: Path, out_pdf: Path, lang: str, page_jobs: int, verbose: bool) -> Tuple[bool, str]: + base_cmd = [ + "ocrmypdf", + "--skip-text", + "--optimize", "0", + "--rotate-pages", + "--deskew", + "--jobs", str(max(1, page_jobs)), + "--tesseract-timeout", "120", + "--output-type", "pdf", + "--language", lang, + ] + base_cmd.append("--verbose" if verbose else "-q") + cmd = base_cmd + [str(in_pdf), str(out_pdf)] + res = run_cmd(cmd) + out = res.stdout or "" + if "NotImplementedError: --remove-background" in out or "--remove-background is temporarily not implemented" in out: + log(f"[INFO] {in_pdf.name}: retrying without --remove-background", verbose=verbose) + res = run_cmd(cmd) + out = res.stdout or "" + ok = res.returncode == 0 + if not ok and "NotImplementedError" in out: + log(f"[INFO] {in_pdf.name}: quality retry (psm=3, cleanup=on)", verbose=verbose) + cmd_retry = base_cmd + ["--tesseract-pagesegmode", "3", "--clean-final"] + [str(in_pdf), str(out_pdf)] + res = run_cmd(cmd_retry) + out = res.stdout or "" + ok = res.returncode == 0 + return ok, out + +def segment_columns(blocks: List[Tuple], max_cols: int) -> List[List[Tuple]]: + if not blocks: + return [] + tblocks = [b for b in blocks if isinstance(b[4], str) and b[4].strip()] + if not tblocks: + return [] + xs = [] + for b in tblocks: + x0, y0, x1, y1, txt, *_ = b + xs.append(((x0 + x1) / 2.0, b)) + xs.sort(key=lambda t: t[0]) + centers = [v for v,_ in xs] + gaps = [] + for i in range(1, len(centers)): + gaps.append((centers[i] - centers[i-1], i)) + gaps.sort(reverse=True, key=lambda t: t[0]) + splits = sorted(idx for _, idx in gaps[:max(0, max_cols-1)]) + columns: List[List[Tuple]] = [] + last = 0 + for s in splits: + col = [b for _, b in xs[last:s]] + if col: + columns.append(col) + last = s + col = [b for _, b in xs[last:]] + if col: + columns.append(col) + if len(columns) <= 1: + columns = [[b for _, b in xs]] + for col in columns: + col.sort(key=lambda b: (b[1], b[0])) + return columns + +def extract_pdf_text(pdf_path: Path, max_cols: int, verbose: bool) -> str: + texts: List[str] = [] + with fitz.open(pdf_path) as doc: + for pno in range(len(doc)): + page = doc.load_page(pno) + blocks = page.get_text("blocks") + if not blocks: + continue + blocks = [b for b in blocks if isinstance(b[4], str) and b[4].strip()] + if not blocks: + continue + cols = segment_columns(blocks, max_cols=max_cols) + page_lines: List[str] = [] + for col in cols: + for x0,y0,x1,y1,txt,*_ in col: + t = re.sub(r"\s+", " ", txt.strip()) + if t: + page_lines.append(t) + if page_lines: + texts.append("\n".join(page_lines)) + return "\n\n".join(texts).strip() + +# ------------------------- +# HTML helpers +# ------------------------- + +def split_html_sections(html_text: str) -> List[Dict[str, Any]]: + soup = BeautifulSoup(html_text, "html.parser") + for tag in soup(["script", "style", "noscript", "nav", "header", "footer"]): + tag.decompose() + + sections: List[Dict[str, Any]] = [] + current = {"title": None, "parts": []} + + def flush(): + if current["parts"] or current["title"]: + txt = "\n".join(current["parts"]).strip() + sections.append({"title": current["title"] or None, "text": txt}) + current["title"], current["parts"] = None, [] + + for el in soup.find_all(["h1","h2","h3","h4","h5","h6","p","li","blockquote","pre","code"]): + if el.name in {"h1","h2"}: + flush() + t = el.get_text(separator=" ", strip=True) + current["title"] = t or None + else: + t = el.get_text(separator=" ", strip=True) + if t: + current["parts"].append(t) + flush() + return sections + +# ------------------------- +# Records +# ------------------------- + +@dataclass +class Record: + id: str + parent_id: Optional[str] + source_path: str + url: Optional[str] + mime: str + record_type: str # "file" | "page" | "section" | "av" | "image" | "code-summary" | "html-section" + title: Optional[str] + text: str + span: Optional[Dict[str, Any]] = None + lang: Optional[str] = None + meta: Optional[Dict[str, Any]] = None + +# ------------------------- +# Processors +# ------------------------- + +def _extract_single_pdf_page(pdf_path: Path, pno: int, max_cols: int) -> Tuple[int, str, str]: + """Open the PDF in THIS thread, extract one page. Returns (page_index, title_guess, text).""" + title = None + text = "" + try: + with fitz.open(pdf_path) as doc: + if pno < 0 or pno >= len(doc): + return (pno, "", "") + page = doc.load_page(pno) + blocks = page.get_text("blocks") or [] + blocks = [b for b in blocks if isinstance(b[4], str) and b[4].strip()] + if not blocks: + return (pno, "", "") + cols = segment_columns(blocks, max_cols=max_cols) + lines: List[str] = [] + for col in cols: + for x0, y0, x1, y1, txt, *_ in col: + t = re.sub(r"\s+", " ", txt.strip()) + if t: + lines.append(t) + text = "\n".join(lines).strip() + for line in text.splitlines(): + if line.strip(): + title = line.strip() + break + return (pno, title or "", text) + except Exception: + return (pno, "", "") + +def process_pdf(path: Path, args) -> List[Record]: + """ + PDF: if emit=per-page/auto → one record per page (with optional page threads); + else single record. + Also uses ocrmypdf --jobs for scanned PDFs (already parallel). + """ + verbose = args.verbose + tmpdir_obj = tempfile.TemporaryDirectory() + tmpdir = Path(tmpdir_obj.name) + records: List[Record] = [] + try: + src = path + work_pdf = src + # (1) Make searchable if scanned + if is_probably_scanned(src): + out_pdf = tmpdir / f"{src.stem}.ocr.pdf" + ok, _ocr_log = ocrmypdf_searchable(src, out_pdf, args.lang_hint or args.ocr_lang, args.ocr_page_jobs, verbose) + if ok: + work_pdf = out_pdf + + per_page = (args.emit in ("per-page", "auto")) + if per_page: + # Determine page worker count + page_workers = args.pdf_page_workers or min(4, (os.cpu_count() or 4)) + try: + # First open once to count pages + with fitz.open(work_pdf) as d: + n_pages = len(d) + if page_workers > 1 and n_pages > 1: + # Threaded per-page extraction (safe: each worker opens the doc) + results: List[Tuple[int, str, str]] = [] + with cf.ThreadPoolExecutor(max_workers=max(1, page_workers)) as ex: + futs = {ex.submit(_extract_single_pdf_page, work_pdf, pno, args.max_cols): pno for pno in range(n_pages)} + for fut in cf.as_completed(futs): + results.append(fut.result()) + results.sort(key=lambda t: t[0]) + else: + # Single-threaded per-page + results = [] + with fitz.open(work_pdf) as d: + for pno in range(len(d)): + page = d.load_page(pno) + blocks = page.get_text("blocks") or [] + blocks = [b for b in blocks if isinstance(b[4], str) and b[4].strip()] + if not blocks: + text = "" + else: + cols = segment_columns(blocks, max_cols=args.max_cols) + lines = [] + for col in cols: + for x0,y0,x1,y1,txt,*_ in col: + t = re.sub(r"\s+", " ", txt.strip()) + if t: lines.append(t) + text = "\n".join(lines).strip() + title = None + for line in text.splitlines(): + if line.strip(): + title = line.strip(); break + results.append((pno, title or "", text)) + for (pno, title, text) in results: + lang = detect_language(text) if args.lang_detect else None + records.append(Record( + id=f"{path.as_posix()}#page={pno+1}", + parent_id=str(path.as_posix()), + source_path=str(path.resolve()), + url=None, + mime="application/pdf", + record_type="page", + title=title or f"{path.stem} — p.{pno+1}", + text=text, + span={"page_start": pno+1, "page_end": pno+1}, + lang=lang, + meta=None + )) + return records + except Exception: + pass # fallthrough to file-level + + # (2) File-level extraction + text = extract_pdf_text(work_pdf, max_cols=args.max_cols, verbose=verbose) + title = None + for line in text.splitlines(): + if line.strip(): + title = line.strip() + break + lang = detect_language(text) if args.lang_detect else None + records.append(Record( + id=str(path.as_posix()), + parent_id=None, + source_path=str(path.resolve()), + url=None, + mime="application/pdf", + record_type="file", + title=title, + text=text, + span=None, + lang=lang, + meta=None + )) + return records + finally: + tmpdir_obj.cleanup() + +def process_html(path: Path, args) -> List[Record]: + html = path.read_text(encoding="utf-8", errors="ignore") + per_section = (args.emit in ("per-section", "auto")) + if per_section: + secs = split_html_sections(html) + secs = [s for s in secs if (s.get("text") or "").strip()] + if secs: + sec_workers = args.html_section_workers or min(4, (os.cpu_count() or 4)) + + def _build(idx: int, s: Dict[str, Any]) -> Record: + text = s["text"] + title = s["title"] or f"{path.stem} — section {idx+1}" + lang = detect_language(text) if args.lang_detect else None + return Record( + id=f"{path.as_posix()}#section={idx+1}", + parent_id=str(path.as_posix()), + source_path=str(path.resolve()), + url=None, + mime="text/html", + record_type="html-section", + title=title, + text=text, + span={"section_idx": idx+1, "section_title": s["title"]}, + lang=lang, + meta=None + ) + + records: List[Tuple[int, Record]] = [] + with cf.ThreadPoolExecutor(max_workers=max(1, sec_workers)) as ex: + futs = {ex.submit(_build, i, s): i for i, s in enumerate(secs)} + for fut in cf.as_completed(futs): + i = futs[fut] + records.append((i, fut.result())) + records.sort(key=lambda t: t[0]) + return [r for _, r in records] + + # file-level fallback + soup = BeautifulSoup(html, "html.parser") + for tag in soup(["script", "style", "noscript", "nav", "header", "footer"]): + tag.decompose() + texts: List[str] = [] + for el in soup.find_all(["h1","h2","h3","h4","h5","h6","p","li","blockquote","pre","code"]): + t = el.get_text(separator=" ", strip=True) + if t: + texts.append(t) + text = "\n".join(texts).strip() + title = None + h1 = soup.find("h1") + if h1: + title = h1.get_text(strip=True) + if not title: + for line in text.splitlines(): + if line.strip(): + title = line.strip() + break + lang = detect_language(text) if args.lang_detect else None + return [Record( + id=str(path.as_posix()), + parent_id=None, + source_path=str(path.resolve()), + url=None, + mime="text/html", + record_type="file", + title=title or path.stem, + text=text, + span=None, + lang=lang, + meta=None + )] + +def preprocess_image_for_ocr(img_path: Path, upsample_min_edge: int = 900) -> Path: + if Image is None: + return img_path + img = Image.open(img_path).convert("RGB") + w, h = img.size + if ImageChops is not None: + corners = [(0,0), (w-1,0), (0,h-1), (w-1,h-1)] + bboxes = [] + for cx, cy in corners: + try: + bg = Image.new(img.mode, img.size, img.getpixel((cx, cy))) + diff = ImageChops.difference(img, bg) + bbox = diff.getbbox() + if bbox: bboxes.append(bbox) + except Exception: + pass + if bboxes: + left = max(b[0] for b in bboxes) + top = max(b[1] for b in bboxes) + right = min(b[2] for b in bboxes) + bottom= min(b[3] for b in bboxes) + if 0 <= left < right <= w and 0 <= top < bottom <= h: + if (right-left) >= 0.7*w and (bottom-top) >= 0.7*h: + img = img.crop((left, top, right, bottom)) + img = ImageOps.grayscale(img) + try: + img = ImageOps.autocontrast(img, cutoff=1) + except Exception: + pass + W, H = img.size + if max(W, H) < upsample_min_edge: + scale = float(upsample_min_edge) / float(max(W, H)) + img = img.resize((int(W*scale), int(H*scale)), Image.LANCZOS) + tmp = Path(tempfile.mkstemp(suffix=".png")[1]) + img.save(tmp) + return Path(tmp) + +def tesseract_ocr_image(tesseract_bin: str, img_path: Path, lang: str, psm: Optional[int] = None) -> str: + pre = preprocess_image_for_ocr(img_path) + try: + cmd = [tesseract_bin, str(pre), "stdout", "-l", lang] + if psm is not None: + cmd += ["--psm", str(psm)] + res = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL, text=True) + if res.returncode != 0: + return "" + return res.stdout.strip() + finally: + if pre != img_path: + try: pre.unlink() + except Exception: pass + +def _alnum_ratio(s: str) -> float: + chars = [c for c in s if c.isprintable() and not c.isspace()] + if not chars: + return 0.0 + alnum = sum(1 for c in chars if c.isalnum()) + return float(alnum) / float(len(chars)) + +def _looks_like_garbage(text: str, *, require_lang: bool, args) -> bool: + t = (text or "").strip() + if len(t) < 20: + return True + toks = re.findall(r"\w+|\S", t) + avg_tok = sum(len(x) for x in toks) / max(1, len(toks)) + uniq_ratio = len(set(t)) / max(1, len(t)) + if uniq_ratio > 0.6 and avg_tok < 2.2: + return True + if re.search(r"[|—\-]{5,}", t): + return True + if require_lang and args.lang_detect and (detect_language(t) is None): + return True + return False + +def _tesseract_probe_tsv(tesseract_bin: str, img_path: Path, lang: str, psm: Optional[int] = None) -> Dict[str, Any]: + pre = preprocess_image_for_ocr(img_path) + tmpdir = Path(tempfile.mkdtemp(prefix="tsv_")) + try: + base = tmpdir / "probe" + cmd = [tesseract_bin, str(pre), str(base), "-l", lang] + if psm is not None: + cmd += ["--psm", str(psm)] + cmd += ["tsv"] + res = subprocess.run(cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) + if res.returncode != 0: + return {"psm": psm, "words": 0, "conf_median": 0.0, "conf_mean": 0.0, "text": "", "alnum_ratio": 0.0} + tsv_path = base.with_suffix(".tsv") + if not tsv_path.exists(): + return {"psm": psm, "words": 0, "conf_median": 0.0, "conf_mean": 0.0, "text": "", "alnum_ratio": 0.0} + words, confs, tokens = 0, [], [] + with open(tsv_path, "r", encoding="utf-8", errors="ignore") as fh: + reader = csv.DictReader(fh, delimiter="\t") + for row in reader: + txt = (row.get("text") or "").strip() + try: + conf = float(row.get("conf") or -1) + except Exception: + conf = -1.0 + if txt and conf >= 0: + words += 1 + confs.append(conf) + tokens.append(txt) + text = " ".join(tokens).strip() + conf_median = float(np.median(confs)) if confs else 0.0 + conf_mean = float(np.mean(confs)) if confs else 0.0 + return { + "psm": psm, + "words": words, + "conf_median": conf_median, + "conf_mean": conf_mean, + "text": text, + "alnum_ratio": _alnum_ratio(text), + } + finally: + try: + if pre != img_path: + pre.unlink() + except Exception: + pass + try: + shutil.rmtree(tmpdir) + except Exception: + pass + +def process_image(path: Path, args) -> List[Record]: + def vlm_describe() -> Tuple[str, str, Dict[str, Any]]: + img_b64 = encode_image_b64(path, args.image_max_edge) + prompt = ( + "Decide first if the image is primarily TEXT or not.\n" + "- If TEXT: output exactly:\n" + "TYPE: TEXT\nCONTENT:\n\n" + "- If not: output exactly:\n" + "TYPE: DESCRIPTION\nCONTENT:\n\n" + "Do not add extra headers, markdown, or commentary." + ) + if LLM_SEM is not None: + with LLM_SEM: + resp = ollama_generate(args.ollama_host, args.vlm_model, prompt, images_b64=[img_b64], options={"temperature": 0.2}) + else: + resp = ollama_generate(args.ollama_host, args.vlm_model, prompt, images_b64=[img_b64], options={"temperature": 0.2}) + resp = sanitize_llm_text(resp) + kind = "DESCRIPTION" + content = resp.strip() + m = re.search(r"TYPE:\s*(TEXT|DESCRIPTION)", resp, re.I) + if m: + kind = m.group(1).upper() + m2 = re.search(r"CONTENT:\s*(.*)", resp, re.S) + if m2: + content = m2.group(1).strip() + meta = {"vlm_kind": kind} + return sanitize_llm_text(content), f"vlm:{kind}", meta + + if args.image_text_gate == "always-vlm": + text, mode, meta_extra = vlm_describe() + else: + if args.image_text_gate == "always-ocr": + psms = [int(x) for x in str(args.ocr_psms).split(",") if str(x).strip().isdigit()] + best_txt, best_psm = "", None + for psm in psms or [6]: + txt = tesseract_ocr_image(args.tesseract, path, args.lang_hint or args.ocr_lang, psm=psm).strip() + if len(txt) > len(best_txt): + best_txt, best_psm = txt, psm + text = sanitize_llm_text(best_txt) + if _looks_like_garbage(text, require_lang=True, args=args): + vlm_text, vlm_mode, meta_extra = vlm_describe() + text, mode = vlm_text, vlm_mode + meta_extra = {"fallback": "vlm_garbage_filter"} + else: + mode, meta_extra = "tesseract", {"ocr_psm": best_psm} + elif args.image_text_gate in ("tesseract-conf", "vlm-gate"): + gate_decision = None + gate_meta: Dict[str, Any] = {} + if args.image_text_gate == "vlm-gate": + img_b64 = encode_image_b64(path, args.image_max_edge) + gate_prompt = ( + "Is this image primarily text (documents, slides, screenshots) or not?\n" + "Answer with EXACTLY one word: TEXT or DESCRIPTION." + ) + if LLM_SEM is not None: + with LLM_SEM: + g = ollama_generate(args.ollama_host, args.vlm_model, gate_prompt, images_b64=[img_b64], options={"temperature": 0.0}) + else: + g = ollama_generate(args.ollama_host, args.vlm_model, gate_prompt, images_b64=[img_b64], options={"temperature": 0.0}) + g = sanitize_llm_text(g).split()[0].upper() if g.strip() else "DESCRIPTION" + if g not in {"TEXT", "DESCRIPTION"}: + g = "DESCRIPTION" + gate_decision = g + gate_meta["vlm_gate"] = g + + if gate_decision == "DESCRIPTION": + text, mode, meta_extra = vlm_describe() + meta_extra.update({"image_gate": "vlm-gate"}) + else: + psms = [int(x) for x in str(args.ocr_psms).split(",") if str(x).strip().isdigit()] or [6, 11] + probes = [_tesseract_probe_tsv(args.tesseract, path, args.lang_hint or args.ocr_lang, psm=psm) for psm in psms] + best = max(probes, key=lambda d: (d.get("conf_median", 0.0), d.get("words", 0))) + accept = ( + best.get("conf_median", 0.0) >= float(args.ocr_min_conf) and + best.get("words", 0) >= int(args.ocr_min_words) and + best.get("alnum_ratio", 0.0) >= float(args.ocr_min_alnum) + ) + if accept: + best_psm = best.get("psm") or 6 + text = tesseract_ocr_image(args.tesseract, path, args.lang_hint or args.ocr_lang, psm=best_psm).strip() + text = sanitize_llm_text(text) + if _looks_like_garbage(text, require_lang=True, args=args): + vlm_text, vlm_mode, meta_extra = vlm_describe() + text, mode = vlm_text, vlm_mode + meta_extra = {"fallback": "vlm_garbage_filter", "image_gate": "tesseract-conf"} + meta_extra.update(gate_meta) + else: + mode, meta_extra = "tesseract", {"image_gate": "tesseract-conf", "ocr_psm": best_psm} + meta_extra.update({ + "ocr_words": best.get("words", 0), + "ocr_conf_median": round(best.get("conf_median", 0.0), 2), + "ocr_conf_mean": round(best.get("conf_mean", 0.0), 2), + "alnum_ratio": round(best.get("alnum_ratio", 0.0), 3), + }) + meta_extra.update(gate_meta) + else: + vlm_text, vlm_mode, meta_extra = vlm_describe() + text, mode = vlm_text, vlm_mode + meta_extra.update({ + "image_gate": "tesseract-conf", + "fallback": "vlm_conf_too_low", + "ocr_words": best.get("words", 0), + "ocr_conf_median": round(best.get("conf_median", 0.0), 2), + "ocr_conf_mean": round(best.get("conf_mean", 0.0), 2), + "alnum_ratio": round(best.get("alnum_ratio", 0.0), 3), + }) + else: + text, mode, meta_extra = vlm_describe() + + text = sanitize_llm_text(text) + mime = mimetypes.guess_type(str(path))[0] or "image/*" + title = (text.splitlines()[0].strip() if text else path.stem)[:200] + lang = detect_language(text) if args.lang_detect else None + + meta = {"image_mode": mode} + if "meta_extra" in locals() and isinstance(meta_extra, dict): + meta.update(meta_extra) + + return [Record( + id=f"{path.as_posix()}", + parent_id=None, + source_path=str(path.resolve()), + url=None, + mime=mime, + record_type="image", + title=title or path.stem, + text=text, + span=None, + lang=lang, + meta=meta + )] + +def extract_epub_sections(path: Path, args) -> List[Dict[str, Any]]: + sections: List[Dict[str, Any]] = [] + if epub is None: + return sections + book = epub.read_epub(str(path)) + tmpdir = Path(tempfile.mkdtemp(prefix="epub_")) + try: + order = [] + for itemref in book.spine or []: + idref = itemref[0] if isinstance(itemref, (list, tuple)) else itemref + it = book.get_item_with_id(idref) + if it: order.append(it) + if not order: + order = [it for it in book.get_items() if it.get_type() == 9] + for idx, it in enumerate(order): + html = it.get_content().decode("utf-8", errors="ignore") + soup = BeautifulSoup(html, "html.parser") + for tag in soup(["script", "style", "noscript", "nav", "header", "footer"]): + tag.decompose() + texts: List[str] = [] + for el in soup.find_all(["h1","h2","h3","h4","h5","h6","p","li","blockquote","pre","code"]): + t = el.get_text(separator=" ", strip=True) + if t: + texts.append(t) + title = None + for el in soup.find_all(["h1","h2"]): + t = el.get_text(separator=" ", strip=True) + if t: + title = t + break + if not title: + title = it.get_id() or f"Section {idx+1}" + sections.append({"idx": idx, "title": title, "text": "\n".join(texts).strip(), "images": []}) + images = [] + for item in book.get_items(): + if item.get_type() == 3: + fp = tmpdir / f"{item.get_id()}" + with open(fp, "wb") as fh: + fh.write(item.get_content()) + images.append(fp) + if sections and images: + sections[0]["images"] = images + return sections + except Exception: + return sections + finally: + pass + +def process_epub(path: Path, args) -> List[Record]: + per_section = (args.emit in ("per-section", "auto")) + if per_section: + secs = extract_epub_sections(path, args) + records: List[Record] = [] + if not secs: + per_section = False + else: + for sec in secs: + texts = sec["text"] + img_texts: List[str] = [] + for img in sec.get("images") or []: + ocr_txt = tesseract_ocr_image(args.tesseract, img, args.lang_hint or args.ocr_lang) + if ocr_txt: + img_texts.append(ocr_txt) + final_text = (texts + ("\n\n" + "\n\n".join(img_texts) if img_texts else "")).strip() + rid = f"{path.as_posix()}#section={sec['idx']+1}" + lang = detect_language(final_text) if args.lang_detect else None + records.append(Record( + id=rid, + parent_id=str(path.as_posix()), + source_path=str(path.resolve()), + url=None, + mime="application/epub+zip", + record_type="section", + title=sec["title"] or f"{path.stem} — section {sec['idx']+1}", + text=final_text, + span={"section_idx": sec['idx']+1, "section_title": sec["title"]}, + lang=lang, + meta={"epub_strategy": "direct"} + )) + if records: + return records + + texts = "" + img_texts: List[str] = [] + tmp_pdf = None + if args.epub_strategy in ("direct", "pdf-fallback"): + secs = extract_epub_sections(path, args) + texts = "\n\n".join([s["text"] for s in secs]) if secs else "" + for s in secs: + for img in s.get("images") or []: + ocr_txt = tesseract_ocr_image(args.tesseract, img, args.lang_hint or args.ocr_lang) + if ocr_txt: + img_texts.append(ocr_txt) + combined = (texts + ("\n\n" + "\n\n".join(img_texts) if img_texts else "")).strip() + if len(combined) < 500 and args.epub_strategy == "pdf-fallback": + tmp_pdf = path.with_suffix(".epub.tmp.pdf") + else: + tmp_pdf = path.with_suffix(".epub.tmp.pdf") + + if tmp_pdf: + converted = False + if args.ebook_convert: + res = run_cmd([args.ebook_convert, str(path), str(tmp_pdf)]) + converted = (res.returncode == 0 and tmp_pdf.exists()) + elif args.pandoc: + res = run_cmd([args.pandoc, str(path), "-o", str(tmp_pdf)]) + converted = (res.returncode == 0 and tmp_pdf.exists()) + if converted: + try: + recs = process_pdf(tmp_pdf, args) + try: tmp_pdf.unlink(missing_ok=True) + except Exception: pass + return recs + except Exception: + try: tmp_pdf.unlink(missing_ok=True) + except Exception: pass + + final_text = (texts + ("\n\n" + "\n\n".join(img_texts) if img_texts else "")).strip() + title = None + for line in final_text.splitlines(): + if line.strip(): + title = line.strip() + break + lang = detect_language(final_text) if args.lang_detect else None + return [Record( + id=str(path.as_posix()), + parent_id=None, + source_path=str(path.resolve()), + url=None, + mime="application/epub+zip", + record_type="file", + title=title or path.stem, + text=final_text, + span=None, + lang=lang, + meta={"epub_strategy": args.epub_strategy} + )] + +def process_text(path: Path, args) -> List[Record]: + txt = read_text_file(path) + title = None + for line in txt.splitlines(): + if line.strip(): + title = line.strip() + break + mime = mimetypes.guess_type(str(path))[0] or "text/plain" + lang = detect_language(txt) if args.lang_detect else None + return [Record( + id=str(path.as_posix()), + parent_id=None, + source_path=str(path.resolve()), + url=None, + mime=mime, + record_type="file", + title=title or path.stem, + text=txt, + span=None, + lang=lang, + meta=None + )] + +# Global semaphore for LLM calls (set in main) +LLM_SEM: Optional[threading.BoundedSemaphore] = None + +CODE_SUFFIX_LANG = { + ".py":"Python",".ipynb":"Jupyter",".js":"JavaScript",".ts":"TypeScript",".tsx":"TSX",".jsx":"JSX", + ".java":"Java",".c":"C",".cpp":"C++",".cc":"C++",".h":"C/C++ header",".hpp":"C++ header", + ".rs":"Rust",".go":"Go",".rb":"Ruby",".php":"PHP",".cs":"C#",".swift":"Swift",".kt":"Kotlin",".m":"Objective-C", + ".sh":"Shell",".bat":"Batch",".ps1":"PowerShell",".sql":"SQL" +} + +def process_code_llm(path: Path, args) -> List[Record]: + maxb = max(1, args.code_max_bytes) + b = path.read_bytes() + trunc = False + if len(b) > maxb: + b = b[:maxb]; trunc = True + try: + content = b.decode("utf-8") + except Exception: + content = b.decode("latin-1", errors="replace") + suffix = path.suffix.lower() + lang_hint = CODE_SUFFIX_LANG.get(suffix, "Code") + prompt = ( + f"File: {path.name} (language: {lang_hint})\n" + "Task: Explain what this file does in 5–10 tight bullet points.\n" + "Include: purpose, key functions/classes, inputs/outputs, side effects (I/O, network, env), external deps.\n" + "Avoid: stylistic critique and rewrites. Be precise.\n\n" + "Code:\n" + content + ("\n\n[TRUNCATED]" if trunc else "") + ) + if LLM_SEM is not None: + with LLM_SEM: + resp = ollama_generate(args.ollama_host, args.code_llm, prompt, options={"temperature": 0.2}) + else: + resp = ollama_generate(args.ollama_host, args.code_llm, prompt, options={"temperature": 0.2}) + text = sanitize_llm_text(resp.strip()) + title = f"{path.name} — summary" + lang = detect_language(text) if args.lang_detect else None + return [Record( + id=str(path.as_posix()), + parent_id=None, + source_path=str(path.resolve()), + url=None, + mime="text/x-code-summary", + record_type="code-summary", + title=title, + text=text, + span=None, + lang=lang, + meta={"model": args.code_llm, "truncated": "yes" if trunc else "no", "lang_hint": lang_hint} + )] + +# ------------------------- +# Whisper-base ASR +# ------------------------- + +def get_audio_duration(audio_path: Path, ffprobe_bin: str) -> float: + info = ffprobe_json(ffprobe_bin, audio_path) + if not info: + return 0.0 + try: + return float(info.get("format", {}).get("duration") or 0.0) + except Exception: + return 0.0 + +def slice_audio(audio_path: Path, out_dir: Path, num_slices: int, overlap_sec: float, ffprobe_bin: str, ffmpeg_bin: str) -> List[Tuple[Path, float, float]]: + duration = get_audio_duration(audio_path, ffprobe_bin) + if duration <= 0: + return [(audio_path, 0.0, 0.0)] + length = duration / max(1, num_slices) + slices: List[Tuple[Path, float, float]] = [] + for i in range(num_slices): + start = max(0.0, i * length - (overlap_sec if i > 0 else 0.0)) + end = min(duration, (i + 1) * length + (overlap_sec if i < num_slices - 1 else 0.0)) + fn = out_dir / f"slice_{i:02d}.wav" + cmd = [ + ffmpeg_bin, "-y", "-hide_banner", "-loglevel", "error", + "-ss", f"{start}", "-to", f"{end}", + "-i", str(audio_path), "-acodec", "copy", str(fn) + ] + res = run_cmd(cmd) + if res.returncode != 0: + raise RuntimeError(f"ffmpeg slice failed for {audio_path.name} [{i}]") + slices.append((fn, start, end)) + return slices + +_WHISPER_MODEL = None + +def _resolve_whisper_device(flag: str) -> Optional[str]: + if flag and flag != "auto": + return flag + try: + if torch is not None and getattr(torch.cuda, "is_available", lambda: False)(): + return "cuda" + except Exception: + pass + return "cpu" + +def _whisper_pool_init(model_name: str, device: Optional[str] = None): + global _WHISPER_MODEL + if whisper is None: + raise RuntimeError("Whisper package is required (pip install -U openai-whisper)") + warnings.filterwarnings("ignore", message="FP16 is not supported on CPU; using FP32 instead") + if device in (None, "auto"): + device = _resolve_whisper_device("auto") + try: + _WHISPER_MODEL = whisper.load_model(model_name, device=device) + except TypeError: + _WHISPER_MODEL = whisper.load_model(model_name) + +def _transcribe_slice(task: str, tup: Tuple[Path, int, str]) -> Tuple[int, str]: + global _WHISPER_MODEL + slice_path, idx, _vid = tup + res = _WHISPER_MODEL.transcribe(str(slice_path), task=task) + text = (res.get("text") or "").strip() + return idx, text + +def merge_transcripts(files_idx_text: List[Tuple[int, str]], max_overlap_words: int) -> str: + files_idx_text.sort(key=lambda x: x[0]) + merged_words: List[str] = [] + prev_words: List[str] = [] + for i, txt in files_idx_text: + words = (txt or "").split() + if merged_words and prev_words: + p_tail = prev_words[-max_overlap_words:] + c_head = words[:max_overlap_words] + L = min(len(p_tail), len(c_head)) + best = 0 + for n in range(L, 4, -1): + if p_tail[-n:] == c_head[:n]: + best = n + break + if best: + words = words[best:] + merged_words += words + prev_words = words + return " ".join(merged_words).strip() + +def process_media(path: Path, args) -> List[Record]: + probe = ffprobe_json(args.ffprobe, path) + duration_s = None + if probe: + try: + duration_s = float(probe.get("format", {}).get("duration") or 0.0) + except Exception: + duration_s = None + if duration_s and duration_s > args.max_av_duration: + raise RuntimeError(f"Media too long ({duration_s:.1f}s > cap {args.max_av_duration}s)") + + tmpdir = Path(tempfile.mkdtemp(prefix="av_")) + wav_path = tmpdir / "audio.wav" + ok = extract_audio_wav(args.ffmpeg, path, wav_path) + if not ok or not wav_path.exists(): + try: shutil.rmtree(tmpdir) + except Exception: pass + raise RuntimeError("ffmpeg audio extraction failed") + + slice_dir = tmpdir / "slices" + slice_dir.mkdir(parents=True, exist_ok=True) + nslices = max(1, args.num_slices) + slices = slice_audio(wav_path, slice_dir, nslices, args.overlap_sec, args.ffprobe, args.ffmpeg) + + mpw = args.mp_workers or len(slices) + device = _resolve_whisper_device(args.whisper_device) + ctx = mp.get_context("fork") + pool = ctx.Pool(processes=mpw, initializer=_whisper_pool_init, initargs=(args.whisper_model, device)) + try: + jobs = [(fp, i, path.stem) for i, (fp, _s, _e) in enumerate(slices)] + results = pool.starmap(_transcribe_slice, [(args.asr_task, j) for j in jobs]) + except BaseException: + try: + pool.terminate() + finally: + pool.join() + raise + else: + pool.close() + pool.join() + + joined_text = merge_transcripts(results, args.max_overlap_words) + joined_text = sanitize_llm_text(joined_text) + lang = "en" if args.asr_task == "translate" else (detect_language(joined_text) if args.lang_detect else None) + mime = mimetypes.guess_type(str(path))[0] or "audio/wav" + + records: List[Record] = [] + if args.emit_av in ("slices", "both"): + for i, (fp, s, e) in enumerate(slices): + seg_txt = next((t for idx, t in results if idx == i), "") + seg_txt = sanitize_llm_text(seg_txt) + seg_lang = "en" if args.asr_task == "translate" else (detect_language(seg_txt) if args.lang_detect else None) + records.append(Record( + id=f"{path.as_posix()}#slice={i+1}", + parent_id=str(path.as_posix()), + source_path=str(path.resolve()), + url=None, + mime=mime, + record_type="av", + title=f"{path.stem} — slice {i+1}", + text=seg_txt, + span={"time_start": s, "time_end": e}, + lang=seg_lang, + meta={"duration_s": f"{duration_s:.1f}" if duration_s else "", "asr_model": f"whisper-{args.whisper_model}", "asr_task": args.asr_task} + )) + if args.emit_av in ("joined", "both"): + records.append(Record( + id=str(path.as_posix()), + parent_id=None, + source_path=str(path.resolve()), + url=None, + mime=mime, + record_type="av", + title=path.stem, + text=joined_text, + span={"duration_s": duration_s}, + lang=lang, + meta={"duration_s": f"{duration_s:.1f}" if duration_s else "", "asr_model": f"whisper-{args.whisper_model}", "asr_task": args.asr_task} + )) + + try: + shutil.rmtree(tmpdir) + except Exception: + pass + + return records + +# ------------------------- +# IO +# ------------------------- + +def iter_files(root: Path, include_rgx: re.Pattern, exclude_rgx: re.Pattern) -> Iterable[Path]: + for p in root.rglob("*"): + if not p.is_file(): + continue + rel = str(p.relative_to(root)) + if exclude_rgx.search(rel): + continue + if include_rgx.search(rel): + yield p + +# ------------------------- +# Main +# ------------------------- + +def run_build(root: Path, out: Path, *, on_progress=None, **opts) -> dict: + global LLM_SEM + # Use provided options or default values + args = argparse.Namespace( + root=root, + out=out, + workers=opts.get("workers", os.cpu_count() or 4), + verbose=opts.get("verbose", False), + emit=opts.get("emit", "auto"), + emit_av=opts.get("emit_av", "joined"), + ocr_page_jobs=opts.get("ocr_page_jobs", 1), + ocr_lang=opts.get("ocr_lang", "eng"), + max_cols=opts.get("max_cols", 4), + epub_strategy=opts.get("epub_strategy", "pdf-fallback"), + pdf_page_workers=opts.get("pdf_page_workers", 0), + html_section_workers=opts.get("html_section_workers", 0), + include=opts.get("include", r".*\.(?:pdf|html?|txt|md|rst|epub|png|jpe?g|gif|bmp|tiff?|webp|heic|mp3|wav|m4a|flac|ogg|opus|aac|mp4|mkv|mov|webm|avi|ts|py|ipynb|js|ts|tsx|jsx|java|c|cpp|rs|go|rb|php|cs|swift|kt|m|sh|bat|ps1|sql)$"), + exclude=opts.get("exclude", r"(^|[\\/])\.|__MACOSX([\\/]|$)|\.DS_Store$|\.ocr\.txt$"), + whisper_model=opts.get("whisper_model", "base"), + num_slices=opts.get("num_slices", 8), + overlap_sec=opts.get("overlap_sec", 1.0), + max_overlap_words=opts.get("max_overlap_words", 7), + mp_workers=opts.get("mp_workers", 0), + asr_task=opts.get("asr_task", "transcribe"), + max_av_duration=opts.get("max_av_duration", 5 * 3600), + whisper_device=opts.get("whisper_device", "auto"), + ollama_host=opts.get("ollama_host", "http://localhost:11434"), + vlm_model=opts.get("vlm_model", "qwen2.5vl:7b"), + code_llm=opts.get("code_llm", "qwen3:4b"), + llm_parallel=opts.get("llm_parallel", 1), + image_max_edge=opts.get("image_max_edge", 1600), + image_text_gate=opts.get("image_text_gate", "tesseract-conf"), + ocr_psms=opts.get("ocr_psms", "6,11"), + ocr_min_conf=opts.get("ocr_min_conf", 55), + ocr_min_words=opts.get("ocr_min_words", 10), + ocr_min_alnum=opts.get("ocr_min_alnum", 0.55), + code_max_bytes=opts.get("code_max_bytes", 200_000), + lang_hint=opts.get("lang_hint", None), + lang_detect=opts.get("lang_detect", True), + writer_queue=opts.get("writer_queue", 64), + writer_chunk=opts.get("writer_chunk", 256), + writer_rotate_mb=opts.get("writer_rotate_mb", 0), + ffmpeg=opts.get("ffmpeg", shutil.which("ffmpeg") or "/usr/bin/ffmpeg"), + ffprobe=opts.get("ffprobe", shutil.which("ffprobe") or "/usr/bin/ffprobe"), + tesseract=opts.get("tesseract", shutil.which("tesseract") or "/usr/bin/tesseract"), + ebook_convert=opts.get("ebook_convert", shutil.which("ebook-convert")), + pandoc=opts.get("pandoc", shutil.which("pandoc")), + ) + + out_path = Path(args.out).expanduser() + if not out_path.is_absolute(): + out_path = (Path(__file__).parent / out_path).resolve() + + ensure_parent(out_path) + open(out_path, "w", encoding="utf-8").close() + start_writer(out_path, rotate_mb=args.writer_rotate_mb, queue_max=args.writer_queue) + if on_progress: + on_progress("start", 0.0, f"Writing JSONL to: {out_path}") + + include_rgx = re.compile(args.include, flags=re.I) + exclude_rgx = re.compile(args.exclude, flags=re.I) + + if on_progress: + on_progress("scan", 0.05, "Scanning files...") + files = list(iter_files(root, include_rgx, exclude_rgx)) + if not files: + if on_progress: + on_progress("done", 1.0, "No matching files found.") + stop_writer() + return {"status": "warning", "message": "No matching files found."} + + priority = { + ".pdf": 0, ".html": 1, ".htm": 1, ".txt": 2, ".md": 2, ".rst": 2, ".epub": 3, + ".png": 4, ".jpg": 4, ".jpeg": 4, ".gif": 4, ".bmp": 4, ".tif": 4, ".tiff": 4, ".webp": 4, ".heic": 4, + ".mp3": 5, ".wav": 5, ".m4a": 5, ".flac": 5, ".ogg": 5, ".opus": 5, ".aac": 5, + ".mp4": 6, ".mkv": 6, ".mov": 6, ".webm": 6, ".avi": 6, ".ts": 6 + } + priority.update({k: 7 for k in CODE_SUFFIX_LANG.keys()}) + files.sort(key=lambda p: (priority.get(p.suffix.lower(), 9), + (p.stat().st_size if p.exists() else 0), + str(p).lower())) + + LLM_SEM = threading.BoundedSemaphore(max(1, args.llm_parallel)) + + def worker(path: Path) -> Tuple[Path, List[Record], Optional[str]]: + try: + suf = path.suffix.lower() + if suf == ".pdf": + recs, perr = run_isolated(process_pdf, path, args, timeout=1200) + if perr: + cleaned = try_mutool_clean(path) + if cleaned: + recs2, perr2 = run_isolated(process_pdf, cleaned, args, timeout=1200) + try: cleaned.unlink(missing_ok=True) + except Exception: pass + if not perr2: + return (path, recs2, None) + txt = pdftotext_fallback(path) + if txt.strip(): + lang = detect_language(txt) if args.lang_detect else None + return (path, [Record( + id=str(path.as_posix()), + parent_id=None, + source_path=str(path.resolve()), + url=None, + mime="application/pdf", + record_type="file", + title=(txt.splitlines()[0].strip() if txt else path.stem)[:200], + text=txt, + span=None, + lang=lang, + meta={"fallback":"pdftotext"} + )], None) + return (path, [], perr) + else: + return (path, recs, None) + elif suf in {".html", ".htm"}: + recs = process_html(path, args) + elif suf in {".txt", ".md", ".rst"}: + recs = process_text(path, args) + elif suf == ".epub": + recs = process_epub(path, args) + elif suf in {".png",".jpg",".jpeg",".gif",".bmp",".tif",".tiff",".webp",".heic"}: + recs = process_image(path, args) + elif suf in {".mp3",".wav",".m4a",".flac",".ogg",".opus",".aac",".mp4",".mkv",".mov",".webm",".avi",".ts"}: + recs = process_media(path, args) + elif suf in set(CODE_SUFFIX_LANG.keys()): + recs = process_code_llm(path, args) + else: + recs = process_text(path, args) + return (path, recs, None) + except Exception as e: + return (path, [], f"{type(e).__name__}: {e}") + + total = len(files) + processed_count = 0 + errors = [] + + if on_progress: + on_progress("extract", 0.1, f"Extracting content from {total} files...") + + with cf.ThreadPoolExecutor(max_workers=max(1, args.workers)) as ex: + futures = {ex.submit(worker, p): p for p in files} + for fut in cf.as_completed(futures): + path, recs, err = fut.result() + processed_count += 1 + if err: + errors.append(f"{path.name}: {err}") + else: + enqueue_records_chunked(recs, args.writer_chunk) + if on_progress: + pct = 0.1 + 0.8 * (processed_count / total) + on_progress("extract", pct, f"Processed {processed_count}/{total}: {path.name}") + + if on_progress: + on_progress("write", 0.9, "Finalizing write...") + stop_writer() + if on_progress: + on_progress("done", 1.0, "Corpus build complete.") + + return {"status": "ok", "total_files": total, "errors": errors} + +def main(): + args = parse_args() + root_arg = args.root or args.mirror + if not root_arg: + print("[ERROR] Please provide --root .", file=sys.stderr) + sys.exit(2) + + run_build(Path(root_arg), Path(args.out), on_progress=lambda p, pct, d: print(f"[{p}] {pct*100:.1f}%: {d}"), **vars(args)) + +if __name__ == "__main__": + main() diff --git a/backend/rag/corpus_enricher.py b/backend/rag/corpus_enricher.py new file mode 100644 index 0000000..15ba31e --- /dev/null +++ b/backend/rag/corpus_enricher.py @@ -0,0 +1,1048 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +RAG Corpus Enrichment (second pass) + +What this does +- Reads a JSONL corpus (one record per line) from build_corpus.py and adds LLM-generated enrichment: + * headline (<= 12 words, language = --summary-lang) + * summary (2–4 sentences, language = --summary-lang) + * keywords (5–12, normalized & deduped) + * entities (name + canonical type: PERSON|ORG|PRODUCT|WORK|PLACE|EVENT|DATE|OTHER) + * 2–4 likely Q/A pairs (language = --summary-lang) + +- Writes two outputs: + 1) --out : original record + enrichment fields + embedding_text_hint (what your indexer should embed) + 2) --shadow-out : compact “shadow” record for retrieval with normalized shadow_text and useful metadata + (includes: parent_id, span, size metrics, quality_flags) + +Design for speed & robustness +- Default local model: phi4:latest (good balance on Apple/M1 Max). Swap with --model if desired. +- Pooled HTTP via requests.Session (one per thread), bounded semaphore on Ollama calls. +- JSON mode with strict schema + robust repair if the model returns non-JSON. +- Head/Mid/Tail sampling for long texts to stay within context quickly. +- Caching: + * Main enrichment cache keyed by (prompt_version + model + lang + sampled_text + record_id + record_type) + * Translation cache keyed by (model + target_lang + field_text) +- Post-enforcement: + * clamp headline to <=12 words, summary to 2–4 sentences + * ensure 5–12 keywords, dedup & normalize + * canonicalize entity types and dedup by name + * top-up Q/A to required count with a tiny follow-up call (cheap) + * verify/translate fields to --summary-lang if needed + +CLI example + python rag_enhance_corpus.py \ + --in corpus.jsonl \ + --out corpus.enhanced.jsonl \ + --shadow-out corpus.shadow.jsonl \ + --summary-lang en \ + --ollama http://localhost:11434 \ + --model phi4:latest \ + --concurrency 8 \ + --keep-alive 15m \ + --min-chars 120 \ + --max-text 12000 \ + --timeout 120 + +Requires: requests, tqdm, (optional) langid, (optional) orjson +""" + +from __future__ import annotations +import argparse +import concurrent.futures as cf +import hashlib +import json +import os +import re +import sys +import threading +import time +from dataclasses import dataclass, asdict +from pathlib import Path +from typing import Any, Dict, Iterable, List, Optional, Tuple, Callable +import multiprocessing as mp_context + +# Optional faster JSON if available +try: + import orjson as _orjson + def json_dumps(obj) -> str: + return _orjson.dumps(obj, option=_orjson.OPT_NON_STR_KEYS | _orjson.OPT_SERIALIZABLE).decode("utf-8") + def json_loads(s: str) -> Any: + return _orjson.loads(s) +except Exception: + def json_dumps(obj) -> str: + return json.dumps(obj, ensure_ascii=False) + def json_loads(s: str) -> Any: + return json.loads(s) + +try: + import langid # optional language detection +except Exception: + langid = None + +try: + from tqdm import tqdm +except Exception: + tqdm = None + +# ------------------------- +# Constants & helpers +# ------------------------- + +PROMPT_VERSION = "v3.0" + +ENTITY_CANON = { + "PERSON": "PERSON", + "ORG": "ORG", "ORGANIZATION": "ORG", "COMPANY": "ORG", "INSTITUTION": "ORG", "COUNTRY": "ORG", + "PRODUCT": "PRODUCT", "TOOL": "PRODUCT", "LIBRARY": "PRODUCT", + "WORK": "WORK", "BOOK": "WORK", "PAPER": "WORK", "ARTICLE": "WORK", "MOVIE": "WORK", + "PLACE": "PLACE", "LOCATION": "PLACE", "CITY": "PLACE", "REGION": "PLACE", "ADDRESS": "PLACE", + "EVENT": "EVENT", "CONFERENCE": "EVENT", "MEETING": "EVENT", + "DATE": "DATE", "TIME": "DATE", "YEAR": "DATE", + "OTHER": "OTHER", +} + +QA_TARGET_DEFAULT = 3 # aim for 3 Q/A pairs for normal docs +QA_TARGET_SHORT = 2 # short docs can have 2 + +# thread-local session pool +_TLS = threading.local() + +def get_session(): + import requests + s = getattr(_TLS, "session", None) + if s is None: + s = requests.Session() + setattr(_TLS, "session", s) + return s + +def log(msg: str, *, verbose: bool = True): + if verbose: + print(msg, flush=True) + +def strip_think(s: str) -> str: + return re.sub(r"<\s*think\s*>.*?<\s*/\s*think\s*>", "", s, flags=re.S | re.I) + +def sanitize_text(s: str) -> str: + if not s: + return "" + s = strip_think(s) + s = re.sub(r"^\s*```(?:\w+)?\s*|\s*```\s*$", "", s, flags=re.M) # strip stray code fences + s = re.sub(r"[ \t]+", " ", s) + s = re.sub(r"\n{3,}", "\n\n", s) + return s.strip() + +def detect_lang_quick(s: str) -> Optional[str]: + s = (s or "").strip() + if not s: + return None + try: + if langid is not None: + lang, _ = langid.classify(s[:4000]) + return lang + except Exception: + pass + return None + +def sentence_split(text: str) -> List[str]: + # very light heuristic splitter + parts = re.split(r"(?<=[.!?])\s+(?=[A-ZÄÖÜ0-9\"'])", text.strip()) + # fall back if we ended up with nothing + if len(parts) == 1 and len(parts[0]) > 0: + return [parts[0]] + return [p.strip() for p in parts if p.strip()] + +def clamp_sentences(text: str, min_s: int = 2, max_s: int = 4) -> str: + sents = sentence_split(text) + if not sents: + return "" + sents = sents[:max_s] + # if after clamp we have < min_s and original had more, pad; else keep as is + return " ".join(sents) + +def clamp_words(text: str, max_words: int) -> str: + words = text.strip().split() + if len(words) <= max_words: + return text.strip() + return " ".join(words[:max_words]) + +def normalize_keywords(items: List[str]) -> List[str]: + out: List[str] = [] + seen = set() + for x in items or []: + s = sanitize_text(str(x)) + s = re.sub(r"^[,;:.\-–—\s]+|[,;:.\-–—\s]+$", "", s) + s = re.sub(r"\s+", " ", s) + if not s: + continue + key = s.lower() + if key in seen: + continue + seen.add(key) + out.append(s) + # enforce 5–12 by trimming if needed + if len(out) > 12: + out = out[:12] + return out + +def canonicalize_entities(ents: List[Dict[str, Any]]) -> List[Dict[str, str]]: + out: List[Dict[str, str]] = [] + seen = set() + for e in ents or []: + if not isinstance(e, dict): continue + name = sanitize_text(str(e.get("name", ""))) + if not name: continue + typ_raw = sanitize_text(str(e.get("type", ""))).upper() + typ = ENTITY_CANON.get(typ_raw, ENTITY_CANON.get(typ_raw.split("_")[0], "OTHER")) + key = name.lower() + if key in seen: continue + seen.add(key) + out.append({"name": name, "type": typ}) + return out + +def text_size_metrics(text: str) -> Dict[str, int]: + text = text or "" + return { + "char_count": len(text), + "word_count": len(text.split()), + "line_count": len([ln for ln in text.splitlines()]), + } + +def head_mid_tail_sample(s: str, max_chars: int) -> str: + if len(s) <= max_chars: + return s + third = max_chars // 3 + head = s[:third] + mid_start = max(0, len(s)//2 - third//2) + mid = s[mid_start:mid_start + third] + tail = s[-third:] + return f"{head}\n\n[...] (sample)\n\n{mid}\n\n[...] (sample)\n\n{tail}" + +def looks_like_ocr_noise(s: str) -> bool: + s = s or "" + if not s.strip(): + return False + letters = sum(ch.isalpha() for ch in s) + punct = sum(ch in "!@#$%^&*()[]{}<>/\\|~`" for ch in s) + ratio_letters = letters / max(1, len(s)) + ratio_punct = punct / max(1, len(s)) + return ratio_letters < 0.45 and ratio_punct > 0.08 + +def build_doc_hint(rec: Dict[str, Any]) -> str: + rt = rec.get("record_type") or "" + mime = rec.get("mime") or "" + title = rec.get("title") or "" + if rt == "image": + return "This record is derived from an IMAGE. If text exists, it may be OCR; otherwise it is an image description. Summaries should read like quality alt-text and include short visible text only if clearly legible." + if rt == "av": + return "This record is derived from an AUDIO/VIDEO transcript. Focus on the main points, speakers (if known), and concrete facts. Q&A should target answerable details from the transcript." + if rt == "code-summary": + return "This record summarizes a code file. Keywords should emphasize APIs, functions, modules, and side effects. Q&A should focus on how to use or extend the code." + # PDFs/HTML/TXT/etc. + if "pdf" in mime: + return "This record is a PDF page or document content." + if "html" in mime: + return "This record is HTML/webpage content." + if "text" in mime: + return "This record is plain text content." + return f"This record is of type '{rt}' with mime '{mime}'. Title (if any): {title}" + +def pick_text(d: Dict[str, Any]) -> str: + return d.get("text") or d.get("content") or d.get("body") or "" + +def stable_hash(text: str, model: str, lang: str, rec_id: str, rec_type: str) -> str: + h = hashlib.sha1() + for part in (PROMPT_VERSION, model, lang, rec_id or "", rec_type or "", text): + h.update(part.encode("utf-8", errors="ignore")) + h.update(b"\x00") + return h.hexdigest() + +# ------------------------- +# Ollama calls +# ------------------------- + +def ollama_generate_json( + host: str, + model: str, + system_prompt: str, + user_prompt: str, + *, + keep_alive: str = "15m", + timeout: int = 120, + options: Optional[Dict[str, Any]] = None, +) -> Dict[str, Any]: + """ + Call Ollama /api/generate in JSON mode (format='json'). + Robust JSON repair if needed. + """ + session = get_session() + payload = { + "model": model, + "system": system_prompt, + "prompt": user_prompt, + "format": "json", + "stream": False, + "keep_alive": keep_alive, + } + if options: + payload["options"] = options + r = session.post(f"{host.rstrip('/')}/api/generate", json=payload, timeout=timeout) + r.raise_for_status() + data = r.json() + raw = sanitize_text(data.get("response", "")) + try: + return json_loads(raw) + except Exception: + m = re.search(r"\{.*\}", raw, flags=re.S) + if m: + try: + return json_loads(m.group(0)) + except Exception: + pass + # last resort minimal structure + return {"headline": "", "summary": raw, "keywords": [], "entities": [], "qa": []} + +def ollama_generate_text( + host: str, + model: str, + system_prompt: str, + user_prompt: str, + *, + keep_alive: str = "15m", + timeout: int = 120, + options: Optional[Dict[str, Any]] = None, +) -> str: + """ + Plain text response (no enforced JSON). Used for tiny follow-ups if desired. + """ + session = get_session() + payload = { + "model": model, + "system": system_prompt, + "prompt": user_prompt, + "stream": False, + "keep_alive": keep_alive, + } + if options: + payload["options"] = options + r = session.post(f"{host.rstrip('/')}/api/generate", json=payload, timeout=timeout) + r.raise_for_status() + data = r.json() + return sanitize_text(data.get("response", "")) + +# ------------------------- +# Prompts +# ------------------------- + +def build_system(summary_lang: str) -> str: + return ( + "You are a precise, concise, multilingual document tagger for retrieval-augmented generation (RAG). " + "Return ONLY JSON matching the schema. Avoid markdown. No extra commentary.\n" + f"Output language for headline/summary/keywords/Q&A must be '{summary_lang}'." + ) + +def build_user_main(text: str, summary_lang: str, doc_hint: str, want_qa: int) -> str: + want_qa = max(2, min(4, int(want_qa))) + # Fixed internal instruction for style/tone + fixed_instruction = ( + "Produce concise headlines (≤12 words) and 2–4 sentence summaries; " + "5–12 normalized keywords (kebab-case); named entities with types; 2–4 useful QA pairs. " + "Keep strictly grounded in the source." + ) + return ( + f"{doc_hint}\n\n" + "You will receive a document TEXT. Produce JSON matching this schema strictly:\n" + "{\n" + ' "headline": string, # <= 12 words\n' + ' "summary": string, # 2-4 sentences, faithful and specific\n' + ' "keywords": [string, ...], # 5-12 salient terms; multi-word allowed; no hashtags\n' + ' "entities": [ # up to ~12 unique items\n' + ' {"name": string, "type": "PERSON|ORG|PRODUCT|WORK|PLACE|EVENT|DATE|OTHER"}\n' + " ],\n" + f' "qa": [ # exactly {want_qa} Q&A pairs\n' + ' {"q": string, "a": string}\n' + " ]\n" + "}\n\n" + f"Style Instruction: {fixed_instruction}\n\n" + f"Constraints:\n" + f"- Headline and summary MUST be in {summary_lang}.\n" + "- Extract proper nouns and salient terms as entities; deduplicate by name.\n" + "- Q&A must be answerable ONLY from the TEXT; keep questions <= 16 words; answers concise (<= ~80 words).\n" + "- Be terse and informative; no filler.\n\n" + "TEXT:\n" + text + ) + +def build_user_qa_topup(text: str, summary_lang: str, need: int) -> str: + need = max(1, min(3, int(need))) + return ( + "We have a document TEXT and need ONLY additional Q&A pairs for retrieval. " + "Return STRICT JSON of the form: {\n" + ' "qa": [ {"q": string, "a": string}, ... ]\n' + "}\n" + f"Output language: {summary_lang}. Provide exactly {need} pairs. " + "Questions <= 16 words; answers concise (<= ~80 words).\n\n" + "TEXT:\n" + text + ) + +def build_system_translate(target_lang: str) -> str: + return ( + "You are a translator. Return ONLY JSON of the form {\"text\": \"...\"}. " + "Do not add commentary." + ) + +def build_user_translate(text: str, target_lang: str) -> str: + return ( + f"Translate into {target_lang} preserving meaning and tone.\n" + "Return: {\"text\": \"...\"} only.\n\n" + "TEXT:\n" + text + ) + +# ------------------------- +# Shadow rendering +# ------------------------- + +def render_shadow(rec: Dict[str, Any], enrichment: Dict[str, Any]) -> Dict[str, Any]: + """ + Build a compact record for retrieval. 'shadow_text' concatenates fields in a stable order. + Adds: parent_id, span, size metrics, quality_flags. + """ + parts: List[str] = [] + h = enrichment.get("headline") or rec.get("title") or "" + s = enrichment.get("summary") or "" + kws = enrichment.get("keywords") or [] + ents = enrichment.get("entities") or [] + qas = enrichment.get("qa") or [] + + if h: parts.append(f"headline: {h}") + if s: parts.append(f"summary: {s}") + if kws: + kw_line = ", ".join(str(k).strip() for k in kws if str(k).strip()) + parts.append("keywords: " + kw_line) + # tiny topical boost (helps small embedders) + parts.append("keywords_boost: " + kw_line) + if ents: + uniq = {} + for e in ents: + name = (e.get("name") or "").strip() + et = (e.get("type") or "OTHER").strip().upper() + if name and name.lower() not in uniq: + uniq[name.lower()] = (name, et) + if uniq: + parts.append("entities: " + "; ".join(f"{n} [{t}]" for n, t in uniq.values())) + if qas: + qas_strs = [] + for qa in qas[:4]: + q = (qa.get("q") or "").strip() + a = (qa.get("a") or "").strip() + if q and a: + qas_strs.append(f"Q: {q}\nA: {a}") + if qas_strs: + parts.append("qa:\n" + "\n".join(qas_strs)) + + shadow_text = "\n".join(parts).strip() + meta = { + "prompt_version": PROMPT_VERSION, + "size": text_size_metrics(shadow_text), + } + parent_id = rec.get("parent_id") + span = rec.get("span") if isinstance(rec.get("span"), dict) else None + + out = { + "id": rec.get("id"), + "parent_id": parent_id, + "source_path": rec.get("source_path"), + "url": rec.get("url"), + "title": rec.get("title"), + "record_type": rec.get("record_type"), + "mime": rec.get("mime"), + "lang": rec.get("lang"), + "span": span, + "shadow_text": shadow_text, + "shadow_meta": meta, + } + return out + +# ------------------------- +# Cache +# ------------------------- + +class Cache: + def __init__(self, root: Path, prefix: str = ""): + self.root = root + self.root.mkdir(parents=True, exist_ok=True) + self.lock = threading.Lock() + self.prefix = prefix + + def _path(self, key: str) -> Path: + k = (self.prefix + key) + sub = self.root / k[:2] / (k + ".json") + sub.parent.mkdir(parents=True, exist_ok=True) + return sub + + def get(self, key: str) -> Optional[Dict[str, Any]]: + p = self._path(key) + if not p.exists(): + return None + try: + return json_loads(p.read_text(encoding="utf-8")) + except Exception: + return None + + def put(self, key: str, value: Dict[str, Any]): + p = self._path(key) + with self.lock: + p.write_text(json_dumps(value), encoding="utf-8") + +# ------------------------- +# Post-process + translation guards +# ------------------------- + +def enforce_schema_and_language( + out: Dict[str, Any], + *, + target_lang: str, + rec_text_sample: str, + rec_is_short: bool, + perform_translate, + stats: Dict[str, int], +) -> Dict[str, Any]: + quality_flags: List[str] = [] + + # headline + headline = sanitize_text(str(out.get("headline", ""))) + if headline: + hd = clamp_words(headline, 12) + if hd != headline: + quality_flags.append("headline_clamped") + headline = hd + + # summary + summary = sanitize_text(str(out.get("summary", ""))) + if summary: + sm = clamp_sentences(summary, 2, 4) + if sm != summary: + quality_flags.append("summary_clamped") + summary = sm + + # keywords + kws = out.get("keywords", []) + if isinstance(kws, list): + kws = normalize_keywords(kws) + if len(kws) < 5 and headline: + # augment from headline tokens if we’re short + extra = [w for w in re.split(r"[,\s]+", headline) if len(w) > 3] + kws = normalize_keywords((kws or []) + extra) + if len(kws) < 5 and summary: + extra = [w for w in re.findall(r"[A-Za-zÀ-ÖØ-öø-ÿ][A-Za-zÀ-ÖØ-öø-ÿ\-]{2,}", summary)] + kws = normalize_keywords((kws or []) + extra) + if len(kws) > 12: + kws = kws[:12] + else: + kws = [] + + # entities + ents = canonicalize_entities(out.get("entities", [])) + + # QA + qas = [] + for qa in out.get("qa", []) or []: + if not isinstance(qa, dict): continue + q = clamp_words(sanitize_text(str(qa.get("q", ""))), 16) + a = sanitize_text(str(qa.get("a", ""))) + if q and a and len(a) >= 30: + qas.append({"q": q, "a": a}) + # ensure minimum count target + target = QA_TARGET_SHORT if rec_is_short else QA_TARGET_DEFAULT + if len(qas) < target: + need = target - len(qas) + # ask for a top-up + add = perform_translate("__QATOPUP__", rec_text_sample, need) # overloaded: returns dict {"qa":[...]} + extra = [] + if isinstance(add, dict): + for qa in add.get("qa", []) or []: + if not isinstance(qa, dict): continue + q = clamp_words(sanitize_text(str(qa.get("q", ""))), 16) + a = sanitize_text(str(qa.get("a", ""))) + if q and a and len(a) >= 30: + extra.append({"q": q, "a": a}) + if extra: + qas.extend(extra[:need]) + quality_flags.append("qa_topped_up") + stats["qa_topped_up"] += 1 + + # Language guard (per-field) + def _guard_lang(field_value: str, field_name: str) -> str: + if not field_value: + return field_value + detected = detect_lang_quick(field_value) + if detected and target_lang and detected != target_lang: + tr = perform_translate(field_name, field_value, 0) # 0 = translate exactly this string + if isinstance(tr, dict): + txt = sanitize_text(str(tr.get("text", ""))) + else: + txt = sanitize_text(str(tr) if tr else "") + if txt: + quality_flags.append(f"{field_name}_translated") + stats["translated_fields"] += 1 + return txt + return field_value + + headline = _guard_lang(headline, "headline") + summary = _guard_lang(summary, "summary") + # translate Q&A fields if needed + fixed_qas = [] + for qa in qas: + q = _guard_lang(qa["q"], "qa_q") + a = _guard_lang(qa["a"], "qa_a") + fixed_qas.append({"q": q, "a": a}) + qas = fixed_qas + + return { + "headline": headline, + "summary": summary, + "keywords": kws, + "entities": ents, + "qa": qas, + "quality_flags": quality_flags, + } + +# ------------------------- +# Worker +# ------------------------- + +@dataclass +class Args: + inp: str + out: str + shadow_out: str + ollama: str + model: str + summary_lang: str + concurrency: int + keep_alive: str + timeout: int + min_chars: int + max_text: int + force: bool + cache_dir: str + verbose: bool + +def enrich_one( + rec: Dict[str, Any], + *, + args: Args, + cache_main: Cache, + cache_tr: Cache, + sem: threading.BoundedSemaphore, + stats: Dict[str, int], +) -> Tuple[Dict[str, Any], Dict[str, Any]]: + """ + Return (enriched_record, shadow_record) + """ + base_text = sanitize_text(pick_text(rec)) + rec_id = str(rec.get("id") or "") + rec_type = str(rec.get("record_type") or "") + doc_hint = build_doc_hint(rec) + + is_short = len(base_text) < args.min_chars + sampled = base_text if len(base_text) <= args.max_text else head_mid_tail_sample(base_text, args.max_text) + qa_target = QA_TARGET_SHORT if is_short else QA_TARGET_DEFAULT + + # short fast-path (no LLM) + if is_short: + enrichment = { + "headline": (rec.get("title") or base_text[:80]).strip(), + "summary": clamp_sentences(base_text[:400], 1, 3), + "keywords": [], + "entities": [], + "qa": [], + "model": None, + "prompt_version": PROMPT_VERSION, + "cached": True, + "strategy": "short-fastpath", + } + enr = dict(rec) + enr.update({ + "headline": enrichment["headline"], + "summary": enrichment["summary"], + "keywords": enrichment["keywords"], + "entities": enrichment["entities"], + "qa": enrichment["qa"], + "enrichment_meta": { + "model": None, + "prompt_version": PROMPT_VERSION, + "cached": True, + "strategy": "short-fastpath", + "ok": True, + "error": None, + } + }) + shadow = render_shadow(rec, enrichment) + # embedding hint prefers shadow_text + enr["embedding_text_hint"] = shadow["shadow_text"] + return enr, shadow + + # OCR noise guard: nudge the prompt to produce a descriptive summary + if looks_like_ocr_noise(sampled): + doc_hint += " The TEXT appears noisy/garbled (possibly OCR). Summarize what the document likely conveys and any clearly legible details; avoid copying garbled strings." + + # caching + key = stable_hash(sampled, args.model, args.summary_lang, rec_id, rec_type) + if not args.force: + hit = cache_main.get(key) + if hit is not None: + enriched = dict(rec) + enriched.update({ + "headline": hit.get("headline"), + "summary": hit.get("summary"), + "keywords": hit.get("keywords"), + "entities": hit.get("entities"), + "qa": hit.get("qa"), + "enrichment_meta": { + "model": hit.get("model"), + "prompt_version": hit.get("prompt_version"), + "cached": True, + "strategy": hit.get("strategy"), + "ok": True, + "error": None, + } + }) + shadow = render_shadow(rec, hit) + enriched["embedding_text_hint"] = shadow["shadow_text"] + stats["cache_hits"] += 1 + return enriched, shadow + + # tiny helper: translation or QA top-up calls (cached for translations) + def perform_translate(kind: str, payload: str, need_pairs: int) -> Dict[str, Any] | str: + if kind == "__QATOPUP__": + # request exactly need_pairs additional pairs + sys_prompt = build_system(args.summary_lang) + usr_prompt = build_user_qa_topup(sampled, args.summary_lang, need_pairs) + opts = {"temperature": 0.2, "repeat_penalty": 1.1, "top_p": 0.9, "num_predict": 280} + with sem: + tries, backoff, last = 2, 1.5, None + for i in range(tries): + try: + return ollama_generate_json(args.ollama, args.model, sys_prompt, usr_prompt, + keep_alive=args.keep_alive, timeout=args.timeout, options=opts) + except Exception as e: + last = e + time.sleep(backoff ** (i+1)) + # failure → empty result + return {"qa": []} + else: + # per-field translation caching + tr_key = stable_hash(payload, args.model, args.summary_lang, kind, "translate") + if not args.force: + tr_hit = cache_tr.get(tr_key) + if tr_hit is not None: + return tr_hit + sys_prompt = build_system_translate(args.summary_lang) + usr_prompt = build_user_translate(payload, args.summary_lang) + opts = {"temperature": 0.2, "repeat_penalty": 1.05, "top_p": 0.9, "num_predict": 200} + with sem: + tries, backoff, last = 2, 1.5, None + for i in range(tries): + try: + out = ollama_generate_json(args.ollama, args.model, sys_prompt, usr_prompt, + keep_alive=args.keep_alive, timeout=args.timeout, options=opts) + # normalize + if not isinstance(out, dict): + out = {"text": sanitize_text(str(out))} + else: + out["text"] = sanitize_text(str(out.get("text", ""))) + cache_tr.put(tr_key, out) + return out + except Exception as e: + last = e + time.sleep(backoff ** (i+1)) + return {"text": payload} # give up: return original + + # main call + system = build_system(args.summary_lang) + user = build_user_main(sampled, args.summary_lang, doc_hint, qa_target) + options = {"temperature": 0.2, "repeat_penalty": 1.1, "top_p": 0.9, "num_predict": 320} + + with sem: + tries, backoff, last_exc = 3, 1.5, None + for i in range(tries): + try: + out = ollama_generate_json(args.ollama, args.model, system, user, + keep_alive=args.keep_alive, timeout=args.timeout, options=options) + # sanitize + normalize structure + if not isinstance(out, dict): + out = {"headline": "", "summary": sanitize_text(str(out)), "keywords": [], "entities": [], "qa": []} + else: + for k in ("headline", "summary"): + if k in out and isinstance(out[k], str): + out[k] = sanitize_text(out[k]) + + # normalize arrays to expected types + out["keywords"] = [sanitize_text(str(x)) for x in out.get("keywords", []) if str(x).strip()] + ents = [] + for e in out.get("entities", []) or []: + if isinstance(e, dict): + name = sanitize_text(str(e.get("name", ""))) + typ = sanitize_text(str(e.get("type", "OTHER"))) + if name: + ents.append({"name": name, "type": typ}) + out["entities"] = ents + + qas = [] + for qa in out.get("qa", []) or []: + if isinstance(qa, dict): + q = sanitize_text(str(qa.get("q", ""))) + a = sanitize_text(str(qa.get("a", ""))) + if q and a: + qas.append({"q": q, "a": a}) + out["qa"] = qas + + # post-enforce schema + language + fixed = enforce_schema_and_language( + out, + target_lang=args.summary_lang, + rec_text_sample=sampled, + rec_is_short=is_short, + perform_translate=perform_translate, + stats=stats, + ) + + result = { + "headline": fixed["headline"], + "summary": fixed["summary"], + "keywords": fixed["keywords"], + "entities": fixed["entities"], + "qa": fixed["qa"], + "quality_flags": fixed["quality_flags"], + "model": args.model, + "prompt_version": PROMPT_VERSION, + "cached": False, + "strategy": "sampled" if len(base_text) > args.max_text else "full", + } + + # save to cache + cache_main.put(key, result) + + enriched = dict(rec) + enriched.update({ + "headline": result["headline"], + "summary": result["summary"], + "keywords": result["keywords"], + "entities": result["entities"], + "qa": result["qa"], + "enrichment_meta": { + "model": args.model, + "prompt_version": PROMPT_VERSION, + "cached": False, + "strategy": result["strategy"], + "ok": True, + "error": None, + "quality_flags": result["quality_flags"], + } + }) + shadow = render_shadow(rec, result) + enriched["embedding_text_hint"] = shadow["shadow_text"] + return enriched, shadow + + except Exception as e: + last_exc = e + time.sleep(backoff ** (i+1)) + + # fallback if everything failed + stats["fallbacks"] += 1 + fallback_summary = clamp_sentences(sampled[:1000], 2, 4) + fallback = { + "headline": (rec.get("title") or sampled.split("\n", 1)[0][:80]).strip(), + "summary": fallback_summary, + "keywords": [], + "entities": [], + "qa": [], + "model": None, + "prompt_version": PROMPT_VERSION, + "cached": False, + "strategy": f"fallback:{type(last_exc).__name__ if last_exc else 'error'}", + "quality_flags": ["fallback"], + } + enriched = dict(rec) + enriched.update({ + "headline": fallback["headline"], + "summary": fallback["summary"], + "keywords": [], + "entities": [], + "qa": [], + "enrichment_meta": { + "model": None, + "prompt_version": PROMPT_VERSION, + "cached": False, + "strategy": fallback["strategy"], + "ok": False, + "error": str(last_exc) if last_exc else "unknown", + "quality_flags": ["fallback"], + } + }) + shadow = render_shadow(rec, fallback) + enriched["embedding_text_hint"] = shadow["shadow_text"] + return enriched, shadow + +# ------------------------- +# IO +# ------------------------- + +def iter_jsonl(path: Path) -> Iterable[Dict[str, Any]]: + with path.open("r", encoding="utf-8") as f: + for line in f: + if not line.strip(): + continue + try: + yield json_loads(line) + except Exception: + continue + +def write_line(path: Path, obj: Dict[str, Any], lock: threading.Lock, *, dry_run: bool = False): + if dry_run: + return + line = json_dumps(obj) + "\n" + with lock: + with path.open("a", encoding="utf-8") as fh: + fh.write(line) + fh.flush() + +# ------------------------- +# CLI +# ------------------------- + +def parse_args(): + p = argparse.ArgumentParser(description="Enrich a JSONL corpus with small-LLM generated summaries, keywords, entities and Q&A.") + p.add_argument("--in", dest="inp", required=True, help="Input JSONL (from build_corpus.py)") + p.add_argument("--out", required=True, help="Output JSONL with enrichment fields merged into each record") + p.add_argument("--shadow-out", required=True, help="Output JSONL of compact 'shadow' records for retrieval") + p.add_argument("--ollama", default="http://localhost:11434", help="Ollama base URL") + p.add_argument("--model", default="phi4:latest", help="Local model (e.g., 'phi4:latest' or 'llama3.2:3b')") + p.add_argument("--summary-lang", default="en", help="Language of headline/summary/keywords/Q&A") + p.add_argument("--concurrency", type=int, default=max(2, (os.cpu_count() or 4)//2), help="Parallel HTTP workers") + p.add_argument("--keep-alive", default="15m", help="Ollama keep_alive value (e.g., '15m', '-1' for forever)") + p.add_argument("--timeout", type=int, default=120, help="HTTP timeout per request (seconds)") + p.add_argument("--min-chars", type=int, default=120, help="Skip LLM when text shorter than this (fast-path heuristic)") + p.add_argument("--max-text", type=int, default=12000, help="If text is longer, sample head/mid/tail to this many chars") + p.add_argument("--force", action="store_true", help="Ignore cache and regenerate everything") + p.add_argument("--cache-dir", default=".rag_cache", help="Directory for per-record JSON cache") + p.add_argument("--dry-run", action="store_true", help="Do the work but do not write outputs") + p.add_argument("--verbose", action="store_true", help="Verbose logging") + return p.parse_args() + +# ------------------------- +# Main +# ------------------------- + +def run_enrich(inp: Path, out: Path, shadow_out: Path, *, + summary_lang: str = "auto", + on_progress: Optional[Callable[[str, float, str], None]] = None, + cancellation_event: Optional[threading.Event] = None, **opts) -> dict: + args = Args( + inp=str(inp), + out=str(out), + shadow_out=str(shadow_out), + ollama=opts.get("ollama", "http://localhost:11434"), + model=opts.get("model", "phi4:latest"), + summary_lang=summary_lang, + concurrency=opts.get("concurrency", max(2, (os.cpu_count() or 4)//2)), + keep_alive=opts.get("keep_alive", "15m"), + timeout=opts.get("timeout", 120), + min_chars=opts.get("min_chars", 120), + max_text=opts.get("max_text", 12000), + force=opts.get("force", False), + cache_dir=opts.get("cache_dir", ".rag_cache"), + verbose=opts.get("verbose", False), + ) + + src = Path(args.inp).expanduser().resolve() + if not src.exists(): + return {"status": "error", "message": f"Input not found: {src}"} + + out_path = Path(args.out).expanduser().resolve() + shadow_path = Path(args.shadow_out).expanduser().resolve() + out_path.parent.mkdir(parents=True, exist_ok=True) + shadow_path.parent.mkdir(parents=True, exist_ok=True) + + out_path.write_text("", encoding="utf-8") + shadow_path.write_text("", encoding="utf-8") + + cache_main = Cache(Path(args.cache_dir), prefix="enrich_") + cache_tr = Cache(Path(args.cache_dir), prefix="trans_") + + sem = threading.BoundedSemaphore(max(1, args.concurrency)) + lock_out = threading.Lock() + lock_sh = threading.Lock() + + if on_progress: + on_progress("load", 0.05, "Loading records...") + records = list(iter_jsonl(src)) + total = len(records) + if total == 0: + if on_progress: + on_progress("done", 1.0, "Empty input.") + return {"status": "warning", "message": "Empty input."} + + stats = { + "cache_hits": 0, + "fallbacks": 0, + "qa_topped_up": 0, + "translated_fields": 0, + "processed": 0, + } + + def _worker(rec: Dict[str, Any]) -> None: + if cancellation_event and cancellation_event.is_set(): + return # Exit early if cancelled + try: + enriched, shadow = enrich_one( + rec, args=args, cache_main=cache_main, cache_tr=cache_tr, + sem=sem, stats=stats + ) + write_line(out_path, enriched, lock_out) + write_line(shadow_path, shadow, lock_sh) + except Exception as e: + passthru = dict(rec) + passthru["enrichment_meta"] = { + "model": None, "prompt_version": PROMPT_VERSION, "cached": False, + "strategy": "error", "ok": False, "error": f"{type(e).__name__}: {e}", + "quality_flags": ["error"], + } + write_line(out_path, passthru, lock_out) + finally: + stats["processed"] += 1 + if on_progress: + pct = 0.1 + 0.8 * (stats["processed"] / total) + on_progress("enrich", pct, f"Processed {stats['processed']}/{total}") + + if on_progress: + on_progress("enrich", 0.1, f"Enriching {total} records...") + with cf.ThreadPoolExecutor(max_workers=max(1, args.concurrency)) as ex: + futs = [ex.submit(_worker, r) for r in records] + for fut in cf.as_completed(futs): + if cancellation_event and cancellation_event.is_set(): + for f in futs: + f.cancel() # Attempt to cancel remaining futures + if on_progress: + on_progress("done", 1.0, "Enrichment cancelled.") + return {"status": "cancelled", "message": "Enrichment cancelled."} + _ = fut.result() + + if on_progress: + on_progress("done", 1.0, "Enrichment complete.") + + return {"status": "ok", "stats": stats} + +def main(): + a = parse_args() + run_enrich( + Path(a.inp), Path(a.out), Path(a.shadow_out), + summary_lang=a.summary_lang, + on_progress=lambda p, pct, d: print(f"[{p}] {pct*100:.1f}%: {d}"), + **vars(a) + ) + +if __name__ == "__main__": + main() diff --git a/backend/rag/index_builder.py b/backend/rag/index_builder.py new file mode 100644 index 0000000..2488250 --- /dev/null +++ b/backend/rag/index_builder.py @@ -0,0 +1,525 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +03_index_builder.py + +Flexible FAISS index builder for hybrid RAG. + +Supports these inputs (any subset): +- --raw : corpus.jsonl from 01_corpus_builder.py (no enrichment) +- --enhanced : corpus.enhanced.jsonl from 02_corpus_enricher.py +- --shadow : corpus.shadow.jsonl from 02_corpus_enricher.py + +Outputs (by default into ./indexes): +- shadow.index.faiss : FAISS IP index over vectors of "shadow_text" +- shadow.meta.jsonl : metadata for each FAISS id (id, doc_id, record_id, title, url, record_type, mime, lang, kind, shadow_text) +- content.index.faiss : FAISS IP index over vectors of chunked "text" +- content.meta.jsonl : metadata for each FAISS id (id, doc_id, record_id, chunk_no, title, url, text, record_type, mime, lang) + +Behavior +- If you provide --shadow → build shadow from it. +- Else if you provide --enhanced → synthesize shadow from enriched fields (headline+summary+keywords+entities+qa). +- Else if you provide --raw → synthesize shadow from raw (title + first sentences + hints). +- If you provide --enhanced → build content from it. +- Else if you provide --raw → build content from raw text (chunking). +- You can disable either side with --no-shadow or --no-content. + +Embedding +- Uses Ollama /api/embeddings with cosine similarity (L2-normalize then IP). + +Examples: + +# Full hybrid from enriched+shadow +python 03_index_builder.py \ + --enhanced corpus.enhanced.jsonl \ + --shadow corpus.shadow.jsonl \ + --out-dir indexes \ + --embed-model "dengcao/Qwen3-Embedding-0.6B:F16" \ + --target-chars 2500 --overlap-chars 200 \ + --concurrency 6 + +# Raw-only (no enricher) → builds content from raw text and a proxy shadow +python 03_index_builder.py \ + --raw corpus.jsonl \ + --out-dir indexes \ + --embed-model "dengcao/Qwen3-Embedding-0.6B:F16" + +""" +from __future__ import annotations + +import argparse, json, sys, uuid, os, re +from pathlib import Path +from typing import Dict, Any, Iterable, List, Tuple, Optional, Callable +from concurrent.futures import ThreadPoolExecutor, as_completed +import threading +import numpy as np +import requests +import faiss +from tqdm import tqdm + +# ----------------------------- +# IO +# ----------------------------- +def read_jsonl(path: Path) -> Iterable[Dict[str, Any]]: + with open(path, "r", encoding="utf-8") as f: + for line in f: + if line.strip(): + try: + yield json.loads(line) + except Exception: + continue + +def ensure_dir(p: Path): + p.mkdir(parents=True, exist_ok=True) + +# ----------------------------- +# Text helpers +# ----------------------------- +def pick_text(rec: Dict[str, Any]) -> str: + return rec.get("text") or rec.get("content") or rec.get("body") or "" + +def first_sentences(s: str, max_chars: int = 500) -> str: + s = (s or "").strip() + if not s: + return "" + # cheap sentence-ish split + parts = re.split(r"(?<=[\.\!\?])\s+", s) + out = [] + total = 0 + for p in parts: + if not p: + continue + out.append(p) + total += len(p) + 1 + if total >= max_chars: + break + joined = " ".join(out).strip() + return joined[:max_chars].rstrip() + +def chunk_text(txt: str, target_chars: int = 2500, overlap_chars: int = 200) -> Iterable[str]: + # paragraph-first greedy pack + paras = [p.strip() for p in (txt or "").split("\n\n") if p.strip()] + if not paras: + if txt.strip(): + yield txt.strip() + return + buf, size = [], 0 + for p in paras: + if size + len(p) + 2 > target_chars and buf: + chunk = "\n\n".join(buf) + yield chunk + if overlap_chars > 0 and len(chunk) > overlap_chars: + tail = chunk[-overlap_chars:] + buf, size = [tail], len(tail) + else: + buf, size = [], 0 + buf.append(p) + size += len(p) + 2 + if buf: + yield "\n\n".join(buf) + +def norm_f32(mat: np.ndarray) -> np.ndarray: + mat = np.asarray(mat, dtype="float32") + norms = np.linalg.norm(mat, axis=1, keepdims=True) + norms[norms == 0] = 1.0 + return mat / norms + +# ----------------------------- +# Embedding +# ----------------------------- +def embed_many(ollama_url: str, model: str, texts: List[str], *, concurrency: int = 4, timeout: int = 120, on_progress=None) -> List[np.ndarray]: + def _embed_one(t: str) -> np.ndarray: + r = requests.post(f"{ollama_url.rstrip('/')}/api/embeddings", json={"model": model, "prompt": t}, timeout=timeout) + r.raise_for_status() + data = r.json() + vec = data.get("embedding") or (data.get("embeddings") or [None])[0] + if vec is None: + raise RuntimeError("No 'embedding' in response") + return np.array(vec, dtype="float32") + + out: List[Optional[np.ndarray]] = [None] * len(texts) + with ThreadPoolExecutor(max_workers=max(1, concurrency)) as ex: + futures = {ex.submit(_embed_one, t): i for i, t in enumerate(texts)} + + progress_bar = None + if on_progress is None and 'tqdm' in globals() and tqdm is not None: + progress_bar = tqdm(as_completed(futures), total=len(futures), desc="embed") + + iterator = progress_bar if progress_bar else as_completed(futures) + + count = 0 + for fut in iterator: + i = futures[fut] + out[i] = fut.result() + count += 1 + if on_progress: + on_progress("embed", count / len(texts), f"Embedding {count}/{len(texts)}") + + # type: ignore + return out # List[np.ndarray] + +# ----------------------------- +# Meta helpers +# ----------------------------- +def derive_doc_id_from_any(any_id: Optional[str], parent_id: Optional[str]) -> str: + """Prefer parent_id if present (file-level), else base of 'id' before '#...'.""" + if parent_id: + return str(parent_id) + if not any_id: + return "" + return any_id.split("#", 1)[0] + +def kind_from_rec(rec: Dict[str, Any]) -> str: + rt = (rec.get("record_type") or "").lower() + mime = (rec.get("mime") or "").lower() + if rt == "image" or (mime.startswith("image/")): + return "image" + if rt == "av" or mime.startswith(("audio/", "video/")): + return "av" + if "html" in mime or rt in {"html-section"}: + return "html" + if "pdf" in mime or rt == "page": + return "pdf" + if rt == "code-summary" or mime.startswith("text/x-code"): + return "code" + return rt or "file" + +# ----------------------------- +# Shadow text synthesis (fallbacks) +# ----------------------------- +def synth_shadow_from_enhanced(rec: Dict[str, Any]) -> str: + """ + Build a compact shadow_text from enriched fields if present. + """ + parts: List[str] = [] + h = (rec.get("headline") or rec.get("title") or "").strip() + s = (rec.get("summary") or "").strip() + kws = rec.get("keywords") or [] + ents = rec.get("entities") or [] + qas = rec.get("qa") or [] + + if h: + parts.append(f"headline: {h}") + if s: + parts.append(f"summary: {s}") + if kws: + parts.append("keywords: " + ", ".join([str(k).strip() for k in kws if str(k).strip()])) + if ents: + uniq = {} + for e in ents: + if not isinstance(e, dict): + continue + name = (e.get("name") or "").strip() + typ = (e.get("type") or "OTHER").strip().upper() + if name and name.lower() not in uniq: + uniq[name.lower()] = (name, typ) + if uniq: + parts.append("entities: " + "; ".join(f"{n} [{t}]" for n, t in uniq.values())) + if qas: + qa_lines = [] + for qa in qas[:4]: + if not isinstance(qa, dict): + continue + q = (qa.get("q") or "").strip() + a = (qa.get("a") or "").strip() + if q and a: + qa_lines.append(f"Q: {q}\nA: {a}") + if qa_lines: + parts.append("qa:\n" + "\n".join(qa_lines)) + return "\n".join(parts).strip() + +def synth_shadow_from_raw(rec: Dict[str, Any]) -> str: + """ + Build a proxy shadow_text without any LLM: title + first sentences + light hints. + """ + title = (rec.get("title") or "").strip() + text = pick_text(rec) + kind = kind_from_rec(rec) + url = rec.get("url") or rec.get("source_path") or "" + head = f"headline: {title}" if title else "" + summary = first_sentences(text, 500) + parts = [] + if head: + parts.append(head) + if summary: + parts.append(f"summary: {summary}") + hints = [] + if kind: + hints.append(kind) + if rec.get("mime"): + hints.append(rec.get("mime").split(";")[0]) + if url: + hints.append(Path(url).name) + if hints: + parts.append("keywords: " + ", ".join(hints)) + return "\n".join(parts).strip() + +# ----------------------------- +# Builders +# ----------------------------- +def build_shadow_any( + shadow_jsonl: Optional[Path], + enhanced_jsonl: Optional[Path], + raw_jsonl: Optional[Path], + out_index: Path, + out_meta: Path, + *, + ollama: str, + model: str, + concurrency: int +) -> Tuple[int, int, int]: + """ + Build FAISS over shadow_text from best available source. + Priority: shadow_jsonl > enhanced_jsonl (synth) > raw_jsonl (synth). + Returns (n_input_records, n_indexed, dim) + """ + src_records: List[Dict[str, Any]] = [] + mode = "" + if shadow_jsonl and shadow_jsonl.exists(): + src_records = list(read_jsonl(shadow_jsonl)) + mode = "shadow" + elif enhanced_jsonl and enhanced_jsonl.exists(): + src_records = list(read_jsonl(enhanced_jsonl)) + mode = "enhanced->shadow" + elif raw_jsonl and raw_jsonl.exists(): + src_records = list(read_jsonl(raw_jsonl)) + mode = "raw->shadow" + else: + raise SystemExit("[ERR] No input for shadow index (need --shadow OR --enhanced OR --raw).") + + if not src_records: + raise SystemExit("[ERR] Empty input for shadow index.") + + texts: List[str] = [] + metas: List[Dict[str, Any]] = [] + for rec in src_records: + if mode == "shadow": + st = rec.get("shadow_text") or "" + elif mode == "enhanced->shadow": + st = synth_shadow_from_enhanced(rec) + else: + st = synth_shadow_from_raw(rec) + + if not st.strip(): + continue + + record_id = rec.get("id") or rec.get("record_id") or str(uuid.uuid4()) + doc_id = derive_doc_id_from_any(record_id, rec.get("parent_id")) + + meta = { + "id": None, # numeric FAISS id later + "record_id": record_id, + "doc_id": doc_id, + "title": rec.get("title"), + "url": rec.get("url") or rec.get("source_path"), + "record_type": rec.get("record_type"), + "mime": rec.get("mime"), + "lang": rec.get("lang"), + "kind": kind_from_rec(rec), + "shadow_text": st, + } + metas.append(meta) + texts.append(st) + + if not texts: + raise SystemExit("[ERR] no shadow_text to embed") + + vecs = embed_many(ollama, model, texts, concurrency=concurrency) + d = len(vecs[0]) + mat = norm_f32(np.vstack(vecs)) + + base = faiss.IndexFlatIP(d) + index = faiss.IndexIDMap2(base) + + out_meta.parent.mkdir(parents=True, exist_ok=True) + with open(out_meta, "w", encoding="utf-8") as mf: + buf_vecs, buf_ids = [], [] + next_id = 0 + for m, v in zip(metas, mat): + m["id"] = next_id + mf.write(json.dumps(m, ensure_ascii=False) + "\n") + buf_vecs.append(v) + buf_ids.append(next_id) + next_id += 1 + if len(buf_vecs) >= 512: + index.add_with_ids(np.vstack(buf_vecs), np.array(buf_ids, dtype="int64")) + buf_vecs, buf_ids = [], [] + if buf_vecs: + index.add_with_ids(np.vstack(buf_vecs), np.array(buf_ids, dtype="int64")) + + faiss.write_index(index, str(out_index)) + return (len(src_records), index.ntotal, d) + +def build_content_any( + enhanced_jsonl: Optional[Path], + raw_jsonl: Optional[Path], + out_index: Path, + out_meta: Path, + *, + ollama: str, + model: str, + target_chars: int, + overlap_chars: int, + concurrency: int +) -> Tuple[int, int, int]: + """ + Build FAISS over chunked 'text' from best available source. + Priority: enhanced_jsonl > raw_jsonl. + Returns (n_input_records, n_chunks, dim) + """ + src_records: List[Dict[str, Any]] = [] + mode = "" + if enhanced_jsonl and enhanced_jsonl.exists(): + src_records = list(read_jsonl(enhanced_jsonl)) + mode = "enhanced" + elif raw_jsonl and raw_jsonl.exists(): + src_records = list(read_jsonl(raw_jsonl)) + mode = "raw" + else: + raise SystemExit("[ERR] No input for content index (need --enhanced OR --raw).") + + metas: List[Dict[str, Any]] = [] + texts: List[str] = [] + for rec in src_records: + base_text = pick_text(rec) + if not base_text.strip(): + continue + record_id = rec.get("id") or rec.get("record_id") or str(uuid.uuid4()) + doc_id = derive_doc_id_from_any(record_id, rec.get("parent_id")) + title = rec.get("title") + url = rec.get("url") or rec.get("source_path") + + chunks = list(chunk_text(base_text, target_chars, overlap_chars)) + if not chunks: + continue + for ci, chunk in enumerate(chunks): + meta = { + "id": None, # numeric FAISS id later + "doc_id": doc_id, + "record_id": record_id, + "chunk_no": ci, + "title": title, + "url": url, + "text": chunk, + "record_type": rec.get("record_type"), + "mime": rec.get("mime"), + "lang": rec.get("lang"), + } + metas.append(meta) + texts.append(chunk) + + if not texts: + raise SystemExit("[ERR] no content chunks to embed") + + vecs = embed_many(ollama, model, texts, concurrency=concurrency) + d = len(vecs[0]) + mat = norm_f32(np.vstack(vecs)) + + base = faiss.IndexFlatIP(d) + index = faiss.IndexIDMap2(base) + + out_meta.parent.mkdir(parents=True, exist_ok=True) + with open(out_meta, "w", encoding="utf-8") as mf: + buf_vecs, buf_ids = [], [] + next_id = 0 + for m, v in zip(metas, mat): + m["id"] = next_id + mf.write(json.dumps(m, ensure_ascii=False) + "\n") + buf_vecs.append(v) + buf_ids.append(next_id) + next_id += 1 + if len(buf_vecs) >= 512: + index.add_with_ids(np.vstack(buf_vecs), np.array(buf_ids, dtype="int64")) + buf_vecs, buf_ids = [], [] + if buf_vecs: + index.add_with_ids(np.vstack(buf_vecs), np.array(buf_ids, dtype="int64")) + + faiss.write_index(index, str(out_index)) + return (len(src_records), index.ntotal, d) + +# ----------------------------- +# CLI +# ----------------------------- +def run_index(raw: Path|None, enhanced: Path|None, shadow: Path|None, out_dir: Path, *, + on_progress=None, **opts) -> dict: + + args = argparse.Namespace( + raw=raw, + enhanced=enhanced, + shadow=shadow, + out_dir=out_dir, + embed_model=opts.get("embed_model", "dengcao/Qwen3-Embedding-0.6B:F16"), + ollama=opts.get("ollama", "http://localhost:11434"), + target_chars=opts.get("target_chars", 2500), + overlap_chars=opts.get("overlap_chars", 200), + concurrency=opts.get("concurrency", 6), + no_shadow=opts.get("no_shadow", False), + no_content=opts.get("no_content", False), + ) + + ensure_dir(out_dir) + + shadow_index_path = out_dir / "shadow.index.faiss" + shadow_meta_path = out_dir / "shadow.meta.jsonl" + content_index_path = out_dir / "content.index.faiss" + content_meta_path = out_dir / "content.meta.jsonl" + + results = {} + built_any = False + + if not args.no_shadow: + if on_progress: on_progress("shadow", 0.1, "Building shadow index...") + s_tot, s_ix, s_dim = build_shadow_any( + args.shadow, args.enhanced, args.raw, + shadow_index_path, shadow_meta_path, + ollama=args.ollama, model=args.embed_model, concurrency=args.concurrency + ) + results["shadow"] = {"records": s_tot, "indexed": s_ix, "dim": s_dim} + if on_progress: on_progress("shadow", 0.5, "Shadow index complete.") + built_any = True + + if not args.no_content: + if on_progress: on_progress("content", 0.6, "Building content index...") + c_tot, c_ix, c_dim = build_content_any( + args.enhanced, args.raw, + content_index_path, content_meta_path, + ollama=args.ollama, model=args.embed_model, + target_chars=args.target_chars, overlap_chars=args.overlap_chars, + concurrency=args.concurrency + ) + results["content"] = {"records": c_tot, "chunks": c_ix, "dim": c_dim} + if on_progress: on_progress("content", 0.9, "Content index complete.") + built_any = True + + if not built_any: + return {"status": "warning", "message": "Nothing built."} + + if on_progress: on_progress("done", 1.0, "Indexing complete.") + return {"status": "ok", "results": results} + +def main(): + ap = argparse.ArgumentParser(description="Build FAISS indexes (shadow + content) for hybrid RAG with or without enrichment.") + ap.add_argument("--raw", help="Raw corpus JSONL (from 01_corpus_builder.py)") + ap.add_argument("--enhanced", help="Enhanced corpus JSONL (from 02_corpus_enricher.py)") + ap.add_argument("--shadow", help="Shadow corpus JSONL (from 02_corpus_enricher.py)") + ap.add_argument("--out-dir", default="indexes", help="Output directory for indexes + metadata") + ap.add_argument("--embed-model", default="dengcao/Qwen3-Embedding-0.6B:F16", help="Ollama embedding model") + ap.add_argument("--ollama", default="http://localhost:11434", help="Ollama base URL") + ap.add_argument("--target-chars", type=int, default=2500, help="Chunk size for content index") + ap.add_argument("--overlap-chars", type=int, default=200, help="Overlap size for content index") + ap.add_argument("--concurrency", type=int, default=6, help="Parallel HTTP workers for embeddings") + ap.add_argument("--no-shadow", action="store_true", help="Do not build shadow index") + ap.add_argument("--no-content", action="store_true", help="Do not build content index") + args = ap.parse_args() + + run_index( + Path(args.raw) if args.raw else None, + Path(args.enhanced) if args.enhanced else None, + Path(args.shadow) if args.shadow else None, + Path(args.out_dir), + on_progress=lambda p, pct, d: print(f"[{p}] {pct*100:.1f}%: {d}"), + **vars(args) + ) + +if __name__ == "__main__": + main() diff --git a/backend/rag/unified_rag.py b/backend/rag/unified_rag.py new file mode 100644 index 0000000..0c6030a --- /dev/null +++ b/backend/rag/unified_rag.py @@ -0,0 +1,687 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +04_unified_rag.py + +Hybrid retrieval + (optional) rerank + (optional) answer generation. + +Now supports: +- HYBRID: shadow+content indexes (best quality) +- SINGLE-INDEX: + * legacy pair (--index/--store) ← back-compat + * content-only pair (--content-index/--content-store) + * shadow-only pair (--shadow-index/--shadow-store) + +If you skipped enrichment: +- Build only content + proxy shadow with 03_index_builder.py (raw → content; raw/enhanced→proxy shadow) +- Query with: + * HYBRID: provide both pairs + * SINGLE-INDEX: provide only one pair (content OR shadow) + +""" +from __future__ import annotations + +import argparse, json, os, sys, subprocess, math +from pathlib import Path +from typing import List, Dict, Tuple, Optional + +import faiss +import numpy as np +import requests +import threading +from typing import Callable + +# ----------------------------- +# Utilities +# ----------------------------- +def norm_f32(mat: np.ndarray) -> np.ndarray: + mat = np.asarray(mat, dtype="float32") + norms = np.linalg.norm(mat, axis=1, keepdims=True) + norms[norms == 0] = 1.0 + return mat / norms + +def zscore(x: List[float]) -> List[float]: + if not x: + return [] + mu = float(np.mean(x)) + sd = float(np.std(x)) + if sd == 0.0: + return [0.0 for _ in x] + return [(v - mu) / sd for v in x] + +def sanitize(s: Optional[str]) -> str: + if not s: + return "" + import re + s = re.sub(r"<\s*think\s*>.*?<\s*/\s*think\s*>", "", s, flags=re.S|re.I) + s = re.sub(r"^\s*```(?:\w+)?\s*|\s*```\s*$", "", s, flags=re.M) + s = re.sub(r"[ \t]+", " ", s) + s = re.sub(r"\n{3,}", "\n\n", s) + return s.strip() + +def pick_any_text(rec: Dict) -> str: + """Use 'text' if present else 'shadow_text' for rerank/answer/pretty.""" + return rec.get("text") or rec.get("shadow_text") or rec.get("content") or rec.get("body") or "" + +def embed_query(ollama_url: str, model: str, text: str, timeout_s: int = 60) -> np.ndarray: + r = requests.post( + f"{ollama_url.rstrip('/')}/api/embeddings", + json={"model": model, "prompt": text}, + timeout=timeout_s, + ) + r.raise_for_status() + data = r.json() + vec = data.get("embedding") or (data.get("embeddings") or [None])[0] + if vec is None: + raise RuntimeError("Ollama /api/embeddings returned no vector.") + return np.array(vec, dtype="float32") + +def load_meta(store_path: str) -> Dict[int, Dict]: + id2meta: Dict[int, Dict] = {} + with open(store_path, "r", encoding="utf-8") as f: + for line in f: + line = line.strip() + if not line: + continue + rec = json.loads(line) + id2meta[int(rec["id"])] = rec + return id2meta + +def truncate_text(s: Optional[str], limit: int) -> str: + if not s: + return "" + return s if len(s) <= limit else s[:limit] + +def derive_doc_id(rec: Dict) -> str: + # Prefer explicit doc_id if provided by meta builder + did = rec.get("doc_id") + if did: + return did + rid = rec.get("record_id") or rec.get("id") or "" + return rid.split("#", 1)[0] + +# ----------------------------- +# Rerank (subprocess worker) +# ----------------------------- +def sentence_transformers_available() -> bool: + try: + import importlib.util as _ilu + spec = _ilu.find_spec("sentence_transformers") + return spec is not None + except Exception: + return False + +def rerank_subprocess( + query: str, + docs: List[str], + *, + worker_path: Path, + model: str, + device: str, + dtype: str, + batch: int, + maxlen: int, +) -> Optional[List[Tuple[int, float]]]: + """ + Call this same script with --mode rerank-worker via a clean Python subprocess. + Returns: list of (local_index, score) sorted desc, or None on failure. + """ + payload = {"query": query, "docs": docs} + cmd = [ + sys.executable, + str(worker_path), + "--mode", "rerank-worker", + "--rerank-model", model, + "--rerank-device", device, + "--rerank-dtype", dtype, + "--rerank-batch", str(batch), + "--rerank-maxlen", str(maxlen), + "--stdio" + ] + env = os.environ.copy() + env.setdefault("PYTORCH_ENABLE_MPS_FALLBACK", "1") + env.setdefault("TOKENIZERS_PARALLELISM", "false") + env.setdefault("KMP_DUPLICATE_LIB_OK", "TRUE") + + try: + proc = subprocess.run( + cmd, + input=json.dumps(payload).encode("utf-8"), + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + check=False, + env=env, + ) + except Exception as e: + sys.stderr.write(f"[rerank] failed to launch worker: {e}\n") + return None + + if proc.returncode != 0: + sys.stderr.write(proc.stderr.decode("utf-8", errors="ignore") + "\n") + return None + + try: + data = json.loads(proc.stdout.decode("utf-8")) + results = data.get("results") or [] + pairs = [(int(r["index"]), float(r["score"])) for r in results] + pairs.sort(key=lambda x: x[1], reverse=True) + return pairs + except Exception as e: + sys.stderr.write(f"[rerank] parse error: {e}\n") + return None + +# ----------------------------- +# Simple diversity (per-source cap) +# ----------------------------- +def apply_per_source_cap(ordered: List[Dict], per_source_limit: int) -> List[Dict]: + if per_source_limit <= 0: + return ordered + counts = {} + out = [] + for rec in ordered: + key = rec.get("url") or rec.get("doc_id") or rec.get("title") or str(rec.get("id")) + c = counts.get(key, 0) + if c < per_source_limit: + out.append(rec) + counts[key] = c + 1 + return out + +# ----------------------------- +# Generation +# ----------------------------- +def generate( + ollama_url: str, + model: str, + prompt: str, + system: Optional[str] = None, + temperature: float = 0.2, + timeout_s: int = 180, + on_stream=None, +) -> str: + payload = {"model": model, "prompt": prompt, "options": {"temperature": temperature}} + if system: + payload["system"] = system + r = requests.post(f"{ollama_url.rstrip('/')}/api/generate", json=payload, timeout=timeout_s, stream=True) + r.raise_for_status() + out = [] + for chunk in r.iter_lines(decode_unicode=True): + if not chunk: + continue + try: + obj = json.loads(chunk) + delta = obj.get("response", "") + out.append(delta) + if on_stream: + on_stream({"delta": delta}) + if obj.get("done"): + break + except Exception: + pass + return sanitize("".join(out)) + +# ----------------------------- +# Search helpers +# ----------------------------- +def faiss_search(index: faiss.Index, qvec: np.ndarray, k: int) -> Tuple[List[int], List[float]]: + sims, ids = index.search(qvec, k) + ids = [int(i) for i in ids[0] if i != -1] + sims = [float(s) for s in sims[0][: len(ids)]] + return ids, sims + +# ----------------------------- +# Output / answer +# ----------------------------- +def output_or_answer(final: List[Dict], args, on_stream=None): + if not args.answer: + # Return top-k results without generating an answer + return { + "done": True, + "sources": [ + { + "doc_id": rec.get("doc_id"), + "title": rec.get("title"), + "url": rec.get("url"), + "record_type": rec.get("record_type"), + "mime": rec.get("mime"), + "lang": rec.get("lang"), + "snippet": pick_any_text(rec), + "scores": { + "final": float(rec.get("_score", 0.0)), + "shadow": float(rec.get("_shadow")) if rec.get("_shadow") is not None else None, + "content": float(rec.get("_ann", 0.0)), + "rerank": float(rec.get("_rerank")) if rec.get("_rerank") is not None else None, + }, + } + for rec in final + ], + } + + # Build prompt for answering + context_blocks, sources = [], [] + for i, rec in enumerate(final, start=1): + text = pick_any_text(rec) + title = rec.get("title") or "(untitled)" + url = rec.get("url") or title + sources.append(f"[{i}] {url}") + context_blocks.append(f"[{i}] {title}\n{text}") + + system = ( + "You are a careful researcher. Answer ONLY from the provided sources. " + "Cite like [1], [2] in-line. If the answer is not in the sources, say you can't find it. " + "Do not include private chain-of-thought or tags." + ) + prompt = ( + f"Question: {args.query}\n\n" + "Use the sources below. If not answerable from them, say so clearly.\n\n" + "Sources:\n" + "\n\n".join(context_blocks) + "\n\n----\n\n" + "Remember: only use these sources. Provide a concise answer with citations.\n\n" + f"And again. The question you need to answer is: {args.query}" + ) + + full_answer = generate(args.ollama, args.gen_model, prompt, system=system, temperature=args.temperature, on_stream=on_stream) + + final_result = { + "done": True, + "answer": full_answer, + "sources": [ + { + "doc_id": rec.get("doc_id"), + "title": rec.get("title"), + "url": rec.get("url"), + } + for rec in final + ], + } + if on_stream: + on_stream(final_result) + + return final_result + +# ----------------------------- +# Main CLI (search / answer) +# ----------------------------- +def run_cli(args): + # Determine mode + hybrid_ok = all([args.shadow_index, args.shadow_store, args.content_index, args.content_store]) + + single_pair: Optional[Tuple[str, str]] = None + single_kind = None + if not hybrid_ok: + # Prefer legacy if provided + if args.index and args.store: + single_pair = (args.index, args.store) + single_kind = "legacy" + elif args.content_index and args.content_store: + single_pair = (args.content_index, args.content_store) + single_kind = "content" + elif args.shadow_index and args.shadow_store: + single_pair = (args.shadow_index, args.shadow_store) + single_kind = "shadow" + + # Embed query + q = norm_f32(embed_query(args.ollama, args.embed_model, args.query).reshape(1, -1)) + + if single_pair: + # SINGLE-INDEX path (works for legacy/content-only/shadow-only) + index = faiss.read_index(single_pair[0]) + id2meta = load_meta(single_pair[1]) + + ids, sims = faiss_search(index, q, min(args.candidates, index.ntotal)) + candidates = [] + for pos, _id in enumerate(ids): + base = id2meta[_id] + rec = dict(base) + rec["_ann"] = sims[pos] + candidates.append(rec) + + # Optional rerank + reranked_scores = None + if not args.no_rerank and sentence_transformers_available(): + docs = [truncate_text(pick_any_text(c), args.max_doc_chars) for c in candidates] + pairs = rerank_subprocess( + args.query, docs, + worker_path=Path(__file__), + model=args.rerank_model, + device=args.rerank_device, + dtype=args.rerank_dtype, + batch=args.rerank_batch, + maxlen=args.rerank_maxlen, + ) + if pairs is not None: + reranked_scores = [None] * len(candidates) + for local_idx, score in pairs: + if 0 <= local_idx < len(reranked_scores): + reranked_scores[local_idx] = float(score) + min_score = min([s for s in reranked_scores if s is not None], default=0.0) + reranked_scores = [s if s is not None else min_score for s in reranked_scores] + else: + print("[info] rerank disabled (worker failed).", file=sys.stderr) + + # Blend + if reranked_scores is not None: + z_ann = zscore([c["_ann"] for c in candidates]) + z_rr = zscore(reranked_scores) + alpha = float(args.blend) + final_scores = [(1 - alpha) * a + alpha * r for a, r in zip(z_ann, z_rr)] + for rec, fs, rr in zip(candidates, final_scores, reranked_scores): + rec["_score"] = float(fs) + rec["_rerank"] = float(rr) + candidates.sort(key=lambda r: r["_score"], reverse=True) + else: + for rec in candidates: + rec["_score"] = rec["_ann"] + + final = candidates[: max(1, min(args.k, len(candidates)))] + return output_or_answer(final, args) + + # HYBRID path + shadow_index = faiss.read_index(args.shadow_index) + shadow_meta = load_meta(args.shadow_store) + content_index = faiss.read_index(args.content_index) + content_meta = load_meta(args.content_store) + + # Stage A: Shadow search → doc shortlist + sid_list, s_sim = faiss_search(shadow_index, q, min(args.shadow_candidates, shadow_index.ntotal)) + s_hits = [{"id": sid, "sim": sim, **shadow_meta[sid]} for sid, sim in zip(sid_list, s_sim)] + + # optional shadow weighting by kind + kw = {} + for kv in args.shadow_kind_weights.split(","): + kv = kv.strip() + if not kv: + continue + if ":" in kv: + k, v = kv.split(":", 1) + try: + kw[k.strip().lower()] = float(v) + except Exception: + pass + if kw: + for h in s_hits: + w = kw.get((h.get("kind") or "").lower(), 1.0) + h["sim"] *= float(w) + + # group to doc_id + doc_scores: Dict[str, float] = {} + for h in s_hits: + did = derive_doc_id(h) + doc_scores[did] = max(doc_scores.get(did, 0.0), float(h["sim"])) # max over shadow signals + + # Stage B: Content search (global) + cid_list, c_sim = faiss_search(content_index, q, min(args.content_candidates, content_index.ntotal)) + c_hits = [{"id": cid, "sim": sim, **content_meta[cid]} for cid, sim in zip(cid_list, c_sim)] + + # Stage C: filter to doc shortlist + ordered_docs = sorted(doc_scores.items(), key=lambda kv: kv[1], reverse=True)[: args.doc_top] + if not ordered_docs: + # Fallback: derive docs from top content hits + tmp_docs = [] + seen = set() + for h in c_hits: + did = derive_doc_id(h) + if did not in seen: + seen.add(did) + tmp_docs.append((did, float(h['sim']))) + if len(tmp_docs) >= args.doc_top: + break + ordered_docs = tmp_docs + shortlist = set([d for d, _ in ordered_docs]) + + # keep content hits belonging to shortlist (fallback to global if empty) + content_for_docs = [h for h in c_hits if derive_doc_id(h) in shortlist] or c_hits + + # per-doc cap + per_doc = max(1, args.per_doc_chunks) + doc_buckets: Dict[str, List[Dict]] = {} + for h in content_for_docs: + did = derive_doc_id(h) + doc_buckets.setdefault(did, []).append(h) + for did, arr in doc_buckets.items(): + arr.sort(key=lambda r: r["sim"], reverse=True) + doc_buckets[did] = arr[:per_doc] + + # flatten, compute final score as blend of shadow(doc) + content(chunk) + out_candidates: List[Dict] = [] + for did, doc_sim in ordered_docs: + for ch in doc_buckets.get(did, []): + final = dict(ch) + final["_shadow"] = float(doc_sim) + final["_ann"] = float(ch["sim"]) + alpha = float(args.doc_blend) # weight of shadow + beta = float(args.chunk_blend) # weight of chunk ann + final["_score"] = alpha * float(doc_sim) + beta * float(ch["sim"]) + out_candidates.append(final) + + if not out_candidates: + print("No retrieval results.", file=sys.stderr) + if args.answer: + print("No results from retrieval; cannot answer.") + return + + out_candidates.sort(key=lambda r: r["_score"], reverse=True) + + # Optional rerank of the first pool + reranked_scores = None + if not args.no_rerank and sentence_transformers_available(): + pool = out_candidates[: args.candidates] + docs = [truncate_text(pick_any_text(c), args.max_doc_chars) for c in pool] + pairs = rerank_subprocess( + args.query, docs, + worker_path=Path(__file__), + model=args.rerank_model, + device=args.rerank_device, + dtype=args.rerank_dtype, + batch=args.rerank_batch, + maxlen=args.rerank_maxlen, + ) + if pairs is not None: + reranked_scores = [None] * len(pool) + for local_idx, score in pairs: + if 0 <= local_idx < len(pool): + reranked_scores[local_idx] = float(score) + min_score = min([s for s in reranked_scores if s is not None], default=0.0) + reranked_scores = [s if s is not None else min_score for s in reranked_scores] + z_ann = zscore([c["_score"] for c in pool]) + z_rr = zscore(reranked_scores) + alpha = float(args.blend) + blended = [(1 - alpha) * a + alpha * r for a, r in zip(z_ann, z_rr)] + for rec, fs, rr in zip(pool, blended, reranked_scores): + rec["_score"] = float(fs) + rec["_rerank"] = float(rr) + out_candidates[: len(pool)] = sorted(pool, key=lambda r: r["_score"], reverse=True) + else: + print("[info] rerank disabled (worker failed).", file=sys.stderr) + + # per-source cap and top-k + ordered = apply_per_source_cap(out_candidates, args.per_source_limit) + final = ordered[: max(1, min(args.k, len(ordered)))] + return output_or_answer(final, args) + +# ----------------------------- +# Rerank worker mode +# ----------------------------- +def run_rerank_worker(args): + """ + Reads JSON from stdin: {"query": str, "docs": [str, ...]} + Writes JSON to stdout: {"results": [{"index": int, "score": float}, ...]} + """ + try: + import torch + from sentence_transformers import CrossEncoder + except Exception as e: + # Gracefully tell parent we failed by returning empty results + out = {"results": []} + json.dump(out, sys.stdout) + sys.stdout.flush() + print(f"[worker] sentence_transformers unavailable: {e}", file=sys.stderr) + return + + try: + torch.set_num_threads(1) + except Exception: + pass + + device = args.rerank_device + if device == "auto": + device = "mps" if torch.backends.mps.is_available() else "cpu" + + if args.rerank_dtype == "auto": + dtype = torch.float16 if device == "mps" else torch.float32 + else: + dtype = torch.float16 if args.rerank_dtype == "float16" else torch.float32 + + model = CrossEncoder( + args.rerank_model, + device=device, + max_length=args.rerank_maxlen, + automodel_args={"torch_dtype": dtype}, + ) + + data = json.load(sys.stdin) + query = data["query"] + docs = data["docs"] + + pairs = [(query, d) for d in docs] + scores = model.predict( + pairs, + batch_size=args.rerank_batch, + convert_to_numpy=True, + show_progress_bar=False, + ).tolist() + + ordered = sorted(enumerate(scores), key=lambda x: x[1], reverse=True) + out = {"results": [{"index": int(i), "score": float(s)} for i, s in ordered]} + json.dump(out, sys.stdout) + sys.stdout.flush() + +# ----------------------------- +# Argparse +# ----------------------------- +def build_parser(): + ap = argparse.ArgumentParser(allow_abbrev=False) + ap.add_argument("--mode", default="cli", choices=["cli", "rerank-worker"]) + + # Legacy single-index I/O (kept for back-compat) + ap.add_argument("--index", help="Single FAISS index (legacy)") + ap.add_argument("--store", help="Single metadata JSONL (legacy)") + ap.add_argument("--candidates", type=int, default=200, help="ANN neighbors to fetch (legacy or rerank pool).") + + # Hybrid I/O + ap.add_argument("--shadow-index", help="FAISS index over shadow_text") + ap.add_argument("--shadow-store", help="Metadata JSONL for shadow index") + ap.add_argument("--content-index", help="FAISS index over content chunks") + ap.add_argument("--content-store", help="Metadata JSONL for content index") + + ap.add_argument("--query", required=False) + ap.add_argument("--ollama", default="http://localhost:11434") + ap.add_argument("--embed-model", default="dengcao/Qwen3-Embedding-0.6B:F16") + + # Shadow/content retrieval sizes (hybrid) + ap.add_argument("--shadow-candidates", type=int, default=400, help="Shadow ANN pool size") + ap.add_argument("--content-candidates", type=int, default=600, help="Content ANN pool size") + ap.add_argument("--doc-top", type=int, default=40, help="Top-N documents from shadow shortlist") + ap.add_argument("--per-doc-chunks", type=int, default=2, help="Max chunks per doc from content pool") + ap.add_argument("--doc-blend", type=float, default=0.6, help="Weight for shadow score in final blend [0..1]") + ap.add_argument("--chunk-blend", type=float, default=0.4, help="Weight for content-ANN score in final blend [0..1]") + ap.add_argument("--shadow-kind-weights", default="image:1.2,code:1.1", help="Comma list 'kind:weight' to bias doc ranking") + + # Rerank knobs + ap.add_argument("--no-rerank", action="store_true", help="Disable reranking.") + ap.add_argument("--blend", type=float, default=0.75, help="Blend weight for reranker in normalized score [0..1].") + ap.add_argument("--rerank-model", default="cross-encoder/ms-marco-MiniLM-L-6-v2") + ap.add_argument("--rerank-device", default="auto", choices=["auto", "mps", "cpu"]) + ap.add_argument("--rerank-dtype", default="auto", choices=["auto", "float16", "float32"]) + ap.add_argument("--rerank-batch", type=int, default=64) + ap.add_argument("--rerank-maxlen", type=int, default=256) + ap.add_argument("--stdio", action="store_true", help=argparse.SUPPRESS) # worker-only flag + + # Output / answer + ap.add_argument("--json", action="store_true", help="Print search results as JSON.") + ap.add_argument("--pretty", action="store_true", help="Pretty-print search results.") + ap.add_argument("--show-scores", action="store_true", help="Show ANN/rerank scores in pretty output.") + ap.add_argument("--answer", action="store_true", help="Generate an answer with an LLM using top-k contexts.") + ap.add_argument("--gen-model", default="qwen3:4b", + help="Any chat-capable model in Ollama (e.g., 'qwen2.5:7b-instruct', 'llama3.1:8b-instruct').") + ap.add_argument("--temperature", type=float, default=0.2) + ap.add_argument("--k", type=int, default=10, help="Number of final results to return/use.") + + # Misc + ap.add_argument("--max-doc-chars", type=int, default=4000, help="Truncate each candidate before rerank.") + ap.add_argument("--per-source-limit", type=int, default=3, help="Max results per source (url/doc) to diversify.") + + return ap + +def run_query(shadow_index: Path, shadow_store: Path, + content_index: Path, content_store: Path, + query: str, *, answer: bool = False, + on_stream: Optional[Callable[[Dict], None]] = None, **opts) -> dict: + + # Ensure all paths are strings for argparse.Namespace + _shadow_index = str(shadow_index) if shadow_index else None + _shadow_store = str(shadow_store) if shadow_store else None + _content_index = str(content_index) if content_index else None + _content_store = str(content_store) if content_store else None + + args = argparse.Namespace( + shadow_index=_shadow_index, + shadow_store=_shadow_store, + content_index=_content_index, + content_store=_content_store, + query=query, + answer=answer, + ollama=opts.get("ollama", "http://localhost:11434"), + embed_model=opts.get("embed_model", "dengcao/Qwen3-Embedding-0.6B:F16"), + shadow_candidates=opts.get("shadow_candidates", 400), + content_candidates=opts.get("content_candidates", 600), + doc_top=opts.get("doc_top", 40), + per_doc_chunks=opts.get("per_doc_chunks", 2), + doc_blend=opts.get("doc_blend", 0.6), + chunk_blend=opts.get("chunk_blend", 0.4), + shadow_kind_weights=opts.get("shadow_kind_weights", "image:1.2,code:1.1"), + no_rerank=opts.get("no_rerank", True), # Reranker OFF by default + blend=opts.get("blend", 0.75), + rerank_model=opts.get("rerank_model", "cross-encoder/ms-marco-MiniLM-L-6-v2"), + rerank_device=opts.get("rerank_device", "auto"), + rerank_dtype=opts.get("rerank_dtype", "auto"), + rerank_batch=opts.get("rerank_batch", 64), + rerank_maxlen=opts.get("rerank_maxlen", 256), + gen_model=opts.get("gen_model", "qwen3:4b"), + temperature=opts.get("temperature", 0.2), + k=opts.get("k", 10), + max_doc_chars=opts.get("max_doc_chars", 4000), + per_source_limit=opts.get("per_source_limit", 3), + json=True # Force JSON-like output dict + ) + + return run_cli(args, on_stream=on_stream) + +def main(): + ap = build_parser() + args = ap.parse_args() + + if args.mode == "rerank-worker": + return run_rerank_worker(args) + + if not args.query: + ap.error("--query is required in cli mode") + + hybrid_ok = all([args.shadow_index, args.shadow_store, args.content_index, args.content_store]) + if not hybrid_ok: + ap.error("For CLI use, all four index/store paths are required for hybrid retrieval.") + + result = run_query( + shadow_index=Path(args.shadow_index), + shadow_store=Path(args.shadow_store), + content_index=Path(args.content_index), + content_store=Path(args.content_store), + query=args.query, + answer=args.answer, + on_stream=lambda d: print(json.dumps(d, ensure_ascii=False), flush=True) if args.answer else None, + **vars(args) + ) + + if not args.answer: + print(json.dumps(result, ensure_ascii=False)) + +if __name__ == "__main__": + main() diff --git a/backend/requirements.txt b/backend/requirements.txt index 0d395cc..9109252 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -3,9 +3,24 @@ fastapi==0.111.0 uvicorn[standard]==0.30.1 SQLAlchemy==2.0.32 httpx==0.27.0 -pydantic==2.7.4 +pydantic==2.11.7 +requests>=2.32.0 # Web search enrichment dependencies beautifulsoup4==4.12.3 httpx[http2]>=0.27.0 -numpy \ No newline at end of file +numpy + +# Local RAG pipeline dependencies +faiss-cpu>=1.8.0 +PyMuPDF>=1.24.0 +ebooklib>=0.18 +chardet>=5.2.0 +Pillow>=10.0.0 +langid>=1.1.6 +langdetect>=1.0.9 + +# Optional but recommended for richer ingestion / reranking: +# openai-whisper +# opencv-python-headless +# sentence-transformers diff --git a/backend/schemas.py b/backend/schemas.py index 0cd9a88..b8c81ff 100644 --- a/backend/schemas.py +++ b/backend/schemas.py @@ -1,4 +1,4 @@ -from pydantic import BaseModel +from pydantic import BaseModel, ConfigDict from typing import List, Optional from datetime import datetime @@ -38,8 +38,7 @@ class ChatSession(BaseModel): name: str created_at: datetime - class Config: - orm_mode = True + model_config = ConfigDict(from_attributes=True) class SessionsResponse(BaseModel): sessions: List[ChatSession] @@ -67,3 +66,4 @@ class WebSearchRequest(BaseModel): class WebSearchResponse(BaseModel): enriched_prompt: str sources: List[str] = [] + context_block: str = "" diff --git a/dist/assets/index-Cc0DLWqA.css b/dist/assets/index-Cc0DLWqA.css new file mode 100644 index 0000000..0502232 --- /dev/null +++ b/dist/assets/index-Cc0DLWqA.css @@ -0,0 +1 @@ +:root{--bg: #0b1020;--panel: #141b34;--text: #e6e8ef;--muted: #9aa3b2;--accent: #6ea8fe;--border: #24304f}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Inter,Helvetica,Arial}.no-select{-webkit-user-select:none;user-select:none;cursor:ew-resize!important}.app{display:grid;grid-template-columns:var(--sidebar-width, 230px) 1fr;grid-template-rows:1fr;height:100%}.sidebar{display:grid;grid-template-rows:auto 1fr auto;background:var(--panel);border-right:1px solid var(--border);height:100vh;overflow:hidden;position:relative}.sidebar span{font-size:14px}.resizer{width:13px;cursor:ew-resize;background:transparent;position:absolute;top:0;right:-5px;bottom:0;z-index:1}.sidebar-header{display:flex;justify-content:space-around;padding:0;background:var(--panel)}.sidebar-tab{flex-grow:1;text-align:center;padding:11px 16px;cursor:pointer;border-bottom:3px solid transparent;transition:background-color .2s ease}.sidebar-tab:hover{background-color:var(--hover-bg)}.sidebar-tab.active{background-color:var(--active-bg);border-bottom-color:var(--accent)}.sidebar-tab.active:hover{background-color:var(--active-bg)}.sidebar-content{flex-grow:1;overflow-y:auto}.db-list,.settings-list{padding:8px 0}.empty-list-message{padding:10px 16px;color:var(--muted);text-align:center}.settings-item{padding:10px 16px;cursor:pointer;border-left:3px solid transparent}.settings-item.active{background:var(--active-bg);border-left-color:var(--accent)}.settings-item.active:hover{background:var(--active-bg)}.settings-item:hover{background:var(--hover-bg)}.settings-footer-placeholder{height:40px;padding:12px 16px;border-top:1px solid var(--border);background:var(--panel)}.new-db-button{width:100%;padding:10px;background:var(--accent);border-color:var(--accent);color:var(--bg);font-weight:700}.new-db-button:hover{opacity:.9}.chat-list{overflow-y:auto;padding:8px 0}.chat-item{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;cursor:pointer;border-left:3px solid transparent;overflow:hidden;white-space:nowrap}.chat-item span{flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-item-buttons{display:flex;gap:8px;align-items:center}.unread-dot{width:8px;height:8px;background-color:red;border-radius:50%;margin-right:4px}.icon-button{background:none;border:none;color:var(--muted);cursor:pointer;font-size:16px;padding:0;display:flex;align-items:center;justify-content:center}.icon-button svg{width:16px;height:16px;stroke:var(--muted);transition:stroke .2s ease}.icon-button:hover svg{stroke:var(--accent)}.icon-button:hover{color:var(--accent)}.chat-item.active{background:var(--active-bg);border-left-color:var(--accent)}.chat-item:hover{background:var(--hover-bg)}.chat-item.active:hover{background:var(--active-bg)}.rename-input{background:var(--input-bg);border:1px solid var(--accent);color:var(--text);border-radius:10px;padding:8px 12px;outline:none;width:100%}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--muted);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}.sidebar-footer{padding:12px 16px;background:var(--panel)}.new-db-form,.library-inline-form{display:grid;gap:8px}.new-db-actions{display:flex;gap:8px}.form-error{color:#ff9aa8;font-size:12px}.new-chat-button{width:100%;padding:10px;background:var(--accent);border-color:var(--accent);color:var(--bg);font-weight:700}.new-chat-button:hover{opacity:.9}.main-content{position:relative;display:grid;grid-template-rows:auto 1fr auto;height:100vh;overflow:hidden}.header{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--panel)}.select,.input,.button{background:var(--input-bg);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:8px 12px;outline:none}.footer-content-wrapper .button{flex-shrink:0}.select{min-width:220px}.button{cursor:pointer}.button:hover{border-color:var(--accent)}.button.ghost{background:transparent}.button.danger{border-color:#8f3d49;color:#ffb8c2}.button.danger:hover{border-color:#d86a79}.header-subtle{color:var(--muted);font-size:13px}.chat{display:grid;grid-template-columns:1fr minmax(auto,1000px) 1fr;align-content:start;gap:8px;padding:16px;overflow:auto}.chat>*{grid-column:2}.msg{padding:12px 14px;border-radius:12px;line-height:1.5;white-space:wrap;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Inter,Helvetica,Arial}textarea.input{resize:none;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Inter,Helvetica,Arial;overflow-y:auto;flex-grow:1}.msg.user{background:var(--user-msg-bg);margin-left:auto;max-width:80%;border:1px solid var(--border);margin-right:5px;margin-bottom:15px;transition:border-color .15s ease,box-shadow .15s ease}.msg.user.editing{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}.msg.user .msg-content--user{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;position:relative}.msg.user .user-msg-expand{margin-top:8px;padding:0;background:transparent;border:none;color:var(--muted);font-weight:700;cursor:pointer;align-self:flex-start;margin-left:0;text-align:left}.msg.assistant{background:transparent;border:none;max-width:none;animation:fadeIn .3s ease-in-out;margin-bottom:30px}.user-message-wrapper{display:flex;flex-direction:column;align-items:flex-end;position:relative}.assistant-message-wrapper{display:flex;flex-direction:column;align-items:flex-start;position:relative}.message-options-bar{display:flex;gap:2px;padding:0;border-radius:8px;background-color:transparent;border:none;position:absolute;bottom:-30px}.user-options{right:-10px;bottom:-40px}.assistant-options{left:0}.message-options-bar .icon-button{padding:4px;border-radius:4px;border:none}.message-options-bar .icon-button:hover{background-color:var(--hover-bg)}.new-msg-tip{position:absolute;right:24px;bottom:84px;padding:8px 12px;border-radius:9999px;background:var(--accent);color:var(--bg);border:none;cursor:pointer;font-weight:600;box-shadow:0 6px 20px #00000059}.new-msg-tip:hover{opacity:.9}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.footer{display:flex;justify-content:center;padding:12px 16px;border-top:1px solid var(--border);background:var(--panel);align-items:flex-end}.footer-content-wrapper{display:flex;gap:8px;width:100%;max-width:1000px;align-items:flex-end}.settings-content-panel{padding:20px;overflow-y:auto;height:100%}.settings-category{margin-bottom:30px}.settings-category h2{color:var(--accent);margin-bottom:15px;font-size:1.3em}.setting-section{margin-bottom:20px;padding:15px;border-bottom:1px solid var(--border);background-color:var(--panel);border-radius:8px}.setting-section:last-child{border-bottom:none;margin-bottom:0}.setting-section h3{color:var(--text);margin-top:0;margin-bottom:10px;font-size:1.1em}.settings-content-panel .input,.settings-content-panel .select{width:100%;max-width:400px;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background-color:var(--input-bg);color:var(--text);font-size:1em}.settings-content-panel .select{min-width:unset}.setting-control-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.range-input{width:min(360px,100%);accent-color:var(--accent)}.setting-value{min-width:48px;color:var(--text);font-variant-numeric:tabular-nums}.setting-description{margin:10px 0 0;color:var(--muted);line-height:1.5}.msg h1,.msg h2,.msg h3,.msg h4{margin:10px 0;color:var(--accent)}.msg blockquote{border-left:4px solid var(--accent);padding-left:15px;margin-left:0;color:var(--muted)}.msg ul{padding-left:20px}.msg li{margin-bottom:5px}.msg code{background-color:var(--input-bg);padding:2px 4px;border-radius:4px;font-family:monospace}.msg pre{background-color:var(--input-bg);padding:10px;border-radius:8px;overflow-x:auto;white-space:pre-wrap}.msg pre code{padding:0;background-color:transparent}.msg a{color:var(--text);display:inline-flex;align-items:center;gap:4px;position:relative;text-decoration:underline dotted;text-underline-offset:3px}.msg a .tooltip{visibility:hidden;width:auto;background-color:var(--panel);color:var(--text);text-align:center;border-radius:6px;padding:5px 10px;position:absolute;z-index:1;bottom:110%;left:50%;transform:translate(-50%);opacity:0;transition:opacity .3s;white-space:nowrap}.msg a:hover .tooltip{visibility:visible;opacity:1}.msg a:hover{color:var(--accent)}.msg a svg{width:14px;height:14px;stroke:var(--text);transition:stroke .2s ease}.msg a:hover svg{stroke:var(--accent)}.msg hr{border:none;border-top:1px solid var(--border);margin:20px 0}:root{--outline-w: 1px;--grid-w: 1px;--grid: var(--border)}.msg table.nice{border-collapse:separate;border-spacing:0;width:100%;margin:1rem 0;border-radius:12px;box-shadow:0 0 0 var(--outline-w) var(--border)}.msg table.nice th,.msg table.nice td{border:var(--grid-w) solid var(--grid);border-width:.5px;padding:.6rem .75rem;vertical-align:top}.msg table.nice thead tr:first-child th{border-top:0}.msg table.nice tr th:first-child,.msg table.nice tr td:first-child{border-left:0}.msg table.nice tr th:last-child,.msg table.nice tr td:last-child{border-right:0}.msg table.nice tbody tr:last-child td{border-bottom:0}.msg table.nice thead tr:first-child th{background-color:var(--panel)}.msg table.nice thead tr:first-child th:first-child{border-top-left-radius:12px;background-clip:padding-box}.msg table.nice thead tr:first-child th:last-child{border-top-right-radius:12px;background-clip:padding-box}.msg table.nice tbody tr:last-child td:first-child{border-bottom-left-radius:12px;background-clip:padding-box}.msg table.nice tbody tr:last-child td:last-child{border-bottom-right-radius:12px;background-clip:padding-box}.toggle-switch{position:relative;display:inline-block;width:50px;height:28px}.toggle-switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--input-bg);border:1px solid var(--border);transition:.4s;border-radius:28px}.slider:before{position:absolute;content:"";height:20px;width:20px;left:3px;bottom:3px;background-color:var(--muted);transition:.4s;border-radius:50%}input:checked+.slider{background-color:var(--accent)}input:checked+.slider:before{transform:translate(22px);background-color:var(--panel)}.spinner{border:3px solid rgba(255,255,255,.3);border-radius:50%;border-top:3px solid var(--accent);width:20px;height:20px;animation:spin 1s linear infinite;margin:0 auto}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.codeblock{border:1px solid var(--grid, #e5e7eb);border-radius:12px;overflow:hidden;margin:1rem 0}.codeblock__header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background:var(--panel);border-bottom:1px solid var(--grid);font-weight:600;font-size:.875rem}.codeblock__lang{opacity:.9}.codeblock__copy{display:inline-flex;align-items:center;gap:.25rem;border:0;background:transparent;padding:.25rem;border-radius:8px;cursor:pointer}.codeblock__copy:hover{background:#0000000f}.codeblock__copy.copied .icon-copy{transform:scale(1.05)}.codeblock__pre{margin:0;padding:.75rem;overflow:auto}.codeblock__code{display:block;white-space:pre}.assistant-message{display:block}.assistant-thoughts{margin-bottom:8px}.think-toggle{background:var(--active-bg);color:var(--muted);border:1px solid var(--border);border-radius:10px;font-size:12px;padding:4px 8px;cursor:pointer}.think-toggle:hover{color:var(--text);border-color:var(--accent)}.think-toggle-icon{display:inline-block;margin-right:6px}.think-content{margin-top:8px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--panel);color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:13px;line-height:1.5;overflow-x:auto;white-space:pre-wrap}.edit-message-input{display:block;width:100%;height:100%;background:transparent;border:0;padding:0;margin:0;color:inherit;font:inherit;line-height:inherit;letter-spacing:inherit;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;resize:none;overflow:hidden;outline:none}.edit-message-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}.user-edit-shadow{visibility:hidden;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.edit-message-input.edit-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background:transparent;border:0;padding:0;margin:0;color:inherit;font:inherit;line-height:inherit;letter-spacing:inherit;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;resize:none;overflow:hidden;outline:none;box-shadow:none}.websearch-toggle{background:transparent;border:0;padding:0;margin:0 .1rem 0 0;line-height:0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative;top:-7.5px;color:var(--muted);box-shadow:none;outline:none;-webkit-tap-highlight-color:transparent}.websearch-toggle svg{width:20px;height:20px;pointer-events:none}.websearch-toggle.active{color:var(--accent)}.websearch-toggle:focus,.websearch-toggle:focus-visible{outline:none;box-shadow:none}.msg-sources{margin-top:8px;font-size:12px;color:var(--muted)}.msg-sources a{color:var(--accent);text-decoration:none;margin-right:8px}.msg-sources a:hover{text-decoration:underline}.msg-sources.chips{display:flex;flex-wrap:wrap;margin:.5rem 0}.msg-sources.chips .chip{display:inline-flex;align-items:center;padding:.25rem .6rem;border-radius:9999px;border:1px solid var(--border);text-decoration:none;font-size:.85rem;line-height:1;white-space:nowrap;margin-top:.5rem}.db-active-badge{margin-left:8px;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 20%,transparent);color:var(--accent);font-size:11px}.placeholder-view,.library-panel{overflow:auto;padding:20px}.placeholder-view h1{margin-top:0}.library-toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.library-states{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.state-pill{padding:6px 10px;border-radius:999px;border:1px solid var(--border);color:var(--muted);font-size:13px}.state-pill.ready{color:var(--text);border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.library-chat-note,.job-card{margin-bottom:12px;padding:12px 14px;border-radius:12px;background:color-mix(in srgb,var(--panel) 82%,black);border:1px solid var(--border)}.library-inline-form{margin-bottom:14px;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:color-mix(in srgb,var(--panel) 88%,black)}.danger-zone{border-color:#8f3d49}.library-files h2{margin:18px 0 12px;font-size:16px}.library-file-list{display:grid;gap:10px}.library-file-row{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:color-mix(in srgb,var(--panel) 88%,black)}.library-file-meta{min-width:0}.library-file-name{font-weight:600;margin-bottom:4px}.library-file-path,.muted-copy{color:var(--muted);font-size:13px;word-break:break-word}.library-file-actions{display:flex;gap:8px;flex-shrink:0} diff --git a/dist/assets/index-DKAz6gtp.js b/dist/assets/index-DKAz6gtp.js new file mode 100644 index 0000000..a17bbd0 --- /dev/null +++ b/dist/assets/index-DKAz6gtp.js @@ -0,0 +1,69 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))r(l);new MutationObserver(l=>{for(const o of l)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(l){const o={};return l.integrity&&(o.integrity=l.integrity),l.referrerPolicy&&(o.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?o.credentials="include":l.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(l){if(l.ep)return;l.ep=!0;const o=n(l);fetch(l.href,o)}})();function op(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var tc={exports:{}},ho={},nc={exports:{}},Q={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Yr=Symbol.for("react.element"),ip=Symbol.for("react.portal"),sp=Symbol.for("react.fragment"),ap=Symbol.for("react.strict_mode"),up=Symbol.for("react.profiler"),cp=Symbol.for("react.provider"),fp=Symbol.for("react.context"),dp=Symbol.for("react.forward_ref"),pp=Symbol.for("react.suspense"),hp=Symbol.for("react.memo"),mp=Symbol.for("react.lazy"),ja=Symbol.iterator;function gp(e){return e===null||typeof e!="object"?null:(e=ja&&e[ja]||e["@@iterator"],typeof e=="function"?e:null)}var rc={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},lc=Object.assign,oc={};function tr(e,t,n){this.props=e,this.context=t,this.refs=oc,this.updater=n||rc}tr.prototype.isReactComponent={};tr.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};tr.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function ic(){}ic.prototype=tr.prototype;function ms(e,t,n){this.props=e,this.context=t,this.refs=oc,this.updater=n||rc}var gs=ms.prototype=new ic;gs.constructor=ms;lc(gs,tr.prototype);gs.isPureReactComponent=!0;var Ta=Array.isArray,sc=Object.prototype.hasOwnProperty,vs={current:null},ac={key:!0,ref:!0,__self:!0,__source:!0};function uc(e,t,n){var r,l={},o=null,i=null;if(t!=null)for(r in t.ref!==void 0&&(i=t.ref),t.key!==void 0&&(o=""+t.key),t)sc.call(t,r)&&!ac.hasOwnProperty(r)&&(l[r]=t[r]);var a=arguments.length-2;if(a===1)l.children=n;else if(1>>1,R=$[te];if(0>>1;tel(Fe,U))Cel(Mt,Fe)?($[te]=Mt,$[Ce]=U,te=Ce):($[te]=Fe,$[fe]=U,te=fe);else if(Cel(Mt,U))$[te]=Mt,$[Ce]=U,te=Ce;else break e}}return A}function l($,A){var U=$.sortIndex-A.sortIndex;return U!==0?U:$.id-A.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var i=Date,a=i.now();e.unstable_now=function(){return i.now()-a}}var s=[],u=[],f=1,m=null,v=3,w=!1,S=!1,E=!1,N=typeof setTimeout=="function"?setTimeout:null,h=typeof clearTimeout=="function"?clearTimeout:null,c=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function d($){for(var A=n(u);A!==null;){if(A.callback===null)r(u);else if(A.startTime<=$)r(u),A.sortIndex=A.expirationTime,t(s,A);else break;A=n(u)}}function x($){if(E=!1,d($),!S)if(n(s)!==null)S=!0,gt(P);else{var A=n(u);A!==null&&$t(x,A.startTime-$)}}function P($,A){S=!1,E&&(E=!1,h(M),M=-1),w=!0;var U=v;try{for(d(A),m=n(s);m!==null&&(!(m.expirationTime>A)||$&&!pe());){var te=m.callback;if(typeof te=="function"){m.callback=null,v=m.priorityLevel;var R=te(m.expirationTime<=A);A=e.unstable_now(),typeof R=="function"?m.callback=R:m===n(s)&&r(s),d(A)}else r(s);m=n(s)}if(m!==null)var W=!0;else{var fe=n(u);fe!==null&&$t(x,fe.startTime-A),W=!1}return W}finally{m=null,v=U,w=!1}}var T=!1,j=null,M=-1,B=5,O=-1;function pe(){return!(e.unstable_now()-O$||125<$?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):B=0<$?Math.floor(1e3/$):5},e.unstable_getCurrentPriorityLevel=function(){return v},e.unstable_getFirstCallbackNode=function(){return n(s)},e.unstable_next=function($){switch(v){case 1:case 2:case 3:var A=3;break;default:A=v}var U=v;v=A;try{return $()}finally{v=U}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function($,A){switch($){case 1:case 2:case 3:case 4:case 5:break;default:$=3}var U=v;v=$;try{return A()}finally{v=U}},e.unstable_scheduleCallback=function($,A,U){var te=e.unstable_now();switch(typeof U=="object"&&U!==null?(U=U.delay,U=typeof U=="number"&&0te?($.sortIndex=U,t(u,$),n(s)===null&&$===n(u)&&(E?(h(M),M=-1):E=!0,$t(x,U-te))):($.sortIndex=R,t(s,$),S||w||(S=!0,gt(P))),$},e.unstable_shouldYield=pe,e.unstable_wrapCallback=function($){var A=v;return function(){var U=v;v=A;try{return $.apply(this,arguments)}finally{v=U}}}})(hc);pc.exports=hc;var Pp=pc.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Lp=g,Ke=Pp;function _(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),wi=Object.prototype.hasOwnProperty,Rp=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Ma={},za={};function jp(e){return wi.call(za,e)?!0:wi.call(Ma,e)?!1:Rp.test(e)?za[e]=!0:(Ma[e]=!0,!1)}function Tp(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function $p(e,t,n,r){if(t===null||typeof t>"u"||Tp(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Ie(e,t,n,r,l,o,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var Ee={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Ee[e]=new Ie(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Ee[t]=new Ie(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Ee[e]=new Ie(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Ee[e]=new Ie(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Ee[e]=new Ie(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Ee[e]=new Ie(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Ee[e]=new Ie(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Ee[e]=new Ie(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Ee[e]=new Ie(e,5,!1,e.toLowerCase(),null,!1,!1)});var ws=/[\-:]([a-z])/g;function Ss(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(ws,Ss);Ee[t]=new Ie(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(ws,Ss);Ee[t]=new Ie(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(ws,Ss);Ee[t]=new Ie(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Ee[e]=new Ie(e,1,!1,e.toLowerCase(),null,!1,!1)});Ee.xlinkHref=new Ie("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Ee[e]=new Ie(e,1,!1,e.toLowerCase(),null,!0,!0)});function xs(e,t,n,r){var l=Ee.hasOwnProperty(t)?Ee[t]:null;(l!==null?l.type!==0:r||!(2a||l[i]!==o[a]){var s=` +`+l[i].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=i&&0<=a);break}}}finally{Ko=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?mr(e):""}function Mp(e){switch(e.tag){case 5:return mr(e.type);case 16:return mr("Lazy");case 13:return mr("Suspense");case 19:return mr("SuspenseList");case 0:case 2:case 15:return e=Yo(e.type,!1),e;case 11:return e=Yo(e.type.render,!1),e;case 1:return e=Yo(e.type,!0),e;default:return""}}function Ei(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Tn:return"Fragment";case jn:return"Portal";case Si:return"Profiler";case ks:return"StrictMode";case xi:return"Suspense";case ki:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case vc:return(e.displayName||"Context")+".Consumer";case gc:return(e._context.displayName||"Context")+".Provider";case Es:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Cs:return t=e.displayName||null,t!==null?t:Ei(e.type)||"Memo";case Ot:t=e._payload,e=e._init;try{return Ei(e(t))}catch{}}return null}function zp(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Ei(t);case 8:return t===ks?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Xt(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function wc(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Ip(e){var t=wc(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(i){r=""+i,o.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function fl(e){e._valueTracker||(e._valueTracker=Ip(e))}function Sc(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=wc(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Bl(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Ci(e,t){var n=t.checked;return ue({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Oa(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Xt(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function xc(e,t){t=t.checked,t!=null&&xs(e,"checked",t,!1)}function Ni(e,t){xc(e,t);var n=Xt(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?_i(e,t.type,n):t.hasOwnProperty("defaultValue")&&_i(e,t.type,Xt(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Fa(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function _i(e,t,n){(t!=="number"||Bl(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var gr=Array.isArray;function Bn(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=dl.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Rr(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var wr={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Op=["Webkit","ms","Moz","O"];Object.keys(wr).forEach(function(e){Op.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),wr[t]=wr[e]})});function Nc(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||wr.hasOwnProperty(e)&&wr[e]?(""+t).trim():t+"px"}function _c(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=Nc(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var Fp=ue({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ri(e,t){if(t){if(Fp[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(_(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(_(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(_(61))}if(t.style!=null&&typeof t.style!="object")throw Error(_(62))}}function ji(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Ti=null;function Ns(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var $i=null,Wn=null,Vn=null;function Ua(e){if(e=Xr(e)){if(typeof $i!="function")throw Error(_(280));var t=e.stateNode;t&&(t=wo(t),$i(e.stateNode,e.type,t))}}function Pc(e){Wn?Vn?Vn.push(e):Vn=[e]:Wn=e}function Lc(){if(Wn){var e=Wn,t=Vn;if(Vn=Wn=null,Ua(e),t)for(e=0;e>>=0,e===0?32:31-(Jp(e)/Gp|0)|0}var pl=64,hl=4194304;function vr(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Kl(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,o=e.pingedLanes,i=n&268435455;if(i!==0){var a=i&~l;a!==0?r=vr(a):(o&=i,o!==0&&(r=vr(o)))}else i=n&~l,i!==0?r=vr(i):o!==0&&(r=vr(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&l)&&(l=r&-r,o=t&-t,l>=o||l===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Jr(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-it(t),e[t]=n}function qp(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=xr),Ga=" ",Xa=!1;function Jc(e,t){switch(e){case"keyup":return Ph.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Gc(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var $n=!1;function Rh(e,t){switch(e){case"compositionend":return Gc(t);case"keypress":return t.which!==32?null:(Xa=!0,Ga);case"textInput":return e=t.data,e===Ga&&Xa?null:e;default:return null}}function jh(e,t){if($n)return e==="compositionend"||!Ms&&Jc(e,t)?(e=Kc(),jl=js=Ut=null,$n=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=eu(n)}}function qc(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?qc(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function ef(){for(var e=window,t=Bl();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Bl(e.document)}return t}function zs(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Ah(e){var t=ef(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&qc(n.ownerDocument.documentElement,n)){if(r!==null&&zs(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,o=Math.min(r.start,l);r=r.end===void 0?o:Math.min(r.end,l),!e.extend&&o>r&&(l=r,r=o,o=l),l=tu(n,o);var i=tu(n,r);l&&i&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,Mn=null,Di=null,Er=null,Ai=!1;function nu(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ai||Mn==null||Mn!==Bl(r)||(r=Mn,"selectionStart"in r&&zs(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Er&&Ir(Er,r)||(Er=r,r=Gl(Di,"onSelect"),0On||(e.current=Qi[On],Qi[On]=null,On--)}function ne(e,t){On++,Qi[On]=e.current,e.current=t}var bt={},Re=qt(bt),Ue=qt(!1),pn=bt;function Gn(e,t){var n=e.type.contextTypes;if(!n)return bt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},o;for(o in n)l[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function He(e){return e=e.childContextTypes,e!=null}function bl(){le(Ue),le(Re)}function uu(e,t,n){if(Re.current!==bt)throw Error(_(168));ne(Re,t),ne(Ue,n)}function cf(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(_(108,zp(e)||"Unknown",l));return ue({},n,r)}function Zl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||bt,pn=Re.current,ne(Re,e),ne(Ue,Ue.current),!0}function cu(e,t,n){var r=e.stateNode;if(!r)throw Error(_(169));n?(e=cf(e,t,pn),r.__reactInternalMemoizedMergedChildContext=e,le(Ue),le(Re),ne(Re,e)):le(Ue),ne(Ue,n)}var St=null,So=!1,si=!1;function ff(e){St===null?St=[e]:St.push(e)}function bh(e){So=!0,ff(e)}function en(){if(!si&&St!==null){si=!0;var e=0,t=q;try{var n=St;for(q=1;e>=i,l-=i,xt=1<<32-it(t)+l|n<M?(B=j,j=null):B=j.sibling;var O=v(h,j,d[M],x);if(O===null){j===null&&(j=B);break}e&&j&&O.alternate===null&&t(h,j),c=o(O,c,M),T===null?P=O:T.sibling=O,T=O,j=B}if(M===d.length)return n(h,j),oe&&on(h,M),P;if(j===null){for(;MM?(B=j,j=null):B=j.sibling;var pe=v(h,j,O.value,x);if(pe===null){j===null&&(j=B);break}e&&j&&pe.alternate===null&&t(h,j),c=o(pe,c,M),T===null?P=pe:T.sibling=pe,T=pe,j=B}if(O.done)return n(h,j),oe&&on(h,M),P;if(j===null){for(;!O.done;M++,O=d.next())O=m(h,O.value,x),O!==null&&(c=o(O,c,M),T===null?P=O:T.sibling=O,T=O);return oe&&on(h,M),P}for(j=r(h,j);!O.done;M++,O=d.next())O=w(j,h,M,O.value,x),O!==null&&(e&&O.alternate!==null&&j.delete(O.key===null?M:O.key),c=o(O,c,M),T===null?P=O:T.sibling=O,T=O);return e&&j.forEach(function(ve){return t(h,ve)}),oe&&on(h,M),P}function N(h,c,d,x){if(typeof d=="object"&&d!==null&&d.type===Tn&&d.key===null&&(d=d.props.children),typeof d=="object"&&d!==null){switch(d.$$typeof){case cl:e:{for(var P=d.key,T=c;T!==null;){if(T.key===P){if(P=d.type,P===Tn){if(T.tag===7){n(h,T.sibling),c=l(T,d.props.children),c.return=h,h=c;break e}}else if(T.elementType===P||typeof P=="object"&&P!==null&&P.$$typeof===Ot&&pu(P)===T.type){n(h,T.sibling),c=l(T,d.props),c.ref=fr(h,T,d),c.return=h,h=c;break e}n(h,T);break}else t(h,T);T=T.sibling}d.type===Tn?(c=dn(d.props.children,h.mode,x,d.key),c.return=h,h=c):(x=Dl(d.type,d.key,d.props,null,h.mode,x),x.ref=fr(h,c,d),x.return=h,h=x)}return i(h);case jn:e:{for(T=d.key;c!==null;){if(c.key===T)if(c.tag===4&&c.stateNode.containerInfo===d.containerInfo&&c.stateNode.implementation===d.implementation){n(h,c.sibling),c=l(c,d.children||[]),c.return=h,h=c;break e}else{n(h,c);break}else t(h,c);c=c.sibling}c=mi(d,h.mode,x),c.return=h,h=c}return i(h);case Ot:return T=d._init,N(h,c,T(d._payload),x)}if(gr(d))return S(h,c,d,x);if(ir(d))return E(h,c,d,x);xl(h,d)}return typeof d=="string"&&d!==""||typeof d=="number"?(d=""+d,c!==null&&c.tag===6?(n(h,c.sibling),c=l(c,d),c.return=h,h=c):(n(h,c),c=hi(d,h.mode,x),c.return=h,h=c),i(h)):n(h,c)}return N}var bn=mf(!0),gf=mf(!1),to=qt(null),no=null,An=null,Ds=null;function As(){Ds=An=no=null}function Us(e){var t=to.current;le(to),e._currentValue=t}function Ji(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Kn(e,t){no=e,Ds=An=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Ae=!0),e.firstContext=null)}function et(e){var t=e._currentValue;if(Ds!==e)if(e={context:e,memoizedValue:t,next:null},An===null){if(no===null)throw Error(_(308));An=e,no.dependencies={lanes:0,firstContext:e}}else An=An.next=e;return t}var un=null;function Hs(e){un===null?un=[e]:un.push(e)}function vf(e,t,n,r){var l=t.interleaved;return l===null?(n.next=n,Hs(t)):(n.next=l.next,l.next=n),t.interleaved=n,Pt(e,r)}function Pt(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var Ft=!1;function Bs(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function yf(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Et(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Kt(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,X&2){var l=r.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),r.pending=t,Pt(e,n)}return l=r.interleaved,l===null?(t.next=t,Hs(r)):(t.next=l.next,l.next=t),r.interleaved=t,Pt(e,n)}function $l(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ps(e,n)}}function hu(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var l=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};o===null?l=o=i:o=o.next=i,n=n.next}while(n!==null);o===null?l=o=t:o=o.next=t}else l=o=t;n={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:o,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function ro(e,t,n,r){var l=e.updateQueue;Ft=!1;var o=l.firstBaseUpdate,i=l.lastBaseUpdate,a=l.shared.pending;if(a!==null){l.shared.pending=null;var s=a,u=s.next;s.next=null,i===null?o=u:i.next=u,i=s;var f=e.alternate;f!==null&&(f=f.updateQueue,a=f.lastBaseUpdate,a!==i&&(a===null?f.firstBaseUpdate=u:a.next=u,f.lastBaseUpdate=s))}if(o!==null){var m=l.baseState;i=0,f=u=s=null,a=o;do{var v=a.lane,w=a.eventTime;if((r&v)===v){f!==null&&(f=f.next={eventTime:w,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var S=e,E=a;switch(v=t,w=n,E.tag){case 1:if(S=E.payload,typeof S=="function"){m=S.call(w,m,v);break e}m=S;break e;case 3:S.flags=S.flags&-65537|128;case 0:if(S=E.payload,v=typeof S=="function"?S.call(w,m,v):S,v==null)break e;m=ue({},m,v);break e;case 2:Ft=!0}}a.callback!==null&&a.lane!==0&&(e.flags|=64,v=l.effects,v===null?l.effects=[a]:v.push(a))}else w={eventTime:w,lane:v,tag:a.tag,payload:a.payload,callback:a.callback,next:null},f===null?(u=f=w,s=m):f=f.next=w,i|=v;if(a=a.next,a===null){if(a=l.shared.pending,a===null)break;v=a,a=v.next,v.next=null,l.lastBaseUpdate=v,l.shared.pending=null}}while(!0);if(f===null&&(s=m),l.baseState=s,l.firstBaseUpdate=u,l.lastBaseUpdate=f,t=l.shared.interleaved,t!==null){l=t;do i|=l.lane,l=l.next;while(l!==t)}else o===null&&(l.shared.lanes=0);gn|=i,e.lanes=i,e.memoizedState=m}}function mu(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=ui.transition;ui.transition={};try{e(!1),t()}finally{q=n,ui.transition=r}}function If(){return tt().memoizedState}function tm(e,t,n){var r=Jt(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Of(e))Ff(t,n);else if(n=vf(e,t,n,r),n!==null){var l=Me();st(n,e,r,l),Df(n,t,r)}}function nm(e,t,n){var r=Jt(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Of(e))Ff(t,l);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var i=t.lastRenderedState,a=o(i,n);if(l.hasEagerState=!0,l.eagerState=a,at(a,i)){var s=t.interleaved;s===null?(l.next=l,Hs(t)):(l.next=s.next,s.next=l),t.interleaved=l;return}}catch{}finally{}n=vf(e,t,l,r),n!==null&&(l=Me(),st(n,e,r,l),Df(n,t,r))}}function Of(e){var t=e.alternate;return e===se||t!==null&&t===se}function Ff(e,t){Cr=oo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Df(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ps(e,n)}}var io={readContext:et,useCallback:_e,useContext:_e,useEffect:_e,useImperativeHandle:_e,useInsertionEffect:_e,useLayoutEffect:_e,useMemo:_e,useReducer:_e,useRef:_e,useState:_e,useDebugValue:_e,useDeferredValue:_e,useTransition:_e,useMutableSource:_e,useSyncExternalStore:_e,useId:_e,unstable_isNewReconciler:!1},rm={readContext:et,useCallback:function(e,t){return ft().memoizedState=[e,t===void 0?null:t],e},useContext:et,useEffect:vu,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,zl(4194308,4,jf.bind(null,t,e),n)},useLayoutEffect:function(e,t){return zl(4194308,4,e,t)},useInsertionEffect:function(e,t){return zl(4,2,e,t)},useMemo:function(e,t){var n=ft();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=ft();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=tm.bind(null,se,e),[r.memoizedState,e]},useRef:function(e){var t=ft();return e={current:e},t.memoizedState=e},useState:gu,useDebugValue:Xs,useDeferredValue:function(e){return ft().memoizedState=e},useTransition:function(){var e=gu(!1),t=e[0];return e=em.bind(null,e[1]),ft().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=se,l=ft();if(oe){if(n===void 0)throw Error(_(407));n=n()}else{if(n=t(),we===null)throw Error(_(349));mn&30||kf(r,t,n)}l.memoizedState=n;var o={value:n,getSnapshot:t};return l.queue=o,vu(Cf.bind(null,r,o,e),[e]),r.flags|=2048,Wr(9,Ef.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=ft(),t=we.identifierPrefix;if(oe){var n=kt,r=xt;n=(r&~(1<<32-it(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Hr++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[dt]=t,e[Dr]=r,Jf(e,t,!1,!1),t.stateNode=e;e:{switch(i=ji(n,r),n){case"dialog":re("cancel",e),re("close",e),l=r;break;case"iframe":case"object":case"embed":re("load",e),l=r;break;case"video":case"audio":for(l=0;ler&&(t.flags|=128,r=!0,dr(o,!1),t.lanes=4194304)}else{if(!r)if(e=lo(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),dr(o,!0),o.tail===null&&o.tailMode==="hidden"&&!i.alternate&&!oe)return Pe(t),null}else 2*de()-o.renderingStartTime>er&&n!==1073741824&&(t.flags|=128,r=!0,dr(o,!1),t.lanes=4194304);o.isBackwards?(i.sibling=t.child,t.child=i):(n=o.last,n!==null?n.sibling=i:t.child=i,o.last=i)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=de(),t.sibling=null,n=ie.current,ne(ie,r?n&1|2:n&1),t):(Pe(t),null);case 22:case 23:return na(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?We&1073741824&&(Pe(t),t.subtreeFlags&6&&(t.flags|=8192)):Pe(t),null;case 24:return null;case 25:return null}throw Error(_(156,t.tag))}function fm(e,t){switch(Os(t),t.tag){case 1:return He(t.type)&&bl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Zn(),le(Ue),le(Re),Qs(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Vs(t),null;case 13:if(le(ie),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(_(340));Xn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return le(ie),null;case 4:return Zn(),null;case 10:return Us(t.type._context),null;case 22:case 23:return na(),null;case 24:return null;default:return null}}var El=!1,Le=!1,dm=typeof WeakSet=="function"?WeakSet:Set,z=null;function Un(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){ce(e,t,r)}else n.current=null}function rs(e,t,n){try{n()}catch(r){ce(e,t,r)}}var Lu=!1;function pm(e,t){if(Ui=Yl,e=ef(),zs(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var i=0,a=-1,s=-1,u=0,f=0,m=e,v=null;t:for(;;){for(var w;m!==n||l!==0&&m.nodeType!==3||(a=i+l),m!==o||r!==0&&m.nodeType!==3||(s=i+r),m.nodeType===3&&(i+=m.nodeValue.length),(w=m.firstChild)!==null;)v=m,m=w;for(;;){if(m===e)break t;if(v===n&&++u===l&&(a=i),v===o&&++f===r&&(s=i),(w=m.nextSibling)!==null)break;m=v,v=m.parentNode}m=w}n=a===-1||s===-1?null:{start:a,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(Hi={focusedElem:e,selectionRange:n},Yl=!1,z=t;z!==null;)if(t=z,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,z=e;else for(;z!==null;){t=z;try{var S=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(S!==null){var E=S.memoizedProps,N=S.memoizedState,h=t.stateNode,c=h.getSnapshotBeforeUpdate(t.elementType===t.type?E:rt(t.type,E),N);h.__reactInternalSnapshotBeforeUpdate=c}break;case 3:var d=t.stateNode.containerInfo;d.nodeType===1?d.textContent="":d.nodeType===9&&d.documentElement&&d.removeChild(d.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(_(163))}}catch(x){ce(t,t.return,x)}if(e=t.sibling,e!==null){e.return=t.return,z=e;break}z=t.return}return S=Lu,Lu=!1,S}function Nr(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var o=l.destroy;l.destroy=void 0,o!==void 0&&rs(t,n,o)}l=l.next}while(l!==r)}}function Eo(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function ls(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function bf(e){var t=e.alternate;t!==null&&(e.alternate=null,bf(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[dt],delete t[Dr],delete t[Vi],delete t[Gh],delete t[Xh])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Zf(e){return e.tag===5||e.tag===3||e.tag===4}function Ru(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Zf(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function os(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Xl));else if(r!==4&&(e=e.child,e!==null))for(os(e,t,n),e=e.sibling;e!==null;)os(e,t,n),e=e.sibling}function is(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(is(e,t,n),e=e.sibling;e!==null;)is(e,t,n),e=e.sibling}var xe=null,lt=!1;function It(e,t,n){for(n=n.child;n!==null;)qf(e,t,n),n=n.sibling}function qf(e,t,n){if(pt&&typeof pt.onCommitFiberUnmount=="function")try{pt.onCommitFiberUnmount(mo,n)}catch{}switch(n.tag){case 5:Le||Un(n,t);case 6:var r=xe,l=lt;xe=null,It(e,t,n),xe=r,lt=l,xe!==null&&(lt?(e=xe,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):xe.removeChild(n.stateNode));break;case 18:xe!==null&&(lt?(e=xe,n=n.stateNode,e.nodeType===8?ii(e.parentNode,n):e.nodeType===1&&ii(e,n),Mr(e)):ii(xe,n.stateNode));break;case 4:r=xe,l=lt,xe=n.stateNode.containerInfo,lt=!0,It(e,t,n),xe=r,lt=l;break;case 0:case 11:case 14:case 15:if(!Le&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var o=l,i=o.destroy;o=o.tag,i!==void 0&&(o&2||o&4)&&rs(n,t,i),l=l.next}while(l!==r)}It(e,t,n);break;case 1:if(!Le&&(Un(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(a){ce(n,t,a)}It(e,t,n);break;case 21:It(e,t,n);break;case 22:n.mode&1?(Le=(r=Le)||n.memoizedState!==null,It(e,t,n),Le=r):It(e,t,n);break;default:It(e,t,n)}}function ju(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new dm),t.forEach(function(r){var l=km.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function nt(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=i),r&=~o}if(r=l,r=de()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*mm(r/1960))-r,10e?16:e,Ht===null)var r=!1;else{if(e=Ht,Ht=null,uo=0,X&6)throw Error(_(331));var l=X;for(X|=4,z=e.current;z!==null;){var o=z,i=o.child;if(z.flags&16){var a=o.deletions;if(a!==null){for(var s=0;sde()-ea?fn(e,0):qs|=n),Be(e,t)}function sd(e,t){t===0&&(e.mode&1?(t=hl,hl<<=1,!(hl&130023424)&&(hl=4194304)):t=1);var n=Me();e=Pt(e,t),e!==null&&(Jr(e,t,n),Be(e,n))}function xm(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),sd(e,n)}function km(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(_(314))}r!==null&&r.delete(t),sd(e,n)}var ad;ad=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Ue.current)Ae=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Ae=!1,um(e,t,n);Ae=!!(e.flags&131072)}else Ae=!1,oe&&t.flags&1048576&&df(t,eo,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Il(e,t),e=t.pendingProps;var l=Gn(t,Re.current);Kn(t,n),l=Ys(null,t,r,e,l,n);var o=Js();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,He(r)?(o=!0,Zl(t)):o=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,Bs(t),l.updater=ko,t.stateNode=l,l._reactInternals=t,Xi(t,r,e,n),t=qi(null,t,r,!0,o,n)):(t.tag=0,oe&&o&&Is(t),$e(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Il(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=Cm(r),e=rt(r,e),l){case 0:t=Zi(null,t,r,e,n);break e;case 1:t=Nu(null,t,r,e,n);break e;case 11:t=Eu(null,t,r,e,n);break e;case 14:t=Cu(null,t,r,rt(r.type,e),n);break e}throw Error(_(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:rt(r,l),Zi(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:rt(r,l),Nu(e,t,r,l,n);case 3:e:{if(Qf(t),e===null)throw Error(_(387));r=t.pendingProps,o=t.memoizedState,l=o.element,yf(e,t),ro(t,r,null,n);var i=t.memoizedState;if(r=i.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){l=qn(Error(_(423)),t),t=_u(e,t,r,n,l);break e}else if(r!==l){l=qn(Error(_(424)),t),t=_u(e,t,r,n,l);break e}else for(Ve=Qt(t.stateNode.containerInfo.firstChild),Qe=t,oe=!0,ot=null,n=gf(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Xn(),r===l){t=Lt(e,t,n);break e}$e(e,t,r,n)}t=t.child}return t;case 5:return wf(t),e===null&&Yi(t),r=t.type,l=t.pendingProps,o=e!==null?e.memoizedProps:null,i=l.children,Bi(r,l)?i=null:o!==null&&Bi(r,o)&&(t.flags|=32),Vf(e,t),$e(e,t,i,n),t.child;case 6:return e===null&&Yi(t),null;case 13:return Kf(e,t,n);case 4:return Ws(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=bn(t,null,r,n):$e(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:rt(r,l),Eu(e,t,r,l,n);case 7:return $e(e,t,t.pendingProps,n),t.child;case 8:return $e(e,t,t.pendingProps.children,n),t.child;case 12:return $e(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,o=t.memoizedProps,i=l.value,ne(to,r._currentValue),r._currentValue=i,o!==null)if(at(o.value,i)){if(o.children===l.children&&!Ue.current){t=Lt(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var a=o.dependencies;if(a!==null){i=o.child;for(var s=a.firstContext;s!==null;){if(s.context===r){if(o.tag===1){s=Et(-1,n&-n),s.tag=2;var u=o.updateQueue;if(u!==null){u=u.shared;var f=u.pending;f===null?s.next=s:(s.next=f.next,f.next=s),u.pending=s}}o.lanes|=n,s=o.alternate,s!==null&&(s.lanes|=n),Ji(o.return,n,t),a.lanes|=n;break}s=s.next}}else if(o.tag===10)i=o.type===t.type?null:o.child;else if(o.tag===18){if(i=o.return,i===null)throw Error(_(341));i.lanes|=n,a=i.alternate,a!==null&&(a.lanes|=n),Ji(i,n,t),i=o.sibling}else i=o.child;if(i!==null)i.return=o;else for(i=o;i!==null;){if(i===t){i=null;break}if(o=i.sibling,o!==null){o.return=i.return,i=o;break}i=i.return}o=i}$e(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,Kn(t,n),l=et(l),r=r(l),t.flags|=1,$e(e,t,r,n),t.child;case 14:return r=t.type,l=rt(r,t.pendingProps),l=rt(r.type,l),Cu(e,t,r,l,n);case 15:return Bf(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:rt(r,l),Il(e,t),t.tag=1,He(r)?(e=!0,Zl(t)):e=!1,Kn(t,n),Af(t,r,l),Xi(t,r,l,n),qi(null,t,r,!0,e,n);case 19:return Yf(e,t,n);case 22:return Wf(e,t,n)}throw Error(_(156,t.tag))};function ud(e,t){return Ic(e,t)}function Em(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ze(e,t,n,r){return new Em(e,t,n,r)}function la(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Cm(e){if(typeof e=="function")return la(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Es)return 11;if(e===Cs)return 14}return 2}function Gt(e,t){var n=e.alternate;return n===null?(n=Ze(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Dl(e,t,n,r,l,o){var i=2;if(r=e,typeof e=="function")la(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case Tn:return dn(n.children,l,o,t);case ks:i=8,l|=8;break;case Si:return e=Ze(12,n,t,l|2),e.elementType=Si,e.lanes=o,e;case xi:return e=Ze(13,n,t,l),e.elementType=xi,e.lanes=o,e;case ki:return e=Ze(19,n,t,l),e.elementType=ki,e.lanes=o,e;case yc:return No(n,l,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case gc:i=10;break e;case vc:i=9;break e;case Es:i=11;break e;case Cs:i=14;break e;case Ot:i=16,r=null;break e}throw Error(_(130,e==null?e:typeof e,""))}return t=Ze(i,n,t,l),t.elementType=e,t.type=r,t.lanes=o,t}function dn(e,t,n,r){return e=Ze(7,e,r,t),e.lanes=n,e}function No(e,t,n,r){return e=Ze(22,e,r,t),e.elementType=yc,e.lanes=n,e.stateNode={isHidden:!1},e}function hi(e,t,n){return e=Ze(6,e,null,t),e.lanes=n,e}function mi(e,t,n){return t=Ze(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Nm(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Go(0),this.expirationTimes=Go(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Go(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function oa(e,t,n,r,l,o,i,a,s){return e=new Nm(e,t,n,a,s),t===1?(t=1,o===!0&&(t|=8)):t=0,o=Ze(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Bs(o),e}function _m(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(pd)}catch(e){console.error(e)}}pd(),dc.exports=Ye;var hd=dc.exports,md,Du=hd;md=Du.createRoot,Du.hydrateRoot;/** + * react-router v7.8.2 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */var Au="popstate";function Tm(e={}){function t(l,o){let{pathname:i="/",search:a="",hash:s=""}=Sn(l.location.hash.substring(1));return!i.startsWith("/")&&!i.startsWith(".")&&(i="/"+i),fs("",{pathname:i,search:a,hash:s},o.state&&o.state.usr||null,o.state&&o.state.key||"default")}function n(l,o){let i=l.document.querySelector("base"),a="";if(i&&i.getAttribute("href")){let s=l.location.href,u=s.indexOf("#");a=u===-1?s:s.slice(0,u)}return a+"#"+(typeof o=="string"?o:Qr(o))}function r(l,o){ut(l.pathname.charAt(0)==="/",`relative pathnames are not supported in hash history.push(${JSON.stringify(o)})`)}return Mm(t,n,r,e)}function ae(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function ut(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function $m(){return Math.random().toString(36).substring(2,10)}function Uu(e,t){return{usr:e.state,key:e.key,idx:t}}function fs(e,t,n=null,r){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?Sn(t):t,state:n,key:t&&t.key||r||$m()}}function Qr({pathname:e="/",search:t="",hash:n=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),n&&n!=="#"&&(e+=n.charAt(0)==="#"?n:"#"+n),e}function Sn(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function Mm(e,t,n,r={}){let{window:l=document.defaultView,v5Compat:o=!1}=r,i=l.history,a="POP",s=null,u=f();u==null&&(u=0,i.replaceState({...i.state,idx:u},""));function f(){return(i.state||{idx:null}).idx}function m(){a="POP";let N=f(),h=N==null?null:N-u;u=N,s&&s({action:a,location:E.location,delta:h})}function v(N,h){a="PUSH";let c=fs(E.location,N,h);n&&n(c,N),u=f()+1;let d=Uu(c,u),x=E.createHref(c);try{i.pushState(d,"",x)}catch(P){if(P instanceof DOMException&&P.name==="DataCloneError")throw P;l.location.assign(x)}o&&s&&s({action:a,location:E.location,delta:1})}function w(N,h){a="REPLACE";let c=fs(E.location,N,h);n&&n(c,N),u=f();let d=Uu(c,u),x=E.createHref(c);i.replaceState(d,"",x),o&&s&&s({action:a,location:E.location,delta:0})}function S(N){return zm(N)}let E={get action(){return a},get location(){return e(l,i)},listen(N){if(s)throw new Error("A history only accepts one active listener");return l.addEventListener(Au,m),s=N,()=>{l.removeEventListener(Au,m),s=null}},createHref(N){return t(l,N)},createURL:S,encodeLocation(N){let h=S(N);return{pathname:h.pathname,search:h.search,hash:h.hash}},push:v,replace:w,go(N){return i.go(N)}};return E}function zm(e,t=!1){let n="http://localhost";typeof window<"u"&&(n=window.location.origin!=="null"?window.location.origin:window.location.href),ae(n,"No window.location.(origin|href) available to create URL");let r=typeof e=="string"?e:Qr(e);return r=r.replace(/ $/,"%20"),!t&&r.startsWith("//")&&(r=n+r),new URL(r,n)}function gd(e,t,n="/"){return Im(e,t,n,!1)}function Im(e,t,n,r){let l=typeof t=="string"?Sn(t):t,o=Rt(l.pathname||"/",n);if(o==null)return null;let i=vd(e);Om(i);let a=null;for(let s=0;a==null&&s{let f={relativePath:u===void 0?i.path||"":u,caseSensitive:i.caseSensitive===!0,childrenIndex:a,route:i};if(f.relativePath.startsWith("/")){if(!f.relativePath.startsWith(r)&&s)return;ae(f.relativePath.startsWith(r),`Absolute route path "${f.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),f.relativePath=f.relativePath.slice(r.length)}let m=Ct([r,f.relativePath]),v=n.concat(f);i.children&&i.children.length>0&&(ae(i.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${m}".`),vd(i.children,t,v,m,s)),!(i.path==null&&!i.index)&&t.push({path:m,score:Wm(m,i.index),routesMeta:v})};return e.forEach((i,a)=>{var s;if(i.path===""||!((s=i.path)!=null&&s.includes("?")))o(i,a);else for(let u of yd(i.path))o(i,a,!0,u)}),t}function yd(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,l=n.endsWith("?"),o=n.replace(/\?$/,"");if(r.length===0)return l?[o,""]:[o];let i=yd(r.join("/")),a=[];return a.push(...i.map(s=>s===""?o:[o,s].join("/"))),l&&a.push(...i),a.map(s=>e.startsWith("/")&&s===""?"/":s)}function Om(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:Vm(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}var Fm=/^:[\w-]+$/,Dm=3,Am=2,Um=1,Hm=10,Bm=-2,Hu=e=>e==="*";function Wm(e,t){let n=e.split("/"),r=n.length;return n.some(Hu)&&(r+=Bm),t&&(r+=Am),n.filter(l=>!Hu(l)).reduce((l,o)=>l+(Fm.test(o)?Dm:o===""?Um:Hm),r)}function Vm(e,t){return e.length===t.length&&e.slice(0,-1).every((r,l)=>r===t[l])?e[e.length-1]-t[t.length-1]:0}function Qm(e,t,n=!1){let{routesMeta:r}=e,l={},o="/",i=[];for(let a=0;a{if(f==="*"){let S=a[v]||"";i=o.slice(0,o.length-S.length).replace(/(.)\/+$/,"$1")}const w=a[v];return m&&!w?u[f]=void 0:u[f]=(w||"").replace(/%2F/g,"/"),u},{}),pathname:o,pathnameBase:i,pattern:e}}function Km(e,t=!1,n=!0){ut(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let r=[],l="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(i,a,s)=>(r.push({paramName:a,isOptional:s!=null}),s?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(r.push({paramName:"*"}),l+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?l+="\\/*$":e!==""&&e!=="/"&&(l+="(?:(?=\\/|$))"),[new RegExp(l,t?void 0:"i"),r]}function Ym(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return ut(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function Rt(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}function Jm(e,t="/"){let{pathname:n,search:r="",hash:l=""}=typeof e=="string"?Sn(e):e;return{pathname:n?n.startsWith("/")?n:Gm(n,t):t,search:Zm(r),hash:qm(l)}}function Gm(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(l=>{l===".."?n.length>1&&n.pop():l!=="."&&n.push(l)}),n.length>1?n.join("/"):"/"}function gi(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function Xm(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function wd(e){let t=Xm(e);return t.map((n,r)=>r===t.length-1?n.pathname:n.pathnameBase)}function Sd(e,t,n,r=!1){let l;typeof e=="string"?l=Sn(e):(l={...e},ae(!l.pathname||!l.pathname.includes("?"),gi("?","pathname","search",l)),ae(!l.pathname||!l.pathname.includes("#"),gi("#","pathname","hash",l)),ae(!l.search||!l.search.includes("#"),gi("#","search","hash",l)));let o=e===""||l.pathname==="",i=o?"/":l.pathname,a;if(i==null)a=n;else{let m=t.length-1;if(!r&&i.startsWith("..")){let v=i.split("/");for(;v[0]==="..";)v.shift(),m-=1;l.pathname=v.join("/")}a=m>=0?t[m]:"/"}let s=Jm(l,a),u=i&&i!=="/"&&i.endsWith("/"),f=(o||i===".")&&n.endsWith("/");return!s.pathname.endsWith("/")&&(u||f)&&(s.pathname+="/"),s}var Ct=e=>e.join("/").replace(/\/\/+/g,"/"),bm=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Zm=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,qm=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function eg(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}var xd=["POST","PUT","PATCH","DELETE"];new Set(xd);var tg=["GET",...xd];new Set(tg);var lr=g.createContext(null);lr.displayName="DataRouter";var jo=g.createContext(null);jo.displayName="DataRouterState";g.createContext(!1);var kd=g.createContext({isTransitioning:!1});kd.displayName="ViewTransition";var ng=g.createContext(new Map);ng.displayName="Fetchers";var rg=g.createContext(null);rg.displayName="Await";var mt=g.createContext(null);mt.displayName="Navigation";var Zr=g.createContext(null);Zr.displayName="Location";var Tt=g.createContext({outlet:null,matches:[],isDataRoute:!1});Tt.displayName="Route";var ua=g.createContext(null);ua.displayName="RouteError";function lg(e,{relative:t}={}){ae(qr(),"useHref() may be used only in the context of a component.");let{basename:n,navigator:r}=g.useContext(mt),{hash:l,pathname:o,search:i}=el(e,{relative:t}),a=o;return n!=="/"&&(a=o==="/"?n:Ct([n,o])),r.createHref({pathname:a,search:i,hash:l})}function qr(){return g.useContext(Zr)!=null}function xn(){return ae(qr(),"useLocation() may be used only in the context of a component."),g.useContext(Zr).location}var Ed="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Cd(e){g.useContext(mt).static||g.useLayoutEffect(e)}function og(){let{isDataRoute:e}=g.useContext(Tt);return e?yg():ig()}function ig(){ae(qr(),"useNavigate() may be used only in the context of a component.");let e=g.useContext(lr),{basename:t,navigator:n}=g.useContext(mt),{matches:r}=g.useContext(Tt),{pathname:l}=xn(),o=JSON.stringify(wd(r)),i=g.useRef(!1);return Cd(()=>{i.current=!0}),g.useCallback((s,u={})=>{if(ut(i.current,Ed),!i.current)return;if(typeof s=="number"){n.go(s);return}let f=Sd(s,JSON.parse(o),l,u.relative==="path");e==null&&t!=="/"&&(f.pathname=f.pathname==="/"?t:Ct([t,f.pathname])),(u.replace?n.replace:n.push)(f,u.state,u)},[t,n,o,l,e])}g.createContext(null);function el(e,{relative:t}={}){let{matches:n}=g.useContext(Tt),{pathname:r}=xn(),l=JSON.stringify(wd(n));return g.useMemo(()=>Sd(e,JSON.parse(l),r,t==="path"),[e,l,r,t])}function sg(e,t){return Nd(e,t)}function Nd(e,t,n,r,l){var c;ae(qr(),"useRoutes() may be used only in the context of a component.");let{navigator:o}=g.useContext(mt),{matches:i}=g.useContext(Tt),a=i[i.length-1],s=a?a.params:{},u=a?a.pathname:"/",f=a?a.pathnameBase:"/",m=a&&a.route;{let d=m&&m.path||"";_d(u,!m||d.endsWith("*")||d.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${u}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. + +Please change the parent to .`)}let v=xn(),w;if(t){let d=typeof t=="string"?Sn(t):t;ae(f==="/"||((c=d.pathname)==null?void 0:c.startsWith(f)),`When overriding the location using \`\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${f}" but pathname "${d.pathname}" was given in the \`location\` prop.`),w=d}else w=v;let S=w.pathname||"/",E=S;if(f!=="/"){let d=f.replace(/^\//,"").split("/");E="/"+S.replace(/^\//,"").split("/").slice(d.length).join("/")}let N=gd(e,{pathname:E});ut(m||N!=null,`No routes matched location "${w.pathname}${w.search}${w.hash}" `),ut(N==null||N[N.length-1].route.element!==void 0||N[N.length-1].route.Component!==void 0||N[N.length-1].route.lazy!==void 0,`Matched leaf route at location "${w.pathname}${w.search}${w.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`);let h=dg(N&&N.map(d=>Object.assign({},d,{params:Object.assign({},s,d.params),pathname:Ct([f,o.encodeLocation?o.encodeLocation(d.pathname).pathname:d.pathname]),pathnameBase:d.pathnameBase==="/"?f:Ct([f,o.encodeLocation?o.encodeLocation(d.pathnameBase).pathname:d.pathnameBase])})),i,n,r,l);return t&&h?g.createElement(Zr.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...w},navigationType:"POP"}},h):h}function ag(){let e=vg(),t=eg(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r="rgba(200,200,200, 0.5)",l={padding:"0.5rem",backgroundColor:r},o={padding:"2px 4px",backgroundColor:r},i=null;return console.error("Error handled by React Router default ErrorBoundary:",e),i=g.createElement(g.Fragment,null,g.createElement("p",null,"💿 Hey developer 👋"),g.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",g.createElement("code",{style:o},"ErrorBoundary")," or"," ",g.createElement("code",{style:o},"errorElement")," prop on your route.")),g.createElement(g.Fragment,null,g.createElement("h2",null,"Unexpected Application Error!"),g.createElement("h3",{style:{fontStyle:"italic"}},t),n?g.createElement("pre",{style:l},n):null,i)}var ug=g.createElement(ag,null),cg=class extends g.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.unstable_onError?this.props.unstable_onError(e,t):console.error("React Router caught the following error during render",e)}render(){return this.state.error!==void 0?g.createElement(Tt.Provider,{value:this.props.routeContext},g.createElement(ua.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function fg({routeContext:e,match:t,children:n}){let r=g.useContext(lr);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),g.createElement(Tt.Provider,{value:e},n)}function dg(e,t=[],n=null,r=null,l=null){if(e==null){if(!n)return null;if(n.errors)e=n.matches;else if(t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let o=e,i=n==null?void 0:n.errors;if(i!=null){let u=o.findIndex(f=>f.route.id&&(i==null?void 0:i[f.route.id])!==void 0);ae(u>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(i).join(",")}`),o=o.slice(0,Math.min(o.length,u+1))}let a=!1,s=-1;if(n)for(let u=0;u=0?o=o.slice(0,s+1):o=[o[0]];break}}}return o.reduceRight((u,f,m)=>{let v,w=!1,S=null,E=null;n&&(v=i&&f.route.id?i[f.route.id]:void 0,S=f.route.errorElement||ug,a&&(s<0&&m===0?(_d("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),w=!0,E=null):s===m&&(w=!0,E=f.route.hydrateFallbackElement||null)));let N=t.concat(o.slice(0,m+1)),h=()=>{let c;return v?c=S:w?c=E:f.route.Component?c=g.createElement(f.route.Component,null):f.route.element?c=f.route.element:c=u,g.createElement(fg,{match:f,routeContext:{outlet:u,matches:N,isDataRoute:n!=null},children:c})};return n&&(f.route.ErrorBoundary||f.route.errorElement||m===0)?g.createElement(cg,{location:n.location,revalidation:n.revalidation,component:S,error:v,children:h(),routeContext:{outlet:null,matches:N,isDataRoute:!0},unstable_onError:r}):h()},null)}function ca(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function pg(e){let t=g.useContext(lr);return ae(t,ca(e)),t}function hg(e){let t=g.useContext(jo);return ae(t,ca(e)),t}function mg(e){let t=g.useContext(Tt);return ae(t,ca(e)),t}function fa(e){let t=mg(e),n=t.matches[t.matches.length-1];return ae(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function gg(){return fa("useRouteId")}function vg(){var r;let e=g.useContext(ua),t=hg("useRouteError"),n=fa("useRouteError");return e!==void 0?e:(r=t.errors)==null?void 0:r[n]}function yg(){let{router:e}=pg("useNavigate"),t=fa("useNavigate"),n=g.useRef(!1);return Cd(()=>{n.current=!0}),g.useCallback(async(l,o={})=>{ut(n.current,Ed),n.current&&(typeof l=="number"?e.navigate(l):await e.navigate(l,{fromRouteId:t,...o}))},[e,t])}var Bu={};function _d(e,t,n){!t&&!Bu[e]&&(Bu[e]=!0,ut(!1,n))}g.memo(wg);function wg({routes:e,future:t,state:n,unstable_onError:r}){return Nd(e,void 0,n,r,t)}function Pd(e){ae(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function Sg({basename:e="/",children:t=null,location:n,navigationType:r="POP",navigator:l,static:o=!1}){ae(!qr(),"You cannot render a inside another . You should never have more than one in your app.");let i=e.replace(/^\/*/,"/"),a=g.useMemo(()=>({basename:i,navigator:l,static:o,future:{}}),[i,l,o]);typeof n=="string"&&(n=Sn(n));let{pathname:s="/",search:u="",hash:f="",state:m=null,key:v="default"}=n,w=g.useMemo(()=>{let S=Rt(s,i);return S==null?null:{location:{pathname:S,search:u,hash:f,state:m,key:v},navigationType:r}},[i,s,u,f,m,v,r]);return ut(w!=null,` is not able to match the URL "${s}${u}${f}" because it does not start with the basename, so the won't render anything.`),w==null?null:g.createElement(mt.Provider,{value:a},g.createElement(Zr.Provider,{children:t,value:w}))}function xg({children:e,location:t}){return sg(ds(e),t)}function ds(e,t=[]){let n=[];return g.Children.forEach(e,(r,l)=>{if(!g.isValidElement(r))return;let o=[...t,l];if(r.type===g.Fragment){n.push.apply(n,ds(r.props.children,o));return}ae(r.type===Pd,`[${typeof r.type=="string"?r.type:r.type.name}] is not a component. All component children of must be a or `),ae(!r.props.index||!r.props.children,"An index route cannot have child routes.");let i={id:r.props.id||o.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,hydrateFallbackElement:r.props.hydrateFallbackElement,HydrateFallback:r.props.HydrateFallback,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.hasErrorBoundary===!0||r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(i.children=ds(r.props.children,o)),n.push(i)}),n}var Al="get",Ul="application/x-www-form-urlencoded";function To(e){return e!=null&&typeof e.tagName=="string"}function kg(e){return To(e)&&e.tagName.toLowerCase()==="button"}function Eg(e){return To(e)&&e.tagName.toLowerCase()==="form"}function Cg(e){return To(e)&&e.tagName.toLowerCase()==="input"}function Ng(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function _g(e,t){return e.button===0&&(!t||t==="_self")&&!Ng(e)}var _l=null;function Pg(){if(_l===null)try{new FormData(document.createElement("form"),0),_l=!1}catch{_l=!0}return _l}var Lg=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function vi(e){return e!=null&&!Lg.has(e)?(ut(!1,`"${e}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${Ul}"`),null):e}function Rg(e,t){let n,r,l,o,i;if(Eg(e)){let a=e.getAttribute("action");r=a?Rt(a,t):null,n=e.getAttribute("method")||Al,l=vi(e.getAttribute("enctype"))||Ul,o=new FormData(e)}else if(kg(e)||Cg(e)&&(e.type==="submit"||e.type==="image")){let a=e.form;if(a==null)throw new Error('Cannot submit a `,S=`
${v}
`;return`
${w}${S}
`}),i=i.replace(/
\s*(?=
]*>[\s\S]*?<\/div>)\s*
/g,"$1"),i}function _v(e){const t=e.split(/\r?\n/);let n=null;for(let r=0;r/i,n=/<\/think(?:ing)?>/i,r=e.match(t);if(!r)return{think:null,answer:e};const l=r.index,o=r[0].length,i=e.substring(0,l).trim();let a=e.substring(l+o);const s=a.match(n);let u=null,f=i;return s?(u=a.substring(0,s.index).trim(),f+=a.substring(s.index+s[0].length)):u=a.trim(),{think:u||null,answer:f.trim()}}function Pv({content:e,streamOutput:t,sources:n}){const{think:r,answer:l}=Od(e||""),[o,i]=Te.useState(!1),a=!!r;return y.jsxs("div",{className:"assistant-message",children:[a&&y.jsxs("div",{className:"assistant-thoughts",children:[y.jsxs("button",{className:"think-toggle",onClick:()=>i(s=>!s),"aria-expanded":o?"true":"false","aria-controls":"think-content",children:[y.jsx("span",{className:"think-toggle-icon","aria-hidden":"true",children:o?"▾":"▸"}),"Thoughts"]}),o&&y.jsx("div",{id:"think-content",className:"think-content",dangerouslySetInnerHTML:{__html:Zu(r)}})]}),y.jsx("div",{className:"msg-content",dangerouslySetInnerHTML:{__html:Zu(l||e||"")}}),Array.isArray(n)&&n.length>0&&y.jsx("div",{className:"msg-sources chips",children:n.map((s,u)=>{let f=s,m=!1;try{const v=new URL(s);if(v.protocol==="file:"){m=!0;const w=v.pathname.split("/").filter(Boolean);f=decodeURIComponent(w[w.length-1]||s)}else f=(v.hostname||s).replace(/^www\./i,"")}catch{}return y.jsx("a",{className:"chip",href:s,target:"_blank",rel:"noreferrer",title:s,onClick:v=>{var w,S;if(m){v.preventDefault();try{const E=new URL(s);(S=(w=window.electronAPI)==null?void 0:w.openPath)==null||S.call(w,decodeURIComponent(E.pathname))}catch{}}},children:f},s+u)})})]})}const qu="websearch.searxUrl",ec="websearch.engines",yi="chat.librarySlug";let Lv="http://127.0.0.1:8000";const Rv=48,jv=24;function Tv(){var Ra;const[e,t]=g.useState([]),[n,r]=g.useState(null),[l,o]=g.useState("chats"),[i,a]=g.useState("General"),[s,u]=g.useState(null),[f,m]=g.useState([]),[v,w]=g.useState([]),[S,E]=g.useState(null),[N,h]=g.useState(localStorage.getItem(yi)||null),[c,d]=g.useState(!1),[x,P]=g.useState(""),[T,j]=g.useState(""),[M,B]=g.useState(""),[O,pe]=g.useState(""),ve=g.useRef(null),Oe=g.useRef(null),[J,kn]=g.useState(Lv),[gt,$t]=g.useState("Default"),[$,A]=g.useState(!1),[U,te]=g.useState(localStorage.getItem(qu)||"http://localhost:8888"),[R,W]=g.useState(()=>{try{const p=localStorage.getItem(ec);if(p)return JSON.parse(p)}catch{}return["duckduckgo","bing","wikipedia","github","stack_overflow"]});g.useEffect(()=>{localStorage.setItem(qu,U||"")},[U]),g.useEffect(()=>{try{localStorage.setItem(ec,JSON.stringify(R||[]))}catch{}},[R]);const[fe,Fe]=g.useState(!1),[Ce,Mt]=g.useState(!1),[zv,$o]=g.useState(!0),[Fd,En]=g.useState([]),[tl,ma]=g.useState({}),[Dd,Mo]=g.useState(null),[zo,nl]=g.useState("");function Ad(p){const k=p.content||"";if(p.role==="assistant")try{const{answer:C}=Od(k);return(C||k).trim()}catch{return k.trim()}return k}async function ga(p){try{await navigator.clipboard.writeText(Ad(p))}catch(k){console.error("Failed to copy message:",k)}}function tn(p,k,C,L={}){const{removeIfEmpty:H=!1}=L;t(K=>K.map(I=>{if(I.session_id!==p)return I;const F=[];for(const G of I.messages||[]){if(G.id!==k){F.push(G);continue}H&&!C||F.push({...G,content:C})}return{...I,messages:F}}))}function nn(p){return(p==null?void 0:p.name)==="AbortError"}function Io(p){return p instanceof Error&&p.message?p.message:String(p)}function Ud(p,k){Mo(p),nl(k||"")}function rl(){Mo(null),nl("")}async function Hd(p){var K;const k=(((K=Pn[p])==null?void 0:K.content)||"").trim(),L=(zo??"").trim();if(L.length===0){rl();return}if(L===k){rl();return}const H=n;if(H){t(I=>I.map(F=>{if(F.session_id!==H)return F;const Se=(F.messages||[]).slice(0,p+1).map((V,Y)=>Y===p?{...V,content:L}:V);return{...F,messages:Se}})),Mo(null),nl(""),requestAnimationFrame(()=>Ho("auto",H));try{const I=await fetch(`${J}/sessions/${H}/messages/${p}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:L})});if(!I.ok)throw new Error(`HTTP ${I.status}`)}catch(I){console.error("Failed to update message:",I),t(F=>F.map(G=>{if(G.session_id!==H)return G;const V=(G.messages||[]).map((Y,D)=>D===p?{...Y,content:k}:Y);return{...G,messages:V}}));return}await va(p,L)}}async function va(p,k=null){var G,Se,V,Y;const C=n;if(Ce||!C||typeof p!="number")return;const L=((G=e.find(D=>D.session_id===C))==null?void 0:G.messages)||[];let H=p;for(let D=p;D>=0;D--)if(((Se=L[D])==null?void 0:Se.role)==="user"){H=D;break}t(D=>D.map(b=>b.session_id===C?{...b,messages:(b.messages||[]).slice(0,H+1)}:b));const K=Ea(C);let I=null,F=[];try{if(fe)try{const D=k??(((V=L[H])==null?void 0:V.content)||""),b=L.slice(Math.max(0,H-7),H+1).map(Ge=>({role:Ge.role,content:Ge.content||""}));b.length>0&&(b[b.length-1]={role:"user",content:D});const ee=await(await fetch(`${J}/websearch`,{method:"POST",headers:{"Content-Type":"application/json"},signal:K.signal,body:JSON.stringify({prompt:D,model:M,messages:b,history_limit:8,searx_url:U||null,engines:Array.isArray(R)?R:null})})).json();ee&&typeof ee.enriched_prompt=="string"&&(I=ee.enriched_prompt,F=Array.isArray(ee.sources)?ee.sources:[])}catch(D){if(nn(D))throw D;console.warn("web search enrichment (regenerate) failed",D)}if($){const D=`msg-${Date.now()}-${Math.random()}`;let b="";t(Z=>Z.map(ee=>ee.session_id===C?{...ee,messages:[...ee.messages||[],{id:D,role:"assistant",content:"",sources:F}]}:ee));try{const Z=await fetch(`${J}/sessions/${C}/regenerate`,{method:"POST",headers:{"Content-Type":"application/json"},signal:K.signal,body:JSON.stringify({index:p,model:M,stream:!0,enriched_message:I,sources:F||[]})});if(!Z.ok)throw new Error(`HTTP ${Z.status}`);const ee=(Y=Z.body)==null?void 0:Y.getReader();if(!ee)throw new Error("Missing response body");const Ge=new TextDecoder;let al=!1;for(;;){const{value:vt,done:Bo}=await ee.read();if(Bo)break;const yt=Ge.decode(vt,{stream:!0});b+=yt,tn(C,D,b),!al&&Ne.current!==C&&(al=!0,rn(Wo=>({...Wo,[C]:D})),En(Wo=>[...new Set([...Wo,C])]))}Ne.current!==C?(rn(vt=>({...vt,[C]:D})),En(vt=>[...new Set([...vt,C])])):Cn.current[C]?Nn(vt=>({...vt,[C]:D})):requestAnimationFrame(()=>Ln(D,"smooth",C))}catch(Z){if(nn(Z)){tn(C,D,b,{removeIfEmpty:!0});return}console.error(Z),tn(C,D,`Error: ${Io(Z)}`,{removeIfEmpty:!0});return}}else{const D=await fetch(`${J}/sessions/${C}/regenerate`,{method:"POST",headers:{"Content-Type":"application/json"},signal:K.signal,body:JSON.stringify({index:p,model:M,stream:!1,enriched_message:I,sources:F||[]})});if(!D.ok)throw new Error(`HTTP ${D.status}`);const b=await D.json(),Z=`msg-${Date.now()}`;t(ee=>ee.map(Ge=>Ge.session_id===C?{...Ge,messages:[...Ge.messages||[],{role:"assistant",content:b.reply,id:Z,sources:F}]}:Ge)),Ne.current!==C?(rn(ee=>({...ee,[C]:Z})),En(ee=>[...new Set([...ee,C])])):Cn.current[C]?Nn(ee=>({...ee,[C]:Z})):requestAnimationFrame(()=>Ln(Z,"smooth",C))}}catch(D){nn(D)||console.error(D)}finally{Oo(K)}}const[ya,Bd]=g.useState({}),Cn=g.useRef({}),[Wd,rn]=g.useState({}),ln=g.useRef({}),wa=g.useRef({}),[Sa,Nn]=g.useState({}),[Vd,xa]=g.useState({}),ka=(p,k,C)=>p!=null&&p.id?p.id:`${C}:${k}`;g.useEffect(()=>{var k;if(!n)return;const p=((k=e.find(C=>C.session_id===n))==null?void 0:k.messages)||[];xa(C=>{const L={};return p.forEach((H,K)=>{if(H.role!=="user")return;const I=ka(H,K,n),G=(H.content||"").split(/\r\n|\r|\n/).length>30;L[I]=G?C[I]??!0:!1}),L})},[e,n]);function Qd(p){xa(k=>({...k,[p]:!(k[p]??!0)}))}const or=Te.useCallback((p,k)=>{Bd(C=>{const L={...C,[p]:k};return Cn.current=L,L})},[]),_n=g.useRef(null),Kd=g.useRef(!1),Yd=g.useRef(null),Ne=g.useRef(n);g.useEffect(()=>{Ne.current=n},[n]);const Ea=Te.useCallback(p=>{const k=new AbortController;return _n.current={controller:k,sessionId:p},Mt(!0),k},[]),Oo=Te.useCallback(p=>{var k;((k=_n.current)==null?void 0:k.controller)===p&&(_n.current=null,Mt(!1))},[]),Jd=Te.useCallback(()=>{const p=_n.current;p&&(_n.current=null,p.controller.abort(),Mt(!1))},[]);g.useEffect(()=>()=>{var p;(p=_n.current)==null||p.controller.abort()},[]);const zt=g.useRef(null),[Gd,Xd]=g.useState(230),[ll,Ca]=g.useState(!1),bd=Te.useCallback(p=>{Ca(!0)},[]),Fo=Te.useCallback(()=>{Ca(!1)},[]),Do=Te.useCallback(p=>{if(ll){const k=Math.max(230,Math.min(500,p.clientX));Xd(k)}},[ll]);Te.useEffect(()=>(window.addEventListener("mousemove",Do),window.addEventListener("mouseup",Fo),()=>{window.removeEventListener("mousemove",Do),window.removeEventListener("mouseup",Fo)}),[Do,Fo]),Te.useEffect(()=>{ll?document.body.classList.add("no-select"):document.body.classList.remove("no-select")},[ll]),Te.useEffect(()=>{const p=async k=>{const C=k.target.closest(".codeblock__copy");if(!C)return;const L=C.closest(".codeblock"),H=L==null?void 0:L.querySelector("pre > code");if(H)try{await navigator.clipboard.writeText(H.textContent||""),C.classList.add("copied"),setTimeout(()=>C.classList.remove("copied"),800)}catch(K){console.error("Copy failed:",K)}};return document.addEventListener("click",p),()=>document.removeEventListener("click",p)},[]),g.useEffect(()=>{window.electronAPI.getSettings().then(k=>{kn(k.ollamaApiUrl),$t(k.colorScheme||"Default"),B(k.chatModel||""),A(k.streamOutput||!1),ma(k.scrollPositions||{}),Kr(k.colorScheme||"Default")});const p=()=>{var k;l==="chats"&&((k=Oe.current)==null||k.focus())};return window.electronAPI.onWindowFocus(p),()=>{}},[l]),g.useEffect(()=>{Kr(gt)},[gt]);const Zd=p=>{!p||!J||fetch(`${J}/history?session_id=${encodeURIComponent(p)}`).then(k=>k.json()).then(k=>{t(C=>C.map(L=>L.session_id===p?{...L,messages:k.messages||[]}:L))}).catch(()=>{})};async function ol(){if(J)try{const k=await(await fetch(`${J}/libraries`)).json(),C=Array.isArray(k.libraries)?k.libraries:[];if(m(C),C.length===0){E(null),h(null);return}C.some(L=>L.slug===S)||E(C[0].slug),N&&!C.some(L=>L.slug===N)&&h(null)}catch(p){console.warn("Failed to load libraries",p)}}async function Ao(){if(J)try{const k=await(await fetch(`${J}/jobs`)).json();w(Array.isArray(k.jobs)?k.jobs:[])}catch(p){console.warn("Failed to load library jobs",p)}}async function Na(p=null){const C=(typeof p=="string"?p:x).trim();if(!C){j("Name is required.");return}try{j("");const L=await fetch(`${J}/libraries`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:C})});if(!L.ok){const K=await L.text();throw new Error(K||`HTTP ${L.status}`)}const H=await L.json();d(!1),P(""),await ol(),H!=null&&H.slug&&E(H.slug)}catch(L){console.error("Failed to create library",L),j(String((L==null?void 0:L.message)||L))}}g.useEffect(()=>{J&&($o(!0),fetch(`${J}/sessions`).then(p=>p.json()).then(p=>{const k=p.sessions.map(C=>({...C,messages:[]}));t(k),k.length>0?r(k[0].session_id):r(null),$o(!1)}).catch(()=>{$o(!1)}))},[J]),g.useEffect(()=>{J&&(ol(),Ao())},[J]),g.useEffect(()=>{try{N?localStorage.setItem(yi,N):localStorage.removeItem(yi)}catch{}},[N]),g.useEffect(()=>{if(!J)return;const p=setInterval(()=>{ol(),Ao()},3e3);return()=>clearInterval(p)},[J,l,S,N]),g.useEffect(()=>{Zd(n)},[n]);const Uo=p=>{o(p)},qd=p=>{np(p)},Pn=g.useMemo(()=>{var p;return((p=e.find(k=>k.session_id===n))==null?void 0:p.messages)||[]},[n,e]),il=g.useMemo(()=>f.find(p=>p.slug===S)||null,[S,f]),sl=g.useMemo(()=>f.find(p=>p.slug===N)||null,[N,f]);g.useEffect(()=>{const p=n,k=l;return()=>{if(k==="chats"&&p){const C=typeof ln.current[p]=="number"?ln.current[p]:ve.current?ve.current.scrollTop:0;ma(L=>{const H={...L,[p]:C};return window.electronAPI.updateSettings({scrollPositions:H}),H})}}},[n,l]),g.useEffect(()=>{const p=ve.current;if(!p)return;const k=()=>{const{scrollTop:C,scrollHeight:L,clientHeight:H}=p,K=L-C-H<=jv;if(n){const I=wa.current[n],F=typeof I=="number"&&Cp.removeEventListener("scroll",k)},[n,or]),g.useEffect(()=>{const p=n;p&&ya[p]===!1&&Nn(k=>{if(!(p in k))return k;const C={...k};return delete C[p],C})},[n,ya]),g.useLayoutEffect(()=>{if(l!=="chats"||!n)return;const p=ve.current;if(!p)return;zt.current=null;const k=()=>{if(zt.current===n)return;const I=typeof ln.current[n]=="number"?ln.current[n]:void 0,F=typeof I=="number"?I:tl[n];if(typeof F=="number"){p.scrollTop=F,zt.current=n;return}Pn.length>0&&(p.scrollTop=p.scrollHeight,zt.current=n)};k();const C=requestAnimationFrame(k),L=()=>{zt.current!==n&&requestAnimationFrame(k)},H=new MutationObserver(L);H.observe(p,{childList:!0,subtree:!0});const K=new ResizeObserver(L);return K.observe(p),()=>{cancelAnimationFrame(C),H.disconnect(),K.disconnect()}},[n,l,Pn.length,tl]),g.useEffect(()=>{if(l!=="chats"||!n||zt.current===n)return;const p=typeof ln.current[n]=="number"?ln.current[n]:void 0;typeof(typeof p=="number"?p:tl[n])!="number"&&Pn.length>0&&requestAnimationFrame(()=>{const C=ve.current;C&&(C.scrollTop=C.scrollHeight,zt.current=n)})},[Pn.length,n,l,tl]);const Ho=(p="smooth",k=null)=>{const C=ve.current;if(!C)return;const L=k??Ne.current;Ne.current===L&&(C.scrollTo({top:C.scrollHeight,behavior:p}),or(L,!1))},Ln=(p,k="auto",C=null)=>{const L=ve.current;if(!L)return;const H=C??Ne.current;if(Ne.current!==H)return;const K=document.getElementById(p);if(K){const I=Math.max(0,K.offsetTop-Rv);L.scrollTo({top:I,behavior:k})}},ep=()=>{const p=Ne.current,k=Sa[p];k&&(Ln(k,"smooth",p),Nn(C=>{const{[p]:L,...H}=C;return H}))};async function _a(){var H,K;if(Ce||!O.trim()||!M)return;let p=n,k=!1;if(p){const I=e.find(F=>F.session_id===p);k=I&&I.name==="New Chat"&&I.messages.length===0}else{const I=await Pa();await new Promise(F=>setTimeout(F,200)),p=I.session_id,k=!0}const C={role:"user",content:O.trim(),id:`msg-${Date.now()}-${Math.random()}`};Kd.current=!0,Yd.current=p,or(p,!1),Ne.current===p&&(zt.current=Ne.current),hd.flushSync(()=>{t(I=>I.map(F=>F.session_id===p?{...F,messages:[...F.messages||[],C]}:F)),pe("")}),requestAnimationFrame(()=>Ho("auto",p));const L=Ea(p);try{let I=[];try{I=[...(((H=e.find(D=>D.session_id===p))==null?void 0:H.messages)||[]).slice(-8).map(D=>({role:D.role,content:D.content||""})),{role:"user",content:C.content}]}catch{}let F=C.content,G=[];const Se=[];if(N)try{const Y=await(await fetch(`${J}/libraries/${N}/context`,{method:"POST",headers:{"Content-Type":"application/json"},signal:L.signal,body:JSON.stringify({prompt:C.content,top_k:5})})).json();Y&&typeof Y.context_block=="string"&&Y.context_block.trim()&&Se.push(Y.context_block.trim()),Array.isArray(Y==null?void 0:Y.sources)&&G.push(...Y.sources)}catch(V){if(nn(V))throw V;console.warn("local library enrichment failed",V)}if(fe)try{const Y=await(await fetch(`${J}/websearch`,{method:"POST",headers:{"Content-Type":"application/json"},signal:L.signal,body:JSON.stringify({prompt:C.content,model:M,messages:I,history_limit:8,searx_url:U||null,engines:Array.isArray(R)?R:null})})).json();Y&&typeof Y.context_block=="string"&&Y.context_block.trim()&&Se.push(Y.context_block.trim()),Array.isArray(Y==null?void 0:Y.sources)&&G.push(...Y.sources)}catch(V){if(nn(V))throw V;console.warn("web search enrichment failed",V)}if(G=[...new Set(G)],Se.length>0&&(F=`${C.content} + +${Se.join(` + +`)}`),$){const V=`msg-${Date.now()}-${Math.random()}`;let Y="";const D={role:"assistant",content:"",id:V,sources:G};t(b=>b.map(Z=>Z.session_id===p?{...Z,messages:[...Z.messages||[],D]}:Z));try{const b=await fetch(`${J}/chat`,{method:"POST",headers:{"Content-Type":"application/json"},signal:L.signal,body:JSON.stringify({session_id:p,model:M,message:C.content,enriched_message:Se.length>0?F:null,stream:!0,sources:G||[]})});if(!b.ok)throw new Error(`HTTP ${b.status}`);const Z=(K=b.body)==null?void 0:K.getReader();if(!Z)throw new Error("Missing response body");const ee=new TextDecoder;let Ge=!1;for(;;){const{value:al,done:vt}=await Z.read();if(vt){tn(p,V,Y),Ne.current===p?Cn.current[p]?Nn(yt=>({...yt,[p]:V})):requestAnimationFrame(()=>Ln(V,"smooth",p)):(rn(yt=>({...yt,[p]:V})),En(yt=>[...new Set([...yt,p])]));break}const Bo=ee.decode(al,{stream:!0});Y+=Bo,tn(p,V,Y),Ne.current===p&&!Cn.current[p]&&Ho("auto",p),Ne.current!==p&&!Ge&&(rn(yt=>({...yt,[p]:V})),Ge=!0)}}catch(b){if(nn(b)){tn(p,V,Y,{removeIfEmpty:!0});return}console.error("Failed to send message:",b),tn(p,V,"Error: "+Io(b),{removeIfEmpty:!0});return}}else{const V=await fetch(`${J}/chat`,{method:"POST",headers:{"Content-Type":"application/json"},signal:L.signal,body:JSON.stringify({session_id:p,model:M,message:C.content,enriched_message:Se.length>0?F:null,stream:!1,sources:G||[]})});if(!V.ok)throw new Error(`HTTP ${V.status}`);const Y=await V.json(),D=`msg-${Date.now()}`,b={role:"assistant",content:Y.reply,id:D,sources:G};t(Z=>Z.map(ee=>ee.session_id===p?{...ee,messages:[...ee.messages||[],b]}:ee)),D&&(Ne.current===p?Cn.current[p]?Nn(Z=>({...Z,[p]:D})):requestAnimationFrame(()=>Ln(D,"smooth",p)):rn(Z=>({...Z,[p]:D})))}Ne.current!==p&&En(V=>[...new Set([...V,p])]),k&&fetch(`${J}/generate-title`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({session_id:p,message:C.content,model:M})}).then(V=>V.json()).then(V=>{const Y=V.title.replace(/[\s\S]*?<\/think(?:ing)?>/i,"").trim();t(D=>D.map(b=>b.session_id===p?{...b,name:Y}:b))})}catch(I){if(nn(I)){Oo(L);return}console.error("Failed to send message:",I);const F={role:"assistant",content:"Error: "+Io(I),id:`msg-${Date.now()}-${Math.random()}`};t(G=>G.map(Se=>Se.session_id===p?{...Se,messages:[...Se.messages,F]}:Se))}finally{Oo(L)}}function tp(){Fe(p=>!p)}async function Pa(){var H;const p="sess-"+Math.random().toString(36).slice(2)+Date.now().toString(36),C=await(await fetch(`${J}/sessions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({session_id:p})})).json(),L={...C,messages:[]};return t(K=>[L,...K]),r(C.session_id),(H=Oe.current)==null||H.focus(),C}function np(p){r(p),En(C=>C.filter(L=>L!==p));const k=Wd[p];k&&requestAnimationFrame(()=>{let C=12;const L=()=>{if(!ve.current)return;let K=document.getElementById(k);if(!K){const I=e.find(F=>F.session_id===p);if(I&&Array.isArray(I.messages))for(let F=I.messages.length-1;F>=0;F--){const G=I.messages[F];if(G.role==="assistant"&&G.id){K=document.getElementById(G.id);break}}}K?(Ln(K.id,"smooth",p),rn(I=>{const{[p]:F,...G}=I;return G})):C-- >0&&requestAnimationFrame(L)};requestAnimationFrame(L)})}function rp(p,k){fetch(`${J}/sessions/${p}/rename`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:k})}).then(()=>{t(C=>C.map(L=>L.session_id===p?{...L,name:k}:L)),u(null)})}function La(p){fetch(`${J}/sessions/${p}`,{method:"DELETE"}).then(()=>{const k=e.filter(C=>C.session_id!==p);t(k),n===p&&r(k.length>0?k[0].session_id:null)})}g.useEffect(()=>{const p=e.filter(k=>k.name==="New Chat"&&k.session_id!==n&&k.messages.length===0);p.length>0&&p.forEach(k=>{La(k.session_id)})},[n,e,J]);const lp=p=>{var C;window.getSelection().toString().length>0||document.activeElement!==Oe.current&&(p.target.closest(".msg")||(C=Oe.current)==null||C.focus())};return y.jsxs("div",{className:"app",style:{gridTemplateColumns:`${Gd}px 1fr`},children:[y.jsxs("div",{className:"sidebar",children:[y.jsxs("div",{className:"sidebar-header",children:[y.jsx("div",{className:`sidebar-tab ${l==="chats"?"active":""}`,onClick:()=>Uo("chats"),children:"Chats"}),y.jsx("div",{className:`sidebar-tab ${l==="dbs"?"active":""}`,onClick:()=>Uo("dbs"),children:"DBs"}),y.jsx("div",{className:`sidebar-tab ${l==="settings"?"active":""}`,onClick:()=>Uo("settings"),children:"Settings"})]}),y.jsxs("div",{className:"sidebar-content",children:[l==="chats"&&y.jsx("div",{className:"chat-list",children:e.map(p=>y.jsx("div",{className:`chat-item ${p.session_id===n?"active":""}`,onClick:()=>qd(p.session_id),children:s===p.session_id?y.jsx("input",{type:"text",className:"rename-input",defaultValue:p.name,onBlur:()=>u(null),onKeyDown:k=>{k.key==="Enter"?rp(p.session_id,k.target.value):k.key==="Escape"&&u(null)},autoFocus:!0}):y.jsxs(y.Fragment,{children:[y.jsx("span",{children:p.name}),y.jsxs("div",{className:"chat-item-buttons",children:[Fd.includes(p.session_id)&&y.jsx("div",{className:"unread-dot"}),y.jsx("button",{className:"icon-button",onClick:k=>{k.stopPropagation(),u(p.session_id)},children:y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"feather feather-edit-2",children:y.jsx("path",{d:"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"})})}),y.jsx("button",{className:"icon-button",onClick:k=>{k.stopPropagation(),La(p.session_id)},children:y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"feather feather-x",children:[y.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),y.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})]})},p.session_id))}),l==="dbs"&&y.jsx("div",{className:"db-list",children:f.length===0?y.jsx("div",{className:"empty-list-message",children:"No databases yet."}):f.map(p=>y.jsxs("div",{className:`chat-item ${p.slug===S?"active":""}`,onClick:()=>E(p.slug),children:[y.jsx("span",{children:p.name}),N===p.slug&&y.jsx("div",{className:"db-active-badge",children:"Chat"})]},p.slug))}),l==="settings"&&y.jsxs("div",{className:"settings-list",children:[y.jsx("div",{className:`settings-item ${i==="General"?"active":""}`,onClick:()=>a("General"),children:"General"}),y.jsx("div",{className:`settings-item ${i==="Interface"?"active":""}`,onClick:()=>a("Interface"),children:"Interface"}),y.jsx("div",{className:`settings-item ${i==="Websearch"?"active":""}`,onClick:()=>a("Websearch"),children:"Websearch"})]})]}),l!=="settings"&&y.jsxs("div",{className:"sidebar-footer",children:[l==="chats"&&y.jsx("button",{className:"button new-chat-button",onClick:Pa,children:"New Chat"}),l==="dbs"&&(c?y.jsxs("div",{className:"new-db-form",children:[y.jsx("input",{type:"text",className:"rename-input",value:x,onChange:p=>P(p.target.value),onKeyDown:p=>{p.key==="Enter"?Na():p.key==="Escape"&&(d(!1),P(""),j(""))},placeholder:"Database name",autoFocus:!0}),T&&y.jsx("div",{className:"form-error",children:T}),y.jsxs("div",{className:"new-db-actions",children:[y.jsx("button",{className:"button new-db-button",onClick:()=>Na(),children:"Create"}),y.jsx("button",{className:"button ghost",onClick:()=>{d(!1),P(""),j("")},children:"Cancel"})]})]}):y.jsx("button",{className:"button new-db-button",onClick:()=>{d(!0),j("")},children:"New Database"}))]}),y.jsx("div",{className:"resizer",onMouseDown:bd})]}),y.jsxs("div",{className:"main-content",children:[l==="chats"&&y.jsxs(y.Fragment,{children:[y.jsxs("div",{className:"header",children:[y.jsxs("strong",{children:["Chat - ",((Ra=e.find(p=>p.session_id===n))==null?void 0:Ra.name)||"New Chat"]}),sl&&y.jsxs("span",{className:"header-subtle",children:["KB: ",sl.name]})]}),y.jsx("div",{className:"chat",ref:ve,onClick:lp,children:Pn.map((p,k)=>{const C=p.role==="user"&&Dd===k;return y.jsx("div",{id:p.id,className:"msg "+(p.role==="user"?"user":"assistant")+(C?" editing":""),children:p.role==="assistant"?y.jsxs("div",{className:"assistant-message-wrapper",children:[y.jsx(Pv,{content:p.content,streamOutput:$,sources:p.sources}),!Ce&&y.jsxs("div",{className:"message-options-bar assistant-options",children:[y.jsx("button",{className:"icon-button",title:"Copy message",onClick:()=>ga(p),children:y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[y.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),y.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})}),y.jsx("button",{className:"icon-button",title:"Regenerate response",onClick:()=>va(k),children:y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:y.jsx("path",{d:"M21.5 2v6h-6M2.5 22v-6h6M2 11.5a10 10 0 0 1 18.8-4.3M22 12.5a10 10 0 0 1-18.8 4.3"})})})]})]}):y.jsxs("div",{className:"user-message-wrapper",children:[C?y.jsxs("div",{className:"msg-content msg-content--user editing",children:[y.jsx("div",{className:"user-edit-shadow","aria-hidden":"true",children:zo}),y.jsx(Gu,{className:"edit-message-input edit-overlay",value:zo,onChange:L=>nl(L.target.value),onBlur:rl,onKeyDown:L=>{L.key==="Escape"&&(L.preventDefault(),rl()),L.key==="Enter"&&!L.shiftKey&&(L.preventDefault(),Hd(k))},autoFocus:!0,minRows:1})]}):(()=>{const L=p.content||"",H=L.split(/\r\n|\r|\n/),K=H.length>30,I=ka(p,k,n),F=K?Vd[I]??!0:!1,G=F?H.slice(0,30).join(` +`)+` +…`:L;return y.jsxs(y.Fragment,{children:[y.jsx("div",{className:"msg-content msg-content--user",children:G}),K&&y.jsx("button",{className:"user-msg-expand",onClick:()=>Qd(I),"aria-expanded":F?"false":"true",children:F?"Show entire message":"Collapse"})]})})(),!Ce&&!C&&y.jsxs("div",{className:"message-options-bar user-options",children:[y.jsx("button",{className:"icon-button",title:"Edit message",onClick:()=>Ud(k,p.content),children:y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[y.jsx("path",{d:"M12 20h9"}),y.jsx("path",{d:"M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"})]})}),y.jsx("button",{className:"icon-button",title:"Copy message",onClick:()=>ga(p),children:y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[y.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),y.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})})]})]})},p.id||k)})},n),Sa[n]&&y.jsxs("button",{className:"new-msg-tip",onClick:ep,title:"Jump to the new message","aria-label":"Jump to the new message",children:["New message",y.jsx("span",{style:{marginLeft:6},children:"↓"})]}),y.jsx("div",{className:"footer",children:y.jsxs("div",{className:"footer-content-wrapper",children:[y.jsx(Gu,{ref:Oe,className:"input",value:O,onChange:p=>pe(p.target.value),onKeyDown:p=>{p.key==="Enter"&&!p.shiftKey&&(p.preventDefault(),_a())},placeholder:"Ask any question...",maxRows:13}),y.jsx("button",{type:"button",className:"websearch-toggle"+(fe?" active":""),onClick:tp,title:"Toggle web search","aria-pressed":fe,children:y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[y.jsx("circle",{cx:"12",cy:"12",r:"10"}),y.jsx("line",{x1:"2",y1:"12",x2:"22",y2:"12"}),y.jsx("path",{d:"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"})]})}),y.jsx("button",{className:"button",onClick:Ce?Jd:_a,title:Ce?"Cancel generation":"Send","aria-label":Ce?"Cancel generation":"Send",children:Ce?y.jsx("div",{className:"spinner"}):"Send"})]})})]}),l==="dbs"&&y.jsxs(y.Fragment,{children:[y.jsxs("div",{className:"header",children:[y.jsx("strong",{children:(il==null?void 0:il.name)||"Databases"}),sl&&y.jsxs("span",{className:"header-subtle",children:["Chat KB: ",sl.name]})]}),y.jsx(Cv,{apiBase:J,library:il,jobs:v,chatLibrarySlug:N,onRefresh:async()=>{await ol(),await Ao()},onToggleChatLibrary:h,onDeleted:p=>{if(S===p){const k=f.find(C=>C.slug!==p);E((k==null?void 0:k.slug)||null)}N===p&&h(null)}})]}),l==="settings"&&y.jsxs(y.Fragment,{children:[y.jsx("div",{className:"header",children:y.jsxs("strong",{children:[i," Settings"]})}),i==="General"&&y.jsx(yv,{onModelChange:B,streamOutput:$,onStreamOutputChange:A}),i==="Interface"&&y.jsx(kv,{}),i==="Websearch"&&y.jsx(Nv,{searxUrl:U,setSearxUrl:te,engines:R,setEngines:W})]})]})]})}function $v(){return g.useEffect(()=>{window.electronAPI.getSettings().then(e=>{Kr(e.colorScheme||"Default")})},[]),y.jsx(Te.StrictMode,{children:y.jsx(Vg,{children:y.jsx(xg,{children:y.jsx(Pd,{path:"/",element:y.jsx(Tv,{})})})})})}const Mv=md(document.getElementById("root"));Mv.render(y.jsx($v,{})); diff --git a/dist/index.html b/dist/index.html new file mode 100644 index 0000000..cbacc08 --- /dev/null +++ b/dist/index.html @@ -0,0 +1,14 @@ + + + + + + + LLM Desktop + + + + +
+ + diff --git a/electron/main.cjs b/electron/main.cjs index cdc8cf9..e8b2d24 100644 --- a/electron/main.cjs +++ b/electron/main.cjs @@ -1,5 +1,4 @@ - -const { app, BrowserWindow, Menu, ipcMain, shell } = require('electron') +const { app, BrowserWindow, Menu, dialog, ipcMain, shell } = require('electron') const path = require('path') const { is } = require('@electron-toolkit/utils') const fs = require('fs') @@ -9,12 +8,36 @@ let settingsWindow = null const settingsFilePath = path.join(app.getPath('userData'), 'settings.json') let appSettings = {} +const DEFAULT_UI_SCALE = 1 +const MIN_UI_SCALE = 0.7 +const MAX_UI_SCALE = 1.3 -// Default settings const defaultSettings = { ollamaApiUrl: 'http://127.0.0.1:8000', colorScheme: 'Default', - chatModel: 'llama3' // Set a default model here + uiScale: DEFAULT_UI_SCALE, + chatModel: 'llama3', +} + +function normalizeUiScale(value) { + const numericValue = Number(value) + if (!Number.isFinite(numericValue)) { + return DEFAULT_UI_SCALE + } + + return Math.min(MAX_UI_SCALE, Math.max(MIN_UI_SCALE, Math.round(numericValue * 100) / 100)) +} + +function applyUiScaleToWindow(window) { + if (!window || window.isDestroyed()) { + return + } + + window.webContents.setZoomFactor(normalizeUiScale(appSettings.uiScale)) +} + +function applyUiScaleToAllWindows() { + BrowserWindow.getAllWindows().forEach(applyUiScaleToWindow) } function loadSettings() { @@ -24,8 +47,9 @@ function loadSettings() { appSettings = { ...defaultSettings, ...JSON.parse(data) } } else { appSettings = { ...defaultSettings } - saveSettings() // Create the file with default settings + saveSettings() } + appSettings.uiScale = normalizeUiScale(appSettings.uiScale) } catch (error) { console.error('Failed to load settings:', error) appSettings = { ...defaultSettings } @@ -40,7 +64,7 @@ function saveSettings() { } } -async function createMainWindow () { +async function createMainWindow() { mainWindow = new BrowserWindow({ width: 1000, height: 720, @@ -50,17 +74,23 @@ async function createMainWindow () { webPreferences: { preload: path.join(__dirname, 'preload.cjs'), contextIsolation: true, - nodeIntegration: false - } + nodeIntegration: false, + }, }) + applyUiScaleToWindow(mainWindow) + mainWindow.on('ready-to-show', () => { mainWindow.show() }) + mainWindow.webContents.on('did-finish-load', () => { + applyUiScaleToWindow(mainWindow) + }) + mainWindow.on('focus', () => { - mainWindow.webContents.send('window-focused'); - }); + mainWindow.webContents.send('window-focused') + }) if (is.dev && process.env.VITE_DEV_SERVER_URL) { await mainWindow.loadURL(process.env.VITE_DEV_SERVER_URL) @@ -70,12 +100,12 @@ async function createMainWindow () { } mainWindow.webContents.setWindowOpenHandler(({ url }) => { - shell.openExternal(url); - return { action: 'deny' }; - }); + shell.openExternal(url) + return { action: 'deny' } + }) } -async function createSettingsWindow () { +async function createSettingsWindow() { if (settingsWindow) { settingsWindow.focus() return @@ -91,14 +121,20 @@ async function createSettingsWindow () { webPreferences: { preload: path.join(__dirname, 'preload.cjs'), contextIsolation: true, - nodeIntegration: false - } + nodeIntegration: false, + }, }) + applyUiScaleToWindow(settingsWindow) + settingsWindow.on('ready-to-show', () => { settingsWindow.show() }) + settingsWindow.webContents.on('did-finish-load', () => { + applyUiScaleToWindow(settingsWindow) + }) + settingsWindow.on('closed', () => { settingsWindow = null }) @@ -112,7 +148,7 @@ async function createSettingsWindow () { } app.whenReady().then(() => { - loadSettings() // Load settings when the app is ready + loadSettings() createMainWindow() const menuTemplate = [ @@ -122,11 +158,11 @@ app.whenReady().then(() => { { label: 'Settings', accelerator: 'CmdOrCtrl+,', - click: createSettingsWindow + click: createSettingsWindow, }, { type: 'separator' }, - { role: 'quit' } - ] + { role: 'quit' }, + ], }, { label: 'Edit', @@ -139,8 +175,8 @@ app.whenReady().then(() => { { role: 'paste' }, { role: 'delete' }, { type: 'separator' }, - { role: 'selectAll' } - ] + { role: 'selectAll' }, + ], }, { label: 'View', @@ -153,9 +189,9 @@ app.whenReady().then(() => { { role: 'zoomin' }, { role: 'zoomout' }, { type: 'separator' }, - { role: 'togglefullscreen' } - ] - } + { role: 'togglefullscreen' }, + ], + }, ] const menu = Menu.buildFromTemplate(menuTemplate) @@ -166,23 +202,40 @@ app.whenReady().then(() => { }) }) -// IPC handlers for settings -ipcMain.handle('get-settings', () => { - return appSettings -}) +ipcMain.handle('get-settings', () => appSettings) ipcMain.handle('set-setting', (event, key, value) => { - appSettings[key] = value + appSettings[key] = key === 'uiScale' ? normalizeUiScale(value) : value saveSettings() + if (key === 'uiScale') { + applyUiScaleToAllWindows() + } return true }) ipcMain.handle('update-settings', (event, settings) => { appSettings = { ...appSettings, ...settings } + appSettings.uiScale = normalizeUiScale(appSettings.uiScale) saveSettings() + if (Object.prototype.hasOwnProperty.call(settings, 'uiScale')) { + applyUiScaleToAllWindows() + } return true }) +ipcMain.handle('pick-paths', async () => { + const result = await dialog.showOpenDialog(mainWindow, { + properties: ['openFile', 'openDirectory', 'multiSelections'], + }) + return result.canceled ? [] : result.filePaths +}) + +ipcMain.handle('open-path', async (event, filePath) => { + if (!filePath) return false + const err = await shell.openPath(filePath) + return err === '' +}) + ipcMain.on('open-external-link', (event, url) => { shell.openExternal(url) }) diff --git a/electron/preload.cjs b/electron/preload.cjs index 0eb27d4..6ad4ce3 100644 --- a/electron/preload.cjs +++ b/electron/preload.cjs @@ -6,6 +6,8 @@ contextBridge.exposeInMainWorld('electronAPI', { getSettings: () => ipcRenderer.invoke('get-settings'), setSetting: (key, value) => ipcRenderer.invoke('set-setting', key, value), updateSettings: (settings) => ipcRenderer.invoke('update-settings', settings), + pickPaths: () => ipcRenderer.invoke('pick-paths'), + openPath: (filePath) => ipcRenderer.invoke('open-path', filePath), openExternalLink: (event) => { event.preventDefault(); const url = event.currentTarget.href; diff --git a/package.json b/package.json index c8fc3e7..55a1c2b 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "type": "module", "scripts": { "dev": "concurrently -k \"npm:dev:backend\" \"npm:dev:renderer\" \"npm:dev:electron\"", - "dev:backend": "python3 -m uvicorn backend.main:app --host 127.0.0.1 --port 8000 --reload", + "dev:backend": "backend/.venv/bin/python -m uvicorn backend.main:app --host 127.0.0.1 --port 8000 --reload", "dev:renderer": "vite --port 5173 --strictPort", "dev:electron": "wait-on http://localhost:5173 tcp:8000 && cross-env VITE_DEV_SERVER_URL=http://localhost:5173 electron .", "build": "vite build", diff --git a/run.sh b/run.sh index ab0eba8..9d2b691 100755 --- a/run.sh +++ b/run.sh @@ -1,6 +1,19 @@ #!/bin/sh -python -m venv backend/.venv -source backend/.venv/bin/activate -pip install -r backend/requirements.txt +set -eu + +PYTHON_BIN="${PYTHON_BIN:-python3.13}" +VENV_DIR="backend/.venv" + +if ! command -v "$PYTHON_BIN" >/dev/null 2>&1; then + echo "Python 3.13 is required. Set PYTHON_BIN to a Python 3.13 executable if needed." >&2 + exit 1 +fi + +if [ ! -x "$VENV_DIR/bin/python" ] || ! "$VENV_DIR/bin/python" -c 'import sys; raise SystemExit(0 if sys.version_info[:2] == (3, 13) else 1)'; then + rm -rf "$VENV_DIR" + "$PYTHON_BIN" -m venv "$VENV_DIR" +fi + +"$VENV_DIR/bin/python" -m pip install -r backend/requirements.txt npm install -npm run dev \ No newline at end of file +npm run dev diff --git a/src/App.jsx b/src/App.jsx index c608341..ca86d1c 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -4,8 +4,10 @@ import { flushSync } from 'react-dom'; import TextareaAutosize from 'react-textarea-autosize'; import GeneralSettings from './GeneralSettings' import InterfaceSettings from './InterfaceSettings' +import LibraryManager from './LibraryManager' import WebsearchSettings from './WebsearchSettings' import { markdownToHTML } from './markdown'; +import { applyColorScheme } from './colorSchemes' // Extract or block (first occurrence) and return { think, answer } function splitThinkBlocks(text) { if (!text) return { think: null, answer: '' }; @@ -81,12 +83,35 @@ function AssistantMessageContent({ content, streamOutput, sources }) {
{sources.map((u, i) => { let label = u; + let isFile = false; try { - const host = new URL(u).hostname || u; - label = host.replace(/^www\./i, ''); + const parsed = new URL(u); + if (parsed.protocol === 'file:') { + isFile = true; + const parts = parsed.pathname.split('/').filter(Boolean); + label = decodeURIComponent(parts[parts.length - 1] || u); + } else { + const host = parsed.hostname || u; + label = host.replace(/^www\./i, ''); + } } catch {} return ( - + { + if (!isFile) return; + event.preventDefault(); + try { + const parsed = new URL(u); + window.electronAPI?.openPath?.(decodeURIComponent(parsed.pathname)); + } catch {} + }} + > {label} ); @@ -101,6 +126,7 @@ const API_URL_KEY = 'ollamaApiUrl'; const COLOR_SCHEME_KEY = 'colorScheme'; const WEBSEARCH_URL_KEY = 'websearch.searxUrl'; const WEBSEARCH_ENGINES_KEY = 'websearch.engines'; +const CHAT_LIBRARY_KEY = 'chat.librarySlug'; // Initial API value will be set by useEffect after settings are loaded let API = import.meta.env.VITE_API_URL ?? 'http://127.0.0.1:8000'; @@ -113,6 +139,13 @@ export default function App() { const [activeSidebarMode, setActiveSidebarMode] = useState('chats') // 'chats', 'dbs', 'settings' const [activeSettingsSubmenu, setActiveSettingsSubmenu] = useState('General'); // 'General', 'Interface' const [editingSessionId, setEditingSessionId] = useState(null); // ID of the session being edited + const [libraries, setLibraries] = useState([]) + const [libraryJobs, setLibraryJobs] = useState([]) + const [activeLibrarySlug, setActiveLibrarySlug] = useState(null) + const [chatLibrarySlug, setChatLibrarySlug] = useState(localStorage.getItem(CHAT_LIBRARY_KEY) || null) + const [isCreatingLibrary, setIsCreatingLibrary] = useState(false) + const [newLibraryName, setNewLibraryName] = useState('') + const [libraryCreateError, setLibraryCreateError] = useState('') // Use currentSessionId for the actual chat operations const [model, setModel] = useState('') @@ -174,6 +207,38 @@ export default function App() { } } + function setAssistantMessageContent(sessionId, messageId, content, options = {}) { + const { removeIfEmpty = false } = options + + setChatSessions(prevSessions => + prevSessions.map(session => { + if (session.session_id !== sessionId) return session + + const nextMessages = [] + for (const message of session.messages || []) { + if (message.id !== messageId) { + nextMessages.push(message) + continue + } + + if (removeIfEmpty && !content) continue + nextMessages.push({ ...message, content }) + } + + return { ...session, messages: nextMessages } + }) + ) + } + + function isAbortError(error) { + return error?.name === 'AbortError' + } + + function getErrorText(error) { + if (error instanceof Error && error.message) return error.message + return String(error) + } + function startEditMessage(index, content) { setEditingMessageIndex(index); setEditText(content || ''); @@ -251,132 +316,134 @@ export default function App() { } async function regenerateFromIndex(index, overrideUserText = null) { - const sessionId = activeSessionId; - if (!sessionId || typeof index !== 'number') return; + const sessionId = activeSessionId + if (isSending || !sessionId || typeof index !== 'number') return - const msgs = (chatSessions.find(s => s.session_id === sessionId)?.messages) || []; - let lastUserIdx = index; + const msgs = (chatSessions.find(s => s.session_id === sessionId)?.messages) || [] + let lastUserIdx = index for (let i = index; i >= 0; i--) { - if (msgs[i]?.role === 'user') { lastUserIdx = i; break; } + if (msgs[i]?.role === 'user') { + lastUserIdx = i + break + } } - // Prune UI to lastUserIdx setChatSessions(prev => prev.map(s => s.session_id === sessionId ? { ...s, messages: (s.messages || []).slice(0, lastUserIdx + 1) } : s ) - ); + ) - setIsSending(true); + const requestController = beginCancelableRequest(sessionId) - // --- optional websearch enrichment for regenerate --- - let enrichedPrompt = null; - let citationSources = []; - if (webSearchEnabled) { - try { - // Use the freshly edited user text when provided - const promptText = (overrideUserText != null ? overrideUserText : (msgs[lastUserIdx]?.content || '')); + let enrichedPrompt = null + let citationSources = [] + try { + if (webSearchEnabled) { + try { + const promptText = overrideUserText != null ? overrideUserText : (msgs[lastUserIdx]?.content || '') + const historyForSearch = msgs + .slice(Math.max(0, lastUserIdx - 7), lastUserIdx + 1) + .map(m => ({ role: m.role, content: m.content || '' })) + if (historyForSearch.length > 0) { + historyForSearch[historyForSearch.length - 1] = { role: 'user', content: promptText } + } - // Build compact recent history and overwrite the last user turn with promptText - const historyForSearch = msgs - .slice(Math.max(0, lastUserIdx - 7), lastUserIdx + 1) - .map(m => ({ role: m.role, content: m.content || '' })); - if (historyForSearch.length > 0) { - historyForSearch[historyForSearch.length - 1] = { role: 'user', content: promptText }; - } - - const resp = await fetch(`${ollamaApiUrl}/websearch`, { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ - prompt: promptText, - model, - messages: historyForSearch, - history_limit: 8, - searx_url: searxUrl || null, - engines: Array.isArray(searxEngines) ? searxEngines : null, + const resp = await fetch(`${ollamaApiUrl}/websearch`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + signal: requestController.signal, + body: JSON.stringify({ + prompt: promptText, + model, + messages: historyForSearch, + history_limit: 8, + searx_url: searxUrl || null, + engines: Array.isArray(searxEngines) ? searxEngines : null, + }) }) - }); - const data = await resp.json(); - if (data && typeof data.enriched_prompt === 'string') { - enrichedPrompt = data.enriched_prompt; - citationSources = Array.isArray(data.sources) ? data.sources : []; + const data = await resp.json() + if (data && typeof data.enriched_prompt === 'string') { + enrichedPrompt = data.enriched_prompt + citationSources = Array.isArray(data.sources) ? data.sources : [] + } + } catch (error) { + if (isAbortError(error)) throw error + console.warn('web search enrichment (regenerate) failed', error) } - } catch (e) { - console.warn('web search enrichment (regenerate) failed', e); } - } - if (streamOutput) { - const assistantMsgId = `msg-${Date.now()}-${Math.random()}`; - // add placeholder assistant message (keep sources on the placeholder) - setChatSessions(prev => - prev.map(s => s.session_id === sessionId - ? { ...s, messages: [...(s.messages || []), { id: assistantMsgId, role: 'assistant', content: '', sources: citationSources }] } - : s + if (streamOutput) { + const assistantMsgId = `msg-${Date.now()}-${Math.random()}` + let full = '' + + setChatSessions(prev => + prev.map(s => s.session_id === sessionId + ? { ...s, messages: [...(s.messages || []), { id: assistantMsgId, role: 'assistant', content: '', sources: citationSources }] } + : s + ) ) - ); - try { - const res = await fetch(`${ollamaApiUrl}/sessions/${sessionId}/regenerate`, { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ - index, - model, - stream: true, - enriched_message: enrichedPrompt, - sources: citationSources || [] + try { + const res = await fetch(`${ollamaApiUrl}/sessions/${sessionId}/regenerate`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + signal: requestController.signal, + body: JSON.stringify({ + index, + model, + stream: true, + enriched_message: enrichedPrompt, + sources: citationSources || [] + }) }) - }); - const reader = res.body.getReader(); - const decoder = new TextDecoder(); - let full = ''; - let unreadMarked = false; + if (!res.ok) throw new Error(`HTTP ${res.status}`) - while (true) { - const { value, done } = await reader.read(); - if (done) break; + const reader = res.body?.getReader() + if (!reader) throw new Error('Missing response body') - const chunk = decoder.decode(value, { stream: true }); - full += chunk; + const decoder = new TextDecoder() + let unreadMarked = false - // Update the growing assistant message (sources remain intact) - setChatSessions(prev => - prev.map(s => s.session_id === sessionId - ? { ...s, messages: (s.messages || []).map(m => m.id === assistantMsgId ? { ...m, content: full } : m) } - : s - ) - ); + while (true) { + const { value, done } = await reader.read() + if (done) break - if (!unreadMarked && activeSessionIdRef.current !== sessionId) { - unreadMarked = true; - setPendingScrollToLastUser(prev => ({ ...prev, [sessionId]: assistantMsgId })); - setUnreadSessions(prev => [...new Set([...prev, sessionId])]); + const chunk = decoder.decode(value, { stream: true }) + full += chunk + setAssistantMessageContent(sessionId, assistantMsgId, full) + + if (!unreadMarked && activeSessionIdRef.current !== sessionId) { + unreadMarked = true + setPendingScrollToLastUser(prev => ({ ...prev, [sessionId]: assistantMsgId })) + setUnreadSessions(prev => [...new Set([...prev, sessionId])]) + } } - } - if (activeSessionIdRef.current !== sessionId) { - setPendingScrollToLastUser(prev => ({ ...prev, [sessionId]: assistantMsgId })); - setUnreadSessions(prev => [...new Set([...prev, sessionId])]); - } else { - if (!userScrolledUpRef.current[sessionId]) { - requestAnimationFrame(() => scrollMessageToTop(assistantMsgId, 'smooth', sessionId)); + if (activeSessionIdRef.current !== sessionId) { + setPendingScrollToLastUser(prev => ({ ...prev, [sessionId]: assistantMsgId })) + setUnreadSessions(prev => [...new Set([...prev, sessionId])]) + } else if (!userScrolledUpRef.current[sessionId]) { + requestAnimationFrame(() => scrollMessageToTop(assistantMsgId, 'smooth', sessionId)) } else { - setNewMsgTip(prev => ({ ...prev, [sessionId]: assistantMsgId })); + setNewMsgTip(prev => ({ ...prev, [sessionId]: assistantMsgId })) } + } catch (error) { + if (isAbortError(error)) { + setAssistantMessageContent(sessionId, assistantMsgId, full, { removeIfEmpty: true }) + return + } + + console.error(error) + setAssistantMessageContent(sessionId, assistantMsgId, `Error: ${getErrorText(error)}`, { removeIfEmpty: true }) + return } - } catch (e) { - console.error(e); - } finally { - setIsSending(false); - } - } else { - try { + } else { const res = await fetch(`${ollamaApiUrl}/sessions/${sessionId}/regenerate`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, + signal: requestController.signal, body: JSON.stringify({ index, model, @@ -384,31 +451,33 @@ async function regenerateFromIndex(index, overrideUserText = null) { enriched_message: enrichedPrompt, sources: citationSources || [] }) - }); - const data = await res.json(); - const assistantMsgId = `msg-${Date.now()}`; + }) + if (!res.ok) throw new Error(`HTTP ${res.status}`) + + const data = await res.json() + const assistantMsgId = `msg-${Date.now()}` setChatSessions(prev => prev.map(s => s.session_id === sessionId ? { ...s, messages: [...(s.messages || []), { role: 'assistant', content: data.reply, id: assistantMsgId, sources: citationSources }] } : s ) - ); + ) if (activeSessionIdRef.current !== sessionId) { - setPendingScrollToLastUser(prev => ({ ...prev, [sessionId]: assistantMsgId })); - setUnreadSessions(prev => [...new Set([...prev, sessionId])]); + setPendingScrollToLastUser(prev => ({ ...prev, [sessionId]: assistantMsgId })) + setUnreadSessions(prev => [...new Set([...prev, sessionId])]) + } else if (!userScrolledUpRef.current[sessionId]) { + requestAnimationFrame(() => scrollMessageToTop(assistantMsgId, 'smooth', sessionId)) } else { - if (!userScrolledUpRef.current[sessionId]) { - requestAnimationFrame(() => scrollMessageToTop(assistantMsgId, 'smooth', sessionId)); - } else { - setNewMsgTip(prev => ({ ...prev, [sessionId]: assistantMsgId })); - } + setNewMsgTip(prev => ({ ...prev, [sessionId]: assistantMsgId })) } - } catch (e) { - console.error(e); - } finally { - setIsSending(false); } + } catch (error) { + if (!isAbortError(error)) { + console.error(error) + } + } finally { + finishCancelableRequest(requestController) } } @@ -468,7 +537,7 @@ async function regenerateFromIndex(index, overrideUserText = null) { }); }, []); - const activeRequestSessionId = useRef(null); + const activeRequestRef = useRef(null); const justSentMessage = useRef(false); const lastSentSessionRef = useRef(null); const activeSessionIdRef = useRef(activeSessionId); @@ -476,6 +545,33 @@ async function regenerateFromIndex(index, overrideUserText = null) { activeSessionIdRef.current = activeSessionId; }, [activeSessionId]); + const beginCancelableRequest = React.useCallback((sessionId) => { + const controller = new AbortController() + activeRequestRef.current = { controller, sessionId } + setIsSending(true) + return controller + }, []) + + const finishCancelableRequest = React.useCallback((controller) => { + if (activeRequestRef.current?.controller !== controller) return + activeRequestRef.current = null + setIsSending(false) + }, []) + + const cancelActiveRequest = React.useCallback(() => { + const activeRequest = activeRequestRef.current + if (!activeRequest) return + activeRequestRef.current = null + activeRequest.controller.abort() + setIsSending(false) + }, []) + + useEffect(() => { + return () => { + activeRequestRef.current?.controller.abort() + } + }, []) + // Flag to ensure we only restore once per open of a chat const restoredForRef = useRef(null); @@ -544,11 +640,11 @@ async function regenerateFromIndex(index, overrideUserText = null) { useEffect(() => { window.electronAPI.getSettings().then(settings => { setOllamaApiUrl(settings.ollamaApiUrl); - setColorScheme(settings.colorScheme); + setColorScheme(settings.colorScheme || 'Default'); setModel(settings.chatModel || ''); // Load the selected model, with a fallback setStreamOutput(settings.streamOutput || false); setScrollPositions(settings.scrollPositions || {}); // Load scroll positions - applyColorScheme(settings.colorScheme); // Apply initial scheme + applyColorScheme(settings.colorScheme || 'Default'); // Apply initial scheme }); const handleFocus = () => { @@ -573,19 +669,6 @@ async function regenerateFromIndex(index, overrideUserText = null) { applyColorScheme(colorScheme); }, [colorScheme]); - // Function to apply color scheme - const colorSchemes = { - }; - - function applyColorScheme(schemeName) { - const scheme = colorSchemes[schemeName]; - if (scheme) { - for (const [key, value] of Object.entries(scheme)) { - document.documentElement.style.setProperty(key, value); - } - } - } - const fetchHistory = (sessionId) => { if (!sessionId || !ollamaApiUrl) return; fetch(`${ollamaApiUrl}/history?session_id=${encodeURIComponent(sessionId)}`) @@ -602,6 +685,73 @@ async function regenerateFromIndex(index, overrideUserText = null) { .catch(() => {}); }; + async function refreshLibraries() { + if (!ollamaApiUrl) return; + try { + const response = await fetch(`${ollamaApiUrl}/libraries`); + const data = await response.json(); + const nextLibraries = Array.isArray(data.libraries) ? data.libraries : []; + setLibraries(nextLibraries); + + if (nextLibraries.length === 0) { + setActiveLibrarySlug(null); + setChatLibrarySlug(null); + return; + } + + if (!nextLibraries.some(lib => lib.slug === activeLibrarySlug)) { + setActiveLibrarySlug(nextLibraries[0].slug); + } + if (chatLibrarySlug && !nextLibraries.some(lib => lib.slug === chatLibrarySlug)) { + setChatLibrarySlug(null); + } + } catch (error) { + console.warn('Failed to load libraries', error); + } + } + + async function refreshLibraryJobs() { + if (!ollamaApiUrl) return; + try { + const response = await fetch(`${ollamaApiUrl}/jobs`); + const data = await response.json(); + setLibraryJobs(Array.isArray(data.jobs) ? data.jobs : []); + } catch (error) { + console.warn('Failed to load library jobs', error); + } + } + + async function createLibrary(nameOverride = null) { + const rawName = typeof nameOverride === 'string' ? nameOverride : newLibraryName + const name = rawName.trim() + if (!name) { + setLibraryCreateError('Name is required.') + return + } + try { + setLibraryCreateError('') + const response = await fetch(`${ollamaApiUrl}/libraries`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ name }) + }); + if (!response.ok) { + const detail = await response.text() + throw new Error(detail || `HTTP ${response.status}`) + } + const data = await response.json(); + setIsCreatingLibrary(false) + setNewLibraryName('') + await refreshLibraries(); + if (data?.slug) { + setActiveLibrarySlug(data.slug); + } + } catch (error) { + console.error('Failed to create library', error); + setLibraryCreateError(String(error?.message || error)) + } + } + // Load chat sessions from backend on initial render useEffect(() => { if (!ollamaApiUrl) return; @@ -623,6 +773,31 @@ async function regenerateFromIndex(index, overrideUserText = null) { }); }, [ollamaApiUrl]); + useEffect(() => { + if (!ollamaApiUrl) return; + refreshLibraries(); + refreshLibraryJobs(); + }, [ollamaApiUrl]); + + useEffect(() => { + try { + if (chatLibrarySlug) { + localStorage.setItem(CHAT_LIBRARY_KEY, chatLibrarySlug); + } else { + localStorage.removeItem(CHAT_LIBRARY_KEY); + } + } catch {} + }, [chatLibrarySlug]); + + useEffect(() => { + if (!ollamaApiUrl) return; + const interval = setInterval(() => { + refreshLibraries(); + refreshLibraryJobs(); + }, 3000); + return () => clearInterval(interval); + }, [ollamaApiUrl, activeSidebarMode, activeLibrarySlug, chatLibrarySlug]); + // Load messages for the active session useEffect(() => { fetchHistory(activeSessionId); @@ -642,6 +817,14 @@ async function regenerateFromIndex(index, overrideUserText = null) { return chatSessions.find(s => s.session_id === activeSessionId)?.messages || []; }, [activeSessionId, chatSessions]); + const activeLibrary = useMemo(() => { + return libraries.find(lib => lib.slug === activeLibrarySlug) || null; + }, [activeLibrarySlug, libraries]); + + const chatLibrary = useMemo(() => { + return libraries.find(lib => lib.slug === chatLibrarySlug) || null; + }, [chatLibrarySlug, libraries]); + // Persist the scrollTop of the session we are LEAVING (on chat change or when leaving the chat view) useEffect(() => { const leavingSessionId = activeSessionId; @@ -821,27 +1004,27 @@ async function regenerateFromIndex(index, overrideUserText = null) { async function sendMessage() { - if (!input.trim() || !model) return; + if (isSending || !input.trim() || !model) return - let targetSessionId = activeSessionId; - let isNewChat = false; + let targetSessionId = activeSessionId + let isNewChat = false if (!targetSessionId) { - const newSession = await createNewChat(); - await new Promise(resolve => setTimeout(resolve, 200)); - targetSessionId = newSession.session_id; - isNewChat = true; + const newSession = await createNewChat() + await new Promise(resolve => setTimeout(resolve, 200)) + targetSessionId = newSession.session_id + isNewChat = true } else { - const currentSession = chatSessions.find(s => s.session_id === targetSessionId); - isNewChat = currentSession && currentSession.name === "New Chat" && currentSession.messages.length === 0; + const currentSession = chatSessions.find(s => s.session_id === targetSessionId) + isNewChat = currentSession && currentSession.name === "New Chat" && currentSession.messages.length === 0 } - const userMsg = { role: 'user', content: input.trim(), id: `msg-${Date.now()}-${Math.random()}` }; - justSentMessage.current = true; - lastSentSessionRef.current = targetSessionId; - setUserScrolledUp(targetSessionId, false); + const userMsg = { role: 'user', content: input.trim(), id: `msg-${Date.now()}-${Math.random()}` } + justSentMessage.current = true + lastSentSessionRef.current = targetSessionId + setUserScrolledUp(targetSessionId, false) if (activeSessionIdRef.current === targetSessionId) { - restoredForRef.current = activeSessionIdRef.current; + restoredForRef.current = activeSessionIdRef.current } flushSync(() => { @@ -851,31 +1034,54 @@ async function sendMessage() { ? { ...session, messages: [...(session.messages || []), userMsg] } : session ) - ); - setInput(''); - }); - requestAnimationFrame(() => scrollToBottom('auto', targetSessionId)); + ) + setInput('') + }) + requestAnimationFrame(() => scrollToBottom('auto', targetSessionId)) - setIsSending(true); + const requestController = beginCancelableRequest(targetSessionId) try { - // Build compact recent history for context-aware websearch (resource-friendly). - // We only send the last 8 turns by default, including assistant replies, - // and we also append the *current* user message (same content as `userMsg`). - let historyForSearch = []; + let historyForSearch = [] try { - const existing = (chatSessions.find(s => s.session_id === targetSessionId)?.messages) || []; - const lastFew = existing.slice(-8).map(m => ({ role: m.role, content: m.content || '' })); - historyForSearch = [...lastFew, { role: 'user', content: userMsg.content }]; + const existing = (chatSessions.find(s => s.session_id === targetSessionId)?.messages) || [] + const lastFew = existing.slice(-8).map(m => ({ role: m.role, content: m.content || '' })) + historyForSearch = [...lastFew, { role: 'user', content: userMsg.content }] } catch {} - // Decide on enrichment using the toggle - let enrichedPrompt = userMsg.content; - let citationSources = []; + let enrichedPrompt = userMsg.content + let citationSources = [] + const contextBlocks = [] + + if (chatLibrarySlug) { + try { + const resp = await fetch(`${ollamaApiUrl}/libraries/${chatLibrarySlug}/context`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + signal: requestController.signal, + body: JSON.stringify({ + prompt: userMsg.content, + top_k: 5 + }) + }) + const data = await resp.json() + if (data && typeof data.context_block === 'string' && data.context_block.trim()) { + contextBlocks.push(data.context_block.trim()) + } + if (Array.isArray(data?.sources)) { + citationSources.push(...data.sources) + } + } catch (error) { + if (isAbortError(error)) throw error + console.warn('local library enrichment failed', error) + } + } + if (webSearchEnabled) { try { const resp = await fetch(`${ollamaApiUrl}/websearch`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, + signal: requestController.signal, body: JSON.stringify({ prompt: userMsg.content, model, @@ -884,143 +1090,124 @@ async function sendMessage() { searx_url: searxUrl || null, engines: Array.isArray(searxEngines) ? searxEngines : null, }) - }); - const data = await resp.json(); - if (data && typeof data.enriched_prompt === 'string') { - enrichedPrompt = data.enriched_prompt; - citationSources = Array.isArray(data.sources) ? data.sources : []; + }) + const data = await resp.json() + if (data && typeof data.context_block === 'string' && data.context_block.trim()) { + contextBlocks.push(data.context_block.trim()) } - } catch (e) { - console.warn('web search enrichment failed', e); + if (Array.isArray(data?.sources)) { + citationSources.push(...data.sources) + } + } catch (error) { + if (isAbortError(error)) throw error + console.warn('web search enrichment failed', error) } } + citationSources = [...new Set(citationSources)] + if (contextBlocks.length > 0) { + enrichedPrompt = `${userMsg.content}\n\n${contextBlocks.join('\n\n')}` + } + if (streamOutput) { - const assistantMsgId = `msg-${Date.now()}-${Math.random()}`; - const assistantMsg = { role: 'assistant', content: '', id: assistantMsgId, sources: citationSources }; + const assistantMsgId = `msg-${Date.now()}-${Math.random()}` + let fullReply = '' + const assistantMsg = { role: 'assistant', content: '', id: assistantMsgId, sources: citationSources } setChatSessions(prevSessions => prevSessions.map(session => session.session_id === targetSessionId ? { ...session, messages: [...(session.messages || []), assistantMsg] } : session ) - ); + ) - (async () => { - try { - const res = await fetch(`${ollamaApiUrl}/chat`, { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ - session_id: targetSessionId, - model, - message: userMsg.content, - enriched_message: webSearchEnabled ? enrichedPrompt : null, - stream: true, - sources: citationSources || [] - }) - }); + try { + const res = await fetch(`${ollamaApiUrl}/chat`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + signal: requestController.signal, + body: JSON.stringify({ + session_id: targetSessionId, + model, + message: userMsg.content, + enriched_message: contextBlocks.length > 0 ? enrichedPrompt : null, + stream: true, + sources: citationSources || [] + }) + }) + if (!res.ok) throw new Error(`HTTP ${res.status}`) - const reader = res.body.getReader(); - const decoder = new TextDecoder(); - let fullReply = ''; - let pendingMarked = false; + const reader = res.body?.getReader() + if (!reader) throw new Error('Missing response body') - while (true) { - const { value, done } = await reader.read(); - if (done) { - setChatSessions(prevSessions => - prevSessions.map(session => - session.session_id === targetSessionId - ? { - ...session, - messages: session.messages.map(m => - m.id === assistantMsgId ? { ...m, content: fullReply } : m - ) - } - : session - ) - ); + const decoder = new TextDecoder() + let pendingMarked = false - if (activeSessionIdRef.current === targetSessionId) { - if (!userScrolledUpRef.current[targetSessionId]) { - requestAnimationFrame(() => scrollMessageToTop(assistantMsgId, 'smooth', targetSessionId)); - } else { - setNewMsgTip(prev => ({ ...prev, [targetSessionId]: assistantMsgId })); - } + while (true) { + const { value, done } = await reader.read() + if (done) { + setAssistantMessageContent(targetSessionId, assistantMsgId, fullReply) + + if (activeSessionIdRef.current === targetSessionId) { + if (!userScrolledUpRef.current[targetSessionId]) { + requestAnimationFrame(() => scrollMessageToTop(assistantMsgId, 'smooth', targetSessionId)) } else { - setPendingScrollToLastUser(prev => ({ ...prev, [targetSessionId]: assistantMsgId })); - setUnreadSessions(prev => [...new Set([...prev, targetSessionId])]); + setNewMsgTip(prev => ({ ...prev, [targetSessionId]: assistantMsgId })) } + } else { + setPendingScrollToLastUser(prev => ({ ...prev, [targetSessionId]: assistantMsgId })) + setUnreadSessions(prev => [...new Set([...prev, targetSessionId])]) + } - break; - } - const chunk = decoder.decode(value, { stream: true }); - fullReply += chunk; - setChatSessions(prevSessions => - prevSessions.map(session => - session.session_id === targetSessionId - ? { - ...session, - messages: session.messages.map(m => - m.id === assistantMsgId ? { ...m, content: fullReply } : m - ) - } - : session - ) - ); - - if ( - activeSessionIdRef.current === targetSessionId && - !userScrolledUpRef.current[targetSessionId] - ) { - scrollToBottom('auto', targetSessionId); - } - if (activeSessionIdRef.current !== targetSessionId && !pendingMarked) { - setPendingScrollToLastUser(prev => ({ ...prev, [targetSessionId]: assistantMsgId })); - pendingMarked = true; - } + break + } + + const chunk = decoder.decode(value, { stream: true }) + fullReply += chunk + setAssistantMessageContent(targetSessionId, assistantMsgId, fullReply) + + if (activeSessionIdRef.current === targetSessionId && !userScrolledUpRef.current[targetSessionId]) { + scrollToBottom('auto', targetSessionId) + } + if (activeSessionIdRef.current !== targetSessionId && !pendingMarked) { + setPendingScrollToLastUser(prev => ({ ...prev, [targetSessionId]: assistantMsgId })) + pendingMarked = true } - } catch (e) { - console.error('Failed to send message:', e); - const errorMsg = { - role: 'assistant', - content: 'Error: ' + e.message, - id: `msg-${Date.now()}-${Math.random()}`, - sources: citationSources - }; - setChatSessions(prevSessions => - prevSessions.map(session => - session.session_id === targetSessionId - ? { ...session, messages: [...session.messages.slice(0, -1), errorMsg] } - : session - ) - ); - } finally { - setIsSending(false); } - })(); + } catch (error) { + if (isAbortError(error)) { + setAssistantMessageContent(targetSessionId, assistantMsgId, fullReply, { removeIfEmpty: true }) + return + } + + console.error('Failed to send message:', error) + setAssistantMessageContent(targetSessionId, assistantMsgId, 'Error: ' + getErrorText(error), { removeIfEmpty: true }) + return + } } else { const res = await fetch(`${ollamaApiUrl}/chat`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, + signal: requestController.signal, body: JSON.stringify({ session_id: targetSessionId, model, message: userMsg.content, - enriched_message: webSearchEnabled ? enrichedPrompt : null, + enriched_message: contextBlocks.length > 0 ? enrichedPrompt : null, stream: false, sources: citationSources || [] }) - }); - const data = await res.json(); - const assistantMsgId = `msg-${Date.now()}`; + }) + if (!res.ok) throw new Error(`HTTP ${res.status}`) + + const data = await res.json() + const assistantMsgId = `msg-${Date.now()}` const assistantMsg = { role: 'assistant', content: data.reply, id: assistantMsgId, sources: citationSources - }; + } setChatSessions(prevSessions => prevSessions.map(session => @@ -1028,24 +1215,23 @@ async function sendMessage() { ? { ...session, messages: [...(session.messages || []), assistantMsg] } : session ) - ); + ) if (assistantMsgId) { if (activeSessionIdRef.current === targetSessionId) { if (!userScrolledUpRef.current[targetSessionId]) { - requestAnimationFrame(() => scrollMessageToTop(assistantMsgId, 'smooth', targetSessionId)); + requestAnimationFrame(() => scrollMessageToTop(assistantMsgId, 'smooth', targetSessionId)) } else { - setNewMsgTip(prev => ({ ...prev, [targetSessionId]: assistantMsgId })); + setNewMsgTip(prev => ({ ...prev, [targetSessionId]: assistantMsgId })) } } else { - setPendingScrollToLastUser(prev => ({ ...prev, [targetSessionId]: assistantMsgId })); + setPendingScrollToLastUser(prev => ({ ...prev, [targetSessionId]: assistantMsgId })) } } - setIsSending(false); } if (activeSessionIdRef.current !== targetSessionId) { - setUnreadSessions(prev => [...new Set([...prev, targetSessionId])]); + setUnreadSessions(prev => [...new Set([...prev, targetSessionId])]) } if (isNewChat) { @@ -1055,30 +1241,36 @@ async function sendMessage() { body: JSON.stringify({ session_id: targetSessionId, message: userMsg.content, - model: model + model }) }) .then(r => r.json()) .then(data => { - const sanitizedTitle = data.title.replace(/[\s\S]*?<\/think(?:ing)?>/i, '').trim(); + const sanitizedTitle = data.title.replace(/[\s\S]*?<\/think(?:ing)?>/i, '').trim() setChatSessions(prevSessions => prevSessions.map(session => session.session_id === targetSessionId ? { ...session, name: sanitizedTitle } : session ) - ); - }); + ) + }) } - } catch (e) { - console.error("Failed to send message:", e); - const errorMsg = { role: 'assistant', content: 'Error: ' + e.message, id: `msg-${Date.now()}-${Math.random()}` }; + } catch (error) { + if (isAbortError(error)) { + finishCancelableRequest(requestController) + return + } + + console.error('Failed to send message:', error) + const errorMsg = { role: 'assistant', content: 'Error: ' + getErrorText(error), id: `msg-${Date.now()}-${Math.random()}` } setChatSessions(prevSessions => prevSessions.map(session => session.session_id === targetSessionId ? { ...session, messages: [...session.messages, errorMsg] } : session ) - ); - setIsSending(false); + ) + } finally { + finishCancelableRequest(requestController) } } @@ -1267,7 +1459,20 @@ async function createNewChat() { )} {activeSidebarMode === 'dbs' && (
-
No databases yet.
+ {libraries.length === 0 ? ( +
No databases yet.
+ ) : ( + libraries.map(library => ( +
setActiveLibrarySlug(library.slug)} + > + {library.name} + {chatLibrarySlug === library.slug &&
Chat
} +
+ )) + )}
)} {activeSidebarMode === 'settings' && ( @@ -1299,7 +1504,51 @@ async function createNewChat() { )} {activeSidebarMode === 'dbs' && ( - + isCreatingLibrary ? ( +
+ setNewLibraryName(e.target.value)} + onKeyDown={(e) => { + if (e.key === 'Enter') { + createLibrary() + } else if (e.key === 'Escape') { + setIsCreatingLibrary(false) + setNewLibraryName('') + setLibraryCreateError('') + } + }} + placeholder="Database name" + autoFocus + /> + {libraryCreateError &&
{libraryCreateError}
} +
+ + +
+
+ ) : ( + + ) )}
)} @@ -1310,6 +1559,7 @@ async function createNewChat() { <>
Chat - {chatSessions.find(s => s.session_id === activeSessionId)?.name || 'New Chat'} + {chatLibrary && KB: {chatLibrary.name}}
@@ -1445,7 +1695,12 @@ async function createNewChat() { -
@@ -1453,10 +1708,32 @@ async function createNewChat() { )} {activeSidebarMode === 'dbs' && ( -
-

Databases

-

This is a placeholder for the database management view.

-
+ <> +
+ {activeLibrary?.name || 'Databases'} + {chatLibrary && Chat KB: {chatLibrary.name}} +
+ { + await refreshLibraries(); + await refreshLibraryJobs(); + }} + onToggleChatLibrary={setChatLibrarySlug} + onDeleted={(slug) => { + if (activeLibrarySlug === slug) { + const next = libraries.find(lib => lib.slug !== slug); + setActiveLibrarySlug(next?.slug || null); + } + if (chatLibrarySlug === slug) { + setChatLibrarySlug(null); + } + }} + /> + )} {activeSidebarMode === 'settings' && ( <> diff --git a/src/InterfaceSettings.jsx b/src/InterfaceSettings.jsx index 40d88f8..c45fc2d 100644 --- a/src/InterfaceSettings.jsx +++ b/src/InterfaceSettings.jsx @@ -1,27 +1,58 @@ -import React, { useState, useEffect } from 'react'; -import { colorSchemes, applyColorScheme } from './colorSchemes'; +import React, { useEffect, useState } from 'react' +import { colorSchemes, applyColorScheme } from './colorSchemes' -const COLOR_SCHEME_KEY = 'colorScheme'; +const COLOR_SCHEME_KEY = 'colorScheme' +const UI_SCALE_KEY = 'uiScale' +const DEFAULT_UI_SCALE = 1 +const MIN_UI_SCALE = 0.7 +const MAX_UI_SCALE = 1.3 +const UI_SCALE_STEP = 0.05 + +function normalizeUiScale(value) { + const numericValue = Number(value) + if (!Number.isFinite(numericValue)) { + return DEFAULT_UI_SCALE + } + + return Math.min(MAX_UI_SCALE, Math.max(MIN_UI_SCALE, Math.round(numericValue * 100) / 100)) +} export default function InterfaceSettings() { - const [selectedColorScheme, setSelectedColorScheme] = useState('Default'); + const [selectedColorScheme, setSelectedColorScheme] = useState('Default') + const [uiScale, setUiScale] = useState(DEFAULT_UI_SCALE) useEffect(() => { window.electronAPI.getSettings().then(settings => { - setSelectedColorScheme(settings.colorScheme); - applyColorScheme(settings.colorScheme); - }); - }, []); + const schemeName = settings.colorScheme || 'Default' + setSelectedColorScheme(schemeName) + setUiScale(normalizeUiScale(settings.uiScale)) + applyColorScheme(schemeName) + }) + }, []) useEffect(() => { - applyColorScheme(selectedColorScheme); - }, [selectedColorScheme]); + applyColorScheme(selectedColorScheme) + }, [selectedColorScheme]) - const handleColorSchemeChange = (e) => { - const newScheme = e.target.value; - setSelectedColorScheme(newScheme); - window.electronAPI.setSetting(COLOR_SCHEME_KEY, newScheme); - }; + const handleColorSchemeChange = (event) => { + const newScheme = event.target.value + setSelectedColorScheme(newScheme) + window.electronAPI.setSetting(COLOR_SCHEME_KEY, newScheme) + } + + const persistUiScale = (value) => { + const nextScale = normalizeUiScale(value) + setUiScale(nextScale) + window.electronAPI.setSetting(UI_SCALE_KEY, nextScale) + } + + const handleUiScaleChange = (event) => { + persistUiScale(event.target.value) + } + + const handleUiScaleReset = () => { + persistUiScale(DEFAULT_UI_SCALE) + } return (
@@ -39,6 +70,32 @@ export default function InterfaceSettings() { ))}
+
+

UI Scale

+
+ + {Math.round(uiScale * 100)}% + +
+

+ Scales the whole interface, including fonts, spacing, and controls. 100% is the default size. +

+
- ); + ) } diff --git a/src/LibraryManager.jsx b/src/LibraryManager.jsx new file mode 100644 index 0000000..412b5cb --- /dev/null +++ b/src/LibraryManager.jsx @@ -0,0 +1,274 @@ +import React, { useEffect, useState } from 'react' + +function statusLabel(job) { + if (!job) return null + const progress = typeof job.progress === 'number' ? `${job.progress.toFixed(0)}%` : null + const detail = job.detail ? ` ${job.detail}` : '' + return `${job.type} · ${job.status}${progress ? ` · ${progress}` : ''}${detail}` +} + +export default function LibraryManager({ + apiBase, + library, + jobs, + chatLibrarySlug, + onRefresh, + onToggleChatLibrary, + onDeleted +}) { + const [busy, setBusy] = useState(false) + const [isRenaming, setIsRenaming] = useState(false) + const [renameValue, setRenameValue] = useState('') + const [confirmDelete, setConfirmDelete] = useState(false) + const [errorMessage, setErrorMessage] = useState('') + + useEffect(() => { + setIsRenaming(false) + setRenameValue(library?.name || '') + setConfirmDelete(false) + setErrorMessage('') + }, [library?.slug, library?.name]) + + async function expectOk(response) { + if (response.ok) return response + const detail = await response.text() + throw new Error(detail || `HTTP ${response.status}`) + } + + async function runAction(fn) { + setBusy(true) + try { + setErrorMessage('') + await fn() + setConfirmDelete(false) + } finally { + setBusy(false) + await onRefresh() + } + } + + async function addPaths() { + if (!library) return + const paths = await window.electronAPI?.pickPaths?.() + if (!Array.isArray(paths) || paths.length === 0) return + try { + await runAction(async () => { + const response = await fetch(`${apiBase}/libraries/${library.slug}/files/register`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ paths }) + }) + await expectOk(response) + }) + } catch (error) { + setErrorMessage(String(error?.message || error)) + } + } + + async function removeFile(rel) { + if (!library) return + try { + await runAction(async () => { + const response = await fetch(`${apiBase}/libraries/${library.slug}/files`, { + method: 'DELETE', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ rel }) + }) + await expectOk(response) + }) + } catch (error) { + setErrorMessage(String(error?.message || error)) + } + } + + async function renameLibrary() { + if (!library) return + const name = renameValue.trim() + if (!name || name === library.name) { + setIsRenaming(false) + setRenameValue(library.name || '') + return + } + await runAction(async () => { + const response = await fetch(`${apiBase}/libraries/${library.slug}`, { + method: 'PATCH', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ name }) + }) + await expectOk(response) + }) + setIsRenaming(false) + } + + async function deleteLibrary() { + if (!library) return + await runAction(async () => { + const response = await fetch(`${apiBase}/libraries/${library.slug}`, { method: 'DELETE' }) + await expectOk(response) + }) + onDeleted?.(library.slug) + } + + async function startJob(kind) { + if (!library) return + try { + await runAction(async () => { + const endpoint = `${apiBase}/libraries/${library.slug}/jobs/${kind}` + const options = { + method: 'POST', + headers: { 'Content-Type': 'application/json' } + } + if (kind === 'embed') { + options.body = JSON.stringify({}) + } + const response = await fetch(endpoint, options) + await expectOk(response) + }) + } catch (error) { + setErrorMessage(String(error?.message || error)) + } + } + + if (!library) { + return ( +
+

Create a database, add files or folders, then build and index it for local RAG.

+
+ ) + } + + const activeJobs = (jobs || []).filter(job => job.slug === library.slug && (job.status === 'queued' || job.status === 'running')) + const usingInChat = chatLibrarySlug === library.slug + const canStartRename = () => { + setRenameValue(library.name || '') + setErrorMessage('') + setIsRenaming(true) + setConfirmDelete(false) + } + + return ( +
+ {isRenaming && ( +
+ setRenameValue(e.target.value)} + onKeyDown={(e) => { + if (e.key === 'Enter') { + renameLibrary().catch((error) => setErrorMessage(String(error?.message || error))) + } else if (e.key === 'Escape') { + setIsRenaming(false) + setRenameValue(library.name || '') + } + }} + autoFocus + /> +
+ + +
+
+ )} + + {confirmDelete && ( +
+
Delete "{library.name}"? This removes the local index and metadata for this database.
+
+ + +
+
+ )} + + {errorMessage &&
{errorMessage}
} + +
+ + + + + + + +
+ +
+
Files: {library.files?.length || 0}
+
Corpus: {library.artifacts?.corpus_records || 0}
+
Enriched: {library.artifacts?.enhanced_records || 0}
+
Indexed
+
+ + {usingInChat && ( +
+ This database will be queried before each chat request and its context will be appended to the prompt. +
+ )} + + {activeJobs.length > 0 && ( +
+ {activeJobs.map(job => ( +
+ {statusLabel(job)} +
+ ))} +
+ )} + +
+

Files

+ {library.files?.length ? ( +
+ {library.files.map(file => ( +
+
+
{file.name || file.path}
+
{file.path}
+
+
+ + +
+
+ ))} +
+ ) : ( +

No files registered yet.

+ )} +
+
+ ) +} diff --git a/src/colorSchemes.js b/src/colorSchemes.js index 124617e..f881fe9 100644 --- a/src/colorSchemes.js +++ b/src/colorSchemes.js @@ -1,5 +1,18 @@ const colorSchemes = { - 'Nightsky': { + Default: { + '--bg': '#0b1020', + '--panel': '#141b34', + '--text': '#e6e8ef', + '--muted': '#9aa3b2', + '--accent': '#6ea8fe', + '--border': '#24304f', + '--input-bg': '#121933', + '--user-msg-bg': '#18213d', + '--assistant-msg-bg': '#10172d', + '--active-bg': 'rgba(110, 168, 254, 0.16)', + '--hover-bg': 'rgba(255, 255, 255, 0.06)', + }, + Nightsky: { '--bg': '#0a0e1a', '--panel': '#18203a', '--text': '#ffffff', @@ -12,7 +25,7 @@ const colorSchemes = { '--active-bg': 'rgba(74, 144, 226, 0.15)', '--hover-bg': 'rgba(255, 255, 255, 0.05)', }, - 'Grayscale': { + Grayscale: { '--bg': '#1a1a1a', '--panel': '#2a2a2a', '--text': '#f0f0f0', @@ -25,33 +38,33 @@ const colorSchemes = { '--active-bg': 'rgba(136, 136, 136, 0.15)', '--hover-bg': 'rgba(255, 255, 255, 0.05)', }, - 'Japan': { + Japan: { '--bg': '#ffffff', '--panel': '#f5f5f5', '--text': '#000000', '--muted': '#444444', - '--accent': '#e74c3c', /* Vibrant Red */ + '--accent': '#e74c3c', '--border': '#999999', '--input-bg': '#ffffff', '--user-msg-bg': '#f0f0f0', '--assistant-msg-bg': '#f0f0f0', - '--active-bg': 'rgba(231, 76, 60, 0.15)', /* Light red for active */ - '--hover-bg': 'rgba(231, 76, 60, 0.08)', /* Lighter red for hover */ + '--active-bg': 'rgba(231, 76, 60, 0.15)', + '--hover-bg': 'rgba(231, 76, 60, 0.08)', }, - 'Lime': { + Lime: { '--bg': '#f0fff0', '--panel': '#e0ffe0', '--text': '#1a1a1a', '--muted': '#72a272ff', - '--accent': '#deef88', + '--accent': '#8e9f38ff', '--border': '#a0c0a0', '--input-bg': '#ffffff', - '--user-msg-bg': '#f8f7ad', + '--user-msg-bg': '#f8f7adff', '--assistant-msg-bg': '#f5fff5', '--active-bg': 'rgba(104, 159, 56, 0.2)', '--hover-bg': 'rgba(104, 159, 56, 0.1)', }, - 'Vampire': { + Vampire: { '--bg': '#1a050a', '--panel': '#2a1015', '--text': '#ffefff', @@ -64,15 +77,80 @@ const colorSchemes = { '--active-bg': 'rgba(216, 27, 96, 0.15)', '--hover-bg': 'rgba(255, 255, 255, 0.05)', }, -}; + 'Sunset Drive': { + '--bg': '#1f1024', + '--panel': '#2e1632', + '--text': '#fff2ea', + '--muted': '#caa8b7', + '--accent': '#ff8a5b', + '--border': '#593050', + '--input-bg': '#26132a', + '--user-msg-bg': '#442038', + '--assistant-msg-bg': '#32172c', + '--active-bg': 'rgba(255, 138, 91, 0.18)', + '--hover-bg': 'rgba(255, 138, 91, 0.08)', + }, + 'Aurora Pulse': { + '--bg': '#07171d', + '--panel': '#102730', + '--text': '#eafcff', + '--muted': '#9bc8cf', + '--accent': '#54f2c2', + '--border': '#214853', + '--input-bg': '#0b2028', + '--user-msg-bg': '#12313d', + '--assistant-msg-bg': '#0f2530', + '--active-bg': 'rgba(84, 242, 194, 0.18)', + '--hover-bg': 'rgba(84, 242, 194, 0.08)', + }, + 'Sakura Neon': { + '--bg': '#160b1d', + '--panel': '#251331', + '--text': '#fff5fd', + '--muted': '#d4abc7', + '--accent': '#ff4fb6', + '--border': '#52315f', + '--input-bg': '#1d1027', + '--user-msg-bg': '#341844', + '--assistant-msg-bg': '#281534', + '--active-bg': 'rgba(255, 79, 182, 0.18)', + '--hover-bg': 'rgba(255, 79, 182, 0.09)', + }, + 'Cobalt Punch': { + '--bg': '#081527', + '--panel': '#102643', + '--text': '#eef6ff', + '--muted': '#9fb7d0', + '--accent': '#ffb703', + '--border': '#234164', + '--input-bg': '#0d1f37', + '--user-msg-bg': '#162f54', + '--assistant-msg-bg': '#102640', + '--active-bg': 'rgba(255, 183, 3, 0.18)', + '--hover-bg': 'rgba(255, 183, 3, 0.08)', + }, + 'Mango Mojito': { + '--bg': '#fff7ea', + '--panel': '#ffe9c8', + '--text': '#2a1c13', + '--muted': '#7c6150', + '--accent': '#ff6b35', + '--border': '#e6bf91', + '--input-bg': '#fffdf9', + '--user-msg-bg': '#fff0d7', + '--assistant-msg-bg': '#fff8ed', + '--active-bg': 'rgba(255, 107, 53, 0.14)', + '--hover-bg': 'rgba(255, 107, 53, 0.08)', + }, +} function applyColorScheme(schemeName) { - const scheme = colorSchemes[schemeName]; - if (scheme) { - for (const [key, value] of Object.entries(scheme)) { - document.documentElement.style.setProperty(key, value); - } + const scheme = colorSchemes[schemeName] || colorSchemes.Default + if (!scheme) return + + for (const [key, value] of Object.entries(scheme)) { + document.documentElement.style.setProperty(key, value) } } -export { colorSchemes, applyColorScheme }; +export { colorSchemes, applyColorScheme } diff --git a/src/main.jsx b/src/main.jsx index de4c1e0..8169910 100644 --- a/src/main.jsx +++ b/src/main.jsx @@ -9,9 +9,7 @@ import { applyColorScheme } from './colorSchemes' function Main() { useEffect(() => { window.electronAPI.getSettings().then(settings => { - if (settings.colorScheme) { - applyColorScheme(settings.colorScheme) - } + applyColorScheme(settings.colorScheme || 'Default') }) }, []) diff --git a/src/styles.css b/src/styles.css index c32cdca..455e1b4 100644 --- a/src/styles.css +++ b/src/styles.css @@ -245,6 +245,22 @@ body { background: var(--bg); color: var(--text); font-family: ui-sans-serif, sy background: var(--panel); } +.new-db-form, +.library-inline-form { + display: grid; + gap: 8px; +} + +.new-db-actions { + display: flex; + gap: 8px; +} + +.form-error { + color: #ff9aa8; + font-size: 12px; +} + .new-chat-button { width: 100%; padding: 10px; @@ -291,6 +307,13 @@ body { background: var(--bg); color: var(--text); font-family: ui-sans-serif, sy .select { min-width: 220px; } .button { cursor: pointer; } .button:hover { border-color: var(--accent); } +.button.ghost { background: transparent; } +.button.danger { border-color: #8f3d49; color: #ffb8c2; } +.button.danger:hover { border-color: #d86a79; } +.header-subtle { + color: var(--muted); + font-size: 13px; +} .chat { display: grid; @@ -510,6 +533,30 @@ textarea.input { min-width: unset; } +.setting-control-row { + display: flex; + align-items: center; + gap: 12px; + flex-wrap: wrap; +} + +.range-input { + width: min(360px, 100%); + accent-color: var(--accent); +} + +.setting-value { + min-width: 48px; + color: var(--text); + font-variant-numeric: tabular-nums; +} + +.setting-description { + margin: 10px 0 0; + color: var(--muted); + line-height: 1.5; +} + /* Markdown Styles */ .msg h1, .msg h2, .msg h3, .msg h4 { margin: 10px 0; @@ -972,3 +1019,113 @@ input:checked + .slider:before { white-space: nowrap; margin-top: 0.5rem; } + +.db-active-badge { + margin-left: 8px; + padding: 2px 8px; + border-radius: 999px; + background: color-mix(in srgb, var(--accent) 20%, transparent); + color: var(--accent); + font-size: 11px; +} + +.placeholder-view, +.library-panel { + overflow: auto; + padding: 20px; +} + +.placeholder-view h1 { + margin-top: 0; +} + +.library-toolbar { + display: flex; + flex-wrap: wrap; + gap: 10px; + margin-bottom: 18px; +} + +.library-states { + display: flex; + flex-wrap: wrap; + gap: 10px; + margin-bottom: 14px; +} + +.state-pill { + padding: 6px 10px; + border-radius: 999px; + border: 1px solid var(--border); + color: var(--muted); + font-size: 13px; +} + +.state-pill.ready { + color: var(--text); + border-color: color-mix(in srgb, var(--accent) 45%, var(--border)); +} + +.library-chat-note, +.job-card { + margin-bottom: 12px; + padding: 12px 14px; + border-radius: 12px; + background: color-mix(in srgb, var(--panel) 82%, black); + border: 1px solid var(--border); +} + +.library-inline-form { + margin-bottom: 14px; + padding: 12px 14px; + border-radius: 12px; + border: 1px solid var(--border); + background: color-mix(in srgb, var(--panel) 88%, black); +} + +.danger-zone { + border-color: #8f3d49; +} + +.library-files h2 { + margin: 18px 0 12px; + font-size: 16px; +} + +.library-file-list { + display: grid; + gap: 10px; +} + +.library-file-row { + display: flex; + justify-content: space-between; + gap: 14px; + align-items: flex-start; + padding: 12px 14px; + border-radius: 12px; + border: 1px solid var(--border); + background: color-mix(in srgb, var(--panel) 88%, black); +} + +.library-file-meta { + min-width: 0; +} + +.library-file-name { + font-weight: 600; + margin-bottom: 4px; +} + +.library-file-path, +.muted-copy { + color: var(--muted); + font-size: 13px; + word-break: break-word; +} + +.library-file-actions { + display: flex; + gap: 8px; + flex-shrink: 0; +} diff --git a/wheelcheck2117/pydantic-2.11.7-py3-none-any.whl b/wheelcheck2117/pydantic-2.11.7-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..a88d95b5a8d354ce7d60f3dbc2230cc2f36936f4 GIT binary patch literal 444782 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

!ueTpLV4L zIaa2G3)o$qEh&`-T;z`3I;y=d(Nj;)MCcc|LyTFtN2bPMa7w`?NXbp3u~{Jt)oi2lKTs>J1yE}gwla!7r?obmr5YYnkxI4t+H|FUYDi_vu-73aDp+cY%oc_=1IM51GrM^*+?_s%~PE~oz zKPN-M?Znr@^I5mO*~DAB)MIl5pP%v)6#1ViEG86)_$cEe6}6sCu%p9G;z6evZaY&wJEYo$IPRS1;5%c$ntz_wa{_C ze-9;>VurQ(L0lal#SN!s8bvVRt9RLRHFtLwMuK(rkrN+Q$s{T^Y=_|MNipNNi>!Xk zMi+JTfab$aajl!?QUXb0-94$wh(4*B5wBVOI5c|f{MuSckp6M_DqWqIc}IoLPP8vb zujb&819aMpF-e#A($7ILe<7KBkxUju{&{I;cq!}NRZDad#Go&ieHiLKVrrfceYYWP z2fEgqHhRE+&Q+Ja%hi|O*bFh8F>_^;H3%R0qG9Hz+#v4Fxs%7jaRbgo#HF4#yLby7 zOhxJ&zDFVFx@8Mw&O}pE-;Z!a97icI)`L-qDeq|f;KE_3eDN(%5=ZIZyvgo;S#3um z7-+hn?{!%N_k79;f{N`RcUpC+m+r$BNrWr5Q}IpmoRNHX9AnqqBp7T&l5vVW%95so z&Nw-%naVLwdD~_mQDAP|tjE6d3|dx`X9a1R(VP$QP#c41Q=1N^%XGV18szud=gTE> zv{1=EF#LOGYoqMD`liH-2Q>VmtwnZNDoGju+UrB5qrq%1${bttPN@*lBjo%u3r zzFBMIMQLSs!54eQjI%*|J#pA=f{bn7B?Z<_A&#&XFMNaNw`lrqh#dPuP!cPSE30l{ zw;0j$ko;jQyr?Nm?b$6FVXbwRK(a40xw8f;%q^1@ya3dfj;lq18Rr%YuknH+i#K|( zc!5|ffOyYu(MZ3(SW?g*=oBFqWCXGayDCn4I4_Gx4>zTPf-8XAzjy zt6QWGfW?K^bW@y{?JW?OqS?S6>f1E%xbbmYRm%mD7_{+T6tglrI?Ae1Im)g!oPK^@ z0X1kBw_Cj?6tvu<(U^es#ogU;oTIQM?1A5rikFM^S;c|JoS=s8uKfMw0 zww!{>zBo0j9rCWm=NNIK^kN&xpa5`YY;l^tX5|rSj)eR)n8bt{c^|h;tRXiPz{t&& z_HuP^#3-;kIj0twkpT%sV6{&-x|Hu2D1(rdACY5-l3p->8@hxHIfg$c2_JIC7e1mt z7(4fx0?hOF($@5xxD=%z0Fm@}i3|rYl@lfNkxrp%HEUzNIyb;K(VkX0QIWtkrdQF! z)Qqf;tk(-wg7y;{^8X3e@8nw^#v46~f#*0w>8k&-sbKZcFBE}b_P;2}Y!1DRTBM-` z+K#BCReGKwo5f||U1KUq`80Cm<8BJXoOX#J59Yg`=Zg@SPsNrNgibtR zRR%{kb`L6shVMpg@H-U57IiU~N`&tFR$qId?@Dc6GrWRe8~GMfR-RHZyfr??|36U2 zvG%o!!glkSGr~-m0A;pe?K7rRm1AO0D5auk8fR|E@X`t}Id@F;uz{B`#0|MhF* zcSs&fKn0aZS}(8BhKI%ih-Z-+_=L@pIR&MQ`W^)R$L!HlwzJT-Qq8Bo%_gK6coX3$ zTPkX`_Iv=sj19WysOo|st9bv|DHrQOY}YLvQCwrYuBg6Q7Z-SMgy~BV7bDx4egR>c~KT8ol2M@EFtDEluXIy)Shhn<|>9Ek>S1b7L*?Mzod+s#74 zM?#9r5g?)(9dr{L@adP6=$PA^n)^-6MwPvW=$pdIobPbMA8T=p=Fz;~M?Qgt4&^uTs# zhOtw{-Gx?x9yrX!EJ)}?Ea!a>lKz1zvkIF^jsslRL5jwlfda>a4gdBB3Yzq*;rJidWfFEykjSmt6nsBMey&xCcO#yIG)?rk z_jd;FUGZV}{mPohzhESV-+cMRba;4p_(OqN&pE)TR^!mg&W$v}quY9YFEZ8*ppJ(8 z{_#4G6Nn*qiQA3o6#U7)`?P-K&_l6pysTb*ILwaBafe|r+Ui;!@{^4#<(q=|p87SN8}cNb3}~7%{l|}_Q=U1jgYZ#KDyhci(2;h?Qfl@Cx4qOWQ z1N+aM{u{cIp-2<$3 zOBrvyb!`%kH|Q}Kep3!aU|~09{#aYn^S;5rIOt(KPzX|Rk0nN=3K73vG?y^JlopRW>d|#G_&45p3Qp8SafX24hGW? zaT;&v2aLD#UEQ?142y#Ep(iUvmKTq& z^~t;Mwl*iz9Q( zYSQQ#$)al;qKLu~i)3WZ1Qs+b;BILyPGelEg}7fLPGt{Al`vkD zibUJ`%D!spzOKoB`}OF_mpdyR_^N}f!3baSB!z&z@^Tj5F^^l; zk~v+tPh2+&~X~xESt?)(^f56$*a4TJtjbb8=*>M0)nr>LP>?mR&ILRDh3T( zJ#3(k#$hI7e8xbjlIuRtpPqdGeg5|S>({T|ynFtPaiI&cNG3Y=@3KLKD}d1GqXx=g z%+*m*di0KNC{Oq{TKQkF3o#pCM>~IoB6O{9z;DVvvW9de?N{?tWm5oVe`X>~lRk%( zDI9ANBy76VW)*{Il#CP$j!#)&3#4|&{7zD~PIbL)$C!d4IZE5So+zC+ZXBT}-KtYZ zNSj0}af2N1R7JI#b{f#MZGqcTl4cLWhKU54V58CXexMkDi*<~rGhqH|UMcJ~d=<_;uq}*7wj+2K5 zsvNaYTLp8PN=5)SV4W(6z(L6S1(2N5NafR^vWY1;iaZQrc~P$GO_N=~bVs{wQ%32% zcdDwl>s}Q@>11NIjwZp!1Uu8UtK2zSBl`zsKK0mUG@G_4+{$%to$=0$H?++OF*OO? z+O(5DGjcj9n)y(Yx@m52VSNk7knCtrS^mD=e2%Dp-#+)2vcK?q@^92TyW3w1S6k`c z^V?rezi(If730+mKM%0?mGpN5Z%h&3%BDNfpNM#>DQ;p~IGycVPqEUw(2RR)zV3?^ z52+ZF+vwh+>QBIRdTY2Z<7rOS*7FXx$FLLJ91m|wYhhn;HO^H2E&h#iko|0ZMUU}b zf&a!L!bA9rp_qVYP-lY_1UKR)#x!+nVRv|V_!?Lka@)z=Ld?3YfO|u;+d}!7)odF~ z`$G4tcK;eYn4yM4r3h?MXfF&VYonl{pZJS$c* zio?&gEdpdGGny_$w*}%z{`bIZ5kzBul>Tpph|D#5_4wsOiGO(XpDrX7s|74m5(=E zf$o#xG!PZlCq4rr0WE&ncf0Pp-;wM1Oc;-eBw}7}5KJRx7s29sWg@GB4>x&=(gO+cR;lm8s%M0m?Km7_b zAfV6mK<844wa*a7_VF*B^pOdVa3hoXW=v;sGq*=saz(0hQR>MkJ5fc9+vcjARnWI| zQ~Sy-W{PN)V~J*pAU?FW`1!Zv%qot9coTwn@X%z{AoK(bI9lRLUc-X-Q5rolt&EOnT6p2{|TY zo~R)o1-EYH?b|n8lXQ99?IA#Y>homC7U3GE8bs=<(@9T8A9kPBc-w&EyGLl7mhgJH zSuFaIl0zO&h}2!AD&BgyueUetY_|xUDedvO15f0+4Gw!iztYeKh8Gy{RlS@W^Zeam z9}jiaIr4Oi9Yp(QUR8Hosq?3EP@jtl_u@Id;ExZ&d`fxCZyd9G^2>+>>6Q0H(7}HE zDRZYmZ~q)zY7}zFPIk=av)I-s=zacG7y2h>WYe5%1nfJqv^&&{@wUlo|I)l?1Q~yN zCUk433R1stqdyxry8CwAV+)3>v_r+8gHfe$aiw;_%Ty$+=pG^mOVcy?+i6~)@uuT- zAsIbNnu-hJbivkweZ(ERp#x@T7ntn_?0Ya^+c_TYgmUt2*R{D>{f^zVgb9@za6chK zv%i`xiw@LRu)&+1`I!!G#-HaqHl@P^hw7leasmzElUAGggGw+Y{?vX_JsNcuXFuYA z9!o|%u@-9&aPe{ucM)$X9_*K>eWW%GiJFL4>`EF02VQ6r@}Pv36Y-JL(B9=+=<4ppg= z(}TF(sFy*zQPCz)6}Eh3R5^Fb4L zTa3ynxl`=LM@UU6n9%fh+>nV(Hv+&T)iH@}+gCS#t z2R{AN4|{8jLg(9dghPdp>Enn}XT0Ea!9pUDOzi zq^aiY8iiVNiX#)|YyF}WTF zS1shYHzfALVn}4|vg=Fm0JvWb9!sMaE|GS+kTRA`2NLOKc+Yb-njzNPqV}(FSlyyu zEStM)_v7J?2@U+`Cf}@Z0|S1^m*n(Ms= z6EW-^wEpSN6y;ImP7PnFDLxHjQyA|yt#R;1EJ5nhK-gJ1!jo4_qHsia9p^%vVZ=So&=u>{4sPO# zOsI#Wt1cD4){&)P2s%h=AXm^gtDsdscL`eKbsHq~jq~wpK3cMhI;+DV20?VfzN$Hh zC@m>rJAcN|rRfojUwd_RS855F|U^BiBc>SLPLv~8!wVg3%QZvVtZzh01$dX6qtwDOe6tV zIzwZ!MgA}d7fgnIlKV7h$;AbYa}gAf@sl=g1d`AuScc_I_;(5qZWELp|48a>cFz`r z8Q!|`#Z>#`irJbcM!TLnvk0B_RoE(5cPV0v>x3_G?9P#h$#0&2lnae~sc9gv6&xQl z=JQ7V`C;w#vrF=G)$AzGi4n!9?As#U>t~0E_Xgab5&6DzR&IcIscv*5y!(x~Jbyq= zJF=CdH~PBuQ|A22OPQ1C@U({+WhON6^G(sGy`=cv#K=Cl z{m+0^yIQrkM3ly#t z?I#3UH`X1CT?J~BW7$#y{96=PXY(SvKF+RLbAWE0$Q&x9)JCKQJtZ`>|>&bqs#Vc@reJl=N4czwLh>|i6)64%{ZrmTnIA+ z+2|)Xg-Rt;%;%g)=Ihauud==#&jlP`n=_1)`j|)cc&7ec0dw*A$(LV$^PB%Aqx61D zP==Elh+BhH`^I=^!fAmuRS!^Z)97#`Q+t$Q@;acm(@ZC88N@G0?ai(q-&@Gj{*{9# zHl{;&yVyPOWxOntOC_+4GCn<>Qml!g?MM(8 zm4^#=z0N)&zSc{~;oOG1C;5m@_<-KTr2ixbXK@41Su%Hy=qk))L@5}K)|A_qjA1a00Kc#^6}r#U zWf}BJDiI=Ghq#5$4pL$hh>5sGV2FI+T~^CB9K4WI$ARSfcM}>T7+lPeb;&j2krqp# z@989hpvEVN?Tm!jiJCzRv=LtMHU2%6yFL|j9)=6yk=sTb$u;LY__3YnTY52~LoCNr zEQG7u*Qi5CPMGJo@^XAZ)TRy+iHCzA!#04ELkCb<($jBxY^GwylK*7`+%mjaH_^5^ zkYx`BoZBYUo$VgYz=rQ3E|5ET#~9+P$xv`GNh|H7fpx0qZBP^2IF;jEJ_rzL7p#99E{sH=6|!ug%iVbIZUk39{Rx18;n zP17Z7ZL9!OEIvM+xrXtHpiZk%*V841Dw__BN=O}x#$zT^(up*aZ^oy|37RM-(yU$$ zZ!Y&zXi*VIVVVM3Ng~pV>fVryIYzXRNqkzE4{Mu{&eKN{H5QEcR;i3&5wlNGslbGN zidkO=JV7}#!w#jm>>^^36f_^TIO`RQMdZHiVHDe8Kviq9hpjuB z@BNfT?hyA-7I_up$|6zdA4gdvzwfLo@}_$qU6I>FLRSZ7Vigpx;9_j{7 zX~x9-Vp<dkT@LoWJxE| zxc{NP1NviJge^>Y#y*bNa(KAgobElbIHXws{ztxA zqXOinUeED^`jZPztU}tF69#OGj!WN|@x<8`WdyE(&S3-3E8~}J*N{xtY@9*S9@7Zd50uX4S~HFqvK)@Wl1&;VO?5()tf4YoYyW5448{MU znu02xrfx|L4@pCsG4*>o?O}N`3c^2RLkb)+TF5T#Q3YyHG|+*KpK08#2D?YF4K|4J z0%mNP=C-Luo9ic{Y?$0^Uag3JbB{i~-qfM!H_(0HU4Q*~XC4Z?dz^OeDdtQ*Jkrvi z#qs7Aa*jIh8|DN<3+veXk2homzFAi29@$v}O~zD~F;>8c(v$tp_4Kj(;p=-Gyg$R~ z3ddr{0jo||(}`Dk+A}F)@YMa~bWNPD|LR8`&?I~6IUVAJ$D#12{g@+KCL}mx{GW6` z5%c`z$a9~6jw5f6GcTgFtal9w}3ldgRN|Xf&CQ+(2&c zUOjttoXu;tMI`@oZL_HppixdiRQyn4!T+%Ib!R&`Gvk4~9e4MHl1<1Bt2BmdvYjCF~z-aQ6oQ{fp|lY_cg= zANL2-A&2CGO<-)^lBN5D;b1D)2~W&Q8Kk!8sfT04RIN{j!d?!4|Jx4Di?$WHjR6h; zYyjVxV@&J@=eA9v|7j{q=>+4>t*c^=o=oULUM=V4kK-?QiTm(~!vz)#j(K)&QJ$vF z>;du?jeZYrk1&`S9nn0${iibVvIjBrPLG~UaFL!b7S*b$LTKWRvO*^`yZq`NK#aO@ zsP4afdhE zFWqQa`{A6wexHFiQF1qts!HGIZKpFUmiBwow7{CujZIY7E(-(ar}+(Cmgv8ienU2i z-^V?bJFVAI@TzQ@;sVOPSgtm$)(D}?MCMhMVDR(%?hK0L@r^CA6_HLaoN*RPC)^p{ zYmJ-;9weD){|jWw*E!6Ze&yE8?5b1^n*d3tzlGobu9t?ci2<&Fp(SfA zxHuJ>OpoKka4*)afNmT#az&3-wmSZ~B~`7N1lQe?B+_gM_hb#5ZJi9bJ9Q967F*Lg z-TKT^ymw$@()}vd-?V&IZiA}(};oNGq(Lq?fF@z(tF4Iob1AB?uwT?EuFt$`z}-$TNTAlY&ngZ_(Z6WlBTJ0 zu;cwcgZ$e%aXc$MI{V(wW9#kaOqnkOyU#=n8DmuaQNU-kf4vpS*;S}G6PlVi+j2fi zSb?4ci)CEBl%Xkh^2yHOSL?gUklm>03mLy+6hq(|ZgUlKA+_{(lTPQbFlG%t0le9= zo_taO+MIR06UdL4!50(4o+cc>%(#jXq*Npza(mSU(W-YcB>9EYw^8vT5<;6hYe+wH z3FR?_Y@1ybOO6$Y`h*zG69|~hTY=ARgeV^FB|_GMFtX3Jo4lIaFuS10uyXNxQR|AG zX`{n-MDhv`*-H7LG;VKI7n=Xjzau<|V%&u}s^;9yD?8%rs-Sf0;L@t z@$H_>PdECzJ6`I|;-KkH%12SzDuSH)US;fK4(2dFr;O@jC(u);z(F_$0B}I&jzys1 zSo}S7S7_`3-IWfVUr|BN&knv-S}`{rU1Xzh2*)y;zEIt`RKkFAKS3n|PwO%y<`E?q zyjdg&ykzDK0sV46(#g9{Z#A*|eo~dhy1XcVbo3Fh?%q~lHN-x90q;&>Iq)j5r=Zar zkRE@T<1O{LhgjJgs^!r5C_6=EM!?-Vlud$}B9Jm^e9f;jQqH+0)}{XH>pRadD+CtX zcBby9n!!gpKIj3J6^2!n1S{Bk!%*FlB4eSv-lgU6?szPO5_!{Yo_Xq4MuO8Cd`dsm zuD7aI9|m}c8J`C^{g=Iiz!{v~wtk$spKK1)*MrR>&}uuf3=f zgr+G+e%zc-5>bHp9Q7m>yeyha{~-9ul-&_pvBQaok31E3XHD=)-oXvG@oUo2p*Wk3 zzEhwYgl?@7({lH?zHe7a7an}#HvxJ@?{ymxsVuR@W(xN~&c~V`eb7-BjTixVf^X~CS1*yA#oFdj>hrdrdl8 znqtb?lC)_edjLDy1>rQvi@yUO@}%3He(sWAwmOhHG)IH6;wZ#Y;7&-Qjl>plFQacI-RYzSC^n3JLez@ zM|a%~r15KyKv(*C$SBEMB8GABZxSl@Sm7O3HVMsim3t$>9`W2%29q&GrKoQbY#gF{iJzM4dN3GOe6WM0Ma5i?4*|L+sO$&cI@7w#p}9$(ed+ zgnJ=b_hqOv+8$AUo$(Ndd`IbfrWQC;0)z$5WubX8%0@L9%bxZ2@tZWPI zk|-{d8Y$;pp>p)YkulBCj&RUN=Q!vi8qpE2+qUftb0g7KOw0Vj8rN<8U|) zyx>*cl7kYkvbdx$2lgyg>7qz>nG?ZtEQ0iigTxp3Xmc*QJC9>y--}W(pSgj7J`OQ( zwFNLU5BN6RR0(JQkLB%HDcOtTtl-sCwVeguDY}!) z{1{6ECsxOq{<^N)c;KaoP>7EostL)}4uPC@8*mUSN|qW1eFNH3ff&l(E0k@BqA^lE z+qM;U+68f3a3&lrp)HnJ{2TK>@uCKWwjmTg7@T8^&JZ8H^_XLzu#b-LBF=)5Vg&6W zl-K}7dB%o9-9PLZK98&@i^6H4RMHs`I97<{IqzgU(4n#e!feZlHdn}p6pLC3^BlU^ zXG+w;8M`Bi!;l5O@%tyD?K} z?aeO69-;>YO5@Ta^~U-<`>JGFMVnPZy@(4rJ{ODntXM1oMHlr9|1i_^6edAU8^J9a zZBnQ5_$Zo$CK@a`l!@S+hY7?2Yag9o^)Hu$gSt} z83cxMHO+d~vE^3xn$EBIonbm;+3sXuXg!V_q9m9O3721D@dFb#$K1#`>op&%RYHFWhc~dZ8!!EV4aPu$sm78pk%D72`UvDGxX|_Lbxsn^ zGCkI2&tQ^17=}UAqS3eSUp_^u1gJGK!CKr=?r?~@+f;||w-bo?6ET1g`j)tTIC+y> zG8sa|+spf=8cd)n$9GGOM-kkiDiBJ*BEeoj4aK+41c(3++053&sp_`VNu4PgAQhZLkiop&+#x#=fl*`y)@m9gGQMAty(q}?1kxj8t^H_4^bW*Vh-rS(XB{kZ8TRo zqB$LTp{x8Su9#ZF$pwcpovFOh_z3L0Z#A;NqSHvGS z?SbhDI3EIrcnGJ$Sr=@Ugzc>jvqO;rLPvC=rDv6Uq?5sJXe??T?T6CQPaYqF`73mk zH`(sCy54a_HJvmEV#5wo#AzS%s_3{me%*d!?K&g6%DmtFiYxEG*_Z z_I@V|i?*FNeg&m*IJ>1y6jic~{8HOQ%T!p!zoT^d;cH*M3+MtWRBx(Bk zM;0kPt}7Wt@?Ta66_~nB3KcOe{Um4)B*^_VqLP#kA6!_9$e*1tEb;ldrO<~H=n}%* zFH*)YQignfkurXfGX9CBjM&?NhHeWg9c{%S+Fj%&Ej4Tzh>{=T^xsus1bagdg&JIra;*REG#rt;~)PeJ~*w+u~J zxMk>5jJ!MgQS3ewr=IKTj%^QLS?gd+*|7yxXXK|yL?qiC0)->bi59$g+!TDu?JgQ| zt6Q?CDzR)mr#;7Om_jdqRtO7xlwsqK!|d`nyX^lMv4M=ZqdGpZ-qwwQ)blQjZEDe? zv;c`3{kihG`87YbcC)8XRZZiXBFvQnGeMbX%r-$)-nCc=a&HR}F+gb=b4cT~Fiyo_I*71>%s`S!+YwbhQj<8c1Mm5?&7)u%Yus4r;@eQ@fWoAJkFuv^6^BW< z%9|{pSZK&dxNUbFb!g+vsf>lntiOS`qH*n7NOL4dSZCQV6f=3X+SbMLHFj4s!I7Q} z@KsH@&mV^pAY<{jAK7S^NL|tDkFpbTWt3sU$OX|wMFPaSgpF1S>(6xGPD*iURhc5d zajU0lfy}N>EvS%`1BaZc*84#p!aRFE!nj_@JW}q2fZN39Gt*N5X#5tE3KStT4yA~dQZ7}I8jf&yL$h?mN@ zEaN|BZ7zb5FkTP^7bD?5?M#TL(4k;riBPSUgGZ1%H6jti!!XW?sgMC8XE;~6B!}4- zU-Tm-NlO!XP1=D^cZ0ihU+nS~yosfNiJ2$5bl>U4T{S=GRAetRt}5i?4J5+xIIxRf zDVZ3>j_BuxF8=(Wip$KzS$1MO+vv-bzl4qtO0BDMn|R;<(DuI^crh4vOz32G843LA zg!{tHoqLa{R4$-)i%Vt45~JrbnUXVD@j;#~7|=##>muRWSaySa)U@UtMydE@UaU|N zi8Iu~ClT`gfZXL8(QJ8LF726wF~vABIsQ9wU;^fj;gqn?G-$Mb>~eaxg0X?`mDoN)$k4;1tJ0!XYe( z8vXp^vc6f0zBFMT!K{kqJil1io0WLqmpeXjg4-fCvZ6x8Ka}nNfs>o(_^tZr-;Cl; zVBF-`!|Ogk+tT|OwmG}d)5$6>ffxi4DGIaA)N^clD0kB!xU01Blj2unTl%G$U^iaN z8lo})rQ~pMr~;~1dqz!pV~jS|d7)=&nBnVK;e7K^SWh8!svGB{=uM*E-qzbhb-v8! za?E|NnPGHhQKeX%uDM=N_#j+8|4MCJ0@!Jh>pO*e4kj`b1_$>%Tii?UIBd+FxqKNJ zv}FvK&z`&U4%+pbaBm;B?cbE(ZieGG-*@(ufWcNuk><2<)=V9nven0IPk-$VkwtcD zM>%3m&+w8OwbuHCUiPQhAw{?y7e*BfVvit%tU5S zW}CbH6zm4uouR%*x>CVZS;(hYDjT!IEIjNhb26C$Z==LXxTu-CeT0PH^f<3DTfr3u z#^@6BlS6Roqr^<`Hu(VTW*+@>-qOnWGbLOs)|B1!74 ztqksNyTWmUgeLcKD|g|&_U&})iOlTI{_ig>_uWa}`Rg9QVeMH^p&S>tG6McodQ>1V zk!A1!ipo>a0NWBHP`oX>XGy4%`28hf5raE4Lbr8X)1@I~xjhsxc;dkIEs$tGI!etP zmUtq+1V~Ly(-WfWk>2IH$~<(=k~vU6hMdKWrd`-P+&rRp@|w4`=v_-C|Hh=P)=rqF z!4d^H-^r1Ot(&SQjzM65-i)MeT%!LJ^MZO0U!uM}QDbMy*V9fB#Fm_4n2#Ii$9Jq5 zwc{^4e-Uo@jkE4A2-WdBL8@3pA=z>POtroVlRe$_DFDL zdh4W;kx#0S;AJV7ao5o}LvUn2c9-prC&4*EqhkE!N$v41m>C=qIAMH3qNNOY(?{3S z;X6lQ3C3^inM!jl);NRuyv}uX8)OLgsHvpWt&ZwUo}hlAtib!WmRb_ld5<#NR%U&OBt64K~)h9;+fvqO&szPyxYjlK_f`a>AqV!Yh-{` z(@LU+B*!1nkdIe66GT$oc^xV^s>1wNsT(^)v$UntV5!!QA;5T;fUl&iNe6QNjt(5R zCjl}i!e=+8tfh;BUoeQ>fMdA17*JwA@bXV<|*FRoy_>fr&F!< zemRJIiO`}Qj6yS0w$Lqpt?WxbeV0-$*uuexSZ~Yu9NR^+p%fev(XGuAj`45$1Qx^G zjPdE!U^1395)}>Qx(!$wkkRg&^)=vC>#jzEq(ee$--&t98>#Wa4+g)`VUPd!r5`JR zu*oF}6ky)dqm}I8@{=r~D=!o; z8*{}u#+U8&d$>N{sbc@z_7|S~F4xyB`@4U39*3lKr`q3vAY=*L#x`h^~&v9b#_-GA&u-VJ6J^6$P+(kRV{w7X_?}7@W+mt znmjz~R47;h|MI_rPjAStpb6V7=6kwWW~tOi?7-BOlthIdK~!~QkYr{>YZ0R~4Y}5# zN8%Om;zqCJoI`BU%t$q}Agtf?vU?UW+RmMC#+*i(nWc&(f%ib zMz~kxIAq`b%i7=598)7s;|S`n6M&qXPNKe!KS$@^22EuQ&#`&>Yg-*Wm2_8>910E% zitvW0k3t}U+?_$am&ipUoivW-mCoMU)5(`Hvggr?=ej%`)|(q3l6DROPgqh_;PW{? z!z4JA+Vz&TjQY&UJgI~(t+HV9%nL;$YaBw5K~LT)bESEn@uCne>mrghTU1uS1~U@W zyFN`L6=&hnbRs8f1nzJ3RBA_W&at}@95$nvS@`ub8N5*(x-AbOxmI}AGYhc?$NKSP z#x<0TSg^PCwX+}F6W>Br4YI6^51EO9Wi&|=4Uh7m@aCW$a1e1vb|L^X9i|EG&}8@q z_KmZC{liTU>u!#J0g|;|#Y;c&9Yex-q12bS%Bw}mWzd{t1FBk^tDTwse+$;mh*r+_ zPV$dTJjf+6db;i$UOXl@b=X7N%A13T$zjACmWV>`7!Ur&DGwNuW8>cKo(JJh5fYv+ zibpJU4i)P2*J}MT#^x;_d13I~kW$@l@M@@Cw|M3OH^bTV&jGiFVGFExbVB|COd2@^ z2R6~%dw3Ff6#RH=vF)q0AXx-}3iCyLwq{m`F=}>qozr+nqbZl2O z_H3s9@L&YC-o7Cvpjx&8VQ9C~IR;2I5+d{UW7-Udig!Z8U|q%EtfjoPX$r)63V2YC~7 zo>SBYiyT|#nNqI#o4=cI#y5gf!Zh`$e$09oOuAjqOF>;Sp5uyvxanq1$- zq@FBAWdmk6TtSZ1@|>V1MuxchG~!!Qym(lhY31rWBl2~(E-B7L-pQZ*!Xi|R+p=PF z6#iY)5V*8VRAwmI0u~r5M!Q$gy;Z-28Fm4(wbt%&r%wn1?k*8l1@>-#w)_Hy7QG*c zz_V&gjU47j$SpWQG!C*3Knd@r4gvX?EpMAkQFU|)Dtfb@=HAZAG#sPxVG1>r;;fg1 zN$75DvVJSTl<4EXbCw&j&)9b_B8bMfGY`scn$pPuEkh((W5puLBOK&*?|i7f(s>Nb zK%vosEm1&cQ3t?*LK_A!Zh(^F8yM!p5m0 z&0f>cwMPw9U!5gXp@}*pJd%{~>XO6Zy2XM<)1IB(MUPK@?EC-xf24#Zm%9$A-Dn&mjKLTktt zBEly2meCpq(9d-hC=G(KPv>LRq!WI!BcYq)dIXm?wQ6(8cr2Y7|AIUKrV#++%v8Qu zD>)#D#OKyVikALiNpMn5*bLn)U5CLsg%8rzZ=TnJQx;z=!J+aN?;SsK{gqB7+N(f2rn%f&1Vb@2nG5B z0`EZ?iWi>`Qv)3axE)yW$Hv`+mtpZBjhNsmJCJk%^7Qf9I{w;Dh)E)OgRnha9W9nZ zde5&+tPsqg6K=FxNxL4)B%N0^69v`sE%^pMC`A@;V$;(8a74()K`BG3Iep2MwM3a) z8uh9JaRA+*AR9_sKb#5^2hnf|g}C^bfkj;dli87BWW^Av0$zTF1ZPMvYr|&4wOLxI zd#%vo(L_e1%pA4VKET=%ocV-z=55+pD^Dh=KTGomS&pEyBd-N}ecW*QPtO-e$|{Zk zXw@-+LtFF#i-^zu+(Pw1x8a}GU4g#8l0^UaXgn8pMIxGi?gW9KVtOgq&*^1DNl$tk7wQOkF2C;T!NH`IgcLu z3?z-yPba693Fb7hXHKXV{)PzuU=2C>_gsAW(!%o?g<%OZ)ScJ2{FwE?W7n>&1gM_B zRf4K5xX&8%lxJXRfxNUz$wAhdA^{z9O6B-VQtqNC_)F#Ka}||J zY?p+@;HZ_$vkI@8B9){cqPJD*RlP>e3sO=dm@ly2X~m`UN3hbtiMV8}OdgBMYl)nX zJdGlYSaQBkqa9IAok#hr4mK$y!n4J@hmurfA~do2;_bXEFhaQ@SuNR9P{#nR6_tPs zxJ0I0?St`6#vdfHUc^innHM$}yKtceg^S?ll*$>yfi<9N` z4HuAN{aj5*;1Louvv!j`6M!lR0<)=GBLfmEp30z_%L9zSt11l3ihL6LzIwX=#FK#%C z)~C#sP^Ow~GojM=2w%omWo3lU?G8VOPcVZ|5ikLnD^0=J_u8;p0K7t*_0s>DN0ls;GWr8#=$T0%GeC^qvOX!p0915s zQ{hZ$vmr0yWvNDmwU17X&(PayQwg6EGl-uY^Ym(Fx zA^VHj01lPe{KmyH;hT>(ypav) z3YWrSXU?5f8TH4M;SUl?r-+v|7U-r-1K4fb@zX6$?%FHjPn>P5JIx7&R~fLP)3Qeu zV)G(!-T*~F*;lZ^@g#mn1P&vOavB77hhFK!DiB0;yg>D5kTZ;U((Qe4?Hxs|5rzrH zF2|PQE9>1DmM6EXDG_J_=I|)uvuNhSKj;@!=iC74YrX33qD&w|aq5j6=~U*^rg7rr z`eA223H_2j7*BS^E~wHio)J1}r#YJy6D#?X?e%cE@`kt>`biT}k{PK)Pu!dMzOoOk>UYUU1gHKvqTNEh4JrN4WA@R6bKs_2eyT~m;8k++JQ_Q0s3bpz0 z&m9R+?z#r-O21W+*x7YL9c81M zf_?{tS{^*vdqk&&>^3-Ja3b?n&;~KmOIyqRR6F%MD~Sj+UaTUkP9O}`@>-+r6PFn0 zQzBUEzZEXC$mSI)$MZ022pF%DEkq=IZ8NRS7sN%ZxtkmeDTtjlwQ9)t!=RP{cV{v ziJaW6_H)vhq0`8rw@n1ACUUbC-yo*67S48AQvt^Iw7nA#lEym!cjupv-f)s1gOBKH z-5{uG-tdYuE9Dwif}S$ZEipsJ1MkMFHGJ0n2D#bQq-~wBFmqg}4()UKhbq~@x(-hrMjVT001a;008g-008Vg zj16p^EsW^(ENq=k9BmD(>Gl4HCuU*f^baJq!()}SHJY&Zm%6kV9-2$N8i%}Mo9v29 zT-7keNSxH>x^rt2NYJod1PufOrX8i|{NLQQl`cTLCV59y)e^WD7{qijcZP&Wv4}_F0$0(v#@S+blUWB8YkwviT~F5y~y&`)GD~y@=CMLJQwuEQAv5m zZN!#^fI5|$``o3jtI)1Xd0-qtd+F-UM~C)Cz@w2i^HA1pp**bcDeAEZ9|}_u@T=Fx zihbX1g|2SvR5mMDd_MJhOQ*~Yblyk>eYE|}KNZ*h8{ba%guc(?<#B6m@0UB#>%q}ceZAR_g?>9_f2J2WyZttbnh%Ll@8(EqY5<3##;*cQO>PH@vK3R>vHD} zoT%FAK<*ySRN+O{idN62TdC)~-S<6&uELs!iY1QLG9^)mjkL~`;B+Ocqrq!FcQM?x z!%iiAo${k-C7&N-UpD1CyMyN6JclyB`Iy_v6*U(XjFQ}?2))Y7+5nv$6ra7EG*2DY z&hCy-HcTE%2Hjb(;Vu>EmQ&+PCLQYn8r=KTzH-s+D3_NO?e9xU=W% znl_Q8)efIGSa9L-OqQS+15GfhN|!b+Z5Jv_c#7H5N37M9VMk;KSd-0Kw2KWpS$GOV z-^4uXSa4djT~M)};7Xf|<-#j=o4m1FSF-HXHtsWfxGPX9fJC9{T$~K;yqTqu?qlHF z(ECaNIMQiEL~X8(v(?Ho(-dZWyOwd0A`Q;LcmCW6 z=m1Xy;AXJYpDJ9G?(EqhRGsuzN^8P~RBNhLG18(wG?dBiU=0^9`R%CT5&*4R#|*NE zL&t}mXU&-I=>o$?@JY`0_V8uR`G(_t`^P=<_x{|zyj0aa)#>$h&+hg7%&9RPKcUl` zHep7{N~{$J|89GGng(WfbqnG~0_npUUC(SUko%l;5Fm#SLalp{AHYOeN&PULt4YXO&nXb7h_=2Ec zJDt_#K(O6n3-PY)!#TV@H01Zei_;gN^Nx8|#QS6Ye0&I0jt_Xbr5%i=uTn~`kC|_l z`1k8Hajhe!l)!5b_~v^XgS}K;CTedxhzJl*#HdKhN`p$@LVxvDfJOx`%P=YuwcTyS zqFD`UTDxJz2fRE@>bVjUCG12?-)a73)!WMW4UGi&01q`?N}eq8+Tv`aRC%iCo@x5B zu^|*h^H2Iv7NtyPB{RwbcA3519N7ztLb%6|RgK%~r^GdW?n4+`{{q_bqcvF8YF;SY z8~Nk)26Oxv6e>sj9Gw3*I&WS;fD>TPeARa?$R@H(6_{(~bmdM#rgMF5l-Inlu`QcV zA9ETyx=9z)#x2BV(ZuHM?O_!3eI!@@s_40*&4LSh$=1mR!Y`);183GE}y|`y2$Hg<6(y05Fq1Yooz~C`>%HNmq^T1CF zL}6(Kisx;@b4nGW@HroKLa~9)y!;gDdy4^%{$j^IAzYvXdH}HY-P9;1{0xT&qqWb_ zY2YRa;B=qS@{Bo&a%>*~l!(8+!g4V7kFD(hHR>rCWm(X``UmLrBMAeFQ5M1-B+08WbsR<+v9!I#3 zknxD2FM_;B7P)pNQ+BN8m1OIzL^f|G8l+7y zqQBx?={gNSjq&VqUobckmZw7+u?kPUs~*0tl*!{?O>rQA5rMuogLg`>m1s-F;^ceDf~%9UhZ3=7QCQq9WZ7-#&n)NC4k2^M1ulO!bQ@ z8VcTjlHAaud+O@cNnG{shhCz&7CEyLiDtr=tZ@52y@V!X#dsVLakLjbxo5u1OtQIA zxE3I49){?$bcyo-rWZ+8n@k(qmg^>(ItXn?Z#LmEbSp>R5;U8dLa2@yy?u&x_C>$(?yFl|4uwD2P;$J?trcAbK)S0MzhxEt!36$~YHE zesyn5uN#})06X9}vl1qQDAuLn3^&>WQ$3qAC#SN9l44<3-79JY7VYg6M-D85_f6$O z5#tcon9Wcg2?V_)`&bGMJ_aRfENjkK2}v&n)tf30iN}y^B9PUFQFk*iC;-Ru_v`{! z*s^>Sr(dyZ1-5m2z4l-(+8M)YzKg}9Gw%q4`ic&JAIx>9c+Q#&n8O@;(W#@bC$&bA zXT1O2aDiKpnI&4fqBV6_^ykZs#C2vn!;lZN@?8mf(7yGO21RfbP-2u(*|01HBAvy# zg)@dKz=!_9j49&T1QhN8V~!d@Qj!-e6>CrNm>y%A&e4q}hfJ@z36Fm$s=y?Gm}O}A z$LP3kmlLeqLZu5KfdTYC&hMIv5OFxE#{EiHKry2r6#<*(j8umo4PYjc8 zE+jE*B{A4hq}Qg4f}QLrRKS3CNroF{0QtjahAcTTsAp_2kFL(c(1%a0BRsx{lcJ;X z2$CPQcGF7OhYSZsG7;Hyv0V+_cZV+#RTphJ88k$0TR=`aEIS*;`quF%q7`8saRhUiw|aJ zLQA~8R(KS4pE9Un7`PA(+dMm#P{ltUoe{=mhKm-y^bD+5d;g6mIeg;_phyKF)R4!J zqB+nIn`|4Q(^wf@iYSCbuTL8N_KF7v*6>rRzK!B$=~uNPV5#SlJt-i=2@Qf&1k|}G z%_|xMCYva0BHXlUu$-*z}hL#PeOd z$JX5|y`^Mx!$&y6PkxZPH9I8oHF1%SH`bhGunDRCPSY9rpoelbGs#6688Dx&2w4Ej z)U-Mh`z*TF5JBnUU5+%O7EeQ2B6vILt7enb7r@N@lyIua1@q~XpvEci4d1|%-EI6Y zIWv(Q8ldKK&{t9wYamH($%iZ@iLOFp%joJHaD2A{|*i6F}3R(%)9LI z=Hj~eO8(m)#k7qQMXKQH+VmODLivx}sw;kzOxwMP0b&p=s;u|#7?rm+*>y7U zgq&_zRM~4~ef&V_s=bzJuPEf+5yRprKJRRlE~Q?`BOd&5!{K4bmQ-!2J&+$*a5oFB zV6quG>){EFwo$o1V4mkUP(1E*H%VHy2K4p2hTbo^P)Nb@7a%p4?HtBrMaBc^Ozz1J zAn>z~DhIIP*jTpVJ{=*}Rt42+QU+ZsXd>xL1#Dz&7IpsYR|wc}G|<2t?StWaZ-WaX z0~+I$K7nL`qg8JsXv$6E|A^7{C5zmRN2S^PfmS(Gm(v*|N7V$zoc07@TrR2HLo`jq zd>NqC7!7eViQ`=C?PNc_GAo_7Q9o!u?*M(29ghp2J99Rnpm^d=2W@%Sw{92*`OY1{ zcv4V3`o$M>1|S0PX94p|zJ~0=qw6n+vh^^BC4;ZUq=3==LH2hS|9%aiJ%8$LCWu@O zflj7{4B-zpcEFWMeQcz?vnhAXp>P`t0Vmt9H*s4X<`IqVpF-Cqd=h+q3`IoOoZXl; zxwogjR=FhhP~b^m=!nSE&TDNJq*By@$}R;KqzM-|pwFuj_nT48Ww{u|qD*j1qNuLH zUK2pYhf!eN3^zXn=Uc4>veRI~w{}2LV2^~@nJ?`kKF*QY$#T>k@WfN*7;8eg7FF0O zs0Bp{COs7&!<}qq)#c#_7Cesd&=#=bT~g?m<)(`xKZ(FBmI}PbeG|>qDNquhqY@XV zYfLcKk;hqVt)`E`S8+~@CLmY=5UT$s^{=bTBXATcr^S4dHQ?hzgnE&H_kl{jx23NM zcuGlipTFhjGjxSnkh*fiyt;1(S%q6fi*o&gC;0}HHDNfPn9?8UL)|l=-v$pf1lF*D zP2HQY`9I4Bt=VF$z=a8~mnmL`Mdj>be$D-j();;HBbR%mDn><6#^584^cXa3glrz7 z#DnNCoj>vvLY&km$f7M5*L;@HNR~h5qZAg>vls5C?$9m&E$l--5=?r`%kN^w$6I~F z>LQ?NzXGfmN0~5JaOd`XJ--zz8tIjZhX!UxF(}2XTzWv*hUkfV!(jR5QM1$S;rv~R z(xY$!>3isr((Rd}qr?P90q~LuJmSH*%0@lJN$BY%n;FUsb^ah=z6H*sQGXM^K-EbA zEFdcv0G}omw)|9_px?Tc;BVAIlRr-oJ0Z|?h2atKaqlihAM=@R(9G1I9`Cr@lj^#d zd7(W(_%Wq5jG<4n9!|m$k|D%MI^}o%GZlHbT2i|;G%o@Ez7q|&)7{>(laAb8RYm>6 zNh(clZ?F0-ZiAg(v&V6*!=gS2))Rv1ID{M3t-&YKU=1{TP7BD$@rv1W$86%XEo`^@ zkxPVlkkJSjxwv}W1ZqN#&Y~H1MNVEHG!mpeVNvt}62f?25auf$CpB326265P7lkhA59&-t$aRYk5z5{KCO^64+yWxu})z)Ii%T-4F||!Dsbl~ z=xYFcni`0=#&EIS-LNDm8Vp$$_q>tP839>q6@vjgK^K=Z<>r-n+i2Z9E0^!eGDnKO zK}lkujjl4|2K*tr`Dg(af%MQ@Cs9x+9QWY=GT(PCLw`>L#871E>UHsJx7m)%ngyEx z>M0+p^=e*3Fp1mGP0vE&dh1S}n`H%2qx1qC4gjTk2xsa$LA&lcYjh@s zte7Gn-^Vlf@k9~*Yfn4l>(_g{R!<=Q$&c#`!^sh7MVM8_BXw=(QMVqWqQA&+#B!h3 zmtd>*;sK>;EPnHh0khHx;B)`v=e$>(tLP|U`Te7yedOeW)z}9S|4lUMJrCbGaJ<26 z=|T{K>FSsWq709LsOgiXq!)R&Z7f44RL`+6gt##$N2X9V+1FTv!-LRq#Mo?YF#GOU zc^wi1_9w_&%i-l)3TG}@kiZ9beHjr?#ls%fK{-!irL)p%l2un@J^)L6poKYp*mYcB zL5Vn$``6gVH4u;w;G3^=>BqmAfcl$};|-p$=U<9qk^Yq36$)K2ofp^g75sHBhh}Hb zu)@D+0;69Ws3d76wAbAIX&U#`VS>_6Q!=1dJApi_?)FZwG5om&rn0GVGB(Eg^RSWS z5uB{0y?2i9C;CP?0=`}>0BUgIQv2gq>d^X0ETOua&kl*LU*``F30L z*&B+w@v$te!ehgio8|!x@f_4#U?4{RzCZ%AtaZ&RIu$d(nK=%Qt&y)`BJatEmfunn z8*7YQBFkC4Xye;w)nCHDnLL0|cFPSIaG-Hh7U~r+0_oCjXhl~DVotr^%e3Lh3}m)K zU!VJ@?C7>(O%F`44>Cx`b9tBVGl#u(71C3#__LVFn?~VStpbv?ic;dDVZ1uVZ(k$w z*AnrezFuL@^V9>7+{WV7?Lkn`z^UbilqG`bZd~Hq@OqZ6^f5H*FNX#Zzvkslxd-!! z3LkAcSUbG?)50x4q=B%2`Lg%EgzU8otffwS3ewzr%`TAQAyxY4CSAB4UTLn@QA+Mj z+H{!qqAviY^b{gb)SZg6Z+`cz{YB7_ig_klS^;H*Eua~!_n5_f^?Zk}Ux0baX-dX)d3GuCsP^su103{bp6JZpQA}UPsj63eEV+hpcTo#&TEgN3{W ziz7TI@QYB^+$&(fVK$cM@&=h{g)cwzxmkGF?ht?~Z8zV(W&QNmn(hKUkGEvRep~~- zPJrHw_Hp;r5bDImgZs6hhLpOQm!JOP*Q* z?Hgzi$h-HBxnwE|a!a;a+g1}G@;2Weuc?<;QopF*L>P$O!{}|*6A!~U%4@Gf*~6_f zrMCwhgoav4GM6V36&Zk2fVY2ZM_>xP^@OJ(n6aA-WZmpzEZqd)JIUu>7}n?X-c~Mm zQvvH6uyQ+;xoc8&y9B)0#-5H&0_&Zja>l4ydywK=~kito?f+Y0x34)Nd zE!%K%bQ^9jD*1A&SORd#j_9Cy=QRZweL zSO^$*zmr{d0*?(Fazub+8OdBg+(!vL2lh=Z?Mr>j)IbmY1nS`JK{{G@9^d^-td(v! zXpkUNu~Un+^@>1P-xhs5%)5Mth+xkXd8{}+{jQw@1RP1fQjqi&{3Ff}xxMBxzd@6m z*14fjYYjXL7&F?daj+9BJc#YgvEGM!tk{hl4Ospl=NIapMZ5*y%h!%%!_)7Bpg{<~^d`;y(BQEaLjQmPLLsS=4QMOm#?t@BlchHY zZSYT#P83xWdo4_ z-1L<(|LUEH{uNnVv9OJ9Q9SmNt1p&U=m(R5KUi}ki~9!2Dg&B&EO|Bz4IBm*!IBm9 zQ$`r1sYDJv*zshi;0N4C#%J1R5C=M)Fnt>6A7JPH0Y5&k=bTi_k$;#hC}2G75vzsd zBK^e@{hEtXKmPlZm(~!0&Mv3&*w%V!8xfY#K7es4=)N4x>(Y^h-gbm~6dd(;ScqR# z=e^|Ew&CXAECy2>Aw-#BX??)vo*)Q%l`-A=x#!si`ZtXlNC{fXeUvqw{(Y{=3P`sc zM#pEYsFPek!uN324M1x_7|AaB-;|^u@U6SdD7a{@(#_m^e%=J7VJvLj16JVhbq5Omd;zQiQtU-EmH}aH zZT_=5mO$o_a}YacV=bJ_bNl{PJRG-*fcmdT4eRf`K(#az2UzL6;7!xi{Qm%NhD3g48Ok<=<;r{IZN2f__W5s!eS9m5hga6yv{=0}S1P7HcEj3|RJeKhXM1A*J8Fua z(9tjMzbfGG#wSNNM{U_!^p^6wt(5t9&gDHbfd2+b{^Y!6h*3%~^n>fH6>-ONxCZLn zyIX%JNJ6v%(NLFM4Z$Rq-Uol=q!}-5VkLvwMs!tTYnX@2PtpMbxaIIEQ4Sd%S|K(t z2PC&0i?ui6`JhIFh0cg9N!xcl8p#)_4wi+h;h@a@V9QGbgP{B~3?cq4A$gm8`_Lx9 ze>Ng8007p1vk@(v|2c>uiZXWD3)MCc~642#sP!%zSEHa*!#m}mupwGqaTv$f z3c~5a6UON4MJ@&ol#)#)7EqV)f||)bxSZn6BmHimDt!_c5~OpL3<;>Hcqv9{=;TaA z>qf;%eTV?}|G+6T>iG!1BifuwefCHXBL}UKq$+@EJ2Oj)eCP|2MS&S(-3O}|J zO%K_>(?kWh#wMJH#*Jr(Fq{v+2E4VrJW?!ow6(UP%0KNYZmWqlbPIYT$3KC7ejjW5 zrekQ+x}s6^gAUen8{5QnA9;ATlkfsVnmpS(-VtsMn@C44RAQ<+!;gBxKmm&oSN2Y0 zF$dt0YwZMHy8%4Uc|dK2mkNq;9;Y4@{Grysq9#JkegOY}soxkyPwW1bIPqV(iT_Kf zEo|)V9G&%CoGq;X;~Gm-PtK`GP|rxyP0Y`TZZ`5Fl=>iBNvJ89iL_NCtBOy~Z?Yy9nKVGs{WtgXw zd3B>8S~2H=1KniU1Ym6(54Sg%SohjX$rlR+lvk0)+u$dI3nIew2Ftu%Y;MadHKfKk zaz2sFMMHHQ#tVljF){1dc`Ixm|I68j+Vy{PL;?U%;RgVq|1bNtvbA%w)ibcQwR1Lb zHZj(-F>yBdkA#1_U*XzdB zflpF@^`s7dNTNXEi^0ejsCGv@5j;PmO(*Pog5738$Lxy=29#`-C4fp`3e+7l&flD>d-8%RlY&&2~5Am!19L>)~qLF4w`yMW0$TzwQ;CbMiA`!dnan9l=c>sKV-$@G2bC~cR z>MUr35=BWCXV%gS&mOYf7O1eO8y|{<^^E2~q~OuTs7utP*Itq1zhrzb)*ftKdy-pf z;^a1=_sK9L$or{%GvLYbz#m<+bRQWS*K&wpZkjmx`z3yNeTlRhQn2Hll^sM%9AzgM>;M+FwFanee#U^pu4O6$3K?MP(G6ZG?t9o-$#vb z>t(cQV`Xml`7y|ivzJ64PjmtqZzIYBM&iL*CffPY?Z&9xQpiF0o4~htcS$%MI>Qm) zT=j^+VqL;`^^QoUYL9YGFvjRBA1}nwH@#A&MSu@48 zPr6Rb7KCs-pZH%<(ksgmc^h?tx26F#A zuam0_pz8fp?$VyNY#p7}BDLZD^DY-82uEs`9PI;@QX5YmoA0CKe(c0rQU1!kFp(2I zav!Pz84z=MP;pq&45RZ+4WsO*|L!b#-*k_a{T;dyJTGq|%Xw0k!FQL9EY>Q0WB4}n z$1?KvF^G8fq^>4Lp?qT8Y?LymE#*18NWm|9!;b^KA;hLfU{;Tn!eMf6PlyjHX*NSJ z<97gnc-HYj=NEQ3#hGa$S+?%nVGn!Xqr_kGyBDxE;!ulG+U#8u0U}=w8hv4EaLj&= z{RhI&ab~!!D|HweSmtreoOup!Wb9?}9BtcFn&8(E46SWVqM zP+fCEPO$Qe(;Y=DQi-WF;^L98|t@1$VBqzTP>V^HW2l#+VNZrII_e`(=Ux%%Bx2=U7{RDsANX7#f6j0&WQ zsqBM6Nz9EL%lG0Si#As!aBPSFIx>%!*%rn8393ag)}=bg zdKNXxcYzwBi@4Z`-1s^>vk)4abGsIBTrYfabhWu_4DrWmlp_}2w5<6O71o@@pkAU7 zovU+soR;ISES@-4P_r=$nWXAM@(A>%x~y_8XD}naUG|qw2W`@fUgwDm-!aPO8rBIJ zsar7I95{z?f{IRqpTB{B7CU;;f$edNEbPzC4mxBzzC7q*&hADjfwV&y1y@M5C;_x- z=!=vp*Qsu&(Ewx}bQInJqopgA(-VT-QuBh#*0B^y!Ih7<)=Lu!>IONePmY7}+Jd0M5Fn;=mjmar`t9p?V_1>2 z8$EIX24BpBk2dl`5ZZ~*%0@=x7MxM8%5&o}=8atgJ_9)Oh#b*FFk1ilAw=M@+z-fC z4Q2i-a3C|d%1Ny#9hh%2QQq)ajKrrjxF>uGNdrG9gMq?BWq@(PCvCXSE;q?1W>Zmu zShl>^aC~?jKm+QZu~sOopR<@&DBX%?Uia447$qV*--X^W=2X2}1JQ7L;h&9bl0J^= zIGWO>qzkzWKv3~l`EPAvOg|iTs(GGshB3lsA#Dkv90@rAadb!sH57ixYI8ad)iD&P zc_7FxWC=|A(0zMe69Hih@wVIGSqKUTCJ9GIq%|y6eww%;F_Fz65~MC$weJO0l*#&< zdKqV~Kq(NMa&a@@Vj(WrsZQ|F`_M`JHw?)sAr*_|5HbvLD0uHenV@MPf_v+V8Jsxnf>V4J1uKz|#`=9s?w_%~G%BQkwh8g&Oh>CA!(vah*L@hm zBCzBC`GnY->ePr;?`~8ICgh1hR8^<~@6Tc7YuMcWaZM;)P!-RMy_d-dl?)V9tx8hv z`k45cU`WF#NEn;2gZN0Z>t&tBJt8Zq1=u8=G_0tnn@CGCJ8W$d$0X8;-XqPg4SK>M zPMZ?Bg~ugrqed`(MUgT%ZWJL(-IP5oW{8l-lj{<4PMzFaAIOzayOz7Y5Y#smu+sht zr2CgN?M-cS;Pknj-jH4m*<2YupePh>8E}e8YT6P#`o7A|5d4Y307^EJaNb!G2^fO_ zb`0!Q_~%|9nmS;X$zmfooAxdE>jb^A43S}?)JA;}BjTw0!^sXW| zM@Q%T`?M&kV^RkrovjhP>KE`Zv_j>&u-Mu)`J3X4rE`I$xvW9PDdw~lvk7~frM0fA=1V?GJ|k+` zS%pektDHg?RrAC_Tg(IzED*~sOyEfqE?aX^otD{U5uHn<#h5_YWcV{%DE<^y^*c+w z0~z{3`o(9ht}#i|4<6<2If~RE!c^hp@7QKGfg<@it>FPQB_n}iJ_&i-=oPU&F%^@l zxiv`xRBXn5)Spo7KVS^EMHiX=9)oK6a4_jQu{RYR)H}x?qTM zIU~ZR+UKB1ttj1+pd?fEJIE9)0rAr+KiiEEB~eS|yp2Qn&wNJdqdvl-59ike&UFyq z{hYoMKb1dLq9^tA&#}fBfp2cWU(Y(go4e-z;U@b0K#T2NqsjUUgu2A!*;f$3LgeCY z)G%dGj8h*;G5^wlTye?LLoPJyP_qOIwaZebBHxMJ9!4stl{!aM`@mM=J1j%R#6{4; zyV1*AxE)`IUjQ&IOl&56T{JoKBNi(oy>JAC2|2TRsOBg^;v>8w7sO87gp(g z^Y$1|r+`W+f)uDOFL~s;{u_``JPCKfEEOO%wXMw23mb5!{D9##w5CmcYosBqN$zk9TQ!1c5KFC8^X8tZ&L%sM%$EuxJfE0q%AN*KUHz|<@6ip zu5Zmt!4Y<2Bg9nV$-JKVJlu=ORF^`ovHI1=l&&8ImC5h>8MoiIv{Kv9N@5!kE5)#s zvrcG>Ge2RDtneT<`hNOhNKPbpVe6DSuTfgpr#o1@$q^XvR;#nEtbRU z0i}${vZ#;OL6tR436S$p6sIj)mkZtCHX?VWe`lO>r~)}KA&*maV%bWl9#{F&%*fp0 z>b7`8$dl2UStO}!A2EC*mrydVJhX&h8?cU9ucP@^#^~3i59>R1VsR~OjdBUGpqT$8 zX*^Z$B>DN7Uy#rLq3ayBMd5m8y=>dIZQIsfwr$(CZQHhO+qQAu)*0h#{1-8k%&MfG zQgd=kx+_;e+cb}r9e>sJE4BWfad01I7}w`Td(!@;fQo-S(mBqm)Eno`!1&Bsp%1 z)yY_eRyq#_2>9z>Y zrd`0c)yAjn$m|JEY6z!+cbHCHmqypS;*B~TYr&8qDE0iC@{>n1y>q1w???`s{)1o9c2Xwr_B<)8*FTqUfoQQ*hR9j0_cBO$;7JtpjXwzjp2Ik z+JVN|?>@Prbm6yKXNM3Fwlx`i#l{~0xbDDf6Y0A4N?wp5w8D_?#Ai2-j=p=A=(;rD zwU=T&Gp` z#ahJ-x#;(8g4A(OmKA*QRrz|Lyeg@u;WA@%e(Lm9{RbaV0*d;jz6RuUmyEoFS;*>1 z6xIKCzVr9U~dq7YNdHSH{HVu8F!kuSn{x~m84aL}Ep|_Z9wdv%p zL;Nx`gU@~H6;rc6%r>9jGgzTBkTuG(V|drW{58nT@*>ja2^fuB+vzq~x1tMg02X#+|k!S4bgaLV+GT16c&s6M8K$ zqxS&OsG?)h$01HS)M;EszD6J+VIrOa#dgc1_ds{+u190_`^F#+D$BnCAyG5qM~3YI zcAJf7A&xG4SI@86>T15717)Gxu1UE46px>4CRy(39h?>tJ`qRYJLE_wIX1&fq)L1O zN=A04U~3?)@lQzGWmFU1r14hvmePeNEP<=-J+?4^O^ziq^{J)#Ap5}|d& z+fVp#nJC!f5Kt@$ntW=YZbU%QF&ge<%Q7%c#%}yZla<7>szIwx5*?a`lRuI|h(FgM znCub9yvrV**!9rpi-i#S^_sH`AImWwY=(*LBLt1K6C_FeXF}{!R^6)>1@on;0*>bj^B3ZQ3o`!Rw0AjW zUY{lTH>ee>QLWp6pLS(guLb}+P>J)3C1m?2W)gK7d(6n`c~AA@laO8*Mm`2aBea+- z{?OkdCLtafe}fR+RZ<>?|4P4B)DZ<-)C6{yvWYk0$UDrQK?)9Q1Kt)^N*ZmIKhQIE-L5fs#`XD57Ax9KgJ!8-4+{)?^_)~C-_ECVOx*;y+6%Vr=gW% zzHPt&1BGTGO#u^WxHEU%mEYb$PG`G)7N}$xm;_BiSlF5O*<*s-0xNj1g9FM~?0>Vn z@RlixOk zr89k3Tqpqm3NlU$KqYiAjILGTrVSVw;OhCwLf*J%36vroC*u#PfIiH3#Jm@K9RC}` zR=AhCBGBt9Z^5~&>l*moZIZdrD7lj{*Mb9&$K!}(5N_yxj++yK!?m(=pMNH#mYNy) z@&Cw0g7d@F>`AanDvG*{RL>-mQG8V$Bg2b;&C}@bq$d@IC@i7U{T-+#$-?yQMH-`p z^c^W8aa@WM8Hr#jNQ4kn6_EmjgZM(B4y~r8s%`YZh znl?rSR|@>*p#^NL_y!a|3SMaDSL82UHk#NjhykTN?|?U)N(Y%ZS>y52VTFPc0=mIH zI9(?>kPG|DfIOE0f%5Ie?Jgt>sTDBp-34;)Kd`=CJC^`(B46t8d?pcUYE~Z zVGy&DLFt7IDwL-3Sgoi;i(Ol+Ni1^C=PK10O%p#v5QnKU)cH<;*K6RB)3ZcySJmf? zQwHJTPgz7B!&beee&zOIT~|zS7~)JjJ2*Y8pRYu-nF)GOa*!Wb-cyp0aU2+?9bA|& zoK}GUL~^&Z5++K(8nl#&MF634^YB?_L{3ei(igXxt+|9 zAS%X<>&#-H2b-`gAokq8ZVw&YP+dGTbwF~IlnZ|VX|>DI^QW}o+NeqpQpW^}4CEIC zZsE~Vi8;Z})aQJJ>WWwZ%%27={WxT8f>6XJ9z+k~FH~?6>9UEN(|f{{3^2iBH5)*v z3UWiionTdPK)I&uGA2uQusCF-OR<#f!3p({mB$Fa9tO^+B2#Ou{{ZLtL#%4~OhZi= z*mw+tiB-}Md}6^NSq^xrIFt&}9Io1@Y+;%7ex?ZgjzP46bfc#u_VN<&GO?qm>zIm13s{3bM;ON@UqOY$GddNop90OaCo zk<;@cO!eyr=y#Gk62;Z&QwW$~LQBe|j*RTRTU<47NEp9=6QnAJ@zxcP*->hcNsB~GJmbLph+An+C`4``X z&Dz%T^?iI=jHsC(6O-?5%RxL5`)u1MerFx>o=|KL;|}}C$Ef>{^5_Tpf7{cVbV8aG zDF8rr#Q*II+1MGISnCN&c$>(s) zD#>rLB)zjPJ(vT;2a|{p^aJG^ug?Ab|!?A})92h^XQduwgOJ|owZYS=vy z>G}LV(mX5Q->QV$GCq58UzTKBIx5sH^>`r?~#d+5Ro z^G7#vdl(?-o8ZU3+>^R48C`DyPv@Z%+jO=E(b^#rPbUz9tu7et=p2RE(uqHKz<$;8 z*NuMChqv?FQ+Gwv!|?Rlb;|x+j4|Qi$hxhhJNZiP`2x^vTp5i={RfE&vtmf{E%5VL z(RnH2o@&R;SCveO_W=xdOh19HU;X7dv-6M?jDA%Cywdh6K9gtjp}&(PX*Z zLW3(LC`>k^UWtam`z<)H)VcX?H`^TDxJbbJzydTSydFUGHPzOxP{)NG(%S((2F#QV z26IG`hzU>Z_RwWq+|*%>9;w~DGH7>mNXL?{eZ*G0NhKHot_~#cJ^=Ht6W@Bt(%NSb)G^zdc3Udb+cZ6+YB(@-z!mU!65H1GCm1j9qhv+q1H_&I;q= zM3(g$VEqV?E-1@lGwuxE$N3uG-aBjSd(2Z4o?$WF?sG?c`Lf9F@ArF2-uG>y&N#ht zi?4I9j_>27tgpm36L%m1s!9o++#S_5q5wuGUC?Z*Jp`J$YzNa1h$(~WO;PteFY@sE zI$A*un4;bcPMf+*M{%me0&=+kdnsZMaFT*R z>Tk_7m^hD$qeiao_pUUsYG8KFM+8~@YFLva}!vt?@qvUz3Lmgi}+E@7@TJG48McNJ!IIR ztdN@tM^BKCSstlz-Sunlxj|LP_37b@JwWV~I@;tvSZ|!sC>pZ!6&lF8ZD9?%5WWi3 z-L_{|WJL{zsENX=y91V)hUN$-tj;vGC0%2P8Wh1nJ7^|lx6?u^}jO5Ixjiqo{# zln&R~2+(dq!=ljA2q!oqW)yBjxX43qIa`H4@n-Pw;6D;^Y|CMw4$vDHIHOv@_pn?L z$1PV2ULgKxo| z)v+&MfL}IkeAjw?bX*NH7>2<6{NA(_&a3{DTb9uiI=sv|dBCIt0O>sDENZ&C>RXaI=J!Rf&u2-hm1WWtnD=hn0ov6E(cQe6;sF467Ic=!c53IWtTm- zD9IfaH`W1>X8df7KCA>lxgtQ)J`2IsFi~r(b`{rrWg;gs1}JVaUp1~LTZF^67oZYn z-SyfH+YfK-Qt8XfY8roh95!Vo5$#w*P%BfuILqnCyvwN(gjtAe5Dprul*#$sFw5R1coYh&5G|1)Z@;Z#GR0~hvCjIKO2XuGJFXfX*RLC7{q7G6< zcnz%SZob{+DtodHW62Rozy-ht_R2n1j-uhkeQPtgLmo}SEZ#~r3?Ku44LzcX33T75Ie2TDJ2PenRoOnlaQT{4G*lH8V^(7&|0k@K9p@tP~n{mb!+ z1(>5f&TB072|vx%nJXVIwNi|{6GXe+y)4FNWou#)W(1Z)i#)(vhfdjwZmlvCF!s|##{EGL|33m8a^Mz}C zvOHsBi)ex9)88pIq0i|M0Dw(fet7YIUleLCBm*>o6>f*A4b;J*0{AjhG(!lCVI=RH z#gGB{*R{7nTiqW!*bOtyqUem-#|ERsnDM&~F##rad-M_mtPIBd^_on)gK~0*0q=yY zO(@U+jF_K(>bX8^Gax=!J4yq5Q!65IFb2 zAHPVy?lK)jqI$vM8)N!6w^z=~>WA8zzmJKMoCMO$Sto8mGTSS1WH)D`^yCG5Ky>}3 z@`#L7Rt`}mJy#X5F` zFAXC24gSH`ofeF67_%qd;F;Sc{H?R=yq?lZF`dIx(Ws5KdvVfNCfcF5k8r51xjg=7 zYt*9Mr5`n4xbO*O*yzOtR%X4{*T@?PvgLOEnE>)}>>kBtSvcn>^K*>ueFddz z1Vibvun76z-2N*lW&?6TPSLC3;lg{;~bo#&E^Yr5gG^ zJb}P{lRO9FH?~PfX-0r%_tW~IC*(EN?2m>n)S(3|qYv2Pnc_!Q(+l`H_ct05fk`&t zDFO&2rM9K+@dtBUnlp|idF+jN`TPxp#rege5q#@h_w-Y}3cK`F%^m>afOuBR)4o;! zg?N=`HjvRH3CSTgjTx-Hlme+$X^3pE8Zq04Ln~GLa=dnB+D0T)qxvh+oaM|{cpR!D zOB^5CTx80|C~Yd-=}!oJGvL#M(YH8Q?uU=dK*%%n8tF7GAZYf8J|Sya#x& zvlDPH@388Ucp|@9TXIGp*C^987D*`?ntX`5R3 ze#~B9_1ur0SOiMf!mw@FN z@DP7=EP&;e5PJ&s(BQB+_h|Z^R;yvuStE{eLEvQTht@AiaVip&p+Qh{I^Q3>KDWw# z?Xz?u#`zmI&Wl?CH5dA#!^0R84{${K9~^p7(S6rZyS+l6IT^<>K%sgr%ri!C*oLd{ zFdpaY1(Im%0M1ZH^Z>&d-;zhl_G3eV%qEAW)H>kcVcot1g=ro4qJY}BOn2s#c+Bs)Rs!y9ls$Sfc{sZI%%MZ zGBFkaF8zKE>)gxi1WFCY<$rXwsbrZPhaYE<;-WaryubKV{jTq>xJCS#gtACqwsF9Q zTVKmTsxB78TC8#P&P0k z92^^uNz`{bx>TZFjK6E04((06J-`wYtWBM;i(BH#P{>CJw_!U1s8O7M9RNrzl4-Bz zF$2?unlV#MNk*lj3)wq!yAWSf(@kT&k)qjG7(9M#PmSCBZ_h|$0*CVGN%|>QY(vea zWpKnPw2KGP@S4TOhJgo9_ygJqbb;RbDn_yOpFe?G-^7s^No*s$3WgFIC{Ox*sSa7V zmD4MLs4fr!YJIsY(0blkCCP(VFtANS;1->WNG!cNXRTLp%_g;w53BHX}vc_ z1mA=9Wg_&7M%S{vn(f^!8Q;;8$%c_EA}hIAL%#so1k>7WIR1-}*^yR&sy82-LS=r- zfPiHiM7N!cZkV&%?8FM(Vv1b;RwyG~qGf#yxs(MJZssKckm}S4%@|7`% z4nZDbTgsG^fea*YSYqdp>Svd*VcP(x<~Cv;NSuR!!C`eUl?Ox-JzmxH@-!tT`SF+J zLa9o(e|{;^X{2FA)$VmB?qoed%4;yA@7t_kI9-aG^mbTd$6*dU`#gL~t1Mr|_T!nC z*5vYu#0jdAMHVYEaIeFJVg||mJ#5SSjr~z6zV&TB@XPzXUE1?~Y~Z$P=Wpke1YKJC z)SgL6LziX?z&wO=tL^jJUq}mu$NRbJU`pu12O+Ur{=1Gc5SwwDcKqxo}_%Uwafm!c$M%dkkkBdfd5IUTlF&;J`JJYN$U?s;Q)flS~ zZCcu`7CyYHzTs>|G%rU+QFpEK*4)mbZt-H#(+9d% z(R&+u7|cvbH@ZlOPz7xZo`7~bKNVSC?6Ydv&2Rcp_ib{{S8!&*YDlM_BUZcAJ|4_r z)z^R!^Zo%R*VR0a(D^zF2+pVyj`~Dz63nlvp18^e{md%Oir)x}5sd;J8F{3@7Dd3c zRTt^(!dj(scp>3?3xjO&0X}gC=#nTu)lCQ2)%QgyPqM{pRB9DE*XT!CG!P(|vRe=- zj<|^fW+E+$4xj+B-VRrwhtRBJn7d<=svBfL>x$jRA%0N*0_ezU+Rm;n9(KS< zx)LxS76f0BNV3V&5)ePzG$91gI#)PiM75+j|A88j8= zsLGU~ICPqP+G}D3Xqt@n4)Nu~+Li}6oFS%fidq@WErAC{w5HIrM$61T;^}IDYK~n7 zO8*etG}zLB(+6GRy#n$G9 zVrNRe*e4(21L(RJ&%yIx@*$Xv<<8I*AFrK~=?>82>5DD!uiJpmuVZDlsbJg@;n9?j zJ|3tKr49vpuNe-Io^b^&>FJB50em%BM&-;uJ_3jkC_OWsTXqpO6q^=3;iQf?h7%FXUmsa`{h@s_OOT~NlrdCXN0g!I zzRI~|s+P`2NH;G0t7RG8$I!hORKUaJJ&0s%^>N0aALm`uy{%8^3sSCf9EXQ2B(Jz*)q-;ghpN=5VOhy|5-hx)7)@b^nJ@)q)+?ut&GY(OhoF zQukhI?@2{$$Svk#;Qji86INxciOe`o$C|1{t9$&!`!x%C$h*CtDAgw#ccmDe%7j9e zcNOyWX4!}(nw@pCnxF40Rv+!2opR3-2W+e7ULNMteaFA{mbxbgf1l*?UC`+UJD=Wm z5AoI9Ktj)wI-i072NrzCF0q3t_&uAn)}t+m0#!v^s}ZuaW@mdOWdL9mx+We+q~7B~ z=2w_T)6Z?9A?O=|s;;qpzy(t8npi|@FVgH_j13TWTS`Zloaa}OEqGxuc!v0X5s;sC ztFKe!0?qtRRgat}c%_Z#@xF+hQrRDtZYI(z^8BFp{-ORkaL9BCE&u0Gt_hd3xZfVmVQ11&OAR#{9aeJZKLOH_aaZBLXqZes@a*VDc~q4)(6KFSbX z?l4g{=7mhJ127Xp$&H3n6z1U3vSW$`o62wDKuAkZ9F&c>2l_+wpWP4_F?ava{AT@N z<6WfSkMC$gGIawuY_A4CnvuUz1=>=r;LsTgo#Gi?O$BS8XeVpUtL=054Cl*MJZL&Z z0Sct70y-7=!QWz&sfaO4{L06ra46yUax3`&!qL^VlLr$Tyd>@>ek(SPY;I691SGQ+ zHb1v*DUE#c3D}PhzqTeaGzd;x+u9$R#k+qI7;e+R{b&zu3?wtZ_#a;oM`gWr4wt3y z(G=f#Ts^98c=bA$Y9RQhn-&M8q#*sDk~qxRlm+1WS5Dv1SYEl&C;2#kV)$A6sLW4W zhm%7c9VCL}_KD+qM56J(`OQORDuH{J%EW-%V(*lTO0M7}NT=^2`z>n?9_(6-KL`wd zfI5%&&!vcM{-Hu5LC%>yrH zoYeRobf*E0tA`ql@#1H1)vBpdNZhg|L%ylqt~v^!w* zU&GsMNb>q^C{N&7Rg2eGJXFv?g6qajGB`Ij_qZw$mqN?^GRZ|gU{@q9CFIV2oTWA9Vb1_x!$xtVxC3Dwo)0#J zT|Flroi@^6fre`D&gA;}m9_eguFRU_l3iW{5Gmjt)>1%Q^?`hqx^Nk{ME~K`2#3UL zlIU)@AlIOLMR7+-9aB$I3wK$$R-0l<5#DA=-8Yh@#)Z~q#$U5sAjUG-kLa0L4lzvt z;mfeflJe4_T;2fS2)1+*`c|WgKoc7;Hb9NVVsW1slF+%z1q(|$bd(k6fl4D@#gt57 zhFt?L=X+vMUqfuA^OEn7{vsLcAhnp!4~OB#CS;#EKH1g7gI0L7-HcG9PeA-koCncD znyZWK^776qCozA^O%IZWA+WD)M8B4`>Y#aAn-GYC{4T$5IYmXiMA_Yo=Hr47wZOa|>ZW)*2_ z2VOOFl!R;(H|sOP(*kj5lCa>$9vRZf@m=q+bzzD0_&`>x9vE#SW^{Ri6h1=*_0Uvo zb2d{2ZS1CjeI#wus|%jNDw6_1qgxofPqi4v|Kw!VIh2GLj z+PH6BMI9k*C}Zx0Z}$~$9&B0jTO!Au!Q3}x7V$Js@7{HW7&QQ?YQ?prP%FeN%re*8 z*g@6*&~MK^F0nZBrj}RZk6uwQs$kr7HlR$+buK8ySI^GCPpUewHp=i^08z7|JX~Dq zy3jwjxk)2FlO~=4Dd}1Z;DMs(N$cWOqgh4K&~W2;$;W)xL>l*pjP$Bfy32{KGArX$ zRGsHJz`JQHrc3x-aGzsfz7z>Z#bsO3ZnZ$q2%eD-EJP&y`Ircfh0E+es~||AA8XhD z;sZ*I7@hMoYeACD2VZfmob@t~nZF_j4fXfX@fRsQedsEkXSUT4FNZ){?+c6YO%92oiM`4EP z!njmteIAs9S^0AVdijBk77f_Lao%_iZXB3{pvE@^Xs|p zs}r=Yx8$pTHwo*H7NuO@{ChG&WwSbsyz8;F*S-(pa@wI7`d`S>I4=q=ww0e#^SRcn zcnqz({EGCAFMCB8k{S6zYo{>Np5g5$`4R0wrC6)zM{I1w<7SA$V&s zEn3AwXPNLV4}E2O1y#DRjd;Fg{{W9#f-tcFKMF^gvJeLX_5EE6vfK>M1dTK~cLe75 z2T+fn7@>-rEGT@Rq0JdL!B6zeeyS|Ea?0zCU`J5vN#b$77vrCXKRFRpI(OG9m8!ks z0MJT^d`mtW7Z=RVe)lzxS17T%>kFGGPn-RIE&<8S^4=Q>r>?L z#N)HyTjPD)#IWa^A>1iAv)hzaoOJrv2uaAKXcI3?^5PUK)UyG{)o$qE<$5mjkeDb?2&Ksb|{TwCN1frWf018z1 zN0}|W*e@h%z6R)sD2!^9Ue1s!yl(oVa%XaGe>v%MT1C7ap6Sy6UOjZ1?}AZ5U_|$) z^yr_vLWEv}i?5|qnJe+DtBP^Nxvf2Zj;EN+Lxw^OEf*0ej+)eTI}-tsKMc7F%|FT* z34&KH(dbfy<20qKA&w2HzVHbTscUI8ypOgO%!EZEYk~PlBJbt9J$a|u9HHz7Y84;{LJaztmr7l#7_u* zEkh&5p}(O#QkKd&MS(<$JcxNDK=&oIm!ng2Qv7zH_oRq!k$jh|>^Ds^L{v z8?Bt3Rw!n)0!5-(|I36sy_Xq;u{-Enh zTi((s9}LB2p0=P;mPbA%vRTXflf&kIc2PJnT?_DYih0mE{~No1Ilyi?;S$(p|6>8) z0sf79?K`iG$X|N};8>+FP$BD8Gxw_r60K+3&|g69#;jd_4`LGTZLUpaIJ!UCLTdA< zm9=`r4Nu=dPuYi>ER!lK#-#4IJv(D>P`|o9yM3&jojT=**T#yskFf?LG4nuF_G67% zJh89fUhKT}NGhqm)Mk__G%dXX<;-zBt*bC*uf#pf6F*$2cOnbN*awnlHwIPSt z%{hl-xV#3{@dfVaIvz$upvWWG&D=;W+b7or6&^Jv8G*)``{Tq}_2`S3h;~Ig+t2Hk zB)v#s!Oqf(+37RpZ%@hxD;)#3*;Bn3`HkjB*Dj$<=LUqSlY{N$g}BlP%}9TwflW$^ zHPIoWSYckvdQit*#*j)0fy_S+uKe8i__S6(joI_~j$KMg zgPN?3VISb5ZwdYg(clS~U+@u6Fh-;&GJ(iD485|6DYj`mV`-olBPXOyJGij1`R-JC zc#8DVjMg+(SfQ6)!BdL7-1e9lWWp(TYQ;+Vl3H7A*}Xhb>eb+9Nun7`ObvTU4wGfp za?AJK@kpO~B6u}lt)m6vUtYO!dr2{PH_RgG$WM0bJ-gSNP^jdVDpEe_732X*&}xQc zv|nPN-}a zJ9D!^)kAtqaib7Y4crec~^B*&IzZtH+B3K z)pMn`wDahI4z}{16cfBa6y_7hRV_}gdCR~Oup)f{6KG%u0Ivm8C*rd)IJn-svwBU{ zi+?=HJa>3+QdZ*hJYLhIi4G&7bxqXGKf@rI4l$0e5$P4vuiy*F^j{*?XjSXrfh?Dx zAL-r;S?`j&AiaqJ;69V$JI%fiwJ5UjREq0Mb|p$r4&^6Kv0K?BST|X&UO^NR^~c6m zI4zdF&!Mk)MDRgZXuIvIvzs}nc3b~XnCG4vwgHrOaqxw9e?BiO|1#3Gq@BzG48!)r zUi}n08|zl`>97E#ocoM59iYN@BxzAeM=n zVtkD3yE@YXK9u~&H0|3Y|0RWKwALs721~w*6_69~K|38_aMN7+Riw(_p zt*(CMmRvo^T z2Jj3g`^pXO+(s2=*t4fbR;S`cvpB4=JUZS(7sFzaXss#ZM~2ze$!Gx-mUbrJ- zCl_C(mdYZM3ZX9A>#d1qie;}OrbF>gHq~|;?`uNv)Uk|8x25K39YwTsOO$E1%2-ED zw1R5so@$9er|npD7vzvT!^APELg1SSp2|Z#?fq9rxzcaa^3+ZXSU$yyC!pwFQ|l;3zn%oHo*LTS`;gBD%=kVn#}X%Q?LU{NP;4v*LKS?Jn4 zZhR-#p3N&IO1R)5T@z5cNnVhGwzzy*O_eGxg#pyNTBKQ*c;ST$X)&E@XIU)55Ly~u zRLM->8rRk~;>ZGZQR(hLUyKxpgjk3s6pU-7malv}ytq~&FZUp%Gv%M`oiK_oThl0y zgZ`I|n=zNeZg>`pyu!2>E*G_-9=~Djpw4^5(pbhaSNcJrYO@Y9B(6?ftG*IyCwy(# z*146U^)F~AeT3ni$P3MFoelN;P;yV}?5naT z^E1s?%)9(q%l)p~?9+y|m?mOP1B(yiosdyOHl%xk7S=aFiyyj zUVPShf)bJi$-5w~k)~h{2dz{yV5=!`1yPcmA3$f9Pizl2pl;zWy>)%2k_(hZXkILvTu`Y^12;bVFcdXd@iXL{e@XpeP(FX*s zlhvF@)lNNhtxn+uq@g?)jd^dHs=Z zhb*E<6cR*18_j@y6jWpbzNB6A=an0<)G-T%xbjgngIoZ>#kJ(%VL&bKm(?MSNB2*k zY!gK-^3`qx+LeGvPOqS{{sHpizR?ft5b`m&6l4WG^uBR!HF_Ht<1WE zpX(;X3Fi@{>w#S-oJO`Kd+AdxMf_Wkc~@0g{<%CmjQ0&5SwLYZF`BQy0f(Yole~_t ze0h>Y&OILbLKYo0l+-9`Y`fU*m1LuSaXc_AU9l z`yFh%CpP7+()!(n?XvU1o`yV~mHHtW z3TV1OG>26PqYv5aIIqDm0IXaDr@_6T!^-_e)ffg|3ao&>X_s$qE5M9&=m1=jDLe8T zNeEFJ2tcJgj;9hZ4QhX)2~khmD;O}_N z2h~txltM1i=-*z=KsQB2Te-}V`ucW9I=Ph4XLr!A9(&?4D9)EX^;FUxyuZ_bXNC_v zkjL}ae*ap#-*okQ*HkzBw40Xon>ObS`6UYKbnTgQN-6T7U1g2^oWe5wj!X*U7Gfoz zq@JspF~u&deWPLYK-NmW)PcXiF6|&qCQg$Rhk2yV4p<#PKhQQ0`{Mnuz;99N=%sK7 zp@!8EK-x?oa)9=Gy4q4xYOB(OLO`DYlptQL$waN;d6P6~3-TCsyL9L%a?CcL8ht)c z__{CAY9?$R{9V*B3W3VCN?LoHlUPYR4$P(9<=sEB`odMk0JFgqKtbvZUApwMt_VO{ znB~u`utV5(QB=V8)?<*sFt?st5)vE);9?OE&^%=q)GSU3C=pP%Bg8;%<7y>Xgw-Mj zFxUiBu?PCwgA`}CRqTVy3 zuII~_F)_|`#{~jB2{==4$mWu%czBtN-ikez`qjds5-AQLM^?^vD}T--E@5nggz}0K zWaOHC{}Q>PCPel|GjOveC|D^2q&A{ZU2c|$7=L9M9x3Pi2u@e!6L4+uM)FnmLam;2TOL$tp z!7HUk>h@`VWzHq!kq2Y^WI>3TCe$$yKse3_A#X7ZQLMZ9eR?s0#2C~=a{F}Ile&0Aq3S^NzU*iL{#qZYa8fe+8m$PXB&N2^nr!c_lae34gw1| zf5E)LbjSI-e!iq2)Dsm z0)m8|mk;MbM}_T*Qk#n#2eCs|5G9TK0WQSc`6@pW=EFN9n7ghsZW*kYI{Qa+y$sR;?e*q9IkMw^v*i(Cre@cYc#gwb za$+Z3O!@2%03aM7Eef{f*pd@dvNEnm;QX?_#~C!pjEDuc!^r|l3y3lr;O;ykNqWkU9Q==>NUK`%E`ZSVD+J79G{W2;jUZXJG8|%c+FXC*k zBAIwVw9%VJ=$CfW1O z2X?M#L6A3*EfMSUVtUPX5FR|HOc_gs8)-*6iro0fTt?x}LOJ(|w^Rg);QMKLfYn=7 z3|`ro-aKig5UDZr1^n&a(v`U zaJ@!`AD_eHzGT(4hCvVaP6Mx?!?gch`JltG-Rhm7)g9P~&&R=;`!DX`4MKKLtkU_! zqn1hlys^+rLlwhFBwB|hkHU1lR*3JW&}K7lvAv7Pd~+T(Ae-J!uoyV0i#vqBHYm>* zGBc0$Z+R}c)d9D2hYWq#Q~GS`MT9#Xvh-&N2d{9H1n04o8Nbl} zGnoH!)+Dle7QU0|mZ6q4@(5j1kXC|#t>zEFZY{Sy&O#O?!a?{|8$qhFT)yBMtdW`Q z)4g7gpDNQPQ8L1A0NerNy2SI+n(ulYrys#xALZOKavS06A2ZGk+T)AF{&k}dH@{tx<#V(Wt zQw3eYUtGaSR@y(mPPepznn%)cy*;VHrc{GsP7i2}n1nCos!T;LeyC;TXSY8*6g!66 zR-3B)7wpT~aYR?-#=Ec*z$kzpEb3>wW8-~3oaL6=O*eo|myLLz1gTEk0fJ$IQjbxp z%fLiRjxmcLDg>A6m`FfkV3v6E1oc`F`wB?Ho!$NQY8vm{*%dY++1G-~CgPxjXxx6* z{uj#_g57o)l}W+uuque<_ja}Cr_-6`E+WfAn=Qbk65Weu>lUJELLf0KOj;N5=vgkM zNDNqm8?khC0L0Y_Yy*tvyhUT=?3q@s$sKkGJJ8+Dv8aJvN7JHM;-f)u7BHsS$YQV| z0`X@LboKcb8^?a$kF)cUc;)NmJNd8C%imHMlDXF+6tq30@K!7Z0NJbq2A>J58hi>i z$HNh6vg+e3ZhU>pA`_paen$_{O8Mn9@pt#Hf|Pe7RIa}BjJALOen2G=;-<(1SzB%z ztt@;U$u-ZRXl|@;?ppbJAKD!^+XTg@YAkJSr?4xuq<%tp7`{{B!-(#|&n-CY{bl&x zv)=7s$;Ph2M~8k`{jgEqHHsi>RR-(q;-xJ3eO~ci>|!Sj-%AH(R)BDP%uNm*8`MKd zC;VJZEz=qov^Hp(1oknyThX(6gqe~5BV6H5v!J@^dg7$1Z0`4SdI&Q6o{~D0xIx<} z<-dzSZcmx>x(;O@JY7#HpL0|M-UYWY)cBSXc~^v8@)tH(7U0GC> zZjGLQjqygu@D~hYmrON>8|3}w3b%_$JTefW5wq3hy z+qP}jF59+k+qP}n#x8Z89^DW3j&c4#K1F7J5wX^sA!})I%~{@t`G4Qya-tq64iK~6 zq;{cS6<@PbBy#9^(@Qq|@TQpW>gy9Vs0{ntd4h$nq_aV5GnTvt$_Ba{nb zUjJ@f{)}Ol%!ffn}M3&hEi9I8`o(f zR5hy!XVs!@SZ19NE;TKnt16OARLdp+nB(Ag3Mt0cY^JC8M3h@~vwdw0$QV)qKX{qLoz@jVV$&XF;>=EW1xf*PYT(%E0GtoB@Fho zk_r;O^gP0Y>Jf}e+~AgjNv%YQ(M=pqq^s1R*r_~N9juAUyhuaA8x z`-)4}URisAO-z>`J?B3h+momKeVZ4wM2ifhbjykfS-UvdQsP{%wkISzQ?hSBE)B(r zkw8-7**x0x9oIw+;?))AK4#ccb!6QI6CntLlI!*|oUFeo+S*gp~JdDyxU5;#3~5+O?M5Jj!MG=nm>9?Qd_%I#t*V< zTPdL6IP7R}jjD6F;;aHrb`#U*8(P7MEwRAjAxN7ugXe6UlG{5a4^bC8{-z%IXB{|0 zNpu;u>2!yo{|%j`#?&reX8KzOM?I7?u2AD&JV&isJk`pb6}Z~uQfiE>lRp%anCWzL z5|Y?}clgsB*BFPSXj{xl=Aau|JaWr^MB%XPi!^feuu5>ggy<*edqWiadnT6D38FD6 zPx((cr)tz7v4z6EcUg1>vjC)q9q4Zp@;{mso&)eZ+XT4wvSMJI=T*t}OVHsIaZWvY z4FEq-?IXb}PF9e{M&FLNpMr(Tz>iz2r>9VKkJ^Gu9`zp$B^t2s8htbH|{ATcuQ>VZb&=k)zkP#2EszyF_2mBGpl0jgyD=Q+>Y|xZvOI z0wW3^Oc(2n#eU}@51$88Y}Cfq9!gMY7lx8}D;5+4BSYQqSu9DKJjKN!345&m;`85HeW*`w2w@q+m_uS58~+dbak59qFG*| z5AAYzHc0BVzYn-|3Z0g9;19Mh;%VG9o2Bzvk89bhU`N+i`&aKZV2I#y5(eKA${yhM zt8H_UMhl<%6T=_bP7w_8Er|!J;y^#8WZ`t!V~H)sracd(%e;C=oqn`@)*+A2S7rzQ z!3D14`vw40*bB+?)oM;Xvh9!}IbtGWpQl zsj#rGa~B}omgSWH-C{$=!AXW!Y+~Y;1_dRCumrlL-mM&aeukp)i;DP7f_rV3u|CyiZrI*sx`eRiqXxF6bS=)m) z=Dw9zsh;{Wi-#h?{p-iOAvK4fx#uK^ckkdUngh;e;4`W9@ovC>Cp?RwM&#RsQ349Bn z7Ehj>nLd2$nQkOdH<)<9i$Q%{`@+}>Ep0i;arEYi?=6gkL=lY_E;&WS4zKYl+UY9$ zE=;+BZsWhaAyX?=X#pL|$8UKdA9AKgBa@v0`e^yMT~kc+ze@Jy2K%dj!AU9TEZ$!= z*%{ouE7_*uBr9$2hA>F+uz_VOQC+FYf-78UWFkjcpcazCaUmIWQZm5X!QSUK3a z6Sb}8t_yA|L8(E;wrE*GHIp)3WzaL#l<*yOvEqw0iV5<46|-#&Mz#FyDs-ZAPIePU zKz)?&X6V%GxG01v$I4sf{Q{US@w$PJzhVB0?+5xTDk0=^wJO?2U8qWu7pQ%$UWLeb zC0@PiGJfN>vt>(@vAMtCvTMoP39v6rb-15aLJsDt)#`e96u#jlky$6{WbQSF>m;ct z3Wj7TErW%~9+w^KV!M#pJ70`e1ck0Feb7ElsPBZ=>)IVi`{*(7cKE$J8+RGU_6bvp zK&C+$tik;uvS`_2h`_+NtgNIu2K>n%e)8k7qn7X~Q`H!-WnGkMX|@FUwz)HyX=}NB z)nQPLv$A+KiG;8#z-kSx`FQ8(aeN`u;CgF*)N)UPVsE=I6%30bBn& zO7&7w-ym)qN=Zre7>PH}?MVj01cMEYZe3zA9ZZAfGa*Nq+VuQ!Ig9qkB>W(15gw9c z@OkWeUkziUx05p#;zvdWi>6Lxs2hxs5|-0Cw_X$(7Mm4t2tQH2d2$np9sk<60 zoy(RGUPy*mG9>8kPE5r)0LXhb_~>_Az)#nnp%a#G6T+p#(SQcb7TnaiX|7I^F z_((q`q_-MYNY$PMt|fpKqii@Ny&4xTXnX|;*V5vBywS|XkfmswkInzFo_#^&F24Ku zQ(d~=>_(2!^9McE7WmNPhP!XJy$=V-c6tmQw9^v4y_vzQ36q_+F^el3|B+xH*^+Sw zTwF_YDr+9~l6?+zaw=413muFnw5anX!Mbm%q@@Dj|l@>t)K!QMb*+#d6r>t{93{x#m$Fu>MCUN!yilp zKCi*}O2#mmA3L3)#7A7`F@QH88n?|dHbKkEfk@gBdN!*q*0>0y0k*;}Ss&t?gMB*= z(<2Z4j(uQV|42UDmHQqkK%qB98OQyJE@+zry34S5#M9K+3NP5S1So?!NUbb+$)$w* z3~W5#M72`*db4QxL5`-kv0on1BwwO7>nbc?TpngYv&G`{xojI~U44o$n!yV&SD?WR z7!*CB`)Q4!*O6JZB34)pYugc!QjlH@`I7#?o!|VdkH~{^B(ihH*>+kp(C%v(08Bfw)U;ylGpkw$**N7 zwz3Quk|g8>th77#6xYfqJSdbQ3dlM`bKnUI9YP-W0An)-J@%h>xR>(?j(ce6e&s!+ z$*8*EziWj{OX&J15z4yL--A>^woO%{Km^^_X+#l)+_~$IwJF*GWEvBfZ%4STe;>Y4 z2K%4O_T?#&Ya{H~W2r`nzk+fZoSepYkEhpEjM)}#m}*O47xOgU-Ze1uc~UUapSr3g zB)xV+wA=%@8a}a^M4j1-ACieLxx*g6nq~0DXeNgVFi7pgOlJGvj*87q1PhAhKba+&yjr4(xl?=l<{pR9DZ5c=z2{vIl=gR))a&A>ui)pSc^A*mWRk9nJ~ z21pP8-c~Qug@GQ#wM(Szm91FHY>x02UZJAkzkfPpDST$9=kHFm!&r2d47kRVU#q@w zO^39(QXT?sTrUS8IX7*dv?=vZCV+29j@Neq@-=k|EGDLUD0qO6%-k@#n3vG}U>_1x zk}&t0(sES)n&zx9b74QRO?KK4ZTXPIB(BY`b{)^MqjwzYuon>u71!J({j@(UMB%a% zxZfAYp45ilHSYh}K|Jo3iVr+~r$$>Zlyhg)!?NZsd9uhsXY;WF!~d;wDvib^Z9Y6k zu}Cpph#u*{RCX`?dXP!Z77J#d`udycR?*vbk3!A_9`UsoK4zMl!v6#AR|$MzbSmI# zZSdPhZN(c^LlUCi-v*(FHwy_7tj#JR{TN@yIHIns?HyZV-Dty>_xjRkxVdRu&6op? z#WjDY2D(Hl^-6Xn>%_xnt5whebKxp)ak9{xlzN%j-gIWy_n{KUcQ?hN17`oQ%5nD? zxbd?^8Z&6R?*f%fbDPM*Eiag`XX_viyLL&!wo0_`T$n4SZ3O1g@i@k6WOyRWacxW& zC&>SSB=QKs$A`ZWWyH|%I4eH{edT-VTy{s6lL+)k#!C`cRv#pKX8EkH96evtcI&vX z$MxzuE1uQ61@WArcgEtA{r+FLdzUHW6g*G>fQw&r{C~s7|NjBR#MZ>o;6GdwJtuPm zM-$`Ut$4HArtKjc!rxal1Y5v$zrr4D@lArUo04tQKrvs% z>>=xN!eC=flDAX})dbNl3e8RDU@QuCiOh*2n=#u~9K#E$q9iD$zwqamNU>LG`Jk*x z=IesJ4E!S2A;GGN=(a6!T?JKtgtfRe=dx+s#~)jC^E&n@ggUkDr5d`uM)%B`wvr8- z#UfT~1XV%23$bL7^g(9&I$RPi;}6S+|4m`E$BNwT{0m{xri^dAoNS7;lmdYeJSHBc z(K1&}rd}|sR3pDM5B{?z-La%D=XfmVND8WzkZ5-;gNJqZt)1lI5>1YS$bS^%|>@I@|Fqt zq?g48QzQ-N8KVUkX9U3j7I?`beqtjENE|8w*?8 zQb#c37qITPWa4;y&}R@`Vz+ge0uCM81_PRPk2zf=h zaj=A*A4@sB4Aphxi>Q@Rrd#JJ=ce95aO}?2z(mnWQGXl|K)4X6(J+rTURhOn&X z#5tKs40{YWRSO9G_Xzj=TO>kH9FJksTX$ZwHC)CF&$*kIlMQ1i7cXr9=`H+2*cDN( zAEO8yQbxvO@|fVa9#tgI)b-aVNff@6R|FuNB;>$a7H&V|jlQon8m~;Eiwz-efZB*? z`sjaMmrLHff;sw;!A#h5vP=Fx zOgy(BVrA;uP|jPjvCXmdmVia_)qgJVbd~GW6Mkqk@7~b|Ky&HIbnn91M*Gcb1$w@* zo{!*SU#5goGp)%kEW2D@*#GAVr%c`O11DP(GNmM9Uf8eWk$nJc;EHCO>F~7m1@gdtZ-t zI!E37kuXFJOZ*4-Y1zuZJRze`LQ1Jcn7&|L_@&{DC1MN3lYXpvAA3PCll4c0f5^mc zdh@~yLN@_FI7L&1`p(4vvNnu}^(tOAj9)>qT~l-<0#I|T)U&6<}r({>5Zff1VG3}CRjS{PLI23 z-nlMGpllo?%$jEm9+!e=Ds#1T+DccwEQbG+3NX!+F&KrsKi8JeklDWuZ4tz)JoihM zldbJ2HGCd3tUz*!j?gM)-;nn{O3$!ikRB7vx+=lkN^n{%(#)#2;Im;{mbQA6;o8_J zQFgH4ETXN+W^l}Op)AYRNnG_pko5nPhF%KjJj0n++uAg1^MQ1JjJtq6(MKnvh#-m` zJgbqFdIKn2$OvU=#mm$YgG7n~02-Rf=;F7$TQ+Wl(KiKEH(7T{sml^!)6n z>Un~~GWhwWIWtQ|m2frZ=V3)!cH^ofQu{@-RSKRBq4QPg1^$07Nl0)nl@D+L0Iy$( z6TyF5k``vR2F@;yCcg`ESzXKS@HapAi`+~A-z=-x=B=rxiz|`fI&)@9E20Gx$jc|) z*cVM0=;8x)Le-fm}?;S*s&pLwzGWOaoqdR02~WU6sLqHJI>16UEcC+ z&BkSx>Ow5ie_=L{b2b((b;I@$MHv1q7a)j}IEy)vQiR5pM%?dBj{FQcD61;pYCI^HZ+s}(sl*#^;C<_t z6`*X#bLqDL@?8U8X?ao6*Vd+7=lO^q)}r#_uMP9GjVm!Wj3h#(JK$go-)s8zv?_3&|`mI0Lm0TEN<9xFyabig%)1&H{WVZ znqc2@caqNJ#2Jf{E4L&foC~sd6#c9; zJ^omWv&`YXp2W?L2et1bb6)m!Ux6-I(mTN7dob0lfQE%k z6&Rydk_5->A%(Eam0^RSzMxQC= zv!aqtg0#}kuLaxT0}s_?U!WF0UyGs*(>c0(n8d<%1P19|Ueo#cQ9Nh4>2v_9BXc6w zMgu*J9zprQ$N4$NgZ76eUE5!J{Z*8G&g9N>N|PASGx>854b)fG!_g{yiYB!(bApC( zkOOTiu3ieSx;H`tCu3}KYdV|Zqys1t7)J0oR{GVKhU;YHmw;KHuw@upP1+&z7_w`` zg=QNu0ONipf;Wjpth2mdp1(?;^NT|}cKn{$;?4*b3>PLU1>oPfz>Ci|f5eRn16n=h|!C-B^ALx@aG%zT(U}KhdFcK(f6U+H%%Z+QSj~(UYKT>9d z20Vi_J|h0Y_aTk#vcVM6yb(Olzv?kfAB%=oXrktrO;8<>1{hTZ>!AZ*f*bg#0nOvZ z2~CInkI=HoD`Usj>d!erp7hc%m-oj19>Xv2srt+0a8bIRj@7Yjm3Z+FZwvo`kOvWN zKdt!pLP*zllb6SMigGI5Riox|K^C(~bA5k`9su|_GCMwyp)tS^61^_nJT-1jYRhc- zWigpp68;O2nT8INjy@yX;JV!06wzlyx`s@gXUG2o&AUF`*@{2v448rWp;>=Uk`(+? zryjEoHmN3E=WH&V37t=^V(M3W$P|GXH8YVj#w_^qhKwV?@b(1sr~yjD zl2%V-Ka@dC(*p1esIxkxhV_@@+F|ql4j^SmEQao+4Q48khvcuX)5pop^mJ!rE6Sa~ z8JZJKOBi7qJm9_1AJrRlnO@*UdyR}~P(U(WH9UqTu_*k2%B>D!kYV7N3Q#*}QENPT zWKB29D$I?TeL+uTa~Ni9z%U7oSSF`gZa3pYU5-*WbMUG^P45_tQ83;1AUZK2Z74`l$y(B=M_AS9 zMtL@+712g9!ClqRD63abu9#sL^rtU?V=T2rPkA(x z9-{6Kyn0G%2D^x2s!7e1^)ZB=r@q1Eged*x%keM$9f$tI5&_nk7c{anB?*Xc4{1DlKCXd(Tz!Ry%DFsnlk^ z{->6cdl0hqRGYP?mJ29%tr}r^x^@d~WsM{q3CRzlmwe=wkiO^j^F?85iq(h0vKgFC zWuLtCW)3wwX?mjvqwdlC9&$TnZi>kqQYNbl~GN^_7>Wx0+xP}Llg z0kb5NoDi{n#P>=&EE6~b!b6{#fLRd89NQBJs1)N(AKR<;xWa-wG12e%D3u%40iy1h z;{;Sj#*sjvzZM#qrlLBDhiy@Z!r>DR)|D|GL&+QFCTF38Jx^sC#^x@{A$>07Q5ULbTfAbLDSQ5hZMD!xFH_eBd z6Qcqti=6g?su_V8L@-MeH{!xNcE^x;vX_ya&|+eMxJ)Ahl5SYPDK?Cx5iT-fG34o9Qhi`MG2HcS z%S{cKk@fJ0J3+GP=sbsI>5I`sPe*oww=y<=Rr@jnF=Dsl`lrp8Z9)LacP2trr$~xQ zv}>CARa!FOe7k;y?iS4BSGRp$8$O9W-huYK@i{zi4(lH&WTele&;9(FS23@l3U?Kl zqA(HyWWQROH+IVao@R|CRU~=?zvPx;YJx_g#-wF!wh&-)${}Ux$AHkXgOUZS3QI@P zUoDar&6`-1cgaHp7OVZWSE3oG#CgQNP-kOnAwLCbh?NPW0eF`Cf1y>`s~0@8d5^lp zYb$CDjyJPa12Cm&LV2K`%1HYleg6GT*X~8o)6;^F`Eka+y5hx0c9VvyIQP>IfV^+wO%;{Lra9s(C^_boYk|a-#$FV z?YVlyt`3zADToXnEwOu7H|QFOD$698UuV?Rdc6{fr`??id>-Y+F+#s#2^cocJI8Md zCEFt^g(c6)R`MuSvh3z~Q=Lc7thMqKRT8n|=Emu6G6{nAeqvA}j)xF7*4ncb88#N` zS;l_I+m&;&E?wk+Yo!3|h(CtHvXgKm)-v&cku|<1o~=IBpjj0+a`*%#Ak+OGA{hWv zzbJzI2SWJS8O5fQ@N18hp~BeBI0se#OhfI6^jpGK{4MY{;11*IWoFmsb>;At(vQD3 zSkWtDN|YW`!Td@#Vl0WI=5L}BE;g>d>4)M9n819CU2oX70bw!e*vaqMKj5%UI3uYa zWnoE85@rAzfUpz`e_M|VYjq8B-%glY6a6R@`;T;zuKYL}c8jJ{@XT#q}A z|5^WskpeqE4!X1B*<(Ku$|=UCeBklXDyHbg1N7&<O8GDVoYGi?wTLKyHOsHbKVBAme07DH8VLblPpZ?!)Sn0Lh^&7hz=__+bL zIDN6wmms$UGE+8)?#BDVnJ+C%f@H$_G6hO1=N*!PFdffmYw1zhKd_2GmkFkO^4vxA zhB(wU1yQU*KnMJpS6-YBOI2%@{ti4pDi%~{1V#wllZG*UJA!BxW}`R%)Wj-DA|8^s zq3!*uZTsf<82-w(8fs7Ow7PmB(+0HOTBv&lPR~DJA9Uc*vDbVIss_d4T|^{-(bh{{Nq^H{Gg?&{==%{+`vzHj2ig279af}dj9!b4(dWw zSpCS38ZAnZBf?UI$lVoZUO9&-rF8{{2Yk5E2>q9^G(Ad4MjbGX@!@Q2HZ6- z%K277#py|q7h^Rh2T5HS1RRRwN<1+{BW$MSgIBYJhHOSo4X~N@u5pC`WD=_D~QiJAP+=Nx%+yIxif$4Hu{}mObbQ^J%C&@6%|$2ta>8Whtij3gt7g| z_-OU|9+vW)5J6c$MgYWp#0^4fX~2C!=5Td}QyBLgtpk{{I5<6#gU|;}L$qksB35xO zK*p3+jP5nYU}C4Gq&6W}GWR$nAxv5#fCK|*@!6}u)M-o7M-PUAz4ECxL<*(sxFusX zKN~7Z1b9>-;7N-`W4HyfcLrR{rb4h{h(wyX`a^T54m&cL6jLgTz6S%%$O%gab$nj$ zyXC~w!ps7$7{camMPmNnqH+{L{3xVd z6rvD}KG1;c)lfW>qIhI3&Fp*~(atb<{liIt2zr)ZbHYSg03N{APYZLK0v9UuO56r8EIRkDy8* znlNr)bI>K$Is{Y|833%g`vJz=C321Ib=1fcQpUJ6ksrDuvC<*c#Dp-5z!#SRQUw7^ z+c|X(ZKVbP;NAHPdid=Tx9vkl8dB4;!C+NK{gNNb6%o27?6=`(=t7Y{ zb?U&w@L1Zl|5Rb4e+Tq6lh2yXy}a{IzCmfVwqX>Iq#p~+et@F76M=6vZmx0#2n?iq znvss=W@w*GRvaiKnv;w#{8ysGz7TKVJ4h=kDe1fq$VP1is;FW}U~ROV(JXF19*9Gk zQeFAK>V$G~xu<bm^Q5S5OJkC{)4J?vUDS zt~$H4jUORzhM&vPG+u-x4bI)sQK1la32zd<$- zOuVdecLl0kg#qte&EZ&R3pH>!6yjtX2Wfa?>6aL(&zAhoUM4_y*;b9heqEFp(qfg0 z#r=4RELaMhJTnA*Y&^?fgZS8&a@_;sm~M;+!M`GGp9O&S5t_BaH~ElZSLbag+)2ju zrKFmdeoN8WVvSIYd?(NgB}@l^Eh^YIA{RjACIg?YboN^DD!^=y2d^Jv4VZ0xlu^B= zgaD@LWRy%idre~ynrfsJTd4i%aYm;DNf=JSKMu;^G_Ae)#Qo1a0o@%X1tul}hG8c$ zG{_0Ymf(wmAQ;Ns8PMtR0L)Nz!j+HtO4Fo~|AWGH)oEgnAa&id!)3;)_wk0WS~s0rWn0lkZ64sz~>t+NtPqBm$2_7Shkv!RBHe`)7A_>Pig=aUEB>ozN+ zbl~EdZlwQFU!9YucUkLbVJHNyZC2v^IBSDX>Ku!V7*P8nc5*h2i{l9E z^c!f5O&39*Y9h#x;Czi9{5~c8{If5?jl*D01~QT~Z5sZ-YpN!L1n|qynsu;Q*nM={ zeHm^55bEQpT_*f)?gyIfio&VP#;^hmG((iPTE2o(I%xJANc5tDiae14dj~kF#4ZbX zr$3h*ISF>Ke@IHdV%(VF0r|un-GB-MdWxr9358Bwvp4nG&G@bMvY`OO0%KSpJpq+d zDG*;W#8WF~C0Y{>v1ujqDzhMtlt;Y`K?Tu&Z|dKk&Je~o6PkORW*@48>SQuj%L-$r zjTdI3z%2jgRb;CAV@0#R^+0KaGc2gfS`chEkXnWy)xh#}P;==fIti-UxVpi1^s;5g z)8HNa84E#cNs9>;WO8Aib1S33J0oByv;kJjmP#u@hC#{8;yp&j2W-dl8AJa>QJV{A z&bB9;U~1YcUEQBxynv+gweL(dMO&TtEzckn7Eei0D{{QPIx8Q_@tVcgH-dzg2I~&8~L#cP=5hsq87JA-+d@;Cg~>l#KtdlzQme8dzEMj zYrlZK(HbbD3poDlcAef{wk>Wfn$qG_qjTRle?2`IWS-EF=LCX1;B=*ISXqBhpoyw? zy*%dbpg0m3ttr|4>dDrci-%IfD^wk`2ZNNWI9*5yl(68hOetvo;Lb595ggl-U5_+8 zqJz^l9QsCbfF#7@i8{(Bp6AJLr3$(zwG%fou64>bPxH6BwuTREChAM+A6D5e(x-7! zuQ$d3S8W@UZ7wkB72ONuGzDNhDMJ_VFI!%;F7YxFhFxnjyFT-4W_Nt*d+F-gSf2bt zXG+2E=3qA6@@+fIofc^&Tiun&<2Uzp)G3lS4J^+TNELS|4O+E{h-$9mP|D|QK~2iiqti!Nq7+r1#;B~^8xvcZC_qMNGX@pv&dX0l-uKT@og5xRmUJv=uUgqFh3h(Y>6!6 zKLGp{1Gr=>D=!gaP*S9THu>bmkuIdD1Ei?2lf|qTyrDCuzDusS_pPip`zjjq?qphh!`0EeD(+heqM4r*G9dfU?d}_XzD^MEn zkcmu}&uvMlE$WaV%K*u-6c^p@nz@Ty{ z2@U*fdDchYP1-G{J#^G}urTJrrakW)$Ya30=l$Npqunq$&!gEU$vQd4&tK&qTZJDJ zQtpe+eVd`InKDgp*^_lK6bIyk3xn2pT9lvcHVWwE8OC&?`5XEead)L!bNxvjCz8V> zb@HAEcuBK-6EM+I7dlMR(Y(f)J`~aQx&}s;kR|jy>CuthQlK7^1q}4qfq$-?lW&w*qeO?w zYzyltimV086fO7r{z&Pfulx4B^5dxM;w#Sls3S)Xv{eVy%a@R}y2Vah8nS^ilR7j{ zD#}o67uOBsY@7NgJCbNui4U>umaP~krXponZ^pD+jtT6b_3+p3;#k4xdlQ4RtX;T! zw<{3Y%1E-F_?#4@k7b80Q9> zlTahC#br==z|hmcEa+09qocqrfO!fDgHO2TPkf}C8tWM@ucZW|ogk1}c%mwa1r_$z z>Q>A~?x1siu(Zrrq(efSuvc#sLrZ$>$R}DOC7582)=bISHj{`ES)CX51*gBG$3f1q znp)8Fs4^`G3H}*9#Yy;d!^_Q5&fdW(JR7N0GHtTR_Xx&lyVG+tF(1^M@*X&3|MaXo zfeY{61I6V0$S6f%QD$2>%SsFRqFmcb4W{D<%S9C?74IG$$ZtOHq?RTit{G5Trxw`# z*$AxBl_o>h&~N91>qxaWcGxG}i=>#wabdBHG!@Sl&9ri@-wL%FOnf=cw~|c}**gkB z*nio=DrO1~!_&3OnbY}LFnE^e+pL}=96Qo2jF^CA3L%5KiUv@s-Kf_4h>B)&6|=)T z%G-W6-<$tX0l@p_RioawKk%q9?3TbU&a4^I-G#^!`_*B@$gK3+w@vszkeyHTJHt7P z?Bv*7>3H*?WW57;_IeOtDOwVvf-GbRid^*H7!gnMI$}KtkJzhc2B`RaLu@^=b5$YZ zmt=%?IF^nsxqEM|#JtWP>)l1wEHQ%Lp2uBXAb+A`bg(tt+~_I_rS!8+PLfeJRs^S@ z+7Vv^`;+$IGZEh1WZhf3$wGbO5_{*i;g%YSwh(IE!V`SLH0QW;GMnP4}@CskB0t&*6w*Qg;LXiYG6nu=D6erK4A|)K*MJt7TIUmjAnx0HRCZXa zMODM~dcM8Yt7XH|6KKNqc)mT2ACk{*0Umxgf1u*77ZTW6gT0{X3OKv*H<5i^yw3}T zcB}0SN4R4jpHJqhx7U)4O~@QAPNQ9}#LJg*qPfpdj=}M{yZw%EE%t@=k20;U=5+1h z8?@QBF2H;t&4L9Y$id}7mW%4yP=5-rya(=>NE%ExN;0n9MjmjhR_^KOfQ|J@6buli2q>a-p%;iQ!Fw9FI7+Bmf~IXb;zVR z)bn@xM^lYrzjC2NZK}d2k~WdSi^6;P^Z0zLaLXN(hI?lPs8Ly8nH;I!A6ja++=c;pY0;zjiw~Wv`vx=|wNy?eYEicly}4+8e=cM!z?H-l>O+CFip`O4~a;O6B~E zM8`G)PkGct6ZoN03jr1V6Z$glAh5*6*Xh-p;rEkD2`ynOgvgH9x~_&)$^N*vzA^!1D)Rp8%dMZ;0TC z-%<=C3JAnw^`hzkwuH}cyM=}AIn@17C0+5O$SRxz{(=*yf#K7T>G(NIlmQ(d zOu7uP__K(d&##$DS+wJDC3FicwmuERsIrA}gPoylR9laN#>IqQK4N!TO8(<(MVZH# z3cLHnPxZ$|0gNlG`!2dCXAJmtvr$iWH#n`LuA{J zp~EpTbC9)v$D?cFfo8?_t)Yvo(0yzl%ep?OcGcwB0A=1|(<3R0T3*E@_yQhnsoQU9 znZFu5_`Krf#leqPQvpenrl6f919`-#!woWuvk&jN)DTK)wR%a4Z@@&eMZyo5PZ5}? z)zE48JK5qLmx6r_ac&I0LUAn|>jVL1!ZESFOlx_18x(@4c&&Z(4=rgTM24%w@w6Dy z+r&$9Y%3zjb5BHEO}iCv{H2WfytSL)HgS+CtPb=f1tJiOl2(T()5lK+@9?GvZa07KtGEg`CJ@Y8IJrVe>PtPbgWXZiv8 zRiewYNnzq}gt6ywzgD^2TSfX^U3H;N%*j;BodUEDd_PsU-Ry{bAq34(!`HmvWk^KE zw$J2)hcgAapzzxoTd`Rl_02DMF&^}6V)ixT6=%Zd2Oz4R zyMbwT77cBv(TfQELcvpYg|4ElkQd=ga9k$}?PdY6;#CE01!$BvpP#qN-aV^OmK(?j zQ&mdyGL0r)^?CG6KVHCNsTSCf?`2=#I5+Rh_a(j!*3n|KT(2%1Z&SOyp0G}fwOTkg z*M&;G&C(y890{_>)UeUPjX+V4)4S5K-F;iPegV6-;540BRg8bjmG39)?2lDlazVP>`X#%Y4M2S z+N497qKqFG^lc0GdXgld=G^iQ6m1ts+!6@9Vzz`kLqg_53qY+(UYbu>N)l5Pc&<=z zMubg$dy=-et1)|4n)GSeYUi~TR)e=$wb@ir?FBud7Fb|n51*=DtUItq-Aa>lM`N#? z!|t$inPp#yDwb0YJAtp3u@j;epJ#IxnWgXSSwOq~6_xOzm#eT~?&sPnmT4s)pTcQ< z{jYoU1)*8r%-_cQ9Txxq&VLEuxj0)`|0fMv&1Ge`DcbUTfque?Pja1nUeX?^1F>qc zy|l@C!5!B|3pJQ0wjgdQ6R!zpA$C9QyZe{{PC4O<&dzU@;B+#T^=c#v4i3)8@~EX$ z>G(^TQ|FnCo`~2`4xUj_GV@S18zBqqAC@sq{^iel=bM80p-*qoB(+#>PubnwmNc;q zzQ1bxEliPNtZi(ltDt$Pwxj_t1MR|S9)I4FUh3!yv~wxHz}9&jHMY06XTYGTbgW)* zUSEJMp5{0@fp8wD%V1U-S^r)$3UHRL=y7|$d*{0U{O#JMch)VtH zT3ZRE`*qem-k~d*L zz19iwdeAD4S^0esS(aR~pdV#bB+w4|<6<4?gZ1(^t;~TDfj&r5_Y&&auk!h2Akez< zDXrC!>0K+djxxsCAGrJPLh#Qd6vv0F$y5e>`#5t@Jf!3hY$Xjo1u*e>sn3w3ObCmT zYVp;+ZY(Azaw8(NUSBrp-Oq=|=~>eopA1;!Po!Wr%5zy~(5-Z^iKY6#6GHwSAW+$O zaJ5T6zk*aXCC*>OokR?;xrg_}atv4A0|@ANQMW?`H^inXKcnjYqU-~Ja@+KUeyBQg z!{~)%gewBf(bWk*c{IJ(JTcb4P4HXeEM;Hoo2|WCS)X=389kmqG~N&2pP!G@!|NZe zxe7)brR5EEa6<0kOgey&a839}5I4|GA~>hV9*LQ=p8;O^p%`lcT-KI`ZwU1Fijs5V zoVTiIK2^n^kHxbZW_S#s9%!ZseZHUlnaJJUa(fd~$YW`z(?Br9YjCfNT&j^)?Mx_) zJ|;Gg+A1t49oC~9Mud3sdzgL9gnty3jguk18#SsMm!+d;F#DS{l8M`ng6GdtRgK2q zgr@)AGU(~i$>Ad+YDLfNx;s4|A1!MajkPvJ==h7QZL|wImp*_M!EI`pkm&j)BT^JV zlqA2L{qT4G9m@Bkn8N@&CTk#}$!oRMH%h$2GQjDfykJCr-RP@970*z>5>v$Co_?@0 zWW@CS=}=YdSDE%u3{1S20>&{FX)$Kh3d4Fai~4S5@j!qwWWxEpom_t#R+kKYv9Qfi zpH~NfkG9ea4rgqk-Fx1G7)JMqAcTh#mKWpUBO(w0rvuwB6f-3W7R$~ja^~64t4j+> zqgM&79T!@o=4bmB1FO8Yg|@2@a4C-t1e>3pE(x)#0+QJ~uHeV#Tk&J7sjX$*dwuiQ#D(<~ROfNfPp(K<4 z>mE;pyW`6t_{GjHyW7k8<6ZC`%2UFd`~AK75z8ARynz}FCr>@ysL9xoX`psCrkXNC zbzTRyHoq+tEru-&EKW#>ayjC)P*<}R(hyH zNSP3y86J?y$6nY|XRbPY*VF*MpY^yR!8ma6SA)WKF&)Dt&5bl%>6XlrHm({_@ZLrY z2P$+z+tb{9%v!x$?;J)?7bp*&{UOa>wwG<~f*@laK!ah)OSL_#%|88}X-@bXjY=MD zkXTl4NgnU5?tC)Gn{7N>B-i~edYT(yOsBxm;1%*(FCqA0TP$?1BWko-Pr&e9QK3RGbuv%%YzO%%j13*cYxu zzWv<5^DiG2UW~@PBrrQBgnWI%t{@~WJT6oO zuPKZP)Vp%g$w;~74?Y)P4#r%*ao13A9gQ8((~2MoWP274J{unZLjiIQH^Y{jdm!cvAm2T`i`t5ecOt zQsl@XDz;4ZHxYId91%zoS~ps2@!?aB_(CEG{isG8Frc1b`MyptJl}Ti-=^hb>)Cmu z@_3D+iJIx_6k~o{e}B2uZ2c8VZpU)iGYkpHQ2TU2cJP0+VigQ7F2CwsEY^Pq5VH@vCuuux1h@2U++&kKlisVrQ1l(uhqUD z=e`1Vka0M-$$i|m#rhcnF7YLUqxHRB9_ecKK&uO3>)PvjtkhGZ)@-Aa9s6K%wT$D_ zYLG9)BV{&)E;gGsEwSSr?*Igw*o_K88lI~#@I~iJ%pXABO<3OwX|rov1A+`y+5&1Q zq%Dsv-nVhy+;VWP`R#AcY}W~i<%fnSAWe;dX@=EwVwKSxq?dT9Ka{Phb4KqSxA-DCAmbSy~pK_FFRAWd*JY*H^f9e|D?Q#|d zMXLQhN-|M+dj?Odx6)(6zYag#UONn>IP=Q_4={#wT#Em_wG%Gaee%G<_q`Z>S}N`) zLE-+vV0}ud!ysO7SW@J19|^>Q%HSX2K7 zrS*+_;ZYdY9H_F@nu+EzAzY z(<;v>zfc3v=B~JYIm0(XeI#^hH%}r@qb$sI5~n`9v?=YeItghLGWdO@T@{ByYm8UdcM5zb{prv|vN z0u=#V-LXX&;@!k}JeFan!UcK9(Mb}84q!GtTGv+mtbcEGxeYuFI?53PgHxXSP%!u{ z5pUIvr8ZsWQ+w@Y3-+N={bvQ!%aXBZkbIwACAD>HOn}*SvkUQX|sVXDKU z$a!8PWkAs1TS{3|$E z%#R7o#ys=-NeOwohyH#58>O^XY zAeGB{X3w`t(!#PkU=M1ScV{sOi35AyFIw3y!Jd1j9f!2QeP1HCmmwqoOvVRy>=w*oo^=@+t z9icNn!Idj$)@EkdV9nnC-PRw0$0GLWKQes|#R^003N5HqzgyPe10LQ1`hQe?=Th?Dh>(RWw7q_?xz=ni4WB5#2 z4WYQUVYft!sHGFpbr{Rw3)1q}Zh< zs#PhxpgDT=OhiqiHRiN$s&WstzM8(R2_f#_IYxyr)saP0hcNHL6%n&FJ%V|*pEKO| zyAPad-hbAUpIc4a%J+E!MwWR}O`nk*1Y83Had(8=-yD5r(JF4-1G2t_{KoyLf9CJ@#y1V-V!~R8mOvQaGz^7LT{iqA%fB*N09d`DZg@Vw=<8UGh z1Ke>+xB5oLI=O*+pW{C@)_D)<5ltnPbZdq+I=okD65&A?m#`i&|>HAgJn zN$(qUi`Q=b)qiw^2T#k&K?hJ8V4aUV=$6@;lzV>KBOxS87SHB{{q4e#cG`ZDhg+gG z(eE`JQ}y2el>yxg_v;(~ZkDj8$2E%2kp1DSDD{MN>_t@O~S5algs%@RbS7y^KlH=r}>ichr-^Us~g{B z@?WotjfZ|5-l?$rxX`v7uOA0s2Wy~eV^`L0hu)W14DJ!WXu3-+-^TF-Pk9qO;Gf48 za_uck?T2_-Io+9w5;ZKiuP+|4+J#u_wOB9mFlpA$4q|7-hw&>h9|=eDGk#Vc0qTQl zOsGhA@dh|&(DM*47N~N3q5+GJP3keynSR^$ln7*Fy=ie@ee0;92cobl>Xa-Ftp)XB|uiZyKc>n(ygN3)&_2 z%-}rvdsCmIK~wfXW6T#-BH!|N7e4Is`mwwaHPAnwFpn>*s^Xi)Pf2o;b@OdT1r`EA zQTwpLmrYID99@08!h9h?=mons;Z$nKfEmc?e6i*sOAp_xYSgF8ig$MLFg_uR4J$0| zQa@zGcQiXUfjXgyefyBAZ9}qF^P*3+j|GDB$ndw;yErDDxIXx+g^Yds7(XF~1ue#h zYeWPWRg=Ai($E0rcU+mo0 z7hno;K36!LuMHy-9oLtXdd~Bb2lXuY7NAr6n3xqzOR8$K37M9;O3rLau}8Y(&^$ zkqw7ryjjJB*lvj8s}6w>{Oy`{tf*ue?=@VsDYw853rd@}m?TWMo2jXigv4E%6+hpl z(ug`!{?gPA&U-S5iD(EWr{>%Rq8+CKb>mxC4sYjw8OydAG1qhgx-@I4uVCAzrFs>r z?lPKcsy|=3>2(bi@GKzp=ZZ}}3%LX)mVrwUWye>u=_vf@<9W++Px?D>{EqrwL_5E9 zZcxuu3o|M_yKy~-1z%=UbN-ZuB_g44my_cVL&dyf$N-;mv0M1(3~^F)JR@QM83MKG z0JMA&fMCg-&S44rCI(lK?5%b-wNS1`PbjqQ5f*@52J3fqb$tnx4?Kz|C zOM=ktyv-#v@BLhmnOyB@Tl`p0h5J(lJfedUG7FZOCdOX3O;$cOwc;}k4%*<5EZZ4t ztd2^7N9U@HfmMfhsqvX$e1W94P{E%D!ld4r(NJW!XIH}wF_S0Sl|#v&P!O<|wWTYH*s z#s|=X>Vaw?vz_tqK%-SCj408H^;Z18Y74?Q3`rEk4yuO$U->9r%*YeQC|o9EpDu?i z73gmvJc)o5>c*sYZIM$Ia%D5@k!XdYFzzo0o|C*OmH{r>)Ahs~;dyI(%`8H^1&$(h zXtUIYw`Dx$!J`Yj+pI2{e20a5DY+yqzA{Dsu_4V?pT}&{NvnvrFy3<)454;in4(( z2H<8Ovwm6{pjRUHERU^-gy#N9v-tY_1mT><}r5}={fZkYGRvs;g7^}UdaWz*+N9XTI!DoH?2qep?Gl;Kuk!oQa4SS z@Vt)+Ns{6GeAG(yWd4{W+x6`m!Enu8JE9lJ0v=`|_S8Sz0awg-hXCke6Wa z$Y@Zlk@fg^M-(6Px3XNz2Sf~CeK#ijKjw?NM+lenHy92xrzvaijSO~x$R{Es9w*lO zCey0cKJBMflqx$NI>w1CPh3&ig^jmaE;A7W;@@Zui%%|taNiaec z(7;{;dNg5t0~Hc=5L=?id#QU6c#@^kAsNb?ZI^gTD!=dF7oVBw98sc%JV>YnLkMnX z-%(8xt5V%31g|{I$A^U9Goe_Z1Lg{!JVi_vzjeZ&(4s3OP$Rdi35`dThO9_Fm2I4W zt|rV^^PZzsu&Y0?(Fm!t=JsxK@haAOd9ckEk)3cMp5H~st-9ZZHUGF;WC3c|*dG)Y(ca{j3pUu)GdL;6t|0TLFb}4*^#nEI^QP6Efw_A~Qs* z!8`k8E#q(;^EdpZc{S6N7R$r>&20~t13Bm%pi#yh@;AY2U4ppAg+y;8n;k~zgHVxu zSc8Q=!kFl~$(`!o4Os#t(Di)OU4%9u%3<7O08t3mk-;uPFkbPN8ls-6A*Du~&kB87 zzRFY{|Lihd=hJfPsl4Y6+~&pa#=Q$)KgHsL+t`uIJGkz$(x8X6JC9daW51fD)Q`Ox zJQKSGF*nTI^b>l`fZe+$c&;8}MtlZ3w%b-VzSiYS6#^lm%OpGZ6}wSUkcY4@#X7cG zk-d3&qLs6?R;z4*BELSlylBE?4Zn^>&-e%!F>E(Vc_&Ho)#Jw_qxdmnW~c%$XM?8Y zPyV{&ao63iRac2u$8(-Y1)UU~!RlEqysO6bYUE?Ls-qxYP+5t2(=8pC0Nz54O+S+( zPV3P^P9g*oFXC&_DG1aM2o^X5XpoGPRd`nOC6N`0q*0oRPWfnarsg2*php_$8_ZXY z4cwg`FV5gHaD7k|9Sx8L*y|I0>OMfHMp&Ncm*; znn%oqmeCp2;K}ev(vwD1S6Zhu(b(7li#3B0!T``FLC6XP7a>^qYNk{Jir)yrM?xM{ zAJ{`OqxnYM2}j@jr~o}lgrH^gsb(Dhm=UqFfSJ63w?RjAjvBMz|J!eh7pm3GU(%tyP#nq}_)x{&7`}m{aCGT{ChI@mptKteV%1hwW7DZw#*c zJdgh;>vgc#_ufynBFsa`EQ|#lwEycX#!t|Own}cnkFe!lcC6}5891>CG0;+CD|Z}E zd24Qv%fuA*;VGiqn?V4Dkn+NVRkBD?&`=|eEEaO4?K43XOZ?sTdt-@;m)LioNDu~F zqorHpIT=1skfryyR^VS;RQxmK9`SSQxiQp5l0}#l>%X!PLS<7blQ+*53>zFLa$ugx zn0F9j&?W&z&Qw4l47IC=j%|*})F0!;!ZABGrhlF+8MpJ7p_RO|@Wj)s7n6L99JU|n z@S~nVd%ki6D{zc?0c>+YM=mqlfg_Dcor0))9B;Y4Ksw7+D`KIZXWBgZQG#lwIOs?K z29)^b4E$uqam;*#2_XmbZUAW z3yEB%%&8q@QW>r|!_+CG8YuAv5Ex&WGA&9%;?5B@a3AncS%C(yv1^1Kr{ut*3c>kJ>gIf zaxN#lzds#W4H!VpGhaWK-L6Hw(gSt+2y{viaS4Y8BN<6r8mqX@{!v1D_$8I$(P483 zna2?H3Tav*Uqe}TeY`zJcodqrj^wJcbT_;#Dn=TkgQp7^0X=LId?Pc%}}-8qcOiJ5I|fJ!cPOOX(~Ke57x(LA@;nLI7ic zw89=^<)^b~QwZLL+5>~cWlPT|5)$1x#dLxF6{^^Ww9%6qu+(p0<|6_cEB_@68V=i< z5;UpZK2?r5eO#5#fuZnm+&W$ET@o>@Fl}=(&x*QY^IVs@Qj1)R(xltWEEac!ysjkz zx3@fyw88*i_8SCV_RHA(CE9rK;QnVm7(p#IIg_h%E%k{iU|>2c)yiBVv*T)_(NgMj zT}Qal!AK7pI&*D-NN2-*UOiyP$UWTxDVY>eZJ$EhAXiN^xKq5SbXAzW#z}Ic#A`V? zG@Vy{?Nd41HW&|TRU7{v4|B=iM}ZfrgnY$P(6*!wobP}{Ol~x&j@6=y;Jtu3GZPJu z5I8Xd*x2p1O3y#258xOCCxuJne)b5OfP0B#R;~6-BT{~OiAVXWSoj`E6&>Q(RxRHe+T7BThdZ#dbQWqXdKHSUHOkQwGTvPEnjiAy zhgu4=C)hn0t>Q1+Yu{(q9Anlb60@PQxvRfZWMmCT0+dsE zjIygqJX%!J_qdND9@5|Jlw=+Y9BP^@;#b&@RqdX>Z|0C%%O4H;&8uC2_GjNX8PY+H z>`%=zCxao{tjhFBTWZVvC7nBDp!eOcLRNxbI_V2d-_+kn5Lt51O*dz;+( zfR5h#eC^V(37bchW7hY04w;vvt>Up;Qt2}|K#ZVVoW{lgKSgO$FSW$^9$}U`No}%R zL09-+^OqMN3{$xj6 z@^7U*)F;e>8YN#0Y%&e;r(XK5aZR&-hxBQUKEgFM!&LOdJLjn|Q)+|NOs!Mku#l0U zD>tCLhqX-Iq0`OSS7+?a!xD;&@bM!fCeE8?4-yPzqG=>*MZv#?qJ9X zQe*G&m2Y! zi?~Scc#ip;nn+MvM69uZ2uDj@FR4LJBL)Ud&fOQ+1Af*Gs)R(`UPMhPfx8p2kgc*b zW*iAw44yXkQVQVH7DV+SuKAqE)Ad!vd1VSZ?gCWLGIh!g)S&Saw*>PcTRNK4(9jW= zb!jT9r!p8QIb&jw`fD7O5^jl`b>7gRvb&Z^Z2V(##3|$5(`5cF-XmEkUUA zkD0ls^@K>$wqDEve8B27a1&ofK#d|R#mO}`2V8Y{NV|5#9;+s@JnMBnL?LkJYN{FD zG(E;;6AWb$N#vh$+z^z5pW?sfZJYTBR5GJVtV>TH`dL(n>I#sprMuG7%)J{L!yCO& z61981B}DJSJsPSVO|k+wsVn41S>#1ZIY!rzRf;jpU5*ve+C-S~^^ug)r|0(qfuQfx z#@f%7jN%kM46HP32^6i8ER)BGUQK>D+69uO#5&ACgd zZiZ#H64+(LMoP^JFhXgvXUlnJXW{tun3zOqM5wA5;E^L|om4`mRSmCJ5|vv9`9nEl zp|j-GF|4~X35z*`vWirQ3xN#S-VM5>=rJ$++phKL8|;_g#j7HFiyUB`3e}t%pnhDP z6rf3)jA8#pPI%UHrCcMcC&nAh$7)z+B4|-gm=)Z>#?IS{@d0Rqiugg~`yy>NhmjTc zbiIBj;L*c2rKd2bFYs+H;U`~IVV#!u-T*fVAr#=!9mQO3;7RNc=AK1Uvt`--p4>fL zS&fjx#+xPcXlx2D3`PW~YY9NfGJP1! z)<~v!ImThI>~M@mPsYZTK2X{gS$%66LqqhO0%@WleO&ZMZ3IBv|^gDd2l3?bceR(g=-Zy!)Z^GZ% z(`9du$_2i=0zchx?_-kL1~3}h6|+pbPl9&`4BOLk6t`V=1x#dHb})h=96!cvm5-cQ zY^vDZmZthW{#Jv^VUBUBDzjd(s{!xCUT%rW_I$O+TWlp`2KP`lRU>^)ul-YbhnuQx^QHk9*WVLZa&4Kv9mU-Kjw4c`31;B8hQ1>21Gz z_0s3EVqjKU{UvYB%P!CU0{B8Pj(p|eTA-f{xkAi94KJJM01HS)GC<{FAwivO7#eR8 zl)QnNraUrTc6P}iL(u-D@h=xM&-OO-q_yMRg|nLWudbHX?;6H^ndo0;TQnix+V^ol zXv58EY@IsT4T=Vf<`!u?fbP|E6{tyhd0X~*AGepG+LuD%ZGR?CKOyZdib00j2(fKs zO93NM{)l5-`=?m6uFU(p8EMnTt+}&*A>|#LBQn*MN8Crwq8yD=Ck1p^o||d|xZa1& zIQZB_dOaqauyVbQ0Z|>3r9SQZrQT4(ThQB3ugq05#Ei2&qx6~N}U)mb? zA~aB)x@WvOCm)<7epqiZuY@PhmY+6SppHN<{`w?}FuicmFJk#usRx5MUY-{>T&0>V z^26szUmWs3iPfyb3YE?=^>lUpT@R1=@D9Y2hqiIsSN{|kvZ7WfBb@OUCQXR*J(yxh zlJBZz;QH7~k(^V7OBl;ZOsl!bg@g~NX&a|3w*eJ_=a@!R*G3xc)GG8jY7>!6B#U=$ zm%$bny~Gr~rgG8Xn2NaocL!I{t? ze4O*tqL%Soj!xPLt}GNYY}oK-|2AD^XesGh8Ivy^?^UalCtpz!;0 zdNCI`M}Ft}ea5+fYpQ=jt_fek91i%Nl@3?qoY~*xs67G~{V&VyZ0uM-vj&qJVRlfR zY`e+IPoLI1T~BR&{_OVf{`~uthKLP>qRzh2Ouuk4E52BC7ybs%ZHT?e;YyeL0bJ83 zVp(ogBOyJYQLfY{UG9!kQ@Z+hKiAU_1re=aUB}e-Uc9Ss&H6~_ToSH`>+>OEjY0Ro zj{P(anMNt8&p6-cv(et;Idp5~L~O(_I`Q{g#Z=9JE&Q9Le%rgepFDl+ z61pT*6Szz)Ch3+E7}ypguwx5u_TF&O$z>NN6A5rD>4{Wki^*z$&yMkz2s7Zj(uE-Mx>X)JT0dJ6q-_zN_k!Ah$%N* z$ZYySxpUcK++LgeOC@qYu}EuBg2(9JIi)PxTx4s@qEc_8%N%*o=G7+lBStvA6fIz` z{nk7Iw&-KpdC#J|R7e;6bNM8!PvH%Z(Nbmh+fy0Wr9ehGw+`=WJwjtIJ##{M`w~g( zv)dD&%MO(|!|dqNcjB7|uwW*axYWl7Ys!e>l4C-2&P<;PB$r>kY*=zE-I7BR&x^&M z*eAZZO6=1kxr7EQA75{~NWL077fc{pNrz1=`U(|m*X$c=EA*$YNz96GoNebr2$v<{ zCi|a3l}^pej#2vOI;4q@Hfz=3Z;SWsyulA>r^$cKFv1zt*qFXf;}}akN2f{iNTSWU z$6X0%7vwb2x*D4_-+hx!+nZ@!7DT=oZTF-#StWn5Q#?pxQmA7R*^sH{{Re=f6D8TUaneA<6>`B_z#lH|Kn^gs&`$Ubcs* z|FwW1@4j@fp#jC6I!!!az()RogaZu4?!l?RWzJ1l-Erd?!BO1&U5b2e4N^7?SH z@w^|Ok;;ZZ>#ch8Vt+lnns(OqskQ9~2kOHgqXMjW$m3Ixp1ag%Olf8+Q=Fr71MG95 z0peXWZ~Ht;Q~!ZyNklRm$Z!>YZX@DMA;2ES3>O7urp~hFP*4JsLUkZoL$_g3OaUG= zuIL7Zr$kDw1-nruDNtz@cCRJ6s0mZ>hrMQ;Xmc^zg+0>)X+0mDRsQq#OKcnrAYDX1 z^KLOuD3$D4$TX?a9394Y`KA@YGDtUEx}xp3Neq*&5eBq(Uw7gLscyzMjU|iI;qdi? zsGhbc(W0}*6EFe5g{Pt#76G5C`tt~)K5LW#5iaf%lL zc(>1JRn)+O;@n1Jlkx{v2k%NpeC48h@70JY!N{O2;!;S|wRhH87=~q#qlgvR!BG@k zh_(cta{}J8l{%?rIBjY@#2xtN^sUV0tM85j*)~m@d>hBhX9}%+o(R#B21T^E-Dd9s zC5;a`z4TzF6g(l2j_gOF{0>iQ;iAE~-^Uo3xn<19=GY7{JzQx@$V3e4dt^&}!=YmD z<~pwWlLPKO2R<8n6Qcam3@?MZK0-6TAIE~rGn)n^eF|D1d8IeGcFq^ub;p;Lv3x6J zA-`*pE(d*#T$|pWw3@tQ49qX?*#bJGs;gGr3ZAef9MUcTF(f(uDZEc|zyq;eH)Cf$E(Oli2vhyCIJ-3_^G)z_Ol!nzNork1ULKm_BONyXWjnPrUx`S&VAc zO9Y*1Z}|&6UkK?5gXE$5LwezBU)Bj#LHb%Hdr;&NNpOB?;2}`_8m)q}9xdJTEIZ1c zAKF8ftVx%wbwW^w3^6@rzqNO|889vEygMZ>ayTBvfn|SGP@%k)q|m6e)_2$x%0XM6 zp0i2kigCqi%~b{urnzPKd$AKY+d#A$wK6R51Su3|8G+Vro#k22=mv9#rzy8kQ1A&7 zf*cI&Mbpo5Q#N4257=2`MGNOvq=gb9)Yl|8cshsOB}jyG0TTI;;1r*3c1c>9!g%Kj zhZYIwlB-h=2@P$=xla;#b|4C5nhc2La+1}(q%d}Uvgj05}VnrKCxRl1rv zaA{CxQ4Cb_2#x1(kcj~`X|{ddP&P_?&D2m!t2l7kzMR5FnFf{yAMcovc8krpzovq! zeXExMe**x2L3cy_g|M8uYJImBZwVc|Sf73~+ZwX2Bf4f4LxR9axhtHyl08JTSvHum zBcl)DLHL*u4HDOAbeQHfji`a@;z`_(8nYY4-TkD&B{S+W=#`YsUeCFT1(fHzA}$U6 zYTl=^?jGMvpEol!Zy!eBZ9WEVRel?yFZkhQRG}wPz#KzzBOr{s?!6L!Qj&~xc#mzZ zZbvzAWL8a?3ze>F-0YI>CL8&+Xir8ppaVBrI9BZ%d<@$o-XPGQ`w9JZag6uw$#SWZ zI=vioNg||~Hc5tek(u$Bk+Jl;0zmeb&8@U@0}$%=j^1+tIg1r7m#gCzoS@QHYw@Ly z`>$D12wLRKPQq~-D3Hy#sNJ2US-J*D5WOUwRK6pgo3dhXRrPfIANl2hpV68?-noZ$Gcs`uP&PYd|)kz?G)j@o-TYi6nXDUA5m(x;mcaY>-e#`I+w=zP&vng5sN$`qoQXpfAnL^|rCV|0s-mF`Y|EqbkFx zNGGOyl#w_L-utCvkvIB9vbSkhF^b^Vh5g5 zY;j%q?ELNV3|t9A!ns`I8sijlinjYpl7N7r7bM@EpRBV2HtQ zts?(lsk%O^wQX#0Eq_GS15nnW-PBIdwdYx2GN1(!K$xhrf0vNRwK%kU@)5%{O ztT~IrMgKgVPLgMSvS)XBdfu5pm^yF=y$lqb2ro68y4lMA^_8)ku3JiTh*YnWLL?z- zm(XEip;Bf*i!|vSFIw->GS$+E&#@KIhD<;BC!6F6t2FN7QwVY93ZWWy#G&rc4Wus> z43@HzV&df0rINhN^_Ahp&$+54mRMxrd|4es%ZrxervA~Lu<_&X4oKws(}NB0GBv6AP4z_`Ix9g(#G7<)boX*VJ_21dEEILMSR{v}7amtSBYuo=jPrQ*3Y z-}lRc?emI{XXEMB6<9pU$5|-FsuJ-zf0mVjy9aq56w1%f!uHCs4&aT_LO6QFE%!Bj zxTRc6?5^jE&6Hq-$I-^Hd^SzH)*PSHr}01%sBWSbRkUqg1oXpzbBwkF6r=0yRQwGI zwQC}dE7Hzt$k3KwLS(1+aszcy-IS6et#$z!^%T5Lw}XauT72Q=qE9|i%kU@O3Q$kA zRu0MH5khO=DxATp?`+JLh*h)4h5JL458Qr6+|3kvL=wexwW4@N0liQRfr}GoF$7NG z9_$6qXtJFZ2%lFeC&OJ2(Fqw&zX{7|I9HM27dV`Ehs9EMr`C`FMYN6Zw`2Sht|%?j zIP67t%L6bHPSN^v5xRiz2HE*6=<5iSD^e&s0I(D)Tq!sDTwTprN1m8`p1MCinVN8cHT8RiQ2Eos=S?SP zJTm!sjAD^z2CmgVH(jo8x2{4~=XAyy)@m!ues;-+iYnsBh=QbesmTI;`N6iQ9yKzY z_Syx5&b7RdwyI|h7KDO<7at*H>l)FSz4p@QhK%omwb&+yJK>0ee^>EB@V8BI1vCXx zk?v4nxH+leV{Xt@4K{|4_RDb473X5{8tEp}7W;wi(F`bB-%rm`y`P7d#}^N*wJSrV zR2G80!qIJfl+Stgq-V_;<642Z@>IK!?mA&OYu~ed#c}<3&}z;m0;2ZOA+1VQ1iYo6lRElN5?&g zH-#ITh~Di6tHzo{`wLU9{}R`bRxT%4B-fhta53>~_0DnER6}C*U~m(eNbV!D(eBpK z1PM%`A-UfmOf<&tx$#J1B8r7>AsPg|F33T~=F!yuh(WL4^MKo($G8jg9Zn7hq^|l# zsyW0(7Y(t^;E~y-qeco7utb&C9dMujjkjI_rt@$cPbgew9;zRr`@u1eJ`1gR;TnLP ziY^w;Y7SSE%?H+rtuG`2`fFw{?*Dqv_Qy@LFX&Wj2^v1QZ2IVuiAfgFV)T&5^LY}Y z&l0p6O5PT9vk2%Gbfq~X#9QVVcBg_WT2atMSxK}`REYa8EvNjdd4Rg{oU%$%1Ca5# z11Y*O@U!3s-Iy720Pb2#^f?HkHg#B9@+MPEgVpRGgvgTcb8ddr=Hq|7dm6;&((0%3 z2!W?{XvAbTdOxN>c-vt+I7aAKO~%!^Ehw}gc*Jpg-bu{|S`l544$u*%YIlyFjV9W8 z!E@)+5zYWO0|tHW&9VgoCG@3ltXbgX=l5QZMsZDE?V9GKQN+Ia-l}C;FWPW8&)D1D zRhq~D=vn)rieYi}j4{{T@h2!u^~fh?3HDhHVj=woH-@ZH#rcupp8lfb%NLuVR_rE2 z-Osr{AYjM20JQ#VA+yX6+)E1)o0|!b2og9b|C-SY@$fxtEZiVD+csRZYkd{e%dOLf z+5~iwB_wxJM&-YJpE|^B;pWehAwW@aGE%$O&u2+&TZG;7y2`Vxu$$tQ*M=&?i0}#L z(DLyCnYTzr4)xV@qytkpq9PW(HU(k4forn8SR1nh`~A~Bk9Q<6y1W5+@WvSjYyr?{KHwZ zKCLb~x#ks|I}Ryq9sFuXNkEEag+w(`4e094h;mj;xF=BRRRqI6l;f3Be~jOg3GB00 z1X?rDG9o|=ew30j*;*ov$h-vej<}ceb_8G0H|ZW8px>{9xc)ciW3N718X*EfgsJ^v zzzNQ+7w}})+ZU}3rb%qa+lHgO`;|68lbqJ!uv$!5)KfpFm9MdE4i5f9UM2g1dnxi^ z;S^kYk!zdF`_oP8!5(KVefc3u_6cu`hhli>Jwti038 zPa|wL%ky@t5}R32r^i6jTaTaD%#&@FgQq)%(!||6b_xIj5lcrlLB)|&o)y;Hc)-E$ zrnX|4TA~XUo@*!kwFLZ$Or2k<>^#?711?vwK~Lpmt4+iD{HE7r5x%VjLZDN!ow~r?yT39Ao~&3aeE*t zI{$@De(zC_*`DUqy4fG>vH3~s#*N{My{5KY+NR8E3Q<1sr>V?2Ya9>(PPM{ z+O=|`kxpt$pdSL%9cgIqb!fK=-Yu`HV}W^m@#xa;1B&AAW8Cn1c@iS#X3~_6s*qCn z{cRjhD{pVQt?MD_(Trui@P0&=AF96o9^k13n!F zFImJhO$D2+!;YGeY zEc9@FbPO)k`zLXeJB{k+5GL{u%0lt#&8|l)DC^iPcOpn3OchoGyYsi6=>i*m-5BAF z(4+K7dX_>1SP0O;T%Pa=CLa}xqAw4m4RXiz1&R7n7QEa`sqxwh)ZR%PBE>OE3>y74 zA3|M~&UOLJzNeg5p-60`OFjk}1GEx)g6QYB&rIn3Jt%z`i{$(ck$aq90wlV_n@H5hf1ZWE?zi;&Q7e?<;^>7MFLcJ&V*cy2`+)?4W)*r z+ZD%Rk24ac{QD&q+&^RLj2SD;dw=XX@i4^jP_P0tCm!RW9gA04gSab0mi`Bm1ox(GUoTo8xS z%-1M*i#a3@`U?C6=in|~f01ALh6jQR7m8*gM4|{=a*6?F%#*1&<-CP1H0@?ji#w)+ zDEkww*KB+bN%p{-lyv=)*KtZ~ec(1AvX{$`)6<^&=j`rdXNIp_SAuRnBiHNmKEWv$ z2St*5-o<8ShI)Fto6TEjr`zo*?RVj|4y0t1(4^J!?_ML&`)+Tmq9NfRLLo)7z3d)_ zA@?t58WEeJIgj{>)~fN4%RIw zuz($MWD`_zv@4_r&yD|aoZ_*7+I|3traPL+Z^c69P(o)@?JzN~!fDo<{DundGJ_%{Xl@M*g~Hp zTVY>q>1+nf#!f$O>wyJzDcdzalYgY>z0^3WYC~%&%cdyFYB-BLE&eNZK>a>0Iih=r z{i5~p@+C3;!;#=}v|ja6b#9UgBBWeHs3Jpb_$|<;mVsWwJPEQVtQ&*F0j>h2G3a1& zrbV5U3Z0HhzlFeST`wA0IPfmoG~cfiN+R)jVh}LIeTcaYfHid}QS&_xQM{gx)JsVj zlW19A?_BbdSXW1wN1TR%kxqP7M(_-Wn5!4#ijbZtE{I+eB33k;iK6u{6BK+nOClPb zgu>Z#+DRxd%w2Xj=hx@i)d%_ygTrgkjYlztQiYP?U>gtFK3Pi4$PE>IwCWUQN&=i$9pAl zw3i+#g?^k-!)V;(#<%Sxo@&y1n8#23%2t}12kFF}yhR>}hBdv@4cH9-kmijSR-Tp| zQLFs!sVIRe(D>3FLRjXLL)8$*d`(Lz9OPinoguKn=z9FnoY+{QVeK)F5=fKnHB(~Z zg4bcjjEEg6Noccopx!_LWEq$&16N!4o{3Ask*0E~cNywa?<5hXf3PaEo-_blIJVF=x=E$9XZgRQ*6S+z zwUBD30#1AJUIaXSI&2g2jA$s_R;4r^lDchO#RGHu?cORWw96U;iW~OSu;@NB&N51N zx%cga;L<(2=B>}VDJ8Ux{74u z{`p-f4bBDYH1LHuZ5)9)9m$o1^+Ix}zRKk-K9vZ=2~c%X9}3UcBT2$|J2>D0CbUrc zovak|woIuc@lqO^U}o=n4I!Etkd%>ASAc&rA+4hfQs^lkNvV^wY_w$IfSu$L9Sg`r%g1ZsF!I4vTnBj01ts#)AosB#> z7Y}$_1342W2Ya0*07btzO4hCuOl(qXxB)-MO$X)gf%=G!&b^({SkV4sdAb>C zZvB?v7+zNaZN}tfsHA1ZNu2l?f5@qcsIJEG8xyun5(s(fxuEm!kh#QtKfmOYR?AJ& z8>`?HJGUi>yxBlXR(_?3&))W6I6Lcdf{DpWj=_4*hXeu!vFy(8NVaVK;U>UMR%8`k z`Q&EJv?r(s8y#L(Kj(#YtYEQ3U)bK`#I)wbL&eA3pstyv{@=vrmdIm6ABSh9!?h@Q z^sIu+bj0i*)GGfxi23IvDD8-H(mMTHF)nzIoBrM>>hfO~^Uv)t7wZYXW6K8K6nWV> zl53a-kcCCPnP8jsj@`uQl}J$H(u4|Vra<5@+R<8ILUNnVgx^|pkCKK=1i>{=h z)vmWJJ*m^mT{^#=tRo^9`-wsV*VS(tI^YV>+Wk%fgofH%0c)&7U`u&^dyz+JrCGh` zQr!-yYe)S}WQB^#l>JZa?yr6F%Nl>j-r5#jG%J&rL-vh(!c-}^`r3u!KfS}@+B@Uh zG_0Bm9w8o=ThD<%!~06zWtiRLut0?smBC(bW$g>_>E7Y{8Qg=Rq6j~7#zGK66qRnE zNH!ZQz75_ErytG=j@!VMT52U(1~-YCFAnx0AU8c1y>%=R@VkOFBGHF1+c7?vWS7Yc zaQ5>#H~9gc28rI0;x9M_K2bm)&%m$KI+S>WHs9L!KYOiAm1LNX!d^yUTF_Hl*1x^)6#B2sg884W76A6|aB?8)|SF zrc`Q2HeEyP`L?#ORli({ts-K(36%LUX3o0^_3k-Bc$01~4bJL6XyuB>WXR&uxO1pn zCOpr5$ZBpK$^8SDgoBq76Pu93CRMmGx+!}0Dc-agpw6S!@%WPLvxAX^gj^~rLSx+Wn{<#H82QG1}D?>y!i{Vk4(g#3~mnNE6(#md$yCr94o~u%q;Em)Kk08a@{GSLYMvon9Bl(2dj2bjGWOkn8K&=fz~FH zsf9a^kZG^>=kV9j$}Y9d7_0In8OIs%(4ewOT_wEY69@V4`qG$c8&0}~UW@~ah=^d% zm0rSne9URv>{bRGw9qada?3vVzylka;GTt^uO{ZovW9YQBRNcRl)?xQG!2mW?+*Jh zH6=Sciau)!H_pS3raRh?*Ge|PvR_;?8zD$eN6*NR^ym!RaF47a4ig=PwF!%83#fFN zt)DwNjr6eS{$`-$=<{GDL>@0BB9UQY`gz{UvSO$MZQKp35?pVS7uzXVYt*{BX7AtB zHTPR=NwNp;jEVxwE#?-8HmTG@9lLUk!$mYSSmZn92=M=WK`{hk=I*Xn_yM=Wp29RT z=QDX~NS{mYF}X4sbAl5SnAoVUtoIaKi0qh*=nFt^5w*>%0#Crf z<2ddzFpu!(i3vAZqrsHdJ?5RAwhp&{zknsD!?!N*uJN>7?`CdT8tt~}4REiXiu%U< z^TTTA>Re!1l?z3P|MmAmx+^2qO zKsW&3M4n!D&~rUZHdL`Hr6#^psB)Ms+yLmVk83A(sUiukB{L|MUJ}63wihNG?#&xp zZWu)@W+$OJhOyc(*i5nGc49luKDW|&a+0zv9SOz=?4JkP)IV)0PvB(%boCYcf(;eD zmU(qiG%1UNo0In;zqGe>o}ArT-+9%=Q_?^ApDnR`U9zc_9m@xx7+l%g)YaY&9?!PQ z;~{>j(c-YIB9yt)Zux~FS5fmN6W+I^|9co?Fpg9!{CloC1Nk4Rt^Z>fW2{QO+3NF-3z1rP;C6yjE0I@Y=6! z?<%U+_~7%Ou1yh>az(iDwLYYXN1ij&D*M~on|<6g56!VoPo`)1tVeUiERG85H2&r+ zK5)ZIOlL|C#vW%dI_thit?Vjh*q3nJ&M`%~1Qv%CG%y`#90UDPt^dS2z8it(vcZ_C)_nAv zBEk+xBRaT13{~uZP{dG2GK?#_&RVArO&9_NbdK+hW4u%Z@w*!bdxWZ&g$K#t?$Xy( z#etc8VKB$!m=v2SN6dP`f2jggwo1 z-2#S?ydqlF*#dyVCbI4u<-g$u#=G|3+6T&F(O9_mLar!8bsMgoKX;Zst4YG%JU2|9VyeCz1Q2T#i{NQ-_Z*>y6f)$1J!s)r@!$Rb)9HzfCwUyE`DT^mnpz zMI)xX=3NJ(%S7OB%zF@G>Xe&s=G@p=&66HIX%PRL=e_0<3z@ zqXshb<2TU%uD@=>J@J9x`U8UfKi8k5jm`g^n!NS@${JV=;p?H4eq{}(Af>9Y>|5*9 zOlU?zdKipUbItN$D5C5czF)7np!i+dMyf#5AwsZW0dKEKJ>xCJQtPbZkFvp5J>Z6D|aqcO-!h z>dB6B^$7FD#ytv{{Y)Y^*%!XGJWL1UAXi>TmC64K(vPx?P|_Gf$CoSfyOuWYhSr`& z5h2V~Ev(&@3Uio&joZcEjm7-MfqH{rSsa6>68;mGAEC{xYl2Us^a0Jo3-` zSCAnu)itqad%C%~-ye)sOv4_%CCqfOzwJFXajl$$3w>?&`yC=6@YgDg27r8~iw}jW zZX%R_B78O<3;xSO-+y%KhgHAUiz~;2f;80S(R_Dn|ua}8~Yfyt|Wy)~NPRX|u z35&~l2c-ULw0IxYzdf<0aQK%$5CKt*8sN6Y7oN#2+|u~Zo{`Y0V8#DHteUaF?J#7y z&aSpUFhQbE?G#jdI(c^(ORacNmqCWkN;6tRcmp>&*T6RK2Xq+SpS}e^yW6kvh);%O zq8x37Wr(@=MR&lZS^RH~xbwvLVWSr8B@Mj?^pc^8sdep8a6(gIMfh+lL|W_6*jX2s z?=qqE%A{S`?VT~W9mG~u1f(ofH-CjB{iaH88m4$SagE@#_)%|n&db18hpkI2u>jp+ zHDMzs#B&69|0SO8rL*ccp9HRv2bNL`-+C#o8Z6hv2=*0JFWVBYbso@ldE(tJh^2PKyw1yP$Mo6jcK+hcq5dXza|9yu}$Mm zGlAR=D*i+D9Aszj^dsXDUfQ=Sn)m~nLm>q!?4zCrGuQ#RZMD63i$5)1c95+;_}Kwr zFaS`NuiPJC)N{hGn!?fIZ^9kLCPJM!HOeKudaR(m z974(CFAb=Lhi2E=W1k}FcElyZy1jF~jZm@1jFG5c-YKK;EY19g_|_K`NOoBYK4oH+sjI2-OQ1 zl?)$><+WoE!{t_62vNBk0wQv)b99h!twR|~#NH8r;;Pre55|ej(kbRtExlG>MsQuW zKC)POj^1CF5ODXuE`nx{9n+fd+BTjyO9I@tpcz$v;2@=e!N!CLJJio*wyrl~C6%ph zen8Golf3`Kaj>JJz&rozSP=h}bCCbf-{1dr*LwCQPXF})9CREEOpUDm3%g#WC>60m zi_mqV0&_+H>FTwnp$nZy)s_lFIej zRil)o9J-YdjP|SqN0F{lzP+`(1-aN2UVlw@Jd(~TrLgL^Q2{zN#~<-T%Vaq={VO@M z3xDsf(q!=1>3}VF(e*VQBJqAr=U(FCw)waZFLkFO3JETs(|*p7oJV#zRQ570&>J|L z7t$!*9!JdT{cH+`2=i?oNRSzw=tL%7ie#g<>V70Ak+es;IQOyw;U!jP`Lff&c`M)X z;VlAG%fzI^-L~de>g$VylT0}i8#BK`4@FxU!3^bim5`gjfy&Ro+s9pQE)%{GSBr>O zCp{D0!p}^c{P&g>NIDy7L-d4{&$E&{glHsIWR)eDREiNz1GFnp5sdKu`K)aMu{=lL zJL{2S%!3{1zVLK~&*!5C7t8H3E+=?}(KF@FHp$6&oSs5*f-=42jCL&NO2VV%vihHc z6xCf79YNfw>Ul`fPUX62#i(y-FfM@1KwF)vOnYE>*7Cb^<{SQ+2W~ykEAQW>(1Wom zJ{;63|0+Hn85XKh_;EdS|NO>Ro4uNtAC>^+;)T#4!D{)!)=Fca{|H;N_%n{K^Bd}8 zto8r*Ij}XeHL^6b{;!7oH`K>rgEjsaqhKp$6_>t5p3v2`hO5Nc(MFWvRAn5${(5{q zew1$p70;R{8U%2)nzm`Pa}CDpYa{-AxDOu&!T25}3~YHjS0GZueeH&K<4Q3Qcy+)f zv!B>-Vk5KGF8UYK#4L62-g){vqJeDktzC3g>R*ebwSk{41Db>kt(@jp|KBmg;e4x9 z>(|fU%Os4k&p7{sSPuGUj|cK^`>H{+o>qzhlhBzi?X+2mtPMnZ(g7?oh<;+qLHjvW zBM(7DE#6jN9%GX7J8w5?+szdfGZYg?$!K?HR-ISs#H#PfW^Wg4(V<&;`q34)G)wWtrO!?`l=kP>QiMNiLrO+OK24HCCO4Vx&U2*We;j3L6pKQWjd z?^lYD4-{hiU7?^9Az8W2Z8q!0$k`Cr5K`uJj$3gFVhFzHePJ@IZ7#42KwQiaK`aK> z2DSSZ*(aVsSM=}-b<_7*E`SH9JG{ryCB8=sEIX|E0FCE&XqPbAJTfE+J;~{}5~`q# zS!AG~JQm|KK}h`9=tKi-tP`M35RlS@=$BBRD5c+2Abyms8Kv6!5bET+dlBkp1k#G_sBxuw1VXr6w+BT*mZ2_tY^QdxHT zdcfCjuFZa*_~`)Zy)AiC+%zl5wzg1SCydQ#SH}|E7FIr6bKQx!x42gl+08DWszmhL zq@PpmT|Y2r-5vj~bPrH~|DNV`y-*FNv-*QAePQrFT7##rW;plh0z@p3kt=(G@?cc} zL<6hHK_p&1-7G9Jr|-n*9b1PJO=A8)2nOal;dnfjJHr{brAi5}ucymla@NmOE)AQ0 zxWwN`XmG??EJGMDkm^ouu5njL4yQ>#2Rxa%gMmEypL@JsN|E+u@GEcB0djcnvqW)k z9qZ{X%zslIk3kW5!#uo@j9$}0$&kdXt!1RxpuuDrfg=&oF1hS^RL56&*(L3o)3BOo zkiY2P9gcy?*X^6bq50@5E1rnN5y^D_9Qb(uxS~ds;&Xt$E!=$Ho|NqToOSScf9)f`U~;jh;6X6bfOYmyxbXCHJV*zvB#k;Oo>g*0Gqy@$S^zVy@Y6C2copX*Bz+adQHymP46K4|8 zr3JP2<(R%{9Y8A8CnXzm`$IaLb2K{NxpZM0WhJPmb0T|Us%;C{xEv&njqm5>9R!D{ zcOMoVtws-u8Ot=t$x@u-epeD$p?Ukn00l;#+xsc)I|G%3zL1!2qFMzF0dsOV$H1I3 z^HeSlUD|h?57AiV;^sT0foADe9l6s$flNycmHvg0FdCsJrXJ>Z!fYA+RybKcK=G z-n-|WGsp{790dzqoeB?L^0QH$Y^BfKPK1fM5Hjy>#Y=+UHV))^mF zw_mRV&Xx!A1fktqO7hr1Iu1Jux{soTkRYKcQ|S_YjXxqj2mOhvpF0Zh2R;VqL+CxinFVj-A}VjM<>TMD2edP+y(JAvXn*LXt_ z1qMx1xpauzD>c++tE9{=B0{5~nl+~-U#+hh-N?48o~M#=te7=s$WoSngVVw(3sZTd z+9dkAI<_Y$l1M=S@sc0$YysEoz|e1ezHK6ov5ieRVowm#8r!8g3cjb$Rv2MaL!As? z5OEYso!r%~8oew;d~_x!&R&}2NDImT4}N@k4M4$JfR%*LLv&jE++i6IY%1C@whL+J zE7KxydOXUSg9E;XqTvQ_cfuF8ynOIwx7>f~<15J?fQ_B-H6KN0fre_=MzoGgxV40| z0GK~v+wv78s8%3dWz0dGSJZmZ8p`D&Q)2Vt9tVC0;ekRJMmikm!%6P)tkW|E(o8Rq zU9P8cDrExG8pVdya&_+~xqt}#B_?#XP#(dM_T^4@7qvUee-Q2W9Sx(JjmBr#uxp!A z{uj0*fYcSodrB|&bC2?UKwtmBUBGCbv=Ay; zk5_)+PwON|6#IA3gX$~Fu}B=OFn^M~P9Bz2+@MfgcbPL$RN{;jHI5k=Pweb1SVI8T z_y8Q6B4G6vQ0B*U#mT0?&S!v97&|sL{(4ZHHPhgaabpOo&Dd8V$@XqB(8GyVCKy0_ z?-W%wxX-_w)tXCEQQ$SmFP2mRc&HxOnzp}Wv1_AOa`DC8$L)r#A4JwA3s?9WFBJzy zo>AwuyU-;iEU>|TU1EKvXx@{`xc_)%{y?+VCS$@NE7?d;F6Nefyjn%Ngb;Ik$yY~Z zp>j=REZmYz_TWk1If-!;2$(=i zkr+#EQ(1O&4iFY!4+MfI@^4F(M7@wp<=s+U4u};qgnvMr?nIvxa`e#IXFqr$3BR7l zndamU8vE}`fUfc`mw+>Zi#ZQGz?ocZW*dwklmIZ09!5Xl^R4p!ID*hEv11p^o{^y)-F(A^WV*jCUJ9?A)*UD{GZ~~QMQ+vcX)bz)P4`}vy3jth9v=aAy2~%zY z!&yZ&mCA;`WK%FHH#997o+=95hz&iKXk%qrH7YM$>GrC2kUt~zAxUxWSQ04eWOM|ZWQ3tRJ&u4EEAV5nxaaEcT5J- zU7bI-jEYvgKed=*;)FOR2sU+qIB`>THXKltn4u8f9dA{i;&z)-(R{=*kh#1N(Q)&D zxR31`^S2k7tKWwQMV5;UO$nOt=~s_c+ZunTfB?=RbBT|jxt{^PcKEb z2H_zzg%?uME^5|dD}t*&(0<5SRq}|9A~uA|&%32MLcRQ%Uq?cJfC8y%;BENa83?2|T06ZuT1oBGdl#a66int4g?po9ywH<^P>mr{P9WYf0A&=Gc}>u~hm0z=o>UF?jvjh>xX??3Pr887CBv}h2?!)X6atsEhrFid z!}Z_|o=ZR!x~$qatLu=|iZMqKY2_-4M}oHksK`!2*hTw*?ut+J$z-UFxO~p3VQ2m#ed;J9+-8XAh4=;n)DMd{i8#fE1gg9gna(VI4!M_DmV6VAI1hMAQ!O83^Be0pFA+(9^B346WVgX?nk&F5U1NGQ%h2$@JOu zfGu$8MN=7q(bcJ`^Z(mqZ=*9oM~4^~+SpTNl6->a2OgU(PW`MWNOa2oiw4xSpe4_2 zGdxQ)=2S~76DTkko5P&qJ2V{xU}JHP5<^^slAnRkTmmprN%w;2!|wTcHtSh|(>Xl5 zm+o};ORQ@Jc5Z@nu`N?U8|Ry_(r_ZL?`>!nm#R358cfOy%(f}K2z>Gd^ca@G^W7Vo zc8U*r6xe}#=8kF98hAk@K(q&01vpr0TBG|Cj-SKTmIx`=SLSTqE6(=NXYp^@TX88I zk(UK*29hw6Y7|)$Wm&4RUYg7qyIO+}ZEjm}bmjmfC+qw0^I9LB!DI6zKT_qfk2quL zJQn$+y!*R-B0|Av{Tk;z`0-`>?^&8>U%*@OH#P^iX75YefU7t>Z$OK+Z36NYnrB`o zxjH*ueN(JEzBS=-C`)i^<8btMHIg;A+VM$@8P1W+AJIbuELZ%PVuA{CbEKwoMNH`gL}Hzfyc;O-w7t92@^n060#S2rAHQTjxlMT546FFc9R}8T=?VM-);4zVxfJn z@wLiZK!sOf1Ek2}K;1kKiNgG}%8fez-A0>Sp3P8PDkFv4%as*>@^%iGA=RX_k!TT# zm+eVD%}xBz7&wP9d`3{Y<=}A9FeWpvIdCegv^lkk8PaNG1@Qtm*xkPyxahN3C{o_e zAlVOUE&FK~FR(*76zXidC_lz^BGS%+ex!=9r-B_S(3ha5`h4mG*R{s#O_D6y!9aoi z(3F2$$xCHh2@UQv*o`M=23s%higz02+LbE(+FsWR%P;jZM68n*I~+G;McM`sX2 z(cHC_PBCczCxH%*5#;V1i+@a$A+Xe}=OL)!CaJ_&af1(B#{)v>g0=oAYu&`Ujq#=S zb)3V~IAbDgdNO)tNg(RjfBwC_^k`ZLH0r_47Yo$wAE;U$J_k9`$arn#XsqKzEDq&B zJ)ywfggswFC_d(TA#CKsO^A|Rpq<4 zyrh6bXQ=H^9e&JKV2e+mhySZu9`>|1c_5KgHGTWdONu$8A`L%pg(|FU);E2R6=bk@ zKQaS|r)D|x)3QKUzbSO0aqc_a%o}ybaXHA;OR=^?puAS@PJEnnA5jY42iHUA8;x4# z`>{`y!exT$d-if03ztuOYijzk&|4*|AY)1s#uweb?jp+#84*(ui&G;);w>`obPCtV zUA21Gw}Qr#c7B*HetmO6S?gozKhYhR=24|3Z=+*b1&!_!8<$A2C&@Yj`;aE_mG|nt zU25UEUPXB3&>YjrQ7>`ZM$M3kK^`2!g!tdQ4L9k9cFueu{9jlPXKj*|xFM8>95p|O z!GOkes&i(mi-N(hc=2`NAIi+`HTzQR{?gt*@vezJ6m?4_5E?=^G`F@&c{bxJ%e&1W z&F|W4wJT53O6WEU&F7_xEGzwzMzu@zPxjVL<$ z@5KNp?lrSrAu*E5-cfDJozn!ZDQ;m@$}dli-5eUt6nD`7MN>liF}W&=pn;3&RsGqm ziKeDemrhG6DK_JPlt(Gf`>7(Qe2QVqw{#6Y3gGrX_@>Y@XVNwV?Vj*1VZz_7b%EzAd)KYhYK?Kh24YRanwQ4&@#UppA7gg5;ucd- zNu^e}L8c_g&PPAqw{E1frAubAxq$1Ii;=?o&UVx-i9hq>-D#lzN*0Hof!x}>~VkTN$H>LZ(3(bktpNU_m7(YMS{du>U$zU4H`qT zB?U$hf=ZeUiX%@IAa`O-lP*aZE0*^N&6lz|7Z*k}{E$}y8-g~PT95{VHyT>*=^=vy z)C}iDzt9A`^$1=U!s|_1op>y!b~uYpnvN%vOL{D!vGXbmmuiM}{UTW#>w?&=8f{2y z>aL_vazYikFNg~w3HYR1NusBaD}4gPZ69UuYZgYt3iAF0afrT{4Cx;p%Si)$zJksx zTA=V5!Z@nO3V&T$0dG(k;^MD)>LRp}4EjFhD6BrLiW=5IVvslOv0)jTv(R(?+S;in z9Kr<|xP8org%vh5CZn53fa@b|l@GGCr#qgDn{1Vkwq(kXBoU)-4DLpLK>KF`{S1yM zMuVS}QHkHUbxo8{vg}DsxH)Va(Ov5+3Cvr`f$7YMN(?kNP6Ppx7945c?pZU>o&wz~ ze|Q4av{5ov7-hht54R#QJobkoDU~$UNpbG4FmJ8TW2_<)Fw#}mB{+J1=ww<|x@_ct z{WW@)@2e>@A03CAOk0ce0Rh>e)gj?&rCbsf-1`Fk4#*Yq1Xa5do9l?0DlK4SSD3iu zu72#<-?0~*Gv@Ou-u}kgQ`tZfjlcR?k&TSOvMs)h5|c>CVYaG031Mn#YYePEnEwtl z8g?)~DqWgP7Y($nozsH51fR$a@rp8q$m6pd;10pnaC;3s!l(d|AtqLZFREsAJJp|C znQ%IFn8d}P3+Q1AA_NU@j|3tHjI)Vi`Kb#b0M-8y)x^5Qh(~ zVA4>XqzlE(d%5S;>qiV_4+O~dHbHRr`&T#%zP?O2Nf z%ExDM;v5bHx<_Zp7qmwW^?*SZ?SNwUm<=JR4R*u36hZ_(f21`H-YvIcWg7D*IT^{i zt4}Mn7Shx;fXo`!d7Ko@RiC*#yc-gDcAVT@G*_{R43xwuXc4&z&%gy>r#)B}bT$zz z$B1#kv#MO&YxAt?hV@zqGn|O&BS(_xYdEEi#sfw@nGIESIH~dv=+dJG*3<;vNR6Wq zw@J++IN@TT+4T&l;$N`DUHV6Ubd)#>!qd)_)R&?DDk+P`vccJaAd<@m11wj=cU7-c zqENmt3kXJ_3|M0@CUK3gL(Gv6mWL97l3AOtjU=K!reiJTW1^<$VSqXRyUnjl2~R6S zK+#B-L#-_PuH|d?moHtjV=%xAcg!m&?xL+J!MaoO2~tlKv|E8`N9! zSZvb0<<*M(=j;M>#!ck&0Z9A(2)%8OrfnoinW}ApbKPEspehU*FOyhhk`z4bEleJM zw{=+uk7--41wMok9js|?1BuJ6TSNs^lN^SOljJTi`!tgSj~ zu_UN&0OM2lBHFmr!zqOo6C05L@^iOI>KJb939#qJmYJstujtazCuKIJ7p|%@@+-Gl z0XRx}+g0bG3(N&6o0^G*bMauF{N)XA8jxDy=Q7p?k#ehB#{CKaW-(hWo;39vRU{0j zV`94ia0Ibg+(5F<@l^$;Jo))^E>#ct<`~8u;}0XyMp`KwVhY27%{ieRGXDa9NWcmL zMb|7eOWmFpYqn!$;dWmSNhGFhf_vt0EYi9Ea7zJsL4x;328cVlh^dHi{wPaNG@w_8 z#;h~H6k?tQf}R`ufan7$Y4|CNWh zKmY(>{m-+~|K4;gf6=~1|K*ZPQqr>7V2AN~so7lzC*?iAgvLh51#YLl@W(dnOXfn^ z${l0Qf{-N=h+n{V{JKd%nXo%3-grcyBy<}UkXOt*#DXBFP#`A)S#3`o2SDY=GEYTe z4?l0%3Ta?eE68JGLMh$OiMPdiEQ0IMCIgYg!siiMoEZDOhn=BVkkgN_lTFzxQVY3c~ zGit*v)+`=CAFDWgldbrd8PA037)C+fQnH|8vy&;M!{dYLf4h@uhHi%!sv0g&nv5AP zMPvQGH*k0{^l_FtS+Y}2(okc!gH2PVFix-vw@YiKJ#pNcAWdUiK|L0pO#Ciiu&Ux3 zWD(^V03X5Nt8wWp7N9EO-hmLO@q!yaIc~sDb`m%U9IDg$r+^~zqoBn18DPETLc1-g zr{e>SBdT}+uhB}Y&g!l)Ytra+P^rJc!Bu~oGyFiA#421c;siOG zIZ@?w|B`vTr{CE_bmN+#WA6xDW}+t7qH^J(mu!yMq!=B3Uu6D6CC)K?UAu2eiWJ=1 zxCLJ8Vlm3A_4Wrw0=O&eCbkZ{1h|#9W107-=VqIg6Hml-9jWCESIMCw^oEvz=s?ke z|8lx0I`$(V&!z_Gvy(&e?rX-_cDZFh`+%qQ;lQ{ArX|urXK+zT0-FP#R;D}RW*;u6 z?BhW8V-odR=@6XB?a+AnCOBc)q38@!2j62a|35SuTgJ&X>%Ro7g#RR9{dWcaKk|hC zFCFo>7K>D^Vis5tzO!}c)VUk^2zc<3N;)*C!1n{oK?$;yDQj5lHvX9*tx*^4zuvGM zq;#^1vEj=vIda}Gcn@DMEiDzZUps%+A?4n8vD&^)R@Cpd$JGwWcu>1mO>lO#w}m1tZ;uewCSzX*i`?z|6Wvpd=^hYs@;?jeSmyYh}4O1_cp_0G}%u&d;ZxJ-lkXI zeYKah{Azq|Zlnq!S8rmtcR@BO-QE5g{SDEkyAz5~mjlqg3YPG8-3iAD*pA+sBJ3Rr zEy@0psSaeo*M4X(4cr_RW=Ty4VV<_35K((^yx8BUr~c#^>ezGtBQyu5{VZLnlA(mN zML1?;*wrr7KV>3kLDcTKRh6FJh6KHw{nTBi0vTBOO{}teIy-ozp$_au4?+b;OeE0`|W4^uAcR{)|X}IfeI3s5ZQ*9T#3!O=Hz`IWy2$p_ap-gZD=f04;G;Ip;(Rrq~JQ$tdy*q1m@(mOA zJePJZpvcK``5oucj{PJVNX;eED~E`IaY6YY$PVJd%!VW(InqSQ=Ujb`roc|$UI>kEj2?@OP+^UX?W_<^HS@+<$Yf11C~dFz*}46Vz)tUW?zFYzrct)eM=8W2 zSVzeKj)x>GG)Ms>Ph{dDRTn9)7uniT(b#BSJrm7X>-F^z4$*ktVGM$plRhvh=QKtH z<&GG=iWwZ#VHU6&AOrWriSjL)S$He=e1=~dMNArDN36PqvSP3F^z@ki`F06(2IrCP znd-s}Oblay1&B}6V|2ITwK<&XI3i9C$c_xvy)dATW5cSJmjnrzrIr z16_T7FOQSa9OR32`5(kV3`(?yP6DK@1{re#GzweXMCz~t^j>tRn9Wk?$#1ALGWBfm zHtqWfHs2%lKG}aC>n^H{cm(F0MBa41qn*8WlQ(4j6t=px9?4@hHlSu&4G2c5MF{BI zw4GPk*2teh;el3{(0|a`AaIO8u?61#S{Gb*-;JLJAD8xpmeH-|oyG8UO(Oe|BfibpLZ45TyJYV8Dvt^`e6CB;XsQm+JwD2L0GqcA#}*t@W3$ z89stPcPMTk@c&}#9G3)v(jZ&5UDajVwr$(CtuEWPZQHhO+vfJf{+ii+hPsr@t~JIt7-22wmt4%>%qnTTWcp<2)kqfQJY3O z0WZilfIbu0?sU)d^IdK{tcV8H_3M$xDxiZxKdZ+HqPxsLw?QHwa;ZUr0Z8$67FD2| zS{?&r>K?Jtox!J?nh2@&B&i?Cg)DFAM!C9^x(=84Z?7xviGN%q9!JVnVLTh5ia8jo%9=#7iWz8$)wqn}>gK9*BF#Z%R}gHU&VjfRTup66Fz` zhn5^Gt@4#ylW7Cr5l4#eplm~>j20SFhz zHZyF7tNBHT70Y~azKi#>teWbH#B~5g)oq71W3H;Wws5;55|k9Gf>Dw~X1M0!B5 z9w8x+VrC?xHc!cP-f+=d(QT)|L3;)dJ~mEnc&{rSgF~I&aA6V|VE``18wQgnS~h5r zOeus+PUIRPBTg^{1-l{keq4xEQ7TuksEp;P;V2@BL@~%w0WC><>htsZgNDU7f24Nl zEt)os=M}zR_i$v=0XdiAjctba`@3AL%E1+IHCN8n3_QO6%s)K7msMd1u$?%*^UA*{ z(aYENN2=>o_3Gk*9z|3)3TO%2m#lXH;gZ|tykx`&3M9SpM}?@V%L^Rx>t`EydbZK- zzvUJ^wm+C2A^^ZI$Nwbo{_~*CJ?!nA%}tyvob>+h?f37}+t%{2+Z0Xw)yp-c6ChY9 zHeZ+6sQgnbm$BA{y}=xo2sXpPtX`y$0G%E*y}c{!AkDl$4UUT_?Kjbe;lIfs6rOhI6jjr;7`$gOu) z`2DRBJUZJ4K|9Di=bLm>Y0Q^G9Qv)<^+TOI8Y{(GXv|r*3tL0PQO1EwKMH)J?uW{O z)Jd@9Z+j=7fS0H{`ZD}LcMZWU_zq~{XODc`*l#FdABf*wbH|txoLq%harrGcS-xR* zx#6eXgL&t($V#h%4_z&+8AozF-(1glMk+Uqi;`NrDhWV{eBlaMUqLMIg^N}hV)AM% zI?)*~wdSSS2a+YMV-(Gzou=VPb4YI7=rU{)4^0zDogw@eNq|#th!VWa6z_bR_v)<%L^Z==tDFkeZPrTj~wvll+G&c%{xMo!CP50~!5Nrq6*6#G=-1 z-}_GgiV@nh^ksWJ)aiA==%jFn-5Gy>_&`*}mMn?yd3d;znIKA`V1P}+cisvrpd0dH z9-BBXZ;~*=Nx#dVozC6qz!VLX>56aE4hT}xo8#pbf}qMQ8uU#=@AU<(OeUJwbTkH-Y{u~Ds2I<5z0v@A>MZkM4oIrUkJQWF{__ zs5(*#uCsf`$N_2i0_SDM;m#$g9AB=n*aHafFZ{3q!tp&)N>wDNfnvVc)=rsk*q!(E z2o65y5!72=HlpxFBX+$ms(uK?-XJ0Vj88Q3x_9#3C$H6mc z(|nPIK71-)Dwq+{LgKJUgbXidV66SZ1ciqPdKJ#|(=5EGs0ib~(jb5K?fv_h2|nn3 z-K`?ToNQj8m}2(%VkW8Mo2h!vuX5I;7yi^D0l$yPWax}X4WzepdN&7!CECVJhL;i( z^BR+$Le-zi?H&0L&ek(9h*%@$!y%%<1n}HT+#gC4u#%`1HG{1nEd}+J#pl+-`!F^e z1&yn}#*M{z0`aZTqVnK6Atcpx=XAg>5u)3@T|1-{ug4?A+Q@Sa)CfS*4wIu94^yr{ zNu=H6GYxSCT2F=H_y|Wh4etfF2~)BZou4`czVqsPhpZyFV)Z%g_oIYXnisv_38F{@V@;W*)uy2I&Q{<4(m*O#h|X(D*JnN zyw`iQH@m+VdjH-UW4_(tCUm>*vwN73yZ8`RHTK*A(F#!((wa&e9OgE;OZ&?Yg#;Wl zmj$E~Fg;j@DBFfxz$kQ77J_7ii}FJ5vMD%zYlCP_vXrpEiU^pSqI?r|Uj2lMVW^zO6ElCL?#@oW*ZGt)fPBqU##XbyxofeCc%KjkRnF@GNWS+fuDV6fiB z$>T$)tMCyTP4v3}B{#KHP1bN;97u_}4a8!U7b-K@N5G~%>#V)=I-<>s!2|3_JmveL z_wj>wMsu;iQAaKx&~xdS)PfADg#E52P<$*~mM zR}vuZgi~o7udg4hF~FguTN-vwe;^2pPzHW(95-$pK^R_8U@A=CBSH;)>>L)`$gqa2 zvHN~L_Kxif=Ql8H_UrUk{kfPLxF2^L(&o_X@Oi_k%&0qM9B#8Vq`dz=5ZmJocMI1w z_-VI=Q-{mzrFuZjypMkHIJthemqiCR8xmN0>UZrE2@E-iP_Hm(7N{*SGPgWPcO#iY9 zh;#)eGK?P6U=HF4#-r}Th~4p{O^YpjZ#MzagGENOBHCrk^$Z-pE{q68qn%A=-`%Fu#UhAw~V=Wy}+CLS)iei}Xv{ z5rJ0bUz}^Y=+m)DMtPV4MN_Chenz4B5(*wFm&5yc^Xd1Sucs!6g8OGXM^1#n#bt&8 zoxW^ytMJ)jFI#(N9xxtchjG^hbojGjS;@`qKx=Se1IZE=J1}2F1i_g3BaKmnM%g&KdW(dBq($Bpz>a2RfrL#$sGPk#OHtbxca0 z`Tm!J`y=$RGq5yiUEuOnTT#2+NWo{c4&#>2e zv$wO{aWClm{xEaZ6Sx<(62!ev#Y924?7U9Hl1~);rsTRMg-@gLYy4(1w?^Z~`So~q zh1&0=0YO#;KyFv(Pvt)ApO4l1_Z4v`s#G*v=va~^Rkg1m<)jj|qMjyfqJIDq0-Dr$`Av;vr0DQs zNbKGUZK$WHgiur5xp{f9d{yDk9MUt5NeXqAPiivj7not;mON2wGiq*epdR{SgL!7u z)%d1F|8~I)aYCNe9t1qohz~qMi9^tXg}4SY>L#{~hmrH?61Xx}_lvT}+(l;Am=I_Z zWX7>=wN{*oB{VWn#{y4SceyU1ki1GAde&9IEJntULUK%}dLByf_OF52MR`I>`4*bo z#aj8{cIP`urL8RsB9cg%f(KWk`F_&^ZT)3SQ{F+EssXhi}R(V`scT0!vf9vjK%aB;cds=(r;Hr1}^MgUS5yKm$&D)LB3s_+>bGs zBBNGI;yKK`57WVFYwRzzl54T{45EwWYe8nj=X(f(M@!=DnuGnffl0}Lsd>p9y;X@l zpF$`8=HC!kS(YkBCpEKxpMA>wL6{g&x3_P*bsoHUGK=nEQ9{qUaeSj@=%D3I)TKo#Kpxl9#qE&_Q zA(+~0oW&yqIb8O!#fL86cG@8#Bo&|<;rCol8D0}dz(mJPPK-r`BIF@Y7a=nVPI4qq zB)GbPusj#$KJUNZo+|)MV6?emUt|hEVvI0r z4q(bzJ5hx}dh5s#D05%T@e;4%1@(c_pr8Y@&6cs2w8g50o{Y*i%}TxQ)!{JD4pUl< z@)omZchV&Lr_qL)Vte>zFjGLwthTlk+;J z#I|xzmulud5)8JBb1TxXo0<>f+TxRyW*xGy%l7-Z1U-66%2YM=0GhXvMOM&*IzSk1v(>PP_}WlTqwvO{n^Rx#BJ)OdOnC{k8;?Uy_yh_2GJtB!w&Q>8pR zGB3H!hm|ca&g2%5Av0_V)-8Ao-{0r_^XRPu_E!8cR5Iy>?97*XFbW&MwV;od3T@@f zxi%B7%DV0-84Di@vgC46!qdIe+nKY;8Uo6!rIm+Z!SL|>5jl~eVV$Q#S?YoV{0x!5 zJ3BkQZf|~mdazkmMpVO%@Zl`1mcOC58oyzzid6&Z`(&T}jZassKE4&_RSj7-;@PW) zjZ5kG7&4#u{2p$p7hiMvo@JaPG9$%^9PaiEOWQZT%e8C&Xx4iagxj^@W;X`Z4yjwU zFlaSc`S9i*$uDD4+OWK>Qih!{>N32~asNhmD?BT%c$Zc%UYs1NCwCa+Wi5cMvxt;6 zBQZtVI0|TUskFDHouC(eMwU11LLf#+C3$|Q1UJ8pX9gY81X0y+1sO@P@9?*E8VRXq z9vOjdp7C^h4om(BdLI{f2!~xQ)O#G=G~keG;>K>kpx}nfbGJ@z=``H~pmiR#Lu{6t zRL*D1gXuAF%v}DOfrWYo@)lznq3Wj1f@#hk+dO~WHqWWpR@#yOupa6pqdYDdTj~yZ z1la;LD@nNN=r$~GdS2RDdo8uSWHgCIU$Q*wGCimXs-vnXy?CeKmXX)ABYkf3uuzUm zB+j~yt_W)B_))=8wq$gy3k1@M>WJn|sePG{_)TCes6kG6pNURRt=G>veFUY2@SV9$ z4x6X0Qe}Vw4Cnn;;@y%1dThq?L)&@q_=9j-R8j7)qz9zutdcxduW6Z>X{C82R)Jy4 zfBPjbX0$xh!NWFd;>7?4HGfv<$X#0^9joc$x#v*`eSAcSqCcx=N0oeC%^hIfZPYyg zVg<|;q=9dt<;qyQ=CkGoh%if^-bNRv*QP>F{7M0qe9g4(XAqTqgo`S-gL} zRF6_={pPZJn_a>WXEgskxNOmP1B`(EbXj#L{9(A3T%Y>ZRUA|yLwfeYY zj8jbd%zy-ti+8>JT}9Ga1W#%lQz(V6UTL-rnvSZ$Zz7YtW)0-6F7Y;C;HcSb>6Zyu zGl835Sfy zDzd&!*2lXcztT%wR$Ox#uP9b|%8fO@IzO|O-0~sNVfl*ug&O&pS8)l5)%rkr;*^BO zp#wjO6}W;-c}Fqs_e&H$H4qsg(>cEC9WAY#1noZTJzjISHi=E<1W&fD?JT=LjVdI4 zq6Odnhf8jr!P?sSUj_uzluN4%2mpWz3;+P`|JbbtwzhW8|6!f!IeXZf{Ac`qT2<6q%eM)=#!Boz)n{ue1P z^Z`G9>E>$cH7%Z6Qb&V6`d&4ewvV+~*(&b(vQzHX?%;CQw&wTk`(+hCx02Lf&)5>! zUF*D8!H2)28x_>l%_ZFkz)dDx_fNSsV}6zN;HXDiLYkQ=`m@|uWeTck=p_`vvhDI8 zgS+e*dU*V5dG#o0U(PLNS&fV|UHz1H=1{qM3Wj9DSMGK!H8cgSk`s+psC*=0B*F@SEujWY}}`xj88 zHv7o4gIjy?ga={8dy2)k=6sp00fO#1qnn{i!%=tmQJZd1w;2t8O}b<79qgUWsgXFd z1F*9B48aEY1xHEh>RXuSty@xDmFNbQ(Hk4;|5TfT24_eZSu!`ie|;Tn;W)rN?vXFi z>2h<2TiR%E|2?I&8+4}3rq;xkm6hFkZKlEoA>K{^Npa5ntE$fip`~<&N_Vj!A=vsI zs7xWa(17&P3xs*pO@&4~AT`E}C7%IfO<`AN$td!-FQE#`Kq3b}rK2TJ$`^ryTi*!C zZ3wv zEHVAblsXEg(l<A@2fKiGrdW(KW(yf=4LXy#I3C_;Q3U(tB0A zj>60b&b?MU2fa+Uw3C5&l!0H|?KM5uM%zXWq4HwkgLY}QCZ2ehzD9E)z>-f8p=FjZ zti8A|Sqm9_s_3D;RFSAaeDzS&ikNgQ;jlN|-Q!huJGp(uz zrc>@IwAsw~f}h3W`JW1Ne=&L+Ja*l=n^T(bk141)G98xWic+M@(zX(3I!)>2NhW6r@R2;#p) zQQ!eq3(RzingmQ$=8rY`O~|TBu|C41wp>M{MEfYbF&`gaUnT(KxSvT*vZ{m%J}Dzu zsYflE)RLP3F0>ipQECmMlbY~@abO@mq;Z$c(%S~WaNzf$LSy&CiD5h~u+3uKnQ(`+edQ+`f*LweLCnH+p z0#E)Mc9H*QC;u0k@t>Xi|6wW~|Jh8~Z232I{dWQ$1t+6^o2_|b=$Yi1xMkBgQC74t zzn-{BFoh5$VL`KT+wYbG93SGYVB7j?DccfBYUp^&j(u<9S~i)b^T324GSaevb~&Y( za#loBN<~@v0(6#58_n)bmQMXPvPqS)b&*SVCE--z(TM6IdVInp;$G_BIVqrz&Hdj~wJ-JkT4$n# zNn;w3oOve~3b$~|1eVlyTvu5Ld(ssEZL|j21kC8YQlxjz2Dvc18_CjaAf%Hk>?@En z&*8_3^akT-nz^Ew>5ik=>hn70Ch9CN>ESWxsy;eDAojlwZ>xAM+I>ae*L3sVeO*8M zavj!vNU!sHYx|%puA-!5u+nJDZ~^>ADtu#+0jo_`b6`pj5vI?(?j%jQFtw~lnag&{ zqz`KB%$BxBi480Z9|>brz5ZZ)cj5)T)nt+Ree)X8T8_X1m?K_g7cj zuj7wyc6!}EU_zjrwh7o7-{C9#2_VQ&q=#CP#TWfPiIAMN+4DP}b@v!W9*zSdavi5_ zR&X818trV0YJZY}IV;7r{T)3jp`ba{)FdcgRQ|!9cs?fT!N~UfC4u?m!KiG$7SEG< z^um;ryU?Uh8zRaBmjCoSGbf9XD(M=nRkL-Cq!U%LTIQNvY18MC7&TiOQ=}c{IgQ18 zPh!Q?vNCR;m1>|OK}F94rUESkASea^`!Cry|7|WXt}qT3WHer;tb^azu0jn05>{O9 z8gox?o}^+$#%CQ_jpGqQPcGD4gMaQvdpHFzneqDz0l3*GUKw_*Kl`t>gcX`Xs|H5i z7&!I9ZAOT$rO;;?M^Ce9pHLI7U*rtDQ(Rb22#vGOvH)b8R-h1?p93%?fC5v1D+#c2 z{g=`ozY>c1-0-1#VLyblY9<;DQ_f1CijVOgurPojnPvnf*LPGIC(mUZklaz;F&v8= zV;NhVf{s(WUa<=FF60wH!t{!HQ6-&ObRms_pMQ`(YYisx3R& z{4E=FgIpMnpF|u+h8&ft+xi{Dd!l-KKxyp?WuCK);emj#7?E-8R1v!t1%rl;?!{OD zvEFS)3bB#G2!8Kgjo0kg`|GVf_FvNy5m?%n02}+Z*S1jSPHi9&#ha=p;Da>g@a}sF z$iZDKDsMtV4GeK)EKWNpr~d%<`ZYcnwYS(6JRaP5z(6`rVEJsAWCR~U?3v+RE+-G9 zE50<4(ZX8Vi~0>|0?f#1(%z{h>^^kX+8zvyySRHX#}ZMK6n~=Fd>e5CICDds*@Q`h ze_Yp~?I;X?U?K7LQB&*}fhtY&jyjAxiw;J-Zo$uDq97*bJ}@D~u#o1TUdvWi-$VM# zx=!yO&RlvZM$uxQWlkF43kppE1uF7rvkp_kt>xvyKvHL0U@6imyMP_p2cixXh+w0d zTTR5a(G(?6cH*+lz!`8DX;J2Vr}l;q0fTA1^yjy{80ug!pl(vWsY?|9U^7jxcAO0Ai$q(V(tCrHle62+jr@#5cD|nz1DjCo zZn)#18)`t@rO}vv2onK=8nU30r2uxRXGL`@v#h;Z6-N&<|6dIl1^^US8xb_O#5UC- z9qwG!AJ<#6!qSkl8Mv+a%YsMjopBPrK=HTru>okgB@N8I*(GgXq2gO#GUBzh^~S)2 zoxlDQwbs3pBqRnQ$pFfDNRqf2N?txEVOug3Nws^d7+*D#8msaSYK);#Ie63YaB|$} z1qdX|Qw@|rIx>?$XlBl`>vw_5UhE`hP-c@pf0vWaqxQpv>cIVcADE3xByHQ9%Qs&0 zM+C7P>SYnFLWq3&78MAMo$(z-uR7+cYc_MXsf!Z&l*3d3V=_Vo7K1Wj-PbpNbf?`4f!`_eSdtlW)=Z2kZ- z;2Y)PFZSO-oU3(R_H86N)zoLC>jF1rp6fjcz%GUVVlIZw*{yqtwLx2>b-A4_Fb{E0 zngWnH!Qp%-C3spHoiD5fW1nw5fXIvf#)X;)kY)S+_qt#Rgui}Ow?6Q;BOka)m!86Q$=&SK!-L5z5PP%fRfpb>o%G+)!v)!=dapPGP zh?=lvF^-T|A^ij@mg2;shvLa}9@6@(_oo#xyz)1EmvY1S=IrDP$lWE27Kl^j#)+m` zt?Yj;Yjm$8+V=i%KWmC&H`QtM2Q~n`f11zR|L_+LP?S6B;amk}6&6sur;|i$+_|_* zp1%k2-7MS(rfxs7k7DrWL@SVM+5?H)k@Pd@J!QJJ zK%QG?F=AaeLdb%BtupM{{7Y&U+5`OzyiAU=XXK&YPBA|&-NW)W+P^6sP@|k$WcaHu zD&&b)IX70Vs21H1v(2vZ6TLV?9HKj`8L%AO4s9Olt#& zkVt~fT?ZkYW}Mi8nYk3EOEi9$-#hLE7_txJ0A90dEl~wL`;O*NTyL6uH{BOH&U9#gP5zd5Hi9c)x?st#e zI)qavCahRi%r48_2LPAZewiF?{*$Cz?n+tY6bM}+%yyg03>BXv%+j43)dTp*DXVST zAAoHJw+QYq0vxE1_#sj-pEPV4xWIkyWq5H{tcYt`0WzcC6upQb*%L+=O_-NeeyI|- z=k0TfF2J}bCg3I(oo&!Qt9Gaou2ebo!K4SnMNW6rOXfQxz=4`q{bxeH3~0W(MnwmE z*slJrus=8MkE}>a2qT(PONU&$QeD~t!e}C4;L}iWDIIQIh-)W#z~uBLlI1U`od;qd zsTA8ZMUk*F>zABmby@`Y9l9Al$&RtS9m#;$je`6LUT=2~5eM}}mx3BCH`okEf#_mg zRy?V}wg?q01P|sV&_rRVN?}PIH+fRwbOH%V*HU*d0%IdHvT8>!Lz_?R8@k~p6o!ra zY`ub`ZFqG|NWs^o7g|z2Dv6F4;8YiAHXyU|pv7Y^bk{@OiM>Qim#_Ll%!FXlA5b5n6wTo0=TpnS%Q;ZF4O*CQ;8=Tgg@L=GWoNt35d1R!#MoO|; z5UkK++0s=xn2B$?zRQ;X3KlZ)s`)^)sDBh00c5imUthXJa zGp(nXW*G@7P)ZD}p`$C*-@(v!-vgV?b9%BU3z|%~u)f5SV0~JlZSTxma0N>_ulMwv zKsZCI>~CU1?wJc81}DhjudX{NxDPdC}{M8;$${4loQk7eqEojrg^d> z-(?(Uzr4*~b|%TQg!$eF+7F>6@qCPdU#SVBX7Oyiu}Sysrjeh-5zwBOy#3@CSq*oy z)<_UeFLovYGbX!Ze}W*u=-7|md(bdeGx^Z6c(gBC#TWtNi9hVX9k*`eX-CQ9vu`f~Ayv6W_>& z#|M|b73R?ub&4HMT3trYnut#4+Nop5c4hK@Fch1KR$|e|jh@aAOUT7q{P^9lVE{ zKTwSPOrh2V1S)p*4@Pda2V(MTyE)CHbv0R6s&sEG5(iC#MNftcruH4KF2#mnuRyTH zgq+{+kj zJCxH2cS;zZ2&JR0u}3PHS9YyG(YV;7;i;t|`jazaDgE< z<%6Qrx*aw0Wb34Hyk5)B_|Z;%SoDc1BaN7~dE;S==3|i5xbORYY;7{_9Piz&9ECb8 zHC6|~q+*?{y$GD^fn~ahl)D(~B2)LdDQB{T>ex97G3-O$WB{tJsXIaCXr{$qB(Mtb zH@+u9h&0(vMPe!XHVKN`iLL1=oceT(OGV`Ft1^o{c*gT%eEyqW&Hl>dUrVrB(;q5B z_}X*3Njs$gIXH_p!W9yG%fS6AeK5_Z7_M7Xe|~}$(~CEH0kVs_Q@%Ytu4-+RO>P&^ zc799kDKac~1ir;8et@+hNB|iS|A4U(y9RfKjeiT$w(-|}YI&=?;z)h)o1g|(n5PZ; zB3)<^AZhrNN}(uUZn)thRJo!Dm&&4JNX|IkDYF~3q;fsay{@{=bRV;`Z;!_&r+3>_ zXDH^f5-Bw|X3kt~m)s8m4B012{L+SNKV5CGor7F^AMLLm_nkA9aLt2Rt6kU)l_G#m zfof8o;IFxxcdx1pot-pX+uOeIyx>hr9%7hZ{osIGeH6}OVJVLgnntMe$=$pB zbkTuBlJPSh5j8cxW`Tz-yFul_ zJ`bi8a7hd4F~zk4Vxm>$sj45s^wP9Tq_C)J6ezikE2_dp>e*7r>UUD}VjuTA@*=R>rmv%ozqb)L}e zgCG5mV6!kZp`==*yP_dC04J`%{CJZZm7v!9is-LQD)fxd>7FuznF-UfwA&Y%;?Mw$ zM^0CfStl8n4u750Z4%&2nH_uvHxgud0L;Cw<3Lc7>78uZO4BLb;*}&<#KVE>+v^|>+F14+pUdZan28Xibm)iTSr-rPeRd@ob z0J5)Tqw8+aOSs-gckS1c{6H*3KiO?Y^oci78c?Klqy%R8j?adV&7*?EXqveM#I6B` z2vV&R)^yyxji_g}v{wCh1mfgNteGq}oJ9pAYm7$gCPj5vMH%F_A)5W|6KLz8g>k}6 z<`~rO!`d?bvU3$cxGcrhZ}#^Mv8E?6SlgOIU(!#B0Nm57lv7IngOi-I$VPmDA0|z> zIK)Dvi+kOGuvu-PC+;5~3%SO&TW!BAv-9)_pf+{aS4eZhfmICmt7AO<#1C6|VQ%e6 ze+1UL0YbV50#WYZsL|7Bu|nR4+B1=D52x0%rg=Ir^fuu*<xan)%zLmGM z>`Cq z?(VeedYslw-q`5iSZBN3;M@4lS#7eQ5Tw8PNt25=V}*20Bc?D@oXaeeY&3n`NZ*wz z={UfilC~(n_F@>=XNE)X5Aki3^P1zuP38;eOO`f7>;^sn2&%RFXX6?U!UPhNjxi*+ zCZRU+f=N?KSqS+rQDl>Cg6ca^S5Gf}1o2$vBaaQgb!5c>=2sbu`0(IgG*}x+2FGmJ z-&}D7%1kBLB^DU5m+dHz@*_e6uu(v*pmnRv_C@~*q}K)@%ei7#9n@yk35_~vFP>a+ zP#}3gf=~hMGwdU(Zvc{b<=ianP8gE+%`d(u@-|v}<~pMuY&GEXQ?*(@ii$l_NInS9 z=05)du;QbgJmShn^6H90fF#jH0!?mi?IlqZ&4ZOb?5C9uAwa&qTe{UIi^&6*4kM%1 zE!Nm63pVj@*b%L>z>fJ$^sVg`ZcA`~MY&B--^LA^Q6#p%0#?jV{b~{HuMUvV4KOre z>HP!NJ#aoa`FnHdrET~2*s-ODC@$PodPM(6M_=|pMY%{&GGJ6XHa1u>>FiaR3n5%x z=z@gBJ_8Wme}5K_w>!Ix6ZlKWf}fTX8qnJP^?df$g1yS7G0NUC(Vm+UAI0nSr%S@i=T@y zoUY_c%-#?l2SMBliNl3~knYkDL=raeaGw}ab*Gb1SX;D4@Sw>SPkhm~%BD$ktXLJ7 z8s6*-yJ7XR+)?Q}>ymD*p1PRePKhCUri1cSbEDOMv4k>&y)~bxeEK?xdC5<*={i%^ zq*i0|D&PDiXpE4kSm`IPP>-uDSDqEFs;%rOX-hiV3lK-jL)*TsRaxRAsbWeT{DwYQ z1+kvs!X4%9(zK!uxnkqrNu$HpzgV@jUguojpt7QvqLEMoDx_ifOwt^4=oJfC`3o2UJvq4G!V zLll5e2c*Cmo7H(l<@ljHss@YoSxr{!aOG!Wk%GbpN(rUCTz)Yz228hpZX=_%2s$*9 z@>+Q!C*WyTD2H^n zkf5n`S5=@_kfWIPN6IsAohL7V^k=q;wTXdsbn%4Xy_f6cP%LnIJ}^)q0ZpdWLR&n! zTIN>6h9ptYY^#0w1E-EHotyg{tM?Q3RzM*mAf+5&_fMWPM!$_X?a4Z2^z*CfPIwxm za?iNT(Y?WjMd?+K4ogqA3)Zp{+ITkpl?far z#%hq>W34!YfXiP0)4c;rX|1T0OB-wK&{qa;`GAamxq-1_EzAW2d7<_Y8^aZVnb#v4 zgz7!4qipMCy8Nj#?6HU(23=HnVXPBLlh<2iVG56$r*KAL+BtIEMS4X7J^jnB8Qtvj zoxRdUgXMX|p2+$Sj>Kw%MplQbEz51EB(AE|rzG;+CIWZI@-ExH1yQxna9r;$RM~Ez z6vTy+v}LAcH7hb%*Kp74Bmg5_@?DrSftv$jb6}~!GrJf#!Kf-N>Fl5sjGjU7Z`j>) zrh2-eYi#m7#IXds&5soxFQs2-+h)6-P17tsv`S&WjC!H!pW9I_381+$u8Q9CPp?EeCD1NAzWB#&p<*68xHrR`Vm6=_Kz#Ow=hiUCifZcg6g}Ui zdzAv{zkn=)tkE?Y%LSq#i47%V_z^3xmQSkh=5+{_doz$tC3YUKC{%U&z4pz}dW-{h z;Z8jea7=l(3A%H+U`GDVpw=R|M+g^Z)(w)M`3_ta=5<;ZO-hl`&0De7V|<$Pcu^n4 zpqb9iD(&gK;{$Y+f5lAT-Dhme;W3=J(cR(Dq}9FX2jCmTN-qMhYD&Z--zHVB3fkm_ zN5z?kYFmV)Kyt#PZ@{-@7c+zm1-l3PB_xpGV8;1c+llyt`=y7dwj*GjF`s0tsC&)N z%Xa~a;AcllIQAc{XfS`Ac1qvM$q1!7>b5O(eYjdyqAsqXKw;S&Qo;gES%MVAgs^vF zvdlV@utxiwnEUh=Tc#7gX(yNZfVV`mWA+%CzfQdgA{?KX^bv3mhek|+-T+17Bde>* zmI=oCfZKJO>SA}muZ5)Ij=33_$lywCjXH{yTTy_#(aS{5%8HOvrANk_Rq!=pb#gp# zYXMo7xfO!%E~SC^?(JAJL1$}yu0sczTIbK9X_`+|QmBP9s8Fr04@jQE9DCHHf?%G8 z$q)vj7TjRPTmQi{aPBYFA^oFEg^nB#6sz8$dW{rBomZG=ssC=xjX8KqQ}?BDvtokc zcBU0plxgtB8Wu+y#RYh`@i|gB*4r1~c}h7V8}bct=)c<2--&~;35J|O?NeY~nV%u% z^Q2UI0-5r`Sv`_uI2wr3FD5d5+2A9BivvLQS~sevyfB@`-XF}f|3s=rD#v(0)UOYf z8?77vklA*2?QoG|p!3q8%44t0(T0CZ%D%3DO6w1rDC=fU#1d`e zOK`(7WEX517^GE7@yPqOdmCD$duNSt^Y>re9feN9D&x477nMfjR5<~*($SoF@{DQL z(O)Ie7S{j@7&x??ci|euxOjbOm_dW!3D~}U{|7{q9@Gw4RV1A!Vv>+iqTCtiMzW$H zCb~v>W6FgT%n{54`MuVK;mD=o06E(o?VeFSZt4`FpI715K`dKE8byyfM)zfwF z8I!CJko|H6_X)cIfE&iK8$7gH{?xUZsRQ_bZbe4@f;Wq=cdF#BqqFV*bIiV^%>_b9a zcx|Xz{DDLx*yxzQ1j%Obz(5E|;}W&3-h;2$XoiPZ(_^+%oYo+@Vwu;D=f-eN8KWtL zyBTL#h9{gY-8^SJM2pSQE~$=m_|gI)~)s}B4i*IM0UkEvCDV+Y2lsHv~~W+ zH`gT!X0y6b*=An004~}mC^0@#J?g{*i~`Z~Ek{#|Ywm`I&2CtcLll)ry3ZO$DhGb)}t*U>bQ33jeU? zyr*e}+XX5Dvf8T&Y9WhUfKu_fSq{iFx3i+y%5y7NWT&E|amGU~ThX~u1x*BEHQ;|C zM!mY^+WP=`0G|x~OG8e;n82{+t@E z-)uGifc|$7qeth&{^}oYA_x-z0QLVd;A~AT%>D(&s?}}mj+haCdU^*a@fy6K+PU@? zBM9@J0PbA_fFV_qFJ-zqOC+$@WjBj2{LDsN4Y@K~u*HfyOJ2IXPSWc|79~u^^fX%{ zs}o@NZFUj%RcH4%t22biHn!`2Zf09gpRPI|8}WL6-#4?omvJ2(M=mmKEOQd=ge@E& zL@TsPD)io2$$Fhd$5NI#JXYPrA8zLQe|uZ&I>J!pea+k}4K(08d{IKEjD0GL;)|k7*rcOcyr-F4pJX4>ty>L48AwZ6 zm(Vd4+m5dm5R+LJGrm-BJO*cOqYQ<@QiSr9i6 zuiy2|3$6F))Q%46#%3Fi1+adc^L+08#%3h~bCfP;H`=*I4lS;`R(yR(VGug@9}CDM zwj}?qDOlPBT(g&PjBlZ1h5B8$joYn3AKpEQ&RsY7g;`PfaF@rJCDgV85fF_{YGq2e%(m z>B4c#_!{u11i`pw#h3`tja2JS&iTm|{;h~h^#M|aNRty{|9a+X6+sNSWqsS(iy7oB zfPk$E4V4Ld(Y7GKD56TI1mu#Q!F=&g$O0)g!hG+$^Spy|!==@v5F5BEyowRddh+o|K>zgz_@bMdwkiGilL^voq1Ly7eO-oc9`z zTk~D4b>JO;k(NKY7@IJFMnL(2oEPwG!}M)bY<>>(;C)75tqu5~nVcfZ!TK_=kBo{N z6?OnPC9upiFj8ZiNQR{$LUn(!sv|aR^e?rF=m2xbnMC{R`_xK@V6%>`c_Un*-`S>@ z65Nq6>iJEH0gz3wxs?yxA8EpjtI{}&*faevZW12(X z>e+%u4%tuRV2t%g9d!;Nru0__47y-3ewJRicSw>R)4+*qw_cdi&@;VZyuwQ`KJ*8F zXuXpJ;fl$_2IDT?=QKs}rL(`$_0#C5fD8rib@L#yUf~lVq~#f4haSf;gn1#O!`D!7 z6RXJxkjM)$Klt=bvVdp%N#^0 z@^bl08<#`o(=BM=QcEFoz?^cym(sgr`CZCFMIyp|g@fB?1FA@+KT%=?;s?8+N?u5i zfQG^F#~F@vab+U{rD4g$(?o8?!^BL*Sp)RD-{k#A4cy+0E|!yFpTaKVppIFJn zV%4d2c%kpK-|ZaS!8wZ1PHLVG5#VLDbjuXGppKj;CMMqhq4#%|6y#$7Dxho~+A;10 zkN2(Eb#gpzxUkIQ#>e?TWSv8RAPcZ%%eHOXwr$(C-DTUhZQEv-ZQGvye^&Emm+M?) zL`K{=$F999KI<$>puNW2DI@N8=6wZ25!IG(02D3izDSl|<>0+yem4NW90_!#oPdGq`7dtG}SBmrZ&s z9D=Ce13q3Zub41;jbU``sZQESKPEg$Ur#C<7{MQvjUZroi?+*GhCc$2N?xeRc@4#90w)hn!tJ;HfENMxf1217o ztQ~P9d<5|Y=hL!o!?H9Qz2vETAemGA|8IM+dXZs2{_pJnOYA?CwSW6L6GIon|IKRt zZ>anl$J+jI^q%|A2-`csq-i+F`y!M=Lf2FY>xOjTa8Eu1OeB#ynsMacgk;lWhu@yZ zHFEsM91vds^F28vcXu;4H$86dDS5tklJ*U$2I(lNEBKjSyAlemg=HbN&F0Bsi>_{( z6(adA7V4$elp2jZk<3$3SL&OkM*q~p+CX%pKa)$9)J&V|CYGctN?VgsY?kEC4VD)< z7R+x6wxZj2w<^RH)R^D{(jBywIxYh0Sp(w`T+#htOn>;Ab10&?A$hSpy(yN!4Ey;V zx6u6eA!u=7*1#$>dStZUOJ_|xkSP0iOWFYJ$-8WGmZG~#+j~-A30skopF?vA4mdPO zB^6P16B%IMAZaeIn#3Y&L|T_$8!aPw(okKuN?(=6!)hf(HHr25+foHP=}7%l&-`DP zf95H52IRGIco|@9C?r0h%uEjXj2yV{^M zWgCi%Kv(jIvnu$M=`Z^SN!c?#J)_TA%p75J=NIB^3m=mk@ua zl)ynBT@yW`uTg6CZm)}%iJO+#(RD-mC(rArDex3ABdt-+8QvPGI#CrGce)z33z>me z6}tKMFG7*2 zJO)r=J4{5PqVR||u}`xM@{r7H-E(q+IWjR@2#quI0rnT_{g`P>1@S#_dMMBp(F68T zSGfrvh>)DJG&-e5qwp&drt@rH7%{v-ER0)XAUbaO#>e~w0YKGZL=5p?<+T`d?Awc} z;#7X|jouo4mNtUyPD%of)C2>k6o63XPZzWZR;`2*U$(5*(8Z%(Yd3cJ5C3lY^!{gk!aTZ)Tydw~*7Re`6>_Y+1{qKQjfuJKr?e zjEw=HNk3wlW{#tmS||1slnRsBO>2|^4AL_bqdE!GMSyvHu)9pORMaJKdqB%&5EEiLzc77$GCiILH%sg5z?MUj&lyZ=s_j|eGDXsPndl})QTjcl`VW+rq+%}{Dix2JqFba;1NG9 zX83{v0n0Zz<2QC%CQ@9Ui$vz72=KiREi{hpph!a|VnlgH;BHg>k4cSZ4s47V6ED|t zp*+pouu&Y{(-9GWWB*dr=Oy}!X4FSB=ry*FD0xj2(VeH*o+EI;I_uXLI9VSf_XH+o zfaN%ktrO$;IzE@wwqfPCto;}W*keeHjUzqqCbnjI&z!``x*4>%(~4C?4o}f_ZPTS3 zl_DwOlAv71o=c0w?IjU9!Yq0gvMB?A>_Y!!DtR2VK>Jk^rkfV|EYJ z%~@V$%ylcD|14$%fXs@WSK|S12yP%QPsByEZyAvFo|alV4hi1 z0-MK;xlbtb68BT@q!nt@PKZ&7a1h zuX7*#+v!m63H(FddQYE) z_z;0RK@5b@AcX3-YmmHQd7fNJw}UDK;y_25GKn>LkG+c%QmDl=$&WO4(BVv8n!3ir zWKF$S;Mij@{7e7>P8&+E{D$q}MI28;RFmcbS^2ma8`1}V?7u}5n@zV{So}^-c9Sxm zH+poa=$}-)mh|mk{s?eX<4ZLFE((_x%<5KSmJol#(BbZ{Kh@0I4wi{ZIjYGUAV^&8 zM@uYw!wE+m*1Jo*(OSjLZ|)o^$fF^svI=jY0I?b+)8JeO+&;#lCLoApgNY@qR%58P zzrgT;nG?)>hnxmI+fX-g3;X+7B^36;#&exMd`PnlYWv z{*94wy)m3D+2UR!YDntxqS5|=8OA!H$V22y6nMF!Y|R}k{?P42sQdYPM<+5Nhw`r5 z?oEalbvMH1sfhbgo56Xzv%5C4;trL@s+eP7)Fl}{|>ggNQAPqQ4=CSnlZ zltXp;Hb_^MJ zy>&Q%%6xe&>3sun$h7{p_d~_B4DS4j;Z)8~?#CeREziH3=j@w=Ry4cS$2mu}ny% zwS}V;VvusolS=KhKQUyxnR9_$!k0A8ZOuN#L;r%76@w$cdB#Kj98VLjWTMQ>Y6ize ziY8f?A3a$%^5zNBo8uo1`oPGj>|QExJ-o49LmXUIgiZc{etl{;s)tL=(M702n1v6oztaJn7OM^K)G~pg`GJ4CCt^5D*RiCAhaGzOib{IR>6mrHMtA;A##+S z+%n9oT#ST4sKK7_ON)#l_Ld(8tgwobs6jA~sA?$ID8-?^QW$JFnlxMfj5QTxtgg@!P2FDqtKOrK{p=T(XFk3HqbJ~s>6GC?shWq|COB_33*(h& zTwEpO(kPQkmtX7n!Ejig7d`_DK!8oi526aSigP+l=_#DI2Se~hguCoI=7P^`v()7e z+Orhqkhs^Y@ShZSzObb#ZeWCDFh8GkDW(DcvScVs1g?=|lSaHTRt5)uR}B@CnMRrZ zrWRF+7TN(Q+bBRTS=BzeYWOMpyv?^eox<4l!Ic0?!0`M9ZcSH{nY-vA0E|?X(F={+ zY=O+=A&^%ZvF&9Wn{Q6XQo9GAQy47;vgVX!BiWAka1`bFj~%&(91pP+xq? zOE^ukc^$g#ulm$r^7D@-W{k-hF4dbLoe)kcus$34NXvW7AWHA$v5qUD31l>mmuO>g zbGhvh@0PJ)9H|H#Gir7rAPLYlyO;j+c$-BSkzL-4+-K+^b1yEldfIZ`HK31vRLzTm zoD4o7SI9rk?}u@vvpwP{`H!QYLMN=2A9+!O(b};?+{78F62686=?ZE|kBmGQ6+y>E zyqouqurv=UyiI%}nWdY;VknkCX`%CY=&3!s?fM380rZjyt8&4N2&dLJl|#6-`UBpO z7-twpC?KbJlTKeyk!VgAa#lSUR%p2y9BoWjf>rw@SiSnDgtzQ2F1TldaRf|NsC84ao{DH@|0z_+DeVYWP6 zeoUtj-bCiPti8qL2vQPGtZB@ra(;`eawb^Ow3xizD+ay3o$b-R&Ecu=qz^8Ip_8$L zS>hOiLYMsQd1ajI0v}$6p1o!tl$14uXgf4T%vrqU8 z=79%Qj~X+&p99LHBG1&(wP%*OOn4y=vZAmBl0sQ2Q=%QhTdLGH<2TCh=sBR)HN=E_% zrv%0&bJHO4dQ}>-zVSnj;9GkH8aO&@ve)`tnB+H)GlD{|ac2rEI61*m*G0Kj2{45K zvv#JKh(@(tLFphyhHV(`cMWf?NL{LV_DROxr5f*9-E6$ z$234T_Ao4w=v(w3&H0lO0K8}VHh6DE9=f0Cpy}8i4@gYZ-LFA-$S%6%7WrM3M$P3i z>TP${yKd`@ePTO_m5o)+kpe+H#hGo$r(z0tH<0h zf^ZGNG|1iBU1sN{B?BazpLdcqxpR?|T{Ebcn3Mzl3-GHCst@DNi(od~EV@kF3I2dOATtvr6t<6=<6}Y`pgL8-0 ziZ~>TzY(D&E3xs)<*(m1FY}^5K?8knWtR$6aA{YWe%=jcpU3^+dxyj*lN9oR$z&q| zdUi;_5mTmfYHaUa14{3q&xzfvCSjq;q!SO1R4pUEj;&ICR$r|*&SoVyDm%QKH-e? zbud{G`sc|tpDhCtRXHC`2j6ct^73G%|tYsSTMa znb+s1XZ>ASLN+S#JU@6sBKabI+2i+}bi9o6BP)F2Fb_IYBq*hD?Nbvebg}bS<)asp z%loClFg*OmVNjoIT;SnN)vBS#*Tvc09RUx_+rZnn<4z!O8BegrQ?~9MySY%Hc_2=9 zQ!?|NGA2&Pbi08hRmR3G`X;tVin zZcQ-#Y2!FD%u}6IG({uLOi2VBb>dlUAk06Lk0O|;0?gDM2R%VoA!ozM7U62@yli zBel2EwczoW=_+`kqH?18N%^!NX~%@u?v9H<)-OCO{rF|Ftp|XzVY%$Vym!Xe-DkuQ^xcgrFD4~3}Dhx{+1%YOdWf_e3Wk&T!G^gqyqI) zFa!%F(*WFp95T+401R4ari36zplJ48i#L*Gl930k>^xgqPKL?;fNEp&VfkF-)Vy6< z#b|l16a8sh?m=4+jVX6BlyuQVtnq&M8v1Oz?UzdOjhVf#a!YdE>jSroC9}zN)?k*k zK#L&bx`URT0^<8M@3q(u|N;;Fas_$ochka`AO|-1W$;z$ax=G{tTES7Ug=h3v4z%CR`Q zVI~jUodTVyBm~mF$ClA4_;gAI>|Wt=^=^&s^3M45V1_@e&#&|C{Hti^+TY!!!3jXO5wZhR+5)2g93-s{w;u`)@7M|A=FpSHZp#S!yunpcHdO#> zM=3?v?a?9Jw*uUj`c>mn#6Bp;#54$R1dRw$P+Cw2!?{HmdE0KBM}9#OPeI#AM1}6M1|wzCtGz4bF$Jb+#4pcvP#vYbXTXF>WJzf zy^w5!D%5INC#4$?lqarSuyt#v!^OlmmWFjk+oh$CRfq63mzhf_Rs|rdrCk@143m?J+OQoGKkN6K8Q|m0P6x$lUnDMNU{+8Lu8&}fSRuCtv+pjlh91<+? zcraV_+j29!e7!seJ2bykGgx)RcD<(3<}y{hm$MU*n4itl?91zL5N}I}Ld?P0G4Q5| zev3e-zlUz^g=fS%ub_3v%F{!o(B zSygN2OHCQX1y?HRM5tz)a_0GW0svGxE!Xs+$)KB?KdD1JRd*pb=D7FdMD5I$^f5cO zq_a0jP#06*@~hYJ;d3e`cm2J`Xm=NQYL5D6w7XDBaW;>{OR;W!Qzv_t^KkTW6 zecl2GrQk4+*Pjpipb{Y%UZxFDv&eUEZMe0Wek-0}uWEuBDu1t**lN~2`_hQ)^RnrQ zxu9rJe)Xr(5zOXZo^!*vGA~vr%!Gx`*B3~&@2FWIXVuHvfU!$^QKnN_J?45@?x_h8 z_9{TF6=UbWw>1kLzOd0?&cU*NolDP?1LXS-h}rG5n7M*F%=Y~UgOAUIu0an40ANf3 z0D$q|_Q}-P-pSDA|DL#E{SOEKWm{jcywYd5WRsyxd2388rkh1&X0M`@3_X#%ri+dzbks`}+1 zgXgnqGY!x1W~*IH_`mNn)aqc7wwlVv9>2!e?g}S3pc<`t;1cZ*I#5Su=V4%=5k<9= zm%d6NG@)A|h6|llr;)Y*PXSVVqI2T3R{^K#^|sv<;0#TUJlV(w>xhxi-Xm;kzt)Bt zvgeLgJD63EWMW1SpY()nPt}97wIf|Y3K$}UK?!Qw?L{T~HB#&@MVy9PVM?u&GjoQF z9)|F#kF3x=lFKNlpp3s7ArJ7fv=KBDcKPhbH|P8N?I>iLbei|xfVM*AWaE{KnGQ^1 zZkNd+PoyMx(A@EBI8=P(jtf^xpZYQzei$!Cb?|LujQfRoAIF01H)O4KYj|s6ObfPm8UF6yr;m^4Pj__tvrl*X-uZtIbsxgA+o)85 z7P=|$9v{cI_&eRb-R-?j3&#pJk*K5jVmukuQsIH~(&(e#lqqV(l4Db@RzM?j0QVR< z^a`7*-}Yj3zb~t&Vw6nOLDDQfq%KrH{aWMCfx<>t{Y)@_N5NNZp6EEd^u<+?SpTI& zUuL`!5W)PB2)(&%eWFn~@J8>JBNSPsORUaE53igk+g#ctBuVhq9P$@`>!@YJBb-_WC zo=l$`r}r>R-P4o^kgcw-l$e{Mx!~~^%KCGL`2%cI0n@A01d9Rc2uT3*^L3Q*o~9K9 z`}K=5xy#=i=N@4W3BLEa3x$Mm8W)P-V`HJO!F6Q}oP$BM?&q9bpaxCv*-~N+oOJG) z?$B173A#l}XFQnh?ok=TrqoJE23D69X9znW>IIZ&P0Oa%p$FOzte@5<8S$7@1GO0} za)7FgMcZTVt0H}AjLjyXp898f77_&YrjB3F40FO!hFwbmp60tM_?(vnP)eGuL5i-U zARwQf3OkK=uR(e~<=AWHM%Cl)1O>p zPB~k?beM-DqueL_xIG`oz2fWt%>CUzt+uZ)QmNL9M?CZ+k1A5()Awnn;V5KfU&=0I zLfvFj-}^Go-78MMbUUS{!1A9z7mC0|u29$8z{fzIl8q~aU@NW@Y}cz@V4F@^IufU> z;CzC)L^|?c=GC{&_qo0Vy1*E)JIUR0a@oHM;v z_qv=$36cCtO?wWg)>w9D_kiQ_N9*GJaUH=ftJe10x1J2{!ip*B!&i=&JIz;U`4e1P zf_|7$n)y*o8tvPXKw(l*()4$K8vCr?IaY?>7unaxkGYL{g<@h7S3L%n!L5sWGP|-x z1aY+}8|2Qgj^irYK(MtasM z{~&JmrdA4$0TxB(CfJf9$@_*Yykx^Q#R!^P$FTDvL20}3Q@6Gm9t#`*SwFzC7zYLe zY__Viu$)Y^IxoA>M!-K|OnJOrc!G@7`$z$Iz7b?;3~bJ0n&3&{D%nk#ezCs@)@kd$ zkZtbnq--)tmW6^OgD*wI@k7oDMECX;`)T+a5_W5E5^GdWC$&gkhl0Da8;S#9y}ZyX z!U#9dw2;GwsJBq;ZY&fSpT%hotY27np+zhu`P!(w*3filYIbY}2xsMG%a)8;j)|SG z9(NFEFhuD|#X2T1;>kj4)rR!qWuG!JSpn;AjSTWSNysacn=JOZ&{LtBs}tjcl3iSq zXL-#R*l#*D1?!%fgsMVEk`r&7w=PtMN5+dE@2h?*WV;V%KxLl`J~-|$W%H#?_G$??%UR3WGG{4y+bxjr*-G(| z>cOkC+Mq()M_QNMU+s`3RP4OoK*1?r-jVxC%k}M4S_5<~>a*M1??zph(nocsViIsz zk?hHnl0Fa_FGq7q$rCfbMR+jihl{k+Ib0qlp{K5whS9&oD?#nyw&%B+W5E{4*mR`K zrYiLy!E@t?>&f%ndXBEY*OGpN$G=y|=z}`V)QR6YyEhgZ&FN)hpC8o zdM|T&!LKh`&hR?%cB^|!(BSG}gwRmL!$Yk*k2X(u`kbkrx~wBCn3I)NfHQ#Mcx-VG zFQxQZr;P-HS^BBZ0j)l(_s%j4c3=tnky}Nv zqvCkmmNJ35rgkv;rdQ8biep#En2Y~pxiftS$QW~mKd8evp&j7BKKy@(+(&ZNo8FJG zrChzj@D;0sP^eZuR|2ba?H|J9$CR_%*WL7S2zUq9}%Pf40)g!pEL!d(;kGXh-tfX|f1AO4kI@r8KuJEW$a9tu^? z^g)MAy;3oHwuz~Ekqw1o$-?2cB+END3e~y=MtOvOz+`aHI{xi$^&Nv)Hn+4ZDjle| z&>bv{EPPIjA|y38gcNaI?3Dg~^q-8@YmU?RBpd($Ci{Q%%l|T3rgm=n&ZaIdmUia< zOa8>Rjyr6<@A?DU^eVWhc4{5zXQA6}f#-e(>IvvB$%g@*vr@P+J()CP6WIk$a`+eMvRKgTnC`OtygWm(~Y}cA3cW8Co`e% zLhPC?*geAU-7T74I}`;W(?OoalTk?k+5VqS#>m?~x-{wZK8<;)^pg8d+bp&p&N?o+ zx(Ta+Jx+k=pl8p>94OeM|Gs6&~dG+F4yg*(ci7FK*kLwE@hrsaC=*-Y@A)g!R35gSU9CMohLk6Icc_EUjkyLeYe>pp{$A#!j>5(XyX7U%I`~IVzUr0+$gk%XwTH-V zR9Nz>V}3}h<9xmPJQ9pRn-`tyc_yruLt5poZZmuZ8T`GRCZ%SjhVC9=*+kR^>MySm zrwOMrJD9@6n794@K|EGRApZaGIA|Vv$mY_NEv5-kTLPNvLwf{&=zlQz$2HI zT(}t-Y-$@^99Wqbl(v^YFoH>8*x$d6R!qD5 zA3nk>ijCHs!UYv+d)6eL?wrZVu3`S4v|o5)fosSo8{W4qK~+x*-L?2)7+_kiVwl_k zOo}gyrg@+~(1)lT4k}DG*g0_hz4Zo?SjF?&PcCyZDVzp_*eOR%iYH|m4$7fyJf^md z)@JS4L!4k`_;mY@JeN3GVX0{c%3z+OSU*w16s+OwZEcW6yv-)NY&({lc#~M7j}0`0uju{j zsj8ABV)})IJbe}gMa@GtR7ZVn6RN>}WV1e?lFS$)D6o8Zutmt`&4tDRei{J|L7%1PGsT0S{)RAiFyp+R-RlK00Cri9#YL!4o5a4Tj9EEySeD&S2!(Cyr%(N z9fepSp%|a5G_g7`r%9kNGxbARGabSDS?BeQC|7}ppE^ajCX8h8%z_mO6FGpwDFo}v z9G~)~7X!grTsTShLu*)co8D^?Z=C+dj31+b;ctRz989rLt&>|qPSo&i;s_6F5} zlPUxpC+f#1aQo)~%N-ob^|QgQC_yYgbZazPGHU`qAZ0W7EJrPZ9u&HfqV z+@y4kuTrnG3H(O7pzheZzo?(Pq^nCU^jx0!itTHheOZQ%J4{PGOfwN(U}ccs6@xX|9C&OWnUJnIb%ZKU9pet-`c??+@_R4uB{E z4vJlE`vZ)fT6F}Y=8<=R^F)MjjY)!fB?W|CfHj8ivw;J|*b?Vbmme)6%QvF|man;> z#c!Rb@x@^^gpg8pgwGZzcn+Ufgoesg@Cc6@^TJ32xkUSSempHFDaLQi1SkhP+3y(% zmsBMP3v%$n)U|F6)GN-+T82LjWaWAqs!8xwHwQ7xaeU=&GJa*#byX-v4pBWT;NeCJo716y4e}{&2nfeW8_9be39bwnnOVffM}B5OF%3@4zCttUyt=s7H4G+k6qY!Lb9fU!s6#_3t-;$186Dy-Y@KR66hU*@t8V#JWi{s!<;!Lo| z`t8Zcr1heqHrtyTy+-iO)1N4M1ck5ZsrfxU(a83opzE2Uh2F5~&|PZD(Q|bU^N{}p z$;{rq*8wG09~-^i)hVqA1+fBi!F;;FWHQKXkO>vD$rY*oGaB)upqz3XBS220M~;vx zWb2$uEZXYQEMwN$A=HK13M1bXpGlaxqbgrXoV=4R&GgQShE>ZH3)O>wmyHfeZO;G$ zjWfnBxfAGW(utTle?0>xqftPNZmh}^u+$C$s;%M_mhh?8T-byY1e-(IShrGiS3FAf z)Gkc;QC}TMv9vvK-%zk^K~#)(I7%`-m5;%r0x=5=>LBKvJc7wtNU~6Ti17LhcO~{G zX4r52-uOhzGdF_JA)!dP`to;pgf~6XDPBl(Q7uqY$$y)V!ACxV6is}^5Z=-wNeyZr zo$nTwm+x3wqg_s67ZieO`~>*tYVod9y*ne3#KhNq7|r2^xRBK|mG~JHur|z%u>7=_ z2s@^w%!j$GWd%P%Pn!37#(TOAl=5|jG9qSquCG%fr7w;6oTLUdX9xwy=qv=qY+Bi* zkm~FudM3z4%slbPi$l@~Wd`BNpbBcYDP%E1=M8_86*$S6X3L|eSrq11V=`OK7RMtk z_+Dt@vBNvp?!VNw9vxQ)%`Fc7wx&Uk$9m~(EjhhxgY;L6P=FK4)Y_@V-qx(e z`h7`d2n;a%8VVP!w+y3DvDN&MB+sLy#|f5P4cZ46cblnciugkLXIIMQ7j7lD?0G<^ z;FS6e49yLFfGqLlFZssUQ~p|AiBQe~dbc*EA>eC~-m|IN%vQO=R(@W%7)nbM?Aa`7EIK$d`hIgjl;pL@ zTke5P8guL*xv&(XCcb+4@n6j5=j3{%Q2@Ks3i%4%4!@~TzdQ{*wAZ-3U~B-t5o0$m zg(gF~sKo1FR;vG9PcuxjFi>l%uq}sV)p?j8S?Q-81p%i##5kmIeTpcWdQ=1`j<-6% z2`lR|1(D#~!QvGkDp*xD8rRp2|FC zQ_0KY?UI&boM-fKl(+Id3%7#5n8q|oLnu8%5yfZG^3q+Z7w#<=XHViF!nz7fNEW(L zoanUKLZAuiYP#?@p^f1HwDp z+*|V0$?TVNJsa}wp_?v-pL3dyZ_ajg?~(ssj_MP;4fM;Er)a`$KO})^GG&lkpUZi~ zSw=Wvi{Z}x3$B&cwaux1;Ca+cXcs^;x7{6ZV&|pz0KQx6_j#)&Djwf^7INpkD>}}Y z+z$Ree!5x#=a<|1%*+Q2w|;%svJyCtILa6uR;pYgEm ziPvOo!>s4l(S<`uO|!4Lyam6oR94loTx+A&3?J^mU~Egj&*mvP3!XTL4D(#;M#KY; z0iV0W>l@yE09_5ywel+~!s*3nY#K80T6hNUh2!U=Dfb+&k6QTt84h;m65; z%N3U9k|NkG889E1{B>f*+FrH*rwFH&qcn1X7k2Q(Zt+bcC-tNu3*Uv~`9C;$S7w~O zZ7=`;nSTty|Hf2Iot*5Q^xd5d9UM%Z{^uvSL}S~2lMUg|tG-|{d@`4;!0Xuna3jlQ zsGIFV%cs9NLZk?}jL8IX1xe`sudlm!WT8pfH3R=RnrHXz=k|hClWmJ>TdA#?^|oF5 zwymo3OtSXx+v=yZH@8p_i)6|-@>PB==V$9zVTi4MY3Sj8lR<#ycMe{56 zcX{$GC9^BzwwinEwvf{@uorW=NjG)W7*$ihUn24Ko^C(g{`c0zkMz!_N;cki@Q&rh z@lmu?kE&;l!}sU`@OY{! z7w#XX?UJC`knz#V!P z8>IqOD;@#;E?TpR59{k0SDj5T(G%e3+W6Z~@LnC^40dE?D!_RmcESTr(AF)seyw?n`h5HMehZD3EoXl+a0 zT5suy@gFJ(r^e}(-4g6oHs$NBTNd2_>RrYBb=tO?u;WJ9C=dt3Mbk5jla-d4pq%47 zC7a-o?1Fjameej&Qb30nIw&2G*&+Z_kXp>7h}Uykn{p%antD2;WBly(;6&$~Bi^MJ2I=w?EU$*W8f^~zOC>OMmW;YDChXec&o@e*3p7@-dz zHXFPj4s5dbx_O&bx3g-D<2^fB{dYNz);^^s!I>Rh%GlZ;2G0Ix?!`T9tr1 zk;-&>ABK>CD3O6##+WvXe$AV{7qtHjv@JZBHUmoQ{w@Y8jQ04 z4`YHOOCuW8-m5S;t;u006UtE8Nv$Qm&t(0}g<9(T^vjdio-gMZnw;4uy%{@ci|{^S zkZ%bwjR2Ye>d;67NxA^w+Owkq$QLP>03Toqq`y%^19t*kxM;UI1bn#lWIv7vaNc?F z!GN)pzK|sh1qr$>N+EdC+xVW0#>fQS##F%S(%&*u~|C@qLHYG~^B z0JtAYMk5>F>`(%u3%_xx+A4eN&cGftJ7|YqmC^tLa9dbm05|Zqg3GBniw7;KcYL)K zww)%iDd?;2%e+;O@rdf?KIa6^z1A`--fb(L`$5ApHW#B4Bve=GzWL&+6MKdjD+YC` z7@Vj}Bw_Zv@<6A(_wRx}2ykgvp^dm#`y@8;Go`^Lx8njb2g#j!4mAZ&rsl`Vxx0LX zKnjjKd&0eUxBWkj@6q6&0E08=Ve(p2x+51{7!wV5U_&rs0*~E`!2NM9Rx%6T$Mc{K zExWyB(~%_^{4dhKXb$TmC>5LF71Dd78?3bBJBQJ0-2c$dp342c2#XLLnP72C6`eh5 z3NE;_W#wm>tSXcHjUiZRad?F1zhzqkVDp@JMDc{HPC8cupr-v+7-Y`rvX?-2J1M++ zTArCn7rl;h+kwu~vC0UXxBsb&D2Pqf2LCiGe4_t9-Q$1j;{VjcZ5>XJk zd>eWl{2M!Ve5X6WuB>gg9viGH>8K&2f<+`-XJTnO(c==qpU;{2LJ_58+D$+&TSXSM z2~RT)9JsKfdgp{Xi9w^@LdyLrS2_~Tr95%xYHj5XnfK|xx&vjk@vqjov@-8wzj{3p zdcSuk&wpm=`|y*}*1yxcOD(0$DY28_ui6q#8$L+Kj*L4-7vo;7-)_sIPuCSkuJ{Tv zj_!|6ZjsUX_eZ!&UJ+@D$_>QDeQq9jc!}=j(2|+)rr?$QUBtzAk=)wkJf}^)Q%)71fiwMDj!~KZUzZ{wbMyjEqJ~o8)?Fl+kIk6siG6 z_h)hIjT5OnKG4c*)*nPeqfO~-d6T^^T~R-dj>@Q)-36liQNMoHjQ=su(62o4>N*NE zg|4$7-@~2jv^vujhvh&(c-3iC-Je1a9f~B-+74pSRmLp_s{`sKmC;%TJ$-uuL;b{pzyg!Ga4Pp3;$dpy5lMdF(3awWSv8hV8Mb#%eHOXwq0GeZQHiZF59+k z+qTW=Kf6Ek_8Bj7laaXhoMReW)E{;CaP>J|1qyeGg!k@JsM_fc%{m=<7Z>1_PbNu_ zN0B+!v+<$q5yA>-GCL=S>s6jx0q%1OznuW5g^*p!Mai}km)w(TNeF6HD+Az41+sIl ze8-Ib#Ob7#glsc*^?bAMP3?AEQrV*s*4uV)I1B=ui6TDN(ckl=UIFuu`xp|UECRc3HvRX!u&!86O$KSI#N7MZ83 z2)?F~M1|C_UAC+`g>bUIG_8CW(*bPFqRidFX|Wh(T^ZQfDy~973v~& zH9|+Um5M6SFDRmCkAmEw(x-X3W)tRp>dDpm;bnmL_|`xhGJScz#)nv!7I`XX_v>x#vq|H|I4qa+%Xr6+B^rkE@$`C{MC{16 zGNCE)Qm+auWIb~`WlN1lYo@%mCo>YvI=~jt1sS%2(Is3UhBoY>x6*k!F0IY4goA9a zkwbXgb^iU?jVypF->O3DnJ|`3WD_@W!||aMLxIMeQ;ma}efLD^blltl#Rq&1kEcG_P5<_oHa3It!o*Y>lI0&G?{qm&Dq=AgmA zN@W=eawTrG8$h+ftVzSWrQn>Z^TVlAWd{ zG+(3wu;9pAD#n>#_{3e^aE4K2eSr4I?aeW4F)L|#c{)R^ZEH}*gyJ@@gt26~(>XmU z>SPXSD#98=Z{oc0zH_vbeDC7S*vw=s+o58t+4_Ar`O^%2YtKM4$A zqj)(Qj`HiVFI8wvwbidwowe;@mF}Jp`l6z6$5ikSq9;5ka(XK>WoZHjug3Bvrg^=} z39xydgW2F8r(#iv9o36M;8SE3ja#O;>I4Wp7Y1xll!?W^n>}Q7hb&1cvOr_saPX77@V%vu1)aMxs{+2*aUE+YKxvx>Q(_TRC+p`&H-$Qf#vxU-{YqO8 zC`1;%gHRp*hk<2{$SJ%ZED==@)W8GMw($9J&5J6_!@B$U`eE2xV$^cl@GB#uk$A=0 z7w{{o!+B#~`cMKH4qxnJTg3_Mmm0d)ujUTA7OV$KFN!4LfwglmD#JwFj^*h~)Lmd% z_#1cVNgq(z{$p~{VWen312;ukqXe6*voY$zt*&%h3Ci`{BObflsm8Ra5>CdaaZhvL zUW%e>xYR0GF9XYsB~%T@5Y)YdP#46n z2u(Iz=w=O(bIY~lvLNiqq57w=@5KOCh!xLqC957as_Z+sHccv4>|o{R5M8F!kxDJE%fc>sWMD zP;WDLe^iJe(#+aXl6kcR9ME9xX23Zc&l(+!ZKe*ofYNrS71Fi7Gj&0yDS1G(`)?$j ztD3?p;3S%)>wH{_P_vJsR>3r?PLZ^0JkqRhd?Lm~s)!ufnjBL#)kMw^qeyz+y*^)o zcaO)Y1uKv9h}Iva%hxe3F7t*xI9{GV62SNy@+F%!&rst`A$Y5qn?v?VFCWkWlP(1i zt(~aW zgKw)>_m<+z$mMk)snd5+FU!jLK;0<4Ec1gpq)r<|$n!77Ip_hls`Jf8oq21xy` zrg7xp+=K4(X)g~2)`?rvjiHnP{nUG+dnT?K&F-*(r=+;sa+fdk7Y=#!V;%fW5refa+$$xJOwtd0M3Bs=!G zcElD>-1FlTje7zH02fow-Q3g~>0`voc(J!u;*!pc;RY+52Z=O}17IoX6pS#XFw`^B zv-^AWP{`N7*D;^W%9zU=ECkX~+3=r_sgkL2V!Gzvy^hB9O`Oz^Ze`(R$G^JCvnK6k z!vZOZAv+ClNyr@&u zu6J9E2ha2jfNz1n$JBJwYp0`^QC?ge(_7a&f34gjx*wO%{rCF2o08{~x7Vy5%+Avx z_Q*H(kPbh<*R$H^-DZWa-cse?rRE9UocWGfj6VzT`dM#dEUV+dyOI^G6bilxp~z z%{E7Se7m-lE#}LXnLb)Ta2;PazADz6j+~udrcxChH5XvuLA}QcGIav`DLevU4}nzzPp$@j4OzFvUNb!YdnuC#7?I zwrI2S+30Tfc70Go1gutz{g8udFP72X)q=uTwWu*%vIPQBb7phGaQ~@VtBK!!kxB-p zF=#1{bjoPnNS)Kv1&U*_F(@te+PSJVhr4?elh-A<=hkUjM`4JiE_S8xPU4L#g@@s1 zTb+0pGDhn)P**ejkzxMUIram^lj)nZ|BtCnlbE}P%{NC*KlexP6ilS*0rF&q@Y zqesWq#^kz4Tw-GVQD=!fR_}0*OTMxlK-T70rEd1s@N2xHp$=Yoq{avUDk-v@ZDC=Y zo*3bGSTDAKQmp1=LQZ~rATN2yUTuJG1k)8rnJm{qqNlk?OX~_&mG+l50tBUNWAdYK z%?kkF`}2>2r1Rib@ibbY`FR+AT)TI^guf^~`L&yB+0C`7t7fD(A>$tYm&aq^LZm*( z7T{Umq&li980t9`%5+$z*{%`DluRIVUGs@_Hp^w1%>!;Mn)WcJiHEbhT7&rxM} zQjH{|0Q|j%PVlHzcfQ4Xbpkw!DK?x2zY>1(+4newrgfe;QT(Al=690%%58Mi5SW+R z0O0Xr;})Ezk#mk|7Y)xd>i}5dG^@eptA}P1mPWr0gD&M2%-CJ`KobEd0?%?D9~}&W zV8?D_6G7xFd4A_AL*WP;CH?0X`?>!zP}}hf5U^zdo@|O+KBLfGr3`xSgUm~>rB%bL zGMX)Set~Uz!W9H-v!lGh2RK{Lw(&a_4K#bT9gS8E>TbnaGS3MxQ~ilhG9Fnmdcini z$04n7w2yPX(d7X1PFb7oUdB=RY2mbztR1e$R4coX&U=br@)qw?d4CENr=Ykc1r=pa}=``KclsN4A|WEa<#;yZoZ< zM?5B9DqbjtRZ?lA)vxbnAZ!5y3-j6YNQATYKociONB6k(SSn{OcSSTvlgn~_XCM|| zOsa4l|0F%IoMQ79mQ(--ZnSVtPcc!sK zy&Up%qX)Lz5TOn5i%wEzArnuE0K&a&d?T>mKRk6%ZSHiRd-d?kdinn7sl$DP@>1uw zO3#oX4D0KL9MYux_9Ut<-_jbReD(+_hTYx9*`Xv< zx$FrnYa_$r;448r3y$-Xbna*O1Any{l-{eUxe;*UX-eRpR*tZuD2FO5v9a&vu}W>V zR5HGUQR!n{L({Yb^4ECj0P2U0{PYC|YBe~xa?Pubp8$%nd(EN_9-o+WuLm%sLtC`2 zCkQ>N-DNnWK|@Y016cxYR0l9Yi^7DyMgAii6@%;rJLOcZ(a%qS$&ja@QhxmV5%=3v zai09NblG658O5nO=p#Z~kuRuRKGbrEqBj^gEH1qkw{9K!CN%E|orzuPDrP`N^QKM} zP>0+vP3w?vIUk7Bty}mIC~t7KvrDB2T`VRG9i>>db;pnb%U;gN-+2ORoNq-No)?w3 z4{8xLH%wWf>f9hiakx?REFM#j_OsTw{bQ*^$E;Z)2;P{JGW@IvAdN+7P>0oDm(T9M zT|8_#rO0P61a*J5;kwU&6+sMLF)6UK>>HH0T{dDD=?0}tdjX@Qgh(Oar6j{UQQcSf@>#BI&TNv>}| zG?t8fW)Z2b*$H>b5VjGK8Ax|9ov$5`6r0!9f45cMbRFA|hdCF>cnbjeESK##=c9fr zHR~JfbS#S!-ryQA`3f;(6H=B4kk1yA1%j|G> zK+XFB^ed-rnylr{z!EK5{^bI%gem=^O@AiZ3Y{9bOHO6I6*L!6`%(qV(_W>f9(E(` z{qZvGG?yU$LVFFm8_g|I9a%1}Cfo7yN5(9Zz<*J`2F?fCO%;kY_1 zm)x$DD+8YEs_ES0-vTV8B!Yf?y7e9{6^)G)Ku|~5J2e=Ai|#*^TmGe~d9%Jz zwGv{=p(+;{Bt?7C?fi^DEFMDr7bl*=tYP|$sMzVk0 z;O#cvW4_8y*b62)awdI&GLgjdv1W$d)^+mpr@QrlBA0znZYoKFmq<^37}W>HgLysnyK|=g%qL zdAY$?`<>tDGIQ%9-+ZU0b1u2ucWi8KL&|IildZJ>O}x(arZr^A2y8E43PQ9Zmr)2K zV6)6}Q&z|(zvoU8Oemzds#Lx90lvHTZiS)C(}(=5Ud~DF>`d?H{?qiNQ@YLUQzQP2 zZei!0TFDsY&qvPB^WmdfZ5|xYJO0ObR%@*6=4|CjyC#q+wA`#nEx-tYIz z(-&y!x7zpF=3m{P-9;zceZO-vGdnpy&mVE1ce{^yx6*%Oa=Ha@dY9sQ1ohwg^uMRq zp@Sc;sI~SsPwo8NjqtF)^t!yg;9&QN7Xuzo`GrdLdcJ#=F=9r%k_796) z=NpX!)ZB}3dhQ_sLe~7A_lY~J!2YC@fkfht6T7EM{22=^7Ab~V&x?y^7jV@eSX|gj$+% zgEhHmeVylePV^ig7m}>qfos)zQ+Ti5j{Xp-ccY4;`|+7nWo zxH}Oxj+<~h+vhOn0AY_9P9l3U1eUQ4h4on7VvZPHg8_*&h*@b@_*rRI>RxHn zJvrethd)x@^j`SNRNj3p_n` zWvKTJKpeE#=Z_D}Nei++HBY{)|Hg;VG71v=CF zJl0+*{H9pSB->XCV=ZF3Z^-jBs3RLag;q4EXo*Hg=$2>tvkJ@9`63h?P61+QNZf3R z3^Cbt_7zIqdAo7C@dCgAT_kSGEOFmD^oIT6V!bWB2~lo?ZD*@~&)>HXSJ+Ej8f~=u zKDh2KVCj6X4*gw#9z&!Ca)l)i8iw4roy-xZsSmt$VDGQ=KfLr6jx?gIu8o@TFXAK!mVwO%&m!La&nEtK={ZPx7$&5S`lj!2shqk;Le^ErXlg1 zM-&>yE+L)mC>`vLh`T`b<&YQ!g@}oEnHbFM?+)M-f;%X$=79%4csCFsb?xZlzfA4g z!LsJIbz=rYsq5x0;1dOb2AG#VOqNr5DkuckR1$uM?9Q2IGaCB)9qs884#IBg+z{Ck z0&_gW{15)N82Qy2yN%#K!FaNk(h`BjIdqAhu$ z=v~E+dlD~MABW}(^J+_fmcv}5`@iu_4g3Rd{L9wQQ!tzT7hJ`NR(WG_)kAy}?J?w; zWnhK}=RYzZG7Q1zI#8^yih7@u3>;p1Bhhom6*Cgo&Q zq+6*vA2LC9WZ#G^A%tozEKTJ65n%f#4HBe8;5QsC!0fmtbS5dq0f}5PTZ80m0v{k$ z9q>dDR5h>!@yRVyBAy#CL_Bdw=6+|KFLl)pkZb(Ydo&juJb}hEnwNvh`L~)wDvIdx zgUyY+g;MOPR6z5~Md$?<*3PW(Z@iHtqNH?5+6osE`JB-1Tr{jQzSkRJIA{Mo-eT&Q zcGG3|aia)hN}$m&O7F}dxUU1R{3*{~x!Oy3qZX1(QqkWm`X4Kcj_LQ=CgH#cG95&N zAyyp6Q^UcIQtj0it-4#Jt2USw)@!sKlJuYM5y}&4CdNwxB^2u-w`xgnREW3c1(J~M9s4ClaR$X9yH2273&*5yWwN=wgsjN5-Q1*+) zLN)T7J`<1PwONO7+;>X(6bdj_npo05dQhE5{fOX@h4X13vAISYN{Wj#X^~8Ni7G%= zLgjY-1^W}Q!+LwDZw&Sin$7A_Tp!6cIBVtd52#X{vre}b@iIy;h+k=tESrXOkOu9X zEn@yJZaESQc|BFJ^m1+6D@Mh^DqtJ>@0q*r%JX{kY;8%PEOQZhW0|O31d(~D!Pt4A z5p+O@!zR{Vn%Q=i&q{O1LuQLvh~>)|?_wy4IbqxZ2X%P%`K)I{ON?1TYH407OL{#B z)j*%f5d+bVTFgP9uq?)RhvhlOwQ8}nZTc$0O#XAYxZjlX3L!!yza4&7_OmUJ~xbD|x+H3=3I>uR9tuUYH9(Q1rVvJEd#Bu@YC3Nf+XAb+Fnp9*H^LWCq>F8kH`r(2$;?30)xY9_Ls`=ZDFh zDix;?IVNk2HIbTNQBOj6W8*|5?;|e!Gp`RY{)2;vCj}VIG+O6O43HL4ZhJ#G+8pj+ zD8^aQqyxGo>*B2ttHtQOSZ~%hwTGWPEli~3LSr_izz5BTs}TWXhu34mvmj2;RoAxB zn!-BS5wH5Z6DWx!)hhbMZTRw?l%-%|q;fv*ENfamJdQ4#P+&@4lk_ z%f*r!kG#nVUL3}%W@JV@f2Y?h z-mfNi3sk{v+7JhJ>ZP*q1c`tF9ORKQ&V>c_gMtx1kaOSUr>4~O*&OLyXDH-3_ttHn z^W#B`Kym75axjwo#$~Ot`g3z{>3(U8>{W!<)e)fR5eLUS^-C9^%m( zfnqjqt`O8O4|*q8aJ>4M-3c4~&{(yMb0$wwlRRcxg|$rqHbiOOdXn|=n(91KYauEcKO4>I&i$I-jjm+yZHFrthh=-9QMtQ4dxyfi z4bK3AXa0Jq9U}TW%i?WpD1N!;ar}~)Jy(WLj8+cGb-WPO?{5GD-1XjDx9YD?7<}vS zuZ8&S^Z9;%ql3?{P1s$g=bJolJR8E}p1q>~vDrG{9b+EA3}B)^vE(ltM7q0*L5~(X z;GYaii)cAHePLF6r=m&YB9Y!)+E_4WAUo^~gQr*XjH|QxWMEqHb-Qhc7nF7A=PlEl z(-S^JuCl{ucvm?yxo=dL8)R|i zQH`h!-$=+A`w}ZRlP;G~)2%@6BFaB%MVz0p~EKG}HR zf-L}H0lL#3QGfVi#$^lT!xjBr*_;M6+o;edNMN#JX_>3~NOUCCB{dT*^k<)$P6RFk z^|IsaeTT?)*&FDjHk)dt)nw@xmtN2n^+Q@yS~e6L&^4#!STUteiwMDmbuvDiXgrgu z;x_X{eWF1Zncts%D4PX)@?Xy3;ji0S$)MIl-4ZT`(7z%A3Esj9S40O)uQhZeiZ>0bz>u8jML}cWn$4MpLCFGb;sGrWlNdeAaiW~wvD|25&8Ty21;Vx zHVNgfWFzM#QVtjpjWxa}YEpS`E(4t8!Mtee=dd*WY0QGx0%H5q1Os+m1exHA(viWUEpPmM zv-CmM+Zr=Z3Vij^c>?m_PKj~a(?T$0y%4ERErog9^ae9X*YO<)axdO{L0X60#|_^8 zZSLUyrr~Bs-`(8DE}Lnb1)GTz=tK6~ZH2i*7JOrz^Np)$Btgvgh}@D*ufM}n)~0`> zZ{7>jrX@KJC|eqtj~GyVHZUq=MzR-1B=vLNkUkr40CtZlgwG9IC6saW>VjR0BDrs( zkl_wRZF{1N*BqLXuy6UDM5yuhqJutXyLW~SO_?NF-Ynh@--d3B1 z=5)TwbEUA5r|hW^DQ}1l)+WFZnTFi(hA_bUVuZ&^+)HK1C|^Bsc9r<=b&iPwOERCh zzcxXNLt&8Nr306d4v`Y?oLVf_iT8P^k#2Ab1_39uGD7>vz&$9QQ9NB4isP%Xc-UO7 ziOdQ|dF}H8#$Y&P-B}4NS}!dlJXp^&-Qoo&o72X|cI0kP84QortO7nPJ@NshCz%Zf z4lpE{UE{YmO%Bdm0B(y+qVRXz&S4GPPhi4*`+x;I)vDKf`ndg_pWw=NX*c4S#Gr>f zf#|?StS7QIS6W%|DNeGP$d2Aeods5`Q6xCbDE&KHh-Jr6**E-#_J{0x5Y4QP`AP$q7$E5Oli!y z2Yux)n;#mL+anyJ?r*;QV6XmSpSXQ}Q5*FER%qKxfP4aV=eK%C7&Q>{Q$SV!2Uq&nXS)&h90ROd;}SPsz0!0JC`4>BGOqP84#tc>YL5|{g!_tyJ;&1CN{HNC6*Mf^q#BvCkQN~&YZIleScB?j z`?_}!AnrYJ<1AaApck=-bwpdVw<+Dolv`V6iwnL!@_Q~E<`JC!ZidP|fP|DbC&CHU zzS8@8=%6t;b6rWluDDS5_cA5@h+X;p!n>jRGMd|EdGRx^&SKcTQi=FUtje4S2am$; zL|L%yAvN-gxYjPXwWW94)7%bZ=x?2J=L+Y)GOU1~&w_N;d8QpaSc>%J)H16p58+P& zF!?PtKWSv&D}~Z41MPKuEOM>fFw&sxG^wO}K&EDaJPdzdh+e;C#E}XY%0`a3jA!@A zoVX~^Xs`m{8=xlEZp7&KUElO4<6rRJAW}Ds%5P0&LPfRk6J$N|kM^zlyqD2qfBs#B z=?M7kE8m)>w7iwAbD2lI)}19-y?+df>FMh zch+kpZ*^Z?ivrf7d*5n+t-Z{V{BDyR6i?+pg*ZCe4_mv%BjP23UpKdY>b+K@2e+P_ zU-4y5vN#9cYD_x{%>nDY+dikg!pSz`@2mdR(*`GTAZ}$^4Oerqj2q~-Wq-cL@xBAk zcZ$0XT}&u3LW3QoHk)Ag==h}t7c)u&acCB&(wM=s7}-mUGwpBAx!eu6K)Zw=IPGwW zx5A&=@|+_E+Zdz;knQ{uyECMqQ%DHM#gc z%{?;?33s=CP|8XC(-0~*eZ{$|26^33uj|H(YSEk2Q9m{1bfa4AISPDwpB@=(3hoUoB4$O zD(RR|}- zj|U=euK0of_F!kB3*#Ayr?s=0sWa;G+LqE@(~zWBKsF!1>PRn&R?*6N#sb>$MW|+z z5(4;1jadn_awT^$Tjs`U-UhDNwc%w~FiyhgA{~!Di0VNJt*xZgkp^8^V0b?@%zA(k z@bOYekn|pG{UX9;&u>3`$JLRqt;?E#;@ip6Uik4n)2=D`;wCY^G3hr+!~Cad3*-dr z1Lvht3>gKxYZ{Y#fDbAT!xmMlLr`mnfi(zvEl0RgN9q|xwi6QhFOMZDY)Z(Wb5 zpyn?HukSkcxB|WcGH@3$13^~khKq-E!}HpR!9AJW^X6gB*&31CHk|f-LGF?;Y-(eX zbJmx;rwL&oerrq_^BX%M3A^V;Qx!<`gmTZ^$r96@@lmIC0S#XrgpQbzHe^az41%g* zzn&p?m~@zL@4c{k$MA{r_li_M{fa7>c@nSfV~9E`o4qPYDfblx<@ASjotsgOVGJ{# zyE|?XG$fb9eFmK+0Kw>W&#z&6-s#3o;`)%wFvx>0_Vt!p2B%A$^t<_re*d`N~uC=UJ4p%ksb;95B3u#k955pnq0->V^~%Lh5?{l9o2 zSB-?$`r3<-?thDCt%d~X@|<@>dyJ0^$LfrjO*%OD%d=G1i2$7pZX5QX@p1yNOK@Ep z3$f>Xy($-@XA}o_2B|DmB^vEnY|XSZ-Mw@12o^dpd2tQX&R%%#tEeyHx)fZVF0u_3 zxF8b4IVE`pP&xHEA8Av&G*_i>yGI9tTH}JY-M=t=`oTEeEX0j=yxaFM_}4)wX>pA3P1Z&x>rH$!f_5dNu?mG-K;0m4B5l4tQJPlgq;x#d`8 z?jR076MzcUFcAOw`Z)F&J#N@f@xqqrDW~6Rq;^9QzJP|U@BPWT!LGUoCbnD10_k@I z3(E#)fVWK#js&+A!O*hijWfL5Vj)eS?fP@XLxkZ8)uG_w@|(DTJa~jq8tjaRA*0%= zwsO3|IuwN~s24Y->YZ%P#-V%o!Y9`l_HuY!=A`w?sCymW7mmAu2XF$j2!(o$K{9Cm zvI<4>fIzxv#fFbua#-Zm`|cojexAZO^0QwU<|#FOg~fGtOn+v63U&C(luK}rVE>=z zs@xO)F7Nm6O*M45zT$I@EPd95Nvzh{k?!k*Y^mUZ(DVKX^6N~2E;K1%MtK@dmTG~+ z&E;fg^4aYstZxwczk|XSZjKFmQTGroqw~rn83EPdi1QY$j8;5%_Hu zom%9#$KFpq(qK-F{ET>@D&pyRXRjD%671hRMSa{p@0at&;g@0!qKi)7PKifwK8QLD zjXd_seE^3?#Pf-vtg*4N?m?L%H62O@n$n z@+KMh44jbX;~B7V+~t?aQrGUqh}aw&H;T$9VYG=%4W(#F<&F!Sg9%G)x$PNI#8 zK%)I(^!-6imS2V$0GpaS^oC!ngyLfBxD&T!@E5xT?Vh{G;!YFJ6ZlQVoVYdv=>Q>E za6Ard7YDFm86cr`76c=%)?t%tvAThIZIyf(Fdr>l8uidUH<#ZM3dE%Ldp8uC29`9J zv@A>NEe6dm(FJt2wZ3C!A2txz(zsd1=Ox1UQ79pUw*{iCT);(Lv}%d^U=czYPL*+O zH!iTq^OVrA#ch|QY;J!q`G1&Q$UF2#75vI0rde1{<=;>sgLfc9;A4&$cFV-qU+y6$ z*=jtFuCU%P-DX{6d)9b5{9?JIqzLhpG8=I=6z1O9Hrk+}}6 zHzfgB4He|(Buq8aiZ)Vp&2VtGlBs5nwvWOP?yz;u1~FQ3cPNEaA?}Dc1}HJ)CI>;b zQd>4}t-_MUvP6JJRAPx6P ziJ$t^AAdYa%9f;J;wJBVWcXKVK{Ca#zK@WTWFHg|4~#_A?xnXB{}H55r##Vn!nY1W zzofKucYE>ByR-5_>?{fI=&OZ-smJ_n6<)f=>olD zSmooOo|~+0O2c01>!(islziXzucOs(b@2X|6CvV3xSO-`LyszTXK~!!8@h{-45GJ> z)Y&q)##M?RCq#KdxqJ*2tM@$Ggsg^YjP()|;FAM;NW5m(&r&)$v!9#hM8i1x`Mybq zfRqWi#*y?^CvbD>wAgY6P2`@D+Xt1}@Ph0|qh@)Bs&tWn+m-4`F|G%7^GC5}1rcJD zCg8+6+TV^O36iTSzg3m@dN9|r4mV>0;z{jWD36Jv83Ylcm5TiBJ*AfMNwF-q=Z&w5 z3-6q?2+~`eKUXykb`JylL3a2cV6X&vv(mgB1_i)4ivxD>z74)L7s!D~a&4*QrOjY`{cg5=J z#ekV|`~W8j&Ih-laM7bnS<81OsjEt*sfi?BPzbmV=~63HUvW`{C!%;Wv?WEw09lCB z{0SiAFa=^Lg)Fc0kmg@x$&mxMGp22=D1Y1~tpJi?k>Z5BlL`)E#)YAi92S6!emEi! z!)re-Pu4opbYKE%L*Z_P;K5+B+8W4|B$NCuP=)fqSYs&Q6aJ8li1^HXZ>zZI$-yz!9rMT!wjRP?ycMAUX-Gg_=F&^Ev<$ZR?xD;O?12M8}7(F0(+6be{KRUj+eVj# zE0EGARZuwRLS;|dq^#>%UnLFSQpjbYEiix-EGr7qU8?PL#)>sBT$m%-^eAv<|M2MS z*d@G2W3At5$Oss%0D)G>r{_7*p9AXF>K7RS4{JDgIig5d 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 $4$g9w7j|f=Ri4uLZ9J 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 H{H1v%AJI_ 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�E;LdVcHO z^>`}$0EACMnZ25MAZCPoYV7FfsOZ3bz1{WIOjdhukzi$;7EvLco+hnLED6}1tg?z2 zo-f!qk?3w4qiY=h{(QZyZdo=-D5=zG+&uXQ6r^TCU6`3@uxKbLn`9e1Cq(SN-jp*& zT6E8#Jy|78qkY^nS~d)GR$g|k#6~pi@JoCdCzzG`|LzNPfk`%%{*4u)U``Y(X+7~8mFIPeU02cI=KGL2)O-nYNkSy zQK`24wn((jB-DD;VuAd=QE8c`eI(tDNnG;!RZ^fGmC(sb#TZah2||-?jEt-zf7fXq zZ`Dw;hS|zA^~_<5&ViuI^LU4ef$RH5#f?e4ZJc~(JiO&Qs@szKvZ(-ka_Zji2H~~+ z{a${2I(MDT{W%|w-Hkb)PkadJ<(^)-wCb68Uu`s;ziYLPVAQItT}DMUdFRx-zeS@L z)e83M=YCs-TL=3*#bXwHygrpqelHJ7zgrbit^A?n-*HZ+8GRMyMu-Lv?~C;Ok}PzR zB(L7#3%<35=o}rVQrRnYNUx1x)FZ3`NLan_Rx0jYQVCBKckdP7EA~@z*I0y=kLKH# z@q_V>jfBd}=it#m)0qC_@0$wJ3zEVx-Ezv}TiG(~t`L)0AZss^Dn(vM%9w7v=BHz3 zal6@N9G4;3@%ltam3rxAIpLeh=CZSUKgq!R&6bw)sN4$bX{wT?mA6la%c5Gpo0A%8 z@wf7L)7qqS`R*8Z$qi6ev~rjnE?4iO&U<&+JmCMhd86@8V4H z!c0@Ik4|Sq3~&3o(W`M94PuH-qzpw(w+;EJuncYU0Ff1p zb~vVvU1B$R**SfK1jr(efFMW>HM=GKf;77ScUEhSrOj?ej?ke6GfI+;M&Sqid5ZeS zORegfTycPP9YSWh7!Ea9*QS@^;aSmIw&dZjf-YbN?efObSArVqNk|exsm>CMtV?FC zGUU*AbqU5BaQ!Z?|8mbQz76;BMEIPNHI|%Ioi=}C|0Q?Z~PBFp~G(dPh=TK(xE2c>|n^M^N zmzz}EognVbW$u>nu;y)*WKWnOAY5r;P3o&1q|rmTXG&4HLCQ86QfRaV0 zmliqIQk&>_HevL<1VaZcI3pv=Tesi4>+XX(Y`b_rpMV8_&O$5ujCEvP7p{aqKBwo3!N zi?zn@-jN5`0~x-Zu5{jyignKzWp7&4Ij3PGbxfWriDi5K58Na64IefS~ zQZY|}HK56(0MIi+OZ~Rg@7T-=JzvdZW>7;PhHSH2C|zvX!&1@v zC{(T|j+wo9I>58aKmRF_Ncw4zI3LNM|Bikgm~57C^|-p+;^x6*F}kGgYgD^nMlp2& zW`|-TAz4rLtpICRX|1cK!mg42)vAr9t?#1mM`L6Hpd$`{C zhz8mZAw^o`>8&7pRi6Q72(sL)+0{L&;Qh%-Ypt;S%*e2%%*nI3bA~;zrr5~p-oAOz zsAY&wTxVPF2w6~ZjJK_gu~neol)(wFb72-L5cG_UX~8R5{d{EFYM zO$y+a84jKS}m6K!u_y1E4uh~2S>+2<~4`N*Sxf$%Q zN1e`QOS{t)hLH-~7ZLM7$TF9!9wdjl8z``-X){K9W9&tpk-?J!mQ{lIg)L)&$6p$2 z^y9I!Z1$7bD>%cNIqpEekB;f%NDt@$fv+ON4sJ>y!R2C?wm0YAlAx^cWLM(V* z)IPCpZZ>aMpa>AChTP%#;{>>&BNyF(&rgLdc=(-aE#;n@{P+z5hv2&J#3DWZ zS(D$$!2_Siy&)Uash(RE5XhR7X~xQp%aLs@u-;lq>EKpqc003)WkYm4`D z=UfB{f`#NIIt$v=yBAJqRvI$!pNv-^(Er49@o4NlCAS=8U$cHCXJ_%Fz@o1>S%qHQj zpgoXl0nSCy3p8#H4!teII14zCx~$UERa#-|@(c=}dx;o#N1C4AF8zMg#H4s^pfynM z8P5__I_|6ji}}{6B8;^`Kh>-HXk-8{l4z-jLzDOp1Mk`$(*nK>IQFh=B2Tv52_4!s zW@o9uG-(+Aje+_8SkIe*!CMM^_P??$_Q@tqOkf5rS+NSRq!bQp+O?;MJ0Wbw0r+et&3iNTw z5Dk>&2#69`Uub+4ZfUI^oDjrc0nEy2N8YDu^bO*o+k*@>yyW9yQp1kg&%e-mj zDYV(rClgtU8CU4;6R(3}p?0f*v^=?MsIXOY>!MO{8bAU+)VH^eW}vP5YUazF9FjOL z>?Hk%HG|}j;w6#9C;^(dE!8wSqHSWi24UxWzes%StBfm=`wgYTu-PFA1D{(=Y+*0(M#M6RV7B|SbvrN`AOs>;Tas&cv4z+=U2yhgegXARkvIQ0=&)r-; zATB|;cv6g2+}CDiDxU>*!>(s<>g@ zUVq5PHX!~u7YqGS5|k5K%p6oYqYBsux>bOwh&2~yHzjqKmXZT+;{r27nqLPLx>(FA z>N6Arz(7siCciEey+e+LUfRmyaNXC;lW06<)VaDS>0oBl^#bN+Q(5w=(Zt^9uExtI zmQ9s}mB@fmIIoWnrA{`QxSk~8_g{MJLyFLp0Os+MM_gS>EP`cYk(q0Ol{q4Ku~qUuy~32=l!msE z<;tXINP2(sxCKa(acG2f(*ibN1;$c#-iEYRtY}{FKq)Em*(Uu`wC>WYTakup8aMjS znOKU~q-&b7Wdii$_1!8Gr0|yq#Do31`sq4Rck-$7hrkRwsI}d*$@}QJa&_>-l zz#*U&nJ(pGtUo0uKQmk@J0}kZCoj@KuW$h6LwGc2v0p@Y%Qo-mkz<$WdZ@f`E5Wy6U)ra8MSMML|mibU!;_-EkO3*JeA zqKrDfVIA8tEo0L>1o3uV{1RzFM5_4LC*S9)ghW`AAY?2*El$--#};l~2?)MMRjPT-Q<*`(0LwBSiji+BmiqY7{1j0PS5uH79Qc4SZWtuT8g6$%Z z3XRxk06!H}Sf`dS_)2~Mrtj$m`cfx`J#ud5+|oWa5I}avXOz}=3oTMfZgPa8Xk~a@ z2>(K2h~#CG-Q37B@d8QHVLY1s9CC1r;-Yv+M+uOiMm2*OVMD*slXjQS3nJ24#nF|8 zHRY*m>wnw*7%kKdL|VA|Qr41LL+3O>&Tf%J*r$N|o z0s+esYCS50TUSJ7-l15Q9kx=!q@0ix|8-AZ0}PrT=E!qj>H&|t zF#r*d1db2HVWbSfxBP`x={r_yP}=_*@3kEfQ9o)k%(@lH>sldt*YAt$(hSE|zb8-@ zj)I)C&&L}GT)T-*0%w|H<`7pNY!U&O!k)OY<25tlgjVbrYG<+i4a6{bU1W{S5^3{k zE5xPDB2&1S-DVog&$Q3iisAbf)jfY5o$HbpLv&mqABOxiUtdjQRD;!{hbiUq6{VSP zMQiS6huX2?UpsBX{0ffN?hz*H4y9&N9=0KZHE>MbfPn02$@Q1jFZGK*S zR}YCxbwBRT*mywaa2rB5D(~X27IkW0_WpMgBID^8d$Kbiqi&D#^p(6wYzj|o!gNd9 z00FQ2b3uz=k)=3;R6f#SBo8VR^C5Poud%34C6X`OT8mghbAR_bBc`(VW`7it^PqF( z{`)q_AXBzKHZl#qhbyW4X)h3Sx9BI(BD&qqcUXbUD^6t*Ue=7BUOOdJlBcqefn zTOD#^3X}LcZP_IiuWB+J*3-C4u_0i03et5xuF)B@I;p;C#sokToeLO3AX5jDre_@kunJSk3Wf z1#+I#7y*VUb+MexhVs?L+4x($Wrh90(vqo5Ok~V~ef80zphkAeLB;nSBN(5*s2ob9 zyR9tYqjlo|lti>rb@bZNtwJsC?KgM}bu;2V+j0u?TJ2*pS15QJ_dBY3S&4dLoe&g< z^JcHpglOl$;k?dD0W)ubEBCRT^%+X#SWW|#NRL;)Z1LbJ2tIltJ2TsnmMBiaG|vum zXAtvHx2kr-iu@QVx|u+JN?Z$qO|)w6LLRK{>}a=%&?H9y9D)a?B0&6@_y?iwsIehz zoxu56!#vbbp39kF-8VSr7aaJ?k4xUBJ`+pRuKdVfSi9Dr7<$AFVdx9wh-{2OHVxmr zX{9eL9dJ=tJ)4Yw+R=dPBut)5W7MHN>`B^IOINb|KE|jS+kvVdJ7%aOMWfWaNaspb zOJnVRBV;XPzIxoh#xP=R9Qh|p?D=v=Kc_;qt@FZsb)8zd#s#*@Y-a)DRY^2ccJMUN zcAb;PtpZ%YM}(#$7p4a| zqXTImv4>LV&h-KzRc%uyjYHXY+f)zFR9)kQC;1xM#FIGim|e@&&(_`TEcsZU>EUvW z3jPwN1%K0!83AB4Q0AtA8_p29xxD>_Y3W6n0OtKf0iqD;8{bp7NymQ0Vuf#T0X?nx zk#*2qwL~J%usH6e_3LJ7+Nnd8zp~dLNZ$yq7aY`R=LfNFk*;yM33#9@mi*&UC|79{ zeZQKtfn=^|IxWeJz(PVOB{veZ+ef41vLdn%e;-9;Me!O~w&8=DDBhlfEf1q}d8P_A zRF+_itB0Frq^5Z4a)#h$v}5hoftYs#|M2153kud2p*@f~DJ`4Fig($>EFl;aYJVUJ zwUW*66dWuAemhTS*`$tua9I67aHY+|l&MtAENKLI;=#I+L{Lok9oLX18n0j(4Xa^< zjn@S|9iEG*07Noo40V3Iqf_qmL037FO0D-aceJ?G+@U^uXyr?xSR5SoHNm>kFfGZB zaZ19jujK8AGE-!L0=gN4qK7NSfAPLgAHCU6LIcJpYc%6e7Bxk=tV_(2C1ATrCv%H$ zYmIs)xVczg$AO(yn=akrN=Rob3gs~ssoJ&MZdd-TS~eP<0poPKV0V-kDKJc%)CWH# zS^Ob@VbCWy8u!z#iTR#y`RCV#xW%!qb6&uW1mdx5{5!j(%;0gz-ipz;W!5ApjuhlY zJ6*{dGb74BD+wC9mM?mXlSLRLj@tDZ1cdV-GGSuuC}+waqQ}YgR(DO`k~XFzZai5t z)jkhU*vviW(?Kc1bwv=1Oaw=8%d$#zZ_KDIaNpv&NS-$a^}4lPwH@kxX1|}3)aGg}ue8ShQoB*v zIaUYXW(xk%IfDeIgTgvwf zf`A(FR?1=Z`AIn(dXUwOXroo>>d@+lkO2+F#}c;U-F8~DEgD{>mZqNNgYTQ*I6R%2 z3aBhWRQ~#m6+M0zr(P(~POc!C1uUq*S~z65R4;3vRk!MrH#jz?ocZx)-&-cwboE&A zufhs)pn$3v)`^`w5D;quDZfCb7?(^!aT7$F1nMFlZwxwV04u%QLSOtWu;rRPnF12a zaJA~(7`n!+g6DG!MW<=*Sj{62WJrx5if`7+SnQ^tM|$_92|(?dd?e?xXiyjEIRXXI z`XrsK)e)J6``o|a8{yku)~>gRRfy0nT@)2yEE+#J4ks9!R~{+*yJE#FCi)mGLkYE< zwX!`sj7cs5=M^9VPLK+a7;FHrn26OX;tbO@oNsch=dR_N5I66?-AFhOZYZ%+YPu zd1YYPRCXaNnCOEQNdXd<;KZzi=W6LicIa{taGrV>nbg!VN+z^{IipbqoIJ75_~_yM zRY41#RrAe%xth6BT+63#qvgk#7rnuB0Z_2}d*f+r^sqobR^s3sbq(67k#^jMvftqjPlQo(#?X!say7of1+Pt0wcd zK6iLjabM)qA{G?;cd7_D*=d)ix4WC6)Hk}+8ygQc*_y0wA#gC>W`$5v;R>J_Egx=F zZ;uU$g{c!%=O@3EL)rJjOjX4)?1Oji_W3e%$`cs5DOOX2xED+HW^K*DN2R+`y>c!UcQN z*VznI~Q3jQ#*atc$uG z$G=hXq^&&nWPk&WRaDmYo!B6hCuPc*XHwV|2DBTkOMJ36*kU*kFCT(81tHc4Fjuaw zH5j2(y51N|TcS>^77TpSCbPQb{pUbaZD2sH^IA|HvDJ>Rr}JOu@#eKmtmO)Djf%`+ zs7~#VIt%@eH(2<3XP2nfhlSMr8D&?QwsA3knMnQA{HW$GUSYiO3JWR{xK9*X1R?h< z6!BFg`On2ITvBs>OV<{YN8iMymmR2etpJqH4zZeu4l^ZtVQtVMy9p^T$2J+L+HHo% zM-N^RPh(o!KiCzk)HCpDwVMteX8(-g0F9`oby`ihz`zBV)JZiG@!_|@NeQPP8vJKE z9!WzO*3ewQKmP8CLaJ3Tux6NGIc~Jq9QkBai!7=f02I6ZlCUU->v1ECYby;tKNOgm&nl>}BNV6J* zaPMPY1lD2xI?}BVXaVwsMM7&FV*?}sF37g)-@X+AhxbXDnH^jJ+pg+lBU z!l)azR-LogL9id_lld4B&u#V5RcQzUxx*b?7(jw-dFUduM)Re?j_ z@n0rr_hO{`EPLkTpa2ZN2Sra(cLXu|7!D3(lQiAvfr!r+gP}gfwi1zM1jMqKq)4@} zqm?k$MC5yrJGRcEBdD@yRp{7oK514ZPVBsv&4V*kO4O_-=xAtgc9xjOp?Ts82X7-o z3oW^NLt5E=SF?U!a#ks9xWi*i48`VJzUwIb z*mJ4i{(E4YM+sIZa&n<3-{LiD30-^=AF+c=(A->U$D5v&;^4uupG?s^${;_OXEw5I zMq}U~os%$;xEs{6;+zD<*zH6x{`hqu1Vqe`HMIn4Jn3d|XpfAu6PgMl&|_88Sdpe( zzRUZosPYS!2{;}zzahCOL2)%W^P8~@5? zzbshQEtDEviQ=%oIiH~u8v^9?$!jj>g@l%Nr7>LOMstJAU_Tw}^KPg@lM}UE+EF{L zoQLn1cTLYIfB^ZJ_(vl4`(n|#vAESdEk<>P?G0UD zfrk$0fMltwendpw)hX#;y1ri50&!q~Q{{_>-un{)^L`&tbDo@Z9Q160)5d}ENbrsl zhjg%&LQQ0=nJh1-YWoal$nmX6t|c!g=@@w#nm8ijVHotY713F+oz@qx?ZhJu3-lUAz3^X{8nY z;TEC*C2FViZWX=T0PEC4O`9=;X+jmjb7o2)$=vpW3Eb$1j#XAiH~fcr&}9IEk3P~W zp0$ZnG=rL&oaC4m2366TkWo5CJ)Ggk$7Ww!J_ImrPgNRb+xpuF4Lo{@II0Fp-_7ZxMfK!*~+F}2D27`XeW&K#9 zOt!-_834Y75Si+qbZ?Xu(90fh6sUq;jW)wh2}FQH*9es&aJL7|4=2AULj7&m8=yG} z0$l(N>r`w$WsAODMp=JUuIMBHSlKbnlXfMd+G~Dg6Dod@o`l?AVx=Nq+MYs!?rT`? zeX}vLZJhTbZctHN*f7-*K-W8<=xxP1QtkYpKuR}g$To@N8Zs#`)*}2g_EcgtPKFYUd!8bMK-Rrx}}3qb^6p537LHPF?OQ3xX9m4ogEkBe46zvtX&@! zS!kcGiDpEX#pWo%Mzzy(w3l|a$Ajrgrt;i$HZUeiqvYvSZzR;0gTpLrx1s`p0-I0R zVtZj01syDQzOFqm5-nazD8AvzUP}mdP0(uvJQjE`@`*NQQq`pC;;Mf$!G0G=5Y@5F z{`z4{Jf!nr+O5hd$omYU{);`^@_wYUqF?n43t-hYgd3p>K5o!EdGSY9|1WvtgZHv6 zCug_3h^F1#Zumg?%jp!FTULlG2?U(860>o8*^_DZSs7EHnCiUj4;J+jrSuig^h>pw z8{C2ng;wF+kRRJpdm08_?=0=P1d! zr&KLfwq2J7Wp{Irej~-1V;RXU_U-TpCKWkcULRnzPlEpKm~Vdw8$#VH0*X>yV2OT) zW;xD=l_NBkMXhSFFY-uO>-@@6$4CA@7%9rz$yY9UbfB@=Gmbl33lSG3{+lMa@^TvP{9%vtvzc;5-YNuKiv)r0A)-Od=}nYP)kxJB;R~Z zKqa(*fF@UyM)ohK5VBm^*}bqYYGqmd&J&PyHY!BiYskF8v z&fggIzohs`&X?-5y@skdF?y}=c#l|9oDmWsYxO}^5l<;9`Nc)1njfbwoY#a-BS84} zuG?YalwknNF2geG$zyUi`wr#-Yx$}3PGt-1F6Be&zbO1!=0Y$56x zzT&KPY>myjSU;A%9>fevr{o3E=xpSzB|g-VVy(fq;vefRB7Rp+y&J)2E&SNyzo>3B zUv6+>=fA39V_Q*bv3NTyGqh;FbnKtfk>omVm#7Z*snpHQCX0nArx>GCz^YB3Q|Q*k zH4v&wmEeaQ90`(=Fuj9_6d5}o!*?l|a&&CHNIp9{j-c5M8p_JGZ_r_G9Y3=@mz}pi zVWLRG19JE!$__U8GEus=X#EG#YSKZxBjzk-#(Y68F-4vTUbbGfq^#B`*VdhMz~F;q z?2^o|ucG|@ANL69o`no`HrpjD{8AGz5nBMiq_@z*SW~wW1;yUPQ`)+_%p!##fgp6Kk1XvYB-uIt$ST5Aqw@rN{d$Uvzl~bcC<>O9+MQQ}R(o?vV+bAB{;jNV zGO92EW&M7eRO~p-NjLKqa$FwDf5+i3IwD2vT(Rfs?U^^rBp=CtI@Iv~$*VetjNn>{ zOzpv8M=twx&C9!an%u5F32rdTN#(7Lpt)?XrTT}Zbc;@xF*j(M0-s%{z;FA-U_nZT zji7-;vK<&Q!M+Od9s{z7h+7t2CNmj|>t`rxUh35XU3(-^2XXm~hh1bgF44yc0^-Yw zbFW$o4uCynq#O#)gBUr?76L;~Ax~QlL%fi;I+I^*ckN_0CJ$}k056ns4;eC{EYd9C z>t&1%haO7MzRgfvceaI4OXj1-=cW6fU%w|m_cBo7^4C~_X zv5)a8r%H#-Uc4qm;?VzN;zlZoij)6ZAu0yT zVBpyj?HXCbh~2x{;f5w!>J?{4O_gB%OcB^ApGi--%f|df1pe-xQwUBM!a0s2rlq71xJlWWgnTNFEJu54#UY8aRNou%-d^YsA?r69cqc2-1S-qf)f z2iM9V7YsC3x96tG`9A=4K#IT27R@fh6wNwUVl5Fu2{$u?v$GbVOn+dTz0=tZ+Si=m z87t>arai)MtpbS2dq~8$NL1Db?BIY_u(_s$xw8S*HQt=A&={(w*r6OA(jD{6u7H7= z$#&VbUqzai(}&((Fd=4>hmohkJHErly@eV^+H<3n2I+*A$9At+t28DzTvun_X)f!G z$|<=w^Dus_Q@oW!q*FY}C4rYqTbDf(svYVp0O!ya$PwCaJF&>70lW_iV%Ro}=nj!% zix!aM4GK6$^JM$|^D*(JP+?xIDNN}_aj9uxeg)Ks_k#_nCtARz0g`xK(!mp?D710v zL>SxO<;!546P#B8nUe}=`IYBE$`KvaURV`cAjyQa3$2K!7Yj!oIMkejI1-n7OI35f3_TeNOR0ylq^XQwlPZ2m1r(P#NXipM|1Oem}bAp z%&9Ei;m-WvjAzgk%{m{PNGQ=G_b3@Gb3E)eNPpeJ;zdwJ$4?!w8S~JoreBV{t5y-* z6{DgL;)Y!V74NZzwt+Fhsgfo8hVs$Mo^(Osi~4aNh~D|KZ={@-b(oL|{^R4lX!9fh zyDVPtI?Tx0l26cq#V;~tmdrDVYNl}HRALyJ(KsCM=qyGvd{wD6F?9S@y<&1-My_pI z{6QtF)M-i<=*H#V^$q}6tKM-pIZlQxYARoC6uH&xXcv8XK`Lx;4*E8rE3WThtp`z= z9KB(bAbCKKnLgsd@A2U3728mTn>4U|48YsbE!XJ2%#Ip4iYol1#lA623F4-(5KeEb zQRPP*|EzD&x7IwmKVf5z)$T!I`0QA0ph!-iXm6PrXHODzkvp}6!vMmkc3-3RnJ#!$ zfJv)=#c^)Wbri=y7Nd9eT0;Ho6ZFRG)?rui6BnPZpOzcM~xY- zO+(7j19nZZt|xDweEaS5XX#HrzIgd#3O~|6J^%OU?H;zgH~msDXAOG=(J?j?$!F7^ z1+BG3elZHyM(i(VO9m~u%dXKYvf47#(#{PN5gNVA2%#;m>F&LY`DK0RQSz4V@Ah^j zMlt$l!}z@Uv)h6tsIV$-VMnjcg(qoBEUTA0Tiz$={0?v|FOky8cb@B@3#qO|mr>u- zV2t~&DV$`x-4Uy!?Yj|^{hJOOGTCp$l`#Tx*O8=Fi$?Fxn$16nuF#dz3_&v!3rbfBGsCyyST!(euEkQXi=VM@lMqQ;1sO;tWx zu&n!NzOLqvj`Od-{>|6F{qlFq-3lg-V8?_r)t-~aZvzm;)6Um^gHk4Y2!d;I!Xpv|(%71rT}+x80Ct_zSSl!c^? z&>|ZAE?3ruDvQ=O&*;YdBhVmGqK3Y21qha7!R;ASn!7_ z51zfToyoi9@p21RrFQOYB?0SeK(Q}Au}dX%a_JWC#4AjUN^sz-0zv9V$$bd1?AK&# zdh;LN#QY)cixcHd9hxwlQDCHqEu?RLdiCn%>$h(xT*osE+`;4rEf>780FC49BS2VC zXU2Flh(N>5Cjpq+k!^nPYMmpYq-;vzJ~X&!k|`kxocWkN6R6GGGL~}*KMPE^MSRNg z2&ZUzp?2|M;vNOerc#@bnH)L|3OufxA z2@m|BMJ9A7WHoV0hHvd*GO&jaAHz1R${h;0MsX8T#O?=&F$VKs3j0VP-LhJ+y?jLM zHuS-SBWMhrkou9?@_HKRk?=F>wn@4ZAq_toJB?1TmLwZ=d4dFUUG}^j@3AE_DKa0zZJV1|`b&K7A$A;c&!|7Y)bf&1h2tG^ ztVorqL|i0}G12|hJ2lUI-Gf(PAIFEEMuW~%>W0dWjx}myMWyjROtN)xOl%ct?610A zItk%}8~pelqoKjMN{Rtd-5Zj*{*N|t7M~WTZ|M@h^rz#B%!Ly2H&ekY?&Z`8WHGY| zmEcC0O_=3%pcs@hfauVj$}S?tK0)(QJDLH=+k;3aQT?Y2?|Um0ym{S5q2M;rqEHa_ zp;9)&9B^uU2XN_bk5LwU58LiE8O)l}$%z3619;$AOapY3()@xh63ML4gNn}6dR1gj zm`oA>cQToD-QQ@NAj}#=Rzc(m;q)?5bopbT%;|Os@;d3@-q@e(Q$&<*aZQXwi%dZ) z-t0`0z4$@wzYeh}ey)0ql8JnF5T_(TqpbO+(IwNienfhPvWZu^;|bwd9H_q*s3S+X zIhJFb+Arvlh{r{`sp^97Pg1i2tOMvuVBV5{MHp5%Yv~^>V`45`N*oQ#*S?y2wT`?^r~c~Ma(E=!tg!zVI;G~z2wkWq>SKB4NP+z&=nbjv+)2HA# zeWC$p#?ul2Ff8Z?uoT|J7SLopsV(EtO)A68c9YxO0|2qo_Ow7(J@`fJ&kvR*LzPo^ zJHYA~h1oE&p@W-NYEC-UiPIC7FLq@sfygIN|nGwXWPJ` zCgjbH5h?zUsoej5(#&||?#%v1rLqaRmz*&m{&BmJy<~HUyNoKm^mtSPF1^4rjjOvk zUS7U^4lKZK-oP=pELKVuKGEPFjsW`S#Z_J>Gp;@zj%H(y=>hw}+(ovQ2DyGTlk23C zB2#FH2JM}3jF|H5cr5NQ@%KOXXkN6fC~pjK2w(&F&NLcgH#iC}iTG^tHZ0aI}CYt;zbix~f$F~4t)Y?vU|HauS!jh>0=EiLZylugbx4p1K?|s^j3k<-g48m{<)-jctHK3`>ZM8ABHQ2x1s9(7L+=tEK1V*_m()a};*Gs-fcrH1DTtxpOCs8JYx~k|W0H|K)?*JGt-LB_pz0j!}CYe}qZR zDGuOlq#kc21}FNt({9UAautkbv*as3k6^V=elgW6{aA?t*BGeGa%=wMEc$iUBnS zwl^bXaRfN~Fg!Z*{b;{XIKN0#ioN)F!rRzBC-Uub8uwcD&LpKh*7(4~Xir;$M0km* zm_(STcO*C2|pcTyc^mZPw?)nY`^(v-7R zMGiVo_aU>>`5j0N3b8BkCgLZwmz!*jr_yFS9q4BRhpbx2{8NOgD%i`|3>xYh*2YQS z75O@by|{oq*{=9^s=9`HWyNmrqE7slVi7GBrnJbdA+IIRvt$001~3^F6@Li>Uy`*j=Hi2XqGRG8mCQrc5yi=X8LGIvA@}(P$|M+`kU1y;SAGbp9g;{rG=mW^gA`SUWyDoky|M< zB9$eOg8bBi;^N_9-m5$9H%hs0^1+>1bFG#F>K>XJ{xpU?o=$F`HJ7Qi$B@gG3vIY8 znEp#Sh1n_jqv>P5WooxrZV}+0zb~3M2<#z&%>s%%mUtavTIN@QxfXtS{W4K!N<2ucJ2o<4H3*fam)k0)F;MW5N$Q;x z@NT0W=G#%oO!5-13>Ovr^S&AGb)NEii-sVzkX24pCOT}bLZ#oI}Tl zz;la!xWGvb1HiTb=1w4Me8tXHq*k|Pi<=y0U}(2;?!R7pz2YLvbfA-)*vLUsxASjP zRyP9rn%9R#Fwiouqkd%3l47hK{#!^>mU+IRNa7M(OoLo3rae@>cUvx+-n6Nkalx=w z)9tm)I45k#61dvxAHBnE?D1#g&@aR!h%=dAwObULlI>nMao@Do;&N_NXQI(6Q3A9q z>TJEPuF+3nj`3$HoxzGzsB-3ON(yAp7hWK|$s^_EbU^h7Ua=SocI?0=E7lVg)^3`p zCfh=Pf3`8>$2Y(9@w3wvbj%U5a%aMiqYm$D>Jug7?@uAu+Uskv?!qb?8eS zPZdK@V6gr=K`|YuEM1C4SJG zphG91KN{=#uqH=fhaZ))kK*+#{cpiN+VoRH96rVOF=*PkS!{KEGz;~syFNzHr-Hq^ z?d|C3tkK>1IXcY->EF;KfMbGVsHHmRl&w&D2kUS2C6xRIjl#BhU8^uHWT($jyr9FC zAI$Cnu4}Wc*2#)kRWwn1UvP%A8ERu@$$VWw(>e?pPYdrK+=~!)N8r;e8T?dkF)lr6 z31u>`%!@ur3PG(=7FkFqlL`Clh1xwR(p$Ty+Y>Ra&=k=c&Z(ZWwTy99VH7OP^rk~s zUF2lJ#&LCIuU50kGPia{8R~|`LRy!@AiN&k>*=c|TQ1fLqOVRb!>)~~aa;LQQNpoy z2W~!Rfn%O^jd}I*&5O4$UjF#x`}F0H-~anb686)h=4%Yo`sbIgpPjT0s-+cGPj~JN zT*f;$U#&9+vac$JZMVOY7rqwcRms?#v}l`M=P0K(YP=4uZyG>UW}$9FNy&=yiSZ0* z5$y1`$8!q8Y7w_4f{+aI0h`V#5LYrdRV>Dya)1c$=1qGskf+O3qA>Bqo5?#s+(4b| z)$3F%<8`=q(zLtZh2D~ziE{WEd%Z?nWF2hMv3za+5o0o*A1Vwi7XSR@b!zuRI3W+^ z4vmJ|vS>`B+s31I)>svYj>$pfKBMw(z;3sNTwP3ya?_Ni9F~sS(}6dcWfp9Nd@&Pr^!@YO`A- z6y`T13r@Xd^WS?`PF^T{byoV9`_k;f`PF8NUGL^~Q#2&cDQ#tF{sRwBeB;_a_mFA} zde*woT41Vc(SXcU6>36BYq%=+hqefH$~l&zf)nwB2kL2}1YmP2>2}1^;ixq-a*v>Z z$ZO&iGJtozW|s_`&xUOF2FR)=6(-5yNQk6)iUwi?81R~9;EuMy{~cNHc2uv zWYCM(qvW5HAqCjCpdF!!;TQNOHikd=@%LG2`eW6+z$7iW3-e`*+H{~*t2Uae=1DJ$ z_oyzrtT;7lNzN?*ECm`yntJS@2I*6k>%XfhjXJ-{X|&t)Mr@cB_8B;LAkCVIwI1SL z(_z;flpPsF{j)t?5mdUIjQ!bAg;Au!>A*2$A*aqyGOomr(iXlSCl@El#qj;em{qp9 zxOuA>gPtp$_A;t=dJxiERFh_9ASar^Qe;>@eX432r+1-<2y|~UWQ%Qrs=hI$97Xrp zSxYDar{9xy0;moKWo#+*>aJ)eiVc?&d^}E;oG?zj+IxSeNF_!RqK!}5?JmQnpGpc=v#f z-Qet?ISy?0c(rJ#>Y+2(wk{S=r1)hFmp4-IR!w=xFUJxfQ}Nw5^X}tr5Uu_od4hVq zM9>LJljkAgiq%}4__9ae{ZiP4^*!FRPiniae0IwT`ZM5}%ef0Z)?Q+`Z>IY9n4`=) zC@5K3D1*55ra@?hNGnr~Zr(eR9$X-{?OdHZ*lR(Xo<_0=zubPqVL&b@0XZ=K-{#G~ z)m6!_IW0M}|Mn?)CA&ZqE(>)1M%9K|ZO~Q}^O9uCmmGda1-Nw?U(8*IyK`bw8T!&H zm+6#Koh~^=BE_Vp=A6=Qq)^qZc<6WTg*fdw1et#EjP93g2SE>d3?`2vUeW~*DY@d_ zZcPfuIJk9kMLTu<#2=L@*?-a|#Up_}O!8WNxG;87baZvMj6)a*0e2`X;5Y8 z1V0T^D&C7wQ(5c~|Bray$BrF+*6C{Gu@5eyI|Rk|;fNdxOw$yRny7S&?bhv*x3=-0 z99@Hbd^Zk?rI&eH`ze~I9MOdc9>oY$(O$gw-!{W9Mp1vp{V}(kpiK|mXi~Ru>~JB} z&$YvjCB_W&i!h~|zzpF{OGaVfl^Vmup=ADKnQc(riZj&WF>wLI5!uYh#KM@E+%h!i zwiBiUM{oEm45nkXwYE@hxpB#;ao@0CiD;SCwbO(gji`tXGcT#J0%YF6w`Ku?d zpQk@OfBW6bXK!Tio~M+u8R5?k5|nGcUFO6>oZ?MCQF0+7N>qCWg^@U`TjU%=Dxuw4 zLLg$%fba#%tg^xjDXkVEyjnWX2}`_*`SNj1$~4M<=fHa$XEN1KB-#78Mm)bUtQ1p#@ zsczC8>5KP~mVY!AZ`~RAA!QdV7?76cCcNTR%%)R{DV0NC6;Ry9RMLfxb1vQ)&0-j| zAHR7uZ8?2A#SEh>e4J4isZ-z(n%I@Fx^S9j?D82M#A1zh(q2=;3|WQiQ;|MICQ8Ng zMy;fx8F>A+_h#c&Tp5WR*6-A7W*nVmR2Lqn<)H|Uu=Y$7k=&!}5@5MSQYHEi9gJp( zjNC)EKS$*IVIFz~Ul!trNxac2d{`G3 zv*NIq%nF);?xWD=D~U$7txGo78DD+FL#E2|2bI=(hnFK$!w|7$AJ$JU8gAH=XZC=u)ro-HFp*ny3MPt z`|P}-kD#sX=m?wgB~uG!y^tyO7>b>TOxNA8(QMzbwYb%K+J)2ZI)ZR{b09uP5pZCFRNlLwf3ej zb^3L+?}{jBw#QwOsdLb65swJ9QbDzFDt$Qf+c4qE06R(=QQim#Oic{K=h2HRzsY_| z?QUty)lB+A5#25aB4#`#jHAf>BsGoHPIgGTc3q9kZG+x;Bmc%KF|-w?lqLtMtI`mJ zQCMc8p^vi&N~6jmkGPUI*Xi^^22yi$Pk7F`Mf=M&w04>rM&>`%gYuU&Wedzcv{e%yQQlVo01>trgu&HLUX^R)!qS9#V~=H|f(Te)&35Jy_#`&uxiQv|3Z z1{}WD%aiK*h<)A0V6INA(@i{Xb&H?2NX)CmM08waHA=|M_OG}j2IDsAF{)kd6eA-G z(9bP3=8U?la}EbV*V_gfh!L0ByPPh0vib&pW1OgMv80%%wjiAI9Mc3ZJ<5hH6kSBI zg{KnWmUD;ObJ zh6LTc6G03eqJ<(`XByj1@ya@?v;NW+)S!p|mHgPqxjsnEn|)yiI-MU|7mC81hI*NP z3w3zlVAK9T>PofAPi+w*4phH5Jd}>FE%>M(u!B}U>J|(Vjkp(s1V<{R`Lxci8jGrp zbIiADN;_FBd2*7`g5+1i^D{gueb^6sos9o;+TGGkM=j`o=fh4YH{^bT?e`|ekN(QX z-rpxZ#7|rLG&){7!1|d_qrYDOwx8B^=8}pcDULRv??t-qtGpBJUi$Ns?_WH7^7iHH z^qcgDCvTsAcar=7#~Da=9HWd4P)UOSSzGYpIaG_FEoF6tQ^uGq7;%SxXu)3C90q}M z#_dO;Ici!9LHjo5%WyEKI6*iDJ)F^r*1Vascbuf|cGdyoxppjKys4`^oQ8vJg`t;j z*%4Ll*AH`dZT;vB5(kC9Uzx^w>Z7E;EDcD7^h!O3{x|$K@Ut_fnui;YFs9IEl)zZZAy}f+C;qisvMQC^ZWP2`HaSgh+7sdex ztN6_ThiIxuNIoeOoqGsvp+zi3yToET*b9XMRGz@b8&-6M9whUeqPSc0olMCs98HiX z@|w;yF&AuI-K?7_E4VOVfj_oRFNO3^v5iCo4O47rzA1j*{uc6ufRh#>#7<%}AJqpk zQkEV^OcBGg`g9oSbZj~sodtsoHyDr6=L<-zwII1~|gRL)M z3E)U0YtkEy69N@DI36R(MYc?4+4?%WsmV=>%;Ozrrd^&~>(n25%o4L+Rk2iFO*YX9 zPGxv?d{j3#YY?R302y$glLdO?V3Q6MF4^VXnXsD5pL3b7RV9p}G`s9kqi3UHDWXED zS`@S?XddKhK^-ua5>AFMw^)@UF`|VjHi(_R%kvF+WUTOgwp@yY z$~HJMbDC_J2R+$7)SPDtMPZ>?qCJ zyIUqO@-KqLZf$hhztKB8mP10&r56&Xb%)K_Vcf6&GL4_q)7X9U9)F#KM79IFCwtd} zR_{}Q)*+RD9%g)mQTs<8B>Ka2u`V#9E{7 zyRhkVr2ZLt(SV^mVVXx(&nVQ0QWfgNDQi25#JwPF))itZVJ+QwjZWM9 zGv|YmXk=mko#~9xk%(c~wzg>LxDL64$wemhiIb6gIw}wDHK}VhD!75hF>kX(?Kqui z27n~bxtC;?wsw@JGrp0^R6r22c4H9@#Xu812igFFTC8qtMRTqBORe7tvq2Mka}!#7 zIs+Iuc_si4bZQb+)9ZF1OxtPXx>ap1|F2n{6T43#M~m%Zx6V)kRi;f=9e@EYl_TEO zW8ICiB7_O}8K;9e%DADjD6(Z{5R~EUo8GDyIAQKgRM!acn^b<`MRC#J$Ah2|iH9 z%gMJKudheqYrynYlsvJqdYf5M zHnUO7{^Ht{LJBdLuuTLg-f+m{p%(*aKmhud66;ms5bEWqUnSBCY~l=2-#6_OIHU(_YuDo86ZRJG4v4kmPBl3|YMMS0FTJ`ib}0$pP)U(L1fRl*!*O);rWI zkzu?j1{}qI=4JTY`t#Z7#CY$n8M*}lLxz#-qqKZDzC%zb8=!F?kaU!dfyOBw0g?0G zaeXvzh_*?NWPF*G*||Db^ucS-2+WSI(kX1L3l{0^ zQCrWZGSs7{oZ^w__{@uW*lo;x79h&5#{o{KX3~(PUYLZ6-H))6p(*%wCJ8Nt-tlg)&_rnc2b2l50$=z;`cn zgO$uITD{iTqY7L6L}rg}vlh)RTgy=cUx|3&1r@VbWGb>4N4L4*@N+aoyt#t+#S*Xj zRs}~NGx$4k+bc@iN;S0sqULT}7gxCsL2b%DX)wolO(C#RB~xL7RT5IMpzabG^W`Jc z%89LiWaTmO?3oQ{EuNaA%zH+BIew8CCm52I3UNabK@qckR=hY`3Tu6nmg5M8#}&HmuOroLR~RHE+p6yPOzw_cC0XQg(n9V8rSSrk zIjWWe16L?ikVG6^ymS+aN|Gj4LSuh`j5_SZZB%)~bt|aUsYHh~T0m27K`w3*#G-m+ zz*(^e}?2U{P*LHktcJ+nM7w8)DxF-i47t#K-zo>7oVbCvH2`>f3{Aiu@ z)GRyYT>Z&8x;hY<(1hMQ_V}&2Ias>Y>q1lv>CmscE{I?UE(}pV3g|~BGY77VuKlU2 zLMPE@TbBP1P)h>@6aWAK2mk;8LQp9XH1Av*007EX0018V003}#WMOV}X=5*6X>N37 za&BR4FJEV6Ze?<5V{vN7ayD7jDUxh&Ikr{OMy|Up z76=lK-uW`O_49` zbNOYHmg$|Yqfz^`_F(v@cc}~^6zs!ot+y%QzbsN?+;hOn4!HTR*RPTn-@SVA{q>LE zPSo@AI8oP)uG6NfC+e@cX(kGA#3}G$*QAR=yYDxUHNnWlh_3TQGzM7~npN=mF3jXzQAo*Jf!@t#~uJh&dB2SG{kBN(yD!(g%61Qp7 z)K42z=bAd66#H`g?s;SIog%;yV2oe4kFI zGg$1g`mt&Nm7ldb0BKcIsakKUy$0df@td7# z5H;LC!h@wjK-8knK|HoFrOJ#tCvM{^pr@03tkkuyaRp%wNizH)y{}GTIm4Jr28t*)ULGb z&dX)3L1W>A+JK7HN0!k0y@fHXMg$dDUey_hK{f%$l%Ytb1xTZ@Dyj>;0efY{ z?!df-zRSy!tal?)qgN~ROnVJ-ld5m7zxm1XH`w6dS0*w}oceh%#eazh?m%}(N_|K_>_jgEEWK3t>jO(M=88$dvd%6Bv1G zV?gl1m)m$qqiL!{s6qT{4Tc}=PYDr^H*uL-9L4Uyta^IR)&6mOiT?A3eJt+2XD9nK zFVK{zv{7G8|40Pscu1ggPxNxz=Se4Oh$i~hIo#QBCMM)FK=*m}zyiJ0dTV3Gk^SJU zU^{AXT<*7Lz0hK#1{OR=mk&&|1Aq%@!;)Ztrr=4ywrw+z0OBl|7T}v%R$Fwe4%SV2 z51xx`(7I{1=JMhqtCnWEJ%Ya}r&WD-@zn)HzBLfxB8Zfy>t<6t4u7zCOdM=-tP}kkdXiPOQBqEBy^bEBb$l6G%5KLGF#mpSDCH`n`h~o11#4 z+ZGz~Gkn^GU8gw+0ch*1x~^(8@?)}eFSXeM9mv3}(q+Rk9{76&41)kD2~1O|(b|Hz zLbf#ApuIc7Z}q;~ksbh)9a%@Q*x=J1lZVc7P!1Ta3Q!pc?Mhw@9Jh^?YyBk6GL9U{ zL6@sKHBG%+Vj_yV{8%O5zWVXio9h<|8jH8di|1f3fEtlXcWlmRJc)vsG3@>Xpq{xv zDYhFn!;&#SK->!IpN=}o+!UwNQesuAI)~WfQnf6l`X>n+nlH$7i|S5j$N;BFm>GeW zW++KQAk+HJ0KhnDc_<{DEO5kmfjhC#2uT1rI}cMp0yGZ-U=9XkP{=hV;s6t~TaXVN z(UP1xf*%Ea2lh@*k!RAs$qD1!eJ~*PZ2@5hfW>>+@!SydS;RPA#Z(Ql+)RxG@v+Y% z#irYQgQD8Q8f-gE%63aM0m}-*Sb*yT0t;^G|Pc|h2EQ4rh!_=}9EpKrWmKVeavv=YhG6%?q!unv{&|P{6ECkP)+Yu>6 z0dd5Rf_*>9ipaTXUT$T}Z!{R1GT1dDZTDqGWoiYA{vsXBHeCW)FwVLqc}C>{Tk>I; zV3}lB=p-3l3MHogw~qt?iGqRhh@Ve5?nWdhs)SVk{*dA0sGK$O?3gfsag5EB`9CV< zfoy`SHUJI5k9wHvgA0P{zdFeNCs2Gbh)&NfX_MsYL*#^pyg5gON&FO94A1aS>xt(P zJZGl*5g&VzsWk){Xp}%A5{EaSL=N0f`Qi&CEq|9dg$cp@nQ+LRC3i)&Agckn9oFJF z5>Hl$7{%YCOmCa@)mKbv@WZW%6rYO8;op3GPp+{+wF8aNl4xx6+`4%(Y6 zj)|XmMZUugaSv$A$YRITo-rbVj17tx<`n#+xs8M+kk=V}Mj;o^f&aLS(}x~dHw;H2 zSaD#|zo}C=PJyZ5S<+q6jN-jc;zi=TwMCZST&ZC)9EeRsZI365`#Q&Go9F+Qy$!h_ z(0cLZppI1)c%8o)DsLEYD`0%By+>mQhJ1OCE(Ey`VUjweMkGgB$>}x4f(6v1murz<-m6#QuF6c8MNzd}&}Zv_GKDM&@N#HEmgApp=E z40yS6ETNqBgCD1qgc+(ekppvqBE;l%A_56=htu$cXSAo<6{(m#lerB}EWCob;|?&; zIgP}0rluM&W)k4Gxr9uH7Cw=e!FXW4XPH0dx`3>sJSw}or21fwSJke}TA?4v$d+ou zDFTH>VAV3kDk2>NP-Ot?iA&6rY*l?8hsm(Al^zZ~!vLLKlA(fUJPpT=N^QVija@wB zLR1$jV$mIhwozsc-ek9>8W?T~i)XR+fw#(GCDWv^+Gy`iw1RR7(`V13U(kf`^k=m1 zj3r&!PtOJjx1npFg}_5>MqZ{Sg#9>J3}Z-O7w&E!yOscrlL7{NlvPb&FGx79=*$g2 z!sepo;5S?@jSTVwSA8HJBculg)@3us_@|Q79j@L&M6ubz zKrAa$Q4%a3tv83HrNH2uOz_-C0P3xr$YGEn=P`$>zL(QNyJve|>`qI?h<9rmkx^qZ ziW&<|fnbia@*LKTYkh%_wL{s18mi9Usx*u*jj5A0^?%qZtr&_G~CaW9QMYae~cGI3Q~I#`E% z*0nZp0V!0*$Li*%mp@%{__VBc;3hHJE3Dll*AEeHL ztik?7(2D%b#XB3TU$vvuFRA6R# z%EAPlAV$rjC%`r8@J`43{>~)F734B&YMH2lU z>=9Puumr@BfWelEdx+Ms-;?BLn7PgGRboPG11+vAbsOmQ>UfDQ}1lr zg7j8HTy6V84u?b77Lw`x#a3?({`chR@4x>2Np4+*wBr6Yq}h}x<_U|1A+YzK;`3wm z`qk?ve|Y*kWsVSOyjP=F@28hke1YHqOgs_a`9&rXAN zf0l;OB^es(TL~m*EEO@^d`jMYvn4fRXC8?5nQr7DCkl;xi27xp`gEI>V`1*G0m0sW zteQ8{Q+j(dBOJo-EQw~f5+qObNIFsdME*H9}4sC-S;CI^vbo+E> z+xmKNS65f+ODc}_;4rfu;Ad^Slx?WdZhA9#YzeZD6;Z>jZoFA$q8LB{XY_`E7##bE zrTLMvHO+PmXu}l=5<;G`p^D0s?B;``2A2z15B=E%%V6;!BmT7QeXxUS+U}`A=j7Kq z#g4ROo}(op2Dgsw*|1_JYpv)l zM~xh2V!$}37@`D|O`)>uadXi?*Ex+iNN(4T-G0cfNn2@5eCZ%=vp{}!QNpJpgh{;C zXHY(x=gLVON04H!(!Aiy08K4@_%wsmiuAyrMxfEdAmf1NVSnG5M&MZl*4TW#-ATiL zS;gIi(?J_qpa)eqeGEWBG-aOa)FhS4*e9ae+PhHme0?$Ydg?X~0 z2?d7isB?;<7I}lslZuZ;xQ762N|T!vCr|T0DE^Evp7kIwo}W7xkxh1IbrKS4%lr4s zM+Ey`#3pObB_7ri2n>v|E-K&U-%tI?12!yMt6Zl`C$9!sOgO3 z37U4SWUtxtl$9U&U|V_!QTfA?-Ll%1O>gaY(o>Ok1?^T-uQe-iF_8+SK}bMr(G`(j zc4^UDqas9Z+CW+@Xo6DEhPK6ECJWbUsxB@k`Ytd!jhimI;2i46dqST(M9%FrHh$d0 zE0;Ig(T0A%rP~Yg_>)!9IBs%hFtWyfTseSYhl^R(`IhwlN(~_;6L!+j}yPl2m9&c5Ph86rBw4E$)IaP zm%)wHTcf!^CKXjY5b;k(!&5LI!<9CtD?W`J4F0oq9hMJ9+Ox6yoOLsBFAwdh9mJg$ zeRoOiKAaXwK|e$d8xEwvFXi5}#tsUSRDbslPyM8Y)?U+Vokw!YjRp))wYE)UK_hLE zdb^AIUFhS7FEn}>Q50-5ZA807g$(twG8|ems?k&nNSpUK^N=sm{WVxQE$}i8w~0{S z{}bQCMmt|uMFy-QJCT;Izli(gXvemoj2C{TtyiwHe7$L zz~Lvs^)+!=i2fKhYBIBPCG4_a-T5w^8R1oh8bbN2P8HBi$5iYTTHPyuHqz_Ut&yE~ zWk1CAFzzmKP~5Y4+h@r>O|xut4!SD>ksKArC=MWs#w(p<7xmwcXof$Ea;F}NT;}$e zjmY*`bIFVBA*^5@^Dx0gS0{5i;TuUCMqCsNm4T&kAbm5Qy@wZ^h6oq|KV4SaBg5l5 z2Dj`+*-~(L&DXKrCTP<-t&8J`6}87eH*#pSmsUEP8MOws54AB8!IBxZlQoCx2}EUg za$i{$Rdv7Hs&or>1%9AjQ+JVv@0#07>iOLoGAX<^4z6)S2WQ*L7;5f-UxXxEZi;71 z4)f=olj=EM@d<6ZQ6n&au=plD!g|}Sro)Q{@2=sspsLy$mF;S}f6Wb>WA+1VHBEz- z4+2&m!g02)>E?OZgx9%!0lqZfa0$vK$d$MJh?@=YOn5^=0&i(gIZeAwdao5Rg^#vw zW-~h8^1)Z|5FgCgE+fYrRChAYlEj|MmO+7?kjk&f!!*KDI!?sWs{4IgVFDsABoL>- z!p35l&=oYun;;6>&}CJwPs4tG+2t4!b4eAO65%(;^%2HMmgP^R%>*(aosC_a0WXF{ z?oY1u2s|EEB_4%~hz4S6co6Li++D!Ig?7sk_tI5E_hpf<)}^-mKY@_j;nuG*4cB>N zd@OL__dM9c7Zww`m9sPadIJ1YXwLxD5-CgIWMZMtsdd=a|7Bg`qQx5whORF*==ho5 zB&c-90MBVl3X+QI4l`Y2D#$clnY~3~Du?j8Zb1r|*y|wy`vj9RZ!b7RFBn|*4W6pM z=w*udA25ak96_&brz!rxTDH!&Tuu-TmK#cBT(41s%6sWoIzYO2YeU+VxO3NR5}d}gm1viIj4O$=dZwEJ%Pk>_aZg_z^EbbV8gC{WUE+qP}nHcs2N zZQHi(?$fqy+qP|gXCCgu++-g14_K*WCsj+&F<1#7)|?GNz&Eq?r+Hq-)vu;nn}A)* z55B>ckg>`;%uM{3!6)7!sGx{)l6_lBGsDxT#gg5=#+DT{^w{lO!l&xGMHrP~YX>u+ zw)Q;7-5vj=(U4%WAgLv7Ph-JM1Hi$vW%+p~^_8z7*0#HvPon+E0DKOT$%7h_(Vp0^ zn!uedae7)paF<101fVL4>7k~PuUMS4&T93MFXL0!!q1MTlj*9)b!hWg!s6<>_CG1l zws|uh(j$~b?@Lm7MUcLK7?ysW= zBy0%K4&HD!5U>t^Y?Q&FBkZ)tRs}`FpK#xNC1}Yn)UQ#(g)^RP)C7N;d=&e}47VCr zcK&>#3A_a~hQb~oa#2&L$*6k3)_0#WacfxmRoiqR+s`ZL6kSH!$Bd(5w71^ z&$30xrq3crl45#-V2LH%W5biZMtZO%kA4!=zkPz-A37xUEP5?ZvtX1x($bcL1x zVMpJpb*NA7ZD-7nK-c@-chmDL;jm2oJLmiraab~El3)N&b)p;}Pq(Dy_cZmYryp6} z06sz>wY>dBX`-`UzM6ff<>zhDm-{l`-UMuLNvjRP=@V996SX~$+N$B)@N^bVlfI_3 zlYmK#o#kTf{)^a8>9qc;nzi_nv}K?x#HBdY-#HLDuUVE6gC{%}Vs>00pyK71;)({gq_e=%|?--a&EB*b5jiydUsLE&1db zbue_7!&p3Jf9(-1UiSM&=ozHaazh6$hNJVv0yxuxHww;jO*7fZmUxelp-w zxQ@~8I>B{Na;OnGTEw;Ed0&o1bpNgv@5xuNV46;50@+?9X~k1lLNQ>qk=~3@n-s7K zA;*FMv~>b(tKms{*`|yzf++4JV((9QK7k=(VeHi3=mo}!%nHVA$l?|1I%KlH;r}-= zHFWyXRrs%z5FQu+;2%E)VDDjUVC!sQM6YLI>ulm^YhX>UXJ+C2kCO^f?6=KkKR=9i4*|buvQ78)vELJtw=!)bJE*MK#Q; zlO}!OnO!m4bcMjdX`ww^Pc(`jL6BZC_D;>QI?5x$=em?Ah{JEh1E1@OiEDwQP3d;^ zy1Sw(=NA%Zxn>S0PxN{2BNlrGXF=GMXKV+BJM$*_i;C&WA~S!*$R$a~PZ|Mv&2Yi2 z5LlNe9zcG*o+furzd&|>laGL?qP(oJN&%mqobnslo(dKVL6_c00mf4RMbimM-*uG= zn=qrdDHK!g+lsOVM(2kX!IHT89G*mr_ZRx8>N5v}S0=#wc#>uCAsdt2oj&RjjIGpllzGWAkn&V?AR7X9FW^1E>Fxk2W#=P=Nvnp|_7Hz_>IB3SE$3g79+%TEVt0 z8*?4h+)4Gpx49e5?J$qu_>W5b9Q0!W11jb^Vz!$TbNV%jIL`S@UN!xq&<<&Gd|N4JhS0ABhTHWM=;|jkFqU@QhM# zp!z&k9FO#(-+jz48%z7s$-ibaEQR_jP37i!jM-!i8d^UxvN zmERnF*kaCa2{$HUQ=M_>Hjw2$wO;$Sraqb})B@msN^rX3KTS;6hQBo$0B{GIpt zZa6A_ot$T1n6~M-Wp=3~m%heD$5c!C79z$notxO^GMTj#~qvu9e;EIB^eRXp#L zNoru<=jP7wo1WU?BfS5?0nSI9>mq*LPoy8K-R90X=N~RE-i$9X zV&VYe)F=LlGfcufy_^_8J!A%RZtbA0M9^5!Zjx7B4EnD0(YZSvNFQmERls$PaAi!FQ>R0b>y4_VCVD5gp9Pv-A4x00E;Ev-N6}8?2bAyY;qob`lS0>dQ{lwA;>u#`8TLY)8 z`SgXs$iWPy^!B&GB+zQZZUlwVS+W=QUcAyTJ4XZDT)f?Hvu{OW_MC}7r5{(up0 z3|W9e)a6`rH!oGTX5D9M!C2=j%2@ zOK+6jMhl}0P$dVUZ(~KXG^sN)cXx0l2cxy-mwkS2-sVoY+$~{|I*l68jHo-rjMs5f zbbG4JE&I*gNRF^JnitW+bqfkJA1S|OD*IbS8`Us;&d<5#yKzf_BBXkG*C-%{4p_Qh z`=qF>u5D~_kHPx_flclZtO)dl!adNs$$oQTJrFq1Y;2G$M9#NGg$lZb@0ulkp-8Ul zTUi;F78=xsK-aKc8C56mbo({%z;x=%s1dzH5f1d=6Q2aKq_{Uc9b38C0KKq<7A^%} z`ugY$!Y(UpyFFZvAlPb!y_~u*P`NM9o!ROZ5Z7F0P3gGbB67&<<(&!jVG;G+fR;Dc z6)yQw1ytuL_TDJ-h2V+{I2LSNv0Kn%wO&ezCKuaqmWuG!0$3~K?HwIR0Q}EUfaUlv;;qdWV=4D&^uw^gWp#o{p@|X?LIeU{EO7G;^P#E+2(FPg z0An@#Y+@9~AC`_{#oO&~#L5L1D81vNhvrea+~}f^8yvy^pdx86v5Ou67O^1o=r6-B znKv=5;x0F@^OOU&@mlrel*)MP1ogX5vW)jvdWEWuat&djnu#m1a2Iwg6xQ8dU&laV zOxgzfK(HyJxg^ukPOI(V57R6GXf&8-d}f5Vl&+dm(22}3xqPM66715H&73|ym%0}T zmpn*7npozL!>(0?doA~i{R+b`5ig{R3*WNI-Wb(_C{-cARtQg!9=SmE;Y{`B(8c_T z3wbP(M&a~xF{^0~e)Th4>qH6T*rSPd_~Vi20x@Xw64Q~qt^!93jcETi>Df)Ty4={Q zcXv&qOCkXBIJh)RoO>b5i=FLOfy!c~_1rQEVFCe{IoeZKWd~pk6PH3W1z4b^bBSGC zP$-dZ_8w|G2l_l4z(Lbw3cn3*1uuw0K3eZ< z?I(mUGR*}bq%W8y`;dHXFg2k@l;SmYTJL%TfZ#14>;JE-DN5k39PCsVfwfMI?avMg zXB`Qk3t0Ww0`{5?)8A%9gHI$szIP?u+)D6uF{c*+Y`!@L~!SA zn+s8!jE?5RIp{cXAUBv45QB)Rg{p)Rlpd66mvL&5R$A-)?<#kw5zsIAr z4EV;LPZ-M){iRa990U52=d=4P;jYX^2^xaet23fh3h}WKUmcLM&lnm&SA0m$uGZbA z?g|Zh4$@UuPhJ-=L~U2xKdped)yDu|88em9^y)*8-)BH@op;Q8cm|MBt=&L=jahq zN0-&bYE&N5&!iAk!i4hC$PhXb%NqVi`Bo@Gt~;OfGlad)N@MVbQ`TPfAVE_~PQ`jM z8*Dk18#|CvH!Pt45|IDrIzMREva|cqy20p1{!#AA@K6!y zyOsHg92B&1_%^;pjfBiKSsj~OLFe3VS{B5hw&2NJt)#W#ZU>7}!(2)HDfOc6Qf?=W z5;|!*X89}CI^~(`_RLU<1~qm9IrY_)Y5H4f!*xvPlLzQvR3#ztH5m9&kqi5hy zZ&%Vi2C1?}<+;b9Lw01J#K)zJ?(fhKMk>q)yP+s*+qXd#!bhuq$>MT%JFwrx=DL}q z=;dbHBVF9n2@l_KvNc}R3j2P2clkqH{j92HQ~iot6g|VvNNP;14Bsgu8hJ7}xw8+j z7QsfX8*cs{K)04>T}!Wfonkhq3O&YOaJkuTqp>Z!bRV@=%G7Gw#%=2>#F3#^<0>O9 z1E)5lgVpK%bFa!8t1<%z)b92j*oh(=S6Y8!J^(TCq!1(2Y)BV4LzO$PRd|>6+ zbRMZCvNmV_&)5AvX@NACuU@Fd?n#gh1cEJS8Ebhys=`1Gn+$m4BBNHZtyVqi)Vjoi z=rdMy_m*@r563dVBn9Pa25_eyT?!R2lh3G1hiJOQL)gNilGk{FH7(pV z+qva;1yt7-%?B{i1j(2&lu^EP6{US0OQ}v&RQf8J=jyu*4?D|(k)9pi{y0ch%<+iX z+d?ShHFb?yU8~B7CUz>KOEqJjhzhH;mkuZ1wUc4KUx0X_gZovQ!bfMq*SFxy(`29b zVb}gLqY5ZBCKP5hw4g>{Pv1}14WycP5wqodPB8|P3e`V|mG>hsWhCa}5$l z8K@GUIeb_8FU=OAG1FXf`ql4!kM+%02(*7LxW;zIx&a)Sms<&=u#E4$$7r>Pp&gZr zI6VQUX*ZFv9b-<;Kw0=3nCn=rcFmNPwOo0S$-jXDgaj!}d}XXoNH3lA{yBGRwfttM zo``~%!+KXjpV8$rKvkUrRtLJ+lA)AftNz)TtbL8U&XX;5=qex#*~Du-=?fuxH%B>c ztam8;HW53CSKYb&!R;g6c$(W?WuBuYFKojII#`kBT0c#aS3XKKhZMPk((+}WKlI05RIvdyy$PYiI`}IGOq;eku{gp2icqo z+JnJ~94P}>3ypPE-g@G&q7-(EDxObP^h;gwovQWR9^748V{EBjhKIUw-^wkdd6cTW z>UKKq$JiQ?AVGQW!&2%B>xSbp5FSm%7v*;B+Tf1=HEb`5!POshFZkBEwz3rnIs}>N zsqGi&F5BDR|2`J%zk#=Ug8%^Vpa1|6|Bpr5#?Ht}&(*+M&&kB`-|~E|wi&z0hT!w6 z2GauH09?KMaWDXyc+Ez;K?8KfCSZVpqK36D;>;+)6_Itc%Uvv?z}_l~ZWEIame@Sj zo|nPtNOy^ZF&Xzkk-&&>T#$<8uCknIrJ!cXHW?Gmhbz+j_zK_K(__NUzqRxAbhtf< zVe77NHwt9r9)T*AFmh+lwTDfY^Rl0OFBO$s(kxB( zk*13T%i1n zcQxKgp}a)S*0h(QG*Xk=a)ni7YN9dm&poapFR>J%&2kVwVGf%s-VJA}_N z+?Hu$Oux%2d0UZ`-L@W8?EB)Hdf#*Fi^KAy{dz54#ZxYL1ED(-j&l-Vm6zODa1#J@ zNKp@-I=>pvgGmk8LQr7*++H#C4V*=ah2)#2dIe&A6NPMY2qUdWWE_uACpzW^nOFSi zULH~o3}O160DDL#N-n+ULXEpv09X*)Edj-Ef`nEFP}=O)ISVAMY4w}hG)IPor>x__ zefj-LoQh#E@|dNvN--cmM2VJ+od-ml+dP=zbzIB2cVUGg^e&fw7sT9~Wx8~fXl;^O znz9r5W+$5sZ^2#h2FzAwy7_OGA>~pPi}%2kqsn8GJoR8qn?**bD_~ATWSXsXe?5_k zf&m)b^h)uyAf98gdP!423@R#YX~4@hucZWrm1H5V#RyVoOJ|yaQ-+p~Fwz^9f(TGw z|46Sj)?WKog*$S$B2fGtMe>nwk`0mmEW&!_hErGQ49HsJ?(`57~hZ1zTD1(X1qe{vVohx*{M zJ7hN7mI731ChziJFKf|z095PvncUAq8(b5Vajx)S9R6`pT7C|pf$bC?!hW;471lg zhyrZskje?PS)CLT+;km%yF>>mLOV`EU*DpP!uDXr5{UI`#BQ&p73H52hWdrNj^K?O!2CMRBBL!HJIwn1GbGCj_<^4?{(iyz_vgh| zGc=e+2mnCq{l71rHg?7))_O*EwocBDE=JB4cDDb%ux4Hhr^B}T-EV4yS#U{Y*w?Y< zOP=0|s@E}PDi5X3q;08oZ4y!;wpEmh_+-`z-Kb(r<{_xJVE+ZLi(_D_f1NgniP*VX4Dip>`6 z0*6(&LL8ABZ+>ni8`aMaK>MJdooi#gSe@G5xKUh~(q7z&o{-woXTj9h?yWnJiDk{W zuZPOY-ii97(=4A(yv`cTr%j#pIG6Q1EewH7_FY4z^j&OsbKOHj)~%N|6g88@swEZ~FC4CkKB^2o=uM%Tk+&cus$_sn{qzwn-;|;9;ASq9N^4ns~_W)u8XiY6oVbL zZg&SRyWOCQyAzD`qxH3FUh2pLlWGj&XAO4n3{t-N1%JJZFvR29D@>F!?pJgc$DY#{ zQx$Gg3-K^`zXM z{BU#X0zP|O_|a|ttsla^*lZE0FXYa6&gwSKJmYiCdn&nRJGnH?KZXsSGf=C++?S%; z9|^K+N&oKnG6 z@~r^#iTa9tJE5?2P4U^h6=N@E`O^<8YG%Fqz(`#VoR2am%%BiG(2A-r;S5i(dKtN4 z7o6gnf%hH#13*Y`{=&*&k~<5&Zk>AYBLqWy_c0ivxi8f9rpGa>DXRW8*81$f*xvUD zFCW0mye9wnN!qNPp4!*c!Km;6s4m!d@{qRz9PdaIfadh=tq4Yc#q!i~|CaA$+>?QN zd$Ws<1ssgeog7LL>Gq*vT9>ri_c*hPmkvUZ0p2*Af!S8ph-REv%wsxyY*^qPm0OTqTI*D@Mp4Be zspa9Hk-l!bI=J91m=Km2Rbh>{Na#v9@?Dd#N`X`x(7-OecD5d4VAFiR2AN4Q$Y34zX!|MPSskvI7!NKt zv|Ti5PwK`HHl;rvdn}oIH8O`n5g{h~Oz*$Zirunur!^TL}dAZ|Gw! zh%`=45{ceUIu4ION|_$vK1f-Gzcm^@f6Tu#3SD6cA&E9}zyNIKAh|^It2CYifd5qe zT1y2VwQpB?%m@wfq~D;#<#Y9V{dgNT((R+f73x5dXw%G8bZS@f^2dvK<+|~bRw=>A1{zi)z}=nI*%LFX$6mJwH4$mm=aWOJ3WmAz-E=L%yG)t zHZ7Eog=CGmWM>~1nkoe!2G*?f9%w5T$oF4xhF1jf>6vDf7FMT8itG2)-erFfWJ}8% zr5zAXr!dQ@{WQ30X|j31frxVaO0E9jWItAuW_0pIG<%F%SM-L4O3}{78n%|f3W`Qp z;w(@&pkOSI(=B8`n78F`=eq>TFYvK53&nedTE!$d&v@gG4tCVq2TIRBhm$DV?9raj z!f|m~GtX})w0@B)x;S_d|4c_k<{scaCqI#4&6!`WvR z;sLrF?0kiGjF_TqR>U*6EzJ3_WVH$NqK~0 zukbx_la`?PqPSmo%TcUuLionZMW8>#N0F3#*_!yTY z8}+A~w@%!KWOY#D&a`B&rs4%If@5RK)C|n#HUZ9@6IhX_3^T` z++81ppj8|5@n*V7QBr|D9&J#5r;yn4!+m7d^d*)QFYaB}A=yYooJPsTQNF6f_9ca9 z81!*}Nuio-ujr7s2IG$pxb%7v!_WM6bK<^z!(ffdc2NI1P8yI)WC?}4&(8raR#*~H zVo_&9x;*w>64`i@YfPR?t4=}pK~#yl?iW`-F#fRao&Jxjfd(~W0CHE!EK#xJPO`lr z@Y6Jn{2bAi%;A-A#xv=fC!A(WSA<|i5-=6OnZ(1%!{{i6I1cTp`^9;ud-W}U`rDhs zlMCr?N*b!ja1Fg(>oI5-fDq5v&yjH+Btz_H10KmRE`n2FFmIsFxC>;VYMrmzc)<;) z1%O+XFQ>DXWZ94aACNvJ+nd~4FV9^iVzQYC;$BDfDpGTkuC2jD-Max#E)1UKpgM5G z7$>+L!$VKv)xQ>DyZLkBojC`#co1LXt!LabxQ6cGAQAe5KDgL#fqUHk4OXs)wbZWV z{zM@1b12|l$?TQK>p4x2eRG(&5_f8~C-3#8I;w+IPo5Yd*G*o@HKj%Dwfj{@@Z7b` zw|lq6TKrAfw*XxKpY161veIssO~^hf98(LA_nE58?!>sLMQl1=KT}KP0E${kBSA$m2Yo}xu9j3eZ+a8NB zpW2p`$PLOMjOJItGhG#P*#wv?{IRka1GrL!0I=J&>P|89RgAlIIFH*S+cDSC`+upP zHNC^P^nBmf=zb6aN^kw1+sPQzbNq&11R)J8M)WyyPQk;u$+pkT7M%%sWP`9gQ^-~ z8W><|(5?qt24yAoNFaC_<2@n#H*&SJP4IJg#hny#?nH>8tC+%00qZRIGlctm6Tc^; zAgTLfjNBlCAn_Z&iL{a)eQfH2ZvN`i>uk}OgfQeKKv!GP-={NEh3?TChg9A|3ePC3 z!vlkDIEU;%8%3`qvQ9HSoh1E8t&n#vm}FGLK_mUMlgc7Xx0swhx;E-f{lBiTFv=FY z_@c7NYlgqR?Laz4n0=1da916p<)stsijpYSu`m*B%HV}KLlS(K4Cum(5ia)GTYBMP zFpV4%fd)ii6|;*qbu<8lC7SjW48rHhgl|fxMKF?On3cR&MPxODVqE?k6Rkz&3?r21 zD46mZ1K9}JBo4eL`9Yjcnf^7!Dvr&q1h)yzTBN|%DK_7_FuS-QvG z3m$&38}}b0z?JS$0-2-rF0WH}>_ih&a=80c!P7N}NjLx({AN6_4|!e;%9TrX`1oo1 zctDup2ecW-=xaoO5Xnj4Lc!~pEYVuIaH|Dg=nGsv2ZBgdWm4RZlTDOXQERI==s#mQfHBBn)IwCfbbv%U$7|$ak+zTj zkXQWJ(v>!prAWx{774POJe10;(ogxdQ6W2lc4IAF4sIw$G(as~LXajucOTeam8PP& zD@_4PaTv7ZJ7*%sfp`dk$OBnzXfI*%k)jGkw*<~4qz6P@B1m1YFr;vfG zXtTlkTx2TxOd%iC1u;%|&K4wS(=LRrL) z;$wYP2D=`R(OUKfi~?Z7nlH-TC}7~6liu}upIgpO^fx>{R#PLQSF>{3L*Uta4-JMd z!RTKYL0nArJTG=I@O*6C^}c^k!_g#!zD{EO{k)o-?R~paa$BA@nItOd?a{<9tlm0VpD@u%)Qb`!+d8FAd-2DE8Lm*d7P%U=WV) z!^`P5Z$yw~k&-x2QWDL%@6HL6qG`D4UGrT0Bh;p~vCI(D#y$!1NJUz%lO$<_$X+>_HbVOgVl5 zNnlV2BO{L?G2CXP2DsPj0zx;q(}aoCj;i@st|}^4{KvHU_5BL=6y>2%p+?guaI2x? zIFUiSje^SAoC?_3plGv(Uw30LiZm(o4-qATTWQ((`9^@K?>bM|Ki zOnq6|ghh^O*#%@tL`=5vpBtB@`n{*t7qCfl>jI^-P-UnbE+<{Ust4UdQL#mYs+@Be zBSr$jaeLsRd;ga#K3QFPoBdeYhQS=`>GLo?2cVm>^2d!`_mKoX(<Jam)%`ULM%-TO8Hbx24r76+^M`$J2Wx>)LE)_Up80$_S`8oMMl8<9_b3Vyq zaXjdddb)MlR@uC{!cfWQd+6A_ft`2zLiI1>D68dxhsKZ)^__H1-J#@LlFN$eymz=C z_BYW4OoM2dt1`avE&_kGZCX^5BVcBsK(x)1)D2ji-l!)0Gwq@O#`sYwB);|?UPy68 zaj3xkO=>NwNAvtZULQ=d(3=k&$X1}88ECRW*|d3`Rn+!*KQ{w8N}$4{_xLoHL?G=e zVQD;Lg*I*#v}X{T$k?w?BVPZjyntEZ& z@=BAoj3`bDMWs90kA$>sbDCV!*bo-xqUipk2+9VCsmnxIJ`k`|=eO1p7k;0p{daq$ z0$K4lW9cv)Nd4Jyt=blfFrhpiL3hs=<;&b0*hn5`Eoy zw#FqPT(y@nJ@awb>rj5 z9J`Vp{>BGB-NY)gEtz}9qgsg~#>lxe!~e(|0_LT8m%s%9gz)N-J%>w;0{ag+ZXH?m z?9x=JDjs$x5-)|M__mP)*#BjV0)6Qbwbe-s<;85^O@}t z=@XP+pp@`hluKtT9{0L{-R^{awlxbl-17Sc-15zV^dI*!3M4R1`fnzHZ$nq)=aAOl ztu)xtU>_)%SR-y@hHhURh60D1n6o}-Bzm-h-d=)u(5NI;xVBOAS1v#|$9c>>zu@gy zUnQt{Uce$oxS|{}i%w4)sy0M@CsSK8$gwjAB~{gBZRWm%A~N)wMbV?Hf3miv*||a~ zj#djJOvLON^Nj9Tc;E>=!GK7u8X%f~?x*)>x!TInVi+kKj1JYX$$UipV=N!$>n z%N*VQ+7D&b^f>mA(z6fPsFUB71`83=Ke=@;{ryPfQju<_@0=1gX6^Vfp(5TwZsOyj zQ^@HuF~mTBHb>WHvo)ZThMob(@LyV6o5E5+nz}ap!>ir;%9uB-8?O`kr{y8;LRE8y ztw%VSWgZ6%h&$AdgTlKqd@8@(=~N)ev;DUL2q`8vq7#W2tDJ3LgdQIk)z0_ z_#KetBx53?%u3G=@T93^h#h394KJltP6UxBMJlw@7r)LSn%a8|132hjr1>HorY)1D z*Hmir{QJb?8Dn_-I7;H=#_}WrWF`rROYt7l7i)!mPKZ&LBD(BmfK@%2;gl9L)2N7Z zYRKl@oM~L-c?*q!|N11=8}W)o_d=b+psdU3y)V&K~Y71)n7rQsH4>O zt%g*Z>CN&S+qxpFiZ zaj#*{sSl>@Dv8^gz(CAXr}5>9dm%lJnLdTLW=aGW8H6|15Ng%SmZ-bKJ&ikNCYjNb zxytHu;j2dtbb5dk*cR5gju^MbItIy^0*Hwm&)a)$S<7c$@AHa$T`jI=x?!ZAy6&aD zE#VhD#Dg0F3hXU%cK5o(5cZ`%v&F?;Zq70HM&X02EE>L%C0eAV>81p1n!A&HQ&fl) zqRv!zFd7&*cH3a78u- zkvDQ(-u7r}sFX3biX(!0Amt{IT^rV*g?(6*;aG=KDcM&O01~Qk6RbnPe{$yU&D;Zt z^Iz%KZC6@C7O!aYeV+GUTc%o4a4&DR>?HP0MzXFY`B;4PVN2yX9?9&SH6OzX5)FMDM z<-q`5;c9x$sN@JDZSTFfpkrA5=*=4fyK4^Rv2-s7ml<08EC;%Zm)kc-J$2+&JK|_Q z&N`~zl(%8ZO*Gva+8uf*>|zVoiqk_~&y;_iO0JkksoG92Lf44zqv`Wdn`n|)|Nga4 zx>vXf!LQO=Rw;6%c0{3QpI>}-xIpo|*xXm%(}?0l-e^keFz9bvdBC0TKQ!E9b@5WB zrv>SNr^gt5fWTta$vaG+A@vMU49ruL)y17;XQq8wOW81cH4H6??0=KQyFk+Q-Fyyf zsOgNl2V>9 zmk|`{uaWx<*Dz9O#~@WYe$}D#z@>&-+E5yZ-1uG>o!(Dd-l_M&;EXis?4hctdC9(y zTUIvA!s^kZ>>#C;nbM~9gcwl6WVnVjp$wMsVza%HKdT_dh0ey^`a{Ji2Wh6A zTo`qw!qTv{moU=_Ub=643)jVhIg(j zc{riSMPqe_@AL7tT3}n0+BEq)I5nnr|F+AQB|xeEE!LcVW@aVDYz&@L>x@ zH-v=tf}iV7Fl_$yP!CM)aF!gyigOs|2bwpvgDE{>ERAjMI+whrsg<}AKRaME#by5<9qmpoU)VB<%-X5>A zCA&=2zE@~^0Z1PIVs!rPo(d;sKWG<3a_#%;D&M7%K(o$7J^JJ;DKt3R!TKu0zKny+DsyzHik_>rUUi2_)P; z!)%D3JJIq|g`MD6u^)jkUjAU`;MO~mw7Ot(U{I3w{`0e<^i@^{w1sI&EqtckE;D)N zVVm381>ckTY;Q_p<>nW7H!v~<)|6Z~LhQhM0a-a#3ckxz@=`8Pgu` zyMIM-8jMe+{T(W6`Md+rvHpzOs=b4t4p^_Bfd%Iy)(lSq>oYT+6AZrY2RdWJwlk)t zazTRYxt~rOhMM+_gagi~Qp%1+S(;hbFTs1OTkxVvn(rp}A#Ps$gMS7Lzk4N+RyMfc z@zvkR?Z*t#BHqn?Rc&o9oyLhDxX|`$la1N9#*s;6n+yn1rfYhJJ&34s>4O3IOd)5D zV3pTpqWV^&g}-IK8oof_$S$AcLV8%NkaKYd6nBmefcrY{0&Hgm%%D6%wwDet)i^fX zmyx{@yO5b>rlr{DmZhNYPq=U{)Y^rSq2zN+5tr_3dbtN5VTxpCW-UvrKdww_E5r@` zKx;XSQ^lSAv#P_4Oann=r{{&=d(I&&WrW(1N zS#2WO(&J!DA$z?)hX_?p)GZbJPGqO{xN;2FjjYgFnK3%OQX;P4fJ>qrSb^`^nf zCWM~Lc1QN`RTU8>kD*m&kQ{f;^VAmVc_zX)JVWfDaMsXXG_7Ap^PpCh!iDlGpU0>* zfTe)QUf!Z6jx3B@+u~zB83Mi)Ugio_v?Tb)AAY>r8G%$dyU+S)mu^W-?|uX8Nwlb7 z5r=EU#3+MTL{gYj`m|ZMdk(-1l@4Ze0X?E8u>4J45eUrW9Fro^R!u6i>CObj0Ebl( zx^!XRu=R?5AK4xYwW}M`^mI_8qIvbGRH`p;=VhYts7*n?Xc?Z;&IC~UpUIC%lrA`` z)LL_2UkDO6nQOa&wVn!TkKK4fzOBdVn!;v8Lx;a-lcZr(mY_zDoKyb%`S~`0Mu1 zbk=buirQr&;U`2N(q_7XWNtf$7eyYKxlBC>4Ri;6!4C=(clhSXyVj9Y-YpdIuW;`S z7Ga4qRM5~z$}UUg+laMK(IF?~0l97e-Nwz7i_hPC@)1 z?Ct>~Z&nv_fWkDc>Hj{sb%)=w>dl#Kc`xmd*up~^?<&p#JPs>{p~`L}sLOCX2PF) zGb&}`m!trgeXEUR%w9tieQ_r8hCwal8A13A@cHyVi-~%`mo;PTFm~slY#wl>RFqMc z(&R)dj=IAbXPTildCH)1ruQ4>V&1|pZkb`OcJK6+b&^i zdgo7Y)?uinUdbc;$vZ%5v~1Rq#o?1RC&f7wUE8|aKiYoS4gNh0DbR*1= zX=M{ASxLhb6e%nNu*NMfge7L@uH&K?qT}`cmlLoH?Q6e0)nOiO+DK44t_5+n3sUBO zi%K_X_vhtc*40TGJ9}@B*Y67zz*qaRmQVHSi6uS{Ms>^E zraG+Opcko!5ZlaYfjH`9V7y&>h193rTEeC)layX5}Por=mpQe8+C zF1z-}zXljcFO`1eq|~-xl)p_NU?Y?cRL}PCNaN+Ot)Q3&(4kPUSL&3G;mM)Z`zkeb zTS73K-L%Pnuor<};~!BK?VY$Qsm=d;JvoupFbnn@5@;Si8jDX-{LXMS9S8!iYb$}pC)|D~x9 zBBV)~@g5=z)hUpxXi;kF5`x>|vNSlQnWKvWR999fJMyPoLhgWLbxTYw&gH;`&xd@- zl&<<{7<%bA)QsXem3UFzgyov5ziO+2+{S!>BH6TW%b%#Ib7L-$0pigqQ@dk`8c0#Z zlnjQPbHX4;2!Srm8rEpbmy7m2x5t~s_nd>;oEV)@hu;}}wy70;sx_-CH_bAGN_F_C z09K4&WV5J7aJ3!n%B2~u(GN}4wv?AnJvOvxq>1hf&sN?ST@>$OSKw(1<#GuAAqhuQR!qJNPp%!pU7cN`Z! zyrj8*z9~P!Onm{~X5qi>*$hC^sCG1tAhx>x5GN&})lT3g-?Su7Sr8T>KokS?F+E~_ zhwd7()D4-vGWqEG6zdHRB3Lecj-reG3}sDG%xd0Ps|l~y-4Z;P75950y}MXGM0N_} z>fs)=x^Jx+s#;)nllL6yNQN2k(PN)0eH}<+Gx4*GZ+-*soY$AK{6D(RsY?(b3A1I} zR+nwtuIjRF+qP}nwr$(CZEnx*)6O~bn13KMA~NoGQLaGg9{pFHKMddC2FSS)ytaE3 z=fs)IFTaGZLX`Pggs;x;ZOP}%9UROCm|;fn87|@#vGLzANJm?|eD}tOF9U<=;lM$z zX6kh|abpxl7leuK@MGHPCREU$P}i@nJ}<^{BR#;m5b`oOQp9%P5knBKej}_|_C*)0r*BitP*a*Fb*;LAzEG^%R+NZXg^Oto`ei zxG}0kH?<8#$KRNT(lsaS@y!Zc;$#TQ25|~R125Gyda2X;pJ4gE!xv#?)QYCw$VYgJ zQ8LYOTR(6tQQ`f)dYJSZBn$B8*BCM|yOSLAN`o!ZZ#>!6-jJ;aTjl}vV}m0Q%xg!n zWxy-%a-`FF5~n7=q={ySicC#B%Xtn_rAx(ve2|^mso_nE4Rw%>dq$S+CqH@v&7XbB z@-9Vk&~xvIUs#?QVVWCn9}{e8wAdU!u&a}KBUTYIX<UM0VbBLye{u56LJE(4-nxYE{wt3;<8GZ33lsq03F&`>!;Xe##@70} z|2LLd|34dpx{hZ04#r0RSsYaTe-F)#u7De`5pc}QHh&AKz=p}?2EjBd%)f^Q3Dq%K zBCsd{a`Wf&hFr3MnA5IBS+^jp>omucZ}#-D^P>+|pOGvXwYZLjf-+q_zlbn-pToUu z9C=YtIfT6PFayH8J*A3RrF^02@!dq5*fe5h3M)k2-ba z?o5{_5)v@k>^{OB#nCMkg2})=5bd=^UYmlJ+Rl$5_VrSU&i^Z_3c4LmlD2!!( zK1Y5Ls~8ezg4ux^0)6AZPUiz{A&hukt}TSHx)?_XC!E&Z8wh{_@<(Iw3&H!w z^+eh?pz6IbC!L|i6Qv^_2~@uE@RAQC9G@%Q%!I?>%Eb&aaXR(0Lj5Z_kC321Xro7- z+JXa<2ylXwqxI`e$Mda=MP{Eq2Zg!a)aA#mV$Vc*gB+hGWIog zRgC38OY8^1KFmD$sxtPSHw7D7@c|$!MaF_HCLmZg*d0P7I~QLNm71h5_~Biu7mm(t z3mWGv?X+QjTz!nR=H%KW@yw^mru zn>ROgFEJ}5UQIvA2XO`6*(QKtlXDgQUCf0Gt|0Tx`Aq16hF%dz3d+VeT8CMaS?Xtt zeEY|@%;{moM`X`Hhm;_e1ruj}M)MZw^`w`HP$P zA&U3@#<_-?qeL(Dxput=WdS~5PWq(%>_pOh5S8gSs%!&##g5TFKu*7)r4vf)mZcMU zt2G_JT~C~Aq*G9+O~pEx6T?VYQ=ku-)`X!Gy$( zFIH=1K<|j0bg*sdULpYq??K^`g(UTeJa~sFndF??^5ZXC00gdpF7;FTnOhi@+qEUt zyV(bu14Gt^OFE}#C%#jq=n~RO!RjXjJ$z=M(K9Q!-9T(4qn)lGZ+p%wuLMhK5DAkz ztJQMWbm3fk#JfSBN~!MGl*c}oJr?)rH{5`tMyKaWIbAP99N%=7a{Q!ra%++!A%eCc z-2FZ<%`1i3=Ms*Xwrtg1yRspd(W@bhKI5F#x6+@>kX+EbzXrDbr;*pRZ$q9t=ih8* zQKe!t(gQCBjofInMqKMXBdVsq0RMmO9%mX|unZ0WkcayCV&88@V_o^!O6?irLQ9EwNM{pG)BEd8@D?-$ z*STRd0m69t`g(g7N9SeBPB^uuYl)?C3S_h8#Y$LLg+(H^vZ@E`I;>P;*Zo`)nKhkNwjV|D1~JW_0Q6$r=ICd(Uw4QQ>Ain z$l}J(E+vr?C`hzbs3Q{#T#uGC$T!1h6yb@1i`>J-OAGB;6Q(;6qbH6^0;Kg08>Y_h zF>f^pYXb2vLI0b9^zh+TzCBZ&hqJS@tMMidkaeqKKZGU>J7ywj8crHeYQf#H47aTb zNh>1~O>w*-4%d4*Q=&3;bS+7@`C)G{Z)Aj{V zZui|__D~AlE){A|LmHgktx~i$p(LlE+{|bUARSpQkIYRsk5K>(Vk0W6ZT~Tn-qhB+<39m9c zGfPyZ!sH=o^O_PZp+Vvqp24#%VPoEjjdYgOH2{462$*Zb6W=LzIcq4XR#mvH5||p_ zQ{G7y6?6rocDy3}RQdW^T#ZS&98w zLz)AUA9#9~t#PoBfmD0l)BJY)UVncjQyHLDRSx(N(Vhl;();M!Xs<7sv$Z{yVhCl; z>8z6$1kN>`4GQ$1nH7vh^GOMzE;8h}GeQX7$daCzBSGLbqtP6kD&PD@PlNDoOyo=M z9JvCP5RNLpVSvYeTh(XSz4k8fPgnMvq#_49YwV|bFKU{nd*5FdZ`75oX~>Os{dgzZ21*wJ#N9us_%Q52DBbn_%noylq_1|7fy`&>Yfy0pX9IIU`96Fpiz-KqG{dG6@=&-3-{Q4nEEOoc6cm zk{=+{sO2#lAy6<@+xAhq1RVN|K;=8p09uA;1mO?IjTXd5zQ;X<4uMYc?@^7OYXEVxVEd(FKNgf?TX5?}4(0KM5wD}{EXd6l zSD#LybQ>3V4DKhzn2a`0w>!f&ePu;-RLUef=(skDvJ*xt!2mvn?W%#cc9c!|v-Sob zNB>M7^KBMIcFy$Yqz)g?fUrGlqg!?8@uQSambOuMmba_7?TezxhAN@{Y`6>rcJFqw z0{$zYTA_JBan^<&(}}+PLPswQk)EM>Ly!Y_xHjL9UZY^P&x*E>LcbuZpl`$tevoBnp>cbrgxC`g!OOPoFy`LC| zlb!wYehDjqJT>S1RRX6guwU(le!Z_3K(l@mUJ`d_{rgW}8R=0=zO;UB_179j*+3Z| z`Zv$5>ATlFG~g2qGM`32Z6o5ML0<$P=p?RLft48%mv}+=uk2hVoB8g-`tT+jK2q** zU0`+BC5rH(cbH#Bm&dRs+)9}BZOn(*fib86^6@-ysrlUCOKD;WvWA<`aqAb}jJdY& zhXXUfW(Yb?yW5l^tQ5j2a_(cDUYW&N!=Ek$42623ioFa-?rz8z+-duSneV)w&NdJ4 z?~jA)aqI}otSFQ?ClDySHjjZ;UeaCRX?_&QbVIz)wV3^?-eGyZ!!L}8rHu!x2ymRU zh%OqCa*j8NFk}TarYGFN;0GKt${&eN`-za8EUx2r)J&H{1~#ZSz%M^D;7s>^M!sS% z_`NGD9PJ}d3<4xanzK5fHmw^G)$&-K%s~JOW4%qF_k8zJBHjKO#@75gCZ2xHQ!{>G z?s)b#21x4Xubl-?&(Cv&A12~&|G5^(K~Jx8paP4k}_<4rkTDux~0-TC=wyWg44y!uEmPoLgow_XX6*~qygyie~t z&N(RW!`!5CX|ujQ z7hX_jFVqJO2Uqn04j!oFP(vgb^pz*lnFKi6M&JL6Y@(`QRboa10Kl*V03iEcC4rNX zu9Lf+v7_$)>%sn22G=~6j+-McyYEyjFW?EZ0p*KPymxS$7FO%?)ij?P4ve_bU?F40 zVHhB4)Z!BN%f7c9rub{x)NgUdqp}m@!biNbIj@F*d>&6{%I?WBYgJWisB~`0E9&;c zDXoi5WsT$Ti46zR(kEW=P*}tlO=%^|NyqEP$ttZ?J=zY4uO6e3#_G#eS@j+{kS*k; zm03)0tjA0`%3c$~D$;qyCW#GYi&Y5Jg&aU+Gz$kU-ECT+DZWoZH^V{G_XPyK}IZC?2!qj5IqbWa-E{+%s0riRFU#OpcP|8bmTKa{=Cv zNH21WF~QRSwj}7?>ov>(V)r_&va2H`v{Tx7IW$X@v-=m8GHDjin+^t^@Org>oyaqZ zKJ2xYx-yE9X?=601o=s@(dQkJQc5v0oN1Mvc9nansy@FLG% zFO_vn`BDpfbdMX3t24f=NG=@gm6VN-UAokbnynZd?Q(_7j6+}6sn?hZ{QQWkYXH38 zs;e3*tIpc}MsZqMn4V^k?ouUPCIb8(O=cK#1k1I0l4l?4Em>k>h$RWPszVGnS-jJZ*%GuWf1NIB*LzDfRL)CrOAd7>; zz$By5p|M%BXqphR@C-Wqn_F-oT;2T|L-`NrnaO7Q%LEEy*x{^U>~SbV;)@9a%rcAm zT>sQH6p-qG#*ExfSJ(r6=-H1`#S`CS#S(xC1+!y;7{Dc3mD`fSqxuXNO{7Tb$xZ+z z{Y3e<=)ce|Ism0)od#HTV#ztcL6DOLuCTY$R~=OGn0yZgpea}UxrxQ_oSK<~_5Z!# z5Hl#%Q^LRvrm1wumJw*z+F9trsDH(J!naboyCisQCZ@G&BBUnw)I9(XI29Tu>YJM`Z$hES6*}4FmA=ShH)` z0W4X_C<(O7g3zG=u%dCBpc)UQpR_^G^L6BqU|_GNfSh@hjoXt(6OS#vq&OCf!vuMo+CcEPSLnI1r zLy~{f-J4ZIh_E%XvYvTrOFXgH+oV@n`Gr=;2I!KRx=H|imBDl;R8!*?{2h8$AocK< zypQTmyKz_I?8lMqACANR6P^QUXfjc@!GC&w;E>UfiP-s<6P%vRS!EV!B;B?f48E$W zSeP|tS&goQ6^rvv@gl@c3?C<0Z`agn5eZAtN&~iPcySjz*0^gZm8SvCY9j>9QDVdu z77R|M6c`}b`5@>WA?N#C5MMJg$d~%7c651jfFMT;i3ckt01UpBay94QbrRuiVnFY} z4dbv5tm7(7luJV5t|HooN}w{+m!f15aZ@!OU~sZ%J&x%iew)OU#`>QF7b^164Y&7G zvPM+S4zYrDwM}VT?_-BpzGoWzp|BtTX#1P`w_)wZp*ljA3Gj3;CrU8yI?V;+xDxEU zUm#{Y{Fn_lsDc*qe)rsD2~Ob6`L|y%M)ch`^MEmdT-NKrl4jO0Eo%ms5FXBIb zr3hD?m8W|FW5}Z|;R43M@m)}L^04`e!G~rYExd^llT(Qkq;-=H%F-f>ZKf6GWumre3+*&afb}^>q0v)v{bvUQcdpfL>lz+u2 z#hf*30EPm%!7RzFJFrXRVdvl~Ok~5U|4rgCg%#6|`n{ji+&fMLw7w@G*~+|mY)mxn z)}FJ_#i2L0`k3TE^8h_caIomDTp$ea^OMxNPMr7w8N6zceff<<8)Uumq6Dv?3#VVx z#hIn93d3*nU!%A^q3m+SKibHfKHno%%oP^!c|3%<;k4|4#~QaoowQ99Cqn;9Mgvp$ z3m6euE9)9IEJ(7Cq?JB3%C+znbbDQ9ju_WcIN-ZxB{DqTAE;C_dT1G1ODY5PbkW! zk>KUiHn=WIfTdi`rlyLqs05raaG*FuA^?qC=3?Y9kfaH6K;i+a(V;m`E0YjDb8{-{ z_GynK4G5t1q5W-vTfTEjoUYolQ}?$?*CxksCF3_##*_zkdhE;KU1E$OljI*wT|J{0 zNYjlYTXr*$)!ikg4`2$+GRZ^gQu!(EwLsC5?Qh#pGaJl2Y<7uSD<#`*)a~+cbW7p( zbae1|xw(5gx&aQ#XH`UM{^NqDupBd5jIOG3 zI*tsxhVV5*_AkQ33@tQpX+7X}>ab*4F}ikySX$NR_v7Fs=q*3R+u)L@%pmGf_phVi1U zL>Zx-hws;x!<+thM*#3rz_(vnuQ5RR1BauI*7Bn`tcDCZhNL;@Nr*Nh-=ERfj106K zolC^5<;yr*W`?!iezy>cx@0NH-v|K-*wC;h>C1K(n;t@qbPq3{*~UqN8w7jxeqPM3 zWFjBvLtSJ1>NnA9ejfi78PysmkcGFTXG2YT>SBg5DaN!2Bra+HMPE z`nya>-IXN7d?`@3&SChd1(-d!tr(0aNE>db4};ORo)jP4jQAt@ItfDugvEY?<$3G?KQ z@C4aEF6t@n1Q?@R%6~A*xU7zi#d2g!rW1<9w*l`PS{xMDN-;5^oz;Urgu-U~nZSd_ z?P@OZ-kRF@m;%m6Cl7fHY(zqSurO0-~ug#c3_&RJItNRF_|AZ!*5NL zM)W&`tC^SH6!C9siky9i!l1snV%_vtYcL)4XNnh4emf7SY|f2~y{V6{bSUZ(EoO>s zpT0DTr5wv43e@asL>01r!`=DLh1bx*%zdSnI~lF~5t~cZAE;XeBRy%Mzm<+#Pe&cX zLMpUxd+VOVG-j1C8W3O9jE4E6&5VmR)V-9B_1`iamwkqS)V81bb?pXlXlZ6it%c^;EU+f1c0t z?cir~b4l)WarwA=C3Nw6Nx2iCwDo(GUF7iy(R#8XEX#b$f2*W$)rD})TBy^uSNTm6 zD8*^JWga7C?P*fpl+@tq7cG)Mss|M39DXasDqQ9;sO$+pWQNT|dX?2K5gcK2XEZ0f z4423MLo`O$R9UuBQ_9UOP-wX@zed9<4WRNcPH`wO=_V-T`pgP%=`mW~;!a!|%Y^^~ zbgtBu*p+cElu@#R#ipzI2jy)9SFgbZWQ@Gn1fP-ZXy_MP+=sw+jdHslg|rtI&z*nI z#-2sza01xyj>5gc^8J;F9fos29<(IZxe>q8^736N@zu3_@&oBp=qlvH+5qdOxy1R>{ z?LqYc>}~;prZ&)la>4Hc7b09E1LH8A6cCxS?>|(Ihw^eO=2w;C!2IW4jT9_)f7wkc zuR|Ta$4nS}Lt(dmF-zC|==X+GKwY)dO^>0V3wAI$ISQLKGJRt0S^H$p8LLV*9L85X=WC0kipu3={>wrf-&>E5&pU9&F$fUq(>K9HVO!`ywf627l;jSs@)#r zxE_N#1qG^fQ47KE_LwZU*<#8L&(BCH{!S8NvZCvX9J1lK<|Q;l+2e|3!^b`WQm850 zg7>F8m!a|eN2O%yK1g&VFe=%(7YkdDVdq>x+y2w2g85L^Y*s-|>Z63OUQEP}?VEs_ z38!U3B$~hqcf_e0Mg^^Znn@D7^$U$Y9%F5FSw(>TC>H8i2??+E-fZQ)5>g8xz`)-! z?wdNSc^U^jl~OSo4PxjGd@pcYgE^=^JvSekb&e9fZ#qmigIS5tchI{Q2u%%pk?_X4aKes$WVYzx z9MqM+G=BxajRW=b?yjiUXqtq;COxK+mZBwxD+L(rd@4GOk^gDrph3d!wWNd#+6x9(kdr*HV}i?K?KjqN zgYCz}+E+vPnabd4VJ)>x*x^zdAt=W77KX|jS#1_Q1N$!g1qQ<0Yb^KdtT{b`ldB6^ zLQ@9@*qQUYIsB@jy5zK@paru!sF|MYKM494T37a}^_~@&erxkEG1ar&J;EnPab{F` ze~E#m*gs~5$E3TwWRFa4(^DO{MWq?9b;qy<#NwhFmG3nJnBkm!>5RI;d(VecR}(&u z?+cc{n%P5-e@)9v0r_Srs@qyjuXIJ+bu62r8e_pX{vpCAO!PO~e}|${^K<+Vdi*fI zA=1AZF_?#n-UM`V^GOeIzd?##=k`S5U*onX6RB1P)ZhqN+QL8<+;(5 z_yXXH(baGH#Q&JB|9$UmYP$hP)mfAG6Q*}bs_Jry>57Tt&@-3`-W11I=Q)Jt-8^W| zI+ZtSAodWunTX1=tfV30({XdyVqh<$XTt5*Y@kJzijutm75;5)Mc$(v@fpc&`}XXTmy7;TC9?ZWPqX!RwA zKv7O>yNHNR?0P;zB`7>J4`jPbLRRXh9@f&32%+~9Jx=#Pn8RHk8t4=rOcfOsX&mf1 zvs|h0G<00ZOf{+iP`!O^+*z9ocV`iV6y0W;=pFgF27*Z5@eD*TP_{Al-p;k=ON_y^HAz7ygA zncN*w5Khw}4}|O8h$X_$$@M6~<`yD|Jp3l2u{xyd;&qfl}K+r$W_HAtk7nWg^d0?z0nWx9 zv{F*$Ghbmv6kgoP65rqRT5aKVo%hSMM;X)~a{S7ILoX@* zq;vA^Vd3V535YUAiy?1&mlkw+!9V)+ZBAFNndcHUEdv?1}7%ZcT)rwGjC; zhtgYOG5*1Iin}a%Q3bc|s-1C4!+NR4Cm1WYzsV z%t7}zb@m%dO?_@lsV<8@DGe{*<$h02b!ff1n@rd?W+OSOQ}bGN4GvL`aK(vds#Zx` zy(ykE#*Ziv9!KY09&wyTICHX>#FKA3VF;EzDqUcnbbph|QhV8O0m-7)mhPbjyo?B| zEt5U@Y|O}4Y#!)8%H`lSV~nD-wdOrdryc#)9ljNRXB>%nDBvewz-0g0cKkXzN)p1q z>tz+hy~sF5a6SeyMZKpY{cKSuo*VLFEMg3KFIpMSc*~8PpJWC0`u*i}Gb?nu!^J2L z3|(OW_XYfSm=itU!2X@@NK$$b9?=TRl8(S z|MFS!JuyQ!G8YzY!&niHtiNnOo!RaE_@w?|^=qi2d;0{v#gabQGQKJ%T>JX6J-<2l zk7K(mY|P!|=2L#9p6&K696M|d8QvQu{Ry~Xk6{?(k$+FRrmJ3#CA#||Bg8PH*_|) zG1WD8b8`5PAD~&w+HsRT;paxzKax-UVZJGQP2vjcw)&8rsr;U^e62k_X;nl3h4@}N z9xI@sVB(}#w-$Y1ndK-hO4_EMwiEbXE>N`yp4IQh6T=^(dci2>>{ zQ+zGD&F6rB@0mPqb3p z0XHt4;W3}*i5uEk({Uexb@KEmb;l%55gA4@`o#UW8ZcsQ`=e2u9a%4xoGzLdWqDMq!dOdA`Z z?otbUN8xU+ZN7Esjoy1vVS~g_Evp0z{fz!0-(L2Df;$5X?a03Y^GGZRoxaF_)XJui zeHcMyNfF-#g;!ADbK?ONe_+41Fss6`H3sv(N?5!5Q{o@_MxYU>Zz-qQ#vPj&%{#zQ zX=PShJVDz>Q^pJv{ipJ*gd^YNy%Umiw1(`P=Hgv)H$1Ibt8oq)nfqO?S?nC&e@+e- z*Ny#t&Oe0Bk{bi$hS?53dj5DA~?y*J&Akmkxdf zDub6o=N!UJz(FIN>c0k0J`&8YT`*u#3|F(z0+?2QN@RbE{r;|QMaSpU&dS}^>S|V~ zk0kh&qXn{>v)=$VA_OYH+OjFz5*r%j&(oPVWsj&sgj4$4(z;RR=m&hWWa}Z4^dtpE z)<2_dL(a3dSUn6$IWpQ|5l#0v)*~u`LA7FnPi)AM85FjVpBh1GKk@+hUYivRQcj`0 z8(Ld6s=Y?gd@^KSM=tbj^U<(=*SGmRz7w)5A4+>Lum)P6d%<(uZo<+1*mGnSo-n_7 z4xC-to~qfO(7QmeL@JG8vEnaMZg%Za7>ROPW)}OhA(V`Nsc7si0z*tZ4!djLx{Wo? zX7%JX@|)ya;Z*@Wb50sqDcF$=kdDl#fHM&kc1$UZKi6&DZm05_3S8#3`)fF_NP80`p^oJgJt6s{KkB&ljw zpmL)A);V^Ecgb)+xme+LYcL_?O)Oc%ttAi*N*{o%1hMAonr+CDf?>wckyHiKfG63W z7#1!V@bTEkzfwiraPm{(s8RAkh&u_$6VmqAp;Z#q4b=Gqup7|1IgITpN+%Fjz&H(_ z{)~?|T&!mcZ)W&bR{yg*u2wlw#FvBfam_Pfme+I0`3|Q1DUhke-Ab|+ciBctt z1DoSbtixF(PTgbN!_*^tdPPpANOO~o8IvYd@b9G1ooGlxFH$US2WTA0AYJW;>+q`|4AcW7LavTY`q9H6Lx11L!+$M3x2&_~RqH6;()o zx)jVLHGK3{0`tW>hb{Q7WvFKwP=EnKh+IcHwII+GgD7MlVIQWI=$YBShDD?TBt;{; z=qX7|yp|J^HF6GtfNF{;bGb?_VQOy|&<})041h5>PF$#uM7vRok{baNRkHh#(?rNr*?%^}=1f6VIcsGLM5fq>RmHQ=~`K|VQ zwY~nS3x2iX5tc&GP-8y>dxenDNUA42rbN*(<;k2Q>iv1ZG`zP@j4^)a12N+QsZcP9 z$_WaC2S`TXVS@*7c2-pZo;P&K8mNj_770zq^`j7D(SXafqTMMxn;B2Zv9Ye-olmouh zuP&0URR|)YvgSk0LAE{#yS>m19l?F`HKK)x_#x%^uGHX4H~(A*+iFoGCrA&`v#e9n zZ?ER?`;D{oxPK4{z5`-#?H4o-h&l@Hpn}iB{Ay`bOx#4~;(Gb;EY@@cNr6*2+sG(L zw`cBb?^4|(SRW4pNwRP3#6T{K+25^-ti+PyjhVw&I&ff+LAdDgW-AGuCyHVbfw=}@ zY&#{0AgVxx{V8Heh;K^cf?35e)a%$9_~$k4!UstM3%sq-3%5ZG8PwH#QTpw94x*pn zG$`#7B@|)|d5-$cZkjI+&6Apv&@SdQwPry<49-~oQ}ANGN4tDk1@OqNLv zgOM|z-ADc0RNSJ#)Kv}tYmzh3-rpCUo+fs(N)GeL+q~B_ZAKf7fvBQtDlF?21i+($ z2}1NGDT6?_+)jjswW4UJW&-hx%-Xa}Um&##o4f){3n6d-azNK7GQ>lS%xwL@4T6ro zGg)4M1Pwsff|lh9GP%YS;w^<03n=JwbWpnvqQHo;w;Hi1amGO=d0-AUJ#*=iKVXIw z90e?1&QYcoSlmZz{>BydY8=-2FRLyf!l|{_^I&qjZp{aVg6jKIyZXAgyYgWU-P?&Q zElO0Ny@oXv0K8NSO8EBS{-BWE!&?b})N0&Q1R&ib`{<$aS;wQD|Jn~|%7j461O>8! zvW)YbmCHt2wwEPQUR{BPRfo9(gNs&`(WUB{U25Z~^>Z3@OFYqT1XiV(1!7Iow|E1N zBg2P;PuL;<&qYWo3QMMmNn`mmnX}zG`@1}58%q0b7<}SRs?)d_qS5zK%$q1wS*i06 z)hDe7O^`|>c@|>RqKoCO#cA4;BzdJWLz;8PR8_d1E-O~Ab6F;en(RpZI#A*YPZ7aW zl#4rQb9TA=N8T1EzMWBZOEi79ae?vI*~V+-H@FE}>ra5<%N#RMW3cJzZIN$B)OAtT zt_H1HO=+9*_&m|J8{Dfm0^=l$iNZ&>vBC_9RXJ0WjfRT{zu%!QS%Fx1p(zibA0(lE z{gGIda$LS?lmCh$c+p1Oz8+7Dz~^33nbyun&nzBJ3nrR+#hy+z3;LZvj3`W5{(I?A z09=)4J7TthSzYrXy-c69-!6dR;DB$IJadt-u;=<`5jEHAoabXCRF$NJm9sxI$`)-$`0v zF_)W?%7m1PI`#RR9+BwfH{PcEtdlt;UCClfBEi*0z4Cjd_<Q}`D&JO+Q5i2HI}f1Vux{;Jms$@B9)w1vOJYkL2w6Lt7d7}$(h1U=oK_aXT@9D zjS?YO)>a!?yzpGv&RLTF-y4ql620RP`bXJ$uzOwt2yk&563N_JYIBo`M9@e zZP&VfCr@i*;9_+;N$8nK%?|U@puV860*zTdnWECRb|w!4Pm5mwE{37f_bA%gJzwJs z$8hRoTVAv~&-<2(A)oaNsJLbh`iNdEs=((J7_Zc#eYvW0zAHJu6Xc(JxH^vULn<(7 z4%l0e;F&hSx&}~=0s4q4@k8q7n*Nd-ysSmCa7e zhMc@RW7eD>+=>_#+3y;7ZZ>*Vj@#s~W zhyVr5WQ%HPV)yU$EV=`RV0jlO#HGjOQ<(WXjxC6wjcajS^92IJV3+U~dHW?O)nl_( z<;3aMgPJ>c#Eg1wZAR;*ycQ)T76z(@&cegP#p+H-kn09t*ulh{+?_4|^xyv&IecBb z3twxC7V-=(7<7BP{{z(`wEnW>GjkQ%-1oE!};($0xh zaafoK@YNEsGOG1tzz)=^h?Y~izETR2?`%0u$RI-^U-aOj0T%$$N=5uPAGsu9(S|Da zw7=_<7-ZS1@%NMrB{<9RCMTDOQk?Yu#6WX)ALy-K!{T#Z)mPqZKMDJ$`vGV?RZzt# zcy$Yi2uwg8IYhg&nNJYpObWXD{ji8jWCvo)udIBU9=0{jr5*Yw+h!loatx|3rB1#V;7vRm zwIU;;L*N@v-HXDLJaBPf_~XBkGvY1?RwsHK83FBx zag{@F?~LQFR$~79>Z)Y6GP(Dy6OPH9ZfANmY}9jqhHXI$kQ*;={`*szyieP)P0=RX z-8!i&>SS2T0G2?{ZdUNd;nY&IsEu3~c|7vZ5FsK#g88tigA@rue)RRG2&sSNR9U;ujx9i}R~4vFl_^mCI*k+N1z+{%`9@qc!*R zm77}Tyap-Ngh)(ev{v`21=?^$ni*DLLH>EDsmVsFpK<8Vhis?}(Po`ijNw!p%MHt+ zcw+Jcj@+LIg%Ynn{;=8E7h<3$%ZAR&#e0?MOZCoe)}6B^YnmJ-#ttR#QShezpYVdz z(O@tc_bfoakSAi75iyp7N^u-;vUuA6IQ+2-OKs|AsOO?r*pU&e#&s;08)wggQybUp zMl}=Q+n&29{mmWG{f_T|Y;r-Gr()tQBn`@&g8DpsNXl4{M0^OM&8qBe3_roE5+UZk zQ0erb@w7$b6RmNt^2Z0BIPW6qkj?bvt$63u7qE0nJitF>}2UYwr z2jZV0AbhI>GHW`~L*@HP>g-$5O;>TMYH&I736x++y$PIGgC0Cjs)lU%#|{168$wGy zlKHp!aDhqe@MYbkvTwVQ-sEYOm<}1$N;iWY4DF_F$A76FZL4$HiJ9J#Md=Pey@r{q zzIXcUYj;Fv0}rx%qD*C7RN?TNI)4V|JvD#-i%jio0m|e@008h}006-GAN$eHPUcqs zG4*C+nLBQ>zWnpos=O1FOHEFjxNgi>CCVtUJugXcMla69j0g!45!WB&BNbUKXa4rw z0`T9(U9&PtkU#A2Z==)W!0jqcR#S@fAO%-6X%R~fsh3AclNL}O64M$Mmj?DPldcHb zK2U}a2?E+F(I^uap_w;t?frIYU1F^6jvR|tRamKyxR;3JkbwU+2Z&*M%O9eRmqHC= z-W}{@L_Zcy`EuaIfC~*&jxQyGQB_t)rGyd5x_Kx-VVrzWV3b{>ee!_^10zi+)*@A~ zEWWO+=G;0FG4f3b)y}HEuGJ)I4c53%ndFv8BHZx$RTG9%`=-@N@ef;)RFS|;$M030 zsM*B53J@>H{W+myfM}R{9NPcpB)4e`gvD=m&$5w&6ih z9YDX)Loem!`|7*E#^x*MZe z`mQ-;e?s+4kqUurG7MOtsosPn6(O`Sid0E7A2jGlmVb9392*i0K-ZbP=H&3_Yi_Mh zZ#y?UpVt>c&$pYq`_Ie8!C|NzA=LGvv{@eT-nLq<8*@Qy=# za&!+hKg^6$p>k$EB2ga;a_bMkt)~fZ%Qf8Yb0(#aJ$1rw)*qJO-md|5rf(0@zTjn; zH8oP@AXbe`+Msx1#J^n{gIB^CO}SNq0j4~d5uzv5ES z%kGo_mFJmZD1L$oeR<>(+)53vdw(646#7+_JE#bG+4KFQ42{PY7;J>^ZMYG~>J#E? zqwbCFP9BGkmqi9cVl`}$EDak0^r#yGaDgtZeECrtbjhz467iGX6VcPAp&@35&H#D< zUEb1Zl+%VZS$1aW<)w$lr5vE(gs*amR>qP+*6w)`42kCEgqb~rn}O-CInvW;kdue= z;^u_XX4#(_@E(YWyO{Pt0_VYXmkXc>)}-%wIE`c&GPY{sE|q5b$^`H|mFu1&fEyQQ z6?S&K0@Cc*?E0Nk&@E^qpCNnNNSQBe%3W~2X6Gw8$9hx4Rd7?BoAbO!CWZ0!JM#T| zC*bqo!@eL??-?lo&OJA z=M*GJxNPgTZQHhO+qP}nnzn7*wr$&*?rHn>emQaXi8vKe^;VBrwf>cv>q|E}g~%Et z>S!mK8r^T4eqyzUab28iCik#Yq%8J}GzCi*BMQ-IR~DtH=9m}74GS;J?^st)n6bgDIS+S=Pgq@*cdMy^S~0~z6f z3XH9eA@o8!dUp)Vs5?0lIMzO%FEs@z=!6IrYZr+PXg!O$UnhZpX_Be z)pI}IjkOUFO2|{~rXWz|I4QakV|2SM;N*!KQ3nCBGZ=8e$ARSg!b%;~7D)p{FvTM) zi$thA3B9ljrR?VJedf?^f*s+Dzm8&cukuIR4?1(5%i<3a9623UGv8br0l10XBG`7; z%Z#p<2N+6!EB#|H?{g9u9_YeJWco`lU<*Oa=$kFXGq8VC>nf!cc5KsRPkHP`1Z2Y^ ztIW2&Il*@vUUCW_l#e|xR)de=N7p~thsg|+l#zHPVVOZ=<(u2eM8COmw{-m#&W9*x z((u~4*FKq2DjmU`6k)uElrQZF)AiF?L)QR8fDutsrUtXS&WL+Gy9SP-wJ-w5uE+wY zK@9aleU>yFYNY2K{S?Cto$OS=Ii%N}fIQ<5=@JybWdXc}2%x~kpw&MsF1)D8=o};l zp@a<9D2^al+)nXh8M!vkm5% z<;r1#H9)DOell45B@b52%+U^aX6-Qe#E&KBg!Uh^zQ01&9#5L@)!plMFc4Db+xu#!xg`ELUv3 z`vf;+T_=OZLOQX203KxrOzNO2Q`b$8bp-?#?Q=}-6pcqzrx zV1Q~MF}8~pQdcvW;Rh`<=+^_@Pju|8!K$%{gmmXu;MJoIdIYI}atiDbxLKl1HIz-D zfCs@e)0Ns**&RGFUzuP47uQ2)N@A81!QFxsz`n zya^@Zm`0JT4r?$0@S#!OYC{0BfKv5p+HJfeiL&O)1}h3Rog`VXIpC`?o0l-wx=UR} zXC|c1cs}zWqw%OMvDLeIKjJv8 zw(jHmy1@FjmGt_(JXrd-eW#7w2;@Hw@^fz&(gfd{`ZDVG6n-2j_;@ zbNG9s?AcmY1?1PQb`F(Fb>d7m`=nd-`17^K%2^GFc+@cq+oLm^t(-17@$OH69=+U# zMR(P1dvXXSm&?>$tv=mYzO&0aaZLgWa>OL;GR>rq|?X8`Xstshp*1^gWPx^A1CD5*qYD+!L z*=%C|u0wISnW0tEW3?(JUadu}4 zYdnXG@@0-~P@1Q)a8^)oM(2>(W+fJ#*H(-Tn3G+ePR3LR*lwh9=~h>8#CGd`!1yDf z0*SjRP*?j#l93!c#@alE!1cm|eONlo2k|s|fm88<6@w(|Dg54tXnX|5bI!QFEwyxm znG7e6+#(za`E7QYmFV4i2s8vNZEK46(eMm(T!W6n&+_gRj&W|GHkr$QK;@5k*y1OP z!3a2?3vbwIjxcOeqvpDOYzx#yo9I}nkq#SYn7jyVVM^A9ZB&`Xz4lh_g1{M zlG&KF#&@7%yEPSB+ke;0!{i+9{SSgbMilz1s6df!_(+uaiG*0~Cr>3MC)arB-UP%m=yo&VKm=1^#H z1=bV2rB;dytYctWjGR%}{`woHbkKhkfb zMq4nXe&2o9D<5pVMFl($aW0*791PozzXJ2d?wy-_P}YnZAe+iL13Hcouel_&BdCncn7}f9$0Lq5i}qMr-GK+iR*(4 zGAPvgz4(#DkSTQeZ09w23G(`WnefOmm>O3&&LF-KP9;r>6K!P{&~WWNl=C_t7+uMz zcNKp;zdI%;IZpKTusp!BBD8HZ&U4j7+DZcOHHDNP-~T1nWnQSy|1o?|G(t=(jCgw9 zS5Vl*_lSA-6WkWS=o0lUqOoVE8iL(fVdxDL4N88p9T*_^bomBUaq*i7gHXcPeko$h zl>13z!X&p+?JSyup2x)X{nud^IR3$p*THF6H$s_IPpGy1yF)SD$t-)sb-t31C@bbF z+_jS~6Q=xI;T__B3e1NDSk=>xf&?TAw|JOnO(#Rqr~f+j!uTZ~GdfR@wRSlfW`-2L z;1=;Wv0TsV9bwAp-`ch5_kk$Dq^iYg3wVF-YCjX%re6fA`!y-`@;Ghfu)Z%8w4|(t z|7`Oy(M!+;5BPU$FDSq8oL1SGL$ENC7vvpF^#oU9xV=`4|AmwL=tJ{B(cW+Q+b)0~ zK6)9(grkHU#=d+oIET#)jp*TnW$qK9`=*Y$0dUUcDfPwGI$lq2R31~apF+a(Qo6xn z0J_v|csB1@*}fn>pieMe(y;1LHgIX&ANP@?HE`>i5vkEv~MyT-HS;DcARPy5*li znrBoUW`PnS85D%RLK?WPkS6oha9v|PLNt-4omGur?qltn4$SAPLO4V8ovwxz0We~6 z=l|bfEtqGeL9xI90GTiV03`p1^YDxRwKOqwG1WIVw6XbhAZpZR;+7Z?de11UPv%Wf zKLHY=nzcyaBy2V*@fO2wq^XheR^JZE`bkf>}>TS z#~^xIxSB(%OKIDcsD(KQuOD+uX2+_OqL#>7!6?2|Hfynuid%S^liG{b@U|%3bYBYQ zIQ?@tUi?=kc6^+`4*Lz2u%$ebl0r)D3cg4PQc|MU0wahQUe~sWE?~L!$X!9fe4>ZL z@iBm{=~%`6SJ5p<+p*N`b~oxK1WA`=8WOw8{IKk%y~)ga#OK0eD~e7svGHIue$E&w z@QYJ70YSsv-97IaDIdsT!f_d4_d-vV03#oyIC95XS|?|)zYL&A*B@aLtA7nc5wR+= zne$p*)FoOk{)#2t4X9P6z@MJNL?&!GCPPdcn7fDcf?%M2hg~QNQK;b9Vx%%q!Ohvm&1tm6{urc23!>!S~ z=OUaq9W+80@%mY480NmirPMf+^!HSKtxHvt5{VsN$g|#%&PL4Ya$Y)AW*RYVP|Sl` z`LU6$$O;B_G~!d;avjPz^cn%`@M%fSqW?QVS$?2qJyaT z#7DdH021Df-V~w6EQ5bGJW1j7)ki}oob`@rX5VDpoR6bf^}ERIA!96L_c$bC??yYq z({d?C%l>_Ry%@jZ1cd!C8iLyo-Lwq&fIVOP%Hk6|eh>;q`8zS0W#MpSGtj%KRL9g| zZ|}!s(P*{@(!4?ccR3q!V*5Ej0RX^I0s#ENaRD4WO$_Z^ERE^)E$v)Po$L&4=>J3W z{!cmEJN?H^oYDIE1$rZW@5v81JH-1qG|SR6I`rBEh|-IqhnEhpO8h_oWu#JQt7oWC zPIiqN1@ejH-Q^yey$ToFOjw&Yg+tHZN)eg!`8~`yP~3R%d`m?0lt@V=uJ9;!?4wTX zS1Ki!sgxFvrzK9}Dt0BRE?BtqP=>0An26LoMA?XFp~v*wQ%T5HEFFRjx^-RQJe`W0w<`EJlBd7bDIgTY<|&Y ze8AS9`IugxlFBMiP=!b7^zHR_GqshzA7)aMF=sM3zr|Hx6Z)^9GyCsXb32%UW3i8x zJUEWHyJ?=#mFS#EW>iv5L?34WEzze ziViA4tQ;S#(TourFKI>fn#zfJOgBG97gHJlM$kyCM{;c?HU%66&5?p3^0I_zPWm2! zY6YzX)DB&)NujEG8yTTezw*K)HF7=xTK+B^Q$w%Q`?^UX7!lN79?vRROmgs3eu z=}@lDl!1|dm0#>O@^ymDB7CK{D1ugM-Zo>K~w>O1Pwtu1Y6Xo z+jO)o$8ne40gWv&xJ|$vdDp|)YdgYj<^O#AlXn`Q70-@wH|ZRJ1#pi*x{XTA-cN3L z$4>?*m!PiTb;qun78)I@cz{BsFyRq}C`@c!Dr`rUqAOrxE`W7*4z=2um541?*-{>j zA|i5*G>J(NZ$sS5kYx>x7D(qQi$s9b{(Eq$)M5+{A^@m3Eq3Zqx|Pt7s!rLrG^Ytd z7HF6qU^Z*e8$jDuH5!s2RP$tV9N#m;3`W^v0+G|kYXYPj;4-HPEp~`{NIG1+TZfvS zf|tN7?jkpBZHOB(of5IvBfL_eNr?{7g8+JGKS#^uktc9|GP(M!HXd3rug&#ZAcI_CSui&FlkLsJ%L5a5`Zt%ix=0XZbw z{!(+o%ua{pYSRDMMY7adZMT#YSvwk|Tozs2v4`TKE^;n_0=*cP1Gm&pvq5F~w5UMRDU9^(4+)&BB_tb%tfpiKdCckZv`xYls0~1s$j|kPfh}5rxmF z*97(;y+?C)EdBX=@TO}ZHtPsUn6)h*FJ7QLGF^*1`qi9q zWhG~4Q8sdxg(R?xg=_g>wdQFM`Wnbo3BA3v=U$9-e@cc$@CO>wU;>mG96;g08oI&x zLw0UGf-WiW{(WIS`|VHja2&$f<+~39krQ!tHtY=nqXAo~dSL}5Za?X)#yUUY=W9q1l|g#~T^`rh}GP8o}G z=8SKiUzk>7^-thRkp0zC%fHj>(j^$U*xPpFsVqjb-;akoq>U4YogNarZb<%=1Cpv~ zLKQ>0Hn>72)aa1gW=J>T-fi3Vt{;+_u{RhS3rmTEY+L$NJqyh|g2LUs`*>T3U{`7) zH~e(o@z?s~l);)ipab;L5_=vl-|;-Q8;Z6A47SFhhUIo(mO&OD3}Zb4_eVpH=f(-& zo-O)C_WgV# z($G%mXr@WUnJOsX!h91(eHR~_bGr#6_`&5}tCFoca!XKDLGC-F#Rkv$agQyRzpL4x z?%*7^XYSqtx52epL%C=3){svPW#E@qXE}GFfL?b77QC-Bvev_9diG>J76q>&UR?h7 zZv&(DBPeokJ8oMVT<0IP+et??`tBQ%eo4nxP;@!ltaJuDW-Hv zTpYlL4$i-Lt8*N<7kNbAYgqTQIFV+9PUre-{9Rkw`lI>)*KzRqGiLZCyn)aC?D3#Y z{x2NJH9~drf1y`+r_*+4w3hHvMbWPz_53!A=hrl-J`0uK;!;afoch*Yn@g3pdFN&G zS(;xA?(c7$LEH*sYw_E;QF&IH^5q=V0q`@}b}FEHzQqO$-dN`=TzEBVFB?t#XTw?R zTjZs6LL>_T*ot!@FW&F-GyTks0%-r%e z>c5CLALA#2#=_QXhsOfVp9^_YZ%3Csv2{(eYo;IAwvlwl#vR+H32#sRWeX=qVLi#a zXh*9`z4GG-LmS?93=4x{Be&Ie3jw?r`%TcIG=M|4msO%2WcMKeiP^MgrS({V{pxZy zubVjgvb401X%9y7J<=cb6iicpfstRsA-83X;eb>-8Xl%hU_Jt1PMb{}f;tB2?F&gf z3w+w3N}xRgppCuG_YY~)BjIWPUoIZ#tGPdkU*-2HN%JmA>~df32N`(%84n$XeuXRk z|KVE_Fz1_g*-u8e?DRHS(wA4b58_$i)HtE>^6=Dht6 zKWPE`{d@SY!tTlX5+j2jl!nX!#yWOsvS40}AJG4ntG@~r0O&uD-wXfu{vWw&@|*2% zYW#cVG@;l3m9Ca9`ue|O75IN8jnX~N!Pxz(T_cMB6)X1ty>4t{=8nZkLqhyV1g*)j5SiA@Mq1JL zz<^-c5niH6W3x1EV#vgskR`NbM`N}b)+nsB)tq5mQniX%6eVuvN8X9 zEqWo&tM&W^GS-w`hJ5t5y#AbAQrhpzywAh?mpvo*#2TabL{p5uIguI574#b8N4Buo z^m5I7#-U*W>Kdm=iuHnXS+4|9uVw;vTLZ&yl&4VAp}Cf3O64@YQ=+7u5gQsbt&-gc z$N0qya)z6I#V0+)n#<{5Bq{bI59lZ@NP(-oy6fV-wQaJK6lRX@y!-I`o!4M+*#Sg$i&!-0JW#Pm!IFiElTXhTZs4y)xwd*2*jk)R%CM; z>I~CsEe6h+6tttfjOOX-Wu&ka>eLD!Dwd}+BGgfbo?ACATuw{8x%?%=*J4ce`b2oo z*6+b4QaB2Yt*Pm5XSaFk{#Yqf@^kYZ_&5%WAh)&nJkL-D-%2GUdCCq{~;ZQ4U`e zpSj!}4$MEigGoN09;U6t4+5n8M6-PTxny`*g2j6pv&KqMPE`K>pK-V=cVhDn zj8Ba?9diXoR?B{EAG`gj$k%wgOo4wVc33huW5{&0&-Uz__eONjJVtKYggWr~Zz?(Z zMm6m@hjd3f&7Vd?4m<5=va;W#@fP{cosGaM(zwcRXO+;;SaacYxVY)RgI_S&+g3bR zh!B?@QPsW!bLM+SYg2L<NcbpX#4*-nVAF8I>+Q78VZi7tP`AgS!PT#A}!kb zB83}WZe>#bR)`rNda_SkjR zVXyIW?fS|onrAsKS7_R1EGl(=kh$QSDY~;R>T=%;7smAuzz=F>LjztuI*mTzOpo<@ zuTO7=V)FR+s!3OQdM*73uUpTU+Pzm~^1B!1=K1pS@V%cc$P2`@^W*?0dq?P;iH=P3EbkbxWVAJ0$*^?z#ZEiZS`F9kJw0rwx6q7l>&Q7G&302a zjFqfMqHJ(%Q1Q?eV;%7_7^nlkc1#B3Jy`G2cyLMgZ=7v$dA1%}H`R=FxGK>czWVsMQ32!=7OT2ja*VJwJj*mt@Ovmv zGaBkZ$I6QtOO%1xNVz)CIRDU6Uo>E@7C#G{b~rc@I3IzjC(d#7-Xgxxk{Qp|O>evN zs~wBIS;MIlzYpu6CcPXwBlpSB6prU`u3({>agEmN6M_^;5GCsky$WC0a!O3;i}#WxXd97XreH;36+xlZxJzW zON4?5O*UU z#~k;Jw#bK3-8%x^VirtTF6**4wXlrwUa;XgO?$-sUuz=I~3Zi$eVUY z2HG!cP?0hh!FLhZ4SJNY(u+$a(He{n_19Qp^X5BY+rdkGLPLvp73GpOw5wO&Q~2I+ zcHht(42xS9E(q+!#dP2lXE>*q^Hs{+hVXIY0PvK-!B;JYg~_773EiJ5P_y{?z9>3? znO6QTre5;Yc1Btm96+Rje}*VHiITBs$J|F`Pj6q??zZKjN`ec^y*8fIscKG_>ZmJa z!^D_`JL`j$8Qe?49Q805#Y0MViz{cBoud6lDrGBAfNaf^tvY-fxL~W5@qZJe!9mEf*53)k{UjbDivB@nOdtVC zK5v3HptqoOLH#>d#Ka~+rw*cJ&N^k-pr)dCT9dxJ&^~nQ4 zYJ&(#fYNlzF>gDP+o#u1{niAgu+NAS(M9NJZTgNMB%Y;YMjS5zz7ZIqKb@3%X2_c^{47wuR$L#Z? zRf9?nbm8dTX^!@_xdbU>x@4uhQec8wt$x&&kmUxhw_smtsQav!pqZp?N7w%5&ZfG( zVw7;-TpnuEDbUwN`%sDsSA~Mu2roG^Gt5n5c`##XuiY3%QZv4m88rq+@)^zc?>6xn z0olpkd?U~1g<99e&cCedtqk?g>{O(_GK z1HKhXTr&uD9mYfB6hn7`4K@=-7!ibpHpixwi85XVnRwiPFQJfz)2$JX;uKx^aA&OR zqnDd%%?dQ;K{z4!pToDxr&`z_LNCXit>#vT>m7w!-$QJX}%MvXA4VqsuuYbiE1X056@ zvs5>M-t0UR$|6~*Hnw~D`tM=kVxo?`4j3kF!~LU&@9pgo{qNea6zf};9QY_b=^zF@ z6p;iiw=Lr-ze}}bQe*c5z+XYd#He*F%q&m)A2c?PUb_Xvt!U)h>uOdPlxdC86%^xmGpJ%5*)Oap@8a5a!AC>FQ`b z2LyjRDmiFmXdm%)2$4of^cCfKo(&}>lmP9!_X8d9y%{|K7c(cnys5VZ!;zGf#1|ny zMa#BG2diPW$y#at04{r9KF{KR_1y9CcX2!*RFKwDT_Cg z(4^3;)uk87%;J?-PK(tG$%%Xo+d3_4aMT@gzE=L5(Q#*@jF6Tr@4i7pWQ5RUK^cv_|)2Grx`8V>Y`Wp z3F+>XyHCQ-$5ZF)@-_aouwQV~1edqLzNc?R>lX~;^TTmj@pae_(zRbm73q6aXI#c; z6#m`}Zep(ronwHRdJNUaegCgOlB25`{kUH^M%8celm4Ie@8J1A{hI$YX>K&7|NMRj zdOy?=AQhx5jE|Rt0nufbY_UKfflRRTH9%t23T;=sL<^f8*+2HUnSCOXO~xSEcvrx+ zv1X%({tRJyDW`EB`7BNTE?_pX)Jdd|8DPaV!*+jiXW4IRNYZ1~NRMBUihshVj>Lat5J`Vj{7(vgciNt9vc|HNo zuq2g=55VE5GEHhE5s!PQ9ZM(>$2X${aGW{QcMKr6!(0bx;lr18|L@%%Q5vo>AsJ%~ z5`@;bbi*b!0``cqx?M<@xN)WuJS-@UhEq#d5Jwv3;jiK<1gnehKBAm~6%FlSwd}AJ z4DOv*1THV)yg;-x)Nt8{V*eHp8P7?fVE~1QEg5;4p$C)#HxB&9Q64yeo~1<((vw=f zEERyh!A`m5x-6CZotmj-wiZ)WAy*JD(dB^0Mr5ZPvJ72MZDZkd%W^55dypcV0sLZ^ zpivP5kHHpOCGxm?3xScE-4e%SBQUiHO(t0-Jc#CUYS~YKbxJwAX^yxkOzx0ga(;W@ zR~}@53vn{cG%0*?ZtG!V8tCkluB0Pcx0Hq~c#nr*- zU1nIq{2nA!$PuD>?(Bi(>9|pI`4(x0kCBptZ-|cwK9epqHh}9iF{SBBnxOm&9b~Om z;K0mTyeM*VaSnFtox1r^29c6kpS;_z<}f z)$n|Qr=kJcf0hPPo}PQiLD)n{H>4fg%dMRa+Vh|;N%aS{F~@XcfHXBrVe3Z5*lI+9 zAQwliD#!;{tyg1JabkmKfc%!r8guJX2!g81fE$}RM;G6LO<1(WE$41Kua4>ct2Bcu zNO^j2?M7r9<=J@m3!6pmN%TUH?B*c;vIBA+Wv0(-fM<~M+ib3qbe^OO@aC91&!2d z?T^+t=De%H)`FF^U@4EEsPJbtZZC(%pM(i1t6Hd*;bz~T)$=LwuRB&MIR}DYR~1HE?!j6Kp#3;+Wy$DL;ii_4oqKz(XKe@5?2vIg=~&!%;yTbPD)O-}#4D>iP-v zk2}#WwE}!1>Tt-rl%uIOTkNczsO@vRf7azzZ;$@Rv)GMAxLYMN_iDn0989zSLE#V^ zaKO9Rp&ewWC_kQ8OGIQ=n&%^z>${2cW;Yf-jycKu-y8{X+hG-B2E!tI=2;XDe$_wl zZrCzXF#4B1gU-^AcAb1bo0;8NbmL>9?SIIIV}MC`$F%Jay?ePdJ%=}j6Wu;PmT`Vi zQTj?tHy*sH%;YG!@H<}%M)QUMhZ^8+#cWArQMoW^CVk-r9Yltsbot57i|fG8jw!HG zn#fG@Mfl-!YUAqd_pd1pp!@d|0!d8u{?fxQYlw76knDDW#i^7lHC2sO zI<^Mq)!g&rtT5QSPK1e;^>FPKYnShDf&~G^bp8oAjHL@0)9lqo3U4^gbq^bQCjUOk zTgrr~-Luto(}R7seNxjVT`oFbd}vdyfl>n#ePeXOMy5SO2{^@%`No>;TW(C_ntj@c zFSW-r3_0Y5GV_NrhEX5uW?22&&^CSNa`T8iQG2fx$mk?*8XVGQ(ozM#%S`a&YcftV zYY(*hD@5zNd%{}rX=s}s*63yF`#feXi|_P@P73DZX16P+jkB;X312^FNG-)Rn(}=1 z%1PnuTK~TV{q_omcKffG$D;aQw5$KmgElcWws-o^#KrHw`~>Tlb~XN_tIwzqkob>D z2H7Q0Ei|e<&K>(WYF!cmVt__A&bF2!kw9DtWawwt`E;-&UL|=onlBkXh{gH#1(QmD zO?7C3&T_K5+md`uwuNjhi|IsFwV6bHOIE3hx3>;Z!CuGD(_e1x+tu&+@?=Y&*h%Y_ z*eMl7)Je5IqI+B!FJa9SI?p~43z7I=?Ww0KnW)I`yt|O@t@YCzr6tk7hLD>G7420N z)kImF)@0wKY8$|OWLjg_p~VnpSj;gNdQR(r(69naRlT$REG#D3!hs|rc`dIYsa2A0 zE3V1zLf6Go$pS#lC5^4WFPcjKc)r#fPjTE?((7{-66^xqP7!)$H4`#iW1HmuDFuHr zTW(}g85A>Yhy97cviv>Xlw^slbO;DTbMELDj*Lbfg2Z4-A8xCfj02& zdMK<5lnyn*P`?%&p`)6`q^%Ln9Oz3H1f2k&{u?l1t6CYaM}(dMIhD$uNL`=9^B0K6 zc&)fjCBl$}Tmo`jDu^5bF=!(jB+NSh+5GsPKPF0A-79`TJ01*38izhcTJX*}4JVU~ zS-1g5XP4=pcHXPK$;_*5iXev8#;1FurLDvG&>=ez&d?HAAQ$!a zUt#wJ!|lutbo$>-1#j>7 z%wF%0cW7Vl_fs9f71gY&UhR|-yaIh6pP%=Wjf;~G>EEGJ;xU+W2zfF~z>Lj5i=OD; z$x!r*^`;}P%cM5!vZe}ycnD5Y8x z;b5sX!ZEBS%o+w*mizt9IQ1HQv1iBg#&dobKPaYv5i!}gYCleUUKVL5v{&%n)=^>L*?WLpUw@`-MxZ6tU9gj7l{0PAq z*R0m&Cm$k0$~8qUF(pJbAaCvJ>oqNtoLj@XGdk|$Dp1Kuhf~vS8f4cPwb!<-gYt+@^LCtXGi?2@;oGodm*5;qt{)VmM4=kLe z>M-^i&p(w$P-R&WkrH-g?*Um2>N>7G1(`~TTzbMsl~WDJH3RFhF$d5(M`sCzR4iL_ z(F7`OCJwMY8B*$$tv8LC=;)>`5;q11>!(Hr3U1ci#D!`!*J&u;?2l_z4nQ0j*jP9q z`~v3HxW9IzfcKPiy{5WA5y8V{4yP<(s9xajny(i{jn;U5SAoWQ8=*)W#v3({B~Ej` z9j5U(s45~q?hNa?Ses^ZBm>v9peff^$kN#D>(Qi6-?z&Umk~t+q(SB6NPmRGeCsr5vItdBMVNMuLLJuh|s$$^_`CQa*jXG zpaxx6>K+9&SAhCLk07v5eNz{aDp#9{z!|y2I;589ScA?>eM!Nx;zRjV&{HSW{~`NC zX{P=zq~BQz`|=t9P2Ira#-Xh}b(ID+>|&LwOle}#eRFQ@q>KbcUAb>xq!D_u{;dtx za^guNWouhf^;446fWP?Gq2>v>1zetIH)NSdfB_};)=WWxCDp7bT8p>oaGURbY*ka+aJn$p2Jic!_G-!u;=N+voWP(-?jwDoM zR=KWYz-kkRu_eo9jnnO}Hppw&a0~O)ohR5R2D@RBaQ*ybk{B{O#I_3go)7F7$8Aps zHd)ek=}WLRfh-P^fyd$eN>4`?BF$5qZ01T9bzw?~I*SFMUBL~TJ)icpH#X-VSS zXY&;)S(BWsGV|wGs8$e;IOMwipb2VZb>8MD?{&#!IL zad2SX!SlJ!V&tS!WTrk~M+OOtn13CgBvZY4dl}#3G245c)#{N-gX^+XNLxBC+y; z(7lvQ-C%O3SsUJiuDS1pzVcHw;P0V}r^7JYRb~0-GQC>@a~~=v+-4&u4~Me$j;}tEvEBKup)0mIVF%E z>D~rd?wVr03fkP-@L)@ z<2u5`;p4OjI8*@KWWn7<&iXY9lbVE zDtX6igFv8b$$C8{e-i35|E!FnzeFe|67>2)MK4UDWH@9M?@_gTF!MfB@OMjg!xO&V zO*P3it|!T9XU;GlIOt{1b${J@0NkN)jab|XjJ~Z84#jQCQk?VRkNbjRFQXK{Sc!Ms zfwjJ zV|Ep8ryf93A{Tn@tH?u7!c;;EmYK&K(EWo{H7FVzcRFQSlBg+$G)%fcawNWyU+T1+ zQrbg~S)S8TTim#Cn%5A>+I?)DNFIU zaczpD8grW&lqouD{+$TD&J|=-!yJ!(yIu{Ymi3qlSz4ZO2_sqi|58@IOU?d`@b9)KR15P0N|&6&^-q zNSI8j_)EM?R>V#p*^=1gB%6kf>P&U0aI$_8Kq#@1KM7Kd)gqPlZV>6fTKN z;~?55M-z~gs059dD>9d(sN0^+Kp5ihEmfNs?**x)bR|NUk9v|-bht%%_v{WsSqbs- z7sT5cMr0#58ALs?lBCv$3qghbLy}L^VJ@SDsxGYp1!t6%nmIKUONAyIPdq@YR1P4I zCrW*%jseLd_=m-k*u-QWMSd{kU~k|`d#}X+QEk93li;9+rLALure@DoUModxbTd|r z)f`Yryjn};&^ZnBE_^xO0>fmh29!%K2HN9<9g79s-{q)X)-b=Eh?w%O{ym$ zSwO&v0G)}B>5O>T8P&hAu#jY<@*URmWl_iOusiTi8^p>jkK$vm46w3k)jcb3mXp(1qjUqA5BrwQ96@F_Zcd)8 zPk+>&Z;S(R)D20_5kbySM30@>N$ckRFRMpO>!vx!pHY&cH<}Ui-RZ_6A_Oo1}Xq-11%Eh;bbcQS#g4yeiIRbX8O1q1)L!&b*8woqnxj+QJf;RnbFO^ z$pa?a*%ivm-nz_9;UTDD-R4!1N=mLR{TfU<{mQ;WH)@ovU_4$wkqMwZ;?+kAplmSb z(qyKBsW?=S1fH{@qIysV`(V-4M_oPPhr)nkNi9^_FSF)tcZh}!$iSQW_Fr?}FSunHO$cFx3qG|{m?|tcP;TMF?;yq4PU+(yROCs;T z&HChozvaI_pJ2|f*1&oFU}P`7*6;r7<-lVOt)V)gc8D}Mw-pp~NZrf?&oN4x#ojz6}Od9@R=tR2Zm@tmI?+Pt@S*VDHJfPKT|T-b>U z&-XwP3U$@NSUZ|gW>2-JKOL=$!sWm=lsXm<(CdvR0P`MQ>Wdk0)DwI6N0v6vaf_pF zmy*O){8iM<`nc5r+@}$VKh}21|L%^0`2XY8#ApJkPW0ca=`7@b@Nxc|$zpHd==5K8 z;>RjlR+|hczOS_iSN$*cIjmK4pge31R|EOM%|^+JJnO00tg*%JJx%8u zeDv@M&dxQv@6Os#J%SdRY=03+WDvKPv?+oy522_hGM>6rU1>R;J~K})Bik0ypheeH zo+Phh>P!#6X!Pw$SXC<{O>Yb##k>k!S=YGU*WVozX87q(^m?zYqULbaP-h6X z<_JhzBN-}~om)UFK*#He{#0U)(lydu)$~cve+id)N@~cK*5*$j2~Hn^nBoQQLOV-B zq|d0S3z#Ufi4>+NHfPI_aqmzBJi2(xD3dXmFwMN18a9zlJ_eodXAKsuz?u#xUB|-d z$;HLwOrlDD8%zq0_d?x2KuJZU22$rfQpHP(lp+?;ioGK8ym>yy47n;zUd@1$-+HnD z|C$XuBm@?*Y*G^W0YLya8Sx8wIt>rgaqdS4>k3M;v_MK1TZak+`VtdIMPHTZIL_o3 zP=&l8m6hZOYI@d71|N3;fK&mIY?VK(wYoLaxvwmD&*Fp+wN}tNhBCovLVko(ukToi zE9SIjyHs_y`OBw;MyBOgs~8p`c@T2BS01COjj{@Nm>In2GZRxFUmDwqr$`GUgSlH$ zE&oUdWU3I~MQc`ab%jGxAEo|PL0CHx69DoKGNCiC{$jYIh0X0Nlog<|XA8d7UEAq2 zn%D6oyDYYn--1iv3nnpwc1KIhXSVM_2#m^q>TP5_)H(seS8w>jI=LT(=e5I_ty&vdS$l6$&+B4>h)>L|CE+)w*Sg%TsjiA z$FL0yA$?7)yL|wZ!>+aX;DcOQjOsB`w{YPqdtRG@E%c%E zj4%Cnw9a!Se&OxB3{EQlRrN1sv0Oa?!kjN!M**A2@^lO0VN8kjMB)z7g#6y1@G|jK z*Q!`pjK|}5dHW$eUKal9<%HkH*aMjK&T9tqu;>a8H2oJ;~|K<+@_WytWobBxX7oTeT{|zk=G=OV_{H5uKat2bS5zn!; zNyCb2C}e=iOr2>_j6f0R%JTny!=;=^%^n)BbB13GB2D-gTDa-?JSss!EpTq1$A(N! zEc_d?6zo99vKX>A@wl}SgVg2q6C|N~m-3K$(q(JueLhpFM`q;t^Z52PNS}5qMu6CDy>>9ZwVY()m)?E?Y$KqlS=c6we7Df zu4<2JQpnY!I+{dJFDK{A<8i#jkjwwRRhfh@tGDT-Q=`5#ON*0;10+QG0=*uO&}*s) zh#G}Gk&KVjTg{0&xf5jrR^z@yTDcc!qB#Zzzj-2?lFAJvT~<1zL^5oRhP0JA%`+=C zzouY#ROah1#ebd2*MRZm!Jop3RzDgQu1!twxFHzn=@V`Huea1(bFzMU&V*xaWJBcNoznt6&upU)qb^a5k`2gxJ(zj#-l9{gLq&~D%w zK$1ka)IyU%`n_kwQ#XJkwqeKkO-*Iiazz(x;@Hax%X5o8z2+yc>!pwm!4?ibS9L+vjl` zODD4cM_z$OHKQV@Ken!FcND&>dp+U>>w&ME{R<&)(X_%)<7+XY{YtZS1y05dPJtFhb$e3C0rNgN`GK z6aE!}4h|0`Ldm(}^}4my%3IygA?K~&&&}|;-{ef2Qw;X^9RhUT;-9L%ozt~e4_JUIQa+V z&!6F@(0b%DUdtK9OL(9}U4ik{Lb4`aYt8}k)fa8iy6JsDpL(FKXuyISld2+8D+CfAuKi5sh>8&`#;Q3o8xxMuFCq&(wsM!7nS@+VH&2+N=NcL-0bV#lL={^?4Wt=lSX zuHw_9oM|CT=)SG2s(z5tBx!u{p2mcmq8(_I7QW&jO~kpC2o7@Q=@`PL68Xr1EdwG% zxXRWp1}Sncu+!bZAaA!9yOEydPHFDv^t8?Dxw^yh9uP!%%f>N{`sW$I-cw6>(JKxH zNrJ6oI!!wvu*c)=@-ecc*GXAQi~4e!q;jvf1^=Cimcmkj5+G_m%4%5a9P(}nM;k)3 zmPn_zTgzrQAuXhnBOADZ2v2g!aaMi&bJ}$SCfDL2>x_GJnCK4W^ch?Bp+nl8ixqui z1|XwG0|>XIsqA}>k|0G$mN1o;TZ3+dv*dI7rr`lli1O#5z9bn#Qks~4rWXZVyn8>7 z{mjKvcVWKyNT$cFd=TAvjn-1;YFE(W*^9R&z~%TC!p{AD0>6UG=$kfY91uN)U^>st~l_xor`hc>#17HtN zky9rVHaRpiopF99tEnZQMAxy#{d+-j>ninoS>Z#u;J05oEj#6I2IA5PT@0y`0U(Y2 zJ5hxFswM=1o6xySSCbSXCwvg1%oGe)Bf+9Ag~}KN9U;2QXeIxL*h#`tSHao}g_7-Z z_cRiTtC2v0Oz?^=RVt9-P*G(_>H~Zx5%w+wt7u*zz*@|74ofHZ7~7~oD<4ZQEHt)l z)e*y$7N7+#s$n(0bX`nUD&;}k>Mfbe7A%KD@e-(waD7``Auh2R#48#r(b%ciFBocyu0g9LP@;-QZ*Lc0@XlffQZZ_C*`qZ7B+^ zzmT&tiR6#-f(K6!%b&NYxtH{CShr1^?Ut~sqapQ!7+;Rqv8Lr-@97+vSqg%NZ`GHXQ_)9d`k=L{BR(LV zs&bFAa~R=V7m{L($A=zPH0iJ(Tnv6!@B7@Fm zw~ue;{h5QCB?m3z+}R^hmnsVQ{TQ&@tl#(j*&Y`KuQniEP^kJ^q-!@j?rgd*y%sGj zGItfuGVmMk=&~unR2BPMdqJl#=Mp_}3gSm?WSCd`%^AddKmP!BPckXx!ugrR5c+1Xga-I}n#Q6(RRllIfyyj63^YuV|g@u1#JkPEQ?7rmXZ2dmoTKu%n zUZwHz4&pa^lE4{*@pIw+%Kv6JUH7o%4sHQ-2Ou*xJYrDijgI&+3~T%UfRbK2P?i1;w)EbY>*X6 z9kDKFe_(8`gqLMxnlD=r2BcXW1OYCC=IW2u5Cb-DaImoeGYyASkJnC`mxp zI+7;#$~|a7|m4A<0s?sIu7`X|MD4EF5_8 zlP2X3Cx6KrD*?TY10MjTVW=`4n`WZI#6%I-_5%|A8Fx>VF;b^JnvD%>iW4%96i}vX z`L(CelBAe&X?wJj-cQG^1#5b|f7tM^dA7}qeET?uOkfek<|+RLZwSYLB;m`673Dcvm`Vq_c_t2+`1)|RR(4-4eRQ=-tVQtl-iR~qv%7oQfkj5FLnVnpR1qt>uOo^T9kGwZCYn_^C+hu4GwXIQ2iH5v zpxMRRZX6vP9hsWXVh)A=ie{5Mh>;1UNgKeOyMj;~N%CUBrA<}+Wf?#6RJVn-bV@xm zJ(Ew}G?*~q@=oZI%!O~B7@*Qn5=<*kboAo#d48E*e|mmQBZT;!&TvIM4G1rxa52m% zSbI7s#p9Fi(e28M9rymYwq*LmdhNbn;3~lhyas?Xc`U0M!R7o8#deWYZK9bk!y4ur zq}H}N!uC$j2HY}imBbqIENg{EYCngZ9&?EAxtA;!~Fpl;jTNat3%23DQfwA^G2=abEt6S$ObP;Q{wU+3hRx5FEDAWl*xnm>3C zE`mKq?cnGPd9AJ6##(6kn5yx3A6a~$KEtx|z{4QzIGTDo5c~@7@-@oS=_)KY&xIJTJk9>ne7GjcZ zCL5Z`b`IXcXYuhu-8`I8M*sc~p_c0DoiO=Ns9B@@2hQjJ44#vb zxrvRz|GkI&H-aVVm$v^5`k&e|f(HB+pk;W1{J|CiohZ1F1T@f40)32#mXwKP0Y#UX zn%f>H_aqUCoed}k8vI;teqRzF7nkPh&hK2_274f`H$*b=Eu-?|zr<3RF z=}q?ApQ*9igX{!s)zx%S(H(QT>&-ByNq(jbb$mWlO_oG2HTFB-#c-YG*{M%2B@xl9 zS1~;)(Jg8c4{8(QFbjpBKTZV+w6yE}mU zug&OKAaqt6b|GbfT$=U|&X#W}c?IV-43Zew1-?c;h^PF6z| z$zCHDlH>L2qIk%cbp?J24-;?23ES_@{}uo$S}ihBPlr9S#w%UI2_j0J*Hd<4fe|jA z=j)GV6v)l3c&`~Ut7D8E0l&rjjdhCJQy}+NsalamQq{1sk&&CIoOwn2pYslpQF`24 z!SFyMsq?Ux5(g)YiXSHQF?qpE+A~4bHF{7CAiN4$s8e-qk&Ha!h7D6B#{|u0f%+7} zYa>`J(GN|E14lk6Q{p8X<;2iinu3Y|+@P9o*Ck5Tww`8o@FWQ~qB=VyhBWg&x|5sLQsUaFK{!j*KX zdN1U+(bu5TrJ$f$D=?R!VPhh6bt$D!_m?aDy$}Uv>|?1Ro5Y7S8xUX?VKpGR#EA%5 zkW|iG@byHkb@MSwZ6nRR1MC$cZVKU?C5Dk^In^l1+s8CLSK&z>ly&3pW#$1LHpbI;{6R(~Y{)>hbOrIO)5_e%q`Pu$)7#<)q32lVzZ?wMH``8Eim@QK zKTKA=n}6UzOBXdh!bIcaXk^3gmxIRE{(3us!!!$Qw;saEr98;Udy^AG`YG9~W-9}B znj(}&1mKSUL%oiN9%|nAY(_^OOCmf0pL)4H;dzFVyQMvf*V}PWQ6wbUd)z(609kSu zS`1+n$N4_dTdmj$ey1Q$;-W}7CN5Uq9o`LVrA0U4k~OlEOYfD{pa1&Ib6-ODnK@eM zRt9!CTGbbR2p}w{qmuSSG7qG>d&Lwp-S8e-3|(Kha~m5hx~^TBTG%G*?MCqLE~<$M zSCJ0~B7Fr(eK(#LlAL$YUBEv{W>$m7*nqeAriyC@o1V_2EoRG(+3__#;r0Y4X?;!V zCXNZBa?Bu`-;}YjYuZ!HteT)BzhiFAX9Z1L!9NlqE}iL0#;q;PJV~)71l-v}Q%7}IZB7k}SI{^h z0L$pVFr1ES6Ovq|59I2i`#tv)Z)7rM5%kMgl#X1=!~NQJ2~zu_8jr+8JtT5wU8f(1 zk{S}aXCKnK2tDg|(ZltM?uCpB2qh=6Fzh=})7QO1XMLnxJr^H5x}mV9@^|H>Q#d#S z*Q`@1k#HzAm9^^CU$`}D_}L9(Qf=}f{D;;al{>K7VDKrNjrtEURr=}6J92E*QOUUE z9fS?QVWV?EWKeweo(IJs9g9aG4hr4=xG~BfiXY5sbMOs^MBYN7c_0J40<`c3>s=9 zUgWJuZHLo79s5*mtHXBigm))Ux}hU9gegg40TUVdQV+<1)s(>D;8sX9p_3mb;Vdq0 z2hw^3BO@rQX#73UD1P!-hK~4A1ovs&F1rNK%bwMA_kP_;KOb^w!9syZ33V1# zpqpAA1LW!+aWS1Cr<$4wY4xOOA1OtwZ|FvOx|6yNmjrLGEAC0yE)tI;<*Tt0rd9)f z1E~gahO4%=w=MW?9Ok7}#RFnlCK|KjOfPf@rj4ARO&!}dZhj3khmr-%yxdKz1tL62 zTx!h#{dj!`7*eyk#fnz|Q$iN9XM3>@(|b}{qJsk%t{<3>dwYl9jaa`sUwde2lgHT6 zPIztUAssvQzh*G}PH3c~9W6_`RI48~x=Gv12VU6}J-JMBB)edU1c@U9SLqcr!V8T4 z^VJVrxA|jz_|BN|syV^|g306eB8dqSDICVoTsY)fVmY&9Bns%&aan0BNP&zs2L4!^NSeAJc<4y#td?OEUuD z;o4?}&u}-t=&)g#FV1)IeU?{KKasl5;yc|@jZ>CmcIjqwAV4CfxaPC%e^cj>v;2`B z5UNK=45FMF$*j#+GMzVE^j37+DRj`D!H18FmmA*eO2FV$=P+EDL`E2Zi}i-VRT{U zyYv=Am(KeN->-W(GUjl=V}I?P=DqhkV{=|Q;sXVe(fFf6+|=a-4*B)74Lm*D zX!kz{ngPcjOz&Uf;+OM3=x+Zt(B>ZYcFyJ|P8Lpj|6A<+lXlx$K6aa;Nxyn|hV+7j z3nk|35*wA+C32Z-Z8#e&;Ynb#oS|K0YDiX*C~d_y%lB@*yHj*}q*4>lH)jRd0AVPa z$HPQ&i|K1KjV0>E3W?Ae!PDEjA`a3l3pC((h%%n6nA0f6IF)ng2g;O$Mmc!To{czeGqhmEOWleHUg<-4#o#GK`vcnqV!C+dEv zoJgI7Oa8WZ@`?CKx}z_{5A@d%JVNh)7Jl}~$Bq4l681p^-8FYisUay<_(KSh>$N_0qg&g$a~?TRfd|p z8jDVJCP=M$Y4(9+i|81|uxh7kIMNyPl_Mvkd->83=#|34`lR9nLY=45Q|#3 zeeXN{D<){uvX|}kFsIi6qm!Z`4rhY>;R8_>Tk>T7=i%W>7Q$$S!U1*(-+3#jz;4Kk zc^s1b{7IrnC;cve4tjT|15-3m<}3bDJ0M6&Z_bxj2*N6}98`Komn>n?V`On{yF|i1nX2mxCYbCs@DtXyz{=EHT|u>CeYvjKz%69_zD9CB zGJsccGItQKsRQLu)G{mF1jFPR>huM`j#uCK5r(!Kr9-kQz2~csKKciWnij-LkeT>6 z;_4_VxX$h!BL}463*46(hdY<#3Ie&t5)UB!0Qg}AgyVap)T$^@1H}Tdt(|h;@H_A6 z5nKYUBdE8!dd|Q{g6OA|QSot`&&X+&-XvW2W-XJ0Vj88Q2e_Go-Y$H6mc z(}F(>eFW6L)G#AtMI_--2$^2az*zf5i3$&q3@Tjbr`hf%sSGPQ3oXDkLAP^ zd%6{mWf2`rsoJo@sA35SvtmTa>x7P57zBgoz77-VukCB235t4P(xrnbeLbm&BYo2m+3Oh&R(OrZIxDmi!eD zfaH1uKBkJ8lkAn`@=Ep{_bu}xd&CM5{)Ip4r^;_2i3jQ~t$!2slij?~PP;D1$T49% zwmk8MZkLQl-EOs4D7{v>t;=>aDbGpW`gD6ec;Ehx>Y1Gf9XDe}hjk{oVpLabmHoXs z-s?Tuo88|FyMJ$uHQ(-V6TV&d**#3mTYLzw8hh@5XoV;bZB3&K33r>^rTZ0tLIMt+ z%LdX3oF1%0lx@Q+WD-6q4@EMpK_G(m_LvEtl0;6Fj(*6 z;`JfYRrm;tA^u%}lKaOVB5yb^38F&X24XeJ50e?}BV^Z}b=KZ_9nt2);01OhnezS6 z`}n~>qrKQ}zW%G@^R|wmJn9)b?Y_Bxz>;AL2>iQAc*Lg3wF5UVaPV@mE52P<$+;BQ zR~jhpgj;EwpsydIF~F&$TNZxKa3BPWP!4`>96xRxNfc37Xez?c^M?lb*f~6|k#P-K zWB2`h>>bA!&TnAY?APh7`g1WYXg~fow9TQ{;q!(~nMrrbIKpOaNO}K#Ag;$7?iQ|V z@Y8M!w+@fbOZ9++Wgq?EadQ1`FPk22HZ-X0)cHQTb_-00rrJ%Qcq<2YKHjYJMKVqb znN^ltmU*i=d#*zPeblb^>*dG!>+#>`P4CC^s-xQ8!h7&sl=4EQi~=*KfV?hZnc-y> z5a|l+&oFvygE@#J7_Yhy6HdpEHXV-0z1;*v4;DG?ifETD_cL(9x(Ff^vGOt5Fb*Vo zoz(>jR7EcevvSNm%QQmNiMm(_YDbwvH2NV!rf54d!2BA)Un!a|FJs=w6JnFjTBKjH zj!3j}|B^h@MW2pMa;n2jDB2?Z@iR)zmoV@!xm>=_n@_*r0zEY$6g=$hT)97tE-o{S z=nUnXTSd#*8%UP0I6(z}{vdc%%*P=}X>)LX z$3cD+>x=RV?CNNVK6^&jM{=8l>(b^^#XI92H?O!OhbG`p?m%Z2#afKZClT$ts*Xv? zv)unu@_d9nb_SItuM1wjic3A7tYcp8Z2|Gr1N2HdS{p9=^KyE9_&_?D8|cnd-218>F-G8NQlRa#PyLqZ5WX1@)_ML{Hv zn5d|2VFt>zk&Wm7SH+d(wo0FLEEN(5c(n-C zAT4mY-&48IhW)X6|GpybM4g6a3mr$gq^kB6tejk`R@~EsLws|6O-P$IFTbggf)o=` z0*TZ6R~zanIx)-?Z*E>*tUy)dGned4W0F#x^^=C&`UPfKq$OX}+Kh%r9H@t(#9*EU zbv2jHDEjARI z6q#vkTdfs$VhN2L)UnVL)?KbkI5fXfhkxZU|qQfX_;f|xW)rtra)c)s7XP+Nc5(iA!PuQS%-zL1F(&pEdQbJn;50TEYU zx^X-@k8=lLkg>c%A^H+r(g-H{Um|5o7J5mKEiq(b!f_G?DfCb_%py zo8%zOwTY>66nVheJJomYi{~Buyq}lJ+kdg#IQIsh)JOeJ9JjptZ%*hM9~OJx*u>)- z-(kXYQ-E5Yu;?F!n4yX)oKRzN73bJOGN*@3?Hih-*k+(>E&S1vGNmPv zZ9q$$1GhXH$u7>9lIx$}mJJIv>oXTKW<<6fcgwzAnHafodinS~9$(&`-v;@2aq~XL zV2X`eElK7u^FK@ntF3Xq)Jm_#+B1nSmam0a5TEZM2p=s;a%v9t-v%Zn1E=OCbM;mw z_I!$*1e$+CU1eFTn4Hwi0)O_Y3I<_fLEYZI?bdnm6UZ&Phee4z>&6L;nxUT}ORy4r zLUdLP3OXKq{A`@fhvLHoV%b3850b;aAg6{h+NkSNj7eK{2c%asHERj}k_YDvtQ4;* zj1R%oUgItvA;{rzj4eKN`L@#y5hJMp)rh?3amnzRI07a)W^rLGDik9RdAbOjNpMjh zc_P8p4TR^ru=IHce0#0{FoV(M=|#)z%+-~PKyp!As43eB9P+$SmiWk-gNrQq8%r;xbS<;oL7I`u$+cYcnx>rZQJUdKj zHOgDen%zm0?o*^bPRd7WVHv+U|CHuvX?ZPV;O2muAfjj#+z(w_F0W(KvJLSIX;04U zn3CAaJzc7q`$#a_F3zn;ziw(ijBATeR+@Fl!YmuQD8NPY^fs!ev~sGS;`K<^;pGLFVNuYQKCp$-L+rxmLj@J&#pRRlcY&` zc4S@hm=7ykUYyA-AVX%_60TeD6}`XD`R6lO2kx!-W2j^?2-}%2^@j9N@%ug8(k#B_@juHrM`lHd5j))N8J4wgd{=1KVr$lW6h_#!;pH?2)()v# zwJ>TmSo!ef9my|aQrWP+tx|=bFzGVB&++_5dMi9Du6URIWx6;yR8Q$J$j@E?TW9@K z-i*W?W#cHQ&8^bjmVSa>{25izunU10DV6N`of^{oHl7uHNE=LD!yRlS#jzvM)@dZH zo^@mdx_QRi?Kv#@BjkNt=phn*^^fIxbkl%KrimA~0fT}UA$T@TQYX%nP8N^qDX@shqJ`1Kfdu;Rkb=y3rVq0lP@xykglY;WNWNfKB zuT-*>u#g& z0T3&2rZ63R3oTE^+O>c!FYphG^yzI(Nk(lNrMf*SY@uO%+@xeHP7A@ zYqMndX2mx(Z!+0oWeGW+Z%ACK?!Rm2mDqPR9oc2r0Wv$i%fImOFRRY5GBDRkKwTE^ zUoX|8)LOrJ9NuP^@WYwS0SA{YJAHHO9bMPz7N;a-xQs1p_&KAl({fpm6T8b7?5I{B zcTDk$$)A~!0CEYgm%pn>I*Z`RjbjRB@YO5Lmci4}H3UuMlGkiOeAT7i28^6Fn=Sn^ zfompk^9!qVjp3;;t~p|Ja#AetQ>1KA9xloXMO!SjYq3q-1Lg(s^8w<-GgHxyTTNz00BF5`boRG#wU%&*SRY$dmR2z6M$qJE)9e&$tN0^_tkP@cFX zp>gTKPvQixAXDE_jQjnPL{1I1OPzgUzG;lf7q=CwzhW8|AjNvbM~+|`Cs6D zRjGg03_{PN8q8JDP;hBg2Y6aIG)c`O+MnorMg)*hfts;|CWiJ&$28Y9qTg<2sR;P- z0Hpk|2ZDs9o2#kU^aL779Sw$v zV@qInt@B<5AAyc;R8Uhlmkc8SH<^EdwhC*ef-333QIEF7bTd=*XSuJ+R8-TjODMu+ z+huHnyPO#Yc!Fwq^=N2ct}PZ>jm&gi{nU1rFu8h4#uTDgo^~uXG!KE*{2vT{EoD*5 zWzy*s6Yb7TS@)1Q_4`QmzbT<=4BZg=e6Pf_pp*8)VW(|q7K^70*NqZR$nE8?Npvs9 z`-AJVbxT}v0J5Ce(E>FoHFrM>M@-y@YS3;VdZ-&6ibYJLVs8Y>CkI#E@J1tzGmNqO z7f@t2`^d9{TYCva2jL}qiY2$^{8_DmLhiYvn_)}C(RT#Vn{H6InGFFZ-LV7?_Ri)s zNL)FASULQLU;_d|qoj59EiCiaEvc?b^n=RijScnK)ux~!nG!~pERFA9Uk6*b4ls{< z6if8FJUkJWHrm?(r&M->&Qv)xnmDquvRkjs)Hom{+le5l&RGGf`s@%|N@u9_7Yhr`u{)6>z@`#udS9M{yO zkEKaI6a-_H`Px|@YmN>g3{9znK8b$UaFb#vv^Bmlh?!lCgMdx-i+u+r7&TLv`sa^yYJ zs(N5P<(Wd8%}OZzSuC0V`D^Yk#$bcbp*y$SXL*Ls7*mAe9|pQ*8RCnd1aaF6G8e{M z17uOZ7O^)8N5rla>SWx39}FLPm~XY{?Iz#$yBsmJ$vo+&U;2G*uln?B@2(yl+V95? zr46;`X#RO|xletO29?@YO=M-#ndFpbb^wz}*xqFWf;&NXl&CB%tZCO;#$|TQHTVQU z5kHQ!G@$vO#0x*vEnd~I1N~GYE zI)asU)S^ivxe4Gxml+YQ)*w2m2|pMQ2I4~&f7vX(Z2$}hejg@0c0ZgH&f5apEY_U` zSM)?CNbQ^}-W`OO4V8U{k5S{0%z)?rbi7%5_=>s2f6#i`zs9_=>fNF@)rxifALt51 zYdqk|e~E7Se|GZ!pfCTklm9=k$;a56iJL9|$Q1z-@F=*M_1o;t6GP9W&m=9I#!0fG zMFsUFO+u+eD2WT2joW^=oZtiycZJ*5S4%mTNK!+`TXr0K6W6jStepoYgi%qJ4Rp(? zB~-J2G^JFOr7u8d*|pK^-el?3Z=;%2sahAgbypHk6&{VKFJdN$TvZ-&0I94LJiQb_ zDo!sBW!LW2AaLyS`tx(Z4l>^x^M3D{Jbqr&W_x|UU$Vk^sbdknW*)QiPKgZZjWxxt zSP2$qcgLY}cdrqMklup)M;pK4P7#EMd};Kl3@->KwC}A89d2SV=`Axx!pQ3>q*Pi8 z<%czOyN2q26!Vnxs|%`no%JSFF?M^s+)}+iA5O!^i4r=A!)w!}k2X$S`3&ybffusX zma!N5jhQ6wBff{6GVV1~u*4IU+y7RQ7(k=t^96;2b}H_r?VXbW`qhzpa`_igrb=W@d&hH?g|H`E0nkQkkWIvl*(*bO=W37(x4V%n%K<_u zIrAL;S0CD7978)-96Q}{6jyy-$I?WT?Ik@t23^%h?+3&Y;PAGJ-=f`D{C!P7@7>q+ zvoF_S-G}r#ueY`jy5cHIMh+{DwhR|2V5Gu778SVKWHkq-^bl$Kyz5Tdlm}DGc9gYj zr%d*s#=&B_JD~Sf#ORXp#X%T#sn``T5g!9XI4 z%Uxsc8O@W_Y{&#`BdhVe!ssbQnrraS{b&!T;H5Ku0T6(jed3kj$NICV$Szo6sdQ>! z6pcYsFFa;M=voSWmhlXz&j;H^+eFP>#Pevw&{fmVFkGWLxLzUg?N$x zE7t*3{sfg!Ea!#~)eHNfWK}aUXqa+V`qcbP_kcx#j48AuD0#l4%DDM1K$L-iW}`zJxe9x4pJSI(KRVNhsdbJ%Jx&v4?lx zOF$0pV$t~%8fsvOBV+N}!MXhhu-C5%A*j72uHXsa#sdb@`GU)5!=xhw2x8BS?{c~M zAYBP%K};6b(q1%gNE2X2PLuXdE#dcJv)1-tU_2$=i@BDFnq&kMCFa|R8^Bo`;w&c2 z8Uo|G25m>-1Op36w~v})zX;Unns+qeJlXUx;&lst788ZBvG+lVp@v1Y|Ms;UW%WIz z0Je1o{|J_{Lov!0`)qTvKwnU3N+{4jk2dQtH9T5gE{vpgwuP2|I%OAdqWVD8fr1ch zRP(Bd**BV^14!2CGO8g9DOn2QlzINGZe@|RSF7UeVG#(>fMEncakcq_=9bi^ zI;6vsr~2c1YgSYidNu>MHGf(7h_f?J${!^DwmvohEw`kBxi`C{?JHbz>q}0uwzl3F zl(-Y%KT&JlJ4s4v5Sjv@jE^LVm#O6Ca}vHKLz!H=$A*|YAzTOU=lj57TqNVWb91fD0J^*ryz>3K$!?DiCDngg%1MSqdWN z5{~+*-M5YtRo@!fOsof50Dc6GHY8|v1hS{M-zH>&8>oxDcD^f3pJ1{74&q#`>#}bn*{P;JGeZ}+DeGMCNf34^;umu6GTI*%|18y7#E$C+iRq8a%WY!b$3&x(f~u zjNOI=1efbElt_6&8=noJRc6MlCVwH8;=!N){r19Rm{5m;VCZYN)CE+ z>_w(8;C+}uey;<35wXioUNd7g#s}Xp=b^90i*38!tULM2eFn~1nLB^GrQCMIlGlxQ zRWN$Omen{?UWM!vs6>hjivfx^%Xvuav)-TXkKvWS;k%R@#y3|de_-A&d5mDZDi3Z9 z?P_KJb9tkC9r3pJhx=JmG>559qd%|#=>5}t{{Dx*XrQ9pQ4iNDD4U3&;yt}2TI0^e zT`I%MsmVr5*gTu@d=mqK(cgw4U(ZFQ4qbG1a=9z4Js9Rpx3hw+&@J3$J_<$)p>fIz z&*fGVnbQcS1epp9@j(kQ%Z_pc{5rtnVNA&)hnap@k`x6%Gh>A)K0v|__w zeNkagw92`$YDKk}ewb|zm7kc!8CuW&8qe~0*6DRw6&Js23fODWrGsyqIZm=x)gAUJ zWV5JU^BmOm?v%x<}K6?Vidq6JEoC3~)&1CKz>d@BvrW*ami1pI!B z*?T9pqDI_`0;t2EP`q1v^9;gYLRB`o+kv-lcbu|$^7DXp-?|jXOJdv!uTp>5OuX+N zxpfGqPE1&_?ATq_yAJ?vv;A^8x`HQ3x4f0|s3{QoB$(|sml0SN&%q{!D28x<*9@ zd)Ti2u5j!d_eVA)C4>>psii~iU8yc@K@qe+;o#FyaH$<`U5INZ`M?wmrIHmdsGSF5 zAZe7_w8c@dGV7OI<#k$w1Rc7WJ}HiId>tu(IE_LA2wrb@50MA;#g{@FEjKufM?vUf zT~@qlA+`vASqUG^OQDIwQI*1zJ8tr&BIpGZm9C}kUs;eL`ogJxm9x9EyT4vbG_Fq@#xR9S;4Aj<=GGPUIN9W(|@mF z(y3eU!c#mdz?Ce4I`5W=yA-x6wy)~1ojDi3HTP1n^l9k1DCd8^y4(F|PT4J34L2C2 z>)?o2!>VTYhViDYeg$h)O1qpS!B17!(Bbo8wWSVKK!+~a|1mx9Z#g0TTH&SX<+w)p zF2zi(&Dw9&3Dwq=^Z#Ctd!xo;^a#h&OGDU);vg5W-%ULtX+J^$p@y_?P2C97k_ctQ zE<`n5umsE4vWMW8|3YN6d(rOE>us6|)J#27UZ^DCtV{*L>g5;Bv@fj(} zYC*6;k5QcYh%=#Dubi)Z(QceSol^5KfV?zw0fe`0xb@1Kttw$XT|q9bHWb{hMstIE zatNG2HZPaAf_GN>(s%_wFl5l9{@T6Sg|OXr zh|aX0VwzEV{N4&c3XbJIkpl~H`(Ix8+eWRc;2#J&1#8OR6gZp)T#+l~J zj(nGMp8fJQf7zL&%n}uNA80>>l_u~r1%0I@j+!N~^Tj3Kx0^k5GN-9)=NxY&@oK|a*MFG)o_H8;y?EV{XD)*$FT zZ%^HY5O(VxRbh5_&I{O){r<;wJv8mUxg0V8z?2{Wz`xx1|Hug%*;)T@Y@wE&(`MVe zU#(n#1DP97i9KJl_L3FvJY02#t&DwRvD-2$7w0rFS zmCfRC_6U7SJ?L@AdK3@5GHO-hs&J5`C(Y+GruvKeN)@^nwdgYFu48*>MZJ4^ts1?V zSDx;RW=;N*F+nJ{QzUnS*4J8oU&X04IwZ;@4c)z~M42J8LVr%u@m$m|tTT3!DDhJv zS1k^P^Rn$5xAncZbh;ebxJgRM9&@*~cTQ;gEC1=C?4XS`L_WNJe-7{-8i61&iZg}( zhpc~y5{2oaEzz`X+qP}nwr$(CZQHiZleTSV*7xqKYSdr7Xh$PPjJ?;Iv)&a1Dt;Xs zBfr)YG4-v}g7(R#mb@ojravBuleWpSFUu8E=N?awa?_|^Fw}BN-v4iU>mu9Te((FD zJm3GiY5k&a`j67<>+Um9kwl2V+PdghDQ=h2ZHt$ZkE8rVOYoS0-I@40^+AR9b&dGI~%xwvoS?y@A6g zEdpPZ%1O_}Gabx3w?2S)QvAv2%*qJ;*#)tj;pNe(^6a+%hAHXlQOSA3o(6fkecB{Z zzioH&c(*Yk_Ee3DR@}y-`KV3nDMWhG@8co9K9z2P@BU7nQUjI-tBY`2sX@*`6wd9? zD$`WjL!51yx%a}1D^*f$;sS*P_OW0(2vyI_gRpu$+cFRdtP1>{|5*qkLvBlnM4F*P zlJah9dv*r5F%#oT3Ay*W!g3#;>EeVy;I?0DusZe63asAjm)Z!v{=$CRUO7k}&a#7O zjnu&^_@KrBOzSz0`wlfgfN;(1@|{7D{IcPUe_x-wRtIH^#}%|wz)EL^9LocNf4N2g z;NJ)&fGkKr(8QR1lZWEwf9MFi#G3*2f^|L#qyhLXP(y3XvnB)49<(Ts3<4_UaFlO% zyhu^%e6hnT6|o5<7hIpT`OSJV`M#HaH@#N+&-wZHrxVk&`yJ|Y6bm`Yw7Oe!7w(QL zo<~8(+*4%%8KZx{Jsq&!!`%Cyoo}8G-E-A&t;0F%JvdF(qJS;I>e61|Z~0sIZ)%L) z-L%|0JAbFnqQYwp~jL|Hi-0Z%8-nPvx6n4 zkjJyr8YIv^c0w2Xpb(N92d2TUoyWa5W`od+VLCE7;9gd`&*%=JPXWiUIT%_{(rq$5 zv5=d9Q`cbrd@0S!P#Xg!4A-Vr`o`$=&sm`?L>W0coy*J#XaFW-XY0sp(@ZNzf6f}V zNpNN?j=sa2NpidZ7Ctu#ASkH}&UWnOnN;qH%2I2S+FZEt!ijgjX>%jHJ|2Gu>G8|_ zzrLUC>vw;juRs|(UM+`LIyO+RjjK>?M#dO)k80B{$S_2%C=o+9!a3f3?7}XylI@1+K7-mEP9vDm-Qqi~cV1UHc>4rVTY4L-WVqnKszwJjFrI%CM=iZEw|8YegX`S^Aw7bDsCIGH z85nZdAn(E*n8|lW(;L|`yc`+(TX3E8>OkzykQLk94YcpxE8E)kB?tVR9bwPN+Em{9F$^8D zBcTsQ_%|#0EbtSi3k40N%A2D0f*%2d)H?%m@r;IHf=S3G7*pF*P@DO{WT>Pqg#%V7 zbIG?r4IF7|XIDN$c&`ePCr019auNUwYfMCac?m9?Y>cHs<2D^`uQ`KdXOirbi;Ouc zc2&j&5TOCsDWTTTdR6BKVzGl6bO6Znt~u0(b=Y*nV-7n@r`H@6Ngt6QQ~?K!28bJ* zfF$3zwu*a`Mil%COCN}Rj8|T`&uNC+4f*}mtT&Eh;*S+m414tPk#Fu-?sUlG3czI|$Z7OSHFqmQO#_;C#TqPe z;=Ypo>ib1Hl04o}?vgZi@IvO4NF1(#l?v0p+k^&dgCzBWj7(YkvB7$WE{3Q7ZjZcm z?BAcdw)GJuL|V#^8L)K?#%1E;LzPm_-&D8}A~l3BNm(7T0O11;=JEM@ zb1S%jzlALY=(wN(Z9LvC=I<;yYHXWh9GsFJc&G?ayx)F{rTaF9$!K9qD6jtHgXl7t zCgLEgcn9x;eAiun&BDV` zB!E`6;MIuLiZYZ8f#2{^m%p5$QHF7Qkk={-&`6xQQa^%f7`OjNow*B&?A* zT^Wh!uZ%#XV1thiND$R_yNN_}#Oj0&TkP;9mhEb6TeK!h)$nNG&ChX~)~_m^lz(!r z=>Ij+loH-6Gsez!QJraRwmU4BQH61|7ZO*_-lVXs_)E3iWXqY>Yi?Z^TD*o#5D}Lu z{}vSMb64amu))=IR2-*l%fxyE;!1n!ICQkDNPebN%}9XXGK8ukHWFTXpuAt1RW%@2 zZT|PA(d8dpu36b=aA|B(T~kWaOfup2QF;-Y+-v~_6qtMrrMT*t->yRBig%DQ;P3x^ z(q=;*5MMqV(@Xuia1KcKP{8;9G3?aQ3w*sOq}kKq?YwNN{#E}J10d1`DRRMKa~V@T zdF+j;!(w|;m(xC4`<+^*r1XVSM(M0nSWb=u(`#JV%&ISe4v(g~QJD%!14Yx!u8|0a zHj(h)57B?BmtYih-5-2@ zaAYm77qfQlV2dC5&f=>ak~OF_G*PODxn!g$))`@Eyaq7$enNv#dw_M4Yro1=ICFtL z5tYZFkEtw2kAUz3Z03Qs%b zwZ`Y8@(=IW>eRPwnJ0i&EgqEBC|1M18`m~zK8Cf{WfU3uh-Bh`ef^XKTBzWz>c9B% zPNr7|?Xl-ieA*E%<+X=T`z6P511N!?A1mWLc(SI& z{B_XJYw2^C66KdS*62z&jclGXr`D6itk-t*KZgoEQM^)N5&o-vz%B zmQFa~VPqzUE4MT5Dp6@i0rEkw5HqhRK~9$$n`~7j(2Up3^TewMWL@P^486aS0pfqK zXUhhiulKzPA7*Y}ynv={JylJk5y_%PwZ1tdeU5PIQZePhm~mmkD`V9 zaHRnm5L+&M>~yG9^8wXwtSIKP#xhS6xVR_z63#t&!xM4IJf zD8{gy%=~RjfCw%D0M&2PtdaK0d>;RBxXAGvtro2k=LylcF;Z!~Ve(6E*WI(rO@@^h z+6OvrZLI%eeB)=hXO9lP**rScwU-cv?@3H^q%-rV0jT2vgdaef_QAF1_2Zy6(eZgiWEi{ z#OPi_2}Rc!4}KdWWcWl> zArd#&@stcgmiNQ%E5jPk{R$^rfo*ArhQS$aY&0>pt-Poey5`r=rd7xu*a|R6>$K9b zj~$N=v}lj+I+NC)K)hYWZlW5Kgtb@IX5@5vLH6?TyhMtuS+?;%WwAE5AW9fGw7d_I zI>dxT0~wfM!_X<%frEfYMAJUhE?6}r-DeWguyNx2Ip}8ck`QM4W(5@pb*L~}5)P)2iN|VNUX3Y&)7%;W74WBvFoKKL0N=1(;`*;2( zsgaWJZ)e_ZAVdHdzxE<7xary`R?ey8?|{R0S|>i`(~#*HZLn^_3NsJmbyO8& zOz8&PWX1AM7A91IRKQHu&3ln|L$pPkf`XDeMa%`^8ho51B0P8b5sxR$K(G@`w%b1b7%uC`v@b6(=* z*4Rn4Ow7!Sj7Lmk;%u9Chc;1i5KChFQr!5}`-6+C+Uq6%B_2Xy+$+5lAt!E_9|vV)Jl3X&c-m!e22x@YO$Jc zqL-l5{O(pmvaOwLD0T`wik7+Q=xAJtkgL}8?$jYu!B|ZM-v|W~&u0EQw_-xgcA{;k zqGllCFno+;H=eY0?M&x=2X^gJRLhE<#g@CGLFj1ds0Mi(YW~27>l?1EW5%;Z zl)~p?(N-zD*$J~s#v)gdQOS{Wnd%RCG8%38TO(*oV+M;WdU=M8f5DwJl54LKvgvmE| z8h&r*+s~e_yPulz`~E(*a(q_toSeokvuv&MlI=w-ogT%iw9BgWKiJ6oUBo8RRyjS_ z-6bAx7Y6_O+Z(zfP!;^lJ*o{g;k*1$!l+Grt4k6~Yj}m-D>SS{G`D-`l&%JH>Q`=c z86eQY_~Sgii7yp5+P4GPT=p~W!>Czo2xv{0BeT?_L;sZlYSKe|&xFVZMQAY@U_u&! zY7bsnv7C@=K77K`%__6Y#I*U$va~G zzv(DE=`bff3b%OEiS(#e?lF#nr;Z*S%8fDA)M9Uh`7sQz^NjAg5jR^OsY`{rncYs; z-jQlWM6K(hPx(gNz+S$1nNH_6eElg4Ao0`0o6&0@w>-|KT*o)xSLzHM? z?v~~wt*M>R&JR02W$jG0HH*0A&W-@q1nddCL{^flORPJ@1qXCOnSkk1F@SAlLRnRW zoCN^Rb1{`>ojP-Xn0DkR7sFD^?=y7RRaC+@wCckfgjBwC+BUfX{4GN;sarE426QLW zzL$4-c7uN};Z}QuR3+Bpf;hODyIw~SM{e8Laq(sWIS(RauR%j)##y#23NntW(JceH zVqmmb#tvH|!$DZ=|8QA!bZNS>o)%^Yw`z=NtI6zIwU%oXRcL@lGNsxR($FbFJK8bV z7?IGQ>#SfcaTwNSeo>*Uv?z98xi14|_ADad<(zPXh~QF?z^$uvg;%0VrBD?{0W=0G z4CcCo|2N9eLCx;($N)ZI4A$O60GiDusuF4-3;V>Rv{_{jfLjL3LJK23v4vz*9wyun zh*cZ4X=`w$T|y6-N5L#M*f^kGJ_4I_V#62Z2K~W4yQ<^{4h66Rv^@`rt_jT% zJD?@l@X)@?T?5nRBVzZq4S;}bURM1lSGG$_TuuBoo&f{@%zQGIqpqmH=a7Fz%##1TkZ< zK4jPfi}Abi%Ck$F@{|EiQosGmoPnP01LGZ8hVf}I{7dJPA_P}T5iy)_`LUoSMj(^> zgKm()Fau;H^q^M&k@E(h3?ZYy2s`pLfg!>N85{Wz1uwaloDhkk81s|gz%&PVevov5 zPCfeUVJSB9$pACx2}P?2q(CHTCd8oI%73$yQ&vE%&vTWmWEH}XtPbO z#ytYq>L;aXL}t7d@CBnQiP96f2LPOrc(1RAc{Gk^Nbkb-Kw)zqoAh`D1X1B9e1cql z31Q4XhOzPIdbQ&x<;P7lKD-H(4`kx&GX74;LjJytO?~*{0j<2wqhb6}kOIV@OU}0O zlQsRh@+^sEYhVpCuT`#nQQEh(s)Ad|z@>1T7me>vIPMna)0OO$v6E+4gV!jaKV(-9 z9%v0C^{`iG*`|A@lvy785mSy9t)}$HO`yzBUKbrTBX10c-b+-X+)*7RDm%rZ4Acuf zIW%CE4kg_#ec?0M;2Q4>Xm#MPFr!$!JxiR%aYPPt{cj=p@5e!C8afY4R}M4o?0ts> zob0XaGSw8NxB+!bp>U~*pBF6MF*EKYz54syP#xn=RU-|3*bgt=01MOST81xEG0Qe6 z2}D%&ZQ$Jn7mmF$J_<4P!Z3u6MhCKDJJV+UAD?W;hYNZ=DYnsXcb_l8iO~xZHrUWHEpM<8OB-DDH=| z+h274o62FYvUl7M2Ynfn5U+iA(mR+B;Oqul{7RB_?IAjr^yII>*YIT4&iGM2f`r10 z8CkaxSsIN#^0a-BtZDxLcd&f@GShzIzuNz|*#FSf{>y2a7`hn#pRDHp36DZKNl#Z6VhM(=TE2Yp{ToqE=YMCmr=xe3qm*YpIWY>X4+CWu_Rqn+MbePvm|$Jw7kr3@9-M&SiWvZ7^5<*GrHJN+4{MhiHApv8sx z2Ue-kE2I5UHfP$2L^-fm+74h(-ff$^9MfIa(VGfO*oKV!5|&4B$e}?hsfenZ!~pXS zNpp4GEEZKO(zg26WEsVij_SHy_NFuuUMDH4Nvt=}o+j8uN9w0~9`LsMyFjTkD6fsf z%lPJ)CsuTB7RAWWG~&uS9Avy`yHi<-2^`ac%n=T>>38r#(is4^u_JlC47SN`1We6F z1iyn8cC^ym6=X>)dr<}~hlV;cn*dL}428KjG^19%`itUo0uV`?$}`FyEikY*3{(g* zs6ATv9jk$r@IVo8KZ}D1@RyL^3F5R_MTqFpwO)hGQAu$vm-_z z`bCE1h!fp1iiwUJW2K1}8}lnD4}eH)zFB0&y^^+&gvm$KpCJxpq1fvsYt)JI9UIxZ zIaG9OqSZ>#ijMB7JIf{Pv?hTPucGpJJ^|?1SJBo)*_8%bcuq%my-8`xHXJY8wKqIf zBI_&g;oEG4A$}~M<;r23kX`1-!AXV4!4%A-5*$-TTEnmzpkucryn$HL3L;2oHcx#}VBvokKnHtz`WCmVU=$5+`gks@0 z{gG{9TBn_i#db;vzhr~GYEansgH;s@Z2FraIqN9^P73KKpMAvtAf zbV`jT;Ws2q=ehoHVt9i%7`LP#bli%~&xJ_>fa;^jSmG7sf3fD+cbC&8Y5d}weYN^5 z?F2bplmr}Ui3U!o0Ab8uE@+XgT8X8;Y}s#NOUHfIeoAKMlaJo93w61M?1>Hied1Tl z-G&l2XENB#!7nP9$12TrthSOyCwb{yl4xQ(b&7cPTXlq?J)M}iV0835AHxmIhoF7K zR>emM)a!txZeT1PCjf3mAmBx(Z>$_RI-yd#6_!sh`U2kx#vP^V%b^u`q_c%mHNLO= z^@9MrF-n4a2644MIR%J0Txu4Ba(SW^;0Z(?x{@F<`*FpLULg8#O}ON(~;BbKpO#E;iQgT{qNBMqr1WJu_i&RcXM zy}z18v^^ai++Fgght2&6Cu;xQ%wm6E5vS9@=5VOks+Pq-Rw{sZfoX^t8v{VIe&j06 zJVzh3PTUtL6(+Hp)))gAq-PdL%?K;&e2m*Hk>A3mXHd;m`PBPs2<)r@Q-DItV2zadZD!xTby{-JZ6;RhZmsDfOUo^VrD&sA9Ns4tO+}~Wj4b^u0_%v8P+9P zy4wP~aNDyZ5Kx~6QalR$&Q?qDpIM45(Ui_@^fcS~_B&Jxmoi|cy{ zN*6!CGkYP%+hU&kI7l#`F#D#c6-i_pTf~G+ogI((DR=)yEUFj46MlN^$Rz~=mTyYt zU)+pLl(;+>iOg#;;731NSUlTdv4%|KsPe49{g%4FNv&rtY^)d)FV||3Jk9%vQ9RxA zF%f^$z;g8075b}Y^k)m`4YrRcd2KV%y{Fi|BXHmb>-RS}SwAE9Bqn8`BR%jIwq`}|yu|5-8ML_5npI;iPw`D%^OYQxA}Qgrpj_s@ zORL1)6%jhZ9C|jgDFcA);=oiIc|5d0-4rF@n{5!~F??#W0INV#PA}B$d45&wO&edp z9A+ed%$l87(;;stZV)a|PwizK$@o=BUmtkvSlqR0!skZ;IUb{dbPkF2Kc!)~`_CtA zk@2ViYas1%gbeW`%8zTF`>@$FKA*2?zhPhbc>Lcuy7`3>63<+~e6!|6Hji6#pD^ZS z?&rQKE7a!QP@_`GZyw=yIB)6w5t}gXZz(ChS54`}qrye4AWK$r)s&6b9X=5y`b zM89ML0lx5gEha7-i_coNPw6M01Rr6{cFMJc4$~W37E#0Fih^8j{^;;XL5~&I^5X__ zjDm>&)<=@W>=`p%9Uk+=RW9NmQtvN=K(;3C7F3|wn&3PHg9=Z2&tFCO5J9`a41~}i zgz9(yAbG>{J-L$ahExc|fsQq0l4|px`j#f8P)lf1o@nf#BbdB2b&W^Jn)|N7vBzQf znE(WwHkID^4Lc%=Ii7{6rpyDg3ve+ur4Rk>e?*g7Om|vY{7z5zk~3d6dv&PjpH;k; z_3dB%1vqN(r5XX3gv$!&bZan6iGN_|a1S<~Yv*i-%0;Cd)#MEjB(4u)Bv!rQgd>j{ z+$G*=t>PE9c8?Y0(GXNwg*Q=vSdCI>aBc$cp5jmw5kzvp#1hwQFjPBUVfetz31)vn z&w^iUsGGTk1N^KKi~3*_xXvCwrCElw{AaIzBo8h`!+dC11(x8A418k#Vr5)!4W~-C zx&IM0CU<+$X#c{DV4YIrBl0B)yk1kbUJU2|9*d<6Pb`hdDrjsrNE228)5TQ z#{a6#;=JG6-I!T%he=~{1}p|Q)PVASEFJvGClztRoDSHhTaIZHF^F%;p}vnCIsrRl zqFe`Dg$>9j1so3MDW4yR`)fc5p<+Jbc@1B0!4cUx==ssg%@VMkK*rx}9}S{1U!6#L z-$GpR45)Z<6H#S5M#Ws32{660`I6i)35J7i4m-K03Kk(nBH+))g4h`@D@=t%B~`FP z&JH2=Y#6J}tGg1!taF_Tk^eJZ$n>9aI>P1(RyYv2zq>;_%)6w%9Y{QMVi@W;Kdys4 zi#UM8hcD5_fAq`PT98aj1_{)ykLTlE)(BTD7t=QxIKUtgueFE(IQ@IDd<8yY%*k7( zaCp#e8mFNZj=Ion_L27G5F`jLsO=Pglfmh%ErwLa&S#D-Ei{m0ilcLLyo+2A{ z`wZ#LAw$P;Xk=9WAQiL`(bSCz<3++8G~T(-Z)PMq-??rKRD@uNf#)&M0YCU{J%;KRzA(hd9=HAYWv8SYgfM#3P} zXixa9MaB?!#}5NmR82|LD40)FJsfA0>d;Un3^o!&nj?SCng%jnRTlO*g#hh|s<@}q z_dC8mdD5P)Zm<8{;8DbW{s+smkWh)y8+grh#_*_A!^3S8lE0pf@kTTut`d4>ltrb> zuXXZhIHJ!Bp9uvZz$WAeQH@&7ITNn*9KqX*A^0l7U49dL$!E4z=Hid`B853D?)4_@ zpX$yRzFf@>jF1B6=aV7DG#F5x0)>gdHF{#wgg4I0;1J-dp+Yj-Bs0+5sw&Y+I|yYP z4ag;{+D}&lKW(4C^?t8Y6t^+77Dx#gQLxCZ>1r~2A2SSqk)|?ssd1Mhkd-nF@4QQ@fo-GO4Q%uAWhW2|PBjE=zQ+s%+Ad`d_Er4#l}QHbi%)q4r%AS;L$~wY zkQPFI@!8CbF*VDjdK;`0%1H&*ZzCUN`G6Tr>AgDMc`Y=FjK=XAV=Qhiw-f5!IzECU z6^Ua;%`OBa0s7DGb>JewW(h`QkM}a~1$x-ri_5HmwnFzG(B}ZE=4D}SCLfS1q`&jW zQGD54uQ*D<)7Y2LDXZmYe)Ld`cHA&Gab}u?uOUH(f?DzuBhO`J@JTW6)`KG~&7%r$ zGoMIS*_N;viX~8b*a9AUTJK(mzJXgHy=3CLTnHn=ne}beFm9dxpf@DOIffAm$Qj<0 z(>GKUn$xA6RWF7WT3#kcJJYpb^#MsXwD+Th?iQ1?N_IBD1fZMznH{`qOJa;Ph#K}{7!Qw#(6j`SPMwuj5F=`_N-$O4zO zx0oD3YT~Iijrnx$UrBZDBrBR0lec^2kk^m1J-W9!JQbew;gv9S3U&xfJVS8Ua)3Rr zjB|a^;~QDjG`tE91Lig?`%Q1|N4edt`i{{Mb+c<4E|yLU96jigD%-W9fwku0>8pl` z%PcBaIjMxFACjDnjjevoeZhJHJSEvJB3-%Q!9mwV?)V(?>2Lpv*CBo{O&lQOeSA5sly$l=QwcpC!X8a7*zd=nRY|w;q>tC+%No^B!LMMfy;ef z>=?;|N!aGRKy{BJe{7I5#1F@e7rx4)WvoHm9%rfmeoo6O$4hX{D@9^f!?+`}Si&TU z(+UY8>%p+~S)A^_dFIL+sbd7mhsPy(@0r$`7e)>y$piC#-J6bWOs5B-4CWbU^7-U1 zO{n+zf2jv;<}{4wIdgJ(vzsluBc*g#bc?A2Fv9k2a#>8f>t6}UXeQCJ)4Hno)Ox0k zI0envQpt8h-{TkrJP3^qUfg&&h9hgpy?M)vHVVS4kRg>d&7{Q{NMPWUz_?^?8YEtC zO2gK-e#nu0|DJ#bkI$R!wZ0ao_|4;upwMgGnZgTCPqEZ>QEpTMO(DRnohc?`P;J*x zx{Hd0XD){1LDF2oYhW<-$nc94nfavz&)z_S^L)tEII>Zd&yr8t3QGyblP1xAHX(Eg zZ}OA_L1RdiE@R=9E)F0%65lBAQN5@>l|jpT)s^2_mb78+q4jpg=OfiI4UmmJ3`-^Y zmjcFe{Zj*h_f6l29<0d24w4)+9Xk>LiHUj!GzgE_MVH;8eyY={xm?D)?auo)Y@M-B zZKtquuxgmRYFdEI5*>h}&C54(h-F{2V7VamkDx&}f%R6?aQn!Bmp4CEF=bl1%yE}S zJ#q zvNE#VcAS7*FDxTu>m>WkCZXlS3xZ8Tl z?Yy*PfMg5uPqU|XFLQHhhxC$?bHV@DzT$d13Hn zT`|HQ`IDF(Fh`K?KnOGvLR)z5_bjybobr3d$PZnXr~|@T>6;L;V)U=m8$Meuuv`

$uk==Q!=lwFVBYi^28ie;st*2 z#3b@1{PL%td+7uj43jKP|Dr*_BB zgK<*$$K<`?uVL`|(Ec-od(6IbmhMkg44P^5y5KHMMA+~_eo~7xG*8JjVnszI3A;wD zLp)k&xJlHs>HAN2{l?g*6+IrW|7It#d*!>8);E-YF-ekMk6Ze|y=$xsF8B)Xl)QvD z@O4L)#f5nTCUKEDqKx)3+h0qV@cbQlP1diuhS>qub&k=h1cNt1ZhBh6bvCkDKr3gAV-YzBmhGe znyI14ktmw|H{wlXS!CqFYr8L&mQ&%fzo6RKd{{o0xwY?CR-YcYuI`P`4rlqp`~AA!FTRU+Zvxy6+od!AT0#Q8lP2D(vglAvHFKU8@&u- zL$h*3qjXJjlRhmv0XWb}SvnQqf4P~Ws3+y-I#(IcN5z!~t|22gD)0)n> zyvutnJmGz;k&IqSB~zEzNCjnezA;fU8%Mi}uX&-^h2Wy0qcIC$qrpg>^6KbLeM*IC z9`(z2-MnGzg=a)mHM~>3H#2#Ol^I_X{0vBS1o$ZO(%XxHVEBuPWe#WYg`G{3)MKVL z*wklVrCBH*fSaTIZ1C#kw2iHxa+V~!ddvLE)^<*8a`1fY>KpL-TvCv1xtd)jI&7^%< zsiRZb11rW}rEn>>ppL{-Z}KH&s75LdXmu_X2fC-zLv>7bm{CNwNfl-_q7zItyt&n08Ix;}-fpatfW6bXA z>JiCO!&0RZpo$+HyZHu-iFjThyUBK=;PZtJ;Z&TWObdofZa-axVYWG9kqAz{10y z#ym?wxm9^xhx(N7F-711VuPiOK;;$yn zvKn~f;8s!%H$xKH4#gx8FxHs}aD&L&t|l#C19R-BW2!Pu?#rQp)3#Mj`mx0IxVNuJ zGB_Oy!9uEEK@IvHvCLvzY~TY7p3ow3Pd8-6(wfr=l;;dxPD_maI?&KKd{y;AaXYWq z_L=Z$V``nPm15vD_j-OR68pP#mUDFz0pe{5QG_`(HxAxBIbadwv~uLuQFKnM1Is>s z*7)9vRM1*k5NEjBy8L=!z@3(g9w(oHMB~yu1bia0*PBJnR!D{LQx7Qie$A}6sp_B_ zgfJ%KiL$mNbZA6)k5&gmq%Gn=0Q--m>p#Z8(|=t--!8AO7~<(Sfg9rSw7XzM;sejH zn7<*Hhi!$>-0wf6IyIC({ID7%r98kktHGv1Y5fP=ZhuO0I;$G(0;y?(_>d|kok-Oj zQ_lQ=E&zZkr`6hiG#PYr^JjI4=bCQhrd;>l-00o8(tc*g)(rMW3F;E+JAUjZ`Y8LsP?M=6K(;vlC>~&2rL*<|KQd`aX7hf8Y170>gF&7jK%I|@6I)b^ps|#)z zSLUTkh1u}1g@!_@j$Jhi&0st_k006-F-|v&DvAvU_%m2UP zhV}pB;J@zZ3w8`>%~^!pY}EwPWXUdX7F=heD3pWjPI>+f&;42ng=b@{-OhQW_29}1sPG)IC<%-6hRZZ6=As0S#=p{ z3-A;oB_uf~&3F}Zn%?Z#O#{x-av3qfxEqZ@aZE;}_^Q}2^& z1ExcH0kmk`Lz*gqybIuihTWt(}7cX#9 zlOH8MqXNC0VVKmD;RhTeX#AAnw%Y z|K7k`3u9WaeaP_l{5^kuzI?f(+n;~A+xIQ}cc}jqmfb<63bN2mh4=V8xx?S>>Fep} zb6Px6u!%w)D-h$!tdWWcT98H``=Lx#E0G+ZcC`W;odjB5+w` zcH+csU?OFPs8w@ffG9XH-X02&jl7mwBSEDgB@Xx2L(~liO?on=bZ?)^ z7&f&|LNchPyd+cD0Z}ioRBJ{ytsXtdesJTgF4>63qz0(nV2J}%Wjw|n`#=@xTVs4K z5%nw}`>Ti`xG!zuW_E-Vjxzj43h=DJRl(}r#>>s4)1_}c5*_p7@M9)7+&*xlw z&4Q@JVTQ00N0c`QvjjR)#yFY;4;W&k9E631g&ae5WOMq{8_a2E%hyix2xOFp#9z0U zllV7${onbOgR>g@N+XpTy#&M~Kl12e6+V5R78;HsR`%tbA|})=Hue2)m@A~?fK^_7+XA1P zE1*k^LA%quZ70Wlg@H1Ns!L+!oJ3*5Tfh{^bYBMcG!f}m2ow$EB&+-kTsvYl{He}a z=kV;L(8?rhtg{02&BH;pA4fVJ;tkso6CEA&WoD-UPRe=H8+EU%8I(}T@3i!nz#5HJ zcXkgrt^l-d&R^G2?D86IzXR*3kZ!El(tdp9$oaDZg;xKNvQqS;%(AS{64Dso)NSeVDO~kfSO&Ll>ZzQnRuRPY;vBH^ayU;NNC&qv z02;6p77r-#Ig!p)n~`H^vuOI~mFx6w({FsNmEi(+0Bk_aRtEK~haBFmZJ8frXdX25 zG#juVkbYCUX+=#050;`kIEsO$uW4hwqpUxLwbk6-aktWQP6dbYbGLO;a15|0GPfa? z6v^JVToI+4uBk@Q+&YF`mx)R{O<%foE$~?20Lc1*mL)ha7+`bNT}2gSqBZ$BMK%Hf ziQ~!>9m11jq~6C0xC>1n%j0149y0{b3fC!a!t_f6#jsA>4@GSA_owAk$+9dIB$<4v zB95POP9VB>Z`jWxKajB7`%_qBayn_n@;VgUT|H1702>uWUXez)`KCo2Hbi|zV)x@= z!1ydq^I!wQx{Ix1sVO%`6?KND!_#x)vp_g&uiLg{%yLZZd=0omKtrKQ&nnijL6OfE zQtLLPm#+tuNhu0g_y5QsZ<2+)vbf3OUWz;wYPh;EJ}KG7C3#l=`2zdRq@`j#Fq2SK z>PT|pP4L!-$?(W{@#B3rY=`dj;|!`CaKVSfAEj;`movun0R=5eCgN7BAa%!CNDjtY zbq_Yucd1B=gy%v0VdWSI5RvjRMpG&RfBjmbt>C@pO1@}wan&8ze~#uC80EimOf_$h zGd<6~8Z78XgTJ|2)ij9FIBBn!a!GMlP2fP~CXAa0~AaO*j` z{@qCW4W0a5Bcl)Lv`{DgxI0%YB|H}B-pL* zFGGW?hZ90W5swVF?LOH&X$Bl{O?O4hL>6+TX=$l@@ zTq}-WBV#UAynxO2A0lJS8~&n>;DmL81N-p%6S)Jm>M14WM5KGxj=}zAZy0Z!QNGbj!G{@2W_ez?7WEKJd`z z|C=3NO2u+k#{>pkA-r=smKGmXUk=)m5O9AHF*~-4=B9`qw*W^^lw;AJ0lFLg6WeEnR=~q?0gGT^D+kt z$C8D^Z&{XiehjK@8;tT8{gBDvux;YU-RdV6v3!1cPgFWcZ?Pvt7+Ls&7DY&Eei$k8 zro<`Z9Ts@*=b)Z|?vi{M(79_xYco?x#7f?0bg%vHX7323if!x?flv~1Wns+2 znFl=+s9(a%RBIEV3-VzXfsN0Zm8x+fu8i+And{ zDZYyM%CD+=svowa2enhB-<7&dVfJ^WXMy3)I(d4`~EMo&M8W;V9BCo z+eVjd+tp>;wr$(CZQHhO+jdRA`I|TQKi6IP6&aZ)_O^u5>F&>`IO0Wbj!n}m)vI&3 zx$`E<{76Mx8Q3H!A}e&Q5V0MRTJK0ZUs z!f&{dJAyhpN+e@1&nbxZ|Cy`cs-(j7}`omGnDN{Rc(Z9z55Ec0B9+3?Nd$hca`W<;F zHJB<5y)b`A5!lRvFRu?TF3h-Gr#X`WzSB}b?lx@`3zI^;QL+pvVQEQeT^1qb$Okei7F(KVUmDWv$pv`i)SLr1Erm^Gg^L3#^@7s+;tL~?DDu0a zX|IMxUhcyR`GQxlflKarR+M9S0Eqql+hD=CyZ_-Ov?AYN$sv?qp1NmA?C#2ul;j-h z_et}GCmOJZe6rzr+ZD<IHp>%5JB`XoZ~(*Vj|0 z_ZO>ZPV>oWRw|i8ZvZ>_s8Rl;G~G@ygq7Ray1~+<4SSFStQ4Pi-=6ytCo?o9^*|BK zeFW<#Qiz--jIFg5vXH0AXqR=zd=qbdG>c0Qg)h{pdp6wkg0E#dki2iZL3?pa(dpR2 z-~}NIlvw+s%+OT6PPOXT6XG>7THmya49AMAJfl0Vju)0`X;)9I8oYO*Uq$_sZy|4J zCBNUVsh<&st`d-rzS`1~&pxVF6K*{ENTe%X71$H7{E^hz=6mB^gw7}2s`B*EhEBj#5OCe3fS%Dj3J<8 zRdP+!T<2l0q}*UNIgS)uuU;FE!ZRV$M5r60XxlUihYN*VEZm7S99WB;-0z=mJ-C%8 zCwf2tX`F`?Q>DY<&4?Dbu9_}Ry0{e%^Apc00B3ta7Dy~cFZYaD9jAq5S9#k zus)VKT?2|$;Gw4uVa{;_DLj)PdBOyCpfGZQ+EV+cJjsOsaAqeClKqfsX6?rJ8pIoi zrRcF^6fpcvFtvk8X3BN4KPY?H0KTraq(P!*}yUfhcbPvuqz4> z%MV>@4Q4rKn^-LZIs}*!eYF6~$vUakr!q6Xqa2$Q&T*BhwN?S&NEcM?TlW`rvzN5B zDFyD!<6kko4Kpvx(6NW9DTk>>BJ<3R&9j+sUNFBRlT0uvQli=J0mVdrCw;(Kl205LSjI@RVy2}|=%tAXXI&uj2m=Bj1_+$PClsQg zGUh+Rqej0lP(v=#EX|FjW+z7bj2Z!DV<-7MBjJ)L1)}&e^gZj1F9Az)50EG5c7Jh zi?T2yb$IN=${n0J85kNjYn>1CuIo=j?)Tn!o*p%Iav*Bzwh=Dn)5Ek!pQXD#zOcQY zUgN_40d57Tefyo#So`zy?_>zx(jPOMx|W_ferH7H#D{W-^Kv`R#B!8HZmSC>k9H^> zn?9*{>rc@+#|gsi{rW~^4v5wkD`?jXhpd#u}*giKN=5@NNzsn%lv-!%14hE7oM znwFB+-5rH&3ktfPAyVK8n+Dyfk`y&tYc~gZM?b^l>3!{AeD$%><5`v5f{-7>KO4lW z4NNM9%nBJ_K9f|Q;y0}pHv-Bb!#)h;FmhxMsYJTYvB<2cD#<)*nH5Y`peZ-}P5zmP znKPpFmB_&};nYOuD6e0+Og>*V0C?G8r_lNg(BCj^=#(>#t|FO$skP+pKM{ojVsK+o z7LTQJ;9q4CE4PSGx#q+w6fe*e!pgFhti9q^qN8$Q#E1H7M}np4hWmzsZ4IJiu)|)Q z;jVZL9vOg{uU88(>);kd#!Q@v;`IlwSASQ0e|(zl*5{2^q%3125FHYVn6o!;hg)dV zEsgwzBnQ8Z?*>S zI>oai0!dVC-HX8#ZjcjMHA8`qUJh%+)BwvzbCIxpO2TxA(^6XCBjluMuY0V!OHUzB zTQEI*hWq+DIYRQ%fY(7{Kz*7}V3gKOK-8**RRXEjR=j(hOxVO7kE|#-l~8H`o)jv- zW}93ZBVi@&}VB3 z^mw#K)_^F5x4FVoN)gBn6PT0;KBgUn26;=4j6oLS>CS8gDF8??7Wgu(v6$gIuOH3{ zLvyMPcq(3vJskJaohQ|FjVxV5VOHN(G106nnsTdcIhY$uO~T|PJs}sn2XSu}8^Vd8 z!|UK$(c#sJet`FeJ$t{&PWqU6!%%eIG^W(Eg-^%k=|EeruPSG0LEnN)ibv49`C~je17sPxvGtJm>4BV}s9t z$Q3L+0;$e(k<^r!FrrkQM`4EBJ7%E--Q>IM%6E_a*BYxPoJgA^BDs)+a%;uwbOH-W z=c!oJn8tAdYd@o%mu8^uY9R`6e5pzsmFU}=rD&fwiPS%3wNHJ)g5{QeBr3LwAJX6R zNXapRMQ6RXfrZ^BD(XVs5Wbm}GTHgtzgxE4pp$S4eR}$)`d&ch__CM0qio4b7FWU) zvw)s0jj0Iu8YK6u%2qR#&af4q7f$+;k_3C!@{R>JBcbsKiPPl_7Mpq<$9^eHkWd9q z;WjSE4gigT{N3BfX5=_mAvZqPuhP|Yo`iaDZacK3LhN?#FG_i~Z#F>H04-Q}2F7xy z`2r;{U1<}0%R=;m-9^qrjiPZ=4Dd&9dfuU=xPyJ4jB<1*i$H9zJ{*GkMuL zZmHzJt~7$)g119&N>ndT{SR%`E-x4xz;8s@O^YE(kWNZ*T9_58OY5onsb+dAjpf#5 zkStmcY2RNanoyH*I96MM%g6Ai)z8wKLF_(-% z^wBbzrz(gC!U(s9G6TlNbUohS#)#XX`DH0gqgE9>+@4OU*@n3W4@bEx-!pJ4_zS6w z6V!x~)8vu7X3Z~MB|2fAGO@PAcET*Hz=WhB8$}5Yo6Q93pw7ngOYsey)79~D5O+wj z2({3Wgef!1^lxd%EZT!L&nOjYDB`R#DQ*y+VWyscPaRBtIo7iv?;g5nqxm?dXnAL? zSN9(I{^h7Xv0FjEoVg3fUG{_H87GnlxO6!khaIJa;iVBYOaylU z)N|Tg0mpYbG=87Anj_=zJ!c?y-aDgW4asca@8hQG1j(L~u;yHDe(jDrYS*u? znK-XFy`wJzW~THEw!fRhs}JXekn$J~Tc3E0MmJ2lZ|$Af1y$60o64H;3reJw z?aMSaYE1Cq4)jL1bbGCyk}~0m0!cB?HEx96@aXZm+C9GEUHj2h5S=T&GQ%BS97d-g z6Rw4(@m|<}J{oh*@fui-^rQbq8GvF$)q`0>f!u5pq*;%1*vr+hd`V(lWE^?y>QBUi zBJhhez}H*lR?>W*0}Gmqtzsl0FqG*A=*Isz_-#4EQeTn>xg-JR0h7IsuUOhj=i?OO zw6K>%%=5qwoY*Y9sb!~})Mw&5u|NM8PTrXbXKxz}06^*=L-4<2D#i{Dwhp?k4*GU> z#t#2!f{WF*Z8upFd|!11ir|wtrTJga`hgpmFGF0c=bJzMOc5f4$)t?NiOPvX_J6%y z#UcufO0Vhp#?aimZa=r@EgG$xjay5sO)R%<(zdOY9jB8tf8SO=CGGDYkB2XHcX}q) z+#4s?B$YR!x)Y+8f~}oLcF2LDZ(CHFrR7bp*xqHyG8Ig&3|p)3En9<6OTk`DWhPuy zQKOZOeSZIlt#^0%X!pIhBz&ZGG*+x}mH~O=qskKaNfQEjlVYmxWm6i)c!BqKzB44W1RK^vyEEp;rL4T9TsFEmI5D3?D1`dqYR5gpdmF|0ZoVWP=- zwj$ZXPbC_1U^Z6MTnx*KSQ`;nG{rhfB$3b;b^!*P3ZgjEfMAS-FXDHs*%Y5(9`>R) zSCB_E4f=B?+(0JUcXe|UN^NT#zD4?JtaWb2^z*o&@&M40*{HSpC}ty z1A-!jjOwd(qkbUwX==*00khXv40x4I5XD(s!^Og(fEr`HMK0CI4T$&2nPt4sx#o#8 zq250;>Sb2TD8aZerL}{A)gxfK7Tv&}dePYaduzF+CCYawCzKMaQ+i9VSJ9ZKvu<8^ z1E_Nqz2vZMF>b?!u#qnYhKr_S5-Tk!HBK?hdrCUa{7eztk21 zn4H8y26^Ozs1GU2`5w348Dkp222w4@A)xA;A_wQ0U%3R|2*?oB%b91wSbV`Fz$L9P zHvxcd^&Wc!o|Sz-NDwC{y3L(^0dMKmwHos_8 zjAVtUi%qpkoFHwCE*0SunFhjvWiZ|*lsMqd-xX*5e4_9%XZbtETG0#{=!dX<1kkHe z-pm|RDHc>>8+h9@9j(V|kfyhoKcIACEU{h>6`NMw8al&Gr|ovSm{2qw8?+_Uovv^D=8cS1^k72VHt}5Tfhp99;B$ zh%NXcJrt}8VS~G{xe?__>np=G@cFAZ^mE_3N7sZ$LA)S?fL5Y6L>Qv!WY3xS=%?(o zI^5uakDDqikZP2oRdtobjG(FXEvb`CX{0kM;3-n$b>zbHNphu);Z7zdU_(+cqB4DEC$QQ3lh@@; zBO) z;1rnEaSdI>vDreO=fgu2?Wx$YGE1~#W@S;+DPsoZS+fZi3@NxsE+@7jN$a7kWS9f2 z=58#d>;<>tp~&9EhiB=Np2x%V1~b$iK&ike`g|GU?U@_Up!Qycz-f#QI~Y+0OHXRd z@x3PMUM^Hp=B8erJodafM$u$UKIu%@NScNA2?M>0iKzL}_)!Ok>xt9&0oR`GK>g&1U;lf0^Od;UIEGPPK+<gAV!)C3FSNVaSQmtx*cV6W_-6q|}DT zX*VYGzgUB%bNIk@O6LY~8Dvs>bff7JT3&YA=|8$T4t&9Juhud1#wuh`pKRLSnCHPi!TKG3MZ1@g$fSsA!tld^vSCWx~ z2Kfs}){aDyv?9mF0zaSAaRtH(Ni>^)9@g^AXyfiC>^N|tM|Fz~#`Pa0qeq7ABMY&wmT$MEQK#$j!&kid=|}fRC%4GxeEY+k#jl7of6Da4#Jp}E zxOx8E&7vhS;Z4FT_&JG*?IO9f%D7J%d&ollB^d-VQ$|Qf_DFmT!fCxrLue<5*=aNs zT>MkZ8!unnS+9Vi&zOTFf_O$4F_r|A92Hmz1^@XAb`NIQdSIH7Vl#coo%tB7_!NT< zYUebuv-MXXJ7JRB@O0RiR=335XEK4`xa!$x<7|R%Fu>J{#c;rO0!?Rqlev^ules_zFsd(;OK0ql(&Gb-ta{x+6g1kT)|Myf z>*5vFZ0SgYy0) zddOe|fyQo6h~?+_aUP=kT&lj^bMw^qI>efnk#C@L#lC30|JfPMeNoil-e34K>ti* ztfY$w&tx;zZb}16j(^LXqyR~kg3LaAliI<>$w#>CscCgUZaTTwMXJF_e{R_4%AY&V z;$YLUV`>}JA2qiywK*MmayRk#_wG`t+UX9BI&E2JXW*4j#=jts!gDNV<3m{^gcXvc zwvP7KtK7HzT<7GzJN}Lf!MhZTf7?!+b55%NLQtt#>H}BGlb&fT39pi%YOI5{~b)p3L`{^{r`Hjsze zKP`vq;ax=xMf$+)JzU?LOdEQ*QKDPtRKtoIbNwaFAK|><Vith)_qE)_PSg}-96^feAc&FBH=ivEi2T!^z-WTNC7|sCT#qh`5ibdb zc$pPY_=l;bh>e>L6w?7h1w&e#7kmITk+LYVpjSj*-Zu*6rt&kxXZr9mDZY8k81Izg z9Xwng4&_L7Zk{-T(FI$itd_w&qyqb!Qyv1Jy()&>El1!^4K2!SnKe6q&YS{}bA&)5 zsqMjl?to+(Z4I1~1w{>oOW8Z3avhwn0ni0j;LIXLP7s>NJmYi~!N(-xPa%~`Reu_y z`%Ghy-8oE{-rg1?&gXukDSd?*jKxLbi`qqg)Fa3cVEFQCg_>|(jo=YYrGj$Q3yR3u zqW~AE4aIIT2i%MSQ+3wz7^1hR9~JF4ve%lL0`2U3XKfP9$pb z91Xaa(IM8Qd7kpw{d!ybY~r{P4)Z15GT!lHiMoMo9G$MlA2wtgsgUG2iC1}M(w@1U zvZY4DH4`42lNoU)ZD4cgf^-{!s1i;P18cUBTgg0a=ho&|!a>&8h#@?#I=}v`MrJ_e zZxunc3>b?h(utec;kXd;p#UR}DT_uHGrPdgJblUCLK8Fs2QVdM{vli(1=xVEder?4 zmTB?jl&!q29+1w)-7$@O`mTES!P@TN%atpc~9`%JrV16)J-h=r&Y_BE^z(~ci21zS@%b7R0 zpsX!YO2PtjlIl!NJ8iGI`2uPo{6QCSwf$_P0Grj#DCI&X*=R7Z5}8H{WhVRcr<`E} z5XQydSnp3i0T>BrOs@zAx;3zoDW4Z=HdLhu=9Cbpda56oq^GIz%@-*E%sA2(3bAGv z-mzCV9HHcyAE5oQdvo+#Op2PG9!?Nz+v*h2A-K&eq0E_Xw2n^-+8IL{3b01dn>a7r zuwNJ__ZdZ3A;rYw{W*<&2`0H@)&`McVcS;A?uOGU-U3-+CjtJf*j&Efq%uV3n)mT16)UQ|B{?^ZPFdKa1l+5xm zqq>m@yb3HLvCHIFod5ynLVyhlJexh@>ta5k97Z+qSZ60kcl3K42h4TP_lNprZozYY zqG4EJGMYBLO_LZ@b&4eFW`+Bm+*UlGj`Dn>M5U%T92awmlT3e$RO1O0iTB?bPwRw$ z6(y(Ssqz&drDE{!W)B(MAWM=9?ZA5Yr|+$G-OYlu1|OX2bOu4!@#nH zXBXZNmWap;sN(@?nS1}Z|eJFwq zhb{K8uHuCDOAOuXRdWSi3)BOp6-5wp!`j*#mSG}p$8h&0=qxZV)$K$!*}RGoCA8qG^p@9OMkQ^Ikld%k?h+PdJPk8O79(kb}{@87nO?f!-K z^-zQ`2DVxSn7*-ZtgO;o#Og`JWcGaFlY-^K608QJ5A0q-s0-v%fF>O-bhU!WzU5qU zUJ&wNSCK31d(np#WWjS-$*f0BzE2Q)|n@*h2nrmWN`haSkubg<&9{$aIxqAI@%IEnVxWj;1p zu-RKdvtSxkyGYU{4r$gWE&*dAMOcP(O@^_Waw2<(K{&1NUXQoHtH*uRoQ2zIL{m=j z@^y@p)2v|+j)z-L92kE?wq&#B8ETv{7;iOWbI307Je(zn(5$n5-8ZMJ3+_nMkj(uS6aRgGqysIJ>km%KKsg01nou;S;SLQ;11 z#_zz^mJr!p^g5exDHklx7BGFFTea6Z-e7pS+L@Ji4GoC_o-08)M7`_+hf7k zu{(f|@o3U>ae6epxf%zy`{J^GFfd% zsw6UGVSFKqWlOKTmX@#+8tE;)(++7;^Plo0pC?6DG zQ6kFmJDJLpB*s)qKX*&0fjVP!9~Vmpi!{J zr6l|Y73y2U;T0RQkfKqmmGObJ!*BMQnoA`c0czlsEAH*H>n8ju%yO5_lb_A$t@GSQ zWX$)$?#H%t5g_-tkOhg<^I6<4=cZl|)XF%7>QOpyQl5iL6dX~n$b}hinC>!niI6RV zPwMMXX4!H2#WuLkQ`zd7I4s$ml)r9OIeg6}4^OPt^XvMT+Sbjw<%=4dVNb5yR+rt!77Co_hlv_Jf8oq`b+$-rm|<_+=K4(YAp{1 z)QMTpj-iwQ{nUG)dnBwG&h9XSCnvkvaFs9g7Y@1iVaKeb@2y84+V}tt%Al9 zZM!wyf6bvEDv9j_zLb9WzV0(}R4bBr+Uj3mktEOhZct*{63n5y`ZK1ECA)7N#nzr_ z9LIfbV?|^6&HqC&{$HXJE^aCw9yI{K`tbj6$xO_Rt&INDk{x?rJ79|??D_JF#6AH7 zfQzc-Y;J0f^f6$izt~wRa!O`IbAc7kgG3m`0x*|!3WS@G8|WJ9+U6cT6!JFkcFZTS zFy!zA34(M~HvH#ftYmDQn6CMEucLl_6D#qfQ(1V~@o(JZS%YS?VS_c@=ec0RR#Vwj z1Xy=k^V=??ddaz7x3$t?{UEmY+K|8Tz{1=g_0rkCS!MA`R>U!K*Q+hsoqKu)z^A~^ zeQLVtwbQ}VFfTTi@vZBfuU6&}-Ivq*{(Jr1Rngsj^l zZnMHicd0UWsrg4+m9O&JvRK!*w8c+O(>x7~=YF#1GvCUo7(WvC-=LAsO`YLzhHp2e zMp@G_el24DwL-dX$4BP(Ow-+o4_VK5@tkz`HqhAl{E>J9g(|*Av-Qy)@2*W{i`lY8 zhPNgVT*udqkFwRK14pN)i9|(5%>@{EVDGW~__~8Ov$T(D)g-FR2I~X*qfv%+gezsQ zKti&lszb)LMKdys;o6efPY>7t1^7Ek?hhB=RTo0M?uA-Kd4JX}DJc8&@+mtk7U4k0a3!W89+&ypn!cVjBBrixwNNwa#{L*9R4Z z|7x}94;iS|Vj0a{Ehv0diz@vkYXA@xM-~SRmt56aP2Bd2L=rHyeoJwLV|w#O%AAG{ zP%N{xerd7i&Q+}$+})$7tPa6Fmv+-S3VjS!u?x9ZB2R27JPaS}>cqRC5n8XlnySH% z6w|l%u`ehdH|GbW9ff5xr+|FgbmQW4#}K6^1`hNs+~D3p2y?#0a1Lda*f_LNx~? za?;xaS;<4zY6Em5m=1sPWVtpH9rZDE_JeE1 z(`bdp=V91!?cVtk{-WgM*KUeMH|M5~s-fZ6lBgDSyVg#uLeGrt>nZJKR_l&0%yCElY-I?1N>VgYxdADsg%N_pW3{*h7Ex?*%NfFb|bJz~jZnEjV=}#~kA> z8lFey0kHUKW`p%t5A`H0wO$1>0_*gI3kcR` zM|p!caF(u3<97@iXx3^w8jUK{-HO%UJV(F`wI{;AamWf$3r68P_Nj%VeH`V`@@~^>C(#p#VEM+FfHWd*m z|0Ew&iHgc*4`8TGLo%qnkdr%3s4(?y=lpuOf?BTpQDZwIjtrH7SUXS&C-@AfL@)O% z=|+<(q(QKe#pKhZ3VOm>2eoSBDbd1^*e;eD=mX;xHp`OAi3#Lo=XBB9Wer=hdloC> zv_^}l!$6xn6{5_fq07~S#B9I-O*o*>PZe1>((SyVf#yoRzw0dI4#z924e625kC^lL|MX_T0Q9w7bd@oTe(xn*Z5*opl5n)v<2V;;nz&bI|^~N3Cze1ETn8)5b zuh<@AY69vk>M5g#iwg-g-htf3MCkS6=u=}tLaHsIpHZVJH{SFbQNS1Fji72* zU#0%Yh1pIXTf1m(Q78b^ByAueMq)V`ZQW#%XtD_hg6bERcr5wZ6!3+}k?nw(UwZxm z`lNhzsB~F3juz9FP&G5%QwDJ6x#+16Za!G-QZo7(uE}b97apT4HQ-B#jHtWvA?tFj(mu`GzL9|21X7*?pSQLgU*pJ3${U25HxD(H|&n)bWN za2_GF4y*|bL3>5nc!5-B_4blt+GPR zyufBz5zScb6qv^Pt}RtBWrwpsQv-<=!D_ZT?ILY=9=#&wG(VTsEp*W27`!@T)rz>L zwC06)-nxZ~A|<~J;<)ECs{_STGHR;#^3K&(Cip8I2*KCHV~34gU;3AxHT!R-=+lcE zB{U{GnGG4`R>tV_qPmrlZP-Fvnj7d?(HRxNRA`SuMy@d8&NP;Yr+uDI)WCKdBD6k! z(Mj?wWWq@iK$xesPdN7bhle(*^_|XhuP%OBFRz@g8r(N14^@7v%yUHU_6G~|>r zkR{+oH2`C@NKEKkWI2(@Xk<^=DaUH{em(+B`aF5%^5fr+*x#m#^Q5Px%LW^bNDh@j zZ(*8>d;z8Mp_W4w-NAriG0C;qb*qp!!FdPh4D3o5QGHVCH#JKCI^=#y8vA^U`2eJD zox+CzS^cw}T}lP$Vo_=6NQJVkJNjf;wsHo(&J$3hd`p_JyvV$LQ1i&SVTuYBrv^dt z!;PY6vFLiVpS8yA9}8_-CXEUK@W$-q;b#Q^Nh}KeI;{S>d^W%B;$e#^1z!CjsQa@G zmwkGya3bi6N&cN>pTLCevJu+|S12W#E6Cg=6HrZou^bSCe8|>0g8SBe2SaQ?_`C_Y zTGop0YOjIy+fK*{IbA+VJscS2rM=lNYDtseG>wMOWDFz4VLM{aAhxyki}BO$%7|x3D}_t zMO|LN?g2pn1{MGs?YHA+fhi#Ga%472bVC=NETZ8&-W&>TRmOJyt%JLQ^s*p1Zp$IH~y9D=wDtu^Rw zG}i<*WSQ8Ko2C)m6wvPCsA~)N>gEA;mlcyriF$pbB7^wvDvKgG%$owYmP$KU$W?Z= zl$ExOOg1$k7AD{CJC<45OC@MZcuG)F^ZpwQD~P%qll~cnb39l9)v{i~lFJ5j_=Ozf z7$L>O;*|(AU(~$iRoYP*L_Bf< zPmou`B@C(Bg2A;4VKn0T@RxwY+Sd)sz&pw>L&XOxK-*9S#pH)l!AXfWQN*zqU|^s8 z!F4u93Q+W?q-Y`+n+HBgTGq;M4~Sx6>M)n916EHRbJbj?f$2PhyQn(`gVjmiu6t!9z|e%TQU>;W&0(E_R=I8$ z8Mj!u5Zx?NtCnclfJF`Fw2|W22|aoA;OD5*jViu*`RE^W{ZUsTq8BxL>sxbt+-s#0 zf7#UfNA3@;YU22&6VO1mqV4Gf+PFx&?7a!rc|ZB6^%Qs+$@+1Hx7~P;{whCVE12lW zp7a6AKoZNxni+Oo*UrzM?$!m0SoS%&sU!|sB02ey1sty0cl?~T73^i+-I8p#nLdWc zXO~=V|GWrftG!;0gA(QmDihz^E>AR;5 z{;Nd($uKCAO|W%%#?=$9>y1YP-FYw{t*5c(G~YaOF}zU|WlNQK1(LE{5LSSei*P&3 z`!M?eVUGw-JZmx-mZ1%WhkT67#T_UMTqe!=Bl4}JHK569kM{{xvZFUTDxi$})iCg=Hvt}r#(%w^M zi{IG*`M3K72d|wz$V$o^ul~=CIFHv;C1@4%Q12Un7-+G#oHxu# zHs?APZ|po>uU{6coZt@(A%~8mjFh8!KY)K0WFgnWsZ-bjt;u~JORofeQw&9-%`3T) zCK2s7?JO>7TSFuTz40+WWHyI-Y!6o z0a62*{E|C0ea_oX#)#w82i`ic*H@Yx4_$==wa7TJlWf9_m`q2B1cuVjTwap)gM7Z` zviGY{Yuh7JYl5kaOd}BxKJvxwc4VDq_?kGvjaM1ClShR~a2&@Gxw?^aaA!M82U{cJ zE>L|rBt}6YVuEc31{2%6J@|yc4$7-pz`+mR4McEVvuhAoBpBtpzDgUghfB6~Gdd{q z3R-cdMevgbHN6`9AVY)cj}s8&VaJ@etbaz69v$3Gr?B(|r^ z{)^i18fp`UN$c3hG~O$2W)u!>T_g0Sa|*kav7bC!@+QhJW4l(6w3$uanEp`8x|uWh zL_vT)=A}2I#Z;a$3c)p{xUT`5Q^whhy54?Ad)kD(kgFOOM3y-J9QUxFji?)giK8M# z8jDRDsTd?iewM+h5$*!7i<+z*>n7rzHzY3ek`isiN65C;P5s>4!|mb?)3uHwf%@t4exL$if> z)g`&*P?xCwZ#)xyzknORvi0+1%x1p@7tuefJTbUx!9EFg7_v-KFvElM9~lqn2CQiI zHlz#PgO_X!U>Q9t(L%A|i8c=Oa54U(D;$4Bdg^wlu+wsfUd&s%lqX$r2HWY4(fu|X z_yNHbtoNB|8tZ%XWXr(@(Z)cbMU=0K7MSE{;pidc?@EKwkZlaIyeM^XbFdr`a8R$e z%&5{PMi^}0h{Mb8C)bj@n!ja6ac|hi=a#s6d6&W<$qBwmI2aUYSE|m3jFBDKHX=$0 zp;`+|6F7eOS^r6c1Sk;r3`PquJFW?xh)Z!mB9=_oAUT@A2MARLJP-s_^esTVbIKHn z<^~K9PwbPp-WldgU9|jV8s&PA=7NGI&=^PavQas5tJx(Y|6G2sx{|d}h(49_YkWBi zzQDrTnil598U985D_N4d!ihvSC%8Ko1*?Sb`9>JV(SMJ(m@=l-blH8}D9n%?U^tA@ zJ2MFGW6vXd%Dq>v`V!Wti6oU+l$%NSV`<(o{XW|y6cA3Tji^7wg5z*%FxXM5wc4Ut zcZ+n@2D8F)jkZIa_R~E=aYDt&aH+3|VpZhYgv?^J<{_($-p4Bt{3*%7rhVCVL_*;E zZ%%QaR!$B?9}L>D0jxZ#!+)^Y_|%~5;A2~Q4;h^#nKTKqDI;iz0hKE`65&0^ttzHK zaXpT2igtoBx&?A6VvZFRyl@+Nc3Iwu68j?T_G7T7h8#LIy9QJo1`DtCFu+q_{7RfT zot|+Cwl4G4gs+syOll*lwyg}Nc)M^XIzu-yq-QHTJ!1M=s##M1BUiP0A!f5Gl)ybU z*1vCbRJ~oHj=t6HhKF^7$<`S?k8F#rc-zsHB)GFYV|$AH$gcsv`E7Q?!n$1^);i3u zNKkp%8N`%^X{bj<$+olV0_&r>M;3byXJf6cnodG_#bJP=UnB;qk^A(SXcVu_DwzGg zQ^LEDpP|y&g6`3s@;vfK7>6{BR~?DfCCcEhm~fLO@ua7SJY*$QPFF6Noc|8X?V+9# z*gt4Ci+gc>1nc0erSm_aN^$l&?OOQDD4hU)rGAohD$+qJv{RO_*}u5uNDSolRK?QE zwN0-mB|8hhO~}7z?!GIJ>(R5dCH}IEMd*#?KkdSZOhXMuP6Lgg1KRA?F?NznHnY5z z8bj_w&2HdVd@+5N)YM?fDDK zqJ4IlpQBx>7E9Zvufk1bKZlF^O*pO)!iDqO;b)~k+XC2cnAAQ-y<3V(<01ph{g(pG zUfFeGUo_z!Dqw66?9#)$Vk~?Qz^)Gy=ZS4}W!zp~Qv3T;25=V_v#l@%_DXW;EWX@B zAFMUMtJ%kOzBW^58yM0s&dO?q00nRzz8;oLs)nC2*rV>+gIV&6idqST#?evB034DG zzFyb}yv#*e8+z?m#_O?x=$_3a-Xq0upF*llLjMuCv7tnW)jfgj&V_)Y-o@A`T=I<+ zITMY$5Ra>aRG0CH&G07EX*bp=bzlXDbPbGY1AzB9#yUDbjOSD+IRwctS)#4}s0tMI z#D_IDPDJoL;=(`kcmv}<*b94*gHcbTbEycJ|I zAH5gt&HScv_m!oAiTJzFm_@<=LH*%kNWjqH`56B!fD?GtwQaa2zfO9@qqexa+x#~G z-VPS^QP`NwSI*&F?2gX$kYIB25ZnK3I5ky_p(eY-AOgy(uW0{rv82X5Z*l^d97<2} zNC?kyy$5n_IbU}LzcMqp1~sElV^t)ef7A5ieLC(hOLRdnno97b?Pn9uU5% zVlfdGyiwkq+rDbjU~@v`n*t2%%+G5@Tpn8uB>mWw)Q~%Odd>X(YI3(g1>Cv~abTxj zA`?&G4={keEK>Tpkbqub5aI`N&YSGil&T)91Fg#pxh%)ty3KQb9Ec%E9k#3Sw!swn zxW0yb{}9MFDzw~$Yl}Fn%>L1(8ty&3DLew`*e%Uv)_KYy9-Sd5X7lC>LH+WeS5gK0 ztGDT$kp2&~Wy?56(i9c(V}@mD+Z13!q{giWX&;Y?_9OXbXAh47Oh;$3C;%?tgf$RE zqI<~3p$iLKaE=YwY*+gpNFx%-OlNL~W7?z-$Bdnzz$m@c2o&>v-QgtA5&W!`*Hh3G zM!+3NgteIUKjk`i;lYp)h6k=iGg_d4C<2i}CEdk$N(=229$e*pr-o+Q8Rb0iLEYYs z`a@PFb^~9afo~d)?!BID{}U>!!ViKL61@!>zF3y*?AtZKcHpx@?Cm~kA=z)zy29(% zg`3G~4cWQzBw}FNdIrh|Dey~ZMwXc&RQCMX4ird*`k-@&eWkBHg8URbIUQ%pZrm-! zDi+Ct2#uXK0cL&hC6@-zB4T8z#w%JGDSS!n;kcYbZe!0YsTjF z=2!2*__N{Cn9SAA{*etm5MJw^R1=R>#hiT%0#U@ADc00n#(g={^dO5_=z(Cn>8+Gv zRS46>Q!-j60<3JKq*I@E?%0O11F=t^aK#_y?SV$6?)I!5a<4W#eF*OP>!EgtsP9bk zx3QtP<(|j!OCq)$DPB<;86=nSLR8;ee|os(I|zCO4-ic%mhyp`+(l!w97H z@=fLOA7q#H&>K8!_P7{dR2R%;GohSihf(k@GNv-$sLnUYVoIaxk?B4WkTZ5AmafKK z&LJjU9g5F9o#08Db?X$BM#{EZJmH*7VDIit&3@-CUt7{~dN;&10a*$+2q<)E2UygO z$~*TufXuzejoZlq{bkcO#MW?mzk(VcR*m4`T=RRQvvj=DaXtlG07Cq|Ekik;@+0t@S;yw*{8##O~_W(j(K2A!pTfA*oQ z7wpJ>J)US>0S$}oGJnQ_1Ha#b6!H_;etbf2rY%?=T`w@Hnxu>pe3|pCN%ea+G->+H^M;)Mzu3Mpfj?f_4*hfO>h?|fCe`I}{M?5)~ zdIVqeB0F1cQ4{^7fn2LO%tkC*NbLriVe_?Z?D-4J=BLtA5b3muD|ICqIxUf~!+@x- z@jg+JKotF5^_IR;n=8!pQ-LBWUS*znBRnu{Ff84Am*3!tr^FyMx^O#^HgbUY!!bZ| zSiWXP-$;I_S@;A>#GYzitX*c{E=kcz{sn`!_Xld>n37ofKV+TLVrJozhGW~d zZQDl2NyoPH$2L2*ZQFLowrzWQ&)Mu*7g4LedhyUvU_%O7ry*X5LJ5e$-78#Uk-cEm zylfnO+J*X+jDxhbJA|2IoUOD_J`g>Ge>&uV0uAcVhm>7p+~k#grq|4N(E_+byU~t3 z6*VCg_pKtJLJMmpO=md7HxVH=9{MtvftF0dr}cDL9j7De)2N1-Adh}-o<7q2=tCF0%)I*ZW~>_!KD z%ye%L8=0|4v%Olr9=sO4|5N z5DZ~K_Qi;fmAIG6QBc2l;_avi-sv8Z1eRnx@_ufB6^Fv1BFY9Xp&Xzj+&Z^du95EX z(V|@A6$}DT=%k1CQ9yc7J)wEJF%|!*#^K{|y&^F$9OZY&3mAjrl6Pk(vTVJuitu1R z%K-clo@`DX8{1a6Ibkw7(y$JAxAMpblAUBV9N5Q_W_A0swPCt{)&g`>WEw@d4LE~0 zYCnbx_w54}?$oGW>*?e5cX>o8+o4~NW08Oz@&sXk7_phi+*od9C!{*gVxc&E8+8#{ zwn3BPGN)1!3d5s1$E3`ReA}LJKB{F>fuE{~cNvc7#DxDrYD9{XQ}Hhxl#MYB1Ha06 z9{FLwXGG~(i?HoT8vju!&zA3}my>^31Kw~)%#Q1jYEAhyqk`H%`Vg^LMkuOA=zbnL zkklGwk0wRref@+Nq>18eLs4Etx6V>YjYu4jf? zxARa)+t(8i2Ep$o*0;$tY*@FE1!}*&$); z>by4U9iq^#mk9M3=GJfJmN;r4=DUER6ndCAo{_4gU!*+GIP=~-`*BDw`0@Lh0I;TR zTF5w=2*wWCsIioN9=&6#vtZnBz&?0!;Bs5SozQq9x%ZxyF_6T;uP5Y>53jk1-DGp4 ziBz434;#QK|6WY7Y_x{q5r<%D!+_WFF5IIYRF^9mEBa+njjD;`ZiW9;zb`DmbggNx z*48k<=pX*`aYs%@9{xsY6Ssg$jgN!iftgY{he{)~~PAeA%XtC1EWv{0mQ$IE7urEPpGtZzxCZN!3 z;q3Qg`Z=e9+}b~}17R2MIKTTj=Q0+0X|}_(uk4p7Ze#uRNAEG_kaAzv za^PCrT@F#0t%8MznAD(f5z!&0W^ba_lW0)iXkYUV0>-~1ZJgoA6ZRq%vx#Vn_BLY} znF6#`wzv`+puXiGU>_nF?4+yR0ZGaH=0-ZE*;9F23mr6pWUVXd*OL_K{#v4D9I-FI zn}0LXT*3fclovno>n?=dsgy__$EwYWaq%hdOq2!N9nhjaOX}=E+E{tFJq9X}Fw?WnRa$D^vO$C-@3H+b-@pa5bgI3JrFY*=T~_We}7VUPvzu z#G_l7N@a!2Waca_&TzOs<8e3I1n&~P=eEZu-3)(h%X5hsY-5rYLbdlx=uVe`O(r8A zmq-dGTU)j8VTIpz-Lw|wT*)Y`2|*}odnKsw`$?S?=b+eucRHPU*10IO;d7!)(x^P* zZ{Dw=$u_=h`1O>)Cr8tz=eouK1k_=)k9Q_DXW^NCK)kd0jaI%)*85(3BK$kii$Iby zBqeNyQqLz^6RGQ19LdKU&3t|Ny=mCuuK(YJ>SmqRTc&jpJdUQc$5nf1{kH@x&7Y2K zN8=-O@3-vO5$(FnzoQzc*;OTez+RM=ZR8X8tEFKd3hx`uh*8J!QGQ*|!)N{elB9u9 z4|Z{9^)oVqRMcE$pu{^x#M7DWOAk3C8RIi_c-R+vbt4S?w}YLA&X1=joYc-_r2N%X z{B0%cH4ROE31a&Ws)_Ra%Q{*$&qV0=pCWYgNhu-1#Kz2cdWDkPm`w{44R1p?+}iN6 zOE_myOtFp!A7ss-_|{f(+DOB$ObCMS8diPa2*f`!DA0@^9Q|UVWlyi)0!P)6FRe@3 zz>-@@vR;ILdZyiy^CeAVd}GqC6Nd#)Qs*g&)&|Z>qnOeQc2>0}cY*KK9EUBd)Q4bJ z4+3kD^ji+`Wezpdi^@;;HS-n85ct<2b+@$Wj2L}=gK~NQ&P=?Z3`3;-Lw!q;49$d@ ztClno2I*r6hKgdvoX&nba3(|ry@`1NkZ;@$X<+6qgs*Npc6kCm1Jdyqumi!C8HS68 z^uqJnNFhC0-1Fw(&Nv!T+t!`;e8FxLv21H&QM1>Ux~GZZpnhu1nDZMup^3X^M^lu^ z^hI(`-6;~%TnN#pc7Tmu97PUUQP$;3*bIZJ;Xj|Cw^?*qZ|=NsddCP!@^_2WKm3X+ zSospJ9AZd1Dx1A3$*K2#2`d;3>$xYZJ|^}I2R zo5uB_mSIr_o$u){whT^}xWw`Nv%AsZsuuLdYeti19plHV^>6$Au*@0`?D~)mg-{*% zpTYdHfk0^CQoupsFGa=^}Xp0OShV#ssZ7Vj}R zG#aZjW;N~L-Yd^kUn2o_HoR%rg(b)iz%9XdZ7jr{_4TS;i2nO)aC?x(QeCRifz8fb zN88;yhk$6l1DhY;DE0K2@2-mWJg!UG_3=E*NSOyJA)H&9ZvdU!fct?yrAvE7_NIGu zAgDDiXv_T*%cmcL8(=AEyzPb1C<8G!ml&axpGAO7P2$J6B}^73v)RQb)|e-Rm~K!p zS;*2Jy?OWC3>_u>B(rY2xF&X42xe%~uYVa6E`kFjY;i6;qs2pp=rq*lMtD2~{gO6FrB8ukZcNyvD7%10}Ve&jjmtf(XlkWJ0t{3yy@e6T{N6;g2)A*kmJ* zr|(ia-sM)mT1SXCI2f7uJuPQuj`>;Na3bcotA- z40}E}Ds$F(Vb;3}?+eFYCjdHzTYy2o!Xg{AcwT{_yGJ5lu;w5{EjcLi>V0!mI6F&b z9{JuY4D*zkzQo}m1)2pKZ(;i zGtzyvpCuDK5PH@hL3x!S)P*4f%B)DI%~maRu(6cnLOHY5g!2Wam^&zH326l5jE4_<{JY`Jy7`>3i%Fb(AG-tBEuNLVD*9S#^ z+y$Z@L_?w9bN6%JfwQ1Xg`szxc^Kod+BB%Yt!SD~$ixkOHqPtw&*JCu(8?L>BX?Fq zq>y}D!!xNy7WBE1l-izp+EdmB@!1~ z$D6PvN4U@>Z2#0f7IzYV7B6Tf;morU$N&t*hUc+ww=jSU&jbytJ1-n@xdxw9i_;Ct zZ>QqRg#BRU+Nh7|xv}&bUmzi~*SoIVG_a_>sAE-9Z#igjfhnZBrSlatbH9$fn##*I zJ|`6>h(-+^yd@N6?FuRGs#8nS2agoWbfSuHw|%A=4gMMeh6BQJf(TQrEnWqYf1#N9xBMmj-P6#7jLBL`pd=LN}--H z+CBT zv^xno)Ccdxu0zy5P193r{ODSHo+qfpUkXJX|2aDa>IeUCbAXK~!^E2gW69J05M%;^%O)@8CEH&l6ixnc|ryZ0Q%guIq| zjLjko@S`JV$RF*l@5MAqRzHCDM8i1d*`8^Kkc=s$)}icXCunoZw8T<6UF5DY;GITe zcwYX!QMpcivRT_#LpF04{)s?w*uD^^cG2EvT%8#GaPF1QVihY?f8MzJ$dQ(Y!i zLoDH(O2}U~V8_z^<%p*V8W{7a%M$|e~bymzcPbCgLUGp6`kXsk5As&5+M?cldG8_R5 zhbulHqv@EUV7TZED7<(?KX46`E)MQ5oUv4?YYR~y_e6R;f_gZeF)5@RsOhR1Hj`!d zPGAWNV?3=-)s2%t2>Xt`0WeeN2Tohv7N$Hxfy{4mW#uy-bk4*L>bjn_74q;+ez6hAu!b|&L#p@{e-I>ii@C|(3j%3LH$*HE3%@Xh>FE3! z7G2dC2xW*wW|mriZhwTfd7Dd+yz#DzNb2Z!;XoDy3$nBvDmSA)uK?=p%S;IDEhcKA zfr5M^J=G|$mO>mlzKLJeeRF|tnZUn;nhXqqv`^VcC1J`)STp47mf<9Ai&ErO5DhIz z7#jSAwA`38imM!S$otU<`|UJNO=Lm}bnb4A-bbHaOTT0C2TL`=~EafUE+0gU1?;G2$VO zA<%}w4Aw1CZ{rIRW_1CdoVG?}J-$bCkN2*Qj(4o-;S`Vw`Cl|ka~5!pLOd${jOPCH za$^bb$z1*qqDMi9(a5LOpaLZt2xsowpqqCxHn3s)G(TY$_m|vhB|Ni1 z4V;kY+e;rcPiu`f=tbT;{ zB?K5cHA)T5Jiz9K3yeS$9Kmo&o$G#cNVP6V%;m|3|ILKQG8h3ft?-|U+5C&YO1+=9 zWL`%$a%^+!0|r%vIdmiX+mfuNHsE6H__t23gg(WNe>mxUQbVtRp%P|N6uK6+c4(c))ATQuc{HlzZLVs`8R+LuHZ2`1Sd^w|b(m!m zkwflUBT45cI2qcJvw-&Sewh@05w6P2Rnien;E_5n@SnV4=(TpR$F5zw#eD%Wb6{-K zLH8E5*I%30&UwS?*Y4tz9!aisZHKlowukL@75MS}o6Jk@f60T0fYbQk{bm57+m2GS zVX9(#RLz8;*2Q`DNM+>6Ak=Ga?)*;M6MJqFca9Hje&(-hpFVUl!89$0#t1%nkaBO7J&YJP&?p;z^0#puWbZ65o2Gt9pcn z#j{6qka;~)VGl6%8A{TB0$&aRcISk`9f&4^Wo_%rf~b#? zhv$nt@k^1c6NJ2yW?qoi#bra0@9PdYyQ9go?bC_HQ*^_UfcH4ansPr%3Y-HYOxz{* z5id#BA%J31U5(>2;v{^S41X%U;g#mHpW$zf5Q08M8LLFhUnE`L&G&qs&?lun$@~8C za(c*|QN}@W1{|V-#_&fPB*>|9=wGuL&FUjShs^+eYR$SmZH#pWghmr1G?}?9f^Qij z@hQq|gw^GDERJSbd%VV>8Ii+mzH93)L}V(jF|kCGBxOjr7!{am#>6D}_9_!oAm}0J8ECn+MTTHs3MsMQFS$368^{J|r}7 zia!}!;N=3K@IXoxN;DbDWon79hElCd1n|ot|6u3RN@D#1yVW2D6xnmxU`j^Ih^uV( z+h&8bRf=9s#R$9Z<1b|cGU-uZYY<{dK6!D*2@_l$gY(>0-lWc|w4H}_J9mPf#bT;; zeEtKWI%Vg@1NW$P-*BxYlb-UwPVQn!1Yg`Xjg9%+#u)U&`aqnz6CsZ#c0ye#h><$( zpD@6|c5dYAVOQ(GXheQ5mI0;EGZdh`0j-262}>7IW~aNTV6&;um59(7l$ebe);zP6 z44+i{uW13|4J7TCjP$Lge1-qSHMDV(NDl+KomfEHzE$G4LHJYkIi1B;O9Exb5}{Lc zz@LInwJ2SXahqp{o7_v7^~UVZx|yKF1RU=@d7(F;gf6Hh2NwKNLvznZNXixEfP%)(Nd#8FNg8#ag(Cpv zjY21kL&=jd3X%ZK^F*71U&vX*)AP9TyB^@?X7}IJP9y>GphzW{}?&zUPnW`$Sy2*u&300n+5z z@wn7zaCq^lpjay;bskV*UhQD#myWvD#Er>w;}92)5mbO}aO1%Na($E=XcT6IX-p3r zQSHVK%}Cbd&+N)=so*xygRE|E9n2gLE6;t{8|QA*vcc>hWaSe_YBg6W2t$;+S7zML zrn$kZ39T_*lt- z163pU^cj#UG;hz-4s;tLeQ|MIRdc8w#(poCKGgPK7mkW@5X2OLn=`Q?GfUp5jyKX&`?>^a z@HepYa7tk(E;K>xesEI0Otrwb);jOnQ+oa*Ycz|A6e@FMY9Ep>3x-7~J9r|0aFt%b z2WR7i{g426-$TrxT)tZC1cAkFOjpL|!0Q3|Ox|~aQ?=81mL9>CVOuzEQdNhOn2x2c zEdn_8k{#@jW9JLjRZ_-mbt0;bK!D4nb=ng02T|IL#Jfl+O@87FD?V3Q40AM#2P8{x z3uP_2t?a@`5LsLV8{TZ{arX(HpIAcYb0fU#@88|5c3?%dRT|^^eWBIjH*#xQIDfWK zvfLs0vde?Z4uKiz)u`Cm2Ek)-dm{k7XFrR0&!-#OwgWJ}g=2YQ6)|s{;*9cxMM+f5 zMlcu<;{VnefPkgDMV{>K7~kk{yjPjp#t~?bIK&mEY|U282;m$j4r*@x|&Rwg^++ zw?=~tax%Kei6d}tWtD^{jKpE!6NPTP(WupH)*K3fWx?273zXk^g-bD3Q*B5eh=Zgv z0%K-UEZ}G~Kc~{K(5WMn}^I15!~=Wd`ws|GnQJ-L_X%4jIO^3IS|_T zt>31vv#wFX|4#c5$TDahCxxp8X@!#506%l>W)gcG2K+gEwDuW0iN^w#ADos!ovnzp6Bd&q|49CE1Me)IiyMS$;k?x3)`U1J!<*2W) zIHv>&&31+c(_B+0T33;|I6pAQC#J74+>f*b1F_I3{_TlBo7Dx{2u`Va_#!h^XI-vl*lq&KBMLDk$IE+ePID5q$e}omhiaRr zlb2CSFLi?!9GY3Oc6JwqIeNfs>atLw*Q;4E7?r(l`8l()^Lf@On0>VDDn;AnJXoa= zVU$x>;(Lde%Q&35V&C&!YX7Z#syWeL!_WepCo+Rb zzsF(X%l%9PD-P*u6B5MwsBY?Y?EWp~H$72sk~rQUQf5YSO4-0KkAF#)Xv%HlpEn25 zDU0K_{O-hyTKW0BniMcS*JF+rj1NeKSSRfO}a-ph5=%33wS!L2Xcbk+GP z9A(Xlm0{|sce8`jc4PZfU-Mb-0H?=0vQ?1T_(_4DsC>{3MS!j^-dpo{f_+F2Ft5hva z$Z9jTfgUdh-)JD2-UTcb;dJBTH?R^E!=TUZ;w+9;p$Rt!UNTYlrD^#QJ}*0lTFf}& zaqT*X&F@fj$6&lRz&+usosrWC<8nUGlCrGguYp|IPXTu7&z6;#0P~f;4e=wpow`gac}?RP70u7vye*sKwY-NK z8pPAl*BmI4lbh1#u?BGYj@cN;uiu;rn2{=utm_EOyuU*R^ff-%Q!#|J+DA@nwEj>Ibba&z7~3f3cj&~n zxGeviLx6bQ+Aid1!Ce}Vp;D|09E&PqHa@gEo*ZLaJ9ByYBdNL~_-v;kMKBY3nz`ab z$^g#-PyY~e9QDhXb3;C!Do?qs`(cSsrn@lwMHF-vPcyMrHOG-U8$dX#@7}eWAae1W z8b|s1;FRY)V{79IPuBQIs0B4bi&6*MKtEMwgA|npK-JePt&WIr%oEl-DF7~F)qEHa zwMnj~)oQL7MzLWHj8Go2ui2X?3b9hZ6u4Z_04}qjX&eIEdZGPEfHQt_z5iBXv3oyoGAKc|BV%uUX@Lc=Dz<%4~y__8d4QUuO&;J5^z5 zRC={X7f9?R{ZqG$56lQc^vdtV44m-xK#@xKEYV5te?=NN?hk z9B95TwMhTu?7kr~rBI`efGrb?g$C(W6Y5E%=n;X&LR}pva_;fVKR?^fWRt1sbo4${ z@MQHac028|s?GB$=$nD)=wi6lG%1x0!J9DT@Tl~lpKDEvAWq76EJ_Sta|=QoYD9E* z8#|F1m?01gmYp3wpLf;08J&a4O?jMrkbYedA4QKE08Kb-Oyd#p$Ro@L$|--9)AU7;F41< zag@O#;s|RQ3NhAecIPAcJosdpI%FVoV0rK!q;53At}`_1s@kaHv?TR5g=_kIHnjTO z-v+anl#@)M_$F6zIp7>$D+Ka0Zfx;bHlKCxy?t;*^FL;W^w4#Wjxs%)g5&VfhD3(F5^?-i}KgAXzYJU zO%0Z)ZVI>$Cyoz&>GN0)x+59k9gxwh;F`7O8Cs>O!sS?#2P9E-_@F>^b&OfI@4zIn zR590C$~-rLkLUQurtwB>I}qnXVN{9qTG45!j@4wsG>sjcyq!&*d6HCyLkjnq&(i5} zVi0SFMc!*pX{(6u@2PxgiS&&lB2GfiuoaU7Rv{`uU`o_TqfjfwuOi)Iz`>xF!u~jF z8F*QMMxgduvUSpANwbV;RWl1?!RRfKzXCxgzCvZ?<`S9~J#pq_k(VZ>zaR+yLhQTOxed({DC^|M16e0<5nr8dKAHG&67wLMTC>OX?r2Z8Eq0RVd&7 z@>s;N+~KQLIy?Bl^HX&FS~qMIkL-<5!+0=6Dx{MGS}P&vpIYg<$}7R?JRLZR;0o^v zU^9ppO#=#A9=bJRQx6O7hrt4~Y=T9&-p~^4(e0`*zQf0lGREIB!QY%a#v-(|j3!n7 zkey-1>I7}K`$o7%*cYcQDDG(*ym5dUwfZ72-gjn2{3#{=L^sVoA?GaF0op{fV}(w1 zT`Wt*vO{>(hNuT@_Ia^sNaW*(AaiZEO$8uLdBv_NdlB;!S2|hHRM4M&^X#C5@e!5G)ED%di_v0;lP!p5(CiC5 z*V(R0MX2;+uujS*kj^W8o+Z!cabs(mJ*5Jp3vFj?jI8STrVGvJ7al@Mc5xx*LIq*9 zVangNi{h`J%Ak0_PX*NX2hFXUUM2-`YAxTDkv7I?r^%-iEbqtpb?8?U7ym;GG$L^K z7O}({ZRx7<6FKP|Owj&z*_FTm7Uq8aFK`g4^-gY`rW=Y!t%G{>a}Qqn0OqQXGhZi` zeB#h`m>$+kbGLJnXdpei7jN7B6c(@ct{vVl%e(uFo~7`en-_YxPle|(-H6}+qOl!R zdeQMW$B;!(2#> zyRH4-)T-|0=WTVFVi01KB&7I%G8g#;-p@;^{&DdMIN8vM^ z3(x2I78eygXA0`JjmpDMB5I#|XBsm-)E|L6j2TyjZ*_E&^a2m54coR;shGE!J2h@k z1@;-P<^r}+Ewz#Cep?t{R~;Q3J3S$i-?M^tvN}iB!OHAUI_})c8!cd1rahXNx}3_k zYwQ;vEWHdJ4UNh9q$O@{1-my_`n^8!f*&)OGvA;0OSu$}=Vz`ft-}R=D$noYUt@wf z|7p_cW_Uv7c-#@6RGg^{Vfaq1Sm^DcZdoM}?Aj)&8P3SvzHWg)$hY^?^50oe%JO4? z0j;-lA`|XuqsIh%R1(emzwMof>RaXSfws+7PCS zZ)rrGeWj`}IOo51{3lv^Gg{3?P z9n=0Tjdi}WqpAxD$^>MumV9A);=ISH*!zX?%J?%mDcC!<^Leshuiv%T|Ahlj9+=I%^yh){2Q8;vDf!<5)9zd_mDX- zj`i<a zL!+x2t-ghinombaI*sFta|O&Rj=DdGX3+CVm9$ilA<}hnkJ^Ya zN}#%KU7jD=1j~Z=2EuqCWRE#hF>EU?TFj-S;NPv?1N8<(+MA-j>43TY!@4*|rT8`N z?m?N-O)`dKqzYX{{F&D z96@S+E2EWN{Iab89R14QRF_Az&Ns5aP~knZi@N5}xBQ|4O?k_0=mBzKw;q@{B}p~w zV`MaJs&NRps;$9d3_b}un|Pw>6*?v+Qc{1+3m#We0cYTx*1A1<)BK9uNgQj`PZet9 z%iT6E?X=-rHl_z!ONn>egjA~uP?AzTy-W9O{{_APR1{{VUPM^Yezt_ivj{M&R$5Ft zx68y&g0#Yz;80qW6+P}zW@^oB`K_Rs)8qN{eznlbm~*1v>wTAc^7c}@-SbTlJotb& zJd_D*rd_lpCSSThYmjHN!I7u=cw0i*om5u07g554mJaKSBMRx;79xObzK_PRxY=-t zN3Njn?~qv*_DfgL4mdh6mKw`_7>P$Upscy#GS5eiF13$v7L+E)Kp|FmO{K`O4dD?N z$#3aV$YKC32I%|{55hhq5`&0{2V}uz<=_?VqDHwhmYMJ5&HXwx7-V*>7kT0q5BY`@aDS$3vD7eKF zOgxth$U3R6A*IE0DUQdYl~$d+Mfi&p;jDDbTdnqQfXaok9|D|dD2faHCAj~#Z5~d6 zEc}UwuD~HTTht&_ny{$aw6Pj}>IDjN*ft2ntQm?%o)S2nu#n`?TG@KQC1gxNV9H8d zh2~Q@DJwMM)FYU>LPPMQ)fDT(VorIjp@oCQ7qcO;2>{VUrIs+Jgv)E=+Mm+nXo$T& zFxQrIQj;^pV@mbOgLGkeKTUjukY7}yoVCuzmu|6f=jT|K)|;)pVH%`EUbczEIF_)( zHbCXz^Ya?Gx%N&RE?9li2L;FT`#XrfVmdCpj_;DQ^^bm;a#Ls=)*pKKb!8iL+f0Ur zYms3@Pa)FJL?V}qlCb+OjzLP||f9zWG$wXn-7h<*P`|^gdh00Gc3t5{3X<7uCMygD^OnQZ8RpJZ}Du3NZ zrhhVllVxbOVYu|;w&-n*_hXKuRUdB__GHEMFFephkf#E;NO?nvR-Z5!DkCnV*il5& zZnWA_s_4#6tICwTyg{d;Cv=+YaJx+Ckh*JdBg8&NGQ(XDy87kZUFamKr&>!VvD>-u ziE4)^aQvvBcv3K=e#scN5i};hjz+V%NOaogLe3^5fr1Y6Pu)BaJ~pe)&CB6B zvz1FBv%r?3iAYssiE(8`V0iap(`c{;Q4o@dT4dC=6i;2eT(WJ$p?5?t%w<$nd~T>CA9&LGR=C&aQ!Mk%o#GuhCDPok)QsL@zS7 z;g+UeRsh#)!Pe49wk4Z>1+_)01scT=0>6F(qOl?(^7q_SH0#S;%KDN|BPhR3dgF?r zo6=XSnzB6UO>*d;E#3ztwFd)+I!j8npbzQQcdWJdZS1&P*g0`80=V~K((w58^$?GR zV>&GfN~aRD_;rw|H#^+|i;N+j>9|g#>6pC3z+zrpt)GdKGOI@nD9oT8>b(-s3Gyre zGs`~d_`?g~FHNl^%A#p7&%SgE&3wm@67b_T&f5^BWm#FzjB>-CR8hM?z7UiIxy15??$@Y2Qwitw`v{pmaEV! zMkUiJdu}enx?L#6p2<~q%lxciF*@rp(F80`?B;(JuV5^$HkG-yP!#G8A>U7>K`(#d zK;=hI`0w$ixs8zbwt`fUh<|ZK1Ah;H8`Ta5sxm!nqc~ddgd?&clgUHk$^jhw`EL;q z9rTwvS+xAk&x^4EY-U-*Jk{rFYX~p+)>Cwoa2SP->2tkq@lT_#I=9;Qr0o*k)>u6GO>Nb?_prn@;?U(!d zU1bnaW$($tu=pBw^I|MGAw;r3DM$@~!F>k2KS58bW-MI*3nmVNG^tEh>zFcDtfgBLP*pr`4BdDYP zI4}GJ^Gz6~r~0+>u!>G{(!dfpU^ZJ7zR<#Ft4@ZwwFrgCKv*t>%^mFwa1oxw#(>d* z>KbJ<44HII%YjAVR6ET{=KQ&!0Zd;!GER*Am_C=cwsT}BwsKRX?gI>Vo4I-d^ zD!yGlUAGj6b{4-aUnhZpcM%%ZhxP^r#&^LMQMg6x-4#Z753^(vX!ZNMtky@@I#z!( z3LkY5DPnf!e9|0X&6s>15EYE)MP}WN=12B?;_=&yH*e?PYce_u3BJAGPgWLs4VQbq z75M+8&k2Z`7D*Mdutbm~>Kni2OO?LQZGfo^-4Tmje|i)31pj?_wcW%djc0HfbBTkC zI(I^XuF$^2255klC?Ldhz$Fg*Xy(aM$#z#4`~Z!%#P7^3tKF>1AOLSQI@NF?fuLScf5_ zfgi9(xna^zr69cb0a-OhSh21{Su9%=Dez$=q@|^$&o2ufCE6&FScKm1ORUM5D^Z(i zoLO{@l`EzzXP?9dp*?=VYs)DrVLO=(s^&k>ojcz-m-+-R`i!qX|CWnqfc`hdTGwPZ z=|BeI9)%qctI|BaA+0n#e`!8B=+VL?u#IS46pO`umVbA(WNoZMF=w2FcW~7r`Kj~Q4Lw2fxu!hq_DaI4U?hmUxguTlwA^G zY;s*y37z+Oay#Vf2)-JnOeCZMRT2_np*ft{PS_^}|2uR{V6!6BVoBsDBV94oK?40X zIlj4AooEwMjxX=Sc&_{wIM(VZkcTqbBq-%fRGFH6kAMUg<=JC<+wFVIB7 z?4)N~EozEf<%Ck2vGD;KC@IX%JrU`y!}vpa@w60udqCGiWHxKwCO_NNuYiii4WOEA zq>Y_?oif-~vV8x+YiKD3(yZqtr9Mn&_G-e+x(teXL6se2(lqIf9g@&2>Fphix^+_K z<3*gXSYTNh$v&Ypp5fZkiqkx7tRw>SC>7wW)L<00Xqn(ab5cLDpu4GYI8nuDc`hH7J?dCS7VX-2`1`+E1|HHSrRyf z4abi>QML-~auv^Q%6NY!)q(07&LEb-G{woAXg@DO{)my-{kxZN6y}B35S2{LAM2mz zl{n9Oewl)ekg1Yj1drT2xJ__1)S;^8{f1#JMp2rAkXt2=q$$68BU41axD&iG;v!K{ z=L;c}trcZ)>4i6_B?*I?)kV(&h;E!>Jwy^*;C0SAme(43Up_Ah1Z$28rA|7SE_$l; zL<~(f7*uQBEcS)cu1(1Lf@c$ELukelNHqnE6D2f z09Wk$=KMI{Oo0@A%$N^mvc4*uUKPtonS10-?n|ix5~-n%j8ecC*m_7;x+G6-btqb- ziRx*DxsZ3J)o@D~k@^FoPqP@k8@H1TD)~x^ z)9FL2WGr~i9f2zV;$&a0Z4Lzu;WI-ndGX2!Q7CF)_CuzURyi<}f?9!HSpCfId3arb z;w~f&tdx=`a#={G-~pyX1gCq`z)jbRSe-%A5!2G?JYXJLc9@5A-0iWMHRP)v3irj}p``@4M)7NE4xjxlD-A z$>ZU4Rx0CO{3P*{z8M?jCw0{~$1g2A+7yymAPN+>8ni(;rimwm{SgwbeZ7HZYSlf3 zAhpW%sNeIiiDMe5yJ~vA5zfA1(M}`(gzJ*W|hw%NXT9CugV=07@gcuYt4%J zF+(jk&Uyl^>+ye%=}D0bf0pZxa@Q*=fl5o~y%$d^sY#4U@rsu)V}XoEytjzM8bu&B z>6l;ky!c^~RRN^ZQ=NgrsEsBHuY?HqF#T;V_BA7r7Z7IIA-mnZG9J&i6eLT`*cV<@ zQqtF!KR@xuXz_MqMNL`fsMExB7kIncNC{KINF} zqjzOjyT;W)+vYa*a>h1L-BKB#C~MUaQe`89Cin%z^xu2V1>9%Wk%GTcZu0gjo8Mqv z&)LN#zED0o^045nxMy8APbGlURqTfpBpn$BoOQ9G?m>+)P0(I(vcSSdQpG4Dx8EMZ zS7SOL9|R3wUf`wGx4#H{*rWMa1@}oj`^?^d+Wbd+OMVFH`nEDX6bD1(U(ENS_GrfL zS>Kq%oQac|s_qr@ADv;zX$I@7`7{5e-zO!LVxGHB!)NGSa(8BCQah(x8atz}um#Bw z0(K#bcm29OzN~sbGp#Ao6T8wb1ZH%Hz|dXl@D_i6AO-JcUTn`;6586Dmh+y0i&64y z-{wUl5HaI{sGPmHoNkI!#L=X&@_+yej72Wm1Q7a zc{5`J(Z=W`e=CN|WCNm3E0X+>+Slh0Z~OWq@*LMVvww}u`jI6HDI5-O zkmMCI?Wm5#mjQRVCf80n<(+SMECoizB@Lbrz4B(*=RzVvdBEp}SF&Z>pUH!2Zrfp~ z2=Qs-j2WKbTsl&Ng-N{0Du>oElMjb54eqhX@D$;u(Jytjl7kCWOy$PHy?VQa=s)k< zIppx>PT3v4i6M=SNaw2C2@%3O>j6C)0o7Jhq`2A`wt44p#tsj&iyT$=>wnlfhah2i z08x%@+qP}nwr$(CZQGvt#=9uN@%xdme z5Jf<9hxFU{;C%U=_ZUptFOxDd$o29xl*f^+8b7}r(Uomc1XZolC>2=%fNuWa+I*?r zi!9AS5~RPTtXA}mQ?{ud+3||E#BS1~vIbfz?lIOray{ir8x7fu`HkhDyq!B17OJx5 znx2mDh`7F#;Tsl}L^8JT%0!FEiz%ZQo*Ds^=hPsfn9fgszuQOQj0#-3&feduL}nI$ zpvN2Z#sNM$*hcr^VKq-ac-U6&qtHXExq91rp2I&E4C77GglD)+l=*ao`CRe{di;L4 z?~B(jdagn)fM}ptpdNWVl)15aR-bkq)PN@CQY_)(dygyq;7VKmN6OJ@o{| z;m{m@V2~gPaE<1hbOb^+SkHJUvy}K^8c;X=vpJOKNMwFy>SSa@{Hd+Wg21AfkK&bX z3;hk;^`GBYV_HAsK_>}tKc@N237O8^xW#nLD{iCta4^=3Vj&9LF`hEl1Ex0cMKv-x z$Oo|>*Ex@!s~ARvJTh(pr)D)S3I4rezG`f#1T%92TTGha9yA1;fc6#r!?ST?CsxiqdbsoJY+@(W~7$w z6u!G^cGP#tfm5xE!$h^A945CF*Ve>c;5|v){?oIco@M}Y4=a&Pu5XUO1b?y!;SoCg zTnTIhZoX#2lH&lhX*@K04D}G3Qq2H5t&%{B%sC#iqlKGQX)zIA;4B3^fUY2{U0koY zrjlLT4>2}t%LYg&00Rh(X~uh`a_Ca=cd`I)16%4)9mcBv65 zlkMBEe(}r)cjtz5m>9U+@L{O4Iv%3CY@ES*i~Pg-eauCo99W!ZTEXTWUvt^=g}%^p z2xyW{>4-^mbT_A4%r2dJ)misVmzIM9VO$QKT{f6+$3?}(uuIO-?k20d#Um^{ds98wM)oDm2_*qpKTn8yRQh63h2$`g7`&p*@#5(2EsU= zVJ>VZxm~w!(TOTh-;=Fk6O{3ReNAUV7M7!##||QeKKRa|*tcxXS)ZDn_$IOyo)?RFg zs0+Z4ibjWpy!UNafkuE5Gc|Ox2O6Bj!lXbcySk_TT+kNV!qC>}cHMHs%@AR|#Q>}RoVV}gFn1>6JM0o_(EWUC>fbf<&JMaO!LcXkP zkGhrt9#Mk{iiNWd-4E6Lo{n-uBHb$0YP1_$q!Y7cWpx6}funph`?m$p#0y@OruRHi zZ5vwVIla+V?NP{44u#EEFg9dvYGcWy2pg}!p8kNN1I|hLn>64n%=m!N6lpNk%Cw0# z1}&?>hVK#pYVVMn+7wNcRT<^sf@XJHNZdnkVBp)ue!>s=1q*c=UMCD`d6-~~ChVYu zZUNUWbm6a9dl>XDuc#y0#1pZh%?Oar!kU3Oi)Mc@V_$om>nLNlKpptrt35COhsURyyKIH?{ic+|62XUnv3OTTRElqF3TkecO^=~fLHv+#l2o1>Qd(J4}5 ztdSCUb{Q#)&qoQE@S6!h!uDT49%Q(-bHlfP@}6}qoqnX|Q(ld4dh$O->@jcyUv47x z(3t7JEd@J1hQTwVlS^htCkXQOA?tKB?Ays%*te`LIVe1?zutjI(Wn%MyUmLwdP=!DY*Dhq+Pn6O~;XfLGj<&31NGpd*1-NG0;&-gb&U zgu}8g{G~H>LY;N+eUz%|2ZTl);*~D8P+$LD-`pre&7I-KT$I|TU4lWT!3;RL$JoUW zjTb?M4l0X>AWC6~@e2`FhehYByT+njUcjgV3p!b$iNo2tAc`CJtDz_hGK7xKEvox2 zU^;@9qCY4&pf{k~Jvl7fE4IRmO2HQAB_JB>wc3gG)?@fEXflc$df8b@t22wYv$IIYP=h>@xkRsSK~aehq^WvjF`0*f`G zG#HpNV1}H2>dS+_L|Z*G^w}x9W@w0Im)*kW(4f4o&VuBRhRcx+^JB@;;4JJf0(Bj# zOcV1+0AfJTV6A3i zAV)Eag0B+kr^dJrgm|^dFL0N6Yy$ova=MfhY&Z#34i8^fQ}3bP9k-z78F51FUAV&c zCJ1G;$oN9WAA>AW2oM!YUD$ae@VXB0S48QIeF@q6>Hf<)pDqQCQU;puo0S{8h_^b_K*=4yC%Kd<{hIH@KOuxv}^-()Vch#r{71rgMN zi-sGsGWqXQRqNPEDAmQ;5MHc`X(R_8g5WL2-1#tYZ~md`8M@&Z{XemLnx_72*Zc8d z2f-aN*`hT6 zBYBUdfGsMfLFJ#u;Jy2i9mC}4)(OwYs|#APy7LdtrId4(#L^1l)?pf)EVnf`YekM+ zIe$H+rVo6O*^kxWebNFep|(C0Cvu4&X2guQU|iW#f0om>H6jThgjW^5(T}6>F^|1G zexbdVb`wK8HiS3ua~eDUVGI0lx%E>i>BJ7(>JG!@Y>tmA^k!4#FWqk$FYOH&ir;!_ zF;)(8e6;u~@+;0k4S3=|E+AunlaG0}no&BV-l+(*0RGJ+EOxpDP>_2tonY+^t{jW{ zowK$i+|M(%LVKZf-UsjOQ1kkL^Ji29XU>IFB#R)<7HBQAo$44ItaH63{RP)SU;rxQ z+-#MJ8#b?SK+i=l)<58+vk96nU@nt9nPvQG$cWEB@*_^V__CZI8MpEOPKzI-oV%yh zWu0`Jnr0k&>Z|pA-#2|Tg4KcYB656x_#2nep!)Qu2d4#DZ5NYyhkgn;=uuYlAO$#Ev?bVI-T;0mm|3b*; z_F1x2`p3h0J?|gj9DCwJ?k0lTyWx~6K}mM&sJbMTBV^EYmizsX` zDEiQzWjd2!X4TzH1-V|RG~9CBco#^XNXX!fzDCo z{Jf#dQ$QNmXnV?Yt4ykwZ7uok{(CZFbk>ASXt{ZDOV#R}8Y7=hJiq1l?OQ}IA=i*J zAQ6lBOv1}EnLVL$e-@O=uu%>=;x6F0S~S(Vm2FAU$$Zvh;7lQC%TzWM{Wwn%m;Djo z#F>~OKmJ#eTpk^Gl`WnJlM4`QxcsFHi@coUHhOWj3}uVU50(I3YGH1rLn%ckYXgf# zz(Z{=2S+=_&Cc9dpe{AMv9l7i`-_*uO7J1V>~h`gQKnlbR@g5s zax(-@e$R6=V026;u-x7H6LgepLU=p24%j}a0`u-P+{1B5-7JZ}c*3miNJO`1)bVLH zNjgD=f_qve<<$lh2Ys~Si5!~J;Z1M=JPB!mPDZFf6_E_Uq@MW!G~-6wFH{ez2I#VL zbMIo+6C5CYc(F`E)@hIx<7(bD*==8l46XosOESU;fUMiSnA$mn@WV~+BpkzLAJl~H$p zJAYUvka(pHTvXAk7Pi6P!*d|>96~Ae7URCcn%85=`}a&*KC+>MKGv$~bQ$Fusclf1 z#@9x)=`#L;cACaHy57j=Uy4mN?`Pt0FdD#=5YtE`Cx!^Xu7?t9e>6>KH>rb2DF159O(Ls= zev|PlFPQMK+SQ{8GA5L(22ef)=R<)0Ra0aQ!cC}D;IQ`5QbC{wP~iX|1UOS0no-gX zADMmQ)drP`NOxMsEA@(4xDUa&1AGA_!xw;}3fVD6BlDN<2newqlsdixl)!}z2^g=I>Gr7dTr4nCDsK54N^ zAi_o}LNEY0Ac>Ri@6A_y&q6_ER5@F9B?j{O=kulet5BylyDh%U*1f?dTb0HB($uq= zZd0yBaUzuddnvoiC!l?eR;w-{XT<*9 z`;Y!p`gvjASqcA+tt?N>1fWD z>Vx9(n`vtX`VCQfs2cV4G(Y!CT3oT1G0sj8XKi9x0u{%iZI2TL(KL-D!iYx&UG2HsMO#J}s4 z{r!>d_IkO$&&&UOrN4XRe-UMhH33gBUy<;;IXXCfJiQ!nX#Codz5U22_z1fE{M>$y zK&?)jMLc~xUa#TQI*E2@;sRW7%o+E4%1>x)K~T4T**`z~;YUx&?00&3J+u109zR&! zp?K*J=FEfXHmWJEVZ-mR^PN;>Y-i-?=;ii*UcJSc6?aY?Q@jpcaas9O;2Pwy5!JpA zpYJ~ET_*kPvGNMD0a;Ew0PPnoU%zkf~E`m@ZpOh|-7lM-wMc)iv7c zruoB~Jee{E*X(~BU*f+<6JJkD?)Fd7@aFZ7hk+C8@X5jWd^x>gwVZP&Qb$*^nt(8br=TCD>6rOov{+~Nfk|b4fB93|0|AhhtJfM#4ccG3y6Zw7t(9C3?wu*WIpXo0_ zbHgn3rtJ?pyKUK4h`P`MtX*cK^=RO1yclEsstIItVGFUa1uv35rd6j4d>@Y?f4Gxv z%>?9%e%0<#mT3y{E&K#n|G-R7W^D0yhA1OG$u|3yzO-#t0c-<5w${Z+^h)M?DvG@kBjpudJT{CBTH{xTT=5Ntf-M7ZXXDFX1j zeFl+<{*y(pvRZ@;vPY6FR}3hk2mENjsqD@2ZL`XrNL;E7O>k-^H9Dpy>34Eg=&+I$ z=mwkh+-DW(=>F?M0WEZYij!aV2OCrtb7&;`FaT+qIyAjLu$fCc|BS|}_4gFzN;?6FjTAn8C;{f_ux zMxsf{`lQ~cYY1QuFc#x$GeJPXc`AVvdXF+e>p zgpeaMop_NP0T?u2bge*)8hww}K|aTz)jaP@(e%#+9vT=ZPz+%{FP20A=q;2|s-T^v z|AxHKkLiayGe+JwWs%SBw?(tSR0J?*PLU#7ft{wF{a*wYf<)rFL)Eq17mHVs zJpClKbxo_mKMuU6-*rvol%rV^yYv#N;5x3hY{n(U_;rxaaj^$ODPA4}A&7$7DL`AA zm-qHn9T6Xt?S*7{hEmQW>{&oWWdAvXek0|V=86O{^)S-3L^^CrOkz@_7$}(y;`)9p zsg2>j>a;zi~&>~$^XT>JG1jGaB8q0r)Z-0_7<>kn@IL7r?kYqF4tm@2qQoXnM- zZrQ$FgRO|^wT_`RS$}9)(GI|b^)?iDBLGm|O>9x*dvY2(1yMMr3NH^=1AM#kF#tZr zK<_X}Tc>9J=xzJr1%g7uHPgw4q;fh6KaVY5E=hN~s^LL|Z78NEKoy&QkNeZbo*{6Gt}6suL^xm)fhWlYmu0V#Df$FV>D7GCK-h%9W-L1)fV>(HlZ}ye z4xI&}ak~*ba}9C2^UXfmxf5;wr?6oeU!A!}hvB`1f^6L&=!6$ghm!T~n@vG(iG+J+ z@#0a4eo(N^_ifnWI!JDGR;u!uzo(q~ixzWnjj{Px!!O3H>MQn|gPB*PiDjED+moPL zk;;qk+88n1hFGG$H|wNM2Bkh;sV!4{V?zy6UkQ0&fl}p4}EoHB;3T{1B0<6MB9Z zAg|!FP&r+NRg1pU&P+hjyttT3zywLaCLccntRqH;{tz&bkpV18GnTnGiTzkcFq_`G z7N(!)uBz;A+#&D$*NCZVP^W%Mlun^3M!6p0OMl&dVKSF`H;KNDz&Id4TZObhjlH6y zvJx0AAotKQG@P2z4wlRVq{vV?lj(BTtJB%bkJsHz?V=-0#MObH{iP@qc>)~m3%cgg zfx@I#W|JU|)G8i#4cnEki^I^N#9l3xajtm`e2+9x5yv}!r@@4{iCg)530J$7nE*+0 z8(1fR#^;ymz!s!Lx?YmHZyg?qL9JG zLeVlBsp2T!f|+Q{zA5Gd!ZyINU?FB&a=~h;&=c1J`ju4RJVBZ>if`zzZ+Pg#B`JzY zX@2@7L}rIj_(hl2O+=9ivmR=?Oyhd@*54C&JJ0~11O{o1mlnM<o1sW??hl7j++FwL4u+wC>?YP)%> z4bXjM&G<*X8^~-o*1L2{0Vq&;!5*L=bEa#`}x?$W$p;m2py$o%2k#*7TWdH-WRD zG4``7!6IIn;>}1RA}LFd4)~(-Xy~%le|BgpDxLe94)SX9b4XBwTt-|{C!c}EBRqB%wn@(6QIn9Lx{0>Vwr zB4n}Z%VxU(V;R)w1*);?H|j_2k$1yX+_(*3v~J-VFu?oQ6wr_5HJhi8=Nktr!}@zf z?Fxhs?4wzt1*KwG7e?tb|FSTIr#K3`&&DcIzIarE{;hS8SWBb?Aq`hXHV0;%=xkn( zl19CwOXni4)BH@X+t2n1f|wzY(5y*To728sM_a=w_MAw}z^6+r`lJ`r5@cq4qP=W| z${c~5*|!G;wU^B4XtdQ@wB<+=2SZk<{3F*)1GF|8iffPqVFrM64h9!JK184)j0 z6=fNkm~LrE7CV&N$FyN%Z_nD&@&-VuDsyQ5YSVCEEjgEQx?@%<0>N7^+R;k66GC~? zzGxx4Bg1(tI>}ttZeIS{0#h^!K5hVvl?+En&>f|jt?_3fK8Rhjk|n*49nckzk)Tu% zoqCQ_PWr~5BslNZgY&IXem*wZ9v6TadQe6JWn-oM7h%zV zwE$RFq=+}t0)P!Wht))2Z_4%+7})J6>c=i(380X!%N~6LknC#=uBWx&q-7wka7cR< zd;c{MmMH{e`5gg#20-4{sped)Mx4CGD0xfpQU`j&@D65vGswJE!>E#hKwhjslh(gt zjpvNif)N^De*K1aY$C6P$E($$5Uv~-d05N~V#MaQ$@<0{T0;=~Vx&_HLIMsi`IzKU zagsb#Os$laU;TdZQO0^UEKYak2Sg}*GYQOnzf9?gl}i9^1l5FK9dn|*3IdZ7h)hq) zj#DU3&eXt2qEknitS%jt2$fMZE5f@+HefAKClQ{UFB2xldMaf@^SpLG$&)U{&-Ndw6>3AJI;DWC4;`b>fWiv?(8Md*M9csa`YS!@h zU~>mL-h>0)@y^E;tKI{qa(QRpzM%H3_jh!424N>(BZ{0Eb{vpgEYnjD9T{G(F_QFC zS%6Iw;05@K0uU{v9|r@g)61lQ*RjmZxEP7Y9paDX-TTcOe2rO zkyC%!C!2Vlvp^;C@q0Wy!jcXohXx~*g`+1-BU0X~8zQHVZ<}}C zizIO1%Xr}yb}=0`Oo%|zlo)w>nI_Bjt$hSbqxE@R`MX%!*o^5E(7+cRs!M>rzxCWZ z#)&#D$X>@)cFXP!O(=yDMJ>$ztq!5!dY9aGFisC&2!e&M6l7-uYm#L|Q^T-9eQ6-uL70Hi zXtD_48)^-Z(6+g%6YURg)p_8YZ-WU%>ICo>Ou{&XM$>t>rhS5bRc-Nn!@g0V8+3n! zu-BsQ5Ar`LeA)Cos5o1LM$%bdYcF%reS`Hqps)C*i~BjZ1YRPkWWlBcqMFslGdC;_ z7eaMxE=KuCG7R)4aZ^crNYE%uR`Howbk3176K#`P zO~6^~%t_;uyWBQ{W?w7Sdsl_3QRcGlUuX|1Ic~|3RQaO=$g=9##lV9mya!M`FkXA6 zlk04Y=Rd|@+O6N%HJJ0=oRwod(6bx5o6K# z@LyE-L681Y=fvBeOgts~rb@ZcWEnELP>grVH&SG8JfEIln)q3nc-CfLIpgxb9-Y+l zpyUxaNJZ*YkPzY6sLS4Uw+Q+)%NPhxbW#XqN?R>FiLR$b2tH3=>ZslKRnm=6hZ5Uu=0A|JE!6yU}IKh$QKcMX@02 zy(c-^mz&~BIr6l5&vDsO4%`?v%-*KNpPm2agd%6y?+nmmhLdfGn|OldT$h}e_e~|7|_dtCxg9^z+?;p zAqTpC;L}(euYllis&WgM%s*MT6>;0mkMnzhuyEFPZJL8oTEEyyz5cGh9V6mAJ~5DqvF&aH~WiX zf_kH@;0Zm+2exh96-RO4P)F0BKk6=ZK+h=-#|86Qm=Eyhf;E{Ko8rXqjqgrwlbeW1 zkqG1TJFx&)N-X{%Hp?&b)@mP76je}QO>Y!rRu4R@4!8tre zxp%g`cuDK%Vd1g@)Y!X-0MbKB$ALOl3VJE#oG;Li!bph8=6XDa%W+W+=GK`gkeF^4 z&=V7U^gvV2Y|)L%^|fC+$s4#*>aV*os9K~Mjrdb*Va=9ZWsMQM&QDz|M|k8yBb?I} zCEF6z(*ip-T_-3Oft0voLb*rVlq2*CWx5RlOpC%rI3qOSu?>P`iECY8q#fKYHCWk9 zF_OxfgWTSaF6S0DG}+nC@}^?i1{XT4l}2N|u+3n+ewd*{{|a|}t0?PsD-K_?hK0v2 z0+G=(?otdjx}5zgT&gyXzzt@~b5PJc&!%zrlOgZTsQhKf)D`)=g6l3wNL}sTcXXiZ zzOWG7fJ;}?JZ#pnFVJt{!6l;p1}IzeKVhHtleaN$xiPpW>uDm{`(xJLnA}%3wsL{OHZ?rIIc} zjbUpxs>FMB86z9m3;7qIN{@f(DF_k8`B~iIrSmc$}P*Cs*N#h8q`gz5Ev3SG9`Y!d59K5Eu^R{wed(PLPP&H#AC=P`mwq zIhZ3%aL72GLt)H02l><1Nn%kQ-#T@eN#`q)#4pLtZlD-=6pV|^bVr{SKditZOl2LC zQFS9d2^+H}kOLr3gp%dCO(8I)Ka04ONqm0fx*HO3pckLE_AvtXLpYA6E*%PKO}Rrb zoDgN$>V~cszI(apam6q-D2_SZkV|$%yM}E#qn!)q8~$TM-z;8d#{T$xMql|L9Kg+h z%fT$2Uo4N4IC zIGXh9-EO0dH>23qc{57w{RX&4mBvcv=~WX>0BAi#sj%UP8u-Sy+nqR1H^ioe9b?m2 z6&JxS1!V!DP6DNvc2<8jVFU*Vao`~Y^e9XfzmMhEENw;!{AU@M3x2WJ&2*D&Qlmml zv*wpZbmYPM4CV!U*Kwmx1SamJqzl5-7@k$! zQDEg6r%^CrX-}9LOL2h#E#v5yD2H;t`cSsUTFzESVK~VtFOAI))X>u0aj=HOHeEfI z!(x`itQXj$ujsO`dThCeEJ{d_Mrjp-I{nx)6LN;3%KeVjdla&){bRugM>$~1Q=;i7 z`-74Byms4ch7&|ePuP>thS~wZ83;cZ0W#!|_|P1id%4D@EYKsU6-c)EEsJTH+1gYp zMjDdRZBkD5l~*&0~!uy1m?(3irE%0 zk&DZhLQRBU3$o#ww!9Ark5zG?dB30*(%~UY%WF2GXBDq!R<$HZlQjn^2UEcIe1;zE zm`MYmkCmmP>{s6nG<`X1xy0arK}|M1wh6L>qu>~M0HavZYif6jk0Vx1lW+R=MO4gGkBAO;1(SfI zWXy}78z|D5ml0)AS~>A5I5Eka=uAi8F~&s*+%89bOPd=F)ViB>2e*K)wqq{>UA608 z!dKu!&r)E5bFZ1^)13hWNus@fhXv95c~|>eK*apsIU#8Y=q?mlHZ7cH5F+l0BeWI% zjV7C3yF{ciai>4fE$+ZkSp)s+Wp}FenWjVGAE&)8a)6&IxJA$&$$u+21m{CVlB< zxMeGJ6I;d#6NBy2K-F zj8{Wfw1rnemXv?n`CZZQqVQDkKL;~*eu;Olm3WLJ6`a#^Cw-5e>Lwq3O$b!2OZKI? zMa6uWvQ#Pk#>qv zGjSYgPRo|bB;KOo-IV03%^1>rD7}amWKtnKyM~J9jBA=PWuwBH#o%5TIsSMYj*bL@ zVDmJ$vxCFq?@#yJNB5h(LG_FHX>HG5$|P@;{Dx(1GIg>q6g0|66nPW193k&w_AFdA zcM7(^6XdJ=_viDwPYE}hlwfsw+-jMNgp4Qt`NPmwa$kOKPX~u5=VEQ7+|VojbMi0P zx!HlluB57+Pgrx6TPmo?~;`eas&#)>DdbCM1H1l`_6 zd&r5AE?%s!DPK~hTYS;I_yz@DD@C;lCjW zF4RiOF!T|tZ9_8sr4x)bp2psaLm;?WD0lDfZxKVjjwOS^eVHZNg0En{aS4Ix^ZNvY zK^gl^)KP$T5BuI@JDaHbWDfp_kSRPJ1zJe*Kz(!`|C#oIz!HU@42~=9ZC~~tn=Cm; z1S~J;2UN4uE(BEl$T{RqDale*i*74U@w!MhAtqN8-xHb7M?Tm5UHkfjCh7cGq}eXg zDiwdq1e#Gy;;w;+=`$w!izwGDW2)>P(tFwodBBpr(VdD$amd4Xf(CwOj*P56<{j>0 z7kHa=)Qy~D-(9>f>L&(w2p7gqfvq@MFW~D*Sd21pwUcL zk2^@ZM!Ky={lVI&RxD{;;@Mte-3l#sJ(9kGQ+3yx-Eq6N$$nuSAUTc7V@h3%_Ni!J zQak(PHrXA9aJ?E);9#eOPvIip!I;37*}pP^*gJ|`_JnG2w#TOtH^`aq3xyDGwvQ zyF|sbG^}C#CO8@-Uf?sbzm4vviPUWxOp_aRZ~y66?gxd zYrxDGKsi>@)L_E-li|u4_gNELU;W^JD>h8o9k3R*Zg1~Gm%*RFkMW&gbyyS8`=`ag z%4fn1k>GY&;lQ5JdF8h%&zSQnTLkG?a`owKa;iN{(85_$;F?(0oF=11mUQm5!ZrD{BOp*IrCK{@wV=)tkIyj|i1gi}1`Z@YxrZbKHDci%P_n z0pv*%Y95@|Tkh!O;uOw1$!jY9Ao5WDVQh=BqThNJ%~XbwK_eU9nG*7^Wkh)VP>p1> z1bnIAzLw5oVtVkX+D;2ppK_kZq_O(fqDT2+{-o&ky0es4SLLw^FWq`5YTGrlVgd7q zSp|@pm=CL%U%c_hzP14$5uI$j26Tp0vR=T-mxLEBiNd8H`tRs8wZdHG`e%>TOg zUmCf=<#mP|4LEWdcIu}bdLkWxymQa_1{edBs?L8%+BQd%shPMk19jmZmSZe}C-5IH z{D8M~D-v%k;pKzL$VfOs=sN|4uc+m{Ss7UfDD2lQuY7$Dr~1ku=3CoHU{ful!3+Sm z3PJNzm|{@wz@rRLDG#sLQ6PcZsGa-@=*ySZ*x!x(HB)*0^U_!c&o=P=|GvHTk8K#J z3b$$~RVmoYttiwcu`-z_k!)x3nZVH(;HWMvnriSR?kQ~3j;-tRLx&d zx8%ap6EhLM4*%;HoHLx%NO9ztH?^0!X^Ubd0do$*S@DzVQ+7_GeE)Nt0Q5CjSNPf3P((V59oQYU*D#7)`p;sLR)M**Uc!`ycV$G{g8FVO|#ORaA1{-*!G1f7#-DFhfA0Dz6! z|J$>&Gj(ydce4K9p4AG^kMkB=Q{Pv8|Au{73h{(nQde!6)1~w_+g%n*a*6w!n3|Yvwj?Nn}k6lfE#-B&PdXOQ|d|S_{l8KTpE#HsA9@g z5dx$7J2y~Wy1k#L*CeX1@;wu+DIdIf6O|Y3)D_L20aV;oY+QD1T&~!F{*Vw?ZN+f^ zvq#Q}8EU!uEy3R3Tz2#Rhr9XQ-|OQ``}Ql#&i%|2jpT7nOmj-U{%~{BU2kgT^bph3 z$HP~L0&4xBQ``O)zS=sI%=?9`#vl$#k-Ji0pME_OYvo&ZYS$MdEAOmOEXNEGMlXyR zG-om9LyB59h0K%(+xLmYob;(@8hY&IL01g&P+_|h=x~xH=Hm0P7iwrJ%wkPQp9-7y z9}<~k2s0annWk2XXTtb%l@3T*FMY!@&+YZFbNV=ORy^J{Qw%aRRyB^5>S{$ zmnfI$cw{crIv&M;yB{`LF$Pb0lH0i_P4f7@U#ck62UzrGp)Md0rzaknq(`O%UbG+6 zBH?Iii44tsuLrEi>7TM4x3rK3zx`kjjSurkFGVwx%;;W-B%!wqM-Nm&P$>>!sq98q z!pAto4oFp5nH^|{A*qP&%fn@Qx%OpT_hk{xdb-;yl*lEXV&{3)mnZF$tojKLe0>^0 z`-@j}#Ga|Br@Rmyz%r?Eri&6}pe5pO9^~1h6E5-X6pgf-8%a!XxS}>70TTtPY+-}} z*6Mg-DK|H_)X0HIA*m(Ybvr#BdnwH)k(}Xei78oa>Qe6x1az6e6aj!BEKom3AslbQ z4*t{dRd)H^q?2i?4>I|pSIr8L9maPT6~_=~AGPz(HmIK_PPK!j4cgddEl< zLf1X){UsDuABB?cGf%efc(X%W!=zj~e|^nZJ5$sRS$)$pRde1S+AM#_YV%e{~fq07gq~RzkbVI;+AcxBl(NoLF9` z?-Qz3ATkAayj|RC&6C}7_-VuL>d-1biLKtHghXMzN7>xi2 zbOo(JA-b?enzJFAJ}!-vsbhltxjdhbkq5mFtqGPWemFTnJOM`Fqf^ah^_n8ec(}4J zUS_w_+Dr_E1@BkZSq6d93j)D)Cr77%0D)%TAflIxSJz({!^)t9TSTRRmCa?)Jz)#o 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℘yaTMQxh= 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

O_u_lmpw+0z%KR4`%%sx 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

uHC(?(ER$bpRSoY`PKkeDSEi#kIHjlS+1rQ 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