From 06b388143eb05c2ed94bc04901560d243bb58823 Mon Sep 17 00:00:00 2001 From: clover caruso Date: Tue, 13 Oct 2026 11:10:31 -0700 Subject: [PATCH] feat: replace T3's terminal with @clo/terminal Clover wants terminal output to select like ordinary text and new terminals to open beside the chat. Replace the canvas renderer with @clo/terminal used by chat panels, provider sign-in, and font previews. Preserve PTY sessions, restoration, themes, fonts, IME, clipboard behavior, and destination permissions. Default new terminals to tabs in the right panel; expose Terminal position in General settings and honor Bottom placement and existing sessions. Route toolbar, shortcut, script, and revealed terminals through their owning panel. Keep output selection across focus changes, require modified clicks for complete host paths, tolerate late writes after disposal, and retain input focus during font loading so Cmd+J reaches the terminal. Keep the engine, fonts, and notices in one package home. Close idle shells and exited terminals directly. Refresh scoped subprocess metadata before every explicit close; keep confirmation for running programs and unknown activity across drawer controls, panel tabs, split surfaces, and keyboard shortcuts. Match the rendered grid to Ghostty's integer-pixel mouse geometry so clicks, drags, and wheel reports reach the visible cell. Give asynchronous mounts separate owned elements so obsolete setup cannot strip a replacement's styles, steal focus, or resize its PTY. Assisted-by: gpt-6.1-sol --- apps/web/package.json | 2 +- apps/web/scripts/build-libghostty-wasm.sh | 123 - apps/web/src/components/ChatView.tsx | 155 +- .../ThreadTerminalDrawer.permissions.test.tsx | 56 +- .../components/ThreadTerminalDrawer.test.ts | 74 +- .../src/components/ThreadTerminalDrawer.tsx | 286 +- .../components/chat/PanelLayoutControls.tsx | 6 +- .../settings/ProviderAuthTerminal.test.tsx | 87 + .../settings/ProviderAuthTerminal.tsx | 9 +- .../settings/SettingsFontPreviews.tsx | 21 +- .../components/settings/SettingsPanels.tsx | 35 + .../src/components/settings/settingsSearch.ts | 6 + apps/web/src/hooks/useTerminalPlacement.ts | 14 + apps/web/src/lib/revealThreadTerminal.test.ts | 71 +- apps/web/src/lib/revealThreadTerminal.ts | 11 +- apps/web/src/lib/terminalCloseConfirm.test.ts | 215 +- apps/web/src/lib/terminalCloseConfirm.ts | 36 +- apps/web/src/terminal-links.test.ts | 195 +- apps/web/src/terminal-links.ts | 146 - apps/web/src/terminal/TerminalSurface.test.ts | 690 ++ apps/web/src/terminal/TerminalSurface.ts | 276 + apps/web/src/terminal/ghostty/README.md | 19 - apps/web/src/terminal/ghostty/core.test.ts | 420 - apps/web/src/terminal/ghostty/core.ts | 1290 -- .../fonts/SymbolsNerdFontMono-Regular.woff2 | Bin 1177576 -> 0 bytes .../web/src/terminal/ghostty/keyCodes.test.ts | 65 - apps/web/src/terminal/ghostty/keyCodes.ts | 267 - .../web/src/terminal/ghostty/renderer.test.ts | 285 - apps/web/src/terminal/ghostty/renderer.ts | 272 - apps/web/src/terminal/ghostty/runtime.ts | 233 - .../src/terminal/ghostty/runtimeAbi.test.ts | 717 -- apps/web/src/terminal/ghostty/surface.test.ts | 1541 --- apps/web/src/terminal/ghostty/surface.ts | 2195 ---- .../terminal/ghostty/vendor/ghostty-vt.wasm | Bin 630932 -> 0 bytes .../ghostty/vendor/ghostty-write-pty.wasm | Bin 112 -> 0 bytes docs/internals/terminal-runtime.md | 18 +- packages/terminal/LICENSE | 15 + packages/terminal/README.md | 176 + packages/terminal/fonts/NOTICES.md | 58 + packages/terminal/fonts/OFL.txt | 110 + .../terminal/fonts/PRIMARY-CODEPOINTS.txt | 4660 +++++++ packages/terminal/fonts/README.md | 143 + .../terminal/fonts/SYMBOLS-CODEPOINTS.txt | 10273 ++++++++++++++++ ...__clo_terminal_primary_34_8_1-Italic.woff2 | Bin 0 -> 210368 bytes ..._clo_terminal_primary_34_8_1-Regular.woff2 | Bin 0 -> 186152 bytes ...clo_terminal_primary_34_8_1-SemiBold.woff2 | Bin 0 -> 186040 bytes ...rminal_primary_34_8_1-SemiBoldItalic.woff2 | Bin 0 -> 210340 bytes ...__clo_terminal_symbols_3_4_0-Regular.woff2 | Bin 0 -> 1083700 bytes .../terminal/fonts/licenses/Apache-2.0.txt | 202 + .../terminal/fonts/licenses/CC-BY-4.0.txt | 395 + .../terminal/fonts/licenses/Devicons-MIT.txt | 20 + .../licenses/Font-Awesome-Extension-MIT.txt | 21 + .../fonts/licenses/Font-Awesome-LICENSE.txt | 165 + .../licenses/Material-Design-Icons-NOTICE.txt | 20 + .../fonts/licenses/NerdFonts-LICENSE.txt | 126 + .../licenses/NerdFonts-Symbols-Only-MIT.txt | 0 .../fonts/licenses/NerdFonts-license-audit.md | 126 + .../terminal/fonts/licenses/Octicons-MIT.txt | 21 + .../terminal/fonts/licenses/Pomicons-OFL.txt | 94 + .../fonts/licenses/Powerline-Extra-MIT.txt | 21 + .../fonts/licenses/Weather-Icons-OFL.txt | 97 + packages/terminal/fonts/subset-primary.py | 43 + packages/terminal/fonts/subset-symbols.py | 49 + .../terminal/fonts/symbols-requirements.txt | 2 + packages/terminal/package.json | 95 + packages/terminal/src/ansi.ts | 283 + packages/terminal/src/ghostty/constants.ts | 759 ++ packages/terminal/src/ghostty/module.ts | 266 + packages/terminal/src/ghostty/terminal.ts | 2244 ++++ packages/terminal/src/index.ts | 58 + packages/terminal/src/keys.ts | 60 + packages/terminal/src/links.ts | 102 + packages/terminal/src/mount.ts | 109 + packages/terminal/src/predict/engine.ts | 385 + packages/terminal/src/predict/frame.ts | 28 + packages/terminal/src/predict/index.ts | 12 + packages/terminal/src/react.tsx | 81 + packages/terminal/src/renderer/dom.ts | 2120 ++++ packages/terminal/src/renderer/terminal.css | 482 + packages/terminal/src/runs.ts | 119 + packages/terminal/src/shell/commands.ts | 243 + packages/terminal/src/shell/index.ts | 10 + packages/terminal/src/shell/marks.ts | 120 + packages/terminal/src/shell/osc.ts | 142 + packages/terminal/src/shell/sticky.ts | 49 + packages/terminal/src/solid.tsx | 83 + packages/terminal/test/dom.test.ts | 217 + packages/terminal/test/links.test.ts | 49 + packages/terminal/test/terminal.test.ts | 66 + packages/terminal/tsconfig.json | 22 + packages/terminal/types/assets.d.ts | 6 + packages/terminal/vendor/COMMIT | 1 + packages/terminal/vendor/GHOSTTY-LICENSE | 21 + packages/terminal/vendor/README.md | 35 + packages/terminal/vendor/SHA256 | 1 + packages/terminal/vendor/gen-constants.mjs | 62 + packages/terminal/vendor/ghostty-vt.wasm | Bin 0 -> 716497 bytes packages/terminal/vendor/include/ghostty.h | 1209 ++ packages/terminal/vendor/include/ghostty/vt.h | 163 + .../vendor/include/ghostty/vt/allocator.h | 255 + .../vendor/include/ghostty/vt/build_info.h | 150 + .../vendor/include/ghostty/vt/color.h | 479 + .../vendor/include/ghostty/vt/color_scheme.h | 73 + .../vendor/include/ghostty/vt/device.h | 151 + .../vendor/include/ghostty/vt/focus.h | 76 + .../vendor/include/ghostty/vt/formatter.h | 207 + .../vendor/include/ghostty/vt/grid_ref.h | 212 + .../include/ghostty/vt/grid_ref_tracked.h | 139 + .../terminal/vendor/include/ghostty/vt/key.h | 73 + .../vendor/include/ghostty/vt/key/encoder.h | 255 + .../vendor/include/ghostty/vt/key/event.h | 482 + .../include/ghostty/vt/kitty_graphics.h | 859 ++ .../vendor/include/ghostty/vt/modes.h | 198 + .../vendor/include/ghostty/vt/mouse.h | 70 + .../vendor/include/ghostty/vt/mouse/encoder.h | 214 + .../vendor/include/ghostty/vt/mouse/event.h | 195 + .../terminal/vendor/include/ghostty/vt/osc.h | 215 + .../vendor/include/ghostty/vt/paste.h | 101 + .../vendor/include/ghostty/vt/point.h | 89 + .../vendor/include/ghostty/vt/render.h | 811 ++ .../vendor/include/ghostty/vt/screen.h | 400 + .../vendor/include/ghostty/vt/selection.h | 1061 ++ .../terminal/vendor/include/ghostty/vt/sgr.h | 353 + .../vendor/include/ghostty/vt/size_report.h | 101 + .../vendor/include/ghostty/vt/style.h | 139 + .../terminal/vendor/include/ghostty/vt/sys.h | 210 + .../vendor/include/ghostty/vt/terminal.h | 1598 +++ .../vendor/include/ghostty/vt/types.h | 335 + .../vendor/include/ghostty/vt/unicode.h | 154 + .../terminal/vendor/include/ghostty/vt/wasm.h | 160 + .../terminal/vendor/include/module.modulemap | 7 + .../vendor/patches/wasm-ascii-row.patch | 145 + .../vendor/patches/wasm-batched-vt.patch | 12 + packages/terminal/vendor/verify.mjs | 199 + pnpm-lock.yaml | 59 +- third-party-licenses.config.json | 28 +- 136 files changed, 38392 insertions(+), 8248 deletions(-) delete mode 100755 apps/web/scripts/build-libghostty-wasm.sh create mode 100644 apps/web/src/components/settings/ProviderAuthTerminal.test.tsx create mode 100644 apps/web/src/hooks/useTerminalPlacement.ts create mode 100644 apps/web/src/terminal/TerminalSurface.test.ts create mode 100644 apps/web/src/terminal/TerminalSurface.ts delete mode 100644 apps/web/src/terminal/ghostty/README.md delete mode 100644 apps/web/src/terminal/ghostty/core.test.ts delete mode 100644 apps/web/src/terminal/ghostty/core.ts delete mode 100644 apps/web/src/terminal/ghostty/fonts/SymbolsNerdFontMono-Regular.woff2 delete mode 100644 apps/web/src/terminal/ghostty/keyCodes.test.ts delete mode 100644 apps/web/src/terminal/ghostty/keyCodes.ts delete mode 100644 apps/web/src/terminal/ghostty/renderer.test.ts delete mode 100644 apps/web/src/terminal/ghostty/renderer.ts delete mode 100644 apps/web/src/terminal/ghostty/runtime.ts delete mode 100644 apps/web/src/terminal/ghostty/runtimeAbi.test.ts delete mode 100644 apps/web/src/terminal/ghostty/surface.test.ts delete mode 100644 apps/web/src/terminal/ghostty/surface.ts delete mode 100644 apps/web/src/terminal/ghostty/vendor/ghostty-vt.wasm delete mode 100644 apps/web/src/terminal/ghostty/vendor/ghostty-write-pty.wasm create mode 100644 packages/terminal/LICENSE create mode 100644 packages/terminal/README.md create mode 100644 packages/terminal/fonts/NOTICES.md create mode 100644 packages/terminal/fonts/OFL.txt create mode 100644 packages/terminal/fonts/PRIMARY-CODEPOINTS.txt create mode 100644 packages/terminal/fonts/README.md create mode 100644 packages/terminal/fonts/SYMBOLS-CODEPOINTS.txt create mode 100644 packages/terminal/fonts/__clo_terminal_primary_34_8_1-Italic.woff2 create mode 100644 packages/terminal/fonts/__clo_terminal_primary_34_8_1-Regular.woff2 create mode 100644 packages/terminal/fonts/__clo_terminal_primary_34_8_1-SemiBold.woff2 create mode 100644 packages/terminal/fonts/__clo_terminal_primary_34_8_1-SemiBoldItalic.woff2 create mode 100644 packages/terminal/fonts/__clo_terminal_symbols_3_4_0-Regular.woff2 create mode 100644 packages/terminal/fonts/licenses/Apache-2.0.txt create mode 100644 packages/terminal/fonts/licenses/CC-BY-4.0.txt create mode 100644 packages/terminal/fonts/licenses/Devicons-MIT.txt create mode 100644 packages/terminal/fonts/licenses/Font-Awesome-Extension-MIT.txt create mode 100644 packages/terminal/fonts/licenses/Font-Awesome-LICENSE.txt create mode 100644 packages/terminal/fonts/licenses/Material-Design-Icons-NOTICE.txt create mode 100644 packages/terminal/fonts/licenses/NerdFonts-LICENSE.txt rename apps/web/src/terminal/ghostty/fonts/LICENSE => packages/terminal/fonts/licenses/NerdFonts-Symbols-Only-MIT.txt (100%) create mode 100644 packages/terminal/fonts/licenses/NerdFonts-license-audit.md create mode 100644 packages/terminal/fonts/licenses/Octicons-MIT.txt create mode 100644 packages/terminal/fonts/licenses/Pomicons-OFL.txt create mode 100644 packages/terminal/fonts/licenses/Powerline-Extra-MIT.txt create mode 100644 packages/terminal/fonts/licenses/Weather-Icons-OFL.txt create mode 100644 packages/terminal/fonts/subset-primary.py create mode 100644 packages/terminal/fonts/subset-symbols.py create mode 100644 packages/terminal/fonts/symbols-requirements.txt create mode 100644 packages/terminal/package.json create mode 100644 packages/terminal/src/ansi.ts create mode 100644 packages/terminal/src/ghostty/constants.ts create mode 100644 packages/terminal/src/ghostty/module.ts create mode 100644 packages/terminal/src/ghostty/terminal.ts create mode 100644 packages/terminal/src/index.ts create mode 100644 packages/terminal/src/keys.ts create mode 100644 packages/terminal/src/links.ts create mode 100644 packages/terminal/src/mount.ts create mode 100644 packages/terminal/src/predict/engine.ts create mode 100644 packages/terminal/src/predict/frame.ts create mode 100644 packages/terminal/src/predict/index.ts create mode 100644 packages/terminal/src/react.tsx create mode 100644 packages/terminal/src/renderer/dom.ts create mode 100644 packages/terminal/src/renderer/terminal.css create mode 100644 packages/terminal/src/runs.ts create mode 100644 packages/terminal/src/shell/commands.ts create mode 100644 packages/terminal/src/shell/index.ts create mode 100644 packages/terminal/src/shell/marks.ts create mode 100644 packages/terminal/src/shell/osc.ts create mode 100644 packages/terminal/src/shell/sticky.ts create mode 100644 packages/terminal/src/solid.tsx create mode 100644 packages/terminal/test/dom.test.ts create mode 100644 packages/terminal/test/links.test.ts create mode 100644 packages/terminal/test/terminal.test.ts create mode 100644 packages/terminal/tsconfig.json create mode 100644 packages/terminal/types/assets.d.ts create mode 100644 packages/terminal/vendor/COMMIT create mode 100644 packages/terminal/vendor/GHOSTTY-LICENSE create mode 100644 packages/terminal/vendor/README.md create mode 100644 packages/terminal/vendor/SHA256 create mode 100644 packages/terminal/vendor/gen-constants.mjs create mode 100644 packages/terminal/vendor/ghostty-vt.wasm create mode 100644 packages/terminal/vendor/include/ghostty.h create mode 100644 packages/terminal/vendor/include/ghostty/vt.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/allocator.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/build_info.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/color.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/color_scheme.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/device.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/focus.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/formatter.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/grid_ref.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/grid_ref_tracked.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/key.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/key/encoder.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/key/event.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/kitty_graphics.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/modes.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/mouse.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/mouse/encoder.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/mouse/event.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/osc.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/paste.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/point.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/render.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/screen.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/selection.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/sgr.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/size_report.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/style.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/sys.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/terminal.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/types.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/unicode.h create mode 100644 packages/terminal/vendor/include/ghostty/vt/wasm.h create mode 100644 packages/terminal/vendor/include/module.modulemap create mode 100644 packages/terminal/vendor/patches/wasm-ascii-row.patch create mode 100644 packages/terminal/vendor/patches/wasm-batched-vt.patch create mode 100644 packages/terminal/vendor/verify.mjs diff --git a/apps/web/package.json b/apps/web/package.json index b4ef7684a006b28f3f53fc6f20aaf0ae08fbfd9c..f893f771ba324af925690a75c19095d8acd80ee8 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -4,7 +4,6 @@ "private": true, "type": "module", "scripts": { - "build:ghostty-wasm": "bash scripts/build-libghostty-wasm.sh", "dev": "vp dev", "build": "vp build", "preview": "vp preview", @@ -15,6 +14,7 @@ "@base-ui/react": "^1.4.1", "@clerk/electron": "catalog:", "@clerk/react": "catalog:", + "@clo/terminal": "workspace:*", "@daypicker/react": "^10.0.1", "@dnd-kit/core": "^6.3.1", "@dnd-kit/modifiers": "^9.0.0", diff --git a/apps/web/scripts/build-libghostty-wasm.sh b/apps/web/scripts/build-libghostty-wasm.sh deleted file mode 100755 index d4b1238bbfc0ee9f4e5a5de2464b87a83d3aaf7c..0000000000000000000000000000000000000000 --- a/apps/web/scripts/build-libghostty-wasm.sh +++ /dev/null @@ -1,123 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -WEB_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)" -REPO_DIR="$(cd "${WEB_DIR}/../.." && pwd)" -CANONICAL_VENDOR_DIR="${REPO_DIR}/native/libghostty-vt" -VENDOR_DIR="${WEB_DIR}/src/terminal/ghostty/vendor" - -GHOSTTY_REVISION="$(tr -d '[:space:]' < "${CANONICAL_VENDOR_DIR}/VERSION")" -GHOSTTY_SOURCE_DIR="${GHOSTTY_SOURCE_DIR:-${HOME}/.cache/t3code/ghostty-${GHOSTTY_REVISION:0:8}}" -GHOSTTY_ZIG_VERSION="${GHOSTTY_ZIG_VERSION:-0.15.2}" -GHOSTTY_ZIG="${GHOSTTY_ZIG:-}" - -log() { - printf '[libghostty-vt-wasm] %s\n' "$*" -} - -die() { - printf '[libghostty-vt-wasm] error: %s\n' "$*" >&2 - exit 1 -} - -require_cmd() { - command -v "$1" >/dev/null 2>&1 || die "missing required command: $1" -} - -ensure_zig() { - if [[ -n "${GHOSTTY_ZIG}" ]]; then - [[ -x "${GHOSTTY_ZIG}" ]] || die "GHOSTTY_ZIG is not executable: ${GHOSTTY_ZIG}" - return - fi - if command -v zig >/dev/null 2>&1 && [[ "$(zig version)" == "${GHOSTTY_ZIG_VERSION}" ]]; then - GHOSTTY_ZIG="$(command -v zig)" - return - fi - - local host_os host_arch cache_dir - host_os="$(uname -s | tr '[:upper:]' '[:lower:]')" - host_arch="$(uname -m)" - case "${host_os}" in - darwin) host_os="macos" ;; - linux) ;; - *) die "unsupported host OS for Zig download: ${host_os}" ;; - esac - case "${host_arch}" in - arm64) host_arch="aarch64" ;; - aarch64 | x86_64) ;; - *) die "unsupported host architecture: ${host_arch}" ;; - esac - - cache_dir="${HOME}/.cache/t3code/zig-${GHOSTTY_ZIG_VERSION}" - GHOSTTY_ZIG="${cache_dir}/zig" - if [[ -x "${GHOSTTY_ZIG}" ]]; then - return - fi - - require_cmd curl - require_cmd tar - mkdir -p "${cache_dir}" - log "downloading Zig ${GHOSTTY_ZIG_VERSION}" - curl -fsSL \ - "https://ziglang.org/download/${GHOSTTY_ZIG_VERSION}/zig-${host_arch}-${host_os}-${GHOSTTY_ZIG_VERSION}.tar.xz" \ - | tar -xJ --strip-components=1 -C "${cache_dir}" -} - -ensure_ghostty_source() { - require_cmd git - if [[ ! -d "${GHOSTTY_SOURCE_DIR}/.git" ]]; then - mkdir -p "$(dirname "${GHOSTTY_SOURCE_DIR}")" - log "cloning Ghostty ${GHOSTTY_REVISION}" - git clone --filter=blob:none --no-checkout https://github.com/ghostty-org/ghostty.git \ - "${GHOSTTY_SOURCE_DIR}" - fi - - # A cached checkout may still be on a previously pinned revision; converge on - # the pinned one instead of failing the rebuild. - local actual_revision - actual_revision="$(git -C "${GHOSTTY_SOURCE_DIR}" rev-parse HEAD 2>/dev/null || echo none)" - if [[ "${actual_revision}" != "${GHOSTTY_REVISION}" ]]; then - log "checking out Ghostty ${GHOSTTY_REVISION}" - git -C "${GHOSTTY_SOURCE_DIR}" fetch --depth=1 origin "${GHOSTTY_REVISION}" - git -C "${GHOSTTY_SOURCE_DIR}" checkout --detach "${GHOSTTY_REVISION}" - fi - - actual_revision="$(git -C "${GHOSTTY_SOURCE_DIR}" rev-parse HEAD)" - [[ "${actual_revision}" == "${GHOSTTY_REVISION}" ]] || \ - die "expected Ghostty ${GHOSTTY_REVISION}, found ${actual_revision}" -} - -ensure_zig -ensure_ghostty_source - -build_root="$(mktemp -d)" -trap 'rm -rf "${build_root}"' EXIT - -log "building ${GHOSTTY_REVISION} for wasm32-freestanding" -( - cd "${GHOSTTY_SOURCE_DIR}" - # The pinned revision rides along as semver build metadata so the artifact - # identifies its own provenance through ghostty_build_info(); mobile's - # VERSION file stays the single source of truth for the pin. - "${GHOSTTY_ZIG}" build \ - -Demit-lib-vt \ - -Dtarget=wasm32-freestanding \ - -Doptimize=ReleaseSmall \ - -Dstrip=true \ - -Dlib-version-string="0.1.0-dev+${GHOSTTY_REVISION}" \ - -p "${build_root}" -) - -mkdir -p "${VENDOR_DIR}" -cp "${build_root}/bin/ghostty-vt.wasm" "${VENDOR_DIR}/ghostty-vt.wasm" -"${GHOSTTY_ZIG}" build-exe \ - "${SCRIPT_DIR}/ghostty-write-pty.zig" \ - -target wasm32-freestanding \ - -O ReleaseSmall \ - -fno-entry \ - -rdynamic \ - -femit-bin="${VENDOR_DIR}/ghostty-write-pty.wasm" -chmod 0644 "${VENDOR_DIR}/ghostty-write-pty.wasm" -log "wrote ${VENDOR_DIR}/ghostty-vt.wasm" diff --git a/apps/web/src/components/ChatView.tsx b/apps/web/src/components/ChatView.tsx index 9d642198a2e18e08181c3b77677c8e407f94a2d7..452b6800759b3a60b83b4562c9adc8ac3ce45e90 100644 --- a/apps/web/src/components/ChatView.tsx +++ b/apps/web/src/components/ChatView.tsx @@ -566,6 +566,7 @@ import { shouldRefocusComposerOnWindowFocus, } from "./ChatView.logic"; import { useLocalStorage } from "~/hooks/useLocalStorage"; +import { useTerminalPlacement } from "~/hooks/useTerminalPlacement"; import { useComposerHandleContext } from "../composerHandleContext"; import { awaitAttachmentUploads, @@ -1953,6 +1954,7 @@ export default function ChatView(props: ChatViewProps) { // When set, the thread-change reset effect will open the sidebar instead of closing it. // Used by "Implement in a new thread" to carry the sidebar-open intent across navigation. const [terminalFocusRequestId, setTerminalFocusRequestId] = useState(0); + const [terminalPlacement] = useTerminalPlacement(); const [pullRequestDialogState, setPullRequestDialogState] = useState(null); const [terminalUiLaunchContext, setTerminalUiLaunchContext] = @@ -2326,6 +2328,9 @@ export default function ChatView(props: ChatViewProps) { const activeRightPanelSurface = useRightPanelStore((state) => selectActiveRightPanelSurface(state.byThreadKey, activeThreadRef), ); + const terminalVisible = + terminalUiState.terminalOpen || + (rightPanelState.isOpen && activeRightPanelSurface?.kind === "terminal"); const activePreviewState = useThreadPreviewState(activeThreadRef); const activePreviewServerEpoch = activePreviewState.serverEpoch; const previewSessionsReady = !activeEnvironmentServerBrowser || activePreviewState.listLoaded; @@ -4805,8 +4810,69 @@ export default function ChatView(props: ChatViewProps) { }, [activeThreadRef, storeSetTerminalOpen], ); + const addTerminalSurface = useCallback(() => { + if (!hasTerminalWriteAccess() || !activeThreadRef || !activeThreadId || !activeProject) return; + const cwd = gitCwd ?? activeProject.workspaceRoot; + const terminalId = allocateTerminalId(); + useRightPanelStore.getState().openTerminal(activeThreadRef, terminalId); + setTerminalFocusRequestId((value) => value + 1); + void openTerminal({ + environmentId: activeThreadRef.environmentId, + input: { + threadId: activeThreadId, + terminalId, + cwd, + ...(activeThreadWorktreePath != null ? { worktreePath: activeThreadWorktreePath } : {}), + env: projectScriptRuntimeEnv({ + project: { cwd: activeProject.workspaceRoot }, + worktreePath: activeThreadWorktreePath, + }), + }, + }); + }, [ + activeProject, + activeThreadId, + activeThreadRef, + activeThreadWorktreePath, + allocateTerminalId, + gitCwd, + openTerminal, + hasTerminalWriteAccess, + ]); const toggleTerminalVisibility = useCallback(() => { if (!activeThreadRef) return; + if (terminalPlacement === "right" && terminalUiState.terminalIds.length === 0) { + const panels = useRightPanelStore.getState(); + const panelState = selectThreadRightPanelState(panels.byThreadKey, activeThreadRef); + const surface = panelState.surfaces.find((entry) => entry.kind === "terminal"); + if (surface) { + if (panelState.isOpen && panelState.activeSurfaceId === surface.id) { + panels.close(activeThreadRef); + } else { + if ( + !readEnvironmentScope(environmentId, AuthTerminalReadScope) && + !hasTerminalWriteAccess() + ) + return; + panels.activateSurface(activeThreadRef, surface.id); + setTerminalFocusRequestId((value) => value + 1); + } + } else { + if ( + !readEnvironmentScope(environmentId, AuthTerminalReadScope) && + !hasTerminalWriteAccess() + ) + return; + const existingTerminalId = runningTerminalIds[0] ?? activeServerOrderedTerminalIds[0]; + if (existingTerminalId !== undefined) { + panels.openTerminal(activeThreadRef, existingTerminalId); + setTerminalFocusRequestId((value) => value + 1); + } else { + addTerminalSurface(); + } + } + return; + } const nextOpen = !terminalUiState.terminalOpen; if ( nextOpen && @@ -4850,6 +4916,8 @@ export default function ChatView(props: ChatViewProps) { } setTerminalOpen(nextOpen); }, [ + addTerminalSurface, + terminalPlacement, activeServerOrderedTerminalIds, activeProject, activeThreadId, @@ -5026,7 +5094,6 @@ export default function ChatView(props: ChatViewProps) { cwd: targetCwd, worktreePath: targetWorktreePath, }); - setTerminalOpen(true); if (!activeThreadRef) { return; } @@ -5058,10 +5125,18 @@ export default function ChatView(props: ChatViewProps) { env: runtimeEnv, }; - if (shouldCreateNewTerminal) { - storeNewTerminal(activeThreadRef, targetTerminalId); + if ( + terminalPlacement === "right" && + !terminalUiState.terminalIds.includes(targetTerminalId) + ) { + useRightPanelStore.getState().openTerminal(activeThreadRef, targetTerminalId); } else { - storeSetActiveTerminal(activeThreadRef, targetTerminalId); + setTerminalOpen(true); + if (shouldCreateNewTerminal) { + storeNewTerminal(activeThreadRef, targetTerminalId); + } else { + storeSetActiveTerminal(activeThreadRef, targetTerminalId); + } } const openResult = await openTerminal({ environmentId, input: openTerminalInput }); @@ -5132,6 +5207,8 @@ export default function ChatView(props: ChatViewProps) { canReuseTerminal, allocateTerminalId, runningTerminalIds, + terminalPlacement, + terminalUiState.terminalIds, terminalUiState.activeTerminalId, writeTerminal, ], @@ -5928,35 +6005,6 @@ export default function ChatView(props: ChatViewProps) { createBrowserSurface, previewPanelOpen, ]); - const addTerminalSurface = useCallback(() => { - if (!hasTerminalWriteAccess() || !activeThreadRef || !activeThreadId || !activeProject) return; - const cwd = gitCwd ?? activeProject.workspaceRoot; - const terminalId = allocateTerminalId(); - useRightPanelStore.getState().openTerminal(activeThreadRef, terminalId); - setTerminalFocusRequestId((value) => value + 1); - void openTerminal({ - environmentId: activeThreadRef.environmentId, - input: { - threadId: activeThreadId, - terminalId, - cwd, - ...(activeThreadWorktreePath != null ? { worktreePath: activeThreadWorktreePath } : {}), - env: projectScriptRuntimeEnv({ - project: { cwd: activeProject.workspaceRoot }, - worktreePath: activeThreadWorktreePath, - }), - }, - }); - }, [ - activeProject, - activeThreadId, - activeThreadRef, - activeThreadWorktreePath, - allocateTerminalId, - gitCwd, - openTerminal, - hasTerminalWriteAccess, - ]); const splitPanelTerminal = useCallback( (direction: "horizontal" | "vertical" = "horizontal") => { if ( @@ -6042,27 +6090,25 @@ export default function ChatView(props: ChatViewProps) { ); const requestCloseTerminal = useCallback( (terminalId: string) => { - if (!hasTerminalWriteAccess()) return; - const label = activeTerminalLabelsById.get(terminalId) ?? getTerminalLabel(terminalId); - void confirmTerminalClose([label]).then((confirmed) => { + if (!hasTerminalWriteAccess() || !activeThreadRef) return; + void confirmTerminalClose(activeThreadRef, [terminalId]).then((confirmed) => { if (confirmed && readEnvironmentScope(environmentId, AuthTerminalOperateScope)) { closeTerminal(terminalId); } }); }, - [hasTerminalWriteAccess, activeTerminalLabelsById, closeTerminal, environmentId], + [hasTerminalWriteAccess, activeThreadRef, closeTerminal, environmentId], ); const requestClosePanelTerminal = useCallback( (terminalId: string) => { - if (!hasTerminalWriteAccess()) return; - const label = activeTerminalLabelsById.get(terminalId) ?? getTerminalLabel(terminalId); - void confirmTerminalClose([label]).then((confirmed) => { + if (!hasTerminalWriteAccess() || !activeThreadRef) return; + void confirmTerminalClose(activeThreadRef, [terminalId]).then((confirmed) => { if (confirmed && readEnvironmentScope(environmentId, AuthTerminalOperateScope)) { closePanelTerminal(terminalId); } }); }, - [hasTerminalWriteAccess, activeTerminalLabelsById, closePanelTerminal, environmentId], + [hasTerminalWriteAccess, activeThreadRef, closePanelTerminal, environmentId], ); const activateRightPanelSurface = useCallback( (surface: RightPanelSurface) => { @@ -6206,26 +6252,19 @@ export default function ChatView(props: ChatViewProps) { finishClose(); return; } - const activeLabel = - activeTerminalLabelsById.get(surface.activeTerminalId) ?? - getTerminalLabel(surface.activeTerminalId); - const otherLabels = surface.terminalIds - .filter((terminalId) => terminalId !== surface.activeTerminalId) - .map( - (terminalId) => activeTerminalLabelsById.get(terminalId) ?? getTerminalLabel(terminalId), - ); - void confirmTerminalClose([activeLabel, ...otherLabels]).then((confirmed) => { + const otherTerminalIds = surface.terminalIds.filter( + (terminalId) => terminalId !== surface.activeTerminalId, + ); + void confirmTerminalClose(activeThreadRef, [ + surface.activeTerminalId, + ...otherTerminalIds, + ]).then((confirmed) => { if (confirmed) { finishClose(); } }); }, - [ - activeThreadRef, - activeTerminalLabelsById, - closeAfterAgentBrowserConfirmation, - finishRightPanelSurfaceClose, - ], + [activeThreadRef, closeAfterAgentBrowserConfirmation, finishRightPanelSurfaceClose], ); const closeOtherRightPanelSurfaces = useCallback( (surface: RightPanelSurface) => { @@ -11340,7 +11379,7 @@ export default function ChatView(props: ChatViewProps) { }; const panelToggleControlProps = { terminalAvailable: activeProject !== null, - terminalOpen: terminalUiState.terminalOpen, + terminalOpen: terminalVisible, terminalShortcutLabel: shortcutLabelForCommand(keybindings, "terminal.toggle"), threadPanelOpen, threadPanelPresentation, @@ -11874,7 +11913,7 @@ export default function ChatView(props: ChatViewProps) { resolvedTheme={resolvedTheme} settings={settings} keybindings={keybindings} - terminalOpen={Boolean(terminalUiState.terminalOpen)} + terminalOpen={terminalVisible} gitCwd={gitCwd} pullRequestProjectId={ supportsPullRequests ? (activeProject?.id ?? null) : null diff --git a/apps/web/src/components/ThreadTerminalDrawer.permissions.test.tsx b/apps/web/src/components/ThreadTerminalDrawer.permissions.test.tsx index 9b57677e9f768ebd807bbea75ad72c66317fe92c..e75b1b7f7c38b97df58b2a8bd3aa1caf4f476520 100644 --- a/apps/web/src/components/ThreadTerminalDrawer.permissions.test.tsx +++ b/apps/web/src/components/ThreadTerminalDrawer.permissions.test.tsx @@ -1,4 +1,5 @@ import { + AuthOrchestrationOperateScope, AuthTerminalOperateScope, EnvironmentId, ThreadId, @@ -9,23 +10,16 @@ import { nextTerminalAttachSeedState } from "@t3tools/client-runtime/state/termi import { AsyncResult } from "effect/reactivity"; import { act, create, type ReactTestRenderer } from "react-test-renderer"; import { afterEach, beforeEach, expect, it, vi } from "vite-plus/test"; -import type { - GhosttyTerminalSurface, - GhosttyTerminalSurfaceOptions, -} from "~/terminal/ghostty/surface"; +import type { TerminalSurface, TerminalSurfaceOptions } from "~/terminal/TerminalSurface"; const state = vi.hoisted(() => ({ allowed: true, + editorAllowed: true, listeners: new Set<() => void>(), resize: vi.fn(), otherCommand: vi.fn(), createSurface: - vi.fn< - ( - mount: HTMLElement, - options: GhosttyTerminalSurfaceOptions, - ) => Promise - >(), + vi.fn<(mount: HTMLElement, options: TerminalSurfaceOptions) => Promise>(), })); vi.mock("@effect/atom-react", () => ({ useAtomValue: () => null })); @@ -47,14 +41,20 @@ vi.mock("../state/use-atom-command", () => ({ vi.mock("../state/terminalSessions", () => ({ useAttachedTerminalSession: () => session, })); -vi.mock("~/terminal/ghostty/surface", () => ({ - GhosttyTerminalSurface: { create: state.createSurface }, +vi.mock("~/terminal/TerminalSurface", () => ({ + TerminalSurface: { create: state.createSurface }, })); vi.mock("../state/session", async () => { const { useSyncExternalStore } = await import("react"); - const readEnvironmentScope = (id: EnvironmentId | null, scope: AuthEnvironmentScope) => - id !== null && - (scope !== AuthTerminalOperateScope || id !== threadRef.environmentId || state.allowed); + const readEnvironmentScope = (id: EnvironmentId | null, scope: AuthEnvironmentScope) => { + const granted = + scope === AuthTerminalOperateScope + ? state.allowed + : scope === AuthOrchestrationOperateScope + ? state.editorAllowed + : true; + return id !== null && (id !== threadRef.environmentId || granted); + }; return { readEnvironmentScope, useEnvironmentScope: (id: EnvironmentId | null, scope: AuthEnvironmentScope) => @@ -79,6 +79,7 @@ let renderer: ReactTestRenderer | undefined; beforeEach(() => { state.allowed = true; + state.editorAllowed = true; state.listeners.clear(); state.resize.mockReset().mockResolvedValue(AsyncResult.success(undefined)); state.otherCommand.mockReset().mockResolvedValue(AsyncResult.success(undefined)); @@ -106,7 +107,7 @@ afterEach(async () => { vi.unstubAllGlobals(); }); -it("rechecks the target terminal grant when a retained surface callback reports a resize", async () => { +async function renderViewport(cwd = "/repo") { await act(async () => { renderer = create( ({ closest: () => null, contains: () => false }) }, ); }); +} + +it("rechecks the target terminal grant when a retained surface callback reports a resize", async () => { + await renderViewport(); expect(state.createSurface).toHaveBeenCalledOnce(); const onResize = state.createSurface.mock.calls[0]![1].onResize; if (!onResize) throw new Error("The terminal did not register its resize callback."); @@ -150,4 +155,21 @@ it("rechecks the target terminal grant when a retained surface callback reports environmentId: threadRef.environmentId, input: { threadId: threadRef.threadId, terminalId: "terminal-1", cols: 100, rows: 30 }, }); + + await act(async () => renderer!.unmount()); + renderer = undefined; + onResize(120, 40); + expect(state.resize).toHaveBeenCalledTimes(2); +}); + +it("keeps host paths outside cwd available while enforcing the live editor grant", async () => { + await renderViewport("/Users/clo/repo"); + const validatePath = state.createSurface.mock.calls[0]![1].validatePath!; + expect(validatePath(String.raw`C:\repo\src\file.ts`)).toBe(true); + expect(validatePath(String.raw`\\server\share\file.ts`)).toBe(true); + expect(validatePath("~/src/file.ts")).toBe(true); + state.editorAllowed = false; + expect(validatePath(String.raw`C:\repo\src\file.ts`)).toBe(false); + expect(validatePath(String.raw`\\server\share\file.ts`)).toBe(false); + expect(validatePath("~/src/file.ts")).toBe(false); }); diff --git a/apps/web/src/components/ThreadTerminalDrawer.test.ts b/apps/web/src/components/ThreadTerminalDrawer.test.ts index 66d0fb0ce71fe9408a16f7fe82da3632bff483c8..7d158a7f03dcc24d259b51ff3613e2a5ed61e465 100644 --- a/apps/web/src/components/ThreadTerminalDrawer.test.ts +++ b/apps/web/src/components/ThreadTerminalDrawer.test.ts @@ -8,18 +8,15 @@ import { } from "@t3tools/client-runtime/state/terminal"; import { - shouldClearTerminalSelectionAction, shouldHandleTerminalExit, terminalContextMenuItems, synchronizeTerminalOutput, terminalSelectionLineRange, - terminalSelectionMenuItems, terminalThemeFromApp, } from "./ThreadTerminalDrawer"; describe("terminal selection menus", () => { it("omits Add to chat when the terminal has no chat target", () => { - expect(terminalSelectionMenuItems().map(({ id }) => id)).toEqual(["add-to-chat", "copy"]); expect(terminalContextMenuItems({ hasSelection: true }).map(({ id }) => id)).toEqual([ "add-to-chat", "copy", @@ -28,9 +25,6 @@ describe("terminal selection menus", () => { "scroll-to-bottom", ]); - expect(terminalSelectionMenuItems({ canAddToChat: false }).map(({ id }) => id)).toEqual([ - "copy", - ]); expect( terminalContextMenuItems({ hasSelection: true, canAddToChat: false }).map(({ id }) => id), ).toEqual(["copy", "paste", "select-all", "scroll-to-bottom"]); @@ -59,34 +53,8 @@ describe("terminalThemeFromApp", () => { const root = { classList: { contains: () => false } }; const body = {}; const drawer = {}; - let canvasColor = "#000"; - const colors: Record = { - "#000": [0, 0, 0, 255], - "#fff": [255, 255, 255, 255], - "#ddd": [221, 221, 221, 255], - "#111": [17, 17, 17, 255], - }; + vi.stubGlobal("document", { documentElement: root, body, querySelector: () => drawer }); - vi.stubGlobal("document", { - documentElement: root, - body, - querySelector: () => drawer, - createElement: () => ({ - width: 0, - height: 0, - getContext: () => ({ - clearRect: () => undefined, - fillRect: () => undefined, - get fillStyle() { - return canvasColor; - }, - set fillStyle(value: string) { - canvasColor = value; - }, - getImageData: () => ({ data: colors[canvasColor] ?? [0, 0, 0, 0] }), - }), - }), - }); vi.stubGlobal("getComputedStyle", (element: object) => { const local = element === drawer; const values = local @@ -110,47 +78,13 @@ describe("terminalThemeFromApp", () => { const theme = terminalThemeFromApp(); - expect(theme.background).toEqual({ r: 0, g: 0, b: 0 }); - expect(theme.foreground).toEqual({ r: 255, g: 255, b: 255 }); - expect(theme.cursor).toEqual({ r: 221, g: 221, b: 221 }); + expect(theme.background).toBe("#000"); + expect(theme.foreground).toBe("#fff"); + expect(theme.cursor).toBe("#ddd"); }); }); describe("terminal selection actions", () => { - it("clears a pending or currently owned menu when the selection disappears", () => { - expect( - shouldClearTerminalSelectionAction({ - actionPending: true, - openMenuRequestId: null, - currentRequestId: 4, - }), - ).toBe(true); - expect( - shouldClearTerminalSelectionAction({ - actionPending: false, - openMenuRequestId: 4, - currentRequestId: 4, - }), - ).toBe(true); - }); - - it("does not let an old selection popup cancel its replacement right-click menu", () => { - expect( - shouldClearTerminalSelectionAction({ - actionPending: false, - openMenuRequestId: 3, - currentRequestId: 4, - }), - ).toBe(false); - expect( - shouldClearTerminalSelectionAction({ - actionPending: false, - openMenuRequestId: null, - currentRequestId: 4, - }), - ).toBe(false); - }); - it("uses Ghostty's physical screen range for visually wrapped selections", () => { expect( terminalSelectionLineRange({ diff --git a/apps/web/src/components/ThreadTerminalDrawer.tsx b/apps/web/src/components/ThreadTerminalDrawer.tsx index 4499704635358dfd5977cf7439beea2f263ad5a6..ffb3d5e3bb5d1f25cf174533da25d1f7f5b0a727 100644 --- a/apps/web/src/components/ThreadTerminalDrawer.tsx +++ b/apps/web/src/components/ThreadTerminalDrawer.tsx @@ -50,17 +50,18 @@ import { readTextFromClipboard, writeTextToClipboard } from "~/hooks/useCopyToCl import { cn } from "~/lib/utils"; import { type TerminalContextSelection } from "~/lib/terminalContext"; import { - observeSelectionActions, - resolveSelectionActionPosition, - type SelectionActionPoint, -} from "~/lib/selectionActions"; -import { - GhosttyTerminalSurface, - type GhosttyTerminalSurfaceOptions, -} from "~/terminal/ghostty/surface"; -import { type GhosttyColor, type GhosttyTheme } from "~/terminal/ghostty/core"; + TerminalSurface, + type TerminalSurfaceOptions, + type TerminalTheme, +} from "~/terminal/TerminalSurface"; import { useOpenInPreferredEditor } from "../editorPreferences"; -import { resolvePathLinkTarget } from "@t3tools/shared/fileLinks"; +import { + formatFilePathPosition, + parseFileUrlHref, + resolvePathLinkTarget, + splitFilePathPosition, +} from "@t3tools/shared/fileLinks"; +import { safeDecodeURIComponent } from "@t3tools/shared/markdownLinks"; import { isTerminalUrl } from "../terminal-links"; import { isDiffToggleShortcut, @@ -109,12 +110,12 @@ function clampDrawerHeight(height: number, maxHeight = maxDrawerHeight()): numbe return Math.min(Math.max(Math.round(safeHeight), MIN_DRAWER_HEIGHT), maxHeight); } -function writeSystemMessage(terminal: GhosttyTerminalSurface, message: string): void { +function writeSystemMessage(terminal: TerminalSurface, message: string): void { terminal.write(`\r\n[terminal] ${message}\r\n`); } export function writeTerminalOutputUpdate( - terminal: Pick, + terminal: Pick, update: TerminalOutputUpdate, ): void { if (update.type === "reset") { @@ -125,44 +126,16 @@ export function writeTerminalOutputUpdate( } export function synchronizeTerminalOutput( - terminal: Pick, + terminal: Pick, session: Pick, cursor: TerminalOutputCursor, ): TerminalOutputCursor { if (session.version === 0) return cursor; const update = readTerminalOutputUpdate(session.output, cursor); writeTerminalOutputUpdate(terminal, update); - terminal.clearSelection(); return update.cursor; } -function parseTerminalColor(value: string, fallback: GhosttyColor): GhosttyColor { - if (typeof document === "undefined") return fallback; - - const canvas = document.createElement("canvas"); - canvas.width = 1; - canvas.height = 1; - const context = canvas.getContext("2d", { willReadFrequently: true }); - if (!context) return fallback; - - context.clearRect(0, 0, 1, 1); - context.fillStyle = value; - context.fillRect(0, 0, 1, 1); - const [red, green, blue, alpha] = context.getImageData(0, 0, 1, 1).data; - if (alpha === 0) return fallback; - - return { - r: red ?? fallback.r, - g: green ?? fallback.g, - b: blue ?? fallback.b, - }; -} - -function hexToGhosttyColor(hex: string): GhosttyColor { - const value = Number.parseInt(hex.slice(1), 16); - return { r: (value >> 16) & 255, g: (value >> 8) & 255, b: value & 255 }; -} - // VS Code's default ANSI colors. const TERMINAL_PALETTES = { light: [ @@ -182,7 +155,7 @@ const TERMINAL_PALETTES = { "#bc05bc", "#0598bc", "#a5a5a5", - ].map(hexToGhosttyColor), + ], dark: [ "#000000", "#cd3131", @@ -200,7 +173,7 @@ const TERMINAL_PALETTES = { "#d670d6", "#29b8db", "#e5e5e5", - ].map(hexToGhosttyColor), + ], }; function runtimeEnvSignature(runtimeEnv: Record | undefined): string { @@ -235,7 +208,7 @@ function terminalFontOptions(family: string, size: number): { family?: string; s return trimmed.length > 0 ? { family: trimmed, size } : { size }; } -export function terminalThemeFromApp(mountElement?: HTMLElement | null): GhosttyTheme { +export function terminalThemeFromApp(mountElement?: HTMLElement | null): TerminalTheme { const drawerSurface = mountElement?.closest("[data-thread-terminal-drawer]") ?? document.querySelector("[data-thread-terminal-drawer]") ?? @@ -282,18 +255,9 @@ export function terminalThemeFromApp(mountElement?: HTMLElement | null): Ghostty isDark ? "rgba(180, 203, 255, 0.25)" : "rgba(37, 63, 99, 0.2)", ); return { - background: parseTerminalColor( - terminalBackground, - isDark ? { r: 14, g: 18, b: 24 } : { r: 255, g: 255, b: 255 }, - ), - foreground: parseTerminalColor( - terminalForeground, - isDark ? { r: 237, g: 241, b: 247 } : { r: 28, g: 33, b: 41 }, - ), - cursor: parseTerminalColor( - terminalCursor, - isDark ? { r: 180, g: 203, b: 255 } : { r: 38, g: 56, b: 78 }, - ), + background: terminalBackground, + foreground: terminalForeground, + cursor: terminalCursor, palette: TERMINAL_PALETTES[isDark ? "dark" : "light"], selectionBackground: terminalSelection, }; @@ -317,24 +281,6 @@ export type TerminalContextMenuAction = | "select-all" | "scroll-to-bottom"; -/** Post-selection popup: available selection actions, always enabled. */ -export function terminalSelectionMenuItems(options?: { - canAddToChat?: boolean; -}): ContextMenuItem<"add-to-chat" | "copy">[] { - return [ - ...(options?.canAddToChat === false - ? [] - : ([{ id: "add-to-chat", label: "Add to chat" }] satisfies ContextMenuItem<"add-to-chat">[])), - { id: "copy", label: "Copy" }, - ]; -} - -/** - * Right-click menu for selection, clipboard, and local scrollback actions. - * Paste is always offered: the browser - * (and Electron's default editing menu) can only paste into an editable - * element, so a canvas terminal never gets a usable entry from them. - */ export function terminalContextMenuItems(options: { hasSelection: boolean; canAddToChat?: boolean; @@ -342,31 +288,16 @@ export function terminalContextMenuItems(options: { }): ContextMenuItem[] { const { hasSelection, canAddToChat = true } = options; return [ - ...terminalSelectionMenuItems({ canAddToChat }).map((item) => ({ - ...item, - disabled: !hasSelection, - })), + ...(canAddToChat + ? [{ id: "add-to-chat" as const, label: "Add to chat", disabled: !hasSelection }] + : []), + { id: "copy", label: "Copy", disabled: !hasSelection }, { id: "paste", label: "Paste", ...(options.readOnly ? { disabled: true } : {}) }, { id: "select-all", label: "Select all" }, { id: "scroll-to-bottom", label: "Jump to latest" }, ]; } -/** - * An empty selection change may only cancel a selection-action flow that is - * still current: a pending popup timer, or an open popup whose request id has - * not been superseded. A popup already superseded by a right-click keeps its - * menu promise unsettled for a moment; treating it as active would cancel the - * newer context-menu flow instead. - */ -export function shouldClearTerminalSelectionAction(options: { - actionPending: boolean; - openMenuRequestId: number | null; - currentRequestId: number; -}): boolean { - return options.actionPending || options.openMenuRequestId === options.currentRequestId; -} - export function shouldHandleTerminalExit( current: TerminalSessionState["status"], synchronized: TerminalSessionState["status"], @@ -427,14 +358,13 @@ export function TerminalViewport({ keybindings, }: TerminalViewportProps) { const containerRef = useRef(null); - const terminalRef = useRef(null); + const terminalRef = useRef(null); const visibleRef = useRef(visible); const environmentId = threadRef.environmentId; const canOperateTerminal = useEnvironmentScope(environmentId, AuthTerminalOperateScope); const hasTerminalWriteAccess = useEffectEvent(() => readEnvironmentScope(environmentId, AuthTerminalOperateScope), ); - const canOpenHostEditor = useEnvironmentScope(environmentId, AuthOrchestrationOperateScope); const canActivateTerminalLink = useEffectEvent( (text: string) => isTerminalUrl(text) || readEnvironmentScope(environmentId, AuthOrchestrationOperateScope), @@ -455,11 +385,7 @@ export function TerminalViewport({ reportFailure: false, }); const hasHandledExitRef = useRef(false); - const selectionActionRequestIdRef = useRef(0); - // Holds the request id of the selection popup currently on screen, so a - // popup that was superseded (but whose menu promise has not settled yet) - // cannot be mistaken for the active flow. - const openSelectionMenuRequestIdRef = useRef(null); + const contextMenuRequestIdRef = useRef(0); const keybindingsRef = useRef(keybindings); const runtimeEnvKey = useMemo(() => runtimeEnvSignature(runtimeEnv), [runtimeEnv]); const handleSessionExited = useEffectEvent(() => { @@ -518,7 +444,7 @@ export function TerminalViewport({ const outputCursorRef = useRef(INITIAL_TERMINAL_OUTPUT_CURSOR); const synchronizedStatusRef = useRef("closed"); const synchronizeTerminalStatus = useEffectEvent( - (terminal: GhosttyTerminalSurface, status: TerminalSessionState["status"], version: number) => { + (terminal: TerminalSurface, status: TerminalSessionState["status"], version: number) => { const synchronized = synchronizedStatusRef.current; if (version > 0 && status === "running") { hasHandledExitRef.current = false; @@ -559,11 +485,6 @@ export function TerminalViewport({ if (terminalRef.current) terminalRef.current.input.readOnly = !canOperateTerminal; }, [canOperateTerminal]); - // A grant can change while the pointer remains over a link. - useEffect(() => { - terminalRef.current?.refreshLinkActivation(); - }, [canOpenHostEditor]); - useEffect(() => { if (resizeSessionGeneration === null) return; // The first fit can finish before authorization or the attach snapshot. @@ -590,32 +511,32 @@ export function TerminalViewport({ const localApi = readLocalApi(); let cancelled = false; let teardown: (() => void) | null = null; - let setupTerminal: GhosttyTerminalSurface | null = null; + let setupTerminal: TerminalSurface | null = null; let setupCleanups: Array<() => void> = []; - let selectionActions: ReturnType | null = null; const setup = async (): Promise<(() => void) | null> => { const setupFont = terminalFontRef.current; - const terminalOptions: GhosttyTerminalSurfaceOptions = { + const terminalOptions: TerminalSurfaceOptions = { theme: terminalThemeFromApp(mount), font: terminalFontOptions(setupFont.family, setupFont.size), get visible() { return visibleRef.current; }, - onData: (data) => handleData(data), - onResize: (cols, rows) => void resizeTerminal(cols, rows), - onSelectionChange: () => handleSelectionChange(), + onData: (data) => { + if (!cancelled) handleData(data); + }, + onResize: (cols, rows) => { + if (!cancelled) void resizeTerminal(cols, rows); + }, beforeKey: (event) => handleBeforeKey(event), - onLinkActivate: (text, event) => handleLinkActivate(text, event), + onLinkActivate: (text) => handleLinkActivate(text), canActivateLink: (text) => canActivateTerminalLink(text), - // The surface listens from construction, so a right-click can land - // while `create` is still awaiting WASM — before the handler below it - // exists. The ref is only assigned once that setup has run. + validatePath: (path) => canActivateTerminalLink(resolvePathLinkTarget(path, cwd)), onContextMenu: (event) => { if (terminalRef.current) void showTerminalContextMenu(event); }, }; - const terminal = await GhosttyTerminalSurface.create(mount, terminalOptions); + const terminal = await TerminalSurface.create(mount, terminalOptions); if (cancelled) { terminal.dispose(); return null; @@ -660,23 +581,7 @@ export function TerminalViewport({ terminal.focus(); } - const dismissSelectionAction = (supersede = false) => { - const ownsMenu = - openSelectionMenuRequestIdRef.current === selectionActionRequestIdRef.current; - // Passive cancellation must not invalidate a newer right-click flow. - if (supersede || ownsMenu) selectionActionRequestIdRef.current += 1; - if (ownsMenu) void localApi?.contextMenu.close(); - }; - const clearSelectionAction = () => { - selectionActions?.cancel(); - dismissSelectionAction(true); - }; - setupCleanups.push(clearSelectionAction); - - const readSelectionAction = ( - pointer: SelectionActionPoint | null = null, - ): { - position: { x: number; y: number }; + const readSelectionAction = (): { clipboardText: string; selection: TerminalContextSelection; } | null => { @@ -692,15 +597,7 @@ export function TerminalViewport({ return null; } const { lineStart, lineEnd } = terminalSelectionLineRange(selectionPosition); - const bounds = mountElement.getBoundingClientRect(); - const position = resolveSelectionActionPosition({ - bounds, - selectionRect: activeTerminal.getSelectionEndClientRect(), - pointer, - viewport: { width: window.innerWidth, height: window.innerHeight }, - }); return { - position, clipboardText: selectionText, selection: { terminalId, @@ -718,10 +615,9 @@ export function TerminalViewport({ terminalRef.current?.focus(); }; - // A selection-action flow that was superseded while its async work ran - // must go silent: no error message, no focus steal. + // A superseded menu must not report errors or reclaim focus. const reportIfCurrent = (requestId: number, error: unknown, fallback: string) => { - if (requestId !== selectionActionRequestIdRef.current) return; + if (requestId !== contextMenuRequestIdRef.current) return; const activeTerminal = terminalRef.current; if (activeTerminal) { writeSystemMessage(activeTerminal, error instanceof Error ? error.message : fallback); @@ -729,7 +625,7 @@ export function TerminalViewport({ }; const focusIfCurrent = (requestId: number) => { - if (requestId === selectionActionRequestIdRef.current) { + if (requestId === contextMenuRequestIdRef.current) { terminalRef.current?.focus(); } }; @@ -748,13 +644,9 @@ export function TerminalViewport({ const activeTerminal = terminalRef.current; if (!activeTerminal) return; try { - // The surface owns the read so it can claim the paste race before it - // starts: a paste shortcut fired while the menu read is in flight - // supersedes this paste instead of landing alongside it. - await activeTerminal.pasteFromClipboard( - () => readTextFromClipboard("terminal input"), - () => requestId === selectionActionRequestIdRef.current, - ); + const text = await readTextFromClipboard("terminal input"); + if (requestId === contextMenuRequestIdRef.current && hasTerminalWriteAccess()) + activeTerminal.paste(text); } catch (error) { reportIfCurrent(requestId, error, "Unable to read the clipboard"); return; @@ -764,14 +656,9 @@ export function TerminalViewport({ const showTerminalContextMenu = async (event: MouseEvent) => { if (!localApi || !terminalRef.current) return; - // Own the gesture before anything async: leaving the default alive lets - // the browser (or Electron's editing menu) answer with a Paste entry - // that is permanently disabled over the terminal canvas. event.preventDefault(); - // A right-click supersedes a selection popup that is pending or open. - clearSelectionAction(); + const requestId = ++contextMenuRequestIdRef.current; const selectionAction = readSelectionAction(); - const requestId = selectionActionRequestIdRef.current; let clicked: TerminalContextMenuAction | null; try { clicked = await localApi.contextMenu.show( @@ -787,7 +674,7 @@ export function TerminalViewport({ focusIfCurrent(requestId); return; } - if (requestId !== selectionActionRequestIdRef.current || clicked === null) { + if (requestId !== contextMenuRequestIdRef.current || clicked === null) { return; } switch (clicked) { @@ -813,44 +700,6 @@ export function TerminalViewport({ } }; - const showSelectionAction = async (pointer: SelectionActionPoint | null) => { - if (!localApi) { - clearSelectionAction(); - return; - } - if (openSelectionMenuRequestIdRef.current === selectionActionRequestIdRef.current) { - return; - } - const nextAction = readSelectionAction(pointer); - if (!nextAction) { - clearSelectionAction(); - return; - } - const requestId = ++selectionActionRequestIdRef.current; - openSelectionMenuRequestIdRef.current = requestId; - const clicked = await localApi.contextMenu - .show( - terminalSelectionMenuItems({ canAddToChat: canAddSelectionToChat() }), - nextAction.position, - ) - .finally(() => { - if (openSelectionMenuRequestIdRef.current === requestId) { - openSelectionMenuRequestIdRef.current = null; - } - }); - if (requestId !== selectionActionRequestIdRef.current || clicked === null) { - return; - } - switch (clicked) { - case "add-to-chat": - if (canAddSelectionToChat()) addSelectionToChat(nextAction.selection); - return; - case "copy": - await copySelection(nextAction.clipboardText, requestId); - return; - } - }; - const sendTerminalInput = async (data: string, fallbackError: string) => { if (!hasTerminalWriteAccess()) return; const activeTerminal = terminalRef.current; @@ -904,7 +753,7 @@ export function TerminalViewport({ return false; } - function handleLinkActivate(text: string, event: MouseEvent): void { + function handleLinkActivate(text: string): void { if (!canActivateTerminalLink(text)) return; const latestTerminal = terminalRef.current; if (!latestTerminal) return; @@ -930,7 +779,7 @@ export function TerminalViewport({ threadRef, openPreview, fallbackToBrowser, - forceBrowser: event.metaKey || event.ctrlKey, + forceBrowser: false, }).catch((error: unknown) => { toastManager.add( stackedThreadToast({ @@ -942,7 +791,13 @@ export function TerminalViewport({ }); return; } - const target = resolvePathLinkTarget(text, cwd); + const fileUrl = parseFileUrlHref(text); + const path = fileUrl + ? formatFilePathPosition( + splitFilePathPosition(safeDecodeURIComponent(fileUrl.path), fileUrl.hash), + ) + : text; + const target = resolvePathLinkTarget(path, cwd); void (async () => { const result = await openTerminalPath(target); if (result._tag === "Success" || isAtomCommandInterrupted(result)) { @@ -969,28 +824,6 @@ export function TerminalViewport({ })(); } - function handleSelectionChange(): void { - if (terminalRef.current?.hasSelection()) { - return; - } - const shouldClear = shouldClearTerminalSelectionAction({ - actionPending: selectionActions?.pending ?? false, - openMenuRequestId: openSelectionMenuRequestIdRef.current, - currentRequestId: selectionActionRequestIdRef.current, - }); - if (!shouldClear) return; - clearSelectionAction(); - } - - selectionActions = observeSelectionActions({ - element: mount, - onSelection: (pointer) => { - void showSelectionAction(pointer); - }, - onDismiss: (reason) => dismissSelectionAction(reason === "interaction"), - }); - setupCleanups.push(() => selectionActions?.dispose()); - const themeObserver = new MutationObserver(() => { const activeTerminal = terminalRef.current; if (!activeTerminal) return; @@ -1017,6 +850,7 @@ export function TerminalViewport({ setupCleanups = []; setupTerminal = null; return () => { + contextMenuRequestIdRef.current += 1; for (const cleanup of cleanups.toReversed()) cleanup(); if (terminalRef.current === terminal) terminalRef.current = null; terminal.dispose(); @@ -1109,6 +943,7 @@ export function TerminalViewport({
); @@ -1419,14 +1254,13 @@ export default function ThreadTerminalDrawer({ const confirmCloseTerminal = useCallback( (terminalId: string) => { if (!canOperateTerminal) return; - const label = terminalLabelById.get(terminalId) ?? getTerminalLabel(terminalId); - void confirmTerminalClose([label]).then((confirmed) => { + void confirmTerminalClose(threadRef, [terminalId]).then((confirmed) => { if (confirmed && readEnvironmentScope(threadRef.environmentId, AuthTerminalOperateScope)) { onCloseTerminal(terminalId); } }); }, - [canOperateTerminal, onCloseTerminal, terminalLabelById, threadRef.environmentId], + [canOperateTerminal, onCloseTerminal, threadRef], ); useEffect(() => { diff --git a/apps/web/src/components/chat/PanelLayoutControls.tsx b/apps/web/src/components/chat/PanelLayoutControls.tsx index 5809782a7100aa471dba0f850dac8c91013da84c..b081646ad4dea66d68c86abac9cfb2d1e1195245 100644 --- a/apps/web/src/components/chat/PanelLayoutControls.tsx +++ b/apps/web/src/components/chat/PanelLayoutControls.tsx @@ -90,7 +90,7 @@ export const PanelLayoutControls = memo(function PanelLayoutControls({ className="shrink-0 [-webkit-app-region:no-drag]" pressed={terminalOpen} onPressedChange={onToggleTerminal} - aria-label="Toggle terminal drawer" + aria-label="Toggle terminal" variant="ghost" size="sm" disabled={!terminalAvailable} @@ -100,8 +100,8 @@ export const PanelLayoutControls = memo(function PanelLayoutControls({ {terminalAvailable - ? `Toggle terminal drawer${terminalShortcutLabel ? ` (${terminalShortcutLabel})` : ""}` - : "Terminal drawer is unavailable"} + ? `Toggle terminal${terminalShortcutLabel ? ` (${terminalShortcutLabel})` : ""}` + : "Terminal is unavailable"} ) : null} diff --git a/apps/web/src/components/settings/ProviderAuthTerminal.test.tsx b/apps/web/src/components/settings/ProviderAuthTerminal.test.tsx new file mode 100644 index 0000000000000000000000000000000000000000..789e4bca7510f16d56d3eec6e4f1d719c35042fc --- /dev/null +++ b/apps/web/src/components/settings/ProviderAuthTerminal.test.tsx @@ -0,0 +1,87 @@ +import { act, create, type ReactTestRenderer } from "react-test-renderer"; +import { afterEach, beforeEach, expect, it, vi } from "vite-plus/test"; + +const state = vi.hoisted(() => ({ + create: vi.fn(), + write: vi.fn(), + resetAndWrite: vi.fn(), + dispose: vi.fn(), +})); +vi.mock("../../terminal/TerminalSurface", () => ({ TerminalSurface: { create: state.create } })); +vi.mock("../ThreadTerminalDrawer", () => ({ terminalThemeFromApp: () => ({}) })); + +import ProviderAuthTerminal from "./ProviderAuthTerminal"; + +let renderer: ReactTestRenderer | undefined; + +beforeEach(() => { + vi.stubGlobal("IS_REACT_ACT_ENVIRONMENT", true); + state.create.mockReset(); + state.write.mockReset(); + state.resetAndWrite.mockReset(); + state.dispose.mockReset(); +}); + +afterEach(async () => { + await act(async () => renderer?.unmount()); + renderer = undefined; + vi.unstubAllGlobals(); +}); + +it("replays the latest sign-in output after async setup, then appends live deltas", async () => { + let finish: (() => void) | undefined; + state.create.mockReturnValue( + new Promise((resolve) => { + finish = () => resolve(state); + }), + ); + const onResponse = vi.fn(); + await act(async () => { + renderer = create( + , + { + createNodeMock: () => ({}), + }, + ); + }); + await act(async () => { + renderer!.update( + , + ); + }); + await act(async () => finish!()); + expect(state.resetAndWrite).toHaveBeenCalledExactlyOnceWith("old🌱"); + expect(state.write).not.toHaveBeenCalled(); + await act(async () => { + renderer!.update( + , + ); + }); + expect(state.write).toHaveBeenCalledExactlyOnceWith("next"); + await act(async () => { + renderer!.update( + , + ); + }); + expect(state.resetAndWrite).toHaveBeenLastCalledWith("fresh"); +}); + +it("disposes a terminal whose setup completes after sign-in closes", async () => { + let finish: (() => void) | undefined; + state.create.mockReturnValue( + new Promise((resolve) => { + finish = () => resolve(state); + }), + ); + await act(async () => { + renderer = create(, { + createNodeMock: () => ({}), + }); + }); + await act(async () => renderer!.unmount()); + renderer = undefined; + await act(async () => finish!()); + expect(state.dispose).toHaveBeenCalledOnce(); + expect(state.resetAndWrite).not.toHaveBeenCalled(); + expect(state.write).not.toHaveBeenCalled(); +}); diff --git a/apps/web/src/components/settings/ProviderAuthTerminal.tsx b/apps/web/src/components/settings/ProviderAuthTerminal.tsx index 09cc245e32a0c41922519144822a6ad751ddf341..61920e101748b6e7cdb03656f04c713473238d65 100644 --- a/apps/web/src/components/settings/ProviderAuthTerminal.tsx +++ b/apps/web/src/components/settings/ProviderAuthTerminal.tsx @@ -1,6 +1,6 @@ import type { ProviderAuthResponse } from "@t3tools/contracts"; import { useEffect, useRef, useState } from "react"; -import { GhosttyTerminalSurface } from "../../terminal/ghostty/surface"; +import { TerminalSurface } from "../../terminal/TerminalSurface"; import { ensureLocalApi } from "../../localApi"; import { terminalThemeFromApp } from "../ThreadTerminalDrawer"; @@ -15,7 +15,7 @@ export default function ProviderAuthTerminal({ readonly onResponse: (response: Extract) => void; }) { const mount = useRef(null); - const surface = useRef(null); + const surface = useRef(null); const latest = useRef({ output, offset: outputOffset ?? output.length, onResponse }); const written = useRef(0); const [error, setError] = useState(null); @@ -32,13 +32,12 @@ export default function ProviderAuthTerminal({ const element = mount.current; if (!element) return; let disposed = false; - void GhosttyTerminalSurface.create(element, { + void TerminalSurface.create(element, { theme: terminalThemeFromApp(element), font: { size: 13 }, onData: (data) => latest.current.onResponse({ type: "terminal", data }), onResize: (cols, rows) => latest.current.onResponse({ type: "terminal", data: "", size: { cols, rows } }), - onSelectionChange: () => {}, beforeKey: (event) => event.key !== "Tab", onLinkActivate: (url) => { if (/^https?:\/\//i.test(url)) @@ -53,7 +52,7 @@ export default function ProviderAuthTerminal({ return; } surface.current = terminal; - terminal.write(latest.current.output); + terminal.resetAndWrite(latest.current.output); written.current = latest.current.offset; }) .catch(() => setError("Could not load the sign-in terminal. Cancel and retry sign-in.")); diff --git a/apps/web/src/components/settings/SettingsFontPreviews.tsx b/apps/web/src/components/settings/SettingsFontPreviews.tsx index 4715583e4005c3453bdc3164efb5001a12d59e21..08f6ffbc0a3a4c6c5734514deedc66776a2a7f00 100644 --- a/apps/web/src/components/settings/SettingsFontPreviews.tsx +++ b/apps/web/src/components/settings/SettingsFontPreviews.tsx @@ -7,13 +7,7 @@ import { useTheme } from "../../hooks/useTheme"; import { DISCONNECTED_COMPOSER_PLACEHOLDER } from "../../composerPlaceholder"; import { resolveDiffThemeName, type DiffThemeName } from "../../lib/diffRendering"; import { PREFERRED_HIGHLIGHTER } from "../../lib/syntaxHighlighting"; -import { GhosttyTerminalSurface } from "~/terminal/ghostty/surface"; - -// The font previews are the real surfaces, not lookalikes: the composer's -// Tiptap editor, the diff panel's file diff, and the Ghostty canvas -// renderer. Each already consumes the appearance font tokens (or, for the -// terminal, the settings passed down as props), so what the row shows is -// exactly what the app renders. +import { TerminalSurface } from "~/terminal/TerminalSurface"; const EMPTY_SKILLS: ReadonlyArray = []; @@ -22,7 +16,7 @@ const EMPTY_SKILLS: ReadonlyArray = []; // text and pills exactly as the real composer draws them. const PROMPT_PREVIEW_TEXT = "Use $frontend-design to fix the flaky test in " + - "[surface.test.ts](apps/web/src/terminal/ghostty/surface.test.ts) and align the header with " + + "[TerminalSurface.test.ts](apps/web/src/terminal/TerminalSurface.test.ts) and align the header with " + "[SettingsPanels.tsx](apps/web/src/components/settings/SettingsPanels.tsx) before shipping."; function noop() {} @@ -174,14 +168,12 @@ function previewTerminalFont(family: string, size: number): { family?: string; s } /** - * The real Ghostty canvas renderer against a local echo loop instead of a - * PTY: keys print, Enter starts a new prompt line, Backspace erases. That - * exercises the same glyph atlas, cell metrics, and monospace gate the - * terminal drawer uses. + * The DOM terminal against a local echo loop: keys print, Enter starts a new + * prompt line, and Backspace erases. */ export function TerminalFontPreview({ family, size }: { family: string; size: number }) { const mountRef = useRef(null); - const surfaceRef = useRef(null); + const surfaceRef = useRef(null); const fontRef = useRef({ family, size }); const { theme, resolvedTheme } = useTheme(); @@ -234,12 +226,11 @@ export function TerminalFontPreview({ family, size }: { family: string; size: nu lineLength += printable.length; }; - void GhosttyTerminalSurface.create(mount, { + void TerminalSurface.create(mount, { theme: terminalThemeFromApp(mount), font: previewTerminalFont(fontRef.current.family, fontRef.current.size), onData: echo, onResize: noop, - onSelectionChange: noop, // Tab keeps walking the settings page instead of feeding the echo loop. beforeKey: (event) => event.key !== "Tab", onLinkActivate: noop, diff --git a/apps/web/src/components/settings/SettingsPanels.tsx b/apps/web/src/components/settings/SettingsPanels.tsx index b6ad7c6e6f7452a4ca3ee168dd5c1b773b178b72..370810d8d19ac0cdd33cbe06a03bb1777051f172 100644 --- a/apps/web/src/components/settings/SettingsPanels.tsx +++ b/apps/web/src/components/settings/SettingsPanels.tsx @@ -1,4 +1,5 @@ import { performDesktopUpdate } from "../desktopUpdate.actions"; +import { useTerminalPlacement } from "~/hooks/useTerminalPlacement"; import { SettingsGroup } from "./SettingsGroup"; import { useScopedSettingsWriteAllowed } from "./useScopedSettings"; import { Spinner } from "~/components/ui/spinner"; @@ -2123,6 +2124,7 @@ function LegacyFeaturesSection() { } export function GeneralSettingsPanel() { + const [terminalPlacement, setTerminalPlacement] = useTerminalPlacement(); const modifierLabel = isMacPlatform(navigator.platform) ? "⌘" : "Ctrl"; const sendShortcutOptions = [ { value: "enter", label: "Enter" }, @@ -2660,6 +2662,39 @@ export function GeneralSettingsPanel() { } /> + setTerminalPlacement("right")} + /> + ) : null + } + description="Where new terminal sessions open. Existing sessions stay in their panel." + control={ + + } + /> + (); + beforeEach(() => { + preferences.clear(); + vi.stubGlobal("window", { + localStorage: { getItem: (key: string) => preferences.get(key) ?? null }, + }); useTerminalUiStateStore.setState({ terminalUiStateByThreadKey: {}, suppressedTerminalIdsByThreadKey: {}, @@ -17,7 +23,26 @@ beforeEach(() => { useRightPanelStore.setState({ byThreadKey: {} }); }); -it("reveals a server-created setup terminal without adding a default shell", () => { +afterEach(() => vi.unstubAllGlobals()); + +it("reveals a server-created setup terminal on the right without adding a default shell", () => { + revealThreadTerminal(threadRef, "setup-install"); + expect( + selectThreadRightPanelState(useRightPanelStore.getState().byThreadKey, threadRef), + ).toMatchObject({ + isOpen: true, + surfaces: [{ terminalIds: ["setup-install"], activeTerminalId: "setup-install" }], + }); + expect( + selectThreadTerminalUiState( + useTerminalUiStateStore.getState().terminalUiStateByThreadKey, + threadRef, + ).terminalIds, + ).toEqual([]); +}); + +it("honors an explicit bottom preference for an unowned terminal", () => { + preferences.set("t3code.terminalPlacement", '"bottom"'); revealThreadTerminal(threadRef, "setup-install"); expect( selectThreadTerminalUiState( @@ -27,8 +52,24 @@ it("reveals a server-created setup terminal without adding a default shell", () ).toMatchObject({ terminalOpen: true, terminalIds: ["setup-install"], - activeTerminalId: "setup-install", }); + expect( + selectThreadRightPanelState(useRightPanelStore.getState().byThreadKey, threadRef).surfaces, + ).toEqual([]); +}); + +it("preserves an existing drawer session when the default becomes right", () => { + useTerminalUiStateStore.getState().ensureTerminal(threadRef, "setup-install", { open: false }); + revealThreadTerminal(threadRef, "setup-install"); + expect( + selectThreadTerminalUiState( + useTerminalUiStateStore.getState().terminalUiStateByThreadKey, + threadRef, + ), + ).toMatchObject({ terminalOpen: true, terminalIds: ["setup-install"] }); + expect( + selectThreadRightPanelState(useRightPanelStore.getState().byThreadKey, threadRef).surfaces, + ).toEqual([]); }); it("reopens the existing panel and selects a running terminal in its split", () => { @@ -64,9 +105,31 @@ it("reopens the existing panel and selects a running terminal in its split", () }); it("reveals terminals in their own environment without changing another environment's drawer", () => { + useTerminalUiStateStore.getState().ensureTerminal(threadRef, "default", { open: false }); revealThreadTerminal(threadRef, "default"); revealThreadTerminal(remoteRef, "setup-install"); const state = useTerminalUiStateStore.getState().terminalUiStateByThreadKey; expect(selectThreadTerminalUiState(state, threadRef).terminalIds).toEqual(["default"]); - expect(selectThreadTerminalUiState(state, remoteRef).terminalIds).toEqual(["setup-install"]); + expect(selectThreadTerminalUiState(state, remoteRef).terminalIds).toEqual([]); + expect( + selectThreadRightPanelState(useRightPanelStore.getState().byThreadKey, remoteRef).surfaces, + ).toMatchObject([{ terminalIds: ["setup-install"] }]); +}); + +it("adds and activates a terminal peer tab in the existing browser sidebar without duplicating it", () => { + const panels = useRightPanelStore.getState(); + panels.openBrowser(threadRef, "existing-browser"); + revealThreadTerminal(threadRef, "setup-install"); + revealThreadTerminal(threadRef, "setup-install"); + const sidebar = selectThreadRightPanelState(useRightPanelStore.getState().byThreadKey, threadRef); + expect(sidebar.isOpen).toBe(true); + expect(sidebar.activeSurfaceId).toBe("terminal:setup-install"); + expect(sidebar.surfaces.map((surface) => surface.kind)).toEqual(["preview", "terminal"]); + expect(sidebar.surfaces[0]).toMatchObject({ resourceId: "existing-browser" }); + expect( + selectThreadTerminalUiState( + useTerminalUiStateStore.getState().terminalUiStateByThreadKey, + threadRef, + ).terminalIds, + ).toEqual([]); }); diff --git a/apps/web/src/lib/revealThreadTerminal.ts b/apps/web/src/lib/revealThreadTerminal.ts index c6ce017000569633736d1f2c6ff97c0ab2334b21..e8b42c0a5f407c92927bbe8a3ae726e4eb4a6a10 100644 --- a/apps/web/src/lib/revealThreadTerminal.ts +++ b/apps/web/src/lib/revealThreadTerminal.ts @@ -1,7 +1,8 @@ +import { getTerminalPlacement } from "~/hooks/useTerminalPlacement"; import type { ScopedThreadRef } from "@t3tools/contracts"; import { selectThreadRightPanelState, useRightPanelStore } from "../rightPanelStore"; -import { useTerminalUiStateStore } from "../terminalUiStateStore"; +import { selectThreadTerminalUiState, useTerminalUiStateStore } from "../terminalUiStateStore"; /** Reveal an existing terminal in the panel that owns it, without opening another PTY. */ export function revealThreadTerminal(threadRef: ScopedThreadRef, terminalId: string) { @@ -14,7 +15,13 @@ export function revealThreadTerminal(threadRef: ScopedThreadRef, terminalId: str panels.activateSurface(threadRef, surface.id); return; } - useTerminalUiStateStore.getState().ensureTerminal(threadRef, terminalId, { + const terminalUi = useTerminalUiStateStore.getState(); + const drawer = selectThreadTerminalUiState(terminalUi.terminalUiStateByThreadKey, threadRef); + if (!drawer.terminalIds.includes(terminalId) && getTerminalPlacement() === "right") { + panels.openTerminal(threadRef, terminalId); + return; + } + terminalUi.ensureTerminal(threadRef, terminalId, { open: true, active: true, }); diff --git a/apps/web/src/lib/terminalCloseConfirm.test.ts b/apps/web/src/lib/terminalCloseConfirm.test.ts index 58f523958996416178f9502adaa20b1af5fadad4..41ad49a5dc1d4f1b73a25054e8e5b16f6712e826 100644 --- a/apps/web/src/lib/terminalCloseConfirm.test.ts +++ b/apps/web/src/lib/terminalCloseConfirm.test.ts @@ -1,65 +1,145 @@ +import { EnvironmentId, ThreadId, type TerminalSummary } from "@t3tools/contracts"; import { beforeEach, describe, expect, it, vi } from "vite-plus/test"; -const { confirmMock, readLocalApiMock } = vi.hoisted(() => { - const confirmMock = vi.fn<(message: string, options?: unknown) => Promise>(); - const readLocalApiMock = vi.fn< - () => - | { - dialogs: { confirm: (message: string, options?: unknown) => Promise }; - } - | undefined - >(); - return { confirmMock, readLocalApiMock }; -}); +const { confirmMock, readLocalApiMock, metadataSnapshotMock, executeAtomQueryMock, registry } = + vi.hoisted(() => ({ + confirmMock: vi.fn<(message: string, options?: unknown) => Promise>(), + readLocalApiMock: vi.fn(), + metadataSnapshotMock: vi.fn(() => "metadata-snapshot"), + executeAtomQueryMock: vi.fn(), + registry: {}, + })); -vi.mock("~/localApi", () => ({ - readLocalApi: () => readLocalApiMock(), +vi.mock("~/localApi", () => ({ readLocalApi: readLocalApiMock })); +vi.mock("~/rpc/atomRegistry", () => ({ appAtomRegistry: registry })); +vi.mock("~/state/terminal", () => ({ + terminalEnvironment: { metadataSnapshot: metadataSnapshotMock }, +})); +vi.mock("@t3tools/client-runtime/state/runtime", () => ({ + executeAtomQuery: executeAtomQueryMock, })); import { confirmTerminalClose, isTerminalCloseConfirmPending } from "./terminalCloseConfirm"; +const threadRef = { + environmentId: EnvironmentId.make("secondary"), + threadId: ThreadId.make("thread"), +}; +const terminal: TerminalSummary = { + threadId: threadRef.threadId, + terminalId: "term-1", + cwd: "/repo", + worktreePath: null, + status: "running", + pid: 123, + exitCode: null, + exitSignal: null, + hasRunningSubprocess: true, + label: "Terminal 1", + updatedAt: "2026-10-15T00:00:00.000Z", +}; + +function metadata(terminals: ReadonlyArray) { + return { _tag: "Success", value: terminals }; +} + describe("terminal close confirmation", () => { beforeEach(() => { - confirmMock.mockReset(); - readLocalApiMock.mockReset(); + vi.clearAllMocks(); readLocalApiMock.mockReturnValue({ dialogs: { confirm: confirmMock } }); - }); - - it("tracks pending state until the confirmation settles", async () => { - let settle: (value: boolean) => void = () => undefined; - confirmMock.mockImplementation(() => new Promise((resolve) => (settle = resolve))); - - expect(isTerminalCloseConfirmPending()).toBe(false); - - const confirmation = confirmTerminalClose(["Terminal 1"]); - expect(isTerminalCloseConfirmPending()).toBe(true); - - settle(true); - await expect(confirmation).resolves.toBe(true); - expect(isTerminalCloseConfirmPending()).toBe(false); - }); - - it("clears pending state and resolves false when the dialog rejects", async () => { - let reject: (reason?: unknown) => void = () => undefined; - confirmMock.mockImplementation( - () => - new Promise((_resolve, rejectPromise) => { - reject = rejectPromise; - }), - ); - - const confirmation = confirmTerminalClose(["Terminal 1"]); - expect(isTerminalCloseConfirmPending()).toBe(true); - - reject(new Error("dialog failed")); - await expect(confirmation).resolves.toBe(false); - expect(isTerminalCloseConfirmPending()).toBe(false); - }); - - it("names every terminal in a multi-terminal close", async () => { + executeAtomQueryMock.mockResolvedValue(metadata([terminal])); confirmMock.mockResolvedValue(true); + }); - await expect(confirmTerminalClose(["Terminal 1", "Development server"])).resolves.toBe(true); + it("closes an idle shell without a dialog or a pending confirmation after the lookup", async () => { + executeAtomQueryMock.mockResolvedValue( + metadata([{ ...terminal, hasRunningSubprocess: false }]), + ); + + await expect(confirmTerminalClose(threadRef, ["term-1"])).resolves.toBe(true); + + expect(confirmMock).not.toHaveBeenCalled(); + expect(isTerminalCloseConfirmPending()).toBe(false); + }); + + it("closes an exited terminal without prompting", async () => { + executeAtomQueryMock.mockResolvedValue( + metadata([{ ...terminal, status: "exited", pid: null, hasRunningSubprocess: false }]), + ); + + await expect(confirmTerminalClose(threadRef, ["term-1"])).resolves.toBe(true); + expect(confirmMock).not.toHaveBeenCalled(); + }); + + it("refreshes the exact environment before each close so a newly started program prompts", async () => { + executeAtomQueryMock + .mockResolvedValueOnce(metadata([{ ...terminal, hasRunningSubprocess: false }])) + .mockResolvedValueOnce(metadata([terminal])); + + await expect(confirmTerminalClose(threadRef, ["term-1"])).resolves.toBe(true); + expect(confirmMock).not.toHaveBeenCalled(); + confirmMock.mockResolvedValueOnce(false); + await expect(confirmTerminalClose(threadRef, ["term-1"])).resolves.toBe(false); + + expect(metadataSnapshotMock).toHaveBeenNthCalledWith(1, { + environmentId: threadRef.environmentId, + input: null, + }); + expect(executeAtomQueryMock).toHaveBeenNthCalledWith(2, registry, "metadata-snapshot", { + refresh: true, + reportFailure: false, + signal: expect.any(AbortSignal), + }); + expect(confirmMock).toHaveBeenCalledExactlyOnceWith( + 'Close terminal "Terminal 1"?\nThis stops the running process and clears its history.', + { variant: "destructive" }, + ); + }); + + it("does not let another thread's idle terminal suppress the warning", async () => { + executeAtomQueryMock.mockResolvedValue( + metadata([{ ...terminal, threadId: "other-thread", hasRunningSubprocess: false }]), + ); + + await confirmTerminalClose(threadRef, ["term-1"]); + expect(confirmMock).toHaveBeenCalledOnce(); + }); + + it.each([metadata([]), { _tag: "Failure" }])( + "warns when terminal activity is unknown: %j", + async (result) => { + executeAtomQueryMock.mockResolvedValue(result); + confirmMock.mockResolvedValue(false); + + await expect(confirmTerminalClose(threadRef, ["term-1"])).resolves.toBe(false); + expect(confirmMock).toHaveBeenCalledOnce(); + }, + ); + + it("closes a split surface directly only when every terminal is known idle", async () => { + executeAtomQueryMock.mockResolvedValue( + metadata([ + { ...terminal, hasRunningSubprocess: false }, + { ...terminal, terminalId: "term-2", hasRunningSubprocess: false }, + ]), + ); + + await expect(confirmTerminalClose(threadRef, ["term-1", "term-2"])).resolves.toBe(true); + expect(confirmMock).not.toHaveBeenCalled(); + + await confirmTerminalClose(threadRef, ["term-1", "term-3"]); + expect(confirmMock).toHaveBeenCalledOnce(); + }); + + it("names every terminal when a split surface includes a running program", async () => { + executeAtomQueryMock.mockResolvedValue( + metadata([ + { ...terminal, hasRunningSubprocess: false }, + { ...terminal, terminalId: "term-2", label: "Development server" }, + ]), + ); + + await expect(confirmTerminalClose(threadRef, ["term-1", "term-2"])).resolves.toBe(true); expect(confirmMock).toHaveBeenCalledWith( [ "Close 2 terminals?", @@ -69,10 +149,43 @@ describe("terminal close confirmation", () => { ); }); + it("tracks pending state through the activity lookup and until the confirmation settles", async () => { + let completeLookup: (value: ReturnType) => void = () => undefined; + executeAtomQueryMock.mockImplementationOnce( + () => new Promise>((resolve) => (completeLookup = resolve)), + ); + let settle: (value: boolean) => void = () => undefined; + const dialogOpened = new Promise((resolve) => { + confirmMock.mockImplementationOnce(() => { + resolve(); + return new Promise((resolveConfirmation) => (settle = resolveConfirmation)); + }); + }); + + expect(isTerminalCloseConfirmPending()).toBe(false); + const confirmation = confirmTerminalClose(threadRef, ["term-1"]); + expect(isTerminalCloseConfirmPending()).toBe(true); + + completeLookup(metadata([terminal])); + await dialogOpened; + expect(isTerminalCloseConfirmPending()).toBe(true); + settle(true); + await expect(confirmation).resolves.toBe(true); + expect(isTerminalCloseConfirmPending()).toBe(false); + }); + + it("clears pending state and resolves false when the dialog rejects", async () => { + confirmMock.mockRejectedValueOnce(new Error("dialog failed")); + + await expect(confirmTerminalClose(threadRef, ["term-1"])).resolves.toBe(false); + expect(isTerminalCloseConfirmPending()).toBe(false); + }); + it("closes without prompting when no local API is available", async () => { readLocalApiMock.mockReturnValue(undefined); - await expect(confirmTerminalClose(["Terminal 1"])).resolves.toBe(true); + await expect(confirmTerminalClose(threadRef, ["term-1"])).resolves.toBe(true); expect(confirmMock).not.toHaveBeenCalled(); + expect(executeAtomQueryMock).not.toHaveBeenCalled(); }); }); diff --git a/apps/web/src/lib/terminalCloseConfirm.ts b/apps/web/src/lib/terminalCloseConfirm.ts index b1ea97a64ba65a7fa021e75b4b402bfdaa7c28c6..556fec6351d7dd837f54ca6d2c1deb43eb67eaf7 100644 --- a/apps/web/src/lib/terminalCloseConfirm.ts +++ b/apps/web/src/lib/terminalCloseConfirm.ts @@ -1,25 +1,45 @@ +import { executeAtomQuery } from "@t3tools/client-runtime/state/runtime"; +import type { ScopedThreadRef } from "@t3tools/contracts"; +import { resolveTerminalSessionLabel } from "@t3tools/shared/terminalLabels"; + import { readLocalApi } from "~/localApi"; +import { appAtomRegistry } from "~/rpc/atomRegistry"; +import { terminalEnvironment } from "~/state/terminal"; let pendingConfirmations = 0; -/** Whether a terminal-close confirmation is currently waiting on the user. */ export function isTerminalCloseConfirmPending(): boolean { return pendingConfirmations > 0; } -/** - * Confirmation for individual terminal close actions: drawer buttons, panel - * buttons, the `terminal.close` keybinding, and closing a terminal surface from - * the tab strip. Auto-exit cleanup and bulk tab closes skip this path and close - * directly. - */ export async function confirmTerminalClose( - labels: readonly [string, ...string[]], + threadRef: ScopedThreadRef, + terminalIds: readonly [string, ...string[]], ): Promise { const localApi = readLocalApi(); if (!localApi) return true; pendingConfirmations += 1; try { + const metadata = await executeAtomQuery( + appAtomRegistry, + terminalEnvironment.metadataSnapshot({ environmentId: threadRef.environmentId, input: null }), + { refresh: true, reportFailure: false, signal: AbortSignal.timeout(3_000) }, + ); + const terminals = terminalIds.map((terminalId) => + metadata._tag === "Success" + ? metadata.value.find( + (terminal) => + terminal.threadId === threadRef.threadId && terminal.terminalId === terminalId, + ) + : undefined, + ); + if (terminals.every((terminal) => terminal !== undefined && !terminal.hasRunningSubprocess)) { + return true; + } + + const labels = terminalIds.map((terminalId, index) => + resolveTerminalSessionLabel(terminalId, terminals[index]), + ); return await localApi.dialogs.confirm( labels.length === 1 ? [ diff --git a/apps/web/src/terminal-links.test.ts b/apps/web/src/terminal-links.test.ts index 6dc750edeec1bbfa26d19ed4c8ce348f37c5b99e..b5b443a12c8c53f6178c5dbcb9a7e979bf4961f5 100644 --- a/apps/web/src/terminal-links.test.ts +++ b/apps/web/src/terminal-links.test.ts @@ -1,203 +1,14 @@ -import { resolvePathLinkTarget } from "@t3tools/shared/fileLinks"; import { describe, expect, it } from "vite-plus/test"; -import { - collectWrappedTerminalLinkLine, - extractTerminalLinks, - isTerminalLinkActivation, - isTerminalUrl, - type TerminalBufferLineLike, -} from "./terminal-links"; +import { isTerminalLinkActivation, isTerminalUrl } from "./terminal-links"; -function createBufferLine(text: string, isWrapped = false): TerminalBufferLineLike { - return { - isWrapped, - translateToString: (trimRight = false) => (trimRight ? text.replace(/\s+$/u, "") : text), - }; -} - -describe("extractTerminalLinks", () => { - it("finds http urls and path tokens", () => { - const line = - "failed at https://example.com/docs and src/components/ThreadTerminalDrawer.tsx:42"; - expect(extractTerminalLinks(line)).toEqual([ - { - kind: "url", - text: "https://example.com/docs", - start: 10, - end: 34, - }, - { - kind: "path", - text: "src/components/ThreadTerminalDrawer.tsx:42", - start: 39, - end: 81, - }, - ]); - }); - - it("classifies uppercase schemes as URLs at activation time too", () => { +describe("isTerminalUrl", () => { + it("recognizes HTTP schemes without treating workspace paths as URLs", () => { expect(isTerminalUrl("HTTPS://example.com/docs")).toBe(true); expect(isTerminalUrl("Http://example.com")).toBe(true); expect(isTerminalUrl("src/components/main.ts")).toBe(false); expect(isTerminalUrl("httpsdocs/readme.md")).toBe(false); }); - - it("finds URLs regardless of scheme casing", () => { - expect(extractTerminalLinks("open HTTPS://example.com/docs")).toEqual([ - { - kind: "url", - text: "HTTPS://example.com/docs", - start: 5, - end: 29, - }, - ]); - }); - - it("trims trailing punctuation from links", () => { - const line = "(https://example.com/docs), ./src/main.ts:12."; - expect(extractTerminalLinks(line)).toEqual([ - { - kind: "url", - text: "https://example.com/docs", - start: 1, - end: 25, - }, - { - kind: "path", - text: "./src/main.ts:12", - start: 28, - end: 44, - }, - ]); - }); - - it("finds Windows absolute paths with forward slashes", () => { - const line = "see C:/Users/someone/project/src/file.ts:42 for details"; - const path = "C:/Users/someone/project/src/file.ts:42"; - const start = line.indexOf(path); - expect(extractTerminalLinks(line)).toEqual([ - { - kind: "path", - text: path, - start, - end: start + path.length, - }, - ]); - }); - - it("trims trailing punctuation from Windows forward-slash paths", () => { - const line = "(C:/tmp/x.ts)."; - expect(extractTerminalLinks(line)).toEqual([ - { - kind: "path", - text: "C:/tmp/x.ts", - start: 1, - end: 12, - }, - ]); - }); - - it("keeps a trailing colon on URLs", () => { - expect(extractTerminalLinks("GET https://example.test/items/foo:")).toEqual([ - { kind: "url", text: "https://example.test/items/foo:", start: 4, end: 35 }, - ]); - }); - - it.each([ - ["./main.go:10:5: undefined: x", "./main.go:10:5"], - ["/home/dev/app/src/main.c:10:5: error: expected ';'", "/home/dev/app/src/main.c:10:5"], - ["C:\\dev\\app\\src\\main.c:10:5: error: expected ';'", "C:\\dev\\app\\src\\main.c:10:5"], - ["wrote ./out/report.txt:", "./out/report.txt"], - ])("drops the colon that ends a compiler diagnostic location in %s", (line, text) => { - const start = line.indexOf(text); - expect(extractTerminalLinks(line)).toEqual([ - { kind: "path", text, start, end: start + text.length }, - ]); - }); -}); - -describe("collectWrappedTerminalLinkLine", () => { - it("reconstructs a wrapped line from any physical row", () => { - const firstSegment = "see https://example.com/a"; - const secondSegment = "/bc?x=1"; - const lines = [ - createBufferLine("prompt> "), - createBufferLine(firstSegment), - createBufferLine(secondSegment, true), - createBufferLine("done"), - ]; - - const fromFirstRow = collectWrappedTerminalLinkLine(2, (index) => lines[index]); - const fromWrappedRow = collectWrappedTerminalLinkLine(3, (index) => lines[index]); - - expect(fromFirstRow).toEqual({ - text: `${firstSegment}${secondSegment}`, - segments: [ - { - bufferLineNumber: 2, - text: firstSegment, - startIndex: 0, - endIndex: firstSegment.length, - }, - { - bufferLineNumber: 3, - text: secondSegment, - startIndex: firstSegment.length, - endIndex: firstSegment.length + secondSegment.length, - }, - ], - }); - expect(fromWrappedRow).toEqual(fromFirstRow); - }); - - it("preserves trailing spaces on continued segments for downstream offsets", () => { - const firstSegment = "prefix "; - const secondSegment = "https://example.com/path"; - const lines = [createBufferLine(firstSegment), createBufferLine(secondSegment, true)]; - - const wrappedLine = collectWrappedTerminalLinkLine(2, (index) => lines[index]); - - expect(wrappedLine?.text).toBe(`${firstSegment}${secondSegment}`); - expect(extractTerminalLinks(wrappedLine?.text ?? "")).toEqual([ - { - kind: "url", - text: secondSegment, - start: firstSegment.length, - end: firstSegment.length + secondSegment.length, - }, - ]); - }); -}); - -describe("resolvePathLinkTarget", () => { - it("resolves relative paths against cwd", () => { - expect( - resolvePathLinkTarget( - "src/components/ThreadTerminalDrawer.tsx:42:7", - "/Users/julius/project", - ), - ).toBe("/Users/julius/project/src/components/ThreadTerminalDrawer.tsx:42:7"); - }); - - it("keeps absolute paths unchanged", () => { - expect( - resolvePathLinkTarget("/Users/julius/project/src/main.ts:12", "/Users/julius/project"), - ).toBe("/Users/julius/project/src/main.ts:12"); - }); - - it("keeps Windows absolute paths with forward slashes unchanged", () => { - expect( - resolvePathLinkTarget("C:/Users/julius/project/src/main.ts:12", "C:\\Users\\julius\\project"), - ).toBe("C:/Users/julius/project/src/main.ts:12"); - }); - - it("keeps the line and column of a compiler diagnostic", () => { - const [link] = extractTerminalLinks("/Users/julius/project/main.c:10:5: error: expected ';'"); - expect(resolvePathLinkTarget(link?.text ?? "", "/Users/julius/project")).toBe( - "/Users/julius/project/main.c:10:5", - ); - }); }); describe("isTerminalLinkActivation", () => { diff --git a/apps/web/src/terminal-links.ts b/apps/web/src/terminal-links.ts index 7ad2d83843de5ef051608cb8f48e54a0e6288971..724687d98262b2be162cf7a4b801905e0b11bf67 100644 --- a/apps/web/src/terminal-links.ts +++ b/apps/web/src/terminal-links.ts @@ -1,155 +1,9 @@ import { isMacPlatform } from "./lib/utils"; -export type TerminalLinkKind = "url" | "path"; - -export interface TerminalLinkMatch { - kind: TerminalLinkKind; - text: string; - start: number; - end: number; -} - -export interface TerminalBufferLineLike { - readonly isWrapped?: boolean; - translateToString(trimRight?: boolean): string; -} - -export interface WrappedTerminalLinkLineSegment { - bufferLineNumber: number; - text: string; - startIndex: number; - endIndex: number; -} - -export interface WrappedTerminalLinkLine { - text: string; - segments: ReadonlyArray; -} - -const URL_PATTERN = /https?:\/\/[^\s"'`<>]+/giu; -const FILE_PATH_PATTERN = - /(?:~\/|\.{1,2}\/|\/|[A-Za-z]:[\\/]|\\\\)[^\s"'`<>]+|[A-Za-z0-9._-]+(?:\/[A-Za-z0-9._-]+)+(?::\d+){0,2}/g; -const TRAILING_PUNCTUATION_PATTERN = /[.,;!?]+$/; -// Paths also drop a trailing colon: compilers end `file:line:col:` with one. -const TRAILING_PATH_PUNCTUATION_PATTERN = /[.,;:!?]+$/; - -function trimClosingDelimiters(value: string, kind: TerminalLinkKind): string { - let output = value.replace( - kind === "path" ? TRAILING_PATH_PUNCTUATION_PATTERN : TRAILING_PUNCTUATION_PATTERN, - "", - ); - if (output.length === 0) return output; - - const trimUnbalanced = (open: string, close: string) => { - while (output.endsWith(close)) { - const opens = output.split(open).length - 1; - const closes = output.split(close).length - 1; - if (opens >= closes) return; - output = output.slice(0, -1); - } - }; - - trimUnbalanced("(", ")"); - trimUnbalanced("[", "]"); - trimUnbalanced("{", "}"); - return output; -} - -function overlaps(a: { start: number; end: number }, b: { start: number; end: number }): boolean { - return a.start < b.end && b.start < a.end; -} - -function collectMatches( - line: string, - kind: TerminalLinkKind, - pattern: RegExp, - existing: TerminalLinkMatch[], -): TerminalLinkMatch[] { - const matches: TerminalLinkMatch[] = []; - pattern.lastIndex = 0; - - for (const rawMatch of line.matchAll(pattern)) { - const raw = rawMatch[0]; - const start = rawMatch.index ?? -1; - if (start < 0 || raw.length === 0) continue; - - const trimmed = trimClosingDelimiters(raw, kind); - if (trimmed.length === 0) continue; - if (kind === "path" && isTerminalUrl(trimmed)) continue; - - const candidate: TerminalLinkMatch = { - kind, - text: trimmed, - start, - end: start + trimmed.length, - }; - - const collides = [...existing, ...matches].some((other) => overlaps(candidate, other)); - if (collides) continue; - - matches.push(candidate); - } - - return matches; -} - -export function extractTerminalLinks(line: string): TerminalLinkMatch[] { - const urlMatches = collectMatches(line, "url", URL_PATTERN, []); - const pathMatches = collectMatches(line, "path", FILE_PATH_PATTERN, urlMatches); - return [...urlMatches, ...pathMatches].toSorted((a, b) => a.start - b.start); -} - export function isTerminalUrl(value: string): boolean { return /^https?:\/\//iu.test(value); } -export function collectWrappedTerminalLinkLine( - bufferLineNumber: number, - getLine: (bufferLineIndex: number) => TerminalBufferLineLike | null | undefined, -): WrappedTerminalLinkLine | null { - const anchorLine = getLine(bufferLineNumber - 1); - if (!anchorLine) return null; - - let startBufferLineNumber = bufferLineNumber; - let startLine = anchorLine; - - while (startBufferLineNumber > 1 && startLine.isWrapped) { - const previousLine = getLine(startBufferLineNumber - 2); - if (!previousLine) return null; - startBufferLineNumber -= 1; - startLine = previousLine; - } - - const segments: WrappedTerminalLinkLineSegment[] = []; - let nextStartIndex = 0; - let currentBufferLineNumber = startBufferLineNumber; - - while (true) { - const currentLine = getLine(currentBufferLineNumber - 1); - if (!currentLine) break; - - const nextLine = getLine(currentBufferLineNumber); - const hasWrappedContinuation = nextLine?.isWrapped === true; - const text = currentLine.translateToString(!hasWrappedContinuation); - - segments.push({ - bufferLineNumber: currentBufferLineNumber, - text, - startIndex: nextStartIndex, - endIndex: nextStartIndex + text.length, - }); - nextStartIndex += text.length; - - if (!hasWrappedContinuation) break; - currentBufferLineNumber += 1; - } - - return { - text: segments.map((segment) => segment.text).join(""), - segments, - }; -} - export function isTerminalLinkActivation( event: Pick, platform = typeof navigator === "undefined" ? "" : navigator.platform, diff --git a/apps/web/src/terminal/TerminalSurface.test.ts b/apps/web/src/terminal/TerminalSurface.test.ts new file mode 100644 index 0000000000000000000000000000000000000000..8fe2318b12909e0d5a37f85758b234a6c403da4d --- /dev/null +++ b/apps/web/src/terminal/TerminalSurface.test.ts @@ -0,0 +1,690 @@ +// @vitest-environment jsdom +// @effect-diagnostics nodeBuiltinImport:off - loads the vendored WASM for isolated DOM tests. +import * as NodeFS from "node:fs"; +import * as NodePath from "node:path"; +import * as NodeURL from "node:url"; +import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test"; + +import { resolvePathLinkTarget } from "@t3tools/shared/fileLinks"; + +import { writeTextToClipboard } from "~/hooks/useCopyToClipboard"; +import { TerminalSurface, type TerminalSurfaceOptions } from "./TerminalSurface"; + +vi.mock("~/hooks/useCopyToClipboard", () => ({ writeTextToClipboard: vi.fn(async () => {}) })); + +const bytes = new Uint8Array( + NodeFS.readFileSync( + NodePath.resolve( + NodePath.dirname(NodeURL.fileURLToPath(import.meta.url)), + "../../../../packages/terminal/vendor/ghostty-vt.wasm", + ), + ), +); +const surfaces = new Set(); +const frames = new Map(); +let nextFrame = 0; +let width = 640; +let height = 192; +let platform = "MacIntel"; + +function paint() { + const pending = [...frames.values()]; + frames.clear(); + pending.forEach((callback) => callback(performance.now())); +} + +async function mount( + options: Partial = {}, + host = document.createElement("div"), +) { + document.body.append(host); + const onData = vi.fn(); + const onResize = vi.fn(); + const onLinkActivate = vi.fn(); + const onContextMenu = vi.fn(); + const surface = await TerminalSurface.create(host, { + theme: { + foreground: "#ffffff", + background: "#000000", + cursor: "#dddddd", + palette: Array(16).fill("#aaaaaa"), + selectionBackground: "#333333", + }, + onData, + onResize, + onLinkActivate, + onContextMenu, + beforeKey: () => true, + ...options, + }); + surfaces.add(surface); + paint(); + const terminalRoot = surface.input.parentElement!; + return { surface, host: terminalRoot, onData, onResize, onLinkActivate, onContextMenu }; +} + +function select(host: HTMLElement, text = "hello") { + const row = [...host.querySelectorAll(".clo-term-row")].find((row) => + row.textContent?.includes(text), + ); + expect(row).toBeDefined(); + const walker = document.createTreeWalker(row!, NodeFilter.SHOW_TEXT); + const range = document.createRange(); + const start = row!.textContent!.indexOf(text); + const end = start + text.length; + let offset = 0; + let node = walker.nextNode(); + while (node) { + const length = node.textContent!.length; + if (offset <= start && start < offset + length) range.setStart(node, start - offset); + if (offset < end && end <= offset + length) { + range.setEnd(node, end - offset); + break; + } + offset += length; + node = walker.nextNode(); + } + const selection = document.getSelection()!; + selection.removeAllRanges(); + selection.addRange(range); +} + +// Model the Chromium textarea focus behavior that loses native output selection. +function nativeInputFocus(surface: TerminalSurface) { + return vi.spyOn(surface.input, "focus").mockImplementation(function ( + this: HTMLTextAreaElement, + options?: FocusOptions, + ) { + HTMLElement.prototype.focus.call(this, options); + this.ownerDocument.getSelection()?.removeAllRanges(); + }); +} + +function key(element: HTMLElement, key: string, options: KeyboardEventInit = {}) { + const event = new KeyboardEvent("keydown", { + key, + code: key === "c" ? "KeyC" : key, + bubbles: true, + cancelable: true, + ...options, + }); + element.dispatchEvent(event); + return event; +} + +beforeEach(() => { + document.body.tabIndex = -1; + document.body.focus(); + frames.clear(); + width = 640; + height = 192; + platform = "MacIntel"; + vi.spyOn(navigator, "platform", "get").mockImplementation(() => platform); + vi.stubGlobal( + "fetch", + vi.fn(async () => new Response(bytes)), + ); + vi.stubGlobal("requestAnimationFrame", (callback: FrameRequestCallback) => { + const id = ++nextFrame; + frames.set(id, callback); + return id; + }); + vi.stubGlobal("cancelAnimationFrame", (id: number) => frames.delete(id)); + vi.spyOn(HTMLCanvasElement.prototype, "getContext").mockReturnValue(null); + vi.spyOn(HTMLElement.prototype, "getBoundingClientRect").mockImplementation(function ( + this: HTMLElement, + ) { + return this.classList.contains("clo-term-measure") + ? new DOMRect(0, 0, 256, 16) + : new DOMRect(0, 0, width, height); + }); +}); + +afterEach(() => { + surfaces.forEach((surface) => surface.dispose()); + surfaces.clear(); + document.body.replaceChildren(); + document.body.removeAttribute("tabindex"); + vi.restoreAllMocks(); + vi.unstubAllGlobals(); + vi.clearAllMocks(); +}); + +describe("T3 DOM terminal adapter", () => { + it("renders real VT output as selectable DOM and leaves selection unchanged on unrelated output", async () => { + const { surface, host, onContextMenu } = await mount(); + surface.write("hello 🌱\r\n"); + paint(); + expect(host.textContent).toContain("hello 🌱"); + expect(host.querySelector("canvas")).toBeNull(); + select(host); + document.dispatchEvent(new Event("selectionchange")); + expect(surface.getSelection()).toBe("hello"); + expect(surface.getSelectionPosition()).toEqual({ start: { y: 0 }, end: { y: 0 } }); + surface.write("next line"); + paint(); + expect(surface.getSelection()).toBe("hello"); + expect(onContextMenu).not.toHaveBeenCalled(); + host.dispatchEvent(new MouseEvent("contextmenu", { bubbles: true, cancelable: true })); + expect(onContextMenu).toHaveBeenCalledOnce(); + }); + + it("copies only an owned DOM selection and keeps Ctrl-C as SIGINT without selection", async () => { + const { surface, host, onData } = await mount(); + surface.write("hello"); + paint(); + select(host); + expect(key(surface.input, "c", { metaKey: true }).defaultPrevented).toBe(true); + await Promise.resolve(); + expect(writeTextToClipboard).toHaveBeenCalledExactlyOnceWith("hello", "terminal selection"); + expect(onData).not.toHaveBeenCalled(); + surface.clearSelection(); + key(surface.input, "c", { ctrlKey: true }); + expect(onData).toHaveBeenCalledExactlyOnceWith("\x03"); + vi.mocked(writeTextToClipboard).mockClear(); + const composer = document.createElement("textarea"); + document.body.append(composer); + key(composer, "c", { metaKey: true }); + expect(writeTextToClipboard).not.toHaveBeenCalled(); + }); + + it("commits IME once, brackets paste and sends control keys through the VT encoder", async () => { + const { surface, onData } = await mount(); + const input = surface.input; + input.dispatchEvent(new CompositionEvent("compositionstart", { bubbles: true })); + key(input, "Process", { isComposing: true, keyCode: 229 }); + input.value = "にほん"; + input.dispatchEvent( + new InputEvent("input", { + bubbles: true, + isComposing: true, + inputType: "insertCompositionText", + }), + ); + input.dispatchEvent(new CompositionEvent("compositionend", { bubbles: true, data: "日本" })); + input.value = "日本"; + input.dispatchEvent( + new InputEvent("input", { bubbles: true, inputType: "insertFromComposition" }), + ); + expect(onData).toHaveBeenCalledExactlyOnceWith("日本"); + onData.mockClear(); + surface.write("\x1b[?2004h"); + const paste = new Event("paste", { bubbles: true, cancelable: true }); + Object.defineProperty(paste, "clipboardData", { value: { getData: () => "a🌱b" } }); + input.dispatchEvent(paste); + expect(onData).toHaveBeenCalledExactlyOnceWith("\x1b[200~a🌱b\x1b[201~"); + onData.mockClear(); + key(input, "Backspace"); + expect(onData).toHaveBeenCalledExactlyOnceWith("\x7f"); + }); + + it("keeps read-only terminals selectable and blocks native keyboard and IME writes", async () => { + const { surface, host, onData } = await mount(); + surface.write("hello"); + paint(); + surface.input.readOnly = true; + select(host); + key(surface.input, "c", { metaKey: true }); + key(surface.input, "c", { ctrlKey: true }); + surface.clearSelection(); + key(surface.input, "Enter"); + surface.input.dispatchEvent( + new CompositionEvent("compositionend", { data: "秘密", bubbles: true }), + ); + expect(onData).not.toHaveBeenCalled(); + expect(writeTextToClipboard).toHaveBeenCalled(); + }); + + it("requires modifier-click and preserves OSC 8 identity and file positions", async () => { + const { surface, host, onLinkActivate } = await mount({ + validatePath: (path) => path === "src/file.ts", + }); + surface.write( + "\x1b]8;;https://example.test/oauth\x1b\\sign in\x1b]8;;\x1b\\\r\nsrc/file.ts:12:3", + ); + paint(); + const links = host.querySelectorAll(".clo-term-link"); + expect(links.length).toBe(2); + links[0]!.dispatchEvent(new MouseEvent("click", { bubbles: true, cancelable: true })); + expect(onLinkActivate).not.toHaveBeenCalled(); + links[0]!.dispatchEvent( + new MouseEvent("click", { bubbles: true, cancelable: true, metaKey: true }), + ); + expect(onLinkActivate.mock.calls[0]?.[0]).toBe("https://example.test/oauth"); + platform = "Linux x86_64"; + links[1]!.dispatchEvent( + new MouseEvent("click", { bubbles: true, cancelable: true, ctrlKey: true }), + ); + expect(onLinkActivate.mock.calls[1]?.[0]).toBe("src/file.ts:12:3"); + }); + + it("denies program clipboard writes without touching the system clipboard", async () => { + const { surface } = await mount(); + surface.write("\x1b]52;c;c2VjcmV0\x07"); + expect(writeTextToClipboard).not.toHaveBeenCalled(); + }); + + it("recognizes uppercase HTTP schemes and honors live link permission", async () => { + let allowed = true; + const { surface, host, onLinkActivate } = await mount({ canActivateLink: () => allowed }); + surface.write("HTTPS://example.test/login"); + paint(); + const link = host.querySelector(".clo-term-link")!; + expect(link).not.toBeNull(); + allowed = false; + link.dispatchEvent(new MouseEvent("click", { bubbles: true, metaKey: true })); + expect(onLinkActivate).not.toHaveBeenCalled(); + allowed = true; + link.dispatchEvent(new MouseEvent("click", { bubbles: true, metaKey: true })); + expect(onLinkActivate.mock.calls[0]?.[0]).toBe("HTTPS://example.test/login"); + }); + + it("activates complete URLs from either fragment of a wrapped line", async () => { + width = 160; + const { surface, host, onLinkActivate } = await mount(); + const url = "https://example.test/long/path/that/wraps"; + surface.write(url); + paint(); + const links = host.querySelectorAll(".clo-term-link"); + expect(links.length).toBeGreaterThan(1); + links[0]!.dispatchEvent(new MouseEvent("click", { bubbles: true, metaKey: true })); + links[1]!.dispatchEvent(new MouseEvent("click", { bubbles: true, metaKey: true })); + expect(onLinkActivate.mock.calls.map(([target]) => target)).toEqual([url, url]); + }); + + it("lets application shortcuts and native Tab bubble without VT encoding", async () => { + const { surface, host, onData } = await mount({ beforeKey: () => false }); + const parent = vi.fn(); + host.parentElement!.addEventListener("keydown", parent); + expect(key(surface.input, "Tab").defaultPrevented).toBe(false); + expect(parent).toHaveBeenCalledOnce(); + expect(onData).not.toHaveBeenCalled(); + }); + + it("suppresses replay replies while live queries still reach the PTY", async () => { + const { surface, onData } = await mount(); + surface.resetAndWrite("hello\x1b[6n"); + expect(onData).not.toHaveBeenCalled(); + surface.write("\x1b[6n"); + expect(onData).toHaveBeenCalledExactlyOnceWith("\x1b[1;6R"); + }); + + it("keeps output drag, pane activation, modifier keys and copy on the root until actual typing", async () => { + const { surface, host, onData, onContextMenu } = await mount(); + surface.write("hello"); + paint(); + const inputFocus = nativeInputFocus(surface); + const row = host.querySelector(".clo-term-row")!; + row.dispatchEvent(new MouseEvent("mousedown", { bubbles: true, cancelable: true })); + expect(document.activeElement).toBe(host); + surface.focus(); + expect(inputFocus).not.toHaveBeenCalled(); + select(host); + row.dispatchEvent(new MouseEvent("mouseup", { bubbles: true })); + expect(document.activeElement).toBe(host); + expect(surface.getSelection()).toBe("hello"); + key(host, "Shift", { shiftKey: true }); + key(host, "Control", { ctrlKey: true }); + key(host, "Alt", { altKey: true }); + key(host, "Meta", { metaKey: true }); + key(host, "c", { metaKey: true }); + expect(writeTextToClipboard).toHaveBeenCalledExactlyOnceWith("hello", "terminal selection"); + row.dispatchEvent(new MouseEvent("mousedown", { bubbles: true, button: 2 })); + host.dispatchEvent(new MouseEvent("contextmenu", { bubbles: true, cancelable: true })); + expect(onContextMenu).toHaveBeenCalledOnce(); + surface.focus(); + expect(inputFocus).not.toHaveBeenCalled(); + expect(surface.getSelection()).toBe("hello"); + key(host, "a"); + expect(document.activeElement).toBe(surface.input); + expect(surface.getSelection()).toBe(""); + expect(onData).toHaveBeenCalledExactlyOnceWith("a"); + }); + + it("keeps shortcut focus and keyboard input available while terminal fonts load", async () => { + const style = document.createElement("style"); + style.textContent = NodeFS.readFileSync( + NodePath.resolve( + NodePath.dirname(NodeURL.fileURLToPath(import.meta.url)), + "../../../../packages/terminal/src/renderer/terminal.css", + ), + "utf8", + ); + document.head.append(style); + let finishFonts!: () => void; + const fontReady = new Promise((resolve) => { + finishFonts = resolve; + }); + let reportFontLoad!: () => void; + const fontStarted = new Promise((resolve) => { + reportFontLoad = resolve; + }); + const fonts = Object.assign(new EventTarget(), { + load: async () => { + reportFontLoad(); + await fontReady; + return [{}]; + }, + check: () => true, + }); + Object.defineProperty(document, "fonts", { configurable: true, value: fonts }); + const host = document.createElement("div"); + host.tabIndex = -1; + const mounting = mount({}, host); + await fontStarted; + const focus = HTMLElement.prototype.focus; + vi.spyOn(HTMLElement.prototype, "focus").mockImplementation(function ( + this: HTMLElement, + options?: FocusOptions, + ) { + // Browsers refuse focus on visibility:hidden elements; jsdom does not. + if (getComputedStyle(this).visibility !== "hidden") focus.call(this, options); + }); + try { + host.focus(); + const input = host.querySelector("textarea"); + if (!input) throw new Error("Terminal input missing"); + expect(document.activeElement).toBe(input); + expect(getComputedStyle(host.querySelector(".clo-term-viewport")!).visibility).toBe("hidden"); + key(input, "a"); + finishFonts(); + const { surface, onData } = await mounting; + expect(document.activeElement).toBe(surface.input); + expect(onData).toHaveBeenCalledExactlyOnceWith("a"); + expect(getComputedStyle(host.querySelector(".clo-term-viewport")!).visibility).toBe( + "visible", + ); + } finally { + finishFonts(); + await mounting; + Reflect.deleteProperty(document, "fonts"); + style.remove(); + } + }); + + it("keeps a replacement surface intact when an older async mount finishes and disposes later", async () => { + const style = document.createElement("style"); + style.textContent = ".clo-term { font-family: monospace; font-size: 12px; }"; + document.head.append(style); + let finishFirst!: () => void; + let finishSecond!: () => void; + let startedFirst!: () => void; + let startedSecond!: () => void; + const firstReady = new Promise((resolve) => { + finishFirst = resolve; + }); + const secondReady = new Promise((resolve) => { + finishSecond = resolve; + }); + const firstStarted = new Promise((resolve) => { + startedFirst = resolve; + }); + const secondStarted = new Promise((resolve) => { + startedSecond = resolve; + }); + let loads = 0; + Object.defineProperty(document, "fonts", { + configurable: true, + value: Object.assign(new EventTarget(), { + load: async () => { + const first = loads++ < 4; + if (first) startedFirst(); + else startedSecond(); + await (first ? firstReady : secondReady); + return [{}]; + }, + check: () => true, + }), + }); + const container = document.createElement("div"); + container.className = "terminal-container"; + container.setAttribute("aria-label", "Replacement terminal"); + const first = mount({ font: { size: 12 } }, container); + await firstStarted; + const second = mount({ font: { size: 14 } }, container); + await secondStarted; + try { + finishSecond(); + const current = await second; + const root = current.surface.input.parentElement!; + current.surface.write("new output"); + paint(); + finishFirst(); + const obsolete = await first; + obsolete.surface.dispose(); + expect(root.classList.contains("clo-term")).toBe(true); + expect(root.style.getPropertyValue("--clo-term-font-size")).toBe("14px"); + expect(container.contains(current.surface.input)).toBe(true); + expect(root.textContent).toContain("new output"); + key(current.surface.input, "x"); + expect(current.onData).toHaveBeenCalledExactlyOnceWith("x"); + expect(current.surface.input.getAttribute("aria-label")).toBe("Replacement terminal"); + current.surface.dispose(); + expect(container.childElementCount).toBe(0); + expect(container.className).toBe("terminal-container"); + } finally { + finishFirst(); + finishSecond(); + await Promise.all([first, second]); + Reflect.deleteProperty(document, "fonts"); + style.remove(); + } + }); + + it("focuses the native input for plain clicks, keyboard focus and first IME entry", async () => { + const { surface, host, onData } = await mount(); + surface.write("hello"); + paint(); + const inputFocus = nativeInputFocus(surface); + host.focus(); + expect(document.activeElement).toBe(surface.input); + expect(surface.input.getAttribute("aria-label")).toBe("Terminal input"); + const row = host.querySelector(".clo-term-row")!; + row.dispatchEvent(new MouseEvent("mousedown", { bubbles: true })); + expect(document.activeElement).toBe(host); + row.dispatchEvent(new MouseEvent("mouseup", { bubbles: true })); + expect(document.activeElement).toBe(surface.input); + inputFocus.mockClear(); + row.dispatchEvent(new MouseEvent("mousedown", { bubbles: true })); + select(host); + row.dispatchEvent(new MouseEvent("mouseup", { bubbles: true })); + expect(inputFocus).not.toHaveBeenCalled(); + key(host, "Process", { keyCode: 229, isComposing: true }); + expect(document.activeElement).toBe(surface.input); + expect(surface.getSelection()).toBe(""); + surface.input.dispatchEvent(new CompositionEvent("compositionstart", { bubbles: true })); + surface.input.dispatchEvent( + new CompositionEvent("compositionend", { bubbles: true, data: "日本" }), + ); + expect(onData).toHaveBeenCalledExactlyOnceWith("日本"); + }); + + it("moves to native input for browser paste without consuming the shortcut as VT data", async () => { + const { surface, host, onData } = await mount(); + surface.write("hello\x1b[?2004h"); + paint(); + nativeInputFocus(surface); + const row = host.querySelector(".clo-term-row")!; + row.dispatchEvent(new MouseEvent("mousedown", { bubbles: true })); + select(host); + row.dispatchEvent(new MouseEvent("mouseup", { bubbles: true })); + const shortcut = key(host, "v", { metaKey: true }); + expect(shortcut.defaultPrevented).toBe(false); + expect(document.activeElement).toBe(surface.input); + expect(surface.getSelection()).toBe(""); + expect(onData).not.toHaveBeenCalled(); + const paste = new Event("paste", { bubbles: true, cancelable: true }); + Object.defineProperty(paste, "clipboardData", { value: { getData: () => "日本" } }); + surface.input.dispatchEvent(paste); + expect(onData).toHaveBeenCalledExactlyOnceWith("\x1b[200~日本\x1b[201~"); + }); + + it("focuses TUI input before claiming a press and retains the Shift selection override through release", async () => { + const { surface, host, onData } = await mount(); + surface.write("hello\x1b[?1000h\x1b[?1006h"); + paint(); + const inputFocus = nativeInputFocus(surface); + const row = host.querySelector(".clo-term-row")!; + const press = new MouseEvent("mousedown", { bubbles: true, cancelable: true }); + row.dispatchEvent(press); + expect(press.defaultPrevented).toBe(true); + expect(document.activeElement).toBe(surface.input); + expect(onData).toHaveBeenCalledOnce(); + row.dispatchEvent(new MouseEvent("mouseup", { bubbles: true, cancelable: true })); + onData.mockClear(); + inputFocus.mockClear(); + const selectPress = new MouseEvent("mousedown", { + bubbles: true, + cancelable: true, + shiftKey: true, + }); + row.dispatchEvent(selectPress); + expect(selectPress.defaultPrevented).toBe(false); + expect(document.activeElement).toBe(host); + row.dispatchEvent(new MouseEvent("mousemove", { bubbles: true, cancelable: true, buttons: 1 })); + select(host); + const release = new MouseEvent("mouseup", { bubbles: true, cancelable: true }); + row.dispatchEvent(release); + expect(release.defaultPrevented).toBe(false); + expect(surface.getSelection()).toBe("hello"); + expect(inputFocus).not.toHaveBeenCalled(); + expect(onData).not.toHaveBeenCalled(); + }); + + it("finishes or cancels outside output gestures and removes document listeners on dispose", async () => { + const { surface, host } = await mount(); + surface.write("hello"); + paint(); + const row = host.querySelector(".clo-term-row")!; + const inputFocus = nativeInputFocus(surface); + row.dispatchEvent(new MouseEvent("mousedown", { bubbles: true })); + document.dispatchEvent(new MouseEvent("mouseup", { bubbles: true })); + expect(document.activeElement).toBe(surface.input); + row.dispatchEvent(new MouseEvent("mousedown", { bubbles: true })); + document.dispatchEvent(new Event("pointercancel")); + surface.focus(); + expect(document.activeElement).toBe(surface.input); + row.dispatchEvent(new MouseEvent("mousedown", { bubbles: true })); + host.ownerDocument.defaultView!.dispatchEvent(new Event("blur")); + surface.focus(); + expect(document.activeElement).toBe(surface.input); + row.dispatchEvent(new MouseEvent("mousedown", { bubbles: true })); + inputFocus.mockClear(); + surface.dispose(); + document.dispatchEvent(new MouseEvent("mouseup", { bubbles: true })); + expect(inputFocus).not.toHaveBeenCalled(); + }); + + it("keeps native copy selection through readonly output gestures but allows explicit paste into writable input", async () => { + const { surface, host, onData } = await mount(); + surface.write("hello\x1b[?2004h"); + paint(); + nativeInputFocus(surface); + const row = host.querySelector(".clo-term-row")!; + surface.input.readOnly = true; + row.dispatchEvent(new MouseEvent("mousedown", { bubbles: true })); + select(host); + row.dispatchEvent(new MouseEvent("mouseup", { bubbles: true })); + key(host, "a"); + key(host, "Process", { keyCode: 229 }); + surface.focus(); + expect(document.activeElement).toBe(host); + expect(surface.getSelection()).toBe("hello"); + expect(onData).not.toHaveBeenCalled(); + surface.input.readOnly = false; + surface.paste("new input"); + expect(document.activeElement).toBe(surface.input); + expect(surface.getSelection()).toBe(""); + expect(onData).toHaveBeenCalledExactlyOnceWith("\x1b[200~new input\x1b[201~"); + }); + + it("ignores retained async writes and replay after terminal disposal", async () => { + const { surface, host, onData } = await mount(); + let rejectFailure!: (error: Error) => void; + const failure = new Promise((_, reject) => { + rejectFailure = reject; + }); + const pendingWrite = failure.catch((error: unknown) => surface.write(String(error))); + surface.write("hello"); + surface.dispose(); + rejectFailure(new Error("late RPC failure")); + await expect(pendingWrite).resolves.toBeUndefined(); + expect(() => surface.resetAndWrite("old history\x1b[6n")).not.toThrow(); + paint(); + expect(host.childElementCount).toBe(0); + expect(onData).not.toHaveBeenCalled(); + }); + + it("activates complete Windows, UNC and home paths with exact canonical validation", async () => { + const paths = [ + String.raw`C:\repo\src\file.ts`, + String.raw`\\server\share\file.ts`, + "~/src/file.ts", + ]; + const canonical = new Set([ + String.raw`C:\repo\src\file.ts`, + String.raw`\\server\share\file.ts`, + "/Users/clo/src/file.ts", + ]); + let allowed = true; + const validatePath = vi.fn( + (path: string) => allowed && canonical.has(resolvePathLinkTarget(path, "/Users/clo/repo")), + ); + const { surface, host, onLinkActivate } = await mount({ validatePath }); + surface.write(paths.map((path) => `${path}:12:3`).join("\r\n")); + paint(); + const links = [...host.querySelectorAll(".clo-term-link")]; + expect(links).toHaveLength(3); + expect(validatePath.mock.calls.map(([path]) => path)).toEqual(paths); + links.forEach((link) => link.dispatchEvent(new MouseEvent("click", { bubbles: true }))); + expect(onLinkActivate).not.toHaveBeenCalled(); + links.forEach((link) => + link.dispatchEvent(new MouseEvent("click", { bubbles: true, metaKey: true })), + ); + expect(onLinkActivate.mock.calls.map(([target]) => target)).toEqual( + paths.map((path) => `${path}:12:3`), + ); + allowed = false; + links[0]!.dispatchEvent(new MouseEvent("click", { bubbles: true, metaKey: true })); + expect(onLinkActivate).toHaveBeenCalledTimes(3); + }); + + it("invalidates a queued frame when hidden without consuming the next visible frame", async () => { + const { surface, host } = await mount(); + surface.write("hello"); + const stale = [...frames.values()][0]!; + frames.clear(); + surface.setVisible(false); + surface.setVisible(true); + stale(performance.now()); + expect(host.textContent).not.toContain("hello"); + expect(frames.size).toBe(1); + surface.write(" world"); + expect(frames.size).toBe(1); + paint(); + expect(host.textContent).toContain("hello world"); + }); + + it("retains hidden geometry and output until shown, then fits and disposes every DOM node", async () => { + const { surface, host, onResize } = await mount({ visible: false }); + expect(onResize).not.toHaveBeenCalled(); + surface.write("hello"); + paint(); + expect(host.querySelectorAll(".clo-term-row").length).toBe(0); + surface.setVisible(true); + paint(); + expect(host.textContent).toContain("hello"); + expect(onResize).toHaveBeenCalledWith(78, 12); + onResize.mockClear(); + surface.setVisible(false); + width = 160; + height = 64; + expect(surface.fit()).toEqual({ cols: 78, rows: 12 }); + expect(onResize).not.toHaveBeenCalled(); + surface.setVisible(true); + expect(onResize).toHaveBeenCalledWith(18, 4); + surface.dispose(); + expect(host.childElementCount).toBe(0); + expect(() => surface.write("after dispose")).not.toThrow(); + }); +}); diff --git a/apps/web/src/terminal/TerminalSurface.ts b/apps/web/src/terminal/TerminalSurface.ts new file mode 100644 index 0000000000000000000000000000000000000000..30c5b529f4e66b76e217fb71771d2fae2fd9d76b --- /dev/null +++ b/apps/web/src/terminal/TerminalSurface.ts @@ -0,0 +1,276 @@ +import { GhosttyModule, mountTerminal, type TerminalHandle } from "@clo/terminal"; +import wasmUrl from "@clo/terminal/ghostty-vt.wasm?url"; +import "@clo/terminal/terminal.css"; + +import { isTerminalLinkActivation } from "~/terminal-links"; +import { readLocalApi } from "~/localApi"; +import { writeTextToClipboard } from "~/hooks/useCopyToClipboard"; + +export interface TerminalTheme { + foreground: string; + background: string; + cursor: string; + palette: readonly string[]; + selectionBackground: string; +} + +export interface TerminalSurfaceOptions { + theme: TerminalTheme; + font?: { family?: string; size: number }; + visible?: boolean; + onData: (data: string) => void; + onResize: (cols: number, rows: number) => void; + beforeKey: (event: KeyboardEvent) => boolean; + onLinkActivate: (text: string, event: MouseEvent) => void; + validatePath?: (path: string) => boolean; + canActivateLink?: (text: string) => boolean; + onContextMenu?: (event: MouseEvent) => void; +} + +let modulePromise: Promise | null = null; +const ANSI_NAMES = ["black", "red", "green", "yellow", "blue", "magenta", "cyan", "white"]; +const ANSI_TOKENS = [...ANSI_NAMES, ...ANSI_NAMES.map((name) => `bright-${name}`)]; +const decoder = new TextDecoder(); + +function applyTheme(mount: HTMLElement, theme: TerminalTheme) { + const style = mount.style; + style.setProperty("--clo-term-fg", theme.foreground); + style.setProperty("--clo-term-bg", theme.background); + style.setProperty("--clo-term-cursor", theme.cursor); + style.setProperty("--clo-term-selection", theme.selectionBackground); + theme.palette.forEach((color, index) => + style.setProperty(`--clo-term-ansi-${ANSI_TOKENS[index]}`, color), + ); +} + +export class TerminalSurface { + readonly input: HTMLTextAreaElement; + private readonly cleanups: (() => void)[] = []; + private disposed = false; + private replaying = false; + + private constructor( + private readonly mount: HTMLElement, + private readonly handle: TerminalHandle, + private readonly options: TerminalSurfaceOptions, + container: HTMLElement, + ) { + this.input = handle.view.input; + this.input.setAttribute("aria-label", mount.getAttribute("aria-label") ?? "Terminal input"); + const beforeKey = (event: KeyboardEvent) => { + if (event.isComposing || event.keyCode === 229) return; + const copy = + isTerminalLinkActivation(event) && !event.altKey && event.key.toLowerCase() === "c"; + const selection = copy ? this.getSelection() : ""; + if (selection !== "") { + event.preventDefault(); + event.stopImmediatePropagation(); + this.copyText(selection); + } + }; + const contextMenu = (event: MouseEvent) => { + if (event.defaultPrevented) return; + if (options.onContextMenu) { + options.onContextMenu(event); + return; + } + const api = readLocalApi(); + const text = this.getSelection(); + if (!api || text === "") return; + event.preventDefault(); + void api.contextMenu + .show([{ id: "copy", label: "Copy" }], { x: event.clientX, y: event.clientY }) + .then((action) => { + if (action === "copy" && !this.disposed) this.copyText(text); + }) + .catch((error: unknown) => { + if (!this.disposed) + this.write( + `\r\n[terminal] ${error instanceof Error ? error.message : "Unable to open terminal menu"}\r\n`, + ); + }); + }; + mount.addEventListener("keydown", beforeKey, true); + mount.addEventListener("contextmenu", contextMenu); + const focus = () => this.focus(); + container.addEventListener("focus", focus); + this.cleanups.push(() => mount.removeEventListener("keydown", beforeKey, true)); + this.cleanups.push(() => mount.removeEventListener("contextmenu", contextMenu)); + this.cleanups.push(() => container.removeEventListener("focus", focus)); + } + + static async create(container: HTMLElement, options: TerminalSurfaceOptions) { + modulePromise ??= GhosttyModule.fetch(wasmUrl).catch((error: unknown) => { + modulePromise = null; + throw error; + }); + const module = await modulePromise; + const mount = container.ownerDocument.createElement("div"); + mount.style.position = "absolute"; + mount.style.inset = "0"; + const label = container.getAttribute("aria-label"); + if (label !== null) mount.setAttribute("aria-label", label); + applyTheme(mount, options.theme); + const style = mount.style; + style.setProperty("--clo-term-font-size", `${options.font?.size ?? 12}px`); + if (options.font?.family) style.setProperty("--clo-term-font", options.font.family); + container.append(mount); + let surface: TerminalSurface | undefined; + let handle: TerminalHandle | undefined; + try { + handle = mountTerminal(mount, module, { + visible: options.visible !== false, + onData: (bytes) => { + if (!surface?.replaying) options.onData(decoder.decode(bytes)); + }, + onResize: ({ cols, rows }) => options.onResize(cols, rows), + onBeforeKey: (event) => options.beforeKey(event), + maxScrollbackBytes: 16 * 1024 * 1024, + links: { + ...(options.validatePath ? { validate: options.validatePath } : {}), + requireModifier: true, + onActivate: (link, event) => { + if (!isTerminalLinkActivation(event)) return; + if (options.canActivateLink?.(link.target) === false) return; + const target = + link.kind === "path" && link.line !== null + ? `${link.target}:${link.line}${link.column !== null ? `:${link.column}` : ""}` + : link.target; + options.onLinkActivate(target, event); + }, + }, + }); + surface = new TerminalSurface(mount, handle, options, container); + if (container.ownerDocument.activeElement === container) surface.focus(); + await handle.ready; + return surface; + } catch (error) { + if (surface) surface.dispose(); + else { + handle?.dispose(); + mount.remove(); + } + throw error; + } + } + + private copyText(text: string) { + void writeTextToClipboard(text, "terminal selection").catch((error: unknown) => { + if (!this.disposed) + this.write( + `\r\n[terminal] ${error instanceof Error ? error.message : "Unable to copy terminal selection"}\r\n`, + ); + }); + } + + write(data: string) { + if (this.disposed) return; + this.handle.write(data); + } + + resetAndWrite(data: string) { + if (this.disposed) return; + this.clearSelection(); + this.replaying = true; + try { + this.handle.write(`\x1bc\x1b[3J${data}`); + this.handle.terminal.scrollToBottom(); + } finally { + this.replaying = false; + } + } + + setTheme(theme: TerminalTheme) { + applyTheme(this.mount, theme); + this.handle.view.refreshMetrics(); + } + + setFont(font: { family?: string; size: number }) { + this.mount.style.setProperty("--clo-term-font-size", `${font.size}px`); + if (font.family) this.mount.style.setProperty("--clo-term-font", font.family); + else this.mount.style.removeProperty("--clo-term-font"); + this.handle.view.refreshMetrics(); + } + + fit() { + this.handle.view.refreshMetrics(); + return this.handle.view.fit(); + } + resendSize() { + const { cols, rows } = this.fit(); + this.options.onResize(cols, rows); + } + focus() { + this.handle.view.focus(); + } + setVisible(visible: boolean) { + this.handle.view.setVisible(visible); + } + isAtBottom() { + const scrollbar = this.handle.terminal.scrollbar(); + return scrollbar.offset >= scrollbar.total - scrollbar.len; + } + scrollToBottom() { + this.handle.terminal.scrollToBottom(); + this.handle.view.scheduleFrame(); + } + + getSelection() { + const selection = this.mount.ownerDocument.getSelection(); + if ( + !selection || + !this.mount.contains(selection.anchorNode) || + !this.mount.contains(selection.focusNode) + ) + return ""; + return selection.toString(); + } + + hasSelection() { + return this.getSelection() !== ""; + } + + getSelectionPosition() { + const selection = this.mount.ownerDocument.getSelection(); + if (!selection || !this.hasSelection()) return null; + const row = (node: Node | null) => + (node instanceof Element ? node : node?.parentElement)?.closest(".clo-term-row") + ?.dataset.screenRow; + const start = row(selection.anchorNode); + const end = row(selection.focusNode); + if (start === undefined || end === undefined) return null; + return { + start: { y: Math.min(Number(start), Number(end)) }, + end: { y: Math.max(Number(start), Number(end)) }, + }; + } + + clearSelection() { + if (this.hasSelection()) this.mount.ownerDocument.getSelection()?.removeAllRanges(); + } + + selectAll() { + const rows = this.mount.querySelector(".clo-term-rows"); + if (!rows) return; + const range = this.mount.ownerDocument.createRange(); + range.selectNodeContents(rows); + const selection = this.mount.ownerDocument.getSelection(); + selection?.removeAllRanges(); + selection?.addRange(range); + } + + paste(text: string) { + if (!this.input.readOnly) { + this.input.focus({ preventScroll: true }); + this.options.onData(decoder.decode(this.handle.terminal.encodePaste(text))); + } + } + + dispose() { + if (this.disposed) return; + this.disposed = true; + this.cleanups.forEach((cleanup) => cleanup()); + this.handle.dispose(); + this.mount.remove(); + } +} diff --git a/apps/web/src/terminal/ghostty/README.md b/apps/web/src/terminal/ghostty/README.md deleted file mode 100644 index 37e1c52fb0caa9e0c3494e7d0318017348261eb0..0000000000000000000000000000000000000000 --- a/apps/web/src/terminal/ghostty/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# Ghostty web terminal - -This directory is the browser adapter for the same official `libghostty-vt` C ABI used by Android. -It is intentionally not an xterm compatibility layer. - -- `runtime.ts` owns the singleton WebAssembly instance and runtime ABI layouts. -- `ghostty-write-pty.wasm` is a 112-byte callback trampoline for terminal-generated PTY replies. -- `core.ts` owns per-terminal Ghostty handles and translates the C ABI into render snapshots. -- `renderer.ts` batches backgrounds and style runs into a Canvas 2D frame. -- `surface.ts` owns browser input, IME, selection, scrolling, sizing, links, and cursor blinking. -- `fonts/` vendors the symbols-only Nerd Font (MIT) the surface registers lazily, so - prompt glyphs render without a locally installed Nerd Font. -- `vendor/` holds only the artifacts, reproducibly generated by - `apps/web/scripts/build-libghostty-wasm.sh`. The upstream pin and license live once, at - `native/libghostty-vt/` at the repository root; the wasm embeds the pinned revision - in its build info and the ABI test verifies it against mobile's `VERSION`. - -Keep browser behavior here and terminal transport in the existing client runtime. Do not add React -state to the render loop. Both WASM artifacts are ordinary read-only assets, not executables. diff --git a/apps/web/src/terminal/ghostty/core.test.ts b/apps/web/src/terminal/ghostty/core.test.ts deleted file mode 100644 index 4ecb6018e045cdcbc4732814eb2ce3522f6c4e34..0000000000000000000000000000000000000000 --- a/apps/web/src/terminal/ghostty/core.test.ts +++ /dev/null @@ -1,420 +0,0 @@ -import { afterEach, describe, expect, it, vi } from "vite-plus/test"; -import { - applyTerminalAttachStreamEvent, - DEFAULT_MAX_TERMINAL_BUFFER_BYTES, - INITIAL_TERMINAL_OUTPUT_CURSOR, - nextTerminalAttachSeedState, - readTerminalOutputUpdate, - terminalOutputText, - type TerminalBufferState, -} from "@t3tools/client-runtime/state/terminal"; - -import { writeTerminalOutputUpdate } from "../../components/ThreadTerminalDrawer"; -import { GHOSTTY_CELL_WIDE, GhosttyTerminalCore, ghosttyCellText } from "./core"; -import { loadGhosttyRuntime } from "./runtime"; - -vi.mock("./vendor/ghostty-vt.wasm?url", async () => ({ - default: (await import("./vendor/ghostty-vt.wasm?inline")).default, -})); -vi.mock("./vendor/ghostty-write-pty.wasm?url&no-inline", async () => ({ - default: (await import("./vendor/ghostty-write-pty.wasm?inline")).default, -})); - -function codepointView(codepoints: ReadonlyArray): DataView { - const view = new DataView(new ArrayBuffer(codepoints.length * 4)); - codepoints.forEach((codepoint, index) => view.setUint32(index * 4, codepoint, true)); - return view; -} - -describe("ghosttyCellText", () => { - it("converts oversized grapheme clusters without hitting engine spread limits", () => { - // A program printing one base character followed by a huge run of - // combining marks packs the whole cluster into one cell; spreading that - // many arguments into String.fromCodePoint once overflows the call stack. - const graphemeLength = 130_000; - const view = new DataView(new ArrayBuffer(graphemeLength * 4)); - for (let index = 0; index < graphemeLength; index += 1) { - view.setUint32(index * 4, index === 0 ? "a".codePointAt(0)! : 0x301, true); - } - const text = ghosttyCellText(view, graphemeLength); - expect(text.length).toBe(graphemeLength); - expect(text.codePointAt(0)).toBe("a".codePointAt(0)); - expect(text.codePointAt(1)).toBe(0x301); - expect(text.codePointAt(graphemeLength - 1)).toBe(0x301); - }); - - it("converts small clusters including astral codepoints", () => { - const text = ghosttyCellText(codepointView([0x1f642, 0x20e3]), 2); - expect([...text]).toEqual(["\u{1F642}", "\u{20E3}"]); - }); - - it("converts a single astral codepoint", () => { - expect(ghosttyCellText(codepointView([0x1f642]), 1)).toBe("🙂"); - }); - - it("returns an empty string for empty cells", () => { - expect(ghosttyCellText(codepointView([]), 0)).toBe(""); - }); -}); - -describe("GhosttyTerminalCore snapshots", () => { - const cores = new Set(); - - async function createCore(onData: (data: string) => void = () => {}) { - const core = await GhosttyTerminalCore.create( - 12, - 3, - 8, - 16, - { - foreground: { r: 255, g: 255, b: 255 }, - background: { r: 0, g: 0, b: 0 }, - cursor: { r: 255, g: 255, b: 255 }, - }, - onData, - ); - cores.add(core); - return core; - } - - function createSession(history: string) { - return applyTerminalAttachStreamEvent(nextTerminalAttachSeedState(), { - type: "snapshot", - snapshot: { - threadId: "terminal-stream-test", - terminalId: "term-1", - cwd: "/repo", - worktreePath: null, - status: "running", - pid: 123, - history, - exitCode: null, - exitSignal: null, - label: "Terminal", - updatedAt: "2026-09-04T00:00:00.000Z", - }, - }); - } - - function append(state: TerminalBufferState, data: string) { - return applyTerminalAttachStreamEvent(state, { - type: "output", - threadId: "terminal-stream-test", - terminalId: "term-1", - data, - }); - } - - afterEach(() => { - for (const core of cores) core.dispose(); - cores.clear(); - vi.restoreAllMocks(); - }); - - it("preserves styles, wide cells, and selection after shared memory grows", async () => { - const core = await createCore(); - const runtime = await loadGhosttyRuntime(); - const grapheme = `e${"\u0301".repeat(64)}`; - core.write(`\x1b[1;3;4;8;9;53;38;2;123;45;67;48;2;9;8;7m${grapheme}\x1b[0m界🙂`); - const cells = core.snapshot().rowData[0]!.cells; - expect(cells[0]).toEqual({ - text: grapheme, - wide: 0, - foreground: { r: 123, g: 45, b: 67 }, - background: { r: 9, g: 8, b: 7 }, - bold: true, - italic: true, - invisible: true, - strikethrough: true, - overline: true, - underline: true, - selected: false, - }); - expect(cells.slice(1, 5).map(({ text, wide }) => ({ text, wide }))).toEqual([ - { text: "界", wide: 0 }, - { text: "", wide: GHOSTTY_CELL_WIDE.spacerTail }, - { text: "🙂", wide: 0 }, - { text: "", wide: GHOSTTY_CELL_WIDE.spacerTail }, - ]); - - runtime.memory.grow(1); - core.setSelection({ x: 0, y: 0 }, { x: 2, y: 0 }); - expect(core.snapshot().rowData[0]!.cells[0]).toEqual({ ...cells[0], selected: true }); - core.clearSelection(); - expect(core.snapshot().rowData[0]!.cells[0]).toEqual(cells[0]); - - core.resetAndWrite("\x1b[2;7;38;2;40;100;200;48;2;12;34;56mC\x1b[0m"); - expect(core.snapshot().rowData[0]!.cells[0]).toMatchObject({ - text: "C", - foreground: { r: 22, g: 59, b: 112 }, - background: { r: 40, g: 100, b: 200 }, - bold: false, - underline: false, - selected: false, - }); - }); - - it("resolves foreground and background independently without retaining prior cell colors", async () => { - const core = await createCore(); - core.write( - "\x1b[38;2;123;45;67mF\x1b[39;48;2;9;8;7mB\x1b[0mD\x1b[38;2;12;34;56;48;2;78;90;123mC\x1b[0mE", - ); - expect( - core - .snapshot() - .rowData[0]!.cells.slice(0, 6) - .map(({ text, foreground, background }) => ({ text, foreground, background })), - ).toEqual([ - { text: "F", foreground: { r: 123, g: 45, b: 67 }, background: { r: 0, g: 0, b: 0 } }, - { text: "B", foreground: { r: 255, g: 255, b: 255 }, background: { r: 9, g: 8, b: 7 } }, - { text: "D", foreground: { r: 255, g: 255, b: 255 }, background: { r: 0, g: 0, b: 0 } }, - { text: "C", foreground: { r: 12, g: 34, b: 56 }, background: { r: 78, g: 90, b: 123 } }, - { text: "E", foreground: { r: 255, g: 255, b: 255 }, background: { r: 0, g: 0, b: 0 } }, - { text: "", foreground: { r: 255, g: 255, b: 255 }, background: { r: 0, g: 0, b: 0 } }, - ]); - }); - - it("paints ANSI colors from the theme palette and repaints them on theme change", async () => { - const core = await createCore(); - const theme = { - foreground: { r: 255, g: 255, b: 255 }, - background: { r: 0, g: 0, b: 0 }, - cursor: { r: 255, g: 255, b: 255 }, - }; - const palette = Array.from({ length: 16 }, (_, index) => ({ r: index, g: 1, b: 2 })); - core.write("\x1b[31mR\x1b[38;5;196mX\x1b[0m"); - core.setTheme({ ...theme, palette }); - let cells = core.snapshot().rowData[0]!.cells; - expect(cells[0]!.foreground).toEqual({ r: 1, g: 1, b: 2 }); - expect(cells[1]!.foreground).toEqual({ r: 255, g: 0, b: 0 }); - - core.setTheme({ ...theme, palette: palette.map((color) => ({ ...color, g: 9 })) }); - cells = core.snapshot().rowData[0]!.cells; - expect(cells[0]!.foreground).toEqual({ r: 1, g: 9, b: 2 }); - expect(cells[1]!.foreground).toEqual({ r: 255, g: 0, b: 0 }); - }); - - it("reuses a grown grapheme buffer and releases it on disposal", async () => { - const core = await createCore(); - const runtime = await loadGhosttyRuntime(); - core.write("ASCII"); - core.snapshot(); - - const grapheme = `z${"\u0301".repeat(256)}`; - core.resetAndWrite(`${grapheme}X`); - const alloc = vi.spyOn(runtime, "alloc"); - const free = vi.spyOn(runtime, "free"); - expect( - core - .snapshot() - .rowData[0]!.cells.slice(0, 2) - .map((cell) => cell.text), - ).toEqual([grapheme, "X"]); - expect(alloc).toHaveBeenCalledTimes(1); - const allocation = alloc.mock.results[0]!; - if (allocation.type !== "return") throw new Error("Grapheme allocation did not return"); - const buffer = allocation.value; - const capacity = alloc.mock.calls[0]![0]; - - core.write("\rQ\u0301"); - alloc.mockClear(); - expect(core.snapshot().rowData[0]!.cells[0]!.text).toBe("Q\u0301"); - expect(alloc).not.toHaveBeenCalled(); - core.dispose(); - expect(free).toHaveBeenCalledWith(buffer, capacity); - }); - - it.each(["varied", "identical"] as const)( - "preserves Ghostty state through a full MiB of %s output without rollover resets", - async (kind) => { - const [core, reference] = await Promise.all([createCore(), createCore()]); - const initial = "\x1b[31m"; - let state = createSession(initial); - const first = readTerminalOutputUpdate(state.output, INITIAL_TERMINAL_OUTPUT_CURSOR); - writeTerminalOutputUpdate(core, first); - reference.resetAndWrite(initial); - let cursor = first.cursor; - const reset = vi.spyOn(core, "resetAndWrite"); - const inputs: string[] = []; - let receivedCharacters = 0; - - for (let index = 0; index < 128; index += 1) { - const data = - kind === "identical" - ? "x".repeat(8192) - : `${index.toString().padStart(4, "0")}\r\n${"x".repeat(8186)}`; - inputs.push(data); - state = append(state, data); - const update = readTerminalOutputUpdate(state.output, cursor); - if (update.type !== "append") throw new Error(`Expected append, received ${update.type}`); - receivedCharacters += update.data.length; - writeTerminalOutputUpdate(core, update); - cursor = update.cursor; - } - - reference.write(inputs.join("")); - expect(receivedCharacters).toBe(1024 * 1024); - expect(state.output.retainedBytes).toBe(DEFAULT_MAX_TERMINAL_BUFFER_BYTES); - expect(reset).not.toHaveBeenCalled(); - expect(core.snapshot()).toEqual(reference.snapshot()); - }, - ); - - it("preserves Unicode and split ANSI parser state across batched renderer reads", async () => { - const [core, reference] = await Promise.all([createCore(), createCore()]); - let state = createSession(""); - const first = readTerminalOutputUpdate(state.output, INITIAL_TERMINAL_OUTPUT_CURSOR); - writeTerminalOutputUpdate(core, first); - let cursor = first.cursor; - const reset = vi.spyOn(core, "resetAndWrite"); - const inputs = [ - `${"a".repeat(16_383)}🙂`, - "\x1b[3", - "1m", - "e", - "\u0301界🙂", - "\x1b[0", - "m\r\n", - "\x1b]8;;https://t3.codes\x1b", - "\\link", - "\x1b]8;;\x1b", - "\\\x1b[?1049h", - "alternate", - "\x1b[?1049l", - "\r\nend", - ]; - let received = ""; - for (const [index, data] of inputs.entries()) { - state = append(state, data); - if (index % 3 !== 0 && index !== inputs.length - 1) continue; - const update = readTerminalOutputUpdate(state.output, cursor); - if (update.type !== "append") throw new Error(`Expected append, received ${update.type}`); - received += update.data; - writeTerminalOutputUpdate(core, update); - cursor = update.cursor; - } - - reference.write(inputs.join("")); - expect(received).toBe(inputs.join("")); - expect(reset).not.toHaveBeenCalled(); - expect(core.snapshot()).toEqual(reference.snapshot()); - }); - - it("answers a live VT query when batched reads cross a chunk compaction", async () => { - const replies: string[] = []; - const core = await createCore((data) => replies.push(data)); - core.write("\x1b[5n"); - expect(replies).toEqual(["\x1b[0n"]); - replies.length = 0; - - let state = createSession(""); - const initial = readTerminalOutputUpdate(state.output, INITIAL_TERMINAL_OUTPUT_CURSOR); - writeTerminalOutputUpdate(core, initial); - let cursor = initial.cursor; - for (let index = 0; index < 1000; index += 1) { - state = append(state, "x"); - const update = readTerminalOutputUpdate(state.output, cursor); - writeTerminalOutputUpdate(core, update); - cursor = update.cursor; - } - for (let index = 0; index < 24; index += 1) state = append(state, "x"); - state = append(state, "\x1b[5n"); - const update = readTerminalOutputUpdate(state.output, cursor); - writeTerminalOutputUpdate(core, update); - - expect({ type: update.type, replies }).toEqual({ type: "append", replies: ["\x1b[0n"] }); - }); - - it("recovers a lagging renderer once from bounded output and resumes appending", async () => { - const [core, reference] = await Promise.all([createCore(), createCore()]); - let state = createSession("\x1b[31mold"); - const initial = readTerminalOutputUpdate(state.output, INITIAL_TERMINAL_OUTPUT_CURSOR); - writeTerminalOutputUpdate(core, initial); - const reset = vi.spyOn(core, "resetAndWrite"); - const data = "line\r\n".repeat(8192); - for (let index = 0; index < 16; index += 1) state = append(state, data); - - const recovery = readTerminalOutputUpdate(state.output, initial.cursor); - if (recovery.type !== "reset") throw new Error(`Expected reset, received ${recovery.type}`); - expect(new TextEncoder().encode(recovery.data).byteLength).toBe( - DEFAULT_MAX_TERMINAL_BUFFER_BYTES, - ); - writeTerminalOutputUpdate(core, recovery); - reference.resetAndWrite(recovery.data); - expect(core.snapshot()).toEqual(reference.snapshot()); - - state = append(state, "\r\nlatest"); - const next = readTerminalOutputUpdate(state.output, recovery.cursor); - expect(next.type).toBe("append"); - writeTerminalOutputUpdate(core, next); - reference.write("\r\nlatest"); - expect(reset).toHaveBeenCalledTimes(1); - expect(core.snapshot()).toEqual(reference.snapshot()); - }); - - it("replays the latest retained output when WASM arrives after several events", async () => { - const pendingCore = createCore(); - let state = createSession("before"); - state = append(state, "\r\nduring "); - state = append(state, "🙂 load"); - const core = await pendingCore; - const first = readTerminalOutputUpdate(state.output, INITIAL_TERMINAL_OUTPUT_CURSOR); - writeTerminalOutputUpdate(core, first); - const reference = await createCore(); - reference.resetAndWrite(terminalOutputText(state.output)); - const reset = vi.spyOn(core, "resetAndWrite"); - - state = append(state, "\r\nafter"); - const next = readTerminalOutputUpdate(state.output, first.cursor); - expect(next).toMatchObject({ type: "append", data: "\r\nafter" }); - writeTerminalOutputUpdate(core, next); - reference.write("\r\nafter"); - expect(reset).not.toHaveBeenCalled(); - expect(core.snapshot()).toEqual(reference.snapshot()); - }); - - it("resets real Ghostty for a repeated snapshot, clear, restart, and a fresh attach", async () => { - const [core, reference] = await Promise.all([createCore(), createCore()]); - let state = createSession("hello"); - const initial = readTerminalOutputUpdate(state.output, INITIAL_TERMINAL_OUTPUT_CURSOR); - writeTerminalOutputUpdate(core, initial); - let cursor = initial.cursor; - - const snapshot = { - threadId: "terminal-stream-test", - terminalId: "term-1", - cwd: "/repo", - worktreePath: null, - status: "running" as const, - pid: 456, - history: "hello", - exitCode: null, - exitSignal: null, - label: "Terminal", - updatedAt: "2026-09-04T00:00:01.000Z", - }; - const events = [ - { type: "snapshot", snapshot }, - { type: "cleared", threadId: snapshot.threadId, terminalId: snapshot.terminalId }, - { type: "restarted", threadId: snapshot.threadId, terminalId: snapshot.terminalId, snapshot }, - ] as const; - for (const event of events) { - core.write("\r\nstale local text"); - state = applyTerminalAttachStreamEvent(state, event); - const update = readTerminalOutputUpdate(state.output, cursor); - expect(update.type).toBe("reset"); - writeTerminalOutputUpdate(core, update); - cursor = update.cursor; - reference.resetAndWrite(event.type === "cleared" ? "" : "hello"); - expect(core.snapshot()).toEqual(reference.snapshot()); - } - - core.write("\r\nstale local text"); - state = createSession("hello"); - const reattached = readTerminalOutputUpdate(state.output, cursor); - expect(reattached.type).toBe("reset"); - writeTerminalOutputUpdate(core, reattached); - reference.resetAndWrite("hello"); - expect(core.snapshot()).toEqual(reference.snapshot()); - }); -}); diff --git a/apps/web/src/terminal/ghostty/core.ts b/apps/web/src/terminal/ghostty/core.ts deleted file mode 100644 index 6cf30d8493745a52d6573e1e22998eab9e069795..0000000000000000000000000000000000000000 --- a/apps/web/src/terminal/ghostty/core.ts +++ /dev/null @@ -1,1290 +0,0 @@ -import { - type GhosttyKeyboardLayoutMap, - ghosttyConsumedMods, - ghosttyKeyForCode, - ghosttyUnshiftedCodepoint, - loadGhosttyKeyboardLayoutMap, -} from "./keyCodes"; -import { GhosttyRuntime, loadGhosttyRuntime } from "./runtime"; - -const GHOSTTY_SUCCESS = 0; -const GHOSTTY_OUT_OF_SPACE = -3; -const MAX_SCROLLBACK_ROWS = 10_000; -// wasm32 C ABI layout for GhosttyTerminalSelectionFormatOptions at the -// libghostty-vt revision pinned alongside this module. -const SELECTION_FORMAT_OPTIONS_SIZE = 16; -const PALETTE_BYTES = 256 * 3; - -const RENDER_DATA = { - cols: 1, - rows: 2, - dirty: 3, - rowIterator: 4, - background: 5, - foreground: 6, - cursor: 7, - cursorHasValue: 8, - cursorStyle: 10, - cursorVisible: 11, - cursorBlinking: 12, - cursorInViewport: 14, - cursorX: 15, - cursorY: 16, -} as const; - -const ROW_DATA = { - dirty: 1, - raw: 2, - cells: 3, -} as const; - -const CELL_DATA = { - raw: 1, - style: 2, - graphemesLength: 3, - graphemes: 4, - background: 5, - foreground: 6, - selected: 7, -} as const; - -// wasm32 arrays for the official row_cells_get_multi API. Optional colors -// come last because an unset color stops the query at that field. -const CELL_QUERY = { - keys: 0, - values: 20, - graphemesLength: 40, - selected: 44, - background: 48, - foreground: 52, - written: 56, - size: 60, -} as const; - -const RAW_CELL_DATA = { - wide: 3, -} as const; - -export const GHOSTTY_CELL_WIDE = { - narrow: 0, - wide: 1, - spacerTail: 2, - spacerHead: 3, -} as const; - -export interface GhosttyColor { - readonly r: number; - readonly g: number; - readonly b: number; -} - -export interface GhosttyTheme { - readonly foreground: GhosttyColor; - readonly background: GhosttyColor; - readonly cursor: GhosttyColor; - readonly palette?: readonly GhosttyColor[]; - /** CSS color the renderer overlays on selected cells; not sent to Ghostty. */ - readonly selectionBackground?: string; -} - -export interface GhosttyCell { - readonly text: string; - readonly wide: number; - readonly foreground: GhosttyColor; - readonly background: GhosttyColor; - readonly bold: boolean; - readonly italic: boolean; - readonly invisible: boolean; - readonly strikethrough: boolean; - readonly overline: boolean; - readonly underline: boolean; - readonly selected: boolean; -} - -export interface GhosttyRow { - readonly cells: readonly GhosttyCell[]; - readonly text: string; - readonly isWrapContinuation: boolean; - /** Whether this row soft-wraps onto the next row. */ - readonly wrapsToNext: boolean; -} - -export interface GhosttySnapshot { - readonly cols: number; - readonly rows: number; - readonly foreground: GhosttyColor; - readonly background: GhosttyColor; - readonly cursor: GhosttyColor; - readonly cursorX: number; - readonly cursorY: number; - readonly cursorVisible: boolean; - readonly cursorBlinking: boolean; - readonly cursorStyle: number; - readonly dirtyRows: ReadonlySet; - readonly rowData: readonly GhosttyRow[]; -} - -export interface GhosttySelectionRange { - readonly viewport: { - readonly start: { readonly x: number; readonly y: number }; - readonly end: { readonly x: number; readonly y: number }; - }; - readonly screen: { - readonly start: { readonly x: number; readonly y: number }; - readonly end: { readonly x: number; readonly y: number }; - }; -} - -export interface GhosttyScrollbar { - readonly total: number; - readonly offset: number; - readonly len: number; -} - -/** Grid position tagged with its Ghostty coordinate space: 1 viewport, 2 screen. */ -export interface GhosttyPointInput { - readonly x: number; - readonly y: number; - readonly tag?: 1 | 2; -} - -export interface GhosttyMouseInput { - readonly action: "press" | "release" | "motion"; - readonly button: number | null; - readonly mods: number; - readonly x: number; - readonly y: number; - readonly screenWidth: number; - readonly screenHeight: number; - readonly cellWidth: number; - readonly cellHeight: number; - readonly paddingLeft: number; - readonly paddingRight: number; - readonly paddingTop: number; - readonly paddingBottom: number; - readonly anyButtonPressed: boolean; -} - -const decoder = new TextDecoder(); -const encoder = new TextEncoder(); - -function blend(foreground: GhosttyColor, background: GhosttyColor): GhosttyColor { - const channel = (front: number, back: number) => Math.floor((front * 155 + back * 100) / 255); - return { - r: channel(foreground.r, background.r), - g: channel(foreground.g, background.g), - b: channel(foreground.b, background.b), - }; -} - -function sameColor(left: GhosttyColor, right: GhosttyColor): boolean { - return left.r === right.r && left.g === right.g && left.b === right.b; -} - -/** - * A terminal program can print one base character followed by a huge run of - * combining marks, packing hundreds of thousands of codepoints into a single - * cell that still fits the scrollback buffer. Engines cap spread-call - * arguments far below that, so convert in bounded chunks instead of spreading - * every codepoint into String.fromCodePoint at once. - */ -export function ghosttyCellText(codepointView: DataView, graphemeLength: number): string { - if (graphemeLength === 1) return String.fromCodePoint(codepointView.getUint32(0, true)); - const CHUNK_SIZE = 4_096; - let text = ""; - for (let start = 0; start < graphemeLength; start += CHUNK_SIZE) { - const count = Math.min(CHUNK_SIZE, graphemeLength - start); - const codes = new Array(count); - for (let index = 0; index < count; index += 1) { - codes[index] = codepointView.getUint32((start + index) * 4, true); - } - text += String.fromCodePoint(...codes); - } - return text; -} - -export class GhosttyTerminalCore { - private readonly runtime: GhosttyRuntime; - private terminalSlot = 0; - private terminal = 0; - private renderStateSlot = 0; - private renderState = 0; - private rowIteratorSlot = 0; - private rowCellsSlot = 0; - private keyEncoderSlot = 0; - private keyEncoder = 0; - private keyEventSlot = 0; - private keyEvent = 0; - private mouseEncoderSlot = 0; - private mouseEncoder = 0; - private mouseEventSlot = 0; - private mouseEvent = 0; - private ptyWriterId = 0; - private ptyWriter: ((data: string) => void) | null = null; - private scratch = 0; - private graphemes = 0; - private graphemeCapacity = 0; - private style = 0; - private cellQuery = 0; - private scrollbar = 0; - private rows: GhosttyRow[] = []; - private disposed = false; - private keyboardLayoutMap: GhosttyKeyboardLayoutMap | undefined; - - private constructor(runtime: GhosttyRuntime) { - this.runtime = runtime; - void loadGhosttyKeyboardLayoutMap().then((layoutMap) => { - if (!this.disposed) this.keyboardLayoutMap = layoutMap; - }); - } - - static async create( - cols: number, - rows: number, - cellWidth: number, - cellHeight: number, - theme: GhosttyTheme, - onPtyData: (data: string) => void, - ): Promise { - const core = new GhosttyTerminalCore(await loadGhosttyRuntime()); - try { - core.initialize(cols, rows, cellWidth, cellHeight, theme, onPtyData); - return core; - } catch (error) { - core.dispose(); - throw error; - } - } - - private initialize( - cols: number, - rows: number, - cellWidth: number, - cellHeight: number, - theme: GhosttyTheme, - onPtyData: (data: string) => void, - ): void { - const optionsSize = this.runtime.layout("GhosttyTerminalOptions").size; - const options = this.runtime.alloc(optionsSize); - this.runtime.setField(options, "GhosttyTerminalOptions", "cols", cols); - this.runtime.setField(options, "GhosttyTerminalOptions", "rows", rows); - this.runtime.setField(options, "GhosttyTerminalOptions", "max_scrollback", MAX_SCROLLBACK_ROWS); - this.terminalSlot = this.runtime.allocOpaque(); - const terminalResult = this.runtime.call("ghostty_terminal_new", 0, this.terminalSlot, options); - this.runtime.free(options, optionsSize); - this.assertSuccess("ghostty_terminal_new", terminalResult); - this.terminal = this.runtime.readPointer(this.terminalSlot); - this.applyDefaultCursorBlink(); - this.ptyWriter = onPtyData; - this.ptyWriterId = this.runtime.attachPtyWriter(this.terminal, onPtyData); - - this.renderStateSlot = this.runtime.allocOpaque(); - this.assertSuccess( - "ghostty_render_state_new", - this.runtime.call("ghostty_render_state_new", 0, this.renderStateSlot), - ); - this.renderState = this.runtime.readPointer(this.renderStateSlot); - - this.rowIteratorSlot = this.runtime.allocOpaque(); - this.assertSuccess( - "ghostty_render_state_row_iterator_new", - this.runtime.call("ghostty_render_state_row_iterator_new", 0, this.rowIteratorSlot), - ); - this.rowCellsSlot = this.runtime.allocOpaque(); - this.assertSuccess( - "ghostty_render_state_row_cells_new", - this.runtime.call("ghostty_render_state_row_cells_new", 0, this.rowCellsSlot), - ); - - this.keyEncoderSlot = this.runtime.allocOpaque(); - this.assertSuccess( - "ghostty_key_encoder_new", - this.runtime.call("ghostty_key_encoder_new", 0, this.keyEncoderSlot), - ); - this.keyEncoder = this.runtime.readPointer(this.keyEncoderSlot); - this.keyEventSlot = this.runtime.allocOpaque(); - this.assertSuccess( - "ghostty_key_event_new", - this.runtime.call("ghostty_key_event_new", 0, this.keyEventSlot), - ); - this.keyEvent = this.runtime.readPointer(this.keyEventSlot); - - this.mouseEncoderSlot = this.runtime.allocOpaque(); - this.assertSuccess( - "ghostty_mouse_encoder_new", - this.runtime.call("ghostty_mouse_encoder_new", 0, this.mouseEncoderSlot), - ); - this.mouseEncoder = this.runtime.readPointer(this.mouseEncoderSlot); - this.mouseEventSlot = this.runtime.allocOpaque(); - this.assertSuccess( - "ghostty_mouse_event_new", - this.runtime.call("ghostty_mouse_event_new", 0, this.mouseEventSlot), - ); - this.mouseEvent = this.runtime.readPointer(this.mouseEventSlot); - - this.scratch = this.runtime.alloc(16); - const styleSize = this.runtime.layout("GhosttyStyle").size; - this.style = this.runtime.alloc(styleSize); - this.runtime.setField(this.style, "GhosttyStyle", "size", styleSize); - this.cellQuery = this.runtime.alloc(CELL_QUERY.size); - const queryView = this.runtime.memoryDataView(); - const cellFields = [ - [CELL_DATA.style, this.style], - [CELL_DATA.graphemesLength, this.cellQuery + CELL_QUERY.graphemesLength], - [CELL_DATA.selected, this.cellQuery + CELL_QUERY.selected], - [CELL_DATA.background, this.cellQuery + CELL_QUERY.background], - [CELL_DATA.foreground, this.cellQuery + CELL_QUERY.foreground], - ] as const; - for (const [index, [key, pointer]] of cellFields.entries()) { - queryView.setUint32(this.cellQuery + CELL_QUERY.keys + index * 4, key, true); - queryView.setUint32(this.cellQuery + CELL_QUERY.values + index * 4, pointer, true); - } - this.scrollbar = this.runtime.alloc(this.runtime.layout("GhosttyTerminalScrollbar").size); - this.setTheme(theme); - this.resize(cols, rows, cellWidth, cellHeight); - } - - write(data: string | Uint8Array): void { - this.ensureActive(); - const bytes = typeof data === "string" ? encoder.encode(data) : data; - if (bytes.length === 0) return; - const pointer = this.runtime.alloc(bytes.length); - this.runtime.bytes(pointer, bytes.length).set(bytes); - this.runtime.call("ghostty_terminal_vt_write", this.terminal, pointer, bytes.length); - this.runtime.free(pointer, bytes.length); - } - - resetAndWrite(data: string): void { - this.ensureActive(); - this.runtime.call("ghostty_terminal_reset", this.terminal); - // RIS returns the cursor to Ghostty's built-in steady default, so the - // embedder default has to be applied again before the replay runs. - this.applyDefaultCursorBlink(); - this.rows = []; - if (data.length === 0) return; - const writer = this.ptyWriter; - if (this.ptyWriterId !== 0) { - this.runtime.detachPtyWriter(this.terminal, this.ptyWriterId); - this.ptyWriterId = 0; - } - try { - this.write(data); - } finally { - if (writer !== null && !this.disposed) { - this.ptyWriterId = this.runtime.attachPtyWriter(this.terminal, writer); - } - } - } - - resize(cols: number, rows: number, cellWidth: number, cellHeight: number): void { - this.ensureActive(); - this.assertSuccess( - "ghostty_terminal_resize", - this.runtime.call( - "ghostty_terminal_resize", - this.terminal, - Math.max(1, Math.min(65_535, cols)), - Math.max(1, Math.min(65_535, rows)), - Math.max(1, Math.round(cellWidth)), - Math.max(1, Math.round(cellHeight)), - ), - ); - } - - /** - * Ghostty's built-in default cursor is steady, while the xterm.js renderer - * this replaced ran with `cursorBlink: true`. Option 23 is the embedder's - * default blink, which is the state a session starts in and returns to on - * DECSCUSR reset (CSI 0 q), so programs that ask for a specific cursor - * through DECSCUSR or DEC mode 12 still win. - */ - private applyDefaultCursorBlink(): void { - const blink = this.runtime.alloc(1); - this.runtime.bytes(blink, 1)[0] = 1; - this.runtime.call("ghostty_terminal_set", this.terminal, 23, blink); - this.runtime.free(blink, 1); - } - - setTheme(theme: GhosttyTheme): void { - this.ensureActive(); - const color = this.runtime.alloc(3); - for (const [option, value] of [ - [11, theme.foreground], - [12, theme.background], - [13, theme.cursor], - ] as const) { - this.runtime.bytes(color, 3).set([value.r, value.g, value.b]); - this.runtime.call("ghostty_terminal_set", this.terminal, option, color); - } - this.runtime.free(color, 3); - if (theme.palette) this.setPalette(theme.palette); - } - - private setPalette(colors: readonly GhosttyColor[]): void { - // Ghostty takes all 256 entries; keep its defaults for 16-255. - const palette = this.runtime.alloc(PALETTE_BYTES); - this.runtime.call("ghostty_terminal_get", this.terminal, 25, palette); - const bytes = this.runtime.bytes(palette, PALETTE_BYTES); - colors.slice(0, 16).forEach((color, index) => { - bytes.set([color.r, color.g, color.b], index * 3); - }); - this.runtime.call("ghostty_terminal_set", this.terminal, 14, palette); - this.runtime.free(palette, PALETTE_BYTES); - } - - scroll(deltaRows: number): void { - this.ensureActive(); - const layout = this.runtime.layout("GhosttyTerminalScrollViewport"); - const scroll = this.runtime.alloc(layout.size); - this.runtime.setField(scroll, "GhosttyTerminalScrollViewport", "tag", 2); - const value = layout.fields.value!; - this.runtime.view(scroll + value.offset, value.size).setInt32(0, deltaRows, true); - this.runtime.call("ghostty_terminal_scroll_viewport", this.terminal, scroll); - this.runtime.free(scroll, layout.size); - } - - scrollToBottom(): void { - this.ensureActive(); - const layout = this.runtime.layout("GhosttyTerminalScrollViewport"); - const scroll = this.runtime.alloc(layout.size); - this.runtime.setField(scroll, "GhosttyTerminalScrollViewport", "tag", 1); - this.runtime.call("ghostty_terminal_scroll_viewport", this.terminal, scroll); - this.runtime.free(scroll, layout.size); - } - - isViewportActive(): boolean { - this.ensureActive(); - this.runtime.bytes(this.scratch, 1)[0] = 0; - return ( - this.runtime.call("ghostty_terminal_get", this.terminal, 32, this.scratch) === - GHOSTTY_SUCCESS && this.runtime.bytes(this.scratch, 1)[0] !== 0 - ); - } - - scrollbarState(): GhosttyScrollbar | null { - this.ensureActive(); - const layout = this.runtime.layout("GhosttyTerminalScrollbar"); - this.runtime.bytes(this.scrollbar, layout.size).fill(0); - if ( - this.runtime.call("ghostty_terminal_get", this.terminal, 9, this.scrollbar) !== - GHOSTTY_SUCCESS - ) { - return null; - } - return { - total: this.runtime.readField(this.scrollbar, "GhosttyTerminalScrollbar", "total"), - offset: this.runtime.readField(this.scrollbar, "GhosttyTerminalScrollbar", "offset"), - len: this.runtime.readField(this.scrollbar, "GhosttyTerminalScrollbar", "len"), - }; - } - - isMouseTracking(): boolean { - this.ensureActive(); - this.runtime.bytes(this.scratch, 1)[0] = 0; - return ( - this.runtime.call("ghostty_terminal_get", this.terminal, 11, this.scratch) === - GHOSTTY_SUCCESS && this.runtime.bytes(this.scratch, 1)[0] !== 0 - ); - } - - isMouseAnyEventTracking(): boolean { - this.ensureActive(); - this.runtime.bytes(this.scratch, 1)[0] = 0; - return ( - this.runtime.call("ghostty_terminal_mode_get", this.terminal, 1003, this.scratch) === - GHOSTTY_SUCCESS && this.runtime.bytes(this.scratch, 1)[0] !== 0 - ); - } - - isAlternateScreen(): boolean { - this.ensureActive(); - this.runtime.bytes(this.scratch, 4).fill(0); - return ( - this.runtime.call("ghostty_terminal_get", this.terminal, 6, this.scratch) === - GHOSTTY_SUCCESS && this.runtime.view(this.scratch, 4).getUint32(0, true) === 1 - ); - } - - isApplicationCursorKeys(): boolean { - this.ensureActive(); - this.runtime.bytes(this.scratch, 1)[0] = 0; - return ( - this.runtime.call("ghostty_terminal_mode_get", this.terminal, 1, this.scratch) === - GHOSTTY_SUCCESS && this.runtime.bytes(this.scratch, 1)[0] !== 0 - ); - } - - encodeKey(event: KeyboardEvent, action: "press" | "release" = "press"): string { - this.ensureActive(); - this.runtime.call("ghostty_key_encoder_setopt_from_terminal", this.keyEncoder, this.terminal); - this.runtime.call( - "ghostty_key_event_set_action", - this.keyEvent, - action === "release" ? 0 : event.repeat ? 2 : 1, - ); - this.runtime.call("ghostty_key_event_set_key", this.keyEvent, ghosttyKeyForCode(event.code)); - const mods = - (event.shiftKey ? 1 : 0) | - (event.ctrlKey ? 1 << 1 : 0) | - (event.altKey ? 1 << 2 : 0) | - (event.metaKey ? 1 << 3 : 0) | - (event.getModifierState("CapsLock") ? 1 << 4 : 0) | - (event.getModifierState("NumLock") ? 1 << 5 : 0); - this.runtime.call("ghostty_key_event_set_mods", this.keyEvent, mods); - this.runtime.call( - "ghostty_key_event_set_consumed_mods", - this.keyEvent, - ghosttyConsumedMods(event), - ); - this.runtime.call("ghostty_key_event_set_composing", this.keyEvent, event.isComposing ? 1 : 0); - this.runtime.call( - "ghostty_key_event_set_unshifted_codepoint", - this.keyEvent, - ghosttyUnshiftedCodepoint(event, this.keyboardLayoutMap), - ); - - const text = event.key.length === 1 ? event.key : ""; - const textBytes = encoder.encode(text); - const textPointer = textBytes.length === 0 ? 0 : this.runtime.alloc(textBytes.length); - if (textPointer !== 0) this.runtime.bytes(textPointer, textBytes.length).set(textBytes); - this.runtime.call("ghostty_key_event_set_utf8", this.keyEvent, textPointer, textBytes.length); - - const written = this.runtime.call("ghostty_wasm_alloc_usize"); - const encoded = this.encodeOutput(written, (output, outputSize) => - this.runtime.call( - "ghostty_key_encoder_encode", - this.keyEncoder, - this.keyEvent, - output, - outputSize, - written, - ), - ); - this.runtime.call("ghostty_wasm_free_usize", written); - if (textPointer !== 0) this.runtime.free(textPointer, textBytes.length); - return encoded; - } - - encodePaste(data: string): string { - this.ensureActive(); - const input = encoder.encode(data); - if (input.length === 0) return ""; - const inputPointer = this.runtime.alloc(input.length); - this.runtime.bytes(inputPointer, input.length).set(input); - this.runtime.bytes(this.scratch, 1)[0] = 0; - const bracketed = - this.runtime.call("ghostty_terminal_mode_get", this.terminal, 2004, this.scratch) === - GHOSTTY_SUCCESS && this.runtime.bytes(this.scratch, 1)[0] !== 0; - const written = this.runtime.call("ghostty_wasm_alloc_usize"); - let encoded = ""; - const sizeResult = this.runtime.call( - "ghostty_paste_encode", - inputPointer, - input.length, - bracketed ? 1 : 0, - 0, - 0, - written, - ); - const outputSize = this.runtime.view(written, 4).getUint32(0, true); - if (sizeResult === GHOSTTY_OUT_OF_SPACE && outputSize > 0) { - const output = this.runtime.alloc(outputSize); - const result = this.runtime.call( - "ghostty_paste_encode", - inputPointer, - input.length, - bracketed ? 1 : 0, - output, - outputSize, - written, - ); - const outputLength = this.runtime.view(written, 4).getUint32(0, true); - encoded = - result === GHOSTTY_SUCCESS ? decoder.decode(this.runtime.bytes(output, outputLength)) : ""; - this.runtime.free(output, outputSize); - } - this.runtime.call("ghostty_wasm_free_usize", written); - this.runtime.free(inputPointer, input.length); - return encoded; - } - - encodeMouse(input: GhosttyMouseInput): string { - this.ensureActive(); - this.runtime.call( - "ghostty_mouse_encoder_setopt_from_terminal", - this.mouseEncoder, - this.terminal, - ); - - const sizeLayout = this.runtime.layout("GhosttyMouseEncoderSize"); - const size = this.runtime.alloc(sizeLayout.size); - for (const [field, value] of [ - ["size", sizeLayout.size], - ["screen_width", input.screenWidth], - ["screen_height", input.screenHeight], - ["cell_width", input.cellWidth], - ["cell_height", input.cellHeight], - ["padding_top", input.paddingTop], - ["padding_bottom", input.paddingBottom], - ["padding_right", input.paddingRight], - ["padding_left", input.paddingLeft], - ] as const) { - this.runtime.setField(size, "GhosttyMouseEncoderSize", field, Math.max(0, Math.round(value))); - } - this.runtime.call("ghostty_mouse_encoder_setopt", this.mouseEncoder, 2, size); - this.runtime.free(size, sizeLayout.size); - - this.runtime.bytes(this.scratch, 1)[0] = input.anyButtonPressed ? 1 : 0; - this.runtime.call("ghostty_mouse_encoder_setopt", this.mouseEncoder, 3, this.scratch); - this.runtime.bytes(this.scratch, 1)[0] = 1; - this.runtime.call("ghostty_mouse_encoder_setopt", this.mouseEncoder, 4, this.scratch); - - this.runtime.call( - "ghostty_mouse_event_set_action", - this.mouseEvent, - input.action === "press" ? 0 : input.action === "release" ? 1 : 2, - ); - if (input.button === null) { - this.runtime.call("ghostty_mouse_event_clear_button", this.mouseEvent); - } else { - this.runtime.call("ghostty_mouse_event_set_button", this.mouseEvent, input.button); - } - this.runtime.call("ghostty_mouse_event_set_mods", this.mouseEvent, input.mods); - const positionLayout = this.runtime.layout("GhosttyMousePosition"); - const position = this.runtime.alloc(positionLayout.size); - const positionView = this.runtime.view(position, positionLayout.size); - positionView.setFloat32(positionLayout.fields.x!.offset, input.x, true); - positionView.setFloat32(positionLayout.fields.y!.offset, input.y, true); - this.runtime.call("ghostty_mouse_event_set_position", this.mouseEvent, position); - this.runtime.free(position, positionLayout.size); - - const written = this.runtime.call("ghostty_wasm_alloc_usize"); - const encoded = this.encodeOutput(written, (output, outputSize) => - this.runtime.call( - "ghostty_mouse_encoder_encode", - this.mouseEncoder, - this.mouseEvent, - output, - outputSize, - written, - ), - ); - this.runtime.call("ghostty_wasm_free_usize", written); - return encoded; - } - - setSelection(anchor: GhosttyPointInput, end: GhosttyPointInput): void { - this.ensureActive(); - const selectionLayout = this.runtime.layout("GhosttySelection"); - const gridRefSize = this.runtime.layout("GhosttyGridRef").size; - const selection = this.runtime.alloc(selectionLayout.size); - let start = 0; - let endRef = 0; - try { - this.runtime.setField(selection, "GhosttySelection", "size", selectionLayout.size); - start = this.gridRef(anchor.x, anchor.y, anchor.tag ?? 1); - endRef = this.gridRef(end.x, end.y, end.tag ?? 1); - const startField = selectionLayout.fields.start!; - const endField = selectionLayout.fields.end!; - this.runtime - .bytes(selection + startField.offset, startField.size) - .set(this.runtime.bytes(start, startField.size)); - this.runtime - .bytes(selection + endField.offset, endField.size) - .set(this.runtime.bytes(endRef, endField.size)); - this.runtime.call("ghostty_terminal_set", this.terminal, 21, selection); - } finally { - this.runtime.free(start, gridRefSize); - this.runtime.free(endRef, gridRefSize); - this.runtime.free(selection, selectionLayout.size); - } - } - - selectAll(): GhosttySelectionRange["screen"] | null { - this.ensureActive(); - const layout = this.runtime.layout("GhosttySelection"); - const selection = this.runtime.alloc(layout.size); - try { - this.runtime.setField(selection, "GhosttySelection", "size", layout.size); - if ( - this.runtime.call("ghostty_terminal_select_all", this.terminal, selection) !== - GHOSTTY_SUCCESS - ) { - return null; - } - const start = this.pointFromGridRef(selection + layout.fields.start!.offset, 2); - const end = this.pointFromGridRef(selection + layout.fields.end!.offset, 2); - if (!start || !end) return null; - this.runtime.call("ghostty_terminal_set", this.terminal, 21, selection); - return { start, end }; - } finally { - this.runtime.free(selection, layout.size); - } - } - - selectWord(col: number, row: number): GhosttySelectionRange | null { - return this.selectAt( - "GhosttyTerminalSelectWordOptions", - "ghostty_terminal_select_word", - col, - row, - ); - } - - selectLine(col: number, row: number): GhosttySelectionRange | null { - return this.selectAt( - "GhosttyTerminalSelectLineOptions", - "ghostty_terminal_select_line", - col, - row, - ); - } - - hyperlinkAt(col: number, row: number): string | null { - this.ensureActive(); - const ref = this.gridRef(col, row); - const written = this.runtime.call("ghostty_wasm_alloc_usize"); - const sizeResult = this.runtime.call("ghostty_grid_ref_hyperlink_uri", ref, 0, 0, written); - const outputSize = this.runtime.view(written, 4).getUint32(0, true); - let hyperlink: string | null = null; - if (sizeResult === GHOSTTY_OUT_OF_SPACE && outputSize > 0) { - const output = this.runtime.alloc(outputSize); - const result = this.runtime.call( - "ghostty_grid_ref_hyperlink_uri", - ref, - output, - outputSize, - written, - ); - const outputLength = this.runtime.view(written, 4).getUint32(0, true); - if (result === GHOSTTY_SUCCESS && outputLength > 0) { - hyperlink = decoder.decode(this.runtime.bytes(output, outputLength)); - } - this.runtime.free(output, outputSize); - } - this.runtime.call("ghostty_wasm_free_usize", written); - this.runtime.free(ref, this.runtime.layout("GhosttyGridRef").size); - return hyperlink; - } - - clearSelection(): void { - this.ensureActive(); - this.runtime.call("ghostty_terminal_set", this.terminal, 21, 0); - } - - snapshot(): GhosttySnapshot { - this.ensureActive(); - this.assertSuccess( - "ghostty_render_state_update", - this.runtime.call("ghostty_render_state_update", this.renderState, this.terminal), - ); - const cols = this.getU16(RENDER_DATA.cols); - const rowCount = this.getU16(RENDER_DATA.rows); - const dirty = this.getU32(RENDER_DATA.dirty); - const foreground = this.getColor(RENDER_DATA.foreground, { r: 229, g: 231, b: 235 }); - const background = this.getColor(RENDER_DATA.background, { r: 0, g: 0, b: 0 }); - const cursorHasValue = this.getBool(RENDER_DATA.cursorHasValue); - const cursor = cursorHasValue ? this.getColor(RENDER_DATA.cursor, foreground) : foreground; - const cursorInViewport = this.getBool(RENDER_DATA.cursorInViewport); - const cursorVisible = this.getBool(RENDER_DATA.cursorVisible) && cursorInViewport; - const cursorX = cursorInViewport ? this.getU16(RENDER_DATA.cursorX) : -1; - const cursorY = cursorInViewport ? this.getU16(RENDER_DATA.cursorY) : -1; - - if (this.rows.length !== rowCount || this.rows.some((row) => row.cells.length !== cols)) { - this.rows = Array.from({ length: rowCount }, () => ({ - cells: Array.from({ length: cols }, () => this.emptyCell(foreground, background)), - text: "", - isWrapContinuation: false, - wrapsToNext: false, - })); - } - - const dirtyRows = new Set(); - if (dirty !== 0) { - this.assertSuccess( - "ghostty_render_state_get(row iterator)", - this.runtime.call( - "ghostty_render_state_get", - this.renderState, - RENDER_DATA.rowIterator, - this.rowIteratorSlot, - ), - ); - const iterator = this.runtime.readPointer(this.rowIteratorSlot); - let rowIndex = 0; - while ( - rowIndex < rowCount && - this.runtime.call("ghostty_render_state_row_iterator_next", iterator) !== 0 - ) { - const rowDirty = dirty === 2 || this.getRowBool(iterator, ROW_DATA.dirty); - if (rowDirty) { - this.rows[rowIndex] = this.readRow(iterator, cols, foreground, background); - dirtyRows.add(rowIndex); - this.runtime.bytes(this.scratch, 1)[0] = 0; - this.runtime.call("ghostty_render_state_row_set", iterator, 0, this.scratch); - } - rowIndex += 1; - } - this.runtime.view(this.scratch, 4).setUint32(0, 0, true); - this.runtime.call("ghostty_render_state_set", this.renderState, 0, this.scratch); - } - - return { - cols, - rows: rowCount, - foreground, - background, - cursor, - cursorX, - cursorY, - cursorVisible, - cursorBlinking: this.getBool(RENDER_DATA.cursorBlinking), - cursorStyle: this.getU32(RENDER_DATA.cursorStyle), - dirtyRows, - rowData: this.rows, - }; - } - - selectionText(): string { - this.ensureActive(); - const options = this.runtime.alloc(SELECTION_FORMAT_OPTIONS_SIZE); - const optionsView = this.runtime.view(options, SELECTION_FORMAT_OPTIONS_SIZE); - optionsView.setUint32(0, SELECTION_FORMAT_OPTIONS_SIZE, true); - optionsView.setUint32(4, 0, true); - optionsView.setUint8(8, 1); - optionsView.setUint8(9, 1); - optionsView.setUint32(12, 0, true); - const written = this.runtime.call("ghostty_wasm_alloc_usize"); - const sizeResult = this.runtime.call( - "ghostty_terminal_selection_format_buf", - this.terminal, - options, - 0, - 0, - written, - ); - const outputSize = this.runtime.view(written, 4).getUint32(0, true); - let text = ""; - if (sizeResult === GHOSTTY_OUT_OF_SPACE && outputSize > 0) { - const output = this.runtime.alloc(outputSize); - const result = this.runtime.call( - "ghostty_terminal_selection_format_buf", - this.terminal, - options, - output, - outputSize, - written, - ); - const outputLength = this.runtime.view(written, 4).getUint32(0, true); - if (result === GHOSTTY_SUCCESS) { - text = decoder.decode(this.runtime.bytes(output, outputLength)); - } - this.runtime.free(output, outputSize); - } - this.runtime.call("ghostty_wasm_free_usize", written); - this.runtime.free(options, SELECTION_FORMAT_OPTIONS_SIZE); - return text; - } - - viewportPointToScreen(col: number, row: number): { x: number; y: number } | null { - return this.convertPoint(col, row, 1, 2); - } - - screenPointToViewport(col: number, row: number): { x: number; y: number } | null { - return this.convertPoint(col, row, 2, 1); - } - - private convertPoint( - col: number, - row: number, - fromTag: 1 | 2, - toTag: 1 | 2, - ): { x: number; y: number } | null { - this.ensureActive(); - const ref = this.gridRef(col, row, fromTag); - const point = this.pointFromGridRef(ref, toTag); - this.runtime.free(ref, this.runtime.layout("GhosttyGridRef").size); - return point; - } - - dispose(): void { - if (this.disposed) return; - this.disposed = true; - if (this.mouseEvent) this.runtime.call("ghostty_mouse_event_free", this.mouseEvent); - if (this.mouseEncoder) this.runtime.call("ghostty_mouse_encoder_free", this.mouseEncoder); - if (this.keyEvent) this.runtime.call("ghostty_key_event_free", this.keyEvent); - if (this.keyEncoder) this.runtime.call("ghostty_key_encoder_free", this.keyEncoder); - if (this.rowCellsSlot) { - const cells = this.runtime.readPointer(this.rowCellsSlot); - if (cells) this.runtime.call("ghostty_render_state_row_cells_free", cells); - } - if (this.rowIteratorSlot) { - const iterator = this.runtime.readPointer(this.rowIteratorSlot); - if (iterator) this.runtime.call("ghostty_render_state_row_iterator_free", iterator); - } - if (this.renderState) this.runtime.call("ghostty_render_state_free", this.renderState); - if (this.terminal) { - if (this.ptyWriterId) this.runtime.detachPtyWriter(this.terminal, this.ptyWriterId); - this.runtime.call("ghostty_terminal_free", this.terminal); - } - if (this.style) this.runtime.free(this.style, this.runtime.layout("GhosttyStyle").size); - if (this.cellQuery) this.runtime.free(this.cellQuery, CELL_QUERY.size); - if (this.scrollbar) { - this.runtime.free(this.scrollbar, this.runtime.layout("GhosttyTerminalScrollbar").size); - } - if (this.scratch) this.runtime.free(this.scratch, 16); - if (this.graphemes) this.runtime.free(this.graphemes, this.graphemeCapacity); - for (const slot of [ - this.mouseEventSlot, - this.mouseEncoderSlot, - this.keyEventSlot, - this.keyEncoderSlot, - this.rowCellsSlot, - this.rowIteratorSlot, - this.renderStateSlot, - this.terminalSlot, - ]) { - this.runtime.freeOpaque(slot); - } - } - - private encodeOutput( - written: number, - encode: (output: number, outputSize: number) => number, - ): string { - const sizeResult = encode(0, 0); - const outputSize = this.runtime.view(written, 4).getUint32(0, true); - if (sizeResult === GHOSTTY_SUCCESS && outputSize === 0) return ""; - if (sizeResult !== GHOSTTY_OUT_OF_SPACE || outputSize === 0) return ""; - - const output = this.runtime.alloc(outputSize); - const result = encode(output, outputSize); - const outputLength = this.runtime.view(written, 4).getUint32(0, true); - const encoded = - result === GHOSTTY_SUCCESS ? decoder.decode(this.runtime.bytes(output, outputLength)) : ""; - this.runtime.free(output, outputSize); - return encoded; - } - - private readRow( - iterator: number, - cols: number, - defaultForeground: GhosttyColor, - defaultBackground: GhosttyColor, - ): GhosttyRow { - this.assertSuccess( - "ghostty_render_state_row_get(raw)", - this.runtime.call("ghostty_render_state_row_get", iterator, ROW_DATA.raw, this.scratch), - ); - const rawRow = this.runtime.view(this.scratch, 8).getBigUint64(0, true); - this.runtime.bytes(this.scratch + 8, 1)[0] = 0; - this.assertSuccess( - "ghostty_row_get(wrap continuation)", - this.runtime.call("ghostty_row_get", rawRow, 2, this.scratch + 8), - ); - const isWrapContinuation = this.runtime.bytes(this.scratch + 8, 1)[0] !== 0; - this.runtime.bytes(this.scratch + 8, 1)[0] = 0; - this.assertSuccess( - "ghostty_row_get(wrap)", - this.runtime.call("ghostty_row_get", rawRow, 1, this.scratch + 8), - ); - const wrapsToNext = this.runtime.bytes(this.scratch + 8, 1)[0] !== 0; - - this.assertSuccess( - "ghostty_render_state_row_get(cells)", - this.runtime.call( - "ghostty_render_state_row_get", - iterator, - ROW_DATA.cells, - this.rowCellsSlot, - ), - ); - const cellsIterator = this.runtime.readPointer(this.rowCellsSlot); - const { size: styleSize, fields: styleFields } = this.runtime.layout("GhosttyStyle"); - const cells: GhosttyCell[] = []; - while ( - cells.length < cols && - this.runtime.call("ghostty_render_state_row_cells_next", cellsIterator) !== 0 - ) { - this.runtime.bytes(this.style, styleSize).fill(0); - this.runtime.setField(this.style, "GhosttyStyle", "size", styleSize); - const result = this.runtime.call( - "ghostty_render_state_row_cells_get_multi", - cellsIterator, - 5, - this.cellQuery + CELL_QUERY.keys, - this.cellQuery + CELL_QUERY.values, - this.cellQuery + CELL_QUERY.written, - ); - const queryView = this.runtime.memoryDataView(); - const written = queryView.getUint32(this.cellQuery + CELL_QUERY.written, true); - if (written < 3) this.assertSuccess("ghostty_render_state_row_cells_get_multi", result); - const graphemeLength = queryView.getUint32(this.cellQuery + CELL_QUERY.graphemesLength, true); - const selected = queryView.getUint8(this.cellQuery + CELL_QUERY.selected) !== 0; - let background = - written >= 4 ? this.readColor(this.cellQuery + CELL_QUERY.background) : defaultBackground; - let foreground = - written === 5 - ? this.readColor(this.cellQuery + CELL_QUERY.foreground) - : written === 3 - ? this.getCellColor(cellsIterator, CELL_DATA.foreground, defaultForeground) - : defaultForeground; - let text = ""; - if (graphemeLength > 0) { - const bufferSize = graphemeLength * 4; - if (bufferSize > this.graphemeCapacity) { - const capacity = Math.max(bufferSize, this.graphemeCapacity * 2); - const buffer = this.runtime.alloc(capacity); - this.runtime.free(this.graphemes, this.graphemeCapacity); - this.graphemes = buffer; - this.graphemeCapacity = capacity; - } - if ( - this.runtime.call( - "ghostty_render_state_row_cells_get", - cellsIterator, - CELL_DATA.graphemes, - this.graphemes, - ) === GHOSTTY_SUCCESS - ) { - // Read through a DataView: the byte-array allocator guarantees no - // 4-byte alignment, which a Uint32Array view would require. - const codepointView = this.runtime.view(this.graphemes, bufferSize); - text = ghosttyCellText(codepointView, graphemeLength); - } - } - let wide = 0; - if (text.length === 0 && cells.at(-1)?.text.length) { - this.assertSuccess( - "ghostty_render_state_row_cells_get(raw)", - this.runtime.call( - "ghostty_render_state_row_cells_get", - cellsIterator, - CELL_DATA.raw, - this.scratch, - ), - ); - const rawCell = this.runtime.view(this.scratch, 8).getBigUint64(0, true); - this.runtime.view(this.scratch + 8, 4).setUint32(0, 0, true); - this.assertSuccess( - "ghostty_cell_get(wide)", - this.runtime.call("ghostty_cell_get", rawCell, RAW_CELL_DATA.wide, this.scratch + 8), - ); - wide = this.runtime.view(this.scratch + 8, 4).getUint32(0, true); - } - // Read the style after allocation and ABI calls, which can grow WASM memory. - const styleView = this.runtime.memoryDataView(); - if (styleView.getUint8(this.style + styleFields.inverse!.offset) !== 0) { - [foreground, background] = [background, foreground]; - } - if (styleView.getUint8(this.style + styleFields.faint!.offset) !== 0) { - foreground = blend(foreground, background); - } - cells.push({ - text, - wide, - foreground, - background, - bold: styleView.getUint8(this.style + styleFields.bold!.offset) !== 0, - italic: styleView.getUint8(this.style + styleFields.italic!.offset) !== 0, - invisible: styleView.getUint8(this.style + styleFields.invisible!.offset) !== 0, - strikethrough: styleView.getUint8(this.style + styleFields.strikethrough!.offset) !== 0, - overline: styleView.getUint8(this.style + styleFields.overline!.offset) !== 0, - underline: styleView.getInt32(this.style + styleFields.underline!.offset, true) !== 0, - selected, - }); - } - while (cells.length < cols) cells.push(this.emptyCell(defaultForeground, defaultBackground)); - return { - cells, - text: cells - .map((cell) => cell.text || " ") - .join("") - .trimEnd(), - isWrapContinuation, - wrapsToNext, - }; - } - - private gridRef(col: number, row: number, tag: 1 | 2 = 1): number { - const pointLayout = this.runtime.layout("GhosttyPoint"); - const point = this.runtime.alloc(pointLayout.size); - this.runtime.setField(point, "GhosttyPoint", "tag", tag); - const pointValue = pointLayout.fields.value!; - const valueOffset = pointValue.offset; - const view = this.runtime.view(point + valueOffset, pointValue.size); - view.setUint16(0, Math.max(0, col), true); - view.setUint32(4, Math.max(0, row), true); - const gridRefSize = this.runtime.layout("GhosttyGridRef").size; - const gridRef = this.runtime.alloc(gridRefSize); - this.runtime.setField(gridRef, "GhosttyGridRef", "size", gridRefSize); - const result = this.runtime.call("ghostty_terminal_grid_ref", this.terminal, point, gridRef); - this.runtime.free(point, pointLayout.size); - if (result !== GHOSTTY_SUCCESS) { - this.runtime.free(gridRef, gridRefSize); - this.assertSuccess("ghostty_terminal_grid_ref", result); - } - return gridRef; - } - - private selectAt( - optionsName: "GhosttyTerminalSelectWordOptions" | "GhosttyTerminalSelectLineOptions", - operation: "ghostty_terminal_select_word" | "ghostty_terminal_select_line", - col: number, - row: number, - ): GhosttySelectionRange | null { - this.ensureActive(); - const optionsLayout = this.runtime.layout(optionsName); - const selectionLayout = this.runtime.layout("GhosttySelection"); - const options = this.runtime.alloc(optionsLayout.size); - let ref = 0; - let selection = 0; - let range: GhosttySelectionRange | null = null; - try { - this.runtime.setField(options, optionsName, "size", optionsLayout.size); - ref = this.gridRef(col, row); - const refField = optionsLayout.fields.ref!; - this.runtime - .bytes(options + refField.offset, refField.size) - .set(this.runtime.bytes(ref, refField.size)); - selection = this.runtime.alloc(selectionLayout.size); - this.runtime.setField(selection, "GhosttySelection", "size", selectionLayout.size); - const result = this.runtime.call(operation, this.terminal, options, selection); - if (result === GHOSTTY_SUCCESS) { - const start = selection + selectionLayout.fields.start!.offset; - const end = selection + selectionLayout.fields.end!.offset; - const viewportStart = this.pointFromGridRef(start, 1); - const viewportEnd = this.pointFromGridRef(end, 1); - const screenStart = this.pointFromGridRef(start, 2); - const screenEnd = this.pointFromGridRef(end, 2); - if (viewportStart && viewportEnd && screenStart && screenEnd) { - range = { - viewport: { start: viewportStart, end: viewportEnd }, - screen: { start: screenStart, end: screenEnd }, - }; - } - this.runtime.call("ghostty_terminal_set", this.terminal, 21, selection); - } - } finally { - this.runtime.free(selection, selectionLayout.size); - this.runtime.free(ref, this.runtime.layout("GhosttyGridRef").size); - this.runtime.free(options, optionsLayout.size); - } - return range; - } - - private pointFromGridRef(ref: number, tag: 1 | 2): { x: number; y: number } | null { - const coordinateLayout = this.runtime.layout("GhosttyPointCoordinate"); - const coordinate = this.runtime.alloc(coordinateLayout.size); - const result = this.runtime.call( - "ghostty_terminal_point_from_grid_ref", - this.terminal, - ref, - tag, - coordinate, - ); - const point = - result === GHOSTTY_SUCCESS - ? { - x: this.runtime.readField(coordinate, "GhosttyPointCoordinate", "x"), - y: this.runtime.readField(coordinate, "GhosttyPointCoordinate", "y"), - } - : null; - this.runtime.free(coordinate, coordinateLayout.size); - return point; - } - - private getU16(data: number): number { - this.runtime.bytes(this.scratch, 2).fill(0); - this.assertSuccess( - "ghostty_render_state_get", - this.runtime.call("ghostty_render_state_get", this.renderState, data, this.scratch), - ); - return this.runtime.view(this.scratch, 2).getUint16(0, true); - } - - private getU32(data: number): number { - this.runtime.bytes(this.scratch, 4).fill(0); - this.assertSuccess( - "ghostty_render_state_get", - this.runtime.call("ghostty_render_state_get", this.renderState, data, this.scratch), - ); - return this.runtime.view(this.scratch, 4).getUint32(0, true); - } - - private getBool(data: number): boolean { - this.runtime.bytes(this.scratch, 1)[0] = 0; - this.assertSuccess( - "ghostty_render_state_get", - this.runtime.call("ghostty_render_state_get", this.renderState, data, this.scratch), - ); - return this.runtime.bytes(this.scratch, 1)[0] !== 0; - } - - private getColor(data: number, fallback: GhosttyColor): GhosttyColor { - this.runtime.bytes(this.scratch, 3).fill(0); - const result = this.runtime.call( - "ghostty_render_state_get", - this.renderState, - data, - this.scratch, - ); - return result === GHOSTTY_SUCCESS ? this.readColor(this.scratch) : fallback; - } - - private getRowBool(iterator: number, data: number): boolean { - this.runtime.bytes(this.scratch, 1)[0] = 0; - return ( - this.runtime.call("ghostty_render_state_row_get", iterator, data, this.scratch) === - GHOSTTY_SUCCESS && this.runtime.bytes(this.scratch, 1)[0] !== 0 - ); - } - - private getCellColor(iterator: number, data: number, fallback: GhosttyColor): GhosttyColor { - this.runtime.bytes(this.scratch, 3).fill(0); - const result = this.runtime.call( - "ghostty_render_state_row_cells_get", - iterator, - data, - this.scratch, - ); - return result === GHOSTTY_SUCCESS ? this.readColor(this.scratch) : fallback; - } - - private readColor(pointer: number): GhosttyColor { - const view = this.runtime.memoryDataView(); - return { - r: view.getUint8(pointer), - g: view.getUint8(pointer + 1), - b: view.getUint8(pointer + 2), - }; - } - - private emptyCell(foreground: GhosttyColor, background: GhosttyColor): GhosttyCell { - return { - text: "", - wide: 0, - foreground, - background, - bold: false, - italic: false, - invisible: false, - strikethrough: false, - overline: false, - underline: false, - selected: false, - }; - } - - private assertSuccess(operation: string, result: number): void { - if (result !== GHOSTTY_SUCCESS) throw new Error(`${operation} failed with result ${result}`); - } - - private ensureActive(): void { - if (this.disposed) throw new Error("libghostty-vt terminal has been disposed"); - } -} - -export function ghosttyColorsEqual(left: GhosttyColor, right: GhosttyColor): boolean { - return sameColor(left, right); -} diff --git a/apps/web/src/terminal/ghostty/fonts/SymbolsNerdFontMono-Regular.woff2 b/apps/web/src/terminal/ghostty/fonts/SymbolsNerdFontMono-Regular.woff2 deleted file mode 100644 index 1e2127fadb98cac292ea75e5352077bbc30d97fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1177576 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

#_jb%`cum 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

g;L6a~!1 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 !|PK6;JR0FoT^W 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

lVP{sjrK3BIK&#}!hnS;i~CgJjWeTk3D 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

A4Ys|<5Q%!roBT7l+|qXFKq%e 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%0DI51+awI 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 z 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ȓHU}lwUAjz-q+bqt~;wV%D+f1zbQOY)NZs<4Oah>p)Xq5Z>h!|BJQJN!2ZRf=*5%)=-@XQ zkRx975ic@}R|2|gX}VT(s0e^V?3K<~M^zu?hlq-~fve%MaJJ=*6;)b_pp?(iO`8#s z_s1__atZs&f-HI~KN#d7QVBxp=_j}tOU*ofbSv%mf_^UM38Mk-oF{_}*@ zgnV6OCiQRTZ^m907Wzh^3EP}w;+n|sy`!{G>CKJWy7326+EN!{iODIl-GN}nkQ)~} zW6X`^I|t_hD~7yD<4H>783&(j;lk@G9+xmuu?0Id{nFB4IYNGCT*KjVArK@b!TLSx zoIM9k>f@5>)71rIFe0m&2m$E_Hzp=NEIeL_5~184*ED2X>X!;{Y^o`^xQetgH>YJV znMa0XaIVT~IY;^cE&+`e&!-aBx%Pl zRCprNt@M8ZLeRTwn5fgix#~B|rXa{122ZmC=Kop%EvAb3;!ad@0Lh)nVOj?<`?S7Z zSl?x$_3SAixIdyNs`!EQ-sx0&c}B&qJOEMUW$9&UKRGj(0r*7C(C4q{?$ifck@HDO zrV@kDJV%HGtFb#R$+A&kbHZXiw*`h^pr5O|w(X|FR(xo7pN7MQ)Q!%}h5?F#`$ibm z)v<9>X-}<$goLz1MP&g(j2Py|5Zeh>I|2@u0F5LBaRh7=Fse)o;VV$(T6>!a#@z(% z-}Z@sQJ@~Rxb&;>XY14)p*T+EfK3B-C{+nX&7_Imj3*L6DCK&+`Gcbg3BAHcGfBkU ze3jXh6p5+ys?!4H)$jp1vi`BJKV7o9z+d)N;{l&5wDq5{DmE&hXP-rtJ#IJ~{eNcLbCJ$ZsxT+$p=Q)TjjMsH0-2 zo<0_W5D+7e1LCyY%^ycWI!F5XH>;#i__VevF|1Y?O#Ia#&_&^>+33cgeeLH>2!bsvCHbt)R(O<+D1wigRchQSJ=Kgpp|KF9K;s*z>^7Xk#acRW zX_HYp;B3<3CYd~G)eZO4xF&y~>CN&V%{4aZWhjjaiF*C03@!?cUaQT)gFIr9|5V3C zlfjhNQhQNrw!M*MFi=%zAaXLroulOW6J(6CWNq?j^U0`WJwwWrxr?|8^A;*ys~7Ky z3d}Z$^wH_!MhJCuhYsx*C%ieXhOzG3*?4rJcv)wcfC!s6(<)hCoq#ZaJU>+q>*`cm zv_ts#8%S|jB#bZQs(9rIlCi1xuib_V@={qm7;Bay(fc1!?ifgW3Ub=5zu(#0K#T4F zW$V7H*|R4PIH=2gz)5`Mip`CuVcKe9&vtH5ba8y_3*m>C%Z2fD5}t_D>jp*f2{vC0#c?R?n1~xj?#wU7Ox6U6=+{0Z)vdavG$=VgK1mPL>h3W&v34CSbnQUia1SCQ z-`&vWZr9c359qcC&QX^M3^IWxWsF&N;g;FA4IBWegVJk$uBracq-K1jT9t%Rjk>?# zcSibm9DtNm9s07;))t!~bL>3-{Ws^8_sm1B)`cATbXldB*Do(>o}`bbor>CC#}+4K zM%OHqeQSB)WNpHxOuHo%BN>gZr9@Lgr@7xdls)j;5@^^-UMgrWVgWE0UCNh{zY`c& zgI});EqkzO*)DiOdk7fZY0OdwcF+p?y&|R>>Cn-a!3s=;UVm0dH){8R+8(0?ouvG( z$joVsHn^DdXP-uS*SZhETWH!@YQ3SU8L}I#u(UJq?I^3DAUHZoAOXUgqnscC(4~*` zv!%0=>l>e$eXh(|FHv7RwNE+&o%_bg&R8P;zK1IwtI_n<-XsX;ZOC75yxnTgN2gXL zDS{7Jew%l2Mj$xGd|%Mz2q8l@{fBZ%aS49P@#S!V`~< zyozH*KU|IvUoWmu_i`h?J z(dZKiL>XgY!9HnEA+g}hxN2|^m%9W()Gx9C*&M6XEZeN|!UgfFpdI>e17rNf@Y0$F z)FBRznMM?+UXOKAF8eeo0}O1be+j(dn0MY}+Zl?EyBopGw59)h!5BQ0?1zKK-mH7S){Z1yTWNI861`Txh6XiIt(A76I2pmDoQ5*iRb4<~JEW7}8NHisu zo(~{y+=f7_D3g{#CkmUo_&P92Tj;f^@8TAoQl&c-n^6-=@_B6p#K@W86^|C$7;z27 zoUe8`r#Bu{5!aaI4DXEn95%}v*0`x`&Da}QYNcZ!N@tF5;gO&qN^A-4Vggf`#58`u zPx!Ggz;qd@>}m>nJbie<=X&3HNbX0o>X4klJDIs3+0|;=k}O(!YW+@aIqD7i5lwYbvjIpdODdom8PtdKmU)JO@GR}vZ#Ol^l%{!|NAp0 zCk#2Ju^TDGmnYnM27W$K@FA=6PEnSK3G|`=0!|qaCc_ur5#x|3sZ4JOj5eI;4r|=U zRgemGvKE=%AVP-08HSbybZWyB&dd|y7>#z8KG92`q)&~~;$Z){xKR9A>SPaM_DL_LFUqtTNLY|{h1LoDOviowt&=$N)$CGax1?1-bsGB~#ke<+22zi^7uwZep5 zG3%|PIvykokZ~E<>l1rok%2AfiqO)Ez^nZtb|G-#&8Ng^`YjxgPfVOEkMQlQa-qL* z=?*x5DyEGPJr>n^`B(dLLRxKYTUlyES8Z|>ovLx=4N?R>e`iizorY8RDc`T^CiLh( zUCKJ{yST*3&1&2%G<}>q+JuJ^lCKI_{96dpHWc>T0D(S5X6wxF0>R?6a*5-pAnoE&m; z17rutlIdM{d(X}&XS_1;o8|lpEr9Jjp5NQ+&wl3U(Gx%TqH7rv@C885EE4m%qGAcO zmqHk`8wK=hV~{U_sGJk_2~r2NCH3)Z<@q>4=ii5fp1Z39@yVA zw_O*q-=HjCj|yT(S4Y6OuLy}H-Kwf05sBEn?flBAxttv5!GvQ&R_KE(z0px8FrFyb zXQRW)CrbBo9Dkh%Jy0oDp}a?2?G|<4rosB44s73Pm6Tfp2?!dM z?sRI%pe@CD9*ypD(9|hl2RsE`0>UU;FU21DG%U zNiI$|&8Bf3i;N!|Ap~%vb7<{ws$8%KJOK?cjua8KG`yTYhq;h@T1vM9JOdvOVeM=d zfru5JY)nZ>G%u#jp^K!~Na`VTgQ8eyJ&My%KOThER$C7bo{P1mO6VSiYT^bq%Nw5S zC83qokB_t0b$Eko)L}h;4SL=9@C%Irjk7v%`k0@Xc~|1zi+~g7eJR?mSBY`_;QF8Q zPVFW)BHnB=LtWto6RRWdY}D-;8@RT` z5Bt43;GMuK6r5`Y7t_XONZm|`AC>+@2EyUzN=;F36oYxNqO(RYjEm%0$mvqO^J?HJDV_I(ALyq!8+mMD+kU0Yb9p{CG0Zb`T}M zW@hh9WH89FbWLtLONtU9?D2FeJsR!1U6@XRIsc0kAh~dXui$q=1Su4p!B z0wD19+#6aIyk`e}e`He$CXV`{@);`M1`-m`-wjyUee?9mRClOZkL!4l3L+a(-D^z_ zq*zPU*l6$S+U$MKy3x8Km(09}H}LzLuOTidSXQ z*qYUGtKAQmFx6y?V9XjL`vgYFs=48rJDJ5r+#k2IP8Ra+&HO9<{$1M1{L+V2MX)%c z97U9qvD_n)yaOTrq}>s)YB3L?p`IM3A=R|bWN#RvxE~&a79nYhG+Uf$fHRI4P3ll7 z7;d@QvDuP$SKKBCTZ)!6=I3TQ1-!rKBuIdTk=rw~?2f|^I}Z9SCL8?shi|;HrBO} zI~=Ph`>)14eHHzOl_s~i=FcLR(o>eSlG`15Zia{+dApp*b@p#?Rir96YlBIfrOSQ8 zts`GIrj1hs{j&^NfYCA`W*V47+(>}z>I{ z@Mu~Gc)&t@cmOQ2W)i-zQ<0+!;I&W|koErn47&)H361T0pr&`425;)MIlk>}udsblz}gB2`Rwib<^*K1Frpa*w4^b_N{OeP0=UEI?9kmZ)`EwQ+;-BJ+*z=iYCu#}K~EmMJ!H~#i$jo+_kLL|Dx_LqoJNqaQ@~5nype@x z?2)MD`6qVX!-8cF=fX~fmEgkl&c6QgdgYkT()+H|URiw{&7H!@MwW>qRR_=c;M6c802DgfjqzEVHH*zbLjxaM7;-)w#5o(52hgP)|)% z>-!hd#3J$S2_Yns76Lnin>-`*)KCAH+{j(P!cx%}F@ihyy;BzkQ!f+0$xGn~NMMV?2y{_P1Qg+mg+VlC9EXaugz3 z@-d;SP($@&s1~4XA|h^UbY^PAOEQ$^2vV^G0sACil>W?U?f=owhspQ`?aQQp-_a2X z4abC(Se#Of*+TG%aaggEusr4D+KrE^KMSo)Z|wN7Vt#6TJP?PKEnH34*MO20&L!yz*27SYZ&~32PmaH#8Di9jTBF zbOi(vwb7rOXpoPiNu1=2+bNtcY6a|aj{cml3@2&A%kXl!fy0fRWv-CGveF2}{l3() zvLE}j-nX)(e_|kr3%j^pAGDO3STj_@&HL0%FVXy)2s(1B3h zhIP2~+h@w>5GBLVlO1rLw;`aoE!7dOSY0H>`#~M{bnK(q zLZ5HN=aYs3&~Vu*R;47{!xy5+O+`wlTg|G)!gGV4Ejb>ND~PL3K`VMqOEhemt`g=J zi7NxwLc?e6^kY?ZqT6M`s>so(+xYRSa5_Z#u0U3$%SKd^U{bvUu%gk&hXbhW(Ye7M z&RK2*Vd$5b-TvszVtD5MEOVq*!7i9R`lO|J|v&}NoJPXOiA3#`GA4?+R zVT)3at}xIEkf`KZ$%FFxjFSkd1Z*6JaX=`KS zu`EjqKP)%GQFEGGQqxT4@vh_)vt^|D5odqh!Bsa2lF8~54>=8iLD3H<0$<9eTIp2A z*KKWYkbXE@DRixka+$^&V{ArU@(gUG~r|nwYOk9REQZ@G;SHt8wz8 zm0XN)O@}rEiU!bT@Tficn5|Y8GTc*(1pjaV{eOq)!A1tvpinttoUR@e_sZq%x>`{Y zSKlWmC}(TUY2#UoCW|JW0r>}KO@g8q!k))L1&5yrpK|pE0DaR(hc}4a9urr4E+D!V z#iEq!urVQpc?m)ET ztZIRnH6LK%qq?__cVE}oqjmMcjUiXoy)&>N0l>#Z7gN@DJ&wBrEDv-FR<%8}MF~r3 z$KlSuD(&a8-crJKOmebWfQ#+QE}A%1}D zr6Z>ZSS}XigCG|SS-0=(NxBwPvO>QCC|xazL9SYVFiw0gu;a_rkwa`^Ro#a`vdhKg z90u_0kmkx`r6*`9GuxPDN6cfHe}`#{r%1Sr8UwNfkr+CzKVxtonbj4AZb>9tlPT;o zJ0r7wzHi-7yB9c4xOa4?;r!-lIJ4P!??Z)qLF3Wn9h4f?^X(xPx?J_v+W55LuN;$D zwaHj)QZ+vZheXBL9pRZGK^S7xQ>L~69kmNn9^E(58lUJz2@^*TI(zEJ$BR+AP{g1} zhld<^q@!uIUM>PhO6AvR5ybWCYIA7@PkG(Jo$j z=}KUN|A%u`$Ap-zC2awGNdSNl`%5Y;EVeTe^?EOWGyOCg3pm>k-dmRBGZ~2HP()wq zub|crAcvc1QK}z)=u7ckpO{I6zf5Swo~?s#~Nw63y3>mTqC|M zOpHTL9b}T0ve>w~rdQm^mw>vE)9Ldp1lImShKB=Q2XI5yxINSu?XoM`FI-CaMEbNu zChC~2iW{ut+YE08onf>6VRjk}8l85%-R$p9&WfL$Gl2FB0~Jrz^cI;eFJ;%>Zr&IG zFsWZ7VgN`!WYLn4U?>ay`i;J^r;AMmq3jWA-866*gKlpNo|aDDx7GGs`La^NKf)JH zluf?P8u|X&-cEh5HW9bnJeXn8i6K7)T6xHcn& zAq*@QhWZ;fB6&=JpLkl#V1;)?P|yDJlkjOE?jo2-Ew)>^Jk&S(~z5O&ul_f7WD zBmIdKFTH*@zU8Pn2hupj85xLS&&FZprdK~=G3z3JdKe;tNYgXwitDOd3IGBBb{6S= z6+hp@HQueAqtK-{(R9i;y9hUzZgE@JvBij9^f43%@Up#4tH|SBhpnu{=UiD9782mQ z*-bA2VmtNY>%!9daCdT$hM;vu`CZu-6cQ^AEOD6J?1zm0L$P zb+E!}R54QJi~+mlaQQu9(Yk1j7f)aZ^Rc8SN!!Msx~J6|lg3 zMP4|Y%c{N{gjEYzTsF^Lb#yTAPEus9RHCAi@9$cv%%3F{eLWm=`1<;pD50bxPa>IZ z$BB=3gLUK}5W5m8m1*c=NDONq5}PlST^&^_^vFLtn4ibyvA9gfxhx*Lk|F+6WJQXk z-^C0M$Gn-xB*MIC_8Ez^T&wMs#ox{6&TrY`-CPgu8z7-f12`J3&+T9NPFgflXJ)kv z9RmS20}-aMqP`+c(n=Gex&VwS%}SaBE-9eCzQ*lb0J>5j%eNci}meraUr^c0p&y?+*@GJBCudu#lu~%eZUTfrMa^m@2zAH5Ntx8 zC~W$%{CF;r3nE;zR9NsQZ9A#%!n~5aS<4f#X=?kK`C9jgE~q+{;nMFvP^HVuf>gnA zCakF%?uPg1C+$0s9PKg%d7E`3d(`d&8b&^Kspo_K+h`r`4lwMoFTz$-kSmA-Djs!2h>!c3#n<35lmIJ}i?nw@KwkY#9{C6ic5P%q2R zI8P}jOKU(373_6lS18c7gEN|R-5WvbZAKn&)mzX#5XUT2am&8+kv ziMUTw0#7gRqAd?BmuaF5NGr(_O6X7vm$H!fCh9Hip1k|l-JF@y+b{0=^O5D{NM1iDtOdg?s6#zECGb8HQ`+$XSI zy}&qJqZZ?9znkV6wPjIH7@CvdbA6D08rV$o#Aja}CQ($zI()b<`W2n9q*!g_t&1R| zPBW<|*$GHA4du&&c;3uM{>9geO7`UkFNGh9i3Wtnv%x^|0D1$#z=U7b+1^NS-Q6qQ zm-34@5JFi@^@PvU;Efu~6y#@2-3=u3ffcPXX>WBR=yjaF1d{q=dHER>!k&dve(kN? zJ|OdKGyQ4XuFkW0Kx9*jD>{)z^t+f8)ofL&yFabNO#z7cl7Idfx(P(4fcC2^!%4~N zRPcfU4{)Zu>RbJ*rA`X#>GC_uU_-svhYe4ekELX?u6LMV*lZJ1po>4Yv|Jc#$`1~{ z8FceiE_rybs>*f3;og6Di2Jzc(mWtjyseiVswEFPoT(P%UWDhfGso3&hzdEHG4pr* zN9i_s`^kXbS)OWxdDA8w9y^Z%C-pLDeY-Z4b&#kdfpmeq`8n`g_p{uQOt{kLb4kOd zeU%m6-4SwcOn=(C)Hk(@7gj-Mq@%SJ{M10GgstyC1)eG^V=_NwZ27>&d0~%S%;9B4 zT|6~7$je{{`-b`ejTn9jE)n3XSo!E-1jqxK!)+{GT1`Yvq34@pTnbMqEF_`><{4y<@!3q7pcU69^QkIOrg9?*h zh7!i&=&~u$T>CO_2t(=FF%p)wZ4)dlu=WO#&aXvK<8m zC$<1T{^nWPfUi=;kV*QT!T*DUU(j+ZBjY1h zE*$n&SVTYVyKbfJA3NPNtdv!GBfpG6`Oq2mvm0BYSTt;|L{5MUP+iP8_EE)}fFQB= zwbt{cr0bpE|E4^~sCo>5#K+TNv%?g$F5R?OO=F}5ec@t81IoORi6H3T{}?KbmHrD#=R9x#KeEOz;u#DKFu zAHPKeHJ*QzHnj>eR|hKonc74F>M^Ney%5(}lcMLGn`XIF7MZLd?04y3=hOhxI=n7O z)_c;b@9hf2MHBdd$s2yx%lqA%!$<&K=foRd1h$IeVsk+L_>U73?)ms(@ys{)vE(B+> zDd+J~Kc}Z&K%kv|i^-%5K0tsa_gRfs6n25Tt-?UfM+I7?Js(GmmJj%;kTYxLz_=k4tBcYFbsa5F+e^k_Pk*h3%$RN^^yMM&Sw+ftZ6VKaQb2kE0P*dfeESLaA$L8FjLGv%7AZH)l+}>et0+~!8l+7GX;uB|ebSp)`pXdBm(!UEt%HUJU2(zRk~!(&am)$=B!frN{3Y8D7}LB=ZA zC8RaFbh!;s*_EvzmvLzVql(!`BDS7(oATqb>PBY?PQuHzRYgZ(5)Ev@WxBf@h37Rw zdnAAjhx9r%0lidLh5tDIS)@jV&p8Z;eUm&KBjSjS#a&I-1-M{ck<#c+OgJ=VCx4@B z4-p9u1j~1IZ}wQlMuliXhG9gB60t}PAa(d_M1?&OglaBIm?V8^1gtOz*2L7KjcoqG z1d>*B%R82j(pxe5k(MdwwpfiurRCoU&6Ple^tDuq?PLab!Y#qn46iaLlNyYia6>g0 zRb3$2NIXglnFI1vI%#_)7*ULa$+5;gj01~D>iCcHYnhbRtjRpPG~k9Ik^A^3x#mlr~L^O zj>~oE&NpBsr*C)dBAk%SOku1+gpupyI9EE6zSq_mLuDk>l7Tj|NaFM3V)Qbk7&ID* zlqukx_Y&GZZQYBC%oR#9qd-Y%o_A$-hM1Lz}(I)=`svEDIds|9sHh@i%K?>k$n4WMl29)%;5X20Ir8uB}->=9~*vGtIt6O)tL-F+V*l}&QsE;hA;jrzOl;&CvdP6OVN2?MyB zb>-za>2@>T4TLz=h%7IUSAVb^UG5flWii&j>p*x1$`7)aKW*(HU&gbP`c&V5!!~a< zyA+n=ACZ7r!c$xOOxJkHI_82F+&bpsQuu*}`?-Vj<+0FwxQL{eyYd{8$|D5@)itMi zQBgt>PjA$!DUy`@B{`ZEc}wGfTu%D3 zVHz^r6xkdpmuom&4E(Nj7R`hj%^blOfU>pUZB1E6o>+_mgY)l8#wX-l>kRmJwL}Pv z)-E>jaz;A|ftQo-CNlAYG=cA>Nx6ZO1~dfS>-LItljqFt6qa=n>zLV{zriWSL|V2O5mU^JCI%IUl$;*$^y5P z&Su}C+0itRqxTzP)ybE(uM9fo;-fXdg+A5kdBb+NRVACTA z>L(pe`n*$3Zk}sroVK^SE?e_>d`H$QUO3X9eQk$0q1gJ0Ky%HwoKZshRrv+Y^oIUO2bW(x@`A#;~I;CI%aMo#$ zns<$!nEPR^OgpHVXkViT6txZ}8<6j7B$drQQ!l3~Y`lv|S~P)R9pZ#^Ar?1KkU7T? z0|KKHHjr0qa5KqEx#Z%TnSnm#o#e*$teQXyn@sv`?8@+%k0*7(rH+pMXgZld>|x?G zUJ7KEY2yAq-=Pe_O25-0+UVq^o;xBi7wSdr2)j4%Wgtie$+b*I~S zjwMqOb>Tw9lE*YV%f`;*xI&N{bIAn?c>z_S=&dYN%QY8Lr%Ep)l0m5HkDwEoo~pv# zUKP&Q$U%VW^F>O4R+T|xkwuYgf^TYdu?ZsTY9>gg=9C`>j&R(&l9+TB$;x38O+~)a zPnCmX_Pu@oxuxarRnNVBLT8F63D`sCo{X)Jor}wu&t%Sa`B!%Zf#qPq-r&vm7&2z~ z#~)?#j{WQRuRnqa6b0O$+YV6Xj3&9fUwC_-V!~!bC2+8@EDnQv-lmvI2MRMZ$r839 zbZ|kRs*^_m1^@=CJ3G)K9_Y6ulHTmDtLh(kFtfLFy9N+KuM#D~Gb>gsRaU<{Xwj@> z8Uuhup0>6KQtX}q1KUb~np6>EQkqXsrl-fm2)+Hm%}tjaS~BxLsk!?zWOFXV%YlU3 zk&e!B*#-nP94(wvp0Q*iZ7!4zu~98dS`yOMJ6ZA<93&&NuZ@2T4dn~M@5yiPo(TsW zh^53w(1gg0Wa6*`41d4jEHouCl z4mEBPF$@Rb!a$L2l~i~uhj)J>*<)E~VM#XvS8gm!+k^CBM^6!RkHnkM{+G9i8H|G@ zJShyZSXb6n6$4qKD}?53{Re|Gp|GXp14A=u{&Xg@W=lzvZOa+igS0c<0cUWd$(}|P zOeYObtPP9A{VHB3VHdsXqIaiuN#8Pi3g!BsB*1I4CQfijxK*UvtvPkX@)REj8VMz? z01#Hh=1n%83xl+K8i*i-s2$b58BgAWOgb49XGHoWXJ=PW=g5#N+@&ok$0$K?OeqzU zgTuy`P)lYJgm4civ?NYQQLW7IE=MD*w%giJ9VGTy`F#1TK`jLf?*=%)o(gAqBcKRI z8CHO%+k`v8R&7R6?^ z2FFbJy|~rcHF)1Qr!^JSHBnOTHRe0HMwC~>+I=lRmav3V$Gyavvcr) zZ+7dyqT{rDYmoMMx2wup9LsD4D2U1xWNAd0vY}M?_3U(>UotG4K@%+-hW7Kb^kQ`B z5U$>Ow)p4uCM6%)V_Xn{bw0UHVy>TEO3f7Ixyt38XvU!7Y1kb3wzY+sctAE_4$L+( zyZKJBw*p)aoHZ6EHKZzl_yQ&N$Gp6S=%w6u6~mdvs0U8+apMLzl*PiJ>sv~0KP63( zIOjWgr_H*;q>3Kj!sC_)j0H_xrn}t>m^q5M>OSs&`K?x`0{&BSFZwFAIuF);;LRlJ{094HbfN+?Nl`>In z*GRGS1UAW1n*%I1BcGX5uFSVBOm8^{%-`rMDmvuCM(R5m%CNr))drJkhibtRDJmJz z*8^{Vzd3prYN*!23{|?o2QxHP$WGG7@~)DT+A*7&=r zg@o}#2PU|bjPa*wc*{O6k2&4w!J0A3V8x&cD8RBk8Wcx9hNoJA9^mrGst$7 z;9!gw2#u*q;4q~Z8*-$;35ypn8wA8>P;M~s8Haia%wt1mC1RbX>6q2LKQi#h5A(5Om9*yt@VjT? zLxuKPg1Id)ZXdl}oUyYM4a%ZYLWS00#V33ZMph9;k_(b%sM+%+C6b6!(S?+a4JNl4 zWhfkN#5R;~%^7%LrBO8lK!p`qVp5c%;QoIHe>5CHv7VZhVHMCjV(@tGnqVf>;FN_i zuDD25Xy^H1AaEMT&(D!*)4;v5aeR_5Z{YYbc{dCg{4F(*??S+j%EQUL%YzWF-HlgA zPOv1!m!JHswX!75S75$n^5w${u)@`u4mK&3=qfSgHWZig(&zV#wqH0`l2kZCs4|iY zQbLY2572{Afn9Gw8Db76Sm{)|eNQVhi~3BV2?a#Gp5{6{kj88|#YM4d#%7gWkuSho zix~hGTE|7om?q)jl(vQVV8lP3A+nJS-xvURqSnqD$v6;LDwZ7ev0!zu|IqU{agX8> zuOu(M>X$BlSG2xex?Up3I$jiCOo!!7&@P^0+oS=G(h@%ZCrm-A#->awl};^t70(tU zylG0oW(HI~HOmW0&{F^^x5pk}kErgu0?|6&k48aifj)R}SkeC~i_1YNt`eNm@P-9^ zG{hKT&>5Da-|2=r)MciKUNk(U3cZMhc|hen$lx)rqYCTHI;%m$i#yUT&2M{r4M#zdd(=wq$Q+Pnx;i^2@Wz+gKsi7AHB@P;k7 z1*R^Rc|QuAaVl{LEX_i?1jW!GCIg9YWH$zWVf4u?nUNo_m z^?~A(xDzv*$#2ctA`8Huh#PIW-4si50TeRN|rWi4dd z1W?Uo!&RQiCcHkpoK8qQ@GWiCQ)OVqq`VFSfx+nv1gXnm;VkY!AmzY&A7e^7a2^~LW(b)8exnbS7aA3|y!tQnCNx{t9w zFYx|oV)iXYb@>7C-2l+j0f&H-^q_-^^nQ22SpF|qIAm0keh@ooqX6$TAyTdgq-4Ft zgJ^Jjdd`&sgAGJ-1HnOaqCu}pin5sl`3cn|LP&*=7>?Hf`%f9B;ebV+oIRG7y5#X` zc?kJO?9{EOTi=wMJ`W&Ro}*d|@^7C-h0jDMXn zH(9{V`z8N`ee6UHTc{&hwt6plDzRv-Y}F%DouwC5*2xlHoEgOd13BR>5CZ_S^8f%2 zkqaP7C+2oT{`7B`B6Y7fP+11gRW>w;^8gF8Qcp+tlBP!47C?L@s=O`2HY;x_cC?Gm zf*6wMX>arwPXF{6XZg|>mOK-}!K&@tjGG%kq%i<4h*q0AH(8nTBIV@~1R)^)11ucb z>K4tN9B~?lnf@ewAK7cZcS1*HV=S>cyb=rS&AMd_V!^3YuV9 z-!80okO)87?fUMXD)}bLa}izzBQb6KU`6%yX&sy2qryXdLoUapM(paIfv$f|xfZH@ zv$X0uhyCM0m5ve#>>T%*{5aO_@s4-i4GBcZ8o@Y$Qrsn`0Sm6859<8PS;Tg8Y;*L+ zYZE{lE=B=Af1i;HCI?y@4CgXiG%;`Ss;VKb`DUd&+eaaBNlzc#v>6m%uDQn5u)e3Z z9t1&8OlTFhTkrX&b;ZnU1t&x;&59SpcNgRq@_Pa80dehuzm|3_E@!;+7i2lOfVdDV zyEsE;60f|GQ9eXkeDG4fn@^zln*uv$L2MAp$3!XLnxgDwN|~xL*ou`k#}Qa83q!Tg zHe^C`;iCl+W9l(UbaRqIV#nGrIW&n{@xsOX2hSt}ou+b;DJ~U_ex1x<8r0^#-_^U| zYDa+sxrOR{?{Id|t`=rw8v?wQXhv;S{E5BjoJF=(XN|Q68^B{JV6aSh`p%rVNm=f{ z8+f&Fe|kDdn*pB<1_l5YsXO;n0}d}>4+#UH!#(9?w-qn$ovOSiAr%4= zfgR9G3o&_B^XU`*?A3wOJ20}N+s@R!gufmo8=+}7ARd>8vACARXZr2eKz@=J?QPuF z)HUC{F@`Y9g_U86H-v>8r2^&ym%!PaKoG3&^X$}qI;jvL7Y5K+G)5xMLrM_NWs#BW zed>c>8?fn7Gj_A`8Dsj(d3rxBp)U(aUw@nRrkMysCIW$Jdrim0U5e5Jemw@@D*)9R81P*8QL;=vZPB za}Hqmd+h4)bebT46jKI|t=Dk4kUEHB74kYC99LLVdwP5~szrs!CEL}BOkNp(O{@)2 zRBZC3U@V?~M5;vB2xGffL}MCMp7khjLLg!6C2y-Pw(fzL(R+h}5V!QGRryLqHnFxz z=5Xu124S%ngrY#!e}NUT6qUev%xxcTLA?R<#1Xs#l%DTn>Iam?dd~&QAD*BJ&Y4sZYaM8M-sm5REgHF}nmG zEq!ZtO3~*+q8s_O^VSB-Y3KK-9~Wx60x@i=P=i2Wc##6)wLplH&>f57fyEzBfgYI?A1xlj3AJRU*v>34J|IsTkJqO&QVyT*z-_B^4SK6`$o?&}CoiPk6;n4!XsLD}vZF-loh`Ca6E>$EPz?p{El@KroyPiqORqMQ9ll7~BnOT0ORPi9Mr9?Xb1AH&DN1{Ss-7 zhQM~=H(7R&<+@7cA0OG4b^kk(Rq58kMPC!;4!Z@t!3ZR8S;@97>x|J5<4L1bxT11j zCy-w-fI0*MDpj(Iy}-+s%1UE{Pz86wW+K$$wvMtWu5Ix%Ak#0em!AzGa12oRg*noj z5z}vLbzJUsL0YECw%gqSJ}&_C4TNsOy#t=;{Z7jl0UMS#QmhwHI&SfPG?x%%HLAQJ zMY$3^EJt(@QKNa&;3E7Ikcm_TUroSiUt_!+0r~nqHA)&CJY0M{T&Kb28DyrVW!_l` zyA$I;cZT8cxM(|+nq#d1mDDLCG`-{GsAAUc;qR18$IS^2?!^CO*oTWJ*c4%Udv@Tg7_+my22)l!`^0{P4=HP~}+!w|I;l z?`cryYZSWvBu{$E9uDfYb)5ox_~;v*TA;cM;TeW>r*#EG^Nz%bEnn}LH4VDaraS+`jj=PJtNx>}g7 zxUS>x0d%8b`Kb=xO?f+TGP$#7Z_++X`Qc2gt2B;67SL_U@^&EAJUKg9u5nUh6;6fq z9P$>435`+nA25*IM}@(C;i#j44r~sXfrF1hYf3Wc(7=5AI_L{+%z*i<{|&+^<;C{+ z%wfU%()R*wcJhjVE{^j-c82z?@`^#Qm9bXkTMk8^t-UuL5LN0B1-s8PA}i|g3eo5n zYy9zWa9CoAW@UE>y2}L7Jb-J7Vg;c!T+;r)CLRv-W0vcd=mw3g`UXGdU5LsJEnYD} zJmHXxtY|z*kKgs1bvg-iRIkHEXVU>0shqU%pG#(an`qI=65_=!U$0~0+Qa@Dmu+^# z;0mm8-U{b^~$V3>#g7eNck&RuTHp$wXT4Ev8IFPetWghRKEQhk4Ug zD`{LfFZY_u9va47=PR9i_hn+zZkLa?U(ko`KiGVXZ}5q6OlHK7x&3GJMG-*=h`qXj zpnq_nnj-(Xdx~CrAfjpy&Ho$)m;Q@ z>{I=_Kx+Z&pzSZWqLpDCYss&0x43N&!caz z_u5@`YGmx+<<~xdM;ZIVQh*{|Zg!MFl1Y3ocet}qNT^LU#RAqjlW&Q634Uv%J^UvA zu_a+Yr+l4RTCSItp$6sh&I-5$a4ru39UKalsM-QFk@;?qJS1L8YlS-`Uh{)#SfCr_ z^?GCii?huJjRLASH;|xN2WUA7O;hAskIk$P#Z}K0$S|Q~&^-%SoMq-U_TPHlnZL@0 z1oY`ni4;=L5IGbs#2u@}yeVRX0-17u8EEaa_XH#gyQ@084@g&3Ou+05$v|Ubt6tFu zGdFKi*Ge)dYcT|8!3xFq2ckIybReZmn8Hb^5+AGIBzgwU z;owbj@N~A*69*9lma4;kV)z(y5fqe~(+`C#9)mcZa6taIcGd#l3quXCSPgimc{(k- z?a&Mq(Lh5Ewb~>@R(@ybn5DH%9Mq^+h^VXqeq5p+d3i+xAJQB2yB?{!0Nn~9jGEm5iN%P^&B3+A%PdyWUK{KK)C7YqU;F}4?ccRuc($@y zehHQT&EpN!T%9U~Q;1Jlle%#hp)hYoh|imYSv)-6cUoB%*2tvaEXM3pV$f3xOsq8J zitys1so-ohri9C}gvIFiIuGS!i%J^xZBu(NBK()n3RdPxln%xx=&?iS8H7|83rU65 zR+m?fSr)p>BAmkGw<}ULl=`C2wYq6PR$2OQmIyxSDF0;zVO1&s*Pd5?-aw{2xF&lF zJY6~qlj@06u-9h{jC0Ss86X&tU!*(ZpirNs!3+bTjgS`$51Ldmo9K=2K~@31Fqv{C zR#7F)HA)M)&UwaSNpj_u?=?BzrtBHY&5TUYYs*R9n`Zo?H8$f8U&=Yl%-kTZ6P-De zk%=(rO{Z+-5R#MoZFd++4IC4>nLqk-rhyVqviL9IT6_h4?L=|%xUYi(zCsVFLBOWm zw`ezbMD#MQjmr{0P*_{= z6c}oRAPU6OC=mNpH5ZF^*HMjq43xh+vr$s=L)n%lbG!Q^b0E9a5oHfP&+jNE8d5`sn&|0Kf9SqmXKjYF+N1&vOUA$#)9A*=|y z4azEuxArr+ekoH!EgBLo*CaZ}8Q%88u9@jGl3(pZe)*MPo}~#Z)({cN1=GAn-)ZLp zv$Qop$a6MqturcauZe!xPc8dDxG2^u4Hc%anbMJZ7PxqbA;L&Dw6z=bq33}M;=@xh zJ|d>L!@hz%Ft9-4LVChXtp$wgeYeDOLIOD`ZYndEfnUDthl`aLVqGskU9h3&E#sk+ zNkXEr!@Bhw&Oz0{QMRPkES8XvknC4&4R!R;x1zYQ#q{!@e!G6cj|I>tF5hx{A^x) z4#bWqQrK%c7GDgU9x8hglV8U`!UZehJ%ILznB5%+dVW59^mAaIZ1q@4&(?1CYD)Hn z>_ABNiLAM-tP2*x>5pzn2Ex~U>oHmDt*+5W1S7Flg6FBAjAHR%Jrsw~x;7%gBUT7+ zPj+#whT?)zJ^3k z^4mOsPY}QzZ~;AdZAfN_Qb%cPqqLGP$*{VHzG>>h+bQHRa?7a;1sF;dthJ+Qp)8(S zm|R*qRToCgIkni<_Du*eLNs;&T|Yjd5rDAhVc`pEFMD+6@WLT#RY=fPxixX0+Lr4<=+a5d5@kk{pS+A7Mp85!Q%hN!e;p zjO5RFagJJgmK?#aA04GeoCORegQV&!47x>oB~^-CLauUKzTe&Jp%p3OqM%%D>hZ`9TV{!!u27GS z&<;`CJ8|ssamW?6#Uru$8|g*k9R#MNVu$g^rEUJ&>Kb}Qki5Z1TO=s5^%rnCC5l{U zwM--4XL(~eB`aal4a*ybSFK|$q?nJ3Zg0fuePR~{cQi5Ksq&?$`YEEb5i&3~tD-}l zgG-3}hXLtC8s>su4K_%EgqJjt+7*&5t4Fed$;MZ56g6dA@m9lJn{q6>)Fd#6_ZJOZ+~u+j7~(O(r^UTu1{dhB`C4N2?0<2!tf#+B9a zIBaWQiiT>TLo90oVj zw%bzEY!=ct8=x@#ta=q(KE8Kko613EMD=HVK_ELYpe~5r^k$mebJxb(&Bxze^&o$6 zh;jc29MK^#gY%SI?2h^j-3*9i^xhHoQ9fw5>xtq{|FFJ`b4>Zck>UM;PZlt${&g@V z87k!VOe#ZWcEeOt5gmO?8HF9N;726yPYUM>r%1h9%u4tz)ap~LxO6nkUm|YsDW9J& zzoS1nrAuOeF3>j?Ea{P04_D}u#bLTWkNnahR=Bu)X`aJ>;ocfZf-L21g=?7m&L30+ zQc|4yZ5Dt6#>sx&sT}#*Ex^4ajB0d6ELkS+u6@91?UBf0Py}`{k?a29Qth4ZZVYpbNubxGE@=3K#zQx7tRLgz=Vm6?d8S(y2E=kWiz2 zc3vB@e6nxLxK4aReE0wD>=)_zH$s_qfj4NKiW@-z6%~iD^P1@KeN$8Q)z=4D^(I%9 z$4X_DcsF#jtX!HKild?^5la z_bg^GhuP)!Puhoin{W+LJAXjl3Ruv3He&Xe-v6J^2EgaWSfuZp>lUfy9`Krl2&9c0 z;B%j0B^j2(=S}L!^1EECqFN?Brj+^YW(gkb#rYuZq0 zN2@9_Ac%;Tb#6Y2&i`ZLnl;gAnzlI-p6b}{PT-g2QLke1nwpzaWia{>IFR?p_c@~} z>mO5qdSwwR;mY&ql@)W<@TCV`HG`dQ1@1^qDABu$w>F+Y@b4{kFR?@Xf!sFr9H2uI|3(g0H#=QGG~+`Fr;pCO~2szTM(NiKX*LWn4 z)Ioqoj+LIn$~Tx|RNzDuS4#Wrsenh}4^E-U-VseiU^_r=m|?>q%p1W;=L%i!aECYssJV)I1g zFb>NZSBCO=Oax=abK}8L0)ZEECB{6jV1O5kRGo+tU6PnJ!+@zg)5GB1XTsx=gqR2H zMfBak3AJxahdungMUNL2m{mM359UFl(W^LdCl zVUN694e>G4+khuwxUt48y@@qJb^>V#?WfpM&XW~+Q-rf*3Fk73 zK%Q3Fu`qLbSG+O}>r_v<m}D04(%O=^|FU~~qe8|s3S=P1q1PtpC(OVzY+1w{rh zPeyUo|JTjp;SIeWhSYLXA7^RD;}rzGqi<;q`kq`Hj&d^ zexT8pKiT8nP0f$%b?mN=*yJ54dY1o@pSMyVA*bPRAx%&!dRnlyEavaXvyDX!dEt>a ziDJjf8u+?u$^Ry25|DVfvtmavpcfO{<12!JbyOsKZ#)SnoP4R#bCJ$RsXEX%Au$0( zP9RWcK44)F@&N1`mZ3;O_R+zdY$@NAWamWoja=s``=G268bmZ6=YTEp*Ie=nieyd> z(rxx$WPs&iogax-Dr1xtEH4VK0)z-t^Vx*y7)%48r=jL?51IQ0V!+XK)QF8*di=@& zzu_2+ac9gPW+D%Qxdfa6$lSNEDPH{#A`U{tQ6iy4Jj3!Wl1YhJ;z*+Is79fr2!2>3 z=7=`}ONtN{>;AG^U!#Yj00r*Gf&@9C68QQWNR-`C!Z*!C;7t)7fbV$BjoL3wKhyJ( z1vbFG0d=^xfwnflbq;;sRX}9q+St~kVQ;mCXO#5NB@ocSvT&}9TJoECJjaS6*vFI`%U2H zC{e+NFt)Nq@+gYBx`rC3XRy#x9oibzYPczNPOjpZRZ;+@K-Kkq{(2wg1+egSB>R5; z8jfCI65+s?7z>tP1gUjrIJ|SpswW(IN<(wgqJ!lHgA_lE4k6mc9#x{jKLFJVoJ**@&$w zK5;QDnJH{bS$Uin5u38d&mF-z_EK3lGM;8m1m_NF!WU7mYwmD%YCxCt7n=Fd=;=r{ zY#pDFlDWe%wRQ7{)t?jVS4TLplW}vLC|*?By9GCP4;u}BW9NwoKtTwg2cOvC=U+L1 zuP7nlNd*?vndI$4B5mmMwqn;9nK6Wm58g-{!sH^qD>%$jbKy+jfNiE|Fa^;;7@{GU zb8!?Mi?}$_UU4eMOnTJQUn6`f>qx+j66{Gpn%iXw7d(+bk7h!ju;R)>VL1@W*z0sGBO5qT{+wdaZeR?UIy2 z^|EA3`WT1qqXO!7&`|NY+^GX~#TM+If>;Q$l}h7_0V z>J*G>E8?nRryC)guk65FE)0Hmflkviu{92YMSH?0EPMQ<9O5;(pdL1XPS@?`i6Fnmz% zUVl)embXTl zo!j(tsx~r;sr=r~(C+?f`pD&Oz|2wX)s0<#t6Qf0c|4qJwq)5s*CDp<=@hw>Ix$U~ zq~D&9aJY~vJ=oaZ?;cX_WEZg$cEaZD`-wp%Ew;#;yQp&Iup)O^s*zjdy}bN|yDpw6 z@Mt*tEJ^Zotw}WiWHAHEVr~zvFU*XY!CsuPm|V89j_?%}{>MmQJuJ`11N* z6j)hm{?~#8&95^qL;6hm$O#XBFAVl6%YLQo47;*vT-N0IKwy6asPKYZR)8UQ=gBfN zC@vuGXPkv6kiBu-Fc#p(+TLY4QWWeM4&<*!SaTQ>{n~M?dObavH7{6tk0BaVzl_d% z$CHhoQ?D`iYkn4fd;}J=fuB;65P|a6-R5tJO*=rT3Tl7fd?;)bfMBD=PRNHx;;=3u2*JuE*+f4g1>dI1MjWr*pNNX5 z@o@aIWpOBfZx(G?0xE;X#qr9PX|^9oAA0EK5WKs)YN9p3v1vh7f1Ig>xZQgD?f>^s z2CN~S_aB`q^|>nC65cr|M0qw`CBOxNAFmK>jFnYM&QCeQ{EQ{xP@POBD&)qR{Pi?RlEi4zu zO=UTha%UGY#mm=l=8d)+D7Q<4HD+$rQwMoQi+Q$Sf61%=v{2#Pq~@HWuOEO`Q1|SI z^$zvs;X`30S|w`^L!a;wr<1B*Daj|tpAh=NUNKalxFceoiwBZC{9K~LyE zX|at=(SmjKU}pA-5zS1d*d$nRAh5oum$K#mS79Tz%aAyKEjF zQkdVDG^Vh;=;F8Aa!OI^BE0>oo^(YC_L|zEp%()iHi@y)xtPgbmMV%}1T@sNab!a@ zVh)h+nD7dKS2?>x@q>0&5|AseTmXpV@QJ$*WF!9x`~7s{$z-hkJ9-}${+gy7i60Ih z74H7ygFyK%DW5F(4&!2}(H^4Cb#yqgZKMd$V-nQ>h0H-2ZY+Gm7xsV_R^i1*c>7*tNj zvry-x!LNfCNKQHAK0-cT%AAI!qplge*eP!kX^fm`x1W}^L7)6T@C+%0R#fpYq;L{q zo9U<3hj*cRpO2YsY7`hb=Xz>j%{@q?VD9R_1lTG8MEi;>f)U7d;p{t9Vn(9} zTDzSMRC0a09?JE;d-j_Xq*{VdCww$DlL}NOlBq^Y;AK#NR}^#^YC#CnvYmh;`&0I| zXJt{P{5=sl0^+?gKc<&ALeiS06mOz-YgOILBw@Ss{-Gd^Ysy2}rj-J~gWg^(3alfz z3gJc;Bm?zGmjOhQ0$01{AVF1uj^meeMjhk{$RN$rM2ofe2~*R3UtdS5+i-V*GjDw? zGSk{rucI-06N|<;K|d#g8IO5%iM*$hSJ2=D=J&uq3;zt zYtg=y(C66GrtMm$%v0|QKN{~C!I-;u+3x=t%}bQ38GO3CuKfo8N9Enyxry)e3fX%~E6_z&T(`tAc4;Q) zeJ-W~ZPg`14d>g~zI{DXS3_P$aH@ms%m#zVsZ1J`O7|wZ6*0YbI%|5_GvnNoLTti! z+MMYSw;+g#qSDCJ)KI1Sw1JBI&)D95*Q9zZ+k*x}6~KKCi1%2#Z(7pL40zLQg6KLR zF~J_7Fc}8q5|Z{BFYP+6M!aE6NMGRlvqcAl3EwW*5-x`gYPI2V@|HlJ?ZoXg8j*;{ z>#}qPyYZ;Lp5`Ik1AA@d{z*yiXpbNKZV1J2pnM+DilYltfj&SG0%GLwnaX0$Mcr0) zsj|nOT;mb~gN&7xJ!X0`qZ-cUCW#n(<6i1OW;KFrR{LnPm!F*l!Zxh3&573AuuXCVC(VPta=G1b}j!M)bCWG6ch`L9Evx{_-WT@n63u!fZkP zcoXdTk^`xy&|X}!5-+5oV-;@ixg^C;*GR7>>rvC#rGg?;Urof!9#SJAK0@GGCofoVAe<`h+T?nP*0X zE3{d9VR>#vG~R@h_iBMO05z&OJ2M%Od+56mz{v~&tS36J4FCk_y}$y>QUxUa_!xEG z&gyhY94zH>;<=~P2>cJRZ-Y%@Kc+;N$96&(4r&T|h1n%O7pEXuyb^Qxu8+5Db7l@R zftZA3I@@XdHJ$YO?Ta;j{i^eL+?<(P1Sq0M zcwp!i%_*Vnb{tE4)T=JWy@}Agf9ccYb`UUgo}d{HS&VDtSL0 zeR7OU*zctYM|++pbL}1T{gSp9{lGCOddeFAW@d6fJgT(kq&xA-uUYp@2JEv?3s+qm zV{q5EHUIJ8@z*#L^ZeB~aq5FJPA9)lRrStI&($7Psul?50xerXA?f@UCD90qb{%0e zmHCL8WZK{%L;y(5yIgn z2>p;IcpBh|Dc%THyH@!KIr8kQP8#HwJG+irUtKF*V|y-~#j7|RaG^Md*_+Ge78Rbh z6djaTH01=3joZwe1_*{YoGbXKxBDgX1`LQ|YO)=2y!YVIM{aulZ57sKFkL{^r1C@r zp_7v$zFMUP$c%R=KXc;}67*thAa|x!QvV--zHtj*kCrTOAt!%g*jY6|>6q(xm95$) zf3+6Iwg8mbM-mt;uB7y+tkPZ!j|7682nV+bGXL9rg5`hx(i`Uz2T9}M2n+0fZI4Ef zwVQ0ym~b6XCZ5dT;gmnh;bcook4f5tFu}jf+kJ*Iyq?FkGWt4cACXOXbFH-JCLsJAXVEy(Qqyb7#l-#>KVxA4l!KrN2q8e$=K4{U>McKVL|n zAkW83NIy)PCYM~s8kEl@KRP;{zos8tcjf=%PKDH(`an*g#|w+?nAG;4IP#z27FPDC zQmxX|<{4!^0)&A0#prz=cFiF`dBe$hUQ-C%9qKK_Wsr;QYG)HGH7O2~gA)JLUN($a za|^%x6@uQmAoWIa7Mr2PpMyaSN#BqhZMh-q)z^!3?{hxQxKXdLZTm!kI z4?h%j?OhDjZ#38`=bT+iuW6rHDK`s8L+0It2V4Zid*gZBoL_JMxx|W0xtub$lj_JR z6<30z=?76^v@&JDi&{`J=dZqx+zyP%1G=#>+K+@!ik3CG|kq< zIb4ieF^qyBlD8bVcA zW}9%%OF5iS{gPNshg|=Qh=zE-JnfH7r|m* z4SSj3S)V?e8=xgaefJM9Ze3=7)fq2~uE4qavW>l`RKp3y;kpM1WSdJ6ine&j3Ghz&I(Qwv?6g7H5f%M)AED*2tvw&b4? zwb%UYO3uumqfO+!;;sA_gEQ9JfQqoOf3*X+;7@K>&E9$59TI!TgG1)3+m8vgc>jOj zKcAl+|F@m?{=34$E+BUNWe1FRw3GQQw)#qbx1Ij+$A3UQmTde>#>{oSPf;_-m2ZwE zy3P~mL1w*xa{NYlk{X&YYUlPy&cf;A${63gZ_4WayYSpYO+orO*s#OFV~+<8xM(znKT|`Ef@Sr)gw1yEI^=y|_Cw;wx z2%dd4(ul6*qLu8~I=^G}E$+(nwEdoWI)EYjJO7?!1-MMj9wNE%QgpKMRkW6rqHAK3 zY*ox=^++5nACDl#d_$Aq*#pBA9f8&SBnTQrKX#*OKq*W{5`5l-C@- z$GgBM1;FChQ}t*pMxjXOcLGksg?jiDf1&%|?buM10*k}r6{LAdiXM;IsPcz4vig0G z=q&!nL%FNxH!kPIMGyY>N3O?wCuRKeHamHXX3Qjvmho+i5vd;@MrYFiZvuzWdc7W5 zKtp~$SsZ^O$Y%AGJhZ)+&(Fx3;F)a(e(`>aORotmR5SdE+b5PUV}t5DJq5H`hrj5F znv2YAZQg5BDlYd5&zgx^RQfNH{&QD%E#77`U${buxi3Ovyt=p5fK6l8^$^J`39Sn; zaaiE>VToY*iI1K~=0S>e>P^YD>1UP=;Ze+&nFNn|8$zXwE`D60c->mOX zco?T`a>VE1!<|?rTBBv4=@{j&#vqx);p0syfnbz9g~#6?e?XZP!q*6z?Eb9zj=!fv z1lfQ?gT3K~VFGgZ|)voo_R8<+C{KS030kgMHj@tqt4Z06xMCocnXKv+;>GO&SPx((KVxc4!-WrmPK@2Fsw!spMBUM!GRiM#5ZoIG(gAO>AJ8GN zEi}L!`?1c$=+_r#Q!X(ZLPHU&U&hs*QPVO!m-Btm*uTIvkWou|aC!CAL-<|i!#f@< z=`!JG16+^za@FIJqAYv{d*{%P?~b?FU8Iz&^PK9Mt~*?bD`9fOEhI2!%DVP`yWRK{ zE7RpVbmN)ylg5y@MYH}*ao3c0oI$KI&ue0%zOxwzmTe+_(?Tduib)~Q0LK8C^r7_e z^u6oLZO1c`VVi!*&E3;lR7CcXCB}rFq7*mC%agx2e!KE5lZrb?Y zPff>5<$!c?va4Aczm&LQpzZiE>KV%a1JqMz-Bec6@Z|wFqrsDxqgncjPR9D%vIk!s zE_!}IX2TIJvSqc2WhVJ;^M?0X(cOyFBuf4$?8yKvQHqDqTh*Os-}(B_)$@rD(-kkT z9|%@zG2+w|L22>jVYhlW)!n%V$E54mUvw#(&p7!D9-0p(DN&&W?j*0Yd!L6p?PMTl z`EustdefEbQDag114M#KFuy=H{Mx#gmlHP|bf+Ui_va(N)_j%~LKnC(U=u2M- zDpEi{@JjmvP4ll%_@3fV-`D}Z5x)x_w5?RC&oy{(L0)7@9oyg{q$@P1qNMZ-D}4ER zQ1D4|AliV`oBnR=?;ZH-1i%HcZ|n(A?x48n5+GgrQ_0Rw#_P=Iji()r7$$)GDr~|~ z8%w=LTRGfodSEnia`K_AADt*uX(dfu`93WdbgqJeG76MqziiRc(;CUJlRwMnYX%-} z3uQi|{ExD)@$p4FfI_|T1?$WIsLD4pO0W$AUJOrm4GyUQNft$&T|~y`Vpq&XMsm_R z`e#N@eY*hf)S>FdvBCO)qHyl|yC8ly|7kqH%im@mPkaYR?ZD1$4*c^^rCR-RTDQw4 zZ2j@0xKzC~63f&w{2nq{xw9zfr^wbSfubUoWQ zt$Y@WR&Ya+_yuZ_5(%I+mOVmWMR<>5@8&){BO3t8{VR}W^%vU7_hYTsur-I(1h%Kk z+prv68#sWz)z6j79+5=IaGNW*$!bDS}7czVOOt*Z0W0FRtI5RSf6h z|IZwW!@a$Dw2;5V@jO~363ut>nOB`6MgRCv zqA_N?F1##noUNN3q@MvQVZ_CeM~Y+1kG70$#p=JlA!5PboBsy|AD#aOGKmELGw_87 zKKi(K`Yfq=ARtoO78!%ZNTsb9L=L(Pg_1-H2cd8FJ!|k#UnDiE+df!UoK2WNkPt{y z`w1@AN}pStJF;jR^k<3G2^U!mf7$PaXr}v<003lYC#nzN&-0%x4JrS=AD9P(Pw?&; zK&a@L^dzK4nvgp4hfl@X<1wT&KFJ><5*x}Op+C0D>gc8(mT$z8R39w8iveuxDA~-5 z62bqF(nVkY#{mlu@0S|6M<+x1gamm@fqw(`Ly-7DBR|FJ9mNw$OUziKD<-ZiMvjeo zk$_#6E4}{#Ic_RpS8h_0$MOTm31OLWj)?K|gmQE7j1fbdG#Hj1>y3)n7BR|d@r~HW zC(7j0;*(JUdi0DZWnpyHzl@S2pbOKL!eKC{PIWwv$M7fZF$7q@PHKo>tAkUD)yGFE zf32!ZqqCN9&>bTLpE@UJ|DbHt!DMciFzTXa@3#l|IFu#qnA?O5g%^_)hf(KDW z(TINiWR0<9+S^am;`SH>DY%#3}_f(Kj7$t%hMCYam(*ou#lJ`;q7yxsfN={GT zcih1UYSb_EL7%M;uRM+dr!;>iy3H1)#;9-@H*m`h;HMUeYCs|`j08#7MI=$&NR6Zh zd4qi03Y-FDS7Wo-E)Uz;Kg>z|5%3(7>$PjtQgga3S02A;i)xOF7>Q_^sySPADl^q# zo#@hV(gByAt)Pkyy0-^p>y4@w?PfsiH`W_L2}{Q}Jfm(&HK3^YnLVi)Au8hrdIK%k zx`0|E8?U2RPIiM2fT3$j{k6EbThRUaIt8exyCeJ&$SVU28i5e`Oje6(!u;2&m>(Ya z65ImVSknX){%7S;%~n$Y7_8_pFcIV8VF_MX11QQy&;Zq=!S{u#GO;6?V>&yGL0Bb? zkkJtxGjXY_NGIdVNa}TbK+;=?uz+8K542Ox;z89%!VuhvYEmr3g`62Aw;EO4mzPqr zPjDV!p?1lH(Lk(2(n!*f({H#3W3q0QMYo|xvvVpvlUm{PwVyv%?%Jzm5gS0K&!bh= zGo=GSC9!*2tH@U8>CXsf0sCgDa`UZd>MWP9aCN{d7e{JQbH9&3(UPXiGwKT#k0qd4 zb|vEc@V7@bXvJ>yVm&r&VqWBrvD(VSfvqP<8PPEFxPducVh~3V8|OeS!pDIS%*2Fo z9N&5S?tuNpOLywo0fjh{Cx~TZ-%oBRfW|KBvl;1nF11KP;px(hyo!yit}T|-0B2b_ z4hFG`{2|d{WB=@&T&{6UtDM&~_HdZ_Y8Rbub$NFrnJf4Oc?>}ciV56^M<&eVr`!2% z(;>3yf2}<^89#mX*2-`Kv0ew0aVP4`V+nMGP(VRS3a0w#q3AqQE$Pl9E-CxEe?Xe) zQema4+V%dF8D?ftOsP%hKbO?Vt)mlir(&{5bzT(6*`aEX{8>UGYxr?()6a{Uu4~Xm~Q7 zXbU4{QV2wRggddRz?>JMzjR^f&olc?>FmVphuaWFj}Kt-obRHG+TP$mxu526tmqad z!!?lkHygh#FOXiMpASnoo5oUrn2{Vz)lCqgh7VFPDU)f&*=^WU&! zA-8xrg=Ok6iW!M!N>^1@@S^CHz3rJ z4Zw(5E{#%hB%txAoM2@7+s+|mh<8W=3KRBR42=MuL@_tZ>?da1-%6ohV^%GE2G6`#zG5^A6_G&vn zV7abdP+XAJmiU(4hmU6@3Gc}g6!l;Q8KECiclN-LjPID&K%nxXCev;S2IPhr)}gYB zH#J`B^xxsTu^p>JCS%(Bvkyjri*gvT;qvNMru_+22LK$Q=;9c z68b4WAL_PEj?XtsCNQ#t>QqYjnGB%Qja5Ox=x$=9sRI=nldfiG3T>L5LYAbgm-P{Br~r zaJ=cuMA@Ba2fCeBk?C8GLDb>h9Q?)Tb@kh&=n`#Ax`QC_g-% zu#&xFF)oot#Zn9_6P;4mhWSTwdCKG z!ix|*Buf#}MD~sC4=1E7*29Z(krEzW5x~zcnl8k%s4UJFoZdS%J5>n3?#4~3woq|G zT2wW$k|4qh-%7!&60FT(1<7Z zkNA4Sb*@~Nm`U3tPesVlT&$wochfx^tM#D>n!4z1cNYd5MIhq&X{;Na&eN2Ps-`T% zVfbj|b>i5I^7T@fl$5IzQ!A+QAm{3)ys%|{D3|R&mrK#MtV%||+UvN?)q#_}tSad0 zRZog1PqY5W-uMhNAIvbWBqmx z1iD=5!f!{lt9&RGl$QQnw!K%n_*3EbW%^mIB{P>Q=J&@g6g-!oq|-&vaCOf~F6h~^R`8jh4niftHu72Ijp>`51El`eWQ z>a2`ZnoUNct~(MDXqr3sfTckc)gtU}Z>MkVF10^>>_VclmXi92)NGzFM4$sKHGSxQ^d%;FiIdU1R{wml z19T>PiNd#bs7ja5-%DZ@vsR_q>!__YK8Wl_5$I!KiUtS~VQTv9Pul8RWtrY9(#0z~E&Z z`YQn~quTffcsqknsZHagJTB_?jBnQ~xr4ez&k6q*avB(Zi0WQ3Pv(QMZg+rxvwfqYy z!9ht3=)WZybIHb^1;J-1f0G`EzIQau7w2$tk6eoHPSZJ}#o-&R@D{5WE;q94jMHWp zhKJQ_LhIGk{hbdVs{lng7hAWg+hcH;req&`llF0@x#A8hs)oWN^{xQ`bMq74Mp7x? zjxkB9RhZ89v6tTCM|gycjr$t`R8H3!^d4Vpk7#0@azlQGjm9*Qj^)m!S%2)merAT# z6!opfg|PsIgUWAHLnZjsEw*%G0LgW&uO_>)7b9I1OLd88riE=_I<~Ctm$D%PNB805 zq>jKdmq=Hz3p?)BiOrLIhf{?tYK!*nUIi+e`X`CL1W%Yh14CKkj&13Acu_}f4j7$B z{@HXQ3Z?u7Z}S&f+MmU3Pf31TFqK1H4ofW)&XnQT*qErlEP!bQX$gT46rvJs${-R8 z38xmgSQbJl^a@nF=-S!83s%|j>Ap~4g99Vh;${mT+Yf22R; zmRVxTazF1|mPGzRy-z5!GSt6*Ps?Ebx(*UFgo8hxJ+U#NPsy29Meu;-yVZPOn$VYv zJ{qKSZYeKO?e7BchIF}4dzW=Ad!|*nZBe9| z`1lb1T?;ndnA1L;hQ%R<9BOmq>cr~4;{cXd}|8_)>F#>S+95jJAs2~oQc)o@rhqGld; z3#5j{wgp@{SAOY(6wIWuN4c@s;*csJW&uRN3Wg$f{6^rHGLHCyG&#AD{y`7$V3t_t zHr)NwbjB(L2>DKOs6UO-U%>2pHdIwlB4Y^{yj&eQ?Zc~puu6?yB zjbPX&#r>=2C_$U=?bn$D=Zl~Thq7tWajlSY3M z3&@#(0;zQuqPxBUC(FN<8DLP92dJaJv+{G4ce`@SN2Fze)(c@j8%-(e&DCKqoYMm| zKS-rh=u!hLh&b*zAgKK(iuLb71@>sGk~i*3Nk(Zo!p+oX>}we7E85az$ktt#tN`$P zXj1w66~=mD2Ga(}pVQ-{bJVP>&*>Sdbao;l1~jkJ;{R(pacQz;Y6wj>E5g%v9x+qU z;_j4tVHENq1ta>qcBXzqYh%1}$Q1ELVl$>omjG0XY%dqn!-1vCDWM%CfNGt=iQh#P zv0+;*{6;QShqeYL_az>GYHPCK_!hfQ1{f*pi$3i#p;R|cAJC8ZWM)#cR%t2B4G#Z~ zQB|?DlQ(73IP_&j+R2=n>SnmxSeVC{L8^x*RU;G>#d7sX1b+sZQ`cXr zz9RR)W%*9c4MVJZ)Bf*=%E}BH1+2id6H2&wtbG`^Ec*bwV)gCg<(KxmW50@aM0ig% ziKdN9a`V&$r;@$@K3p5szYyUcUgh>}XA|IghX{&}@okz`8PvuAPW=0eh=D|+-#J7q z2*(@`>kEHHD*g4&HZw5oU4tNB-l)OP&i{QpAL^)dSUHb3I}mXI#TriBnyiCu1ml_G zOEz}o(iTw+yRJQYMf!w$_i;6T zIB|3^`ce$~OSckw^h8T6+`xLfLZ3?&Qs9r;9ww+n2#|yLml{1&C;Xsa&v3I=|BPT3 zRVgYrw0AKnVA**VX% z77qMKnOWj_6OKP*;%*U#hRB1YCNu^}q~o#u`fLxzyET$fBB}pFYBrp^w4}R&-#A%P zt@+`-F%+?gR@~g2hQozao7bUM+vVkruB_2wD{kJt#rGq2J3I3$Ge3QPX(s+*oSJ1K zkxHUiR*gk=_IGPlcvPYWhxjM~<*T;-$+-1{R~kYqvwSjYB+Skx{LuLV4)$u#q{hS; zs^gRPjQ8eE+@tuUD@jYQDhvN>?+E%Pl{q?WR_j%dAt4As8x^LN@vt_9MQXW#=U|_B z8Ow@(cqx7`6^NP`%vbiR=NdcWZxScjjAm9j6(9(!t_-b0b9Ip4cW&db53qsd zS`bOEg*Fyhas#(;Gq9K`Tvsk~U;tFo)Ri%L_bHPlk!iDf$i~ihg2Z&y>lo9qcRfws zQt#*v>PvCa6;K!0Htw=ZGydO_CONjdDPM=Pz*)D$RCfZP5cPN|(z>F5ZW7bPm|u_v zumaiWP=p`l<~ln>Tt8dv%JIz&t%U*XzhcE=WwLzgX5O5l$T=i_ zVyi&1&7`DK5Gq8hc1AtE5}`ztdv7wSRpeG2e|a!1e>ugdA;Z}vX8X7jM|P#8sii2u z6Bt+*z>+R7<_R6!lc~A%w1FaFX{dE&|NTi!Q?gts4k`{{vjYq9fZq^?KtaiOfP?C4 zX^|dUlwE9M9^`vySdZQvrdN|dhooGvNoL5?H8^krTXdVA7E})|bRtm1mxz1u%dmaYwz2$c+cJbW@Y%djF2LFMuC?slwQU1;M zLTUf@+G^V`w{-4(5uL&kIG$5nUWPUYaZ6+~eukfGQw@rJQVFCItXerA)f6dfDu!c< zpM5cq_*$wmGRAz`e8+!cr#w!`xcetBByp0sqlrEYfZ9|h*5X^zEo!&5iw#<>;}7+v zpSJIU<>Y;0P^-`^&pnSt&@zHgvgg^rH0|1U7&*hx?Y=V3S}t2%f6hm*bOb(QydS2IFh&Yc zowEzRp=`)P2a_IwmATnU)rdQtvke`^0p0k^t6}1aN^){PB|hAh1HXX3lQ^US4Zq{n z%V!p-xZz|ovil&GG=H%9mTGpXEAfP;)|!cr0B<*zFqY+-yC`BE^W(U?;~vUHM~s-~ znxC7`B#%0{OBo}%cdzQz>&2UP;_=u_ii+eEn=5nqHU;8Le0&C%&G7%E?SAHh;Uoa2wMA)k% z>=8QDW3XTQ5E|Qadeo=FchWgS0##9M`mErlSZ+7`m0}XrRB==uk;QqU-p-gNyEYLv zIJ`FH<8;s{vE^yC8CyngVcKz3`F)%8tN3s7;NBdO+)!84k~7r!_8cer&(Ojkw384c zNkdc<9b}@^o!1(;;m&~14Zs0{=-G9R36 zaZJp<2nRd`VtW>*2rIW%wI;s>-`P8y9FYk|m51jAtm@I{UK7KZzZHOROiG~y!elI$ z$g{5%Z8iZ9M3KLc0kVR`xduLH(UJ=(Jl>+mfWPLtaaU0y*1M_}zPAa&$T!&IN#a0; z#TsCBc+Y8tfBQEu$JBm10B7C0f`ewUl}NOjvmSP4BE-T*4rqI<_%0l_V`jOMk{I`6 zCw>5d!(33?gMF5#OAdK137Zr|suO+$;tJI?c+9w@l^fv!t`cMJ3*jXrUh0I*N^z8; zp@^#T{tMje%8#IdWqi~$4y(#(VJ3fDHRq$tM=OQ+w?ni4#k#78x{t>`NTBu;2 z1d=BdvnEX`(D)FKMd4CbWd28#|8*vdse7S1beyL=A}0Y;{hU zc9qJs3UD>Rj~k?}smYPtK$AfA>;Y}o=l?9PJ^GCS+CWd)beHkZZlB-a+3oUAi1cai zwyO1c?~R{`mkYcXAVX$wQww|b3pD3*gkP`o6d(%m;Q}GL-Wb;YD8J#hQM1zQo*Hdm zx$g|8w4^8^xkTl}(^lO*cIR-5nYmk*F6EgA<2}pN1v*7pk4U1A5~g?W)Q<>1KEEC% zjtnR*`Q6Y3%ex}QI*hcq5U=wz|XCK;2-&Il&C(rB->R+=)8$g|1w%%JyGU=y0>ce zn~LeAvf!mdK}0y8??-F6yoO@z6%NiAN$3L&?C2L>ed)yhWXEnEbW#B)RRome&r^6d zPt`pBEdSvjmk8?o1=-$mLf1A@{p)CT^;{)D!T%mTnV{7reekr+4pt|5&p9*B1-fdn z_!?|gU!H&8uA{Jg&!4N3t#;ZM5NaxMrIlENuij~zx%TH4+PFd?cZtNqaHn5751!s1 zNT_{+9%Der^8c;4YPQq1w7LolCBo;kO7#ZR+1CQJZ$!n{h>I0vDD(nx>fOgkf8xp* zffoXBsE92y(0f#O>8LX=N>NZr=5^0+&;oWC^BQf@AYDXn#&+)`%H5d-;xqI( zdTE$x)DXW~tvkv7_FjoKgCqsW?ZX=|B&sas9wgOAM605hzfY;XT$>1BRsFS|C{Ex2 z&I=zq+UQ%3;I+iH7;H$i=9qRteGW!hYg{Wx2+$9$H|iasd3h26wPu(neK2FGD2YMB zQYH#q%7lg&)NNYzs-!zi`#s@&avW5-HxWq^XkoOl~EmtQQr;g>Cf- z-(3th;Yk;}JDl#Dzest|(o#_1b!#!|>1Nhs7?IePpf@i}}YJr^? zu*`^oVle(&6;BB268|=$u)HWKcSTASh3~oPIMJLX+qAX6OUqo?`ED!_WG=9Hc?c9K z7qFZE>zU$zGmQ&^TAX*4!!Bme&P~h|6&JDQRUhaJ4a|gZ#jfNR7qaG5ubxxAQNSr; z&)qvMgqbzp(Q?>M%glso_mmTK>PS~C7%*R=2cQXPEsI~cEv)=AbCU6>msKX|+28oJ z_m((e<%=uZFgko)od9>@rdI+Mjf!&aA3&8HF0!IT>dL{IuRJ#;eR=XI=365AVEa-= zmDj}|1(LD?|AUwVa5@2vN6#;HXB1Xeo$Q(TE}YEUl<-SkdBs}Civ>bqJrgWs|gR=_m^$wR0Lo#A2|%oTfC4i_^1g5(2$sG2N%qC6Mu=z{+ZJIdkx) zrL~}66k#zxIT&X=td5<)m9bFRn;&`EtG<}ozo6qF$ijX!=0w$sGKbZ@Tr5qUo0T2O z#kbwpGQ3IZQ?iH%pXClbvsB721^Y6zhMe#UZu*W_j`pa}pa#%%UjZ72(U_q3q&JGV^UvC6y z@D`g=Ex@s1^LVzY>mafkQ7J&8*3l&hgr|AO>fQ(~-qAOJDMBpP3E_=Jxmw!AT15Qi zxH(=GMUhgvBnniI6>z$pVy^rdD73 z@n!dg_3%=st_k-4xSB*OlKe6Z39(vZ%4Ir&$*hURg+F5=rVs=o`#AH~_cA{rwxig6 z=pFzb$jvKTGMJSU6>~IiP!fFGzLNCv#*hvUs%joD4w~YhPRCQ6AqrsuIlgD~$Vyh1 zrYgR?MAsh~F8kDezkg}7PEy+)fHARQGJF}_QX~?UmEw#=ja)7z2HXY$U~l5$5F&C# z6oKObE+T}{!VB;h1~|0Ao2C$+uI24)Y$7M)CLvy=u}~%(dD+4cL4^}%fS*_e^I+SR zNgizAMuH%puN#0@%tCPF_iEBm-4&IF#vk|C`uXN&TfCib{z5Xar@yvq*Uj5wYG4`rFx%{fz)l$B*IEQ)#JQ&|WIX`8(|!_2q5 zJQq36PP+`?(KyV*D}5dVMU-0e;se&2<`shs{=!I;DCk?rYv(5(cvxpd^7pS$d~ zf=|+v%xtHbYlJ9V-aRUmaT>r(H8_en!)0O6MR<~``3Rc1k-n2kv>km~5h`16Mz*Lu z7q2DoO?MHf8Au2-Oc5bFYw=A}0ZI*+LL$JVsgftLi5wyO5wldWHR0qPQ)~(+wNCme zH0(;6jl$`FrIIgWlQ;p4CC{GYH*LwZPEo>)+SVph3JN zfQN*u-txB}_Z~}6v6+0|PAz?XU3P#XAF69p(PSX1Ij4g)55$8er#_+WTR>AU`%d-wAicKvBm*6sJZ%A>An8P|-DLy0 zwFtE@GVBf?Q_}lG{!79QEGiwwu>VVL24bbH*0|WS;=kT;(pHcepLk>S%ivHVrnh0a z`Yb37CDeU)x4SvtmC1qXc;Qek*6l1tUdc88@?^R%@H?`DOI=Gap=e{_B*}nGkdj)A zthT5APS*bN03uOM)%vK`4k+lG`IW=Fv!}AknWx)WysUt9%h=X$RZs7`(0MDJZn>d7 zjEUdPEL_nVjPQCh4kXNW2&|W*gW`VtReRE^TvZ&&oy@fQE8EN$=S^p7%EJ0~Hy5gy zTS!;W1A4#P&eI=CNn}6zbm=`9>LnF0*i4SAiD|H4==&W^{OaPk81g7Hlq0zE%MVsQ#UCPNUjg4Kz^~IPV z*)D~RQ{WWrK>!cBFnDc9d+nl&KQ^}U2#=r;7I2_UyR^wsqnztnJrCbE_H(E4d8$_s zqt2!_rp3zoCsw2VleN1cCDL3HxxGcb!Yh?+u7#=9+XIQ{CsRuy{X2mgtR6RSeqt(Y zWlB+?0jOlvt2*Z{d~54xZR0xyX}*N$eX6aiJ;%_3Ujw1@Z5D}@r^?(4J}P?Qvkp7k zraor0h1N^~E{|918J-CEY7u>D=2nG(eC8*&Ru(h<x?|*z3IK7U6Kp_yi zuTQ|l0jn*e#$V&3jow>l!}jwD=aCm2BfbmPf#i{;|2$gADcKwDnK&*R1BjzZt;SrE z3F3nC8%6;r3r1uJ5=S*MwU}7DCI9M31?VR~?!DzH>k9*RW6F z-@^pIeVx5n5{89V;z{CtwuDS}HfvtZ1xi|e=uw3i(|_3aXiQ8Tyw$Tfx;VLb2n-Eg zM11XW2-|z8hdpI>Hgqb?`5F1bpkUBwiRfi`L{}9c*C@?daZY*202OjC=ka{eqpxew zK>$IfQpLl0hm(cHv#jj9zgeXzFR}Lzv<%pvaZ0llveh0s@k_8;wbET z&uYYgJ&Ma=^0?e;_wnJvLS}gd5xJ?VDAb$O3yng#NjsxocOOmvoVo;ZcgVxBnoz*>tB?GeLz-#`pL7^#CboNf{(PtF zShhgEy_5D}v$=3hw>G&0dS#R;eKdkGzn`QsOvos*xd|lUChYxPN~bFMe70iNm{O#z zgYU~6GtjQKCUgO-s@3yb;_mWg>gXQUYhIFF5p@o371z2sG*>40V1;RkF zWWjxP1>Qs#xx8C&@}c}k&4W?qvEU_z?ggd#-a}|sD}PzDsji}n=t9@B*;!Yv%=)`0 zPnyM#>?A=CM#dCCaa0Gs2)fK!eVEQIXiEP5mj$9fyNx6Ma2|l9Cx=UuDSs9h?SiQ)#a6T#NQsLy^n%HwH&S;j3#II7 zQ7tvefR~mnyLofJMOSVe{l=SoeWPiAkGL|LenE`qs0;iz;dvC z@qd`)0fTh+5tZ)Q}VEXe11f_ zZ-M>)k$?VVu;J)N4mODB+46j$@dDen{b)BW^g#&X|u9Z7HN1?;i8#pJT- z%0FJVej|j@PBzD^!A}5yU3ollZNd$@Bdoq|V$EOBz&Fh`eS&-w1-w_sMu@<)pukbl zE2YDsO>+>p(UYmG29(+E?nd_Cdn`&oa8;{o%Vp_*7B>_#G#HI^mBP!> z$}t)3QbM1O!_CrQKu>rF>kpzfvrc^iEtg8P)!*z zbyE*s&h3bAxUJ0_*?*35qZKsbJo5&r)U00q=dWo;e!5yx+28f?Ygu(BbN_far-NUj zt=8-GmC6EyBT)aF^B{G4I(_Eqx9N;$=|>)=J^PPYOI0Ln^G;PxjIq0|S=~O-^g`50=m8`QpQl}q2mEomj@8j%k$YxSRG`hm(AW_>yRDKn&XzXIO zZk0FNyb=?QgQ2eXkUA3GQrt{*<3`Ek6U5;=a-Fxn1yax_Mu$Fr~92yA1Ke}+CG46*k{#};hR%hu8SmY(2ZgM@<%^$)>qkav1teCG>zH%%tfe$06 zfC1{p%sbPVaBZEh-+F@MLh`q;vFmGBZx*&N*!2A7E}AGJtd0$$=jnuuB-2S2=h2|| zdm3e3?a>*p)D$}x>4yi27!rLC#qFsQSSc*H3C@v-@mp^7MT*FZcs8Dfu-K8|U_@MR zqF&$i>obi4kmjbWIK10RrXdg#AaW+@FCo%t`p9X52!UlaJ#&ww|5Yzx+A*ZO>leQ9o2C zm2gVeZe(*rbjyqm1D#eDZrZtpLEd8qD{kn*Q=2{bz%J|8LN{loqH3)D z9Cz!5_V`14_p^#6npzLanJJZr(0M3v4T*{U{kwqf+ye_TUQ~Efk6|sQYc~2~uVNDp z2Yb`8b}PRC72SDM0V3VCRJA<&$Z3T&2z`2YNBf!p>wai&tIva zf1ltGXitF(s#ag`(>F1EE~bIts&BN&;|8Y8fK4$=Znxir)&zo3P6U-}Vl2fG4;Liw zR4iB^1oB&Q2kckmv{QpA95ZJft9o&xPwjPJ;P^DG_#oJnHn_8qa{GJ^v4S7*0z7YM z$(g$fnft;q=|QP;d@IDb2Z5`wvHN|l=F?%*#Xb|aS`krD7C%b2H1XDLLHwa2)RVEM8Gy9!Ixw&r@)9W*p4@$Hq99mS768R< zp@dH!u~H61MTtahWt_~A?$=FT$SvY26ppo5U-`F&wlz@esnh3eZ@U?6NKl|Me+zdn zk*_y2#2U$I+V%Nk#mG04$mU8;VCK6QQ>+-Z@jpXrQ5n(amEsO>oG$vc-?lN6FRy5Y zQXw0qez3}18=V<@fJfFwnvgPnCiM12gRQbL7~Ror{eNugrEJXXS7!ymnpu#XkOm63 zyxa7Kvhw#%9@pz8g}kz2#U;Re<$Q(h$y90Ta}AQpE&-3|LanXc+2F_aEpoG5^!_u@ z+faiIiK*keQjYUc?J9O+baHf0@^;I(Bvqp)pRir$SZO9K&?#TqU;3S6 zvh7b{Vw^hrhNDAPX&;uH858L+916Ru@5OBCEP|##v$Y`AN_{=0norPG z#SkzCY(*wKivl7b89hM#ZdhRNq9FhC$>-+Yyy%rjg4E@I!$B*YC;*$W1}uE-Hc`tw zsM!oenR@)A4@6 zTZXt(hHcv_CQ+vEjYajkKB1>fto1UlYS)39wF=&}`3fw-c%q)h1ntrVMTP)a>^g{0b5J#jDyI4&EB2PPFA z!N)O+DK8~wo(IHx{BzNTFU}_xBzjU(7wI%iY1A&uCALjb1IQh%70=pF#*ZX(-GdK} zq?YZ-jE64o9<2pQ<@M@C_HtQlR%PYk{`^mEaTyltfy);nrHc3bD<#373hYx*G6~ki zWq4DuS!G&AAIB4i)Upx7e}OHFmN`8tr`kljc;NWMPPMtjOEK(%9=*ho6w3g9aisM9 z{gV&O$=pDT9soXbPFa6LmTYdW(!5`o&0(=w}%92)jU~wVL z^uTagro-j1ZJ!BYr&%daEVu460yqO^VG@&KpBVh)N2aqJPP%>rF`QyTp7UY=H{yQ# z>;L9dzfCbsM4TpVQO;OE?1KQZb%jV;M(r<2Jw$%xks=xAU8H$dpJEh1a}^w69d%9n z(pDK$ZOks!vqxm-%DH_-Wp>6fb$FQ@7m@WX_874B=BrU50IPzmg|*R=()ts#=^b2U zbo#zs1}c~86y4Juj2RGnz!Pu(_O)W%P*H3_wpMmS0ji3T*G)y4yvNQ4&I3Y9g@Ny4 ze)Y&h-AN-4gj-9yrE;R@9>@~(r&7G|I!fpWs(IoXrZu*^JEkj!zp$QIg|u+j4t3t` zW(pf!iMkQ04VEth|6es0Jhbz?d^Lml*cN|xDG_+*Hs)$%d#}+!;B>B9EPk(;>e3$H zgFsO?7Ec*7XR*?77DM6xQS*Rb7@r+iFAuFGhK-<18!%fAo(&56%n@O2Ks6*+aYP`j z5=y~nf+_)IKd(A9sjAt!V{bY4%vS94gXx(7b$t92wmW__ZL|9M{=ZBZP$0{5QJq!@ zqmS{iyT`WQj}AVifSt|wmlv=kNDE6TSqB-;(z}aQv|o;r3&ymq#Kj3`Px7 zntCQUzjQt(r%A7%dJWSY-QE?`L0Hubcb|S~G?%yyBjja5T#eROkd5}*<$}ytxs5bw zF)#u+oBzRU`6Bxz@$vQajM-cfhB#U!Mo?2dcT)lhJj2xq?gVifnlNW&E$(DF?AJcj zJ2VW+VAp3G2@w7g1#klUe4h_QztW&13}a_?7|f;_^< z$QI5WuQK$X$UfX_wKQ~hbaT9+2;0VwP$f;43OhN3?thdDcP>+St4yJlTN7#)Nm+}X z?8#AaN6wyn(Dw}ezh@uzt!g5wOW#F6iNx}-T>wR_3>v0iEM%=ZL1w^7QOOiSDtx8u z2s50O`q!7IXDmG}Iz43sqMtR{3K;ReaNm*h)fP;%^bRaDH}}fJUoVLm6o$)d+&dSh zFpwD9*2s+kLeBsE2?ioXIGk(>*SEl|VF`Oln_^huQ}7;enYrNb}CNrW8SWf@w3=0fy0(Nn_rnlivy> z%7qgnt)1vSqu3_j9d46`v1lfWSbByrJPd__t3ox`K+Iy}eT}}PSnPdZ>!a?4vO^mD$63VUW_T1)Uf!0XFNs^NTpq;Z8e&Z|>@mM?Pq_ce zhM-*~A{=4TX1SDJzdHQL2KMw9>R**$tV@r?Hp7x<5urTLi9cWCck(madd^6<|9PDT0dRDR>qoDTFxwyyYA=Wj?r%)0BI z4@1fBur?y-WQB1!x<(h!wcT3jBskt{S&?>)iwgDXaN^brX$mFLFBNN&WhxqUT<`Y3 zwJy*_xVJ5<0{WUzUp2zJox{t_S%F^gM~9Rc3@t|=0dghsDZ7J1wyyS^oGU3FoljVV zoz=@r3)buDawy)Pzsr|KG0->e5wbp4EBNW(ulU5*Pv~8%EIvyx?7~K;9#d)k8!SF+ zwTmtWypW$i{-+dKv*y@T`n^|5_c`xcWqMa((vAGo^War?ou9r83~+KgqQ z{ylvv4ZG84{AVV)g@Y`*OoEL-mU=VLr&K6oaB=R|vjPL99}7r$zXyWjdEzAu09l;N zg%J$DFhygJIX(1d3d|AyX;G(uu1H)5$dW!8U-#)wC8mCDzJmV*D1!HYM1C&_MXs1L zAeY}`erf@MR)D{wFaFpJe+?7PNG-wUOs6v{ahaSsPhff%F1d>+rqhez*|bLDi=nt}A9Iw{HVDv%o{xWzJ~OcgrV zfO{LY2zE3Es)E z*x+EIZ$0v(Y#}FxBAGvmGEU*7fX1>E_&lOwyp$~RI<*XvjLuZk1Bn>WCz{F$BMwWd zWDceKI8o?wbj2q0P94xzfo?DVJtGl{SQo0i9JT)V35@Cg0l3|@K!FILyq0k~?9X*k z_KfW4eR+)=f{Q!-DW!|E*9>o?iJ<*qLgA)F271%1w&P0*+tAo`0?P4h`sX4q2w7)KwNhj-Adw@$3@_TJi)xOuifYaPR>+4kMT2Qxbh{7!eEJyBH8X*r*Q! zq5iKAnX}p}wxQD|J|;x2v3REcsgvXwda9Ud?>H?>xsFyc^yUlTf1cGqo{1!jNja^vo zL$7C{o}n8mIUTOx9!y81hqrV%ztX-wHaM;>*D*Xg;_&pg+xbetUcIzby0-rZ`A+-P z{x7#ay_A1x{RVKxPB=%qZAans)mzXRxI#u45vLfF256HA%%D~j&!b|xe_`N2`+Q-C5KL(IVT7hUL6s5aP%p(|_o&BWZ5 zJ>e$~dWO*lU0X&}r3ApAebQB?LI_&Il-PF5vYT^$hxfleF%&w0OKf74h}-|um<-|t z?NOD$lpu%G`a3S9%DQc%I;^^c_~)6xi+UcRjO{w*dpnE>4gsnC&e4^IDhWF<+;N? zgFc7zBvrCYQo>}DN#tQ-!r6rJhg0L&2lPqW?FoiQJd)XWmpU2KqjB_j7fsR5SF&84=L+|J8i%TJdzs#5bVe)4r- z2%DP#HG&MUf+;jWEYPw?S*Ck2^oFJL*sK8oMpglLf3btKl={`ISUg^=MX%ZxWeP7X zvqttR=*OY#&t2x(sW6qh?gnaU7-B$tzPHH87SSVD;(qzPMV+C@?p-2;uv65}lpIJHzzq11S!ejr z^uNo;C%3<4ua$;;_W%&X=y?|q>skTRDkbzr1$cH-j@^qX$)@&qY(XjDe~Iflms+a=ZR> zbw$NEJ5nyrlJfvLSiILubZqIJ1oj2;o#^n=^$oYwaY}Z=JZgad*?(b+6MioZBJWvs z!uVf2ZUXj;c>-Cm1ay3B51H&;b(MCQVD!w-z9J_8Ma1UA3gJ)8-XZkz5-SO}nzI7x z0^kjBR?~lFn?>yH^tV?57M9D$CL2T`He}w|`a2LTLAiXd5?t!Q?>XSMiH7>bf&0hdaS^-GMZgQ9D;qDXGM7*48K|<)D5o`5D>Jrv~FF__kspQIl+aTSYsPQ2w(yv z(i3xce9TXMCj^iN#>a~tj=xfoujxx0+=-mqAg_p@cxwDf?Rsy4>2 zo!Md7?gm}Lo2@VdkF3_EE$Q!5DKXidnV~+*bqF4M4m*HuN1s{i16+PBMFc)SCK`!G zBBc*BLC?=#XeEzk#3B(Wgj8bD2udC_6*nI(-AF_!T~ifhR6^0LO82oK(Jr*T(+rSV zK1_ZR8+ITfOB#>fQg-E8fD0~lq2}ibPb|o%~$=2Lw*|mfdoT39==tMVe;MP0L zVostj)dbB(=Y(VNrHJf2xF0Ui0g+=)K>QJ|ntjh zUrA%prbE3WCCfq>i-tXj3ietT4={-yu&0eOL5$vf}%xb7}1ygAy~bZ`1{tesg? zb8q)&eUncju>VX^Ie!+K-91^;+I6V~X3_eM$ax{}A7FfLM`x-^Z|6{O*Qc(I=hm)K zKGTlss;E-lDJ2!fjE3(vY(!;0et7lr5(JA+A9qYTym6D7VkysBQQa}SXL9N% z^YiCFfFv%4M?qt;3QU@;&4}~ECU4-i^ZThn3Wdga>iS9|0p=cY!NV|?OkuI+Tw#i2KKrE4G+eF(PyI(iNfnT3AvJV{ST=E;nG102OV-!H#W!!h zUj6sy2I>5+$!&8R1WaJ*b!6cYxweWgB(WS$#wT_I@|G_F8#TBv;{5c+%F4UwTO&h5 zDUVk8o%)paMI8nzg5gE`Edg`9-mN(ldb0go%KS7PE%YOBsREr#sV_G+^9^AT!Q#?_ zIuuoy87@wn!!T#Sn`jsqb-v!WyfPDgdt`7Z`Oz}J--aCILJVK>eD;M9PPn=8V?qpo z%+HK71BwvFnU+#EztZjXJ{QjQcv72h5B%gwN81n_g3rOM7Q6HRvXST{yf4Om+3dlB zv)S-sxa=LfmV3BfC6GD&u6W~f=|+*vwn4scMkf8E*S56eg@6D2$QXJvIF$C~&!3x( zGS$2P-c{$qo<__VAg4WkQ~s=>#EsTlCLgsR67FgEp7DEXX1zBVuXi|iI~;^2HS9OaSDKXV*93*v zIZFxh$>dBxAd|TuEY>H9b=eem+)`cpYci7^L3__|+a8Sty;IoO#jX6wQI!Y!8-=x) zBPv+-bkf?wbw!`)4%QCH=yivDi~yjoui@WxgU~xz^}6?p;%(E#D6G zRp>pNUI>P8I04>!Xpr+RK0s$;lhx?z=p1N|v5p()j^t<*2u&qgS_i5m)U|!dd6e;d zGWBWN-@nYBUd>?GPFo9YT;Uoc7{lm^N0TF|B4$lY4uY?SO{O#X09?MTXhvHY@K1mU z(|SX<-b-SRmV6ep^n1LZDA(VdkMUz=M|^!T7-xc=(N)3lh{!E$CSHM&8uQNcjv6nV zl&Msp(?e@T+=>#vWQ4kNu!spk@{X=s5fsW_9ME8yffu;M0EV2v&o2J;DU6rK}RvelcC?y^qZ%_?FRkNX-_ zdRo1;YzvYDKE8m+&J>tB4#KO0sv2O;xVzm|uv$2x5m}1y?)4I8g}Ru-e!dY1yvO=a zwS-;e0T~1TN%x+aXL>XWS&AHKiD@9Y*(wk9(k=?XevbZl>E^QeRi-iqm;X4K>%g{A z!2EmA9y~_ufbp?ELtO^=CPp)PQ~u_6?=+yXGsyj zFu$l;ygF3q#{wQ64YjSS`ir$@8kzjd*O}WDWdw3eVhJ^0R#{3nC1s3B(0PUO7m888M%uw&l=$QL@(*qNr4BOwSqZW3{!&^(!^wFSd?4F>XW9$R&96*2Q z8sEw|ef0>zL8dS7dr3St6ROFD^W%~*S(rjx!rQ% zcXdugU2Qp@P*C=hNYT+?3L_-Ej)*eKV1R(~c8ZJ#9}x?F7=PE%e(zoAO2@;#2gfZM z8l%^JA1NP8gCAqiA$2^ZOXG5l1}7S$=Y$i$9MjaMc{!z}#>S%0!iSe)YOv!M2Q+A1 z8&Ygy5W}?Pi4c=JLm1`o0uo!7t51@{?5FuHu~SV2kkgwA9MDpvTD*V&aKU5g1@kL) zf!$)?{?{LG-NMS-eP=1ioVp7JSMmGD+N)|!HymZ!Zr^2ajr-%~ec=)z(M zGfbR&Qku}hC~IdlC-|Q99d^G}(i|^~KXi^$RdvnH5s#j!so8LL#^M1}GK^+L$31ST zTEBQ>w*@2C61m)jkgza*y*XdfbP?=ae^iAl7v%^H`c zn=h6a0H}~rBPwyspdN6my}^zQKfRP_)Rw`wwyec$sIGIh)-A|UYkAFwv#P$lqQ1VO zv(8opw8$v_Bz{~Axqd~t9{~d_{NzX{0lzP*W0j6+iSFu&=^?B!IM_|-w4TfKmTP=_ zb4>5Za$)Rd%)}3|{JG3Ue%@lv9;ARrgkeJ8TlvTFF5UR?@n@j%N#zRp0jY@6(t-eN z4Yqnf7{G=W)xl5|i@S)(nXsXS_Tf~J8;a{mm@#y_Vtq8Aois??P}iS3VqAS0)G4w) zcj@VzJ5;o1PBF)nD;3IYCgztTtL7pjOPG$i%xCcb+rIhm;gz}V3aZpq50p3+xmD46 zjR*2K+pQQ5H_qs=xpLq2A380pcDdT7L{f~-a4_uQX!pyM8X$%OM`l!Be&}@m<<8?M zHDC}h@*;@{#*6TWmxDF!%-}q3xMdE;7JGmgF-8?%gsF|x;~>DRb9CPfnel7SlQwU) zQ0$6PhPA4KUka&unXw5|ZLtjd=Z^=)YGQXSsmrYJ=(@DKF7l1qh`LP#F*6gei3sRf z70`k1-Nw7_-*kxffbmbU(Y#QQQpIfORsmm#zQ5lM?4QF9AToP>ntzy z!^OSDOm)Gyp_Y{}TkQ9zkE7h(<{2sqsdcB>*bGbnD#%2!OHb;NA-(O|8t2>`v zu~K)RTnT6>qoVxOC_@=1a;XJfben=uDxH+lhBVSZGY7SfXDLtQo)J36)M=`Jolf%z z7pypx;6^R4gmGMMY%Ee+(2~*)J|PCZn-NQ(YY|?ksZtiTOT_^VA&FT-p(h~hgFuHE z10!W{!UkS2ni!w89Na6}0~@P&d^8fu`N)^6dhVKVuvs40ji;zOV6YP>~ zEJYJhyhCqPRhcF*+Ww(IEe6a@1_RrIwN8C=oqeHpL%)lvw?LyeLog|I2uI)4tS}Hk z#y;QJeNE(X0ps2^8JUIP^Tr{mfE1st^lBtCZ%;XxJ29gjX`Sg;W%&yl7y5+*ukQH? zkb){iRS05xNF^eq8!6~1{1hrA6Xg^9<%>vixeisL8Da>wcqa|`ZaQ&xEYuAaAwMP{ zmlUabjZ1N??)nK{!pG1Jt_?3?CD;14|Jd0pp~hYR+Lv%hrd8~BpgdK5IDLj|lOtmD z7H|d{R}rx*#|p5m5g~Pg74{1)NG2Qozf$vWb>?Q#9yYEAmr^nQ6aq@}0d8MN_H|O|pZtlV19FFz^1!1j_RsiIlMo5xQ zYaAcZn^CUX06g8jm5Y0;0LlJz-!w{(clCv{Vm+Zd?YHCW1k=KKe=i-{xzp)R%@py6 zx^v#azq;BMQ=s2}9=f#ox3bdUw+G58cgWBFyz)%>Zofx9CeFMn54x6<2;Bv38P^(m zZ;FKNf7vePOzVCVx$a`&jrHuFI_F!l+Y})A{^JSLm@580o~1k8F%peBQ^+;^m;nGT@~Y+}$YB5dXnt;wqb!A|>VTtFsC zywyJdBeU6@Q!rWULxn3UmB97#1^~2(T4+=z&EepS>2#|QSJM&#*$EG2zNblO84igw z9Q-wgTJ{?ja9Q-CysCw!PfvcvcAaH@JVS_**`V5BE>o)53Zv!;q6*6dYSo z67);S{nrE>10u;+pZy$w3;LSb5VLy%a3>g=+^KddZEs3GZJtIXBoqJLhnaW6aefmMKQI5hbosJkyha{%-?4nFe4QANLET&eR89-J-c1~)QjSuGZgROH!R)eWt7)D}6^oxN8le}i zkm%!`To#wRV!!9rTDwNmjLPq^YSld?D z-WhaUHNuVz;d9}NI2z}?z$VIl$RhBB16ST|d4YrQEB%s)s^-)~K^><7=5culU=@PY zL^T2C=cLDp(VX}s<^6-35d5mobM@BZ32sO^*m1u*sWk;Y1)IC@4|J-EDr>rRk_GK? zPy{n}=Z!wrC}Qu=E!6*y*a&R_N&=dm$eeB7`R-Hqi9l|7e!kfp<=Wk)%kqeh?G+;d zV}ZqIvig4X)n*XR5*+<8v9Q^;Gz(DE$EkL1AhCt0R__oa>146a2Xs{)q$dkQ!cLbO zY{9CM-nA^?QOrEPUW+BeUMri6Wo@7~IrJacZ}a};x%a?{GFeTE7<`4k6|tQtmTPCP z9$5pTt<>`3xeZ%F0kHz*3_3e83Exn3e;|M!Ghr!grN;67%Jv!)$mtAC@IEeKNaDC2 zR4YZr4S?A_)=`P74nuSxtNm9ZcSoy6!T=7zHl(s|o4=I8WXKtdLQ^Ist!#c74946- zauNf|W8X%Zs)(5>ZQe1cz?I$7iTL`ky-ORA*>{AYhO8p=&B+_fE(h;!{SCI1DFY@Y zz#i1n+z=+jmrJw=jRA#HY0R)el8R%}-E4S-wN+^TU^EuALSnD*wv@aGO>NbQsR@N- zjP)b0w5Q3go6J;9U;z;mVqC(+eWZ|%wfAPi$jSbgbcjNAWri2VFix~%3jhFiPE2P7 z)6a!P*bt>t)7uoH1JSXO(LKv5!t({JIfBpQd5XhllMt}5x@zs*T;Ea;g7RzXnwpzh znn03MDQlt3Lh2AelH*j^kO^tRsm0&uHvQobD%Oe)H9t8*Cw;5cZMe+*U0@Jvp?ybR z7|@U+sPWc{`re}{N8H3A zbv;E!o=24nx^`aYA^hLF(2HupY2@^+?jJv;10JCT!I&E`+A!H|b5yqWHAjxgUo|0n z!0#TeZb|sb_>05T%2tS9_FMk39Y#MW`N!FwZb4}1^_HE)3+v6@r4>iE+F|YXOC4PA zq$#O%AL~|qc3`1z_otv|=G9zjFGr18{+V%^^*y>hue!G&z)UcCFyj@oHOWk4`IO%R z^yz)o1dxfpH(U_cDS1_WMFB>FxjE5X4TEVapY&UV?tF;Jr6B4L+GgeMx@P6LZ0hH2 zhDUTUKO@(kKER}0BF|2f=ctPQER~-<`p5p7pXKK-%BK}BZG9^L_Cmi%gv#fe2gM@! zboqJdOTZ3&5q)1p&s0Y2eztHXd5nuGCBIEbG5Qo!jEB`N_>b?A#%Q!N^vOGWSi=Wc zClO`ACA{ELxXhrqu#5-vQ;5;JTKSpRFXS%#%)hsNqOYQTV|FfF(z+Q_aEO6 zTRt;#H#gC^Oq!V^eAr-iiqbs)RuiQD@{Qs1Zw2@UL9c~dR$|b?f%Afc8xdu#2Ux>< zSog>e=#%3#yu=AyRP$Wp6_jY!Fo}Tr_0XB5YrqWXiw!U-1@k=)N3R>IZEamdQjtyocLrnJ>s|Meogom8A>%K@tDWw4>earW-i9+TQ$;cFb zM_kvW9lCpE&~lMGHfXLAS>NtaY}6pkPb$z!iw~C%iUy>%2U|&MKTf?KvcKkaAQ_sC zfV_J!IVhe@i@!N!tjg-UYBWFY%k9v<%cA^cK(-x`7-voaj^Pdmf92i|_YPz8NrwPm z*1yYt|2x{}MM}pyYm}mJf#CL^^}l~V8{0S)S&78F+@j0 zz0p6%(S%^@)hDGrRL54g@fi>vk?+zb$EXvuJ3~!{h%y919}_9?081d?^UKFIx7aWR z_gDNZaf((eul=CI19cp4WCOS+T+M#c>8(}@X}8Ev{|v9&8j%y6d3=NTicMGSD020B z^NL-if8Rj=D?|Et$#l751tfB4-E?Q~*wdzGgmcYuY3FXTWlGIfQ;bn>?e3(D*11Y~GyNpmy$ZjJ8a|R_`1o^GR{{o%-K;~?15(fi7Wnd7X5vKFA z#eKi;*c8|8w0=Y#gD2J4H zq0)M>6o063=pZ{X5)OmIgekGIuvoIce#{F&G=@;{o*kE*vJU5;M|FQ$S$G`^FuJEeSy~k8`o^Ka1k~3 zMiMwCvEeznTlT?3MKixb?8cz0R*K;g6Xy8JFBZQ;R(S!_UoCfzgsU25viR+;za2+R zWlQ8sWw6`rnR*1TK5`!8?%IIa(f9dl))XHi@(g)2E=J}?NT^RP+68lk+?qvs2xc%Z z=W@6ZiMO2)IGAlUpw0y$Pv6i4zwE3cTdeb~WB+1(|p-3Uodm@mnC@l+}^hkg0{AT4q7Yl$=!EF=i!A1Px z>6jwVIJGJg(SS9#Oa&xPh4q)B-kPGUvUL0#t)Dqoe!2Ly>FvY$1Mq%YSA0+|_#FRa zo^{PFAMbYKDsg?Kj|z+VY}shwZ<{`azWmMcRt~Y8D1u1R_S@HOn_zJxId}ckPguPaMvO83OnERKL#?Dci+0 z^eF9ZFVM_EiAR=|$3-_r;e`Uv$%IBgVP2W8M(2yitDybCHd(IPI@oEuw=wUdKMdSj z?EGX6u-K8|aFgv~0eOQ@lIuLZ{t{FAsB%WAhNGs05AJHc`WUm5{{Qvv5D~yU6(qHb zX|8!(d={XTZD$->7x>rVkM;G}6R=HHi;is}Gm%ivDS*lsu*; zPtrutX7P@FPSF*hBNc1l@OdzS2SGQ8EpcigVI!AP4qi{to^=lrhDJm>W4uZLRsz#K zk>zSIPl%JY5a_E;-?|i?S43)qGaV9liX~o<#Lx@c`OHDBP(sx1R=~|e#HsVn;#sS< zAfYQ<5)Sh2gQZdX$pDh2Q8MYxaY^njfe~v8_Ep{igV(O*qh-c={+5OX;LUi~q8$tn2iHhM|mBRO@-;fyGYE^R1@gGY_IOo3E~1EI5M1%8BG?&9|7|adP%=4PK7mMYxE?4O$mj43Nx) z`QadUN4k-W;tyN9`{4N5F}2RNDazHVm=rFTI|k&mOAO^}p_HQ&V}E=mteKd3(%(0e zo+7K)_>c%wQ&a>+$DE^$J2z-ri1v9WJO_m=S{BqD9(&{AqtVgTr;jE9j+E)``-M1s zDTkVwD2x3JCDIM{3i^As%D22wh1a$lpir)_@lXzm!xTW=C@<^*$Q^(uQTyOl$=_On z`frX24}8ZtP57P|wEXjXO=~j4*Kb8?QuWl0ceS>YPAviWNqifA7U7wuLqJnGl+kA8 zfI@m*F1@MHTu5opXq_<|N3(V^+m>aUq?QD~lbm=kt|Aanu<>XFU89R%;p8NG)8yDj zeo9|&Ps&I4mrfa95?!>(Rx;n_1fiH=F_KDiaC_OY)*|!mKuUik7r() z!=~BkwjRSou)|}dmSC+6#H1n&36e_CZ3%EOd8!Klhes95f1@aDp}rgL{fN(T;+C+d zGKUkLaPjh+=Ab@bvbTrpY(sXg*$Vik2L0B{FL%~ip=90W+C;1(J>Bi>7u0_*wn~Xa zy^%$6%m5Y*asw0Fk*+HaqpPAX?Gm}z#t8zs01I!n=vKLe@G?2p+DCjntz%Mxs~Ecp z7-b<7O`30SJFQrMqdgQ;Tg?~p`1P#u@x7G7Io*EqPFU!_@eN#q(5F_{2nVA0PgU8O-KIOZEE+W-I~bnzQhLw8ux!b{f=`HdI6`2S3~Z>&{lVJ2D*5$O)j( z{qVpjJ`t%yAmRmNp8rNtfx`9vZX3?Jl8f`m)XM@U)7yIU{oPC!lbInUO(%O{n?5bv z+_3ClDG9BEOT?k*aA4#wF?PA0VyBp?OSqxI0^*xYCAt$!3T@r$G8gt_>*rtZKAS66 z%PF~@0=s05oDp%$L81zqlU#wP_e`=o~N za2kzKhh5SfD*DVskKHolVeb`*Cnv=V0+tNHufzlFYS#WVw>(mu*l`*38Gp)-eseZa zQP+4n%XmYQA3C-ns%KCEVq&+W3zbV>M`$hoXcFQBjG9 z%@~dnMK~005?2|$43Xo*+e!?X;YekeXt;12qv~;m?`i~&GSQrTR$(xUh{SMUn6Rk* zTn4znW&K}<-e%+;8!0IKaq~`;O!|U zITfg)lRi^H%`HA%fi4ZGZe%B?f=>5XKPuXP3zDGVQF`u1O|? zvz~kGHkh9HZHSBTz6>L*b(Txz$`|OaR+bdfmuaSKQDGo&!Xj*+%6izn{q_^|a5*m- z&Fa5x2c1@1OYfO}cyLjpj6vy+7A+LWsm}=u$p#7vCsDx_fUtrOqo;x z_Pt*u@sA4RsOb99T_Qw2p4he#oOO>+`f4voGCbP~n1bypcmWuM;?YqoxOT6qof(3> zvR~6$cR2JQp zTO_hQqjWMNVR-lNKL^^zLX=zp7o&r5b^uUb`Y%2y3ICc}17p4JLS_hTk(yGRc>!^Brt^LTHC zg6xHD&SUb6@KhFkuLZ~I5j+(i?*>4&JF2QR}nZp9aJOWO);KCJrA8E zo>wp2Bnovyp$#{KQ(MdBO>5l`m z?qY<#r>Ni^(vQWG?8C7~8q6?|soXZWWaQHyLoXXYwTJMr731<2e`lBkZYEo$Uk&ZiwT|$$ z)%jzy2phUnGEBDp>(`jKQJhegtxly&hE3$&A!BVkE)shuR1SJNn|72eEtQrnE#)og zr~`A}`j;lZj=8{%DbW~n7f>w09yPSWlAwDF<_h0rY#}Nt(TJT6Q=r5!Yf_IZp%)2D z$g`KDFfax?HWBi1S~0I;u`rI*@F1g)gyVA8)iAxIQ{3y@19P~^`#x*9X$slD*y)`l zFhg?N$)(Pf)2-Tj*a+wEMnYV7fs?v% z$LJr#Mvf<`BNmVh6SsPUypBSxBh3)X7HOr+aU}feW9Sr*hjJbo>a-oys_nmBmcxY7 zgZP`B_orZv?LMHq`&`f;Du@p*7##PPa7X5UCK{NXnu$(@*tRR^?v-rzDquA!R{3Tk ztmSAMqLYG;l~7T7Ss8ELkR@5c5EtO#+UmsAyE!T(4e8qqNSL(>){(IWPR#5$$?9o8+xcZ0DG^DpeCY;98jGZWC>| zaqDRdEfe_F)5D~;KA;IbfjNSV(LT)fj=v_<3B_)T^6R!H%UIlX-r^mqrC_)Grcjh49PLg0`Nt5I(hYH(? z^2P7gSp+Tx0teOO)&@8hV4^byiwS$I>yY@r67h+)eDmvn?a#lkeFhF_FNNn7?c5bT zKgcWQUO)JF5O@hUy zf!^ZlU%nr?N`H*d=2)NinBIIV0^!RC!(CH(Huw3)GNW?P$FE3!a2^u{Qp1eBHTMKZ zs)*(YTkYYeJ5=AlY5uIrwN_og?mY;DBo4V#L zpP04&^st;-km`dWs#vixXLuDS`mm@yv_z|MEh{`EC#D4(uzE8d>T5%8U5(U&)#B=6 zzk9)Qao=nyojD$L{s1N9`^XqoEf)b<87(3gop2%3Js9`&m>625jnTx1SAy)u7&7jlIJwxTV*&12@!YPeY%l3YYbfr7hROZ% z$xK*w3y)KIDc?SMAKYfCx}=**t2uMVOIhEKLwNMAA* z3L>!jxHX0vVX0_ST#+uGD8H@gX-pup7gGqUK9|m9W>|b75iOp(Vnb$Kyl$ zyUFpx;Ss|*IhVu3vk_dp@zt7}3)gg?0~)feY5=DFi_Sj7lCYFqA@TjhwZIGq^*Cy_ zW$jdpkcc1ljG=!mqs0qZ$B2zN=-jgUFCKp|KK-t&OiGi)-MQ(<%gXOeOiv&%_#H)U z-^~b@ny!!KRiuD9+P@V+RAiztHIC`8a44<1?n@|;Wmu`jZ;=>`?}X6Fv2BeKL+=|j zQU)I)4$~_=<~_n^;EP`M%fWgl^^f(z&gyhUzz%?(6nOL)bStpdDuYtnj?FGZmM%tV ze-2mD@8ihDER1gSM!RxA6UV(#JEiSR>So z^c{KlOwG(Rx4(R85qRdzyo+@1h4I^M00m!UZDM=T2G{jET7#nGtZ%Eod1a1#orU3? zztAt}b-#W3mU_4iMu(}K$9uDn1uySud%e=yh6QT*u+k>_nJvdNr$)V$-*NasmU>EF*7hq5;;9f1bJD%HQIML(GfyY|30BBHE)Iji zaqTlLD^DP&Zb@sG@pR;|T9xdm;yC++uJ&5&7#G*pq5Ozj0U}K!5$Mt#00thr1@jZC~gGLIH2j zO6GJT8B(J2u&qUw=(7cQ)4!o5OSaun#qZ|VzpC$U7=Es7vXP|q^A&!0V>r%>myG9! zKOL$5I*98MeyFLBL2@T&>)AuHgAGY&7bmgly1|(N{@{bAW;;fmsEz7sZyb z7Gr5mVA8xwZqFKA?Gkh)eWW$)0!BZDG{-|^=hU_^Ja55cpj;}KjG5904*-HX0Bta} zEzPzN0}h?IX>=ad)-z8~CR1+8fQ+F4o{@M6O_v~`1H?C*lu%_1cAL;kpCgIi!xN8j z*MX>!bpQX8KnTillxc7n!%Vt~q-EIds*p$Z@6DwWoH*!t-8)7c!Jg7Ysq+1vL~+z_ z!4x3D;Q()nOE8s&6u+H&(;re9s2t)S@U8FM5s7)?r{;vXKi1xoC=;HAV=Y zuNtFHcz%)?7Vw;mgqg2$nvaB#forgr?Re?H)=O(3-^WsZ#$rCFrsNm2okEM3ejEm4 zAB=$Mx_exW(puI*FaQPB@8=sBoi&itPzlLyF3p^~!^E}|2c&hFugRvgS**ay?G$}r z#9;aRd)BC^8qBmx?vCLFf(QX3f(YlyMTBv7@cUnWaAq~=UbU0fQ82RZzNzJU=8u7| zc1-Io|DNpZECq=y812gF69nW{uEcen82bOtJowY{M>f`SUDwk@a@l-Nu=hxDS=sgE z!m1IJY<#HpjU?Nx!@r-$Nz!qkLoRGf4!PY9=r7}(SD9}yXKxla`pxSG8Fti*{doYE zWeN(aXvj3;o!t8ytDcpAd}65{(E@^CK~)=DCD8^KUW}A{gfm@3;s-E$NUpS;n?`B2 zHJoxlg=-)C1~gMxY{I?v236|^-Ihc@l4>mM+u2s^tO-9gDW3sQne@mj#o>BFkl8M; zedhd}d=A*o{Z+VPb4lTg1i}WRlfg#=Yk%YlN_=Pm!ZJ1`P?6>gjDXW1hmbjNo;M7w z7^yIQevwqpFj|0wz$b`n3j^}}`q+8`CXv8SVcU`FkS{x93GB*M zM)8;Be}63d{tp4_*OiHtK%)I+#tCWhFqAW#ls#m}fM&395PxX*>B9^H69q>kToNAw zbLInd;s=v>YGI;L0sEGo-3j+(%j4;o!%q;8uZ6|{!$C#p7@t2fwxB2soqQ7f+&8;| zJ|az&-fWDN;^K6piA|&rcnMkQ6FtCmbgyk2eic)LXY%&;4)=M;I-(*h8;!Y(@FJ!* zz^yQaK%E?bxZy7W-dr|eA`s1`?45)ngUfAL6l+3hJPx71d$#VJWSp!Ih z3TR=`?m@f-l4~Y?hlJ>Rt;TIkn^Am=DI{aP1plXT6)7qb_kO9sIHCXWjZT#+h?ia{ zeK01tz}S$Uq0pgjlR|GYfuf_*LDw_Ur8v3bK@aZa?LM|+GL;<}1WJ!l2wVhb9gO0@yA5oOxF!fWn0N);4SFaHz~ult&y6)4HQ7cN4x^zU4rGeLFKd zGXs(xRmEoY_)M2cjobCecDVXK-|5iq)5D-j=k8{(GriDzi$@I%1!}+mgsciQ$$86x z6DFkPnEtLaa+qaH&IOJIVUaJHuyyX+8A2Jf{!$_g_*lR2`w}MwT5%%;*R0(K-B~0X z2$JpFyoVGJ@Z=E0YYJSKO}{T>`3ri$M?2!So&P+G-RcMN^lA19%7NRI+G}sA-4YXI zOc2im)1KbV|KfgiXi7Rhf>8Vjfachka2MCAfi|o z84r{UyRK?MjU&F42MU1<6E!n2qu=(9ls0E3Btnq#TA{MCvhv(wld>dao&E#TBkO^+X`C|_r1*e~V2iN} zuq8exZ%=9c#+ssK{etJ)8(3%X!Dk0ed|??}Zb!^f4ZWAPaZ3ST76>Y3OaTsuWn{75 zc|yAuO0mveL7e9!k-@~F*u&RihF3mBJ&GP0iv8#-B3LJcLL^^Jxg`1qu@F0uy!uE;1u?2GU(nB0(a$O3PM83y3nl(I1P0=EI{>365H$@`Z6zm)W6z4L0l%8 zLy0`mnlxNeq4*rO3w;3c)E1viwRCd+1)v6>z1B0E!zOY-zk%NS_-I~8L)pf>fyw*} zocsNPgtEY`^bg;vUnh(ujBa(?cAB>3=2TYh_Utf)q6aIm}LZ;}Hr`q;`D_9{=YYKBC&#;;T8v|u+R+2&IJAP}{X z4CbLF8Iaim-a}p$2sI39BbsH=E$_Ea4!3=mYtm)i@n)ZUzi}C>PY}J1;czfq2WgaN z4SFC=Z7nrq%uVeTXqfRaf9Bo4T^Rxb0x3$=XkOd) zf@2%0J)(@C9<&cWgWwR5qC|~|!tWTOPQy~-3gU2B@qviE)1uR1+ls~xht%tGZUZmg zrv-U04#_8DZZINb@+nHp?>Vg$FQ*#;+zlYHMcmVl`w7(Rq zkWZdJq-Py_ES7hjsv5>%EfxUW4EOL+FoD<+3c2v*j1<^pmF+mq5Bc-YtPLE>w7*CPO1K%~Ds zAZ5j=$9?@`*vN|r&v{AgWzw6>_JI0_f=F7roWVxIQJf^3N4Q@ z*B8!N|q98|`qA;sHxK?5_v6T~DO7J5% z$<9TYJFY{y`>)Bsh7QOD5&QvQB^T9BQ6LK3b?|T(4w`K6$QnxXhFSiP)DSbn4b4eG zLeeGu{Ig+X&U328h&?(Q1^BS2w~2K^ssuF&h1imS6sE}ytpZz*mdMB1jC5!Xrn(Q2(JfRk>M=7(~8NN??-8M-8j`B{hg5{JaX13Ga#2L?G!Cvi3dz= z!jwk;U|nBndKD*{vv5m~42xygrgU%I%j&7zF~deq1*)~qSu%g9ulq;vO5I^f8cBE* z$hemtkc*Z5@Q&cX4Jv1T0;}3}O)XD?oFOU)DFJmG6{SoBJcMZb;PqYT)Lc1RpGdHa zL739NHg;UXHkZt>_*4FBZF9CKf2geoCJ;qD{ngL$rQt;7GSUL{9Q9~*>_iWCIuTw8 ziF@b63#Tk{BvwPcn?YA1{ouDzxO5{*;~coP7B=dM%659X?4jSWG^Dq7Vv-o}G$`Ke zwJY5i**LBlqd;@r%&eG*yglABe0?K=P=H%&DO)7G5kw`7NK&;#!JD@MVnXJR%tI%W z1mvDsEIwfoS+s`V=k8$Rw~F(WW_j-&Abb{*r9L^9p1sS+vS~*owY$pWh7oP3B3q-E z?)+tQlq?cI5+R+JM>OG^WjNaS;1Pkw{4BmH;0o9Gtj(G&Du*KfI$e>1+iq7%5U9I0 zWZT4n*cVpfSOTH(pIPujpvxsxkP74%U08WN{%fv)G`Z`1tln1l;Z~ra8wZ|fLEZJg z&<#%=+0iuouxMy}wI&FW?RjCRj5Wf8VCcHI(_A#GZ6aTjiKZW`gJ`^RAi;wWXnJKJ zGlkwgk!^JlUts!oaIpVwnz~IvzVz!v;u>61L}CGso*CiN{Z=QYV@-#JUu_blq5@L4%JLQvXW!nwxhxu{OhKBS#QaW=lTpB8AmzvGEkM9R$43w6=83UDm!MtT|eqR zWow2#OR}(rEUNU6-)w%q@zA?kS?}ohpAAxST{*SeVaq-~bc4P3x7_z|11gDRgktyv z6c-~3@Pb7dFMeov5h#^uAKe2@dpJ{d;q?*d9hmxwNsPd;Hbsc@blgnJ0C4Bj?$alE zgGrZSR{p)Yn816F*w-kjjJ7U2V!uhV| z8zfLud<_B8Xa-R)`Us=>oD{#Y6Jcf1LSk#lm?#K0L(+?FpsAZlsSTglS$5HnC=52Q zNgBJQ*sca-v9%brF1Dhox<&o6AtF&V72iUGgdn)VT5t*8mw5C9M5vGzz*qs^Y0`BE zK*{d60mK;S^B1Yvk7sV)B9b1%`1pA_70vv753p*8W+fV$RnfBDy?rcDjA#H0oJQz( zxL;fx(U_n4UPe+_d;`!2P+L9;GIhKhtlDw#zb2Ylrd`a#8ELTXp5^WB?$f4=fx%A| z{E`yS*#C{DSr3L6L!sL>5)*0C6{!5rvQE`O*q6K3perymHM0a}z}AN&4%#rxe_`r| z&bmKw^DKVXWVXEtBJiw?3#kED2`ll1o<)-xw zHYZx`G}-Ba1O%b){MVC(&Mo?U8~9!AEG!l}sNE8zElA$5kA|Z}PTSJWyOFTn?kVq| z-{&TeMQ+p%`2ulAr&-;dSw0m2&mN+*6t>`t1T}zSif?b#jy0Ixy?Q7q(^7E=uK~F; z4JuSUu1(I+kViUCUcc@dda}l|tnL7*Of6cjnY`LX+ zqk~5o>HIUo*bVR|qM~m+M)SRmeLY1XQq{T-&gB`YN|FMz6vrTOiELxgzHaN69A*Jc z0~;~~2Xe?fH2D4cPwB_u26Rm##MKJ&nitei%Sd=EN9K>E8Ah zt;M>ngSg)$Fb#=(P+wnPf3G0M&8$F0w$wet1adhXlP_ac;ujAe=JEV6^afgKmFeN( zKH}4>=rsgj7243k_~o@=%BEi||(ljFvIV zbv+31T-*p7Dwe@_b{*a*cf=AatzXK{CP-89hu*fPIi%rAD!*K}1nCp*&&%dC8{`qk zpL!mvCXG-yvaNAA2o0j_XggF0K`rM#$B zzV||@(s(YrhY8USg$beod4RxeI{(S|$WYaV*?;IGYpu@G%$fdU5rSaNc0TsE<{-|5fk+;7!k zRY%c{`iNSbR+S4fi!Lnh>=uT$%|dGc4jnvv??^~6fwXCQad6VlQ$)qKy z7%)?2EiczPA28-L7U239qMZ*^N2zKI<)Yy3eVcd}PYRY76jUN@a4R$nC?^p)t>G5R z;%@0m&v4lLs>jEJ0#zC;0Z+VFQ$ur8f#f$$;w~3ubbZ{oe~*tuqV*LjaBrwOlArYR zXBR+7Q9%k(>8UV@9N~2FaX46jala-4bD2@;>@++`r|}3(ho4x3*qoPqz%)6G(xN@8 z>#8Xg#kAWA>)hdFBf})I*sOk^YucLPZM2;V1#08h>z_B&P3d=9haI<=GJyIIVp7Xu zdTW5Kr0Y6RJ<;_W5_14xp*KWPKM~HjVg29>iRQKW>8A-q(oblR>@J#z+N^u!x?$> z;F3{q$$}!`!nWXkc1Y<&-$mGbH*!{-k~tHoC-hD7-05xsSXixlR#~puc`_(aj?_o(87N?YFUy3oWVy`p| zgQIQq#M%IVxvzsx=zeGP6D0BfnZ|SUcs$NqAHg2awzK8n*RSy-$DwF6Y){$I$;Fx&P(%pS%oQw(k-vg+?$j+Af}4Q zjy!e*RoAf*JAa>P>iAhg{PD))+&o24?mZ=#?m=F9vrU?c+HnIt8+wrK z+R9F=oy$eCk&1@ydE$QGBUt=UX21^BEU#9tICV5%{#>Ab#p;7U6#xicKUOl!307;# z=$g%88Hi~1A;yLL*{)tz>_sL;lvI2T3*tw~TX>`*`74lUECd+BkN7F+>pl(SW7G<0 z%)PE!5`1F%JgyDtw~R-QLtb^cWOZXHgZhl7y7!)FyvggQEw|Vrf37SCXuTRV-Ax>% zQn{mm4eIb9Wlp`>xYan10OuFDr1ZuiMPo>R)NX)XotT_#XcRS$PX+`=PdJTF1f**0e%MuDh z?tq^-S6QC)7=*;?*mUM`j`*X8Wo0alGw#;X<7MTyCT1ogz#$Klcm)xEHsPW3T36nO z$#>AHs}%(=UKG2ttw4kQkC4{mJq|Ha-h0o2gTG%2wfyCq>SLcuW@vb9$Zub?$o;iP zzHf7!etsDRi}YPRU>z$ncvO9Sa>AS))7f78ow8K>(^7 zsm}0=8%5I<6^EBcMq#t)bpp%Ad8XUukTmJi7HQVz-T~w}()MONu_@r7<~4LP%+&T~ zK9^HE?zK&2LR^R=+Z8b*Cq!S~u;3#wvm%CYX^u80tiHT02o7OEJPfgf2qK&caq2!+ z<+t-Y=dfarbLXHA zad8J?d#{e|v=2=EaaSgu$0Dw_A4-;62X_kf z^eZo^z^+kTE>3wGzwKF0;)O`s8{gp)tm-gZEW_emvrG-nyBI%0)lPxl03Qvi3?Fkt4+Ff=6%fSo zw$*F9QYg8}Sd%Ko)&YqHsWzm>(gFJN9}Q|Go;EtT5dmP{xSWCr;Z z1>5v#@1A*^U)Z3}+ZQa`4Dzg(T|IX>+!C&kV%x54toP?)|7K&|aAl+q{bT{%v)t@T zWJTyr>xGtovkpSdFoyB<$D0m8CO|K%RuY=+4tI9-^n;xvY&OFvl9Nb`V5`uW7L=;e zNe%&Jb#a$TU>eBc9CB?_^MjHd|MmVt%N{1}rtrvQOkr<8Aw}czYIHs+XffG)4k0Z3 zB*b%Pk$tc3X9)NFF(PVzSvly!fSDR-uIsL0je1~qb8vWByjBk-2b7p9RRx#rl_m7!h=q@JZL z|ED9gaX@hf8<*F6y^w?)d2(E{@Va-LHx_m({8Yn2zu|1_{1y)mVe#Z({4#}Iax?J# z8VDLTre)O^fBuS(s$-kKDvW37senUrq}d?wCTs0JOkM$Xb%hUoSIVQt2VY@=jM`#q zRfo?FWIsr(6oI2JQl(`9+|#^ro&nUGGrz5EY5YAQ(kxRUFtCLO;IVVVc{uyo*VvcL z0dne%I0Iq}P}rv93%uV1CR0Ll-x*N4p3PAbffV9JRc^}WHC0&KmFxt{4mDXY`NMP8 zCp-A5qs)<(q1`{g)Sqh0WLF5ynY_-x+INCxqws0}S6bX;*t)6lnv{hGP(q}i z#aF-w>Z7NPA&5uUk61cj%Id)=#U6weTCpH<%KWl!onl22lEh5iGQH9WvYDFlW~iC{ z-}XL-wIDEa0CUB&eZRUdNH*xeIx`Umqi_V>`t~3~RZB)&-5&8d z?EZAw>XvgO`k82fGCM%$SjjjwGjF%k!tKDT?aat6)AYH|y2^kqUfOWr|G|+zn^D+IYyHjEM$j z#2X0o`SdXT|BG8TJ|bpZ5ArqqUvxkBj>Cgy7t_tMPBMj0Cl0RavcIwmvv!#+&YRIy zQ90V?#%6ngkp7}DE~8IQa4s?OucM~SaeAu7_her`GpF4LqS4o~iLJbzqnMB(EGcPL zL<<%b8CJsvl2$ZZR=cUUto{Je%j$fTFP+?%0PAijhXWmq97-tikm*>I9*f8>B=mMT z(t$f!xsS7RJfqZlO|e$x@rm@tVpuiQZ2^@`{Pw$D^X)dC9Kj*je&CzjtDF{4w~14W z0s;c5y-L*u5j>kzSySAT<18T3NEUrMJ7R7LaJ1fO(yi;;;^}z+7icNgS@b6n;1u+0 zZabzNQ&H~+JnW2V4Xpshe*KVL&WQR}2(*+m79W3YH7lYv=GzUE9>K>=xFok*u2e~# ztNKSXpZ~qH{Mr{L>sTwlcRiy2DJl5q=duA-S?P4tA1)rWahj>Ny5fYyEJBnsVpYsu z36bh|^zarMmf{LZrR*7^NA*X*Mvy37oQhjz2v$@nISbbfHwh+1WQ)MzR01vj zP3V4r(n-dJnXF>A-SoOWe9c;Ey`la1{}18QH_;!u><@)D`o&5yXy0!zYNWrDacde7 z<|Fh6uX<@XXodmKkCMQX%#omOhE$=*EyGh}7Z=+i4W_S<@ha%VLQV};u3D5@& z(s%j*xis?YAxgb{!qijr@jLX8tJog5`vb?rgA65_xF~=6p=tRuYN#7+G0lt)bg|XR zZrmVZbC2__!BnlZNPOA9TCt$=sIgu&yKgpeoaS@hhjv*+{)Nihdw`!6Ark}n<0 zsH?8}bTQ+Y_lbS~^Q+4oJG=XvF@V#D%{5jwc4lo2nSnP+TywR;(y^dW$zG6WZOoSU zIM}&*ZJGrTiHL%!v*=SfqpR#P?mfUaC9#PgS4~MYb7x>ES9!+ks<}6>+UZpKr*?^k z|K_7tRq4hp*ZW#Z1IhxBb;!ciwI(ew4849x%J8O9%jtlk!d|A0EG`taZxt~-NvDrU z6Ek#YMo3lP`hIe~4k<9xV4M+;i09=~pL<5+i;k3S?*W!Ox=GfBA zT1Ab1e*+mM<>x$JKuB$drYqtEMw#AE)L%^9xENDdIHKvQ3sjz-k)mV|e!@5l&XlY2AOPOB<=YIhJ> zq;PLvqn~J?h{)IT!v07PvS_u4ODG!F^`nt%3q{hn%DdNrk0cvguT#}pWrx*>95t=o zL8Z}|U&VQ{*(9_MWuhr0w&Ocm@3h5vd4U~yxor)u28?t^ix{=gkkzHB(I@luA8V7p zT@+{{Z95hkr}5iMyLXF>cSBD~po2EeLoHb@*PG+|QZ0nL ztD@vvp66wrkq(pZzf7{mR$P|@_`d+aZu{*F$shB0##Q#Q!xKSUCWodQ zZd_OMV>k8>F&+mobUsq-Dw@52y0qTxANWJkKc<5`K~>fAnL*MLT+ADw5I^m3!%m<( zwI}?M*$#niNc{DXw)bjx@&;?xTw;kl1r<;^xrUXx|7cijb1sgEXKo`klZC!iyn!ns%TuUP*`K z*@E2QeK=?{@yRvj%+b)2@C=CnP5R?&j2UrWWaLki;WCR-{R71r zx-D!7y-fpr{lJ8gUW)C)%2>>P2C@A zN1L{+b|WnYkecSEK_aoa^A>Tx<=Vs}Gr%mOY#nAZ zJ8F!G#P?WxB#dyi$nBhXrG zXroN3VMP@z_DlTtJ|p0ehRQkPb9-JTg{prBgGw2&80LfjNGdnQ=MlMHJlih(=UFCP z@@Z^VlT1oJ@}DKd2y+$hIAH<%t}iv=&6+(Nl!Uc&r`M*YECWaF5Z9N9bTa6l-(>5c zkrP(>GK`i5{zPy64Dm@JIMur)HE}U+Xf=B)o#tZvxCy=6)eM`6Slnv>SO2zr`G-PF zA1}^dHEam+UchnBP>FB$H3eC;>M&G&sC(UC8G)(MdsDZKUBs}V{U%TiGITv$xMZ4h zI!9i1DdHyNJxiN9{i*#{7n?8MU~95fq5^w$Iykd~&AjS+=>MCTQ$&$AU3RFK;q^n; zVUW|ZK(C69^&yu+18O~5AIrtJwe1AF=#P;fUtRnF6#d~@@EFTRe-en};og^_s7T1U z=F5K_T;S800i*`kUBt{DG^RJEU5cS4;9XIyWOAa0sci5KrzLWR!i=N9;JM7~u-ssp z`y4b=8HSotU=kivwQMLaFJ=gxtYa5IBrQHE9JB?a!?d> z4$Df&4D{q0#N%&KMM$W5+D#%c>`mJX#xDJ~QcKDHy>qy@LCSwlJpKIFC!9C7PtVxg z(wUVockQ>9T1&QDdGFL<@1m;4JtA@(W1|6D=4nzqftfV@z)x@6^g})6VOh`gF+*WD zs;m-9ZKdwlc}ROIu&Rv=I>(f*nAKsoq4SL(B7IyfLo3W2W-omHbe=F3WN6h0Rq7 z1hsR4O4!x=_hewP=clh)m8PM)oPFak!79Y?#L2M``Bk0EL; z@L$ZW1M~_j3`%h;hcJ_(VTV#mFKA}JDtDsL35Akr&C8wZ0gt;3k4usSt0~O zs%YATx&CfEwgO+#(}gd(xxpwn6vg(45}?YRXn$RXa;MZFJI|w!(7czutxk;#Mob*c zXYcak`?f4e@lBDDyQ5k%2o3@1UR%0)i`YXCJ(eLYI+QP4EvvIL)cLCsj0NcPn)LRw zOS`*^$~1(aYXxughjN_A9(dtkLl7r`ZJt}g%A_|&Fve_=Bq*QafsVT=FcpxiHNEPS z=kT1;&bx-i!0=%AU~zFz4}iK?2a3zOdvN4Kz&HoRp#4jQ9y#o5m8%(Q?ttU5ASjxK z$Se6w0_7MC{;E}w-`US*A5#L}P@LS;rq0g|^1%E(LB&ELPYNhrIugNZXb?bN1iL5- z>C%`3iH)>9g3KJ`q=|aE+1w*aU2>B|^O4hY3cH-!cR6VVK*8VjBMk|Qi^6|O@twlX zAXwnDn)m8?@gp~k&CR><`@A&J{9VyNWYDHu=7{SkwKi(_6~Ep3$+fOmwU>rn$~^>d zMtahiU1eaejDwFn%*gD=Gf^g7&C!?9KJ_M_{u|kMM2Ncfk;-XsxnDlK@b7L32WERKVfoEhn?YUt1D1DJinDk?=5M zV}fRre2S2Ii8|1;glxuPQ%lw|GG-cEsErRfY3InLcR)IJsuXqlBkf55eYy98U#n;C z3QS}I?zbGj@unE{Z;2MrnKcmOC4Q8@ORlhv`1M+@V&JT0K8Z-kOOr6SwA*iqq`o`Q zTixU6v}q-HB6PCze5LgjB=+8oIsHHyU*nA!@vJeqHR6YA$J8lOduPhu-@0U?NFA@R zD$X%XV@Mhw2dirThPC@Y0PTz_<2vH$Gvj8IO8xuP0l?cn01{9I92Qf#EnLbt?77+m zllrwQuT4#Y=?S?yC7#$?bsYph6pj;IImXeFx^0*7LJLfxR?k;No`@jC&Edf|!2_$e zp$J-N#D3Ib?Cicc%#D@n8-Q=C+8qwX74ksuYfl{8j?J1uoR%M$FU?GQ&*!Fh+r~e@ zecWmI6%8O!~hnwIpFE0IIwSN9uT`P8)fH4YDjVC&kvFI&Cx(LWtswLOCqT&G{g8LqiR9+Jo?y8v zOS_NxfPz0`q+*{^Zj(BmUIyUv#57qT=&V>OipL8JtE*)MckEBU{U#?+BsQ$Vzo5fH z?Wz2l+#|P|6~D_KW=5Q`^mm>ZA>!qSb@NbnJ2w_p2h{__M~2lPFJ6@4vd zmK5>nT#v)B_oLZQII2`OgNczSe#m{z!ff?c?63!6kHIKxm|eo*Ea@z2UvsRf(EwFe zg%0Ql)z6ofvx`UcM_}z{c8@&->Uy=ernOXd0goXmpP>kJABO$NU84l3>iu1@R!cet zkwP5+GZQO>U4OzglG`zH6Qi@cP^92mwsTotR2U4Z%Phf602~5RJ1UPiSyU2ynwGX* zLjLoQMj)L%`7rQL9ajBQDbnkYVD=h1HqM5@p-HjOPY~V&Rsqef0Wnv2rJQOg8@g_H&DtaRd>GH zmlZZ_ZH;80H9)!2JM^+<g80y?>|!*OC48Nuw}^OD@4 z14hmYk&*>_9pg_+CAv6A5Q3&;Cxfz<`G=Y6VB={V*&Hio&|`SmWj=rNJ9gfwX!Fj?FuB^U9l*#P)D zFBso!{|}S2Zl~D5Y6JU>*-O9)ik#=AjKWE^t9eWO+p8mK>s?)4kail9Xf*+T{Lgv4O23J?}1$-gi!-xMZzdrlb*b&~69m=1~iDuuI_gJ>i9hm#SG*Q3C1*}808aGO(tmNAtEQHPo(^h(ciy?Jh1Zg#@(nI& zY~c+?Ted+CX-c*LhxyvQUn_6Wokvb}ZO!QeA?PBFwKF$x3kw}l?U9oa)u~VdJReK+3ZA9UV+B@68WL~?M@xT@-v3RU}|G=61cvKpu?yOJP7zgGe*u;47o zgx~5$r_ANMn$EYEfi{kb;~QhK>#sSyxI&k^<@XZjxs`ZvTt~3rjzptX@%(C6fjr9N z6HD@-5UZI=A(KtUk@ggbG2eRJJgt^kMrfIM_X;)vz8NDA;xTf?Ps-ZOPeB(2>|wem zPQXh`4Q-G&BnD8IPpRfNo0h?0XXNZ+OD4Js!z*!bhC^pt+4dpiieCE4G9jx+AToik}YiOk75slU6V1t1jXt8$ItX^}kyK-%}UnVmslQ#Evb@lM@^sKxudJy2rU5~BT zmys*jb;G+m$A1k=ph%flsRsEVKhNvEvrd4F zCj9gX@lirR511;SnVYFrs)wh(_blTKwogv~&^7RAJSXoKM@iFfv+^u7Y?^xNB26|` zzgb%^Y5+>(|A4_cn?jxVK-H;=9tmyK+WfxotwvP;abyJw%#Xxck}fGHX>HavyQWs_>D!LN@!HtUL9F6*%%;-M^HBw z_;lQtQAFvA^2J2S7UC)wYCJd=Dp%iG=Hr9Nr;!)tYv;^fJ$ICNb{@AV2Y_VKokzD} zQfO8kP;AuXyC`ONO}b8^7!TtNstDthiw<2MWK|ELUHmoypjqSeu7IN2Hd%|^c;xxe z3*G$YAh%YNopmY%`Gl*MhVtGWhJ8W<`$JaRe*9^a#2=*6R*9gnR>+b1QaU zqzfp|rJah+a*iNOJPX5;Shw(cYVlXkjW0`|dROv!qj3Gz3hKvq9LUe42*VGw+#b_; ztXCcamyp{?a2a`9AL_C#SWpOxUw17t5BNoOEYA{m${6)nyF3tHLcT?xLwh`y@X#qg ziy|nwqRl{|CYWf&rt8dzJTaJQEt-?vtpu?nJbfMIL!BN&8ICiO+B;agsd~f1cxX6H zgGY~^Ez9HSxJ;e7CFN1lHB@pwPx=CnQCZA%JHuvRp|(*huh;B`3}&f&%m zY;t@zTmzYga8_7?CyZ?ocmaUpzL6FRWKwuA%uC(N<7N_lN*i){gSU_xm2uZPLMuh8p{-O=~`m z54g0wlc)Zt`E@ORSCy+>p%G#N=qtYp!>ve%I=+jX;WK$4YdaxMOk7aQ6MP`wSj64SrlZO9>8_%p`G=W`9UHvCC1)DS|H<#+_KJ`yggjOXQ$3sF z1RMg=-Raq6FE>!k#&&WmpR_JAkp}?u&Z#b2awjL}=9_h21~Y8zY{FM1qi=j)Ct1_8 z#l{%JLJEHP zrp+&l>125esY*@DXnU^l!N`*&Q8W|>Wr5v0>izo@Ki2xUrGu8S*+`l|G$CkmshC7T z0h3w9bi4R~S!T!C80=pJdLvH0r^7(20iF0j54rjO_WGgglK4f%C2EwR{x~|+S)0FQ zB1#a%E%yUBK7Q}(*RIab8=alZ443Wb5Hri=!ph_-qH4~j(X0pB);cOs6`^53$c2@ zkKU>Dv}D&{{eEb6*-18;F811W+C=VF8Lr4JR9{GMwv$aTTuD$T=@O}={;z+Px)gtH zux{Jgl7Wrbg!ucMABn?f>3ya5_6&VS1dwP9ntkohd>-G6D^V$V_a)uJj<|KljYitf zPM_AvJ~&k?hVDpM3l2YgfYaras)8WWa(D5zb}(23Cw*JoRUiSZmEf^5UE_#yJ6jB| zyCeNR?3PSPbDP^g|A}&Ym;bQf>j+ixRKl0!HRwcE3QPgZ5SvSos{8X?-6}_Q`V<6i z%JV_Q*vK%E4xQm?5tdi$;V4lnU0pjadFbU%Bo?ssN#}RHC4J*1VM4lz z@IoR(E-F;Omyt{O)-c<|@H(=1A35w;koR$Mm_ zd1Z!L{v0&-2iEAzS4je8stG4m1`P>$NIuLU8N>E_P1!Fg*cidR+AuVG|HnWqRh`Gq zUvwOCoEt{PUk(6oV5O&dsY+kn`vtw9EoeJyxxlJ*;MC`4_)lNw@?kr@J%8iP!vG3# zh~L@Q-VwNvR4T{e&EnD&)lkTxu(yCoR0>s?tCnpySh}@s1mFz#<=od1B7QF z^M>SOdNopMOKW^W8mFi+*%}o>YpSvt@x3;!GHM?Tw>AQf+aBr|;RA9ch}{$WaW-We zx3d+va57*{HcIX?>Pxat8DO=@)h$M2sXb|1`*pvhIn9LXyC{bc2>p-@dXsunUEV&_ zGqaQBu-Bp((1^_>JqQ~J))TX0PBNc?z+&>{D=D^e)uCXGQuzz^CbdCeVK@L z&F){a@w#2JJwmW@@sZ(k%7yfkCAfVMB?KrYF|dtL`f;Rn_&L2TDd{HL?&U#|h)ik8 zyuAaO$#f-)6`qqVsnMG8Pn5mX(6X3acEtLXD{aHMc?Wxc0hX5=w$M15cpCC3 z55Q3@bV1;sY2VykFFiLsJ!JBi|8Ye?Ql|Z%_T&d18_2DjTx+^1TmLVUSzRsUdVn5v z5;^XB99f6ek^xKppus71DnxCBlSLjnh31p2zXXXu`#b7`*(&C0NgsRXCU_-uC|Z;D zPDxgX*2Elb?WCo2nqJ)yu@%o>7doYZMT^+oq?n^vRLXT7xc7ZuW3;y08(_W4RjTLJ z>s~Dz21Uz~tsg;Y&z?mDITm8C?TRG(KyuOE!?GY8Oqtky`Xn7(IcZw8i@QE@W+zuA zy4&6@qkS5uny!bhzP@Egl$S#uy1VFTzZ{FO*samX_40h)QNv)Z3HV4poOAKsAEjnz zMMYyu1@c#tlPzW#$&NoAwhu(syGqLA|`;Ue4b*t9hPN9yUqCqyOumi8y5BJh1>>CoVoA}hyRCcRbEOS$16=~-s`!yein(C9YDQF2qdBnVyeeCCu2Jeo zbkt!Rhg(+`lNZ3To|+nNi6iko2==d3l@UoycTN)NXbL(1RYuNNaZ2U|gUt1C8@3^*%6?N0Eg6cmhyxf#<^jEfFlQ_QD?;R>aB0nNVFYW?X530@)!$La(Q zzKUuVkU&J%Kf)xng&{H%zy*=$o2;E_z_s4xNUBCP0045}ayy@^KG`KbzUjGm|k1@<~DTo@9046gPj~ zK_lkG!NpHRZ=gXwj@PGlPu)yu*wvhj9m+2Pgm)~ti416@P^om|6;iYuXWWovG;@GJ z-_zbPJ{~$ten5;41}|U!m~M@O33ragj!d`;QSI9`w`%}lKN5W*{&yTRsg9FeQIi9U zL6RsT| zVrDt)N49l0|D&Z-Cq)Ty+W@O|?rrHtvKRP1;chc1{Aift3moGwAl6%By7oW6bWn^d zW`HuRVdh}~o{~+4=9++9QgtI5`IAU(g;f(ewDKUKI!4fi=tC~JI2^l@FdA>*W5hsX z`h^i!^^gma2AptZBWg2k&C!hS>y=f$d~cLfyahV=s7!`qOH)rgKIo%-$EAEI&WtrT z6(gB6`*zjjUZYomia7$@$~Q_(mi+$1|#; zZ{P{-gB317BFX3l9De$glcQa~EOX7A!U=2O_GO?|ZXmhi5P~b3BuV)i-C-#rFPc2X zMe>6up>A--)L#h%xFz7>y%@d|+u}|(sg>;TTROlIWz}v=uuRxdRwG~p zHUFZNwUneHE~10UB0cxJryAk;zW0{bb|w5yBr8lT7%>>mA;{7Q zZ-AJ0T>OD5yxJMJYqDV%oA9f*8(#G3*#-xr;!_=`%*U{aZwHOu#o3vOOT3;W{mlVV zcIm1wtrHj?Vrv2w-s>Hs(2z3n3ZqFhtVLb=g?=%?u@KtYZ;5?{MH?!z-)tQ$iVD%7DcIhm|0Dc@zv zuqK(}s8HsqhrPGftfcr+KVJ&A%3GAA zR(>LTH#bjy=mj{#8ARYoM#{5T@*TQryc*zWL4yJ{9)FGm;ykna&wynA>ySBcV~tn2 zGq^_woOwJ;)6yIi)c|H4XYOg6zNYm>>3}yu%{l+dl7O3Mi;U=2^Dz5b3k9nTK{*3} zZ_1E0r34z@khRwMV}>F1jJt-D2Pi}w;T{BT29Y9W?B4e%5phQPk&#Ao3aTJfg=SYQ zeg$H|&fbvg(>LR_eX*me)QaY1!`K1rF=*F@sIn6qf|C?<;(~!?;R&SJBd7Au7ri=c z3Fpu5>@tuu;rzupvpmKts8#|Vr@9BV+r&wiz#`Fhuej(RZQ?6p1mKMJslnl0Fx|cV zdd*9|XP$HvWS2L{f=Q7;lmu$l1Fo>L`8_J;oxQr7w-y(bp$iTXL0Z;z5e__x3sr`P z$X3cZgg~i4CVXKPB;&a_T?86>I2@NY@oxV;<@F%u(|e0F)un2bn=>cF=9!z5hZIR} zN|3h#07!0X{cy(n(n&qYhjP_}?pKAl2FErt_2{EZVgtUp#8yis+rsaffRaEfq4CF- zXN9)3*Seg!&m3AIv~-b*`C7dTV^8s3kg(wT`t8so=Np2tdlxr5-CT~Yd27M3e3($N z8a=ztz<7!vU-vG1`^nM0(6a+eB~iGED>^n|9iZ0xYqTl4yzX5LXJL3 z80#Q|Fy2f`P0K?!@vS5&j-$!i$kGXrHx9li@{Gw153$8&xM596ebk|~INF&erh3D9 zq~s9APuPL^MCjNShlMc`zjZ|-$+^K#;^Erym;xg?pH}etmBRRZnw(x16xCmn*}ksqtBMfqmhA*&Merbcq-$ z6Y8Q7HQyq)6)URr zX=pNxGWB!jl&FVk%bhK@nG-Wojn97by5L z`ibFL&>i<7q*!}%w~2!|y%P(5{<6<5Os(LFrYW|7zuNFtve@-LHr&bcz#@3t;$w#ZZ+d(U%fLt+`^SDByty z6H-BwUi>fC`<*ihIAZT2->r%b)MGgI4*D%E#VQgj65QU|jVz{D;ahypa-9oMR-l_%qD1wS12@W`C7d<`^1|a7C%hz@UT^ zY(;tskKNJNB!ng+Mt4W8!-9&#oG*+shEhAtBUP$4-S}Ig9CVm7e3)7tDiNa+uS&QM zISX@cwa>);VvQ@XSs2Ep;4}GyezDOTKv@=g-5ae)Vq8vEED{`oF~@kh!ac`vIhntI zQ)yc8Awp9WR;lxb$NR^8ogGlf-Ggj6Ae zdXQBi|Mo$-t|iqWmDORp`+wgG&!lVco)r>#Rv?fyakxUk=da<8^%c~XMnSEujdbZ z+_=~Ny`=pf3As1)w4FD84Q1{}96o@@-Jy33b$AB;wGItKB0m09mQlf=O8)(-k@T~Qko=jn4 zxv!QX7FPvD=6BFjnZc|4)J}V9wfdqm`EYZhQqKlNB>ss#X{X3t94wpTmGD3@@bI{r zknAfPbU1%z!em$_OY=uWh`;{Kp&(!lQ@s3NyfU{CCIyF_V7e=rb0ls&;?!38pI@mV z3OGny>GRsbTjO;3*FTQP{sX6KNW>^93ecZX70eU5Ls!Zk)dEm&uE9T~)i;*}Ot24lkt;lSQ{rmn`oKpcj6 zi6pj8k9l=PUNO^5a8fBg9v(6xJ}&K_?m=DVCGDAgD-q99R8pvV&>@NZ0puPy>y7im=IDV^-FNzGvICSlen*(4e@h9EQ=xY0Bl zA0|mztQR5)fnxuKE5QT&UeRo1B;ZQ%a%<`YB11Mty=tGJK$i;o`ADNN_JEhRgrx-`7j{ni#_)YGJ&%sLWVBY6fYedF-m zle5L-yMNq7W^{>s0HJB9y$)T6!VO~U$M1eix)b+kGZfr7n4d5d~ zzulR-@W$}4K6L%)h%_*b^^U^d&6*Q_CdO2N3P3 zWH34v9!$usmyJ6-B4XYHWPBsmMp_*df~7{d_FFDDJet1)j$AYC%aaIwrrphIph%b- zWR_{%NB|oTtQeAV`_u_HG&06*Qh>C+erw$IRW9LjTPbD&ZET}HtTuxp)<|dtqDy#@ z5}>aK$fU#AE*Q+Gey+PJSPfX96CEIQld<0+XulMs%i(8Te3U)5GfvzTKS=M{jf%Z1 zVDK5Mrzz5%DZ#3b@p~d*VLP(Et&B_Us$9F7`aIBt46=;7i*h%yp;Q+T>Ry&koC7+n ziF^9c_FfzBK7V%VEP>0%d15}6(q}Xq&WdwByZS>2W(aGO9l zP}2qptGR6K{s4gmvD|Iq_7on(1jkqmIK(tRh-3p$7KA4GP1{61w&@PXu$l!iRpS!j zf;xfb4b{!7%PjIm3F7q(3h1kkfKi@%UosokIw8_Pxb`^eofKh0QsUe<@-;70mH;*c7w zzLxPuG!%_c3R7lmJspVUOz-GCw-|p^w1(yp9tLYNw=jjmeht~KXGUt+V+qOH)CeE? z&!2TnK7Dp`g*fA(JGV?9kDj^`xbh6J5TyFdMo?f!*V>Is$E~dM;)ztzRw_-a@2kJV zt;dBynNTWucc)mwF7->a6q}W8T!#|DMy zooX)Ba;6>gP8hWEO}78v+Sb*y*VkazkZj=G!l8o}2y)_jFZOxjycN_$zvCS^fBVqp z9X+GHySdc0WSq0be1s-ZJAC7<=)adSbg}vvbKg_e_@ieNQ&R%k9b=46?6idiYEc18 zeDAmN|JocFLtncW#Je1RA!&JUi>i9gQ*5p(+FCr%-F84Ei`AutHqzo>$W+S>5-3w} z4b4?cG+H}4JdxlKq)eVwue_x2zU(E4Y`Q~QHs|<4Hj1vZ)D^d*lATf1_jzBka!5>a z`B$zwD2=o-1BY@yD#|NNAtt4oMyC?s(kPkW|3L(}X)7Wr(A^mp_>~B32{yUd9J#TR zx|;2to(lXRDkUJ8;8P_5Jgre*8wQ_IM$u61RX(MkuZ|Eiab$SF zyDUf6DYZ>l_HH-Fff4FMu^u^@9+|eOn=uu>3^;h{qDYf`_WqP-teTWW7zAH9M-Yr> z|BQ~op&`(SYLnhw*N@I3t$)4C0puhR=lT*GR?a0p29Gsy&UUXwgy4R|Vjc(WeP}a2 ztf*q{OEA}MZOzC%h3uq<2FefF))+)2J?jbCf5O0t)TBqtXG^;6>p3I@C{x?qd84C% zo<&rXsWWpnblOyF{vQG|QWM#n06m7VfTdRHc5_ZQJGLdX#IM%iU{C73{0;h*c;!6! zzqoeIFqY9+Tf+D&HX+-C&+^E4vT_)hY*?6L_oeAwRhi=3n*RO)mm3{!O{=HqyYA0m z4p3Hm%lQ(v`^9vWo=8luk!*Klanbz!u~q8GSmBaRb+F9rp%9^7tW}L_$0)?U(sa5# z!9SN&k7`x{6sMVCc(|kZP&pZx<>9$;oZ+)dy$N!Bx$ov@YvAyn#hu`Q`PX3)>M>`J zkIfy#WCj&fz#Lhl@Vju&`&W*OJ@1&fqljdMl7e1>Zq{|PipFQB4d{$*x3=F|;<#BM z32`>YqT6#HOd%4pq7*#1VObxUG59Tph()HiMAYQCIrm*Qs52w7n7qk1i;ITqruDJF zpvL}{GlEwMjID37zxVUGtPkrG1WUl+Xf~O-hf%$QEd}S|UCjq~J1nHcs;t6OuSMj$ z93Dry$}E|Dj-Z#Ib_g$Al)WTevb*Z#hp^J1<63VjfGHB9PboEx{jQ<|neXq}dByPQ z$rZs0B|p3If9WExK=LF;=zlUOBtK^}%Kr<6aiGeej|9TUOsKdWzlNGZFw#=wxD7>{ z2s!+KTqb)}OJh#ukX61vc#l6b=+x%MJ)$cPk$WN4FZogisWlQol}N@gI;7rZ(n!RS zBv{&HW=TXSqha3Yn{tUs)2a|JH)O^YRnd0@U)8DK^cCk8{aS6kl~@C`uKpJw?BBsF zz++zQu=Lkd`pH3ng~QTM2HC75VOV8sZDo@mH<<5vRNw9YI+;`sq{G6h>fmNbIO$)B7fq6{bYerN3 zuGCRO?DFG* zTsl4O#1Qez#rLt3u17ujKvYZ@!}ZlJil+hoBI(GFFwhz$;~jljG{lQ1=IXvWIABav zSKfg*lkZgOcKf^UL_{gxS+$v)Q<4wKNt@R8_%sP<=~AU<2@drkiP3$#Iore=dMX>< z2rMVC{1x2H#o2=lBjrI-1D&c?4VIEHa?YCKCz3@gJ%x>%oa+G>kT|sY7dq+6pcmwb z0u1?-WkW|;Ynm7I{SL#kZJ(O4u#(sEKr{ zZ20Xc@tvWQJhW)va7vPJ?c}L=t*jbFhU?U=EqzOpX7-h!Lz(ez%uuo=5 zdb`NkgRb;VM2?zwPnn|_ctUa$hYr0s6?)Bh{=XMB_ULRtIvqtvFBVJ2VDPtd04n!` zIdYSxq$@Oo9}QvY^f@UEyBpB?Y=Piv^sjH z3dfowV7pV5-i}G_YxCUBP;C@6L8x`ZIMtY07Ji!Kki zER@gVmGcVU*Dhhx-~ieAhV~&Wv{|`PQW~gA!c)r#1_P^;PW#AP_3&hU9e3Z#V1~5E z<4uAnqsJl)ZjWQ`uBXz~x;{(e*LMBaZl242o6EaU|E5KJ_F(jdA?=HPyO?lLf27aJ zCfn;YU>5hT@fmE!dj`5xfJu=W+KxR-DUJv#VqztqyqK4IWM@!9&~HCjacX^&)k*9>%MjU1bx_&a!@M+I!1^u44>S1LhHk(2ZPr2AyDvJK}d5Sho@=<09W$p6jfkWtb%8{o+4_k`AKfI^{PIhjCSkd|&jOp702BHiGa zmvf7DgPXx4P7O_sjZQ@wHjuZhqQ1cV1ZLP5Utb&>>CSY4oh8LCRb{J}7rJhEv>6SX z5B57h&^Ubm4foyv+#%wj-KB_oI8kaa3=nta&E%gFlY((qmF`<2FIU6Aj>UT5kVORu zddp1ECW`8ZfQSurb5|w*V@2~iMstQC=lUK)%Rwm3GlT`}*_D{u=9F|>>Lidfr|Mk^w^PjObV%;SV4JK=$2L68sHoP-&Hx^%XGpsjET=B`-ow6m*jzJ6u`$H6?oV34>crl4_f;}Vn3 zH64G?o;#A-H=E8I&)gO8&6={ck-bjR&bY#2u8#^C>CEj%21bX3$pyN5^S6tU!(E!# zSx3vCo%!l>`i(jk*gT?ll8oZFZ=`|&ID0(=W#ToE&V?z~|4#q}r0stPX#%Yi-GYRK zTwgSu-SB+bs!bl=-P`y293Z^GM9mnd%pA~tV^x-7kZG}$W%M^BJ+1v1-rf-}2~cW( z7MW^!C0nqlq*64EN|1(zw5|~ja7zWwg`+(aojxLx;ffl<0Iz|x5`EM&O^kmAR22jLUNZmZkgxP!z#}$T)C5F7$7Y2aYv?hvZJ$_t$_#$9W zk@_Rax%#|JZ8~RwT{}1F+x~;4hKAs|RtzUmeC8s1q1M5P#kXfqut< z>gS66isvvh@KP^{sKWhGh*fHixxnHTQ6R+Wj%wzeT8B&l@17OVARj|~SetymhPqo| z4u&Vjf43ErLfyRCYklqSc*ots>B++U^!d*!Kkgf$i=X$hHXbcOWE?g zec#K{3pqoY-&tzWTUu`6bv ztQU#wSuLsZ3~`ND!5a0+xUaeQ$%5BI_515%jb_inew{F?RSV9@eV+TJsK{vlDsyk{ zo2(jRB6j}(?&O)IFn>X3hH$h*AmlaX7nN+`OY?@W#q@2j6g=ln-m=K;M#|+F6xSey zid;P`g}6?CZB{UJD;Cr)I1y1IAY2PSS%wNtuUau3A;UF^BP0>>;sSfFtECjEOI6SM zZbw_^_&YzD_e=ekj{4O-_tQ2&R{0vE9Q6X+$&QmsJMC}?QhPw}uD*#Hg_I~2T8+}J zLHgh<@B*aEcCdlhVbsj;xsSaFRb&@<4calgjax z=g@7Gr*0DD`O}|zLAflly~<@7TjbFR33SXBXq&wSE7sTKwII6<%{tA&XSUS0bFVcO zs6?H-Vih1^1;`gEO)KpIvf~qJCydYm-wY_TTqUfZ<(>`EBm zytUm=Tl%xF2)mwG{vs=c=&{BeVLp4g@e(rb$EaSv`C22S}feHjU0v@$w33D2T6veOn&r(f_5iQ1%BE1`tEuid_is|k}yVz)G_0v5S2 z$(dy3J6EH_KrBE`0kbzZej1p(z#^w|zeihr=r#DX0LkUGzLZnL-s6l7@@Mi)driqw z6q7!n8`^h46h?R)l3IK@CHFtTiu88&>awBU!Kxv$QjLn+Jk~q|BnU1@vO7 zeR_Mi<~2oDHm*{*fwjxG@xwHZm{te^M7H^t(I5Dw3nk*u%a%)HKD4++sNpN6P{R_! zf?J6r-gi=2M{wf5IV01R)Mu_^9US4`YZ-2SrgkbgTUdIzAo70nYkt{c@xJ3nOnIfZ z!n`gfeaJH`6z>)KulwLBP6D~d`@EFByXZ_BpcYERe@6Tyocih9&+wn1ST|Xfo=fq~ z9r1&s;n`(rnqyi$PV1rV^>^F5KQ~R(>_!hnZP{Mb&LJo+;L>h89w4d>mJc0n8s0=S z%~YB3=?`VOC9Os+h(+!A*(%xSn)-9SsmY0*!~v4RBRiCJ5Qf+Z@1M|Or@k<=^tT*miJ>Q$wp5At5;hpwKU49GK!Gl%t>Y2;$HJ;Sv zv=!gFaxhWLq}$_S=bt7dX@^IhaliCt-5LGcBN%_>${!~gEheC`l0QgDpd2r=DDft+ z#m$tq(-O?LXjbeSU4cU>H)1o>C${CqHkSqX-b8{X&;m_4$nIl8#_iP+^eABX2QU{l z4&EcaF=>t`U(9rnh7xy}#o=m+5tzb!34`Hcw#JBDtREg6;WRbq4+6@g|LXkONnZ1I z6>v0Guy|w2sfhIGBqI;FDgkiLzDd1HJh4jxJ^@<}H=z#Ps%)C<-akC83|DB+9z#0_ z4xv6O53ncX`FSdcAswm{+J&%rwJ>TnlBq|Rmd}E?Dq5^!l$8TJjG`(ElVrX_O<(FA#CLs2YMsMQ=+0&(-+ul zg&IH3hgVN(+G-YC01RexIGFBOA{G~A>}hGmfpQKAgl*I>{c#kZH*tKXd_P-%znNN{ zNq|Y-QNKN>^Gm&ZZd#tIuru{fY77>fYDPML>hAKFF}^Ov5+qkEHoy1#-0aV^iTLKu zG^Lg*aX?*RLVU$grA(iC955S>X_7*jGK~T?oG9yD`?e_HF)1)2Hv^_9=ez!ZadbCW z#{~A)CHl1rp0AQSnVYP3pUMz^HIg6FS5pqIfZw-hHdH`i;Mn{Y1|z#ZQ#M=`j@CY?t#JrPYj$|vt~h`wB8y6j#fARa$9 z4dlS2U-Y04y+&^zGZTqI6KX>;{0SwXA#ppGKpBHnZjPav3_aFiYE665y%lHy#<3oB zHa@1#v{O0SN~KU9+4yQHtsLskDe8U9xe}eiK%zj}Y?u!();I-^9c7e{>{ zEeSu`|Hulg%ESWw2hop+pFU$jP5icslu0~nyVp1R57DoL(}@z7MFN=R*R*PA^XA^g zBSJK$<=xXoo0e8F@tp6Qk4j)>7wE9pv@v->My<6ipA8p=PEMVpA+-MRqE`g49 z(TzUIZAEmn?q@-f<1acT#3hv?`coZp0Lh!X9tDu1YpN-2`f%ys(cTC!P;>eT2UagY z9Qd^L33cK_pv=)hCE#gYiNcoipi-+EkmBL@n^Z)u%kw`_9V=z2^p4o6EPqm6SuHA` zAD5>xQ%mApwDU+7RU}1DYD|G*CudKit>yV}-_Yf1&ss zSo&nX!1K$gy5w@Qq>(*8%@0wEv@$Zqi#+|Hn<{T3jSwXSGu|f6^P)Y+*XJL9G;>8J_#&xAVff2?J^%JI^fbh^L61Kz`Zno8AFN;xL$VfJ|<*l zjML0%fm+C*I~Z^h#8^_&VhzI@r4)<00CG4vjqU+bKnS`qcNs9dL;m!pnoR*(V)nEz zpe%9k;&Iy1vt;zFsh-%9K)%n4*IE~ z)38P;r$-tX!v%e5S6yUwo6Pl8ziX=3_-Og3}xQP?-m&wCkqN-v&9wvfJ=>+KXGl zF$ep)WA@0;RYBDrrl!f(4hK#>GN9q*qf zKf-{(r#{>EF>D2l@q(oI>Q=*md^Vesms{|JQEO&!`HoyI(Tu9#yMhCFL*ylC-}Eav zH^NQCsB1_r9sasx>AU#fxnZ$n6gJ53}tYznX%P;s=V9ImS z5XoPiL;vTs-GD7r-Vgu${`I%=)PiDkRH3{yAacD#d-L|;gG+C|{tc?ynrUv@S!#^= zl1xOqAU6kdmKiosCZvn(#0IGG7jT6BwcCs*3VEQF;ibjWFp0`Rne+Z75ll; zk?|`|3Io`y{nClum>f}#x|fH*n}3oem`j#8VA;SrJJh?YZ`i$c;)$;Vf4 z1?5FHJ2FSPWMc)0t24J~kx*zWvD+CQ5jl=%q3!eNj?d%RmQW-Md+cLzs!irDV!AZb zl;II4J|3fbkc!dcwVN%RMNSY9h0{nBKTG=Jhp`O?PDj&96NHRU-tCV>adiiyHSCK> zteB_bQhkggZo;#vW9TJ`Li(qF_l2UlI)f)QTrU@ZE?9K7##3OLYT4J}bXOzsb9#7* zKW=I*5ni(Ec3n`=nLQ;@V#>iXE1Xr^_Gooz^&)#%`8=jG#l>+xJ|Zh4srOi9eEg)E zmS*X<#y0Hmh0FU#F4qJHTat=rYi)sp&vb!0;q{lE212?-#eRp#!ODS){&P?p6!vQV zlu6FDH3C6q${@JT-F~xsy>U`=iV_0#8!xy~U!A`CGPN_Eue?IF)%`$)rX80c@pJHP zCVNbfZDj)-PD*!8PSrvin20*e$MW7ycuvV3w(s298W8~2Gcqw0D#x`>NiTWj z>Ia@#5mwjknWag{jR$Lsi)p2U9w*8h{0}8(+e!-2dsOG$-Hd$U;-Suq9Zw-@oea9n zs`pH2C!XAJv1(AuPJad|CS=5X`d$U8bN}Brg1fM);cJkt(g<~NgW3P?4G3T``+A^; zdTie@MzBD)DU>$<2v;XI(pbvP{V*;k_AFfpS+tM=S!LaZm-V6Q* zjb<><+%K#wg@c9@I6l90n{sXU1FKM=4W&lXU#L!PfJkYU0^m)uBgTQ6p5nO(VxHaf zZYYG7BU8^Js|dvEwA>3nMX#4}nranve&J@F;9W_Igx=@+5UM0d3giiBtQbjy|7!}c z;K;0K1Z%>U%%*TGr2a5~uR{z1BLTti0{IB6K5Qn`M6sk;Ifg`3U=+iQ1#KU`+10X#m-obXm73g{UA7qXWuQ_ zDy}UO@FM3EzZ*1&*$?UOUOJ^H3F*dcQOd?1`(eY$6&_vdL@T?w9su&H9Tik}Y;gvE zBzrKFbR1>)w8ixi*BA_sXg4a-F1|PRKiMD8GT4yl3s3q>af@0N)R4KtetDQ{j6Rxa?v;k$i76M?$(zhGiX<=lI zza}BALFA@xrD?(4l5X7K@Vdo}g*+B{*1p#pyUijWiJw8f$*wjWxO-Y#9~cJ8H_8(d z^1G;|-JKjWj+ zO}t)B`=8k#)7x$b5Ei195G?A*BMJM)E!Y1{PC5d$f6Wt@^JMEH4GSdUe7bZnWid%) zR-MWxAfPcQnByXoTpY?uxjceXp2;-C%py@Bp1C4`nmxn@OFD=jbfZQ5%cMo9*RM9j z#QaobW9+Nz@lN^SZJCq?FgjC-3_{C?U@Z0u_w*twaVY{_F! z#H8A~C$kGPIB^32U;wFHf`Pzj@=TiVBN%*#?vuuRsD&S_)ecjLLh5yWTH$R6sUZ-n zY;V7yf;5-#QYYe+GOAgu&Gi_MRxv$L)Uwi2)^a96{4SM1L2Xgr&;j};d2J$QDy7ss zu`ah(d7@1KMWr_|k;n@W)4Y;kXA&d92f3OQ3=-Mx5iEe$m}S?E$T;1-mW+T@{fdVc zkldghoB=~z*o)Mbx3Mrw9?wnnuxKg@RnO!ws$qH#k?UbE@MXt# zh;>W3)ts4`Y-Js%QYd8Yq0_8htIq{}GuB>EF|kZuK6bvLK41Zit<8mB*vGZ%HMq7q%X{S`bPtsTkR7=w{e_lWk zA2imi|CG>(3Tq6#wLe6_2R-A1&ya1vp-7xk*rUWdlO?45l#MgZ>GkP%Caa^{ncKQ= z(!CILr1pp5HWZFXoZsU|qvLGuO+qfg5&5UO5|RlYOQu-*Utlu=NgeZE9Vjvi z5I43Ci})Zdm$Uyoo$MayLfQ!%w8n}!f><@l1bAg&ym}QYJ{pP(OVSiG<>*Xzu zUp_Z_9-^b44m?+6Sp)Gi?Cp7Lq=6p3JNI)mBGv5PZ+#K;)F73L(4eGYpG{6`MMX8TPkXoBCee>@u$0IkY?+KycJw?A=FlOO+f2d>f!t<-Efg z=qou=zc(k0Jvr|h-Dm!&HW~eN);?s)T*2YM-nJ7xpTD*z*$c%bWsvHKu&HckNv)|7 zH91a8DG^s)0?7^+B~2vvaBfy2`G^Xp$*Zr#CWdG7a^wjteTD{9b#{8EBONxB6WzvV z!;V5Z=5G@_q^Lq>b(=@rJKia~l3Q2WeJYVvRUuVKfTC*^b7udwz~Fa*$7nnPAhsT( zUA*fJ#?{3g85@t&N=IBaNZFE(%hjFBa}4krgY;{VoTO8M-B=-Z&f|Od!I5O;zdoc*Osk zc*>LQ#*nM4bK8^21C69urEH6=LMq+akW6l;I~T^{;S9(R$pY6_FJxX*LwZE6?tGrp z+Ram^@$`x}7{^2qJTJY_yqtTWE0u7 z8L}|*dRo+SflCa`TeZI89Kk9z;#f}Nq=*eGhC{3Ib;3F@6H#fx$y2QoWF5-bQ0ze> z^(iaV%4-)J;U+}3uCWkS12@$1Vd*4$Rkq?)_wY4j!DPMQOQsvaU4^T`1FyTY%KiSr zaS#Z9Bj&WCUg*<_~lFxqY^XFM>LzGs& zkBnBODWujO24$B)a>50|4kuiWQfeTO_y7Xc%47G(hq$9qR06YjkB7$~CU#Ree|y^& ziW(80`j|s@tdqAvLIgRvKAJJCm5DY58&hMhV;Ez#vF3_H0(*%*+bSUj-_h@2lghR*GECFe~(U2SY{9Dn=hj!hw4di+~_9yB+Kn-cOu zbik%Xl@x?W02iJ(1W>r6bw5U0UqfE+zctg-5f$_C%*?~XlAfQXA~iUdgX(W#_f?qt zJm>u$m_Lo0Y@A9z?|ut?X<8Z~#fE#avMJaVhyU4c zN9eWNeWA0;*^s~2029-G4(iW70qS?sP84PQcYyy`icvk%n~pzylYjF{S{ES`FZ7Lp zx{Vt+#t6osDF%V35V_VZ0kbx3uuth+ga%)XQ~Y#tU{;ytsNn!Yq$e-wk~iMX&_x1S z;{W;-v^M{>J+hKu^@y6x(|+o~Xa*~(Q~2dpjk%Ko>D#7M-)<#gv9D@>?6Lzr7D5GU zXF%?_&xNb%RwQilCQOBFSF2-}1=Q;EqUmxf$K~n(1*8y;A7@qow_$8u+?T1-Jia#t zPqoY4RLMk}45_85uWn~%WzkxIl8}`)_1zTFE`l0-2J)^T2BI~piGF9CH?AjObROZ+ z-^aYB2TO#Z6O>%#FBE15pUZ_r+B)B3gxAui#!FmNzECKLwYP}qUWU+|y`Soax*Xq1 z45kWO**nRY!L@FUdls&ejQ}fU0U)(0Il)wx^YleaGb34V91RbMEZ4$bzG+!nvN%|8 zFpW0nj3iD3sj|l;xr~=`Rid;MvMP&lH7*8nj;{_>&j>sY+w32pbkPjSXgrR}Ws)n0 zWkKA?S@yP+mbJ>;(mvdZtd}3NI=!i{Z2?Z7Kd%CiJL^HW>>ww2Tx@~lI5P5X_}Je5 z?LMS#`MV|{j(jN~5G&41iW)~`tb7L@;1Y&}?YO@kTJNCX}J6~gGwP$ruefO_~tN|rtxm)nR15a}9 zCTt}D6n<_gD@)NL71jk!1J8Pa%+LE``q#{0820GD&W=ngVp+}F)(~P%GWl=zFE`%} zP5j~#HSrT=JB!)&ZRn7miE!wIgxyX#n5|HsluVyjTahl#?M%K~7VXrH+d0 zsuhrizmE9L7i%Gxa}Enbl!$!$1HS0CT+GtxG@5c*4RxHQD7O&eo7&TPhX0r?wzecr z7IR021AFxm;@JW}Tiqh*A&u!P7wJ!?Qlf9AT^ce0S@y@7`TytV=%9WUjcQYk^pD=E zyvu+ZA$XAphEZ*m(Wns)Tdn*?s#v8K9GyBo0kPDs2^h#JX+pwbcxjQRB$Os`9iY=Jmtp{rWuv+Bwnit4pTmL6zc>pB`D>MR;t;E7G!w}r)9QGUBq@c39T^UGrhbbf z+u%BIEiI%J>(^cy_nr0_$%BRQw&U6W<#uLhYbbLF=5y`s9p6+7T{R6ZizB4@T3}m? zElxiOHc~bcecHtsu?qF%Z0hZFt+c~TZTt0 zXjjZyZ&O%vSZp`3=FHenFK;I0SJkzgp1hg0%j`?v*X76^k$W@<+TXXIPJ7vDvO>}P zYCIN)eQ1Co-J8Dw%Ddt}3&u0GpalpGG1|wIWXdBsm1$s$2Tf-F4GITE@$_%l?jl#3_!7g zX{hz8^J=HeNQ)utH5#ALu_7R4t2b+?v$i$iA^wQ+CrA*4i<;}@XL7{Vevvj&Zp*fb z>@a{sK#CGI)H_`-D{;;zXP1}EN_)0dV3|j72#_dIL;c;fC58~OELbCJn_#ufQY`FR z*G+$ibD#}`LJ+M-EC`MXh0-b~rh*VH>G$gpCzJ;Sh%I)G(lXZwXekv}+q5Q!nC&zd zFZE*$w4TJvVF#0x%j*7A%cvLUdUvlfIkGOq$uZdmQQ6N33vVvPf<@A=u~3@ zL_>^S>-s!GF%gG(ckhA_rC};+d0@Io6VrArG&h0k=A{Y`i*%;3pE5xoAdfLY$$HiU z5pkau&zDp#n+q6SD1c;(41lCZgO#j&n=o|X6Kv;Ycolg!yReQ6vP}LG#3=eji>wI* z>bwKmpy`$J7yv1Bk`@S8<}@^#ZPQQ|isbPOmDZCN&se62jixZYEXCIlv%y2l+6lYrG=9tsWu#$~>_%PcwE(3}JQN3@Q^7Bey z@>8JMEd?D6KO92f{4I<5tE&Zqf)gtc0!HA%A+K4bZr$%04RA{2SwqwaTJDmIU;P&zT^_USYs}3`7qj<KXFQ3JTbNR)*RWHz{$VL9H zT;jZmYiN>^-TiSlb0(GaUNqGK@O#=fxX=`nJV<&t%ka{yYo4PQzGOdpFCaFUC2(Qr z-6&}mfIdrm)b=4>E%AHq{BQx}xIjyx*+BoNQXOjMA^TTn>Z|n*BrS=V7(hzRBBj}-qCWS$zG`Q;AXs7B zmZ;>gqocxeJt3ok18^-77)ym?t|L{a(kgpAfL&s2vnCl14;@WJ7OCeix^YH^4Jl;i zAYiPr-deOllmc#;s=|pZTFt9rtFwA!)qNNf^s^jGtndpS5+a<$I&EyVU9uvV^1|Va zf{x@1F*#8T!PFE6KxO^Qw-Q7YVm=bTOLJBI1>RChj4p_laxF~0nX|60x_P4Yej@cz zPwzc$Nw!S+UXIRVzkRBegkoe7bdCl3fNW)0wH^5zQIHCkKSdsT@3) zpc}Sfx_sZ+l}~s7naUK>Gyz-x$w7psK@8+LAv$H?n=&V<) z7wIO*xtfh^0voSez_gjuH3D{fS_U?4qjjW+Qwdn;)2XkOt=){*N(SYnrStO@6F-MT z%Q}46zWl@48Y{cxy1Wiumb-i^$N%b0Tf&XOVoLoq@Nl_2yPTg;uFP(2%|bQX@{-R| zl;|T(D4QULg%e@=4J7le2%J2!IrAOwS$=r*`M){nQzg27N zjto}5RdQxWY)P45Ty44-5JHi?Ic7ayBIBY26>lVXS6M+sT@yw98Vey!KgJMsJ;u;# zdkxzvmIL_e-dtjpB5vNJJ1yNicr7zYZuv^woYVG_MrbEw}IE750KYSJC8=I3P9d+_Bu|dU^P%CKG`D2$?jV~@0>s~*z^=v_m!o4M}pw==l~&T z9Hv`JQKCD*c}LvG27h>}u}NZHy?r#@lLoINJXJQ7n{t1pbtnt_TGml2>a!=S>Z?Ls zeJ~^J>SqsewnVua9bHNx5qRVK2|@Z|`=zhH#j4#;LAR~n*Y}l9>S$$!kGgSz{ZZht z2eJK?HQKA0a7vfQ^1`g*Y!|#>COfp_#ipQCz<;`C(uCEADl4Gi#k`BJN3a=V$1Ob^ z-p~A5?-DokySH8MzWu4~G$Jtm#{Eu8dvt}%E%%omUgJH9veB}KA3gk5tZb1b68TP_ zR(yBT&%D3QgrHfC0Ao6;Y6O6ILp<%C)0Z>k(*9N{*qlOI~ z^ip(@{M0q^OTpO|4Lz#_1e$d zaW7)dT{?7aJj)Uh{|E5oW|gS~L^l|hf z4pt&lB4>DA(9FqRHC(D#$t@? zv#T~G%V2+hAv8|-Od5Cl@`0$O$Ju{0B4d7TXWtvI*tRZ_R?9BaM^T(BADKWWvjUyDrrSMnFmJ!s7CcG!AwS%Nl&RN(~(+ zO_L-zoVUj6ND7_6C0S>bi;{n=HUJ9hoOa_v>PoE^xiIy!Le3!#pJ^^0Cd&!17XDF- zpfr`Spv&FPkn*uh2W~k;&0#z^d%L*Sdo~-F_{79Gj8`ZYCo_nIF|B}ni~;)%9}N?| zMB3_2v9t)F0|Z8(#;~CA(kg(Sg}JQ4+W5Q*Mz9p z6CutL>cyIn8T^==pzA9|vYg3W3+p?;;rjug*=y_2N#fLtMWWm4dV;gdN?OkWQIzp2 z)m<$fQ9B|Rtfnz0=dj_7jSeI8vJ4PaO>qGB;e{UX#!rKN7y8nh4g*;xXpi3K@w*c& zH!Me17=-imKF2c){wvJhRQk%3S)FMJTz)r`E~lr7t|#}BQEEfOqd zS_0*OvJ?wA3mC;A_`_)Zncya7_V1jw6ZAvK9={i6fk0n&RwK0=ks2FERx62Tg9#$i z!4^A@{N7qFIIYOoj4~nGDi|KoNo8Js^-Wk!WJ^;-bHviJHKgHDdp-rfG#I(y8e70% zvkEbi`PGvqrwyG|%s@H@C)o3L?e=KkDT&AAM0tg@A!OBmY;l3%5s{nn^P3>kGgANi z7h(fSf?C-vAX9)+Bl6h-AJ|9~EXgP>38bbYt!N5HX^I$7Y3r;#I9$8CwrA~W)Jy;j;Gcn&Zpff86ZiST|pMcEAOT!Y8 zshY~n;+K6prJH%p`!PBYPki=1K~-Xd{!ZzR7e-mGK_C@^{zAQ=3PR7wd-}^ z-yEB*vr>Fv6KfJuhjbwvTY!Kkr5V;JZW&Q}fxozpfSl&}q|C3rM|s2HoMwy(YPGu# zFjLG)Opuyz3|%@61ss91fb966I6DbAVvbTm)d1o_Rh$3wY%A zpC70Zgnt@`?6kYzFHw`8`AB)od8!f7{Nnm7!QO^zKE7?7n2bFm2ZQBrXkAPy5+hqZ z(`tI?WQ}Sdg_v7qpmh+2PW(_-RoizZFu!*E*`1z@Ja&n7ZyG<6p}OiH92YN?B9YT6 zdE4D$StyI`vWahGf*wId$z<}}KVI58)5teh6}xY%L;vbKzVB;i%-rzA`(P0ZW>8ZB zg2<>4kjaQ5lA#X3Wi$eu0nON=cv6 z65HF;cu=HF8{6NVk;dG0s-*?;n4~g7q@<+D+Q3r?TY2+KfHX{b$4D4XP%hY?T2VHb zICMhx^y3gIMj{T!6FFU#Yga84`kTtLb4I;eeHMNZ@^&(_zx#aeuCu|){%jkQ$+qoo zvaeX8hlQ^8CQn}k0IAwE3XSGV2X~ZY;jPzS7IKPMlOdA^?_)4OH)~|X>9TcEonNso ziwCCWe|>X*hs!Y>3Bycvu$U)g+zz>)RM~Lyz{^(_zDFAl_pl_)?LP0g!auYWzo|h~ z7+@F=PJm0t{&wpL4NY$w^o)a=QoC0Z)JUKcn)0I;FCImE`mI|hd)GInG^T}R7)xJn z0F{N3Qqq>48|wM@{e;tl7opW9qE|r-TnH|-dAE9JTHJ1tq$Dy58v6L|PGaWDaytgS|rqTJOIub1|*)n(U z-X)zjLUdz5krm1z(lU6yTQ#GgoZ;W5aPeG4Oib4~$N3cqwm%-Wfy0E=^bM==6%$=n z_Nr3Fjz}JjH*~&EA{FtYR(Fk_xbYs)zanFGW+ATP-lTR?;k8TY$JxsS>++0_W*1#eob_ zR|pq9>)NGvD8vMkKEM*~RmZNZrm?rvD)@RX;CKDW@}Y|Xii(7q9ISex+rizZ-GGp{ zrzm-@+ED87On2pl+!vqCKG|e_fxoYva~R^#g5-&naAAH)h-$y=g!8lvvxpvSLa0}* zP_1uJV-D!5pQ{)hVQE-WIGYVRd&^bZKFv2=_r5BtsqK){Ri&lE$xy%02!P_@E$3&z zh+~78g=sEB2&2!WD7xQZZh23M?Be3tU12{}ralDK2%N2)oW`t@v?o(Q7A)Q2U-o-q;i4!u>f4~I4`)|8xmaM zqSFip8oikr64B)LWF8gp$wHuiwTq20@C>&)=Z2`QCu94EO6Mq-pVVxJrPzC@>^WHE zP)}x59C>{6>J6bA>QM;8_fc>A3zcP$%d#9iWM;+DCpXfrgSS+pQ=U$x?t60gZUv(< zF=R4C@l+&f))X4Dd+>BQmdz-{UGltaWi{NO&4kEIQtEcIA8YV!K7li=O3{t= ztoCABenH!5hO!YwiH$zW=gNR`{R!_hSZ@b+$7}0@_F=m4X~dn#P?hBfY!81r~gAkiFUx3<(_fT?`)^^8>MSB;L(555>xKz+?Wq!Lwur0(%mZB3w5s&s&x@)vJiYU4=u+c`C`7L7E?vqt?m@- zq*~I+oDWDFvR8h?zIebd1C?epKnYqMT?tH5?-@nv5m@BAWn~1LSjMbj8pR|`;-#C? z)4CQu_HtfDj`;Zz5~c$So+KAjd_XCt7c2XiiUluy$6BQ*=hp6G0wlt5j(Z9B2aAI6 zxA%CL?tv%4djX&&Jh)ew&*ZH5%_*ht+HEZHC$uEUJTM zYXB#MHnHeSXOb!$g27h_#SG=7dg8K|>6ZoUJt$otfD*oSlwI@e7}_{VWQ_=Gkzg^E zF*P;-dDHb)RP00Pn)#v>bkXQ4PCA#DgM#k{>qf`;$tlL5`(eq&wX zUZU~Cb=&fMY>V$dWIgHxtIWRa7PYRNug$qpuL4K##)1V0!Y4EbFE*RoCKo&janSMz zJ$Y4iP-uvL$axkUy4&9w0U~z!M-IGtt8hNi6c@&->-Wd9JNbQI?4C$O6qS^Hs=*yG zJ3h;#5X{n$t|YT>tg))PpAI~oduYFly%u$SDp+}*>*gm}Iwl*vWVGexj zuw>X9!l9T;*Ld1u{hD^>IeN0)>au5{4+0+Z0e5*PlzB$x?Q8%$Dq))A0_vmaW@j zu(>jC3Szx#k3ppP$VPb;^@_#)@*OZ9iDwDnN%DRE zGWko26q+xoI~x7OH0iU~rNiXt7Gn;g-k~mtXS|o0KQMG+sUqd^y2%yWG;ryC$*8y$ zK*n6=ne7U~w*5+=VneP{CkXYu^orGYve0jZ_CcoRvY`0qD*src34iPp7pPb9j67z0b09xk^F5Q&il+YA1X*ID!ItHt5UKtIq`s8 zEivJg-V)U+VE0$sZF4R(05$x*>qj)KpM>?m z@bt}rZ`_f&1%ExXzwO|WQA~7Sr&@nw2=DG!RY#`Y-Jig=UGKgQwZt7c`|j&f$*TDF z#{J3lNb$S-)4I6cyBPXNRo{=xSqwBnL`y7AVVrg`nE~fD?tZr*SGMC_OD?-k0=kIh zU>{>f%j+OfpO`qea(G4(|a)44Hy5-FM#$#dlr}2 z!LP5ln8T*ivYW|;%~FO(w5cnF`6sC9@)o;*fFRuEGp|^Vv)s*_?Hpw=NTjkXV}3dg zezcCFr2CX4;hZ3u95mGxTV5XbMn5nnKnx>S@|_cfuOlJtJwd!WX+;K#g6`}cIFeA& zlh)apUc#0|CWI{ZVEUb#H51E*SXJo@qcUbj#!I>9O~sm)AJIbFsa&O-Q@hj$>o@#aVA5sI|LQPLT8XA^1b8fIIHmDzN=EboNpeQu@Cb+J?YzgsB|GDD*{9K{scTlY6QYzH=))xl z^(Q!7HoM5^J~BXYMDM>w)D=@MDYD*?M-DHaNmfH3B2HQ5lEO@N4TiGxLNW-OFBUZI z^LF2EalUP^R#fR^fo`UG1I#1`ywn+7IIX}R)7IU4QfYnV<}>|yUO=L3DiOa6E!19m zb5V?QS-#t+tz6A_h!x%{8HqiVZ*<)EsI-r9gg&B4f$ohC%$BXDs((S}?{{tzCYJ@Y zgU3aHLj>~e|N6YpbT=ebWmICnl6-?%wSi`jhz7D?E1Kzl(mdU{NKxk~E-s zk;~*5^Fc5^tk%wug+sdb8Uh;=RLhi#VF_)uh=*kqf>x2LM%9Q@w`{4NdzIPqo+T5C zxQZY%R^7c;T>fyd|E6)R*fIzN_5OCgM`N9ke&1H@f?a*ZxkxIVUXJ**j4|EBa?Bj> z%r0(h91!t~0LU!y(6B&NvU*nudw~nkXli{H)U(8_Y>-!LLnUp$s}Vh#84^uXVw>~; z5#8=7?g|Qul9S{Ke9>})T!CNo06Zj0b{H?7U%#B8Qtgp&brNx}RRH z;F$P)99u+(2M&{>B-<#K7SC5KX_1HlifLvxZ9Pqdv=4?@Z18)d_2iYT^qc4M0D}#Q zO=I%_xlyJ7jS@TZD2(wwBQmKAT5^$Mba+lwuVo)X_U7-Jcw{t>Y z7_y-X0v@q(t3(fJHm)rQm+Ow^*%V<*s`e6?#j&F| z=>w!A%C_}>u5AqsY}<}UovF49P4AOt+umc5l?%(-cZv>rP4GhuU%5CG2h^zvFH5(F z3=nR+`V4|h?RfXL`bLh`YJ;Z~@r{@UguXRXQ=COhlOCix+z&RR6NCi=-dQQMSt>ko!thJyVMJ*Ll7U5IxxNFDX-@7^B`Y!p7$-904)(plFF#}5$E#%<{N)X zLpXOi_D_}fDkKUdf)Y1;@Y7HEaV7unXWJnA%u<0EuBYEMa_gYHF+SEI)bXjJl>9-V z7%Fuky#Gjo>b~BSz73Z*TdLt!$20~K972XWlQ0s4wP+Ac^k9wIG7a|&X4*h-2xuiP zM%Km0MC_)Ipj6M{sf(nsZLu*n<^RF+iHl1cQjNvQ7Q3-CK_+g8O)Ei;&uW3QU|>q~ zDBtLLhm}zx94OT~tPp0hEu#C+pP{?^VViWfl&Ju)1j)_T05+CHLT)L`zNo&zb_~e= zM80>?y`R7y5mUt1uq49Eb2-qw=H3!vdqz}&cx}^yOZ@VT8zxjVq$=5otA>i4Y8BI-cMKt zh0I=SKoijYVwH0GD5pF*^@1Tg@gI(H#bz?IsK7&H=4KOyH)6~n$wQvjuE)(@7`gSgseW-iyl7K4-T8e4ahu?&h{^L8tM#UN-hDI4h{4NAU#xB2~k1mSPZQa z12-O^$~p33gL{rU3DVs1`S5lWh+#^*V=)P00HUXfNrfXh-hs9aJ z`)$fXFGU)By+tKT0(9hjja#GC(_|=iC3(-IjUX ziH6MWOaEjx`>i*JWG_u=Ygg6{5GSwV2+NR`~@^8IPY{;!{GJ^qB zqSw%fP_E*$CA5y70f<$WseFYy&% zTSKk_C^|zWp?i2R1z#G%`Jg+wOe$OLyn z4Ksz{5RkfJ4~5^&4t`K}`-HQ%QOp2?;_Zbye(X=`^%ySjOWCAj>m=H$=Wl~H$*JkB z_C0Jy-WwLO(LNC8^HH2h@>_Hu82A3Y4BgcaDdcK}IOHJILK99VMMihaXN9?vw9!z_ zJh9fO{rIK`z=P|;_dsK|9S}_}@*nxJ7@U2vh=YWd9I?>ymnC_C4^$%XcYf3ixQzVo z`Ae}D%W*bO67$wK?RPlNk>n~4EI}mfUZ|CJ-HztVd_ZEvTY0^gB+E!#V1m{_5um{q zhW$2PsEo|?UJk4fI$Jj4Xqe;kuV~8~1Mg^VF6ghX?^nAM!~}Ep#b3$npE@yb3fDSg zzPEqTh0LPr*fflg{R20;hTtzDFebWsYN+A?`xOy*IYhmUh|mE=6# zSZKT8fK1}-XKx7JE+s>!2Si+F_C0v0Oj&L7{-Z*x`dG{{Yi45|?m-rRP+kc!{$aac z8zKCN-t%Om89xNd@IS#^tW!8j9m$)W!`4<$PNC69;3p|ajFFNnyEmu^g}zH~udZ+P zx(^tavLFzo+kn)br#lPxpIA)bMgle@C{RHaC+%8Ohdla?74ThClKQi2n7_q>{pv7* z5D!)D$Fh{aHK&b?eMVL5tqfGU*I~@#TFhOjY0(ixXYfXZ!G;7y=UX<>_=pClU#aoM zg-4Juk`X}G|LWbWxG(ilaPtlLIaU0ByJmR%`0kWb=d=tMUN<6b_K)hR0N-5obkfbC-D%2l+xl7g?H4i$$&+#- zANj*fRF#{7q5%xx4oy(0%*Ez>K2bhZ7S!LdD!4+7aoN6Db`p28*7YRYk<1jQ9e7VS zimhkjwIXA~vvD=#fYc|O<)aa`4cOFS+KH-luS1#d$MktrIR^N0MM6`|nH&Tgfj1d; zUUJt9r3DF0Ce)k$u828Ny6^gdI)77{Kj_D|G#yk)hNo$^!#6j`$AAk^aU3NzYbD^w zxYwnmrT|8^ljUfG+Cc|k2QpH5X0|I&ZH5#ma|D3t;=^G^-0TgXgZipIi+=8{$bNCm zEZ`~)9ZO}KcDRb`xz=-EO1hktDRJ%f?(n%nzwLyK;LPu)qabj9U{4l{UtjO^#cN^Th){kj zB+x?-$E&LHvx}KLH(vDn`KD=o$5K}M?-N7extwPn?p{4ZR&3nrZYTS^iqC1!-S{mZ zjg3s!zq0$*psYIqB~K&9@SFJWq}2knnnZ+Bw#1QCoUSeSH4NljzQDM zwA-C!*bBT+h~&<;Q;E&^!lBOx|EdMt9YFcn9sLI>dSmt`fsS7jGVJ>^lTTSXM$A#X zs+nWxdU!jU6a3n6sFyA5*V&s+c_#k;VQAn&NzVt4*Mwj5>!!LDYz;;3NJszui7(K zY@I2usAl(B=A$TfCSSj624|z-2&o<=h$fdV-XB!L71i%Xq9x>p#YMLt>Pu_L`!2NJ z32cCdx+&G~}C<=3BmLtPeJh63{$4_+2@VtG|eM0$TQ*QT(E}8BF zm9D`C<1SGWV^{NI4^J|+%=lgML4A7r5BlZ@TrI9U+3tnd!fmr5v$S%H*s7KaOZW%fx(qJK?_mkt&}zYUUa^Z4CCdrIEC^1v zlv<_JXNJuIiWBfrAJi#F{!%9$(GB~3S{8Ccx68ujJra8PKAD(6p;}YS@R}hROwbo~ zl&KteMMB_%BjZedb@oBOd&GsR3X%EeGHSp$<?P7{oWfgdlf{_+OO>QHOdwBZ!d@gO1fumFVmiX5 zS=rc1VIV7Gpe?gMo|Z!V2zj&y*l!wdBG2vOpQ>;wAMpX4c z{6ubCTTc=dh=u_Q(w*+bvtLz}`p^1~#W5){eWU5#XQlkI=#NpaSITx({CWG9_gkC|!ii!CU@~ZLMwC`x$0! zNBIRj!!spUGUsRHGpX}(P2ws_TR<7&}MXv4ZakUlkV<&wEp}YjWs>*4(TzbwNd$ z{Wcq)LJ<^Y7M>Bs6UA=F%&UTjr+@jy_t=p5*$+7~%-(1C2Egic1aJ-jo_mn$HirQ4 zet%0kBLPkgXjC=4VwarFd>IXX8lP5} z_>I7KR?dE()Fr_}wR2mYO}2O0rWN)Iv}OBpo*opUUEarGuDa@gP5EU3@PT!KQR5|J zkx_2~r{_&|Y|XpsaPaGW`{a>r8JmdoBl0sXf5l5uQxmgC*dvSfdjgmyKeocUc<$zU$2;@}pcr56Ta!1&XWYs|u1s(UNZT82n!GhR z?b?QfgiPmCarW(n)2K4keM|<34ao_LeRYn|X6D#A5S-m?2H2%h+;~$FyY!QENP5&+ z>&{O?Jx8*6L5gkH@XNcdozHNy{%mrsr(o6Na=9(|M547K2FPPCeDkcn74iYw|9 zHWT3Sc#I(l5uu+dI|-_kzjkPX+L@xIszMgC);e^?LB^|Ted1}(c*re_)Zz)9V{g4%7drx^yQ4? zLZibFPp?D=ADsvPZui~dm*pRy!=EtkF@F{QC_gI!qq%*w_9R-OnU9Y6Zm9)@EA7@v zrz48}`tq0}d6$SI1WW2_K?bO_cC zT;V-}&Zxuzp>C#36vYqLE45RFmKJ+%0zSp2zhBS*bmC59?f4#IT#dukF@{fDY)`DH zJGL*5bkzE;j?SW(G>K&2_n+Ya4kp-;%{d)sWF@ns<(-*DmY1i#hu+Yc;NbqMv{8Tg zgS@PMw+JuPd5o35Qm|;oTnX>QjrL{qq+gL0)q%7>2wPcln&`i31&~FaI#I7F@&{OL zNl6jxrA{Z(%zle%#-SYap0*FPb$zY?$qe~C$AAR%-aFR^I*yNHP}jN=Mlx=de;AB= z@v|2;okT$*Z^}3Q8>3EY@tsGdosYUIB^pMTtWQk9Svd^uo=&=zIl6$vzB8Tm&c^Qs zA2AD_vtNB+c#?Tp?Z8T2W)QR=j)*A~Rh@H!3X-B4!x`aKFD^;BaduHQ2z;2ki%fXx z+%^*MW#>5q`4dIA#sQuf@WBiXVx|dOuz;W&nUk25MkM2=K934j`lln31Rb&IMavz=0XEswy&C`}eCor8|=IU7?oVP*8?*L`%-u zswKOlo8tF&!tm7xY(yK8*jLjC^1KO>fD_Pw=5iswA}@_m(+vsPljC;r(H7r>Y|sn> zC{XT+^zl*%31t!_Xqdd=GF&s+V;mWQ3F6>+XfC?QzQ7ANr=%WR-5WqOHeagBi$s1T zpD4~>7dk=|Heu(RRzO>=W^^keFE^^pFL_QF^GtYYzJ8%f(8#jWX5U6MB zn>H$x4Dw)QE8KH89~{-VtUoMks{dXbqDH?j^96k zA=PZ*HcQ?J@F|C&+dmmbt9WwDJK@KRiq$w267t?MRmloD$35Wbw50duMx7#zZztfv zszX3(?#|uRUNZDOZ9prB%5?e@B497ZT3NFoCV_=%Y@XbN425B(60|LW!4%e=r8)~m z{OZhzgGOpnnj4Se?6bY3PG2Ym;P)ib-mFOBMa0YXg66bX= z4rN&@MVer)LMo7l9jR?^dwK?qPGfvaaLjH??F=Nt{HrTUDnxx&2#Xz=0|b|e$tA(@ z#kFKNDT`inHJPX&DycZai|v2&Y=s;M4{VKUru4DxLz0s}e)>9A8Smtd3QKTW)A2jE51q2FHsnR6{_#DnP?6`UEwwAy!fY5}1DPA7Xy}dVxD7Y}!0^FoN8y14AVT%L zPb}ll-{22a0v553R76kK<_U7=oqqEE$_Ku7vtx4K%PeNT@^qK37bH}e85xbpG**B9~pDdh))l=%P`W`+=*n}Y%Atn;TkS;PG8^qCpmlJpMf;BobT_09hWts3o%mP|_8vPJeQq)yj;wmWuR z@Um|8!k#ld$7WNNyMxA~8NC>mB*0c5(|ZnU-~A-|tp>D?s_h}j9%OBYcK%IL*J?@w z`TChMSgUNlsn<+TL%QYujW<|XyVzndJ$3kxUD0qM zE~o3o#FZyKx02;4XbnILk8e(`vAmHndns3Ai_9^iO| z>Vb+$u(O^=@lhb{IT#?FbpEC^#~wZVDwP!A(j~;!Ap5EW#?&^Eu>x8K6(;rHmjG{;rzW3uPrQdWoAt@*NB*KYjHFOVF zt9dI)ABPgwfOq+y_d6_D0vx*4{-+gILAuo7Lk^ZQFQ;mhpLa`E$xhTQTKAAiPJ2SH z1UnHncTlp;VX+!0`(PI{|CJwVk~N78oUHfInEk#G22MHoh~-1}IkI@;UcA4&@{+BgD%nYJ$*Sxipm z?bjv=l(bGEm_o6ObyDw4aUO^rrzxE8UVeGxN7=9(x};M>ho%%SQo2BsuRodjIX2^O zWFE+JEufFr50+V)8r2FxLY#iscX7>q9+4)=CedzSn+L(r2Zdm3HYQ4zp)qWB6OGH^ zHEtR93oUWXIZM$ni58y3tdMy240ekJ$j_KYYh1Pw^MP&+Mxb-7YskPvT^0_K=QJBn zb)Si^Ai=ZA;;``U8RPTN4;vB`l?qS{j+(t?2%=GpCTkrskk%&vTmzJZA=SEi3jF~Y zGqTRH)qt2l%Fic0tRo20TaJaPc;G^nu%OwxmBa%?b>3Xy`i)t<2LgE49$)Wyf zax{>T|M;-J>E%9S{C|kUYh6F&&RnAZ7JH$^Eh#YhJME#}3551Z>sBj&EYky{mWGN~ zSnNIOXyW37@K-=!R3@+-vg@?{R4t+i%bde{M-+_4%~BgTc4f+p72nXlVxj%wCg~DR zT-x(zR|z(&#Rx9rSW4s_bY6MhX%b5O;~ikM=2ld?VS7B=0tp$*&7H{@En+Vi*>B%e z6Qn&Ha$+JQ`u;)-SoM5o5$)&HJIims1D+^4p-8;|Syk?8wXIo=wg$Vdx(^v1g`bcS z7Y2bc!%Za~@Q7Z$;V{!6rQ|#c3N=Y!c}(m|f`iF(?*DEZVg^0l1b#k z+AB(R0`Bu?OZ|`GLW;*t%n(Ktca9#LqQ3n`p^W%yp{eVdFI)>*`ZrlvTv^8f`BM-V zP69P#3lYqdBJ+CQb2KD;IuKdoNf(X8=jWHuaCxZ3;w&<$=dHgTfDY#NS&FQS@29V} z^e7RCPs_@m`gl&NJaEjmoZfxp`OteU`1Z)tlHE&AIRzjk_@TFNhG}u2w@2|o&)7&= zPkET{q59gCaw_e~o5t{jt8xNS?{z{6*GXp|MvMl|-H3^I6%EK5Qd?@s=Pyk0?Uofi1664|F zVnuuNk`GG0!j796T_BccCd@r^cB#ah4ZV4Pby%$_qm7{~*U};y$~-D56i>~@kP<@+ zGT^EXc*Wdk0PDIG=v;pth88E=n7c2^!G37A>z6NID3WJChU>7F_NZm;e;WS7-{eA#UJoi~USK*XYomI!qqB&!NdO;7ZJH=xAtELRTDA;RM1EBvu``?EOs;8lT-hKmi zaPp$*m|jJR#Kue{#Oa9McO_v&*tW8lyJtc~lB6UmnMyQwzAHmDnuc1nz4fqdBDx@& zbMf%SqkR{(-7LvU>3@$=p;ps&J|d&TC}FHMF~uwK(iH@%_xJvZX7anLBz_2z?|0H} zB)B*~Ylj`vRgUOd zySfgY)qoC|O7%In$qr6q;ILUtwxGS*DB%4{SD@bbZ|b5;@($PZdN>MvMfKYB4ck<` z?tf^sb$74NYfo(ZIy*G|N^pnqM8ZOX4)%>Wt5)zODhT>!8KoYt+%1_Rh&qwT?kYvy zsl9r(?yERu90E+l*<21ZP*TXZC-$^ZE)^G+l`g+7swm@K9xUW>%M)ye42&!WXyO$W z1$CMCiE<;2zYfhxVI_uEleQ}EaZyZjg*vtlaz3$h>Rjv8Cl#$sALqcuwhE&F+T@&J zz$0E_5R6@I7f-cZImdQhc`m{jIrj4k0I$uGIKd;)){*En8R;hx65W80^aiKwK<0iD zilrZNWNL4O+5hA1b9F0M_tB6nAlv1MH4`+?%2i(Y1`8pQ(Hxk29ut(RF-1O}=%Q$a zq|xuRAUg>~y-Sg1K!c^}+`Og5eV<2vu+2}FVnobH(^+{}CYLR77&QG$re|clwZg;_ z3^KWIXSj#m8tm0d^OtTp^RVM&{iOIV-?lh+nMxMOmmPsOML^yF&NiVLx5(1Y-L2Zu z7Dn)}i#h(`it<#evbmm^b0ykEEK^pk_EW-UucVU)nZ=hDl&R}4>)%od04k_ztA*Ti z^q2|`$V8!m8@Pp=8F0LM4vQT|aJ1p^gERz;SUQfHlk>~0j)ROB{!w3$q7JPMi&FY@ZSWN564M0p&aE@Zc^%qsqusD&NX{88IR z=)3G#^x@9S`l@`_W72a%G{D-nIQ5Ude7|}7*BQ`tUkuk_Q0SYw9`nBQC0srw$7|DK z0~_D(x!&O&@bvh-!v{o16xF>j?|3VUcf1v%bL&qde&^CuNj_bvv7Z*NdpA$6w7Wsl zf7R%+(+ZGQ*uA+cd9*K}Ppj~icIx_61kV@g%wWUeM;E}JLT@qb3n>3G0oPfDX=I;{ zp`mF0nY{HKU>UhgV|*EH(*>`_{LN73gyaz8(;ReT?P)b7juw!D23#s&4bN^Ti6xxC9*h^Rl35o8Xpe(HEL3NPTIqBAU(u? z4aw=IU*@iZwv`}diP5XaWGz-txiT2|KpY%KUUUD?AA8HK1%se)5hqY$2sJK5=(tP$ zwgjF+8T8B?`?jS8D=zmx841LHBh}<6c`U*4u91Y48ffOY^x&(g^BP!;+Jd^)v>n9h zsB_Sn^Vs*nim~S;75x7@99XB8FU`U4f1DAXMiVL!qb2(`JDuzMd(lRe1}Ev}Jop|g z7mV@Kr&E&sIqaAa{9-RC-BpO=>tb}IQubm^jn59XkB1~9Ty#WI@bibu!Cca)GOFBi z?D*`)ud)X^F5#Z@?yFyqDIWolpwNzQV4wkb(i07KWcd}b6jh2t}uGI z<=<<#N}j1P%jFxOIC+jB36*Y2QDy2z&K_50g#% zmNwuQH=;2Xgul8R7P>B8CZm1bomO+bp-1MX01%#Hhp^>0ss;QyxmL_4-q5v4)i;7Z z!i;E1F6!mgU?7BWRhT zH(QjSyOLYtHIY_i-KG9$Wm4i)F{q?Wo}}k?_&L#*KmDX+Ga91c5Rle(s`{VEa@ix% zY?JTbfyOy&BaC8yXre%gnv4B>3F)XQ$--j0xST{Q+wmiXnP&HZ3S`!*DoNx$ed%rP zxHX1whT9G+Q;jV_48M)A*e4}AFpkMKshXZ< zBerbQ+`^R+ktM4S^|@D=ML>L5Nhr4>AzxZm6!B7xHBuL|c-x3SG>*o`f9d_y+k6LM zu_MF5?hlZM75X2yAN=(fVXhzeo%)N87gMjnCGjx1&fZ-95Ur*N`Jo8gGYT%17r&>SLeP|&? zSnP8A9hL8oYAL*e<@<9&jay&R0Kq8D;_u5UjWMP8a8Eebo z^&*ANOQ8Ww)$(L4(k7_|W`ph1e57uESNu5Y(Sg`xyGr+0o>YYmIBHZ>DVeXhalHqT z3yCv;{Nbxh3yq33OlP^dXg6i)qhY+GFaKx}{9mHJ})BE5*JzWS8Z9X|DbQuTXRdCHS5^IuL3 z6kN`a-in&s9&)=GG;RyzZipo5SyUU9nq0=#wpfyN>@q8rO4BE4S>-!QU_}Ia3xeB{ zZlPtDz0#U!p<|hEP$Lty2CtaT(3L@+zMwWfngc&|^Vt~$?Q3|l5EANPMc^%#Zox%s zgVsXCCJfX=;ds=}-Figo>m8s zll}S2;-l`eh?$AVE0eax``Vvi+DKU$MB7|%A(qSLR?77!|FKyuvuhQ$bZ@lHHaw8I zpX*2sjQ~Gk*qO6wG<}=A4nDln+g`PGu*+32%FTQL6j^gA!y_V(E?xVyuD!e*)?7!@ zd{_)79CDxK#+n$S5B+lQcCvge!ZtMB>_xL&aue!2y+NL9%C4CEX81^&gDPalo01!O zB>0&wp9|a*57k+Y)BDMWjI!Eo@eIB#yu8k2Q9|IGMHjB#H>fuN>4l$GEHUQI>7U_{ zQbn5VFLkt~OApopvri>tV>wJY(Wn@3$~BCqEtZv)l)A_yX9oszs1h`0i`b*T99cwl zXaGk*xWBv(nNEjQt^@_=P(c|+~0nasVOm1DDyfTdu#Ijkl~ zn$6)V9yDq8Xtyz-ciPKcdH)3xqp+-OEJN(+&d6?2k{#P=AG{XlL$|uyjSP-VqzUcf zY(^uT-)-=K=HJ8^ArB0gJa6h7$d$e1o(+9uwd(i{05RMkE%mm#mBxo+D4^nDAZ}O& zN%2bEE)q!vfF8EmU)=^sHeV+lC^GSJrd1IlX687{;Shoc6sgMSJCKtTXo0&2G z#-Av9_G!4EHthxrAN~Atv9kqmi1RAm_xh&Y1KMr(!bf z(+4MP#)N~zxg7jxxxd2QzF0W(nl34XnbO7;D5Py{dz{FwA#jL3Kb?@n_ObZ-^wM{*W?4nQI z0ORsgQfG8{^3by*sGXnL+IsJK$S!niw#RJurTdR3g@Zu%O#b!f59=dugij2r{KB39 zPp%QESnd!`=G%#X;SGKobV??ZNkp@iwB|xJIXVV)gd)ZmdiY(oU9 zPbVdW{-&wGGCKw9E+Y}iWYhk`Hx8EOmLEed84Hbzx7MVLJzq))^@YIh1Oj`lSET@`q!^`&fAD5Rp0XL9t%bh7- zc4Il~%GXZy_3FIhAi@27J`CIXc(CKcGEfPg%Sfq$j#s$%j&wlJy|lz~%27a1MD9-h zKTILD*dd;Q{%GX=a!=yK zWliXZGe`eK?oh;ar%s+zNjsb|{@a)bS`TQ>8XV*qJnsPhbrJn0udGSKnszB)IU;dX z7#!wgvyTit8Q8N=T6z}wlQO9~z452L1H@`lb#N@7T$|{odkKyBjg7X$WdyUwC{m{=R zAr;U7G6T83N}_YL6zNG(eT~}nNW70diqUr@OL%QPJ~E!pWqN=-)l?uSm#Cv zAR!@71xV9ES5@3U85K$1H2;!#J3v!DG!4D(cqID97qKmt)9L47du6?@9E){3ogf*7 zMtt$y?YXdD1+{yzF-E>g?Hi4xybnc&9t*p}V%lQ}&BKDoHz<80k9m{7#FctnRHqNOeS0i?)%R3yQC(ovrp7w`pxehacW1UZW1aJX%Rg&Iic z_smY%Md83>D7zPyruFgVM|SoHL`w#}j*vEU{Jkk7jB{rJeFI2uhN+qz9dA)(4%-3k z7$A;&3G!_IV@bz@R#sxtebRzW}(ex;%AJXW$@fPEH z?*IbSmo6RK7YqeG@3eisZL0hBRsWvg+*#>#OYFTtgGSq)0io}bS@4~aA{A}tM;&vr z`nSJZQJ<^mCvEfX>|_W>-;eH8Gj5^YoUi*caG^sqc(%Z}^6wlwvoN9a1t@Gss|owx zKmpNq&svfZTi6kzAk03zcQ6bYtQsic5s&z*o;Q*INAEM@(?%-k-W$CNOX#9(LV}%? z*(*3flLFPTgvNk?V*JQlTE3HoFEJ5Q6pR@iux95T?oVqxFhm?!6vFRjiNas!x_$uL zf@Z9p1>3Gw@!@-ByZ>AqAf@>{13x)95%Dlf$m(-L<)-@anA|!aR^AVKrmr}8j7||o zsY>;Ix7e}!l}v3h?k9|4w5sd<@4ps|fZ)@jellX>lwf9K74Bu8j8(hm+jQjOBz&o; zEK4Hz^BhH`zW)~PDYcP$uV*^WzRmQs-q?HzzL6Ch&4?;m%2W_)+w?AY7h&s_+nVwSTugmxvf3}X>z9h?GX986EaVP-HkMW{^3t;l zPt7Cm3>!TtMhKdVU;ckEC>q!)D`QLwlHpio88l;|!LspYuCprhVxQS+PlSt&2{?I{wAb7N#d;qM?lKM(_uDJr z1hkBUeSM4bqx9weSh`ZxwM}}3d#(l(Aa;M$Z(Yf6ZRRoafl8Xvd8f&!S&8yv8MB^0 zd~D-X<6(&d2f|+*A5_z9Xm_&cj0@iEXHI3{dm;W?#I#6~pY1X({T@@_Jjkpdyp)X| z#$18%qDM1n?Mj<9pi^zMi+7LT58w!~Ajg~LoTh{__j3@EO7U&xM^?#d6~4;K&9~+nvwREa#(3l zi&|UFi-?`o;jwaAzvo2&2oF1G39_W}0Bn=fhrzP(Oi&d=NHJ1${)w_H`3qbFT}QCN zl*!zS#f&Tt#~m+f78ko6aDs~3svIt(%?M%zKTZ(cuMvV9H6bz8o2d(3YceJ>_&AN& z5vygop-mepp9!Ri+IKtT&Opv)1&gc)82{79tFYrk<>SX%{pF)!@~+TEI)s zkj%k&9u>EN=QiPNX0WsDH`;0DU6ccew7riI%j=V!-P(Ft^Cm70S8Ghe0|P%~z7{w; zZr-S>W+6?P*f6aZ&oQQ?2KJwrg0f$95FVCBBG2%4O1oEF6(U^3Lih6D6%gJ_b$9-aUH0RZtv%}_%s;X~SuLPOc zD2QNY5|)R&;f8VjhT1}OQ1!FEd1UnIgW_>$m3G@$_e(#f;!zq7(mF$rub!o4Mr$uh zTQ#U@(Thz_r|>Xsb^9LkdW+0vU?^h#G$vvN^3f|hm6>U?AK*qsaZBDNONx0?r%uGx z)|4|DEs23|K-#^#TU$O2*H<%%0s4-OusNo;l9y=kuKB^b1tQb2JIazgF+pp|xv7zf z;jkw?qFU6;_#IkP9W&2AenV;Z^H!Xj_VX#5y)9OtO9(I)m|v`kDhRryQXTPfk!-RD zeB-4-JQQ>@sS~=qC#m9`kobGmPgZPSs!Kk94hYmN{;S29G9T8Aol19X^@Bwd2Ga`i zK)E)l;L*~=?X=Dl1V9aE{4oDN_`VYQ#yDF??j?vJ@=I#?OHK49yjVP{E6um*`BZ%(V4S%1IM} zLcQ>5#=(5v8=g4T>Dtqp6^Twq7l=+QSj=WUHY7<{K7Y!5mwHvCog@U5WkL(HbAm3; zeOa_Q%{VlwwLC`c4$_1W_&8R)8Rs!1W?ATd$zknyKt62ult`01nTlQBCL2t72cI8 zo~-oFObr#0&qf6@l|YKw4yPjpIZ$J)8{Z&tL%HO3L5Z7E*>Jp?v4tsb>0Ix(N(X%N zIBhm-oYRg!?O2iDez0#IOx^Tm|+1>~_$=hoMf^^`XNq4NISf_vp%^Npw1X@=SB9g- zmrmJN4xd_A(s7%Jvv?aY234Q=A9iS#;-2CsGYwT`IIb)45fFbZs`UoZLF(s zzI1x}O6d@LgHP?0+SX;z6L$Hx@rv?Y`_pfz!d%cTcx=8kKdHjD5a;&53yCQNhk*1N z3_`xikWHptoith!HB~dqtwe~57#fg%gAX`4Y)@u z;nIpCOEM=%PLCiFc?`B6rayhJR<> z6>uJd#bxosVMlO92^LKRDYbsGwF9dbR2S@X>C?HnYtXsHsmLo8hiAdDDKPxYpyl5@ z>DvXLpig)FLaM8Cz!wK8UPP7)Hy-`kYLCh+xy?UaC7@GRY$fQ4G!v#JQsi{b!rYEpRrx%c{WrMkO;M#B=YM3uU?_9G@%l3gmyJ0KATO9gxelP@S$ zgah;Ad?sBW5XtgOWa83Hu}DR(k3?x%LApW>6W&KOm!90v>8+#AuYP^0d$D&6m?NO7 z7*<3g`KiGvPg8|AXJ_OelsdwUJ4gAte1?7|S-u5zP|#8H_P@$FHa?m9iB3*&#tN2y zZcoI&)F%A2SLwOyQv86~1m$-0VgBiwx8TuYBwI+dU$aC)_CxxKj=++uop$jC8xj=k!Q$Q2 zIdZJ;>ZSEC&8eE%LGQgxpt>u3@LQ56=B31g?1vHN;}J*sy(gJ7qT6;KD58jfWcSeb-vLARiVb{}W2nvb5%;iQ$BPQ%sR1O$omH~5TZ#<}( zAM=&!2+ugkGES5e4cWF!a5RguWLef}DR?rAO^PMilFyE{j}_2syS|%kuH~Y-Qie@p z6_vHe>e5hm^on|hn+BV(7Yj;xAHQsDk{|)tk&)KGcCRe}m36+zpn^OVceWNJ4m^8Z z4j=Th!f*RS%G}A3n`dWP-)>7R>=t>NfRXh}QL|WRQ1p$UZxSKsuz?H`{vYa^LJj?}K`hkVY&^*0Suoct~ytvKh&1AB(Da`Z>N* zDUm)Bj=sMdJWzSUUnGoRNOU}^CQ*h6V=f#IIAnjcr*sWK#FzO3KAN5!^6OUZGt{Nd zHC-NCj{5a$*_UrJUeD|KgH%5YN6c*5&B(D4`&Cm7vJ_}%dN_<*oJjrFF@c-K6(t@x zOfu8gLSSF?J4!bi9iA-MV2^t9E7O~ncyc&GefD2Ss;iisYAkxg|vSyOYije&D#0g2bCXP?yPxe{5RMDu0|tc*z2}| zm3VmO1$-jlLb~<@BN0`sM`w*QR7NN!u9PgO>+sHm+h=C!phd-((lFTr5}^d@)z1){ zvc67R?LxH#`?NUDNuRbo*J2#5w5>N#2euJu{m)Q-VPwCx_CZt&0I4L+-C#pY*+w1p ziK}t0F3s|+UBH87P~rE+qagALHh)aF@e5e@9WR11XT#?l{dYoz#JYxr>E9b_CUx#; zch)q8<9*^}+zz79XgubHq~(Q$VdpQl9*sx|kZ}qD{Rh9?$)Vi*FBKC!CDc1srN=yC}H3>9mFgZ*#it@hKHT0prRr(dLGuDM=tOr05g;{8)T!h_<;huc?f|+j zmk=g?;L93}?;{QW$Nnd6iAEcCI&IWS;OE0wuu?m|e%z-zKCuT;4SL0>)?mC<`wlk} zNyS!Wu#Mx@Ef~W?ed^sZmEkdRah4C9!C01!61vOqQb~L%^@Wq|v1oUhTEz^LQveGp zj$pWwiw$-vb#>h}$lWsT7AfeV>Z*P=#R69I3>S$#(X{pI28tVA5P|4I)^yW!)q`ga ziY(hE)G3!99k#ms80a#7FTE`)UMR~tSN`0CdQW_Wo+ z3kKl5&?V6pxTz7z!@N%FP6rKO9v$qGAeqZYu?-keJ$ku=DRN}+qBWpP*Urtfx?PQ@ zM_BXfz~Z>WixzhsNq=7nn^SZ-TLvoXt0cLwc{K7rZ4T#O*C+Gd-PEl=EO`K!=d;ih zVxAHm!~4?-F$ZWEB>;Q>f6!AIq#NO87AYGM04UvTPuz51JGB+4J4CVmM^{|G4grEg zK#J1!KwhVJhu5i-0$OhHHnC7P=8iju6qDimL%yD4hHvQjMM&x1e_(s(DCg%se$v(z z-tCqlNI}@x{UXesjpCiLkFKTpa28li;eFoW7ghBy0hOmPTpGh9%~W4IE$%BM-)=(5 zSwbAe1;$2y0&&d?_mnW>T;Fpy+R~p>@@F3T#qzK>VO^! zYHWW)nACvv`@ECw+KhLnWI*l$0Z%Qa` ztcOjXUYmH3l+wQfELSL zB|00;BIk{!2`w3&br;C(vd=~uX z#iwh0{+?;(Hc{tB;4LDNJCGw1U^WT+X#Dq^MM!sjVp#hS3eC*at|~qXg?(5lmE*18 z;yVI(A>e;PPOgT3d0|BP(CI(%uYmaoRf`eUq3Y4Y!*yr@Dxwc7m{507129Ud#O1E{ z!cAeOI5wc0$*S~lL=gg#T(LMmLRJzM>nmC8O1)SG14k*FMHN*;E-A}CABTke|L$cN z`*@6eMzIm96JQZFAz<)l3|#0XvylCFfIBdv0FejKWC&uh_3>Wo&VSIoDy_tME)-W! z_wt{5owXcO0v40Eh-g@`4N*KrS7M&heAT=$!;g_r1s)scmF(vZ&wP!|TdkB9P{^1K zs!5T!{a_TMkBC&HEnwHUu8l8*PM)g}#qiFnd{Ny=XtKufiG}`>8Oy8uRde9OP^Ml6 zwsd0{SNI4Cp=}nRx}G-3-j$#AB`0rJUcTccA>h#idp1NU&=NrhywZ?%{8gYLG98p| z`##0g^rju9+poq?P)lz8E=;gSw1UkCr@&aX9djg0$4s|Hw!ucMD#4o4ATN4Pf;bzsOCi-?qO_ zmi_%Cm5bK?GQ#z^!6q>_sHEB&g}hSx6)Is=6!q8x4#gJ zaKa(*rOP&30HocP-vt@a8c^n*OYOg;iKm- zNs9$NxAPH9+QoHRCej>zMwo>8kho~Y6wYPPW)gE5d&T2*A5wdu)rqk}P{D7@By9@r zHZ_>Y*I_9wprWFbdmos^N{eHqRY7}{uX25Yh(uG7(oQpRn1v$?txxqa5&tghMBTNx z&X6ijGRn+3Jv`@fP&tKHwL00s*>Qi-jEs9c_?55=o0Vyz*-w8KEPl-CozGx=lmDCh z`bjc6VdQbdV3Da&r4=}6i+>!(4Y*s~bBXd+0;VHz=mBX+i#y%(AXC&H62gA2GIo-N$M{~$vjXQH2s zutYW8?K>ptS`=q1amHfKQ1}D*_Sd5;wATC7;0 zP!`yILk|3~>j)kQ6dM4uR+V%U>-*lqb3I{85P#!HaB|?3PG7R7wUG+d z49dKl}r^%Qb%;J<;#C8y!1|j4D;)^*z7Eo=5)j9_r10IvuH~ zps%*u`j>@kJBHQ=f(!HY>UN~+d<^gzZ>DXKYSkTAcSp@y16(I4Tt0@dbFF?;qh^Bo zNg9!>Sbi03%swS+7MujRxPWO<4i7o`Q!!_UJDTawCisQ|ZR|MHh<+Vk9FE~~no4XF z8*UMAX0B9@7)&-NmyVWH1dIoaRui06L;jB4L}2-NAR<({PT&KD3jhiye?no`eFuU$ zkxM|vQ%{=dn%xp-I)38EAkP;#?dfM-pA!qzEW8Yd(*~zUtsW0oZY$3w(s=rSm;`Mb{ZRDv& zO?v?kY__P%wWot`AuuZVuSef1c~2G*qd-460$w#*pmfP!@R3)jpo9l5<;UvU7DY?q z-_%NG$m=f{9J0Q<7s{yH-{5MP-DLpOp9`I`?9*%{07uo%M{F7UKU!cbBU4}~LRBdE z))-%Y2bZ9j!Nn^;L7++B8``)%gWwPtc|^(K+TVzebzP?;GuNFT4r^ERS6Vd&Erh-! zG&6CM@?8&icg#V+J)98(fJ3uLTYdY{WGAB9BrES(3Z18tRsd{a%GD9O!eg576m`u~ zDi{sm_cf#*)Ir@5ZfZ94Mwi#ONwEd!^@ux#N%#c|XFbAQH$aTO)HzYiDbpX0@@17E zP8}!+IgChFdo{wN+hh2LI}?nchadxx{Fn?qXr<-HPWy#s3hsY1wqkoCok6MDN=zw$ zjyiK1|I;lf=5X|{ik&FZ3xr9EOFpz~{oz<&R>?@N+)_XUHs zEatp2nuW@jHCbqoM4n(R3r(dYeJK<>&`XEm2-vk|K(tQFKgmj;y z5c__S9NJTb=Zk{t;UlWLCyE^=q>RXnZ8sKbHbvJAA4cq0c^v>3YxDpXKCV*Vj9m3; zxQeSnFao+pmk7w|VbAA)GCAura8D|0>G7C4JOOA;N&=PkLZ}0VPfgFa1M{*5IN99* zM9Ml6gNp1ntkc z6L`sU`}dM$E$O-4=a+YPD&~9fk=v%z|Lov@Qyo$~4fOkrh5$eP#IrK>A(i1`4;_6ZMuHg~` z7{Z_p_L7GEa4Fp;f_*dI?&~MY(^I-opYzOfCrhwDElm7XAa786<(Sm(&GRNc^s6}A zdGB_bN`LRPM?Tb6aXK7gs8-FC#l6DzkAoOxB*)=^!=P?&KTKzp?S~diyZ&DxfGPSj zkyLXHU*|;;di8B(J$C1)=yE)r55M_OG5Dkd7eF3K4kT{mMrRCPqDPoA%*s~J93VA8w!3v?9n$*?32~6EBLKSjatTm7advrWiQ^{4Pk{Pr7u_Cyy>FEkeh!r#6C-UKf)*aLVt zY}PE75TJL~9u{Cg#s}u5nBhT&szqlcs)Jo-4nC_=S;vk^!m=@JlVndJ6UFv?>U;f+ zNJBuzKRPP3ZyS!8jcP`(g`T$Uqof!Kyy3J1$)BaBlz#PJdKS+SWsmWO>p68_O{f}z z>;*;9M>g$+Sy?HC5bueO@;JHt*n#lb66hsWghPw?oj6EHv^R9n8(Cf#ESu6^L~G*y z-v0j9)&mlDFw4HH@1&h!q<%ioaN$tQ!Ztd9g!l8ojEDJe>WB2qJJ9)>aZ5TIxlJdg zeICrkG`5vALJj<2M9|{4yI?Tm8JU0%)<_uZ@q-p%gq-xi$r<(r>D1qM;7ZbC>bSPZ?PPo z=EAh+-28_@QS*33XBy+>G;U-Zot(MPWxt$jFk=fV^TLaFdHI3?0%Ww;?$dlo3s%Kf z(Z-FrWQq`DpFD`hr7@S)H)f?M+HF`el54K+5;(+cLspppSMH~uCRAS+rLkU*fl1UZ zZcz}t5m5kC(56$+IygM|?BAM9k>JbG zGN?lldDIUEc4%(Uh(_PfI7d%?|5Q?#YQXXh_C%rZ@$lg2;JOGLHhWc^rgbTC!-a5{ zpSWVL$xVUsMj>ArAd<^$VR)28>^tQxZxEDah;~FG+>e1G8bHY^xfq2MiRnqGb`%9B z#aSv9S?c1wX-KxNdPiodjgRs-XA+@1V0c6et@hpVd^(zgs>03x>kd5WvyMH+&+Ppc zcDFzw12ZKhFn#kWvCjgx-$dK=p{L2ZxFS3=t5?m!lEuqir?SVt*{r5L*%)a<`mno( z+hXqBxRmVf7{i5>#<<4*v2Hv)>$Gdhg1tWmy?gUe99@6`u~-i=Ah9pZtF%6E;c9G%(k}sWJkoX zDTVfbeLug@w0Ffy$c%0OUe=GPHyWTlb)ZG^D{6hzY5%BCN)Pvl<*Y`jVd1}dn5^7_+9OQe zAjVYQEEFCv!lKh=NV{~Ca$ZL@66NawYOk~x7^pl1B-Z+hu9c3gBJSyCC|fNv>#o8a z*FCim@MQ)s-+WqCFSdQt6JYZLlJTMB_xbyMIpk{b3HdH{e4I8xd*IaOKkJV?|EG@6 zF~F;v8sB>a6qjvbPtQAW1Lna^T!;rzxpr@`acFq|&bBorVE6@EcLK&am3TMkkMVS= zY}%)f{@r(`af(@?4_#haoB=Z$<-udd$fdYzZ(W^3+N47U!gt@T(B>L%AGHPzlgCad z0P1@`BnNlZsgBx;4yWn$)hyJ(03)}(&dW~mCo`2?49);y-d3@zz_q~=D98emBdU>YcRQ$hsIZjZcFodQ0XtQ$=4`TV2` zhY#F;XpSGaMaeGUeyjpqP@PJlwq$4hfXl_AJIRAxvSlPOQ0EN&;7>fX1D*a=$AVLxj^T}uC-n@7rcbrW1dE{idXeOyYEtUTyem3yx z@@9741qL3EgdZ9JThV+eNm^PcKL|IIdoKMf{D_~Hi{o}^365Hx=z9<2AKZ;6eWN}o zP(c+ZIHf&3`K=JS{Jhfis=$K2Ct=*M2~s1S8K17l&cHLzYrED^w|udF)s@4BfEmkB z&khcS&HkZEJ7n=IuhUjn$w3#Lt*>9gi&yP7Hqw;Vff%V|Zbkm8d)BLvTW#aC{boWr zSA}B7BH9+sRenjsUZ*9a~)S8Jpyr_y|QHjFZ8t8_@jT;Q2lg{nq{NJs>_qCiFTZ9}|m zEf}}485dl2CDyhNelTUk>m{n!%fb?x{&}krbsyx`*U9dQDgfJs+Z0yubQhhN7rE*x z4)9_;b|N&Tv>?l@`^L_sn&u0^PL%7C8zOyZ;O0?aSIO}-uc2Wb`55GYW7sS8Wjy)f ze@-iQX#8;u{-~{`rosram61AVSkGZI7!{CFp#{SVQ@D|@T*LjBy+`T2A!~!_l^izL z@l9bt9k=9TQb5|fWtJ3&atmeL@$QVgX^5qG(FAqCz%IX(oqgB0K@!{+=A)00lSKkW zi?m78BtWQppe6-4y{W&L#OBccia{i1B7vc)wPW!dy#~Uk@;;m%XPyR7Nh|Hs*=_cm zen#r21KbpCPfoV_2x8K18t!#nxnQNy*PDNcfa{?GR-5BP^{6IksDEaHfh&uCk zI=eL<`-wdU67g@bgf^>K@7@!2!JyO*fUOr!} zA*>aadt<+sZD>S1EqTQ^jCufpkmMbbxP{H`9_iKNJ*gA*54ykv7RWMX0~!1fN=_;APN8fz7Y#3 zz>*tY032l&nh&D~NX=b3UnA$fPZKykDvb-J(`gO|y0?5}-Px2;E^jD70M9VH!|F(6 zzjE@ZsyainSKhvZJYwi)(@)!|&xIlcyJrbF}T{*vB4kV$6a-;8mxitW;rEe zRtT{V{5=z3tsZP6-!zND#Oj)y%1oP=6fN9y$nxGRT3t!6Xw?Nyh9O^b)!*EIW;!&y zzD6{?3f?vJ=KEG=QrAT&jqeXIo<*)>@W^9MNFMO|Bs>ZSqakafa^7`@P5SfOkN@8m z>`__8Q}p7m|KEAvsp475Ao^#u$7}8_-~$8VK_9^Ib7mc0o*ZGqJ!{a|8@ul5U%VD0 zp#49@NCvJdcw^W@J>g%r{P=HvftX@NVhUGxX3O`w+Yom@f-$2=`kea4OHqb&*WVO5Oa^+rJD%m#JD12)UY#f!X{9}Fc|=x zU>Q(2D%x|)D3qPA1AwgMEqjn-UbWRdud$pugF!A9IReLZdlt73 zw~#1^$i=#|o2w6mP?6U*64IN?caE2g)^{N^&ge+Xp-PhZ)-tkyD@vKu0QHNUA8pF@ zi6(meh$!valg^3Pk*b@Lj=g+%#TB#_@ULJ!R2u;Js_MVNeI2`R3L-{P)rY<5x-ryrMV<(|l^KLf2g4?n#kBfcJc)Ws1?@vDsMiXkTjs<9 z_3Df+*bAs6&;_lGLYfo{)z2hX;;3Stbg+$9*xw915Adrse@H{@re=Cl!4%9I8`}Kc z@l{tA(y^a82&fUt+yuY;v<|58?fWPjg{91=#rsZ}j~2eUV3F)iH1|z0$^(mU{~va- zwL=5#-WW((<*Afmor&&(_MD6^>Q15o&kUeba4w+8u2qgZEnlmB8E`nK&KDxzH~;wp zL;`;H*|+0Vie-p!1eY7=sX^vS6NSx;vb0v+l6Wp>XECp!WG63gry$m*O^552D6|4C zJ!psLGe{ERMniGwRv|G@tC|&&)Cfxu6316!(AZVl3UTr=HE=6JSqVb<)g&2p8&uR` z`4uD)b?frmg50fKd~U2_7KUJD2%5JoBJZpotb%p6c?TjuOJ_ulzFJCw_{wGS4seSPiD%+g$aABV}F%xOD@M?)2g(5;BLR{vfPUhgc9 zs%R@i1KbRQu2jdfyhP7sg%A}xS;Q>~*%fC!zS@j)M4{1g*{gEZ%Y;THM;{-8C7a0C zI!8c%=2LjKxwnrWR)t1)qWD8h3k%0&V}I|RX2Eo0Q0gyv3GIHyo7Dwy_A)MD`VH8< z?N!x}=ba^YP~pCqudM88PxHsrgx-Hf)sDP6#wKZd|K*%We6Lk<-P3V8rX{6y)(t+k z#o>PC)Q@RQDhx#Q>PjYUL)Rq~{t;AFv`)T_=wb#i0?e&ax0xT6t zi-~U2$XKL$3Xt*l$c6yC4r)YaXnXM-@B=w$6KLSLF9OymVq*}b_y{h}jsnXu7(E5%}3Ish%?ijn#|vP2wFGiXIjDU%GACwDz|K5r2=md9&c< z>M`su)3yoK2aoJ6nhv&RJz7ZKQTLX7(3WwBUiQlzs?u>tPVgej(+ITx%FE-BZV1K>59 zyG_%YAvVauXhsoBhSrhk0M;Im2P=MFB!@)umD&1$A}SUqgpxp_Ev0VxH=s$r=^PHF zbMt)5rG2PRcFgJg#nm45)3o|xu(9t>2Ytf;cT!kElJTLv?8DSddq;Xq0q}c^<-|tWA7HY&EKVs=VhtWB2!=DL!y@orEfg~G&mJdr@8pe>6h?=s%nZJTax+a*x%yua;jY~x^W zqz^3@WUZvW+YUpzHBPg1U-;-lv37fE{hhbhOVBr6-w(QA?&3YMvU)JR@-S(7`hWUZ zIGve%C1IreU3tMDfq2|eD!0{nQYugB@Wl$fh0?AEd>!yD5GGi6<}@CHfg6; z^pTYR23SvNy%unYlUIP#z0BGJ)KvpyY4WFNfdC#rZb(pU1YK7xBIbiXq*~UYR!DSoVMGmvJB%_AVziS?(}^8D&e>i zQ=@{pAy|yJ9L?3BbLc=$y5bSxpFIs3*Mbp4rbp(md6sR&M#B`PYsm5P&b*^xAI{YD z9^QfX+%7XlyPmwHe;(fiQIflNbtA)lkQ>)TOUp|J&JM05>t=z{9y=HIt> zg~%eJcH^5?-jHb)wri`87G5Z?kTf7y{l*rVZUfLcb_2hhl$kd~sUDc|Zu9E+>xaG_ z+dkndu)1@+^f^Hgom4T$bz1LxsiDx1(i^lW4EIYU*-f&siriqqXe7_F2X)JU5X7%WXTVzIDoEcHAG+Gpc#039*SHEg(a#xx9Lwx%{eN zliYHoXC1Z5aHIL~0(Y0){-!v|@LZ@pB|FAxTu+*iSGI$d46+JHg{j}RHitAlx!dHd zNk0W}$k$h2Y5*7)rIH z<)AY&&y`P_N3XBFdnW#x={c*;o)kt8)45e5xehQdmUKJ-x&spAKVyuyhY-1;RY{qV z!J~;t_46b>IJ9Z(WnzN#tzf|9_uSHqIXpq>wHZ(VvZ=9*C%oQ|d;qLk!x#_?ZddU2 zZiCj2G<}<}PyQa<8F1Jyn+q}Tka1f@v@j1k7B%S>;Cl76xbdg&hfaZ%m^!RT#Bk@aR5i}yyn{mGtpEbG= zMjgyle&+<_?8zv3zj3C!FgYPI8382RX<}1ed&zUWa!Jq0LQQVK7xHUs^{@h?JwC{S z{=$U&65P+cgL_24yO-kS&+%hxrI zv^@k3#i~o^0vM@>_16Sva)i6&7;kIz+668Tfs@@(fg1}W@QO|A3sRAdr$~;=!Li;< zkFYBn2yIBcR11?Ahh(YmD%}lss303$?A=(s#tt2OqfLG7=C)iHU;FL zp3u>7vj28=)U(mV*Oz-$C$+8g@7G!4SB(F7uYNSYT5C;20fcS+w%zJ<;$2tR(SLrb z)nKe+oOg9t?hjUW4ww8({L&Cv^+U1d*v>5iWS^cvkGuK)+PUD-XtFVB#xlta)%^83 zTl|XsG#2ioc~`9s5e+o+3ZQ+gxTSb|GN6jk(EvU`!M|L}eidbBEN+WWNZ0WQZalZg zO)C!#DO16k;FjhtVmG?(&O}x9%T@w-N8Q6ETu1T>WE{A>zK7TyR&$q^mrwNq6f71b zQsI%`9si&ubvIy3ZC6G(u5%RQq5PpWUbs0Od1*u%kil$JNiB}R^0-a(xlHZS*Np=` zd3>p2xM2Ks2Km?ySk|Gggyf~~(&ZN?983l;L5I1ijnqgbC9z<6j#X}PgByrFom}>- zDBJ7nw=TCSaP=W#f?Vj-6luG95mwl5SUMz}IY$zIM86leP@;yqT{4z1(L6d!qv+A7 zL0=eHDjdss`7nMumPc?1NX?eQ%b?!7@O7_F+aVDZ#ir& zyC&slB#P8dudV{J$3>a=Bmx)zsaMOGo7 zVHu6hU31FwdvMfTOf|jumo&?NL~qFGLz)Zzo!Rw=xc4Kb8pTz@UYL4?g6V$%KG6Mz zhz`si`wNdf{K73gM@(k3-|JcOdx3z(KhNhfjs6%|HuALMky1E3G5X#Kaw&0S0#^nUeW z*>Z+>H!*euv+STzmOv>do|X+@Y3Xadi$8)ip(H@m5Gud5?9%vj*yae&F7Q$biR9x zsD?Jz%A3w5L+KgknvShG>x;uMa&{|^;Sm-6>+3ekj9l5#sM0}UWLO-2RW`q9tG_si z6u*H&6&xf=4Ox-~K_(Qw*D)a-4=IoJ;9q%K9i%J^X&Dw2KeB3@oK{vNjhE9I z7Cc!jcBNKuYZo&-qA@B82((5gA5Rb&^I`UI8vcl*4wVq`TzWXwu2VSKZqoe3eHn@j zJL#>j>D%0t@_VNaT8f+`rhHa0n+7qQFQa{4YcO=Pky4q_#d8|1YK9=9kPz_PUXz5+ zQ4qLsnObDJC!u9gFS3(U`}XKYP1fN!_37l@WL0?sxey4Hv-*WIYDs1Ww z80k5?e}F^|YYpdbJ^SxRLcT|y>Y12n#<}rJ#^@j{|Jd#L}MC3Scqip}8A_KTkm*L^kBCstAgcr+Sy4g|ry{Uo6%BN8AWzx=+U#yw)vb3k z?`*|`iJ5Wi$b`WCcpzggC<5p@9jy1RN@`H%RG!qjG4Y55r#ciYmmr4G5;?r84pX;* z1~!h<2S)&~idZrUGsl<{lMoZ)Ou%C>%z>MJgX@L&f)ysbM=A&~6aB4-^6uU#F-P}+ zATZ*BeQu1av#HrLAUmMCHZQhmTygFq#pRz!-k(VKV#F4_%DgpnRD(ATqiJgv$#1wk z2fkG#!Pc?A0h%O>7%7L5A|aa_ECn~Z1DSvGMLgAjF^(eP(Ju}Erhj2j#&r`-{j(sZ2%#XTksClqR*qkU}GU$!d`+W7O-IWql%8VR%#3BG~^uX}kdPvo$ z)jpPG=ZBpS*7)wwc1(eyeDUe6m@K37a`el8HoQ-Mxdb%UAMn$s4AmuoX7H~}VX=_n z27l@C7)ZLExPj_4GAx*w1Tnowm6#Li2W){U?wBawd%*`zKASw1wf&ydKCh z#;X&QNqJPK?cyn^sf*0HWul!HgdN?^&w$vGNC(2!NdYT3Fien6{vZsVysZ5B zx>9y+wIO?y)T(mocz;x0S=DaGc5=5$pK6O$l`Z(>t=4mV@k~htfAPXc?G5kTbpLT^ z`^=j-Ml5|Ko)N#g%J7Ir!sv(I)_VROB^d~|U2F37M{n???)Qllu-Qe;dswCUp4UsT zA))&8CW|L||1?l|5!1MjRbDuYUGnM?o)9E`g$-`;qD|O$+h1yGn4N}Mfb{7E2oci* z4zMN3i#ralCp4#mx282Tyo6ul5YgH6@=5`JVjU0l`_G#lnZX*rycza%2O~X!HCcPF zXLR$Cw)DmCI}N8e#kF;8Hej$nyNe~Bh#kB-Rp*w2tE|LV;^KUX8*j!|^xtJ%=sCfu zo5A?llW}9aN8w|F9{SiYVI<~S;NWz)b;rku!+Vbl`eS-8dg%J+nn{9*lwN9~;0TID z2}8dz*S`|4mRAh0&l3!033y4|CE4hmvtNF-#S`3qu#la1awA@jBsBPyoxaJ)T+d=QPgTe(tU8r1W%}A68j${S z4JUo)_KD4rSl#uXn^BloW603q7^pE^rkPdippoQChRlO@j>SKrh zNoYW~0}5jVX^*}F*yo!;W^}rkk2|s%TC|#a6V-}hx9N`_oxGd?am{Stq0uqf?zJN4PwuIKmqdTHo#t=}deZu?R%1Dh8? z_|ZQCn=`**=_19#DncjRHeRTAZ40X_oOfH@Gcs_w*==D#g=|TgZ7PCG{q1OX;k~S9 z9NP5Zg5I#${hG5fWWc?N(%N?=@qe9@78VxSo6)bw?>a!H?e|AlbOc6ynyw_Mg`! z5Ob?7FlSzz)}D}4@!p7MU9Z>j02X%&*oyp4c>6}E9t}EU9~|E3M%3Z72ld@`$)e0K zj}azPOic-UY`dHNhCT4+V1aWI++fhr`ea%bEkF7s+VD=l?y#xY-t;*N@rFlkZmdD= z@Ce+i>ogo5R5}aqbkN@>WY_7xZMd3*bKz~7E16FIjXK<6|A!Y)_lUJRuY*Uk8})lt zUd9wnhleGZ>cPNKB!#}(;4;}+UpWX?higz>jaU|GhtA5_ek#YL$7-KtXCA4St2Hq< z*(HmjzCodQ=MfCk`Y5t)HGJX@4C4h?Uhz(`g3rAoj2%CO%gj@;cNiE<(MDz4oc_?q*HOqB zHmg84sXAI8Q5PQGCyl4t1Ni>stcYS<<7ws00Ox>FW=))k<$|s+!%w?d)7AIH9iU^J zW6uUXE_sqne!~2-f(}I?NLF4!f=nGna8h-FM!qn29##~^i|m)sP1ApTs$U`h*gw(l zd@133Xeh*q+NG9d&nf-PQ8a_HJff-6Q*R zI*}r)sMN*On|IUz*1RW8p)K1m?~7v3zhrOh zGDRWhCohgAif5{YhFJT{Pcp9S9^PA7zknamMm5l)^8MXenM^i~`I}z=o#k}VT@Xg$ zqAh7P078fVw2L>25jsVg5{Mkd3RC2~!%Lm@e|?7y`LwdL1YkbT0VC7|Gfh%2m@T9tCtL-e&A2M#%` z?9ENkltVZ$*s&a1V^W~c2_)XGv@uAaCVW~85Ll|MKv`-oRj7jDw`CRoq$Ya#MG6VW z_xet$sR;L5ctUMAd6NW_fGxF{?0=$?{?iy8bJD(P>Hm4f8WuZWP0MpmuX&&Q9k&Vs%xRDIupHJDnFkUp!!Mg|k#CUzrg6$j#;sPeUo_bymi_17LBF0aUw z0DLa|`AgF&Qe3G?WUc5*o&ixohr>A+MZR9HIN}hkAhA&RIn7lNX3Y!Hzzkt*(?_h+!l@Vqtj?#6C7J= z7t+9pa%OIZ%xPV?E~Tb+ zCD*VY~yO{U3hOhcFVc&Qi+%JwsB$0PE_`g6%Vl|xy z^XPB;x&Y;sja{=XgstLK#joS|s^9-(k53UO*g$C_^hx~y7*X&vCp(mFiniId`7G1p z_f86eUgs8)z0V$7ioFYI1l3b`B(Q)c)2Sl;mtB~XdeL68Wr(^`TlHZ#*NIqd+2oOW z$`D{JMyZN)jRZ6f&uLQfg z!a*CPlVQzIA`EDC#wZn|UwAAV=cxoD*IfbzMf*Y5rix|E+=*xbAsMuQ>v@sR0z3g^ z96;-8rCeggh;K6>Bt>nr$>4!JU>Ty|SS?52s;6Mvq3blJ-#+A*v!kAMw4nu$^H@** zneR`s#4j5&fSdOqv5p8x*ihyN4Od~_fcbjrGdRnsb9eU$ODXK31Yvy zzVj%Xhavu+I`-hCbm8Nn2aku<2|3%kr0E)Q9)l$xmd1}2#i@C}6en6}5aGx|<;O+4 z%^J5J{`W)<;STta%H6Gz%Zu;%jN6m6p-Z!_X})gP%KSu1@1!dy#;Ob*M?V1-4Kf|! zZ2Is#8Tp$}j-e@?p1?XZbu4ygb)P)q=DsqLH&Nb_D(PG?>PDyBeeQz)&h%vf&0U!@ zVW7KP2xjZNKy0tl^OV_J$L^pS7fxGn{rg@W1JKNM#XHS6g^N_6U0iTp;-Xv7bIwvRY+(k4Ya7dlxbvA^-*Ms(lq$5?itR?47->2c>I@vl=5+rCo;}gACI3ne2-= zQBULaLz!cL?&U{d*{So&X@@cf!stT6VAYWJCo*Yq(asC>5g#Sivgl^Sghy7N}*`i5P64!M5nU>hZNEiYUC*|w2Bk9q7rfCCekKt>rKG7eN@qr`d5hI-MXAmxhV+#uLa}R=U@;|} zP5lsCd?-}{Aq-}~v4?YFN_J2KgS#opG}!xoXX%XPY3`PSHhxi19n9YZ(l4`=QlFx` z+jMX9g!c@Q>u;PrRs#1AaF`_0JYaQ4IY3Hy+K0;RQvtW4zp#{>v$!%gmQ%PQ)tubU zD_>aX$XQ*5eum!jAn3~Uy*_#f{4(^1ky?a6@bNXe+aJ%q+;`G2l*^+3awyMTMW@>i zNqFe6R!QHUN7M!jms9OgZIO{8~w&9x!ImxNa!Hl>RXDM!7>N$;m?%mg)D*mOGS?y1F}vEFtk2CJQ=% z{NA1`K_1isB$$uu4eDCVl}eD*YfJ+EP9$N*n6ypdy?Hf}-~m9e=0!@h;FPp7w6EXFAgrPM=Cuqg15lJvN+LEdRYvBL$<3qgXJ<~g!(J&7e=`{taRPrM>H8g} z4YD?CObcJ(*N(HJNpQkv4Q>Ll@Av-9^7EscXIh_g+QY<01Peyx2&8x!l%1VL!yiA) zObS3SiX`P8J+O7>B&)0aQqiy^GO$p23QDk6CsVvPAi24vW4|X0o(0v~hC;g=G@vF} z+ui8&w15~9DHodrIzdAHOm9Lj-#AJ2ur381bT-&0que9AHC%F-%Z4ZgZi*bANQ{d* z+AMv^?a9q}>nZzV(CG^BKd<0nL#t$TkE}G&Yh#M;j4S>$x=qipHUmN8&qT528@$gN zUnMvFKKOpBWHn*`%TRlVFfyHwet>HpcnA& zRBytU)!3Aet>P2@2xEo3Y|ktr|uVXPUW6i61h%xBDx0A&uT31 z6@DM7O_@yl-&!$0Szb7?eDg1Zo83x?pbUe~urbOiP+J{|Ekw#7ipz znF9WQ_!rTw5$W!u#E<7%Vl}utethJk=u*e*jYCO4om-fh#ThI-__)$wSN1TS1b0_~ zf-4uKaM;Vae?9j)tAYu%IOaArIiNtLnL7%Yo1TZI+gJ>yhbD<}xM1!TcA3rNQp{bE zIa|eekg;)bnL(Vg>P1(d<5ugjVXka0H;lHFqP@(J#%_dFKmdMM`1nuTJ%DiQ9c#$V zz1&6WrHPK!O6!{H0LJdM9gbT7Tu|~iKUH?)Y>$A?udX^beP%+brn#;zh?fCl_Ixm? z9;>T2F`JmzR#;EiRX}Qn)~;qok5liY#9uV)HEY*slXoP3EGv8isnu7s#9#GFLtJHV zj{(Ngrs+0wqS>tFCUZ(9DElb@;rtcoF|QE#<})9y?Ufl?zzAVPeNXRdc&Dq~%sGe@ zz~Xs19y=DO8(wwpr|kzU;3b>(9`&)jecxRCk%`;gYQC?dm0?Crrbpz0`f7jw5+5uL zsKdOsT}Kht^+&7dsVT@1LS7Zx8}Hf8oe`Nu%iVoeQ)i&=&Xt=!%hEAa>IboGfpgyo zIi4ePT21m7fd{ean6(;o@HP8}X7df*?+--6pol4kpl2nwkG&;|RrP%;0-o_rD`zf} z315np;<6-L;Ac6_W6fQB1_*syB~!vdr3a4`fohsw00+tsb_raC1l?;jnT~jf;H&<- z(A1-!zZ>h$i)g`6QeI25#1RYt1=E1FjzSo{(Qfr*$%jw}-i_$Tm+@5#T!iL*%Wsf7 zhLGxUHzM>D)-%=w3@k)JKC87>WYj?))vLt4H+c3=&Hvmhu+M?%3l->&$``S#v4j~? zL(&0h%U1;`i`D+x%4v8-FXZ-D8{$bg=w0>d@fEe*QGGQenxKO$mn}Ck1(H2+C4;Xz zY?iJD60D3^V~^;Nt_4$Qk^i)M%l7K_p(Ai5?7xJe1sj60dAs9S7X~@|`Hr9wPDm}v z0)g9#V72T@F?2SoRx!uBs^}Hra0znSGYL*wYx|2*H(7MP*FYd>`bLM3uc+xgjD=%R1zeI zhQoVTghxT?M-8JpI&=R?-^87}T{&o!CKwB{5!*2@6OA$YU6i@^EVd)i8Ei&Gg6Wpk zHtv+b3f}f_5V@Xo{hXl+G%Okf&nG= zr+=4u`Usy9mR2qXx99-6roOqrug+ic`+?p_RlIs^#=v9pv-p`Q z%9)hKElg|`Z=M}O)TROFDz_W3QVOP=Ly?uPO98o4st&BvH4L*3vjpS;YLczJ&a_=; z(VKHVFWbo>I4p6qA#JfD|2Xs*zE8#n(MdFm;d?FnYvFXy|33N{J((V&Vq8>jl~u@+ zm)VB})I|2Nqj}iNThh@L3^_R+Vj+IPrXH7L=Ml)b4dmp1(-8s~&q@l411Jraw8e!4 zzCBC+ND}$vlCJw6VQ=#}>)x~V-&X}&qt3ou)NAY1GF$zJjq6$EIrHNy4%iSkrZTZc z-Yqjp%gPucnj_J{td4eh(lp=d`!A4{89i=$*R&r>;{|_wNYi*CUiigQGNFg_Rrw_dQGOpBm)DLv3J0q) zc~qE&c(vXqxRfiTss`;FEHG|f6qm>wLj|!(zKti?=gku~rT9Jk{^&}wMxW{Lx^6u3 z>$i*oe|~iG`RW)^EQ!15D)1-R8}>wPPkwJjdKuYYgTGYc6Z8o!9IoVK_FKpl15j*V zSO5d>*LWmX3z^iB1bNPf?<5}YF%B}|>wMZaPm`Z?pM-MR*nMH#`Ez+-Wo-8f5Tb7E ztl|^dRc4kSs|W2GXqc+fM5_PssE>Yh5=p0bc>;v-Gx=tGX1S)fOVe zxSE?s0ze<%E%mZ=5Xb=LrcJ=80OCtw{s&Ws7V<$N61Sox6A~8`i{)a7M%)n+>;lZ| z{0Ezuyy^_@TkR+HJfx-QU~dc-&xzZ3tx6?T=DAIPHm4ve}v{ioV3JS`{gxq~*U z+Nn?m=6sgv*S}e6PSjDUK2)b!jjnc*L3gHoG*jmnnNR!XP`|Nqy{}5t%L;8t2io~fV1O~Cf4#^9%*&85;yiQwV!fv34s5ZU^e!k02Ua7Oh={f zmuf|Ip@y)pXWT?j8#_BOh-G*b!95C3`}f?dLv8J)&S_#(|IeIXZtMxx#6#14V#SvR0@36F?e5)PC&8RX$>V+>E~Zk!R{ zKf%|MtGnG6znj%wZ5rG8BOnmz-~kOZ2lni@C6^12JfE)Nf+v5$mYV9|oio49nx7IM z1Td7(iw#u;Ya&R{s=6n(WbR>1z32bpU|&yq`&gl#(-{8dmo}|w_^sP)|D`rvYtq{U zPudYdRcb~Ow2#%0>!M@EITcjp>VHlj6*C>%G>#B;)fmNed;H7Q%5M`+Ur!pF{(Vi?!;h=c zJ1@WK2gdd~_WJ0X(Y%}$=J2qUF7-HE@6}-q3T&<+K!ic^B_r^TPhE`%#YR;sP^jdt zl}My+?8abKbfVCr&ZbqwHI|fU$SMwn1v$>H_!m{XO{+X4Fei);kwll_ox;v%FMi$O zK*mOm89yfRqkvFk{Dj}KE7c0S z*M=?D-?sN!SEfavktJeeF;cBk< zD1BBdm|TaKSZv4e1A(ueRD#+tet_H0u6K40r|=qy0S6W$5QCA2AI7LS1f=%$u>Csq zK0EJ2f~%`f(XI3NZ(jhZ!SLZwZPeE<;-gYfW}S;ZfYz-5OdLZ2?_*ER!L%>00pwP3 z0pIc@p6xman4g}fyy+-&KO zR3Yp$Bc(&2EXt@Dx44X<=XDWsV{?L4Nd~pjdDe-mf5ugWnm95}Ys0?uMO_er0$vSq z5K`!r>5pHMGv4+3Y~7! zDV-EG`_CVrP_?{kO?19+d};@~Pkd~Ta~<3{>Zk?rr;=bym#$h2?LY(7-H9q$9oDJ` zg!BZJX6G(r2%O8xSg5{mD^sD)!({|+bkFhbqcs$rpiScRR=47QEm8-wb}Cvd?Z!cT_ZaDA%xG zvVL_`Rs~mvU!w}=;a;%t zv&N!2>mT~o4<58b`E^p$Nc<&sjTx`t3!d&?YpdPM8{($1({a@F!>MC?S^ffv@fXo- zuZd*YszKZEJ*!K*4ic!+8$_NyR-{8fiqdooaX}_Q-eFDh0MArlf%QE?_5{E#SnyG$ zX~&l-gC%GL@d3dh$c1JgOV1jR`>^=<2i{*1a^!@Y94lt_v9Y#gN7=~Vblpbq4JTT<3x-4uv+88M6&^CRKk`Gf;i9H1X*CsPs6%4i|xWh8v-WyS?H)bI&e7bzu!_S22yE!G8xt= z7Ë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

F}!#jBk%+W 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 diff --git a/apps/web/src/terminal/ghostty/vendor/ghostty-write-pty.wasm b/apps/web/src/terminal/ghostty/vendor/ghostty-write-pty.wasm deleted file mode 100644 index 66835717dd8db61d4326577cc5271657fa68c44a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112 zcmYkzyA6Xd6a~f1>pV1&pFVe>0jK2zFIobQqcAI3Qfs!umAs`2meR@1`4(TOuQ9Z>9; CEg8fB diff --git a/docs/internals/terminal-runtime.md b/docs/internals/terminal-runtime.md index 3b76a23ee7b273317ed15c78c70ce13fa537a956..db85c517ac4a26df4bb3fc578e3c6ecf6ac30835 100644 --- a/docs/internals/terminal-runtime.md +++ b/docs/internals/terminal-runtime.md @@ -36,16 +36,16 @@ bound during startup. ## Renderer ownership -Android and web use the same `libghostty-vt` C ABI for terminal behavior. Platform -adapters own drawing and input integration, and React stays out of terminal frames. -The web adapter shares one WebAssembly instance per browser tab while each terminal -owns and frees its own handles. The canonical upstream pin is -[`native/libghostty-vt/VERSION`](../../native/libghostty-vt/VERSION); both native and -web artifacts must be rebuilt when it changes. Web embeds the revision in its build -info so the ABI check can detect drift without a second pin. +Android keeps its native libghostty-vt adapter. Web uses the vendored +`@clo/terminal` package, whose Ghostty ABI pin and engine artifact live together in +[`packages/terminal/vendor`](../../packages/terminal/vendor). Its DOM renderer owns +frames and native selection; the T3 adapter owns environment transport and local +interaction policy. One WebAssembly instance serves each browser tab, with separate +terminal handles freed on disposal. The Android pin remains independent at +[`native/libghostty-vt/VERSION`](../../native/libghostty-vt/VERSION). Restoring scrollback must not send terminal replies to the current shell. Historical device queries can otherwise provoke fresh replies that appear as junk at the prompt. The server strips query/response traffic from retained history, and the -[web renderer](../../apps/web/src/terminal/ghostty/core.ts) detaches its PTY writer -during replay. Preserve both protections when changing retention or renderer code. +[web adapter](../../apps/web/src/terminal/TerminalSurface.ts) suppresses its PTY data +sink during replay. Preserve both protections when changing retention or renderer code. diff --git a/packages/terminal/LICENSE b/packages/terminal/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..49a85efb60af32d588906d98a4a17425641c6c0b --- /dev/null +++ b/packages/terminal/LICENSE @@ -0,0 +1,15 @@ +ISC License + +Copyright (c) 2026 clover caruso + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. diff --git a/packages/terminal/README.md b/packages/terminal/README.md new file mode 100644 index 0000000000000000000000000000000000000000..5da5ef5a055a192036453fd9962d06713a91964c --- /dev/null +++ b/packages/terminal/README.md @@ -0,0 +1,176 @@ +# @clo/terminal + +Browser-pure terminal emulation on the vendored libghostty-vt WebAssembly core. The package includes a headless terminal, a native-selection DOM renderer, thin React and Solid adapters, explicit CSS, pinned fonts, and the wasm artifact. Transport remains caller-owned: pty bytes go in, terminal-bound bytes come out. + +## Install + +```sh +pnpm add @clo/terminal +``` + +Add `react` or `solid-js` only when using that adapter. Import the renderer stylesheet once: + +```ts +import "@clo/terminal/terminal.css"; +``` + +Vite and compatible bundlers can resolve the exported wasm as a URL: + +```ts +import { GhosttyModule } from "@clo/terminal"; +import wasmUrl from "@clo/terminal/ghostty-vt.wasm?url"; + +const module = await GhosttyModule.fetch(wasmUrl); +``` + +`GhosttyModule.load(bytes)` remains available when the host owns artifact loading. One module can host many terminals. + +## Vanilla DOM + +```ts +import { mountTerminal } from "@clo/terminal"; + +const terminal = mountTerminal(document.querySelector("#terminal")!, module, { + onData: (bytes) => socket.send(bytes), + onResize: ({ cols, rows }) => resizePty(cols, rows), +}); + +socket.binaryType = "arraybuffer"; +const receive = ({ data }: MessageEvent) => + terminal.write(typeof data === "string" ? data : new Uint8Array(data)); +socket.addEventListener("message", receive); +await terminal.ready; + +// Later: +socket.removeEventListener("message", receive); +terminal.dispose(); +``` + +`write` parses pty output and schedules a DOM frame. `onData` combines keystrokes, paste, mouse reports, and terminal query responses so all terminal-bound bytes use one transport path. + +## React + +```tsx +import { TerminalPane } from "@clo/terminal/react"; + + socket.send(bytes)} + onResize={({ cols, rows }) => resizePty(cols, rows)} + onReady={(handle) => { + socket.binaryType = "arraybuffer"; + const receive = ({ data }: MessageEvent) => + handle.write(typeof data === "string" ? data : new Uint8Array(data)); + socket.addEventListener("message", receive); + return () => socket.removeEventListener("message", receive); + }} +/>; +``` + +## Solid + +```tsx +import { GhosttyModule } from "@clo/terminal"; +import { Show, createSignal } from "solid-js"; +import { TerminalPane } from "@clo/terminal/solid"; + +const [module, setModule] = createSignal(); +void GhosttyModule.fetch(wasmUrl).then(setModule); + + + {(loaded) => ( + socket.send(bytes)} + onResize={({ cols, rows }) => resizePty(cols, rows)} + onReady={(handle) => { + socket.binaryType = "arraybuffer"; + const receive = ({ data }: MessageEvent) => + handle.write(typeof data === "string" ? data : new Uint8Array(data)); + socket.addEventListener("message", receive); + return () => socket.removeEventListener("message", receive); + }} + /> + )} +; +``` + +Both framework components own disposal and remount only when `module` changes. Geometry, parser, and renderer options are mount-time values; callback props remain live. `AnsiText` in each adapter renders a static escaped ANSI snapshot without creating an emulator. + +## Public API + +| Entry | Surface | +| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `@clo/terminal` | `GhosttyModule`, `mountTerminal`, `Terminal`, `TerminalView`, frame/cell types, ANSI conversion, link detection, key mapping, run helpers, predictive-echo engine, and shell-mark/command utilities | +| `@clo/terminal/react` | `TerminalPane`, `AnsiText`, and their props | +| `@clo/terminal/solid` | `TerminalPane`, `AnsiText`, and their props | +| `@clo/terminal/terminal.css` | DOM renderer structure, pinned font faces, cursor/blink/scrollbar behavior, and CSS theme seams | +| `@clo/terminal/ghostty-vt.wasm` | pinned libghostty-vt artifact for caller-controlled loading | + +### Mounted handle + +`mountTerminal` and adapter `onReady` callbacks expose: + +- `write(data)` feeds pty output and schedules paint. +- `ready` resolves after initial fonts, measurement, fit, and resize reporting settle. +- `terminal` exposes headless state, scrollback, input encoders, snapshots, title/pwd, and shell command history. +- `view` exposes scheduling, fit, resize observation, metric refresh, inspection, and direct paint controls. +- `dispose()` releases the renderer lease and wasm resources; framework adapters call it automatically. + +### Mount options + +The high-level mount and both framework adapters share the same options: initial `cols`/`rows`, byte-bounded scrollback, shell integration and command retention, scrollbar/scrollback/mouse/sticky behavior, links, predictive echo, resize, title/pwd/bell/shell-command events, clipboard policy, and the unified `onData` transport callback. + +### Headless and advanced APIs + +`Terminal` can run without the DOM. `snapshot()` is a destructive dirty-state read; use `acquireFrameReader()` when attaching a renderer and release it before another consumer. `TerminalView` is exported for custom lifecycle ownership. Pure utilities cover ANSI-to-HTML, canonical cells/runs, URL/path/OSC 8 links, DOM key translation, OSC scanning, shell-mark parsing, command tracking, and sticky-command selection. + +## Predictive echo + +Over a remote pty, every keystroke waits a round trip before a glyph appears. `predict` paints typed characters speculatively, in the manner of [mosh](https://mosh.org), and reconciles them against real output as it arrives. + +```ts +mountTerminal(element, module, { + onData: (bytes) => socket.send(bytes), + predict: { mode: "prompt", minLatencyMs: 25 }, +}); +``` + +`predict: true` is shorthand for the defaults. It is **off** unless you ask for it. + +Unlike mosh, this does not guess whether the far end echoes — it requires proof. Predictions run only inside a shell-integration readline region (OSC 133/633 `B` seen, `C` not yet), so an uninstrumented shell, a `sh` session, and every full-screen application predict nothing at all. Within that region only single-column printable ASCII is predicted, and backspace only un-types the engine's own predictions. Wide characters, combining marks, line wraps, paste, mouse input, control chords, and resize all drop the outstanding speculation rather than extend it, and any contradiction drops all of it. + +Display is adaptive. Predictions are recorded from the first keystroke but painted only once the smoothed round trip reaches `minLatencyMs` (default 25ms), so a local pty never shows one. Set `minLatencyMs: 0` to predict immediately. + +| Option | Default | Meaning | +| ---------------- | ------- | ---------------------------------------------------------- | +| `mode` | `off` | `off`, or `prompt` for the readline-region gate | +| `minLatencyMs` | `25` | Round trip below which predictions are recorded, not shown | +| `timeoutMs` | `1000` | Unconfirmed prediction lifetime | +| `underline` | `true` | Mark unconfirmed predictions as speculative | +| `maxPredictions` | `128` | Cap on outstanding predictions | + +Speculative glyphs render as `.clo-term-run.predicted` and are themed with `--clo-term-predicted-opacity` and `--clo-term-predicted-underline`. They never enter terminal state: `Terminal.text()`, snapshots, and the command model only ever describe what the pty actually sent. `view.predictions` exposes the engine for diagnostics, including the measured `latencyMs`. + +`PredictionEngine` is also exported standalone. It is pure — plain screen data in, an overlay out, time supplied as an argument — so a different renderer can reuse it. + +## Styling + +Set theme values on the mounted element or an ancestor: + +```css +.my-terminal { + --clo-term-bg: #11111b; + --clo-term-fg: #cdd6f4; + --clo-term-cursor: #f5e0dc; + --clo-term-font-size: 14px; + --clo-term-line-height: 1.35; + --clo-term-scrollbar-thumb: rgb(205 214 244 / 28%); +} +``` + +Call `handle.view.refreshMetrics()` after changing a loaded font family or metric-affecting CSS variable. + +## Security + +Links are inert unless `links.onActivate` is supplied. Clipboard writes are denied unless `onClipboardWrite` synchronously returns `true`; the package never reads the clipboard. The terminal performs no navigation, socket, pty, filesystem, Node, Electron, or VS Code work. diff --git a/packages/terminal/fonts/NOTICES.md b/packages/terminal/fonts/NOTICES.md new file mode 100644 index 0000000000000000000000000000000000000000..2ba632575246a82ee71f520fa35d8722d81ed5ec --- /dev/null +++ b/packages/terminal/fonts/NOTICES.md @@ -0,0 +1,58 @@ +# terminal symbol notices + +This file covers `__clo_terminal_symbols_3_4_0-Regular.woff2`, derived from +Symbols Nerd Font Mono v3.4.0 at Nerd Fonts commit +`fa7b859994228a9c8759f99c55a8d31ee92a1b5e`. + +## Modifications + +Nerd Fonts assembled and normalized the component glyphs into its monospaced +Symbols Only font. Clover selected the exact cmap listed in +`SYMBOLS-CODEPOINTS.txt`, removed standard Powerline and unlicensed Font Logos, +and converted the result to WOFF2 with fonttools. No retained outline was +intentionally edited. This notice records those modifications for CC BY 4.0 +and Apache 2.0 compliance. + +## Retained components + +| Codepoints | Component | Terms and attribution | +| ------------------------------------------------ | ------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `U+23FB-23FE`, `U+2B58` | IEC Power Symbols | Nerd Fonts audit: MIT; Nerd Fonts MIT notices | +| `U+2630`, `U+E0A3`, source cmap in `U+E0B4-E0D7` | Powerline Extra Symbols | MIT; copyright 2015 Ryan L McIntyre | +| `U+2665`, `U+26A1`, source cmap in `U+F400-F533` | Octicons | MIT; copyright 2023 GitHub Inc. | +| `U+276C-2771`, `U+EE00-EE0B` | Nerd Fonts heavy brackets and progress indicators | Nerd Fonts audit: MIT; copyright Ryan L McIntyre | +| `U+E000-E00A` | Pomicons | SIL OFL 1.1; copyright 2021 Gabriele Lana; Reserved Font Name Pomicons | +| `U+E200-E2A9` | Font Awesome Extension | MIT; copyright 2017 Andre Luiz Gava | +| `U+E300-E3E3` | Weather Icons | SIL OFL 1.1; designs by Lukas Bischoff, v1.1-forward art by Erik Flowers | +| source cmap in `U+E5FA-E6B8` | Seti-UI and Nerd Fonts custom icons | Nerd Fonts audit: MIT; Nerd Fonts MIT notices | +| source cmap in `U+E700-E8EF` | Devicons 2.16.0.custom | MIT; based on Devicons v2.16.0, copyright 2015 konpa | +| source cmap in `U+EA60-EC1E` | Codicons 0.0.35 | CC BY 4.0; Microsoft, source at `https://github.com/microsoft/vscode-codicons` | +| source cmap in `U+ED00-EFCE`, `U+F000-F2FF` | Font Awesome plus Nerd Fonts progress indicators | Font Awesome notice, SIL OFL 1.1 for its source font, and CC BY 4.0 for icons per the Nerd Fonts audit; copyright 2022 Fonticons, Inc. | +| `U+F0001-F1AF0` | Material Design Icons | Apache 2.0 for the desktop font; Pictogrammers notice; source at `https://github.com/Templarian/MaterialDesign-Font` | + +`U+F300-F381` is Font Logos, classified as unlicensed by the pinned Nerd Fonts +audit, and is not retained. Standard Powerline `U+E0A0-E0A2` and +`U+E0B0-E0B3` is also not retained. Accordingly, its separate Free License is +not a license of this subset. + +## Files + +- `licenses/NerdFonts-Symbols-Only-MIT.txt`: exact Symbols Only license. +- `licenses/NerdFonts-LICENSE.txt`: exact Nerd Fonts repository MIT/OFL text. +- `licenses/NerdFonts-license-audit.md`: exact pinned upstream license audit. +- `licenses/CC-BY-4.0.txt`: exact CC BY 4.0 legal code retained by Codicons. +- `licenses/Font-Awesome-LICENSE.txt`: exact Font Awesome notice and licenses. +- `licenses/Material-Design-Icons-NOTICE.txt`: exact Pictogrammers notice. +- `licenses/Apache-2.0.txt`: Apache License 2.0 text linked by that notice. +- `licenses/Pomicons-OFL.txt`: exact Pomicons copyright and OFL 1.1. +- `licenses/Weather-Icons-OFL.txt`: exact Weather Icons OFL 1.1 file retained by Nerd Fonts. +- `licenses/Octicons-MIT.txt`: exact Octicons MIT notice retained by Nerd Fonts. +- `licenses/Powerline-Extra-MIT.txt`: exact Powerline Extra MIT notice retained by Nerd Fonts. +- `licenses/Devicons-MIT.txt`: Devicons v2.16.0 MIT notice at commit `6910f0503efdd315c8f9b858234310c06e04d9c0`. +- `licenses/Font-Awesome-Extension-MIT.txt`: upstream MIT notice at commit `09d80249058ee8018a45da30add4339289dbb466`. + +The source Weather Icons TTF is byte-identical to upstream git blob +`948f0a5d26e899539e7821aa5a500932f76ba582`; its metadata names Erik Flowers +and Lukas Bischoff. The retained Nerd Fonts source README identifies Devicons +as `2.16.0.custom` and Codicons as `0.0.35`. These facts close attribution that +is abbreviated in the component license text. diff --git a/packages/terminal/fonts/OFL.txt b/packages/terminal/fonts/OFL.txt new file mode 100644 index 0000000000000000000000000000000000000000..a6234602b285cb351feaa2a3abd5c5f5797dba98 --- /dev/null +++ b/packages/terminal/fonts/OFL.txt @@ -0,0 +1,110 @@ +Copyright (c) 2015-2026, Renzhi Li (aka. Belleve Invis, belleve@typeof.net) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. + +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +-------------------------- + + +SIL Open Font License v1.1 +==================================================== + + +Preamble +---------- + +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + + +Definitions +------------- + +`"Font Software"` refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +`"Reserved Font Name"` refers to any names specified as such after the +copyright statement(s). + +`"Original Version"` refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +`"Modified Version"` refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +`"Author"` refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + + +Permission & Conditions +------------------------ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1. Neither the Font Software nor any of its individual components, + in Original or Modified Versions, may be sold by itself. + +2. Original or Modified Versions of the Font Software may be bundled, + redistributed and/or sold with any software, provided that each copy + contains the above copyright notice and this license. These can be + included either as stand-alone text files, human-readable headers or + in the appropriate machine-readable metadata fields within text or + binary files as long as those fields can be easily viewed by the user. + +3. No Modified Version of the Font Software may use the Reserved Font + Name(s) unless explicit written permission is granted by the corresponding + Copyright Holder. This restriction only applies to the primary font name as + presented to the users. + +4. The name(s) of the Copyright Holder(s) or the Author(s) of the Font + Software shall not be used to promote, endorse or advertise any + Modified Version, except to acknowledge the contribution(s) of the + Copyright Holder(s) and the Author(s) or with their explicit written + permission. + +5. The Font Software, modified or unmodified, in part or in whole, + must be distributed entirely under this license, and must not be + distributed under any other license. The requirement for fonts to + remain under this license does not apply to any document created + using the Font Software. + + + +Termination +----------- + +This license becomes null and void if any of the above conditions are +not met. + + + DISCLAIMER + + THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT + OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE + COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL + DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM + OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/packages/terminal/fonts/PRIMARY-CODEPOINTS.txt b/packages/terminal/fonts/PRIMARY-CODEPOINTS.txt new file mode 100644 index 0000000000000000000000000000000000000000..e93563d4911a5666df9d29c7c82c2420a7212fe8 --- /dev/null +++ b/packages/terminal/fonts/PRIMARY-CODEPOINTS.txt @@ -0,0 +1,4660 @@ +U+000D +U+0020 +U+0021 +U+0022 +U+0023 +U+0024 +U+0025 +U+0026 +U+0027 +U+0028 +U+0029 +U+002A +U+002B +U+002C +U+002D +U+002E +U+002F +U+0030 +U+0031 +U+0032 +U+0033 +U+0034 +U+0035 +U+0036 +U+0037 +U+0038 +U+0039 +U+003A +U+003B +U+003C +U+003D +U+003E +U+003F +U+0040 +U+0041 +U+0042 +U+0043 +U+0044 +U+0045 +U+0046 +U+0047 +U+0048 +U+0049 +U+004A +U+004B +U+004C +U+004D +U+004E +U+004F +U+0050 +U+0051 +U+0052 +U+0053 +U+0054 +U+0055 +U+0056 +U+0057 +U+0058 +U+0059 +U+005A +U+005B +U+005C +U+005D +U+005E +U+005F +U+0060 +U+0061 +U+0062 +U+0063 +U+0064 +U+0065 +U+0066 +U+0067 +U+0068 +U+0069 +U+006A +U+006B +U+006C +U+006D +U+006E +U+006F +U+0070 +U+0071 +U+0072 +U+0073 +U+0074 +U+0075 +U+0076 +U+0077 +U+0078 +U+0079 +U+007A +U+007B +U+007C +U+007D +U+007E +U+00A0 +U+00A1 +U+00A2 +U+00A3 +U+00A4 +U+00A5 +U+00A6 +U+00A7 +U+00A8 +U+00A9 +U+00AA +U+00AB +U+00AC +U+00AD +U+00AE +U+00AF +U+00B0 +U+00B1 +U+00B2 +U+00B3 +U+00B4 +U+00B5 +U+00B6 +U+00B7 +U+00B8 +U+00B9 +U+00BA +U+00BB +U+00BC +U+00BD +U+00BE +U+00BF +U+00C0 +U+00C1 +U+00C2 +U+00C3 +U+00C4 +U+00C5 +U+00C6 +U+00C7 +U+00C8 +U+00C9 +U+00CA +U+00CB +U+00CC +U+00CD +U+00CE +U+00CF +U+00D0 +U+00D1 +U+00D2 +U+00D3 +U+00D4 +U+00D5 +U+00D6 +U+00D7 +U+00D8 +U+00D9 +U+00DA +U+00DB +U+00DC +U+00DD +U+00DE +U+00DF +U+00E0 +U+00E1 +U+00E2 +U+00E3 +U+00E4 +U+00E5 +U+00E6 +U+00E7 +U+00E8 +U+00E9 +U+00EA +U+00EB +U+00EC +U+00ED +U+00EE +U+00EF +U+00F0 +U+00F1 +U+00F2 +U+00F3 +U+00F4 +U+00F5 +U+00F6 +U+00F7 +U+00F8 +U+00F9 +U+00FA +U+00FB +U+00FC +U+00FD +U+00FE +U+00FF +U+0100 +U+0101 +U+0102 +U+0103 +U+0104 +U+0105 +U+0106 +U+0107 +U+0108 +U+0109 +U+010A +U+010B +U+010C +U+010D +U+010E +U+010F +U+0110 +U+0111 +U+0112 +U+0113 +U+0114 +U+0115 +U+0116 +U+0117 +U+0118 +U+0119 +U+011A +U+011B +U+011C +U+011D +U+011E +U+011F +U+0120 +U+0121 +U+0122 +U+0123 +U+0124 +U+0125 +U+0126 +U+0127 +U+0128 +U+0129 +U+012A +U+012B +U+012C +U+012D +U+012E +U+012F +U+0130 +U+0131 +U+0132 +U+0133 +U+0134 +U+0135 +U+0136 +U+0137 +U+0138 +U+0139 +U+013A +U+013B +U+013C +U+013D +U+013E +U+013F +U+0140 +U+0141 +U+0142 +U+0143 +U+0144 +U+0145 +U+0146 +U+0147 +U+0148 +U+0149 +U+014A +U+014B +U+014C +U+014D +U+014E +U+014F +U+0150 +U+0151 +U+0152 +U+0153 +U+0154 +U+0155 +U+0156 +U+0157 +U+0158 +U+0159 +U+015A +U+015B +U+015C +U+015D +U+015E +U+015F +U+0160 +U+0161 +U+0162 +U+0163 +U+0164 +U+0165 +U+0166 +U+0167 +U+0168 +U+0169 +U+016A +U+016B +U+016C +U+016D +U+016E +U+016F +U+0170 +U+0171 +U+0172 +U+0173 +U+0174 +U+0175 +U+0176 +U+0177 +U+0178 +U+0179 +U+017A +U+017B +U+017C +U+017D +U+017E +U+017F +U+0180 +U+0181 +U+0182 +U+0183 +U+0184 +U+0185 +U+0186 +U+0187 +U+0188 +U+0189 +U+018A +U+018B +U+018C +U+018D +U+018E +U+018F +U+0190 +U+0191 +U+0192 +U+0193 +U+0194 +U+0195 +U+0196 +U+0197 +U+0198 +U+0199 +U+019A +U+019B +U+019C +U+019D +U+019E +U+019F +U+01A0 +U+01A1 +U+01A2 +U+01A3 +U+01A4 +U+01A5 +U+01A6 +U+01A7 +U+01A8 +U+01A9 +U+01AA +U+01AB +U+01AC +U+01AD +U+01AE +U+01AF +U+01B0 +U+01B1 +U+01B2 +U+01B3 +U+01B4 +U+01B5 +U+01B6 +U+01B7 +U+01B8 +U+01B9 +U+01BA +U+01BB +U+01BC +U+01BD +U+01BE +U+01BF +U+01C0 +U+01C1 +U+01C2 +U+01C3 +U+01C4 +U+01C5 +U+01C6 +U+01C7 +U+01C8 +U+01C9 +U+01CA +U+01CB +U+01CC +U+01CD +U+01CE +U+01CF +U+01D0 +U+01D1 +U+01D2 +U+01D3 +U+01D4 +U+01D5 +U+01D6 +U+01D7 +U+01D8 +U+01D9 +U+01DA +U+01DB +U+01DC +U+01DD +U+01DE +U+01DF +U+01E0 +U+01E1 +U+01E2 +U+01E3 +U+01E4 +U+01E5 +U+01E6 +U+01E7 +U+01E8 +U+01E9 +U+01EA +U+01EB +U+01EC +U+01ED +U+01EE +U+01EF +U+01F0 +U+01F1 +U+01F2 +U+01F3 +U+01F4 +U+01F5 +U+01F6 +U+01F7 +U+01F8 +U+01F9 +U+01FA +U+01FB +U+01FC +U+01FD +U+01FE +U+01FF +U+0200 +U+0201 +U+0202 +U+0203 +U+0204 +U+0205 +U+0206 +U+0207 +U+0208 +U+0209 +U+020A +U+020B +U+020C +U+020D +U+020E +U+020F +U+0210 +U+0211 +U+0212 +U+0213 +U+0214 +U+0215 +U+0216 +U+0217 +U+0218 +U+0219 +U+021A +U+021B +U+021C +U+021D +U+021E +U+021F +U+0220 +U+0221 +U+0222 +U+0223 +U+0224 +U+0225 +U+0226 +U+0227 +U+0228 +U+0229 +U+022A +U+022B +U+022C +U+022D +U+022E +U+022F +U+0230 +U+0231 +U+0232 +U+0233 +U+0234 +U+0235 +U+0236 +U+0237 +U+0238 +U+0239 +U+023A +U+023B +U+023C +U+023D +U+023E +U+023F +U+0240 +U+0241 +U+0242 +U+0243 +U+0244 +U+0245 +U+0246 +U+0247 +U+0248 +U+0249 +U+024A +U+024B +U+024C +U+024D +U+024E +U+024F +U+0250 +U+0251 +U+0252 +U+0253 +U+0254 +U+0255 +U+0256 +U+0257 +U+0258 +U+0259 +U+025A +U+025B +U+025C +U+025D +U+025E +U+025F +U+0260 +U+0261 +U+0262 +U+0263 +U+0264 +U+0265 +U+0266 +U+0267 +U+0268 +U+0269 +U+026A +U+026B +U+026C +U+026D +U+026E +U+026F +U+0270 +U+0271 +U+0272 +U+0273 +U+0274 +U+0275 +U+0276 +U+0277 +U+0278 +U+0279 +U+027A +U+027B +U+027C +U+027D +U+027E +U+027F +U+0280 +U+0281 +U+0282 +U+0283 +U+0284 +U+0285 +U+0286 +U+0287 +U+0288 +U+0289 +U+028A +U+028B +U+028C +U+028D +U+028E +U+028F +U+0290 +U+0291 +U+0292 +U+0293 +U+0294 +U+0295 +U+0296 +U+0297 +U+0298 +U+0299 +U+029A +U+029B +U+029C +U+029D +U+029E +U+029F +U+02A0 +U+02A1 +U+02A2 +U+02A3 +U+02A4 +U+02A5 +U+02A6 +U+02A7 +U+02A8 +U+02A9 +U+02AA +U+02AB +U+02AC +U+02AD +U+02AE +U+02AF +U+02B0 +U+02B1 +U+02B2 +U+02B3 +U+02B4 +U+02B5 +U+02B6 +U+02B7 +U+02B8 +U+02B9 +U+02BA +U+02BB +U+02BC +U+02BD +U+02BE +U+02BF +U+02C0 +U+02C1 +U+02C2 +U+02C3 +U+02C4 +U+02C5 +U+02C6 +U+02C7 +U+02C8 +U+02C9 +U+02CA +U+02CB +U+02CC +U+02CD +U+02CE +U+02CF +U+02D0 +U+02D1 +U+02D2 +U+02D3 +U+02D4 +U+02D5 +U+02D6 +U+02D7 +U+02D8 +U+02D9 +U+02DA +U+02DB +U+02DC +U+02DD +U+02DE +U+02DF +U+02E0 +U+02E1 +U+02E2 +U+02E3 +U+02E4 +U+02E5 +U+02E6 +U+02E7 +U+02E8 +U+02E9 +U+02EA +U+02EB +U+02EC +U+02ED +U+02EE +U+02EF +U+02F0 +U+02F1 +U+02F2 +U+02F3 +U+02F4 +U+02F5 +U+02F6 +U+02F7 +U+02F8 +U+02F9 +U+02FA +U+02FB +U+02FC +U+02FD +U+02FE +U+02FF +U+0300 +U+0301 +U+0302 +U+0303 +U+0304 +U+0305 +U+0306 +U+0307 +U+0308 +U+0309 +U+030A +U+030B +U+030C +U+030D +U+030E +U+030F +U+0310 +U+0311 +U+0312 +U+0313 +U+0314 +U+0315 +U+0316 +U+0317 +U+0318 +U+0319 +U+031A +U+031B +U+031C +U+031D +U+031E +U+031F +U+0320 +U+0321 +U+0322 +U+0323 +U+0324 +U+0325 +U+0326 +U+0327 +U+0328 +U+0329 +U+032A +U+032B +U+032C +U+032D +U+032E +U+032F +U+0330 +U+0331 +U+0332 +U+0333 +U+0334 +U+0335 +U+0336 +U+0337 +U+0338 +U+0339 +U+033A +U+033B +U+033C +U+033D +U+033E +U+033F +U+0340 +U+0341 +U+0342 +U+0343 +U+0344 +U+0345 +U+0346 +U+0347 +U+0348 +U+0349 +U+034A +U+034B +U+034C +U+034D +U+034E +U+034F +U+0350 +U+0351 +U+0352 +U+0353 +U+0354 +U+0355 +U+0356 +U+0357 +U+0358 +U+0359 +U+035A +U+035B +U+035C +U+035D +U+035E +U+035F +U+0360 +U+0361 +U+0362 +U+0363 +U+0364 +U+0365 +U+0366 +U+0367 +U+0368 +U+0369 +U+036A +U+036B +U+036C +U+036D +U+036E +U+036F +U+0370 +U+0371 +U+0372 +U+0373 +U+0374 +U+0375 +U+0376 +U+0377 +U+037A +U+037B +U+037C +U+037D +U+037E +U+037F +U+0384 +U+0385 +U+0386 +U+0387 +U+0388 +U+0389 +U+038A +U+038C +U+038E +U+038F +U+0390 +U+0391 +U+0392 +U+0393 +U+0394 +U+0395 +U+0396 +U+0397 +U+0398 +U+0399 +U+039A +U+039B +U+039C +U+039D +U+039E +U+039F +U+03A0 +U+03A1 +U+03A3 +U+03A4 +U+03A5 +U+03A6 +U+03A7 +U+03A8 +U+03A9 +U+03AA +U+03AB +U+03AC +U+03AD +U+03AE +U+03AF +U+03B0 +U+03B1 +U+03B2 +U+03B3 +U+03B4 +U+03B5 +U+03B6 +U+03B7 +U+03B8 +U+03B9 +U+03BA +U+03BB +U+03BC +U+03BD +U+03BE +U+03BF +U+03C0 +U+03C1 +U+03C2 +U+03C3 +U+03C4 +U+03C5 +U+03C6 +U+03C7 +U+03C8 +U+03C9 +U+03CA +U+03CB +U+03CC +U+03CD +U+03CE +U+03CF +U+03D0 +U+03D1 +U+03D2 +U+03D3 +U+03D4 +U+03D5 +U+03D6 +U+03D7 +U+03D8 +U+03D9 +U+03DA +U+03DB +U+03DC +U+03DD +U+03DE +U+03DF +U+03E0 +U+03E1 +U+03F0 +U+03F1 +U+03F2 +U+03F3 +U+03F4 +U+03F5 +U+03F6 +U+03F7 +U+03F8 +U+03F9 +U+03FA +U+03FB +U+03FC +U+03FD +U+03FE +U+03FF +U+0400 +U+0401 +U+0402 +U+0403 +U+0404 +U+0405 +U+0406 +U+0407 +U+0408 +U+0409 +U+040A +U+040B +U+040C +U+040D +U+040E +U+040F +U+0410 +U+0411 +U+0412 +U+0413 +U+0414 +U+0415 +U+0416 +U+0417 +U+0418 +U+0419 +U+041A +U+041B +U+041C +U+041D +U+041E +U+041F +U+0420 +U+0421 +U+0422 +U+0423 +U+0424 +U+0425 +U+0426 +U+0427 +U+0428 +U+0429 +U+042A +U+042B +U+042C +U+042D +U+042E +U+042F +U+0430 +U+0431 +U+0432 +U+0433 +U+0434 +U+0435 +U+0436 +U+0437 +U+0438 +U+0439 +U+043A +U+043B +U+043C +U+043D +U+043E +U+043F +U+0440 +U+0441 +U+0442 +U+0443 +U+0444 +U+0445 +U+0446 +U+0447 +U+0448 +U+0449 +U+044A +U+044B +U+044C +U+044D +U+044E +U+044F +U+0450 +U+0451 +U+0452 +U+0453 +U+0454 +U+0455 +U+0456 +U+0457 +U+0458 +U+0459 +U+045A +U+045B +U+045C +U+045D +U+045E +U+045F +U+0460 +U+0461 +U+0462 +U+0463 +U+0464 +U+0465 +U+0466 +U+0467 +U+0468 +U+0469 +U+046A +U+046B +U+046C +U+046D +U+046E +U+046F +U+0470 +U+0471 +U+0472 +U+0473 +U+0474 +U+0475 +U+0476 +U+0477 +U+0478 +U+0479 +U+047A +U+047B +U+047C +U+047D +U+047E +U+047F +U+0480 +U+0481 +U+0482 +U+0483 +U+0484 +U+0485 +U+0486 +U+0487 +U+0488 +U+0489 +U+048A +U+048B +U+048C +U+048D +U+048E +U+048F +U+0490 +U+0491 +U+0492 +U+0493 +U+0494 +U+0495 +U+0496 +U+0497 +U+0498 +U+0499 +U+049A +U+049B +U+049C +U+049D +U+049E +U+049F +U+04A0 +U+04A1 +U+04A2 +U+04A3 +U+04A4 +U+04A5 +U+04A6 +U+04A7 +U+04A8 +U+04A9 +U+04AA +U+04AB +U+04AC +U+04AD +U+04AE +U+04AF +U+04B0 +U+04B1 +U+04B2 +U+04B3 +U+04B4 +U+04B5 +U+04B6 +U+04B7 +U+04B8 +U+04B9 +U+04BA +U+04BB +U+04BC +U+04BD +U+04BE +U+04BF +U+04C0 +U+04C1 +U+04C2 +U+04C3 +U+04C4 +U+04C5 +U+04C6 +U+04C7 +U+04C8 +U+04C9 +U+04CA +U+04CB +U+04CC +U+04CD +U+04CE +U+04CF +U+04D0 +U+04D1 +U+04D2 +U+04D3 +U+04D4 +U+04D5 +U+04D6 +U+04D7 +U+04D8 +U+04D9 +U+04DA +U+04DB +U+04DC +U+04DD +U+04DE +U+04DF +U+04E0 +U+04E1 +U+04E2 +U+04E3 +U+04E4 +U+04E5 +U+04E6 +U+04E7 +U+04E8 +U+04E9 +U+04EA +U+04EB +U+04EC +U+04ED +U+04EE +U+04EF +U+04F0 +U+04F1 +U+04F2 +U+04F3 +U+04F4 +U+04F5 +U+04F6 +U+04F7 +U+04F8 +U+04F9 +U+04FA +U+04FB +U+04FC +U+04FD +U+04FE +U+04FF +U+0500 +U+0501 +U+0502 +U+0503 +U+0504 +U+0505 +U+0506 +U+0507 +U+0508 +U+0509 +U+050A +U+050B +U+050C +U+050D +U+050E +U+050F +U+0510 +U+0511 +U+0512 +U+0513 +U+0514 +U+0515 +U+0516 +U+0517 +U+0518 +U+0519 +U+051A +U+051B +U+051C +U+051D +U+051E +U+051F +U+0520 +U+0521 +U+0522 +U+0523 +U+0524 +U+0525 +U+0526 +U+0527 +U+0528 +U+0529 +U+052A +U+052B +U+052C +U+052D +U+052E +U+052F +U+0531 +U+0532 +U+0533 +U+0534 +U+0535 +U+0536 +U+0537 +U+0538 +U+0539 +U+053A +U+053B +U+053C +U+053D +U+053E +U+053F +U+0540 +U+0541 +U+0542 +U+0543 +U+0544 +U+0545 +U+0546 +U+0547 +U+0548 +U+0549 +U+054A +U+054B +U+054C +U+054D +U+054E +U+054F +U+0550 +U+0551 +U+0552 +U+0553 +U+0554 +U+0555 +U+0556 +U+0559 +U+055A +U+055B +U+055C +U+055D +U+055E +U+055F +U+0560 +U+0561 +U+0562 +U+0563 +U+0564 +U+0565 +U+0566 +U+0567 +U+0568 +U+0569 +U+056A +U+056B +U+056C +U+056D +U+056E +U+056F +U+0570 +U+0571 +U+0572 +U+0573 +U+0574 +U+0575 +U+0576 +U+0577 +U+0578 +U+0579 +U+057A +U+057B +U+057C +U+057D +U+057E +U+057F +U+0580 +U+0581 +U+0582 +U+0583 +U+0584 +U+0585 +U+0586 +U+0587 +U+0588 +U+0589 +U+058A +U+058D +U+058E +U+058F +U+0E3F +U+10FB +U+1AB0 +U+1AB1 +U+1AB2 +U+1AB3 +U+1AB4 +U+1AB5 +U+1AB7 +U+1AB8 +U+1ABB +U+1ABC +U+1ABD +U+1ABF +U+1AC0 +U+1AC1 +U+1AC2 +U+1AC3 +U+1AC4 +U+1AC5 +U+1AC6 +U+1AC7 +U+1AC8 +U+1AC9 +U+1ACA +U+1ACB +U+1ACC +U+1ACD +U+1ACE +U+1ACF +U+1AD9 +U+1ADA +U+1ADB +U+1ADC +U+1ADD +U+1AE0 +U+1AE1 +U+1AE2 +U+1AE3 +U+1AE4 +U+1AE5 +U+1AE6 +U+1AE7 +U+1AE8 +U+1AE9 +U+1AEA +U+1AEB +U+1C80 +U+1C81 +U+1C82 +U+1C83 +U+1C84 +U+1C85 +U+1C86 +U+1C87 +U+1C88 +U+1C89 +U+1C8A +U+1D00 +U+1D01 +U+1D02 +U+1D03 +U+1D04 +U+1D05 +U+1D06 +U+1D07 +U+1D08 +U+1D09 +U+1D0A +U+1D0B +U+1D0C +U+1D0D +U+1D0E +U+1D0F +U+1D10 +U+1D11 +U+1D12 +U+1D13 +U+1D14 +U+1D15 +U+1D16 +U+1D17 +U+1D18 +U+1D19 +U+1D1A +U+1D1B +U+1D1C +U+1D1D +U+1D1E +U+1D1F +U+1D20 +U+1D21 +U+1D22 +U+1D23 +U+1D24 +U+1D25 +U+1D26 +U+1D27 +U+1D28 +U+1D29 +U+1D2A +U+1D2B +U+1D2C +U+1D2D +U+1D2E +U+1D2F +U+1D30 +U+1D31 +U+1D32 +U+1D33 +U+1D34 +U+1D35 +U+1D36 +U+1D37 +U+1D38 +U+1D39 +U+1D3A +U+1D3B +U+1D3C +U+1D3D +U+1D3E +U+1D3F +U+1D40 +U+1D41 +U+1D42 +U+1D43 +U+1D44 +U+1D45 +U+1D46 +U+1D47 +U+1D48 +U+1D49 +U+1D4A +U+1D4B +U+1D4C +U+1D4D +U+1D4E +U+1D4F +U+1D50 +U+1D51 +U+1D52 +U+1D53 +U+1D54 +U+1D55 +U+1D56 +U+1D57 +U+1D58 +U+1D59 +U+1D5A +U+1D5B +U+1D5C +U+1D5D +U+1D5E +U+1D5F +U+1D60 +U+1D61 +U+1D62 +U+1D63 +U+1D64 +U+1D65 +U+1D66 +U+1D67 +U+1D68 +U+1D69 +U+1D6A +U+1D6B +U+1D6C +U+1D6D +U+1D6E +U+1D6F +U+1D70 +U+1D71 +U+1D72 +U+1D73 +U+1D74 +U+1D75 +U+1D76 +U+1D77 +U+1D78 +U+1D79 +U+1D7A +U+1D7B +U+1D7C +U+1D7D +U+1D7E +U+1D7F +U+1D80 +U+1D81 +U+1D82 +U+1D83 +U+1D84 +U+1D85 +U+1D86 +U+1D87 +U+1D88 +U+1D89 +U+1D8A +U+1D8B +U+1D8C +U+1D8D +U+1D8E +U+1D8F +U+1D90 +U+1D91 +U+1D92 +U+1D93 +U+1D94 +U+1D95 +U+1D96 +U+1D97 +U+1D98 +U+1D99 +U+1D9A +U+1D9B +U+1D9C +U+1D9D +U+1D9E +U+1D9F +U+1DA0 +U+1DA1 +U+1DA2 +U+1DA3 +U+1DA4 +U+1DA5 +U+1DA6 +U+1DA7 +U+1DA8 +U+1DA9 +U+1DAA +U+1DAB +U+1DAC +U+1DAD +U+1DAE +U+1DAF +U+1DB0 +U+1DB1 +U+1DB2 +U+1DB3 +U+1DB4 +U+1DB5 +U+1DB6 +U+1DB7 +U+1DB8 +U+1DB9 +U+1DBA +U+1DBB +U+1DBC +U+1DBD +U+1DBE +U+1DBF +U+1DC3 +U+1DC4 +U+1DC5 +U+1DC6 +U+1DC7 +U+1DCA +U+1DCB +U+1DCC +U+1DCD +U+1DCE +U+1DCF +U+1DD3 +U+1DD4 +U+1DD5 +U+1DD7 +U+1DD8 +U+1DD9 +U+1DDA +U+1DDB +U+1DDC +U+1DDD +U+1DDE +U+1DDF +U+1DE0 +U+1DE1 +U+1DE2 +U+1DE3 +U+1DE4 +U+1DE5 +U+1DE6 +U+1DE7 +U+1DE8 +U+1DE9 +U+1DEA +U+1DEB +U+1DEC +U+1DED +U+1DEE +U+1DEF +U+1DF0 +U+1DF1 +U+1DF2 +U+1DF3 +U+1DF4 +U+1DF5 +U+1DF6 +U+1DF7 +U+1DF8 +U+1DF9 +U+1DFA +U+1DFB +U+1DFC +U+1DFD +U+1DFE +U+1DFF +U+1E00 +U+1E01 +U+1E02 +U+1E03 +U+1E04 +U+1E05 +U+1E06 +U+1E07 +U+1E08 +U+1E09 +U+1E0A +U+1E0B +U+1E0C +U+1E0D +U+1E0E +U+1E0F +U+1E10 +U+1E11 +U+1E12 +U+1E13 +U+1E14 +U+1E15 +U+1E16 +U+1E17 +U+1E18 +U+1E19 +U+1E1A +U+1E1B +U+1E1C +U+1E1D +U+1E1E +U+1E1F +U+1E20 +U+1E21 +U+1E22 +U+1E23 +U+1E24 +U+1E25 +U+1E26 +U+1E27 +U+1E28 +U+1E29 +U+1E2A +U+1E2B +U+1E2C +U+1E2D +U+1E2E +U+1E2F +U+1E30 +U+1E31 +U+1E32 +U+1E33 +U+1E34 +U+1E35 +U+1E36 +U+1E37 +U+1E38 +U+1E39 +U+1E3A +U+1E3B +U+1E3C +U+1E3D +U+1E3E +U+1E3F +U+1E40 +U+1E41 +U+1E42 +U+1E43 +U+1E44 +U+1E45 +U+1E46 +U+1E47 +U+1E48 +U+1E49 +U+1E4A +U+1E4B +U+1E4C +U+1E4D +U+1E4E +U+1E4F +U+1E50 +U+1E51 +U+1E52 +U+1E53 +U+1E54 +U+1E55 +U+1E56 +U+1E57 +U+1E58 +U+1E59 +U+1E5A +U+1E5B +U+1E5C +U+1E5D +U+1E5E +U+1E5F +U+1E60 +U+1E61 +U+1E62 +U+1E63 +U+1E64 +U+1E65 +U+1E66 +U+1E67 +U+1E68 +U+1E69 +U+1E6A +U+1E6B +U+1E6C +U+1E6D +U+1E6E +U+1E6F +U+1E70 +U+1E71 +U+1E72 +U+1E73 +U+1E74 +U+1E75 +U+1E76 +U+1E77 +U+1E78 +U+1E79 +U+1E7A +U+1E7B +U+1E7C +U+1E7D +U+1E7E +U+1E7F +U+1E80 +U+1E81 +U+1E82 +U+1E83 +U+1E84 +U+1E85 +U+1E86 +U+1E87 +U+1E88 +U+1E89 +U+1E8A +U+1E8B +U+1E8C +U+1E8D +U+1E8E +U+1E8F +U+1E90 +U+1E91 +U+1E92 +U+1E93 +U+1E94 +U+1E95 +U+1E96 +U+1E97 +U+1E98 +U+1E99 +U+1E9A +U+1E9B +U+1E9C +U+1E9D +U+1E9E +U+1E9F +U+1EA0 +U+1EA1 +U+1EA2 +U+1EA3 +U+1EA4 +U+1EA5 +U+1EA6 +U+1EA7 +U+1EA8 +U+1EA9 +U+1EAA +U+1EAB +U+1EAC +U+1EAD +U+1EAE +U+1EAF +U+1EB0 +U+1EB1 +U+1EB2 +U+1EB3 +U+1EB4 +U+1EB5 +U+1EB6 +U+1EB7 +U+1EB8 +U+1EB9 +U+1EBA +U+1EBB +U+1EBC +U+1EBD +U+1EBE +U+1EBF +U+1EC0 +U+1EC1 +U+1EC2 +U+1EC3 +U+1EC4 +U+1EC5 +U+1EC6 +U+1EC7 +U+1EC8 +U+1EC9 +U+1ECA +U+1ECB +U+1ECC +U+1ECD +U+1ECE +U+1ECF +U+1ED0 +U+1ED1 +U+1ED2 +U+1ED3 +U+1ED4 +U+1ED5 +U+1ED6 +U+1ED7 +U+1ED8 +U+1ED9 +U+1EDA +U+1EDB +U+1EDC +U+1EDD +U+1EDE +U+1EDF +U+1EE0 +U+1EE1 +U+1EE2 +U+1EE3 +U+1EE4 +U+1EE5 +U+1EE6 +U+1EE7 +U+1EE8 +U+1EE9 +U+1EEA +U+1EEB +U+1EEC +U+1EED +U+1EEE +U+1EEF +U+1EF0 +U+1EF1 +U+1EF2 +U+1EF3 +U+1EF4 +U+1EF5 +U+1EF6 +U+1EF7 +U+1EF8 +U+1EF9 +U+1EFA +U+1EFB +U+1EFC +U+1EFD +U+1EFE +U+1EFF +U+1F00 +U+1F01 +U+1F02 +U+1F03 +U+1F04 +U+1F05 +U+1F06 +U+1F07 +U+1F08 +U+1F09 +U+1F0A +U+1F0B +U+1F0C +U+1F0D +U+1F0E +U+1F0F +U+1F10 +U+1F11 +U+1F12 +U+1F13 +U+1F14 +U+1F15 +U+1F18 +U+1F19 +U+1F1A +U+1F1B +U+1F1C +U+1F1D +U+1F20 +U+1F21 +U+1F22 +U+1F23 +U+1F24 +U+1F25 +U+1F26 +U+1F27 +U+1F28 +U+1F29 +U+1F2A +U+1F2B +U+1F2C +U+1F2D +U+1F2E +U+1F2F +U+1F30 +U+1F31 +U+1F32 +U+1F33 +U+1F34 +U+1F35 +U+1F36 +U+1F37 +U+1F38 +U+1F39 +U+1F3A +U+1F3B +U+1F3C +U+1F3D +U+1F3E +U+1F3F +U+1F40 +U+1F41 +U+1F42 +U+1F43 +U+1F44 +U+1F45 +U+1F48 +U+1F49 +U+1F4A +U+1F4B +U+1F4C +U+1F4D +U+1F50 +U+1F51 +U+1F52 +U+1F53 +U+1F54 +U+1F55 +U+1F56 +U+1F57 +U+1F59 +U+1F5B +U+1F5D +U+1F5F +U+1F60 +U+1F61 +U+1F62 +U+1F63 +U+1F64 +U+1F65 +U+1F66 +U+1F67 +U+1F68 +U+1F69 +U+1F6A +U+1F6B +U+1F6C +U+1F6D +U+1F6E +U+1F6F +U+1F70 +U+1F71 +U+1F72 +U+1F73 +U+1F74 +U+1F75 +U+1F76 +U+1F77 +U+1F78 +U+1F79 +U+1F7A +U+1F7B +U+1F7C +U+1F7D +U+1F80 +U+1F81 +U+1F82 +U+1F83 +U+1F84 +U+1F85 +U+1F86 +U+1F87 +U+1F88 +U+1F89 +U+1F8A +U+1F8B +U+1F8C +U+1F8D +U+1F8E +U+1F8F +U+1F90 +U+1F91 +U+1F92 +U+1F93 +U+1F94 +U+1F95 +U+1F96 +U+1F97 +U+1F98 +U+1F99 +U+1F9A +U+1F9B +U+1F9C +U+1F9D +U+1F9E +U+1F9F +U+1FA0 +U+1FA1 +U+1FA2 +U+1FA3 +U+1FA4 +U+1FA5 +U+1FA6 +U+1FA7 +U+1FA8 +U+1FA9 +U+1FAA +U+1FAB +U+1FAC +U+1FAD +U+1FAE +U+1FAF +U+1FB0 +U+1FB1 +U+1FB2 +U+1FB3 +U+1FB4 +U+1FB6 +U+1FB7 +U+1FB8 +U+1FB9 +U+1FBA +U+1FBB +U+1FBC +U+1FBD +U+1FBE +U+1FBF +U+1FC0 +U+1FC1 +U+1FC2 +U+1FC3 +U+1FC4 +U+1FC6 +U+1FC7 +U+1FC8 +U+1FC9 +U+1FCA +U+1FCB +U+1FCC +U+1FCD +U+1FCE +U+1FCF +U+1FD0 +U+1FD1 +U+1FD2 +U+1FD3 +U+1FD6 +U+1FD7 +U+1FD8 +U+1FD9 +U+1FDA +U+1FDB +U+1FDD +U+1FDE +U+1FDF +U+1FE0 +U+1FE1 +U+1FE2 +U+1FE3 +U+1FE4 +U+1FE5 +U+1FE6 +U+1FE7 +U+1FE8 +U+1FE9 +U+1FEA +U+1FEB +U+1FEC +U+1FED +U+1FEE +U+1FEF +U+1FF2 +U+1FF3 +U+1FF4 +U+1FF6 +U+1FF7 +U+1FF8 +U+1FF9 +U+1FFA +U+1FFB +U+1FFC +U+1FFD +U+1FFE +U+2000 +U+2001 +U+2002 +U+2003 +U+2004 +U+2005 +U+2006 +U+2007 +U+2008 +U+2009 +U+200A +U+200B +U+200C +U+200D +U+2010 +U+2011 +U+2012 +U+2013 +U+2014 +U+2015 +U+2016 +U+2017 +U+2018 +U+2019 +U+201A +U+201B +U+201C +U+201D +U+201E +U+201F +U+2020 +U+2021 +U+2022 +U+2023 +U+2024 +U+2025 +U+2026 +U+2027 +U+2028 +U+2029 +U+202F +U+2030 +U+2031 +U+2032 +U+2033 +U+2034 +U+2035 +U+2036 +U+2037 +U+2038 +U+2039 +U+203A +U+203B +U+203C +U+203D +U+203E +U+203F +U+2040 +U+2041 +U+2042 +U+2043 +U+2044 +U+2045 +U+2046 +U+2047 +U+2048 +U+2049 +U+204A +U+204B +U+204C +U+204D +U+204E +U+204F +U+2050 +U+2051 +U+2052 +U+2053 +U+2054 +U+2055 +U+2056 +U+2057 +U+2058 +U+2059 +U+205A +U+205B +U+205C +U+205D +U+205E +U+205F +U+2060 +U+2061 +U+2062 +U+2063 +U+2064 +U+2070 +U+2071 +U+2074 +U+2075 +U+2076 +U+2077 +U+2078 +U+2079 +U+207A +U+207B +U+207C +U+207D +U+207E +U+207F +U+2080 +U+2081 +U+2082 +U+2083 +U+2084 +U+2085 +U+2086 +U+2087 +U+2088 +U+2089 +U+208A +U+208B +U+208C +U+208D +U+208E +U+2090 +U+2091 +U+2092 +U+2093 +U+2094 +U+2095 +U+2096 +U+2097 +U+2098 +U+2099 +U+209A +U+209B +U+209C +U+20A1 +U+20A3 +U+20A4 +U+20A5 +U+20A6 +U+20A7 +U+20A8 +U+20A9 +U+20AA +U+20AB +U+20AC +U+20AD +U+20AE +U+20AF +U+20B1 +U+20B2 +U+20B3 +U+20B4 +U+20B5 +U+20B8 +U+20B9 +U+20BA +U+20BC +U+20BD +U+20BE +U+20BF +U+20C0 +U+20D0 +U+20D1 +U+20D2 +U+20D3 +U+20D6 +U+20D7 +U+20D8 +U+20DB +U+20DC +U+20DD +U+20E1 +U+20E5 +U+20E6 +U+20E8 +U+20E9 +U+20EB +U+20EC +U+20ED +U+20EE +U+20EF +U+20F0 +U+2100 +U+2101 +U+2102 +U+2103 +U+2105 +U+2106 +U+2107 +U+2108 +U+2109 +U+210C +U+210D +U+210E +U+210F +U+2111 +U+2113 +U+2115 +U+2116 +U+2117 +U+2118 +U+2119 +U+211A +U+211C +U+211D +U+2120 +U+2121 +U+2122 +U+2124 +U+2126 +U+2127 +U+2128 +U+2129 +U+212A +U+212B +U+212D +U+212E +U+2132 +U+2135 +U+2136 +U+2137 +U+2138 +U+2139 +U+213A +U+213B +U+213C +U+213D +U+213E +U+213F +U+2140 +U+2141 +U+2142 +U+2143 +U+2144 +U+2145 +U+2146 +U+2147 +U+2148 +U+2149 +U+214B +U+214D +U+214E +U+214F +U+2150 +U+2151 +U+2152 +U+2153 +U+2154 +U+2155 +U+2156 +U+2157 +U+2158 +U+2159 +U+215A +U+215B +U+215C +U+215D +U+215E +U+215F +U+2160 +U+2161 +U+2162 +U+2163 +U+2164 +U+2165 +U+2166 +U+2167 +U+2168 +U+2169 +U+216A +U+216B +U+216C +U+216D +U+216E +U+216F +U+2170 +U+2171 +U+2172 +U+2173 +U+2174 +U+2175 +U+2176 +U+2177 +U+2178 +U+2179 +U+217A +U+217B +U+217C +U+217D +U+217E +U+217F +U+2180 +U+2181 +U+2182 +U+2183 +U+2184 +U+2185 +U+2186 +U+2187 +U+2188 +U+2189 +U+218A +U+218B +U+2190 +U+2191 +U+2192 +U+2193 +U+2194 +U+2195 +U+2196 +U+2197 +U+2198 +U+2199 +U+219A +U+219B +U+219C +U+219D +U+219E +U+219F +U+21A0 +U+21A1 +U+21A2 +U+21A3 +U+21A4 +U+21A5 +U+21A6 +U+21A7 +U+21A8 +U+21A9 +U+21AA +U+21AB +U+21AC +U+21AD +U+21AE +U+21AF +U+21B0 +U+21B1 +U+21B2 +U+21B3 +U+21B4 +U+21B5 +U+21B6 +U+21B7 +U+21B8 +U+21B9 +U+21BA +U+21BB +U+21BC +U+21BD +U+21BE +U+21BF +U+21C0 +U+21C1 +U+21C2 +U+21C3 +U+21C4 +U+21C5 +U+21C6 +U+21C7 +U+21C8 +U+21C9 +U+21CA +U+21CB +U+21CC +U+21CD +U+21CE +U+21CF +U+21D0 +U+21D1 +U+21D2 +U+21D3 +U+21D4 +U+21D5 +U+21D6 +U+21D7 +U+21D8 +U+21D9 +U+21DA +U+21DB +U+21DC +U+21DD +U+21DE +U+21DF +U+21E0 +U+21E1 +U+21E2 +U+21E3 +U+21E4 +U+21E5 +U+21E6 +U+21E7 +U+21E8 +U+21E9 +U+21EA +U+21EB +U+21EC +U+21ED +U+21EE +U+21EF +U+21F0 +U+21F1 +U+21F2 +U+21F3 +U+21F4 +U+21F5 +U+21F6 +U+21F7 +U+21F8 +U+21F9 +U+21FA +U+21FB +U+21FC +U+21FD +U+21FE +U+21FF +U+2200 +U+2201 +U+2202 +U+2203 +U+2204 +U+2205 +U+2206 +U+2207 +U+2208 +U+2209 +U+220A +U+220B +U+220C +U+220D +U+220E +U+220F +U+2210 +U+2211 +U+2212 +U+2213 +U+2214 +U+2215 +U+2216 +U+2217 +U+2218 +U+2219 +U+221A +U+221B +U+221C +U+221D +U+221E +U+221F +U+2220 +U+2221 +U+2222 +U+2223 +U+2224 +U+2225 +U+2226 +U+2227 +U+2228 +U+2229 +U+222A +U+222B +U+222C +U+222D +U+222E +U+222F +U+2230 +U+2231 +U+2232 +U+2233 +U+2234 +U+2235 +U+2236 +U+2237 +U+2238 +U+2239 +U+223A +U+223B +U+223C +U+223D +U+223E +U+223F +U+2240 +U+2241 +U+2242 +U+2243 +U+2244 +U+2245 +U+2246 +U+2247 +U+2248 +U+2249 +U+224A +U+224B +U+224C +U+224D +U+224E +U+224F +U+2250 +U+2251 +U+2252 +U+2253 +U+2254 +U+2255 +U+2256 +U+2257 +U+2258 +U+2259 +U+225A +U+225B +U+225C +U+225D +U+225E +U+225F +U+2260 +U+2261 +U+2262 +U+2263 +U+2264 +U+2265 +U+2266 +U+2267 +U+2268 +U+2269 +U+226A +U+226B +U+226C +U+226D +U+226E +U+226F +U+2270 +U+2271 +U+2272 +U+2273 +U+2274 +U+2275 +U+2276 +U+2277 +U+2278 +U+2279 +U+227A +U+227B +U+227C +U+227D +U+227E +U+227F +U+2280 +U+2281 +U+2282 +U+2283 +U+2284 +U+2285 +U+2286 +U+2287 +U+2288 +U+2289 +U+228A +U+228B +U+228C +U+228D +U+228E +U+228F +U+2290 +U+2291 +U+2292 +U+2293 +U+2294 +U+2295 +U+2296 +U+2297 +U+2298 +U+2299 +U+229A +U+229B +U+229C +U+229D +U+229E +U+229F +U+22A0 +U+22A1 +U+22A2 +U+22A3 +U+22A4 +U+22A5 +U+22A6 +U+22A7 +U+22A8 +U+22A9 +U+22AA +U+22AB +U+22AC +U+22AD +U+22AE +U+22AF +U+22B0 +U+22B1 +U+22B2 +U+22B3 +U+22B4 +U+22B5 +U+22B6 +U+22B7 +U+22B8 +U+22B9 +U+22BA +U+22BB +U+22BC +U+22BD +U+22BE +U+22BF +U+22C0 +U+22C1 +U+22C2 +U+22C3 +U+22C4 +U+22C5 +U+22C6 +U+22C7 +U+22C8 +U+22C9 +U+22CA +U+22CB +U+22CC +U+22CD +U+22CE +U+22CF +U+22D0 +U+22D1 +U+22D2 +U+22D3 +U+22D4 +U+22D5 +U+22D6 +U+22D7 +U+22D8 +U+22D9 +U+22DA +U+22DB +U+22DC +U+22DD +U+22DE +U+22DF +U+22E0 +U+22E1 +U+22E2 +U+22E3 +U+22E4 +U+22E5 +U+22E6 +U+22E7 +U+22E8 +U+22E9 +U+22EA +U+22EB +U+22EC +U+22ED +U+22EE +U+22EF +U+22F0 +U+22F1 +U+22F2 +U+22F3 +U+22F4 +U+22F5 +U+22F6 +U+22F7 +U+22F8 +U+22F9 +U+22FA +U+22FB +U+22FC +U+22FD +U+22FE +U+22FF +U+2300 +U+2301 +U+2302 +U+2303 +U+2304 +U+2305 +U+2306 +U+2307 +U+2308 +U+2309 +U+230A +U+230B +U+230C +U+230D +U+230E +U+230F +U+2310 +U+2311 +U+2312 +U+2313 +U+2314 +U+2315 +U+2316 +U+2317 +U+2318 +U+2319 +U+231A +U+231B +U+231C +U+231D +U+231E +U+231F +U+2320 +U+2321 +U+2322 +U+2323 +U+2324 +U+2325 +U+2326 +U+2327 +U+2328 +U+2329 +U+232A +U+232B +U+232D +U+232E +U+232F +U+2330 +U+2331 +U+2332 +U+2333 +U+2334 +U+2335 +U+2336 +U+2337 +U+2338 +U+2339 +U+233A +U+233B +U+233C +U+233D +U+233E +U+233F +U+2340 +U+2341 +U+2342 +U+2343 +U+2344 +U+2345 +U+2346 +U+2347 +U+2348 +U+2349 +U+234A +U+234B +U+234C +U+234D +U+234E +U+234F +U+2350 +U+2351 +U+2352 +U+2353 +U+2354 +U+2355 +U+2356 +U+2357 +U+2358 +U+2359 +U+235A +U+235B +U+235C +U+235D +U+235E +U+235F +U+2360 +U+2361 +U+2362 +U+2363 +U+2364 +U+2365 +U+2366 +U+2367 +U+2368 +U+2369 +U+236A +U+236B +U+236C +U+236D +U+236E +U+236F +U+2370 +U+2371 +U+2372 +U+2373 +U+2374 +U+2375 +U+2376 +U+2377 +U+2378 +U+2379 +U+237A +U+237B +U+237D +U+237E +U+237F +U+2380 +U+2381 +U+2382 +U+2383 +U+2384 +U+2385 +U+2386 +U+2387 +U+2388 +U+2389 +U+238A +U+238B +U+238D +U+2394 +U+2395 +U+239B +U+239C +U+239D +U+239E +U+239F +U+23A0 +U+23A1 +U+23A2 +U+23A3 +U+23A4 +U+23A5 +U+23A6 +U+23A7 +U+23A8 +U+23A9 +U+23AA +U+23AB +U+23AC +U+23AD +U+23AE +U+23B0 +U+23B1 +U+23B2 +U+23B3 +U+23B8 +U+23B9 +U+23BA +U+23BB +U+23BC +U+23BD +U+23BE +U+23BF +U+23C0 +U+23C1 +U+23C2 +U+23C3 +U+23C4 +U+23C5 +U+23C6 +U+23C7 +U+23C8 +U+23C9 +U+23CA +U+23CB +U+23CC +U+23CE +U+23CF +U+23DA +U+23DB +U+23E2 +U+23E4 +U+23E5 +U+23E8 +U+23E9 +U+23EA +U+23EB +U+23EC +U+23ED +U+23EE +U+23EF +U+23F0 +U+23F1 +U+23F2 +U+23F3 +U+23F4 +U+23F5 +U+23F6 +U+23F7 +U+23F8 +U+23F9 +U+23FA +U+23FB +U+23FC +U+23FD +U+23FE +U+23FF +U+2400 +U+2401 +U+2402 +U+2403 +U+2404 +U+2405 +U+2406 +U+2407 +U+2408 +U+2409 +U+240A +U+240B +U+240C +U+240D +U+240E +U+240F +U+2410 +U+2411 +U+2412 +U+2413 +U+2414 +U+2415 +U+2416 +U+2417 +U+2418 +U+2419 +U+241A +U+241B +U+241C +U+241D +U+241E +U+241F +U+2420 +U+2421 +U+2422 +U+2423 +U+2424 +U+2425 +U+2426 +U+2427 +U+2428 +U+2429 +U+2440 +U+2441 +U+2442 +U+2443 +U+2444 +U+2445 +U+2460 +U+2461 +U+2462 +U+2463 +U+2464 +U+2465 +U+2466 +U+2467 +U+2468 +U+2469 +U+246A +U+246B +U+246C +U+246D +U+246E +U+246F +U+2470 +U+2471 +U+2472 +U+2473 +U+2474 +U+2475 +U+2476 +U+2477 +U+2478 +U+2479 +U+247A +U+247B +U+247C +U+247D +U+247E +U+247F +U+2480 +U+2481 +U+2482 +U+2483 +U+2484 +U+2485 +U+2486 +U+2487 +U+2488 +U+2489 +U+248A +U+248B +U+248C +U+248D +U+248E +U+248F +U+2490 +U+2491 +U+2492 +U+2493 +U+2494 +U+2495 +U+2496 +U+2497 +U+2498 +U+2499 +U+249A +U+249B +U+249C +U+249D +U+249E +U+249F +U+24A0 +U+24A1 +U+24A2 +U+24A3 +U+24A4 +U+24A5 +U+24A6 +U+24A7 +U+24A8 +U+24A9 +U+24AA +U+24AB +U+24AC +U+24AD +U+24AE +U+24AF +U+24B0 +U+24B1 +U+24B2 +U+24B3 +U+24B4 +U+24B5 +U+24B6 +U+24B7 +U+24B8 +U+24B9 +U+24BA +U+24BB +U+24BC +U+24BD +U+24BE +U+24BF +U+24C0 +U+24C1 +U+24C2 +U+24C3 +U+24C4 +U+24C5 +U+24C6 +U+24C7 +U+24C8 +U+24C9 +U+24CA +U+24CB +U+24CC +U+24CD +U+24CE +U+24CF +U+24D0 +U+24D1 +U+24D2 +U+24D3 +U+24D4 +U+24D5 +U+24D6 +U+24D7 +U+24D8 +U+24D9 +U+24DA +U+24DB +U+24DC +U+24DD +U+24DE +U+24DF +U+24E0 +U+24E1 +U+24E2 +U+24E3 +U+24E4 +U+24E5 +U+24E6 +U+24E7 +U+24E8 +U+24E9 +U+24EA +U+24EB +U+24EC +U+24ED +U+24EE +U+24EF +U+24F0 +U+24F1 +U+24F2 +U+24F3 +U+24F4 +U+24F5 +U+24F6 +U+24F7 +U+24F8 +U+24F9 +U+24FA +U+24FB +U+24FC +U+24FD +U+24FE +U+24FF +U+2500 +U+2501 +U+2502 +U+2503 +U+2504 +U+2505 +U+2506 +U+2507 +U+2508 +U+2509 +U+250A +U+250B +U+250C +U+250D +U+250E +U+250F +U+2510 +U+2511 +U+2512 +U+2513 +U+2514 +U+2515 +U+2516 +U+2517 +U+2518 +U+2519 +U+251A +U+251B +U+251C +U+251D +U+251E +U+251F +U+2520 +U+2521 +U+2522 +U+2523 +U+2524 +U+2525 +U+2526 +U+2527 +U+2528 +U+2529 +U+252A +U+252B +U+252C +U+252D +U+252E +U+252F +U+2530 +U+2531 +U+2532 +U+2533 +U+2534 +U+2535 +U+2536 +U+2537 +U+2538 +U+2539 +U+253A +U+253B +U+253C +U+253D +U+253E +U+253F +U+2540 +U+2541 +U+2542 +U+2543 +U+2544 +U+2545 +U+2546 +U+2547 +U+2548 +U+2549 +U+254A +U+254B +U+254C +U+254D +U+254E +U+254F +U+2550 +U+2551 +U+2552 +U+2553 +U+2554 +U+2555 +U+2556 +U+2557 +U+2558 +U+2559 +U+255A +U+255B +U+255C +U+255D +U+255E +U+255F +U+2560 +U+2561 +U+2562 +U+2563 +U+2564 +U+2565 +U+2566 +U+2567 +U+2568 +U+2569 +U+256A +U+256B +U+256C +U+256D +U+256E +U+256F +U+2570 +U+2571 +U+2572 +U+2573 +U+2574 +U+2575 +U+2576 +U+2577 +U+2578 +U+2579 +U+257A +U+257B +U+257C +U+257D +U+257E +U+257F +U+2580 +U+2581 +U+2582 +U+2583 +U+2584 +U+2585 +U+2586 +U+2587 +U+2588 +U+2589 +U+258A +U+258B +U+258C +U+258D +U+258E +U+258F +U+2590 +U+2591 +U+2592 +U+2593 +U+2594 +U+2595 +U+2596 +U+2597 +U+2598 +U+2599 +U+259A +U+259B +U+259C +U+259D +U+259E +U+259F +U+25A0 +U+25A1 +U+25A2 +U+25A3 +U+25A4 +U+25A5 +U+25A6 +U+25A7 +U+25A8 +U+25A9 +U+25AA +U+25AB +U+25AC +U+25AD +U+25AE +U+25AF +U+25B0 +U+25B1 +U+25B2 +U+25B3 +U+25B4 +U+25B5 +U+25B6 +U+25B7 +U+25B8 +U+25B9 +U+25BA +U+25BB +U+25BC +U+25BD +U+25BE +U+25BF +U+25C0 +U+25C1 +U+25C2 +U+25C3 +U+25C4 +U+25C5 +U+25C6 +U+25C7 +U+25C8 +U+25C9 +U+25CA +U+25CB +U+25CC +U+25CD +U+25CE +U+25CF +U+25D0 +U+25D1 +U+25D2 +U+25D3 +U+25D4 +U+25D5 +U+25D6 +U+25D7 +U+25D8 +U+25D9 +U+25DA +U+25DB +U+25DC +U+25DD +U+25DE +U+25DF +U+25E0 +U+25E1 +U+25E2 +U+25E3 +U+25E4 +U+25E5 +U+25E6 +U+25E7 +U+25E8 +U+25E9 +U+25EA +U+25EB +U+25EC +U+25ED +U+25EE +U+25EF +U+25F0 +U+25F1 +U+25F2 +U+25F3 +U+25F4 +U+25F5 +U+25F6 +U+25F7 +U+25F8 +U+25F9 +U+25FA +U+25FB +U+25FC +U+25FD +U+25FE +U+25FF +U+2600 +U+2605 +U+2606 +U+2607 +U+2609 +U+2610 +U+2611 +U+2612 +U+2613 +U+261C +U+261D +U+261E +U+261F +U+2621 +U+2626 +U+2628 +U+2630 +U+2631 +U+2632 +U+2633 +U+2634 +U+2635 +U+2636 +U+2637 +U+2639 +U+263A +U+263B +U+263C +U+263F +U+2640 +U+2641 +U+2642 +U+2660 +U+2661 +U+2662 +U+2663 +U+2664 +U+2665 +U+2666 +U+2667 +U+2669 +U+266A +U+266B +U+266C +U+266D +U+266E +U+266F +U+267E +U+2680 +U+2681 +U+2682 +U+2683 +U+2684 +U+2685 +U+2686 +U+2687 +U+2688 +U+2689 +U+268A +U+268B +U+268C +U+268D +U+268E +U+268F +U+2690 +U+2691 +U+2699 +U+269B +U+26A0 +U+26A1 +U+26AA +U+26AB +U+26AC +U+26AD +U+26AE +U+26AF +U+26B2 +U+26CB +U+26DA +U+26DD +U+26DE +U+26ED +U+26EE +U+26EF +U+26F6 +U+2705 +U+2713 +U+2714 +U+2715 +U+2716 +U+2717 +U+2718 +U+271A +U+271B +U+271C +U+271D +U+2720 +U+2721 +U+2722 +U+2723 +U+2724 +U+2725 +U+2726 +U+2727 +U+2731 +U+2732 +U+2733 +U+2734 +U+2736 +U+2737 +U+2738 +U+2739 +U+273A +U+273B +U+273C +U+273D +U+273E +U+273F +U+2740 +U+2741 +U+2742 +U+2743 +U+2744 +U+2745 +U+2746 +U+2747 +U+2748 +U+2749 +U+274A +U+274B +U+274C +U+274E +U+2756 +U+2758 +U+2759 +U+275A +U+2761 +U+2764 +U+276C +U+276D +U+276E +U+276F +U+2770 +U+2771 +U+2776 +U+2777 +U+2778 +U+2779 +U+277A +U+277B +U+277C +U+277D +U+277E +U+277F +U+2780 +U+2781 +U+2782 +U+2783 +U+2784 +U+2785 +U+2786 +U+2787 +U+2788 +U+2789 +U+278A +U+278B +U+278C +U+278D +U+278E +U+278F +U+2790 +U+2791 +U+2792 +U+2793 +U+2794 +U+279C +U+279D +U+279E +U+27A1 +U+27A2 +U+27A3 +U+27A4 +U+27A5 +U+27A6 +U+27A7 +U+27B0 +U+27BF +U+27C2 +U+27CA +U+27CB +U+27CD +U+27D2 +U+27D3 +U+27D4 +U+27D5 +U+27D6 +U+27D7 +U+27D8 +U+27D9 +U+27DA +U+27DB +U+27DC +U+27DF +U+27E0 +U+27E1 +U+27E6 +U+27E7 +U+27E8 +U+27E9 +U+27EA +U+27EB +U+27EE +U+27EF +U+27F0 +U+27F1 +U+27F2 +U+27F3 +U+27F4 +U+2800 +U+2801 +U+2802 +U+2803 +U+2804 +U+2805 +U+2806 +U+2807 +U+2808 +U+2809 +U+280A +U+280B +U+280C +U+280D +U+280E +U+280F +U+2810 +U+2811 +U+2812 +U+2813 +U+2814 +U+2815 +U+2816 +U+2817 +U+2818 +U+2819 +U+281A +U+281B +U+281C +U+281D +U+281E +U+281F +U+2820 +U+2821 +U+2822 +U+2823 +U+2824 +U+2825 +U+2826 +U+2827 +U+2828 +U+2829 +U+282A +U+282B +U+282C +U+282D +U+282E +U+282F +U+2830 +U+2831 +U+2832 +U+2833 +U+2834 +U+2835 +U+2836 +U+2837 +U+2838 +U+2839 +U+283A +U+283B +U+283C +U+283D +U+283E +U+283F +U+2840 +U+2841 +U+2842 +U+2843 +U+2844 +U+2845 +U+2846 +U+2847 +U+2848 +U+2849 +U+284A +U+284B +U+284C +U+284D +U+284E +U+284F +U+2850 +U+2851 +U+2852 +U+2853 +U+2854 +U+2855 +U+2856 +U+2857 +U+2858 +U+2859 +U+285A +U+285B +U+285C +U+285D +U+285E +U+285F +U+2860 +U+2861 +U+2862 +U+2863 +U+2864 +U+2865 +U+2866 +U+2867 +U+2868 +U+2869 +U+286A +U+286B +U+286C +U+286D +U+286E +U+286F +U+2870 +U+2871 +U+2872 +U+2873 +U+2874 +U+2875 +U+2876 +U+2877 +U+2878 +U+2879 +U+287A +U+287B +U+287C +U+287D +U+287E +U+287F +U+2880 +U+2881 +U+2882 +U+2883 +U+2884 +U+2885 +U+2886 +U+2887 +U+2888 +U+2889 +U+288A +U+288B +U+288C +U+288D +U+288E +U+288F +U+2890 +U+2891 +U+2892 +U+2893 +U+2894 +U+2895 +U+2896 +U+2897 +U+2898 +U+2899 +U+289A +U+289B +U+289C +U+289D +U+289E +U+289F +U+28A0 +U+28A1 +U+28A2 +U+28A3 +U+28A4 +U+28A5 +U+28A6 +U+28A7 +U+28A8 +U+28A9 +U+28AA +U+28AB +U+28AC +U+28AD +U+28AE +U+28AF +U+28B0 +U+28B1 +U+28B2 +U+28B3 +U+28B4 +U+28B5 +U+28B6 +U+28B7 +U+28B8 +U+28B9 +U+28BA +U+28BB +U+28BC +U+28BD +U+28BE +U+28BF +U+28C0 +U+28C1 +U+28C2 +U+28C3 +U+28C4 +U+28C5 +U+28C6 +U+28C7 +U+28C8 +U+28C9 +U+28CA +U+28CB +U+28CC +U+28CD +U+28CE +U+28CF +U+28D0 +U+28D1 +U+28D2 +U+28D3 +U+28D4 +U+28D5 +U+28D6 +U+28D7 +U+28D8 +U+28D9 +U+28DA +U+28DB +U+28DC +U+28DD +U+28DE +U+28DF +U+28E0 +U+28E1 +U+28E2 +U+28E3 +U+28E4 +U+28E5 +U+28E6 +U+28E7 +U+28E8 +U+28E9 +U+28EA +U+28EB +U+28EC +U+28ED +U+28EE +U+28EF +U+28F0 +U+28F1 +U+28F2 +U+28F3 +U+28F4 +U+28F5 +U+28F6 +U+28F7 +U+28F8 +U+28F9 +U+28FA +U+28FB +U+28FC +U+28FD +U+28FE +U+28FF +U+2900 +U+2901 +U+2902 +U+2903 +U+2904 +U+2905 +U+2906 +U+2907 +U+2908 +U+2909 +U+290A +U+290B +U+290C +U+290D +U+290E +U+290F +U+2910 +U+2911 +U+2912 +U+2913 +U+2914 +U+2915 +U+2916 +U+2917 +U+2918 +U+2919 +U+291A +U+291B +U+291C +U+291D +U+291E +U+291F +U+2920 +U+2921 +U+2922 +U+2923 +U+2924 +U+2925 +U+2926 +U+2933 +U+2940 +U+2941 +U+2947 +U+2948 +U+294A +U+294B +U+294C +U+294D +U+294E +U+294F +U+2950 +U+2951 +U+2952 +U+2953 +U+2954 +U+2955 +U+2956 +U+2957 +U+2958 +U+2959 +U+295A +U+295B +U+295C +U+295D +U+295E +U+295F +U+2960 +U+2961 +U+2962 +U+2963 +U+2964 +U+2965 +U+296E +U+296F +U+2980 +U+2981 +U+2982 +U+2983 +U+2984 +U+2987 +U+2988 +U+2989 +U+298A +U+2999 +U+299A +U+29A2 +U+29A3 +U+29B0 +U+29B1 +U+29B2 +U+29B3 +U+29B4 +U+29B5 +U+29B6 +U+29B7 +U+29B8 +U+29B9 +U+29BA +U+29BB +U+29BC +U+29BD +U+29BE +U+29BF +U+29C4 +U+29C5 +U+29C6 +U+29C7 +U+29C8 +U+29C9 +U+29CA +U+29CB +U+29CD +U+29CE +U+29D1 +U+29D2 +U+29D3 +U+29D4 +U+29D5 +U+29D6 +U+29D7 +U+29D8 +U+29D9 +U+29DA +U+29DB +U+29DF +U+29E2 +U+29E3 +U+29E4 +U+29E5 +U+29E6 +U+29E7 +U+29E8 +U+29E9 +U+29EB +U+29F4 +U+29F5 +U+29F6 +U+29F7 +U+29F8 +U+29F9 +U+29FA +U+29FB +U+2A00 +U+2A01 +U+2A02 +U+2A05 +U+2A06 +U+2A09 +U+2A11 +U+2A12 +U+2A13 +U+2A14 +U+2A15 +U+2A16 +U+2A1D +U+2A1E +U+2A1F +U+2A20 +U+2A21 +U+2A22 +U+2A23 +U+2A24 +U+2A25 +U+2A26 +U+2A2A +U+2A2B +U+2A2C +U+2A2D +U+2A2E +U+2A2F +U+2A30 +U+2A31 +U+2A32 +U+2A34 +U+2A35 +U+2A36 +U+2A38 +U+2A3C +U+2A3D +U+2A3E +U+2A3F +U+2A40 +U+2A41 +U+2A42 +U+2A43 +U+2A4C +U+2A4D +U+2A4E +U+2A4F +U+2A53 +U+2A54 +U+2A57 +U+2A58 +U+2A5A +U+2A5B +U+2A5C +U+2A5D +U+2A5E +U+2A5F +U+2A60 +U+2A61 +U+2A62 +U+2A63 +U+2A64 +U+2A65 +U+2A66 +U+2A67 +U+2A68 +U+2A69 +U+2A6A +U+2A6B +U+2A6C +U+2A6D +U+2A6E +U+2A6F +U+2A70 +U+2A71 +U+2A72 +U+2A73 +U+2A7D +U+2A7E +U+2A7F +U+2A80 +U+2A85 +U+2A86 +U+2A87 +U+2A88 +U+2A89 +U+2A8A +U+2A8D +U+2A8E +U+2A95 +U+2A96 +U+2A97 +U+2A98 +U+2A99 +U+2A9A +U+2A9D +U+2A9E +U+2AAA +U+2AAB +U+2AAC +U+2AAD +U+2AAE +U+2AAF +U+2AB0 +U+2AB1 +U+2AB2 +U+2AB3 +U+2AB4 +U+2AB5 +U+2AB6 +U+2AB7 +U+2AB8 +U+2AB9 +U+2ABA +U+2ABD +U+2ABE +U+2ACF +U+2AD0 +U+2AD1 +U+2AD2 +U+2AD9 +U+2ADA +U+2ADB +U+2ADC +U+2ADD +U+2ADE +U+2ADF +U+2AE0 +U+2AE2 +U+2AE3 +U+2AE4 +U+2AE5 +U+2AE6 +U+2AE7 +U+2AE8 +U+2AE9 +U+2AEA +U+2AEB +U+2AEC +U+2AED +U+2AEE +U+2AEF +U+2AF0 +U+2AF1 +U+2AF2 +U+2AF3 +U+2AF4 +U+2AF5 +U+2AF6 +U+2AFC +U+2AFD +U+2B00 +U+2B01 +U+2B02 +U+2B03 +U+2B04 +U+2B05 +U+2B06 +U+2B07 +U+2B08 +U+2B09 +U+2B0A +U+2B0B +U+2B0C +U+2B0D +U+2B0E +U+2B0F +U+2B10 +U+2B11 +U+2B12 +U+2B13 +U+2B14 +U+2B15 +U+2B16 +U+2B17 +U+2B18 +U+2B19 +U+2B1A +U+2B1B +U+2B1C +U+2B1D +U+2B1E +U+2B1F +U+2B20 +U+2B21 +U+2B22 +U+2B23 +U+2B24 +U+2B25 +U+2B26 +U+2B27 +U+2B28 +U+2B29 +U+2B2A +U+2B2B +U+2B2C +U+2B2D +U+2B2E +U+2B2F +U+2B30 +U+2B31 +U+2B32 +U+2B34 +U+2B35 +U+2B36 +U+2B37 +U+2B38 +U+2B39 +U+2B3A +U+2B3B +U+2B3C +U+2B3D +U+2B3E +U+2B3F +U+2B45 +U+2B46 +U+2B4D +U+2B50 +U+2B51 +U+2B52 +U+2B53 +U+2B54 +U+2B55 +U+2B58 +U+2B59 +U+2B60 +U+2B61 +U+2B62 +U+2B63 +U+2B64 +U+2B65 +U+2B66 +U+2B67 +U+2B68 +U+2B69 +U+2B6A +U+2B6B +U+2B6C +U+2B6D +U+2B6E +U+2B6F +U+2B70 +U+2B71 +U+2B72 +U+2B73 +U+2B7A +U+2B7B +U+2B7C +U+2B7D +U+2B7E +U+2B7F +U+2B80 +U+2B81 +U+2B82 +U+2B83 +U+2B84 +U+2B85 +U+2B86 +U+2B87 +U+2B8C +U+2B8D +U+2B8E +U+2B8F +U+2B90 +U+2B91 +U+2B92 +U+2B93 +U+2B94 +U+2B95 +U+2BA0 +U+2BA1 +U+2BA2 +U+2BA3 +U+2BA4 +U+2BA5 +U+2BA6 +U+2BA7 +U+2BB8 +U+2BB9 +U+2BBA +U+2BBB +U+2BBC +U+2BBD +U+2BBE +U+2BBF +U+2BC0 +U+2BC1 +U+2BC2 +U+2BC3 +U+2BC4 +U+2BC5 +U+2BC6 +U+2BC7 +U+2BC8 +U+2BCA +U+2BCB +U+2BCC +U+2BCD +U+2BCE +U+2BCF +U+2BD0 +U+2BD1 +U+2BD2 +U+2BE8 +U+2BE9 +U+2BEA +U+2BEB +U+2BEC +U+2BED +U+2BEE +U+2BEF +U+2BFA +U+2BFB +U+2BFC +U+2BFD +U+2BFE +U+2BFF +U+1FB00 +U+1FB01 +U+1FB02 +U+1FB03 +U+1FB04 +U+1FB05 +U+1FB06 +U+1FB07 +U+1FB08 +U+1FB09 +U+1FB0A +U+1FB0B +U+1FB0C +U+1FB0D +U+1FB0E +U+1FB0F +U+1FB10 +U+1FB11 +U+1FB12 +U+1FB13 +U+1FB14 +U+1FB15 +U+1FB16 +U+1FB17 +U+1FB18 +U+1FB19 +U+1FB1A +U+1FB1B +U+1FB1C +U+1FB1D +U+1FB1E +U+1FB1F +U+1FB20 +U+1FB21 +U+1FB22 +U+1FB23 +U+1FB24 +U+1FB25 +U+1FB26 +U+1FB27 +U+1FB28 +U+1FB29 +U+1FB2A +U+1FB2B +U+1FB2C +U+1FB2D +U+1FB2E +U+1FB2F +U+1FB30 +U+1FB31 +U+1FB32 +U+1FB33 +U+1FB34 +U+1FB35 +U+1FB36 +U+1FB37 +U+1FB38 +U+1FB39 +U+1FB3A +U+1FB3B +U+1FB3C +U+1FB3D +U+1FB3E +U+1FB3F +U+1FB40 +U+1FB41 +U+1FB42 +U+1FB43 +U+1FB44 +U+1FB45 +U+1FB46 +U+1FB47 +U+1FB48 +U+1FB49 +U+1FB4A +U+1FB4B +U+1FB4C +U+1FB4D +U+1FB4E +U+1FB4F +U+1FB50 +U+1FB51 +U+1FB52 +U+1FB53 +U+1FB54 +U+1FB55 +U+1FB56 +U+1FB57 +U+1FB58 +U+1FB59 +U+1FB5A +U+1FB5B +U+1FB5C +U+1FB5D +U+1FB5E +U+1FB5F +U+1FB60 +U+1FB61 +U+1FB62 +U+1FB63 +U+1FB64 +U+1FB65 +U+1FB66 +U+1FB67 +U+1FB68 +U+1FB69 +U+1FB6A +U+1FB6B +U+1FB6C +U+1FB6D +U+1FB6E +U+1FB6F +U+1FB70 +U+1FB71 +U+1FB72 +U+1FB73 +U+1FB74 +U+1FB75 +U+1FB76 +U+1FB77 +U+1FB78 +U+1FB79 +U+1FB7A +U+1FB7B +U+1FB7C +U+1FB7D +U+1FB7E +U+1FB7F +U+1FB80 +U+1FB81 +U+1FB82 +U+1FB83 +U+1FB84 +U+1FB85 +U+1FB86 +U+1FB87 +U+1FB88 +U+1FB89 +U+1FB8A +U+1FB8B +U+1FB8C +U+1FB8D +U+1FB8E +U+1FB8F +U+1FB90 +U+1FB91 +U+1FB92 +U+1FB94 +U+1FB95 +U+1FB96 +U+1FB97 +U+1FB98 +U+1FB99 +U+1FB9A +U+1FB9B +U+1FB9C +U+1FB9D +U+1FB9E +U+1FB9F +U+1FBA0 +U+1FBA1 +U+1FBA2 +U+1FBA3 +U+1FBA4 +U+1FBA5 +U+1FBA6 +U+1FBA7 +U+1FBA8 +U+1FBA9 +U+1FBAA +U+1FBAB +U+1FBAC +U+1FBAD +U+1FBAE +U+1FBAF +U+1FBB0 +U+1FBB1 +U+1FBB2 +U+1FBB3 +U+1FBB4 +U+1FBB5 +U+1FBB6 +U+1FBB7 +U+1FBB8 +U+1FBB9 +U+1FBBA +U+1FBBB +U+1FBBC +U+1FBBD +U+1FBBE +U+1FBBF +U+1FBC0 +U+1FBC1 +U+1FBC2 +U+1FBC3 +U+1FBC4 +U+1FBC5 +U+1FBC6 +U+1FBC7 +U+1FBC8 +U+1FBC9 +U+1FBCA +U+1FBCC +U+1FBCE +U+1FBCF +U+1FBD0 +U+1FBD1 +U+1FBD2 +U+1FBD3 +U+1FBD4 +U+1FBD5 +U+1FBD6 +U+1FBD7 +U+1FBD8 +U+1FBD9 +U+1FBDA +U+1FBDB +U+1FBDC +U+1FBDD +U+1FBDE +U+1FBDF +U+1FBE0 +U+1FBE1 +U+1FBE2 +U+1FBE3 +U+1FBE4 +U+1FBE5 +U+1FBE6 +U+1FBE7 +U+1FBE8 +U+1FBE9 +U+1FBEA +U+1FBEB +U+1FBEC +U+1FBED +U+1FBEE +U+1FBEF +U+1FBF0 +U+1FBF1 +U+1FBF2 +U+1FBF3 +U+1FBF4 +U+1FBF5 +U+1FBF6 +U+1FBF7 +U+1FBF8 +U+1FBF9 diff --git a/packages/terminal/fonts/README.md b/packages/terminal/fonts/README.md new file mode 100644 index 0000000000000000000000000000000000000000..77ef906479b6f71ee3524f7d2af952be3feb502b --- /dev/null +++ b/packages/terminal/fonts/README.md @@ -0,0 +1,143 @@ +# terminal fonts + +## Primary font + +The four WOFF2 files are a reproducible subset of **Iosevka Fixed Extended +v34.8.1** (Renzhi Li / Belleve Invis), taken from the release's own WebFont +package: + +`https://github.com/be5invis/Iosevka/releases/download/v34.8.1/PkgWebFont-IosevkaFixed-34.8.1.zip` + +The downloaded zip is 211,996,653 bytes with SHA-256 +`a3a03a7ce96f92403c8fa0e20ab24642553755c8fcf69ed3c74157f1ffdf8995`. The four +`TTF/` members it is subset from: + +| Source member | SHA-256 | +| --------------------------------------------- | ------------------------------------------------------------------ | +| `TTF/IosevkaFixed-Extended.ttf` | `7182070f18c093a65f4c7861aecb454b6a33bfcd365e07e3521f03a1d6c79cd7` | +| `TTF/IosevkaFixed-ExtendedSemiBold.ttf` | `a4bebd5003e7763684c232660da6579293e903605c77e2f4cc1791618db51cf6` | +| `TTF/IosevkaFixed-ExtendedItalic.ttf` | `0defbf681658b460c4b4d4a43ef3145798f2485cdde5e8c06663e8b7c08d8062` | +| `TTF/IosevkaFixed-ExtendedSemiBoldItalic.ttf` | `f3006b75315f3e5af68d992f227d1cf55feb31f3c74156c70780638b737af61a` | + +The zip is acquisition material and must remain outside the repository. + +**Fixed Extended, and neither half of that is cosmetic.** _Extended_ is the +0.600 em advance — the same one JetBrains Mono v2.304 shipped before it, so the +cell geometry did not move; Iosevka's default width is 0.500 em and reads +compressed at terminal sizes. _Fixed_ is the variant with no glyph wider than +one cell: `Iosevka Term` carries 23 double-advance glyphs (the long arrows, +`U+27F5-27FF`), and Ghostty reports those codepoints as one column, so in a +renderer that owns the cell they paint into their neighbour. + +| File | Upstream file | Style | Weight | Bytes | SHA-256 | +| ---------------------------------------------------- | --------------------------------------------- | ------ | ------ | ------: | ------------------------------------------------------------------ | +| `__clo_terminal_primary_34_8_1-Regular.woff2` | `TTF/IosevkaFixed-Extended.ttf` | normal | 400 | 186,152 | `4a45de347bcb9ed97220ca20d8e0a33d6d926995208800fa57138bd54a9273bb` | +| `__clo_terminal_primary_34_8_1-SemiBold.woff2` | `TTF/IosevkaFixed-ExtendedSemiBold.ttf` | normal | 600 | 186,040 | `1883786f7f33c891724b6dcae9ae22dcbe69336fc73d34f27ff352410d27f259` | +| `__clo_terminal_primary_34_8_1-Italic.woff2` | `TTF/IosevkaFixed-ExtendedItalic.ttf` | italic | 400 | 210,368 | `2e143f2d688fbf3a815fe6dd31af3a74c0a5f71e2744fdecbb0b32ae543e99de` | +| `__clo_terminal_primary_34_8_1-SemiBoldItalic.woff2` | `TTF/IosevkaFixed-ExtendedSemiBoldItalic.ttf` | italic | 600 | 210,340 | `d871135db2d8ec47cb3e3ffe6fa85d1e55e187f9bc81828f8a82afd6e76cbe8a` | + +Copyright (c) 2015-2026, Renzhi Li (aka. Belleve Invis, belleve@typeof.net). +Distributed under the SIL Open Font License 1.1 in [`OFL.txt`](OFL.txt). +Iosevka reserves no font name, so the subset carries no naming obligation; the +private `__clo_terminal_primary_34_8_1` family name is this package's, not a +claim about the upstream face. + +The checked-in manifest [`PRIMARY-CODEPOINTS.txt`](PRIMARY-CODEPOINTS.txt) is +the sorted intersection of the source cmap with the retained ranges in +[`subset-primary.py`](subset-primary.py). It contains 4,660 codepoints, is +32,867 bytes, and has SHA-256 +`ebe06abbcb42d87fe2d2f37f805ab0413b69c8dbb438dded94e4a8f4c2832672`. +The ranges are `U+0000-2BFF` and `U+1FB00-1FBFF`: every script and symbol block +a cell can hold, plus Symbols for Legacy Computing. That keeps braille, +technical, dingbats and the sextants the previous primary had none of, and drops +mathematical alphanumerics, musical notation, emoji and the historic scripts — +2,899 of the source font's 7,559 codepoints, and most of its bytes. + +Regenerate the manifest and the four faces with these exact commands from +`sys/lib/terminal`, given the extracted TTFs in approved temporary storage: + +```sh +python fonts/subset-primary.py "$TTF_DIR/IosevkaFixed-Extended.ttf" \ + "$CLEAN_DIR/PRIMARY-CODEPOINTS.txt" +for pair in Extended:Regular ExtendedSemiBold:SemiBold \ + ExtendedItalic:Italic ExtendedSemiBoldItalic:SemiBoldItalic; do + pyftsubset "$TTF_DIR/IosevkaFixed-${pair%%:*}.ttf" \ + --output-file="$CLEAN_DIR/__clo_terminal_primary_34_8_1-${pair##*:}.woff2" \ + --flavor=woff2 \ + --unicodes-file="$CLEAN_DIR/PRIMARY-CODEPOINTS.txt" \ + --layout-features='' \ + --name-IDs=0,1,2,3,4,5,6 \ + --name-languages=0x409 \ + --no-name-legacy \ + --no-harfbuzz-repacker \ + --no-recalc-timestamp \ + --canonical-order +done +``` + +Two builds from separate clean directories produced byte-identical manifests +and WOFF2 files. The recorded build used the exact pins in +[`symbols-requirements.txt`](symbols-requirements.txt): `fonttools==4.51.0` and +`brotli==1.1.0`. Run the commands twice with distinct empty `CLEAN_DIR` values +and require byte equality plus the hashes above before replacing checked-in +outputs. + +## Terminal symbols + +`__clo_terminal_symbols_3_4_0-Regular.woff2` is a subset of Symbols Nerd Font +Mono v3.4.0. The v3.4.0 tag resolves to Nerd Fonts commit +`fa7b859994228a9c8759f99c55a8d31ee92a1b5e`; the source artifact is Git blob +`d898eea9dc37acee648303e15b13fea4eb437d8e` at: + +`https://raw.githubusercontent.com/ryanoasis/nerd-fonts/fa7b859994228a9c8759f99c55a8d31ee92a1b5e/patched-fonts/NerdFontsSymbolsOnly/SymbolsNerdFontMono-Regular.ttf` + +The downloaded TTF is 2,507,556 bytes with SHA-256 +`f0f624d9b474bea1662cf7e862d44aebe1ae1f6c7f9cb7a0ca5d0e5ac9561c60`. +Its embedded unique id is `Symbols Nerd Font Mono 3.4.0` and its version is +`Version 001.000;Nerd Fonts 3.4.0`. The input TTF is acquisition material and +must remain outside the repository. + +The checked-in manifest [`SYMBOLS-CODEPOINTS.txt`](SYMBOLS-CODEPOINTS.txt) is +the sorted intersection of the source cmap with the retained ranges in +[`subset-symbols.py`](subset-symbols.py). It contains 10,273 codepoints, is +78,807 bytes, and has SHA-256 +`128c0e17659bd21ea91edf73006304b368fb714d38f12c0d7b005d713052eac1`. +The range policy excludes primary-owned box/block `U+2500-U+259F`, standard +Powerline `U+E0A0-U+E0A2` and `U+E0B0-U+E0B3`, and unlicensed Font Logos +`U+F300-U+F381`. The box/block exclusion has an empty intersection with this +source cmap; the other exclusions remove 7 and 130 source codepoints. + +The output WOFF2 is 1,083,700 bytes with SHA-256 +`a41598870ee7b32226cc76fdaab59edca51ba04e30d2c9a0bfa453615e3cca8c`. +Two builds from separate clean directories produced byte-identical manifests +and WOFF2 files. The recorded build used Python 3.9.6 with the exact pins in +[`symbols-requirements.txt`](symbols-requirements.txt): `fonttools==4.51.0` +and `brotli==1.1.0`. + +Given an input TTF in approved temporary storage, regenerate the manifest and +font with these exact commands from `sys/lib/terminal`: + +```sh +python fonts/subset-symbols.py "$INPUT_TTF" "$CLEAN_DIR/SYMBOLS-CODEPOINTS.txt" +pyftsubset "$INPUT_TTF" \ + --output-file="$CLEAN_DIR/__clo_terminal_symbols_3_4_0-Regular.woff2" \ + --flavor=woff2 \ + --unicodes-file="$CLEAN_DIR/SYMBOLS-CODEPOINTS.txt" \ + --layout-features='' \ + --name-IDs=0,1,2,3,4,5,6 \ + --name-languages=0x409 \ + --no-name-legacy \ + --no-harfbuzz-repacker \ + --no-recalc-timestamp \ + --canonical-order +``` + +Run both commands twice with distinct empty `CLEAN_DIR` values and require +byte equality plus the hashes above before replacing checked-in outputs. + +Nerd Fonts marks Symbols Only as MIT, while its own audit assigns retained +glyph components additional MIT, CC BY 4.0, Apache 2.0, and SIL OFL 1.1 +terms. The subset is distributed with every applicable component term rather +than treated as MIT-only. [`NOTICES.md`](NOTICES.md) maps retained ranges to +the exact notices under [`licenses/`](licenses/). Font Logos is absent because +the pinned audit records that component as unlicensed. diff --git a/packages/terminal/fonts/SYMBOLS-CODEPOINTS.txt b/packages/terminal/fonts/SYMBOLS-CODEPOINTS.txt new file mode 100644 index 0000000000000000000000000000000000000000..ae6d061fe276a1de47d95c1b42e4d66d670a4e42 --- /dev/null +++ b/packages/terminal/fonts/SYMBOLS-CODEPOINTS.txt @@ -0,0 +1,10273 @@ +U+23FB +U+23FC +U+23FD +U+23FE +U+2630 +U+2665 +U+26A1 +U+276C +U+276D +U+276E +U+276F +U+2770 +U+2771 +U+2B58 +U+E000 +U+E001 +U+E002 +U+E003 +U+E004 +U+E005 +U+E006 +U+E007 +U+E008 +U+E009 +U+E00A +U+E0A3 +U+E0B4 +U+E0B5 +U+E0B6 +U+E0B7 +U+E0B8 +U+E0B9 +U+E0BA +U+E0BB +U+E0BC +U+E0BD +U+E0BE +U+E0BF +U+E0C0 +U+E0C1 +U+E0C2 +U+E0C3 +U+E0C4 +U+E0C5 +U+E0C6 +U+E0C7 +U+E0C8 +U+E0CA +U+E0CC +U+E0CD +U+E0CE +U+E0CF +U+E0D0 +U+E0D1 +U+E0D2 +U+E0D4 +U+E0D6 +U+E0D7 +U+E200 +U+E201 +U+E202 +U+E203 +U+E204 +U+E205 +U+E206 +U+E207 +U+E208 +U+E209 +U+E20A +U+E20B +U+E20C +U+E20D +U+E20E +U+E20F +U+E210 +U+E211 +U+E212 +U+E213 +U+E214 +U+E215 +U+E216 +U+E217 +U+E218 +U+E219 +U+E21A +U+E21B +U+E21C +U+E21D +U+E21E +U+E21F +U+E220 +U+E221 +U+E222 +U+E223 +U+E224 +U+E225 +U+E226 +U+E227 +U+E228 +U+E229 +U+E22A +U+E22B +U+E22C +U+E22D +U+E22E +U+E22F +U+E230 +U+E231 +U+E232 +U+E233 +U+E234 +U+E235 +U+E236 +U+E237 +U+E238 +U+E239 +U+E23A +U+E23B +U+E23C +U+E23D +U+E23E +U+E23F +U+E240 +U+E241 +U+E242 +U+E243 +U+E244 +U+E245 +U+E246 +U+E247 +U+E248 +U+E249 +U+E24A +U+E24B +U+E24C +U+E24D +U+E24E +U+E24F +U+E250 +U+E251 +U+E252 +U+E253 +U+E254 +U+E255 +U+E256 +U+E257 +U+E258 +U+E259 +U+E25A +U+E25B +U+E25C +U+E25D +U+E25E +U+E25F +U+E260 +U+E261 +U+E262 +U+E263 +U+E264 +U+E265 +U+E266 +U+E267 +U+E268 +U+E269 +U+E26A +U+E26B +U+E26C +U+E26D +U+E26E +U+E26F +U+E270 +U+E271 +U+E272 +U+E273 +U+E274 +U+E275 +U+E276 +U+E277 +U+E278 +U+E279 +U+E27A +U+E27B +U+E27C +U+E27D +U+E27E +U+E27F +U+E280 +U+E281 +U+E282 +U+E283 +U+E284 +U+E285 +U+E286 +U+E287 +U+E288 +U+E289 +U+E28A +U+E28B +U+E28C +U+E28D +U+E28E +U+E28F +U+E290 +U+E291 +U+E292 +U+E293 +U+E294 +U+E295 +U+E296 +U+E297 +U+E298 +U+E299 +U+E29A +U+E29B +U+E29C +U+E29D +U+E29E +U+E29F +U+E2A0 +U+E2A1 +U+E2A2 +U+E2A3 +U+E2A4 +U+E2A5 +U+E2A6 +U+E2A7 +U+E2A8 +U+E2A9 +U+E300 +U+E301 +U+E302 +U+E303 +U+E304 +U+E305 +U+E306 +U+E307 +U+E308 +U+E309 +U+E30A +U+E30B +U+E30C +U+E30D +U+E30E +U+E30F +U+E310 +U+E311 +U+E312 +U+E313 +U+E314 +U+E315 +U+E316 +U+E317 +U+E318 +U+E319 +U+E31A +U+E31B +U+E31C +U+E31D +U+E31E +U+E31F +U+E320 +U+E321 +U+E322 +U+E323 +U+E324 +U+E325 +U+E326 +U+E327 +U+E328 +U+E329 +U+E32A +U+E32B +U+E32C +U+E32D +U+E32E +U+E32F +U+E330 +U+E331 +U+E332 +U+E333 +U+E334 +U+E335 +U+E336 +U+E337 +U+E338 +U+E339 +U+E33A +U+E33B +U+E33C +U+E33D +U+E33E +U+E33F +U+E340 +U+E341 +U+E342 +U+E343 +U+E344 +U+E345 +U+E346 +U+E347 +U+E348 +U+E349 +U+E34A +U+E34B +U+E34C +U+E34D +U+E34E +U+E34F +U+E350 +U+E351 +U+E352 +U+E353 +U+E354 +U+E355 +U+E356 +U+E357 +U+E358 +U+E359 +U+E35A +U+E35B +U+E35C +U+E35D +U+E35E +U+E35F +U+E360 +U+E361 +U+E362 +U+E363 +U+E364 +U+E365 +U+E366 +U+E367 +U+E368 +U+E369 +U+E36A +U+E36B +U+E36C +U+E36D +U+E36E +U+E36F +U+E370 +U+E371 +U+E372 +U+E373 +U+E374 +U+E375 +U+E376 +U+E377 +U+E378 +U+E379 +U+E37A +U+E37B +U+E37C +U+E37D +U+E37E +U+E37F +U+E380 +U+E381 +U+E382 +U+E383 +U+E384 +U+E385 +U+E386 +U+E387 +U+E388 +U+E389 +U+E38A +U+E38B +U+E38C +U+E38D +U+E38E +U+E38F +U+E390 +U+E391 +U+E392 +U+E393 +U+E394 +U+E395 +U+E396 +U+E397 +U+E398 +U+E399 +U+E39A +U+E39B +U+E39C +U+E39D +U+E39E +U+E39F +U+E3A0 +U+E3A1 +U+E3A2 +U+E3A3 +U+E3A4 +U+E3A5 +U+E3A6 +U+E3A7 +U+E3A8 +U+E3A9 +U+E3AA +U+E3AB +U+E3AC +U+E3AD +U+E3AE +U+E3AF +U+E3B0 +U+E3B1 +U+E3B2 +U+E3B3 +U+E3B4 +U+E3B5 +U+E3B6 +U+E3B7 +U+E3B8 +U+E3B9 +U+E3BA +U+E3BB +U+E3BC +U+E3BD +U+E3BE +U+E3BF +U+E3C0 +U+E3C1 +U+E3C2 +U+E3C3 +U+E3C4 +U+E3C5 +U+E3C6 +U+E3C7 +U+E3C8 +U+E3C9 +U+E3CA +U+E3CB +U+E3CC +U+E3CD +U+E3CE +U+E3CF +U+E3D0 +U+E3D1 +U+E3D2 +U+E3D3 +U+E3D4 +U+E3D5 +U+E3D6 +U+E3D7 +U+E3D8 +U+E3D9 +U+E3DA +U+E3DB +U+E3DC +U+E3DD +U+E3DE +U+E3DF +U+E3E0 +U+E3E1 +U+E3E2 +U+E3E3 +U+E5FA +U+E5FB +U+E5FC +U+E5FD +U+E5FE +U+E5FF +U+E600 +U+E601 +U+E602 +U+E603 +U+E604 +U+E605 +U+E606 +U+E607 +U+E608 +U+E609 +U+E60A +U+E60B +U+E60C +U+E60D +U+E60E +U+E60F +U+E610 +U+E611 +U+E612 +U+E613 +U+E614 +U+E615 +U+E616 +U+E617 +U+E618 +U+E619 +U+E61A +U+E61B +U+E61C +U+E61D +U+E61E +U+E61F +U+E620 +U+E621 +U+E622 +U+E623 +U+E624 +U+E625 +U+E626 +U+E627 +U+E628 +U+E629 +U+E62A +U+E62B +U+E62C +U+E62D +U+E62E +U+E62F +U+E630 +U+E631 +U+E632 +U+E633 +U+E634 +U+E635 +U+E636 +U+E637 +U+E638 +U+E639 +U+E63A +U+E63B +U+E63C +U+E63D +U+E63E +U+E63F +U+E640 +U+E641 +U+E642 +U+E643 +U+E644 +U+E645 +U+E646 +U+E647 +U+E648 +U+E649 +U+E64A +U+E64B +U+E64C +U+E64D +U+E64E +U+E64F +U+E650 +U+E651 +U+E652 +U+E653 +U+E654 +U+E655 +U+E656 +U+E657 +U+E658 +U+E659 +U+E65A +U+E65B +U+E65C +U+E65D +U+E65E +U+E65F +U+E660 +U+E661 +U+E662 +U+E663 +U+E664 +U+E665 +U+E666 +U+E667 +U+E668 +U+E669 +U+E66A +U+E66B +U+E66C +U+E66D +U+E66E +U+E66F +U+E670 +U+E671 +U+E672 +U+E673 +U+E674 +U+E675 +U+E676 +U+E677 +U+E678 +U+E679 +U+E67A +U+E67B +U+E67C +U+E67D +U+E67E +U+E67F +U+E680 +U+E681 +U+E682 +U+E683 +U+E684 +U+E685 +U+E686 +U+E687 +U+E688 +U+E689 +U+E68A +U+E68B +U+E68C +U+E68D +U+E68E +U+E68F +U+E690 +U+E691 +U+E692 +U+E693 +U+E694 +U+E695 +U+E696 +U+E697 +U+E698 +U+E699 +U+E69A +U+E69B +U+E69C +U+E69D +U+E69E +U+E69F +U+E6A0 +U+E6A1 +U+E6A2 +U+E6A3 +U+E6A4 +U+E6A5 +U+E6A6 +U+E6A7 +U+E6A8 +U+E6A9 +U+E6AA +U+E6AB +U+E6AC +U+E6AD +U+E6AE +U+E6AF +U+E6B0 +U+E6B1 +U+E6B2 +U+E6B3 +U+E6B4 +U+E6B5 +U+E6B6 +U+E6B7 +U+E6B8 +U+E700 +U+E701 +U+E702 +U+E703 +U+E704 +U+E705 +U+E706 +U+E707 +U+E708 +U+E709 +U+E70A +U+E70B +U+E70C +U+E70D +U+E70E +U+E70F +U+E710 +U+E711 +U+E712 +U+E713 +U+E714 +U+E715 +U+E716 +U+E717 +U+E718 +U+E719 +U+E71A +U+E71B +U+E71C +U+E71D +U+E71E +U+E71F +U+E720 +U+E721 +U+E722 +U+E723 +U+E724 +U+E725 +U+E726 +U+E727 +U+E728 +U+E729 +U+E72A +U+E72B +U+E72C +U+E72D +U+E72E +U+E72F +U+E730 +U+E731 +U+E732 +U+E733 +U+E734 +U+E735 +U+E736 +U+E737 +U+E738 +U+E739 +U+E73A +U+E73B +U+E73C +U+E73D +U+E73E +U+E73F +U+E740 +U+E741 +U+E742 +U+E743 +U+E744 +U+E745 +U+E746 +U+E747 +U+E748 +U+E749 +U+E74A +U+E74B +U+E74C +U+E74D +U+E74E +U+E74F +U+E750 +U+E751 +U+E752 +U+E753 +U+E754 +U+E755 +U+E756 +U+E757 +U+E758 +U+E759 +U+E75A +U+E75B +U+E75C +U+E75D +U+E75E +U+E75F +U+E760 +U+E761 +U+E762 +U+E763 +U+E764 +U+E765 +U+E766 +U+E767 +U+E768 +U+E769 +U+E76A +U+E76B +U+E76C +U+E76D +U+E76E +U+E76F +U+E770 +U+E771 +U+E772 +U+E773 +U+E774 +U+E775 +U+E776 +U+E777 +U+E778 +U+E779 +U+E77A +U+E77B +U+E77C +U+E77D +U+E77E +U+E77F +U+E780 +U+E781 +U+E782 +U+E783 +U+E784 +U+E785 +U+E786 +U+E787 +U+E788 +U+E789 +U+E78A +U+E78B +U+E78C +U+E78D +U+E78E +U+E78F +U+E790 +U+E791 +U+E792 +U+E793 +U+E794 +U+E795 +U+E796 +U+E797 +U+E798 +U+E799 +U+E79A +U+E79B +U+E79C +U+E79D +U+E79E +U+E79F +U+E7A0 +U+E7A1 +U+E7A2 +U+E7A3 +U+E7A4 +U+E7A5 +U+E7A6 +U+E7A7 +U+E7A8 +U+E7A9 +U+E7AA +U+E7AB +U+E7AC +U+E7AD +U+E7AE +U+E7AF +U+E7B0 +U+E7B1 +U+E7B2 +U+E7B3 +U+E7B4 +U+E7B5 +U+E7B6 +U+E7B7 +U+E7B8 +U+E7B9 +U+E7BA +U+E7BB +U+E7BC +U+E7BD +U+E7BE +U+E7BF +U+E7C0 +U+E7C1 +U+E7C2 +U+E7C3 +U+E7C4 +U+E7C5 +U+E7C6 +U+E7C7 +U+E7C8 +U+E7C9 +U+E7CA +U+E7CB +U+E7CC +U+E7CD +U+E7CE +U+E7CF +U+E7D0 +U+E7D1 +U+E7D2 +U+E7D3 +U+E7D4 +U+E7D5 +U+E7D6 +U+E7D7 +U+E7D8 +U+E7D9 +U+E7DA +U+E7DB +U+E7DC +U+E7DD +U+E7DE +U+E7DF +U+E7E0 +U+E7E1 +U+E7E2 +U+E7E3 +U+E7E4 +U+E7E5 +U+E7E6 +U+E7E7 +U+E7E8 +U+E7E9 +U+E7EA +U+E7EB +U+E7EC +U+E7ED +U+E7EE +U+E7EF +U+E7F0 +U+E7F1 +U+E7F2 +U+E7F3 +U+E7F4 +U+E7F5 +U+E7F6 +U+E7F7 +U+E7F8 +U+E7F9 +U+E7FA +U+E7FB +U+E7FC +U+E7FD +U+E7FE +U+E7FF +U+E800 +U+E801 +U+E802 +U+E803 +U+E804 +U+E805 +U+E806 +U+E807 +U+E808 +U+E809 +U+E80A +U+E80B +U+E80C +U+E80D +U+E80E +U+E80F +U+E810 +U+E811 +U+E812 +U+E813 +U+E814 +U+E815 +U+E816 +U+E817 +U+E818 +U+E819 +U+E81A +U+E81B +U+E81C +U+E81D +U+E81E +U+E81F +U+E820 +U+E821 +U+E822 +U+E823 +U+E824 +U+E825 +U+E826 +U+E827 +U+E828 +U+E829 +U+E82A +U+E82B +U+E82C +U+E82D +U+E82E +U+E82F +U+E830 +U+E831 +U+E832 +U+E833 +U+E834 +U+E835 +U+E836 +U+E837 +U+E838 +U+E839 +U+E83A +U+E83B +U+E83C +U+E83D +U+E83E +U+E83F +U+E840 +U+E841 +U+E842 +U+E843 +U+E844 +U+E845 +U+E846 +U+E847 +U+E848 +U+E849 +U+E84A +U+E84B +U+E84C +U+E84D +U+E84E +U+E84F +U+E850 +U+E851 +U+E852 +U+E853 +U+E854 +U+E855 +U+E856 +U+E857 +U+E858 +U+E859 +U+E85A +U+E85B +U+E85C +U+E85D +U+E85E +U+E85F +U+E860 +U+E861 +U+E862 +U+E863 +U+E864 +U+E865 +U+E866 +U+E867 +U+E868 +U+E869 +U+E86A +U+E86B +U+E86C +U+E86D +U+E86E +U+E86F +U+E870 +U+E871 +U+E872 +U+E873 +U+E874 +U+E875 +U+E876 +U+E877 +U+E878 +U+E879 +U+E87A +U+E87B +U+E87C +U+E87D +U+E87E +U+E87F +U+E880 +U+E881 +U+E882 +U+E883 +U+E884 +U+E885 +U+E886 +U+E887 +U+E888 +U+E889 +U+E88A +U+E88B +U+E88C +U+E88D +U+E88E +U+E88F +U+E890 +U+E891 +U+E892 +U+E893 +U+E894 +U+E895 +U+E896 +U+E897 +U+E898 +U+E899 +U+E89A +U+E89B +U+E89C +U+E89D +U+E89E +U+E89F +U+E8A0 +U+E8A1 +U+E8A2 +U+E8A3 +U+E8A4 +U+E8A5 +U+E8A6 +U+E8A7 +U+E8A8 +U+E8A9 +U+E8AA +U+E8AB +U+E8AC +U+E8AD +U+E8AE +U+E8AF +U+E8B0 +U+E8B1 +U+E8B2 +U+E8B3 +U+E8B4 +U+E8B5 +U+E8B6 +U+E8B7 +U+E8B8 +U+E8B9 +U+E8BA +U+E8BB +U+E8BC +U+E8BD +U+E8BE +U+E8BF +U+E8C0 +U+E8C1 +U+E8C2 +U+E8C3 +U+E8C4 +U+E8C5 +U+E8C6 +U+E8C7 +U+E8C8 +U+E8C9 +U+E8CA +U+E8CB +U+E8CC +U+E8CD +U+E8CE +U+E8CF +U+E8D0 +U+E8D1 +U+E8D2 +U+E8D3 +U+E8D4 +U+E8D5 +U+E8D6 +U+E8D7 +U+E8D8 +U+E8D9 +U+E8DA +U+E8DB +U+E8DC +U+E8DD +U+E8DE +U+E8DF +U+E8E0 +U+E8E1 +U+E8E2 +U+E8E3 +U+E8E4 +U+E8E5 +U+E8E6 +U+E8E7 +U+E8E8 +U+E8E9 +U+E8EA +U+E8EB +U+E8EC +U+E8ED +U+E8EE +U+E8EF +U+EA60 +U+EA61 +U+EA62 +U+EA63 +U+EA64 +U+EA65 +U+EA66 +U+EA67 +U+EA68 +U+EA69 +U+EA6A +U+EA6B +U+EA6C +U+EA6D +U+EA6E +U+EA6F +U+EA70 +U+EA71 +U+EA72 +U+EA73 +U+EA74 +U+EA75 +U+EA76 +U+EA77 +U+EA78 +U+EA79 +U+EA7A +U+EA7B +U+EA7C +U+EA7D +U+EA7E +U+EA7F +U+EA80 +U+EA81 +U+EA82 +U+EA83 +U+EA84 +U+EA85 +U+EA86 +U+EA87 +U+EA88 +U+EA8A +U+EA8B +U+EA8C +U+EA8F +U+EA90 +U+EA91 +U+EA92 +U+EA93 +U+EA94 +U+EA95 +U+EA96 +U+EA97 +U+EA98 +U+EA99 +U+EA9A +U+EA9B +U+EA9C +U+EA9D +U+EA9E +U+EA9F +U+EAA0 +U+EAA1 +U+EAA2 +U+EAA3 +U+EAA4 +U+EAA5 +U+EAA6 +U+EAA7 +U+EAA8 +U+EAA9 +U+EAAA +U+EAAB +U+EAAC +U+EAAD +U+EAAE +U+EAAF +U+EAB0 +U+EAB1 +U+EAB2 +U+EAB3 +U+EAB4 +U+EAB5 +U+EAB6 +U+EAB7 +U+EAB8 +U+EAB9 +U+EABA +U+EABB +U+EABC +U+EABD +U+EABE +U+EABF +U+EAC0 +U+EAC1 +U+EAC2 +U+EAC3 +U+EAC4 +U+EAC5 +U+EAC6 +U+EAC7 +U+EAC9 +U+EACC +U+EACD +U+EACE +U+EACF +U+EAD0 +U+EAD1 +U+EAD2 +U+EAD3 +U+EAD4 +U+EAD5 +U+EAD6 +U+EAD7 +U+EAD8 +U+EAD9 +U+EADA +U+EADB +U+EADC +U+EADD +U+EADE +U+EADF +U+EAE0 +U+EAE1 +U+EAE2 +U+EAE3 +U+EAE4 +U+EAE5 +U+EAE6 +U+EAE7 +U+EAE8 +U+EAE9 +U+EAEA +U+EAEB +U+EAEC +U+EAED +U+EAEE +U+EAEF +U+EAF0 +U+EAF1 +U+EAF2 +U+EAF3 +U+EAF4 +U+EAF5 +U+EAF6 +U+EAF7 +U+EAF8 +U+EAF9 +U+EAFA +U+EAFB +U+EAFC +U+EAFD +U+EAFE +U+EAFF +U+EB00 +U+EB01 +U+EB02 +U+EB03 +U+EB04 +U+EB05 +U+EB06 +U+EB07 +U+EB08 +U+EB09 +U+EB0B +U+EB0C +U+EB0D +U+EB0E +U+EB0F +U+EB10 +U+EB11 +U+EB12 +U+EB13 +U+EB14 +U+EB15 +U+EB16 +U+EB17 +U+EB18 +U+EB19 +U+EB1A +U+EB1B +U+EB1C +U+EB1D +U+EB1E +U+EB1F +U+EB20 +U+EB21 +U+EB22 +U+EB23 +U+EB24 +U+EB25 +U+EB26 +U+EB27 +U+EB28 +U+EB29 +U+EB2A +U+EB2B +U+EB2C +U+EB2D +U+EB2E +U+EB2F +U+EB30 +U+EB31 +U+EB32 +U+EB33 +U+EB34 +U+EB35 +U+EB36 +U+EB37 +U+EB38 +U+EB39 +U+EB3A +U+EB3B +U+EB3C +U+EB3D +U+EB3E +U+EB3F +U+EB40 +U+EB41 +U+EB42 +U+EB43 +U+EB44 +U+EB45 +U+EB46 +U+EB47 +U+EB48 +U+EB49 +U+EB4A +U+EB4B +U+EB4C +U+EB4D +U+EB4E +U+EB50 +U+EB51 +U+EB52 +U+EB53 +U+EB54 +U+EB55 +U+EB56 +U+EB57 +U+EB58 +U+EB59 +U+EB5A +U+EB5B +U+EB5C +U+EB5D +U+EB5E +U+EB5F +U+EB60 +U+EB61 +U+EB62 +U+EB63 +U+EB64 +U+EB65 +U+EB66 +U+EB67 +U+EB68 +U+EB69 +U+EB6A +U+EB6B +U+EB6C +U+EB6D +U+EB6E +U+EB6F +U+EB70 +U+EB71 +U+EB72 +U+EB73 +U+EB74 +U+EB75 +U+EB76 +U+EB77 +U+EB78 +U+EB79 +U+EB7A +U+EB7B +U+EB7C +U+EB7D +U+EB7E +U+EB7F +U+EB80 +U+EB81 +U+EB82 +U+EB83 +U+EB84 +U+EB85 +U+EB86 +U+EB87 +U+EB88 +U+EB89 +U+EB8A +U+EB8B +U+EB8C +U+EB8D +U+EB8E +U+EB8F +U+EB90 +U+EB91 +U+EB92 +U+EB93 +U+EB94 +U+EB95 +U+EB96 +U+EB97 +U+EB98 +U+EB99 +U+EB9A +U+EB9B +U+EB9C +U+EB9D +U+EB9E +U+EB9F +U+EBA0 +U+EBA1 +U+EBA2 +U+EBA3 +U+EBA4 +U+EBA5 +U+EBA6 +U+EBA7 +U+EBA8 +U+EBA9 +U+EBAA +U+EBAB +U+EBAC +U+EBAD +U+EBAE +U+EBAF +U+EBB0 +U+EBB1 +U+EBB2 +U+EBB3 +U+EBB4 +U+EBB5 +U+EBB6 +U+EBB7 +U+EBB8 +U+EBB9 +U+EBBA +U+EBBB +U+EBBC +U+EBBD +U+EBBE +U+EBBF +U+EBC0 +U+EBC1 +U+EBC2 +U+EBC3 +U+EBC4 +U+EBC5 +U+EBC6 +U+EBC7 +U+EBC8 +U+EBC9 +U+EBCA +U+EBCB +U+EBCC +U+EBCD +U+EBCE +U+EBCF +U+EBD0 +U+EBD1 +U+EBD2 +U+EBD3 +U+EBD4 +U+EBD5 +U+EBD6 +U+EBD7 +U+EBD8 +U+EBD9 +U+EBDA +U+EBDB +U+EBDC +U+EBDD +U+EBDE +U+EBDF +U+EBE0 +U+EBE1 +U+EBE2 +U+EBE3 +U+EBE4 +U+EBE5 +U+EBE6 +U+EBE7 +U+EBE8 +U+EBE9 +U+EBEA +U+EBEB +U+EBEC +U+EBED +U+EBEE +U+EBEF +U+EBF0 +U+EBF1 +U+EBF2 +U+EBF3 +U+EBF4 +U+EBF5 +U+EBF6 +U+EBF7 +U+EBF8 +U+EBF9 +U+EBFA +U+EBFB +U+EBFC +U+EBFD +U+EBFE +U+EBFF +U+EC00 +U+EC01 +U+EC02 +U+EC03 +U+EC04 +U+EC05 +U+EC06 +U+EC07 +U+EC08 +U+EC09 +U+EC0A +U+EC0B +U+EC0C +U+EC0D +U+EC0E +U+EC0F +U+EC10 +U+EC11 +U+EC12 +U+EC13 +U+EC14 +U+EC15 +U+EC16 +U+EC17 +U+EC18 +U+EC19 +U+EC1A +U+EC1B +U+EC1C +U+EC1D +U+EC1E +U+ED00 +U+ED01 +U+ED02 +U+ED03 +U+ED04 +U+ED05 +U+ED06 +U+ED07 +U+ED08 +U+ED09 +U+ED0A +U+ED0B +U+ED0C +U+ED0D +U+ED0E +U+ED0F +U+ED10 +U+ED11 +U+ED12 +U+ED13 +U+ED14 +U+ED15 +U+ED16 +U+ED17 +U+ED18 +U+ED19 +U+ED1A +U+ED1B +U+ED1C +U+ED1D +U+ED1E +U+ED1F +U+ED20 +U+ED21 +U+ED22 +U+ED23 +U+ED24 +U+ED25 +U+ED26 +U+ED27 +U+ED28 +U+ED29 +U+ED2A +U+ED2B +U+ED2C +U+ED2D +U+ED2E +U+ED2F +U+ED30 +U+ED31 +U+ED32 +U+ED33 +U+ED34 +U+ED35 +U+ED36 +U+ED37 +U+ED38 +U+ED39 +U+ED3A +U+ED3B +U+ED3C +U+ED3D +U+ED3E +U+ED3F +U+ED40 +U+ED41 +U+ED42 +U+ED43 +U+ED44 +U+ED45 +U+ED46 +U+ED47 +U+ED48 +U+ED49 +U+ED4A +U+ED4B +U+ED4C +U+ED4D +U+ED4E +U+ED4F +U+ED50 +U+ED51 +U+ED52 +U+ED53 +U+ED54 +U+ED55 +U+ED56 +U+ED57 +U+ED58 +U+ED59 +U+ED5A +U+ED5B +U+ED5C +U+ED5D +U+ED5E +U+ED5F +U+ED60 +U+ED61 +U+ED62 +U+ED63 +U+ED64 +U+ED65 +U+ED66 +U+ED67 +U+ED68 +U+ED69 +U+ED6A +U+ED6B +U+ED6C +U+ED6D +U+ED6E +U+ED6F +U+ED70 +U+ED71 +U+ED72 +U+ED73 +U+ED74 +U+ED75 +U+ED76 +U+ED77 +U+ED78 +U+ED79 +U+ED7A +U+ED7B +U+ED7C +U+ED7D +U+ED7E +U+ED7F +U+ED80 +U+ED81 +U+ED82 +U+ED83 +U+ED84 +U+ED85 +U+ED86 +U+ED87 +U+ED88 +U+ED89 +U+ED8A +U+ED8B +U+ED8C +U+ED8D +U+ED8E +U+ED8F +U+ED90 +U+ED91 +U+ED92 +U+ED93 +U+ED94 +U+ED95 +U+ED96 +U+ED97 +U+ED98 +U+ED99 +U+ED9A +U+ED9B +U+ED9C +U+ED9D +U+ED9E +U+ED9F +U+EDA0 +U+EDA1 +U+EDA2 +U+EDA3 +U+EDA4 +U+EDA5 +U+EDA6 +U+EDA7 +U+EDA8 +U+EDA9 +U+EDAA +U+EDAB +U+EDAC +U+EDAD +U+EDAE +U+EDAF +U+EDB0 +U+EDB1 +U+EDB2 +U+EDB3 +U+EDB4 +U+EDB5 +U+EDB6 +U+EDB7 +U+EDB8 +U+EDB9 +U+EDBA +U+EDBB +U+EDBC +U+EDBD +U+EDBE +U+EDBF +U+EDC0 +U+EDC1 +U+EDC2 +U+EDC3 +U+EDC4 +U+EDC5 +U+EDC6 +U+EDC7 +U+EDC8 +U+EDC9 +U+EDCA +U+EDCB +U+EDCC +U+EDCD +U+EDCE +U+EDCF +U+EDD0 +U+EDD1 +U+EDD2 +U+EDD3 +U+EDD4 +U+EDD5 +U+EDD6 +U+EDD7 +U+EDD8 +U+EDD9 +U+EDDA +U+EDDB +U+EDDC +U+EDDD +U+EDDE +U+EDDF +U+EDE0 +U+EDE1 +U+EDE2 +U+EDE3 +U+EDE4 +U+EDE5 +U+EDE6 +U+EDE7 +U+EDE8 +U+EDE9 +U+EDEA +U+EDEB +U+EDEC +U+EDED +U+EDEE +U+EDEF +U+EDF0 +U+EDF1 +U+EDF2 +U+EDF3 +U+EDF4 +U+EDF5 +U+EDF6 +U+EDF7 +U+EDF8 +U+EDF9 +U+EDFA +U+EDFB +U+EDFC +U+EDFD +U+EDFE +U+EDFF +U+EE00 +U+EE01 +U+EE02 +U+EE03 +U+EE04 +U+EE05 +U+EE06 +U+EE07 +U+EE08 +U+EE09 +U+EE0A +U+EE0B +U+EE0C +U+EE0D +U+EE0E +U+EE0F +U+EE10 +U+EE11 +U+EE12 +U+EE13 +U+EE14 +U+EE15 +U+EE16 +U+EE17 +U+EE18 +U+EE19 +U+EE1A +U+EE1B +U+EE1C +U+EE1D +U+EE1E +U+EE1F +U+EE20 +U+EE21 +U+EE22 +U+EE23 +U+EE24 +U+EE25 +U+EE26 +U+EE27 +U+EE28 +U+EE29 +U+EE2A +U+EE2B +U+EE2C +U+EE2D +U+EE2E +U+EE2F +U+EE30 +U+EE31 +U+EE32 +U+EE33 +U+EE34 +U+EE35 +U+EE36 +U+EE37 +U+EE38 +U+EE39 +U+EE3A +U+EE3B +U+EE3C +U+EE3D +U+EE3E +U+EE3F +U+EE40 +U+EE41 +U+EE42 +U+EE43 +U+EE44 +U+EE45 +U+EE46 +U+EE47 +U+EE48 +U+EE49 +U+EE4A +U+EE4B +U+EE4C +U+EE4D +U+EE4E +U+EE4F +U+EE50 +U+EE51 +U+EE52 +U+EE53 +U+EE54 +U+EE55 +U+EE56 +U+EE57 +U+EE58 +U+EE59 +U+EE5A +U+EE5B +U+EE5C +U+EE5D +U+EE5E +U+EE5F +U+EE60 +U+EE61 +U+EE62 +U+EE63 +U+EE64 +U+EE65 +U+EE66 +U+EE67 +U+EE68 +U+EE69 +U+EE6A +U+EE6B +U+EE6C +U+EE6D +U+EE6E +U+EE6F +U+EE70 +U+EE71 +U+EE72 +U+EE73 +U+EE74 +U+EE75 +U+EE76 +U+EE77 +U+EE78 +U+EE79 +U+EE7A +U+EE7B +U+EE7C +U+EE7D +U+EE7E +U+EE7F +U+EE80 +U+EE81 +U+EE82 +U+EE83 +U+EE84 +U+EE85 +U+EE86 +U+EE87 +U+EE88 +U+EE89 +U+EE8A +U+EE8B +U+EE8C +U+EE8D +U+EE8E +U+EE8F +U+EE90 +U+EE91 +U+EE92 +U+EE93 +U+EE94 +U+EE95 +U+EE96 +U+EE97 +U+EE98 +U+EE99 +U+EE9A +U+EE9B +U+EE9C +U+EE9D +U+EE9E +U+EE9F +U+EEA0 +U+EEA1 +U+EEA2 +U+EEA3 +U+EEA4 +U+EEA5 +U+EEA6 +U+EEA7 +U+EEA8 +U+EEA9 +U+EEAA +U+EEAB +U+EEAC +U+EEAD +U+EEAE +U+EEAF +U+EEB0 +U+EEB1 +U+EEB2 +U+EEB3 +U+EEB4 +U+EEB5 +U+EEB6 +U+EEB7 +U+EEB8 +U+EEB9 +U+EEBA +U+EEBB +U+EEBC +U+EEBD +U+EEBE +U+EEBF +U+EEC0 +U+EEC1 +U+EEC2 +U+EEC3 +U+EEC4 +U+EEC5 +U+EEC6 +U+EEC7 +U+EEC8 +U+EEC9 +U+EECA +U+EECB +U+EECC +U+EECD +U+EECE +U+EECF +U+EED0 +U+EED1 +U+EED2 +U+EED3 +U+EED4 +U+EED5 +U+EED6 +U+EED7 +U+EED8 +U+EED9 +U+EEDA +U+EEDB +U+EEDC +U+EEDD +U+EEDE +U+EEDF +U+EEE0 +U+EEE1 +U+EEE2 +U+EEE3 +U+EEE4 +U+EEE5 +U+EEE6 +U+EEE7 +U+EEE8 +U+EEE9 +U+EEEA +U+EEEB +U+EEEC +U+EEED +U+EEEE +U+EEEF +U+EEF0 +U+EEF1 +U+EEF2 +U+EEF3 +U+EEF4 +U+EEF5 +U+EEF6 +U+EEF7 +U+EEF8 +U+EEF9 +U+EEFA +U+EEFB +U+EEFC +U+EEFD +U+EEFE +U+EEFF +U+EF00 +U+EF01 +U+EF02 +U+EF03 +U+EF04 +U+EF05 +U+EF06 +U+EF07 +U+EF08 +U+EF09 +U+EF0A +U+EF0B +U+EF0C +U+EF0D +U+EF0E +U+EF0F +U+EF10 +U+EF11 +U+EF12 +U+EF13 +U+EF14 +U+EF15 +U+EF16 +U+EF17 +U+EF18 +U+EF19 +U+EF1A +U+EF1B +U+EF1C +U+EF1D +U+EF1E +U+EF1F +U+EF20 +U+EF21 +U+EF22 +U+EF23 +U+EF24 +U+EF25 +U+EF26 +U+EF27 +U+EF28 +U+EF29 +U+EF2A +U+EF2B +U+EF2C +U+EF2D +U+EF2E +U+EF2F +U+EF30 +U+EF31 +U+EF32 +U+EF33 +U+EF34 +U+EF35 +U+EF36 +U+EF37 +U+EF38 +U+EF39 +U+EF3A +U+EF3B +U+EF3C +U+EF3D +U+EF3E +U+EF3F +U+EF40 +U+EF41 +U+EF42 +U+EF43 +U+EF44 +U+EF45 +U+EF46 +U+EF47 +U+EF48 +U+EF49 +U+EF4A +U+EF4B +U+EF4C +U+EF4D +U+EF4E +U+EF4F +U+EF50 +U+EF51 +U+EF52 +U+EF53 +U+EF54 +U+EF55 +U+EF56 +U+EF57 +U+EF58 +U+EF59 +U+EF5A +U+EF5B +U+EF5C +U+EF5D +U+EF5E +U+EF5F +U+EF60 +U+EF61 +U+EF62 +U+EF63 +U+EF64 +U+EF65 +U+EF66 +U+EF67 +U+EF68 +U+EF69 +U+EF6A +U+EF6B +U+EF6C +U+EF6D +U+EF6E +U+EF6F +U+EF70 +U+EF71 +U+EF72 +U+EF73 +U+EF74 +U+EF75 +U+EF76 +U+EF77 +U+EF78 +U+EF79 +U+EF7A +U+EF7B +U+EF7C +U+EF7D +U+EF7E +U+EF7F +U+EF80 +U+EF81 +U+EF82 +U+EF83 +U+EF84 +U+EF85 +U+EF86 +U+EF87 +U+EF88 +U+EF89 +U+EF8A +U+EF8B +U+EF8C +U+EF8D +U+EF8E +U+EF8F +U+EF90 +U+EF91 +U+EF92 +U+EF93 +U+EF94 +U+EF95 +U+EF96 +U+EF97 +U+EF98 +U+EF99 +U+EF9A +U+EF9B +U+EF9C +U+EF9D +U+EF9E +U+EF9F +U+EFA0 +U+EFA1 +U+EFA2 +U+EFA3 +U+EFA4 +U+EFA5 +U+EFA6 +U+EFA7 +U+EFA8 +U+EFA9 +U+EFAA +U+EFAB +U+EFAC +U+EFAD +U+EFAE +U+EFAF +U+EFB0 +U+EFB1 +U+EFB2 +U+EFB3 +U+EFB4 +U+EFB5 +U+EFB6 +U+EFB7 +U+EFB8 +U+EFB9 +U+EFBA +U+EFBB +U+EFBC +U+EFBD +U+EFBE +U+EFBF +U+EFC0 +U+EFC1 +U+EFC2 +U+EFC3 +U+EFC4 +U+EFC5 +U+EFC6 +U+EFC7 +U+EFC8 +U+EFC9 +U+EFCA +U+EFCB +U+EFCC +U+EFCD +U+EFCE +U+F000 +U+F001 +U+F002 +U+F003 +U+F004 +U+F005 +U+F006 +U+F007 +U+F008 +U+F009 +U+F00A +U+F00B +U+F00C +U+F00D +U+F00E +U+F00F +U+F010 +U+F011 +U+F012 +U+F013 +U+F014 +U+F015 +U+F016 +U+F017 +U+F018 +U+F019 +U+F01A +U+F01B +U+F01C +U+F01D +U+F01E +U+F01F +U+F020 +U+F021 +U+F022 +U+F023 +U+F024 +U+F025 +U+F026 +U+F027 +U+F028 +U+F029 +U+F02A +U+F02B +U+F02C +U+F02D +U+F02E +U+F02F +U+F030 +U+F031 +U+F032 +U+F033 +U+F034 +U+F035 +U+F036 +U+F037 +U+F038 +U+F039 +U+F03A +U+F03B +U+F03C +U+F03D +U+F03E +U+F03F +U+F040 +U+F041 +U+F042 +U+F043 +U+F044 +U+F045 +U+F046 +U+F047 +U+F048 +U+F049 +U+F04A +U+F04B +U+F04C +U+F04D +U+F04E +U+F04F +U+F050 +U+F051 +U+F052 +U+F053 +U+F054 +U+F055 +U+F056 +U+F057 +U+F058 +U+F059 +U+F05A +U+F05B +U+F05C +U+F05D +U+F05E +U+F05F +U+F060 +U+F061 +U+F062 +U+F063 +U+F064 +U+F065 +U+F066 +U+F067 +U+F068 +U+F069 +U+F06A +U+F06B +U+F06C +U+F06D +U+F06E +U+F06F +U+F070 +U+F071 +U+F072 +U+F073 +U+F074 +U+F075 +U+F076 +U+F077 +U+F078 +U+F079 +U+F07A +U+F07B +U+F07C +U+F07D +U+F07E +U+F07F +U+F080 +U+F081 +U+F082 +U+F083 +U+F084 +U+F085 +U+F086 +U+F087 +U+F088 +U+F089 +U+F08A +U+F08B +U+F08C +U+F08D +U+F08E +U+F08F +U+F090 +U+F091 +U+F092 +U+F093 +U+F094 +U+F095 +U+F096 +U+F097 +U+F098 +U+F099 +U+F09A +U+F09B +U+F09C +U+F09D +U+F09E +U+F09F +U+F0A0 +U+F0A1 +U+F0A2 +U+F0A3 +U+F0A4 +U+F0A5 +U+F0A6 +U+F0A7 +U+F0A8 +U+F0A9 +U+F0AA +U+F0AB +U+F0AC +U+F0AD +U+F0AE +U+F0AF +U+F0B0 +U+F0B1 +U+F0B2 +U+F0B3 +U+F0B4 +U+F0B5 +U+F0B6 +U+F0B7 +U+F0B8 +U+F0B9 +U+F0BA +U+F0BB +U+F0BC +U+F0BD +U+F0BE +U+F0BF +U+F0C0 +U+F0C1 +U+F0C2 +U+F0C3 +U+F0C4 +U+F0C5 +U+F0C6 +U+F0C7 +U+F0C8 +U+F0C9 +U+F0CA +U+F0CB +U+F0CC +U+F0CD +U+F0CE +U+F0CF +U+F0D0 +U+F0D1 +U+F0D2 +U+F0D3 +U+F0D4 +U+F0D5 +U+F0D6 +U+F0D7 +U+F0D8 +U+F0D9 +U+F0DA +U+F0DB +U+F0DC +U+F0DD +U+F0DE +U+F0DF +U+F0E0 +U+F0E1 +U+F0E2 +U+F0E3 +U+F0E4 +U+F0E5 +U+F0E6 +U+F0E7 +U+F0E8 +U+F0E9 +U+F0EA +U+F0EB +U+F0EC +U+F0ED +U+F0EE +U+F0EF +U+F0F0 +U+F0F1 +U+F0F2 +U+F0F3 +U+F0F4 +U+F0F5 +U+F0F6 +U+F0F7 +U+F0F8 +U+F0F9 +U+F0FA +U+F0FB +U+F0FC +U+F0FD +U+F0FE +U+F0FF +U+F100 +U+F101 +U+F102 +U+F103 +U+F104 +U+F105 +U+F106 +U+F107 +U+F108 +U+F109 +U+F10A +U+F10B +U+F10C +U+F10D +U+F10E +U+F10F +U+F110 +U+F111 +U+F112 +U+F113 +U+F114 +U+F115 +U+F116 +U+F117 +U+F118 +U+F119 +U+F11A +U+F11B +U+F11C +U+F11D +U+F11E +U+F11F +U+F120 +U+F121 +U+F122 +U+F123 +U+F124 +U+F125 +U+F126 +U+F127 +U+F128 +U+F129 +U+F12A +U+F12B +U+F12C +U+F12D +U+F12E +U+F12F +U+F130 +U+F131 +U+F132 +U+F133 +U+F134 +U+F135 +U+F136 +U+F137 +U+F138 +U+F139 +U+F13A +U+F13B +U+F13C +U+F13D +U+F13E +U+F13F +U+F140 +U+F141 +U+F142 +U+F143 +U+F144 +U+F145 +U+F146 +U+F147 +U+F148 +U+F149 +U+F14A +U+F14B +U+F14C +U+F14D +U+F14E +U+F14F +U+F150 +U+F151 +U+F152 +U+F153 +U+F154 +U+F155 +U+F156 +U+F157 +U+F158 +U+F159 +U+F15A +U+F15B +U+F15C +U+F15D +U+F15E +U+F15F +U+F160 +U+F161 +U+F162 +U+F163 +U+F164 +U+F165 +U+F166 +U+F167 +U+F168 +U+F169 +U+F16A +U+F16B +U+F16C +U+F16D +U+F16E +U+F16F +U+F170 +U+F171 +U+F172 +U+F173 +U+F174 +U+F175 +U+F176 +U+F177 +U+F178 +U+F179 +U+F17A +U+F17B +U+F17C +U+F17D +U+F17E +U+F17F +U+F180 +U+F181 +U+F182 +U+F183 +U+F184 +U+F185 +U+F186 +U+F187 +U+F188 +U+F189 +U+F18A +U+F18B +U+F18C +U+F18D +U+F18E +U+F18F +U+F190 +U+F191 +U+F192 +U+F193 +U+F194 +U+F195 +U+F196 +U+F197 +U+F198 +U+F199 +U+F19A +U+F19B +U+F19C +U+F19D +U+F19E +U+F19F +U+F1A0 +U+F1A1 +U+F1A2 +U+F1A3 +U+F1A4 +U+F1A5 +U+F1A6 +U+F1A7 +U+F1A8 +U+F1A9 +U+F1AA +U+F1AB +U+F1AC +U+F1AD +U+F1AE +U+F1AF +U+F1B0 +U+F1B1 +U+F1B2 +U+F1B3 +U+F1B4 +U+F1B5 +U+F1B6 +U+F1B7 +U+F1B8 +U+F1B9 +U+F1BA +U+F1BB +U+F1BC +U+F1BD +U+F1BE +U+F1BF +U+F1C0 +U+F1C1 +U+F1C2 +U+F1C3 +U+F1C4 +U+F1C5 +U+F1C6 +U+F1C7 +U+F1C8 +U+F1C9 +U+F1CA +U+F1CB +U+F1CC +U+F1CD +U+F1CE +U+F1CF +U+F1D0 +U+F1D1 +U+F1D2 +U+F1D3 +U+F1D4 +U+F1D5 +U+F1D6 +U+F1D7 +U+F1D8 +U+F1D9 +U+F1DA +U+F1DB +U+F1DC +U+F1DD +U+F1DE +U+F1DF +U+F1E0 +U+F1E1 +U+F1E2 +U+F1E3 +U+F1E4 +U+F1E5 +U+F1E6 +U+F1E7 +U+F1E8 +U+F1E9 +U+F1EA +U+F1EB +U+F1EC +U+F1ED +U+F1EE +U+F1EF +U+F1F0 +U+F1F1 +U+F1F2 +U+F1F3 +U+F1F4 +U+F1F5 +U+F1F6 +U+F1F7 +U+F1F8 +U+F1F9 +U+F1FA +U+F1FB +U+F1FC +U+F1FD +U+F1FE +U+F1FF +U+F200 +U+F201 +U+F202 +U+F203 +U+F204 +U+F205 +U+F206 +U+F207 +U+F208 +U+F209 +U+F20A +U+F20B +U+F20C +U+F20D +U+F20E +U+F20F +U+F210 +U+F211 +U+F212 +U+F213 +U+F214 +U+F215 +U+F216 +U+F217 +U+F218 +U+F219 +U+F21A +U+F21B +U+F21C +U+F21D +U+F21E +U+F21F +U+F220 +U+F221 +U+F222 +U+F223 +U+F224 +U+F225 +U+F226 +U+F227 +U+F228 +U+F229 +U+F22A +U+F22B +U+F22C +U+F22D +U+F22E +U+F22F +U+F230 +U+F231 +U+F232 +U+F233 +U+F234 +U+F235 +U+F236 +U+F237 +U+F238 +U+F239 +U+F23A +U+F23B +U+F23C +U+F23D +U+F23E +U+F23F +U+F240 +U+F241 +U+F242 +U+F243 +U+F244 +U+F245 +U+F246 +U+F247 +U+F248 +U+F249 +U+F24A +U+F24B +U+F24C +U+F24D +U+F24E +U+F24F +U+F250 +U+F251 +U+F252 +U+F253 +U+F254 +U+F255 +U+F256 +U+F257 +U+F258 +U+F259 +U+F25A +U+F25B +U+F25C +U+F25D +U+F25E +U+F25F +U+F260 +U+F261 +U+F262 +U+F263 +U+F264 +U+F265 +U+F266 +U+F267 +U+F268 +U+F269 +U+F26A +U+F26B +U+F26C +U+F26D +U+F26E +U+F26F +U+F270 +U+F271 +U+F272 +U+F273 +U+F274 +U+F275 +U+F276 +U+F277 +U+F278 +U+F279 +U+F27A +U+F27B +U+F27C +U+F27D +U+F27E +U+F27F +U+F280 +U+F281 +U+F282 +U+F283 +U+F284 +U+F285 +U+F286 +U+F287 +U+F288 +U+F289 +U+F28A +U+F28B +U+F28C +U+F28D +U+F28E +U+F28F +U+F290 +U+F291 +U+F292 +U+F293 +U+F294 +U+F295 +U+F296 +U+F297 +U+F298 +U+F299 +U+F29A +U+F29B +U+F29C +U+F29D +U+F29E +U+F29F +U+F2A0 +U+F2A1 +U+F2A2 +U+F2A3 +U+F2A4 +U+F2A5 +U+F2A6 +U+F2A7 +U+F2A8 +U+F2A9 +U+F2AA +U+F2AB +U+F2AC +U+F2AD +U+F2AE +U+F2AF +U+F2B0 +U+F2B1 +U+F2B2 +U+F2B3 +U+F2B4 +U+F2B5 +U+F2B6 +U+F2B7 +U+F2B8 +U+F2B9 +U+F2BA +U+F2BB +U+F2BC +U+F2BD +U+F2BE +U+F2BF +U+F2C0 +U+F2C1 +U+F2C2 +U+F2C3 +U+F2C4 +U+F2C5 +U+F2C6 +U+F2C7 +U+F2C8 +U+F2C9 +U+F2CA +U+F2CB +U+F2CC +U+F2CD +U+F2CE +U+F2CF +U+F2D0 +U+F2D1 +U+F2D2 +U+F2D3 +U+F2D4 +U+F2D5 +U+F2D6 +U+F2D7 +U+F2D8 +U+F2D9 +U+F2DA +U+F2DB +U+F2DC +U+F2DD +U+F2DE +U+F2DF +U+F2E0 +U+F2E1 +U+F2E2 +U+F2E3 +U+F2E4 +U+F2E5 +U+F2E6 +U+F2E7 +U+F2E8 +U+F2E9 +U+F2EA +U+F2EB +U+F2EC +U+F2ED +U+F2EE +U+F2EF +U+F2F0 +U+F2F1 +U+F2F2 +U+F2F3 +U+F2F4 +U+F2F5 +U+F2F6 +U+F2F7 +U+F2F8 +U+F2F9 +U+F2FA +U+F2FB +U+F2FC +U+F2FD +U+F2FE +U+F2FF +U+F400 +U+F401 +U+F402 +U+F403 +U+F404 +U+F405 +U+F406 +U+F407 +U+F408 +U+F409 +U+F40A +U+F40B +U+F40C +U+F40D +U+F40E +U+F40F +U+F410 +U+F411 +U+F412 +U+F413 +U+F414 +U+F415 +U+F416 +U+F417 +U+F418 +U+F419 +U+F41A +U+F41B +U+F41C +U+F41D +U+F41E +U+F41F +U+F420 +U+F421 +U+F422 +U+F423 +U+F424 +U+F425 +U+F426 +U+F427 +U+F428 +U+F429 +U+F42A +U+F42B +U+F42C +U+F42D +U+F42E +U+F42F +U+F430 +U+F431 +U+F432 +U+F433 +U+F434 +U+F435 +U+F436 +U+F437 +U+F438 +U+F439 +U+F43A +U+F43B +U+F43C +U+F43D +U+F43E +U+F43F +U+F440 +U+F441 +U+F442 +U+F443 +U+F444 +U+F445 +U+F446 +U+F447 +U+F448 +U+F449 +U+F44A +U+F44B +U+F44C +U+F44D +U+F44E +U+F44F +U+F450 +U+F451 +U+F452 +U+F453 +U+F454 +U+F455 +U+F456 +U+F457 +U+F458 +U+F459 +U+F45A +U+F45B +U+F45C +U+F45D +U+F45E +U+F45F +U+F460 +U+F461 +U+F462 +U+F463 +U+F464 +U+F465 +U+F466 +U+F467 +U+F468 +U+F469 +U+F46A +U+F46B +U+F46C +U+F46D +U+F46E +U+F46F +U+F470 +U+F471 +U+F472 +U+F473 +U+F474 +U+F475 +U+F476 +U+F477 +U+F478 +U+F479 +U+F47A +U+F47B +U+F47C +U+F47D +U+F47E +U+F47F +U+F480 +U+F481 +U+F482 +U+F483 +U+F484 +U+F485 +U+F486 +U+F487 +U+F488 +U+F489 +U+F48A +U+F48B +U+F48C +U+F48D +U+F48E +U+F48F +U+F490 +U+F491 +U+F492 +U+F493 +U+F494 +U+F495 +U+F496 +U+F497 +U+F498 +U+F499 +U+F49A +U+F49B +U+F49C +U+F49D +U+F49E +U+F49F +U+F4A0 +U+F4A1 +U+F4A2 +U+F4A3 +U+F4A4 +U+F4A5 +U+F4A6 +U+F4A7 +U+F4A8 +U+F4A9 +U+F4AA +U+F4AB +U+F4AC +U+F4AD +U+F4AE +U+F4AF +U+F4B0 +U+F4B1 +U+F4B2 +U+F4B3 +U+F4B4 +U+F4B5 +U+F4B6 +U+F4B7 +U+F4B8 +U+F4B9 +U+F4BA +U+F4BB +U+F4BC +U+F4BD +U+F4BE +U+F4BF +U+F4C0 +U+F4C1 +U+F4C2 +U+F4C3 +U+F4C4 +U+F4C5 +U+F4C6 +U+F4C7 +U+F4C8 +U+F4C9 +U+F4CA +U+F4CB +U+F4CC +U+F4CD +U+F4CE +U+F4CF +U+F4D0 +U+F4D1 +U+F4D2 +U+F4D3 +U+F4D4 +U+F4D5 +U+F4D6 +U+F4D7 +U+F4D8 +U+F4D9 +U+F4DA +U+F4DB +U+F4DC +U+F4DD +U+F4DE +U+F4DF +U+F4E0 +U+F4E1 +U+F4E2 +U+F4E3 +U+F4E4 +U+F4E5 +U+F4E6 +U+F4E7 +U+F4E8 +U+F4E9 +U+F4EA +U+F4EB +U+F4EC +U+F4ED +U+F4EE +U+F4EF +U+F4F0 +U+F4F1 +U+F4F2 +U+F4F3 +U+F4F4 +U+F4F5 +U+F4F6 +U+F4F7 +U+F4F8 +U+F4F9 +U+F4FA +U+F4FB +U+F4FC +U+F4FD +U+F4FE +U+F4FF +U+F500 +U+F501 +U+F502 +U+F503 +U+F504 +U+F505 +U+F506 +U+F507 +U+F508 +U+F509 +U+F50A +U+F50B +U+F50C +U+F50D +U+F50E +U+F50F +U+F510 +U+F511 +U+F512 +U+F513 +U+F514 +U+F515 +U+F516 +U+F517 +U+F518 +U+F519 +U+F51A +U+F51B +U+F51C +U+F51D +U+F51E +U+F51F +U+F520 +U+F521 +U+F522 +U+F523 +U+F524 +U+F525 +U+F526 +U+F527 +U+F528 +U+F529 +U+F52A +U+F52B +U+F52C +U+F52D +U+F52E +U+F52F +U+F530 +U+F531 +U+F532 +U+F533 +U+F0001 +U+F0002 +U+F0003 +U+F0004 +U+F0005 +U+F0006 +U+F0007 +U+F0008 +U+F0009 +U+F000A +U+F000B +U+F000C +U+F000D +U+F000E +U+F000F +U+F0010 +U+F0011 +U+F0012 +U+F0013 +U+F0014 +U+F0015 +U+F0016 +U+F0017 +U+F0018 +U+F0019 +U+F001A +U+F001B +U+F001C +U+F001D +U+F001E +U+F001F +U+F0020 +U+F0021 +U+F0022 +U+F0023 +U+F0024 +U+F0025 +U+F0026 +U+F0027 +U+F0028 +U+F0029 +U+F002A +U+F002B +U+F002C +U+F002D +U+F002E +U+F002F +U+F0030 +U+F0031 +U+F0032 +U+F0033 +U+F0034 +U+F0035 +U+F0036 +U+F0037 +U+F0038 +U+F0039 +U+F003A +U+F003B +U+F003C +U+F003D +U+F003E +U+F003F +U+F0040 +U+F0041 +U+F0042 +U+F0043 +U+F0044 +U+F0045 +U+F0046 +U+F0047 +U+F0048 +U+F0049 +U+F004A +U+F004B +U+F004C +U+F004D +U+F004E +U+F004F +U+F0050 +U+F0051 +U+F0052 +U+F0053 +U+F0054 +U+F0055 +U+F0056 +U+F0057 +U+F0058 +U+F0059 +U+F005A +U+F005B +U+F005C +U+F005D +U+F005E +U+F005F +U+F0060 +U+F0061 +U+F0062 +U+F0063 +U+F0064 +U+F0065 +U+F0066 +U+F0067 +U+F0068 +U+F0069 +U+F006A +U+F006B +U+F006C +U+F006D +U+F006E +U+F006F +U+F0070 +U+F0071 +U+F0072 +U+F0073 +U+F0074 +U+F0075 +U+F0076 +U+F0077 +U+F0078 +U+F0079 +U+F007A +U+F007B +U+F007C +U+F007D +U+F007E +U+F007F +U+F0080 +U+F0081 +U+F0082 +U+F0083 +U+F0084 +U+F0085 +U+F0086 +U+F0087 +U+F0088 +U+F0089 +U+F008A +U+F008B +U+F008C +U+F008D +U+F008E +U+F008F +U+F0090 +U+F0091 +U+F0092 +U+F0093 +U+F0094 +U+F0095 +U+F0096 +U+F0097 +U+F0098 +U+F0099 +U+F009A +U+F009B +U+F009C +U+F009D +U+F009E +U+F009F +U+F00A0 +U+F00A1 +U+F00A2 +U+F00A3 +U+F00A4 +U+F00A5 +U+F00A6 +U+F00A7 +U+F00A8 +U+F00A9 +U+F00AA +U+F00AB +U+F00AC +U+F00AD +U+F00AE +U+F00AF +U+F00B0 +U+F00B1 +U+F00B2 +U+F00B3 +U+F00B4 +U+F00B5 +U+F00B6 +U+F00B7 +U+F00B8 +U+F00B9 +U+F00BA +U+F00BB +U+F00BC +U+F00BD +U+F00BE +U+F00BF +U+F00C0 +U+F00C1 +U+F00C2 +U+F00C3 +U+F00C4 +U+F00C5 +U+F00C6 +U+F00C7 +U+F00C8 +U+F00C9 +U+F00CA +U+F00CB +U+F00CC +U+F00CD +U+F00CE +U+F00CF +U+F00D0 +U+F00D1 +U+F00D2 +U+F00D3 +U+F00D4 +U+F00D5 +U+F00D6 +U+F00D7 +U+F00D8 +U+F00D9 +U+F00DA +U+F00DB +U+F00DC +U+F00DD +U+F00DE +U+F00DF +U+F00E0 +U+F00E1 +U+F00E2 +U+F00E3 +U+F00E4 +U+F00E5 +U+F00E6 +U+F00E7 +U+F00E8 +U+F00E9 +U+F00EA +U+F00EB +U+F00EC +U+F00ED +U+F00EE +U+F00EF +U+F00F0 +U+F00F1 +U+F00F2 +U+F00F3 +U+F00F4 +U+F00F5 +U+F00F6 +U+F00F7 +U+F00F8 +U+F00F9 +U+F00FA +U+F00FB +U+F00FC +U+F00FD +U+F00FE +U+F00FF +U+F0100 +U+F0101 +U+F0102 +U+F0103 +U+F0104 +U+F0105 +U+F0106 +U+F0107 +U+F0108 +U+F0109 +U+F010A +U+F010B +U+F010C +U+F010D +U+F010E +U+F010F +U+F0110 +U+F0111 +U+F0112 +U+F0113 +U+F0114 +U+F0115 +U+F0116 +U+F0117 +U+F0118 +U+F0119 +U+F011A +U+F011B +U+F011C +U+F011D +U+F011E +U+F011F +U+F0120 +U+F0121 +U+F0122 +U+F0123 +U+F0124 +U+F0125 +U+F0126 +U+F0127 +U+F0128 +U+F0129 +U+F012A +U+F012B +U+F012C +U+F012D +U+F012E +U+F012F +U+F0130 +U+F0131 +U+F0132 +U+F0133 +U+F0134 +U+F0135 +U+F0136 +U+F0137 +U+F0138 +U+F0139 +U+F013A +U+F013B +U+F013C +U+F013D +U+F013E +U+F013F +U+F0140 +U+F0141 +U+F0142 +U+F0143 +U+F0144 +U+F0145 +U+F0146 +U+F0147 +U+F0148 +U+F0149 +U+F014A +U+F014B +U+F014C +U+F014D +U+F014E +U+F014F +U+F0150 +U+F0151 +U+F0152 +U+F0153 +U+F0154 +U+F0155 +U+F0156 +U+F0157 +U+F0158 +U+F0159 +U+F015A +U+F015B +U+F015C +U+F015D +U+F015E +U+F015F +U+F0160 +U+F0161 +U+F0162 +U+F0163 +U+F0164 +U+F0165 +U+F0166 +U+F0167 +U+F0168 +U+F0169 +U+F016A +U+F016B +U+F016C +U+F016D +U+F016E +U+F016F +U+F0170 +U+F0171 +U+F0172 +U+F0173 +U+F0174 +U+F0175 +U+F0176 +U+F0177 +U+F0178 +U+F0179 +U+F017A +U+F017B +U+F017C +U+F017D +U+F017E +U+F017F +U+F0180 +U+F0181 +U+F0182 +U+F0183 +U+F0184 +U+F0185 +U+F0186 +U+F0187 +U+F0188 +U+F0189 +U+F018A +U+F018B +U+F018C +U+F018D +U+F018E +U+F018F +U+F0190 +U+F0191 +U+F0192 +U+F0193 +U+F0194 +U+F0195 +U+F0196 +U+F0197 +U+F0198 +U+F0199 +U+F019A +U+F019B +U+F019C +U+F019D +U+F019E +U+F019F +U+F01A0 +U+F01A1 +U+F01A2 +U+F01A3 +U+F01A4 +U+F01A5 +U+F01A6 +U+F01A7 +U+F01A8 +U+F01A9 +U+F01AA +U+F01AB +U+F01AC +U+F01AD +U+F01AE +U+F01AF +U+F01B0 +U+F01B1 +U+F01B2 +U+F01B3 +U+F01B4 +U+F01B5 +U+F01B6 +U+F01B7 +U+F01B8 +U+F01B9 +U+F01BA +U+F01BB +U+F01BC +U+F01BD +U+F01BE +U+F01BF +U+F01C0 +U+F01C1 +U+F01C2 +U+F01C3 +U+F01C4 +U+F01C5 +U+F01C6 +U+F01C7 +U+F01C8 +U+F01C9 +U+F01CA +U+F01CB +U+F01CC +U+F01CD +U+F01CE +U+F01CF +U+F01D0 +U+F01D1 +U+F01D2 +U+F01D3 +U+F01D4 +U+F01D5 +U+F01D6 +U+F01D7 +U+F01D8 +U+F01D9 +U+F01DA +U+F01DB +U+F01DC +U+F01DD +U+F01DE +U+F01DF +U+F01E0 +U+F01E1 +U+F01E2 +U+F01E3 +U+F01E4 +U+F01E5 +U+F01E6 +U+F01E7 +U+F01E8 +U+F01E9 +U+F01EA +U+F01EB +U+F01EC +U+F01ED +U+F01EE +U+F01EF +U+F01F0 +U+F01F1 +U+F01F2 +U+F01F3 +U+F01F4 +U+F01F5 +U+F01F6 +U+F01F7 +U+F01F8 +U+F01F9 +U+F01FA +U+F01FB +U+F01FC +U+F01FD +U+F01FE +U+F01FF +U+F0200 +U+F0201 +U+F0202 +U+F0203 +U+F0204 +U+F0205 +U+F0206 +U+F0207 +U+F0208 +U+F0209 +U+F020A +U+F020B +U+F020C +U+F020D +U+F020E +U+F020F +U+F0210 +U+F0211 +U+F0212 +U+F0213 +U+F0214 +U+F0215 +U+F0216 +U+F0217 +U+F0218 +U+F0219 +U+F021A +U+F021B +U+F021C +U+F021D +U+F021E +U+F021F +U+F0220 +U+F0221 +U+F0222 +U+F0223 +U+F0224 +U+F0225 +U+F0226 +U+F0227 +U+F0228 +U+F0229 +U+F022A +U+F022B +U+F022C +U+F022D +U+F022E +U+F022F +U+F0230 +U+F0231 +U+F0232 +U+F0233 +U+F0234 +U+F0235 +U+F0236 +U+F0237 +U+F0238 +U+F0239 +U+F023A +U+F023B +U+F023C +U+F023D +U+F023E +U+F023F +U+F0240 +U+F0241 +U+F0242 +U+F0243 +U+F0244 +U+F0245 +U+F0246 +U+F0247 +U+F0248 +U+F0249 +U+F024A +U+F024B +U+F024C +U+F024D +U+F024E +U+F024F +U+F0250 +U+F0251 +U+F0252 +U+F0253 +U+F0254 +U+F0255 +U+F0256 +U+F0257 +U+F0258 +U+F0259 +U+F025A +U+F025B +U+F025C +U+F025D +U+F025E +U+F025F +U+F0260 +U+F0261 +U+F0262 +U+F0263 +U+F0264 +U+F0265 +U+F0266 +U+F0267 +U+F0268 +U+F0269 +U+F026A +U+F026B +U+F026C +U+F026D +U+F026E +U+F026F +U+F0270 +U+F0271 +U+F0272 +U+F0273 +U+F0274 +U+F0275 +U+F0276 +U+F0277 +U+F0278 +U+F0279 +U+F027A +U+F027B +U+F027C +U+F027D +U+F027E +U+F027F +U+F0280 +U+F0281 +U+F0282 +U+F0283 +U+F0284 +U+F0285 +U+F0286 +U+F0287 +U+F0288 +U+F0289 +U+F028A +U+F028B +U+F028C +U+F028D +U+F028E +U+F028F +U+F0290 +U+F0291 +U+F0292 +U+F0293 +U+F0294 +U+F0295 +U+F0296 +U+F0297 +U+F0298 +U+F0299 +U+F029A +U+F029B +U+F029C +U+F029D +U+F029E +U+F029F +U+F02A0 +U+F02A1 +U+F02A2 +U+F02A3 +U+F02A4 +U+F02A5 +U+F02A6 +U+F02A7 +U+F02A8 +U+F02A9 +U+F02AA +U+F02AB +U+F02AC +U+F02AD +U+F02AE +U+F02AF +U+F02B0 +U+F02B1 +U+F02B2 +U+F02B3 +U+F02B4 +U+F02B5 +U+F02B6 +U+F02B7 +U+F02B8 +U+F02B9 +U+F02BA +U+F02BB +U+F02BC +U+F02BD +U+F02BE +U+F02BF +U+F02C0 +U+F02C1 +U+F02C2 +U+F02C3 +U+F02C4 +U+F02C5 +U+F02C6 +U+F02C7 +U+F02C8 +U+F02C9 +U+F02CA +U+F02CB +U+F02CC +U+F02CD +U+F02CE +U+F02CF +U+F02D0 +U+F02D1 +U+F02D2 +U+F02D3 +U+F02D4 +U+F02D5 +U+F02D6 +U+F02D7 +U+F02D8 +U+F02D9 +U+F02DA +U+F02DB +U+F02DC +U+F02DD +U+F02DE +U+F02DF +U+F02E0 +U+F02E1 +U+F02E2 +U+F02E3 +U+F02E4 +U+F02E5 +U+F02E6 +U+F02E7 +U+F02E8 +U+F02E9 +U+F02EA +U+F02EB +U+F02EC +U+F02ED +U+F02EE +U+F02EF +U+F02F0 +U+F02F1 +U+F02F2 +U+F02F3 +U+F02F4 +U+F02F5 +U+F02F6 +U+F02F7 +U+F02F8 +U+F02F9 +U+F02FA +U+F02FB +U+F02FC +U+F02FD +U+F02FE +U+F02FF +U+F0300 +U+F0301 +U+F0302 +U+F0303 +U+F0304 +U+F0305 +U+F0306 +U+F0307 +U+F0308 +U+F0309 +U+F030A +U+F030B +U+F030C +U+F030D +U+F030E +U+F030F +U+F0310 +U+F0311 +U+F0312 +U+F0313 +U+F0314 +U+F0315 +U+F0316 +U+F0317 +U+F0318 +U+F0319 +U+F031A +U+F031B +U+F031C +U+F031D +U+F031E +U+F031F +U+F0320 +U+F0321 +U+F0322 +U+F0323 +U+F0324 +U+F0325 +U+F0326 +U+F0327 +U+F0328 +U+F0329 +U+F032A +U+F032B +U+F032C +U+F032D +U+F032E +U+F032F +U+F0330 +U+F0331 +U+F0332 +U+F0333 +U+F0334 +U+F0335 +U+F0336 +U+F0337 +U+F0338 +U+F0339 +U+F033A +U+F033B +U+F033C +U+F033D +U+F033E +U+F033F +U+F0340 +U+F0341 +U+F0342 +U+F0343 +U+F0344 +U+F0345 +U+F0346 +U+F0347 +U+F0348 +U+F0349 +U+F034A +U+F034B +U+F034C +U+F034D +U+F034E +U+F034F +U+F0350 +U+F0351 +U+F0352 +U+F0353 +U+F0354 +U+F0355 +U+F0356 +U+F0357 +U+F0358 +U+F0359 +U+F035A +U+F035B +U+F035C +U+F035D +U+F035E +U+F035F +U+F0360 +U+F0361 +U+F0362 +U+F0363 +U+F0364 +U+F0365 +U+F0366 +U+F0367 +U+F0368 +U+F0369 +U+F036A +U+F036B +U+F036C +U+F036D +U+F036E +U+F036F +U+F0370 +U+F0371 +U+F0372 +U+F0373 +U+F0374 +U+F0375 +U+F0376 +U+F0377 +U+F0378 +U+F0379 +U+F037A +U+F037B +U+F037C +U+F037D +U+F037E +U+F037F +U+F0380 +U+F0381 +U+F0382 +U+F0383 +U+F0384 +U+F0385 +U+F0386 +U+F0387 +U+F0388 +U+F0389 +U+F038A +U+F038B +U+F038C +U+F038D +U+F038E +U+F038F +U+F0390 +U+F0391 +U+F0392 +U+F0393 +U+F0394 +U+F0395 +U+F0396 +U+F0397 +U+F0398 +U+F0399 +U+F039A +U+F039B +U+F039C +U+F039D +U+F039E +U+F039F +U+F03A0 +U+F03A1 +U+F03A2 +U+F03A3 +U+F03A4 +U+F03A5 +U+F03A6 +U+F03A7 +U+F03A8 +U+F03A9 +U+F03AA +U+F03AB +U+F03AC +U+F03AD +U+F03AE +U+F03AF +U+F03B0 +U+F03B1 +U+F03B2 +U+F03B3 +U+F03B4 +U+F03B5 +U+F03B6 +U+F03B7 +U+F03B8 +U+F03B9 +U+F03BA +U+F03BB +U+F03BC +U+F03BD +U+F03BE +U+F03BF +U+F03C0 +U+F03C1 +U+F03C2 +U+F03C3 +U+F03C4 +U+F03C5 +U+F03C6 +U+F03C7 +U+F03C8 +U+F03C9 +U+F03CA +U+F03CB +U+F03CC +U+F03CD +U+F03CE +U+F03CF +U+F03D0 +U+F03D1 +U+F03D2 +U+F03D3 +U+F03D4 +U+F03D5 +U+F03D6 +U+F03D7 +U+F03D8 +U+F03D9 +U+F03DA +U+F03DB +U+F03DC +U+F03DD +U+F03DE +U+F03DF +U+F03E0 +U+F03E1 +U+F03E2 +U+F03E3 +U+F03E4 +U+F03E5 +U+F03E6 +U+F03E7 +U+F03E8 +U+F03E9 +U+F03EA +U+F03EB +U+F03EC +U+F03ED +U+F03EE +U+F03EF +U+F03F0 +U+F03F1 +U+F03F2 +U+F03F3 +U+F03F4 +U+F03F5 +U+F03F6 +U+F03F7 +U+F03F8 +U+F03F9 +U+F03FA +U+F03FB +U+F03FC +U+F03FD +U+F03FE +U+F03FF +U+F0400 +U+F0401 +U+F0402 +U+F0403 +U+F0404 +U+F0405 +U+F0406 +U+F0407 +U+F0408 +U+F0409 +U+F040A +U+F040B +U+F040C +U+F040D +U+F040E +U+F040F +U+F0410 +U+F0411 +U+F0412 +U+F0413 +U+F0414 +U+F0415 +U+F0416 +U+F0417 +U+F0418 +U+F0419 +U+F041A +U+F041B +U+F041C +U+F041D +U+F041E +U+F041F +U+F0420 +U+F0421 +U+F0422 +U+F0423 +U+F0424 +U+F0425 +U+F0426 +U+F0427 +U+F0428 +U+F0429 +U+F042A +U+F042B +U+F042C +U+F042D +U+F042E +U+F042F +U+F0430 +U+F0431 +U+F0432 +U+F0433 +U+F0434 +U+F0435 +U+F0436 +U+F0437 +U+F0438 +U+F0439 +U+F043A +U+F043B +U+F043C +U+F043D +U+F043E +U+F043F +U+F0440 +U+F0441 +U+F0442 +U+F0443 +U+F0444 +U+F0445 +U+F0446 +U+F0447 +U+F0448 +U+F0449 +U+F044A +U+F044B +U+F044C +U+F044D +U+F044E +U+F044F +U+F0450 +U+F0451 +U+F0452 +U+F0453 +U+F0454 +U+F0455 +U+F0456 +U+F0457 +U+F0458 +U+F0459 +U+F045A +U+F045B +U+F045C +U+F045D +U+F045E +U+F045F +U+F0460 +U+F0461 +U+F0462 +U+F0463 +U+F0464 +U+F0465 +U+F0466 +U+F0467 +U+F0468 +U+F0469 +U+F046A +U+F046B +U+F046C +U+F046D +U+F046E +U+F046F +U+F0470 +U+F0471 +U+F0472 +U+F0473 +U+F0474 +U+F0475 +U+F0476 +U+F0477 +U+F0478 +U+F0479 +U+F047A +U+F047B +U+F047C +U+F047D +U+F047E +U+F047F +U+F0480 +U+F0481 +U+F0482 +U+F0483 +U+F0484 +U+F0485 +U+F0486 +U+F0487 +U+F0488 +U+F0489 +U+F048A +U+F048B +U+F048C +U+F048D +U+F048E +U+F048F +U+F0490 +U+F0491 +U+F0492 +U+F0493 +U+F0494 +U+F0495 +U+F0496 +U+F0497 +U+F0498 +U+F0499 +U+F049A +U+F049B +U+F049C +U+F049D +U+F049E +U+F049F +U+F04A0 +U+F04A1 +U+F04A2 +U+F04A3 +U+F04A4 +U+F04A5 +U+F04A6 +U+F04A7 +U+F04A8 +U+F04A9 +U+F04AA +U+F04AB +U+F04AC +U+F04AD +U+F04AE +U+F04AF +U+F04B0 +U+F04B1 +U+F04B2 +U+F04B3 +U+F04B4 +U+F04B5 +U+F04B6 +U+F04B7 +U+F04B8 +U+F04B9 +U+F04BA +U+F04BB +U+F04BC +U+F04BD +U+F04BE +U+F04BF +U+F04C0 +U+F04C1 +U+F04C2 +U+F04C3 +U+F04C4 +U+F04C5 +U+F04C6 +U+F04C7 +U+F04C8 +U+F04C9 +U+F04CA +U+F04CB +U+F04CC +U+F04CD +U+F04CE +U+F04CF +U+F04D0 +U+F04D1 +U+F04D2 +U+F04D3 +U+F04D4 +U+F04D5 +U+F04D6 +U+F04D7 +U+F04D8 +U+F04D9 +U+F04DA +U+F04DB +U+F04DC +U+F04DD +U+F04DE +U+F04DF +U+F04E0 +U+F04E1 +U+F04E2 +U+F04E3 +U+F04E4 +U+F04E5 +U+F04E6 +U+F04E7 +U+F04E8 +U+F04E9 +U+F04EA +U+F04EB +U+F04EC +U+F04ED +U+F04EE +U+F04EF +U+F04F0 +U+F04F1 +U+F04F2 +U+F04F3 +U+F04F4 +U+F04F5 +U+F04F6 +U+F04F7 +U+F04F8 +U+F04F9 +U+F04FA +U+F04FB +U+F04FC +U+F04FD +U+F04FE +U+F04FF +U+F0500 +U+F0501 +U+F0502 +U+F0503 +U+F0504 +U+F0505 +U+F0506 +U+F0507 +U+F0508 +U+F0509 +U+F050A +U+F050B +U+F050C +U+F050D +U+F050E +U+F050F +U+F0510 +U+F0511 +U+F0512 +U+F0513 +U+F0514 +U+F0515 +U+F0516 +U+F0517 +U+F0518 +U+F0519 +U+F051A +U+F051B +U+F051C +U+F051D +U+F051E +U+F051F +U+F0520 +U+F0521 +U+F0522 +U+F0523 +U+F0524 +U+F0525 +U+F0526 +U+F0527 +U+F0528 +U+F0529 +U+F052A +U+F052B +U+F052C +U+F052D +U+F052E +U+F052F +U+F0530 +U+F0531 +U+F0532 +U+F0533 +U+F0534 +U+F0535 +U+F0536 +U+F0537 +U+F0538 +U+F0539 +U+F053A +U+F053B +U+F053C +U+F053D +U+F053E +U+F053F +U+F0540 +U+F0541 +U+F0542 +U+F0543 +U+F0544 +U+F0545 +U+F0546 +U+F0547 +U+F0548 +U+F0549 +U+F054A +U+F054B +U+F054C +U+F054D +U+F054E +U+F054F +U+F0550 +U+F0551 +U+F0552 +U+F0553 +U+F0554 +U+F0555 +U+F0556 +U+F0557 +U+F0558 +U+F0559 +U+F055A +U+F055B +U+F055C +U+F055D +U+F055E +U+F055F +U+F0560 +U+F0561 +U+F0562 +U+F0563 +U+F0564 +U+F0565 +U+F0566 +U+F0567 +U+F0568 +U+F0569 +U+F056A +U+F056B +U+F056C +U+F056D +U+F056E +U+F056F +U+F0570 +U+F0571 +U+F0572 +U+F0573 +U+F0574 +U+F0575 +U+F0576 +U+F0577 +U+F0578 +U+F0579 +U+F057A +U+F057B +U+F057C +U+F057D +U+F057E +U+F057F +U+F0580 +U+F0581 +U+F0582 +U+F0583 +U+F0584 +U+F0585 +U+F0586 +U+F0587 +U+F0588 +U+F0589 +U+F058A +U+F058B +U+F058C +U+F058D +U+F058E +U+F058F +U+F0590 +U+F0591 +U+F0592 +U+F0593 +U+F0594 +U+F0595 +U+F0596 +U+F0597 +U+F0598 +U+F0599 +U+F059A +U+F059B +U+F059C +U+F059D +U+F059E +U+F059F +U+F05A0 +U+F05A1 +U+F05A2 +U+F05A3 +U+F05A4 +U+F05A5 +U+F05A6 +U+F05A7 +U+F05A8 +U+F05A9 +U+F05AA +U+F05AB +U+F05AC +U+F05AD +U+F05AE +U+F05AF +U+F05B0 +U+F05B1 +U+F05B2 +U+F05B3 +U+F05B4 +U+F05B5 +U+F05B6 +U+F05B7 +U+F05B8 +U+F05B9 +U+F05BA +U+F05BB +U+F05BC +U+F05BD +U+F05BE +U+F05BF +U+F05C0 +U+F05C1 +U+F05C2 +U+F05C3 +U+F05C4 +U+F05C5 +U+F05C6 +U+F05C7 +U+F05C8 +U+F05C9 +U+F05CA +U+F05CB +U+F05CC +U+F05CD +U+F05CE +U+F05CF +U+F05D0 +U+F05D1 +U+F05D2 +U+F05D3 +U+F05D4 +U+F05D5 +U+F05D6 +U+F05D7 +U+F05D8 +U+F05D9 +U+F05DA +U+F05DB +U+F05DC +U+F05DD +U+F05DE +U+F05DF +U+F05E0 +U+F05E1 +U+F05E2 +U+F05E3 +U+F05E4 +U+F05E5 +U+F05E6 +U+F05E7 +U+F05E8 +U+F05E9 +U+F05EA +U+F05EB +U+F05EC +U+F05ED +U+F05EE +U+F05EF +U+F05F0 +U+F05F1 +U+F05F2 +U+F05F3 +U+F05F4 +U+F05F5 +U+F05F6 +U+F05F7 +U+F05F8 +U+F05F9 +U+F05FA +U+F05FB +U+F05FC +U+F05FD +U+F05FE +U+F05FF +U+F0600 +U+F0601 +U+F0602 +U+F0603 +U+F0604 +U+F0605 +U+F0606 +U+F0607 +U+F0608 +U+F0609 +U+F060A +U+F060B +U+F060C +U+F060D +U+F060E +U+F060F +U+F0610 +U+F0611 +U+F0612 +U+F0613 +U+F0614 +U+F0615 +U+F0616 +U+F0617 +U+F0618 +U+F0619 +U+F061A +U+F061B +U+F061C +U+F061D +U+F061E +U+F061F +U+F0620 +U+F0621 +U+F0622 +U+F0623 +U+F0624 +U+F0625 +U+F0626 +U+F0627 +U+F0628 +U+F0629 +U+F062A +U+F062B +U+F062C +U+F062D +U+F062E +U+F062F +U+F0630 +U+F0631 +U+F0632 +U+F0633 +U+F0634 +U+F0635 +U+F0636 +U+F0637 +U+F0638 +U+F0639 +U+F063A +U+F063B +U+F063C +U+F063D +U+F063E +U+F063F +U+F0640 +U+F0641 +U+F0642 +U+F0643 +U+F0644 +U+F0645 +U+F0646 +U+F0647 +U+F0648 +U+F0649 +U+F064A +U+F064B +U+F064C +U+F064D +U+F064E +U+F064F +U+F0650 +U+F0651 +U+F0652 +U+F0653 +U+F0654 +U+F0655 +U+F0656 +U+F0657 +U+F0658 +U+F0659 +U+F065A +U+F065B +U+F065C +U+F065D +U+F065E +U+F065F +U+F0660 +U+F0661 +U+F0662 +U+F0663 +U+F0664 +U+F0665 +U+F0666 +U+F0667 +U+F0668 +U+F0669 +U+F066A +U+F066B +U+F066C +U+F066D +U+F066E +U+F066F +U+F0670 +U+F0671 +U+F0672 +U+F0673 +U+F0674 +U+F0675 +U+F0676 +U+F0677 +U+F0678 +U+F0679 +U+F067A +U+F067B +U+F067C +U+F067D +U+F067E +U+F067F +U+F0680 +U+F0681 +U+F0682 +U+F0683 +U+F0684 +U+F0685 +U+F0686 +U+F0687 +U+F0688 +U+F0689 +U+F068A +U+F068B +U+F068C +U+F068D +U+F068E +U+F068F +U+F0690 +U+F0691 +U+F0692 +U+F0693 +U+F0694 +U+F0695 +U+F0696 +U+F0697 +U+F0698 +U+F0699 +U+F069A +U+F069B +U+F069C +U+F069D +U+F069E +U+F069F +U+F06A0 +U+F06A1 +U+F06A2 +U+F06A3 +U+F06A4 +U+F06A5 +U+F06A6 +U+F06A7 +U+F06A8 +U+F06A9 +U+F06AA +U+F06AB +U+F06AC +U+F06AD +U+F06AE +U+F06AF +U+F06B0 +U+F06B1 +U+F06B2 +U+F06B3 +U+F06B4 +U+F06B5 +U+F06B6 +U+F06B7 +U+F06B8 +U+F06B9 +U+F06BA +U+F06BB +U+F06BC +U+F06BD +U+F06BE +U+F06BF +U+F06C0 +U+F06C1 +U+F06C2 +U+F06C3 +U+F06C4 +U+F06C5 +U+F06C6 +U+F06C7 +U+F06C8 +U+F06C9 +U+F06CA +U+F06CB +U+F06CC +U+F06CD +U+F06CE +U+F06CF +U+F06D0 +U+F06D1 +U+F06D2 +U+F06D3 +U+F06D4 +U+F06D5 +U+F06D6 +U+F06D7 +U+F06D8 +U+F06D9 +U+F06DA +U+F06DB +U+F06DC +U+F06DD +U+F06DE +U+F06DF +U+F06E0 +U+F06E1 +U+F06E2 +U+F06E3 +U+F06E4 +U+F06E5 +U+F06E6 +U+F06E7 +U+F06E8 +U+F06E9 +U+F06EA +U+F06EB +U+F06EC +U+F06ED +U+F06EE +U+F06EF +U+F06F0 +U+F06F1 +U+F06F2 +U+F06F3 +U+F06F4 +U+F06F5 +U+F06F6 +U+F06F7 +U+F06F8 +U+F06F9 +U+F06FA +U+F06FB +U+F06FC +U+F06FD +U+F06FE +U+F06FF +U+F0700 +U+F0701 +U+F0702 +U+F0703 +U+F0704 +U+F0705 +U+F0706 +U+F0707 +U+F0708 +U+F0709 +U+F070A +U+F070B +U+F070C +U+F070D +U+F070E +U+F070F +U+F0710 +U+F0711 +U+F0712 +U+F0713 +U+F0714 +U+F0715 +U+F0716 +U+F0717 +U+F0718 +U+F0719 +U+F071A +U+F071B +U+F071C +U+F071D +U+F071E +U+F071F +U+F0720 +U+F0721 +U+F0722 +U+F0723 +U+F0724 +U+F0725 +U+F0726 +U+F0727 +U+F0728 +U+F0729 +U+F072A +U+F072B +U+F072C +U+F072D +U+F072E +U+F072F +U+F0730 +U+F0731 +U+F0732 +U+F0733 +U+F0734 +U+F0735 +U+F0736 +U+F0737 +U+F0738 +U+F0739 +U+F073A +U+F073B +U+F073C +U+F073D +U+F073E +U+F073F +U+F0740 +U+F0741 +U+F0742 +U+F0743 +U+F0744 +U+F0745 +U+F0746 +U+F0747 +U+F0748 +U+F0749 +U+F074A +U+F074B +U+F074C +U+F074D +U+F074E +U+F074F +U+F0750 +U+F0751 +U+F0752 +U+F0753 +U+F0754 +U+F0755 +U+F0756 +U+F0757 +U+F0758 +U+F0759 +U+F075A +U+F075B +U+F075C +U+F075D +U+F075E +U+F075F +U+F0760 +U+F0761 +U+F0762 +U+F0763 +U+F0764 +U+F0765 +U+F0766 +U+F0767 +U+F0768 +U+F0769 +U+F076A +U+F076B +U+F076C +U+F076D +U+F076E +U+F076F +U+F0770 +U+F0771 +U+F0772 +U+F0773 +U+F0774 +U+F0775 +U+F0776 +U+F0777 +U+F0778 +U+F0779 +U+F077A +U+F077B +U+F077C +U+F077D +U+F077E +U+F077F +U+F0780 +U+F0781 +U+F0782 +U+F0783 +U+F0784 +U+F0785 +U+F0786 +U+F0787 +U+F0788 +U+F0789 +U+F078A +U+F078B +U+F078C +U+F078D +U+F078E +U+F078F +U+F0790 +U+F0791 +U+F0792 +U+F0793 +U+F0794 +U+F0795 +U+F0796 +U+F0797 +U+F0798 +U+F0799 +U+F079A +U+F079B +U+F079C +U+F079D +U+F079E +U+F079F +U+F07A0 +U+F07A1 +U+F07A2 +U+F07A3 +U+F07A4 +U+F07A5 +U+F07A6 +U+F07A7 +U+F07A8 +U+F07A9 +U+F07AA +U+F07AB +U+F07AC +U+F07AD +U+F07AE +U+F07AF +U+F07B0 +U+F07B1 +U+F07B2 +U+F07B3 +U+F07B4 +U+F07B5 +U+F07B6 +U+F07B7 +U+F07B8 +U+F07B9 +U+F07BA +U+F07BB +U+F07BC +U+F07BD +U+F07BE +U+F07BF +U+F07C0 +U+F07C1 +U+F07C2 +U+F07C3 +U+F07C4 +U+F07C5 +U+F07C6 +U+F07C7 +U+F07C8 +U+F07C9 +U+F07CA +U+F07CB +U+F07CC +U+F07CD +U+F07CE +U+F07CF +U+F07D0 +U+F07D1 +U+F07D2 +U+F07D3 +U+F07D4 +U+F07D5 +U+F07D6 +U+F07D7 +U+F07D8 +U+F07D9 +U+F07DA +U+F07DB +U+F07DC +U+F07DD +U+F07DE +U+F07DF +U+F07E0 +U+F07E1 +U+F07E2 +U+F07E3 +U+F07E4 +U+F07E5 +U+F07E6 +U+F07E7 +U+F07E8 +U+F07E9 +U+F07EA +U+F07EB +U+F07EC +U+F07ED +U+F07EE +U+F07EF +U+F07F0 +U+F07F1 +U+F07F2 +U+F07F3 +U+F07F4 +U+F07F5 +U+F07F6 +U+F07F7 +U+F07F8 +U+F07F9 +U+F07FA +U+F07FB +U+F07FC +U+F07FD +U+F07FE +U+F07FF +U+F0800 +U+F0801 +U+F0802 +U+F0803 +U+F0804 +U+F0805 +U+F0806 +U+F0807 +U+F0808 +U+F0809 +U+F080A +U+F080B +U+F080C +U+F080D +U+F080E +U+F080F +U+F0810 +U+F0811 +U+F0812 +U+F0813 +U+F0814 +U+F0815 +U+F0816 +U+F0817 +U+F0818 +U+F0819 +U+F081A +U+F081B +U+F081C +U+F081D +U+F081E +U+F081F +U+F0820 +U+F0821 +U+F0822 +U+F0823 +U+F0824 +U+F0825 +U+F0826 +U+F0827 +U+F0828 +U+F0829 +U+F082A +U+F082B +U+F082C +U+F082D +U+F082E +U+F082F +U+F0830 +U+F0831 +U+F0832 +U+F0833 +U+F0834 +U+F0835 +U+F0836 +U+F0837 +U+F0838 +U+F0839 +U+F083A +U+F083B +U+F083C +U+F083D +U+F083E +U+F083F +U+F0840 +U+F0841 +U+F0842 +U+F0843 +U+F0844 +U+F0845 +U+F0846 +U+F0847 +U+F0848 +U+F0849 +U+F084A +U+F084B +U+F084C +U+F084D +U+F084E +U+F084F +U+F0850 +U+F0851 +U+F0852 +U+F0853 +U+F0854 +U+F0855 +U+F0856 +U+F0857 +U+F0858 +U+F0859 +U+F085A +U+F085B +U+F085C +U+F085D +U+F085E +U+F085F +U+F0860 +U+F0861 +U+F0862 +U+F0863 +U+F0864 +U+F0865 +U+F0866 +U+F0867 +U+F0868 +U+F0869 +U+F086A +U+F086B +U+F086C +U+F086D +U+F086E +U+F086F +U+F0870 +U+F0871 +U+F0872 +U+F0873 +U+F0874 +U+F0875 +U+F0876 +U+F0877 +U+F0878 +U+F0879 +U+F087A +U+F087B +U+F087C +U+F087D +U+F087E +U+F087F +U+F0880 +U+F0881 +U+F0882 +U+F0883 +U+F0884 +U+F0885 +U+F0886 +U+F0887 +U+F0888 +U+F0889 +U+F088A +U+F088B +U+F088C +U+F088D +U+F088E +U+F088F +U+F0890 +U+F0891 +U+F0892 +U+F0893 +U+F0894 +U+F0895 +U+F0896 +U+F0897 +U+F0898 +U+F0899 +U+F089A +U+F089B +U+F089C +U+F089D +U+F089E +U+F089F +U+F08A0 +U+F08A1 +U+F08A2 +U+F08A3 +U+F08A4 +U+F08A5 +U+F08A6 +U+F08A7 +U+F08A8 +U+F08A9 +U+F08AA +U+F08AB +U+F08AC +U+F08AD +U+F08AE +U+F08AF +U+F08B0 +U+F08B1 +U+F08B2 +U+F08B3 +U+F08B4 +U+F08B5 +U+F08B6 +U+F08B7 +U+F08B8 +U+F08B9 +U+F08BA +U+F08BB +U+F08BC +U+F08BD +U+F08BE +U+F08BF +U+F08C0 +U+F08C1 +U+F08C2 +U+F08C3 +U+F08C4 +U+F08C5 +U+F08C6 +U+F08C7 +U+F08C8 +U+F08C9 +U+F08CA +U+F08CB +U+F08CC +U+F08CD +U+F08CE +U+F08CF +U+F08D0 +U+F08D1 +U+F08D2 +U+F08D3 +U+F08D4 +U+F08D5 +U+F08D6 +U+F08D7 +U+F08D8 +U+F08D9 +U+F08DA +U+F08DB +U+F08DC +U+F08DD +U+F08DE +U+F08DF +U+F08E0 +U+F08E1 +U+F08E2 +U+F08E3 +U+F08E4 +U+F08E5 +U+F08E6 +U+F08E7 +U+F08E8 +U+F08E9 +U+F08EA +U+F08EB +U+F08EC +U+F08ED +U+F08EE +U+F08EF +U+F08F0 +U+F08F1 +U+F08F2 +U+F08F3 +U+F08F4 +U+F08F5 +U+F08F6 +U+F08F7 +U+F08F8 +U+F08F9 +U+F08FA +U+F08FB +U+F08FC +U+F08FD +U+F08FE +U+F08FF +U+F0900 +U+F0901 +U+F0902 +U+F0903 +U+F0904 +U+F0905 +U+F0906 +U+F0907 +U+F0908 +U+F0909 +U+F090A +U+F090B +U+F090C +U+F090D +U+F090E +U+F090F +U+F0910 +U+F0911 +U+F0912 +U+F0913 +U+F0914 +U+F0915 +U+F0916 +U+F0917 +U+F0918 +U+F0919 +U+F091A +U+F091B +U+F091C +U+F091D +U+F091E +U+F091F +U+F0920 +U+F0921 +U+F0922 +U+F0923 +U+F0924 +U+F0925 +U+F0926 +U+F0927 +U+F0928 +U+F0929 +U+F092A +U+F092B +U+F092C +U+F092D +U+F092E +U+F092F +U+F0930 +U+F0931 +U+F0932 +U+F0933 +U+F0934 +U+F0935 +U+F0936 +U+F0937 +U+F0938 +U+F0939 +U+F093A +U+F093B +U+F093C +U+F093D +U+F093E +U+F093F +U+F0940 +U+F0941 +U+F0942 +U+F0943 +U+F0944 +U+F0945 +U+F0946 +U+F0947 +U+F0948 +U+F0949 +U+F094A +U+F094B +U+F094C +U+F094D +U+F094E +U+F094F +U+F0950 +U+F0951 +U+F0952 +U+F0953 +U+F0954 +U+F0955 +U+F0956 +U+F0957 +U+F0958 +U+F0959 +U+F095A +U+F095B +U+F095C +U+F095D +U+F095E +U+F095F +U+F0960 +U+F0961 +U+F0962 +U+F0963 +U+F0964 +U+F0965 +U+F0966 +U+F0967 +U+F0968 +U+F0969 +U+F096A +U+F096B +U+F096C +U+F096D +U+F096E +U+F096F +U+F0970 +U+F0971 +U+F0972 +U+F0973 +U+F0974 +U+F0975 +U+F0976 +U+F0977 +U+F0978 +U+F0979 +U+F097A +U+F097B +U+F097C +U+F097D +U+F097E +U+F097F +U+F0980 +U+F0981 +U+F0982 +U+F0983 +U+F0984 +U+F0985 +U+F0986 +U+F0987 +U+F0988 +U+F0989 +U+F098A +U+F098B +U+F098C +U+F098D +U+F098E +U+F098F +U+F0990 +U+F0991 +U+F0992 +U+F0993 +U+F0994 +U+F0995 +U+F0996 +U+F0997 +U+F0998 +U+F0999 +U+F099A +U+F099B +U+F099C +U+F099D +U+F099E +U+F099F +U+F09A0 +U+F09A1 +U+F09A2 +U+F09A3 +U+F09A4 +U+F09A5 +U+F09A6 +U+F09A7 +U+F09A8 +U+F09A9 +U+F09AA +U+F09AB +U+F09AC +U+F09AD +U+F09AE +U+F09AF +U+F09B0 +U+F09B1 +U+F09B2 +U+F09B3 +U+F09B4 +U+F09B5 +U+F09B6 +U+F09B7 +U+F09B8 +U+F09B9 +U+F09BA +U+F09BB +U+F09BC +U+F09BD +U+F09BE +U+F09BF +U+F09C0 +U+F09C1 +U+F09C2 +U+F09C3 +U+F09C4 +U+F09C5 +U+F09C6 +U+F09C7 +U+F09C8 +U+F09C9 +U+F09CA +U+F09CB +U+F09CC +U+F09CD +U+F09CE +U+F09CF +U+F09D0 +U+F09D1 +U+F09D2 +U+F09D3 +U+F09D4 +U+F09D5 +U+F09D6 +U+F09D7 +U+F09D8 +U+F09D9 +U+F09DA +U+F09DB +U+F09DC +U+F09DD +U+F09DE +U+F09DF +U+F09E0 +U+F09E1 +U+F09E2 +U+F09E3 +U+F09E4 +U+F09E5 +U+F09E6 +U+F09E7 +U+F09E8 +U+F09E9 +U+F09EA +U+F09EB +U+F09EC +U+F09ED +U+F09EE +U+F09EF +U+F09F0 +U+F09F1 +U+F09F2 +U+F09F3 +U+F09F4 +U+F09F5 +U+F09F6 +U+F09F7 +U+F09F8 +U+F09F9 +U+F09FA +U+F09FB +U+F09FC +U+F09FD +U+F09FE +U+F09FF +U+F0A00 +U+F0A01 +U+F0A02 +U+F0A03 +U+F0A04 +U+F0A05 +U+F0A06 +U+F0A07 +U+F0A08 +U+F0A09 +U+F0A0A +U+F0A0B +U+F0A0C +U+F0A0D +U+F0A0E +U+F0A0F +U+F0A10 +U+F0A11 +U+F0A12 +U+F0A13 +U+F0A14 +U+F0A15 +U+F0A16 +U+F0A17 +U+F0A18 +U+F0A19 +U+F0A1A +U+F0A1B +U+F0A1C +U+F0A1D +U+F0A1E +U+F0A1F +U+F0A20 +U+F0A21 +U+F0A22 +U+F0A23 +U+F0A24 +U+F0A25 +U+F0A26 +U+F0A27 +U+F0A28 +U+F0A29 +U+F0A2A +U+F0A2B +U+F0A2C +U+F0A2D +U+F0A2E +U+F0A2F +U+F0A30 +U+F0A31 +U+F0A32 +U+F0A33 +U+F0A34 +U+F0A35 +U+F0A36 +U+F0A37 +U+F0A38 +U+F0A39 +U+F0A3A +U+F0A3B +U+F0A3C +U+F0A3D +U+F0A3E +U+F0A3F +U+F0A40 +U+F0A41 +U+F0A42 +U+F0A43 +U+F0A44 +U+F0A45 +U+F0A46 +U+F0A47 +U+F0A48 +U+F0A49 +U+F0A4A +U+F0A4B +U+F0A4C +U+F0A4D +U+F0A4E +U+F0A4F +U+F0A50 +U+F0A51 +U+F0A52 +U+F0A53 +U+F0A54 +U+F0A55 +U+F0A56 +U+F0A57 +U+F0A58 +U+F0A59 +U+F0A5A +U+F0A5B +U+F0A5C +U+F0A5D +U+F0A5E +U+F0A5F +U+F0A60 +U+F0A61 +U+F0A62 +U+F0A63 +U+F0A64 +U+F0A65 +U+F0A66 +U+F0A67 +U+F0A68 +U+F0A69 +U+F0A6A +U+F0A6B +U+F0A6C +U+F0A6D +U+F0A6E +U+F0A6F +U+F0A70 +U+F0A71 +U+F0A72 +U+F0A73 +U+F0A74 +U+F0A75 +U+F0A76 +U+F0A77 +U+F0A78 +U+F0A79 +U+F0A7A +U+F0A7B +U+F0A7C +U+F0A7D +U+F0A7E +U+F0A7F +U+F0A80 +U+F0A81 +U+F0A82 +U+F0A83 +U+F0A84 +U+F0A85 +U+F0A86 +U+F0A87 +U+F0A88 +U+F0A89 +U+F0A8A +U+F0A8B +U+F0A8C +U+F0A8D +U+F0A8E +U+F0A8F +U+F0A90 +U+F0A91 +U+F0A92 +U+F0A93 +U+F0A94 +U+F0A95 +U+F0A96 +U+F0A97 +U+F0A98 +U+F0A99 +U+F0A9A +U+F0A9B +U+F0A9C +U+F0A9D +U+F0A9E +U+F0A9F +U+F0AA0 +U+F0AA1 +U+F0AA2 +U+F0AA3 +U+F0AA4 +U+F0AA5 +U+F0AA6 +U+F0AA7 +U+F0AA8 +U+F0AA9 +U+F0AAA +U+F0AAB +U+F0AAC +U+F0AAD +U+F0AAE +U+F0AAF +U+F0AB0 +U+F0AB1 +U+F0AB2 +U+F0AB3 +U+F0AB4 +U+F0AB5 +U+F0AB6 +U+F0AB7 +U+F0AB8 +U+F0AB9 +U+F0ABA +U+F0ABB +U+F0ABC +U+F0ABD +U+F0ABE +U+F0ABF +U+F0AC0 +U+F0AC1 +U+F0AC2 +U+F0AC3 +U+F0AC4 +U+F0AC5 +U+F0AC6 +U+F0AC7 +U+F0AC8 +U+F0AC9 +U+F0ACA +U+F0ACB +U+F0ACC +U+F0ACD +U+F0ACE +U+F0ACF +U+F0AD0 +U+F0AD1 +U+F0AD2 +U+F0AD3 +U+F0AD4 +U+F0AD5 +U+F0AD6 +U+F0AD7 +U+F0AD8 +U+F0AD9 +U+F0ADA +U+F0ADB +U+F0ADC +U+F0ADD +U+F0ADE +U+F0ADF +U+F0AE0 +U+F0AE1 +U+F0AE2 +U+F0AE3 +U+F0AE4 +U+F0AE5 +U+F0AE6 +U+F0AE7 +U+F0AE8 +U+F0AE9 +U+F0AEA +U+F0AEB +U+F0AEC +U+F0AED +U+F0AEE +U+F0AEF +U+F0AF0 +U+F0AF1 +U+F0AF2 +U+F0AF3 +U+F0AF4 +U+F0AF5 +U+F0AF6 +U+F0AF7 +U+F0AF8 +U+F0AF9 +U+F0AFA +U+F0AFB +U+F0AFC +U+F0AFD +U+F0AFE +U+F0AFF +U+F0B00 +U+F0B01 +U+F0B02 +U+F0B03 +U+F0B04 +U+F0B05 +U+F0B06 +U+F0B07 +U+F0B08 +U+F0B09 +U+F0B0A +U+F0B0B +U+F0B0C +U+F0B0D +U+F0B0E +U+F0B0F +U+F0B10 +U+F0B11 +U+F0B12 +U+F0B13 +U+F0B14 +U+F0B15 +U+F0B16 +U+F0B17 +U+F0B18 +U+F0B19 +U+F0B1A +U+F0B1B +U+F0B1C +U+F0B1D +U+F0B1E +U+F0B1F +U+F0B20 +U+F0B21 +U+F0B22 +U+F0B23 +U+F0B24 +U+F0B25 +U+F0B26 +U+F0B27 +U+F0B28 +U+F0B29 +U+F0B2A +U+F0B2B +U+F0B2C +U+F0B2D +U+F0B2E +U+F0B2F +U+F0B30 +U+F0B31 +U+F0B32 +U+F0B33 +U+F0B34 +U+F0B35 +U+F0B36 +U+F0B37 +U+F0B38 +U+F0B39 +U+F0B3A +U+F0B3B +U+F0B3C +U+F0B3D +U+F0B3E +U+F0B3F +U+F0B40 +U+F0B41 +U+F0B42 +U+F0B43 +U+F0B44 +U+F0B45 +U+F0B46 +U+F0B47 +U+F0B48 +U+F0B49 +U+F0B4A +U+F0B4B +U+F0B4C +U+F0B4D +U+F0B4E +U+F0B4F +U+F0B50 +U+F0B51 +U+F0B52 +U+F0B53 +U+F0B54 +U+F0B55 +U+F0B56 +U+F0B57 +U+F0B58 +U+F0B59 +U+F0B5A +U+F0B5B +U+F0B5C +U+F0B5D +U+F0B5E +U+F0B5F +U+F0B60 +U+F0B61 +U+F0B62 +U+F0B63 +U+F0B64 +U+F0B65 +U+F0B66 +U+F0B67 +U+F0B68 +U+F0B69 +U+F0B6A +U+F0B6B +U+F0B6C +U+F0B6D +U+F0B6E +U+F0B6F +U+F0B70 +U+F0B71 +U+F0B72 +U+F0B73 +U+F0B74 +U+F0B75 +U+F0B76 +U+F0B77 +U+F0B78 +U+F0B79 +U+F0B7A +U+F0B7B +U+F0B7C +U+F0B7D +U+F0B7E +U+F0B7F +U+F0B80 +U+F0B81 +U+F0B82 +U+F0B83 +U+F0B84 +U+F0B85 +U+F0B86 +U+F0B87 +U+F0B88 +U+F0B89 +U+F0B8A +U+F0B8B +U+F0B8C +U+F0B8D +U+F0B8E +U+F0B8F +U+F0B90 +U+F0B91 +U+F0B92 +U+F0B93 +U+F0B94 +U+F0B95 +U+F0B96 +U+F0B97 +U+F0B98 +U+F0B99 +U+F0B9A +U+F0B9B +U+F0B9C +U+F0B9D +U+F0B9E +U+F0B9F +U+F0BA0 +U+F0BA1 +U+F0BA2 +U+F0BA3 +U+F0BA4 +U+F0BA5 +U+F0BA6 +U+F0BA7 +U+F0BA8 +U+F0BA9 +U+F0BAA +U+F0BAB +U+F0BAC +U+F0BAD +U+F0BAE +U+F0BAF +U+F0BB0 +U+F0BB1 +U+F0BB2 +U+F0BB3 +U+F0BB4 +U+F0BB5 +U+F0BB6 +U+F0BB7 +U+F0BB8 +U+F0BB9 +U+F0BBA +U+F0BBB +U+F0BBC +U+F0BBD +U+F0BBE +U+F0BBF +U+F0BC0 +U+F0BC1 +U+F0BC2 +U+F0BC3 +U+F0BC4 +U+F0BC5 +U+F0BC6 +U+F0BC7 +U+F0BC8 +U+F0BC9 +U+F0BCA +U+F0BCB +U+F0BCC +U+F0BCD +U+F0BCE +U+F0BCF +U+F0BD0 +U+F0BD1 +U+F0BD2 +U+F0BD3 +U+F0BD4 +U+F0BD5 +U+F0BD6 +U+F0BD7 +U+F0BD8 +U+F0BD9 +U+F0BDA +U+F0BDB +U+F0BDC +U+F0BDD +U+F0BDE +U+F0BDF +U+F0BE0 +U+F0BE1 +U+F0BE2 +U+F0BE3 +U+F0BE4 +U+F0BE5 +U+F0BE6 +U+F0BE7 +U+F0BE8 +U+F0BE9 +U+F0BEA +U+F0BEB +U+F0BEC +U+F0BED +U+F0BEE +U+F0BEF +U+F0BF0 +U+F0BF1 +U+F0BF2 +U+F0BF3 +U+F0BF4 +U+F0BF5 +U+F0BF6 +U+F0BF7 +U+F0BF8 +U+F0BF9 +U+F0BFA +U+F0BFB +U+F0BFC +U+F0BFD +U+F0BFE +U+F0BFF +U+F0C00 +U+F0C01 +U+F0C02 +U+F0C03 +U+F0C04 +U+F0C05 +U+F0C06 +U+F0C07 +U+F0C08 +U+F0C09 +U+F0C0A +U+F0C0B +U+F0C0C +U+F0C0D +U+F0C0E +U+F0C0F +U+F0C10 +U+F0C11 +U+F0C12 +U+F0C13 +U+F0C14 +U+F0C15 +U+F0C16 +U+F0C17 +U+F0C18 +U+F0C19 +U+F0C1A +U+F0C1B +U+F0C1C +U+F0C1D +U+F0C1E +U+F0C1F +U+F0C20 +U+F0C21 +U+F0C22 +U+F0C23 +U+F0C24 +U+F0C25 +U+F0C26 +U+F0C27 +U+F0C28 +U+F0C29 +U+F0C2A +U+F0C2B +U+F0C2C +U+F0C2D +U+F0C2E +U+F0C2F +U+F0C30 +U+F0C31 +U+F0C32 +U+F0C33 +U+F0C34 +U+F0C35 +U+F0C36 +U+F0C37 +U+F0C38 +U+F0C39 +U+F0C3A +U+F0C3B +U+F0C3C +U+F0C3D +U+F0C3E +U+F0C3F +U+F0C40 +U+F0C41 +U+F0C42 +U+F0C43 +U+F0C44 +U+F0C45 +U+F0C46 +U+F0C47 +U+F0C48 +U+F0C49 +U+F0C4A +U+F0C4B +U+F0C4C +U+F0C4D +U+F0C4E +U+F0C4F +U+F0C50 +U+F0C51 +U+F0C52 +U+F0C53 +U+F0C54 +U+F0C55 +U+F0C56 +U+F0C57 +U+F0C58 +U+F0C59 +U+F0C5A +U+F0C5B +U+F0C5C +U+F0C5D +U+F0C5E +U+F0C5F +U+F0C60 +U+F0C61 +U+F0C62 +U+F0C63 +U+F0C64 +U+F0C65 +U+F0C66 +U+F0C67 +U+F0C68 +U+F0C69 +U+F0C6A +U+F0C6B +U+F0C6C +U+F0C6D +U+F0C6E +U+F0C6F +U+F0C70 +U+F0C71 +U+F0C72 +U+F0C73 +U+F0C74 +U+F0C75 +U+F0C76 +U+F0C77 +U+F0C78 +U+F0C79 +U+F0C7A +U+F0C7B +U+F0C7C +U+F0C7D +U+F0C7E +U+F0C7F +U+F0C80 +U+F0C81 +U+F0C82 +U+F0C83 +U+F0C84 +U+F0C85 +U+F0C86 +U+F0C87 +U+F0C88 +U+F0C89 +U+F0C8A +U+F0C8B +U+F0C8C +U+F0C8D +U+F0C8E +U+F0C8F +U+F0C90 +U+F0C91 +U+F0C92 +U+F0C93 +U+F0C94 +U+F0C95 +U+F0C96 +U+F0C97 +U+F0C98 +U+F0C99 +U+F0C9A +U+F0C9B +U+F0C9C +U+F0C9D +U+F0C9E +U+F0C9F +U+F0CA0 +U+F0CA1 +U+F0CA2 +U+F0CA3 +U+F0CA4 +U+F0CA5 +U+F0CA6 +U+F0CA7 +U+F0CA8 +U+F0CA9 +U+F0CAA +U+F0CAB +U+F0CAC +U+F0CAD +U+F0CAE +U+F0CAF +U+F0CB0 +U+F0CB1 +U+F0CB2 +U+F0CB3 +U+F0CB4 +U+F0CB5 +U+F0CB6 +U+F0CB7 +U+F0CB8 +U+F0CB9 +U+F0CBA +U+F0CBB +U+F0CBC +U+F0CBD +U+F0CBE +U+F0CBF +U+F0CC0 +U+F0CC1 +U+F0CC2 +U+F0CC3 +U+F0CC4 +U+F0CC5 +U+F0CC6 +U+F0CC7 +U+F0CC8 +U+F0CC9 +U+F0CCA +U+F0CCB +U+F0CCC +U+F0CCD +U+F0CCE +U+F0CCF +U+F0CD0 +U+F0CD1 +U+F0CD2 +U+F0CD3 +U+F0CD4 +U+F0CD5 +U+F0CD6 +U+F0CD7 +U+F0CD8 +U+F0CD9 +U+F0CDA +U+F0CDB +U+F0CDC +U+F0CDD +U+F0CDE +U+F0CDF +U+F0CE0 +U+F0CE1 +U+F0CE2 +U+F0CE3 +U+F0CE4 +U+F0CE5 +U+F0CE6 +U+F0CE7 +U+F0CE8 +U+F0CE9 +U+F0CEA +U+F0CEB +U+F0CEC +U+F0CED +U+F0CEE +U+F0CEF +U+F0CF0 +U+F0CF1 +U+F0CF2 +U+F0CF3 +U+F0CF4 +U+F0CF5 +U+F0CF6 +U+F0CF7 +U+F0CF8 +U+F0CF9 +U+F0CFA +U+F0CFB +U+F0CFC +U+F0CFD +U+F0CFE +U+F0CFF +U+F0D00 +U+F0D01 +U+F0D02 +U+F0D03 +U+F0D04 +U+F0D05 +U+F0D06 +U+F0D07 +U+F0D08 +U+F0D09 +U+F0D0A +U+F0D0B +U+F0D0C +U+F0D0D +U+F0D0E +U+F0D0F +U+F0D10 +U+F0D11 +U+F0D12 +U+F0D13 +U+F0D14 +U+F0D15 +U+F0D16 +U+F0D17 +U+F0D18 +U+F0D19 +U+F0D1A +U+F0D1B +U+F0D1C +U+F0D1D +U+F0D1E +U+F0D1F +U+F0D20 +U+F0D21 +U+F0D22 +U+F0D23 +U+F0D24 +U+F0D25 +U+F0D26 +U+F0D27 +U+F0D28 +U+F0D29 +U+F0D2A +U+F0D2B +U+F0D2C +U+F0D2D +U+F0D2E +U+F0D2F +U+F0D30 +U+F0D31 +U+F0D32 +U+F0D33 +U+F0D34 +U+F0D35 +U+F0D36 +U+F0D37 +U+F0D38 +U+F0D39 +U+F0D3A +U+F0D3B +U+F0D3C +U+F0D3D +U+F0D3E +U+F0D3F +U+F0D40 +U+F0D41 +U+F0D42 +U+F0D43 +U+F0D44 +U+F0D45 +U+F0D46 +U+F0D47 +U+F0D48 +U+F0D49 +U+F0D4A +U+F0D4B +U+F0D4C +U+F0D4D +U+F0D4E +U+F0D4F +U+F0D50 +U+F0D51 +U+F0D52 +U+F0D53 +U+F0D54 +U+F0D55 +U+F0D56 +U+F0D57 +U+F0D58 +U+F0D59 +U+F0D5A +U+F0D5B +U+F0D5C +U+F0D5D +U+F0D5E +U+F0D5F +U+F0D60 +U+F0D61 +U+F0D62 +U+F0D63 +U+F0D64 +U+F0D65 +U+F0D66 +U+F0D67 +U+F0D68 +U+F0D69 +U+F0D6A +U+F0D6B +U+F0D6C +U+F0D6D +U+F0D6E +U+F0D6F +U+F0D70 +U+F0D71 +U+F0D72 +U+F0D73 +U+F0D74 +U+F0D75 +U+F0D76 +U+F0D77 +U+F0D78 +U+F0D79 +U+F0D7A +U+F0D7B +U+F0D7C +U+F0D7D +U+F0D7E +U+F0D7F +U+F0D80 +U+F0D81 +U+F0D82 +U+F0D83 +U+F0D84 +U+F0D85 +U+F0D86 +U+F0D87 +U+F0D88 +U+F0D89 +U+F0D8A +U+F0D8B +U+F0D8C +U+F0D8D +U+F0D8E +U+F0D8F +U+F0D90 +U+F0D91 +U+F0D92 +U+F0D93 +U+F0D94 +U+F0D95 +U+F0D96 +U+F0D97 +U+F0D98 +U+F0D99 +U+F0D9A +U+F0D9B +U+F0D9C +U+F0D9D +U+F0D9E +U+F0D9F +U+F0DA0 +U+F0DA1 +U+F0DA2 +U+F0DA3 +U+F0DA4 +U+F0DA5 +U+F0DA6 +U+F0DA7 +U+F0DA8 +U+F0DA9 +U+F0DAA +U+F0DAB +U+F0DAC +U+F0DAD +U+F0DAE +U+F0DAF +U+F0DB0 +U+F0DB1 +U+F0DB2 +U+F0DB3 +U+F0DB4 +U+F0DB5 +U+F0DB6 +U+F0DB7 +U+F0DB8 +U+F0DB9 +U+F0DBA +U+F0DBB +U+F0DBC +U+F0DBD +U+F0DBE +U+F0DBF +U+F0DC0 +U+F0DC1 +U+F0DC2 +U+F0DC3 +U+F0DC4 +U+F0DC5 +U+F0DC6 +U+F0DC7 +U+F0DC8 +U+F0DC9 +U+F0DCA +U+F0DCB +U+F0DCC +U+F0DCD +U+F0DCE +U+F0DCF +U+F0DD0 +U+F0DD1 +U+F0DD2 +U+F0DD3 +U+F0DD4 +U+F0DD5 +U+F0DD6 +U+F0DD7 +U+F0DD8 +U+F0DD9 +U+F0DDA +U+F0DDB +U+F0DDC +U+F0DDD +U+F0DDE +U+F0DDF +U+F0DE0 +U+F0DE1 +U+F0DE2 +U+F0DE3 +U+F0DE4 +U+F0DE5 +U+F0DE6 +U+F0DE7 +U+F0DE8 +U+F0DE9 +U+F0DEA +U+F0DEB +U+F0DEC +U+F0DED +U+F0DEE +U+F0DEF +U+F0DF0 +U+F0DF1 +U+F0DF2 +U+F0DF3 +U+F0DF4 +U+F0DF5 +U+F0DF6 +U+F0DF7 +U+F0DF8 +U+F0DF9 +U+F0DFA +U+F0DFB +U+F0DFC +U+F0DFD +U+F0DFE +U+F0DFF +U+F0E00 +U+F0E01 +U+F0E02 +U+F0E03 +U+F0E04 +U+F0E05 +U+F0E06 +U+F0E07 +U+F0E08 +U+F0E09 +U+F0E0A +U+F0E0B +U+F0E0C +U+F0E0D +U+F0E0E +U+F0E0F +U+F0E10 +U+F0E11 +U+F0E12 +U+F0E13 +U+F0E14 +U+F0E15 +U+F0E16 +U+F0E17 +U+F0E18 +U+F0E19 +U+F0E1A +U+F0E1B +U+F0E1C +U+F0E1D +U+F0E1E +U+F0E1F +U+F0E20 +U+F0E21 +U+F0E22 +U+F0E23 +U+F0E24 +U+F0E25 +U+F0E26 +U+F0E27 +U+F0E28 +U+F0E29 +U+F0E2A +U+F0E2B +U+F0E2C +U+F0E2D +U+F0E2E +U+F0E2F +U+F0E30 +U+F0E31 +U+F0E32 +U+F0E33 +U+F0E34 +U+F0E35 +U+F0E36 +U+F0E37 +U+F0E38 +U+F0E39 +U+F0E3A +U+F0E3B +U+F0E3C +U+F0E3D +U+F0E3E +U+F0E3F +U+F0E40 +U+F0E41 +U+F0E42 +U+F0E43 +U+F0E44 +U+F0E45 +U+F0E46 +U+F0E47 +U+F0E48 +U+F0E49 +U+F0E4A +U+F0E4B +U+F0E4C +U+F0E4D +U+F0E4E +U+F0E4F +U+F0E50 +U+F0E51 +U+F0E52 +U+F0E53 +U+F0E54 +U+F0E55 +U+F0E56 +U+F0E57 +U+F0E58 +U+F0E59 +U+F0E5A +U+F0E5B +U+F0E5C +U+F0E5D +U+F0E5E +U+F0E5F +U+F0E60 +U+F0E61 +U+F0E62 +U+F0E63 +U+F0E64 +U+F0E65 +U+F0E66 +U+F0E67 +U+F0E68 +U+F0E69 +U+F0E6A +U+F0E6B +U+F0E6C +U+F0E6D +U+F0E6E +U+F0E6F +U+F0E70 +U+F0E71 +U+F0E72 +U+F0E73 +U+F0E74 +U+F0E75 +U+F0E76 +U+F0E77 +U+F0E78 +U+F0E79 +U+F0E7A +U+F0E7B +U+F0E7C +U+F0E7D +U+F0E7E +U+F0E7F +U+F0E80 +U+F0E81 +U+F0E82 +U+F0E83 +U+F0E84 +U+F0E85 +U+F0E86 +U+F0E87 +U+F0E88 +U+F0E89 +U+F0E8A +U+F0E8B +U+F0E8C +U+F0E8D +U+F0E8E +U+F0E8F +U+F0E90 +U+F0E91 +U+F0E92 +U+F0E93 +U+F0E94 +U+F0E95 +U+F0E96 +U+F0E97 +U+F0E98 +U+F0E99 +U+F0E9A +U+F0E9B +U+F0E9C +U+F0E9D +U+F0E9E +U+F0E9F +U+F0EA0 +U+F0EA1 +U+F0EA2 +U+F0EA3 +U+F0EA4 +U+F0EA5 +U+F0EA6 +U+F0EA7 +U+F0EA8 +U+F0EA9 +U+F0EAA +U+F0EAB +U+F0EAC +U+F0EAD +U+F0EAE +U+F0EAF +U+F0EB0 +U+F0EB1 +U+F0EB2 +U+F0EB3 +U+F0EB4 +U+F0EB5 +U+F0EB6 +U+F0EB7 +U+F0EB8 +U+F0EB9 +U+F0EBA +U+F0EBB +U+F0EBC +U+F0EBD +U+F0EBE +U+F0EBF +U+F0EC0 +U+F0EC1 +U+F0EC2 +U+F0EC3 +U+F0EC4 +U+F0EC5 +U+F0EC6 +U+F0EC7 +U+F0EC8 +U+F0EC9 +U+F0ECA +U+F0ECB +U+F0ECC +U+F0ECD +U+F0ECE +U+F0ECF +U+F0ED0 +U+F0ED1 +U+F0ED2 +U+F0ED3 +U+F0ED4 +U+F0ED5 +U+F0ED6 +U+F0ED7 +U+F0ED8 +U+F0ED9 +U+F0EDA +U+F0EDB +U+F0EDC +U+F0EDD +U+F0EDE +U+F0EDF +U+F0EE0 +U+F0EE1 +U+F0EE2 +U+F0EE3 +U+F0EE4 +U+F0EE5 +U+F0EE6 +U+F0EE7 +U+F0EE8 +U+F0EE9 +U+F0EEA +U+F0EEB +U+F0EEC +U+F0EED +U+F0EEE +U+F0EEF +U+F0EF0 +U+F0EF1 +U+F0EF2 +U+F0EF3 +U+F0EF4 +U+F0EF5 +U+F0EF6 +U+F0EF7 +U+F0EF8 +U+F0EF9 +U+F0EFA +U+F0EFB +U+F0EFC +U+F0EFD +U+F0EFE +U+F0EFF +U+F0F00 +U+F0F01 +U+F0F02 +U+F0F03 +U+F0F04 +U+F0F05 +U+F0F06 +U+F0F07 +U+F0F08 +U+F0F09 +U+F0F0A +U+F0F0B +U+F0F0C +U+F0F0D +U+F0F0E +U+F0F0F +U+F0F10 +U+F0F11 +U+F0F12 +U+F0F13 +U+F0F14 +U+F0F15 +U+F0F16 +U+F0F17 +U+F0F18 +U+F0F19 +U+F0F1A +U+F0F1B +U+F0F1C +U+F0F1D +U+F0F1E +U+F0F1F +U+F0F20 +U+F0F21 +U+F0F22 +U+F0F23 +U+F0F24 +U+F0F25 +U+F0F26 +U+F0F27 +U+F0F28 +U+F0F29 +U+F0F2A +U+F0F2B +U+F0F2C +U+F0F2D +U+F0F2E +U+F0F2F +U+F0F30 +U+F0F31 +U+F0F32 +U+F0F33 +U+F0F34 +U+F0F35 +U+F0F36 +U+F0F37 +U+F0F38 +U+F0F39 +U+F0F3A +U+F0F3B +U+F0F3C +U+F0F3D +U+F0F3E +U+F0F3F +U+F0F40 +U+F0F41 +U+F0F42 +U+F0F43 +U+F0F44 +U+F0F45 +U+F0F46 +U+F0F47 +U+F0F48 +U+F0F49 +U+F0F4A +U+F0F4B +U+F0F4C +U+F0F4D +U+F0F4E +U+F0F4F +U+F0F50 +U+F0F51 +U+F0F52 +U+F0F53 +U+F0F54 +U+F0F55 +U+F0F56 +U+F0F57 +U+F0F58 +U+F0F59 +U+F0F5A +U+F0F5B +U+F0F5C +U+F0F5D +U+F0F5E +U+F0F5F +U+F0F60 +U+F0F61 +U+F0F62 +U+F0F63 +U+F0F64 +U+F0F65 +U+F0F66 +U+F0F67 +U+F0F68 +U+F0F69 +U+F0F6A +U+F0F6B +U+F0F6C +U+F0F6D +U+F0F6E +U+F0F6F +U+F0F70 +U+F0F71 +U+F0F72 +U+F0F73 +U+F0F74 +U+F0F75 +U+F0F76 +U+F0F77 +U+F0F78 +U+F0F79 +U+F0F7A +U+F0F7B +U+F0F7C +U+F0F7D +U+F0F7E +U+F0F7F +U+F0F80 +U+F0F81 +U+F0F82 +U+F0F83 +U+F0F84 +U+F0F85 +U+F0F86 +U+F0F87 +U+F0F88 +U+F0F89 +U+F0F8A +U+F0F8B +U+F0F8C +U+F0F8D +U+F0F8E +U+F0F8F +U+F0F90 +U+F0F91 +U+F0F92 +U+F0F93 +U+F0F94 +U+F0F95 +U+F0F96 +U+F0F97 +U+F0F98 +U+F0F99 +U+F0F9A +U+F0F9B +U+F0F9C +U+F0F9D +U+F0F9E +U+F0F9F +U+F0FA0 +U+F0FA1 +U+F0FA2 +U+F0FA3 +U+F0FA4 +U+F0FA5 +U+F0FA6 +U+F0FA7 +U+F0FA8 +U+F0FA9 +U+F0FAA +U+F0FAB +U+F0FAC +U+F0FAD +U+F0FAE +U+F0FAF +U+F0FB0 +U+F0FB1 +U+F0FB2 +U+F0FB3 +U+F0FB4 +U+F0FB5 +U+F0FB6 +U+F0FB7 +U+F0FB8 +U+F0FB9 +U+F0FBA +U+F0FBB +U+F0FBC +U+F0FBD +U+F0FBE +U+F0FBF +U+F0FC0 +U+F0FC1 +U+F0FC2 +U+F0FC3 +U+F0FC4 +U+F0FC5 +U+F0FC6 +U+F0FC7 +U+F0FC8 +U+F0FC9 +U+F0FCA +U+F0FCB +U+F0FCC +U+F0FCD +U+F0FCE +U+F0FCF +U+F0FD0 +U+F0FD1 +U+F0FD2 +U+F0FD3 +U+F0FD4 +U+F0FD5 +U+F0FD6 +U+F0FD7 +U+F0FD8 +U+F0FD9 +U+F0FDA +U+F0FDB +U+F0FDC +U+F0FDD +U+F0FDE +U+F0FDF +U+F0FE0 +U+F0FE1 +U+F0FE2 +U+F0FE3 +U+F0FE4 +U+F0FE5 +U+F0FE6 +U+F0FE7 +U+F0FE8 +U+F0FE9 +U+F0FEA +U+F0FEB +U+F0FEC +U+F0FED +U+F0FEE +U+F0FEF +U+F0FF0 +U+F0FF1 +U+F0FF2 +U+F0FF3 +U+F0FF4 +U+F0FF5 +U+F0FF6 +U+F0FF7 +U+F0FF8 +U+F0FF9 +U+F0FFA +U+F0FFB +U+F0FFC +U+F0FFD +U+F0FFE +U+F0FFF +U+F1000 +U+F1001 +U+F1002 +U+F1003 +U+F1004 +U+F1005 +U+F1006 +U+F1007 +U+F1008 +U+F1009 +U+F100A +U+F100B +U+F100C +U+F100D +U+F100E +U+F100F +U+F1010 +U+F1011 +U+F1012 +U+F1013 +U+F1014 +U+F1015 +U+F1016 +U+F1017 +U+F1018 +U+F1019 +U+F101A +U+F101B +U+F101C +U+F101D +U+F101E +U+F101F +U+F1020 +U+F1021 +U+F1022 +U+F1023 +U+F1024 +U+F1025 +U+F1026 +U+F1027 +U+F1028 +U+F1029 +U+F102A +U+F102B +U+F102C +U+F102D +U+F102E +U+F102F +U+F1030 +U+F1031 +U+F1032 +U+F1033 +U+F1034 +U+F1035 +U+F1036 +U+F1037 +U+F1038 +U+F1039 +U+F103A +U+F103B +U+F103C +U+F103D +U+F103E +U+F103F +U+F1040 +U+F1041 +U+F1042 +U+F1043 +U+F1044 +U+F1045 +U+F1046 +U+F1047 +U+F1048 +U+F1049 +U+F104A +U+F104B +U+F104C +U+F104D +U+F104E +U+F104F +U+F1050 +U+F1051 +U+F1052 +U+F1053 +U+F1054 +U+F1055 +U+F1056 +U+F1057 +U+F1058 +U+F1059 +U+F105A +U+F105B +U+F105C +U+F105D +U+F105E +U+F105F +U+F1060 +U+F1061 +U+F1062 +U+F1063 +U+F1064 +U+F1065 +U+F1066 +U+F1067 +U+F1068 +U+F1069 +U+F106A +U+F106B +U+F106C +U+F106D +U+F106E +U+F106F +U+F1070 +U+F1071 +U+F1072 +U+F1073 +U+F1074 +U+F1075 +U+F1076 +U+F1077 +U+F1078 +U+F1079 +U+F107A +U+F107B +U+F107C +U+F107D +U+F107E +U+F107F +U+F1080 +U+F1081 +U+F1082 +U+F1083 +U+F1084 +U+F1085 +U+F1086 +U+F1087 +U+F1088 +U+F1089 +U+F108A +U+F108B +U+F108C +U+F108D +U+F108E +U+F108F +U+F1090 +U+F1091 +U+F1092 +U+F1093 +U+F1094 +U+F1095 +U+F1096 +U+F1097 +U+F1098 +U+F1099 +U+F109A +U+F109B +U+F109C +U+F109D +U+F109E +U+F109F +U+F10A0 +U+F10A1 +U+F10A2 +U+F10A3 +U+F10A4 +U+F10A5 +U+F10A6 +U+F10A7 +U+F10A8 +U+F10A9 +U+F10AA +U+F10AB +U+F10AC +U+F10AD +U+F10AE +U+F10AF +U+F10B0 +U+F10B1 +U+F10B2 +U+F10B3 +U+F10B4 +U+F10B5 +U+F10B6 +U+F10B7 +U+F10B8 +U+F10B9 +U+F10BA +U+F10BB +U+F10BC +U+F10BD +U+F10BE +U+F10BF +U+F10C0 +U+F10C1 +U+F10C2 +U+F10C3 +U+F10C4 +U+F10C5 +U+F10C6 +U+F10C7 +U+F10C8 +U+F10C9 +U+F10CA +U+F10CB +U+F10CC +U+F10CD +U+F10CE +U+F10CF +U+F10D0 +U+F10D1 +U+F10D2 +U+F10D3 +U+F10D4 +U+F10D5 +U+F10D6 +U+F10D7 +U+F10D8 +U+F10D9 +U+F10DA +U+F10DB +U+F10DC +U+F10DD +U+F10DE +U+F10DF +U+F10E0 +U+F10E1 +U+F10E2 +U+F10E3 +U+F10E4 +U+F10E5 +U+F10E6 +U+F10E7 +U+F10E8 +U+F10E9 +U+F10EA +U+F10EB +U+F10EC +U+F10ED +U+F10EE +U+F10EF +U+F10F0 +U+F10F1 +U+F10F2 +U+F10F3 +U+F10F4 +U+F10F5 +U+F10F6 +U+F10F7 +U+F10F8 +U+F10F9 +U+F10FA +U+F10FB +U+F10FC +U+F10FD +U+F10FE +U+F10FF +U+F1100 +U+F1101 +U+F1102 +U+F1103 +U+F1104 +U+F1105 +U+F1106 +U+F1107 +U+F1108 +U+F1109 +U+F110A +U+F110B +U+F110C +U+F110D +U+F110E +U+F110F +U+F1110 +U+F1111 +U+F1112 +U+F1113 +U+F1114 +U+F1115 +U+F1116 +U+F1117 +U+F1118 +U+F1119 +U+F111A +U+F111B +U+F111C +U+F111D +U+F111E +U+F111F +U+F1120 +U+F1121 +U+F1122 +U+F1123 +U+F1124 +U+F1125 +U+F1126 +U+F1127 +U+F1128 +U+F1129 +U+F112A +U+F112B +U+F112C +U+F112D +U+F112E +U+F112F +U+F1130 +U+F1131 +U+F1132 +U+F1133 +U+F1134 +U+F1135 +U+F1136 +U+F1137 +U+F1138 +U+F1139 +U+F113A +U+F113B +U+F113C +U+F113D +U+F113E +U+F113F +U+F1140 +U+F1141 +U+F1142 +U+F1143 +U+F1144 +U+F1145 +U+F1146 +U+F1147 +U+F1148 +U+F1149 +U+F114A +U+F114B +U+F114C +U+F114D +U+F114E +U+F114F +U+F1150 +U+F1151 +U+F1152 +U+F1153 +U+F1154 +U+F1155 +U+F1156 +U+F1157 +U+F1158 +U+F1159 +U+F115A +U+F115B +U+F115C +U+F115D +U+F115E +U+F115F +U+F1160 +U+F1161 +U+F1162 +U+F1163 +U+F1164 +U+F1165 +U+F1166 +U+F1167 +U+F1168 +U+F1169 +U+F116A +U+F116B +U+F116C +U+F116D +U+F116E +U+F116F +U+F1170 +U+F1171 +U+F1172 +U+F1173 +U+F1174 +U+F1175 +U+F1176 +U+F1177 +U+F1178 +U+F1179 +U+F117A +U+F117B +U+F117C +U+F117D +U+F117E +U+F117F +U+F1180 +U+F1181 +U+F1182 +U+F1183 +U+F1184 +U+F1185 +U+F1186 +U+F1187 +U+F1188 +U+F1189 +U+F118A +U+F118B +U+F118C +U+F118D +U+F118E +U+F118F +U+F1190 +U+F1191 +U+F1192 +U+F1193 +U+F1194 +U+F1195 +U+F1196 +U+F1197 +U+F1198 +U+F1199 +U+F119A +U+F119B +U+F119C +U+F119D +U+F119E +U+F119F +U+F11A0 +U+F11A1 +U+F11A2 +U+F11A3 +U+F11A4 +U+F11A5 +U+F11A6 +U+F11A7 +U+F11A8 +U+F11A9 +U+F11AA +U+F11AB +U+F11AC +U+F11AD +U+F11AE +U+F11AF +U+F11B0 +U+F11B1 +U+F11B2 +U+F11B3 +U+F11B4 +U+F11B5 +U+F11B6 +U+F11B7 +U+F11B8 +U+F11B9 +U+F11BA +U+F11BB +U+F11BC +U+F11BD +U+F11BE +U+F11BF +U+F11C0 +U+F11C1 +U+F11C2 +U+F11C3 +U+F11C4 +U+F11C5 +U+F11C6 +U+F11C7 +U+F11C8 +U+F11C9 +U+F11CA +U+F11CB +U+F11CC +U+F11CD +U+F11CE +U+F11CF +U+F11D0 +U+F11D1 +U+F11D2 +U+F11D3 +U+F11D4 +U+F11D5 +U+F11D6 +U+F11D7 +U+F11D8 +U+F11D9 +U+F11DA +U+F11DB +U+F11DC +U+F11DD +U+F11DE +U+F11DF +U+F11E0 +U+F11E1 +U+F11E2 +U+F11E3 +U+F11E4 +U+F11E5 +U+F11E6 +U+F11E7 +U+F11E8 +U+F11E9 +U+F11EA +U+F11EB +U+F11EC +U+F11ED +U+F11EE +U+F11EF +U+F11F0 +U+F11F1 +U+F11F2 +U+F11F3 +U+F11F4 +U+F11F5 +U+F11F6 +U+F11F7 +U+F11F8 +U+F11F9 +U+F11FA +U+F11FB +U+F11FC +U+F11FD +U+F11FE +U+F11FF +U+F1200 +U+F1201 +U+F1202 +U+F1203 +U+F1204 +U+F1205 +U+F1206 +U+F1207 +U+F1208 +U+F1209 +U+F120A +U+F120B +U+F120C +U+F120D +U+F120E +U+F120F +U+F1210 +U+F1211 +U+F1212 +U+F1213 +U+F1214 +U+F1215 +U+F1216 +U+F1217 +U+F1218 +U+F1219 +U+F121A +U+F121B +U+F121C +U+F121D +U+F121E +U+F121F +U+F1220 +U+F1221 +U+F1222 +U+F1223 +U+F1224 +U+F1225 +U+F1226 +U+F1227 +U+F1228 +U+F1229 +U+F122A +U+F122B +U+F122C +U+F122D +U+F122E +U+F122F +U+F1230 +U+F1231 +U+F1232 +U+F1233 +U+F1234 +U+F1235 +U+F1236 +U+F1237 +U+F1238 +U+F1239 +U+F123A +U+F123B +U+F123C +U+F123D +U+F123E +U+F123F +U+F1240 +U+F1241 +U+F1242 +U+F1243 +U+F1244 +U+F1245 +U+F1246 +U+F1247 +U+F1248 +U+F1249 +U+F124A +U+F124B +U+F124C +U+F124D +U+F124E +U+F124F +U+F1250 +U+F1251 +U+F1252 +U+F1253 +U+F1254 +U+F1255 +U+F1256 +U+F1257 +U+F1258 +U+F1259 +U+F125A +U+F125B +U+F125C +U+F125D +U+F125E +U+F125F +U+F1260 +U+F1261 +U+F1262 +U+F1263 +U+F1264 +U+F1265 +U+F1266 +U+F1267 +U+F1268 +U+F1269 +U+F126A +U+F126B +U+F126C +U+F126D +U+F126E +U+F126F +U+F1270 +U+F1271 +U+F1272 +U+F1273 +U+F1274 +U+F1275 +U+F1276 +U+F1277 +U+F1278 +U+F1279 +U+F127A +U+F127B +U+F127C +U+F127D +U+F127E +U+F127F +U+F1280 +U+F1281 +U+F1282 +U+F1283 +U+F1284 +U+F1285 +U+F1286 +U+F1287 +U+F1288 +U+F1289 +U+F128A +U+F128B +U+F128C +U+F128D +U+F128E +U+F128F +U+F1290 +U+F1291 +U+F1292 +U+F1293 +U+F1294 +U+F1295 +U+F1296 +U+F1297 +U+F1298 +U+F1299 +U+F129A +U+F129B +U+F129C +U+F129D +U+F129E +U+F129F +U+F12A0 +U+F12A1 +U+F12A2 +U+F12A3 +U+F12A4 +U+F12A5 +U+F12A6 +U+F12A7 +U+F12A8 +U+F12A9 +U+F12AA +U+F12AB +U+F12AC +U+F12AD +U+F12AE +U+F12AF +U+F12B0 +U+F12B1 +U+F12B2 +U+F12B3 +U+F12B4 +U+F12B5 +U+F12B6 +U+F12B7 +U+F12B8 +U+F12B9 +U+F12BA +U+F12BB +U+F12BC +U+F12BD +U+F12BE +U+F12BF +U+F12C0 +U+F12C1 +U+F12C2 +U+F12C3 +U+F12C4 +U+F12C5 +U+F12C6 +U+F12C7 +U+F12C8 +U+F12C9 +U+F12CA +U+F12CB +U+F12CC +U+F12CD +U+F12CE +U+F12CF +U+F12D0 +U+F12D1 +U+F12D2 +U+F12D3 +U+F12D4 +U+F12D5 +U+F12D6 +U+F12D7 +U+F12D8 +U+F12D9 +U+F12DA +U+F12DB +U+F12DC +U+F12DD +U+F12DE +U+F12DF +U+F12E0 +U+F12E1 +U+F12E2 +U+F12E3 +U+F12E4 +U+F12E5 +U+F12E6 +U+F12E7 +U+F12E8 +U+F12E9 +U+F12EA +U+F12EB +U+F12EC +U+F12ED +U+F12EE +U+F12EF +U+F12F0 +U+F12F1 +U+F12F2 +U+F12F3 +U+F12F4 +U+F12F5 +U+F12F6 +U+F12F7 +U+F12F8 +U+F12F9 +U+F12FA +U+F12FB +U+F12FC +U+F12FD +U+F12FE +U+F12FF +U+F1300 +U+F1301 +U+F1302 +U+F1303 +U+F1304 +U+F1305 +U+F1306 +U+F1307 +U+F1308 +U+F1309 +U+F130A +U+F130B +U+F130C +U+F130D +U+F130E +U+F130F +U+F1310 +U+F1311 +U+F1312 +U+F1313 +U+F1314 +U+F1315 +U+F1316 +U+F1317 +U+F1318 +U+F1319 +U+F131A +U+F131B +U+F131C +U+F131D +U+F131E +U+F131F +U+F1320 +U+F1321 +U+F1322 +U+F1323 +U+F1324 +U+F1325 +U+F1326 +U+F1327 +U+F1328 +U+F1329 +U+F132A +U+F132B +U+F132C +U+F132D +U+F132E +U+F132F +U+F1330 +U+F1331 +U+F1332 +U+F1333 +U+F1334 +U+F1335 +U+F1336 +U+F1337 +U+F1338 +U+F1339 +U+F133A +U+F133B +U+F133C +U+F133D +U+F133E +U+F133F +U+F1340 +U+F1341 +U+F1342 +U+F1343 +U+F1344 +U+F1345 +U+F1346 +U+F1347 +U+F1348 +U+F1349 +U+F134A +U+F134B +U+F134C +U+F134D +U+F134E +U+F134F +U+F1350 +U+F1351 +U+F1352 +U+F1353 +U+F1354 +U+F1355 +U+F1356 +U+F1357 +U+F1358 +U+F1359 +U+F135A +U+F135B +U+F135C +U+F135D +U+F135E +U+F135F +U+F1360 +U+F1361 +U+F1362 +U+F1363 +U+F1364 +U+F1365 +U+F1366 +U+F1367 +U+F1368 +U+F1369 +U+F136A +U+F136B +U+F136C +U+F136D +U+F136E +U+F136F +U+F1370 +U+F1371 +U+F1372 +U+F1373 +U+F1374 +U+F1375 +U+F1376 +U+F1377 +U+F1378 +U+F1379 +U+F137A +U+F137B +U+F137C +U+F137D +U+F137E +U+F137F +U+F1380 +U+F1381 +U+F1382 +U+F1383 +U+F1384 +U+F1385 +U+F1386 +U+F1387 +U+F1388 +U+F1389 +U+F138A +U+F138B +U+F138C +U+F138D +U+F138E +U+F138F +U+F1390 +U+F1391 +U+F1392 +U+F1393 +U+F1394 +U+F1395 +U+F1396 +U+F1397 +U+F1398 +U+F1399 +U+F139A +U+F139B +U+F139C +U+F139D +U+F139E +U+F139F +U+F13A0 +U+F13A1 +U+F13A2 +U+F13A3 +U+F13A4 +U+F13A5 +U+F13A6 +U+F13A7 +U+F13A8 +U+F13A9 +U+F13AA +U+F13AB +U+F13AC +U+F13AD +U+F13AE +U+F13AF +U+F13B0 +U+F13B1 +U+F13B2 +U+F13B3 +U+F13B4 +U+F13B5 +U+F13B6 +U+F13B7 +U+F13B8 +U+F13B9 +U+F13BA +U+F13BB +U+F13BC +U+F13BD +U+F13BE +U+F13BF +U+F13C0 +U+F13C1 +U+F13C2 +U+F13C3 +U+F13C4 +U+F13C5 +U+F13C6 +U+F13C7 +U+F13C8 +U+F13C9 +U+F13CA +U+F13CB +U+F13CC +U+F13CD +U+F13CE +U+F13CF +U+F13D0 +U+F13D1 +U+F13D2 +U+F13D3 +U+F13D4 +U+F13D5 +U+F13D6 +U+F13D7 +U+F13D8 +U+F13D9 +U+F13DA +U+F13DB +U+F13DC +U+F13DD +U+F13DE +U+F13DF +U+F13E0 +U+F13E1 +U+F13E2 +U+F13E3 +U+F13E4 +U+F13E5 +U+F13E6 +U+F13E7 +U+F13E8 +U+F13E9 +U+F13EA +U+F13EB +U+F13EC +U+F13ED +U+F13EE +U+F13EF +U+F13F0 +U+F13F1 +U+F13F2 +U+F13F3 +U+F13F4 +U+F13F5 +U+F13F6 +U+F13F7 +U+F13F8 +U+F13F9 +U+F13FA +U+F13FB +U+F13FC +U+F13FD +U+F13FE +U+F13FF +U+F1400 +U+F1401 +U+F1402 +U+F1403 +U+F1404 +U+F1405 +U+F1406 +U+F1407 +U+F1408 +U+F1409 +U+F140A +U+F140B +U+F140C +U+F140D +U+F140E +U+F140F +U+F1410 +U+F1411 +U+F1412 +U+F1413 +U+F1414 +U+F1415 +U+F1416 +U+F1417 +U+F1418 +U+F1419 +U+F141A +U+F141B +U+F141C +U+F141D +U+F141E +U+F141F +U+F1420 +U+F1421 +U+F1422 +U+F1423 +U+F1424 +U+F1425 +U+F1426 +U+F1427 +U+F1428 +U+F1429 +U+F142A +U+F142B +U+F142C +U+F142D +U+F142E +U+F142F +U+F1430 +U+F1431 +U+F1432 +U+F1433 +U+F1434 +U+F1435 +U+F1436 +U+F1437 +U+F1438 +U+F1439 +U+F143A +U+F143B +U+F143C +U+F143D +U+F143E +U+F143F +U+F1440 +U+F1441 +U+F1442 +U+F1443 +U+F1444 +U+F1445 +U+F1446 +U+F1447 +U+F1448 +U+F1449 +U+F144A +U+F144B +U+F144C +U+F144D +U+F144E +U+F144F +U+F1450 +U+F1451 +U+F1452 +U+F1453 +U+F1454 +U+F1455 +U+F1456 +U+F1457 +U+F1458 +U+F1459 +U+F145A +U+F145B +U+F145C +U+F145D +U+F145E +U+F145F +U+F1460 +U+F1461 +U+F1462 +U+F1463 +U+F1464 +U+F1465 +U+F1466 +U+F1467 +U+F1468 +U+F1469 +U+F146A +U+F146B +U+F146C +U+F146D +U+F146E +U+F146F +U+F1470 +U+F1471 +U+F1472 +U+F1473 +U+F1474 +U+F1475 +U+F1476 +U+F1477 +U+F1478 +U+F1479 +U+F147A +U+F147B +U+F147C +U+F147D +U+F147E +U+F147F +U+F1480 +U+F1481 +U+F1482 +U+F1483 +U+F1484 +U+F1485 +U+F1486 +U+F1487 +U+F1488 +U+F1489 +U+F148A +U+F148B +U+F148C +U+F148D +U+F148E +U+F148F +U+F1490 +U+F1491 +U+F1492 +U+F1493 +U+F1494 +U+F1495 +U+F1496 +U+F1497 +U+F1498 +U+F1499 +U+F149A +U+F149B +U+F149C +U+F149D +U+F149E +U+F149F +U+F14A0 +U+F14A1 +U+F14A2 +U+F14A3 +U+F14A4 +U+F14A5 +U+F14A6 +U+F14A7 +U+F14A8 +U+F14A9 +U+F14AA +U+F14AB +U+F14AC +U+F14AD +U+F14AE +U+F14AF +U+F14B0 +U+F14B1 +U+F14B2 +U+F14B3 +U+F14B4 +U+F14B5 +U+F14B6 +U+F14B7 +U+F14B8 +U+F14B9 +U+F14BA +U+F14BB +U+F14BC +U+F14BD +U+F14BE +U+F14BF +U+F14C0 +U+F14C1 +U+F14C2 +U+F14C3 +U+F14C4 +U+F14C5 +U+F14C6 +U+F14C7 +U+F14C8 +U+F14C9 +U+F14CA +U+F14CB +U+F14CC +U+F14CD +U+F14CE +U+F14CF +U+F14D0 +U+F14D1 +U+F14D2 +U+F14D3 +U+F14D4 +U+F14D5 +U+F14D6 +U+F14D7 +U+F14D8 +U+F14D9 +U+F14DA +U+F14DB +U+F14DC +U+F14DD +U+F14DE +U+F14DF +U+F14E0 +U+F14E1 +U+F14E2 +U+F14E3 +U+F14E4 +U+F14E5 +U+F14E6 +U+F14E7 +U+F14E8 +U+F14E9 +U+F14EA +U+F14EB +U+F14EC +U+F14ED +U+F14EE +U+F14EF +U+F14F0 +U+F14F1 +U+F14F2 +U+F14F3 +U+F14F4 +U+F14F5 +U+F14F6 +U+F14F7 +U+F14F8 +U+F14F9 +U+F14FA +U+F14FB +U+F14FC +U+F14FD +U+F14FE +U+F14FF +U+F1500 +U+F1501 +U+F1502 +U+F1503 +U+F1504 +U+F1505 +U+F1506 +U+F1507 +U+F1508 +U+F1509 +U+F150A +U+F150B +U+F150C +U+F150D +U+F150E +U+F150F +U+F1510 +U+F1511 +U+F1512 +U+F1513 +U+F1514 +U+F1515 +U+F1516 +U+F1517 +U+F1518 +U+F1519 +U+F151A +U+F151B +U+F151C +U+F151D +U+F151E +U+F151F +U+F1520 +U+F1521 +U+F1522 +U+F1523 +U+F1524 +U+F1525 +U+F1526 +U+F1527 +U+F1528 +U+F1529 +U+F152A +U+F152B +U+F152C +U+F152D +U+F152E +U+F152F +U+F1530 +U+F1531 +U+F1532 +U+F1533 +U+F1534 +U+F1535 +U+F1536 +U+F1537 +U+F1538 +U+F1539 +U+F153A +U+F153B +U+F153C +U+F153D +U+F153E +U+F153F +U+F1540 +U+F1541 +U+F1542 +U+F1543 +U+F1544 +U+F1545 +U+F1546 +U+F1547 +U+F1548 +U+F1549 +U+F154A +U+F154B +U+F154C +U+F154D +U+F154E +U+F154F +U+F1550 +U+F1551 +U+F1552 +U+F1553 +U+F1554 +U+F1555 +U+F1556 +U+F1557 +U+F1558 +U+F1559 +U+F155A +U+F155B +U+F155C +U+F155D +U+F155E +U+F155F +U+F1560 +U+F1561 +U+F1562 +U+F1563 +U+F1564 +U+F1565 +U+F1566 +U+F1567 +U+F1568 +U+F1569 +U+F156A +U+F156B +U+F156C +U+F156D +U+F156E +U+F156F +U+F1570 +U+F1571 +U+F1572 +U+F1573 +U+F1574 +U+F1575 +U+F1576 +U+F1577 +U+F1578 +U+F1579 +U+F157A +U+F157B +U+F157C +U+F157D +U+F157E +U+F157F +U+F1580 +U+F1581 +U+F1582 +U+F1583 +U+F1584 +U+F1585 +U+F1586 +U+F1587 +U+F1588 +U+F1589 +U+F158A +U+F158B +U+F158C +U+F158D +U+F158E +U+F158F +U+F1590 +U+F1591 +U+F1592 +U+F1593 +U+F1594 +U+F1595 +U+F1596 +U+F1597 +U+F1598 +U+F1599 +U+F159A +U+F159B +U+F159C +U+F159D +U+F159E +U+F159F +U+F15A0 +U+F15A1 +U+F15A2 +U+F15A3 +U+F15A4 +U+F15A5 +U+F15A6 +U+F15A7 +U+F15A8 +U+F15A9 +U+F15AA +U+F15AB +U+F15AC +U+F15AD +U+F15AE +U+F15AF +U+F15B0 +U+F15B1 +U+F15B2 +U+F15B3 +U+F15B4 +U+F15B5 +U+F15B6 +U+F15B7 +U+F15B8 +U+F15B9 +U+F15BA +U+F15BB +U+F15BC +U+F15BD +U+F15BE +U+F15BF +U+F15C0 +U+F15C1 +U+F15C2 +U+F15C3 +U+F15C4 +U+F15C5 +U+F15C6 +U+F15C7 +U+F15C8 +U+F15C9 +U+F15CA +U+F15CB +U+F15CC +U+F15CD +U+F15CE +U+F15CF +U+F15D0 +U+F15D1 +U+F15D2 +U+F15D3 +U+F15D4 +U+F15D5 +U+F15D6 +U+F15D7 +U+F15D8 +U+F15D9 +U+F15DA +U+F15DB +U+F15DC +U+F15DD +U+F15DE +U+F15DF +U+F15E0 +U+F15E1 +U+F15E2 +U+F15E3 +U+F15E4 +U+F15E5 +U+F15E6 +U+F15E7 +U+F15E8 +U+F15E9 +U+F15EA +U+F15EB +U+F15EC +U+F15ED +U+F15EE +U+F15EF +U+F15F0 +U+F15F1 +U+F15F2 +U+F15F3 +U+F15F4 +U+F15F5 +U+F15F6 +U+F15F7 +U+F15F8 +U+F15F9 +U+F15FA +U+F15FB +U+F15FC +U+F15FD +U+F15FE +U+F15FF +U+F1600 +U+F1601 +U+F1602 +U+F1603 +U+F1604 +U+F1605 +U+F1606 +U+F1607 +U+F1608 +U+F1609 +U+F160A +U+F160B +U+F160C +U+F160D +U+F160E +U+F160F +U+F1610 +U+F1611 +U+F1612 +U+F1613 +U+F1614 +U+F1615 +U+F1616 +U+F1617 +U+F1618 +U+F1619 +U+F161A +U+F161B +U+F161C +U+F161D +U+F161E +U+F161F +U+F1620 +U+F1621 +U+F1622 +U+F1623 +U+F1624 +U+F1625 +U+F1626 +U+F1627 +U+F1628 +U+F1629 +U+F162A +U+F162B +U+F162C +U+F162D +U+F162E +U+F162F +U+F1630 +U+F1631 +U+F1632 +U+F1633 +U+F1634 +U+F1635 +U+F1636 +U+F1637 +U+F1638 +U+F1639 +U+F163A +U+F163B +U+F163C +U+F163D +U+F163E +U+F163F +U+F1640 +U+F1641 +U+F1642 +U+F1643 +U+F1644 +U+F1645 +U+F1646 +U+F1647 +U+F1648 +U+F1649 +U+F164A +U+F164B +U+F164C +U+F164D +U+F164E +U+F164F +U+F1650 +U+F1651 +U+F1652 +U+F1653 +U+F1654 +U+F1655 +U+F1656 +U+F1657 +U+F1658 +U+F1659 +U+F165A +U+F165B +U+F165C +U+F165D +U+F165E +U+F165F +U+F1660 +U+F1661 +U+F1662 +U+F1663 +U+F1664 +U+F1665 +U+F1666 +U+F1667 +U+F1668 +U+F1669 +U+F166A +U+F166B +U+F166C +U+F166D +U+F166E +U+F166F +U+F1670 +U+F1671 +U+F1672 +U+F1673 +U+F1674 +U+F1675 +U+F1676 +U+F1677 +U+F1678 +U+F1679 +U+F167A +U+F167B +U+F167C +U+F167D +U+F167E +U+F167F +U+F1680 +U+F1681 +U+F1682 +U+F1683 +U+F1684 +U+F1685 +U+F1686 +U+F1687 +U+F1688 +U+F1689 +U+F168A +U+F168B +U+F168C +U+F168D +U+F168E +U+F168F +U+F1690 +U+F1691 +U+F1692 +U+F1693 +U+F1694 +U+F1695 +U+F1696 +U+F1697 +U+F1698 +U+F1699 +U+F169A +U+F169B +U+F169C +U+F169D +U+F169E +U+F169F +U+F16A0 +U+F16A1 +U+F16A2 +U+F16A3 +U+F16A4 +U+F16A5 +U+F16A6 +U+F16A7 +U+F16A8 +U+F16A9 +U+F16AA +U+F16AB +U+F16AC +U+F16AD +U+F16AE +U+F16AF +U+F16B0 +U+F16B1 +U+F16B2 +U+F16B3 +U+F16B4 +U+F16B5 +U+F16B6 +U+F16B7 +U+F16B8 +U+F16B9 +U+F16BA +U+F16BB +U+F16BC +U+F16BD +U+F16BE +U+F16BF +U+F16C0 +U+F16C1 +U+F16C2 +U+F16C3 +U+F16C4 +U+F16C5 +U+F16C6 +U+F16C7 +U+F16C8 +U+F16C9 +U+F16CA +U+F16CB +U+F16CC +U+F16CD +U+F16CE +U+F16CF +U+F16D0 +U+F16D1 +U+F16D2 +U+F16D3 +U+F16D4 +U+F16D5 +U+F16D6 +U+F16D7 +U+F16D8 +U+F16D9 +U+F16DA +U+F16DB +U+F16DC +U+F16DD +U+F16DE +U+F16DF +U+F16E0 +U+F16E1 +U+F16E2 +U+F16E3 +U+F16E4 +U+F16E5 +U+F16E6 +U+F16E7 +U+F16E8 +U+F16E9 +U+F16EA +U+F16EB +U+F16EC +U+F16ED +U+F16EE +U+F16EF +U+F16F0 +U+F16F1 +U+F16F2 +U+F16F3 +U+F16F4 +U+F16F5 +U+F16F6 +U+F16F7 +U+F16F8 +U+F16F9 +U+F16FA +U+F16FB +U+F16FC +U+F16FD +U+F16FE +U+F16FF +U+F1700 +U+F1701 +U+F1702 +U+F1703 +U+F1704 +U+F1705 +U+F1706 +U+F1707 +U+F1708 +U+F1709 +U+F170A +U+F170B +U+F170C +U+F170D +U+F170E +U+F170F +U+F1710 +U+F1711 +U+F1712 +U+F1713 +U+F1714 +U+F1715 +U+F1716 +U+F1717 +U+F1718 +U+F1719 +U+F171A +U+F171B +U+F171C +U+F171D +U+F171E +U+F171F +U+F1720 +U+F1721 +U+F1722 +U+F1723 +U+F1724 +U+F1725 +U+F1726 +U+F1727 +U+F1728 +U+F1729 +U+F172A +U+F172B +U+F172C +U+F172D +U+F172E +U+F172F +U+F1730 +U+F1731 +U+F1732 +U+F1733 +U+F1734 +U+F1735 +U+F1736 +U+F1737 +U+F1738 +U+F1739 +U+F173A +U+F173B +U+F173C +U+F173D +U+F173E +U+F173F +U+F1740 +U+F1741 +U+F1742 +U+F1743 +U+F1744 +U+F1745 +U+F1746 +U+F1747 +U+F1748 +U+F1749 +U+F174A +U+F174B +U+F174C +U+F174D +U+F174E +U+F174F +U+F1750 +U+F1751 +U+F1752 +U+F1753 +U+F1754 +U+F1755 +U+F1756 +U+F1757 +U+F1758 +U+F1759 +U+F175A +U+F175B +U+F175C +U+F175D +U+F175E +U+F175F +U+F1760 +U+F1761 +U+F1762 +U+F1763 +U+F1764 +U+F1765 +U+F1766 +U+F1767 +U+F1768 +U+F1769 +U+F176A +U+F176B +U+F176C +U+F176D +U+F176E +U+F176F +U+F1770 +U+F1771 +U+F1772 +U+F1773 +U+F1774 +U+F1775 +U+F1776 +U+F1777 +U+F1778 +U+F1779 +U+F177A +U+F177B +U+F177C +U+F177D +U+F177E +U+F177F +U+F1780 +U+F1781 +U+F1782 +U+F1783 +U+F1784 +U+F1785 +U+F1786 +U+F1787 +U+F1788 +U+F1789 +U+F178A +U+F178B +U+F178C +U+F178D +U+F178E +U+F178F +U+F1790 +U+F1791 +U+F1792 +U+F1793 +U+F1794 +U+F1795 +U+F1796 +U+F1797 +U+F1798 +U+F1799 +U+F179A +U+F179B +U+F179C +U+F179D +U+F179E +U+F179F +U+F17A0 +U+F17A1 +U+F17A2 +U+F17A3 +U+F17A4 +U+F17A5 +U+F17A6 +U+F17A7 +U+F17A8 +U+F17A9 +U+F17AA +U+F17AB +U+F17AC +U+F17AD +U+F17AE +U+F17AF +U+F17B0 +U+F17B1 +U+F17B2 +U+F17B3 +U+F17B4 +U+F17B5 +U+F17B6 +U+F17B7 +U+F17B8 +U+F17B9 +U+F17BA +U+F17BB +U+F17BC +U+F17BD +U+F17BE +U+F17BF +U+F17C0 +U+F17C1 +U+F17C2 +U+F17C3 +U+F17C4 +U+F17C5 +U+F17C6 +U+F17C7 +U+F17C8 +U+F17C9 +U+F17CA +U+F17CB +U+F17CC +U+F17CD +U+F17CE +U+F17CF +U+F17D0 +U+F17D1 +U+F17D2 +U+F17D3 +U+F17D4 +U+F17D5 +U+F17D6 +U+F17D7 +U+F17D8 +U+F17D9 +U+F17DA +U+F17DB +U+F17DC +U+F17DD +U+F17DE +U+F17DF +U+F17E0 +U+F17E1 +U+F17E2 +U+F17E3 +U+F17E4 +U+F17E5 +U+F17E6 +U+F17E7 +U+F17E8 +U+F17E9 +U+F17EA +U+F17EB +U+F17EC +U+F17ED +U+F17EE +U+F17EF +U+F17F0 +U+F17F1 +U+F17F2 +U+F17F3 +U+F17F4 +U+F17F5 +U+F17F6 +U+F17F7 +U+F17F8 +U+F17F9 +U+F17FA +U+F17FB +U+F17FC +U+F17FD +U+F17FE +U+F17FF +U+F1800 +U+F1801 +U+F1802 +U+F1803 +U+F1804 +U+F1805 +U+F1806 +U+F1807 +U+F1808 +U+F1809 +U+F180A +U+F180B +U+F180C +U+F180D +U+F180E +U+F180F +U+F1810 +U+F1811 +U+F1812 +U+F1813 +U+F1814 +U+F1815 +U+F1816 +U+F1817 +U+F1818 +U+F1819 +U+F181A +U+F181B +U+F181C +U+F181D +U+F181E +U+F181F +U+F1820 +U+F1821 +U+F1822 +U+F1823 +U+F1824 +U+F1825 +U+F1826 +U+F1827 +U+F1828 +U+F1829 +U+F182A +U+F182B +U+F182C +U+F182D +U+F182E +U+F182F +U+F1830 +U+F1831 +U+F1832 +U+F1833 +U+F1834 +U+F1835 +U+F1836 +U+F1837 +U+F1838 +U+F1839 +U+F183A +U+F183B +U+F183C +U+F183D +U+F183E +U+F183F +U+F1840 +U+F1841 +U+F1842 +U+F1843 +U+F1844 +U+F1845 +U+F1846 +U+F1847 +U+F1848 +U+F1849 +U+F184A +U+F184B +U+F184C +U+F184D +U+F184E +U+F184F +U+F1850 +U+F1851 +U+F1852 +U+F1853 +U+F1854 +U+F1855 +U+F1856 +U+F1857 +U+F1858 +U+F1859 +U+F185A +U+F185B +U+F185C +U+F185D +U+F185E +U+F185F +U+F1860 +U+F1861 +U+F1862 +U+F1863 +U+F1864 +U+F1865 +U+F1866 +U+F1867 +U+F1868 +U+F1869 +U+F186A +U+F186B +U+F186C +U+F186D +U+F186E +U+F186F +U+F1870 +U+F1871 +U+F1872 +U+F1873 +U+F1874 +U+F1875 +U+F1876 +U+F1877 +U+F1878 +U+F1879 +U+F187A +U+F187B +U+F187C +U+F187D +U+F187E +U+F187F +U+F1880 +U+F1881 +U+F1882 +U+F1883 +U+F1884 +U+F1885 +U+F1886 +U+F1887 +U+F1888 +U+F1889 +U+F188A +U+F188B +U+F188C +U+F188D +U+F188E +U+F188F +U+F1890 +U+F1891 +U+F1892 +U+F1893 +U+F1894 +U+F1895 +U+F1896 +U+F1897 +U+F1898 +U+F1899 +U+F189A +U+F189B +U+F189C +U+F189D +U+F189E +U+F189F +U+F18A0 +U+F18A1 +U+F18A2 +U+F18A3 +U+F18A4 +U+F18A5 +U+F18A6 +U+F18A7 +U+F18A8 +U+F18A9 +U+F18AA +U+F18AB +U+F18AC +U+F18AD +U+F18AE +U+F18AF +U+F18B0 +U+F18B1 +U+F18B2 +U+F18B3 +U+F18B4 +U+F18B5 +U+F18B6 +U+F18B7 +U+F18B8 +U+F18B9 +U+F18BA +U+F18BB +U+F18BC +U+F18BD +U+F18BE +U+F18BF +U+F18C0 +U+F18C1 +U+F18C2 +U+F18C3 +U+F18C4 +U+F18C5 +U+F18C6 +U+F18C7 +U+F18C8 +U+F18C9 +U+F18CA +U+F18CB +U+F18CC +U+F18CD +U+F18CE +U+F18CF +U+F18D0 +U+F18D1 +U+F18D2 +U+F18D3 +U+F18D4 +U+F18D5 +U+F18D6 +U+F18D7 +U+F18D8 +U+F18D9 +U+F18DA +U+F18DB +U+F18DC +U+F18DD +U+F18DE +U+F18DF +U+F18E0 +U+F18E1 +U+F18E2 +U+F18E3 +U+F18E4 +U+F18E5 +U+F18E6 +U+F18E7 +U+F18E8 +U+F18E9 +U+F18EA +U+F18EB +U+F18EC +U+F18ED +U+F18EE +U+F18EF +U+F18F0 +U+F18F1 +U+F18F2 +U+F18F3 +U+F18F4 +U+F18F5 +U+F18F6 +U+F18F7 +U+F18F8 +U+F18F9 +U+F18FA +U+F18FB +U+F18FC +U+F18FD +U+F18FE +U+F18FF +U+F1900 +U+F1901 +U+F1902 +U+F1903 +U+F1904 +U+F1905 +U+F1906 +U+F1907 +U+F1908 +U+F1909 +U+F190A +U+F190B +U+F190C +U+F190D +U+F190E +U+F190F +U+F1910 +U+F1911 +U+F1912 +U+F1913 +U+F1914 +U+F1915 +U+F1916 +U+F1917 +U+F1918 +U+F1919 +U+F191A +U+F191B +U+F191C +U+F191D +U+F191E +U+F191F +U+F1920 +U+F1921 +U+F1922 +U+F1923 +U+F1924 +U+F1925 +U+F1926 +U+F1927 +U+F1928 +U+F1929 +U+F192A +U+F192B +U+F192C +U+F192D +U+F192E +U+F192F +U+F1930 +U+F1931 +U+F1932 +U+F1933 +U+F1934 +U+F1935 +U+F1936 +U+F1937 +U+F1938 +U+F1939 +U+F193A +U+F193B +U+F193C +U+F193D +U+F193E +U+F193F +U+F1940 +U+F1941 +U+F1942 +U+F1943 +U+F1944 +U+F1945 +U+F1946 +U+F1947 +U+F1948 +U+F1949 +U+F194A +U+F194B +U+F194C +U+F194D +U+F194E +U+F194F +U+F1950 +U+F1951 +U+F1952 +U+F1953 +U+F1954 +U+F1955 +U+F1956 +U+F1957 +U+F1958 +U+F1959 +U+F195A +U+F195B +U+F195C +U+F195D +U+F195E +U+F195F +U+F1960 +U+F1961 +U+F1962 +U+F1963 +U+F1964 +U+F1965 +U+F1966 +U+F1967 +U+F1968 +U+F1969 +U+F196A +U+F196B +U+F196C +U+F196D +U+F196E +U+F196F +U+F1970 +U+F1971 +U+F1972 +U+F1973 +U+F1974 +U+F1975 +U+F1976 +U+F1977 +U+F1978 +U+F1979 +U+F197A +U+F197B +U+F197C +U+F197D +U+F197E +U+F197F +U+F1980 +U+F1981 +U+F1982 +U+F1983 +U+F1984 +U+F1985 +U+F1986 +U+F1987 +U+F1988 +U+F1989 +U+F198A +U+F198B +U+F198C +U+F198D +U+F198E +U+F198F +U+F1990 +U+F1991 +U+F1992 +U+F1993 +U+F1994 +U+F1995 +U+F1996 +U+F1997 +U+F1998 +U+F1999 +U+F199A +U+F199B +U+F199C +U+F199D +U+F199E +U+F199F +U+F19A0 +U+F19A1 +U+F19A2 +U+F19A3 +U+F19A4 +U+F19A5 +U+F19A6 +U+F19A7 +U+F19A8 +U+F19A9 +U+F19AA +U+F19AB +U+F19AC +U+F19AD +U+F19AE +U+F19AF +U+F19B0 +U+F19B1 +U+F19B2 +U+F19B3 +U+F19B4 +U+F19B5 +U+F19B6 +U+F19B7 +U+F19B8 +U+F19B9 +U+F19BA +U+F19BB +U+F19BC +U+F19BD +U+F19BE +U+F19BF +U+F19C0 +U+F19C1 +U+F19C2 +U+F19C3 +U+F19C4 +U+F19C5 +U+F19C6 +U+F19C7 +U+F19C8 +U+F19C9 +U+F19CA +U+F19CB +U+F19CC +U+F19CD +U+F19CE +U+F19CF +U+F19D0 +U+F19D1 +U+F19D2 +U+F19D3 +U+F19D4 +U+F19D5 +U+F19D6 +U+F19D7 +U+F19D8 +U+F19D9 +U+F19DA +U+F19DB +U+F19DC +U+F19DD +U+F19DE +U+F19DF +U+F19E0 +U+F19E1 +U+F19E2 +U+F19E3 +U+F19E4 +U+F19E5 +U+F19E6 +U+F19E7 +U+F19E8 +U+F19E9 +U+F19EA +U+F19EB +U+F19EC +U+F19ED +U+F19EE +U+F19EF +U+F19F0 +U+F19F1 +U+F19F2 +U+F19F3 +U+F19F4 +U+F19F5 +U+F19F6 +U+F19F7 +U+F19F8 +U+F19F9 +U+F19FA +U+F19FB +U+F19FC +U+F19FD +U+F19FE +U+F19FF +U+F1A00 +U+F1A01 +U+F1A02 +U+F1A03 +U+F1A04 +U+F1A05 +U+F1A06 +U+F1A07 +U+F1A08 +U+F1A09 +U+F1A0A +U+F1A0B +U+F1A0C +U+F1A0D +U+F1A0E +U+F1A0F +U+F1A10 +U+F1A11 +U+F1A12 +U+F1A13 +U+F1A14 +U+F1A15 +U+F1A16 +U+F1A17 +U+F1A18 +U+F1A19 +U+F1A1A +U+F1A1B +U+F1A1C +U+F1A1D +U+F1A1E +U+F1A1F +U+F1A20 +U+F1A21 +U+F1A22 +U+F1A23 +U+F1A24 +U+F1A25 +U+F1A26 +U+F1A27 +U+F1A28 +U+F1A29 +U+F1A2A +U+F1A2B +U+F1A2C +U+F1A2D +U+F1A2E +U+F1A2F +U+F1A30 +U+F1A31 +U+F1A32 +U+F1A33 +U+F1A34 +U+F1A35 +U+F1A36 +U+F1A37 +U+F1A38 +U+F1A39 +U+F1A3A +U+F1A3B +U+F1A3C +U+F1A3D +U+F1A3E +U+F1A3F +U+F1A40 +U+F1A41 +U+F1A42 +U+F1A43 +U+F1A44 +U+F1A45 +U+F1A46 +U+F1A47 +U+F1A48 +U+F1A49 +U+F1A4A +U+F1A4B +U+F1A4C +U+F1A4D +U+F1A4E +U+F1A4F +U+F1A50 +U+F1A51 +U+F1A52 +U+F1A53 +U+F1A54 +U+F1A55 +U+F1A56 +U+F1A57 +U+F1A58 +U+F1A59 +U+F1A5A +U+F1A5B +U+F1A5C +U+F1A5D +U+F1A5E +U+F1A5F +U+F1A60 +U+F1A61 +U+F1A62 +U+F1A63 +U+F1A64 +U+F1A65 +U+F1A66 +U+F1A67 +U+F1A68 +U+F1A69 +U+F1A6A +U+F1A6B +U+F1A6C +U+F1A6D +U+F1A6E +U+F1A6F +U+F1A70 +U+F1A71 +U+F1A72 +U+F1A73 +U+F1A74 +U+F1A75 +U+F1A76 +U+F1A77 +U+F1A78 +U+F1A79 +U+F1A7A +U+F1A7B +U+F1A7C +U+F1A7D +U+F1A7E +U+F1A7F +U+F1A80 +U+F1A81 +U+F1A82 +U+F1A83 +U+F1A84 +U+F1A85 +U+F1A86 +U+F1A87 +U+F1A88 +U+F1A89 +U+F1A8A +U+F1A8B +U+F1A8C +U+F1A8D +U+F1A8E +U+F1A8F +U+F1A90 +U+F1A91 +U+F1A92 +U+F1A93 +U+F1A94 +U+F1A95 +U+F1A96 +U+F1A97 +U+F1A98 +U+F1A99 +U+F1A9A +U+F1A9B +U+F1A9C +U+F1A9D +U+F1A9E +U+F1A9F +U+F1AA0 +U+F1AA1 +U+F1AA2 +U+F1AA3 +U+F1AA4 +U+F1AA5 +U+F1AA6 +U+F1AA7 +U+F1AA8 +U+F1AA9 +U+F1AAA +U+F1AAB +U+F1AAC +U+F1AAD +U+F1AAE +U+F1AAF +U+F1AB0 +U+F1AB1 +U+F1AB2 +U+F1AB3 +U+F1AB4 +U+F1AB5 +U+F1AB6 +U+F1AB7 +U+F1AB8 +U+F1AB9 +U+F1ABA +U+F1ABB +U+F1ABC +U+F1ABD +U+F1ABE +U+F1ABF +U+F1AC0 +U+F1AC1 +U+F1AC2 +U+F1AC3 +U+F1AC4 +U+F1AC5 +U+F1AC6 +U+F1AC7 +U+F1AC8 +U+F1AC9 +U+F1ACA +U+F1ACB +U+F1ACC +U+F1ACD +U+F1ACE +U+F1ACF +U+F1AD0 +U+F1AD1 +U+F1AD2 +U+F1AD3 +U+F1AD4 +U+F1AD5 +U+F1AD6 +U+F1AD7 +U+F1AD8 +U+F1AD9 +U+F1ADA +U+F1ADB +U+F1ADC +U+F1ADD +U+F1ADE +U+F1ADF +U+F1AE0 +U+F1AE1 +U+F1AE2 +U+F1AE3 +U+F1AE4 +U+F1AE5 +U+F1AE6 +U+F1AE7 +U+F1AE8 +U+F1AE9 +U+F1AEA +U+F1AEB +U+F1AEC +U+F1AED +U+F1AEE +U+F1AEF +U+F1AF0 diff --git a/packages/terminal/fonts/__clo_terminal_primary_34_8_1-Italic.woff2 b/packages/terminal/fonts/__clo_terminal_primary_34_8_1-Italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..41feef0df26baf808fdd56664e4855fc78deae72 GIT binary patch literal 210368 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

uX%DR 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 literal 0 HcmV?d00001 diff --git a/packages/terminal/fonts/__clo_terminal_primary_34_8_1-Regular.woff2 b/packages/terminal/fonts/__clo_terminal_primary_34_8_1-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..6a2b400b0ae0e613f12e38ea8ba0a2c2beb368e1 GIT binary patch literal 186152 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 F005cPgiZhe literal 0 HcmV?d00001 diff --git a/packages/terminal/fonts/__clo_terminal_primary_34_8_1-SemiBold.woff2 b/packages/terminal/fonts/__clo_terminal_primary_34_8_1-SemiBold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..5ab710af6d9190624fdff07af7726a417c7d23c3 GIT binary patch literal 186040 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ℜxb#dQn8zPCRK9C-fwa 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 literal 0 HcmV?d00001 diff --git a/packages/terminal/fonts/__clo_terminal_primary_34_8_1-SemiBoldItalic.woff2 b/packages/terminal/fonts/__clo_terminal_primary_34_8_1-SemiBoldItalic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2be2d2986e9fcd663bf11c737bc6764f50b48e00 GIT binary patch literal 210340 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

B!qris=#{Plpzs|NMqI#i5WpH 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·YC zZU+WEhQB-cz%rNA69pdT63VyBTCdF9x*oHD?;mW`%%e~Bz_F%OY7$xkI+5tH)aoUuOBSMMekJnw|&@L~k z9l&m2S%9tSX6Z7QiunXF%tIHAb+;=@sEsG>()i2Nm=lvRlugvTA>q<6<|Qg;6JAc$w^D5Swiz@j zz+H|X4Z{0AbSFo{`S^iF4(R*Rf%klTBu~x9M><^jX!Qp5u0B~t-f#8vvD>s)UI^pjviD025`WnRGyfLa=w)6kWoSZf{-RI+l_5btfmqo!zd z!tWtOGu9tfHfwVAG7g$xMhF`v)+^cP}bYX;X1sX6yc3>zYYlcvh=Ava4LrE~SOOM8A zIh73)xiMtR--}#s?i#r9RoEHp!h6FEe!#bAE6Zthyr&U&5D*z)gOFANC7b|^Wph|H z{s$vf|7G?4W61gcP95IPj>6wFsp$YPmcsOd>sUlthB|>DV88(FWmx?Ha!-LyAlLwc zt4@e3W_Ye@s19xlm+a|WM$)_mfH?iIG<*-iR+wF#!n9hs66@e1>s3$1(s|3Jv=fxb zbp64r_4s3;;Am>YbViZFnby>fdE?4T5Dh{=kNSuc0L6NmrvN_#G3(a{_XSc(#t4L-7gjTn(l>;*@QJH)Vk_e>%vW zs0gsRoZfRzLvrQ#2xG5ax|s}#QzwnR;~u0w^(oiL@jfz)jM{n?LV zi5luiJq$0T)I&-PPU$$YM6=_WHH3CkDg1nVb#|69*{jyYLYUt68764rb=zLzbs2$2 z5{@Jh#K{rD1gY_+rT+vF5jx_iU>lY@Gqfw`lj3|m!l)AwTw!s-_JeeJU~MbEMkE-d zt6Rxbqs>Z08I=L`>|l9#?umG*r~A~N|Bk+NtitYHfO3}DLr!I57H5xC5saQanS299 zCkZ^R*3m;mNeK)WgCg)ZHe~PYtF1<@Ja0aEtCG~FhvWtCsU&V9{k-TI-1z=B zNDziRkZO?WMY&^>rqBcvR4H^oU^C8z+Z}g`q!6!7DlpiguNRyaopm`At!CM&#o`eg zS|q*=w8bcNN;Y1YN}GaLRPt23{f{b4HY#uU6I@HS1K)0$()ak#5kEFWEFS)&{;%H`-&9;0EG+ThYUOKQbXu+A-i5X#z%GNQNb3mTSN%TkRjneM-LlnFao74zw)g{GBb(o5;gjm%%* z7Z}|gUv#Uc7j(W^r5_)HgAGG@htDY z{iLxrS?k^5%UgsV%H%Rjpk;TceD^|f;Vi?|%&8X$8_*qd_?q>a4;UTd*^HSWanEW@ zN;%hsPIj!+5zzwg&CdE{wdQuA-ficgcfde?keFB%eVfQc%4aS;m93mTSsi1SX|xLB z(iyC*CLa7-l-eH^mIL47mx?ZOEFaEyDVgJ!8j~h3?oWA)rcvFmMgLGa5X+ISZLNN! zjNkN8$^EDSJyLb;sjSWTf`);uz7B-|88H}0_4QefQt~*ZjEgte4R+@L@KQce@p#Xi z@^t1h`{`#22h$0gS*PdK&v5PCJo{OU0~p}6P+P{3;}J0cw7JM3O+y8e8Vry`h|~^I zLupF8rT>_B=|GGrP_=}eB|N_BelJxO|15>Ex|;vHPy`6zox9Y$`tC9adWDD6K9;tO z3dchC{CnW%B!G02g0=j5_2@iJz44p+;f`@d zx=<9MB`-`ebNB(V>J1~?{H)`pzMG5e4H&eM#f!OaVAF9!S-k=U)LRVRIB7>u3ZrYo z9bg9w=hX3^Y@wQeQ(hQr1JY;RO!ZY zY?k!|WMWIzD`M+X)|K;G&X?<(sA!ZS=PFV@r*d|wp|+OvWJ7OFij74ZzJ1Yo9*{CL zUfB!@P_+LGrk5HzHac3w7vj&Av#O!CR0JhJ`9L7STkz7H9i^F3Hm3mzYHWR25I4_x zuzzRwgySKzAaPfZMV2}rwK zDA0#$6D1V~2Mak;E~-XV%ObujGxp1nP9IJDqq&Ho#&ZzoRgr*==-+J^wrn;!PW?AENj332RSJcRBUA-)jHH56+tIbdJm_)khmck+Ogmgqk$! zolB~e@oMHA-Im1Y0SOH$t8W{_x~c{dJmRp7>IL-FbU6)9Q`Gc}Lb|Ni?G&G+;AH`j zObiZz0c;Rmh6QT$X8%c4w*yjaHAjAr@J6h_mW=_c*AVU-5bWWae)71As-gB4bPqhQi_h5g51Y4}}_%m(ch zEtfr~vEHRfoJ*OwU=(fWTnH3JR3hD43kwmSHW90g_L4X{Z5gtjfUcXK*^5a0YvFuO zmM@9x>oI~~1oipmDqnr(jv#tk&cbvmk_zH4e+gOvi#rg0jt*&p(W4g0CCz>6w+!poq%3w2B2!CIXMmh4g z;>|c?s;-XV$go&bnfU4!#%E9hN!1RYKitmMQ78yYSGB|DM$^ry<8}8^=BD>;Uf23M zuCw2#(L%2j{=CDwiJx~-$CAgs&d4_M_<>I(NRA;-;D$Up!HQ{te<#an7hL~~ufgl; zWLmQ@tf4FFA`~IID=`#lr?K??RIG_+=#Bh@ZEo|>t|=2s}vP?#ff%x>% zL!*@w-@Yo_V`10v(^Ol$)~gM zV!=3-3;lVBv9tVx4ULAv7)qkD5)>K6mIdmvPs++W=Q>d@A($HqWe6N0SFgZDaR+Uy zeyl?izDZe`RuKnHrpu{g+3{m2D%1|vh*VJJ=p1X5cni9PtpeUyDiKjRDbzSo$z-v~ z#Ia_dxn(Lht`!Aij3n4N?8!-@i}PbCHYly7qLM=t3P~6a(U2OtL|??_tS(EEy*N61 zaTobFThYYzw7bwpL_6xYKo7d0keu7Yq&5}N9axHQ%W*@ojHGQjbo zEb-mS7rNO~h%4RvpYUEjDUuo~cjk?I{xNr{=aHxQylN<|*8XHCaHJJt^}!JUF-FI; z&C8BsLOENAx6pXI*K|hhsZZQ3v(K$Mcuukf#%VmaCFomtjy#937dysWx5?#g)?K(H zWyc9kl{scT8nQ%Dhl<+XxNH0kL&d2ijg6YkMtLliNblq$tC_EI_Y5oH2Ty$|s)q7T zElEZl;MnM{CpGLpe))eV2lbuBFW4gg;&0mb&oj&L)#R`xSIDDFlj;zpyv00 zMwNt|1ZPxx7I`?}z4*?}PK6|)3`OzrNKAXd%^ATDpDDynuC7j~vretz7hDmat)B74 zci>T}%Zp?NYyRg$^}S6J1538-YJ7Fv>nHE@{kVi5H_5 z9Fzi@%FSp`=QRFkbmciD`ZMKH1(phb*xjm*SYh^;I+u$`t%-Z`4Zv}9lq zW?snXoc0J3Dzl$K7|#(ZO#lz2@!Qe<)nGT7E90r!g(~cMTo!(tuR~(9S$J;&BmiO{ zN&wAFrlYZH7~R4(CKgHH_RmN|mHw;>Py&eD{k8>|JZzAS4;<)gm2Y)|oa06UlCm+*JsKid19mR;PtpxIp=U521yV~h5&ZJ+hZ z!us&%7UOaVKkQM#-Ah}B)4xg4^kTHSe<6g~jF7UYL^CVAxL8}6mcn)@_$Uf2mo=y~{_o_Oh(TTi!(m2;7del-8aY8qfn|omU)ol^oLzrqA-u zuEs!9yDgqf1g%z;7hB?FT)pKaz&5fH2XJ15WOKc~pW}MTK5Zdnl8xGO0Kkc5*#Bc7 zXPw=TKXHdBW2-_7)_BSpY6k;lw^B^sy>8j-9i=T8+9_suP}~qs3;Vv1odRZLUmtQ= z?c`+|+7T9O-=51%EpX`6p{=WBG~6OBAe9Hz0$53}2P+$@{B-TKsL`aa+_;J>HT{|r zhmZo%?Ddkwq)E@pwz50=?G*)W-TVMx_J5yUwWIE8Y-qH>IU+8l$@FDVW-k>sCWoEn>G`vyG$L z{}bPbMSS{={w5rz*)LOuCV0sh-XUT(zk!+*S&2v2x&5mxBv|H6%%9inmoaxsIC$_?Wp{NkP=2-Pn%L%$bc`R_QT3J3m;3A!mRMHnpdEDCg)G~(C>uPuMs-%MhQipA z_SB=p;;85pO!m&SXDv^jm83rhssEHIQY_0>k?@Lrx2L;XudHW7YV2;6^htBq^$xfbj5u81;y23@ybN z9;3?=7n1EdcT$Sn77&Pt3H9)^9>cYXm>e~IZoi%;aaDlyNGuw?b;wegbi^xdLAoMz zX4^ux9=w z@H)>Cs&0L&<^0?79vYCPRu7R_#9DsNi7LB+^xvq%7}~pG1c!}KsJ$&(?iHtA&hM~f z%arodp*yso1e*2?2UD2%stmpCz+s*+-hS8L-BaIX=Qm}HKeoW$G$!O6%XUk5yZ3%{ z3s&?ESPQ~I_4HB-nYPb0K~tLSVh!|)qq{I^my(uk#-R>HJU>W!i)`?PcX-4W)jj{A zcHaM%pZsQ$D5exffXNQpMP?iGO>EK}>rs|1NsIAP=e9AcZ&Cn1K)}Drk#*)2bptNj zp)^@$`QjyYVIuB&&Ygu-DNIghg49zsV^v%-YWs_DYx+D6rsuq=&wjIxJygWrpu=<> zeV)f})c*g6iWB!4fMX|M)b~5i6kEm=N3iKQQ`wyO64f8qIuTi3E0xk%MwUHA7? zn&KpGk;VpjC$e1Ah`I;m;9dbs#hTVHV^V?i)E{2aaxW$yEe96+fOX7K!_wI-T*)uxk~IJf%BkxO&3Q~S+D>ClJ@4wG9=Ua@o+Cj3rb??Eix{48PBJ=XN# zbHhpDM`k!@FV`+$Q4dZ!lk^R)2~I*+v8h6c(w$+Hc^p1h5jN^=1e}mgM{^pGJ$-a0S zr#U|FzN>)k0>j1|5qG$%{cs+_@Ul}ux`XfMdX90SLkG!&1<=jFr)YiTa*sAQu4(Kb zlYb|1(`Kw<=*pj)4Hk97bTvL-A8{)XiZWTBPoQ1ge?NyHZe55Wb5o^R{DV)6m2{bY z7d_nog^qxa^&8eXv={#GNapkX_Tz6DNM*|47^u3RIFZcz#8781Z)7-Ve)f79RXXP0 zTae4>S#EZWl4xKzjqT^ed#yTnQjU#ODhQD&D){o#s#H$)KnKZ!z#yTG`kA1CV_0jd zR3UB}TMz2~qU(P#{g38WAx3$V$ny&2@G3InJCvnTU<=^iq zi}S3gB~BzwqLnYyO2tq56Owb ze>uHEB*^PH?)`PWc;mZj7=|gu%t0_TQ%u`2-l^u8|DxQtg^XSQ$bA9&h@h4X@&wH@+-YgEPH*Wck(fxa3&zn|DQ8Dh4)yQ%Z(IYDWE}pM^#5l+J`Cn zj}(3Q`|52q4mvo~InxFOSgtt!on1o^9aC4eswmulta81R81_`F2)jSy(rLCk{O(tA zU(h4at&+AwzgBpRiE7znMRM2b%nXYU9&;{uG?v-Z-r)@XTsO;DANG0K?|PW}(%<$M zRMwSy&06JVO*L>vW@Ig-=)Lw%!c@BLs9n%<0zDOq*YBgEDeqErN855@`&5yla=0j>)0cK^8j8yASq&RyPn~<>OOJ{9jZ?8DyA8HE{>zE=P*KD z>y}7Hl__`)3LNwMAX|n5ZLQvz1Ds&>VNL1WyVg{Df`Lyan3l}QWHG4eQQicDz0gHA z63fGN9J=iz&vK;jK)cwS5%^s z*K4=8r(3^AJ_*IobH^J0{V@IcgL6`e7V*RXblWrGNNCxj;+OxWwrj#vFY4%VX75X$ z5#RRHtbCM~r?o4%lAG)MDfWNQnr~1~rpx%p&fBAg61HKDDbi#Tle>~f$Ez!+sVMFx zH@}xAOh#fq5$TgI2p`O|ly3O*D~-r}&6W4B|2X4VOV^>cmsR|O8JLWcllAZTG=lJP zmnhg&g6#4b37T&X$wAHLtdHugRAHQO?)m8%Sd#+ofQ3$a8zBExJf>_Wv{CYcxJp1n z$22!;mmQ`^za?#?Wkyf>DC8|MQ_XTfkc!pCIsPrM9m4WWU-7)@W+U6b&Km+@p^)*C z^{dMeCZIj!;B-`RlqtgBGY${0MtLz`Ldc-S8^ zy11FRcto%rlfh2JYUL|;OmnG4oyd3`0}xM2y}=qH-&S3yzJ`;E9)J7$*SljYQ+}UG zXZ&rZ{^rOV+0t0R&)L`jcdzG79GRNMSnhf{|^%n|FlV{@rt{|(!_Ws z{nSvO$Tc7awVus?DC^-8++>oo+3Dpr*X>@vE90!|Gjt5mIPcd3G%+Xpr72rfpc)jm z{Z!vWT8;)EcwcNG$|W+1$wP^mDYI2Y;XG>CUK>VFTN`%*T=~2EsT_2=GF5D~tawyD zm{voAR!L-7L|txplP-O!T3&PvZDvr)S+10~u|;3ogLk#Lr_g;V>o_7_rgQ;gDAOaJU@b~7DRD3Z3~oWL*S0}!O1&lx&&k}9UtN$B4LTx$?P z^xn;tbR>sFWA@QQ8bk!8iDB|$PnQdz5Tf_3sAM2G*gM00T@mujxEGlM9+9oMD;y@A zgJS`@p!dbhbDG#B%y*GiSE|25rX)4};V-gaUjD#eH7A6-NVc*!a)XBq0L-%p!9yQ`6I=*`!ofs^{ zcb1rpa94Jp;MC zl}lT+LKC&!>$tAQ#%aY9n{e_OywUWbdJvnUw={0OtC|xRm1()h>v_90>oA+=YC09q zMa%qR9D_lmyuU-R;s#b9S3a5_RWabT;8prVj;O1x853zy*?Oi6E56UyFT_1+&xlwx zF)JaQoNfnMBPXXq^IjH^$vYOSsJCs&kMz<_x?!Sk$lqMtuMgz^K4+$QL-B+2(4o!VLvdRz7Vi2or1SllPjw+!|SssG;sSGnkHui zX$Ql7FH9~;)&r3qYVn2#i!EW9Pw;wv>(x!#$x`-wI3D_VKY@BCRKIO<(|VN^UHp6Ae~yZ=q?P?> zLgjg=zn!IJ{Ph)?{j1oocFWXk{@25#lodQSXDsS&_EmmH#zCM$d5}u)T&~d*4O^gOrkVYJ%C&wKO@{irft|u zC}K_Ysa@G|Yy=Fm^md1*?6^}}|gSeVWp_ra-vRx9YJG`!L~tjJX$3t}-N zuQ8!zriGJhJ?~-pNh=wDbu_^=+W!bL3jIT-*`~0mobOq)%q;k`Ac6_;Pc%eW`g(|+ zM${)yuCyeWqyx*A8h)6e+Mho9DfqlJ1CWtdV!TyR;i5PeE^*hOISeE1GmdqeUXefz{ zOt}Dc$3*G89Ujz%L@9j7z&sxY18-h8v7AlqrguLrqEf!!nBgDwgz!$mbQ->_;67o& z6P8BXlyDzD`T$uwP`YQ~g%Gp{-tq2cnNRqgV?x#Pe9B`>lwQGJSn}Yx&u@4GW7)-T zZ9-XxwB{(CdKv~3b|47=AK>pDHo0b>rn!mzwdR!A6iL%C2mnQuqMK^bp#Xn;I*b~i z>dJ}=jLGfDrGI)@ta3@_OpW(B(#AWLOokE1_A9p z*4}0OEkA~RI*W#ud4kove4=-Y$0X*M3S|v0Pu5j`+1YJTNgXtdEG(Tgq)M zf6BPQ1UXsXbUYr2L}s$``zu0H{Yi+t(BEk)rP$M{E!fBeMl~3FvRD3h&()l6=rQnNK&XxklX%bt!DFi zDyV47%S@=rPfScJN)!i~tvyAaTE!hQF*M0WaP^+f-D;0Z)TQVgz64L+S6+^cz0faS zQ!|PjuG~Urw}RRdgfz@KqpZ*CCwL~9+_K>;WgTuyS@O3! zktlX#SeFLciOuF3gpM0X*ZC=sDjosP5~TGAyK`-)r>!~}`)r~NgOQ37+f)>lP0V67 zj_*ygEm1_+#s^L->t(cz6r0Ecy(=b@Gc`kEou;jhClrFxchTd1A73$B(bh6MUT==! zdph+(*>%j*5dF~?n)zblL|$y>=o%`oT`33_ZV+WdOkmYiP@Fz5zqYnM*e}cO)l@EF z)$b$ND9i!DJau*MNxQ^p+m#bgteJoi{`KByJc^xoji+FmN4`E^8bxC~R+k-@@wE<{ItV+PoT=(JVY1l#rKb&adlG zEIez7jtUkH_O+kB%52tm;6NTfK0%+KUt3#8YU`b-(PZx4iA5~Z+t=S-z1mKtKd}99 z@L;{UptjR<;eUCV)l|S|HW2RQB$Q{`^n0eh@&^a`e(_oH-@Sc!f$xo1*gax%|Ewky zx)Tc8qD1I1%ZEPzGfOP16h9)vT`pLy5D$)*GPq*3uY)Ffw)r(7=U3_1F}fn3=@Cx( zzsDkIi-W*v4!~B%G_p|7SO^eqU3;f)uwLjqFV1W1_@~8+?smuB(%?bDY2>y$KQ&cW zVw9y+kxY#fM_A$`dmC9!a2A}6h3E`Vo#neN+|#YUE%DoW>uaQAYf< zH7BLxlJ~E;^sRf3!M%o7B`K3}W!i^%u0`T9O15tmt-`WQ>f#i-vEH@KY9i4Jx@wtQ zLk-gem=^pn*QHooN_~t@ue26VKW{c2?B`|Z{Jf6iZ~4R2 z8D-h$weImi;`Q+cK7o06(UW~!`UW>0pQYgf!*%96-f&gs*mITJgAl7<-JQP2`+9o^ zHy@t~VDJ5+E*=JaPp)gRxKx_2AXEasoUt~FV{9>87`4FuPG>Gm59R>WR)dVBC$D&! z0zficXxUF20y)JWbND4n#(KvPFnJ(xr4yn)3}Ob}s^Q1OCbS!XAnIH^j-r{-GPD~6 zAmUtqQ2#bw`r3b<#uBJd^0pH%Q?51N!V6u2>vr~2D2N8Y%%N#iT#6t_yf>?5ED6MTpz1pK5p- zCi~9fc?gW2ken=cQZmdfH;F=j!tx?SsaBHb18li51S{=DlOfsag8LBTTq1kA!HP6j zQQ>T}JBsBa)?RnnI!6kJ6e4IdYFp);<{)010@X>@7c^SMT{31jTfrug zW*e&1s_(^vhivD9PzZCOR&I`DO$lgPR|}~eWFeU6vk1-(70-pgQ@1I z;;KPd1tE~>$W(Q^q$VdA-3tPo>jGv>9-&ZSohFQ%jftlh-3d$$sX}>V9smFeJbxR- z++C4VHoz8DvKDW;%%Tz;i9JW5nf+T;bkhl|EWEHi(`t|gMdwuh#Yt4 zVMqlsAR*@pjqpa=DBIobvTX7GS2R^OJRMfDO4m)Fa%`FjV7SPa>4Y;%*0A^R{&HUO z&p|^V~GrU@%_<8ovYcYCzqS)WsTimUmMJWF$EPo~Pu_sl_|Sy%wXJh89%Hw z<_osVm@tWiw}(t9X}y9GWV^@8$3fXT^mj{BM)M?2W@#t$@wSltAh$GQf_P<=FR1P z;8zg-(U+xF5wm20XmqOEuQRQm(9T+X@QIYbQ|ojH4dVi76CZcuN%3y0~5%2Igz+Kl_?XE{m-`LW<5=3VzXeXFs%!+$qQh1z7DEQK{X%u@wlbz!?5i=?gxqNMPL8Gg$H z2P6+~w4di`x<)Tz?OiwVMD|hH#gzeaZ+OFYWH&kDdm2HrzM!d;F#0+iNH4@IY%dx84yTpd z!`<|TJ*H%WYcQTK81K$ih6IH?9*$HW*L6FkazRZ25S)%U7y0uhP`}=KnK=GN`6W=7 z0s#$C%9A?vxWFei7319`fgy2*UJ}qOrFG?AM>3R7>uF?|OObACFL`Bns%Ezo{HbIh zgg6_=5#m@FT04y`iXeFOguJvU!1XvF_A=SH(bF92iYy!x^bVu8&C+RQKLmz>Zokss4@vJ|EFJIXT31DjfCqs$rorG2&$ zV}W++eDflh&gm{uFN}tKSETgLrAC`q__vEj5Z4+cJFIh>n4?)bG=uST4|xk?`4N&_ zGAaR#0I`j8ofR%{h1)+M$%-Og5SafR<_!2D&VCon*l@qvCt80y=Rk3`p0(5CpNhu5>qiMRy@P6BxE#Z^Ii!X9Xs+vSNQXP?A()9UE zZ!U>SHP&S)N_*KTFRkA+#!GOZ|HSF2{uc)FNmfHb|I%-Gb!{Q#(6Je8|@VPTn#Pk-Z@} zgy0`|dt6WR`$*!E`9(%uWA^DqYJiPI;3l-X5;+BTf$-*#AHb%MJH`^TzUVn=GhR`J z1*I>Bqc3@A#0ee7&UzBj{#nQZh?-fRiN=P`F#9KmHtUa|UOj=H&xEkX2=ovq7OQQI zEJp7JWn<%m{XxVWxL^082&XO!Xc^RNE25*I0%arD?1#~t{!HCm(uvpIM2$NRsSK+g zzV5O990B)!upyNn;^k+xn`mV9oG%QL^{HJ3OR;}6e127EU$>Ws4i^a}&(`vV=qbNX1Qa;1xUUz6vl}we!19|6q5rimFJ>pZO|6J0iqGxL5=x^IKQDsb7)r}V z;PkN!?s}t3YD%2pcn@j>z$t8P{~$ak!@mX%l_DWKlqNG2OrJncwuih8>L{t z69B9GdSNiOvI9nEr*GbxIyzwTLmBa#Z&Ahm`LF;&pdvk*xvdvs`}*rdcW+K-3=K35 z6sNsczug+cEjJS${TPQuoD$wy=S;FbBgvDKo7&9fO?yo3<9)y+H=ec6%#f=s_2jvmDZGpLecCiFC|NKvBcf$zS7*Czjo( z3hUi_*K8wG5DkRt&Z8*1e|ra<>E_h?gl5dOw*cP>)k)sY`#?mqqw~0q@Y>JU&kUg; zxxFtI$++c~j-2RJ@v{S6!?|;n%7-;4@#*{0@ZKd6kYhVB(R;T%3?^9>|L2r#J%6t5 zufKGfhp8e@w{m)Qf<4pr?!Q*|)n7j4H3py&Qr8DS^RsV_n4q%wI4B7d~tM}Zl?2QD?hMku(X11Y~lAo89jv85?Wz! z-U54zSW|+x8wU+8?-;#0h9pk#4{bP<2O-J;M z5j=6`IcZQNC`wz)h{;$eo0F8($>%b?sq8jQ6L=b16#S*syNaKQ+O- z``Z>)uU?#|?^vR*fq|y_@UD%yu1?!}!Vt^F-&4RKtmiCR49LU8!}Duvk;JXpRLlzv z33Q9|S&@J&ux55ju+A<9WN|TsHtRYHn(m;l?rY!p_{YsZ9^UxsEHGV{W?EoMH;Mhv z4XS8^K~qh3@}N%bU(vyTPhu}#$>V(0oy z>@L^f*>qIF1$kk7cKrGUvbKLld0piKzg6chiQA>il875;T_dyz|N8jiNG3UQWXHkn zSPvFwVBGr7IT}^B*DenuoL%6RsB-zaQ4dZQ+MSA3S-SYN;5-kzWhE&`o{87F@s43C zU6geqwOOvG`eUh}93zgz8o3F*t&Ortq%`kv76mOM-OYhs7TXwBJeKU4PZ}dibBhiz zM=28RvUvIA4uvZzIOma}@v?%rRVwmG?V?n-n1G-t<%`lTQq+T9t-4 zo*CJFbS*x*YHd9Nb-}hAf2+Pd$HRMvfEhbY6E&cC%#y0|=Gj!$JB*^DVw;SHk{PH` ztZbSh)FI+PDLBedERb2{9_G(QiwpjvAWMpf-oN6poc;&`r~Im!zG_T_803RI6~<>E zy8iL5-jQK#97RM~pmXz{SS8}1fxDqNK;nAE3K1?6F4(Q9CBj}!rcF&uaKU(7;;hpe z2XvA}VSP+$2Byw;AL5izcbZIvKY?}=^yCs(+vLv9k0hmGc-gD}D&X@l>haFH1q;V~8;7#| zQk(05R64JwsmXP*d2lfGT3vJ3gYPj;nmkqDud^cjsX@wvPqrZ<*32rk@&yS~UhP>` zQ}yoIZUP*s_scWz7q8B~e17KBe+0I7_Q=U6Q<^(Vn_F5($CiB;zZ&UYmiq@OlB~yk z`s2&}v)^yu_yD|MrJxEM?Y{oh*vIb<4Ac=m%L13ycMS|JwhDz~ZE2$j;BFtdX_vEd zD$~_d=J5GH!f*s|`>dm*!i-%#rNbcV><%Z$?uQLMi%jF!eY3#IFLsj=(eK+ooE}H4 zbms!mgE&Oi;Xu^LawCfEo@0iZnkwYR)r4xCc~p!&YHZD}&WzGH-W+d!u7`%%->yNP z2PsRJgeRA!t*^|Al-7t4oIS)^9G7+97Y2xlGzs3+oeuXw?^<4pYz-Z%jE5R1-c|kWh?of`FVh;xb=6&<&YLJECnhixs@Mmt~{gZ8E``x zl!@m%sZ{;Iy2msj**@oV&ZbOqLitGa2t($M?c`0y$*Y?*CA3)mImH}af&vqA?Fs?D zYHb)R%)dxa)FiUQ0+u%dl>I3<90=X!T%7TmL3dFdsBmKTgEACZ@PZ8SV;#02`DPeo zNc$gSgzM%W(|(t_ID9Wnx|_v@(t8>YQ2AG;e@dpjnM*{s4DiiA$}yZi zjKCQ-)P>TLrAT&TvBfwbYsR%k2w;dI`RAxGznrktH9M|#r2;IEFl0asAqjBCPd=(D z!jkych4R|>R>8QSPz0wr5_$}qA3MnIPa^;!p1DV{eif^V)oQCX{S`|(Rg^qVj$pNJ6RWT z(5W~fB&eT{EOj_?KJ9Vly51YkdWa#P>r2FWfekEwZE56dx}@*tw^ZIZhYjbx*bus4 zurq>s3xI(a!q8*@9R-Qo$bEo##0&cso!v?ajFg7F}KPinuR<@qeBx8Hwgantv&Y;q)W=L??`Tv zuX7N9<-4zd#QP^j7w|LO*5J6Q2j5hWjQ2eS;?@^X&37^Z<++q(5AZc=&|~PAKbs+i zn92hl>c3}{%~@q-@0`%3YdSr-{b5ioo1dVW9R?e~SdkH}-VWHM=Kf+@FZy>Rp82}& z$pHVfzX))kcu7B=!TqF*`2LnK^&o>Q_d;>1wb&K^Ir|8n+r){%CVO1gEy9(}rXS@v zN&@V?`WX}4n7-g)({3)a5Qac7mm>uo(Gn&H^}p*MLX>n)DV1*+>Nhkv4a~d!3*jZz zQ)+m-+zTfWM5Q$(bQI)Y!Z}hEa`qJWQz1^{uEsp)wXE6cvE4uha>^-u-%w1!?DfT7 z9CCfT2|x3023Zq0EXo2Whlt$ChK$typZ%$ZEGhRXSdzLk zgOy?!1UUT&9P?uxm$Ge~Lp)X52>-hndg#{=`?Sg2{xFOJj8|G7DQr!@=J?6jCrnJa z&kp^*P`PPbzhT@R^Hr73(#e;+&qwM{vQCOT^gxk4nKSJ3nx)}6fZYnSDbXC7{b1?r?iJRWR7mq=07#;;>h@?_)1mCP3qV!a?4Ly~ z&1@$Yqr!o$+7yIo5jcva?h6DgJ;!-1_*t=}88xPh#ukguF|PY5EzT49vIz%2m^ zvF7;p1^g-1S_=Wi z5lhJjkW-NGnd;G}_H+ak9I}|kwdR^AL!&3r?12&=c+^#EgKJ_mjh;rq1Et>Z$g6hrVSR((a$O05 zO)|7O`V5b)rEvwJ2N^gHc*6HeY!Th&{`QecUE;20>?T}!LYR9d{k9je*5Kiin)@?1 zVS)4W8QYDyD-B+`2oP3Y4H97)^g$s2_Mmxie&UrzIctrlK9pveLMVFs$wLque!T-G z?|s!{*xzn#4v$x%%~Q+^sHB-!L4vV#p#x>`#>PVc{rGhPh2I0_Jm9x)zb3gjZY_<9 z=S>gHaKy5VP@wYlAvXs5<8`jDomdGYEDS3>i6Z|T%9R}@`~H_9rlj?+32oW0aR-kA z(l+ zamb7~Uc7I7+`+fP;;QE=GRrGpO&{(&Fgeh<`^!eFeiEhTn}jKgW@x@o@#sBJB#yb! zVkx>x_2_eB!Ua;Y>T)2dz4nk25Qe@@?IMEVfNPts7&JW?VuMyN3<%vW`nVRTh5(99 zsojn+yGJd<&N+(Ba2SBn*K=@OkgPY#?-PRhWu*d{rMb*4~f6*rF#_C7wtOxd8Kym8KD^gwIDO^(hXcw{NaFwSck!)80XO~8j@p;qtIv*Q$n2aln z!FuZjdT|U=DyMMKPZ>DAtk8E7u;#cHg(91(!%)EHTnlGcrun!k;7|eqN=$&GS3#*p z&vOu;4O`+-1tZoYIVuPdoFS<#r$5h+^_zt6-Q$NEQ{z%H83CLr z_jki1#h$20X*%_3I^aWWEA{bpMZjvPmjSQ6t9H)k_sD2woI zstQEI9wd9z%0+USKxgBYRlXR!7L8s@v_=Wt@wla7b0IMU!$2VytRUp1^z0I!2TWkN zRS84Sya6Pk6*0&P_|b;SBUTvlj%VNjbfr10$#a)CUg>&@anv$PApnR!-tS zE7}K#Gb*>dg}L=i<0{lA6HzEsx&ASTemSK4xxTzt6VR$Djteo(^+#6fhElIawlp74 zzjp!b-b(>V)~kAEfVRZ<9ER@w`3wmftuE7IclDdBU)32*xdX8CeGrBsk3T0Np`X+Z z2#0KQfba(VXDJu(xN^^D6p6jZM;B>Q+|HrtDKBr)_;U8zr>UJRHoC?=UHU1&ubOhB zYd5%L52^wPnt&i{2}@XR!j*4i-jiUNA_vOwf?E(I^gQn2@Hs%zw;_lDKHAwr3v_z? zpnnlWn-hq!^pBmRm9OaSJaHq{sg3nkN|s6QTCBSqmK|T(9kL{3a1f#@(rZar3#*G% z{o}V%r`@|%E(K;oSFi;}8m2)c>wCY9X2BzgehuGB%hL63Vyx=_(7%~sq(7Fsp8pgr zmoe!E&RLYW>G@}x81dck!tS_&%%1)mEm_2n);uGcpJ{S?-;9Oji!K8=>mG01|6?`I z0G70Eex0|cTyztH=b!!<=hiFFG_3SXr;=D*$}$XmiIO@T^}=Tc8md_jV5ZvkWp#&0 zTzU-&t;o8>*J}eQ_)~$W-3CHM*F@aFGPsZ{1vX|}$LXI~J#5$uY(OuA5r8ANA~4te zzLeFvyy%&G1H3fn(UMTpyinGvRL7AmI7OaTL&C_=7SRoHR;E+8gmwSw3Q(`ZF!ACR zGh1O8kjP<#TO>h+NxQVkk#`v428x7&z`zFq6rO(zg1GvB<`OHGA#Ja{0z{v`=;B4l z8!&99N!GDtuBEFS{`aXMVq{sD_(n}E1w0*i%1tp6suGtew8&u42&MNY^tX_qwE?JQbcK=GuIt}OZls>uM&P5o_*n2aW_ zf1k?fJBrBh{7NzeP(DX^`)Qj?GIe5~z@$!bmt)%msvH=^xg+2j=iOB19<-bN)HQt* z77}^AkLf8w>e3!ZwE_IBE4(gK76OCJrU~qXb0beiajaEp6^v$SuVaYi9$viyq9320 z2l2aK|AT&e?lJ}@1oVP>0fh|0H<6)`_Cn$5ZI=M}=-NRPdhe^=FJE81IWz^-^0qtUE+(5xJP_7+NaL<3 z<%XlT>T-{{D=d@)a1O+VIK>^XPUosUj{!q{uy5!$7!Y%HXYKR32GryF1uFDfN|$+R zJUdDs6@TzUVReB`a2J{Nm2aSrb?q4J>iR%NHCZjN!Z#TC$x=BoOMN!jqo7nw{gERM zj%`uwGg%B{s&BqxOh9jFWxZ;*`7-wechg**M<;&4X&;P_>FXW#0{&aMWYTEAB(EC;{4G*oeF3-T{t*MkD-7ypazC_ zM+?ya*#hGy!lQaH#wA_|!&+itV5VLUyZsqiH}JudaU@&SMVn>dktNvj+WBd`paiiZ!rR3a4#PkOSrcGjd#Vo{*!flzF*rV;6uYuA+=lf}#QH14jlP}u zc{hDfJ~3h8=+$YFd1SO|A2?~nmNO(w+-VTW(OY-}@*GbJmYD40Car)BWs$z=8Br)u zf&eQmYy=(*Pu#C2k#mvoY&sXkX$k0+;qx3bmLRwvW3-MvgW{6_amsFAOiZ;*rbkme zi|E&YFR~c^!SOK4-5l=i!uokoU}8%mMzzn`!i3@djtm6|2{R=75EDYzJJS6C^;Jw& zLVnYP`Pyk?!c51gy!tiUcSRBQvpc`8&-y$h;utuh_)NGbflQK^<6=kYUgWaBD`~`c z!S7j0lA@CcJCEq*4J>@Qbc37f!EE3$T&3q-5Wl#@<4Q}Y3^1lxX;3m~Y(~61NYBRd)_`y0b(kD;(s(GtR&qKmT^{bl1rOLftl-M(i8GRlhk4z;T6a2)( zSy&C6V~wTHmf(do|oVdbb`^o=V?!i~LHtsyZ3 zYqo%Msn^}_A{Dmh-y#u7k8*CI#qpx0k(!i2W9`k;Yxi7^qX}m<4`(XzjyP}aM$Vk~ zM-dVDH=SN?ELZYX1dPe9=7JRFXL>vuZggdOGWi|^tZMH^a8Z1(IV`IDB~xkMF!}dD zGP4HUAS6Mjwybye%f}A3gUde84WSU#HCsXbxSSyTNPRt1Nl?>=P%{qw-Y(gbLSdI(8c#Xx%ZZ5%#@3LPkvEli+xXx{t zZPc|lZ!OvzYtc{ze_j0}SlYel<$qSufsm~Dezh%;9;GX#r*d5KpuRZnzlRS~#8e7A z-~{46xpxj{=lpC-fhUU1c}e)kq4AkUqW~4Q5B0^dip*#a0fW24GgYqx>bPd4D27?NMP`h)6qu9$mqP9_7xisf7oc7eg7S7hg&J|*igM6P5$Z2 zi48)hD9i0jcHeSdiN}_|xRD|eggE0Pxann6hnHSGmhgZ3d3Log$FCXR<{5<)WECb9@bzu;HCQoiX}u``+%h}|{3xOvfzXG=q)ql9EA;YpHvN@>%gozK-BwgASQ za(vs$w>j`)0=L$MD9S`pV!6lgTL9xPck5+1Nkdd1MTF&yyJ+%VeQs`$TFsPLsAy`) zDl{kT&SNQpmM?|1RkMd1oG=8w86G1fLx||IP*|*%vT=*|+%%dW8HE%ko@jBw3gMG% z-fNEiL)tA0*`&#Mm2)k(As$2z5846<_>hXeKv66wJh`}O;o2Rt1k#4$cTMt&RjEGuAi zmw|^h2Nr)nJz4IHhvA;NYF~hxzh3`hYNjnlq{#o!7+-AnREtR% zB&$54GS!_~uW}y6mgXnwY?T7LdYmxvdZ`OLBLoq+W}QwqrGvYOK}Z>%OG#dcNc=-g zfno+>z0dfUPjkN*Oz`r)R-PXpZJI0W#FlQtdM-d~FF@StNqo5i-ZN5Bgg8egBSaZyu97`rDq*I(?!PRS#dDJVC zLx6A0jRRmb}|Dg8k0TL zuRZZ(c`O48XuR-;80KeKkFh63D+YCXLyb`Yo8DQAI;dqNt%c5G=}HKG6Br2zD@48Q zf_QN6=7fHD@=Y4)^jM^F?p9p+kx4k)3wNQ7Zl=63TpCplwcfLm)6wDJQ1h;94k%CNV6wA`Ka%bPyIsusMA*zAf2sM# z(4WSZjcfUdkq(B2(1|0~9nYg4aM_Ljnd$yDWaV9zfvc}y1xd7Q1qM&vcP4gZYBU`n zH@^}PKPLPNmMpsW-NtxuZm?)>EVLw-6QP+A0-ukja89;fQ3JJ(q%2|Z@T9{(0CtC) z=5tJ1WO{mI|~a9`UqZmDL*anctXkYB>J zLg4;ycO)?1;k%vP3IQ}8c&Q0*hT1=u+Zo7E!Lo^!1VbOKn@{6orV>IK$W34*)GBft zV3lHMa(RzWdsFcFNb;xFe-^%Qsf3Ep4~&IA0~wYoK^$Cpcv_leg%=L5T?E9xf5!d1 z`||6Pn+KQV2cV4aM;^Ly6%%*QYiHd6Y1n&?VDp^*K52j@J&bG9N-t9mKYe&(wnDMO zw+xde6i2NrXv(2muXA8M@KXfwOMGSNRQ0~Hi-W4k!)xS033RN8Vh=%B8u#8NL0p0S zFix>8fAI2e@tkIiT44oqBXu!*(fNF?jS?N@3SkOknJXe2KvB*c$XY3>h1zmSHk(UY z@s8TbbTM7#z^wb5Xf=kP;ddO*ZE$31?nOfkmY-pTjPO;iOND9fRAlYX=kj>^-uUa5 zLK?Z#eLv5iB>&(F!)LNlG^An5ob4dLf)I-9^dDgBLYho@DTaNzsRpO>yIkf-Q{+Rm zErwrWxrP8*K&8JEnTg#~I8o%CC4js$;wmLMkQV;S>AH(Z2cKL}X7o$mJG*e{p5 zk$qgZ0z$H!SmCeV+@UNjCRq~8B_H7*`|sg=%!D2G*FP>s8GyfTHk`dOnnvRvwNal{ z7QIL}O2rAO+4nX6_2**l|U2u{p)X8#?C!zw!W%}MuJ{+k-$W=9aNPBAeCWJkHajuilSr7ab-X@Ii^4hh7y z*4WI@gI|4BkF8J0kH`-z8gG~vpf1qk%ABNb7aSB%x|dx5F{E=7<@>turE z5w37J8yQcPN|#B2PbO?AHm7yARW_6Hsp_4bPk@vscsqoa9g)|{t#BzHLeorQd^I(RWA>gzNb6nD-BfIXctu#qaoYC2B% zT67ObI<^9vZi-||_|&D%QdL{mv(c`5qfx2BPU<9;Co;*6ivA!{x+*;=dj+Xdl%FKL zps%0ojfKaXEbyjk5Iv~ofh=LH3zZk7#{}JQw3a5F=fNz3>l9+SLHvNlzHq^$gTGO6 z$Cys8O`qJ?IT`|M`ht*f)wQbtqCTHOW)e|XbQA&h!tc~E)To1>PXQpU_f`U2WV0%_ zzB64;lYQtgLVk~Ss(K_)#Jua_<+^&r?3%G;a#>mtd~9CjjmZAri%3fQKYIec%My?i zpqhSl>|drTAQbTPT|>@eVd41IC*>8#3OJ=LS86fYQ2xjS=3_s7T*oLWEtQXWb{?|D z)K29g+6ysI_yb@h#83Ad#R-ZV zT0J-$9Yet8Ku`jTe!NkIoVXTEZZfu$HR9 z2URv23^2f+I2V!W0>7z&l?cqbKxqU%j-`F%_OHYlgSHVCd~AZP+Y0~HZ5-Y*ep-Gtv!MSH%wNfJ7qHpRQsr1pW(B|+K<118^2PU;Vw=}OM@0qe(M@(tREAm=%s z$PNxIDiqSWI+Ovw{M8Y08SGY!m^pV{p7BcsXpYzS(MZjEYYOK7nc zM)XYS%MJWe4q6IA*EIzi$%b{S*8KEdYHJ z{K-lHh(;Ye?j_ag<8!+Gq|n8n4q;0%d;qlTAj~4CkJ2$f=dh;bO7P#Ml>zA{=X6?DnVRS99K2UUA>wpPVJJInhs{Cv zLT8OdO8R6?FOsArvq(WOJSg~b)Qxr25z@CJmwPpQ3j$k;Rie577${!!v)*M~+H{Yi z_;Pq%PiPdV|JE49>pzD)-@Qq)X-g|0&YbM$8q^r^f7B-GKBGYRIWZq;e3IT_;evMG zFnqgvWZRPeo(CQUg_R%ICChPHevt(wj(`HzfLfS9>kJaRq@BbY{V(zpG6hq1X{2HY6rR3LgB>_0CtSl%d zYW5op{-CESIwnx15~A{_#lZBTxNqjG9rVxld6KcX#%(&GIO28UQZGQ7|-gv5$HDEvlm zR*VPZuF9IrHXQ;Ae_{D?~ew)x>%-*+Xn&9F{Zop$P|raxqD_BF;LK&11Rf{%NW=D^l5@Vi=#d>e9rH zD{iFxJL-1<9ylL%wl~Pf1>_T21;R)RTQgB5kiOB^(|yF(-3_jDd3uZdw`42=!#szP z_*P*|peG{?h+6l^Za^i*-|)H9W}$-48mmS(m5Wbi1-pQ%OJet^T;^@MnLNr_zzAV$ zx`C}<+geh+T>(BW&w(51NGU=qOeBTk*{toNt1*B?vksj1Q!nEq|_a?0b$V;-^>04J|wZ$i(D$opezcz>O1NgUx3 z>z`O9jP&86142P*<1L1a`GAj?YzVTCUenbv#e=Zg@o{U5wJJ4c4>D5l7%KZ0gPtEY zKS_=gK3@t$-8WULMd-r_E=aqka;a{NWc32+P7NLou6g0z@WTIpBG*-m8}BVALZy3e{@JK)G-R-)Se8pJLZIg=qC5f^8w3@b zFL2^`UyXj45L>;7-O<9UGfdJ$sWh zA%EAJL=a++2y_0Z<=Q%jw)tQ$k{-Wt9g@b4s6~mVZyJjvqrlT15E`}R3rf4utNM|q zT4dXaBr!QisP@+G_ZfA+&mcoS=p z5MS|VO;?O-q9Fcz^bW(Y!LWJkC#o+L-{7FST^A*nm$Vx!wO);8C~X%)8gf_C#l(sz zuqm3_QG(Z%C=HntFr13l`KVW521pudi|PKW=gddCDahdh-It!G-01@E&GV>kj0%+P zm$hKMw##4Mb~gO=x-MxR^7+FNH%o#sqQfT~-|n7aU$Xa>^D%JuR;yEj5IQEyH>PPU zR#=hwT7Lqaf=%7o!Cs5BDGDWHRG+OFgrA)m7HAYc@&q2lbHoeHKpawdCu$vD|3Q+) z9@L${PNV><57>M#<)3we1kd%p=2Q+LfQYr^y_Xq*>eYw(%G+LndhO9i-OfiU+zB)v zFZ}_|9O5Y~-+JZICFh)UP^Y)0)sq5NAXH)h!(<^01tL%9*^qsEKb34Rc$Hr6gt*#j zMZ%*d7Lg?gHXKOIpjBpzxEiOY7D0(3xnniyGgq8AkX0+e*`u zzcjE{1Q7TXs~8p;L)6OOQoOu-a!d%;*!%;FQ+%eak)sM9O^1vn;ZIJWW?Y{zx}X|2 z^J9#Vbr!BhkQk73VKTCRyPLMC@aJ{Q-9xWr>ggp#l0Dk4@P4W-RQGy6%U-B-0qV#r zLM&Zv*zy^VGC77+@2Md}^(t(c?UnNm(75L5Tnig?#)hj@y7SDD>2G8NR40-} z^RgbjH+O^M9K$1!yoHtARqh67KhzV93s;XYkT_0!huFoR_Q?5kqUOqx^i}lcBH{z*NRF+*o13R+az+-kw#LTotWD#y;o#lC@rr@6Fdl!Zu@YV zCU0vfuF_7=YPPkUHsi~n5`*?Ttpi#I?)>pjj~dLF3 ze)O46Ai}s%XEU;dA=Pf48oMiEy1O7`AW$h3gSyMpt(DT2CliFs^)dNSosJr$tacLy zuQKuWT*jb5Ayp*?VQ@e}gIo$yvLR}NH|0$eBZ-4=!dsRD35MD*jGh;ncFrnTn!?Ld z2cq#*{qfiE&8Q+aEuFR~n}e4z60oAE(o|d=7qUgT20!QV;NQ}^;#Un z*>_)#N4mi=;Joib5#fw#zgxg&gcIPrN0Jfax#0Egi@;uNEGvDf-1WEl8iODlTMI5< zI`EdpL9pAG;7-n{^xOXwv)%uEInoh^c$T6NZmh#nWc(7~NMCz_4)L?0%Q)vCK`Ggc zFQtSu-+^_J&>i~M%Gex}8A$cYVqr+UVeu+rQ5Teksn#L|QBe}SBn}Kim8dUW zwbZ#WpS~D3DfrV(aHq_rgKL?tt~zz%mrLwVE6L%ur98)y&(5}bMFyt8=cGNdnbC(N z^v-80yLA3B>85eqc=bYR`Hx&N!r3b{gxxgO4eD(EAs&M`;aM_~p~2*jpI;kD5T=te zZmISpkx980KxuS^hFW`S3NHkFYmQGY?FjXnHIbF?&bKgblzfzT()BU!%;1oZ%JCHA zK1xp#nHY`x4w2+W(u9|rD0mfr7C%k{7HXa_@e9=rPRvW8B<%+d0jzT-DU8pHdcE!4D!Idd} z6yCoQhozt_hH3Y~fV*d7_;4WPmN(0|HsHUOSf+P)xB9W3iJ=a&O}v~xg<8W2P<1{r zr7nhDC4@*3;k;NCL3P{kp*!K0HydqiGM$}GEYlOt@IGp>F|=W9wxR43OXb~*=lxSB zipk5a(5r>=YN3W%gE-eWKJT%>3D1(5Of@Ed!o0dbd}Js8I1bgjn#R&oT+#E%>93Mk5_IO!_~v;MD_-x{0xoX0qk@Yg2ezE^=V`mH=4k`IPb{*NXI0m?ofrE4;@ zqAvGo*`w6pno>Ud>4{dxTsG_c`*XU!Gx9atU7m9oD)h+iMZ`?phms(9tQ51imwSGBAISzJJiWHx_Bav8)ltA<7Y72$F*QXZ6DX!KaJDMv?`iR%DH9<%* z3Zk0!vQrrR=u91{?xlSK&+U_45EMG&$t%yD<|Ovpoj_;k_euP8vf%ESI}LaEvd0(e z_MDZ$Dq99&2vDxf=?KU=*zb?A)Yi4;WFTG-Bp0dnLHo$`ANT__=1szZ`dr3w1K%KJ zG$s5pilz_%-->>f2GX5|ugPpWW$FtfG{9L&p{|huZ)|-v6PbgD-eTca{%Z-f>bHv3 zc47>7H7+2FOI)ppw3{0`-y0f|kdqA*M7(po`dKzbDY zIYJgD3W_~?3o>~5Q-~{i+rg|*twp00c)e0=T}^2Wp>a6lG(VMoD{xm=^JN?FC4JoL z0B@`8<6g@&mv9oA!w&<}p0yh9tKTdr1Nzs|;VcMl^oRlSCsq^E#;JtCGY$D()#}On zO7|2Yg)IR$_M>`PvI28*Vg?z(n;zAcWBa9BMGcNL#Uxa>!>ut+B&YjsHWewWz7z46 z&Rdl@Vb8pq3Hh@aN}@+BQiX5RIsqN0&R+HLgCpiUQ^Otkxp+)PLWy7V>x+c^d?oZ z$M#MLyxoJ?!7W#I{r1gOmd`&XJy6Dt7Z1V*ezc0!SC;WcJpj{GQIQ_T{SX?E8`Wvh z=9=lv2`{N-ew|Y#FJ~zGoZp{{IhEH_o;NRox8IGKNDe)z+Lb^eRr&muo$Vul4u8jI z@0{dhhvNj3b{~82VAQ*eNxr-gMy73W4b+q(*AQxlf66GBy9F!hr8V6%^UImgR;3-o z&{PSvn<~4@*;tTAZCVj_L7iYgLYv&(*mGMNvuwlo*?lKQMn+f2P$~b+LyT*S z4^hirU>g# z*w)_t*OdeH8{`HOzS-xogtn1x$_0YDYI`uo#HMhK7+?xK@sI*|Ff_INHB(#!j}arB z{0URx9IO02V9K3^=m`X+88{6%#b1TqX9ngfH^E7B1(L$QekbF{s(3RyQ*U0e;( zgy;!@#? zAo~7#XwdewG#?+u&bEsXTPmgSt4f8#Pa=Pb**R#u(kTM%t|nt{nAP+xN51RJMilxN z+Qn~|pS)#YnJI-~V6uaCk$GKqOelT*)iiM@s6V_eNA*QtSIZiIDqKH<)8IU>3774K zdCh_p&yH{gcwfd;6DtHA4II9X>I*?#PF|!!>gY_1DgD%nzulmI305pN&J5y)VPbU; zAM%`*Zhp;KK)>FgC|E+5;YQxY(2LAttCHnh(E~>`M&97HZS0JTpo}p7r*qSR&D*zb zK6&!*zn2nm+>fN(ylmWJuyI?}Uufe(uyK2J^n&SrTfWnr#d$B&PM z6L3G%rglt}q0LKU{-h*}yPl@)e$BJX$iGjiSoxv;0@*%pXN{hd@ewn@QPsK6ASq?Y z)@zMo>a*W{)J5)=R3A`Zir2p=pVeTUK5++D;ta5b=O6DhgHhg!N?Z>M7w_w7#F#gz zo2k@p7hlp`!3YV}mw@_Lc#)Lx>CP}ju*tvcpn(M(>5-*bq#!T1Is^|UKxhMhN!u|f z8e{3z##5QL(ees7V@A9}1Dga!k)xESsIu%)XB1*>s`UY~3qB?J0C16w*U){v?}8CKrC7ZJ4mySDK0YnklQjf3yeR+5P| zFN7grh7eU_qyBWpVz>~V#P7;ivyzzC7ZB6Ab5ey-zt? z)j>xgH&K?y6hzixi#{!fwMHFgT$FlVlF|#%lE_*ppb%O2_Y|I2q~-4Ym4UdZ586kl zFGSsNCVQVOFQ1&8*c#y^Zv4XrZu=*AH_bPP?a5B7eAd)528?c?(sy)x)Hl#QUE{Bt zak{C@ex*_5l*N^KsvCMT^5N4iB>g{XktPC#QD2SIe_adNJU#pB$-9>pc3F)`S+O-! z+p`6?;K>~<;lGd0*-v7U?<+W`OYzVjpoyhji3^N$Q^ZxiQOX?Y(?-jI3Kmz!q1V=LTo?{F*OwT@c=G>YqDWpsLZ0-T_WH>G>9TVKbFEiEe#|FH>scB@C+FQ? z{4s=}FaC`(HO+a+Q^mza@5~Tve?_nrf2f3@a-%ooU!87?5_ZE&I-by z@^x1Lc3rfD1|rCpEsAP*eM$LPI6Q#U$GX@5f9#ag-4GltfdPTBHJB_;C%X3BCwLer zZ)T_j?Z3TAPD~0$Y`9j2HqqARzSYd7VS`j&-|JmWUnN~Dq(r#<|Nd<<;UZGV#pETQ z3n6NQ4s+qE$WAC*e@*7!@w1B^6& zY!{~rl*>eX4EP!R0$dYyUIrs~Ar)a9`VYz<3cjJA%BQ?=Z2mzv1Qp)Ml!t=!!7~D_ z`h7W_DEVLDb}UCoqNX|7^-&C@=u#-s#%)I?qon%TYKO=Z(5L@#HjF<1yWmOC(&B;8sDmad;SznlTN+Z`u}z2m?t>mwdv6 z`~+kN);nthU>up8^tj?wFohpwg{|;FG1g72uP7?+L&b+sl3MbdY=0msz_`im%J7Wd zKM6U9j-#Y9#u+%7zUQGv*ADaRyCwgGK! z^cJM6{&1~=HckJa^pu1O<_|eER479QE0h9fmqz>r^gIG~88;3`qPi+*pg-S4m_h#W zNS>VlVJQiI<}of=ed)Vn(2f~QbfeIl@@5D*jzc@zRdD#0DK-_WveK7&Gw-=9`bi+3 z6=6qNQgh^vnq@{6A2TB;vNnet(3uD=Y&v(^$ym&oES6lKeUkL*yI>GIGy2eZLnAUD0{PJK)>$30=pY?ktQBp9895YU?+Gv zHrl`NM*7&hVGc_=13T*~aiYVvK4Yfe^(fdR?06Tp@#-Ic_7X@^#2X5Zo06a8^9Wa> zo9?;)50zm&zSn;39wQwS3QM|)7E)ZfE1R>)E7TbEs4ufD5GbD+MS#_UU{_AdAcIldH;8bbaorU7$-J6;yjstuR|QLdjZ?_?VStyaDmKF#Gx z)x}Fk16wKZ&ImVTLjt`1>Ar$&kGD(KpOYaLPIOt6ra(gVB)Bz2O6_)Xq-+F)^jh#(TEsM}TqG4(E)pbiFi zdTH6F1rUk?IeC-d)>J8NQ08RUtFK>78!&MW$tR1-XQ#Q8N@uH4xoWmvR6I5xZ5mxI zCDZqL7dn-Rk#Tev782{xxn!2~W@?vNZLbujfF%J7ahRfiv{JZTpz40&pYh(n^J5Sg zW(s2&a!wKEzX~#C)|H=nc6wfm`EBA%{fB(vl$!c*5{~>&-4+uY$o?Gb8JcH}D&$1| zt|MX9U-%ntnXSQ?YcRaf4Z?SuXs?6cAnQMyYaE7c2m;2TlsUh}B=cXOO^4o}&t|~h z82$7X!#&-DxC_{9Ep%YR3?8+u;O-BP9uzB1;aWr}Xd2xrrh&^NedOJsx`pExt`Y;> znKO6lXmWz`Kf|K18JhDV;~gw%0b*{j6!DWputgg+<>?CN&fXFvuL?E^?iBE~50Zq& zW7^HU%z(Rp9uwu`=Q}BIu`GLo)iG=WUa%#ub?gUdl8;igpA#Mx=tkjrk$tC6DHWNW z)C?guV}~;$o~I3Pk)r!oZXVW7ih@Erg?nJ6V$#PxtxG%+^C=#)liJ%#{w$bfS0C>W z8Y>G+9Jf{T=|{M(;*Xz4Ce+=0h~UYewICH+pp39>pQb-I{~Ts%tu_8ug(uuT)`FV z$~||zp&6L<^kl=Kms0WIEF-W<-`Z|X4P{iI!hlvNWcbaTDx5+2 zt(!v5f}&O2mW9_pJQ|M9#^8 z8(hsw1+Sdm68j%`d_WOVfm@hYY<SsRt*44Z@eN`f%t*&%;A2sFP+e z(J_DdhUUn=DH1_-qDyd=RO&6;Oq$>;r8Jh0Z@0)1YrggLX7hV=`vDV*Yk!N&Wiiw5k;{7X1Vh7gm9sQStA4P>a-e68%MH%!BgYpEDF}%-S~f%;R#il1IkO2ZUsz=0|!7H zws*s{J1N+1x#n6Wa_5~0$0-Rnz~kW zLmkx@pS%&_^^1U|DkJs6r?Cfl(nse9`ECptWX8kzyV~)&F*t{THqgK%VoYc6*3oXD zKL61E;NfHw|KIFWn(NBE9qy}nixkx@4y#>3`#O+SGKGM{^XE^Nfv zZROvl7&5ZF$@iL&4IFYDnQ>mvO&d6!Jz}xTO=&K7HGE2IAs%yDI8D&Kv4SYX#OPuh zC`ihho7q1P95Q;eUUY%;%`zl)rCxY}2_*;3HUHy}OywMaCAnydeZS{rhBu&a(6o1N zFqNT<&eRhM=y+sWzc-%3OYag7F}Mlj zeo_w;im#a*J@BXNRr&fRF0V>(Rw zJpEl=4ijsRy%cm9!o0top#hWRggk@#=K!*7rSJ+zb4C8*_GAq>T#j!K7h^WiLuZSw za2%yRMR@~!H!Z%M&PS<(_75p~!2!NjO2|Wg+C;jest{J=Q7X};Sxy86K)V9sq@NZHS25{=0z2$ zKCxL{EiMk(=auj~pulpKN->j&meQGb;FjrbjOzo0#OaLCpVC8&z9OMAhq0_AVBi}a zsa_d=s9B7(oy?9}apSVp-c+v5d35pkH>Klq$19pq2Lj1>~rdx&Ur%OHemi|~uM1akicf)&LDu)1zG?XhRIYX|29$Dlqs-2i~>s!1^B(qe0jH>3fE=6IHG?Q4oguwmWKiX=>~gr{`zT|Koh{L?;Ehb&59YD4 z*;t7_*SzGl#=L+GUaO)98Yp1cP_8@ZBKM#5UdvX!{(dLtE?@Tfe)h;cc8m>I-k&rh z*%Stu#fCg}cJe7U6(pifbNvo-f|yKFJgE%Yik;E#W)8Y^Z>|M>`M7?8B`dtV*>8rc zz3C74Yc5qbW}Viwx$|t67P4^Pj2`5SL%xGt)atcjCz7i7_zKeT`wrkhc8T%WU7kJ8 zFoE!-|2JN^7gULxuZtN6?wQ|Vw+m2eUqa5skGSj_kg1$;T;ojk3DzJWjx&BRvwD{B`oJP0C-#L9S=MJ6`^gU7M z<%fTm3clsd@{&`@Blyt`oAmrcdWZr6l+ykas>s~mxzd2?K7v6nJb&Ax{zosqdz(6` z>6wF(p{n!mkD=Eeo7p=Io!T2hab zr9Urc{;l^*K=yUBhWd0B*S zqSwl5ql|0jzYL_t6k%f+`fSHJ*}=^KX}SEdUU>VS*mhGqq)v3Pru&kVV7?XqFBXYq z1*aJX*8q0DuuZT8Fn(Hx8D#WCf40egf@R)lp`sQh^m`1lh2{1Wnhx9%_BnL(e78d% zFLV)JQy>&ZHDp8_@}F*9b9^CB_O-QdOmnN%!pTLtE!ud@X$v=CtI4M<3F}=x?P)MY zVwKjAFe+RJLjdN@y$UMa!Uy{53qf~$376FN@Tsf_P|Ul9Yc4Q6$`Uc&nbW?6rypNS z`0v~Rb3OqK6Nn8z`%Af?#Zv!vnf!flY$yq8H~EysQ(Dc{ttCwzpI0*G6UjPnK-<}6*K4Ha`qV)hD z~b?y&qBQ6UVzqm&b9#;;138a%Trn=3Kkc=n{dTL_;+tCb?%J`jMle2 zeG~_L-1^k`|C7nT#+QSTh-_&5EQYv=--HM*;HNVF)#d6v^u34!nf6sw$c;Q%YC%YH ziSryLwr{a?Q8;sH0&8jbWl=utV6EU5-&3qF9Bkbmb>J$(Fh$|x*aV;=93bd(2VY3) zsWM7)leF4cxQhsgI&VDScq=@LK06lww!?C~@hRgj(r)-(Z2T$bY*p93CgN8oa;>Zp zk!PHSTj^itn%xA_HWSRh`2phEw&E%;%?2zRa98^s4Zh~3RUXRC&pYyy;IEs+FD_x% zHzXDYhcqWPI2x!aaSfj8AhkI-I5;seDM@Va0dYq#!qhrpVggnuSO_^AM4A#lv^3c~ z$J*b;x@GF)y`A9kD#o?x^sWPFVFEWku){faT)&;!Pe+m5-Ge0Vt!?pe<#)%VO@`Z5IKxzIgl+Hk$jwI(>$E?oD;Qs$Rhei(vP5e=fDn3i4=5| zd=DGFCD>-cx`eFgkXr_uN&vQ0-R8@%#md&hFpnoc#PD zz_{p>tM#GW_`D-ONgh466($mmF|T++$cQ?ezyND>3hgx%l5CI{d8{H~DqCm8EZIb% zlsBvJ4XHcMm4BGe-=%Mq258?@#&lYC5yzrA84M{xa3J3i;U?Z6WcxNw#}5aCALWm@ zez#&KwrC_|ys58}SnYnD=f4?wq~!7^gsUGPG>%6od1C9-^sQ@74U{aJ+{=OX_;|q6>+#v~$e% zR?qbp@}>7`80``W$0Rr}Eix>Xf?ukn^Bv@q?Vf0r73X)63~XFv-%L zmE$2pN{~Fu=bA*()|}9-@tyZ&j%r9_&yk3MtAA~Xx`=8%t=-8NNLqzRN1~$lwkY|9Nulr8rSPljA z8mH<9vREe1ZkBf@YVJpQvH3tOSDwNE3Of^o*!) z52jZ}n0-3z9mW}FznZxuCGxKi=-)mmdo(Dxy_C=Xdbmrgj>B}u{S<5;{T*s|B!Sl^ z^PW!wt%FBfS)PnqPB_pTAB2x;X<|z{(8X|T|I_2 z4n27B__fhZGa_kcay;=uvSOSl-ZR3_WcCi%Bm*V(6J$einkerGlYgX3S`{J;FhBV@ zt+A$Az45vjG_pg#&01!iklHBQd{bfB@lHeIdHl@jXSr!ls^}wx-Jf**^w$mtt$S`@ zN+BwvmSJxpNRRbVj(3MTWhap};Gf1m){cRzBl?#w%Lj|+R!<&l0>6{1Y-USw@xl^( z2|0`w#ti)!W@O=~vD4`p6OhJ7>&?2*4tqzLFisZbZuJaThi!AZpKSwd73|~a0@~;s zx}>-^e|jKCd$TeUOk$#1!=+`RN%wzB@fh~}8^Pz})4^K8hbQ0e97{MrpeB&Q6LQF0 zDb{OXN`O}=WqLTrnha@O6O&s!H(sX!Bb#-r7}qvPvoVK-44Xmye^588y=%AiNSEM% zns8}IMLn1ZSq$K+Sv!Z7ehTlmGCOTF{a2Di0_zZiXzvA^?IM*^O$_>b|3s59j^XpfTe@#0)DDdmtD zNKtQr3^C+jV&D_b;&kddcFJB6hOpbHb)yN%&DwQ@5xoM5)W$MMx9DAwTYm1UG9?q@Naj|h6 zW6nhJg{bE=4+IlD+~hUi2ZvjpxC@coW6tp}7w7vO%N2jdNNbec@& z=U3yJ7>*x?Bv(ddjUOL+yfrPu=D)uBgB;sd`*x~8p{2+OtEms0C6o~5!RJ$r{}WLC zFv>Jm|Wt{@OKLtHrz0dK% zI$Trw8T9z0*)uP?!pU>#tm5gsH`QwjOl*9=GM{zVgwg1VSkaR+R=8@g9c zjyEQ)UdmHvRLwGECsjnhwkw}MDiX`Df!jRC!qK< z#qr^^5g!R0v2sm&`&&GfMkd9ZO=Rj^FHDEkkSOu_ab)KAQwGJGnTYz5wYE^{)+N2P z&_#JN|K~iZjnj*ok>~o>%4PecO6{N?$xeA`h?>k%wwy`&Fzz?RE5z%(ohdAoHR?z$ z2PW6wjNJe>DIv4Q+Cx6Jer)I7v)9SBuJ7b)r`?b8zE7$Zzn80_&vAboLll+c8>h{s z&hu_u=51Z(UFA}n0W`LH`4`>XUt))+O&00cn2n~HnPtNrEst!*7TT%tUYaLa^6|Z3 zG)AbttfvOlLIJHtaC-MYnn4gj!3Y!si59g6$7d3rdvl4ji5EUQK>2hYN?wrsf=Ex1 zyQGz%csqTO$#pxxrX9q>uk!xu5sXR_1qjXemd#AcisnP;!lg880h7AUyz*NqEtui< z`PU?2QQ6cuLoz(4am$CW1Jh*+VkKmH_VLL{6fpPTL};8N%xgtXxBG!atX+yX(L-JQvI9FQIGBy5aFNw)aXY!~|Y5KC(Ln2D= zXFbRvNh6CaD2RFaFTQYZ^R9%>nT1gfKhirVf9=~&(}4NEpf@Q<#Xcf&foFd>7+tQ~ z)&EFrtgI?EYBWYS30^00d*2_fuZQb4 z+6)XqW)VVEkmZtTY^dxL3pPcT=sGfv%vQVIe)R`SnT1M;-BXQ@fz5oloGK#*nC9Cb z(5_PhoC~r_+g0eQoUEiYwMF)c$t-kRX2~GHYl8H&)_I4l1rpl2_`|62G)C4&Uf(9J)T;$ZjPgenR)mNl==?0X)Jpb~fy%`9_~dB;!u%en!#G?G8@6op&$Lh%jF zq3=@)D}uhJ(>}X<7SCiKvOXDqiZ1(^gl_zTsH1|Y+r$cAoIKlww}5QDrP`gSc7R=s zAdjyRZzx(DDRus?C zryKNt9E27ztD+}YNGI-+AIr1iD28A9c}#Jsj0{uGfO73CsO*Vv48&inW+*D;XxW>u zU}`%&Afiui-ib!fB|8TGnA5+j5btNn=r;scs-4*pzwO7DP*V052ZUuf)%kIXEWwQg z1W*!WTE8Kl!kDoX+2`c4XkF03dZQWL_@KMw4$I(cW?EQZ*|U~$NAwJ?ZhHy)a-1sfBz$m3w>wZMOg!l;Kw86 z>ECylce*f)BprA-`WVWVnQj4Gc_{59`$4)p9zV(Ia*^)uQuKC|J=0rGpmwf$WrXK3 zsaPoj`zD;s#apT(+z|s#qKsen7e9P79^h}|LWVQ*yErC?H6V#2u|3`Hyt>AbW)Wq) zoj!g4!Z^R<#37TfdzCR{1()RO;zEYAx3oW@&NTgrl*+0LfUzfJ?FEGyw8LPX-o2q3!>z zvBy7Uu*&FSN_l%{B3sH)frV7Xt&ci2gPdggi`Zm3t`F?Q?Zg&CA)|QwFK_n`wf~4i(xF!ZVqKB zV<{s~qa8YPWC~TE4N(;#=cC%Z#dC7UAaA!*-QMT%SMv9bi@;5Q z98A&!IBEfkj1*P~3u#>@u>qd@k zkI#u;jvGJ?AO;-Wl~cH>k@30l*aGx&_;Sc{hY)2@eVn>PZGtvTVSY}0Ket*`C#jXz z$ZEpUp+(4b4$HbwmWQqdpG%fNeQ}1|@OZc%;&<@J2B*{DNrr}8Ln~BwQ$ssNj$&9k zC!3i)F{9_Dj5tm#KSmHOil(R60G)Bxv$DiwMm5$~O&On08DH~vkK<@Na{qbHrt$j2 zjQ~AB!oS4Lym%sR+uzwHBEI>@8h(uQtxY8CNW~?PrY@YNyuBACjF-pCNt%D1_#lZ< z1>DH}iJ>(39q;ofY&^%?!{uRsBbGmdxT1eGtb+z&)5q2%XB>%~`CTeoRE-Fe6dQt> zQGxZ9_@?&{avN1%mGVtdm?+O?k}*Q|Ix9}xiCFE%tuF%trR+6ujz4|fiiFBlomI*V z$E;Ve?=$Yu730@P6{Vcpl%yZU>qNw>z&5HPy95PlgDgP208n$c@u#7>ba9Pp^0 zW94yUc^psf&da2q^yMwQrInMhvjp%0!9~2!eGk$J+0%^dmW;S5Mlv}g?inLf#pe?f zy{2f^rEd3-G>^r2R7~qm%wUiC3X*USml%}`p~NM=+-1Cn3#~EZT8w*$hTIw5f)i81Ec%eNHq`Eti#LZO7+bz7a{r>BX_Q7t>e1a*%SZ#Jfs{cijw6 zkPML;hjB@Y+I3rnR^UbPy=Bi|JQ6YLd`j1ymCksbu5#TA$1Esy`=k~sk z#vYo}W1=5xLCSVD3Am<$Vuu%Ig*r3P_)BMnN96dnul#_w9KXRZ3%}Hs?%M`8;v$Yc zOq<<^t({MsQ%~hk*a?EWlu(fK9%Q^EC=2i?-T%HD``0H0PRBDOyBUr+W;E2k z4TJq!c+NO9u)DOo!aAn0>+;G^W_pP5+L6f;z?H$?A>63b}Eb?Emq4mDX4U*(-o`!iL zqGn?Pt|kdX$}XRnzkBOTUetSM&oE=_5;3IwwlWZ6;~+Xyf7 z9+v?>ZGcw^dI`QGvScOdgJNXc8Qtjtv!#xN?EljZr(RabW~b9<3G*$Y;m=|H48{y{ zK`WjK>1}Xq^%%9my0;li+edCu(79a4U^Z=fBz-z{MR4)X3ct!6&tT3^6gw*qD&x0_ zZ{hI*E5+lDzhxhQ`k?LFTbfvBBvNcFn`W6~4UDuw1}-HpvWl~*r^DUn&{9ex8{JuL zFV=QQfbzN{9dRgsSW#G6m}GX7W_5Dt);2>N@h#nzH>*!WCqc(0-!y>ANE>*vr-F%x z*L3sXzSIQ_ze(_58uYRLJ}at5MUVr5lVu$_+Nc^D%?+<1+eDX>8{I>OeKMyDRpNWNc-!)2eNUrgZ~m^J)DJRGREX{7|V@1)m#|L zQVMd)re+7#(2gXo)c%!n2$1hN4_7FO^b9S1?rDxNYlX;xgr$R9uzcPrL174+*_Y$j z)Nt!z?;oTqUwHrRV>y~6S9?b`jaPNvP{xq!t<+_Y3^;IiYP(1JPYn1Yw~-pF_cGuKlNFRwSV5c{UuWmND>AY zNR+F0d0jT?qbPEHZYZG1is+@qcn~0Rk`}HL_*S0^`P#*2Bv=wt`A6Eg@nxqw5C+=I z%$H&GdxxV$hU+)8*&Z3lp)h8rD?A9Y&|q~(l1qv=HJ(eAQcoa;^O15C;ILL;F-DLd z$-;xUu|Jc&>kib_lHk#|I2;P=9-p5K=xG&cAn&Qvj@uYqRlU(9n%%V-Mwa!YBzh*+ zr+e-z?a8P9r!j3beyC1rk+K@9*$*I1JqK@DA5y(61*pE7T*u&f8JjOYCfJQ{ zPbHR-0$%k5sx5ba{3pMhx|u8YDm&!ci0=(-IX zz1!~^@okRr3vf7S9^EXanLbl=@vbq*j>Y;qi|pAwrzE%4Q`pqxr?ctPd+VuCH*`Ln148YG7?JTA%>|nza_g7pgL;emC(jHc zCxU$v2VU{nul?NfcpYzO?GXJ6_G0HWN!W7s^)k;l1`< zh5L@4>^siA;PrpsoK~PC6|8|QU+J%|UxHLhvt*-sub3TRkQieN`VH7LjnTW(DcO6! zcI6ULi*Qyww)aghItr2|pi^Fln3aUP_{TIdzj(gD?w1cC}isR6on{`zY zZrrB`Oqp=jRVtqCg>Q{zMF02FC-c^51S`O0);+i>#(; zPLpOi=YQ?XCbzwnly*|+0lU6^9SUuhqX$+lkI|8l8_Q*w%srtrhOmc?4sh;8mw>ov ztgx^nBMs(E0~-YYu{=?A=_Ms&p>(Ir(&ZGJie*4;5S|l~pR*Aib?k2qPxVVzUU4+FI`EFftz*61uLu1FrOk5d~&sWPKE_|PRkvaurURN3Dl$1`fsllM|X zE2{5(q8B!XntL5Ce3;1OU68xn{&8U1bt0AVi~cQClR{Jh{{4T?i55x$gx2>ch`CCB z_eqrBBjcwAFS`x}fcZ~)Ihrd<_?ED{OS7Wf2{=pK!!Y1(7mz#7y!u}DnjG%77ZLVP z^YlvJO;4nCU$l=@*(-VHHEBW-(jgpzIpAohgWy2`6Wdjy6j9I>7 z;iSR3f?!s*^zNP>w=uMy;yUU-7)0WY(`7Gx8G6D*5|qjs(@rLHDLV^Tx3+b23u0y# zBJD3&N(Nd6*ieA;T?!K>3j<1U%BeIIM=bw_=E_Iv+1ZY{ZGEMRELZ&=Cr*OCj@c{O zpK4bEQ+O-`Q|gW*x!j!vtQ#aeyd^sxtG<9nk@?2!Ib9U{pALOgVLV63ukPOwdLH*- zmOxmFzekI&%f@v{>>3QiL?Bc!FNY1P+A0y9CHckP5F5_h3CXHo|0D51 z?Y;t;ZREKfiF|+v19M+ro{OUg--qwClj^Jkk)|mY>Uf2@otMRYSOEgpaDlyX{{WU2u3J_C#s`Nm zVK=>_h>;hyWdj<&!~|q*75f0~s;u zueq%5%-%qiH2naYflwgb+>t#PbuJveT@{7!EJ_So{tL2B5TCP4a<8GekGJ?L{n47Z zu}^&^)zxo-;3)kc&SzJh{;6BvGm6melg*XS3~ zFs$Fp1xN?Q>k-a|xwhb{-@2{LUtYEa+4!%7d97tu6UP1k$e zF~Cvre6}-A3VV5wpfG&O^K5XReuk-hftPM3 zzwoyt=QfYE4fj|V7`p1(zJU6xr7t^s&^@*Qp#mJa;04U{ zbC&|`XNQdcXd|ABJ@E%5?pa&<+|cdeyxm2?BS+2h;4Q3+$_~vRW_eJGCHF%E+3a<> z@qH8o--T}%CTN}D*m39ZBffGvPddtYo6fpWZeGg@slKJe+`8#e}yw{ zOejmkk#n#7c492*N$vI@)1Vy`l367GXHtMT29`SezgL%*vkFWv2)&PTXUr z?Ht+X`&py+Wb3twb5Yhq>U7@;)k8$rjI%VI09IhA+suU0V)84ZF}>_+(I&-GaNH2n zRUHdk*ov=~TxvgEA7Xee*ImjYdFLb`-Uh=+5ZOWI_Dom8>sKm(R{8l z_8UiY-3ir0MOWOW2a|`C72h`bu(4$zMGBHO#SRYF`nrxFV@=*%B$4!uk>DoAr=qnf z=sBpjWFF}m^xCM0XMnEJA`IIhcjq`4T8Sb!Z6FG&teW8;SXGD0{*}LimD(}aV$ahV z@y)-EToUP|4|rjGR#bq8fX>BAgRdiS1UJ0Bw$2d)-)Q+fRnZ=%%@X=C|K7rQF3kJLI-Nxa4^dMfKwfkaXA(`RHOjj`JN89KA!%X1e z+t-c26zl(LTd%r`(fmMcc;epvLH#OJcmIriGV4*aoPp*l1jkfTRR&A2?|t7kPFZ?6 zgVWZkW0lj7b(gHZBZXraO+8D3XK9RI|)a!39H zm!7_1Atic!8G}c8`mnj~=+96cN=qhTH2&#e zR6m`jYo7fk_tS(#b3Se|%8Feo#L+|8DFSazb|Y^cd_5JO#<<@MQMerGUII3)u$^qN zI=r~GcNAw0KhlC4E&0vv`za+lAwU9a}sz^OsmzZ@O1eHWG!>v!_FMADYK ze{$$>Mcg;NqGy0tJ$&%T^_zf$rD1J~<6ncfG3aE8D0gsD>|E53;rymR;9$0f-dodl zF}BrZIYX2vcVTV)UUtPff@1}xi|cNTs{>mO$POy)r}805Z$uH{NM53vFndY63f0RC zV-iWWQmBV-e{!FJ6(&t3%?|k$Iv%S}3a8H{QP}3}ssf7O!t(hQzxXWTqoie9u=0hm z5tWV9K(Pqxx$E${Nod+ea(+MdK93}=UZhRY$Mm$$Gyux0x~0kr>ZrlPP8?-|3R|ku zClrU2^WI~I`mtd13Y=oG7JpR8u}$p<`RhH(OC$!p z)>b1c7-QNdxyRn^_$`K5mNb@=A^X*YPWT^Bu59_|erC6s^?JmRD9RFjR^%epmi#w+ zCP1T9rrnnCN!noP*AG5O#p`DNYfC)Nw@Ssvn4q-315f;-aI7C4`>GJF=b>oKFV&a% z_t?zssp%n}t2LVSP;TDZcm^j{o(nO!{^xDDsLi^do0TqodR4z&pfUdkUjQnlTmQY6?hS?Zh0q0eNAvFg+cn@@aCp?c2TPjAjYKc;+V z^^7d7^f4u^vl6kcLV^o(dsIEwk8^HUR=S*T|`ApEV;=}ZbG;O!q`VWz#&jyX}MS56p}ByJpn#@ z^?Z~C!bV^$l9dIrj4%5MW`xGS-pnj$;)uKcT=d=_v&qUHu=;I>k}p+tJ1{fFDO(8#IR` zu=A>5-)|aR5M1-zf1iL)@w12vaNN`!DYO-8U3ZjcaEM;L#V4a2I$*C3L?o5$+Oi?^o9R!}NW`m5t^E6L2ud#Ngt-S<&%7%1jQH zy@n*FTOcLLj2|w54#-@$T$$ZHrC0UTVyAe)IS6@+p`N{uO85Nu$`<#m2z#Im)iV8T zYt!gznTNp(D@VO8xk4kTP3Yf{K$rjp^=GjgzE>rney=v7@Pc~B!Mf;SMJAF0G)PRC zBX}Y>=&T7Wc(Br27BgPWdSwXGr>8 z;NSdA5>Mha9~RbTM1%rj!{;nie#U8{DE`moDh5cB%YX4!fzIv5dU2nttJx?;Rt7`B z(v&x!#zh`j;VS!uLZL0C`8k8N?!zw6W=?rftBmdD%Ijm_{rMz!UcDkUQ$gdwpLfHR zU*W5(57QFj;Ebz$I6pxzzRo5@>Op67?-mjny$3evez(|Ca+TxEKeT+9FgW-lKbEqh z2-U|)Cm`Z_^BgW2H_?sC!>5L~1jDeoB#& zvU56i5Gr+P79)P)X7;dgW8bX3*S?5sJSr&?A7mp6>Z{* z(FdZ_^yB(DJ+xy4Ayo>&84lB5r<~2JO}tTD_h=9eIWH901I$ZAio7R5Ox zc8{xMO%=9qF;$enMO7qtpRt1@vuN`}yk<&|Y+P1mf%l$3OhiO!4oS`Y(Dq&^5Ljh< z7l!i53xt7u(J{+*xlayKva>cu>KdKq>iL?O&-TxBUV|OpQblxXa193W z>`ZeGb-q@2uG9|^D4UF1)OA|DxwJs`G>i;10~FjN16r`ts+?7$g=(uOAH@ zcUeZ@?;j}HIB=IHvUylXTE&x0Exmwfk!LeHdX%O8FVmxcqc*+Q7aRqfw7-!P;n%`I z5D+8%->-8!G6lTf?W}}Qlw5V|AujB#EA;&+O|dk$&ou|DQ##U}W)8}OA-Ulfj2B$n zFFogmIX{tv?s|4A@WTA^(5DJmseMHzz`gUzL%-qm7+P+BMTPr8IiI@h`K|UcrP!g} z!tT5z;Wxb7;D!Y1m@)vV(jU^F{>rR&c)SQk#u2yLMiCoaudoq$N6!b|ixCce zymE5vufdK~zr@C4KspX7Sc;$w#oxEeudT*e_U0a?QoAr2q*Bf8x^TMxmYWgS&d%9{{8o4 zI-`3NhMBvh?x}efu3Ev)m}6$sq|OVevfsJ;3-f5rTax})7X(ukcwj{Wai&5vO6u$w z`8}`u=wZ6Z%0-4>Gy0E78``M?)~Z6A10PUkXU)B?vX~jNfRJH6_&CMRTV8C7yk!@u z-SOWdJj&?(vSEe02pF!QcIGnXAfc3+@VO>Fh|P6pnAlZPqDV-MD1@(+=w_$z8d zMwRNbq!w?Vc2m6L9uoC?m{UQb6q0UZMkBu@U`S*$KlMo`&8J$rCxI(P8#z48aKU>T zq|T>2o|3xzF@>JZ8U<$JK3661eUe+e0h zVR#2@FX<1IwItTU`}(Q_a%fHB1z_!qZYjD=@sMI{$p=*HLFtl%%>EBpzp~wg^?$(j z|MdK*tsihDq4AKkwIjABzC#Bx-Y9cLFE7Am+J73q2#~=|Z>)Rpdcug?JeGjQUwfHW zxXNgpf33SB8do-HIkK)3G`W=cTA%1TW8Jor2fa=YHP@IT3Vq8nEG$crPkDNToa@U9 z-!~I4AfOfkX#Rlj6r4(CZWEcKn=OaDGo9|F{WkCRT;NG!$?e(OMdx2uOVeVne`QxX zEq$YO*sdptpFi%^-7$jSX+I+3AOS)lwpcI|EGmCvRJ{Qe;n!h{2!*abiPD@uO(|%Z zAUwzTmN``kw2W7%Nq3&^Tmqf4_ra`e5DCxaf_;o+;f2Ch?nv<+<4@`Hsecm`1;*UV z&==nsE*vp(+kwBN#LdllryV0!`7V8q43)q+Fl_5VD=q@p=f8%nyTFGSl{o219X5>5 zv4+GaE@A%iK<$VMr*5HDobd2ryLCL99o)tjk7UgUzhm(;^^bL$DFL#d?BKqWUqxcf zbmcAo$;cHP)e+T`Rh0|K!nzMJqQ+22?KzSocnF+Eq86XXdl6$Fdm=sZsJE?av7Jmd zP9`I@hm(Yz>OYjAofBnB60ju`Lw5@8eYw*PS1Zs_(D2M8U%Oo9tP;5KjlM^9vg0G4 zQvO!kYXYet&mMXweB65}rE!ZP=6)068j`#i$^TwYjfXEu&HNa@lLUkT)=oHBj*x@6 z__un0;CHS2?<3MrG7{-@+@QfTe@K1Yp@8OpjqAn<8@fGRB!i88d)f>>zoQ;OJqsjULGmb z>pClS!deQngh@mrTU&`#)8ChEm8AxzAlyRCCNfgWL`W~|9^=@jQwjE9?v8@z5jI5B z{=WhN;99G5a`Qq3SUxQvC(z(a7MFp;ncJs`4v+uIj)XGyB8}&&j)UTcg<-C7D%EaM za6XwF@B1}$F$Ic(IB(>2$(UjwfiduxAc6C(IXSs`Ndzn(9-kAg^(DuK1?>7n#y2P4 zd))l$SP(}2e?pj)M|h@a z=8`nNiKc`EjP&1~#&R=%=W1j^q{^2-`to}v=vYuY^4dcbi9X+(QXe_)nXZ6C5EzAV zdumwt2cTgBwB1}}0h=5frVP@VmKUD;-27{E+%sAc2Iob}O}D`AWjzl?)e^5GWV){E zNu2lu={H7Gn=y351Rj(A0@(R166T8Zh=a0E!v~)0p7SCrbrDSc7=V9e3^{ac=l6}P zNW(PZThl=}uoBi+%N-5nT_ySBjH^u4cJp4c3x1veN>fl@I|4Gzxa;LxM-Com@+q@L zZdOy+x_5PO>7#%)ocQDoElL!b{ExdihGr;`n9vSKuTbjo6BPXyoIg4t>Jn4pglb=& z|77nE+n!}gnq>R-uB=+oa6F`LaT>og^RL|B*eydA0+-zBar)hieviAM#+StndXGa) zEMOa15@SJ2L>H|C?i6r^hjfTA2YT2ijMlinTHp)j%I9}1CU>k~__e){O&n?p zf!bRR=_eP0tY9pS+y0|2`~}pCP-hY45s`v}KBvU@yFQFY0HUMCcZ`ZVDJjQ%(KXN9 zP@;f|Kk4Qe3Q)iv)A+-j+LC$HU{G@47mVu50XCI>*3mxj%g53Y#{QI2S-CQ)}zoV)!^1sSY{$Pa3%RQS*_3JeFLpW1i5-MI10LyRFF zm}PL9(>u2%2cAgHN;ag3L=UTBxw&L^>A_qMIiGOq+Zo^I8JMLWwMl-MR!-7AVtGmK zX5JyW?R+of6CiF^tp}43zdNp&n|))F;-ZGWQtgBEj0H}V(ATBBv!>nGetzYMcjmr~Zl#!7 zNkVC0>v#_MfcqR2K8fkBo!n4jg&YXOaj|SEm1vc;G(#6>ja6KywbXWO4O*-%rl+0J z@b4sJ$^4a@Ct3Nfkgdp1*AuyobWzF4z}=i-oh9@UhMrK}OO-FAUMbb@qA%jz0i5=I zz>g!L!o$y?xH~DnELHmOHbBeo2>YRmq1n!AO$t8<906oE>ibXV*eDV`s)CQmBXLp><;qF?b9B1f$WU!O@QqGM4%Jw(!Mq4AZG-#+f2 zOp8y7w+(%xIK;|0agrcsob9RPjgoTer4}w61*Y8${<05gMPJJ^F5V`K&BHP92 zPNdK8Jb&)QC1=4Q>&4lzBvg3%9yGa=9E(m7JD#{(bnYD#M%q!*r}Jau*ioqB4(m7IOSm=H=!I3h^ zOKyL_W%m&(GDD&qnKQ^yydRm(zTD-w&wF<`?Mjx?&vur0sIzl=or|X$jR%$!PRw$$p$b{4GvNjS^Z**-N~a=ZCWZm(-X=6`r%JZBCC}M|!n4jLb>00JzuJhu zdrIlsK`g^&kied~E%6dg26qSIBtDQaW>>a?%juB(M;38;+1LW%p_*VH0A)FB3y936 zbMqgXF!U=&8V}=}&@F?MsPcPk@diU$;n7`QQScqErFLe}tJhKCXedcX!xoY9$MMxz zm2rB+GM)%cvn{rJc4nAjdD@@?Pil%Xt;MNk zFWHFo7jr+=JX}=jC|Djam97)N_maD_5os7E z?-rcKOTZrQa2s`T7Js8E-tUzC@7|_Np!kg>(>t-~Fl^fgzq2U_5`;VP!+c4wkRtpr<2X??hdS-pVz;YNLeuBF-gR>$Glwm? zn5-W~=u#KNK*aPe^T|0%W}YPvTmPV*Esf06Tm+?!MX}UYWO;X2%q$J?2*;IYL>yu) zReSichf2mfnXQUK7Bg#Dbfr|fg<~Oui^}nnY+xpsN!NqRL|OUW!hOJ08I z7G0T^#<8lPR@oo*fuWv~sfssJW}f`Wzrib~R9w4b`oR3#rjH;DbjS znjV8VclFAAcaO5$TDK1;(Bk4}U&Lhf-;uvg1mcpXu++^1$?(e@Iy~zv96+FVx-+5z z5}Hd2j3N<-?aZ(oir3BHBcDkx5Abcx{nJPwcsk~co6G0Jh6Th*!BX%RgL`5}W0iE`ukMB6_nh5cQUgv~x z`x-8}4vOorC=@8hj|qoX=Jp6Uf*{k+;byNtRx(UlQPCD+2pxyl?_r3LKOS`TOCW{> z$GqTC(oZGAywh|~-A*yGI1&CQtyH?q!%tE!DUxTqX9G9%+A*vk zi=$7O{@9RSlVC{6;VWS*OkyrvF~M=EOb;<8zZgqPM$GL6>J^Z=|9upr_T^4JQl-E| zL1Wpy$2A+A5&vXDK5Vz`Xdzd0dL(7*LIlU+@R>I!LZ$r4Sikb`8x$nVk`IKt?LVzT zu2@L$JqEWKM$gD_Tp$>&o4il|gCq7zi5y0AD5Rkw*4V*6e(=qj? zy`uFKlI|5~-A0;dsmD^lbYrtrTr!&+Gr z+jSNFt8j*3QPgx3ClnLoh1Wf3J0@D@4bvpwe=VhfqTX>b@B+Vil1SQkkR#U(=^G|N zVDLBNm=cTHEd-Lb<^rfL9s@a}^iS~UFuC+qa9A;YR#y6A>8pmwDraIa6VOB)DPY~(NDiyWb=7@O?d&5`@9o#7ob=HdyVphA%DlBkLCwU~o5gM)t^)%YmGoGqM~5;hHMUOF?8N@+n1z-bHy zSKq<T<*ze7KRQLCOGcS z<)aO@(B9L#c*ZgC;@zcOjSv`NM=&vyczM2Xr2h(4e+`M=tFFwf)TU{%Wk(7vQE%F} z&fQ1b6c)WBgL$volenco4elP>n1t7J@AL%rN zXu8zh-_iKt{Oh_fJ`Noia8zv@C zVAPT!r`3h+&mTkl3#G4qD+&0r#P5gbdG!2eIJ4jdtH{L{r*7qx0G?5I+*csA59P1? zPi}E>PB2#FSo%IhB+m)~UEh?aog#f~D##*}Hfp7=GrtN5I?@zcbK)UDqM_Z)t_Z{# z@tZ9FQ;P9LqlL5{24DsR_;8{o%x5nRfOK%^qo^ji{)eI$L8e=U+>1%~IF*r9vufF^ znMfh%2qX`uqM59?LWubA0(2*!CrAHU+5esTzYskby%+?TvG;Kg#hn7hQ^xNzY<+Gu zngZS+kISsf&(YakuqO{uVQw3a3`JXcj8}@F?0u*gpeNEckoB}a`v`P~(P;9cd8g5! z+3&@OZ@qkAz_oH`IN`s8a3*cU?g&ZgVq!B07ekBAO<2kG9!GlgyEC|AFW<*XveKXeGiU3 zs<$eOnGPLz<7zp01HC@j>uj0|c7*dUI)NAPq~$Ye(dAduL$BukH*UpALZ<#T96Kj1 z!%LG5ckOwvp{Cc6wwCSkMqrmV2PEme3 z9!?Roow>pPY$a=yEF23Nx7An$lhJ-|R1(PL{5ejH^_}fQXvs^-hG0V?*WE2qkm41# zxo_aM%FQknA8K~e4)zw6OAj68i)r6%y}wWCO?P`w-#kq>Z!7St*!sMp8sYRB1)(Pb zZLe>XXY@+EOO1Tb0>wiSt50S2Mquo9SSD7ooB7G5EqTRhtSa93$g#rBmJ0P}|1jwj zZ-J-Cka#=P^YRbU%||YaqWebdz0|lYA=XsM#c(Ox=d#V1Ch1v=9=~IB>HdEtt7Xvk zIEK<)qwiEx%Ug4A~yzfbvrBW{j?e4OWGsWX zJ}|O?Tx2;@qL5jIP|_UoQ~`c7`EE#5ye%>VPj4}6_pod6&hVIN#E$T_gI4%9{h=U2 zGV?A%dS46MTL=i*A`1wTEGQt;s9su=HvNS!BuG6K&m!WpHb0|Qt>A*0LYcUqi{^asQ$5^OXW6Hr zu1I;YCVa;YtRE4~B5^aZJocA#a-3gA$WM0nU6FieGlz$mTA27&ZZ}}COzBvU#AbV~ z!yEXiNdYd2O0gDOa-UQ|5tCq{GZ#n|td6XZ)81^P+LyQSYJm!4W+R(FdphT~758ow ztz8m)?HcCz&AyElIV_@H>Ai^j2$J`%4?+P4#Z^ITL2^lu4%Hb(6w9&3RqFKtCn%p5 z-wI12u_fOY`F6hCDSuaU83E#{(#b3}@1)pGMK0w)6^HhF&d=?32XBz9!UX>Svp-%E z@CfWaml&*gz2G@0Z29CrPPYhdcu~MxoY{cPyQF~Q&x*^HXDIFKo%bhQzlt+><~B}b zmj|fVgqTZ->of|i2`+DeRy*gl3J~JSX(k~u6$8$*;%d)*pb|3pQFw@KT;;jJ4_Qo` zI|1t%f6Ak45ymrtm%19{Jdx7G+nR|Pi(>*o{rfvpRO_W2Z=G8xEl%N1OclndEr9_x z)hxcB+fUz>EPt>>Dtrt0`hwuOOZq>@`uhE{s&BPX=N?LRlp%=oGDNBny;Rlh4?E90 zlz>(e6H85Q=Rq-d)js{SWZ|6sTqe7dR_#V-@~hk!fix?g+BB2t zTMhEScRmIpe18x=T3*C@=j4yz{qSHGJlI64h$U9YuzoqdJ&ur<90@~oElhY2zX+f# zRqg9h=p3(|AjM5h@^?w{5NWag`=m-(1_^V`U!b92&$We~ieRD6q&o-AHagbCMz(zN za?Win?p`k%VrK9yNxc3Tvty-`TTUVDPsu?)o~`O9h+ zXXb!bk@1WruqxWM6RuTDQe_^DRE08GiK1QSD5p7;!6v3=VG1XF;35h>rI1ejm9ly3 z$}8E7EsVq#f{mEMNT1@UZjBW&MG&9#Qd%zXb^qbFf*k;qNCj`deZQ>gQ%%_ksBwty zJA7Z>kEj)_0PuY=@aqd2lIle%!g$)0c$ZR&;bLG8o0_-^ZlRJdeXp^#2bRJ7D|>}K zo$IE&@wY>mG{g%hyE32*?)#HTWPQ5;fembj2?Ah+SEkT&WQQ@d_a)9uc6;5Fbe5IWR817Cr)sd%MFF zah|H(L~R_I66g2DV;vcex{@K62_dmmz*KzyM)mYAjd!dQUa0Q5B*_B?e;7t{jSDOB zWBtI=1jkzG`{Hfdhp7Z|(_(a|VzX0KC!%>mJG45GI?23;6yz{B5(P^Kj|j{&&Z-HN zU`-Vt*kv2ylpb*?a2~6e^o7q z@GYMEX;JYpNz=Y+f-kDj`87Q(wK~$8>LKj`b&l{%Y-oLTab&&pwG{{Iu76AD{!!LU ztUtz@LG64rD{WBq`PM3|Ki^ti&kn1oqeLoYpKXw`0I*TjJAY1dsc7ZSYz_67C8R&6 zBSpd>L8emLDzzrL%WCI$!5f~Co{|WEHy|_(GQnsyA^+_r{fqj*)F})6S7`mGEVJ^< zY}SIn+ZlJggKj%3#ASvb7Nxwr9Da6L?MckrQVEku3COn*@y&~V%W>bwAuYf}VsXtiS69H5cXDzm{;lqU6ckl|%{MgNGtD}#!>@tmS7|NwjIxFk zuW^NMO~hSWy}}(@%=<$`+sSTGxdpXwj&$h(8V&2m>qF76?L8R6>t5x9f;zBi1v&X? zRu)p!5g}JB`H5JwC*F;mxh-%vsQZ?m+A#k5u(O|8c#cA|L(9d>2ex*xhs5skFN^mp z?p3VJ1brb}V5Kc~j`y-hh_NqF5;?w*p;~XxUk&uomGp(_jJcG%$GM2GvQ!FkRPGmP z@n>5eLW_5%)2${;z#>u*bLcx)_@N z=B0n^Mjo@2Z|_axA#EY0FBtzr0`pq3n#Qv6vPfbX9T?auJIPAxW*sHhQm%o(GbD%Z zc{VTXu3c*!ID?evcofn>qFg&)D6Y#iR?|i&?#&&h5#wD}z5IYz^pMDZsKeW8qxhLthcupO|N{&Uk->9432PDso0|IzL- zC~`1hVqhm3NFwbePkG;heM)QgYk=&sBtUcZeQd`(6y=u4^(I@4WO)o{Mb)=h;|%(2 zvU0~J8o8kNs>r6x7=A@zIZzfdaAZ-a^{d9*v2N(C-^cZHf&j_@C=@0r3z>IhZHN`h zGR*JwddEh!R=+jinR3A!k)M!Eu^2-{42c zv~o?)f<urtgBOqHR%R z)wshoZM-TnC8#?n*k@ht($lDlt}v2Rt%v?^-4TYgl!v5Lz;SMWUl|e=O(ZxN4m!@} zJ_>`@(cHl=|7{gbB6<=FTPb;|qNUfw6f#s|F_OtpJJ0dvbuz~`v`jxB0`a|D&W!tb zo!?H9E-+9GZ8}4_$JjTYjZ?9EE1`IE3z^Ty)(rsY4zFOupldKtlz|HA=nX9O5;s(f zURsyF>rlkmxN)}}_x$Tza$Hgogfu05&i^A=jL%c)PoKLYALo_dX#Y~(@TKO(bc%Es z{0a>zOqnR&!(udsVN4HTB?&*%kG7 z#PkOG*hka<_wN2N&VQaW63apRCoP%5&vjih}l_C*C1XsN5Hp~?}Xa8_~IT7IVS#bW;ju-RC|srO&x^9lEzB74)0nU2t; zw~&HSAtU+$%!UHSo^OT5z2p#M&i2@Y9|!71t{6LoMv+nHCOJwvPux-}o<83QsKTyo zAG(fF)SqIB;@P*2pk0Rw2~Hbm17+6T{Fg^t5P}psRjyJYMDY;o&(}Zi=+;I|NLsZN zOKk}xYnhWy(F<<}Si)5Qook<0Jwp|#!g!W8EoOG?oOge*ojzDZ$+VG zLGX@NwfseP1dziXs#Lhz-_Nku2s-jQZ>jQPIPjLME%b)c8+j>!F-w zr%)BiWZy(<;wKy`yLtAn94LwlX(AbN(DN(NV-``w7&GH^#(5|A@jJt`dMaH|YlY1p zT_IG`kN!S~pU9Pu5VCJWB<&0ah0jwNQbot?&NI&5c!H_I#{2a`IVyzQTy}Vcu2q;v zrVvC91}pRy?Y@mu*zT^NP8R}Z_4|&ZNbTT++s7zsvWq^I7W^Gak>=nhoFVp(%AhIt zQ0p*5y5I1kT~ZZt9J@pJyJi>7#>5z0_Ajf2Oyzi-C($F)Voo`aCHPy(bo3Jl{4~s| ze+Bw)JJDV@!E$JZUO&1u!SOwJl?wxNvf`n$@#mO<@n2$XPeAu3+_9_Za_8_(F8-Go zL$jqlM+E26_YkR{8+*Hmpd^iXmxSt`&#+01_Z6@*rYVMhNCE+pzmWztr)QAk-EZhu zk+CL*e@Hcu;zSB%1d~JJ?alP)Q!^G&T*Cy;pW|lV{=6;3wMes#H(s-$4%zH)khs<8DyGMj^dr+F^^UJ4KQXYq7ixYQ)NpLyCh;c{ z)pFYqjpe*^@7Z4GuW5(%Jeh2ZT|7+lJ-+Dq%AL>k6?VA?yH;sUP=g(;Y^MyHy4)#? zm4ol}B6sV}PzBM-h~R~ZLdb_IoKtw2)SN)N(8iBp#gujgbrdtBxi+CyWRX~$ z#Mc)%#+lr6Yx26{4_EXZ@>GvU?NFMKs#@TImU%WBT&3f_`qe!J{qKe~mio!{&U$Zd zQLGGy4of+yn^fRCkxmgttJbj{kO97Krp3^Wb?wn&hni>}lhB|pE@`)KG|zHUtlf=L zzjoTB(T5)%+sF3*)VE<4FD~%(C!}|0ksD6)()H8r?lbH)9AM9pxmi~~;u!BeW~=lk zxJ81N&0B2tjl#UkH+(Inh{zM%1)c<}HiecKd?#$J?-)w5Z0jvLC}2ml-hGB$89$zu z7hb# z5SK&e%)(IdrWHW^*2j-9R|&TNMv^k&vnv*Bk}MmU?SF566RZ8#vKd0N^-FZI0RS>xG| z)cGN&#<`3<_q6#LD|27qus8H)VK*yoKR#>`?0j*Lg=0azySnl6v^vWJb1zr2dVTW$ z-=&}|Gr=8v>$;lbG)QWknH+Mn#ib|VsBd}2qe2K;v<#<0Mi?^7b^dJ@F*_TX==9JZ zG1NOy)`X30`P`SzEfbP~7|k$Iwk#VV;o~h}W;o_5wTju+O(3zsMjo;1F4%b2=|Nl^ za*zw^PWUxJIgFp%YfZ-!g<%CJc8(Ab-qq}caB-}69K7gVcdoVn5XLH@L4cIE37!w>8ONh=vUlUa!ULfKfV?CUn>1{O zwm+A~*;snZVpZ9h>lJ3RuR2(^>v&PIF3wp7s>IZcCSrp$<}tbcN$=#Rx=0)Q#$<`C z+2^rrt*dg3KHBs_Hjj>tRI0thK1{^lkTcEn>m?ub4gPe!W2B~7pjnT#EIRVdXfK0n zp(uF$00(b$RD>u)ch=ZjdAwxRh5Z1t5{C!EXPzO3H~YkTYbs>4oc^ld(qp`TIf@E$ z`OH~EHY1;2)2^{xSw7iwGoxE#u9SvdO$o^cmOVB`yPF}n>QT3xiE08^&RdLo!Kskl z>j#_BPOFIUda=Y<96fvGDhi2ZB>xk;z*Uz_Nz7Otr|MXzMeWTbV~iEILylaWd@<3^qBs=xu1r z!D1Cdd1Lpt;R;jsih;j^c)MqC>X&vs1>! zf83tBP?a?-Z~j9Z6ZeP@JTA9N zGYlDtB?6j(VqPiH9Yr+!{gyr~(J7Q0&=CPd$0LaQfS$55SEYkjI9aCIl-XdN7FD?# zd-zM*@2-rKju(M(@XrFT?dE^`_Uh$Rh?gE+)k!U?#mT_li0KYFGr*u=uxR=F!)W5$ zjA6OsY=kIg)j1d_Jejif8&-{u-Js;h{hP# zFk5ozw$jSz_YQX6ZOcTN=%TADQPRZ2ZoOKwV%Dv233}^A0$V)xad<34roL9gg2s|h z&tjoMI>mf%@SeGr7GB(NPF*b{ieIgJG!j7x82vKjow7&+mc8Kg*!ygT;8qcx?EK#S zZ5!0i70G9=rLwH)HddvbSOW#@f$hzOKfZYdE4@X^C6^PHvL^w^^)}^cfnWnWGHm?pcTfW^-i9tAz=&D(j!&f=K}|1J_1R)Z zC_T;o+s;_imE|}i;S4L4J8NQULf?{h|I7=OCOL>6TVe6R$fW)ArZ4U|Uz|XxJ>UgZ z)E%IN>I3rz_4acx&B20VufW`QMWVYp2ifGANW@jNj<<3ZE7c;cxAj|-N6bkmsy_hG zez?D|pkZouL_)=iippwso7BqGSv5I4gBBlf+o>emKlf zwC_x}5DHGlnI*?D7NMzef$R%h(ZlP>8w8u+kJt1WUMYz{%~wbbA;lTt9fmfo2=Pr@ z!Psnujv@Y%3Q6NeaXVsKQbF=`K2Y7Wtn6a28|2JpYxSI?poFe+B_K;tXSo8{O zT~?N1OZQ&mzl19-TYk=NimhZ)_CiBt+TFA^TzYn<<|<$3kv}mLExgj;Sk+Zn2^6Nx z=yedXk=}Y!=p#t99#$8&pRP)LnT2=;<$gIq5g7@EFYRO3(*+U z`(vdhuyf}eQTTzYWm^Xi`-q?w1X8Q8Ydqd1G2wyW441zPOiP#17Keh%oH-BGPUCci zxku!Fpuvks@$@}|dq>KTcMP_PA}5_kMlyA*X@QPI`qwj!In5jp3}_)CRvWdqBK{oE zE;W)pV`X;5J1-@9F4c!5Pl+mg##R_fYBVMv8w+T0HFefnpf;$Py#dV(Xoj_p%O^dq zI*~Fxb?o6pO_p9(Ok9*mYDjF%?jS2uVw;bS?^Rt|{+<)6fzq(}+ib!!(W|}A#@M*U zsaFJOMa$Th-|{r-dW#Z_dTz@b2b}&X1jB-y&DbJ;;RPF{NSG2CK&lLg>`w3+Z_7;x zyY+AKzhV!r3tSczelWId=Zzjm1wKFm$xjfA`}Qu zYo^2c#su2Ti?k)ksG3lCjv4dJGPHCUm~|MA{QXTI%fge|G0_?ZpalQyf>QpmciaGmjhR$A?)wUc#3&Rh|P z@e-&RjZ8MF%aTR`&1NR4MWxB@)$Fh(ou9k4t2C)=iGVx#140{*e(MwyJUL8hoCDG3 zP#byE@p`#4kYM0uOgfGem6f}DE5BOVuTbiJ<;NJs4uKD+s`427n*3PkL#wR^rD=YBVQfmn(wrG-dMAx2p+%Yuok2Q@pV$9z9^ zM@tN#B_KG~+MnPyX%syN)N~;d;s3YquQ1{wUO)nO$%Uki6Fq@oB4K0QGr|{0;3e&J zolEt4#Y=L(S^{mXooXsOB^_Ao7F3UpP-(i}3iQV-BVtrOn(lmQkk+eP%6unV0r{=a z-VM}@AQf-mEsy6$d5G*;rx|&zF>*tAXWrvbn`BCN$A9^7!>kgYar$6JBJd z164Qa1j;alF%R~RUADCGebbUD6E1k8iFMXT7<*`!4HI%sm$f`XZ0kcLSXdqX3^skBDFUW7mk|2Dm5|l(o)2n+U@zoV8A$1DIP*h`&~<=GOkZ( zq?~e`%E49BpEUSA@aV+MxcvbaR#RdlzEnF-*;l$~^f5=0F8_CTRavNFlk4@cD=C$ug-pei4pVfe`MH*8q)0k!j@!7)bM$T-l>=MP*siSO_1#FxWpfecH z{GINNtL(MlHh>qJ*RZNJsEdfHqXk6Kw^ric#;2OM^_j&KG&GXD3P@mTRZ8R?w$MH1 zo3)WaixYGS6I10s{Tgf1?xF4}^B64zBq;nFLdoKKiBf7t~XkPh}v=o17&36fTmSNIl_4?nnrtZMr{86-SY_w8X=Bs|YBy)glnE9^b2 zcHNSL;|B-}M@O=R>w@^>dcsMOB}#%seK$pyGj6v1C5%v#&!PuvNsssM!eP27f#Z4( zcnsVi1(rFHyS^SGIPd@B7E4lt6bQGz$WsrmVRD)J=5bQgf058e$hp7mGBwrQQr?im zBt69Oi-f^5I;7j$x1z@{b5}5kXq&>J5_GjwWeQ|Xn}wToL@|3dYjVCthi*wI8bN2N zk{~S8Si3!g1r93Bh|JL9*P=H(4nFb{tdJ=K(HP1Gj;8Bec0$t(Am0r~RLWM>q}xpl z@oW+_zaWm=qv2^Uz$LAv6RwSic8+Ad08mJylZ65=}=wdPHQ(rWlNBGWS)LCo&K z5?XDK;vIZ(wRt=;&`naV7rp~K-wr`P#?TbJ*ZUTY@2fTTLpnFQ<$|K+82CcN;Qtob4| zc@%>nzX|91t*G-OFh^!7(9#RnwYiKGn+lKMg-%Kn*!hl$JiM~?0GxvgW}`k3knMxi@Lpn4ez%`Mu-dTtx`6!K|`hbY?%eSERLR zN_5q>mX;JHC72i1A>i+eFTd}*_2mZe=TCTrxl|ICxzh85n=+Jvv&uF9IbTaTN~5!8 ztVN0vf>QtzIKY6V<9oL9r34hon1$wqYTC?M9Z1L%8EP{_h%eKTXS1`SJUj#e9#Pq@ zM8|!P{@gt}+&tXeLJH@$BP>Sd_PZ4{%B{`-T@q(raZ`d%IL~%1ZfFR9LnIVm)xsT& zz{ZYQgeK+XpS-YI`AHjlL2@DFAC*=&wJd}HCF#`*%}(6v54>NONKg|#NKq>C0D zgYU$#{xG5p9}#|EVP7}9VU#&8KB3@GF6vQd9cnBc5o9#TVt~)xnGFm*UZlcdz3RzW z&)o84F@I;tP-?!?e>b2xLk5c%IgIdr6&NLGSN4MOJ1Ox&Ii+X<_$q@ZhCdG)1xWWn z@a<+U8aGc#GwI)%X|b)Jf^mT(hO;6`(d|}IqKme*w757iA$ZyGC;qYcg1cC{Y8m08 z9XBL+!CAg-eE#(Y;OEZ^r6y%8o8mS)G;b%^IGRIM2ej~};XCT zJvz{1F1YCSVpoRof?4cr0kp+|aF>Ad9u7ssL!SG&Qz*?Aul>jYMp584HAkvIpTvF$ zeZ0h*1pKDIMP2T%gF8d^ecW_hUAxT-0bvRM`VzwQ{XP=``_j+4RpMylylhSo%=#C2 zyisZWh~rBc$+AqVbQ;t)!OORSNH5|CDvke;jk1*oYQca;X$IulW_YfZeOuPm+DCTC zT5>aKZ9|^x?C5cBhag%4T!6M!qyCYqY-sgd6tNZaH~|`c2a2>}532JRiWcjAO?Up# zaB&UEg)}7*o7{kJ-92U=I_F5xDOE7676c2Z1w<`~Y~~&fKIIwQe6N<{=_MtRxfrP3 zeZ(-Zd#%%2ng2mt`3Pl-Z^~4R6zURh^wjN#J8Ft9c{srm2eE%~_5J;;V0!v0_2n(7 z0Oek0QK(DJ8k8%pClv2L(+YgQBusq$_VpDnXOkAZ(kiXd7lBN^onmuCgwYE{9e1}x z9VaU~(=Jy&{mXMkzuvf&7{IeQXZ)U8*=p51R=}H38r=TXbED=3%rNU);jZ`ZY*@7< z$=S1F~$ULA7Lq&G_WA8vWfy#S|cUdsnKY*YU8E<HAYoVz~t0)_Zq7T<1MIv{Nc8eKGyBWIG;Rf1S2*8S|9Il*7OB; zm1GTY@UNI01vFP_n3In|+&TF}k8m$S1o@HDEK z;0rhF=UE>Kj>|VEOdZXAY^OKPpF)LMzd?uKW3T!{N$n(s-RP|+NB9m#97&A+ zUP1W4s%3{WIOF#ut+hYSsfHt9xo~O7N>CDh8y$@}J_Vhto>%J=^BOY*y6iduV&kq=$1PP(vP< z_kvu?79nrwM3rm@X)&*e?EuHzIe&FC z%z9{UV0>8>(cf#vJQQY{lwBT4DdSGPch!Vw`83h+yXd+CYfl*1wj($_T?JHXpH=gxDdQD-f zs-ijs=0ZG_87z&xCuwTcHJ9)`dI15SS@<2U%|Qyg-8W=zA;=lj)9ly5LzG@?Lvj=M zKvndp=O$1JEH0RPcLwuDSrn(?f9T7Jp@i|?2QtF4iug7^&{Q=OLah{d1vLtqQ%X-9 z$IM&wj*L<%$f8uYJx--)d+U6aq4O4_c<#R;Sqq%zU|7m6$vgF>vMM^onEgxq>q!fj)m)-m%W=$6oH1@L*kn zFV(g?b&}EK1*IiVr47(*Dy6s(@lNHZ%D5aubYu-~p-mdh%i=E>Fa=hgFbXksG{3|2 z0HQrS85fg~x7YH3(e)4oxX@lKGkAL=Ir?mRkjWFzR8kX_sKiO0%FWc~S8@*tBEc%L zRi$iHH+r6O>%q+rE`zss6G!iYhPS?0Dv+P!MH=s19XWtt_*&gVYxnS?g8bUtnyPFD zE_NH>SU9_(p`=+L+;2}OuYJmmGZ@^qeddG+3L24!{I>Z5!6!_{C*BLGcSVa={HEIQ zBWI)n9z;3ZCKq)W{}Uk05lZ-}jJSeo!5G`efEVxBIZzg%?!`8k#o?+4ox~Ph%$u*$ z93$qt=)r-3mDSqn{Zzf_+Nsa6)>x0bMJ~K;2A88pm^UGNtmrsGLa*n4+2_!fbp9(Q z1Dg&aly*WPT=HN7h8^Cz3dlLN3v=qK01Ci28&8FxMcbYvTjt4{W0H32F)MVk_u>#l zE%wM2&zrxK(NjQ~uo-|hgBfXQlm$K=GPQv!5DcmlNN)~V(Vg15t#$d|C0!`RBVN;! zp`oX=J2N_~L}n)B|B#$8p+j4*JDHTSQiZH{^^ag@st7d^lfw@nW5}ScV^Y&2OlW~v zXW@lUW7=lTboFpP^!TnwSjyjOuap2fP2+-z2#%`m38&=-}FE0%%Z6?*48WtmHhMIYdlq9L;AkyDJRno za}S@~RXbnNv{XjabMTO;4ismL20`tR6ltF?`<>g^jP*~Nd-&a!bEc39f1#0*b&M)v zz3tA^uC&XCYl}n|tN=YvRsqKSe12cAAG-XyL4k8JGf5yAto+nIwbO1ttxsgp$!|L# zP(12S|M5kXLlP5*F1^4-QRw}&Lky<{C*U`sC;3?HF30B>g7Xl%%^KWzZoV?>MXcp6 zc`_#h-%gO0wj7CyG6lTw$S{?7)`%PEElZf|&HfgU`6g{penjl)QSk$>?7o2(im8j^ zF$42a+k4ov2g`fp%l2OvBh&x*BG31ZqHkNWblTLAf7R>4q+#f;wl?cT?2h5-yMJ&uAuk5|y@PeagGC?n~S1fCa7Xn`1kIc7uzU%d%L@o`gsI zB5d*9QM1DDprc@8^X>TS1$kKo1sdeQb%Ur^;^TX&{zA0F|CSHGj(?@yI1_SPJ+)%b zh06Wz^ly~hEQV91DR#BWx%%Q4__kf|F5LOp_9Izk5Z=9;HAPkSf{?WnW{X>YV6F_9 z5IeidS00+n)msl`Hw3g*LoI|v@N_RyaWuxtaoT;5?t^&F z*uHk@>EzJE$}~E(_660$_w9Jp@}H(Y`3-e76%-S^5ZI^y)C_GCMnP6q<4B%svB@xTnC7=#XAAAy}t6y8oSliCbu zEBPBHfBpDCNrTCcWd2`r-3OfBHBG8N$~c_j$iRB30xJoEcPItq4U;^9Kq6s(e(XT7 z{GR2ORl_tj;7$kZWvH7-lyyENLP~;$vK96>zulPY@RZQm+K(&%T$g?MH0kl=T zy$zqm-X+gw8-VXkq2h6rH&g_Tw*_iq8fMUAfg0a#r!#1#7u14YwTwT3ty#PF)pPZ| z!myduXeZJ$jGa-}x)bBd87P4!tclL$_XWH_?^&+h(qF5x4g!KD1>y~pyy~8KV06mM zqRAtm7RlXa!|T7d25O$3;f>(|JCDg##LHwHLObc;{z@3w423<+i~@zexgc#m*f6q4 z>+`<{*9`@(to~_PR%o6V6X)JwB*nWO<=gI!@Lh=)U29$k%qs7^BV%qIxCJqKbve$y z+CQVfb=$sKT^Sky_|b3%-Zcvx|a$Clw4g#VJyTQ9rLgBM=hwd*6$$&KJjy|`x z;4T6EwZfre`_N5$jdxymrXm_rLfUx6_-P}5Qhbmykm=z0|3NaGgZK^o!ZXZ~zQo?fK#WM+9EkH9 zC3nb(KX7@{<|EsZUbYHt&JlyV>ocm;Nc6RbNP&wV>*}_TuEuzTBPP;}YrE_`g%G^wmN97@Fk#9l@}mfWl9qQ(B-5jduF6E~nI$ zVmv_@&)wUe?lJJRxa-NZCr_ry+?kKSH@+mhNB$$or)(Be(Tg~q_OZkB`lD6eO~czn zNH09YdvYL^^?Q8UdDu`U(CeVl6WS`M@Gh+Ljm(a|2pu`>a>ny^ZET3QiGpdH&tdcD z&9!)^UgG3>>j}IR>-VBe9R^k=nWHftA+`7m?|#8somaEV4TP?pfBRWS{0T;m?k)Yt zjWvU5oKGHv^KWoxBsY8xn+;e$ba;-0&zU5H(fA(bK_zuWG5%2KWp*#&J(8XWRgqHq z-zcS5Qm)oi`R?y4o=Mm;;bsUcrca4upRZr#FP}5}Pqu_{J&by!6g}BkgXVg}&tbZ*gKP$!@gUMfu^DoP-&!4=`#k2|Q-`DbQg^DI8SadJr>6^5{BiREBhJwPI z*B@z2Y`GF=db1x*P0v?G|3B)fYH#sDIg7fJ7z6w-K3VSpcl14wia;s1Q+U_;t$<>s zo6RYG4IKqhOwuEBOe&1|8>t0cYO79PSEJ+W5ZTn9Hx-d|$ZRR;!PW*L?RaZuY|%?k zDARfB+9-LUuQ56cbn0ID!5BD3k{=_A=AgcXg?=$V%6IeY^he^YKM}Ri1rMzb2^)_b zOA#U1hLQUJ$B8u}YBxRdE?+P(E8~~{>j*E-+A#n7#%uR8EclJ(oNyTXw! z;u^D<*O8ZF61$129W07%vS3<{m13uEniLurx@NNfq#ZK;I;`J~zQ{6Hx0@LY9-}So z(sm!Lsrq)`n!7OLWG~eqc0Fxg$~DK~xbm!;$u+ogY?n7jwv)Ar1>I+{RyM6{!1^1^ z;d?hy#W&}I);q(x?Az(@gZd*IS>q)J6IH%3ov4V5);L%bH^5`=)>{X?{Sgl!+W!gA zho@2~m3C9@!hC`YuxIc$qo>VUt@dyWt)j0>7YZ;nXlQdyKEal+`!4PA!Fcd(z^_=C zl%1V`K4LLW=q5G*{4&Rx0N?Mptl5ge$Zf&dRJaop!LK|fc7@Avl{=Rfb*nr`u(LX| zdhp8!@*sca6VHkd!10Q6iO0U;_0|eu*XkfF7*;a}QTHo_!S1C*N#A{JSo@P<5h;uB z9ApPk+#h@|?krV`H9pUf{feVv?G}J`mmf0y^()NZS{l%K2zHx5)j;I@`GlO9L#0Tu zX!+~GxlUp|R7m7ih!hwH2swK23GH=@WuEr2mSf&Ymm!lE8^@vEQ<-137|4o=IF^V$ zaVTPqp}95w)V+Q-hO}xE`E4$%nb}{M?Gbwi<#g%4QHjQlS zcJz5vQ}*9UpSP`x>9T}2&(n|LN|90OP)k}}la38+2%)%O%8sKLW&-dqFs^t%Qf$~vAe72|WZzr>s%a_N-E+5{zGV$kUHS_aL zXTHe~@X41l=ucwbzyImw-ck>AJ@t++M}057DVVt>hFElaoVouL>{7QhxBW{mc)2H$ zz551asnvZXiWE_nK%=OISx;^L=rzJSEifcUUVzstQh2Km{e28L3DlL~b!$!>o}~EP zKjE;a+9{_S>se4nTy69#i=D;WgiC>X4GMCA+GGGfA=$~>}$*8 z0_n_I-RC|Ye5CpKC@O{GETjoR;d63j`w;fBb#HZIUDLOO$j5zteC6-^mo6RzT+l|s zyD0qQjmV(ym7Q++^BeMB_YECb+aA02PhEg~>X%24uH3(T;er*%2#v!sO;34qRP~D} zkFOOwEkN_LEVx~efqkR#v?glVl)!s6;5=@`u-tKoB#w<(=;dAdGNhRvs7NYW=N&oG z%{O*|d!5xSJf+k+-In1ofx9ei+>H#+gz_D3>FNnDfZ%FC3jiBNzy^OnTP=WfT!oFj z&St#OD!JeVA}2i^QQH(&t3FB!Fu}?>c^mc+O_TvC|vy=0)5$b-x%8nW@2uSJCJn3rYw-}XEF zk)?;j`dP*#{araYgI(4?Q+L2&n$Vk9#1oqQ@T8WoNN!El=??}U@Gp5B2W!LN##M%S zn`%{Cac(k?4o(i{I_i|hNxOqt8~sA#^oH=HH9k8;`zQy{=Q3$iIgdDx=s1OQBPTW_{q}dmMQG)Jd%VjG zh`00F1~4-y0ZhM=KT2amcwZEn_!o9Q*PP>}5h-t5|HKj z6rW&~_K3`+{GsrO{fJ)Zs*u$6{4|oEA^ekT+WX{bThBt8mt@08ScK0WAL27n?jNC% z%;1AEnq{1E)Be1uQ=We5_fXVB&fxOk(2l2g$b3ZquF$iZ8kHQyi;*!D$K+}son)R) z;4;^*YZ+>&@9o+Bx9BgxiObe}PcM*!hUh|qHC~NDM8eRNF6Ypcl!!EYMtNm+whVqn zwbRCx7ViW0hF9z7w>`&mhv42t8>ja!Hk=Fg(C81SH_N|QC zwzKXJf7dwqzuRNf0BhhqYpsX9!geMiHR6md+ui13i)fu^n-_F=ASTjp35T9^Rg6Zt zx$hjt<2h{_asA-jRC?SsIA=7B;zboC6z)-HShvOXvb9z;Tpl4+LZy+Z>_@d13&X;r0o9nR-~^pMBKiA4sVLD z5QU}%JKG2{n?G;pzh@N?PwkAiqtJrAUr|D&h`TnN1kqVV*Um#daLkMvsL`!_fG|8c z!V0~v@YL}k%lSZ(^fc08_G?kpc*n|z!cu~{f_?H>^m(pBtTkyYj)5IMDQ+@R$QO%`lf_OVO=AVdFi8z|TwtLG6L!c~+;I!_^u!G=QvrAL2*t|} zBr$hjeVvh^dT}h{tT4xmZZw%+RAB>$%fR3F>wVt*V)|Jtw_8`rqsNKEOk5?XU`w$M z%adnP$29v(gev0^`W!zd?>C-LAV&0b1AWqhx~BHL69f%8%!Bqv(~gZn$Wke9-9ef| zG9bKWH%*xZ^@}ga2NwL2>(p|cS`@HgDYYC(Gm@(6*W&+O3(S*qU6Dokx#&(L!-9b3 zXitxv>e1YhdIvnkVPLw=x>#zWau`@AcTZ#MDmz9}E^uRV1t*;2@kJ*Ue(OhY0qM|c z&Q!Vao_dV5q-J;h@NOv3vjnJxQbMg+fl;Or0{Gq;QRR7|yNu{ac~S7dmIVcSTQ!=N zLH%x?iLz4y##s};L;WZcF|S)#d=u6e<2WW}=_c7xRlp&^V#RjCIXE%!jUVUg3)zmT zg5=_b2+%1*Gb{(fxBBE7SYrn#WGUkuf|OLjITcpYeq#JZ=RfYU6M3QC~Zcx~z~ z@l*$UF{jEr&ojf8N*)j*kMqXh%H)K4!QMjW^PuPTI!vnvw#0_@jdOaw4|o*}>f|VZ zBmktC`=s?Ez%(5LPBDg5fe6KtOfWiR-NOAWmU4#I2 zGV_HE9J7KR7v|?t|LhX$C*F?xLEtaO3>7^$$Hz;8;bQIc^c#6Q@`&KDvm6mSz_`>~ z9q36$tJT>(k4M^z`jXh7d`-ec$sM)^dv;x@wGLXFvDUotF zUte|+5OK**AONYFmPyQ$C?3z`!aIOjvq9Km;d|r^;a1 z24nRjH)V>&HZhjnq_-A$;S8K~w*&#?fCNdTFiT$BgO1S??=y>qCptFPr=LFH4|d<@ z_y1qqT;PEOX~8jb+VDLHX;M64hhaP!xP6nLNYFPaRF#0|a~v-b-V;8VIqA#3$tTj& zIP8Y7$l}%w1z+OURUlnXvU8&d99!Z?58%v4nNskkg#)UV2d%Q(BiQl$gosBIlY zc9FpFZL0N@7XU=zT-^2>^g*)y#Ex5e3ZNpmQM~#Wo(B=E_&`iJvP41tEs>}jz#tcR zvBaF53y}m@u(XU2r9J1NT!YJq2tkcf5zn@a5T`lt253(rbqBN+nsh>dE5L>&NhT0g z?~wfo7I`m70FucK1xp5~azVa?u4EDePokjtEO1I!_#;=TBj`PK1f9|qei<)hdRHku z6{Cg)X>(-m&o*jml+@X4=3fCq>g2|;Brv_JM_8l|w>iUtS*yg_G2Dc0Hapv1EN+Tz z*;%c&@~s7TWne)PS=;F{7r@2(V_NSea+r zk}gA=FX>AyP!6 ze%g9T>#2$+3956W{Tq`U#)N6=A&tn|SnAN1@x;=F&dqyo0vIg4 zeu7U}%kk7OA|(O~D+qzq#b6kW=^{L&5fV0sS&`}48NkpW!}Nv;)^5{0#ZFlUYh{bg zckG>IvMDvJ#x>8g^IH>2LXt!1+=l^=MgwB38ySX<@yKW)G~b-_W%qVaC`8-@i*vTj zoKB_?os+7ZtrTF6L_}f?2_jl-OvkFE>o#kia)opoyZXZ9G}5S7M~{3|*kU8AQsu3O z$}MG8!S2lN;fg8w%bblZmc2*9Uq%U}5YzqHukaT(yKpCGn=Pp-Kt~;QLr)c(Dm)?; z?cYd?&WeIF#h!x3$#s?x=X`nLzVP{Yo_HgbS{5=tsjrDiPPO8P%#^sm%TJnTE`9m* z=WT61vV`T%`_6XnH=MHO7i>sNclir#@>rHe_;j}zJBf&vz=$)fjo*(D&f21gAAi(o zGuQjnBrxD=#8o0%iFDsdc8~Oh`{~ns zA4I)Vz4d9{S(?=<*Xo!(rz_3(Tjra!%zH(a_pzvv? z_JLN(CgLYPAOfonbb6>74}XC*P$uY`B2w*|l}?!EruFQ;2>4hE$JKi%t~e zl=7&YxcIv6+LHNk+oiuV`a<0$kMjjHC5rmy0Kt$cK26nTy?JXZMxwGZ$}?KWMasW> zR2)vPXo4d%ToI{REch9pc3?vMD3GmWD+`D=o+)pQd_M6+rNzk+%#dZIy6dG`pZ8eQ>?u1VfYT=-H!rw^*SWPKx zLMVL}N|_rt`}|qKOYB2gsP$Zdyb%d3LqB3F#r^sE1mub}*f>Ypj)P*(xM?kp0N-CCY8e#CtJL|J#9VwaBZga=k8yS{#6RJ`jq?6pV&F?*rh*g@!?#V;$hrH zx-vNEk#aHxPN;GSKVk&}XmB;KILg6f1Rba=Y7Il$#I9av6)x)-FGr$ID4fzyc?Igh z-WmMkNj2{#&T!NoHy<_d`$F_=U7b~sCXN-|Rfr^)kJf^H@1z}UA`BPvra^o>4zX=D=ML4l*2cd{|4k?a%V^yAydjt=?D|@5O`?=yruc#0%D~ z7reAu#R-q~uVl4nhzu2EDi9XsP~BG5Dja4XcS2c-&8I@iEuYhnFs^iTvd9pkd$SQ3 zz9lCw-FOsT`N;5nOYxkswv%J@z;`iksUJIvrGts@;lF~H^QsHqu|h^V{jA6Y2Hd%%O*BtrB-i4*n(c9?*EsJd78Q znfGqsB{!|_xI(4C#iYODvu!xON!}2~N0Gv$dz=HwQ7$f|SW%=Zcu$B&q%e-?;(F`g zgbRbfchj($2f%!h5byr+cgtU~m7N~dNDcB1T6+hxLv-zysgZ8jaDhH`D+Bx`MO8?` zWKeMD&M~o6Bxs^Z7jNuvzpl6jX1nmjqRFWplW%6->Bjm`o6F|CmzeC$d~>1joPDbt zCmeZTJJw4$O%O-j_p@tR!4nW)%@il-F_)$f7oOV*(%52$$7OCOcrG)ffrY3qg`ZP) zIbbFrKgyhOeJ*{jFcVG{AN=dmFZs+#_v)Ns(5EY)viJo%fA~zShmof#7}iBZL#DVD8(u~q2y(q77!W*eI~riCTiX_Ka>(WZ%#tF zdwB;XaxW34M2gb*0oGQdbu<;*N6J@l`Ju2X^(RQp0a8A|B#TdZ>c>q(4q$aKAvVXq!AOjbgWru`_%mj`c^!=9zSD-VPLN(%=~r}^agTfx)0E{;tiyf z8zDHB4C}uQnntl3j1s_*%3jHMApZwKFaX1zARNe0BVu1wf30wpDXtJ`41ows0T^-> z{Sf($kTDBFRst?H*Vy~jx!%HD2tSUrS6o6Fa5(-JN|Le^T(y{I?06Cl!*+lr)0dpQ z8yOq!>&=()5yv1DSF$MW9)4pM`Wj{s{BTBAU;kfB|qq=p>HD zg;R;36F3?ekAI-(q2Jb@>~|pdr=YNW`&X z*t|pl&^Qb{zlj^QAHo0Mn(p9j7=zc6Pz1+38xLMajZK68D{rhl#pDZ@u7Appres^R z*r#v=;Q)kX3o0XBX#6efN@;*9EdvXF#hVDcL((dXpLqlR5`J&t(V4 zN6se|*&aO`c^zX{+lG5O5AqI8+!7d4@H;D^e5ITl4Rhc+*AJTtDj3!TbW$6gU(YDg zfRjf2n|xc9ju}lTpb?h-)NKyQPu!1!2eacENZkztgLC+)=wuPHVF=p3qLSlU#FD<< zo^X50?%#lK1C3aB$(L?w?QsRbrhTDmE&b0|XH2|>e8=8byVk?`NnF&@%eC@3Uc8In z&d}Y8C>Rdfe_IQ7#ej~1f!dOA*~GGE_1H}-KYYUA~?r@NR6VVn;U zll*QP1#AAz5|elvZuQOTxQ2zK;N9(WogXr-x+bC9Zo{y2l+lUTE^`#ez1;o%y61vL z0zeyNZ~30%e$%~a7kPBiy~TiCUchiboxUj?pcAqy*}obDx!&;SQ!3W60;Kp6--v8g zc#1cRz46NPdKbM8N@;8?%fF_|;D(Yx%f5T{5>~*ZY}0g*dH=n-RQHyigq$r;rf1+H z&}4<1Z!qtQqe$U)A9+Jt@#qL8vwuLrZf-YwL;EqTfcDC8E-Df-pS{pQW1?8o5@O{c&t)3Frs^W6)$Pu0_Lpn1tO$QMv3Zizo3+1BQ!4iRe-&K|LzyH)_CTx-FJt9YLak2_+>=0Tg&j~TIvCFHVSFwJKN$m7>#m2;S^7FC$;)V#pj*$FNh`LZSf=F!=a*KW~ zjkC0Sa$<7uqKAee$C_;IOA^cRnJtpj$4`!JzjUES*gMQox)@Z830pJ`|DY%MzjRC; z_ea2zTAXL2IUj- zlT_NPjl}IIB;XI>)4$n+S3L~0=NvjGBk?Evvr;3USCKelaHB&l!Fb%l2^9zNL#PqX zXxeW0gZ)-EEACW&`$KmpgaB;=m|=@Zdovaml!&$WjM+Rf6MY9Pte-t8`=QwQo@2uT z3jVb2EG~U@CHUA$DfoyRdIcKHGQ}V$8Y0~A!4vDEdHEAyHMq(ICl*$Hu|3oE>H1w% z>Gei@@iaP?s!ZU8{yuD!2T6h?Ca1XWjlsl|`iWK+1*^RHXt&=sf zmc36v&8s&;X6>szV+Tsq-3Cs%z(>V{x z*HVe+Z;=DR5u$lRu#riw(=Jw1BhWveXF>c-$FaEj zy|V&`T=jkSJ8~uf6@SMFim(iqaA@l-i6lJbCJp?7+coiZme}_-)_jY0Ajo&Yl{As~ ztQj#E>c~Sdy>RK{^lu{eWclmwaPXSzq^8TqrV9D{flWBD4xWY+;D~-LMo@U;{EbDL zuJF!%aG{kul78y?s;zc!rrw#ps;!^fHdaJoo=!3ds$e0|-3k8$3Jq{neE=lW?rC9hhxV}cH&RZ8_!P7VyyDgznLYTyv8-k} zaxR66YbUOUh9{*!YQEI=#{1W}ZC01WJ9Z?%w~BMeC2jS(*t%wwtL~^(-gSBTqu`Yh z?%cJi9xfpGrBrG8v3cpqsK(F>l=@bEc6GoFcDz1K*MB4fG$*6sycy81anj zUS(AsBa`%HkU%`Yvif5^b+5b(;tqRP_`c01_Xcz`jiqGKOlrFF5&d2J(MXVbz)4%| zvWoB)M{DIU2>BYyI66DhubNalzbbGoYwa3oe;U}B4mPG?{cBij>m0;QBU}`YmN60Y zPtgvP}Gqg_YV`G=(ymI9}Tgamc8-)N?6Q zFS_?eE7;lNoVVnlPpTp;VXiD>n^Qo{G`U|)!lsqM5%<$Wx32L{a?Ffsi*4M~YZhA4 z?-?1DG=B$>cIWw-v*zveOq83Wr#J8h2E9q1m*QE|=UhHn=D9Y3+TD)^uoGp2xpV{>eD95_y_f zbhNYqL4s~^#S*XqUc#t9PIPGmrG=x+%i{h-p7V+k2#plnw|XkSS{{>#Rx*Jte<*|? z4jl#C(a1MAa99;u%fS#-yyo%3y*8a23)W}}0>WJ$9;`b+E-=P>RJ8t$6cL--choal z=}E3gCcnyMIz&hPyqt+L9=m;BnZNoWYYJ>x)B=gY`1|F2*ZTk=zpS_cNJvo~_2*%L z(k2p6eD}j9A;yWFP>7Dne3^`JwX5B`3HgN+Jt<7)s|eV*Msps9>9@NX`Gmq_H&F30 z&21>s)%MiY!2_yZ&>j_8>N=J$1`ZheK-1_{Ifd*u)3tb=p}PJtqaix-#f3B^8B>TH zMaF@1Qi!f1;3{koqGD2E_DZV{z(Bg@p(lF8Yj>(XA1IDfLnGL0iWVt#JyC@QktknPUZRrxceLa7vfvf0Yis+rhzn zMW`TYr+D9dLG(b^nndPViP^pPi`!YJ?E^ve!xVh?WZS^O>+IjS;!O*MHh0Vi0}NSV zUB69p{-nrBYc(U*>jOcsD_662J+?QmF>e)f+(B1QOAn9~4~t;le9-*7jJ!EWX>m+N zeFZokC><)eWmS2;lc%ar$(kgbCydD&?}T3(m8a`+JCT40O-Q0O1k`?Wn4FVru1an7 z^qHw{hYaq4F7PUA^GPe*6qzUKNMqEICZl*-7sii-!dRhczS}#vMJg75-W81!tqp_Q zN9I$ZfMS*==H*8`#Pa*@yCIzY^|2N2tFNiDRdea=XY=m_$5@4Z_Ci^Ogl50I_Y0!SDz8Nd+}Ig=-?9fFh^5`kQj# zg7Au155Sk;j}JUtLLU=z-EtLK>eq%*RX6IAg=kc7*u_} zQtcj`DSv@i@Np1D*zNuxh!J6w)9qFg;;#|#SvF|Epusb+f4_%=3r<5ZKaZn;$DGES z1iRuWK$rDn?4XMp3hDK+LM3j=OTy>N5l=B;U;ax1<#-e_HHk#BJf1q?c!jtZH2MAT z5);mAO^)5r;A>(Hl;NE>47&z(<#91ufJ4C$n+6;Z=o$zlcxhtnS}Yfww@Fli zr~Wd6#Y3jW0Pp=_3uo<+BgDu0onAi;4?`u@jz~BiI8>!Z85Yu$9iDwip}S~@K(Yvv zS($5Q*Bo!Py$Rv=1H**kPTIj@BlvXn4;Wc=j%|L}QHSHQ*I0TWI<5m;iesJpm+s@D zM#qCVilNg&ZlO7iSBH~V75_$nE7n5rAX(miym8kw*!hAVF!-cktscNSy4?a{|$%;Txb>_4!%0UA{Pe-IVw#>p*ZN0`535a%Q8M z99lPS`+k$A3mgGO0|V`bz$;fy0qj-;ejf~vkE{cf8_Fb7pWh(hgyTL4o7-2ph-|LJ zngWAi)>W?|HY#$QRo@fh|GWgdYdQ90jVPr&bJz1H&{VXa(#bempLQuzf6qrbW161Y zx;rG>H6nGN#rs3v<`E9?5&Zs?_7+;O6hqtJnd3|76W!avI_tHZa{Z~H7Qv1i7$G}m zuEnI+(0UPj7X-p7ngW3(W#<$|lg+0W|Zq7L7rA-+wIqs+mEcm+_a*cc>!Lec!4Gr1%v zLKHDBk9%@Q^Oh>m+7JcMU~(M*iBAEYfIrb52u0C#$KuxFeM^p4Gwhf1TE}HrCY2d?Fd!TfC-s zKC3lwopg%AA%Z(6#0gg#>g2lS)Q{FhC~A$;B(7Pw`UsoC)n~O+1=|^X8y}6D$Vc(r zA7a^T*E%WcJ8XJtD;pHVI@fv+=27b3nIZuTl$hQ znh?{Gh}j3EJb$p2!UX1Z{Fh@tv?OAQ^U?4U1oTZ2|Fbe&KSXyg-WPa)cW(;ycLY zAeSxLfMu}iB?p3gDYKn{N8NVS?J?%`!cWJa5@`U{`)s%ZMNyQKSDx0CzVNi+PL_R4 za1l0P{O?^6+Ra^E7vE779=EaeO-kiFDT2>eVPL9p z_VBvyu}v{{cJCPsGw+Ty(Dy!$rcp2olKYFT$*Jz!amewfZZcMAIo255)my2&ny5DG zf97%g)YcjNAo5|AQJ7Cw#?pMZ-_ZR)X9dL`Ys#?-^J<(q+;DH*^yJ>B%iBrlT8~R8 zY$;AC_@xzF&{7g#_+Fx}I{FL865;^P1X|2{lpr=f1RZ#%wTYh#72wWkeXgwzIC)l# z0$Xhgq+#-1Z2$ABbWCz3M_1baBP*XUNRbT3sLV zGf6{U;BiMepG@ib@l>7%Dc^egZw$Q%Ws&eVm}l*O^Bok5s5kdVmJ|^Da!yV)I?rsQ zMVJRlC?&%Pk@LGI)5Efj-x#u{IC>7p0RAUgYI`5M;av?I>TE{gno z2-d$khs|DQ|2pi`NThGR>7&Zd+7wC6%sFqI5X`)82T8AszY;otlpNB!f3x$l?h}N|v8@3RGud?Y`G_2Z` z;YWgBYFprZAgQb;&X)IZFygHiR3OVs$hlOEnFTmf8tl({|N z7HE@m==QAsPyOqBFJArp3hcxT2KO-K`Oe4@68+^zy_o)=wHuu^g9!az`;?L}Wa~8F z?zoefX@4AH(0a7bPaqt0%%dXf-yE#L@(0|iacuABkl}`%Q|^1V*#LI8mhtgcI{t9?;$rOT-2vbE~+;Q#1!+2Xi~v0+5XoQ$f*-ZjV9HFi{0oWhfs zm-QI&kHw2S1K`;2d<_4)`@#BuyIZeDcIbd=M zp?IdND=tWUR{U#O08Ua1e7^93=@u6 z7~MjAgtanz;)S1XtyrTU`Epxklua4nu0)2K0ZLTXGLE)Tpe7;3)Y8y_IAGT2)-Wbu z36U&PmRPHHlYx5?HKS`F;+AyJ-XY$G8<-ts_iP@T^jg6$oj+nY2Tjaz{E%aJChRwF29VO(q-A26JNa zi5k3GbUuj4aA?Jqj`Q>?c;PE;F@XWUHs-8|Gf9O~DkQ+}r0}*y; z)iQQ9y=(OeZ&P&jsC4rZ<3L$E($cNrDf7!V&gUDdsZOo@Nr-k5vT&1XyMQ3IRq-lU zqusB=n|$OQ`d!rm3Xjn{TTwZ?7o%id`Tn`zdVX*@e_=WPhS5Aw@Ni&^e&Q%4`74UH zOhZL-cydN~aGNxN!Hp_(Yz7jXnY*8vY*u*~${}J8z*J{C~WPDfUL+~SyZF2r4)Y&3CqB%Q$kA7h8 zmwBDINH(`h;7O?pcS|Zj(k7bPoGrOSdM5hG@nU9wA+gj2B5{wS>|~SRs|n@prr$y{ z^w-KtSrS=r8x=k3LwaFBh_tdg$v;mhjh?dk^ z3;|*R0(L{uQ99kC&^tk->BPv5J5ijNhHW9@-$yvn0HeKb0@_Kixyd}y;6&o9U|%S= zTR-%ZVDlUf#vn=oT%@mL zomtOKIJ?==P48rF`51DK_iLiGu3OMmW~RRUK=j5maH)lux6pz3}7=stgbTI*wUK{6H_`tuh8=!W9893-tzB)BImjkjpzHwIPSJ#E7%el6V1{mrr(M6TNNb zbd+#*ZDQNn9y1)Uw3jfPcj=4U z5@ESh#>IQQhncmK+X(ZNp|KcqepHMb^Art)`I2&LjfDwQu!d=jUIs`Qb`hC-kf?j632kk^v;%j1&{L29$sB~=tFh{vpnSy_zhC{$3*Vu= z;uP*)mV+0ch`9xzJVyv%aOCuug@Z`RtrFL`O*GPSqTFaaY2ujs&?X5w@A8d+m1`kn z<8K)v?dbn^@vY-@D)XvGs%zX#y3C@rTl(!{JD+Q;1vaHUJ3Q-~AR1{5W#TwkVZTvg z)((K%@W+`}=Kufx7|;;yihc=`IO&b~@Fs}}Z$`PR2R($2e6+NE zmo0k6$iVkWl|sUWX9tQCw+vf`mfikbG&q0coW!l1w2B?TKhG5@O{-MkPQa$-avDd1 zFwi&Rdm&W@irX6H)pfMR_egS=E^L~3a?G$w$#%uC=yAk=5s4XBTzBN=7@!ec$Z3lj zd6k2n1X&=a0)#3iit6RPD`e=%49X z-R)aTb(E$TPiS!i?7X;^LTT39rEC<}pxxlwXALN79(n}Ur-v20AGxol7X7Hs)CGG+ zT|=feA&#g;=L=!WSmW9o^WH$X@n!TuV5lH`<=yeFzx4DlW4sx8@A`X;^OH>m-btbw zh8TI_K`s%&gYs`LDz{u$!5MdOew;56k;xh;OH1b?hpvE&Jt*aM4>c4r3J1K6=0MKO z*qhx_YUx!mz_V#9?v6LZWm_yF3nDAPx%G=>txStbZ0CX%5ed=WdF)zW58z+Ii+O^G zqmSoE)#|SG_`7Ym(P#)_8J$|HQ2rH|_Ls0>&9iC=#?N^8X!gUALBE>0JHcg>5&HUq zxPyFtl&-to1W+sJC*PHT7b!V9z%Ey~ktU_`rB5*k$(P9U)biUPXb%qq!C}Co-f&nNl_E>Fe8=T zWt+Clu2Nl;jRd;BJrj8kJ`Fa9hrMQ5F0ZEp2d z5M3?4ml9_ZqpX2aF)7IXQ(GX5!dkJU(&6{bxtmpGQ&*=x??N|HL}w0jXdT8^%s4yL z6Bz;P%t5Ab5Zdu6SHd|@rO$ebwTgo%_N8o;5GAUgY%%OrKB7gKamm8yhvCAe+e-U) zC@6|&;K90pW9GREpU?mV_c}Ma3M=aeYbNG!Su4Cj$NCCxb4KMt9WN4dyFMm4UZT-0 zu`!&jTdD1OPb;?68rhyms_h1wJY-!aUO>z0Bi8yS=Sx1OOrf-u0TW@kh~|5L@VY{s zTzwbur{etH^0a272c&4-o-wglt=&15$-(gQ>$49+v=rBe@tW%y>n|NQb20Kd3prHm zjQ0VjE{_@ZArPp*hk%=c83piH#iD^?+uZ@5x?NWKI=OjlV9#q`*Hwv9XUvE!$?nZA z$pY~H!C85!#G3Lv1f+h?pflaQ(#64#9@07PEKr26UmQY2q9dk`rsidpqDV0M!oEkqql;_1-|(VWb|>zNR0NKT_$C568dv$0xT2~bY1!7w>V_?y7q_np zl$%DSm2!^A{IFuS(49G`j#&aF^tx)^4xu^p+#UH7uz4vkYV=t(paB{x=~9WCE**|< z!SA7oAw;uNm(-7BmC1-UVT60&q9C_$el*e9bs$Q@`9|%Evw&I%;qTid?cc;ZoHPo4V)tq>`cG_nEe`FX*kp@ZTfB~pws)KU7juv&A2=)l z)UJfP0wO>)2Z;yaRKq!2awbDsTJyRsMxlEVh$?rOuqHN%K|;$}xRam5k0>iAbPGji zdq5=zy+ofiD(w?ppJT4Tg_&svL$?k>YLr~a+MnN4MbMO?45G|joea2E9$#$X z?gH+w_e5S{h&CL7yAo~TG*(Lysr8< zur7{Fa_1(&|E@An+Ao4WUTLoE_&RN5!!7VRYrl*PPSZ~~hY7^>Ry33+pBsJO(9V4R z2fXX0cU}z_;6<`P7?4w5!>)YIkO!kly?L?7}Lp#A*nlg|B!Y0S#fpnoX`8geMp(6WoIDQ#)+AxH#|_MmXjo&bAAs88>Eb- z2eo7xc_FxHtzw1uu5|@0bLPE_?QF7#H=`|E=0wMbJJx#n(&Fl})o@xv243yW!JMSj zaE<=yWh?0`=!p|VEv{Hxqb6u_*CqZRohjoOGre-&rUD5 zWe(2#Gkx}Pd`z8o{y98-YE6#Y3ruT@J>8Oe?VsLB#c^gg$67d;bwxKM?+f9DYGy=< zZ8X8S8WZy)a{(;7xpvw97h`Yd3 zF^fU5^t5F9aloj@(RWKaNBvN*=1)YTb0{N93`fO9j6vVdRQCWzz5iB6Tw5r0L!@Y_d93^+)#(?6DY&>x}XjyUWrkLiv@M;YqMEBIo3mZ$WF1opSh$}QQYd56@1AzMHZBZEltF>q)t?j`V)FGD)}CLgJm?RfYzK4!HAIGI^{EB z*1Y4rRa^nusi2Y${(X-z3m;`0``+>$d;ch*N3-!p1wmBMJxgNN_|_!()y%6A?Lz=6 zv6QT+r%4$KXz9($GO98S(88$70*W#fUWoq5hJx{a`w%Y5e8j0K$Fz$*{id98qQ&?` zP+40+(W|}ol)VK3zUzF$H3PiybJAn+`S^CVtTr(}z;DPe1fT}vdzom&*r+Km z>Ie0?FSpx=T;RMYsA_zRUYH2c?yu$fa$oPYJ^2{GMRH&5<*>-+bjYG{j>uK3@#Lms zLd7&Leshzn#&}Z=T&uVKM{?IzcvH-}rTSz?5nk}!Sn%SHgXnprYAIj9SQH_t2v2PR znFixsOcwgw;Djnxs+OlsKuavf8}lqi7-Cl^ybFT=t+^~>JKue0ybb@0*>S3|Ov}IC z`PQMzl@IQ4+x9}t9vEya9cjtnV(qlJ1PH3Ta8lmbAQbd96o53JptOXBT8mqAAgwD3 zvVsCe5+ni&a|78J_-&1i%`GhmJOlvZ1T1#$e5kNBCJo(i4R@<*b58+pbn~i{TyShS zo$q?r4O5JV;)^aBeYRfFIayhK5hcAOaGUeOh)?jo!*drgK{0XE7*C?}`~N7lsD@S` zxc|P9_mWf5XAc6`poheBz&n59ghQVWOfXA5DD0^F1F2m=x3w;Tu|%ES-1>jNCX3mo znzlKFfJroMAL`W4(zmb|sTZF>s#@>d4t`A68@ATpN{Dg*R zp+>LVt)d2+T(*Ds@4*li&{ERWDon3h_cRtvMlypZizq&*0M*P*nJM>?(qtsjU~`F9 z5VPfqfWC8wFYxl?3k!-GAkWL}1&X<`zy}-kqk@bS-2+gz5n~$^AP~kYiKD@%OWE%6Dx&-fB+QrMe2-Bz4&@1(rfyLrVMh=iW70AU(Rr$8w5^?PVRqCdOg7`Yb zao&p215-VFZl_I1@;HWTT{pgYu^=q1g&nJ_)ZInpR55H)K@X10?!KMsnFOh>nLlXY z8y}z01siN?EW}Kd`(NX=^YZ=T5=t`YY-ayvg6?(bCwECq*ZNd&IiCFCQ8Nd9X+t?l zb@HKxZCr#YLG{ki1)vkIytaX5qdVoJ8pb928ev@$LRBsoRG_RdtE%Sy#wJtew#1$~ zIBrb#Z~>>#j2A!{T_zUq2Gb8GS;MaZO43umm~&{p8rjdk-Smky=#A5=3ySfrd;UKW zC!uZw+NjzSDoey}&Lh|EM%*5{NMjTCi5`8G{tw}mqC~IPFN7Txp$*%(Fa;XM@T4ZS zoeh)L3{=sBlV9|^$Vf5Mu~s8%`tvd%(C06N&-Wsha+=ntior9pK;?ALB+#6N6i?cm zhdzSojUDBj2Qi2YbsN)V-r+XT2XV8YXN_uld^$egV4KrtTEJ&qB2pRDfUmSGlWS@x{ zit{ z7lyMxa}8GGJrP*;aeNCY0lr(g=T;<%nvmdAq9Ny`RnxR|_1sIm6DsDBhX?eg&g~lH zrZ!UWbX=u}b0P(&cEzAvq&=si=A3NPJq~>n71z#}I&?D{xvJZp$W6p52dkId5Uy$j zSG68jPAs>$o;8RT$T=owP%1du((@Onr@ahJ_V**C{~k!SS>*c6MtyP?|IqmL7rI5R zvpv#TSv9hSb>p@90h2wg zUD6Q>HwJ|l*nVBZ?Z_9{Wb4n@ONrbJ3vR0nIgw420K#1tj+f=E4aS*SetU zORen4SFt7~xL%!u7~&9tEw!9qli=x9TQ+X#7u1XfZyRWgk+!<^T({#&BOo{v1N06{ zBJbbUCE8VrBtH1ZvYGY_Nnhu0<(bPPYz!6H@9WXGqzG5>#1KQ8ih#&3$ z#ZfE40$XlE_U$ZCt!4!G5lg<}T;A8{U!T1Cdx%41?Yt1{{eS#Oafl(F>_sE7DwU-9 z^}Rni#CJqgx@$u;of0<7i5q3GK$v>JPhzTs*YGApRAN1hLj<2mpNk693~3c@ zx;a&Ph)QS7Ha+UF+P7GEBFjg#V^>3jNFknI3LqXS8oTG~GMr0K0uuO3E!guk;M6P` zs<&Ly;;14(9tA2;P{HPrITqyaV-%HCxWBBHx!pcqNIzpTSx$uD<_AmS!4NNF)VfN) zR?QMKP<8QtBbV~)p1mMeGqm^x=f)*~G3waQ^O9(uM4q3tTP~Fo-3%z(Zta?(D($CY z8J>N-z3kvP&Zzsiir3p+^nNQ+&r+b|Y;KF*lJ0?W^k6wr3BFNTXZ)1nxQ9muk7%V} z#DfdwO(>o4Uy&8Xt;;#G@`w_F$Wh?Go|u1_X(YXKpc)Fn-{9O?KRtB7mC7bMToI;w z(^y9>tCycSEn(o_EeJ}PIxuN+07Zz1;j3PL`anl7pWL^;+WQ9-1Ib2Lr)A$W?+>Rk za}W9Vf1U6@RtJWm0VLxmUdd97^=Eq$0b64C<1`UMY$Zh{eScEh)wxY*Z2j0!Mp>zm z8vc!%vymG)siozx>Mt2VP*9irz}OqK4Coj&bsR<6f7;U6gXRO?wcF7=nKfrXD~|qq z%4{m2p)m%vdb^ox8E4ku)xIizWu|EhN?bZ+PBx27u7LtDvxHT)CB`Jie0cxzo9|GT z9Y#FRDt@-qD{3$p005LVfKHSi)tT=&v^3bkK(QBU>|5*r1MmjM|& zOR+8PDscX4%+_gj-et?r1?W8T%b1{^U!*D{7_Y4rDja1s(?-s_=8WEuO%;i2wXsPAjA5unsM^;%9Fks zQSZ#3_eH0XGCftEnNz+Y-f!tsq2Ro86ZB7vdxP`w0HT+0&&FtW3)^lhRW~;_`p)B< z=iqc+L;_dgt~Y$}4n>NW)#8`bM(aT5R-J8f|FcqcAm2Yms9jh%!7Hn6RyGyR}YY0tz`_#H7 zgzt}N_-iX@Et1<@rV$iLThT9G7IY*qS67D@_s)~uB6OON|B~ip=}fIzGj?G z;yS)-Ow2OeLJfJ_HHEEH2H|VYnCw0V!#F~5MIse1$1l`5I%@AQ9z}HJQ`*Kaik{j? zC`P^OH6pt0pFm}|9aL7H{JZ%vSx#-)l(tcY#PjX{8B_WG(D zj4KpHq$cL2wyQ32$-zc@!xN^9jNifhw6IgintHSm$Vm`tKrMuRQ}`i#IbHHyYCCQJ zjF|TkwQ)U;ew4Iq3y$mjuuOXtQpeJoXxLb`W?N$2A%tCEJQ{lf|Cri%MsD~d!NP8< z8I$}#iT+XC?jwfGG5qrP;>l$I1D^?DHLR16iR-88HD6W@%uaFdRMKkzjj`vj#v-#u zau|J2*g&Hn#$K;A9}6h8qV($AV=X=lE+{t5?o?_SsI4GPlr%|snaO44?$nl7xX3T? zOh+3Ji;9p85jn#b&qZyYg=|h7?_EvDx2rFu)2j)2d5t|hP1^E#yYF@A8t5?p;Om@Z zM>evrqcOp>V2(0g6SN@lR{BN9;G#hflyhD3WZ+Xda3u+Np0eh~tCJkqYRlh0{xzVv z#5EuJZ;EGRI!qf~5;BJhlS`psawd}8RN_-`i#`@LP_&{_xM-of=|OGx;nKxBKNQi> z>l=uu402eyXcdFokOkHTOwJ+IcBv6~`{^bhJ{#}0xepq_nSJ>wQ)W}9&yI!A`GtFU zW;l73Rb$iAQ-_n6&P_~ks5oYI+gZBvSm>}hL`TjE$7wS}qr+2&kqF9Jik9J0WCrb) ziO4$>lm2SMD?xryUc0j@2?(I-J~A*pxi1OSrN|M;EX1#2E?rdOU$=0q+|T_dm*Q&it0fOM3=oOR zTzybVch!Z#nvGx&$;*C)NmS}9En9!&>k~FEfYehkKXu-mx~i9WCce)fe`<*@ojZu% z!r3xo@__ewlt$-qWlcCD)DmX*Yx46M_8HM{lPc@}eCZZ)+d?8WUsvq&#om4W>3w($ zms~*j?wf$S2-5jqjWGgW{ z5fO7zF!GV|PV0}Z%$epQKHA#tyM1=ziKvGh_7**eeEMCry;S|!)O9SvtMWN^<#Ky` zXrDPVQUBdm?5cv0JNNA&P&*W%Z^N8hB}Qg2wwQsRicy$|6OzE+DgE0}F+|wcLZ$Wu z6f&gXoD)ojzA0j&ExDKigbTpw3s9J!1=+&Uo^S+|nAtZ14N~Ve$DR8s0m1~OC#)kM zk8#m`<0NTQ+t;3A3h!ItpJ;dHaiRFP#?H9*;cdtm0_Bx};5vf&!*U>XvB^6zMo{>0 zw2of;dr$HBw@(K0oNM9e60sB>x?%leHsqW%6|zy+=ID=DSVfJ~N+=wJd9Gdvnxv-0 za_l3t%3P?+7>FSer)$D=(%DQPko60qity;HFX)MFV3n{*Ubne>Cxs$NlP95!k_#uZ zML&nMzhPK(>fVzlA_*=c%2xk^B+QC4Puj4GWu5~DfqcR;wr&MD7}=2+3)?n&=w!a4+g#f=sRXc$9z&K;tJC$Z(c3B%wS%8L>QBZLaNCs2BO?Dy`U3kZ5G=t&bLCzKez;GnRU zT~bL#kx*kO^Q>YTkeZtYG8focr@&|{94L#XT+l26lA+QHnS+CijHRn1La0053N<=u z(KR&!Pc$3pc-nGA>w+$3g#*a_)E>Z+L|WkkGel-2^y-F9g64?^gBH#>-U%=%bcTd1 zImp2ruQZ!U93f+8Ymw?Wd3iIl2k54A)ZxJg-yZr`P5dV$LF}d`PN+`tK4R~>lb7;h ztsk|^Sdeo(0!wK*3;>>#eCZkjK8bu}J{{OVU!^5xa=lg_BX>!6tGs5U0UKkd>l5|7 z_o9+?+Yi(OVe+BmA>OS2lLUj)EkWx?kOv~El z7D@}BBX5yt(ov$-a9OhdcFLM?RPyS~GNNAGDLyWIO~cY3U~g}qW=>7jr@s!Du9v6f zIJfA-lB(*dli1QrAU#sOkkTzM6ZLYMbe|S0b3^im7U>J-OXFNEr$*Y_*CFCMX*ca+ zwzv7I^)b;~r=F`PXe%WZK4<^#?D~wH-6a+EGv}{#_NN^_b>Q5M>i_;8 z`$uLtsdfWh8w+;l)ztU)#p&WV>HYWc##ddvdtlFcd3oLL#MG*@=}~Xae}l#ll3u6Z z%)Nx|YkuC`p%as&vLRqBAf5UdZDX0{&vyxz^5Y}SDoRv1mm-!^yxWF)T{cSWq z$jFkzFlu-b!}zfLZ8l~w${4tn(-+$?e?Vu4v78mIcP|A03;1otOGmc$1y7Oow*j&^>kC>>!lP9|+mS2ib$wbYxxTh~*HnM#-ls%=%weMcSt*(TIhpq{}XoSo}leLD8-TbHLGl+x8Ano&5SQ zJ|pu@DJ;3nZ=BE<$(XS<6S1Gb{GIzZCZqKV8PwJu2_UJ5Zm2o$clf?K|= z|A*@g27;15!sd_tMziK$o4vIoI@L^KVUpx@c$ipMkXR6M7e%$cy0`}e=v;*h!EZs{i`#(4|j1hsaB30mMfNI!q=+sFHTvT>@L!-ytnoWAENwCa(J<*3P)#hcH zwGH{Uas-v<1&P)W%RF7vDnM5p`6ja#nCt;@u!v5e!=L>()}KQ3PdH%_2u50&Q$-|W zJ2|1NjIc_yt==-^$3?^r!XF`1f)66wnemKDYeyOeDQ~B)rraEF#FR(NKMPOSE9h13 z?H-QN98&d1$ql>Ra=yN;iDvKf&up*1wP?$$P49rP2xNMrSnpABbNm|zyPAMzAyNNL zXUi+(^Bu^uZ=X*WgwxlJeDUwixv-hWS-T#6CXP>sW?QF&{$J0yRB!Ee8yBPGrgqq! zXT-afWcv{AjigDUuj478`4e~>RoD8Lb&)jK(cb+h7(wdoBuIE@kf9>)ED0{J3Y12w z2kpIJS?k_+m&6U{ZFjLn^Upj#!O8pTS~&e&$><~*t)FH>w!RHDio+CQKTul+&-&Xf z93>AEOhzmhVhG~Q;zE|-`9RQHMJ(iw+omb|DgtK;=M67&tj<%zv3H+%$nteI z*JX+AiAGnje)qT^WvJu7Z1;a6B?Fq^0i0jPeOR{{Nu50+>gxhEO>>mXMQ8H8XL=3g*m@rOih~wYrQNs8Wh(VU> zN#YoxILm-Yu(U%!e#k($K!9jOj62KS_LyS|0l0+$3)6nJ$Rh^a{a|>xdl8u@a!9N| zq~^f+DPm-l%F+m`$iJsnwnS(pZazmPYMd(@IK+?rF%Td8`1mAZu(UAKw3v5Dq4Xux z=KBNlr(p^sk$w9~V_v%7S%BE=Gw<}sdl}*Rl8g-Mi+vK_eI|dh@Q$xT%dzy;CYXr@9X^tiNvz_aX-uAtql-6cYlJ zB+K!s3#E>*eU}o?(=5^`(|$S`45Esglq!7yMY8!VV?=2} zhJ*5~l%Fn?N{>jTHjxuc=ZZ)*Iz+1N=(7YG@J}Q0tsHRT3cOl-WS6^wxGoI;pukRl6fF_jD>N>j<)RdF23HySl zum7B;d)<#a&!K8S_YZ{&WGKXH)^`dypYeK-AyZyU;K8XLfhTbvQaWVt-icADXIRSf*zfC?95q9 zUxc9&=ZEuto>@cwJ*+mL&xce&rmFJbbxF>;uGxlC4psmipr%2c)27=TLsL1d!b zRxkR?eBvX*6@Q|qv9h*Ln{6YQ*aJ(jAw5wI0_>{3SkZfWUa$IEStBd+<*r&P| zgsUN=%Qro>?pk5JN?$WKS*B5*6SYknw5@zrtZQK`FEsto>_hgxm#;qp1IyZ07jh~P ziV$h$Z+2x*hM3^40PQPFjmN$+igkt1yuirSc{}b=z3O?*BNImS;cv7CNU|(D>&9Qr zHo>X6?>h*N6oH8t_SMO?l)ttL z?1qMckjDzjkmn(gBLXGZV#RDhKrq+jG6m~RLR2{Oyj}YdzIVNPQFyq>*aPVu8m+R|om>T7ECsp&N5VmUC|n;1=)<^ID2^O<4+ zi!?b0&cvU??Dw78pXz_7ig0+(718BU{l1{cU4bY?Ez#4m81f~k=*t-8`cBo* zp-YhDn|w){q{Im~-8cH;H{^WoGEO){;YRC1RQ+HHEygBECKuxMAtaN1FG8+kgGaM2 zJ+rR7>mc>yAuMB|?|Ydv5bLa`+Tm?xS2aW_Fa=T+i<+{yNjPb;JHGt_!ah%*-+e!Z ze&HX0^i_YGBNJ*6kIt$1O=KhV+uI~pO0n`M9mFvFoT}&`Fxg^={MQUtBMuIZgWbcB zMmuNACLe+R`i0Updw#)_(<5AvxQlBp)tZ-&rDF$@eCDH{4PlvT#RZ8IKCbRPI0nUMvqT;$c?b-thwo8A_d_#51PlU9krbO^ zDPf6q^wZZZ&tFZBdE&2Qtr2nGkQ@7H;z5!$Nr@le?e7=`tNP3mcwrYUMTe0G(OIj@ zK~9FUW&av0<6~Q`>%f(Y2yl6Nma6%`4abQRIx*=CVk8_P!}u)vug>~7iH}=h&faW6Y~;5R`>NvBz zP{6Ap4zpbPie2M>Z zdf+Hg2H<5gRx}e__r}hZHHFazKe~y7We?dNjHq19IMuIeT-v)x0ig~PjF@ys5Q2iD-=v$q4gQlcg8ehv|!Qo=zqrE$2i&6TZ@-2A7~>K z_WO`}E3t}8?~P}+jA)4S!;oNdghy$N$7zBmX-dl?h8~6-pjUtd!|uz6bAsr6*rP&0 z@nLuAvyP2FH=3aMx==s?XtBBaCZ21_!?zJpZ`^HLeE zJjM`uLL$}u8~Su@vZ+nL-4Z}2ruT&OrIN_&im2;WIcqX=gq~Gem@j$Jc3Ms=XceuY zwX{yHkFe4hHj`ekZTaYF@g_D^qfB3*Pp2lKu1_rzW`|7;bqmz0vx2Ko%!ufS<9y{Z zaDcNX)`|g{UU_hC-g-ww|3J8v)1vJ|^9lt!zm!9~aM29K#+jZ|)b<^0^~etiSr{>% zIc!S)Vj8nz`3+N3dRs%2EbE$iC$Ah>VL35bj_Is$iM<3JGHfib(bwj=9~RNJ+|-sz zlx0i{Q=WJXScx)o=NCDV3z?H6`6{0}?dYg(XCal021dC%t+CBKGBjR;nZDL8AGeWd zi%u}4ZGh~Zb*7r1-+dbTzen!Up^|D3uJh{IH0)u9H1*GJ*tax9sidr%V-@S>h95kz z5`Vo>YpAR3Ap;Q2P-7iGDszSjc1}CvyMzA3US7JNfZR8=ycN=r(;x#)xV_hw%M&Hy7O4_#< zeRV%nG|eSz$FVV&^qK-59|jd89m*>Lzfyh~qEUn7SfeRrrSD#UP!^n%+}vUfB_fBBhE)EMpdy*6Ofe+Ygy$wvCJ;rYi5jV&ARUAmKhxLkljX$ONs ztDHg70BrT2F!YyRUNtVrw6^j4+~9T?aTPfm5wQCLEc>Vsd?eMIXen zIEhxr@klwURwns;!crx+<@C0Zixr=fIDwTIAG?(_7-3`=cSItk;yA(Q=4CJv6jZF9 z?j`Jy{%9bBlu>Op=4Ilf#{nDIB{E5)nFjhM)86ZGzzx*Om+6i`AXO9~uFN+4aa>76 zbIde#Kw&Esk(dyI@H=qyNE#`R86}Hrhd+&LUi>MpdlNUNB|eQC9%IVdjUs5%-8Tl4 zm^JTN8qzfT%;%u`oiB&jv)9NsA3aajCc0^~LTL6$kC9k0s7)0bxf>sej-QD2DkfyY z>}6;f^82P1J4OMeYBoOXXSHavC>kc>A|~P@CgP$C6;V+p-NcYOK$Uq#j!?&*H$%o5 zb70JYF$cyR7zdSt8Mk&EP#I6RRj+6`3iRSZTMUcR}Kjf!*JV+kIlngc+;o<7Thy2ZKQLa(}3SD;H|H zf7CF|Bc=1~-z_9TSi3W2!i-h$7Xw_AHhQ@>YT(L+TCSZMoU2?bCCb6Tz`(%3U>Tb% zuOp?i0lLy@2wmNL-dDbOMuxa;kT&t81_$UA~9C`%!K=F@+q*W!9Rmf+#~(~a&} zd&99L8H?-lAh982Q(L}Eg52Sf@MoRg01Kd*Q_q*DY?%&hMFetkJUY!AL4C6zo`>V% zAPE8!hegPvTdt~xW$k7aBvR3wQf)SXGuRRtH0t9w()KG9_UfkoxV+QSRVPhD&NI)v z@WLytzap7Y;LfKb+Q+V3?MTzDD|?reQw}~~*!l9T-sC&r zpuhI}$23f_h1JNko?hgSQ?(L*akiv;F_AyjLDP|e^Q_I&VU)@aWZ)h2kE8p;g)(Z2 zljD4nMjH{xHFJaYy+}&*AmG4(m%5+Qe>Y%AmMhR8;N;y5vfb{G@`zZ}H8ot~6~ApQ zay5*EJoO92jN{d24FXojBf67Ie+1%&9XPz!plo$^z~Pz3c06E=OrV}&o%mk{q5XD6G=RdvWJJ1A)j8{i91QUd5US-A2Ey$ zr6K=cA~&POw1JZNl!`(?ldVp6%4I2bf7%0kXpb%;RTe`JVTqPz>6T%cmNk?b;`?Yg^Lrr6!9=iaWQ%X*BYPBD~X z7j|P0_F^CQ+rZBIBm6WiJ>cKy5?lGsma=7RIa|S2vQ=y~TZ3!6Wwzw$H+1KE9&iJ0 z#7(#vx8PP}+qT`GV2-#SGV)kY%$<2MFXqjBm@o5V{ut1D#_)lkMM00@2|TV~g(y^E z3Ri?86}6ma(GE#F%dWD!>?wQ8zOug@CYE*}ran&NAEVQyDn0}XZ4NMlVj)l73O zwA4y#ZM4-+dmVJtNoQS}Yg%agA2=lGup^E-<~S2Glr={tol^2CGY}AeqYEJ-D&_@; ziBcu0HCkC`>R4}PZeh=0-_j*3m#tl~an*rCqa)f0UgYQSX{S=V?6${V`|KYF9=>iS zd)DJo(0l$zRVIKUrgb{?Vqu4Fg|NSLXXO?!2OqlVqc6hrk~nKeturoAr_gzCS?iQK zL7|g`57c_;oP{TkXLm>SuRLey1iwgqNfz5+c7OTXKmN7%9mn7NyH&dQ8&wH^eMOwT z{%B^ujqg0AjjY)Tf*=TjuqG&NWDSxeNs=VFxw*Nyxw*-*EX%U2R;#Cj*yHnm?KGc( zkV>01>-mF_N}Dw-8iZ8ZtYK6TQfae>aY0C>%^D^JA(b|37zjctZJw>%-_t;lXK5pA zcB-mcKtx1DRaI4uF~%5Ut+m!#=bUrSdGEd7!@bk$7Wn)bA(b|3){6!ql{RY_8-!Ha ztYK0RQfae>nL$XU%^H>tLMm<6uyPPmX|sm4gOExa`nZ}sp|^Dw+d+Us2{0MvnnDev zV2vOjvtT8}oS210#~!3%(}H>aA1(!o0JzQ_onBubzkswhw)0e*CUTiXQwQVD0@|q= z8l9z{_F^n@ZiaPp$G+oWLD4R| z<)yu^Aa|5NhL_^~s8emsA?%jW}r7_-j+lom8Z0%WRs znFSUh@8gap+wkb>>new!)Rk($E~Wf2WdEX2f;)&dQSyeFXE%}h0U+H3tCznAwdDYx zf#^TI+~asd{w>Q^LD=D+za290PssT?26lTr+Hs*7&ZVb-0Ap{cM=raeFhflxzX`?ufMlX8Fd-{ zhA5Qh{jj9YfxfOL4;(<=2h#lq3ngYcjoj%K+fgjsAq!eTekB6KDx7uwMgbeRo`<@! zz7e`^jF{2&;S=jh!hXKnFzJ|mgck6O%lDuJ+{ZVzcER?jdbrQr@TJy3rTdtnd?Uhr z$qh{*x8Oi65$;QG0Mr^P8qp(d7+JrzBkQTYK*xux;l1n$^t8s48{-)#$t40lQiN~) zs0U$W{ko2n4|_prU=$dPZQ@HHrKQMjw8GXeN076J7}Gp~p#OLOSgFfdEIuGqxo;QG4zED#`}(_K_w@?1<}`_V8Ch-R9Bhmqbi2gpkb82-6(;o3^~BKIz*9>jYN?!8of4u zNoP_arb2nUt4kkVz+JJi_b@j>MdUoRvd>D8Q`uKrD974G+uMzB>5c7?Td{fjYFwm{ zBC4mXk;@SemQ_4dv%o95SA(+nmC5n5m!7h-*F1dNj$D%=rBdND zP9JfM#@=48hvEKyl3Tur33I)FWwJlP(lI66D$1$`o`$zyb5tu3SE zeoxs;U$<^+XR7;$)9YF3clP4y<#)>~wei-{NMCPm$-@HjV)ej$BF6A)9@*HKcunk`P2_3yChyJi)&vSWGz=6g zb8qC4{X(t6y&LnalsjV9O|hXj%&MU=rb~V03m$Tc#qQqV>4^>}N+)A()|PRIGqg!P z-L9$UiWRHZW`o^!TzR%_=UoYc=eNM=*oTiDjVSB)vgTc zTHR=NozNByAfWg=SM75v;#+0oPW%OmcF@>F9OYk|d!Nw4pKiP^E>86Hw`P=|_3Wdg zeo^e?4oK4&NRz~gPHOb9f4e2>{CBqB#BgnfY~7uNH~VQu63Wdm|K^{MP@YI{Jmm}} zXjQV1T_5CBWW18C9w4~I3Mn(n*upgXWW64~;0y4D{xp5E8!wNI{05uyeogI^|Adf-d0)_+gPck5SQp*Op0ydiM%!*15otfH>H5;ROM&?Pw z%*I#?lJRbtfFx=awHGBq(w?oDJ8~qg!Y5yM@e2n%Y+*k_5X40CJjV-s#1C>aFthv<+H()Tpe=kg4PS7!1lP zq%!woUyy^Io6Yg&V{=RlSKP?%;tY}%rf@2m7WM4k-;-#GNFp~QZUdPvt06b0-)--y z?{wE0PC7gTZz{(Kr3QD69%4!*QKE->eLK0rPo3IHC(K=o4@+A{Yu}U6)L534)}0~5 zT|R{q5ddO&?aU3h)$T)xk}7(aNDm8-JfiP1y`_?#eI+|ByZRP{UM3#07-UU~G4a~d z;m_>Uojnl)F(0dUORpNG_||pB=e+4+cmPM~<6$jU*+WQa7C9?k6{1kXk+9yx=~K1Y z<)Q(Vd9S5lE!mC6zG9bCtqu)HJk_Oi{$B-l*S__DT~%lu@yv&4Wjj$NNPs1AlTxwV zT2D5b+^w4Uc@M(Ljh2DcNKb;KL`>5r&7T}{+on3aB_q+CK}MoE!x$Twg(H@-So`f@ zh~BF0e|IDeuW@>Ki=yku@wxD_$2OV@LjascVyRSDId2L-18H%BS=su{k?^EtNWv42 zDDtWvJiWj^<#h+-TCv0RwjE9U!>8ur_1yqTU^Q}effQnzPSXl!Yvx{fWvX<9)&U4c ziWCUINSrR@c8K^X?N)h^AKC7P11n>s7eTPI~=8G-js+@~0;sj@Q8((hnw? z*#eV^a64_SzMV4&3ES?0|8Qz^w{MM1WJ|*QNQBLqK9y-SNXaeD-Sh*KL<%~;c{SXp zIUyYv$+rn9H+I?`R4KeoPI*I0&FJE&T5)oP8c21mx=0zYcx{!T)e;a;A}v&{|Ux>2MWef=z^+~&4t5Jud`ezvRYL+&;MYmwgDjwE52Hj%_wg}5s|JPkEU zszpbL0&1&;-fB=yysB~cNQ)I-YBk)->kZ+zL2kVfK+ljqZdBrR3F&t6G;cT8Z%?Ot zx_>vl(u?|aX=k?P-`q33^Q94u3toSu)V*0AfJIJ+gdCt9jbY$z<8RqYJ8O-S$9ZMl zOE*KhZVMLfl-ic@wOZY9QMca48r?COkjRmffyw%~L>!%EySIYv zSqgK%xtn-pv`|}88pYnPim9tAvp`%;7_s-9t_(} z1+MDFs;)Z_qr0r>Y1(9Z_?z(q2Lnphv7Hyzp1WE=`r)Q+`lWNGK+QS|9UfAfDW;fG zEntc$Vf`vPV}KW!(ZV_a1Q1M3(;!d&cK*P@0Is75KoJC(ig#}+vdkT=w%z0(I1DIR zN1?_;M#p;AvtG4;^`sXbXMv6UR&%3dl{QSi@Wy`CjT_BINiU^e6pvbGA@>%T6nZPR zTBtB@c+_>0=>Y(z2zohVfNOw76y}Au3IGVEr|Bfq6952i)`{+nMW7H^U5*DJwH(zo zXZqT#SL)dR9-bL_SJ{GJj>joC`rOx^cw3n)I^yrqw+L#B`k(mRk{k4X4q9Y* zog*K33R$&P{|1oqp~no9_W&DavfdJZ=Q}omhw&XN5A0`qrW1@!?X2_5O}^q>4W@{S zH%s$P;)sacmsaFpr^+cFO~eX57rpDw@{+x_&$8t8ZOufyH=BcY6H4aHTk!?CFZJG9 znSnA*el%qJF*d>>Jc4$%VZ|qU%}5t&PsoM5NYmjQ+)zUcgnKHN4(#n-$62PLi+2T&Jk?Z~xPNRmH=iQGGAi8~yIBtxInB7gNlN9KP%e zAN8b1EGhQa9Q(3#eTAAb_vK{r`>jknxno4sL5-y=wbdZ+aJo~>nNdNRk z7qa=YP{3y{j{hXli$EA)B!xqm&`y=ucP<&0b9jjY#7XHKWjX)ShbcUoEQqG%7ad3}K4iJwz{>_~y) zMcB_@Lr6nTzJ2pF`Sd5O zJ#_Q3@pJ3!f!@!CE+5t#A%`X%YOT(c94IbLCq>26-W*>G&q^ape4QqgB!KCRr(SC; z8_kO4>e%gocKYbqM9Y;;N=#WN7u5Fj)Z}e6gv%) z8aCV$ILfS>8(^X0J;-HWMzp+C7fahL;S>ARYsXfm=scK|uh2CkQfLyei9C5LzrwX5 zCQ$>5KFrzw7)3*RdF%;&Je{tm;avknH@7ydqs=q~%C25hzELL)F0VcQa(G6p3EA72TTSw<)dNyU& z^)o)uA@JJJqQL&;RcIa9X@IEEC;FDm`76Ta9h4RjXMkt{1dGx3rhO&1Kz5|4Q=U6#=cw z#T4*gn=HjFJ+eN1pQGL*h*aG3A!9k4qBJMQ!`NoU`ST5FpCW^Dg_Qvhj^GW@Uq+ z7q$VT9ab^(wRT8xkWlgR*O)p4@z^=ly+${?yWM*32D&xnTBG*oE;r3OVxRRN-{|d# z!HQ~LboVC4c$ea0k)kk)e=9>bNQNG#W1?77M(7LZRixsYxxYO)oosDZ5gjHU)NO#J zC@DaFUPUx`kPifKbaFmt6-hW*kx#?hZ_Uo_iNp4)kp7zH%ehfM7l9)gJhK2FH zz_;C@Br%>0qjQJ>aH;A1zWm*v?6Ufvz1p)#&s>X*FCOK;+4xi*RHt!OCX8{1PQ znTRmyQ^P>H_8@IdAT#U{;IcQ_%~G%)Gvu^xf^v&;59BsY2{?cGH5ks%Mb=n)xjKm| zfQT^wng|3p02q{uQm#y|13ntlj#I+Ev?q8F)JX`$shZPHNF;U@5Ssu3^kz?QltsLa zoNp7x5Wo-mSgv%1z=p|WQ39g&<2=JUg zV`@>TixaQUWLkZy9>t*pQeD?3qOqD_`W!JCHOF9dn;`-LGi^;E343;Isr+hxI!;4Dvjp4g zf(?4Y3F;dGBt_HQD2NmeK(0+rWp+FPNaKuh@8WD&lpB+nvM7Ze+-S}@BBPE`U|wv7 z%$Oizt>aFt)GcRCUFC^wtuubDkFSbVQ&we`ft!5RDRc7W6pb&&iGI1`-!eB98!V}< zt-oPv#w6;VFGlKwIt}MX6=93udpn*bcc_d`VPj&h15X<1SrW7%3I`ZFW`Hov;BH!J z%c(EM61MmJYvv4nLi>JWl&jOL1U^!o2#VJfoN6Z7SToZEGHs{~sNyAq;NXivYG(;B zQKma_h%rWT;_gQHp5eZ&ra>xUb343@FH(5d3^qrQdvmDRMh{Mzrm z>2Fd#4cOL;dpnBE?lilnh!CAQv7Hqgq3=pXiYBGTn`t_zU{ECwKY|4*|J=$I&+c8$ zeQSbSzM^N$&IW;>%N;?0vP`bo*he{+uiaNkDY|%56~WU0QYENro_>Fb{?&NVfH`44 z?ezltQnhmD=ewt|RdA=n!m!VbaOmz07WKlsp-JFRfFzqt><$jih0(T&8lZ!xkeSA{ zPLXYBAX>D(F9HID?g9WNfF}kwN?y=X%k}A3_U!z3{PoGn`A}Ya0?PR$({Jxi z--)+)hh~BAfHcsPFnRFXxnvI}W`_z0I>YCnlY(s2a$l1qZ3{UcaoRpruWICA|L=kc zD0QfW<;6VF_r-guO4SW&SeC1vd$V4aT*mbkB1mcE)MQ)Yv3~7KxlCU^c>g^A(77kN zMIHtiq@kXc77ByuF@T#*wAU;RjLod>O|w>h&|e-|t7)imeaoia`7V}+2q^3y%ryHu z0RqefrEHq1qY}!%%@<{P5{ct8WCbMH`|pmIkVPdm2SI^zve=$t_Hv>()aIum_7U+) zPciG%Et#)Rn$L^!+7ghzc>m*c@NM|5H=jn{v~{sW@j*O=agC9Y*#e~b?dsI?u=ZR9 z6c1TkA$E0m`wYoN*YSnxPSSN$ni2+8a!D`JEVF(Mi~jP>7+HQAkt8fxTIuR&*Y$h2 zt;>W%*0lo4*Woa@%^Lw%ld~4)#3#qB{;&&%Ns_7Vg%9N~Ruki$@VDw|VFTPMvRMl?Wh z2XkERTem{-;QfU9ct(InjybfAn%199pq)9%^np6FDAC7P%y#I0qR+*1o~4QJR`9O; z8X+s{3_73*Y2E|RWS*fhG^FiI(vaSt)N1v0X8N#~fu

t;i9M5)RC?I4!7{Rtq-Jc{?5&UlXxt{xuhJbQ2ulUsu-X?vyy2}J2=Ci1tiyP6xz0Pdi8$f=p znXh=jm!YE5|v9IeNhjESsf(~^MjItRBD1!a-9lp2P*4^`q$4)+tE=gdb#mYnV zl`Omhwf4Gb;wA=%IRLO00Ic}w+vQ?DmB;(Z(!XG+>}t$pUWMH%(g@_RgF&!#V7yM$8!?zdf5{ z5`~bpFH=gLIJI_Go1QrW!o3@KE6)G-BC5kWyW#p^!7jUd8p%pomn$$vvxwov5A^x~ zavTJT-@*)g0A9$E$Wp=j6Ts0OrQd85x9qB^12>1cda9pjHsVB+W)bFkreBCut!A+y zT4JivtpgI;w)3K~Kg3EmUhEAzWm7F1Dhjy>N+!b_k*D|B`rCDrl5tRyn!P)MI|FlN z#@6kVGhANB{^kUtAzd15F?K$ZJssUZY!wZeZu*!J)=XfsNmod0ULnbQAe%l}HJt{g zF-QKf_Y-*HXT$kUbHsN8I2?#`8EYlBlEE{T`X&y_Pyltl94hiwDF zM4M>>#LkSfP*Kk5gIuisu1Q4B6`cs;0GVatl+u|gTma$O{@F7NnjNfk_))?;P`4fEtlWyufx69N0zOo`cntla8$$vg8zrg02 z)&9a0`Va;@^Bgm{9rJiPY$jhGL1ECeyeh_2aEw3n&%Ye?+C5eZTa%fbU7)^?Q&gna z1X{*iQ@BZVD`jw2bxnII@0g12%42OGtt1QqEQAw^wh~UgIDy`^bKq3?Jw zhqE+A*=Cz?tsWKjU#&B@+m`dy!mkdkBKm}xW?j)hG$I_rbT}bfF!xHUljGCrY3%EA z=Dl^P?qviIgmA`zcH>S_1Z%2atrds9RHocg`|G%E$bvg$O*pSC2FYr6H>zfHPnsy3 z%xBZVRxx&X+{oT0xpgyFRc&t~Sye`bvp!5uu z3l&|?L*dgjjb#Jw1J=6IQ5e5pj9bWqg+m1-t981+_%54^>sP%~PMC6jQ)tMV?;6=% z0RthEMKux64gxh1lX!COcFe0l9M#Y=kqp< zUMbfgl&^)l>%uW2zz-;3N(Y?S*mI@L3~jo{R>>at9_D(^dr0QyT7wYA`YTkj3Vj=h&rP(q+6 zlPu3}C;Su7qNEW7GHS%}jSE`|7u$dZHLTP{i3JEn12HOyv{MXuRa@((%zdQ%6$I+K zeOWjH!IK7N)fHp(Cj#5r-=9z1;~HJ;46K<|gx#}~gb1()%hW_Z_zvF-KX^i=ux?jm z-$Wcy!V-mR6V!Ucl1>xFF>AyFn1%+7c1$x#mOx z<&ld{HFMJ13q~NX{9WAcqjoLi0Wthe7S)Tt9~TNGf^ZjTMt}k14x{CZ1SIs;WYgT{ zVZ`UcWLr8A4KJ-PSzuQ)5D%$|4DzJ#k)uAxH_uz6(Ua@cde*@4DK3Q*A@oj~a^mY> zb?PT>nL_3}l_i@V=+QWoefjora2lMFfTRt8lB=gpHaIqmVlI*DA_6~MP7wz6@e2^Z zuXC-T^c#_Bo9!wSWY-%=aKB2q8HSztN4G=vchL@_$E$;Ab+Y6yz;>%L^yB~m*&&c6 zawZpk7=hYB0jOXGK;jd-ecEoOp}p_@mMvJ|<6B3VK8A7FAdY`aIlKckg1`iUx?l`l zCA>gx_YCK2ReTR#eCxOWsz7Q~d$?N&eC&LwhZimmiO#yxy+g;*wVNj9B|vS=R_J+8xb^cxFK+b)ZZ3$TRp3-?O*eI-a$p zE|!kyq1nR4b3M;+PS=0)@xmnVzH<>rX&8#+-PN6wq7G73qf>89aL3ZQfZValt!&ut zL^3_uu+QmB)aY3WHapzcT`N}lb!7kKuBu9#+c7f?Rw6xRtm=QZZw=EA@T>jsetKUO zVW582=bB>D%BoT^yA3nN^Y;X~Nh|u)=>QcW zfs|*hagK5GTa_?aVvZ)8rvwt$JZS$g!R<~YwbCc_1$~6>)2bWVEV-N6qeb?pMkm{v zO=EP9CS4-nzfsf%D(0Eb{W74~prO?(XzogqkDahhPCQu5Lr08KrwKgAq(whKnkJm3 z39kp3a~V|ckszlWpBxi6<-jj{M>QwyIBW-4NwPzaEg*1T0=#25xldv%W@vi3b`l(% zfCADD$F}0Njq68{2}cpio|JgCdXqASglIc+7?TLjdmah%D(Mt3j8spetS;0!ltc7c z=bakK$9%VJGiFr|WgsOp@Ii3yPmDoAje*?+$gG=PpsA8xjp>~EWo1x=-`YhO(ZUVF zaXJ!6LLaxvMsS14d(y(SrNv^3;QnLEp`i;QK>SxsAhhV={|CV$GkQjZTeP(U@flS# zIyeZT!wLdH;Qw7=5s5W=>c`Mo+-|vaOLQnX=6~Y-^*h1;B=l*v zSf1wz1c{7~ID#OO_#PNlB8~0J*< zXox`s3a|{osQlz%Xi zrlLY=nvGdrp1FPsrY|rS`U_3`ZPXzi;kr?q*+dK5AK~wvAtG!>M1LMke;G{Q=g)In zVgAPj&haTP^9)ZF=Do)u7_ozgo4%9VxrB?^#I?+1t!lIs2b|Po9Kc|yX zz3fNd2%?^)Z;gdf-ep*DBuONu!dxjt2N8+R-*f;eAK8z5wOpF&CRPju0Y3nc!P!M& zK0yExC0S-(8XE0PYFq{x5M>F&db>Mk?HBy>iS;~qR>u6PeX5GkmrA=;QtT3k>g|ka z3MkoJOkco1@rS2{-eQc_$+QEQUH9C+M!`qjdw1mrNf<9AO(gocR?vGToTCd#4j@2` z4JJb}na4OMPgt5QdPGNNfd*x?s3QVpEkt2kk{Z>6i4iaP1%CK}Tpxf`LfbU$Av|%7 z@3Q4;&Dkoj!9lu-635qZYQiFEK4xNcuRRG)&`yJz*1RzNYi*W5y`VsKE8}IjMi6yk z`p>JPAWz|GbKW_yE$M_F;W|y=LXy>%1qYw%58!>w;%^kivCtGnBBm0V6D#wf?ekhr zwppuif8T#9y@X(oCZS(E)b=77*(m}|oN5Nh9nB1TfW+3?RKn`3?hW*amE}GP3baCE z2Vfr?gPsU%>ExR)eFAgtj}w|c#OG|~UxIR>`zXRaha|V}%NzhVK*+zDp&L}l-2y3H zB%habaS8|2&S%>xR=5?|;x(%O;*if*>yXQ_bitRL*HB!YM5h&C$1-b%*n`-~yvn+~T1MEa&?J+l^5OeJj}WzgwMo$me}1 z2Ltng;!^Pa$QUog7g$t500M7R5_zYKeIV@o+b2qr$pdZ4fWt31cI6?x1QFR~j6Twd zZ-qy6)gKhpca?Hnht7leR7`a{TgO&;XnGm-ER)2Ntl)|OPVmQ$J-51DpF}53=aJI* ziJsIOiVR`0Q*75z7}*IrB^J2dWUm1j5l)Llwz;1L)K$>Um%?X>*#&@b`Z6$mKzQOZ znGqBFO3!XvrS$P491}OSS8CUgNlbYHBxu#f&=Kq*wIG___t`Es`5*GVv4S z!pyd7|3ld&2qm>~OSVq+z2ovE5Madz_&7?F(8rFod;I9nbpN3;Et!4w)u4Dj1(l_Y zISCe9O*wA}$z72>W?{}!GZnz>TxS&Q*@aNl{j?ta!bGq1vc&tvpqK0gzncWK9%hlS z^<;K4zX?bE)nV?tB9B9tco{wk&-6uKT>kNc??d!^YV9Mv)VsX4)*-YEZDI6{;Gg)d zjptw0$75|S(_b&f+i(kp^RKmYC(G_fuj=*Z=$o4|Q`KICk*>9T000xH+Tqh<;pYJ0 z41ehlr}|)&#iXv%;JsaO(VA6A8)8`n*zS;JFAXJ%ZN7|6_8KTV4VS?8URpNn<&*MGGlq zZ#Q<>KC)(`bmJZ`cD$^rDh9bi;Im-Z@+{!|v9%FTE>N@DtCw`U47?6(zkr5ty~8>{ zmOR9?&+@^ZjyQs2={iQn3;Ye4*f(8BY{zAAL`v1`9?T>>^5e_!IhjaqK?xV5PMnU1 zq4USNu-V}^`jlbY1qd!%;{7y-pZbfEb%|!g3pQvJoR&{^>^1PPr(pw@ogZ{GLS=BU3r)l ztzE7@vO!zO2*E8d7LMW>1VW&HM!;qN86--MG+zYv}piUn2F8A5iU?R|X8FlxMR zx)&3;re+<3gGVzI2!6OTfz@N-*sLqHX_+*`OkIx9v&7hW({@uVyVx-y@7k{hhFoNz zjTMmCQ4D(?umb+cdDzfO>?pO1VapuGbXHdc@bU13c=fgreKfJj2YAsLB5R((6DAu^ zZ=CM0wXdGRiJ4x?o8miOmXd!Qo@L)ES+?P)&+8u_ANDTjuWpxl;y*J_KvcJWaw?#w z+tg^In(#)?k#@RLu<%N;=0cIlega=7i&<~ZzhI6DcB}jC4Al5@v)0w#Q_JF>a45X$ z8Z)o(9p+wOaHBKy>DPY0*~D|eusiCwPdc$v4mkj$phHJ9V{GgWZUTe(PF{~l9MNg& zQ3D#e{&`X;{m0Nh-qbQ{acXzz2*Rl;P9f14AG0M+8HsLqth+N}QQ=sDJ-&YRK@(ew zWf0u3-5s#K+G`s(CCIbmA@R5C{pXS5!&yRQ3CI@|&AYEf@@O21LpTb&%n(RM&TQd1 zYb>d9yBrq5!{>RrlcuzG^k?zdMB$GsC^BIIxoa$|*s8YQ*eZY+3r0l@ptansCpKw{ z8me|}Dm%noqQYxh=XVVe@YBOJ{RBWnRNY4{YMMTdw+>kxmoYqbZX8b_ZVWbpfsT5W z3e%Jek``q&ML{RwKhfZ7fe6hgTI-E!i9BFn7~<%|1fMkb@s?_G`|#2BijRDGl&76) zS0=$oP^EUIW{tV`V5-SaP$JsdckmSyUWp(06DR}`h=P(7;Q%7PDbh10?v{;@e2fZZ z`Gz_9*2SjRyrYO^^2fG2(}+tHUQ&>JT~@b&1z74n_f^KAW&JuGh`}%)wbwW_2X@$n zaImZihD#v`e3;I>Irb3yYHUDdh)`#_-PG?j!KAhj|J~^G2Sh7GgFT_*$W^CFo5M;4L4AUV zPZu?6Aq`{PZg00Ahg*F!P`QtDpns?v)3vse)$V}|Ax$`YMa^09*Ps*oFRdRSyZT)+1Q}tY)fOJ6Jvdn=ouEB`w zgS1rOSRqK4`^JcGPX4WX|hWA-7E_0K$!nF9wC$^-FB+PZQuz2d*rv$FMhqWrFF8z#zD=E%M-nIRi ztAW?EJd7oT(OqT+(h^vmt$2L%4V8r+SEsi=$aKVw5;U%pT23Ba7*tM@Zkh(e_0IE{ zxVh5O)Z+ojtrJ+t(xhCih`GG%$`N|Jw!gogy`H}w2iB%#p>OTzp83S3VKZ?uXp{}HK4LXPZ?K8OJd8F3ws$tS_kMW6 ztpp_Q`@F&&{N9Kg6S$BfM*1d59paW_3(2~h+C0>EO_kF(g$HST!{zE^el%-sa@;tb z+et?yhieOO$*D zNL_k+{jPUQv3P^lr2c?{?L-Bbu!Hb)+~w0h`e^f4)zyvu`-4Jk2ldl|N!y+a%KtmT z^>rz52Hl}nHAY-*-ZeMVwB+=zpK>QI2t@%XAM@Qgo4)T@v>7F$vk8>iL;8;YyB*Gr z`CzPum?9QOE3%(HSA#O-(C*h4HwwCh+T1B|DdmWmMMiXaMb@z7&d+0c=rHVX*b{rD zD83=cuN}mI=nh8GuOW_2a~O0SKU%_z2Rq!trzXXs>oz0TR|*u=4BO2dBf=-}K;YL^ zK>F3;cDC5g2>7n+H`-(XQ&E zD;^6nyEa*XVDNU7lS-Pxi6v3p2#0&bDFJ)+HksBd$mXq$p6@tOy3Y?>JDRVSJj&G~ znm-3vm_6e;ocl;Ih>O<)5(az?2^0tM%-9Z+Gz=>M_~An-&(mIQZcYoh33MD!$iuZf z1_{+hYkY_APi{9&j)|4i;}mzoljh`chlSDBD_iAtR$lFQ2ckX-<`BpSE<`6lKIky3 z8D57_u=*Ci^KFer6hMp$k;f)dq~r!IaE&Ly;U^0C!F+4#)5q*_xYTZTov7DH6e=wm z7bhtR4RxkJ56thZ9wIsJT}yI_x<>gJp!^KVdnW5bu2U?Rfset;MMz3D>3VrEo?dd^ zr6~_#bmQ?}uB2nA62d<;_d$O?N7(dnd)jf1&Ni-lc9Q9LW96y)B&4hkyj?AcM|w%{ z?vW{s_#w*=t<6XK0t;^4)W(92>mXpgTuY?b;uz7E3E7dJd%h@}YDxM_&uIu+smQIn z(mmTVy~ESZLGyj3@#RCVTPW&r3GAvs=%}iGJoP)ZlVnUshzdblWKG?NYJF%U>Wl$@ zW)F%Y#}@%n#AWev=XKUo*Y$Y`@$?Fj!azxA_|;CeacV@g8TM>D(u>{~#WVUvIn?Y& z0gP~c_h$Vvc}O2v&0?cdMvW$rR09~sB(eKns)ih(b2!vk&81wM3kp;)RiLm{t5M%v z=2i1gBg3974ia+EgwDICI$q>8U-|lz7$vZki?S)zPJ;@OIgW&l5(3@TAR>si7KZ}w z$fLp3!^WKxreB-+$)F;QhLcdnn7d_HVFi~Xt4G3( zQfxz`8_j`dQvQACPDniBKr`;~%nC@j%x8`;e~T~$V*qB)Dkxh3nlz|TgV$zj;r1n& z@jm20I$_8cR<`j=)(=g?Z;pKnX4PurxW46xIFo}{v%sM^sjJ@etRJe}ru)Rn4o#oD zM&d7sqCv)}UUK{^$9~*==vj9$0;qKT)`Z$fk;ef=ACKh-I#3}oNJV>*x&m+UWYe-N zwXKaKx^21y6dXb^=dvjQeg_k*^BH4j^3Vr2K60tZ^73>Z6e+aX5MME+ej`#d#ZY9U zFIcFbg&@|ex}LTe|3T%=eOpO0pj6t72Ig-2Lj&0Ez3BP2_0*QUl!fK5y6|26{=IJYU<3NAHAgQ} zQXcdJ03)uRa|qnyh?_7sv2pA;o!0}r)8}#cfaP46xlI|6gTM_yu6)Z&=Y5a@ozxK! z!J9OAc<6K^=G2IsIC`>$vg1WE|veeW?Csv|-EGeqXq=?|* zt0{c{r+99T(B{W($rYu@FpK9%4H&~Dn?Y=b`xt)A)TkiC zsudrSPbDS#_8n?Akyz_SX5F^zJTt zfDkGx8%1@;HPB{j>O{jXsUG>|&n2Ro^mQE{sxR7$n6)eltX(cx)9b873AzV(WxN#q zCfYvg#4LV)gQ_?tC@*G5{gz(NBNj=>I5T7ul~C!PdoveD&$v--1)f7X!Z-R8SK z?()8zZocbtFYk+_Iu)(gi_?eS>c%m?Vd$!Y!KXiCC7S=L>Gow3^cM2p@qwPOi&FyL z0MRdgIr5ALtgWY^Dv``PY+D~P;@~!O`WhFsMB;kTDWd^qw=~q@>~nUx`yuQ0-4jkQ zrmKUnTVx&Cyt?%7DwYCMr-^HOuKmNSwtjbq&27i?>_=SCow;?!jiPI@&%6Q7h(SY* zYtye^w7r+ja_hn(CRO{vOdN>E%?6FXzn*t_Y^MtjW)g%?;%s;WeG1zEn=nLxl{8q~ zz@f#gDl2Fl?i#4V9EsLe-LV0LPB8+z(L7bNf{W%(I? zDCpaUny!vA%hc-|9vXK#o7rkVBc~_)DQ1nBnN|KKf*85NG8vr0ot<(9sVK$_Syr<{ zSE@d0GUyiVrqWL{ozZwHV?51S=<|S6Y=b7O%o`!<5*`^VtF7^eBbSW}nnbMNJ3Zgi zt~4% zfO*|M>U(SZ6Z=>Oq~f_#W;{q-Veus4t*t3}!XwVgK6q~&VBS!{(?YtL@d#GTe)45I z-%EbspP`>IaQ()JD|hxZopa<2mLALZ+u6yq^D)b%FUe!#h_16pU9cqL!BVBsp-aqi z0-89-=qwyu^`n41+w5f|#SOq9>Vx%q1yrvnsMYLueKiW~y%Auf@A~i2x0ZgkxahAg z<&YQJx;%5?jBah(EITX*(gE-&_9)Z`%%T3%sH z_ixe_qP=fvu1BA;vi16uVp-+T4ni;wLtfa|)$gLn!?!Nuil3 z9S3iq*eja49QMH0)LD?HHas3)o2y%2V^33f?wbr`W)*V6mq6_Zd-r)w;EGNZd5E^`te?lxSF zM;nDdw(BYiU^_8Q`{2~tGNgnuafL+=D~i=p=T99*lnQ6X)G{mg?r70v3~QZ|TGZG| zQXbG$fhSp*#KO0Raant^Md<-|wam7l^9enX!kKTBicp~(w1*WIduxCqFS|MzVB~3v zvzSqS7~~W?3K7DNLO0Mdmz+zAF(ft3wy&G=(It;%DR~?C`cXy$&Iv|JP7_v$VNAm` zw=lPuW_X~*$Aq!EwZPK~lVcvg0x2a9NJxdpW?g}jhrDBII+Y3rxXdZJ+_J0B^BBbg zxvVIju%+Bk(lkwurbs69^c2Z7twVmbO5lK`pp;an?p{iSo$9(|G1%E^O+{}yN(yF4 zY#>af!HjMY}9xIec%bKgNQA)npO-_^|0G z_N{)#CSI=&*WL86XNGFEEj8^S{nHr`4mom=sqwwvr*Jei{4T;R6-z6|O-6;fJzx|< zAMXOA)Hb%OJzO7VR?|EVgS*#WE!AVAzlm`crpQ{nuJ+zvHHZPEMM{l*;=3`dkcYC$ z%3|nQoy1XCMW1v?4+=vzBHbC)i|6XB2IRyu3)6KgDI1^*c|Im<9SaQI8MpIa@2`+v z598CsmLG#;WH36n$rox(^^K{f{@M5=JUk5Z=tKg_ect|9k$=V$4IR3YI_x`UxnqaN(m1-uxUoU1$` z8b5^6laEYd1r`Y+MfJ}{tGzE_tRD3NHlYZ|XH4FLK!4dxdhhXaJbUw2fnfdc&O9h} zc~Rcezu=3S!Mr>IXz0u3%&T-<8F3y=#T6(R+M=BI80exW?FRZ<)ey@drDcw|bHV=23JGh`< zMah+{Qh>T(YPGMyxN{j+-i+g;?x*_6#ubZ4oO)X-H`0G1K;P?(JxF-K*{wC3XYcAo z-CMK|9QzAC-1ZY|NTKC;#S{%x2JU%kz*8RViYJo?s*}C@n0O5Ze1cO~(y9*hB^tWZ^;w!V~w8I%YpOSU2_saU?AMppwbE0ITvECLyzjGHruD&=`?=Z(8y$ z9z$D@hUOHFy+2}Q>M{1s;4-B~qtoie0fhvT_NlFi3@+0o2WL#0*tcu95>OHq6qx{Q=F{ zX?Evfdz4(K^mqpWMm)8`him;Ud4n_=xH!xdp(OOMuCkmx!$61q8IcsR)~(nKVu%9` z?**Y2Bpr`H-Vt_K<&u=ijvjk5(xAR*K}DbQULw8YEMN6cT@a}^GqMp$w39FamO59F z6|hBdNq?++U@_Katd?2r_z8&ypy+nPNbRJy_^W4#ME6Zzo5(k+X5XdfxohYxi|ak? zEFA8*J2bpZKk#mV3Jc}l=hf!S+LsSzIwU;eY~9vQ$nJ)&(S-!4t_Lung$6v(44vpq zFlj-3$cd_}PgtKI>5W(c)DM%?g*py^cR=HgR7I9HZ}Nv>1c=;t_#{WVToaki0yrjL!`6Rd_P7IkWBY zBP^P#4y9D}5J5e0%aQaKoX9D*?Y;u97agA`%0TUbb_T|P-}J1#eqQGh6fnw(Pk{jA zZHG_Umn_eGw<-eRVMANDR#vLW6?r8*ERFm*uPp2Df6w+=@L>_wE-xJr{a~ELv=88TC_VIjTl)+k5F&}8 zC;@0NURb&b-8nUA3cOmIGnT^TS z2)2=~h2HkjHu;jo#@rxL5b|$N{8)zU2J|EMYN(hu_fK+wfEiOF1mDy1_MSRF*&g7wPY#sU9?`$ZJ4 zp+rW37*MoQQ!gj+F0Lfio8w?DF<;d3K4~CD`o2zHf+p_yImnK7d#C&)KYyAjC^?FW z*~GQfJ8uXgb!qi!EQb}r&bIX`Qi)d$8Z$Cq^Q72-X^^yft_rqW%tR1-w9f_eCEZ#f zv5Ii5U;vVC9Nfw4b^H+nHmfnrgTXTdv=NQmGuumVZUQt9c&T-v7tto#mm6IXUJb^a zEY!sx#WSI*v@eY{7#wzrP0k~&K9~D^Qppz|x(71FMsrSN)STbZwD^iKr(bT}1*Rv6 zT$8EmANw-y`yyC%p?;$w;hJ?10$E!4b&iWS+sl(Kcl$}GVpq*Gy(_M_nsb<3hY zQs#={N=T9G7d_YVOQ1T0y{*C$wm&>Xv`hUaF%GJ;>NRVy+1~SeCO!Xon`|lE32Wz*t_-9hV|{J9kkSSmLC54e6Z1Dj1AYn7Sj>=A?8> z2Zqqa;Eq+eQ8z$}NQE-y{sm5p7dLUFa+_tgE#*^@9PK^h-Z^z}m$de!>!TTLb=a3L z)yuNrM>QrxvTIeXYE;5d7}Z1{r&qR|$gSj7UL~0r78}|9d*#+Mv1uebNL+`TtN@LM9sn(2V?u<@RR&FMH;D)V8-i>GBcUv?G_qt zuggkh?&=~4R`Fyl4w94(9Z#A=guKI;-C5#BRf)~Pc7^>|S5Y9n(bJhMSSCisRFmPAAK3yi!IAJzn8ezY z0zv)|*=DqJP6Jo*%g*(cXyIzx)YgX5fGt|{pv3|!FFh|8^KpQvylE7*V{%}8eI9aZ zEyeh&QgV5CHPF$4XXGb0rf6iLqEnTi30~qL#b_%y>O+cl46(vm3 zm{#F%h<#6;dKc;a#J>HEJuJ@Wx8NS_|P{Meh{Js?&lJ8V}p=LPl|_=ujCZ92*>6w!Y{E3s8$zg zxuuDv8cRq7mTDoGGFpB_$;284pSV1dM$+pgJNaCQ3Kv1PE7!@XNkTa1jR4GJ?*lx$ z_MZGFx)+6y&P#f5m%Z>%(HnbsX&$+M_|qruqxZ-}@%jTjAghg6g?B+EhO3LeG0ck3 z<0as{oZMuKQ;;g1X<5<)=l#+_(oL~^Ud#?nZbAI`wL7(#6H0O2w-w6U`vP0Pmu|Bv z(L7-mM0#?O(hGinUd-@VuYU*LR85K=BJ!2n6c4CT2(!Xd{-Q3FnZvd!Bp<)+SKylG za33FQG=}5$7dl-St04y zYVUzpe$>#^w}<5tj}!uc%M9Nc_ZJBcwi}?)L*6>uU=p4qfS4gCyELP5%dFIFUC;5l zIoyEbFot47)c-$XOpIi(hju{Bu*MTak}xW-Iv{Zb7wK2@M$ zI&7-O1euj8aXb;YR03MP8=AI9X$1uzAkM;F3O9acrr7+Y>xu*}u`|{9Fh&7Pxx8&u?XhN6r??G1$D-4s_sFbHNbVxvtj@QiweS0<5W~kHY#eNyK@` zjt>C*0=RD}(S2x1JNPWVuda_CiotuLfpxf6r|#4`+!8+FCswH;^>WdS=B(`yEm#N_+9$+M z^7kC%RrKeVZ!3m=?kEtc7_9U(EY~-;S9dzxTm5J}P@!ks{z z0?FH?ok%vem@?^vAQq~RdpZ8p_RNox+bf%6VUOsJ z=xZX;4bjDPp{;CFpi=?XKtx_LXifuQh2PsLEz9Hb5Pgy_&TmfiugkDFUeUq$%gZ!WL9=1veF1GHhQ<0uKD_F?TlY}|}=ts#yih*Z#i&P^?f0S!Zqu#Il1Bhs4-r{ z(Mu&gwC{axLF~J>rIpLh5?|&=j3?fy#P}$S-s%lZwoGCD<}!%dHYk&0egc@@e-<}B zcp7_}NiCYd)^uJT6OocEOvF>7Tu~9>cMprr zi`l*ejtud5xiZf>jwAoJD%n;!P z2NGX#Tt#G?q=#p`%|d1Isckr+Oe<+ujF|EA`E+bwJl_1%&-4hkr87O^Im~;Xjwk__ za<>5BP}L=sF|{s@jU~zeGWV>erM)=bUvYMS|ATZ74aiI0QofY({J^Gx-EGz*auijV z*@%ts?(w_!tsMte5$jww_a*H7d?CjddfYN5!Gi7Uc@%8c!C`b5Y!7o?#*u9;5|xWZ zuDLdnF7H%)@z!T#^jo_x>Ps88l|^D@R-IF$+7GI+i73pSEfVEL^Q-lBLbs~+rm)e+ zTYprtanXp*TLrRE@?V{wm|5ZBMyAu_{)_pdTr0|>o!k20k8+c5h1Gbp&Jtg$KsGrZ z_n*uskLH{Yi5r|VNa{Hah@K+=fC_*&;KuA@m26{VZi4LpiF00-s_*;aO0ynm zN7(0GYwkfMnt!F@Ur}s8gz7GSnAn>00q@nLu5ptCr`iP8oHORo7Tb2)&wlA3W;yZM z46~~zAoH`QkzX;-m{Wdp){O$N!9VFH#D(5R*6Y_vUO!1j7O&Jj{crIfc~cnZL8O&E zkm#2Hvhj#49%@&uudHm0kY~j*pSI@}^E;)g7Mqj0zy$uc3i(i|&{fVShyCQu z^o{4JrZ~x1Sk)75c}u19%mbbz@YySj|TK~zR|?v+>F`5)d4s!M$t-0;H*t1d%d zZnqLtr)0Uap1K4pE>>K7tKPT#EOoIBCK5uVu>y|Jy_7r=n$2Wn@~~2*vT_xP&(;GC zOIHKj&3^=v=V1%pfc=04_0bp<*c7Ykc3@LN&h9x}J8n)7v@u@zI=M4h3Q-A(|3p2( z1Z~r$$N{VaRa~FRvRnu8IU`FgS?9P$^_Y9gm9kv{MM^aQ&Z`~u4Ct4KT>G}jeHU5> z1S`I_*!n5@X79^6h5r>r?8=-VbCZW%N=mi2!k)f>9{xjpR`OC3lAy#dHLe9~Bvssc zn`%a@RhF-HgLQK3W;DDv9InF8yF-0trfF2e{YRttZ&XF zMe$I!r)9%j-Sm(9byQryV{?#R;nmB)GgiZ&7Jk|C!E_xG&*e##Bc&@X`s_{1n(a2A zi*xR40Cbp&3_`P2+V*Z%boa9*x{Pk$)exdAlltEZ6>l*#BTtu6)su;!Y;pX}P4MnVV06m}w}! zLxrPz*eoSb1P+vb;nh_>e*Nm@_14;)jvc$=2Wcm}-(9Rx9F!elWNV^AkO~8@rms!< zj)12|@O8RzUV>%kidIlk+CTsBrYk4xr%2=W1roQe%^pRiV3P&!*hy`!MB7HMLCvYw zSf?o-lN0N~cG6V2OGRfhV{7ly9}Rm>li!pykWhPn*jyJmP-I*hMR`<28isLfz15Ck zJm$L9O1Pz-SxTp4Q&ocroY^L>F49=<+ud%_kRUPU=Vkau6Lc})*AsYfMEb`Th-?Od zTYd1Cg1tS=&uPkA+k9QA5`ik-)c`2cG`^TPC$iYwrF0WCCz~) z&?H0@wM`8eNCmwR1hl58ahy9n(}2dj{cswcepnin3ktflZF_#N(iZy(<-6q${l8JaM`m* zfoCkc-{9WLHX94IVtZ|=Oo0ZPCv1f+m0HxY0B?P$-oN;s4{Zq`RcObyV>wTE%~zQF zedEuhRziV(ANAKw;}@tLWz1~5a^QeYQUeKc3jB67JbmA-6@bWMMb?9$*^0^wD-4Iv zkK?!P8$KC@&id}3Vvtq}_|)J!(6Eu7{1Ia&CabCucZfzS9T4C7fR%|@;HLPb%C5{! zsreXL?6N&!=M+8>7wtwB?=)6JeX*^0j(X32dYl%tsWYUrye$W=v<31MKB?Yw4wpn! zh(~-0xpx?nqJ$`A5=cR-d`^^&*qs;ie0hE<3JJLEET21DIrK17r4FS=Py+)WBppiY zeknw3-qKQ)`hY?l;N_r{(i{6IOLisETJll#{S4~)q5_Wm$3{ex$gt(Q%?v`!%v?Ia zUS1Egs)NH5Z&P7R0S^RZEBA5(E)8eTxJu8*p+!=@vEw4Fci-G^DKS73Z|nfNjvqdi zrt*l0`8@s6?|C_KKmdASx+pu^4jqeO>lHGC0JuPKoZ(una=F|i$(W@Guc@zRwPe)& z?aH)fYffK`mE|pC8Mk%=Ai-1^l+kU8eW#ow191GF`R$cfmYfxN;DbqPdhOfW#M6N|)jF1mKsKvJv^ggH>Ito% z8N!f6lO};3(|&{vmfgrsjq$wpy`mvQ*)#bHBb=2cogG;--H6}nL;aQ>^oJp|uzN0D z8~_9;g>lP>X?V80)ehMiM3U7Lw(@-Ku(|>C1G!~~SM9=G&r#Rb{QaNGP!q30U{@|! zv1BHHyP8LV+t}q}T@cO}qJLEDP)b4a$Odcli>Jl{P~QD{F^Gkt{{}KN$RNF}M+g$y z$QG#lR5o>5e-?G}w41O^wkUw0QE({PoZ1|ckSY{Y*)2h;?OvbU&_P=44Z=~Gw`MDxXzrS;?}PoeKsVN& zB)Fj_9TF10XF_2kVIRWNM%O?MrYL{3N5Xq9Ha$HYY)=PoGUJBccpfs$K+Ng(7MiAH zVtg^)-kvdyizt95PFwAm@nY%_8PYv|}#iHOfH=YqQNpcfogbT5Kb>amN5HOVe zyH)FD0!2SySiYbUHAdC?hqOKd8N1|e_W7G5As?%Cgv2hw>kC_?K|XeIgV9qYI5(AI zg`nedW3=trOkhtb9zzZ;@56MAp)d)T3?TcQ-_#>Cd0NW^`Ch>YNt#kg!VPD+ zQw~7Pp9k$>(u@Cp`)+}0i(V;L&*SDi9c_S|Ouw#Tty2Q~LL$euSf;;gsXk*F`HxzT zXun1|rU#9Q={-DU*{xA79`<8=P6-WiNib5nHF1y~mAEUNL=+W;zW4WL%Dym{4KN_I zP7_~%;f;Y5v7zx%f0XMiPsGeQz&RAt6Q4rHp=xC)@G$c+4G#NHQ((~W#Oeafj4akB zqikl5A^>2_o}VYQdykYM>zRk6wq;GizO4josA(tTVy6+5VBf4wG!Db;$8Sc#Vy+q3 zeT0ZekPWF77;?(7saAy}NbaaMyS@4w+>{`ZT|Q8u$4FRL>5f zMya_#uqcpE+g&Ks)b$WLgcBo>&(2*w$NEeS(4h~ic{1~5 zRZ&Fhoo{@humueB#Gg363tp0QUT-_nLp;)a`yYN|T?Y;6+s{GRJar~o@r&$oJzwS2 zHKzP&kI&g3f(JthWZlGL!V56Wt<})h+x~9P>10IE{r4~94L9goq9ApCK?(i*a`HJ%57*|&99zk?{MfYH zbC%l?%R#y|$t6)$>aJ-!3<$3K(q|WN@1b+P@K2<9sR~^2>61=2TPcLx*OQo82 zSpiF94k=hUeQOBm3&*s)WkYDo9pqbTJ2|@f*ZEhLSD7rdse)L9BD-!35BkAYxQ-3e z;mI#1kT>R`J9PN6FZI_w4_6f8MN(kua;ckM08nK zMT`ufEYYbsY?)_co$$PDXZ!f>upcY5HRrhwV)>^mU$0uH7(6vw;i@~UT96F7N6@q4 zisX34)@))wweXH66ayMtMyt)2m{nh0(4IHo@Ti$j?V&a4Pe^((65`s(D~Ev(Mee*gO>tKU9LXy!k^NH zP5?3yZc*{*FbzZa zm1dw3EQ7_MoWh3H@9r}zz5sZAU@1OvRgxstg7XIJB{*7$>JARdZ)W6zabQJYo!mBsz_E*p0XLYi zIHi=Jti$+~zzTU4b)gbGin&szU#fK=wcG2c%MuV19<5;mJ&&X@fgbF>$7r_|2nr3K z6(t-6rtD+1VP%XZOSY`I63xT&GRJh9z0PvvZ{r zI`JloT{vpZL3-7T3wytxhUf8FN=Qm>>hh!wo49fpZ=%11*x4|4<JaCK_!~8xy#b!&7lulz_Fy1uU zgWB~H%3)xiE3mt<$%=12yuUr{r{Opl?kcMrDrxAGd=povk38V9N`Z%gE#D|_(vc*2 z5DGM)`9IVlnII)7e=z~@nz;qL8KC56YQ9M775Bm+9b(qs{45y%QUF+3%$fyoTZ6* zmJP9v%Tgf%4F=PrM36hEoy2o8+Xk;S=jygfid=~xA;J+})@9m*qN)0kQ?UYrwoGFc ztyMjaCXV0dSQ2T-z+)Ltttj|TUXvMt?hT90Cuf{cxrQ1|)J75}f8eZUiOkB{px~iw zIpWd{E%}%6b)3CxZR>nJt$xqV?fOf4&=LX&eijK~r0NMCC#gAeT=qwb8j}!=SBem@ zqv1`DqLiy1zfrEChm4(p2K6Tkp#6h#FzMwx2waoa4yaa8bKK}Hs2K5U?bPtc#pL1J zuqlbv2;96MF^<7f2elDkn)0;rF_TFe1tgjCGe)sxcEk1&IC${$07zql&jD4*I0QD%~~_ z4QDmIWPDO)ESVUqZ*D{9Zc89_VD9(HGtIlwkh9H`1}T}q29t;Qk<6J_@2c^P$_9Z+ zY`e-n$&yaw7AYFbBN;49Qh&PA1L`u*BN{Z)~9#O)YZxYIULyhAjou&s|gWXqg5{ZZg;O3_4Ul_lJxOedR%eTm(`on1n+xYWIVd`Y?d}h3ugr}$(JlU%?81Q_za__y45$2 zATv^CX|WaiUhBerh;3}=7N>e+O7gf0_Ung8v`A^12>>$W zB2HB91iDr;;+tvKIwnGG&k=aU>7b)!c17@Y{uggu3r{$xO!Y+{%9eIjK&TP ztVThQ!+G2Xt}af~9Pk7iuVEH1$|2ppwLfUW%fgw3l531I(H~L!CATytU@DC>Fh-|3 zv}PJ*RwH(*O7Ch?%_a$x<+ZJhpMr6@Edw-QE=WY{eH<)Uxci#nM!ns>Vuqb`v1S`l&^5)E#$q2a2ac|^P@(`o zK)}Cb{w|on(o)6?f_ViB@?`sV?z>~Pg5z-Ba{*>TZifjV(O7NOP+fV998bIz(Km;Z zBzS`8&w9JmS_-v~r2OK3;s9gG9pVg+xGdjkK1rnf73EW*ZH1awQsA!LiWF`?oK3=! zHYL$_|cRwCmTt-3#4v*k~n}1 zyE&Jt5c|b}4|$){K$);e?HyB#Z%phEe1%m*Y5+X^hDI+iITEE0*eV_}qE!K>N2gzo z@7k7PP3LQXVEIxgo)&kChWy83hV&c;4i7@uGQml?@Kl%Mh(w`wP-JF9kAZNY zi_L|Fd06wX&3N+mZ~HnDEf9ZaoZJZqtg4joFs9o%vaQzP)wuOEWACjD5x|jd{94Py zjD4U5-wl?ww}Q7^mOMH}ee7Gdr0!5d57fa(O(Pf{dVnE4Ucu^o4%BS*uC@TWyj;$u ziJ_Haki7|M{Om*|%xW)#^#vL+e{t>Gz?KLq9h?s=Z!UHzK=V|Kd0nxF#zkZoeZ_H3 zfH7(2q_hG&SbW3W^E%w;0EpHme{B(bur^aY(^h5i(c=j=NJE&&d|EXy)K3N7murvG zRl8tg!`2gYi=j?&q)T-zh6cL`8cOIv6l0Mjjn(*SUBj!K$3XpX23_S|m00Ee#18&d zd7Tr)`g3YRaD74_0cGxTL;?@`~LmyVY5=keODE=5m$WlDHJvcaNuU%z7`W7 zBoz;yDDHzfUfsOwrf8xs?2A1ct4YuIi3SPfX87rXL{lp8WTl&@$A|0Pawg@ip{7C$ zj-`6N!7)uk#9T7xIaLumqq*xr-H6jpj5TiMvi7NwR~p(90aa7|YD9 zAFuijn7UiqFs-`1KYS&h=pN0Zz>8a!^t@D>itHGuS7eg{31g3xAl36CZyVo-$A=9Q zUK36_#8u|UKHyiU5ay?;S=qyB>61!Areb)?*be`YL zOj*(o>6J-EV7XsUerbKxceX`Wds!`BoClr)C*%jZ1DJG8Px}3_Kh(+SB&tWG`r5=3 z${7{?8IG0k;=>jE7FdhpmQ{rH#9<8Q-9|PBXp&u5RVo&@dFaDJUrberEs-X)+_Wr> zr*%@3HiR>5=AiF`4xR1y8D>sQRY~hlSsdZ z&|bWULD-pl9)z84y3m1GSboSXOxbuV5AWO^$R^`&B01}66_=(lUKL67M+Fd@v}|Hw zpuHJ%FjAc{{1@8VlIKk>T!pKrNJBuz*v5pQ!hDB}ijIccj%ZWfN`N#MIrpTVdQ!;C zv6+``(m^>&Nmh(#&({j8QgT0s-WSsXhXy z9tL|x(quBfADft@m%;iv-B@%3nvBRkE!4z9jAm7mjb!!R%ipg;^4*X}3%Gvc7rJbA z_aZ@B^30-~Dw-fzv6U2E2D0F-&NAb(QJr|K>4#Vtg?rCOHOGyzh^!RegAa-)3Aov` zc79_nT^pR-#VGfD<*-g#my(OS+dZsf$tW>15ud5~`7@-ZF8%@1O%7hFSwNFCZ)_%e zxItvG7EM5__i3`RoU@-cus1o~9-FE52Ec0EkVac6trG7-5<}THz4Xh?GdT#`HZBHh z-Q?TxQ#-_A%zl5CVxAssqnuQzYYt6*GtV&^+ZXSzXFld)9l@$?v+Q~HRDB)n+oC&i zd(g6VN^<_$=;bKI@}uM+8g{|fiMZ~zOn8C_Q{Ft{d%E>{;+(}({6LGgz`&(`I}rRe z+-O){*NXOk?^Lp?c8vH~~sIX%+GDXK_iIQ&<4R@vLl$)WgPf&X1E;tA) z9?*WQ$G|H zY@V||c&Ry`?A}SXob3a$%kPldV5$2)Ozbn96qQB4aOriZd;piaSr=gx|B{nYR;{F= zNU^62-hmBEt8y^OQ#{wURlrew%dqqCc2)5c!9JsX?>J|52jOb?K5V?*Nd~l@vA69@ zMm-$s9iUK*-I8iPa4z}ptnY@y(S$)XKo7H}XLhp9?S8Xb*s_r8*l>P!RS zMW^8K#Bd{X*H5qQ*9atN)cttJ@|0QI^Fua~)Qym?%qVg~XI`%EDqD!^(4W(Inp62* zDj1mBXYy8|+t}E^Kxc!|-kMpdAYuFNW1~Eu1X2*4HH{SvGdsmC?j84n7*03V{;P-w z3i;L03|Xz6+_>Szi0xA_ggOlwDsT@#V_;ME1gDokGVNjihG)2hSDNtJ2LqWQm6Hbm z6kR#X_Pr(*pC2%i?q&4Ds!B$v`Ap6dD`$3D<96b1^*9a11j67ykvMee+WiGUdE>6V z>dT=0NfTC>leE4vs1#eggw^_XZjIYqsKFD3`9LHy?p~3ubP!neKEb&*Y)Ixu?IDhD zb-4LbHg*Gm6Z>R^6whg%)HtAhsDN-rRisJaVdENYI^sy$aKo*cb#s@8Czv(_Y&{K!y9&>Z zkqkp+p9YC4pfFX6bEb!U@r_H$Lhrh@iz9vurJ;W69@u|4e7K%z7M5~b=xGX#>>yKJ03>XiXw2do}Le!#+K;fOXj>6 zK@RsWH6*-^w8UeGKm{NpO0^j2viZaL*va%=tmK4wrjf#>Bn-B!68(0jIrt1oDvwwh zBf5W?U-zyO`-U-HuoIMW~#@Y$Ql?B5$RLQL@DyMzRxwx)fFI=v4`-y_7H`gln}yH0sr^ zue^KzzMYl@HFpU))J39h(k%GtY{b}w0eUB~bRr9&*4M&t-g!z?fPXkD-jVU+cxQ=Y>(!jmj+OPEpej=pO_ zJ4m^3UuO?XBitaN8#A9@F?v1*pF`qPkk-xZY4Ra)ZaGeao^CrCa&Rwc;0~_F@Va<{ z0>3O^f{)>TYiHNSR^0TGIO`h|P;JJ;5AQ6uWIPsiraPfsZazWMXeZMX@gyoL&(w^L zsnWjF5?zDS{S39D>576c{m7wA3b-IU0&jC$-zL>*I#S&)g0W+Ta?3ruj3C*!kI}0x zbQ}>O>Yv#vT|c}#_CR(5k*T$pBwnWdO&^jEkn2`kJm=#YKoTiOha!GyOWl^pnI~a( zM;_F{T_o<4&H@tqz?`yzr8{ZOl%VpsYd)$kV%6tP4Xw&%_xS+#dpj6?EmX2gaUQUb zs>ICgqj!9aPKA{RHaLF`2Q_SbY1hRXGU(P-tvz#}6z}l9dCfV^bw*04B;Em6*d(y` zwh+PMJ6?#ahJzr8#4l4c`;w#qcZn*~?_(pyTTvul3R$Csncl_Ais$$5ZystOb8Rh( z`VT)U>WIlMhs-t2tQJX~p{1u9Ao+eG%k;^A#h(T>e1e5MnP-T`C_1&$h1uu0{13S-~)*HT76Rxj>R_7?F7k;)T77N zrlu@^f+b!mphT!2y4lH)be8#>2g5vf;}CN%L!ezL!{~$7Ob(4ulfs4ODFsWRO;_o7znQ zpcyn}DwztaNvLLm`#yKq<4l1M3lx~gZr!{UvEJSeopLnr)UveIJF38SQ|ouRNX;J9 z5xTnIQI$Zy%aBnES*xWB^l-GHley*hf_KV!pEyJWG;&ha`4Z(9a;6B}aiUyfM0YJF z-eMb!zX1vBJC+owL_naJtvE(06{cgQTA&)JqY!=^=ih#e4UsyRoN1^{J~*C_o$iik zcq)$ViHF~}1m=_>R~m0s16UWd-WT3CgN}_P?<w~FbC`fF`p#kPFLgf$&jIL2 zHc2`y>=s(kx&YauS`eaHAU@W`XGxnIezkP!zFdcp?uimH=pETP$23e0#b#oNQ^~3B zxQcSJ9W~^W_KB5^md#vwsVc~-YU+GYUDc1_l(W|C9Lv83_EGvaTy}l50K*N{q9eMy zLIQHV`na!Onil}Fn1#EnwJ*~R=b5b#{dz8sCj5(juw}OsRUZMt?sG-I25`k-8V9}bdP6`r<)aa9ZIO-xRB7}1}`GsZ|-FN2y z$2T#NH5!^fc&tk?BaD5!F~WyDgVyb_Ns?_M!ZZfPNA28*zIY-sqp{V<@SoCl9q_m&XT)cCrfA+WfukA2t!;@p>(!Oe>D)u zG;Q`Oo~{HDI=gp$NU^g!@v-0)i%)yf_^y3fBhV9$asGof{j1K83d=zB^le!hhrY)$ zl+sZu82h2mo_@1-RHZ}y&+F_yi%C^bTb_WYFa za%Zf;mK4~mfP3a2>H$>b=7>d`HcpO@jx;wl)YVk;stWUSDswASQ!Ejg)#mzq>bqiJ z?t_Y9<8TrIT~e>NT!-VtOuwjsz=!s&-+T#K9*Kcc zo@I@v@ah7f?-l@o!Zr1-tTi)jy)#*)GOk!Z&}FG;OEPq~>!8HqrR(MK-5nbKAfGs1 zd;=fm&BBHmZ}$Z4)WEtcx1_iuthFgfEowxI04sy3V@dvzWk`oK0>&T~(!e~=tA(qp z-u%%wlUT0oP%Nz^l3-S5dI=G!S#ZD`XJW1!?iye2BH>3rcz)P@di`nO_1EK2ml(Ps znn8^|41u}O4xn<3o0)>rC6GU*Gfn@xCf|T{YdmMI@~QBY>BgG6Uo>1DANc5>Iw_(;(B%+rb^bot``_ zC3<+uEY8iDGpg8?rk|gXC-Xed$NRy(u}p{}SN!;OIDY-jn{W2J@vHC^ot>8UIvjnm zW(bP@6vkpZREq)c=waP^zUhF8Kqs)&*KHwubiUG4*#-ywn1*<46m@}33bOKf?{u)G zS4dX^NBxjYNg7&BM)Zof5fJ87rr6&(zlE(?vUZh1moDX12BrON68Mf5x~?uRW4%vz z)8RdU?n90zMl(gmtX)v(NW1N>S2^Nkk-ow8f>$KBj4a8SHY6Xx2w~~U*}g3P5!fCB zDg>p>SeGl~HL!9!CTa+8heY(F2 zyvd@%It*Rsob{M%|Gow`Zykdr$8Dh#gnRI9IvJs`)E;oKzr3(2&%6Rmx}>{gRi_KmpNH2m&eXJ(Hl@L8F!ssvN32(?-xEn(Xn5X;Is3_B z8l_GmvHqp9`SqKpZ|3DIlR-}|&;aT&dK6S&kqo-o%7DLUR?!5QU<}S#M(Ex(!*o%_ z)Wckh4Reg;YEjRwd*lcabbiHyA1jvxN6t%$Qub_Ud*z z@USjAVD0K6@L;^sg8v)7C6Mi#xNfP?76nspLbYQ1@trJL%bW*X+nfa?+tXQQ?+B|Vp3#*y%hX~D>~O1BE!ca?xR@F+o_Gm&*` zq-+4Y@nDF2J2|z6Ri_H(z>7^S8G?Au1lu$SzZ<^S{efHRFZF{%`!#zWALdhqSMZ2{ zu+Yp54%F~oH)*Z_rm^bo-SfBV4I393m_OWx59J4FOneW*++57qzjytFBGj~D-L;6=6fQm z?%g}>o3h9Wtn&}Cm*M!gl?&jEP@r^BWvSx~qS}Kyr6U!o!3S)pFfMw!-9&dVPVfGM zeQf{pmX9xFYQJhq?L3;dV%iWLnd^!@_igh^pACb&@MP23cE*7@+frRF+ z*tJrV!Wn9<5&gx%hGjbAb84H++tg`*3NKH~39~~9+nK!&T0+vEZ)ca%>g+Lplv=df z!@EZqey+!~#P1V+0HM>e4F-0uBx2`L{6W-}-UKuRCv8G&i545VJPJ zOl0PZO%jy6PBMcSPw+*heRp?lRjgFk2|eP2Xt)h0@hxjdke+7<=!?8f;(K^oR-Vig z)k0jwB#SBU?Zs*}6RE*bhvOhMjvh_U4vW|BHEdn6H$NYnU!z{2j|sa6d2E%?E;XxJ zoKR(tV1{EH-oA`CB1*HhLvZS7wlbhv;yYI$^uaRKBH9YPFbgK-UMXRDBxk=eK|fKr zjMkX9zir2Hc7CMx3ftr1`OQ&ND=L8Knb-ZdXa2RFAM7Kn)}Z=-8f)+Ey$^=n<2P$; z<4up>K;0{vfvkzIM!QNC_VXRTsVapU2m^+l_zkNSqbzFN8ze7ua6ISv{uHa=>{Htu zcUK(Pq{o-Fvt9|q;p$J2yEMV+j-xsv*P+A%IRWi}SLn9`8J75j6J)CNO4n@*`?D>v z5;Q#|w-;TN9#QH%W_R0V^+pnx-yzuVs8EBqV6w%_ z>0nD$*h~c_);PS~@9l|j7MQ^~2~41>H2>wmOt1^C2>?%g%4OEZv-yP#EEsefQakv&|&#l62ETf^xSz+(}>$AR61Z^zYA zyb=5wJ0h`a5ckb@6Wrt}4tk?Iu0bj~dlxu6Z)=cvfN^-)DP! zffhcNbWEXgJG3yyML{bdoSqSim>t@A#5SKkhmtwuy|<=rU<#<2iXKZLC^~(-DI7Hw>=BY8on1_t zBKN}y+Jqo{SideeTeE`#K{iri$PzUGhOISLbcWfI+emLyC5YP@(=PDB8p=^`jozyj z4d8`x0XzwhR^;oUzE+1k%*r5y=?Rjf(TmY6U~f4S*Ffk3=uV=n;V)nnc>%nG6^LQm zw|U2E5dMzFy4=)lBgQ^TSU^U^QU`x${RuUkb%eYt;N3xAeDM6@=}{|xe6f#DWDIw( z#0^??j>qP1~wU~r_RiN)KMRGfNhzv*T7j+=K0)D4eOzyn>4sPaw!~N|twlOj` z|51kSd*0+uaIt_w=Po##i%xk*>w+o9!Y!-7UJ5)yFK~OjwTiLcaRHj55a1LO>h)4wy(P{?n9kqUsZdx?Z8#1={m-KvYTj65exxnv-#WYG!R} z8y$?8j!TtvigkM+CWpyFCG`uA4)3kHZl3gZLt}T9JP$T?BGuVRHHBV1b|AdvQ7PJL z`>&<*`5YrXv*NgTKiRVD>yO6Wj*M8H3B5E=M=O%C?=iAE`Or+#U~h2gvK0)#c{J>D zYkq(au_n~eUh$=WO@ub7vW%q!0Ynxzeb`$1c0=yhdMjUa2d!cep<_S&Ea&qeYUsp( zBiZ@RlKrYGCq940p3&zY0u^GL@xxSCfXaR(xVy=5I8zAmjkiHWxVS&e&E*#>UTk+2 z&*f93#X7rgbk_2>3M~%e+<=pFuBVp0u>5!gCjwpvzxAdkrCyje7PAl9>(GrD3n7(m zAa~Sz0xnI#+sQ&&spHg&RU*~aVOi^%7;cK%G*m=z9cp=NmHd$fDs6AT_00HSeY+hB^fr(v z5I~(ZflpI-Ct!sk6%G?7WVqE3tqrN&n8La$I;c5LUxv_vHJ`mZQb3y~wb%cI_aMAc zPKu-Z^D`#9-T6c(!rBGVFQqN3<__UdF=O#8SCy1d%8g@dfWiH3R%=uNmt`Y&inu-Aa>+C zk)v$&BZW3_Sr}SnS;XKSkkwxf>lLwz2R;-QEUmzRjn-AU5j^FDJwE7z_c0Y|gi?(r;-aBx9-kP`U{| zZPxityl5R2UlOQ=>OZg#r5*MqYZwTI&^sm?E0gJ!r`$Ez4js+U0~Xy7gOlE>a54;A z{6la>dT1i{Cri;GJP;w~idikPNVkoDh`v>&FKol6n8PN0sYMoPTi@bmY)iLLGU2uQ zdTFzQS(z7#vNBVU#OV>-04!hR(qv3TW_O~Hjx4)QfCZeT5C1k*OZdr(AR_OI zPJ?V}F3F9t#Ka+fh~J-6#Ho`|OEVKd%uX_m_chUlEpm=(nZ!C$(CxKDxtMIULB&Y< zz+NLn6==xu(*Dak)aKG$Z%)=#8BO`ZD9e(n6zFy(9rrJN&rFu;U6MU;i9GkxD?e^{2=vi^=Hf>#W1PyA4U*_c<0&t1l8>i3W?kQoB{WKLu(8k-vC!7sv} z(863nTt)F3{pls;b80DU&j9_uH~*gt$D>+Hisu)~);Dii8?Upfg3K7EV0N%;o97w4 zqGbz16LfqI{5Us3oBiTH4E&7rK;wq>Jzcfc{DQKQ^u~F-#TXz9pP*lwQ1k?Lt3SP4nI(X92xl%^T7l-wzf zcwm;T^%>1&(qYTFy+41WUN=pY`<~bHsj^ff@ji~Y(}Z9Uy+KKVy>!=JSh+TlK@b~T zMU3hMoL~GfQjn<-t)z<@+f$5e9&)pdvyZU6X~oO$J_o%!{Z7i6w(+&&oy(5Ve7&Ac z0<=>_??L$eeEw87n;~hbsN-az*Hu|Atjxo-A!<_s3$vF(YqYZuFZAQ|#%2a9F)l6;n{{UjVQMqf zDv{#5Rt8yJ19;m*_~+Js2_awZcy;-3rBb-9-Mpj|!pRWK=pfW&WBbhx-vZ`U4T{)> zm?o+ch@DD1)ZPX?EQnJmN<64!RF3}N=G3S`XDlc(=c>`feQ;{batbx_By)H24h}Kd zr!`fgRjDXe#ZwLpz1rtknY0C!MJ4!-uU83L8;#XM&_=k3iIqBR!{cMta>CM5AIpqg zG8Os4HvU2#U4|~47srX0j}dg+!`4v*KZfe+>eAvSuAHq(mYnq&%YxNYdgt3rO7z+p za-6b5wRaZA_|GE2lc(YRaRT&mM%Z!+AV8vNqf0$@+%pneK z=@~u?T!uyhW^Jm7V&&-0LWq3hU9eVj&(g!gi-r)81e&;NYM+Soc4Rm9Eo}X)b)b~& zNTPe=dw46Fw{}p}eyI_x*ltqaZ#LQTJvC@|bIDX@!~yJb!A8preCUgj_qvAA7W-rSJ@ai>cNhqlE)~-yiEohgV1(FM-DPvR@ zb9#Ks-qRO~1Tnj2=o3ISWnObMNDa;lNBWHTxr!8cZd!|?913?>o;1GrbHrq8L9yhR$u2} zkyIa|k_dCYUa|W=m;&I33t~lnmo6*AR2YH_rG~(;f1zI1_kmW~!5CjBe#7dckhaE$ zssS?a#3>f}pdJR(;v^^&)rIzcBM0QMzMh@EGx=EG$kXN^6E%x^&6K(ndrELKf0skW zS@bMyDCv9UwRgU`w#fefzUpXVzw_^;vZ-= zy>Ifb-xd-8OGJDZ>5NJRA!aSsNy|K{wl4h&w>H|Z=q_9Ko_9Amrv}u%v<}|W(@&>P zt=DPvd;DfWA}9VeZ(zTCV=y(C-BwWt>6c%|-gN)Qt}V)bphAaSt~*H@eSARGG$u*- zx~CUVt6HG-GPKyee8b<+cRB)~lH;Of)BZDYUpU0O`gl77bO za?Ft~cBs+7nm6{oDyzGIH9NxBPy_A162DIP*WO>a6&@GAl`&KToiJ6AVL&a=)sRMr z6sJ%mzqH=w>@$n|#0tG$f0EMgccCW}M{JG{eFaHXNS6TIowx~3qr%TlAM(ikv z$WSljnvj#H7e~3qd>+zSxwxBz(FOao=qO$$i#IGecw0|BvM=^M09$6ipH9`->^VN{ zulXaO1bWuq$1eAcX%VRK7~so8_lY9A(3|~bW~zy2tB`%X%sJ%tT>dHg{qPXG!0hvW zdz;g7IN(iV%SzFg&twh`xC0gKbXMmJ`2ZrU*O5585R=Bm4_M0``g&k`uBPeSa9d6Q zqb;~|=UCo7vm_#%vH+Y3rr4&Y%6ZcBXZp#C?_jz5&&6xtPD#=&d>VFjh*9%3I)i;d z)kR@#Sz$<4U0E`WJ*7(1!XiO!be7mI(~>(>X%E`qoTi_y<;<7Z?2K-zP2_|Yrus50 zf+E>yaXZqs=c7_6wvP=fkb!o|PSk|u%cZx&^ot2;7PacL&1joK_aKVVp=f&65YYD; zw;Jz3Hx@IY)oUH>UNHd`064*)ANkt+IE_b~7y1XyUhnYBz)Lo~f?BmI1%X3iK4#tq z6+v5jQ>ZJjc5mC_h9%`eyPi&r6VazevW^z71IZ}m+3MK`)I36ViE``>;0&6i(OA)UEtMY}HtKQ1o_*PD{obh(wPQmIwkcF3v=x@_q+*x!{6JG`v) z({tNR-*61lEB(FASCv)hmZ#Cm%5@Gaf_m}>sha+}LKd=oKd@h0xNLYTzk~Z+rGHKk-U==WN$f=2=xh3$9461C$mk;w5r4 zY?=yye*HA;VlF{xv?KSe;C$HYnk>ByH{*xvW6}oeiW)rgl_!nOU-Y|Qd5vA%4V)}( zc@jMTz-WqP$pQQVk>urih93AaP9i5DPWjACCq?D@-qc5={|NzK{WMVRV@E}$vj#z zF=3aboaFID{y8rI9($drXY*gMVwZIsz|0%KwG~qAibn}$96dG+Ar1M6kCS`yC7$ix zu#6J;0Z7tr+`?e)RQHF**qF3$td4(gzaL94$_o?I+_9u3J&U+J2@R+gmp>fpq*;y~ z37?8Zmf^>u>7jghd~H4(q-TyJ?Gqcu%=KB{WoZCfbdX`P-qlfvp*B%8F`x;>D~ zIV6YHVjVffiA_>F8RaM>@3#2T_6pk0sRbZU)70%uJAb+9a`d=y+d@RO(UL_2KsM3G zT}Vg@Ml!(WQ{^XE11}*nh@$JP%lt%LRjN5yWGvY9{YiCEaZGR5C{037Fq>u$QzY6z zsT(4{$;3Cuc)gX38%5NFK?sC@qZf8%683ybk%k7KPzQOqVvc~PO1C)x0qAij$bA|c zjc)h9xNe_FFcXQ!?>bSYYJa$eHK#O6^p841882y?AnuEYrSH-;*Bw%isKP9zo@rIQ zmZ__%(8M=uTn|Q9r@VZBU`N;G%#YaU3=cz~U_L(B`0H7ZK;Gqr(oo|8wabCfTxcM| zH4KzJpDtr)^aPW>eU@+>xaQ_CKlA=`-&IjHoYEBd%RxngoefoMYuuv1!pzWg;}XMM zDyQ-U~bX@o=h2F z_5m>~*ggY4=JwzJ7VpK=fPg7#(8{?Hwcj5{(#NlqKW%ROZcp_Yi-a1dqM+6hCa7`h z5nldd&rq)sPSEK_A>pev>n+>gb&D_OQ_E`AVSdeu$*-?`wy)SxAb2@XGyt}PB=y6` zj~eA#i|w9FX3|$_uI!3IYU*bDZybwgML`J6&X7uJn1vQ2o?vlsY24PB$j!{>+3aA9US zTRA?rp;Dune<8*& zgtaRYMh$O5d`?StvrHq-F}sBCSo`0RIa1_QRw$%;ag+ZUR4d4Vuhlo%M&3?*!@58Q zw)YNfJ^mf_{rTP=*J&KOD3C>-gSf3%|L*=d=sF3DV-EjxxVCf;*5=)<-EM3%_A8`# ztxf6ro=sTe&#=c@k;@z1(A%-uXio}F8+)*Mij2xM`!H+gBfr1CU52hK0`JFjL{ml6hr^S4(>F#PQSqx}mc z!wSE-GtHM9x}qC3H`XR$|4p&N6@#CG@wt+$YxfXF-9Ab~NfFs?5fJ-_Vym5XBhJZb zie4WtTa{2@zM)c@CiAM}s0uL{tM&_Jn&+6fu>Cu;WH)qWXvnq(o}5e?`li=K6WT9~ z93a{BYEP36zR3Q;*rMKf1S7K;sH7i{X3sEfWiFMPdLZE_Bn5?^(@dw-QG9oNGg4u< zq-Zr?;!&yB>(jTUapwBJ+7EaTgi71)lDORx%NfCK_YvpRF3tnJaf;rPV;Z4*i zFjrw@4(x{C)3%Pr8_vpQkZwWY-8||L4tLK~utk|XeCzLb$R_=rl|Ag5XZD=`DMq2S ztHP2x>uR?Z{#UQ-AU!-q0_&z71m|dV5=W{GRnYg=cFsB#=)6}lUQ9_mz%xVYZ!=m( zvdg2r41xB$h>}1N<>}>A2$_|Vk*b3j8&cS5TF8&uFjV-NaUK8xy*3&276V7oct%J% zw(nNw`T`bElyyNp6;gr!oO*MXN3x1IU*x*P&fAU9D$aw@XLYeCWq6gxGFGKkiI4{; z0tjqy6sy%UWBm}a&zUO9zR!=zQ{h_*oqE56@>0zoF6VHa$*zPvJZPGB7gAb#kExMe zSz<;vZc*lJbjpn;sHDR}p5P4lVAALMt_vb@I1=`BBMc_nW*D?1{`1SIp!>BLcN-Xi z6DgCKRrK(;{Zj8WTzX?hY(u7#Mq0z^zQDFzV&B z;%9(HT$XVjzb2w5_C02=@w(*MWbY@NBEi8e-Xd)E{d7IxzDgKSm$js4qG7~?*r|d8I^uAbCw+xXb10v~bNMK<;w~cHJ?VDwM`X#~DwaKp9BB(*M&D1C-Becbv`)3A zd!)WCjN@jdJ06Bq%HuNzSQj6N5ac`i_Y$Ecy~EmrOqi19#(t?~(=42$Yv`MP;iJ(( zcveVdrmQeY2%%J1DWY$}(joC}r40mpXP`g~`E^#x&^cB1AXDRvn;nCj?8wQvT`4ZJ zaB;m*fyi7*=gPRkw-BJ4Nc>nJZn`wuU29;0qIr*PQ(hBna$&#tQ!qTx>Kfr-HpzlQ z4ZOtAis{1<`-Ybh$YXMOq^S`yix(0-0;tfajwqQ}5=?QFW8P6kPtJ{f!nK)h3=||> zc37tpd5NOgqD=tPmLikH?Et9+!$MN{abm>Is#2tb{aj%bL^e9R|291l2%MylVr)cc zmnpPq8ekU6LciBkB=W+zM=Sd>gzAcg2bmq|g>?yoz(g_;C0SkK_aL);J;4^>QS~h@Qc5;d^I|;x#EbJlmVg+Ky9{_2no}p`@kJi7iz;eBD zX*fr0Q`r)c%#({)`-!@IgTp}6(i?wcK?f?F2BFrDjT7TIjI+=m_nLUP%e@)Tg~oRs zU>a@zYIOiIi=bwcaYZrrle}EcflXYWK8}VXh^8o&6_(`uFPAICv4p0@AtKzFQ?z}0 z>u)?CUdh3ozvJX_6*R}@@>t(GZs^ISX`Rhx^x$6b)sOgvr5}L8XI(7vykUDN^=+kdNSSZGex0 z)+;n=I%U$0=1c>})NzQ%X{YuxO`{H3FyaevJ6W6!=JW8h5rDNe?oJdgKq6D~VEw1)xT_7YAXD?YLOsDx+ry^8j7#Gq1Mbw~`^hye4AC`TlaIOnz^#BHPu#aPqx!M-O?sl11XU6lEi-T^6&mMG&Pm%x1#7 zYOdidc|Yd3l`+`x6*Hw+ZMb?d%G%FGdmks3bvxgOEE;@N)E^npH1Q0lhz9-GxBV?^1Sn-giCb zO_jOA^=dpC?tzf#-(|nm4-%~6J(VJl8pZ`RmgOBE=(neTfZmTUHBSNGw4qh<%)&Gs zt>?zhBrzmGp}@bo9{8p}jd1W$IX7CYh+ggOpKr6_km?lwYIU6npM;!>%c(S)#@)>IFL&qGn$6S54bk7$ zMRETZb2T6CpB^*Dq&oz4A1SqwzX&N2>N8!U080!|fBO*i6T}VuXM+~&8>VNNMPD0x zlwGxHUcD^7HfSb7FGayA*kRGUKQ=4AVGbK+brfFZkjLI-415qFn1m|fN!QUVJ96*~ zE*0e^w+?`i(w9y9VFI?!cFe1Wc+YUxt~B3$Egv*wY$|Dwvh7lH@4B#eX;U~h6iwqy zt5=?9ewE*RR5WDz?zcbsy^nuyy##|^h5vlmgw{TU{%sa*rb@)PIh*t?-!n??{sg#!9m= zvd-C&$XeG7oOMHH4)N1~|Kk?B2+N=P|J-2g8^N|vzlN-)xnoi9(9*H#o{)q6#oD|U z$)b%WABNSku_JQE6>`l>EYv2$CgYNiKQ@hlC$L}gy1E>;I$C7C{S5o|VbtpHK(xwl zq~c*c=`fTPkg&DOjpVg5ej&ri1tPe$zW zS(XE?V3+i7RJ~#qGJKUiAdO3I_%b+ZHTpbEidsR^j77$btU}AkEtVqi*dfMEAuf4N zsXHe8*Ai=%oofg`;sLONi7z8FWj6)R8c7bnrL*pV=lisW(sAC8eA!1vJlxEFZ3|oh z!|tlIpd-BWk~=PbZ}4nGq;H{fn_Pw9T4o)jQK<1J7PR_=p!R_M?m!F+3Xc?I;t)ci z%FM}#;QgL6W7mp|&9Wt7Vdel#K(oKLUMm$TjsRR(*YX4m{ett-XMR(EK31jgzb3B-rQc^FRtTjX9;Uy_QuSCPnVVO6h ziyx99&krb|0UVzNu(GPDaKL<9!pwZkXp3&caUuHi{t3v6UapfGjXnO_Ztkd8++s`j z+D*CHh1UIT{l_JHqbN$C=vzS^hVy8&j5O3jbwDqX-U>)06>ERu34rgMnJb#5YFzOZ zjaLWB#J!DF@H=aBpKz)&<9Y22b09cHZm2~lCP@KA-SQbRBJPkSn>YwN?qpwPBZb!c zIvQmTqQFpr_2h41K-(*guNGe7+3GK{$}9cqWOjNJQQ#4EK_AyDjkq*G%s*4n64bo& zLm17Xrq6_PO0W9v+XZ~Po6GXs50?vV)*zAfXF_u8>I5ghMAFPNvAOo=gpj^OAz#f( z40IEvH$7l%>Z(9tvLow2wvCng;zza;N<9J+gj zG)z^28co9}P1*;4+VshEdmi<1|Es{-RNrFxo*&1(aLV-qSe6&0P=vD>L49hRl=v~& z*=;kJBRikP1H?KMe89t?^r=H*MmVy;jwGS_c&1iTM$2R(Er5LoVE{BFJ)Ezdx%7RX zMZl^E!U6J~2|_N?-s#M&X-g(n+!a0XlER^o`P=7+T%Bdbaj@@H$y>y>Pjvfm@{Lh0 z(=T@OWxh;fPZmhhc2k%144IE>kE}#HG|F74(Dd-9`KhV%k&do;Mr~_6+wrg;hn~^3 zrXhn9h2bgY4Q{Vw`sKrSFLenqXiCldPI0u1pl&{K(MujL7n-uwF2aJjYqy4L*OYG? zhA~cv$7^XGR6828%-Xe*_GXhnw)9b-Id2SS*zC*Q<0mxvVE5tmhm*1OK6v+zw=XIA zV6Gp|)6h0_#bhU2arVpm4!CB5nyj3f{z#;9@?qKrh!ucR>?Ja3d*z7!+@JOntM_E4 z>lgpf09#4G8LL3K%3HzR58tk|Q{-w;D#c@7XlwnGiTdjyO z^^mj}tR_7tW*Wsw%aFTE(bL`YNf>b?TYjh~qJ#u#3)qGc==ztotGLr}6e=QOwe$~j zYg@yzq`uPWcF`8T2JSczsPi!Gspmbz;tSgsSumW$i0X8nt};5pqbtmzSxl~e3R9Lo z4WXAE?3UZwZRJ^YrnTeI(!`Ba1 z*Gm?ME;Sw=pburyMW`r3R4das8)*U?M)|w99vE)e2wr)*HP>}>u426v+HWVrup>7Z zP|l)O>BPazAUgbE5%&pee?mRZ`-TI6R>G4$we9lbJ63c7f_#6Y?A>kpOg!L5xBpYy zEbWHVCk*2hiDn&~+4a`&QJ2y`Sf~n)u&Hj>2!kOUCa1~@792>ZrZ%sLckLN0Rk}26 zdsqvPkf7Fufx;ZAo(=pArjs)fk1$#J#`W>81Y=GLMl!O~{xCGUpcs~$-z_}l6mtQP z@59v#6NV~=QI7*DX>Ue)0e$qZs~wy2v|+?Ll-71dnE)9U5Om#&DycfedlWT}^_5vr zYOi@@v4Fa=!&};NZaUG z{eDy!%k$QB66}UW_M2sU z_m2B{^h4!L?bW%l5r~NVI&>|n1(T-$;m}Mq!vYocz*D^84sekQ2g3PQk3o}N)=X8# zZj)9E&ynDUpn5sHX;jgl%$3kX1Il^qCc;U>hdHw>&v#0~(E09148tSqEo{3mGmhd2 zttN2a36GE4#&ju`yuE&r-GqArzxX_-5*X!GgqDLFrcGov9(fc!I8q>zW+VxcBZlU* zPW$~m?mqg*?OTgBJl{< z6YxPFkYENMn%arRL7mA<5taM8B<5c}Fa>xfrWGw>!)3NQgb)ypI6N$=cUoy{n3cxy zeP>%NMFessC|)Ajkj0$?9o}g$d6ZANE<3}nEFX<;8j=)Ruy;MmR|iANw!6|)EFQu$ z3iwnYMAz|;BK*iHsqzl6q=TAVZkQ?3nC~yyjys#9^%EjX~Ys{|4@8-2s{L` zKFx{?`6`B7kMUPGRB?U%$cq*KJJpC{L$!+KZIF~($YMoR?4+zX5Y=PJ$M>__vE?zE zLRC#9xxI3!8Gj!JzGKHtS;T*`{`2BTSO%I|lwgIMNBryi`WWS8xrg*8*`V3;V2Kch zYA7b<&Z>kcNN!QP9ai%LZZzpDRGgQt0+_1&u}=YMw4KA~#`6aU@iw!m(LEvNUk7=X zjH8PqX_<|@GA8y$A!E?`iIur2X!E=;$~iT@9DSfC0Z12n93=IfmO6T}wAb47AZ?0R z71SOl4XM>)9kr;LzX71*^cE(A2Fo&3nxZ{E{V0ts0bNTIo(UOo@IKSnDWK(fOO>f(j+a@HMH$-b^9IbM)41lt{D5gXO>d(kD*#*?qO$g#Lxtd zX>p-ec+Jc3=s_{Z#snBM#hSa}KpV}*1j8$_U#p9KOBCU4ecL)Mnibu}SL=~6)}VgG zA{h~O#!XGJCnY_rJ15vM5cv@{5V$w+T&&aF*3q@s2v1ZDHGx?j2R35%ubv>MBF1m; z)fgqyT`9DjH!Ffi2`Ym<$f48vLJtUT&Y zkCq$PAYg)2@zO>NnV1{DMar>Yg9j;2CI5^kL#SND&Vh^HA*wD4M3)UywR$k23%0Ho zq$kc_?dFf_9RL&k;)SyEvtfuCgdD>)&R}^OeH&dL)WO2J6p>epTv-7TX~zUNs8X2> zNN}HTvY!x;5*X&7i~8Ci@+&nhYjY32zZQ15^EGXsG`YQ<^xjKK7#8)gyYH# zBRgSkWCgf6hvOT23W9eNAzR3FAu?x0($NLSLN=QSuP~GD?0TkiOpL&={Y?-A45iu|{6Ucz zmvsr6Yrje&P`#RVvkwL+WvAI#zNXj}x z&LCBS;qpG`jHOYaq0L2}CSl`Q?`qFiNOQ~uiw^oveseHc6)y59KzPZ&4dXNO{rhm- zTZ{w2T3kNC78}tIgiISXy->eyM8+Rz=-jpw_`QH$R}Mrdc+nVcY>$XA82trL_(I#v z$$O~U+h!+iS1&-O6hqr|^o=6fti*bDromBWWr0pl(uDRk*4Kes=w>bLr;1{_U=4t! z*+{_wq*&vC542Hm#QM^Fddn&+j9n^rv@#{eUgc6uQYFRLuKF@kFbXK(_dzvrQ}WdK ztsqV;V`DI{ItZxRWv+*{6L#?Da_6wynQin|Y74oU*o0pMEW{3=7a-?z;Y^e+m@43LSPUA4L;!h$SdjtI zygFZRz1GXq!(HJblS+W7Wqy4=y@sW_9?cT>GV6iapmnrS2xI@dM=-e z$NV9?Pw(8Vv#}R*)+cS;rPO34)9bVvp4v(TNZF_;s z?YX#r*7tuBsNUhX<_VAgTUUzkz5%Z@M$-LrfiZjSu{HCxENZ9VAvwFvkALg4u^4U+q$MSNrHe7fNj?_5x}CW8UVUdp{eCR={;`O z`Q2?l^|3CKL~}P9`l{8`SSs>VfGkYJksI(m(_vd}(T{||?Mk_v7Zx|yx!HruE7>$o zsU(o1@DsmX{K5aP{oG_c81aT(SARX zTZ{+w&kQw@DJESfa#P#412SrDTYZ{+@!{_ZVP*}2-9AJN(Jke5rOIfzTPQqK02jo! z^20gM)Lu4;T0h29T*tPJ%wJw8@S-JVE6a3#w)@ZFQN7n<6>j{V)? z@%YG_f=V7<40sp@dEvb#%#kURZK{!l;BB;krn}=NNlZrxB}nm08nvJ+#6tipjwV6t z;!hF`Je>g5_X&my1O`T5Fqx5vbhNC*+zolcP|*F%#;9uac3}(Em6MEtM@?Zjiy{%z z-(4w*BPKYaCA15+=LT%Yc;x6Ztj~=Y1ccSg&7q9lgiQ!hxmK@<>j0w+Qg2gjr_9tU zdJfWuPX}AcsdH^O!+M!j^wPV4@CBBP7TvUBFk?608lEXvpwEh(BCNRtnlr4{)LG!I z5g2}=(ao~WBNlajuGi|C69 zPKsM_omH>`^NaM|^;Nr??O5m0PwvdY!HZ%d?XRtsroxjoe@@Tp{;Kwl*YgLEE9BZ} zR37V^0?9)%l zrf_oUqBVh={Z<&J)h4}q&X<#`ixMY9!hNokPq{$V5f`(D?PdlparDA|;ia%ERDDaq zusnILUN#KNc=00jQEEsbJS6ivDJ)A{;pi5w6&z!t26pKTQYeIZy#~`RIr?K6rq4`| zna%VDh3@5450U$YR5CzQ-d$@aYTk`TX3RWIJ(Q`g;ocND5@B>oF|%Qdz^x3#i;)np zk6B@rt;$hqh3i7EiU(@lC*H-n*5SloCRL}Abp{HgnUW4XqG!9(qxFb}O!CVT%d*Z# zYMP{^<#JLo)6MI)+4s{nsKx_<^QF<-IdkklnSLN~ZQ7fV8Fnq={d2ug=R;rrX1EQjOPt$Yhc`j#F-=R>RlSSu<=HVmUUr?fwL0TJ zKdCqDipsL^!oQ%7o$2>T}3yc3i!cSzi(#v3RZ?5?(yY zeCjUj)L$&ikWi87s;5}ttTxFhe{Fg+A(GmeUw6-mv-Ra&h4eObF)v9u0U@Pn;4aY$ z`&VpIlfOZb#;N&~Q$wbulpJ6YsUJt=N*OPX ze1c)uwZ(0r!9XhHJer_oLA-ZH(aOrL)9p089t3si3X6pNbtL*g;HsJ#YMKa}MjrJ| z=2$bzgpSKY&`4+sOOH`6L2OMZ19HyWlPi?LE9HRrd=7rjSLW7;RurcdKRsgR=BAh- z%^mi~e3)ZNm;-xRHEgR#ikXlBp;#0YSp)L|St%JuK@!eD+v3fCUs2R)VsJ9t(5I>( zG_sYdRMRTF^dY;_w@%Xa>L6b+J;hYkuvpV9cQUiA7^m|^<#O)YyT=;^A=Wz%x->(& zyL*0m+^hx?a?K$DcAv+$lKp8+=5^M5g%{i9ViY)lPYx?wegZJjg5!^;0Gwi3J@t@= zML9&Wmy@#nmljkR%N5q{Iw+JF*#m{&d*h%(i4DVJhS^JodJR=A5F8hn8r1Xola~ht z7SSBXjm?_JOzcvERpnW1H_{O9Q*4XyxzqH;7#EqrX6Nr^tr$U1DZjB_`fbDF;S^HV z=j0?8y=6xjnP@D4b|#SqQ~hJYc_ardt5~__y2EI`IMp0|m@BF%O=FzEgUrKg_B478 zY%LWSZN|$A3Z6n5z(A|7sEs9Bo(C3X6k5&528*zY!HwgIv8PsI-59zAh{28)!3C(< z&BlwhH7{pbwk;Bs8`6e3HL>Kk`sw*BMNRO?dxb=hYt`%!w4K81wwIvmod{KF0uAlJup#xN>1~5ggs)? z+u-pyXO{+1v5+g##m`;Y5jvm<abV9;*UJm!npX1y z6??@T1@$$>K2Dz)7tAQOwY59^^Jjh@Is%`@Vv9t!Kl?tl#ujo8k`}c{qdpAFAMF{_ zQuq_YpZLv7avo;?5N>t~ZnoZs+Ll`TL1^LP`9Re~JdvX)k^N;q$KWTGJ#324 zIqkM;Jl1`WBw@vPtWkM#p(RU-A+~c%t?Zf}vamgim=$^3=8|`hx^;h4(I}#y=>Z=D z3$nDQ-XI9_W4Z#PUtfg@sG^glENFlXJ>S2mQJ6hHmZL-?`nTRv=F(=FrWa~&4riVA z&XqdN;q1aecrOku8g%yO*UeRwS?zh2?LK>hSe;464-RsM0lagEkv8fx!%+&lB* z??nampDq}v!$H2VzB->* zdu^V_H%)1X3VY5RdUzuH_%52pGOy5e*`Akqjm`c-XOe|fm^!GOCut7rz3h9!*p!@};DA+)J~F{XTsHO;-yVXnug@vOf4_#|}5WS8UkBJvnC@vS#A(@VC~*R;s*S5JU=}v6 zR_4dbu__O^DF+x4VnPWE17khiTJQ)!8JoW2d;(Iu0g(|-HjPCAexAhJx6zV<Ks^ zj~9C)0XXw+cuzd^y)nT$l}OyFgQdt7nIqWmuNQGVA7di)3Q$NtX+j)om-;~AyV$^K z|JsiqiQtdE<{Dl+O+(+c)~u=i2=Svvqg!vni>1H&ZZyYxs=fkG+d^@x2wF(T%As_k za^SF#D(j*Y8xZ#0KC4n^s|Z7ovm+1`;59kj-PE#!0QnkA-AX_stp3*5Uw!%E+o#9f z=4u^|`lFpu{Wan*jYhX+L3i)NJy-N_#w7uiz#YNxB2EcK(Y%Opc+&%NZ!wkxi`VRr zF)|;8wG)r3=u?PI++%O*>WE0M1N7SJGjtGp*(<5qXV5`Mp4j-g&3%5oiT7qm_}M`8 zl`ED$9g~;^58Tp3OOq$a*piR=#NIdnLAP%|%}tE2h8jr>{CORAd$V4KBV#E$v|3xX zEeQD3nYG5^GzW}FGn6CBv8KW@&u-Z~xI6(SSQ{R>?U4=RatX-(_U+BJW6w?tPcL@% zYdNQ*Aebyq>lO>{)Z;SZYbyH^{PZ~N%*jp%mKh&hq<;9`o0s=@w-Z_R#T|>~H{fK| zWggY7@4TW#{ZrO4SE~H^Ga~pazxVm?eex0G*h7cg>bHoGMx$#;cKP#ZGLO~rr=w_0 z1trdKV4zHF!sHIUIho@n^B22VNZTI$GV=E7o|WLM72mF2zPS2w^W}Oqo64i@!j=c! z|01Pe9M~%Pohc)v@v!x*6^8Gb!8kBzAD^N>9fxUlJ&^r(NVGJCedh@1?7UOEj-;-L z{`i3i{>wlA{BrUSfB5)^lUN0#!?8ake)w|G+fS%yaU;`YpmuSQg^sx+2_H9OEND6y z(9(xMwvYe*J`9Aonjzx2vRIgDuGrK(d_g-dq~J~n15}tSb@tE+dr1~osMXJMHE;BdnDJ0-2=IO}Cnt`Fa&LS6ooS`Y!P zsia5M#wfQ;L6`$$2E8Tsa+~xmg)XS+o>iapmR`U?q-k^!o@7KKh-~#PNO?DUQ_|JV zOOe2&K)_Fs+0U!qrzZkFt&0-AtDcucw*eE}+X$NJg+Ak;4beC4y9Y z;Z9tMG5~#No|Dx6Eyr#0Q4tLLb=|_>_(N5lDqrhmE3%3hUs-l*?9UCNo)d)lm;|pH z8~ji^N2p>-lZyvbIE8Q}S3vD$qj;GLgauuNYJu-V0ioU~Ye)bLY8>tttx^Heej@6s z;EvN!Ib#gov$^D!4ovpn0NW(q+z18E@cP7!W zFPC!HwmJG;jI!jZ;zIOIl{#=Ms-@KN+Y8k)@k%Wl;UW_lHodSJTW5lh_2K4mtI(A7 zX)gO*iE9l^pPa;)(j2+|``CCvt#&D*L3CG9D-BGoY5mGEzwv*QCNery=&{5sEhe}@zYBiEAxvc zOVp!dJN)xlD^`wy#UH<4%dz}@4Y7zH?d&*@<3#|>+=(hlHFIzdrtEVUtHXm7N#Zod zXVvsAu%dkH&CAn$)E|+fp*2n#v)tExYHLAie0QSLDukC=wF(H@1G!R2@0OHI2w${U z)^^$bNy%uC;h8o^jsRZk(Y6PA&nSFx*xUpU6XAH|d#bTQrDo@E*R%ABNH2ur34n%| z#LeLZgpIMjSzY2XO@;>y@akW!V`4g%X7f}C=GLi`LLDY}arWCbXimph`o`$#>+3Q& z1k~AdDro$vgGYpaGLlkrr(l3aiEOBiS7+dpL^|t zQ?1=zebA!={oc42lKe(*-7v|&+T?Z*IAZn>kWh;-etxV7%u`=fvmQFDLBm?EQBw_v^F> z!=kKGX1iIYr0YX^tef&zm@2uAWBdS47id?fh`4O3PGuK%dzb&td4feO+xqJ_awJ zA6}2I(@^fKeH565RY(G9PzH2V4FV};(^lCoD-vh&CLTpujGavnmng*TT9(gr4m?Eq zWtWZ&&)&P9E_u+?TI~(ZsG1(po20jv!K}L9sBL-9uv+gz)U{8u>|`GLp2G8|^P9y@ z7=#wq?nQpaB~6D(9V~?5e$^$Irv_x*Gps8UIojGS^i5}ap3m2$=kY*JkYrMK6@ydB+=Zo+Z;GJIL%|85;m*Fb;A{$u zbVr>BXxj)kISy`&7^MB(2fLwr;$ALwWH`GybAd)lDYyS646rX*5~LEhN@K~yEQ*f0 zw2rL%I#Xn02?+!u`z?b*9K}a%^mf1~kyf)cPu5@$B9_`KYbZQHKiV#jO{>I)@m??2 zEG4cnN{)_i!jGLY7)0Z!zm`S%fG#tE3(kTNzRq@MRI*%#8%hU8$<=C);@xqV;HudBm<#RPDAl9f1`H_= zp`lw07JGy)J7e{KYM}=5twk@f<~X-Q^KWUr<@s))`-m&gWKf|-A*=iTG_==_;?tq_ zk*=}No9gSFsV<34g%u%(){1x(GFBw^0*i%+j4jYM*OKi6OANzuOE&rr!%h+C=Rdew z;G*u=)cKz7N#ulP8+6!V zp2h`+%*f}FFrFgz&6}dfb2{<1<*Nb}OmyQEhIiX`g?x&BIW-B4 z))ru()zuu$sSM^Mpd172mlfK;#R8hyo_I@lWifS<1Pc_E0S3i8X zv16hOP0!E#`yCwnfWzU5n^I5#TW1q4{@2Q+ERCaZKmfVJ?R?ncG<&QTQntbCt-+!P z24`cKjSG+-*J5dJg--^#KSBg$)u7m|i?%~{b~Z@Y(%_PBlfZOgN&;?zD+5pY!snxu zt$>Vq;v1+A(8Z=m%y zt%atWEx7eqiBBM9$CJ>c8tdSOp@HunZLTOhC|KS^N(=lnz(Xjf#W=Z9xzGl(q7CV* zqzID=qcsXEgUC|M$~vW((@33CiCYpU9v&ET-i%kmbxbwo^OqpzS;s%WU?f+dr{8PK z`n$V}jiV#OyLN8haA5OT_W+$z`*zg9D?T1V?h};1}p@L8=h@**+OK+Ud^b6xNeKwkX zW}8Bp6xyUVH({JIqh#Tw<-lGA5|YGN7i9>mfySs(kWpa)I!3t+Wx@kcy(E#uRoiRS zuZ0|{n802yqkn=;(8*8tX6dhkutojbbv>;tbb8d)cTgRfZL@#+ibb?>@n6hQWq$B9<&ZxQJl3OT|+5b|Ch-jS}Xh zzjjnN!d?EhMtVeytxE2Dj6KF4qaq(vB)|Vgbku+M&1h_N)^1%_3Py+=HCP8b%^1%R zzNEbdG#1sdh!-RyF#Jjh;QsLO{@Qhj0PoF5`0?+4^1IJZ*B|XanopgbyX#IWK``}7 z#E1C5f|5UeE!zFxe?2I7vNW|bV>S*3(~|p2!M$Cv1@pFO zaCd%>$9Dl)Kd2RR^woNKMVI&ts%Q3_q)U&F-r{0983&&0fR*|CJaal8Q7sdSP;A=H z?%`qEsvuPB_0eO;6EeIOZUvQH`xvayCuBzxC`3J43Lb)5&Vggc9yAg?Wzg^Ny93Zc z9<>lq@IB!C{G@3NSZZISi?i->hhXJ>-WHi-!=a=m*D>e|G^>@x_MmQiO-pt#cs1D! z@b`o9KLhF%C3A5;V{3GE90t9=D_+>*fc#G;s&3_M9Ov0{<;Z(f7k6O0ixuGrN1Pt0 zyVpXE#@Vdw<#|D^8%E*5ms8KRHsh!aVxO4bYzM^}{KHV>f4>$5P?;wqrV;e$-eVk^fTxT(OWz}cJ2Jmauv4vf7N@Pji z*(=7mBl`0A+^GLKi?fhfXs=q9In=5@jF&86v*wuj9q=kR$XPZLSKRiXJ&4Hl3xBzctfx%c96P5;(MC^b1ELFxn76hFMVX2e z#7aJM%gkRxOEw!`rg*1SUpsy+AjTDu$n~lZ57VIoW7>;fY630)#BZ&FzU@&cg4^-m z{4y4%L&mL9ZKvk9%TEE8s57J~cQihSkr5=aoyJB2PJ&KuGC9_V6|=}dyq1+I$5%-6 zE9FNR%(4VIn7M)rqOUX7#3pnA)>@dX$t(%WR@L)rrklm6l82r z$}XnL6gVS_2$Q_&EJLn-L3J&JdF89H*?1%8^j*WNWK zhxjIZz70|_vRbqD?r!HXy9WZw2F9+KTONZpF&eT}re9^ch-B^^+Nk3`VG?l#UO=4$ zRnfs217YLrOwzcBgm!-yKtgOO%QFZe81zK;4P>6Lbp{v00x9ZtM=AqDv#SMqhO}Ya zx}Xo?R!SSw^@&xFKlDpkidGdCGU4s^4Cf0LgTlQFee1bF;bNKD*dAMBgf9N)If zB56Z@h-rJC<7f)hgB>S(a{?;8$A;=czuiF zN=`5evQT?_#&f^!`SQW@<8ft=Gn72CNvkQ(>jK$Rq&H8%@!uus|4N{DrQ`G|>sqt* zL851qTVFov3Dh?2$)q;f)SNG5G#SUyowbzO0)7?>aOrQ%rGG_St^UohEEX4Ls>nj$ z1)64%t5X-Y^6X}(xA>Z~;U>JY&$w`5hSV0^OXhF+tzgYDxHD7~{Vk=K31t>m6g`o6 zipMkJTy9T2U|Id&nJfVROMvbz+O&0%`JS$E48*P1N=4Vv)D`{!v-_Uk5$tnsF%J&A zbDOS};r`t+ytZj3Y_Ec;yZtUD1#`m}LG?PpV(8W?7^uX6r&Q9FA$1!3zGDPW>{6wG zJ|0*<4P@!7jpMi;6(<9{-4nKH2IOqL<6Dab8+gnK9LZ>~scWHtbM{|Y)}x}S$7X@L zU)W$)-I)g){eKvl4^k))Qr({fL}Ved`3n-!&D>nZ9h)L2Ry;D1n#uXM6^u)QAk*A{ zo+O?6LQYZ2InVER>#Y}b>kV{O<;5*k-tg7a_C1v*T)?E*>olD7bj^3J`WAUs{bc#t=RLEdNacwPGr|8h32@hnNqZcbmFIXT*DSycJA^UWK0 zhJ0)J=NI0c3jUopGv9cY;D!ebk!emC*CEC>wxv#R!CzBZ358cc@+hlmk%-czx8HQ4 zR~R<%igGs|Ls4guvuKd zVF(hEA99Ybc$iHr;6!%8!bGkGbWyc+v`J8-%YKD^`X^mCD%9*>Sc`FdjOVGKf?->P zyg&*8*aky`eE^BpKW`Td0pur+EiAQLkD7OMrT4w_D*_dIm)*Pl=B#Y=H*epMx934% zu`S)(x={Bxe|tytQeSv4F0;ub^8Sm#84?qx$erym&lR3O`xm4Lrb21(R%;Y3mFQ=~ zGejwz#*UJkVf!y0p7Lrn8zi=!p)Yo;GNp306xi`henUIc*ru zQ(erL1XV*xqV>Pn8QBdg&(Ly*P_o35vGGuOzC||QB$dtkrtJH{_HKTeeEAQcuqG}h z|6&62bI*3X)wpLj6;I{ChnK9vpSq#}k&Hz%iJ_quVmy&Rzz#4o8OWT)UldX5vL{Prqs!2w^A2HX}q0vMZ*EO=3wPI;D5-k}}4&w;Xn zg)!P^S^sULu714&JwBnQHzYc@ z{HsPgT+uRgO^$_vf!*iF>yOiyFq^Q**6$9~Zm?@$Uj-+XmX)R1!ac0%yFwRL+> z7#Iki-fofK1x)5493YnonANN`D)*HKvM`xI8sIZ?EjLiZW*zhD!-QpfxQ?y~JQf&@ zb*b0VTejFQ!fIwg2o5Cm!u@xg*S<}=zA#SAg3`-qHgiG2#+An$_7KFaG?Y3hnFH@~ z#hde!$afW4;C|O_i@+7KU(vNq<=C_XFKG9RD`8L8&pmLT6j%uPl}k{$$ttxVx}X9o zB3EqtCH;qsA$iQw`XIYPc>KmR_8djx*?$e&B$;?jtj*=rw@u|?>Hp;aOVrm67jwvS z&FP)8kvorF0$#PyYtjX8#YF$fBfZxC-B zsfAiI4)pw*dZX90(!UYiA0`JIn(EDzYx?oLt5dQ95U5!3k3Zd9 zH#d{3x4Zgt#BZ3C%M}8yqj>Scg<{x_D@#%}z4}2`-3yX!T4$PV|LGJP+iBO|k)Iq& zN7O-M%jXk`GjRLrX|(6oX^`~30Tn9dsvYTs5=wUFw#`xh0QdHV==N!(p~)R?8SeN# zY{TXFPg8rBz&T(Zt3M!qz)<_7`y1k9et#CEr<-!kh-A^~ydaOBZacfc zDu=L&72o!sieVA_A1-@fQ` zwXXQHZ`P~cd>s@y5`LLV{(*8FWYVBsE~$9d_BELIc;n_5?a2VJ)U53X&)6z4*7sKk$y}90MTcu2!R$mk6{rO+#67S&% z8FH}I!37Xzde^Bib1+f)taS2RmqR~49;rklz{nj0+Y1qcatXilC-V&*{G`A+qt zxM?`uf_xV?$I@^|9*uskY2?v6IPk`0mc?>CeGe zt}mW_t^>ClLqFcP4FvsX#Y0DV3QmoG&5@?e!{nhnf_d4ngLaj4CV> z^jda+eq$W>b=POV>g<_I;u9oxorY#+T6AOA{BX{Vg3RL-BH>ojc1J9E%&cnaCgpVC zhOIEa+0fPGG(Tjc5M`rQ8e@rAjF}_5=<*b^63oV^I)ZSB1KVJ=Q?d*L8J6oXMyT@5 z)6BeWGDEZt&8&IjkdWkY%&H5^Ja+<_t2od5w%>wsQ==o#F%2*7ysf2ITG1%&QMU7i zQMoFaMgoG}$vH$0oZfzNR4!&G>1Ms{ zRPev{IPe2Ox*h*maFU|s>@6uaqIPY4rwDrSK>Q!&tNavS#@;yvQ2? z%o?fd?Nxq#s7sGX=XCp;gKBqDh1Bz}Cdr^sls)?o!HDa%7Z3pyY2(dquzQxB^^zgjm|rZeGCW z#)62SEeJW3;?`M#r~y7}jgD*nwi$z;KlEN1>u2HPFHDacs}lXIdfu%jwfR*?88Pa= zY#6#}c|M~uM#Dx$QWPN&`QA6)O!oBE=KVpqDSNTZn*rouluqkjv>Q! zFuwsE1tMS`P@vFv9md)5A}OAShNPBjObOs+Wvgp)T{ng1!@t9^s!3!jiXn>nA zIpb2I9ClhNX0&}Xh>lC6Jv)--&8oM{v{#Gbk>r&DSMv$EjU~s5X0F0E^QFA+z z2F&pf`(Z(%%Lu}q9U&_n+sW+p9{9kmwOO8T+UnPI4fpw}t7|vs*)@URYL^!4MBZTm z=x>5#j$)BYNGY39IfGN8t@o8VEamb^l*)dE|4g$;cJWCa5PL~9C-H=k%dCZB*N_Rf z#Hgj^G8j^#c32M4cu`l$Tz#C{jO#ovvFTyf?8utx3)IQ2u7@v+CiAM{mZ(zUA>S1w zndY@C!ws~xp%}QKhEXSzrlEFdRjEAJ!wmhXi;3t$rW*LO2uK$Z=dRs^N6p=vB(mIx zMN_E4>=t?bN)!6`Eh0N46dp*lj@(A72jb89RK5=J6NWkvlrm595+FG_;jUfW` z5MhlK(Ru)iUC6pxp>|YN@5!5qgYl|Tu@%9YLqw5rF41l!Kf&VeY$$7lt=v3v)izH& zq?+i|BYHLg28|scI1Cggu274j4t6}5B5%vCEl=Cv04zwj z;mM|K;|Bl43%Py|ll@sQMHgv@5^EGG#6tOX))}hH z@g5mC$$99}TL2{uanP3ZJsBnoMmaB$Rh6)ys{|Cnr$tcNHL~>%NI>f@>QU6LR=#2G zS*99o-FN|od)VnL1;WVzXPlpDSu%6D9XtMJiJQr7BSwozQSK0d2cHJLdFYp_buE&U z_}1MEiWy`*rYvVBOHHlE=rlC9%{|ZPTAkFD_sc!Z3fCNiP@&bpJ&F(4!%S$=M-3yl5v5u&m-37Hm(BdVe->NhQrm(7 zYciD0zO63&@z_(M#=jeOZR)Q0tm%`>Ojeq8g%V>_MGR3l&o}^J?2Oy#ZRy7BBm9s< zQAgQ+1}lH1lHP&Mwqah$HRkjIt7T_FMVS#8cKqqubGO(fzE0M!uU@+=Z`E3!McF3+mQWZXtv_mRVe|8cxX1oA(@+k zK75`jsZCsn)K-pb?0h}rOmD%etA_2>8lrVf(VEF~YTD#Z*4jp1H;1A81bmiQF@qXK zFwH+0}S3 zRh8^mYcO-@9gj&}fhGlHG;=|VJF&43)5t$TM|?c+Nh!=FYfIQ7K8})#1|aj!HO0lk zZs7;HBHKr8F{QG(6%*g_sV!T{$86x*%M&AMTlDmN324V$0-s$=P4arBlf-@9?ez@m z777-{PEOLO^D&#KJ{E&0EN6#5v&xlz7~7PA%VN8_K^j^Jq8rDgx=7sMY^BMWX$k^f z89h@+kmRF9(Hv6Udf<&HV`sFFT(vS?s^Dq-)RTypWae#^8LF5kW<~cT%Td{4*|P@t zynVA5e3wUHwwkH`gPBW27a5feWA1EBp2UUjl&g`?LY+r?OT{{U(zv_je$QWKfeGY#T@XFcb|rxYkU7Z^etUf4v+uwhzhMEnSHrMt()m#wc$vHeRg07 z97-Q}%v~4ju{X{bY9XDI+@REG^u>+AlCIWpM#v$GQ`Pe>p&m-gy zHe0VE76P&_!lj`JD6E{DNKU5t#h1!tN#P!^_ISKmkMF{}k&g`qmQO6#Cu@yhRw1jp zmFscV<1G7hoveEBY7w}E-w$mMH|{*AF{uzv;{rQqT-U{p)fSg8eDXesN7wW`rd(G0CP9scu5v2t(}%YuVkZl{u9D^yTH z-+A8ZpfQ_a03eYNR%Pw=%P6S^$M8d2C zm0i^-IY7e$i>o}5Z`3u0F$+alWkOg;7ppD)zBNNQUX?`is$7e1-D#>v69J;EmVc7VRYpPBj{?0Opi-lGCN{a zMbW27Qeg?clXR;hRe;}CRSyaH=9uDt~kiJ-&+-GbtsIFsU}Dyxd3t z&gEVrvYkv;)~ajj?L;qiiJIyz*uMaShRrNSRHfbN-WDUBK;DaYy35CeIM)N`k%}xB z(XIMrlwIiV_^N#Yn8AD~SinTP)f3E~o#!Waw^7BXR}{KrCAtYR>xu>{8ePaNRc9hI zDxd~;mf2Bvnm1swFozmMg~M7LZP1uLBW9^|E>7(s_82`OmrZUJhHNa4R933xz~WwI z%Zs}o?sx2CW%4l~niq66A_7^gp%`K2-)X>Q@oX83k}!XRg<{NIf744bk0%p&@z`VH z`08W$>$$h}x9W_4&Rk-i&jMB!7G2h{c8hA*<6S{Cu)GaJBird%GmvCiQ{v+A#b}SB z@#doxhSVow@OUGT2?SQP2yD#8x*T*_Vo8f9;ylUWhmc0AI8WK0DWl?cQ)d~(fFb@kz7 z9o7`Ed0+Y-W6H;TBIR!P&*w~!lD*xZ!^7vUib;mV2?1yN^nkV4RMh@d9=Nrzw3(bG zWtyHXvW0^D0LqgZ!Dd?p{dDYBi6%$WIr;#|<-RywtlgS~;-zUk42u7wwAbeVITsN` zef;h*X5Yr<*}hg+BI!>52nFJ_lJE_myeuq0Tae^ zu^dAh_#BsryOUKeK5&MH{tHP((kN{w=F2q-EfqW8II!Q6Q3Ntkf_#%(zDP4K#1~nI zZCBmxX{Vhfp<`ZLZm4SNt08j+VFvQ;VG4BY!r3$gX#}t#Zy?*v^UPX#os?DkndV*^ z)_UR)bb7o*!RBnZE@6r!8xCum+l-LTrNQ3S5JCMbq+9SgqS;j%B@Se)19uk{Tb4#} zS82enQ!yQ7Bt(A`qgc%O8+ko++S-aO9qr`trdij-cO>Hl%~DLq_r%W=BWYXy|GP~< zAJBj94yi|Lu!zM3JexBUW_QTCc61&#Wz);?I9Pgy%C5`f#c%ScxFqo}!SM_((Ri6x zNrL+%sDysCIBR~`VIKzVG>zt*%23i)O8rY{1FG7Hp&x`bsv*DaC+ul*sa;8?0H58^ zH2KAKEcG!Xe>Lr^WIJ0g5k8rIb5*h#L0ZDtkg3`cSJe}Y(`GbrWV@Z)qQSc1VCI>$ zjIR(uM_>m>=Df2_=apv_=#j4#GNJ(wE#8Z+QZbW1W-hyhS)corNG#dT_OOJvbvOf4 ztAMqKy1}|p@?$7=T`4pv4B@P&pW1GOxz)|mKsTkSC|;!NPf{Krf-gqXig-r0M44eQ z`r%!g&+LHay47d(xPxLbAtK_yqlgd#Qr3iTS6T6s5(mOar+h~Z;wah`VKYnd#v)ea#K*ZITulK)q;Y7lV%PNV52Q@c}a3MrV>vrJ=id>DT zm6{%u@+B<>32^|KI1kC7B1{w!?E}v+i)&levLceb@f8Wb#O&kEJnk1-pFg%}l~m; zs#oL{R_^(51js=gLz*Z;Bl@VT$k8Cf4L2Iji`+`bOX#uUCeeVQZ88R?$AF=%9zRMP zV`vX1@m%WEjJ#uE4k!Vi$u=>|R?ks|i^|{h5gn6oK5pfZ(xzjC*qMxW-cd@Nj$#H_ zy4k|co9J2;v9Kr=THv7Q))>1!M&P-slOKv0DC|+Py_8lb8|_8JvJNQn?e8{C_?;CT zljUfzs9whzRU+rSt!u;@`+f?l^qAPGMsd*DGun-qgv)FEMPf>uQMsariIOddh<$t# zkV>^dnFVoXUD4dvDvD};T}EFNNKC>85Q2ztJvNOl+v2<_87)%IQ9v-Rr8X|KMXBh= zJC1b~qLp^g#z8b@4S(5Iz0GOZ7AQx zh76{aO#4M5+iTO<6^3N|TB)>93%ys*GqaA_>KDo+tlh!s3UoMNv>o~8?}{`EM?M)r zoIB;X)O4!}joaX)Y8?3h$-(zM*y-9_Q*B1^>}Gu-lj`DdF_5}=l4aC9G|&P`nK zLUk1x>ZDA;FK}ClRK6Wfu0S_>r`UThNQHwrK1B^Z+LBh;X7=NAZ6%9vJ1ap#2lMqN z4GGR_Mp4e1iCybs=fbr+Yr6KR4+BkK^&o3ZVUmU7V+*KgOowrgQsOp9-NYiGGJI{uR>E#@Y zf}9&y$Wgfpbl%EZqG@~o^ET0ziU~^slOA+;{J*w-aDDZ?wHr<6tT9sRz>&x)Y;ztr zOAE}gYQ1ByS_~vNU@r`aQw%mN2Daa=q2yzW#pR%zrByi@jL!1vcieVTcy)&sEhl6H zV)aaU!lY@W&e-?#=sBUBAUIEMbh3>|_u!zvs#|C3f%SDFs3wCyyJyatSq$p3h>^|d zk7eI>oj~~ts&hTDq>RwPzBbWXJ1uJMDBHm5!8kzO?MAYTlsJZvki4tf;-FNFQ>qR& z!zU38tnMh6nC+E7nKL5f}MEJr}i z+RXxtrrDCeLytRY%S@R)8YLthd1q8nyHk&*$(U#)tz~N;;S2H?^lp!h#jF8eQ2(Xi z6cWURTQ?wKU{b_OJVh2!#ZC!fizbjKrOH^rW+4p&E&mzlC)y@r7S-HXgd+s75+mV?Y=BQK%kt$O!TJbo3vA0@*I}7 z67p1DifDWH3H?90Bw8o%_46n`mA_TjF8=@bABmNX8|{a#g*orVwO#2YUu5bLvy|Tb zb}QvPAX#zO2to>d15ChuvW?pH^Z1uSZz`&XVSu}!clXsbfbL&Ms2NYl zQ>HaTDk``hQXFlrzFCGq_n&W~nU8tBEM7mI;Lx;XMq%Q`E~uC#7>`&lG@?iZ;v#x{ zBRT{T(iMrjj3#?Ii1A|wgT|ZV6XdCGp9>|%`as1+jH zgaPMhAX$QUcctzv+kb7OzRX^svYnFWBar;CC;4W;SWP0os3Wahw33?v$N0S8>~_XhDK(kc8Y z7zHyi0?>E1_lhubegw)Z8saN0C?ERZ(4TzK)+W^t;?TLngCYHaIqvlm+%^iO$I%=o zQ8XQ)_?0;hKbI>_vm(pbMGCS}LHB}$01eSrO1M~}!O4H!v5ch-%O`OP!g+BP8I9Rd zx2=exM?d|nsxn3ev=}XUi~(iE0pJ@6fR)9xZ*$9l^a|WQL)69PH1=JYEN)Os6sT9a zfi!!m&iXNf{FQh$7$#GhRj1^rSrG)Ezv?6@SR8~Z8*)O&|kwvuyMXxG{QF=CFveC+Z zh^c5I688X7T&9JDa|ur5gCZ73DqcF60Cb`wL(bluNHsXcw*Kxpg9D6;9sNp^7ub*Yq%b}ssHtaQe6%8!Cihy+_O9rOlI^J({cYY$%|KDmsD;51b1V-$c&Z zlT}o07$XZY=QeN#W{%Go8@hSb?n6DPDw-jh9D2+gaHYe|tvO=Cqd70vQ$+|@rM%N| zzurYDE)~pp1Iv&W@9#|$NG={}Ugh=JseRS{G5V$S4;hRiG)*aOTgEA+w7bEI+R~mF zELx!D{GCz19Gh7-aQb%lxrt}jXhnBw!-kv)KMZ=y#l4Ax_12G}vRgk&xY_}MXE+Qj z-F#J0Jcu;TH8fPZ7mQSyzr1Rjgal$VFUlb-#u&C3FeiLlrlf!{^fmTT1C?0N9Fa5~ z8#16&ZlpQC6=Q5_+4WcuPQ@^?fr#&bVMS|1_I~V&OnFcLAybQJTC@%30<}dwhM{e& zouc-ss5(Hx(_g1VNN>GJ(~Y0P#6r_C^4%l=tMuAs8rqFuhD56NiS0ZAr&ndGZPi`4 zOMu6doUbMDN10leZW8gvdchJ1Bfs~Y&id|=dur9Bz5m9Q(PMSgspo}iToi=s%tYsD zXfUuC%-eR0elcI#^?Be9@1my1WpzOM1yK|k$~iy_AyAlS7*?mGn(g(2s8~2^q0UoF zsG*xFW*27Bs2CnWmf$#9|1z%G*dfN7WyjHrja11<_08t$aji5kjz;_Yt=Ozpdh}? zzZ#Uy9tnOX&GWipEIG&j?JYsjw!K4~yBW^?{Ct?y`%^jj}h`mc7VkxP48>Nb)^?LDKrT;rYBEEBR(8Gw&&F7y~7fxiF_>35{N(rMv{^ z#DH3$;PU6Ukl;_65((!6TdaUkR&kt`*!jq%L06@~t&!Kz5LYUb=%tP(D*bmvo&YpL zH4HM1tg(v2GkC3ZE3jgd$<=mZ&&OOnBX3y0Qcznn@g1LvE><&9L%}~f@Z|u`iMXMS zoxE?awT?TV188DP%p%#E`Hb&KI%{IwvqwRZegCvtyMN(w@v>vfc_qK3IF)w3aQ3Zb z{qkf*8Xxx!L^J?HWPv@ z*xu=={O-xb$?vjR%|t4*%vsG**f8c(%IJRD5H=vX7;xt?f;-vCHI9*gdNL#y!W_Kpg0hNU1QnG#)Bn;&&rDriWo6V<9o~J*UC-4ya z4Pqyj)hp)-ncW~VVzV*;mt45YJ_6ToTaxm$ld96FD32*x2%P$ePyZeQBz3~Y(}r90 zo9)c4Z4bEe(2|C8=U`|3Sd5NBwwd07ziRgY0ow`J_QG^qW*lWP3@x)$=WOwi{b*Wx zIey2!`E1PhulbH++i-O8sI#7KN=NGxP?S(b7;Ygv%nR!NBZff~3}FU7$9rg1_&lzf zXRiJJpGD#P>8#Sb;eyPB2^SHE#nv>sYf`APZrG50us$*kesirBRp$sUC)I@+P{&75 z1cOo(x496$z;_)5`OUJ}2FJ*gm2=7(iFh@Agq&P;Erb~p5+kdZD@bQ9A=aEX2txnc-V0cRd>4d zllrb@6fLd$VoM-%Hl)B#LmG*$msYEN!!0>k9Kh6!@OgVm^1H+ajO~q?VdI2li-_6cK;J$V4N| zrXgvV72noHG*>jPR0KiyPZiD8-@HI_d&Tzm_Tby&gIm)n|D{qMi~=5Rfq4!4(o z`}Vgt%^G01L6AEWev(xZN=j?(^v5AR!s<{B&w>ZF!fzv2;I75OO<-EwF>!(vv600YS@$a`GiP(s*lIa0&d zq~$-**b;r-&6La80%z{Ne+@70*Wv3D!S~c_HJ^tHVBW!??!VoNLV@7t^!u2MKJeVO z?Gq`dhMlz4!J8h>I~~BuV*G5U|7q_g+1y{G+hNv29bR?Jql7`W$@tIIr>g>%d2~-_ z$P!$RPf22voOlxS*3?iRjPy}&zqEJNjG9^+Y*{eDNEap3Uu0M~`!f9|I^~cS^?!6a zq-Zh$G%eh`)N`iq)X;<-_1TU*!6H@jMV-&|kz-G>I3B#Og@+w5Yg=36-HXIk*-WD8 zwB1{09*~C>aC0D0dz63I75mdnBYIWFb6qjnmF2B=&i1MqZ>}9!CE4AJI8c*5y)7bjM=!C=2Q&iPme45Z zVvX%BA$T9o-T93MXwm`w0`Fc#2N6BRqfR~3!-zOl8)3_e;zYn`QD@C~zHuF_ovF4j zHmKN0^3y3OgEh^qfjh3ut>;dh%Z0kEJk0)i((u$N&-?&JnOoHgOfnyIuG zZqZU^pTAi};IV@=E-jI`bt%u&={-zOGpex|mCt?xjUFkoa%#s~OlVUKcv967Xqi-I z9TB7fG|qC=pPIbKcTf*}K&|ySL`!Yj9Xi&0Z{PdeCfcWbThhPr@qT~et$o;IZcQru zAFWKOkoWL)?;dWh!(a-o-_iQZJNE-GE@Ji8M=zhBwo`GGKlWs5_g%Zy;A-Pm_3heH z#QU)OK|HXw_Aot@B*M(cyaTp|s>2<{xg_aDorWTJ8+%mbRARe``r+ESmMDr{cR|Iv zL2vlh`>~8ywUv6RG%!we(7^ZlmG4Y>d)$!Lsz!oX7>{3)aixuzFeIITY0D07*e%dd zD+(-Q)_n(2k`bxD>)(Il)7X#QN82Wz`Dt9&BcZ<0=t#liRE(f0T-nn))Ipl&nJElX z6Qh1vEahg^k-PSbIH?i`!f!lL!W`@9NeQ6gtZk-FD94c2+htLlwDZ0r7)qG9xc20&y{zwJDH#rh2Uvf`L6N|Jmn)N1H^zk~a=O^}k48 z{i?sv>4DIM^a3sYq%Nvsx-Z<{q)njYM%!^fb?SL#ZVu45eNdzC-QcIs89QOLwbaO7 zJ@21%EF8e=Kgj>19VWMDd0Q?1A58(JA5bwVW4LoV`|3UXao*g6?5n4rfVA?Y81~|L zEvkpDqlZ$8x8eR9b#;wzU;pp_ZE(W&e>^GA8AFsC84KqRJv!nhM6nNxo~%=2 zKQROZcJF@4+x%iAxv>3Ve|>&ejy%D8x(LV9Poj$tGtkAI%- z1f6qFa)&gam0izUTcpKWDb$|+W&+=tJ{`$G_aDtyIzrL;g+)K6Tzc^%GkqV{3-V6` zTjd`{^PGI@e^q+m-~AY%&!QD`qy}Is^=W?ydxpmVzPq$?Apm^$VDd4$_}|-;p0_C_ z4d5_Ao=tfTQ{ywPSXW6x$ss(5$koY(y#NQYW{( z*JKu^u?>n5u;MhZnz4K@u5b;hrebP>P#C1;L_=8WP_Bw&Vu9V%yg1E@2(<>q+0QH& z;o~I@GcB6f5Kuf9gs;=q1kkDSX=LXvS-(L-ae?;)0|&x@pfG-64w75Q!j)Xx2KOMV zY|T?H>Rn4YW+Ck|UzKqi5sb)z_5)att!Q0l2Z(VWfYxF;qbD1I7IZacJQy}{@l;|`-7ke{^ zj%YNh()bWt(zk-_y9F@}F}vFXS@Qt{WD+4Ts9Cmpo@~by)=D8fc>|(R*d~VJJAd-+ z<(?4k!&G8zcN&ll(}F`88DrvQZ$r^v}Nox_~$zWECLBfGi)x zco0)S_5#GiKs*6tWgtR6YfpDkuKPZz#7hRpF@rR4pIQL_(}DjNan%F3$l;VzwNW#> zaX!qdKn$PJ`vq-A*_=o9ce5`5**zZi~Ub?@`g?#cY%K7hs=SkIxhm@PV2-~gCNgU8EHG5mI zX{IBRMxo5N+Tk$(oe~>_7H#O+_t15r(?a!YNaD(oT@iJyuFkBK8zoA*!=}*| zAC^Wn1!|mZ7%k2fkxEwV`cKF20x5)PtrH-ojC|X;JDaO`lnk=EvTgUSH(52R%$l-* zx&xVP1iR-I|NlQhvcb#+qqCiz&2c*9_ z7cd{lvc~|C%UFXSb-q&i3-ksY4(I^r2N(ws%9gwTb7G7XR6cLt%wzhm^KuDG>u3hd^DB^tP+Q$4oAUur#4b6^xISkRRlpl z3mO?%Er=9S1xbKYjVN{da+SOq|Geko*l%AXODm!g;h+)*_aakK8Fv5^{-%=YGw8!U9sItb~^{qIfkT zbHwdvEQUo9Dlzkw)@G<@P2psuL3-@2Hv!V57+*vHT5OShrO|>IxDYI82*T8KeJPkY zP;{b%V!{y!v|1JH5X8fyo?DrA1SKWBCm;wTNGK#yh8#Db^Rgi_%5W>XODBm4hYO|( zPV}Y2#b6s3TVa|3lW0;{HIV0&bzd#39MkNgs^RpFgaOas zYv1}=k289F}k@YE_MEUl zVufZB06m%F;R)vkX#I8syGl7y;WC{F1yGrLBENEXJ9oKdEGGWk*nF_3#Q2PxL1Ez}I08ONz)WfKz|6KkmhS=YW1Ok|iXf2Ilhg6>(j|zHuFu&*Hv@(;M3pqWW_v9*2 zpb0|a5Gvuka0OmcDLFBiD1rh55z&ejN{u3fLl_J(Nl_6@92gcnX63l7e&`vuEJ(B% z3eF(JBB`V%^;St7f^w&w`5hZ-I}%9X4xs* zC8%@t(yP%%C$*~69)HOyw3w?vtw@C;Wl&INqGM|>)nfs6uSkS)^D5#D^*mXMRHKl| zE=n8RyYX-oB{vC##z0Gk^sJc)?8s+J#dh1EN}gu>bt_z~@AAa$41V<9iiej}nEMQc}=onBGWJU_C596l5p zg2AD|(OM218)!4Mg;`#WR*HHJH8mG$DE3m}7*)LE+NxX^=T@jZ_RuH`fu=lgMIdmU z;X_Z0$uC3eP&jg0tw7NV-x()LvUvVw8IN?Z{7@%>)m3!x3^~NjXeG9-Rg2s0o8CVj z?R^~#w1}67gN&es58xePZK;qqXP8^ata4~Ba4qs{FWb_tZQ9l=Cn}={9k%jw2Qdwm z^5vic`A+Zm77t;$Ti#^$EgT=ge4)oHR*G1=cHZZbr~9yn%q##Vmi9$vjLJ!02R)1P zm(Ef}NxWvWYEkYaRg!A}%W+W^(jaW)iqfuCusA!lk=xV{h2&;(GK<5T_Zmn(GuB>m zT1YUtmpFXHxNJKFN~2L28#GN&f)pu1B45(>Nqlyy zxT?wT`Wua8$4VS%%B7z5nILraNvv>i^J>*>0WZEvl_^n&S>5FYcUiZ-a_JXdnWs2&v7zZ8#=kIC(IPtTu@6nhEXQbAMgwonxxPqlL}v7%|E@7 zE|8g&jU0i%#-giFnrtU!DzrxgB(Ab5_X<>8%$lwtSSapNSL9MisY04`?^-pO=olNj zbiu}R#iNgi!4F>^N5bHumyx0*Lbr@L)0@abFbl!5!Qlzf)!TIVDPwD<*i~#D8{1s} zLKB_{!854UXTA#`*uTJGM*|S?zyiPpX^X%DO3cOCU`#;CgtB09dmgot(nJKp{Y-ik z$<@Y5uM-1aZI%qQ>C^@*7Hi`n<*k-!dV$q?y>|j3EKwr_Xi~i19BJfoXwe-H=sha~ zK}<%@G$>xa4LrQ#iT>KizW@dzTr&antOyZu6u6dx)!QB5rUYLw4asZ3?MBTx0joEw z2Z-YkWl`A`5RqYw0`P{zwVb+FfsFx706yDlb@FDEYHK-QErgKDba6tY)dCJH5wX;A zp8yN5&tRW@o3(7DZ1d^C1A=iQyP*m!Psn%Ge0r;km-p3n#PbkMjCDDu3=mjxOK5`b zE^2XrJyEh4%ABz7n5AVAmPW}=BSuFBCKT^Iryx=u-5_nBUb-Y1YnEojQIZ<7IQI%0 zMbT)CsIy4y=YlG-ONRHK-h^dkltmG-0%bE0L|11?#V+jiXp|(GNtB8?qCo^kaqmB} z3L>zc@HxXGSv^J_v)PQ~P!l1@aD?^P7qfP2O;ZMGCRV^cQG*zz{dw{2B0|cdvKGt9 zY&Cx=a4Dv05*L(00+@gNZH#*RFCYF+8}+$!0102Hhf|e|gEW~02vh1bP7|5uSjPRD-fc zj&<^U>19$<8N|o@G$t#uO@|c1i2l<$niBNqL~TWxhE)EtVg3HfLWMJ-_gc994a+Oz z)XJ~wz{G#x;tZ$cE3_asfCuT4mN7ajFCd+&U3?@b*}EVrcDANd=BYBw<*;Pa`cV@@ zYGfo=#A-hhK(`T;If})#HzJe_mME8|iIGlOiWuRf@V=IUx$j0f-^(IN3+gB{T1&)w#6L1UPUqRz{ zzJ~^__E#yB^eSOOr^Q2N(PYd)j!Pzy)!YhuT_j01A(I_x1Jv9#^YIF4Ifs~vy;;$s z#UNFy&8tphWvgwQF=%lE5hsqoRxY(-n9ed-8k=q}+1tH?vLtY^w%9&!t)teSjH~B* z1h=b8?Q!?@uG$iNibT8~`IzCZJ#y1`{-=fpdY{?i0l=`D7^==h+&GlV_eK3cWw|j; zxDNq{64i(i7|CNrJzoxk2xy{|eZyaE*|Vo0QyY7ZXS&T0IE0K>mpYlFg%EX#;#qlk z>VX~wscAJ=t_BhalQsBU@~XYRZG%pNT-A;$G-tp_xj4+i5Cq7l83XMe`+6L9!zkcm zKVQIR;D06U34jA~O7UQmDge#^WL*aXxda!TLrjuyQzweFg*`S0q%*Ah#qcpA_XSXOg$B&!`4(fnAA{QL7KMd*-q(=s zHlWH9{0DCK|NsC0|NmVad!FWO-VgKS?`9<{aR@0vQnW@(os-^yOsm0Zfn2bh!eLe2 zv>KR|-oQoImk1YCZ3CRiTE}@RnCPJ@7pjRRS4^x?Yhr_~;&j^1vfQ5S=A~$H&b_33 zgB=tXK^$OEn7q6quGMfOk5IfV?RLSuN`W#UG@pFqK6#R;Ayk*O!*E_f<5(F+P^BZv>C z_7Rq-iAFv#<-6;NnwleJooYZ3jZ`QUJJfPM6YW4aO$^g@(N6T~<1;?%^#{Fw_l085 z4@`uaC8jSbgSk)`h$lW$+5**c_kKgP$(OI+u%Kd5nSG~58H>SxeE-q^sOpTYteNmq ze;TILWr>(BoBMAMW3!x5%%|=hW(ZG2n5DK?VX{N7iSymTnmpnlo`24rlRhKXWV&#l2nitu9<|aM8`}7M}dY*cF~F#5po4{J^uU0*4*@Z8=AL> zZO%EPX)FjY^_nKns(lNOn3Zi8-ERE(eN)asROfDZ!0Fv`83=fpBUU*>!(oY;o5{iv zCTP`TQ}(gAfc z>0o`))$q7(^N?}Vl~rIgkXZ#enz2!ByBoEtUCxWlL_27?Y>HUZoxP&2rkKxVtA*q3DEJTOGx|@8{9Yu$t!! z0!YNTb^EKnsuBR85se57NlQnR9=Bu+{|enRvq4h#%+9V>l3`|6tK`521qZ;pl2)=YHd;mJ zQ?O*4bXq6bn7gx0vM<^gFech($nU=c6E6bCr9`}tfD7?+qzmaWKyK?&E3F)Wf(iZ2hYL)>mKpW#9O3S>O0wUw!?5{piQ4|8juV zd9U(c_46WX-~J!}kN;Qoyq?IKnwU-X0u#e9wM|S6v$0?mtjYk{?Tku=vR2kxZ~wos z-yU!0pMO7Ou0qBtv*NAHQm8bLS6<%u=l{*jM;RH-1&U-0Z1xJIYgrf)wz{dTEGt$O zw*119dXK^(8u^DH$3nEXUqPSv$y|}WN4Qp%P=#UH$abohLW5*C0PvymDKKL zx1p-eru+R}_q^R;G6Vsh3@1FmxnNs?4Lw-?9S`t!`=|Bk^UKU^S?lg_xHUNQ9CF6# zjx+W-oOKQB*k#7COG%||-5qzziHubV$!hTX>bI8QpZ{^x`vcZV<3$q_-HgOYH8Jhk zP^AbZMLI$E4v)+EFN#q?8fMwZ{;|c30g;5AqPIwIGAD6Y*RYlqX zJ=?#)xB}X$3`>F~qKD__)+3BU1t~$rAV+T?UD6w=Ls_C!Nyk7yHd32ZOq3y@Y`{L- z->8xyFr~y(FVqu}3AZFXB=n!YsnvUT{A!n9RY_{YfTT9X4%kkdjN^fXXBJ!1F5Af+ zFM%EZbnmD1Th%2c^3ym-P_%~5&K+5`UiaU1q5CG|MRxhSG~7y)wxyg!h28!7Kj5S;%Yh}r}SZA z3;LdxHfE%;2c4Lii+yndqNR&sFfOW7tVzMx2|HzeWMcM*SGu zjj@f4QL&8$BR9s#7$p*^h=7Qq7$_owg_S2pVPKqhc4MD+o~P%PXYkXzwEpX;q;9)P zC3TyUMZ5$gXo%xRcN}yal2kucnfp~Wb0696IDn=kGn_a>lw@F+1%c(+hdgsLKyK>{ zR18f}EKyNFKtVy7DlW!SL{vajT!=HrLUHFBInxr&m6c{zR$7_$)!X{=|Lfad*8cvt z-}v_T|C2iVtI=3ALrSIW!3oC6x?#^eCWvNHx`E&#+bP(Nrb#qoQ<821CXnhhrbwe; zN;bCH(nw)*>@1c)de*!*Kw1$&66817mI6pnhzAzd^mRm2n22AFNT==2&h70Lovuit zxk!fCIQf4g1h^-n8CQ$|k>Un+PnD>~DHaYX^$oZ@d@;DBR1;j<|GSXpPk|?;VLP>8 zrC#uBmg#GoXxrL=3G z+?^?xs%e+&x#Vi9f6H9drbS4}S4Sm=AUK|B`J;B3YEgK=zip+iz{jzFM}-XbhwnupxDmO|pq?opX-# z-urEI_gBfH1W3TfHm3IgriDQ1k_G@4Jvi<9~TF1xZnF~UWow}SlNL{u2KtQ;& zll0wEWTj6gf*_;2dItWGQAkI%(yHiGs#FmP1%?Br=fd}(VMZeuX+|CanpBnX=~N$P zbRSA16UaJ3+eak(2pVi&0F>tcn_B;0Wk|Y9lAUxL8V2t)1R4i0>7LFbm9PdSM7!e4FivGy)!5C|E|*impo3^SyFsZ zRcbI^&#(hzb9^X-r@+Ys3~>-=x_`9qr*!Y%20=l0wZsJtRopPp&C`P$CiZ>r86Ls! zeJg)YQ~R%bm%DelL1+}9ok>iRF^TOY<7BYAl}rYbfj1B4KS0@CRVD4Rw9ArZ;K;UY z%fON)V~lX`J;?xN<|F6L|Ig3afAYU4|9f&15(*6k>S6o{&&tUpR>yc2Arg?)kw0H`_M^R zUIs&RsZG*8OmFXH$@3%qO1nJ6BHIHRq3uX)NE*j+pe%TR+@JsE{QntvIs;d0N*&Rb zVqWk-mP9HMTB>lo$?P9E*Asf=&v+>Hl6DF!5RvxSS#hY^Ml>!7T~7xU{r;)5@6{N(#m07D%ZQ^Rw6U z-(Kl3lFhzxCqXNh=Dby6_mYH*IDgE!=9M-hz&_IEtk|ulbBBpM29JCWd5V}<# zd-fOK{tgjr=MWzM`|)-9e~x5XHYD7+mnCCJ0|^-D8Z?s5Tlr0XyC$7UddJ?_erpeX z%N1YUJrk+w?wL%0wG&&D6W=}d%vVZAkjQiocz{gO-Ssnb_r7}Ar)Yp>6-aOk2@;c% zK%PLd^348!UZ?%voB8!>=2r=^^*v73JkK_dwy0fKB02pi13_cUN{boy1b zMgPkXQ@Qotx0w%i#%>XYBFx=In68`haly{o_KV$;Vk!T9y^v-J4CT^F3heHclJ!7I zG9+vc9Sk587!C~KA#!(rRA1>^An4f1OtTX^v`0K54 zZ#m!zRjkJgSnx?b)daY6facb1gN-%~{I&CPk5+E=b1IEUHsZ9kW1T3gggpiN~l4t@|K!89(Aet_%IC1iB*eOn& zVjG;&Kla%>d1IDFYA;%)-Fvc>RB0 zU*G)ql>wSt7i$=cq*p|5Y$I|FqgP~%ZYc?y5YQ&XXjCkGt6xR?jkoKqHwI{K9i^b4 z0y2=0SP&bzF(Stp8}x_~qqmU)k|TPI%#Emlh=Ku1Z3s#zHOj_WV1L31YY5in30N~h1r?Bv zf1*FC;H&v4;CV6x1%wAw6s(#yY~oO-sF(|bO=qmbsRQJ;uC%hTthBOn4_pIWI6y=M z6jW5UiesT0L=;6uMP)hG1RSMST54JhtA3u}Z{BlX{pP*j^e;+5e~^Ouo5;_HmI|?; z#UuoC4sFcdhSA%MT&vURLKjXKrQ39ChhUo>W+jTC4JcTYill{=U{uYhSqpR4)J5qw zH+7l6?B9g{sIKp$JL8@KdHWY-x?H&vHg`mqmQ&SsHBn}j2xj< z3v7FPZ~4}50ZX>G0V`n57*Pfx$iPH7G5P}IPOrXr{{OE+zgQf4;rUOm!Wba8b*YtY zae!kpWhx+uI8anv3wPoI)Epa4&57=Crif#vJIm4%N_%Z+uFAe?_La52{i7wQv?%55 z#DA=aq0;F8uPUu~YaWpSBmh=5K(c>>RT_$aWNWOiX`KLB)uVKJ&^YYIoz8K)_dR=I zZ!n86Gxx|abC1Y0kH|#2M`RN2k(oq9CTP#h+|$g$Bk2*DU_}mOWhTh#1jyq3VyCrkxIJ_^qBK{c+Sh?4h~-PQ$p9cG_wuEtd0st=(2j zZC3L6?@P7Xz8@f^03>GxB&Q2hPM}-^sG6Xf)~aC`SJl(7s@453B8c~Y0Ob200QDjO z${zvA`T)iBj{qhA041B$l$7l30}q`|4`WYujaH3vk1qnG`~#4jF9Kru1C(7Kpw$_m zt(s;JHBE!Em%Yl`mk{lOBVlzP%M-=U>=d`^99J`|5O=dG{Lgw14gxr9kV87$(p40#IW1MxLm}=a?Y&Aw3T8j03Co) z0V;<#_QmqfPK@*OhLAqrPiyvN(@QwJN9@puC02KA&xrJ^u6~nBIvM;x3k0gF-|Lr7 zcha9Tl%E3tiRjK*U?Wf2`d?+;$dQp>u3Rrio{|Uu<*I+9uezgc&$b6200$6nlsGfh zCtjD-$-M$J3xK*RFH*ff5d(M1=l@F0>YAWbJ*ZO84oltpmeRV?TGm)<&3)W$jX#}i z#*YM%`6EFlB0)6}NvgpBO9KR0-9UgP0ST6D&%RQ1_uJ~3HCp365nySG2})B;P?{xJ z>fIts^I9y8Q}y&ZXKs5m{$$Qa=MUHGUXSble_7hU)5v1;ci~yE`>plKZ}I<^0X1UF z%=`7y$k@?HOQX2^+{lbLH=-)@-ppd=jjTe|jRIH|Szx0g3T#wlkzEB)?-f8wLbn`A zx&BX%ujMG`fk>cVBNOB!vOwxLz?Nw|+x=v}F=i%bX7V%nxn>#-wB}kGOr6hvU#j&# zy%!+m03}xflwAoqtD!Qp>QQzzbiQt?Y<@jwR+p8p>AQW;jX<1xF9JAm10ZkQ0Kkg? zNCpC=bR$4g7Xea2Pq2{+Yz=}SP05li%S}?WB+H%tjQ}8B1V!m0KuJMRwu7MUB&p0Q zNp`+;Q(0eDL(8(Ql5N@LayH*D%bC??wJlwvtUvO5BmLfgmhX@J-zfhqo67fJX1=x^ z&GXM{z0n)K;hPNq@HI`l=6^DOfBK=Ei1ww{?qGo(k1@prlLaw$?WI>|;Ud}2T?3=4 zs(MjmRS#o~DcPZ0x}}6L$|cFiU%Tf^ZyVdsyN{aloS8E-Q&m+J5fu>;bH}m%;r|YX zw49?Rm7)ms-ru%m*f0Gm3Q5gr>oj?74kc;?0RaJz7%3o%{>Sb=pz z%xMJ$OH)5*7@9`|D_k{u38tR+gyr* zgoHu7{||9mop)2%Yf?W#!L~Hg2u5H?3I`5B6T7f5$hIouqP+~8!C0~pN(#s(aNd0^ zW34tm(YlkNpa{q#HN>3N4n-x=EjEIH)S(GRV~GWjHZUWaXcDs}_x~fh^&bU1Zi#vx zj?W3QMb;8pTG}-8B`-<)7q!`!2Go3$jrm!Zb&(iU1O()eV+Ll1Ir^OLp1xj#l|TLO zOVA_0U~}z;BV!OK4Q&1I*9$TH$hN+W`w^j+czUG7SiJ?x0TSDmvDOXLvge8cLy%{D z_Vef_|GiAHwYJDGKp-I`Bn*{`Rw`f;GVVBcCC>NW|MOy7{lhKlTs!{1v+K@!BA}cK z2+~4(Cr#4kZVp_QS>OtMgk&;GKN(>f5W(u0x7M?o9~o#Jg&s39&0jk|$sOkGcFmCb*lt()`K3Y_))b zWpxcIr47t5GZYoQSBCfh58LYh*b}sS|NVJAuBgZw5J3cGNyt`})N*Tsq$=t8Uu;^B zj!D|-X1cT4Zg!fhfDLz!mIO!)_>gT~U;1C-u*v_S&i;>yOtJxzzn_<7H-vy~RTr=U zgIiG>X-c~@l1z@M&B`EXjG9+8Mo^R)rh6X5Cyz<|5r$!&?!T)0vUfbX`36yo-6~o| zR3MY#=ytLaNZ!c1dv{0eACT^aXaADH)yW82u+;blanScH{{Oe#EV3HkxW*WxDk3W4 zh^QLxTL32kmf-=s{Lm3<~lfz3t&)i-jOi$-t$|#9X*@Dek#b)ft@TdA; z)JZizg$P4}iH4{MBosCy4+9`jfZQ0qk0^P!piRsFkqi1>fO+s!-i3LHB;SF<5I@rI zzVYNRB<~w|{V+@)dCWLI52@sPFb@ZP>hgi)vjsH0xb@|Jg+-SWVeN;0Jt`t#Wg%A3G1yR<#kmF;TyKN#Me0gk91$9xvEz{5{h;^~%~pn9U91#RYj z?s~X~%tC55ipdx!k(s;XnLN#D=%Lt9CLIUewCW0}3p>C&^vUDdC}dg!9aGre-qqxQ z?nFW~-J2p`BwUv_h38FrIi>~5_mAtG`fY0L212vYl}S!oUu$1+JEa?p$0Fmb{{+yR zFAN|v?=Y2Gq>KNxHg+&xeX&>eWx;dWTJ?HC#0)L3P=9%BXW%`1jn%P-h;0O0bK38+XWcX=T zRVWCSd;aA^A95}XOi{*e#}{-}5t_9j=F772q%I0PSP4c`v1Z<1(nIvik{h&KG0Yg` zJSIE-F$Vs-4`$L>Fq-G7J(_b;dq}WLwnKS$Vm4ZR*b!yBz}6*LjBOLcHfCe1w^>X! zbA0>yp)s%xrZnssH=RdpY@8D;>~7G_1z?o#`EJj&w<79ej_67P8bIY8lz2v*xSha8 zHrVi4CixfK!W=eyAwh2G1o8E&hD5$1b`4GDzVwcE?QGgB)>|~xQb~?9vFBot3{z54 z$DvIO?jfE~BtecTEHM0PT1HI>Z6lQ;o0>z7ijUIjEaEmveDhuGz6#f{D)kqcFDzOy z6o?o6(jFB_g!)RE;~MI#H)OO^hRw5yK<#TGIGx4FW?~HcEiBRBT$;!2K3mCcLi_Bd zrn%0QJX_kk33k3DO>R``+b@nGn@-J7gtv7tbOxss79sUB3ELE32DzK~H@20dM(PLT zY#J(8n2ZNCR4lF&Y!c_Q*EKa0LSP-m(zBP4G0{-Sx-V$DYMz4EeNHc9g}(CZdsjI;9mHS^=W z&CD$=6p5WHoJdcqz_ciHaeN`QM6g~eo@?Ats%G?r>R)-t5AhW&q|ESnvmFe3A!Zf$!%NQ($`eU}Z$8ud0i`F) zH!Vk7v}TO9TaboiG?|iDF_$#vh%HZ+RTd61{F!>VnJjhEMsF?n>Mc>D5Ob9CxV=!*QIE#HB zkcvj=s?=%I>KNdFiLDKxKWq!R1W{VnKEg*!pu|k;aDfyTHevWEKN`+6of1Qnz74Nf z!lQ=Wh!xUvT135mx%vq>Kcnw z>RVGi7b=6xi&dGTl9PL5`#au_bf7Q1#(XQs_ps)5lNa7NG6*JJ77N(>h%HN{p zg@(BM8tN-`PZjOmEY`rs~b@r$* zaqbBJhbnr_vMEf#ra?>1+KrWG&x%N*;&!US?VOf8pa@u26v)5h6(w9dG#}?LCE7>X zc*qP3HJMPq9-6iKc2vWP=oRmDr6MbJ>6%hSgW>*Y)>ltHSNc)Op>+$Q%omKqsewqo zp|>RNONsQBRR1LwBDXn8wCcU@dijvEUpr)yneyqoWqoSMzMw}5f?QG_Ms9GIWZInR zO?TA#{_qiiHJ$o_k5v=_e|;tfK^^hU8k!kde-fzKc`zFbeQoiPz7~DS9F3Yn?6`72 zCO?|vaHDd4SDG#Vm9UR{FV66!I!FE|1dkoqC>9GEYwDuMSML0>P(xC=G)-x*Ty|V* zKzpIU2n9)rFa?BnemmFeHy70a)0HqRh@Kytl%%6zPKf_i_Oq!t@ z-9CCWq%35Wy3Pvj?KD2T6oam&_Y6K6CTKVcW{b@x;@o8*(A{E|9<^CgsjA%tNiOne zgGS{-!rEEm5cJ=x2PWJ|87aPJgD7VjzF}(a^`EbLyV*fTj!Hor#5}8_6wUvIY=BN* z29Qzg*_0=cd1;S=9z~3Z+RGdS?}1HaE|nrl6v0Tp8NJhXoCDAJ+W7`JNPjqbfz8#x zuTU!3QuSIn!3%oE_KY*M3X1IA8I%_RXoDt2Z?USRb(&itg^GD^;P` z!M1FrZjhY_IihERK&*5(YfIQPx2~|;I7v;kg|7`LyM-t&t*E);!E?H}2s1ID8n0Fa z=@@pdWbR$l*9$nzjD6FtYq?0Yo+wJ_+OLrS(WrDZoq=Bdm0C>AgH2{wRT+xn+C1Ds z+H06y2f`zy(2t^??1*rjdCKLP{mjHn74$4D(JMDh&h=HEzc_4$2E{+UZQE#dy+Xe( zsj?GLXY6%OC0-en*Lx;3WoiRmImeC1T+vpdi)AzD8C&{4T(J{VYY?>!4SSzB1!V>_ zeISMAU|WHWHK=tqWIZ`crWCtlQ}N#O>(vygxPDU+8LIj=U?KAhX2zA(bv`t*UR#?l zZUyp78m+cUYWP|yd#=pJZ|-Ua9#S2}=dsyK_J?=Hmtg|qI?>jwICN-Ent!&Wk~SR3 z6eMNJoH`})XfXw0P9{u{9E>#X-c;(VB>mV7>~(Q7)hJY^t}b7kwfc7q2ImZu zLr`1sG6eE?H&?K_O#5}Fho_4%3&{4Isko*|XKgnNnouwMv+KO6@#rBNzoBU1;B87JE?OM)c$pBgSPI(akt1;}!=8uVY{4dvEZ+a&g~-R(Aq z_kxq0v+*9PIxKwi=gNd$+kS?|;~lKTq9>#jpQ-H$5=;=GWA$-N@|Z9Lk-2EfdpfPL zG|KzLb;VKdMFRFd9TXwaGvF3u)fqWwT9Lp3KBJDL$LhIHNN-0DxA*))29IFl6X~&1 zkAe?J$7(_yGqLd~EKt`N9(a(srV|rV^p=skYjzH~=NmCjMM14S@OQ!W4KtN4h1SGb zk6F2a7-ib?kHX2%T#9dCjn6!2O|_=6@$UH)Zuyu#IrJF=M9i$+=UJzbBs10v)vECA zdw+9Vhwne$uTzT8gcA2|QnVZaBqXTnN#l8HD%fKa6Pnf2Klrdw%c9=C<#F^~vC=0A z3mC64agAlNZ%kvjhd8zR#=WRV@*;POu8p%1kuJkLnF&NTCQ_=Tbgv{UOKL?nT!Z}S z(rs-X%9xZIbzkq*-_(ZJ2HuuXAR;=S`%Gji6Sqd8xdb^kLp1(s*5OEyDQ-MM9-maF za{c=)de9!gZE2dc@nt&Qi*R7s(WY|d?;hDXVJ+SqGyv%xCbc>WBklor$|dv+Jfq8{ z>&Go;m1@dL9jh&LMnlWEn>k9 zLg$(Dp&Aa4t{aWktL)?|8|W1(^wM`-q(w^EDC)w_r8Ek!RIVR2;MqX0H>plgVs0QF zgAFuP*$}NpH8GqL5_8XWv#1E3(DIsPk{H-xo4UcG8O*fYX{!qJHz3p4CqhRL`4%Qa zqM`!z7;Mw1*<(d8^rbvF4iyVE#@`wqg{Dc_Ksh{fB5fn%x_1Ci9|V+iS27nSgrh~| zFkqiYjEquER)&$yG>a8vH-7Qb)l6=D=>ny+W{U`jk|d`ePNMF0eNS4ZimE@UQ9y;R zS*j(EFAS(Aol`x$W_OhhJ`(Guu8FT3_3@Ez5oX0C(`T@D=o5HQP(hb1st}l-s~s~u zV;Tw=*Y1ga0VspP2=)a1`BFdMC_saXjGB{oK&s>kJ&DGoJa`S3XldI*OUE1^+Vp@< zd#0Dn1O)CW!NK0a@xgf!VPf0}DG_jB^NEaGJ_Bp)AF#-g=|bp>pnX&z1#DWS#NDvG zK_v#8zQtg=o}NTSrH=={ZaXqgVpux$^`&N1*4QHj56feUudN%70nZ4Q3u`k{D60>e zSL53@IRBkGzStJ=OeNNjB=3eBAJTwRc>1Y%yN;ZWD|>V7-x4y*;|Fo1+pKq*FLNl? zk%zW=M8GSJ;WIsRfmw_!^fPCXsZ2qVYA8w7?i?(e+(&Zhc*72z*Wv7OV_vCCD?Mlu z0@mK63cHkrJj*uQF)v0w(tmRL>nn9LDH2N4=Pj#L(6aSC09y*iaUp?%B6B4R6^U?> z8}D+(cS;NDQ$MnPmQc`5_qpBJ^u_hQF=YL1!ly8>58!|#l`hj;ycu;*1h_|^b=@_C zYD(2dUfI8QY+8s8D;sxVFRd1X!LefGfBfblrfXKMBc*eq3Wdg2_An75m)H9PxW{#W zn*6Jy_IiR=7ekPu;1alx?kn>?@5QijMVBw_70!sc{F}DaJ#-WniW`<@_B^6P1Qh(B zWO>A7BfL!H3O>N{B5kb1ZemljdKtb5!w`IRzhQWUuvOi|1+Yg?equsi3cp2JxLPZb zTUsn{z!xlofOSuESiGQn;Ay2ooWm78D28L{s+hNt%SwGp@_dAAd%#sm(j%~3IP4%p z{1P!JLaT9X3Y048`>KocHzeWW{<5R-8qDiDW_FSH0xlb)3gB|d13X3sW0fc|janZ??uSk3jvKa#%}poji|?_(PAC>&58?!Ml#HEM8R{K)suz z9@6?D!>=A{9T+X>LzeC#C1=Yq#^V4K3hnE|Bif9~=m|!)*S}0bF0^khlON5d_x7Bd zDt8`??3o12Ph$9WlswnhSl_&O6qHt@WgW1a#r+aE^tLG39y^|YRSu}M12sYM<8-4M z$M0zW`haNRpvkIM<|ik#*f~!<-ywaE6qH z=Gf+SJFY%Dd{ExL>jzWwD#oLh#FcYTxfRQ|wO@ScA2QS|hU+F!vZ=WI#ih!n|Mk!^ z`6f@9lKb7m$AGg^H>tr;(Y0{d&mPJNPXp-b1CFVm%3;VONrP*M=B54Efb)^Ek^^Ip z8?;aFbvQNA_Ru&Z6ueE#J zJQk1nap`FJs|TYV9Y||Zrm&yZ@F)M~+n9grZ8GqcMxZ3HvcPjThypTM?(n@%7yYyt z8I3;MbAEA}Gj%O^UH0*f1_;5&S?etdSgx@~b4lVNM#1qF0i%AVu9s^JpS+Jnm1lMM z$xpxCj*r&)-M~I&AJx4aPt8T}ryub@ea4sX9~b`VZ}HkKw|+BzIl8RutIt2&KB$a6 zeX)31f%*LMF~kB5&RH{+$r`QKwJQS5x}JUGp&ta@jS`|NmW zz1tn^n}6UxSXD1Lxu@@zwh;Z%mL?jgE!;VUsJ$t+%}0ce0%g)GQ|g@Sx~is!@%GWP zebY4L_};hPJ3i4b|JtRSb9%FryQ5H299E=1SwQ#K?f~llztpy`i5xBdC_S1re&{|T ziUa_}FTgoB=s~bUzb=U<-E`&Y>>t|)wUw72{w+F2B+~j)YpuWcXIy=)|KQgyaf9yB zp!GV1#^{+HJy^dzYW!3A|8U;?qe=hrVPx-FZ6l}O=x}`|a^(Nuz4sz@yPupX7NIRI z2EV-J#j#u+uUGr>LKiJHO0<|PuXmrlx_0b#>o4XdFXJk1?8H6}M4xNDWa8tk*5B^? z{cE_Adtm139^9LzY4GbcZ|+Up=Y#?EmIOOLYwu?btY{n}1Ru21f99X5a<~2b43WC? zlh6OM^4!&Oxm(VzzZC*5zrEhRX3JbzmEXi*IB?vp0x|QY_B+ouxX2%JOrg!uc#iRt zz!tDN(WRV`F(p0Q*K}P?eNJkHaRu#8EdU0`+n-(x7)UzzTFNXdfx87pM(El2;b#4egV4D6J2^C|{9bN&JsfX7qToMdyBXs>F~xo(a8A*_iKVfhrqsnI**9dFoF)6FOWuCnmDJkr=WNNndA<7N z$?L_mwr08Zc8(m+IYtfx$5oqC>2e!W2(N>`dAv@YUvFcauVM&+rxOlgT6NQ^-!Hq; zlzBb%Vd~@5$FT`3Sy(mk=^=V&y#X&9JiSN8I&108H5V<_kS^&4g~I+sua@KM*smkI z)KRVANW#qTEC$loteX@zvGdZ@Yc_iK8?51fol`aJ1eA^FWGYwPrOx}moZO0~j)z}zJY7KD+{>#=z zimjtRXk9hIm4Bz$Y;tQkdbbbGg&28WFB38Va!Xzq#*u?{)*!&TY0}nt$?-me1~y#R z6_1w$JkaomFY6!le|Yuy{A9YAemy;e3aSdig4xeu&S=Dy4oBL>V(M7=lWEHPc{MNQ zX)Y;>r`{XY%-!6!h=Ks|>%S}tJYHA>QapJd;CxpqQd2L8i`K6{_MF;gV$x#=Ep=4)-n90#jXXgl@t zy{_AB@|x?<`ui0?uI$BXNPotYwUAQO zP|t`sUv`TcTKVjx4R_P&ZqNQA?AqVGCDKCNE@1_}agEEAs!aB5nl{C=+%DLo9sf72 znbh@n*Z~M3#*H!}{}0eN??EL*_4D$x=WLyR-0|W9J`gm5Nz+vTMlLq%71n{1%COjXKx<_huv}2$JLWk zLX5-iclIlGbzK7h>~@|z`W+d%;ja2SqNd zhR?=xR&RHG9NKu)Ncxwbucr0mOj?uHPV2vPnejN!XU|FNT2??r(~ovP2=LDWKz-5g z+jySw!TW6&o5={F1A;~HM{fGXdN-}6?dstdFYlLc&(i!g9cjexEnK)<*|m|(AOj8^ zM{68QyWAuH4rj}Q(Y^_|HN$&nxjeI@qqz+C=E+jKY=_jTmI(hjXZhiyO({d!Eh%m> zspTxY)wy`l!2iuks6buhHY)-s9Xg7?plFq22WMTuJYp z7Ppu8l>k}Cw$|@y&GJgiD|_CvZ4tf*l|W}05CzbiO}qJqx=De!(**MP(M#uB`}jzJ zlY97nBtKC^u)s^%RjRW)n11^QI;J^o66YlUFbKqc1V3J3lkn6}AFj~J&?2V2_ zdSi@IMtMGI#}jhd{nVj*^{0)?RaRKQzZ>;f_gdpyP3UX)mupYa8AkrKL653V@i#3s zPs!(ty8ah`Rd)Ay5>U0*o0mt;9ADia9+iLS$tQ!ne(>bsUzWdU80P#e-7ds%6z-6Q zx7k8k0U$vr5CV6YK<-e2)S}W>dM9X?Q9>={TE%_ikKfV1s0zb>MvdmG*Za2yCP&zyu9|yqEm#W?#J}=aO~Ke(O*%#| zMLmbxwnrPoN54wVPksi+uZGPpX4=tz^876}|3_~Z#r$>IFF$>Lx?X<#uYblVxP0-g z?$gs4AG{T$h796SZgF~>h0*}Z3Jj9cI#=VfqksO~_l*+pKde$c5+ZN>KcybeK`_{0`(t2=)YVXC~IR(94Derv{70aJuW?2 zg^0>OZc&N1E9gUGJ$+ytt=9E-!ikFd=v%KI=cWOG)1!tz!fQ|f9=x|K=_KcQg6XdN ztZ5a9o^*`O^(Pvqd5P=SNzymR5^D{o}>;Ho}Am z3@1uK{=Ha&4JpLr-1J$SQS8d}8T&nbc>i=<`q0_&=f7d;!RguJ;l=wG-=xlcewe2p znyR_$`cAbrBvMBM0Ko6B5@NuwvoU5geY3DL>K4-VWz?RKOovI6vf7;)+}Zi}kN$g{ zC!u46y6u{)Q#|<(A4dOzx~`udmGVhA>Yg7R(|9xk&CwEV#J&%i{CbnOh=FcC753;K~=hS*edHx?9 zs?&!@P=6nh_Iie4cE8iTS|0zI^mhIGRPq+9O6a4is@`Fn^3x6eUpaM(&WmFyCIM}1 ze(eH)|4aZ70KmWUlVxr+0KjkKt505^a?=wirF3tn(33y1nm)8`DPyxFtCi8`Xo+`D z;44dckEV5ID96dS&Fg!wr+d)7Uha;M8j!Ly0ziP!TX#?f-$a4U%2BqRq)aRAtbs_4UK`(U*k! z7bO#-ZQ#hkkr28lmrTZ!qs@yaIdoHlH4aWRAsjPh<_Araj{c?u-?rf>B@_u6bCkuP zU*}XyQ$+AwFCPI>X9=k{LjP9xM?ZI&p6Rb+%2Uv{TKLpmMZQhkdUf-f;B!SEAIigL)2HA+j}I6+)v# zynIzdU5~%$(xIE#t^O%%+w80h){8(B{bRn3~-y;s8vp|e87pa1+D=foI@h^H)SSq~nvPknN10ge{uC$xFKe|7Jg zF25s>ta0|$TA*FrEH;ae^TEg{O?o;2T9pdjhi zjzWVzif~REo|!Xh&gg#*hvXdG@*tnRX4a??zg|gAXOBI5Hl#J~5m#Sas6S!L_sgZ~ zJ1MQ-3d}!rbWa@7A3xEH_ODSIclVCkBPCG^)JG_+>XTU+D?v68Thc(TP30y`AAve5 zvyEp?F7}Iip1@7$?DHhgtBL`%Ce*go-uGQ+vnHc8BwgS7Hn$`gR-_>eEBgWi09gSq zuK+#~ROe0zLwQc_Xw7ecbwl3+nL9p1Au!lfisf+h*qj}EI^&~FEB$wQ;G-{^wb#*M zvvdg)N7Ua{645$M7p=W!h>|WOg?m_;ql}8Pw{?BoGJ;iVYr>|1fWP=P8${sYAh~mYw)?wLe~lqXj)wnuPyNwFC(e zIlqL3I&fYV>ZE^jdLThoP<;gQetR6<{u+;-U1xb}h@7S19BFGb;*~}`Z(F6-x3|Kx zbZp$wXxBeJDleWo=YHkOd3kh&ua8h12@L>n^iR&!TEau^kg8IJoB#7S&Ak4t>X8K0 z#t3|zzj%V>*ZE4n#B138xPopuw}lH8HlAfW2EDynA~Nc)Oh-Rk9hI0M+@7%hl&#pI zY4K?Lb)9}u%J$)|eoe+%xkhqB<=n%Mc!PzO)>hTcyAIB3SEuUf8CMt8>FLAaqd#ny zwK%HMta_R}M%&-}JuL!SPH-;PKbF#`i-q^)wppyyu~O>Gy#J{GXHRzXtgsTc{P0h| zUoPGrd`o<*XTP0L{fqVX+mk}QwR~FRkx@t&<^%vhzP6-JQ+w7X2_Xm6Jr1YN;$0njR-Qd%7(FlbQ`(U5ZX%ekzg4;3X%Er1Cwq(R;M zIS3L+jvZ-D0HF0}pDoA6G64eCSkF>6d1*IOsBEpwaCtuITn)h58?shyL>;7ruv3YW z0Ghi!#Q&4$K!d)SP6+{Sb;sbXA!fIqFToiCvu@N;>nuKY&XQS-eb$9bKLfn-NgG5M(TX-K{1m+)Uj7 zbkm}`TGxiMny|Y4kfK5bV10$PkxFZrwfel65}=K&G~BFRB?aPxi;9fb=pr4-RdMDR zas#=F7HAF3YM)N>$2k{EL))KGBw0C#T7o$6blNs7yW0S zMP;_j^jK9;Dbfe4udgHkY~DE*)niU=qoy;~38D%zYxvB>8nPk7wPnz$k*qO^)yHu% zdA88EMgSiCVzUrcF(@-CUg%O!U3vs<`vJyvO9t4ICn^X{^`O@gQqu?_B?L~b?WjkP zF@^!*9AH1s0364IrsWuIjzjAwvaV};_p%w5aoMe3-2r?>G9t%oW74?ose%2OysA{dj3OeLn1N)~PvU}Jqi zfRjAU*WC5g^$=QB#p_yO5zf$22n9s7@MkQ;PR^AvUw%WWZ-1T->_2+swWZMEm3p;p zX{YD+m21_(m^f|pZ@#DiAVA;0WLIFj_^E~2%?tn?pd33GyRj3M9lJAWbShDZdA{lu zkb{oJAvzp367I?8>sId1_b8|3d|3G|yI^WpSVldksclJAT3i);r%>04etd3k&oZk$ zLb$~2t$s^6YJ>{%UM=b)C4T-p=U<&EC9np#!I9|Vd|$1###&NJr+AuKLQ_Sw`-7DT zi}c%oECF`SQvoFAMtN+b7E1JJL03)NCACB2ou+eXwA9bFK9`cFvvJ)iC9Sl9HqGVB z>pXQ4LP9K3T>($v<9ng&@k7>#Z#;EGrmBa*n ztSOI$C4c|}q7BGb-LsDFJuF;2+3mX06=VGMu(QjyxCj<033ocijj#4Ok$?KPG;NY@Y!of$4DBYQoDKpVu_c2lo1?R=PIbAv>Ll` z_pS3~J3PnH{t{knH_LWC%&~79M%R*Pf6?#tMrCIHti+AdWX~#X^z#+-Cew@b7-PHC z4Nvc$otr7~(f=c~coL8y+0JNpvRW{pf9fe86V#FnD~MzV6bfEloNyfG=GVyluJYmd z{Gs*n37O!eFnf%l5=_?_f-h89CJj19J;@bJ-!Q>Yg6wnEzzwusU0xeSzOV#P~5DJ8#c?sUP-; zewetFf=x%*;Ba5uAL7`oVc4$noVw-*jBVE*PwhpuYnKSo5kXj$wsY31wo3@mb~kPJ z^S1l;)OLe{w#y1%(@DLTf08foo44a}MtF6lAD(C5wNHJ32K+~@{O4?Ekd{!u8 zOOf^iQ7*C&#fW^082oPk`^e1sXMljrTAWF?hdb8zRNdqNf6H6Wx@8*vtna?}?*BLc zmv?`zI1auP=d|xCPA~L7Qwu_j&R3^ZsKQAXp8;bj(d<8jc5>|!`CRL=^-C8EQgek5 zsLwFq+zA;6bV6fVe#XrhiC%tyFZhpROqniavv>ZMSDR~?x^CY6&aZs)$pbR1lsaAO zn~(2q=Axa8p>a!G;FXCWmsXz*nek2dBgLgH_33bpw{F5xQkX--fK~{e#C}En5Et+@ zfVJ83#hd0Lp}RU^DY#fX@%V6)lS=kYtcY%6H4M4hW3?g}D04sM zwrl*n()J>lvc%jfuDV^?eKE_8_7{iqg4pj%2>nHA5N-d?Ya0gcsd1lD3?{m`y1bZjZjB~fJs+oG zTqRe^_kYUz-nrYaF$cO6NIx14ix`ak2c^-jkDPSodkD|jsB9kRiO zipH9Ha^O7+EyA5=a-&`u*S1?iT+;#ZbXS^&#=?yFY%2j)h)sSOb|!s#dYF~Z{}?9bOHhCbk2Vf$`tR|D?!7&u(9|6N{w^Z4YG zo%mQB5uSOXj=E{&Z~Y45UBNf+{!0V?H4wMXHUGI%?aoJLt{b&Jv{zJ{))8qxwzX{ zvG}g&wzlz!?1tOt8X=l-_Bn$|DoSmhIJR}!E*TBS?hD{=EdS>RYPjjE@N`L zE=HEdPEDg@e)#Z_)Rk|sw-y(OKSt|q$@8F@ulIwE6cPZ=H|MQVu7z~w2#+0$#XRj# z*|UXAzv3f}No!8T+%4h<&x9dK<-KzyI@52}T1xfmt@2kkg+TQZFHmfXKgBay*F()4 z5(_bZHN!8*j^`d{hiPC*;Gt!K>y_V8uUj_~|h4P}!fHKIfb+QgO44NGNT zH2|)!u(`FD`Eq}}dQJFQH}PQojCPoU@Z4uXP{1Kr?n{%2|*e&Pu+x-63 z;cCF$#_QuIeIxNL$U;d8s z2d6~CqobW6dSAgK1At2;Bme-$aG_c3eBRvQG~lAy@`ei*27M)Y7~3i;_5}3i%^xRD zZT|P7N{gEl z-ZHOvb9YHv|0xdDzES^6qhL9491*Y0j`0h#-&^C-LIFmtk)*a#USi&hdk{Zn9(0?( z98P!`r}cVTU+|0ZB21W-?x-zkvx*c`Y(Ngz_As}B~ZdUqIA-Xu- z-2iqn5ZmDG+U5J}tFk}q4!J(5`@Zw*yrE;_i%rE8Bh!2nrX(!+qv$~IAMBcv=Euv; zi^Y!~_a);kg6VB^kB`F3kIKLw;2YFV>tk$?`bS@Z2LeEUOCH~DPP?DL-Bz`GpGKA2 z`hq9k4*^N_q9xF_W6DpUC0Z;1#f!6h!18a9O_i9%PqaK`}ywUI9{dl2&@aR(CR#o+^=^}2b zXqeh6{>eA0aC=f6IWM5x+-JUS#RqItwnfE_=aG3=A1Tlkv*>|sjFVV)K(G}Vj17I9+?dT_gRW~W{L4uCiX0YWq=p_hn~ zA(ul$mCh0O`@P;t9n>wSwqSjhzFC_Z-+FdWzkL21|5%-4Tt#F(4DQYabM&r~K)35E zQ6enmuwf;A*h;a~#l>s7sps)W$s}U_Gc2BS*O>jm6YJY<_sH`=CvYze556&Lvmn~_ zP(9&N-d`8Q0m~qs>s#JU>+W1abD`uD2IJ}&H7GS{dS?TmFvpalpIS)XHIyLJl+=H; z&GDrr%K+yB*}~o!Q|o2mq@UO!I~$#|xV1@gB#G^8z?fxM<%*2uezj-^CTVyT9e~fr zR;~@pR+qB-7`xH+A%tJvaH#D zTN~bNm?PsbJ-VytIqKNz#6zE=5Zq17XM}jYyHff}XCz)JgZeWMpI*NC=y zy|(9Wol6;UwdvXiYXbU!THwp59n-tr;>)V!h7wcL1Zo2GlshE-=O^jMRuM3*4}Z{) zmk%5NiZ|Pxo_3njzOdk+ON%^Wsdcx|MLcSK1Cr>i{pav7`x_#E*3McJnXm)^_%qo3 z1{R7AE=~(ki32Ve1$%~)1G-R!s#^3mTeR`|6clhHjQd*(7FXpOpI}qU9`RTaHx(nd zm^KJL$&Mc&Qv3WV(fxMf?|wa>7<$z=!r=2Izu5e>f5sxC_^_`?ZN=jfVa_RK4eJ}bB-%hhec!Ngw5d`qn3kPlIBv*I5o(fxV6ckj)} zFWP0iTgFoicf2a+JBLq7uW8cE3pj!TOf+Em8-5SvY{%Hg?{o9;?zb5J){=(-40slK zhW^t+=H~lUDXg9yuFa(h|6bzEe;tb=0tNa%wjNiB|Em4wUF1(ox&6)$y6$I#)4GNF zILSrK-Q{FdHw-725U)61O=ZzH{%C)GNxVKE=W+fO5Jl7i>f_tvfzmo3pSu0-F=DIr zYoe_#uMqLDSV-o3OuucuLoCNSOr~iuP5dwsp0-U*ZnT~>n&)U*p!qI=a>lOf+5_Db ze4Zmvenwh#lbbHPZp&xKgJXY*Zdp5LfHT2v_52Bz>r0cmkiVTcK8p9CG7kA zy>#qMwxX)0aheXh3n{hVe;AlpYv$b4abAqm#Q{qj5Wu7pwZ)Zkm?q>7HOvgHGR!?P zpPx;TGwPbKXOyW~dOCk&&or*Io){;9(GcA`OByzDmx)dyUZ=)UrrglOh#%zL(4O<2 zH65RymNhU<%SA!LKZ)+qFs+WsBAjy1*tbnH;y#BmlJ|MzJZ|;zr7_pS|xIN#n7@T*zn|(Zf zzAPoBPn){j?ArFUCGsI^$CZbDDv6Pb#GsHUN z>j-v>X3rfz=7BGG=8|~V@F{YXlJ_yLcGt4c&WXC+X&d_}6>;^3bw}-_A!dRdb43gn z6dAV9AASPUc6z+3fNm+{*$~dwrlcZ^iHm2ui0H{N8Xge6Jay+~q8a58I5Z2sdu;mE zVO~lx#UnfO&GjuF&irAbnK_h=`BGY)rQ8A$FGm{QAmY{Tvc;jSlC>QHHUuZCkbyY# z4~jMDN~6c!s7rSa#UZ9Sit!v%Fjjwh9Vh07=K16mw-;MPzGQp6qiH{|gaecnzy@p+y9m)aVN@`KQ_d&n zRr02VJf@nyO40D8=IO#3i|B)y-N|`FY#n*0uUykK+WR4y=MKQpBF2(zHMB(lh_(O# zG`(oRw2*04S7rdH;zlw8Ebo9tu;8@k$SMnNFj(OXn2CB|ppToL8E2MfwU$y#+M|EW zo_IY1dwabeJPvVfyq!=X^a_CRmsSdFF-SQinZ;1`ezk6mQ{#hUH9mLw`CqR!Xl|Yj zVj?5t3PCnm-8ahg;MWqs(*@N4GHQokc@R#G0_PT$0r5>|9sdb4oFhETF z0e&nDstiLe(}T%h8Oz*&sjJFK1qC<>%2dHLfa6k9Rnn5Nhuq@GY2ydf!2qqT0;M%U zL`@;Q2BWX6HO3h--W!t!1L8zCU85A&MV18Tu8zhC!?mdm%|1N%-w#~_yzSo>@1qqS z4zxqpF`Za&Bd9AVBmaRKa%niRW|bJZB4ZN3!wMPzC<+X1nkKf>l5D@id$D+16d~NU zhd~1=p`nmxgY&)vDx;)o3_0Z5Q{#+xxiNV_&k7`%om4`hP$_5PCsOL{WpXHW5rmm( zyoJ_tP(ZX{zxs(<8{t4EU&29q3ayAdx}gNm!gS7yoE>`c(^|J!CH2Li$$5wwvTllF_5Rfoy;5bc-8bBJ>PWEQSchk}i?8UYl7ZnH;C?$hnNLABFQ_Ncl?5R==C8LQ` z6{3Rpu{LB|*?9X>u?7I0Iw-JfeG$|X#65bLmN)Z{A5Hh}{qZBxdICUwwSnqNRw#u6 z0D}OP08j#;1`*N2g++G{n&^(A2^h7R-KZ_g(JW8o+Ewf-^9VqU)Gjk=c;$CBtwsRf zPjv@Buu4aTq4JP|3=Om*Q_(RkfCNGEb?x-Lt8PG|izb0v8ox~TxvkNPufH`QEYE34 z^Fgv?7^)A&Ef#~5+;$*f)uMF*mV<%FBTqkqa^-jokHyTii5| zVR9d=uyd-yicSof4QdT~;QmRA$(O8qaL^#3&eU^&WN*`Udp^Q-CFK;ChTwD^PXXZK zaWmGNSW1K#7aO>b4>=3*V0$p!qlC(!_PLNxBi0;rJK z&B(9NEp*0To^x>F3Kbs~p?ID|kt32Ks_{D~lLqoQVDO&8v4Yd+I$I|G0AqVkm&siLN$`YgoQ zoTg&diHrvm5wg$_MH>rb-9qf+s3G?db&OtWt!Ty7taba|Yi$wQ1In`GNy9dr2(p5d zJbJu^Zab%ZVC7b`Jl+{r;6CJyZC+4#B;uw_AFm#zXjl#^k7}59S`{D}5*2BZM-+wg zL}$=o-k0(q<~!16`*r&d=NcGH?tac2LMh=l2kf=?a#`y- zQVo(FjU)|#7WeG7RpqvFJ6*C{Ydvsy%wL>yZuD{7!%o0g{Ia3!EJ`v($f`ifWf#v1p)mjK zcOW((g#&gO&Q!5I0Qf=@8PPf7!tKD`Eu33u-UCWQh^tG2!LQTO3%8kiG?(bs0yie~ zpu#Km!|DWzl;fnyuQoG^OVPf~NYZ}xGCH7&NZq8|;!_!TXaS-08`3D4iI6 zSo2oyU02ZAoXvYLHlGo1Vw9remymS_c&G zYbr=lBi3(>F%#)t+m@JeCby2F!nWi=NFj{|AYle-RMg}>!mW{d5ZcsQKWxb&X|q=} zSvJp>`uvIr4wn4S0)*75x?ebJ=?dd6H_%Wsj53PT9SRxFo3z0`GfJi+vi}h3I(-^X z#nad_@|@RDy2m+Dcck*UQC>;KS>@Wt+5rrM0&6xp4$o@iJka4B7G&^&h!);ESxKM5 zI)D_QHWeq(T34QTre6ody$c0B^l|{I_Pt(wfdZajl4%HK23W6tD1YgP#sl=au4^&= z?H-CLI;EOIStp6KDc;jZFPB^G^rMjg%+>>gsUj4Zwu#I}lIqq~pgFB-H~}szFgRzL zBp7p%#MsS@m>NE6VVuiGT08m}gV+0ZiOV$OM*4~w&ucWHmL%aRHVs`n%Uva?J+|p* zIw=vj0@`j-WkQ1q>1_zmDQ8?ERtacAh_e8>_*MoKZnb`mIihZJ2Jqb(VL(iAr_=y& zN|FPq2sN5ppPf6-X#0JrDlk?zL-7-61I8SatH(RsU|lPPwXB;)t<-8@UBEG4FD7=^ z%x^rKPo&oCd>kyV8Dof_d`|hzU1MsmQBO>A!YT3Fz_gwg^Dv{tT86Ddn{BhvJj`=9 zK7L9WR~3Si_eym)A0dKmoCXVa`-bs=EqqTzF<0J6Jv1J-Q8)A1+TCH--(J|vmOyF; zt|_382_VE7nI=M*svU9`e}0VDnV1~q9xK>Yo7M;caH3<~ZLTcI!aZ>S;q+sGdbGhs zC^CHpxSFWojK3!Aeso@~pi5ls@oZXLD66r!Xq1+52 zK!hPbww_l@qfA6J##zgZ;|`MymfH3yk$d{JRMkt}zj>hTU(3P!g+=u{af7j9ZPEFaYzw;pk2!R$V_QhXmk=xVK)B6t0JW#GB(Abi#&HyFPrY zJo_E&$af4-haF3C+DQ);3@LJ`A_s^ThGO>YqderMyC3v;Twub9l*#;o_q<;&iLi}M zIZ*9>hABXhz#|QO#XOvH!wfrpECb(tI5gHbRb91FYf!tbbF{D)lDTcYb0BUw`?R#C z`hs$+QEHURqt62zk*B&oZfv6WDon4wC8aAy0Sp41E{O~Ol;FA>w5F`{Gsc{ zuG89Mk*IMTMoti8dUQiIz!W7IZ%@2m;#|xnw!jENxrSotm{36{lxr13DgX5NW==i| zQV)c9)#VO=s3LcvS+xf~zAXkyrTqhcIt>7Da<`Cw# zopU$kTrUtv$EsoOSoRK)@yRjjrp_lG>_x4G)IvDrSimOgwr$0-xp+4vogoWV&peCT zZZx~o^d&fKrCps5_iUN^{jFfjxI<0(zy@$aF+6DM$=aClMZdgK7&A=@t0!gHMxC{3 z858p^Ol(l|ayg66+}ksoZ9hU;D|IXElTU5QLaurkCuzgV7Gt+sRvKyTsjhX@?JWA9Yc zf{O+$6P4`cWK3-8U1doZ2OpuGLr{XR97-`5^sMUrz`rsoaq`hB^$Z~TV8uvw08i@H zdUp=d*?m{aYGl&lw0et}$4>GndUNHxZ}g~L8iAP`Cli|twbYcmkh)c1_>pQMRvmyd z3uR0>U2TEDEW-9O_s#=RWTq zrR!)$tvBmt*J=&hiWNnh8tw~J$W(3Tn<4U*oFzr;B3K(-1%^hsS2fc&y$*QbqFeX2 z>*$o6FT^}~??iQnIyqz&LzPhnjU6MzOv7f3KQ{D*@y6aSW#J~ll0W1YCg=|U8Mei` zVwIhhngM310KPb$;dg+YwX~?~rM%KCb>z12jqYJNZ)eFiQCQA9zp+}u)fp+~pKEKE zx-(?G=@-K(DDe_8lIA&qc@xz&5M7S~LU7*~1KxLCZh;aXJpgDOA=@0mwyX9#*wWh( zk|A@bZY_22f^Fx$icUhF8Z_+ZXNuz#r%{_4`e4Y3<93JzzBQz!RZn z<6Mq3YT}Brb)6&U^iAU9g-z0F+4fIps{xi~4JJ`q`}XMap^!7ivGsl|6{ti(T}feI zpjd=w6~mpk?bILK1*AXub?0HWN;}0BfYB3VQ+vJa+a9lb-TT$-K?0%(rtD!es009W zb|_Kj+*q|)n+!)5^pSLFy#Uw@X0Vo-U51Jykrx4n_Ipq5pp{l!YvHM4LDT~56WRFe zh%H4&Xc6)BVr4u#VH#m8#QkBCOcw{!&^kKyM&NL2J(=lXa<`;*XlWRg2m6!<(h+D7 z0FCf;;pu7L_-&5v``PUP;2ND76x&ASyhhs);le~zEUMTyZa0<{3#m}Do7j~mC4C0| zd|GKO1kh&ds%q$m)Pw&9x4P~i){H^#c)im{~Ir>^;F+4`M+uX8>4Hw5w>B zP~*!1P`gosU>L*Gw5uwm{CSBkMEM`h@_2BL_tr_E`(sx;C!Ol2DJxU;4$A#I@viUum+6_opeB>^{npxJZPabP;_?S z@hs@>o-f%(+Zmu&y;Q$AEq-JPkVl9z$FXDmJ7UArETpp+&JHkIZR|2llq{@Ns94z+ zm&WJ>`}+Js9ZP-$j@BeN5Sy&}0@siuK*u8h$ME^Kadt3_;SQwTz`pU3I%f#@oCYal zF;)Td=?U0-`UCkS$K|`1}-^N?SD-fYDw==6jUG4gN(u-{66_x9BDBOH_#xdb>dAz2ZgzxC+3D+8KKRpTK4Tm%0yq z6Req6%WHemfDT7AQI?OPf({0P1CVnIs20RfNL>$(hs4?;6)Y!&&4T}PC(Nq8l4=EK2_P=l}41DL|&)8U0R3sS?v!EkXf zrvFsCW67W;63Bt$JyfQ~;f##xyw)R_o={)V1XN#(3?l2JHifE?!5kJ9L%G7a=osBu z!Ae2b5^%QQ>);KVX@?+MSx7Ad3<#mo4KfgtZlfRCjz&|RnEZZ<7O0Az&YDzRvdVKK zgiBpm!8l2o*=}Uk3oT*lf)lV=R1k@^1d|b*5yaLdE_7?SuAv4teDf863ZE@uR1AV` z;*hM~E?_h0Iu17{X^;?$v}zI`rjF*}W+00Cyj30ox>OrJ{1uKU4Dmu^hYnCvq9gF0 zjPc$>0vHUC&X+}pNIHV$C5=Czmx+{)9%2B9gN8^^$4187?xTq!#;q66Z1?C4ks%Hd zJ;@b{s_8xlK}9IJ(x2NX#v~%j1xiVP_}+{3N!9w$Z>hqasSp+h=$9dE+mbrbm1;+w z+B!da)56}-g`-7A#-SoigICfKv|5mN@2c3p0qA|Az0uHdZH>ky1_X>!KFf`T;>h^!Xi zSblQ3VxIis9oID()nHzohe)8mi>p<%AhW1yx$OD4rJzvx;Hqxr9c>CZQd(&M$j_4Y zp{2S~NOnjX3AK~pBAd$Im6dYVbpteG#G}#*sj-lQ?wl86kd)ac^GH~DX{fC3>Z;?>I>NC18g7|eLkp@LIj*|dRCZYAPX`EnBFLdfzR~xj z*K+N7Gjye)Y2w^M05ou~P5L@fs-j-6^yiLXe%QAR1bK3xZ%@2m0?4^o4Ap%plxm7j zWssb)JBLK9gQW{}RLkyZ-s`3&aP)p#1P_DT@-$Q$gp~4T$y^>vDNt{yXwd8t6^Q`G zuI5bhzLcKJ&ods1&@+%V#uC$F5K#4OLqB?24-Og62mV|#Ta+OcA;a(oUdX>l4ztQo zhJ+Cg`1PmVV9A%rL4K`8f(9xjlmN>A43z1GjvqN1m|IqT1~~#yy@C?#QIJarc7tD} zm1n5Tgkl3{$4vpo<5Ac`K$bZrDeD;5F=|;$fX7B{9_bt?H$<$GLJa2K2zLtOCl>2ZiQ@{VT^;&bdNJ z8;r6D6oU&coj9kh)A4F>z@PAULLWfxcy_daBxnaC)fWqomsE{y8(Xy>uUO!T;tCF( z2E;pFFCz$J>bem*(UZ!H1FUq}JaEg9Y8jdn7I4KvI?2KT&?Ij3?OyxV0X3p9ltLOE zXa)=B{$(cVtErMzI-GA>UdqkT6xgHbbV`dCluXGTEpiF48e%W)Vd7CjT5Jx>z{}dy z2Z1QWu3I|kGoZRielx|g+a?ED=dU~^Yqt!fnPw!DOpW>-wzpiLL&4Y%XJar~9F5JK zmg6($&+-!mT}&tz#}S{v7$IyU+_A{oxdYzEY7W+VQ+oqta&1&A6ro(X^d{l;Z~L>saj+uZ9mQf}EoHz6PO8{@ z0YzN{5EH4Yp`gZx1O+lSrZr)7+X}Dc?e+B;SIZ;K7LY3&j5F+y1-42~WF{P}nZfI| zi{-o+%Qy}UU=8@_IQ6|FFzKF?sg-mY?Rv4oFpdIf=b_^Q`e4kTciA`!xnps+44|7X z@Qn!B$U!=g5kMv>`q5EiglLS)T9VQN0DTetfi85coVTX#1DB>bDz{WkK_qH$Ybq$a zTKxyP1NEk$?(FO&_A|}kz;(TQ$V)J0)4GK!-lc~gZrnqG+Gy3H6fh<7?&9wo7#jd^ zcvZ9bg~JgzKwe%8lyZPRVt@Sp$~eq@=dd?6*dhQj#5r1sG{)InG`*i~Rb4+ZOS`X_ zP_ZDTnu=;jwW*CWO_j_Bm>U51KB^t4O@9HkUwcBbY)n(o^@FZ2Wiqz5j)WCEjK}uL zKA)OiPcZ1Zr%=N&gBKkx>#lZLy(+5(bRHE1+XiE5sHK9W9Fm7Lwqcttp9nFXu95Bx&h)EXkY6Mz`}@fHv@wv;bdC@MWt%jz}M}YXoB9a966i& zG>sQ{6z_l14r9fLp#xv529{83FLa)PwYIizDL@JnJ#RB^VV>x&>ay?-su*DaF(eRX z5F7anH1)P~Vcx6FAbJ))N)`xAx&ZK5lML(1>I%siH?|b`X!M^bi^Mn2+^1~vYR@2| zL1n)OMY^Hu+OWVg@2f}KIX!)9Y^zmmL)z~A*}8Ti(p{TlGqSL)FxWaoTaae9;0m^D zzXYNa&1F;yENhEyG??p;&6xcVy%#e7>+<6Knd|!97JycX#VCi;jlw_gBnolOC8uYD zR%T6Rb`Fhkd|ndZtbW&!y7K^Ps^*GU6%M_m+p-Y(a*o5U&^k}}$Jz_KUI}3t>fnTH zEePYB4}__?-k0b*<~ukPfi9GC$Rz*4@Sr($0BClqSok->HcjJzdU*DlMb4YP zu?~kI6O1$T1*yVz5fdAz1&dn!YS*NCs2~IyI&>=u$&xWStjxH&tdT3v1;Pc11sKFi zEJ5@cL^awP;9$VnBtQ=aHW-d9K)Zq4?kvZDkjYi1UlPSB$hyr1hR`{!7rpZDP>!U~ zOX7e@X!DLS^v;rWhfoT@Bv;z^N=?gsV~8G1b9WP)o2)@hot3Hs3q4GxsX77BSArR? zvPBY=i!Rie7rEjl- zd5|@@7#me1wMxh%S|G~R$^10|tJcyq@hT8p1SI!b4|Clu;mMgptqCMIkyG zuG=wuls9s5MRWy=xGwz4q@&GYb7-a!n6Z5D0j3a-KB2;hIkH28v)9dgJ623mdz% z;MG&7%%;KCTB%BA0+t~8ToGSw{hU7y^d20%74GlOecfC6t)wVyGCe4z;8}hD( zShdhg84_g5*NX)$XOX2Jn%}nBR=E%g7qogw`40PN8YMAh;_F>lJa$!w)7de zJ@IRdaenb!2eJ#Wa>m(9IjObAu%XyYk@8ztF;CO$FijB9aOI|9QZQ&gaGjaKrJh~S zp0KoVMOQK9AwI3C?reH$BRo?56W81gmI0~c zej{N;l|aU!rCwCzU(a2Nfde&>ppVHy9bu;JW@-T@m*h3@i0y4>T}@k$ialZa4f1R_ z;)L9_hfZ~-pC1f!m3B`YY2|&})uC+TQrF7K8Xh~BgLgzZbqq-y0~Nt_P;A;Fya6Z% z0fdjsW$ZP*`IJd^Lgp&HPUnf6jvYN~JH8B^r=Je7HdMWkCuQJ@`bI<#PT8EF8 zYpwM$9UF~e0TE~OWFwEL$EhL4^%^*H7~g~7(gxkJ>f)UG z4_<%)aX=4MS9P3pQ-oJ8qyk1zj9y(kfSzlkr|5ya94mqrF){_Fy(|6lEkG(@o^prk zIQ;>k*Gg$dV8B_pTH#Q++d8#2Im5MqeS31IE|aNyMC{!H;_90uqe6oou)KaW#y3os zjd7eikLHT048re90ci*AI#?pICIILo?a?c&^n)!%Hj0O1j^kHG)2Z2#X%LAS;#}{s zSEFc@*t@90dUPH{15u#~pw|n%$p>*&c@yIZpx`=u%jw)5I^`1kJ!yLyK%GLE~k}EGXvb+aV zK5)* zv#RQ*ve3*=;9GwV=u~HoLY@n}+HZM7Iu=xyx&USPrlwS^2 z!ay3;I?yuMGOr9Q5e(C&$&0H;&GR#a_hIGYnGWUcndOJZCdo3@9UNYCVxfdOwH4LL z)b7hC^09Ly0G0yaEVrDfa={(UemJ(y2;I6`j;>A_Ih|o(C~j?fwbTK)>>A@lAxeG1 ziF*op3s^g@Q^5%Zv(;dQ5ka%YTwzcg<`UgWsunaM=X*2IwQYg6-TG*(7==)zA<9|k z%J0YMuJXR|zB{WgGWY=0+07X5M;p)x_M)W++DtM8x56l4Sx;O5)i=(=X`nop6BC1; z_5NexvMX6WP>J4sh~-r*(Wlp(M^_&)cMsPU?6)XnULrC!EFU4E-(6C zOUo{hM2|-=?MAf*+%!}hR<&1r(_rW~!Q9LWR%_^CLrdDxnvR282b(j%9qbX2CYVWy z6s5Lj$j6WHk~g|=3{1Waq?Gl!U#1g31RV$`K)|Bghk4{-Xm3Ewme}Y~YaMk4Ej7S; zQ4}1>`PPE^sW;}#X#G0*9maH)OnnT%lI22}BSj&e*2bR~dr5WLVgOV3B5+^DhvyDp z4-nRM2xS%rTJ5)8N`yUy2>0gt38EPizFTkg(MZsa}DznU?JvN(Bk<#KlKY^%)Dgg zS))N?0bG(`s~q`ZMN59f zJYeuT(KIAMGn=A*YMA*GfQQ_%j*8970+6@CTek!!<0Kfov9bJBhW@6;sMvQoTY$_A z0Coqn*d|k5rqoEO9(gJ*!ulL zGz+TjBC5uyY+QrGP<7H;`nyY$Qgq)!uxy=f;KpK$3RSSdVciWU@8%|grc*ej(}(mB z$hrOr$2`&m*Nc#*jsYBduB+G@zZj-zY<5b6a}~^^@nD<>D?DT)UWjimv70?`Yn}j8 zW>=9kAdG=eCvoOEJ%_D59fPS2XT=lYV2BGUPDQpX3CdvO&=^rQQtuN5@H{*OkP;2w zC9Z@=hMV^c!NSlhAf^aD`W8lbVzRa7t{T5Ner?USIsB3v#2%ooZLpc}CjD;^4rEoZ zA-iZd&3cIf+igA8>J7jfBf|7YjwI*2zpa3$2C0U}@O*wznfVgxPwhI*JOY zlk(E&uOJxAiG}e;8@G89YHonlwHvx~J8kUVwnN`_Y7aJ-VYR8A+i6Ae%095q+c|sE z9$9;5?bJPF;K6<2P}LT~Fwf2C)OAnyuRI#-*Mu0o25u*usd2#@|i0#B=&Scpk!@wC`` z+K-q_+XAhoi2)2mi2J)y0W{zz-kvB9^iz7)Fu*#PX7|=w2P18$r!~D}c3Am9c1Nx- zTsh+o%yt-5ZGNNT*4Si>>Q3_hQW& zT4)!a&JIIFDfFFT0UJ|+SyeIF95OW-nxDgESM~N_G`0YpN$-fZ3Y$ygdi*U;&}H97To^gfGE9)R=w-_K994`j~yLd-O()va1xYXq!9 zg$3f7PRK476(V<9L~0@-g&TR=E^c|3RgnrB*AV`ww;`}c7#*AKEdyz{&`BgI65uo> zTBkFiG#{hQik4c4Bg7=y<<{CRFE%`OGN=q_4(GcEZqqH_6RW2R5b%j-YN{dt*tP)e-V6AD0A!sdue|XOaP>U{1vv;;QzX1!($%glj2W-26Lk+* zqT|M4np&+{E?zm=J}}$dTC;WED{DE(wX-KA&1;TUg0?h9JVhKNI3-#d?4d^_4RiEj zD+w#VL-><##IYs2x88^k`3uv0U}Tb8-P=IFaT^YyHM%!~@Y*?ijLADk@BRohA(W)) zt%mS|%0$)M+NAlDwv~Rg0CC#%7iBxTV&ss>|s41$JvKC+iVxrerbF9P)eB|ff@e4@+O!Glurwr6<|Mh@E z47%@hB{pSfAVX?ozWDc;l+>(uU{)WgQ&<$B^1$*HbU(_sZ%w63=ZrZcUkp>y-kj6A zN-je++PWB5HPo#Gdd0i4H@;Wn+IrK(PyjBtNNaUGG;{FwEX1a6tSyh5+I*(ex1M%I zJ?nzI?uDS-x`fbt5%i?k%x|H~F1pSE+A)1sxEPwbWzjaWUBpb2U39lid{{u+%Xu_2 zj0R0b2qv|#=wLB=Gl4fVbAdQ3j(6_1QyQHDgWX3>BR|aqk3TaT7;NU8#w~CBW_k1TczgT9`?ylhqZs zwPWf0069R$zZ5K9SK7V}hyG@hbH0D`EazvN=A#Rz@7^i*-548SAXX91;H4LFv6bMF|2eY=I20m?PSTMh1>78ON z1H9wh*`vY3FS&P!sQiu)iC~bkGpBSI9ni57dqqJT&_P@hKMF1knFC$5U(rq*+FREU zlJ4>V2%06cmfoz%;Pui}Xs{-Qk`=D~2?whNo!U-+wZ)NFeVBDPj z4WeEJeph|1kAvuRdIPvIldFCyf+Vc06 zsjtXcSCsovI;IQn(A^5*ub;AaGrQlMWu1Gd&i#$fRSoCN`GGn`FRaBztRA~{-3eQ; z&ejaR5QWMY>5$OAGPe{~9s6Y*t1tKP5%cL82xk#IWeC#A z6j7Z4reCP)RkhYKZAtu%{XeT7AJ%%S--#)|Q*wE1^w=*3Rv$T6zJ-U7-m(O}J&w)3 z^}gL#u!7DE0H!klgAt}5kfm*5ss=<*5oRyhZy%AIQw5X^T(sW~Hj5Jg>S|$5n z`U(lxqb?%FRZwdOF2U@EMsGWX!M2=mLXbe0q!jA4rXeX zjFVZOtkFKM)O4}F8m=2vHmM0i*$-X}PXj3cA6=v;KHl-4x_|tp#s0yq5Z{A#XPsy75Kex)?rM{Ow%}6QNE=|S zjZ&^L0{CS!$Wc}drw6#7Fx1Md47BgLJ<`Mtu)7K@Z0p*nA*zG(0TEviXd4&%qhmYu zseG6;XsAJtrZ!NwA|GriaN1(?lCWa8p?k^9c|I|@fo51Vw-H)}!6cQ8vZ+y8DUDjA zdx)r89Vu4avSDy7^d9P+g9TC0mUdcJ6i+mPexe*!`1X@dv^#+l6n$wl$^s?_#(Z@7 zfiaZZ)t18n|9bZZ0`5c4_y~+KFYa@2`IJ-yKs}V?pok&8-}5^|@Roy?)UEHTjb30* z8@Yp&eETDgCd>T7Q&gU4L*-R1NYt%01%#&34=4=aP=8&YJXC6@`G(x8OfW}#;*V)L zCmS6M2oBMUR|dh(;MV6=a}9M%-?%hEy4<$%cdt|sjZux}zM(^=eGx*~a?6{KER zle{G5rFFZ(Qm#TS{Xgz>%P}=h`Bp2-!WhkUWsF`!8rF+O2+?x_RRNL?EjxDanZTH3 z)dCc8nnZu+yV{Jw6ev`v_oe{ALr=yiWz|TM+FS6wyGPKcjRKZRszlwzcy<|~O;B8b zwjm2bn3@t@lNz+Es=Ll0%&pa}X}7au=VprML0Pc(va^2haIq0`0$wW~8C3Mvj*8u> z-kLisnL?u5|L3>M@_5$PG4+>xtOY<@;WYKK$U_&y4KIr6Fjssf;k2YBI~ojL_YTAZ!LPi9rYwRFMFI z)ycs0D@|?=#5^?4qk-DEvi2bBMu^)2P+wbqV;vlxICrpeR}*KQP@B1S1^-IKfadxt zHOD^qbxaZLB`Yb}u^U6!HCFtkRth>)o$~95F+o?7O9XH|v>V9pJGB>@tRlacoUs*` zo88%G#wzbwQSTY7-HQOn;Gu85bH*B6MV70TN!P`BQ>d%*yFyZT!;<9a$h(l$ewmo!} zqTyUiePxmB1aC;u6OxJscm=x44EPIZ4(N$Hs{!yk7(jT}@_Nq0~+Q)U^;N#@qH!s9T&W99csb$b9{ z6Xto7vf`SnP`3(qfTn4!>N=}h*V$F+vx;m zHc>z)8+i%(f@;CW{8kKPVG7&1X{E_*Kf!k4ef(HPsCPs=Cvhe`Rq|LW5Y0}qE{CmW zvHPC@uXfP8bKbJw?g1cP>l1p}lb9ah;OIWNskEYL7Bv`hvVbZ7URRakX@vS>=faGg z(+$^f?IdzVnpzjoqJjit-LEQtTlc1(Of8O!vku57Pb}3+K3Mdo@+f9t1l2?12XoS@ zMog7yRf?0LI>`~%5Z7P~I#*BOMb&M=rostuIii5Duu@ALqiZP^c@%<6nN3i7CtevRT|CFsDQklUh4iB%YiN4em zo$F~_(+h_AS(r4RTsXf96JnilL2UBThrrqB)s-AOz}|zB1B^)hNZI#_Xy2IW5>$jc zEK+;v+&Nk17F(F7kP!k3Lm2s|)*%MPkk^xsBlT`Al@U+(B5QgH;4>^>b{r_&zCA{< zvneZX0*cuSvWbhO;26R66;y5JjVqp!m(OzgLAzPEa-?Q3Jih@ z^gX0(!!<~`iiOR*MYOxF30~w%_SNv448&bIN>U23sH&X{HUr^QImdFT0>7uNpocq} zLP3b#1{G0G%4ifih*$?mi%+BFR|aM{DidHkgarIgN`TOCY(hYCwWbg8`-!h|?h1eZ zvtI#K0IIumBE&Y+k=2b8#Z$Upi~1oXV3PpXsJ>5pRHy$j&6vHc(ZX!JO8GIkHvm%- ztYI8U51ztUIf46#H%n||CC$ASV4NKnj~>GEbi_LsML6~uEUoJF!^)!KeX92s!lv2| z==xrz2N+%HBN3P(Rm0mD@7Mv9n~S`I z4xmRx`=X{NynRJaW0Eg1*s3AsA;$F!`ozNG;$5w-M(9!PMV4ExcXK0&W*GaKP+XW= z9%3fFtdF1+6o!W|36kgeBuQqUt{(FKaM+<^VSn$u+pitY%>YcYV zpQvT7NZVcBNAUBcVyMmLXldMq@0*0+v6)sN9EJVY=BYZ;N~0CzCK29#&?Lx{@Zm@^ zs0*w4vtF7^aJV@semvS6okv_snO7e1{(I?g^Z3^d_Y-kCWRS{}QIDBaYDD|d_`kRP z|E$1s3#s*8Yw)&Z=WBwSSI?hIN-f|e@DJ4gx9NZOQJNsclRb=k>+?5^p!=jxs__-( zILHtz55WiFhva+UI|rT8QHTft65%KhrKEp%jxlK467Gxo7Ul@dYBevGOV-DaN*Ujf zifO2zl6@gdlZShrWDlEt6byyRLd4cHib^_snDnRq!y9@`kZovNwKqKgaSnIIgbQwJV@V04}1k; zY3*(hVp`|W`bb(~Yy_Gy$UTnQd@jz1T2NHLoWGk2;)kcRFT<@a_r_>&asg1ew7g7DTCZvqR5Ftdo8yEusu0}`Ev_Dd`cy|tQ+tbIYA=nz+ znol1sPoEACktyEYWvIBL49`jB6^pnq=<6*pS@uWN;0&go@Pe_r=k+?{N*Zo%FFDLs z2AKBM*4a@Sn*$z2K{KuIvNvzQs{rR;y)&=sVNrh*aot9<6}k2n{V7CvaNegr#QoH3 z@rhE@qu41=4q)Ek;aVaUqhvf7R1mAUQG38Ac~J9WYaph6S~4Pm|&LN2x(Uz5>=E_BhR zgYfWC1M3I@j`DVO#iMItyWNr0VL{!e`He^FX}Ne$zFd*f#*p$J7N264hiHz7hC<=yIv zvuonKU{e(H6g4*+HWUr~t9p>sSE(4+8ZP^;K>~QX2*p0m+i0<%-AE`%uZY;`@_8ti zts)e^y4rQY^;7FJ%0fQU>r>4WTnv6Ic=cE=sqONN3b!qnkT#aRO;r($UtRsW(DzdZ zWj-J2^$B@`-wG}UmyYFCaN9G=Tvsn7E=Wc5E#^V|g$Kq|o4pQ02&W@vgUX@eCe$K)Uzem4H|lCSId^V@Oicm`WtwjP~BI z=FDpYB>+VtfE1KrJ=^do^YZfBgro5|2dD~il{5OIgdVb0hn>?;3~27ztK2umEg@fr+EKnFZW&W`%aZ8S&~*D&iYyb zAU4tY3OZT+|aOAUK2@4IVSY-#vh*?L~g>u5=UKtFP5h1NNh1!Iz%N^ zYTYEAp^gXbB%I2Nd2JM1W23%69LR0Qs}|@|mX?NGAUaKA5H2T~%=m!`F{rh&+hu1T zXK<(|SC-begf>o#xSeb40t8J6hzBu-abaJ}u627`l;e9HWZr`$X|R)SN@XYP2J~O` zh;D1f6VSV;*`R$;Z+TnPiV3_F+ruJ0)V(ujS5?-g3DL||WxIm`f9$*Rk#x?+IGVWS z=mOXmokD8ByxT6FIVo$>o;FPvz8EzG5k(}`kDsM?8f<4Olqs3Gty-|0%6J)!|CD)UkOuMF6r#Afvk6*ir3Q4J18%a7zNb z#hHI$_f7T#bH2C90dG zQyq@&G?Ly>+c&r#k*D!a_P?d&qQqMgeYMoUSSvHP2yp&d2`^EjV2Bw~Nl*ghfm7b- z=oa<)a8R)BNdY@x`X(?@kBn-7S~g~`UTwV+<8GMNo{tdGT8@+bjK{WenB8yN(j|t> zNg>!DX|a-px9ONUIfc@qHj~oD2nU*!R4g%KPMXlr*UV52TQQMXVp;ocC|+*rOj1X! zlq^q)S39Nf?+59RwfGLcFEH(%ci3uGdT!<{Gf+6*O=O?pd#iC^lOT?0&fB33C9RJ|OV~tDr zTp*OnL9}wrNr8MTfkyz=kOoZCG>CwrDGee`*Szz+vpqAZh22JZg$6{IW?O~}EJrHB zD2gJRXeTTf1f^LiW&{wi(iPJ2*a@+MSPd=D<`vr z?UTBt$N}4Ka$EJ8i3GAlMl zSN51PG?;s2aie!bVa!J#y7ZhxlVqq_cC&lsl(^ln)U~YU$y2~mORsJV(5o&a59MrG zp<9*dGmPB>A;j#6PsrlotYoyPkXces$W!TSIGn#*U_nPVJTGJnN=f6T<51rz=VSAB zMx{L%`Y_n32O_j89pfrYiVqfx75>^QV0hLnxZ zBSj&FdV7(rw6m%+Ni0^LOg`$l&NA~VL5wH2SynX(Q0Vl-5j4%*D_S4E7o~@>Jnu&P zSv)aQ4O^6|K#56ls9my_XIrs|;R@zEB!dF?n!GLZuGP_DWdT%H@JKUGCecxUpnBnY zw(STOn%P_>=-dHs6{$48**19hre)r~VerneL*Bc^puKIJ|CP9feV~!EbBV5Tx^imQ zLUV=^FDJd?ajAT^ah`=JT zzn1ZDRvnSJwIK@D&pX0=PeF~)Ovtl3d%okke|DO+JejfJvUm2N?GYyuYs!k|11&)| z^kOn{tNY2>jt)O%C0llS{sPat00QaLENA($nkkR6EMNK7%_-KS4%jCa-Kt*PCI}m) z3b0Rz#{{-u+S|k5vnERP!wy7dSz&@2OUJ*KnM3}Ho!Qx*Sk%$s`NO->8C(9Q@NhMk zoqmDYc`@fy(7tBiD8U@Yf(PHIMO$YN9`;U>*Q5do7a7(7HvC@jiPSO%w{hN+6K<#_ zTf4+Z*jxp*`!kGfPQ7z)ToyAj41?20l zhhCqPC?53Qcb_QJ%QJ$Hro^sSyGrDAr(E#Tdu4jt{x3Zme&NUf9UeEpRSp@CT7$;x zs2u`x_$>=6D+-w9dLc6k2HMwVf>l_y|2IDG#>OZ#zU1bW`5&mU*dWRr5-(@J$N$%c z%(+XvdI(Y!>8FM@_?peyn1f*V%lmE)4%FEKOZ5{!9Mh!HJ&gnW%uM0F5p%x+Cb01K zjf0nNcGUzta;@{*N5qjkw0N)Z8%892@s}LGPgjj@cq6Ea&EPo6S}T^eEXoP7#Vt$= zY755Fm{^S5wGh(6-Pp$=ATr zStJf{+Kq8K{V~p172ATA9f-nDh4-QtcyhjU%`&}lWGGTk6g#K6HrKvA3L{N1T$_a} zXHP8^n3e#Fbw{Fmta+9xFzL+*Pd?3kj7`(j?)?LY#0l%R|FFolD5nJ z1uxu*%{97)+?)$#o*T|*aRlZWPGyB$^!jQ>SbLR7!GOX@1wbx4U?m8Pb>zpY zzjj=<6Is6dxu|i1w?hpQiW#sPfdg_|_I$$VXO?BT!^rTM;5|nAiOU5IB%vY~;bkFU zCO67eN?A;63=h8gWB?v4)Pf+;)2umx!|Jm+U+&$p$JS{&NN}qH#3=Fb15~Mc`zD&r z+Nu-+%i`L0)h5M)TheoStm%0ZC3irD(@9l*8as-?mR*v)K>Z#$2v}`daO27)B=@uO zHsgGev*n=5+p)2|gbQc+a<=SJ;Vp7GYF4Ydy+WdEN7U!CJZ{QdTB0bDW9%MR67!B~ zWy4A@Xbfpmmy{ZhMf*c=OS|h-AUV*hLx*7{B7iSvvtz1z6K$jt;G0Nx6?US zB1|ln0I=qE(8_b;K}PX=M0Anm6bf@X%ecJ& zNlRpKc~dIMRh;Vhdgh8X!35>G(4>lz)GHs6Sp22s0ptf5G-Y5qDWbroGXfjWFr0xg zIW}XZ61hBsJQJ(Z(#VEqM*Anar6UFW9M;PIk_JIzgR72nM>m?Ns)36C|Etq~{eal= z`os?>F7F+Ldi$l}1kuVGA6N>&lEb7u17kkzwY+fbiAe0SxIP#aZk8rfYuhg3pMF*m zGAlAF_k{k(io~frwV@ZAci$Sn7`?J|BQ?28HlF!$^%!L;mCu%XtE;HQ**sGqF9&US zmK3+D2NMLO1{MJl9S{Hw9whPC5cp76_ND+JY$t-D^OgZ}PM}ymkasowy3VaQ9{~>l z7rcQ~qh;`!k6=6omKuV-K+p8Ba8WhS3ZB1_KdDZncK!3xEz6F4B4*{)x$N8Kl=xCA z5x0l6I47W~-j3mHm%8XvmD4IGyw8)5Ri3e*adKP-0|`ipl}Ha5L(bF+=& z)63sOMTgYWfQeUA89{{Ae!9Z;iTfHJ(_ zBP-2Yuu=|%=-4Kyf);q{O;mMKEkO!@s!F-fuB{YdHC9UMb3%f``Cx+vR7nMKgpf%o zWQVEJrHBlx>V4p#)Q{3*$JtU6P%voVZoqjX2m+6B;0|JeC|%pJWB%?b_Ug8!SGGLW z8sPcb-RFoRii8WcdF7%y)pQ2i8=9nt;Lv>bz0L}jP^#f)hMC=ra-scyf*h!<>zUW=2%>InvM(GtamQ)L zI`gbgQ(GB~SaXaJ;Kij!jD?;uvgxGF>$7xRwa_ah>V0yh*hUyG{KyFGLA_L;1lUP^ zl#H|0%muJ~ABzJ;o-% z?77B`nix3!=Co}3LyDl0#e5MGd&Wu8q?kbMC9p4%Ch!otu35OV z;`0ayu*LH;sZPrecfCcC8cN$`w1fN5|2yOUa0o=i_qIlW^4l7UNQ>OEMKn`{Q&Ki7 z8B<3NN@@^k(36w|>KZ{b53V)!ysZ;w^9Tvc(RLgs@w702>DytTk|%LnS0&~++lu7T z;9>8x+25FrfPUPMyW?fX3lmdw9m)==nVab!P^5)G9Zp`>5jF8n9!yvJ=VvV`Y_`S` z+5t7y=1ab(3qjL(g**>7MMZPh%Y1c$MZD|7S zsO2_~4;n@~s-QAMG+}v9GlrDk#irlnGn*RH^>?Jm(bNf!q{*APFC>&J~Li!lGQ{BTGcc{uE)v&jMS$d?Xh+p_rR3!83rR9cx{r$bH;4n;A>X>A5q_FmX> z;%j#MTI*I;U;n~DyT~Kw2VdeZ^DFgVznx=_%M-46Nk^s0 z;G<5;CAsYP4zH<cv<6q>bS<*~x48TFN) z=|<+eepgoPsmPut?mM;5Y|e^=W`l~0jmSva@`7v>zBaymY_DwlD)U-;eV8 zNi_-)ZLq-xR|Dn0Udv9oYv?3;0hNSJNfqywJWfcZs`J>4NiAE^cN|lefj|QgIEd8?nR6$ZE2Dx-t zw5oW<)luJUnNB?~gQJ>*pS+hO+Bn0!euCIzh#|%p^>{w<+jz|uacdIG#D(1-j)Z>W z{_c5+prD^b9PQepdZp@{^l^T6cidI-{v|?y^c^eQ#jWTs-&Tv~eSGFr%$IE|YnN}1 zT~-{G*LLu{1lWSP)`VuJ84GvLu_c2JEtcQy`ZUlbVIk-|J@5RSSS+5~dc^u>*$88o zD@~l6L^gVT$H5^!-6%|?I9-)U0Qxjdp?gIqHUa& zDeU2D=ZqgaDz&Qk*D$BGSw&}0-MG5jy;vDNdMtsqJKK}mq%j#-TDY`Sx3}(#E3f>f z_2t1^t0%Te9GiM&Ybcf&l4eCLMPiW#tlo?TQ(sT@+;qZ_kSUJ45)ZKD39-JP?sl&< zWy&`#oOlYg)^vg@*|oCJF0-u5?-rn*H*N~5m(p0JOS*Nu(YF%rvXP5o;J_pqG*fuK zEyNiRz+B9D-ibODMhop?ZfmD%4OjjmEY6olMYTI8R;_unw#|wqYrZ5a?(z{ZMVD8M zQ(cJ?=`xTCHg9-yOf+fo!s@Q(F=3NjN@x?b23ZYn&)jJ?T5P2K$DYrC8bKSS0)mPt6 zv*s_tl-Nqs@hIbVA3v9NXkrxG7To0<$(%*efcv*MjsiMY&upiOxi)et1&e|SjRKYY z!jDu=oYo>~ZndpWsp4)+HD~UnO|tg@yKw$&g?2Vcsp{SqI3<_>#%9bXC9Q1q`dVs^ za+x^4*50OL+HPyXID6+Y{$V^$c9#ZC3iGUo`zu~&2q}X&)`vJcbahoj@b4&;f`~JSnQ(f`raCEtDw; z9o^7v1qMfD;!<5KN+?qKS*-~xXAR~EPeS~JkS)n`!dA-dFER*9hgFGN395*?Vbq7x zEa|YtcOk0^TkqOO4Lvq(?b~wZPO@%Tat=+<8Kr|MHf=j#PCjCuP$RGHaMeHh@p&L3 ze3nS!86sblh6Ce_Yl3o(a-$^HYQ*ag`0nn!Q*F{Mi3oX(h&duIAg!P#ah{Xo; z&l=p)i$c23LX~dw=$hyx``D7@^vu?Lysh%gs}D!@f(|{$=#P!(?*pw^zLP|)z{0*8 ze`80A@&bRf8mOYA`Rp%1-%$5ifE8y()NqZ49R1t|tTBAr2k0qD&@<0$Y$J*%j-_gj z74%6p5fa975^A z%>UP#Huf1IWnY^KJ8B!lMz)KIgOI`tQ{5%_B1k2|8s^qi#=7a+XN8tTDVYsfMmaMj zLJa1Y)0Qo3>oZ4T6hO&YRR|;*D<}04fpYuQ626cwXLQjhF6x76s5MIrNB%7y*jgN@iAo* zI-Oh;WRdQNhV&3oRZPbv9j`D8nUK0lFNZfX4KZ3*b<||mhgXWum9hktU2z;RKnF@X92yOvb76Wcg7c zKjp&$s&-8EX61m#ge+$`S>K5=4Dk{ik$AwWMsK8zG0zqwr1~YarC2e$PifKta*EnT z_3#i65PGC3iu9=!mK;hbv)yQsfRl*%H{&EmKFQsxpY*FlKUQNr+G|uO44{6w^nZ6o^@F$iI zt!0js3M7!ShL%MDr1cGW8@DJMQy(g2Z-@tVV^NC+QBVPs)qwuUL^d&WR3L=--M?iw zs5Z@Bsg>Rp7^%lZx3cj%6k8Ap!6*%)kw@a1Fz|(?hlf#AU-9E<@0L9E`dF7gHTX8O zbBS)GcCFC#Wv&!vlYF2(3c$p0KRsqc`3dNh>Z z**0DsJ)5Jb+T4D2M{;gquicJsOE)~Tz+@q5Q`Y7uiYf(*I+K>Cu&@EFK-mjMX_l2pQr&p1P_G_T*fLXlJe!i7 z6qV5?&BZ`6R#CH+_M}~l^05fHfNimK-(4=v%B$0>?gIQ8%wqrbVL|8nU?Iy5w&x3O z%YM*RSt%KU_V&uzH6Q54#Bq3~a|{N?M!)>Xj;l7El>W%I|jcHVJR;L-B?%3Z`iEvVDSWDEJrZXljGrPpJQ`hrW zKGH55N^&u-Pq3^dY@eq^x?`QBMB$}`b@onuk-+1#4$Wf6#8HLRGItRmb651&@sX*= zhAU5TTCjI%(4_kfCIj;$cqmbSzTc?j$bZw+}`fKS!6xO80l!S!$#LN zNB}jwWZEr|J#X+|WQJdyyxcvr9~r()4Kti=$9V6SJBv@!gLDLuWMAr9aM`6|#+n!4 z0P@ZpMg%$oZ)A)(WY-Q``YFVTA1Ht7-2^=2(_Q5k1Uy)vHQz)z_#2RO@_H7KuP=CJ z*XdVcSoqkbt}cnhQY_gLED~)M8g9K(+>_m$|rAG=3`uDcHxA1SY&4+3*`L= z^e>pGqs?h+C3{ilD_M~)#t)!Y_9Q!M-RVs~AV&lYDiK&DAwUrENy2*)$hk297$6Mf zMO?t~m!OcVLTJ_$Ymig>QRBUamIsi__z=M-^1ey3 zs@tl=`+k$T%uhP&DiB`iuZyV@HyoqAa_pDbX9_(K={k$QpTAfFW&Go$q}z@0&&)01 z8F9(j=M_`KJU(<^%^~V+lq02n3L^w=!5()DSlg_R-*E?0rC~#Pn~)p074|H6Y+-Zl^%bXDQ$uC`oAG>$gETo z7+vK55}3qmfrdF^E{G=jR;OsjK)D%iL9T$%1h1VU0u{S0QB(@(5U^6jJ2vqU!Pbgu z?<8$SBooMKQ0t0FvKISiYyv6=sS_59ggQ52(uvt*b!4=Z4>!#qeEC*1d0VTGrt&NC z>;vRc3t!CS!jEF4#zRF(QO2SAa6i_k`QKUl_W_ec)kcV;|1O0p@7}^ z(QXW=c@Ldq8urJ5DPRINL}HXdr?lbj|Hz_|n$6+GX!T`l#|6rQwej57{#uD=N)enr z=9Y0a-cFdHkAmpVLz;f|hGnL1Vk@mzs>jISkX*7Mz~yltXlB`xe3wqc(~@L8tS)B+ zlscugw-r~J*+Z=+;8zYb(lxMgI^%lhQur}Y#_FqKfGcgSXwHc22%KicmpHI2p>#nb z>G^(!8ZDZU7!)2ISJD;pxp8K5ObQ!cn^C>?@64&UQ7Hvd$7$gEE|mamylZimW%GC6 z{>>pD92*e9oO`HQIlT6>tb@q4npd#)iqq(Rcmd z1s17<<`?)GsDisC@@I2PxxYus@ouQ))v)lpUKzf_i}s2Kn>?Bki}tFkIS~O)F6Rab zA?*071ziUiUWv5uMhAN4|0|- z3_&Pz47)t#Bt5WQQQ%!&NQH*Vah4asogN-uRY6CG_;5)dsb0*h^WKqHBGAA93X43y z7BCsGL#fQLX-s~jor=4l(u5n6)HiaEy*M>v3#f)gZe>D zgf$z@E9Nod$IPpL!S&#P_4baGGevE^8wzs+76U2 zA-aTbU+)y}*WY=X!aI;ND1T<6|LR@lcOn!!-^xGq6AxR!wmUssY#`iADS-Ox&AdP&cJX3WXI!lAwSsv0nU&TeV-sQQaW^ zMxr=sZ6+TY7kd^!g6tCvbo{uX&6O8oq60C}Qj zV-Rgs>l$^_x}WHRZJ^L>nnu*4ls4CT)Sj93bPBf9NK8eq4k7$QQRf{hfG|%skKwpQ zk@1G83R}~a+50)>(f8Ph;_R?CCDOq={k%NJ0}C<%7!;hNax{kTDix}A&gS{Y87**= zftL#p4n$P5WwdaztGds6bNdT+Y1&?U#Q{t@(h%uydU{Ao%yuVW!A6VUBF*~zm$JME zvalXh&fplS&j|rg=`Iz+e+N^ZxD?0#>u8I3alpJ|vp%?G(?L>>Q{p!uHqLN=y)Ia* zofgr;OiLqIZ^V>-ud;JplztAWLxt%J)h+%c3r~leMc%XRdy9T|6G}}MZr_1l3H?mh z$cs_HAhgbr5>KOp0R*8Od}kLA&6v0vb)wTK7K9!(N2SuoUKi4FN_&#vYYSz zYB%1dxll0w!_>U;TNJ!?YNz))S+|Yb&P)9}_7K2nGCZ?y8QP6!SQz7v^704u2gi<@ zym!ys@T1vxz6jdgc2586jf>Sr#lX3-0nrluu6@Jaj{w?unV1)udf)JPFB&g|&)Q|CR>O5x71vJXxz;szqOp;iP=Mll=}q}DkR0EiFCm+gEr>fJ zoT`-npIBb_m4$f_fXj-;ke-^bz@q1HLpH}BR+cj-};?aZ=ss4HnK)Tn6OGd)J2 z94+%?SEVX8S5k|Emb4;a(xJC_RnOK%QaBv`4`y1w+^sFY@zzL5WP=wdmMUS#;^{pt zW!>y|A8Hvn)%>1xt~m) zb&zP122?J3nEtkDIlZJwvaS3`84vSNn;MO{XwxTW$K`FbD1Q4mbtyl-5KUj#qpAz< zdN^Vz3Y6BlrEJ4iFeGSJ>AF*YPp50BLM>DYR|Ra^Jx-#S`^HiXJIQ?nEz>f*Z$_p1 zN_PlW_DeNiFYCNv^N3Usw|VE8&4Kn$Xx*Bnuh)h|X~(rFI{n!=>GaH$&I=K~qFJWI z=eEM?bkO}3Yt~{_d~_v~8XAc9KZS{?zBKV0At^0LRP3TENZQkg%Vh0#@h)QBcPS!X z;%mJ2A-ua_$43lT=~E3m6#WF^IG8(6FKu|I%Vg-R#;cE4>8rIDh0KEQh|*~-CUoOv zw~xp^YG7J3RKe*IW3|SlRAAV3{bk2h=l3s`Oc7$j0?dB#_|FE$Pto%d)!;8H;q~?8IHeTT<7dC+mGsC)Utj3LrdTl7=7JTmi|rT zG0NV;>!F5I`P^C}a%t5Ag)ex<1=N?3VNm{6pj!nCE?FoHeR_k9%=@s&8Vq-)=fqZ7 zj_sYH%xciwgnZ~5I6h*MIc9X}XSTAf#1k?lPqE*Vg!MbI zPQ%+B(WsuY)|wL)-ARJBYq4Y~IO)SX#2_t}QkvZ{B5u~0lsQ?*pEh4AhEwB-TH5J3 z5N{ndEUiQ8G|_CGM&< zJy6ihG0CW0TW}siF=p9(3ViGyeYZ@4RFQ+K;!)uo3ONMQgml7w+U&-#x45Txb^b)e zp*bp!BZa#JD5`%di>VCx20z^Q_m-G9E&kLrXRBNCRYomk8>WKM06Kgh9j7!bpG?eD z^fdn)oXMH9<-?RL?ky00e(H`b|jTGoYpCkGV#Rh_7s`BMX<)eBuD9l%fj z6cNIX3~8faFU5ozMcJ3WAa^O)!84+eqURK)>Z*_L!%n6J>13|ge-3#OQwu=Xupcn8 zsiB%D1G^SDt^Vo!)Snh2XOcO1PPV_``YE#Tk??OHMJm70>Y$#{?)G2rFT;cG9-t1i z(H{gDLcoXV=eGsoSApb*!o|&#Y}a}-AVRnO2tLXf{KJQOADT7Bt?FWw34M_z(1X6? zHc8R2mBeCb&Q8xuSPi-Vx2)(}b$&DG4Dr+@R~lCLn{smXSHllw6iGzDFL0R5a6e0j z=8qC$=g$-lI%1iA%Y{V9mW^>J$VbGx*z)EW`1Q3QMgd0Gy~v97zT>TB1KFCBHmA50 z{SY!{A(%Es^XfUCbtpp4l(~HnAc2_9>>su6&aff$o!VbhZpvW-<`_GjJWW5Yz8as_ z*H5*}djZnT#_1sgy(rn%w)p};PI_y`<&~nh)Ty8!(~!N-Lw94Sgm(TN=IyCBMmwc* zmGYq$m}I^!prerK@b?%LR8gK?OxsM^lk~} zP5e`TVFP#k&r$ikjifVmsx@G@d6>p@m%a|?Y|0>}(yL)zH*$l%YVWc}U8Stw%&^+P zJb}5KoK5y>HkR?f*_HFA!DEh zLMt2d6hKZH8gLQMCmviL8#2tyEZywU3v-kSAtRMw41fGW7^QJM%>95;`a*R4o=&U! zexh|}4%{N{n?Ig?XtF&qA{mYU8R53V@x%ql)zu0Sw60*01@z(hSQt4!*c#l7^5<|> zuZ=(?)TQSP>GV3KdHQ$A@8QCp89>2Kn8}WWz_-O_4Dm!g7WbN6U$&ODKY5VS#Kc^( zA!_2a`23w57||5^6F~Mjt=|ieCNfrbd~{n}g|eDHr`x_M9Sic{7azNl&m~aoAq`0aAF(n1e>f`3FBJu~r(0MmjjR+$N#8iXwY=d382nPWI^~swBv$wUKaomWt>C=q5mvf}lCg=FS~npi{w@!^T*E=_KoO+OFT3PCI<7olEc`}F&@}6XoxF!+Bf{1xi*MF9fAJ#JdAM1UkEMoZhL}%HC%0jID3GtpPcvbelCl(fI zZF?xD`4QPv!@c?QQf0AAo5U|{D^Ul}=xty+HYM$Wf1QOt3FfoBSa@TwSrE3mhL@S7 zD+HDwciMv7sypCH=XL(>SCex7qk1Mbo!wm93f)tAvvySst1r*q__;~@ak@0aU!5l% zTAAtx?HOaWlpSb{S4BocVevb)UPxtPo+Q9ng*xV79^QYdkyUZ#X}8kFBSPDSW~_f+ zwSz=6C1C0Ja~)sc!%5cmq>FXfI>A?B9pOYUyw5gc_6Kc()AvNj;DC^kJSqN zzbS7|Q~|9besL=BKXrMviKkkY(@*DXid{qS(LFW^=+hjgg>|ulS{Eio*BB=}QwaP` zb_Cq(GmKvaEyyIS<{Y!d|*RvjE)&?23o0$!=DMO<{W2X8-JVHGg1YXq8ojdb7ajhU?&*^ zhd32m8pcBgIXz*j)ZOC)7KQB#3qM#q;pl-Gsh;8*;YYLFIiXsTaCz%!fnPxQka$IK zv^f2E0CR@^QvFTBs@oYuPH(Cg3;niNxWi~0u->|8Y_GA&oT$?uj3%S9NS&^xKM^li z&338=b|@krT90OTQ(l|{c`(NupglKWKn$$vh*4}8ggdet-DZx12=D!uGm{))PHkynJ>W+bZR*K}mh?C3$8 zX$w&yNXId|@dZXsN@#pEOjA!v$&j)Tb>@f48w!s51tYmF7of*KmxxNaA9x-5V3mA{@KLdOwrRJ zLJ(k0egtO#t3)%vW5OX;!lMz43B6YYM>Om&Z4 zS-5NYBEFgoMz$CcWB7P+`90#77yqvxYSCY)U5Fjufw><8vl)I^c7_D|BX+I>wX6=* z5l5u3bkzM{S*7BiES87JF{6~iOJwShe~UMW3Gjd`yKuqB%y|z1`v1{w5RV+gJH^iP z%ZcB&mXC*nprhu&B6F~5{b(utUm2HAgb*PNQ$U>1loE6}Fvq-7fs3?^N3~5OQ9psSp`Q zQtMbiPMpI?Ys#Gkd?=85PGmv};hAewyoQFWP2whmXk(a(Rs@l#M}kmEV5O6l*LPf% zjGk1z?uwza=8;m3ki*PyL?FVEmv6ip=>alenGf+WXCk@yT_{t(Td4SMQlc7((lAeD?3j7YHI@bE8JR5Hw*rLvPOob03< zyuul6$IFz13IK$XaHIh~zVL+;4^^17IAl4GUq=HKkY-N>d%fb=j};Fz6<+6u zzI_dkpXM(4mcBJ-hksz)Oa%j8u-?~8jPbCs%csWedx8^dI{;sdv}t;>BfU}_NA?Py z?=GzW;H~JpJ}_h+D(+XuPGdBE^$C#QQwLDkR%OS-vK>D*(DlZzEk0W?IDc5)JiPkN z^qO(YjPzj9bjb01-av!@DR>h^(6gQh^&{K==U*}7&gUM)GLVQGpAtXV>pu@++nEP) z%w3r17Ie0sNs5-KIlzJ*@lCK>vuw&sDObiLaj#d)v((YZwzq|u6vGQrBl+fITRt?3n#s-@9nyRnaYmlmhDqn zo#y7^cQ?NP&U9UNxSvq*vs>TVxMYxnt%Li(o}FvBD8w}nl^-wopH?A?qvj;L?7Hiq zFQcNutmdXD&P-=VRi~Ri8vpR^EX0$6t64h1=KuKB9133{esLa6c+&%rI2iabfFtql zY2pT^(Ot&CttdH|2M|Aq(qGOt7(Vr4zorbu$P$g8W1~p;&p{-{k8FXG10RY?6B~8_ z5q7sx{`++nMGy*ptWgzD-^FItRD_= z198(|R0NP4#mlv1c9At_;cOk_B7)QC+t zp>EGFsx0`no(V6xRo-lGJCZ;)_cAN@UIUC@axmSE`}NSGN&!t0bGT(^gJiWF0`b#y z8EeDmZrDygIdv^(wpKq|ft-s$vs_0ac1ULG}q&{(hN`M>;Vye>f?;k zm}XpcKL+~6*KEE`V9*1TRok=*R-1<9IpasJZzgfea@P^w z?@d!B@h_X5t2ThPkp9pQfWxuC_N6aa!1~k`t<=);nuBYoL zUJ(d!Vh7U;5RtG?l=hltq%xZQpD^(OkJ(xF^&{?cP?(&V`s!2Adl{*gz9|r3!m(M3 zJZ6gvyfEm08f34z^^=Oqnl)#7+_K4sk9mCfy9cS;@{3}`U>-?wSitCiirgx40K5xa zKuR21IeupjtDBxySpl|)Avi7JK3%qRbs^OG-95<`!W2I8U;t6crItk|aqA6@7e9NQ zigXWiens7$BFCLM5Z8Rx;{&|51 z?8_NTXS-c^!ggsgMqggDdo>`zH2x-JD11R~3q|M1Rjw&8w%cT(Gn&^bKQq3hLn}u% z&K~e<^d1hHo1Jahv{CuT!Q>YD=Y(vbEo+C;geMOrML-5YqhYTx2KwpDLViAO$Jzw7 z0N{lz%ftdJTZy{uh76P>`A9JkB;<=zhH!-&cSZCdr(=Z26cW zibQ7d9=1mV$n12we#!>UMS6os8uZfak@=%DbX^TknPm=g0ccPX0z<6PCN){V%RKtI zv5iN?sCi(mQ4MZ$s`C!Y#LBRpxBeJjJ0fiEha7(fa?Wm}@jQB|{bnUeZSh z6Eeq=^={!)?>0fXZ5M=QbH>u7yFW6K-Pol|?BE%Rl3AaP>&HXw_Pfw|ap@RE7(yYDCuXvbYZ~ zHz$+^KLv6Djyf(dA{mo>WeOkVX9}PyI7>w{XIb<>V=LKXa!YY*QKf7H*-V2qmTpoX zZClIi^&WRk2+*Y-v)9Wfs6LP9 za-vhI9xzzAu3p#{1Ek@YPuA%o`BqfFs_982>o|IkClYsk_3VweEdmLZ1t?tw9urLe zn4Y{TIR#Q=k(5)8Tbeu(?Jw_WRr*e#@}H~Z;z1A-Mj+};07f<{VtO!4Rk6TRIrx<@ z^^yIH=;lrh2>`i&08<^;w-`M3L``5%tT1lt@d9;>2S#k!p@wH3&Vy%H7-{B(VE>w? zY783)m?<{G#!?w4DK!yh1O@&V{O^>CTB_K!s8hhG>J|KoXB9|N6#+YtevOd!*4!H~ z?McGe1bXr_P-%MwP5OX`-f5_tz`cY#@ru@%H%G^M1;{k6*^~4Jx%0vRQ6`2y!4dK36MYDx$6VI5 zRiZ{t^$!O87sL*EOX5)zMN`++rU{$-$rr7GNnbURUpG^#{^u_$4f@k#7sn|_`kwQR z7lX};V+PkX%12UzHWl87UznO*t8U#m1qOKX7t6%lQ<-E-gDF@qXYzEjOkyITDpXUb(__aq=ex)5VIoB`fsob=6ay&{sD{LI4H4up!0)qq)B@dTz0(B8vxqng-sarP{t69Wk&!FZz=BgMmq$@00` z1iSATqTVzrZcY&Il!RA&hI6}Uh~d6FTwM#QRF}8F=aC{pc`XsBYa@ z8pY529c~vsJ04g-2|BNFame3%r+te?A1|gB<8&A~eKeRex!{8`&6TR)R791R6iJ_b zG1ltCu_i+#g&lAH^1vj)nG(F`a8E`ecE>ooKi=v8%$jXvQt{m<<4jBiCi#GP?gOJ)7}afmQ^={0MfJC3;7ldgJ1;P`8@Z3D>vn{O{9 zy_Wc-cq~ReajP$DH6OsyZ_=QUfjBe!4Fnzni&-4p+_?dZX00) z9?#tR(6|V)yAu0+RY{+7N$*?tHVT%!U$B5s3%e^pv(W1sJ=tWeM_c&N^R?hyU)Nrr zCT#OMd)tJVqX!%7iyc~kRkKjrwT?W{uW zK1_*8frR_7g!1_^(iBwQ7Rth>MX=j)%Tpmb*uO~T$yeaIA8V?375{F>u;&L|qSg17 zJ4G$6EEF5`S;V>|4;~a9;yw9e$kWMypTO+tK6pEaSvEDVFrahymbssQ&LE!KpZ`s$ zjc#yq zpzuraXU4K_g=gx~2KsXs^h%1_=RU~a3VDuusyEvJo8Nk50|JQXXA;0bmKcKCg>`Kx zL5O4rCJ?nTs01pJCV)WWE;O!&zVFF^5$IB(i-Hd(+{A9r(ub+SZO*{*HY9`LDSQkl zOA8H-(j7{b56<6+m;3}pW`W=RBU6_?yxF&!>%3o6aM%7*{BqQ?)KYf@<}vqlJ#T9i zNSSRH5U7kb%dN`?uMDlfe**$(xL+aoy8E~}%fy`X-G-^=8sgTzagd(#q|rXN!SVLQ z%6xM+9ofxr4ksm-j=!}bwj)#ho1huiSpWf@+@^8te?8;Ks5Fm(>tPc9MpT&B+!}b} zyNsNGg{knA`TG@!(u31L#`zHs&Xup}ET=_?#9w0cJsBAh1y|@w*npj-Q80~+WLpDl zM|#HJN3n|PxCtSxJmTGe^VrJe)2oDME&lueha?(WSzV9w{PZbDQs;o*ulJzd1m480 zlh@dtm*D(1g(V4kx()lq11lqAC|e_14K6Dh*0sxKLcckR6g7Sa9xD&m zZr`Zsao~w;V0g#B0XMn)#tPcLf!|%zM)~Q7d(jZ6Z z44I}O_32Jh4=sMSW9U4mxgya0z$MT1@!-L1EW$*bRd;sK0Qb7?&~ivv#DgZiTdd?3 zQEv@hlV;2z3;(kP=Sy3AQrA>%tsT$EBmBO*b@ot~K6Y$XXkDQ!0RbyB9czI?DiYiF zA`E5mQJF?1!Hmi;%g}qG(>jCc*xZAjV(e@U5D*J}p&vuF!ba28#SJJAXPcw~UsUL= zlL$xVkp${f{&6&5^+WWyR{x1$BR&t-UE7|Pq+CPsr`k0zj(gHJk`)FzfN~7=Z;r0> zBR1u>7a4D%`4gt6(a&rX0?H?~QOPCfLE_j7d>~ydz&lv~|Tj9gF`sS-eG`2yx zzMVy9WvrBpW?pXeGH+Vhb&10K-5s}HQkUsotN28eLSNv*xo(~V;96tho&9vSPCWlA zZ@21bpTD64EX{uUv%sdGRQ_K)$%8MXZWTTpc}WN7>*!|3=5Va#T&6}8IS63h!--dM zq4z?DyA56Ob{%H?kAqC6^Ut$m6`6_xms%Z@JgEI46&q>?Q*$mK%y;Slc0ja*(Wm(M zHcwWUS;^A%Y2l^r6y|!2Gfh~0l*gPc=J9;3oKBgPaCWypf+N=b7tURIPX8;REl;nG zZm?z1j$BxvJhu9^_BBcd1aLkd0}4ao!2N?c_yVdvnPLe}=DnNLO` zpBGa;@Qt5P-Fy!nD7(a5$ERo-Ae|@6H;F0#to?MNl;-s^)B0Ea)F5YaY&!@`A#Av`w^WNJF>n&vafjj7n1na9^2Wje+?9{t#V z6&fP|@+dd&)VBNa-zTQ)AaF`&zR$^nwtCLhVfQm(~ZzMi~1{V-U<@X=H2l6Po}(Ia>7C$NaT88ZP>duPrxJFl)bo z-mV+cS`wa#_>?6TvQ~g$dpkFVmBInE)_sg_{Ta+ zBOU6PJ-#z#`!Aepdjlvw)yN)qGxCym1Dr9m*+?w1Lja=}=oU7unv&`ppc%&l@mkw9 zzmV8ve;5DnE8N!tw?mr<5(Oo%%t+_iA{iMsbY)ds!xh+Aqr zrVjBvW;*lDU&2wc*NHtlz17hP*TV|-kQ}=r2Jyn)A>}SXQ(F4nzau;D;>J>=uOwW^AiT1t1LxiH+Bhwd0aV6TEv#b95~dNZS14NR&OZ_NKy zC1Zj33kN_(8?P{ik3zAC;?dXjY8`uO2dmPS>px^JA6ynThCW-6@V?I-zP5Oi1@2EI z)bFwhT=GW3>?T3cV+9+jd*wly<-%6GyfZnx&xe@?lPt!cti}KO6POS;A$y7xowdso z2GtUtNW3i~X|$#Gk=vNPI9$RLoE^F-tellMOuyiL6lET+fA_f;{D%P(N^lK7k$X`e zG1^+XBdsLlMqNb+^Pl%viB$C-(50suM{nw=^QJ%g#|%yG2dD?f81wiH2Yp?CUsJWN zjqODCX~;QBa7pT@JFv5bA4~jfebMlwfS@(AA6e5gFZ?Lr1ZQFA<97BwU)O601tvbAMszTA3eaQac!mOQ#_Y~gaR_!+PzbADdKr#3W6s#TdMMRP6xPl{WrBK z1IWsGgB|4!QCCEF7wmq-9DZb;zHA)yMXP3(ab&+c=&r-R3MxG99c{FQV5x^eFsbg4 z-9uqYK80+Y$)7tD*4*dLJQsut;pq$W*)x+3q;`PdM#-VD&5oKkAY|1f*RXJ$L0{t9 zKiaYQ5CfTd#NlV+;jLv!VJjZI!zD3O&`w=Z2`Y%7`bHq&7GBWb4Y?Nx<6p?T4}ROv zLi?Yc5)|U|vv;`!+k^R0R1$syG*31h=R$qAX7ftPWpzhUQMgj+7p>M3>j^wjFUu)$ z+!n9EgjTa`%69IlRR8gJc*x0z(PXE*!tX2id`0cATml`YYx2SB&Vl5PcDu2V2)MK2 zI`MGnY%aM3=lU^!wA^NX{4|v+icY&-i%}Y)7Z{*+P4hgDG_l9ZgdsJ^x78wccQoqx zf3zu?tTYr0c&9t^2MHoZ!;`S#It+KXW`ldfz1~0uvv+ph93nzUP6GfMb`(Zc>n+6v zZ)ygLx4WjZo!Y?&$}{pnsq=}?6bYhI;=uL20JA+P?O}`!6@*X;6@NJXE_FTQ|YYG{QkC1Fkrx2RlZ)sdgEyaJ!3 z1sf$@*WaQ_EWA3M*4#E0%W0L7riTsLMZfU(WZR1#TYMacw38Z^Z4)V^MxFgGEL!6b z?{@)@sRvDll4Pi0`6g9ll2yIu`&%)Iq!evAfj+SRlY86qiH4~XF;i{4 z8YI}ObU1nja~f7kb7sP&iYgx9>K9=#J$FoLY|_nx*vw|KdU;$UETEi|XG|YwM%P|6KRKB3Q6k)p6oNV%)F4W8t^< zsed2}35HsE5+nSamU#%HRH)OiIMt+5sYW>SlZFGDjVrBec2eWyk0SIm!okk{ue zEZ$SOU6yV7(B1}TA9$9P-gBjtvvLP+m?RMRF**!~y>^MBl1^J6SX+3ONUx42ig~Q0 zlPRkJ7elzrHUX*>JaJ-5ciiOe<92*^K__z_4#typJn#|h=6#@Ga!V9`FkIK9v&e7^ z%!%hCpp%8<|T#ZnQ7!kksXvVkh z8n~(v_|nWiEVX{lK2@Fg^B@`xyqNo&k-vY5-@i`}-RYukRfINc0bFog;q7wGf8&*9 z2cjZ@4*?v@90f&Vx?<`3V@7nPm+lF|^92w=AhjK}CncU?`hahNEu&J2IuRpcmlV{XK}mqF1sDg2vWz?PLM4biU&rzXe_7Y0ag*36 zJnX`7{SAw4&Q>7PhczaWa%sW2w7s0%k@B71GC#_v^))Dyg_;?}Igcy^A}BjBjT+N4 zyTjOsr)6Ovf=+^n%f|OdGqE;uhr=4B?u)BEG>@h~3`s|#RFL>9?&B%4LIiUaL?d&} zqk^j&LH4f^IuqwZ#uOKu^8_|@G zMwMW`s@koUjeR&H;S)_UQz#!u`P}A-o%V|SH)4S_y%KlOaDKO=aK@3q0ZcM_0NQ16{3YB0U04g*M+V}TXKW(8@Q zyIxEzaE*h>8ZoIf(^jXR@1lzCzRo2&X41XQK%`mTeX&n0$ zi>Vr*eC4yJ&&L7#v;U9OU#6DUZV=AU&|CMn@Jjo}{RS+(`VITPe=80N(kON0Hyg5* ztOyX_aX*raW**IvRR3JAe#iGN28`*L=@N;j33Dn>%r&xK!JtbOOcjuacACV57V+zy z4dtyf{1%ICA*&1x54(N1#sZZ)8$$)GCn+`$eVJ`vHdwy6{L?mtKQqW$UtysufV`IM zQ5>h|pK@8F2x5bF7VmGKm~gsjHMKn=#dSZTU>06<2)nNL;-)p+nqD-5YIsu5aKhWF z=Arie7^?|H`w-7CPCobbmPs_=6u-SAU8^XAJgOhP#YuTHLL+oIDVGQx=w}TNbOdTNuKt-db1W!Ym)hDKfg*MkTqOcdM9q(##!6LQJ-(elOX&wS!kx7YOG2$B6xx$sAT{r3P!JhBGp9GBg1q-b; z-_wn%e-+CNz0-T1aBZ(DRN5Sqs2)Utih%{Q=WdQH1bs#drm52d!YD7~iM}NmaW#(N zsLg>ZVGyd}It|x`C70#`o!u)0{-clIZ)5+*;A*y7Y{uvb_-jUV`|%P`>gQ7{^|r+S zT>-h4+pTmGwKyyL@}TOO0E)YaX^Ii*WEv+8w;sT!ozNAq@K7)`|t%5&o7|TluD^b*Zq~zss1W?1|I$ zGsV^NXnve}C^_tJwf&WGJ%-yOufhg9wTWN;!aqKH_D0k~gYI!76g#_#NfLhcg8$^$ z$m!tlQ;846lQdUb|NgxFX0cJ6v7-i|G%l;336Z{pK8y9G!|V+`$)Px!<<1)7GV_{N zigps|(T?wT@dpzXchaEP<+-&Shv(+GaTx|m)g?|ji4 z?f1|86ihBoJx%tBEqsLcJkjj#LSG-4&k&VD+_%3!)1t+}WHRB=*rd^^l%+Ny zk?V>em)is$!w0nUio^0nV$@k~A8b*u+kGD+N7wwpa({Qt?`U(DM>9T1Kbk*qc7TwA z361t`yA(xA4**VTy_w@rbSWX^cPQ;1MXwsKS_~VkRYiCnn*-T-0@%HRZZh@M2-|dB z_r;Cr$W2&*V7>L(J_Q?O{9H-UGa?0#zt((zV^Ucx`ol zvMiLuWPM7ghkjhMD@Z08q^rrrtt%a}K_2uGLhdTYP`m|%e6+0yaeEy+Puu`_V50o0 zXXGS$+)-{Q(WKMAVVb%KVb2K9=^Lhc*u%DUZ%WUUlLyhBcCn=E*eoUwEgoUJlkhxJ zbv3fkd~5h>)BbT)+eFD9!0xqyOicyF|!? zU|zS9{#>oJ>~z)oQc515JPi09iK?22kb(xl!|s~>YAMUDm*J26Wa%ie6R11Vhdu`n z6UowYG-z8zkfLxvllexaERo?bbR8D1w8!f`cgqGXDcRk2fU(|#9m#3~&E=*83vTb^ zU-qV#mK|vh_*pPGqNrU90@l+&ODKfk54xMfnBVHUW~}eb%A@8TtP0qHg&g8rCf^b2 z!imZx9aV3bAO~$U9Oia7XoFnXi`7n^Fz<*xYC{!8&;H<&2kkW!@U0)vzQ`Y7V)t!1gw>{d6#SCR>{R}*v<^^>sZ(NVOrev{tU_TH& z*A)n5$)=oTG0#(_MDiRV8T8WPBKr!oDvVtV0>#dZkGcHy4YioJs6x`JyWKvHZxGIH zN&Fs*HF_gTj8?=H(MC@f%#4=|@Z$-lsoxHCM zCYvyln8J>QC9^yBMI<&1kw<$+VzO`V>7Z-l-D%%qnmv54e)NnN-5Y7sPiH4TDxuK@ z`0K2wIaVp}CbmIrpGA`)2PIY_vC;at?zpcfEl~0DQ1R{2Y76$4*!Z&QU47App$>Hy z)$*9qDV3C&U%Jc}?T>Av zL@X#ZZMD#Ni3y|MX4ouON-QA929&~Lp+ZPDuZK0r1XTa+%o0m$SS7QMf|WiwsJg|QgXB+r5vB` zZ>byTDL7&j^3wZ@`FOEb7pP-b|7si1O0`wwcUYh@JG=GCP0>(FRAtg)JgVE40CuD- z$dSQNVhPD%*K4t>p(5&}V|jFX#$pny zMs}KfEiD?qM&U5eQmBo5sqgMPZ%L=ToU6EQ$XSujLYfW_Rf}mivRLo7ZTbmV=aAurT25ZQ!QrLk_ZHZK6gB_F4jQxTE8Tac?w+<26sZSh+UqxYKMv z6TpN~0qfcz4Y_WxNWgOfHi^xIB{kd z7y2mIV*?-Lc63-s=S0}y)MMfH=3EJ|gu8ETON1JipGX5ZfDDX*I03LmV;xuadg|kN zh;!AtjEB72-L8hL4g097BU#`&2$ zD{%t~4a#p~Jarxw3kB$7)Zv$YL>+lh-Gtr%i6nZ2L*Y!GQ>1D)4d zzEQ;T5WeaiAUC>N_cqUq-Mk=b!IUnH!ynBNJ5VCyH-xX+-Snf7vDN(9Vw~YirA|Ml zQETV+#gD(=rVJSU^5k+B&w;P7NGULl3PI;-nlN8IE1!;c;rJT9lF ztI1D(T}LE&_ij7*n!b9%_tLqcFnfhGP&ox_GfFloHoyquB+FUiM6UH(RZuHr3O0pd z@)}Dukg8oYsP_Y$K(Q3^K(OFsWu3buA~YxHKsbfJLa%1-VB&oYrk1vagdHPt?Liy% z#;7pEu<147Z{A%_b|o`^L`6O2F6;xX0kC6DTMg?-Q>~-2vQ#QS#)jC|>j!!HtXb;d zS1TTt%|V|+-tjijoD+g#(==4=Zb|`@Y*JIrRN*ra$X22>UjeEWP-)Cq27`Ht%eKOO zPuAdMYLgN*!~e?8FtyBUkR4TN6%$}Ja&KS!Qj~B19uu@0kF{=_JE%_`JUeAl8$0MR z#4Tky(KNoeex#$|LTnMbfiK>~$S3ui-3^B}5q!kYR-B!^eiPULS z>E);~Ej_&vmh8@2RWcp%G?Zw_8ad3SuovU?hurPaw)aypzWk2PgyJX`IfoRpDT#DZ(-{?D7>ZO=2Ume>1ix9<<&UB+=_SFN)Z2IF^HRV!1O~&elP_SFq$d35Z7$YKXAe7O_|LXP)0ldJ z{=!cRNYNm$dQDsI{I?{3g$l!{mXXNUWQ1(npp|UIS6|-JqKyeNoRv@T}+8X&NQYdxYupB-51&HKn^sA~8l;F@$2nOTATTw(jj zOl;kFe9QK5d7|u&mV{c1-xHmfT=U4sb zB#J^Bkvi*S+QSz-$hvP+3F=tdHk{tZyhj$RCowEOg-U4!;Z}IZCXkKfjAnD%AqS~L z8YzTU#)xjtYTY79hecu(@d%OCtWdza9xbzS3x~%|w>x2b8(R?FSr?f^WK|$i30{(s zBCNJ)v#*r41uCbvnup^GfWi$c>i+%vuMrdi2oX#KGjshWH3CrLjdvu27AIe!pYzTe=uXu%i`+)i+WgiwB}03{@-@YE#&iMB?TK^;3;doY=?@^Yyf9#Ne$R^l z++N~@=y`I237g~{&vbd6T_Z~42#V%1MUkJW-KAH^09%HHM8x^Te-Mh6OGP0j+9v%N z&@5U@x8#^p?D~@?R1jCTI{kab^k8@-DjP^vO`h@4R7&ec%cp$b`TEwWbC=X&NQT7aB}Hr!=0uVQzt!6S%~uwVFp1KV<}L zTfd`!k~AlfWqgvlrWW>vtd1B!c~IIuh}z2?7Y50H|k zHjGP@HXiDglK$Tp+8Tg%Sr3JpEzp-YmfB_6YOf|hin6RStotEM3iF-Tk*~Ap2Y)~b zwQAF#I6x$avYaM`ksMvU4%YvKqF*k1FJhRJc+e!I+`?b4`mnJnWJ`qmbSx_>yIOk3 z0-kqDto$^(-0+i)=7HC+XyAh+v%I|i;|v`xj9U8VE6)94jfepYj5nUB8d7PBS?l=a z!RnU@Z{6bJMOpj0oiQmh*;mOriJX1UhI6#NGzE@}TADsQ__6$V6RJEd>&Q_+yjcw!7)N%TNpN!we{Yi zO8D&bDy6V2udxICg8@^q3bUQ?*CbCnY=quMX! z=oPUzR$dJ_ggYznP+g-6E|Fr%nv7C-fTj=Y_oyd->X6)n8vMZ#)^hmS}lGO^qVa{^~&Ptq4P$R#hSF%`(gb`AmD3RU>eT zy_#cHW_J-T%fP^!YG<ZZMTScn_QZzpHC3=fo7oOjH$bNch?89K&S&e~L z;{T^RDOp^<+)dSpVPGg|_4;vI1{(0iA zyFoc)l@DngGRPMG=Q`a|s^|NN_%|C9$BJ_**ZpYAN6dgT#_&v(7d$^7Fx>!{GDMdQ z&)u);EDIA$_Kq58{GjuPS^7?TlR(};=xqz#04a?+A12*h73Km9TWt8=bisN(df}Df zFh_9&`DAX$c#7SY{^z>=lANF6QB&Ju(-!PQQF)&lUr13dHijQ|ydjc_Wj z)vP206h2lI`V>;baKXMKg_z94Z&90vPzbpZMKXI3o+uL(07gK$zaZJUq=0*~SVkZ=K!`r{t*zT`gs;T8tW9ubW45 zX2j?RHwu{h4`3(;D(fUOBmHm)3N`_xH)QTbq!Pfj-c+A%j-EaD7EaCeng$Q^Sz+o?qUMb{)4wC zCHM8h%=OC4#P~ch2Nwh1kJ^N;hts8&hz?anQOWg6xxS8F%_7KJ5CxNai<9*?;hI*n zi1WyIdGwNB?bd1~aoI*y(O`rgeij&NCSseoz5CVJp6D@cM9hj<(b~&lQ7(6RyL^tP44B7zRs^3iOF4 z`O|#A<_9PgxJwm*aIMC@6&oG2$vB2+kI{iKlm!k3bsbKo49+U;8QD|7_3{eNyQa&@ zA}ll={h}8q@(5%VS|}L!$tBjJ_z8!(vkF@F2RwSAdXE!kb>1d3?ihl{`gOzA11%G*QWLm*PHVq&J^$c*CP@kwZi+ zRbyW3G=jp$f>mFHAuIxL$bb;jj%*SZ20<3*$xxyor4Egw!e(?{&PP&1QKAGA$6(O` z+hUS}>6%LnWDhp!3`Vbm{#1wCs4;ZapQ9mp9M*vl=OF)ZMYAcZ7Bp-JVd8|-wAsC9_ypR1_c zbRFP(W49Nlqxg0nieVb)QYo5ul&{~!L@00>n_kX>+xb#jX@|= zK9Y&JMbK8Tt~oly_+W1^lvGyN1psYfrzS7@n8Fadf% zV=O&QLtM`ovK6a+c(EP@N0unA-+S!h^=O-@68CDo(cj;5O9PgV3!}ps7poOY2rLwX z4jIkOApmwZT7x=`Zeu+6#2hmp9WPG5p-|0(2J;ZwJKIgLMhQcS@nOQ?>{%%18~@{ZS1ZU zi=s2OEjr5!_;<2dsYvei9VyLS9?H{7YMN{IwHC)l3V4E@g%@xTw#_pJPnP{Ps;{<6 zg1>kFwQXZp39GyJ@T2dpTy!Z-x%66aa)oKm*gZWMtTrlT7Sj7F++W+P?j@V${gb5d z_0G8wF4daNVcdVbv8_R}b(nG~^DR*psNZ|@X~U}N5oL^SOu2)Eh|4ATetvsup=V-% zPJo)RTaUjluU7pin)iDsS)@;&tAUU_{Lx2Y!aBVi<6MqN>Q%>MptmsJxXzcQfTYjzxJ=QC?V4|G>Sphl1NE`wv#;yN z)^i^M?V(4SuY6Tz|HqpAD;ADd|H1)iM`Kh=l#i|(JMJwyz0D8nKwjPm|BO28~SuG0?*gb)- zDPhv((WYB*cHsIIN@H9p7G$22d(0#c@Z`yZ?=9bJV*>1A(Xu0DSK-Gx(C5{8zm45s zRyG$-;2B~iZXf5koa1kwfq9NBW8Y|2Tg#|e1>1M(OnRRrKpC#ZgV9CcW^SbMNBMbNT=dCgU10 zkxmeG3`RjtsrCqBzVa~PsFiGf2RHF|VU7)9L4zN3@f#XU0f!H5o(!`+b=yQJ_Ab-U13iyQSm)$TYH*P|;dQSg@64 z7u7}PRT8QfzD4ADL5APGJ2|oQqwmgfgtrSwE*s(hQCyRh7k6d-0`mE_I^iBAg>%Z+ zsitBIk1$zfdy-YG1qsN?E36!N_W)Wa*lw`W)=KvpL=}FsPdVXU(^1IwRUm0Af0%J) zz7;gVLJRX}T$v49HunXh4FE{@l5}N83-Oe6E94&{C9*9*dspchAg8=y1w;i~SvgJu47qxYFN_!p$!xmGn6#pur~znD6x!fLiaGJxQD zn^-_@F0V^DNNFHoL2h|fQb2JU_zdzDIX^+3k#%@Q2Pfjj9e7DS-jFKoGJ~-@hBjX~Fh_1#x>Z||XMuiqNyuQR)ikgZ1PM3P zRd>NF((<|U1}qBY7Yhyj8o^S~hj?z-sGpHy+2vK_;hDDuq7dPGgEr1jQsLORmTa_S z>GqGMBjY`mTOD<6Z&~n#WA6=Z$l5G%zuyFr(}GF|N&MiP4hw6S319oCZb2$Hi*rP) zIf~c+Z-w7tp3m#$L)&I&KkV;qc>4T6E=QfTa={2I3k+_YJ12Tq9@V!X0bIl`Wc(^| zUTh|K`Eq?JVb99$5qYzHMd8cmRbMTpH}5Lm!f7wpHL~t!R|lG>JBru_(Y!7nHzyhH zWx>~{G->4(Qpz4FB?8?2zCMmKPSHR=tTJoGVB&`ADjnee?8|P1(M>*Nqj_!7$&7lV z@g>(67gM-CP#)b%=kyQCRBP+TlsoXuzD% zUn*I#%-mU&vUyWTK`jQrD2b|rtEw31^|z~hb)P22y0ex=GB5h0){Y%YZ_cTk*L{c> zdA~N5UwjY~-??EaVq-_uESViul35{pu^GiTDA8cFi^Iq+P3v@;g(%>t6De9a23H)R z1vHJtE_)DreINhsFl8moM+ZbIE~%`ce4p#oJg4@lk%8Mk$O${H=18cq|thAofB6tr$CgkPmVvl^$uKNl0VmH<5|gD36x^ zj(Sy}T(4tE#)$B=??I73m+UbPxQWB75XZLz94sIPcTydoDGHlDq)$QiVK0DHLCK1C zOV1H|7)A*i%`0cnp{glu3}< zs0tMdH?goKveT%0g#%;T_q$9c!MG4$4cGAULvxrp1=UCUo^-D5_t)&6Bv_edw#GV* zNgQ3j!*!YX{UcMsj`Gy;F`lWb;5M_pwG{?Pf)leiwYdC#bo}Uxhe{n6^N{r{r3BMH zT%M4M*qBH@3*%^zK%n8`8t3i|6&GJCz<;%g*~FJ`iAMa8O%yxL8%F$t=?I~#Y|zoM zJvivhXpSK@n2leBO3f&}KWFdVvD82~HJB7(kO{Bbu06L>Us2AtIaq>*`f1m~A!_Gc z^Va-9ZtJlj;)jD0h#~5ZRwKX>k75R37jF1f`i7k9TvSG&*%D{PRMoe3LZ+xkOM!_nmK9g|wq90B;C-r9b zqr(bF?2;T#hGd)K&&27!DuSA#~cXs7J@t2-sJJ`w+DOn`!>TzY9Jc>$;9BjW;(3S{7AVmow5k-HS{N* zudCI5wPB)XNOJ8*t}ucQs7V!0pqw*uIn(6cy*Hogw<`%I;tLX7^lb#0j6h&7ZM^5h zBC(ZleehY(wT}t{dN_bGr>lJNEk9xDy&#ELPE_{!$HT5`b?5*jR-yLPjEfqnM{Zk5 zTQ(qk?=PEEMjxcVs|W3QSy>JO^VUI`oF81NK+0RNO{x+!^e62Axtp8spVK_AKY%7< z|KxrU((W;@VUpYl{$^~A*81m|bi$Wi>m&lJ42RcP7K9y=Jnd56^L185`)6sDu#D9P zfiR7Ivi~=_*vOY?M)zN8Bqoy5hr}o^F6^u)j(N(QT0#hjGpGER=jM*=mj4^QdW|yLte8|=fkHU$C@}k_& zlaP@leAzgZwF0+zOtpE-m1eqdY-KG{uDV7_h=YRfA2mUD{WYwIpGrl?O-{RJj# zM@Wr%uU@TjO|+AjmN8XT<(XV~h$8s>C!%^x3a3lCU^&DOkuY68715pe8mrL|*37&< zs->Is+gcwvXt>}h=>?Np9AN!F(eiy^S{O){URCnKJ77f3(j!>e@S=XSJ0sx{!q-)T z%x;e7UYNrihpF$btvaHL#0l%Mjma~yxA`F!4ynV_&dZa_V#|k4^zy@X-PXmwtidf} zm#8-NSQRfJn7pVTtS%<3)dCH+0nsIKvl^1Jbt*^|HSyx9a7W@bt6qUtpNhHIrzV6G zqU*6#E>K7+yq+@34c?k77VfP%^Sr0&CS#eHG?qCX+0d0H$en#@_Nk89hu&JQ>Jd_m zL5)I|V;LsXt3W*`W-vCxm{`}!*yo6hAE1emeETcfqlY@G9((vCB9{pN9z8|BgGpuq zon%j|qnN3D(BWADVH5)b5L<*-*Ny})Ez#CQNrsG%J1LHr8ko%l9+#plUdCiSbKwR5pvXdaqv-C=8Hz!5rQlaFQJn zM46;d(uT!%Z9X?D%NNKVuM%%VPW8mgsWH{0LgWjUN6;AGc(=cQ_Pe*y*=J_C1kODh z#eSIx)3n(J82XK@CMKo^;xN7N|E2Yy5J>5PG00`BpfP?;N2qEG?;2Kk?MkVWd`(#W z7~sq}rj6SWPPY90ZZHYJyOu9ki9|pcwl1V#vhj1j_5>Pl*Gu>I+L)-chFPjM4&i?(cIu~ zh$*r;(p?!I+dw%1*5p@;^`MNIEkt6?Ue1>c6qKw5Da4B@x7MkJCMFt9l14gVIhKSs zQZk5)FRG#%*6B$DqjP>tGG{0tA%~DDuiGV?ns$0`W9`aGBjI8zFi{F!e_#x^x9twL z8kysJAlo{4^EcAvwH-aZHwyV|s>IE`DMAiFLo=$SgHQiPyO*w8o+ZXE%xAD&`GgO* z;^VRR;_SrHJJ{GK+cwS7VG|AWDNe~#UjFr#w^%K7P^!XeL3@EmTYfXY4H$Y{oEGCV zX@3E>L_On0-j8#A(p@7#R4S8{ufBgV_22|9zqfO2VEnFXZ_r7<>WpO>2JCdieED%( zES00S?S8eN9so+wJo&y&>MULVi$cC*PoGPL3p-_AobjJsyJ$xcR!{G%@+MuG(}>0j zjmhF7L+EM@xA8jE#HQuZTuuREEI(~q>oljVa8k`=yoQi5=?)hhhwJ4!*C*}d(enHt z4B;G+rdBBZ$f?b~SnOo4c`$h8OMqhyqVyVUW#3vHTlJ3mz0aknL|d=)TymSql84JM zr30`ANnGJn8Q{K+R@pOBC@*kIa3oN)iEVCudS__flW&wi+1hx$Qu!@bj)eef~qInv*m zghyTJ1z(~Ly|Y2x!* zWC-CN<)#J7(^I+?bik7r6TknqvHAVD;2UA zMM<^g|2-H|;6ig2r)(tRBA)*JES`|-EIRU^$-2dG%NN%e)!#u%di5Xyt8AW$UmHlwIYMSpd=38HFdp?ki;Jf2 zaoW`E`fJbg#@)e^f{{nq!^f3+qzK0uhpV*DQQxFw|vMJ^5DAEmdpI7~OM_?bGp zNjwOF-R8_6QRZ#=!Id^N2~;WujRMV@Z&*$#QphMLZ1R!pF^tA3OEPR7K@F;^b&77P zR7tn4MQk#bjKOLU1a*V)n@pIB^8rf_yFZo>7{12v%zN~D>g{s5BG+FqDSsS7+q5W_ zUlb^Ha_6Q%(=?iIIdR?-Pu_u2K?pDhbHOv;#qcFjq7tCR9>Xb(;h8ZTzlF<;)CXMb zq6W<*7!i%g9i~7}tjV%A_HYeh7YgABi< znbIij@6TSnMoFu~T-UAJ?VjHM$rW;-mI`0Bqz-obzdUnVT&Bry{@wrh#p{tua8EeU z>EU?tQ+oyQqKX4$gqs(8@yV)qQeKzfWqCF!@-tPalRVqFg#*=nCXr>JKMe4)KB*ea zOIx0S1~@hP;EY-pv*5}9<8Syk(p(XCH^L`-g2wi=DB9~MlMC91^QRBR0)JV$sebYr zr=2AJ&+}4i$0?_7fWI`ouTnVQ9zQnB5l^$1krzexg2-z{@B4Db@Hy75^88ysbq(C( zgVdCFe5D=QnHp9@{}oQLwUDBL4UG|&UY!j^^3-M)){zDqk28P1eBQCP@~7Cs%0N!G z1D@a|u*ymeg;kazC{__hdH&X;Mv*Wc*a0^I06QbpoY%(-pOCoAKlOW zj3M#=N8|zCYl>U^(|_CYgugpAU;ev#{nwK2LAMw8;tzb^wmeAW^w&&p6l+hoy6`ye zagblNxETtDAcuP2!eKUh#(_?z)theMg3^sy8rcL0eAOc_Xvq7p??qP+eOE_79N(-9{iZdvMV`O_ZAr3I#;|VQZ zu3@dxR=hw2+!y&(=eIXk7KuPur*0Rf-_sS(M>*wFQVft1M?jvcjlttYFh+iX^1$lP z?aMVSV+)H0#6;()P_LM*d}^Pa?rGsD%1$->qL?F|QUo}%8vhJ%{wj3KInVdg9-A)v zHL+-VNRkaKmDURldF(X{9nhD{vF=7aX@@h6zefJQeMnns|Nmb_Y4%@+NaUnZ?V;(w zFXV^3ANi4rMjm}s@`SwTDVV_=S`Qkq=lVYD3m(r*C?a4xgrqG${&gM{tzvPnc{dVt za#i$q>Eo{uK0I4{u0BY896{=6{@pL8f_;F5e&{~kLPR_%3`>I1NnJOS@#HX3+-SRf z?i5L^=JwcS!4zlR#>^tTHul0#6@qD<90V0Pi?Bk?BFR<_d zY8-7*#1q`JL88Q}1|z}Y7VGi@eUd`cKXQS@rMFd32svV$s*+7}irDrJps{o*<4x{B z&bkW+jQ9C~I&Y{&{I2H6)nl<`lU9n0nWET^XmVv0RtZDKSqSi~g4x8NP}r((a}Vt= zl;d*83>1chKmD@K^G3^L$L9`JJcmUc=&(a4=ZLAMwi6H6cnRsA33CP(2k4`ryrtnz z3;qr;ZZCQ~`o0eo=?7_LFB5(YE)i>C3^2cr-srWc4(uf#6+~&F=c6Z^G@tq$idz6C zrw5x1r}~f2-7IpovPloOz0XngvF{>Y!|jb0Oam#)HN0TgsPm5 zJj#3-Z*H+paf_vw0H3mzQ|?U{pSP=ik`V}%Qec0)!+r7xDZT3^$-ozd!$w>bOt#Dz zwmhA-j=TgaD-_|*I>RKBWIo*-8wi{?ZgQ#>mN%j!jsUztn!w0Aw+>@~sk3I{ovviZ z6k%rTkSIax6&Cw{?z4ck5L_Sq9OB-Q&vn;&{pnljT}+&a11wt)%j_z}gqdfyCay=i z`BU&Ll@n~HYu0=QK1iG$nPzcayQUw6g-zimK12b#Y3jAo$&;h3QsJ{t-!uR;0^QB9 z`)OM-toJ0tx#w!V+K8MA*y(3gPsE^AB=81-MGe_gp7C!O_LLWg?nmD=^`b;Z2Z=kK z*^|NOz;(epn$T$2H)q5Cu~z`WuTK(V5`jNcT3|=pvfcI<#Snv~ z`0wdu9Uh)rA6;;7DcpN!g=Tp5ytwtD71Ed{39Q3VEdOF3qr4B`^pZZi&|8GO6N6Qv zY5OjZ4{*2ZQ~i1yF3A%9{FHJH4rhv?DyQh+O`LkEU=9xp_``f|%yr?h-#v6NDrU!DHqdON@Lf0zYb!z4WCi6RER#Q2gS-W{wg z-{$B`$SE#-fpfZ-jZ>wtka?&n*+|El`r6c2VCYqQa|!NYEM}EgE=2=25y5=}1f$lL zUm;F|!yvP~k|YhPhG`w7^o1@Se!_7Ij{|&?d0_r2DWr=W3@HE@q*Oe5O&3@!b3$8& z_OD4CVQch70Z$>4ps+N{Uo6+(99Uj(s8f8t0@5t2pB!0H6R*v*Ih~D=USRa)9}cV` zsw6C+A`hsLo!2s1zwp-c=9EABvujs+>wu>PUKAPAYxJf;p1RuK$W7E@45d_c12$M( zS9Exz>H-na!Vlu_{?uf8&aYqr^s|!~{K@+#b|=F{U%Xf9DusdAIoxHGv#Y<9lB`BR+hzd@L&lS%B?3R3 zH5B}snLU5x8h=|->gy!fg9f*``q0VW$@u@?AA4q~3>RfM168M^+kd<<TLJr`Jm$=SL|!6pfQ5Lok%>`_)|2U+>|%s;f2DAc}5)AIYUS%Ma-CTndRbTH9ol zqeNKkgAQvIn=8ewvSNNhfvE}RweJwK1jV%w*IX0T2G%qFi0Eu4^MWN{#Ab}jsFm|^cmswl& zSez9266=YWO$4ve@0y_Cw~|*3p9WE+DTS|3kQe48P3q>qA(&`g(i%f#p6RYZE1ofv zICv!HN1!MGf*5GFG6_Vd#Z-^q+7Uwxqj4*TuH{d^ybho%R{i5E(Q_RF=3D{&h=Dvr z(F7vj9Gn+C``l9Gh6v*VMW)cJTZ@o~b2%et7>uu^k1rCzJiKPj%A!R8X-#4aIxxuu z`y%Dt0NfyLGB8Tp^IBSK9&HGhAxCjJ2P0*^j2aP^yuq$L?E(m3(*iI+&Q>b9_7#B5 z=|K#wLu?F;aq3`;kI5>r{LU-~@z(SE2A*m1BQUK*9AN@==2}E!m|Wz~J@5xdATz5b z_6s!1v0%T~=n`c;`kVl=Rz0V=iOSCtzW5A?Xj*|2Pz{3xPl2HXbgo^t4mIga;<+p5 zdj@bZ&z3%mI5`cwx2_Kzi1ziIUDc6iYhu7S1S4FtAEt2CN!70Gyh$0DRI&7WN|#8B z2-Y3a#~6E?>){f)bIWofnw0QH8ex^Jv5XIJ#Phe&J`CnXAZ9fS_fQ`TbG(qlS+kc(~RU^=b1VGC8!U5GdhOi z8bNUAP!v`jXnYjmYpR0ZP<{3F)zf!G+AQe=ua>w>!@=(GS2lVFSfz90^$`&Myx35y z0bU3)s{dXv`LdhU+p4Y3&a0uX>6FyX!d{n8j|zh*D10Dz`u7cot#`D^)M{xa4|VKOTO>+g1ljvCLcy{K4-$YV_1oAlV4iT z2!02uuO7)CI=YB3Gei`!Hj|sKVH`o&;Mr)>;Uh9j?4VuQbhW&}ybjYe4Y+f~dPv?) z{I%(U?L22ZK>F`V4HM()OJuo*MFtVY`1NcCwNeCwNCaagXW@@1+{1y-Zokl|1` z$}95h`-dG4e5NP17>$L(R9B0M-@D=aKkV6}A6`>CeO1ltyzdY8*ozN+fYOGZpXJ7y z@gA_bBrWX2*#FJ>%Rk*;5Dj3UBA8fSvV1+U+?)80kG#AAaB^Y98m&f99_oYB02%{D z!ENQ{gxd%c`oddnDwh-nH0$k~Lzwrod?J$R&hSt@a~u2lVx8)vZ~7}jp^xwWwh zmM*$tDF#r6YZgr7oXa>F43ivy@;3qu7E!fkIlNj6aZ=fE}HQ#FW5|_v#zuU)U zts5fDm_N<}gGgXokS)?o5@_q|lyVhD9g8)KNqe}|k!ab`yA&SZKC?#%A~S4!$|!-z zo$BC76g4bg>z6IxW=qX->#*k^w9C0aV;8OyEiD_l4QX76*q6*|Q}DX|20H@V)sHO} zzxQ1u_HJuatG@D8g*nrX3XnyOYhPLOpcL(%kaI&?tj&3M^r2~|q+3LyB}Ld(oNE@Z z$+PO{q(Po+b@-C`USt7h78sY9F0w*20V0g*S1A(30Se{mX$VJ;2OV8U`4M+ANL(CKK8Y%&5iRS<<_L-^X>Ly9gW#R2i4bS{RM5R z1){et2#z~b{_;K9viS!{la?jFFwYBa^+GeV&=<~KQ?dDgiTUDOtMv#H^m{x}b@ToL zc+fSX7&hBtjd(F*Xe|6;`1&lA1&SU3v}6V~+e86n(HYuqkp%iXDC->I-*5mR-l%!V z2SG0kggYqx1?GKAYU3wi_yo_>W#HF0YO-4~VdA;p#yA(|{AhGLgC!7WzypNpvqO#K zA!Y`-ug+!%DP&tHOd)|oY^HURSQqCvEj)T2`p0g6_A*vE;>F!$d z#wP9Pya+d`h-$OEr1~Df;3G~db?E4VtEsf}jw#h2ic_n%B@GL81Y*MHb}UZ@ManJC zEqmI!!LkAMuKCcSR;RFaV#YoZ6BPPYCn)|8Y94nzw|?jf4ssKdnX--77&(f~e_~0l z9Vq1*bLU^@af;j5)}5E)T#R`a9g&pVvDjvXB$mZwGgY&>SU?E;z(qOei<7=F?1^_S zuHIF#>!Gm7j5!DQ`+)i{7|NPOiUm}(Hiy!aeQbX1P$V(Uresq^-79xifdogs{jZ6& zsQN0hv{cWO;jm-%ZT~Exvx+yLo|1VzF)6X4wflhg4^)JCncH}(VjO) zaAWbak7qva$F$n5;iB7-wEAvMFRARAx?oJ}Sf=D9O0`-M&>EolwIMbTXRogv%;;Yt zg4dkbF?6!223<3U{|9QWUk?KNH>`-SVTba-p%CQSAFfD=AyowKnBY`YMTaHtzC85i zQog`JzgmE|-H==k{#-W4In3}+JDkrH=2W5S1o!yHGUS;1sSJKlkklru!j(UG3SmH1a%LGT>K9K1=x2=7xOnWvBnS648-Mff}!`DI=5A@;W z_nX|L^#A+(BV_p8u0pr9w9*P!8VsTqpWk80i{Y#7Vdxa6n_)Y#ozKh*`c6WiE@8XT zMu;(dyg7t}$XYViMhYP803*vW7{~$d=@LAs&TG-ue0)=W(eN=59l(^!$A#!Pc)Y2A z1-<+CQi=`^j4z@qBKo>P?6)d<=Balq%QcOhv#fojjpV&%E2yZ@!CS2 zbcWQYr&}qOol+;~uBbzR{ z;O|?5))+E^>oo5M9*a^#dagqsYFqpaIcFi7nCvxRjSz&ptqH1K4^z7|*0Fm64)UYK zg}}B=xowg;%DNTOnvBzUOE@s=xen9dcxCK%h?5KE1-0*hss|RR$lE<6l}fK>ZlfHl8Jwq;n>{||Pb(`zX;=u%5@GO*K?tn3IPX&y>?EJuW687yrF#CV z-&;>{J1kphVPQ|Z{!maV=Q;&B0OOADR}3d||15(O%{LVlBAC$VPHdP1j51gD~mfCHKFlkc(1IEu^hcag^Mk(2&m~ z9Q`)?30L2OSoJHw>%Ls0lm%IW zTo4HLHsAfk#qSlNgWvXahMEdmmTJ6AaRaB3@9S8`F1j9FPEe^{MwPxKSA@7=)ePl+ z2O-iDiW)CCASW){hCleY{0Z7=b0zbW>02bmmNz+B9y4>YdQUORjHtU`e`N0qe;Jk$ zpLM>X#ySbwej<@e`gFg)wo$Q{lxS8lN z41&=aLx}0&o5FxmjI~7Xt=>k2p=`*JT2h zt%>*nD?5zQh&6QUx=7BP^M{t7;_ykg?=z~QnIyvP9V$kSshU4lRm1p1S&c(9)M`~# zAN%bI2V!CpxKV0Fh;W~`uOu}j7779*?(4U>HN=U7g{K?zS}Bvr@FB35^xE9RzMIsF z6<@US`B;*c;_GpgIL0KwE#2iVy^LZOQ%43i3B}(Lz93VQk|%D{fp7<0hI1Ra__G8A zXdYgzN3jS?kyf^-$XailREQs(nqgl8r@~f5cPRF~U40yLf63-*K`P5rhj6aIP1>EO z$^1wt|0OF)5H8DhU=x*-|E5l%;|2KJEcy+F)QM{>nu`&J5!XNzM^YK+!RAiPBPv3T z`)d50-VFvreF23kq+7eDJH+fb!J3RZWMaw_Jpl@|Z11gCdi^h)`t@R<3lA!r&RLqD z&@BwW5*Av=aPQ6v+mkkH^(c?Ed2O7Ak5C@^i{)&UhwRc?IK$?^VaV z7>snG)}nrBF$wm9j_NFlw7ti}qMBZBgva>z_^wSI$F;G2;lq5mt;i!zSp2M3E&2iY zD0dDb-|LLBa?9f1$*{-3K)e!8m z4Cv~ z_}1}45f6BJz;ky(rpmE>N|Wb_(YP1gxO3;{`-@97nv8v)a}(fUDG9bHnA9Ystj7Od zH$-QiCc&!T-)jI$oJ3I#%h63t8p|6#COa$Xj_EHmhhPxHWz#X{hgT^&930q1oH*eW z8@r-YUBOcXzB;n;3c$bLjqeMl3Lx)O%U3pCoD&e$pe5%8sZ}_w)Vw=#j#Tk&Bh9MrrQVAZac78Y2Oo$FRr-BuD7ZoiNAeBD zT)@}L6BZW-MK4-HHC55qlD*_PKS}T0ylKAT{4|la(KM$? zT5=v5YbomkE2Pj2ZY`WnCsB3PAtq*(%4WzNpMMWuP!)cGt9US*lAaZ}=7@SJv9M5x zl&rDglT@jh#5E!9e=w0EUt$soOZbR(r z%3CB1S7m3YSS>C=a3Aj1|L;dRah_#)RmbDXqr;|{P8&OqSIYEM>z?absTJ0u2&$dh zo#8-7`^xH-rZx=Qt8z7fSJ;%)Z*4|d^_U0eZ^^M_&f+^hO^w#F;-Hz`@v@I{=(5)P z3YxcDRA^a^Hxu-Uk*zXv0Yhr1L~ zGCKcU)KP^gf%!sVEZ0Tag=u{PsjvG_(l*j;aznSy;-0k?Z+#g3aX8VmC(}>nT7x>I z9Ua{M5I(uFDI5N68`ozXoIo#Wo+=oVOi5?cWS1Hyam7cS5@pLRMMM!r&;V9@Jbfro zbb@8HOl?9_0W>o!n;g(iHkSDDOkws$x-V7asvekGoUmK^13~u~ueUkCvT(w2r~`|h zxL6V7Di{kUm|+ZVcT{Ajkr2F-FmB@+o0Z$4=}A{Y0)w;zf%rTM*!h!K-AF6QqSw1;8=3N)A>e-Oe+Ax}_d|)U`r1dm>azSdaGd z27F;f)?D$_wJt8S14rLE?i5DBY7+%X{TN=gJ^@>q<3xi5eXFu)SrO0LzrB28($71F z_TDYlk9}*>F9}M9t0Akn3g+4Agl?>RZ-x*tKsD;&x=$K!E?PX9 zTvLzxvQeOuC*p;sO47pj^o)>WG&sERUC5&W?D4Zr;#duwWa8eF3aPDLEw>JW}52@ zSFtcWY;Fgc+!ovgKCr)SR@mB6qg5&j!qm?IXA(E@j2e%m{D?UnH39Cfcv8VFBKWR4 zK<_iz#)}-xEipG_L-fsw7=3JxWJb>xw@dDx(gdpTdy98?u1F64-5WHd3%Ohi)wg@I za*;nQ@Y##-=uy%|$sV&sjZ`)+_RPHzff-YVYtzVx{hYBey-J-pZ$P-Tw^BBy2Odr* zp3jg$;`g-ayA}Tjs)#kMhG28$(oV6oy`9b(Ff1jZ8EK|Ms?^c|AT3lGk+fR5{ZM35 zRY{Ya!$!Q;JzKG0bk&P|`6E6WER$0vxJ{wfrS0zF5;uOlOmA%n#jaxOS#n!7JQDZV z0rrfpL)E=Y+rMQ9d_Tu9_);)l2?A0&22taOvZ=nB>G?w4kG}4Lb<$S0kmZejst_}+ z4G+Ec^C>>?9`##`bZ|h%511z-OmV=@i|rQCvguAwEdm%S!#@G2UHa zMDeh3R>8DA40MdrhXEUI=Z{?7ZZ235>Kbd3CaTes!qA9 z)g!BvY$X@!5CoJsu1vc2#gm~?UK(q+DYPdt3Xl{HBz+TH?nTCv~|Ps@!aZg z>uSH>)~_mzN}W#5a!Z6}QN1Q7e06UhliViRYQR4J(v4Qq#CF1m z-&$+Ovq$~CmLH<Q6s3 zPuLN}E3!oxxK#_i;=h2M6ec$rH2s++N$1@a4;z_QvDdaNmH*jd7_h z+!97U{_aUiy%6IPp?)AnaP_*2#lhaAG5yoFDK*XDXF*5)(4F2jC6J_{JGeN0`AUN|M zt>5XjuU=kjw+PJ?{8V!==z`atTfBbdlDq})qh$@7>HgY6#_2-4J0CoGeNevHv|z4;v(S?gq)zmv4D7S)w)tqVHD+=qpe%5$BRr#7I~;Y%b~w7*y|Z!Bxv zLHk*t8Y}N|Axz!ID8DbT@RVgN1DDJo)Z2RvXo{oWAy0{m?A?jl1Ck496!@XM*9s1z(r z$j4Vd^|sYsHv(8X0H+aN1<(De$c7yLWb*8DS37EVm)_$Xs)Ymob##nnQ&2I`{I(3XPOZOSVp5lj@_X|0%?SscUE=8 z6eo;f0}i7L!CcT@u~B)r4wpu6LGvln(sWZ~FrL35T3Y%GO^JFrY57hhAQ)4!HV7Co zSpu#3w=63hwB=6rWpnV4Q;z|ho@7FrOd$efhiT8#0$BUOP$=S(wxNM2`MAzDZ12MsnDe86^kQnlHWF=#5E5dQ#aQ!_4gb zpi^a+%;#GO_@jtKM5*c(5J;I+(x`Xz>oD5W-1qT-bsVEv1p(+wktPh4gb7tvC*Z_W z3RAQ>KukBKzTQW>$LGU~foQqv2-VOFUG(s+N$QLSD~7%5Oo0mg5qHKbRMUG*I@^Xb z3EPxw+ZQM8+wbWBKS0308xd6x^mq-x>-E#uoF*pBqDr7H zZi5IpgU~d6tB@w#&qdAH(j-vB@la^(@J0*0C;CPraV0ByI!;Njsv;&A zC`uhHlKeTV-CU=YfxR#$LHZ-rnE(KE;DzWxz$yCPc#q zZP64BD-vHBHZew8i0t_hHmRh38B;3A!T)Wr(sZQdp-nshtiATKiXhQkH?tps!&t8y zsh!gah-R0BMrqRxsY-#=I9560|E@&>p$Z8xxRThS@B>T{dZbBGhO0iui=O3&$P$Qt z$dV$~ARgE*!-~QefRqtT5zwSUV>nUXi-6K74$hT?z@j09R0#p8)DrNIG%R9Zp{goM z(+DIMEcs40I@(FiCU{zo+&ux4s%B`t7}Uf8T)m^GTVN@!PO$1q2m3D3qiaG->=;?U~y_2S85&_h7s}n zX#aJq){8`ZinU=xEB#vSt&c;5RF4XUN^!MGX=Y4uS}E`y9xj)6+Q;L^f)oamla6@l zy0!5gn?z~#AsbY3j#)$KU*ehKL)+VWt&`LqKF~k?^h0f;bDM`#fvf%g_;}9O{$?9i z$!`1YX>Ul#E+_lUX!t_P75RBCk0G9R0Wka+3y{16ZIwnVDye$yf}AppDjwN`B6+GR z&1PTg$H3bGI8KAK4GXz=p45_HV824aJXB4mXmmcv5hGy7NX&sN0CkO{T1tRo6J8+_ zB$Bgunh}?Bf8klD%0~f|CxKEcGv>?bLV2x%%g&W&H4_(mp`>E68tvL2f^&O>KlJW) zQ);btkx%_?RJw!(tRN2CxIe4WOGMB*D$33@tS_LD($4wsVh z!#{;LNVw?iw73}xjwv?LafE{~kCzw`gkbui-AVw0qi5nzijyq2WkUwNo5+q@aIn)UBL#ZalvK~Wa9~roL0WQT@;+F#j0TYTz!fU^j`*S|5Xp!#0|Gbpj`E% zE#LMY==~4VnKnE-|M9cjfv%B)Yc{yRq(YD4tW6{ClO)~&l{m36wGxBTLlw(+wyRyK{$kA?~O&5;8@kZF!5g*qk{2uO@Q%H2ieogMKHm%D37L9a4jwQHD@K+b%jwL)i6Gyd&0?prb7_|g zg;7-8-{1g*c37|(a#F6dc4&7zr8EF4oD5P}kl?hXMmCxCxs zCS1Lq&4Mvi@w1=So6R&|3NtubeRA=D5!b39D(Sv$yJ3X^t^=Q>@Jw6GIoZ4c*T}?P zX@USXXp=~0>-|DaSAgs6ndA7i+ZbFoPmQ_4tA+^zMQ3q_mv?)^a||jJl>h>?1_UC4 zdDyFuCSK&wmDeXK;J*Dy1@(a8h59=t5u67O=v@FyWCuyey~eNwm%4doxM04VAe%Si zvppSD7+&eG3)pp1gJZlz^|0{?+;cyuz^*}7xoi(^^22E}zit8;?5UoCQPEvu&?PM& zdehAvK!#suJhP_CP#$t&P3S&e6BuGzo@x7l#=t;%LovX)@alNU-o}*sAxHok zO++ljW9dPk7#+*3TC_2sLdeB9zDR*-7~=+2TpHS)Niq)7m^zkD!`>lF?`8>%M5kd} zX^$e6S4vT%63+RS+%$h<6?`ihqyw!kU5AjM!2=iQw>K)B;JT|y(KSVD1AubqWLM!U z?QSRu^%cXbxqHvMtW97N7YD3=;7~AAyuu`=uC`f!J&m9W4*jEPzDN8_KC{OvU;kM{HdgG{!GGILbii-+X9^HtT2sU+UWj<1Na=EbP z;7aPw@isl0QpJS`7=|5Jd=P9-8>?@Ug%z&)YS$nWbQ}%Ab1hi1?GToyrW^hthDi;+ znmc-77gLDr4gd~aHIt^)p>BrdU(j|SC#JBWHUM0Lo3uC0wUO4?23Ri^tYJJD4`46- zxZqv1tpfgk+IvK#n8KipDJ+1~Ip~@sun!6y^W6|@Lof>3aEFl{leSG*c1z?(*ygIx z0Y`1-{MfHRA!MHWET{t4dtT+orb@DNp6R9}$|Rd=X!M_{ZgdO(V$1%hdep?W`j*X)NqH zFzx_$SfWvCo`qUbzZUnT%G#P!0L$K>AtjUzs*1Y_Gp;r1kenwhL&Y| zb0g8>PQn&bHWq`Aod&@&%WJmK6!FI?iPBx7^51hY^)r89WRei`7*A#UOaBk$1`q!Q zc{mLqq?I2ZAd*b{Wd(8*uiNwbEdU|L2m?edX-sl^99n<6QkV@wTK!2eGj#oD^}{(M z6K8Sg_4oTHVZyl28}!W8F=97Gb0x4KE%#FBp7aeKDy2ApL&lSkkIQ}>tN97Dit_nX z!C;u^rus*{N3yG87qFss089AB3?_$y0b9WVX|-GPM;xWXp~n^20iK)|2Y}Em$6lojaYvy|$_hLass< zI^U9We0p~}JlRb^%XE>SLN_jkiLOQ$Ai~t((|sYI+79lIu1mCodKQ|Qi+M@wb;kE8 z3${cgcShKp zX{m?FBqxSW#gma*kaH{=3C1sTB`^%YfE_T3K&kW(JrGx{Vv(9Au^rs5q_MWrK(!F& zbDJmOwT7jzfMJpge} zWSFakOaks`H!TENMTWLlB@bGA=( z$|ROg2KZ8+_~lQxUjerJI8O507i9<+EMJr$F}d?{I~FXjnR1CumxAdVD4~X}*ShXt z+b%?f1V8>Z2cgHaTMMen*n-?f$-EqkHc#%$Y#083VgUVmL%74(vF;|HncA?mnZU8I zXVRg9@!D(M<5VbY8hEPAYOxesM?_b&Fl;oNPZBcZd4FG6UKztAbPV&Ii1(Iu>_}!# z#KBT-I*bM7siJSqE%)z@M11m=7ckhv9$UG!{^k+LSgm|Hg|(KunyOE{hH?L9#XGo% z2MhXe2F-C*W$@24Gp0cSpuiNl_BXGGT0{Dvz7ccM(>3NQiVkuS-b&1S?t1caIeN)r zjAxhE8f5WsHQir|g{>|L9q;DN75j7I@0`FDgI^lR72RacLb*}Dg>@ExBo~WK^5-(h zZ~m@2q6{2{{YnNpQGH#l;@ZubYb$TUanfiKL_>v>0C0^thoCr;Xx@%oxTHGUTrt8K zV+GH&oiTJ(oFn`b8h)s2tfpeB#QCqjieQl;!J;7v_ z+ts@0x*SaA7&i(dnO`_6*3U_$VtYW?6K+#Gx`qQ zY-Ojv=xF?k?)Tn#YuXRMD+GF??SPQY>4&H)3s(YOZ1U6++oT<2vZFflCE6mre#ce2 z1U^hr3{E9{GJeG5#jcYSq@ofP*9>q}GXM5}RyzUAUDY7JTBhw64eZNF@`7IV9 zqu~1@8q`q7(%RHQ1*jeZ zXjF3Z<~6Ht%Ms_tnooiZdtO<#-Ob_^0&h5xjmpMfs9q)KNbV1UYVeD*1Ymq);n|vk z&#p&?tLuyNSR9YvoHG;f39%woB6U2;njvw>2O0->od6p9VOZxRhVz`Pi&tldl;^MT z2!SQ)h!UglU`)2f#Ryzs?tzAow1(2!%!UktR{v9Ue?;BiH>GA1IKu zH5ZwnT9w4Ec0){klO8Q8X{ZK5xQR!LEDyOWy_a##(+q!a2%Zn39VfO{+~J)In1@8Dvd9)9VCb+t;9TBtm%IldGO zWe+#pmHZ@y;a{~QTxD9^&!|?E|3S_Y#nW}dY?n|)B_1|t;1lP5?yvASx9s?PBMjQs zWrzWu_ga7#v4JJyg=fq6a}UJTZ+!_?SwG@W$xA)atmE=*@?s+phXNpN=wuWpPlgpLQYs*u(f<8@FAJyxAaucj|THc_C1)Cjz&rkk!%{O zwWE7QMncKNXNBRi6zHfvv6_{y?BFrYUi6zPq?ZCJ(W*%x8uOJ_#{VE@MvliV)Sj*% z-h~WtH$fb~?H}avbOQqVw1SCZ~ z-Y+`iE&E9S7+(OnB6p(fxZT|DyPI5GOoAwgCs+nYr4a!{*K(4r_eADi4z1HrDIbS5 z+_nf$xgi{CTgvi$tscltHbJ?grUP@q7)cSP$aP2<4p~MZ)RsY|t74}`)dI*H<{JSs zC|=>fs6}ZvwabB}Ael#CV(x`-sqCy3^zLZHL(WrogGvN7uw4v; ztY03b>0rAgHBK=^mUm%bz_L}}02oh4VG?!+T@ze|PkfY%?dU#LGj;Q$a#gaYV^Hf( zpLhq3Mi2cN5A(em-Fhj~e$F_UXS5zE8cstA9MV3A`SDmQSWV-UQ$LFrn&{T2 z*>`F8M+-eT$|NPx=!FrOXresz`Je;Gzvi5r*|4P^~lx4jq?D)#(>Z{%jG{VMf|g>Z5254R_|A;7nZ*@%II%HBynB89)=o zf$3p46mf&VwY;Z|Y=x|N8NVl~IEG|Wx6CI(e;|DeQRv(u> zo<)Ns8VynJw+$PuawH`Ib@$}5tM18wV16UIC*UfwZk~nhcuD3C{Hbu=j3DwzL=Flt zip>TRwYErJ8@Zfn$VevpYZK+a>_Y=t6$ygK%!5~u`(;1_eLmPrTeG|y!V^mA!mpCM zN83B`0{kZWz}8X2rs%4*wo)OyY~L{`!^!^44u)KZj~uH0Gia8p_o-x;XQ6iX2pTID zk-i#mHv|Cr7lE1*GTMxs37K{M6}05(v*z=Dz-5LW;Cifu9-a7{E zi{Vf`{gh0Mm>hid$Kc^RTmDPc0jd(|kE2y_<{ysP>MHE1F-a)rFBk#~A{`m3Zl{o| zFyNmS?c^F`&gZ-8W{9Ny(!?>eC+YM=;3oulH;!xeO>kx$-xf|#UP|&fl~M|R>E=+0 z65-b{5VB5OwgAhwk$U*U{R9)jXdPqes~60=A1As7I*)qvX5SM{6iX-WWq=KnCZdKt zG0(IFwFG$+_r$vZV$6cotJHaPGRr(;9?1kOpDj7?=<|5j1bYjagBXJes=GJwmAM3V4j?!{&yzI3_b(rBQ#>SQ&?yfyV7};~m3d5xLY}-UR=1)IU z=;oSVzT}lTg!$s1kK;TXe4 z!i-@KT%|1V$I`d%pmeWMQpG~*$HEDSxa=^yR1|~{gDSb9Jzp#8mO%2{oIWH}C{hAS zcaGZ!2Rn-}xpgN&nig{S?#B-Ca~>}E*+t$mH#zeLIO0r$OWrVv>ZTAfz}YG5I^z);eO#2Nc4S`n{nqEgm~nGi z`@&SiHe|C|_w6&mGyUw$`jzvdV$Yl>J8qt6r$O>>4R#Ce9?ff(bgp0NG*C?_{uQSR(RQ>?Dn=)GQms znWxarYw6kGj*Ms8|9Sef;tUEVeBXn6Any%80C~oqf;_We>RD}VL8@Qkf2FzWL1q-q znL%B{HXVzSZP^mBnVvw)De^~<$0gEky3qJi#aft)>YOiFnw?(VNc_pixS197gzXLp zm!_KXi&?73x4MF%&#ySz^lr<);v}S}bb(5~%Vp#wC-3F&h|64oW{mSl4BjT1615Ij zX@p$fG!qR!D4Oh<_=u}+zx*Wu;t%if4Q66DTo8ZQflO~2n(2tfW zS5E=gDi*6)6DZw9E6rr!fd>U+Qk+%jEZ|*=?UTx7$AAOSZ9OF(#{HWq^R+om0nfHe zt?lhu@RWd)4g0Yy4FvJ%P66LX;i-NK-!~6#+5_Fhb`WY^kkM8FO#8-;ldDu@g3nB_ z>yJ7W*DXHN8A5(ZTiyc?VTvJke9jLk0;s5+CcyKnN(LIjvsj|NeItu8GNaSPQ8^Fu zEe5~^{qY96pwgU1GeJ^@Vw0jIOzI(iBa6RLK8Ae|yf^b|3_j7!C1Ti7Exo@jo?ZdK zEs7Ml(xpFCEZQH^G~U)HCrIIj1=S%?c8TH=#p!%ejRaO2>|Y&3vUo1RfXz4-5+0a1&%P%4uN$qv!E)G}L7k3A8H)Mqdhjz8E2uVO zKXvPVL@d)r=CXXfC;CP*R)uR%J;en)v`wN?<$`Hx7DL45^;!G$N39wI^vc~V7C)%n zwB0nXv!US3gF!>94*`(IL$4gg) zH@CSjz17<}l-?YtdDJ%%%}8`?tD;^Cl^fGJR0M)4rwq4jHpK1Q@;7D-$Z(11h}T%0 zk8IFpbDY9?NHN(yYtt3D<-D0AEXkgpqut#Myvy@kH$<&K zVMm}8&y|c?it30i%gbM*5r{$&xosE>=V0^NJjC5Z#GuxNw7P8j6=tHE36+ZMsrAAP zA_l~eaJHmlCyeBkDz1Nc;fz&V6G z9f~6y4jLA$YS7i7K-`YE#*t<#b;gODlZbFJOO=Ic-&q~H7%yNeul8cn>U4Cg`Z0Iggu}f?M+OS+M*`eNBgkcbq=Q) zhU0?hfLtGRc7o}|AntMcBf_x4FIpjz(h9EU2XHttXsbBqE7TGt~5Nfz67i2 zn+WUoF7u-=MW+BZ=x7A5Scav7Lk%aLD3Hs(2o|K}z;aV;QK88WK*?VDG6DsEB9{4# z2ja*&--_#yTX}1ca>BhDcc<0J2nu!iCn!LfiglxrDN_8j%aSgLT9-QV5d5;u6%$~L&tm+#PC|jQr z@Sqwqk_978D`vKB3(+&WO2`_YB{(yQIWg1dh=*(>|6n)wc@7Fo;4VsAn9dKRii=EO zNDa8^TyoaDV=hz&EUDh0Kwt;ERSYKD(7VL;-Hrefmy^*ltQEnII%TUos_&NUWe_Cz zbydj4={p5ixcPO=Oh{$($ij zRcP<3cTG{i5xFnP4zbOVZ!p8XO) zprS`qY87nOR^~twt?xaNKpxwznF3l|x_VHM>_no%<#O&#vkWfGMABc|Q?!4|^h68M zPV<66K((|78MT#*QvXlD>ljN9UUXy~o?5aPoWH*XuOKCxQX2;_9+{#I4uD66n=Jy@ zXcm58O*DgG@pR*88pEK`_7+tNTZMNn(|{5VW3y|RP_kTTl|XdGoYvL0K{08<5ahJ$ zID!%zsDPq736`QUL~~^b7R@>OlBa!pbPW{fKritY3(yc1(HV}$f{E3j zo5ZutxXaqz<5Q}$=fmE3`f{C~tftI08kYB1=n{de$B^^OZsg&ac8GPKDlL)LaJ!2H zBn34R)1+;jT^=EBLNai{AG!j3N_-T#nXJU}3mXUp=g3?=lg%g-hBG&xTRcsiy%`JZ zuCQyDdve^tOTee+$M5{;l#lP!9cp_$%F!;%_An(qjPBsYnX z5TtFyc=e~s{$)7Ib=8;Q7g`R^CnXl(UXRIjsc|$l#`L7$RVS$^iz#RV|FUkCXsyVV zxfHcyP)L``j1ZpEvO#W#W%&iZjjW`bi*TJ`zsH;n>HQ!425kUvEwTV?i0q<(0iLIs zn^c|y6%(>x_DKIWP$NQgvqh08={d!7_%VktofP;WPU34P*5U+v26oebbgQK0Ir-UY z)9b4+vfMju2pYhaTqrmIyT9*fn>jmc4rbtJ2rFT1Mv@ySZ8Q@e=Ba4yI~t}7P93#B^UG#=1;UIPsaHtaI zvqXVO2C?oJFp3MTEs|zK;8+A5z-_kO9zPYzEKW!_H~$%xmud)WP%}Zo&+`tKX5*yJ zGo(L)1;ei483>&y8Z|R{QwWUkC5(V7nW*}PYDY#x8ViM_^*?jTc3C+w33D~Tw5gmA zST`6@%#;*2!h3Eqsyz;Q$wJWv3FFQ@R*6bfyyQ}Ri#FKL$y5~Hold%Og7uCWI}qI_ zcw)--LgHW}`bezlcxMi(8bg7_k*34|l{5>0+>!lY8dXVfZeGI>r8yZz#yYhte%G!W zZLQHwn1g5AMla!7%L5R!%`;5J-j7G1dlRE@Dn@ehS%RYxOaKT3eH^h1|H%YFhpgOA zYTIW*fs^-065r1<1D5!XTM{3xCBWx@+cBll*K(E_X7B7V+x`^mo@E7=ywa3ZDx$#5 z{0q`J#(wWqTrv*KzIpMO;Sr75MR;iIiL+TyPano&V(jTInF~3Fhv5v*W<1h@8!{B; zay9>{bOqp*ENB9igc*~=Y*}8r!}yt9Bg+YxErlPP6AR~f1-lfd6uTMwF0w$lE@JMl%R@{()Gs8hk4oIKa$2nQs8usVhWIEKm{x823<<)-BrwcjhjZ}syEiA{ zQkQhQYdypyt9){P;6y$~`>;o#e)+SbKzwSqU+MeoE8@LIH5U_^SoDw5sytCiWs__a zyL$yxqZGzR)ACp>Gp$-CknAjB_C+{l_$Y*unVs-;t3lB;fqCW@7PZ$I5n;cadvmYO z&L7y9&+XlB9XP4Njtn6I6%teyD1Ym6K3a5d$o?)mzygLTQ*z9K$-w$n{ zYp_0Kp&sg*X^v>PGDi$^>9{*lsi?>g68$u1ymS>#E4B>tDGm2my53W5s2cOg$N!Cj zB*2`k{98PPRVm$UIN_y`QZxPoiJ=*t7H+^}ti_PSw_|V(Oz*3os4F`A&XLl>>mLUe z*K><6N0Sw&UH>FjOsYwDH{pGmD`tHz@NF^kYMW!$Qz^@SxP1?rG=wKvqa06RnKi+2 zyF^2(&_&`$L{Jx;0W~m@av@?qhOK?UF9Ru<8wukbDm69@_UJR1(npqpL4Ai+1i zS-i~@?f*y?dFYD8J)L+*#a+KcvWDD{b(54`ywyy96OB`2j7P9o^^X)jOjn$nrPfGQ zMSk;OUm-Hz^x(JA_ozVC_pF!c%U_q8#_tN0%Hh_gBQs|{3c8RBOZKkxaqM49_wUx} z$zztfkOw47G39BNB~(b4zx1zmUvrG<0l+CIl-CvG-KRXyrpb4L{|B;CvvX4oJ&9l7 z#!*tLu)dcgZLPtRH^+W8yx6=OiC*lka-A3VE*^UGp?|i0@1sb-*r(6HXoidh4_=JM zX@|TF3}6z!_XVQNkGA+`;)^SW#&YiT)#9+r@`u^arok~ zVDqHIbtG8ds{-zdA;bZSHo;1)l&K~|L|c}fr|kfTHUaCA&mzY~gC$||#g%s|C>3qug9MgG-!m3}2p++lq;PG} zK=d=8KF`qjb1ci9aC`aOb?6WC2=w3K5$GTPm%(7j7Wl!GDOEH`DpO3ez~nCnh$hQB z<%9M(wv8>`26SU3w&MFR%?f38@JTH2_1Xq9M}VopvF&X-{Z0iTIrh)co;%*DR2%|t zOH)}GlgL?R1~gpPG}-1E|7F;_xIixH{R->L$(6H_P2}u=WH^*lUS`3^NYyVqSGim@ zrWN$@V}q6@D!sXoM!K$-%LEgM2_nE4ms~oS@Ns!+&iGUTu?_j}fKJqlpB*o9!dYRf z;#?OMgSseuQeXL|OhaNzjvFHw#VWu*2G$f!6hVNKSr>U-+G8KJO+d|^RBw(=MHbfQKgPh`Dd1PAk8sCE20wsFvkN}q`>3?2D(sfugl)D~fKx0d7+h_9cU;K{ zR`X{x{7&3xRs4j~Oi8dDL`LjH^aKEisG8cl2Ug>g_{V;L;iBnXkhru)Mr%QlXFA;S zrfCFT5gq@Pe1`B~!4Z)I0>e3xA<&i$ly&T35O@|Q;XoGm0gS}0jHal_BH%zPAZov| z4k^J+!Yv48c?w5$60-?d-Kk)v?PtY>Z`^Fhzmt9&E^4I|#HYbFMG(J5$gPE)FRsAPBOY9~G0m3A3<7kJPc;B`p=7PGZv8-sSbW#|T8xA;TtB$TxhL z&+Vat1+v)y7pus01_lFyBgBB}`h9$7j5RZyrtP0(a*o*un!UnGCBP9q5|ea@;Unq_}PXN30e5;l>7@t{u>p%RS@9=#Mn15&VPU6}8$ZAVW)@roZ+st-nF{!?%Z?@jyoxRvLAzc3 zO2*I~Qul(Y_VcE?iPrK?gm{3;zCvQ0DpBx~apN*d9sQc3!eL?ls? zrzBaHydkyU-!uGB5CkONL7YZp_U{owzeju*{E!c+Pk(`iK9``M0P2TGh`E;waNq$U z4BWuOg+4&&wE%<|pzo`k-^RfDb3U}~0TLQqe}!pQtNzji$p&t@e|FEHe-$GI4)D6p zuFG=eS2xG4#j5it9b}v_T$67?zh+|mH_CX~8T`C96{w`{p*Xh)=#%zX339ddNiZpa zKTyAv5f&cTaT$a;%ZCz>$&V8LM*6GDu}1>?yimTaOk}?pG)bK{BGe|{^ZPi}`arf{ zD6t!qOeIxmMs}qSQhh^4;Z<-ZJ6!ks;ewD4&nI?WUU7l<+u0@6Z@PlH0lDhSl{YhE z2v_9}=p4zhDgDrb3`eN1mYsbE4W1*wv!^*s^hj5+0P+G?NV$w!59QP~szbV@CfYO>OE zoXE(Lo`lF-=ez~g%r_U14opUV*|8{AlK?d8UZDsqJxR?QJVjNZdDudtdum@*RHHI? z+;@WPo@6QgNg(wxr8%Ol@#R(*lpT4wTkOz#Dk{|-?G?(V3j_&G*BcECQ;X|eFzl6R zH{c*&a~1%g!b;vEjZJH_up(5e{Xdkf#gfXg6Wp|{@ypEwDrZ-m~1ai)D*6|*(tOeZz**GJzA z`VYVJ%UD7K3#0!{or=9)a=jI3{9e7s-aQg}bf75#7$P8m%|qJCC)-5$Z2%v6|1cf~ z@aUOC5TlPi_y87{BN#FA0ccp0v6B=&@ew$F#-ag=tA70AFeqee8WslWcYcRN2l2)L z?9e>BC7L8%sZNDa#;;z|jFa*eNuwv^MOmW?iE(GTkCE2ydmgd>+R3O?V^lPQxoh+l z%(c~)dqmM;ci*s^v64G7xyeG~x1x8*CpI9&_D8~>k}$+&Q|W$q8~snmfDnFZgt+}S zfxj$1j&^0PhzD)c=%`QVtVpHz2j~q{msyABLsGDLL)rxtsM{4onj>aTU1~p4@iVB# zQDK00&caA>i`CJS61ko>Jn91K9h$Id%Mq82_wGl`Rw)Ao!Cax(+Bpd4hG1n^uo zGhqMy|I4=jx{3$6aIToKfF1r^lJ9T}_N?IXl!2cm2aolQq+9R?S(YdO4i5}|0V8jf z3!V)Dlq(U~@$tE$H3WMdommfGEVNMtI&-RpRu!%lV^k@;z=T8x3P*vC#5+d;Tbo(( zl8rKYVPoP^^7;;s0<_q$!wn1=A1pZZ_9(JZ-Cfd-a>&FhtiKsNObrXko&q8`_3uJ= zV2jXZ#K#cT&MD0P9T({FSz40-kh+W%(xr|>mx?eQ@hKWG&#=zaxgE8f)%A{x zhCfF5m(=zyp;^|ehX}ze=TkZ&)$Oy8ZTP@ZE3no45hR809dS6VMT1D3$1( z@rz@`DtPzKg=751__S=SInpC)1gXHf;GeB-VLjb8>jScMrg$#pQ-6zx5V7FuhEn|0 z6H1oH{_IxAhM7(Smb$knszb;;%4=8&CYG7xO4RTNkuNLFta8OD`=eGX2^tj1IjQuH zS;Wth0#}QpT93b^H*f-7%ObmQC+N%q=me5!m#bzAddKDZj1 z#8!#Gliezy?EnNw+KhVv!77W5T%tQ>%c#3Q#oG3YduGfJHiv9Iwc_T3yr&8A zv{$dD%Z4FHvnu-@tRe`K!|QDMV$C5^k%l4=-QuMuJBe<-Fnoz%uP`xYn3jK_<6st0 zzJN}!h7nLxFEI?a!K1C0)A2E_onQLpIj6%JrxPZ~M>4K}qE$;e@A`TB>g;-tC_WYB z9rmcL>Q{mq*SC!qMuwT?Y~OTUxnAiX8DZ3yI)k*g>^)`QH02F)lu6i5@4OSomb$AC z@ynrq`D)}m7KR+N&W-LgS4AebCoO=VeOVMK4a3sR2A9igo8O$R)AZe&YWnm?ciynz z4}Vj-9Zi_(U5n#E6Ab-iu-b6TaXc`6VqAb$VMC0M7yt(qDqa^SJZD2;Pi6>2mK68_ zhc8Nc?|WL*jK*z{5FTtXQ>T%KE6c907=6XdSG^y@DE;wS9+Mp3Bm8}e^RGOG_PkrN z9eEMU^E?9h{`ZwLdf5$6PEqbh5(_&6Rv;A#<6)F%q>$Fy@gY|J{S6W-e64z^GZh^f zPKZa(wmC%s0wSAV>#p^ZY&uCMDFeciQMq810-0SfTM!+#%_>Iz_$y;$47-D^)}$nz zxE&A6^V6cN)60}#w3`2tA&F0Ed6~n?nF=C!s?6w1+eQ|Te#wiZQp@E2kS2nVcLx7C zD+j)tcKMR);_tdqSW60qBxSanOaRJsX=0^~F6}QSDIEx#H77*=Vj}`H0BTV@e5xld zVLq1z)+*2OPCQEwE+?zW%4?!DbFx)hFl>27+5ZhP9%=QUe-Z?J4z7;KO3rPTogQ2Y zAXkz7)OihwZrmif0jstn%Y7kqbI)~Bi67<7VAMq2#M%#UVU1WQJ5{Uw{wrT zLDDC22-4hzEqx>F^JA)E+3v`h{xEsxbVx+4XuRg7-!u8kYn&1TYEXnBWR3>EMs1LF z^ss^J$}dp(ZUqB2ucI$}kxhk|=ClHpIo64`+s8$MLKeYVdnT;){obO>D9VJ|6DcKVF6lm}Yf+2~3iChF*&IXH=p0}o35j>|7^08S&`jB$ ztKeHyr8M{9B0Oa^Q(K`@)-cVox-jJGTb`;E&$V9k~@=msg@PP=$K;?H4Gc z_tSfaP>s$I;oupFjUntDHo&>Sp7Mog2qLHQaZ2QX&cQZMPEtKw27}$ulpN4n?6_U> z{?@*VZZKWD!M4_Z+p1_LL1?WF;SYf{EK`Mn_Y;i!`13TQ!`n>|hNJhgH>zMGxQ3NlEDgP(^7YY34LMa&32?YYtsC5fwmI(KnI zMsbhV$kdNf!m7PFD}zG+8UB!yw*lHlC>Sf4-HCXI*V14V@+h`zWSFegK3y=qMZT)% z<-;_i%xaYW3QzUSKAN<_-z(hQV3Oc17+D;;6!ef#W=*A8Pa85`(5{Cz-U|X`?uKP z>diWHH{RO+&tAU}WDaz#LC=kab<%UByKlmFei#{&SDS0}@V3Y_x#^upKa7)#t1kOT z_H?$x&%RFW4#A?8N&F`t`at_CJ+)2_p^~oO>b;>wJQc99kS{L!XGc_z@g3#bc{qaF zg4K^A1$087)rvVYQ{LSoSeag1i`%3L>C<#{BIrbLuFAz$$m`!522Ku z#@gpxh2J!X1_@o%vBf`6Nr&A)Rrf2QI(XRFyWg0~PJ(NKhNQ5Q;9%#l#Airr6X@nm z%eQmLI-R9|ibE4PNX}sxX9zd>J4$#*W!71~wTNULl@?k7b2r8&>l{{A#Jik{!`u1N z+`2SgCWD2hAdEVIApFBEwFuQ9P7v{jqRiWZM1mGMe)b;EcQ@O@RKeNo_8F1(oVE6` zb<1L-Sj_KUO*WzJ+_B(#4Pp8f_Qm6dZx0yTo~5E0h%$rnLKBsCBXqdOA?A_Zu(^X- z-fquUT}gmid=8sRK2KnolU2%5M=z*vI}R>ezGRS7reWrDChl!QPZOu1!>^sT>iBQ{ zq0!qc;v*F~)#+9L=}TvP(wBIu&Ne#SyN5xA%f9Gcw+w@F&-!CzJ|w#lH@$S4_WJ8W zI|8Q|Kzw@lu#IySqrRqrCXJ4TTR4C$Vatuv^rlc`7i+^9%=3=g$#M^j=CRC&OQEZM zy7xw+W|0CfmLk^#w)bcqQGKBhXi&K3Zq9L$p+XJw-`0B9dIV8*b^D`VR_q~W0Gn>sx{txej! zzz(wdus0I-eR&j%90 zpPv%||F4IT8~^=djp+?EbD{G@ynkE+CzP%Idlf5}gJ}%i2CB#AVEC|aQ==O>t0tQ} zwcQFFK!NCDyzyy~_FmxU&e|*|Me>p^&wBm~42k}`jsNM<|Fubpq0_&7xL`>Kal$4e6EL$vZQ2Z6dDfskXVP;*5CD>Wu*KRW}c?zh1h7>f3Rx$5ghEz02SxI6e`cjWA5E>|7JBuSdr-lj4&e+Ng? ze81e28cz~{Pdbo7bm&EM;$;YlH@Z*>l3eMgS^DfrkomJ+Iw`R3yz)xnwRbV9xBsc$PcAO2Jaopc%7 zFvI1^^DO~|pM7PnRNniOX5jwkRr}qWeQhBf^URo&zm%G1=QBi^%ad_rZ*PSL5T}oX z=wv7?|hB1(fun zN3M^8GGy?#Rp#Um-FjN!p*eQIPh>z|O;(UZ3b$z%@)E~#cg}zn?6uHO(c()v+m#PX z)zT+9#n$}dZ!E6jfl;h!GRd43t~+Cv9G9Psl%GzZBU5s#J~~QOIx&>KBf!q|L@Jm> zV|js@TM?kwP~l;)tOL0VM`dgTNRh&IxPEvv>9&o2-z7-N`Gc1;gW)@dg1&XF-JOTn zU9y*!mzUF;Z)440{;9IyD2Fl2L=d4r8!I@3B~Ub|GQ)s=<3L#u0LAJDp$&?kJ5W3v zy_$@NVFZR1?{Jut{zjTmC;imhq$s6~O4ah6LfN1Z7=}%;yLL_f($Ik-PFKsVv@D0y zk93@G<-0q77L%JP;KOTU*Kzj4>u5az;_wPhkxbk+!1I>~Ay$oSo7ABz^j%?vN503P zpq($%BAScZ8Z{d+ot!kz^xP+^r$Z>6fXn=IsR+aKIO9_CA!us(jT(k^s&%O;#+KV? zZiKocIE-9{f{#e?Ecct%1%(74zY(}SR7RMOlsGthMb8QkO)YmzZu+WfnA3=V2LX`N7*@FsR9=Atq;Xo;TGAZY!z4i^ zF;NzzdYOp#DcOvaUV3{BiQ@Zg1mSOSPaAystyF%C;>FekHr&-Y$gIe)JdeDS#(!lX zmt(o;&=3)*j0`)~n2%vACfos2-CFw6)&oL;6dIbq%8S~#HX>LnD)$BeGeFG0MfqzQW6oZPuVJcvc+HgR z_oxo#TBp0o{8>LwwATz>Dfy8%Hp!3w>FAL zw1*|8)+XtuGiVccXKABV{b1C93*2`8!0djn-s@z&ODOEcIn0)NT9b^xZmyr;Rbt=Vg={$ zl#E8hR;v2;px$g!*FXMx>PQThv zoz7yd=@$%@JXqTyjwL6<2N^X2f)K0PpM~hU^DU5vV>I_4gky^%EE(Qusv}?3nI&Fo zrknFQs7Si(G-9S3_vB8JQF-#&kqI<`e0lI6oHeN{VXogDR@ zk^^;WenNG6ksAVs2SazsVMox|FTo81eCV3htMSuTpM+=BKUc{?Gc8KxOQL6$x=04c ztS9Nr4a|*XC=-^^Ro)54^E6q~I;Nno-jk&$qU2ksBe^`O#H`CKC5?)mP8m z(*Mqcp@T!UY88PL;-!V|;5mza=TT)>W_>~;ri$L*l(x^6%$3l>a$*$VgH899rIZ;O zxiV|oVQ0Gg&eA!21#E+rDgtCCZ|&3qdBBJ9J~E~Q(GCM3U>U36{F!!ny#_rD@NcZf zSD{oGP**Vd8b7iuud(+sChB?ec}i~k{9rtdqfuoZiQtk^#agC8+o)+ImRWt;YbBA6 zdhMDOo*otnr)R7^p3bVyL*aBey3HnopI~i$ISLO_%y7X&@HxL&8mp}w?91-NBR8c+Kp^TtI0kOgscAkcl=KS(b2EgMn=N8Y7Y;2v35s)rQL7&zW|?J%&BWRu|Ic36H%=t z#ah4%H4bC9*dFjV4fy6Qw>PKSHlBTRY5i9>eW!fiAukrJ+HSNGoS{F{M`+Xjqw@L8 zijFJsGc|hnn&yE?1fvZVH}08(TUD4?!--!jWyzlYxw$duMN7`3{Wmp%uj9uwM52HH z@oTB2s=vYU$K%}~3N|+$c^8BQ;};=+xSt3{I7p#*gah9ed=d%w){sFhPglr&HNe{s zek^l=zc2M*pLF{p{kaiV4-;Tw2QUy!Hbi5D1-E~X$o3RB76LqD7$)~;oH_{?%I&y& z_pZ-vcOjA;e;z|7=TO7;KmX>_Z)5T_uG;~^2F!*4ep$q%emW{&9jE$H1YaX%KBPim zz#Ja=W`vM^!y{w>Z2u3Vs@b+4%8@7_)+L;LwbvU_vh4SGl)?sY0hkh3eHfEixZ}Ks za6hhD0$2zLs3g%aq>7kEI>8ovxGr}L3_2kfEFGwU4%G>~`$QW7cnTxvdiek?N8*H! zU@5W*ss=SN99Iwy8n$g&z+$ONpgW^!HDbaML>j8uw(aO9jZX2qW7E<>*)UB?IKaXW z5*;cg!0yHfHKLM0)o#HjRKj;Qf+EFmU|>aUz1EGBhL0tJU{!-g`nbEJf$tX*ANnhx z3Q?y!pw(IOO=S_A;CDKGBUJ#jWF$KXUwVD_$S}cESKGnsA;nHx!c_nRJxuQA4fQ2y znz8X|vI0@mieXV?w>1EJPJPnwlrE*mLPWILDej83PP8ki%x z+?A1zijzn=F!&f@Z0TX%G;ePnx{y9r=^vAYuIuYs{MdyIj9_E5{^r|iRJe2kkT<*- z%J==1&27We~+QN)Z1w{x=EB zG+IsTdaDJkxJuF=_*|O(&g;QU#(hqH10HW$fLmq>?u3;wB6Ahj*3QZ}pJ$v*Zp#V| zO0$Ym-biK8NYh~x-4xCvCoG){4J;sybx}W|aU#)CixsP3?a?Yyuz*Kg0!5iEf zf0ORYCZJe!?acG%i&bpLRRRxd_Byb?xpV;4id^Ld^NNj$(i%?jRtQl)f*=BK^KX(m z)?vJGgG}QrztI%RRZA|=5q6Yq9B2T0Ct*%^B{iz0n^?f3YklM%&M6vG-LfutT|0fT zf@4#IfHa z9SSa+x^ju4Ftp4S{vVg!To7D$qOh2OyD{P%0VUGC-r7x0L7+LOM@w&QWEdqvIy($@SrEhh1&%-n)}#hGfjBWilB#?#?b@#rc=Q?D5S(?2 zZcn~tKZ)(2WIz)h-U`dnfTPu>9^2R#lNSuEDF|C?i$hQ5nl!=#&H;z<^|b!On2iJg zl6>30+HcS6K^lJQhTPp?u2Qo}(lltLbVwmkWwd}JB1{8&;X%Aaw076%S7XqkPSaJy z(Ys>R&Iu2eAM+*6h+Y3@OsqRuGn$U&c z1@gna?*8>nq0#c7^JQo#+g4)U;+o+>?G{OMI_3)zwyhWxEF$rlsyV=F+B-oiylhY7 zQ%2`OoR~#X^J&f$9{#|mN}!AK4C`&`2g@ty`*F}%G>p;eyDy{b7NaT&t40$&sLNT{ zo4J}hcMSr&XnB%-kb8IP)knLG+}NkKYFGJ0AWa2{&W(PPy_S!`X=0ez7b6@>6S<-T z@?k7*H59(W1D@DpJzD_w4wwE#A-e;YnJ?U)*{gq6WYXUXhHtIHYSvc*k1X3s8ubNF zJ#D6q?8Sxos$}K!(PJf)CX}{z_Jx&&XF1boxLv(-Bms~JCRVbP562ZMoA>;MwL8SR z?a5AE2D3Z^a2!aS_Yo6*Veno{O_}+^6tL9eZLfXj+|=Q#dQxzvZ{}oXOyB|sg*7vJ zxozjNABl^}PAm+$nnmD4$>>BB&uou-)>0&wvaZfoQ3P1lXJ$V3!Nfuh?Q%Jw(I?#H)cD{wRLQCuU@34F5=@pSv)s zAaoE$WQiIkS~pN=2|QTItgi&CQWL-xzC=-*h7VH2GX-yKaJ4wzk!sEw`)F%k=b{TH z*yal#NE5_x#NuR^drnPYdYW~1^h&b9uK)oc&6pc%CEborPxZuFDygFL9Wz@7B=MY2 zH@Aq|rff*-MNzsZD;b|!KiHt(m^3ulNpV$RoPL|}cORU#*kfAh(@@E3Z`E`1ZpsP% z6a{VXX<&j^{88xiO~LDKlJtlAXZ7{kh5uoVRnN2-kd1HpvL8h)d%q;2@h#(yDEEdp z1atfM-{n;GRuxq1DPGK_#_8oKwPnftR_@Q@Mnacdnj2a9T}42vK@f{V#@XC&Bb=p) zDC;evzYpILl}^v()G5hPTM~5ghBhg zZiZ^s#8szfesM744;f(6=8_L8al$PlJYX7bAqu=A8E(oN0v9Btgg<2{_zVVxhz)>Fa~dS1lxp7Yc=FwvwS01nf_lS5{$htZz+ zqaT^?=&y(MdjStIGRPMMpb%O?DCnQFUv@S1pN0hj$s+}Vr#&0bdkVobRIL<^MCUa^>EG3fA_{1L}LEDW39o~{v(e{3y@F+UuQ*T*vQ49ZyuYXq@t{AqN2v{(oI|zu zw{g(&@G?ZlY=x*&MP92klQ!U;wASZ#HE0OX+wXLoFyVS}k0Y(8pI;LneO z*W_8Fozvk!XiOV|QI13yk;q>1W4Dh3afT!K;!D?*2H}fQ>2586FOsR&nBIEF^fm zRJn7X+48RQYK7Rh>1z*kQeu!&7z@--f(>Nq>pb$M-j2)@U1J++Ok(uweEe$V?;7xc zzJ0FsjOx~NJ^?sN*RqPrjy0I{J-f{wfXT+G* z+^J>>{X9o1eR#QM!VL&k$vUu*aSS&qHjNQl&ZKo9Z*?^!?r+I9$)XwYr z{?5uV)(7m1cu(mu^~s804G-IhDEW@)$107L3Z@+C2Qr>au6b=9&IFG95|(NrYo(E; z7B8f^(*!8ch3_)4=1(_?_ls;K2Ks8GuZj96NrB67mZdxb(W4t_UVvVYa%l0&IhrM0 zuUQVU;$_y?j$?;e4*T!5HtuD8D=s#L+GGlX*jn{6n)SKsuF}v2i!nY`r(hbORGmvWAyCSR5=%B_`?X=$#G^GY5S1RwI_7NSB}1N_QxTlgD25F@|n9kYPE zx(iuZRkEW=laCKbOl2PBRO6vFs~|W!!Z0WJf-#?Sz0(*f6dXGQ85m7FppW^$v8)}yNifU;Ag`6~@L{X<| zq2PfNSCUO~%DfNY5U9tCWLPIfY`IEzAphNLpL#098{vS__teh`44ba`xrIXvc^^j# zuwI5#xCXpFR)-~bWT&;sCw^P~P5MXx;fNpGwYJ zyi3}g^%-PnF*vSH10N<2RD<7&O!Cja8<@IC;fD^H=A@JywmOo{Q7y`m^qQ}D*A5>4 z{(cb75jaFDq&u7_vvK?4A-_}+#U_8c1|gAcK@=4&nMx)=qKzlMI?hjHuaQ0uTmxLTH>5ea-L~R4 z(w3_(+u|vJKk&SKk+AXQZ&W>UsiI&$2&z{3(X(iKw<_B;b?*xt<_3eFJ%YhSR+LuaE{uV#5c>_#y5h ziL0r$Qt|cU>m^3Z>mr9*d!8|JSSERxy-5hD4;RA0;33(I=Yw3hrQXEa^B33RMU(-p zz2X*dDnV}7xQbCX`z209$NP?$SA>sJ+-|i? z%b=vS$M!a^fR-X<5o_NMqL7PVmy#OuH_<8tuj~LoAs86qn&L!@J1>p}Y~I(jvrjFI z+np5S8V5M6=AE*x(iVL_u+MMD~W&E*g{|y za{INB{F|X&|{f2Olp_RXu-#bO7kc$;b4qwVu^HkgPu-sm4vn`g&#PV|9qTxIr8k`$WpKhjM$>w zK5PxdI6Ppq{cbdwdYxE!KQJuG%M;$6M}yp?j^^5ag?H0Ft)8qkm$P4g)6}%XV#(4J z02hTwLtN8{64&&gO3MV%3KGHJ74L;ATi#z|#hrXYH;3LMVxxBJ*aK-8Um*T`imT{( zB#J+wLESp8ms^H~LCCu;gu*6DCQaPLEm7w5P|>X5b6}s*P3VEQ@)F$``L3U$AE6)8 zVUK*BqkyVoNV0Nr6jFYW{tw zoBgA8`(d}{{keCmapZO|WBWN$0wAsq9v#0MH0P-&F6L@C*dtuA1o4|9@Pa<3ho$~5 z#ZbPvp&xkA_TSz}-xxE55N==cH2?sHvk^YgGo#^LA~xRtb<~qB<=nb=U`##^+YheN zk#l7!!nsWZFgxt2;dgwhu=}Mhz+~UJNEB=NrWVoQEpO6iL0wDTfrY*zZn&!N55fVzWklG|n)6RE!l^RT$g+^- z61Sw9Rg~3C(b$LNE_b?mfn(2xY^W199BoVU)~S~hdGz1QP*n^_L#iv${q_UIca2ew zETKm=z8Q_}yzQJ+kD!XqP=G4e@TbHhRfkGp)}F4CGJJsYBjBV03UamB$EIU zEjmAwJ5N6zG3U5OlG0)HOR%I#XmaCLv_E!_`j+5kO=n=zuG$Ft;Zp|GJAS527AHfq zdk(}*pjgGpgkyOF`ummSCNA}AVhwTGrkU8bxaqH-+M1ybo_{ZVk`H|BhGkDFk6-GA zK1?2o;zLk9*QkMHfCDA1@9sJ5?Ju*mb0^(i)^{AjaH*tyDpWo~-gu)eDkOBpb44ck zc=(ORc?TtP$w_`kl=EdP{az3r;%EFvR(C#i4=~~t$A#_PHe053zBYj^J^Y;i62!mY zkUQ(V?dMbtun6g98hxa!f3|DK(>$iJo62RJIN0;?2Y%~KUuwD(Ef)ry82B7_uP}+N zD!je6v#~kz-?nMa#Kg%!{xI0(`SBf{#zVrX6|6D%o*GO4fw{uM@gq3wO#2X=7Ooh@ zgK_GF)A%K1qGv0_ausH*P07KQ>+F%ntFrm&k?EYXT{y`fi3+%ok-|6%I|05J$6jje z1z&Y{4jsYk%TD&zBl(enlZP0`{JCsPp@3)5fcTho)`TaDOdJBl^hOJD!Dt2^isUV% zk7?!#ceMUDGfDn+J5e#@MtCeXZa3Q*&Km3UHu7K31#L1ZxO@*=x6IU$eW2IY_l2*} z=*j=TJu*c|vXpcB@A_f>V=28s9=?wp8t?~q9J=T;QhwDJnF}^+_>xDl&-mwf*vf^F zas1O?4_T|lf88Tuow9rDbJ<_|QM?}f`L6&&yt4hnwi=?dFD#An!lk`)k|#p7o=D!I1Q ze*QEfuXeqx>a-}BhDCcxHTu^stujYJLZOqQXjoXmNq>N)|=v_w<&?0|#@1nQJzV6G32*fm02UL*(Y z6W=m}8ZJ!kf5f5@Amv#~li(V1ZN6zUQ}`clO$$PprccbHf3T=JP>+4@OGim0c3STN zcKTx`aWagUeK2;7g3u%CD2&Uc7{JrXoHzqA0$m6$y4pyVDUeDzY5N#LjPa3l@ZP>oiT>O2w)nmB zU;dNYL*cH-a5q?& zx~$s_l=Lq9X_}nT2eY@{A;SiXPK5ABh(#jWWqe9vQh4)u*mZ~BtqTFLBI9j zL!pq~ZrEybFG=lOiB&`Em(lmZNsng)gd$ z0vQypr2&~!*Xrt|<5pZ*&01S^6PCD65!UYF;#I)L5uBDPkWvq&LVxhEl`X+&a<2|w zXf8c;qap7tgb*4is7vmTW1u^msQ1LnBP-9VbHM9`FfbQu#dW1RQdYl8uN|Lp@I<$J z5t1UjAZZDImY?j-UQ$3-8zwK4a0=m6X4FXh=F3NkfXC3#1M|Nyk)}5c-%$f9;CVdw z0ruvsVkt0u$4H5T{#Bx{Xrt{C$ZBzLkw@XnT@t6;E1Wxhvdu(?gGLFfO1=-Q}5Co<{TbS}Z;%ORcLt`M!uNP})sz81ev<=K_x|LODd2^-q?nib0B`bWqrM`o zzr0Yw_R#&J(PoA_+B;*9^3TVakQ()vAz)`!RlH4omfG3TnV z@V0*vI`y3=mVTITkD;5Oi{T7p9l;G?%Mx?Sp@J1P2R0Iy=?~AZu$2q5ikStLlp=Q^ zDO5Ww6N$AlspI9^D~YTt$BBlJlZJy@Gwb`&kV4D9cd=G7y)gZbShni;w#rg+-Kt#S zfv`rMQnki%xkK;;HFEl7?CEF}55qcM?*D9a<}L~`iPy7ciC8zSwNR{0B3{w(v&CtG z2YNM(PmLF!6^fV;%M58uo=OtostWS%_ck%G`!^m^bwSC`aDb~)Vyv_*y>~y}dIlM@ zmkF#5wK_E4w?(xmL~&7TAbMU7W=7C(*=bXxr-Ab-BYl^dFkXSk7vuQJCs&_tSmIO- z!v)yC`6mDGCccO@9(A_q@qDzKOH0SA)OT!Bm0CxZh@(RZs3~YH8kpaJit9|hy2Y64 zOF`d`Amo7QbyUsE_SbKSArKXonq>%0wo(}C&InVH*PSWZrzJN1i} z8^PtLvqzb!%DGD|{3)1O{OSMX%urqN?le6YIep$bRck#R{kMkHH)%O_QaU}ILpSNk zso15}>A>lUGgrlvKP%qRtzU9g&f$!?H6t)wnl`<0lRCSp1r9HCyWizx-SkHeK^14~n{$tS}Dmph!m>4^&~e`GWnUcZGoSQ??WO!LO6;@z)^ z23par%N?jwE$i~hOFn$) zYv%SjWKUfi_;pL^W`7jyYQwekv$@6BNWtaqcr1i@zJU**=^nc)pLCG5|d=KRD9GLFzRx9Ipm+>pz8ER>R}$*+Jo))%(27#xqB!r z<+)b?N)oUvXKu$ObK%khC{B0$8ZG;rXZoe771ad4?ZEOaEHDpN{g)6F$x>@k;Wtnq zmkogq=kti^qIbPVTlHr(8*%VO`Vo}_#xL!1dXxSEPpWD?Qp{NG!yj}6{$?mRxX*iw z*)4PGBaTPQAJz3TuHq6pBA2D}tng?FC0LfR0v};*1q?&Rr^6{eg24^R9`+Qb;@}sRd!D_+Laum_s#?*&(NpHH_EZ29;LR7KVP4 ztrkhM9sC|>bBX(h>uHjcYT7etV)@vW1q#5!w2a71Q?P_d*^J`WVo%hKsbpM zD`u8w8wVPpx}`h78Tg)8P}tI9kMCE7grZ&eyjmV1@!Dt}vn>bCQ7TD>!;xN|;v7NH zyTxBm&Z=q@Z8G^U!Q$K(G=Kh zH1w2SM;5tqp>vlLYgAEY3Qg0)l?`jf2g!c&|Fe>S!=`=i?{UTVlXPuNT`2zbx85zcaHq8-~^A)f~Crc-` z`al8iq%dFrI8Bd!1}_}*V}TD3)wtjzZB#@H&W#baq$xZryz5l~kC)GRHL8xuXCf%9 zPM?Iap^-8ntz&<^&PuVQEF+Sjm@xWM?*^LTi#g#LoPk;K~JN$VcdFnEBHg_sr z?Ix9k$+e)3!+Hb~`ke9ksEPsK<1=jKF?K`F)KJ^8Cs3{7V=IM=lxuR2UV&?~GrKeNJ&q-%6{c|F+H%%bo-DyGFYm|9$lW zG=%xQLP((_wYxMsn2l_an-pA@T6M8C-;ZX&InHN=P#u$3ywheD*ieIe#_1!s?#q5I z6>=U@TRs-1jOK5NY4>i@HrgZs?xpcx-ZfziZq?&ayP4tF_`Ko6pxpwMF9h&{%rlaV za;pyI?qkDSBVErHw%x(`1qAs2aJ<}vQM}3nJ+wr)M~dNiB4--w;Y`#b=+-pz|IGuP z&EorsgV((2K-3f}G6b~cd;^_ocf7oSr*^D*>sD85h+f+F$kZu|%lh`EO9OfxH%5fB zUUv@eOVE20N6x`nYp4rU!UGbp2oWHRs#AAW6OsqbMskDWW@H7L?LP)WCj=F^*=u_Iuuhn1=2U}nciT9meqeram=O+~!O-z%UKLh7 z%I#})jgaJP-LHT4mvh!rP^B>Rorq@FUfsd&xmGJH(OXOK^dOhB9 zjXdVyJhCefEMT}M-F4M$fQRugw)4tNmyFaDZpzUIuwtu*?*OWPY|!r-rK-;%5=DLq zNlE!uaL87&)BO~K@(;>;1I0b8=WR~o3%qTR_s13|9Y%iY4oz6wPq%PufoGQ47WIez z6;Vp^mF_|Y(dcURa*hwYEaV)_@K7;8wflw2jADqN8*SnRwCXe63Xca@hnXuxLGl4QcUyAK{qP%d4#QxpueJaelev0&5(ImTYPLxlC3#ZDI7h|kvk0~pQtdGm` zN4@ZS%4WC~bMPN-mC`26G0T|y@x@SY{3HAiLX616U0ZW(pd?IiGOjq1y- z_@QtxcsbEnz%cK?k4KR7fs6%m4xU(72dDA&??QN#E8N|^L@Fwl{2YL9Hlv&wR4(Su z<14}MnUBDIpK%ytJ_vq#Yc&%81^te(kOa=jl3)Jm_LanXEIvz#K#?w( zgG0ykpuuhp!#^p6Bu_YQ`v4h0PNrBx=Ih3IAPxH$#4QeEt{e)I9dNc^N+pYNXUKlA zN2m{QJOk%j>3h7`^(&5ALEgO&G&fYUFn3n@CpjiI$y1~;`NO;)BPXs0$n&B>&EW!R zfdgg*9Z@^hi{v?<3`}6q&}R4isT7MQ`ihBp+v0@zzT6ovSa?YJ$^Z!hz$7nBq2OSaU_y~l20SF zkeSNn62j!I74b&o2dMJS= z8U^0_>F4pneRr4u50OPqtQ5jrAjDUaeoM(MUqR2|ZaECvpc6#f4V%dYX)BSHEy1o& z`aH&Jq;aOaQ=b1{4tCX#U7o++*8aqktE_^^C`W9|Z4cnYp)g?+TgbZZm0WRW=uUJ? zwyD#2yVQ`pd(Bjn&|_wfHUTl)+O9e&+Y9-|rm-)92+X8af9q;OWv`se()d<%G6;ql z+$K2YH%fAw?!sMXEKMWUTR>V@G6A2A(xC|dd0tlvJZxO%9k5z@ci=myS`7FoToW0} zRIp+$#CRej)o;rX$2wUoH zi9lfUJue`)Ef*UsEJYJC&Tdz_rS<2GtS-m$B~=lGMO{XtD)BE-{6&h|V{4UtoGj(s zttkw1Gdn5T6BkvrK{K62EQ8zW)2o;?{p1Y1%IhO!T1~9S?i180W@gkN&q5l>fA7Wd z41>4YQ~G%)@9R}Lt*ev?szXR<%cXdHL}j0OC?+*CYUG(Hc{a9MM#t;w;x>;C`uKk& z=iAd`pn|vz^8(8ILEz)2mPC>HY=XyP-aifdNPeQ#h=3yqLgjzdiotl)q&nVIp5C>? zOyg>VhXm+j9RxGn>*hqK5_4uNONvNskNVIbusJ&#TgO9Sf0aT#g-FQI1nfy_e3-E~ zDpS2CWc#x?HGZ@yZNKu-o9$d9SX()F{%BqhxZ%8M;Rn%Gv5`ph2oZPCKCNtgCaGk_@Mz@D_^J(o+Tq z7QGh}fI3=6rCY2_U`w+n&!iJ|ZF}%^I%+g3C6DheR?A&u+2e)Bd%yNr@TB+2p6!)g z>93=SktZH{qWa9xlaEf7(sL*K)%=5ac4hz;Xp6|$mD$!6c)Gy7E*ldmTTMSysGV*gMOL5m~KKt>Vud?29+8G!#=(?KNkKW9(zj^%t1;Dd+UgIF+QQA9oCN@I03W{W&s_a1M?B zNXc{T@aYPjT(ZwTm*|52C{{_@+fhY6_^J9#&nm|K&^PVUH1RG&$7??dvrGD?27dzg|51u3&XXJ*i(`Ke+|+bdmBtR^PS z2AR2IR?^u9>14e{b)aa(m@i07LQE_=BXaSiezt0AOw%T9&wo+j`d7Ii{|&zZ4fN(C z#f`+5imhZ&C~>W7lpEK`A-~-B!<%#fPR-KpynINboy=>goL%TylbQ)MF*-`P%n@c{ zVRltqd4J7IE_=ZIF$KF4AL|`0KY0X=ca=AfSMkzDcLLdif%m+Hbv4C@2lSb?35BCn zFYGLmiR!ZFXq8?!V0oz;#R|VEl0Asl`=q`2vbX$}ETdI01S0OxDsO{u;xZ`1E;^V6 z^GgPrIn~Un9g{8#bc#EKhbdM6qYt>jszNxpG|nJ{b7r9SmM;0~?w3Zz-@gWdN(j@9 z?gLlUZ)~RuYH<-SPK6Hi>&?gED{1GtFK#i zc(#4FD`q7uEU1M;zJ50_+_prx zA%j?tRbkr%c6o*R1O4pEO_lhys%pNhe6^~)H4w!QEG_i`Tvq|Q3979!OEEw5>_VN) z1u{Mh4m5|iw@m9vxXX5>3=Qk(c?Oo&uz0+5O3oj|`RTBjo=d+4h4aB3*zi0*2fE{M zjr1`ZCEr)#u{es#X7?H1SW-oiitK%GEuk5=V~X0B6@WipP*AJ(8IDSx?WpcRa|Q%~()1O?_X8|rem^6svrKfk z1U+{QI<+)ZnYIzFY;0goEoKurE*oLeeyGbZMHpOu6UZ^~S8Rr{p$uCUr2?lM+qWXq zjk+X~4#&qw$E&p+hTz@Hij6e}q%8>sVWO7^O3O7B-KVzb3Eew4?o~In?W=vHQ|=j` zp=iO!tcB^+1PV=c>yeuU;*X5IvuV1X77HnrvUO|)me?7!d{O2OX+n%HvpQ`;GW<;1d8N|amk`n^>!g3crdj3cAa$K%zE70nS790BkuUFv47DCO%9 ztCB`=zVJQzN+=1eg^mQ$0;+yUVU>x~IC=_67dvx;-bDkr2%D+p+(j32ZA`It9d>ov ziddi!Lyd5NkCe$W7?~Z$DA!bKj)3iIPy|;!8;3?2=rJWWYw8)YXkaMWZQudIP4W_8 z!wxYatB>TzRwR)s1fHPxrvZ*KBcp`ADC|Im@JkL_6XDM4an@}MG)12VBjmsuXbg1N z0}W1|fy$Cr1|8cX(s%fYb7Mt3o4hul9EJ>bVPZ|^1T*olb?9xmTteei3W$=x%py-< z3`PcRjIl{ZC9qYz1x$rfrMjf225s?S%6>@((5zMVoA;E!dd5+TW>%tMjbyH;*@P=Y)r%CfO$fr}@$XhrySMMYpj71=q#Xqp{mhQ*BzK}`l@Ff!?s zVxL#F@KCVV> zS}H{el{j*kdZ#)DoD(@sOl^bXKv_T+L&dLPxDFY0TDnx{5f!tsP1tFthnHO?ts*5+ zzj+>8VJUW!ER=uB3sRay5nJ@4xmTV6L1{hF=!71Yh+<)E=7z3<%y{fH0>%4*LQ*n& zfh|MbZ(`qJaFLzsNE1d!>W~v6TG5a@c~|UEj9?uCn?@1nIo4I?8&i!u8CGF?f^EcT z_>vkn_{kM|LjsmKVV{Vsw3bPqSK0}XEh>6rBPYzIIQ_Id9yrxfm`lNs#jp?*0Zok1 z8|Ag}+N}(j(o{QMh02vH(w;RGqDNbRo~j0iQpv$4PE~XZ_{J`0_#uP=sow<2)i+7^ z?2RhUqJ)#B>J=0rn(8E=(iBpVjj1hp4V`nHP+AVfx~C*Rl|&%33;~fgTMFVRWhF;r zJ!4YG7Lual3{p0ACP!wMb%2s3alN@(GNai@c_Q*C#iknSZbi9A%#{Fjpw!FZ8(@uD zy5Q1^6(W!^4Yi1oKCXGwYiYQ^D13TTKG;qIZT^WaPzEZ?eAD1aqqWKWmJYQVqbJIT zL3Tkk;0FcEO6X`?J9dPVaZ=%h^;JyaLN-O2@Bwlu84E;dT;wX7-!iL@Vj(X^x>e9< zW~Bk1L^q1zCDW(KyFU%>l)WR`5&L8(4r!y*a63l-!- z0LlV|YKffEoUtGa=GeRj+?u^nlm~`D*qoH%8Y23IYMfwAdBtQt6D(jrN=baeSrZw$ zK1vFJwFs>VQL@wzhs#t5&?2FX2G*fIIDt$Wjb96(rE|i}R{2FwkVdrvz5Mqqr*Mib zxlRoCY_k?>yTWWajX)Ab?6YNJ47g@FO6c7{aiUFhFaW4#`#fb6CY#cD%&R0w&>G6{ zf)9b%g>2sy(bs$}QA$L_I1b6@2(V6BqEvf~oc58<%>exnDA+%3ptRcHE}f)6jM|p- zUaMkr|1Y0(79_vwv3A-Gen}W({FFwJy5UN2IdBzRLsvtvkP*%t_o2{M1}#{?b_5ka zx5>8T_(nYGn}Ki*wvSG|>YDH*tCzBVY7IPK?C>Oj~Kvs1m6sSct6ASco=qjwr4M zGd6=^vd#(Ecus1=*;r8YlF|}gEnSBUotCW~y(o^P&_Fp+y(#sVLx2cZbZ^KEu1tt1 z@q%MH6BK!8Vx8#2kspt?Z0{gZMt2Pb3?NgjNVT)lPWQA(nW)$^4|H-=^&l-M3g1O) zptRyha3oG>SV4X!F=IuRO@o#L6V|{&c`TxcBu}{^*p-BqezK}-r-K4Gi4wa}_!>#> zomSp~PIv*MK6=Ot2Pnq{LS4!aq{yJ0X~koZBrz)yS0AUWWXNHM7Dc@ra3!j$KJ`+QIfJk#P29w3AB4B{V_|TL+RG`aHc>O zh3U#j_+T{;3PjElNZ$%Erq)6@%8kqRzBP1U6*eKmW116><-liv1?)r%+HRs!0|xCQ zR=w?aiSz8V;g6lsnadZH z6Y#zizh)r-yMGz8onk3MuL6OiRkKICDz$Lm6#-U`#7?TgsnkdAlL9A28~P`9Dm>jd zkALp~g{L z2IKN(YW)7hyWdf1(n>K1>q};7KdlfQQQGpS9p*2@;c+wWlwc6zz>W592XB_bs;VO6 z(gV^S<4RvMBUS+&yu^X6{Cf6+HOHKs*e2c$1X(}Wm^i;7u+k{hh-JtWwG^I{PP3U8 zBt+PqlnlB#G<%?bV$+~HM84&dJqMa~;Uz}?z3{z_ixjt@A;lMhU5&VW7Ciph{j(!b z2qy=1W%yhVN73mvk4s_phaaw!Ic6L+oee{XiXuedH@bBBc$jA=htBlvoO|c{f83TE z+M5zO9diOyT?9$rBO}enV*H3H*6~IxRp*{);=Y;TydoXG^Vpvv}Ip>ukr-Dl&$00->}x$U*)%;*Niih}|)>ipXrY z!cxZ%*M+j!Sa=fe;)-U_0*?qV8e z+AP!E`=*!>?8zn@0V#wU_=RXg&>vn}iJq+Xk2L8S6 zCQ{^(HALL58w;mkKe9ij0RoGc56-lH$)HtbRlaa;{9F4Zsm$J&&hHBA!HWk(l2LC% zIA)KEz|2VRWGFzk$j#HxY_?OFKodV6hRzvgjDGY%L?xU)1y(^QP9LU#2!agx)@=3 z;@h#DksSDiK1FFnQU-CF4?{l;8WKK4&HUA+9d?CZ(t|s4ITP*KpiD;^7h^?AdshZ1 znwN@W6^lscFAx8!Oa@cd0Dua>^nqy;?lMDBpTq~ZtuiMZlvQ!uk$Pp*&HIB%(Axy7 z&;F`0$Ksu+=H;@SsPKp)JJ@5JQasv+_SWJ&lW4XDwbQrHky`n$}q7 zEjdXl1TS5mSb&V`K(g`c8x1b@0;%I&^}agC;8Q&_i?bt@wOJWk?w{|*6VN-(J32je zMT&fQ^{&-98X`5kAA7;{x9C1SqYGQ`eue+XY}l)#>NT2-iJ1|#H`$|h3S3M!Qbvv8 zo@CXpC>@xzQMF33F7~`M_&tj--z*m!oLZ1t$zkh)Kf(mw%_mO)H)K`sGhoI>?+d|O zAA%i$OP;4JyoBWkt^|qD$&}Xk&9S^8_qLp@J^~%St z+hL!|Kjy>Y9+a9sY{_IMKcX5!Wv z-Dq6!4!O*6XsgN@9$qsaK!sH%DtWcKMkbMZ^{_oFaRXzS%0(^Yx~321mfCTnd*< zjp%QVF^1rnl3Y2?#My;x1c19@uD%)}mXHvB4Mxv=m3fm!H-{*2c^)t9AN+2ezh|AU zYzj>-dkVx=!sxm-dJEi3l)C(_w<6OWK?aHl4bA+ZlZ^9 zvi8svma)Qun08BGETg_l5iSL4sE~%OV%$zW)Fjs8VfSW=9z{YR_2`x-SXT4o zZ5hR7105LZPz1a=fDsn&bXfg?wjj4?ye1A4DFt13@Q^CjM$~W?d;(L`dZkd1xv;~D zt*`mimEo#=Vq%{8I?8&WYf&BOTgV*H$!o?srJeqej$Wc9qF%Nd0rr6&<1v}I+<&(F zbztcD5P$Y@9K!XaC}nY;^Z^ zvm@;j)uJSv(v(Tx%Gm7OKQ-U*=(C1Rc!;qyL#X`n=$C(V@0)*eAAP$r;D(#+gpY{U z>!VXMA&D33L>#$c0fKx@ku)VBxMV)f`S0R{Q!Ps(<^{qRmzVXSbe6l_?FMe+L~o(T zK6S_;`#cl&xvF2P#N^4Lj@=7Qy-+F-7pSl_MM0gohbyJoQc`>EyiS3Ral@*ZcEU6j12aB;Y)CvlCFdAZJwB)8Y$aX zHCJv5gd@q3&=X=-CSYtl7iYLUuL?x#-fOW&`TmO=jVnXioubX`E%^ef8*rP(He=(I zkepJJkxWbx2@e!aRL0HThOQK( z(pyF`Ye^*dAZ_d~t^PMS_k?x1ny>A?w-Hbt@$Pw#~Twth#+&n7_`?oCHNS*;!{#h%3 z;J~M80TG;BewAv|rDt^qD{r`Bc~@nXq! zC=8!MJG`}U-Qqibh$WlA;o9gqJDR?6A-guYbxCJ7(E&x87ZALW%RAwizeTjF^&f z<<+E1j;RP6d#&u_AeBH;ds_p{vYRk9pg&#m*~3Oo_s$g~WIY`-l~oeX9x3{IZj&u@ zo-9}Q9}27_C#z;W^ZOPt>Fpm#E%;Z(QFTjzTn~s&cSQY6yK>9-Jx11moEE~Ua(Ld{ z(N*zy6R1^==OB93uSF}(Di$DORG1V*!T>NceR8}#@zmyMN4j`)xhc(}sjP^D9TpPl z_7S@I!6vEMNgz+V@{G-wPL!jtsAs)@KWGcB0CCZukHqKnuonGkPlf2uMozgD5g(X0 zq@3J%InO=qp>HF4v)UF`me0;|$wjl-$B;M!mT|aMF13zKMWW+>JQ0tRNmUoOYSzUS z5qoV-N1C0(A9#r6m~=x{BRitEY6?x9bTU?{({VunBt^8M7JEpMcC|72T%GCAr-UyM zS(UwVl6smDESue=Hu|LfkEq&D{=k}>`%5$ZcU9utU?_%ZUJoKTL-^GG&f3ICLskZ1QN-7nEf=A2)(U5L^IK9M z+>Lm|1|f+V=>p*(Z=r!F-dg7*yf}}|uJ^P!C%-yF0ORE2)b0V}7{~VzEE8_sn8{pO zNF86zClX-X-v8paSIA1O(eL!SOBi>ZZx$r&;+ z`F)>^m{851>8LbvggPALb=>B3)?2vklf7WIaLk4l?tFB;bXa$`xrEGcQD8M8&C)6` zIBlZpw}9n2c8l32HHwo}#4hL$Alj)q7A}h)pXqDS$sQ+X{;I<}M_Ok2FAv3QiXt?6 zVI;|4hghCrnBLLptRoZPMHsHjq+Dj+mKu#MUOvQd^s<5T1?Sc38Z>aGIIhdU11ISPA^unsKS{J` z@mZ6!HvK3+ToPqCuG0m(0DG{q&veq2^biRK8T*=G^MeDw_9|>|Drt4+br{mEnwwWT z|M5Cvv<*4U z*gM|Prw3MoNI-2NBf!mf$^v(w444E&mq=6O`6%yN$guSBv5>b!F^4V6N1d;9QELMr z-|Ui-l-8UqjMO=>8GBdR^~D4cqd3fP-hk=Xr_1~;FJR;b5O2cRTw+r!9zNxHkZIWP z>@2SqV3gyxNyy~IgDbUVX^u#FD!{#s9`$H2ic?^j-;7ea?rHR+lCGodAb=F5#p-Dz z^Ur20Eiw-11ct%SPI+fnZeFn>%*H=@9X{Hc?UD7J*C96G=vcd+DH4kJP8)asw@xMZ z@InUrAAZB0zho->IuM}Q0ReCEi$oxvE+{d)%;t)Pk~<*TMg09C)q1@nb}HYixj)hA$4qZDjhkQVnI&nUN8uEX%BL-0yF?0DhuBvOhF2`b2TS=< z_`1sntxpMR7y2hf2CF50p^Oo*uC_*BmIIvde9;l1eO1r>U)j~E0?hb<(f<2`iGh1K z)yws}6fKF-7afz4##Nj3(d^};c@J!8!gjVLn@#h5iHJP3xr4bm^|M*N{(M*0zkd~} zaNYI*YJ2b->mORJ5}X;c_~1ko+3|!j*f!*SdacgC{Q=TQ{^Wq>_y zf&BV*@O;JJ#RPAdNhhF%CO<3F?XjH9xlZ?54T~x@F}+ZQ3nd|YYxy>ETgvm^!$NH7 z!1?k}3@@r%MR>&~2zb)!jU#(^2 zmDlJMo7&jPx=F1gN;SItlwU@o(?AXMBqt|ZrF5|~48!m=FfyV-m-A=^S>PtYHO683fw4szcL^(^CilQ4whr@cYY@-ih$%) zEaPg4x#YKgt3_32j#!$}J(zl}^HE*|&z?Csf{~;dd13i!x96X<+ukc1oMXDL&K|md z=u2aXe8I_3r=z4}d7~O^9UQ@g25^;MXZiJ?Q-ccai-+!n9yQpdOzV`Tqc)=TE36mc zGHaUB0}mJRjkkWj!*}Z%#Oz0Zse9QvCbt}4Q=5dPm`B7_smPD!lD}Tfhi=rY5@6Ogv zUqV-I>ad%?%3r_xu*aVzbFDTv+hcsUBS%m+hcR<{pJ``m8~~ENds9Jn_hFL3OnWyg z*$Imu9OoT9QBI7@Ov^74#7J#HPS@7YG@L%waVrSmTnKWuawA1?lHNN7_{0p9;E*#+ zD+&keM_Ee8KOHfk%dVVx{nYU>8N3xL>urCD|K&PMtYa== z%NA>3BkKUnFq;G_!zP)wVx+L*Qd}2$FD~zK)8sg&!|ng`jZBT{Zc;$hfW0RT#MJt7 z3?9w7L}9Ay#Ff;QckyK1x|~}^ddag7ylMYub;SlTVg}VjyFP?iIqwQqK}46L6$Ju& z6Mb7C`VQOhOJm?imm{wKzG$1%2QZk4YIBvZ16mz^`#OqMc)p{9A4nJ0$0!73Mxu-F ztvd{YqMwkp-<(Mx4ds0cAdpay2T;kx{nI zinRU6N=-+B*Yv7{sa^dzr;Lq9P@;{Lrj^Irm{}rN!pL<~??#dI@{Rx7A}zuWkW|G+ z*?k^Jr#O~eV1E&&^%Pf28y%ucmUP?{mjz2Ie*FksbC)nw^zl!+XixGEYa?&Y4Iwma zerxX7Vd_*N&dx!+ZCk-OZ2CRO9(jhtPLYJhx*3&*@rlb%4MdWZM|FT7{st-Vi1gDX zn9Y2Daa`Vq^l-*VYH8WJz_Bv*}c&dhZt|4l_p^G*;A@T z`vLs%r7v_Gw!pbqZ>o~-67tU@*(ppr)qPvDH+Qbd<(2{k8x#JH$OEyw!Zl5u+S zcTNt7FqvHyfZ7spi&nA4xezH^3D3Io+_al3*{`VGY-8h5hSqH#OWW!NEh=MfaIDwO zM&6PmF1G0!5@%j<(x!>aD+Q)lU@A&HiV4Yu;xI?;=M5~F6CBePh;Ab)`51E3k~#omEkq@=yrRfw z?@;#{NY!*d;XW)!yq^gA$Z_y5^DT+iZ%Ff-+!_DaSs|GFz za>It+Bu4l_L$c6QAqr%{n8Y?asJg`XpwAKs%%w(WUwB4}<#`JEi-F!W6`N+in;zVO z4{_;G;s3!$CX-^@8qCdi{$)?MOhE5!a2;6MJ&WVa#HXlb%mf7roSE1B0Ih{-uq#Be z2a<*2l2~X-QPx0@g4y#DwLL|1g!R?cqgdueK${7NHbxUA8!O2mcMQ!I8ND1GWVlHP z+LT)anjS0GjZ%E``lBdn2xcNpz}s5q?ANl|d^fk_NP4Eho&iu>fK81XF63UsiLD#6 zK$Dk#$}HLs%-#Cx88s%>dLa(=@%eabQ}f48Vkn5oL@X8;IK&&~Z20tlF}n>cHMZHq z-)52O8}oyv66+nfYBMnwnNBmy+BC^Wqxy&%d!kfRI6l9nBTSUV43bP2x&Sb|mZE(| zcR9HOlT*KRZSnjXa=y}vL5nz8qkL6nQ!S773PiEWxHX^myjA=QDw6PW6E{@{{v3b3 zhRAAS`l0a!orvTfel*IXlx^HxO+L0?C#4h-PAUK|;$~{n{j*z_2rrxVUTW=j6P%>y zHCbPxBQW-V!;WP00TI#LgsdC$CF18;g-S%;e|BsIJ~>2wj(+A??|w!sP0YyiLR(x)z z421xV!I3P@=kMJ_LbxO>Q5x(bLJd0Ed_i97*p}i}8BfFYzRbk2&hse!qfhfS&(l~x zi?JLQ&6HqiXjXdij`{M0dfI}aVuQlw?u`2sVJvt_8-z{W1p6BLzRKtGn8G+O zsumO^A^pwlRAdq#TewEA4U~7?ido^yf$Ss0)d;}r2N!&Mf-O(SuCd&Lfo}>XxQsZ6 zyQZsVl-%kxnljaf}DVE%s?=Mx0OG{L#05F-899t;bU8h5W zs7PRp#Mb0)Eh8DSHY<>N=+f%O#v%66CouVL-6l6Q9yYFhGz=uW0{vWZgbc+&0I z?>(mpt0mHtUF5uWV6ZwH9}(s`XZm4NK?+8buXu@PKzuy9~3N;h_r zM$Yz+;gt%YkyOL<0AjXyK8?J>0E0`Jg(72*L(zcDLgZ)GYGFp#xI}nHiw0Ss3LyqK zva+j{r@i>D(;~9Q6&_N-` zbjHPJuoQqIskI__n$xQ;lccN>_O)&*qfqMOv0SyFVNPff^YhprB1=5S#5AQ$EFGBJ zi+u&oiPa1qQYxZ-?$it9g#bb3?+fAj(TzaG2uUS~CRWw-m^MpwmIBB?;z6Rp>HAOx z=)G{?ReY19z7oT;1k+DkWU_qPgGU88@vNvR%U$vQ3{!=!WkFn|+@Uy(y29F1MyRZt zTDMmS$w{N$AQ3&;?OjPvy=DsVl(vu{&h=UT)|D788*wY_wXeoAKlac4ssN$G)dXDe z7*_!ht@|SyIG=xZCvfWuHKxxw5IkCoh&S9P2HXua2$0MiVXI`z621tdh;HXaV!%mO zSTV+7ZcqYiKp9?oTy)|^bqYL((f?q14aqUF$;Pk%-h*7R8? z{MUt4ln{Z%LEP?`NDAdX4`Z{<%gW{{;4zq<&p{3=U~|#~WOhu79#PL{yJ8HFW3Ngg zXtYPji+!f0)G#v9NrHC z9|q@dp@CDJT`#zm14+T$USx04L+3-uW zM)4N!AgGGWGEN$51)#?Dv*J_IdEGzwo+}t@PA}l{iKk@(%u%Q*m*GW2*kO#MY7j8r z`?qt=Wm+U%g*npJ@_Xh%UG%XcBhT+qxs>poNAfgkH5f(@nxeE6yeAY)i4LV>8XRv~ zm)1K#*KFP5{ZDHk7r+8j@`Eb9Kgg_?)%L*et#z>=RXSOs+74zPsoD-y$FV1B3i6A? zhTn#kI@at#IID_Ft)X-zg~Sj2cKB<&-{#V9_snMlvauWZy#AQ%LB`g9f0T=GL68iI z4{m~s$Eu^_j`CCY2iGVV-(H3`wAa^kFhO6dfJ*mcz4eyTxqJdC3=vYO_x6zn#Q?_SPCdy^GOTa zUg-b9eFXKg^8A73%5`*Se0p1`B)Zx0Q4#xgqvt=H?LO~|Yd1gr$K&!m#_0G%i(Veu z@3`?&W$p4mZ~FJ);up_5<>IVw-{&uD)CsKuIeqQ9Iy)fK`msx|PFEah6_elkyK)&_ z_-&{830J-nJ?QoC{5X15`ZFNkVyZVA5ww?HcOlDewK;e6Ue$kKjAV5+*xsL!S?G38 z$@Gb^x)2Aqt*F7e)25v5Q-#UoM7CZ(z@p4MwP2RFNS(`#lbA6UR8}xJRvOfCwW~Jp z$!X)NDDN^QHPYGhqOi?<-*A%2+Q|9J=1(k-+#(}yg8dxvnj|H#m2jMA%RXLp_)c~p z#vgJ3X65YJH;JOKO$lVXXqR4nh+BUyrFYty3-b}@@Y?%S1#-{)xXNy`S-gDt^~ayY zP)wM#3eC#O)rEx_{amtq!$#_$a+)L{9=+oVmr za<*-8y)8Q}}Mm1@5H^64|)`CV%lUg<6TOWJkYj(G%rEWP)v zY0Nvx?j<^OUXutM-z$huR1PldnSFg0>Ue=Ul!y@ah;pJpf9hw=jjjj{k7_}gcf)Lv zI1PXn{6gvWRCsz$)gOvs+m$nfpChi%qdVpn_Y8~J<4(X>g+Z;HVeTs9p~WEvWy zC^>M<2Emyo9^mvR%+>PhawhI9gN!K7wh0*+BYz^|*Xym-daRNaWY=Fm*PQASvGzWj zqcL(i_)JJh-#f)>36o47@Q#sHG~p*BY8K?zN`X$*GU1=Dwd1PG!O~6j=t9sk{{JisQz=N%h z&BxqOkzV_#!JO)68%>&z&D_vX9kqNM3~o4;W<*|-3?d!)trU}e+r`0_H@mHRvg_*9 zqQsc^c<9&852|=sE5NGuQMTSAhNuBQOd)6GAcwBVfn%xRq!b>DH)qhgbS3eP*&__D z0J_6Nr+IyEtaqGBT(UM5;uv|5Ip4cIPx*DhJzz{qyy-4&dw#91IMFhgwJdc=vXQRA+5#-7U(=zn z%-oR9#YcMEjHyCk)U1KHB8gaSF;v76xtP`=beYwTx>b6i*~KCOjgX?2464h%(HlOd9s%_=YY}u7ROGBNoR9dc~sQt`36(y^e|yz)We>$( zYIRw@XxfsV$|6Yh$`zX55er1(v?01j0rekUt9MeXcJoPJm4UQpqqaaehMzWC;($1n zb}?7T?g5rHcV(?U^O@}M@nYM+Bhh1HPc4~~IKUcSfqSP1H!+dQAwNz%F*1D1qEnTr z-|nmWb|dSnnhe(aIRcDl?oqIH#26W?l12N}mS@X3_np;xkz!u)zxVPT^4t?rSA{Uk zVA*W>JdZ*Ay{8r+K>q|mM}WD{86Nh+{(c(*+?rG*9j*dl)DH*IU@H}$v=TScWoA0Z zdAlwCmFq5K{m*vL4yd}cspD7)K;S3j506vw^ALV8!3-^}e4F#n zc~X)?OHbC;bkI%@2^&@$Pfj31Zs7}Njo{z9Dh5i-)5J8lw5E+L0T(272b&pJb*L}_ z{z2fcQ5}85RRGXgr$<4?l!@#pV2~K+U<+QG5B@zBGlnujPqlKKqHnExh1$`-+iT8_ z5G01Gqp?2m_7Lksv8`ThBu-hgMCViW3_6O3UTQpYP`O=Y3XV50`fx zfW;!3I988Tbb`}Zvp&iVwG$W8lmDXto&|5&ayi^yY{a*E>fI|f0@_Bpyq_SPL zyZkr^RRjx3($Vk&NB=1L<;sE-7Zo`<<~PIU>w6LZh|=Y9MK=29TV^z)9wtUMFPv%PD{MpJ5zCK2WNJn?NrG@hV( zuBS0__D5@9wudJ&#G_HlW}Ll{3~sM5Xlc+|NX9jHTE}n=E!Zb`$zuIfH@}|8c~pL^H0H{v zGy4}g@hno$5~@-Tu45j0)4AcZZ|SFlOVXhS^|n%q;f3@nv+FMCcTCA0VJv9L9sy8F zX7enHE{_cF!?^0Ux+gx^4Vq2qODa$j#A?N2jng2hP7lcs66MP#=;-?Hc2FZ9gH9Wx zr}ymXZE!$v6P9@{Td^u+vH%UJ-^v|;aDzR5xn-D(d3^)VkU_0pg^7(HR7`cGKf7XDpax@dtzkEukiuLQeIV~ z`iSSlp8yYC7*mi(#+Oh1Qh}hrn0DrsFiBATG{`g#l!5wZ2p?Uxt5ngdz;+1c1UR|4GLRfc@)ZA*AJP>$0dFT~)Y z)wq8)GK}Hm$n57gR1$8{spGg{rAY_N1CTam2};x-CrTkf zj8(@Hu)u1|JY}j9-q8C!^$P(Fi2&5einBwetzBvmCac7dn8NJc4()-VxdXtA;cY&D zz9Eynqgw&@N%5#fm8*HOb#9lB?wWuE`m zlF9>prUs$}%T0fU)BD;rWR?)UJ z^IcuG9fcZnsq>)gy#80AD`Rn!&RgUH+(W$HRkbI1hYD3tsy_LpXXoH!u)V6_)hqrD z?(dv4OImop5bL8fQ`9^=QZpMVYD$_z?FCU0jO;ZmJQ%> zFEE7ddd40GE$lECWSZ$=UelZGT)fCRv9%YYIjLeqkeq>C=h=D8X>2T@w$U+LNK1#~ zMU<>z?5uT=7s0727f%534xB!@U_PFAGB>n&yPnts#d(~qgK_X0Hw33WAtU9ofi(xZ zhW?WRda>r9{&-l&#k0V~xo?r1H7+B^S6w;!`N!2~gr-|p!8dp6^>NK(|LK)0;u)RG z?Xxm|{R}{luXAVjQlx~}xYDUDBd1sZ!VkqsOy(e@oXUWwZ#0xG-}qz(z3UHhg$Q3e%mzix zvu`N=?+vYK);gC`n^!;op4ON)yxW2Y>ckEYN6rh4Sg98t2UduhekHziD0-_hz zxlS8lfvQZ~#ojV^mOfIEF0D4vwO7NoqdFV+{ex7dyh|?Pqm1~(Q@&{e8v|nskjuCo=C$u6@o6X?W$UV&Jl6~mnc{3 z4o{Z(va*9_&az%0Al`i|rs=9u;@PwJy#m+RdB?X6VyTK)7g&HH73L(aJsI5yXy9*u zNNhRU*Aq@B@RfDaJPm+W%Rf1%5@2igi3rA0iuTmDuZqg~me;px68Nz{-}vSi z=h7;XeLMpL>+ znF`UBV=9^>Hxi9nLQp7?NtfZh;?)6TCtt72H5#AGv1tvApaGp>PN8Arg>33Y_iWtI z$WYx<5&!`CSw${JEn8@T$#hEziyMjats}5Ve!4wgX-?ky6G=!>6_`DgX+g+|k;b^N zGLDsiO$g19r^wHvV1m_AE63;zo6B}F##c^TpE`lGvbYf_G>tjeak+)>LPF!66GYXG z#hys*ojLphcI%SoLS0RYH0@#8RyKH~8Ix=6vOFy$Sceq5k=o-MRgEw`1FSpt=2` zko2om#){~ql$|-)UWD28k;KfP7#Di3VuWNxX zTci2|5jDaAr)peI3RVZNzyz9a zXr!qtfgK!{3y37tf^iL<8 zCr+ye<@8Z>pA~CSYO&wG+Tu(U*HMYRqZ-yBYsBHQQ#X;=vg{&^-rU#aj(lOZcDH!g zF3*JPJxAw(Z6GJL#39hq@f2l0-^OgOAM$=qEz$P_S6;*9``lqd`>E5Qja}81j4KMJ zd*JcmOmWJMS%oVII)|h<+mppWj!x5TORieG6){f=8L2d88D3nBH15U*XN+nr?qASK zfG(sZccLvq$+Q7=HU7Y{-sXm6qK7ok}CA(E>GZC&x+p)GrE>1RS1gHnWdG?H5wT^L_Lp9L|F z5~2*991KG)1?sq{&pi`s+37vNc3tp|^!8iCXW<)q{u!_WLOl4CH^rz?H!JE{MygAd zpBn_mB|!fVg<6JZv_p>%`Z@#LfzClL*h7AyzuNLTyA)+#%SYg&(Bs2KyNmCliz;z7 zH#&0?sV9j9p7b6$W{F~35}dQf)+kX7wgd#|cTv(VSC`R#B`zsru!Qza)V%ahT(5cE zxnI(saBh(7?qStN5&93)o1fi_i${4L2GoDxc=A}ZA7;<~uL)u%wOBjY-=21P_663C z;MB0Mt6LZ4FX!lR5x=KWv}n{kyvs{du=HJH*y?eNOmXkl-we@GYmxHA$9nCbO2D|B z)RdIP&!--!u0%<58`50lJlrs9jIgUO&8%9N&WW(~A1?tLU0=s>WFj&-DZyPdtUiID zqk_v$!W^X)Y_~m`?A@!z7tlH94L^NBDc#v!OZqY^;62(Yxl0|M8OR$Eaoayf+Wh6M zp5B4^#M8r?f*h9`gm8oP`ipZgG%G0~hx-SfBkvYYg9~vL7_EbNFSmWm4!?FHP5e`96S5xlTYywi)u zi9v+%83PNZX(5C9d+W=|@OR~FM=q&#NSU>MOvrO9ARmb01*L^8X+QeTfUjT~nlgzw zXAZLTnTt%Zm#S}l2I}H&#av-Yv?AXrB_~-CcOIzlq{3rcXHGL^)nsTLSmh+{dllnO zKBqU1?xPcCeD|VoZS`qP%7;b^$02O?q)_e)L4#3nd>UXEhr(agm#$B;6{7L*YQH7w zLWC&ewz~vMZojSwxhW4;e7se7r|%RD5@a%k=~b-@xr!rWm&uMF?R%_(xTe245n3I( zrw}o0H5~v?pe+x|BSD-V z#qX%KCqLKZF&_^AF@B?e1#8~zrj9F~UVh8krD^Gwt{=EVkAjl{_YZ7$oKjR|1(|EK zx1(4Dh|l0Y&!|WHua9y|&&#eFHbAbx!YyUKgOS81ZUF;F7PDRD5fG_2Pb)X}`REG8w!r z$9nJH<*3wP-X z(`Z-KW)il+a`$i4L~|)7kXz@%y*lvX9@Z9P($F`JagU0V(TI)4&-#j$(U?gwKMtX5 zk%dBjPPoaEYXj3GRK2$`s-E(nc}qJO7SEk`5nFBAP8@b8!M@kxQ}n|2BY4=+B?q~E z2RPlYH0ifvq~afALPVKL{&0$FK2IRwvT(RBv6b%;QpOkC>l;Q&_#^jAuRKRcpo+T` zmo))H8)2?%XRFXXZsIz})fl>}yUm_b>qw#54D6&NhtRS9S16_0c1&m{-CIDg$WoWI z!0Mlx3Q-Ud_!Tlj-k4Uu!MQfPCLLkKQ#vmW?h`XnE;X%iyt)g0&XhIgFdw1&C09EY z&M#H>dJkE+^AHyKpB@b-=tcvTf(JT)!=0}CUx=^UW!dNPL6P_Au9{P*)8-VCiBwmI zFQQOxHjwt2vds+r&VjTpY^j=RyR5y$WzXhXR!-Ax)%see(pnD!uPN|QnEM0$bhKng z{v>tX?D#=gRON>_W%T?52 z4`0C12A2rXo_1XjS)VywBt|-W#{n#y98!hpth`ytWrRg9NqPcH>$-V@l&3QeM2zOJ z^t00{Y01C6d`rR3eu8Ruz~Y`)pIvdXL;;=kPyUG;6x^C$cMzty69?@NvJ}7J zl#Z2WnkJX|*c$>#sb_Gzz>3%pHRm^YaOuL=@XftWdTQW5R2J#APW9|@n}J~dUg{NK z$itUJ7U&}d3@7$rC83;qi>KPzKo(Df3v+nL8bRBnFAo7llWQ{4Y`*TH$tQRUV&K`W7M&g%F zN8%rsPuqNdj^Na+PDFl3s&$fIw{(eRf4>SyK1}A~V|^wDT{*W5*^G-*(rTRi18j)z zCt$o=Fqw2488mLwK@v_6Npi^CIA%Wcs}OQe4WBE>FMwxFny$NHffYXON3ZO3w((#v zt6AG*%RzGa34-r!4#$fYtKPG1=G2&~V~czo3;LHVWuSGWXTuBS8?P=56Ppp_u^z0C zOTct!&SN6zqYT2TLYxi4p=27F*p?I5Mg0vMF-~%-a(E&M8+L-wPq%Z4PT)h{%mAK2 zrKtqX#N}2GNz7rseRbx$6n-f=VR5~d_=C? zk*9fAPoBjFXzJV=fOhrVo#0CA3Li@&8LMEeR#wtWVO{)ng6e5f62o?5Kv|*4_51h3 zWvE@aus$!#f?d56hDyVFk|7n& zuiClM_Uq?LZ56vqwG`)R9T8-0&x8oO9*+8k6vFb9YQF~cJL>lZ=qo&nhv5r##f{k^0B9_ zHBOm22J$M)xVbtSMboYB?D~3%?QA zP?oioit+-ZkZloFVFkIlNeOR#YzMq>V}%mpGpiDh241OZ0T7vjxI?xFcs(s13{oAq zyCtD@_zF9*R*1~4ljC^lUNpyNmtXSaXD64`*9P9bEAuWVeLkH-&3@VM{g^zJaN*4!EcC%ELg{BWxqI zqJ>m*1;a-68t$4BQ;3xOCB-i21E~=EW{1X$Q?zTl?h%Q$o_m0F~r!<*%Xt)ao~xX@*N^T zQ*%>caNJ3|8u;;wq%3)1)Q%%fFgt>dTYG;-fZ^K7mk?lDFo@AO_W~IomZz7Hb*ZG`2L9=O98csjmbYSKQ{dPzs8L%GQwD?FmdYou9fr9HEk&l73<6{% z00Pk_(?}d^=iKhD0^4kFU4%=rI$(ltu0_h?Dw}0nCp#-n$xK;ky%oPCrwor?ZBe^9 zT|z6zuAy_n9Nw201g+`BG>%K~<6tPm;^+ooT8kEdG83++PSESYsSRnK9emS2(?+_8fexpt`_KMF$BKW-v=emZJemtTZN*+7~DM&IUmvv zio^s0Sh!tR;!g&IQJ_8XH0MU0iiStc+hv>7l-9-Ew$X?!-TfU>CCQ=8BdiWK52x9G zE`K$jr%WXQ+Fn-X;_m*iH)LbEcJN2820^GjkJxhkE6PVdEBW!gd!f3u9AGkKi-jT?OD2ssN3B-TP{CK5j%>t>4A;qd zKoLeW$rH5vS7twCz?p0uPRi_N%__DHkguhJ=KUKy{w|7!w=0htR&ll6ze~#m$j3t3 zQY^F~9IkZ&8@jXC$GW$kmgd{kudqa* z2T2ZeOX~Aeb^oA+vw042S)cEEo|I)3jr*TMrjKtJ(m5 zC@hkuBS)YaE*VVmTLM8hMwv~9ciRLW93k!vLNO|-jlgPiDxLh8MO52fcFiU_G)HtPsLT$llu@6}IRe=p5OUOiDBNUY1 zSa_c%Ab)JdSfL4|=AJkg;Jp#HUp2x(T_p8)G`1>n2ax$Sh7{6-rv$T;POs2TR(Pci zgaQ&?=_orIKTt%enhLYbD?$6yCw$r6{~b}v|C0eJ9Bxs>UX}AA%13gWGU0Y z)YB46#%!2e$o36vB-S*=;!xQdb%U_E6)nL`j+JL)PW?Wf1AZCl(A$z%krvV-#rDvDs8jWdOw=z zOa04j&rg3ph~-1CSjQ$T4F`FeQ}bTPM|Byvyn0Res~)&miCi>&~6jN6)yr?QN0zRrI&#(xo3gyPp3*<8T}Y&}$7xPIs5&_PCnV;u_{zyFt& z-&K6euZx#d*H9C^xPE zeS{gYng&Y4F-x>0KKxJ)-(0qU!8C8S{ljjHMgYX)P)Ev=SLGpt>20I)U39JSp+sWmDnhH zy51!H&>RvCoye55>tSllwJ<*DC6i{sOgB#2q$6b6B(e%(A9;vw%uzdin?c5k<~XC@ zG;H3);LvWzRqFi;rHn1#Gx0FNG~cS-tGPIWYh=rSY)D53(F5YK#!&~P>y?qcjN)-Z zG4mholz4c^ll|^iPJA>A=b@NccDNH|ymq2469**0COE~3gbYRVlIO~rNDG+rd-F@l zhdHge{A%qi6|fm#5u)Isb>~*gmfF|uI?~!9*F{4vx`RYfWGg~T!iLgxV23S^CZ9j5 zSAMH11D%I4{!0rPg$jU(9^hAQbu~Ak`AaVd%iJr(glVl&MolKIDw4PXVD4hmgDWl z)VmEHAEsaaW~_;ARv=Tv2+RrF59o03sfRhn0TI6EH>l7K-!a(5SPBS`wy`tUBpJ?w zK7!mZwMVRD!S4}o3g@tLojb^X5tiX2Y?8B!M$v#bGySu1;DQ)stk@Od;Epcg?X5$ga2hw0?V+8% z#MtqBYq)AUir)jW_SvJAVZVfrp0ya7?5$;b0Qqjd_Dt2Nk#M5@4( zV@(6>FRPXX7bzRxrUreC^oH3nM^FQaXtymnk#SdWdJvfOj}*AekXnJoW@W7QL-@m= z?BM40#+E~YDm9*n2_rSv{3hle#*&u`y#EANc2z^6NYT@cPRrad-R`Z<1c4eB$nP3h zY2U|iUwXw6VEpcvtcEmZ>k-1+pibq=-*1J#BzaooBW)_1hwi%?i zfh<3b`-I0oXWkG}3uN~X7azyciC|>-)$LE&ph}6c+K9Jhr3>N;=YU+lvzB zs>%Bv6e#Xj7YMM(028)Oum7=h5T!t3(Pq*zAc$hU8Kh%n$etR5S@veQ$yr~Ku}A2DjFy#Vh?ObM5Nr&taG-WCseR=xKB+R1q>H^ zeg?q3h!flJou^=MlqG$4I#8n|+!7qwKBhQyX09g(GWCaMBw{gOW3-OOc|VJmf*Aj( zyftCCk(WcQ$$rRUQEm#h?FbN7kHBJZkzqw<4|~YN{5R1d0Jf?byT}a7Cz!v%kT-BQ zv)}8iGSoN8C1UGIT&9aRItDqCUenu4^&@e&ZFx32b+~mJNE zx&Ai?_9acd?JoS}MZNycD+^Q-;T4vXhda{cujBcl``a<6uGe@ov)nTg5@woQP}?hV zg!FqlKRTA({e%jtAoQX-(~s*5W<^o+g3g`b8Fp1sBZ#yLC5D@?)=7Tv&2w6LKFMCY z#}WtM+JM~9!WgkWv&{IcrYb-pS7gbLm1lZt^9`uGuyZ)cg~KlYWz$v-MMO_zfauq~ z{idLuCux%eevo#**+y5j8SqZT+bL!JmxBY_{!c2`+#pUrs_Es9WzmussSGm+1%wT- z4uGuV0S}OS?zN%@(~TQ_M@nQ0YDKyTAS&M$)jjaHama}bd1}8$5Ge!#EG!j4V~Lx$ zc(;=X=r=GXHNjOCGvDoF%7iFIUpy&GyY`Xcz87+0@>wsmL<2favh)E5ruid|sJ7(` zIknjxyj}yM)9|}rClXtQ_k+Q948~ZRtU9vHPIR5TUytZ_1r6^srlB&DTb1}<6~~gg z+@IIL{TycgqhHMaEkj!+K1D`oX8ES|K=3XPgO#g{a;;2Kd{Dv+K@dQ7$f@nPG2 z^@}qjHCwCv`#bXf+ifl5<-CRaiq922-POSJ4%v7^2m`CP3ldw;jb^M38{Asv)R~2) zX=*WCL~C8Rw6s!#SdsXB{-^kZuOfeBI&-umrxHSnu9XQL*AN28O(>-^eLJ9u7O&5n zKVC||T0-Y2i#e;$Vb-kk>tuW2S(G!saNM8?Zc307m*y%7ptB7H9}C{6d?wiu(}H%LER-9&03)3ucsqgnT;k3sJf>8imJjWCnq;|JF!I&$TmubugXtNeH(%224S& z_n5caCGwlTo~(D|b|eI>70PnO2G9zH>4xS`6VxB};m&UhmT}RNJP-2p`4PrvyA~DW z<58sxmT5_<-I(@DOXiugmD-3YM21L%azP4JT2B@Dcfn3lm*cm_Ds=FD&=f+i=eHzj zel@HUc7i2m`Bsi_CSLkE0a=Z|(TRczL{FPvkABmIRux6l{zd>@YQdfqC7m67Sb{|N zd$gMbddp%AFV+x#x>3w`%3E+`&!GQ|8fBL7lrlcgb~@(e=WP2A;&OEamvUUAjiwQA33;Iu=qZPylnzg#a5!$M$yVu=tb zuNr4NtsnWmiK<7*+Xi~iF9*1 zo*=^R1^S?L*tvDUb%U^PyyeSYlbvvg`XvtAnGEE=32Zd+-!2C^W2e?Dj1EcY#t{w4 zUCn5_imtRietsCWVWC2)_GOu~`i7M`k$WP;%%r?xmg?w}U`?yY%P{m|*puusl3ukd zV0lemC6#3P&u(P=p3V%?M_Z3J6zD-iuvcFe+Pe8=`d10if8q^jdjWAqVIsiuxOiY) zqENuAja&a|{Ln_z;epJ$2P|2J_KK{7xBm1pu^-qc!HP(f&Do<;be@na^Qm+lkaT$8Qv+=0zt}kSuQcb;17pvoMeY;H zr)v+-zVYvVwkgz;OS5s+Y}=*lvM?*xkR@UMMd(;<@~t3MqtZwkVVA6X_<~S z?*WWaz^d3V{kV~@{v@F4d!C#}V_+UwKCdYIyMSphkiZZyMJb-w9q-z&zvW{~N)*S4 z%vy1~jWEs;QC|n6mDUU^K*KZ*QtcAA*6_VU<%-YMec4pI|jy)V7q&LeXS$Ll~<|fa?=1iehIe#mjh9IWh>2St&`M z$)8@1EM;mCijBfs{?e2KaX6CN)MKbYI_YUeI&vOrYtmQxM|DNB-0TOG@6H)~H9nO+ zZ=3!6^1h_z^Jel<@CR@&NJBHTTHXp<5R<9 zM+&*JF64!h8`>3uPZmV9=v%dR#q~I=;xcfowZwCHTCW8GA5B+z=2C69i;-njw?dN>LOaNcV9lK@4%wLUl_OL*^Lse>|8#YCMFdRcXA zOyIzbT|b@!sU?kdu89Z?^9m?Y2Fq#7#$vh-9P5;6=|IXO1E&Zv}BA;8uw=U*MFT#o1IWoCmNDK&hp78H?Gg zQr|b=oOA{zh}6}$H5{_0mO`n=T10<_z_2l7r0-g!GMOEnc{(LGN3y6hk)bt zoj6rRIAXe~3&z_9^XVw6@Xx*5kSqS+dA(NRzs%N17aLgRKS%>SlR8GgQ+uZ({?h1{ zQ>Y3A$MB0RZgCzl_{s}z|*dEIvl&rhkudHkV8%0-k2$qN;<;jD#-IY|*Ng+@5Y&~+k3 zZN4+686MD{pl!!i7zV>{gYb0gI&;p#Iw@E?+6~#3a0xSw0|Fddz={m#G!CHc-Y~+z zc&$)PHXN|_{Q#*U(Ok?4vzCy+YE-Beh=?H2+0*foBoG7SW{41m;1=s@8(JbvSu`Cu$8wk~gF!eZ6aaVvidY#L*p>y3%A9U4JynRG?w*Ii}7Ua9_Z$rmF z7tJSIy@q$pZ6%vWwOdV87E5!%Tv@E%+7Lh^hs+h5e^0yohhedq(s*e8D?8BnWc0<` zQZxLSi|dWb(v)klo!?h#Xs;YCbuWRpmuu{7S_GrDTfd@T{OK^EzyE1*4M~^(vTya8 zM3JD};8h?nIKu6|(dxquDmINd2kzRm!_Ia342fsZo+d%@@3^y-nf@~{O<_=AD_BQR(1qf(JY>(IDi~Hx zFeMFAiUpGRbr6P$gL-ldSWj4@=?ogNYI|-8q%KDU#hJ~$+>Z|GsFAT;f{xDtpn@2U zeZ;94gEbbQqm!<$T13$@Li{)a@g5g~o#YM6*H!fHZ^%mvmi4D4Yqe|X>5+0tI@rc- z>NyZ@QS%v_pDrgr6#~EdSp2tjy$Wi3scYQGUmp4Nx1x+6LD)nJHfg*Hj=L;B5c+1&RA~6 z7oQm#9b+8MU)ZcnF0UDSKrgpGn8-DsJx=_~Jb$3BKhfUclvRHg zX=kgwDx93q#0+|)U_?U(vcXoA8E$Yb?omg&#N?=0v5)7dXEIc5Tb!iQYQXTy?eKk2 z^c_dGAfZ}ii{+*5e3>cg?8P;#CgeEBEoniDhjCo_tu3{_YhUE(r0pJJoz~F#brprl zKraEMZ?Zw}LGVT8&lvA8sIcuQ8J)eV(h>R+CpyNy;|y82}{0>Il|T=<@r;cSYKvK;n@( z5^V^XRuFvqbvYJjJvvJjd!VS(ZPJqi-EjqoG4%0wmW3BIDaz6B#G9uEVuUgo_2hW8 z*Vki?f!_C69D??pHZty|332lR+%6t|DgalK^`OOBp1gQ-xi~?J3&DrG+$69l{4adA zc9VP2pgmI-zbE>Cc5y4s?eQklwgN3UYEH@!X3-n0=Y~IGvwAigehg@Xq-VdL*bbsCKjq2L}3#lw1>D#KN5_M$beU+3czth10syART3Q{$*ap|?m z+xM@;f-4%#+g7))HDL-o8q92PV+pKj>AijU>+vc0X5LSm@g(!NhZ|`7kz_SG(Xaf4 zUebv^lRq9o3&*~e-g$zDA$ zqV)Zbz)r#>rm)4rKVb)%rV%yIs&xw$JL8Pm4`ILC7B$+@2G`W8S`1V{2B<-dc8Y$D zX1~k%M`QBOA^C2Fe~ZyC6-ak^z5}Or?W&LtXX z9z~XnB1)?WyXGC$)v(iY-(!tF7!|`)dBEn~Q8non3iTgP3{K6C=?8uVH0D7h2Tb2Z z)8vjWicHx*h|l97q9h9Tq{9%7{rBU z*9fYTT;fp8lJpaOKb9J*M_0$S895^vFNkc2Fg=?LOvQqswPvf+kR2No3*cx2=u$jJ zIeu)==E&7Q$~L(g`B(MiZE((AsD8`A>ceTpy~@<}UD?@GdJ^-l&L+5+dP_R0s@zWb zm|8F*qf~YfBXs--I(WMdmbm&w5Y1|na*=e;kLmp`nMomYfs;wF=wZsYj@oSSb7%@y zFEpR&gKwOUYZ(NAsN1GnJESIqm`O{)Dy#;W*wwE2LLg3rXqFdTH;^3l?%S#6+7-Y;V zi__3Zxg?o|INKM#TAJDh8w#|q43{qQH!TVI8VV(6px%;;LTV+fO7`jzAVe>r5~b!N z3*=@!!IjoB3gVX-`it-B1w_6a5s6>sx-{*V#BB^=Hdw6As=i=HrW-k+3g5-rKT^Ge zLc>Pc#$Ih*$9_8Sku!oO^%QBkl=JO>)t$QiQ@nrYYcn5`?wTqu?n{DS&$!E0G(D^`*cd8S_3T7BP^8;`=JKVcRGDpiy5cI0lO|Jerneyh44I${dF^l+_FJCXSiQg(C8h(0o z`(=+)*rjKwH#h|Nk8@??s!AjbI5BpU(AwHevzU@fo0M_x_0Z#o_0x?2@c4- z!qG7^cQnLaO7|WP;=l-o;6+Xrr>79nrEuX-FT^VaJOK(nkw8>B6J{EhXIDCxs9|xF zv*<_#u^ZD& z&s~3*LQ3k(dwxzCs4?k}x_@WG`F>i@-(MIrlE@4;O?Ydq=*VJ`=6LNvi^@LRcI}6y zF^W04T+EnUgw9^h*$W2v^hgHj7s|~!OO|z51}We}|zvTc3&*dTv z8&;m8>vjymtN{X4DB&s&QZ*1n%wg@_r=R}|*2@VsEX7;GYp;}T;V_;Eu@vG?*j}(i zE41pg>$ISKm(n)RNsq$-NH;IH;AksTL8}f&e2)>|daGln?9lF1nxu`z%*ed}6cp7} znjQMNr{baV)HlSNt|TV(a0b-^;PS`L75J#AY1^Nd;q3x$Q+(gPR%{o|qLMt?@E+F= zrO{kG>)%vL8xZ&K~p@JvndwVsShlS z4WLu6Zi7`>y64)WHB$?s>OwVE;~^8g9YnrJ{AJ+>_!|+79Ji?s6h}ExeBuGx7+}e; zbNbPo3(vEN}{R`etB)I++r_ZfS#{PfSx&McXFzuh9_3lC?Hb)URRr4)$*&d>aU8Az0sUWwcHn_KC2D#r_~WVkCGwd!CvkQxVt@^$2L z^9_y(0B&o*kC|ALA&Aq%ENWRp9^Y<*6=x^Bcri<1)(fY;7w~}1<5RC6(I>}E?zq-G z+P`{GVO4* zqi>tqmd4gjP0wxgg4@A$yb`&B#(lWa4Fg!9Pd)+-4}7vo@LIh{p~4VsD1rM!QThHu z+<2?pC@|2Ih%GZWe%Eui;=vPo^-fx{2~*3|@Pzp^*E#pU`lG+`chlZKy!$Q5(+@m5 zwV~g&hQI4iF1?JK8P536)F9jUTc{}5t7|j;Kj5Fm);*e`%~|L}5=UOF%>iA2 zJ7kH4d-0d2vDXo2aG7`8lFgli+hRJtWjoF8vkS(9x4NQs2z=#;+ci`$U{G2^UKMDTrU|8mfsbwIRME8%dX?2)2iC)E1x%|zc_Nf%*E>Cv%0z~nn@3mGx#Q2 zI7&+CtaWtB{W~lb)EQxbaz0@g7{DOH@|X)g;vy_GWQVIbAj0bCh2ST&CgAZbRjp;| z{BapY$S^m1UyOkgK%6*}uqgSy=Ax(`58o{>b-IU)b@(x)QS(2bk1et1Tu{7MFMO?Q zeFPcrFPj?c2n(feF`Nhd!uYZb1?6c61FO=?h);D$&Hsp|K56w)X!g=`aICrKM6?vZ zN35xw7K7N8XdTX$&gw18km};|WjP5x611HYD0B{LzGm~f^~idcKLhcy{_y!u;wB0% zc#0={Ij~3Fhts7>qx0M?SYZ=#6z~hL+M5`;wVCMbG{D0&OD8~y<=#2QmHl$L>rL8< z$ylOHLZn*ICznBz(D?R5OzW3o-%D?C?A}TWESK&49yY-1At|^y59+JD1JE8 z^u!YqFkhDl3M5Fi26u{-I-JxK*3TKNv5E?ym0~HsVrXBd= zg$`;+BmKF0^k3@oBg>CeE>4rZONdW*j^E>Qm*U|=kB~-6^up~oSgDzVid;B)@Zk+@ zrX7U0YJMnVhOB`@nJdcI+K2A1WsrxA=a>*f9#<7AH!{7n^(TVK$58p_D#YV$Jd!5i zMMnZz7d!H{d_&2R!USEg_!fu^bsazMJ!SaQ*y-vPpyW>2_FU$yna}6E^(PGj8O~C0 zY24s@Sktoqb5n{B4GZu~t)CLmfsF7L%_~h#%R<7Vnlc2|B8U0Ok9$hUp61}Pvh|yN zD>z?dSM%eeS_-2Qd%_z{BJ-4`ihzDyS*Dv*w)=<)S>6o&r4Y84!-Qeo_}1K-CaaH| z8|N`0dq=}9HI2+=0XVA@84Or@$S{WBfZ@l2qex&Qw`~pM%LID#Vq}#F{$ylg1+$+O5 zjY~r3p%hmN80UpwFrMtqdc&lBXlWS&wOR;^n>IjPtPUYfekV3P{Z7gN*%Tacja|=4&Q#e_Ilb9Rg(YfQAKo z-*EU<&nB|sMkQ{MopETG(y>wVhg}<}+bKf%Wi>>3K$bX=xZdMo_F@sQifmnN-sIME z^yPq*^HrvI+KShRUx?W{PS0=(ynsIPT11y?tYfI!=a|^@-x!J&0kz&NNKNjMz+JLi zS!9<*swibI(RV~UoLFp?TvCoHe%tHFRcd+?!f zcm09hW$VKI{(+&pcW<>Z{gx-S(9uw=Kfog`cZs5GL>97CfGI{*Xpau%uMxXQSIgP` z=s%Y?OMTCxB59bg9zMo*TOd8gzE4GjKhG>7^gWhU8W*lJ3v4Q4%6Pi`=l+xzZu4^Us@_Zyg0(f3+TqcJN(*C2-62PrczAhEj z!*w$)5!ex@aZq4CH(lM<7*Fn4Q{`Y~_IfuYAoqidh;w!0Cr9xxA<*!< zQsYw!tkb7@vT%n_IZM^JVw$|e?u(~}rmYY5+LEKyL)G!+k0=8$KbwD)^BKB6$P~1W zhbNZs+QE1B5|AF~)gZMrm}8eHX>N#1NBjJ7uQAUDl_?Kmq%0lbF?D(@D{V-H+N4l* zERx3xiUMtIbJ76+-)?09pE??^=~cApAwEKw?EKuei||80tU+8@Bd|nbHmz6D?LL0HP zPBvck58fFf{k${`a{SzPg)wA3#<0DELaljrh!BxA6*P98jKV!=@x#_V%KyB7TKRkR zr9EJn5NiGLi-Arpy}C@AfY+r3Duo*E+@l3h*&+cpH)Lz?iQh&?x;YR3URQstvvGh# zUJ(={7HTa=kW3e9Kj6aq!?)kKSmP2?!pmSa=Vh3PK3rumD88GvN;z6Z$yE>NEZQox zWj+s4U}5UonDB3AX6+r?bxkUhD)racaCiRAo!BU@d7pRI4tHcIH>Y%F=&^jQe^1-K zSR(_{_i#XiS($P3!kOWg4uYC-U{3Y^yJk&jfk(6j{h#yb6$l6c6Z z=p<=HsBFbq=WcY&zOll7d#M)m)3}O-&~AkFv4yd_{;U4li&(tr@mX}gpP*skH4Cx3 zs#Z^Eh4#9>&yhid#}?ZQ!*|M;Z!y|Z+fB{Qh{Y1=`OW@pbQ-@u|n&DPvpE{b%53?yb3)wck+;aopRfF zMr@MZGSR^Y94R-5ggy4PirStz6|PK0y_~u(f^TR=BJ>1@9)9#_0fS3)E0lP=7ap+L ztt8co7!4cLYgl_=h7Ak0(glnV11@Y(bE88?=b%u9frj>aULfax49+DA#E=|nMA3x@ z&OCF`Oz@{_Rra1f{~fnHeyW}ACgW6332d|YfS{p!ZM@3gb$BpDLzqsXD!slUG=I2fMLT2&uQWf(L?^LqmQA$jC zd@fUjM{^Ltb*4hEns-p@ZY#6}3iOou;yhD%1p{%T4_~=8i<_@qzCMIPXpW5U#^a~g zmwVy&JJV2Vo7?R(O5^2}5K)#dMMbH{TfyF%_n~I_8$bqMY0K&(U~j1FO3$cv^NK{f z>~;fv#x$Ai`Zh8gaLP?Wl**J*XWzmFI?S}!RkW&~Sy5M!7PFjZhZMNg+)a;;OSKJG zHu1t@#BVWR^Bf^=IOObeVsArGTh(_^(O7!%7c^qhjbspiL{(H9q?@QZO3#CVDPIJ34X!%y$J_ElM2r#b%nLiOl~}5Pd?Vf*=a&m ziY7Hx#IX>1D->H#8@zDk$cdYFCW@`>bEvei3`lJ!t=T|0-KJlH@44@8E2`!(iWEf- zYPPiUAE$_7^#`JL?P)y4Zo0hcvbEQLa@AS2|7hS))1{| z#D9z;Ms9b^QrGhc`xBo;0iAl|9`;PiG_lgkD-`)iGR)ZpTg~`Ly&;)w5)V%!SKz^f z5_FgypVf+1vsR16cAYYVF#5@s_g>QP!iaPpAEmki9SG;6Q!u6TJP=u8hMW!4LAOeFxgHOD_&kGOJ=Ek#P)7t z+*2iAzpmiz6D}FObNHa>@Yr@IqH%$5UdBIFnJyLZAAaXGC3Dgc&5=SN{RtQ}T3j3c z9R8vqAPV#;s;8jxzE?nquO-q8@XxO^7~@F@TcZo#jQIh2-2`Rx)W! zK#fNHu_Xt+I8iz~$pn#W&iXpIH5uUVJI!p*86!EvCzp;$O|yQbDP;G}zhzYA(R??} zIX8w~qTtjJHpzKJxyMz>kz?)%;TW373q5S!`G-ykOA}2}`XMX-zHXuTP%I#^k2os; zLqNR0qp?yz$>!G)m4FW}-zpOq0z_k$0qu6ov)q<^XfL|Do7tZIFX>bdULO?Br)T)**rm%adV@o!S7DNT%PK^g>(#vfwwJT3+=lT=5#HNp1% z>T&onM1`d4`}LMoefvH5X=~+B>(!(0%~QB{IoaRT(|$Ba72&%`7Y%>(NM}6QU*@}2 z0>_oWAH|tKHin>?3i|Or$ys=?TDZcn%2fdKGq36FzEFw)!q^(sDMPm7Z{2+2{`08{BlH9s=R>kLPn z)XdhsOLnoaeg7k8sKND*Q0Uvl8ICe?0|Wg&15p+7J#}oe&ukJiSqeE{8Q~Ay=)Jmu zirhSNxx%Wtd~wU|Njq1>2a~DuKQG9q|#THv#j09w6I@+ zo?(49X-qNbT)SAjF1xOfKt7#+av-rJdr{uOj`XNo`3F`-+n=7$8pCnc>l*(|yxWXq zc}sx#4RgWf#y_GA-$WrGCdKD^p(KnF;ubU8igM1Jj;%)6_DBKVEDSo!l2l~Gwxe@! zRzscmU!E1H{Hf4Nu@EKaFN^uNy>wl()TlhwQ1@*He| zm*syfC$FF7M+GGNQXtQlZop{R{>I7K?ztU9bh2$k+<;Fe(X$J%3SJIM`X(v|h;2kF zvUf&?yU<eHGW)QOQ4Cr$+Y4mZ%j=C3}M8O8thPo=f{w$8NUoGWv`l}YPH@}?l95cFF80W`_dm{z0zmgSrnet{WSOb6$DhOs30kWkqro)`89olB>Vp7SoIG4* zrPk{`$`wVCTq-TGeBLfFvupH^VwwL~RoIW@O0CacZ{sbiLF``oE9_6zZO9LKk-jNv zTvr&>oHc($WcZr-#pqu%FRE|8c;gpTPb|E?`e1=So(#F8<3y^b6?J0bfv@Vd9H2!e z9_1G@`#UH6QoF8m(GXJ$626@nNA(rFF?Q#Rviu6wpVMkra60d>NGcdU8sbB@Xx4|s zaGm8*7-2X}3I|^Rw8&k?pQd)D@ zqUln~>6aMxT;k!UFh?StDnum^cqnGXPZwRXerSW-SUiS|J1=5WViJ9 zzgOtN&3I9xJ+ko2o(2u9D+Xe>AEvoFuG?l(A?MZXZt%uWm^v<MEECw>P7`g4o!Ds0J$$vyazOQ2fPDU4g(ZJQQ6;!g*<=ckdd6T((c!rF16d0b6#b)b214CE%VVMw-$!Y z-gMFe41wuOBEJTG$wYfD44YeucAf68FSoXB@&7kO!T+7L*}W(p^V84FN4r!e;D05R zTn`)k=kj^36n- zn;ioS_YG=t_O%X?;`YHRsF#*M=Trm99Hov+@0Y}LUxJZ~*2%zpSpG=^?~@NoU4#te z8@juN^39xPPP8Arsx`^hmDr2C2o!yuz2(a(%fo-<{}w&SFx;?D`m{fz_tv5Z`)^J! zQK0=@0Zy{m(i@Qn%c?K1e0rLH`@cPAK6V;;HX!p3s8rJKfD}UmKvd0j=lKZ3c*Fh| zw${hpX6;w>g`5yFj;sj7EF##^%%jb^z%h#S?~6Y=+o+I|bz z>l4YIMzl3;MojgtGi>DL*bRwj#vh`7$u_3oIfN+}V5W`T01*q>P8Px9l%*o~>kX(!6{bQI&Q zN;1BGZ8IfFGqTww)d}KnVs5r8I{WQAB*XK>q@Y|2uM##KlV=yNWYeSQ{V)1IVHPh4 zcOSW9ShP$fxn^#OIO5*7l&=9$;#IVND9t7}g@Nmg?T_go=e5Myh1szh7Pw0Yzi4Ap z9t8pEQ%I zveQzhOcf_bc& zPb1BtSzEG=!;{fHu{Y~tnXdUu1vWPWlCPrBh5@x@^_4(IMgBsS{L8=_ejae|s6UNN z9;qc!-gI8RD_f-*5e#jqvp#|?Pxbi676f^zAk{VT6WpE6@X6|qQ`A%0nD3$7$!^G( zmRJ?b2o?tupm`nj?D9XiU=*a3n^oN{%st0=D433xgO-oxgE$cki9-XxRI3SxF3W{I zs~d$Cd(V10K`V=-~LW{om!U$q6Rj7TQp?BVKK(e~38AQh3M0>orr4>!Y_6o^&Vps=% zMKU?LlL?_%SrdgQ8j2uBu@vWbXq8g+3&dHJhsXkT?biyEQlSw=caS`x;!<{_ z%`rs?qvKB9SylSF{gRI(A1rcRND4sK*e;Byrn^a6LgTn<6rFD%p67woh{}qY_=e(M z8wby=17uWsqNplkGQeBP@Bbj$e~V$KvvY#3*Ojo`rc<@gHjfEm(#y{M)T>G4|BQk_ z{@lJm6nq_-{GJ;xsj?;Fr(OJ)z4IW{ub3r@51PM{PmLpU?6%x9)$Hh5(w zR!RML`O^l0Akcn!1mAD^0Qn-1Mrgs=z9PN91yO&8K#qq>zBoVY}3pf2k^QGT0W_LRweV}I*>2esUfkte1 zuFB0yp*Q~|TBl3zj{eOhS7`Iirrj5%4-H&7UmP^&bAzg75#yJ}*{rtOH-;YZ5vV-K z17xCoEOQ)J-IG+C=o-81vA$KM7TPEbS?N>oPj*qL0^U72QFTf2XMOP`)>IkXvy+o& zPacdaIp#`2ogJEV#7J-0tG__uU7GC_-x`1$-MHH2UN_9G(vlmZeVH2Qzg9rG29$e% zr*ff44gYFmg%Fmes-ggCF{d{9gyFpXQKM8MS~GiPwiC6yldIprS#MkpSW}odZ~ONF z8E+iXdc}XrX6Mj#?f1e@wc$3x+Oz+sA{7lm&?P2_0bN=rSIr6gw!;u!OWGtrWeCl7 zI(Kde6Xqm1M>HtD5+*Cd*5z>-93R_BK^x*edZTgc40$0;-UEL+QoUg`q>|hjvhAWq zE&l32a|c~_|8+ZO?$u75+!;PF*|?N3R;#-1D8B495+v`O(-7F<`JN(l1m7%DoHAa1Cnn6WgDYIc{Z!$&a zDF+oSyBt(UrPU1IH=Q5)R$95ZrrBaU`NL$c?uGpvAm~+kvL7vuH8td&sR0 z@@nv;=O!}0_qrD`>Vuar6$RF*Pi1rm6eHB}Y; zV12VjU%=!ibe`4kHJdfEl^OZuo0=)-@@z%en{@rDhFK3oeb8&o$kiVOPdW>6DKXLU z2M}EqrtIj}EYc&(-KwN+(4& z2Lntp+Ut$h$_WL)e9V7MZjPag%Rg1F)iGVzYw|J8N}0qLIc0elGGjms5xZR-t@rhR zsMWW7T&_OJ@Rf{AiIQS1udh&s^4u>l;D!5K(1bnkc#3gdNyQu>_dF@9 zwNF1lhf}6r;p!1U2!h){D>tdpvE~fyot))iV17pNWCXmLgd`!n$g?qM6|Nr+am%x0 z;Q)~n>ewlX8sVpv{EKNEfwn6u40GYHD<#8wcA)^!csYeUHCCthlEKdm5A5i?sO1oH z7Z^BAwO~gm^^No=l$nEV8Sd0UZgEd}i-3aXs!+1&il0lTCAY$~8XSvq{C%jn?hqR$ z(Z0UmKOwj==_lvycL+-3lL9!WQy`2cWn2JyWILGjye2s$d{8B>hP=YZ2tcd!a3cuB zmA{4OGb_ezB7^Ii(yXJ^KP9ajPi>@s~pzkfpVXT|MpM5-uW{u_@Xi56S@pBE-X&@ai zU%+{Gb8WgtnA)ABLl8h{h*Z6q3lu3qu&*2L*_s4;TKpk|K?}QMLgq}{LWTERXWgat zF%S7^$79Z=vAy=GwqRi*1Ht9jkqp_1gVi!&NXDHKbe=tqQQqWI+I`dF!ARteu0wH| z`XR34jZ`8zm5_^LC<`vL`~VsuOK3vaLi6RB?DmngQc7}AAv3RZ=joNRUSs}M4@ahh z!PfnVN%_^C;~35)#pGTZGqh=Dd>%{XM%S8?N@N7>&Ot)VB~>1;@G#YZ{07cBWWn4) zT7q$wRg%A=Fox+GNuCI5s)WMrK`ocke;h~c0?!CWd-LF~{+d`L02Feqc z#tL+A5-5b%Vf8+V6SRYMr%Ar9G*0pvR^AS@NKDg(J|Op0=|_cx^nA);0J4?Q8^FVu zr~(daGpN{$g#*(g-0F-b|?oWfq+SS2%YU&`&t{zrak zkgqh0)t&?T$bhF!BmaNhc&wkmg6gEXjuia*LCk*8#@}byQ9ly(MAY~3Y>%S_(M9el z)sPA^LtT&19*I9GH0mtrd00wRB)DUO=T$r-pRV&pA2F}3Iv?v$0cmsMPDvWPSjYEx z5dck>P;g8bcz`vTiO+LTDJ#pOe*HON<`R8)ls_sY&-7{RepZ)z{^}B`P8x*N$f`Ti zP+peiWXmj84`_6K#==^w0)zlkRGua+vIt{FCmM$%o!koKqV$Zg$ACB-`n!rQ3%ef& zUw+4`G6+SD*Ei3TTtW|9d3K>0wB<%>I!phKrNALHF4kg|R<`Lym!R`C(YX5D?0q`u zWmUOgV@Nq{j=~FZ|ci|V)!Jt64buzeyOTIK}9Twu;{g( z*Hb-(^7-48#Kt4c+l{uK)u37VG0Ra}RUM$o)r4@Ca^|tj+k$qxsl^_Mo`p$4^Jkx* z)#&f7018(O&lGhgT*xgNp%r0)DWBl)Rz}qhX{TYrJeMS<{KjmH@WH4|y8;c*wANk^ zxhC~WP!DI+NFz}p@g+}8o0+~chBn)e)}$+^b_eJR=ImK`KR%FZOk~FbG5ceH7lhXwfU@A$YLmb-mNjjqUHTwAF)i0${Rj z7p-b_Y7;JD{zu3jVSu9Go!1B-(-#PRdPY0_@5KiLJ$(WeqrzksVszP5)gO{4*yv8E zd?BQc5)k9o_VTg!xY>|_HJ|3GgIH8Y&la55kJ^!M8_M6q!2AmQ|4d?BAdq{9 z&=@1G@PagFoYLac9N{iy&8jLMc@z&Sb&0_%T4<0|5TiDGN+bX2bv}(KDX@IGYVAnR zc?s-JE8+h6HStMO+a|Y`L4Ne*sa&lGu7>&rdsM4M@63EZ z8j&kY{dSO<|5^3Ry?+YoAV6Ps13s}LuzzlU4**@AjDK0w>E8uT>3A?UTof|CLTMxu#|7N2s z6JGBB^R0mJ;hez1w|#776ks~~8N{74h#2#OmFF>v&gXdB0;SW?BSzVNg-ifa4z z3sQCwI#`>$p?5Es!%tQsu~m4lQJ{&i0$B!z1I#@(HE~sND(ke^n1@JO{dshjma}SJ z5kK)4_oC%)aldhlZ7tf_e7Z$i-&)e2Z#m$W8&BGsp0Ble z#|6Pf?qB@R*moWT?diUjNf)|2>Vgbn?YyAS*bG6C>+DYDeR3rorC6TN&uB+DmRL*W z)tG`nC#P6>iOZE^(LXmC%w?A zL`5D$N@xxM1zo{S74764c*p$NTZR$7$1;Yp_w}!Zk(~~I7j~6|g$D;WcaeFAy!BS2 z8Lw+3{nW`s2OeaxSmts*sMCEFffAI!qa%f+5vh${n0sGo4YHN-=$^=XKDv7zUTCJA z=5J8)O_%Vd&U?X2Uhb;a=FNXWJ z)(vcuX$wx^&OL%Yd7uS9RR+W-I^Tteqfv0L4?pa`LmlI7hCT^8ai`2jFp1`%i!Mpb ztxT4h(9ikdy9YEaikGroX>(kNxVMtVNz4^IAs?R4X-M93OFVpf#|nzScYuzBsbhMZ zp--eYL|_26*w9DsiI27uZ2QMFfLq71G6-TPMS6OReQAU*Poe%1P5S@)y*VmN*spDt zO1G8fP1CFIPY3l{o!-o6PIgCO9M$%gg)9C=(kqGIwilC+wmE$`=d5A^;9Qe#c3iNx zrcCe^@9yEX@WfO9cf(DiGyz~z67WF!up9??S-A89nkwypoxy>QBQ0lZg!C7JzUxV< zGptA?KS&+r`1eV8g8l+3xVS;GB*%`THC=*MUb`{#$xRJ(J2QJKNgzK!mQdX%RP4Vy z=#jO7`y&?FWtUkp%{h4h<)zbVF(XOpX<_V8tpU?jjR{XsVVhYlvm=QlbgY(8EF|iF zIz-1Q@YG2Nx1uFE#b7Dy#AvA`8~^_WV&Ckeo}S&7OX!uXzF2F-Ljj~=fZq11#IzDO z^Vv1a)#kSc8vw+UYAHucVOtgE$4eYsYrDEp#!Few(2J^7-Yz(45{J~w1je~(QOT}r zy=)3}=%K)UGoTBDp=Vm2909lh&y^2vQByIk{2c}ojk^m~BD|Nj(m{H3+vR}DZ?$mk zW`}4f&$h4~kmgN7rXWI)res*vl1D?Fas2033^qfrN-b16eA$#Zx^7+%bQR=fQWIbR z5(h4k*%@jJBqb3?xNcza)H}>9Ci1hqac$koReqFHO4)$-Lc00#c;v@uqN7u+L_6Z* zm~VxDZQ&Wdhk?Yau(*|`gXaX&_{-7oSMc%vZ%L&l70j(k3cN*pe+jG1FcOrjxY|YaWgR zuIaC8R)gx4^MbUV>u`urKefC&i}3JciEAA{snud&aVXAUOdJGp?gf^xeG<7N4qJt% z>6(N+g@XT*(P3?))QO(FCo=l{YIdFN4gbU?P5B%-z&?WtHi*MDUyFHfvjQl5rHx`i zwY^m|;evN7QZ|hBqbTLGh)cVZaB3((Mu|qSkdKk^T=kyGfqF>*1}+s_Eu_9Qi)%l$ zb4}!K#e*Ux{NjbL{hZIb z?7wqmAkuqJHPk}2phhx-LFYyrpz9M8aNQU<0)jZV6t8!0M?uMNV#t9zx*|lTk;j5U z8R5ERaq$gx!H+r)dI^Dkb0}|glR3rp@vHY%s9mh5h?#DY6EQ#G3%wvT&JkW-Gd$Dy^=%bav~P7zxSLJV zKdW4Whhk}+6UV$=IPcvK;<932(n|L$Od^GLpHIO651%{>y&v4PgPb=6szD+YJw6GW zp^1}E+46I}s5ovIOr{e!KPeqO)ErZ8`FuL-{SqweKN^BH32k&!@i(O+EVz9e~ce6REM}1oxz?J&}otZN-V-b)_>S5q>%3I1)$SZhCOU%ZQe-@%WTJ<1)hf zOTzdM^O6G~=RSm&=&cr8oTqq?EnpuMHZ-#F8PcqT{k%!7X6ut;{13)&x>jp)vj3`r z@|TgwyGYoWr69DzN%h_)jRs0D{hDcwa7nGHaRkg7i(aQLNW@ih&cCaCjcTb!1^*Vm zF4{zkz|}Gl{LOewjLalhPIr#0NzpxDaCT!nMDN=E7M{-D4Rr@Uq;+G_e!_Y}7S|95;%y)Nk(8i1{|;u<3|d%qF-6{#S~`VoZ5_t3=3yx z*XbZ9-Ue#b{ij<;qenwxDBm!JKY_9Mv=+7Ct`k%v_K*6(fX@I5Kl&xM2j9oah|VTN zuD+{nrA;{B3D7ky9k->LDVl?M0C3qGgi_mOk-R z_A8E(0O54qvN*uR_kZ|^wOV>oaVxnpL`73Ce77J6=jceqrnwhczFxcncIgLD3;#_R(pwEW-B(XCx7%2M#mO{K{Ca>tl=tWM4x`OlIbKI(FDC-k3aHJ)9U zN+dJ|Sdxb5-F2FZ9I{3Cru#Pj2gKx_K`h_-WL3eaHhC@DluIeC_Dl|NMQQhGIvZuk z+KkAsdC^85Ee0Sy(=A?bpi_+f`_uJetlLBdar@286RyWEC#X))`eOhy@gtVX)ih$$%`pfVIoq%xc+Q%fO?=ueVYe3a#D!Z5r=A7%dH ze-ssD4)~|yZ|~?ZFN$~ojh&`WYTX^@aJ57gA!ohqXglex*KF`1vB^M_f1L3f{fXID zmwxYb?P$hsR~s_#ulSjv=ha_xb!@}$k!TyqmJMe4-jxj+U~8K)>Ulve(~Y*)Ayg#K z))P7HIZ+apTbFy`5_^83%U=`v)3Giw=3OE#kN7NKVVj5BhjE3!pcZp&_Pi|fwT@07 zS*6d-L$Hdxgs5YDJt-JeuL=UmXt12e`0(*g>n{2c&5csu;fI_NK$K*piz zaeBE$miGx&h#NBfL&uNF(V(T2?i>18(k!j7D*~OcSjRd9Mtue7cU`@!bG;i6IF#~x z<-cpGkbaOlSOgV;jOiwZri^r!ps#)-w$et(-Jt|D+Eck-H~cUprxC(HA@D1LLj7#N zvn84FWaXV^lNvM1$EvJoX9f~FG>uPMTJUR7M=_josf&sMq+rXp!biuYnN~i*m|Z2OkEq&k}~KoUYx_iqKy8(8L%34=E|?vw{gc80#gL_D4aJ z4@eV}%sl}U=2ort$Ge3Yt}kJOfzoPj)445>9Y%1w-4egk*N59F$3RMlrv~#nJ`fZg z8~QTKmYO zg|@-Rn}&pBt0G?93TWAS_X#lq)sVtRPu4ziP*6=$9n?vv(r!{EFzMqx|Hp2Vls-ak zYQM_MqK9ffe7yRhlQA?9I$6HX<#!qA#|D1z$oGNIKtKWbR0~=3k}(|G=lT1RKzjIB zyZ6UF5ch{4%x)5y{TH9L8=se^&z+!XA^842V3NwEpt7iJ++0Es?3}eB`}_(B(7h=a zx#zyH3=qE7WCeC!>dDNXk;C2;Jo$^$PPINlO8b=oXN zfA#%<+;kY97KRduXmGuwXbKK|o;br~rDP$r!7&(TYk-Ul8nquIB%R%vmnU0JsY45 zPpMpTXX1STSdo4Zg;bf@rtjQI)v8s=`oM@p4(y1^R--YpPiJmGz#bQ@rIgf-nduLJ z4?aw9w0`DEubxPf)EsWNBXtvA`RKHIi-}`BvhqVDbu>iwAN~zYYCy)-E&{jGU1dxNK$@o z_J8_n4)GM4GFTVG*-}+@)V>6c>NPO5c^;qCmsT&KT>}jw;m?5=z@9rKXk{=5z+74j z0pk;K0~M7TH-aM$30H1&G}s89Ms&xbd(uBiVSmBzx}kf#TBvhy)oHGxz;28(Xn7|? za5!s~15^ED1f?vVb!2ML+^=OHO~W&+m<2+8?kkZe#KZ7n!v5vF6a0yT03Mo6{hPi!hKrsI0Us<;|cGbYF5nXD#mWVB{7 zw6$tj7t#Qkj1#0LjoxHA+XxIZsQ)v2gaLIa?5Q2cDnNzgbjm$1Ac8UV$bmu9YFT9F zD6`BB%9KwgEDt&gQ;FuFBIE49l2b6CwX>k)8v8lj2MWNEfGbUvW`?aOvm5#)I_mF< z%M&--C2HEw{l0LG`slD6DtD>o4bspRR;YdYL|szOMPLNp$*v97U+#Ky_fn^Ah8(lLQ- z>8XAGyruYTca(i*&l+eOPm+8|#q?yq|KEXZ<$GGe*8k5}1slMMrO@ZR+*i-bW9Sro zI%of_F$+R``tsLmB2r~@+HKo7#~H~?p2$?+IuHmFCBmOS`r3KF`~ADF`E&Wt{&Pyt z>=*w_dps@a`YygPrdnr8f33JY`2*n8avjMD3 z&o96KHrKIXlRMx|0(apdP6eyoBuEk6J_67^!z2hRrED_WUNXXLn9e>G#|A{^mav+xKnfY=kJ4@40TEz1p9@jyW&z7EI3sjm)ne z`tmzEcgSh~^DZYtZV-N(pUOV6+Cl)T0(Ma=3G`%gXy>AN1W?+E& zZ3!2_zK`R_fNdZTQ^jAWHCFU9#EoHN43WV4RKJsqd|l)dyTxomI7KY?`vQtpr^voOwR8<)(niiNJbM1 zC0GlBVlpx$jtS4vuX?)6NkN^4o3BsHV~9EPG;5UBmRuOR2S)I9oj{cg0@-t-@=f1lrCzCutR*E3$X{vs>Cd|uui!xA6?xatV?}4I zB(N((^c5pYBy2z-5<}#TST%9kXWwZ^#@rYMUk#Nfr(&7?c&9*|eJ-Tcgv_T2FF~ML zoLgST6}}3sNu-Q)Fj*o|AuD>J%hQ4^m$m^Ohifc^V8Ll%znh}X(w}6C)&Cfq`VGVF zs6XqS`NMNE;-D}D6VY($_s^!%NHD7$(`=;rv3F*8X3oN9o5@KoKlqUPC3O-*jbmnD zX0otwslSwK)@KHH^8F-c=2M%CY`WS|~YzFCpsM;+?YgwR)2~)|NYWmZz8mG4AnM(p-$u z2DCPtlulKhK(#jm@6^i-GEIWn;M)llx{eA7A3t<5B?Ri?fUU}#`YH+b!fG+xArwJ% z7QUMkj(}Wq3nX|hcA&A!^buXfF-K#*K?Lk6Pa!BA0}_Rw{F$QN zaw_f3w|FacL8_WJJrCB}3zH52oGE}pw={X@XDyPN;0n7=RKZKT#ByHIeC}!AHF0=w zSal)A@00!##u;8pWOj!Azr$yW?~T-PfEJ0nTB`k;d`GP5KNxvv&c%|3 zA!$Hvhm`Ol!{_s2ZqNQ+w z1t|y`^yftfEk#J=vVt3ve#qlEmz}s@OrAeJ*1ujFBgvP9EL?o$$ycX|aNa?rBwt4A z_SlD?K~MJR;*-zr55mHr&|_&g$bWPr<@Ud`PXc}9bh_uC`oxscO5giG?DCRw`@Wl8 zdA9ViPw=X!vcJXr&(yJU{(t#5ORxP+_m@50o0!%wgvMu}0A2sj-mm;uRu4`t{vQO@ zkrVbwf?6XVkLJv5_mu5+sf`m@d)DQpYe}KpZ4@;wnsmiAu-o;;D=$A%Rv%;5dXEj_eJ2&MyfhytfLF)r}YFM ziQvobFHRLkdj6>g$JA!(?*FD=FD`ZMS;eB2%>o6o)17L+bYXdX_J8`n$Y?FU{|URZ zad>{@9CR!&)JbF*@lmw$Z}j6=z3I)wM?;H;BW5ndqEkZG{su88i+}UU`(O3;WOD;~ zW6OY85C0AIzV^mJ7D?J}1F%bP)5S?Gl9NA@22vG8-gHh*(BJD79Lh$9mHc}___Hy6dlfkVI{6wf zp$u)sF>WGAMoI3@REHiujR5caF?)Kc5V1*<`>62BrI8$mh~y4~tKn~+HaELa_h=R` zc9Q;TLGObzUhuOtF?R9qkia5#`%4V=9<+GI8be_!iz3TfGwl5F z5KWLp-U@0P;Vqf{!V=oIrgxA<%eM}ZmYu}6n55caIp1++ z2|X~`8ElgsL%7I8Fk=Hvfgx6+ikaGF8&7JEv!HSBIP2?^zcdSAyMx6PnwQ=^6J{@@ z|MGi(7RpV?=}alueS}0R{^K~MpNJTJLaj~guW~Zs%cu97G0;luwNLO7^gCs_HC-Ae z9wMVV4I;kiy@GI5=BpZ1X7Mb3A($g9GRbR%!e>HW`{iy~%B!qu$^1O&moxOJgo^8P zQ{d8@B?lJVt4@Yrfc0{`NmXmQ4`Caa=?`26B_o`*J%9-xLIr4}KlCEnDgkStGc(~s z#DV950{7WDXbyb10p~$JT(A5axV8SB6$Z01O4XU7D9XdS**;UU=0IT0q2)@>O(zb= z@E|i3h1vBpwn7;Kg|ghJn!k;41)gwXYK!vC)cWn?x%K%`c-Yd({I)Ql%0L2|adn?@ z6UNKs3RxDD9}PgtHAy|bvxiFb!kHpZr6=8xGM{6M2-8z;5fGl86vZx@yN9-!DN^pQ zq9e&(N^T;K$Ye`3%0WE(R)*F|f9WDQ48mks#%cCgOCb7A0f(1{4(rG-(H!FS6`-8O-^)(9XWxIUQyAk1)^T%E#0)Fgjz+DPS9sn z^5Gp+Zh)UcfKs*j|BEY3u4G)p-rl{{7yFZk7P!Ri%v%=kjgjo(%;Z=<{UeSXbX5+~ z^yrQt_1~%;a91;Rh|OEg0<(h{rKIM8Wq9ukB8{t*&|;~cAC!u!q2`jP1JX@N$o~EQoDl2VQxTrY19c57 zxC!?-IL&>+quJi--c*5xj^ zvgNbY3Sj}_5BM|V*@T|O{baPoes@b7!sLjuUJMq}CM=7X0Usv5RZ2&5$Dvm?kVp|B zTv@}2gBn?Wgt(XDq3~d&iD^_666P6B77!j$%0mxWhF&ORbCIcz@HuOGI%V{I%Jnt_ zACC>#8(a|jh#Rm6(AN9eW5=3PwI&oSsC27$y6UPNd}*4pM^yZ8)W*euZq+22l~FWo z;fNwqSQ#l}+~8-X<6@9eONim6=*P6n4`+7U@jKa*axBN^#>GdK^*iBXvPoB60W*{(`?z?3n%+k_l#qj@3oy z-Gjk`hBRYuZBhvlK&8l^M(XVKux_8KHMOGs{I68`G|$U9hNpg0_)MB|-l6(r`cpri zMzfap1ov?!6NYjW{5B0ZjIVEGOu7?Gcnrc&!~|`@~xJk;~*s$-DGs?tMs%p zL+Tr9(IZpjUL$rf+K;!hR&s?n=HWtNIHtj5J#XHQmz0qIy>eaApl)sgVQB!Xo`sQO0;}BTU&6i@`JJ~)oQHjQxon6k*gZRgv+T!}yJqwo6 z>ZW}A3iya1|EnU9d8IoJs;z2Hmzqty-YA9HgM{>eges7Qb;ul0m^89r849SOM3_8E zg;(BXwxKvR`p0dYQ4vCcq$`K~2;TfR`oIdRKn>a~#^&Y-&4T;;L(|`77Nh}fKlIG~ zMvMcyGUwf8yuU2DW%MunwaBGr1qNVugmUkBxXpssba+0u3vKH8(Ua3yGg*&u{s@97 zVMf)&nF4lOOI8obKHTp%M80b2lOE}sGr*EtmoFtN%i_-7&O@HfzsY_Wo%*UsT}@V| zTG#ay{3u8EUMDk+<&PNt-6v;-Nv|krpzA4(_H!WS=`f_YybWr1yiSA z{aDXQ3v4O(KD4Bg?1@y|dsC-efvP|K!R)HO`^UG!RAFCbAhRSn7a{oZp2%xHsHz8^ zcW0J74wJQKbk644Q&Ms7R`4ZXKCSL5Av{)5sEm)wpC|Zs+xy&%-$cDfMNF<{O3WNi zL5-1Jc(k%cTJ>pmHm9C0|8GIpGccBDWcUghnOS%lbFXIe%w|t)dK4W(IYE1rAaN~( zalY6WbFZB{TOFf*=IBE0z< zi%)I63ZeIPPaDC?T~)*&02^=%4d0shSpGBoLBCvAeS*ki`E^D8IZ{#IMly1{4S&2> zHi{g8)L5YU5WX|t=Qn;%Ef@L5>v;6cM&UhfXGTWZ0RKhRWEzYmy(_Y-Py115`-l^+ zw8wg~wp;;Mk(;VNNfs!c1UOlM3Bd5qw+JqIe4d{KR?iu^o@Rg5E7?De_NU8v-%C{| zb6=|du~+)PJOnT2#V>R>W{g3SON2dzg{REnmA#EsI}mbX2aaPJPXQRb!}X(&zLJc> z&+z2E;7H-7$Pbrn8R}V(ITHO_&qo@poQOi9ODr)Zp}FrJKMsKK13~B%F+)zT>P@XM zbNiCMb5CCK0Pzpvi1-X1q@Qufjkr7bUfheOuKuHy^Woc_S1ofDXEbbtq4r*>_zD{GR&K)1`+RHa@N|>_};U2+;jA$onQ< z9S+2~@Y25z5ryeg`_bff_ z?)T@NC8713;@#BZGZLJ2QI4GbK1m)qQqNqgvj{7PJNL%=UPUA6Dq-$Mc)w%xbt~Q?N6C^7N7~ zs?xC)Lie_SOENOHazuzZ$bwlRP}+ULbX;qnbGR&hO0S%T_+T`DVNt>(YvaV}NR=53 z$K^mQHEeAyTDG8vmnT0G!ei5V^9Hkg?Qqujwf3g$#*6uKB~3v17>t(27u{Q$*A^nM zs0HO3a;kpPxza3Bl;iz57%N(483?pCCN)iE)>-;hU*=eRH`99)avHO7fpEUU-8xNf zW`7%z>VR@R*aRm$SK{h>qLayo>%h7IQb4W0y!1jE=HkRbx5r!udK(}e81|!su9I-6v6KGCIW*r4vXEK_FWB=gL9liOnXn5{-O%-lhAo+yx)JnkqWI`pgLl z(-90iyx`yM=;7hu=c8W7X+P`?{ri#Tg;cFaJ|oS(&HXM2Rz95gEFjbydSEv@yD|s= z$I@3ha@&qRbQRaRbC5a z72yB3S`+U-eFbW22un-Q*cL$$T>8ejB~%+;Bc7@HYwqWs(1?Sq!u}iNHBj)}A0`2@ zSsz$uyROw*GJzkov2HJ&3;P0S4?Ju)^>!=*ANLKy$J;qUM4~QnhBHdFp9ek2d58%P z)rSDI(AT9Dy*U!pnyVIPBMu%lLgO|9^hr$`9}0)#aE39^3x4jS1a5esFPPgxhX1$h zgAVJc^(KZW6siV|(*1!PbU*0FOb9~35<=wfBj0AW>18`xNQH)if;QmM}lHc@}JD8bA}sD>U-V{Rew7CooO;aRpg?@ zA%4bW8PJ>M9#e1RYIz4%ze}^sDrQBGRWK!$tSX=$!xhN(+&Dpn?>MGKH1D`tpBy^b zkjJpXA(*iO3B-q}PrbLyRTl5ZR8^+7sF704;?g?e8?-LdQfLRXU9_;@`BOwn)9!R> zY?W&ATYXmrVEep5cI<&d?4|(F2w;FNtzkA)!5x1|yw+KaoFziW*BV!inDE`q$w6On z<#Px28X>UO zj~O`MRlUxcH;ND-IAkvJ;OX;WdgR0OY6D7FxB|sQS_Ez5_t*yU+Zzfm;yUL;17Cov zr{;zipl=oVCv*l^QQ%`$1r6$O!8p+hpyF1Zb1N+^TOsXKL)N!2i`4kuLXGy$oSgZO znXmkJ?`5Vvj$#h)-d=bp^E>;`xrJ~4q3R2kzNZk(#afk`z2irUJ1WK)xRK4@%;{MgE@G{c^~ndhmvSrJ)zB1m~e_s z(Acq%*`3!>CHf4KXU2`owBnbW+rWBaMah22dWnmH`6{YGGRH)_HxyNyUYs>DhCd-i=E z63<42KIUIzXrFrO#r?qPTQBFhj2mo5si90>rejroH1HMmj%EUdfF+HJds)F3OP25| z@4z5Guv~&EmiNO83m42zi1S+X1S0;Yc>46p3hBr7_b)pR+>FGakOU7(*s0w|~EgRjactPwSBSDv5q39TaO5l?~j--#37`Ao785)0#($KwHvY z3!$e+#b34y_aZf@qT2#JO}6k2Z56K+B~N>tmTtmjhYAQDo7l6GoXB(GY(F-aeQ$C< z>&{c~<53|fsO%Kzpv!)Y}xduUt3p3oGyTY;@P5bZwe#Ab+mi z$2zZK<}MlU_c7Ys*8`{7F%)e+(v91Y#ZuIGl48KWT(8(cHbG80lPx%7YLv-sOXC$Y zUw@o6s&B^l9X)EDh(vKouT%yoWC57fk~$zpnxn$Mr&`+F{C!=>+;A}^MF=%dgG_vH zk0o`&1vdNh6>~&y55fU1ml47}P&Dt3J)n4-HqcLVO=qmUX}LKp`B*0Sw8vUY)UZ>L zaO;||!z))Eywm9wT$SFhpWv%Y(iHkO?Qxz0pcDg8DDz}!*SnE3=PafB>yGQC9<2T> zHb=k(lp2j+6bgf@428>EI0*nSg9?7XK^$0q*nsgBsDVDT0RX6>rc9vShrPZ_*^xF# z`t&BihU;$QamK_HLjuFJSuSjrHyI=4%qLtJr*osaL zC)Kk^c-Aq%-h}MSuvq-*AQCBGxL-Bi_!+U1Lc~z(lv}iZI>)YjT)aM;;thWXywD%` z-WQ=n5(Hxct3=@>3D}$zjcUjArr76#2LS^yzqBmE@aVdAIR+Gi$mIsJ?#HU$8bFif ze*EpjDhbi(c!N;N;YUrwto=8fZACShTGIou=GT1OGkXac4eU`;9*f+Q3aP1=86Kx%~*ALdJaz|ii2 zP3^E)0ui*=ToH63A3X0UQ~>u+%@)Ufo6HBm8nb=|uELxHbBLdK0ZFeiZS5_uBe*D( z>F62fUNo{XSyh1ab@VUt>LxW$X-laUi(Tn`MB&y<(a#e3q&!0U`PrvrqQHeGbf!Zz zqk7Ozt$%!8olL-lpjvUR8WZ4%Nhh5Ghx6&ENG3Smwjp@FqA;KgfA~>oyR8!PIWn`S z>0Pb+UFd+c10LPHcpoH$W7|7Rsh5lR?xbF-V~+;j^ZE&tKqcagueqv^NKs%dh0q2s zVA>x;MgD;Bbkc7(2CxT(g(TU=^S>G~_7yFZCqwEzk zvauOgu`hY7u<5ClBx;qIA#GR++n)Edfm9_Yw<4Ft2hA62k5cdJJ4U`dy^3FZXL0BVd`IR>g@xw2yWV&E3*JB62pzq7^gl>U1q#`>8M(?G`!dy!igK zPhL*`0-8Zrn@C>)RdbexXIwYLGz5Tl$ZiH+%KT&%6nMBX4EZ2EVbhm{7X%?{|H4{I zQEo;1>86d1!~cZTwNLgPJ*tRSW>6-Z;WRyt;j=yn_IjP;umKxZuTVB-D()6*u?-)Rwk${fWcE_l=E+ps6_m`Zrt_ERf(Ld6H6@ZSqA8+gQozFu}3 zewPyP>tQGBqT_jqxaNb%Fy;_o@-=az0htU`TGtg0c@=-duQ8Jeey6^b( zH*IBAm#00AT2&+cGp09*X|{wif2T($Uofwa(~QOm$1JR=oosMDMKi|JDxrpPA5@8{ z(@8^Y;|W>TMUvy-_wr(znDTKEx&cHI{MPQ0jHfGCIA1Oh7l#C4?@NRpNopF4R={!V z4T-nU!EtOb^RjfRDCEv+%2VgIS*8Z zX>t3yR8N#C0&L=>KWPo{>_pUhLk3k~dZt1nR%$S@uZr10TYH;b9!dr#X!yN$n-s<}^GC2qk;FXo`$B;c5g;)`Rp2H5FPX9Utflnya`X6F`UX!Z+MaA*-LrON3^ zi%rpk>c=OjMIR?7p+!RM*DO4knj2ssiv%{XXlOKTvi`$r-8GzsRJiaT$?)2SUGx7E zwW2nK;w<6LAJS-)HTXcri4I>QD5ZGlbbGy{g;`YO4iu?hy9HixDVv#2d#OH@$n6y? z;0<}Vi1BSYJ|}#)8&K?V&A$Z_+4Et~zrbXla1{W|u7B`x@&kN#DLpNK-{=S7=fw*!-`!9t_;u8vhoN*7vorQAAEA5@ z`AcdT0W~vuM>-!R{>@QiZ(~rWb!68h?KUa$r{HV%93jZXFsGY{5;^Bn`khkU~h z(U~W%mB||$K#>&e@bTLVpKJ-i@3C|qK?HAT_V-^bp?qDe1tx{m_<_+PkM^TM;h>`Y` zwS?&HM&x0;nWsK6O>^AB;$=oe;^Ze1XPkV2SlVpzb9SK2sueS@cCa5vy$19-{Th;C znErDHk2^yz`g@JY3Po&YU#oZ_3Kpvve-v+-+(guI*tr9E2e}=MMm!=AaOchR!wNq- zbJ1Q(JN>-?_{n^!`~WdLF$y&rv6GG z;JHs6IqbO*L3a0QNw>Wfy{s1xUT@hm>+i?wVy?ccmmiG=BDTA+jS?fi-u{xFSzHOR znrd^(n^9UWQ+ODv2DEP%?a+Y2TzZXmQXk>N1_8Yi4_-0JC8~UAtl$t8wckIK#?v-! zi;7hr^HWc8jPtC{Yo$Gc@*>ZjN{HCJEd8R%IPb3=X21M+TQcrmcJFp~y8mBmuI(r` ztnPVr#6txJ&dKn?v~|XR4r|6hu4Y{ckMNAkVkD+C>wZVFIR9Us4`2KvkTKKL@Im>v zta`BglA?dH4lMqMm4}aAvK3z}`vdhuK%kdIb1OlvY1POBc0v4534S1WkJyCf67qQ6 zebz{7bIJ$sB8uc@*+o-tjS}o*VrdF0G9lbc88;?1G0tD0_(unJ*a%%)lbk8`r(yL^ zue189UY<8+d5e_FIv-G}dFfC*=4y&S*AGCZOT+~qv7XeMjxmJQo;X6O&~J;yIWMVG zhR6*n!-2K-Fi%@(-`ebNBxIGtv;pokv4-l61ln*l8tR#WnH$>eBf}>zz&!L`>I7#D zRJ<}whf{SgskPGO<_RFM_aKV40ch70o55hRB}3MiK`r=INXeChuWDYbpiM56!Zc^+ zM<)*XxaS-`|E3(r_;&aei1{fV6a!#6Fb%~aP{Q6hjZr)JQ{KUs64Q@8HW>U~zTTo> z7^p(HQI8ciMblfDJ=yLgh-n?kw*uu%{P}ltr3Iw*CVY840hS;*Px4q@(0yoXk||PF zlo;ty=@k1-^%X;hjUnKlKQF`=5pWB>;nB8_i5jMX7S?E{$B|@Nmn)?GWn_K}LDVm` zSk@nKoM=}xa)2prD5pyp#GydK3#r0&*Q?FTE4KE@g)c`4BFB4v@a0|n1w;}o*wEWC z9Hg`qd!lkql5^IY5DP9Dt872#9yT#i6Wz2aFzF@ur&lC$C?I!_cY0T2(URDXBFZpd zeNtcadyk^Vn3dIZU8h^;#hB#>gR6TebB&+iV#0)f0wzG^-xDS;o`{ZAY35 z-tsIdT7d9SZqB46 zp4)kQ?nSY#`>Jq-PnU6vxHqem+QuAA(Z5D!Dx(-SBN&#+4tK@tc85uTSm8pZlAj~t zK5RNAEsiP^&G^gEHq57U6<@g2}9Qi1+XBn&y?Q3 z4QF2L{uC~O%M*hWUEtZE;EU%?-G@5 z@=6hAL>&O4#>dY}^bg@XRO$oeE0T-yqP>(LSzYA*g?OU{9S+H#EPSP8(`!_)K1F0J z>;(_1;*a4;sI{YIlp$B@lNK~@?~7VW#VM-gUqpX#$C+0MBU^$X+~^10psRJmu7oZj z0P>GMtnEz?mN7c5Dq&boZWHBFdEH}V4>VKB#snMV4}N0z@Rh=vIXU%52hjU@2L|Y^jewL3#4J4z7lKCH{o zNSN*WaEYJOo~rzm`%{p<|Ckp-v6K+DFwDaeLAdB+2_o!*-^D}K(g`iTCv<(G=^+FK zk9xik@=mx$2q;S}?6~qKp%JPqL4JLRDBj4(UwkaRbC8d98XP)uB92mM&_tSwm@ny+ zML=JgJfjh2EfXgJ7nTMlPVzWfn{--75PLtz3C5!96PrVlv7-Uk%`1EFC2nQd2l zxhG~%yf&hgMu>SxJR*ei$vtn)nIWDanb>WEtI*7eqgZ?m(iZ;Q;(}_BavW-*;4z#x{^RbRoJeq5M%CoJDRcI>I{wW4&Rso)ja^Jy_-4 z{<>KcdOS0eUp;t!Hy(E;x&J85=gA&iYl(Y(`B^Eo?{pI&?aY>6R@(k*jpqu_P(gBw z5T>$w7qRSr0s*b=hMq55qY}FM1+O_~hQE;vUM$KMLPJuCm|DLPV^Xva%RjMh*-$Iu zoLqt-XQNQyA=_1@5-D@6njn@a8tmzEl20Ng1E=9~UFy)d^J=WKS@n3X_2B9Wqd)*Z zLE?TLWhCK)K@4N1$^kUFFjB`0k##BZazbeXQM<@!}{>((_^GczlVpU0zZ?TlR&E?{1^ zL_;7Xx}~1oAQjOnte%QLwBMO`z0lAfF!71DWFLbwKssmC-S^g6)qW0r6mc7s0P%19 z$f^7v$kWyGli;Jj+g8x~KlV5{=Q7^%!Tq72Sbz$EqG2^32sbtb^H#|p_Rr7fk>xrs zE4icz_4Q22CN!x7h_v10Q) zVP+dFO$aDm7zll@!9qE+?j%>v32?@tkfyxzahcILRAbTPN(_SHGnb!750)W+=2`;~ z_;=*{9&#ph;gy^jY`Qr{5tr#2Q9F!x!guXV9WtAwFzc|^{>{^4560T6Ak!+qmIG{* zNYH@NIx)4@p!FI@tf>VjEd`xUX&~(AhQP?l24{1}EHfE~0P;LPESSI;BhaGMBt4Kodzmq6A_moENBj#AI6pG3YHWAzevseHh+@0|NS2LgBV`Sc)GO%|ko^Ux4qEO+wDO?Rq zW;x_0Fdj4B<=m)7mmNbR$ch@%aa7}QX$-AL>)v6bwjK(k70V5n9u_mDfeLkoN+f9N zMn&i~Hn!4u&6qZ zgBeC9j4e(@*;~79Y-0rwjEaQhEzgMXzg3oPv;FA1j*Bj2 zMC?$z56vNlFZhX`nEJXqMA#-3U6;l}w1NFmx^hVKtz8l|mB>`2Zb$YG7lobhEWwVT zewow)WF>Ps3{5DLCZuGM(M$}DRCJpl@1cVVW$ShplhzPg{TCbPr`y%07}32u6Fa+| zll6LU=QCT??W3F0JGk@R#MoY@y~e%;UfSI35Q4zqv5u;9+=vTxc_`rIJGy?!@Jv3- zZX{M47}`7P_91Liq>N%3>>&5b_p0zxXFV#}a+*c8M>dpMd?@b{c&U*Jw~`Hoadjpu z){X;|@|_xvQ`3|_xj!*ts+Cu?Sk?etj{+H>JaBvWheZ3D-PC)9Ha|H{Ju)Ng*eOgu zb~ZG_I*E5Yg*1TH z-D~g&;VCu_l8L0n&4_F#Kp+6|Tq&Fo0sCOc%KU zT&dsi2UM$O62>_@QT54g<(bKOQcSyYBQ4i?yj#Q)&w|(2K$_!b`W^%e;n-GH5!+^{ zM|%l+tEzFiISO84y{CIHyR9-WpN@I{S5mCl)8!C!8S_f}i ziHT$!1mn1NT3PDcJwgveMD{ALn5|8rQtf;`KGDMaW=8=?r5z9;_vE3@l?~#vVX-;Z z5yB$ib^H-gw!~cK@yE?75F{Ut*s&N{Apc~BXW$T>0A@+!Y9anUrx{-kWTxMddQLI% z?4>{iE~4WN3o;*8NNT3fA2AU!$suiA|D}NcsY6$UW~H?y;gKo4O)w$@WEuE2%t6L& zxt-Hlj4xroG1hvWrr*SwC2ZB}&qJbKqlzK0GP~8!fN6_^3$ATG;Z4B9$A!KtY98#4X8>_DP2Cy7E?Et96;* zeSQ1SCFu&A?cibjnHMfYX_-+uRL$gJO`2YUZtQ7>)X(ck2N15c(nkm{$p@h3%Me21 zXdTlB08Ydd!lVOzJ&fb|-3-yo(rj9^!w;tdCg{(;T+j}A7OXlSEY1yAz?$ShB%UtX zp?v{K$%sfesumY)MM1@&|6$Y(%HoegalKc5P@=olIcbW03T+AdqF3u7Mv|#GLJ6fLkpXw*8L{tIlk>{u~O2M=Byv>&2 zou(xHCS`=nNH0s}CeCd)6J4Ve@t|CzJQOq=DjBJmWZN651_5~H9Ha{OQ%%{ZFv+PS zwWsHUP0-Z`R)V>?T2XZPDN{h%iUeU?P5et>G1GZ7`Y)+(PZ6mqj#iR6!rKBU15o7{ zlQ|?#4Dy)kDCn$UY!TeoUVPOd?+X*>&6ExGF z^1C@Ffh`xH{dEx_r}_RK zt_8|+-X*f-w^D6KKJzw3d=3{pXPW??37582o+aPomyR`%AnoPy51Wr@?6z?7BR{;a zvUjI2#pNyQ+N3aPJ2LQ>pB%yClSQnIYq8i-qeWW1*8-s?MvB*wEgP0LqR(SpPf8%Z zDuN3iEb&0<_gIuCe}ac3Fz&Jw zn7ME3UPCz4Ig>5#+OdpEflt-rc@V+|mQXE#w^a_56yzeL2wvF2*(!!Wr3^t(;-tKW zDk$>Hy#f{39pk_ZlG1@!VLw85bS|0$B@$th_nfwcOETy~|l?)ncTZqSdFHNPa>S6R^VV3b05AxQPQk zTp=Nv&XgsodU^XlOfvj%ofR@+VBb*LMNJ?$(&x4j(s#*zrxYEe5SBuE0J!8G>Q?7; zyOnN%_({-Dpmv~iv}f7(;@7@5;_WZdmX~u6Mks*~p`T(kGzf?k#9UwK(ruhUi^L!n0%TUv)(boZ#0fp3T2nSA^}7l zGxfuA$l;V$Q)U%iQB#2Ngy8v4@UtY>W2Xy#9mC+RA=CgAwh%ddBq5GeInLzI^Gsuo z3`Z4x8gOH%w7=d^xY1n6he2!!6h-xG7<>2dKw0BB3}mhLyIyM=@6%}u;b%$zBvwqm zE=A@Hk0=Jgv*!wdvaBkXx^g5?!#>X3NXoj&x4$2Nj8eC(*q*dhPG4)VER{~^BO!KL zvVGS(4ceOG6&(alK3W5)JuK&WNcAruh!%CV$#Qm8>=IL&ie4S1DiB;xoeMVitcDko6U@GA$Mb%_?US<8I*mvgqE*}3D|!oOs+hXD$n9N zQ}cYOE_)9g#1&eIu21Qe@^eit&N|;Eu>1OCBdFw$GENn-jHBI z)4sMgr|@))A7apvq-py;X_A|Pa3sN!tJya;d2&-^(|5JHRFG5o;dNafCHPl9Hezta za&h?!F#sx4Z#`4%Rw6NA8ORx00b4057rE;4E7+zZl=l}9zgV(ukThSxYJP+8Mm$nc z6+F}kt~gNw1H|vHZ{-roh;+4bP{PJxIvjtLlSB!_4@9s)-olTKHd~M34Futp5BU{s z6Jo8k>7n)!m{vS?RAI^5NNamB9iXq+-f$d5?(I8!a)} z)dpou>l-7^AJs9#SIp~ekP~JRCZ!OpO^Gc36BMmaQ8y@{Y3arKv#$DZJiMh{R&!0` zAk2I$ILdP5?HNyg`vdegheM9g|3aqrK9@(?#Xsvh%{RA#5WniTK}~2O1=%q$q^LRY zoI-YGO?cP51A0b|CVqgG?oWckrbiptTV0-}o^j8VANj@=ln9RR5dg}4H3EyQe+3b| zd0(V?JH{HRg&3$Y>E$ynGpV3`s_Q(ofHfR)0K&J$hvyHKhoQM+J@m&?@=5e{|BAuZ zm5^;HXSjuQfPS}V@K5;bXx!8Adu234gHYT0Bv z%&gLPx{aO>G&KcLO64(k!MFFVo2O69i?!P}KVDK`Yb%h!;*wfR4JFM@$EdtF6(W{- z=f#Xw$n|xfS-L`W44)xV9=O>=IonU-JXL(xap{~>Z%%XzcAI`!D#k`Kp>bJuS!pqT zLK5ToFcZ^>Z$mF*0-E)>wb+;6w0z`4md}3ZHTdAWqs79eApw8rod(^e zrj?Bm^E9F|N~VM!0uQ>$O%0(3(sfX$75H%oiB<^DM>V|sD$D-rcfqeB9~F`RK)Pl; zPxDqpIcN{AkM?j3*v3EO6<(0{bl{=bnWBjS_$UUa23z{@;`T8+jWjhr>b^DY6*v-{ zX0P$~!s4$iHpN{lZd#SCP7m;e2!$}zs|6b-2WdXws8@2dW4rkzBv5bV4%}3UL;3HN zM``VMi+V?9=v6teZ@;N0K1zjnFDy@8Fwh{oURoLs+mQdim`VhVTGTtmwm%Ov>Y2t+?)cnv} zNi!a%{Sp!$Qnrq%Tf6$fPExW(@gA{z{B;=n`Q^ ztTl(!zajP)9DBeEVl7I?;uu?q7x`U?Xk+H(A1LQ->!3ha)1ra#|1xFZm?#i-imTYX z6WtjcGPlS?60{$FfNa`bHV$QzE-No-aqFg@m$yRBO~F=sYuygaL;?RX>5&OPvg-dj z2!X4qRVq!OyDps)ZwaOFe&ZzJZRPk~sNc&keD*jushNL|!oL*~t_~v#vmr-d$RGL| zgJUV%pa?M^zoG4ya{#JP2F+#}R3TdxUwHlST!!A==Be`MFv%qb_+=Z>EJr+`O*tpw zXT8rj)tx}nJ1hfnQgY3AB3RWF6kDv$Yo!iu-vo*IuUkMts6bBYg9i}6ooyOgrMAhQ z8`!ZUOTpC?59TBC9M989oFTcD#X*fa)owF7+m-u%LO{(;A|z(JZ{z768~h}$I&&6$ zi8l8FvasSwxIJ?67#zQ^sBKhyNyqTqv*Z)bUZWZ0p?sKgra&%k(vrulVxS+p!YjWtf6NRj9c-6C+AmC^ zc`p1%^JIbqh(+B4D*j4lV%@;DR^*WlKGXQTc=rx$3cu>jrNBJ7Z%22`&3Zyb1unL- zAkOzPr*X}u$lnz<4i+;~_+z3P{n=8udtIxEpBg>1RG=oyi$2P1_t(gT7gTwI8CFc9XCt>CpHC{f7nx79JY0Mf z07l?r_0>*uJE$+%h^gPJ>82)neOIh60MnPp*}OdM}UIqdxO&<#uEe`F%Z2f!(h`99!F_d=eA>Y88q)4ll>3&!Xc` z7om(_B!SD{XbXR!EqtS=ub5J+*A;yEJ#sbUZL&IMb=qLsBRXL5VuW_fLChp}?8u_N zSBJ9j$symD`5OA|5`3P0z>|@!M%AVtiVkD8MW3VAqg7Fmh*taM$c%z&DpcUfm8keE z>s=F!@(%u@WL8MjC8{#jwZ|iTj+U*@$C@L}E`+OaU5e9rA@Or?@4)-8l5l~*s zlax<`FgrmUoA%iE1Slc43&->__$P11{Lm87lisu565NcFoq?_v7f-*5ZH5$u0Y}_M;zwhvA`1vRzao-mWSX1{$XKW<<{61 zLSG2F0i)FLnf_Z`pv^gsWp=-*5!|%jlTyC`QD^&ftToO0A7r?P^(~{=mjrYY@jZ!1 z8mF~@#G z-{P)2kKbhO1QX$;2|(B^pxDTuauBt)c^)`OhuBGLtcO;E`1j}>RZaHhAs@PAuk(P% z%Br4^oM4nrp7aNh5gq)2=8_4hk?o@mGs)3#44OBA4P|FFqoVXS;4jzk3e~CIR%swL zDSsZVvLc1%faHm1a2uYd5^ynRhoVSIvc3)`IZm{T)nUm-o58)4TQd0Yu}aRLGtbJ; z>L(`5b|>}w<+sJ--6G3;7h5g}soy$`VkY1>pi8G0rKB!^1)Y!|$XS!Z{Jf0oa9YHA zSgz19!m->Rqtx`7y}HgB%Ii>JBC)$d&7|=p3c!+5*&&(e++X3OE*4_et(u|1f4+$q z+kKer9g6TWs#Z<-lQmvh`Tgk6GOp`!FQE9%W~5hU-KXFmOaM1@3TE`97N{s}nHaq& z<;mfv^ah7>eH$FEhK5A)ed?p?KQ2*OK+QaP?Y1-1CmKauE_ZXXdC*ziA63}ZAiv|% zL^gjc$wPgFu;CP7PT3#-XGnEbit<(|bZ12zwivcNBH?j^AlIl-{2#e;Ii{I~;uM!u z^+jZI{ATw@z4?@9L6sovzjMX3Qld1OpHQQZS9&4SmL z9tSg42VENT4{nWS4DDih@UF;!y!2Ab3a%M{eM)~})&>2fg}J*4t@vIsYZkDxsn@Uv zL|!>W=B3IS{1aVqLFPPH-fhTFVWvGqorD7bh_~*0?zms^f9+w2#1h8v^i1-_gb5E+ zd9e_sdjj%UR6lrd+WVEb95XHHSmFpt0T>m$TI&Z((jy;tGS!(2-G@p$M?Xm&-Lze+ zGq;N(Dxg$m&vKPKy}sc{pkYd+##~$`&gY2wLSwowdSsAtl4r?86tvejJvjmLX)~RM5!(mt<9)-k=M+Sr5R1V+#dY%cE z_gkVjyQn;MJsTzX0%b3FTc_XGBF<6R<_!Rk`#~yL(?sf?BYT+HAmH4nXaT6{_itH^ z#X5Hck}+>;wKEys4NKG7P+bf@ee}1%S;+75m-uQjk!g@-9n&hM$aCN3GZ!up$EEr0%)Y1p+5_(7^oQ2g-WPZjJ>|gHve1L53K0b6ENqy|?tNj1bO( zAmz$}o_sHa73%Qw1rR7=o;T+_;xJUbd4!4w+N2uKypRpWbJzDRly&1cTisV?S4$zo z5+5rqMkjMSm_Lkd&Lg-*#P*+gyw`hc+n6;N-YYO9Y%gjhS9pWCgCyEk_gh*WMv1Rp zJ6L`da=|};?rOKOkII~{zTSkvwEuN1JCt7zq-uqf*`IiFO065R^65!Yl5Kx;%n|r! zTf_s_Mj+zh2}zWl69r6>uPV8MZIa@FkJV1U_I&>+HkucqMZL@D7GV&lckbL0090e# zcUK9K!~LJA6Yx#JD{qd0#BO(+j8Sf;^Ca2u4UXeiK*1zhnlE{v-G=|dAJl)(_mpEr zbeZV}s2^1hF`rX@Y+BomRIqu-mz&e+_xPS4-d0I=3#SDh5(lIaVq#E)AJ~5*T#HE% z;lhx@%CCY4$k>uX$q{mIYU$YEq0i7E0S|zq!!SDu*f6m9bH0kU`00~eN+m^c3Bbfs zoLH{DmVQ?Ngva3`G*H;3!t=Uu6wde;ZdPRxn*2@C75vDjYKs{v!V2uKAz(M8?F|_BDYTk+O&d< zf<-P8oAD}>0t54d^!`Hc#&)H_q>B{!u-8MeVxV%^yPR;OmCGirX?|c!ii4E7A#Gl5 zFS~tWyj|Bp;UI@b995{IDrY$u%(#sH3A7)mX4syc*6{I0rN0$6a*x)@ecTrx1^Od4$)j;UL;IDdO8i z$ca;)MxQE3)OHl9E2(8JMVs;9esH;N&Z*V4g&u70gN`G1lN|@B%81styze65>)&5x zP`xXmq_*)*{W^typ)gx|?pAMLv#DvVpyGm>jQ$(Jyay=;k$OR~`_mtp8r7bb%Y3*B zp7Mw>3zu->tc2vuT{BwrsIcU)f~?28#Eu&Ast)H7mIjZc5jCghAu`%l(h0XyhLTKV zHn6PMl4FOSX?dJBUhM+r$y=JFS!pZo*BjacFXmBm^;sSQsyNcS)fIUv z94*;g4ng38M+k?*?@suWpo%><&5jNZyE;g-3e20_Syz8qyWIV*M?7IrqKum%+?E(0 zJ(}ucHY&M1B)-H{a(H6=c)Fi6i$oCo`(x*BHVuRLRHfyItLV_Yd@$ok z4a`+Vs%N3pVJRme2!;O~Om~{Rq2GqoSHo9WzlA#I;$gg?ky*gsY%cy52V*9=UTn6I zJmYr`7ED)&>=$mlNp3Yg&Q){gNLsjw&|J6{XJ4#=V zkwJ@=WjOre{zIT(@`9I1NTS+O#kx(4woK7)!k*|TGF-aQvJtQ+Mv5g4U{sIk$`INqvv5)XOX|5YFR_zMiktlf_m6AHu! zFa=dN54$t}U;Scl@y`zd76)$H=Ai6^+Xmv{-EZ(dn3imD@@~=3Y6Vusgb5Zru58JZ zWFRa?<1RbB@?;wl<&NuwS19x3FthTukXOywK2;>sLPH-#*w-@*aqL43#EgA!MgeS; zkzpEDXn1ZE0?Vt6Nb#W4aM1aDEeTDVt`(i5z?&&cT6{APjfXjZ|Jws=duFl!RI-UG zeewADq`QDFh4bii*WTgz_2qqQn|${4+`fgWWFh6P3PO|?-~Bwcp{6W3{A9+f!$*<) zrQ4rQfU)=y1O97QsfZgZYA3wW5EzD$TVas3I6UuD5o?Vf`z#q*@15Ldx;a&=p9!P2$KUuS)eOdHn{kopR?+au} zdPOU|T1w#Zq=RUaA-EY>)z~WLy)?s;x(itZP**Z1X_nF%5kg!V0Gh-oYiwp9Sfs4Y zbwIA{={AMwv#|nzX*Kivvf5baKkn}7Z@ZX~r(5N*cIqFEweIvhIaq`2ho-OzqV0q5 zeO*YAd8qOYtcuSot9{2ip4R>aBfH4CKEFFNsN)uA#u=%89jE1Wsg<+A zQO4h^`bLrn`HI%PY`312;2d1&$8w6)?5Hs8>Bb`MvLKE^DgFMh$V}U%tOM2Gha9sJHNoj#3l%UJ32`>#Dr zUisdVrf1Enmk%IhE!H;=W<|NAu5t)V{6=`7kdBhl_btF{nItaNP;+Z&244p`Cn8zh z(pp}-IHjd-0Pn9N3>mm5)ugJN)taOG4-NY9AE~~TEdmd>NwGQ?}W{klo{a+Jo0>O(EaaC_>w8)ngS_;?U)Dwo)*?^(^aNXK;hXvz1 z`QrkBil3P^!K}3pP18Uz9QuUG#2o&3BCVhcSaQ4v;=r?+7O4+T-`oUKTr^8vOt`Pr z?#in0W#-=y%+>%mK*+zTWtn=m?=RWCbq6mI8D<@Av|($8G}A2=I8%GZ3dZ7YrD3IS z?fJ>B3P0-$_kq(EKt=GpuzdB@m_e}9oa>{lS8iBAr8TQ686O~haj1q4XCQt{#&xVKh0l_lt2rcbUudRhDhPnSK*v6A4#Q;; zLb^3mFwwVvFTd+88TQgRVLeVROS=8jf&HULLla(ocIV*u@vsxkll#*@A{I$}UP^Tr zPzXRHDRnMY|HJ_;!8zQ(nt&MN)&EunBspHM1p%V-LJ!27Vv|r%-!t_Wg&oHNYaWrM z9}~z))P!~9>Td8gtt!}dTdc;MQ3;xXGiuh;Q>?&r4Vp_Vnl+@-YWS2|e6K2S|CL2# z;{4o?_Rf4VGdtG&plO3t&0SV~JIq7#dB!RJqG*6g-bE1WtA4FYVbw^l`tLU?I-;4+ zS%Lm~6Qn{cey;1m*QXOwT>4}69{m62@heww`UFy#wO>Q)J< zi=9u_D-!!H`XTjC=+Dd{y1rjf4PGc;>B!|OqF?4GS{>sGpLw4dysh{VZ567jK31BZ zEIe9S(GyR0F2eqryD9^+JxW@dUX3rdq>8!sGNclz+O`v9rY@*ABgX*?b-ivE(WXFH zI>JD5zCY0=CezrSl(nnr9_jx^f?N6*Tj}h6Y=eu2G4d*`bljM0z1d31d1}Z7aUIVz zt3?f3lh&G2&|mpNmCNdh$d7o7{DvS)%S9LJ0`JjwrZ89 z$#4n%bSDV)N_W~!7f!qB;;FKV%~0*psjSQS&m$4d%W1x18>dMv&zH4uy{SI7I3`Pd zE%{mX7FW?-Z;U`qHY7nW6=?Y&{L9BC|9Y*USW26eBlMlF*F@#*1$UFp>FLonmM)A> zMUB5Kj+YF-MxsY?C+V%Cx2!)o=l%F}`lL|>EI=q_jbjPyl-=^G6@(Cds5~N%m^0ll z(rc957C3=Ll?AB>7gOx(q@O1XF=v$g|F6)e4o35{K1;OZ9QX)C* zA`F{RG0O7kxJ72rsqcY|hAG{9*CglugXA@|3Ci;?qO*hF46xLYbEcw{h^P|n;pvUY za`)IW4ABlXH}b4fmd*8}yo;z(mGydAJHt!-eU-XFxCk1ZnNOSi8@__H^6-98F)%wx zpqqJUP3v>pd#-cG&bHWYzy_rFF(ucUkiWrKR{dM2F~&DEP!gZ*;V$fhaVUbP|Q-(42q<(Gsi)2j2#tqt#>(x~hW zv~1&nI9`UiYiKv&cHiLZ8L<&=QPJJ&x1e;+tIBtR*=!DkJbb zv4Fw`!^cm5n+JD+r>eXb&KLB1wfs>a*`8^UaM75|v>dkaV0JR+^p+)f0px@tiq#=+ zn&MwzgpYH&i@GKeG8dYRb1SvMw>yTLHDuKSr_RdoHe-`vTO6Qptn%+csxbq*pQt@D z2|Wg#cq+vG2;QvyDF{I7Q$K(ZBgUbp15z87ZY$3BMYl*0eB`d^J+uMxu4%ZF=7A@R zQ-}i0Bg;HdSImcCKn|UdU3C3+RphpXhDBf z*o>R>2KFpL3hLilvff&`Y^1*Fjej3u?~)Q4)ze5+3~x=rzU9(H7S3b0ju3DwPJ+a-18_grsLD_aRSP!DN)i*i}Hn45g7()>vmB`p2SKTf}LSx7n`&0AtXVZk=PSZbFR&c zN{=Dg{sPEdaRXKBu`XvThaaiw9|gZC^Hi&RO?p1vMbRnGVlBuo?cLu>Z%!%T@I#GZ&A$+J$xC>5I+K zUMg`1S_XTrHrDyS=goHAt<@!fBUWX}Os*P9u=8~4r!u_6+iDZ#D`TeIE~NcF z)DdqL>+Lpq4HlX()?8!{PtEU%}9=c4Yo@Ix)+pw0wXVtOTGMNb4KLB zV!_DdZ;m4Is#xFyR?g^^!pnhY5C@*2@HQEPt_x8BNCcsikQgz~BrfUElZkg5Iv(T2 z;Bz!f4`BS>BY$Qm6*5NYRm@0~(IYevB{FBnT?_y3tLCwc3Fr;fo>@8uEm&k~S&}?t?o6|g=hkstd7h~#7jrGL={k1R zhC;xY;3U`jZ05^lMGCZ9kfOL@AqY~7j8>*HB!e>ouu>g^Cmveb-zTR&aIzc`q#*F{ zxsY%UVetrW6g7rJ@%&+~SGw@LmNv=X=usI|LVBo`kFwyd~qvhWtc?$a(^9j_b zP*|!6S-UA!wiI*@efYRjkAGA+T&W_?(f-HO;t)Z3 zg;1UEah`N7`I6MY;3zHZExeu9X_lE@Gk*m$E-5+-lIbpAjebxhJ@CCzmWa!u10nqanCu{z#{AJM z?v6T`d2diZODGO0?6>&O>EhzO^fE;j!P)C2$Jj_=wmVf*h8$z(gUXB;2VKD!$E-C~ zGnLEeGIri*I+Ywm$E}9Vcr5eoovmXA zRqMlRh|0C+R$i=DB&*FUZ`oQzBaXYQCBsE(uon68VmcG~?5mm591!Q#{9e1u)&Ig{ z_?zxSQ3(^GpBN-Q1-w6c>9AI(CbiX1WA)S1*LtBnGTR)O4s?E$oGADy)>FZr?a$9_ zd)kGA_!y&Jc33v~(sK3YwDI zNK0(=oYX#Ts(C7rGBno6>{b-33$mP)#2OCrg<4>UMn3Qqw7p=UJZwba3ByFf>#420 zG=o@)Z@?T|o`O{#_zS5^m84*4fa=y7N~^%=b{yDqAKA<_@Vuq(&!JD-9}A{eV$i`( zm|X5bV@FKV&ihv5cak!wW*&w-rE|Q~{;gT(ob8XmmH3zq|7Hb7Z_V6&&%?-Sz<%eL z4uVqCGev8}8rr?djsf-)v)B~v{Q7zYXFYD+aQ)38$5hety`aDb4frov}_8 z;ZwB@A$hHBx}AL&j*OJ@4wZ_QbO+}oj>k%HB#fi<|0a*V`dJGTfAxZ@2)U+WYHvS| zek1V}E+;^MBe@;Sl;XOVQ$KUHXC;4>;mmG*JJ0xfqu%+3>ohk%O*q#x1RILDbDju9 zd-6@$^WC?NsJ4SYrUWZnFS3;g^3i6%TNK)GdR{Eu5l;n(zb`Dz} zDe;wdVd&%ST$6DdsXX3)D&EaznB!-ucq;G^nhK6~LiD5l5G)0hD2wFoe%8px`=9Aa zM*A<)qAT2Ns9%kZ*~x9aBORk%i|(kZ52n5nROQ2<>GW_)%G~&+d-_P#+V zfcp7kCUQ$h2xxns`xDAZHmLy(nm!y9Z_voet)vQz8`z>WI8jyE)6K3EyE=nxowj;V@P9!xxSUGAj)u0KCs%<`*5l3+ z&W%4{9fw4whGa@{@Ts!`gC1vSKY)$qYy@0qA07SucB_OokHANB3L195V8bwk`7@^B z1)IznFd?A((MkQ%D~)l6lc=^ou*-0yxHmT1Jp*@4EC5f-wH+OuMwA0%+rK!~S-sN! zTW^4A+iKBrEnQ8)mRmhT#&t+IMZze+1xz9*h|2KL3P6XLGK_lSQz<0pg>)2#jYzjS zB2;kZFI6PdRV^&}>!NHM@|>!_sdM}MJ$)57~De7gdsBnd1%3By$HFp9aiPvA$|^y2g6_hB>Lp@ z=a2xcCa6!uB#(GFt3VT*H5S-V4ffT0I7-AqF@bZ&>>R$d_-z4ENw(^Kx-#G*XoMo-s0Y)$}>71qP+xj7fmg3f`{7jH z`FcY<8^e59q1*YOxaZX(pY0aFPFHR^c6RcC*%(-=gUPN~!So707#97}cfE_1_)RuE zr0#!zHJ3!O74P=2t$gmR1niykQ6;4G_QicFr*L&DO(h8MUE7!qv(5Q;GT zBA`cpcGkKatb$Ez?pNZtB=3wR$5VGJ17n3B4{MWIBU7}YZzDxYRXiCr4Jw-&2FPuK zOB&_t6+)^ozb{*5wk)Z|x4uCo2aTODwaeh$v=16FCKJN7;n3gYgH#oki^Q42C5Y8i z0Z>HOFA7RgQhcsk9wb$!MUaTmN-)u|#AW`$i>%(0L6I|BP(l1?5Y46{!MYGtz>kNO z0gieU!H|+2Z-~ORUraxadh5mrc&gbtLS)nZpO*z<1@KHSX2Ufh_6dspxAG9QCnHP) zx9=iF7K*U2_YQEWef*$4l3*-|zr~3$9n*jj_{aUTZZEc)x(C6;piRtgq1yLHV)^LC z(_02My0I<0gB~i=ReBa#c`?eMt)OuD!wGp5s%doTkPqf*38}B^rfpSY_2#|E^PO)9 z-SHKuQMZrvRXiR2Pxd7Yn_Gzh0`EvXILyWT80=Z)fKKnIAYVCh_+oGMP-+Q~Mf$LV zO_coY2Lyd05P^c3qchqSB5awM_yLJkB8V!u)e(u^fTKV2ywv|pS>x<|QfVc{XM4mN zd?vKM;u%%4YEiN0cB3+2po!v%k`Z39rskGn(Oo4gj|$#{FpCdSdeI`!iMhdHa(Grf zjyq8mj~ibAnYGjr7Z(reO~CUrag^J115*>kL*hzmpXo7Il$Qdi?FC|VrjzRh2g2I4 zE40|uhMga!%xTIeF%kNcg%xxFnoc-GEhD^PiTK9rx-mU>@YU+MS}LHe*Lk1gxM!)9 z34@Ukk4*L77=zSoVTq|K7QdB}y!lRzf~L zaA)F|2_8(SOoZICe!HP%UD|yPI1^_0bWqu~W6EAqM!)hF-Iv_ss6=6{M>PJ!J+eB% z`sy3FKRWkT=2}zL7N=DYs-Od zc+w%8pLA%ikEFkJN@%di$l3#XNrg#Vqae+2+H5{t64w(VJf*SZC|s^mgCIP(l9%GL zHcN6rq&0fqUnG<{H@_^-ZjZCl*H!a|mhjh6K`gP)Dd4|XzMJ+SJEOJSD=q0ec7#I1 z&wyW|tUOY2SqMBS7C6&4vUayF<>8)e_vxiLaL#q(_Xpm7{NQ!D;Ug|4~Xp+VbP%q)x^a)<$@ld?Hys!q3ABa6gH=r=u$zr8y9A*#37+6 zse{YBd5+L3E^rFwoZtL%P^1ZOu}4X!RY@($-rSA~qrwyjY&j{9J)|(Ko<_ANw@$T) za;Htk1$@sVnocIL+mE%y2+6oVtM|GF9(>?Ier(kOgrNH! zaRXHRF4Z%Y6Lc7P>0)8Kk(oyiZdda-k!V1N6{ixOxiPs7w<^9pR5il(?-`6n9e1;G z@R5QIEKLN+JgiuN_%D_zMo6qhnNYO=p(D&AzyzgY32%pEjyRm8)y32^^T!>rkNu1{ zPZAM4yB$?QM>bx79LmKWGOaWBVIdIviz#9yh>P4bFnv<-4G|I?J9d0?o?}%xn{^S+y4{ zgzr&fR2qsr+f|M<-FW zqi?#$m1fyy&5b3c=bH|nN@Hcq-87CN(JWT2ZJ_RZ1p4a)fbXD~0fSw3;Kb17cVWAT z4p=hrM^4+>(Z?;RL+Nl7GDLV}`j>KHhYQ?|*};DR?|cGM?(kx?&8!#RnnXCg@GpR^ zOZ2+yXi2I;z?-IHBYu87-Fd&~Wnq4Pbb=s&X-31}!e7<^Muxm_dT}gi4TtAWx=I9w zZz=b%F68P1#V__effHc-ZJ-G`)0(YjnE41Hf_0b@?lUFB&e6CkAZT4Q2sD@xhS&~O zgKbHr=+7npGMbd0zqD6~x@L<%6_Ub2na^~>g!KLUfY1a`z(T#*WY*<1bNCG!VV%njoCJ!1bLl3pi?A`3yPzK+A6& zH&!g_Z0vks@P}lNKB1&nfff6>iAnB@0wMz+3^~-a)6J(N1H4oVwLyfoia6oKHvz>3 zJ~fu6S1)ii)DC07H04a488Xg;{hT@^@6fu=;96Bkb~R=d{`a!zrsQJUsROwI2?24b zvC3F2ND9hsv|q>c!zO(B9&*s)+*$$Z=RU1R6-PdFEIFvvjK_m?J5sa^x1#8SSI%Je^Q(`_x zFw&IwN~^48a42KA{LW^uh9HE)$tflxaCZ9~xRw5)rPOO>0T3KOS251dC930=%f;E8 zRGOSMxR9|vg?+IYJ|7l_#lnH@{BIX{QkWLXg^v|%BueSrbpMh+LGL%rZ+(^|0>i@> z@u_sx3k|9>iy3Jv+g$54xJ01fHMTD=HMbMQJ$Jz{&i`0(UM(}!R!fadF2UWHn8(DE z+(Ku^D(vN>6H$N)`we?bv(Of?fN29Lv()fID`|i3JB8RW4Hwtl>;YG8bWn2Z*dEe~CNaOSr$E8TJ2{9v+iyCoB9h=-d&Xb{pL8psm(Ha)x)%Pa z&_c)$$@9upP?$1)Sr>!g{ictl*pALZ&d8MFG0(|_CC{sK6MEIxBvg{HPx=q zSk@QEz4!?bJo@hQlE`3KVWWa8Cr4?BWMtvU%xpHe2Kq}e^(fJEcc9?4pQw^4;C;p2g+ zZm<1V9+AMS_=p}vlx0&mb)U>befW~B#T%$Hb2cZNP@@v0)zaO-%vVb zoanqZ7(CR&-q~q!GK8T2DS^J`Wm5Bg%GD|<*+S`O6y{@b=Hw(48*&4ISrS?h#J1ef zZyZSLG4j!hMh-(iVj$6&lbRxQhoh9x8MWGAzN(&=)LP)~?USMp*h zcUy9#Ev#k_bYr((f81=K*#P+!poCFKnNZVOvH~@w<~MX}l?xEOR;ajS%Q$&r?Fbv3 zw`Pt!(h&Mm=cvL%?(cLFwvcDDtjBKbsQNJ>Jp;EXlnlrmrjzjctO8D;Oy+{Aez>-7+*gqDZj;2^^RGbtGrB}F;8V=W?ZNKH6qqm8dXb45F?zKAr4L5L*R6p;C3cg3lNk|Z(RqA}x$ zY~U)ILbG=7aX)t~VuNC`n+1Vba>sJH!qb2qR-|o9oPYD6r;(@W7o6*NhD~witR+6m zPIX$YvTQ7JxEkWETZYv>ox^!EWivK!dh@Q8hzpCZt8WMQ*TNCbq^?OM(r3AS&EO1p z)MEnbS+mpekB<-F(qI!CaSDRjb zKv@=fUJl3EEoQaa)FKxpXGk|H0zd*m@J--{f4Ou1C4>kgSqwp8|k3E*v z8^seeuzLE`Nsv3R0utm3YLNao`!78>F&d80ruPC|ro?HdH*k;E_^^rkmt_V45rTEc z6$B;qyjd3Vd_PaVA9g#}@eCv63vTE?PjzLFOv^+ma!1f3O`jmOQbRS*=b)riqz2RvbNlahZGtH~%$9I}bZ`=dX zu1!{n_ilTQaEC#*&0t0PZvEv9aVJ1xtK@s)l`H`nna*xcGI4*eDPc(vU|gRwra$!Q z?k2*^&5C82_Bo#-nXEzzoh;NX(S4lb=QR%nvj>rMTH1$!EM7M%5rrJO6+12PeWW!s zNxQ$efCL#=#})8GfImg5>=>}eB-pgR-#k$CN4_#NampyDPayl2>W-%sDWDLp=$&i)X?C!E~t)UHy|2%p}cRujHEcq(xQ|EB*nA8@M9Tb))fW z@M$V+)Aq#nr%!Iu^Hat)C*!Fn5*!`(CyOq1rr#91#g_9aYWlTW2 zcZukznk!docoV)dOa_F$;1u>iy1QBHuViEgQ*-rtCBv>RRTFcJ;5F2w27iP)&9n=PI3KydX6vVMRM(dc2HYC`x%J*H!73{8_+ z90V`>rBn~P+jIEVm8w_bXHC!ki{h--p1!-2gS-$fqO07cwOYu%!N7>#5_nnB_Y)N6 zuTChEyn*Tif?p4nR=%*B$Y~p+f?;?pLAMAu6q#6qR?yTrS2fcy*XeSv_KleB z({22t`TDRlBX-%ZElwwnXF6;`>NB7gaFkiZO0e&@u{=F9lG zvFaDEag-^IBSS3L10!P8p)grXB&tV9$BBl*i9ac1%(?XwHW6HeQ!cdv&rj4s^I+Q4 z*`jN27+ZIMC*|d>&BE0%cZ{*VZ>g2zt+G)FyS*_ z1Qe0Wspc^)aEA!cxYgVwFUtfY9Hm8vjRQR;!XgUPL?)}E7Etl5-N81~i>D-e8-==IUkDXg_@wV@~$o1$I@_bhTFoT7@+e$@uX zP-g-tSBLamEfYn^nP{wf>>?hLg}|KP0TuA!JT{8cX~LdmevBDP^*rI5!R<#k3Y;4WA~dI3fIPHQOkDLv9bl5_Te4 z-R|@Y+4*&I*7mki47zoF{Bto6KQ|H}FZp2p@wLplDc8uBq?ww}`d1W_>#5oIYMzpg zp#?RJlB{g}VdN=`AQ?C8W0}E^NZ3iXG!TbJn_*ZqeEw3$BlR_YvT<&=?j503tn(n1 zcssF(lor`W>|BUcEMs@b!Y;_)g>&&4vp*0%l3k^=&8udaq_l?55@Qj-a51K^5I+f5 z04mJ4D88DP7wr`WBb(dw8>FOm#|ZFiG!S2-0reUUj2BLnc#FUQe(rp4&GQj~Sqpt9 zGY3>6in7b*wTE4@i(uK6VYcdV`X=33^&^qFoui3AUk zD^IF~RcS0y>;(@Aw40vsC-s=|9nq5hR&k_0Dn-;pc^_eofmB%dLJ*-qt7lL(s9(hc zKhu}OnM8YjavDepRKN6Oo&VOA0|Iz&CojxzhTCWC#d6=KGZY*phQ|~twirD8Y+x34 zP8E3I8<(utQuL8$4Ivh3?o1~rPz=}tFtXGL3D85*Xvt7{*VdR~30IqLcn{Fh&=N`K zqtfpH4nmo3)^aqrN6`|?2%oLqB}acYA#c^wA6c7+LHMVX6L+;n6`iAGpnC!IItd1I>=<8?>DM7AlQMGQXD&J3^OL@0GDRrY8MRqgmi;@J9MQ4LNZ=phs zQ^LX52@NyW!`Se;F3MtDV$AD3fy~t78O9`SA)Sya0SW`O1PT&{I6j!qosaZuO6kbH z^vsX6>ZPhcIcC>nV0KJH&Yo9XK|B47WzD42q^3wb60SYkU6$Bjg&`e`O7~lVdTbri zYsjOb%m3Ak$){~I=OD}yt8<@$y{jsFh~@)GynFUjXEjcr`OSAe4N6!L`z%2pVq&Nx z?I{<*3QghGKa3h!f#B!i^8IJMXEHCtzz=V@sZqEU-NxrVm*Snki0XNH$eb_%Pe47{weT6_Fun7Em1a&`B+kiDRsZ0et zpc=;9?(0aFA<@LB3f*@{Qpg=+xrWgg;hK{_j!6{0NQPgfsFHiPIt%FUagkInmxvlc zD{7Sfr6B~SvDkhYS1lFcKtrS^Yf`QNMPVYDbgw69WX`_}NKCdi=FRWVxin9od_F2T zQ~hTzAtE=ol6-WQ%1rnpPdZxPvt=Fs`EgXKx1JRtS6du;SCcX6Tny##PnXZ~;@p2h zB8I}yM5&OGx)^~7`2zo670<$Qo47uTD)+R{ygf$z0Y9!e8WKZ8?eyH}h(4D9851yx zFPXWiOY~fct3Yf~GvT-oOfTKa@r_F8hv$q6PbS}e_K|a<_++lW@m44`9{d8E$QZHZ zNsuBCZ55^`0#t}X5PR79D(vlf8F03#f`q&K%fH%4q|4)lhOcn6{6UFX_rd~BY=voa z>GftjH8wPqwp?3CokhHM*D#hwELYH8059UZ4{gL6yjqN>qykH*gIS`?n-#5wtGIc4 z7uq^Eb?U8aYlJ(hp`Hg#v2KovmeBP%vC!HnB7`h?tSjAfe7KwGna)NV zB6zqnk@g9j)btaY_z=mxnBX4=?;6_BKINQg`zj@?TJp=|rG)PrdjO%KX0HYDkZG`- zKFD?G8XHo2eCQRs1bC2E>a@>l%=b9Z@-UFGB>C9X|95aiL(_v3m76|7wkyKl_g$7< zp-YOh5516UvtTf1rO!X94ZS*juAnZqy@?Dn{u?5@c?Q&04FWD)ikjiZfB}qpJndMRM+VDT!DOzPq;jCl?A!`38h#To7WremS3$1q=4a)nZU@Hq zRrWa%W)iIR9-aMtY)lMQEnTqVK(NnCLP)edJ>TzvE)B5>j<#M%6|}+~B6ThM6>{Z( z(g5x;PtTz3d}BKR-ZUpu-EPh6BBPJM@RzAwmgwKAUWP1Z?&pH3EOB_q9L%}wKR)PE zsXky|sHl0p?ixvU@}$RC=-2! z`1J6y$CX}9_?%iWKB8k~wBZpOt~;85w1#M1=9R&#&T{OBs4 z{bxx}e#G;=1iS&=yf0%s>Yk^boNM{SNU8qmcx#-=M4KlvFSAt6brPFXT~AM>`fHV* zRDkVEp)mu)-O3n7?7~}aQ|e+0WKSZTd4UVD>dyo*UpURtGPMH3j8Z(V%VK6npqf^VEFOqR{HcHV2KEd20CMAb`mNkfN0Iht2P!4Toc~X|$Ng zs3s|c&3l@?q7`2flZ62ShF=UId8yTN8cPD8*z;lShmbxxdPkjvGvhSFwg`XQ5{p4x zBi|Sfc2r1<^Cn4k&O$(miS}&94zq(hf_STgn7II!ZV#^LG z&a$qZw5X8ROS&45uk+WeJVV8U;R-|*PP16By4d5UjQ;_=Ny2U`6$O}TDS+Le|6ueh z+z=3`dIC^%VW0>Iy2HZ{j=wme)SwMlnB#j+JM!sy=GY3eSSTIOJjTN7l{ zU+LjZzFFfaN`P+5KG95U({MI$mz2R>^c?K{YztcUmBZC}$$Ee*B}_Mk;ax$~-25yE ztuMmSgR2>pSQoBTQrOHf6S!V9PcgbLoxMhE+Mw(1D@xo5Dt?IJ`PRIJLt{_~&s^9< z6@Z{S(+j4Vcpk0s(dARu#_P{cl z4&PqvKxcxS{#?yM5+khYH_@xAo0c4F4ikgB<2Ep`yInW3`lFo&#S5K@;F)AouDbJT zMAbA}8-H{4h^}eT$z@S0h4A)oZaB)q&O6BC<1K3Nk|a&n-#5qi{hXAN+5mqC;kB97 zYx#qL#!qA7;|_tL-zYp(FFbMDz3<8&ypW$(v5+&luE}OA*$+`yeZE0)8PC07^ShGg zZILUb8|jKvTknUlOCr~R{y&Y%p+Q-Y3d-uLS%uf_`7`8U(+K5BniZ)}30lN98t^VP ziz+CnRn|4|f{vaz@b>#EXGVL}-2TiP*IV{1?jL88-L6Nuth%b6m;GP7@COJSR%Ety zMWwk@cqxj+`8XORf(iZv6H3QH;g}=t{V(uI&a?LDI_#5?AI#YIw#KL@`}V8VSzLcy zTV`o!Sp7iO0Pc`VOfYE*xv3@mrWOM8iB$HZDB&>LT*KSD83>_)4Q9&*VQ5q-IhIx3 zkG69|AZTi;$*g+jRSPp1oQKoaVWVx39KtStAAMQE?QH6nv(?}z&DXXWuRW%s)wBH`)r7X4e6qkV^cnXXazZ>0E$)6bE z`UinS4-G#!#pr>J6!-RXb(S_>42jo@FjE~N?x%vY6RO?_t-86=(_ z&|1}Mz+dql4b+o^D%;_fv3KmbA>V9scgm~$AW26YK2tcQo>?kL@!xQHFYe=-PTxyo z4DNtCEi^qVAxg2_!FLD&jO)LqtReZPEN>(9vPr@-g80(`0x{jRr(z9# zs*~$D!qVyWC9EP+11{ld@ICQKRY(z$8e{A&?Nmc8hfjUbKGjz*3&gQ1 zoe_4@OTQR03*Rp9SS1mxRMW20p*pje{-83`v`7UwLt8WwXu#&O!s4{Ryz~}tZe{0A z0wdKmP)P%Ei76v!brs{_@znXSCw(n3p+#K9AO(khznYubJxR!D2zSB|&BxKYIqSdG1jWftd*vYBB$&{`{7yDed5U zThU7=`Q4 z^&qE&cb!l#y{VYaU)GL!@t&XdV)t*F?<;$JV18WQFtlkRP(PwS@7dzTwaBI3>7~C3 z>mgUFKE}Tl^8z@Zs^Rgn+K*M6KRIb52!hj=%)-U{mPIYh((U0vqY-{{Ch&rGGaTbg z!E?*L+k}ay3z)#`o*AV}GVfxdl<^hnmuD~EtTJvkGQO`h*$6bkdAb9OF;}4zPr9>p z*n&};oHCKBp?Mkwq!VOG8zNrn^c?PUXcEYo2iT<3o|J(YR1d1JAZ07C0GzY#xL2}y z|*)Ak%Gb+gOW)r`n_P&#m_ zx_kxA(_a3aIaW1>%SygB+ef86$iZ}n-@uo&?mG@U7@I&19*sv^E$x>Ca$a$26kd%@ zs}!+Hsj$#WpWuHs%7`X%48|Vnh+kFi-j#Jc%c{yd(;pkdIknGg13xkhiWkvM&?(2Q zwSZy8ETDDPM~K_WX>pj3Bn;)=an6>BLwp>SO^UaJa;9G+jk|qyCb-AUxYm8W^ zrRs;G3lakcWCwX2C(i;JsK~$!avjjm`ilu;K(C-e*YvqgyA2dJ`E6!VS4Fu<3v+?E z0VzBWhZ2Vbz5}QIjGtoCeE4Y~IX6)hJO{O3PVq4Vh(&r6h+=NfLZZWkQ;QZ_s4^BY zqe;VyE}9~F&4Gkci?b-aT3Uaoq$Z}=rlH$LbWYW`vIH7JHx{;_Wrttc0=TL+dB z`=O5mymAi%e5_Z6)R|{EFRF$9-9#$R_l_u8)>$kUdALRHBye*fBIgTl)obBX!BxUc zYSfCm146vA&S<}GuWACMg_P3zXY}bhQgf_YN;^LjMZpp~TtL&fh(>DG#L9E?vFX_k2is&F^G5Zwu-;cI|NZ zi4xZVKZg7+Ob*&SPYWw@0?=CW?8`X_erishX_!R4*M6Y-4eYFXpQj;pwy6hsY4dD7L!1~4q4s~?fRDtM2=%wcZ_=_?`bMU?cs1x7}9 z_LFmboc>Q3$S2GgiCGZ?a|De+nV8 z*8^z*i3O{SnaVo8A;+~lt#*t*_0v~Hb=B7yP0pOS<4|x|rP3r|Qq7$D19uoh#XJ7&67DmI5Gad41$H?QKN9*FC_80c=rea&nW z=+@X2cppx1xm|yJlMh#8`g-DTvRg{c$k#>leb?&L#FO+GEWn_yYBdrkoC4izn?8tP zTxNtV6Ug%0%*IqAfzfqCF)_ZTabC8>Nf*fSRPe07K;kRp5{1bOR+2{K(Ka6?zED}k7Tvf^a-?|Fdpm3!i{G4bUZA+Z{tnp{kz znHo@aKX&))dZu*jEZl*@2P==Hq|&W`>%^HgVzR%6zrI zfF$F#C!ErQ$7gQQt8IYC{9dBt<5~k7Pc1bRa-=A&KJTu)zk%6FK^uHSC9J90bpi4n|vj0J#hn%7GfMIl%5!lmPRtV~v?T zyIkBNihD@`a_F_I6wS^9V`0XPf(uhYpw)QTseZk-ah6V+ctg6cBQ`D)*Og}`__j|U%2RjoAGVBD^c;YKRAIc|P~;7g+&6-Wj;+}!io zuszeZxbQAb_{V>hsonV1OnifY4?1}bK)5=+3IEX%a6o(^IUm{NVFT@V;sflspJFb8 zJN!k=@@Ed)J#6!M|JVpK25e8ej(MIt#^CJ%m7fAAu$pL#qT6S*&zwq^VC$pCM<-8G zJ=tZ6gz*&qFF{OnXOla#|4mKGl_uO78y@E}PslG5(r$PBR<(u4M)>n?$kJ*Rk;bYS z5dA@-2}2nu17aSOTx6p8#rhl7+SU#ZN}h4n2uT;b>_=PC*r6UO_Kt0|6O^^*0U;?> z!hw@P2};4>b1PtsPK*%iT>p$@MPjO;e8ms2w#O(+RMj*O(#C!|wptt$U!*|4^QQHt z1)Lj_`IGRwCx*mWKJWlWO7|wigV!H4RT|iPPdWuf2Ufn)`Q%I@`;5ogoz@lY^Gsc# zl^w0C`#}QL|DLS#s>{vw-h1~NC-FV3nNS}W$hi3z&i3oZ1L$8rd>U#T!&X0h+s%xl z6cKLP+c&Q$7y)-^N=TzXZ!kM5gr9Ke9f^#;vx`D4Ky!`KM26+I8M5O5qlqQ%GUFHL zN)U+IA3xH^k48#84IbRp)02|dz-=_4>4KnQ?3UuN#pkw8Y2eu{r@)=_ZcUSt#MYl) ztjw?lr~V2pY3o9HQZXhzqv;0RCyqq3;0TRHZeBO0+9Fa8AdxjHlEe_rHm>22$iFrl zZl1t8Ys1ABS0hr>4I!HHw#$J!mTG|!_MnQYS&#mKB~MY6*XniTNBV5{p*etl z{E0gG#cTaKgf=YK4TWzB2F0iD``6vXXo83Oe(~G?l3<4L+%Yy>SjCN(EjBm-HRUZf zMiFP+SHk$6biWV_Ajyp)DqHv{brjW=e{hhz647Vv|J}0T8LJmQGi{L9KC1{XNfpw) zj|1?dLSMXGaH(#j(o*Nf%tnv2Inw!erWK?}0OOrNw=?`n+Brq)j$Of2FhxpF|E@Ih zvgM=ZUFA!Y1%#H+rb|Qe+ggWCiEJL!aq>sllCdX-F#Zc%az7MH=sinH*xns4fz>iY zwTDWGonb1GEY8i1wE-oP5t1b3+%_rrM&;ecuGNSqf4f8X!R37cJp1FV zS+kMGnRU%WF-{k7OxnC61%;ai5#O5d4Lr^Ot5kmt;EyOqzw&NF8E0AR%P%ljq~7ZeOBw3nva?W|bY2 zzQQ!5#M}}hm=P9+}$g8##2Qp%Ex(`eg_I0cy65%l9?;kN#PY=Bp|5qsj!m(wZAXi9keI~up;3ffx zZRx9bxutyhTXYp2n8YjpVHN-mSfbgAs7d6n=C@-jfR7_uF*Tzehue|r_@=h3(xQb^ z$A`f8<<+&b?YWAk@Dbz8f^E~vy!@LUHLU_P26{@ZxmsS@b=A_5lfFR)lZxYE{M|x+ z^56I`x1IQ!@I1G!N8fhwIKL&62Kc_YJ*5r3)Ap_69jQ`Fta7fawDPHAAx72zaT;== z)t>{RBFjRI>Y#JvLb*=~J2+MC65#Sbq7-(bPRAE{`bh0(;<52Wn z>u#>dCetqIFgw#tuKs=u?W0jxN4)~Ya4TU7aejaB3p8)Dy^dw3=c*D=j0p5u>(rPR z|5{Ga0j0Ik(ZTDQmwvpZTmRmiY6deyzyC`Ev+6^Kf8qDR`Of6uZ#Yhb8b5gvBHxLH zd-NnN6;-MXc13)lf9#5eXDQf6VS?c-4w=du!+#!w5aeAgY(P7fl5Ar?=4H`-8^zG$ zC<>-#BJtABlyPf}&-&kN*7XCtQD0Kiu+I=^+2$JM;r~VVjug#cwG&Yl;;Tc3%12ED zionfJ=W-U%nQJ|7SwrWo?UXgmY$l%Xr8I#IK_5b?o*VyGlITWTkC@t|jnly&ezcuD zbeuhtP(z>YREy6zD&v@Fgn#dlax4aqo&W`lGV14~>WfX|Ui?vC#kgeC$o3QtTc<2g zw-s`OQ5)&pj0ItbOxodCHOx-F$(4Z%Yt<{ZEpZ*J{blP0Kp4zgzOC7+Kc@Vt3De7w z_#EJS=*fT(7W-a=j0{7})_BC1{|1XT_Ei$eIBLg}%AZ7{41RkvE8J{&1#sfJ=M!fa{~pxzT@+f^`6US|`z;ljqzU z7k>9zWbBkDt)az<_LR9-x}%}nL^x44`_aU~k?0*P@~C@ii>$<+d_K5PYYa6b>5+zH zcPv#8_j9ID==x!Ob4C9o6`SvZv9Qjy;-}6x7nUTacO7-o_%H)judq#sZu^5A-%t?4 zA$Hmu^WfnkES6hr!RbI{e&@}9Z1ggrshVWi+roQ$<63V)gS6<4rgs}{)Tdz>9Hoy& z(g)4jS|Y~;Vk5~FV~ouK24@B`9>AxWIz;^BRAZ$hEHSt7jW$tsB|mw>OA|C^+t-^Aog9e{+=(o4t^~l}dB%FbGZc%R7{&oPjGcSW~ zJ%RvB-7M0&qj=GbHH?9hx}V+@R+f9~ikzF_wXva_4z4R)UF^5$G}_-!30oTAK8edIUbvqlS>kQE7`|oyO8CpcN)I{HDD)!3}De21Cmf zsv+3rc`6wbJFy$AuaCAxhhq!&wP*D+q&fH>?)z&mfUG;%-5ev&Jq0MTKEf}%A4A6s?S zp=G8=;S6)*nD>YRJ71?%1-ryD{L_1Smn-NnCZ%i){D@5wUCJ}dnbc|dFHGKv519Y4 zG#~>mGozaV+=}^+b3LDfq(Z8=%nE$TerSX{%)OP&mADEeg#XDsO2f}(8gG?8Uo-@1 zj1t3@0ZWbuczivcJy%ziV>?kVu`?=Q$sFw-Cbb$?-lv$$A!}@Tx-wqst`s`?j*g1R z(-7>fsVY)RKP(a3yN|s513SBac_9O0MtF~TJu^0=6=L=9mkM;BewJKgc)TC2%8!oo z_yw1(2Ml#JeN@h<(NT(22j~}b1jde^^Ou;ryv4sb$I?Okq^uIW@^vDyW%U_?;Ww6C z;4G+qQ?9lj`TC-ks^+Z*P_Q{DnrCBKm|k1MAfMkM@;Isdc3!lg#rXLUNLaoAkx~-M<=jhK+0G>1N+skb-kVXXy^7kna{hv z-~Eo>6b}5&*9uZ_Wms6SJI~7ePo*0Og6$$u@_dv*j`lqQ)1zEC79U*7QNY5Yn1@cSs7>5W}@5RlOZW;#};UIi*i2&vj zwBS4Jlc%kv7I23?lYCvLTBk@tTPf(F5vHqLfL842U2`p!JC=?(3!u-dc1L|+Z0dEt_kE? zUm3&xv$K7N=hEZ6&Z~)jCBWjrMlC(j9}0FQ0?wYc#@WfPLw%y|6pp|B(L1wa@2U1H7laZ1ak;z*@WbT~@r3I!L8fI9JJfd(m09 zizS23`Rq1Dz_P2biBLuxe0-sH=NiN;Sh@Vi-<7o`DEF;{+wv@R89(r^579@I!q!5` zP`}_Sr7+Sar*tb|z*VyKh;xIyBfZ|Eq3;g9JA_E?!rr>nv=nY{pH`xP1qf&xDMUpT ztv55BqSUw{_f~%8SYs=w!0&b2S>#E~4(aQ)FoIkV=n0aj0}6-15>+V%q5*+M=mxlRwrS^%6dHiwA`Q_D==; zlT#3|oiq@fx-@~X=RS-FOhC=HQU-iZ=r}?X($wUcZw=vq|2;sghGSO1wOosN)Vz5v z^O21RPPlJAH}Mo;pop(-``c5Ae3;0J}% z*{Bajjln`8YGRbavCqx6zwl&M;IC zqlBI zPzeC!rz&0=yS^6M%gGe3cQi5C4)&&e=ul z%4>R5jo_rvUj)Z*i3?{5C3VeFMrW}kDG`p~1QiV0-22}P$}Q=+A$l`1=4GBJvK zXg;^Ga@4f$EOum15tBl`n%V_sF#9#Qcat4*WwG>LL3z`;u#3Rbjs z$VxAsTY|ZZP#&ffm^2-2O$(K!p#UY0CxQ3m2Z(SN#wW@dXTDV;BY+rXYX?JGuU4yi z2TJw3G8-J_E}&F@Y+!XTvI&62H9fgr)r5@Q)E?*vw;HPA*`_$F$#JsFRUq7GJ+-Al z0Jy^C2=^DC(L>aiK zs@r|qOKskx5#e+MO6_0&UZ1|-{X~1NdSEKKda_=;MxEKtVDkrmMOssFXgRN3DTGw~ z<`l}05yJH@rY>g3|1T1F3WeERVtV9=KJm3N{X^Xt=?L~WXg|1wf`i3JuV4mF{s z5EtP25VX^nMs{Zd9{8wJ#(=%<41T86e}rV{^S{u~wL_V%2N<>E(c1QhK% z8P1z83~&1LyXCmtDedd-Z^dTU&>_AC9KM#{| zev-KstUHhLr+zJkpBY!9ci$25nhs}1JmT;>_y27}Dq{2$>E2@!HW{JFMx!BjhSR3c z$X@?uZYTXOIM4e$dMGqWCUWRNNDL4zQHwr;!^bb)t>cl?H3(`AytN|_yw2BkpaM_u0x)o-`34I;+}L;VOk69Uw&QZ3 zzl4&o57ppk(@}#%sX`bsG`&bGd?;=TgUKLqQG@it2~Q{E3r5bZ0rk`3mvyWY55n0! z;GyCsXSG;$zK=>_YSwIF6Z>ryZNIzacTv{m!+;8+@DL~h9JW_ZHtnmb=Gp_bz&j-$(9R-8K`uinE1LG8|N3~(;Qry<)K(a^TS z3iMH!xG~5m10h(kJwH2UMDVw~a9Dh_i<4S!YY|HHESJk|B6O(;|_eV3p{c+Z@|` z=dp|@>5i+~xkG1tqKKE?dcR*|9IXOO$UY1kozu8T_raCMZ~&TB(kl9uE988BP~fbd zC;pv?bg)GpOq59JH|dJ{zqT~IDdCXpAUla~5Q|RJ85+0vFyPy?i#(s}bb7$ulZmAA zdg`Xcc{{Q0i?zsitZF+*A8k%Aj*dhK<@2py#`ThOKrGr;ANXz56 zvnUPf04jsLkn42uo>O3Cv1v@mk+HfXX~tT!*34Ndnmt?d5>)+53bWLXYrl5>6Zom% z`h!eb&RoND<{Hm!203s()AU2BA6jfd*FOG)Z!72P&UM-E+lG@N5}1&?vhg1Kk9f$@ zQ45L4fHv0{&o0jLiBa6R;S8gMX0GLR3W)W6Yu=Wd%{#!Y1xogtqblR~#Y6Efi8Gl@ z8XP3JU&bVcv_xdGedjj{u>*k1wU2t->$rm-@LFDF9oy24SGXtaY0AQ6eXe!?RBYh? z<_G(M2NF3N5N22Pokvzj+%&QO-wEG*a(^AqiF=}RN!+%7FFh1~X>$O`su2@L&DH4G z=66RB7x_Ok5F8Ioa@BLV>K?rt>X^k!*_|mG3jXydNSO!dXXzT`p5)xj)bMn?yX}$- z98}uso`JIL9#I+BDa80Yy6JB3+)4R#DE_~q57bV-@0R*rZSc#c560eo3ME!PTA3=Y zzRL|%JeLBUJqGgsqMuD4fst!2mjPhX*?OX!bBY+_CW9RU_O0YL)X03TyO=TI7W!*0 zo!fNk&a=tBSY}&pR7JV}0c`Ud=F@$; zldp!Y5P*66L-y;uKLlHKn1OT?n0^nm$tBIz&UkadBnwmSGkixft%Y4k7po~!=WDy; z0(KrLWwzos>yE~@@P_E}b4#d!=XjCZCq7)uZ6K-lhIS0*8T5MF-2xaiEJlWaUxgyP z*h2mqnO8oaWWJ>-KbA)Es2R}Ul^c7{x}hSaDs|UV3ii!g_KEW=JdwJyR zH5Rtf-q2Y@mmZ)bGfDyamB}FjR5P2=a*AgV(RjdM+s+KN^C+I`84HvM-9e2DbppJKXl8b5NYCytiy1Bq+G&3%K-jm-(lk zAmp|lQSZ!DY=#YIlk<~`bQ1;mI+TFthaIhjn`y8PCXE6iH*r%h6vM4yp9)MuwRV!c zA%l+eUp5acc%Cph>RqT}#4%7h-RE4u+_?J{&POOj8AKv+7Du~{s&FqvA`;ccxGT75bRz?>V(?I-Z#%8&hl8 zkTPX8v8YUQ>JDIqu9j+{;@39v9x^IDM%#*-wfnK9ovaPLp%(Mw!(@!S)|!2S5BF6E zZMEqJ*?V|>6}pbGL}&fm!_-07E_rX-BCcLI>l$CkiQV$Wkm5&z16A@xdHU>m!R3Xd3?1TEFZ8w(%8lMI>2` zB7&s)rvnW#F;Nd3=(*@a!tX%Ilr67TYfkf|1l28hAeWTn2GSd*Fnwj|gjfH-;?28> zSN!7qH?`5%JOAUZ*Sm3mjOS?akyP_$zM1<94vTRf{9kQJN|S5oX-<dQ=mV=@MWgC%c$o5R0mx&lphhFb7)a8qA4;M=uz)m*<_%sC z3$k&boXg8*?t7G#e34_fN+dPg0I}}|p)ciAQ}vQFv2ZiA=J3omO_l!!z`wcy-)vw> zLjX$c^;J05n3VXvhOqa~>Rt>!=Ru5N;JjsLSoe=*abL{k(S7p^`wz@dcg@?F6@vq$ zJaB-@7##7K;)(*u_vzYQHw7_5F}1%!FFqw@no9>B9Y6T2M95IgcnqaW)0&>TEgkWl zq=0aPhI%;nt)TzO?=bK=3iw4<`3a;aWeU3K< z$Jh=@KOT?hqJP;a_q{Ut%Xs5qX?uzJCk1JD`?d%xVout-EFrTM zy%J-}iN|{Lkb~cj>q&GAd2P64Ha^~+2k=w(n_0u_bjBjH6;dzlKe^mtib8BX0K z>NplNRUZez>f8`GUP2WK-$0|02_y-;%?ng-66~h{cpg zo%G}WT!_eQ1uV0h+Sn&ip*JXTDA-BTH?!54rM6+=ruNF{+0PpKa!>A%OQkF{Vw$$` zsN&1{U9`$$tbQ`IB@H}xX%I^G01@r0m5d&aH^4}6AEz~P>_-#>^$I9A?4W~^nG%K0 ztYtbKUiS;g-h)ZqJovtno^ZT-*6p3AFdhHWQX6|0N-i!p`&3!VJHhi0{#Y1Ty>!w3 zj!O%2=hLRii&@=>9`uY_G+8>)>A;9}=DW{abB$kd#9HA=f9=}(%dZZ*oYY~&!>rac zHDT~xub-+CjLqa_@G%Pf05JL>NKN=2 zWJO#?*hEZ_Lp28XQ?<=*gc{s}cQSl;=JbBz;aFGRTubPXKD_ISl)(n)$e~8O?2hsi zCu47Yzo2pTYU9eqoKaE!u-qXIr}fI{8@Jr{CR#;LJr<)sui$@ad?3mcs!jp1yr zocNrQ6&u3K)#te$UYVSIwy3U)*wE=-3k`L_Bdm#Ac;VSOagnF7;I_wXTTI|v=ybj$ zD#N0_3s`&c^_BG-PM2S?qvWzBcd%DdnxTD46qO(q0kpP-K$ZFBmw$=~?`LYj&=DUzL%+)F<~A`eVnLn%O@~M5{E% z%Iy_znB{MK*Ew@8eg7X$UMuXXt{P?E(5GlOpFI&%4!MsXdUT)oG8spP}@3|-fSf41KUmmQ~W1VKND_YHYa{DV`b*P#HK)J}l&_PCEWcEVr^ z)(`wkw8%@U`p0s87;HoFV!e;@hDHwOWN$xSgj-ic;KyJ+y|~|4howEZukxnU@Z~qx zk^y}VWQP;B8Jj*Qd}YW)YWJ8^U-|$kZE2W5HjLH?6wqf4PWNHjJ7nLgEE*kY4A)H; z9XmB(*BY~Do}TyMrL!*smybk~~0n&70n;;bxxlL~cU}hn%4uFp?!_)E_5N*7d7t_5J_9 z6N(1aFdY=c!VYUWV_z)4uz*u17e)`_93$@CQB`SYS_&hQdfn6nY$UbUG!&8~wHGj(raL-@ z{5arV-ZR;?j)eE1^z#SiOtmhpvjCF{i~`8~EpN-92-E>mVpl|BFHRe8&U67R4KS&R zoL>Tr8m%4}O2=5(#bZ2}yV>J^4kf{K(Y5qn8P*V4 zph(M)flk$NHyciF!7p21%=+0>2?YHP4hXa)tlu(1EYSOI_MjC(ai`yLEF;y>tv%r4RSKv8Ta9!_Rdi0n)eoMGZb^zzgoA#A$CGl6qHoeq;t|G4&PEx3Y zb55Q-_{5vYsj@X@3J%a9nPYNnp1N;{`Y}HvOuma`psPQaX%Vj5NEnyYfFaOE&bMNj z*Lx;upyN15=qrD|!u;l=_Cu#0@-yAJ6V(=K?B3g=;g&>mEis4Uguxu2o5}&q?y1UH=k5ioTS>Oj5F!WTB zrNBDg44qTr2OU{3=OyMnReE-ELN}6NIy0*f&&&_hm}&hF5g^gT_DHh9z`6 z^#9CfZcgpZ!|A7ko7-f4vA^1VmE?4H^wa^??oZVDt_3c~#E#*j zfK7nSk``63Q}{c)G^5BHGb1Np{YBkHeqWTp%vHN1mpUVamailPu>6t&37jxjXa$wtE=c`?diw6k}v8QK3Mt=(p09uStM-xpy7B9=ih0Ko&f`Jcjyb#T@Bf!?FhWz3qUt2sCYOD(hp~}K|hS>`O49SBy5L+zEP2O0&baoox zGAP0T3pP>kl4-6+O1&4){@&l^dYr7{U*qgH*mmK65FR+_G&O3w+Ekj8W`EtGa~B&= zFc}7yq?kx14jAv+bvqugMSsw13eaQ9ccG!3Xfs?eRT~}4Uc-oQNx<84Jlaq>|7!!`Df;JZ`YLCK~Q{I#P5U0DUt2IB{ zK6@l{Ofy+@?_+U`z=TomoM0lyNol^u&f>e}jhUr5R|?*NmQO@$#Sb>KoVe(y_`V#B zUWm@HFH;V}tAt^8phk^w>3l6kj1u@L^X`3P-XJebpX{ly;gXSW@1(t0y9<`=n_!ZK z^nN(@zxz9{@GiVzjDvAdXZY@2Ck572g1D1Bf)1#_D=G2-g97YMjTxtKx>^;Tt21ln z2NDu7`^geT_@N=WG2W)Klbi@VH8;*Q`ztb8VeZTajuWZiOCXTF`;=&#LZDLNt+D=K zTL|y3rJ7B_K9TqO4q+Jo=#*vE-E6f)xYq5~Z}RLWryWM$E%*wTNw= zJaCA9f+|ox>3Wvg=Vq|^M5EQk9_%Jxi-qf;AzfGIONIP;b;+>K4%71(oP5?+P8-45 zF!$Wd@+gWr>}+vX3!xSKwMtdzhLz^5Ma;a=rZhnYAD+l7en zj(&=^@?b2kHU%tZeH56!dc*e6nwS~SHF}G!P;JiCL#f8wxrupvN+cMG9;~BkFR%py z$(&D!q#6a`yo?BTqXTjj0%zb_%^ZIfrU+`1F|KnvFjRy$FJlGu>~MMmDB!I~te^~0 zd+{mF7C1oh{esg)$oK=C!=#v-IZXN@81)}L4}xb746xVjmO8!p4vx1^cKA)- z;j_Lak0b?O>JHpF!8SF@nr$cDYO%(&M=ik8{AIvqX=MfRjh4Q7ASyn>*Wht+B&iH-0`JvRB<_&_?1BCL3)0w+t2{6+c$a7!UVH%mayU<8|3lA44}S0*H}~51uz`YTK=O+K^<3uvZfoR1a0cax{nEg9o z;l*NgA?_-u=}|xG@8EwrgnE*220rBKcs)*5S7fVZ*lQVXVZ+ zTW57@I1(Z+IZzyHIT5%1I|Y^CFPgoo`ZE}Krr#5P3Q%xt^!Txpx$Vx@bBRfM4UdGX z(E|ch$ok_P?k5Nf!0vRY9?F->EmMo~CqcjFe-^OV3FE*wm*ysn*^6^$?T?oQfaDi9Pl>?2TB`Lmt0 zXX)`L3dP>B{1ukPv)F|?=*)r>6VID5*%1~Bd28&k$TVMnV|TFL(O@M_V~s?iZ>)l8 zt)~Z#s?QJ+VVvc7@coGN=?O{xT2zCM+;!x7TXa$K%BfoA6EE|=M0P2v3QmT7$=RhY zR!VVfu`PR7f62FB7%{B=^PPmEChNT9(l3!9D+f)>=HKW>5gEoms?pO`D!+0(t*O1hQiNJSghE#+-tTtJj^5qk6w|1#EF&Jc?K{eDZ zGkGe?l`8%Q+eGoNZi)-Ti-SET>UUbCBfpL1GE8NhskGFxeNLg8F9IuiBaT$sSj2}2 z^nRbVoHn`!A*c#ki`SfPsL%UV1Osr>l@*3oiST1|qbeAwR{dF{m{s30*2g!+qVg}S z?-2gU_(FiNFnFNy4X3w}fx_YQ>3e?mDgiHiz47v_M6Fj8Iyx_K?_$WexI7IY+j%Wu zYh9~@tE}JN)nqxWwUw$^6~DD_)(d8KdL6n?UDxdtC;aNFrZjNi`byGj*>Il?G_?T( z8->rJp{(#*5Pxk|vAr5TrZnLO?<;#rgES~l3O5P*!Vma4XdtY+YYZZ`1BLOTePjU} ztXl0DUuNlIj-lI))v{K6*V+tzOJpgCX)os`c-X>-z?|Ht=1jGUj0P-pWK>;ES+=~H z5bT4XeJ77K4aUXm>`YUns6jt@Ae%p*=0uDGlsdgzBpIcc=QQa{ zq$y8SYT@99irjX38%?9#h8Wwit1P}fJIU%}g@hPQ2b$7h<6njZiOV8&14^$L5TtAX z281-LsrI~`qUH|_o12`bIn46_L2`v93+EoVm)fdIzu6_Ur706tT6ek}@a&d=9Xx+1 zLaJeSDc!N4&^!)NO)K`EpbsAT=qwPKMy`)4LNIWz9=bfUOT5W%{B8fotbFPN3jTnP z@y9IBiFr6;PE|ROTA5IIq_V=IZ^|s28)B6XO;vAII)FD34H92uT-rz+MtRBR57c?s z{J|{tK5QHIS;=A~{l$bD;PJPHaR<&;!YF6N*Dl|OP4o{ZXMdfkA1dtnuFt(*0ed~s zhVMjw2d>2k-7&nX)j%-mdF~j20l)d2?SM#aG7X6JSW;0xA!Ha+R_*CWr_c1z2jhc; zb!&C;#G&{|xzowRb@AAs^al6H>R~fs;7B4Arm~LlMA6Sc+Sz0olQ6!GFLobgIe?Sg){pW8Uu~hWuNe4~tP6f-~9m8N_($3TIXSKZ+#&jkR z@8pB~h!4mhGEEHct!*PJ22`AGJ~TAs6AOMMI7{>U3ykggAAv5}6+|`l9f)r$mT(9q z-9(Hk>*D+iL^(d5=_%W*f-Q;~fkGlb0`^3f&~o14zRpV)B*kJsW4d433x*pHwc@cY zk7tFsJDn4|tJn!qLCB=t0~~NGFKQv^PiLE;Z;?m<#qqRJi8mRU%A@iUCtV3M>pgoR z{K28!Z*g_>7_@-d^5#|!DT=kmK+Nup1m`%%{SpZxA}1=GkWvR}Q1MC^9U>wK70nA_ zMH+u9!y*0bR?!EMZ-{wDDgH6tKwaNVOOOAaOuo~g6=!Nn^hEF4VA7L!bdk;$Y#;oC zDHtZ!S#(yHJ$nK%Yw~SVrGLY$ck2yN0Gwa8RI#>dMqldQ<*ar$=b&%ys2=A=j>kfU zR34`go8~Ic^8i}{y1NZFN^C&l!!ZyPU6~uSG7_EylPv0XH~&+JqH}Te6L|jGK1MbG z)#B`LyKCjpos~83wbi5}XS$m_FHIth)fk|dDF&cu5;Pyy60m26FuWuYl9TD)%tYrY z5Mrqi;)eb-bx%~CnIC>8c5S776~IeGH7+9ukkE)uy)f%)UMBA}tK&9Oe_(cctk>jruWJ}y4(&=F!v0P!MNm>cunpimvH~QT@ zh19Qwn>Pco7#K*Iek&4VoZY92M86@p7KcjMjr9kiIts(lISH>t0~RD-J`A;06^Yle zNie{-hk_S$&4?5}O$Y@$5{Rl|&+dKHSiMabAdF2r4T|#_Fg-3D4R%CO-*|KM>_;dXyOM^JnNJ?z_JP$I#&#c$G1f5oMEm) z9zw{C0cNa54N|otzKHtIyMUF{dhR%%-pHS~4YkqCZ-cAOJ-!MqLSOfNZttU)sbGg; zN8w5cqrr!tITeXq6a--l;dmw->Y6_*#lT;-FetJ1)!q((O+b z+hgzG3Z)9I-8Zu1Nl0=Cef1B>3ES;K9_vnl=BbQqH(~Pory06O zlFm~piUg}>_a@k4OaEDQ`%H+zhC6Z;l9LBAdFxeOoLgmVi-AXuIlQs5t_@f!rsy*Y zI#nOiIWGatT}dWDX$*%(rWlWzK^`23ax7Mq7##U6pB7|J-TVB!0>s8Z_)KWomSjpS z^l|dEUQM+UKn_dXV6uWnRzhg4!h-3%k)L|rV$#w3a?z}W&K*nP;LZRuK+M19GS11$ zL7kNYoSyt@1U1IqaSALMf@xs<2|IA%mTtBJE&ofmO0vGx`X+`~1mn?ot)r8&zU;cI zV3#4!Gyd!7mu1xzErN(lzEOBM*i7UDASdA@z7m?wuO$~rPBNbEV;1h|ymVGV)&i*e zQsM+ve?Em~1nnl$@;QLb04;V@+hA1ZvfYr$hMDc8J}a!%h9x?%ehu!&PZftKb=^9G z_?~zSZ8t+4(f$?yOQ_J5MaZyZR-R`V?b-h>^1#dY2jb!(HQ9V@!=~pg`?L|Ebn66# zx#O~CHq;sgMJ=3=To zlSfRR24&FbD)x^}{i6Y)dTZ8*9*(UIbQv(c^YCaep<>LPTrr=ozr1?Ej<+k0uNy&q z=^$?1FW&6>hT@KcOz}^-6i4nD>d5+Awj)Urp_Cc}wpdlSXs{~$M*cX0Q0IEGS)iWv z90aU$nNUlYvs|5e)TIYoR_lq}wT?wr65n~X(OH3d6lHo|T@Lzps}>`eD6{ z%9kUvT2pD&dHyi`mXgegI=?VUxkA}h3MHe-QV(8%h!tPIAVT-{;`<_!O7#e8WDP4~ zneGG$PYXjJsNZ9_Oo}-mkip1%ukXGo+K2ZKy^LJKbMyrQKX4J-1L3{#AsJ%dfi=kw@_t8wvi6qcU+||X={g>;H z3rsy7VLJ~s9evQF-ituvGbRwDDx+oK;+$6uDgq&dsDOfJJ9VL8RwAuRk|qYSdVY)k zv4pQCa`R23xz4E16Git>Rwku~1}SA%!jziDYlFl0C+M7;5V*9_WG)BBN@4lnP1|Vi zDS_W%x)rzDrVHSUrV1t-7F?1Ux_~kyup5)nsP5O)gm+N4TrW-yi#|{uG5(u%*0fb* zCUs5+;%42gQ+x#w^?mjw_JQ=8O$mWh@#9T-h!XYiot17FhP3?AL+r|(J;;5@?pM-} z_;No-s}mOQ(KElz0I+6N+*$P5L*;(B*GVhZUZBf%N|lJy?oWep%FNix9tD9o2m}zv zVjm?Gx1NYv&yKh#Mm&iN7s;tQ&%q0hB^Xj#$wjcYHPN<;oxn3K$j^`^5OKq_^t;H3 zQ)y}{4A`gnlxNl6+)Zt|mBl*f_T992b98)634PPYW!_--^dXhj^So}Llcc8NU{oO< z?;C8}yFM5mFD7V1bHECKX*#eR z=NYq5;>XG)Im943eXW|5l1HAdc`Bkgqlw&uY~d5E-F=ejY>(dJ)i`7|&OAnOBi2xe zvQTu98Hv|1_c$?;Mx!5S5twq+mNUaw1-5pjk+#mGNd0vJxK2&@qkRC>si}LCmp+n`T3om?Q?y157=@Q5g$~R?>J-G% z2G!v0svkB2Ou!<% z4v7@0qt9;CaS)=Ptt|W>LqlN$x%_|_8$RJ3Cg>1;*TP3QrX!A)5U+mlgUc9d}lclUX7`~?1%X2tt>LdILw27H&?HHgLKRfxYNv1AD4JE_kI zgvKeSNN$5(*fBK010z)nb?fd5kK%hK#XmHf?B`x99qD{MM=hnaKtUK_kzLEIC>^In zc-9XPP=%sKgCN^4Gf}=%_W41Bw%4O(sm>RF3iM`4(g0FBExJf1(_xJM=y>amx~=ii z`^w&_X$(dKvo-`>>#mgL#Kpp`9_9?^q|ltD8ZuCb5SN7*^52*15L;O|tH63!raJk$ z%?!=@Sn;UWi&Ic?(mF}1eoaRsehuTK445W^J@C__3QrqT-?Q^M&1wj{{a}SgC!Vx8 zpfB{PJy%bZVLKz9#u!KpKe3YsF($ap^4)d?W{D$Y*M^*8Dv1vszRHak?9dPB4Uy7Wk2ekLUQYIi_;s1W^ z(Sl&<5y(L7|9ekoR+3cxP^Ne#>kcqag7f74CSqOIa7W8+RUPDRfK>_vE+JGY7fkAE zmUf)R8}66CL*y4rDkx!P z^DsCcdg3f#7o|l_ofA+wF5bEo9~p<&L$%c(s`q(#wnEPbmGE*qbb0NWL<%g*ecV6d zi~n3LWW>}?;}rhW?+%LR0Njv}oB@(!z>0p7@pGf0bjB$^WoQ-3Sww%;>~*Tj#jJ9u z)Y6d>PV_sWsQ;m$oXRf&J@>Ty2TeI`evpRv3BByM;IfE-FrOJK5J z^?0xCEGf!cOq?!oLY<#1pUtI0%oNL#^;)5U3l=IE4E{UhEmDA{C%$?JSuKO-LuD+l z>NDR4#>UmA|JdfcNnerf!);&NObWh$=XT)UN^A~CKCSRfHd(O~2^KM@MrULAC$!JN zco|OzX+aO=Jc(%<$N@+sDZF*E%FBww)s_qze1?l($p0+9&hzw%a>hW;tN!_J!;JK5 zY?!J{kADXmsRlvZm$)Kkgm|$7v^d0{crHy;t>$vU4GkoJN$kc zY)aTlRreNsz9R)?<>4M3jsbq^Ya{I%&5ApgftCeDk19a*o{zLsP?hIO0vdomy~qx5 zXlSY0$d-G%%tb_tqqtqEdoy{=5NccBr{yRD%-fbMXg3xiL4KBfiNX0owl;aLF47NT z#pi)8GrN<###~$wPuRFDtSPk^wLWJ1N}?_*5A@3Sy3mAqnrnyN{L?u~f!AbkH_0?Z z!ekT_L8X8Y)M8eq__vy5W?&~|ld!z&N>=BEH5QG=uVKWRKBALS#&r>~8>#Fb4Rx%N z3Oq}+`=qRhN7X>gMF0O3^3u?cH!3&-z*&+(hcGP=y@~5|iKbwTWB~66D{KV6cX>p=`!2-Z%<4xr_*sO$|4UV*#b{&*OXg4Q*BbMvlHcWuwPefLON_LO5HIzVV?ASF?^X zs^R?hRLr{@^9XdVEufblYFB<|B6ch*>`pGzwnMvr!Zdsyr-O-{ShsiYwp0183*FLR z+I5NCQ0sF#sE&T{2_*?!jxmQnJ@9j}w5#d3uv!FEDngQ%7B8VR3|;1%uN6uk(3)K+ zzpRS-BOtv#AAyeG*qP8jBIgJQ&8{sl$0;ts3b(e=J=3R7k#R*9e+uGP{I+t}s<~7tlblOE!iH#V-CShJ-|NNY z7{*pn8e8%>pvoWHE_5X>6oHeoQ#sRwEbtPOvvS3t_%p4Cr8E#&@N<~&sPWM6tW4Kz z%cX^3JPHNeZ_piXDBn0Tk6P)y9J(0<#V#08D61^j4(u$U_T3JpV?D zq9i0B%3#5Z2LIt!tzQHzn_ibzT>1;Eflq22X?hVbdQmk?l?!n&DRNTq^C-I&bN1e5 znHOi@Enq5o%@B`-^BdHM!P=Xmdl$Z}qg?FS0oyCbq01_=#P`1pvRNckKRS^ha)6E5 zAgrEJBadsg)f)tF3OW!4S3JLoAF1s?kUA5;X+0Q#_;rQ;0+>F2-j0E>%uAPMZl0wk9rSS(=Mvg9DVPvuP4CMgkTf1Z)(U5Y%kL91$s z(_{`8Cv_PMazv!nOW+mp8rMKqfY^*UDuZ&lzEc=C8*6YphQIYlz%97eAmW~Y^an7^ z=qt{4DS_047Y&A}Yb$DQK7szN1f?Eu2z-L3kQd*{A#50kvW(E=oJb7as#77%#?Xe= zszNn-kvw8zm}h0?t=zDdQmfQLD%=z<0AlG>u4XSAHBf8y9^Sp%p8RuID%N=^RL#pq)DdHL%?7sVW95@Asr zd}9`0LSK@q;yq4{C0y|dUra!Q>Vc*?d*zd&3Mwfd3x>_(!D2kce|fQDoVn^^Zt7|N zMU;|e1_|i6jra%a9BlKjaOA?%rFGqgU1YVW4uLrnkY9DYmI=Nx|4u0(&D1PGp94_R z>Ic+p!jG4}druF~(5?uMIhe)lp<6|}BHw2WyjsU|Aeeq_swmI2;@x@y?560adb4Wd zOp?Q~_r_A@$B*F4i&4G z!7Qp@-JuaW7L4Kv3Y#d@wLf1XK7r6MtoGi;Y$Np2R?_C-9$S$VNH!nKVm5i$58&IXzbP`rmhW5x9qSzR-HP$h z!3|%nf>^<{F}cK|#2<^`z%+lrwHV331fDgGby304}e(0T0&*Z>pa~L=~IDgurO>Gkch7UD{bX9+zLA(ks#8&v(F}^W;H!%t?q%aB0N9=QbJkrRro#-&WEF-y?k?Vl=WW=2 zNecMk3~;I+EkHP@PiuvO#dnW^DD50N+(No5notBq>jtd?-I{{pDgrGFUGF=*fA;$j$46`KptXSJgkV~Fb`LPSQiAaN{UQU zM0B4jzP65b1^?!j@3)oX&^)yf4D$?)(-lvx?8(sPgh~b z`tBYmT2fM#?(v_RzMi8Y6k7mEx!T}JxN zIj>!yZ1|u**k*VwxTuu=GiXr!fgr%6oW$yvbX4@d%jeOr$+H_G{CL36eSQEq7mJl( zR;#{zIGxO3g{}&n{YjJ6Zy3iV8nwl*c`4-U^;l|&={1(z;CZdkC4kvNN0Qr~3-8aX z_yL^Al()%aSr5lh-m}AQe2ycHz9l}U^x{f)gS-tD)(>~MO4bx2p;mesI)y!`KO&!q zXWNo(4c>s394vjVpSWaXQT+emM?N`nU>kxBg5X9FgNa#0I{+XK2`NFc$~E3Z1drug632EiZ{AXE14l zcwM)AK=GGlzhHbS|4ZvEC#$SN`7#PC@d)79wj)G2ZZLB>qL@b^cGU~Hv7o`pXi&3h z{K6rlAOhrkwF;U;a+R`GE=H_V%;e2gXTdZym2INrVRZQ1|4?r&N3K4$TghnM1P zv1D=XrZ_u%=~#vpq!eE3BlD{aKtQRI!b0sX)03-^AChZIBLS|OuXc$Xq1eP3!_zG1 zk{qwBDneFM(8^|26LlM4g^~yO!Z-G!--*#`3XlR1c9M!)MizX3CaN5k^7~=~$sjGb z-xPKN5n^=S%q7Sun7c)42dK1*n~mR$gIZM%Q@(^5tzOcpiWnRfjAy4$NlmGmp96;H zDWKm=ph(M8*Q$qQ0pKk|EaEJTwVv9Elz>m>t*$~z*@WeIvML4+w+FsgVt0~C=Ux(Q zJIx5jdoBz~knYsp5;r6#UC6~ywgoV4us6`#_ocmUCkxZSo5mW=B{mng^)iM11J zSO%J0d%SS7U#?3!s)t%u>}XYbP#c38I9wVp^D(?JPWQu#@Z(pO_hGLSIerh4)31J; z*&iyS9kf=wn`K2>s*deCmI0cT&!>*8_O&_QQYOzb{l!`-ahBJo;-)ztwk9S}_E}jS zikMPH zwL3~BQ3*QtT{Bex&8>j~rS;F0D-RZ>DZ^EcQIhC&?*EcjtJczSmZ1h9wlRX(1`}q7 z)Y2*?_eEArGtMvIgVgCcM#8CpY+j0j!~+zw5-=qbOsT+Pbn>aY^n=093lG!WQiAfoJpJ;CO_6rAa?^2@ZCV{3?g4K=&dzs_ssK>*8*wl zqXvvNIuuAvXJEczeOvoTh*Mufl9CC6CEBn*BYdI^COIgj5S4RZkn&MZaYW>}vKm-4 z#wWIfu;e6mgsbE}LZ-PCN2-H!Ss28H0d(es>DJ9p3sG+c{g`zWCtqNd$WvG(_q_#w zMZZx}__f++o2slscTPxcznx6Ky@s{Zv>eoKlZZ?yme<2$3}_IWH>96wVNH#_b&6ml zV;vDDIF4AcRTF-(Omv6_%C??Kq_8S74=H#3sVk+EA`OCszj9xk*#Vs7pWe+y-xUCe znY?1!0ATzTyJCGh$#5Vp(Np!{ugQ0)D7D-5jf%%_3j?ixNTthj;A17}de>TsoTCDK z;fHq%tM~S5(me36;wfqwgSveGOx%Cy{G_6Ol;i_?Y7>o-c|Y%gPDixpaIWSlZFK!5aGC;TlKQHI4DK9R zVt-@;wm=p30-tu|H!)K^(Um+=Flsb7-CDMN6Bws`waF7PW~%-x!s@dRGbL);;blJd z%YnTvh1bbYSFx#GN0ky*`m**-6NPt3?{t3jtC~totlv z0JjtN!*O6Ennm1euGrtX3m~i9&|)Si2So^Kff|z8 zS!UakVPPPbeL{*m{rriQ6bxUBRlI0sHvl5jVrZAhtBd<&yeiSNg@Q246q10~b;hWq z{P;8=QY!NS9_42k>>_2~#2TR~da1kVB)s|XRi>=H^u9@4lI6Nz#?i3NBpM~POa*!T4h zvZizeWs-TZRI{qrTy6|hut+`j@t<`X3T90k1sBGEXA@Rq2*c?b^v-CHJ5uRxP*d~A*q z@}qA>aJ^KQhVo%PVkFjDZV<;h?#ra4O^@Z9&~gXizM)FMtBHEBT;iH^yjrx#QU>Qq zZz863zF+dzi|+Net1knhvRr$Ir>ZLRPj2iqRl_PdXQ+NJ1M!n(p8^sKA3#Bovt#Wf z+B@^nb7w_;9J(LA*si{B?V-j7J=%Tt)&d~1ML?pjDddkO%gkxVkJk#^+q}IsAn7l- z?YH_(jq^X=TP~b)Rws$dPtKZE+>ce8`)pA)hng9K#w2c2dBe3ei@5jDy&UQjZXAP# zTbuP}8Ue)z(*zi2j=FMG>`#AFPWX}(0OI)#{wxP1sYhEbW9%L)o@X~ea~;H{H;qv9 z$-&KRft|et0rFEoK+>hQ&Yi2<@?nti--DXFM12aivESnzruq4`NsN3cl<>qiah?Tm zgyagzPn_FHUiU?;ODVp8x)FSDQ?LOK=F*Nb-T@f{;P$B#8#d3++JbRwyx?T2zfaJ3 z6#EDoCm?ksIu}@$1r$4{Eo4%DFf5 zc(tuFk!k%wDDwA(>Vq|J{bO*89Z6`^`)yn zrucB*1yjcKnI^d6OR66&Fka9qugsUX-Sg^`D=h;(tm>kBb@oy5e|k1xYYM>afOfcs zAoU@Ddn5yM(`=VDnJhOJw1oPuv%{(QFh5mGIrB8BW*&1P&7V`toItD6H8t90xNsZh zY%qLwL2Gs5a?R!G2yKlAv%TRcO$Mj(NFp+8^4?!0fHw~VumZZcLO|pkX-H>8~~`*31L9ieKWXRKVf6CbeJ>M6oiWuS%cVw zv1Z*IyUo0fsVBY(tp^Lti;`-q}1k%)Q z;L>5yfdH=x%3oDw<+=XC4qtLDO6a;0ZyJ=SWzjPh|i6JI7xzkeHV!g$rndZu-CgS$Y#baU&O+A!PSDtzTjX%M{1=;j$xn6 zjwlNftMJDA6O8Ev9xx;;Z6Mdw;LqS}KFdt3S})4xJwbtQG9>Aqgh?V{!IMx2S3^=* zElpv!A#P3aqn&$8AaL%BuI)DMyl7pU2h*=T>dQ}+8cE2$maB(Ode?-{m%j!q4Dak+ zq-VS-JG^xUhks{+{RXNZYv?@lq=MY@5uf*&!9Wjc6yN z%CQ!FC|w}#7h;@>ZY*0~>!C40O;3)&7256P*|-I)@NFND{8;g$Eq}Ddk2e39kjC#a zKY|;-UcvamloY@uDDHItOJkLGf6kWEHNM-8|hEFD~Nyk*CI%%(l_3#dI%GbcvH|aFpTk52q?QCpx;ND00{X zRgrZUxO2`Vz%m*-0k$k`2N;%@@O zmI@@2<-8oP8;HtOB^+HNJZUpmtU_mzt|C26e|W}I{Ewr_UAjE6&dBU(*zzzfd)oZ# z^MIHkE|JBmxvB^lnFh$nAU%>0f)~7$#H4!@8?jjcORt#@Y>M|Y$<;KtMnZ23^*C8D z+BYAsti7TTBftWF%_09aL)hv{ZXHhjP@~gGg^6116(6D!@*5!>kQax86Cytmo;EDh zpl{jQO@tNJfiL^eSY3X;Mo)KLL!&0uoOSSMd|LzkK5w8O^qQ(G$rK)E3!a><=)(u^ z_+U&-;3s?@DhvizP^gonI~@YT0S+ndl7mTjsxV6|mOEWl=zy%Tss_Uv7_d0ysXBe7 z*m<0|jAu_3YL?+qZe1XAWMBW2c8m5wPKxLt-c9CazgBMe*woQih+d70r6B7kV-1DK*^KT*I?ajnGOYz!;AibWVp#*+8q)_WfMaZj*1 zMWIK54mCy~=D0QCOH=sqOb7a7inD?}jSq6LrH-@I5ZLW_$axk2;)-nQgjxHX zwduQqQcZbU+QnR|x*QUhSOTa5i<*$BYlU@K4qf$-$2qS;Kzs_HsZP;v3u~>e3UQRr zaVtO(*Vhg?UWxOCNE8sh#qRav+2F}{+&R_JCQ9jxhtIg2t$9R5^0*cY^`lY`jTuMv zT1f{WGB&Ro0L`1#ZgWW^CGB!`PVj#=%>Mws#*VDa%{S@ipb^v=ATUx%^&l3GI%CR4 z^kt(=L8D2qc-~5s&@+sP78)RMLFmKGHw@u*Yv2F!p!UL>XmdrCcA>7 zV;|~qF`Zy__BbBDWw_Qt^tt#(?KN=@s`F0-Y<{%AmVsPs0y$0>CFLgY1;$K4!RjvW z7hqra1#TaC|J)2uIs%6*vcmhjnZ>$rb&;H2?0>_TQVKTJT0~0^>Mra~ zQ)oUG_GcE&H0M&en+n}D~{;x)Bgs={PWrBb6R%TF3Dk%tJ z1x0vRT?*%$W9*nhkJaZ|!MrsSW#gFhd6XO#)LB8gQU(*)_M@&h8^Q@td(~Qk zNJIf2{&moi^r70jW$fXF?tg{e$X9+?&4+uvz(e7gLNuCbUlzw zapU;|;6$KDQuf)1Uxx#t91$ltMGV73@U{#h0QBXYI>v)syLviI-vA@DVPc5o^|czYL*hq3b}j>j7XbA^M2 z+?^PM58&+WvLPDGTucgZ)ca^ipv%7RBP-o$xGic~noGxodkcLasJ zWVZ52yhjNeeLE5R`o~}+-Sp!My|L#DDvy^OZ1T{!u%mX_d89v|uA$I4Z~_b*Mu)h| zbQ$JX)kxmXw?U7}c8CT~D@lzAMh|2Xc`c8^`%eRNg*!v6FrG!IjO7Pn-BRz+YJeeG zx_&DHtbOVDYgbD7{Y^o8HBv5RY3Shi%{7-dgh3%dhO<$9-XDRO28Kl!qTP)3aoTJ) zzl2=Xy`JdNz56NX`$4FzN{GDJjNj6u+7d%p?*Rp|1RLSnJ2t*mgot&ov4h3#wE4c~ zf)Es;Z$bN^+6EB$6$KzUpWC9EIIdZA9&|ooi;8qe$EVm)`UdD)L_M$+gDQ}i@veC0 zlt&w_%EeYSH1GQIIO8hp`~rBQXA)e7PlV%X?fW(X zVxTLD$hWabNW2t#fG$I8XwpAE!yz79fh~y_Wik?o)=G+RF;W~4P`D(TCk;tFL42Rn zv>QQ}5jVgTLzEZIusRCCSSFZI4Qnk-p1zg>)v9#PTg^VNFqWC?sXxR9oH9p&l*VHo zBK9e&c_+c>7v%zruYXEJGXzCGF~yKOkF$AodZ zu{33el9se8U~h#)-C%xW-f~&X`J~}5)Q&BX1(Dq4-qOKo6&m-LNkq5}U#&F7gsxf2Dye8WZ8xO6S@)S0R z1P=(NT|lf5_dE$&b&AX0U#pdb?{=iH-uTFLHv!F&b6B(keG>HhYDU^liqNZ@N|igx z(YzJQJDlH9ZIHSms`Nt)!JeND#KE-?HR5E7ZYgx=*QoTIS>_q0-6y;ub~zpbidgni<^EeZPykv()cX`p6K5-bCr@? z8a?>o>2aqOWmm$lwt+=*KTOM?Gpr%LvFD@ZLZO{xFBLM95p{A1+)Y@?CyQI8G-`!} zN_kr7!&9K6if`L+qI|5s>FVhS!gD^}f0(L)UT3%k7#J?tRY3TAA|lzMRD87j(BuDrd zV+b+Z=ZI||5XZn(lq+TKR9-??ykIFB4d5tgAmU-QJiVp+*9IkzX#zw-EBsN@MLww+rACdKd_tHAba(P<%DyK0f17Rmk|{qeAjW>po@dM zfr_XRRr(tbek^vCw?a3q-U>8Z4CI+*r2g*#_o1W*Eg zf#=lJ045RIWyQ3&u#&I8m${rGxq(jk#nj?>Juvl~FhoFVR4X)*2ax@?Oy-0VF_8CN zF%`|zfE#)b+Hg6YuuiKN%0VlA1*jQEa@3|gV59acbPkT@DUzWU=91^>9LUm~W=Xd=CrAdlUJ7Rm zvoOKCnF6j|w!EsGD&a8?-dbEyxla0BkUn=b;dwMvGhyUc9{RWZv0oR#Nad}Dn(evL z?MEY+QxnU{UuV6_lm1}bPDk!d9&*;iJDS<(|7ixMn}yCe-ULC|P6S~yhX$Fs4F^ij znZkY$jY6*s%7X_)QB=$AP{dLNTe^uUU}!=AO11~o{M>RMx{n{=bYJL+_FrK0L4=?K z55==&OLI-05sNU{C#HLu%&WNQi%WIg{8?n`c09gaJ(r4r-5Qh5!Be`zy>(mEc^h(@|W&kxk_ZEY<1ip?R&#YjcowZ(_(HiWyI zYxIIKIfr6W8t$gnM5Ji?q(G~M(77=J^x44fhOue<(@|K2f>$uX8^?2v$B_2Uf#+7Bx*P=Te7Y+?Ra zL_EV<4Cu&S&Ufg}Q(4i|emf4aWUR#_S@GfN&4AY>GXWZ)0u&W?*k5jinMnYe=E<@? z1??(j3bj(CYn)MwB*qba5rdp}AlG~q)2j||>Q97C9`1|{|32fbW<&=An#|Pp`1$u- zoLejyG?P1@FNKw)ZmA$OOs@B_QtNGru6wTuTmO{_W~o3cqt>N^n%Pr&sVyu+uRNiXJI|aQjPnf8RNfr1?9N?Q`nVwem zYQH&k=mdhw;@958L~;Rm{iBAmBV7=s_j{TPVV&9y`eJCp!t{E-{x{aHfrEmO7B|RK zF2I8HduM93d=D^HdUc+k7PX|-&>w%f6dU40o=Lh=yFHFSU!k=tP{0bGg!AAwG~t$r zC`OiPv4H8Zd!U_oRLmi5A=6vR#E)_@XS_&HPFlW3-n@xcNgI;$_;?R~$?57@Z@-80 zsA6SS^I4JV5fR7N`P@=vX#rNsEp7RlYDN}?YMZ>0R337m-o>qx+r(}9KNaFjQ3yF% zrLW9~mGc4qH~yCI?GtkjZEP{YoL@7x`X-*e!11(wcmX1Rf<{jYmu0Qu10Hs zlvAZzcTKO)cTN7T;jPxk$l}RB0ZVZK)ukJU#9!D&3u}8SfNhiQJytRYzsCdx0O&k5 z%W!_=IC$GHq^UOY^{U!(lKCOLP391h$}NTPxaVMjxCIEI*26*!xe!+7M!p&%ke^EG z!HQ7MMA!pv)Q>q`7y#H_Dnp+)nx^+pqC{Ci7yS zGtRNI@Y?=Y&liO)UFg(Z7o6aWtwBtz43N^Fe1O?>yLy7yqzyEI!nw8)i39md!|UvW zXW{uxOe;VL{S#@S41F%XqGdTte2F0oUIN(WK}UIk)7b)?8O{&+XOk6PId;l=b_hbY zafW#Rg7KnLxAsLwmYi(PpCWW-;IXr)QIIsuE|oa8=1}uWT~pqcGk}AJHvm{j(2ayr z_!Km*QVevhFb<10&(OS&fhxgx<|}42!`Kn2?*uu}L=teS>gdQ&^xEoN-TSSfiop)K z>_Jnv^688ZlO~VJt4_D0x!|2Vow}T+(|nV|nMipra~k0gvL4P1e(&@NgAQTDp|zW< zvryXwQ1}G;26P&eBQg66Ldm+}7MCPs=iSKk)MbbN7}{7)23FM5w}cEgTS{8d&pz15 zN}4%M>f_>@NSb(Gv17(-RV!Db}W@h`bgg&7OSNXKsH4CR+hh5#Y>eE1rrBfxmyr!XzWy8 zWw`3fA$}i6h-w9q_~p*c^BZJuPn2f8ha6nSox#%V_*A~lE(9jh*1oLSXP$2B#LwI*CEw5kkHiWB@dRk zQ~Xbt$pxp$Iml(H6ombDR}B$;8)yL^>h(CJ`v$_lv`r&%S8>x2mlm`CY=saswrwp+ zprT$|D1t=V0lWdfa4!)X`YcYYKI3GP2f6=6vS%R$ws$GVFF9l_nk4}X1otgdc{B#| z6aYmhTV2lmTS?hWLJ*~lf@G*FPjQ2`8xZ4{tYJv@|NRI77ZKd&K>(y%D{}u+lv^;! z(QJRb&{wKd1p3%9fOoTwT%)*_vAk5hW}OOB9o)+8uv$M3Z3gUj4m2lSk4Q#4qEa#ForkPqGB;&?0CsH9dS;%{ z{1Ny63sbH$=s0@IjKWQ^&OYhcfnDh5_V`(SM(roH=+ge`DR)8<=i8>#pOR{0<|8vD zKGwA-N*TYlebn5y=chpXk-b5u5I==ZP!XFLx-Orl&w%9e1XSA;X`dkzr(oOm1!ht@ zz!JoE?ugnr%&NscMr>UP^Uy_hs$End2gVI4$pFVSe2Qi~!zXk`*#o~EpK`(bC>oeH zAy~A{>n5wPjnrp3#vCb&fC@~gvMG`%+#!oVQBaY&ySY@QH5Nmll$WEf0d5QK$(X|P zq$cRuS^8}OpqPYTe!F?CP;Ylhbs!QX#uKvQXoSDw0?iV(!xZt}zUP%}z;1wk0#$^dMgO<9SEK{oVvM-+`UIo2#2D0-$qAD@OkhWp?TRXx}=P~&4mdz8_Gh*A{k z?d7wIAmBPdl7gI8U%b6trl)){Z%M3=?)7C%a?_N2)P;{jS+L_L#dQW$ zJLGSFiex?~ahVWKws_ zf`P?i!utX!r#d`$4((DY3svI(d5=)?Xgk7Lryb#7hn8C+;wwdBe@h8Sr`RM6Gg~11 zJthA9!el~*D5-b04k$F^Qhva!GhNhV7hBVmy?F5YcW zP>;82+~81BWLS}wW)~wYYH0}#{9=a8SJ1OfycR{U$=tfUXl8dsaly5-wPx<;u+uc| zt608KaT&C_&{Ox&+j>D!6&C(l0s?;T(ZJE3`FUoByxaAug zJDRPuWif6m5g=y$w(~!GAIt&Oe;Q;mlruX4^uSg$WLZ;W7a2>*5V=xfyuFz4F7|I) z^aLGr&Ry}Ga$|6Q5qla{3{;J@MaEs09W<-&giK6F1!V-v9!9AtRMLSVTtc~Ka?4ct z@C4ERYlg&|aao{EqcU1DGZa;!GS?GW%l58bU*gdTF?5_MNbOt&h$7y!3LNTkVd(Q3 z-X0hlf7k%u5UFV%*-tUi24+>smVWiGO`5o?Y2f|^Yenm?nwI5sg5GaQF(gq6eFxTy z@>NLqySwaCp6!(Q`gHT$U$Pjgo7llxB4nmJ=pY*G)7YKg zkY|=_)$7LQE7vxwNSOPkpPA~-``I}YEofvaSgN&b9s-}84snBexJ_}x3yw+7zJ%K3 z-*|ek!g-DQD+F?;tf1Tgg==u0Kmm*p^Y%kxEZ;|dtfk>4zJEk%PTVUBh0WF?-YED( zUc_pvL|v#BcaWtiQaZ|ZBIDvf6V$Vj>^o;&0YrgQw{#m?OT(XKO(jzg0diNR(fM;9 zNCAEEVdTJ`U-!YdEW=%!vmt{s_D1T4}N1yP1!05Q92(31R^Ow(jhy?;)gNdYyGJ%A9V4;`Z?UK>&vKW z_@ST^CN@{{Mvf0CwF#-~%Ge4!Mm&u!dblb-Ihb_T&U-EXPw6MHf26 zkL=-m^u8D1pA1`^X({)(dmcH>Ck36Se+UlWDmD#5fA)`TGtv?~)nu(R4n(lKfB<*M z0#kvD(G397K<;tQLzwM`({=4S%k@bK0``+M+@HBE;-1e8y3%auUq zcJE;CnJ!f^ylKdZr|GVcW#YFDgNWgci?FjuG1 ziSD2iuJ5c48)-(2v6$S^Y*+{Q?IQuqr61-ScDeGI!ov3=ha)j;$LI~nVbegl`zuK^ zr+@1^HR2yGD{{lOI}5X>wwxI3kEsy3PWj`+y5H!Sun!yei-n!U%&X&+fOGr zKF25fUD~Z+V}8%jY}B(gKs0+!1-YRo|N?QDZLksCveIJT-C4HU%t8G>~|@|zdE z(Dej`Z7aK@-;#cYEqjvx9dFf(S84Wcy)oIvX14T*?+mnKQJR}>sClcS-9$h?z|$;A zSAm{_L%=gf-@y^%Ce*vs5jw3fB3MWQLp0raJHFK2_pl?GN0gSm5t`__^OJg$Yl%1N z02aqpb1NB_d1rmj;){WoEq$#kq$1c5s{1U0ZksJEYnRrq_=UgGA= zTP`WR7Zy(@2wrbDt@WkWp)~Sl&Oh{Lz5@S5)uB1gzunLxiD{-U&|a?!HEe;?oX5U5 z=l+MOnL6X=o|l_Rl@z-OF<`cW1{^1SF>J7hY4l zW^5g?HMX9Cl-{dr?z-)BK#e?DqxkzfALgff(my3SEvEJ{*3aiPs? zb6-Z$%jM6cd_n4xCM(gbc@ZVbKt%TiK-!f@Y`Vu^PnXwNTTyG&%oH)sxkl}_gNR$6 zs$9YWICw5!ND;*W6CiQOVcj+<^#Mfp+VkW?V@=8;Dn56l2vUl ziN#^sr%KyA`@bLGmVk~fOd8QxnB8zZmvmpG^lzfiqX=c|_XIV4Y_D+X*8XJob2r=B zdIXkQbGF-tx93L1xNcXCvfkEUCISxD9P;UJVV`L(gW!q@z_LA|GZ`e(ND{YTRExwQ zym*a_UwUsJIwJ!Oy{fJv-2ozrSkhvs5FEU^u|A$*kVyvlwUL%1LA(t}0|qN*5HqBt zeqO1}vEZdERV7fYMPr@4ZnvhUI)T!(ym%AiE>!Gh+V3x|GO?I{+Dnd=j+Q(AVr#2F zd8i_z8zA+1u}Z^M9|jLzT{B@2TuQn@QQ=Tg=Ukvbkt7JJib*p>_4tSm(Aa~6o@wk*`ILX7}*)B$iuoDg<`FKs5em>- z0z^d$;o-gMGfxF2qg}?rJt%{!@as}5a}A99>ImL3Y@iE8aD;*KL9Mg4S&nqhU_KRz z)}1X(6Hf~L$ID56#{hk92v#uZ#+b3b$5LAD$%1IVy!){3SED!Rf@Q*!_p+}jop)po zhlA|0?nq-+%YNE(5Bh=bm^}B!vl5eS*AGGn5hcI`KheuSMgFN)T+-%p*0ZgKj74=dcRysEse6=T4 z`QMQgwG(i|phg=HHSYv)WPMTfrB{fER3d=U5P;dO`D#>pIh1?G_Y(3>Vu`kAW@9C1 zi16xH8bUIQ?VMD;1#kDZxbOSM#BNR$Q6yTBN_-!dQQc#PYcgs&PQxLPTY9@D?Ue!4 zVyh9==yG~>fc2OlwHdERC#0w%POpEouAB4YO;f$Lg0{Hp>nMWAuhqIPGI5iO9mO?@ z>Z73i><*H%c#-+DQA0^K5JIMPM+Ik1rHwQ*nEMjhlMD_>8#u5icxZ2l22op}N!a^W zcQ1)(@)tfp4++91MdM@Mo49iqJc~hl;*a&q z__XOSjw5{izz_E&F?IED#O10n5MH+h$gW&1psrS=M5#xZY5_)~!w%SnLz;Yrjh4b1 z?Oo3aMR4Z&!y_rFVRsWp!0*>Z-!dfxygfl}v?vW^TM6ej(UN1fqiv&DSl56nc#eph z8fVlJn<;%>7@F#D(fFgd?tT|bPcG`ii2OVDst{1S_vVKCh{W(PwqO_Hw|S9*+~V2L zDJGXu(tf%0!s^7jwj4f+hkA{{gzEU9io)ow%A93hc`klLQ0S((gN-Q_HbniOYII{e zNl+pJ2pD$QwOx;+m!B*N&tm%Ex({6KwquRb9k9>q*6aBD(P5(8rj$0DR*E#sO%(je z+HbzOn${Y)1iR;E4}GtmX%o5&#PJtI$IHJC=jvl-A#gI!Ngw8wND>!Z$gaD%Uej9e*5Mc1Cq_t?kRS*01h6h!J z+Z&hfb<&LW_sEffmpWhCY;Na3k@r`9m{E(YOG<7RMpx2#yNWpHs$Re`O9b>ssB z2Dd}zfIU2_FuA&-eQE8j=_co+$Iux@#4)j&3&kv0e2SA7r>bqh0V}8@<@tquWE6G6 z=_$(z0jqG|O-L!styXYt{Z$mfrrp-Nk$n-aW822;Y!5bQ2J6J;rBYqP_7~U44*Vn( z`1qkUcAjkJRZ-+}LFvo5tXp&yslg%Xq)o6A4ff@qkGBN_{QzdG6F>x>JA~SzbO}(Q zi5AN!VXQB|za#ndlUM6GUMEQwbkBW&(s2Qp2k=t9-;BduOHCg-ezHaG^~*M zwO2m>o5ugyUQ$V==*n-qQaK|0%5-6balI$jID9kP_>#?^C6F`MuJIp`bPj zVSb<+NhR}=5ms0r7;T(NbhSw?Rv=c$6W1rL&>m^mE(b{SoA|fg1?j!nlLhwE6_@^t zEje=>TvL$IsI%VOTub`ZCg?B&_%v|kS}g21_`}rUD`MU;FKv7o^Q9Bd{?091{^K%; z$1$Lu07=y?DS#4C|3e~S0n#u{x{~O*ChAHOg*9jd_ZF@S@VK$b^sCh8Z2RH%3jfF& zR&oeR(wgp)Qn&%jfBYk1{OTXy3LzP1)(APME{{e^=8kEJq{_a0OWhxobt;? z;mY^f(jm;9pt}6N?{Ily@9uh~iR>IWCaR02K)FjCV?qme^6=3<(=BqViCNVJ3MjAt zrN45tmqCw5DY+|E=_(N@;Y%Svs}}LQW0@bc)@A{fP2YbbAW5~wVlIV|KRm9>^JXN~ zeasY|eb=oakr_xGi((Z{Tdwc|@9;5*=|ZJZ^a;MB$Q!q<@sT;ibjfI+gF(fr+CPxd zLH~w^J|qyS^jvcbY|(s<&^Wt5Mb--zvxYi5U(?M4ZQ%6`{uglA)9?(uU74DCncecA z5+a)81N5GqnByBL4zVes+}Uyj_AW#--_eCc3%zFTE`7NOZ}0DwcFBo4$m$5BkB%>j z1ZK-F-BKa)zcp^l-yteOBc1}$gk*0lTq!)cdNuHf!6@@288V;+Uu&V{v+OcT#*5`y zXXfz9TbSFIEXdRiZE;U}(53>*fN*4D1N~b}u|Xk?Y^%BC>b5TFaC~Rva`eTa*p36a zCXahnU&`F`prWT1@*&6rZBjFx>gdCyN^bC&^q-q?#jYe3x8xP+=xYSiOtT~d_;4-- zD{kH3EB#H2x(i`>&~c}e=xlk;CpF>~FYfB0yYceVkE z*LN3rNb$1eav*_gUFXM{|b{D$?da#8G)ds0t6YYip;9))@k8$0URkOjd7b7f5PUO*Y?+yY&M_W>=kp9&c7 zhfYb!Pb4bcwK_X|ostUvtQgJBVZiRHVrc*?XUY47@eYGB} z&$!<%nLvMA#k|Qb@fWE2t*VS;#ZDZ5d{@VT)#X!FNeoNIs~q}Vr&D1e^lYVE7APj+ z%RdV^LX2_OMzszlyT#RGD8;wZcP*D;lJn5Y+vu=g+;Ptup3SEiFYoSGk6EG|M|=Xw z6es@$R9f8h#b;bKss2G3Kd6YprV6oWVk=Mb3rmRIsLge%_%Z zZB0mQsoT|BCGIV(W!?_-uJGZ~Z;zq&>RAoe3Nkj6^7GG;T%kHHotIJ#vfVPB#ZX8! zsT)-Q7cvyHowb#}%n-|#;6*xr_7E1*&N>EhaaNJQu5@1JI;8iA+ z$m$cTC~j%2X&}iH3v;|H~UF5ZiA^o`^5 zC&*4Y&YK@@FW<0IKH~)@H1blzZMh5kl#B}jM*UikhFxGY!f(Ap=2uVmSz>^Fg{H(W zd6SuguWtJWT|-haI85`8#2Nv~$)gfEsgBc@R8oE(*RhSgk#A~_!5#T<1ocAvCgw9G z<5D~%tI$Fw~)1e|InD`u2s%nc_dNF5p<|4=%M z3<7v=4AdK8wLR-Z|5MmnF$sFwE9&TBopn&$Qy^tWv7@G+Dj_KhaQF-wKy`dG%%s)A z6fMhU*pY08&G3i#j2k)9naGad5NCouOf5dlM=7G~g@G8NOyHgBE?U#i zA6H;%cGAD+#W>=hn((eqX?|?M$iFof>}%|DD)U#*ub%3VN=@#&J7oD#JTwJL&_ypB z9aWSN3+yjfT)b*%<5I{UdN~J-prMv-gt+^*rE!N-2t}FBZECB0NtI|3_%+z3If9j* zc+b;0$@U1cSkbPgq=wVePdTUCJ{X^93#y9ok7tE^t9fQOqjoo2j6a1wFkc6ua62qt z?WXh^oj}p%nP&kR*XMC3op71Vwc=1=AGQyM0fCJvJ{Zbi5QxmVZx5T|Og9+>nuv{Z z3vIxcuc+=_K9b5?Vp{A%`2n*t5B^Qd(?c?g6@ol#8h@HytalTw1@3*ghh9qWNiA9w z6$wzo4Z0hk$F~DjkgYFfDhkNHh~wkkt+v@_s`HVCaJYY<4J%Bcmkzl57R3m7AB3`3 z_#`d$W)hvF9xDljR?396GsDL&Ko78~;0^Vbqs?X`z@`L25J)gxhenw}4@67C!P|0T6Z-4XY7T7^J><%fi1DrL zPIq{IjUoTD!@|8>`^SbC1NJ6>@B1hsMwdM51GrHCPO)GJ2~^)mkE(8x*|WC18n!-Op`*Vtlt;Eoc*YDtD-al?T5KNEEDde072n|@Yih9X_X2%i zFkL(gA`ebmptXValqg_ncfjC~eZ8a}7r9hKQK40bqg^s15y5B2)o8WX3ddB(r4B2S z*Szkb-87Nv7#brV0t`wE5S!FyydxB}@>Oo`bmr~jiyo;`6Us@#CZ~o679YnE?3NH< zRlZm?GFGND6L9fRWXMGZVdX5{4f}sWYf&uK{$vH0^lr)l*6nBYv6B}gI2Ty#v#*qer6&L{j zosU?QG(aJ-d3^zlO^%GxZ_2sq#^(*aSlJiM|D8} zXFgQah(>hqmr~FwE&9R~i}^UbxM|^+?H!xqMd4o$pB3%w$5Kl@UQ*Wt$H8x#xi3*kVZM$q(Ns<1kl-s2_PE2VwRU zyK>)^VGQSfrvL21I(>QYXdT4*u64s3kH2-l1Tl$%#t+m=yWEdNlC(z{Ic>(Oq7j(7 zNKKP(w_66Z-+Idq$R=!|Se2LjV_k+zUqh1V-M$62T*APUWdl!oFQqc>@=8K%8O+q< z6RByj9$7|&G+DF{D7R&{I+ld>NNE1B*)U4siK@WYGUAIKoEM0#Z zYO1GOAtlIx1W@Pr6^KMu)#|%=$udkOf^=1^$-nCIIwN7)^OAyOa&&R1mgz8W$W_)nqmSnV|StGC@mcY z^y=gCEX&)l_0c zL|CC2>572MYAj~KDvZhZ8B6@F{)3YiaC;jdH*^R+3U+tb1MClA53JjA0q$kkv7OyH zkHvcIfiMZ!CgZ^=okpn#4&dfmrL-hrhTv_M*ct|WPr^E7M7}C#4R-q3ql&X z?fYQsV2$xUMHQNPi$VRbtRFnCowX%xsPD8Gao4z{n&Bn1rwSq;wrMGZ52;vwts_Ff zqR}lbFnnKumm7Yn8N_@T@teREWdO9loVYeeCM0@SY=}adM<5FV_ZRA;zwSGfjn}~0 zOpT*0A*Cpgh7i%@5J?S)!tSOt8m#w2;r`(6S$=@nbXevfnC5(xlkt^yYo=YpRA~8S zmL=M#WNs;u3^f*;1u1b*`3I3ZHJEmt*nKuDZN-ASE27XLAlL_8l!kO-1d7(0$Tx2o z@0i4Q#Wn{DInivR0Lz@N`T7Vct$O~NS??_9YX5F-XMZ{O>p2#ZU?c`fVi6Q1&hOd; zKzC9T>2-Sm*zPn88cRBL;6M&NLE6f%FGjHoO{;EfSH}2sD|sgB=Nd<`;v#R-*9Rpf z78<(E=r8b@E;M~LD@0OO!h+tUC%O&TFkPEr?rcaiW@e=ZZ)fl_iwvz)pa$viET1;c zZ~yb(>lkkD`1>Flyx>qJL}7Y#>QK}O)k>ga_8wXtjtVgoO3GOwfR!_Kt_0%jR1!*w z`}3(fD3G3c3i#_6FcaLblS;F;SFrf(sPSBo2C$4Th2Nh=6PvrvVCgAVF&Ctk8F9M0 za}-1SHjJQbx{5^z!NrMLhVudUsA6BR@SAIFo%ezMY7uVv2S49t9P35;_5}`;lkOU8 ziNWDzcA@?ihUQK8cpcI`gp%w*|#~1i@aaDjkiCb>B|JlR;jq zRY`KL{++-FA{=7{Fpfg;Jon-`=}5$?)mJG)sl{7(`4OYs12}N|IKwm|Z|)!S*van_ zRR&r8I}NW~9Ux!0PZ(WY%R)5lV33ICi#RcM<)JvH+8MlTs0DzAH>k%FJrv{J zz1ugo>k3pfo#IP@lgZ@#P@}y3kHoH?)gRY8QaQw#V)?}j$Z?G;H>*;_9k+KC(o?}- zGA!nt|KdX^;F7&Z8~mP21=fYcm>0-dA0-#n4Ln^4I{FR53;`R3%oG{Bt#iSHZD?M$xZ!gFrc8toEvzCw1sD(j&7c$go)rDN!*a8Dl$gzzcE;J^ZNgyk zOCFhxa6V}E5!y^692bL#w*nM$O?-NxD>Eqb@yvrtM}$*=Xw##T6$t7OylL0u{bMn8 zV4;Wj`&e*0<6wRh5v@aHt44?P+git&OnzHpE$kj5=sSu>ZSOE@`n;MEwT3g)M67jf z?<_cJsjOuJVC!jn6HtzIL;TQUCmrt|z+f}*N`D;|3Zn5(4X!ih9oLy$O^5WL74vw6 zHBtnp3daB<9Y^nUtBu*?2MgL9xAz-q{GOOX1M>^s;(+^-uHpG^<0+daOYsGw}3Z%Am~J2T578X_m#qsz_aslm!I zvEHy0<*fz&gbFN=4vG+iKTwt#LlNC{(0SI!D1VC8?Q4;>a3Z!uw9-%R^}^oPnG7%yPFM8D zB|%{Rr|*>?zi%Gi;R!bCvEo#AUhaexJ;8wKj^Emny_+XjCij(FJa82qrVPlQLF4Oy zua-Mrg*sS_H_!q3#zu}b)k)M$c_1^n>al>AG1tq3JX%5IX>7Bqe#SqfaNbpDq{Q!q z@-YH(<#|JTVtP?e%>rP#h(<`owJOf9(ztXj>N=7@#Jg4z6@U0oQtVGc|6}2qM+8c4 zVt`6Y2#k?1FbgGi%F%+RyWpsnk~J-CVbGp9ekqt2zErv4-@b`7{`>e*JpcQl=0E;k zki3|jY&4%HGL(o@Xf(I^j*@1~nbGl9*j~r*{L>&Y`{x6geCb(;;;V)CHt#iL2al%lY7Lg3K7PZ(Z1t(>c$?naXAc<~pk%~SNNX~^ToU2z?ZEC&<5 zLD$)vtX=L->3y6g=VY45kZTR0>gErZ{`{+Q_pZWYm!MdH+*|`tz0w*1R6mqiu)dh9 zp$_vo&o|e!Uk*St!$%v{Tg1mB zEu(m>foEC68*ABlUZx7tf~>%y_z`t%hs~m=_dn=Njcsh%${tgEaJauKU1v|C)RJZo zPPZ0jzsNpdw?|ZI9qb`7jr4#V<||M3nSQbr6nW*RWFt|no4-R90##FF(v^*sIVZMI z*)V>sTiCf6mS9R>Kn)iDPr-QcFe*Xh`xFBRKWLU;Ytn^9*13Ak-!A{$k2;cZNnu= z0$8=*gZRL+KZFZ!BZQuBq_)+!`r9<7pi&coz+r(DanO*r;>VTQ++AN|V22mCeE{rR zi*+}iG&|VFC_s({gb7|~Neidx+I>=5V@+lOSDhk0q}ikU{_}>z+Npq(GKQo?{dfv~HlE zhr_`zh*;o0K%ku|`}xQ`*rp?i@F|4zTAN48@XGlOs6WiNzNWbF8-pZzFsIEcL(*G z^ek`NWFp5yQ2F$4F_<=*6o}-W%tD5s7ETx4aUfvoK>&Q1BBmVa-z-)dnko`pTGmg! zLw0e+7XMS|Z0ROmkesS4@;AMV!qM#bd%sDiHYRR&xQ+GiA3m+i7#wZ#C2V5lR$jbrf=>Fh`z<|APRNI(G~p3BL| zz#(YD(#svb!IW#|%<;0bB@mnqw%31QZ(0h1)SX=*ubWU9bQ^McCOKT3VJb_`;W%Nh zL_SiP-_O%;YA6d;Mc3mUitR`H!SP85!`<+#;@@!4U$M)F6Z@9Ny??jUcL$qwM}~xV z+L7SNp(fF}d5+{%4#xDiR{Z5k+gTB{)#tfp_V~hWF$wOk{@raY=<|ZMwK%*a5}-asD`9*gHEJj7|pL(McfyU!8d=o-jaKHT3hKpOKAv&D%(=u+c*G0 zGa1;PheDgN_|zh{dcjgn#Aq_gQ~AAmh#GDi$cNAK23I!a3$yM_}C zO(JYB8@aVHK#r6x=GjND(JpQrnk$WUzTg@4(tETF`4X7FsQ5N5p!_p;>PGh>tX*^X z1H^bj8COdLF!t^X`ROr-1RfbI zy$VdLSirm4tqDGdY5M7PsiXs-kqWO<$z$G5>tBscYnSeyJYQP5Q2Fvj`G;@yE1^v6 zxktF0&*b&r6@(!ExOjjP(WDQo8-P`X2q*t9az?}!5nUQAc9PZR;bRYDKN&IIaQj+4 zbBy*otj$RPnOtRU&eGllj=yWe>)l}-6IFB3vt0$hKldw2_tiM#(SF-0WWX9UU1)$` zswY?Ia0lE#&G0Qz$-+`YJ*QaBYUED=h?ceBk$|iQhN@%#57 zz@kCq%j19qjBFJPms6@!cxrzuf>#@zflIuBZ6pg z%y=|Qo<`}MRdu|N$m~F3JWQW$nEW%WGYk(ELP*qlbV6Rh1y|wr-i+$s<>rv0*a$?l zyY&|Z|FBu_ zkyUP~6l}NIssHYFb=mWF`)D>BEQXscu&clBDJ}T=FbApUrt)33#4w{2nhQL#spvGd zXzD9?gGx3E-G~ySppCgjkJLK3xwbkJ3_+3d5)q`v&%3&Lr_Bo{{2~abHGtz{vaN_l zh{PaU0-|UOzK1A|q6P40^8*4JB(ZIpOTP{s&8wn7NG|%n6TP2%#e8q~@#)4UBDQ?+ zTB#M^T2xzf+nX{RGr+JjC zyOU#Y93sB!`$=Wth!p*04VEF%r&)MirXK4^h!tUJTVzCTbg0QSbB3>gM0w|cY0f9) zr=yLM`3^7Z9HDy&bVDH26@izD(2Z)h--!pZ^vT#3F+(+0%fqw84;V?rhk8GE9fNNy z7s6o}mK^kVR`O}+KB|Ao*PyU+BOWWnegl@Gp6|n&xC7^^2P1+!KPw$3R#i!Fqcvaw zq+z+ za{O6f!g@ts8CBCgt`tcn7n;0`R9E=mGNLQ&9-Q-)sB93@W}JCy3X7uB_7=#ji>Nb= z)C_)uYV%(km9|9hc}B~>+WGwHf5+H*Opxl?fs8csmPOyi%7a|41LG0d4!l4=gohcJ z*$$L0xPzWY1#BkIj+c-C%6iBy>aBtqvPmR$eh7k7`4%yr!Ry)6Bk{g99S-889}fZh zyui<4#O|qoTC<)=)0`L%9p!6c-E#ul-cU>KXBVAGNOzA|QZG?s~%`KGU=}p-CnS9Ub?a^Ya>={*^b$7q_`a z(aQU$WQRyoi?|)QLlFf4Q9p=%A-*3{_kaz`O-$vctxKDSzsPAgbc5)X&fS6;} z(pVg=I3Z~z>+)&0yjPC zgZnVVq0{Rv1;X6B5ww3-z`qNYgx8Gu=J9`-FKmdp;o~{MX!Q>g5dh*>SrO`1q%x9i zW441;U{`zR5{Q-HDK$n0I4L3#^f+-ZitB4VEf(|e170tcw2{^`J;RMjVz_xd%hePQ zd0+A>@j%Dv+KKGt;tUmMQ>uA1vcPjw9atO!2AVv+h1QA%wrrjB_q?)W2pbq_w(y}o zd&C~OFz2GA;o!%2QQ)IKH7i}>g3l)V-gd;yGxW^Eb%YqdarQ$YycIGrSszSAND9#5B zH|GKN1fS&LLg2fAF1NVDf@4;(f#oWv#2W=ehmPScQ*r%QHZpC1MUA~+LH7Vm$B|KW zaF{QHjKi67;;XW4=^J)5+Kd7$KfP%ZShp?gwI8|{T=G4s{#Y)^*g&P z(Z>f5fHtxU?GFEG6*#X{kLo@;1eX{6;EhgI&~PU1nh@!zJOFz8E**3+=W&TcO26{- zYDr|G4WwfCzd*r&F19v4_Sd^yRzC4xsl1mvjv(YEUYlS!7c{@bB&csmatPL%0Qxo}Lu5keWry{7urBEPhe zojmdSOM!zIhAtRY1R7m;TJh!OhK4v{oE`GS>q)sux_xGi4-$uUu;s4yyQ)KF5JSyq2>sU# zEd~A7%)8I0l-3l67MJh4T|FIS$PGa&210HRxVv-;2Pv++Q>?2Nz!S!voYNeBW|Zh` zDyT6J6e7*LMT0qX_DFRR?fMbxx1Y?^dVQm3RWspJ$AkDi>yp)76Q(X~AG#!1vE~5p zN0Zs0q0iX3%8TI)C#K-*EbAh&Ci{Gv?TEB|_R}ud=Tcs3=}y8DR}x$dGRQf6TgQ7; zk#nc47h_jkr-%jBvI<9vm^Lv4PGrKNZP>I)B}#!Z`S}UW6K&TDT1U!`_YX^K|HV21 zHCTqjpKF%vo_U3)Qn1?)^$HblUJ{j&DVA&geIsxt0b*^7rPb^FWDL0zn=^KknihMZ zcsjhMh!a&DQYQG8@I4j1{c61|DZrajS&kSJ@tI7@`e9o&RnXGD6mweu);aoM2u9IbqLb;!4n|Na%4c)Wf)|<-?R-6nGm*&`V$Q1Dxmu|qPf^-;ZEa@2U?t;7F}#(S)o{2lW}y7Jd*pf- z@|V&yc$3waiSJ&ETLw(z{|x3Em6&@ODrl`$q>(J<$cn=}$S_1lCMFh^)b|un&etd! z5Ei047g>_?$~b2T<}RcSz-M`v4T5S7E)@QEsHfA z|Fq|QwGtdrx`J9GwY+nCj{Wv-nrC{f-Aa;hH$ zH``}Nd%Fjxn&2GamPLeJV((@7c3+{U#TalbwkgL9;f{iD%RwUhkcb9brBj ztt(D`wV4G+t+ybSu!%quH%Is+-byM3h-U*%nDcgL5jZh_ykX zYqT`$fm}(YadtRCPUUQ-Ai#h zBF!Nq=(#8h!eQX;ThU#fhzecKq)R2g5>aZ~hZhW&LE`8%O|~4*2=_?iu{301HFO7S zW$Ldqja=|ljfXwsOH>K4$w`>A?%rKtTO36+5b17XA1Ssg2043~R`_>NGNe%|6&{o* zp4=%w{9RR5;{^1{j-6}#@zc7ugrWT^JAml&ODJK5WR1s3Hha7_qBDE|34k$*U44iW zB#Mn>`3D-b!h>+tj%KPsy9Xk;S^XE^A1tD@)tu}YD435?9DM^B_nNwq#I332L((nJ z;{r0~lD>_9@nlzwO}XglhAT$A*ya&2K5yy{HIfYCN9uhDXR@4LCtQBck%xKZQ)dn2 z7dNY(q4@JFMAT+B72()S+IEqbF*l~_l(?+Rk%W6JAgL$m*;8gDK=W$3y)~))r32)W z<|*{-d)8vo-&pFZR58ytG5b0U6op3&=%DOR*7@zl?IO zP(qZB^^BH?aU1+mH+~gMac(TaDoCY+wLcs+QFj2LtyqH?Ej@y$OHoTwDc`XTv@|Ll zY;J@yWe`j+H6)N$r2Sj=I_IWP88n+Xo0_J}FS18!9ogQTvK$B6EV^;B6};t;yTljl zzUfCB?+<0&LrH;TM)i)F=5Kwq~;rk2$bvREZ61hHyCAC3$%I2xFc6RqdOhI8yk+Gsrs zeh;&2 zxK|OEDP{!IhC4>si_1Z*w0gp^PlplJM_ z+Fpkw(vH=omstj8-8?2skQ&}vZ`?Q^WzQ0gR0@~RNFiYNS{aLW`nugK(;la(==BDA z093cRHRA4dA4FN>Zf{D2+$jQTh-WJSirmOP9AbSF;g47l30@$?_V zX)D!981T>RFB0teK`AheyKnmWiuQzVMeZN|l_yLXpNN@z2hN`@HE7rA0jZV%$$#W{ zVa77*M58&Pc)9mGXtuhoprzUYju-EiXICzi{|3=2R_^A|U21gdMQQ>93G90+VI&{O z_{U2cnV(nEd1hPyhZl{DE+k&WITqJGlaE5f;SoA_`|AT%;Hkv!<0%zwsfo# zK3uaDgBa5mq!ZpJUP(Cj=NtE*&INe2t?5F3q2Pp z$DPVxs{fp}E4r96t$pOTt_^QpD~`_{jnrqXTEj96xtK%4voHiuI{F>oq17?3_k4e^ zA(e&_t&z>CQ5|!b)p>zUda>nkMnOfmbXegz4-h%;32%|B>6_w{^0c6`KxxRRTLXT4 zD?QPxO`f@3SMoZn)F`*&a$ms`ByPu5YU6KL^wvL_(=5=8c)epcEJ1+fE@sHK78^0Y z08^Dgl-#-^Ofr zE&6a;)&QzX^ak2V;<)WzJpH<0@$|WmnbZ!j56LyZVV9A3HlKr`&u{F_9I7}hDX6p+ z$!mryNVzwXp=w7cz7hqbNHGuj`=eXQEEU4Prm6;MIk92AYZKlAT$43hz8_N|;}qT- zZmyezYG_yVnzoMJ5ck^!-Gc@Y#?y}sYNkgf8^49NOQ6mSOS8m7Z+KG zd%(r#*+RJJgDpfX2JRRqtQXnIh*0P7Y|aX$AD`cMBeS(-v01^M)3VcZpr2^K&S|?> zfiWIifC8g|T4uALYHzAU_}Rf$NXo1vblMu~k)u1`vCFf$oE0-!f!d8o379OOiUr}! zHi0M^9qc8=vQj&Pq(Wedpts>SX(^e$(e$UHG3Xi^Bt>}4`c^S?xq)~n>IKIN&8^Kb|o4U|H$8vlM4ZSdb ziylSnM7;w3V+-5IpNXOv`AMG2>4?8))K-crJ1c-NI`rrsH7uj=p_Eq*A*2qQSfX?dKgInTdzZe@m81~HFftiq9O-&Gv3nC zKKkB~&`(~#a?@#XEqGLiXSN$0A6qMFMy#|CtnucqbBR)qAo(LkVH?B@x%#G{y{BKU z;?hRbTfSnse>1G>k1lmAgv!Z}yBm%x;Ywe2Dh>L4tz{ArnToKcvskQZ6pNp}iso>8 zUq#x1>MR1k!7_it;R%ad;6z1U(Um#%n^ZX%YmY@|4 zZ_o(oo?w8Qrud(D=TU~Z*+1Z)di}I5;4v=|v;Ho`aaBPGn8$#WNJObX0VfpxWCJz{ z1ljyqkUNMIyHBFx*Tj7*bJjKoHy1jkdtscyat`3M9|1k4x=V{NK9K)4Ontfr5I=@B z*Sla%*1NQuP{CoKpgWn{#c_Uvsb{aj$k2q^#;#1ps&?;#NXn*h@if<4e}qN|@L&n1 z2F52K6MZx}o4%p*fB=9<98&LY@r8Z8xy5`0s1)&Y{V)F~JwWliM#0ZK?Jm;Mr$bRWqmQugtV~9y5eu zl^6800sEfEbq6O3g}kg8aQiRDKprs371lZAd}5om1L2&EZM)|l@9cB9W3&Cvm<)pD zI7gO?L&-BzWR?yrU<62>e7=)=0vRmM)(2=WGQEFgkv{73Gxy>^@)o^BlJx|Y6lRfK zQCFPsIZNg5?%eol#syrFrgIC3p4Hk1rpDO931OmQ^7&dn` zU1o?%2qeh3C}exbeln&#;Xm()yZ4@)w%>uM&!A6H?}a_dw!*`LV*FGojLp#C*+|Mo zb2{gZIJyM#L@)4sRIG-dMO|h8tdS5w)#66E3cGjq!P)CIfBue`wwqlYa(-D|S0~|K z_EX6+Ga|!@aK(4=p_p3C25~1HvUlwzc(d8d2g=L*&u%hh(Ka6vsW#VUFK!8Ed zM}Z>1@w$EHri7lulq&fjyv4_B4W3|?o9t%5PpcsTE_5Q5$|sOV3a-xXyv9zIdru{@ zPOLCBa(5YzMcf3-ex{M0Y`7`o#yEaa7F*0Tiznx%pHf;`|jxZyHCiX8y&>15c68_v{rop?Osp zexV&VRVQatPd}k_{#~y700t_>eyMX$8xK3szu_wcQYjlpMNADkfaBFfmQ&AO`5fOG z^hakq@OAqQ*rl`fd$5IGyJr>NSCRb(RSB&D>4{VDjXHX)?tf`s{~D)g=VDYvFhlN5(hxs{o7J#wZL`3y znKQH&r6plS5^*G%>y6>2Q`TwlvhQzlHuq%RvUDwgGp0}C(A_r5N`3^2k62Y&jC^|` z^X~bN>7YHCK-2U6ws!PD9*;Q`2||jaG?{@&F_5v87wdFfynKzs<;{*6p?ASVYsy#h zo5lH4T3wh=M}Fm}v_D_yUxS&`@U&4l6yCP<8t{>q2RR7y zzLq{*8lBJEbQo+ooSn7G0%e!F6450<8I)MtSA8iwbYXdE=NM_ycHyu7>K#^Ztu6W` zT&*4+ahcNgE9_J8hE9R~ugMplG(1A^@%((o7(ZI1g!n>qV9nZJ&#m`h!{|ACE7E7= z@%XD3_BSlA6!cd6ygJ;@F@0Fk*QHtEO`0-QPat9FiokNZRH2NWj5ouths8K|2ls-) zz66O-HAHsK7b^rVUzn*Oec=ib&Zt54zQoPhiBjm~1x0#Qg$X5>6#L^PfAP&xXGnwq zPLid2#K44QCc5dt+*$%ti4(L&u>V~kOw8SCIGRps?X3m(>6-V-b{J#PY;k=M-`avs zxh&L7WPHO-Mb6qq(4~p4tL))B=TZ6C+FN2pkrTI!v5C`CfUk(L+%-w;O9B(Z{8IbonvliKMxY;N;c7Sr8X~Auz)9RN=#B|o##+vY z<;CIWSg`nUj|N%(dB#hXwB@*P@TZ}?{=hYnMA~t7QVB=XOYl9|d19z@Q=z3I|HqN$ zJ7KBax#BuLh4v4%@%ZnQZ#>{@*-nOgumrfx=GUYYyJ{M6^A9|S&}0!@;Om!}wOL=R@hb+2=l-H{3AM-%7aXohNhOmIvsQk| zpZ+uHuhnqrKy&+GZu6mo+ZKYCbAGZM?U##dPZg;LqLmYTdbW!xrYUr;o`_`3Ppb3Z z74(PR8c#KadIa*Tpq2TpoHi`a+>i0a2O^40C1B~osw%fkXTFNd%AsC#LWN+9Z7g|N z9^T*~9?Ko^)xbQPWH7fngN_6r7*Hh4lE0F8CQ5rs+DEeDCe?)aCfV(dbzNEdHur>4 z8#Md$Yv&@;F0<1DYhX!BUYLiCu<+!rthp!YnwEVi&S#tjZ)554*Q%k`J5Y~fxCB!j z_Xc88JRc$VGnhzK`9b~}0=ymdZ=-z>;b;i(RQ?NS}5#<+dho$AliF4ith$IfTh!z06vXE&@d6HTd*@-mPQ-&^sE*W1?|Py zHlYdgI?w};sD3T?)AEPUTts^GpJQ$)A?AXQ=$3S5Fc(Q*EiF7HNm6aqQl7;+xYQf` zg5I`}JNL;>%QDfx!{iX1CQna~_aF#zgPRNb20)Rw)kT{khw5i`RN2<7I}<2&yhhHG zxlI2ou($jraxBenQ}`n&f*Yi7s21+PcJ1vrLE24`8Q&2?Mn098Epb}2J_^oozwPNp zi!h$$rf;vLMm)H9RtF#0jmxVc_V8|mSbaX5WjZY|j(t};*})-o9~!(8v?3p8fd&lSl91T(c`krgs%bG-fyL+TN)Jj&3F*)-sR;t$9ShsQcQ82o z&e&+9e}FbwtX*2Hm@dEIM=B$CHq2q%M^N;m_EkU#+L8%@Oovx!A5bP>_PwOhcc#^0 zI+BJv+wKn?8r?L_XY(#w(~38;WHDu6od7KN7pG;diIO1(4!USiL+iR*QVKMqZ-+iw zTq4{VK#|nL{hV|98-C}u0F*z0B!)$O^WM_=L#;*#uUNTdVr#21DOy5+c617K?*x?- z+aXFTQ4ADEF*lIx;7Kn8eA19DfS)MT^vy<+2t6W~bWLs|6THfV9Ay;Bd^~$S;GKDa ztk58?e1 z)wiTR&+1HC!usnANr7_gi;+q5v9|Q712TX47J}H}qREzn322UuJ$$N>&CqGd>HEQd zIkbwxMV^lyme=%OE%qzJ*fcCji(uDW+~@w~Ax_;Dyk-IIeczkZ-pVl7?g3%v3u8q2 zKoS&sjxjJ*+j7brPe|@mhit1-V+N5})avZt zX1^LKcwc~q&8q@HXe5TSEnza0NFx{~_Q!px6(y>N6=Btobv{&V6a7b8ZW2fxz+ZFf zz}cv*%p^0ag%Y0>I<1VD9E>WzP@y_tVL)>G0SaNrL1INixGUjnk{8Xo=~*?Zi7z6| zX6f9ODg%lu;q_Kw1LAjYM+WTi91Rvy1NwP9D{`pV{9(Tmhx45#6?Ujn`mZBlj zi7uN$$SiJANQb;=?$}<&_t3lgB)hXmr&S@MkE>MIh$+qg!4~GiB)k`L$@GC|7)UYHff9S)4zbmBToYlH8W;T5H39GB$aDq33twScaG?}&Q!0hF zz*~lYhF+n30}+e<_{ri%0?@yr0}DgVb7awhLN8#sI}JAcn9Pnuf6ti`ZxcOXJc@-W zD>2Wj?~P7KAt0d}zSV%Tay7#AK9~T3L*utMw1~*SfESc>Av|@zqNOpA=NR{=xaMTE z$w!j>=k^37;6#p>$SxClKCNZnO+2Kx5EJGL)FuxdpR2~j>3Z8|>C-QHldg+%{3b1| znocXFAhE=w-ZsM-8nr??pbl6IuyYl@RJ<)sKp#0d!VD)};c{J?z_GS+QVYbWS2Lu& zB%}byAQ|iqKQjIx{W+n)jp6ZD?mN~;Q8TY&Ep8eOBESIfSz=q;rEqj~eXCB9SF8!2 zmRe3eamZ3W(IGtt+mTtLe%~X9Lf#Khr|mLWThwr#_VghfYDJ-ss5%s*nw~XWo7RGw z+|GCj$+>|;72@~qyHXTB8Qx7?%$Ic>>-B z5$OgNYiy%cSGMh}!bJG)q(br2v{;JV?m)@}&LPfg*y;h$%AZ3I>$8dmrf-K5i2;2F zk5+nMnwn8u4b9xr7?nb?%tD%)27GeAV^z{n*tU)agmx;5M(Qs^f9 zmRxPtfb=A=PvY4&|MJl;po{SA@4i-)uOskUgT$}`0mVzWvRZ`M9P{LrIr z$+jJ95q3K8ig49J&H+k`9`38SUxHW3EQ8I@C_%tOJ_xDL;({o8??w|R^+|C>+P^SO zS`R+7x3?Y$%pxUA^=&H>Kf!E}#_~aU7lnX#l=tq?4IB#vUOFiX?={jbc69kVzS@bcz~f%{`WS=Rg7w|< z&4)j7X50hVh1{O=Gh07$D{p^}-Mm%~J3r?ZhuX$rL=n(57yyZ_T3pAM+%Vcacj}CB z>5@W@qN1Mig`e24g!lGaSyo&@_tW#ofJXv4*czrZ?9SK!ucDDFO91g zN4CfyZF{{*b%_DyoO;@F2R0Aq7|0>(1~0%=TJJ--PY2q4y9E;9h=e&OP)br{-v+2_!rGkUwsMB<`b2 z7o!K+5wO9m;_aG0@+bydI~2*$3m>k5BfQeME4hVXvy3n`korf&kpz77tCOe55SJL8$$i7iQ-PKbVt#nDGNG1T))djEU+IH7(mQ*6D|8TXcJJQBS90ez7E z(^`DKX)M$IrXN}b^XBLL!MMsy_*_eVE6@U0Kqg&V(Gm$nx_fI#n(FD+GSAKGblBK0 zqB0ujV|N69))Sw!6*7Kp{tb&G{HTmY)oABV)O`o7BNPeVxRnnv-{4Me0Oq)j%Au#K z_!K77NpcX3$YhQ1Xm56ZdM-p{K?XI-2I4F~g#$3bq>Pv{xJ5=`j|IxUT3PB;3-y!F zHl5-zc>Skf!u6RffTKCuI~&mL-*G0OUsym6%3Ufu>=p#o>`ahiLu8!(cID>ZwD>I& z;XMad66zK0P-&pn7M7=5CGEF})2;rS!sqw6!+YQIVEtd=1DFGG%$nQ3^fQK+`ZPZk z9rUBQlIBABkty*Kp2_F@xai*~2LmAz(woPKxVU1vuQ_3n08z|Q^rsPvgjd;^)lqAM zH7qPf?yRC4dPeDjFwqsmT&moL<21Mi2PLeN=-h*U{#6$iK5A~1XEWL?Oae-nMul9ox?u5Z* znY-cT^tm1m&HU~2zJLS=DOQV-Whx5|uI@5K_(vE8D0g6)^`H+(c4E(_GDs%QS&J%= zi%#F#X%0oEQ@ZR@N&LfuUB~l}sn*-@ug)U0!6aQiz-2OK*oH*wUX}-NWbyJ}-k`1- z*JL_I`26WhYG#?Uq4wfYO{5?Z)Kqn$rN(W`XubjzlXcMh;3ivn`#JD=rZyvcQ9PHw zp@lHWUdCAh&C-z@$;v8r5~4-%231WCaxTmQlfj&-bJD;u2qp!Jx**C#rV?l3!+6Lt z@%JkfQRCR06j1{Ag-3*!2N}Fr*t2B}yb~ic6TwUDi;C}6TL!|Si6kaS9dTAhbKD`< z!0RDljubN^|0!dL@t^5HyB+T`Kf#9Mjkf3hT6DOm3oqqu>mP11`;{4SsAId?UE!S@ zI5&Co$R9T}oBsSuhcmlZ;qSpd5 zlS}0zz9qziYO|Qadk;5tTa@^ZmP}S=H zs}O;46{JUbG##Yt z3St?T_Ll4POJ8*e&>Uw9RLDNYP8$SQ3sp5Y!mwOH6m~;>%N?@Li~;Ux-b>v3>1rC; zbf$!6Z=q+8MG8koF8BU3n;LPp#%4x_-T(^?I}v}$py(X6Jy#lhrCtQ4lx)|#J!v8A zy>qXlaLPpQ48|NV3qsaZ%i%_>av6#%QoLveTUq?E9@^JVQxEgfGdok zhpB?>=4z79ooxI%o3Ig8ZhQ>jc-OpcTLuAb0O0;`;6-t{UO}Xanor#6kx;}!bAeAz z=3q(K&>N-zIlv)JZ4lC!c)W`A1o>r94@!=epU=N#}{8sBCJF^_&YS&T#ocy+aPK@0HfCE6qw#kKVk#zq!O^J9^p7yiV zoWCBAa6Z@vwhdw|Ym=@71DnCA;n(Y*k+C`)cM~VV8uk?K_)^6`C)J!7byJpZFV#`5 zSPfP<=@fSUSc`N$uuduwx~z?BF`a_G&aX!uW{M=+kfqiEIIY=^ZZCcGVRF7#s$c0O z>k3dJ-k)`nB0VAeWFVSt#=fD&2JFnqkuf=<`HntX+r|pZz(QY66s?QQF}A2I5A8W6 zEo1ZsWpa$V#u{wO`YMvshD%Fq!!fS;B5lkMSZAS+-aK+t#NS91&K_@Hgch@^i3X)O4TRUAfTA#sav5!9L{2(}Q4vbMkpP9f?yhH(>7%Zoc_ zi9N;(&VBbJ?sE9 znlql3mvb^lx^UXwP!bhR^gy?%deX5O$*{|GEBXBB#*QhR3`?Ym9`6X9<VYGOb3x_`2*{#*g^2N@z1L~<1!)q$*6u?v`!3)h2!W1H*|4K(zD=bfwSKse7pV4 z)>$3uw}yN=?DdCnKZ!*=NJfKn)I0bndlIN_sm?Mec>^Mm_E9j^&4zJ_DD11zqp#(L z6LWe-M@~U~qq|WoNv%l8W?U(&Lp+cjQ8)c|a!(&gc9{ptR)-#?6e$IcUQvT=&gA{; z-`o8r&L7;YD%qo%MqtUf#>kQ)lJ3R{YDPhr2MLNc7gR8$>q+7?*%8<(ye>eZS7v-k zwJOEZ_)rl=EHwd7vKCG;R|ew*o_2M8S$FOOU^gR>EnD~~J)swz;QWK|<3ll9sOc=5 zPiZD?PIP__IOAeKDg`d``6Z(Mp7D#&^W|WtOx9B|rk%0e_`5l+U#vGPtQ<%sG(|TW zj?54qz}wV?ArgwcaqV?@)@%ujbuveIkzG(ASpvS6%uOD8-AVx$I-%XilnL`|)w;j^ z0lQ=3+}t@c7o<>rNKT_Mb$gCa6(pLB)ft2#`_xy1%MSQ3mQfV0oIq8!HIO0#tq>Z^ z5rK$_9-vDM&f*<`Vy!(T3WI7o1pvo+bueWEyFs;MD+KQAZYnqTr}9#NL<9K$CV8D2 zcMayNV~4kUX@5ui{(ru%Z%DSvHV!(~TJy&X8#}g+U_6_@-Po7rT=ja}M6vmWdT`}&KK2gbo6ME~M zv@|J>B=X-53c5=*U6A`(FQ>v6YfCYmb%SUPbn*< zB(=gys>DhP!?$+!?NUW5_1p9e^ee6tUKx(`^}rNV zOdjFak}LZ&Y0h)@G%_G6B%~`Sav`uKXKzDcZlV;5L84A`t@0e~a4r3}VB+=4s+AE` zWLw1ri8Q9ev7cB;>J?3MSXtzMyo2ViB0TG^u3mJffDz2kzFOq7367)8*vYhR0d`UoJ;cQ-5w0^Bvf zJKEbDX`An;p`huj!Y3GinOPxeSM?qqwQB-4$TE3$QCbEsAmh1>Df*BvH$($*KmtMv zyI0AIJ;`2B3zEO{lKT))^{$BJN1+7i1$MnkWs7BS0xqx5b8mBfhm9HS9opGb-aB2s zVi8mjS;yChA{;)4*as2bu~(!XWN&aAUxRiM74dA^Et2KC{N~N$wKrvl<%N(LalMbZ zRQ1?DaW3v@|ImRm6#af~$7Lvc|q1)emU|GXL&)wW)x%=Y3onI3OTo-f=*(hv5nTIF_cQST^~P$MT( zF5EX@J&f~48iodsc7#JQ8k#o*K{Vtk`Fg%x06Wo?{w55pA%2OC#WoBU>z?a;Y}z_{ zQFeV@>4$GnJYFlqnaG23!x<~Pg>*RAnMctZMU4hv9IpW%uG2x0ofB>UML=#u66lp> zkVz;ac4~1LYt^liFGu8ai})H^llnhXeZqY3ZYLeE?#+3(sFt^9v1Bp3m`_1L`urf1 zanoVE!Bn1qd{*tgKl7bjPk6dYHch#Pg_W}9{q+aVeWLZhh_BYhscnV z_LW_#L1u{#1Lz@>MqB(&S?o-#p>C$pCRFo zOlO1YsO{xB{lNROnCgvwF}D7qUkKgGn3$w3Zi~2ZdvPbWjSr68M@ej?@9pR4T4gQlXT!R=Tp-DI$kzD@JUG4fGL7h{ z5}c1Dtf?Ttftvs0{;Rfw1ljJgD2SIN;LVvXAr;`nPb{kIaQIuR28#fKWF@q-7FZC= zoS#VcW3IoW(P)Oq5evN*ME6ybtVU%{vUy4UxOAia_|<30sQ<@kW#nLQY4yV-X*Y{c+@>VM%4$?fSO@{TVd(>G z9@AZ3Kk_bHxi74~TjO0f&-bjUuv=`}E(E)_4vRI zEp(}@NK{zL=*wg;aWs;%uN+1pEPVC5Eudp1y41IdE#Sl<8{3y2CQW)$M)%keXlW;u zpz#QZ!g0LF`m-0@|AR2kiG&la2c!;p?fM|)S8qc8Y&ek$r_|Fl0&bQxtiFm+N@h(X zM9#FRV-tc4J+FxqbwXslI(4GB?yaIi{=@-H_XSz?uv^cf3kc?9d6?q7&BdtsNCX5( z;KM>lAw^4;#V}{uGxAgnnA&B_zBst+i@Im^SQ6AEsx~#Cb3MvW{j!PxG*zzy1?4VY zp0$)=GZd(qy7*0#NF&VWYeN2dN0{b@#Vz$fe$rTl9c%eFZxaCh(88EF2+A$BT*cL< zvXRE@baP^=Nbp<i%C1YElumDl2aU^T2<2^WlDY= zXea6At}3YIdK7Pi0hZ3nQUiJSxM#&yXjHCKAR+8B3X<((ktyF=D2A|wYXv1|R!X(c zuw;@1hL_rQ*(QwGlBy&MGxka9e?HL`y3mUAZRcxP&xb`b0rJ9GxEGcM-f-kcpt8*H zw)NNai{2dsMH)=NG&e-!%30Ro<*QJWd)5p08Ja8`cq%Vx)J!!NuENYA0`u&=%MxTenpa|O}CA>K)OcST*cAIw;&6s|8f7z&h{Q6?a+9TV+>)mPhl za&O^nI`l5Ogv*NX76|79=bHDTx)X*yu+WSd1nD^@_QRv52_u5$1-mTGZ3E91bRBbm zb>P8lNDzk?U&U~^r!FR>{JLVhzz|N!_#l$_s3#elE~!-4fu3aq&xrady@et6Yp1om zLT?WZulLzUEy-9>sHhX#!s6?`;nwD-;eE+gj@44K8PD*W1PSkDYY$I^a)YY0PunOt zjAdpre`C<6^uq|!|Jxug!y~JWKwy`Y2%QxwH~APe)sHimpj82d;mPMK#cW%e-kwaO2$?LTSkWEOKUbytQq zF_xk24W6`GlMWs>1#kxeRUrkqZ8T&L+0D^N0vqLlZJmseF&sPJQ@uGxfN+pK)W|2q zFc=JL@cXYm(o+wM3FwW5Ed9?%RK%I)W>1$i&pGbrEGYm2O7}6zgdz#BKzgalT!MKP zxZj+z%t~=)27!RLQ8vbXY`wacg}XO5hIDTdVDrOY#FaMcdQvyGNoSZbFZ<7ab~XCt z)H~Cl$lXQDo`^+Zg=?ME5&)jSUyK~daQceSwUE8TWTiJ23soD<-9hXLdEg+I?HMoa z8nf}bbX|vFcMIs1E6i3Xw^S1d?}K71Dl`kL?`3_S_MyjZ>xg>f{KW5TD?JJxueBDH z!&Fa}%zW3$)I1A>K>U_bIsZ%Mp0>?X_r`8TsB=wNa!M;eR1%JIP$iQ1BpE{BW<>kYXb+&*&}h(Qq7^@m<} z_(pGedw?Y%gI8EjZLo3y$U{dzqoIuC4b~CXmAc$*G$V4w6iGPz6m=i^`3(A(iND2A z{Gi`>U6vlg@+$Q@6E=tq`Y-hzhC00vSe6I-{oMD?8>(m=vF?`Fz;Zr@jOY>;3_DcI z!kC9mf$%)Gj_DFhy$KXI3#uC{7tZC)W1J9A z))K&_o4lna082X*%3z0*?*z51EGu`JVZhN-F}M5$(DAR*oZg?EmL34>Vf%`;5W|Z) zhQ8jyh~MQQ4Q?^av-HQ}gr+%soS2#TLM=LemFBq|V2tihu_!cZxk9otx8WwqX!{Q3 zuL_8nru=5dAd8E4`fm`Vki9NFp=Df|QYg-vMtO0km5nSB%BAV(6M|)+I$Z$}aTG_Y zy@=G~!JRG6y`++hGc~I>D_Aa!L3W9mg(Yqu{9-}*_2`7^4_CeYi2yybGgDsRm>=;r zKZFL}Iy7?l+FQ4MOCht~EVJ70ve`Cjo>iIdd-!N5^zH$@hV^z-lq*QsrTcOL*F+iNsC&73V_dzwnkg8?i zc~UbR1xp=|P?=`^w6$;|n(;uA(Z*bHRRnLPE~=m8ZDM*r1b%fkVO{sHFKI`Wo25d$ z$)7IqdoMK{>w~}Z1q?|lmD-h>UwoQOm+_|7W2o!JW9p8(5YL4SAE@e`pgJy=&vmyA zGN;lOqCcOQ#|LonINx!;^(1Hh;w2lFT^@My5^Q|wNoXE!5iW1+_;)Yk9#|P}O-g>X zbm^!#6Mx3qWx@ml3rUrB>+L-MWIkE}%+Rd{oBwt&160PL6Pyc2OH;Ox>e+m#B`5#* z%WjtG@=60Va`#7-Ss7n|!vL7SEzS@u7T-l7s@S((v58kFSp--WT`1M{LTId)PZ|(t zYgP}Uz&*?E7ACVxF=?l38U##h0z%|jf_iEa7Em3Bpdo$q0gB-^1(7|E%zq0QzbbaP zW&6I9E&8KILD6pXox*~i+|MHbz3;aBHJ9F$2ufm6p7- zC{8oz5VKqKid&DhIrmQ9(c#zES3Bz|seAce+cjYg@P{Uqe6OB}?BQ^IKAM2e=@J*>^D!zmNzG3}Q@QOipeg2qUma z#o^Gx3DYU8vT|mc%JZQKs$GK~3P4-9fCrQ$qV3`bdp1j461Q9#SAz6b#*voSqY;S_ zH2myqh9zWyaq}#e6H{t=2P|14B((~Uay1mN)C}t^kfGWp`cR3GC{ifYsDL0BN4~d4 ziYd0iF?rNZ&lq^A0~d#awCoR<0p?nGBK9*01;90 zMh60S_uJBX%zk>mfblOF4#tMsAButCzi=ySXHIR9buu&sJ|&i&N+w=yI=_~@dO`iV z5*|MiY|ac_(j2SLZZhY@fe|G6X*fo3j)S{|r*lm>D%LvVeH{zqnX$OJ4=%u~x|$Cx z`@o*=MQIzm&}uXRsrGB|;JSLvLHX~|+lNle@2K%za11Kfobb%X)UXuo8N zBmxt7HqCY45zc821uT~EDD5Px()GDuE?is3vj;8m$FITWU`S`i(q1~zwc=VHm1wxU zxGP%)in?e2k+6g_Ek2sws9e0LUJsA0_6?<#>H6<@xvkM8YF`6!*JyBrW3`;ny>tr) zRlLqfq~xdNYok!;EczaP@@4qzR9xq)*D1fw%QfT>WEz*0#*xWkKI`_UWarm!5Ug<* zLihbyr%}K^FX3i&g2Lx(d=I6nx&xT6bs64w?7*zN5B&b?_{Jyp{R0tZcxbazp@&a1 zTO#idPrwKrbg|}Z0NeBBFR?<(vgqP_a1Q2Pwzd`tQb1=5+ObU>OBYin*5!rc{Tc#W zdTgGl;7jv;Y^9bW9dC}ctjd8_^fRJdvEGw+9|ioDCj){xL0jV{IwD z`*yLeZ!FaHyreMLh*_U!!DD4;Sk+*DLFt;gPolA8f-2S}TyTvqPZH z1^~y>la`y90Jsckyr84TWZ)`2qBkJGWy{cZo*yks*~mXy-;6UieW@jld!SGE?rBZ4 z6$@K+TzXN&=iuQKqyl~iv;PJ`ePz19pO_)78clsCjhqbv`%r2@q0-a3hN7DOVa=9G z-jfcwH#x&0NMbs7{%-nO&@a<2`S13>OGeRQj3*n8cOZHsoBBQ_ggC=jL!l*zR9N||@815Ngz+kbauxg9CZ zN*cF#n7+(aEcJ`<<@?yIOR9Flc+&hR#l8O9t=h;^DMplAr$8NJXl*1Poe-0cwT~}Qjw^Y9us2>TOGr5#p%f;?%g#nO!iwVloJu(W z`xJ$Fd-2sFof-j}Wjx2SW-bajxu8&eF;(D~hI@=~aQ<}7x#a_uVoajgaZL|zg~4nI z`1Zq2NSE*M*tPgFsmFpIn9Xc2tuRjwn#`{*I$=Ic{^J{6*OMFuQPQ8SQ7mURhhYTk z1i*5!Jz-tZYtUvei5IcP2Xw?6o;zXInGSKOL8~q4pO9#bUR1gTjRBi4->q)EFnPLs zH(VS$FDl)yx`4!W<}K&{r;u&ZB2}WGcDN+cJ)2|+C89Q<_-~4EH!-yK64}?1j^lZ-cMq)kdXl*zmX3FB8#*jmk@JzvpTAS+`@bIr0315daG78Tx0>FTJK<1*7UuBlrX2$(|I zddv%(+%NU(gK504@0TA7X0*xtNX-fVtJd;YwEu8n0B*`VEYF68eWbWmsYSECvpznM zu5Q($Rz3yEEp|}8?XVVt-sFcLEecgu6xUI*Zm_OT%4BFW0Z3@!5lu}~+W5q;`8DCu z9rLl(nl5V>Z?69B5HJM0yy1N};{PZc%isn z`_D@yIxT2uI^p}%3!^F5u(4=nYY0a zZh^%?;-qi;8`u64u?6NB>+ZeP%5d$D(8V2h+<`<}RRkI__BGU#f-HvTu1|{+CLVicS=dJlFpT#Y>attgwtEM!k@hrq1wr zd^7uUfL3NRe6rIoTpL?E`%;J^w~pM=U{~&e(DgQDVqEAuO$S1OBPqA(gb)S_(=y1< zn$l>Z9b4|Q^~nNWU>bQ8#cl#z$`JhS8-=529Q%dfRi7h4K?sjfd|&gBG!-maBDiMX z5;Wvev_-2Hvg0JZXhlC~VY(xVWyb80+?!pv>cz#x$<>?j>XU{h&2mesQl#2Bv6R-a z5lrY43Tm9-4fQfGZSP)Y@H1Cy@eN9I*CXWzmeTe2jN$EG5JL$1eQX*qw%F%Az!H(? zON3`z)*>j_n7~bi;wC)N3p=&voBBaw#|QS07r5?2i~gg*RGR%dLmeG3quRuXQQFY- zV-*V5RKC#jLJRd6{SHHR*{|R0sHIq!**$mgioq52M3?!=<1-lNUexiEBKypRh=6@5 z;|AxhwxGve41G}H{-VdX7@N8%&1cBHAF>c&8S#S8KP!yBdEc7|5ut37$KD>3b1>{5 z$c3i%9Z|l3PEQRL7a_xwQg<6+lH84T$K984{qT#_!S}RAl0diTdYy!@>ynbf5EXI+ z3CIi42)q1r0O?Pt&IT!&AthDd- zt4VKi{{DLv+1mFU?@u#Q$+x&79g+TY`t(3v?o!KY3!-%uCNY4)atGT%(}5PyVI9c% zk|<0=)yUc`?4mJ|ymq>{n@M`d8Uq$euGj$dXaA$Z@vuGcUtKIdV`%<%`=r`IoUz{lOnSol`U-+5+zM4G;Yl(oISW28W3W356}1Ua6EN$Eeqy4ct?E#; zP^`~Wl8gA@K$3k=MUt-U^}{M#JcNE>n(%=jTe32;BukNZTS$f0Pr`0!WDg)>gFQsz zI1eZ1t!6AuHecej%RV2$Z&ZQg3$Wx;Cl%ANsu0#|sPb`T>nq?7gw8g(d3g%s2{@hz znfF;4#Pkz0%Evy z*Ba7gD-(GJyLg2e&~er?kvLVP-D%+9JlZEB!7R^#!L^OpF8G5xe5U{$;}%q9AqPJojHfyYd~Tj z^j~kf$lB8BNlh@|^U*pD^Rb+_LLA+TpNp2>M{Mt4n0UMdgYe>5!5j@F4XT zgqR!if~SD6>!0wSi7o88cSN{ve@tQ&#Bz^&Is9v)ia@?WB$VlWT8Jngc48cK7&L{| z^nMjw&BP)bbX%)Mb@&S=rUE9QHC77*Bl1^sP|`6^bx1O{fP9|Gr5XpAp50|obnZB@N0n9Z zE(Y=kWEIy~<8|Q=tI+eNZI+1htQ)$_DBZo0n(pqGI$KDlRP`jyk*Pq=7K{ylJg>DB zt+sVX!lom zhyg#`a%W(u#eN7x$MzjA!tDFSOxm>?8QJsD$yo|kB)a%CQZ0!YS{4gqqs_BMTrV!3 zta50PI6Nn9WU01{L)Mz)2NGJ7d`+1gD^}%LWnUMI%r<7;^vAHLNeJPGBV{9tniOzx zkTLbWHA;ydQ9LyJhFVJ2X`a6(u+B6KDOjQ@%4tI`VxDi3oV@Csu)Ork(RcoM@JPqE zV{N>D)2l`N3cj8$2Pe2i5Q5XL?-~$<2u+zyH?^9%AqXNY;}=#rfkwOcMA2U=y~T9qFvBfL_+E6kVc9p?>X~mWW$Jqi#xPQm17Mz!Z!!d)Ek0%nw!7W*_wH zIHXhVj`ewT?)+fppG6hc2b)1Pxwa2TFT)~dQdml~#g~~eLywGfo*HTY0`G83!M{6} zw`>7VX74{FyQqV5laMo2s`lDKyTS}BL4~H|JLbJQXA%(X;+z-wsx?2DrcUl{A> zmJ!fu>!YY6G)`c>5OLcBE2Q_TM+&w5>J^H2`NQTfk54suZT)4koix<4ReP)yvr>6) zq`{r&l}ASiw&piZr2vuQzY6-QC_uqCN(lJ^8op9NC8Z>BS%->O%aLBBl!+vA5!0$% z3_xKc<&j!S>b|em{to8mK6~yTEsa{*1+-E{55Aa>fiemBt%r-nmgF-%>{+>|&hU`@ zk~q{RUn^`o`0T-3egRK(LEMYXc2Pe0RPo?4c|7;JjHHRudk02aQFB2wSApB6+lsbY zr=4c>e{sJbpR0K;XnE`mt&7WSY3-}CdsY0H-4>*`T|qmR#P!@DiRIhE$__Q3&96bU zTC2)rBRK6UE?Cr+<`T`ht#u+7KqL`_W#T$$U(g}qYu_9mj16Fl?V)VRGexiB5mIio z&$OLMM?$DH3GgDD)-0bpLq}q0!A=+jy*MLjYepvnR4+MPfCvJUm^=fX{lGC(EaQ2m z{0-1bZflprw_4e0gnmmSha4*nJT|}?Y_MK>c06ATX>{{PbD+HwbJe4JC_6Xt2XE`_ zUS~@@DeL%s{|=^Yovxv{K;J@6uO4OTG3Us4!K8#52Jcd>WvNk3;gf?lURZU~k{^&zZ=WY%1r!DULqPURC?%I@<&){L|&CqBNhc)ysBp@<+ zREJY5lBck_xS%%mYV#2`Bm8aixo2HD(jLt-53=Yp&lkuPa--n^m=cjquiw}ISs!;+ zzc|}zQ`?ODi6!b?$8jV-K=;G~tbf1bOZ*?Ff5P2D?kgQ?juINAi+W^KMiu-cw z$vRqWT3k|sadc7GOjEFuc-y;DdQ=Q+3G@J8Q^iVzmiS4bDbXveE)s`;w~dZwweDm} z>t@F-zzA=G!vIqjzqefdB1yXfrll~MGD@B7G!Tk5Pu)y6Nsb?`qvO1ROnthYR7^{F zmb;oxLIVk!q)^edQbo$ZNY2z&N`Qp|K8Wf3q!0JQB~Rkk^mgg0Hz?-fwyI4Rpu&o% zFE=4z%ARszdyHk-4DLeyY>$Q5bY5D5K*I_l68TwLa@V*Q5x zdA|h+fBvmgG8|WBN-3cZtol^4LPO#9+C-^YKBQ7_9qVS)^5Lk#YE7r|QhVFlN&sTh z66#S(XcJigiNa3P%|DRhkBJcz zpz6;WY|E%UK|zGf7pk_*tne76ui>)hr6t8yGG&&M>;tkQJ%&V{xKd63vRq;$Dw|og z%7XfiLcaK7O zegxm(=lpq@x1m0)#T$x3hE*Uq2q|7I5yK>RD}m9#eifGJhIxV!+*jC(|5z@Nx$+_@ zv&0KcjaxiQF0f}S2Ehqc+}-~k1K*ZRG#47}B3sKKL)12CNEux5@l*?B2?uc@bQ7fs zvCnePf?V*X>*4Bo@Rm?^RtLqei@&qXyQH6#6dlrttr$A?M~4n2+Mg^;^2kS8D{;S^kW*(QHWbDPO? zt9q=}vSaAmIy%B>CruP2Iq}&1#ue~&yz~AheqX_Qo`~UW1Wzxii1lz0t=;oI4B)Ov zXL;^cUKrG3I}Vx@i)`saeJ)BHHF*+}=?E*Zw#kay4W^$N%0FLhv1apf@`Hxp9qXE; z21oQWs%0&_MJ5r&FVnEw46cQEUxcL#A+3vYLGv{;>#uw5{=of>+`=nALqP!krW?)J zx{}UDLUO*qeJlLHz|a5kM6DI|f6Z!($U$BL?;GO$0(`Ch7ziRrR3O?vhP4(YA7}e; zrcD}owG{o9D&TzOxX3$U>Fu@{msw0+VzUa1^g?~n-CWOsUD)!}fZpd7Aiu5b>he6P ziqT4ox~uhQ$+`QA8^e6tR_!8D*M<|3R_6ClPOdKL#0 zczu)Fp(T&6C_h*8cWo=gEi+4n0Pd}Q!wW#kDPQQ7V$X9hO1)-g)`ucq;+=}A=T(5WLzF^41|K$;|x^k8^1}@Dk@JW zWE4*-3eoUZM&NkX#clHphI+|Yw@xrMvk^YMBEIehj(}eMUjUg40jww@{$}+f{$}+e z{$^znKUUD)r~$dEcjFL^cXDZCRIGrPJ@RqFh#e8INCU^RDn!N){%0bWLb7te%F)Sk zLCW+VM&`KS5DH``X;BbgFslPCD8Ux7q9kMpUqVt?avnby#v=j2j>8q&)*VQi*_1n` zSc|i+(a7fAZF|=eELbhp>{ZVMAD!FC_`E^a?huCfJi=WmZ|n05eloxm<7@MxCDeCp z>dD5dJnY(Za6W;R1CR6lgWi>d-xf`QC}A?e zZ6_x1j^#&DpC9+5M@ZfSclV3=E3zARw|Mg~^o+3&spIW~#@QEVdhe3R94KV*(mELz zJTJnq0E}lA)Z~2d?};hS3e17Hv(brH?rv$d(8a2WEF|xAy!+Eq|75yDnU!ychPJ%* zoXQBA*6rA00UqocmFU^GDpF@$HePi5Q>;x@^<zG~;Z0h{x!KdNa?2v+0ja^(! z#sZ}SNfEW&1~6x3YISVht_?oqRWBaOwcXp$FV6Dv8v2w&ypC4ACvc@dDBZf`mXOHY zgtQGcqu7BR=&nXo%Qqn%KNJ-TnYQPqms1F_I-Kgn`hA%`s>6^G4)+Q;?35bKN@{h{ zmJ5Q#BWVBF5)h3mOE48OiQnN$L2sA_7=%FyET|C9)3lt$kO^>F^Zz1#q3sdaOiE6! zWdImyO_|h~Ibeh%QV3s>*lrhCc?iBgkKI^rL^ z5P}!u?o?4Ltar>~Q#>!m6J%^$=yq4%R;0a*U*3fE>i2iIl2xQ`X$a)GeFKe5mlPx6 z5*pI+Yp~U}r#{_nepr;K<}JqC&;RtE?W=e+=oLfCnkUCm)kLRf%_GAn1%`S!2u1*? z1qZ{60+YreF?%d&%~~&VP$W48 z3Kv#^YAdK^a8M6SWhX~{@rkJ$dgSsHE1))bHMse(c86cdr{go5 zHjEe2{?E~39pFXJ@W#$Hfes?;h~YH z#J-7vLaj>M2??CiiJ8kY(2sCaghB~QkR6r#x&|?@j3nIv6}T7k1ZXkw3L*$Jd*1|~Bq{INF?rqaW1Lldit)bkQmF*@MZs}PWXC5n)(`G#yO$%qMXop}|~ zTFBNKdVtcJs04+0j4rULc?ZgcUZg+KV;+^4T^RMT&*e7862U)d8%e#R96)i!IbSnw-ThL{CA&G5@0auEO$9lD^YmZAS<0s$|h@8Iw_;`$K zATaQcLL+HXzGKl5x8y3C9aQM3;Fd$WTT9Y*h76ae-t0+&nSaPQvfQ*E{6>FR10Nym zez`EFS7<~I*bceb6=LMZq}ePaoE{@9XvZNWSy6Aq1QzP=r3=Q31A+DMP8ZxJ9-C%( z8Hco7e2p~+!x zj9$0Aj+Po$aFPN|C0!Y)NOtpUAk{4Yx_i#lY>Gc5ehR*YNiE3bI*@uP`TE!XEVaQtn#i=#g!|Oh%ubqM#(&WGZ$&eF*8Ho-+Vo1o zk|VuBKD0|{nE7*TZ~PBX?Rie&S0=2@lAcf1SGPd1g|hN7|3eF|Xb%7%5eknbm!BYlx}+oqU7pfF-=q&_vpl>gz>e|cwh!1=4tBm3t;(a|)V&eSmO$ld zf*&i0*X^xI5th$mg~ASF^2k_uXI*RsZ=pZ7(#5Qp7pkTnaU95HXa$vKkJCOzdhrYczSVUQtD=tMpBv zWbV-IXMK_(x6AwlLl8^6=n>~=Cs>Ua=i7N1yZO)n9-UAw4VA*=Vyx}~XNN-C`rKL^ z1oeLMd!&XL*gj8x#TO>1Jy-%kcok(G!>UHKW_0)XilcBwzJhOvhkrjQ+3HYPYOSsq z!3}xx_bPn2b>319^CC15dWO+dpg&o>z=I~XHEmQXu+~VD(WqeT;5aU7X6R;*=RJ*x z6}*W1o0_7=^GQl$18XT0jaQc1Y_Ozx8c}P&KB9p87ihS!1-2(8cysP z7gY;tOo2MSw&kt}AVFxbJuH{9M1-)q55f}s;f!^0|JXvM zwd^ofduZHoN+w??%6YDXXi602>)a1a%^w4vcmnMWFxVJw`Z8L=jrJ%$nqLErw7hKL z>`FiMa@{{(dUM7OZxbMr*FSXKkwf&Ek01cRUlcvzCqh<^0e#iD)PN1!@(}E8?yAP?dSP-WH(!VaaJ4v^ZKO|*0i|8Io2{G`2zHd8_!e~Ig)K!G{OFNqs6U(9 zO%TELc>kb0_)96*-#be*RRda((<#|C(Iqui@i@6{Szu2c56qC<-4fA>oPg#3-NdSo5X)5Oj!q~G``~Bv3%hNTVEwC zCpJI56-%GVT@#*@TL<#qn@uOz+1^ZMSSp;~&PoQk8 z+7DrQ0TGHlK>Hs?cNS=x@CNA!X)rHF{DH5jecVXwkg4qjAhscUE3`R|Y zQtNC=A}rFwV=)#=*(qvZ-xsGU0@>FoKUbRez+vh`XC{_1rUO$aFN7{BxDYR?wO(+_ za}&p&^2ugx^7JYlR0X749;Q&^Hy#xvpDkve$=B<}YiOp;4V32CdJk2hGBx?=M7(jI zyxFp(eC4>h57t=g{4vlR2#do@~ajN}?bX}4I z@hiBjJwTu`9XEj~HK9=pam(#PG;ZMZs9rC2WLg)h&$~?8F=-WIxbq15sH}U6P{&^o z)foBPZM^<^a_AFiKFXg z(stD!mFlnKJ?*Ig-aWYK3-EipFzb=)4*XX_a?rqrK`!1E&S_DfyPAG2&I@Ux^sOja zp}kn1I0z_Vw*$v72vbK*40RU3vw-yN8fioU$lbmZ(M9dRe?qwqtbedZtrN@f{^f@O zy$BmMyh`a@%WFBd-kUAH`<8L}%|^2Zgmo&_jU8KSINzvesMHTI&;E0~{Iqdj!-!vt zVb;p)Ggltd2Tl%!mgR+a#KwflLKNx%?|~c;@V*X5E9S~X+Kv1-I?=Kq08Gb3Q-DQM zI*7A6t;USHHk!L7)Wq1;PcMTnIJZGg>M#8BnvuNeRu!dMC_OY6bccd#&&rP?6eDX) zZoWC|d}jUoe>YgCcEHOKq_^9QA)7+g?_Z}g!P2xRn0c;Pi7c%&n0DA*WZq_A} zM%I~mGTkL$9jv@cAOYc@4(Lk}bh2fv9o-$%ytsy<|5Z+r$CEvuiBo=kAO+p~Ezv?H z3UwPc(|Za~9hD{27us~t%+8ouo$x49wdn-H9E+r7Vvizn(rkzkw6ZcMHGvtfbL0Mg zZeNQps&t2u?$D!|Kbq?N&?`0;#Fs})U6xbe?x>T-(1TI^92WJ7Y73r`@Rc+tr?5sh z_b1)0NXF}F-)d7^ahhe;^=1&^S3I{KoQ?KH(eM0e88icr;e&4;x5H?`UW-n-{K*_3 zOs}3)!Q?y`W+?GK-&uMfT?bT{1qy9UM`v}L1zb{1Cuc6!M_8l!8a^rQQ7Y&By^-Fo z&BS5MaYeK{f$9a^UVwcYhigpGhMu4TBXaD)AZ@u+*iuhreS&>EAB#`U?^BSo*CCeU zzaFR@`E*s1Rz!An`ZU=afMX#s=hfoFVl7p)7Gl|cp2C0s@<^o6nkr5LiYuk2S=5{t zqSi%9NA|iAoqyZ56p4pIcbV%KX`Sp-=wsTf2!4qS&9@?Cu0gp4lXRRj*{+M0RnXCe zW@J82c$X)>o4LtmDBxY|?*xZsw+fWE#T_w{lycK8S4REkdiF~Q$c&AjB-}pRt~Qv? z^9+zdxx#$@BXQ-d3GBDx{xTtvkHzWY7Ct&Z9@tXK{Iq4sTd2PJ&RFTm{d$!9pteir zA%c65K<{t;8Pi^Y|7%3J_a(dh6);rf^fL#^4~&m7JW0Nlq7Z#5Rp}qQ7U|jcEkohC zzC+eHQCzK2deSEC`lC+5joo~3pm(>0nrg-(jlCm51O4^VF*|9n0B~lypu??M6oo|q z54CFp>1x`?yiAX?l_utFH72?xS3tU1r5oFo5TZ)Hvr^hU!WMa2pqnmPNRMmdr8JuK z@$>{yMZOrFIuOEWv*Q(HVY}c<&L|Uq0(D!g75Epl@V`9G?Z-XgqIlk^wn3uLevIQ> z#gMhuS^&CVA}>Yey2kM$!nFnu563gXi6Sua%bYXhligZuXN4b8ZnV6g8y$;S7Jb#y zXbl~TWgHC9cM#H7&udNdVIv zj2zixZx`K0*9(IQ?QzbxoifF@RkK8AkB-kv5XD4~YU#!y1Tb@^B}4&P^C+%Mw>QV- z&YYtSpb)QyLFMop07ai(K4gG}n4wIb@{-^=kRnpW&1S{M6Px7Kkr3?s-;r2DLs5-WbcS6)UY*^Jpg+c%$M%{cy*| zTEhu#9~7V7<-8!ob@$~lhF`5w?GJ)u3ms2P-tN8DdAaeXfTnALAJkkJ_JgC*e|UDd z8(#UQD{CVpedim*v8+XwO=?;sDXSx}g*i!4T&i$CC2EaM5tV4M7YDVvi|A$d08<;g z5}qc}(#v#sc^E8;o5Vemn>01ji}8ac-2q-2uw8n8olMWtqDpikKm@;AlqxGy6r9Am z2ZArhgD`5|7u;D11DmAO@_kS7)AD08setKh^UkOk_KFrKOkCfd5FFGuLs7F}T(>_- zAlyAFJE60}S*f9^tr+|)hi3)9*8nTVW%3=10|^%XZ%yf|lUk08Vj%Qcx2^A;>nv zS+t&rX0+I5{|MTK4Ots_!EqqU7zb=0(@;xm!H)}~sD~O3`*px@ z`;msN6P>No-z%p%j&|zCVk-u|~62p3B_ z%UVD{r!|i!avAw_6x2{*ty)v=rnDd~b5>MQ(=r2%dU?5EC7G`%?}Bz1hq*Z6GcS0E z+B|`019)8e^t(GgI#B}ITdMK8Kbp?aRd7v20|9#=q`yUAZJ%xAYdhimaA)Kbu-YY? z)rkgq&J@bF!wS`^*;9Oj+n%(y@^?Mx^whou!-(y)YL#fiVumqne1%MU4p|>GQ==`jxTi zfJW>|AvfGEGbRPW>jnf!Xr7u^Cju)$4UAA z98<<}==*s&q9HaULt#)OO|NYBNb7bdl%Iew4YEw)@d`#Id^pljfR3UJN0pwBCt8uB zW4Z>&=@vW=>%SP9hd_VPDHew8vZ6v!a>IX*mUL)odA=+J)1^%u1@sehJV;V&MCgzE zv7DgRN%Do48KSkOD_|Ko_tFu3Kzov6fePj z^MDBMXzj$Y&3k{HTK^8GK(_S!9@2%?CDCTZjr8k?AvbBpJu=XPlZNi*Pni`bc;GN? zP2~o9)=S}ic_$!w&hfQTWy7%;qp{z>qnc;x>Wf)%WZndatMimU7cfe8m7Q5l)DUQ* z^VgtdM|aLOTo*MX8!Q<1l^iUM9xd}F6_tkGjI)9)E29Qsa*6~(kxK?VBT-PBJ z3rizYRCvpcoU_zPAXLD(r|aA|$<8!6Vdo24QXg1hR==E;Jvv(N$ULpWcAAg%GT*j* zf$u4?j%VXjd;vzK*5Gm$MS!!B1gn|UR5KvYJCu0Vm0^XT7d8p!iX@7Wo`=Gx;%*$7 zLv0n6qj8z2tW)%k1Z_R0QCK&n<-FAFcVW>d+V1~CR8E)qFo!Cgz+tK!3z1pVYJd2b z#$5QUQAoT7WR}o}kRIi^Ou+~+vYS}}k061kmu4<{SY^3tE~?3C0^&2*{01g*ywLTF zhnvbZe0~A9X9JR9=l>&bFsL{0YF8a??j7vshdY#vVlj++{S*hZc{JWV-r70L_YX)K zz(<8jsflo$S;oB2*FkH$aIa~C>+O*IA^+JKY@ZfFQ_PEFjhZ|<&>m{S9W?Om^3^5Uw5^rmimmTr z!`Za3uRW`v$f;Fb$hQ{U71>r#!4Pc|BzCb~YX#b1(c6$SbMA9nn(O@-P=P#4-&6F#N>t#w8>LWr%0smP73$qhTO{g`mhssv$}R}F z9^@I4)_wf#*3dZJ=o^Csgf`V6iT-Yzm9@$WZz7EwPGD8qeMWCsesJ-=*8|$=LXz$g zqd*TBIbRy5oLHQV2UdD8OK^Y-VLuiiYC#z~USrzGRzk}!u#isU2)iez5+zVx|y8KLf@6_(f3iNis&JFy==i zwK3IdEm%!xr5!&jcu#%Io5G{x*f_;U>zNj)g102&Bf6HYACOM>3w*3-_gHxCDDSH; zg19tp{f#AI$6fp5`apd#`l)N}sob zPGur{EsJOtKxb~<>v~42k`K*tstLvG=iE1EfBWnhxeNI>R5<)`bcMIBOpR2&Lr1AY z&;N$KARpJ&tX!HReSoza;dH4Z<{JBz<`VSG@3j{zhC+NHPQdP;pVZaq9|RjW4bk2) zmS^nLcJ2B{(3kCqEX{;N1np2mn3@6C zTECCyD#0E&VbklSKtzj!`+Qr(fa#AF(&myU`H7DHF(0j05zMmBpw zXOQ%9(Ba|!d_;Q(1P~ssVz+C|dD_mhD`U?kcyB2~9%-6Cmztu3tZ+JwuBZl$cmDy|3DJ#R=2sm5H{T5Db5-URdiazA0r>~z)+r^ z@j;OFu(nG(;k&D!%1eCivxoYn@qO7A>>$WSEjG`iF03jk=Y9HMNewxga41JG9)=i| zP97?wf;B6e01rO1qf_^|5W&l=KR^u3?e?CP#x&Ijy}Z(s9I>}@vvxA!2X$W5c9R}A z<4XED1biHGyzSZa0vZnxjacYFZ5;y3qTEzki8=((&hKSYGST-LA06o9Qfe&YFHTP* z??-2g*Eqi%wiIx|l-xqudbSOwc#{qlCO4rSAa%-R%zYg_Ty(MSb_-@})Z#97W(EKF(yj!KkaB(d3B z3@JR!fmHx zeXsK!PII1ssh28Myw$Wr%gbtTYy|-27Y14if6!h~yrHSO z;(`|oV10Y$6N2?sZL*n%XAKSCcg}(J>q?wmf6z5hqug%)9w!Eivh|luKnBAkxk12h z7<(lz4d;PPmDZ;|%(8-J()NZUV6k_X4%FJuw|eVVY~6

bJ88^TM&l_Ej&L>34Kk zq10dD zH{*L5q3{un#zC!&`R0SnsCn@ieej*FQ!~lIe72oGCBv)goAU0En=?TcPH zb~Z~UUWWAR@uxZ~(}^E>G*|efxrl3iJ<9Lk^Z(T-mDel`=$^3^j1_&k%kKqT=KV&5 z#zUDzNR8?&eLyr6-VH$m$l@JfhA}WJOy5I1k$y(~(U9c4=5Mt=F0};=9PA$3eHv9p zyZ0NSP*z;Ouq}`lLKc5z9cn&6@25Cf%f?GLO*VWaFL7lb7~~+j$n4b>>0E8kyWRZ%LRj$ ziJgo)AF#MBX8r@wpLA}Kp#IaRf?`kV@!6j4Wyw&C@bEX9FMr%=M`JmZ2Y)QSvkH9bH~KUinj z{3*5jXZAEKhPQ0z&9WQrBVj=`9}Tffr#o>u7_o1C4GEjN9FDQ87C0Pl>?akR7qjxD zG$(dR_CiqJLVh&K4F1NTQC`VSm2}qkb-Zr3#APW*a(5X>q!9@`ScvA@Qf(IjuY#4* zmE2?w^9UV#Rs3E|J87~N>Fd&xYjQZv8H5foe>A32CXc=TV7D#@(V0-RGDi}WK%wj> zKNc_~p=?k8>{rvK5AXe#kp$O=URTjoKN5W|U_{AUP>s^KtrmC5LHPiqzUc$JVK#syUk2g>7w4j(ZURTxUBK8y!`38a+3L`@ZeuU4a|tn#AQ#CiMq!RHFTcpB=dY|u@= zZ+w|a3>7?rA3nYmLS^5YyT^8Fs2c&^>+o1^BMj5Kt%ic#U zJ9GKc0^tg2HYuN9 zCdK+cGCDyHJg{@iainIlC-zwBMj!qW`iQ>0y_;kd_n^{k&Ow1*dTKSPaH@0*S11Ie!8C}c$G%|Ku=$;jH)hF6k;s>svOVR7}ZN$+gy~MjYV3UUfm!KYc(!~E3VuP?> zB@;wg*&KJO@NoS<3{%k$o{JiLrnv*LeMN!W=p2d$en?>*fst0~tN`v$@nV;Rt-R`` z&Du2`kZ3zS9qsVKi8L<@cE;b2^PP|- zTE=ZJX)febWjEDG_&(2gpcysz8M3i5(65n*;9%)cbckzJ8D!`@*@A8Sx34cy4Fp z5xX_zc+1@hn$97b16c-YrwZ_|Xd|N;W4`s`GfH9^`N_*_YCiAqs>L9osyFDd+AU2s zM%bGIx~{v;lW*}YvOlioK=ddE>5e$3)w=)=GmPY z8p$3Wq?@IBo32H%qRrSF>whZ4OLdLK35<H1;L^ko(WSS>pb-*{swXCszaWYG@6;dGr*v zf?_YWd&L_cyxfh;bg~fpGk9?Z?^PZL#r{VyqFOc%I_`0p1;RfO^aA%m_yPh4J8l&Y z{DW_FBIQ=Q*r6x<+bmX*#d#;(?~0f?`mhaeB=&8u^Tu2mF%UdNl?m~V&7lXxH%OuR zCkR1my{EEYREfyx?^suGI4eRgo$;MX`+&T#NEh#~-Pupz5|sXm(^o3$`kjsL=pU~q zc4*t@W(Kz>2I%28u|KDCz~4!?QcDEZufx&efx0zA#G1^7mkf>3y49Aoo5FxYd&qFx zMs{=jnLdk{Zr@&S=yM=rNY9UOFJhiB7pXOryhw662`=RJ2-Sdkac;RL95y{g^b&wg zRt#?DmQW3XZ(3D};6jmlYImz60sv7Gu1>;w;K1(#B~2&Ck^7pu%&9ej#Vt|&wltAV zw0C+1rNI{B)0wZ=cJb9Nqg$P3_PZ9wU8v9+B;j~u*m<1ek1{OPIN9G>{CmZ7c0kLo z1?d#P3TFVtVq)waOYG$|Zf&$qoA4TQ0`m6)TeYtHPW61lQ!DtusUO1lkOBTQJwA() z!bTZAMeB1Y<3eJmc=hvQu2NP*%HW+e%QxK>$)My79R=e|Dz=5XYGXYsl>oPl7KcME zwn+(3?#I)MaK3>;<&Z>2$uVS1w(EHZ5%<$6+6_X9y7gj9zHChw3h>FBoc}Q`PvmnA z%eH~=C>nYMSy7Z**S&(!(4A%4Bh+`=mK(TY(={k0oHdj^BnV@mY;WsByn_pDF#+^p zcX=B5y2W;THb=N*;nFQU;yqh)VDiu$r3se*{SlX|u{rt4TR$}J+^&2Zn>pZR_=*v0 zDrYUHu{K{8edsIDY(LXdS0$5Tz*N~%dN?A}h?*HEGrODUogC<*9SxI9P`;R?wQ1J`j!ku;VlBN}B{|E;1I*ow>fF4=k{CrivZDLmy6uJ_WTijMAD-3ZGtZiVE7SL{_TV4N zcVwqZVfJWw-xIAMCaVah#G>VC)NVzJYTv4|&hs(fNTPI1LqCjmj^v_QD8w7GTTt@{ z-F4UjSvoo;}&xEAKo zjxQQcI8rPp0$CD-x#mRfYpUPa&p&a?TW^6nS%`YQwnol$B{~@w_eeovy1202gqV8N zxl$fBXH7wt+ZjQ9&9?+%)iu^Fi5&Z3MXo1ek~EyBgS(EJu^w^zSn`ToG93>Ej$_=I zL_QU7$tx>1@F?8z3q3GIVNg3=qxEJ4n}S|O*bVnlX@)u53leG&*uI~^Hg$QN&%nww z3rsKjXskIXU3zg--NQ&JMNM~AGPxm8njF*8$IIt?gamUHx)bMpjNy%HdjGu&`Z{uP zp7>>XPwBX!bOPE&&6B;pqrt+vyiSuw$R1^z{aMhdU6G#vhtI9gDe2qx@(pbUlbU>4Bsd%=qg}X=Bt% z%FhKY-EDv>fdHtGw9u%nJkz4UCR+*BqyeV}-*};WV&kdtU&kb8&i{vSuVsQ)*f-wn zA3E7%I$*ZPR{vZQkX?`nT38?Y_(Wj!x0_=w8f1q73?!RtJW3O=Sn3+mIMZfk;G#)| znv?^I)?|P$vNfUZd=--J>M09EyK2K=$$H1mM`XpbY@GMWb`ip0gNH3hNf#ENqZff+ zSphlCt(tO*m{WvV@hET@NKS|rQ>Za0KSiWxN?{|=tks*ElK zGm8+@77j$kAbcbu=;evJl3oI{=;KnexykIuaHawuXK-SVkX>-(j(spZ{<(o`C^KI+ zp*!6eP|ZvIVa3ttR}!h}b*B?t$^CsNO?wD+9wd&|b6@KvfA1AwvBl9vv|UPRE8 zZjgOzTH*o8%l^8tl_UHDr=&$Iyk@dutDBv}@%`bwB+-iw?^QcspDdjL+#31Qy0l~m zMuqugy{7y*%I573VG`wzUy2;M{>eRJhTtJtyK@ca4ffbtb-R$o=~2N{(7nA{c!^sR zc%sMJoh?=LYc%B>1{W2e=`Z9_3m ze+yQG!miypehPNLhS>@?pf6|FDepScN&Kp_L7NcZYhA-s{F8sd7BoE*!d%nEMbJcQ z@g9V9&wZ|gPD@PV!MgPO_#ywXsvj}?ShfT@9Ho~K$BuakLp&XnsJjLqgyPLZSYE35f=F7N)D6ULQG(Vq`* z);6+!3}1H1XOHS{ia0S#b?FmMVtOPjhZO)7k)fK$n)4NRpsuokSS8K-=*p5Io6B-M zby9FNgq&!!nZq8VQe1qfman5^CX(#em9b{zpOQg`>}&$ zH;oy$@<{dvEQR%En};vQP+&|I;agnD{XKAwIg*ASKF zJyBtGPD`sm%L3mYpt3Hc6nksR;c02pdVsC^gzSmsf=Y^W^;fJ9(0aA-{N=dfc_(TU zmg>XVu?`zk?^wklG0Cz|Cx% zw$wX_d8TS!I+V1p|5I+)h1qnO%z(Fa7NZQ+L4Ode2AWtO!~^#NwUf!sv^mW@fFbCn zpavojV`Jj7B7fuUYR=HFjO>|8Io}$gu%ZA>K(fCeeU>hPV=?-pNIFf1Kpn@IX6gmL zn2vC`bcrHw&rvPRK2qy$*KO@kyLmiOU2ktaktTz>ntc#f&)ZJ0`ih?IvEn7p5gtA{1PZU?R$^PrgVdinML3 z@|y+h99mqI6{D%%CWH0W`)$ZcTA3YMLDI{C(nN%nydBFb#Mk0SMpb#kq^zJ32v!af zNzjG(Ox|`j`}{HZIY`tyKXTNulf^Z4a>bw)LReZL&k+@p*9$-SAa;1i#sbq4%E<5BO?w*ta2IP_h|h1t=rkRr3egpH>= zy}!C#I7b@LvxMq}R0xUFRc*dQcrva@3v)M*2);-MJ(pmRJD`;wdU0Q%nC%vRanD28 zl_tqop@{WHx)RKkJSMJRO5V%RG94ugY!3DX<-r+L?p3A^de?$=gApnATkUAH;|wHB za;r)t-k(tcylUn~er#$v$Z2%USjee`K=}@HylVkzeWrin#7$&xBvsEJ5B)(S1~G+* z2tcz-LBIVcQ7N_EdIp!7Zd6(0E-Q=sck|!FLxU4zqs$+lV;xOlb;{?*vOD=<$E1Du zqgW@l=`_8OunmX1tqv*dUvij`e98lD*^M^X=sa3g>HdskZH=?Dt=p@yoR<2N2uL+QsU%f`$9t9&IspmufC?rp8K#18g^pfcRZ6fwIJMbVgB%~x#lGQG zXOg4EaxE>JCFX^yU%G~dwl4_88okRh_K$L*1i?3ur@|+`X9lk$#a?5 zx45I)B(t*+v5!K>x?WaoJ%L|Vj8J+sdjn;QUyj)Gfvcf zLZ=7(Tr(+W2X+|l0`p*ue`Rf%!}@_jzK(WDrIp6ukQ{ar|2i5)Pom{eS`8B|M{VM< z7GGbYCUYlxnOPC1T|$oQNWo}pZ{xbH7IXn&w1jX4epx-HA+1o9r6H`>{chk-Lqgm= zmXNFIEJ>jtI4P?~?meMg9R{Jo(){e+zGB-YS{6ZTmZpi89@b4j4ylrhbk03B-e`3yRa-S7Vab3QVv|l z0qr6L_BqnHe=$M#dWB}IiEvF7kceU_KJuk^J&cuvGO?(r999sj3N+12T&dEqyw&+K zTfJ62K7L@!@1WtHc;rdUiD0W!dETsnLnz$u|vtiuVu0I^y2r=Q)}A z^?NgP z92M%Q_Z3xQ_`N_FgU1@6`}p+(gNct*XZdVR zqdIcn--nJ8hY_jpUJdBi!Gpg|dDqpH1K2;Do=;BySZZTUn4Y8gze~#`6nIqi5%eHA z`xA+YT$?uw`CB~9_(YFt^7|LVZK(iJFUi*D1nz3RD&kB}Ix;_iWuO%*KZPVa*kqdR z2iiAc5y3a>_w5yPed;XH2Y&UDJ8$LSdHR661hI+>gYX1xJ-I@(7OO4VIU=uV(-evO z>&MQpGTB{qx0J=dsZD$!nwB}pT|&;*JTN; zE5%-xW3h_(X`gJ)=UE1-JQzvRm=7c2q=Y(1o{}mlFEx*1DB(S*u@~4$3hC{)7Ku*d zOCzNSKAm42-nN;hV@~fdDKS+WNhig!P{GxN0DhP|S?0ECVWkzBNK5V~TGAF|jst?K zRt|C|9zf{=4yo)?45MTQy#TuHv?PaN-J%=WF$XL=afgmZer!8DB?`Oc8c7;G6IlD& z!~$h+o>6xb2^7A#=7cBc`QGT*)%44aQ?G8(v_oMPg#1b`PV1hvI;?(^D^!?Op|517$Wmi!Ot2;#d2mjP=Ac>f zn|01c{1=<@PafJdG&*(y_Ix6|6JVu)B)}SO;8d6zI&kl#A^Bqfq6mhI3!71hYEiRX6ycgBiqwx{F)a}mKu|HZnpSRrdDlBiOsu><4>I%ZV*)66jS14 zJ&S_+C`x5OCYfN}FfTmh&vHp>Pe^{hvlF%iB|vb$2Bn@A!^!440`CCsfE2O2k_V zB%bOw+9QsVsX+FOVLKk7jkQ8hpl#o!=8R4YeVfD%zMw)30? zoU}lW}b`aaQUXsMzqtyu7HHy%zMVn&^X#j_y z#o0?0f-+8Q%>WaPl43|oX>tKRxoX{JE<|ED1uNbN;nO&fF5N0)pGcY!ZbuD?c@(80 zWf8tuiguqn3u08c8jTi`8(<8OFNrI2v#gG{I8z=`T5mSeE7K!TY1}yR8EsT-4k2_6t}qX9RdNNd-q%lLv~22Q>@^r9xQAO+1@P`JeTy@=f8h-ks(k%;hWRtN`;h3Ulo znF5?5FShK9!DdECLCC)?G7_tsMX{?_pUKd&Ou^nHpg(m2nc^gSkXZO3-92nguX%>z z+#u##=_K$1Wo9_@HF~XF)ehsEWo-t()Hm?zSm3~eSv_=_#2_4Qk2bufbM;A|(d%C` z94HbP4?eH#NcF##Yy||}vwjAuijx>~VLGmasEm4jmzQ~Zeock#RH z*YY)?%YwA2U7&fZ*&7EO-aJaBl z5TuaCt-5jEccd)@kp37+Cs--|eB^G$NJmy1S_AwCxG-z*R_NJg98R6z<;HC7P88<8 zFzWte12ixUu$p-Y%g;(zx zUZh=Q6)L*Zt~U255YHs<>>y$ryVFPXcgnvpc<2{XrPPqEP*_p{yK!3wa&jV$cEnj# z4SANRU+Qow1~X?XjWKeYKwdu~&{g*_IkMfZAIQah1K1NhYe=+a&IbGfPLcsZZM`L9 z--&CZ-wwCmt{^O6hYq5bK1ZiK7P-&gyhJ_^!qGPn(IooZLZN~+Z+=Y7-wMKB=Ks%I z6Tox4khW7I9)4WFh*{rkGe;Wfo}|C<3Cl2f%EEztdfHj2RWVPpSXDF8f5Sya=KlY} zC3G^Il~grpKvbkB05ov@9w8s-c6RDhs@FUw$eH;%_;r?9BZs^I6(p5C;0v#-myaL2 z#_y&HN+lanD#CcrR&Tft6Fi9>tLc`?q~(By!ebM;^BN<>v#?@Cp=B`GQ@EHMgAA5Qs!datv+B`I zGL(!iPEu~%^0?0g(r{(&=uzo=m@aiTW*YwlbB4O~5$U#a7bm zmPo$&fbzYCV- zO#X7YlR&qL6%-~}TH74ue&2;`t@o+L<|%rSER~`tCXOooGsi#zzn&`Idu^v(J9jL0 z_xO)m#e=-~4jFp&%IBe6h@HAJ)wS$9T`b6TNNb6q2|5b()VnciuU~x&hNJ<0^AoWA zAdkGMbmV4_#P)P-waKw6Nd7vltfMX1+5xLeU+48if;gFR65dd}DnkJvM+-6Z5_L(x zq-1G>pclB^;CFOG;#8`~8z6n%E2*wMdnU{8)GxbZ-(Q2-+0km@l@F^lrNfCl!SfD5 z0JT`ua}G$R@6iL!F0N-M%Q8{}MZlkZKNorv#|o>UYqfd<*Fg5}-(r@~_y`_QHz(a7 zrWxu=3_HKXlfoX3v~*6(|2hv6)`Z!Kme7+SmqGkXhffK?P^qr=D~>Yyn0L}y1FUv`^-UMqu?4ZunVh-;;6W2P|g6;cdo4Q<$fE7U*0&!v)1Ewuf8QGI^D)k`rUWfhXV~ zm(*?WyQ7&ddQomCU&P984P>jwYDK{4gy30g1VZB22f{kc-he@H%0cSwka?SI@8w9t z?Ep(uqOX89&5x;!h%Le6ThLPB zXT>11ozxm$`z#r-3@RdyDqEuR)Fr!C-b7Gb+L5+*@>XNHPwQ0ZpXtHMdl7Q93Wj}a zDXW;<5sZ+^9E28J9lJ9qx-s4-u%D2aaf&G)6)ULcqdA(xjOWYxt3zst4vzdF(k*8w zmv^@xii~m&Bg8NUS<-@i$Y>oqaw#ugQO3%*QO#gnvB;f}|MQ~?h1%iGT z_}D5{XI2#)7Uvc)7R$B!1yXhlvCJ1QOIZRDsp5jkkL@}xg>l2RXCo792p%d#ZzHLc zasfX^bC#dOguLSd+xXuOcugoY+F^+FrkWwSU^wpslgCh!O%w9l(Ttjbo4cGy;; z@3EJR5#;Ys8!WF{XLF&+>ND|1CZ#3}umU;>6WeCKD?}@K($KgZO>o60R~KZw^GQJb z0Ed2obF;1VvRzOD&RhBlZ!x+z_X=m5I zO;$Cl>hWTe4HuTN8ya)r{dAK=%m3EVi}ASq)#8HiQ*r;|OaDw8mckVji+`yqA;;q> zZJ{0b4=++-Z)Z}1_+`+z`UwtP@Aj^CkZ4y(18CrKUe;&@W0$=xqh#H zS^Dp?5+@4+cZULfz|v;Qc8surxx&JqCN*6c1z-2h>EIK5@rZ~v3D8)`7!Msyk z*#5l+-ji4S*=m41mdnq|veFNkS%|1IU2Jn`&)zrJS%U6Z%H-lhbSJa*ik3+Zh1I%>mI z4WqQxsl)uVSQFCf^x|Uw4fHkEaINDzsqM49K#nY}k>Iks^>c;W)y9+Kt?+9G#bzMY zjuIYJqCb$Y#PJv$Ev#XvL^kGsOQt#o#>JI)VBbSqJb_*#M^5gH7)~+eJpyhCM6mVzl-+}lK+E{GzE8XP2-22(_3YwkTT`dCMad(|Xt)SdL#hI|~gRJEZbICX`@P-xQ&>;u=)n)sT z2*IIm2r1VY8|vY&-VWmO2pTrW$jb&dZu8UI^HjaMnhX^0J7KTRl|r)#C>6FWi4tpwb z_OSIzOqiD6`fmR2X){>fF3}(HF4&{(>%F*TNhphdCHq^2)G|U`2_nkfrX7hY6)Y{H z+h>+WX810tz*zmfR#hFOk6)t8$x2fFJqDkF1ZFc`h4(%dt^7_o*5ps{vmwbxrH-gz zwbV%hi3{OkYt=fBTPM^+%J=(-g&&4MZs1`e+=C-)nhNcLXmzDxLg!Xi+~=e zXj>lTiTaDWl`WzlN{YL(`2fsN$BGNij2?Ns;mB}DgsmivQUkxqxtEcjhp#@|Es;-L zFQuMgN%=UVXQUC8uh67f0sB#UrU^xP6g$UmE=jc%rU)YRQ9}CT(AUPlUY->|d9mm> z9@Hg8kV`r{C&wtDWvBe&u-(UG)x>d7#el^F-5Zl0pT~jhudtU6dGrT-#j;eS1FHAr zS|fKrHbUZAe%iTaFG^=(kQ=Q_t{E~xOgr-ROY$X+Hhs6?(89dgC=W-9q{%etegbD) znC*gOST*9&qJ!|f8P_Fw@5OdQy!X0mnOe{~(_brzaYqQ|fnRL~O$6nJgL0(amKiBd z^0HNUYf1xt8C2N|CkJ7|kXD5B2XS~-9`47aNbQBCkP&l$%WyYNV~7pXh@Bf6VL#wQ zJ-x>^xJ9|<*d*(8{KO;euwuMoxOYz@U~{qVB#tbvR^t=zWkv!&!7%~Hy_B4W6Cr^* z*@h2BMxkQUq6y!NcS0-kl8Ua|T$}ui1f51RDPiVLNU^^`hW;_WDMwdWdd0brBP8!m2p6H2JyhWDIexa@ zs*Q&q3S5DaR10w)=zEMP#{@g{G{;oJm2v1`!zf|zLG7f7=nCitK4jq$Co+%@L9lgd z5Sr9NRGjm$;WMRdE3NLf!gGSE0N<_M4?Q^htvl_I5HHA!q+!Mf9}olh+aJkNZOykR zR!RkjWJZ&#-uB*Ww?S3=D%?6||${~IIG+BbI$zKn6!!tkVncRq(>5VTg zKD0w&7TZNGHN#v9b~7aM`yPU#h@jIFCGoKHxSJ&{8e5^LN$+bW%z0c}AvqO9p z(+~vYheHp|c`1IGU?HECJg>4t4I%$vL}LlQ(({*GA1mt$nVa_PlJCQy6{PMQ_FuGzX;Fk{{S28T9|ja{fri*dW!;b|tz5>p5AYco=QCXR;v z%N9a7YD;B?dn*}HaanB!Wz`eg33Z))F9!#)*Ggvtt5`!y_@Prfj#TM~FGxg|OiQe_ zr_o+KF8EsSV;rPixW*o_x2PQtWZbU@F(WcAMOg1+6~k_mAUbw?~BhWygT zjs~AOVK=Ms(z({cq@OoO6n1yAd+oqvEuQA}hOOKqw%WaN;FjB*NiO1?d2!Bm#!sO3 zt}b(oAv8A)%+NC3zFvQ4taY!3;l~phr+n^iSzApVXnpfv_T_0PmEo?2k~O-Zg@#H@ zE{gOQYkFkoA2t^7*#d4Ca8q1UaHt1^CebXXAIrRRNuOxS(33P$#-gI-WDxzFOkR{*SSb)d8ld z7L5BgEbHld(nN3>96dj;Zk%(^jAeH^Y~7j$Id;H#TBT#z?e5rn#kfyI`5E63%v{Js zSsn|)5gIvYJT67tk(DDcEk~YIF;z(10|0sDeh-Sv8frB}n9`H;E{?mMEa|UK&H4u} zyS_wP7YHbJ74;_a+6)T()tz$9%GjWB(*T&z0Y>wQ$44AW^{~J?&Zk%f{U_!A_wF4c z#Wf|TSu|w@X7x{!O+zZX1^+9E2QRLBGmw)sYlELiDVm-W)|;m9?V7lGFsNK&<$Sj5 zi5&ncp)}V(*TPa!SZ3^Q!;;_WHNV`=mC+rJGAndl1J$bF1NBJ3--##hn>!nCiDkoE zLWms2+@<vsD78=h{eCZ=k&*@s$DMF6p1oT{UASmYd?Z66-v(g}d( zq|P7iE%tsEclbEYRCOsxChtcsfgwMo7a(q4(L$vp`uHT%EL)vtMA{BsZp8FsEu%ct z1{9O(YTzP$$ql_dAik~+3SMJ|2lz=BqY%+ZkPue8=miZevJmBgF_kHZ?KYj-&3Irw z7*Px2Cz;W!ea?co|1_l<4M%UNEVfK5#3b-5QIZ50wfeUw8{Pg+_s$cRIwf&lY8yMj zhPUEHB4)Ndi;-s%lIs;4FT>;8Ls^so^bM+eo1Lt0A|`%zG5$~LxIN{L4>+{nfkHP~ z{YX(O%6^Zvi1Hcy#QC#6o6AI8!_DXRZpti9JbYy#^LEYZ&*n!5hg+8;OPN6O0IQ$v zl@^JiSQpD#VJ{|roqC2Z)x)EG6JAzlhn(s$o5OPnSxEEdX4T1HSb^YZbSSL&6Ln^x zZaEf6Bb|ypzLYnRSzZh*L;PHn<78TQnntgR5-ancEd+YA$<>Vh8zA4_`6L4D-7Srv z-JPF<=AgYVxrEMEk{k#!ht_ zH~V+~21CVx`S(MoP)?Be$u9n#i&uPa9kac7;HTa~qUg$|BYeQjlG6C?3kh`ROWn&f zgP#Zy5>DMt-zGjAfBz^1)@{V6w*B3+>9xHzOjSM4uHsy%-pM6sa!0<)M-9`+%NnUy zr&mT!VXokYLgnX3!zws`&OA~n|7s!Wu98tY?y5kcv-|l5a><{rT%3*ga(kL&?)=kW zqH3z1=6QuwfgmgHA+Cc^NX@#bXzmA@7*;YHB_kjCr}KI zOree!c<%U(7d%i`08Fzi}W-BsOjl#hXZ`C8_ zG7I7gVPP;e_@I0xX$*rhwyT5hof1kxyi zE0H7R_|tH>9?59Q`iQMOid($wq#d`_Ti)dfOZEvys0$wjNCa^HlW9f-xGE3@UDh!s z3Gj-u0B`Fy7$zA7vfSZG<<^x0#{!Gt*FbmUnce%vTfB&-?H8i@R2;oo-rRzr(974L z>iCPuwryQPIDd`YnrKrN6)B>M6HZ}MHe@^c@^!K$o8U%Yr-@coP20%3VO(gvuE*R; zkWwigH34jV9m#7CS;sOpQ>FV7;uZwDmZ+pD2NX>c>;VlTaSD9P+iGmOU}vuQwYTv^ z6Dy`FR@7c+u^$n2d~vI=riluBWS_AhAHx~%%1iCZQq&>}9h@O>S=>aYnIY@+RNgND ztH#Gv60HO3bUAYXAlYd^ooTv{X)4iU;|SRD&d6c*v20HScb2y~};B-2c=5DW3GZ=xV~@s56IB9kCZnWjRpY*ull0Gi&cAheuAsV6n(r=6_| zN822?i(5gnP~%--o+mOT*K1np2~=_oZN_PMhMHDTx}ca<+seED?(bQu68?$VmjnSp z+QB)#6K&aT!;xN94nj3PRDe%|9daY9aQg+{oH9!qQRD18uz%m7XEfn{-t8|a z=#yUOl{pV@Vi2U;bUoKt4fu+Mk~R~?Apa4shqvf%JtG(?g{i_4n{6zA?MNo3r~)xq zDC2%zb!ty9zHlD|98W z2)w(mpFvsgw!@;<>4q(d3^ajelh2{5chW%ZbFh7dTFPmt&=kZSvh_sYKZLjep$(%^ z+~1e$0#Rv#5Nj(ytn8UeN7x?nmdfoQnPow_De|4H z4c6RHRd6X9j3pHUvpo;_6|dh*Y%>8yExTKYIJ*UE-c4DLn_C#~+68Cw8mkUS({C9|Yc#Ilg)RAk~C7&NmV8b)4+mXHIu=7o69CBr+<`&Eo~WJO*s6>nPsCXkx&n2l_QEZwPjFS zLH8y)w)vi4K#b>`qznkNmSlRVTGC{- zm#|CiaiFD@uN(YFIou5h5Lvm*Y;A~u%W4{p+;_UpJ{8=4J|@=L^32XYQc9O?>J8n1 zHi*{8m~PO)Kb35!2+rP9>ES#e`eFC|z?FM@S}JtUS2V#N&$>c&4MD@dGZW-FU#)Ln z_kUGHb%+fT=TPB!HhSx{mFIg$qDOsFu7>+)Y1@8mhP_2h;8j+3_@ZG%sqlVZtyLIF zjSY>$nmBXFxRh+3#YA!m2fOCe$CYOQQk-mOnM^fVy-Cp|xh>E!&OoQ&lI9g&zJxNW z?~ceHSkaJ68UzU5l12~$J$Wr3T+1JM%!h^6s0>J!|0vi zTB6XyShw+=EClV4Z8#>dDkvq`%4gG&_EzmEe4u@;`8VN8c=n^3SQ!@`GkA~x>Oqq@ zR$(pHwBkcXknwf>-E2sX$Nl?zmwDeREmpYMG7cXq-Mtr8<<{iMZQ|r(3hM~~{l$>7 z79#&En%vyd}Faq2m2yLrxN!&u~Ty>$7hm1%b&q$sI|z!HF4tjPd-Be53m3pOn&mn z=r!ybZn2VPh-=>?Jj`Y+c|Ugs9zjn0dE*=v)K_WS{pkB+UUpb$3T z6V)BVJckO-RC;U49xByUW}qj*t;#hgdM`;McjZD|_hv@O-|rU7~l_E_Jf zg-)$0{tKcHxn{|;RV{TYi@YM&LPt+2|U8tCIQ)JcDp;!&{ z_-CbIV=mmWrf6OFjhrx z0g0rFEvhQ?DTv3veZ#v$g)xD%DJ95@LaxwK1%;b|C4bq@5<&6No&};sJHP`~2ZcK` zRjMq=%dCsb11fFO4+QrZqi0y6iW}nTR$f|_$Qzhf^)!hUw$ZKqX<|nMtXbKqrSxWS z4jgdhH}2s%uOKCO4fWtN@?j3vKcqCbNZv4&d-^DbPnFg@Nko;~kP5=7--fW?mIBuC z__vh0XiiawxYMiG06A7@e;7X{)K}`YLM7B}Q;|QHI?XGX&EeQCwZ`z3d-Kr|=``s{ zG%uZ1l7KE!@ab_K?%uEq$eOxNXs?PD@p8o%uv@i2mc1b28*-O@kbS8Uy*I82vmZ6Z zxm-h8Ax)eV;KYPni^4P-XNQ%(0^hQ-+GWj2O6^FMv<0pX@{omorJ(8|Mn>N)Aq0#O zo@OUZ&ufy3&0{!3k(QTix!(dM?dpzRW2~qYvn4nSE7W&5KB+>@AGx&*mj;cnryySs zjr4+pJ5a@y63$Nmv}1nuojrs@w(yFN3?5lTup(y}#lM1cY9q z)jI7nmFNqTwwTc%^SZQDIz6`)a*Kj=On1%8C~^mYciOEF8%UcV)?N_a{6EL{LiMoJ6KnoZ=Eia*SKEo;n;^(TT{g^bK;6 zpD|WYc?G0X$s32N3pk=iZ@4bdwOuFy0C0N>Q6K_XaRb(_li|Wsh&-RcYH7Q9@n>fcD z!eb~2s;*FwOdXFn%q2t!2F8{Y`N1uUZquH;iA-WEjujE>7V4j3skB(LF*p-^o@_

m{UWx#g|O1Mr?X7Dvk}Wx+Xn5hq^brMSCgK#YDF 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 IP$)>j|5nBg4 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%0D=TxSPOyE86%j^A!@S!bllo= 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

s7>_lXP{`Hkymm?Zd(xbxSO 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

j>kXlh~908c}I8j;Ix0W{$SBVY9wc?Lryh~RS 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ǹ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 {XE+2p3`78Fg^-nz% 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 z%0D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%0D$bUPuYv=X{mx6GSAMij;Pl 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 literal 0 HcmV?d00001 diff --git a/packages/terminal/fonts/licenses/Apache-2.0.txt b/packages/terminal/fonts/licenses/Apache-2.0.txt new file mode 100644 index 0000000000000000000000000000000000000000..d645695673349e3947e8e5ae42332d0ac3164cd7 --- /dev/null +++ b/packages/terminal/fonts/licenses/Apache-2.0.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/terminal/fonts/licenses/CC-BY-4.0.txt b/packages/terminal/fonts/licenses/CC-BY-4.0.txt new file mode 100644 index 0000000000000000000000000000000000000000..085c3ca0c4920beedbf179f7987e705aec84115b --- /dev/null +++ b/packages/terminal/fonts/licenses/CC-BY-4.0.txt @@ -0,0 +1,395 @@ +Attribution 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are +granted the Licensed Rights in consideration of Your acceptance of +these terms and conditions, and the Licensor grants You such rights in +consideration of benefits the Licensor receives from making the +Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/packages/terminal/fonts/licenses/Devicons-MIT.txt b/packages/terminal/fonts/licenses/Devicons-MIT.txt new file mode 100644 index 0000000000000000000000000000000000000000..fcc9b6677248224a60d060ccc6851eb420fa003d --- /dev/null +++ b/packages/terminal/fonts/licenses/Devicons-MIT.txt @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2015 konpa + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/packages/terminal/fonts/licenses/Font-Awesome-Extension-MIT.txt b/packages/terminal/fonts/licenses/Font-Awesome-Extension-MIT.txt new file mode 100644 index 0000000000000000000000000000000000000000..a2f736647822bec9215890f6a3bde699831f8ee5 --- /dev/null +++ b/packages/terminal/fonts/licenses/Font-Awesome-Extension-MIT.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 André Luiz Gava + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/terminal/fonts/licenses/Font-Awesome-LICENSE.txt b/packages/terminal/fonts/licenses/Font-Awesome-LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..cc557ece45db3719d26f8f6e0182d89651b76062 --- /dev/null +++ b/packages/terminal/fonts/licenses/Font-Awesome-LICENSE.txt @@ -0,0 +1,165 @@ +Fonticons, Inc. (https://fontawesome.com) + +-------------------------------------------------------------------------------- + +Font Awesome Free License + +Font Awesome Free is free, open source, and GPL friendly. You can use it for +commercial projects, open source projects, or really almost whatever you want. +Full Font Awesome Free license: https://fontawesome.com/license/free. + +-------------------------------------------------------------------------------- + +# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/) + +The Font Awesome Free download is licensed under a Creative Commons +Attribution 4.0 International License and applies to all icons packaged +as SVG and JS file types. + +-------------------------------------------------------------------------------- + +# Fonts: SIL OFL 1.1 License + +In the Font Awesome Free download, the SIL OFL license applies to all icons +packaged as web and desktop font files. + +Copyright (c) 2022 Fonticons, Inc. (https://fontawesome.com) +with Reserved Font Name: "Font Awesome". + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +SIL OPEN FONT LICENSE +Version 1.1 - 26 February 2007 + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting — in part or in whole — any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. + +-------------------------------------------------------------------------------- + +# Code: MIT License (https://opensource.org/licenses/MIT) + +In the Font Awesome Free download, the MIT license applies to all non-font and +non-icon files. + +Copyright 2022 Fonticons, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in the +Software without restriction, including without limitation the rights to use, copy, +modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, +and to permit persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-------------------------------------------------------------------------------- + +# Attribution + +Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font +Awesome Free files already contain embedded comments with sufficient +attribution, so you shouldn't need to do anything additional when using these +files normally. + +We've kept attribution comments terse, so we ask that you do not actively work +to remove them from files, especially code. They're a great way for folks to +learn about Font Awesome. + +-------------------------------------------------------------------------------- + +# Brand Icons + +All brand icons are trademarks of their respective owners. The use of these +trademarks does not indicate endorsement of the trademark holder by Font +Awesome, nor vice versa. **Please do not use brand logos for any purpose except +to represent the company, product, or service to which they refer.** diff --git a/packages/terminal/fonts/licenses/Material-Design-Icons-NOTICE.txt b/packages/terminal/fonts/licenses/Material-Design-Icons-NOTICE.txt new file mode 100644 index 0000000000000000000000000000000000000000..382f8a138afaaefe9ca2cfa80d33317f7814d997 --- /dev/null +++ b/packages/terminal/fonts/licenses/Material-Design-Icons-NOTICE.txt @@ -0,0 +1,20 @@ +Pictogrammers Free License +-------------------------- + +This icon collection is released as free, open source, and GPL friendly by +the [Pictogrammers](http://pictogrammers.com/) icon group. You may use it +for commercial projects, open source projects, or anything really. + +# Icons: Apache 2.0 (https://www.apache.org/licenses/LICENSE-2.0) +Some of the icons are redistributed under the Apache 2.0 license. All other +icons are either redistributed under their respective licenses or are +distributed under the Apache 2.0 license. + +# Fonts: Apache 2.0 (https://www.apache.org/licenses/LICENSE-2.0) +All web and desktop fonts are distributed under the Apache 2.0 license. Web +and desktop fonts contain some icons that are redistributed under the Apache +2.0 license. All other icons are either redistributed under their respective +licenses or are distributed under the Apache 2.0 license. + +# Code: MIT (https://opensource.org/licenses/MIT) +The MIT license applies to all non-font and non-icon files. diff --git a/packages/terminal/fonts/licenses/NerdFonts-LICENSE.txt b/packages/terminal/fonts/licenses/NerdFonts-LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..d163912b383cac468b3052e60ad4998e80046cc7 --- /dev/null +++ b/packages/terminal/fonts/licenses/NerdFonts-LICENSE.txt @@ -0,0 +1,126 @@ +# Nerd Fonts Licensing + +There are various sources used under various licenses: + +* Nerd Fonts source fonts, patched fonts, and folders with explict OFL SIL files are licensed under SIL OPEN FONT LICENSE Version 1.1 (see below). +* Nerd Fonts original source code files (such as `.sh`, `.py`, `font-patcher` and others) are licensed under the MIT License (MIT) (see below). +* Many other licenses are present in this project for even more detailed breakdown see: [License Audit](https://github.com/ryanoasis/nerd-fonts/blob/-/license-audit.md). + +## Source files not in folders containing an explicit license are using the MIT License (MIT) + +The MIT License (MIT) + +Copyright (c) 2014 Ryan L McIntyre + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +## Various Fonts, Patched Fonts, SVGs, Glyph Fonts, and any files in a folder with explicit SIL OFL 1.1 License + +Copyright (c) 2014, Ryan L McIntyre (https://ryanlmcintyre.com). + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/apps/web/src/terminal/ghostty/fonts/LICENSE b/packages/terminal/fonts/licenses/NerdFonts-Symbols-Only-MIT.txt similarity index 100% rename from apps/web/src/terminal/ghostty/fonts/LICENSE rename to packages/terminal/fonts/licenses/NerdFonts-Symbols-Only-MIT.txt diff --git a/packages/terminal/fonts/licenses/NerdFonts-license-audit.md b/packages/terminal/fonts/licenses/NerdFonts-license-audit.md new file mode 100644 index 0000000000000000000000000000000000000000..6b41a3150bd7de623fd72cf95103a0e3f551e1e7 --- /dev/null +++ b/packages/terminal/fonts/licenses/NerdFonts-license-audit.md @@ -0,0 +1,126 @@ +# License audit + +## Licenses found and basic summary of each + +* MIT - all good do what you want basically +* CC 4 - share, adapt and change in any format is okay +* SIL OFL 1.1 - free to use, copy, merge, modify, redistribute with conditions: no selling, must contain this original license, must comply to the RFN (Reserved Font Names) +* Apache 2.0 - Basically permissive like MIT but a few things to note. Must include original copyright, note any significant changes to original code, copy of NOTICE file. Modified code does not need to remain under Apache 2.0. +* Creative Commons Attribution-ShareAlike 4.0 (CC BY-SA 4.0) - free to share and change. Must give proper attribution. Must distribute under same license. The font itself once patched indeed is. +* Bitstream Vera License v1.00 - do what want, no selling, must rename font. +* Do What The Fuck You Want To - the name summarizes the rules. +* Go License - Redistribution and everything is allowed. Only limitation is use of Google Inc. to endorse/promote. +* Vic Fieger License - free to do whatever you want +* Monofur Free License - free do what you want just require license file +* Bitstream License - do what you want, attribution required +* Ubuntu Font License 1.0 - do what you want, attribution and license must be included. There may be some ambiguity on the naming, but I believe we comply with it: + * > (c) Modified Versions which are not Substantially Changed must be +renamed to both (i) retain the name of the Original Version and (ii) add +additional naming elements to distinguish the Modified Version from the +Original Version. The name of such Modified Versions must be the name of +the Original Version, with "derivative X" where X represents the name of +the new work, appended to that name. + +## Original source works under Nerd Fonts repository + +All files created such as `font-patcher` and any `ph` or `sh` script/source files are released under an MIT license. + +## Glyph/icon sources + +| Project | License | +| ------------------------------------------------ | ----------------| +| Codicons | CC BY 4.0 | +| Devicons | MIT | +| Font Awesome | CC BY 4.0 | +| Font Awesome Extension | MIT | +| Font Logos | Unlicensed | +| IEC Power Symbols | MIT | +| Material Design Icons | Apache 2.0 | +| Original Source (Seti-UI but modified) | MIT | +| Octicons | MIT | +| Pomicons | SIL OFL 1.1 | +| Powerline Extra Symbols | MIT | +| Powerline Symbols | Free License | +| Weather Icons | SIL OFL 1.1 | + +### Additional notes + +* font awesome - we use the icons which are CC 4.0. +* weather icons - project is unfortunately dead, but added the OFL license files to comply. + +## Fonts + +* All fonts have their appropriate license and/or release note information provided in the original unpatched version folders _and_ the patched version folders. +* Machine readable license info is in the `fonts.json` file + +| Font | License SPDX | +| ----------------------------- | ---------------------------- | +| 0xProto | OFL-1.1-no-RFN | +| IBM 3270 | BSD-3-Clause | +| Agave | MIT | +| Anonymous Pro | OFL-1.1-RFN | +| Arimo | Apache-2.0 | +| Aurulent Sans Mono | OFL-1.1-no-RFN | +| BigBlue Terminal | CC-BY-SA-4.0 | +| Bitstream Vera Sans Mono | Bitstream-Vera | +| IBM Plex Mono | OFL-1.1-RFN | +| Cascadia Code | OFL-1.1-RFN | +| Cascadia Mono | OFL-1.1-RFN | +| Code New Roman | OFL-1.1-no-RFN | +| Comic Shanns Mono | MIT | +| Commit Mono | OFL-1.1-no-RFN | +| Cousine | Apache-2.0 | +| D2Coding | OFL-1.1-no-RFN | +| DaddyTimeMono | OFL-1.1-no-RFN | +| DejaVu Sans Mono | Bitstream-Vera | +| Droid Sans Mono | Apache-2.0 | +| Envy Code R | OFL-1.1-RFN | +| Fantasque Sans Mono | OFL-1.1-no-RFN | +| Fira Code | OFL-1.1-no-RFN | +| Fira | OFL-1.1-no-RFN | +| Geist Mono | OFL-1.1-no-RFN | +| Go Mono | BSD-3-Clause-Clear | +| Gohu | WTFPL | +| Hack | Bitstream-Vera AND MIT | +| Hasklig | OFL-1.1-RFN | +| Heavy Data | LicenseRef-VicFieger | +| Hermit | OFL-1.1-RFN | +| iA Writer | OFL-1.1-RFN | +| Inconsolata | OFL-1.1-no-RFN | +| InconsolataGo | OFL-1.1-no-RFN | +| Inconsolata LGC | OFL-1.1-no-RFN | +| Intel One Mono | OFL-1.1-RFN | +| Iosevka | OFL-1.1-no-RFN | +| Iosevka Term | OFL-1.1-no-RFN | +| Iosevka Term Slab | OFL-1.1-no-RFN | +| JetBrains Mono | OFL-1.1-no-RFN | +| Lekton | OFL-1.1-no-RFN | +| Liberation Mono | OFL-1.1-RFN | +| Lilex | OFL-1.1-no-RFN | +| MartianMono | OFL-1.1-no-RFN | +| Meslo LG | Apache-2.0 | +| Monaspace | OFL-1.1-RFN | +| Monofur | LicenseRef-Monofur | +| Monoid | MIT OR OFL-1.1-no-RFN | +| Mononoki | OFL-1.1-RFN | +| MPlus | OFL-1.1-no-RFN | +| Noto | OFL-1.1-no-RFN | +| OpenDyslexic | Bitstream-Vera | +| Overpass | OFL-1.1-no-RFN or LGPL-2.1-only | +| ProFont | MIT | +| ProggyCleanTT | MIT | +| Recursive Mono | OFL-1.1-no-RFN | +| Roboto Mono | Apache-2.0 | +| Share Tech Mono | OFL-1.1-RFN | +| Source Code Pro | OFL-1.1-RFN | +| Space Mono | OFL-1.1-no-RFN | +| Symbols Only | MIT | +| Terminus | OFL-1.1-RFN | +| Tinos | Apache-2.0 | +| Ubuntu | LicenseRef-UbuntuFont | +| Ubuntu Mono | LicenseRef-UbuntuFont | +| Ubuntu Sans | LicenseRef-UbuntuFont | +| Victor Mono | OFL-1.1-no-RFN | +| Zed Mono | OFL-1.1-no-RFN | + +_LicenseRef licenses have no SPDX value_ diff --git a/packages/terminal/fonts/licenses/Octicons-MIT.txt b/packages/terminal/fonts/licenses/Octicons-MIT.txt new file mode 100644 index 0000000000000000000000000000000000000000..163074d5b43ac314f9db311945cb4c19fd0c3d44 --- /dev/null +++ b/packages/terminal/fonts/licenses/Octicons-MIT.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 GitHub Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/terminal/fonts/licenses/Pomicons-OFL.txt b/packages/terminal/fonts/licenses/Pomicons-OFL.txt new file mode 100644 index 0000000000000000000000000000000000000000..5dd70fa0e0bc67c638079585bdb8d56e0648ff87 --- /dev/null +++ b/packages/terminal/fonts/licenses/Pomicons-OFL.txt @@ -0,0 +1,94 @@ +Copyright (c) 2021, Gabriele Lana gabriele.lana@gmail.com +with Reserved Font Name Pomicons. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/packages/terminal/fonts/licenses/Powerline-Extra-MIT.txt b/packages/terminal/fonts/licenses/Powerline-Extra-MIT.txt new file mode 100644 index 0000000000000000000000000000000000000000..c71d82753460a6c580966fd5f5a3da268ed5a974 --- /dev/null +++ b/packages/terminal/fonts/licenses/Powerline-Extra-MIT.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 Ryan L McIntyre + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/terminal/fonts/licenses/Weather-Icons-OFL.txt b/packages/terminal/fonts/licenses/Weather-Icons-OFL.txt new file mode 100644 index 0000000000000000000000000000000000000000..fd295ff85e40801883186c705e94f9e504d9f96c --- /dev/null +++ b/packages/terminal/fonts/licenses/Weather-Icons-OFL.txt @@ -0,0 +1,97 @@ +Copyright (c) , (), +with Reserved Font Name . +Copyright (c) , (), +with Reserved Font Name . +Copyright (c) , (). + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/packages/terminal/fonts/subset-primary.py b/packages/terminal/fonts/subset-primary.py new file mode 100644 index 0000000000000000000000000000000000000000..0d34cb127196964a8f1f0269cc2cab776e9412cd --- /dev/null +++ b/packages/terminal/fonts/subset-primary.py @@ -0,0 +1,43 @@ +"""Emit the retained-codepoint manifest for the bundled primary font. + +The ranges are the terminal's own surface: every script and symbol block a cell +can hold, plus Symbols for Legacy Computing, where the sextants and octants a +program draws charts with live. What is dropped above them — mathematical +alphanumerics, musical notation, emoji, and the historic scripts — is most of +what makes an unsubset face 1.4 MB, and none of it reaches a terminal cell from +a monospace primary. +""" + +from pathlib import Path +import sys + +from fontTools.ttLib import TTFont + + +RETAINED_RANGES = ( + (0x0000, 0x2BFF), # Latin through Miscellaneous Symbols and Arrows + (0x1FB00, 0x1FBFF), # Symbols for Legacy Computing +) + + +def main() -> None: + if len(sys.argv) != 3: + raise SystemExit("usage: subset-primary.py INPUT.ttf OUTPUT.txt") + + source = TTFont(sys.argv[1]) + cmap = source.getBestCmap() + if cmap is None: + raise SystemExit("input font has no Unicode cmap") + + codepoints = sorted( + codepoint + for codepoint in cmap + if any(start <= codepoint <= end for start, end in RETAINED_RANGES) + ) + Path(sys.argv[2]).write_text( + "".join(f"U+{codepoint:04X}\n" for codepoint in codepoints), encoding="ascii" + ) + + +if __name__ == "__main__": + main() diff --git a/packages/terminal/fonts/subset-symbols.py b/packages/terminal/fonts/subset-symbols.py new file mode 100644 index 0000000000000000000000000000000000000000..99c5b19664b3c0ab1be3a240fe04e28773d6487b --- /dev/null +++ b/packages/terminal/fonts/subset-symbols.py @@ -0,0 +1,49 @@ +from pathlib import Path +import sys + +from fontTools.ttLib import TTFont + + +RETAINED_RANGES = ( + (0x23FB, 0x23FE), # IEC power symbols + (0x2630, 0x2630), # Powerline Extra + (0x2665, 0x2665), # Octicons + (0x26A1, 0x26A1), # Octicons + (0x276C, 0x2771), # Nerd Fonts custom heavy brackets + (0x2B58, 0x2B58), # IEC power symbols + (0xE000, 0xE00A), # Pomicons + (0xE0A3, 0xE0A3), # Powerline Extra; standard Powerline ends at U+E0A2 + (0xE0B4, 0xE0D7), # Powerline Extra; standard Powerline ends at U+E0B3 + (0xE200, 0xE2A9), # Font Awesome Extension + (0xE300, 0xE3E3), # Weather Icons + (0xE5FA, 0xE6B8), # Seti-UI and Nerd Fonts custom + (0xE700, 0xE8EF), # Devicons + (0xEA60, 0xEC1E), # Codicons + (0xED00, 0xEFCE), # Font Awesome and Nerd Fonts progress indicators + (0xF000, 0xF2FF), # Font Awesome compatibility codepoints + (0xF400, 0xF533), # Octicons + (0xF0001, 0xF1AF0), # Material Design Icons +) + + +def main() -> None: + if len(sys.argv) != 3: + raise SystemExit("usage: subset-symbols.py INPUT.ttf OUTPUT.txt") + + source = TTFont(sys.argv[1]) + cmap = source.getBestCmap() + if cmap is None: + raise SystemExit("input font has no Unicode cmap") + + codepoints = sorted( + codepoint + for codepoint in cmap + if any(start <= codepoint <= end for start, end in RETAINED_RANGES) + ) + Path(sys.argv[2]).write_text( + "".join(f"U+{codepoint:04X}\n" for codepoint in codepoints), encoding="ascii" + ) + + +if __name__ == "__main__": + main() diff --git a/packages/terminal/fonts/symbols-requirements.txt b/packages/terminal/fonts/symbols-requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..3c2beed79df52faad97fef9b7d613b6abe069259 --- /dev/null +++ b/packages/terminal/fonts/symbols-requirements.txt @@ -0,0 +1,2 @@ +fonttools==4.51.0 +brotli==1.1.0 diff --git a/packages/terminal/package.json b/packages/terminal/package.json new file mode 100644 index 0000000000000000000000000000000000000000..c4b54070ba3971cef080f028401518d24aba2dda --- /dev/null +++ b/packages/terminal/package.json @@ -0,0 +1,95 @@ +{ + "name": "@clo/terminal", + "version": "0.1.0", + "private": true, + "description": "browser terminal on libghostty-vt wasm with headless, DOM, React, and Solid APIs", + "keywords": [ + "ghostty", + "react", + "solid", + "terminal", + "wasm" + ], + "license": "ISC", + "files": [ + "src", + "fonts", + "vendor/ghostty-vt.wasm", + "vendor/GHOSTTY-LICENSE", + "vendor/COMMIT", + "vendor/SHA256", + "vendor/README.md", + "vendor/patches", + "LICENSE", + "README.md" + ], + "type": "module", + "sideEffects": [ + "**/*.css" + ], + "main": "src/index.ts", + "exports": { + ".": "./src/index.ts", + "./shell": "./src/shell/index.ts", + "./react": "./src/react.tsx", + "./solid": "./src/solid.tsx", + "./terminal.css": "./src/renderer/terminal.css", + "./ghostty-vt.wasm": "./vendor/ghostty-vt.wasm", + "./fonts/__clo_terminal_primary_34_8_1-Regular.woff2": "./fonts/__clo_terminal_primary_34_8_1-Regular.woff2", + "./fonts/__clo_terminal_primary_34_8_1-SemiBold.woff2": "./fonts/__clo_terminal_primary_34_8_1-SemiBold.woff2", + "./fonts/__clo_terminal_primary_34_8_1-Italic.woff2": "./fonts/__clo_terminal_primary_34_8_1-Italic.woff2", + "./fonts/__clo_terminal_primary_34_8_1-SemiBoldItalic.woff2": "./fonts/__clo_terminal_primary_34_8_1-SemiBoldItalic.woff2", + "./fonts/__clo_terminal_symbols_3_4_0-Regular.woff2": "./fonts/__clo_terminal_symbols_3_4_0-Regular.woff2", + "./fonts/PRIMARY-CODEPOINTS.txt": "./fonts/PRIMARY-CODEPOINTS.txt", + "./fonts/subset-primary.py": "./fonts/subset-primary.py", + "./fonts/SYMBOLS-CODEPOINTS.txt": "./fonts/SYMBOLS-CODEPOINTS.txt", + "./fonts/subset-symbols.py": "./fonts/subset-symbols.py", + "./fonts/symbols-requirements.txt": "./fonts/symbols-requirements.txt", + "./fonts/OFL.txt": "./fonts/OFL.txt", + "./fonts/README.md": "./fonts/README.md", + "./fonts/NOTICES.md": "./fonts/NOTICES.md", + "./fonts/licenses/Apache-2.0.txt": "./fonts/licenses/Apache-2.0.txt", + "./fonts/licenses/CC-BY-4.0.txt": "./fonts/licenses/CC-BY-4.0.txt", + "./fonts/licenses/Devicons-MIT.txt": "./fonts/licenses/Devicons-MIT.txt", + "./fonts/licenses/Font-Awesome-Extension-MIT.txt": "./fonts/licenses/Font-Awesome-Extension-MIT.txt", + "./fonts/licenses/Font-Awesome-LICENSE.txt": "./fonts/licenses/Font-Awesome-LICENSE.txt", + "./fonts/licenses/Material-Design-Icons-NOTICE.txt": "./fonts/licenses/Material-Design-Icons-NOTICE.txt", + "./fonts/licenses/NerdFonts-LICENSE.txt": "./fonts/licenses/NerdFonts-LICENSE.txt", + "./fonts/licenses/NerdFonts-Symbols-Only-MIT.txt": "./fonts/licenses/NerdFonts-Symbols-Only-MIT.txt", + "./fonts/licenses/NerdFonts-license-audit.md": "./fonts/licenses/NerdFonts-license-audit.md", + "./fonts/licenses/Octicons-MIT.txt": "./fonts/licenses/Octicons-MIT.txt", + "./fonts/licenses/Pomicons-OFL.txt": "./fonts/licenses/Pomicons-OFL.txt", + "./fonts/licenses/Powerline-Extra-MIT.txt": "./fonts/licenses/Powerline-Extra-MIT.txt", + "./fonts/licenses/Weather-Icons-OFL.txt": "./fonts/licenses/Weather-Icons-OFL.txt" + }, + "scripts": { + "typecheck": "tsc-rs -p tsconfig.json --noEmit", + "verify:vendor": "node vendor/verify.mjs" + }, + "devDependencies": { + "@types/react": "~19.3.0", + "@types/react-dom": "~19.2.3", + "react": "19.2.6", + "react-dom": "19.2.6", + "solid-js": "^1.9.14", + "vite": "catalog:", + "vite-plus": "catalog:" + }, + "peerDependencies": { + "react": ">=18 <20", + "solid-js": ">=1.8 <2" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "solid-js": { + "optional": true + } + }, + "vendoredFrom": { + "repository": "https://shale.paperclover.net/hexi.git", + "path": "sys/lib/terminal", + "commit": "166e71540b612a54732471cd986948e62e446b13" + } +} diff --git a/packages/terminal/src/ansi.ts b/packages/terminal/src/ansi.ts new file mode 100644 index 0000000000000000000000000000000000000000..f24b7905d12d0c0264102dc6bd210c5553452ddd --- /dev/null +++ b/packages/terminal/src/ansi.ts @@ -0,0 +1,283 @@ +const ESC = "\u001b"; + +const ANSI_COLORS = [ + "var(--clo-term-ansi-black, #000000)", + "var(--clo-term-ansi-red, #cd3131)", + "var(--clo-term-ansi-green, #0dbc79)", + "var(--clo-term-ansi-yellow, #e5e510)", + "var(--clo-term-ansi-blue, #2472c8)", + "var(--clo-term-ansi-magenta, #bc3fbc)", + "var(--clo-term-ansi-cyan, #11a8cd)", + "var(--clo-term-ansi-white, #e5e5e5)", + "var(--clo-term-ansi-bright-black, #666666)", + "var(--clo-term-ansi-bright-red, #f14c4c)", + "var(--clo-term-ansi-bright-green, #23d18b)", + "var(--clo-term-ansi-bright-yellow, #f5f543)", + "var(--clo-term-ansi-bright-blue, #3b8eea)", + "var(--clo-term-ansi-bright-magenta, #d670d6)", + "var(--clo-term-ansi-bright-cyan, #29b8db)", + "var(--clo-term-ansi-bright-white, #ffffff)", +] as const; + +const UNDERLINES = ["", "solid", "double", "wavy", "dotted", "dashed"] as const; + +interface AnsiState { + bold: boolean; + faint: boolean; + italic: boolean; + underline: "" | "solid" | "double" | "wavy" | "dotted" | "dashed"; + inverse: boolean; + invisible: boolean; + strikethrough: boolean; + overline: boolean; + foreground: string; + background: string; +} + +function initialState(): AnsiState { + return { + bold: false, + faint: false, + italic: false, + underline: "", + inverse: false, + invisible: false, + strikethrough: false, + overline: false, + foreground: "", + background: "", + }; +} + +function byte(value: number): number { + return Math.max(0, Math.min(255, Number.isFinite(value) ? value : 0)); +} + +function colorByte(value: string | undefined): number | null { + if (value === undefined || !/^\d+$/.test(value)) return null; + const result = Number(value); + return result <= 255 ? result : null; +} + +function paletteColor(index: number): string { + index = Math.trunc(byte(index)); + const color = ANSI_COLORS[index]; + if (color !== undefined) return color; + if (index >= 232) { + const value = byte(8 + (Math.min(index, 255) - 232) * 10); + return `rgb(${value} ${value} ${value})`; + } + const value = Math.max(0, Math.min(215, index - 16)); + const levels = [0, 95, 135, 175, 215, 255] as const; + return `rgb(${levels[Math.floor(value / 36)]} ${levels[Math.floor((value % 36) / 6)]} ${levels[value % 6]})`; +} + +function setColor(state: AnsiState, background: boolean, color: string): void { + if (background) state.background = color; + else state.foreground = color; +} + +function applyCode(state: AnsiState, code: number): AnsiState { + if (code === 0) return initialState(); + if (code === 1) state.bold = true; + else if (code === 2) state.faint = true; + else if (code === 3) state.italic = true; + else if (code === 4) state.underline = "solid"; + else if (code === 7) state.inverse = true; + else if (code === 8) state.invisible = true; + else if (code === 9) state.strikethrough = true; + else if (code === 21) state.underline = "double"; + else if (code === 22) { + state.bold = false; + state.faint = false; + } else if (code === 23) state.italic = false; + else if (code === 24) state.underline = ""; + else if (code === 27) state.inverse = false; + else if (code === 28) state.invisible = false; + else if (code === 29) state.strikethrough = false; + else if (code === 39) state.foreground = ""; + else if (code === 49) state.background = ""; + else if (code === 53) state.overline = true; + else if (code === 55) state.overline = false; + else if (code >= 30 && code <= 37) state.foreground = paletteColor(code - 30); + else if (code >= 40 && code <= 47) state.background = paletteColor(code - 40); + else if (code >= 90 && code <= 97) state.foreground = paletteColor(code - 82); + else if (code >= 100 && code <= 107) state.background = paletteColor(code - 92); + return state; +} + +function applySgr(state: AnsiState, parameters: string): AnsiState { + const groups = parameters === "" ? ["0"] : parameters.split(";"); + for (let index = 0; index < groups.length; index++) { + const parts = groups[index]!.split(":"); + const code = Number(parts[0] || 0); + if ((code === 38 || code === 48) && parts.length > 1) { + const mode = Number(parts[1]); + if (mode === 5 && parts.length === 3) { + const color = colorByte(parts[2]); + if (color !== null) setColor(state, code === 48, paletteColor(color)); + } else if ( + mode === 2 && + (parts.length === 5 || (parts.length === 6 && (parts[2] === "" || /^\d+$/.test(parts[2]!)))) + ) { + const rgb = parts.slice(-3).map(colorByte); + if (rgb.every((value) => value !== null)) + setColor(state, code === 48, `rgb(${rgb[0]} ${rgb[1]} ${rgb[2]})`); + } + continue; + } + if (code === 4 && parts.length > 1) { + state.underline = UNDERLINES[Number(parts[1])] ?? ""; + continue; + } + if ((code === 38 || code === 48) && groups[index + 1] === "5") { + const color = colorByte(groups[index + 2]); + if (color !== null) setColor(state, code === 48, paletteColor(color)); + index += 2; + continue; + } + if ((code === 38 || code === 48) && groups[index + 1] === "2") { + const rgb = groups.slice(index + 2, index + 5).map(colorByte); + if (rgb.length === 3 && rgb.every((value) => value !== null)) + setColor(state, code === 48, `rgb(${rgb[0]} ${rgb[1]} ${rgb[2]})`); + index += 4; + continue; + } + state = applyCode(state, code); + } + return state; +} + +function styles(state: AnsiState): string { + const rules: string[] = []; + if (state.bold) rules.push("font-weight:700"); + if (state.faint) rules.push("opacity:0.68"); + if (state.italic) rules.push("font-style:italic"); + const decorations = [ + state.underline ? "underline" : "", + state.strikethrough ? "line-through" : "", + state.overline ? "overline" : "", + ].filter(Boolean); + if (decorations.length > 0) rules.push(`text-decoration-line:${decorations.join(" ")}`); + if (state.underline && state.underline !== "solid") + rules.push(`text-decoration-style:${state.underline}`); + + let foreground = state.foreground; + let background = state.background; + if (state.inverse) { + [foreground, background] = [ + background || "var(--clo-term-bg, #1e1e2e)", + foreground || "var(--clo-term-fg, #cdd6f4)", + ]; + } + if (state.invisible) foreground = "transparent"; + if (foreground) rules.push(`color:${foreground}`); + if (background) rules.push(`background-color:${background}`); + return rules.join(";"); +} + +function escapeHtml(text: string): string { + return text.replace(/[&<>"'\r]/g, (character) => { + if (character === "&") return "&"; + if (character === "<") return "<"; + if (character === ">") return ">"; + if (character === '"') return """; + if (character === "'") return "'"; + return " "; + }); +} + +function stringEnd(text: string, start: number, bell: boolean): number { + for (let index = start; index < text.length; index++) { + const code = text.charCodeAt(index); + if (code === 0x18 || code === 0x1a || code === 0x9c || (bell && code === 0x07)) + return index + 1; + if (text[index] === ESC && text[index + 1] === "\\") return index + 2; + if (text[index] === ESC) return index; + } + return text.length; +} + +/** + * Convert styled ANSI text to escaped inline HTML. Terminal cursor, input, + * viewport, and scrolling behavior are intentionally absent; non-SGR control + * sequences are removed. Whitespace layout remains the caller's choice. + */ +export function ansiToHtml(text: string): string { + let state = initialState(); + let html = ""; + let plainStart = 0; + let index = 0; + + const append = (value: string) => { + if (value === "") return; + const escaped = escapeHtml(value); + const style = styles(state); + html += style === "" ? escaped : `${escaped}`; + }; + const emit = (end: number) => append(text.slice(plainStart, end)); + + while (index < text.length) { + const code = text.charCodeAt(index); + const preservedWhitespace = code === 0x09 || code === 0x0a || code === 0x0d; + if ( + code !== 0x1b && + code !== 0x7f && + !(code < 0x20 && !preservedWhitespace) && + !(code >= 0x80 && code <= 0x9f) + ) { + index++; + continue; + } + + emit(index); + const next = text[index + 1]; + if ((code === 0x1b && next === "[") || code === 0x9b) { + let parameters = ""; + let end = index + (code === 0x9b ? 1 : 2); + while (end < text.length) { + const final = text.charCodeAt(end); + if (final === 0x18 || final === 0x1a) { + end++; + break; + } + if (final === 0x1b || (final >= 0x80 && final <= 0x9f)) break; + if (final < 0x20 || final === 0x7f) { + if (final === 0x09 || final === 0x0a || final === 0x0d) append(text[end]!); + end++; + continue; + } + if (final >= 0x40 && final <= 0x7e) { + if (final === 0x6d && /^[0-9:;]*$/.test(parameters)) state = applySgr(state, parameters); + end++; + break; + } + parameters += text[end]; + end++; + } + index = end; + } else if ((code === 0x1b && next === "]") || code === 0x9d) { + index = stringEnd(text, index + (code === 0x9d ? 1 : 2), true); + } else if ( + (code === 0x1b && (next === "P" || next === "X" || next === "^" || next === "_")) || + code === 0x90 || + code === 0x98 || + code === 0x9e || + code === 0x9f + ) { + index = stringEnd(text, index + (code === 0x1b ? 2 : 1), false); + } else if (code === 0x1b) { + index++; + while (index < text.length) { + const intermediate = text.charCodeAt(index); + if (intermediate < 0x20 || intermediate > 0x2f) break; + index++; + } + const final = text.charCodeAt(index); + if (final >= 0x30 && final <= 0x7e) index++; + } else index++; + plainStart = index; + } + emit(text.length); + return html; +} diff --git a/packages/terminal/src/ghostty/constants.ts b/packages/terminal/src/ghostty/constants.ts new file mode 100644 index 0000000000000000000000000000000000000000..69544e47409da3edd011385b84acb6c747185cd6 --- /dev/null +++ b/packages/terminal/src/ghostty/constants.ts @@ -0,0 +1,759 @@ +// GENERATED by vendor/gen-constants.mjs from the vendored libghostty-vt headers +// (commit in vendor/COMMIT). Do not edit by hand; re-run the generator on bump. + +export const GhosttyBuildInfo = { + GHOSTTY_BUILD_INFO_INVALID: 0, + GHOSTTY_BUILD_INFO_SIMD: 1, + GHOSTTY_BUILD_INFO_KITTY_GRAPHICS: 2, + GHOSTTY_BUILD_INFO_TMUX_CONTROL_MODE: 3, + GHOSTTY_BUILD_INFO_OPTIMIZE: 4, + GHOSTTY_BUILD_INFO_VERSION_STRING: 5, + GHOSTTY_BUILD_INFO_VERSION_MAJOR: 6, + GHOSTTY_BUILD_INFO_VERSION_MINOR: 7, + GHOSTTY_BUILD_INFO_VERSION_PATCH: 8, + GHOSTTY_BUILD_INFO_VERSION_PRE: 9, + GHOSTTY_BUILD_INFO_VERSION_BUILD: 10, +} as const; + +export const GhosttyCellContentTag = { + GHOSTTY_CELL_CONTENT_CODEPOINT: 0, + GHOSTTY_CELL_CONTENT_CODEPOINT_GRAPHEME: 1, + GHOSTTY_CELL_CONTENT_BG_COLOR_PALETTE: 2, + GHOSTTY_CELL_CONTENT_BG_COLOR_RGB: 3, +} as const; + +export const GhosttyCellData = { + GHOSTTY_CELL_DATA_INVALID: 0, + GHOSTTY_CELL_DATA_CODEPOINT: 1, + GHOSTTY_CELL_DATA_CONTENT_TAG: 2, + GHOSTTY_CELL_DATA_WIDE: 3, + GHOSTTY_CELL_DATA_HAS_TEXT: 4, + GHOSTTY_CELL_DATA_HAS_STYLING: 5, + GHOSTTY_CELL_DATA_STYLE_ID: 6, + GHOSTTY_CELL_DATA_HAS_HYPERLINK: 7, + GHOSTTY_CELL_DATA_PROTECTED: 8, + GHOSTTY_CELL_DATA_SEMANTIC_CONTENT: 9, + GHOSTTY_CELL_DATA_COLOR_PALETTE: 10, + GHOSTTY_CELL_DATA_COLOR_RGB: 11, +} as const; + +export const GhosttyCellSemanticContent = { + GHOSTTY_CELL_SEMANTIC_OUTPUT: 0, + GHOSTTY_CELL_SEMANTIC_INPUT: 1, + GHOSTTY_CELL_SEMANTIC_PROMPT: 2, +} as const; + +export const GhosttyCellWide = { + GHOSTTY_CELL_WIDE_NARROW: 0, + GHOSTTY_CELL_WIDE_WIDE: 1, + GHOSTTY_CELL_WIDE_SPACER_TAIL: 2, + GHOSTTY_CELL_WIDE_SPACER_HEAD: 3, +} as const; + +export const GhosttyClipboardLocation = { + GHOSTTY_CLIPBOARD_LOCATION_STANDARD: 0, + GHOSTTY_CLIPBOARD_LOCATION_SELECTION: 1, + GHOSTTY_CLIPBOARD_LOCATION_PRIMARY: 2, +} as const; + +export const GhosttyClipboardWriteResult = { + GHOSTTY_CLIPBOARD_WRITE_RESULT_SUCCESS: 0, + GHOSTTY_CLIPBOARD_WRITE_RESULT_DENIED: 1, + GHOSTTY_CLIPBOARD_WRITE_RESULT_UNSUPPORTED: 2, + GHOSTTY_CLIPBOARD_WRITE_RESULT_BUSY: 3, + GHOSTTY_CLIPBOARD_WRITE_RESULT_INVALID_DATA: 4, + GHOSTTY_CLIPBOARD_WRITE_RESULT_IO_ERROR: 5, +} as const; + +export const GhosttyColorScheme = { + GHOSTTY_COLOR_SCHEME_LIGHT: 0, + GHOSTTY_COLOR_SCHEME_DARK: 1, +} as const; + +export const GhosttyFocusEvent = { + GHOSTTY_FOCUS_GAINED: 0, + GHOSTTY_FOCUS_LOST: 1, +} as const; + +export const GhosttyFormatterFormat = { + GHOSTTY_FORMATTER_FORMAT_PLAIN: 0, + GHOSTTY_FORMATTER_FORMAT_VT: 1, + GHOSTTY_FORMATTER_FORMAT_HTML: 2, +} as const; + +export const GhosttyKey = { + GHOSTTY_KEY_UNIDENTIFIED: 0, + GHOSTTY_KEY_BACKQUOTE: 1, + GHOSTTY_KEY_BACKSLASH: 2, + GHOSTTY_KEY_BRACKET_LEFT: 3, + GHOSTTY_KEY_BRACKET_RIGHT: 4, + GHOSTTY_KEY_COMMA: 5, + GHOSTTY_KEY_DIGIT_0: 6, + GHOSTTY_KEY_DIGIT_1: 7, + GHOSTTY_KEY_DIGIT_2: 8, + GHOSTTY_KEY_DIGIT_3: 9, + GHOSTTY_KEY_DIGIT_4: 10, + GHOSTTY_KEY_DIGIT_5: 11, + GHOSTTY_KEY_DIGIT_6: 12, + GHOSTTY_KEY_DIGIT_7: 13, + GHOSTTY_KEY_DIGIT_8: 14, + GHOSTTY_KEY_DIGIT_9: 15, + GHOSTTY_KEY_EQUAL: 16, + GHOSTTY_KEY_INTL_BACKSLASH: 17, + GHOSTTY_KEY_INTL_RO: 18, + GHOSTTY_KEY_INTL_YEN: 19, + GHOSTTY_KEY_A: 20, + GHOSTTY_KEY_B: 21, + GHOSTTY_KEY_C: 22, + GHOSTTY_KEY_D: 23, + GHOSTTY_KEY_E: 24, + GHOSTTY_KEY_F: 25, + GHOSTTY_KEY_G: 26, + GHOSTTY_KEY_H: 27, + GHOSTTY_KEY_I: 28, + GHOSTTY_KEY_J: 29, + GHOSTTY_KEY_K: 30, + GHOSTTY_KEY_L: 31, + GHOSTTY_KEY_M: 32, + GHOSTTY_KEY_N: 33, + GHOSTTY_KEY_O: 34, + GHOSTTY_KEY_P: 35, + GHOSTTY_KEY_Q: 36, + GHOSTTY_KEY_R: 37, + GHOSTTY_KEY_S: 38, + GHOSTTY_KEY_T: 39, + GHOSTTY_KEY_U: 40, + GHOSTTY_KEY_V: 41, + GHOSTTY_KEY_W: 42, + GHOSTTY_KEY_X: 43, + GHOSTTY_KEY_Y: 44, + GHOSTTY_KEY_Z: 45, + GHOSTTY_KEY_MINUS: 46, + GHOSTTY_KEY_PERIOD: 47, + GHOSTTY_KEY_QUOTE: 48, + GHOSTTY_KEY_SEMICOLON: 49, + GHOSTTY_KEY_SLASH: 50, + GHOSTTY_KEY_ALT_LEFT: 51, + GHOSTTY_KEY_ALT_RIGHT: 52, + GHOSTTY_KEY_BACKSPACE: 53, + GHOSTTY_KEY_CAPS_LOCK: 54, + GHOSTTY_KEY_CONTEXT_MENU: 55, + GHOSTTY_KEY_CONTROL_LEFT: 56, + GHOSTTY_KEY_CONTROL_RIGHT: 57, + GHOSTTY_KEY_ENTER: 58, + GHOSTTY_KEY_META_LEFT: 59, + GHOSTTY_KEY_META_RIGHT: 60, + GHOSTTY_KEY_SHIFT_LEFT: 61, + GHOSTTY_KEY_SHIFT_RIGHT: 62, + GHOSTTY_KEY_SPACE: 63, + GHOSTTY_KEY_TAB: 64, + GHOSTTY_KEY_CONVERT: 65, + GHOSTTY_KEY_KANA_MODE: 66, + GHOSTTY_KEY_NON_CONVERT: 67, + GHOSTTY_KEY_DELETE: 68, + GHOSTTY_KEY_END: 69, + GHOSTTY_KEY_HELP: 70, + GHOSTTY_KEY_HOME: 71, + GHOSTTY_KEY_INSERT: 72, + GHOSTTY_KEY_PAGE_DOWN: 73, + GHOSTTY_KEY_PAGE_UP: 74, + GHOSTTY_KEY_ARROW_DOWN: 75, + GHOSTTY_KEY_ARROW_LEFT: 76, + GHOSTTY_KEY_ARROW_RIGHT: 77, + GHOSTTY_KEY_ARROW_UP: 78, + GHOSTTY_KEY_NUM_LOCK: 79, + GHOSTTY_KEY_NUMPAD_0: 80, + GHOSTTY_KEY_NUMPAD_1: 81, + GHOSTTY_KEY_NUMPAD_2: 82, + GHOSTTY_KEY_NUMPAD_3: 83, + GHOSTTY_KEY_NUMPAD_4: 84, + GHOSTTY_KEY_NUMPAD_5: 85, + GHOSTTY_KEY_NUMPAD_6: 86, + GHOSTTY_KEY_NUMPAD_7: 87, + GHOSTTY_KEY_NUMPAD_8: 88, + GHOSTTY_KEY_NUMPAD_9: 89, + GHOSTTY_KEY_NUMPAD_ADD: 90, + GHOSTTY_KEY_NUMPAD_BACKSPACE: 91, + GHOSTTY_KEY_NUMPAD_CLEAR: 92, + GHOSTTY_KEY_NUMPAD_CLEAR_ENTRY: 93, + GHOSTTY_KEY_NUMPAD_COMMA: 94, + GHOSTTY_KEY_NUMPAD_DECIMAL: 95, + GHOSTTY_KEY_NUMPAD_DIVIDE: 96, + GHOSTTY_KEY_NUMPAD_ENTER: 97, + GHOSTTY_KEY_NUMPAD_EQUAL: 98, + GHOSTTY_KEY_NUMPAD_MEMORY_ADD: 99, + GHOSTTY_KEY_NUMPAD_MEMORY_CLEAR: 100, + GHOSTTY_KEY_NUMPAD_MEMORY_RECALL: 101, + GHOSTTY_KEY_NUMPAD_MEMORY_STORE: 102, + GHOSTTY_KEY_NUMPAD_MEMORY_SUBTRACT: 103, + GHOSTTY_KEY_NUMPAD_MULTIPLY: 104, + GHOSTTY_KEY_NUMPAD_PAREN_LEFT: 105, + GHOSTTY_KEY_NUMPAD_PAREN_RIGHT: 106, + GHOSTTY_KEY_NUMPAD_SUBTRACT: 107, + GHOSTTY_KEY_NUMPAD_SEPARATOR: 108, + GHOSTTY_KEY_NUMPAD_UP: 109, + GHOSTTY_KEY_NUMPAD_DOWN: 110, + GHOSTTY_KEY_NUMPAD_RIGHT: 111, + GHOSTTY_KEY_NUMPAD_LEFT: 112, + GHOSTTY_KEY_NUMPAD_BEGIN: 113, + GHOSTTY_KEY_NUMPAD_HOME: 114, + GHOSTTY_KEY_NUMPAD_END: 115, + GHOSTTY_KEY_NUMPAD_INSERT: 116, + GHOSTTY_KEY_NUMPAD_DELETE: 117, + GHOSTTY_KEY_NUMPAD_PAGE_UP: 118, + GHOSTTY_KEY_NUMPAD_PAGE_DOWN: 119, + GHOSTTY_KEY_ESCAPE: 120, + GHOSTTY_KEY_F1: 121, + GHOSTTY_KEY_F2: 122, + GHOSTTY_KEY_F3: 123, + GHOSTTY_KEY_F4: 124, + GHOSTTY_KEY_F5: 125, + GHOSTTY_KEY_F6: 126, + GHOSTTY_KEY_F7: 127, + GHOSTTY_KEY_F8: 128, + GHOSTTY_KEY_F9: 129, + GHOSTTY_KEY_F10: 130, + GHOSTTY_KEY_F11: 131, + GHOSTTY_KEY_F12: 132, + GHOSTTY_KEY_F13: 133, + GHOSTTY_KEY_F14: 134, + GHOSTTY_KEY_F15: 135, + GHOSTTY_KEY_F16: 136, + GHOSTTY_KEY_F17: 137, + GHOSTTY_KEY_F18: 138, + GHOSTTY_KEY_F19: 139, + GHOSTTY_KEY_F20: 140, + GHOSTTY_KEY_F21: 141, + GHOSTTY_KEY_F22: 142, + GHOSTTY_KEY_F23: 143, + GHOSTTY_KEY_F24: 144, + GHOSTTY_KEY_F25: 145, + GHOSTTY_KEY_FN: 146, + GHOSTTY_KEY_FN_LOCK: 147, + GHOSTTY_KEY_PRINT_SCREEN: 148, + GHOSTTY_KEY_SCROLL_LOCK: 149, + GHOSTTY_KEY_PAUSE: 150, + GHOSTTY_KEY_BROWSER_BACK: 151, + GHOSTTY_KEY_BROWSER_FAVORITES: 152, + GHOSTTY_KEY_BROWSER_FORWARD: 153, + GHOSTTY_KEY_BROWSER_HOME: 154, + GHOSTTY_KEY_BROWSER_REFRESH: 155, + GHOSTTY_KEY_BROWSER_SEARCH: 156, + GHOSTTY_KEY_BROWSER_STOP: 157, + GHOSTTY_KEY_EJECT: 158, + GHOSTTY_KEY_LAUNCH_APP_1: 159, + GHOSTTY_KEY_LAUNCH_APP_2: 160, + GHOSTTY_KEY_LAUNCH_MAIL: 161, + GHOSTTY_KEY_MEDIA_PLAY_PAUSE: 162, + GHOSTTY_KEY_MEDIA_SELECT: 163, + GHOSTTY_KEY_MEDIA_STOP: 164, + GHOSTTY_KEY_MEDIA_TRACK_NEXT: 165, + GHOSTTY_KEY_MEDIA_TRACK_PREVIOUS: 166, + GHOSTTY_KEY_POWER: 167, + GHOSTTY_KEY_SLEEP: 168, + GHOSTTY_KEY_AUDIO_VOLUME_DOWN: 169, + GHOSTTY_KEY_AUDIO_VOLUME_MUTE: 170, + GHOSTTY_KEY_AUDIO_VOLUME_UP: 171, + GHOSTTY_KEY_WAKE_UP: 172, + GHOSTTY_KEY_COPY: 173, + GHOSTTY_KEY_CUT: 174, + GHOSTTY_KEY_PASTE: 175, +} as const; + +export const GhosttyKeyAction = { + GHOSTTY_KEY_ACTION_RELEASE: 0, + GHOSTTY_KEY_ACTION_PRESS: 1, + GHOSTTY_KEY_ACTION_REPEAT: 2, +} as const; + +export const GhosttyKeyEncoderOption = { + GHOSTTY_KEY_ENCODER_OPT_CURSOR_KEY_APPLICATION: 0, + GHOSTTY_KEY_ENCODER_OPT_KEYPAD_KEY_APPLICATION: 1, + GHOSTTY_KEY_ENCODER_OPT_IGNORE_KEYPAD_WITH_NUMLOCK: 2, + GHOSTTY_KEY_ENCODER_OPT_ALT_ESC_PREFIX: 3, + GHOSTTY_KEY_ENCODER_OPT_MODIFY_OTHER_KEYS_STATE_2: 4, + GHOSTTY_KEY_ENCODER_OPT_KITTY_FLAGS: 5, + GHOSTTY_KEY_ENCODER_OPT_MACOS_OPTION_AS_ALT: 6, + GHOSTTY_KEY_ENCODER_OPT_BACKARROW_KEY_MODE: 7, +} as const; + +export const GhosttyKittyGraphicsData = { + GHOSTTY_KITTY_GRAPHICS_DATA_INVALID: 0, + GHOSTTY_KITTY_GRAPHICS_DATA_PLACEMENT_ITERATOR: 1, + GHOSTTY_KITTY_GRAPHICS_DATA_GENERATION: 2, +} as const; + +export const GhosttyKittyGraphicsImageData = { + GHOSTTY_KITTY_IMAGE_DATA_INVALID: 0, + GHOSTTY_KITTY_IMAGE_DATA_ID: 1, + GHOSTTY_KITTY_IMAGE_DATA_NUMBER: 2, + GHOSTTY_KITTY_IMAGE_DATA_WIDTH: 3, + GHOSTTY_KITTY_IMAGE_DATA_HEIGHT: 4, + GHOSTTY_KITTY_IMAGE_DATA_FORMAT: 5, + GHOSTTY_KITTY_IMAGE_DATA_COMPRESSION: 6, + GHOSTTY_KITTY_IMAGE_DATA_DATA_PTR: 7, + GHOSTTY_KITTY_IMAGE_DATA_DATA_LEN: 8, + GHOSTTY_KITTY_IMAGE_DATA_GENERATION: 9, +} as const; + +export const GhosttyKittyGraphicsPlacementData = { + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_INVALID: 0, + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_IMAGE_ID: 1, + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_PLACEMENT_ID: 2, + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_IS_VIRTUAL: 3, + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_X_OFFSET: 4, + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_Y_OFFSET: 5, + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_SOURCE_X: 6, + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_SOURCE_Y: 7, + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_SOURCE_WIDTH: 8, + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_SOURCE_HEIGHT: 9, + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_COLUMNS: 10, + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_ROWS: 11, + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_Z: 12, +} as const; + +export const GhosttyKittyGraphicsPlacementIteratorOption = { + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_ITERATOR_OPTION_LAYER: 0, +} as const; + +export const GhosttyKittyImageCompression = { + GHOSTTY_KITTY_IMAGE_COMPRESSION_NONE: 0, + GHOSTTY_KITTY_IMAGE_COMPRESSION_ZLIB_DEFLATE: 1, +} as const; + +export const GhosttyKittyImageFormat = { + GHOSTTY_KITTY_IMAGE_FORMAT_RGB: 0, + GHOSTTY_KITTY_IMAGE_FORMAT_RGBA: 1, + GHOSTTY_KITTY_IMAGE_FORMAT_PNG: 2, + GHOSTTY_KITTY_IMAGE_FORMAT_GRAY_ALPHA: 3, + GHOSTTY_KITTY_IMAGE_FORMAT_GRAY: 4, +} as const; + +export const GhosttyKittyPlacementLayer = { + GHOSTTY_KITTY_PLACEMENT_LAYER_ALL: 0, + GHOSTTY_KITTY_PLACEMENT_LAYER_BELOW_BG: 1, + GHOSTTY_KITTY_PLACEMENT_LAYER_BELOW_TEXT: 2, + GHOSTTY_KITTY_PLACEMENT_LAYER_ABOVE_TEXT: 3, +} as const; + +export const GhosttyModeReportState = { + GHOSTTY_MODE_REPORT_NOT_RECOGNIZED: 0, + GHOSTTY_MODE_REPORT_SET: 1, + GHOSTTY_MODE_REPORT_RESET: 2, + GHOSTTY_MODE_REPORT_PERMANENTLY_SET: 3, + GHOSTTY_MODE_REPORT_PERMANENTLY_RESET: 4, +} as const; + +export const GhosttyMouseAction = { + GHOSTTY_MOUSE_ACTION_PRESS: 0, + GHOSTTY_MOUSE_ACTION_RELEASE: 1, + GHOSTTY_MOUSE_ACTION_MOTION: 2, +} as const; + +export const GhosttyMouseButton = { + GHOSTTY_MOUSE_BUTTON_UNKNOWN: 0, + GHOSTTY_MOUSE_BUTTON_LEFT: 1, + GHOSTTY_MOUSE_BUTTON_RIGHT: 2, + GHOSTTY_MOUSE_BUTTON_MIDDLE: 3, + GHOSTTY_MOUSE_BUTTON_FOUR: 4, + GHOSTTY_MOUSE_BUTTON_FIVE: 5, + GHOSTTY_MOUSE_BUTTON_SIX: 6, + GHOSTTY_MOUSE_BUTTON_SEVEN: 7, + GHOSTTY_MOUSE_BUTTON_EIGHT: 8, + GHOSTTY_MOUSE_BUTTON_NINE: 9, + GHOSTTY_MOUSE_BUTTON_TEN: 10, + GHOSTTY_MOUSE_BUTTON_ELEVEN: 11, +} as const; + +export const GhosttyMouseEncoderOption = { + GHOSTTY_MOUSE_ENCODER_OPT_EVENT: 0, + GHOSTTY_MOUSE_ENCODER_OPT_FORMAT: 1, + GHOSTTY_MOUSE_ENCODER_OPT_SIZE: 2, + GHOSTTY_MOUSE_ENCODER_OPT_ANY_BUTTON_PRESSED: 3, + GHOSTTY_MOUSE_ENCODER_OPT_TRACK_LAST_CELL: 4, +} as const; + +export const GhosttyMouseFormat = { + GHOSTTY_MOUSE_FORMAT_X10: 0, + GHOSTTY_MOUSE_FORMAT_UTF8: 1, + GHOSTTY_MOUSE_FORMAT_SGR: 2, + GHOSTTY_MOUSE_FORMAT_URXVT: 3, + GHOSTTY_MOUSE_FORMAT_SGR_PIXELS: 4, +} as const; + +export const GhosttyMouseTrackingMode = { + GHOSTTY_MOUSE_TRACKING_NONE: 0, + GHOSTTY_MOUSE_TRACKING_X10: 1, + GHOSTTY_MOUSE_TRACKING_NORMAL: 2, + GHOSTTY_MOUSE_TRACKING_BUTTON: 3, + GHOSTTY_MOUSE_TRACKING_ANY: 4, +} as const; + +export const GhosttyOptimizeMode = { + GHOSTTY_OPTIMIZE_DEBUG: 0, + GHOSTTY_OPTIMIZE_RELEASE_SAFE: 1, + GHOSTTY_OPTIMIZE_RELEASE_SMALL: 2, + GHOSTTY_OPTIMIZE_RELEASE_FAST: 3, +} as const; + +export const GhosttyOptionAsAlt = { + GHOSTTY_OPTION_AS_ALT_FALSE: 0, + GHOSTTY_OPTION_AS_ALT_TRUE: 1, + GHOSTTY_OPTION_AS_ALT_LEFT: 2, + GHOSTTY_OPTION_AS_ALT_RIGHT: 3, +} as const; + +export const GhosttyOscCommandData = { + GHOSTTY_OSC_DATA_INVALID: 0, + GHOSTTY_OSC_DATA_CHANGE_WINDOW_TITLE_STR: 1, +} as const; + +export const GhosttyOscCommandType = { + GHOSTTY_OSC_COMMAND_INVALID: 0, + GHOSTTY_OSC_COMMAND_CHANGE_WINDOW_TITLE: 1, + GHOSTTY_OSC_COMMAND_CHANGE_WINDOW_ICON: 2, + GHOSTTY_OSC_COMMAND_SEMANTIC_PROMPT: 3, + GHOSTTY_OSC_COMMAND_CLIPBOARD_CONTENTS: 4, + GHOSTTY_OSC_COMMAND_REPORT_PWD: 5, + GHOSTTY_OSC_COMMAND_MOUSE_SHAPE: 6, + GHOSTTY_OSC_COMMAND_COLOR_OPERATION: 7, + GHOSTTY_OSC_COMMAND_KITTY_COLOR_PROTOCOL: 8, + GHOSTTY_OSC_COMMAND_SHOW_DESKTOP_NOTIFICATION: 9, + GHOSTTY_OSC_COMMAND_HYPERLINK_START: 10, + GHOSTTY_OSC_COMMAND_HYPERLINK_END: 11, + GHOSTTY_OSC_COMMAND_CONEMU_SLEEP: 12, + GHOSTTY_OSC_COMMAND_CONEMU_SHOW_MESSAGE_BOX: 13, + GHOSTTY_OSC_COMMAND_CONEMU_CHANGE_TAB_TITLE: 14, + GHOSTTY_OSC_COMMAND_CONEMU_PROGRESS_REPORT: 15, + GHOSTTY_OSC_COMMAND_CONEMU_WAIT_INPUT: 16, + GHOSTTY_OSC_COMMAND_CONEMU_GUIMACRO: 17, + GHOSTTY_OSC_COMMAND_CONEMU_RUN_PROCESS: 18, + GHOSTTY_OSC_COMMAND_CONEMU_OUTPUT_ENVIRONMENT_VARIABLE: 19, + GHOSTTY_OSC_COMMAND_CONEMU_XTERM_EMULATION: 20, + GHOSTTY_OSC_COMMAND_CONEMU_COMMENT: 21, + GHOSTTY_OSC_COMMAND_KITTY_TEXT_SIZING: 22, +} as const; + +export const GhosttyPointTag = { + GHOSTTY_POINT_TAG_ACTIVE: 0, + GHOSTTY_POINT_TAG_VIEWPORT: 1, + GHOSTTY_POINT_TAG_SCREEN: 2, + GHOSTTY_POINT_TAG_HISTORY: 3, +} as const; + +export const GhosttyRenderStateCursorVisualStyle = { + GHOSTTY_RENDER_STATE_CURSOR_VISUAL_STYLE_BAR: 0, + GHOSTTY_RENDER_STATE_CURSOR_VISUAL_STYLE_BLOCK: 1, + GHOSTTY_RENDER_STATE_CURSOR_VISUAL_STYLE_UNDERLINE: 2, + GHOSTTY_RENDER_STATE_CURSOR_VISUAL_STYLE_BLOCK_HOLLOW: 3, +} as const; + +export const GhosttyRenderStateData = { + GHOSTTY_RENDER_STATE_DATA_INVALID: 0, + GHOSTTY_RENDER_STATE_DATA_COLS: 1, + GHOSTTY_RENDER_STATE_DATA_ROWS: 2, + GHOSTTY_RENDER_STATE_DATA_DIRTY: 3, + GHOSTTY_RENDER_STATE_DATA_ROW_ITERATOR: 4, + GHOSTTY_RENDER_STATE_DATA_COLOR_BACKGROUND: 5, + GHOSTTY_RENDER_STATE_DATA_COLOR_FOREGROUND: 6, + GHOSTTY_RENDER_STATE_DATA_COLOR_CURSOR: 7, + GHOSTTY_RENDER_STATE_DATA_COLOR_CURSOR_HAS_VALUE: 8, + GHOSTTY_RENDER_STATE_DATA_COLOR_PALETTE: 9, + GHOSTTY_RENDER_STATE_DATA_CURSOR_VISUAL_STYLE: 10, + GHOSTTY_RENDER_STATE_DATA_CURSOR_VISIBLE: 11, + GHOSTTY_RENDER_STATE_DATA_CURSOR_BLINKING: 12, + GHOSTTY_RENDER_STATE_DATA_CURSOR_PASSWORD_INPUT: 13, + GHOSTTY_RENDER_STATE_DATA_CURSOR_VIEWPORT_HAS_VALUE: 14, + GHOSTTY_RENDER_STATE_DATA_CURSOR_VIEWPORT_X: 15, + GHOSTTY_RENDER_STATE_DATA_CURSOR_VIEWPORT_Y: 16, + GHOSTTY_RENDER_STATE_DATA_CURSOR_VIEWPORT_WIDE_TAIL: 17, +} as const; + +export const GhosttyRenderStateDirty = { + GHOSTTY_RENDER_STATE_DIRTY_FALSE: 0, + GHOSTTY_RENDER_STATE_DIRTY_PARTIAL: 1, + GHOSTTY_RENDER_STATE_DIRTY_FULL: 2, +} as const; + +export const GhosttyRenderStateOption = { + GHOSTTY_RENDER_STATE_OPTION_DIRTY: 0, +} as const; + +export const GhosttyRenderStateRowCellsData = { + GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_INVALID: 0, + GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_RAW: 1, + GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_STYLE: 2, + GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_GRAPHEMES_LEN: 3, + GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_GRAPHEMES_BUF: 4, + GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_BG_COLOR: 5, + GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_FG_COLOR: 6, + GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_SELECTED: 7, + GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_HAS_STYLING: 8, + GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_GRAPHEMES_UTF8: 9, +} as const; + +export const GhosttyRenderStateRowData = { + GHOSTTY_RENDER_STATE_ROW_DATA_INVALID: 0, + GHOSTTY_RENDER_STATE_ROW_DATA_DIRTY: 1, + GHOSTTY_RENDER_STATE_ROW_DATA_RAW: 2, + GHOSTTY_RENDER_STATE_ROW_DATA_CELLS: 3, + GHOSTTY_RENDER_STATE_ROW_DATA_SELECTION: 4, +} as const; + +export const GhosttyRenderStateRowOption = { + GHOSTTY_RENDER_STATE_ROW_OPTION_DIRTY: 0, +} as const; + +export const GhosttyResult = { + GHOSTTY_SUCCESS: 0, + GHOSTTY_OUT_OF_MEMORY: -1, + GHOSTTY_INVALID_VALUE: -2, + GHOSTTY_OUT_OF_SPACE: -3, + GHOSTTY_NO_VALUE: -4, +} as const; + +export const GhosttyRowData = { + GHOSTTY_ROW_DATA_INVALID: 0, + GHOSTTY_ROW_DATA_WRAP: 1, + GHOSTTY_ROW_DATA_WRAP_CONTINUATION: 2, + GHOSTTY_ROW_DATA_GRAPHEME: 3, + GHOSTTY_ROW_DATA_STYLED: 4, + GHOSTTY_ROW_DATA_HYPERLINK: 5, + GHOSTTY_ROW_DATA_SEMANTIC_PROMPT: 6, + GHOSTTY_ROW_DATA_KITTY_VIRTUAL_PLACEHOLDER: 7, + GHOSTTY_ROW_DATA_DIRTY: 8, +} as const; + +export const GhosttyRowSemanticPrompt = { + GHOSTTY_ROW_SEMANTIC_NONE: 0, + GHOSTTY_ROW_SEMANTIC_PROMPT: 1, + GHOSTTY_ROW_SEMANTIC_PROMPT_CONTINUATION: 2, +} as const; + +export const GhosttySelectionAdjust = { + GHOSTTY_SELECTION_ADJUST_LEFT: 0, + GHOSTTY_SELECTION_ADJUST_RIGHT: 1, + GHOSTTY_SELECTION_ADJUST_UP: 2, + GHOSTTY_SELECTION_ADJUST_DOWN: 3, + GHOSTTY_SELECTION_ADJUST_HOME: 4, + GHOSTTY_SELECTION_ADJUST_END: 5, + GHOSTTY_SELECTION_ADJUST_PAGE_UP: 6, + GHOSTTY_SELECTION_ADJUST_PAGE_DOWN: 7, + GHOSTTY_SELECTION_ADJUST_BEGINNING_OF_LINE: 8, + GHOSTTY_SELECTION_ADJUST_END_OF_LINE: 9, +} as const; + +export const GhosttySelectionGestureAutoscroll = { + GHOSTTY_SELECTION_GESTURE_AUTOSCROLL_NONE: 0, + GHOSTTY_SELECTION_GESTURE_AUTOSCROLL_UP: 1, + GHOSTTY_SELECTION_GESTURE_AUTOSCROLL_DOWN: 2, +} as const; + +export const GhosttySelectionGestureBehavior = { + GHOSTTY_SELECTION_GESTURE_BEHAVIOR_CELL: 0, + GHOSTTY_SELECTION_GESTURE_BEHAVIOR_WORD: 1, + GHOSTTY_SELECTION_GESTURE_BEHAVIOR_LINE: 2, + GHOSTTY_SELECTION_GESTURE_BEHAVIOR_OUTPUT: 3, +} as const; + +export const GhosttySelectionGestureData = { + GHOSTTY_SELECTION_GESTURE_DATA_CLICK_COUNT: 0, + GHOSTTY_SELECTION_GESTURE_DATA_DRAGGED: 1, + GHOSTTY_SELECTION_GESTURE_DATA_AUTOSCROLL: 2, + GHOSTTY_SELECTION_GESTURE_DATA_BEHAVIOR: 3, + GHOSTTY_SELECTION_GESTURE_DATA_ANCHOR: 4, +} as const; + +export const GhosttySelectionGestureEventOption = { + GHOSTTY_SELECTION_GESTURE_EVENT_OPT_REF: 0, + GHOSTTY_SELECTION_GESTURE_EVENT_OPT_POSITION: 1, + GHOSTTY_SELECTION_GESTURE_EVENT_OPT_REPEAT_DISTANCE: 2, + GHOSTTY_SELECTION_GESTURE_EVENT_OPT_TIME_NS: 3, + GHOSTTY_SELECTION_GESTURE_EVENT_OPT_REPEAT_INTERVAL_NS: 4, + GHOSTTY_SELECTION_GESTURE_EVENT_OPT_WORD_BOUNDARY_CODEPOINTS: 5, + GHOSTTY_SELECTION_GESTURE_EVENT_OPT_BEHAVIORS: 6, + GHOSTTY_SELECTION_GESTURE_EVENT_OPT_RECTANGLE: 7, + GHOSTTY_SELECTION_GESTURE_EVENT_OPT_GEOMETRY: 8, + GHOSTTY_SELECTION_GESTURE_EVENT_OPT_VIEWPORT: 9, +} as const; + +export const GhosttySelectionGestureEventType = { + GHOSTTY_SELECTION_GESTURE_EVENT_TYPE_PRESS: 0, + GHOSTTY_SELECTION_GESTURE_EVENT_TYPE_RELEASE: 1, + GHOSTTY_SELECTION_GESTURE_EVENT_TYPE_DRAG: 2, + GHOSTTY_SELECTION_GESTURE_EVENT_TYPE_AUTOSCROLL_TICK: 3, + GHOSTTY_SELECTION_GESTURE_EVENT_TYPE_DEEP_PRESS: 4, +} as const; + +export const GhosttySelectionOrder = { + GHOSTTY_SELECTION_ORDER_FORWARD: 0, + GHOSTTY_SELECTION_ORDER_REVERSE: 1, + GHOSTTY_SELECTION_ORDER_MIRRORED_FORWARD: 2, + GHOSTTY_SELECTION_ORDER_MIRRORED_REVERSE: 3, +} as const; + +export const GhosttySgrAttributeTag = { + GHOSTTY_SGR_ATTR_UNSET: 0, + GHOSTTY_SGR_ATTR_UNKNOWN: 1, + GHOSTTY_SGR_ATTR_BOLD: 2, + GHOSTTY_SGR_ATTR_RESET_BOLD: 3, + GHOSTTY_SGR_ATTR_ITALIC: 4, + GHOSTTY_SGR_ATTR_RESET_ITALIC: 5, + GHOSTTY_SGR_ATTR_FAINT: 6, + GHOSTTY_SGR_ATTR_UNDERLINE: 7, + GHOSTTY_SGR_ATTR_UNDERLINE_COLOR: 8, + GHOSTTY_SGR_ATTR_UNDERLINE_COLOR_256: 9, + GHOSTTY_SGR_ATTR_RESET_UNDERLINE_COLOR: 10, + GHOSTTY_SGR_ATTR_OVERLINE: 11, + GHOSTTY_SGR_ATTR_RESET_OVERLINE: 12, + GHOSTTY_SGR_ATTR_BLINK: 13, + GHOSTTY_SGR_ATTR_RESET_BLINK: 14, + GHOSTTY_SGR_ATTR_INVERSE: 15, + GHOSTTY_SGR_ATTR_RESET_INVERSE: 16, + GHOSTTY_SGR_ATTR_INVISIBLE: 17, + GHOSTTY_SGR_ATTR_RESET_INVISIBLE: 18, + GHOSTTY_SGR_ATTR_STRIKETHROUGH: 19, + GHOSTTY_SGR_ATTR_RESET_STRIKETHROUGH: 20, + GHOSTTY_SGR_ATTR_DIRECT_COLOR_FG: 21, + GHOSTTY_SGR_ATTR_DIRECT_COLOR_BG: 22, + GHOSTTY_SGR_ATTR_BG_8: 23, + GHOSTTY_SGR_ATTR_FG_8: 24, + GHOSTTY_SGR_ATTR_RESET_FG: 25, + GHOSTTY_SGR_ATTR_RESET_BG: 26, + GHOSTTY_SGR_ATTR_BRIGHT_BG_8: 27, + GHOSTTY_SGR_ATTR_BRIGHT_FG_8: 28, + GHOSTTY_SGR_ATTR_BG_256: 29, + GHOSTTY_SGR_ATTR_FG_256: 30, +} as const; + +export const GhosttySgrUnderline = { + GHOSTTY_SGR_UNDERLINE_NONE: 0, + GHOSTTY_SGR_UNDERLINE_SINGLE: 1, + GHOSTTY_SGR_UNDERLINE_DOUBLE: 2, + GHOSTTY_SGR_UNDERLINE_CURLY: 3, + GHOSTTY_SGR_UNDERLINE_DOTTED: 4, + GHOSTTY_SGR_UNDERLINE_DASHED: 5, +} as const; + +export const GhosttySizeReportStyle = { + GHOSTTY_SIZE_REPORT_MODE_2048: 0, + GHOSTTY_SIZE_REPORT_CSI_14_T: 1, + GHOSTTY_SIZE_REPORT_CSI_16_T: 2, + GHOSTTY_SIZE_REPORT_CSI_18_T: 3, +} as const; + +export const GhosttyStyleColorTag = { + GHOSTTY_STYLE_COLOR_NONE: 0, + GHOSTTY_STYLE_COLOR_PALETTE: 1, + GHOSTTY_STYLE_COLOR_RGB: 2, +} as const; + +export const GhosttySysLogLevel = { + GHOSTTY_SYS_LOG_LEVEL_ERROR: 0, + GHOSTTY_SYS_LOG_LEVEL_WARNING: 1, + GHOSTTY_SYS_LOG_LEVEL_INFO: 2, + GHOSTTY_SYS_LOG_LEVEL_DEBUG: 3, +} as const; + +export const GhosttySysOption = { + GHOSTTY_SYS_OPT_USERDATA: 0, + GHOSTTY_SYS_OPT_DECODE_PNG: 1, + GHOSTTY_SYS_OPT_LOG: 2, +} as const; + +export const GhosttyTerminalCompressionMode = { + GHOSTTY_TERMINAL_COMPRESSION_MODE_INCREMENTAL: 0, + GHOSTTY_TERMINAL_COMPRESSION_MODE_FULL: 1, +} as const; + +export const GhosttyTerminalCompressionResult = { + GHOSTTY_TERMINAL_COMPRESSION_RESULT_UNSUPPORTED: 0, + GHOSTTY_TERMINAL_COMPRESSION_RESULT_PENDING: 1, + GHOSTTY_TERMINAL_COMPRESSION_RESULT_COMPLETE: 2, +} as const; + +export const GhosttyTerminalCursorStyle = { + GHOSTTY_TERMINAL_CURSOR_STYLE_BAR: 0, + GHOSTTY_TERMINAL_CURSOR_STYLE_BLOCK: 1, + GHOSTTY_TERMINAL_CURSOR_STYLE_UNDERLINE: 2, + GHOSTTY_TERMINAL_CURSOR_STYLE_BLOCK_HOLLOW: 3, +} as const; + +export const GhosttyTerminalData = { + GHOSTTY_TERMINAL_DATA_INVALID: 0, + GHOSTTY_TERMINAL_DATA_COLS: 1, + GHOSTTY_TERMINAL_DATA_ROWS: 2, + GHOSTTY_TERMINAL_DATA_CURSOR_X: 3, + GHOSTTY_TERMINAL_DATA_CURSOR_Y: 4, + GHOSTTY_TERMINAL_DATA_CURSOR_PENDING_WRAP: 5, + GHOSTTY_TERMINAL_DATA_ACTIVE_SCREEN: 6, + GHOSTTY_TERMINAL_DATA_CURSOR_VISIBLE: 7, + GHOSTTY_TERMINAL_DATA_KITTY_KEYBOARD_FLAGS: 8, + GHOSTTY_TERMINAL_DATA_SCROLLBAR: 9, + GHOSTTY_TERMINAL_DATA_CURSOR_STYLE: 10, + GHOSTTY_TERMINAL_DATA_MOUSE_TRACKING: 11, + GHOSTTY_TERMINAL_DATA_TITLE: 12, + GHOSTTY_TERMINAL_DATA_PWD: 13, + GHOSTTY_TERMINAL_DATA_TOTAL_ROWS: 14, + GHOSTTY_TERMINAL_DATA_SCROLLBACK_ROWS: 15, + GHOSTTY_TERMINAL_DATA_WIDTH_PX: 16, + GHOSTTY_TERMINAL_DATA_HEIGHT_PX: 17, + GHOSTTY_TERMINAL_DATA_COLOR_FOREGROUND: 18, + GHOSTTY_TERMINAL_DATA_COLOR_BACKGROUND: 19, + GHOSTTY_TERMINAL_DATA_COLOR_CURSOR: 20, + GHOSTTY_TERMINAL_DATA_COLOR_PALETTE: 21, + GHOSTTY_TERMINAL_DATA_COLOR_FOREGROUND_DEFAULT: 22, + GHOSTTY_TERMINAL_DATA_COLOR_BACKGROUND_DEFAULT: 23, + GHOSTTY_TERMINAL_DATA_COLOR_CURSOR_DEFAULT: 24, + GHOSTTY_TERMINAL_DATA_COLOR_PALETTE_DEFAULT: 25, + GHOSTTY_TERMINAL_DATA_KITTY_IMAGE_STORAGE_LIMIT: 26, + GHOSTTY_TERMINAL_DATA_KITTY_IMAGE_MEDIUM_FILE: 27, + GHOSTTY_TERMINAL_DATA_KITTY_IMAGE_MEDIUM_TEMP_FILE: 28, + GHOSTTY_TERMINAL_DATA_KITTY_IMAGE_MEDIUM_SHARED_MEM: 29, + GHOSTTY_TERMINAL_DATA_KITTY_GRAPHICS: 30, + GHOSTTY_TERMINAL_DATA_SELECTION: 31, + GHOSTTY_TERMINAL_DATA_VIEWPORT_ACTIVE: 32, + GHOSTTY_TERMINAL_DATA_VT_PROCESSING_ERROR: 33, +} as const; + +export const GhosttyTerminalOption = { + GHOSTTY_TERMINAL_OPT_USERDATA: 0, + GHOSTTY_TERMINAL_OPT_WRITE_PTY: 1, + GHOSTTY_TERMINAL_OPT_BELL: 2, + GHOSTTY_TERMINAL_OPT_ENQUIRY: 3, + GHOSTTY_TERMINAL_OPT_XTVERSION: 4, + GHOSTTY_TERMINAL_OPT_TITLE_CHANGED: 5, + GHOSTTY_TERMINAL_OPT_SIZE: 6, + GHOSTTY_TERMINAL_OPT_COLOR_SCHEME: 7, + GHOSTTY_TERMINAL_OPT_DEVICE_ATTRIBUTES: 8, + GHOSTTY_TERMINAL_OPT_TITLE: 9, + GHOSTTY_TERMINAL_OPT_PWD: 10, + GHOSTTY_TERMINAL_OPT_COLOR_FOREGROUND: 11, + GHOSTTY_TERMINAL_OPT_COLOR_BACKGROUND: 12, + GHOSTTY_TERMINAL_OPT_COLOR_CURSOR: 13, + GHOSTTY_TERMINAL_OPT_COLOR_PALETTE: 14, + GHOSTTY_TERMINAL_OPT_KITTY_IMAGE_STORAGE_LIMIT: 15, + GHOSTTY_TERMINAL_OPT_KITTY_IMAGE_MEDIUM_FILE: 16, + GHOSTTY_TERMINAL_OPT_KITTY_IMAGE_MEDIUM_TEMP_FILE: 17, + GHOSTTY_TERMINAL_OPT_KITTY_IMAGE_MEDIUM_SHARED_MEM: 18, + GHOSTTY_TERMINAL_OPT_APC_MAX_BYTES: 19, + GHOSTTY_TERMINAL_OPT_APC_MAX_BYTES_KITTY: 20, + GHOSTTY_TERMINAL_OPT_SELECTION: 21, + GHOSTTY_TERMINAL_OPT_DEFAULT_CURSOR_STYLE: 22, + GHOSTTY_TERMINAL_OPT_DEFAULT_CURSOR_BLINK: 23, + GHOSTTY_TERMINAL_OPT_GLYPH_PROTOCOL: 24, + GHOSTTY_TERMINAL_OPT_PWD_CHANGED: 25, + GHOSTTY_TERMINAL_OPT_CLIPBOARD_WRITE: 26, +} as const; + +export const GhosttyTerminalScreen = { + GHOSTTY_TERMINAL_SCREEN_PRIMARY: 0, + GHOSTTY_TERMINAL_SCREEN_ALTERNATE: 1, +} as const; + +export const GhosttyTerminalScrollViewportTag = { + GHOSTTY_SCROLL_VIEWPORT_TOP: 0, + GHOSTTY_SCROLL_VIEWPORT_BOTTOM: 1, + GHOSTTY_SCROLL_VIEWPORT_DELTA: 2, + GHOSTTY_SCROLL_VIEWPORT_ROW: 3, +} as const; diff --git a/packages/terminal/src/ghostty/module.ts b/packages/terminal/src/ghostty/module.ts new file mode 100644 index 0000000000000000000000000000000000000000..5482b3dfe5ae26f82e6cc0024e9cb831be3b9300 --- /dev/null +++ b/packages/terminal/src/ghostty/module.ts @@ -0,0 +1,266 @@ +// Loader and low-level memory helpers for the vendored libghostty-vt wasm module. +// One GhosttyModule can host many terminals; all pointers are offsets into the +// module's single linear memory. Never cache a DataView/TypedArray across an +// exported call — memory.grow() detaches the buffer. + +export interface TypeField { + offset: number; + size: number; + type: string; +} + +export interface TypeLayout { + [struct: string]: { size: number; align: number; fields: Record }; +} + +type Fn = (...args: Array) => number; + +export interface WasmTrampoline { + readonly index: number; + free(): void; +} + +export interface GhosttyExports { + memory: WebAssembly.Memory; + __indirect_function_table: WebAssembly.Table; + [name: string]: Fn | WebAssembly.Memory | WebAssembly.Table; +} + +const encoder = new TextEncoder(); +const decoder = new TextDecoder(); + +/** + * Byte layout of an n-arg trampoline module: (import "e" "cb") + (export "f") + * forwarding. The import and the export share one type, so declaring a result + * makes the call's value the exported function's result — which is what + * effects that answer the core (clipboard writes) need. + */ +function trampolineBytes(paramCount: number, resultCount: number): Uint8Array { + const params = Array.from({ length: paramCount }, () => 0x7f); + const results = resultCount > 0 ? [0x01, 0x7f] : [0x00]; + const body: number[] = [0x00]; + for (let i = 0; i < paramCount; i++) body.push(0x20, i); + body.push(0x10, 0x00, 0x0b); + const bytes = [ + 0x00, + 0x61, + 0x73, + 0x6d, + 0x01, + 0x00, + 0x00, + 0x00, + 0x01, + paramCount + 3 + results.length, + 0x01, + 0x60, + paramCount, + ...params, + ...results, + 0x02, + 0x08, + 0x01, + 0x01, + 0x65, + 0x02, + 0x63, + 0x62, + 0x00, + 0x00, + 0x03, + 0x02, + 0x01, + 0x00, + 0x07, + 0x05, + 0x01, + 0x01, + 0x66, + 0x00, + 0x01, + 0x0a, + body.length + 2, + 0x01, + body.length, + ...body, + ]; + return new Uint8Array(bytes); +} + +export class GhosttyModule { + readonly exports: GhosttyExports; + readonly layout: TypeLayout; + private freeTableSlots: number[] = []; + + private constructor(exports: GhosttyExports, layout: TypeLayout) { + this.exports = exports; + this.layout = layout; + } + + /** + * Instantiate from wasm bytes or a precompiled module. Callers own fetching + * the artifact (vite: `new URL("@clo/terminal/ghostty-vt.wasm", import.meta.url)`; + * node: `fs.readFileSync`). Kept as a parameter so the package works in any + * bundler and in tests without a network seam. + */ + static async load(source: BufferSource | WebAssembly.Module): Promise { + const imports = { + env: { + log: (ptr: number, len: number) => { + const ex = instance.exports as unknown as GhosttyExports; + const text = decoder.decode(new Uint8Array(ex.memory.buffer, ptr, len)); + console.debug("[ghostty-vt]", text); + }, + }, + }; + let instance: WebAssembly.Instance; + if (source instanceof WebAssembly.Module) { + instance = await WebAssembly.instantiate(source, imports); + } else { + instance = (await WebAssembly.instantiate(source, imports)).instance; + } + const ex = instance.exports as unknown as GhosttyExports; + const jsonPtr = (ex.ghostty_type_json as Fn)(); + const raw = new Uint8Array(ex.memory.buffer, jsonPtr); + const layout = JSON.parse(decoder.decode(raw.subarray(0, raw.indexOf(0)))) as TypeLayout; + return new GhosttyModule(ex, layout); + } + + /** Fetch and instantiate a wasm artifact, rejecting non-success HTTP responses. */ + static async fetch(source: RequestInfo | URL, init?: RequestInit): Promise { + const response = await globalThis.fetch(source, init); + if (!response.ok) { + throw new Error(`ghostty wasm failed to load (${response.status})`); + } + return GhosttyModule.load(await response.arrayBuffer()); + } + + fn(name: string): Fn { + const f = this.exports[name]; + if (typeof f !== "function") throw new Error(`missing wasm export: ${name}`); + return f; + } + + view(): DataView { + return new DataView(this.exports.memory.buffer); + } + + bytes(ptr: number, len: number): Uint8Array { + return new Uint8Array(this.exports.memory.buffer, ptr, len); + } + + /** Copy of wasm memory — safe to hold across calls. */ + copyBytes(ptr: number, len: number): Uint8Array { + return this.bytes(ptr, len).slice(); + } + + readCString(ptr: number, len: number): string { + return decoder.decode(this.bytes(ptr, len)); + } + + allocBytes(data: Uint8Array): { ptr: number; len: number; free: () => void } { + const allocation = this.allocScratch(data.length); + try { + this.bytes(allocation.ptr, data.length).set(data); + } catch (error) { + allocation.free(); + throw error; + } + return { ptr: allocation.ptr, len: data.length, free: allocation.free }; + } + + allocScratch(len: number): { ptr: number; free: () => void } { + if (!Number.isInteger(len) || len < 0 || len > 0xffff_ffff) { + throw new RangeError(`ghostty wasm allocation length must be a uint32: ${len}`); + } + if (len === 0) return { ptr: 0, free: () => {} }; + const ptr = this.fn("ghostty_wasm_alloc_u8_array")(len); + if (ptr === 0) throw new Error("ghostty wasm alloc failed"); + let freed = false; + return { + ptr, + free: () => { + if (freed) return; + freed = true; + this.fn("ghostty_wasm_free_u8_array")(ptr, len); + }, + }; + } + + encodeString(text: string) { + return this.allocBytes(encoder.encode(text)); + } + + /** + * Zeroed struct allocation with the sized-struct ABI convention applied: + * if the struct has a `size` field, it is pre-set to the struct's size. + */ + allocStruct(name: string): { ptr: number; size: number; free: () => void } { + const info = this.layout[name]; + if (!info) throw new Error(`unknown struct in type layout: ${name}`); + const scratch = this.allocScratch(info.size); + try { + this.bytes(scratch.ptr, info.size).fill(0); + const sizeField = info.fields["size"]; + if (sizeField) this.view().setUint32(scratch.ptr + sizeField.offset, info.size, true); + return { ptr: scratch.ptr, size: info.size, free: scratch.free }; + } catch (error) { + scratch.free(); + throw error; + } + } + + field(struct: string, field: string): TypeField { + const f = this.layout[struct]?.fields[field]; + if (!f) throw new Error(`unknown field ${struct}.${field}`); + return f; + } + + /** Call an out-param constructor: fn(allocator=0/default, outPtr, ...args) -> handle. */ + create(name: string, ...args: number[]): number { + const out = this.fn("ghostty_wasm_alloc_opaque")(); + if (out === 0) throw new Error("ghostty wasm alloc failed"); + try { + const result = this.fn(name)(0, out, ...args); + if (result !== 0) throw new Error(`${name} failed: ${result}`); + const handle = this.view().getUint32(out, true); + if (handle === 0) throw new Error(`${name} returned a null handle`); + return handle; + } finally { + this.fn("ghostty_wasm_free_opaque")(out); + } + } + + /** + * Register a JS callback as a wasm function-table entry (a C function + * pointer). The disposable slot is reused after release. libghostty-vt calls + * effects synchronously during vt_write; the JS function receives raw i32 args. + */ + trampoline( + paramCount: number, + jsFn: (...args: number[]) => void | number, + resultCount = 0, + ): WasmTrampoline { + const mod = new WebAssembly.Module(trampolineBytes(paramCount, resultCount) as BufferSource); + const inst = new WebAssembly.Instance(mod, { e: { cb: jsFn } }); + const table = this.exports.__indirect_function_table; + const reused = this.freeTableSlots.pop(); + const index = reused ?? table.grow(1); + try { + table.set(index, inst.exports["f"]); + } catch (error) { + this.freeTableSlots.push(index); + throw error; + } + let freed = false; + return { + index, + free: () => { + if (freed) return; + freed = true; + table.set(index, null); + this.freeTableSlots.push(index); + }, + }; + } +} diff --git a/packages/terminal/src/ghostty/terminal.ts b/packages/terminal/src/ghostty/terminal.ts new file mode 100644 index 0000000000000000000000000000000000000000..5278f19d1de701b5aa8ce5fa93ff069eb475f905 --- /dev/null +++ b/packages/terminal/src/ghostty/terminal.ts @@ -0,0 +1,2244 @@ +// The headless terminal: libghostty-vt bound to a bytes-in / cells-out surface. +// Wire realities this layer absorbs: deltas arrive as JS strings that may split +// escape sequences AND surrogate pairs at arbitrary boundaries (host windows are +// UTF-16-code-unit sized), and a replayed scrollback head may open mid-sequence. +// The parser is streaming (split sequences carry across writes); lone surrogates +// at write boundaries are held back and re-joined here (`pendingSurrogate`). + +import { domCodeToGhosttyKey, domEventMods } from "../keys.ts"; +import { ShellCommands, type CommandAnchor, type ShellCommand } from "../shell/commands.ts"; +import { parseShellMark, type ShellMark } from "../shell/marks.ts"; +import { OscScanner } from "../shell/osc.ts"; +import { + GhosttyCellContentTag, + GhosttyCellData, + GhosttyCellSemanticContent, + GhosttyCellWide, + GhosttyClipboardLocation, + GhosttyClipboardWriteResult, + GhosttyKeyAction, + GhosttyMouseAction, + GhosttyMouseButton, + GhosttyMouseEncoderOption, + GhosttyMouseTrackingMode, + GhosttyPointTag, + GhosttyRowData, + GhosttyRenderStateData, + GhosttyRenderStateDirty, + GhosttyRenderStateOption, + GhosttyRenderStateRowCellsData, + GhosttyRenderStateRowData, + GhosttyRenderStateRowOption, + GhosttyResult, + GhosttyStyleColorTag, + GhosttyRowSemanticPrompt, + GhosttyTerminalScrollViewportTag, + GhosttyTerminalData, + GhosttyTerminalScreen, + GhosttyTerminalOption, +} from "./constants.ts"; +import { GhosttyModule, type WasmTrampoline } from "./module.ts"; + +export interface TerminalOptions { + cols: number; + rows: number; + /** Scrollback limit in BYTES of page memory (libghostty semantics), not lines. */ + maxScrollbackBytes?: number; + /** + * Watch the byte stream for OSC 133/633 and maintain `terminal.shell`. + * Costs one JS pass over incoming bytes (ESC-skipping, so cheap on ordinary + * output) plus a tracked grid ref per command boundary. Default true. + */ + shellIntegration?: boolean; + /** Retained commands; anchors beyond this are freed. Default 512. */ + commandLimit?: number; +} + +export interface TerminalEvents { + /** Query responses (DA/DSR/…) the host must forward to the pty as input. */ + onOutput?: (bytes: Uint8Array) => void; + onBell?: () => void; + onTitleChanged?: (title: string) => void; + onPwdChanged?: (pwd: string) => void; + /** Every recognized shell-integration mark, before the command model folds it. */ + onShellMark?: (mark: ShellMark) => void; + /** A command was submitted (OSC 133/633 `C`). */ + onCommandStart?: (command: ShellCommand) => void; + /** A command finished (`D`), or was closed out by the next prompt. */ + onCommandEnd?: (command: ShellCommand) => void; + /** + * A program asked to write the clipboard (OSC 52 / iTerm2 OSC 1337 Copy). + * ***Denied unless this handler returns true.*** Silent clipboard writes from + * whatever is running in a terminal — including something on the far end of + * an ssh session — are a real hazard, so the package never writes the + * clipboard itself and never opts you in. Reads (`OSC 52 ?`) are refused by + * the core and never surface here. + */ + onClipboardWrite?: (write: ClipboardWrite) => boolean | void; +} + +export interface ClipboardWrite { + /** Which selection the program targeted. */ + location: "standard" | "selection" | "primary"; + /** `text/plain` content, or "" when the program sent none. */ + text: string; + /** Every representation offered, in order; commit atomically or not at all. */ + entries: Array<{ mime: string; data: string }>; + /** True when the program asked to CLEAR the destination (no content). */ + clear: boolean; +} + +export interface CellSnapshot { + /** Grapheme text; "" for an empty cell. */ + text: string; + /** 1 or 2 columns. Spacer heads own one column; spacer tails are omitted. */ + width: number; + /** A soft-wrap spacer head owns a blank cell but contributes no grapheme. */ + spacer: "none" | "head"; + /** DECSCA protection; protected cells survive selective erase. */ + protected: boolean; + /** OSC 133 semantic content. Output is Ghostty's zero/default value. */ + semantic: "output" | "input" | "prompt"; + /** Raw OSC 8 presence; true with a null URI only when URI bytes are malformed. */ + hasOsc8: boolean; + /** Exact OSC 8 URI, or null when absent/malformed; use `hasOsc8` to distinguish. */ + osc8Uri: string | null; + /** Resolved RGB as 0xRRGGBB, or -1 for "default". */ + fg: number; + bg: number; + /** Resolved underline RGB as 0xRRGGBB, or -1 for the current foreground. */ + underlineColor: number; + bold: boolean; + italic: boolean; + faint: boolean; + blink: boolean; + inverse: boolean; + invisible: boolean; + strikethrough: boolean; + overline: boolean; + /** GhosttyStyleUnderline value; 0 = none. */ + underline: number; +} + +/** True only when removing this trailing cell loses no canonical presentation state. */ +export function isCanonicalDefaultCell(cell: CellSnapshot): boolean { + return ( + cell.text === "" && + cell.width === 1 && + cell.spacer === "none" && + !cell.protected && + cell.semantic === "output" && + !cell.hasOsc8 && + cell.osc8Uri === null && + cell.fg === -1 && + cell.bg === -1 && + cell.underlineColor === -1 && + !cell.bold && + !cell.italic && + !cell.faint && + !cell.blink && + !cell.inverse && + !cell.invisible && + !cell.strikethrough && + !cell.overline && + cell.underline === 0 + ); +} + +export function trimCanonicalDefaultTail(cells: CellSnapshot[]): void { + let end = cells.length; + while (end > 0 && isCanonicalDefaultCell(cells[end - 1]!)) end--; + cells.length = end; +} + +export interface RowSnapshot { + index: number; + wrap: boolean; + wrapContinuation: boolean; + semanticPrompt: "none" | "prompt" | "continuation"; + hyperlink: boolean; + cells: CellSnapshot[]; +} + +type RowMetadata = Omit; + +export interface CursorSnapshot { + x: number; + y: number; + style: "bar" | "block" | "underline" | "hollow"; + blinking: boolean; + wide: boolean; + /** Explicit OSC 12 RGB as 0xRRGGBB, or -1 for the CSS theme fallback. */ + color: number; +} + +export interface FrameSnapshot { + cols: number; + rows: number; + dirty: "none" | "partial" | "full"; + /** Only rows that need repainting (all rows when dirty === "full" or `full` was requested). */ + dirtyRows: RowSnapshot[]; + cursor: CursorSnapshot | null; + /** The program's OSC 10/11 override as 0xRRGGBB, or -1 when the theme decides. */ + foreground: number; + background: number; +} + +/** Exclusive consumer of dirty snapshots; dispose it before attaching another renderer. */ +export interface FrameReader { + snapshot(options?: { full?: boolean }): FrameSnapshot; + dispose(): void; +} + +export interface Scrollbar { + total: number; + offset: number; + len: number; +} + +const CURSOR_STYLES = ["bar", "block", "underline", "hollow"] as const; +const encoder = new TextEncoder(); +// URI identity must not inherit TextDecoder's default leading-BOM removal or +// replacement-character collisions for malformed UTF-8. +const osc8Decoder = new TextDecoder("utf-8", { fatal: true, ignoreBOM: true }); + +const CLIPBOARD_LOCATIONS: Record = { + [GhosttyClipboardLocation.GHOSTTY_CLIPBOARD_LOCATION_STANDARD]: "standard", + [GhosttyClipboardLocation.GHOSTTY_CLIPBOARD_LOCATION_SELECTION]: "selection", + [GhosttyClipboardLocation.GHOSTTY_CLIPBOARD_LOCATION_PRIMARY]: "primary", +}; + +const MOUSE_ACTIONS = { + press: GhosttyMouseAction.GHOSTTY_MOUSE_ACTION_PRESS, + release: GhosttyMouseAction.GHOSTTY_MOUSE_ACTION_RELEASE, + motion: GhosttyMouseAction.GHOSTTY_MOUSE_ACTION_MOTION, +} as const; + +/** + * DOM `MouseEvent.button` uses 0/1/2 = left/middle/right; the VT numbering + * (and libghostty's) puts right before middle. Wheel arrives as buttons 4-7, + * which terminals report as presses of the corresponding button. + */ +function domButton(button: number): number | null { + switch (button) { + case 0: + return GhosttyMouseButton.GHOSTTY_MOUSE_BUTTON_LEFT; + case 1: + return GhosttyMouseButton.GHOSTTY_MOUSE_BUTTON_MIDDLE; + case 2: + return GhosttyMouseButton.GHOSTTY_MOUSE_BUTTON_RIGHT; + case 3: + return GhosttyMouseButton.GHOSTTY_MOUSE_BUTTON_FOUR; + case 4: + return GhosttyMouseButton.GHOSTTY_MOUSE_BUTTON_FIVE; + case 5: + return GhosttyMouseButton.GHOSTTY_MOUSE_BUTTON_SIX; + case 6: + return GhosttyMouseButton.GHOSTTY_MOUSE_BUTTON_SEVEN; + default: + return null; + } +} + +const INITIAL_GRAPHEME_CAPACITY = 64; +const INITIAL_HYPERLINK_URI_CAPACITY = 256; +const MAX_RETAINED_INPUT_CAPACITY = 65_536; +const SYNCHRONIZED_OUTPUT_MODE = 2026; +const UINT16_MAX = 0xffff; +const UINT32_MAX = 0xffff_ffff; +const INT32_MIN = -0x8000_0000; +const INT32_MAX = 0x7fff_ffff; +const FLOAT32_MAX = 3.4028234663852886e38; + +interface HyperlinkScratch { + point: ReturnType; + ref: ReturnType; + outLen: ReturnType; + uri: ReturnType; + uriCapacity: number; +} + +function codepointsToString(view: DataView, ptr: number, count: number): string { + const pieces: string[] = []; + for (let start = 0; start < count; start += 1024) { + const codepoints: number[] = []; + const end = Math.min(start + 1024, count); + for (let i = start; i < end; i++) codepoints.push(view.getUint32(ptr + i * 4, true)); + pieces.push(String.fromCodePoint(...codepoints)); + } + return pieces.join(""); +} + +function assertGhosttySuccess(result: number, operation: string): void { + if (result !== GhosttyResult.GHOSTTY_SUCCESS) throw new Error(`${operation} failed: ${result}`); +} + +function integerInRange(name: string, value: number, min: number, max: number): number { + if (!Number.isInteger(value) || value < min || value > max) { + throw new RangeError(`${name} must be an integer from ${min} through ${max}: ${value}`); + } + return value; +} + +/** + * A libghostty tracked grid ref behind the pure `CommandAnchor` seam. The + * handle stays valid after the terminal is freed (it then reports no value), + * so double-free is the only real hazard — `free()` is idempotent here. + */ +class TrackedAnchor implements CommandAnchor { + private mod: GhosttyModule; + private handle: number; + + constructor(mod: GhosttyModule, handle: number) { + this.mod = mod; + this.handle = handle; + } + + point(): { x: number; y: number } | null { + return this.read(GhosttyPointTag.GHOSTTY_POINT_TAG_VIEWPORT); + } + + screenPoint(): { x: number; y: number } | null { + return this.read(GhosttyPointTag.GHOSTTY_POINT_TAG_SCREEN); + } + + free(): void { + if (this.handle === 0) return; + this.mod.fn("ghostty_tracked_grid_ref_free")(this.handle); + this.handle = 0; + } + + private read(tag: number): { x: number; y: number } | null { + if (this.handle === 0) return null; + const coord = this.mod.allocStruct("GhosttyPointCoordinate"); + const result = this.mod.fn("ghostty_tracked_grid_ref_point")(this.handle, tag, coord.ptr); + let out: { x: number; y: number } | null = null; + if (result === GhosttyResult.GHOSTTY_SUCCESS) { + const view = this.mod.view(); + out = { + x: view.getUint16(coord.ptr + this.mod.field("GhosttyPointCoordinate", "x").offset, true), + y: view.getUint32(coord.ptr + this.mod.field("GhosttyPointCoordinate", "y").offset, true), + }; + } + coord.free(); + return out; + } +} + +export class Terminal { + readonly mod: GhosttyModule; + /** Shell-integration command model; empty unless the shell is instrumented. */ + readonly shell: ShellCommands; + private scanner: OscScanner | null; + private term = 0; + private renderState = 0; + private rowIter = 0; + private rowCells = 0; + private rowMetadata: RowMetadata[] = []; + private hyperlinkScratch: HyperlinkScratch | null = null; + private asciiRowScratch: { ptr: number; capacity: number; free: () => void } | null = null; + private inputScratch: { ptr: number; capacity: number; free: () => void } | null = null; + private keyEncoder = 0; + private keyEvent = 0; + private mouseEncoder = 0; + private mouseEvent = 0; + private modeValue = 0; + private colsNow: number; + private rowsNow: number; + private viewportRevisionNow = 0; + private pendingSurrogate = ""; + private events: TerminalEvents; + private disposed = false; + private disposePending = false; + private writing = false; + private callbackErrors: unknown[] | null = null; + private trampolines: WasmTrampoline[] = []; + private frameReaderOwner: object | null = null; + + constructor(mod: GhosttyModule, options: TerminalOptions, events: TerminalEvents = {}) { + const cols = integerInRange("cols", options.cols, 1, UINT16_MAX); + const rows = integerInRange("rows", options.rows, 1, UINT16_MAX); + const maxScrollbackBytes = integerInRange( + "maxScrollbackBytes", + options.maxScrollbackBytes ?? 4_194_304, + 0, + UINT32_MAX, + ); + const commandLimit = + options.commandLimit === undefined + ? undefined + : integerInRange("commandLimit", options.commandLimit, 0, Number.MAX_SAFE_INTEGER); + this.mod = mod; + this.events = events; + this.colsNow = cols; + this.rowsNow = rows; + this.scanner = options.shellIntegration === false ? null : new OscScanner(); + this.shell = new ShellCommands({ + anchor: () => this.anchorAtCursor(), + readCommandLine: (from, to) => this.textBetween(from, to), + ...(commandLimit !== undefined ? { limit: commandLimit } : {}), + onCommandStart: (command) => + this.invokeCallback(() => this.events.onCommandStart?.(command), undefined), + onCommandEnd: (command) => + this.invokeCallback(() => this.events.onCommandEnd?.(command), undefined), + }); + + try { + const opts = mod.allocStruct("GhosttyTerminalOptions"); + try { + const f = (name: string) => mod.field("GhosttyTerminalOptions", name); + mod.view().setUint16(opts.ptr + f("cols").offset, cols, true); + mod.view().setUint16(opts.ptr + f("rows").offset, rows, true); + mod.view().setUint32(opts.ptr + f("max_scrollback").offset, maxScrollbackBytes, true); + this.term = mod.create("ghostty_terminal_new", opts.ptr); + } finally { + opts.free(); + } + + this.renderState = mod.create("ghostty_render_state_new"); + this.rowIter = mod.create("ghostty_render_state_row_iterator_new"); + this.rowCells = mod.create("ghostty_render_state_row_cells_new"); + this.keyEncoder = mod.create("ghostty_key_encoder_new"); + this.keyEvent = mod.create("ghostty_key_event_new"); + this.mouseEncoder = mod.create("ghostty_mouse_encoder_new"); + this.mouseEvent = mod.create("ghostty_mouse_event_new"); + this.modeValue = mod.fn("ghostty_wasm_alloc_u8")(); + if (this.modeValue === 0) throw new Error("ghostty wasm alloc failed"); + + // ***Verified inert at the pinned vendor commit.*** Keep the renderer's + // cell dedup until a vendor bump proves this encoder option effective. + const trackLastCell = mod.fn("ghostty_wasm_alloc_u8")(); + if (trackLastCell === 0) throw new Error("ghostty wasm alloc failed"); + try { + mod.view().setUint8(trackLastCell, 1); + mod.fn("ghostty_mouse_encoder_setopt")( + this.mouseEncoder, + GhosttyMouseEncoderOption.GHOSTTY_MOUSE_ENCODER_OPT_TRACK_LAST_CELL, + trackLastCell, + ); + } finally { + mod.fn("ghostty_wasm_free_u8")(trackLastCell); + } + + const setEffect = (option: number, trampoline: WasmTrampoline) => { + this.trampolines.push(trampoline); + assertGhosttySuccess( + mod.fn("ghostty_terminal_set")(this.term, option, trampoline.index), + "terminal_set(effect)", + ); + }; + setEffect( + GhosttyTerminalOption.GHOSTTY_TERMINAL_OPT_WRITE_PTY, + mod.trampoline(4, (_t, _u, data, len) => + this.invokeCallback(() => this.events.onOutput?.(mod.copyBytes(data, len)), undefined), + ), + ); + setEffect( + GhosttyTerminalOption.GHOSTTY_TERMINAL_OPT_BELL, + mod.trampoline(2, () => this.invokeCallback(() => this.events.onBell?.(), undefined)), + ); + setEffect( + GhosttyTerminalOption.GHOSTTY_TERMINAL_OPT_TITLE_CHANGED, + mod.trampoline(2, () => + this.invokeCallback(() => { + const title = this.title(); + if (title !== null) this.events.onTitleChanged?.(title); + }, undefined), + ), + ); + setEffect( + GhosttyTerminalOption.GHOSTTY_TERMINAL_OPT_PWD_CHANGED, + mod.trampoline(2, () => + this.invokeCallback(() => { + const pwd = this.pwd(); + if (pwd !== null) this.events.onPwdChanged?.(pwd); + }, undefined), + ), + ); + setEffect( + GhosttyTerminalOption.GHOSTTY_TERMINAL_OPT_CLIPBOARD_WRITE, + mod.trampoline( + 3, + (_t, _u, writePtr) => + this.invokeCallback( + () => this.onClipboardWrite(writePtr), + GhosttyClipboardWriteResult.GHOSTTY_CLIPBOARD_WRITE_RESULT_IO_ERROR, + ), + 1, + ), + ); + + // Grapheme clustering (mode 2027) matches the Ghostty app. + assertGhosttySuccess( + mod.fn("ghostty_terminal_mode_set")(this.term, 2027, 1), + "terminal_mode_set(grapheme clustering)", + ); + } catch (error) { + this.releaseWasmResources(); + this.shell.dispose(); + this.disposed = true; + throw error; + } + } + + get cols(): number { + return this.colsNow; + } + + get rows(): number { + return this.rowsNow; + } + + /** Changes when public geometry or scroll methods can invalidate a view's projection. */ + get viewportRevision(): number { + return this.viewportRevisionNow; + } + + /** DEC mode 2026 suppresses presentation until the application closes the update. */ + get synchronizedOutput(): boolean { + this.assertLive(); + this.mod.view().setUint8(this.modeValue, 0); + assertGhosttySuccess( + this.mod.fn("ghostty_terminal_mode_get")(this.term, SYNCHRONIZED_OUTPUT_MODE, this.modeValue), + "terminal_mode_get(synchronized_output)", + ); + return this.mod.view().getUint8(this.modeValue) !== 0; + } + + /** Release an unterminated synchronized update so untrusted output cannot freeze presentation. */ + resetSynchronizedOutput(): void { + this.assertLive(); + assertGhosttySuccess( + this.mod.fn("ghostty_terminal_mode_set")(this.term, SYNCHRONIZED_OUTPUT_MODE, 0), + "terminal_mode_set(synchronized_output)", + ); + } + + /** Feed pty output. Strings may split surrogate pairs at chunk boundaries. */ + write(data: string | Uint8Array): void { + this.assertLive(); + if (this.writing) throw new Error("terminal writes are not reentrant"); + this.writing = true; + const callbackErrors: unknown[] = []; + this.callbackErrors = callbackErrors; + try { + let bytes: Uint8Array; + if (typeof data === "string") { + let text = this.pendingSurrogate + data; + this.pendingSurrogate = ""; + const last = text.charCodeAt(text.length - 1); + if (last >= 0xd800 && last <= 0xdbff) { + this.pendingSurrogate = text.slice(-1); + text = text.slice(0, -1); + } + if (text.length === 0) return; + bytes = encoder.encode(text); + } else { + if (this.pendingSurrogate === "") bytes = data; + else { + const prefix = encoder.encode(this.pendingSurrogate); + this.pendingSurrogate = ""; + bytes = new Uint8Array(prefix.length + data.length); + bytes.set(prefix); + bytes.set(data, prefix.length); + } + } + if (bytes.length === 0) return; + this.processBytes(bytes); + if (callbackErrors.length === 1) throw callbackErrors[0]; + if (callbackErrors.length > 1) { + throw new AggregateError(callbackErrors, "terminal callbacks failed"); + } + } finally { + this.callbackErrors = null; + this.writing = false; + if (this.disposePending) { + this.disposePending = false; + this.free(); + } + } + } + + private processBytes(bytes: Uint8Array): void { + const scanner = this.scanner; + if (scanner === null) { + this.feed(bytes); + return; + } + // Marks are anchored to the cursor, so each terminator is fed before its + // anchor is taken. Callback failures are retained until the whole chunk lands. + const spans = scanner.scan(bytes); + if (spans.length === 0) { + this.feed(bytes); + return; + } + let from = 0; + for (const span of spans) { + this.feed(bytes.subarray(from, span.end)); + from = span.end; + const mark = parseShellMark(span.payload); + if (mark === null) continue; + this.invokeCallback(() => this.events.onShellMark?.(mark), undefined); + this.shell.handle(mark); + } + if (from < bytes.length) this.feed(bytes.subarray(from)); + } + + private invokeCallback(callback: () => T, fallback: T): T { + try { + return callback(); + } catch (error) { + if (this.callbackErrors === null) throw error; + this.callbackErrors.push(error); + return fallback; + } + } + + private feed(bytes: Uint8Array): void { + if (bytes.length === 0) return; + if (bytes.length <= MAX_RETAINED_INPUT_CAPACITY) { + if (this.inputScratch === null || this.inputScratch.capacity < bytes.length) { + const capacity = 2 ** Math.ceil(Math.log2(bytes.length)); + const next = this.mod.allocScratch(capacity); + this.inputScratch?.free(); + this.inputScratch = { ...next, capacity }; + } + this.mod.bytes(this.inputScratch.ptr, bytes.length).set(bytes); + this.mod.fn("ghostty_terminal_vt_write")(this.term, this.inputScratch.ptr, bytes.length); + return; + } + const buf = this.mod.allocBytes(bytes); + try { + this.mod.fn("ghostty_terminal_vt_write")(this.term, buf.ptr, buf.len); + } finally { + buf.free(); + } + } + + /** + * Anchor a point so it survives scrolling, scrollback pruning and reflow + * (libghostty tracked grid ref). Each live anchor adds bookkeeping to every + * terminal mutation — keep them few and free them. + */ + trackPoint( + x: number, + y: number, + space: "active" | "viewport" | "screen" = "active", + ): CommandAnchor | null { + this.assertLive(); + integerInRange("x", x, 0, UINT16_MAX); + integerInRange("y", y, 0, UINT32_MAX); + const mod = this.mod; + const tag = + space === "viewport" + ? GhosttyPointTag.GHOSTTY_POINT_TAG_VIEWPORT + : space === "screen" + ? GhosttyPointTag.GHOSTTY_POINT_TAG_SCREEN + : GhosttyPointTag.GHOSTTY_POINT_TAG_ACTIVE; + const point = this.allocPoint(tag, x, y); + try { + const out = mod.allocScratch(4); + try { + const result = mod.fn("ghostty_terminal_grid_ref_track")(this.term, point.ptr, out.ptr); + const handle = mod.view().getUint32(out.ptr, true); + if (result !== GhosttyResult.GHOSTTY_SUCCESS || handle === 0) return null; + return new TrackedAnchor(mod, handle); + } finally { + out.free(); + } + } finally { + point.free(); + } + } + + private anchorAtCursor(): CommandAnchor | null { + const scratch = this.mod.allocScratch(8); + try { + const read = (what: number) => { + this.mod.view().setUint32(scratch.ptr, 0, true); + const result = this.mod.fn("ghostty_terminal_get")(this.term, what, scratch.ptr); + return result === GhosttyResult.GHOSTTY_SUCCESS + ? this.mod.view().getUint16(scratch.ptr, true) + : -1; + }; + const x = read(GhosttyTerminalData.GHOSTTY_TERMINAL_DATA_CURSOR_X); + const y = read(GhosttyTerminalData.GHOSTTY_TERMINAL_DATA_CURSOR_Y); + if (x < 0 || y < 0) return null; + return this.trackPoint(x, y, "active"); + } finally { + scratch.free(); + } + } + + private allocPoint(tag: number, x: number, y: number) { + const point = this.mod.allocStruct("GhosttyPoint"); + try { + const f = (name: string) => this.mod.field("GhosttyPoint", name).offset; + const coord = point.ptr + f("value"); + this.mod.view().setUint32(point.ptr + f("tag"), tag, true); + this.mod + .view() + .setUint16(coord + this.mod.field("GhosttyPointCoordinate", "x").offset, x, true); + this.mod + .view() + .setUint32(coord + this.mod.field("GhosttyPointCoordinate", "y").offset, y, true); + return point; + } catch (error) { + point.free(); + throw error; + } + } + + /** + * Plain text between two anchors (`from` inclusive, `to` exclusive), reading + * the grid directly. Soft-wrapped rows are joined without a newline. Returns + * null when either anchor has been discarded. + * + * This is the command-line fallback for shells that emit OSC 133 without + * VS Code's `633;E`, and the basis for copy-output. + */ + textBetween(from: CommandAnchor, to: CommandAnchor): string | null { + this.assertLive(); + const start = from.screenPoint(); + const end = to.screenPoint(); + if (start === null || end === null) return null; + if (end.y < start.y || (end.y === start.y && end.x <= start.x)) return ""; + + const mod = this.mod; + const allocations: Array<{ free(): void }> = []; + const own = (allocation: T): T => { + allocations.push(allocation); + return allocation; + }; + let text = ""; + try { + const ref = own(mod.allocStruct("GhosttyGridRef")); + const xOffset = mod.field("GhosttyGridRef", "x").offset; + let graphemeCapacity = INITIAL_GRAPHEME_CAPACITY; + let graphemes = own(mod.allocScratch(graphemeCapacity * 4)); + const outLen = own(mod.allocScratch(4)); + const cellOut = own(mod.allocScratch(8)); + // GhosttyRow, like GhosttyCell, is a packed u64 value rather than a pointer. + const rowOut = own(mod.allocScratch(8)); + const scratch = own(mod.allocScratch(8)); + for (let y = start.y; y <= end.y; y++) { + const point = this.allocPoint(GhosttyPointTag.GHOSTTY_POINT_TAG_SCREEN, 0, y); + let resolved: number; + try { + resolved = mod.fn("ghostty_terminal_grid_ref")(this.term, point.ptr, ref.ptr); + } finally { + point.free(); + } + if (resolved !== GhosttyResult.GHOSTTY_SUCCESS) break; + + const firstX = y === start.y ? start.x : 0; + const lastX = y === end.y ? end.x : this.colsNow; + // The end anchor usually sits at column 0 of the row *after* the last + // line of content (the cursor after a newline). That row contributes + // nothing, and emitting it would add a phantom trailing line. + if (lastX <= firstX) break; + let line = ""; + for (let x = firstX; x < lastX; x++) { + // The ref is a resolved position in one page node; x is the column + // within it, so a row is walked by bumping x rather than re-resolving + // (screen-tag lookups can traverse the whole page list). + mod.view().setUint16(ref.ptr + xOffset, x, true); + mod.view().setBigUint64(cellOut.ptr, 0n, true); + if ( + mod.fn("ghostty_grid_ref_cell")(ref.ptr, cellOut.ptr) === GhosttyResult.GHOSTTY_SUCCESS + ) { + const raw = mod.view().getBigUint64(cellOut.ptr, true); + mod.view().setUint32(scratch.ptr, 0, true); + mod.fn("ghostty_cell_get")(raw, GhosttyCellData.GHOSTTY_CELL_DATA_WIDE, scratch.ptr); + const wide = mod.view().getUint32(scratch.ptr, true); + // Spacers carry no text of their own; emitting them would double + // the space after every wide glyph. + if ( + wide === GhosttyCellWide.GHOSTTY_CELL_WIDE_SPACER_TAIL || + wide === GhosttyCellWide.GHOSTTY_CELL_WIDE_SPACER_HEAD + ) { + continue; + } + } + mod.view().setUint32(outLen.ptr, 0, true); + let g = mod.fn("ghostty_grid_ref_graphemes")( + ref.ptr, + graphemes.ptr, + graphemeCapacity, + outLen.ptr, + ); + if (g === GhosttyResult.GHOSTTY_OUT_OF_SPACE) { + const required = mod.view().getUint32(outLen.ptr, true); + const nextCapacity = 2 ** Math.ceil(Math.log2(required)); + const next = own(mod.allocScratch(nextCapacity * 4)); + graphemes.free(); + graphemeCapacity = nextCapacity; + graphemes = next; + g = mod.fn("ghostty_grid_ref_graphemes")( + ref.ptr, + graphemes.ptr, + graphemeCapacity, + outLen.ptr, + ); + } + if (g !== GhosttyResult.GHOSTTY_SUCCESS) continue; + const count = mod.view().getUint32(outLen.ptr, true); + if (count === 0) { + line += " "; + continue; + } + line += codepointsToString(mod.view(), graphemes.ptr, count); + } + + // Soft-wrapped rows continue the same logical line. + mod.view().setUint16(ref.ptr + xOffset, 0, true); + let wrapped = false; + mod.view().setBigUint64(rowOut.ptr, 0n, true); + if (mod.fn("ghostty_grid_ref_row")(ref.ptr, rowOut.ptr) === GhosttyResult.GHOSTTY_SUCCESS) { + const row = mod.view().getBigUint64(rowOut.ptr, true); + mod.view().setUint8(scratch.ptr, 0); + if ( + mod.fn("ghostty_row_get")(row, GhosttyRowData.GHOSTTY_ROW_DATA_WRAP, scratch.ptr) === + GhosttyResult.GHOSTTY_SUCCESS + ) { + wrapped = mod.view().getUint8(scratch.ptr) !== 0; + } + } + text += wrapped ? line : `${line.replace(/\s+$/, "")}\n`; + } + } finally { + for (let index = allocations.length - 1; index >= 0; index--) allocations[index]!.free(); + } + return text.replace(/\n$/, ""); + } + + /** The output a finished command produced, or null if it can't be recovered. */ + outputText(command: ShellCommand): string | null { + if (command.outputStart === null || command.outputEnd === null) return null; + return this.textBetween(command.outputStart, command.outputEnd); + } + + resize(cols: number, rows: number): void { + this.assertLive(); + integerInRange("cols", cols, 1, UINT16_MAX); + integerInRange("rows", rows, 1, UINT16_MAX); + if (cols === this.colsNow && rows === this.rowsNow) return; + const result = this.mod.fn("ghostty_terminal_resize")(this.term, cols, rows); + if (result !== GhosttyResult.GHOSTTY_SUCCESS) throw new Error(`resize failed: ${result}`); + this.colsNow = cols; + this.rowsNow = rows; + this.viewportRevisionNow++; + } + + scrollDelta(rows: number): void { + this.scroll(GhosttyTerminalScrollViewportTag.GHOSTTY_SCROLL_VIEWPORT_DELTA, rows); + } + + scrollToBottom(): void { + this.scroll(GhosttyTerminalScrollViewportTag.GHOSTTY_SCROLL_VIEWPORT_BOTTOM, 0); + } + + scrollToTop(): void { + this.scroll(GhosttyTerminalScrollViewportTag.GHOSTTY_SCROLL_VIEWPORT_TOP, 0); + } + + scrollToRow(row: number): void { + this.scroll(GhosttyTerminalScrollViewportTag.GHOSTTY_SCROLL_VIEWPORT_ROW, row); + } + + private scroll(tag: number, value: number): void { + this.assertLive(); + if (tag === GhosttyTerminalScrollViewportTag.GHOSTTY_SCROLL_VIEWPORT_DELTA) { + integerInRange("scroll delta", value, INT32_MIN, INT32_MAX); + } else if (tag === GhosttyTerminalScrollViewportTag.GHOSTTY_SCROLL_VIEWPORT_ROW) { + integerInRange("scroll row", value, 0, UINT32_MAX); + } + const s = this.mod.allocStruct("GhosttyTerminalScrollViewport"); + const tagField = this.mod.field("GhosttyTerminalScrollViewport", "tag"); + const valueField = this.mod.field("GhosttyTerminalScrollViewport", "value"); + this.mod.view().setUint32(s.ptr + tagField.offset, tag, true); + if (tag === GhosttyTerminalScrollViewportTag.GHOSTTY_SCROLL_VIEWPORT_DELTA) { + this.mod.view().setInt32(s.ptr + valueField.offset, value, true); + } else { + this.mod.view().setUint32(s.ptr + valueField.offset, value, true); + } + this.mod.fn("ghostty_terminal_scroll_viewport")(this.term, s.ptr); + s.free(); + this.viewportRevisionNow++; + } + + /** + * The theme's own colors, so the core can answer a program's `OSC 10/11/12`. + * + * ***This is a report, not a paint instruction.*** Painting stays + * CSS-custom-property-only: a snapshot color is the program's OSC OVERRIDE or + * `-1`, and setting a default here never makes one appear. What it buys is the + * query — codex asks the background before it draws, and a terminal that + * cannot answer gets a composer with no background at all rather than a + * fallback one. + * + * A `null` clears that default and takes the answer away again. + */ + setDefaultColors(colors: { + foreground?: number | null; + background?: number | null; + cursor?: number | null; + }): void { + this.assertLive(); + const mod = this.mod; + const set = (name: string, option: number, color: number | null | undefined) => { + if (color === undefined) return; + if (color === null) { + assertGhosttySuccess( + mod.fn("ghostty_terminal_set")(this.term, option, 0), + `terminal_set(${name})`, + ); + return; + } + const rgb = integerInRange(name, color, 0, 0xffffff); + const struct = mod.allocStruct("GhosttyColorRgb"); + try { + const view = mod.view(); + view.setUint8(struct.ptr + mod.field("GhosttyColorRgb", "r").offset, (rgb >> 16) & 0xff); + view.setUint8(struct.ptr + mod.field("GhosttyColorRgb", "g").offset, (rgb >> 8) & 0xff); + view.setUint8(struct.ptr + mod.field("GhosttyColorRgb", "b").offset, rgb & 0xff); + assertGhosttySuccess( + mod.fn("ghostty_terminal_set")(this.term, option, struct.ptr), + `terminal_set(${name})`, + ); + } finally { + struct.free(); + } + }; + set( + "foreground", + GhosttyTerminalOption.GHOSTTY_TERMINAL_OPT_COLOR_FOREGROUND, + colors.foreground, + ); + set( + "background", + GhosttyTerminalOption.GHOSTTY_TERMINAL_OPT_COLOR_BACKGROUND, + colors.background, + ); + set("cursor", GhosttyTerminalOption.GHOSTTY_TERMINAL_OPT_COLOR_CURSOR, colors.cursor); + } + + /** + * The theme's 16 ANSI colors, as the palette a cell's color index resolves through. + * + * ***Unlike the default fore/background this is paint***: the core resolves an + * indexed color before the snapshot leaves it, so an unset palette is not the + * theme's and not neutral either — it is ghostty's own xterm defaults, dark + * terminal and all, under every theme. Entries 16-255 keep their defaults, a + * `null` slot keeps its own, and a program's `OSC 4` override outranks all of + * it. + * + * **_A palette the core already holds is never re-set_**: the set dirties the + * screen, and a host republishes its theme on every metric refresh — a full + * repaint per font load, per probe resize, over colors nobody changed. + */ + setDefaultPalette(ansi: readonly (number | null)[]): void { + this.assertLive(); + if (ansi.every((color) => color === null)) return; + const mod = this.mod; + const rgb = mod.layout["GhosttyColorRgb"]!; + const palette = mod.allocScratch(rgb.size * 256); + try { + assertGhosttySuccess( + mod.fn("ghostty_terminal_get")( + this.term, + GhosttyTerminalData.GHOSTTY_TERMINAL_DATA_COLOR_PALETTE_DEFAULT, + palette.ptr, + ), + "terminal_get(color_palette_default)", + ); + const view = mod.view(); + let changed = false; + ansi.slice(0, 16).forEach((color, index) => { + if (color === null) return; + const value = integerInRange(`ansi[${index}]`, color, 0, 0xffffff); + const entry = palette.ptr + index * rgb.size; + const channels = [(value >> 16) & 0xff, (value >> 8) & 0xff, value & 0xff]; + for (const [offset, channel] of ["r", "g", "b"].entries()) { + const at = entry + rgb.fields[channel]!.offset; + if (view.getUint8(at) === channels[offset]!) continue; + view.setUint8(at, channels[offset]!); + changed = true; + } + }); + if (!changed) return; + assertGhosttySuccess( + mod.fn("ghostty_terminal_set")( + this.term, + GhosttyTerminalOption.GHOSTTY_TERMINAL_OPT_COLOR_PALETTE, + palette.ptr, + ), + "terminal_set(color_palette)", + ); + } finally { + palette.free(); + } + } + + scrollbar(): Scrollbar { + this.assertLive(); + const s = this.mod.allocStruct("GhosttyTerminalScrollbar"); + const result = this.mod.fn("ghostty_terminal_get")( + this.term, + GhosttyTerminalData.GHOSTTY_TERMINAL_DATA_SCROLLBAR, + s.ptr, + ); + if (result !== GhosttyResult.GHOSTTY_SUCCESS) { + s.free(); + return { total: this.rowsNow, offset: 0, len: this.rowsNow }; + } + const g = (name: string) => + Number( + this.mod + .view() + .getBigUint64(s.ptr + this.mod.field("GhosttyTerminalScrollbar", name).offset, true), + ); + const out = { total: g("total"), offset: g("offset"), len: g("len") }; + s.free(); + return out; + } + + title(): string | null { + return this.getString(GhosttyTerminalData.GHOSTTY_TERMINAL_DATA_TITLE); + } + + pwd(): string | null { + return this.getString(GhosttyTerminalData.GHOSTTY_TERMINAL_DATA_PWD); + } + + private getString(data: number): string | null { + this.assertLive(); + const s = this.mod.allocStruct("GhosttyString"); + const result = this.mod.fn("ghostty_terminal_get")(this.term, data, s.ptr); + if (result !== GhosttyResult.GHOSTTY_SUCCESS) { + s.free(); + return null; + } + const ptr = this.mod + .view() + .getUint32(s.ptr + this.mod.field("GhosttyString", "ptr").offset, true); + const len = this.mod + .view() + .getUint32(s.ptr + this.mod.field("GhosttyString", "len").offset, true); + const text = len > 0 ? this.mod.readCString(ptr, len) : ""; + s.free(); + return text; + } + + /** Encode a DOM keydown into pty bytes. Returns null when the key isn't terminal input. */ + encodeKey(event: { + code: string; + key: string; + ctrlKey: boolean; + altKey: boolean; + metaKey: boolean; + shiftKey: boolean; + repeat?: boolean; + }): Uint8Array | null { + this.assertLive(); + const keyValue = domCodeToGhosttyKey(event.code); + if (keyValue === null) return null; + const mod = this.mod; + const setoptFromTerminal = mod.fn("ghostty_key_encoder_setopt_from_terminal"); + setoptFromTerminal(this.keyEncoder, this.term); + + const ev = this.keyEvent; + mod.fn("ghostty_key_event_set_action")( + ev, + event.repeat + ? GhosttyKeyAction.GHOSTTY_KEY_ACTION_REPEAT + : GhosttyKeyAction.GHOSTTY_KEY_ACTION_PRESS, + ); + mod.fn("ghostty_key_event_set_key")(ev, keyValue); + mod.fn("ghostty_key_event_set_mods")(ev, domEventMods(event)); + + const printable = event.key.length === 1 && !event.ctrlKey && !event.metaKey; + let utf8Buf: { ptr: number; len: number; free: () => void } | null = null; + let out: ReturnType | null = null; + let written: ReturnType | null = null; + try { + if (printable) { + utf8Buf = mod.encodeString(event.key); + mod.fn("ghostty_key_event_set_utf8")(ev, utf8Buf.ptr, utf8Buf.len); + // Shift/alt that produced the character are consumed by translation. + mod.fn("ghostty_key_event_set_consumed_mods")(ev, domEventMods(event) & 0b101); + const cp = event.key.codePointAt(0) ?? 0; + mod.fn("ghostty_key_event_set_unshifted_codepoint")( + ev, + cp >= 0x41 && cp <= 0x5a ? cp + 0x20 : cp, + ); + } else { + mod.fn("ghostty_key_event_set_utf8")(ev, 0, 0); + mod.fn("ghostty_key_event_set_consumed_mods")(ev, 0); + mod.fn("ghostty_key_event_set_unshifted_codepoint")(ev, 0); + } + + out = mod.allocScratch(128); + written = mod.allocScratch(4); + const result = mod.fn("ghostty_key_encoder_encode")( + this.keyEncoder, + ev, + out.ptr, + 128, + written.ptr, + ); + if (result !== GhosttyResult.GHOSTTY_SUCCESS) return null; + const len = mod.view().getUint32(written.ptr, true); + return len > 0 ? mod.copyBytes(out.ptr, len) : null; + } finally { + written?.free(); + out?.free(); + utf8Buf?.free(); + } + } + + /** + * Decode a borrowed clipboard-write request and ask the embedder. Everything + * the pointer refers to is valid only for this call, so strings are copied + * before the handler runs. + */ + private onClipboardWrite(writePtr: number): number { + const mod = this.mod; + const RESULT = GhosttyClipboardWriteResult; + if (this.events.onClipboardWrite === undefined) { + return RESULT.GHOSTTY_CLIPBOARD_WRITE_RESULT_DENIED; + } + const field = (name: string) => mod.field("GhosttyClipboardWrite", name).offset; + const view = mod.view(); + const location = view.getUint32(writePtr + field("location"), true); + const contents = view.getUint32(writePtr + field("contents"), true); + const count = view.getUint32(writePtr + field("contents_len"), true); + + const stringAt = (ptr: number): string => { + const v = mod.view(); + const dataPtr = v.getUint32(ptr + mod.field("GhosttyString", "ptr").offset, true); + const len = v.getUint32(ptr + mod.field("GhosttyString", "len").offset, true); + return len > 0 ? mod.readCString(dataPtr, len) : ""; + }; + + const entrySize = mod.layout["GhosttyClipboardContent"]?.size ?? 16; + const mimeOffset = mod.field("GhosttyClipboardContent", "mime").offset; + const dataOffset = mod.field("GhosttyClipboardContent", "data").offset; + const entries: Array<{ mime: string; data: string }> = []; + for (let i = 0; i < count; i++) { + const entry = contents + i * entrySize; + entries.push({ mime: stringAt(entry + mimeOffset), data: stringAt(entry + dataOffset) }); + } + + const write: ClipboardWrite = { + location: CLIPBOARD_LOCATIONS[location] ?? "standard", + text: entries.find((e) => e.mime === "text/plain" || e.mime === "")?.data ?? "", + entries, + // Zero representations means "clear", which is distinct from an entry + // whose data happens to be empty. + clear: count === 0, + }; + const accepted = this.events.onClipboardWrite(write) === true; + return accepted + ? RESULT.GHOSTTY_CLIPBOARD_WRITE_RESULT_SUCCESS + : RESULT.GHOSTTY_CLIPBOARD_WRITE_RESULT_DENIED; + } + + get alternateScreen(): boolean { + this.assertLive(); + const scratch = this.mod.allocScratch(4); + try { + assertGhosttySuccess( + this.mod.fn("ghostty_terminal_get")( + this.term, + GhosttyTerminalData.GHOSTTY_TERMINAL_DATA_ACTIVE_SCREEN, + scratch.ptr, + ), + "terminal_get(active_screen)", + ); + return ( + this.mod.view().getUint32(scratch.ptr, true) === + GhosttyTerminalScreen.GHOSTTY_TERMINAL_SCREEN_ALTERNATE + ); + } finally { + scratch.free(); + } + } + + /** + * Whether the running program asked for mouse events. False means the + * renderer should leave the mouse to the browser — that is what keeps native + * text selection working outside full-screen apps. + */ + mouseTracking(): boolean { + this.assertLive(); + const scratch = this.mod.allocScratch(8); + this.mod.view().setUint32(scratch.ptr, 0, true); + const result = this.mod.fn("ghostty_terminal_get")( + this.term, + GhosttyTerminalData.GHOSTTY_TERMINAL_DATA_MOUSE_TRACKING, + scratch.ptr, + ); + const mode = this.mod.view().getUint32(scratch.ptr, true); + scratch.free(); + return ( + result === GhosttyResult.GHOSTTY_SUCCESS && + mode !== GhosttyMouseTrackingMode.GHOSTTY_MOUSE_TRACKING_NONE + ); + } + + /** + * Tell the mouse encoder the pixel geometry it needs to turn a surface-space + * position into a cell. Call on resize and whenever metrics change; encoding + * before this is set reports cell 0,0 for everything. + */ + setMouseGeometry(geometry: { + width: number; + height: number; + cellWidth: number; + cellHeight: number; + paddingTop?: number; + paddingBottom?: number; + paddingLeft?: number; + paddingRight?: number; + }): void { + this.assertLive(); + const mod = this.mod; + const value = (field: string, input: number, min = 0) => + integerInRange(`mouse geometry ${field}`, Math.round(input), min, UINT32_MAX); + const values: Record = { + screen_width: value("screen_width", geometry.width), + screen_height: value("screen_height", geometry.height), + cell_width: value("cell_width", geometry.cellWidth, 1), + cell_height: value("cell_height", geometry.cellHeight, 1), + padding_top: value("padding_top", geometry.paddingTop ?? 0), + padding_bottom: value("padding_bottom", geometry.paddingBottom ?? 0), + padding_left: value("padding_left", geometry.paddingLeft ?? 0), + padding_right: value("padding_right", geometry.paddingRight ?? 0), + }; + const size = mod.allocStruct("GhosttyMouseEncoderSize"); + try { + for (const [field, fieldValue] of Object.entries(values)) { + mod + .view() + .setUint32( + size.ptr + mod.field("GhosttyMouseEncoderSize", field).offset, + fieldValue, + true, + ); + } + mod.fn("ghostty_mouse_encoder_setopt")( + this.mouseEncoder, + GhosttyMouseEncoderOption.GHOSTTY_MOUSE_ENCODER_OPT_SIZE, + size.ptr, + ); + } finally { + size.free(); + } + } + + /** + * Encode a mouse event for the running program. `x`/`y` are surface-space + * pixels (offsets within the terminal element), not cells — libghostty does + * the cell math, including the pixel-precise SGR formats. + * + * Returns null when the event produces no output, which is the common case: + * motion without tracking, a button the mode does not report, or a duplicate + * cell in cell-granular formats. + */ + encodeMouse(event: { + action: "press" | "release" | "motion"; + /** DOM button number, or null for motion with no button held. */ + button: number | null; + x: number; + y: number; + ctrlKey?: boolean; + altKey?: boolean; + metaKey?: boolean; + shiftKey?: boolean; + }): Uint8Array | null { + this.assertLive(); + if ( + !Number.isFinite(event.x) || + !Number.isFinite(event.y) || + Math.abs(event.x) > FLOAT32_MAX || + Math.abs(event.y) > FLOAT32_MAX + ) { + throw new RangeError(`mouse position must fit float32: ${event.x}, ${event.y}`); + } + const mod = this.mod; + mod.fn("ghostty_mouse_encoder_setopt_from_terminal")(this.mouseEncoder, this.term); + + const ev = this.mouseEvent; + mod.fn("ghostty_mouse_event_set_action")(ev, MOUSE_ACTIONS[event.action]); + const button = event.button === null ? null : domButton(event.button); + if (button === null) mod.fn("ghostty_mouse_event_clear_button")(ev); + else mod.fn("ghostty_mouse_event_set_button")(ev, button); + mod.fn("ghostty_mouse_event_set_mods")( + ev, + domEventMods({ + ctrlKey: event.ctrlKey === true, + altKey: event.altKey === true, + metaKey: event.metaKey === true, + shiftKey: event.shiftKey === true, + }), + ); + + const position = mod.allocStruct("GhosttyMousePosition"); + try { + const view = mod.view(); + view.setFloat32(position.ptr + mod.field("GhosttyMousePosition", "x").offset, event.x, true); + view.setFloat32(position.ptr + mod.field("GhosttyMousePosition", "y").offset, event.y, true); + mod.fn("ghostty_mouse_event_set_position")(ev, position.ptr); + } finally { + position.free(); + } + + const out = mod.allocScratch(64); + let written: ReturnType | null = null; + try { + written = mod.allocScratch(4); + const result = mod.fn("ghostty_mouse_encoder_encode")( + this.mouseEncoder, + ev, + out.ptr, + 64, + written.ptr, + ); + if (result !== GhosttyResult.GHOSTTY_SUCCESS) return null; + const len = mod.view().getUint32(written.ptr, true); + return len > 0 ? mod.copyBytes(out.ptr, len) : null; + } finally { + written?.free(); + out.free(); + } + } + + /** Encode a paste with bracketed-paste handling driven by terminal mode 2004. */ + encodePaste(text: string): Uint8Array { + this.assertLive(); + const mod = this.mod; + // GHOSTTY_MODE_BRACKETED_PASTE = ghostty_mode_new(2004, ansi=false) = 2004. + const flag = mod.allocScratch(1); + let bracketed: number; + try { + mod.view().setUint8(flag.ptr, 0); + mod.fn("ghostty_terminal_mode_get")(this.term, 2004, flag.ptr); + bracketed = mod.view().getUint8(flag.ptr) !== 0 ? 1 : 0; + } finally { + flag.free(); + } + const input = mod.encodeString(text); + let out: ReturnType | null = null; + let written: ReturnType | null = null; + try { + const outLen = input.len + 16; + out = mod.allocScratch(outLen); + written = mod.allocScratch(4); + const result = mod.fn("ghostty_paste_encode")( + input.ptr, + input.len, + bracketed, + out.ptr, + outLen, + written.ptr, + ); + return result === GhosttyResult.GHOSTTY_SUCCESS + ? mod.copyBytes(out.ptr, mod.view().getUint32(written.ptr, true)) + : encoder.encode(text); + } finally { + written?.free(); + out?.free(); + input.free(); + } + } + + /** Claim the dirty snapshot stream for one renderer until its reader is disposed. */ + acquireFrameReader(): FrameReader { + this.assertLive(); + if (this.frameReaderOwner !== null) { + throw new Error("terminal frame snapshots already have a reader"); + } + const owner = {}; + this.frameReaderOwner = owner; + let released = false; + return { + snapshot: (options = {}) => { + this.assertLive(); + if (released || this.frameReaderOwner !== owner) { + throw new Error("terminal frame reader is disposed"); + } + return this.readSnapshot(options); + }, + dispose: () => { + if (released) return; + released = true; + if (this.frameReaderOwner === owner) this.frameReaderOwner = null; + }, + }; + } + + /** + * Read headless state when no renderer owns the dirty snapshot stream. With + * `full`, every viewport row is returned. Every read consumes dirty flags. + */ + snapshot(options: { full?: boolean } = {}): FrameSnapshot { + this.assertLive(); + if (this.frameReaderOwner !== null) { + throw new Error("terminal frame snapshots are owned by an attached reader"); + } + return this.readSnapshot(options); + } + + private readSnapshot(options: { full?: boolean }): FrameSnapshot { + const mod = this.mod; + const ex = { + update: mod.fn("ghostty_render_state_update"), + get: mod.fn("ghostty_render_state_get"), + set: mod.fn("ghostty_render_state_set"), + rowNext: mod.fn("ghostty_render_state_row_iterator_next"), + rowGet: mod.fn("ghostty_render_state_row_get"), + rowSet: mod.fn("ghostty_render_state_row_set"), + cellsNext: mod.fn("ghostty_render_state_row_cells_next"), + cellsGet: mod.fn("ghostty_render_state_row_cells_get"), + cellGet: mod.fn("ghostty_cell_get"), + }; + const result = ex.update(this.renderState, this.term); + if (result !== GhosttyResult.GHOSTTY_SUCCESS) + throw new Error(`render_state_update failed: ${result}`); + + const D = GhosttyRenderStateData; + const scratch = mod.allocScratch(16); + try { + const readU16 = (what: number) => { + assertGhosttySuccess(ex.get(this.renderState, what, scratch.ptr), "render_state_get(u16)"); + return mod.view().getUint16(scratch.ptr, true); + }; + const readU32 = (what: number) => { + assertGhosttySuccess(ex.get(this.renderState, what, scratch.ptr), "render_state_get(u32)"); + return mod.view().getUint32(scratch.ptr, true); + }; + const readBool = (what: number) => { + mod.view().setUint8(scratch.ptr, 0); + assertGhosttySuccess( + ex.get(this.renderState, what, scratch.ptr), + "render_state_get(boolean)", + ); + return mod.view().getUint8(scratch.ptr) !== 0; + }; + const colorFields = { + r: mod.field("GhosttyColorRgb", "r").offset, + g: mod.field("GhosttyColorRgb", "g").offset, + b: mod.field("GhosttyColorRgb", "b").offset, + }; + let palette: number[] | null = null; + let paletteRead = false; + const readPaletteColor = (index: number) => { + if (!paletteRead) { + paletteRead = true; + const rgb = mod.layout["GhosttyColorRgb"]!; + const out = mod.allocScratch(rgb.size * 256); + try { + assertGhosttySuccess( + ex.get(this.renderState, D.GHOSTTY_RENDER_STATE_DATA_COLOR_PALETTE, out.ptr), + "render_state_get(color_palette)", + ); + const view = mod.view(); + palette = Array.from({ length: 256 }, (_, paletteIndex) => { + const ptr = out.ptr + paletteIndex * rgb.size; + return ( + (view.getUint8(ptr + colorFields.r) << 16) | + (view.getUint8(ptr + colorFields.g) << 8) | + view.getUint8(ptr + colorFields.b) + ); + }); + } finally { + out.free(); + } + } + return palette?.[index] ?? -1; + }; + const readRenderColor = (what: number) => { + const before = mod.view(); + before.setUint8(scratch.ptr + colorFields.r, 0); + before.setUint8(scratch.ptr + colorFields.g, 0); + before.setUint8(scratch.ptr + colorFields.b, 0); + assertGhosttySuccess( + ex.get(this.renderState, what, scratch.ptr), + "render_state_get(color)", + ); + const after = mod.view(); + return ( + (after.getUint8(scratch.ptr + colorFields.r) << 16) | + (after.getUint8(scratch.ptr + colorFields.g) << 8) | + after.getUint8(scratch.ptr + colorFields.b) + ); + }; + + const cols = readU16(D.GHOSTTY_RENDER_STATE_DATA_COLS); + const rows = readU16(D.GHOSTTY_RENDER_STATE_DATA_ROWS); + const dirtyRaw = readU32(D.GHOSTTY_RENDER_STATE_DATA_DIRTY); + let dirty: FrameSnapshot["dirty"] = + dirtyRaw === GhosttyRenderStateDirty.GHOSTTY_RENDER_STATE_DIRTY_FULL + ? "full" + : dirtyRaw === GhosttyRenderStateDirty.GHOSTTY_RENDER_STATE_DIRTY_PARTIAL + ? "partial" + : "none"; + + // Colors: the program's OSC OVERRIDE, or -1 meaning "the CSS theme + // decides". ***The effective value is not the answer***: `setDefaultColors` + // puts the theme's own colors in the core so it can answer `OSC 10/11/12`, + // and reporting those back would pin `--clo-term-effective-*` to the theme + // and freeze it there — a later theme change would repaint nothing. An + // override that happens to equal the default reads as no override, which + // is the same pixels either way. + const terminalGet = mod.fn("ghostty_terminal_get"); + const readColor = (what: number) => { + const v = mod.view(); + v.setUint8(scratch.ptr, 0); + v.setUint8(scratch.ptr + 1, 0); + v.setUint8(scratch.ptr + 2, 0); + const r = terminalGet(this.term, what, scratch.ptr); + if (r !== GhosttyResult.GHOSTTY_SUCCESS) return -1; + const v2 = mod.view(); + return ( + (v2.getUint8(scratch.ptr) << 16) | + (v2.getUint8(scratch.ptr + 1) << 8) | + v2.getUint8(scratch.ptr + 2) + ); + }; + const overrideColor = (effective: number, fallback: number) => { + const value = readColor(effective); + return value === readColor(fallback) ? -1 : value; + }; + const foreground = overrideColor( + GhosttyTerminalData.GHOSTTY_TERMINAL_DATA_COLOR_FOREGROUND, + GhosttyTerminalData.GHOSTTY_TERMINAL_DATA_COLOR_FOREGROUND_DEFAULT, + ); + const background = overrideColor( + GhosttyTerminalData.GHOSTTY_TERMINAL_DATA_COLOR_BACKGROUND, + GhosttyTerminalData.GHOSTTY_TERMINAL_DATA_COLOR_BACKGROUND_DEFAULT, + ); + + // Cursor: the render state carries the effective color, so the same + // override rule applies to it as to foreground and background. + const cursorDefault = readColor( + GhosttyTerminalData.GHOSTTY_TERMINAL_DATA_COLOR_CURSOR_DEFAULT, + ); + const cursorEffective = readBool(D.GHOSTTY_RENDER_STATE_DATA_COLOR_CURSOR_HAS_VALUE) + ? readRenderColor(D.GHOSTTY_RENDER_STATE_DATA_COLOR_CURSOR) + : -1; + const cursorColor = cursorEffective === cursorDefault ? -1 : cursorEffective; + let cursor: CursorSnapshot | null = null; + if ( + readBool(D.GHOSTTY_RENDER_STATE_DATA_CURSOR_VISIBLE) && + readBool(D.GHOSTTY_RENDER_STATE_DATA_CURSOR_VIEWPORT_HAS_VALUE) + ) { + const x = readU16(D.GHOSTTY_RENDER_STATE_DATA_CURSOR_VIEWPORT_X); + const y = readU16(D.GHOSTTY_RENDER_STATE_DATA_CURSOR_VIEWPORT_Y); + const styleRaw = readU32(D.GHOSTTY_RENDER_STATE_DATA_CURSOR_VISUAL_STYLE); + const blinking = readBool(D.GHOSTTY_RENDER_STATE_DATA_CURSOR_BLINKING); + const wide = readBool(D.GHOSTTY_RENDER_STATE_DATA_CURSOR_VIEWPORT_WIDE_TAIL); + cursor = { + x, + y, + style: CURSOR_STYLES[styleRaw] ?? "block", + blinking, + wide, + color: cursorColor, + }; + } + + // Rows + const wantAll = options.full === true || dirty === "full"; + const acquireRows = (renderState = this.renderState) => { + const iterOut = mod.allocScratch(4); + try { + mod.view().setUint32(iterOut.ptr, this.rowIter, true); + assertGhosttySuccess( + ex.get(renderState, D.GHOSTTY_RENDER_STATE_DATA_ROW_ITERATOR, iterOut.ptr), + "render_state_get(row_iterator)", + ); + } finally { + iterOut.free(); + } + }; + acquireRows(); + + const clean = mod.allocScratch(1); + let cleanState: ReturnType; + try { + cleanState = mod.allocScratch(4); + } catch (error) { + clean.free(); + throw error; + } + // Incremental render state can retain stale raw row summaries when Ghostty + // changes a non-painted boundary flag without dirtying that row. Preserve + // and clear its dirty set, then decode through a fresh render state. + let originalRowDirty: boolean[] | null = null; + const refreshRawRows = options.full === true || dirty !== "none"; + let canonicalRenderState = 0; + const dirtyRows: RowSnapshot[] = []; + try { + mod.view().setUint8(clean.ptr, 0); + if (refreshRawRows) { + originalRowDirty = []; + while (ex.rowNext(this.rowIter) !== 0) { + mod.view().setUint8(scratch.ptr, 0); + assertGhosttySuccess( + ex.rowGet( + this.rowIter, + GhosttyRenderStateRowData.GHOSTTY_RENDER_STATE_ROW_DATA_DIRTY, + scratch.ptr, + ), + "render_state_row_get(dirty)", + ); + const rowDirty = mod.view().getUint8(scratch.ptr) !== 0; + originalRowDirty.push(rowDirty); + } + canonicalRenderState = mod.create("ghostty_render_state_new"); + const refresh = ex.update(canonicalRenderState, this.term); + if (refresh !== GhosttyResult.GHOSTTY_SUCCESS) { + throw new Error(`render_state_update failed while refreshing rows: ${refresh}`); + } + acquireRows(canonicalRenderState); + } + + const rowGet = mod.fn("ghostty_row_get"); + const rowBool = (rawRow: bigint, what: number) => { + mod.view().setUint8(scratch.ptr, 0); + assertGhosttySuccess(rowGet(rawRow, what, scratch.ptr), "row_get(boolean)"); + return mod.view().getUint8(scratch.ptr) !== 0; + }; + let rowIndex = 0; + const nextRowMetadata: RowMetadata[] = []; + while (refreshRawRows && ex.rowNext(this.rowIter) !== 0) { + const rowDirty = originalRowDirty?.[rowIndex] ?? false; + mod.view().setBigUint64(scratch.ptr, 0n, true); + assertGhosttySuccess( + ex.rowGet( + this.rowIter, + GhosttyRenderStateRowData.GHOSTTY_RENDER_STATE_ROW_DATA_RAW, + scratch.ptr, + ), + "render_state_row_get(raw)", + ); + const rawRow = mod.view().getBigUint64(scratch.ptr, true); + mod.view().setUint32(scratch.ptr, 0, true); + const semanticResult = rowGet( + rawRow, + GhosttyRowData.GHOSTTY_ROW_DATA_SEMANTIC_PROMPT, + scratch.ptr, + ); + assertGhosttySuccess(semanticResult, "row_get(semantic_prompt)"); + const semanticRaw = mod.view().getUint32(scratch.ptr, true); + const metadata: RowMetadata = { + wrap: rowBool(rawRow, GhosttyRowData.GHOSTTY_ROW_DATA_WRAP), + wrapContinuation: rowBool(rawRow, GhosttyRowData.GHOSTTY_ROW_DATA_WRAP_CONTINUATION), + semanticPrompt: + semanticRaw === GhosttyRowSemanticPrompt.GHOSTTY_ROW_SEMANTIC_PROMPT + ? "prompt" + : semanticRaw === GhosttyRowSemanticPrompt.GHOSTTY_ROW_SEMANTIC_PROMPT_CONTINUATION + ? "continuation" + : "none", + hyperlink: rowBool(rawRow, GhosttyRowData.GHOSTTY_ROW_DATA_HYPERLINK), + }; + const previous = this.rowMetadata[rowIndex]; + const metadataChanged = + previous === undefined || + previous.wrap !== metadata.wrap || + previous.wrapContinuation !== metadata.wrapContinuation || + previous.semanticPrompt !== metadata.semanticPrompt || + previous.hyperlink !== metadata.hyperlink; + nextRowMetadata[rowIndex] = metadata; + // Replacing a continuation row can remove the predecessor's spacer + // head without dirtying that predecessor in Ghostty. A wrapped row + // therefore shares the continuation row's dirty boundary. + const continuationDirty = metadata.wrap && (originalRowDirty?.[rowIndex + 1] ?? false); + if (rowDirty || continuationDirty || wantAll || metadataChanged) { + if (!rowDirty && !wantAll && dirty === "none") dirty = "partial"; + dirtyRows.push({ + index: rowIndex, + ...metadata, + cells: this.readRowCells(rowIndex, metadata.hyperlink, scratch.ptr, readPaletteColor), + }); + } + rowIndex++; + } + if (refreshRawRows) { + // Promote before consuming row bits so any cleanup failure retries a + // complete frame rather than losing rows already marked clean. + mod + .view() + .setUint32( + cleanState.ptr, + GhosttyRenderStateDirty.GHOSTTY_RENDER_STATE_DIRTY_FULL, + true, + ); + assertGhosttySuccess( + ex.set( + this.renderState, + GhosttyRenderStateOption.GHOSTTY_RENDER_STATE_OPTION_DIRTY, + cleanState.ptr, + ), + "render_state_set(full)", + ); + acquireRows(); + let dirtyIndex = 0; + while (ex.rowNext(this.rowIter) !== 0) { + if (originalRowDirty?.[dirtyIndex] === true) { + assertGhosttySuccess( + ex.rowSet( + this.rowIter, + GhosttyRenderStateRowOption.GHOSTTY_RENDER_STATE_ROW_OPTION_DIRTY, + clean.ptr, + ), + "render_state_row_set(dirty)", + ); + } + dirtyIndex++; + } + this.rowMetadata = nextRowMetadata; + } + } catch (error) { + cleanState.free(); + throw error; + } finally { + clean.free(); + if (canonicalRenderState !== 0) { + mod.fn("ghostty_render_state_free")(canonicalRenderState); + } + } + + mod + .view() + .setUint32(cleanState.ptr, GhosttyRenderStateDirty.GHOSTTY_RENDER_STATE_DIRTY_FALSE, true); + try { + assertGhosttySuccess( + ex.set( + this.renderState, + GhosttyRenderStateOption.GHOSTTY_RENDER_STATE_OPTION_DIRTY, + cleanState.ptr, + ), + "render_state_set(dirty)", + ); + } finally { + cleanState.free(); + } + + return { cols, rows, dirty, dirtyRows, cursor, foreground, background }; + } finally { + scratch.free(); + } + } + + private readRowCells( + rowIndex: number, + rowHasHyperlink: boolean, + scratch: number, + readPaletteColor: (index: number) => number, + ): CellSnapshot[] { + const mod = this.mod; + const cellsGet = mod.fn("ghostty_render_state_row_cells_get"); + const cellsGetMulti = mod.fn("ghostty_render_state_row_cells_get_multi"); + const cellsNext = mod.fn("ghostty_render_state_row_cells_next"); + const cellGetMulti = mod.fn("ghostty_cell_get_multi"); + const C = GhosttyRenderStateRowCellsData; + const asciiCell = mod.layout["GhosttyRenderStateAsciiCell"]; + if (asciiCell === undefined) throw new Error("missing GhosttyRenderStateAsciiCell layout"); + const asciiCodepoint = mod.field("GhosttyRenderStateAsciiCell", "codepoint").offset; + const asciiForeground = mod.field("GhosttyRenderStateAsciiCell", "foreground").offset; + + const cellsOut = mod.allocScratch(4); + try { + mod.view().setUint32(cellsOut.ptr, this.rowCells, true); + assertGhosttySuccess( + mod.fn("ghostty_render_state_row_get")( + this.rowIter, + GhosttyRenderStateRowData.GHOSTTY_RENDER_STATE_ROW_DATA_CELLS, + cellsOut.ptr, + ), + "render_state_row_get(cells)", + ); + } finally { + cellsOut.free(); + } + + if (this.asciiRowScratch === null || this.asciiRowScratch.capacity < this.colsNow) { + const capacity = 2 ** Math.ceil(Math.log2(this.colsNow)); + const next = mod.allocScratch(capacity * asciiCell.size); + this.asciiRowScratch?.free(); + this.asciiRowScratch = { ...next, capacity }; + } + const asciiResult = mod.fn("ghostty_render_state_row_cells_ascii")( + this.rowCells, + this.asciiRowScratch.ptr, + this.asciiRowScratch.capacity, + scratch, + ); + if (asciiResult === GhosttyResult.GHOSTTY_SUCCESS) { + const length = mod.view().getUint32(scratch, true); + const cells: CellSnapshot[] = []; + for (let index = 0; index < length; index++) { + const ptr = this.asciiRowScratch.ptr + index * asciiCell.size; + const codepoint = mod.view().getUint32(ptr + asciiCodepoint, true); + const foreground = mod.view().getUint32(ptr + asciiForeground, true); + cells.push({ + text: codepoint === 0 ? "" : String.fromCharCode(codepoint), + width: 1, + spacer: "none", + protected: false, + semantic: "output", + hasOsc8: false, + osc8Uri: null, + fg: foreground === 0xffffffff ? -1 : foreground, + bg: -1, + underlineColor: -1, + bold: false, + italic: false, + faint: false, + blink: false, + inverse: false, + invisible: false, + strikethrough: false, + overline: false, + underline: 0, + }); + } + return cells; + } + if (asciiResult !== GhosttyResult.GHOSTTY_NO_VALUE) { + throw new Error(`render_state_row_cells_ascii failed: ${asciiResult}`); + } + + const allocations: Array<{ free(): void }> = []; + const own = (allocation: T): T => { + allocations.push(allocation); + return allocation; + }; + try { + const style = own(mod.allocStruct("GhosttyStyle")); + const rowKeys = own(mod.allocScratch(16)); + const rowValues = own(mod.allocScratch(16)); + const cellKeys = own(mod.allocScratch(20)); + const cellValues = own(mod.allocScratch(20)); + const rowQuery = [ + C.GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_RAW, + C.GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_STYLE, + C.GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_GRAPHEMES_LEN, + C.GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_HAS_STYLING, + ]; + const cellQuery = [ + GhosttyCellData.GHOSTTY_CELL_DATA_WIDE, + GhosttyCellData.GHOSTTY_CELL_DATA_PROTECTED, + GhosttyCellData.GHOSTTY_CELL_DATA_SEMANTIC_CONTENT, + GhosttyCellData.GHOSTTY_CELL_DATA_HAS_HYPERLINK, + GhosttyCellData.GHOSTTY_CELL_DATA_CONTENT_TAG, + ]; + const queryView = mod.view(); + rowQuery.forEach((key, index) => queryView.setUint32(rowKeys.ptr + index * 4, key, true)); + [scratch, style.ptr, scratch + 8, scratch + 12].forEach((ptr, index) => + queryView.setUint32(rowValues.ptr + index * 4, ptr, true), + ); + cellQuery.forEach((key, index) => queryView.setUint32(cellKeys.ptr + index * 4, key, true)); + [scratch, scratch + 8, scratch + 4, scratch + 9, scratch + 12].forEach((ptr, index) => + queryView.setUint32(cellValues.ptr + index * 4, ptr, true), + ); + const styleFields = { + bold: mod.field("GhosttyStyle", "bold").offset, + italic: mod.field("GhosttyStyle", "italic").offset, + faint: mod.field("GhosttyStyle", "faint").offset, + blink: mod.field("GhosttyStyle", "blink").offset, + inverse: mod.field("GhosttyStyle", "inverse").offset, + invisible: mod.field("GhosttyStyle", "invisible").offset, + strikethrough: mod.field("GhosttyStyle", "strikethrough").offset, + overline: mod.field("GhosttyStyle", "overline").offset, + underline: mod.field("GhosttyStyle", "underline").offset, + fgTag: mod.field("GhosttyStyle", "fg_color").offset, + bgTag: mod.field("GhosttyStyle", "bg_color").offset, + underlineColor: mod.field("GhosttyStyle", "underline_color").offset, + colorTag: mod.field("GhosttyStyleColor", "tag").offset, + colorValue: mod.field("GhosttyStyleColor", "value").offset, + }; + const colorFields = { + r: mod.field("GhosttyColorRgb", "r").offset, + g: mod.field("GhosttyColorRgb", "g").offset, + b: mod.field("GhosttyColorRgb", "b").offset, + }; + let graphemeCapacity = INITIAL_GRAPHEME_CAPACITY; + let graphemeBuf = own(mod.allocScratch(graphemeCapacity * 4)); + const readResolvedColor = (what: number) => { + const view = mod.view(); + view.setUint8(scratch + colorFields.r, 0); + view.setUint8(scratch + colorFields.g, 0); + view.setUint8(scratch + colorFields.b, 0); + assertGhosttySuccess(cellsGet(this.rowCells, what, scratch), "row_cells_get(color)"); + const resolved = mod.view(); + return ( + (resolved.getUint8(scratch + colorFields.r) << 16) | + (resolved.getUint8(scratch + colorFields.g) << 8) | + resolved.getUint8(scratch + colorFields.b) + ); + }; + + const cells: CellSnapshot[] = []; + const hyperlink = rowHasHyperlink ? this.resolveHyperlinkRow(rowIndex) : null; + let physicalColumn = 0; + while (cellsNext(this.rowCells) !== 0) { + const cellColumn = physicalColumn++; + assertGhosttySuccess( + cellsGetMulti(this.rowCells, rowQuery.length, rowKeys.ptr, rowValues.ptr, 0), + "row_cells_get_multi", + ); + const rawCell = mod.view().getBigUint64(scratch, true); + const graphemeLen = mod.view().getUint32(scratch + 8, true); + const hasStyling = mod.view().getUint8(scratch + 12) !== 0; + let width = 1; + let spacer: CellSnapshot["spacer"] = "none"; + let protectedCell = false; + let semantic: CellSnapshot["semantic"] = "output"; + let hasOsc8 = false; + let osc8Uri: string | null = null; + let contentTag: number = GhosttyCellContentTag.GHOSTTY_CELL_CONTENT_CODEPOINT; + if (rawCell !== 0n) { + // GhosttyCell is a packed 64-bit value, not a pointer: pass it as i64. + assertGhosttySuccess( + cellGetMulti(rawCell, cellQuery.length, cellKeys.ptr, cellValues.ptr, 0), + "cell_get_multi", + ); + const wide = mod.view().getUint32(scratch, true); + spacer = wide === GhosttyCellWide.GHOSTTY_CELL_WIDE_SPACER_HEAD ? "head" : "none"; + width = wide === GhosttyCellWide.GHOSTTY_CELL_WIDE_WIDE ? 2 : 1; + const semanticRaw = mod.view().getUint32(scratch + 4, true); + protectedCell = mod.view().getUint8(scratch + 8) !== 0; + contentTag = mod.view().getUint32(scratch + 12, true); + semantic = + semanticRaw === GhosttyCellSemanticContent.GHOSTTY_CELL_SEMANTIC_INPUT + ? "input" + : semanticRaw === GhosttyCellSemanticContent.GHOSTTY_CELL_SEMANTIC_PROMPT + ? "prompt" + : "output"; + + if (hyperlink !== null) { + if (mod.view().getUint8(scratch + 9) !== 0) { + hasOsc8 = true; + osc8Uri = this.readHyperlinkUri(hyperlink, cellColumn); + } + } + if (wide === GhosttyCellWide.GHOSTTY_CELL_WIDE_SPACER_TAIL) continue; + } + + let text = ""; + if (graphemeLen > 0) { + if (graphemeLen > graphemeCapacity) { + graphemeBuf.free(); + graphemeCapacity = 2 ** Math.ceil(Math.log2(graphemeLen)); + graphemeBuf = own(mod.allocScratch(graphemeCapacity * 4)); + } + assertGhosttySuccess( + cellsGet( + this.rowCells, + C.GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_GRAPHEMES_BUF, + graphemeBuf.ptr, + ), + "row_cells_get(graphemes_buf)", + ); + text = codepointsToString(mod.view(), graphemeBuf.ptr, graphemeLen); + } + + let cell: CellSnapshot; + if (hasStyling) { + const readColor = (tagOffset: number, resolved: number) => { + return mod.view().getUint32(style.ptr + tagOffset + styleFields.colorTag, true) === 0 + ? -1 + : readResolvedColor(resolved); + }; + const fg = readColor(styleFields.fgTag, C.GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_FG_COLOR); + const bg = readColor(styleFields.bgTag, C.GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_BG_COLOR); + const underlineColorPtr = style.ptr + styleFields.underlineColor + styleFields.colorValue; + const underlineColorTag = mod + .view() + .getUint32(style.ptr + styleFields.underlineColor + styleFields.colorTag, true); + let underlineColor = -1; + if (underlineColorTag === GhosttyStyleColorTag.GHOSTTY_STYLE_COLOR_RGB) { + const color = mod.view(); + underlineColor = + (color.getUint8(underlineColorPtr + colorFields.r) << 16) | + (color.getUint8(underlineColorPtr + colorFields.g) << 8) | + color.getUint8(underlineColorPtr + colorFields.b); + } else if (underlineColorTag === GhosttyStyleColorTag.GHOSTTY_STYLE_COLOR_PALETTE) { + underlineColor = readPaletteColor(mod.view().getUint8(underlineColorPtr)); + } + const v = mod.view(); + cell = { + text, + width, + spacer, + protected: protectedCell, + semantic, + hasOsc8, + osc8Uri, + fg, + bg, + underlineColor, + bold: v.getUint8(style.ptr + styleFields.bold) !== 0, + italic: v.getUint8(style.ptr + styleFields.italic) !== 0, + faint: v.getUint8(style.ptr + styleFields.faint) !== 0, + blink: v.getUint8(style.ptr + styleFields.blink) !== 0, + inverse: v.getUint8(style.ptr + styleFields.inverse) !== 0, + invisible: v.getUint8(style.ptr + styleFields.invisible) !== 0, + strikethrough: v.getUint8(style.ptr + styleFields.strikethrough) !== 0, + overline: v.getUint8(style.ptr + styleFields.overline) !== 0, + underline: v.getInt32(style.ptr + styleFields.underline, true), + }; + } else { + let bg = -1; + if (rawCell !== 0n && text === "") { + if ( + contentTag === GhosttyCellContentTag.GHOSTTY_CELL_CONTENT_BG_COLOR_PALETTE || + contentTag === GhosttyCellContentTag.GHOSTTY_CELL_CONTENT_BG_COLOR_RGB + ) { + bg = readResolvedColor(C.GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_BG_COLOR); + } + } + cell = { + text, + width, + spacer, + protected: protectedCell, + semantic, + hasOsc8, + osc8Uri, + fg: -1, + bg, + underlineColor: -1, + bold: false, + italic: false, + faint: false, + blink: false, + inverse: false, + invisible: false, + strikethrough: false, + overline: false, + underline: 0, + }; + } + cells.push(cell); + } + + // Trim only cells with no canonical presentation state so runs/DOM stay small. + trimCanonicalDefaultTail(cells); + return cells; + } finally { + for (let index = allocations.length - 1; index >= 0; index--) allocations[index]!.free(); + } + } + + private resolveHyperlinkRow(rowIndex: number): HyperlinkScratch { + const mod = this.mod; + let hyperlink = this.hyperlinkScratch; + if (hyperlink === null) { + let point: HyperlinkScratch["point"] | null = null; + let ref: HyperlinkScratch["ref"] | null = null; + let outLen: HyperlinkScratch["outLen"] | null = null; + try { + point = mod.allocStruct("GhosttyPoint"); + ref = mod.allocStruct("GhosttyGridRef"); + outLen = mod.allocScratch(4); + hyperlink = { + point, + ref, + outLen, + uri: mod.allocScratch(INITIAL_HYPERLINK_URI_CAPACITY), + uriCapacity: INITIAL_HYPERLINK_URI_CAPACITY, + }; + } catch (error) { + outLen?.free(); + ref?.free(); + point?.free(); + throw error; + } + this.hyperlinkScratch = hyperlink; + } + + const pointTag = mod.field("GhosttyPoint", "tag").offset; + const pointValue = mod.field("GhosttyPoint", "value").offset; + const coordinateX = mod.field("GhosttyPointCoordinate", "x").offset; + const coordinateY = mod.field("GhosttyPointCoordinate", "y").offset; + mod + .view() + .setUint32(hyperlink.point.ptr + pointTag, GhosttyPointTag.GHOSTTY_POINT_TAG_VIEWPORT, true); + mod.view().setUint16(hyperlink.point.ptr + pointValue + coordinateX, 0, true); + mod.view().setUint32(hyperlink.point.ptr + pointValue + coordinateY, rowIndex, true); + assertGhosttySuccess( + mod.fn("ghostty_terminal_grid_ref")(this.term, hyperlink.point.ptr, hyperlink.ref.ptr), + "terminal_grid_ref(hyperlink row)", + ); + return hyperlink; + } + + private readHyperlinkUri(hyperlink: HyperlinkScratch, physicalColumn: number): string | null { + const mod = this.mod; + mod + .view() + .setUint16(hyperlink.ref.ptr + mod.field("GhosttyGridRef", "x").offset, physicalColumn, true); + mod.view().setUint32(hyperlink.outLen.ptr, 0, true); + let result = mod.fn("ghostty_grid_ref_hyperlink_uri")( + hyperlink.ref.ptr, + hyperlink.uri.ptr, + hyperlink.uriCapacity, + hyperlink.outLen.ptr, + ); + if (result === GhosttyResult.GHOSTTY_OUT_OF_SPACE) { + const required = mod.view().getUint32(hyperlink.outLen.ptr, true); + if (required <= 0) throw new Error("grid_ref_hyperlink_uri returned an invalid size"); + const next = mod.allocScratch(required); + hyperlink.uri.free(); + hyperlink.uri = next; + hyperlink.uriCapacity = required; + mod.view().setUint32(hyperlink.outLen.ptr, 0, true); + result = mod.fn("ghostty_grid_ref_hyperlink_uri")( + hyperlink.ref.ptr, + hyperlink.uri.ptr, + hyperlink.uriCapacity, + hyperlink.outLen.ptr, + ); + } + assertGhosttySuccess(result, "grid_ref_hyperlink_uri"); + const length = mod.view().getUint32(hyperlink.outLen.ptr, true); + if (length > hyperlink.uriCapacity) { + throw new Error(`grid_ref_hyperlink_uri wrote invalid length: ${length}`); + } + const bytes = mod.bytes(hyperlink.uri.ptr, length); + try { + return osc8Decoder.decode(bytes); + } catch { + return null; + } + } + + /** Plain-text dump of the active screen (tests, copy-all). */ + text(): string { + this.assertLive(); + const mod = this.mod; + const opts = mod.allocStruct("GhosttyFormatterTerminalOptions"); + let fmt: number; + try { + const trim = mod.field("GhosttyFormatterTerminalOptions", "trim"); + mod.view().setUint8(opts.ptr + trim.offset, 1); + const extraOff = mod.field("GhosttyFormatterTerminalOptions", "extra").offset; + const extra = mod.layout["GhosttyFormatterTerminalExtra"]!; + mod.view().setUint32(opts.ptr + extraOff + extra.fields["size"]!.offset, extra.size, true); + const screenOff = extra.fields["screen"]!.offset; + const screen = mod.layout["GhosttyFormatterScreenExtra"]!; + mod + .view() + .setUint32( + opts.ptr + extraOff + screenOff + screen.fields["size"]!.offset, + screen.size, + true, + ); + fmt = mod.create("ghostty_formatter_terminal_new", this.term, opts.ptr); + } finally { + opts.free(); + } + + let outPtrPtr: ReturnType | null = null; + let outLenPtr: ReturnType | null = null; + try { + outPtrPtr = mod.allocScratch(4); + outLenPtr = mod.allocScratch(4); + mod.view().setUint32(outPtrPtr.ptr, 0, true); + mod.view().setUint32(outLenPtr.ptr, 0, true); + const result = mod.fn("ghostty_formatter_format_alloc")(fmt, 0, outPtrPtr.ptr, outLenPtr.ptr); + const ptr = mod.view().getUint32(outPtrPtr.ptr, true); + const len = mod.view().getUint32(outLenPtr.ptr, true); + if (ptr === 0) { + if (result === GhosttyResult.GHOSTTY_SUCCESS && len !== 0) { + throw new Error("ghostty_formatter_format_alloc returned a null buffer"); + } + return ""; + } + try { + return result === GhosttyResult.GHOSTTY_SUCCESS ? mod.readCString(ptr, len) : ""; + } finally { + mod.fn("ghostty_free")(0, ptr, len); + } + } finally { + outLenPtr?.free(); + outPtrPtr?.free(); + mod.fn("ghostty_formatter_free")(fmt); + } + } + + free(): void { + if (this.disposed || this.disposePending) return; + if (this.writing) { + this.disposePending = true; + return; + } + this.disposed = true; + this.frameReaderOwner = null; + // Anchors first: tracked refs outlive the terminal, so freeing them after + // it would leak the handles rather than crash. + this.shell.dispose(); + this.releaseWasmResources(); + } + + private releaseWasmResources(): void { + const mod = this.mod; + this.asciiRowScratch?.free(); + this.asciiRowScratch = null; + this.inputScratch?.free(); + this.inputScratch = null; + if (this.hyperlinkScratch !== null) { + this.hyperlinkScratch.uri.free(); + this.hyperlinkScratch.outLen.free(); + this.hyperlinkScratch.ref.free(); + this.hyperlinkScratch.point.free(); + this.hyperlinkScratch = null; + } + if (this.mouseEvent !== 0) { + mod.fn("ghostty_mouse_event_free")(this.mouseEvent); + this.mouseEvent = 0; + } + if (this.mouseEncoder !== 0) { + mod.fn("ghostty_mouse_encoder_free")(this.mouseEncoder); + this.mouseEncoder = 0; + } + if (this.keyEvent !== 0) { + mod.fn("ghostty_key_event_free")(this.keyEvent); + this.keyEvent = 0; + } + if (this.keyEncoder !== 0) { + mod.fn("ghostty_key_encoder_free")(this.keyEncoder); + this.keyEncoder = 0; + } + if (this.rowCells !== 0) { + mod.fn("ghostty_render_state_row_cells_free")(this.rowCells); + this.rowCells = 0; + } + if (this.rowIter !== 0) { + mod.fn("ghostty_render_state_row_iterator_free")(this.rowIter); + this.rowIter = 0; + } + if (this.renderState !== 0) { + mod.fn("ghostty_render_state_free")(this.renderState); + this.renderState = 0; + } + if (this.modeValue !== 0) { + mod.fn("ghostty_wasm_free_u8")(this.modeValue); + this.modeValue = 0; + } + if (this.term !== 0) { + mod.fn("ghostty_terminal_free")(this.term); + this.term = 0; + } + for (const trampoline of this.trampolines.splice(0).reverse()) trampoline.free(); + } + + private assertLive(): void { + if (this.disposed) throw new Error("terminal is disposed"); + } +} diff --git a/packages/terminal/src/index.ts b/packages/terminal/src/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..0997760a47cb3905736659285b05bcc02bbea6b3 --- /dev/null +++ b/packages/terminal/src/index.ts @@ -0,0 +1,58 @@ +export { GhosttyModule } from "./ghostty/module.ts"; +export { ansiToHtml } from "./ansi.ts"; +export { mountTerminal, type MountTerminalOptions, type TerminalHandle } from "./mount.ts"; +export { + Terminal, + type CellSnapshot, + type ClipboardWrite, + type CursorSnapshot, + type FrameReader, + type FrameSnapshot, + type RowSnapshot, + type Scrollbar, + type TerminalEvents, + type TerminalOptions, +} from "./ghostty/terminal.ts"; +export { + TerminalView, + type TerminalLinkOptions, + type TerminalViewOptions, +} from "./renderer/dom.ts"; +export { cellsToRuns, cellText, linkCells, rowText, type CellRun, type RowText } from "./runs.ts"; +export { + columnTexts, + DEFAULT_PREDICT_OPTIONS, + isPredictableText, + PredictionEngine, + resolvePredictOptions, + type PredictionMode, + type PredictionSite, + type PredictOptions, + type ReconcileFrame, + type ResolvedPredictOptions, +} from "./predict/index.ts"; +export { detectLinks, type DetectedLink, type DetectLinksOptions, type LinkKind } from "./links.ts"; +export { + OscScanner, + parseShellMark, + ShellCommands, + stickyCommand, + stickyTarget, + unescapeMarkValue, + type CommandAnchor, + type CommandState, + type MarkSource, + type OscSpan, + type ShellCommand, + type ShellCommandsOptions, + type ShellMark, +} from "./shell/index.ts"; +export { + domCodeToGhosttyKey, + domEventMods, + MODS_ALT, + MODS_CTRL, + MODS_SHIFT, + MODS_SUPER, + type ModState, +} from "./keys.ts"; diff --git a/packages/terminal/src/keys.ts b/packages/terminal/src/keys.ts new file mode 100644 index 0000000000000000000000000000000000000000..831b94290b013ec6dd71c0fd87ea52f5e543fa8d --- /dev/null +++ b/packages/terminal/src/keys.ts @@ -0,0 +1,60 @@ +// DOM KeyboardEvent -> libghostty key model. Pure: no wasm, no DOM types. +// Ghostty's key enum is named after W3C KeyboardEvent.code values, so the +// mapping is a mechanical name transform plus a small irregular table. + +import { GhosttyKey } from "./ghostty/constants.ts"; + +// Bit values from vendor/include/ghostty/vt/key/event.h (#defines, invisible +// to the enum generator — verified on vendor bump by test/keys.test.ts). +export const MODS_SHIFT = 1 << 0; +export const MODS_CTRL = 1 << 1; +export const MODS_ALT = 1 << 2; +export const MODS_SUPER = 1 << 3; +export const MODS_CAPS_LOCK = 1 << 4; +export const MODS_NUM_LOCK = 1 << 5; + +const IRREGULAR: Record = { + MetaLeft: "GHOSTTY_KEY_META_LEFT", + MetaRight: "GHOSTTY_KEY_META_RIGHT", + OSLeft: "GHOSTTY_KEY_META_LEFT", + OSRight: "GHOSTTY_KEY_META_RIGHT", +}; + +/** "KeyA" -> GHOSTTY_KEY_A, "ArrowDown" -> GHOSTTY_KEY_ARROW_DOWN, "F1" -> GHOSTTY_KEY_F1, "Digit1" -> GHOSTTY_KEY_DIGIT_1. */ +export function domCodeToGhosttyKey(code: string): number | null { + if (code === "") return null; + let name = IRREGULAR[code]; + if (name === undefined) { + const letter = /^Key([A-Z])$/.exec(code); + if (letter !== null) { + name = `GHOSTTY_KEY_${letter[1]}`; + } else if (/^F\d+$/.test(code)) { + name = `GHOSTTY_KEY_${code}`; + } else { + const snake = code + .replace(/([a-z0-9])([A-Z])/g, "$1_$2") + .replace(/([A-Za-z])(\d)/g, "$1_$2") + .toUpperCase(); + name = `GHOSTTY_KEY_${snake}`; + } + } + const value = (GhosttyKey as Record)[name]; + // GHOSTTY_KEY_UNIDENTIFIED (0) means "no key" — report it as unmapped. + return value === undefined || value === GhosttyKey.GHOSTTY_KEY_UNIDENTIFIED ? null : value; +} + +export interface ModState { + ctrlKey: boolean; + altKey: boolean; + metaKey: boolean; + shiftKey: boolean; +} + +export function domEventMods(event: ModState): number { + let mods = 0; + if (event.shiftKey) mods |= MODS_SHIFT; + if (event.ctrlKey) mods |= MODS_CTRL; + if (event.altKey) mods |= MODS_ALT; + if (event.metaKey) mods |= MODS_SUPER; + return mods; +} diff --git a/packages/terminal/src/links.ts b/packages/terminal/src/links.ts new file mode 100644 index 0000000000000000000000000000000000000000..8d95d1c9b1ce395397bedb113b27524328c4eb78 --- /dev/null +++ b/packages/terminal/src/links.ts @@ -0,0 +1,102 @@ +// Link detection over a row's text. Pure: no DOM, no wasm, no workspace +// knowledge. The renderer turns the returned ranges into spans; the embedder +// decides what a path means (see `validate`) and what activating one does. +// +// Regex detection produces URLs and file paths with the `:line:col` suffix +// emitted by compilers, linters, and test runners. The renderer adds canonical +// OSC 8 identity from cells without asking this text-only detector to infer it. + +export type LinkKind = "url" | "path" | "osc8"; + +export interface DetectedLink { + kind: LinkKind; + /** Offsets into the row text (JS string indices, not columns). */ + start: number; + end: number; + /** Visible link text; regex matches have trailing punctuation removed. */ + text: string; + /** Path without its position suffix, visible URL, or exact OSC 8 URI. */ + target: string; + line: number | null; + column: number | null; +} + +export interface DetectLinksOptions { + /** + * Decide whether a path-shaped match is really a link — the workbench passes + * a workspace probe. ***Required for path detection: without it only URLs are + * returned.*** Path shape alone is not evidence (`e.g.` and `1.2.3` match the + * same grammar as `a/b.ts`), and a terminal that underlines prose is worse + * than one that underlines nothing. + */ + validate?: (target: string) => boolean; + /** Cap on matches per row — a pathological line should not stall a paint. */ + limit?: number; +} + +const URL_RE = /\b(?:https?|file|ftp):\/\/[^\s<>"'`]+/gi; + +const PATH_RE = + /(?:~\/|\.{1,2}[\\/]|[A-Za-z]:[\\/]|\\\\|\/)[^\s"'`<>]+|(?:[\w.@+-]+[\\/])+[\w.@+-]+(?::\d+){0,2}|[\w.@+-]+\.[A-Za-z]\w{0,9}(?::\d+){0,2}/g; + +/** Characters a URL or path may end with in prose but that are not part of it. */ +const TRAILING = /[.,:;!?)\]}'"]+$/; + +const DEFAULT_LIMIT = 64; + +export function detectLinks(text: string, options: DetectLinksOptions = {}): DetectedLink[] { + const limit = options.limit ?? DEFAULT_LIMIT; + const links: DetectedLink[] = []; + const taken: Array<[number, number]> = []; + + const overlaps = (start: number, end: number) => taken.some(([s, e]) => start < e && end > s); + + URL_RE.lastIndex = 0; + for (let m = URL_RE.exec(text); m !== null; m = URL_RE.exec(text)) { + if (links.length >= limit) break; + const raw = m[0]; + const trimmed = raw.replace(TRAILING, ""); + if (trimmed.length === 0) continue; + const start = m.index; + const end = start + trimmed.length; + taken.push([start, end]); + links.push({ + kind: "url", + start, + end, + text: trimmed, + target: trimmed, + line: null, + column: null, + }); + } + + const validate = options.validate; + if (validate === undefined) return links; + + PATH_RE.lastIndex = 0; + for (let m = PATH_RE.exec(text); m !== null; m = PATH_RE.exec(text)) { + if (links.length >= limit) break; + let raw = m[0]; + // Strip a trailing position-less punctuation tail, then re-parse position: + // `src/a.ts:12:3.` -> `src/a.ts:12:3`. + raw = raw.replace(TRAILING, ""); + if (raw.length === 0) continue; + const start = m.index; + const end = start + raw.length; + if (overlaps(start, end)) continue; + + const position = /^(.*?):(\d+)(?::(\d+))?$/.exec(raw); + const target = position ? position[1]! : raw; + const line = position ? Number(position[2]) : null; + const column = position?.[3] !== undefined ? Number(position[3]) : null; + if (target.length === 0) continue; + if (!validate(target)) continue; + + taken.push([start, end]); + links.push({ kind: "path", start, end, text: raw, target, line, column }); + } + + links.sort((a, b) => a.start - b.start); + return links; +} diff --git a/packages/terminal/src/mount.ts b/packages/terminal/src/mount.ts new file mode 100644 index 0000000000000000000000000000000000000000..370b93c5b17e8063a18b2901842793d2a6d8312b --- /dev/null +++ b/packages/terminal/src/mount.ts @@ -0,0 +1,109 @@ +import type { GhosttyModule } from "./ghostty/module.ts"; +import { Terminal, type TerminalEvents, type TerminalOptions } from "./ghostty/terminal.ts"; +import { TerminalView, type TerminalViewOptions } from "./renderer/dom.ts"; + +export interface MountTerminalOptions + extends + Partial, + Omit, + Omit { + /** Keystrokes, paste, mouse reports, and terminal query responses. Forward to the pty. */ + onData?: (bytes: Uint8Array) => void; + /** Called after a fitted container changes the terminal's cell geometry. */ + onResize?: (size: { cols: number; rows: number }) => void; +} + +export interface TerminalHandle { + readonly terminal: Terminal; + readonly view: TerminalView; + /** Initial font loading, measurement, fit, and resize reporting have settled. */ + readonly ready: Promise; + /** Feed pty output into the emulator and schedule its DOM frame. */ + write(data: string | Uint8Array): void; + /** Release the renderer lease and every native terminal resource. Idempotent. */ + dispose(): void; +} + +/** + * Mount the complete DOM terminal. Transport stays caller-owned: pass pty output + * to `write` and forward `onData` bytes back to the pty. + */ +export function mountTerminal( + container: HTMLElement, + module: GhosttyModule, + options: MountTerminalOptions = {}, +): TerminalHandle { + const terminal = new Terminal( + module, + { + cols: options.cols ?? 80, + rows: options.rows ?? 24, + ...(options.maxScrollbackBytes !== undefined + ? { maxScrollbackBytes: options.maxScrollbackBytes } + : {}), + ...(options.shellIntegration !== undefined + ? { shellIntegration: options.shellIntegration } + : {}), + ...(options.commandLimit !== undefined ? { commandLimit: options.commandLimit } : {}), + }, + { + onOutput: (bytes) => options.onData?.(bytes), + onBell: () => options.onBell?.(), + onTitleChanged: (title) => options.onTitleChanged?.(title), + onPwdChanged: (pwd) => options.onPwdChanged?.(pwd), + onShellMark: (mark) => options.onShellMark?.(mark), + onCommandStart: (command) => options.onCommandStart?.(command), + onCommandEnd: (command) => options.onCommandEnd?.(command), + onClipboardWrite: (write) => options.onClipboardWrite?.(write), + }, + ); + let view: TerminalView | null = null; + try { + view = new TerminalView(container, terminal, { + onData: (bytes) => options.onData?.(bytes), + ...(options.onBeforeKey ? { onBeforeKey: options.onBeforeKey } : {}), + ...(options.visible !== undefined ? { visible: options.visible } : {}), + ...(options.scrollback !== undefined ? { scrollback: options.scrollback } : {}), + ...(options.scrollbar !== undefined ? { scrollbar: options.scrollbar } : {}), + ...(options.links !== undefined ? { links: options.links } : {}), + ...(options.mouse !== undefined ? { mouse: options.mouse } : {}), + ...(options.stickyScroll !== undefined ? { stickyScroll: options.stickyScroll } : {}), + ...(options.predict !== undefined ? { predict: options.predict } : {}), + }); + view.observeResize((size) => options.onResize?.(size)); + } catch (error) { + view?.dispose(); + terminal.free(); + throw error; + } + + const mountedView = view; + let disposed = false; + return { + terminal, + view: mountedView, + ready: mountedView.ready, + write: (data) => { + let failed = false; + let writeError: unknown; + try { + terminal.write(data); + } catch (error) { + failed = true; + writeError = error; + } + try { + if (!disposed) mountedView.scheduleFrame(); + } catch (error) { + if (!failed) throw error; + } + if (failed) throw writeError; + }, + dispose: () => { + if (disposed) return; + disposed = true; + mountedView.dispose(); + terminal.free(); + }, + }; +} diff --git a/packages/terminal/src/predict/engine.ts b/packages/terminal/src/predict/engine.ts new file mode 100644 index 0000000000000000000000000000000000000000..afb325c7350ac47957674bcb9d5986ec178bd597 --- /dev/null +++ b/packages/terminal/src/predict/engine.ts @@ -0,0 +1,385 @@ +// Predictive local echo: speculative glyphs painted at the moment a key is +// pressed, before the pty has echoed anything back. +// +// The idea is mosh's, but the soundness gate is not. Mosh runs against a bare +// byte stream and has to *guess* whether the far end is in a line-editing mode +// that will echo what you typed; it guesses wrong in full-screen applications +// and pays for it with visible retractions. We have shell integration, so we +// can prove it instead: OSC 133/633 tells us a prompt has started accepting +// input (`B`) and has not yet executed (`C`), which is exactly the readline +// region where a typed character echoes at the cursor and nowhere else. +// +// Everything outside that proof is refused rather than guessed. The engine +// predicts single-column printable ASCII and backspaces over its own earlier +// predictions; wide characters, combining marks, wraps, control keys, and paste +// all drop the whole speculation instead of extending it. That is a deliberate +// scope: a wrong prediction is worse than a late one, and JavaScript never +// re-segments cells (Ghostty owns grapheme boundaries and width). +// +// Pure by construction: no DOM, no wasm, no clock. Time arrives as a `now` +// argument and screen state as plain data, so the whole thing is property +// testable without a terminal. + +/** `off` disables prediction entirely; `prompt` predicts only inside a proven readline region. */ +export type PredictionMode = "off" | "prompt"; + +export interface PredictOptions { + mode?: PredictionMode; + /** + * Show predictions only once the measured round trip reaches this. On a fast + * link the echo beats the next frame anyway, so predicting only adds a chance + * to be wrong. 0 displays from the first keystroke. + */ + minLatencyMs?: number; + /** Drop the whole speculation when a prediction goes this long unconfirmed. */ + timeoutMs?: number; + /** Underline unconfirmed predictions so speculation is legible as speculation. */ + underline?: boolean; + /** Hard cap on outstanding predictions; exceeding it drops the speculation. */ + maxPredictions?: number; +} + +export interface ResolvedPredictOptions { + readonly mode: PredictionMode; + readonly minLatencyMs: number; + readonly timeoutMs: number; + readonly underline: boolean; + readonly maxPredictions: number; +} + +export const DEFAULT_PREDICT_OPTIONS: ResolvedPredictOptions = { + mode: "off", + minLatencyMs: 25, + timeoutMs: 1000, + underline: true, + maxPredictions: 128, +}; + +const positive = (value: number | undefined, fallback: number): number => + value === undefined || !Number.isFinite(value) || value < 0 ? fallback : value; + +export function resolvePredictOptions( + options?: PredictOptions | PredictionMode | boolean, +): ResolvedPredictOptions { + if (options === undefined) return DEFAULT_PREDICT_OPTIONS; + if (typeof options === "boolean") { + return { ...DEFAULT_PREDICT_OPTIONS, mode: options ? "prompt" : "off" }; + } + if (typeof options === "string") return { ...DEFAULT_PREDICT_OPTIONS, mode: options }; + return { + mode: options.mode ?? DEFAULT_PREDICT_OPTIONS.mode, + minLatencyMs: positive(options.minLatencyMs, DEFAULT_PREDICT_OPTIONS.minLatencyMs), + timeoutMs: positive(options.timeoutMs, DEFAULT_PREDICT_OPTIONS.timeoutMs) || Infinity, + underline: options.underline ?? DEFAULT_PREDICT_OPTIONS.underline, + maxPredictions: + Math.floor(positive(options.maxPredictions, DEFAULT_PREDICT_OPTIONS.maxPredictions)) || 1, + }; +} + +/** Where a keystroke would land, as the renderer sees it at press time. */ +export interface PredictionSite { + /** Absolute screen row of the cursor (scrollback included). */ + row: number; + /** Cursor column. */ + col: number; + /** Terminal width, for the wrap refusal. */ + cols: number; + /** + * Proof we are inside the shell's line-editing region: OSC 133/633 `B` has + * arrived and `C` has not. False for every uninstrumented shell and every + * full-screen application, which is precisely the point. + */ + editing: boolean; +} + +/** The emulator's real state, narrowed to what reconciliation needs. */ +export interface ReconcileFrame { + /** Absolute row -> the canonical per-column text the emulator now shows. */ + rows: ReadonlyMap; + /** Absolute cursor position, or null when the cursor is hidden. */ + cursor: { row: number; col: number } | null; + /** Still inside the line-editing region. */ + editing: boolean; +} + +/** One speculative single-column glyph. */ +interface Prediction { + row: number; + col: number; + text: string; + sentAt: number; +} + +/** True only for characters we can place in exactly one column without re-segmenting. */ +export function isPredictableText(text: string): boolean { + if (text.length !== 1) return false; + const code = text.charCodeAt(0); + return code >= 0x20 && code <= 0x7e; +} + +const BLANK = " "; + +/** + * One cell's glyph, with Ghostty's empty cell and a written space treated as + * the same thing. Without this, typing a space could never confirm — the core + * reports a blank cell as `""` whether or not a space was written into it — and + * every space would eventually retract the whole line. + */ +const glyph = (text: string): string => (text === "" ? BLANK : text); + +/** Smoothing factor from RFC 6298 / mosh: a new sample moves the estimate by an eighth. */ +const SRTT_ALPHA = 1 / 8; +const MAX_RTT_SAMPLE_MS = 10_000; +/** Never call a prediction wrong before the echo has had a plausible chance to arrive. */ +const MIN_GRACE_MS = 50; + +export class PredictionEngine { + private readonly options: ResolvedPredictOptions; + private list: Prediction[] = []; + private cursorNow: { row: number; col: number } | null = null; + private srtt: number | null = null; + + constructor(options: ResolvedPredictOptions = DEFAULT_PREDICT_OPTIONS) { + this.options = options; + } + + get enabled(): boolean { + return this.options.mode !== "off"; + } + + /** Smoothed round trip in milliseconds, or null before the first confirmation. */ + get latencyMs(): number | null { + return this.srtt; + } + + get underline(): boolean { + return this.options.underline; + } + + /** + * Whether predictions should be painted at all. Deliberately false until a + * round trip has been measured: the first keystrokes of a session pay for the + * measurement, and on a fast link nothing is ever shown. + */ + get displaying(): boolean { + if (!this.enabled) return false; + if (this.options.minLatencyMs <= 0) return true; + return this.srtt !== null && this.srtt >= this.options.minLatencyMs; + } + + /** The speculative cursor position, or null when nothing is outstanding. */ + get cursor(): { row: number; col: number } | null { + if (!this.displaying || this.list.length === 0 || this.cursorNow === null) return null; + return { ...this.cursorNow }; + } + + /** Columns to superimpose on `row`, or undefined when that row carries no overlay. */ + overlayFor(row: number): ReadonlyMap | undefined { + if (!this.displaying) return undefined; + let cells: Map | undefined; + for (const prediction of this.list) { + if (prediction.row !== row) continue; + cells ??= new Map(); + cells.set(prediction.col, prediction.text); + } + return cells; + } + + /** Every row currently carrying an overlay. */ + overlaidRows(): number[] { + if (!this.displaying) return []; + return [...new Set(this.list.map((prediction) => prediction.row))]; + } + + /** Record locally typed text. Returns the rows the renderer must repaint. */ + type(text: string, site: PredictionSite, now: number): readonly number[] { + if (!this.enabled) return []; + const before = this.snapshot(); + this.applyType(text, site, now); + return this.changedRows(before); + } + + /** Record a backspace. Returns the rows the renderer must repaint. */ + backspace(site: PredictionSite, now: number): readonly number[] { + if (!this.enabled) return []; + const before = this.snapshot(); + this.applyBackspace(site, now); + return this.changedRows(before); + } + + /** + * Any input we refuse to model — Enter, arrows, chords, paste, mouse. The + * outstanding speculation is dropped rather than left to rot: whatever the + * program does next, our glyphs are no longer a claim we can defend. + */ + interrupt(): readonly number[] { + if (!this.enabled) return []; + const before = this.snapshot(); + this.clear(); + return this.changedRows(before); + } + + /** Drop everything, including the latency estimate. For resize and disposal. */ + reset(): readonly number[] { + const before = this.snapshot(); + this.clear(); + this.srtt = null; + return this.changedRows(before); + } + + /** + * Reconcile against real emulator state. Confirmed predictions are retired + * (the row now genuinely shows them) and any contradiction drops the entire + * speculation, not just the offending glyph — a wrong prediction means our + * model of the far end was wrong, so every prediction built on it is suspect. + */ + reconcile(frame: ReconcileFrame, now: number): readonly number[] { + if (!this.enabled || this.list.length === 0) return []; + const before = this.snapshot(); + this.applyReconcile(frame, now); + return this.changedRows(before); + } + + private applyType(text: string, site: PredictionSite, now: number): void { + if (!site.editing || !isPredictableText(text)) { + this.clear(); + return; + } + const base = this.cursorNow ?? { row: site.row, col: site.col }; + // A wrap changes row identity and can reflow; we cannot place a glyph past + // the last column without claiming to know how the core would wrap it. + if (base.col >= site.cols - 1 || base.col < 0) { + this.clear(); + return; + } + if (this.list.length >= this.options.maxPredictions) { + this.clear(); + return; + } + this.list.push({ row: base.row, col: base.col, text, sentAt: now }); + this.cursorNow = { row: base.row, col: base.col + 1 }; + } + + private applyBackspace(site: PredictionSite, _now: number): void { + // We only ever un-type our own speculation. Backspacing over real content + // would be a claim about what the shell's line editor does with it, and at + // the left edge it is a claim about the previous row. + const cursor = this.cursorNow; + if (!site.editing || cursor === null || this.list.length === 0) { + this.clear(); + return; + } + const last = this.list[this.list.length - 1]!; + if (last.row !== cursor.row || last.col !== cursor.col - 1) { + this.clear(); + return; + } + this.list.pop(); + this.cursorNow = { row: last.row, col: last.col }; + if (this.list.length === 0) this.cursorNow = null; + } + + private applyReconcile(frame: ReconcileFrame, now: number): void { + // Leaving the readline region invalidates the premise the predictions rest + // on, whatever the screen happens to show. + if (!frame.editing || frame.cursor === null) { + this.clear(); + return; + } + const kept: Prediction[] = []; + for (const prediction of this.list) { + const cells = frame.rows.get(prediction.row); + const actual = glyph(cells?.[prediction.col] ?? ""); + const expected = glyph(prediction.text); + if (cells !== undefined && actual === expected) { + // A blank column matching a predicted space is already visually true, + // but it is not evidence that a round trip completed, so it must not + // pull the latency estimate down. + if (actual !== BLANK) this.sample(now - prediction.sentAt); + continue; + } + if (now - prediction.sentAt >= this.options.timeoutMs) { + this.clear(); + return; + } + if (cells !== undefined) { + // Some other glyph already occupies the column. The echo did not fail + // to arrive — it arrived as something else, and no amount of waiting + // makes our claim true again. + if (actual !== BLANK) { + this.clear(); + return; + } + // Still blank past the point the echo should have landed. + if (now - prediction.sentAt >= this.graceMs()) { + this.clear(); + return; + } + } + kept.push(prediction); + } + // A confirmation retires the oldest predictions first; anything still + // outstanding must remain a contiguous tail, or our chain has a hole in it. + if (kept.length > 0 && kept.length !== this.list.length) { + const head = this.list.length - kept.length; + if (this.list.slice(head).some((prediction, index) => prediction !== kept[index])) { + this.clear(); + return; + } + } + // The real cursor must still be on the row we are predicting into. If it + // moved, the program did something we did not model. + if (kept.length > 0 && frame.cursor.row !== kept[0]!.row) { + this.clear(); + return; + } + this.list = kept; + if (kept.length === 0) this.cursorNow = null; + } + + /** + * How long an unconfirmed prediction stays innocent: about one round trip, + * floored so a fast link cannot retract an echo that is merely in flight. + * Before the first measurement the floor is all we have. + */ + private graceMs(): number { + const estimate = this.srtt === null ? MIN_GRACE_MS : this.srtt * 2; + return Math.max(MIN_GRACE_MS, Math.min(estimate, this.options.timeoutMs)); + } + + private sample(rtt: number): void { + if (!Number.isFinite(rtt) || rtt < 0) return; + const bounded = Math.min(rtt, MAX_RTT_SAMPLE_MS); + this.srtt = this.srtt === null ? bounded : this.srtt + (bounded - this.srtt) * SRTT_ALPHA; + } + + private clear(): void { + this.list = []; + this.cursorNow = null; + } + + /** Overlay identity as a comparable string, for computing the repaint set. */ + private snapshot(): Map { + const rows = new Map(); + if (!this.displaying) return rows; + for (const prediction of this.list) { + rows.set( + prediction.row, + `${rows.get(prediction.row) ?? ""}|${prediction.col}:${prediction.text}`, + ); + } + if (this.cursorNow !== null && this.list.length > 0) { + const row = this.cursorNow.row; + rows.set(row, `${rows.get(row) ?? ""}#${this.cursorNow.col}`); + } + return rows; + } + + private changedRows(before: Map): readonly number[] { + const after = this.snapshot(); + const changed = new Set(); + for (const [row, value] of before) if (after.get(row) !== value) changed.add(row); + for (const [row, value] of after) if (before.get(row) !== value) changed.add(row); + return [...changed]; + } +} diff --git a/packages/terminal/src/predict/frame.ts b/packages/terminal/src/predict/frame.ts new file mode 100644 index 0000000000000000000000000000000000000000..a257e59b0ae0cf294105cb723545b5b4219ff557 --- /dev/null +++ b/packages/terminal/src/predict/frame.ts @@ -0,0 +1,28 @@ +// Adapting canonical row snapshots into the flat, column-indexed shape the +// prediction engine reconciles against. +// +// This exists because `RowSnapshot.cells` is not column-indexed: spacer tails +// are omitted, so a wide glyph advances two columns from one array entry, and +// the canonical default tail is trimmed away entirely. Predictions are stated +// in columns, so the translation has to happen somewhere — and it belongs here, +// tested once, rather than inline at the reconciliation site where an off-by-one +// would silently read the wrong cell and retract a correct prediction. + +import type { CellSnapshot } from "../ghostty/terminal.ts"; + +/** + * Column-indexed text for one row. Empty and trimmed columns read as `""`, + * which is also what a prediction compares against when its glyph has not + * arrived yet. + */ +export function columnTexts(cells: readonly CellSnapshot[], cols: number): string[] { + const texts = Array.from({ length: Math.max(0, cols) }).fill(""); + let column = 0; + for (const cell of cells) { + if (column >= texts.length) break; + // A spacer head owns its column but carries no grapheme of its own. + texts[column] = cell.spacer === "head" ? "" : cell.text; + column += Math.max(1, cell.width); + } + return texts; +} diff --git a/packages/terminal/src/predict/index.ts b/packages/terminal/src/predict/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..d7dbad71da412987abe512dfeae721b09ab2c0d5 --- /dev/null +++ b/packages/terminal/src/predict/index.ts @@ -0,0 +1,12 @@ +export { + DEFAULT_PREDICT_OPTIONS, + isPredictableText, + PredictionEngine, + resolvePredictOptions, + type PredictionMode, + type PredictionSite, + type PredictOptions, + type ReconcileFrame, + type ResolvedPredictOptions, +} from "./engine.ts"; +export { columnTexts } from "./frame.ts"; diff --git a/packages/terminal/src/react.tsx b/packages/terminal/src/react.tsx new file mode 100644 index 0000000000000000000000000000000000000000..474ecb02a80384a7ffa440b38f0333b97be36e50 --- /dev/null +++ b/packages/terminal/src/react.tsx @@ -0,0 +1,81 @@ +// Thin React binding over Terminal + TerminalView. Behavior lives in the +// headless modules; this file only manages lifecycle. + +import { useEffect, useRef, type CSSProperties, type HTMLAttributes } from "react"; + +import { ansiToHtml } from "./ansi.ts"; +import type { GhosttyModule } from "./ghostty/module.ts"; +import { mountTerminal, type MountTerminalOptions, type TerminalHandle } from "./mount.ts"; + +export interface AnsiTextProps extends Omit< + HTMLAttributes, + "children" | "dangerouslySetInnerHTML" +> { + text: string; +} + +/** Static ANSI text with no terminal viewport, input, or scroll behavior. */ +export function AnsiText({ text, ...props }: AnsiTextProps) { + return ; +} + +export interface TerminalPaneProps extends MountTerminalOptions { + module: GhosttyModule; + /** @deprecated Use `scrollbar`; retained for existing consumers. */ + initialScrollbar?: boolean; + /** Receives the mounted handle and may return caller cleanup for unmount/remount. */ + onReady?: (handle: TerminalHandle) => void | (() => void); + className?: string; + style?: CSSProperties; +} + +export function TerminalPane(props: TerminalPaneProps) { + const hostRef = useRef(null); + const propsRef = useRef(props); + propsRef.current = props; + + useEffect(() => { + const host = hostRef.current; + if (host === null) return; + const p = propsRef.current; + const handle = mountTerminal(host, p.module, { + ...p, + onData: (bytes) => propsRef.current.onData?.(bytes), + onBeforeKey: (event) => propsRef.current.onBeforeKey?.(event) ?? true, + onResize: (size) => propsRef.current.onResize?.(size), + onTitleChanged: (title) => propsRef.current.onTitleChanged?.(title), + onPwdChanged: (pwd) => propsRef.current.onPwdChanged?.(pwd), + onBell: () => propsRef.current.onBell?.(), + onShellMark: (mark) => propsRef.current.onShellMark?.(mark), + onCommandStart: (command) => propsRef.current.onCommandStart?.(command), + onCommandEnd: (command) => propsRef.current.onCommandEnd?.(command), + onClipboardWrite: (write) => propsRef.current.onClipboardWrite?.(write), + ...(p.scrollbar !== undefined || p.initialScrollbar !== undefined + ? { scrollbar: p.scrollbar ?? p.initialScrollbar } + : {}), + }); + let cleanup: void | (() => void); + try { + cleanup = p.onReady?.(handle); + } catch (error) { + handle.dispose(); + throw error; + } + return () => { + try { + cleanup?.(); + } finally { + handle.dispose(); + } + }; + }, [props.module]); + + return ( +

+
+
+ ); +} diff --git a/packages/terminal/src/renderer/dom.ts b/packages/terminal/src/renderer/dom.ts new file mode 100644 index 0000000000000000000000000000000000000000..e034052c80cd4dd16bfcc42afe2c9f9936e5e529 --- /dev/null +++ b/packages/terminal/src/renderer/dom.ts @@ -0,0 +1,2120 @@ +// DOM renderer: dirty rows repaint as span runs, once per animation frame. +// Deliberately DOM (not canvas/GL): terminal output keeps native selection, +// browser find, and accessibility; throughput lands on the wasm parser, which +// absorbs bytes at full speed while this layer paints at most once per frame. + +import type { + CellSnapshot, + FrameReader, + FrameSnapshot, + RowSnapshot, + Scrollbar, + Terminal, +} from "../ghostty/terminal.ts"; +import { detectLinks, type DetectedLink, type DetectLinksOptions } from "../links.ts"; +import { + isPredictableText, + PredictionEngine, + resolvePredictOptions, + type PredictionMode, + type PredictionSite, + type PredictOptions, +} from "../predict/engine.ts"; +import { columnTexts } from "../predict/frame.ts"; +import { cellsToRuns, cellText, linkCells, rowText } from "../runs.ts"; +import { stickyCommand, stickyTarget } from "../shell/sticky.ts"; + +type GlyphFitMode = "wide" | "symbol" | "powerline"; + +interface FittedGlyph { + element: HTMLElement; + key: string; + cache: boolean; + mode: GlyphFitMode; + target: number; +} + +interface GlyphFit { + scaleX: number; + scaleY: number; + marginLeft: number; +} + +const GLYPH_FIT_CACHE_LIMIT = 512; +const GLYPH_FIT_CACHE_TEXT_LIMIT = 64; +// Matches terminal.css: 10px track + 3px right inset. +const SCROLLBAR_GUTTER = 13; +const FONT_LOADING_CLASS = "clo-term-font-loading"; +const FONT_ERROR_EVENT = "clo-terminal-font-error"; +const SYNCHRONIZED_OUTPUT_TIMEOUT_MS = 1000; +const SYMBOL_FONT_FAMILY = "__clo_terminal_symbols_3_4_0"; +const ROOT_CLASSES = [ + "clo-term", + "clo-term-has-scrollbar", + "clo-term-has-blink", + FONT_LOADING_CLASS, +] as const; +const ROOT_STYLE_PROPERTIES = [ + "--clo-term-effective-fg", + "--clo-term-effective-bg", + "--clo-term-effective-cursor", +] as const; +/** The palette's first 16 slots, in index order: the eight hues, then the same eight bright. */ +const ANSI_HUES = ["black", "red", "green", "yellow", "blue", "magenta", "cyan", "white"]; +const ANSI_TOKENS = [ + ...ANSI_HUES.map((hue) => `--clo-term-ansi-${hue}`), + ...ANSI_HUES.map((hue) => `--clo-term-ansi-bright-${hue}`), +]; +const PRIMARY_FONT_SAMPLE = "W"; +const SYMBOL_FONT_SAMPLE = "\uE0A3"; +const POWERLINE_SPRITES = new Map([ + [0xe0b0, "right-arrow"], + [0xe0b2, "left-arrow"], + [0xe0b4, "right-round"], + [0xe0b6, "left-round"], + [0xe0b8, "lower-left"], + [0xe0ba, "lower-right"], + [0xe0bc, "upper-left"], + [0xe0be, "upper-right"], +]); + +function privateUseBaseCodepoint(text: string): number | null { + const codepoint = text.codePointAt(0); + if (codepoint === undefined) return null; + return (codepoint >= 0xe000 && codepoint <= 0xf8ff) || + (codepoint >= 0xf0000 && codepoint <= 0xffffd) || + (codepoint >= 0x100000 && codepoint <= 0x10fffd) + ? codepoint + : null; +} + +function applyGlyphFit(element: HTMLElement, fit: GlyphFit): void { + element.style.marginLeft = `${fit.marginLeft}px`; + element.style.transform = `scale(${fit.scaleX}, ${fit.scaleY})`; +} + +interface FontCompletionEvent extends Event { + readonly fontfaces: readonly FontFace[]; +} + +interface FontCompletionSource { + addEventListener(type: "loadingdone", listener: EventListener): void; + removeEventListener(type: "loadingdone", listener: EventListener): void; +} + +function parseFontFamilies(value: string): string[] { + const families: string[] = []; + let start = 0; + let quote = ""; + let escaped = false; + for (let index = 0; index < value.length; index++) { + const char = value[index]!; + if (escaped) escaped = false; + else if (char === "\\") escaped = true; + else if (quote !== "") { + if (char === quote) quote = ""; + } else if (char === '"' || char === "'") quote = char; + else if (char === ",") { + families.push(value.slice(start, index).trim()); + start = index + 1; + } + } + families.push(value.slice(start).trim()); + return families.filter((family) => family !== ""); +} + +function normalizeFontFamily(value: string): string { + const family = value.trim(); + const quote = family[0]; + const unquoted = + family.length >= 2 && (quote === '"' || quote === "'") && family.at(-1) === quote + ? family.slice(1, -1) + : family; + return unquoted.replace(/\\(.)/g, "$1").toLowerCase(); +} + +function sameCells(left: readonly CellSnapshot[] | undefined, right: readonly CellSnapshot[]) { + return ( + left !== undefined && + left.length === right.length && + left.every((cell, index) => { + const other = right[index]!; + return ( + cell.text === other.text && + cell.width === other.width && + cell.spacer === other.spacer && + cell.protected === other.protected && + cell.semantic === other.semantic && + cell.hasOsc8 === other.hasOsc8 && + cell.osc8Uri === other.osc8Uri && + cell.fg === other.fg && + cell.bg === other.bg && + cell.underlineColor === other.underlineColor && + cell.bold === other.bold && + cell.italic === other.italic && + cell.faint === other.faint && + cell.blink === other.blink && + cell.inverse === other.inverse && + cell.invisible === other.invisible && + cell.strikethrough === other.strikethrough && + cell.overline === other.overline && + cell.underline === other.underline + ); + }) + ); +} + +function sameRowMetadata(left: RowSnapshot | undefined, right: RowSnapshot): boolean { + return ( + left !== undefined && + left.wrap === right.wrap && + left.wrapContinuation === right.wrapContinuation && + left.semanticPrompt === right.semanticPrompt && + left.hyperlink === right.hyperlink + ); +} + +export interface TerminalLinkOptions extends DetectLinksOptions { + /** + * Called on click (or ctrl/cmd-click, per `requireModifier`). Without it, + * links are detected and styled but inert — the embedder decides what a + * path, URL, or OSC 8 URI means. + */ + onActivate?: (link: DetectedLink, event: MouseEvent) => void; + /** Require ctrl/cmd like an editor, rather than plain click. Default false. */ + requireModifier?: boolean; +} + +export interface TerminalViewOptions { + /** Let the host claim application shortcuts before VT encoding. */ + onBeforeKey?: (event: KeyboardEvent) => boolean; + /** Hidden terminals keep their grid and dirty rows until shown. */ + visible?: boolean; + /** All terminal-bound input: keystrokes, paste, and query responses. */ + onData?: (bytes: Uint8Array) => void; + /** Wheel scrollback is enabled unless the alternate screen has the viewport. */ + scrollback?: boolean; + /** Render the terminal-owned scrollbar and reserve its gutter. Default true. */ + scrollbar?: boolean; + /** Render OSC 8 links and detect URLs/`path:line:col`. Off when omitted. */ + links?: TerminalLinkOptions; + /** + * Forward mouse events to programs that ask for them (vim, htop, lazygit). + * Only active while the program has tracking on, so ordinary output keeps + * native selection. Default true. + */ + mouse?: boolean; + /** + * Pin the running command's line at the top while scrolled inside its + * output. Needs shell integration to have anything to pin; inert otherwise. + * Default true. + */ + stickyScroll?: boolean; + /** + * Paint typed characters speculatively, before the pty echoes them, to hide + * round-trip latency on a remote host. Off by default, and inert without + * shell integration: prediction only runs inside a proven readline region. + * See [`../predict/engine.ts`](../predict/engine.ts). + */ + predict?: PredictOptions | PredictionMode | boolean; +} + +const num = (v: number) => `#${v.toString(16).padStart(6, "0")}`; + +/** + * A row as it would look with speculative glyphs applied, plus the indices of + * the cells that are speculative. Only overlaid columns allocate a derived + * cell; every other entry stays the canonical reference the run grouper expects. + * + * The row is extended with blank cells when a prediction lands past the + * canonical default tail, which is the normal case: you type into empty space. + */ +function applyOverlay( + row: RowSnapshot, + overlay: ReadonlyMap, +): { row: RowSnapshot; predicted: Set } { + const cells = [...row.cells]; + const predicted = new Set(); + // Cell indices are not columns — wide glyphs advance two — so walk the row + // once and record where each column's cell lives. + const cellAtColumn = new Map(); + let column = 0; + for (let index = 0; index < cells.length; index++) { + cellAtColumn.set(column, index); + column += Math.max(1, cells[index]!.width); + } + const blank = (): CellSnapshot => ({ + text: "", + width: 1, + spacer: "none", + protected: false, + semantic: "input", + hasOsc8: false, + osc8Uri: null, + fg: -1, + bg: -1, + underlineColor: -1, + bold: false, + italic: false, + faint: false, + blink: false, + inverse: false, + invisible: false, + strikethrough: false, + overline: false, + underline: 0, + }); + for (const [col, text] of [...overlay].sort((a, b) => a[0] - b[0])) { + let index = cellAtColumn.get(col); + if (index === undefined) { + // Past the trimmed tail: pad with blanks up to the predicted column. + while (column <= col) { + cellAtColumn.set(column, cells.length); + cells.push(blank()); + column++; + } + index = cellAtColumn.get(col); + if (index === undefined) continue; + } + const base = cells[index]!; + // Inherit the canonical cell's presentation so a prediction adopts the + // prompt's colors rather than inventing its own. + cells[index] = { ...base, text, width: 1, spacer: "none" }; + predicted.add(index); + } + return { row: { ...row, cells }, predicted }; +} + +export class TerminalView { + readonly element: HTMLElement; + readonly input: HTMLTextAreaElement; + /** Resolves after the first font-ready or fallback geometry transaction. */ + readonly ready: Promise; + private terminal: Terminal; + private frameReader: FrameReader; + private options: TerminalViewOptions; + private viewportEl: HTMLElement; + private rowsHost: HTMLElement; + private cursorEl: HTMLElement; + private metricProbe: HTMLElement; + private scrollbarEl: HTMLElement | null = null; + private scrollbarThumb: HTMLElement | null = null; + private stickyEl: HTMLElement | null = null; + /** Painted rows keyed in Ghostty's absolute scrollbar/screen row space. */ + private rowEls = new Map(); + private rowSnapshots = new Map(); + private rowLinks = new Map(); + /** Last cell a motion event was reported for; suppresses per-pixel reports. */ + private lastMouseCell = ""; + private predictor: PredictionEngine; + /** + * Rows currently carrying a speculative glyph. Load-bearing: `rowSnapshots` + * stays canonical, so the next real frame's `sameCells` check would consider + * an overlaid row unchanged and leave a retracted prediction on screen. These + * rows repaint unconditionally. + */ + private overlaidRows = new Set(); + /** The last cursor the emulator reported, in absolute row space. */ + private realCursor: { row: number; col: number; wide: boolean; className: string } | null = null; + private cursorUnderline = false; + private firstRowNow = 0; + /** Which command the sticky header currently shows; avoids per-frame DOM writes. */ + private stickyCommandId: number | null = null; + private frameQueued = false; + private frameToken = 0; + private automaticMetricRefreshPending = false; + private contentFramePending = false; + private synchronizedOutputTimeout: ReturnType | null = null; + private needFull = true; + private frameForeground = Number.NaN; + private frameBackground = Number.NaN; + private frameCursorColor = Number.NaN; + private cellW = 8; + private cellH = 17; + /** Visual viewport top. Ghostty itself remains on an adjacent integer row. */ + private scrollPosition: number | null = null; + private scrollMax = 0; + private terminalViewportRevision: number; + private scrollbarDrag: { pointerId: number; y: number; offset: number } | null = null; + private scrollbarTrackHeight: number | null = null; + private glyphFits = new Map(); + private detach: Array<() => void> = []; + private observer: ResizeObserver | null = null; + private metricObserver: ResizeObserver | null = null; + private completedMetricResize: { width: number; height: number } | null = null; + private resizeCallback: ((size: { cols: number; rows: number }) => void) | null = null; + private initialized = false; + private visible: boolean; + private selectingOutput = false; + private disposedView = false; + private initialTabIndex: string | null; + private initialClasses: Set; + private initialRootStyles: Array<{ name: string; value: string; priority: string }>; + + constructor(container: HTMLElement, terminal: Terminal, options: TerminalViewOptions = {}) { + this.terminal = terminal; + this.frameReader = terminal.acquireFrameReader(); + this.terminalViewportRevision = terminal.viewportRevision; + this.options = options; + this.visible = options.visible !== false; + this.predictor = new PredictionEngine(resolvePredictOptions(options.predict)); + this.element = container; + this.initialTabIndex = container.getAttribute("tabindex"); + this.initialClasses = new Set( + ROOT_CLASSES.filter((name) => container.classList.contains(name)), + ); + this.initialRootStyles = ROOT_STYLE_PROPERTIES.map((name) => ({ + name, + value: container.style.getPropertyValue(name), + priority: container.style.getPropertyPriority(name), + })); + try { + this.input = container.ownerDocument.createElement("textarea"); + this.viewportEl = container.ownerDocument.createElement("div"); + this.rowsHost = container.ownerDocument.createElement("div"); + this.cursorEl = container.ownerDocument.createElement("div"); + this.metricProbe = container.ownerDocument.createElement("span"); + } catch (error) { + this.frameReader.dispose(); + throw error; + } + + try { + container.classList.add("clo-term"); + container.classList.add(FONT_LOADING_CLASS); + container.classList.toggle("clo-term-has-scrollbar", options.scrollbar !== false); + container.tabIndex = 0; + this.input.className = "clo-term-input"; + this.input.tabIndex = -1; + this.input.setAttribute("aria-label", "Terminal input"); + this.input.autocomplete = "off"; + this.input.spellcheck = false; + container.appendChild(this.input); + + this.viewportEl.className = "clo-term-viewport"; + this.viewportEl.style.touchAction = "pan-x pinch-zoom"; + container.appendChild(this.viewportEl); + + this.rowsHost.className = "clo-term-rows"; + this.viewportEl.appendChild(this.rowsHost); + + this.cursorEl.className = "clo-term-cursor"; + this.rowsHost.appendChild(this.cursorEl); + + this.metricProbe.className = "clo-term-measure"; + this.metricProbe.textContent = "W".repeat(32); + container.appendChild(this.metricProbe); + + if (options.scrollbar !== false) { + this.scrollbarEl = container.ownerDocument.createElement("div"); + this.scrollbarEl.className = "clo-term-scrollbar"; + this.scrollbarEl.role = "scrollbar"; + this.scrollbarEl.tabIndex = 0; + this.scrollbarEl.setAttribute("aria-orientation", "vertical"); + this.scrollbarEl.setAttribute("aria-label", "Terminal scrollback"); + this.scrollbarThumb = container.ownerDocument.createElement("div"); + this.scrollbarThumb.className = "clo-term-scrollbar-thumb"; + this.scrollbarEl.appendChild(this.scrollbarThumb); + container.appendChild(this.scrollbarEl); + this.bindScrollbar(); + } + + if (options.stickyScroll !== false) { + this.stickyEl = container.ownerDocument.createElement("div"); + this.stickyEl.className = "clo-term-sticky"; + this.stickyEl.style.display = "none"; + // Clicking the pinned header jumps back to where the command started — + // the affordance that makes it navigation rather than decoration. + this.stickyEl.addEventListener("click", () => this.jumpToSticky()); + container.appendChild(this.stickyEl); + } + + if (typeof ResizeObserver !== "undefined") { + this.metricObserver = new ResizeObserver((entries) => { + if (!this.initialized) return; + const rect = entries.find((entry) => entry.target === this.metricProbe)?.contentRect; + if ( + rect !== undefined && + rect.width === this.completedMetricResize?.width && + rect.height === this.completedMetricResize.height + ) { + this.completedMetricResize = null; + return; + } + this.completedMetricResize = null; + this.queueAutomaticMetricRefresh(); + }); + this.metricObserver.observe(this.metricProbe); + this.observer = new ResizeObserver(() => { + if (!this.initialized) return; + const resized = this.resizeToFit(); + this.syncViewportGeometry(); + this.syncMouseGeometry(); + if (resized) this.needFull = true; + this.queueFrame(); + }); + this.observer.observe(this.element); + } + this.bindInput(); + // ***Before the font gate, not inside it***: a program asks for the + // background in its first bytes — codex does — and an answer that waits on + // a webfont arrives after it has already decided how to draw. + this.publishThemeColors(); + this.scheduleFrame(); + + const fonts = container.ownerDocument.fonts as FontFaceSet | undefined; + if ( + fonts === undefined || + typeof fonts.load !== "function" || + typeof fonts.check !== "function" + ) { + this.initialize(); + this.ready = Promise.resolve(); + } else { + this.ready = this.loadInitialFonts(fonts) + .then( + () => this.initialize(), + (error: unknown) => this.initializeFallback(error), + ) + .then(() => this.bindFontCompletion(fonts)); + } + } catch (error) { + this.dispose(); + throw error; + } + } + + private async loadInitialFonts(fonts: FontFaceSet): Promise { + const style = getComputedStyle(this.element); + const families = parseFontFamilies(style.fontFamily); + const primary = families[0]; + if (primary === undefined) throw new Error("terminal primary font family is unavailable"); + const requests = [ + { descriptor: `normal 400 ${style.fontSize} ${primary}`, sample: PRIMARY_FONT_SAMPLE }, + { descriptor: `normal 600 ${style.fontSize} ${primary}`, sample: PRIMARY_FONT_SAMPLE }, + { descriptor: `italic 400 ${style.fontSize} ${primary}`, sample: PRIMARY_FONT_SAMPLE }, + { descriptor: `italic 600 ${style.fontSize} ${primary}`, sample: PRIMARY_FONT_SAMPLE }, + ]; + const symbol = families.find( + (family) => normalizeFontFamily(family) === SYMBOL_FONT_FAMILY.toLowerCase(), + ); + if (symbol !== undefined) { + requests.push({ + descriptor: `normal 400 ${style.fontSize} ${symbol}`, + sample: SYMBOL_FONT_SAMPLE, + }); + } + const loaded = await Promise.allSettled( + requests.map(({ descriptor, sample }) => fonts.load(descriptor, sample)), + ); + const unavailable = requests.filter(({ descriptor, sample }, index) => { + const result = loaded[index]!; + return ( + result.status === "rejected" || + result.value.length === 0 || + !fonts.check(descriptor, sample) + ); + }); + if (unavailable.length > 0) { + const rejection = loaded.find((result) => result.status === "rejected"); + if (rejection !== undefined) throw rejection.reason; + throw new Error( + `terminal font faces unavailable: ${unavailable.map(({ descriptor }) => descriptor).join(", ")}`, + ); + } + } + + private initializeFallback(error: unknown): void { + if (this.disposedView) return; + this.element.dispatchEvent( + new CustomEvent(FONT_ERROR_EVENT, { + bubbles: true, + detail: { error }, + }), + ); + this.initialize(); + } + + private initialize(): void { + if (this.initialized || this.disposedView) return; + this.measure(); + this.resizeToFit(false); + this.syncViewportGeometry(); + if (this.visible) this.resizeCallback?.({ cols: this.terminal.cols, rows: this.terminal.rows }); + if (this.disposedView) return; + this.syncMouseGeometry(); + this.initialized = true; + this.needFull = true; + this.element.classList.remove(FONT_LOADING_CLASS); + this.queueFrame(); + } + + private bindFontCompletion(fonts: FontFaceSet): void { + if (this.disposedView) return; + // Some DOM libraries have not yet specialized FontFaceSet's EventTarget + // overload even though browsers expose FontFaceSetLoadEvent.fontfaces. + const source = fonts as unknown as FontCompletionSource; + if ( + typeof source.addEventListener !== "function" || + typeof source.removeEventListener !== "function" + ) { + return; + } + const onLoadingDone: EventListener = (event) => { + if (!this.initialized || this.disposedView) return; + const completed = (event as FontCompletionEvent).fontfaces; + if (completed === undefined) return; + const families = new Set( + parseFontFamilies(getComputedStyle(this.element).fontFamily).map(normalizeFontFamily), + ); + if (!completed.some((face) => families.has(normalizeFontFamily(face.family)))) return; + this.queueAutomaticMetricRefresh(); + }; + source.addEventListener("loadingdone", onLoadingDone); + this.detach.push(() => source.removeEventListener("loadingdone", onLoadingDone)); + } + + /** Call after every terminal.write() batch; coalesces to one paint per frame. */ + scheduleFrame(): void { + this.contentFramePending = true; + if (!this.visible) return; + if (this.suspendSynchronizedOutput()) return; + this.queueFrame(); + } + + private suspendSynchronizedOutput(): boolean { + if (!this.terminal.synchronizedOutput) return false; + this.synchronizedOutputTimeout ??= setTimeout(() => { + this.synchronizedOutputTimeout = null; + if (this.disposedView || !this.terminal.synchronizedOutput) return; + this.terminal.resetSynchronizedOutput(); + this.scheduleFrame(); + }, SYNCHRONIZED_OUTPUT_TIMEOUT_MS); + return true; + } + + private queueFrame(): void { + if (!this.initialized || this.disposedView || !this.visible || this.frameQueued) return; + this.frameQueued = true; + const raf = + typeof requestAnimationFrame === "function" + ? requestAnimationFrame + : (fn: () => void) => setTimeout(fn, 16); + const token = ++this.frameToken; + raf(() => { + if (token !== this.frameToken) return; + this.frameQueued = false; + this.paint(); + }); + } + + private queueAutomaticMetricRefresh(): void { + this.automaticMetricRefreshPending = true; + this.scheduleFrame(); + } + + /** Compute the cols/rows that fit the container at current metrics. */ + private availableSize(): { width: number; height: number } { + const rect = this.element.getBoundingClientRect(); + const style = getComputedStyle(this.element); + const px = (value: string) => Number.parseFloat(value) || 0; + const paddingX = px(style.paddingLeft) + px(style.paddingRight); + const paddingY = px(style.paddingTop) + px(style.paddingBottom); + const borderX = px(style.borderLeftWidth) + px(style.borderRightWidth); + const borderY = px(style.borderTopWidth) + px(style.borderBottomWidth); + const width = + this.element.clientWidth > 0 + ? this.element.clientWidth - paddingX + : rect.width - paddingX - borderX; + const height = + this.element.clientHeight > 0 + ? this.element.clientHeight - paddingY + : rect.height - paddingY - borderY; + return { width, height }; + } + + /** Compute the cols/rows that fit the container at current metrics. */ + fit(): { cols: number; rows: number } { + if (!this.visible) return { cols: this.terminal.cols, rows: this.terminal.rows }; + const { width, height } = this.availableSize(); + const availableWidth = Math.max(0, width - (this.scrollbarEl === null ? 0 : SCROLLBAR_GUTTER)); + const cols = + width > 0 ? Math.max(2, Math.floor(availableWidth / this.cellW)) : this.terminal.cols; + const rows = height > 0 ? Math.max(1, Math.floor(height / this.cellH)) : this.terminal.rows; + return { cols, rows }; + } + + /** Receive geometry changes (wire to pty.resize); fitting itself is intrinsic. */ + observeResize(onResize: (size: { cols: number; rows: number }) => void): void { + this.resizeCallback = onResize; + if (this.initialized && this.visible) + onResize({ cols: this.terminal.cols, rows: this.terminal.rows }); + } + + private resizeToFit(report = true): boolean { + if (!this.visible) return false; + const size = this.fit(); + if (size.cols === this.terminal.cols && size.rows === this.terminal.rows) return false; + this.settleFractionalScroll(); + // Reflow moves rows and columns underneath every outstanding prediction, + // and the latency estimate belongs to a geometry that no longer exists. + this.predictor.reset(); + this.overlaidRows.clear(); + this.terminal.resize(size.cols, size.rows); + if (report) this.resizeCallback?.(size); + return true; + } + + private syncViewportGeometry(): void { + const { width, height } = this.availableSize(); + const availableWidth = Math.max(0, width - (this.scrollbarEl === null ? 0 : SCROLLBAR_GUTTER)); + this.viewportEl.style.width = `${ + width > 0 + ? Math.min(this.terminal.cols * this.cellW, availableWidth) + : this.terminal.cols * this.cellW + }px`; + this.viewportEl.style.height = `${ + height > 0 + ? Math.min(this.terminal.rows * this.cellH, height) + : this.terminal.rows * this.cellH + }px`; + } + + paint(): void { + if (!this.visible) return; + if (!this.initialized || this.disposedView) return; + if (this.frameQueued) { + this.frameQueued = false; + this.frameToken++; + } + if (this.suspendSynchronizedOutput()) return; + if (this.synchronizedOutputTimeout !== null) { + clearTimeout(this.synchronizedOutputTimeout); + this.synchronizedOutputTimeout = null; + } + if (this.automaticMetricRefreshPending) { + this.automaticMetricRefreshPending = false; + if (this.refreshMetricTransaction(false)) { + this.completedMetricResize = { width: this.cellW * 32, height: this.cellH }; + } + } + const contentFrame = this.contentFramePending; + const snapshot = this.frameReader.snapshot({ full: this.needFull }); + this.needFull = false; + this.applyFrame(snapshot); + if (contentFrame) this.refreshFractionalBoundary(); + this.contentFramePending = false; + } + + /** + * The predictive-echo engine, for diagnostics and tests. Read-only in + * practice: input drives it, and reaching in to mutate it desynchronizes the + * renderer's overlaid-row bookkeeping. + */ + get predictions(): PredictionEngine { + return this.predictor; + } + + /** Read renderer-owned state for diagnostics, forcing the next paint to rebuild its row cache. */ + inspectFrame(options: { full?: boolean } = { full: true }): FrameSnapshot { + if (this.disposedView) throw new Error("terminal view is disposed"); + if (this.terminal.synchronizedOutput) { + throw new Error("terminal frame is suppressed by synchronized output"); + } + const frame = this.frameReader.snapshot(options); + this.needFull = true; + return frame; + } + + /** Refresh the one visible row outside Ghostty's adjacent integer viewport. */ + private refreshFractionalBoundary(): void { + const position = this.scrollPosition; + if (position === null || Number.isInteger(position)) return; + const current = this.terminal.scrollbar().offset; + const firstRow = Math.floor(position); + const other = current === firstRow ? firstRow + 1 : firstRow; + const boundary = current === firstRow ? firstRow + this.terminal.rows : firstRow; + + this.terminal.scrollToRow(other); + const frame = this.frameReader.snapshot({ full: true }); + const offset = this.terminal.scrollbar().offset; + const row = frame.dirtyRows.find((candidate) => offset + candidate.index === boundary); + if (row !== undefined) { + let el = this.rowEls.get(boundary); + if (el === undefined) { + el = this.element.ownerDocument.createElement("div"); + el.className = "clo-term-row"; + el.dataset["screenRow"] = String(boundary); + this.rowEls.set(boundary, el); + const next = this.rowEls.get(boundary + 1); + if (next === undefined) this.rowsHost.appendChild(el); + else next.before(el); + } + const previous = this.rowSnapshots.get(boundary); + const cellsChanged = !sameCells(previous?.cells, row.cells); + const metadataChanged = !sameRowMetadata(previous, row); + this.rowSnapshots.set(boundary, row); + if (metadataChanged) this.applyRowMetadata(el, row); + if (cellsChanged) { + this.fitGlyphs( + this.paintRow(row, frame, boundary, el, this.predictor.overlayFor(boundary)), + ); + } + } + this.terminal.scrollToRow(current); + } + + private applyFrame(frame: FrameSnapshot): void { + const doc = this.element.ownerDocument; + const rootStyle = this.element.style; + const cursorColor = frame.cursor?.color ?? -1; + const colorsChanged = + frame.foreground !== this.frameForeground || frame.background !== this.frameBackground; + if (frame.foreground !== this.frameForeground) { + if (frame.foreground === -1) rootStyle.removeProperty("--clo-term-effective-fg"); + else rootStyle.setProperty("--clo-term-effective-fg", num(frame.foreground)); + } + if (frame.background !== this.frameBackground) { + if (frame.background === -1) rootStyle.removeProperty("--clo-term-effective-bg"); + else rootStyle.setProperty("--clo-term-effective-bg", num(frame.background)); + } + if (cursorColor !== this.frameCursorColor) { + if (cursorColor === -1) rootStyle.removeProperty("--clo-term-effective-cursor"); + else rootStyle.setProperty("--clo-term-effective-cursor", num(cursorColor)); + } + const scrollbar = this.terminal.scrollbar(); + this.terminalViewportRevision = this.terminal.viewportRevision; + const wasAtBottom = this.scrollPosition !== null && this.scrollPosition === this.scrollMax; + if ( + this.scrollPosition === null || + Number.isInteger(this.scrollPosition) || + (wasAtBottom && scrollbar.offset === scrollbar.total - scrollbar.len) + ) { + this.scrollPosition = scrollbar.offset; + } + this.scrollMax = Math.max(0, scrollbar.total - scrollbar.len); + + const position = Math.max(0, Math.min(this.scrollMax, this.scrollPosition)); + this.scrollPosition = position; + const firstRow = Math.floor(position); + this.firstRowNow = firstRow; + const fraction = position - firstRow; + const lastRow = firstRow + frame.rows - 1 + (fraction > 0 ? 1 : 0); + + // Reconcile before painting so this frame renders the overlay the emulator + // state actually justifies, rather than one frame of stale speculation. + const wasOverlaid = new Set(this.overlaidRows); + this.reconcilePredictions(frame, scrollbar.offset); + + const previousRows = new Map(); + for (const row of frame.dirtyRows) { + const absoluteRow = scrollbar.offset + row.index; + previousRows.set(absoluteRow, this.rowSnapshots.get(absoluteRow)); + this.rowSnapshots.set(absoluteRow, row); + } + const fittedGlyphs: FittedGlyph[] = []; + const paintedRows = new Set(); + for (const row of frame.dirtyRows) { + const absoluteRow = scrollbar.offset + row.index; + let el = this.rowEls.get(absoluteRow); + const created = el === undefined; + if (el === undefined) { + el = doc.createElement("div"); + el.className = "clo-term-row"; + el.dataset["screenRow"] = String(absoluteRow); + this.rowEls.set(absoluteRow, el); + } + const previous = previousRows.get(absoluteRow); + const cellsChanged = !sameCells(previous?.cells, row.cells); + const metadataChanged = !sameRowMetadata(previous, row); + if (created || metadataChanged) this.applyRowMetadata(el, row); + const overlay = this.predictor.overlayFor(absoluteRow); + // An overlaid row must repaint even when its canonical cells are + // unchanged: `rowSnapshots` never carries the speculation, so `sameCells` + // cannot see a prediction being added or retracted. + const overlayChanged = overlay !== undefined || wasOverlaid.has(absoluteRow); + if (created || cellsChanged || colorsChanged || overlayChanged) { + fittedGlyphs.push(...this.paintRow(row, frame, absoluteRow, el, overlay)); + paintedRows.add(absoluteRow); + } + } + // Rows that carried speculation but are not in this frame still have to + // lose it; nothing else would ever repaint them. + for (const absoluteRow of wasOverlaid) { + if (paintedRows.has(absoluteRow)) continue; + const snapshot = this.rowSnapshots.get(absoluteRow); + const el = this.rowEls.get(absoluteRow); + if (snapshot === undefined || el === undefined) continue; + fittedGlyphs.push( + ...this.paintRow(snapshot, frame, absoluteRow, el, this.predictor.overlayFor(absoluteRow)), + ); + paintedRows.add(absoluteRow); + } + this.overlaidRows = new Set(this.predictor.overlaidRows()); + if (colorsChanged) { + for (const [absoluteRow, row] of this.rowSnapshots) { + if (absoluteRow < firstRow || absoluteRow > lastRow || paintedRows.has(absoluteRow)) + continue; + const el = this.rowEls.get(absoluteRow); + if (el !== undefined) { + fittedGlyphs.push( + ...this.paintRow(row, frame, absoluteRow, el, this.predictor.overlayFor(absoluteRow)), + ); + } + } + } + this.frameForeground = frame.foreground; + this.frameBackground = frame.background; + this.frameCursorColor = cursorColor; + + for (const [screenRow, el] of this.rowEls) { + if (screenRow < firstRow || screenRow > lastRow) { + el.remove(); + this.rowEls.delete(screenRow); + this.rowSnapshots.delete(screenRow); + this.rowLinks.delete(screenRow); + } + } + this.element.classList.toggle( + "clo-term-has-blink", + frame.cursor?.blinking === true || + [...this.rowSnapshots.values()].some((row) => row.cells.some((cell) => cell.blink)), + ); + let previous = this.cursorEl; + for (let screenRow = firstRow; screenRow <= lastRow; screenRow++) { + const el = this.rowEls.get(screenRow); + if (el !== undefined) { + if (previous.nextElementSibling !== el) previous.after(el); + previous = el; + } + } + this.rowsHost.style.transform = fraction === 0 ? "" : `translateY(${-fraction * this.cellH}px)`; + + this.fitGlyphs(fittedGlyphs); + this.paintCursor(frame, scrollbar.offset, firstRow); + this.paintSticky(position); + this.paintScrollbar(scrollbar, position); + } + + private now(): number { + const clock = globalThis.performance; + return clock !== undefined && typeof clock.now === "function" ? clock.now() : Date.now(); + } + + /** True only while the shell says a prompt is accepting input and has not executed. */ + private editing(): boolean { + return this.terminal.shell.current?.state === "editing"; + } + + /** Fold this frame's real rows into the engine, retiring or dropping speculation. */ + private reconcilePredictions(frame: FrameSnapshot, viewportTop: number): void { + if (!this.predictor.enabled) return; + const rows = new Map(); + for (const row of frame.dirtyRows) { + rows.set(viewportTop + row.index, columnTexts(row.cells, frame.cols)); + } + this.predictor.reconcile( + { + rows, + cursor: + frame.cursor === null ? null : { row: viewportTop + frame.cursor.y, col: frame.cursor.x }, + editing: this.editing(), + }, + this.now(), + ); + } + + /** Where a keystroke would land right now, as the last painted frame saw it. */ + private predictionSite(): PredictionSite | null { + const cursor = this.realCursor; + if (cursor === null) return null; + return { + row: cursor.row, + col: cursor.col, + cols: this.terminal.cols, + editing: this.editing(), + }; + } + + /** + * Repaint rows whose speculation changed, without a frame. + * + * This is the one paint path that must never touch the frame reader: dirty + * snapshots are destructive, so consuming one here would swallow real pty + * output that had not been painted yet. It repaints from the canonical + * `rowSnapshots` cache instead, which is exactly what the last frame left. + */ + private repaintPredictedRows(rows: readonly number[]): void { + if (rows.length === 0 || !this.initialized || this.disposedView) return; + const colors = { foreground: this.frameForeground, background: this.frameBackground }; + const fittedGlyphs: FittedGlyph[] = []; + for (const absoluteRow of rows) { + const snapshot = this.rowSnapshots.get(absoluteRow); + const el = this.rowEls.get(absoluteRow); + if (snapshot === undefined || el === undefined) continue; + const overlay = this.predictor.overlayFor(absoluteRow); + if (overlay === undefined) this.overlaidRows.delete(absoluteRow); + else this.overlaidRows.add(absoluteRow); + fittedGlyphs.push(...this.paintRow(snapshot, colors, absoluteRow, el, overlay)); + } + this.fitGlyphs(fittedGlyphs); + this.placeCursor(); + } + + /** Fold a keystroke into the engine and paint whatever it changed. */ + private predictKey(event: KeyboardEvent): void { + if (!this.predictor.enabled) return; + const site = this.predictionSite(); + if (site === null) return; + const now = this.now(); + const bare = !event.ctrlKey && !event.metaKey && !event.altKey; + const rows = + bare && event.key === "Backspace" + ? this.predictor.backspace(site, now) + : bare && isPredictableText(event.key) + ? this.predictor.type(event.key, site, now) + : this.predictor.interrupt(); + this.repaintPredictedRows(rows); + } + + /** Drop speculation that no longer has a defensible basis. */ + private dropPredictions(): void { + if (!this.predictor.enabled) return; + this.repaintPredictedRows(this.predictor.interrupt()); + } + + /** + * Pin the command whose output the viewport is inside. Recomputed per frame + * rather than cached: scrolling does not dirty rows, so there is no cheaper + * signal, and the work is one pass over a bounded command list. + */ + private paintSticky(viewportTop: number): void { + const el = this.stickyEl; + if (el === null) return; + const command = stickyCommand(this.terminal.shell.commands, viewportTop); + if (command === null || command.commandLine === null) { + el.style.display = "none"; + this.stickyCommandId = null; + return; + } + if (this.stickyCommandId !== command.id) { + this.stickyCommandId = command.id; + el.textContent = command.commandLine; + } + el.className = + command.exitCode !== null && command.exitCode !== 0 + ? "clo-term-sticky failed" + : "clo-term-sticky"; + el.style.display = "block"; + el.style.height = `${this.cellH}px`; + } + + private jumpToSticky(): void { + const command = stickyCommand( + this.terminal.shell.commands, + this.scrollPosition ?? this.terminal.scrollbar().offset, + ); + if (command === null) return; + const row = stickyTarget(command); + if (row === null) return; + this.scrollToRow(row); + } + + private paintScrollbar(scrollbar: Scrollbar, position = scrollbar.offset): void { + const track = this.scrollbarEl; + const thumb = this.scrollbarThumb; + if (track === null || thumb === null) return; + const maxOffset = Math.max(0, scrollbar.total - scrollbar.len); + track.hidden = maxOffset === 0; + track.setAttribute("aria-valuemin", "0"); + track.setAttribute("aria-valuemax", String(maxOffset)); + track.setAttribute("aria-valuenow", String(position)); + if (maxOffset === 0) { + thumb.removeAttribute("style"); + return; + } + + const trackHeight = + this.scrollbarTrackHeight ?? Math.max(0, this.terminal.rows * this.cellH - 6); + const thumbHeight = Math.min( + trackHeight, + Math.max(24, trackHeight * (scrollbar.len / scrollbar.total)), + ); + const travel = trackHeight - thumbHeight; + thumb.style.height = `${thumbHeight}px`; + thumb.style.transform = `translateY(${travel * (position / maxOffset)}px)`; + } + + private scrollBy(rows: number, fractional: boolean): boolean { + if (rows === 0) return false; + const scrollbar = this.terminal.scrollbar(); + const maxOffset = Math.max(0, scrollbar.total - scrollbar.len); + if (maxOffset === 0) { + this.resetFractionalScroll(); + return false; + } + + const current = this.scrollPosition ?? scrollbar.offset; + let target = Math.max(0, Math.min(maxOffset, current + rows)); + if (!fractional) target = Math.max(0, Math.min(maxOffset, Math.round(target))); + const nearest = Math.round(target); + if (Math.abs(target - nearest) < 1e-9) target = nearest; + if (target === current) return true; + + this.scrollPosition = target; + this.scrollMax = maxOffset; + const firstRow = Math.floor(target); + const fraction = target - firstRow; + const anchor = fraction === 0 ? firstRow : rows > 0 ? firstRow + 1 : firstRow; + const missingBoundary = rows > 0 ? firstRow : firstRow + scrollbar.len; + if (fraction !== 0 && !this.rowEls.has(missingBoundary)) { + const prime = rows > 0 ? firstRow : firstRow + 1; + this.terminal.scrollToRow(prime); + this.applyFrame(this.frameReader.snapshot({ full: true })); + } + const beforeAnchor = this.terminal.scrollbar().offset; + this.terminal.scrollToRow(anchor); + if (anchor !== beforeAnchor) this.needFull = true; + this.queueFrame(); + return true; + } + + private wheelRows(event: WheelEvent): { rows: number; fractional: boolean } { + if (event.deltaMode === 1) return { rows: event.deltaY, fractional: false }; + if (event.deltaMode === 2) { + return { rows: event.deltaY * this.terminal.scrollbar().len, fractional: false }; + } + return { rows: event.deltaY / this.cellH, fractional: true }; + } + + private resetFractionalScroll(): void { + this.scrollPosition = null; + this.rowsHost.style.transform = ""; + } + + /** Input follows the live prompt, but an already-live viewport needs no paint. */ + private scrollToBottomForInput(): boolean { + if ( + this.terminalViewportRevision === this.terminal.viewportRevision && + this.scrollPosition !== null && + this.scrollPosition === this.scrollMax + ) { + return false; + } + const scrollbar = this.terminal.scrollbar(); + const bottom = Math.max(0, scrollbar.total - scrollbar.len); + if (scrollbar.offset === bottom && (this.scrollPosition ?? scrollbar.offset) === bottom) { + this.terminalViewportRevision = this.terminal.viewportRevision; + return false; + } + this.resetFractionalScroll(); + this.terminal.scrollToBottom(); + this.terminalViewportRevision = this.terminal.viewportRevision; + this.needFull = true; + return true; + } + + private settleFractionalScroll(paintNow = false): void { + const position = this.scrollPosition; + if (position === null || Number.isInteger(position)) return; + const target = Math.round(position); + this.scrollPosition = target; + this.terminal.scrollToRow(target); + this.rowsHost.style.transform = ""; + this.needFull = true; + if (paintNow) this.paint(); + } + + private scrollToRow(row: number): void { + const target = Math.max(0, Math.round(row)); + this.scrollPosition = target; + this.terminal.scrollToRow(target); + this.needFull = true; + this.scheduleFrame(); + } + + private scrollToPosition(row: number): void { + const scrollbar = this.terminal.scrollbar(); + const maxOffset = Math.max(0, scrollbar.total - scrollbar.len); + const current = this.scrollPosition ?? scrollbar.offset; + const target = Math.max(0, Math.min(maxOffset, row)); + this.scrollBy(target - current, true); + } + + private scrollbarGeometry(): { maxOffset: number; travel: number; thumbHeight: number } | null { + const track = this.scrollbarEl; + if (track === null) return null; + const scrollbar = this.terminal.scrollbar(); + const maxOffset = Math.max(0, scrollbar.total - scrollbar.len); + const trackHeight = + this.scrollbarTrackHeight ?? Math.max(0, this.terminal.rows * this.cellH - 6); + const thumbHeight = Math.min( + trackHeight, + Math.max(24, trackHeight * (scrollbar.len / scrollbar.total)), + ); + return { maxOffset, travel: trackHeight - thumbHeight, thumbHeight }; + } + + private bindScrollbar(): void { + const track = this.scrollbarEl!; + const thumb = this.scrollbarThumb!; + const stopMouse = (event: Event) => event.stopPropagation(); + const onPointerDown = (event: PointerEvent) => { + event.preventDefault(); + event.stopPropagation(); + const geometry = this.scrollbarGeometry(); + if (geometry === null || geometry.maxOffset === 0) return; + const rect = track.getBoundingClientRect(); + if (event.target === thumb) { + this.scrollbarDrag = { + pointerId: event.pointerId, + y: event.clientY, + offset: this.scrollPosition ?? this.terminal.scrollbar().offset, + }; + track.setPointerCapture?.(event.pointerId); + return; + } + const top = Math.max( + 0, + Math.min(geometry.travel, event.clientY - rect.top - geometry.thumbHeight / 2), + ); + this.scrollToPosition( + geometry.travel === 0 ? 0 : (top / geometry.travel) * geometry.maxOffset, + ); + }; + const onPointerMove = (event: PointerEvent) => { + const drag = this.scrollbarDrag; + if (drag === null || drag.pointerId !== event.pointerId) return; + event.preventDefault(); + event.stopPropagation(); + const geometry = this.scrollbarGeometry(); + if (geometry === null || geometry.travel === 0) return; + const rows = ((event.clientY - drag.y) / geometry.travel) * geometry.maxOffset; + this.scrollToPosition(drag.offset + rows); + }; + const endDrag = (event: PointerEvent) => { + if (this.scrollbarDrag?.pointerId !== event.pointerId) return; + event.stopPropagation(); + this.scrollbarDrag = null; + track.releasePointerCapture?.(event.pointerId); + }; + const onKeyDown = (event: KeyboardEvent) => { + const scrollbar = this.terminal.scrollbar(); + const maxOffset = Math.max(0, scrollbar.total - scrollbar.len); + const position = this.scrollPosition ?? scrollbar.offset; + let target: number | null = null; + if (event.key === "ArrowUp") target = position - 1; + if (event.key === "ArrowDown") target = position + 1; + if (event.key === "PageUp") target = position - scrollbar.len; + if (event.key === "PageDown") target = position + scrollbar.len; + if (event.key === "Home") target = 0; + if (event.key === "End") target = maxOffset; + if (target === null) return; + event.preventDefault(); + event.stopPropagation(); + this.scrollToRow(target); + }; + const onWheel = (event: WheelEvent) => { + event.stopPropagation(); + const wheel = this.wheelRows(event); + if (this.scrollBy(wheel.rows, wheel.fractional)) event.preventDefault(); + }; + + track.addEventListener("pointerdown", onPointerDown); + track.addEventListener("pointermove", onPointerMove); + track.addEventListener("pointerup", endDrag); + track.addEventListener("pointercancel", endDrag); + track.addEventListener("lostpointercapture", endDrag); + track.addEventListener("keydown", onKeyDown); + track.addEventListener("wheel", onWheel, { passive: false }); + track.addEventListener("mousedown", stopMouse); + track.addEventListener("mouseup", stopMouse); + track.addEventListener("mousemove", stopMouse); + track.addEventListener("contextmenu", stopMouse); + this.detach.push(() => { + track.removeEventListener("pointerdown", onPointerDown); + track.removeEventListener("pointermove", onPointerMove); + track.removeEventListener("pointerup", endDrag); + track.removeEventListener("pointercancel", endDrag); + track.removeEventListener("lostpointercapture", endDrag); + track.removeEventListener("keydown", onKeyDown); + track.removeEventListener("wheel", onWheel); + track.removeEventListener("mousedown", stopMouse); + track.removeEventListener("mouseup", stopMouse); + track.removeEventListener("mousemove", stopMouse); + track.removeEventListener("contextmenu", stopMouse); + }); + } + + private detectRowLinks(row: RowSnapshot, absoluteRow: number): DetectedLink[] { + const rows = [{ row, absoluteRow }]; + while (rows.length < 64 && rows[0]!.row.wrapContinuation) { + const index = rows[0]!.absoluteRow - 1; + const previous = this.rowSnapshots.get(index); + if (!previous?.wrap) break; + rows.unshift({ row: previous, absoluteRow: index }); + } + while (rows.length < 64 && rows.at(-1)!.row.wrap) { + const index = rows.at(-1)!.absoluteRow + 1; + const next = this.rowSnapshots.get(index); + if (!next?.wrapContinuation) break; + rows.push({ row: next, absoluteRow: index }); + } + const texts = rows.map(({ row }) => rowText(row.cells).text); + const index = rows.findIndex((entry) => entry.absoluteRow === absoluteRow); + const start = texts.slice(0, index).join("").length; + const end = start + texts[index]!.length; + return detectLinks(texts.join(""), this.options.links).flatMap((link) => { + if (link.start >= end || link.end <= start) return []; + return [ + { ...link, start: Math.max(0, link.start - start), end: Math.min(end, link.end) - start }, + ]; + }); + } + + private paintRow( + canonical: RowSnapshot, + frame: Pick, + absoluteRow: number, + el: HTMLElement, + overlay?: ReadonlyMap, + ): FittedGlyph[] { + const doc = this.element.ownerDocument; + const fragment = doc.createDocumentFragment(); + const fittedGlyphs: FittedGlyph[] = []; + // Speculation never reaches the canonical snapshot: it is applied to a + // derived copy here and nowhere else, so `rowSnapshots` keeps describing + // what the emulator actually holds. + const overlaid = overlay === undefined ? null : applyOverlay(canonical, overlay); + const row = overlaid?.row ?? canonical; + const predictedCells = overlaid?.predicted; + + // Links are resolved per row and folded into run grouping, so a run never + // straddles a link boundary and the DOM stays one span list. + let links: DetectedLink[] = []; + let cellLinks: number[] | undefined; + if (this.options.links) { + const { cellAt } = rowText(row.cells); + links = this.detectRowLinks(row, absoluteRow); + cellLinks = linkCells(row.cells, links, cellAt); + let textOffset = 0; + let oscLink = -1; + let previousUri: string | null = null; + for (let index = 0; index < row.cells.length; index++) { + const cell = row.cells[index]!; + const cellText = cell.spacer === "head" ? "" : cell.text === "" ? " " : cell.text; + if (cell.spacer === "head") { + cellLinks[index] = -1; + oscLink = -1; + previousUri = null; + continue; + } + if (cell.hasOsc8 && cell.osc8Uri !== null) { + if (cell.osc8Uri !== previousUri) { + oscLink = links.length; + links.push({ + kind: "osc8", + start: textOffset, + end: textOffset + cellText.length, + text: cellText, + target: cell.osc8Uri, + line: null, + column: null, + }); + } else { + const link = links[oscLink]!; + link.end += cellText.length; + link.text += cellText; + } + cellLinks[index] = oscLink; + } else { + oscLink = -1; + if (cell.hasOsc8) cellLinks[index] = -1; + } + previousUri = cell.osc8Uri; + textOffset += cellText.length; + } + if (links.length === 0) cellLinks = undefined; + } + this.rowLinks.set(absoluteRow, links); + + for (const run of cellsToRuns(row.cells, cellLinks, predictedCells)) { + const span = doc.createElement("span"); + const style = run.cells[0]!; + let cls = "clo-term-run"; + if (run.predicted) cls += this.predictor.underline ? " predicted underlined" : " predicted"; + if (style.bold) cls += " bold"; + if (style.italic) cls += " italic"; + if (style.faint) cls += " faint"; + if (style.blink) cls += " blink"; + if (style.invisible) cls += " invisible"; + if (style.strikethrough) cls += " strikethrough"; + if (style.overline) cls += " overline"; + if (style.underline > 0) cls += ` underline-${Math.min(style.underline, 5)}`; + let fg = style.fg; + let bg = style.bg; + if (style.inverse) { + // OSC-effective and explicit sides swap inline; sides without either + // use the inverse CSS chain for host theme and built-in fallbacks. + cls += " inverse"; + const swappedFg = bg === -1 ? (frame.background === -1 ? -1 : frame.background) : bg; + const swappedBg = fg === -1 ? (frame.foreground === -1 ? -1 : frame.foreground) : fg; + fg = swappedFg; + bg = swappedBg; + } + if (run.link >= 0) { + cls += " clo-term-link"; + span.dataset["link"] = String(run.link); + span.dataset["row"] = String(absoluteRow); + span.dataset["linkKind"] = links[run.link]!.kind; + } + if (style.invisible) span.style.color = "transparent"; + else if (fg !== -1) span.style.color = num(fg); + if (style.underlineColor !== -1) { + const color = num(style.underlineColor); + span.style.setProperty( + "--clo-term-decoration-color", + style.faint ? `color-mix(in srgb, ${color} 55%, transparent)` : color, + ); + } + const compact = + style.underlineColor === -1 && + !style.bold && + !style.italic && + !style.faint && + !style.blink && + !style.inverse && + !style.invisible && + !style.strikethrough && + !style.overline && + style.underline === 0 && + run.link < 0 && + run.cells.every((cell) => { + const text = cellText(cell); + return ( + cell.width === 1 && + cell.spacer === "none" && + !cell.protected && + cell.semantic === "output" && + !cell.hasOsc8 && + cell.osc8Uri === null && + text.length === 1 && + text.charCodeAt(0) >= 0x20 && + text.charCodeAt(0) <= 0x7e + ); + }); + if (compact) { + span.className = "clo-term-run clo-term-cell clo-term-compact"; + if (bg !== -1) span.style.backgroundColor = num(bg); + if (run.columns > 1) { + span.dataset["columns"] = String(run.columns); + span.style.setProperty("--clo-term-cell-columns", String(run.columns)); + } + span.textContent = run.text; + fragment.appendChild(span); + continue; + } + span.className = cls; + for (const runCell of run.cells) { + const cell = doc.createElement("span"); + cell.className = "clo-term-cell"; + cell.dataset["columns"] = String(runCell.width); + cell.dataset["spacer"] = runCell.spacer; + cell.dataset["protected"] = String(runCell.protected); + cell.dataset["semantic"] = runCell.semantic; + if (runCell.spacer === "head") { + cell.classList.add("clo-term-spacer-head"); + cell.setAttribute("aria-hidden", "true"); + } + cell.style.setProperty("--clo-term-cell-columns", String(runCell.width)); + if (bg !== -1) cell.style.backgroundColor = num(bg); + const glyph = doc.createElement("span"); + glyph.className = "clo-term-glyph"; + const ink = doc.createElement("span"); + ink.className = "clo-term-ink"; + const text = cellText(runCell); + ink.textContent = text; + glyph.appendChild(ink); + cell.appendChild(glyph); + const codepoint = runCell.width === 1 ? privateUseBaseCodepoint(text) : null; + const sprite = + codepoint === null || text !== String.fromCodePoint(codepoint) + ? undefined + : POWERLINE_SPRITES.get(codepoint); + if (sprite !== undefined) { + cell.classList.add("clo-term-powerline-cell"); + glyph.classList.add("clo-term-powerline", `clo-term-powerline-${sprite}`); + } else if (runCell.width === 2 || codepoint !== null) { + const mode: GlyphFitMode = + runCell.width === 2 + ? "wide" + : (codepoint! >= 0xe0b0 && codepoint! <= 0xe0bf) || + codepoint === 0xe0d2 || + codepoint === 0xe0d4 + ? "powerline" + : "symbol"; + cell.classList.add("clo-term-fitted-cell"); + glyph.classList.add(mode === "wide" ? "clo-term-wide-glyph" : `clo-term-${mode}-glyph`); + const key = `${mode}\0${style.bold ? 1 : 0}${style.italic ? 1 : 0}\0${text}`; + const cache = text.length <= GLYPH_FIT_CACHE_TEXT_LIMIT; + const fit = cache ? this.glyphFits.get(key) : undefined; + if (fit === undefined) { + fittedGlyphs.push({ + element: glyph, + key, + cache, + mode, + target: this.cellW * runCell.width, + }); + } else applyGlyphFit(glyph, fit); + } + span.appendChild(cell); + } + fragment.appendChild(span); + } + el.replaceChildren(fragment); + return fittedGlyphs; + } + + private applyRowMetadata(el: HTMLElement, row: RowSnapshot): void { + el.dataset["wrap"] = String(row.wrap); + el.dataset["wrapContinuation"] = String(row.wrapContinuation); + el.dataset["semanticPrompt"] = row.semanticPrompt; + el.dataset["hyperlink"] = String(row.hyperlink); + } + + private fitGlyphs(glyphs: readonly FittedGlyph[]): void { + if (glyphs.length === 0) return; + const groups = new Map(); + for (const glyph of glyphs) { + const group = groups.get(glyph.key); + if (group === undefined) groups.set(glyph.key, [glyph]); + else group.push(glyph); + } + const unique = [...groups.values()]; + // Read one representative per grapheme/style before writing transforms, so + // a cold dirty viewport pays one layout and no duplicate measurements. + const widths = unique.map((group) => group[0]!.element.getBoundingClientRect().width); + for (let index = 0; index < unique.length; index++) { + const width = widths[index]!; + if (width > 0) { + const group = unique[index]!; + const representative = group[0]!; + const scaleX = + representative.mode === "symbol" + ? Math.min(1, representative.target / width) + : representative.target / width; + const fit = { + scaleX, + scaleY: representative.mode === "powerline" ? 1 : scaleX, + marginLeft: (representative.target - width) / 2, + }; + if (group[0]!.cache) { + if (this.glyphFits.size >= GLYPH_FIT_CACHE_LIMIT) { + const oldest = this.glyphFits.keys().next().value as string | undefined; + if (oldest !== undefined) this.glyphFits.delete(oldest); + } + this.glyphFits.set(group[0]!.key, fit); + } + for (const glyph of group) applyGlyphFit(glyph.element, fit); + } + } + } + + private paintCursor(frame: FrameSnapshot, viewportTop: number, firstRow: number): void { + const cursor = frame.cursor; + if (cursor === null) { + this.realCursor = null; + this.placeCursor(); + return; + } + // Ghostty reports a wide cursor at its spacer tail; paint from the glyph head. + this.realCursor = { + row: viewportTop + cursor.y, + col: cursor.wide ? Math.max(0, cursor.x - 1) : cursor.x, + wide: cursor.wide, + className: `clo-term-cursor style-${cursor.style}${cursor.blinking ? " blinking" : ""}`, + }; + this.cursorUnderline = cursor.style === "underline"; + this.placeCursor(firstRow); + } + + /** + * Position the cursor element. The speculative cursor wins while predictions + * are outstanding — without it the caret sits behind the glyphs the user just + * typed, which reads as more broken than not predicting at all. + */ + private placeCursor(firstRow = this.firstRowNow): void { + const real = this.realCursor; + if (real === null) { + this.cursorEl.className = "clo-term-cursor"; + this.cursorEl.removeAttribute("style"); + this.cursorEl.style.display = "none"; + return; + } + const predicted = this.predictor.cursor; + const at = predicted === null ? real : { row: predicted.row, col: predicted.col }; + const wide = predicted === null && real.wide; + const style = this.cursorEl.style; + style.display = "block"; + style.left = `${at.col * this.cellW}px`; + style.top = `${ + this.cursorUnderline + ? (at.row - firstRow + 1) * this.cellH - 2 + : (at.row - firstRow) * this.cellH + }px`; + this.input.style.left = style.left; + this.input.style.top = `${Math.max(0, Math.min(this.terminal.rows - 1, at.row - firstRow)) * this.cellH}px`; + style.width = `${(wide ? 2 : 1) * this.cellW}px`; + style.height = `${this.cellH}px`; + this.cursorEl.className = `${real.className}${ + this.element.contains(this.element.ownerDocument.activeElement) ? "" : " blurred" + }`; + } + + /** + * The mouse encoder works in surface pixels, so it needs our cell metrics to + * resolve a click to a cell. Re-sent whenever geometry changes; without it + * every event would report cell 0,0. + */ + private syncMouseGeometry(): void { + const rect = this.viewportEl.getBoundingClientRect(); + this.scrollbarTrackHeight = Math.max(0, rect.height - 6); + if (this.options.mouse === false) return; + this.terminal.setMouseGeometry({ + width: rect.width || this.terminal.cols * this.cellW, + height: rect.height || this.terminal.rows * this.cellH, + cellWidth: this.cellW, + cellHeight: this.cellH, + }); + } + + /** + * Hand the core the theme's own colors: fore/background and cursor so it can + * answer `OSC 10/11/12`, and the 16 ANSI slots it resolves indexed colors + * through. + * + * **The browser resolves them, this does not parse CSS**: a token holds + * anything CSS accepts — a `var()` chain into the product's palette, + * `color-mix()`, a keyword — so the value is spent on the metric probe's + * `color` and read back. An unset token answers nothing, and neither does a + * transparent one: a see-through terminal has no background to report. The + * theme token is read rather than the painted background, which already + * carries a program's override and would be handed straight back as the + * default. + * + * Three spellings come back: `rgb()` from a browser, the authored hex from + * happy-dom, and whatever space a `color-mix()` was mixed in, which is what + * the canvas is here to read. + */ + private publishThemeColors(): void { + const probe = this.metricProbe; + const tokens = getComputedStyle(this.element); + const context = + probe.ownerDocument + .createElement("canvas") + .getContext?.("2d", { willReadFrequently: true }) ?? null; + const resolve = (token: string): number | null => { + // The computed value of a custom property is its substituted token stream, + // so a `var()` chain into the product's palette is already followed here; + // what is left may still be `color-mix()` or a keyword, which is what the + // probe is for. + const declared = tokens.getPropertyValue(token).trim(); + if (declared === "") return null; + probe.style.color = ""; + probe.style.color = declared; + const value = getComputedStyle(probe).color.trim(); + probe.style.color = ""; + const rgb = /^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([\d.]+))?\)$/.exec(value); + if (rgb !== null) { + if (rgb[4] !== undefined && Number(rgb[4]) === 0) return null; + return (Number(rgb[1]) << 16) | (Number(rgb[2]) << 8) | Number(rgb[3]); + } + const hex = /^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(value); + if (hex !== null) { + const digits = hex[1]!; + const full = + digits.length === 3 + ? digits + .split("") + .map((digit) => digit + digit) + .join("") + : digits; + return Number.parseInt(full, 16); + } + // ***A computed color is not always `rgb()`***: `color-mix()` keeps the + // space it was mixed in, and a host's palette is written in one. Canvas is + // the only parser that agrees with the pixels, and it is the one notation + // reader here that never has to learn a color space. + if (context === null) return null; + context.clearRect(0, 0, 1, 1); + context.fillStyle = value; + context.fillRect(0, 0, 1, 1); + const [red, green, blue, alpha] = context.getImageData(0, 0, 1, 1).data; + if (alpha === 0) return null; + return (red! << 16) | (green! << 8) | blue!; + }; + this.terminal.setDefaultColors({ + foreground: resolve("--clo-term-fg"), + background: resolve("--clo-term-bg"), + cursor: resolve("--clo-term-cursor"), + }); + this.terminal.setDefaultPalette(ANSI_TOKENS.map(resolve)); + } + + private measure(): boolean { + const rect = this.metricProbe.getBoundingClientRect(); + let cellW = this.cellW; + let cellH = this.cellH; + if (rect.width > 0) { + // Ghostty's mouse geometry uses integer pixels; paint the same grid it encodes. + cellW = Math.max(1, Math.round(rect.width / 32)); + cellH = Math.max(1, Math.round(rect.height)); + } + const changed = cellW !== this.cellW || cellH !== this.cellH; + if (changed) { + this.cellW = cellW; + this.cellH = cellH; + this.resetFractionalScroll(); + this.glyphFits.clear(); + } + this.rowsHost.style.setProperty("--clo-term-cell-w", `${this.cellW}px`); + this.rowsHost.style.setProperty("--clo-term-cell-h", `${this.cellH}px`); + return changed; + } + + setVisible(visible: boolean): void { + if (this.visible === visible) return; + this.visible = visible; + if (visible) this.refreshMetrics(); + else if (this.frameQueued) { + this.frameToken++; + this.frameQueued = false; + } + } + + /** Re-read font metrics after changing metric-affecting terminal CSS. */ + refreshMetrics(): void { + this.refreshMetricTransaction(); + } + + private refreshMetricTransaction(schedule = true): boolean { + if (this.disposedView) return false; + if (!this.initialized) { + this.scheduleFrame(); + return false; + } + this.publishThemeColors(); + const changed = this.measure(); + // Fallback CJK/emoji fonts can change while primary `W` metrics remain + // identical, so every explicit/font-ready refresh invalidates ink fitting. + this.glyphFits.clear(); + this.rowSnapshots.clear(); + this.resizeToFit(); + this.syncViewportGeometry(); + this.syncMouseGeometry(); + this.needFull = true; + if (schedule) this.scheduleFrame(); + return changed; + } + + /** Textarea focus clears native output ranges; selection gestures keep the root focused. */ + focus(): void { + if (this.disposedView) return; + const selection = this.element.ownerDocument.getSelection(); + const outputSelected = + selection !== null && + !selection.isCollapsed && + (this.rowsHost.contains(selection.anchorNode) || this.rowsHost.contains(selection.focusNode)); + const target = this.selectingOutput || outputSelected ? this.element : this.input; + target.focus({ preventScroll: true }); + } + + private bindInput(): void { + const el = this.element; + const emit = (bytes: Uint8Array | null) => { + if (bytes !== null && bytes.length > 0) this.options.onData?.(bytes); + }; + + let composing = false; + let compositionInputPending = false; + const onCompositionStart = () => { + this.input.classList.add("composing"); + composing = true; + compositionInputPending = false; + }; + const onCompositionEnd = (event: CompositionEvent) => { + this.input.classList.remove("composing"); + composing = false; + compositionInputPending = true; + this.input.value = ""; + if (!this.input.readOnly && event.data !== "") emit(new TextEncoder().encode(event.data)); + }; + const onInput = () => { + if (composing) return; + const text = this.input.value; + this.input.value = ""; + if (compositionInputPending) { + compositionInputPending = false; + return; + } + if (!this.input.readOnly && text !== "") emit(new TextEncoder().encode(text)); + }; + const onKeyDown = (event: KeyboardEvent) => { + if (composing || this.input.readOnly || event.defaultPrevented) return; + if (this.options.onBeforeKey?.(event) === false) return; + if ( + event.isComposing || + event.keyCode === 229 || + event.key === "Process" || + event.key === "Dead" + ) { + this.input.focus({ preventScroll: true }); + return; + } + compositionInputPending = false; + const bytes = this.terminal.encodeKey(event); + if (bytes !== null) { + this.input.focus({ preventScroll: true }); + event.preventDefault(); + const viewportMoved = this.scrollToBottomForInput(); + emit(bytes); + if (viewportMoved) this.scheduleFrame(); + this.predictKey(event); + } else if ( + event.key.toLowerCase() === "v" && + (event.metaKey || (event.ctrlKey && event.shiftKey)) + ) { + this.input.focus({ preventScroll: true }); + } + }; + const onPaste = (event: ClipboardEvent) => { + if (this.input.readOnly) return; + const text = event.clipboardData?.getData("text"); + if (text !== undefined && text !== "") { + this.input.focus({ preventScroll: true }); + event.preventDefault(); + const viewportMoved = this.scrollToBottomForInput(); + emit(this.terminal.encodePaste(text)); + if (viewportMoved) this.scheduleFrame(); + // Bracketed paste is one opaque blob to the line editor; we have no + // model of what it does with it. + this.dropPredictions(); + } + }; + // Mouse reporting is claimed by the program, not by us: shift is the + // universal terminal escape hatch for "let me select anyway", and we honor + // it so a full-screen app can never take selection away entirely. + const mouseClaimed = (event: MouseEvent | WheelEvent) => + this.options.mouse !== false && !event.shiftKey && this.terminal.mouseTracking(); + let mouseGestureClaimed = false; + + const position = (event: MouseEvent | WheelEvent) => { + const rect = this.viewportEl.getBoundingClientRect(); + return { + x: (Number.isFinite(event.clientX) ? event.clientX : rect.left) - rect.left, + y: (Number.isFinite(event.clientY) ? event.clientY : rect.top) - rect.top, + }; + }; + + const forward = ( + event: MouseEvent, + action: "press" | "release" | "motion", + button: number | null, + ) => { + this.settleFractionalScroll(true); + const bytes = this.terminal.encodeMouse({ + action, + button, + ...position(event), + ctrlKey: event.ctrlKey, + altKey: event.altKey, + metaKey: event.metaKey, + shiftKey: event.shiftKey, + }); + if (bytes !== null) { + event.preventDefault(); + emit(bytes); + // A program taking mouse input is not a line editor echoing keystrokes. + this.dropPredictions(); + } + }; + + const onMouseDown = (event: MouseEvent) => { + mouseGestureClaimed = mouseClaimed(event); + if (mouseGestureClaimed) { + this.selectingOutput = false; + this.input.focus({ preventScroll: true }); + this.lastMouseCell = ""; + forward(event, "press", event.button); + return; + } + if (event.button !== 0 || event.target === this.input) return; + this.selectingOutput = true; + this.element.focus({ preventScroll: true }); + }; + const onMouseUp = (event: MouseEvent) => { + if (this.selectingOutput || (!mouseGestureClaimed && !mouseClaimed(event))) return; + this.lastMouseCell = ""; + forward(event, "release", event.button); + }; + const finishOutputSelection = (event: MouseEvent) => { + if (event.button !== 0 || !this.selectingOutput) return; + this.selectingOutput = false; + if (el.ownerDocument.activeElement === el) this.focus(); + }; + const cancelOutputSelection = (event: Event) => { + if (event.type === "blur" && event.target !== event.currentTarget) return; + this.selectingOutput = false; + }; + const onMouseMove = (event: MouseEvent) => { + if (this.selectingOutput || !mouseClaimed(event)) return; + this.settleFractionalScroll(true); + // Report once per cell crossed, not once per pixel of travel. libghostty + // has an option for this that is inert at the pinned vendor commit, so + // the guard lives here; without it a slow drag writes to the pty on + // every mousemove. + const at = position(event); + const cell = `${Math.floor(at.x / this.cellW)},${Math.floor(at.y / this.cellH)}`; + if (cell === this.lastMouseCell) return; + this.lastMouseCell = cell; + // buttons is a bitmask of held buttons; 0 means a bare hover, which only + // "any" tracking reports. The encoder decides — we just report honestly. + const held = event.buttons & 1 ? 0 : event.buttons & 4 ? 1 : event.buttons & 2 ? 2 : null; + forward(event, "motion", held); + }; + const onContextMenu = (event: MouseEvent) => { + // Without this a right-click reported to the program also opens the + // browser menu over it. + if (mouseClaimed(event)) event.preventDefault(); + }; + + const onWheel = (event: WheelEvent) => { + if (mouseClaimed(event)) { + this.settleFractionalScroll(true); + const vertical = Math.abs(event.deltaY) >= Math.abs(event.deltaX); + const button = vertical + ? event.deltaY < 0 + ? 3 + : event.deltaY > 0 + ? 4 + : null + : event.deltaX < 0 + ? 5 + : event.deltaX > 0 + ? 6 + : null; + if (button !== null) { + // Programs receive wheel axes as VT button 4-7 presses. + const bytes = this.terminal.encodeMouse({ + action: "press", + button, + ...position(event), + ctrlKey: event.ctrlKey, + altKey: event.altKey, + metaKey: event.metaKey, + shiftKey: event.shiftKey, + }); + if (bytes !== null) { + event.preventDefault(); + emit(bytes); + return; + } + } + } + if (this.options.scrollback === false) return; + const wheel = this.wheelRows(event); + if (this.scrollBy(wheel.rows, wheel.fractional)) event.preventDefault(); + }; + const onFocus = () => { + this.focus(); + this.scheduleFrame(); + }; + const onFocusChange = () => this.scheduleFrame(); + const activateLink = (event: MouseEvent, target: EventTarget | null) => { + const links = this.options.links; + if (!links?.onActivate) return; + const claimed = mouseGestureClaimed || mouseClaimed(event); + mouseGestureClaimed = false; + if (claimed) return; + if (links.requireModifier === true && !event.ctrlKey && !event.metaKey) return; + const linkElement = + target instanceof Element ? target.closest(".clo-term-link") : null; + const index = linkElement?.dataset["link"]; + const rowIndex = linkElement?.dataset["row"]; + if (index === undefined || rowIndex === undefined) return; + let link = this.rowLinks.get(Number(rowIndex))?.[Number(index)]; + if (link === undefined) return; + const row = this.rowSnapshots.get(Number(rowIndex)); + if (row && link.kind !== "osc8") { + const displayed = link; + link = this.detectRowLinks(row, Number(rowIndex)).find( + (candidate) => candidate.start <= displayed.start && candidate.end >= displayed.end, + ); + if (!link) return; + } + event.preventDefault(); + links.onActivate(link, event); + }; + + const onClick = (event: MouseEvent) => { + if ("pointerType" in event && event.pointerType === "touch") return; + activateLink(event, event.target); + }; + let touch: { + pointerId: number; + startX: number; + startY: number; + lastY: number; + remainder: number; + moved: boolean; + target: EventTarget | null; + } | null = null; + const onTouchStart = (event: PointerEvent) => { + if (event.pointerType !== "touch") return; + event.preventDefault(); + if (!event.isPrimary || touch !== null) return; + this.selectingOutput = false; + touch = { + pointerId: event.pointerId, + startX: event.clientX, + startY: event.clientY, + lastY: event.clientY, + remainder: 0, + moved: false, + target: event.target, + }; + this.viewportEl.setPointerCapture?.(event.pointerId); + }; + const onTouchMove = (event: PointerEvent) => { + if (touch?.pointerId !== event.pointerId || event.pointerType !== "touch") return; + event.preventDefault(); + touch.moved ||= Math.hypot(event.clientX - touch.startX, event.clientY - touch.startY) > 4; + if (!touch.moved) return; + const delta = (touch.lastY - event.clientY) / this.cellH; + touch.lastY = event.clientY; + if (!mouseClaimed(event) && !this.terminal.alternateScreen) { + if (this.options.scrollback !== false) this.scrollBy(delta, true); + return; + } + const total = touch.remainder + delta; + const rows = Math.trunc(total); + touch.remainder = total - rows; + for (let index = 0; index < Math.abs(rows); index++) { + if (mouseClaimed(event)) forward(event, "press", rows < 0 ? 3 : 4); + else { + const key = rows < 0 ? "ArrowUp" : "ArrowDown"; + emit( + this.terminal.encodeKey({ + code: key, + key, + ctrlKey: event.ctrlKey, + altKey: event.altKey, + metaKey: event.metaKey, + shiftKey: event.shiftKey, + }), + ); + } + } + }; + const onTouchEnd = (event: PointerEvent) => { + if (touch?.pointerId !== event.pointerId || event.pointerType !== "touch") return; + const gesture = touch; + touch = null; + event.preventDefault(); + if (this.viewportEl.hasPointerCapture?.(event.pointerId)) { + this.viewportEl.releasePointerCapture(event.pointerId); + } + if (event.type !== "pointerup" || gesture.moved) return; + if (mouseClaimed(event)) { + forward(event, "press", 0); + forward(event, "release", 0); + } else { + activateLink(event, gesture.target); + this.element.ownerDocument.getSelection()?.removeAllRanges(); + } + this.focus(); + }; + + this.detach.push(() => { + this.viewportEl.removeEventListener("pointerdown", onTouchStart); + this.viewportEl.removeEventListener("pointermove", onTouchMove); + this.viewportEl.removeEventListener("pointerup", onTouchEnd); + this.viewportEl.removeEventListener("pointercancel", onTouchEnd); + this.viewportEl.removeEventListener("lostpointercapture", onTouchEnd); + el.removeEventListener("click", onClick); + el.removeEventListener("mousedown", onMouseDown); + el.ownerDocument.removeEventListener("mouseup", finishOutputSelection); + el.ownerDocument.removeEventListener("pointercancel", cancelOutputSelection); + el.ownerDocument.defaultView?.removeEventListener("blur", cancelOutputSelection); + el.removeEventListener("mouseup", onMouseUp); + el.removeEventListener("mousemove", onMouseMove); + el.removeEventListener("contextmenu", onContextMenu); + el.removeEventListener("keydown", onKeyDown); + el.removeEventListener("paste", onPaste); + el.removeEventListener("wheel", onWheel); + el.removeEventListener("focus", onFocus); + this.input.removeEventListener("compositionstart", onCompositionStart); + this.input.removeEventListener("compositionend", onCompositionEnd); + this.input.removeEventListener("input", onInput); + this.input.removeEventListener("focus", onFocusChange); + this.input.removeEventListener("blur", onFocusChange); + el.removeEventListener("blur", onFocusChange); + }); + this.viewportEl.addEventListener("pointerdown", onTouchStart); + this.viewportEl.addEventListener("pointermove", onTouchMove); + this.viewportEl.addEventListener("pointerup", onTouchEnd); + this.viewportEl.addEventListener("pointercancel", onTouchEnd); + this.viewportEl.addEventListener("lostpointercapture", onTouchEnd); + el.addEventListener("click", onClick); + el.addEventListener("mousedown", onMouseDown); + el.ownerDocument.addEventListener("mouseup", finishOutputSelection); + el.ownerDocument.addEventListener("pointercancel", cancelOutputSelection); + el.ownerDocument.defaultView?.addEventListener("blur", cancelOutputSelection); + el.addEventListener("mouseup", onMouseUp); + el.addEventListener("mousemove", onMouseMove); + el.addEventListener("contextmenu", onContextMenu); + el.addEventListener("keydown", onKeyDown); + el.addEventListener("paste", onPaste); + el.addEventListener("wheel", onWheel, { passive: false }); + el.addEventListener("focus", onFocus); + this.input.addEventListener("compositionstart", onCompositionStart); + this.input.addEventListener("compositionend", onCompositionEnd); + this.input.addEventListener("input", onInput); + this.input.addEventListener("focus", onFocusChange); + this.input.addEventListener("blur", onFocusChange); + el.addEventListener("blur", onFocusChange); + } + + dispose(): void { + if (this.disposedView) return; + this.disposedView = true; + this.predictor.reset(); + this.overlaidRows.clear(); + this.frameReader.dispose(); + if (this.synchronizedOutputTimeout !== null) { + clearTimeout(this.synchronizedOutputTimeout); + this.synchronizedOutputTimeout = null; + } + this.observer?.disconnect(); + this.metricObserver?.disconnect(); + for (const fn of this.detach) fn(); + this.rowsHost.remove(); + this.viewportEl.remove(); + this.cursorEl.remove(); + this.stickyEl?.remove(); + this.scrollbarEl?.remove(); + this.metricProbe.remove(); + this.input.remove(); + for (const name of ROOT_CLASSES) { + if (this.initialClasses.has(name)) this.element.classList.add(name); + else this.element.classList.remove(name); + } + for (const { name, value, priority } of this.initialRootStyles) { + if (value === "") this.element.style.removeProperty(name); + else this.element.style.setProperty(name, value, priority); + } + if (this.initialTabIndex === null) this.element.removeAttribute("tabindex"); + else this.element.setAttribute("tabindex", this.initialTabIndex); + } +} diff --git a/packages/terminal/src/renderer/terminal.css b/packages/terminal/src/renderer/terminal.css new file mode 100644 index 0000000000000000000000000000000000000000..b9dfc690ab48db5e740f751a9f40d2b2a1d32ea0 --- /dev/null +++ b/packages/terminal/src/renderer/terminal.css @@ -0,0 +1,482 @@ +/* @clo/terminal DOM renderer. Effective VT defaults occupy renderer-owned + custom properties; host theme properties remain the fallback seams. */ + +@font-face { + font-family: "__clo_terminal_primary_34_8_1"; + src: url("../../fonts/__clo_terminal_primary_34_8_1-Regular.woff2") format("woff2"); + font-style: normal; + font-weight: 400; +} + +@font-face { + font-family: "__clo_terminal_primary_34_8_1"; + src: url("../../fonts/__clo_terminal_primary_34_8_1-SemiBold.woff2") format("woff2"); + font-style: normal; + font-weight: 600; +} + +@font-face { + font-family: "__clo_terminal_primary_34_8_1"; + src: url("../../fonts/__clo_terminal_primary_34_8_1-Italic.woff2") format("woff2"); + font-style: italic; + font-weight: 400; +} + +@font-face { + font-family: "__clo_terminal_primary_34_8_1"; + src: url("../../fonts/__clo_terminal_primary_34_8_1-SemiBoldItalic.woff2") format("woff2"); + font-style: italic; + font-weight: 600; +} + +@font-face { + font-family: "__clo_terminal_symbols_3_4_0"; + src: url("../../fonts/__clo_terminal_symbols_3_4_0-Regular.woff2") format("woff2"); + font-style: normal; + font-weight: 400; +} + +@font-face { + font-family: "__clo_terminal_symbols_3_4_0"; + src: url("../../fonts/__clo_terminal_symbols_3_4_0-Regular.woff2") format("woff2"); + font-style: normal; + font-weight: 600; +} + +@font-face { + font-family: "__clo_terminal_symbols_3_4_0"; + src: url("../../fonts/__clo_terminal_symbols_3_4_0-Regular.woff2") format("woff2"); + font-style: italic; + font-weight: 400; +} + +@font-face { + font-family: "__clo_terminal_symbols_3_4_0"; + src: url("../../fonts/__clo_terminal_symbols_3_4_0-Regular.woff2") format("woff2"); + font-style: italic; + font-weight: 600; +} + +.clo-term-mount, +.clo-term { + /* `--clo-term-font` replaces the TEXT face and nothing else. It resolves to an + undefined family when unset, which a stack skips, so the bundled faces stay + behind whatever a consumer names — a product font with no box drawing in it + still draws boxes. */ + font-family: + var(--clo-term-font, __clo_terminal_consumer_unset), "__clo_terminal_primary_34_8_1", + "__clo_terminal_symbols_3_4_0", ui-monospace, "SF Mono", Menlo, monospace; + font-size: var(--clo-term-font-size, 13px); + line-height: var(--clo-term-line-height, 1.3); +} + +.clo-term { + position: relative; + overflow: hidden; + background: var(--clo-term-effective-bg, var(--clo-term-bg, #1e1e2e)); + color: var(--clo-term-effective-fg, var(--clo-term-fg, #cdd6f4)); + font-synthesis: none; + user-select: text; + cursor: text; +} + +.clo-term:focus { + outline: none; +} + +.clo-term.clo-term-font-loading > :not(.clo-term-input) { + visibility: hidden; +} + +.clo-term-viewport { + position: relative; + overflow: hidden; +} + +.clo-term-rows { + position: absolute; + inset: 0 auto auto 0; + white-space: pre; + will-change: transform; +} + +.clo-term-row { + height: var(--clo-term-cell-h, 1.3em); + direction: ltr; +} + +.clo-term-cell { + display: inline-block; + width: calc(var(--clo-term-cell-columns, 1) * var(--clo-term-cell-w, 1ch)); + height: var(--clo-term-cell-h, 1.3em); + box-sizing: border-box; + overflow: hidden; + font-kerning: none; + font-variant-ligatures: none; + line-height: var(--clo-term-cell-h, 1.3em); + vertical-align: top; +} + +.clo-term-spacer-head { + user-select: none; +} + +/* Browser fallback fonts size CJK and color emoji at one em, which is often + only ~1.5 primary-monospace cells. Ghostty says these graphemes occupy two + columns, so size their square em to the exact two-cell advance. A compact run + carries the same class with `data-columns` counting its ASCII cells, not one + grapheme's width, so a two-column run must never be resized. */ +.clo-term-cell[data-columns="2"]:not(.clo-term-compact) { + font-size: min(calc(var(--clo-term-cell-w, 1ch) * 2), var(--clo-term-cell-h, 1.3em)); +} + +.clo-term-glyph { + display: inline-block; + transform-origin: center; +} + +/* Filled Powerline separators own the exact cell rectangle instead of using a + square fallback-font advance. The text node remains for selection and a11y. */ +.clo-term-powerline { + position: relative; + width: 100%; + height: 100%; + vertical-align: top; +} + +.clo-term-powerline > .clo-term-ink { + position: absolute; + inset: 0; + overflow: hidden; + text-decoration-color: inherit; + -webkit-text-fill-color: transparent; +} + +.clo-term-powerline::before { + position: absolute; + inset: -0.5px; + background: currentColor; + content: ""; +} + +.clo-term-run.overline > .clo-term-cell > .clo-term-powerline::after, +.clo-term-run.strikethrough > .clo-term-cell > .clo-term-powerline > .clo-term-ink::before, +.clo-term-run[class*="underline-"] > .clo-term-cell > .clo-term-powerline > .clo-term-ink::after, +.clo-term-link:hover > .clo-term-cell > .clo-term-powerline > .clo-term-ink::after { + position: absolute; + right: 0; + left: 0; + content: ""; +} + +.clo-term-run.overline > .clo-term-cell > .clo-term-powerline::after { + top: 0; + height: 1px; + background: currentColor; +} + +.clo-term-run.strikethrough > .clo-term-cell > .clo-term-powerline > .clo-term-ink::before { + top: 50%; + height: 1px; + background: currentColor; +} + +.clo-term-link:hover > .clo-term-cell > .clo-term-powerline > .clo-term-ink::after { + bottom: 0; + height: 1px; + background: currentColor; +} + +.clo-term-run[class*="underline-"] > .clo-term-cell > .clo-term-powerline > .clo-term-ink::after { + bottom: 0; + height: 1px; + background: var(--clo-term-decoration-color, currentColor); +} + +.clo-term-run.underline-2 > .clo-term-cell > .clo-term-powerline > .clo-term-ink::after { + height: 3px; + background: linear-gradient( + to bottom, + var(--clo-term-decoration-color, currentColor) 0 1px, + transparent 1px 2px, + var(--clo-term-decoration-color, currentColor) 2px 3px + ); +} + +.clo-term-run.underline-3 > .clo-term-cell > .clo-term-powerline > .clo-term-ink::after { + height: 3px; + background: var(--clo-term-decoration-color, currentColor); + mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='3'%3E%3Cpath d='M0 2 Q1.5 0 3 2 T6 2' fill='none' stroke='black' stroke-width='1'/%3E%3C/svg%3E") + repeat-x bottom / 6px 3px; +} + +.clo-term-run.underline-4 > .clo-term-cell > .clo-term-powerline > .clo-term-ink::after { + background: repeating-linear-gradient( + to right, + var(--clo-term-decoration-color, currentColor) 0 1px, + transparent 1px 3px + ); +} + +.clo-term-run.underline-5 > .clo-term-cell > .clo-term-powerline > .clo-term-ink::after { + background: repeating-linear-gradient( + to right, + var(--clo-term-decoration-color, currentColor) 0 3px, + transparent 3px 5px + ); +} + +.clo-term-powerline-right-arrow::before { + clip-path: polygon(0 0, 100% 50%, 0 100%); +} + +.clo-term-powerline-left-arrow::before { + clip-path: polygon(100% 0, 0 50%, 100% 100%); +} + +.clo-term-powerline-right-round::before { + border-radius: 0 999px 999px 0; +} + +.clo-term-powerline-left-round::before { + border-radius: 999px 0 0 999px; +} + +.clo-term-powerline-lower-left::before { + clip-path: polygon(0 0, 100% 100%, 0 100%); +} + +.clo-term-powerline-lower-right::before { + clip-path: polygon(100% 0, 100% 100%, 0 100%); +} + +.clo-term-powerline-upper-left::before { + clip-path: polygon(0 0, 100% 0, 0 100%); +} + +.clo-term-powerline-upper-right::before { + clip-path: polygon(0 0, 100% 0, 100% 100%); +} + +/* + * Predictive local echo. A prediction is a claim about what the far end will + * echo, so it is drawn as a claim: dimmed, and underlined unless the embedder + * turns that off. Theming stays custom-property-only like every other color + * here, so a host can make speculation invisible without patching the renderer. + */ +.clo-term-run.predicted > .clo-term-cell > .clo-term-glyph { + opacity: var(--clo-term-predicted-opacity, 0.75); +} +.clo-term-run.predicted.underlined > .clo-term-cell > .clo-term-glyph > .clo-term-ink { + text-decoration-line: underline; + text-decoration-style: dotted; + text-decoration-color: var(--clo-term-predicted-underline, currentColor); +} + +.clo-term-run.bold { + font-weight: 600; +} +.clo-term-run.italic { + font-style: italic; +} +.clo-term-run.faint > .clo-term-cell > .clo-term-glyph { + color: color-mix(in srgb, currentColor 55%, transparent); +} +.clo-term-run.invisible { + --clo-term-decoration-color: transparent !important; + color: transparent; +} +.clo-term-run.inverse { + color: var(--clo-term-effective-bg, var(--clo-term-bg, #1e1e2e)); +} +.clo-term-run.inverse > .clo-term-cell { + background: var(--clo-term-effective-fg, var(--clo-term-fg, #cdd6f4)); +} +.clo-term-run.strikethrough { + --clo-term-decoration-strike: line-through; +} +.clo-term-run.overline { + --clo-term-decoration-overline: overline; +} +.clo-term-run.strikethrough > .clo-term-cell > .clo-term-glyph, +.clo-term-run.overline > .clo-term-cell > .clo-term-glyph { + text-decoration-line: var(--clo-term-decoration-overline,) var(--clo-term-decoration-strike,); + text-decoration-color: currentColor; +} +.clo-term-run[class*="underline-"] > .clo-term-cell > .clo-term-glyph > .clo-term-ink { + text-decoration-line: underline; + text-decoration-color: var(--clo-term-decoration-color, currentColor); +} +.clo-term-run.underline-3 > .clo-term-cell > .clo-term-glyph > .clo-term-ink { + text-decoration-style: wavy; +} +.clo-term-run.underline-4 > .clo-term-cell > .clo-term-glyph > .clo-term-ink { + text-decoration-style: dotted; +} +.clo-term-run.underline-5 > .clo-term-cell > .clo-term-glyph > .clo-term-ink { + text-decoration-style: dashed; +} +.clo-term-run.underline-2 > .clo-term-cell > .clo-term-glyph > .clo-term-ink { + text-decoration-style: double; +} + +/* One terminal blink clock: ink is visible for the first half-second and + hidden for the second. Cell boxes never participate, so backgrounds hold. */ +@keyframes clo-term-blink { + 0%, + 49.999% { + --clo-term-blink-visibility: visible; + } + 50%, + 99.999% { + --clo-term-blink-visibility: hidden; + } + 100% { + --clo-term-blink-visibility: visible; + } +} + +.clo-term.clo-term-has-blink { + animation: clo-term-blink 1000ms linear infinite; +} + +.clo-term-run.blink > .clo-term-cell > .clo-term-glyph, +.clo-term-cursor.blinking:not(.blurred) { + visibility: var(--clo-term-blink-visibility, visible); +} + +/* Sticky scroll: the command whose output you are scrolled inside, pinned at + the top. It overlays row 0 — the standard trade, same as VS Code's. */ +.clo-term-sticky { + position: absolute; + top: 0; + left: 0; + right: 0; + z-index: 2; + white-space: pre; + overflow: hidden; + text-overflow: ellipsis; + cursor: pointer; + padding: 0 4px; + background: var(--clo-term-sticky-bg, var(--clo-term-bg, #1e1e2e)); + color: var(--clo-term-sticky-fg, var(--clo-term-fg, #cdd6f4)); + box-shadow: 0 1px 0 var(--clo-term-sticky-border, rgba(205, 214, 244, 0.18)); + opacity: 0.95; +} + +.clo-term-has-scrollbar > .clo-term-sticky { + right: 13px; +} + +.clo-term-sticky.failed { + color: var(--clo-term-sticky-failed, #f38ba8); +} + +/* Links are detected per row; the underline only appears on hover so ordinary + output does not read as a wall of links. */ +.clo-term-link:hover > .clo-term-cell > .clo-term-glyph > .clo-term-ink { + text-decoration-line: underline; + cursor: pointer; +} +.clo-term-cursor { + position: absolute; + z-index: 1; + pointer-events: none; + background: var(--clo-term-effective-cursor, var(--clo-term-cursor, #f5e0dc)); + mix-blend-mode: difference; +} + +.clo-term-cursor.style-bar { + width: 2px !important; +} + +.clo-term-cursor.style-underline { + height: 2px !important; +} + +.clo-term-cursor.style-hollow { + background: transparent; + box-shadow: inset 0 0 0 1px var(--clo-term-effective-cursor, var(--clo-term-cursor, #f5e0dc)); +} + +.clo-term-cursor.blurred { + background: transparent; + box-shadow: inset 0 0 0 1px var(--clo-term-effective-cursor, var(--clo-term-cursor, #f5e0dc)); +} + +@media (prefers-reduced-motion: reduce) { + .clo-term.clo-term-has-blink { + --clo-term-blink-visibility: visible; + animation: none; + } +} + +.clo-term-measure { + position: absolute; + visibility: hidden; + top: -9999px; + white-space: pre; +} + +.clo-term-scrollbar { + position: absolute; + top: 3px; + right: 3px; + bottom: 3px; + z-index: 3; + width: 10px; + border-radius: 999px; + background: var(--clo-term-scrollbar-track, transparent); + opacity: 0; + transition: opacity 120ms ease-out; + touch-action: none; +} + +.clo-term:hover > .clo-term-scrollbar, +.clo-term-scrollbar:focus, +.clo-term-scrollbar:focus-within { + opacity: 1; +} + +.clo-term-scrollbar[hidden] { + display: none; +} + +.clo-term-scrollbar-thumb { + width: 100%; + min-height: 24px; + border-radius: inherit; + background: var(--clo-term-scrollbar-thumb, rgb(205 214 244 / 28%)); + transition: background-color 100ms ease-out; + will-change: transform; +} + +.clo-term-scrollbar:hover .clo-term-scrollbar-thumb, +.clo-term-scrollbar:focus .clo-term-scrollbar-thumb { + background: var(--clo-term-scrollbar-thumb-hover, rgb(205 214 244 / 48%)); +} + +.clo-term-input { + position: absolute; + width: 1px; + height: 1em; + padding: 0; + border: 0; + opacity: 0; + font: inherit; + resize: none; + overflow: hidden; +} + +.clo-term ::selection { + background: var(--clo-term-selection, Highlight); +} + +.clo-term-input.composing { + width: 20ch; + max-width: 100%; + opacity: 1; + color: inherit; + background: var(--clo-term-effective-bg, var(--clo-term-bg, #1e1e2e)); + caret-color: var(--clo-term-cursor, currentColor); +} diff --git a/packages/terminal/src/runs.ts b/packages/terminal/src/runs.ts new file mode 100644 index 0000000000000000000000000000000000000000..eb30cd2758607921c9c1024966201c6373b0533c --- /dev/null +++ b/packages/terminal/src/runs.ts @@ -0,0 +1,119 @@ +// Pure cell-run grouping: consecutive cells with identical presentation +// collapse into one run so a DOM row is a handful of spans, not cols spans. +// Links participate in the grouping (rather than splitting runs afterwards) +// so a run never straddles a link boundary and column math stays exact. + +import type { CellSnapshot } from "./ghostty/terminal.ts"; +import type { DetectedLink } from "./links.ts"; + +export interface CellRun { + text: string; + /** Total columns covered (wide cells count 2). */ + columns: number; + /** Canonical references; run grouping must not allocate a second cell model. */ + cells: CellSnapshot[]; + /** Index into the row's link list, or -1. */ + link: number; + /** Speculative local echo, not yet confirmed by the pty. */ + predicted: boolean; +} + +export interface RowText { + text: string; + /** `cellAt[offset]` identifies the canonical cell that owns that UTF-16 code unit. */ + cellAt: number[]; +} + +function sameStyle(a: CellSnapshot, b: CellSnapshot): boolean { + return ( + a.fg === b.fg && + a.hasOsc8 === b.hasOsc8 && + a.osc8Uri === b.osc8Uri && + a.bg === b.bg && + a.underlineColor === b.underlineColor && + a.bold === b.bold && + a.italic === b.italic && + a.faint === b.faint && + a.blink === b.blink && + a.inverse === b.inverse && + a.invisible === b.invisible && + a.strikethrough === b.strikethrough && + a.overline === b.overline && + a.underline === b.underline + ); +} + +/** Program text for one cell. Spacer heads own geometry but carry no text. */ +export function cellText(cell: CellSnapshot): string { + if (cell.spacer === "head") return ""; + return cell.text === "" ? " " : cell.text; +} + +/** Concatenated row text, plus the cell index each character came from. */ +export function rowText(cells: readonly CellSnapshot[]): RowText { + let text = ""; + const cellAt: number[] = []; + for (let i = 0; i < cells.length; i++) { + const piece = cellText(cells[i]!); + text += piece; + for (let c = 0; c < piece.length; c++) cellAt.push(i); + } + return { text, cellAt }; +} + +/** + * Map detected links (text offsets) onto cells: `out[cellIndex]` is the link's + * index, or -1. A cell belongs to the link that covers its first character. + */ +export function linkCells( + cells: readonly CellSnapshot[], + links: readonly DetectedLink[], + cellAt: readonly number[], +): number[] { + const out: number[] = Array.from({ length: cells.length }, () => -1); + for (let l = 0; l < links.length; l++) { + const link = links[l]!; + for (let i = link.start; i < link.end && i < cellAt.length; i++) { + const cell = cellAt[i]!; + if (out[cell] === -1) out[cell] = l; + } + } + return out; +} + +export function cellsToRuns( + cells: readonly CellSnapshot[], + links?: readonly number[], + predicted?: ReadonlySet, +): CellRun[] { + const runs: CellRun[] = []; + let current: CellRun | null = null; + let anchor: CellSnapshot | null = null; + for (let i = 0; i < cells.length; i++) { + const cell = cells[i]!; + const link = links?.[i] ?? -1; + const speculative = predicted?.has(i) ?? false; + if ( + current !== null && + anchor !== null && + sameStyle(anchor, cell) && + current.link === link && + current.predicted === speculative + ) { + current.text += cellText(cell); + current.columns += cell.width; + current.cells.push(cell); + continue; + } + current = { + text: cellText(cell), + columns: cell.width, + cells: [cell], + link, + predicted: speculative, + }; + anchor = cell; + runs.push(current); + } + return runs; +} diff --git a/packages/terminal/src/shell/commands.ts b/packages/terminal/src/shell/commands.ts new file mode 100644 index 0000000000000000000000000000000000000000..178b7be4741358ab5a722b44c9accaa8b36146c3 --- /dev/null +++ b/packages/terminal/src/shell/commands.ts @@ -0,0 +1,243 @@ +// The shell-integration command model: marks in, a list of commands out. +// +// This is the layer that makes a terminal more than a screen — command +// boundaries, exit codes, cwd, and durations are exactly the "what did the +// agent run, and did it fail" question, and they are emulator-independent. +// +// Pure by construction: screen anchoring arrives through the `anchor` seam +// (the wasm layer hands back tracked grid refs; tests hand back counters), and +// time through `now`. Nothing here touches wasm or the DOM. + +import type { ShellMark } from "./marks.ts"; + +/** + * A position on the screen that survives scrolling, scrollback pruning and + * reflow. `point()` returns null once the anchored row is gone. + */ +export interface CommandAnchor { + /** Viewport coordinates for painting decorations; null when scrolled out. */ + point(): { x: number; y: number } | null; + /** Screen coordinates (scrollback included) — stable, for ordering and reads. */ + screenPoint(): { x: number; y: number } | null; + free(): void; +} + +export type CommandState = "prompt" | "editing" | "running" | "finished"; + +export interface ShellCommand { + readonly id: number; + /** From `633;E`, or read off the screen at execute time when the seam is wired. */ + commandLine: string | null; + cwd: string | null; + /** Null while running, and after a `D` that carried no status. */ + exitCode: number | null; + state: CommandState; + /** Milliseconds from the `now` seam; null until the phase is reached. */ + executedAt: number | null; + finishedAt: number | null; + promptStart: CommandAnchor | null; + commandStart: CommandAnchor | null; + outputStart: CommandAnchor | null; + outputEnd: CommandAnchor | null; +} + +export interface ShellCommandsOptions { + /** + * Anchor the current cursor position. Returning null (unanchorable point, + * alternate screen) degrades the command to a text-only record. + */ + anchor?: () => CommandAnchor | null; + now?: () => number; + /** + * Read the command line off the screen between two anchors, for shells that + * emit OSC 133 without VS Code's `633;E`. Called once, at execute time. + */ + readCommandLine?: (from: CommandAnchor, to: CommandAnchor) => string | null; + /** + * Retained command records. Anchors are freed on eviction — each tracked + * anchor costs bookkeeping on every terminal mutation, so this cap is a + * performance contract, not just memory hygiene. + */ + limit?: number; + onCommandStart?: (command: ShellCommand) => void; + onCommandEnd?: (command: ShellCommand) => void; + /** Any change to the list, including cwd/command-line fills. */ + onChange?: () => void; +} + +const DEFAULT_LIMIT = 512; + +export class ShellCommands { + private options: ShellCommandsOptions; + private list: ShellCommand[] = []; + private open: ShellCommand | null = null; + private nextId = 1; + private cwdNow: string | null = null; + + constructor(options: ShellCommandsOptions = {}) { + this.options = options; + } + + /** Commands oldest-first. The last entry may still be running. */ + get commands(): readonly ShellCommand[] { + return this.list; + } + + /** The command currently at the prompt or running, if any. */ + get current(): ShellCommand | null { + return this.open; + } + + /** Last known cwd, tracked independently of command boundaries. */ + get cwd(): string | null { + return this.cwdNow; + } + + /** True once any recognized mark has arrived — i.e. the shell is instrumented. */ + get active(): boolean { + return this.list.length > 0; + } + + handle(mark: ShellMark): void { + switch (mark.kind) { + case "prompt-start": { + // A new prompt implies the previous command ended, even if its `D` + // never arrived (SIGKILL, a shell that lost the status, a torn replay). + this.closeOpen(null); + const command = this.begin(); + command.promptStart = this.anchor(); + this.changed(); + break; + } + + case "command-start": { + const command = this.open ?? this.begin(); + command.commandStart = this.anchor(); + command.state = "editing"; + this.changed(); + break; + } + + case "command-executed": { + const command = this.open ?? this.begin(); + // A command joins the list when it actually runs. Before `C` it is + // just a prompt the user may never submit. + if (!this.list.includes(command)) { + this.list.push(command); + this.evict(); + } + command.outputStart = this.anchor(); + command.state = "running"; + command.executedAt = this.now(); + if (command.commandLine === null && command.commandStart && command.outputStart) { + command.commandLine = + this.options.readCommandLine?.(command.commandStart, command.outputStart) ?? null; + } + this.options.onCommandStart?.(command); + this.changed(); + break; + } + + case "command-end": + this.closeOpen(mark.exitCode); + this.changed(); + break; + + case "command-line": { + const command = this.open ?? this.begin(); + command.commandLine = mark.text; + this.changed(); + break; + } + + case "property": + if (mark.key === "Cwd") { + this.cwdNow = mark.value; + if (this.open) this.open.cwd = mark.value; + this.changed(); + } + break; + + case "set-mark": + break; + } + } + + /** Free every anchor. Call before freeing the terminal. */ + dispose(): void { + for (const command of this.list) freeAnchors(command); + this.list = []; + this.open = null; + } + + private begin(): ShellCommand { + const command: ShellCommand = { + id: this.nextId++, + commandLine: null, + cwd: this.cwdNow, + exitCode: null, + state: "prompt", + executedAt: null, + finishedAt: null, + promptStart: null, + commandStart: null, + outputStart: null, + outputEnd: null, + }; + this.open = command; + return command; + } + + private closeOpen(exitCode: number | null): void { + const command = this.open; + if (command === null) return; + this.open = null; + // A command that never reached `C` never ran (an empty prompt, ^C at the + // prompt): it was never listed, so just release its anchors. + if (command.state === "prompt" || command.state === "editing") { + freeAnchors(command); + return; + } + command.state = "finished"; + command.exitCode = exitCode; + command.finishedAt = this.now(); + command.outputEnd = this.anchor(); + this.options.onCommandEnd?.(command); + } + + private evict(): void { + const limit = this.options.limit ?? DEFAULT_LIMIT; + // Never evict the open command — it is still accumulating. + while (this.list.length > limit && this.list[0] !== this.open) { + const dropped = this.list.shift(); + if (dropped) freeAnchors(dropped); + } + } + + private anchor(): CommandAnchor | null { + return this.options.anchor?.() ?? null; + } + + private now(): number { + return this.options.now?.() ?? Date.now(); + } + + private changed(): void { + this.options.onChange?.(); + } +} + +function freeAnchors(command: ShellCommand): void { + for (const anchor of [ + command.promptStart, + command.commandStart, + command.outputStart, + command.outputEnd, + ]) { + anchor?.free(); + } + command.promptStart = null; + command.commandStart = null; + command.outputStart = null; + command.outputEnd = null; +} diff --git a/packages/terminal/src/shell/index.ts b/packages/terminal/src/shell/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..779cf8cbc3d9e7c93f71e7d1bf22274a490601b9 --- /dev/null +++ b/packages/terminal/src/shell/index.ts @@ -0,0 +1,10 @@ +export { OscScanner, type OscSpan } from "./osc.ts"; +export { parseShellMark, unescapeMarkValue, type MarkSource, type ShellMark } from "./marks.ts"; +export { stickyCommand, stickyTarget } from "./sticky.ts"; +export { + ShellCommands, + type CommandAnchor, + type CommandState, + type ShellCommand, + type ShellCommandsOptions, +} from "./commands.ts"; diff --git a/packages/terminal/src/shell/marks.ts b/packages/terminal/src/shell/marks.ts new file mode 100644 index 0000000000000000000000000000000000000000..4a868205b0f87c8d24ba3b404c2e4c863a7d9b15 --- /dev/null +++ b/packages/terminal/src/shell/marks.ts @@ -0,0 +1,120 @@ +// OSC payload -> shell-integration mark. +// +// Two dialects, same shape. OSC 133 is the FinalTerm/iTerm2 semantic-prompt +// convention every shell-integration script emits; OSC 633 is VS Code's +// superset, which adds the command line itself (`E`) and properties (`P`) — +// the reason we prefer it when both are present. Everything here is a pure +// string->value mapping; the state machine lives in commands.ts. +// +// Unrecognized payloads return null by design: a scrollback replay can open +// mid-sequence and hand this layer a torn prefix, and shells emit plenty of +// OSC we do not model. + +export type MarkSource = 133 | 633; + +export type ShellMark = + /** `A` — prompt begins. */ + | { kind: "prompt-start"; source: MarkSource } + /** `B` — prompt ends, the user's command line begins. */ + | { kind: "command-start"; source: MarkSource } + /** `C` — the command was submitted; output begins. */ + | { kind: "command-executed"; source: MarkSource } + /** `D[;exit]` — the command finished. */ + | { kind: "command-end"; exitCode: number | null; source: MarkSource } + /** `633;E` — the command line, reported rather than read off the screen. */ + | { kind: "command-line"; text: string; source: MarkSource } + /** `P;Key=Value` — Cwd and friends. */ + | { kind: "property"; key: string; value: string; source: MarkSource } + /** `633;SetMark` — a user bookmark, unrelated to command boundaries. */ + | { kind: "set-mark"; source: MarkSource }; + +/** + * Undo the VS Code shell-integration escaping (`\xAB` hex, `\\` literal). + * Applied to `633;E` command lines and `633;P` values, which would otherwise + * be unable to carry `;` or newlines. + */ +export function unescapeMarkValue(text: string): string { + if (!text.includes("\\")) return text; + let out = ""; + for (let i = 0; i < text.length; i++) { + const ch = text[i]!; + if (ch !== "\\") { + out += ch; + continue; + } + const next = text[i + 1]; + if (next === "\\") { + out += "\\"; + i++; + } else if (next === "x" || next === "X") { + const hex = text.slice(i + 2, i + 4); + if (/^[0-9a-fA-F]{2}$/.test(hex)) { + out += String.fromCharCode(Number.parseInt(hex, 16)); + i += 3; + } else { + out += ch; + } + } else { + out += ch; + } + } + return out; +} + +/** Parse one OSC payload (the bytes between `ESC ]` and the terminator). */ +export function parseShellMark(payload: string): ShellMark | null { + const semi = payload.indexOf(";"); + if (semi <= 0) return null; + const code = payload.slice(0, semi); + if (code !== "133" && code !== "633") return null; + const source: MarkSource = code === "633" ? 633 : 133; + const body = payload.slice(semi + 1); + const parts = body.split(";"); + const command = parts[0] ?? ""; + + switch (command) { + case "A": + return { kind: "prompt-start", source }; + case "B": + return { kind: "command-start", source }; + case "C": + return { kind: "command-executed", source }; + case "D": { + const raw = parts[1]; + // `D` with no argument means "finished, exit status unknown" — a shell + // that lost the status, or a command interrupted before it reported one. + const exitCode = + raw === undefined || raw === "" ? null : Number.isNaN(Number(raw)) ? null : Number(raw); + return { kind: "command-end", exitCode, source }; + } + case "E": { + // `633;E;[;nonce]`. The command line may itself contain + // escaped separators, so rejoin everything but a trailing nonce. + if (source !== 633) return null; + const rest = parts.slice(1); + if (rest.length === 0) return null; + // The nonce (when present) is the last field and never contains an + // escape; treat a trailing field as a nonce only if more than one field + // survived the split. + const text = unescapeMarkValue(rest.length > 1 ? rest.slice(0, -1).join(";") : rest[0]!); + return { kind: "command-line", text, source }; + } + case "P": { + const pair = parts.slice(1).join(";"); + const eq = pair.indexOf("="); + if (eq <= 0) return null; + return { + kind: "property", + key: pair.slice(0, eq), + value: unescapeMarkValue(pair.slice(eq + 1)), + source, + }; + } + case "SetMark": + return { kind: "set-mark", source }; + default: + // F/G (continuation), H/I (right prompt) and anything newer: recognized + // as "not ours" rather than misread. + return null; + } +} diff --git a/packages/terminal/src/shell/osc.ts b/packages/terminal/src/shell/osc.ts new file mode 100644 index 0000000000000000000000000000000000000000..58b02306281b9bcb1b7a27b7772d2793a69fecf3 --- /dev/null +++ b/packages/terminal/src/shell/osc.ts @@ -0,0 +1,142 @@ +// Streaming OSC scanner over the raw pty byte stream. +// +// Why a second parser at all: libghostty-vt consumes OSC internally and only +// surfaces the handful it models (title, pwd, clipboard). The shell-integration +// command model needs OSC 133 and VS Code's OSC 633, which the core does not +// hand back. This scanner watches the same bytes on the way in. +// +// It is deliberately *not* a VT parser. It recognizes exactly one construct — +// `ESC ]` … terminator — which is enough to lift OSC payloads out, and is +// resilient to the wire's realities: sequences split across writes (state +// carries), a replayed scrollback head that opens mid-sequence (garbage +// payloads fail to parse one layer up), and unbounded OSC floods (capped). + +/** Payload cap: longer OSC bodies are dropped, not buffered (ghostty-web #186). */ +const MAX_PAYLOAD = 32 * 1024; + +const BEL = 0x07; +const ESC = 0x1b; +const CAN = 0x18; +const SUB = 0x1a; +const BACKSLASH = 0x5c; + +export interface OscSpan { + /** + * Byte offset in the current chunk one past the sequence terminator. Writes + * split here so a mark's anchor sees the cursor exactly where the shell put it. + */ + end: number; + /** Payload between `ESC ]` and the terminator, decoded as UTF-8. */ + payload: string; +} + +// A plain const rather than `const enum`: erasable-syntax-only toolchains +// (node --experimental-strip-types among them) reject const enums outright. +const State = { + Ground: 0, + Esc: 1, + Osc: 2, + OscEsc: 3, +} as const; + +const decoder = new TextDecoder(); + +type StateValue = (typeof State)[keyof typeof State]; + +export class OscScanner { + private state: StateValue = State.Ground; + private buf: number[] = []; + /** Payload blew the cap: consume to the terminator, then emit nothing. */ + private overflowed = false; + + /** + * Feed a chunk; returns the OSC sequences that *ended* in it, in order. + * State carries across calls, so a sequence opened in an earlier chunk is + * reported against the chunk that closed it. + */ + scan(bytes: Uint8Array): OscSpan[] { + const spans: OscSpan[] = []; + for (let i = 0; i < bytes.length; i++) { + const byte = bytes[i]!; + switch (this.state) { + case State.Ground: { + // Ordinary output is the overwhelming majority of the stream and + // contains no ESC. Skip to the next one natively rather than + // switch-dispatching per byte. + if (byte === ESC) { + this.state = State.Esc; + break; + } + const next = bytes.indexOf(ESC, i + 1); + if (next === -1) return spans; + i = next - 1; + break; + } + + case State.Esc: + // `ESC ]` opens an OSC; anything else is some other escape we ignore + // (but a second ESC keeps us in Esc — ESC ESC ] is still an opener). + if (byte === 0x5d) { + this.state = State.Osc; + this.buf = []; + this.overflowed = false; + } else if (byte !== ESC) { + this.state = State.Ground; + } + break; + + case State.Osc: + if (byte === BEL) { + this.emit(spans, i + 1); + } else if (byte === ESC) { + this.state = State.OscEsc; + } else if (byte === CAN || byte === SUB) { + // xterm's abort characters: the sequence is cancelled, not emitted. + this.reset(); + } else if (!this.overflowed) { + this.buf.push(byte); + if (this.buf.length > MAX_PAYLOAD) { + this.buf = []; + this.overflowed = true; + } + } + break; + + case State.OscEsc: + if (byte === BACKSLASH) { + // ST terminator. + this.emit(spans, i + 1); + } else { + // A bare ESC inside the payload: the sequence is malformed. Drop it + // and re-dispatch this byte from ground so a following `ESC ]` is + // not swallowed. + this.reset(); + i--; + } + break; + } + } + return spans; + } + + /** True when a sequence is mid-flight and its bytes are still buffered. */ + get pending(): boolean { + return this.state !== State.Ground; + } + + /** Drop carried state — e.g. before replaying a scrollback snapshot. */ + reset(): void { + this.state = State.Ground; + this.buf = []; + this.overflowed = false; + } + + private emit(spans: OscSpan[], end: number): void { + if (!this.overflowed) spans.push({ end, payload: decodePayload(this.buf) }); + this.reset(); + } +} + +function decodePayload(buf: number[]): string { + return decoder.decode(new Uint8Array(buf)); +} diff --git a/packages/terminal/src/shell/sticky.ts b/packages/terminal/src/shell/sticky.ts new file mode 100644 index 0000000000000000000000000000000000000000..6a2f8d23e8a2699bef422b507e8c665ef8bd79bf --- /dev/null +++ b/packages/terminal/src/shell/sticky.ts @@ -0,0 +1,49 @@ +// Sticky scroll: which command's header belongs pinned at the top of the +// viewport right now. +// +// The question only has an answer because command boundaries are anchored in +// screen space and survive scrolling (`commands.ts`). Scroll into the middle of +// a long build and the command that produced it has left the screen; pinning it +// is what turns scrollback into something you can read without losing your +// place. +// +// Pure: takes the viewport's top row and the command list, returns the command +// (or null). No DOM, no wasm — the renderer supplies `viewportTop` from the +// scrollbar, whose `offset` is the viewport's top row in the same screen +// coordinate space anchors report. + +import type { ShellCommand } from "./commands.ts"; + +/** + * The command whose output the viewport is currently inside, if that command's + * own line has scrolled off the top. + * + * Returns null when the command's line is still visible (pinning it would show + * it twice), when the viewport is above every command, or when the shell is + * uninstrumented. + */ +export function stickyCommand( + commands: readonly ShellCommand[], + viewportTop: number, +): ShellCommand | null { + let sticky: ShellCommand | null = null; + for (const command of commands) { + const start = (command.commandStart ?? command.promptStart)?.screenPoint(); + if (start === null || start === undefined) continue; + // Commands are in order, so the first one starting at or below the + // viewport top ends the search. + if (start.y >= viewportTop) break; + // A finished command whose output ended above the viewport is behind us. + // A running command has no end yet and extends to the bottom. + const end = command.outputEnd?.screenPoint(); + if (end !== null && end !== undefined && end.y < viewportTop) continue; + sticky = command; + } + return sticky; +} + +/** The row to scroll to when the pinned header is activated. */ +export function stickyTarget(command: ShellCommand): number | null { + const start = (command.promptStart ?? command.commandStart)?.screenPoint(); + return start?.y ?? null; +} diff --git a/packages/terminal/src/solid.tsx b/packages/terminal/src/solid.tsx new file mode 100644 index 0000000000000000000000000000000000000000..01cfae3c7939afa025a870db81c8e3cae69df4e6 --- /dev/null +++ b/packages/terminal/src/solid.tsx @@ -0,0 +1,83 @@ +/** @jsxImportSource solid-js */ + +import { createEffect, onCleanup, splitProps, untrack, type JSX } from "solid-js"; + +import { ansiToHtml } from "./ansi.ts"; +import type { GhosttyModule } from "./ghostty/module.ts"; +import { mountTerminal, type MountTerminalOptions, type TerminalHandle } from "./mount.ts"; + +export type AnsiTextProps = { text: string } & Omit< + JSX.HTMLAttributes, + "children" | "innerHTML" +>; + +/** Static ANSI text with no terminal viewport, input, or scroll behavior. */ +export function AnsiText(props: AnsiTextProps): JSX.Element { + const [local, attributes] = splitProps(props, ["text"]); + return ; +} + +export interface TerminalPaneProps extends MountTerminalOptions { + module: GhosttyModule; + /** Receives the mounted handle and may return caller cleanup for unmount/remount. */ + onReady?: (handle: TerminalHandle) => void | (() => void); + class?: string; + classList?: Record; + style?: JSX.CSSProperties | string; +} + +/** Solid lifecycle adapter over `mountTerminal`. Creation options are read when `module` mounts. */ +export function TerminalPane(props: TerminalPaneProps): JSX.Element { + let host: HTMLDivElement | undefined; + + createEffect(() => { + const module = props.module; + const container = host; + if (container === undefined) throw new Error("solid terminal host did not mount"); + const options = untrack(() => ({ + ...props, + onData: (bytes) => props.onData?.(bytes), + onBeforeKey: (event) => props.onBeforeKey?.(event) ?? true, + onResize: (size) => props.onResize?.(size), + onTitleChanged: (title) => props.onTitleChanged?.(title), + onPwdChanged: (pwd) => props.onPwdChanged?.(pwd), + onBell: () => props.onBell?.(), + onShellMark: (mark) => props.onShellMark?.(mark), + onCommandStart: (command) => props.onCommandStart?.(command), + onCommandEnd: (command) => props.onCommandEnd?.(command), + onClipboardWrite: (write) => props.onClipboardWrite?.(write), + })); + const handle = mountTerminal(container, module, options); + let cleanup: void | (() => void); + onCleanup(() => { + try { + cleanup?.(); + } finally { + handle.dispose(); + } + }); + try { + cleanup = untrack(() => props.onReady?.(handle)); + } catch (error) { + handle.dispose(); + throw error; + } + }); + + return ( +
name !== "clo-term-mount" && enabled) + .map(([name]) => name), + ] + .filter(Boolean) + .join(" ")} + style={props.style} + > +
(host = element)} style={{ width: "100%", height: "100%" }} /> +
+ ); +} diff --git a/packages/terminal/test/dom.test.ts b/packages/terminal/test/dom.test.ts new file mode 100644 index 0000000000000000000000000000000000000000..0417a96fb98a28d79e070b4438ef82f5c65ca513 --- /dev/null +++ b/packages/terminal/test/dom.test.ts @@ -0,0 +1,217 @@ +// @vitest-environment jsdom +import * as NodeFS from "node:fs"; +import * as NodeURL from "node:url"; +import { afterEach, beforeAll, beforeEach, expect, it, vi } from "vite-plus/test"; + +import { GhosttyModule, mountTerminal, type TerminalHandle } from "../src/index.ts"; + +let module: GhosttyModule; +let cellWidth = 7.8; +let cellHeight = 15.6; +const handles = new Set(); +const decoder = new TextDecoder(); + +beforeAll(async () => { + module = await GhosttyModule.load( + new Uint8Array( + NodeFS.readFileSync( + NodeURL.fileURLToPath(import.meta.url).replace( + /test\/dom\.test\.ts$/, + "vendor/ghostty-vt.wasm", + ), + ), + ), + ); +}); + +beforeEach(() => { + cellWidth = 7.8; + cellHeight = 15.6; + vi.stubGlobal("requestAnimationFrame", () => 0); + vi.stubGlobal("cancelAnimationFrame", () => {}); + vi.spyOn(HTMLCanvasElement.prototype, "getContext").mockReturnValue(null); + vi.spyOn(HTMLElement.prototype, "getBoundingClientRect").mockImplementation(function ( + this: HTMLElement, + ) { + if (this.classList.contains("clo-term-measure")) { + return new DOMRect(0, 0, cellWidth * 32, cellHeight); + } + if (this.classList.contains("clo-term-viewport")) { + return new DOMRect( + 80, + 120, + Number.parseFloat(this.style.width), + Number.parseFloat(this.style.height), + ); + } + return new DOMRect(72, 108, 800, 800); + }); +}); + +afterEach(() => { + handles.forEach((handle) => handle.dispose()); + handles.clear(); + document.body.replaceChildren(); + vi.restoreAllMocks(); + vi.unstubAllGlobals(); +}); + +async function mount() { + const host = document.createElement("div"); + document.body.append(host); + const reports: string[] = []; + const handle = mountTerminal(host, module, { + scrollbar: false, + stickyScroll: false, + onData: (bytes) => reports.push(decoder.decode(bytes)), + }); + handles.add(handle); + await handle.ready; + handle.write("\x1b[?1049h\x1b[?1003h\x1b[?1006h"); + handle.view.paint(); + const viewport = host.querySelector(".clo-term-viewport")!; + const rows = host.querySelector(".clo-term-rows")!; + return { handle, reports, viewport, rows }; +} + +it("reports the rendered cell across a grid with fractional font metrics and after a font change", async () => { + const { handle, reports, viewport, rows } = await mount(); + + for (const metrics of [ + [7.8, 15.6], + [6.5, 14.3], + ]) { + [cellWidth, cellHeight] = metrics; + handle.view.refreshMetrics(); + handle.view.paint(); + const renderedWidth = Number.parseFloat(rows.style.getPropertyValue("--clo-term-cell-w")); + const renderedHeight = Number.parseFloat(rows.style.getPropertyValue("--clo-term-cell-h")); + + for (const col of [0, 1, 40, handle.terminal.cols - 1]) { + for (const row of [0, 1, 30, handle.terminal.rows - 1]) { + for (const fraction of [0.01, 0.5, 0.99]) { + const at = { + bubbles: true, + cancelable: true, + clientX: 80 + (col + fraction) * renderedWidth, + clientY: 120 + (row + fraction) * renderedHeight, + }; + viewport.dispatchEvent(new MouseEvent("mousedown", at)); + expect(reports.pop()).toBe(`\x1b[<0;${col + 1};${row + 1}M`); + viewport.dispatchEvent(new MouseEvent("mouseup", at)); + expect(reports.pop()).toBe(`\x1b[<0;${col + 1};${row + 1}m`); + } + } + } + } +}); + +it("keeps wheel, drag and pixel reports in the same viewport coordinate system", async () => { + const { handle, reports, viewport, rows } = await mount(); + const renderedWidth = Number.parseFloat(rows.style.getPropertyValue("--clo-term-cell-w")); + const renderedHeight = Number.parseFloat(rows.style.getPropertyValue("--clo-term-cell-h")); + const at = { + bubbles: true, + cancelable: true, + clientX: 80 + 70.5 * renderedWidth, + clientY: 120 + 40.5 * renderedHeight, + }; + viewport.dispatchEvent(new MouseEvent("mousemove", { ...at, buttons: 1 })); + expect(reports.pop()).toBe("\x1b[<32;71;41M"); + viewport.dispatchEvent(new WheelEvent("wheel", { ...at, deltaY: 10 })); + expect(reports.pop()).toBe("\x1b[<65;71;41M"); + + handle.write("\x1b[?1016h"); + viewport.dispatchEvent(new MouseEvent("mousedown", { ...at, clientX: 311.5, clientY: 582.25 })); + expect(reports.pop()).toBe("\x1b[<0;232;462M"); +}); + +function touchPointer( + target: HTMLElement, + type: string, + clientY: number, + options: { pointerId?: number; isPrimary?: boolean; clientX?: number } = {}, +) { + const event = new MouseEvent(type, { + bubbles: true, + cancelable: true, + clientX: options.clientX ?? 100, + clientY, + }); + Object.defineProperties(event, { + pointerType: { value: "touch" }, + pointerId: { value: options.pointerId ?? 1 }, + isPrimary: { value: options.isPrimary ?? true }, + }); + target.dispatchEvent(event); + return event; +} + +it("reports one tap at the touched cell and focuses the terminal input", async () => { + const { handle, reports, viewport } = await mount(); + reports.length = 0; + touchPointer(viewport, "pointerdown", 120 + 2.5 * cellHeight, { + clientX: 80 + 3.5 * cellWidth, + }); + expect(reports).toEqual([]); + touchPointer(viewport, "pointerup", 120 + 2.5 * cellHeight, { + clientX: 80 + 3.5 * cellWidth, + }); + touchPointer(viewport, "click", 120 + 2.5 * cellHeight); + expect(reports).toEqual(["\x1b[<0;4;3M", "\x1b[<0;4;3m"]); + expect(document.activeElement).toBe(handle.view.input); +}); + +it("turns touch swipes into mouse wheel rows without also clicking", async () => { + const { reports, viewport } = await mount(); + reports.length = 0; + touchPointer(viewport, "pointerdown", 240); + touchPointer(viewport, "pointermove", 240 - 2.5 * cellHeight); + touchPointer(viewport, "pointermove", 240 - 3.5 * cellHeight); + touchPointer(viewport, "pointerup", 240 - 3.5 * cellHeight); + expect(reports).toHaveLength(3); + expect(reports.every((report) => report.startsWith("\x1b[<65;"))).toBe(true); +}); + +it("scrolls normal output on touch without sending terminal input", async () => { + const { handle, reports, viewport } = await mount(); + handle.write("\x1b[?1003l\x1b[?1049l"); + handle.write(Array.from({ length: 100 }, (_, i) => `line ${i}\r\n`).join("")); + handle.view.paint(); + reports.length = 0; + const before = handle.terminal.scrollbar().offset; + touchPointer(viewport, "pointerdown", 240); + touchPointer(viewport, "pointermove", 240 + 3 * cellHeight); + touchPointer(viewport, "pointerup", 240 + 3 * cellHeight); + expect(handle.terminal.scrollbar().offset).toBeLessThan(before); + expect(reports).toEqual([]); +}); + +it.each([ + { application: false, expected: "\x1b[A" }, + { application: true, expected: "\x1bOA" }, +])( + "scrolls a non-mouse TUI using its cursor-key mode: $application", + async ({ application, expected }) => { + const { handle, reports, viewport } = await mount(); + handle.write(`\x1b[?1003l\x1b[?1${application ? "h" : "l"}`); + reports.length = 0; + touchPointer(viewport, "pointerdown", 240); + touchPointer(viewport, "pointermove", 240 + 2.5 * cellHeight); + touchPointer(viewport, "pointerup", 240 + 2.5 * cellHeight); + expect(reports).toEqual([expected, expected]); + }, +); + +it("ignores secondary touches and cancelled taps", async () => { + const { reports, viewport } = await mount(); + reports.length = 0; + touchPointer(viewport, "pointerdown", 240, { pointerId: 2, isPrimary: false }); + touchPointer(viewport, "pointerup", 240, { pointerId: 2, isPrimary: false }); + touchPointer(viewport, "pointerdown", 240); + touchPointer(viewport, "pointerdown", 220, { pointerId: 2, isPrimary: false }); + touchPointer(viewport, "pointermove", 180, { pointerId: 2, isPrimary: false }); + touchPointer(viewport, "pointercancel", 240); + touchPointer(viewport, "pointerup", 240); + expect(reports).toEqual([]); +}); diff --git a/packages/terminal/test/links.test.ts b/packages/terminal/test/links.test.ts new file mode 100644 index 0000000000000000000000000000000000000000..67027aef0336756400ab6f75081a835495a325db --- /dev/null +++ b/packages/terminal/test/links.test.ts @@ -0,0 +1,49 @@ +import { expect, it, vi } from "vite-plus/test"; +import { detectLinks } from "../src/links.ts"; + +it.each([ + String.raw`C:\repo\src\file.ts`, + "C:/repo/src/file.ts", + String.raw`\\server\share\file.ts`, + "~/src/file.ts", + "/repo/src/file.ts", + "../src/file.ts", + "src/file.ts", + String.raw`src\file.ts`, +])("detects the full host path %s with its source position", (path) => { + const validate = vi.fn(() => true); + const text = `error (${path}:12:3):`; + expect(detectLinks(text, { validate })).toEqual([ + { + kind: "path", + start: 7, + end: 7 + path.length + 5, + text: `${path}:12:3`, + target: path, + line: 12, + column: 3, + }, + ]); + expect(validate).toHaveBeenCalledExactlyOnceWith(path); +}); + +it("validates the complete target and never falls back to an allowed basename", () => { + const validate = vi.fn((target: string) => target === "file.ts"); + expect(detectLinks(String.raw`C:\repo\src\file.ts:12:3 ~/src/file.ts:7`, { validate })).toEqual( + [], + ); + expect(validate.mock.calls.map(([target]) => target)).toEqual([ + String.raw`C:\repo\src\file.ts`, + "~/src/file.ts", + ]); +}); + +it("keeps URL matches distinct from filesystem paths", () => { + const links = detectLinks("https://example.test/src/file.ts:12 ~/src/file.ts:3", { + validate: () => true, + }); + expect(links.map(({ kind, target, line }) => ({ kind, target, line }))).toEqual([ + { kind: "url", target: "https://example.test/src/file.ts:12", line: null }, + { kind: "path", target: "~/src/file.ts", line: 3 }, + ]); +}); diff --git a/packages/terminal/test/terminal.test.ts b/packages/terminal/test/terminal.test.ts new file mode 100644 index 0000000000000000000000000000000000000000..1c612c4f772d4a0191c636804c1d27cf0f28ab75 --- /dev/null +++ b/packages/terminal/test/terminal.test.ts @@ -0,0 +1,66 @@ +import * as NodeFS from "node:fs"; +import * as NodeURL from "node:url"; +import { afterEach, beforeAll, expect, it } from "vite-plus/test"; + +import { GhosttyModule, Terminal } from "../src/index.ts"; + +let module: GhosttyModule; +const terminals = new Set(); + +beforeAll(async () => { + const path = NodeURL.fileURLToPath(import.meta.url).replace( + /test\/terminal\.test\.ts$/, + "vendor/ghostty-vt.wasm", + ); + module = await GhosttyModule.load(new Uint8Array(NodeFS.readFileSync(path))); +}); + +afterEach(() => { + terminals.forEach((terminal) => terminal.free()); + terminals.clear(); +}); + +function create() { + const terminal = new Terminal(module, { cols: 20, rows: 4, maxScrollbackBytes: 1024 * 1024 }); + terminals.add(terminal); + return terminal; +} + +it("preserves Unicode, wide cells and ANSI under arbitrary byte chunking", () => { + const whole = create(); + const split = create(); + const bytes = new TextEncoder().encode("hello 👩‍💻 日本\r\n\x1b[31mred\x1b[0m"); + whole.write(bytes); + for (let index = 0; index < bytes.length; index += 3) split.write(bytes.slice(index, index + 3)); + expect(split.snapshot({ full: true })).toEqual(whole.snapshot({ full: true })); + expect(split.text()).toContain("hello 👩‍💻 日本"); + expect(split.text()).toContain("red"); +}); + +it("retains scrollback and reflows the same terminal through a resize", () => { + const terminal = create(); + terminal.write("one\r\ntwo\r\nthree\r\nfour\r\nfive"); + const before = terminal.scrollbar(); + expect(before.total).toBeGreaterThan(before.len); + terminal.scrollToTop(); + expect(terminal.scrollbar().offset).toBe(0); + terminal.resize(10, 3); + expect(terminal.cols).toBe(10); + expect(terminal.rows).toBe(3); + terminal.scrollToBottom(); + expect(terminal.text()).toContain("five"); +}); + +it("keeps a single destructive frame reader until disposal", () => { + const terminal = create(); + const reader = terminal.acquireFrameReader(); + terminal.write("hello"); + expect(() => terminal.snapshot()).toThrow(); + expect( + reader + .snapshot({ full: true }) + .dirtyRows.some((row) => row.cells.some((cell) => cell.text === "h")), + ).toBe(true); + reader.dispose(); + expect(terminal.snapshot({ full: true }).cols).toBe(20); +}); diff --git a/packages/terminal/tsconfig.json b/packages/terminal/tsconfig.json new file mode 100644 index 0000000000000000000000000000000000000000..0035f73228c27758478446e7b4ae8a60000065e8 --- /dev/null +++ b/packages/terminal/tsconfig.json @@ -0,0 +1,22 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "lib": ["ES2023", "DOM", "DOM.Iterable"], + "module": "Preserve", + "moduleResolution": "Bundler", + "jsx": "react-jsx", + "types": ["vite/client"], + "plugins": [ + { + "name": "@effect/language-service", + "diagnosticSeverity": { + "globalDate": "off", + "globalConsole": "off", + "globalTimers": "off", + "globalFetch": "off" + } + } + ] + }, + "include": ["src", "types"] +} diff --git a/packages/terminal/types/assets.d.ts b/packages/terminal/types/assets.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..3de07cb1a4df99937d721cd31b611b7c10188411 --- /dev/null +++ b/packages/terminal/types/assets.d.ts @@ -0,0 +1,6 @@ +declare module "*?url" { + const url: string; + export default url; +} + +declare module "*.css"; diff --git a/packages/terminal/vendor/COMMIT b/packages/terminal/vendor/COMMIT new file mode 100644 index 0000000000000000000000000000000000000000..4fec8b3986902bb6995a4eec0ca4610070017971 --- /dev/null +++ b/packages/terminal/vendor/COMMIT @@ -0,0 +1 @@ +4c725242b7dbe8c77c6e227ef1f9540c5ef17921 diff --git a/packages/terminal/vendor/GHOSTTY-LICENSE b/packages/terminal/vendor/GHOSTTY-LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..0a07a66cd1ad6ea35cc3b8150e2c37702fe5989d --- /dev/null +++ b/packages/terminal/vendor/GHOSTTY-LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Mitchell Hashimoto, Ghostty contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/terminal/vendor/README.md b/packages/terminal/vendor/README.md new file mode 100644 index 0000000000000000000000000000000000000000..e5ad0835375a2ca5828a1f80509d269bbe970d36 --- /dev/null +++ b/packages/terminal/vendor/README.md @@ -0,0 +1,35 @@ +# vendor/ + +`ghostty-vt.wasm` is libghostty-vt built from the Ghostty source tree (MIT, `GHOSTTY-LICENSE`) at the commit pinned in `COMMIT`. `include/` is the matching C API header set, vendored for reference and as the source of truth for `gen-constants.mjs`. + +The vendored artifact is **pinned to the commit in `COMMIT`**. Do not update without running the full bump checklist — libghostty-vt has no tagged release, and every bump is a potential silent ABI break. + +## Rebuild recipe + +```sh +git clone https://github.com/ghostty-org/ghostty.git # mirror; upstream is migrating forges +cd ghostty && git checkout $(cat ../COMMIT) +patch -p1 < /vendor/patches/wasm-batched-vt.patch +patch -p1 < /vendor/patches/wasm-ascii-row.patch +zig build -Demit-lib-vt -Dtarget=wasm32-freestanding -Doptimize=ReleaseSmall +cp zig-out/bin/ghostty-vt.wasm +node /vendor/verify.mjs +``` + +The local patch keeps Ghostty's existing scalar `print_slice` batching enabled +for wasm. Upstream's `simd=false` disables native SIMD dependencies, but the +unpatched stream also falls back to one parser action per byte even though the +batched path has a scalar decoder. + +The ASCII-row patch adds a fail-closed bulk export for narrow printable cells +with default presentation or an explicit foreground. Unsupported rows return +`GHOSTTY_NO_VALUE` and continue through the canonical per-cell API. + +Zig version must match `.minimum_zig_version` in `build.zig.zon` (0.16.0 at the pinned commit). If zig's fetcher fails with `TlsInitializationFailed` against `deps.files.ghostty.org`, curl the tarball it names and `zig fetch ` manually, then retry. + +## Bump checklist + +1. New commit into `COMMIT`, rebuild wasm, re-vendor `include/`, and replace `SHA256` with the rebuilt wasm's lowercase SHA-256. +2. `node vendor/gen-constants.mjs` — regenerates `src/ghostty/constants.ts`; a changed enum value or struct layout is an API break to review, not noise. +3. `node vendor/verify.mjs ` verifies the checked-in wasm hash, required exports and type metadata, patched source metadata, and the upstream wasm-allocator page-zeroing guard. The source argument is mandatory during a bump; `pnpm verify:vendor` performs the artifact-only checks on every package check. +4. Run the package test suite; `test/lifecycle.vi.ts` re-proves the grapheme create/free cycle against the new artifact. diff --git a/packages/terminal/vendor/SHA256 b/packages/terminal/vendor/SHA256 new file mode 100644 index 0000000000000000000000000000000000000000..f88f6fc50f56614b427437852e1603d9bde05d01 --- /dev/null +++ b/packages/terminal/vendor/SHA256 @@ -0,0 +1 @@ +d87ad59912c12ed2ca8f33da01137e6ea489a4de5dd181802d0f50d46c75c14d diff --git a/packages/terminal/vendor/gen-constants.mjs b/packages/terminal/vendor/gen-constants.mjs new file mode 100644 index 0000000000000000000000000000000000000000..973c423742fa68dab49d11357c5cb788c9e48545 --- /dev/null +++ b/packages/terminal/vendor/gen-constants.mjs @@ -0,0 +1,62 @@ +// Regenerates src/ghostty/constants.ts from the vendored C headers. +// Parses `typedef enum ... } Name;` blocks, tracking implicit +1 values. +// Run from the package root: node vendor/gen-constants.mjs +import { readFileSync, readdirSync, writeFileSync } from "node:fs"; +import { join, dirname } from "node:path"; +import { fileURLToPath } from "node:url"; + +const root = dirname(fileURLToPath(import.meta.url)); +const headerDir = join(root, "include/ghostty/vt"); +const headers = readdirSync(headerDir, { recursive: true }) + .filter((f) => String(f).endsWith(".h")) + .map((f) => readFileSync(join(headerDir, String(f)), "utf8")); + +const enums = new Map(); +const enumRe = /typedef enum[^{]*\{([\s\S]*?)\}\s*(\w+)\s*;/g; +for (const src of headers) { + for (const m of src.matchAll(enumRe)) { + const [, body, name] = m; + const members = []; + let next = 0; + const stripped = body.replace(/\/\*[\s\S]*?\*\//g, "").replace(/\/\/[^\n]*/g, ""); + for (const entry of stripped.split(",")) { + const em = entry.match(/([A-Z][A-Z0-9_]+)\s*(?:=\s*([^,\s]+))?/); + if (!em) continue; + const [, ident, valueExpr] = em; + if (ident.endsWith("_MAX_VALUE")) continue; + let value = next; + if (valueExpr !== undefined) { + if (/^-?\d+$/.test(valueExpr)) value = Number(valueExpr); + else if (/^0x[0-9a-fA-F]+$/.test(valueExpr)) value = Number(valueExpr); + else continue; // symbolic (GHOSTTY_ENUM_MAX_VALUE etc.) + } + members.push([ident, value]); + next = value + 1; + } + if (members.length > 0 && name.startsWith("Ghostty")) enums.set(name, members); + } +} + +let out = `// GENERATED by vendor/gen-constants.mjs from the vendored libghostty-vt headers\n`; +out += `// (commit in vendor/COMMIT). Do not edit by hand; re-run the generator on bump.\n\n`; +for (const [name, members] of [...enums.entries()].sort(([a], [b]) => a.localeCompare(b))) { + out += `export const ${name} = {\n`; + for (const [ident, value] of members) out += ` ${ident}: ${value},\n`; + out += `} as const;\n\n`; +} +out = `${out.trimEnd()}\n`; +const outPath = join(root, "../src/ghostty/constants.ts"); +if (process.argv.includes("--check")) { + const current = readFileSync(outPath, "utf8"); + if (current !== out) { + let mismatch = 0; + while (current[mismatch] === out[mismatch]) mismatch++; + throw new Error( + `${outPath} is stale at byte ${mismatch}: expected ${JSON.stringify(out.slice(mismatch, mismatch + 80))}, got ${JSON.stringify(current.slice(mismatch, mismatch + 80))}; run node vendor/gen-constants.mjs`, + ); + } + console.log(`verified ${outPath}: ${enums.size} enums`); +} else { + writeFileSync(outPath, out); + console.log(`wrote ${outPath}: ${enums.size} enums`); +} diff --git a/packages/terminal/vendor/ghostty-vt.wasm b/packages/terminal/vendor/ghostty-vt.wasm new file mode 100644 index 0000000000000000000000000000000000000000..2d48ab9772225e619c035aef567592d5c2c46d38 GIT binary patch literal 716497 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
v;;x9Rfzr-hx`A?!(rx3ro9>k-n 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%0AO`n)wULF+W>NbK99=g_4H-#UxXOZJETS zsZCQj=_w_pQpyZVS{w=jL_HW93n{k)V?#i~5dH6D7S#?Khl__@A9 zJfT_Rk5@Se-=W|Hx*$3+a&jMdQ>&b7xC2>9-L7OxUGHE_2umT6MNRm+w;lA~m^&7H z?MRs-|0z1DB!LhG#hmCh(yr(TrJY}DQPkTY4AJc98n`KiUZpkr%;a_OZ6aUoIJZ6U04eJNwlYuePWurg2eDsbBUf!l`{f7x z?vFku))5?$_nHun^)KpTe??a#%4b=(N%)_)cwdd9zWYnWdMZEHmVa&3_w66CDud_p zQQt#;Wa;NzL}gSF-6&aDB%^kfb~}LK(a%_$lBPZZZ;+5Br0@7&eS3#G-rbbQuJv*T zBmf%{Jmw&%)L9vUwP8cQ74M^s^4b2VItMN8J&@cqAAe1(@qejuwn-HjFW} zBf=*$?*^#l(5&2F;Sf0YHR5WUjLgx7{!Vy$zcZCTs*X1|>m*J$PqxMW0 zbVhtUr~XmadDuCd^Pwb1<+)#(_nDZJ`+f}JmZ0o4^waCmYh-R_2V(MXjC+VOot85;?&admz z+PL}A{wc&0{$vXJkS^IrW5$!?CMN5y{BvFKQMBaXuIoWynK~>5hqWER){ZKjP4#ZJ zi&CRBlVIN~XqI@x#DeWa`S@ik$m|5XE*HL}4Z?Ds82C$=57owl$P)*orOobKT?JMN zOQf@stTrJVf5&F15g8_sW_mr%c!}|TuAs3Q{_`=W6a*-w==I)@a@jc)uTTqsmHmHG z`LQ}*h@t}@yd4C}@A?(95g5{xKD3`6HO4MT4R3C%`hxPd*hQ#mR^cR-dPs1`qIk__ zp-*V=|4^4ozphIYI6nJ7*`t!{QHdUL7VH@GsO$OeQM>C=J3UH|NslHz-#x0h9#!a3 z={N6DxZ?U*CQ|%-_b78c%IHzcG3inIeD`QaO0Hee)bysoD^7EL-P9sBVM(Xl#>HzGgzm~`wX zFGR=cWZvlflw;Dd{Vznv>XhC{{nTU9v7f#W9jnuNBlgD~laBq%3(>JUwKsB)G2Cye z3_J=&)6ZUrjy34LBlvyCq-#HaA-Yze_(t-l9h0sddO^C@p!r7hPdFxBd*Ab~1Yp0v zLG_L7pLk5VcJ~X?wFccc!hg~+>DmWhkghc-zma~-BQH$n3LL;#!1QC%xhH#{e}zFa4=^Th$}#EO zk6)P16}W)0ffpT<&i&+t>0E&i7$Z3Km~`%EFHGm)1QjeCK+r*B1v8FG=LRdkZq8MX z!p>o&QP6&@Y-AMlltPSxb`y>;3fikX$GlO{A?#<4XcWZ9W}_g^W*k)JU=;Ker^vYO zmt;*wL4P%oSe!3Dq0pt-JAQ1Vpj}FWQP7@=!6<0=_~&dCw2NB;e>0lLyn%D*&8Ku8*fjJlX~LGX1_67y%D>(Lu$_r)y}e@_pkZU}+WUjz_z>%R z`CZqD5!R`V@85CXn=M5-qGE+|!qfSCDCe0&t=SRomYaI{ge#z}+5FK1q~dbnz={*J zOb*v5CL&X9IF{Wm2)y$MaMG#v;GbwLJGjQ6jA`x)ZZjw&j4+u;W`wCwMwo;iP{CAu z_ar8IFv4W69+BQ2m^7N+?pNkOZ}&_#BTSMt(c7=dG_stZw+uT>9&?v$_oT5&?#?Mm zKix1BOFN5X=9XCTVK2$uG*~}kE{U(HDWKK6?I^r%e0`TanZ5KBe8$R>(UCVyHu3f| z#T!%a(MO)~I!PeoO6)2Z#2l8(xO)wM`rh($Qjy4OZp+jYYvW66J>Jxl5K~V@1yj!{ zc(NGV)Kg8Dsizr#I#W;ZpU%m|6L)-es=<6k>9o0ZPyNNtQ`o}MeRJ&LnvId`l!57D z{S;I_IRaFq<*30g%+3-w{2aoB`azcMtaDth=|%C}bkUi6j0^^w4`>pVzdOD~w_3Mz zbe=n=tZ>{)6wKylN7u=0UWV=*tdpU8i!*e``W<^#XZ_BJbsIX8z1mOZy0JV4@iLb0 zR2i37Imk6Tx>Pyob)$0;GO@sN-^#mQhx*K@znG?Z}-_IB-%M~<0 zS*WUBzEAS|e4-?GRG{7aS+OGTCbJq~ZO_`B!<0Pc7=k7q$85k>PGfX(Ckn8K37?$| zsXmzS+PE7(x>AU$4jmMpwu<;|~@io!WA!`O@gt)A{Ao{5q_cOk6 zFSQ-6Wuz8Ff2sOAVD$RR```O_9CHDZ`OyJ|9JAT45Jz466t>Pw_A10U8?S9U{A2sP zWEYP*Uyr!3-{yhtVPPKF!A8lTCOV`DIMC!oXM3EbG*zFS98x*$IbAwCIT&j)GM&9p>TB7KX|F1>=y76uyKJ%)@<$80iREXy-3nJHr_fUxtA5?6r{M z*=lhtD)n+h`|Rj;e2YPye4c}2*IG8%JJy=y+fvR!=O0TY(bfZlmq>gg$UaHCE~ z*|+6(cYiVXt)s#-lGSNXsjW3F;T*aP`bW@Bz(J{T1T7)g4-f6&0EZpi_vLK=nTz2B zK^0#_Mj-|PW!76}gesdfA^_0o$l zhNq;luu_iW>~yeB4eRO=&JXA5Wd)S@se^V9=lp0$2<&0CQF*Y~B4YDLZ~scHGIXO> zeu#VHm)$fXk;nl@h}s%wCroC;oz5WyGzSo7EbqS*RCQW1;y^wRh4PZj`)q zrjvpjQg?(E)B<@B%{HZQYJJ(HFXGw|At#zKjuOpcn23pHq?$<|xr9YdI`Nc$l-9VS7PMG_(2 zUPN==!5ZwXLn0dWNJKMqqOKk3z;q{_mCJ`;*U^Jm^;-Uycs1EXEH7RS_cg?;B>MiOh&-~6#HbS%#9E_AGon-E^O+}R!VH~s#qX)OPB`GGx2clU zW=GR>P7&{`lGJ8L(>bR|w%O5D5`hUXuXczK>G3?F7fH{Nur?(FD6UBDInBb;#1R`wATVQotFIKT4mC8!CcX)d^N#N8`j8 z$GebVxOx`xN}^z0grE#?doC5u)wMUVkcC7D@JZz^J9h0PCX;{oP|VA1+5L5ys%mFd z_d9v4SVg|qa=B>>{kr>;j}Ov{f-ue@GQ4xf)SS$ZBs#f+z^Eaff?+36D=rv1~8(k7PU3 zKa%Y%|424GljnE4=FIbtq&>$!lJ;ExNZR>49++sgE#Ps8M_P8CeVvuv08 zN3y-lKa%Y-|47=)dE83c?t$uW@i>gHQ668;(UXx9% zzD+a}dO0zVva7R67uDX{SA81{PjB59^;NIov3jkVmc7|-)qOkfqLkM;ItCNJhT^WH zJJ6siM@p-27k$G=1LIu#Jsu6m<)=WaP`C0)_r`qKLmF1013ZG6%?jR$3u0SHB{QPl zv!lNyx%$r<^hxE!osDuX4eL7e<}9GDmp7Rzi%cB*#?^OZ*Ke-=0WH0OwqI#W8hZ5y z*;}$}mYYN%x^x3kzc0FUZQ1&Gjr+1pn!XK5Es`6$x9H`gN$pC#yv-$mv&iACyVtL_ zoQ3J~OZ&1Y1A3iMKR&(F*Fn`@bqkM2IJ~sh!39AyXg8PA5-CW=8}2_l@(+F1PEeoaRESm`_p`J*W*EC< zUWoje@uGY}b5bkFr|^foTiiMEP}mqLj{CJKrXD#(voLG5XvxSd0R;H9S&OE|Hz)vL z4N>%EO(y`jTZ?0^z_9b-9u{kQf=7<;yH5HO<&7>hQut1`jci~eMYC6eXDOraf1r%x zk6cFc>e{zMh~MnpY&yl!jB$uZ@z)s zajvW!kebNyEiksb-{Shvr3Pc|H|HkYs1GVL9 zRBfdM>dx%lu={spD>BcZuDr-N1p80s;9lxraKjoEDAnpm5%en`m!ijM?WT*v?qy9K zWyrpB;GzqnD60wPPsV5KF;C&RGvKLun+})Geox$48DOeeW6j1M>Yn2mh!QS!72+)D zphA?H2Nbr?j}9wD8GGostg6~}S#4F7vlQKx(`{YHisN|F!M)cieEYm)jlyvY;yV?N zpC8?!a01?}75>55$p(eLkAgtqJ6IMIYQ^$7y}uJrhI*&?&*=TF^P~F|z75ZY3g5CI z{r4ZOXp%B>ZRtW5#JU(Nc6JU43DA*lPI$*b7A+UQ&A+Y;_LSXlg3W42T zg~0BhLST1DA+Wm}(j(ZtS0o77tLbi5YaguvQCU#9g*MDVyc2c@pd7GkQwP#1NZ;>>b%#+%$Fb zN_62G6^i(Ev&mMc;hfdnyv9+&D*X?&-e!TXne9cYL7Xw)X72Uz%AF0`Wz)6WW0m6m zQZz3T|Ih@+te?}UcD=iUySj>ZiNu}N2uamlmyG1c+bS+2rluS0vN}mhUsq~ot{>Dp==uSLpzGZVLD%;x1YOrC1YK7XYOOYMs<&jG$a~s8f}}&PJ!~0EM$yUl z8pSx9oK0y$X)p&iT^7S4F$m<4*EDXcr2_2K;>dVTz~Y;w4g$4>&+>l0T3R5nx(#YJ zcP2>%7+qSs(u)d&hzg48#+NekmWd0!$le8Ufy)zBGaQ8G!s;Ta0bRAs2y5?a#pD{o&{&*j1ODNW z4QHZ%Q~i--YcuF zAlb@yil0{1w~p*K^^LK+U3x3=;5+O#3zvQnTTqO{{P3nC71u9%`k80`51Y`dt^h0G z8|3wKyJj=kX7v?(qESrIYc*L{#f!MGCA(#r?ccFbz9oDlSqB6};HIE!RYRO-*|n7~ zu7;P_Jb!969CLX(8IEd{Ew5fl`#VKsI%$ZtBS?>tp)JJF1O;D4Br3@NR|+Y$8U>q7 zpwOcsXEe7kny6s7yW?PkVt0hy2R{eYj_}7|+fZz-bs9ZQ z(kKQPP(9Y?EX8SHi#BQ?fB9kUaOBBN^my=T2yG|NxGUs3^5xPA-f6eY+n|_3Zs1E> zwxN|l#9*~N*Ott1f+o+}wQKXu|?4f-y(*W<_Ex-T7=OaBUZ!x9;m>! z-bIe78jmF58quvg^>Za(=w@6FDeS$Rp#z&kzS^}CD4k{u$(t50!unJG1JM^G7{+%8=7sR_2UXSUILe;lI z7>Y+~niB7n3x8`3zwpk2ENmZ+$WFuDmIxDNs0afuMR6EJKh%jq^t+;om%ggVOA}o_ zv9~vSrFz&vJ9z0HwHRJ{NFluRph9@*V1*D~dbl@xMT3{VLiwA-<_$^*FC9_{FTGnK zy!5>a;iY#egqN;S2rs=?A-r^0A-wbHP}frS~a> zmu^uAFWp2aedy1dSjo^M2Z{Z+M-AKBain9|?pDaKtyaje-L8;fyG7+ZMe8q0M?{*gmb0VcVpTVcV#XVH;M+u-!{2h4;u|V`tLD zoR>F74vqR8=AxU@TKxLKlOUp5F2%dn*Lr(-(_sFV-tN-;c0&sWY>_BOxJ~UK`hLA@ zL_ebkjVNnpH@E*n4aU8)!4ctRn_u}>k$@svW4aaj34j$bMSIewuKtAMG=RejvaQ?7D;5?)dIImL(oYyJ@&UX`PYb?`V*C;rbof35>AYz5+%>fXRa3+aR zhJe>tf1o$yo@v*2$45&me~nBn@<4obW%eevPn;H| zitq$Qs8UlNiNof=EbHu}rs(43I9!h72ubjL&dM`e$x;X@TmlucY?QH^7?5sJ1L^X{ zi04hHu(*hg#)Y>}$QCtWrLbvI=nfN!435k{ZEkl(Cx|V9FkEn8*u9fo{XZ z?1E9C8&VSh-ByKw?tX=U>>-7Ka2vJ&s_0&}GBubrMs^x@G*`;1urnj*VzqI8)2OlO z940VZ(SeJe*9>;R{Fv$h>^kM539O?m0{f#10sB`J0`?sW0sE5*0sC%+fPFuq!2V;s z1NMD-2kif(cfkH5g@D~oj{x=`=pC@{RS4Mk5Ngjni&5FjrX%aD{AZC?wz87B6}TI{ zoZkTRxeYMS9|h*Mld^N0z%07CdXl4?hpAF@^MINF=H5-bz`sQy;NPSW@ZYZx@NXp? zK`#$Y%+6^7H>Lpr+!zc5aL*eBZac&Rxb092;I>09fcr007vQ$@Hh|j>xd3h*a1pp= zkS}mQMJRCpK<|KiuigRoKjy;~vRev(j@4cP)vY6PTNMrzAx zCV**B%g!TH%R?$t)bgMnpqBe48MWL;@fd+%xL;VwmQ8gi!ARs$e-Jt5j$67$v6ik_ zU4%(=R%3L}Y=HL6CYYaH9QL!ChTBdiO`%l`?^6mH-odGa4DVsRGpuX$&M>c@n!U6! zWG`(VGKOea=@_zm6*6On6f$J%6f$HVQpk|4RmhNSQpk{PQOJ;OC)AMrh29ymZF*-(mAR|A z%noVAFp~z&^IIGn*uevQI9v;r)%xH#T&S5@p=S{tE7n& z0gVOMYY?UguCk>8qO!KrIIOdkkLvsO7~!vETMS*Y(X_ikGL%jERs^$N?Ga$*Z3nDu zI}2IcanyW=mK(CK@3mw#HO+kW!vJZgY@#tuk`*&M3s^A|T&;sZY~s(RTC=_d_mDHC zk!ItAZ8+WQZFVvcoqUT`z$IO9aFmbkUH4$w&17aZmPM6c3fuL0xNl&(6!z@Wmw(ur zCRiNT4|L6~8yq`a#7tO*&35rol%@H9{&EMK;q}v-;UrnopOrS(xXE@ZH|F>|VLdYc zWXv3~Zo{3*B|_wk{n^QI>g>s*$l*@rgdATyiX83~YRGZdQRHxENkWc;zZk3M&HZqD zpdrVPk0Qs8$hJ*Gmc73&i-Bv<&JM+<%$IguisUR5vD5V|9Ln({L_23k#~Hj6q%Zde zmIRE32DAEb{d`LsHeGa>@>Cw z8_HQfRvK*rL0A{*c00%^<};$UESPnXH1xNfrzn@{G1q+ki&6T3t$ZPegk$O&WKyaSve0%|FOb ziysL_r__@swsNN{^CMlg$xYHxtz~}1p=dMdo*!`%)U3MaM>-_T6(IwapQ&r^T1N_r zswpUf?Kl^cX|-=<=>RMDH*rm)$d^il-uM#j`X$?5=(G|6R-we$PvQ}0TUw05QGBd3 zr6#yEqI{M+oF!E_G}ZW?rANxL#%1xxc+~~<mQ~qnk}^;fBqy4u>Z}o1kf}} z@eLaR8t^MFpAu=PZ43t20F*l0i8;9p0GJecR9?&6hQcS|$Zq3;ZC|t_>41_W7w5T? zyXUx*yK}2t=UJ63+V0U*h~?4L=XUleRc>M9LRZ?tm2G|>ANx9;u2dr%Cz5nLs2x7V z1uLMA-CL@(CjBX07vtu#Q)i&Ue!G&v zC)>S(p-^a)vnJPOa4UR)vhw zUoMZc{=zv6CON*Nk}IlQo~Dk<$Y7wBhK^Dk090r5Om+f{5_k2EFv$V$ZLF)%)ub_F z((>Elv@qu}a`>clCiQ0o4ZB$~mN++bH3C zu7pX%o-?upH)ImMqI_qsQ#m6PGy&jGKK~WyVvV)SIM`!yNNDkQKVa!Qo6{o^ zOK9^Ka(dAvWO?8=%Mva(^Du7Cg5V;i6taBF)e`Oq8#7C@^N@YI4oY@y-xL=J!@zPk z6!{U?(Qp#f7a2>EKF%60Xt_V8RFm`*iui@IyFa11jur_vA<5TWk`tSglqA=LB;Ro4 zVFb#hTAGI>fBZRv*oab+BI15w%p@i?`+;kQ=#N~(#y2;N?ia?*iO!)B-*q+kqXPk= z%{iJ~oBYh>7%|YzIh-II>iCs|#k1Dogzb>yj-W|LQjzpSgRxPHsfRTf(^QfM zOcsKMFk;2UEV2%ppy_gf>I`?I&CLeeYI8{kdOTH*%D+g`w73>4Ts=!uVG$*fK9d>q z-PQ|nn%$ub!fGilBF?@B)5lh47%4L=k;9;7a)jM3G<_W)@r3~m9hme5($U?#b9b^# ziYm`o$6(~f)1gyvD=y`vJvHrMJtV+z^(?;+>ByBfuo_p8Bbe@p&2&$6-Y^{5b{hZ_ z)8=t|TxDW-V5a$F7<=pVb!uG#;I+hZy9;b3ygx=>!J<@eew#Je-wdeS6s&^iL8+c$}INH*Hrn;OKFd!-a zI58J1O)GNb6WpRMXwahZi12LEgVIaw0~(Ihj_JQueE7uRE-^+kfk

8%Q*c0JhPuA#j_|T311pes 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 +#include +#include + +#ifdef _MSC_VER +#include +typedef SSIZE_T ssize_t; +#else +#include +#endif + +//------------------------------------------------------------------- +// Macros + +#define GHOSTTY_SUCCESS 0 + +// Symbol visibility for shared library builds. On Windows, functions +// are exported from the DLL when building and imported when consuming. +// On other platforms with GCC/Clang, functions are marked with default +// visibility so they remain accessible when the library is built with +// -fvisibility=hidden. For static library builds, define GHOSTTY_STATIC +// before including this header to make this a no-op. +#ifndef GHOSTTY_API +#if defined(GHOSTTY_STATIC) + #define GHOSTTY_API +#elif defined(_WIN32) || defined(_WIN64) + #ifdef GHOSTTY_BUILD_SHARED + #define GHOSTTY_API __declspec(dllexport) + #else + #define GHOSTTY_API __declspec(dllimport) + #endif +#elif defined(__GNUC__) && __GNUC__ >= 4 + #define GHOSTTY_API __attribute__((visibility("default"))) +#else + #define GHOSTTY_API +#endif +#endif + +//------------------------------------------------------------------- +// Types + +// Opaque types +typedef void* ghostty_app_t; +typedef void* ghostty_config_t; +typedef void* ghostty_surface_t; +typedef void* ghostty_inspector_t; + +// All the types below are fully defined and must be kept in sync with +// their Zig counterparts. Any changes to these types MUST have an associated +// Zig change. +typedef enum { + GHOSTTY_PLATFORM_INVALID, + GHOSTTY_PLATFORM_MACOS, + GHOSTTY_PLATFORM_IOS, +} ghostty_platform_e; + +typedef enum { + GHOSTTY_CLIPBOARD_STANDARD, + GHOSTTY_CLIPBOARD_SELECTION, +} ghostty_clipboard_e; + +typedef struct { + const char *mime; + const char *data; +} ghostty_clipboard_content_s; + +typedef enum { + GHOSTTY_CLIPBOARD_REQUEST_PASTE, + GHOSTTY_CLIPBOARD_REQUEST_OSC_52_READ, + GHOSTTY_CLIPBOARD_REQUEST_OSC_52_WRITE, +} ghostty_clipboard_request_e; + +typedef enum { + GHOSTTY_MOUSE_RELEASE, + GHOSTTY_MOUSE_PRESS, +} ghostty_input_mouse_state_e; + +typedef enum { + GHOSTTY_MOUSE_UNKNOWN, + GHOSTTY_MOUSE_LEFT, + GHOSTTY_MOUSE_RIGHT, + GHOSTTY_MOUSE_MIDDLE, + GHOSTTY_MOUSE_FOUR, + GHOSTTY_MOUSE_FIVE, + GHOSTTY_MOUSE_SIX, + GHOSTTY_MOUSE_SEVEN, + GHOSTTY_MOUSE_EIGHT, + GHOSTTY_MOUSE_NINE, + GHOSTTY_MOUSE_TEN, + GHOSTTY_MOUSE_ELEVEN, +} ghostty_input_mouse_button_e; + +typedef enum { + GHOSTTY_MOUSE_MOMENTUM_NONE, + GHOSTTY_MOUSE_MOMENTUM_BEGAN, + GHOSTTY_MOUSE_MOMENTUM_STATIONARY, + GHOSTTY_MOUSE_MOMENTUM_CHANGED, + GHOSTTY_MOUSE_MOMENTUM_ENDED, + GHOSTTY_MOUSE_MOMENTUM_CANCELLED, + GHOSTTY_MOUSE_MOMENTUM_MAY_BEGIN, +} ghostty_input_mouse_momentum_e; + +typedef enum { + GHOSTTY_COLOR_SCHEME_LIGHT = 0, + GHOSTTY_COLOR_SCHEME_DARK = 1, +} ghostty_color_scheme_e; + +// This is a packed struct (see src/input/mouse.zig) but the C standard +// afaik doesn't let us reliably define packed structs so we build it up +// from scratch. +typedef int ghostty_input_scroll_mods_t; + +typedef enum { + GHOSTTY_MODS_NONE = 0, + GHOSTTY_MODS_SHIFT = 1 << 0, + GHOSTTY_MODS_CTRL = 1 << 1, + GHOSTTY_MODS_ALT = 1 << 2, + GHOSTTY_MODS_SUPER = 1 << 3, + GHOSTTY_MODS_CAPS = 1 << 4, + GHOSTTY_MODS_NUM = 1 << 5, + GHOSTTY_MODS_SHIFT_RIGHT = 1 << 6, + GHOSTTY_MODS_CTRL_RIGHT = 1 << 7, + GHOSTTY_MODS_ALT_RIGHT = 1 << 8, + GHOSTTY_MODS_SUPER_RIGHT = 1 << 9, +} ghostty_input_mods_e; + +typedef enum { + GHOSTTY_BINDING_FLAGS_CONSUMED = 1 << 0, + GHOSTTY_BINDING_FLAGS_ALL = 1 << 1, + GHOSTTY_BINDING_FLAGS_GLOBAL = 1 << 2, + GHOSTTY_BINDING_FLAGS_PERFORMABLE = 1 << 3, +} ghostty_binding_flags_e; + +typedef enum { + GHOSTTY_ACTION_RELEASE, + GHOSTTY_ACTION_PRESS, + GHOSTTY_ACTION_REPEAT, +} ghostty_input_action_e; + +// Based on: https://www.w3.org/TR/uievents-code/ +typedef enum { + GHOSTTY_KEY_UNIDENTIFIED, + + // "Writing System Keys" § 3.1.1 + GHOSTTY_KEY_BACKQUOTE, + GHOSTTY_KEY_BACKSLASH, + GHOSTTY_KEY_BRACKET_LEFT, + GHOSTTY_KEY_BRACKET_RIGHT, + GHOSTTY_KEY_COMMA, + GHOSTTY_KEY_DIGIT_0, + GHOSTTY_KEY_DIGIT_1, + GHOSTTY_KEY_DIGIT_2, + GHOSTTY_KEY_DIGIT_3, + GHOSTTY_KEY_DIGIT_4, + GHOSTTY_KEY_DIGIT_5, + GHOSTTY_KEY_DIGIT_6, + GHOSTTY_KEY_DIGIT_7, + GHOSTTY_KEY_DIGIT_8, + GHOSTTY_KEY_DIGIT_9, + GHOSTTY_KEY_EQUAL, + GHOSTTY_KEY_INTL_BACKSLASH, + GHOSTTY_KEY_INTL_RO, + GHOSTTY_KEY_INTL_YEN, + GHOSTTY_KEY_A, + GHOSTTY_KEY_B, + GHOSTTY_KEY_C, + GHOSTTY_KEY_D, + GHOSTTY_KEY_E, + GHOSTTY_KEY_F, + GHOSTTY_KEY_G, + GHOSTTY_KEY_H, + GHOSTTY_KEY_I, + GHOSTTY_KEY_J, + GHOSTTY_KEY_K, + GHOSTTY_KEY_L, + GHOSTTY_KEY_M, + GHOSTTY_KEY_N, + GHOSTTY_KEY_O, + GHOSTTY_KEY_P, + GHOSTTY_KEY_Q, + GHOSTTY_KEY_R, + GHOSTTY_KEY_S, + GHOSTTY_KEY_T, + GHOSTTY_KEY_U, + GHOSTTY_KEY_V, + GHOSTTY_KEY_W, + GHOSTTY_KEY_X, + GHOSTTY_KEY_Y, + GHOSTTY_KEY_Z, + GHOSTTY_KEY_MINUS, + GHOSTTY_KEY_PERIOD, + GHOSTTY_KEY_QUOTE, + GHOSTTY_KEY_SEMICOLON, + GHOSTTY_KEY_SLASH, + + // "Functional Keys" § 3.1.2 + GHOSTTY_KEY_ALT_LEFT, + GHOSTTY_KEY_ALT_RIGHT, + GHOSTTY_KEY_BACKSPACE, + GHOSTTY_KEY_CAPS_LOCK, + GHOSTTY_KEY_CONTEXT_MENU, + GHOSTTY_KEY_CONTROL_LEFT, + GHOSTTY_KEY_CONTROL_RIGHT, + GHOSTTY_KEY_ENTER, + GHOSTTY_KEY_META_LEFT, + GHOSTTY_KEY_META_RIGHT, + GHOSTTY_KEY_SHIFT_LEFT, + GHOSTTY_KEY_SHIFT_RIGHT, + GHOSTTY_KEY_SPACE, + GHOSTTY_KEY_TAB, + GHOSTTY_KEY_CONVERT, + GHOSTTY_KEY_KANA_MODE, + GHOSTTY_KEY_NON_CONVERT, + + // "Control Pad Section" § 3.2 + GHOSTTY_KEY_DELETE, + GHOSTTY_KEY_END, + GHOSTTY_KEY_HELP, + GHOSTTY_KEY_HOME, + GHOSTTY_KEY_INSERT, + GHOSTTY_KEY_PAGE_DOWN, + GHOSTTY_KEY_PAGE_UP, + + // "Arrow Pad Section" § 3.3 + GHOSTTY_KEY_ARROW_DOWN, + GHOSTTY_KEY_ARROW_LEFT, + GHOSTTY_KEY_ARROW_RIGHT, + GHOSTTY_KEY_ARROW_UP, + + // "Numpad Section" § 3.4 + GHOSTTY_KEY_NUM_LOCK, + GHOSTTY_KEY_NUMPAD_0, + GHOSTTY_KEY_NUMPAD_1, + GHOSTTY_KEY_NUMPAD_2, + GHOSTTY_KEY_NUMPAD_3, + GHOSTTY_KEY_NUMPAD_4, + GHOSTTY_KEY_NUMPAD_5, + GHOSTTY_KEY_NUMPAD_6, + GHOSTTY_KEY_NUMPAD_7, + GHOSTTY_KEY_NUMPAD_8, + GHOSTTY_KEY_NUMPAD_9, + GHOSTTY_KEY_NUMPAD_ADD, + GHOSTTY_KEY_NUMPAD_BACKSPACE, + GHOSTTY_KEY_NUMPAD_CLEAR, + GHOSTTY_KEY_NUMPAD_CLEAR_ENTRY, + GHOSTTY_KEY_NUMPAD_COMMA, + GHOSTTY_KEY_NUMPAD_DECIMAL, + GHOSTTY_KEY_NUMPAD_DIVIDE, + GHOSTTY_KEY_NUMPAD_ENTER, + GHOSTTY_KEY_NUMPAD_EQUAL, + GHOSTTY_KEY_NUMPAD_MEMORY_ADD, + GHOSTTY_KEY_NUMPAD_MEMORY_CLEAR, + GHOSTTY_KEY_NUMPAD_MEMORY_RECALL, + GHOSTTY_KEY_NUMPAD_MEMORY_STORE, + GHOSTTY_KEY_NUMPAD_MEMORY_SUBTRACT, + GHOSTTY_KEY_NUMPAD_MULTIPLY, + GHOSTTY_KEY_NUMPAD_PAREN_LEFT, + GHOSTTY_KEY_NUMPAD_PAREN_RIGHT, + GHOSTTY_KEY_NUMPAD_SUBTRACT, + GHOSTTY_KEY_NUMPAD_SEPARATOR, + GHOSTTY_KEY_NUMPAD_UP, + GHOSTTY_KEY_NUMPAD_DOWN, + GHOSTTY_KEY_NUMPAD_RIGHT, + GHOSTTY_KEY_NUMPAD_LEFT, + GHOSTTY_KEY_NUMPAD_BEGIN, + GHOSTTY_KEY_NUMPAD_HOME, + GHOSTTY_KEY_NUMPAD_END, + GHOSTTY_KEY_NUMPAD_INSERT, + GHOSTTY_KEY_NUMPAD_DELETE, + GHOSTTY_KEY_NUMPAD_PAGE_UP, + GHOSTTY_KEY_NUMPAD_PAGE_DOWN, + + // "Function Section" § 3.5 + GHOSTTY_KEY_ESCAPE, + GHOSTTY_KEY_F1, + GHOSTTY_KEY_F2, + GHOSTTY_KEY_F3, + GHOSTTY_KEY_F4, + GHOSTTY_KEY_F5, + GHOSTTY_KEY_F6, + GHOSTTY_KEY_F7, + GHOSTTY_KEY_F8, + GHOSTTY_KEY_F9, + GHOSTTY_KEY_F10, + GHOSTTY_KEY_F11, + GHOSTTY_KEY_F12, + GHOSTTY_KEY_F13, + GHOSTTY_KEY_F14, + GHOSTTY_KEY_F15, + GHOSTTY_KEY_F16, + GHOSTTY_KEY_F17, + GHOSTTY_KEY_F18, + GHOSTTY_KEY_F19, + GHOSTTY_KEY_F20, + GHOSTTY_KEY_F21, + GHOSTTY_KEY_F22, + GHOSTTY_KEY_F23, + GHOSTTY_KEY_F24, + GHOSTTY_KEY_F25, + GHOSTTY_KEY_FN, + GHOSTTY_KEY_FN_LOCK, + GHOSTTY_KEY_PRINT_SCREEN, + GHOSTTY_KEY_SCROLL_LOCK, + GHOSTTY_KEY_PAUSE, + + // "Media Keys" § 3.6 + GHOSTTY_KEY_BROWSER_BACK, + GHOSTTY_KEY_BROWSER_FAVORITES, + GHOSTTY_KEY_BROWSER_FORWARD, + GHOSTTY_KEY_BROWSER_HOME, + GHOSTTY_KEY_BROWSER_REFRESH, + GHOSTTY_KEY_BROWSER_SEARCH, + GHOSTTY_KEY_BROWSER_STOP, + GHOSTTY_KEY_EJECT, + GHOSTTY_KEY_LAUNCH_APP_1, + GHOSTTY_KEY_LAUNCH_APP_2, + GHOSTTY_KEY_LAUNCH_MAIL, + GHOSTTY_KEY_MEDIA_PLAY_PAUSE, + GHOSTTY_KEY_MEDIA_SELECT, + GHOSTTY_KEY_MEDIA_STOP, + GHOSTTY_KEY_MEDIA_TRACK_NEXT, + GHOSTTY_KEY_MEDIA_TRACK_PREVIOUS, + GHOSTTY_KEY_POWER, + GHOSTTY_KEY_SLEEP, + GHOSTTY_KEY_AUDIO_VOLUME_DOWN, + GHOSTTY_KEY_AUDIO_VOLUME_MUTE, + GHOSTTY_KEY_AUDIO_VOLUME_UP, + GHOSTTY_KEY_WAKE_UP, + + // "Legacy, Non-standard, and Special Keys" § 3.7 + GHOSTTY_KEY_COPY, + GHOSTTY_KEY_CUT, + GHOSTTY_KEY_PASTE, +} ghostty_input_key_e; + +typedef struct { + ghostty_input_action_e action; + ghostty_input_mods_e mods; + ghostty_input_mods_e consumed_mods; + uint32_t keycode; + const char* text; + uint32_t unshifted_codepoint; + bool composing; +} ghostty_input_key_s; + +typedef enum { + GHOSTTY_TRIGGER_PHYSICAL, + GHOSTTY_TRIGGER_UNICODE, + GHOSTTY_TRIGGER_CATCH_ALL, +} ghostty_input_trigger_tag_e; + +typedef union { + ghostty_input_key_e physical; + uint32_t unicode; + // catch_all has no payload +} ghostty_input_trigger_key_u; + +typedef struct { + ghostty_input_trigger_tag_e tag; + ghostty_input_trigger_key_u key; + ghostty_input_mods_e mods; +} ghostty_input_trigger_s; + +typedef struct { + const char* action_key; + const char* action; + const char* title; + const char* description; +} ghostty_command_s; + +typedef enum { + GHOSTTY_BUILD_MODE_DEBUG, + GHOSTTY_BUILD_MODE_RELEASE_SAFE, + GHOSTTY_BUILD_MODE_RELEASE_FAST, + GHOSTTY_BUILD_MODE_RELEASE_SMALL, +} ghostty_build_mode_e; + +typedef struct { + ghostty_build_mode_e build_mode; + const char* version; + uintptr_t version_len; +} ghostty_info_s; + +typedef struct { + const char* message; +} ghostty_diagnostic_s; + +typedef struct { + const char* ptr; + uintptr_t len; + bool sentinel; +} ghostty_string_s; + +typedef struct { + double tl_px_x; + double tl_px_y; + uint32_t offset_start; + uint32_t offset_len; + const char* text; + uintptr_t text_len; +} ghostty_text_s; + +typedef enum { + GHOSTTY_POINT_ACTIVE, + GHOSTTY_POINT_VIEWPORT, + GHOSTTY_POINT_SCREEN, + GHOSTTY_POINT_SURFACE, +} ghostty_point_tag_e; + +typedef enum { + GHOSTTY_POINT_COORD_EXACT, + GHOSTTY_POINT_COORD_TOP_LEFT, + GHOSTTY_POINT_COORD_BOTTOM_RIGHT, +} ghostty_point_coord_e; + +typedef struct { + ghostty_point_tag_e tag; + ghostty_point_coord_e coord; + uint32_t x; + uint32_t y; +} ghostty_point_s; + +typedef struct { + ghostty_point_s top_left; + ghostty_point_s bottom_right; + bool rectangle; +} ghostty_selection_s; + +typedef struct { + const char* key; + const char* value; +} ghostty_env_var_s; + +typedef struct { + void* nsview; +} ghostty_platform_macos_s; + +typedef struct { + void* uiview; +} ghostty_platform_ios_s; + +typedef union { + ghostty_platform_macos_s macos; + ghostty_platform_ios_s ios; +} ghostty_platform_u; + +typedef enum { + GHOSTTY_SURFACE_CONTEXT_WINDOW = 0, + GHOSTTY_SURFACE_CONTEXT_TAB = 1, + GHOSTTY_SURFACE_CONTEXT_SPLIT = 2, +} ghostty_surface_context_e; + +typedef struct { + ghostty_platform_e platform_tag; + ghostty_platform_u platform; + void* userdata; + double scale_factor; + float font_size; + const char* working_directory; + const char* command; + ghostty_env_var_s* env_vars; + size_t env_var_count; + const char* initial_input; + bool wait_after_command; + ghostty_surface_context_e context; +} ghostty_surface_config_s; + +typedef struct { + uint16_t columns; + uint16_t rows; + uint32_t width_px; + uint32_t height_px; + uint32_t cell_width_px; + uint32_t cell_height_px; +} ghostty_surface_size_s; + +// Config types + +// config.Path +typedef struct { + const char* path; + bool optional; +} ghostty_config_path_s; + +// config.Color +typedef struct { + uint8_t r; + uint8_t g; + uint8_t b; +} ghostty_config_color_s; + +// config.ColorList +typedef struct { + const ghostty_config_color_s* colors; + size_t len; +} ghostty_config_color_list_s; + +// config.RepeatableCommand +typedef struct { + const ghostty_command_s* commands; + size_t len; +} ghostty_config_command_list_s; + +// config.Palette +typedef struct { + ghostty_config_color_s colors[256]; +} ghostty_config_palette_s; + +// config.QuickTerminalSize +typedef enum { + GHOSTTY_QUICK_TERMINAL_SIZE_NONE, + GHOSTTY_QUICK_TERMINAL_SIZE_PERCENTAGE, + GHOSTTY_QUICK_TERMINAL_SIZE_PIXELS, +} ghostty_quick_terminal_size_tag_e; + +typedef union { + float percentage; + uint32_t pixels; +} ghostty_quick_terminal_size_value_u; + +typedef struct { + ghostty_quick_terminal_size_tag_e tag; + ghostty_quick_terminal_size_value_u value; +} ghostty_quick_terminal_size_s; + +typedef struct { + ghostty_quick_terminal_size_s primary; + ghostty_quick_terminal_size_s secondary; +} ghostty_config_quick_terminal_size_s; + +// config.Fullscreen +typedef enum { + GHOSTTY_CONFIG_FULLSCREEN_FALSE, + GHOSTTY_CONFIG_FULLSCREEN_TRUE, + GHOSTTY_CONFIG_FULLSCREEN_NON_NATIVE, + GHOSTTY_CONFIG_FULLSCREEN_NON_NATIVE_VISIBLE_MENU, + GHOSTTY_CONFIG_FULLSCREEN_NON_NATIVE_PADDED_NOTCH, +} ghostty_config_fullscreen_e; + +// apprt.Target.Key +typedef enum { + GHOSTTY_TARGET_APP, + GHOSTTY_TARGET_SURFACE, +} ghostty_target_tag_e; + +typedef union { + ghostty_surface_t surface; +} ghostty_target_u; + +typedef struct { + ghostty_target_tag_e tag; + ghostty_target_u target; +} ghostty_target_s; + +// apprt.action.SplitDirection +typedef enum { + GHOSTTY_SPLIT_DIRECTION_RIGHT, + GHOSTTY_SPLIT_DIRECTION_DOWN, + GHOSTTY_SPLIT_DIRECTION_LEFT, + GHOSTTY_SPLIT_DIRECTION_UP, +} ghostty_action_split_direction_e; + +// apprt.action.GotoSplit +typedef enum { + GHOSTTY_GOTO_SPLIT_PREVIOUS, + GHOSTTY_GOTO_SPLIT_NEXT, + GHOSTTY_GOTO_SPLIT_UP, + GHOSTTY_GOTO_SPLIT_LEFT, + GHOSTTY_GOTO_SPLIT_DOWN, + GHOSTTY_GOTO_SPLIT_RIGHT, +} ghostty_action_goto_split_e; + +// apprt.action.GotoWindow +typedef enum { + GHOSTTY_GOTO_WINDOW_PREVIOUS, + GHOSTTY_GOTO_WINDOW_NEXT, +} ghostty_action_goto_window_e; + +// apprt.action.ResizeSplit.Direction +typedef enum { + GHOSTTY_RESIZE_SPLIT_UP, + GHOSTTY_RESIZE_SPLIT_DOWN, + GHOSTTY_RESIZE_SPLIT_LEFT, + GHOSTTY_RESIZE_SPLIT_RIGHT, +} ghostty_action_resize_split_direction_e; + +// apprt.action.ResizeSplit +typedef struct { + uint16_t amount; + ghostty_action_resize_split_direction_e direction; +} ghostty_action_resize_split_s; + +// apprt.action.MoveTab +typedef struct { + ssize_t amount; +} ghostty_action_move_tab_s; + +// apprt.action.GotoTab +typedef enum { + GHOSTTY_GOTO_TAB_PREVIOUS = -1, + GHOSTTY_GOTO_TAB_NEXT = -2, + GHOSTTY_GOTO_TAB_LAST = -3, +} ghostty_action_goto_tab_e; + +// apprt.action.Fullscreen +typedef enum { + GHOSTTY_FULLSCREEN_NATIVE, + GHOSTTY_FULLSCREEN_MACOS_NON_NATIVE, + GHOSTTY_FULLSCREEN_MACOS_NON_NATIVE_VISIBLE_MENU, + GHOSTTY_FULLSCREEN_MACOS_NON_NATIVE_PADDED_NOTCH, +} ghostty_action_fullscreen_e; + +// apprt.action.FloatWindow +typedef enum { + GHOSTTY_FLOAT_WINDOW_ON, + GHOSTTY_FLOAT_WINDOW_OFF, + GHOSTTY_FLOAT_WINDOW_TOGGLE, +} ghostty_action_float_window_e; + +// apprt.action.SecureInput +typedef enum { + GHOSTTY_SECURE_INPUT_ON, + GHOSTTY_SECURE_INPUT_OFF, + GHOSTTY_SECURE_INPUT_TOGGLE, +} ghostty_action_secure_input_e; + +// apprt.action.Inspector +typedef enum { + GHOSTTY_INSPECTOR_TOGGLE, + GHOSTTY_INSPECTOR_SHOW, + GHOSTTY_INSPECTOR_HIDE, +} ghostty_action_inspector_e; + +// apprt.action.QuitTimer +typedef enum { + GHOSTTY_QUIT_TIMER_START, + GHOSTTY_QUIT_TIMER_STOP, +} ghostty_action_quit_timer_e; + +// apprt.action.Readonly +typedef enum { + GHOSTTY_READONLY_OFF, + GHOSTTY_READONLY_ON, +} ghostty_action_readonly_e; + +// apprt.action.DesktopNotification.C +typedef struct { + const char* title; + const char* body; +} ghostty_action_desktop_notification_s; + +// apprt.action.SetTitle.C +typedef struct { + const char* title; +} ghostty_action_set_title_s; + +// apprt.action.PromptTitle +typedef enum { + GHOSTTY_PROMPT_TITLE_SURFACE, + GHOSTTY_PROMPT_TITLE_TAB, +} ghostty_action_prompt_title_e; + +// apprt.action.Pwd.C +typedef struct { + const char* pwd; +} ghostty_action_pwd_s; + +// terminal.MouseShape +typedef enum { + GHOSTTY_MOUSE_SHAPE_DEFAULT, + GHOSTTY_MOUSE_SHAPE_CONTEXT_MENU, + GHOSTTY_MOUSE_SHAPE_HELP, + GHOSTTY_MOUSE_SHAPE_POINTER, + GHOSTTY_MOUSE_SHAPE_PROGRESS, + GHOSTTY_MOUSE_SHAPE_WAIT, + GHOSTTY_MOUSE_SHAPE_CELL, + GHOSTTY_MOUSE_SHAPE_CROSSHAIR, + GHOSTTY_MOUSE_SHAPE_TEXT, + GHOSTTY_MOUSE_SHAPE_VERTICAL_TEXT, + GHOSTTY_MOUSE_SHAPE_ALIAS, + GHOSTTY_MOUSE_SHAPE_COPY, + GHOSTTY_MOUSE_SHAPE_MOVE, + GHOSTTY_MOUSE_SHAPE_NO_DROP, + GHOSTTY_MOUSE_SHAPE_NOT_ALLOWED, + GHOSTTY_MOUSE_SHAPE_GRAB, + GHOSTTY_MOUSE_SHAPE_GRABBING, + GHOSTTY_MOUSE_SHAPE_ALL_SCROLL, + GHOSTTY_MOUSE_SHAPE_COL_RESIZE, + GHOSTTY_MOUSE_SHAPE_ROW_RESIZE, + GHOSTTY_MOUSE_SHAPE_N_RESIZE, + GHOSTTY_MOUSE_SHAPE_E_RESIZE, + GHOSTTY_MOUSE_SHAPE_S_RESIZE, + GHOSTTY_MOUSE_SHAPE_W_RESIZE, + GHOSTTY_MOUSE_SHAPE_NE_RESIZE, + GHOSTTY_MOUSE_SHAPE_NW_RESIZE, + GHOSTTY_MOUSE_SHAPE_SE_RESIZE, + GHOSTTY_MOUSE_SHAPE_SW_RESIZE, + GHOSTTY_MOUSE_SHAPE_EW_RESIZE, + GHOSTTY_MOUSE_SHAPE_NS_RESIZE, + GHOSTTY_MOUSE_SHAPE_NESW_RESIZE, + GHOSTTY_MOUSE_SHAPE_NWSE_RESIZE, + GHOSTTY_MOUSE_SHAPE_ZOOM_IN, + GHOSTTY_MOUSE_SHAPE_ZOOM_OUT, +} ghostty_action_mouse_shape_e; + +// apprt.action.MouseVisibility +typedef enum { + GHOSTTY_MOUSE_VISIBLE, + GHOSTTY_MOUSE_HIDDEN, +} ghostty_action_mouse_visibility_e; + +// apprt.action.MouseOverLink +typedef struct { + const char* url; + size_t len; +} ghostty_action_mouse_over_link_s; + +// apprt.action.SizeLimit +typedef struct { + uint32_t min_width; + uint32_t min_height; + uint32_t max_width; + uint32_t max_height; +} ghostty_action_size_limit_s; + +// apprt.action.InitialSize +typedef struct { + uint32_t width; + uint32_t height; +} ghostty_action_initial_size_s; + +// apprt.action.CellSize +typedef struct { + uint32_t width; + uint32_t height; +} ghostty_action_cell_size_s; + +// renderer.Health +typedef enum { + GHOSTTY_RENDERER_HEALTH_HEALTHY, + GHOSTTY_RENDERER_HEALTH_UNHEALTHY, +} ghostty_action_renderer_health_e; + +// apprt.action.KeySequence +typedef struct { + bool active; + ghostty_input_trigger_s trigger; +} ghostty_action_key_sequence_s; + +// apprt.action.KeyTable.Tag +typedef enum { + GHOSTTY_KEY_TABLE_ACTIVATE, + GHOSTTY_KEY_TABLE_DEACTIVATE, + GHOSTTY_KEY_TABLE_DEACTIVATE_ALL, +} ghostty_action_key_table_tag_e; + +// apprt.action.KeyTable.CValue +typedef union { + struct { + const char *name; + size_t len; + } activate; +} ghostty_action_key_table_u; + +// apprt.action.KeyTable.C +typedef struct { + ghostty_action_key_table_tag_e tag; + ghostty_action_key_table_u value; +} ghostty_action_key_table_s; + +// apprt.action.ColorKind +typedef enum { + GHOSTTY_ACTION_COLOR_KIND_FOREGROUND = -1, + GHOSTTY_ACTION_COLOR_KIND_BACKGROUND = -2, + GHOSTTY_ACTION_COLOR_KIND_CURSOR = -3, +} ghostty_action_color_kind_e; + +// apprt.action.ColorChange +typedef struct { + ghostty_action_color_kind_e kind; + uint8_t r; + uint8_t g; + uint8_t b; +} ghostty_action_color_change_s; + +// apprt.action.ConfigChange +typedef struct { + ghostty_config_t config; +} ghostty_action_config_change_s; + +// apprt.action.ReloadConfig +typedef struct { + bool soft; +} ghostty_action_reload_config_s; + +// apprt.action.OpenUrlKind +typedef enum { + GHOSTTY_ACTION_OPEN_URL_KIND_UNKNOWN, + GHOSTTY_ACTION_OPEN_URL_KIND_TEXT, + GHOSTTY_ACTION_OPEN_URL_KIND_HTML, +} ghostty_action_open_url_kind_e; + +// apprt.action.OpenUrl.C +typedef struct { + ghostty_action_open_url_kind_e kind; + const char* url; + uintptr_t len; +} ghostty_action_open_url_s; + +// apprt.action.CloseTabMode +typedef enum { + GHOSTTY_ACTION_CLOSE_TAB_MODE_THIS, + GHOSTTY_ACTION_CLOSE_TAB_MODE_OTHER, + GHOSTTY_ACTION_CLOSE_TAB_MODE_RIGHT, +} ghostty_action_close_tab_mode_e; + +// apprt.surface.Message.ChildExited +typedef struct { + uint32_t exit_code; + uint64_t timetime_ms; +} ghostty_surface_message_childexited_s; + +// terminal.osc.Command.ProgressReport.State +typedef enum { + GHOSTTY_PROGRESS_STATE_REMOVE, + GHOSTTY_PROGRESS_STATE_SET, + GHOSTTY_PROGRESS_STATE_ERROR, + GHOSTTY_PROGRESS_STATE_INDETERMINATE, + GHOSTTY_PROGRESS_STATE_PAUSE, +} ghostty_action_progress_report_state_e; + +// terminal.osc.Command.ProgressReport.C +typedef struct { + ghostty_action_progress_report_state_e state; + // -1 if no progress was reported, otherwise 0-100 indicating percent + // completeness. + int8_t progress; +} ghostty_action_progress_report_s; + +// apprt.action.CommandFinished.C +typedef struct { + // -1 if no exit code was reported, otherwise 0-255 + int16_t exit_code; + // number of nanoseconds that command was running for + uint64_t duration; +} ghostty_action_command_finished_s; + +// apprt.action.StartSearch.C +typedef struct { + const char* needle; +} ghostty_action_start_search_s; + +// apprt.action.SearchTotal +typedef struct { + ssize_t total; +} ghostty_action_search_total_s; + +// apprt.action.SearchSelected +typedef struct { + ssize_t selected; +} ghostty_action_search_selected_s; + +// terminal.Scrollbar +typedef struct { + uint64_t total; + uint64_t offset; + uint64_t len; +} ghostty_action_scrollbar_s; + +// apprt.Action.Key +typedef enum { + GHOSTTY_ACTION_QUIT, + GHOSTTY_ACTION_NEW_WINDOW, + GHOSTTY_ACTION_NEW_TAB, + GHOSTTY_ACTION_CLOSE_TAB, + GHOSTTY_ACTION_NEW_SPLIT, + GHOSTTY_ACTION_CLOSE_ALL_WINDOWS, + GHOSTTY_ACTION_TOGGLE_MAXIMIZE, + GHOSTTY_ACTION_TOGGLE_FULLSCREEN, + GHOSTTY_ACTION_TOGGLE_TAB_OVERVIEW, + GHOSTTY_ACTION_TOGGLE_WINDOW_DECORATIONS, + GHOSTTY_ACTION_TOGGLE_QUICK_TERMINAL, + GHOSTTY_ACTION_TOGGLE_COMMAND_PALETTE, + GHOSTTY_ACTION_TOGGLE_VISIBILITY, + GHOSTTY_ACTION_TOGGLE_BACKGROUND_OPACITY, + GHOSTTY_ACTION_MOVE_TAB, + GHOSTTY_ACTION_GOTO_TAB, + GHOSTTY_ACTION_GOTO_SPLIT, + GHOSTTY_ACTION_GOTO_WINDOW, + GHOSTTY_ACTION_RESIZE_SPLIT, + GHOSTTY_ACTION_EQUALIZE_SPLITS, + GHOSTTY_ACTION_TOGGLE_SPLIT_ZOOM, + GHOSTTY_ACTION_PRESENT_TERMINAL, + GHOSTTY_ACTION_SIZE_LIMIT, + GHOSTTY_ACTION_RESET_WINDOW_SIZE, + GHOSTTY_ACTION_INITIAL_SIZE, + GHOSTTY_ACTION_CELL_SIZE, + GHOSTTY_ACTION_SCROLLBAR, + GHOSTTY_ACTION_RENDER, + GHOSTTY_ACTION_INSPECTOR, + GHOSTTY_ACTION_SHOW_GTK_INSPECTOR, + GHOSTTY_ACTION_RENDER_INSPECTOR, + GHOSTTY_ACTION_DESKTOP_NOTIFICATION, + GHOSTTY_ACTION_SET_TITLE, + GHOSTTY_ACTION_SET_TAB_TITLE, + GHOSTTY_ACTION_PROMPT_TITLE, + GHOSTTY_ACTION_PWD, + GHOSTTY_ACTION_MOUSE_SHAPE, + GHOSTTY_ACTION_MOUSE_VISIBILITY, + GHOSTTY_ACTION_MOUSE_OVER_LINK, + GHOSTTY_ACTION_RENDERER_HEALTH, + GHOSTTY_ACTION_OPEN_CONFIG, + GHOSTTY_ACTION_QUIT_TIMER, + GHOSTTY_ACTION_FLOAT_WINDOW, + GHOSTTY_ACTION_SECURE_INPUT, + GHOSTTY_ACTION_KEY_SEQUENCE, + GHOSTTY_ACTION_KEY_TABLE, + GHOSTTY_ACTION_COLOR_CHANGE, + GHOSTTY_ACTION_RELOAD_CONFIG, + GHOSTTY_ACTION_CONFIG_CHANGE, + GHOSTTY_ACTION_CLOSE_WINDOW, + GHOSTTY_ACTION_RING_BELL, + GHOSTTY_ACTION_SELECTION_CHANGED, + GHOSTTY_ACTION_UNDO, + GHOSTTY_ACTION_REDO, + GHOSTTY_ACTION_CHECK_FOR_UPDATES, + GHOSTTY_ACTION_OPEN_URL, + GHOSTTY_ACTION_SHOW_CHILD_EXITED, + GHOSTTY_ACTION_PROGRESS_REPORT, + GHOSTTY_ACTION_SHOW_ON_SCREEN_KEYBOARD, + GHOSTTY_ACTION_COMMAND_FINISHED, + GHOSTTY_ACTION_START_SEARCH, + GHOSTTY_ACTION_END_SEARCH, + GHOSTTY_ACTION_SEARCH_TOTAL, + GHOSTTY_ACTION_SEARCH_SELECTED, + GHOSTTY_ACTION_READONLY, + GHOSTTY_ACTION_COPY_TITLE_TO_CLIPBOARD, +} ghostty_action_tag_e; + +typedef union { + ghostty_action_split_direction_e new_split; + ghostty_action_fullscreen_e toggle_fullscreen; + ghostty_action_move_tab_s move_tab; + ghostty_action_goto_tab_e goto_tab; + ghostty_action_goto_split_e goto_split; + ghostty_action_goto_window_e goto_window; + ghostty_action_resize_split_s resize_split; + ghostty_action_size_limit_s size_limit; + ghostty_action_initial_size_s initial_size; + ghostty_action_cell_size_s cell_size; + ghostty_action_scrollbar_s scrollbar; + ghostty_action_inspector_e inspector; + ghostty_action_desktop_notification_s desktop_notification; + ghostty_action_set_title_s set_title; + ghostty_action_set_title_s set_tab_title; + ghostty_action_prompt_title_e prompt_title; + ghostty_action_pwd_s pwd; + ghostty_action_mouse_shape_e mouse_shape; + ghostty_action_mouse_visibility_e mouse_visibility; + ghostty_action_mouse_over_link_s mouse_over_link; + ghostty_action_renderer_health_e renderer_health; + ghostty_action_quit_timer_e quit_timer; + ghostty_action_float_window_e float_window; + ghostty_action_secure_input_e secure_input; + ghostty_action_key_sequence_s key_sequence; + ghostty_action_key_table_s key_table; + ghostty_action_color_change_s color_change; + ghostty_action_reload_config_s reload_config; + ghostty_action_config_change_s config_change; + ghostty_action_open_url_s open_url; + ghostty_action_close_tab_mode_e close_tab_mode; + ghostty_surface_message_childexited_s child_exited; + ghostty_action_progress_report_s progress_report; + ghostty_action_command_finished_s command_finished; + ghostty_action_start_search_s start_search; + ghostty_action_search_total_s search_total; + ghostty_action_search_selected_s search_selected; + ghostty_action_readonly_e readonly; +} ghostty_action_u; + +typedef struct { + ghostty_action_tag_e tag; + ghostty_action_u action; +} ghostty_action_s; + +typedef void (*ghostty_runtime_wakeup_cb)(void*); +typedef bool (*ghostty_runtime_read_clipboard_cb)(void*, + ghostty_clipboard_e, + void*); +typedef void (*ghostty_runtime_confirm_read_clipboard_cb)( + void*, + const char*, + void*, + ghostty_clipboard_request_e); +typedef void (*ghostty_runtime_write_clipboard_cb)(void*, + ghostty_clipboard_e, + const ghostty_clipboard_content_s*, + size_t, + bool); +typedef void (*ghostty_runtime_close_surface_cb)(void*, bool); +typedef bool (*ghostty_runtime_action_cb)(ghostty_app_t, + ghostty_target_s, + ghostty_action_s); + +typedef struct { + void* userdata; + bool supports_selection_clipboard; + ghostty_runtime_wakeup_cb wakeup_cb; + ghostty_runtime_action_cb action_cb; + ghostty_runtime_read_clipboard_cb read_clipboard_cb; + ghostty_runtime_confirm_read_clipboard_cb confirm_read_clipboard_cb; + ghostty_runtime_write_clipboard_cb write_clipboard_cb; + ghostty_runtime_close_surface_cb close_surface_cb; +} ghostty_runtime_config_s; + +// apprt.ipc.Target.Key +typedef enum { + GHOSTTY_IPC_TARGET_CLASS, + GHOSTTY_IPC_TARGET_DETECT, +} ghostty_ipc_target_tag_e; + +typedef union { + char *klass; +} ghostty_ipc_target_u; + +typedef struct { + ghostty_ipc_target_tag_e tag; + ghostty_ipc_target_u target; +} chostty_ipc_target_s; + +// apprt.ipc.Action.NewWindow +typedef struct { + // This should be a null terminated list of strings. + const char **arguments; +} ghostty_ipc_action_new_window_s; + +typedef union { + ghostty_ipc_action_new_window_s new_window; +} ghostty_ipc_action_u; + +// apprt.ipc.Action.Key +typedef enum { + GHOSTTY_IPC_ACTION_NEW_WINDOW, + GHOSTTY_IPC_ACTION_TOGGLE_QUICK_TERMINAL, +} ghostty_ipc_action_tag_e; + +//------------------------------------------------------------------- +// Published API + +GHOSTTY_API int ghostty_init(uintptr_t, char**); +GHOSTTY_API void ghostty_cli_try_action(void); +GHOSTTY_API ghostty_info_s ghostty_info(void); +GHOSTTY_API const char* ghostty_translate(const char*); +GHOSTTY_API void ghostty_string_free(ghostty_string_s); + +GHOSTTY_API ghostty_config_t ghostty_config_new(); +GHOSTTY_API void ghostty_config_free(ghostty_config_t); +GHOSTTY_API ghostty_config_t ghostty_config_clone(ghostty_config_t); +GHOSTTY_API void ghostty_config_load_cli_args(ghostty_config_t); +GHOSTTY_API void ghostty_config_load_file(ghostty_config_t, const char*); +GHOSTTY_API void ghostty_config_load_default_files(ghostty_config_t); +GHOSTTY_API void ghostty_config_load_recursive_files(ghostty_config_t); +GHOSTTY_API void ghostty_config_finalize(ghostty_config_t); +GHOSTTY_API bool ghostty_config_get(ghostty_config_t, void*, const char*, uintptr_t); +GHOSTTY_API ghostty_input_trigger_s ghostty_config_trigger(ghostty_config_t, + const char*, + uintptr_t); +GHOSTTY_API bool ghostty_config_key_is_binding(ghostty_config_t, ghostty_input_key_s); +GHOSTTY_API uint32_t ghostty_config_diagnostics_count(ghostty_config_t); +GHOSTTY_API ghostty_diagnostic_s ghostty_config_get_diagnostic(ghostty_config_t, uint32_t); +GHOSTTY_API ghostty_string_s ghostty_config_open_path(void); + +GHOSTTY_API ghostty_app_t ghostty_app_new(const ghostty_runtime_config_s*, + ghostty_config_t); +GHOSTTY_API void ghostty_app_free(ghostty_app_t); +GHOSTTY_API void ghostty_app_tick(ghostty_app_t); +GHOSTTY_API void* ghostty_app_userdata(ghostty_app_t); +GHOSTTY_API void ghostty_app_set_focus(ghostty_app_t, bool); +GHOSTTY_API bool ghostty_app_key(ghostty_app_t, ghostty_input_key_s); +GHOSTTY_API void ghostty_app_keyboard_changed(ghostty_app_t); +GHOSTTY_API void ghostty_app_open_config(ghostty_app_t); +GHOSTTY_API void ghostty_app_update_config(ghostty_app_t, ghostty_config_t); +GHOSTTY_API bool ghostty_app_needs_confirm_quit(ghostty_app_t); +GHOSTTY_API bool ghostty_app_has_global_keybinds(ghostty_app_t); +GHOSTTY_API void ghostty_app_set_color_scheme(ghostty_app_t, ghostty_color_scheme_e); + +GHOSTTY_API ghostty_surface_config_s ghostty_surface_config_new(); + +GHOSTTY_API ghostty_surface_t ghostty_surface_new(ghostty_app_t, + const ghostty_surface_config_s*); +GHOSTTY_API void ghostty_surface_free(ghostty_surface_t); +GHOSTTY_API void* ghostty_surface_userdata(ghostty_surface_t); +GHOSTTY_API ghostty_app_t ghostty_surface_app(ghostty_surface_t); +GHOSTTY_API ghostty_surface_config_s ghostty_surface_inherited_config(ghostty_surface_t, ghostty_surface_context_e); +GHOSTTY_API void ghostty_surface_update_config(ghostty_surface_t, ghostty_config_t); +GHOSTTY_API bool ghostty_surface_needs_confirm_quit(ghostty_surface_t); +GHOSTTY_API bool ghostty_surface_process_exited(ghostty_surface_t); +GHOSTTY_API void ghostty_surface_refresh(ghostty_surface_t); +GHOSTTY_API void ghostty_surface_draw(ghostty_surface_t); +GHOSTTY_API void ghostty_surface_set_content_scale(ghostty_surface_t, double, double); +GHOSTTY_API void ghostty_surface_set_focus(ghostty_surface_t, bool); +GHOSTTY_API void ghostty_surface_set_occlusion(ghostty_surface_t, bool); +GHOSTTY_API void ghostty_surface_set_size(ghostty_surface_t, uint32_t, uint32_t); +GHOSTTY_API ghostty_surface_size_s ghostty_surface_size(ghostty_surface_t); +GHOSTTY_API uint64_t ghostty_surface_foreground_pid(ghostty_surface_t); +GHOSTTY_API ghostty_string_s ghostty_surface_tty_name(ghostty_surface_t); +GHOSTTY_API void ghostty_surface_set_color_scheme(ghostty_surface_t, + ghostty_color_scheme_e); +GHOSTTY_API ghostty_input_mods_e ghostty_surface_key_translation_mods(ghostty_surface_t, + ghostty_input_mods_e); +GHOSTTY_API bool ghostty_surface_key(ghostty_surface_t, ghostty_input_key_s); +GHOSTTY_API bool ghostty_surface_key_is_binding(ghostty_surface_t, + ghostty_input_key_s, + ghostty_binding_flags_e*); +GHOSTTY_API void ghostty_surface_text(ghostty_surface_t, const char*, uintptr_t); +GHOSTTY_API void ghostty_surface_preedit(ghostty_surface_t, const char*, uintptr_t); +GHOSTTY_API bool ghostty_surface_mouse_captured(ghostty_surface_t); +GHOSTTY_API bool ghostty_surface_mouse_button(ghostty_surface_t, + ghostty_input_mouse_state_e, + ghostty_input_mouse_button_e, + ghostty_input_mods_e); +GHOSTTY_API void ghostty_surface_mouse_pos(ghostty_surface_t, + double, + double, + ghostty_input_mods_e); +GHOSTTY_API void ghostty_surface_mouse_scroll(ghostty_surface_t, + double, + double, + ghostty_input_scroll_mods_t); +GHOSTTY_API void ghostty_surface_mouse_pressure(ghostty_surface_t, uint32_t, double); +GHOSTTY_API void ghostty_surface_ime_point(ghostty_surface_t, double*, double*, double*, double*); +GHOSTTY_API void ghostty_surface_request_close(ghostty_surface_t); +GHOSTTY_API void ghostty_surface_split(ghostty_surface_t, ghostty_action_split_direction_e); +GHOSTTY_API void ghostty_surface_split_focus(ghostty_surface_t, + ghostty_action_goto_split_e); +GHOSTTY_API void ghostty_surface_split_resize(ghostty_surface_t, + ghostty_action_resize_split_direction_e, + uint16_t); +GHOSTTY_API void ghostty_surface_split_equalize(ghostty_surface_t); +GHOSTTY_API bool ghostty_surface_binding_action(ghostty_surface_t, const char*, uintptr_t); +GHOSTTY_API void ghostty_surface_complete_clipboard_request(ghostty_surface_t, + const char*, + void*, + bool); +GHOSTTY_API bool ghostty_surface_has_selection(ghostty_surface_t); +GHOSTTY_API bool ghostty_surface_read_selection(ghostty_surface_t, ghostty_text_s*); +GHOSTTY_API bool ghostty_surface_read_text(ghostty_surface_t, + ghostty_selection_s, + ghostty_text_s*); +GHOSTTY_API void ghostty_surface_free_text(ghostty_surface_t, ghostty_text_s*); + +#ifdef __APPLE__ +GHOSTTY_API void ghostty_surface_set_display_id(ghostty_surface_t, uint32_t); +GHOSTTY_API void* ghostty_surface_quicklook_font(ghostty_surface_t); +GHOSTTY_API bool ghostty_surface_quicklook_word(ghostty_surface_t, ghostty_text_s*); +#endif + +GHOSTTY_API ghostty_inspector_t ghostty_surface_inspector(ghostty_surface_t); +GHOSTTY_API void ghostty_inspector_free(ghostty_surface_t); +GHOSTTY_API void ghostty_inspector_set_focus(ghostty_inspector_t, bool); +GHOSTTY_API void ghostty_inspector_set_content_scale(ghostty_inspector_t, double, double); +GHOSTTY_API void ghostty_inspector_set_size(ghostty_inspector_t, uint32_t, uint32_t); +GHOSTTY_API void ghostty_inspector_mouse_button(ghostty_inspector_t, + ghostty_input_mouse_state_e, + ghostty_input_mouse_button_e, + ghostty_input_mods_e); +GHOSTTY_API void ghostty_inspector_mouse_pos(ghostty_inspector_t, double, double); +GHOSTTY_API void ghostty_inspector_mouse_scroll(ghostty_inspector_t, + double, + double, + ghostty_input_scroll_mods_t); +GHOSTTY_API void ghostty_inspector_key(ghostty_inspector_t, + ghostty_input_action_e, + ghostty_input_key_e, + ghostty_input_mods_e); +GHOSTTY_API void ghostty_inspector_text(ghostty_inspector_t, const char*); + +#ifdef __APPLE__ +GHOSTTY_API bool ghostty_inspector_metal_init(ghostty_inspector_t, void*); +GHOSTTY_API void ghostty_inspector_metal_render(ghostty_inspector_t, void*, void*); +GHOSTTY_API bool ghostty_inspector_metal_shutdown(ghostty_inspector_t); +#endif + +// APIs I'd like to get rid of eventually but are still needed for now. +// Don't use these unless you know what you're doing. +GHOSTTY_API void ghostty_set_window_background_blur(ghostty_app_t, void*); + +// Benchmark API, if available. +GHOSTTY_API bool ghostty_benchmark_cli(const char*, const char*); + +#ifdef __cplusplus +} +#endif + +#endif /* GHOSTTY_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt.h b/packages/terminal/vendor/include/ghostty/vt.h new file mode 100644 index 0000000000000000000000000000000000000000..5606f1690e372daa17ae6705d197b23b4a87cef3 --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt.h @@ -0,0 +1,163 @@ +/** + * @file vt.h + * + * libghostty-vt - Virtual terminal emulator library + * + * This library provides functionality for parsing and handling terminal + * escape sequences as well as maintaining terminal state such as styles, + * cursor position, screen, scrollback, and more. + * + * WARNING: This is an incomplete, work-in-progress API. It is not yet + * stable and is definitely going to change. + */ + +/** + * @mainpage libghostty-vt - Virtual Terminal Emulator Library + * + * libghostty-vt is a C library which implements a modern terminal emulator, + * extracted from the [Ghostty](https://ghostty.org) terminal emulator. + * + * libghostty-vt contains the logic for handling the core parts of a terminal + * emulator: parsing terminal escape sequences, maintaining terminal state, + * encoding input events, etc. It can handle scrollback, line wrapping, + * reflow on resize, and more. + * + * @warning This library is currently in development and the API is not yet stable. + * Breaking changes are expected in future versions. Use with caution in production code. + * + * @section groups_sec API Reference + * + * The API is organized into the following groups: + * - @ref terminal "Terminal" - Complete terminal emulator state and rendering + * - @ref render "Render State" - Incremental render state updates for custom renderers + * - @ref formatter "Formatter" - Format terminal content as plain text, VT sequences, or HTML + * - @ref osc "OSC Parser" - Parse OSC (Operating System Command) sequences + * - @ref sgr "SGR Parser" - Parse SGR (Select Graphic Rendition) sequences + * - @ref paste "Paste Utilities" - Validate paste data safety + * - @ref unicode "Unicode Utilities" - Codepoint properties for text layout + * - @ref build_info "Build Info" - Query compile-time build configuration + * - @ref allocator "Memory Management" - Memory management and custom allocators + * - @ref wasm "WebAssembly Utilities" - WebAssembly convenience functions + * + * Encoding related APIs: + * - @ref focus "Focus Encoding" - Encode focus in/out events into terminal sequences + * - @ref key "Key Encoding" - Encode key events into terminal sequences + * - @ref mouse "Mouse Encoding" - Encode mouse events into terminal sequences + * + * @section examples_sec Examples + * + * Complete working examples: + * - @ref c-vt-build-info/src/main.c - Build info query example + * - @ref c-vt/src/main.c - OSC parser example + * - @ref c-vt-encode-key/src/main.c - Key encoding example + * - @ref c-vt-encode-mouse/src/main.c - Mouse encoding example + * - @ref c-vt-paste/src/main.c - Paste safety check example + * - @ref c-vt-sgr/src/main.c - SGR parser example + * - @ref c-vt-formatter/src/main.c - Terminal formatter example + * - @ref c-vt-grid-traverse/src/main.c - Grid traversal example using grid refs + * - @ref c-vt-grid-ref-tracked/src/main.c - Tracked grid ref example + * - @ref c-vt-compression/src/main.c - Idle scrollback compression example + * + */ + +/** @example c-vt-build-info/src/main.c + * This example demonstrates how to query compile-time build configuration + * such as SIMD support, Kitty graphics, and tmux control mode availability. + */ + +/** @example c-vt/src/main.c + * This example demonstrates how to use the OSC parser to parse an OSC sequence, + * extract command information, and retrieve command-specific data like window titles. + */ + +/** @example c-vt-encode-key/src/main.c + * This example demonstrates how to use the key encoder to convert key events + * into terminal escape sequences using the Kitty keyboard protocol. + */ + +/** @example c-vt-encode-mouse/src/main.c + * This example demonstrates how to use the mouse encoder to convert mouse events + * into terminal escape sequences using the SGR mouse format. + */ + +/** @example c-vt-paste/src/main.c + * This example demonstrates how to use the paste utilities to check if + * paste data is safe before sending it to the terminal. + */ + +/** @example c-vt-sgr/src/main.c + * This example demonstrates how to use the SGR parser to parse terminal + * styling sequences and extract text attributes like colors and underline styles. + */ + +/** @example c-vt-formatter/src/main.c + * This example demonstrates how to use the terminal and formatter APIs to + * create a terminal, write VT-encoded content into it, and format the screen + * contents as plain text. + */ + +/** @example c-vt-grid-traverse/src/main.c + * This example demonstrates how to traverse the entire terminal grid using + * grid refs to inspect cell codepoints, row wrap state, and cell styles. + */ + +/** @example c-vt-grid-ref-tracked/src/main.c + * This example demonstrates how to track a grid ref as the terminal scrolls, + * detect when it loses its value, and move it to a new point. + */ + +/** @example c-vt-compression/src/main.c + * This example demonstrates how to schedule incremental scrollback compression + * after compression-relevant terminal activity becomes idle. + */ + +/** @example c-vt-selection-gesture/src/main.c + * This example demonstrates how to use synthetic selection gesture events to + * derive drag and deep-press selection snapshots. + */ + +/** @example c-vt-kitty-graphics/src/main.c + * This example demonstrates how to use the system interface to install a + * PNG decoder callback and send a Kitty Graphics Protocol image. + */ + +#ifndef GHOSTTY_VT_H +#define GHOSTTY_VT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +} +#endif + +#endif /* GHOSTTY_VT_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/allocator.h b/packages/terminal/vendor/include/ghostty/vt/allocator.h new file mode 100644 index 0000000000000000000000000000000000000000..2e8685e8445431edb1efdd32d9e2788ac795f8b7 --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/allocator.h @@ -0,0 +1,255 @@ +/** + * @file allocator.h + * + * Memory management interface for libghostty-vt. + */ + +#ifndef GHOSTTY_VT_ALLOCATOR_H +#define GHOSTTY_VT_ALLOCATOR_H + +#include +#include +#include +#include + +/** @defgroup allocator Memory Management + * + * libghostty-vt does require memory allocation for various operations, + * but is resilient to allocation failures and will gracefully handle + * out-of-memory situations by returning error codes. + * + * The exact memory management semantics are documented in the relevant + * functions and data structures. + * + * libghostty-vt uses explicit memory allocation via an allocator + * interface provided by GhosttyAllocator. The interface is based on the + * [Zig](https://ziglang.org) allocator interface, since this has been + * shown to be a flexible and powerful interface in practice and enables + * a wide variety of allocation strategies. + * + * **For the common case, you can pass NULL as the allocator for any + * function that accepts one,** and libghostty will use a default allocator. + * The default allocator will be libc malloc/free if libc is linked. + * Otherwise, a custom allocator is used (currently Zig's SMP allocator) + * that doesn't require any external dependencies. + * + * ## Basic Usage + * + * For simple use cases, you can ignore this interface entirely by passing NULL + * as the allocator parameter to functions that accept one. This will use the + * default allocator (typically libc malloc/free, if libc is linked, but + * we provide our own default allocator if libc isn't linked). + * + * To use a custom allocator: + * 1. Implement the GhosttyAllocatorVtable function pointers + * 2. Create a GhosttyAllocator struct with your vtable and context + * 3. Pass the allocator to functions that accept one + * + * ## Alloc/Free Helpers + * + * ghostty_alloc() and ghostty_free() provide a simple malloc/free-style + * interface for allocating and freeing byte buffers through the library's + * allocator. These are useful when: + * + * - You need to allocate a buffer to pass into a libghostty-vt function + * (e.g. preparing input data for ghostty_terminal_vt_write()). + * - You need to free a buffer returned by a libghostty-vt function + * (e.g. the output of ghostty_formatter_format_alloc()). + * - You are on a platform where the library's internal allocator differs + * from the consumer's C runtime (e.g. Windows, where Zig's libc and + * MSVC's CRT maintain separate heaps), so calling the standard C + * free() on library-allocated memory would be undefined behavior. + * + * Always use the same allocator (or NULL) for both the allocation and + * the corresponding free. + * + * @{ + */ + +/** + * Function table for custom memory allocator operations. + * + * This vtable defines the interface for a custom memory allocator. All + * function pointers must be valid and non-NULL. + * + * @ingroup allocator + * + * If you're not going to use a custom allocator, you can ignore all of + * this. All functions that take an allocator pointer allow NULL to use a + * default allocator. + * + * The interface is based on the Zig allocator interface. I'll say up front + * that it is easy to look at this interface and think "wow, this is really + * overcomplicated". The reason for this complexity is well thought out by + * the Zig folks, and it enables a diverse set of allocation strategies + * as shown by the Zig ecosystem. As a consolation, please note that many + * of the arguments are only needed for advanced use cases and can be + * safely ignored in simple implementations. For example, if you look at + * the Zig implementation of the libc allocator in `lib/std/heap.zig` + * (search for CAllocator), you'll see it is very simple. + * + * We chose to align with the Zig allocator interface because: + * + * 1. It is a proven interface that serves a wide variety of use cases + * in the real world via the Zig ecosystem. It's shown to work. + * + * 2. Our core implementation itself is Zig, and this lets us very + * cheaply and easily convert between C and Zig allocators. + * + * NOTE(mitchellh): In the future, we can have default implementations of + * resize/remap and allow those to be null. + */ +typedef struct { + /** + * Return a pointer to `len` bytes with specified `alignment`, or return + * `NULL` indicating the allocation failed. + * + * @param ctx The allocator context + * @param len Number of bytes to allocate + * @param alignment Required alignment for the allocation. Guaranteed to + * be a power of two between 1 and 16 inclusive. + * @param ret_addr First return address of the allocation call stack (0 if not provided) + * @return Pointer to allocated memory, or NULL if allocation failed + */ + void* (*alloc)(void *ctx, size_t len, uint8_t alignment, uintptr_t ret_addr); + + /** + * Attempt to expand or shrink memory in place. + * + * `memory_len` must equal the length requested from the most recent + * successful call to `alloc`, `resize`, or `remap`. `alignment` must + * equal the same value that was passed as the `alignment` parameter to + * the original `alloc` call. + * + * `new_len` must be greater than zero. + * + * @param ctx The allocator context + * @param memory Pointer to the memory block to resize + * @param memory_len Current size of the memory block + * @param alignment Alignment (must match original allocation) + * @param new_len New requested size + * @param ret_addr First return address of the allocation call stack (0 if not provided) + * @return true if resize was successful in-place, false if relocation would be required + */ + bool (*resize)(void *ctx, void *memory, size_t memory_len, uint8_t alignment, size_t new_len, uintptr_t ret_addr); + + /** + * Attempt to expand or shrink memory, allowing relocation. + * + * `memory_len` must equal the length requested from the most recent + * successful call to `alloc`, `resize`, or `remap`. `alignment` must + * equal the same value that was passed as the `alignment` parameter to + * the original `alloc` call. + * + * A non-`NULL` return value indicates the resize was successful. The + * allocation may have same address, or may have been relocated. In either + * case, the allocation now has size of `new_len`. A `NULL` return value + * indicates that the resize would be equivalent to allocating new memory, + * copying the bytes from the old memory, and then freeing the old memory. + * In such case, it is more efficient for the caller to perform the copy. + * + * `new_len` must be greater than zero. + * + * @param ctx The allocator context + * @param memory Pointer to the memory block to remap + * @param memory_len Current size of the memory block + * @param alignment Alignment (must match original allocation) + * @param new_len New requested size + * @param ret_addr First return address of the allocation call stack (0 if not provided) + * @return Pointer to resized memory (may be relocated), or NULL if manual copy is needed + */ + void* (*remap)(void *ctx, void *memory, size_t memory_len, uint8_t alignment, size_t new_len, uintptr_t ret_addr); + + /** + * Free and invalidate a region of memory. + * + * `memory_len` must equal the length requested from the most recent + * successful call to `alloc`, `resize`, or `remap`. `alignment` must + * equal the same value that was passed as the `alignment` parameter to + * the original `alloc` call. + * + * @param ctx The allocator context + * @param memory Pointer to the memory block to free + * @param memory_len Size of the memory block + * @param alignment Alignment (must match original allocation) + * @param ret_addr First return address of the allocation call stack (0 if not provided) + */ + void (*free)(void *ctx, void *memory, size_t memory_len, uint8_t alignment, uintptr_t ret_addr); +} GhosttyAllocatorVtable; + +/** + * Custom memory allocator. + * + * For functions that take an allocator pointer, a NULL pointer indicates + * that the default allocator should be used. The default allocator will + * be libc malloc/free if we're linking to libc. If libc isn't linked, + * a custom allocator is used (currently Zig's SMP allocator). + * + * @ingroup allocator + * + * Usage example: + * @code + * GhosttyAllocator allocator = { + * .vtable = &my_allocator_vtable, + * .ctx = my_allocator_state + * }; + * @endcode + */ +typedef struct GhosttyAllocator { + /** + * Opaque context pointer passed to all vtable functions. + * This allows the allocator implementation to maintain state + * or reference external resources needed for memory management. + */ + void *ctx; + + /** + * Pointer to the allocator's vtable containing function pointers + * for memory operations (alloc, resize, remap, free). + */ + const GhosttyAllocatorVtable *vtable; +} GhosttyAllocator; + +/** + * Allocate a buffer of `len` bytes. + * + * Uses the provided allocator, or the default allocator if NULL is passed. + * The returned buffer must be freed with ghostty_free() using the same + * allocator. + * + * @param allocator Pointer to the allocator to use, or NULL for the default + * @param len Number of bytes to allocate + * @return Pointer to the allocated buffer, or NULL if allocation failed + * + * @ingroup allocator + */ +GHOSTTY_API uint8_t* ghostty_alloc(const GhosttyAllocator* allocator, size_t len); + +/** + * Free memory that was allocated by a libghostty-vt function. + * + * Use this to free buffers returned by functions such as + * ghostty_formatter_format_alloc(). Pass the same allocator that was + * used for the allocation, or NULL if the default allocator was used. + * + * On platforms where the library's internal allocator differs from the + * consumer's C runtime (e.g. Windows, where Zig's libc and MSVC's CRT + * maintain separate heaps), calling the standard C free() on memory + * allocated by the library causes undefined behavior. This function + * guarantees the correct allocator is used regardless of platform. + * + * It is safe to pass a NULL pointer; the call is a no-op in that case. + * + * @param allocator Pointer to the allocator that was used to allocate the + * memory, or NULL if the default allocator was used + * @param ptr Pointer to the memory to free (may be NULL) + * @param len Length of the allocation in bytes (must match the original + * allocation size) + * + * @ingroup allocator + */ +GHOSTTY_API void ghostty_free(const GhosttyAllocator* allocator, uint8_t* ptr, size_t len); + +/** @} */ + +#endif /* GHOSTTY_VT_ALLOCATOR_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/build_info.h b/packages/terminal/vendor/include/ghostty/vt/build_info.h new file mode 100644 index 0000000000000000000000000000000000000000..8573556f7f8843bcc2426d84aed269d63bec9b4f --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/build_info.h @@ -0,0 +1,150 @@ +/** + * @file build_info.h + * + * Build info - query compile-time build configuration of libghostty-vt. + */ + +#ifndef GHOSTTY_VT_BUILD_INFO_H +#define GHOSTTY_VT_BUILD_INFO_H + +/** @defgroup build_info Build Info + * + * Query compile-time build configuration of libghostty-vt. + * + * These values reflect the options the library was built with and are + * constant for the lifetime of the process. + * + * ## Basic Usage + * + * Use ghostty_build_info() to query individual build options: + * + * @snippet c-vt-build-info/src/main.c build-info-query + * + * @{ + */ + +#include +#include + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Build optimization mode. + */ +typedef enum GHOSTTY_ENUM_TYPED { + GHOSTTY_OPTIMIZE_DEBUG = 0, + GHOSTTY_OPTIMIZE_RELEASE_SAFE = 1, + GHOSTTY_OPTIMIZE_RELEASE_SMALL = 2, + GHOSTTY_OPTIMIZE_RELEASE_FAST = 3, + GHOSTTY_OPTIMIZE_MODE_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyOptimizeMode; + +/** + * Build info data types that can be queried. + * + * Each variant documents the expected output pointer type. + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Invalid data type. Never results in any data extraction. */ + GHOSTTY_BUILD_INFO_INVALID = 0, + + /** + * Whether SIMD-accelerated code paths are enabled. + * + * Output type: bool * + */ + GHOSTTY_BUILD_INFO_SIMD = 1, + + /** + * Whether Kitty graphics protocol support is available. + * + * Output type: bool * + */ + GHOSTTY_BUILD_INFO_KITTY_GRAPHICS = 2, + + /** + * Whether tmux control mode support is available. + * + * Output type: bool * + */ + GHOSTTY_BUILD_INFO_TMUX_CONTROL_MODE = 3, + + /** + * The optimization mode the library was built with. + * + * Output type: GhosttyOptimizeMode * + */ + GHOSTTY_BUILD_INFO_OPTIMIZE = 4, + + /** + * The full version string (e.g. "1.2.3" or "1.2.3-dev+abcdef"). + * + * Output type: GhosttyString * + */ + GHOSTTY_BUILD_INFO_VERSION_STRING = 5, + + /** + * The major version number. + * + * Output type: size_t * + */ + GHOSTTY_BUILD_INFO_VERSION_MAJOR = 6, + + /** + * The minor version number. + * + * Output type: size_t * + */ + GHOSTTY_BUILD_INFO_VERSION_MINOR = 7, + + /** + * The patch version number. + * + * Output type: size_t * + */ + GHOSTTY_BUILD_INFO_VERSION_PATCH = 8, + + /** + * The pre metadata string (e.g. "alpha", "beta", "dev"). Has zero length if + * no pre metadata is present. + * + * Output type: GhosttyString * + */ + GHOSTTY_BUILD_INFO_VERSION_PRE = 9, + + /** + * The build metadata string (e.g. commit hash). Has zero length if + * no build metadata is present. + * + * Output type: GhosttyString * + */ + GHOSTTY_BUILD_INFO_VERSION_BUILD = 10, + GHOSTTY_BUILD_INFO_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyBuildInfo; + +/** + * Query a compile-time build configuration value. + * + * The caller must pass a pointer to the correct output type for the + * requested data (see GhosttyBuildInfo variants for types). + * + * @param data The build info field to query + * @param out Pointer to store the result (type depends on data parameter) + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if the + * data type is invalid + * + * @ingroup build_info + */ +GHOSTTY_API GhosttyResult ghostty_build_info(GhosttyBuildInfo data, void *out); + +#ifdef __cplusplus +} +#endif + +/** @} */ + +#endif /* GHOSTTY_VT_BUILD_INFO_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/color.h b/packages/terminal/vendor/include/ghostty/vt/color.h new file mode 100644 index 0000000000000000000000000000000000000000..f5f7f9c4ec5e93659a91701ca657156f2ac9c44b --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/color.h @@ -0,0 +1,479 @@ +/** + * @file color.h + * + * Color types and utilities. + */ + +#ifndef GHOSTTY_VT_COLOR_H +#define GHOSTTY_VT_COLOR_H + +/** @defgroup color Color Utilities + * + * Color parsing, palette generation, color math, and X11 color name + * utilities shared by libghostty-vt. + * + * These APIs expose Ghostty's color semantics directly to embedders. Use + * them when an application needs to parse the same color strings as Ghostty + * config and theme files, generate the same 256-color palette used by the + * terminal, list supported X11 color names, or make UI decisions from + * luminance and contrast values. + * + * ## Parsing Colors + * + * ghostty_color_parse() accepts the flexible syntax used by Ghostty for + * terminal colors: + * + * - X11 color names, matched ASCII case-insensitively. + * - 3- or 6-digit hex colors, with or without a leading `#`. + * - 9- or 12-digit hex colors, with a leading `#`. + * - XParseColor-style `rgb://` values. + * - XParseColor-style `rgbi://` values. + * + * Leading and trailing spaces and tabs are ignored. Use + * ghostty_color_parse_x11() when only X11 names should be accepted. + * + * @code{.c} + * GhosttyColorRgb color; + * + * if (ghostty_color_parse( + * "ForestGreen", + * sizeof("ForestGreen") - 1, + * &color) != GHOSTTY_SUCCESS) { + * // Handle invalid color input. + * } + * + * ghostty_color_parse("#abc", sizeof("#abc") - 1, &color); + * ghostty_color_parse("rgb:12/34/56", sizeof("rgb:12/34/56") - 1, &color); + * @endcode + * + * ## Palette Entries + * + * ghostty_color_parse_palette_entry() parses a single Ghostty palette + * override in `INDEX=COLOR` form. The index may be decimal or use a `0x`, + * `0o`, or `0b` prefix. The color side uses ghostty_color_parse(). + * + * @code{.c} + * GhosttyColorRgb palette[256]; + * ghostty_color_palette_default(palette); + * + * uint8_t index; + * GhosttyColorRgb rgb; + * + * if (ghostty_color_parse_palette_entry( + * "0x10=#282c34", + * sizeof("0x10=#282c34") - 1, + * &index, + * &rgb) == GHOSTTY_SUCCESS) { + * palette[index] = rgb; + * } + * @endcode + * + * ## Palette Generation + * + * ghostty_color_palette_generate() derives the 216-color cube and grayscale + * ramp from a base palette, background, and foreground. Set bits in + * GhosttyColorPaletteMask preserve specific indices from the base palette. + * The output may alias the base input. + * + * @code{.c} + * GhosttyColorRgb palette[256]; + * ghostty_color_palette_default(palette); + * + * GhosttyColorPaletteMask skip = {0}; + * GHOSTTY_COLOR_PALETTE_MASK_SET(&skip, 16); + * + * GhosttyColorRgb background = {40, 44, 52}; + * GhosttyColorRgb foreground = {220, 223, 228}; + * + * ghostty_color_palette_generate( + * palette, + * &skip, + * &background, + * &foreground, + * true, + * palette); + * @endcode + * + * ## X11 Color Names + * + * The X11 name table is static program-lifetime memory. Entries are in + * rgb.txt order and are terminated by an entry with `name == NULL`. + * ghostty_color_x11_name_count() returns the number of non-terminator + * entries. + * + * @code{.c} + * const GhosttyColorX11Entry* names = ghostty_color_x11_names(); + * size_t count = ghostty_color_x11_name_count(); + * + * for (size_t i = 0; i < count; i++) { + * // names[i].name and names[i].color are valid here. + * } + * @endcode + * + * @{ + */ + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * RGB color value. + * + * @ingroup color + */ +typedef struct { + uint8_t r; /**< Red component (0-255) */ + uint8_t g; /**< Green component (0-255) */ + uint8_t b; /**< Blue component (0-255) */ +} GhosttyColorRgb; + +/** + * Palette color index (0-255). + * + * @ingroup color + */ +typedef uint8_t GhosttyColorPaletteIndex; + +/** + * A 256-bit mask of palette indices. + * + * Index i is set iff `(bits[i >> 6] >> (i & 63)) & 1` is 1. + * The mask is typically initialized to zero and then populated with + * GHOSTTY_COLOR_PALETTE_MASK_SET(). + * + * @code{.c} + * GhosttyColorPaletteMask mask = {0}; + * GHOSTTY_COLOR_PALETTE_MASK_SET(&mask, 20); + * if (GHOSTTY_COLOR_PALETTE_MASK_IS_SET(&mask, 20)) { + * // Index 20 will be preserved. + * } + * @endcode + * + * @ingroup color + */ +typedef struct { + uint64_t bits[4]; +} GhosttyColorPaletteMask; + +/** + * An entry in Ghostty's X11 color name table. + * + * @ingroup color + */ +typedef struct { + /** Null-terminated color name. NULL marks the end of the table. */ + const char* name; + /** The RGB value of the color. */ + GhosttyColorRgb color; +} GhosttyColorX11Entry; + +/** + * Return the storage word for a palette mask index. + * + * @param index The palette index (0-255) + * + * @ingroup color + */ +#define GHOSTTY_COLOR_PALETTE_MASK_WORD(index) ((index) >> 6) + +/** + * Return the storage bit for a palette mask index. + * + * @param index The palette index (0-255) + * + * @ingroup color + */ +#define GHOSTTY_COLOR_PALETTE_MASK_BIT(index) (UINT64_C(1) << ((index) & 63)) + +/** + * Set a palette mask index. + * + * @param mask Pointer to a GhosttyColorPaletteMask + * @param index The palette index (0-255) + * + * @ingroup color + */ +#define GHOSTTY_COLOR_PALETTE_MASK_SET(mask, index) \ + ((mask)->bits[GHOSTTY_COLOR_PALETTE_MASK_WORD(index)] |= GHOSTTY_COLOR_PALETTE_MASK_BIT(index)) + +/** + * Clear a palette mask index. + * + * @param mask Pointer to a GhosttyColorPaletteMask + * @param index The palette index (0-255) + * + * @ingroup color + */ +#define GHOSTTY_COLOR_PALETTE_MASK_UNSET(mask, index) \ + ((mask)->bits[GHOSTTY_COLOR_PALETTE_MASK_WORD(index)] &= ~GHOSTTY_COLOR_PALETTE_MASK_BIT(index)) + +/** + * Test whether a palette mask index is set. + * + * @param mask Pointer to a GhosttyColorPaletteMask + * @param index The palette index (0-255) + * @return true if the palette index is set, false otherwise + * + * @ingroup color + */ +#define GHOSTTY_COLOR_PALETTE_MASK_IS_SET(mask, index) \ + (((mask)->bits[GHOSTTY_COLOR_PALETTE_MASK_WORD(index)] & GHOSTTY_COLOR_PALETTE_MASK_BIT(index)) != 0) + +/** Black color (0) @ingroup color */ +#define GHOSTTY_COLOR_NAMED_BLACK 0 +/** Red color (1) @ingroup color */ +#define GHOSTTY_COLOR_NAMED_RED 1 +/** Green color (2) @ingroup color */ +#define GHOSTTY_COLOR_NAMED_GREEN 2 +/** Yellow color (3) @ingroup color */ +#define GHOSTTY_COLOR_NAMED_YELLOW 3 +/** Blue color (4) @ingroup color */ +#define GHOSTTY_COLOR_NAMED_BLUE 4 +/** Magenta color (5) @ingroup color */ +#define GHOSTTY_COLOR_NAMED_MAGENTA 5 +/** Cyan color (6) @ingroup color */ +#define GHOSTTY_COLOR_NAMED_CYAN 6 +/** White color (7) @ingroup color */ +#define GHOSTTY_COLOR_NAMED_WHITE 7 +/** Bright black color (8) @ingroup color */ +#define GHOSTTY_COLOR_NAMED_BRIGHT_BLACK 8 +/** Bright red color (9) @ingroup color */ +#define GHOSTTY_COLOR_NAMED_BRIGHT_RED 9 +/** Bright green color (10) @ingroup color */ +#define GHOSTTY_COLOR_NAMED_BRIGHT_GREEN 10 +/** Bright yellow color (11) @ingroup color */ +#define GHOSTTY_COLOR_NAMED_BRIGHT_YELLOW 11 +/** Bright blue color (12) @ingroup color */ +#define GHOSTTY_COLOR_NAMED_BRIGHT_BLUE 12 +/** Bright magenta color (13) @ingroup color */ +#define GHOSTTY_COLOR_NAMED_BRIGHT_MAGENTA 13 +/** Bright cyan color (14) @ingroup color */ +#define GHOSTTY_COLOR_NAMED_BRIGHT_CYAN 14 +/** Bright white color (15) @ingroup color */ +#define GHOSTTY_COLOR_NAMED_BRIGHT_WHITE 15 + +/** + * Get the RGB color components. + * + * This function extracts the individual red, green, and blue components + * from a GhosttyColorRgb value. Primarily useful in WebAssembly environments + * where accessing struct fields directly is difficult. + * + * @param color Pointer to the RGB color value + * @param r Pointer to store the red component (0-255) + * @param g Pointer to store the green component (0-255) + * @param b Pointer to store the blue component (0-255) + * + * @ingroup color + */ +GHOSTTY_API void ghostty_color_rgb_get(const GhosttyColorRgb* color, + uint8_t* r, + uint8_t* g, + uint8_t* b); + +/** + * Parse an X11 color name. + * + * The color name is resolved from Ghostty's embedded rgb.txt table. + * Leading and trailing spaces and tabs are trimmed, and matching is + * ASCII case-insensitive. Hex values are not accepted by this function. + * + * @param name The color name bytes (must not be NULL) + * @param len The length of @p name in bytes + * @param[out] out The parsed RGB color + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if no color + * matches or @p name is NULL + * + * @ingroup color + */ +GHOSTTY_API GhosttyResult ghostty_color_parse_x11( + const char* name, + size_t len, + GhosttyColorRgb* out); + +/** + * Parse a flexible Ghostty color value. + * + * Accepts Ghostty's terminal color syntax: X11 color names, hex colors + * in 3-, 6-, 9-, or 12-digit form (the leading # is optional for 3- and + * 6-digit values), and rgb:// or + * rgbi:// specifications. Leading and trailing spaces + * and tabs are trimmed. + * + * @param value The color value bytes (must not be NULL) + * @param len The length of @p value in bytes + * @param[out] out The parsed RGB color + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if parsing + * fails or @p value is NULL + * + * @ingroup color + */ +GHOSTTY_API GhosttyResult ghostty_color_parse( + const char* value, + size_t len, + GhosttyColorRgb* out); + +/** + * Parse a Ghostty palette entry. + * + * Accepts Ghostty palette config syntax: N=COLOR. N is a palette index + * from 0 to 255 in decimal or in 0x, 0o, or 0b-prefixed form. Spaces and + * tabs around N and COLOR are ignored. COLOR accepts the same syntax as + * ghostty_color_parse(). + * + * @param value The palette entry bytes (must not be NULL) + * @param len The length of @p value in bytes + * @param[out] out_index The parsed palette index + * @param[out] out_rgb The parsed RGB color + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE on any + * failure, including index overflow + * + * @ingroup color + */ +GHOSTTY_API GhosttyResult ghostty_color_parse_palette_entry( + const char* value, + size_t len, + uint8_t* out_index, + GhosttyColorRgb* out_rgb); + +/** + * Get Ghostty's built-in default 256-color palette. + * + * Writes exactly 256 entries: Ghostty's base16 defaults, the xterm + * 6x6x6 color cube, and the grayscale ramp. + * + * @param[out] out The output palette, an array of exactly 256 + * GhosttyColorRgb values + * + * @ingroup color + */ +GHOSTTY_API void ghostty_color_palette_default(GhosttyColorRgb* out); + +/** + * Generate a 256-color palette from base colors. + * + * The base palette supplies indices 0-15, which are always preserved. + * If @p base is NULL, Ghostty's default palette is used. If @p skip is + * NULL, no extra indices are skipped. Set bits in @p skip preserve those + * indices from @p base. The 216-color cube at indices 16-231 is generated + * with trilinear CIELAB interpolation, and the grayscale ramp at indices + * 232-255 is interpolated from the background to the foreground. + * + * For light themes, @p harmonious controls whether the generated palette + * keeps the background-to-foreground orientation. When false, Ghostty + * swaps the light background and dark foreground so the cube and ramp run + * dark-to-light. The output palette may be the same pointer as @p base. + * + * @param base The base palette, an array of exactly 256 GhosttyColorRgb + * values, or NULL to use Ghostty's default palette + * @param skip The palette indices to preserve from @p base, or NULL for + * an empty mask + * @param bg The terminal background color (must not be NULL) + * @param fg The terminal foreground color (must not be NULL) + * @param harmonious Whether light themes keep background-to-foreground + * orientation + * @param[out] out The output palette, an array of exactly 256 + * GhosttyColorRgb values + * + * @ingroup color + */ +GHOSTTY_API void ghostty_color_palette_generate( + const GhosttyColorRgb* base, + const GhosttyColorPaletteMask* skip, + const GhosttyColorRgb* bg, + const GhosttyColorRgb* fg, + bool harmonious, + GhosttyColorRgb* out); + +/** + * Calculate W3C relative luminance for an RGB color. + * + * Returns a normalized value from 0.0 for black to 1.0 for white. + * See https://www.w3.org/TR/WCAG20/#relativeluminancedef. + * + * @param color The RGB color (must not be NULL) + * @return Relative luminance in the range 0.0 to 1.0 + * + * @ingroup color + */ +GHOSTTY_API double ghostty_color_luminance(const GhosttyColorRgb* color); + +/** + * Calculate perceived luminance for an RGB color. + * + * Returns a normalized value from 0.0 for black to 1.0 for white. + * Ghostty treats a background color as light when this exceeds 0.5. + * This is not the metric used internally by + * ghostty_color_palette_generate(), which uses CIELAB lightness. + * + * @param color The RGB color (must not be NULL) + * @return Perceived luminance in the range 0.0 to 1.0 + * + * @ingroup color + */ +GHOSTTY_API double ghostty_color_perceived_luminance(const GhosttyColorRgb* color); + +/** + * Calculate the WCAG contrast ratio between two RGB colors. + * + * The contrast ratio is symmetric and ranges from 1.0 for identical + * colors to 21.0 for black and white. + * + * @param a The first RGB color (must not be NULL) + * @param b The second RGB color (must not be NULL) + * @return WCAG contrast ratio in the range 1.0 to 21.0 + * + * @ingroup color + */ +GHOSTTY_API double ghostty_color_contrast(const GhosttyColorRgb* a, + const GhosttyColorRgb* b); + +/** + * Get Ghostty's X11 color name table. + * + * The returned pointer references static memory valid for the program + * lifetime and is never NULL. Entries are in rgb.txt order and are + * terminated by an entry with name == NULL. Aliases are separate entries, + * such as "medium spring green" and "MediumSpringGreen". Names are the + * exact supported spellings from rgb.txt; ghostty_color_parse_x11() also + * matches them case-insensitively. + * + * @code{.c} + * for (const GhosttyColorX11Entry* e = ghostty_color_x11_names(); + * e->name != NULL; + * e++) { + * // e->name and e->color are valid here. + * } + * @endcode + * + * @return Pointer to the first X11 color entry + * + * @ingroup color + */ +GHOSTTY_API const GhosttyColorX11Entry* ghostty_color_x11_names(void); + +/** + * Get the number of X11 color name entries. + * + * The returned count excludes the NULL terminator and is provided so + * bindings can preallocate storage before reading ghostty_color_x11_names(). + * + * @return Number of X11 color name entries + * + * @ingroup color + */ +GHOSTTY_API size_t ghostty_color_x11_name_count(void); + +#ifdef __cplusplus +} +#endif + +/** @} */ + +#endif /* GHOSTTY_VT_COLOR_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/color_scheme.h b/packages/terminal/vendor/include/ghostty/vt/color_scheme.h new file mode 100644 index 0000000000000000000000000000000000000000..d028ec080a9be577c425934da5457e018feb7f7c --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/color_scheme.h @@ -0,0 +1,73 @@ +/** + * @file color_scheme.h + * + * Color scheme report encoding - encode terminal color scheme reports into + * escape sequences. + */ + +#ifndef GHOSTTY_VT_COLOR_SCHEME_H +#define GHOSTTY_VT_COLOR_SCHEME_H + +/** @defgroup color_scheme Color Scheme Report Encoding + * + * Utilities for encoding color scheme reports into terminal escape + * sequences for color scheme reporting mode (mode 2031). + * + * ## Basic Usage + * + * Use ghostty_color_scheme_report_encode() to encode a color scheme report + * into a caller-provided buffer. If the buffer is too small, the function + * returns GHOSTTY_OUT_OF_SPACE and sets the required size in the output + * parameter. + * + * ## Example + * + * @snippet c-vt-color-scheme/src/main.c color-scheme-report-encode + * + * @{ + */ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Encode a color scheme report into an escape sequence. + * + * Encodes a color scheme report into the provided buffer. Dark color schemes + * emit ESC [ ? 997 ; 1 n, and light color schemes emit ESC [ ? 997 ; 2 n. + * The encoded bytes are identical to the terminal's internal CSI ? 996 n + * query response. + * + * Hosts should gate unsolicited sends on GHOSTTY_MODE_COLOR_SCHEME_REPORT + * (mode 2031) being set, which can be checked via the mode getters. + * + * If the buffer is too small, the function returns GHOSTTY_OUT_OF_SPACE + * and writes the required buffer size to @p out_written. The caller can + * then retry with a sufficiently sized buffer. + * + * @param scheme The color scheme to encode + * @param buf Output buffer to write the encoded sequence into (may be NULL) + * @param buf_len Size of the output buffer in bytes + * @param[out] out_written On success, the number of bytes written. On + * GHOSTTY_OUT_OF_SPACE, the required buffer size. + * @return GHOSTTY_SUCCESS on success, GHOSTTY_OUT_OF_SPACE if the buffer + * is too small + */ +GHOSTTY_API GhosttyResult ghostty_color_scheme_report_encode( + GhosttyColorScheme scheme, + char* buf, + size_t buf_len, + size_t* out_written); + +#ifdef __cplusplus +} +#endif + +/** @} */ + +#endif /* GHOSTTY_VT_COLOR_SCHEME_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/device.h b/packages/terminal/vendor/include/ghostty/vt/device.h new file mode 100644 index 0000000000000000000000000000000000000000..0a1567280b82410c67c15956808727b8f2b50ef9 --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/device.h @@ -0,0 +1,151 @@ +/** + * @file device.h + * + * Device types used by the terminal for device status and device attribute + * queries. + */ + +#ifndef GHOSTTY_VT_DEVICE_H +#define GHOSTTY_VT_DEVICE_H + +#include +#include + +/* DA1 conformance levels (Pp parameter). */ +#define GHOSTTY_DA_CONFORMANCE_VT100 1 +#define GHOSTTY_DA_CONFORMANCE_VT101 1 +#define GHOSTTY_DA_CONFORMANCE_VT102 6 +#define GHOSTTY_DA_CONFORMANCE_VT125 12 +#define GHOSTTY_DA_CONFORMANCE_VT131 7 +#define GHOSTTY_DA_CONFORMANCE_VT132 4 +#define GHOSTTY_DA_CONFORMANCE_VT220 62 +#define GHOSTTY_DA_CONFORMANCE_VT240 62 +#define GHOSTTY_DA_CONFORMANCE_VT320 63 +#define GHOSTTY_DA_CONFORMANCE_VT340 63 +#define GHOSTTY_DA_CONFORMANCE_VT420 64 +#define GHOSTTY_DA_CONFORMANCE_VT510 65 +#define GHOSTTY_DA_CONFORMANCE_VT520 65 +#define GHOSTTY_DA_CONFORMANCE_VT525 65 +#define GHOSTTY_DA_CONFORMANCE_LEVEL_2 62 +#define GHOSTTY_DA_CONFORMANCE_LEVEL_3 63 +#define GHOSTTY_DA_CONFORMANCE_LEVEL_4 64 +#define GHOSTTY_DA_CONFORMANCE_LEVEL_5 65 + +/* DA1 feature codes (Ps parameters). */ +#define GHOSTTY_DA_FEATURE_COLUMNS_132 1 +#define GHOSTTY_DA_FEATURE_PRINTER 2 +#define GHOSTTY_DA_FEATURE_REGIS 3 +#define GHOSTTY_DA_FEATURE_SIXEL 4 +#define GHOSTTY_DA_FEATURE_SELECTIVE_ERASE 6 +#define GHOSTTY_DA_FEATURE_USER_DEFINED_KEYS 8 +#define GHOSTTY_DA_FEATURE_NATIONAL_REPLACEMENT 9 +#define GHOSTTY_DA_FEATURE_TECHNICAL_CHARACTERS 15 +#define GHOSTTY_DA_FEATURE_LOCATOR 16 +#define GHOSTTY_DA_FEATURE_TERMINAL_STATE 17 +#define GHOSTTY_DA_FEATURE_WINDOWING 18 +#define GHOSTTY_DA_FEATURE_HORIZONTAL_SCROLLING 21 +#define GHOSTTY_DA_FEATURE_ANSI_COLOR 22 +#define GHOSTTY_DA_FEATURE_RECTANGULAR_EDITING 28 +#define GHOSTTY_DA_FEATURE_ANSI_TEXT_LOCATOR 29 +#define GHOSTTY_DA_FEATURE_CLIPBOARD 52 + +/* DA2 device type identifiers (Pp parameter). */ +#define GHOSTTY_DA_DEVICE_TYPE_VT100 0 +#define GHOSTTY_DA_DEVICE_TYPE_VT220 1 +#define GHOSTTY_DA_DEVICE_TYPE_VT240 2 +#define GHOSTTY_DA_DEVICE_TYPE_VT330 18 +#define GHOSTTY_DA_DEVICE_TYPE_VT340 19 +#define GHOSTTY_DA_DEVICE_TYPE_VT320 24 +#define GHOSTTY_DA_DEVICE_TYPE_VT382 32 +#define GHOSTTY_DA_DEVICE_TYPE_VT420 41 +#define GHOSTTY_DA_DEVICE_TYPE_VT510 61 +#define GHOSTTY_DA_DEVICE_TYPE_VT520 64 +#define GHOSTTY_DA_DEVICE_TYPE_VT525 65 + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Color scheme reported in response to a CSI ? 996 n query. + * + * @ingroup terminal + */ +typedef enum GHOSTTY_ENUM_TYPED { + GHOSTTY_COLOR_SCHEME_LIGHT = 0, + GHOSTTY_COLOR_SCHEME_DARK = 1, + GHOSTTY_COLOR_SCHEME_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyColorScheme; + +/** + * Primary device attributes (DA1) response data. + * + * Returned as part of GhosttyDeviceAttributes in response to a CSI c query. + * The conformance_level is the Pp parameter and features contains the Ps + * feature codes. + * + * @ingroup terminal + */ +typedef struct { + /** Conformance level (Pp parameter). E.g. 62 for VT220. */ + uint16_t conformance_level; + + /** DA1 feature codes. Only the first num_features entries are valid. */ + uint16_t features[64]; + + /** Number of valid entries in the features array. */ + size_t num_features; +} GhosttyDeviceAttributesPrimary; + +/** + * Secondary device attributes (DA2) response data. + * + * Returned as part of GhosttyDeviceAttributes in response to a CSI > c query. + * Response format: CSI > Pp ; Pv ; Pc c + * + * @ingroup terminal + */ +typedef struct { + /** Terminal type identifier (Pp). E.g. 1 for VT220. */ + uint16_t device_type; + + /** Firmware/patch version number (Pv). */ + uint16_t firmware_version; + + /** ROM cartridge registration number (Pc). Always 0 for emulators. */ + uint16_t rom_cartridge; +} GhosttyDeviceAttributesSecondary; + +/** + * Tertiary device attributes (DA3) response data. + * + * Returned as part of GhosttyDeviceAttributes in response to a CSI = c query. + * Response format: DCS ! | D...D ST (DECRPTUI). + * + * @ingroup terminal + */ +typedef struct { + /** Unit ID encoded as 8 uppercase hex digits in the response. */ + uint32_t unit_id; +} GhosttyDeviceAttributesTertiary; + +/** + * Device attributes response data for all three DA levels. + * + * Filled by the device_attributes callback in response to CSI c, + * CSI > c, or CSI = c queries. The terminal uses whichever sub-struct + * matches the request type. + * + * @ingroup terminal + */ +typedef struct { + GhosttyDeviceAttributesPrimary primary; + GhosttyDeviceAttributesSecondary secondary; + GhosttyDeviceAttributesTertiary tertiary; +} GhosttyDeviceAttributes; + +#ifdef __cplusplus +} +#endif + +#endif /* GHOSTTY_VT_DEVICE_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/focus.h b/packages/terminal/vendor/include/ghostty/vt/focus.h new file mode 100644 index 0000000000000000000000000000000000000000..b9940f7924753b4f02437da261a2dbcf29972b59 --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/focus.h @@ -0,0 +1,76 @@ +/** + * @file focus.h + * + * Focus encoding - encode focus in/out events into terminal escape sequences. + */ + +#ifndef GHOSTTY_VT_FOCUS_H +#define GHOSTTY_VT_FOCUS_H + +/** @defgroup focus Focus Encoding + * + * Utilities for encoding focus gained/lost events into terminal escape + * sequences (CSI I / CSI O) for focus reporting mode (mode 1004). + * + * ## Basic Usage + * + * Use ghostty_focus_encode() to encode a focus event into a caller-provided + * buffer. If the buffer is too small, the function returns + * GHOSTTY_OUT_OF_SPACE and sets the required size in the output parameter. + * + * ## Example + * + * @snippet c-vt-encode-focus/src/main.c focus-encode + * + * @{ + */ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Focus event types for focus reporting mode (mode 1004). + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Terminal window gained focus */ + GHOSTTY_FOCUS_GAINED = 0, + /** Terminal window lost focus */ + GHOSTTY_FOCUS_LOST = 1, + GHOSTTY_FOCUS_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyFocusEvent; + +/** + * Encode a focus event into a terminal escape sequence. + * + * Encodes a focus gained (CSI I) or focus lost (CSI O) report into the + * provided buffer. + * + * If the buffer is too small, the function returns GHOSTTY_OUT_OF_SPACE + * and writes the required buffer size to @p out_written. The caller can + * then retry with a sufficiently sized buffer. + * + * @param event The focus event to encode + * @param buf Output buffer to write the encoded sequence into (may be NULL) + * @param buf_len Size of the output buffer in bytes + * @param[out] out_written On success, the number of bytes written. On + * GHOSTTY_OUT_OF_SPACE, the required buffer size. + * @return GHOSTTY_SUCCESS on success, GHOSTTY_OUT_OF_SPACE if the buffer + * is too small + */ +GHOSTTY_API GhosttyResult ghostty_focus_encode( + GhosttyFocusEvent event, + char* buf, + size_t buf_len, + size_t* out_written); + +#ifdef __cplusplus +} +#endif + +/** @} */ + +#endif /* GHOSTTY_VT_FOCUS_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/formatter.h b/packages/terminal/vendor/include/ghostty/vt/formatter.h new file mode 100644 index 0000000000000000000000000000000000000000..5cdcd11a3a7aed8aa73f9c2104ba10df0391a503 --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/formatter.h @@ -0,0 +1,207 @@ +/** + * @file formatter.h + * + * Format terminal content as plain text, VT sequences, or HTML. + */ + +#ifndef GHOSTTY_VT_FORMATTER_H +#define GHOSTTY_VT_FORMATTER_H + +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** @defgroup formatter Formatter + * + * Format terminal content as plain text, VT sequences, or HTML. + * + * A formatter captures a reference to a terminal and formatting options. + * It can be used repeatedly to produce output that reflects the current + * terminal state at the time of each format call. + * + * The terminal must outlive the formatter. + * + * @{ + */ + +/** + * Extra screen state to include in styled output. + * + * @ingroup formatter + */ +typedef struct { + /** Size of this struct in bytes. Must be set to sizeof(GhosttyFormatterScreenExtra). */ + size_t size; + + /** Emit cursor position using CUP (CSI H). */ + bool cursor; + + /** Emit current SGR style state based on the cursor's active style_id. */ + bool style; + + /** Emit current hyperlink state using OSC 8 sequences. */ + bool hyperlink; + + /** Emit character protection mode using DECSCA. */ + bool protection; + + /** Emit Kitty keyboard protocol state using CSI > u and CSI = sequences. */ + bool kitty_keyboard; + + /** Emit character set designations and invocations. */ + bool charsets; +} GhosttyFormatterScreenExtra; + +/** + * Extra terminal state to include in styled output. + * + * @ingroup formatter + */ +typedef struct { + /** Size of this struct in bytes. Must be set to sizeof(GhosttyFormatterTerminalExtra). */ + size_t size; + + /** Emit the palette using OSC 4 sequences. */ + bool palette; + + /** Emit terminal modes that differ from their defaults using CSI h/l. */ + bool modes; + + /** Emit scrolling region state using DECSTBM and DECSLRM sequences. */ + bool scrolling_region; + + /** Emit tabstop positions by clearing all tabs and setting each one. */ + bool tabstops; + + /** Emit the present working directory using OSC 7. */ + bool pwd; + + /** Emit keyboard modes such as ModifyOtherKeys. */ + bool keyboard; + + /** Screen-level extras. */ + GhosttyFormatterScreenExtra screen; +} GhosttyFormatterTerminalExtra; + +/** + * Options for creating a terminal formatter. + * + * @ingroup formatter + */ +typedef struct { + /** Size of this struct in bytes. Must be set to sizeof(GhosttyFormatterTerminalOptions). */ + size_t size; + + /** Output format to emit. */ + GhosttyFormatterFormat emit; + + /** Whether to unwrap soft-wrapped lines. */ + bool unwrap; + + /** Whether to trim trailing whitespace on non-blank lines. */ + bool trim; + + /** Extra terminal state to include in styled output. */ + GhosttyFormatterTerminalExtra extra; + + /** Optional selection to restrict output to a range. + * If NULL, the entire screen is formatted. */ + const GhosttySelection *selection; +} GhosttyFormatterTerminalOptions; + +/** + * Create a formatter for a terminal's active screen. + * + * The terminal must outlive the formatter. The formatter stores a borrowed + * reference to the terminal and reads its current state on each format call. + * + * @param allocator Pointer to allocator, or NULL to use the default allocator + * @param formatter Pointer to store the created formatter handle + * @param terminal The terminal to format (must not be NULL) + * @param options Formatting options + * @return GHOSTTY_SUCCESS on success, or an error code on failure + * + * @ingroup formatter + */ +GHOSTTY_API GhosttyResult ghostty_formatter_terminal_new( + const GhosttyAllocator* allocator, + GhosttyFormatter* formatter, + GhosttyTerminal terminal, + GhosttyFormatterTerminalOptions options); + +/** + * Run the formatter and produce output into the caller-provided buffer. + * + * Each call formats the current terminal state. Pass NULL for buf to + * query the required buffer size without writing any output; in that case + * out_written receives the required size and the return value is + * GHOSTTY_OUT_OF_SPACE. + * + * If the buffer is too small, returns GHOSTTY_OUT_OF_SPACE and sets + * out_written to the required size. The caller can then retry with a + * larger buffer. + * + * @param formatter The formatter handle (must not be NULL) + * @param buf Pointer to the output buffer, or NULL to query size + * @param buf_len Length of the output buffer in bytes + * @param out_written Pointer to receive the number of bytes written, + * or the required size on failure + * @return GHOSTTY_SUCCESS on success, or an error code on failure + * + * @ingroup formatter + */ +GHOSTTY_API GhosttyResult ghostty_formatter_format_buf(GhosttyFormatter formatter, + uint8_t* buf, + size_t buf_len, + size_t* out_written); + +/** + * Run the formatter and return an allocated buffer with the output. + * + * Each call formats the current terminal state. The buffer is allocated + * using the provided allocator (or the default allocator if NULL). + * The caller is responsible for freeing the returned buffer with + * ghostty_free(), passing the same allocator (or NULL for the default) + * that was used for the allocation. + * + * @param formatter The formatter handle (must not be NULL) + * @param allocator Pointer to allocator, or NULL to use the default allocator + * @param out_ptr Pointer to receive the allocated buffer + * @param out_len Pointer to receive the length of the output in bytes + * @return GHOSTTY_SUCCESS on success, GHOSTTY_OUT_OF_MEMORY on allocation + * failure + * + * @ingroup formatter + */ +GHOSTTY_API GhosttyResult ghostty_formatter_format_alloc(GhosttyFormatter formatter, + const GhosttyAllocator* allocator, + uint8_t** out_ptr, + size_t* out_len); + +/** + * Free a formatter instance. + * + * Releases all resources associated with the formatter. After this call, + * the formatter handle becomes invalid. + * + * @param formatter The formatter handle to free (may be NULL) + * + * @ingroup formatter + */ +GHOSTTY_API void ghostty_formatter_free(GhosttyFormatter formatter); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* GHOSTTY_VT_FORMATTER_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/grid_ref.h b/packages/terminal/vendor/include/ghostty/vt/grid_ref.h new file mode 100644 index 0000000000000000000000000000000000000000..c43791dc238cf09b8c8488ef10c044e67eb44440 --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/grid_ref.h @@ -0,0 +1,212 @@ +/** + * @file grid_ref.h + * + * Terminal grid reference type for referencing a resolved position in the + * terminal grid. + */ + +#ifndef GHOSTTY_VT_GRID_REF_H +#define GHOSTTY_VT_GRID_REF_H + +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** @defgroup grid_ref Grid Reference + * + * A grid reference is a reference to a specific cell position in the + * terminal. Obtain a grid reference from `ghostty_terminal_grid_ref` + * for untracked or `ghostty_terminal_grid_ref_track` for tracked. Untracked + * vs tracked is explained next. + * + * Important: The grid reference APIs are not meant to be used as the core of a render + * loop. They are not built to sustain the framerates needed for rendering large + * screens. Use the render state API for that. + * + * ## Untracked vs Tracked References + * + * ### Untracked Reference + * + * An untracked grid reference is a value type that snapshots a specific + * cell. It is only valid until the next update to the terminal instance. + * There is no guarantee that it will remain valid after any operation, + * even if a seemingly unrelated part of the grid is changed. These are meant + * to be read and have their values cached immediately after obtaining it. + * + * An untracked grid reference has a performance cost in its initial lookup, + * but doesn't affect the ongoing performance of the terminal in any way, + * since it is a one-time snapshot. + * + * ### Tracked Reference + * + * A tracked grid reference follows its cell across normal screen operations. + * For example scrolling, scrollback pruning, resize/reflow, and other + * terminal mutations update the tracked reference automatically. + * + * A tracked reference can still lose its original semantic location. This can + * happen when the underlying grid is reset, pruned, or otherwise discarded in a + * way that cannot be mapped to a meaningful new cell. In that state, + * ghostty_tracked_grid_ref_has_value() returns false and + * ghostty_tracked_grid_ref_snapshot() / ghostty_tracked_grid_ref_point() return + * GHOSTTY_NO_VALUE. The handle remains valid, and callers may move it to a new + * point with ghostty_tracked_grid_ref_set(). + * + * To read cell data from a tracked reference, first snapshot it with + * ghostty_tracked_grid_ref_snapshot(). The returned `GhosttyGridRef` is again + * an untracked reference and follows the same short lifetime rules as any other + * untracked grid reference. + * + * A tracked reference belongs to the terminal screen/page-list that was active + * when it was created or last set. Converting it to a point uses that owning + * screen/page-list, even if the terminal has since switched between primary and + * alternate screens. Calling ghostty_tracked_grid_ref_set() resolves the new + * point against the terminal's currently active screen/page-list and may move + * the tracked reference between screens. + * + * Tracked references are owned by the caller and must be freed with + * ghostty_tracked_grid_ref_free(). If the terminal that created a tracked + * reference is freed first, the handle remains valid only for tracked-grid-ref + * APIs: it reports no value and can still be freed. + * + * Each tracked reference adds bookkeeping to terminal mutations. Use them + * sparingly for long-lived anchors such as selections, search state, marks, + * or application-side bookmarks. + * + * ## Lifetime + * + * An untracked reference is a snapshot. It doesn't need to be freed. + * The safety of accessing the value is documented explicitly above: it + * is only safe to access any data until the next terminal mutating + * operation (including free). + * + * A tracked reference is allocated and must be freed when it is no + * longer needed. A tracked reference may outlive the terminal that created it; + * after terminal free, it reports no value and can still be freed. + * + * ## Examples + * + * @snippet c-vt-grid-traverse/src/main.c grid-ref-traverse + * @snippet c-vt-grid-ref-tracked/src/main.c grid-ref-tracked + * + * @{ + */ + +/** + * A resolved reference to a terminal cell position. + * + * This is a sized struct. Use GHOSTTY_INIT_SIZED() to initialize it. + * + * @ingroup grid_ref + */ +typedef struct { + size_t size; + void *node; + uint16_t x; + uint16_t y; +} GhosttyGridRef; + +/** + * Get the cell from a grid reference. + * + * @param ref Pointer to the grid reference + * @param[out] out_cell On success, set to the cell at the ref's position (may be NULL) + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if the ref's + * node is NULL + * + * @ingroup grid_ref + */ +GHOSTTY_API GhosttyResult ghostty_grid_ref_cell(const GhosttyGridRef *ref, + GhosttyCell *out_cell); + +/** + * Get the row from a grid reference. + * + * @param ref Pointer to the grid reference + * @param[out] out_row On success, set to the row at the ref's position (may be NULL) + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if the ref's + * node is NULL + * + * @ingroup grid_ref + */ +GHOSTTY_API GhosttyResult ghostty_grid_ref_row(const GhosttyGridRef *ref, + GhosttyRow *out_row); + +/** + * Get the grapheme cluster codepoints for the cell at the grid reference's + * position. + * + * Writes the full grapheme cluster (the cell's primary codepoint followed by + * any combining codepoints) into the provided buffer. If the cell has no text, + * out_len is set to 0 and GHOSTTY_SUCCESS is returned. + * + * If the buffer is too small (or NULL), the function returns + * GHOSTTY_OUT_OF_SPACE and writes the required number of codepoints to + * out_len. The caller can then retry with a sufficiently sized buffer. + * + * @param ref Pointer to the grid reference + * @param buf Output buffer of uint32_t codepoints (may be NULL) + * @param buf_len Number of uint32_t elements in the buffer + * @param[out] out_len On success, the number of codepoints written. On + * GHOSTTY_OUT_OF_SPACE, the required buffer size in codepoints. + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if the ref's + * node is NULL, GHOSTTY_OUT_OF_SPACE if the buffer is too small + * + * @ingroup grid_ref + */ +GHOSTTY_API GhosttyResult ghostty_grid_ref_graphemes(const GhosttyGridRef *ref, + uint32_t *buf, + size_t buf_len, + size_t *out_len); + +/** + * Get the hyperlink URI for the cell at the grid reference's position. + * + * Writes the URI bytes into the provided buffer. If the cell has no + * hyperlink, out_len is set to 0 and GHOSTTY_SUCCESS is returned. + * + * If the buffer is too small (or NULL), the function returns + * GHOSTTY_OUT_OF_SPACE and writes the required number of bytes to + * out_len. The caller can then retry with a sufficiently sized buffer. + * + * @param ref Pointer to the grid reference + * @param buf Output buffer for the URI bytes (may be NULL) + * @param buf_len Size of the output buffer in bytes + * @param[out] out_len On success, the number of bytes written. On + * GHOSTTY_OUT_OF_SPACE, the required buffer size in bytes. + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if the ref's + * node is NULL, GHOSTTY_OUT_OF_SPACE if the buffer is too small + * + * @ingroup grid_ref + */ +GHOSTTY_API GhosttyResult ghostty_grid_ref_hyperlink_uri( + const GhosttyGridRef *ref, + uint8_t *buf, + size_t buf_len, + size_t *out_len); + +/** + * Get the style of the cell at the grid reference's position. + * + * @param ref Pointer to the grid reference + * @param[out] out_style On success, set to the cell's style (may be NULL) + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if the ref's + * node is NULL + * + * @ingroup grid_ref + */ +GHOSTTY_API GhosttyResult ghostty_grid_ref_style(const GhosttyGridRef *ref, + GhosttyStyle *out_style); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* GHOSTTY_VT_GRID_REF_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/grid_ref_tracked.h b/packages/terminal/vendor/include/ghostty/vt/grid_ref_tracked.h new file mode 100644 index 0000000000000000000000000000000000000000..b56aefacdb6bc8fb3e8c0764f76afb1890dced6c --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/grid_ref_tracked.h @@ -0,0 +1,139 @@ +/** + * @file grid_ref_tracked.h + * + * Tracked terminal grid references. + */ + +#ifndef GHOSTTY_VT_GRID_REF_TRACKED_H +#define GHOSTTY_VT_GRID_REF_TRACKED_H + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Tracked grid references are owned grid references that move with the + * terminal. See @ref grid_ref for the full overview of tracked and untracked + * grid reference behavior. + * + * @ingroup grid_ref + */ + +/** + * Free a tracked grid reference. + * + * Passing NULL is allowed and has no effect. A tracked reference may be freed + * after the terminal that created it is freed. + * + * @param ref Tracked grid reference to free. + * + * @ingroup grid_ref + */ +GHOSTTY_API void ghostty_tracked_grid_ref_free(GhosttyTrackedGridRef ref); + +/** + * Return whether a tracked grid reference currently has a meaningful value. + * + * If the terminal that created the tracked reference has been freed, this + * returns false. + * + * @param ref Tracked grid reference. + * @return true if the reference currently has a meaningful value. + * + * @ingroup grid_ref + */ +GHOSTTY_API bool ghostty_tracked_grid_ref_has_value( + GhosttyTrackedGridRef ref); + +/** + * Convert a tracked grid reference to a point in the requested coordinate + * space. + * + * This is the tracked equivalent of ghostty_terminal_point_from_grid_ref(). + * Unlike snapshotting, this does not expose an intermediate untracked + * GhosttyGridRef. + * + * A tracked reference is resolved against the terminal screen/page-list that + * currently owns the reference. If the terminal has switched between primary + * and alternate screens since the reference was created or last set, this may + * be different from the terminal's currently active screen. + * + * If the tracked reference no longer has a meaningful value, this returns + * GHOSTTY_NO_VALUE. GHOSTTY_NO_VALUE is also returned when the reference cannot + * be represented in the requested coordinate space, including after the + * terminal that created the tracked reference has been freed. + * + * @param ref Tracked grid reference. + * @param tag Coordinate space to convert into. + * @param[out] out_point On success, receives the coordinate. May be NULL. + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if ref is invalid, + * or GHOSTTY_NO_VALUE if there is no representable value. + * + * @ingroup grid_ref + */ +GHOSTTY_API GhosttyResult ghostty_tracked_grid_ref_point( + GhosttyTrackedGridRef ref, + GhosttyPointTag tag, + GhosttyPointCoordinate *out_point); + +/** + * Move an existing tracked grid reference to a new terminal point. + * + * On success, the tracked reference begins tracking the new point and any prior + * "no value" state is cleared. On GHOSTTY_OUT_OF_MEMORY, the original tracked + * reference is left unchanged. + * + * The terminal must be the same terminal that created the tracked reference. + * The point is resolved against the terminal screen/page-list that is active at + * the time this function is called. If the terminal has switched between + * primary and alternate screens, this may move the tracked reference from one + * screen/page-list to the other. + * + * @param ref Tracked grid reference. + * @param terminal Terminal instance that owns the reference. + * @param point New point to track. + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if ref, terminal, + * or point is invalid, or GHOSTTY_OUT_OF_MEMORY if allocation fails. + * + * @ingroup grid_ref + */ +GHOSTTY_API GhosttyResult ghostty_tracked_grid_ref_set( + GhosttyTrackedGridRef ref, + GhosttyTerminal terminal, + GhosttyPoint point); + +/** + * Snapshot a tracked grid reference into a regular GhosttyGridRef. + * + * The returned GhosttyGridRef is an untracked snapshot and has the same + * lifetime rules as ghostty_terminal_grid_ref(): it is only valid until the + * next terminal update. Snapshot immediately before calling + * ghostty_grid_ref_cell(), ghostty_grid_ref_row(), + * ghostty_grid_ref_graphemes(), ghostty_grid_ref_hyperlink_uri(), or + * ghostty_grid_ref_style(). + * + * If the tracked reference no longer has a meaningful value, this returns + * GHOSTTY_NO_VALUE. This includes references whose owning terminal has been + * freed. + * + * @param ref Tracked grid reference. + * @param[out] out_ref On success, receives an untracked snapshot. May be NULL. + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if ref is invalid, + * or GHOSTTY_NO_VALUE if the tracked location was discarded. + * + * @ingroup grid_ref + */ +GHOSTTY_API GhosttyResult ghostty_tracked_grid_ref_snapshot( + GhosttyTrackedGridRef ref, + GhosttyGridRef *out_ref); + +#ifdef __cplusplus +} +#endif + +#endif /* GHOSTTY_VT_GRID_REF_TRACKED_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/key.h b/packages/terminal/vendor/include/ghostty/vt/key.h new file mode 100644 index 0000000000000000000000000000000000000000..61b9547535758f6edd068bb467b15a71662b0c8d --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/key.h @@ -0,0 +1,73 @@ +/** + * @file key.h + * + * Key encoding module - encode key events into terminal escape sequences. + */ + +#ifndef GHOSTTY_VT_KEY_H +#define GHOSTTY_VT_KEY_H + +/** @defgroup key Key Encoding + * + * Utilities for encoding key events into terminal escape sequences, + * supporting both legacy encoding as well as Kitty Keyboard Protocol. + * + * ## Basic Usage + * + * 1. Create an encoder instance with ghostty_key_encoder_new() + * 2. Configure encoder options with ghostty_key_encoder_setopt() + * or ghostty_key_encoder_setopt_from_terminal() if you have a + * GhosttyTerminal. + * 3. For each key event: + * - Create a key event with ghostty_key_event_new() + * - Set event properties (action, key, modifiers, etc.) + * - Encode with ghostty_key_encoder_encode() + * - Free the event with ghostty_key_event_free() + * - Note: You can also reuse the same key event multiple times by + * changing its properties. + * 4. Free the encoder with ghostty_key_encoder_free() when done + * + * For a complete working example, see example/c-vt-encode-key in the + * repository. + * + * ## Example + * + * @snippet c-vt-encode-key/src/main.c key-encode + * + * ## Example: Encoding with Terminal State + * + * When you have a GhosttyTerminal, you can sync its modes (cursor key + * application, Kitty flags, etc.) into the encoder automatically: + * + * @code{.c} + * // Create a terminal and feed it some VT data that changes modes + * GhosttyTerminal terminal; + * ghostty_terminal_new(NULL, &terminal, + * (GhosttyTerminalOptions){.cols = 80, .rows = 24, .max_scrollback = 0}); + * + * // Application might write data that enables Kitty keyboard protocol, etc. + * ghostty_terminal_vt_write(terminal, vt_data, vt_len); + * + * // Create an encoder and sync its options from the terminal + * GhosttyKeyEncoder encoder; + * ghostty_key_encoder_new(NULL, &encoder); + * ghostty_key_encoder_setopt_from_terminal(encoder, terminal); + * + * // Encode a key event using the terminal-derived options + * char buf[128]; + * size_t written = 0; + * ghostty_key_encoder_encode(encoder, event, buf, sizeof(buf), &written); + * + * ghostty_key_encoder_free(encoder); + * ghostty_terminal_free(terminal); + * @endcode + * + * @{ + */ + +#include +#include + +/** @} */ + +#endif /* GHOSTTY_VT_KEY_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/key/encoder.h b/packages/terminal/vendor/include/ghostty/vt/key/encoder.h new file mode 100644 index 0000000000000000000000000000000000000000..3aeec6597b11266bbbb38ea552bede5edb984715 --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/key/encoder.h @@ -0,0 +1,255 @@ +/** + * @file encoder.h + * + * Key event encoding to terminal escape sequences. + */ + +#ifndef GHOSTTY_VT_KEY_ENCODER_H +#define GHOSTTY_VT_KEY_ENCODER_H + +#include +#include +#include +#include +#include +#include + +/** + * Opaque handle to a key encoder instance. + * + * This handle represents a key encoder that converts key events into terminal + * escape sequences. + * + * @ingroup key + */ +typedef struct GhosttyKeyEncoderImpl *GhosttyKeyEncoder; + +/** + * Kitty keyboard protocol flags. + * + * Bitflags representing the various modes of the Kitty keyboard protocol. + * These can be combined using bitwise OR operations. Valid values all + * start with `GHOSTTY_KITTY_KEY_`. + * + * @ingroup key + */ +typedef uint8_t GhosttyKittyKeyFlags; + +/** Kitty keyboard protocol disabled (all flags off) */ +#define GHOSTTY_KITTY_KEY_DISABLED 0 + +/** Disambiguate escape codes */ +#define GHOSTTY_KITTY_KEY_DISAMBIGUATE (1 << 0) + +/** Report key press and release events */ +#define GHOSTTY_KITTY_KEY_REPORT_EVENTS (1 << 1) + +/** Report alternate key codes */ +#define GHOSTTY_KITTY_KEY_REPORT_ALTERNATES (1 << 2) + +/** Report all key events including those normally handled by the terminal */ +#define GHOSTTY_KITTY_KEY_REPORT_ALL (1 << 3) + +/** Report associated text with key events */ +#define GHOSTTY_KITTY_KEY_REPORT_ASSOCIATED (1 << 4) + +/** All Kitty keyboard protocol flags enabled */ +#define GHOSTTY_KITTY_KEY_ALL (GHOSTTY_KITTY_KEY_DISAMBIGUATE | GHOSTTY_KITTY_KEY_REPORT_EVENTS | GHOSTTY_KITTY_KEY_REPORT_ALTERNATES | GHOSTTY_KITTY_KEY_REPORT_ALL | GHOSTTY_KITTY_KEY_REPORT_ASSOCIATED) + +/** + * macOS option key behavior. + * + * Determines whether the "option" key on macOS is treated as "alt" or not. + * See the Ghostty `macos-option-as-alt` configuration option for more details. + * + * @ingroup key + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Option key is not treated as alt */ + GHOSTTY_OPTION_AS_ALT_FALSE = 0, + /** Option key is treated as alt */ + GHOSTTY_OPTION_AS_ALT_TRUE = 1, + /** Only left option key is treated as alt */ + GHOSTTY_OPTION_AS_ALT_LEFT = 2, + /** Only right option key is treated as alt */ + GHOSTTY_OPTION_AS_ALT_RIGHT = 3, + GHOSTTY_OPTION_AS_ALT_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyOptionAsAlt; + +/** + * Key encoder option identifiers. + * + * These values are used with ghostty_key_encoder_setopt() to configure + * the behavior of the key encoder. + * + * @ingroup key + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Terminal DEC mode 1: cursor key application mode (value: bool) */ + GHOSTTY_KEY_ENCODER_OPT_CURSOR_KEY_APPLICATION = 0, + + /** Terminal DEC mode 66: keypad key application mode (value: bool) */ + GHOSTTY_KEY_ENCODER_OPT_KEYPAD_KEY_APPLICATION = 1, + + /** Terminal DEC mode 1035: ignore keypad with numlock (value: bool) */ + GHOSTTY_KEY_ENCODER_OPT_IGNORE_KEYPAD_WITH_NUMLOCK = 2, + + /** Terminal DEC mode 1036: alt sends escape prefix (value: bool) */ + GHOSTTY_KEY_ENCODER_OPT_ALT_ESC_PREFIX = 3, + + /** xterm modifyOtherKeys mode 2 (value: bool) */ + GHOSTTY_KEY_ENCODER_OPT_MODIFY_OTHER_KEYS_STATE_2 = 4, + + /** Kitty keyboard protocol flags (value: GhosttyKittyKeyFlags bitmask) */ + GHOSTTY_KEY_ENCODER_OPT_KITTY_FLAGS = 5, + + /** macOS option-as-alt setting (value: GhosttyOptionAsAlt) */ + GHOSTTY_KEY_ENCODER_OPT_MACOS_OPTION_AS_ALT = 6, + + /** Backarrow key mode (value: bool) + * See https://vt100.net/dec/ek-vt3xx-tp-002.pdf page 170 + * If `false` (the default), `backspace` emits 0x7f + * If `true`, `backspace` emits 0x08 + */ + GHOSTTY_KEY_ENCODER_OPT_BACKARROW_KEY_MODE = 7, + + GHOSTTY_KEY_ENCODER_OPT_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyKeyEncoderOption; + +/** + * Create a new key encoder instance. + * + * Creates a new key encoder with default options. The encoder can be configured + * using ghostty_key_encoder_setopt() and must be freed using + * ghostty_key_encoder_free() when no longer needed. + * + * @param allocator Pointer to the allocator to use for memory management, or NULL to use the default allocator + * @param encoder Pointer to store the created encoder handle + * @return GHOSTTY_SUCCESS on success, or an error code on failure + * + * @ingroup key + */ +GHOSTTY_API GhosttyResult ghostty_key_encoder_new(const GhosttyAllocator *allocator, GhosttyKeyEncoder *encoder); + +/** + * Free a key encoder instance. + * + * Releases all resources associated with the key encoder. After this call, + * the encoder handle becomes invalid and must not be used. + * + * @param encoder The encoder handle to free (may be NULL) + * + * @ingroup key + */ +GHOSTTY_API void ghostty_key_encoder_free(GhosttyKeyEncoder encoder); + +/** + * Set an option on the key encoder. + * + * Configures the behavior of the key encoder. Options control various aspects + * of encoding such as terminal modes (cursor key application mode, keypad mode), + * protocol selection (Kitty keyboard protocol flags), and platform-specific + * behaviors (macOS option-as-alt). + * + * If you are using a terminal instance, you can set the key encoding + * options based on the active terminal state (e.g. legacy vs Kitty mode + * and associated flags) with ghostty_key_encoder_setopt_from_terminal(). + * + * A null pointer value does nothing. It does not reset the value to the + * default. The setopt call will do nothing. + * + * @param encoder The encoder handle, must not be NULL + * @param option The option to set + * @param value Pointer to the value to set (type depends on the option) + * + * @ingroup key + */ +GHOSTTY_API void ghostty_key_encoder_setopt(GhosttyKeyEncoder encoder, GhosttyKeyEncoderOption option, const void *value); + +/** + * Set encoder options from a terminal's current state. + * + * Reads the terminal's current modes and flags and applies them to the + * encoder's options. This sets cursor key application mode, keypad mode, + * alt escape prefix, modifyOtherKeys state, and Kitty keyboard protocol + * flags from the terminal state. + * + * Note that the `macos_option_as_alt` option cannot be determined from + * terminal state and is reset to `GHOSTTY_OPTION_AS_ALT_FALSE` by this + * call. Use ghostty_key_encoder_setopt() to set it afterward if needed. + * + * @param encoder The encoder handle, must not be NULL + * @param terminal The terminal handle, must not be NULL + * + * @ingroup key + */ +GHOSTTY_API void ghostty_key_encoder_setopt_from_terminal(GhosttyKeyEncoder encoder, GhosttyTerminal terminal); + +/** + * Encode a key event into a terminal escape sequence. + * + * Converts a key event into the appropriate terminal escape sequence based on + * the encoder's current options. The sequence is written to the provided buffer. + * + * Not all key events produce output. For example, unmodified modifier keys + * typically don't generate escape sequences. Check the out_len parameter to + * determine if any data was written. + * + * If the output buffer is too small, this function returns GHOSTTY_OUT_OF_SPACE + * and out_len will contain the required buffer size. The caller can then + * allocate a larger buffer and call the function again. + * + * @param encoder The encoder handle, must not be NULL + * @param event The key event to encode, must not be NULL + * @param out_buf Buffer to write the encoded sequence to + * @param out_buf_size Size of the output buffer in bytes + * @param out_len Pointer to store the number of bytes written (may be NULL) + * @return GHOSTTY_SUCCESS on success, GHOSTTY_OUT_OF_SPACE if buffer too small, or other error code + * + * ## Example: Calculate required buffer size + * + * @code{.c} + * // Query the required size with a NULL buffer (always returns OUT_OF_SPACE) + * size_t required = 0; + * GhosttyResult result = ghostty_key_encoder_encode(encoder, event, NULL, 0, &required); + * assert(result == GHOSTTY_OUT_OF_SPACE); + * + * // Allocate buffer of required size + * char *buf = malloc(required); + * + * // Encode with properly sized buffer + * size_t written = 0; + * result = ghostty_key_encoder_encode(encoder, event, buf, required, &written); + * assert(result == GHOSTTY_SUCCESS); + * + * // Use the encoded sequence... + * + * free(buf); + * @endcode + * + * ## Example: Direct encoding with static buffer + * + * @code{.c} + * // Most escape sequences are short, so a static buffer often suffices + * char buf[128]; + * size_t written = 0; + * GhosttyResult result = ghostty_key_encoder_encode(encoder, event, buf, sizeof(buf), &written); + * + * if (result == GHOSTTY_SUCCESS) { + * // Write the encoded sequence to the terminal + * write(pty_fd, buf, written); + * } else if (result == GHOSTTY_OUT_OF_SPACE) { + * // Buffer too small, written contains required size + * char *dynamic_buf = malloc(written); + * result = ghostty_key_encoder_encode(encoder, event, dynamic_buf, written, &written); + * assert(result == GHOSTTY_SUCCESS); + * write(pty_fd, dynamic_buf, written); + * free(dynamic_buf); + * } + * @endcode + * + * @ingroup key + */ +GHOSTTY_API GhosttyResult ghostty_key_encoder_encode(GhosttyKeyEncoder encoder, GhosttyKeyEvent event, char *out_buf, size_t out_buf_size, size_t *out_len); + +#endif /* GHOSTTY_VT_KEY_ENCODER_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/key/event.h b/packages/terminal/vendor/include/ghostty/vt/key/event.h new file mode 100644 index 0000000000000000000000000000000000000000..eba433c6a558ac336f584c1e06b7851e45697805 --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/key/event.h @@ -0,0 +1,482 @@ +/** + * @file event.h + * + * Key event representation and manipulation. + */ + +#ifndef GHOSTTY_VT_KEY_EVENT_H +#define GHOSTTY_VT_KEY_EVENT_H + +#include +#include +#include +#include +#include + +/** + * Opaque handle to a key event. + * + * This handle represents a keyboard input event containing information about + * the physical key pressed, modifiers, and generated text. + * + * @ingroup key + */ +typedef struct GhosttyKeyEventImpl *GhosttyKeyEvent; + +/** + * Keyboard input event types. + * + * @ingroup key + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Key was released */ + GHOSTTY_KEY_ACTION_RELEASE = 0, + /** Key was pressed */ + GHOSTTY_KEY_ACTION_PRESS = 1, + /** Key is being repeated (held down) */ + GHOSTTY_KEY_ACTION_REPEAT = 2, + GHOSTTY_KEY_ACTION_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyKeyAction; + +/** + * Keyboard modifier keys bitmask. + * + * A bitmask representing all keyboard modifiers. This tracks which modifier keys + * are pressed and, where supported by the platform, which side (left or right) + * of each modifier is active. + * + * Use the GHOSTTY_MODS_* constants to test and set individual modifiers. + * + * Modifier side bits are only meaningful when the corresponding modifier bit is set. + * Not all platforms support distinguishing between left and right modifier + * keys and Ghostty is built to expect that some platforms may not provide this + * information. + * + * @ingroup key + */ +typedef uint16_t GhosttyMods; + +/** Shift key is pressed */ +#define GHOSTTY_MODS_SHIFT (1 << 0) +/** Control key is pressed */ +#define GHOSTTY_MODS_CTRL (1 << 1) +/** Alt/Option key is pressed */ +#define GHOSTTY_MODS_ALT (1 << 2) +/** Super/Command/Windows key is pressed */ +#define GHOSTTY_MODS_SUPER (1 << 3) +/** Caps Lock is active */ +#define GHOSTTY_MODS_CAPS_LOCK (1 << 4) +/** Num Lock is active */ +#define GHOSTTY_MODS_NUM_LOCK (1 << 5) + +/** + * Right shift is pressed (0 = left, 1 = right). + * Only meaningful when GHOSTTY_MODS_SHIFT is set. + */ +#define GHOSTTY_MODS_SHIFT_SIDE (1 << 6) +/** + * Right ctrl is pressed (0 = left, 1 = right). + * Only meaningful when GHOSTTY_MODS_CTRL is set. + */ +#define GHOSTTY_MODS_CTRL_SIDE (1 << 7) +/** + * Right alt is pressed (0 = left, 1 = right). + * Only meaningful when GHOSTTY_MODS_ALT is set. + */ +#define GHOSTTY_MODS_ALT_SIDE (1 << 8) +/** + * Right super is pressed (0 = left, 1 = right). + * Only meaningful when GHOSTTY_MODS_SUPER is set. + */ +#define GHOSTTY_MODS_SUPER_SIDE (1 << 9) + +/** + * Physical key codes. + * + * The set of key codes that Ghostty is aware of. These represent physical keys + * on the keyboard and are layout-independent. For example, the "a" key on a US + * keyboard is the same as the "ф" key on a Russian keyboard, but both will + * report the same key_a value. + * + * Layout-dependent strings are provided separately as UTF-8 text and are produced + * by the platform. These values are based on the W3C UI Events KeyboardEvent code + * standard. See: https://www.w3.org/TR/uievents-code + * + * @ingroup key + */ +typedef enum GHOSTTY_ENUM_TYPED { + GHOSTTY_KEY_UNIDENTIFIED = 0, + + // Writing System Keys (W3C § 3.1.1) + GHOSTTY_KEY_BACKQUOTE, + GHOSTTY_KEY_BACKSLASH, + GHOSTTY_KEY_BRACKET_LEFT, + GHOSTTY_KEY_BRACKET_RIGHT, + GHOSTTY_KEY_COMMA, + GHOSTTY_KEY_DIGIT_0, + GHOSTTY_KEY_DIGIT_1, + GHOSTTY_KEY_DIGIT_2, + GHOSTTY_KEY_DIGIT_3, + GHOSTTY_KEY_DIGIT_4, + GHOSTTY_KEY_DIGIT_5, + GHOSTTY_KEY_DIGIT_6, + GHOSTTY_KEY_DIGIT_7, + GHOSTTY_KEY_DIGIT_8, + GHOSTTY_KEY_DIGIT_9, + GHOSTTY_KEY_EQUAL, + GHOSTTY_KEY_INTL_BACKSLASH, + GHOSTTY_KEY_INTL_RO, + GHOSTTY_KEY_INTL_YEN, + GHOSTTY_KEY_A, + GHOSTTY_KEY_B, + GHOSTTY_KEY_C, + GHOSTTY_KEY_D, + GHOSTTY_KEY_E, + GHOSTTY_KEY_F, + GHOSTTY_KEY_G, + GHOSTTY_KEY_H, + GHOSTTY_KEY_I, + GHOSTTY_KEY_J, + GHOSTTY_KEY_K, + GHOSTTY_KEY_L, + GHOSTTY_KEY_M, + GHOSTTY_KEY_N, + GHOSTTY_KEY_O, + GHOSTTY_KEY_P, + GHOSTTY_KEY_Q, + GHOSTTY_KEY_R, + GHOSTTY_KEY_S, + GHOSTTY_KEY_T, + GHOSTTY_KEY_U, + GHOSTTY_KEY_V, + GHOSTTY_KEY_W, + GHOSTTY_KEY_X, + GHOSTTY_KEY_Y, + GHOSTTY_KEY_Z, + GHOSTTY_KEY_MINUS, + GHOSTTY_KEY_PERIOD, + GHOSTTY_KEY_QUOTE, + GHOSTTY_KEY_SEMICOLON, + GHOSTTY_KEY_SLASH, + + // Functional Keys (W3C § 3.1.2) + GHOSTTY_KEY_ALT_LEFT, + GHOSTTY_KEY_ALT_RIGHT, + GHOSTTY_KEY_BACKSPACE, + GHOSTTY_KEY_CAPS_LOCK, + GHOSTTY_KEY_CONTEXT_MENU, + GHOSTTY_KEY_CONTROL_LEFT, + GHOSTTY_KEY_CONTROL_RIGHT, + GHOSTTY_KEY_ENTER, + GHOSTTY_KEY_META_LEFT, + GHOSTTY_KEY_META_RIGHT, + GHOSTTY_KEY_SHIFT_LEFT, + GHOSTTY_KEY_SHIFT_RIGHT, + GHOSTTY_KEY_SPACE, + GHOSTTY_KEY_TAB, + GHOSTTY_KEY_CONVERT, + GHOSTTY_KEY_KANA_MODE, + GHOSTTY_KEY_NON_CONVERT, + + // Control Pad Section (W3C § 3.2) + GHOSTTY_KEY_DELETE, + GHOSTTY_KEY_END, + GHOSTTY_KEY_HELP, + GHOSTTY_KEY_HOME, + GHOSTTY_KEY_INSERT, + GHOSTTY_KEY_PAGE_DOWN, + GHOSTTY_KEY_PAGE_UP, + + // Arrow Pad Section (W3C § 3.3) + GHOSTTY_KEY_ARROW_DOWN, + GHOSTTY_KEY_ARROW_LEFT, + GHOSTTY_KEY_ARROW_RIGHT, + GHOSTTY_KEY_ARROW_UP, + + // Numpad Section (W3C § 3.4) + GHOSTTY_KEY_NUM_LOCK, + GHOSTTY_KEY_NUMPAD_0, + GHOSTTY_KEY_NUMPAD_1, + GHOSTTY_KEY_NUMPAD_2, + GHOSTTY_KEY_NUMPAD_3, + GHOSTTY_KEY_NUMPAD_4, + GHOSTTY_KEY_NUMPAD_5, + GHOSTTY_KEY_NUMPAD_6, + GHOSTTY_KEY_NUMPAD_7, + GHOSTTY_KEY_NUMPAD_8, + GHOSTTY_KEY_NUMPAD_9, + GHOSTTY_KEY_NUMPAD_ADD, + GHOSTTY_KEY_NUMPAD_BACKSPACE, + GHOSTTY_KEY_NUMPAD_CLEAR, + GHOSTTY_KEY_NUMPAD_CLEAR_ENTRY, + GHOSTTY_KEY_NUMPAD_COMMA, + GHOSTTY_KEY_NUMPAD_DECIMAL, + GHOSTTY_KEY_NUMPAD_DIVIDE, + GHOSTTY_KEY_NUMPAD_ENTER, + GHOSTTY_KEY_NUMPAD_EQUAL, + GHOSTTY_KEY_NUMPAD_MEMORY_ADD, + GHOSTTY_KEY_NUMPAD_MEMORY_CLEAR, + GHOSTTY_KEY_NUMPAD_MEMORY_RECALL, + GHOSTTY_KEY_NUMPAD_MEMORY_STORE, + GHOSTTY_KEY_NUMPAD_MEMORY_SUBTRACT, + GHOSTTY_KEY_NUMPAD_MULTIPLY, + GHOSTTY_KEY_NUMPAD_PAREN_LEFT, + GHOSTTY_KEY_NUMPAD_PAREN_RIGHT, + GHOSTTY_KEY_NUMPAD_SUBTRACT, + GHOSTTY_KEY_NUMPAD_SEPARATOR, + GHOSTTY_KEY_NUMPAD_UP, + GHOSTTY_KEY_NUMPAD_DOWN, + GHOSTTY_KEY_NUMPAD_RIGHT, + GHOSTTY_KEY_NUMPAD_LEFT, + GHOSTTY_KEY_NUMPAD_BEGIN, + GHOSTTY_KEY_NUMPAD_HOME, + GHOSTTY_KEY_NUMPAD_END, + GHOSTTY_KEY_NUMPAD_INSERT, + GHOSTTY_KEY_NUMPAD_DELETE, + GHOSTTY_KEY_NUMPAD_PAGE_UP, + GHOSTTY_KEY_NUMPAD_PAGE_DOWN, + + // Function Section (W3C § 3.5) + GHOSTTY_KEY_ESCAPE, + GHOSTTY_KEY_F1, + GHOSTTY_KEY_F2, + GHOSTTY_KEY_F3, + GHOSTTY_KEY_F4, + GHOSTTY_KEY_F5, + GHOSTTY_KEY_F6, + GHOSTTY_KEY_F7, + GHOSTTY_KEY_F8, + GHOSTTY_KEY_F9, + GHOSTTY_KEY_F10, + GHOSTTY_KEY_F11, + GHOSTTY_KEY_F12, + GHOSTTY_KEY_F13, + GHOSTTY_KEY_F14, + GHOSTTY_KEY_F15, + GHOSTTY_KEY_F16, + GHOSTTY_KEY_F17, + GHOSTTY_KEY_F18, + GHOSTTY_KEY_F19, + GHOSTTY_KEY_F20, + GHOSTTY_KEY_F21, + GHOSTTY_KEY_F22, + GHOSTTY_KEY_F23, + GHOSTTY_KEY_F24, + GHOSTTY_KEY_F25, + GHOSTTY_KEY_FN, + GHOSTTY_KEY_FN_LOCK, + GHOSTTY_KEY_PRINT_SCREEN, + GHOSTTY_KEY_SCROLL_LOCK, + GHOSTTY_KEY_PAUSE, + + // Media Keys (W3C § 3.6) + GHOSTTY_KEY_BROWSER_BACK, + GHOSTTY_KEY_BROWSER_FAVORITES, + GHOSTTY_KEY_BROWSER_FORWARD, + GHOSTTY_KEY_BROWSER_HOME, + GHOSTTY_KEY_BROWSER_REFRESH, + GHOSTTY_KEY_BROWSER_SEARCH, + GHOSTTY_KEY_BROWSER_STOP, + GHOSTTY_KEY_EJECT, + GHOSTTY_KEY_LAUNCH_APP_1, + GHOSTTY_KEY_LAUNCH_APP_2, + GHOSTTY_KEY_LAUNCH_MAIL, + GHOSTTY_KEY_MEDIA_PLAY_PAUSE, + GHOSTTY_KEY_MEDIA_SELECT, + GHOSTTY_KEY_MEDIA_STOP, + GHOSTTY_KEY_MEDIA_TRACK_NEXT, + GHOSTTY_KEY_MEDIA_TRACK_PREVIOUS, + GHOSTTY_KEY_POWER, + GHOSTTY_KEY_SLEEP, + GHOSTTY_KEY_AUDIO_VOLUME_DOWN, + GHOSTTY_KEY_AUDIO_VOLUME_MUTE, + GHOSTTY_KEY_AUDIO_VOLUME_UP, + GHOSTTY_KEY_WAKE_UP, + + // Legacy, Non-standard, and Special Keys (W3C § 3.7) + GHOSTTY_KEY_COPY, + GHOSTTY_KEY_CUT, + GHOSTTY_KEY_PASTE, + GHOSTTY_KEY_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyKey; + +/** + * Create a new key event instance. + * + * Creates a new key event with default values. The event must be freed using + * ghostty_key_event_free() when no longer needed. + * + * @param allocator Pointer to the allocator to use for memory management, or NULL to use the default allocator + * @param event Pointer to store the created key event handle + * @return GHOSTTY_SUCCESS on success, or an error code on failure + * + * @ingroup key + */ +GHOSTTY_API GhosttyResult ghostty_key_event_new(const GhosttyAllocator *allocator, GhosttyKeyEvent *event); + +/** + * Free a key event instance. + * + * Releases all resources associated with the key event. After this call, + * the event handle becomes invalid and must not be used. + * + * @param event The key event handle to free (may be NULL) + * + * @ingroup key + */ +GHOSTTY_API void ghostty_key_event_free(GhosttyKeyEvent event); + +/** + * Set the key action (press, release, repeat). + * + * @param event The key event handle, must not be NULL + * @param action The action to set + * + * @ingroup key + */ +GHOSTTY_API void ghostty_key_event_set_action(GhosttyKeyEvent event, GhosttyKeyAction action); + +/** + * Get the key action (press, release, repeat). + * + * @param event The key event handle, must not be NULL + * @return The key action + * + * @ingroup key + */ +GHOSTTY_API GhosttyKeyAction ghostty_key_event_get_action(GhosttyKeyEvent event); + +/** + * Set the physical key code. + * + * @param event The key event handle, must not be NULL + * @param key The physical key code to set + * + * @ingroup key + */ +GHOSTTY_API void ghostty_key_event_set_key(GhosttyKeyEvent event, GhosttyKey key); + +/** + * Get the physical key code. + * + * @param event The key event handle, must not be NULL + * @return The physical key code + * + * @ingroup key + */ +GHOSTTY_API GhosttyKey ghostty_key_event_get_key(GhosttyKeyEvent event); + +/** + * Set the modifier keys bitmask. + * + * @param event The key event handle, must not be NULL + * @param mods The modifier keys bitmask to set + * + * @ingroup key + */ +GHOSTTY_API void ghostty_key_event_set_mods(GhosttyKeyEvent event, GhosttyMods mods); + +/** + * Get the modifier keys bitmask. + * + * @param event The key event handle, must not be NULL + * @return The modifier keys bitmask + * + * @ingroup key + */ +GHOSTTY_API GhosttyMods ghostty_key_event_get_mods(GhosttyKeyEvent event); + +/** + * Set the consumed modifiers bitmask. + * + * @param event The key event handle, must not be NULL + * @param consumed_mods The consumed modifiers bitmask to set + * + * @ingroup key + */ +GHOSTTY_API void ghostty_key_event_set_consumed_mods(GhosttyKeyEvent event, GhosttyMods consumed_mods); + +/** + * Get the consumed modifiers bitmask. + * + * @param event The key event handle, must not be NULL + * @return The consumed modifiers bitmask + * + * @ingroup key + */ +GHOSTTY_API GhosttyMods ghostty_key_event_get_consumed_mods(GhosttyKeyEvent event); + +/** + * Set whether the key event is part of a composition sequence. + * + * @param event The key event handle, must not be NULL + * @param composing Whether the key event is part of a composition sequence + * + * @ingroup key + */ +GHOSTTY_API void ghostty_key_event_set_composing(GhosttyKeyEvent event, bool composing); + +/** + * Get whether the key event is part of a composition sequence. + * + * @param event The key event handle, must not be NULL + * @return Whether the key event is part of a composition sequence + * + * @ingroup key + */ +GHOSTTY_API bool ghostty_key_event_get_composing(GhosttyKeyEvent event); + +/** + * Set the UTF-8 text generated by the key for the current keyboard layout. + * + * Must contain the unmodified character before any Ctrl/Meta transformations. + * The encoder derives modifier sequences from the logical key and mods + * bitmask, not from this text. Do not pass C0 control characters + * (U+0000-U+001F, U+007F) or platform function key codes (e.g. macOS PUA + * U+F700-U+F8FF); pass NULL instead and let the encoder use the logical key. + * + * The key event does NOT take ownership of the text pointer. The caller + * must ensure the string remains valid for the lifetime needed by the event. + * + * @param event The key event handle, must not be NULL + * @param utf8 The UTF-8 text to set (or NULL for empty) + * @param len Length of the UTF-8 text in bytes + * + * @ingroup key + */ +GHOSTTY_API void ghostty_key_event_set_utf8(GhosttyKeyEvent event, const char *utf8, size_t len); + +/** + * Get the UTF-8 text generated by the key event. + * + * The returned pointer is valid until the event is freed or the UTF-8 text is modified. + * + * @param event The key event handle, must not be NULL + * @param len Pointer to store the length of the UTF-8 text in bytes (may be NULL) + * @return The UTF-8 text (or NULL for empty) + * + * @ingroup key + */ +GHOSTTY_API const char *ghostty_key_event_get_utf8(GhosttyKeyEvent event, size_t *len); + +/** + * Set the unshifted Unicode codepoint. + * + * @param event The key event handle, must not be NULL + * @param codepoint The unshifted Unicode codepoint to set + * + * @ingroup key + */ +GHOSTTY_API void ghostty_key_event_set_unshifted_codepoint(GhosttyKeyEvent event, uint32_t codepoint); + +/** + * Get the unshifted Unicode codepoint. + * + * @param event The key event handle, must not be NULL + * @return The unshifted Unicode codepoint + * + * @ingroup key + */ +GHOSTTY_API uint32_t ghostty_key_event_get_unshifted_codepoint(GhosttyKeyEvent event); + +#endif /* GHOSTTY_VT_KEY_EVENT_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/kitty_graphics.h b/packages/terminal/vendor/include/ghostty/vt/kitty_graphics.h new file mode 100644 index 0000000000000000000000000000000000000000..dda8b836e1e7b87ff95038e970f1b57be2d9808a --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/kitty_graphics.h @@ -0,0 +1,859 @@ +/** + * @file kitty_graphics.h + * + * Kitty graphics protocol + * + * See @ref kitty_graphics for a full usage guide. + */ + +#ifndef GHOSTTY_VT_KITTY_GRAPHICS_H +#define GHOSTTY_VT_KITTY_GRAPHICS_H + +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** @defgroup kitty_graphics Kitty Graphics + * + * API for inspecting images and placements stored via the + * [Kitty graphics protocol](https://sw.kovidgoyal.net/kitty/graphics-protocol/). + * + * The central object is @ref GhosttyKittyGraphics, an opaque handle to + * the image storage associated with a terminal's active screen. From it + * you can iterate over placements and look up individual images. + * + * ## Obtaining a KittyGraphics Handle + * + * A @ref GhosttyKittyGraphics handle is obtained from a terminal via + * ghostty_terminal_get() with @ref GHOSTTY_TERMINAL_DATA_KITTY_GRAPHICS. + * The handle is borrowed from the terminal and remains valid until the + * next mutating terminal call (e.g. ghostty_terminal_vt_write() or + * ghostty_terminal_reset()). + * + * Before images can be stored, Kitty graphics must be enabled on the + * terminal by setting a non-zero storage limit with + * @ref GHOSTTY_TERMINAL_OPT_KITTY_IMAGE_STORAGE_LIMIT, and a PNG + * decoder callback must be installed via ghostty_sys_set() with + * @ref GHOSTTY_SYS_OPT_DECODE_PNG. + * + * @snippet c-vt-kitty-graphics/src/main.c kitty-graphics-decode-png + * + * ## Iterating Placements + * + * Placements are inspected through a @ref GhosttyKittyGraphicsPlacementIterator. + * The typical workflow is: + * + * 1. Create an iterator with ghostty_kitty_graphics_placement_iterator_new(). + * 2. Populate it from the storage with ghostty_kitty_graphics_get() using + * @ref GHOSTTY_KITTY_GRAPHICS_DATA_PLACEMENT_ITERATOR. + * 3. Optionally filter by z-layer with + * ghostty_kitty_graphics_placement_iterator_set(). + * 4. Advance with ghostty_kitty_graphics_placement_next() and read + * per-placement data with ghostty_kitty_graphics_placement_get(). + * 5. For each placement, look up its image with + * ghostty_kitty_graphics_image() to access pixel data and dimensions. + * 6. Free the iterator with ghostty_kitty_graphics_placement_iterator_free(). + * + * ## Looking Up Images + * + * Given an image ID (obtained from a placement via + * @ref GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_IMAGE_ID), call + * ghostty_kitty_graphics_image() to get a @ref GhosttyKittyGraphicsImage + * handle. From this handle, ghostty_kitty_graphics_image_get() provides + * the image dimensions, pixel format, compression, and a borrowed pointer + * to the raw pixel data. + * + * ## Rendering Helpers + * + * Several functions assist with rendering a placement: + * + * - ghostty_kitty_graphics_placement_pixel_size() — rendered pixel + * dimensions accounting for source rect and aspect ratio. + * - ghostty_kitty_graphics_placement_grid_size() — number of grid + * columns and rows the placement occupies. + * - ghostty_kitty_graphics_placement_viewport_pos() — viewport-relative + * grid position (may be negative for partially scrolled placements). + * - ghostty_kitty_graphics_placement_source_rect() — resolved source + * rectangle in pixels, clamped to image bounds. + * - ghostty_kitty_graphics_placement_rect() — bounding rectangle as a + * @ref GhosttySelection. + * + * ## Change Detection + * + * Generation stamps allow renderers to cheaply detect whether Kitty + * graphics state changed between frames: + * + * - @ref GHOSTTY_KITTY_GRAPHICS_DATA_GENERATION is a storage-wide stamp + * updated on any transmit, placement, or delete. If unchanged, the + * placement set and all image data are identical and both placement + * snapshots and per-image staleness checks can be skipped. Placement + * geometry can still change independently (scrolling moves + * placements), so ghostty_kitty_graphics_placement_render_info() + * should still be recomputed on dirty frames. + * - @ref GHOSTTY_KITTY_IMAGE_DATA_GENERATION is a per-image stamp + * changed on every add/replace of that image ID. Texture caches + * should treat a cached texture as stale when this differs from the + * cached value; dimension/length heuristics cannot detect a + * same-sized retransmission. + * + * Stamps are unique and monotonically increasing process-wide, so + * caches keyed on a generation value never alias across screens + * (main/alternate), resets, or terminals. + * + * ## Lifetime and Thread Safety + * + * All handles borrowed from the terminal (GhosttyKittyGraphics, + * GhosttyKittyGraphicsImage) are invalidated by any mutating terminal + * call. The placement iterator is independently owned and must be freed + * by the caller, but the data it yields is only valid while the + * underlying terminal is not mutated. + * + * ## Example + * + * The following example creates a terminal, sends a Kitty graphics + * image, then iterates placements and prints image metadata: + * + * @snippet c-vt-kitty-graphics/src/main.c kitty-graphics-main + * + * @{ + */ + +/** + * Queryable data kinds for ghostty_kitty_graphics_get(). + * + * @ingroup kitty_graphics + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Invalid / sentinel value. */ + GHOSTTY_KITTY_GRAPHICS_DATA_INVALID = 0, + + /** + * Populate a pre-allocated placement iterator with placement data from + * the storage. Iterator data is only valid as long as the underlying + * terminal is not mutated. + * + * Output type: GhosttyKittyGraphicsPlacementIterator * + */ + GHOSTTY_KITTY_GRAPHICS_DATA_PLACEMENT_ITERATOR = 1, + + /** + * Generation stamp of the last content mutation to this storage: + * any image transmit/replace, placement add, or delete. Zero means + * the storage has never been mutated (and is therefore empty). + * + * If the generation is unchanged since a previous query, the set of + * placements and all image data are identical, so placement iteration + * and image staleness checks can be skipped entirely. Note that + * placement *geometry* may still have changed (scrolling and resizing + * move placements without changing the storage contents), so rendering + * geometry such as ghostty_kitty_graphics_placement_render_info() + * must still be recomputed for frames marked dirty. + * + * Stamps are unique and monotonically increasing process-wide: a + * value observed from any storage never recurs for different content, + * even across screen switches (main vs. alternate screen have + * independent storages) or terminal resets. It is therefore safe to + * key caches on this value alone. + * + * Output type: uint64_t * + */ + GHOSTTY_KITTY_GRAPHICS_DATA_GENERATION = 2, + GHOSTTY_KITTY_GRAPHICS_DATA_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyKittyGraphicsData; + +/** + * Queryable data kinds for ghostty_kitty_graphics_placement_get(). + * + * @ingroup kitty_graphics + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Invalid / sentinel value. */ + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_INVALID = 0, + + /** + * The image ID this placement belongs to. + * + * Output type: uint32_t * + */ + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_IMAGE_ID = 1, + + /** + * The placement ID. + * + * Output type: uint32_t * + */ + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_PLACEMENT_ID = 2, + + /** + * Whether this is a virtual placement (unicode placeholder). + * + * Output type: bool * + */ + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_IS_VIRTUAL = 3, + + /** + * Pixel offset from the left edge of the cell. + * + * Output type: uint32_t * + */ + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_X_OFFSET = 4, + + /** + * Pixel offset from the top edge of the cell. + * + * Output type: uint32_t * + */ + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_Y_OFFSET = 5, + + /** + * Source rectangle x origin in pixels. + * + * Output type: uint32_t * + */ + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_SOURCE_X = 6, + + /** + * Source rectangle y origin in pixels. + * + * Output type: uint32_t * + */ + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_SOURCE_Y = 7, + + /** + * Source rectangle width in pixels (0 = full image width). + * + * Output type: uint32_t * + */ + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_SOURCE_WIDTH = 8, + + /** + * Source rectangle height in pixels (0 = full image height). + * + * Output type: uint32_t * + */ + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_SOURCE_HEIGHT = 9, + + /** + * Number of columns this placement occupies. + * + * Output type: uint32_t * + */ + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_COLUMNS = 10, + + /** + * Number of rows this placement occupies. + * + * Output type: uint32_t * + */ + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_ROWS = 11, + + /** + * Z-index for this placement. + * + * Output type: int32_t * + */ + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_Z = 12, + + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_DATA_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyKittyGraphicsPlacementData; + +/** + * Z-layer classification for kitty graphics placements. + * + * Based on the kitty protocol z-index conventions: + * - BELOW_BG: z < INT32_MIN/2 (drawn below cell background) + * - BELOW_TEXT: INT32_MIN/2 <= z < 0 (above background, below text) + * - ABOVE_TEXT: z >= 0 (above text) + * - ALL: no filtering (current behavior) + * + * @ingroup kitty_graphics + */ +typedef enum GHOSTTY_ENUM_TYPED { + GHOSTTY_KITTY_PLACEMENT_LAYER_ALL = 0, + GHOSTTY_KITTY_PLACEMENT_LAYER_BELOW_BG = 1, + GHOSTTY_KITTY_PLACEMENT_LAYER_BELOW_TEXT = 2, + GHOSTTY_KITTY_PLACEMENT_LAYER_ABOVE_TEXT = 3, + GHOSTTY_KITTY_PLACEMENT_LAYER_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyKittyPlacementLayer; + +/** + * Settable options for ghostty_kitty_graphics_placement_iterator_set(). + * + * @ingroup kitty_graphics + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** + * Set the z-layer filter for the iterator. + * + * Input type: GhosttyKittyPlacementLayer * + */ + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_ITERATOR_OPTION_LAYER = 0, + GHOSTTY_KITTY_GRAPHICS_PLACEMENT_ITERATOR_OPTION_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyKittyGraphicsPlacementIteratorOption; + +/** + * Pixel format of a Kitty graphics image. + * + * Note that stored images are always fully decoded: + * GHOSTTY_KITTY_IMAGE_FORMAT_PNG is never returned by + * ghostty_kitty_graphics_image_get() because PNG payloads are decoded + * to GHOSTTY_KITTY_IMAGE_FORMAT_RGBA before storage. The PNG value + * exists only for protocol-level completeness. + * + * @ingroup kitty_graphics + */ +typedef enum GHOSTTY_ENUM_TYPED { + GHOSTTY_KITTY_IMAGE_FORMAT_RGB = 0, + GHOSTTY_KITTY_IMAGE_FORMAT_RGBA = 1, + GHOSTTY_KITTY_IMAGE_FORMAT_PNG = 2, + GHOSTTY_KITTY_IMAGE_FORMAT_GRAY_ALPHA = 3, + GHOSTTY_KITTY_IMAGE_FORMAT_GRAY = 4, + GHOSTTY_KITTY_IMAGE_FORMAT_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyKittyImageFormat; + +/** + * Compression of a Kitty graphics image. + * + * Note that stored images are always decompressed: + * GHOSTTY_KITTY_IMAGE_COMPRESSION_ZLIB_DEFLATE payloads are inflated + * before storage, so ghostty_kitty_graphics_image_get() always reports + * GHOSTTY_KITTY_IMAGE_COMPRESSION_NONE. Consumers never need to + * inflate image data themselves. + * + * @ingroup kitty_graphics + */ +typedef enum GHOSTTY_ENUM_TYPED { + GHOSTTY_KITTY_IMAGE_COMPRESSION_NONE = 0, + GHOSTTY_KITTY_IMAGE_COMPRESSION_ZLIB_DEFLATE = 1, + GHOSTTY_KITTY_IMAGE_COMPRESSION_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyKittyImageCompression; + +/** + * Queryable data kinds for ghostty_kitty_graphics_image_get(). + * + * @ingroup kitty_graphics + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Invalid / sentinel value. */ + GHOSTTY_KITTY_IMAGE_DATA_INVALID = 0, + + /** + * The image ID. + * + * Output type: uint32_t * + */ + GHOSTTY_KITTY_IMAGE_DATA_ID = 1, + + /** + * The image number. + * + * Output type: uint32_t * + */ + GHOSTTY_KITTY_IMAGE_DATA_NUMBER = 2, + + /** + * Image width in pixels. + * + * Output type: uint32_t * + */ + GHOSTTY_KITTY_IMAGE_DATA_WIDTH = 3, + + /** + * Image height in pixels. + * + * Output type: uint32_t * + */ + GHOSTTY_KITTY_IMAGE_DATA_HEIGHT = 4, + + /** + * Pixel format of the image. Never GHOSTTY_KITTY_IMAGE_FORMAT_PNG; + * PNG payloads are decoded to RGBA before storage. + * + * Output type: GhosttyKittyImageFormat * + */ + GHOSTTY_KITTY_IMAGE_DATA_FORMAT = 5, + + /** + * Compression of the image. Always + * GHOSTTY_KITTY_IMAGE_COMPRESSION_NONE; compressed payloads are + * inflated before storage. + * + * Output type: GhosttyKittyImageCompression * + */ + GHOSTTY_KITTY_IMAGE_DATA_COMPRESSION = 6, + + /** + * Borrowed pointer to the raw pixel data. Valid as long as the + * underlying terminal is not mutated. + * + * The data is always fully decoded, uncompressed pixels in the + * format reported by GHOSTTY_KITTY_IMAGE_DATA_FORMAT: zlib payloads + * are inflated and PNG payloads are decoded to RGBA at transmission + * time, before the image is stored. Consumers can upload this + * directly to the GPU without any decode step. + * + * Output type: const uint8_t ** + */ + GHOSTTY_KITTY_IMAGE_DATA_DATA_PTR = 7, + + /** + * Length of the raw pixel data in bytes. Always equal to + * width * height * bytes-per-pixel for the reported format. + * + * Output type: size_t * + */ + GHOSTTY_KITTY_IMAGE_DATA_DATA_LEN = 8, + + /** + * Generation stamp assigned when this image was added to (or + * replaced in) the storage. A changed generation for a given image + * ID means the pixel contents may have changed even when the + * dimensions, format, and data length are identical (e.g. a + * retransmission of the same image ID), so texture caches must key + * staleness on this value rather than on size heuristics. + * + * Stamps are unique and monotonically increasing process-wide and + * are drawn from the same sequence as + * GHOSTTY_KITTY_GRAPHICS_DATA_GENERATION. Never zero for a stored + * image, so zero can be used as an "empty" sentinel by callers. + * + * Output type: uint64_t * + */ + GHOSTTY_KITTY_IMAGE_DATA_GENERATION = 9, + + GHOSTTY_KITTY_IMAGE_DATA_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyKittyGraphicsImageData; + +/** + * Combined rendering geometry for a placement in a single sized struct. + * + * Combines the results of ghostty_kitty_graphics_placement_pixel_size(), + * ghostty_kitty_graphics_placement_grid_size(), + * ghostty_kitty_graphics_placement_viewport_pos(), and + * ghostty_kitty_graphics_placement_source_rect() into one call. This is + * an optimization over calling those four functions individually, + * particularly useful in environments with high per-call overhead such + * as FFI or Cgo. + * + * This struct uses the sized-struct ABI pattern. Initialize with + * GHOSTTY_INIT_SIZED(GhosttyKittyGraphicsPlacementRenderInfo) before calling + * ghostty_kitty_graphics_placement_render_info(). + * + * @ingroup kitty_graphics + */ +typedef struct { + /** Size of this struct in bytes. Must be set to sizeof(GhosttyKittyGraphicsPlacementRenderInfo). */ + size_t size; + /** Rendered width in pixels. */ + uint32_t pixel_width; + /** Rendered height in pixels. */ + uint32_t pixel_height; + /** Number of grid columns the placement occupies. */ + uint32_t grid_cols; + /** Number of grid rows the placement occupies. */ + uint32_t grid_rows; + /** Viewport-relative column (may be negative for partially visible placements). */ + int32_t viewport_col; + /** Viewport-relative row (may be negative for partially visible placements). */ + int32_t viewport_row; + /** False when the placement is fully off-screen or virtual. */ + bool viewport_visible; + /** Resolved source rectangle x origin in pixels. */ + uint32_t source_x; + /** Resolved source rectangle y origin in pixels. */ + uint32_t source_y; + /** Resolved source rectangle width in pixels. */ + uint32_t source_width; + /** Resolved source rectangle height in pixels. */ + uint32_t source_height; +} GhosttyKittyGraphicsPlacementRenderInfo; + +/** + * Get data from a kitty graphics storage instance. + * + * The output pointer must be of the appropriate type for the requested + * data kind. + * + * Returns GHOSTTY_NO_VALUE when Kitty graphics are disabled at build time. + * + * @param graphics The kitty graphics handle + * @param data The type of data to extract + * @param[out] out Pointer to store the extracted data + * @return GHOSTTY_SUCCESS on success + * + * @ingroup kitty_graphics + */ +GHOSTTY_API GhosttyResult ghostty_kitty_graphics_get( + GhosttyKittyGraphics graphics, + GhosttyKittyGraphicsData data, + void* out); + +/** + * Look up a Kitty graphics image by its image ID. + * + * Returns NULL if no image with the given ID exists or if Kitty graphics + * are disabled at build time. + * + * @param graphics The kitty graphics handle + * @param image_id The image ID to look up + * @return An opaque image handle, or NULL if not found + * + * @ingroup kitty_graphics + */ +GHOSTTY_API GhosttyKittyGraphicsImage ghostty_kitty_graphics_image( + GhosttyKittyGraphics graphics, + uint32_t image_id); + +/** + * Get data from a Kitty graphics image. + * + * The output pointer must be of the appropriate type for the requested + * data kind. + * + * @param image The image handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param data The data kind to query + * @param[out] out Pointer to receive the queried value + * @return GHOSTTY_SUCCESS on success + * + * @ingroup kitty_graphics + */ +GHOSTTY_API GhosttyResult ghostty_kitty_graphics_image_get( + GhosttyKittyGraphicsImage image, + GhosttyKittyGraphicsImageData data, + void* out); + +/** + * Get multiple data fields from a Kitty graphics image in a single call. + * + * This is an optimization over calling ghostty_kitty_graphics_image_get() + * repeatedly, particularly useful in environments with high per-call + * overhead such as FFI or Cgo. + * + * Each element in the keys array specifies a data kind, and the + * corresponding element in the values array receives the result. + * The type of each values[i] pointer must match the output type + * documented for keys[i]. + * + * Processing stops at the first error; on success out_written + * is set to count, on error it is set to the index of the + * failing key (i.e. the number of values successfully written). + * + * @param image The image handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param count Number of key/value pairs + * @param keys Array of data kinds to query + * @param values Array of output pointers (types must match each key's + * documented output type) + * @param[out] out_written On return, receives the number of values + * successfully written (may be NULL) + * @return GHOSTTY_SUCCESS if all queries succeed + * + * @ingroup kitty_graphics + */ +GHOSTTY_API GhosttyResult ghostty_kitty_graphics_image_get_multi( + GhosttyKittyGraphicsImage image, + size_t count, + const GhosttyKittyGraphicsImageData* keys, + void** values, + size_t* out_written); + +/** + * Create a new placement iterator instance. + * + * All fields except the allocator are left undefined until populated + * via ghostty_kitty_graphics_get() with + * GHOSTTY_KITTY_GRAPHICS_DATA_PLACEMENT_ITERATOR. + * + * @param allocator Pointer to allocator, or NULL to use the default allocator + * @param[out] out_iterator On success, receives the created iterator handle + * @return GHOSTTY_SUCCESS on success, GHOSTTY_OUT_OF_MEMORY on allocation + * failure + * + * @ingroup kitty_graphics + */ +GHOSTTY_API GhosttyResult ghostty_kitty_graphics_placement_iterator_new( + const GhosttyAllocator* allocator, + GhosttyKittyGraphicsPlacementIterator* out_iterator); + +/** + * Free a placement iterator. + * + * @param iterator The iterator handle to free (may be NULL) + * + * @ingroup kitty_graphics + */ +GHOSTTY_API void ghostty_kitty_graphics_placement_iterator_free( + GhosttyKittyGraphicsPlacementIterator iterator); + +/** + * Set an option on a placement iterator. + * + * Use GHOSTTY_KITTY_GRAPHICS_PLACEMENT_ITERATOR_OPTION_LAYER with a + * GhosttyKittyPlacementLayer value to filter placements by z-layer. + * The filter is applied during iteration: ghostty_kitty_graphics_placement_next() + * will skip placements that do not match the configured layer. + * + * The default layer is GHOSTTY_KITTY_PLACEMENT_LAYER_ALL (no filtering). + * + * @param iterator The iterator handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param option The option to set + * @param value Pointer to the value (type depends on option; NULL returns + * GHOSTTY_INVALID_VALUE) + * @return GHOSTTY_SUCCESS on success + * + * @ingroup kitty_graphics + */ +GHOSTTY_API GhosttyResult ghostty_kitty_graphics_placement_iterator_set( + GhosttyKittyGraphicsPlacementIterator iterator, + GhosttyKittyGraphicsPlacementIteratorOption option, + const void* value); + +/** + * Advance the placement iterator to the next placement. + * + * If a layer filter has been set via + * ghostty_kitty_graphics_placement_iterator_set(), only placements + * matching that layer are returned. + * + * @param iterator The iterator handle (may be NULL) + * @return true if advanced to the next placement, false if at the end + * + * @ingroup kitty_graphics + */ +GHOSTTY_API bool ghostty_kitty_graphics_placement_next( + GhosttyKittyGraphicsPlacementIterator iterator); + +/** + * Get data from the current placement in a placement iterator. + * + * Call ghostty_kitty_graphics_placement_next() at least once before + * calling this function. + * + * @param iterator The iterator handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param data The data kind to query + * @param[out] out Pointer to receive the queried value + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if the + * iterator is NULL or not positioned on a placement + * + * @ingroup kitty_graphics + */ +GHOSTTY_API GhosttyResult ghostty_kitty_graphics_placement_get( + GhosttyKittyGraphicsPlacementIterator iterator, + GhosttyKittyGraphicsPlacementData data, + void* out); + +/** + * Get multiple data fields from the current placement in a single call. + * + * This is an optimization over calling ghostty_kitty_graphics_placement_get() + * repeatedly, particularly useful in environments with high per-call + * overhead such as FFI or Cgo. + * + * Each element in the keys array specifies a data kind, and the + * corresponding element in the values array receives the result. + * The type of each values[i] pointer must match the output type + * documented for keys[i]. + * + * Processing stops at the first error; on success out_written + * is set to count, on error it is set to the index of the + * failing key (i.e. the number of values successfully written). + * + * @param iterator The iterator handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param count Number of key/value pairs + * @param keys Array of data kinds to query + * @param values Array of output pointers (types must match each key's + * documented output type) + * @param[out] out_written On return, receives the number of values + * successfully written (may be NULL) + * @return GHOSTTY_SUCCESS if all queries succeed + * + * @ingroup kitty_graphics + */ +GHOSTTY_API GhosttyResult ghostty_kitty_graphics_placement_get_multi( + GhosttyKittyGraphicsPlacementIterator iterator, + size_t count, + const GhosttyKittyGraphicsPlacementData* keys, + void** values, + size_t* out_written); + +/** + * Compute the grid rectangle occupied by the current placement. + * + * Uses the placement's pin, the image dimensions, and the terminal's + * cell/pixel geometry to calculate the bounding rectangle. Virtual + * placements (unicode placeholders) return GHOSTTY_NO_VALUE. + * + * @param terminal The terminal handle + * @param image The image handle for this placement's image + * @param iterator The placement iterator positioned on a placement + * @param[out] out_selection On success, receives the bounding rectangle + * as a selection with rectangle=true + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if any handle + * is NULL or the iterator is not positioned, GHOSTTY_NO_VALUE for + * virtual placements or when Kitty graphics are disabled + * + * @ingroup kitty_graphics + */ +GHOSTTY_API GhosttyResult ghostty_kitty_graphics_placement_rect( + GhosttyKittyGraphicsPlacementIterator iterator, + GhosttyKittyGraphicsImage image, + GhosttyTerminal terminal, + GhosttySelection* out_selection); + +/** + * Compute the rendered pixel size of the current placement. + * + * Takes into account the placement's source rectangle, specified + * columns/rows, and aspect ratio to calculate the final rendered + * pixel dimensions. + * + * @param iterator The placement iterator positioned on a placement + * @param image The image handle for this placement's image + * @param terminal The terminal handle + * @param[out] out_width On success, receives the width in pixels + * @param[out] out_height On success, receives the height in pixels + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if any handle + * is NULL or the iterator is not positioned, GHOSTTY_NO_VALUE when + * Kitty graphics are disabled + * + * @ingroup kitty_graphics + */ +GHOSTTY_API GhosttyResult ghostty_kitty_graphics_placement_pixel_size( + GhosttyKittyGraphicsPlacementIterator iterator, + GhosttyKittyGraphicsImage image, + GhosttyTerminal terminal, + uint32_t* out_width, + uint32_t* out_height); + +/** + * Compute the grid cell size of the current placement. + * + * Returns the number of columns and rows that the placement occupies + * in the terminal grid. If the placement specifies explicit columns + * and rows, those are returned directly; otherwise they are calculated + * from the pixel size and cell dimensions. + * + * @param iterator The placement iterator positioned on a placement + * @param image The image handle for this placement's image + * @param terminal The terminal handle + * @param[out] out_cols On success, receives the number of columns + * @param[out] out_rows On success, receives the number of rows + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if any handle + * is NULL or the iterator is not positioned, GHOSTTY_NO_VALUE when + * Kitty graphics are disabled + * + * @ingroup kitty_graphics + */ +GHOSTTY_API GhosttyResult ghostty_kitty_graphics_placement_grid_size( + GhosttyKittyGraphicsPlacementIterator iterator, + GhosttyKittyGraphicsImage image, + GhosttyTerminal terminal, + uint32_t* out_cols, + uint32_t* out_rows); + +/** + * Get the viewport-relative grid position of the current placement. + * + * Converts the placement's internal pin to viewport-relative column and + * row coordinates. The returned coordinates represent the top-left + * corner of the placement in the viewport's grid coordinate space. + * + * The row value can be negative when the placement's origin has + * scrolled above the top of the viewport. For example, a 4-row + * image that has scrolled up by 2 rows returns row=-2, meaning + * its top 2 rows are above the visible area but its bottom 2 rows + * are still on screen. Embedders should use these coordinates + * directly when computing the destination rectangle for rendering; + * the embedder is responsible for clipping the portion of the image + * that falls outside the viewport. + * + * Returns GHOSTTY_SUCCESS for any placement that is at least + * partially visible in the viewport. Returns GHOSTTY_NO_VALUE when + * the placement is completely outside the viewport (its bottom edge + * is above the viewport or its top edge is at or below the last + * viewport row), or when the placement is a virtual (unicode + * placeholder) placement. + * + * @param iterator The placement iterator positioned on a placement + * @param image The image handle for this placement's image + * @param terminal The terminal handle + * @param[out] out_col On success, receives the viewport-relative column + * @param[out] out_row On success, receives the viewport-relative row + * (may be negative for partially visible placements) + * @return GHOSTTY_SUCCESS on success, GHOSTTY_NO_VALUE if fully + * off-screen or virtual, GHOSTTY_INVALID_VALUE if any handle + * is NULL or the iterator is not positioned + * + * @ingroup kitty_graphics + */ +GHOSTTY_API GhosttyResult ghostty_kitty_graphics_placement_viewport_pos( + GhosttyKittyGraphicsPlacementIterator iterator, + GhosttyKittyGraphicsImage image, + GhosttyTerminal terminal, + int32_t* out_col, + int32_t* out_row); + +/** + * Get the resolved source rectangle for the current placement. + * + * Applies kitty protocol semantics: a width or height of 0 in the + * placement means "use the full image dimension", and the resulting + * rectangle is clamped to the actual image bounds. The returned + * values are in pixels and are ready to use for texture sampling. + * + * @param iterator The placement iterator positioned on a placement + * @param image The image handle for this placement's image + * @param[out] out_x Source rect x origin in pixels + * @param[out] out_y Source rect y origin in pixels + * @param[out] out_width Source rect width in pixels + * @param[out] out_height Source rect height in pixels + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if any + * handle is NULL or the iterator is not positioned + * + * @ingroup kitty_graphics + */ +GHOSTTY_API GhosttyResult ghostty_kitty_graphics_placement_source_rect( + GhosttyKittyGraphicsPlacementIterator iterator, + GhosttyKittyGraphicsImage image, + uint32_t* out_x, + uint32_t* out_y, + uint32_t* out_width, + uint32_t* out_height); + +/** + * Get all rendering geometry for a placement in a single call. + * + * Combines pixel size, grid size, viewport position, and source + * rectangle into one struct. Initialize with + * GHOSTTY_INIT_SIZED(GhosttyKittyGraphicsPlacementRenderInfo). + * + * When viewport_visible is false, the placement is fully off-screen + * or is a virtual placement; viewport_col and viewport_row may + * contain meaningless values in that case. + * + * @param iterator The iterator positioned on a placement + * @param image The image handle for this placement's image + * @param terminal The terminal handle + * @param[out] out_info Pointer to receive the rendering geometry + * @return GHOSTTY_SUCCESS on success + * + * @ingroup kitty_graphics + */ +GHOSTTY_API GhosttyResult ghostty_kitty_graphics_placement_render_info( + GhosttyKittyGraphicsPlacementIterator iterator, + GhosttyKittyGraphicsImage image, + GhosttyTerminal terminal, + GhosttyKittyGraphicsPlacementRenderInfo* out_info); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* GHOSTTY_VT_KITTY_GRAPHICS_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/modes.h b/packages/terminal/vendor/include/ghostty/vt/modes.h new file mode 100644 index 0000000000000000000000000000000000000000..8e1fd91179e2d2d6b7c8c4c138bf01e6496995f4 --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/modes.h @@ -0,0 +1,198 @@ +/** + * @file modes.h + * + * Terminal mode utilities - pack and unpack ANSI/DEC mode identifiers. + */ + +#ifndef GHOSTTY_VT_MODES_H +#define GHOSTTY_VT_MODES_H + +/** @defgroup modes Mode Utilities + * + * Utilities for working with terminal modes. A mode is a compact + * 16-bit representation of a terminal mode identifier that encodes both + * the numeric mode value (up to 15 bits) and whether the mode is an ANSI + * mode or a DEC private mode (?-prefixed). + * + * The packed layout (least-significant bit first) is: + * - Bits 0–14: mode value (u15) + * - Bit 15: ANSI flag (0 = DEC private mode, 1 = ANSI mode) + * + * ## Example + * + * @snippet c-vt-modes/src/main.c modes-pack-unpack + * + * ## DECRPM Report Encoding + * + * Use ghostty_mode_report_encode() to encode a DECRPM response into a + * caller-provided buffer: + * + * @snippet c-vt-modes/src/main.c modes-decrpm + * + * @{ + */ + +#include +#include +#include + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** @name ANSI Modes + * Modes for standard ANSI modes. + * @{ + */ +#define GHOSTTY_MODE_KAM (ghostty_mode_new(2, true)) /**< Keyboard action (disable keyboard) */ +#define GHOSTTY_MODE_INSERT (ghostty_mode_new(4, true)) /**< Insert mode */ +#define GHOSTTY_MODE_SRM (ghostty_mode_new(12, true)) /**< Send/receive mode */ +#define GHOSTTY_MODE_LINEFEED (ghostty_mode_new(20, true)) /**< Linefeed/new line mode */ +/** @} */ + +/** @name DEC Private Modes + * Modes for DEC private modes (?-prefixed). + * @{ + */ +#define GHOSTTY_MODE_DECCKM (ghostty_mode_new(1, false)) /**< Cursor keys */ +#define GHOSTTY_MODE_132_COLUMN (ghostty_mode_new(3, false)) /**< 132/80 column mode */ +#define GHOSTTY_MODE_SLOW_SCROLL (ghostty_mode_new(4, false)) /**< Slow scroll */ +#define GHOSTTY_MODE_REVERSE_COLORS (ghostty_mode_new(5, false)) /**< Reverse video */ +#define GHOSTTY_MODE_ORIGIN (ghostty_mode_new(6, false)) /**< Origin mode */ +#define GHOSTTY_MODE_WRAPAROUND (ghostty_mode_new(7, false)) /**< Auto-wrap mode */ +#define GHOSTTY_MODE_AUTOREPEAT (ghostty_mode_new(8, false)) /**< Auto-repeat keys */ +#define GHOSTTY_MODE_X10_MOUSE (ghostty_mode_new(9, false)) /**< X10 mouse reporting */ +#define GHOSTTY_MODE_CURSOR_BLINKING (ghostty_mode_new(12, false)) /**< Cursor blink */ +#define GHOSTTY_MODE_CURSOR_VISIBLE (ghostty_mode_new(25, false)) /**< Cursor visible (DECTCEM) */ +#define GHOSTTY_MODE_ENABLE_MODE_3 (ghostty_mode_new(40, false)) /**< Allow 132 column mode */ +#define GHOSTTY_MODE_REVERSE_WRAP (ghostty_mode_new(45, false)) /**< Reverse wrap */ +#define GHOSTTY_MODE_ALT_SCREEN_LEGACY (ghostty_mode_new(47, false)) /**< Alternate screen (legacy) */ +#define GHOSTTY_MODE_KEYPAD_KEYS (ghostty_mode_new(66, false)) /**< Application keypad */ +#define GHOSTTY_MODE_BACKARROW_KEY_MODE (ghostty_mode_new(67, false)) /**< Backarrow key mode (DECBKM) */ +#define GHOSTTY_MODE_LEFT_RIGHT_MARGIN (ghostty_mode_new(69, false)) /**< Left/right margin mode */ +#define GHOSTTY_MODE_NORMAL_MOUSE (ghostty_mode_new(1000, false)) /**< Normal mouse tracking */ +#define GHOSTTY_MODE_BUTTON_MOUSE (ghostty_mode_new(1002, false)) /**< Button-event mouse tracking */ +#define GHOSTTY_MODE_ANY_MOUSE (ghostty_mode_new(1003, false)) /**< Any-event mouse tracking */ +#define GHOSTTY_MODE_FOCUS_EVENT (ghostty_mode_new(1004, false)) /**< Focus in/out events */ +#define GHOSTTY_MODE_UTF8_MOUSE (ghostty_mode_new(1005, false)) /**< UTF-8 mouse format */ +#define GHOSTTY_MODE_SGR_MOUSE (ghostty_mode_new(1006, false)) /**< SGR mouse format */ +#define GHOSTTY_MODE_ALT_SCROLL (ghostty_mode_new(1007, false)) /**< Alternate scroll mode */ +#define GHOSTTY_MODE_URXVT_MOUSE (ghostty_mode_new(1015, false)) /**< URxvt mouse format */ +#define GHOSTTY_MODE_SGR_PIXELS_MOUSE (ghostty_mode_new(1016, false)) /**< SGR-Pixels mouse format */ +#define GHOSTTY_MODE_NUMLOCK_KEYPAD (ghostty_mode_new(1035, false)) /**< Ignore keypad with NumLock */ +#define GHOSTTY_MODE_ALT_ESC_PREFIX (ghostty_mode_new(1036, false)) /**< Alt key sends ESC prefix */ +#define GHOSTTY_MODE_ALT_SENDS_ESC (ghostty_mode_new(1039, false)) /**< Alt sends escape */ +#define GHOSTTY_MODE_REVERSE_WRAP_EXT (ghostty_mode_new(1045, false)) /**< Extended reverse wrap */ +#define GHOSTTY_MODE_ALT_SCREEN (ghostty_mode_new(1047, false)) /**< Alternate screen */ +#define GHOSTTY_MODE_SAVE_CURSOR (ghostty_mode_new(1048, false)) /**< Save cursor (DECSC) */ +#define GHOSTTY_MODE_ALT_SCREEN_SAVE (ghostty_mode_new(1049, false)) /**< Alt screen + save cursor + clear */ +#define GHOSTTY_MODE_BRACKETED_PASTE (ghostty_mode_new(2004, false)) /**< Bracketed paste mode */ +#define GHOSTTY_MODE_SYNC_OUTPUT (ghostty_mode_new(2026, false)) /**< Synchronized output */ +#define GHOSTTY_MODE_GRAPHEME_CLUSTER (ghostty_mode_new(2027, false)) /**< Grapheme cluster mode */ +#define GHOSTTY_MODE_COLOR_SCHEME_REPORT (ghostty_mode_new(2031, false)) /**< Report color scheme */ +#define GHOSTTY_MODE_IN_BAND_RESIZE (ghostty_mode_new(2048, false)) /**< In-band size reports */ +/** @} */ + +/** + * A packed 16-bit terminal mode. + * + * Encodes a mode value (bits 0–14) and an ANSI flag (bit 15) into a + * single 16-bit integer. Use the inline helper functions to construct + * and inspect modes rather than manipulating bits directly. + */ +typedef uint16_t GhosttyMode; + +/** + * Create a mode from a mode value and ANSI flag. + * + * @param value The numeric mode value (0–32767) + * @param ansi true for an ANSI mode, false for a DEC private mode + * @return The packed mode + * + * @ingroup modes + */ +static inline GhosttyMode ghostty_mode_new(uint16_t value, bool ansi) { + return (GhosttyMode)((value & 0x7FFF) | ((uint16_t)ansi << 15)); +} + +/** + * Extract the numeric mode value from a mode. + * + * @param mode The mode + * @return The mode value (0–32767) + * + * @ingroup modes + */ +static inline uint16_t ghostty_mode_value(GhosttyMode mode) { + return mode & 0x7FFF; +} + +/** + * Check whether a mode represents an ANSI mode. + * + * @param mode The mode + * @return true if this is an ANSI mode, false if it is a DEC private mode + * + * @ingroup modes + */ +static inline bool ghostty_mode_ansi(GhosttyMode mode) { + return (mode >> 15) != 0; +} + +/** + * DECRPM report state values. + * + * These correspond to the Ps2 parameter in a DECRPM response + * sequence (CSI ? Ps1 ; Ps2 $ y). + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Mode is not recognized */ + GHOSTTY_MODE_REPORT_NOT_RECOGNIZED = 0, + /** Mode is set (enabled) */ + GHOSTTY_MODE_REPORT_SET = 1, + /** Mode is reset (disabled) */ + GHOSTTY_MODE_REPORT_RESET = 2, + /** Mode is permanently set */ + GHOSTTY_MODE_REPORT_PERMANENTLY_SET = 3, + /** Mode is permanently reset */ + GHOSTTY_MODE_REPORT_PERMANENTLY_RESET = 4, + GHOSTTY_MODE_REPORT_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyModeReportState; + +/** + * Encode a DECRPM (DEC Private Mode Report) response sequence. + * + * Writes a mode report escape sequence into the provided buffer. + * The generated sequence has the form: + * - DEC private mode: CSI ? Ps1 ; Ps2 $ y + * - ANSI mode: CSI Ps1 ; Ps2 $ y + * + * If the buffer is too small, the function returns GHOSTTY_OUT_OF_SPACE + * and writes the required buffer size to @p out_written. The caller can + * then retry with a sufficiently sized buffer. + * + * @param mode The mode identifying the mode to report on + * @param state The report state for this mode + * @param buf Output buffer to write the encoded sequence into (may be NULL) + * @param buf_len Size of the output buffer in bytes + * @param[out] out_written On success, the number of bytes written. On + * GHOSTTY_OUT_OF_SPACE, the required buffer size. + * @return GHOSTTY_SUCCESS on success, GHOSTTY_OUT_OF_SPACE if the buffer + * is too small + */ +GHOSTTY_API GhosttyResult ghostty_mode_report_encode( + GhosttyMode mode, + GhosttyModeReportState state, + char* buf, + size_t buf_len, + size_t* out_written); + +#ifdef __cplusplus +} +#endif + +/** @} */ + +#endif /* GHOSTTY_VT_MODES_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/mouse.h b/packages/terminal/vendor/include/ghostty/vt/mouse.h new file mode 100644 index 0000000000000000000000000000000000000000..4ba5f52e38b03fc8abe112d1356e010f6ae7cbc3 --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/mouse.h @@ -0,0 +1,70 @@ +/** + * @file mouse.h + * + * Mouse encoding module - encode mouse events into terminal escape sequences. + */ + +#ifndef GHOSTTY_VT_MOUSE_H +#define GHOSTTY_VT_MOUSE_H + +/** @defgroup mouse Mouse Encoding + * + * Utilities for encoding mouse events into terminal escape sequences, + * supporting X10, UTF-8, SGR, URxvt, and SGR-Pixels mouse protocols. + * + * ## Basic Usage + * + * 1. Create an encoder instance with ghostty_mouse_encoder_new(). + * 2. Configure encoder options with ghostty_mouse_encoder_setopt() or + * ghostty_mouse_encoder_setopt_from_terminal(). + * 3. For each mouse event: + * - Create a mouse event with ghostty_mouse_event_new(). + * - Set event properties (action, button, modifiers, position). + * - Encode with ghostty_mouse_encoder_encode(). + * - Free the event with ghostty_mouse_event_free() or reuse it. + * 4. Free the encoder with ghostty_mouse_encoder_free() when done. + * + * For a complete working example, see example/c-vt-encode-mouse in the + * repository. + * + * ## Example + * + * @snippet c-vt-encode-mouse/src/main.c mouse-encode + * + * ## Example: Encoding with Terminal State + * + * When you have a GhosttyTerminal, you can sync its tracking mode and + * output format into the encoder automatically: + * + * @code{.c} + * // Create a terminal and feed it some VT data that enables mouse tracking + * GhosttyTerminal terminal; + * ghostty_terminal_new(NULL, &terminal, + * (GhosttyTerminalOptions){.cols = 80, .rows = 24, .max_scrollback = 0}); + * + * // Application might write data that enables mouse reporting, etc. + * ghostty_terminal_vt_write(terminal, vt_data, vt_len); + * + * // Create an encoder and sync its options from the terminal + * GhosttyMouseEncoder encoder; + * ghostty_mouse_encoder_new(NULL, &encoder); + * ghostty_mouse_encoder_setopt_from_terminal(encoder, terminal); + * + * // Encode a mouse event using the terminal-derived options + * char buf[128]; + * size_t written = 0; + * ghostty_mouse_encoder_encode(encoder, event, buf, sizeof(buf), &written); + * + * ghostty_mouse_encoder_free(encoder); + * ghostty_terminal_free(terminal); + * @endcode + * + * @{ + */ + +#include +#include + +/** @} */ + +#endif /* GHOSTTY_VT_MOUSE_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/mouse/encoder.h b/packages/terminal/vendor/include/ghostty/vt/mouse/encoder.h new file mode 100644 index 0000000000000000000000000000000000000000..d84d863c8d7cfdace739b4d17beec1ac5775e303 --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/mouse/encoder.h @@ -0,0 +1,214 @@ +/** + * @file encoder.h + * + * Mouse event encoding to terminal escape sequences. + */ + +#ifndef GHOSTTY_VT_MOUSE_ENCODER_H +#define GHOSTTY_VT_MOUSE_ENCODER_H + +#include +#include +#include +#include +#include +#include +#include + +/** + * Opaque handle to a mouse encoder instance. + * + * This handle represents a mouse encoder that converts normalized + * mouse events into terminal escape sequences. + * + * @ingroup mouse + */ +typedef struct GhosttyMouseEncoderImpl *GhosttyMouseEncoder; + +/** + * Mouse tracking mode. + * + * @ingroup mouse + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Mouse reporting disabled. */ + GHOSTTY_MOUSE_TRACKING_NONE = 0, + + /** X10 mouse mode. */ + GHOSTTY_MOUSE_TRACKING_X10 = 1, + + /** Normal mouse mode (button press/release only). */ + GHOSTTY_MOUSE_TRACKING_NORMAL = 2, + + /** Button-event tracking mode. */ + GHOSTTY_MOUSE_TRACKING_BUTTON = 3, + + /** Any-event tracking mode. */ + GHOSTTY_MOUSE_TRACKING_ANY = 4, + GHOSTTY_MOUSE_TRACKING_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyMouseTrackingMode; + +/** + * Mouse output format. + * + * @ingroup mouse + */ +typedef enum GHOSTTY_ENUM_TYPED { + GHOSTTY_MOUSE_FORMAT_X10 = 0, + GHOSTTY_MOUSE_FORMAT_UTF8 = 1, + GHOSTTY_MOUSE_FORMAT_SGR = 2, + GHOSTTY_MOUSE_FORMAT_URXVT = 3, + GHOSTTY_MOUSE_FORMAT_SGR_PIXELS = 4, + GHOSTTY_MOUSE_FORMAT_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyMouseFormat; + +/** + * Mouse encoder size and geometry context. + * + * This describes the rendered terminal geometry used to convert + * surface-space positions into encoded coordinates. + * + * @ingroup mouse + */ +typedef struct { + /** Size of this struct in bytes. Must be set to sizeof(GhosttyMouseEncoderSize). */ + size_t size; + + /** Full screen width in pixels. */ + uint32_t screen_width; + + /** Full screen height in pixels. */ + uint32_t screen_height; + + /** Cell width in pixels. Must be non-zero. */ + uint32_t cell_width; + + /** Cell height in pixels. Must be non-zero. */ + uint32_t cell_height; + + /** Top padding in pixels. */ + uint32_t padding_top; + + /** Bottom padding in pixels. */ + uint32_t padding_bottom; + + /** Right padding in pixels. */ + uint32_t padding_right; + + /** Left padding in pixels. */ + uint32_t padding_left; +} GhosttyMouseEncoderSize; + +/** + * Mouse encoder option identifiers. + * + * These values are used with ghostty_mouse_encoder_setopt() to configure + * the behavior of the mouse encoder. + * + * @ingroup mouse + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Mouse tracking mode (value: GhosttyMouseTrackingMode). */ + GHOSTTY_MOUSE_ENCODER_OPT_EVENT = 0, + + /** Mouse output format (value: GhosttyMouseFormat). */ + GHOSTTY_MOUSE_ENCODER_OPT_FORMAT = 1, + + /** Renderer size context (value: GhosttyMouseEncoderSize). */ + GHOSTTY_MOUSE_ENCODER_OPT_SIZE = 2, + + /** Whether any mouse button is currently pressed (value: bool). */ + GHOSTTY_MOUSE_ENCODER_OPT_ANY_BUTTON_PRESSED = 3, + + /** Whether to enable motion deduplication by last cell (value: bool). */ + GHOSTTY_MOUSE_ENCODER_OPT_TRACK_LAST_CELL = 4, + GHOSTTY_MOUSE_ENCODER_OPT_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyMouseEncoderOption; + +/** + * Create a new mouse encoder instance. + * + * @param allocator Pointer to allocator, or NULL to use the default allocator + * @param encoder Pointer to store the created encoder handle + * @return GHOSTTY_SUCCESS on success, or an error code on failure + * + * @ingroup mouse + */ +GHOSTTY_API GhosttyResult ghostty_mouse_encoder_new(const GhosttyAllocator *allocator, + GhosttyMouseEncoder *encoder); + +/** + * Free a mouse encoder instance. + * + * @param encoder The encoder handle to free (may be NULL) + * + * @ingroup mouse + */ +GHOSTTY_API void ghostty_mouse_encoder_free(GhosttyMouseEncoder encoder); + +/** + * Set an option on the mouse encoder. + * + * A null pointer value does nothing. It does not reset to defaults. + * + * @param encoder The encoder handle, must not be NULL + * @param option The option to set + * @param value Pointer to option value (type depends on option) + * + * @ingroup mouse + */ +GHOSTTY_API void ghostty_mouse_encoder_setopt(GhosttyMouseEncoder encoder, + GhosttyMouseEncoderOption option, + const void *value); + +/** + * Set encoder options from a terminal's current state. + * + * This sets tracking mode and output format from terminal state. + * It does not modify size or any-button state. + * + * @param encoder The encoder handle, must not be NULL + * @param terminal The terminal handle, must not be NULL + * + * @ingroup mouse + */ +GHOSTTY_API void ghostty_mouse_encoder_setopt_from_terminal(GhosttyMouseEncoder encoder, + GhosttyTerminal terminal); + +/** + * Reset internal encoder state. + * + * This clears motion deduplication state (last tracked cell). + * + * @param encoder The encoder handle (may be NULL) + * + * @ingroup mouse + */ +GHOSTTY_API void ghostty_mouse_encoder_reset(GhosttyMouseEncoder encoder); + +/** + * Encode a mouse event into a terminal escape sequence. + * + * Not all mouse events produce output. In such cases this returns + * GHOSTTY_SUCCESS with out_len set to 0. + * + * If the output buffer is too small, this returns GHOSTTY_OUT_OF_SPACE + * and out_len contains the required size. + * + * @param encoder The encoder handle, must not be NULL + * @param event The mouse event to encode, must not be NULL + * @param out_buf Buffer to write encoded bytes to, or NULL to query required size + * @param out_buf_size Size of out_buf in bytes + * @param out_len Pointer to store bytes written (or required bytes on failure) + * @return GHOSTTY_SUCCESS on success, GHOSTTY_OUT_OF_SPACE if buffer is too small, + * or another error code + * + * @ingroup mouse + */ +GHOSTTY_API GhosttyResult ghostty_mouse_encoder_encode(GhosttyMouseEncoder encoder, + GhosttyMouseEvent event, + char *out_buf, + size_t out_buf_size, + size_t *out_len); + +#endif /* GHOSTTY_VT_MOUSE_ENCODER_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/mouse/event.h b/packages/terminal/vendor/include/ghostty/vt/mouse/event.h new file mode 100644 index 0000000000000000000000000000000000000000..a24b0c079bb0d264a90267fcba97688f9caf748d --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/mouse/event.h @@ -0,0 +1,195 @@ +/** + * @file event.h + * + * Mouse event representation and manipulation. + */ + +#ifndef GHOSTTY_VT_MOUSE_EVENT_H +#define GHOSTTY_VT_MOUSE_EVENT_H + +#include +#include +#include +#include + +/** + * Opaque handle to a mouse event. + * + * This handle represents a normalized mouse input event containing + * action, button, modifiers, and surface-space position. + * + * @ingroup mouse + */ +typedef struct GhosttyMouseEventImpl *GhosttyMouseEvent; + +/** + * Mouse event action type. + * + * @ingroup mouse + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Mouse button was pressed. */ + GHOSTTY_MOUSE_ACTION_PRESS = 0, + + /** Mouse button was released. */ + GHOSTTY_MOUSE_ACTION_RELEASE = 1, + + /** Mouse moved. */ + GHOSTTY_MOUSE_ACTION_MOTION = 2, + GHOSTTY_MOUSE_ACTION_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyMouseAction; + +/** + * Mouse button identity. + * + * @ingroup mouse + */ +typedef enum GHOSTTY_ENUM_TYPED { + GHOSTTY_MOUSE_BUTTON_UNKNOWN = 0, + GHOSTTY_MOUSE_BUTTON_LEFT = 1, + GHOSTTY_MOUSE_BUTTON_RIGHT = 2, + GHOSTTY_MOUSE_BUTTON_MIDDLE = 3, + GHOSTTY_MOUSE_BUTTON_FOUR = 4, + GHOSTTY_MOUSE_BUTTON_FIVE = 5, + GHOSTTY_MOUSE_BUTTON_SIX = 6, + GHOSTTY_MOUSE_BUTTON_SEVEN = 7, + GHOSTTY_MOUSE_BUTTON_EIGHT = 8, + GHOSTTY_MOUSE_BUTTON_NINE = 9, + GHOSTTY_MOUSE_BUTTON_TEN = 10, + GHOSTTY_MOUSE_BUTTON_ELEVEN = 11, + GHOSTTY_MOUSE_BUTTON_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyMouseButton; + +/** + * Mouse position in surface-space pixels. + * + * @ingroup mouse + */ +typedef struct { + float x; + float y; +} GhosttyMousePosition; + +/** + * Create a new mouse event instance. + * + * @param allocator Pointer to allocator, or NULL to use the default allocator + * @param event Pointer to store the created event handle + * @return GHOSTTY_SUCCESS on success, or an error code on failure + * + * @ingroup mouse + */ +GHOSTTY_API GhosttyResult ghostty_mouse_event_new(const GhosttyAllocator *allocator, + GhosttyMouseEvent *event); + +/** + * Free a mouse event instance. + * + * @param event The mouse event handle to free (may be NULL) + * + * @ingroup mouse + */ +GHOSTTY_API void ghostty_mouse_event_free(GhosttyMouseEvent event); + +/** + * Set the event action. + * + * @param event The event handle, must not be NULL + * @param action The action to set + * + * @ingroup mouse + */ +GHOSTTY_API void ghostty_mouse_event_set_action(GhosttyMouseEvent event, + GhosttyMouseAction action); + +/** + * Get the event action. + * + * @param event The event handle, must not be NULL + * @return The event action + * + * @ingroup mouse + */ +GHOSTTY_API GhosttyMouseAction ghostty_mouse_event_get_action(GhosttyMouseEvent event); + +/** + * Set the event button. + * + * This sets a concrete button identity for the event. + * To represent "no button" (for motion events), use + * ghostty_mouse_event_clear_button(). + * + * @param event The event handle, must not be NULL + * @param button The button to set + * + * @ingroup mouse + */ +GHOSTTY_API void ghostty_mouse_event_set_button(GhosttyMouseEvent event, + GhosttyMouseButton button); + +/** + * Clear the event button. + * + * This sets the event button to "none". + * + * @param event The event handle, must not be NULL + * + * @ingroup mouse + */ +GHOSTTY_API void ghostty_mouse_event_clear_button(GhosttyMouseEvent event); + +/** + * Get the event button. + * + * @param event The event handle, must not be NULL + * @param out_button Output pointer for the button value (may be NULL) + * @return true if a button is set, false if no button is set + * + * @ingroup mouse + */ +GHOSTTY_API bool ghostty_mouse_event_get_button(GhosttyMouseEvent event, + GhosttyMouseButton *out_button); + +/** + * Set keyboard modifiers held during the event. + * + * @param event The event handle, must not be NULL + * @param mods Modifier bitmask + * + * @ingroup mouse + */ +GHOSTTY_API void ghostty_mouse_event_set_mods(GhosttyMouseEvent event, + GhosttyMods mods); + +/** + * Get keyboard modifiers held during the event. + * + * @param event The event handle, must not be NULL + * @return Modifier bitmask + * + * @ingroup mouse + */ +GHOSTTY_API GhosttyMods ghostty_mouse_event_get_mods(GhosttyMouseEvent event); + +/** + * Set the event position in surface-space pixels. + * + * @param event The event handle, must not be NULL + * @param position The position to set + * + * @ingroup mouse + */ +GHOSTTY_API void ghostty_mouse_event_set_position(GhosttyMouseEvent event, + GhosttyMousePosition position); + +/** + * Get the event position in surface-space pixels. + * + * @param event The event handle, must not be NULL + * @return The current event position + * + * @ingroup mouse + */ +GHOSTTY_API GhosttyMousePosition ghostty_mouse_event_get_position(GhosttyMouseEvent event); + +#endif /* GHOSTTY_VT_MOUSE_EVENT_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/osc.h b/packages/terminal/vendor/include/ghostty/vt/osc.h new file mode 100644 index 0000000000000000000000000000000000000000..9409ebc738f97313f445a182d4f2df793cd4ff49 --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/osc.h @@ -0,0 +1,215 @@ +/** + * @file osc.h + * + * OSC (Operating System Command) sequence parser and command handling. + */ + +#ifndef GHOSTTY_VT_OSC_H +#define GHOSTTY_VT_OSC_H + +#include +#include +#include +#include +#include + +/** @defgroup osc OSC Parser + * + * OSC (Operating System Command) sequence parser and command handling. + * + * The parser operates in a streaming fashion, processing input byte-by-byte + * to handle OSC sequences that may arrive in fragments across multiple reads. + * This interface makes it easy to integrate into most environments and avoids + * over-allocating buffers. + * + * ## Basic Usage + * + * 1. Create a parser instance with ghostty_osc_new() + * 2. Feed bytes to the parser using ghostty_osc_next() + * 3. Finalize parsing with ghostty_osc_end() to get the command + * 4. Query command type and extract data using ghostty_osc_command_type() + * and ghostty_osc_command_data() + * 5. Free the parser with ghostty_osc_free() when done + * + * @{ + */ + +/** + * OSC command types. + * + * @ingroup osc + */ +typedef enum GHOSTTY_ENUM_TYPED { + GHOSTTY_OSC_COMMAND_INVALID = 0, + GHOSTTY_OSC_COMMAND_CHANGE_WINDOW_TITLE = 1, + GHOSTTY_OSC_COMMAND_CHANGE_WINDOW_ICON = 2, + GHOSTTY_OSC_COMMAND_SEMANTIC_PROMPT = 3, + GHOSTTY_OSC_COMMAND_CLIPBOARD_CONTENTS = 4, + GHOSTTY_OSC_COMMAND_REPORT_PWD = 5, + GHOSTTY_OSC_COMMAND_MOUSE_SHAPE = 6, + GHOSTTY_OSC_COMMAND_COLOR_OPERATION = 7, + GHOSTTY_OSC_COMMAND_KITTY_COLOR_PROTOCOL = 8, + GHOSTTY_OSC_COMMAND_SHOW_DESKTOP_NOTIFICATION = 9, + GHOSTTY_OSC_COMMAND_HYPERLINK_START = 10, + GHOSTTY_OSC_COMMAND_HYPERLINK_END = 11, + GHOSTTY_OSC_COMMAND_CONEMU_SLEEP = 12, + GHOSTTY_OSC_COMMAND_CONEMU_SHOW_MESSAGE_BOX = 13, + GHOSTTY_OSC_COMMAND_CONEMU_CHANGE_TAB_TITLE = 14, + GHOSTTY_OSC_COMMAND_CONEMU_PROGRESS_REPORT = 15, + GHOSTTY_OSC_COMMAND_CONEMU_WAIT_INPUT = 16, + GHOSTTY_OSC_COMMAND_CONEMU_GUIMACRO = 17, + GHOSTTY_OSC_COMMAND_CONEMU_RUN_PROCESS = 18, + GHOSTTY_OSC_COMMAND_CONEMU_OUTPUT_ENVIRONMENT_VARIABLE = 19, + GHOSTTY_OSC_COMMAND_CONEMU_XTERM_EMULATION = 20, + GHOSTTY_OSC_COMMAND_CONEMU_COMMENT = 21, + GHOSTTY_OSC_COMMAND_KITTY_TEXT_SIZING = 22, + GHOSTTY_OSC_COMMAND_TYPE_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyOscCommandType; + +/** + * OSC command data types. + * + * These values specify what type of data to extract from an OSC command + * using `ghostty_osc_command_data`. + * + * @ingroup osc + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Invalid data type. Never results in any data extraction. */ + GHOSTTY_OSC_DATA_INVALID = 0, + + /** + * Window title string data. + * + * Valid for: GHOSTTY_OSC_COMMAND_CHANGE_WINDOW_TITLE + * + * Output type: const char ** (pointer to null-terminated string) + * + * Lifetime: Valid until the next call to any ghostty_osc_* function with + * the same parser instance. Memory is owned by the parser. + */ + GHOSTTY_OSC_DATA_CHANGE_WINDOW_TITLE_STR = 1, + GHOSTTY_OSC_DATA_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyOscCommandData; + +/** + * Create a new OSC parser instance. + * + * Creates a new OSC (Operating System Command) parser using the provided + * allocator. The parser must be freed using ghostty_vt_osc_free() when + * no longer needed. + * + * @param allocator Pointer to the allocator to use for memory management, or NULL to use the default allocator + * @param parser Pointer to store the created parser handle + * @return GHOSTTY_SUCCESS on success, or an error code on failure + * + * @ingroup osc + */ +GHOSTTY_API GhosttyResult ghostty_osc_new(const GhosttyAllocator *allocator, GhosttyOscParser *parser); + +/** + * Free an OSC parser instance. + * + * Releases all resources associated with the OSC parser. After this call, + * the parser handle becomes invalid and must not be used. + * + * @param parser The parser handle to free (may be NULL) + * + * @ingroup osc + */ +GHOSTTY_API void ghostty_osc_free(GhosttyOscParser parser); + +/** + * Reset an OSC parser instance to its initial state. + * + * Resets the parser state, clearing any partially parsed OSC sequences + * and returning the parser to its initial state. This is useful for + * reusing a parser instance or recovering from parse errors. + * + * @param parser The parser handle to reset, must not be null. + * + * @ingroup osc + */ +GHOSTTY_API void ghostty_osc_reset(GhosttyOscParser parser); + +/** + * Parse the next byte in an OSC sequence. + * + * Processes a single byte as part of an OSC sequence. The parser maintains + * internal state to track the progress through the sequence. Call this + * function for each byte in the sequence data. + * + * When finished pumping the parser with bytes, call ghostty_osc_end + * to get the final result. + * + * @param parser The parser handle, must not be null. + * @param byte The next byte to parse + * + * @ingroup osc + */ +GHOSTTY_API void ghostty_osc_next(GhosttyOscParser parser, uint8_t byte); + +/** + * Finalize OSC parsing and retrieve the parsed command. + * + * Call this function after feeding all bytes of an OSC sequence to the parser + * using ghostty_osc_next() with the exception of the terminating character + * (ESC or ST). This function finalizes the parsing process and returns the + * parsed OSC command. + * + * The return value is never NULL. Invalid commands will return a command + * with type GHOSTTY_OSC_COMMAND_INVALID. + * + * The terminator parameter specifies the byte that terminated the OSC sequence + * (typically 0x07 for BEL or 0x5C for ST after ESC). This information is + * preserved in the parsed command so that responses can use the same terminator + * format for better compatibility with the calling program. For commands that + * do not require a response, this parameter is ignored and the resulting + * command will not retain the terminator information. + * + * The returned command handle is valid until the next call to any + * `ghostty_osc_*` function with the same parser instance with the exception + * of command introspection functions such as `ghostty_osc_command_type`. + * + * @param parser The parser handle, must not be null. + * @param terminator The terminating byte of the OSC sequence (0x07 for BEL, 0x5C for ST) + * @return Handle to the parsed OSC command + * + * @ingroup osc + */ +GHOSTTY_API GhosttyOscCommand ghostty_osc_end(GhosttyOscParser parser, uint8_t terminator); + +/** + * Get the type of an OSC command. + * + * Returns the type identifier for the given OSC command. This can be used + * to determine what kind of command was parsed and what data might be + * available from it. + * + * @param command The OSC command handle to query (may be NULL) + * @return The command type, or GHOSTTY_OSC_COMMAND_INVALID if command is NULL + * + * @ingroup osc + */ +GHOSTTY_API GhosttyOscCommandType ghostty_osc_command_type(GhosttyOscCommand command); + +/** + * Extract data from an OSC command. + * + * Extracts typed data from the given OSC command based on the specified + * data type. The output pointer must be of the appropriate type for the + * requested data kind. Valid command types, output types, and memory + * safety information are documented in the `GhosttyOscCommandData` enum. + * + * @param command The OSC command handle to query (may be NULL) + * @param data The type of data to extract + * @param out Pointer to store the extracted data (type depends on data parameter) + * @return true if data extraction was successful, false otherwise + * + * @ingroup osc + */ +GHOSTTY_API bool ghostty_osc_command_data(GhosttyOscCommand command, GhosttyOscCommandData data, void *out); + +/** @} */ + +#endif /* GHOSTTY_VT_OSC_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/paste.h b/packages/terminal/vendor/include/ghostty/vt/paste.h new file mode 100644 index 0000000000000000000000000000000000000000..b3df5be4e0d9f2aa4be2d3eabcdfad7b6de8b230 --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/paste.h @@ -0,0 +1,101 @@ +/** + * @file paste.h + * + * Paste utilities - validate and encode paste data for terminal input. + */ + +#ifndef GHOSTTY_VT_PASTE_H +#define GHOSTTY_VT_PASTE_H + +/** @defgroup paste Paste Utilities + * + * Utilities for validating and encoding paste data for terminal input. + * + * ## Basic Usage + * + * Use ghostty_paste_is_safe() to check if paste data contains potentially + * dangerous sequences before sending it to the terminal. + * + * Use ghostty_paste_encode() to encode paste data for writing to the pty, + * including bracketed paste wrapping and unsafe byte stripping. + * + * ## Examples + * + * ### Safety Check + * + * @snippet c-vt-paste/src/main.c paste-safety + * + * ### Encoding + * + * @snippet c-vt-paste/src/main.c paste-encode + * + * @{ + */ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Check if paste data is safe to paste into the terminal. + * + * Data is considered unsafe if it contains: + * - Newlines (`\n`) which can inject commands + * - The bracketed paste end sequence (`\x1b[201~`) which can be used + * to exit bracketed paste mode and inject commands + * + * This check is conservative and considers data unsafe regardless of + * current terminal state. + * + * @param data The paste data to check (must not be NULL) + * @param len The length of the data in bytes + * @return true if the data is safe to paste, false otherwise + */ +GHOSTTY_API bool ghostty_paste_is_safe(const char* data, size_t len); + +/** + * Encode paste data for writing to the terminal pty. + * + * This function prepares paste data for terminal input by: + * - Stripping unsafe control bytes (NUL, ESC, DEL, etc.) by replacing + * them with spaces + * - Wrapping the data in bracketed paste sequences if @p bracketed is true + * - Replacing newlines with carriage returns if @p bracketed is false + * + * The input @p data buffer is modified in place during encoding. The + * encoded result (potentially with bracketed paste prefix/suffix) is + * written to the output buffer. + * + * If the output buffer is too small, the function returns + * GHOSTTY_OUT_OF_SPACE and sets the required size in @p out_written. + * The caller can then retry with a sufficiently sized buffer. + * + * @param data The paste data to encode (modified in place, may be NULL) + * @param data_len The length of the input data in bytes + * @param bracketed Whether bracketed paste mode is active + * @param buf Output buffer to write the encoded result into (may be NULL) + * @param buf_len Size of the output buffer in bytes + * @param[out] out_written On success, the number of bytes written. On + * GHOSTTY_OUT_OF_SPACE, the required buffer size. + * @return GHOSTTY_SUCCESS on success, GHOSTTY_OUT_OF_SPACE if the buffer + * is too small + */ +GHOSTTY_API GhosttyResult ghostty_paste_encode( + char* data, + size_t data_len, + bool bracketed, + char* buf, + size_t buf_len, + size_t* out_written); + +#ifdef __cplusplus +} +#endif + +/** @} */ + +#endif /* GHOSTTY_VT_PASTE_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/point.h b/packages/terminal/vendor/include/ghostty/vt/point.h new file mode 100644 index 0000000000000000000000000000000000000000..8b717f4940cd51e92b62d7238a4e4a638b8ecc16 --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/point.h @@ -0,0 +1,89 @@ +/** + * @file point.h + * + * Terminal point types for referencing locations in the terminal grid. + */ + +#ifndef GHOSTTY_VT_POINT_H +#define GHOSTTY_VT_POINT_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** @defgroup point Point + * + * Types for referencing x/y positions in the terminal grid under + * different coordinate systems (active area, viewport, full screen, + * scrollback history). + * + * @{ + */ + +/** + * A coordinate in the terminal grid. + * + * @ingroup point + */ +typedef struct { + /** Column (0-indexed). */ + uint16_t x; + + /** Row (0-indexed). May exceed page size for screen/history tags. */ + uint32_t y; +} GhosttyPointCoordinate; + +/** + * Point reference tag. + * + * Determines which coordinate system a point uses. + * + * @ingroup point + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Active area where the cursor can move. */ + GHOSTTY_POINT_TAG_ACTIVE = 0, + + /** Visible viewport (changes when scrolled). */ + GHOSTTY_POINT_TAG_VIEWPORT = 1, + + /** Full screen including scrollback. */ + GHOSTTY_POINT_TAG_SCREEN = 2, + + /** Scrollback history only (before active area). */ + GHOSTTY_POINT_TAG_HISTORY = 3, + GHOSTTY_POINT_TAG_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, + } GhosttyPointTag; + +/** + * Point value union. + * + * @ingroup point + */ +typedef union { + /** Coordinate (used for all tag variants). */ + GhosttyPointCoordinate coordinate; + + /** Padding for ABI compatibility. Do not use. */ + uint64_t _padding[2]; +} GhosttyPointValue; + +/** + * Tagged union for a point in the terminal grid. + * + * @ingroup point + */ +typedef struct { + GhosttyPointTag tag; + GhosttyPointValue value; +} GhosttyPoint; + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* GHOSTTY_VT_POINT_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/render.h b/packages/terminal/vendor/include/ghostty/vt/render.h new file mode 100644 index 0000000000000000000000000000000000000000..8f1eb140fecfd407fe4e322a603d126401905053 --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/render.h @@ -0,0 +1,811 @@ +/** + * @file render.h + * + * Render state for creating high performance renderers. + */ + +#ifndef GHOSTTY_VT_RENDER_H +#define GHOSTTY_VT_RENDER_H + +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** @defgroup render Render State + * + * Represents the state required to render a visible screen (a viewport) + * of a terminal instance. This is stateful and optimized for repeated + * updates from a single terminal instance and only updating dirty regions + * of the screen. + * + * The key design principle of this API is that it only needs read/write + * access to the terminal instance during the update call. This allows + * the render state to minimally impact terminal IO performance and also + * allows the renderer to be safely multi-threaded (as long as a lock is + * held during the update call to ensure exclusive access to the terminal + * instance). + * + * The basic usage of this API is: + * + * 1. Create an empty render state + * 2. Update it from a terminal instance whenever you need. + * 3. Read from the render state to get the data needed to draw your frame. + * + * ## Two-Phase Updates + * + * For callers that synchronize terminal access (e.g. a renderer thread + * sharing a lock with an IO thread), the update can be split into two + * phases to minimize the time the terminal must be held exclusively: + * ghostty_render_state_begin_update requires terminal access, while + * ghostty_render_state_end_update completes any deferred work using only + * memory owned by the render state. A typical renderer would lock, begin + * the update, unlock, and then end the update while the IO thread is free + * to continue modifying the terminal. ghostty_render_state_update is a + * convenience that performs both phases in one call. + * + * ## Dirty Tracking + * + * Dirty tracking is a key feature of the render state that allows renderers + * to efficiently determine what parts of the screen have changed and only + * redraw changed regions. + * + * The render state API keeps track of dirty state at two independent layers: + * a global dirty state that indicates whether the entire frame is clean, + * partially dirty, or fully dirty, and a per-row dirty state that allows + * tracking which rows in a partially dirty frame have changed. + * + * The user of the render state API is expected to unset both of these. + * The `update` call does not unset dirty state, it only updates it. + * + * An extremely important detail: setting one dirty state doesn't unset + * the other. For example, setting the global dirty state to false does not + * reset the row-level dirty flags. So, the caller of the render state API must + * be careful to manage both layers of dirty state correctly. + * + * ## Examples + * + * ### Creating and updating render state + * @snippet c-vt-render/src/main.c render-state-update + * + * ### Checking dirty state + * @snippet c-vt-render/src/main.c render-dirty-check + * + * ### Reading colors + * @snippet c-vt-render/src/main.c render-colors + * + * ### Reading cursor state + * @snippet c-vt-render/src/main.c render-cursor + * + * ### Iterating rows and cells + * @snippet c-vt-render/src/main.c render-row-iterate + * + * ### Resetting dirty state after rendering + * @snippet c-vt-render/src/main.c render-dirty-reset + * + * @{ + */ + +/** + * Dirty state of a render state after update. + * + * @ingroup render + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Not dirty at all; rendering can be skipped. */ + GHOSTTY_RENDER_STATE_DIRTY_FALSE = 0, + + /** Some rows changed; renderer can redraw incrementally. */ + GHOSTTY_RENDER_STATE_DIRTY_PARTIAL = 1, + + /** Global state changed; renderer should redraw everything. */ + GHOSTTY_RENDER_STATE_DIRTY_FULL = 2, + GHOSTTY_RENDER_STATE_DIRTY_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyRenderStateDirty; + +/** + * Visual style of the cursor. + * + * @ingroup render + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Bar cursor (DECSCUSR 5, 6). */ + GHOSTTY_RENDER_STATE_CURSOR_VISUAL_STYLE_BAR = 0, + + /** Block cursor (DECSCUSR 1, 2). */ + GHOSTTY_RENDER_STATE_CURSOR_VISUAL_STYLE_BLOCK = 1, + + /** Underline cursor (DECSCUSR 3, 4). */ + GHOSTTY_RENDER_STATE_CURSOR_VISUAL_STYLE_UNDERLINE = 2, + + /** Hollow block cursor. */ + GHOSTTY_RENDER_STATE_CURSOR_VISUAL_STYLE_BLOCK_HOLLOW = 3, + GHOSTTY_RENDER_STATE_CURSOR_VISUAL_STYLE_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyRenderStateCursorVisualStyle; + +/** + * Queryable data kinds for ghostty_render_state_get(). + * + * @ingroup render + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Invalid / sentinel value. */ + GHOSTTY_RENDER_STATE_DATA_INVALID = 0, + + /** Viewport width in cells (uint16_t). */ + GHOSTTY_RENDER_STATE_DATA_COLS = 1, + + /** Viewport height in cells (uint16_t). */ + GHOSTTY_RENDER_STATE_DATA_ROWS = 2, + + /** Current dirty state (GhosttyRenderStateDirty). */ + GHOSTTY_RENDER_STATE_DATA_DIRTY = 3, + + /** Populate a pre-allocated GhosttyRenderStateRowIterator with row data + * from the render state (GhosttyRenderStateRowIterator). Row data is + * only valid as long as the underlying render state is not updated. + * It is unsafe to use row data after updating the render state. + * */ + GHOSTTY_RENDER_STATE_DATA_ROW_ITERATOR = 4, + + /** Default/current background color (GhosttyColorRgb). */ + GHOSTTY_RENDER_STATE_DATA_COLOR_BACKGROUND = 5, + + /** Default/current foreground color (GhosttyColorRgb). */ + GHOSTTY_RENDER_STATE_DATA_COLOR_FOREGROUND = 6, + + /** Cursor color when explicitly set by terminal state (GhosttyColorRgb). + * Returns GHOSTTY_INVALID_VALUE if no explicit cursor color is set; + * use COLOR_CURSOR_HAS_VALUE to check first. */ + GHOSTTY_RENDER_STATE_DATA_COLOR_CURSOR = 7, + + /** Whether an explicit cursor color is set (bool). */ + GHOSTTY_RENDER_STATE_DATA_COLOR_CURSOR_HAS_VALUE = 8, + + /** The active 256-color palette (GhosttyColorRgb[256]). */ + GHOSTTY_RENDER_STATE_DATA_COLOR_PALETTE = 9, + + /** The visual style of the cursor (GhosttyRenderStateCursorVisualStyle). */ + GHOSTTY_RENDER_STATE_DATA_CURSOR_VISUAL_STYLE = 10, + + /** Whether the cursor is visible based on terminal modes (bool). */ + GHOSTTY_RENDER_STATE_DATA_CURSOR_VISIBLE = 11, + + /** Whether the cursor should blink based on terminal modes (bool). */ + GHOSTTY_RENDER_STATE_DATA_CURSOR_BLINKING = 12, + + /** Whether the cursor is at a password input field (bool). */ + GHOSTTY_RENDER_STATE_DATA_CURSOR_PASSWORD_INPUT = 13, + + /** Whether the cursor is visible within the viewport (bool). + * If false, the cursor viewport position values are undefined. */ + GHOSTTY_RENDER_STATE_DATA_CURSOR_VIEWPORT_HAS_VALUE = 14, + + /** Cursor viewport x position in cells (uint16_t). + * Only valid when CURSOR_VIEWPORT_HAS_VALUE is true. */ + GHOSTTY_RENDER_STATE_DATA_CURSOR_VIEWPORT_X = 15, + + /** Cursor viewport y position in cells (uint16_t). + * Only valid when CURSOR_VIEWPORT_HAS_VALUE is true. */ + GHOSTTY_RENDER_STATE_DATA_CURSOR_VIEWPORT_Y = 16, + + /** Whether the cursor is on the tail of a wide character (bool). + * Only valid when CURSOR_VIEWPORT_HAS_VALUE is true. */ + GHOSTTY_RENDER_STATE_DATA_CURSOR_VIEWPORT_WIDE_TAIL = 17, + GHOSTTY_RENDER_STATE_DATA_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyRenderStateData; + +/** + * Settable options for ghostty_render_state_set(). + * + * @ingroup render + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Set dirty state (GhosttyRenderStateDirty). */ + GHOSTTY_RENDER_STATE_OPTION_DIRTY = 0, + GHOSTTY_RENDER_STATE_OPTION_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyRenderStateOption; + +/** + * Queryable data kinds for ghostty_render_state_row_get(). + * + * @ingroup render + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Invalid / sentinel value. */ + GHOSTTY_RENDER_STATE_ROW_DATA_INVALID = 0, + + /** Whether the current row is dirty (bool). */ + GHOSTTY_RENDER_STATE_ROW_DATA_DIRTY = 1, + + /** The raw row value (GhosttyRow). */ + GHOSTTY_RENDER_STATE_ROW_DATA_RAW = 2, + + /** Populate a pre-allocated GhosttyRenderStateRowCells with cell data for + * the current row (GhosttyRenderStateRowCells). Cell data is only + * valid as long as the underlying render state is not updated. + * It is unsafe to use cell data after updating the render state. */ + GHOSTTY_RENDER_STATE_ROW_DATA_CELLS = 3, + + /** Row-local selected cell range (GhosttyRenderStateRowSelection). */ + GHOSTTY_RENDER_STATE_ROW_DATA_SELECTION = 4, + GHOSTTY_RENDER_STATE_ROW_DATA_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyRenderStateRowData; + +/** + * Settable options for ghostty_render_state_row_set(). + * + * @ingroup render + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Set dirty state for the current row (bool). */ + GHOSTTY_RENDER_STATE_ROW_OPTION_DIRTY = 0, + GHOSTTY_RENDER_STATE_ROW_OPTION_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyRenderStateRowOption; + +/** + * Row-local selection range. + * + * This struct uses the sized-struct ABI pattern. Initialize with + * GHOSTTY_INIT_SIZED(GhosttyRenderStateRowSelection) before querying + * GHOSTTY_RENDER_STATE_ROW_DATA_SELECTION. + * + * Querying GHOSTTY_RENDER_STATE_ROW_DATA_SELECTION returns GHOSTTY_NO_VALUE + * if the current row does not intersect the current selection. + * + * @ingroup render + */ +typedef struct { + /** Size of this struct in bytes. Must be set to sizeof(GhosttyRenderStateRowSelection). */ + size_t size; + + /** Start column of the row-local selection range, inclusive. */ + uint16_t start_x; + + /** End column of the row-local selection range, inclusive. */ + uint16_t end_x; +} GhosttyRenderStateRowSelection; + +/** Narrow ASCII cell returned by the optional whole-row render fast path. */ +typedef struct { + uint32_t codepoint; + uint32_t foreground; +} GhosttyRenderStateAsciiCell; + +/** + * Render-state color information. + * + * This struct uses the sized-struct ABI pattern. Initialize with + * GHOSTTY_INIT_SIZED(GhosttyRenderStateColors) before calling + * ghostty_render_state_colors_get(). + * + * Example: + * @code + * GhosttyRenderStateColors colors = GHOSTTY_INIT_SIZED(GhosttyRenderStateColors); + * GhosttyResult result = ghostty_render_state_colors_get(state, &colors); + * @endcode + * + * @ingroup render + */ +typedef struct { + /** Size of this struct in bytes. Must be set to sizeof(GhosttyRenderStateColors). */ + size_t size; + + /** The default/current background color for the render state. */ + GhosttyColorRgb background; + + /** The default/current foreground color for the render state. */ + GhosttyColorRgb foreground; + + /** The cursor color when explicitly set by terminal state. */ + GhosttyColorRgb cursor; + + /** + * True when cursor contains a valid explicit cursor color value. + * If this is false, the cursor color should be ignored; it will + * contain undefined data. + * */ + bool cursor_has_value; + + /** The active 256-color palette for this render state. */ + GhosttyColorRgb palette[256]; +} GhosttyRenderStateColors; + +/** + * Create a new render state instance. + * + * @param allocator Pointer to allocator, or NULL to use the default allocator + * @param state Pointer to store the created render state handle + * @return GHOSTTY_SUCCESS on success, GHOSTTY_OUT_OF_MEMORY on allocation + * failure + * + * @ingroup render + */ +GHOSTTY_API GhosttyResult ghostty_render_state_new(const GhosttyAllocator* allocator, + GhosttyRenderState* state); + +/** + * Free a render state instance. + * + * Releases all resources associated with the render state. After this call, + * the render state handle becomes invalid. + * + * @param state The render state handle to free (may be NULL) + * + * @ingroup render + */ +GHOSTTY_API void ghostty_render_state_free(GhosttyRenderState state); + +/** + * Update a render state instance from a terminal. + * + * This consumes terminal/screen dirty state in the same way as the internal + * render state update path. + * + * This is a convenience function that performs a full update in one call, + * equivalent to ghostty_render_state_begin_update immediately followed by + * ghostty_render_state_end_update. Callers that hold a lock over the + * terminal state should prefer calling the two phases directly so that the + * lock is only held for the begin phase. + * + * @param state The render state handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param terminal The terminal handle to read from (NULL returns GHOSTTY_INVALID_VALUE) + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if `state` or + * `terminal` is NULL, GHOSTTY_OUT_OF_MEMORY if updating the state requires + * allocation and that allocation fails + * + * @ingroup render + */ +GHOSTTY_API GhosttyResult ghostty_render_state_update(GhosttyRenderState state, + GhosttyTerminal terminal); + +/** + * Begin an update of a render state instance from a terminal. + * + * Every begin must be completed with a ghostty_render_state_end_update call + * before the render state is read. + * + * This two-phase structure exists for callers that synchronize access to the + * terminal state (e.g. with a lock shared with an IO thread): only this + * function requires terminal access, so a caller can hold its lock for this + * call only and then call ghostty_render_state_end_update after releasing + * it. The end phase exclusively reads and writes memory owned by the render + * state, so it is safe to call while the terminal is being modified. + * + * Work that doesn't require terminal access may be deferred to the end phase + * to keep this call (and therefore lock hold time) as short as possible. + * Callers must treat the render state as incomplete until + * ghostty_render_state_end_update is called. + * + * This consumes terminal/screen dirty state in the same way as the internal + * render state update path. + * + * @param state The render state handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param terminal The terminal handle to read from (NULL returns GHOSTTY_INVALID_VALUE) + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if `state` or + * `terminal` is NULL, GHOSTTY_OUT_OF_MEMORY if updating the state requires + * allocation and that allocation fails + * + * @ingroup render + */ +GHOSTTY_API GhosttyResult ghostty_render_state_begin_update(GhosttyRenderState state, + GhosttyTerminal terminal); + +/** + * Complete a prior ghostty_render_state_begin_update call by performing any + * deferred work. + * + * This only reads and writes memory owned by the render state, so it is safe + * to call while the terminal is being modified (no terminal synchronization + * is required). Calling this without a prior begin is a safe no-op. + * + * @param state The render state handle (NULL returns GHOSTTY_INVALID_VALUE) + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if `state` is + * NULL + * + * @ingroup render + */ +GHOSTTY_API GhosttyResult ghostty_render_state_end_update(GhosttyRenderState state); + +/** + * Get a value from a render state. + * + * The `out` pointer must point to a value of the type corresponding to the + * requested data kind (see GhosttyRenderStateData). + * + * @param state The render state handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param data The data kind to query + * @param[out] out Pointer to receive the queried value + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if `state` is + * NULL or `data` is not a recognized enum value + * + * @ingroup render + */ +GHOSTTY_API GhosttyResult ghostty_render_state_get(GhosttyRenderState state, + GhosttyRenderStateData data, + void* out); + +/** + * Get multiple data fields from a render state in a single call. + * + * Each element in the keys array specifies a data kind, and the + * corresponding element in the values array receives the result. + * + * Processing stops at the first error; on success out_written + * is set to count, on error it is set to the index of the + * failing key (i.e. the number of values successfully written). + * + * @param state The render state handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param count Number of key/value pairs + * @param keys Array of data kinds to query + * @param values Array of output pointers (types must match each key's + * documented output type) + * @param[out] out_written On return, receives the number of values + * successfully written (may be NULL) + * @return GHOSTTY_SUCCESS if all queries succeed + * + * @ingroup render + */ +GHOSTTY_API GhosttyResult ghostty_render_state_get_multi( + GhosttyRenderState state, + size_t count, + const GhosttyRenderStateData* keys, + void** values, + size_t* out_written); + +/** + * Set an option on a render state. + * + * The `value` pointer must point to a value of the type corresponding to the + * requested option kind (see GhosttyRenderStateOption). + * + * @param state The render state handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param option The option to set + * @param[in] value Pointer to the value to set (NULL returns + * GHOSTTY_INVALID_VALUE) + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if `state` or + * `value` is NULL + * + * @ingroup render + */ +GHOSTTY_API GhosttyResult ghostty_render_state_set(GhosttyRenderState state, + GhosttyRenderStateOption option, + const void* value); + +/** + * Get the current color information from a render state. + * + * This writes as many fields as fit in the caller-provided sized struct. + * `out_colors->size` must be set by the caller (typically via + * GHOSTTY_INIT_SIZED(GhosttyRenderStateColors)). + * + * @param state The render state handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param[out] out_colors Sized output struct to receive render-state colors + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if `state` or + * `out_colors` is NULL, or if `out_colors->size` is smaller than + * `sizeof(size_t)` + * + * @ingroup render + */ +GHOSTTY_API GhosttyResult ghostty_render_state_colors_get(GhosttyRenderState state, + GhosttyRenderStateColors* out_colors); + +/** + * Create a new row iterator instance. + * + * All fields except the allocator are left undefined until populated + * via ghostty_render_state_get() with + * GHOSTTY_RENDER_STATE_DATA_ROW_ITERATOR. + * + * @param allocator Pointer to allocator, or NULL to use the default allocator + * @param[out] out_iterator On success, receives the created iterator handle + * @return GHOSTTY_SUCCESS on success, GHOSTTY_OUT_OF_MEMORY on allocation + * failure + * + * @ingroup render + */ +GHOSTTY_API GhosttyResult ghostty_render_state_row_iterator_new( + const GhosttyAllocator* allocator, + GhosttyRenderStateRowIterator* out_iterator); + +/** + * Free a render-state row iterator. + * + * @param iterator The iterator handle to free (may be NULL) + * + * @ingroup render + */ +GHOSTTY_API void ghostty_render_state_row_iterator_free(GhosttyRenderStateRowIterator iterator); + +/** + * Move a render-state row iterator to the next row. + * + * Returns true if the iterator moved successfully and row data is + * available to read at the new position. + * + * @param iterator The iterator handle to advance (may be NULL) + * @return true if advanced to the next row, false if `iterator` is + * NULL or if the iterator has reached the end + * + * @ingroup render + */ +GHOSTTY_API bool ghostty_render_state_row_iterator_next(GhosttyRenderStateRowIterator iterator); + +/** + * Get a value from the current row in a render-state row iterator. + * + * The `out` pointer must point to a value of the type corresponding to the + * requested data kind (see GhosttyRenderStateRowData). + * Call ghostty_render_state_row_iterator_next() at least once before + * calling this function. + * + * @param iterator The iterator handle to query (NULL returns GHOSTTY_INVALID_VALUE) + * @param data The data kind to query + * @param[out] out Pointer to receive the queried value + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if + * `iterator` is NULL or the iterator is not positioned on a row + * + * @ingroup render + */ +GHOSTTY_API GhosttyResult ghostty_render_state_row_get( + GhosttyRenderStateRowIterator iterator, + GhosttyRenderStateRowData data, + void* out); + +/** + * Get multiple data fields from the current row in a single call. + * + * Each element in the keys array specifies a data kind, and the + * corresponding element in the values array receives the result. + * + * Processing stops at the first error; on success out_written + * is set to count, on error it is set to the index of the + * failing key (i.e. the number of values successfully written). + * + * @param iterator The iterator handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param count Number of key/value pairs + * @param keys Array of data kinds to query + * @param values Array of output pointers (types must match each key's + * documented output type) + * @param[out] out_written On return, receives the number of values + * successfully written (may be NULL) + * @return GHOSTTY_SUCCESS if all queries succeed + * + * @ingroup render + */ +GHOSTTY_API GhosttyResult ghostty_render_state_row_get_multi( + GhosttyRenderStateRowIterator iterator, + size_t count, + const GhosttyRenderStateRowData* keys, + void** values, + size_t* out_written); + +/** + * Set an option on the current row in a render-state row iterator. + * + * The `value` pointer must point to a value of the type corresponding to the + * requested option kind (see GhosttyRenderStateRowOption). + * Call ghostty_render_state_row_iterator_next() at least once before + * calling this function. + * + * @param iterator The iterator handle to update (NULL returns GHOSTTY_INVALID_VALUE) + * @param option The option to set + * @param[in] value Pointer to the value to set (NULL returns + * GHOSTTY_INVALID_VALUE) + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if + * `iterator` is NULL or the iterator is not positioned on a row + * + * @ingroup render + */ +GHOSTTY_API GhosttyResult ghostty_render_state_row_set( + GhosttyRenderStateRowIterator iterator, + GhosttyRenderStateRowOption option, + const void* value); + +/** + * Create a new row cells instance. + * + * All fields except the allocator are left undefined until populated + * via ghostty_render_state_row_get() with + * GHOSTTY_RENDER_STATE_ROW_DATA_CELLS. + * + * You can reuse this value repeatedly with ghostty_render_state_row_get() to + * avoid allocating a new cells container for every row. + * + * @param allocator Pointer to allocator, or NULL to use the default allocator + * @param[out] out_cells On success, receives the created row cells handle + * @return GHOSTTY_SUCCESS on success, GHOSTTY_OUT_OF_MEMORY on allocation + * failure + * + * @ingroup render + */ +GHOSTTY_API GhosttyResult ghostty_render_state_row_cells_new( + const GhosttyAllocator* allocator, + GhosttyRenderStateRowCells* out_cells); + +/** + * Queryable data kinds for ghostty_render_state_row_cells_get(). + * + * @ingroup render + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Invalid / sentinel value. */ + GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_INVALID = 0, + + /** The raw cell value (GhosttyCell). */ + GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_RAW = 1, + + /** The style for the current cell (GhosttyStyle). */ + GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_STYLE = 2, + + /** The total number of grapheme codepoints including the base codepoint + * (uint32_t). Returns 0 if the cell has no text. */ + GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_GRAPHEMES_LEN = 3, + + /** Write grapheme codepoints into a caller-provided buffer (uint32_t*). + * The buffer must be at least graphemes_len elements. The base codepoint + * is written first, followed by any extra codepoints. */ + GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_GRAPHEMES_BUF = 4, + + /** The resolved background color of the cell (GhosttyColorRgb). + * Flattens the three possible sources: content-tag bg_color_rgb, + * content-tag bg_color_palette (looked up in the palette), or the + * style's bg_color. Returns GHOSTTY_INVALID_VALUE if the cell has + * no background color, in which case the caller should use whatever + * default background color it wants (e.g. the terminal background). */ + GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_BG_COLOR = 5, + + /** The resolved foreground color of the cell (GhosttyColorRgb). + * Resolves palette indices through the palette. Bold color handling + * is not applied; the caller should handle bold styling separately. + * Returns GHOSTTY_INVALID_VALUE if the cell has no explicit foreground + * color, in which case the caller should use whatever default foreground + * color it wants (e.g. the terminal foreground). */ + GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_FG_COLOR = 6, + + /** Whether the cell is contained within the current selection (bool). + * This returns true when the cell's column is within the current row's + * row-local selection range, and false otherwise. Rendering policy for + * selected cells (colors, inversion, etc.) is left to the caller. + * + * Renderers that can draw cells in spans may be more efficient querying + * GHOSTTY_RENDER_STATE_ROW_DATA_SELECTION once per row and applying that + * range directly, avoiding one C API call per cell for selection state. */ + GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_SELECTED = 7, + + /** Whether the cell has any explicit styling (bool). + * This is equivalent to querying the raw cell's + * GHOSTTY_CELL_DATA_HAS_STYLING value, but avoids materializing the raw + * GhosttyCell for renderers that only need to know whether fetching the + * full style is necessary. */ + GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_HAS_STYLING = 8, + + /** + * Encode the current cell's full grapheme cluster as UTF-8 into a + * caller-provided buffer (GhosttyBuffer). + * + * The base codepoint is encoded first, followed by any extra grapheme + * codepoints. Returns GHOSTTY_SUCCESS with len=0 when the cell has no text. + * + * If ptr is NULL or cap is too small for a non-empty cell, returns + * GHOSTTY_OUT_OF_SPACE without writing any bytes and sets len to the required + * buffer size in bytes. + */ + GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_GRAPHEMES_UTF8 = 9, + GHOSTTY_RENDER_STATE_ROW_CELLS_DATA_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyRenderStateRowCellsData; + +/** + * Move a render-state row cells iterator to the next cell. + * + * Returns true if the iterator moved successfully and cell data is + * available to read at the new position. + * + * @param cells The row cells handle to advance (may be NULL) + * @return true if advanced to the next cell, false if `cells` is + * NULL or if the iterator has reached the end + * + * @ingroup render + */ +GHOSTTY_API bool ghostty_render_state_row_cells_next(GhosttyRenderStateRowCells cells); + +/** + * Move a render-state row cells iterator to a specific column. + * + * Positions the iterator at the given x (column) index so that + * subsequent reads return data for that cell. + * + * @param cells The row cells handle to reposition (NULL returns + * GHOSTTY_INVALID_VALUE) + * @param x The zero-based column index to select + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if `cells` + * is NULL or `x` is out of range + * + * @ingroup render + */ +GHOSTTY_API GhosttyResult ghostty_render_state_row_cells_select( + GhosttyRenderStateRowCells cells, uint16_t x); + +/** + * Get a value from the current cell in a render-state row cells iterator. + * + * The `out` pointer must point to a value of the type corresponding to the + * requested data kind (see GhosttyRenderStateRowCellsData). + * Call ghostty_render_state_row_cells_next() or + * ghostty_render_state_row_cells_select() at least once before + * calling this function. + * + * @param cells The row cells handle to query (NULL returns GHOSTTY_INVALID_VALUE) + * @param data The data kind to query + * @param[out] out Pointer to receive the queried value + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if + * `cells` is NULL or the iterator is not positioned on a cell + * + * @ingroup render + */ +GHOSTTY_API GhosttyResult ghostty_render_state_row_cells_get( + GhosttyRenderStateRowCells cells, + GhosttyRenderStateRowCellsData data, + void* out); + +/** + * Get multiple data fields from the current cell in a single call. + * + * Each element in the keys array specifies a data kind, and the + * corresponding element in the values array receives the result. + * + * Processing stops at the first error; on success out_written + * is set to count, on error it is set to the index of the + * failing key (i.e. the number of values successfully written). + * + * @param cells The row cells handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param count Number of key/value pairs + * @param keys Array of data kinds to query + * @param values Array of output pointers (types must match each key's + * documented output type) + * @param[out] out_written On return, receives the number of values + * successfully written (may be NULL) + * @return GHOSTTY_SUCCESS if all queries succeed + * + * @ingroup render + */ +GHOSTTY_API GhosttyResult ghostty_render_state_row_cells_get_multi( + GhosttyRenderStateRowCells cells, + size_t count, + const GhosttyRenderStateRowCellsData* keys, + void** values, + size_t* out_written); + +/** + * Export the row when every retained cell is narrow printable ASCII with only + * an optional foreground color. GHOSTTY_NO_VALUE selects the canonical API. + */ +GHOSTTY_API GhosttyResult ghostty_render_state_row_cells_ascii( + GhosttyRenderStateRowCells cells, + GhosttyRenderStateAsciiCell* out, + size_t capacity, + size_t* out_len); + +/** + * Free a row cells instance. + * + * @param cells The row cells handle to free (may be NULL) + * + * @ingroup render + */ +GHOSTTY_API void ghostty_render_state_row_cells_free(GhosttyRenderStateRowCells cells); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* GHOSTTY_VT_RENDER_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/screen.h b/packages/terminal/vendor/include/ghostty/vt/screen.h new file mode 100644 index 0000000000000000000000000000000000000000..9f639b583136582b0283ad3adc82c9b5d4f67cad --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/screen.h @@ -0,0 +1,400 @@ +/** + * @file screen.h + * + * Terminal screen cell and row types. + */ + +#ifndef GHOSTTY_VT_SCREEN_H +#define GHOSTTY_VT_SCREEN_H + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** @defgroup screen Screen + * + * Terminal screen cell and row types. + * + * These types represent the contents of a terminal screen. A GhosttyCell + * is a single grid cell and a GhosttyRow is a single row. Both are opaque + * values whose fields are accessed via ghostty_cell_get() and + * ghostty_row_get() respectively. + * + * @{ + */ + +/** + * Opaque cell value. + * + * Represents a single terminal cell. The internal layout is opaque and + * must be queried via ghostty_cell_get(). Obtain cell values from + * terminal query APIs. + * + * @ingroup screen + */ +typedef uint64_t GhosttyCell; + +/** + * Opaque row value. + * + * Represents a single terminal row. The internal layout is opaque and + * must be queried via ghostty_row_get(). Obtain row values from + * terminal query APIs. + * + * @ingroup screen + */ +typedef uint64_t GhosttyRow; + +/** + * Cell content tag. + * + * Describes what kind of content a cell holds. + * + * @ingroup screen + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** A single codepoint (may be zero for empty). */ + GHOSTTY_CELL_CONTENT_CODEPOINT = 0, + + /** A codepoint that is part of a multi-codepoint grapheme cluster. */ + GHOSTTY_CELL_CONTENT_CODEPOINT_GRAPHEME = 1, + + /** No text; background color from palette. */ + GHOSTTY_CELL_CONTENT_BG_COLOR_PALETTE = 2, + + /** No text; background color as RGB. */ + GHOSTTY_CELL_CONTENT_BG_COLOR_RGB = 3, + GHOSTTY_CELL_CONTENT_TAG_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyCellContentTag; + +/** + * Cell wide property. + * + * Describes the width behavior of a cell. + * + * @ingroup screen + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Not a wide character, cell width 1. */ + GHOSTTY_CELL_WIDE_NARROW = 0, + + /** Wide character, cell width 2. */ + GHOSTTY_CELL_WIDE_WIDE = 1, + + /** Spacer after wide character. Do not render. */ + GHOSTTY_CELL_WIDE_SPACER_TAIL = 2, + + /** Spacer at end of soft-wrapped line for a wide character. */ + GHOSTTY_CELL_WIDE_SPACER_HEAD = 3, + GHOSTTY_CELL_WIDE_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyCellWide; + +/** + * Semantic content type of a cell. + * + * Set by semantic prompt sequences (OSC 133) to distinguish between + * command output, user input, and shell prompt text. + * + * @ingroup screen + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Regular output content, such as command output. */ + GHOSTTY_CELL_SEMANTIC_OUTPUT = 0, + + /** Content that is part of user input. */ + GHOSTTY_CELL_SEMANTIC_INPUT = 1, + + /** Content that is part of a shell prompt. */ + GHOSTTY_CELL_SEMANTIC_PROMPT = 2, + GHOSTTY_CELL_SEMANTIC_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyCellSemanticContent; + +/** + * Cell data types. + * + * These values specify what type of data to extract from a cell + * using `ghostty_cell_get`. + * + * @ingroup screen + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Invalid data type. Never results in any data extraction. */ + GHOSTTY_CELL_DATA_INVALID = 0, + + /** + * The codepoint of the cell (0 if empty or bg-color-only). + * + * Output type: uint32_t * + */ + GHOSTTY_CELL_DATA_CODEPOINT = 1, + + /** + * The content tag describing what kind of content is in the cell. + * + * Output type: GhosttyCellContentTag * + */ + GHOSTTY_CELL_DATA_CONTENT_TAG = 2, + + /** + * The wide property of the cell. + * + * Output type: GhosttyCellWide * + */ + GHOSTTY_CELL_DATA_WIDE = 3, + + /** + * Whether the cell has text to render. + * + * Output type: bool * + */ + GHOSTTY_CELL_DATA_HAS_TEXT = 4, + + /** + * Whether the cell has non-default styling. + * + * Output type: bool * + */ + GHOSTTY_CELL_DATA_HAS_STYLING = 5, + + /** + * The style ID for the cell (for use with style lookups). + * + * Output type: uint16_t * + */ + GHOSTTY_CELL_DATA_STYLE_ID = 6, + + /** + * Whether the cell has a hyperlink. + * + * Output type: bool * + */ + GHOSTTY_CELL_DATA_HAS_HYPERLINK = 7, + + /** + * Whether the cell is protected. + * + * Output type: bool * + */ + GHOSTTY_CELL_DATA_PROTECTED = 8, + + /** + * The semantic content type of the cell (from OSC 133). + * + * Output type: GhosttyCellSemanticContent * + */ + GHOSTTY_CELL_DATA_SEMANTIC_CONTENT = 9, + + /** + * The palette index for the cell's background color. + * Only valid when content_tag is GHOSTTY_CELL_CONTENT_BG_COLOR_PALETTE. + * + * Output type: GhosttyColorPaletteIndex * + */ + GHOSTTY_CELL_DATA_COLOR_PALETTE = 10, + + /** + * The RGB value for the cell's background color. + * Only valid when content_tag is GHOSTTY_CELL_CONTENT_BG_COLOR_RGB. + * + * Output type: GhosttyColorRgb * + */ + GHOSTTY_CELL_DATA_COLOR_RGB = 11, + GHOSTTY_CELL_DATA_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyCellData; + +/** + * Row semantic prompt state. + * + * Indicates whether any cells in a row are part of a shell prompt, + * as reported by OSC 133 sequences. + * + * @ingroup screen + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** No prompt cells in this row. */ + GHOSTTY_ROW_SEMANTIC_NONE = 0, + + /** Prompt cells exist and this is a primary prompt line. */ + GHOSTTY_ROW_SEMANTIC_PROMPT = 1, + + /** Prompt cells exist and this is a continuation line. */ + GHOSTTY_ROW_SEMANTIC_PROMPT_CONTINUATION = 2, + GHOSTTY_ROW_SEMANTIC_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyRowSemanticPrompt; + +/** + * Row data types. + * + * These values specify what type of data to extract from a row + * using `ghostty_row_get`. + * + * @ingroup screen + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Invalid data type. Never results in any data extraction. */ + GHOSTTY_ROW_DATA_INVALID = 0, + + /** + * Whether this row is soft-wrapped. + * + * Output type: bool * + */ + GHOSTTY_ROW_DATA_WRAP = 1, + + /** + * Whether this row is a continuation of a soft-wrapped row. + * + * Output type: bool * + */ + GHOSTTY_ROW_DATA_WRAP_CONTINUATION = 2, + + /** + * Whether any cells in this row have grapheme clusters. + * + * Output type: bool * + */ + GHOSTTY_ROW_DATA_GRAPHEME = 3, + + /** + * Whether any cells in this row have styling (may have false positives). + * + * Output type: bool * + */ + GHOSTTY_ROW_DATA_STYLED = 4, + + /** + * Whether any cells in this row have hyperlinks (may have false positives). + * + * Output type: bool * + */ + GHOSTTY_ROW_DATA_HYPERLINK = 5, + + /** + * The semantic prompt state of this row. + * + * Output type: GhosttyRowSemanticPrompt * + */ + GHOSTTY_ROW_DATA_SEMANTIC_PROMPT = 6, + + /** + * Whether this row contains a Kitty virtual placeholder. + * + * Output type: bool * + */ + GHOSTTY_ROW_DATA_KITTY_VIRTUAL_PLACEHOLDER = 7, + + /** + * Whether this row is dirty and requires a redraw. + * + * Output type: bool * + */ + GHOSTTY_ROW_DATA_DIRTY = 8, + GHOSTTY_ROW_DATA_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyRowData; + +/** + * Get data from a cell. + * + * Extracts typed data from the given cell based on the specified + * data type. The output pointer must be of the appropriate type for the + * requested data kind. Valid data types and output types are documented + * in the `GhosttyCellData` enum. + * + * @param cell The cell value + * @param data The type of data to extract + * @param out Pointer to store the extracted data (type depends on data parameter) + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if the + * data type is invalid + * + * @ingroup screen + */ +GHOSTTY_API GhosttyResult ghostty_cell_get(GhosttyCell cell, + GhosttyCellData data, + void *out); + +/** + * Get multiple data fields from a cell in a single call. + * + * Each element in the keys array specifies a data kind, and the + * corresponding element in the values array receives the result. + * + * Processing stops at the first error; on success out_written + * is set to count, on error it is set to the index of the + * failing key (i.e. the number of values successfully written). + * + * @param cell The cell value + * @param count Number of key/value pairs + * @param keys Array of data kinds to query + * @param values Array of output pointers (types must match each key's + * documented output type) + * @param[out] out_written On return, receives the number of values + * successfully written (may be NULL) + * @return GHOSTTY_SUCCESS if all queries succeed + * + * @ingroup screen + */ +GHOSTTY_API GhosttyResult ghostty_cell_get_multi(GhosttyCell cell, + size_t count, + const GhosttyCellData* keys, + void** values, + size_t* out_written); + +/** + * Get data from a row. + * + * Extracts typed data from the given row based on the specified + * data type. The output pointer must be of the appropriate type for the + * requested data kind. Valid data types and output types are documented + * in the `GhosttyRowData` enum. + * + * @param row The row value + * @param data The type of data to extract + * @param out Pointer to store the extracted data (type depends on data parameter) + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if the + * data type is invalid + * + * @ingroup screen + */ +GHOSTTY_API GhosttyResult ghostty_row_get(GhosttyRow row, + GhosttyRowData data, + void *out); + +/** + * Get multiple data fields from a row in a single call. + * + * Each element in the keys array specifies a data kind, and the + * corresponding element in the values array receives the result. + * + * Processing stops at the first error; on success out_written + * is set to count, on error it is set to the index of the + * failing key (i.e. the number of values successfully written). + * + * @param row The row value + * @param count Number of key/value pairs + * @param keys Array of data kinds to query + * @param values Array of output pointers (types must match each key's + * documented output type) + * @param[out] out_written On return, receives the number of values + * successfully written (may be NULL) + * @return GHOSTTY_SUCCESS if all queries succeed + * + * @ingroup screen + */ +GHOSTTY_API GhosttyResult ghostty_row_get_multi(GhosttyRow row, + size_t count, + const GhosttyRowData* keys, + void** values, + size_t* out_written); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* GHOSTTY_VT_SCREEN_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/selection.h b/packages/terminal/vendor/include/ghostty/vt/selection.h new file mode 100644 index 0000000000000000000000000000000000000000..3b926aab6283c42c3c00b3c382a6695860c54323 --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/selection.h @@ -0,0 +1,1061 @@ +/** + * @file selection.h + * + * Selection range type for specifying a region of terminal content. + */ + +#ifndef GHOSTTY_VT_SELECTION_H +#define GHOSTTY_VT_SELECTION_H + +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** @defgroup selection Selection + * + * A snapshot selection range defined by two grid references that identifies + * a contiguous or rectangular region of terminal content. + * + * The start and end values are GhosttyGridRef values. They are therefore + * untracked grid references and inherit the same lifetime rules: they are + * only safe to use until the next mutating operation on the terminal that + * produced them, including freeing the terminal. To keep a selection valid + * across terminal mutations, callers must maintain tracked grid references + * for the endpoints and reconstruct a GhosttySelection from fresh snapshots + * when needed. + * + * Selection gestures provide a reusable state machine for turning UI pointer + * interactions into selection snapshots. A caller creates one + * GhosttySelectionGesture per active gesture stream, reuses typed + * GhosttySelectionGestureEvent objects for synthetic press, drag, release, + * autoscroll tick, and deep-press events, and applies each event with + * ghostty_selection_gesture_event(). The returned GhosttySelection is a + * snapshot; the embedder decides whether to render it, format/copy it, or + * install it as the terminal's active selection. + * + * ## Examples + * + * @snippet c-vt-selection/src/main.c selection-main + * @snippet c-vt-selection-gesture/src/main.c selection-gesture-main + * + * @{ + */ + +/** + * Opaque handle to state for interpreting terminal selection gestures. + * + * The gesture owns only the state required to interpret pointer events. Calls + * that use a gesture are not concurrency-safe and must be serialized with + * terminal mutations. + * + * @ingroup selection + */ +typedef struct GhosttySelectionGestureImpl* GhosttySelectionGesture; + +/** + * Opaque handle to reusable input data for selection gesture operations. + * + * Event options are set with ghostty_selection_gesture_event_set(). Individual + * gesture operations document which options are required or optional. + * + * @ingroup selection + */ +typedef struct GhosttySelectionGestureEventImpl* GhosttySelectionGestureEvent; + +/** + * A snapshot selection range defined by two grid references. + * + * Both endpoints are inclusive. The endpoints preserve selection direction + * and may be reversed; callers must not assume that start is the top-left + * endpoint or that end is the bottom-right endpoint. + * + * When rectangle is false, the endpoints describe a linear selection. When + * rectangle is true, the same endpoints are interpreted as opposite corners + * of a rectangular/block selection. + * + * The start and end values are untracked GhosttyGridRef snapshots and are + * only valid until the next mutating operation on the terminal that produced + * them unless the selection is reconstructed from tracked references. + * + * This is a sized struct. Use GHOSTTY_INIT_SIZED() to initialize it. + * + * @ingroup selection + */ +typedef struct { + /** Size of this struct in bytes. Must be set to sizeof(GhosttySelection). */ + size_t size; + + /** + * Start of the selection range (inclusive). + * + * This may be after end in terminal order. It is an untracked + * GhosttyGridRef snapshot and follows untracked grid-ref lifetime rules. + */ + GhosttyGridRef start; + + /** + * End of the selection range (inclusive). + * + * This may be before start in terminal order. It is an untracked + * GhosttyGridRef snapshot and follows untracked grid-ref lifetime rules. + */ + GhosttyGridRef end; + + /** + * Whether the endpoints are interpreted as a rectangular/block selection + * rather than a linear selection. + */ + bool rectangle; +} GhosttySelection; + +/** + * Options for deriving a word selection from a terminal grid reference. + * + * This is a sized struct. Use GHOSTTY_INIT_SIZED() to initialize it. + * If boundary_codepoints is NULL and boundary_codepoints_len is 0, Ghostty's + * default word-boundary codepoints are used. If boundary_codepoints_len is + * non-zero, boundary_codepoints must not be NULL. + * + * @ingroup selection + */ +typedef struct { + /** Size of this struct in bytes. Must be set to sizeof(GhosttyTerminalSelectWordOptions). */ + size_t size; + + /** Grid reference under which to derive the word selection. */ + GhosttyGridRef ref; + + /** Optional word-boundary codepoints as uint32_t scalar values. */ + const uint32_t* boundary_codepoints; + + /** Number of entries in boundary_codepoints. */ + size_t boundary_codepoints_len; +} GhosttyTerminalSelectWordOptions; + +/** + * Options for deriving the nearest word selection between two grid references. + * + * This is a sized struct. Use GHOSTTY_INIT_SIZED() to initialize it. + * If boundary_codepoints is NULL and boundary_codepoints_len is 0, Ghostty's + * default word-boundary codepoints are used. If boundary_codepoints_len is + * non-zero, boundary_codepoints must not be NULL. + * + * @ingroup selection + */ +typedef struct { + /** Size of this struct in bytes. Must be set to sizeof(GhosttyTerminalSelectWordBetweenOptions). */ + size_t size; + + /** Starting grid reference for the inclusive search range. */ + GhosttyGridRef start; + + /** Ending grid reference for the inclusive search range. */ + GhosttyGridRef end; + + /** Optional word-boundary codepoints as uint32_t scalar values. */ + const uint32_t* boundary_codepoints; + + /** Number of entries in boundary_codepoints. */ + size_t boundary_codepoints_len; +} GhosttyTerminalSelectWordBetweenOptions; + +/** + * Options for deriving a line selection from a terminal grid reference. + * + * This is a sized struct. Use GHOSTTY_INIT_SIZED() to initialize it. + * If whitespace is NULL and whitespace_len is 0, Ghostty's default line-trim + * whitespace codepoints are used. If whitespace_len is non-zero, whitespace + * must not be NULL. + * + * @ingroup selection + */ +typedef struct { + /** Size of this struct in bytes. Must be set to sizeof(GhosttyTerminalSelectLineOptions). */ + size_t size; + + /** Grid reference under which to derive the line selection. */ + GhosttyGridRef ref; + + /** Optional codepoints to trim from the start and end of the line. */ + const uint32_t* whitespace; + + /** Number of entries in whitespace. */ + size_t whitespace_len; + + /** Whether semantic prompt state changes should bound the line selection. */ + bool semantic_prompt_boundary; +} GhosttyTerminalSelectLineOptions; + +/** + * Options for one-shot formatting of a terminal selection. + * + * This is a sized struct. Use GHOSTTY_INIT_SIZED() to initialize it. + * + * If selection is NULL, the terminal's current active selection is used. + * If selection is non-NULL, that caller-provided snapshot selection is used. + * + * The selection is formatted from the terminal's active screen using the same + * formatting semantics as GhosttyFormatter. For copy/clipboard behavior + * matching Ghostty's Screen.selectionString(), use plain output with unwrap + * and trim both set to true. + * + * @ingroup selection + */ +typedef struct { + /** Size of this struct in bytes. Must be set to sizeof(GhosttyTerminalSelectionFormatOptions). */ + size_t size; + + /** Output format to emit. */ + GhosttyFormatterFormat emit; + + /** Whether to unwrap soft-wrapped lines. */ + bool unwrap; + + /** Whether to trim trailing whitespace on non-blank lines. */ + bool trim; + + /** + * Optional selection to format. + * + * If NULL, the terminal's current active selection is used. If the terminal + * has no active selection, formatting returns GHOSTTY_NO_VALUE. + * + * If non-NULL, the pointed-to selection must be a valid snapshot selection + * for this terminal and must obey GhosttySelection lifetime rules. + */ + const GhosttySelection *selection; +} GhosttyTerminalSelectionFormatOptions; + +/** + * Ordering of a selection's endpoints in terminal coordinates. + * + * Mirrored orders are only produced by rectangular selections whose start + * and end endpoints are on opposite diagonal corners that are not simple + * top-left-to-bottom-right or bottom-right-to-top-left orderings. + * + * @ingroup selection + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Start is before end in top-left to bottom-right order. */ + GHOSTTY_SELECTION_ORDER_FORWARD = 0, + + /** End is before start in top-left to bottom-right order. */ + GHOSTTY_SELECTION_ORDER_REVERSE = 1, + + /** Rectangular selection from top-right to bottom-left. */ + GHOSTTY_SELECTION_ORDER_MIRRORED_FORWARD = 2, + + /** Rectangular selection from bottom-left to top-right. */ + GHOSTTY_SELECTION_ORDER_MIRRORED_REVERSE = 3, + + GHOSTTY_SELECTION_ORDER_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttySelectionOrder; + +/** + * Operation used to adjust a selection endpoint. + * + * Adjustment mutates the selection's logical end endpoint, not whichever + * endpoint is visually bottom/right. This preserves keyboard and drag + * behavior for both forward and reversed selections. + * + * @ingroup selection + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Move left to the previous non-empty cell, wrapping upward. */ + GHOSTTY_SELECTION_ADJUST_LEFT = 0, + + /** Move right to the next non-empty cell, wrapping downward. */ + GHOSTTY_SELECTION_ADJUST_RIGHT = 1, + + /** + * Move up one row at the current column, or to the beginning of the + * line if already at the top. + */ + GHOSTTY_SELECTION_ADJUST_UP = 2, + + /** + * Move down to the next non-blank row at the current column, or to the + * end of the line if none exists. + */ + GHOSTTY_SELECTION_ADJUST_DOWN = 3, + + /** Move to the top-left cell of the screen. */ + GHOSTTY_SELECTION_ADJUST_HOME = 4, + + /** Move to the right edge of the last non-blank row on the screen. */ + GHOSTTY_SELECTION_ADJUST_END = 5, + + /** + * Move up by one terminal page height, or to home if that would move + * past the top. + */ + GHOSTTY_SELECTION_ADJUST_PAGE_UP = 6, + + /** + * Move down by one terminal page height, or to end if that would move + * past the bottom. + */ + GHOSTTY_SELECTION_ADJUST_PAGE_DOWN = 7, + + /** Move to the left edge of the current line. */ + GHOSTTY_SELECTION_ADJUST_BEGINNING_OF_LINE = 8, + + /** Move to the right edge of the current line. */ + GHOSTTY_SELECTION_ADJUST_END_OF_LINE = 9, + + GHOSTTY_SELECTION_ADJUST_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttySelectionAdjust; + +/** + * Selection behavior chosen for a gesture's click sequence. + * + * @ingroup selection + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Cell-granular drag selection. */ + GHOSTTY_SELECTION_GESTURE_BEHAVIOR_CELL = 0, + + /** Word selection on press and word-granular drag selection. */ + GHOSTTY_SELECTION_GESTURE_BEHAVIOR_WORD = 1, + + /** Line selection on press and line-granular drag selection. */ + GHOSTTY_SELECTION_GESTURE_BEHAVIOR_LINE = 2, + + /** Semantic command output selection on press and drag. */ + GHOSTTY_SELECTION_GESTURE_BEHAVIOR_OUTPUT = 3, + + GHOSTTY_SELECTION_GESTURE_BEHAVIOR_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttySelectionGestureBehavior; + +/** + * Selection behaviors for single-, double-, and triple-click gestures. + * + * @ingroup selection + */ +typedef struct { + /** Behavior for single-click selection gestures. */ + GhosttySelectionGestureBehavior single_click; + + /** Behavior for double-click selection gestures. */ + GhosttySelectionGestureBehavior double_click; + + /** Behavior for triple-click selection gestures. */ + GhosttySelectionGestureBehavior triple_click; +} GhosttySelectionGestureBehaviors; + +/** + * Display geometry used to interpret selection gesture drag events. + * + * @ingroup selection + */ +typedef struct { + /** Number of columns in the rendered terminal grid. Must be non-zero. */ + uint32_t columns; + + /** Width of one terminal cell in surface pixels. Must be non-zero. */ + uint32_t cell_width; + + /** Left padding before the terminal grid begins in surface pixels. */ + uint32_t padding_left; + + /** Height of the rendered terminal surface in surface pixels. Must be non-zero. */ + uint32_t screen_height; +} GhosttySelectionGestureGeometry; + +/** + * Current autoscroll direction for an active selection drag gesture. + * + * @ingroup selection + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** No selection autoscroll is requested. */ + GHOSTTY_SELECTION_GESTURE_AUTOSCROLL_NONE = 0, + + /** Selection dragging should autoscroll the viewport upward. */ + GHOSTTY_SELECTION_GESTURE_AUTOSCROLL_UP = 1, + + /** Selection dragging should autoscroll the viewport downward. */ + GHOSTTY_SELECTION_GESTURE_AUTOSCROLL_DOWN = 2, + + GHOSTTY_SELECTION_GESTURE_AUTOSCROLL_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttySelectionGestureAutoscroll; + +/** + * Data fields readable from a selection gesture with + * ghostty_selection_gesture_get(). + * + * @ingroup selection + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Current click count: uint8_t*. 0 means inactive. */ + GHOSTTY_SELECTION_GESTURE_DATA_CLICK_COUNT = 0, + + /** Whether the current/last left-click gesture has dragged: bool*. */ + GHOSTTY_SELECTION_GESTURE_DATA_DRAGGED = 1, + + /** Current autoscroll request: GhosttySelectionGestureAutoscroll*. */ + GHOSTTY_SELECTION_GESTURE_DATA_AUTOSCROLL = 2, + + /** Current gesture behavior: GhosttySelectionGestureBehavior*. */ + GHOSTTY_SELECTION_GESTURE_DATA_BEHAVIOR = 3, + + /** + * Current left-click anchor: GhosttyGridRef*. + * + * Returns GHOSTTY_NO_VALUE if there is no valid active anchor. On success, + * writes an untracked GhosttyGridRef snapshot with normal GhosttyGridRef + * lifetime rules. + */ + GHOSTTY_SELECTION_GESTURE_DATA_ANCHOR = 4, + + GHOSTTY_SELECTION_GESTURE_DATA_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttySelectionGestureData; + +/** + * Selection gesture event type. + * + * The event type is fixed when the event is created. Each event type documents + * which options are valid and which options are required by gesture operations. + * + * @ingroup selection + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Press event for ghostty_selection_gesture_event(). */ + GHOSTTY_SELECTION_GESTURE_EVENT_TYPE_PRESS = 0, + + /** Release event for ghostty_selection_gesture_event(). */ + GHOSTTY_SELECTION_GESTURE_EVENT_TYPE_RELEASE = 1, + + /** Drag event for ghostty_selection_gesture_event(). */ + GHOSTTY_SELECTION_GESTURE_EVENT_TYPE_DRAG = 2, + + /** Autoscroll tick event for ghostty_selection_gesture_event(). */ + GHOSTTY_SELECTION_GESTURE_EVENT_TYPE_AUTOSCROLL_TICK = 3, + + /** Deep press event for ghostty_selection_gesture_event(). */ + GHOSTTY_SELECTION_GESTURE_EVENT_TYPE_DEEP_PRESS = 4, + + GHOSTTY_SELECTION_GESTURE_EVENT_TYPE_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttySelectionGestureEventType; + +/** + * Options stored on a reusable selection gesture event. + * + * Passing NULL as the value to ghostty_selection_gesture_event_set() clears the + * corresponding option. + * + * @ingroup selection + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** + * Grid reference under the pointer: GhosttyGridRef*. + * + * Required for PRESS and DRAG events. Optional for RELEASE events; when unset + * or cleared, release records that the pointer did not map to a valid cell. + */ + GHOSTTY_SELECTION_GESTURE_EVENT_OPT_REF = 0, + + /** + * Surface-space pointer position: GhosttySurfacePosition*. + * + * Valid for PRESS, DRAG, and AUTOSCROLL_TICK. + */ + GHOSTTY_SELECTION_GESTURE_EVENT_OPT_POSITION = 1, + + /** Maximum repeat-click distance in pixels: double*. */ + GHOSTTY_SELECTION_GESTURE_EVENT_OPT_REPEAT_DISTANCE = 2, + + /** + * Optional monotonic event time in nanoseconds: uint64_t*. + * + * If unset, press treats the event as untimed and only single-click behavior + * is available. + */ + GHOSTTY_SELECTION_GESTURE_EVENT_OPT_TIME_NS = 3, + + /** Maximum interval between repeat clicks in nanoseconds: uint64_t*. */ + GHOSTTY_SELECTION_GESTURE_EVENT_OPT_REPEAT_INTERVAL_NS = 4, + + /** + * Word-boundary codepoints: GhosttyCodepoints*. + * + * The codepoints are copied into event-owned storage when set. If unset, + * operations that need word boundaries use Ghostty's defaults. + * + * Valid for PRESS, DRAG, AUTOSCROLL_TICK, and DEEP_PRESS. + */ + GHOSTTY_SELECTION_GESTURE_EVENT_OPT_WORD_BOUNDARY_CODEPOINTS = 5, + + /** + * Selection behavior table: GhosttySelectionGestureBehaviors*. + * + * If unset, press uses the default behavior table: cell, word, line. + */ + GHOSTTY_SELECTION_GESTURE_EVENT_OPT_BEHAVIORS = 6, + + /** Whether a drag or autoscroll tick should produce a rectangular selection: bool*. */ + GHOSTTY_SELECTION_GESTURE_EVENT_OPT_RECTANGLE = 7, + + /** Drag display geometry: GhosttySelectionGestureGeometry*. Required for DRAG and AUTOSCROLL_TICK. */ + GHOSTTY_SELECTION_GESTURE_EVENT_OPT_GEOMETRY = 8, + + /** Viewport coordinate for an autoscroll tick: GhosttyPointCoordinate*. Required for AUTOSCROLL_TICK. */ + GHOSTTY_SELECTION_GESTURE_EVENT_OPT_VIEWPORT = 9, + + GHOSTTY_SELECTION_GESTURE_EVENT_OPT_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttySelectionGestureEventOption; + +/** + * Create a reusable selection gesture event object. + * + * @param allocator Allocator, or NULL for the default allocator + * @param out_event Receives the created event handle + * @param type Event type. This is fixed for the lifetime of the event. + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if out_event is + * NULL or type is invalid, or GHOSTTY_OUT_OF_MEMORY if allocation fails + * + * @ingroup selection + */ +GHOSTTY_API GhosttyResult ghostty_selection_gesture_event_new( + const GhosttyAllocator* allocator, + GhosttySelectionGestureEvent* out_event, + GhosttySelectionGestureEventType type); + +/** + * Free a selection gesture event object. + * + * Passing NULL is allowed and is a no-op. + * + * @param event Selection gesture event handle to free + * + * @ingroup selection + */ +GHOSTTY_API void ghostty_selection_gesture_event_free( + GhosttySelectionGestureEvent event); + +/** + * Set or clear an option on a selection gesture event. + * + * The value type depends on option and is documented by + * GhosttySelectionGestureEventOption. Passing NULL for value clears the option. + * + * @param event Selection gesture event handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param option Event option to set or clear + * @param value Pointer to the input value for option, or NULL to clear + * @return GHOSTTY_SUCCESS on success, GHOSTTY_OUT_OF_MEMORY if copying + * event-owned data fails, or GHOSTTY_INVALID_VALUE if event, option, or + * value is invalid + * + * @ingroup selection + */ +GHOSTTY_API GhosttyResult ghostty_selection_gesture_event_set( + GhosttySelectionGestureEvent event, + GhosttySelectionGestureEventOption option, + const void* value); + +/** + * Apply a selection gesture event and return the resulting selection snapshot. + * + * This dispatches to the gesture operation matching the event's fixed type. + * For GHOSTTY_SELECTION_GESTURE_EVENT_TYPE_PRESS, the event must have + * GHOSTTY_SELECTION_GESTURE_EVENT_OPT_REF set before calling this function. + * All other press options use their initialized defaults when unset or cleared. + * + * For GHOSTTY_SELECTION_GESTURE_EVENT_TYPE_RELEASE, only + * GHOSTTY_SELECTION_GESTURE_EVENT_OPT_REF is valid. It is optional; if unset or + * cleared, release records that the pointer did not map to a valid cell. Release + * events update gesture state but do not produce a selection, so this function + * returns GHOSTTY_NO_VALUE after applying them. + * + * For GHOSTTY_SELECTION_GESTURE_EVENT_TYPE_DRAG, + * GHOSTTY_SELECTION_GESTURE_EVENT_OPT_REF and + * GHOSTTY_SELECTION_GESTURE_EVENT_OPT_GEOMETRY are required. Position, + * rectangle, and word-boundary codepoints are optional and use initialized + * defaults when unset or cleared. + * + * For GHOSTTY_SELECTION_GESTURE_EVENT_TYPE_AUTOSCROLL_TICK, + * GHOSTTY_SELECTION_GESTURE_EVENT_OPT_VIEWPORT and + * GHOSTTY_SELECTION_GESTURE_EVENT_OPT_GEOMETRY are required. Position, + * rectangle, and word-boundary codepoints are optional and use initialized + * defaults when unset or cleared. + * + * For GHOSTTY_SELECTION_GESTURE_EVENT_TYPE_DEEP_PRESS, only + * GHOSTTY_SELECTION_GESTURE_EVENT_OPT_WORD_BOUNDARY_CODEPOINTS is valid. It is + * optional and uses initialized defaults when unset or cleared. + * + * The returned selection is not installed as the terminal's current selection. + * It is a snapshot with the same lifetime rules as GhosttySelection. + * + * @param gesture Selection gesture handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param terminal Terminal used to interpret and update gesture state + * @param event Selection gesture event handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param[out] out_selection On success, receives the resulting selection. May + * be NULL to apply the event and discard the selection result. + * @return GHOSTTY_SUCCESS on success, GHOSTTY_NO_VALUE if the event does not + * currently produce a selection, GHOSTTY_OUT_OF_MEMORY if tracking + * gesture state fails, or GHOSTTY_INVALID_VALUE if gesture, terminal, + * event, or required event data is invalid + * + * @ingroup selection + */ +GHOSTTY_API GhosttyResult ghostty_selection_gesture_event( + GhosttySelectionGesture gesture, + GhosttyTerminal terminal, + GhosttySelectionGestureEvent event, + GhosttySelection* out_selection); + +/** + * Create a selection gesture object. + * + * The gesture stores mutable state for terminal text selection gestures. The + * gesture is not bound to a terminal at creation time; terminal-dependent APIs + * take the terminal explicitly. + * + * @param allocator Allocator, or NULL for the default allocator + * @param out_gesture Receives the created gesture handle + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if out_gesture is + * NULL, or GHOSTTY_OUT_OF_MEMORY if allocation fails + * + * @ingroup selection + */ +GHOSTTY_API GhosttyResult ghostty_selection_gesture_new( + const GhosttyAllocator* allocator, + GhosttySelectionGesture* out_gesture); + +/** + * Free a selection gesture object. + * + * This releases any tracked terminal references owned by the gesture using the + * provided terminal, then frees the gesture object. Passing NULL for gesture is + * allowed and is a no-op. + * + * If the terminal is still alive, pass the terminal most recently used with the + * gesture so any tracked terminal references can be released correctly. If the + * terminal has already been freed, pass NULL for terminal; the terminal's page + * storage has already released the underlying tracked references, so the + * gesture wrapper can be safely discarded without touching the stale terminal + * state. + * + * @param gesture Selection gesture handle to free + * @param terminal Terminal used to release tracked gesture state, or NULL if + * the terminal has already been freed + * + * @ingroup selection + */ +GHOSTTY_API void ghostty_selection_gesture_free( + GhosttySelectionGesture gesture, + GhosttyTerminal terminal); + +/** + * Reset any active selection gesture state. + * + * This cancels the active click sequence and releases any tracked terminal + * references owned by the gesture without freeing the gesture object. + * Passing NULL is allowed and is a no-op. + * + * @param gesture Selection gesture handle to reset + * @param terminal Terminal used to release tracked gesture state + * + * @ingroup selection + */ +GHOSTTY_API void ghostty_selection_gesture_reset( + GhosttySelectionGesture gesture, + GhosttyTerminal terminal); + +/** + * Read data from a selection gesture. + * + * The type of value depends on data and is documented by + * GhosttySelectionGestureData. For GHOSTTY_SELECTION_GESTURE_DATA_ANCHOR, + * the returned GhosttyGridRef is an untracked snapshot with normal grid-ref + * lifetime rules. + * + * @param gesture Selection gesture handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param terminal Terminal used to validate terminal-backed gesture state + * @param data Data field to read + * @param value Output pointer whose type depends on data + * @return GHOSTTY_SUCCESS on success, GHOSTTY_NO_VALUE if the requested data + * has no value, or GHOSTTY_INVALID_VALUE if gesture, terminal, data, or + * value is invalid + * + * @ingroup selection + */ +GHOSTTY_API GhosttyResult ghostty_selection_gesture_get( + GhosttySelectionGesture gesture, + GhosttyTerminal terminal, + GhosttySelectionGestureData data, + void* value); + +/** + * Read multiple data fields from a selection gesture in a single call. + * + * This is an optimization over calling ghostty_selection_gesture_get() multiple + * times. Each entry in values must point to storage of the type documented by + * the corresponding GhosttySelectionGestureData key. + * + * If any individual read fails, the function returns that error and writes the + * index of the failing key to out_written when out_written is non-NULL. On + * success, out_written receives count when non-NULL. + * + * @param gesture Selection gesture handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param terminal Terminal used to validate terminal-backed gesture state + * @param count Number of data fields to read + * @param keys Data fields to read (must not be NULL) + * @param values Output pointers corresponding to keys (must not be NULL) + * @param out_written Optional number of fields read, or failing index on error + * @return GHOSTTY_SUCCESS on success, GHOSTTY_NO_VALUE if a requested data + * field has no value, or GHOSTTY_INVALID_VALUE if gesture, terminal, + * keys, values, or a value pointer is invalid + * + * @ingroup selection + */ +GHOSTTY_API GhosttyResult ghostty_selection_gesture_get_multi( + GhosttySelectionGesture gesture, + GhosttyTerminal terminal, + size_t count, + const GhosttySelectionGestureData* keys, + void** values, + size_t* out_written); + +/** + * Derive a word selection snapshot from a terminal grid reference. + * + * The returned selection is not installed as the terminal's current + * selection. It is a snapshot with the same lifetime rules as GhosttySelection. + * + * @param terminal The terminal handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param options Word-selection options + * @param[out] out_selection On success, receives the derived selection + * @return GHOSTTY_SUCCESS on success, GHOSTTY_NO_VALUE if the valid ref has + * no selectable word content, or GHOSTTY_INVALID_VALUE if the + * terminal, options, ref, codepoint pointer, or output pointer are + * invalid. + * + * @ingroup selection + */ +GHOSTTY_API GhosttyResult ghostty_terminal_select_word( + GhosttyTerminal terminal, + const GhosttyTerminalSelectWordOptions* options, + GhosttySelection* out_selection); + +/** + * Derive the nearest word selection snapshot between two terminal grid refs. + * + * Starting at options->start, this searches toward options->end (inclusive) + * and returns the first selectable word found using Ghostty's word-selection + * rules. + * + * This is useful for implementing double-click-and-drag selection in a UI. If + * a user double-clicks one word and drags across spaces or punctuation toward + * another word, selecting only the word directly under the current pointer can + * flicker or collapse when the pointer is between words. Instead, ask for the + * nearest word between the original click and the drag point, ask again in the + * reverse direction, and combine the two word bounds into the drag selection. + * + * @snippet c-vt-selection/src/main.c selection-word-between + * + * The returned selection is not installed as the terminal's current + * selection. It is a snapshot with the same lifetime rules as GhosttySelection. + * + * @param terminal The terminal handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param options Word-between-selection options + * @param[out] out_selection On success, receives the derived selection + * @return GHOSTTY_SUCCESS on success, GHOSTTY_NO_VALUE if there is no + * selectable word content between the valid refs, or + * GHOSTTY_INVALID_VALUE if the terminal, options, refs, codepoint + * pointer, or output pointer are invalid. + * + * @ingroup selection + */ +GHOSTTY_API GhosttyResult ghostty_terminal_select_word_between( + GhosttyTerminal terminal, + const GhosttyTerminalSelectWordBetweenOptions* options, + GhosttySelection* out_selection); + +/** + * Derive a line selection snapshot from a terminal grid reference. + * + * The returned selection is not installed as the terminal's current + * selection. It is a snapshot with the same lifetime rules as GhosttySelection. + * + * @param terminal The terminal handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param options Line-selection options + * @param[out] out_selection On success, receives the derived selection + * @return GHOSTTY_SUCCESS on success, GHOSTTY_NO_VALUE if the valid ref has + * no selectable line content, or GHOSTTY_INVALID_VALUE if the + * terminal, options, ref, codepoint pointer, or output pointer are + * invalid. + * + * @ingroup selection + */ +GHOSTTY_API GhosttyResult ghostty_terminal_select_line( + GhosttyTerminal terminal, + const GhosttyTerminalSelectLineOptions* options, + GhosttySelection* out_selection); + +/** + * Derive a selection snapshot covering all selectable terminal content. + * + * The returned selection is not installed as the terminal's current + * selection. It is a snapshot with the same lifetime rules as GhosttySelection. + * + * @param terminal The terminal handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param[out] out_selection On success, receives the derived selection + * @return GHOSTTY_SUCCESS on success, GHOSTTY_NO_VALUE if there is no + * selectable content, or GHOSTTY_INVALID_VALUE if the terminal or + * output pointer is invalid. + * + * @ingroup selection + */ +GHOSTTY_API GhosttyResult ghostty_terminal_select_all( + GhosttyTerminal terminal, + GhosttySelection* out_selection); + +/** + * Derive a command-output selection snapshot from a terminal grid reference. + * + * The returned selection is not installed as the terminal's current + * selection. It is a snapshot with the same lifetime rules as GhosttySelection. + * + * @param terminal The terminal handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param ref Grid reference within command output to select + * @param[out] out_selection On success, receives the derived selection + * @return GHOSTTY_SUCCESS on success, GHOSTTY_NO_VALUE if the valid ref is + * not selectable command output, or GHOSTTY_INVALID_VALUE if the + * terminal, ref, or output pointer is invalid. + * + * @ingroup selection + */ +GHOSTTY_API GhosttyResult ghostty_terminal_select_output( + GhosttyTerminal terminal, + GhosttyGridRef ref, + GhosttySelection* out_selection); + +/** + * Format a terminal selection into a caller-provided buffer. + * + * This is a one-shot convenience API for formatting either the terminal's + * active selection or a caller-provided GhosttySelection without explicitly + * creating a GhosttyFormatter. + * + * Pass NULL for buf to query the required output size. In that case, + * out_written receives the required size and the function returns + * GHOSTTY_OUT_OF_SPACE. + * + * If buf is too small, the function returns GHOSTTY_OUT_OF_SPACE and writes + * the required size to out_written. The caller can then retry with a larger + * buffer. + * + * If options.selection is NULL and the terminal has no active selection, the + * function returns GHOSTTY_NO_VALUE. + * + * @param terminal The terminal to read from (must not be NULL) + * @param options Selection formatting options + * @param buf Output buffer, or NULL to query required size + * @param buf_len Length of buf in bytes + * @param out_written Number of bytes written, or required size on + * GHOSTTY_OUT_OF_SPACE (must not be NULL) + * @return GHOSTTY_SUCCESS on success, or an error code on failure + * + * @ingroup selection + */ +GHOSTTY_API GhosttyResult ghostty_terminal_selection_format_buf( + GhosttyTerminal terminal, + GhosttyTerminalSelectionFormatOptions options, + uint8_t* buf, + size_t buf_len, + size_t* out_written); + +/** + * Format a terminal selection into an allocated buffer. + * + * This is a one-shot convenience API for formatting either the terminal's + * active selection or a caller-provided GhosttySelection without explicitly + * creating a GhosttyFormatter. + * + * The returned buffer is allocated using allocator, or the default allocator + * if NULL is passed. The caller owns the returned buffer and must free it with + * ghostty_free(), passing the same allocator and returned length. + * + * The returned bytes are not NUL-terminated. This supports plain text, VT, and + * HTML uniformly as byte output. + * + * If options.selection is NULL and the terminal has no active selection, the + * function returns GHOSTTY_NO_VALUE and leaves out_ptr as NULL and out_len as 0. + * + * @param terminal The terminal to read from (must not be NULL) + * @param allocator Allocator used for the returned buffer, or NULL for the default allocator + * @param options Selection formatting options + * @param out_ptr Receives the allocated output buffer (must not be NULL) + * @param out_len Receives the output length in bytes (must not be NULL) + * @return GHOSTTY_SUCCESS on success, or an error code on failure + * + * @ingroup selection + */ +GHOSTTY_API GhosttyResult ghostty_terminal_selection_format_alloc( + GhosttyTerminal terminal, + const GhosttyAllocator* allocator, + GhosttyTerminalSelectionFormatOptions options, + uint8_t** out_ptr, + size_t* out_len); + +/** + * Adjust a selection snapshot using terminal selection semantics. + * + * This mutates the caller-provided GhosttySelection in place. The logical end + * endpoint is always moved, regardless of whether the selection is forward or + * reversed visually. The input selection remains a snapshot: after adjustment, + * call ghostty_terminal_set() with GHOSTTY_TERMINAL_OPT_SELECTION to install it + * as the terminal-owned selection if desired. + * + * The selection's start and end grid refs must both be valid untracked + * snapshots for the given terminal's currently active screen. In practice, + * they must come from that terminal and screen, and no mutating terminal call + * may have occurred since the refs were produced or reconstructed from + * tracked refs. Passing refs from another terminal, another screen, or stale + * refs violates this precondition. + * + * @param terminal The terminal handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param selection Selection snapshot to adjust in place + * @param adjustment The adjustment operation to apply + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if the terminal, + * selection, or adjustment are invalid. Selection reference validity + * is a precondition and is not checked. + * + * @ingroup selection + */ +GHOSTTY_API GhosttyResult ghostty_terminal_selection_adjust( + GhosttyTerminal terminal, + GhosttySelection* selection, + GhosttySelectionAdjust adjustment); + +/** + * Get the current endpoint ordering of a selection snapshot. + * + * The selection's start and end grid refs must both be valid untracked + * snapshots for the given terminal's currently active screen. In practice, + * they must come from that terminal and screen, and no mutating terminal call + * may have occurred since the refs were produced or reconstructed from + * tracked refs. Passing refs from another terminal, another screen, or stale + * refs violates this precondition. + * + * @param terminal The terminal handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param selection Selection snapshot to inspect + * @param[out] out_order On success, receives the selection order + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if the terminal, + * selection, or output pointer are invalid. Selection reference + * validity is a precondition and is not checked. + * + * @ingroup selection + */ +GHOSTTY_API GhosttyResult ghostty_terminal_selection_order( + GhosttyTerminal terminal, + const GhosttySelection* selection, + GhosttySelectionOrder* out_order); + +/** + * Return a selection snapshot with endpoints ordered as requested. + * + * Use GHOSTTY_SELECTION_ORDER_FORWARD to get top-left to bottom-right bounds, + * and GHOSTTY_SELECTION_ORDER_REVERSE to get bottom-right to top-left bounds. + * Mirrored desired orders are accepted but normalized the same as forward. + * The output selection is a fresh untracked snapshot and is not installed as + * the terminal's current selection. + * + * The selection's start and end grid refs must both be valid untracked + * snapshots for the given terminal's currently active screen. In practice, + * they must come from that terminal and screen, and no mutating terminal call + * may have occurred since the refs were produced or reconstructed from + * tracked refs. Passing refs from another terminal, another screen, or stale + * refs violates this precondition. + * + * @param terminal The terminal handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param selection Selection snapshot to order + * @param desired Desired endpoint order + * @param[out] out_selection On success, receives the ordered selection + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if the terminal, + * selection, desired order, or output pointer are invalid. Selection + * reference validity is a precondition and is not checked. + * + * @ingroup selection + */ +GHOSTTY_API GhosttyResult ghostty_terminal_selection_ordered( + GhosttyTerminal terminal, + const GhosttySelection* selection, + GhosttySelectionOrder desired, + GhosttySelection* out_selection); + +/** + * Test whether a terminal point is inside a selection snapshot. + * + * This uses the same selection semantics as the terminal, including + * rectangular/block selections and linear selections spanning multiple rows. + * + * The selection's start and end grid refs must both be valid untracked + * snapshots for the given terminal's currently active screen. In practice, + * they must come from that terminal and screen, and no mutating terminal call + * may have occurred since the refs were produced or reconstructed from + * tracked refs. Passing refs from another terminal, another screen, or stale + * refs violates this precondition. + * + * @param terminal The terminal handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param selection Selection snapshot to inspect + * @param point Point to test for containment + * @param[out] out_contains On success, receives whether point is inside selection + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if the terminal, + * selection, point, or output pointer are invalid. Selection reference + * validity is a precondition and is not checked. + * + * @ingroup selection + */ +GHOSTTY_API GhosttyResult ghostty_terminal_selection_contains( + GhosttyTerminal terminal, + const GhosttySelection* selection, + GhosttyPoint point, + bool* out_contains); + +/** + * Test whether two selection snapshots are equal. + * + * Equality uses the terminal's internal selection semantics: both endpoint + * pins must match and both selections must have the same rectangular/block + * state. This avoids requiring callers to compare raw GhosttyGridRef internals. + * + * Both selections' start and end grid refs must be valid untracked snapshots + * for the given terminal's currently active screen. In practice, they must + * come from that terminal and screen, and no mutating terminal call may have + * occurred since the refs were produced or reconstructed from tracked refs. + * Passing refs from another terminal, another screen, or stale refs violates + * this precondition. + * + * @param terminal The terminal handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param a First selection snapshot to compare + * @param b Second selection snapshot to compare + * @param[out] out_equal On success, receives whether the selections are equal + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if the terminal, + * selections, or output pointer are invalid. Selection reference + * validity is a precondition and is not checked. + * + * @ingroup selection + */ +GHOSTTY_API GhosttyResult ghostty_terminal_selection_equal( + GhosttyTerminal terminal, + const GhosttySelection* a, + const GhosttySelection* b, + bool* out_equal); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* GHOSTTY_VT_SELECTION_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/sgr.h b/packages/terminal/vendor/include/ghostty/vt/sgr.h new file mode 100644 index 0000000000000000000000000000000000000000..757c5aeda9306e593b36c155be79067db44d22a7 --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/sgr.h @@ -0,0 +1,353 @@ +/** + * @file sgr.h + * + * SGR (Select Graphic Rendition) attribute parsing and handling. + */ + +#ifndef GHOSTTY_VT_SGR_H +#define GHOSTTY_VT_SGR_H + +/** @defgroup sgr SGR Parser + * + * SGR (Select Graphic Rendition) attribute parser. + * + * SGR sequences are the syntax used to set styling attributes such as + * bold, italic, underline, and colors for text in terminal emulators. + * For example, you may be familiar with sequences like `ESC[1;31m`. The + * `1;31` is the SGR attribute list. + * + * The parser processes SGR parameters from CSI sequences (e.g., `ESC[1;31m`) + * and returns individual text attributes like bold, italic, colors, etc. + * It supports both semicolon (`;`) and colon (`:`) separators, possibly mixed, + * and handles SGR color attributes including 8-color, 16-color, 256-color, + * direct RGB, underline color, and reset forms. Color values are returned + * using the shared @ref color types; applications that need to parse Ghostty + * config/theme color strings, generate palettes, inspect X11 color names, or + * calculate luminance and contrast should use the @ref color APIs directly. + * + * ## Basic Usage + * + * 1. Create a parser instance with ghostty_sgr_new() + * 2. Set SGR parameters with ghostty_sgr_set_params() + * 3. Iterate through attributes using ghostty_sgr_next() + * 4. Free the parser with ghostty_sgr_free() when done + * + * ## Example + * + * @snippet c-vt-sgr/src/main.c sgr-basic + * + * @{ + */ + +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * SGR attribute tags. + * + * These values identify the type of an SGR attribute in a tagged union. + * Use the tag to determine which field in the attribute value union to access. + * + * @ingroup sgr + */ +typedef enum GHOSTTY_ENUM_TYPED { + GHOSTTY_SGR_ATTR_UNSET = 0, + GHOSTTY_SGR_ATTR_UNKNOWN = 1, + GHOSTTY_SGR_ATTR_BOLD = 2, + GHOSTTY_SGR_ATTR_RESET_BOLD = 3, + GHOSTTY_SGR_ATTR_ITALIC = 4, + GHOSTTY_SGR_ATTR_RESET_ITALIC = 5, + GHOSTTY_SGR_ATTR_FAINT = 6, + GHOSTTY_SGR_ATTR_UNDERLINE = 7, + GHOSTTY_SGR_ATTR_UNDERLINE_COLOR = 8, + GHOSTTY_SGR_ATTR_UNDERLINE_COLOR_256 = 9, + GHOSTTY_SGR_ATTR_RESET_UNDERLINE_COLOR = 10, + GHOSTTY_SGR_ATTR_OVERLINE = 11, + GHOSTTY_SGR_ATTR_RESET_OVERLINE = 12, + GHOSTTY_SGR_ATTR_BLINK = 13, + GHOSTTY_SGR_ATTR_RESET_BLINK = 14, + GHOSTTY_SGR_ATTR_INVERSE = 15, + GHOSTTY_SGR_ATTR_RESET_INVERSE = 16, + GHOSTTY_SGR_ATTR_INVISIBLE = 17, + GHOSTTY_SGR_ATTR_RESET_INVISIBLE = 18, + GHOSTTY_SGR_ATTR_STRIKETHROUGH = 19, + GHOSTTY_SGR_ATTR_RESET_STRIKETHROUGH = 20, + GHOSTTY_SGR_ATTR_DIRECT_COLOR_FG = 21, + GHOSTTY_SGR_ATTR_DIRECT_COLOR_BG = 22, + GHOSTTY_SGR_ATTR_BG_8 = 23, + GHOSTTY_SGR_ATTR_FG_8 = 24, + GHOSTTY_SGR_ATTR_RESET_FG = 25, + GHOSTTY_SGR_ATTR_RESET_BG = 26, + GHOSTTY_SGR_ATTR_BRIGHT_BG_8 = 27, + GHOSTTY_SGR_ATTR_BRIGHT_FG_8 = 28, + GHOSTTY_SGR_ATTR_BG_256 = 29, + GHOSTTY_SGR_ATTR_FG_256 = 30, + GHOSTTY_SGR_ATTR_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttySgrAttributeTag; + +/** + * Underline style types. + * + * @ingroup sgr + */ +typedef enum GHOSTTY_ENUM_TYPED { + GHOSTTY_SGR_UNDERLINE_NONE = 0, + GHOSTTY_SGR_UNDERLINE_SINGLE = 1, + GHOSTTY_SGR_UNDERLINE_DOUBLE = 2, + GHOSTTY_SGR_UNDERLINE_CURLY = 3, + GHOSTTY_SGR_UNDERLINE_DOTTED = 4, + GHOSTTY_SGR_UNDERLINE_DASHED = 5, + GHOSTTY_SGR_UNDERLINE_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttySgrUnderline; + +/** + * Unknown SGR attribute data. + * + * Contains the full parameter list and the partial list where parsing + * encountered an unknown or invalid sequence. + * + * @ingroup sgr + */ +typedef struct { + const uint16_t* full_ptr; + size_t full_len; + const uint16_t* partial_ptr; + size_t partial_len; +} GhosttySgrUnknown; + +/** + * SGR attribute value union. + * + * This union contains all possible attribute values. Use the tag field + * to determine which union member is active. Attributes without associated + * data (like bold, italic) don't use the union value. + * + * @ingroup sgr + */ +typedef union { + GhosttySgrUnknown unknown; + GhosttySgrUnderline underline; + GhosttyColorRgb underline_color; + GhosttyColorPaletteIndex underline_color_256; + GhosttyColorRgb direct_color_fg; + GhosttyColorRgb direct_color_bg; + GhosttyColorPaletteIndex bg_8; + GhosttyColorPaletteIndex fg_8; + GhosttyColorPaletteIndex bright_bg_8; + GhosttyColorPaletteIndex bright_fg_8; + GhosttyColorPaletteIndex bg_256; + GhosttyColorPaletteIndex fg_256; + uint64_t _padding[8]; +} GhosttySgrAttributeValue; + +/** + * SGR attribute (tagged union). + * + * A complete SGR attribute with both its type tag and associated value. + * Always check the tag field to determine which value union member is valid. + * + * Attributes without associated data (e.g., GHOSTTY_SGR_ATTR_BOLD) can be + * identified by tag alone; the value union is not used for these and + * the memory in the value field is undefined. + * + * @ingroup sgr + */ +typedef struct { + GhosttySgrAttributeTag tag; + GhosttySgrAttributeValue value; +} GhosttySgrAttribute; + +/** + * Create a new SGR parser instance. + * + * Creates a new SGR (Select Graphic Rendition) parser using the provided + * allocator. The parser must be freed using ghostty_sgr_free() when + * no longer needed. + * + * @param allocator Pointer to the allocator to use for memory management, or + * NULL to use the default allocator + * @param parser Pointer to store the created parser handle + * @return GHOSTTY_SUCCESS on success, or an error code on failure + * + * @ingroup sgr + */ +GHOSTTY_API GhosttyResult ghostty_sgr_new(const GhosttyAllocator* allocator, + GhosttySgrParser* parser); + +/** + * Free an SGR parser instance. + * + * Releases all resources associated with the SGR parser. After this call, + * the parser handle becomes invalid and must not be used. This includes + * any attributes previously returned by ghostty_sgr_next(). + * + * @param parser The parser handle to free (may be NULL) + * + * @ingroup sgr + */ +GHOSTTY_API void ghostty_sgr_free(GhosttySgrParser parser); + +/** + * Reset an SGR parser instance to the beginning of the parameter list. + * + * Resets the parser's iteration state without clearing the parameters. + * After calling this, ghostty_sgr_next() will start from the beginning + * of the parameter list again. + * + * @param parser The parser handle to reset, must not be NULL + * + * @ingroup sgr + */ +GHOSTTY_API void ghostty_sgr_reset(GhosttySgrParser parser); + +/** + * Set SGR parameters for parsing. + * + * Sets the SGR parameter list to parse. Parameters are the numeric values + * from a CSI SGR sequence (e.g., for `ESC[1;31m`, params would be {1, 31}). + * + * The separators array optionally specifies the separator type for each + * parameter position. Each byte should be either ';' for semicolon or ':' + * for colon. This is needed for certain color formats that use colon + * separators (e.g., `ESC[4:3m` for curly underline). Any invalid separator + * values are treated as semicolons. The separators array must have the same + * length as the params array, if it is not NULL. + * + * If separators is NULL, all parameters are assumed to be semicolon-separated. + * + * This function makes an internal copy of the parameter and separator data, + * so the caller can safely free or modify the input arrays after this call. + * + * After calling this function, the parser is automatically reset and ready + * to iterate from the beginning. + * + * @param parser The parser handle, must not be NULL + * @param params Array of SGR parameter values + * @param separators Optional array of separator characters (';' or ':'), or + * NULL + * @param len Number of parameters (and separators if provided) + * @return GHOSTTY_SUCCESS on success, or an error code on failure + * + * @ingroup sgr + */ +GHOSTTY_API GhosttyResult ghostty_sgr_set_params(GhosttySgrParser parser, + const uint16_t* params, + const char* separators, + size_t len); + +/** + * Get the next SGR attribute. + * + * Parses and returns the next attribute from the parameter list. + * Call this function repeatedly until it returns false to process + * all attributes in the sequence. + * + * @param parser The parser handle, must not be NULL + * @param attr Pointer to store the next attribute + * @return true if an attribute was returned, false if no more attributes + * + * @ingroup sgr + */ +GHOSTTY_API bool ghostty_sgr_next(GhosttySgrParser parser, GhosttySgrAttribute* attr); + +/** + * Get the full parameter list from an unknown SGR attribute. + * + * This function retrieves the full parameter list that was provided to the + * parser when an unknown attribute was encountered. Primarily useful in + * WebAssembly environments where accessing struct fields directly is difficult. + * + * @param unknown The unknown attribute data + * @param ptr Pointer to store the pointer to the parameter array (may be NULL) + * @return The length of the full parameter array + * + * @ingroup sgr + */ +GHOSTTY_API size_t ghostty_sgr_unknown_full(GhosttySgrUnknown unknown, + const uint16_t** ptr); + +/** + * Get the partial parameter list from an unknown SGR attribute. + * + * This function retrieves the partial parameter list where parsing stopped + * when an unknown attribute was encountered. Primarily useful in WebAssembly + * environments where accessing struct fields directly is difficult. + * + * @param unknown The unknown attribute data + * @param ptr Pointer to store the pointer to the parameter array (may be NULL) + * @return The length of the partial parameter array + * + * @ingroup sgr + */ +GHOSTTY_API size_t ghostty_sgr_unknown_partial(GhosttySgrUnknown unknown, + const uint16_t** ptr); + +/** + * Get the tag from an SGR attribute. + * + * This function extracts the tag that identifies which type of attribute + * this is. Primarily useful in WebAssembly environments where accessing + * struct fields directly is difficult. + * + * @param attr The SGR attribute + * @return The attribute tag + * + * @ingroup sgr + */ +GHOSTTY_API GhosttySgrAttributeTag ghostty_sgr_attribute_tag(GhosttySgrAttribute attr); + +/** + * Get the value from an SGR attribute. + * + * This function returns a pointer to the value union from an SGR attribute. Use + * the tag to determine which field of the union is valid. Primarily useful in + * WebAssembly environments where accessing struct fields directly is difficult. + * + * @param attr Pointer to the SGR attribute + * @return Pointer to the attribute value union + * + * @ingroup sgr + */ +GHOSTTY_API GhosttySgrAttributeValue* ghostty_sgr_attribute_value( + GhosttySgrAttribute* attr); + +#ifdef __wasm__ +/** + * Allocate memory for an SGR attribute (WebAssembly only). + * + * This is a convenience function for WebAssembly environments to allocate + * memory for an SGR attribute structure that can be passed to ghostty_sgr_next. + * + * @return Pointer to the allocated attribute structure + * + * @ingroup wasm + */ +GHOSTTY_API GhosttySgrAttribute* ghostty_wasm_alloc_sgr_attribute(void); + +/** + * Free memory for an SGR attribute (WebAssembly only). + * + * Frees memory allocated by ghostty_wasm_alloc_sgr_attribute. + * + * @param attr Pointer to the attribute structure to free + * + * @ingroup wasm + */ +GHOSTTY_API void ghostty_wasm_free_sgr_attribute(GhosttySgrAttribute* attr); +#endif + +#ifdef __cplusplus +} +#endif + +/** @} */ + +#endif /* GHOSTTY_VT_SGR_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/size_report.h b/packages/terminal/vendor/include/ghostty/vt/size_report.h new file mode 100644 index 0000000000000000000000000000000000000000..da33e5e559316fbf24f4f583c540bfa1211e2368 --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/size_report.h @@ -0,0 +1,101 @@ +/** + * @file size_report.h + * + * Size report encoding - encode terminal size reports into escape sequences. + */ + +#ifndef GHOSTTY_VT_SIZE_REPORT_H +#define GHOSTTY_VT_SIZE_REPORT_H + +/** @defgroup size_report Size Report Encoding + * + * Utilities for encoding terminal size reports into escape sequences, + * supporting in-band size reports (mode 2048) and XTWINOPS responses + * (CSI 14 t, CSI 16 t, CSI 18 t). + * + * ## Basic Usage + * + * Use ghostty_size_report_encode() to encode a size report into a + * caller-provided buffer. If the buffer is too small, the function + * returns GHOSTTY_OUT_OF_SPACE and sets the required size in the + * output parameter. + * + * ## Example + * + * @snippet c-vt-size-report/src/main.c size-report-encode + * + * @{ + */ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Size report style. + * + * Determines the output format for the terminal size report. + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** In-band size report (mode 2048): ESC [ 48 ; rows ; cols ; height ; width t */ + GHOSTTY_SIZE_REPORT_MODE_2048 = 0, + /** XTWINOPS text area size in pixels: ESC [ 4 ; height ; width t */ + GHOSTTY_SIZE_REPORT_CSI_14_T = 1, + /** XTWINOPS cell size in pixels: ESC [ 6 ; height ; width t */ + GHOSTTY_SIZE_REPORT_CSI_16_T = 2, + /** XTWINOPS text area size in characters: ESC [ 8 ; rows ; cols t */ + GHOSTTY_SIZE_REPORT_CSI_18_T = 3, + GHOSTTY_SIZE_REPORT_STYLE_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttySizeReportStyle; + +/** + * Terminal size information for encoding size reports. + */ +typedef struct { + /** Terminal row count in cells. */ + uint16_t rows; + /** Terminal column count in cells. */ + uint16_t columns; + /** Width of a single terminal cell in pixels. */ + uint32_t cell_width; + /** Height of a single terminal cell in pixels. */ + uint32_t cell_height; +} GhosttySizeReportSize; + +/** + * Encode a terminal size report into an escape sequence. + * + * Encodes a size report in the format specified by @p style into the + * provided buffer. + * + * If the buffer is too small, the function returns GHOSTTY_OUT_OF_SPACE + * and writes the required buffer size to @p out_written. The caller can + * then retry with a sufficiently sized buffer. + * + * @param style The size report format to encode + * @param size Terminal size information + * @param buf Output buffer to write the encoded sequence into (may be NULL) + * @param buf_len Size of the output buffer in bytes + * @param[out] out_written On success, the number of bytes written. On + * GHOSTTY_OUT_OF_SPACE, the required buffer size. + * @return GHOSTTY_SUCCESS on success, GHOSTTY_OUT_OF_SPACE if the buffer + * is too small + */ +GHOSTTY_API GhosttyResult ghostty_size_report_encode( + GhosttySizeReportStyle style, + GhosttySizeReportSize size, + char* buf, + size_t buf_len, + size_t* out_written); + +#ifdef __cplusplus +} +#endif + +/** @} */ + +#endif /* GHOSTTY_VT_SIZE_REPORT_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/style.h b/packages/terminal/vendor/include/ghostty/vt/style.h new file mode 100644 index 0000000000000000000000000000000000000000..b6bf860ebe784c815e72016bd6db4c349b855fc0 --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/style.h @@ -0,0 +1,139 @@ +/** + * @file style.h + * + * Terminal cell style types. + */ + +#ifndef GHOSTTY_VT_STYLE_H +#define GHOSTTY_VT_STYLE_H + +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** @defgroup style Style + * + * Terminal cell style attributes. + * + * A style describes the visual attributes of a terminal cell, including + * foreground, background, and underline colors, as well as flags for + * bold, italic, underline, and other text decorations. + * + * @{ + */ + +/** + * Style identifier type. + * + * Used to look up the full style from a grid reference. + * Obtain this from a cell via GHOSTTY_CELL_DATA_STYLE_ID. + * + * @ingroup style + */ +typedef uint16_t GhosttyStyleId; + +/** + * Style color tags. + * + * These values identify the type of color in a style color. + * Use the tag to determine which field in the color value union to access. + * + * @ingroup style + */ +typedef enum GHOSTTY_ENUM_TYPED { + GHOSTTY_STYLE_COLOR_NONE = 0, + GHOSTTY_STYLE_COLOR_PALETTE = 1, + GHOSTTY_STYLE_COLOR_RGB = 2, + GHOSTTY_STYLE_COLOR_TAG_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, + } GhosttyStyleColorTag; + +/** + * Style color value union. + * + * Use the tag to determine which field is active. + * + * @ingroup style + */ +typedef union { + GhosttyColorPaletteIndex palette; + GhosttyColorRgb rgb; + uint64_t _padding; +} GhosttyStyleColorValue; + +/** + * Style color (tagged union). + * + * A color used in a style attribute. Can be unset (none), a palette + * index, or a direct RGB value. + * + * @ingroup style + */ +typedef struct { + GhosttyStyleColorTag tag; + GhosttyStyleColorValue value; +} GhosttyStyleColor; + +/** + * Terminal cell style. + * + * Describes the complete visual style for a terminal cell, including + * foreground, background, and underline colors, as well as text + * decoration flags. The underline field uses the same values as + * GhosttySgrUnderline. + * + * This is a sized struct. Use GHOSTTY_INIT_SIZED() to initialize it. + * + * @ingroup style + */ +typedef struct { + size_t size; + GhosttyStyleColor fg_color; + GhosttyStyleColor bg_color; + GhosttyStyleColor underline_color; + bool bold; + bool italic; + bool faint; + bool blink; + bool inverse; + bool invisible; + bool strikethrough; + bool overline; + int underline; /**< One of GHOSTTY_SGR_UNDERLINE_* values */ +} GhosttyStyle; + +/** + * Get the default style. + * + * Initializes the style to the default values (no colors, no flags). + * + * @param style Pointer to the style to initialize + * + * @ingroup style + */ +GHOSTTY_API void ghostty_style_default(GhosttyStyle* style); + +/** + * Check if a style is the default style. + * + * Returns true if all colors are unset and all flags are off. + * + * @param style Pointer to the style to check + * @return true if the style is the default style + * + * @ingroup style + */ +GHOSTTY_API bool ghostty_style_is_default(const GhosttyStyle* style); + +#ifdef __cplusplus +} +#endif + +/** @} */ + +#endif /* GHOSTTY_VT_STYLE_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/sys.h b/packages/terminal/vendor/include/ghostty/vt/sys.h new file mode 100644 index 0000000000000000000000000000000000000000..ae90596927dfcf7a46c89c0dd493dc09beab9cb0 --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/sys.h @@ -0,0 +1,210 @@ +/** + * @file sys.h + * + * System interface - runtime-swappable implementations for external dependencies. + */ + +#ifndef GHOSTTY_VT_SYS_H +#define GHOSTTY_VT_SYS_H + +#include +#include +#include +#include +#include + +/** @defgroup sys System Interface + * + * Runtime-swappable function pointers for operations that depend on + * external implementations (e.g. image decoding). + * + * These are process-global settings that must be configured at startup + * before any terminal functionality that depends on them is used. + * Setting these enables various optional features of the terminal. For + * example, setting a PNG decoder enables PNG image support in the Kitty + * Graphics Protocol. + * + * Use ghostty_sys_set() with a `GhosttySysOption` to install or clear + * an implementation. Passing NULL as the value clears the implementation + * and disables the corresponding feature. + * + * ## Example + * + * ### Defining a PNG decode callback + * @snippet c-vt-kitty-graphics/src/main.c kitty-graphics-decode-png + * + * ### Installing the callback and sending a PNG image + * @snippet c-vt-kitty-graphics/src/main.c kitty-graphics-main + * + * @{ + */ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Result of decoding an image. + * + * The `data` buffer must be allocated through the allocator provided to + * the decode callback. The library takes ownership and will free it + * with the same allocator. + */ +typedef struct { + /** Image width in pixels. */ + uint32_t width; + + /** Image height in pixels. */ + uint32_t height; + + /** Pointer to the decoded RGBA pixel data. */ + uint8_t* data; + + /** Length of the pixel data in bytes. */ + size_t data_len; +} GhosttySysImage; + +/** + * Log severity levels for the log callback. + */ +typedef enum GHOSTTY_ENUM_TYPED { + GHOSTTY_SYS_LOG_LEVEL_ERROR = 0, + GHOSTTY_SYS_LOG_LEVEL_WARNING = 1, + GHOSTTY_SYS_LOG_LEVEL_INFO = 2, + GHOSTTY_SYS_LOG_LEVEL_DEBUG = 3, + GHOSTTY_SYS_LOG_LEVEL_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttySysLogLevel; + +/** + * Callback type for logging. + * + * When installed, internal library log messages are delivered through + * this callback instead of being discarded. The embedder is responsible + * for formatting and routing log output. + * + * @p scope is the log scope name as UTF-8 bytes (e.g. "osc", "kitty"). + * When the log is unscoped (default scope), @p scope_len is 0. + * + * All pointer arguments are only valid for the duration of the callback. + * The callback must be safe to call from any thread. + * + * @param userdata The userdata pointer set via GHOSTTY_SYS_OPT_USERDATA + * @param level The severity level of the log message + * @param scope Pointer to the scope name bytes + * @param scope_len Length of the scope name in bytes + * @param message Pointer to the log message bytes + * @param message_len Length of the log message in bytes + */ +typedef void (*GhosttySysLogFn)( + void* userdata, + GhosttySysLogLevel level, + const uint8_t* scope, + size_t scope_len, + const uint8_t* message, + size_t message_len); + +/** + * Callback type for PNG decoding. + * + * Decodes raw PNG data into RGBA pixels. The output pixel data must be + * allocated through the provided allocator. The library takes ownership + * of the buffer and will free it with the same allocator. + * + * @param userdata The userdata pointer set via GHOSTTY_SYS_OPT_USERDATA + * @param allocator The allocator to use for the output pixel buffer + * @param data Pointer to the raw PNG data + * @param data_len Length of the raw PNG data in bytes + * @param[out] out On success, filled with the decoded image + * @return true on success, false on failure + */ +typedef bool (*GhosttySysDecodePngFn)( + void* userdata, + const GhosttyAllocator* allocator, + const uint8_t* data, + size_t data_len, + GhosttySysImage* out); + +/** + * System option identifiers for ghostty_sys_set(). + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** + * Set the userdata pointer passed to all sys callbacks. + * + * Input type: void* (or NULL) + */ + GHOSTTY_SYS_OPT_USERDATA = 0, + + /** + * Set the PNG decode function. + * + * When set, the terminal can accept PNG images via the Kitty + * Graphics Protocol. When cleared (NULL value), PNG decoding is + * unsupported and PNG image data will be rejected. + * + * Input type: GhosttySysDecodePngFn (function pointer, or NULL) + */ + GHOSTTY_SYS_OPT_DECODE_PNG = 1, + + /** + * Set the log callback. + * + * When set, internal library log messages are delivered to this + * callback. When cleared (NULL value), log messages are silently + * discarded. + * + * Use ghostty_sys_log_stderr as a convenience callback that + * writes formatted messages to stderr. + * + * Which log levels are emitted depends on the build mode of the + * library and is not configurable at runtime. Debug builds emit + * all levels (debug and above). Release builds emit info and + * above; debug-level messages are compiled out entirely and will + * never reach the callback. + * + * Input type: GhosttySysLogFn (function pointer, or NULL) + */ + GHOSTTY_SYS_OPT_LOG = 2, + GHOSTTY_SYS_OPT_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttySysOption; + +/** + * Set a system-level option. + * + * Configures a process-global implementation function. These should be + * set once at startup before using any terminal functionality that + * depends on them. + * + * @param option The option to set + * @param value Pointer to the value (type depends on the option), + * or NULL to clear it + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if the + * option is not recognized + */ +GHOSTTY_API GhosttyResult ghostty_sys_set(GhosttySysOption option, + const void* value); + +/** + * Built-in log callback that writes to stderr. + * + * Formats each message as "[level](scope): message\n". + * Can be passed directly to ghostty_sys_set(): + * + * @code + * ghostty_sys_set(GHOSTTY_SYS_OPT_LOG, &ghostty_sys_log_stderr); + * @endcode + */ +GHOSTTY_API void ghostty_sys_log_stderr(void* userdata, + GhosttySysLogLevel level, + const uint8_t* scope, + size_t scope_len, + const uint8_t* message, + size_t message_len); + +#ifdef __cplusplus +} +#endif + +/** @} */ + +#endif /* GHOSTTY_VT_SYS_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/terminal.h b/packages/terminal/vendor/include/ghostty/vt/terminal.h new file mode 100644 index 0000000000000000000000000000000000000000..8470607b3714a22805636b252f197f09c246d638 --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/terminal.h @@ -0,0 +1,1598 @@ +/** + * @file terminal.h + * + * Complete terminal emulator state and rendering. + */ + +#ifndef GHOSTTY_VT_TERMINAL_H +#define GHOSTTY_VT_TERMINAL_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** @defgroup terminal Terminal + * + * Complete terminal emulator state and rendering. + * + * A terminal instance manages the full emulator state including the screen, + * scrollback, cursor, styles, modes, and VT stream processing. + * + * Once a terminal session is up and running, you can configure a key encoder + * to write keyboard input via ghostty_key_encoder_setopt_from_terminal(). + * + * ### Example: VT stream processing + * @snippet c-vt-stream/src/main.c vt-stream-init + * @snippet c-vt-stream/src/main.c vt-stream-write + * + * ## Scrollback Compression + * + * Scrollback compression is caller-driven. The terminal exposes an opaque + * activity token so an embedding application can restart an idle timer only + * when compression-relevant state changes. Once idle, call incremental + * compression until it no longer reports pending work. libghostty-vt does not + * create a timer or background thread. + * + * @snippet c-vt-compression/src/main.c compression-activity + * @snippet c-vt-compression/src/main.c compression-idle-step + * + * ## Effects + * + * By default, the terminal sequence processing with ghostty_terminal_vt_write() + * only process sequences that directly affect terminal state and + * ignores sequences that have side effect behavior or require responses. + * These sequences include things like bell characters, title changes, device + * attributes queries, and more. To handle these sequences, the embedder + * must configure "effects." + * + * Effects are callbacks that the terminal invokes in response to VT + * sequences processed during ghostty_terminal_vt_write(). They let the + * embedding application react to terminal-initiated events such as bell + * characters, title changes, device status report responses, and more. + * + * Each effect is registered with ghostty_terminal_set() using the + * corresponding `GhosttyTerminalOption` identifier. A `NULL` value + * pointer clears the callback and disables the effect. + * + * A userdata pointer can be attached via `GHOSTTY_TERMINAL_OPT_USERDATA` + * and is passed to every callback, allowing callers to route events + * back to their own application state without global variables. + * You cannot specify different userdata for different callbacks. + * + * All callbacks are invoked synchronously during + * ghostty_terminal_vt_write(). Callbacks **must not** call + * ghostty_terminal_vt_write() on the same terminal (no reentrancy). + * And callbacks must be very careful to not block for too long or perform + * expensive operations, since they are blocking further IO processing. + * + * The available effects are: + * + * | Option | Callback Type | Trigger | + * |-----------------------------------------|-----------------------------------|-------------------------------------------| + * | `GHOSTTY_TERMINAL_OPT_WRITE_PTY` | `GhosttyTerminalWritePtyFn` | Query responses written back to the pty | + * | `GHOSTTY_TERMINAL_OPT_BELL` | `GhosttyTerminalBellFn` | BEL character (0x07) | + * | `GHOSTTY_TERMINAL_OPT_TITLE_CHANGED` | `GhosttyTerminalTitleChangedFn` | Title change via OSC 0 / OSC 2 | + * | `GHOSTTY_TERMINAL_OPT_PWD_CHANGED` | `GhosttyTerminalPwdChangedFn` | Pwd change via OSC 7 / OSC 9 / OSC 1337 | + * | `GHOSTTY_TERMINAL_OPT_ENQUIRY` | `GhosttyTerminalEnquiryFn` | ENQ character (0x05) | + * | `GHOSTTY_TERMINAL_OPT_XTVERSION` | `GhosttyTerminalXtversionFn` | XTVERSION query (CSI > q) | + * | `GHOSTTY_TERMINAL_OPT_SIZE` | `GhosttyTerminalSizeFn` | XTWINOPS size query (CSI 14/16/18 t) | + * | `GHOSTTY_TERMINAL_OPT_COLOR_SCHEME` | `GhosttyTerminalColorSchemeFn` | Color scheme query (CSI ? 996 n) | + * | `GHOSTTY_TERMINAL_OPT_DEVICE_ATTRIBUTES`| `GhosttyTerminalDeviceAttributesFn`| Device attributes query (CSI c / > c / = c)| + * | `GHOSTTY_TERMINAL_OPT_CLIPBOARD_WRITE` | `GhosttyTerminalClipboardWriteFn` | Clipboard write via OSC 52 / OSC 1337 | + * + * ### Defining a write_pty callback + * @snippet c-vt-effects/src/main.c effects-write-pty + * + * ### Defining a bell callback + * @snippet c-vt-effects/src/main.c effects-bell + * + * ### Defining a title_changed callback + * @snippet c-vt-effects/src/main.c effects-title-changed + * + * ### Defining a clipboard_write callback + * @snippet c-vt-effects/src/main.c effects-clipboard-write + * + * ### Registering effects and processing VT data + * @snippet c-vt-effects/src/main.c effects-register + * + * ## Color Theme + * + * The terminal maintains a set of colors used for rendering: a foreground + * color, a background color, a cursor color, and a 256-color palette. Each + * of these has two layers: a **default** value set by the embedder, and an + * **override** value that programs running in the terminal can set via OSC + * escape sequences (e.g. OSC 10/11/12 for foreground/background/cursor, + * OSC 4 for individual palette entries). + * + * ### Default Colors + * + * Use ghostty_terminal_set() with the color options to configure the + * default colors. These represent the theme or configuration chosen by + * the embedder. Passing `NULL` clears the default, leaving the color + * unset. + * + * | Option | Input Type | Description | + * |-----------------------------------------|-------------------------|--------------------------------------| + * | `GHOSTTY_TERMINAL_OPT_COLOR_FOREGROUND` | `GhosttyColorRgb*` | Default foreground color | + * | `GHOSTTY_TERMINAL_OPT_COLOR_BACKGROUND` | `GhosttyColorRgb*` | Default background color | + * | `GHOSTTY_TERMINAL_OPT_COLOR_CURSOR` | `GhosttyColorRgb*` | Default cursor color | + * | `GHOSTTY_TERMINAL_OPT_COLOR_PALETTE` | `GhosttyColorRgb[256]*` | Default 256-color palette | + * + * For the palette, passing `NULL` resets to the built-in default palette. + * The palette set operation preserves any per-index OSC overrides that + * programs have applied; only unmodified indices are updated. + * + * ### Reading colors + * + * Use ghostty_terminal_get() to read colors. There are two variants for + * each color: the **effective** value (which returns the OSC override if + * one is active, otherwise the default) and the **default** value (which + * ignores any OSC overrides). + * + * | Data | Output Type | Description | + * |---------------------------------------------------|-------------------------|------------------------------------------------| + * | `GHOSTTY_TERMINAL_DATA_COLOR_FOREGROUND` | `GhosttyColorRgb*` | Effective foreground (override or default) | + * | `GHOSTTY_TERMINAL_DATA_COLOR_BACKGROUND` | `GhosttyColorRgb*` | Effective background (override or default) | + * | `GHOSTTY_TERMINAL_DATA_COLOR_CURSOR` | `GhosttyColorRgb*` | Effective cursor (override or default) | + * | `GHOSTTY_TERMINAL_DATA_COLOR_PALETTE` | `GhosttyColorRgb[256]*` | Current palette (with any OSC overrides) | + * | `GHOSTTY_TERMINAL_DATA_COLOR_FOREGROUND_DEFAULT` | `GhosttyColorRgb*` | Default foreground only (ignores OSC override) | + * | `GHOSTTY_TERMINAL_DATA_COLOR_BACKGROUND_DEFAULT` | `GhosttyColorRgb*` | Default background only (ignores OSC override) | + * | `GHOSTTY_TERMINAL_DATA_COLOR_CURSOR_DEFAULT` | `GhosttyColorRgb*` | Default cursor only (ignores OSC override) | + * | `GHOSTTY_TERMINAL_DATA_COLOR_PALETTE_DEFAULT` | `GhosttyColorRgb[256]*` | Default palette only (ignores OSC overrides) | + * + * For foreground, background, and cursor colors, the getters return + * `GHOSTTY_NO_VALUE` if no color is configured (neither a default nor an + * OSC override). The palette getters always succeed since the palette + * always has a value (the built-in default if nothing else is set). + * + * ### Setting a color theme + * @snippet c-vt-colors/src/main.c colors-set-defaults + * + * ### Reading effective and default colors + * @snippet c-vt-colors/src/main.c colors-read + * + * ### Full example with OSC overrides + * @snippet c-vt-colors/src/main.c colors-main + * + * @{ + */ + +/** + * Terminal initialization options. + * + * @ingroup terminal + */ +typedef struct { + /** Terminal width in cells. Must be greater than zero. */ + uint16_t cols; + + /** Terminal height in cells. Must be greater than zero. */ + uint16_t rows; + + /** Maximum number of lines to keep in scrollback history. */ + size_t max_scrollback; + + // TODO: Consider ABI compatibility implications of this struct. + // We may want to artificially pad it significantly to support + // future options. +} GhosttyTerminalOptions; + +/** + * Amount of compression work to perform before returning. + * + * @ingroup terminal + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Perform one bounded compression step suitable for idle scheduling. */ + GHOSTTY_TERMINAL_COMPRESSION_MODE_INCREMENTAL = 0, + + /** Synchronously inspect every currently eligible page. */ + GHOSTTY_TERMINAL_COMPRESSION_MODE_FULL = 1, + GHOSTTY_TERMINAL_COMPRESSION_MODE_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyTerminalCompressionMode; + +/** + * Scheduling result from terminal compression. + * + * @ingroup terminal + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Retained-mapping reclamation is unavailable on this target. */ + GHOSTTY_TERMINAL_COMPRESSION_RESULT_UNSUPPORTED = 0, + + /** More incremental compression work remains. */ + GHOSTTY_TERMINAL_COMPRESSION_RESULT_PENDING = 1, + + /** The pass has no continuation to schedule. */ + GHOSTTY_TERMINAL_COMPRESSION_RESULT_COMPLETE = 2, + GHOSTTY_TERMINAL_COMPRESSION_RESULT_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyTerminalCompressionResult; + +/** + * Scroll viewport behavior tag. + * + * @ingroup terminal + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Scroll to the top of the scrollback. */ + GHOSTTY_SCROLL_VIEWPORT_TOP, + + /** Scroll to the bottom (active area). */ + GHOSTTY_SCROLL_VIEWPORT_BOTTOM, + + /** Scroll by a delta amount (up is negative). */ + GHOSTTY_SCROLL_VIEWPORT_DELTA, + + /** + * Scroll to an absolute row offset from the top of the scrollable + * area. Row 0 is the top of the scrollback and the requested row + * becomes the first visible row of the viewport. The value is + * clamped so the viewport never scrolls beyond the top of the + * active area. If the terminal has no scrollback (e.g. the + * alternate screen is active), the viewport always remains on the + * active area. + * + * This is the same row space as the offset field of + * GhosttyTerminalScrollbar, so a scrollbar position obtained from + * GHOSTTY_TERMINAL_DATA_SCROLLBAR round-trips cleanly. + */ + GHOSTTY_SCROLL_VIEWPORT_ROW, + GHOSTTY_SCROLL_VIEWPORT_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyTerminalScrollViewportTag; + +/** + * Scroll viewport value. + * + * @ingroup terminal + */ +typedef union { + /** Scroll delta (only used with GHOSTTY_SCROLL_VIEWPORT_DELTA). Up is negative. */ + intptr_t delta; + + /** Absolute row offset (only used with GHOSTTY_SCROLL_VIEWPORT_ROW). */ + size_t row; + + /** Padding for ABI compatibility. Do not use. */ + uint64_t _padding[2]; +} GhosttyTerminalScrollViewportValue; + +/** + * Tagged union for scroll viewport behavior. + * + * @ingroup terminal + */ +typedef struct { + GhosttyTerminalScrollViewportTag tag; + GhosttyTerminalScrollViewportValue value; +} GhosttyTerminalScrollViewport; + +/** + * Terminal screen identifier. + * + * Identifies which screen buffer is active in the terminal. + * + * @ingroup terminal + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** The primary (normal) screen. */ + GHOSTTY_TERMINAL_SCREEN_PRIMARY = 0, + + /** The alternate screen. */ + GHOSTTY_TERMINAL_SCREEN_ALTERNATE = 1, + GHOSTTY_TERMINAL_SCREEN_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyTerminalScreen; + +/** + * Visual style of the terminal cursor. + * + * @ingroup terminal + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Bar cursor (DECSCUSR 5, 6). */ + GHOSTTY_TERMINAL_CURSOR_STYLE_BAR = 0, + + /** Block cursor (DECSCUSR 1, 2). */ + GHOSTTY_TERMINAL_CURSOR_STYLE_BLOCK = 1, + + /** Underline cursor (DECSCUSR 3, 4). */ + GHOSTTY_TERMINAL_CURSOR_STYLE_UNDERLINE = 2, + + /** Hollow block cursor. */ + GHOSTTY_TERMINAL_CURSOR_STYLE_BLOCK_HOLLOW = 3, + GHOSTTY_TERMINAL_CURSOR_STYLE_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyTerminalCursorStyle; + +/** + * Scrollbar state for the terminal viewport. + * + * Represents the scrollable area dimensions needed to render a scrollbar. + * + * @ingroup terminal + */ +typedef struct { + /** Total size of the scrollable area in rows. */ + uint64_t total; + + /** Offset into the total area that the viewport is at. */ + uint64_t offset; + + /** Length of the visible area in rows. */ + uint64_t len; +} GhosttyTerminalScrollbar; + +/** + * Callback function type for bell. + * + * Called when the terminal receives a BEL character (0x07). + * + * @param terminal The terminal handle + * @param userdata The userdata pointer set via GHOSTTY_TERMINAL_OPT_USERDATA + * + * @ingroup terminal + */ +typedef void (*GhosttyTerminalBellFn)(GhosttyTerminal terminal, + void* userdata); + +/** + * Clipboard destination for a clipboard write. + * + * Protocol-specific destination identifiers are normalized to these values + * before the clipboard write callback is invoked. + * + * @ingroup terminal + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** The standard system clipboard. */ + GHOSTTY_CLIPBOARD_LOCATION_STANDARD = 0, + + /** The selection clipboard. */ + GHOSTTY_CLIPBOARD_LOCATION_SELECTION = 1, + + /** The primary selection clipboard. */ + GHOSTTY_CLIPBOARD_LOCATION_PRIMARY = 2, + GHOSTTY_CLIPBOARD_LOCATION_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyClipboardLocation; + +/** + * One MIME representation in a clipboard write. + * + * Both strings are borrowed and valid only for the duration of the callback. + * The data is binary-safe and has already been decoded from any protocol-level + * encoding. A zero-length data string is an explicit empty representation; it + * does not clear the clipboard. + * + * This struct has a frozen layout and will not gain fields in future versions. + * + * @ingroup terminal + */ +typedef struct { + /** MIME type of the representation. */ + GhosttyString mime; + + /** Decoded, binary-safe representation data. */ + GhosttyString data; +} GhosttyClipboardContent; + +/** + * A semantic, atomic clipboard write. + * + * This is a sized struct. The callback must only access fields present in the + * size reported by `size`. The request, contents array, MIME strings, and + * data strings are all borrowed and valid only for the callback duration. + * + * All entries in `contents` are representations of the same logical value + * and must be committed atomically. A `contents_len` of zero requests that + * the destination be cleared. This is distinct from a content entry whose data + * has zero length. + * + * @ingroup terminal + */ +typedef struct { + /** Size of this struct in bytes. */ + size_t size; + + /** Clipboard destination. */ + GhosttyClipboardLocation location; + + /** Borrowed array of MIME representations. */ + const GhosttyClipboardContent* contents; + + /** Number of entries in contents; zero means clear the destination. */ + size_t contents_len; +} GhosttyClipboardWrite; + +/** + * Result of a clipboard write callback. + * + * Protocols without write acknowledgements, including OSC 52 and iTerm2 + * OSC 1337 Copy, ignore this result. + * + * @ingroup terminal + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** The clipboard write completed successfully. */ + GHOSTTY_CLIPBOARD_WRITE_RESULT_SUCCESS = 0, + + /** The clipboard write was denied by policy or the user. */ + GHOSTTY_CLIPBOARD_WRITE_RESULT_DENIED = 1, + + /** The destination or one or more representations are unsupported. */ + GHOSTTY_CLIPBOARD_WRITE_RESULT_UNSUPPORTED = 2, + + /** The clipboard is temporarily unavailable. */ + GHOSTTY_CLIPBOARD_WRITE_RESULT_BUSY = 3, + + /** One or more representations contain invalid data. */ + GHOSTTY_CLIPBOARD_WRITE_RESULT_INVALID_DATA = 4, + + /** The clipboard write failed due to an I/O error. */ + GHOSTTY_CLIPBOARD_WRITE_RESULT_IO_ERROR = 5, + GHOSTTY_CLIPBOARD_WRITE_RESULT_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyClipboardWriteResult; + +/** + * Callback function type for clipboard_write. + * + * Called synchronously for a complete logical clipboard write. Protocol + * details such as OSC 52 selectors, base64 encoding, multipart chunks, + * aliases, and terminators are normalized before this callback is invoked. + * OSC 52 and iTerm2 OSC 1337 Copy writes therefore use the same callback + * shape. OSC 52 clipboard read requests ("?") are always ignored and never + * forwarded to this callback. + * + * @param terminal The terminal handle + * @param userdata The userdata pointer set via GHOSTTY_TERMINAL_OPT_USERDATA + * @param write Borrowed atomic clipboard write request + * @return The result of attempting the clipboard write + * + * @ingroup terminal + */ +typedef GhosttyClipboardWriteResult (*GhosttyTerminalClipboardWriteFn)( + GhosttyTerminal terminal, + void* userdata, + const GhosttyClipboardWrite* write); + +/** + * Callback function type for color scheme queries (CSI ? 996 n). + * + * Called when the terminal receives a color scheme device status report + * query. Return true and fill *out_scheme with the current color scheme, + * or return false to silently ignore the query. + * + * @param terminal The terminal handle + * @param userdata The userdata pointer set via GHOSTTY_TERMINAL_OPT_USERDATA + * @param[out] out_scheme Pointer to store the current color scheme + * @return true if the color scheme was filled, false to ignore the query + * + * @ingroup terminal + */ +typedef bool (*GhosttyTerminalColorSchemeFn)(GhosttyTerminal terminal, + void* userdata, + GhosttyColorScheme* out_scheme); + +/** + * Callback function type for device attributes queries (DA1/DA2/DA3). + * + * Called when the terminal receives a device attributes query (CSI c, + * CSI > c, or CSI = c). Return true and fill *out_attrs with the + * response data, or return false to silently ignore the query. + * + * The terminal uses whichever sub-struct (primary, secondary, tertiary) + * matches the request type, but all three should be filled for simplicity. + * + * @param terminal The terminal handle + * @param userdata The userdata pointer set via GHOSTTY_TERMINAL_OPT_USERDATA + * @param[out] out_attrs Pointer to store the device attributes response + * @return true if attributes were filled, false to ignore the query + * + * @ingroup terminal + */ +typedef bool (*GhosttyTerminalDeviceAttributesFn)(GhosttyTerminal terminal, + void* userdata, + GhosttyDeviceAttributes* out_attrs); + +/** + * Callback function type for enquiry (ENQ, 0x05). + * + * Called when the terminal receives an ENQ character. Return the + * response bytes as a GhosttyString. The memory must remain valid + * until the callback returns. Return a zero-length string to send + * no response. + * + * @param terminal The terminal handle + * @param userdata The userdata pointer set via GHOSTTY_TERMINAL_OPT_USERDATA + * @return The response bytes to write back to the pty + * + * @ingroup terminal + */ +typedef GhosttyString (*GhosttyTerminalEnquiryFn)(GhosttyTerminal terminal, + void* userdata); + +/** + * Callback function type for size queries (XTWINOPS). + * + * Called in response to XTWINOPS size queries (CSI 14/16/18 t). + * Return true and fill *out_size with the current terminal geometry, + * or return false to silently ignore the query. + * + * @param terminal The terminal handle + * @param userdata The userdata pointer set via GHOSTTY_TERMINAL_OPT_USERDATA + * @param[out] out_size Pointer to store the terminal size information + * @return true if size was filled, false to ignore the query + * + * @ingroup terminal + */ +typedef bool (*GhosttyTerminalSizeFn)(GhosttyTerminal terminal, + void* userdata, + GhosttySizeReportSize* out_size); + +/** + * Callback function type for title_changed. + * + * Called when the terminal title changes via escape sequences + * (e.g. OSC 0 or OSC 2). The new title can be queried from the + * terminal after the callback returns. + * + * @param terminal The terminal handle + * @param userdata The userdata pointer set via GHOSTTY_TERMINAL_OPT_USERDATA + * + * @ingroup terminal + */ +typedef void (*GhosttyTerminalTitleChangedFn)(GhosttyTerminal terminal, + void* userdata); + +/** + * Callback function type for pwd_changed. + * + * Called when the terminal pwd (current working directory) changes via + * escape sequences: OSC 7 (file:// URI), OSC 9 (ConEmu CurrentDir), or + * OSC 1337 CurrentDir (iTerm2). Use ghostty_terminal_get() with + * GHOSTTY_TERMINAL_DATA_PWD inside the callback to read the new value. + * + * The terminal stores whatever bytes the shell emitted, without parsing. + * That means for OSC 7 the value is the raw URI (typically file://...); + * for OSC 9/OSC 1337 it is typically a bare path. The embedder is + * responsible for decoding any URI scheme or host if it cares about them. + * + * The callback also fires when the shell clears the pwd (e.g. an empty + * OSC 7). In that case GHOSTTY_TERMINAL_DATA_PWD returns a zero-length + * string. + * + * @param terminal The terminal handle + * @param userdata The userdata pointer set via GHOSTTY_TERMINAL_OPT_USERDATA + * + * @ingroup terminal + */ +typedef void (*GhosttyTerminalPwdChangedFn)(GhosttyTerminal terminal, + void* userdata); + +/** + * Callback function type for write_pty. + * + * Called when the terminal needs to write data back to the pty, for + * example in response to a device status report or mode query. The + * data is only valid for the duration of the call; callers must copy + * it if it needs to persist. + * + * @param terminal The terminal handle + * @param userdata The userdata pointer set via GHOSTTY_TERMINAL_OPT_USERDATA + * @param data Pointer to the response bytes + * @param len Length of the response in bytes + * + * @ingroup terminal + */ +typedef void (*GhosttyTerminalWritePtyFn)(GhosttyTerminal terminal, + void* userdata, + const uint8_t* data, + size_t len); + +/** + * Callback function type for XTVERSION. + * + * Called when the terminal receives an XTVERSION query (CSI > q). + * Return the version string (e.g. "myterm 1.0") as a GhosttyString. + * The memory must remain valid until the callback returns. Return a + * zero-length string to report the default "libghostty" version. + * + * @param terminal The terminal handle + * @param userdata The userdata pointer set via GHOSTTY_TERMINAL_OPT_USERDATA + * @return The version string to report + * + * @ingroup terminal + */ +typedef GhosttyString (*GhosttyTerminalXtversionFn)(GhosttyTerminal terminal, + void* userdata); + +/** + * Terminal option identifiers. + * + * These values are used with ghostty_terminal_set() to configure + * terminal callbacks and associated state. + * + * @ingroup terminal + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** + * Opaque userdata pointer passed to all callbacks. + * + * Input type: void* + */ + GHOSTTY_TERMINAL_OPT_USERDATA = 0, + + /** + * Callback invoked when the terminal needs to write data back + * to the pty (e.g. in response to a DECRQM query or device + * status report). Set to NULL to ignore such sequences. + * + * Input type: GhosttyTerminalWritePtyFn + */ + GHOSTTY_TERMINAL_OPT_WRITE_PTY = 1, + + /** + * Callback invoked when the terminal receives a BEL character + * (0x07). Set to NULL to ignore bell events. + * + * Input type: GhosttyTerminalBellFn + */ + GHOSTTY_TERMINAL_OPT_BELL = 2, + + /** + * Callback invoked when the terminal receives an ENQ character + * (0x05). Set to NULL to send no response. + * + * Input type: GhosttyTerminalEnquiryFn + */ + GHOSTTY_TERMINAL_OPT_ENQUIRY = 3, + + /** + * Callback invoked when the terminal receives an XTVERSION query + * (CSI > q). Set to NULL to report the default "libghostty" string. + * + * Input type: GhosttyTerminalXtversionFn + */ + GHOSTTY_TERMINAL_OPT_XTVERSION = 4, + + /** + * Callback invoked when the terminal title changes via escape + * sequences (e.g. OSC 0 or OSC 2). Set to NULL to ignore title + * change events. + * + * Input type: GhosttyTerminalTitleChangedFn + */ + GHOSTTY_TERMINAL_OPT_TITLE_CHANGED = 5, + + /** + * Callback invoked in response to XTWINOPS size queries + * (CSI 14/16/18 t). Set to NULL to silently ignore size queries. + * + * Input type: GhosttyTerminalSizeFn + */ + GHOSTTY_TERMINAL_OPT_SIZE = 6, + + /** + * Callback invoked in response to a color scheme device status + * report query (CSI ? 996 n). Return true and fill the out pointer + * to report the current scheme, or return false to silently ignore. + * Set to NULL to ignore color scheme queries. + * + * Input type: GhosttyTerminalColorSchemeFn + */ + GHOSTTY_TERMINAL_OPT_COLOR_SCHEME = 7, + + /** + * Callback invoked in response to a device attributes query + * (CSI c, CSI > c, or CSI = c). Return true and fill the out + * pointer with response data, or return false to silently ignore. + * Set to NULL to ignore device attributes queries. + * + * Input type: GhosttyTerminalDeviceAttributesFn + */ + GHOSTTY_TERMINAL_OPT_DEVICE_ATTRIBUTES = 8, + + /** + * Set the terminal title manually. + * + * The string data is copied into the terminal. A NULL value pointer + * clears the title (equivalent to setting an empty string). + * + * Input type: GhosttyString* + */ + GHOSTTY_TERMINAL_OPT_TITLE = 9, + + /** + * Set the terminal working directory manually. + * + * The string data is copied into the terminal. A NULL value pointer + * clears the pwd (equivalent to setting an empty string). + * + * Input type: GhosttyString* + */ + GHOSTTY_TERMINAL_OPT_PWD = 10, + + /** + * Set the default foreground color. + * + * A NULL value pointer clears the default (unset). + * + * Input type: GhosttyColorRgb* + */ + GHOSTTY_TERMINAL_OPT_COLOR_FOREGROUND = 11, + + /** + * Set the default background color. + * + * A NULL value pointer clears the default (unset). + * + * Input type: GhosttyColorRgb* + */ + GHOSTTY_TERMINAL_OPT_COLOR_BACKGROUND = 12, + + /** + * Set the default cursor color. + * + * A NULL value pointer clears the default (unset). + * + * Input type: GhosttyColorRgb* + */ + GHOSTTY_TERMINAL_OPT_COLOR_CURSOR = 13, + + /** + * Set the default 256-color palette. + * + * The value must point to an array of exactly 256 GhosttyColorRgb values. + * A NULL value pointer resets to the built-in default palette. + * + * Input type: GhosttyColorRgb[256]* + */ + GHOSTTY_TERMINAL_OPT_COLOR_PALETTE = 14, + + /** + * Set the Kitty image storage limit in bytes. + * + * Applied to all initialized screens (primary and alternate). + * A value of zero disables the Kitty graphics protocol entirely, + * deleting all stored images and placements. A NULL value pointer + * is equivalent to zero (disables). Has no effect when Kitty graphics + * are disabled at build time. + * + * Input type: uint64_t* + */ + GHOSTTY_TERMINAL_OPT_KITTY_IMAGE_STORAGE_LIMIT = 15, + + /** + * Enable or disable Kitty image loading via the file medium. + * + * A NULL value pointer is a no-op. Has no effect when Kitty graphics + * are disabled at build time. + * + * Input type: bool* + */ + GHOSTTY_TERMINAL_OPT_KITTY_IMAGE_MEDIUM_FILE = 16, + + /** + * Enable Kitty image loading via the temporary file medium, restricted to + * the provided directory. The string data is copied into the terminal. + * + * A NULL value pointer disables the temporary file medium. Has no effect + * when Kitty graphics are disabled at build time. + * + * Input type: GhosttyString* + */ + GHOSTTY_TERMINAL_OPT_KITTY_IMAGE_MEDIUM_TEMP_FILE = 17, + + /** + * Enable or disable Kitty image loading via the shared memory medium. + * + * A NULL value pointer is a no-op. Has no effect when Kitty graphics + * are disabled at build time. + * + * Input type: bool* + */ + GHOSTTY_TERMINAL_OPT_KITTY_IMAGE_MEDIUM_SHARED_MEM = 18, + + /** + * Set the maximum bytes the APC handler will buffer for all protocols. + * This prevents malicious input from causing unbounded memory allocation. + * A NULL value pointer removes all overrides, reverting to the built-in + * defaults. + * + * Input type: size_t* + */ + GHOSTTY_TERMINAL_OPT_APC_MAX_BYTES = 19, + + /** + * Set the maximum bytes the APC handler will buffer for Kitty graphics + * protocol data. A NULL value pointer removes the override, reverting + * to the built-in default. + * + * Input type: size_t* + */ + GHOSTTY_TERMINAL_OPT_APC_MAX_BYTES_KITTY = 20, + + /** + * Set the active screen selection. + * + * The value must point to a GhosttySelection whose grid references are + * valid for this terminal's active screen at the time of the call. The + * terminal copies the selection immediately and converts it to + * terminal-owned tracked state, so the GhosttySelection struct and its + * untracked grid references do not need to outlive this call. + * + * Passing NULL clears the active screen selection. + * + * Input type: GhosttySelection* + */ + GHOSTTY_TERMINAL_OPT_SELECTION = 21, + + /** + * Set the default cursor style used by DECSCUSR reset (CSI 0 q). + * + * A NULL value pointer resets to the built-in default block cursor. + * + * Input type: GhosttyTerminalCursorStyle* + */ + GHOSTTY_TERMINAL_OPT_DEFAULT_CURSOR_STYLE = 22, + + /** + * Set whether the default cursor should blink when reset by DECSCUSR + * (CSI 0 q). + * + * A NULL value pointer resets to the built-in default of not blinking. + * + * Input type: bool* + */ + GHOSTTY_TERMINAL_OPT_DEFAULT_CURSOR_BLINK = 23, + + /** + * Enable or disable Glyph Protocol APC handling. + * + * When disabled, Glyph Protocol APC sequences are ignored and no + * support/query/register/clear responses are emitted. Disabling also clears + * the terminal session's glyph glossary. A NULL value pointer is a no-op. + * + * Input type: bool* + */ + GHOSTTY_TERMINAL_OPT_GLYPH_PROTOCOL = 24, + + /** + * Callback invoked when the terminal pwd changes via escape + * sequences (OSC 7, OSC 9, or OSC 1337 CurrentDir). Set to NULL + * to ignore pwd change events. + * + * Input type: GhosttyTerminalPwdChangedFn + */ + GHOSTTY_TERMINAL_OPT_PWD_CHANGED = 25, + + /** + * Callback invoked when the running program performs a clipboard write. + * OSC 52 and iTerm2 OSC 1337 Copy writes are normalized to an atomic set + * of decoded MIME representations. Set to NULL to ignore clipboard writes. + * Clipboard read requests are always ignored; see + * GhosttyTerminalClipboardWriteFn. + * + * Input type: GhosttyTerminalClipboardWriteFn + */ + GHOSTTY_TERMINAL_OPT_CLIPBOARD_WRITE = 26, + GHOSTTY_TERMINAL_OPT_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyTerminalOption; + +/** + * Terminal data types. + * + * These values specify what type of data to extract from a terminal + * using `ghostty_terminal_get`. + * + * @ingroup terminal + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Invalid data type. Never results in any data extraction. */ + GHOSTTY_TERMINAL_DATA_INVALID = 0, + + /** + * Terminal width in cells. + * + * Output type: uint16_t * + */ + GHOSTTY_TERMINAL_DATA_COLS = 1, + + /** + * Terminal height in cells. + * + * Output type: uint16_t * + */ + GHOSTTY_TERMINAL_DATA_ROWS = 2, + + /** + * Cursor column position (0-indexed). + * + * Output type: uint16_t * + */ + GHOSTTY_TERMINAL_DATA_CURSOR_X = 3, + + /** + * Cursor row position within the active area (0-indexed). + * + * Output type: uint16_t * + */ + GHOSTTY_TERMINAL_DATA_CURSOR_Y = 4, + + /** + * Whether the cursor has a pending wrap (next print will soft-wrap). + * + * Output type: bool * + */ + GHOSTTY_TERMINAL_DATA_CURSOR_PENDING_WRAP = 5, + + /** + * The currently active screen. + * + * Output type: GhosttyTerminalScreen * + */ + GHOSTTY_TERMINAL_DATA_ACTIVE_SCREEN = 6, + + /** + * Whether the cursor is visible (DEC mode 25). + * + * Output type: bool * + */ + GHOSTTY_TERMINAL_DATA_CURSOR_VISIBLE = 7, + + /** + * Current Kitty keyboard protocol flags. + * + * Output type: GhosttyKittyKeyFlags * (uint8_t *) + */ + GHOSTTY_TERMINAL_DATA_KITTY_KEYBOARD_FLAGS = 8, + + /** + * Scrollbar state for the terminal viewport. + * + * This is amortized O(1): the total is maintained incrementally as + * the terminal is modified and the viewport offset is cached. The + * first read after the viewport moves to an arbitrary position that + * isn't an absolute row (e.g. scrolling to a selection) may cost + * O(pages) to compute the offset, after which it is cached again. + * + * There is intentionally no change notification for scroll state. + * Callers building scrollbars should poll this once per frame or + * per write batch and diff the result to detect changes; this is + * what Ghostty's own renderer does. + * + * Output type: GhosttyTerminalScrollbar * + */ + GHOSTTY_TERMINAL_DATA_SCROLLBAR = 9, + + /** + * The current SGR style of the cursor. + * + * This is the style that will be applied to newly printed characters. + * + * Output type: GhosttyStyle * + */ + GHOSTTY_TERMINAL_DATA_CURSOR_STYLE = 10, + + /** + * Whether any mouse tracking mode is active. + * + * Returns true if any of the mouse tracking modes (X10, normal, button, + * or any-event) are enabled. + * + * Output type: bool * + */ + GHOSTTY_TERMINAL_DATA_MOUSE_TRACKING = 11, + + /** + * The terminal title as set by escape sequences (e.g. OSC 0/2). + * + * Returns a borrowed string. The pointer is valid until the next call + * to ghostty_terminal_vt_write() or ghostty_terminal_reset(). An empty + * string (len=0) is returned when no title has been set. + * + * Output type: GhosttyString * + */ + GHOSTTY_TERMINAL_DATA_TITLE = 12, + + /** + * The terminal's current working directory as set by escape sequences + * (e.g. OSC 7). + * + * Returns a borrowed string. The pointer is valid until the next call + * to ghostty_terminal_vt_write() or ghostty_terminal_reset(). An empty + * string (len=0) is returned when no pwd has been set. + * + * Output type: GhosttyString * + */ + GHOSTTY_TERMINAL_DATA_PWD = 13, + + /** + * The total number of rows in the active screen including scrollback. + * + * Output type: size_t * + */ + GHOSTTY_TERMINAL_DATA_TOTAL_ROWS = 14, + + /** + * The number of scrollback rows (total rows minus viewport rows). + * + * Output type: size_t * + */ + GHOSTTY_TERMINAL_DATA_SCROLLBACK_ROWS = 15, + + /** + * The total width of the terminal in pixels. + * + * This is cols * cell_width_px as set by ghostty_terminal_resize(). + * + * Output type: uint32_t * + */ + GHOSTTY_TERMINAL_DATA_WIDTH_PX = 16, + + /** + * The total height of the terminal in pixels. + * + * This is rows * cell_height_px as set by ghostty_terminal_resize(). + * + * Output type: uint32_t * + */ + GHOSTTY_TERMINAL_DATA_HEIGHT_PX = 17, + + /** + * The effective foreground color (override or default). + * + * Returns GHOSTTY_NO_VALUE if no foreground color is set. + * + * Output type: GhosttyColorRgb * + */ + GHOSTTY_TERMINAL_DATA_COLOR_FOREGROUND = 18, + + /** + * The effective background color (override or default). + * + * Returns GHOSTTY_NO_VALUE if no background color is set. + * + * Output type: GhosttyColorRgb * + */ + GHOSTTY_TERMINAL_DATA_COLOR_BACKGROUND = 19, + + /** + * The effective cursor color (override or default). + * + * Returns GHOSTTY_NO_VALUE if no cursor color is set. + * + * Output type: GhosttyColorRgb * + */ + GHOSTTY_TERMINAL_DATA_COLOR_CURSOR = 20, + + /** + * The current 256-color palette. + * + * Output type: GhosttyColorRgb[256] * + */ + GHOSTTY_TERMINAL_DATA_COLOR_PALETTE = 21, + + /** + * The default foreground color (ignoring any OSC override). + * + * Returns GHOSTTY_NO_VALUE if no default foreground color is set. + * + * Output type: GhosttyColorRgb * + */ + GHOSTTY_TERMINAL_DATA_COLOR_FOREGROUND_DEFAULT = 22, + + /** + * The default background color (ignoring any OSC override). + * + * Returns GHOSTTY_NO_VALUE if no default background color is set. + * + * Output type: GhosttyColorRgb * + */ + GHOSTTY_TERMINAL_DATA_COLOR_BACKGROUND_DEFAULT = 23, + + /** + * The default cursor color (ignoring any OSC override). + * + * Returns GHOSTTY_NO_VALUE if no default cursor color is set. + * + * Output type: GhosttyColorRgb * + */ + GHOSTTY_TERMINAL_DATA_COLOR_CURSOR_DEFAULT = 24, + + /** + * The default 256-color palette (ignoring any OSC overrides). + * + * Output type: GhosttyColorRgb[256] * + */ + GHOSTTY_TERMINAL_DATA_COLOR_PALETTE_DEFAULT = 25, + + /** + * The Kitty image storage limit in bytes for the active screen. + * + * A value of zero means the Kitty graphics protocol is disabled. + * Returns GHOSTTY_NO_VALUE when Kitty graphics are disabled at build time. + * + * Output type: uint64_t * + */ + GHOSTTY_TERMINAL_DATA_KITTY_IMAGE_STORAGE_LIMIT = 26, + + /** + * Whether the file medium is enabled for Kitty image loading on the + * active screen. + * + * Returns GHOSTTY_NO_VALUE when Kitty graphics are disabled at build time. + * + * Output type: bool * + */ + GHOSTTY_TERMINAL_DATA_KITTY_IMAGE_MEDIUM_FILE = 27, + + /** + * The directory allowed for Kitty image loading via the temporary file + * medium on the active screen. The string is empty when the medium is + * disabled. + * + * Returns GHOSTTY_NO_VALUE when Kitty graphics are disabled at build time. + * + * Output type: GhosttyString * + */ + GHOSTTY_TERMINAL_DATA_KITTY_IMAGE_MEDIUM_TEMP_FILE = 28, + + /** + * Whether the shared memory medium is enabled for Kitty image loading + * on the active screen. + * + * Returns GHOSTTY_NO_VALUE when Kitty graphics are disabled at build time. + * + * Output type: bool * + */ + GHOSTTY_TERMINAL_DATA_KITTY_IMAGE_MEDIUM_SHARED_MEM = 29, + + /** + * The Kitty graphics image storage for the active screen. + * + * Returns a borrowed pointer to the image storage. The pointer is valid + * until the next mutating terminal call (e.g. ghostty_terminal_vt_write() + * or ghostty_terminal_reset()). + * + * Returns GHOSTTY_NO_VALUE when Kitty graphics are disabled at build time. + * + * Output type: GhosttyKittyGraphics * + */ + GHOSTTY_TERMINAL_DATA_KITTY_GRAPHICS = 30, + + /** + * The active screen's current selection. + * + * On success, writes an untracked snapshot of the terminal-owned selection + * to the caller-provided GhosttySelection. The GhosttySelection struct is + * caller-owned and may be kept, but the grid references inside it are + * untracked borrowed references into the active screen. They are only valid + * until the next mutating terminal call, such as ghostty_terminal_set(), + * ghostty_terminal_vt_write(), ghostty_terminal_resize(), or + * ghostty_terminal_reset(). + * + * Returns GHOSTTY_NO_VALUE when there is no active selection. + * + * Output type: GhosttySelection * + */ + GHOSTTY_TERMINAL_DATA_SELECTION = 31, + + /** + * Whether the viewport is currently pinned to the active area. + * + * This is true when the viewport is following the active terminal area, + * and false when the user has scrolled into history. + * + * Output type: bool * + */ + GHOSTTY_TERMINAL_DATA_VIEWPORT_ACTIVE = 32, + + /** + * Whether VT processing encountered a non-gracefully handled error that may + * have prevented a terminal-owned semantic update. + * + * Processing remains best-effort, and ghostty_terminal_reset() does not + * clear it. Gracefully handled protocol failures, configured limits, + * malformed or unsupported input, and failures limited to external effects + * or query responses do not set it. + * + * This can't currently be unset. This is purely informational to consumers + * if there was some error that happened at some point during VT processing. + * + * Output type: bool * + */ + GHOSTTY_TERMINAL_DATA_VT_PROCESSING_ERROR = 33, + GHOSTTY_TERMINAL_DATA_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyTerminalData; + +/** + * Create a new terminal instance. + * + * @param allocator Pointer to allocator, or NULL to use the default allocator + * @param terminal Pointer to store the created terminal handle + * @param options Terminal initialization options + * @return GHOSTTY_SUCCESS on success, or an error code on failure + * + * @ingroup terminal + */ +GHOSTTY_API GhosttyResult ghostty_terminal_new(const GhosttyAllocator* allocator, + GhosttyTerminal* terminal, + GhosttyTerminalOptions options); + +/** + * Free a terminal instance. + * + * Releases all resources associated with the terminal. After this call, + * the terminal handle becomes invalid and must not be used. + * + * @param terminal The terminal handle to free (may be NULL) + * + * @ingroup terminal + */ +GHOSTTY_API void ghostty_terminal_free(GhosttyTerminal terminal); + +/** + * Perform a full reset of the terminal (RIS). + * + * Resets all terminal state back to its initial configuration, including + * modes, scrollback, scrolling region, and screen contents. The terminal + * dimensions are preserved. + * + * @param terminal The terminal handle (may be NULL, in which case this is a no-op) + * + * @ingroup terminal + */ +GHOSTTY_API void ghostty_terminal_reset(GhosttyTerminal terminal); + +/** + * Resize the terminal to the given dimensions. + * + * Changes the number of columns and rows in the terminal. The primary + * screen will reflow content if wraparound mode is enabled; the alternate + * screen does not reflow. If the dimensions are unchanged, this is a no-op. + * + * This also updates the terminal's pixel dimensions (used for image + * protocols and size reports), disables synchronized output mode (allowed + * by the spec so that resize results are shown immediately), and sends an + * in-band size report if mode 2048 is enabled. + * + * @param terminal The terminal handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param cols New width in cells (must be greater than zero) + * @param rows New height in cells (must be greater than zero) + * @param cell_width_px Width of a single cell in pixels + * @param cell_height_px Height of a single cell in pixels + * @return GHOSTTY_SUCCESS on success, or an error code on failure + * + * @ingroup terminal + */ +GHOSTTY_API GhosttyResult ghostty_terminal_resize(GhosttyTerminal terminal, + uint16_t cols, + uint16_t rows, + uint32_t cell_width_px, + uint32_t cell_height_px); + +/** + * Set an option on the terminal. + * + * Configures terminal callbacks and associated state such as the + * write_pty callback and userdata pointer. The value is passed + * directly for pointer types (callbacks, userdata) or as a pointer + * to the value for non-pointer types (e.g. GhosttyString*). + * NULL clears the option to its default. + * + * Callbacks are invoked synchronously during ghostty_terminal_vt_write(). + * Callbacks must not call ghostty_terminal_vt_write() on the same + * terminal (no reentrancy). + * + * @param terminal The terminal handle (may be NULL, in which case this is a no-op) + * @param option The option to set + * @param value Pointer to the value to set (type depends on the option), + * or NULL to clear the option + * + * @ingroup terminal + */ +GHOSTTY_API GhosttyResult ghostty_terminal_set(GhosttyTerminal terminal, + GhosttyTerminalOption option, + const void* value); + +/** + * Write VT-encoded data to the terminal for processing. + * + * Feeds raw bytes through the terminal's VT stream parser, updating + * terminal state accordingly. By default, sequences that require output + * (queries, device status reports) are silently ignored. Use + * ghostty_terminal_set() with GHOSTTY_TERMINAL_OPT_WRITE_PTY to install + * a callback that receives response data. + * + * This never fails. Any erroneous input or errors in processing the + * input are logged internally but do not cause this function to fail + * because this input is assumed to be untrusted and from an external + * source; so the primary goal is to keep the terminal state consistent and + * not allow malformed input to corrupt or crash. + * + * @param terminal The terminal handle + * @param data Pointer to the data to write + * @param len Length of the data in bytes + * + * @ingroup terminal + */ +GHOSTTY_API void ghostty_terminal_vt_write(GhosttyTerminal terminal, + const uint8_t* data, + size_t len); + +/** + * Scroll the terminal viewport. + * + * Scrolls the terminal's viewport according to the given behavior. + * When using GHOSTTY_SCROLL_VIEWPORT_DELTA, set the delta field in + * the value union to specify the number of rows to scroll (negative + * for up, positive for down). When using GHOSTTY_SCROLL_VIEWPORT_ROW, + * set the row field to the absolute row offset from the top of the + * scrollable area (the same row space as the offset field of + * GhosttyTerminalScrollbar). For other behaviors, the value is ignored. + * + * @param terminal The terminal handle (may be NULL, in which case this is a no-op) + * @param behavior The scroll behavior as a tagged union + * + * @ingroup terminal + */ +GHOSTTY_API void ghostty_terminal_scroll_viewport(GhosttyTerminal terminal, + GhosttyTerminalScrollViewport behavior); + +/** + * Return the current compression activity token. + * + * The token is opaque and only equality comparisons are meaningful. An + * embedding application should cache it and restart its compression idle + * delay whenever the value changes. The value may wrap and changes in either + * direction have the same meaning. + * + * This function only observes terminal state. It does not perform or schedule + * compression. + * + * @param terminal The terminal handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param[out] out_activity Receives the current activity token + * @return GHOSTTY_SUCCESS on success, or GHOSTTY_INVALID_VALUE if an argument + * is NULL + * + * @ingroup terminal + */ +GHOSTTY_API GhosttyResult ghostty_terminal_compression_activity( + GhosttyTerminal terminal, + uint64_t* out_activity); + +/** + * Compress eligible terminal scrollback. + * + * Incremental mode performs bounded work suitable for an idle callback. A + * pending result means the application should invoke another step while the + * terminal remains idle. A complete result means no continuation is needed + * until ghostty_terminal_compression_activity() changes. Full mode performs + * one synchronous scan and can stall on large scrollback buffers. + * + * Compression is opportunistic. Complete means the pass has finished, not + * that every page was compressed: pages may be unprofitable or encounter an + * allocation or reclamation failure. Compression changes only the terminal's + * storage representation and never its logical contents or scrollback limit. + * Accessing compressed history restores it transparently. + * + * This function is not thread-safe with other operations on the same + * terminal. The caller must serialize it with writes, rendering, searches, + * and other terminal access. + * + * @param terminal The terminal handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param mode The amount of compression work to perform + * @param[out] out_result Receives the compression scheduling result + * @return GHOSTTY_SUCCESS on success, or GHOSTTY_INVALID_VALUE if an argument + * or mode is invalid + * + * @ingroup terminal + */ +GHOSTTY_API GhosttyResult ghostty_terminal_compress( + GhosttyTerminal terminal, + GhosttyTerminalCompressionMode mode, + GhosttyTerminalCompressionResult* out_result); + +/** + * Get the current value of a terminal mode. + * + * Returns the value of the mode identified by the given mode. + * + * @param terminal The terminal handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param mode The mode identifying the mode to query + * @param[out] out_value On success, set to true if the mode is set, false + * if it is reset + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if the terminal + * is NULL or the mode does not correspond to a known mode + * + * @ingroup terminal + */ +GHOSTTY_API GhosttyResult ghostty_terminal_mode_get(GhosttyTerminal terminal, + GhosttyMode mode, + bool* out_value); + +/** + * Set the value of a terminal mode. + * + * Sets the mode identified by the given mode to the specified value. + * + * @param terminal The terminal handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param mode The mode identifying the mode to set + * @param value true to set the mode, false to reset it + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if the terminal + * is NULL or the mode does not correspond to a known mode + * + * @ingroup terminal + */ +GHOSTTY_API GhosttyResult ghostty_terminal_mode_set(GhosttyTerminal terminal, + GhosttyMode mode, + bool value); + +/** + * Get data from a terminal instance. + * + * Extracts typed data from the given terminal based on the specified + * data type. The output pointer must be of the appropriate type for the + * requested data kind. Valid data types and output types are documented + * in the `GhosttyTerminalData` enum. + * + * @param terminal The terminal handle (may be NULL) + * @param data The type of data to extract + * @param out Pointer to store the extracted data (type depends on data parameter) + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if the terminal + * is NULL or the data type is invalid + * + * @ingroup terminal + */ +GHOSTTY_API GhosttyResult ghostty_terminal_get(GhosttyTerminal terminal, + GhosttyTerminalData data, + void *out); + +/** + * Get multiple data fields from a terminal in a single call. + * + * This is an optimization over calling ghostty_terminal_get() + * repeatedly, particularly useful in environments with high per-call + * overhead such as FFI or Cgo. + * + * Each element in the keys array specifies a data kind, and the + * corresponding element in the values array receives the result. + * The type of each values[i] pointer must match the output type + * documented for keys[i]. + * + * Processing stops at the first error; on success out_written + * is set to count, on error it is set to the index of the + * failing key (i.e. the number of values successfully written). + * + * @param terminal The terminal handle (may be NULL) + * @param count Number of key/value pairs + * @param keys Array of data kinds to query + * @param values Array of output pointers (types must match each key's + * documented output type) + * @param[out] out_written On return, receives the number of values + * successfully written (may be NULL) + * @return GHOSTTY_SUCCESS if all queries succeed + * + * @ingroup terminal + */ +GHOSTTY_API GhosttyResult ghostty_terminal_get_multi(GhosttyTerminal terminal, + size_t count, + const GhosttyTerminalData* keys, + void** values, + size_t* out_written); + +/** + * Resolve a point in the terminal grid to a grid reference. + * + * Resolves the given point (which can be in active, viewport, screen, + * or history coordinates) to a grid reference for that location. Use + * ghostty_grid_ref_cell() and ghostty_grid_ref_row() to extract the cell + * and row. + * + * Lookups using the `active` and `viewport` tags are fast. The `screen` + * and `history` tags may require traversing the full scrollback page list + * to resolve the y coordinate, so they can be expensive for large + * scrollback buffers. + * + * This function isn't meant to be used as the core of render loop. It + * isn't built to sustain the framerates needed for rendering large screens. + * Use the render state API for that. This API is instead meant for less + * strictly performance-sensitive use cases. + * + * @param terminal The terminal handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param point The point specifying which cell to look up + * @param[out] out_ref On success, set to the grid reference at the given point (may be NULL) + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if the terminal + * is NULL or the point is out of bounds + * + * @ingroup terminal + */ +GHOSTTY_API GhosttyResult ghostty_terminal_grid_ref(GhosttyTerminal terminal, + GhosttyPoint point, + GhosttyGridRef *out_ref); + +/** + * Create an owned tracked grid reference for a terminal point. + * + * This is the tracked variant of ghostty_terminal_grid_ref(). The returned + * handle follows the referenced cell as the terminal's page list is modified: + * scrolling, pruning, resize/reflow, and other page-list operations update the + * tracked reference automatically. + * + * The reference is attached to the terminal screen/page-list that is active at + * creation time. + * + * If the point is outside the requested coordinate space, this returns + * GHOSTTY_INVALID_VALUE and writes NULL to out_ref. + * + * The returned handle must be freed with ghostty_tracked_grid_ref_free(). If + * the terminal is freed first, the handle remains valid only for + * tracked-grid-ref APIs: it reports no value and can still be freed. + * + * @param terminal Terminal instance. + * @param point Point to track. + * @param[out] out_ref On success, receives the tracked reference handle. + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if terminal, + * point, or out_ref is invalid, or GHOSTTY_OUT_OF_MEMORY if allocation + * fails. + * + * @ingroup terminal + */ +GHOSTTY_API GhosttyResult ghostty_terminal_grid_ref_track( + GhosttyTerminal terminal, + GhosttyPoint point, + GhosttyTrackedGridRef *out_ref); + +/** + * Convert a grid reference back to a point in the given coordinate system. + * + * This is the inverse of ghostty_terminal_grid_ref(): given a grid reference, + * it returns the x/y coordinates in the requested coordinate system (active, + * viewport, screen, or history). + * + * The grid reference must have been obtained from the same terminal instance. + * Like all grid references, it is only valid until the next mutating terminal + * call. + * + * Not every grid reference is representable in every coordinate system. For + * example, a cell in scrollback history cannot be expressed in active + * coordinates, and a cell that has scrolled off the visible area cannot be + * expressed in viewport coordinates. In these cases, the function returns + * GHOSTTY_NO_VALUE. + * + * @param terminal The terminal handle (NULL returns GHOSTTY_INVALID_VALUE) + * @param ref Pointer to the grid reference to convert + * @param tag The target coordinate system + * @param[out] out On success, set to the coordinate in the requested system (may be NULL) + * @return GHOSTTY_SUCCESS on success, GHOSTTY_INVALID_VALUE if the terminal + * or ref is NULL/invalid, GHOSTTY_NO_VALUE if the ref falls outside + * the requested coordinate system + * + * @ingroup terminal + */ +GHOSTTY_API GhosttyResult ghostty_terminal_point_from_grid_ref( + GhosttyTerminal terminal, + const GhosttyGridRef *ref, + GhosttyPointTag tag, + GhosttyPointCoordinate *out); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* GHOSTTY_VT_TERMINAL_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/types.h b/packages/terminal/vendor/include/ghostty/vt/types.h new file mode 100644 index 0000000000000000000000000000000000000000..214d282296c5f66aa29b4c9b183655f9c6793ac5 --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/types.h @@ -0,0 +1,335 @@ +/** + * @file types.h + * + * Common types, macros, and utilities for libghostty-vt. + */ + +#ifndef GHOSTTY_VT_TYPES_H +#define GHOSTTY_VT_TYPES_H + +#include +#include +#include + +// Symbol visibility for shared library builds. On Windows, functions +// are exported from the DLL when building and imported when consuming. +// On other platforms with GCC/Clang, functions are marked with default +// visibility so they remain accessible when the library is built with +// -fvisibility=hidden. For static library builds, define GHOSTTY_STATIC +// before including this header to make this a no-op. +#ifndef GHOSTTY_API +#if defined(GHOSTTY_STATIC) + #define GHOSTTY_API +#elif defined(_WIN32) || defined(_WIN64) + #ifdef GHOSTTY_BUILD_SHARED + #define GHOSTTY_API __declspec(dllexport) + #else + #define GHOSTTY_API __declspec(dllimport) + #endif +#elif defined(__GNUC__) && __GNUC__ >= 4 + #define GHOSTTY_API __attribute__((visibility("default"))) +#else + #define GHOSTTY_API +#endif +#endif + +/** + * Enum int-sizing helpers. + * + * The Zig side backs all C enums with c_int, so the C declarations + * must use int as their underlying type to maintain ABI compatibility. + * + * C23 (detected via __STDC_VERSION__ >= 202311L) supports explicit + * enum underlying types with `enum : int { ... }`. For pre-C23 + * compilers, which are free to choose any type that can represent + * all values (C11 §6.7.2.2), we add an INT_MAX sentinel as the last + * entry to force the compiler to use int. + * + * INT_MAX is used rather than a fixed constant like 0xFFFFFFFF + * because enum constants must have type int (which is signed). + * Values above INT_MAX overflow signed int and are a constraint + * violation in standard C; compilers that accept them interpret them + * as negative values via two's complement, which can collide with + * legitimate negative enum values. + * + * Usage: + * @code + * typedef enum GHOSTTY_ENUM_TYPED { + * FOO_A = 0, + * FOO_B = 1, + * FOO_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, + * } Foo; + * @endcode + */ +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L +#define GHOSTTY_ENUM_TYPED : int +#else +#define GHOSTTY_ENUM_TYPED +#endif +#define GHOSTTY_ENUM_MAX_VALUE INT_MAX + +/** + * Result codes for libghostty-vt operations. + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Operation completed successfully */ + GHOSTTY_SUCCESS = 0, + /** Operation failed due to failed allocation */ + GHOSTTY_OUT_OF_MEMORY = -1, + /** Operation failed due to invalid value */ + GHOSTTY_INVALID_VALUE = -2, + /** Operation failed because the provided buffer was too small */ + GHOSTTY_OUT_OF_SPACE = -3, + /** The requested value has no value */ + GHOSTTY_NO_VALUE = -4, + GHOSTTY_RESULT_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyResult; + +/* ---- Opaque handles ---- */ + +/** + * Opaque handle to a terminal instance. + * + * @ingroup terminal + */ +typedef struct GhosttyTerminalImpl* GhosttyTerminal; + +/** + * Opaque handle to a tracked grid reference. + * + * A tracked grid reference is owned by the caller and must be freed with + * ghostty_tracked_grid_ref_free(). If the terminal that created it is freed + * first, the handle remains valid only for tracked-grid-ref APIs: it reports no + * value and can still be freed. + * + * @ingroup grid_ref + */ +typedef struct GhosttyTrackedGridRefImpl* GhosttyTrackedGridRef; + +/** + * Opaque handle to a Kitty graphics image storage. + * + * Obtained via ghostty_terminal_get() with + * GHOSTTY_TERMINAL_DATA_KITTY_GRAPHICS. The pointer is borrowed from + * the terminal and remains valid until the next mutating terminal call + * (e.g. ghostty_terminal_vt_write() or ghostty_terminal_reset()). + * + * @ingroup kitty_graphics + */ +typedef struct GhosttyKittyGraphicsImpl* GhosttyKittyGraphics; + +/** + * Opaque handle to a Kitty graphics image. + * + * Obtained via ghostty_kitty_graphics_image() with an image ID. The + * pointer is borrowed from the storage and remains valid until the next + * mutating terminal call. + * + * @ingroup kitty_graphics + */ +typedef const struct GhosttyKittyGraphicsImageImpl* GhosttyKittyGraphicsImage; + +/** + * Opaque handle to a Kitty graphics placement iterator. + * + * @ingroup kitty_graphics + */ +typedef struct GhosttyKittyGraphicsPlacementIteratorImpl* GhosttyKittyGraphicsPlacementIterator; + +/** + * Opaque handle to a render state instance. + * + * @ingroup render + */ +typedef struct GhosttyRenderStateImpl* GhosttyRenderState; + +/** + * Opaque handle to a render-state row iterator. + * + * @ingroup render + */ +typedef struct GhosttyRenderStateRowIteratorImpl* GhosttyRenderStateRowIterator; + +/** + * Opaque handle to render-state row cells. + * + * @ingroup render + */ +typedef struct GhosttyRenderStateRowCellsImpl* GhosttyRenderStateRowCells; + +/** + * Opaque handle to an SGR parser instance. + * + * This handle represents an SGR (Select Graphic Rendition) parser that can + * be used to parse SGR sequences and extract individual text attributes. + * + * @ingroup sgr + */ +typedef struct GhosttySgrParserImpl* GhosttySgrParser; + +/** + * Opaque handle to a formatter instance. + * + * @ingroup formatter + */ +typedef struct GhosttyFormatterImpl* GhosttyFormatter; + +/** + * Opaque handle to an OSC parser instance. + * + * This handle represents an OSC (Operating System Command) parser that can + * be used to parse the contents of OSC sequences. + * + * @ingroup osc + */ +typedef struct GhosttyOscParserImpl* GhosttyOscParser; + +/** + * Opaque handle to a single OSC command. + * + * This handle represents a parsed OSC (Operating System Command) command. + * The command can be queried for its type and associated data. + * + * @ingroup osc + */ +typedef struct GhosttyOscCommandImpl* GhosttyOscCommand; + +/* ---- Common value types ---- */ + +/** + * Terminal content output format. + * + * @ingroup formatter + */ +typedef enum GHOSTTY_ENUM_TYPED { + /** Plain text (no escape sequences). */ + GHOSTTY_FORMATTER_FORMAT_PLAIN, + + /** VT sequences preserving colors, styles, URLs, etc. */ + GHOSTTY_FORMATTER_FORMAT_VT, + + /** HTML with inline styles. */ + GHOSTTY_FORMATTER_FORMAT_HTML, + GHOSTTY_FORMATTER_FORMAT_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +} GhosttyFormatterFormat; + +/** + * A borrowed byte string (pointer + length). + * + * The memory is not owned by this struct. The pointer is only valid + * for the lifetime documented by the API that produces or consumes it. + */ +typedef struct { + /** Pointer to the string bytes. */ + const uint8_t* ptr; + + /** Length of the string in bytes. */ + size_t len; +} GhosttyString; + +/** + * A caller-provided byte buffer. + * + * APIs that write to this type use `len` for the number of bytes written on + * GHOSTTY_SUCCESS and the required byte capacity on GHOSTTY_OUT_OF_SPACE. + */ +typedef struct { + /** Destination buffer for bytes. May be NULL when cap is 0 to query required size. */ + uint8_t* ptr; + + /** Capacity of ptr in bytes. */ + size_t cap; + + /** Bytes written on success, or required byte capacity on GHOSTTY_OUT_OF_SPACE. */ + size_t len; +} GhosttyBuffer; + +/** + * A surface-space position in pixels. + * + * This is not a terminal grid coordinate. It represents an x/y position in the + * rendered surface coordinate space, with (0, 0) at the top-left of the + * surface. + */ +typedef struct { + /** X position in surface pixels. */ + double x; + + /** Y position in surface pixels. */ + double y; +} GhosttySurfacePosition; + +/** + * A borrowed list of Unicode scalar values. + * + * Values are encoded as uint32_t scalar values. The memory is not owned by this + * struct. The pointer is only valid for the lifetime documented by the API that + * consumes or produces it. + * + * APIs may document special handling for NULL + len 0, such as “use defaults”. + */ +typedef struct { + /** Pointer to Unicode scalar values. */ + const uint32_t* ptr; + + /** Number of entries in ptr. */ + size_t len; +} GhosttyCodepoints; + +/** + * Initialize a sized struct to zero and set its size field. + * + * Sized structs use a `size` field as the first member for ABI + * compatibility. This macro zero-initializes the struct and sets the + * size field to `sizeof(type)`, which allows the library to detect + * which version of the struct the caller was compiled against. + * + * @param type The struct type to initialize + * @return A zero-initialized struct with the size field set + * + * Example: + * @code + * GhosttyFormatterTerminalOptions opts = GHOSTTY_INIT_SIZED(GhosttyFormatterTerminalOptions); + * opts.emit = GHOSTTY_FORMATTER_FORMAT_PLAIN; + * opts.trim = true; + * @endcode + */ +#define GHOSTTY_INIT_SIZED(type) \ + ((type){ .size = sizeof(type) }) + +/** + * Return a pointer to a null-terminated JSON string describing the + * layout of every C API struct for the current target. + * + * This is primarily useful for language bindings that can't easily + * set C struct fields and need to do so via byte offsets. For example, + * WebAssembly modules can't share struct definitions with the host. + * + * Example (abbreviated): + * @code{.json} + * { + * "GhosttyMouseEncoderSize": { + * "size": 40, + * "align": 8, + * "fields": { + * "size": { "offset": 0, "size": 8, "type": "u64" }, + * "screen_width": { "offset": 8, "size": 4, "type": "u32" }, + * "screen_height": { "offset": 12, "size": 4, "type": "u32" }, + * "cell_width": { "offset": 16, "size": 4, "type": "u32" }, + * "cell_height": { "offset": 20, "size": 4, "type": "u32" }, + * "padding_top": { "offset": 24, "size": 4, "type": "u32" }, + * "padding_bottom": { "offset": 28, "size": 4, "type": "u32" }, + * "padding_right": { "offset": 32, "size": 4, "type": "u32" }, + * "padding_left": { "offset": 36, "size": 4, "type": "u32" } + * } + * } + * } + * @endcode + * + * The returned pointer is valid for the lifetime of the process. + * + * @return Pointer to the null-terminated JSON string. + */ +GHOSTTY_API const char *ghostty_type_json(void); + +#endif /* GHOSTTY_VT_TYPES_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/unicode.h b/packages/terminal/vendor/include/ghostty/vt/unicode.h new file mode 100644 index 0000000000000000000000000000000000000000..e4d62c8181df39b09e59d759eb051802f7773d12 --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/unicode.h @@ -0,0 +1,154 @@ +/** + * @file unicode.h + * + * Unicode utilities - codepoint properties matching the terminal's + * text layout semantics. + */ + +#ifndef GHOSTTY_VT_UNICODE_H +#define GHOSTTY_VT_UNICODE_H + +/** @defgroup unicode Unicode Utilities + * + * Unicode codepoint properties matching the terminal's text layout + * semantics. + * + * ## Basic Usage + * + * Use ghostty_unicode_codepoint_width() to determine how many terminal + * grid cells a codepoint occupies, using the exact same width table the + * terminal itself uses when laying out printed text. Use + * ghostty_unicode_grapheme_width() to segment and measure full grapheme + * clusters with the same rules the terminal uses when mode 2027 is + * enabled. These functions are useful for predicting column layout of + * text that has not yet been written to the terminal, such as IME + * preedit (composition) overlays. + * + * @{ + */ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Returns the terminal display width of a Unicode codepoint in + * terminal grid cells: 0, 1, or 2. + * + * This is the same width table the terminal itself uses when laying + * out printed text, so callers can predict column layout (e.g. IME + * preedit overlays) that exactly matches what the terminal will do + * when the text is actually written to it. + * + * Semantics: + * - Returns 0 for zero-width codepoints: C0/C1 control characters, + * nonspacing and enclosing combining marks, default-ignorable + * codepoints (ZWJ, ZWNJ, variation selectors, etc.), and + * surrogate codepoints. + * - Returns 2 for wide codepoints: East Asian Wide/Fullwidth + * (including emoji with default emoji presentation) and regional + * indicators. Width is clamped to 2 (e.g. the three-em dash). + * - Returns 1 for everything else, including invalid codepoints + * beyond U+10FFFF (this function is total; it never fails). + * + * This operates on a single codepoint only and therefore cannot account + * for grapheme-cluster-level width rules (VS16 emoji presentation, + * combining sequences, etc.). For cluster-accurate widths, use + * ghostty_unicode_grapheme_width(). Summing per-codepoint widths is only + * correct when mode 2027 (grapheme clustering) is disabled. + * + * This function is pure, allocates nothing, and is thread-safe. + * + * @param cp The Unicode codepoint to measure + * @return Display width in cells: 0, 1, or 2 + */ +GHOSTTY_API uint8_t ghostty_unicode_codepoint_width(uint32_t cp); + +/** + * Measures the terminal display width of the first grapheme cluster in a + * sequence of Unicode codepoints. + * + * This uses the exact same grapheme segmentation and cluster width rules + * the terminal itself uses when printing text with grapheme clustering + * enabled (mode 2027), so callers can predict column layout (e.g. IME + * preedit overlays) that exactly matches what the terminal will do when + * the text is actually written to it. Unlike + * ghostty_unicode_codepoint_width(), this accounts for cluster-level + * rules: emoji variation selectors, ZWJ sequences, combining marks, and + * skin tone modifiers. + * + * Reads codepoints from cps until the terminal would consider the + * grapheme cluster complete, stores the cluster's total width in cells + * (0, 1, or 2) into width (which may be NULL if only segmentation is + * desired), and returns the number of codepoints consumed. Returns 0 if + * and only if len is 0; otherwise consumes at least one codepoint. Measure + * a whole string by calling in a loop: + * + * @code + * size_t total = 0; + * for (size_t i = 0; i < len;) { + * uint8_t width; + * i += ghostty_unicode_grapheme_width(cps + i, len - i, &width); + * total += width; + * } + * @endcode + * + * This is not a streaming API. The provided sequence must contain a + * complete first grapheme cluster, or the logical end of the string. If + * input arrives in chunks, keep buffering while this function consumes all + * available codepoints (return value == len) and the stream may still + * continue; a later codepoint could still extend the cluster and change + * its width. + * + * Width semantics, matching the terminal with mode 2027 enabled: + * - The cluster starts at the width of its first codepoint, as returned by + * ghostty_unicode_codepoint_width(). + * - VS16 (U+FE0F) forces the cluster wide (2) and VS15 (U+FE0E) forces it + * narrow (1), but only when the immediately preceding codepoint in the + * cluster is a valid emoji variation sequence base (per Unicode + * emoji-variation-sequences.txt). Invalid variation selectors are + * ignored entirely. + * - Any other continuation codepoint that contributes to grapheme width + * forces the cluster wide (2). Note this means cluster width is NOT the + * maximum of per-codepoint widths: some continuation marks have narrow + * codepoint width yet still widen the cluster. + * + * Mode dependence: this models mode 2027 (grapheme clustering) enabled, + * which is Ghostty's recommended configuration. When mode 2027 is + * disabled, clusters never combine and variation selectors never change + * width; predict layout in that case by summing + * ghostty_unicode_codepoint_width() over each codepoint instead. + * + * Edge cases: + * - Codepoints beyond U+10FFFF consume one codepoint, have width 1, and + * are always cluster boundaries. This function is total; it never fails. + * - Control characters (C0/C1, CR, LF) are never printed through the + * terminal's text path; passing them here returns an unspecified (but + * stable and bounded) result. + * - A cluster whose first codepoint is zero-width (e.g. a lone combining + * mark) is malformed at a cell start; the terminal may attach it to + * earlier screen content. This function reports the fold result for the + * sequence in isolation (typically 0). + * + * This function is pure, allocates nothing, and is thread-safe. + * + * @param cps Pointer to codepoints (may be NULL only when len is 0) + * @param len Number of codepoints available + * @param width Out: cluster display width in cells (0-2); may be NULL + * @return Number of codepoints in the first grapheme cluster + */ +GHOSTTY_API size_t ghostty_unicode_grapheme_width(const uint32_t *cps, + size_t len, + uint8_t *width); + +#ifdef __cplusplus +} +#endif + +/** @} */ + +#endif /* GHOSTTY_VT_UNICODE_H */ diff --git a/packages/terminal/vendor/include/ghostty/vt/wasm.h b/packages/terminal/vendor/include/ghostty/vt/wasm.h new file mode 100644 index 0000000000000000000000000000000000000000..e2b63e2c6019af8bf6d026a95e32cdac7092cce1 --- /dev/null +++ b/packages/terminal/vendor/include/ghostty/vt/wasm.h @@ -0,0 +1,160 @@ +/** + * @file wasm.h + * + * WebAssembly utility functions for libghostty-vt. + */ + +#ifndef GHOSTTY_VT_WASM_H +#define GHOSTTY_VT_WASM_H + +#ifdef __wasm__ + +#include +#include +#include + +/** @defgroup wasm WebAssembly Utilities + * + * Convenience functions for allocating various types in WebAssembly builds. + * **These are only available the libghostty-vt wasm module.** + * + * Ghostty relies on pointers to various types for ABI compatibility, and + * creating those pointers in Wasm can be tedious. These functions provide + * a purely additive set of utilities that simplify memory management in + * Wasm environments without changing the core C library API. + * + * @note These functions always use the default allocator. If you need + * custom allocation strategies, you should allocate types manually using + * your custom allocator. This is a very rare use case in the WebAssembly + * world so these are optimized for simplicity. + * + * ## Example Usage + * + * Here's a simple example of using the Wasm utilities with the key encoder: + * + * @code + * const { exports } = wasmInstance; + * const view = new DataView(wasmMemory.buffer); + * + * // Create key encoder + * const encoderPtr = exports.ghostty_wasm_alloc_opaque(); + * exports.ghostty_key_encoder_new(null, encoderPtr); + * const encoder = view.getUint32(encoder, true); + * + * // Configure encoder with Kitty protocol flags + * const flagsPtr = exports.ghostty_wasm_alloc_u8(); + * view.setUint8(flagsPtr, 0x1F); + * exports.ghostty_key_encoder_setopt(encoder, 5, flagsPtr); + * + * // Allocate output buffer and size pointer + * const bufferSize = 32; + * const bufPtr = exports.ghostty_wasm_alloc_u8_array(bufferSize); + * const writtenPtr = exports.ghostty_wasm_alloc_usize(); + * + * // Encode the key event + * exports.ghostty_key_encoder_encode( + * encoder, eventPtr, bufPtr, bufferSize, writtenPtr + * ); + * + * // Read encoded output + * const bytesWritten = view.getUint32(writtenPtr, true); + * const encoded = new Uint8Array(wasmMemory.buffer, bufPtr, bytesWritten); + * @endcode + * + * @remark The code above is pretty ugly! This is the lowest level interface + * to the libghostty-vt Wasm module. In practice, this should be wrapped + * in a higher-level API that abstracts away all this. + * + * @{ + */ + +/** + * Allocate an opaque pointer. This can be used for any opaque pointer + * types such as GhosttyKeyEncoder, GhosttyKeyEvent, etc. + * + * @return Pointer to allocated opaque pointer, or NULL if allocation failed + * @ingroup wasm + */ +GHOSTTY_API void** ghostty_wasm_alloc_opaque(void); + +/** + * Free an opaque pointer allocated by ghostty_wasm_alloc_opaque(). + * + * @param ptr Pointer to free, or NULL (NULL is safely ignored) + * @ingroup wasm + */ +GHOSTTY_API void ghostty_wasm_free_opaque(void **ptr); + +/** + * Allocate an array of uint8_t values. + * + * @param len Number of uint8_t elements to allocate + * @return Pointer to allocated array, or NULL if allocation failed + * @ingroup wasm + */ +GHOSTTY_API uint8_t* ghostty_wasm_alloc_u8_array(size_t len); + +/** + * Free an array allocated by ghostty_wasm_alloc_u8_array(). + * + * @param ptr Pointer to the array to free, or NULL (NULL is safely ignored) + * @param len Length of the array (must match the length passed to alloc) + * @ingroup wasm + */ +GHOSTTY_API void ghostty_wasm_free_u8_array(uint8_t *ptr, size_t len); + +/** + * Allocate an array of uint16_t values. + * + * @param len Number of uint16_t elements to allocate + * @return Pointer to allocated array, or NULL if allocation failed + * @ingroup wasm + */ +GHOSTTY_API uint16_t* ghostty_wasm_alloc_u16_array(size_t len); + +/** + * Free an array allocated by ghostty_wasm_alloc_u16_array(). + * + * @param ptr Pointer to the array to free, or NULL (NULL is safely ignored) + * @param len Length of the array (must match the length passed to alloc) + * @ingroup wasm + */ +GHOSTTY_API void ghostty_wasm_free_u16_array(uint16_t *ptr, size_t len); + +/** + * Allocate a single uint8_t value. + * + * @return Pointer to allocated uint8_t, or NULL if allocation failed + * @ingroup wasm + */ +GHOSTTY_API uint8_t* ghostty_wasm_alloc_u8(void); + +/** + * Free a uint8_t allocated by ghostty_wasm_alloc_u8(). + * + * @param ptr Pointer to free, or NULL (NULL is safely ignored) + * @ingroup wasm + */ +GHOSTTY_API void ghostty_wasm_free_u8(uint8_t *ptr); + +/** + * Allocate a single size_t value. + * + * @return Pointer to allocated size_t, or NULL if allocation failed + * @ingroup wasm + */ +GHOSTTY_API size_t* ghostty_wasm_alloc_usize(void); + +/** + * Free a size_t allocated by ghostty_wasm_alloc_usize(). + * + * @param ptr Pointer to free, or NULL (NULL is safely ignored) + * @ingroup wasm + */ +GHOSTTY_API void ghostty_wasm_free_usize(size_t *ptr); + +/** @} */ + +#endif /* __wasm__ */ + +#endif /* GHOSTTY_VT_WASM_H */ diff --git a/packages/terminal/vendor/include/module.modulemap b/packages/terminal/vendor/include/module.modulemap new file mode 100644 index 0000000000000000000000000000000000000000..8961f5c04ba5540a4bdf1502daac25de641ef078 --- /dev/null +++ b/packages/terminal/vendor/include/module.modulemap @@ -0,0 +1,7 @@ +// This makes Ghostty available to the XCode build for the macOS app. +// We append "Kit" to it not to be cute, but because targets have to have +// unique names and we use Ghostty for other things. +module GhosttyKit { + umbrella header "ghostty.h" + export * +} diff --git a/packages/terminal/vendor/patches/wasm-ascii-row.patch b/packages/terminal/vendor/patches/wasm-ascii-row.patch new file mode 100644 index 0000000000000000000000000000000000000000..cb38eacbe3f4c0eaf83855d0f589b73c4227ad5c --- /dev/null +++ b/packages/terminal/vendor/patches/wasm-ascii-row.patch @@ -0,0 +1,145 @@ +--- a/src/terminal/c/render.zig ++++ b/src/terminal/c/render.zig +@@ -59,6 +59,12 @@ + + /// C: GhosttyRenderStateRowCells + pub const RowCells = ?*RowCellsWrapper; ++ ++/// C: GhosttyRenderStateAsciiCell ++pub const AsciiCell = extern struct { ++ codepoint: u32, ++ foreground: u32, ++}; + + /// C: GhosttyRenderStateDirty + pub const Dirty = renderpkg.RenderState.Dirty; +@@ -475,6 +481,67 @@ + alloc.destroy(cells); + } + ++/// Export one row when every retained cell is narrow ASCII with only an ++/// optional foreground color. Unsupported rows use the canonical cell API. ++pub fn row_cells_ascii( ++ cells_: RowCells, ++ out_: ?[*]AsciiCell, ++ capacity: usize, ++ out_len_: ?*usize, ++) callconv(lib.calling_conv) Result { ++ const cells = cells_ orelse return .invalid_value; ++ const out = out_ orelse return .invalid_value; ++ const out_len = out_len_ orelse return .invalid_value; ++ out_len.* = 0; ++ ++ var end = cells.raws.len; ++ while (end > 0 and @as(u64, @bitCast(cells.raws[end - 1])) == 0) end -= 1; ++ if (capacity < end) { ++ out_len.* = end; ++ return .out_of_space; ++ } ++ ++ for (cells.raws[0..end], cells.styles[0..end], 0..) |cell, style_value, index| { ++ if (@as(u64, @bitCast(cell)) == 0) { ++ out[index] = .{ .codepoint = 0, .foreground = std.math.maxInt(u32) }; ++ continue; ++ } ++ if (cell.content_tag != .codepoint or ++ cell.wide != .narrow or ++ cell.protected or ++ cell.semantic_content != .output or ++ cell.hyperlink) ++ { ++ return .no_value; ++ } ++ ++ const codepoint = cell.codepoint(); ++ if (codepoint < 0x20 or codepoint > 0x7E) return .no_value; ++ const s: Style = if (cell.hasStyling()) style_value else .{}; ++ if (!s.bg_color.eql(.none) or ++ !s.underline_color.eql(.none) or ++ s.flags != @TypeOf(s.flags){}) ++ { ++ return .no_value; ++ } ++ const foreground: u32 = switch (s.fg_color) { ++ .none => std.math.maxInt(u32), ++ .palette => |palette_index| rgb: { ++ const color = cells.palette[palette_index]; ++ break :rgb (@as(u32, color.r) << 16) | ++ (@as(u32, color.g) << 8) | ++ color.b; ++ }, ++ .rgb => |color| (@as(u32, color.r) << 16) | ++ (@as(u32, color.g) << 8) | ++ color.b, ++ }; ++ out[index] = .{ .codepoint = codepoint, .foreground = foreground }; ++ } ++ out_len.* = end; ++ return .success; ++} ++ + /// C: GhosttyRenderStateRowCellsData + pub const RowCellsData = enum(c_int) { + invalid = 0, +--- a/src/terminal/c/types.zig ++++ b/src/terminal/c/types.zig +@@ -60,6 +60,7 @@ + .{ "GhosttyMousePosition", StructInfo.init(mouse_event.Position) }, + .{ "GhosttyPoint", StructInfo.init(point.Point.C) }, + .{ "GhosttyPointCoordinate", StructInfo.init(point.Coordinate) }, ++ .{ "GhosttyRenderStateAsciiCell", StructInfo.init(render.AsciiCell) }, + .{ "GhosttyRenderStateColors", StructInfo.init(render.Colors) }, + .{ "GhosttySelectionGestureBehaviors", StructInfo.init(selection_gesture.Behaviors) }, + .{ "GhosttySelectionGestureGeometry", StructInfo.init(selection_gesture.Geometry) }, +--- a/src/terminal/c/main.zig ++++ b/src/terminal/c/main.zig +@@ -100,6 +100,7 @@ + pub const render_state_row_cells_select = render.row_cells_select; + pub const render_state_row_cells_get = render.row_cells_get; + pub const render_state_row_cells_get_multi = render.row_cells_get_multi; ++pub const render_state_row_cells_ascii = render.row_cells_ascii; + pub const render_state_row_cells_free = render.row_cells_free; + + pub const sgr_new = sgr.new; +--- a/src/lib_vt.zig ++++ b/src/lib_vt.zig +@@ -258,6 +258,7 @@ + @export(&c.render_state_row_cells_select, .{ .name = "ghostty_render_state_row_cells_select" }); + @export(&c.render_state_row_cells_get, .{ .name = "ghostty_render_state_row_cells_get" }); + @export(&c.render_state_row_cells_get_multi, .{ .name = "ghostty_render_state_row_cells_get_multi" }); ++ @export(&c.render_state_row_cells_ascii, .{ .name = "ghostty_render_state_row_cells_ascii" }); + @export(&c.render_state_row_cells_free, .{ .name = "ghostty_render_state_row_cells_free" }); + @export(&c.render_state_free, .{ .name = "ghostty_render_state_free" }); + @export(&c.terminal_new, .{ .name = "ghostty_terminal_new" }); +--- a/include/ghostty/vt/render.h ++++ b/include/ghostty/vt/render.h +@@ -272,6 +272,12 @@ + /** End column of the row-local selection range, inclusive. */ + uint16_t end_x; + } GhosttyRenderStateRowSelection; ++ ++/** Narrow ASCII cell returned by the optional whole-row render fast path. */ ++typedef struct { ++ uint32_t codepoint; ++ uint32_t foreground; ++} GhosttyRenderStateAsciiCell; + + /** + * Render-state color information. +@@ -776,6 +782,16 @@ + const GhosttyRenderStateRowCellsData* keys, + void** values, + size_t* out_written); ++ ++/** ++ * Export the row when every retained cell is narrow printable ASCII with only ++ * an optional foreground color. GHOSTTY_NO_VALUE selects the canonical API. ++ */ ++GHOSTTY_API GhosttyResult ghostty_render_state_row_cells_ascii( ++ GhosttyRenderStateRowCells cells, ++ GhosttyRenderStateAsciiCell* out, ++ size_t capacity, ++ size_t* out_len); + + /** + * Free a row cells instance. diff --git a/packages/terminal/vendor/patches/wasm-batched-vt.patch b/packages/terminal/vendor/patches/wasm-batched-vt.patch new file mode 100644 index 0000000000000000000000000000000000000000..9566ec264395eef725d42037ef49ebc54a8c8d20 --- /dev/null +++ b/packages/terminal/vendor/patches/wasm-batched-vt.patch @@ -0,0 +1,12 @@ +--- a/src/terminal/stream.zig ++++ b/src/terminal/stream.zig +@@ -514,8 +514,7 @@ + pub inline fn nextSlice(self: *Self, input: []const u8) void { +- // Disable SIMD optimizations if build requests it or if our +- // manual debug mode is on. +- if (comptime debug or !build_options.simd) { ++ // Manual debug mode preserves one action per codepoint. ++ if (comptime debug) { + for (input) |c| self.next(c); + return; + } diff --git a/packages/terminal/vendor/verify.mjs b/packages/terminal/vendor/verify.mjs new file mode 100644 index 0000000000000000000000000000000000000000..51748d038ee9fc5f0adfa59df64a4bf4ca20cfd4 --- /dev/null +++ b/packages/terminal/vendor/verify.mjs @@ -0,0 +1,199 @@ +import { execFileSync } from "node:child_process"; +import { createHash } from "node:crypto"; +import { readdir, readFile } from "node:fs/promises"; +import { resolve } from "node:path"; +import { fileURLToPath } from "node:url"; + +const vendorDir = new URL("./", import.meta.url); +const pinnedCommit = (await readFile(new URL("COMMIT", vendorDir), "utf8")).trim(); +const wasm = await readFile(new URL("ghostty-vt.wasm", vendorDir)); +const expectedHash = (await readFile(new URL("SHA256", vendorDir), "utf8")).trim(); +const actualHash = createHash("sha256").update(wasm).digest("hex"); +if (actualHash !== expectedHash) { + throw new Error(`ghostty-vt.wasm SHA-256 mismatch: expected ${expectedHash}, got ${actualHash}`); +} + +const instance = await WebAssembly.instantiate(wasm, { env: { log() {} } }); +const exports = instance.instance.exports; +if (!(exports.memory instanceof WebAssembly.Memory)) throw new Error("wasm memory export missing"); +if (!(exports.__indirect_function_table instanceof WebAssembly.Table)) { + throw new Error("wasm function table export missing"); +} + +const runtimeSources = await Promise.all( + ["module.ts", "terminal.ts"].map((file) => + readFile(new URL(`../src/ghostty/${file}`, vendorDir), "utf8"), + ), +); +const requiredExports = new Set(["ghostty_type_json"]); +const requiredLayouts = new Map(); +const requireLayout = (name, field) => { + let fields = requiredLayouts.get(name); + if (fields === undefined) { + fields = new Set(); + requiredLayouts.set(name, fields); + } + if (field !== undefined) fields.add(field); +}; +for (const source of runtimeSources) { + for (const match of source.matchAll(/\.(?:fn|create)\("([^"]+)"\)/g)) { + requiredExports.add(match[1]); + } + for (const match of source.matchAll(/\.allocStruct\("([^"]+)"\)/g)) { + requireLayout(match[1]); + } + for (const match of source.matchAll(/\.layout\["([^"]+)"\]/g)) { + requireLayout(match[1]); + } + for (const match of source.matchAll(/\.field\("([^"]+)",\s*"([^"]+)"\)/g)) { + requireLayout(match[1], match[2]); + } +} +for (const [name, fields] of Object.entries({ + GhosttyClipboardWrite: ["location", "contents", "contents_len"], + GhosttyFormatterScreenExtra: ["size"], + GhosttyFormatterTerminalExtra: ["size", "screen"], + GhosttyMouseEncoderSize: [ + "screen_width", + "screen_height", + "cell_width", + "cell_height", + "padding_top", + "padding_bottom", + "padding_left", + "padding_right", + ], + GhosttyPoint: ["tag", "value"], + GhosttyTerminalOptions: ["cols", "rows", "max_scrollback"], + GhosttyTerminalScrollbar: ["total", "offset", "len"], +})) { + for (const field of fields) requireLayout(name, field); +} +for (const name of requiredExports) { + if (typeof exports[name] !== "function") throw new Error(`required wasm export missing: ${name}`); +} +const jsonPtr = exports.ghostty_type_json(); +const bytes = new Uint8Array(exports.memory.buffer, jsonPtr); +const end = bytes.indexOf(0); +if (end < 0) throw new Error("type metadata is not null-terminated"); +const layout = JSON.parse(new TextDecoder().decode(bytes.subarray(0, end))); +for (const [name, requiredFields] of requiredLayouts) { + const info = layout[name]; + if ( + !info || + !Number.isInteger(info.size) || + info.size <= 0 || + !Number.isInteger(info.align) || + info.align <= 0 + ) { + throw new Error(`required type layout missing or invalid: ${name}`); + } + for (const field of requiredFields) { + const value = info.fields?.[field]; + if ( + !value || + !Number.isInteger(value.offset) || + value.offset < 0 || + !Number.isInteger(value.size) || + value.size <= 0 || + value.offset + value.size > info.size + ) { + throw new Error(`required field layout missing or invalid: ${name}.${field}`); + } + } +} +const ascii = layout.GhosttyRenderStateAsciiCell; +if ( + ascii?.size !== 8 || + ascii.align !== 4 || + ascii.fields?.codepoint?.type !== "u32" || + ascii.fields.codepoint.offset !== 0 || + ascii.fields.codepoint.size !== 4 || + ascii.fields?.foreground?.type !== "u32" || + ascii.fields.foreground.offset !== 4 || + ascii.fields.foreground.size !== 4 +) { + throw new Error("invalid GhosttyRenderStateAsciiCell layout"); +} + +try { + execFileSync( + process.execPath, + [fileURLToPath(new URL("gen-constants.mjs", vendorDir)), "--check"], + { stdio: "pipe" }, + ); +} catch (error) { + const detail = error instanceof Error && "stderr" in error ? String(error.stderr).trim() : ""; + throw new Error(`generated constants verification failed${detail === "" ? "" : `: ${detail}`}`, { + cause: error, + }); +} + +const sourceArg = process.argv[2]; +if (sourceArg !== undefined) { + const source = resolve(sourceArg); + let sourceCommit; + try { + sourceCommit = execFileSync("git", ["-C", source, "rev-parse", "--verify", "HEAD^{commit}"], { + encoding: "utf8", + stdio: ["ignore", "pipe", "pipe"], + }).trim(); + } catch (error) { + const detail = error instanceof Error && "stderr" in error ? String(error.stderr).trim() : ""; + throw new Error(`unable to read source checkout commit${detail === "" ? "" : `: ${detail}`}`, { + cause: error, + }); + } + if (sourceCommit !== pinnedCommit) { + throw new Error( + `source checkout commit mismatch: expected ${pinnedCommit}, got ${sourceCommit}`, + ); + } + const patches = (await readdir(new URL("patches/", vendorDir))) + .filter((name) => name.endsWith(".patch")) + .sort(); + for (const patch of patches) { + try { + execFileSync( + "git", + [ + "-C", + source, + "apply", + "--reverse", + "--check", + fileURLToPath(new URL(`patches/${patch}`, vendorDir)), + ], + { stdio: ["ignore", "pipe", "pipe"] }, + ); + } catch (error) { + const detail = error instanceof Error && "stderr" in error ? String(error.stderr).trim() : ""; + throw new Error( + `source checkout does not contain exact patch ${patch}${detail === "" ? "" : `: ${detail}`}`, + { cause: error }, + ); + } + } + const pageList = await readFile(resolve(source, "src/terminal/PageList.zig"), "utf8"); + if (!/WasmAllocator reuses freed slots[\s\S]{0,500}@memset\(page_buf, 0\)/.test(pageList)) { + throw new Error("upstream wasm page-zeroing guard missing"); + } + const types = await readFile(resolve(source, "src/terminal/c/types.zig"), "utf8"); + if (!types.includes('"GhosttyRenderStateAsciiCell", StructInfo.init(render.AsciiCell)')) { + throw new Error("patched ASCII cell type metadata missing"); + } + const stream = await readFile(resolve(source, "src/terminal/stream.zig"), "utf8"); + if ( + !stream.includes("if (comptime debug) {") || + stream.includes("if (comptime debug or !build_options.simd) {") + ) { + throw new Error("patched wasm batched VT source missing"); + } + const sourceRenderHeader = await readFile(resolve(source, "include/ghostty/vt/render.h")); + const vendoredRenderHeader = await readFile(new URL("include/ghostty/vt/render.h", vendorDir)); + if (!sourceRenderHeader.equals(vendoredRenderHeader)) { + throw new Error("patched source render header does not match vendored render header"); + } +} + +console.log(`ghostty vendor verified: commit ${pinnedCommit}, sha256 ${actualHash}`); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b6cc9b75ca88de44fe8c75613a870224069d46d0..f466898da28f87d7d201187eef466181f821415d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -760,6 +760,9 @@ importers: '@clerk/react': specifier: 6.16.1 version: 6.16.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@clo/terminal': + specifier: workspace:* + version: link:../../packages/terminal '@daypicker/react': specifier: ^10.0.1 version: 10.0.1(@types/react@19.3.0)(react@19.2.6) @@ -1399,7 +1402,7 @@ importers: version: 1.15.13 '@opencode/client': specifier: 2.0.28 - version: 2.0.28(effect@4.0.4) + version: 2.0.28(effect@4.0.4)(solid-js@1.9.17) '@opencode/protocol': specifier: 2.0.28 version: 2.0.28 @@ -1832,6 +1835,30 @@ importers: specifier: 1.0.0 version: 1.0.0(@types/node@24.12.4)(@vitest/ui@5.0.1(vitest@5.0.1))(bufferutil@4.1.0)(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0) + packages/terminal: + devDependencies: + '@types/react': + specifier: ~19.3.0 + version: 19.3.0 + '@types/react-dom': + specifier: ~19.2.3 + version: 19.2.3(@types/react@19.3.0) + react: + specifier: 19.2.6 + version: 19.2.6 + react-dom: + specifier: 19.2.6 + version: 19.2.6(react@19.2.6) + solid-js: + specifier: ^1.9.14 + version: 1.9.17 + vite: + specifier: npm:@voidzero-dev/vite-plus-core@1.0.0 + version: '@voidzero-dev/vite-plus-core@1.0.0(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0)' + vite-plus: + specifier: 1.0.0 + version: 1.0.0(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0) + scripts: dependencies: '@effect/platform-node': @@ -11203,14 +11230,14 @@ packages: resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} engines: {node: '>=10'} - seroval-plugins@1.5.4: - resolution: {integrity: sha512-S0xQPhUTefAhNvNWFg0c1J8qJArHt5KdtJ/cFAofo06KD1MVSeFWyl4iiu+ApDIuw0WhjpOfCdgConOfAnLgkw==} + seroval-plugins@1.6.9: + resolution: {integrity: sha512-kiDK/Tb8IWZ61WEU8pA2PDmAuw37gKph9Y77OZlD56mg0Y2g0Bg7gZ1HeHhs5d40w+nRoUq/wj08V26ilbez9g==} engines: {node: '>=10'} peerDependencies: seroval: ^1.0 - seroval@1.5.4: - resolution: {integrity: sha512-46uFvgrXTVxZcUorgSSRZ4y+ieqLLQRMlG4bnCZKW3qI6BZm7Rg4ntMW4p1mILEEBZWrFlcpp0AyIIlM6jD9iw==} + seroval@1.6.9: + resolution: {integrity: sha512-UeEzHwAK+yl0YLbsvROV1t5yMYEwZZ0CfKYxDvUgS2fO9Vxdf8djqVIB+OuVpuawRNPqw68LE1Du/GMsW2ZPqA==} engines: {node: '>=10'} serve-static@1.16.3: @@ -11333,6 +11360,9 @@ packages: resolution: {integrity: sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + solid-js@1.9.17: + resolution: {integrity: sha512-4GAmLOWPfNV8H9Jfn2LSFTpNEG6jiOKPiwd5lnLGQtehHaX6l3TOLzJqQ7mqwB/3k1Yy3zyumFVopmc/tm34ow==} + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -15369,12 +15399,13 @@ snapshots: dependencies: cross-spawn: 7.0.6 - '@opencode/client@2.0.28(effect@4.0.4)': + '@opencode/client@2.0.28(effect@4.0.4)(solid-js@1.9.17)': dependencies: '@opencode/protocol': 2.0.28 '@opencode/schema': 2.0.28 optionalDependencies: effect: 4.0.4 + solid-js: 1.9.17 '@opencode/protocol@2.0.28': dependencies: @@ -16520,8 +16551,8 @@ snapshots: dependencies: '@tanstack/history': 1.162.0 cookie-es: 3.1.1 - seroval: 1.5.4 - seroval-plugins: 1.5.4(seroval@1.5.4) + seroval: 1.6.9 + seroval-plugins: 1.6.9(seroval@1.6.9) '@tanstack/router-generator@1.167.12': dependencies: @@ -22611,11 +22642,11 @@ snapshots: type-fest: 0.13.1 optional: true - seroval-plugins@1.5.4(seroval@1.5.4): + seroval-plugins@1.6.9(seroval@1.6.9): dependencies: - seroval: 1.5.4 + seroval: 1.6.9 - seroval@1.5.4: {} + seroval@1.6.9: {} serve-static@1.16.3: dependencies: @@ -22788,6 +22819,12 @@ snapshots: smart-buffer: 4.2.0 optional: true + solid-js@1.9.17: + dependencies: + csstype: 3.2.3 + seroval: 1.6.9 + seroval-plugins: 1.6.9(seroval@1.6.9) + source-map-js@1.2.1: {} source-map-support@0.5.21: diff --git a/third-party-licenses.config.json b/third-party-licenses.config.json index f247cf5c17c8d392b119bbb0ea5a8942c46ae4cb..e2fd1d86317c18bd8bbc83e4e7c71273feb8c52a 100644 --- a/third-party-licenses.config.json +++ b/third-party-licenses.config.json @@ -101,9 +101,31 @@ }, { "bundles": ["assets", "web"], - "license": "MIT", - "name": "Symbols Nerd Font Mono", - "noticeFile": "apps/web/src/terminal/ghostty/fonts/LICENSE", + "license": "OFL-1.1", + "name": "Iosevka Fixed Extended (terminal subset)", + "noticeFile": "packages/terminal/fonts/OFL.txt", + "sourceUrl": "https://github.com/be5invis/Iosevka" + }, + { + "bundles": ["assets", "web"], + "license": "MIT AND OFL-1.1 AND CC-BY-4.0 AND Apache-2.0", + "name": "Nerd Fonts Symbols (terminal subset)", + "noticeFiles": [ + "packages/terminal/fonts/NOTICES.md", + "packages/terminal/fonts/licenses/Apache-2.0.txt", + "packages/terminal/fonts/licenses/CC-BY-4.0.txt", + "packages/terminal/fonts/licenses/Devicons-MIT.txt", + "packages/terminal/fonts/licenses/Font-Awesome-Extension-MIT.txt", + "packages/terminal/fonts/licenses/Font-Awesome-LICENSE.txt", + "packages/terminal/fonts/licenses/Material-Design-Icons-NOTICE.txt", + "packages/terminal/fonts/licenses/NerdFonts-LICENSE.txt", + "packages/terminal/fonts/licenses/NerdFonts-Symbols-Only-MIT.txt", + "packages/terminal/fonts/licenses/NerdFonts-license-audit.md", + "packages/terminal/fonts/licenses/Octicons-MIT.txt", + "packages/terminal/fonts/licenses/Pomicons-OFL.txt", + "packages/terminal/fonts/licenses/Powerline-Extra-MIT.txt", + "packages/terminal/fonts/licenses/Weather-Icons-OFL.txt" + ], "sourceUrl": "https://github.com/ryanoasis/nerd-fonts" }, { -- 2.54.0

Jv&Umx~C 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 { - it("keeps the tail of the pinned Ghostty key enum in order", () => { - expect(ghosttyKeyForCode("F25")).toBe(ghosttyKeyForCode("F24") + 1); - expect(ghosttyKeyForCode("PrintScreen")).toBe(ghosttyKeyForCode("FnLock") + 1); - expect(ghosttyKeyForCode("Pause")).toBe(ghosttyKeyForCode("ScrollLock") + 1); - expect(ghosttyKeyForCode("Paste")).toBe(ghosttyKeyForCode("Cut") + 1); - }); -}); - -describe("ghosttyConsumedMods", () => { - const shifted = { altKey: false, ctrlKey: false, key: "@", metaKey: false, shiftKey: true }; - - it("only consumes a lone Shift producing a character", () => { - expect(ghosttyConsumedMods(shifted)).toBe(1); - expect(ghosttyConsumedMods({ ...shifted, ctrlKey: true })).toBe(0); - expect(ghosttyConsumedMods({ ...shifted, key: "Tab" })).toBe(0); - // Deliberate: Shift+Space collapses to Space so it still types one. - expect(ghosttyConsumedMods({ ...shifted, key: " " })).toBe(1); - }); -}); - -describe("ghosttyUnshiftedCodepoint", () => { - it("provides the logical base character for Kitty keyboard encoding", () => { - expect(ghosttyUnshiftedCodepoint({ code: "KeyC", key: "c", shiftKey: false })).toBe( - "c".codePointAt(0), - ); - expect(ghosttyUnshiftedCodepoint({ code: "KeyC", key: "C", shiftKey: true })).toBe( - "c".codePointAt(0), - ); - expect(ghosttyUnshiftedCodepoint({ code: "Digit1", key: "!", shiftKey: true })).toBe( - "1".codePointAt(0), - ); - expect(ghosttyUnshiftedCodepoint({ code: "Slash", key: "?", shiftKey: true })).toBe( - "/".codePointAt(0), - ); - expect(ghosttyUnshiftedCodepoint({ code: "Digit1", key: "&", shiftKey: false })).toBe( - "&".codePointAt(0), - ); - expect(ghosttyUnshiftedCodepoint({ code: "Enter", key: "Enter", shiftKey: false })).toBe(0); - }); - - it("reports unknown instead of the shifted character without layout data", () => { - expect(ghosttyUnshiftedCodepoint({ code: "Digit7", key: "/", shiftKey: true })).toBe(0); - expect(ghosttyUnshiftedCodepoint({ code: "KeyD", key: "Д", shiftKey: true })).toBe( - "д".codePointAt(0), - ); - }); - - it("prefers the active browser layout over US physical key positions", () => { - const layoutMap = new Map([ - ["Digit1", "&"], - ["KeyC", "j"], - ]); - expect(ghosttyUnshiftedCodepoint({ code: "Digit1", key: "1", shiftKey: true }, layoutMap)).toBe( - "&".codePointAt(0), - ); - expect(ghosttyUnshiftedCodepoint({ code: "KeyC", key: "J", shiftKey: true }, layoutMap)).toBe( - "j".codePointAt(0), - ); - }); -}); diff --git a/apps/web/src/terminal/ghostty/keyCodes.ts b/apps/web/src/terminal/ghostty/keyCodes.ts deleted file mode 100644 index a643827d6f2ddd660edcc53633ba3901a5f81bc0..0000000000000000000000000000000000000000 --- a/apps/web/src/terminal/ghostty/keyCodes.ts +++ /dev/null @@ -1,267 +0,0 @@ -// This order mirrors GhosttyKey in ghostty/vt/key/event.h. The values are -// intentionally derived from the official W3C-aligned enum instead of -// maintaining a second keyboard protocol. -const ghosttyKeyboardCodes = [ - "Unidentified", - "Backquote", - "Backslash", - "BracketLeft", - "BracketRight", - "Comma", - "Digit0", - "Digit1", - "Digit2", - "Digit3", - "Digit4", - "Digit5", - "Digit6", - "Digit7", - "Digit8", - "Digit9", - "Equal", - "IntlBackslash", - "IntlRo", - "IntlYen", - "KeyA", - "KeyB", - "KeyC", - "KeyD", - "KeyE", - "KeyF", - "KeyG", - "KeyH", - "KeyI", - "KeyJ", - "KeyK", - "KeyL", - "KeyM", - "KeyN", - "KeyO", - "KeyP", - "KeyQ", - "KeyR", - "KeyS", - "KeyT", - "KeyU", - "KeyV", - "KeyW", - "KeyX", - "KeyY", - "KeyZ", - "Minus", - "Period", - "Quote", - "Semicolon", - "Slash", - "AltLeft", - "AltRight", - "Backspace", - "CapsLock", - "ContextMenu", - "ControlLeft", - "ControlRight", - "Enter", - "MetaLeft", - "MetaRight", - "ShiftLeft", - "ShiftRight", - "Space", - "Tab", - "Convert", - "KanaMode", - "NonConvert", - "Delete", - "End", - "Help", - "Home", - "Insert", - "PageDown", - "PageUp", - "ArrowDown", - "ArrowLeft", - "ArrowRight", - "ArrowUp", - "NumLock", - "Numpad0", - "Numpad1", - "Numpad2", - "Numpad3", - "Numpad4", - "Numpad5", - "Numpad6", - "Numpad7", - "Numpad8", - "Numpad9", - "NumpadAdd", - "NumpadBackspace", - "NumpadClear", - "NumpadClearEntry", - "NumpadComma", - "NumpadDecimal", - "NumpadDivide", - "NumpadEnter", - "NumpadEqual", - "NumpadMemoryAdd", - "NumpadMemoryClear", - "NumpadMemoryRecall", - "NumpadMemoryStore", - "NumpadMemorySubtract", - "NumpadMultiply", - "NumpadParenLeft", - "NumpadParenRight", - "NumpadSubtract", - "NumpadSeparator", - "NumpadArrowUp", - "NumpadArrowDown", - "NumpadArrowRight", - "NumpadArrowLeft", - "NumpadBegin", - "NumpadHome", - "NumpadEnd", - "NumpadInsert", - "NumpadDelete", - "NumpadPageUp", - "NumpadPageDown", - "Escape", - "F1", - "F2", - "F3", - "F4", - "F5", - "F6", - "F7", - "F8", - "F9", - "F10", - "F11", - "F12", - "F13", - "F14", - "F15", - "F16", - "F17", - "F18", - "F19", - "F20", - "F21", - "F22", - "F23", - "F24", - "F25", - "Fn", - "FnLock", - "PrintScreen", - "ScrollLock", - "Pause", - "BrowserBack", - "BrowserFavorites", - "BrowserForward", - "BrowserHome", - "BrowserRefresh", - "BrowserSearch", - "BrowserStop", - "Eject", - "LaunchApp1", - "LaunchApp2", - "LaunchMail", - "MediaPlayPause", - "MediaSelect", - "MediaStop", - "MediaTrackNext", - "MediaTrackPrevious", - "Power", - "Sleep", - "AudioVolumeDown", - "AudioVolumeMute", - "AudioVolumeUp", - "WakeUp", - "Copy", - "Cut", - "Paste", -] as const; - -const codeToGhosttyKey = new Map( - ghosttyKeyboardCodes.map((code, index) => [code, index]), -); - -export function ghosttyKeyForCode(code: string): number { - return codeToGhosttyKey.get(code) ?? 0; -} - -export interface GhosttyKeyboardLayoutMap { - get(code: string): string | undefined; -} - -const shiftedToUnshiftedCharacter = new Map([ - ["!", "1"], - ["@", "2"], - ["#", "3"], - ["$", "4"], - ["%", "5"], - ["^", "6"], - ["&", "7"], - ["*", "8"], - ["(", "9"], - [")", "0"], - ["~", "`"], - ["_", "-"], - ["+", "="], - ["{", "["], - ["}", "]"], - ["|", "\\"], - [":", ";"], - ['"', "'"], - ["<", ","], - [">", "."], - ["?", "/"], -]); - -let keyboardLayoutMapPromise: Promise | undefined; - -export function loadGhosttyKeyboardLayoutMap(): Promise { - if (keyboardLayoutMapPromise) return keyboardLayoutMapPromise; - const browserNavigator = globalThis.navigator as - | (Navigator & { - readonly keyboard?: { - getLayoutMap(): Promise; - }; - }) - | undefined; - const keyboard = browserNavigator?.keyboard; - const promise = keyboard?.getLayoutMap().catch(() => undefined) ?? Promise.resolve(undefined); - keyboardLayoutMapPromise = promise; - return promise; -} - -// Browsers do not expose consumed modifiers; treat Shift as consumed for -// unchorded character input. -export function ghosttyConsumedMods( - event: Pick, -): number { - if (!event.shiftKey || event.ctrlKey || event.altKey || event.metaKey) return 0; - return [...event.key].length === 1 ? 1 : 0; -} - -export function ghosttyUnshiftedCodepoint( - event: Pick, - layoutMap?: GhosttyKeyboardLayoutMap, -): number { - if ([...event.key].length !== 1) return 0; - const layoutCharacter = layoutMap?.get(event.code); - if (layoutCharacter && [...layoutCharacter].length === 1) { - return layoutCharacter.codePointAt(0) ?? 0; - } - if (/^[A-Z]$/u.test(event.key)) return event.key.charCodeAt(0) + 32; - if (event.shiftKey) { - const unshiftedCharacter = shiftedToUnshiftedCharacter.get(event.key); - if (unshiftedCharacter) return unshiftedCharacter.codePointAt(0) ?? 0; - const lowercase = event.key.toLowerCase(); - if (lowercase !== event.key && [...lowercase].length === 1) { - return lowercase.codePointAt(0) ?? 0; - } - // Without layout data the unshifted form of a shifted key is unknowable; - // reporting the shifted character as unshifted corrupts Kitty alternate keys. - return 0; - } - return event.key.codePointAt(0) ?? 0; -} diff --git a/apps/web/src/terminal/ghostty/renderer.test.ts b/apps/web/src/terminal/ghostty/renderer.test.ts deleted file mode 100644 index 5f5c41c8fecb2a464d36a2aa9b701b855b3f5cc1..0000000000000000000000000000000000000000 --- a/apps/web/src/terminal/ghostty/renderer.test.ts +++ /dev/null @@ -1,285 +0,0 @@ -import { describe, expect, it } from "vite-plus/test"; - -import { GHOSTTY_CELL_WIDE, type GhosttyCell, type GhosttySnapshot } from "./core"; -import { - ghosttyTextRunEnd, - measureGhosttyCell, - renderGhosttySnapshot, - terminalGridSize, -} from "./renderer"; - -const cell = (text: string, wide = 0): GhosttyCell => ({ - text, - wide, - foreground: { r: 255, g: 255, b: 255 }, - background: { r: 0, g: 0, b: 0 }, - bold: false, - italic: false, - invisible: false, - strikethrough: false, - overline: false, - underline: false, - selected: false, -}); - -describe("terminalGridSize", () => { - it("matches the mobile renderer's cell-and-padding sizing model", () => { - expect(terminalGridSize(808, 408, { width: 10, height: 20, baseline: 15 }, 4)).toEqual({ - cols: 80, - rows: 20, - }); - }); - - it("never sends an invalid zero-sized terminal to libghostty", () => { - expect(terminalGridSize(0, 0, { width: 10, height: 20, baseline: 15 }, 4)).toEqual({ - cols: 1, - rows: 1, - }); - }); -}); - -describe("measureGhosttyCell", () => { - it("uses descender-aware metrics and the mobile terminal line-height", () => { - const measureText = (text: string) => - text === "M" - ? { width: 7.2, actualBoundingBoxAscent: 9, actualBoundingBoxDescent: 0 } - : { width: 14.4, actualBoundingBoxAscent: 9, actualBoundingBoxDescent: 3 }; - const context = { - font: "", - measureText, - } as unknown as CanvasRenderingContext2D; - - expect(measureGhosttyCell(context, 12, "monospace")).toEqual({ - width: 7.2, - height: 16, - baseline: 11, - }); - }); -}); - -describe("ghosttyTextRunEnd", () => { - it("includes wide spacer tails in the visual clip without rendering spaces", () => { - const cells = [ - cell("界", GHOSTTY_CELL_WIDE.wide), - cell("", GHOSTTY_CELL_WIDE.spacerTail), - cell("🙂", GHOSTTY_CELL_WIDE.wide), - cell("", GHOSTTY_CELL_WIDE.spacerTail), - cell(""), - ]; - expect(ghosttyTextRunEnd(cells, 0, () => true)).toBe(4); - }); -}); - -describe("renderGhosttySnapshot", () => { - it("underlines every cell in a hovered wrapped link", () => { - const fillRectCalls: number[][] = []; - const context = { - canvas: { width: 200, height: 80 }, - beginPath: () => {}, - clip: () => {}, - fillRect: (...args: number[]) => fillRectCalls.push(args), - fillText: () => {}, - rect: () => {}, - resetTransform: () => {}, - restore: () => {}, - save: () => {}, - set fillStyle(_value: string) {}, - set font(_value: string) {}, - set textBaseline(_value: string) {}, - } as unknown as CanvasRenderingContext2D; - const snapshot: GhosttySnapshot = { - cols: 4, - rows: 2, - foreground: { r: 255, g: 255, b: 255 }, - background: { r: 0, g: 0, b: 0 }, - cursor: { r: 255, g: 255, b: 255 }, - cursorX: -1, - cursorY: -1, - cursorVisible: false, - cursorBlinking: false, - cursorStyle: 1, - dirtyRows: new Set([0, 1]), - rowData: [0, 1].map(() => ({ - cells: [cell("a"), cell("b"), cell("c"), cell("d")], - text: "abcd", - isWrapContinuation: false, - wrapsToNext: false, - })), - }; - - renderGhosttySnapshot({ - context, - snapshot, - metrics: { width: 10, height: 20, baseline: 15 }, - fontSize: 12, - fontFamily: "monospace", - padding: 4, - forceFull: false, - cursorOn: false, - hoveredLinkRange: { start: { x: 2, y: 0 }, end: { x: 1, y: 1 } }, - }); - - expect(fillRectCalls.filter(([, , , height]) => height === 1)).toEqual([ - [24, 22, 10, 1], - [34, 22, 10, 1], - [4, 42, 10, 1], - [14, 42, 10, 1], - ]); - }); - - it("constrains text runs and cursor glyphs to their terminal cells", () => { - const fillTextCalls: unknown[][] = []; - const context = { - canvas: { width: 200, height: 40 }, - beginPath: () => {}, - clip: () => {}, - fillRect: () => {}, - fillText: (...args: unknown[]) => fillTextCalls.push(args), - rect: () => {}, - resetTransform: () => {}, - restore: () => {}, - save: () => {}, - set fillStyle(_value: string) {}, - set font(_value: string) {}, - set textBaseline(_value: string) {}, - } as unknown as CanvasRenderingContext2D; - const cells = [cell("a"), cell("b"), cell("x")]; - const snapshot: GhosttySnapshot = { - cols: 3, - rows: 1, - foreground: { r: 255, g: 255, b: 255 }, - background: { r: 0, g: 0, b: 0 }, - cursor: { r: 255, g: 255, b: 255 }, - cursorX: 2, - cursorY: 0, - cursorVisible: true, - cursorBlinking: false, - cursorStyle: 1, - dirtyRows: new Set([0]), - rowData: [{ cells, text: "abx", isWrapContinuation: false, wrapsToNext: false }], - }; - - renderGhosttySnapshot({ - context, - snapshot, - metrics: { width: 7.2, height: 16, baseline: 11 }, - fontSize: 12, - fontFamily: "monospace", - padding: 4, - forceFull: false, - cursorOn: true, - }); - - expect(fillTextCalls).toEqual([ - ["abx", 4, 15, 21.6], - ["x", 18.4, 15, 7.2], - ]); - }); - - it("repaints the cell without an overlay during the blink off phase", () => { - const fillTextCalls: unknown[][] = []; - const context = { - canvas: { width: 200, height: 40 }, - beginPath: () => {}, - clip: () => {}, - fillRect: () => {}, - fillText: (...args: unknown[]) => fillTextCalls.push(args), - rect: () => {}, - resetTransform: () => {}, - restore: () => {}, - save: () => {}, - set fillStyle(_value: string) {}, - set font(_value: string) {}, - set textBaseline(_value: string) {}, - } as unknown as CanvasRenderingContext2D; - const snapshot: GhosttySnapshot = { - cols: 3, - rows: 1, - foreground: { r: 255, g: 255, b: 255 }, - background: { r: 0, g: 0, b: 0 }, - cursor: { r: 255, g: 255, b: 255 }, - cursorX: 2, - cursorY: 0, - cursorVisible: true, - cursorBlinking: true, - cursorStyle: 1, - dirtyRows: new Set(), - rowData: [ - { - cells: [cell("a"), cell("b"), cell("x")], - text: "abx", - isWrapContinuation: false, - wrapsToNext: false, - }, - ], - }; - - renderGhosttySnapshot({ - context, - snapshot, - metrics: { width: 7.2, height: 16, baseline: 11 }, - fontSize: 12, - fontFamily: "monospace", - padding: 4, - forceFull: false, - cursorOn: false, - }); - - // The cursor row still repaints so the block disappears, but the inverted - // glyph the on phase draws over the cell is gone. - expect(fillTextCalls).toEqual([["abx", 4, 15, 21.6]]); - }); - - it("repaints the previous cursor row after the cursor moves", () => { - const clearedRows: number[] = []; - const context = { - canvas: { width: 200, height: 80 }, - beginPath: () => {}, - clip: () => {}, - fillRect: (_left: number, top: number, _width: number, height: number) => { - if (height === 16) clearedRows.push(top); - }, - fillText: () => {}, - rect: () => {}, - resetTransform: () => {}, - restore: () => {}, - save: () => {}, - set fillStyle(_value: string) {}, - set font(_value: string) {}, - set textBaseline(_value: string) {}, - } as unknown as CanvasRenderingContext2D; - const snapshot: GhosttySnapshot = { - cols: 1, - rows: 3, - foreground: { r: 255, g: 255, b: 255 }, - background: { r: 0, g: 0, b: 0 }, - cursor: { r: 255, g: 255, b: 255 }, - cursorX: 0, - cursorY: 2, - cursorVisible: true, - cursorBlinking: false, - cursorStyle: 1, - dirtyRows: new Set(), - rowData: [0, 1, 2].map(() => ({ - cells: [cell("")], - text: "", - isWrapContinuation: false, - wrapsToNext: false, - })), - }; - - renderGhosttySnapshot({ - context, - snapshot, - metrics: { width: 7.2, height: 16, baseline: 11 }, - fontSize: 12, - fontFamily: "monospace", - padding: 4, - forceFull: false, - cursorOn: true, - previousCursorY: 0, - }); - - expect(clearedRows).toEqual([4, 36, 36]); - }); -}); diff --git a/apps/web/src/terminal/ghostty/renderer.ts b/apps/web/src/terminal/ghostty/renderer.ts deleted file mode 100644 index 9d47718464ea6b389eb2cf27c554d2a7c4cdce23..0000000000000000000000000000000000000000 --- a/apps/web/src/terminal/ghostty/renderer.ts +++ /dev/null @@ -1,272 +0,0 @@ -import { - GHOSTTY_CELL_WIDE, - ghosttyColorsEqual, - type GhosttyCell, - type GhosttyColor, - type GhosttySnapshot, -} from "./core"; - -export interface GhosttyCellMetrics { - readonly width: number; - readonly height: number; - readonly baseline: number; -} - -export interface GhosttyCellRange { - readonly start: { readonly x: number; readonly y: number }; - readonly end: { readonly x: number; readonly y: number }; -} - -const DEFAULT_SELECTION_BACKGROUND = "rgba(72, 122, 191, 0.35)"; - -function cssColor(color: GhosttyColor): string { - return `rgb(${color.r}, ${color.g}, ${color.b})`; -} - -function sameTextStyle(left: GhosttyCell, right: GhosttyCell): boolean { - // Selection deliberately does not participate: it only tints the background - // overlay, and splitting a text run at a selection boundary visibly shifts - // glyph spacing whenever the face's true advance differs from the cell width. - return ( - ghosttyColorsEqual(left.foreground, right.foreground) && - left.bold === right.bold && - left.italic === right.italic && - left.invisible === right.invisible - ); -} - -export function ghosttyTextRunEnd( - cells: readonly GhosttyCell[], - start: number, - sameStyle: (cell: GhosttyCell) => boolean, -): number { - let end = start + 1; - while (end < cells.length) { - const next = cells[end]; - if (!next) break; - if (next.wide === GHOSTTY_CELL_WIDE.spacerTail) { - end += 1; - continue; - } - if (next.text.length === 0 || !sameStyle(next)) break; - end += 1; - } - return end; -} - -function fontForCell(cell: GhosttyCell, fontSize: number, fontFamily: string): string { - const style = cell.italic ? "italic" : "normal"; - const weight = cell.bold ? "700" : "400"; - return `${style} ${weight} ${fontSize}px ${fontFamily}`; -} - -export function measureGhosttyCell( - context: CanvasRenderingContext2D, - fontSize: number, - fontFamily: string, -): GhosttyCellMetrics { - context.font = `normal 400 ${fontSize}px ${fontFamily}`; - const widthMeasurement = context.measureText("M"); - const verticalMeasurement = context.measureText("Mg"); - const ascent = verticalMeasurement.actualBoundingBoxAscent || fontSize; - const descent = verticalMeasurement.actualBoundingBoxDescent; - const glyphHeight = ascent + descent; - const height = Math.max(1, Math.round(fontSize * 1.35), Math.ceil(glyphHeight)); - return { - width: Math.max(1, widthMeasurement.width), - height, - baseline: Math.round((height - glyphHeight) / 2 + ascent), - }; -} - -export function terminalGridSize( - width: number, - height: number, - metrics: GhosttyCellMetrics, - padding: number, -): { cols: number; rows: number } { - return { - cols: Math.max(1, Math.floor((width - padding * 2) / metrics.width)), - rows: Math.max(1, Math.floor((height - padding * 2) / metrics.height)), - }; -} - -export function renderGhosttySnapshot(options: { - readonly context: CanvasRenderingContext2D; - readonly snapshot: GhosttySnapshot; - readonly metrics: GhosttyCellMetrics; - readonly fontSize: number; - readonly fontFamily: string; - readonly padding: number; - readonly forceFull: boolean; - readonly cursorOn: boolean; - readonly previousCursorY?: number | null; - readonly focused?: boolean; - readonly selectionBackground?: string; - readonly hoveredLinkRange?: GhosttyCellRange | null; - /** Vertical origin of row 0; defaults to the horizontal padding. */ - readonly originY?: number; -}): void { - const { - context, - snapshot, - metrics, - fontSize, - fontFamily, - padding, - forceFull, - cursorOn, - previousCursorY, - } = options; - const focused = options.focused ?? true; - const selectionBackground = options.selectionBackground ?? DEFAULT_SELECTION_BACKGROUND; - const hoveredLinkRange = options.hoveredLinkRange ?? null; - const originY = options.originY ?? padding; - const rowsToDraw = forceFull - ? Array.from({ length: snapshot.rows }, (_, index) => index) - : [...snapshot.dirtyRows]; - if ( - previousCursorY !== null && - previousCursorY !== undefined && - previousCursorY >= 0 && - !rowsToDraw.includes(previousCursorY) - ) { - rowsToDraw.push(previousCursorY); - } - if (snapshot.cursorVisible && snapshot.cursorY >= 0 && !rowsToDraw.includes(snapshot.cursorY)) { - rowsToDraw.push(snapshot.cursorY); - } - - if (forceFull) { - context.save(); - context.resetTransform(); - context.fillStyle = cssColor(snapshot.background); - context.fillRect(0, 0, context.canvas.width, context.canvas.height); - context.restore(); - } - - context.textBaseline = "alphabetic"; - for (const rowIndex of rowsToDraw) { - const row = snapshot.rowData[rowIndex]; - if (!row) continue; - const top = originY + rowIndex * metrics.height; - - context.fillStyle = cssColor(snapshot.background); - context.fillRect(padding, top, snapshot.cols * metrics.width, metrics.height); - - let backgroundStart = 0; - while (backgroundStart < row.cells.length) { - const first = row.cells[backgroundStart]; - if (!first) break; - let backgroundEnd = backgroundStart + 1; - while (backgroundEnd < row.cells.length) { - const next = row.cells[backgroundEnd]; - if ( - !next || - next.selected !== first.selected || - !ghosttyColorsEqual(next.background, first.background) - ) { - break; - } - backgroundEnd += 1; - } - if (first.selected || !ghosttyColorsEqual(first.background, snapshot.background)) { - const left = padding + backgroundStart * metrics.width; - const width = (backgroundEnd - backgroundStart) * metrics.width; - if (!ghosttyColorsEqual(first.background, snapshot.background)) { - context.fillStyle = cssColor(first.background); - context.fillRect(left, top, width, metrics.height); - } - if (first.selected) { - context.fillStyle = selectionBackground; - context.fillRect(left, top, width, metrics.height); - } - } - backgroundStart = backgroundEnd; - } - - let runStart = 0; - while (runStart < row.cells.length) { - const first = row.cells[runStart]; - if (!first) break; - if (first.text.length === 0) { - runStart += 1; - continue; - } - const runEnd = ghosttyTextRunEnd(row.cells, runStart, (cell) => sameTextStyle(cell, first)); - const text = row.cells - .slice(runStart, runEnd) - .map((cell) => cell.text) - .join(""); - if (!first.invisible && text.trim().length > 0) { - context.save(); - context.beginPath(); - context.rect( - padding + runStart * metrics.width, - top, - (runEnd - runStart) * metrics.width, - metrics.height, - ); - context.clip(); - context.font = fontForCell(first, fontSize, fontFamily); - context.fillStyle = cssColor(first.foreground); - context.fillText( - text, - padding + runStart * metrics.width, - top + metrics.baseline, - (runEnd - runStart) * metrics.width, - ); - context.restore(); - } - runStart = runEnd; - } - - for (let column = 0; column < row.cells.length; column += 1) { - const cell = row.cells[column]; - const hoveredLink = - hoveredLinkRange !== null && - rowIndex >= hoveredLinkRange.start.y && - rowIndex <= hoveredLinkRange.end.y && - (rowIndex > hoveredLinkRange.start.y || column >= hoveredLinkRange.start.x) && - (rowIndex < hoveredLinkRange.end.y || column <= hoveredLinkRange.end.x); - if (!cell || (!cell.underline && !cell.strikethrough && !cell.overline && !hoveredLink)) { - continue; - } - context.fillStyle = cssColor(cell.foreground); - const left = padding + column * metrics.width; - if (cell.underline || hoveredLink) { - context.fillRect(left, top + metrics.height - 2, metrics.width, 1); - } - if (cell.strikethrough) { - context.fillRect(left, top + Math.floor(metrics.height * 0.55), metrics.width, 1); - } - if (cell.overline) context.fillRect(left, top + 1, metrics.width, 1); - } - } - - if (cursorOn && snapshot.cursorVisible && snapshot.cursorX >= 0 && snapshot.cursorY >= 0) { - const left = padding + snapshot.cursorX * metrics.width; - const top = originY + snapshot.cursorY * metrics.height; - context.fillStyle = cssColor(snapshot.cursor); - if (!focused) { - // An unfocused terminal draws a hollow cursor so the active pane is obvious. - context.strokeStyle = cssColor(snapshot.cursor); - context.strokeRect(left + 0.5, top + 0.5, metrics.width - 1, metrics.height - 1); - } else if (snapshot.cursorStyle === 0) { - context.fillRect(left, top, 2, metrics.height); - } else if (snapshot.cursorStyle === 2) { - context.fillRect(left, top + metrics.height - 2, metrics.width, 2); - } else if (snapshot.cursorStyle === 3) { - context.strokeStyle = cssColor(snapshot.cursor); - context.strokeRect(left + 0.5, top + 0.5, metrics.width - 1, metrics.height - 1); - } else { - context.fillRect(left, top, metrics.width, metrics.height); - const cell = snapshot.rowData[snapshot.cursorY]?.cells[snapshot.cursorX]; - if (cell?.text) { - context.font = fontForCell(cell, fontSize, fontFamily); - context.fillStyle = cssColor(snapshot.background); - context.fillText(cell.text, left, top + metrics.baseline, metrics.width); - } - } - } -} diff --git a/apps/web/src/terminal/ghostty/runtime.ts b/apps/web/src/terminal/ghostty/runtime.ts deleted file mode 100644 index ad06389def55cbc612663a0475252436dd32bd90..0000000000000000000000000000000000000000 --- a/apps/web/src/terminal/ghostty/runtime.ts +++ /dev/null @@ -1,233 +0,0 @@ -import ghosttyWasmUrl from "./vendor/ghostty-vt.wasm?url"; -import ghosttyWritePtyWasmUrl from "./vendor/ghostty-write-pty.wasm?url&no-inline"; - -type WasmFunction = (...args: Array) => number; - -interface TypeField { - readonly offset: number; - readonly size: number; - readonly type: string; -} - -interface TypeLayout { - readonly size: number; - readonly align: number; - readonly fields: Readonly>; -} - -type TypeLayouts = Readonly>; - -const textDecoder = new TextDecoder(); - -export class GhosttyRuntime { - readonly memory: WebAssembly.Memory; - readonly layouts: TypeLayouts; - private readonly exports: WebAssembly.Exports; - private memoryView: DataView; - private readonly ptyWriters = new Map void>(); - private nextPtyWriterId = 1; - private writePtyFunctionIndex = 0; - - private constructor(instance: WebAssembly.Instance) { - this.exports = instance.exports; - const memory = instance.exports.memory; - if (!(memory instanceof WebAssembly.Memory)) { - throw new Error("libghostty-vt did not export WebAssembly memory"); - } - this.memory = memory; - this.memoryView = new DataView(memory.buffer); - const jsonPointer = this.call("ghostty_type_json"); - const bytes = new Uint8Array(memory.buffer); - let end = jsonPointer; - while (end < bytes.length && bytes[end] !== 0) end += 1; - this.layouts = JSON.parse(textDecoder.decode(bytes.subarray(jsonPointer, end))) as TypeLayouts; - } - - static async load(): Promise { - const response = await fetch(ghosttyWasmUrl); - if (!response.ok) { - throw new Error(`Unable to load libghostty-vt (${response.status})`); - } - let instance: WebAssembly.Instance | undefined; - const imports = { - env: { - log: (pointer: number, length: number) => { - if (!instance) return; - const memory = instance.exports.memory; - if (!(memory instanceof WebAssembly.Memory)) return; - const message = textDecoder.decode(new Uint8Array(memory.buffer, pointer, length)); - console.debug("[libghostty-vt]", message); - }, - }, - }; - const result = await WebAssembly.instantiate(await response.arrayBuffer(), imports); - instance = result.instance; - const runtime = new GhosttyRuntime(result.instance); - await runtime.installWritePtyTrampoline(); - return runtime; - } - - call(name: string, ...args: Array): number { - const fn = this.exports[name]; - if (typeof fn !== "function") { - throw new Error(`libghostty-vt export is unavailable: ${name}`); - } - return (fn as WasmFunction)(...args); - } - - layout(name: string): TypeLayout { - const layout = this.layouts[name]; - if (!layout) throw new Error(`libghostty-vt type layout is unavailable: ${name}`); - return layout; - } - - alloc(size: number): number { - const pointer = this.call("ghostty_wasm_alloc_u8_array", size); - if (pointer === 0) throw new Error(`libghostty-vt failed to allocate ${size} bytes`); - new Uint8Array(this.memory.buffer, pointer, size).fill(0); - return pointer; - } - - free(pointer: number, size: number): void { - if (pointer !== 0) this.call("ghostty_wasm_free_u8_array", pointer, size); - } - - allocOpaque(): number { - const pointer = this.call("ghostty_wasm_alloc_opaque"); - if (pointer === 0) throw new Error("libghostty-vt failed to allocate an opaque pointer"); - // The slot is uninitialized until a *_new call writes it; zero it so dispose - // paths that run after a partial initialization never free a garbage pointer. - new DataView(this.memory.buffer).setUint32(pointer, 0, true); - return pointer; - } - - freeOpaque(pointer: number): void { - if (pointer !== 0) this.call("ghostty_wasm_free_opaque", pointer); - } - - readPointer(slot: number): number { - return this.memoryDataView().getUint32(slot, true); - } - - attachPtyWriter(terminal: number, writer: (data: string) => void): number { - if (this.writePtyFunctionIndex === 0) { - throw new Error("libghostty-vt PTY callback trampoline is unavailable"); - } - const id = this.nextPtyWriterId++; - this.ptyWriters.set(id, writer); - this.call("ghostty_terminal_set", terminal, 0, id); - this.call("ghostty_terminal_set", terminal, 1, this.writePtyFunctionIndex); - return id; - } - - detachPtyWriter(terminal: number, id: number): void { - this.call("ghostty_terminal_set", terminal, 1, 0); - this.call("ghostty_terminal_set", terminal, 0, 0); - this.ptyWriters.delete(id); - } - - view(pointer: number, size?: number): DataView { - return new DataView(this.memory.buffer, pointer, size); - } - - bytes(pointer: number, size: number): Uint8Array { - return new Uint8Array(this.memory.buffer, pointer, size); - } - - /** Reuse scalar reads across cells, refreshing after any terminal grows shared WASM memory. */ - memoryDataView(): DataView { - if (this.memoryView.buffer !== this.memory.buffer) { - this.memoryView = new DataView(this.memory.buffer); - } - return this.memoryView; - } - - setField(pointer: number, structName: string, fieldName: string, value: number): void { - const field = this.layout(structName).fields[fieldName]; - if (!field) throw new Error(`libghostty-vt field is unavailable: ${structName}.${fieldName}`); - const view = this.memoryDataView(); - const offset = pointer + field.offset; - switch (field.type) { - case "bool": - case "u8": - view.setUint8(offset, value); - return; - case "u16": - view.setUint16(offset, value, true); - return; - case "i32": - view.setInt32(offset, value, true); - return; - case "u32": - case "enum": - view.setUint32(offset, value, true); - return; - case "u64": - view.setBigUint64(offset, BigInt(value), true); - return; - default: - throw new Error(`Unsupported libghostty-vt field type: ${field.type}`); - } - } - - readField(pointer: number, structName: string, fieldName: string): number { - const field = this.layout(structName).fields[fieldName]; - if (!field) throw new Error(`libghostty-vt field is unavailable: ${structName}.${fieldName}`); - const view = this.memoryDataView(); - const offset = pointer + field.offset; - switch (field.type) { - case "bool": - case "u8": - return view.getUint8(offset); - case "u16": - return view.getUint16(offset, true); - case "i32": - return view.getInt32(offset, true); - case "u32": - case "enum": - return view.getUint32(offset, true); - case "u64": - return Number(view.getBigUint64(offset, true)); - default: - throw new Error(`Unsupported libghostty-vt field type: ${field.type}`); - } - } - - private async installWritePtyTrampoline(): Promise { - const response = await fetch(ghosttyWritePtyWasmUrl); - if (!response.ok) { - throw new Error(`Unable to load the libghostty-vt PTY trampoline (${response.status})`); - } - const result = await WebAssembly.instantiate(await response.arrayBuffer(), { - env: { - t3_write_pty: (_terminal: number, userdata: number, pointer: number, length: number) => { - const writer = this.ptyWriters.get(userdata); - if (!writer || length === 0) return; - writer(textDecoder.decode(new Uint8Array(this.memory.buffer, pointer, length))); - }, - }, - }); - const trampoline = result.instance.exports.ghostty_write_pty; - const table = this.exports.__indirect_function_table; - if (typeof trampoline !== "function" || !(table instanceof WebAssembly.Table)) { - throw new Error("libghostty-vt did not expose its callback table"); - } - const index = table.length; - // grow-then-set instead of grow(1, fn): WebKit stores a grow init value - // with broken type information and every later call_indirect through the - // entry traps with a signature mismatch. table.set canonicalizes correctly. - table.grow(1); - table.set(index, trampoline); - this.writePtyFunctionIndex = index; - } -} - -let runtimePromise: Promise | null = null; - -export function loadGhosttyRuntime(): Promise { - runtimePromise ??= GhosttyRuntime.load().catch((error) => { - runtimePromise = null; - throw error; - }); - return runtimePromise; -} diff --git a/apps/web/src/terminal/ghostty/runtimeAbi.test.ts b/apps/web/src/terminal/ghostty/runtimeAbi.test.ts deleted file mode 100644 index 7d4782b4b40948279f71509951533873e5cc0bee..0000000000000000000000000000000000000000 --- a/apps/web/src/terminal/ghostty/runtimeAbi.test.ts +++ /dev/null @@ -1,717 +0,0 @@ -import { describe, expect, it } from "vite-plus/test"; - -import wasmDataUrl from "./vendor/ghostty-vt.wasm?inline"; -import writePtyWasmDataUrl from "./vendor/ghostty-write-pty.wasm?inline"; -import pinnedVersion from "../../../../../native/libghostty-vt/VERSION?raw"; -import { ghosttyKeyForCode } from "./keyCodes"; - -type WasmFunction = (...args: number[]) => number; - -function decodeWasmDataUrl(dataUrl: string): Uint8Array { - const encoded = dataUrl.split(",", 2)[1]; - if (!encoded) throw new Error("The vendored Ghostty WASM data URL is invalid"); - return Uint8Array.from(atob(encoded), (character) => character.charCodeAt(0)); -} - -describe("vendored libghostty-vt WebAssembly", () => { - it("stays pinned to the canonical revision and size budget", async () => { - const wasm = decodeWasmDataUrl(wasmDataUrl); - expect(wasm.byteLength).toBeLessThan(750_000); - - // The artifact carries its own provenance: the build embeds the pinned - // revision as semver build metadata, so the repository's canonical VERSION - // file is the single source of truth and drift is caught here without a copy. - const result = await WebAssembly.instantiate(wasm.buffer as ArrayBuffer, { - env: { log: () => {} }, - }); - const instance = result instanceof WebAssembly.Instance ? result : result.instance; - const memory = instance.exports.memory as WebAssembly.Memory; - const call = (name: string, ...args: number[]) => - (instance.exports[name] as WasmFunction)(...args); - const out = call("ghostty_wasm_alloc_u8_array", 8); - expect(call("ghostty_build_info", 10, out)).toBe(0); - const view = new DataView(memory.buffer, out, 8); - const embeddedRevision = new TextDecoder().decode( - new Uint8Array(memory.buffer, view.getUint32(0, true), view.getUint32(4, true)), - ); - call("ghostty_wasm_free_u8_array", out, 8); - expect(embeddedRevision).toBe(pinnedVersion.trim()); - }); - - it("creates, writes multi-codepoint graphemes, and frees repeated terminals", async () => { - const bytes = decodeWasmDataUrl(wasmDataUrl); - let memory: WebAssembly.Memory | null = null; - const instantiated = await WebAssembly.instantiate(bytes.buffer as ArrayBuffer, { - env: { - log: () => {}, - }, - }); - const instance = - instantiated instanceof WebAssembly.Instance ? instantiated : instantiated.instance; - const exports = instance.exports; - memory = exports.memory as WebAssembly.Memory; - const call = (name: string, ...args: number[]) => (exports[name] as WasmFunction)(...args); - const jsonPointer = call("ghostty_type_json"); - const jsonBytes = new Uint8Array(memory.buffer, jsonPointer); - const jsonEnd = jsonBytes.indexOf(0); - const layouts = JSON.parse(new TextDecoder().decode(jsonBytes.subarray(0, jsonEnd))) as Record< - string, - { size: number } - >; - const optionsSize = layouts.GhosttyTerminalOptions?.size; - expect(optionsSize).toBe(8); - if (optionsSize === undefined) throw new Error("GhosttyTerminalOptions layout is missing"); - - for (let iteration = 0; iteration < 25; iteration += 1) { - const options = call("ghostty_wasm_alloc_u8_array", optionsSize); - const optionsView = new DataView(memory.buffer, options, optionsSize); - optionsView.setUint16(0, 80, true); - optionsView.setUint16(2, 24, true); - optionsView.setUint32(4, 5_000, true); - const terminalSlot = call("ghostty_wasm_alloc_opaque"); - expect(call("ghostty_terminal_new", 0, terminalSlot, options)).toBe(0); - const terminal = new DataView(memory.buffer).getUint32(terminalSlot, true); - - const input = new TextEncoder().encode("e\u0301 👨‍👩‍👧‍👦 العربية\r\n"); - const inputPointer = call("ghostty_wasm_alloc_u8_array", input.length); - new Uint8Array(memory.buffer, inputPointer, input.length).set(input); - call("ghostty_terminal_vt_write", terminal, inputPointer, input.length); - call("ghostty_wasm_free_u8_array", inputPointer, input.length); - call("ghostty_terminal_free", terminal); - call("ghostty_wasm_free_opaque", terminalSlot); - call("ghostty_wasm_free_u8_array", options, optionsSize); - } - }); - - it("blinks the default cursor until a program asks for a steady one", async () => { - const result = await WebAssembly.instantiate( - decodeWasmDataUrl(wasmDataUrl).buffer as ArrayBuffer, - { env: { log: () => {} } }, - ); - const instance = result instanceof WebAssembly.Instance ? result : result.instance; - const memory = instance.exports.memory as WebAssembly.Memory; - const call = (name: string, ...args: number[]) => - (instance.exports[name] as WasmFunction)(...args); - const alloc = (size: number) => call("ghostty_wasm_alloc_u8_array", size); - const options = alloc(8); - const optionsView = new DataView(memory.buffer, options, 8); - optionsView.setUint16(0, 80, true); - optionsView.setUint16(2, 24, true); - const terminalSlot = call("ghostty_wasm_alloc_opaque"); - expect(call("ghostty_terminal_new", 0, terminalSlot, options)).toBe(0); - const terminal = new DataView(memory.buffer).getUint32(terminalSlot, true); - const renderStateSlot = call("ghostty_wasm_alloc_opaque"); - expect(call("ghostty_render_state_new", 0, renderStateSlot)).toBe(0); - const renderState = new DataView(memory.buffer).getUint32(renderStateSlot, true); - const scratch = alloc(4); - - const blinking = () => { - expect(call("ghostty_render_state_update", renderState, terminal)).toBe(0); - expect(call("ghostty_render_state_get", renderState, 12, scratch)).toBe(0); - return new DataView(memory.buffer, scratch, 4).getUint8(0) !== 0; - }; - const write = (data: string) => { - const bytes = new TextEncoder().encode(data); - const pointer = alloc(bytes.length); - new Uint8Array(memory.buffer, pointer, bytes.length).set(bytes); - call("ghostty_terminal_vt_write", terminal, pointer, bytes.length); - call("ghostty_wasm_free_u8_array", pointer, bytes.length); - }; - const setDefaultCursorBlink = (blink: boolean) => { - const value = alloc(1); - new Uint8Array(memory.buffer, value, 1)[0] = blink ? 1 : 0; - expect(call("ghostty_terminal_set", terminal, 23, value)).toBe(0); - call("ghostty_wasm_free_u8_array", value, 1); - }; - - // Ghostty's own default is a steady cursor, so the blink the web terminal - // inherited from xterm.js only exists because option 23 asks for it. - expect(blinking()).toBe(false); - setDefaultCursorBlink(true); - expect(blinking()).toBe(true); - - // Programs still own the cursor: DECSCUSR steady block and DEC mode 12 both - // stop the blink, and DECSCUSR reset returns to the embedder default. - write("\u001b[2 q"); - expect(blinking()).toBe(false); - write("\u001b[0 q"); - expect(blinking()).toBe(true); - write("\u001b[?12l"); - expect(blinking()).toBe(false); - write("\u001b[?12h"); - expect(blinking()).toBe(true); - - // RIS restores Ghostty's built-in steady default rather than the embedder's, - // which is why the core reapplies the option around a session replay. - call("ghostty_terminal_reset", terminal); - expect(blinking()).toBe(false); - setDefaultCursorBlink(true); - expect(blinking()).toBe(true); - - call("ghostty_wasm_free_u8_array", scratch, 4); - call("ghostty_render_state_free", renderState); - call("ghostty_wasm_free_opaque", renderStateSlot); - call("ghostty_terminal_free", terminal); - call("ghostty_wasm_free_opaque", terminalSlot); - call("ghostty_wasm_free_u8_array", options, 8); - }); - - it("reports and scrolls the viewport with Ghostty's scrollbar state", async () => { - const result = await WebAssembly.instantiate( - decodeWasmDataUrl(wasmDataUrl).buffer as ArrayBuffer, - { env: { log: () => {} } }, - ); - const instance = result instanceof WebAssembly.Instance ? result : result.instance; - const memory = instance.exports.memory as WebAssembly.Memory; - const call = (name: string, ...args: number[]) => - (instance.exports[name] as WasmFunction)(...args); - const alloc = (size: number) => call("ghostty_wasm_alloc_u8_array", size); - const options = alloc(8); - const optionsView = new DataView(memory.buffer, options, 8); - optionsView.setUint16(0, 80, true); - optionsView.setUint16(2, 10, true); - optionsView.setUint32(4, 1_000, true); - const terminalSlot = call("ghostty_wasm_alloc_opaque"); - expect(call("ghostty_terminal_new", 0, terminalSlot, options)).toBe(0); - const terminal = new DataView(memory.buffer).getUint32(terminalSlot, true); - const input = new TextEncoder().encode( - Array.from({ length: 50 }, (_, index) => `${index + 1}\r\n`).join(""), - ); - const inputPointer = alloc(input.length); - new Uint8Array(memory.buffer, inputPointer, input.length).set(input); - call("ghostty_terminal_vt_write", terminal, inputPointer, input.length); - - const scrollbar = alloc(24); - const scrollbarView = new DataView(memory.buffer, scrollbar, 24); - expect(call("ghostty_terminal_get", terminal, 9, scrollbar)).toBe(0); - expect([0, 8, 16].map((offset) => Number(scrollbarView.getBigUint64(offset, true)))).toEqual([ - 51, 41, 10, - ]); - - const scroll = alloc(24); - const scrollView = new DataView(memory.buffer, scroll, 24); - scrollView.setUint32(0, 2, true); - scrollView.setInt32(8, -5, true); - call("ghostty_terminal_scroll_viewport", terminal, scroll); - expect(call("ghostty_terminal_get", terminal, 9, scrollbar)).toBe(0); - expect(Number(scrollbarView.getBigUint64(8, true))).toBe(36); - - call("ghostty_wasm_free_u8_array", scroll, 24); - call("ghostty_wasm_free_u8_array", scrollbar, 24); - call("ghostty_wasm_free_u8_array", inputPointer, input.length); - call("ghostty_terminal_free", terminal); - call("ghostty_wasm_free_opaque", terminalSlot); - call("ghostty_wasm_free_u8_array", options, 8); - }); - - it("routes terminal-generated replies through the shared callback table", async () => { - const mainResult = await WebAssembly.instantiate( - decodeWasmDataUrl(wasmDataUrl).buffer as ArrayBuffer, - { env: { log: () => {} } }, - ); - const main = mainResult instanceof WebAssembly.Instance ? mainResult : mainResult.instance; - const memory = main.exports.memory as WebAssembly.Memory; - let reply = ""; - const trampolineResult = await WebAssembly.instantiate( - decodeWasmDataUrl(writePtyWasmDataUrl).buffer as ArrayBuffer, - { - env: { - t3_write_pty: (_terminal: number, _userdata: number, pointer: number, length: number) => { - reply += new TextDecoder().decode(new Uint8Array(memory.buffer, pointer, length)); - }, - }, - }, - ); - const trampoline = - trampolineResult instanceof WebAssembly.Instance - ? trampolineResult - : trampolineResult.instance; - const table = main.exports.__indirect_function_table as WebAssembly.Table; - const callbackIndex = table.length; - table.grow(1, trampoline.exports.ghostty_write_pty as CallableFunction); - const call = (name: string, ...args: number[]) => (main.exports[name] as WasmFunction)(...args); - const options = call("ghostty_wasm_alloc_u8_array", 8); - const optionsView = new DataView(memory.buffer, options, 8); - optionsView.setUint16(0, 80, true); - optionsView.setUint16(2, 24, true); - const terminalSlot = call("ghostty_wasm_alloc_opaque"); - expect(call("ghostty_terminal_new", 0, terminalSlot, options)).toBe(0); - const terminal = new DataView(memory.buffer).getUint32(terminalSlot, true); - call("ghostty_terminal_set", terminal, 0, 1); - call("ghostty_terminal_set", terminal, 1, callbackIndex); - const query = new TextEncoder().encode("\u001b[5n"); - const queryPointer = call("ghostty_wasm_alloc_u8_array", query.length); - new Uint8Array(memory.buffer, queryPointer, query.length).set(query); - call("ghostty_terminal_vt_write", terminal, queryPointer, query.length); - - expect(reply).toBe("\u001b[0n"); - reply = ""; - call("ghostty_terminal_set", terminal, 1, 0); - call("ghostty_terminal_set", terminal, 0, 0); - call("ghostty_terminal_vt_write", terminal, queryPointer, query.length); - expect(reply).toBe(""); - call("ghostty_terminal_set", terminal, 0, 1); - call("ghostty_terminal_set", terminal, 1, callbackIndex); - call("ghostty_terminal_vt_write", terminal, queryPointer, query.length); - expect(reply).toBe("\u001b[0n"); - call("ghostty_wasm_free_u8_array", queryPointer, query.length); - call("ghostty_terminal_free", terminal); - call("ghostty_wasm_free_opaque", terminalSlot); - call("ghostty_wasm_free_u8_array", options, 8); - }); - - it("formats the active selection with Ghostty's copy semantics", async () => { - const result = await WebAssembly.instantiate( - decodeWasmDataUrl(wasmDataUrl).buffer as ArrayBuffer, - { env: { log: () => {} } }, - ); - const instance = result instanceof WebAssembly.Instance ? result : result.instance; - const memory = instance.exports.memory as WebAssembly.Memory; - const call = (name: string, ...args: number[]) => - (instance.exports[name] as WasmFunction)(...args); - const options = call("ghostty_wasm_alloc_u8_array", 8); - const optionsView = new DataView(memory.buffer, options, 8); - optionsView.setUint16(0, 80, true); - optionsView.setUint16(2, 24, true); - const terminalSlot = call("ghostty_wasm_alloc_opaque"); - expect(call("ghostty_terminal_new", 0, terminalSlot, options)).toBe(0); - const terminal = new DataView(memory.buffer).getUint32(terminalSlot, true); - const input = new TextEncoder().encode("a\r\n\r\nb"); - const inputPointer = call("ghostty_wasm_alloc_u8_array", input.length); - new Uint8Array(memory.buffer, inputPointer, input.length).set(input); - call("ghostty_terminal_vt_write", terminal, inputPointer, input.length); - - const selection = call("ghostty_wasm_alloc_u8_array", 32); - new DataView(memory.buffer, selection, 32).setUint32(0, 32, true); - expect(call("ghostty_terminal_select_all", terminal, selection)).toBe(0); - expect(call("ghostty_terminal_set", terminal, 21, selection)).toBe(0); - const formatOptions = call("ghostty_wasm_alloc_u8_array", 16); - const formatView = new DataView(memory.buffer, formatOptions, 16); - formatView.setUint32(0, 16, true); - formatView.setUint8(8, 1); - formatView.setUint8(9, 1); - const written = call("ghostty_wasm_alloc_usize"); - expect( - call("ghostty_terminal_selection_format_buf", terminal, formatOptions, 0, 0, written), - ).toBe(-3); - const outputSize = new DataView(memory.buffer, written, 4).getUint32(0, true); - const output = call("ghostty_wasm_alloc_u8_array", outputSize); - expect( - call( - "ghostty_terminal_selection_format_buf", - terminal, - formatOptions, - output, - outputSize, - written, - ), - ).toBe(0); - expect(new TextDecoder().decode(new Uint8Array(memory.buffer, output, outputSize))).toBe( - "a\n\nb", - ); - - call("ghostty_wasm_free_u8_array", output, outputSize); - call("ghostty_wasm_free_usize", written); - call("ghostty_wasm_free_u8_array", formatOptions, 16); - call("ghostty_wasm_free_u8_array", selection, 32); - call("ghostty_wasm_free_u8_array", inputPointer, input.length); - call("ghostty_terminal_free", terminal); - call("ghostty_wasm_free_opaque", terminalSlot); - call("ghostty_wasm_free_u8_array", options, 8); - }); - - it("formats a cell-drag selection installed from screen grid refs", async () => { - const result = await WebAssembly.instantiate( - decodeWasmDataUrl(wasmDataUrl).buffer as ArrayBuffer, - { env: { log: () => {} } }, - ); - const instance = result instanceof WebAssembly.Instance ? result : result.instance; - const memory = instance.exports.memory as WebAssembly.Memory; - const call = (name: string, ...args: number[]) => - (instance.exports[name] as WasmFunction)(...args); - const alloc = (size: number) => call("ghostty_wasm_alloc_u8_array", size); - const free = (pointer: number, size: number) => - call("ghostty_wasm_free_u8_array", pointer, size); - const options = alloc(8); - new DataView(memory.buffer, options, 8).setUint16(0, 80, true); - new DataView(memory.buffer, options, 8).setUint16(2, 24, true); - const terminalSlot = call("ghostty_wasm_alloc_opaque"); - expect(call("ghostty_terminal_new", 0, terminalSlot, options)).toBe(0); - const terminal = new DataView(memory.buffer).getUint32(terminalSlot, true); - const input = new TextEncoder().encode("hello\r\nworld"); - const inputPointer = alloc(input.length); - new Uint8Array(memory.buffer, inputPointer, input.length).set(input); - call("ghostty_terminal_vt_write", terminal, inputPointer, input.length); - - const gridRefAt = (x: number, y: number) => { - const point = alloc(24); - const pointView = new DataView(memory.buffer, point, 24); - pointView.setUint32(0, 2, true); - pointView.setUint16(8, x, true); - pointView.setUint32(12, y, true); - const ref = alloc(12); - new DataView(memory.buffer, ref, 12).setUint32(0, 12, true); - expect(call("ghostty_terminal_grid_ref", terminal, point, ref)).toBe(0); - free(point, 24); - return ref; - }; - const start = gridRefAt(0, 0); - const end = gridRefAt(4, 1); - const selection = alloc(32); - const selectionBytes = new Uint8Array(memory.buffer, selection, 32); - selectionBytes.fill(0); - new DataView(memory.buffer, selection, 32).setUint32(0, 32, true); - selectionBytes.set(new Uint8Array(memory.buffer, start, 12), 4); - selectionBytes.set(new Uint8Array(memory.buffer, end, 12), 16); - expect(call("ghostty_terminal_set", terminal, 21, selection)).toBe(0); - - const formatOptions = alloc(16); - new Uint8Array(memory.buffer, formatOptions, 16).fill(0); - const formatView = new DataView(memory.buffer, formatOptions, 16); - formatView.setUint32(0, 16, true); - formatView.setUint8(8, 1); - formatView.setUint8(9, 1); - const written = call("ghostty_wasm_alloc_usize"); - expect( - call("ghostty_terminal_selection_format_buf", terminal, formatOptions, 0, 0, written), - ).toBe(-3); - const outputSize = new DataView(memory.buffer, written, 4).getUint32(0, true); - const output = alloc(outputSize); - expect( - call( - "ghostty_terminal_selection_format_buf", - terminal, - formatOptions, - output, - outputSize, - written, - ), - ).toBe(0); - expect(new TextDecoder().decode(new Uint8Array(memory.buffer, output, outputSize))).toBe( - "hello\nworld", - ); - - free(output, outputSize); - call("ghostty_wasm_free_usize", written); - free(formatOptions, 16); - free(selection, 32); - free(end, 12); - free(start, 12); - free(inputPointer, input.length); - call("ghostty_terminal_free", terminal); - call("ghostty_wasm_free_opaque", terminalSlot); - free(options, 8); - }); - - it("uses Ghostty for mouse encoding, word selection, and OSC 8 hit testing", async () => { - const result = await WebAssembly.instantiate( - decodeWasmDataUrl(wasmDataUrl).buffer as ArrayBuffer, - { env: { log: () => {} } }, - ); - const instance = result instanceof WebAssembly.Instance ? result : result.instance; - const memory = instance.exports.memory as WebAssembly.Memory; - const call = (name: string, ...args: number[]) => - (instance.exports[name] as WasmFunction)(...args); - const alloc = (size: number) => call("ghostty_wasm_alloc_u8_array", size); - const free = (pointer: number, size: number) => - call("ghostty_wasm_free_u8_array", pointer, size); - - const terminalOptions = alloc(8); - const terminalOptionsView = new DataView(memory.buffer, terminalOptions, 8); - terminalOptionsView.setUint16(0, 80, true); - terminalOptionsView.setUint16(2, 24, true); - const terminalSlot = call("ghostty_wasm_alloc_opaque"); - expect(call("ghostty_terminal_new", 0, terminalSlot, terminalOptions)).toBe(0); - const terminal = new DataView(memory.buffer).getUint32(terminalSlot, true); - const input = new TextEncoder().encode( - "\u001b[?1000h\u001b[?1006h\u001b]8;;https://t3.codes/docs\u001b\\linked\u001b]8;;\u001b\\ plain", - ); - const inputPointer = alloc(input.length); - new Uint8Array(memory.buffer, inputPointer, input.length).set(input); - call("ghostty_terminal_vt_write", terminal, inputPointer, input.length); - - const modeFlag = alloc(1); - new Uint8Array(memory.buffer, modeFlag, 1)[0] = 0; - expect(call("ghostty_terminal_get", terminal, 11, modeFlag)).toBe(0); - expect(new Uint8Array(memory.buffer, modeFlag, 1)[0]).toBe(1); - new Uint8Array(memory.buffer, modeFlag, 1)[0] = 1; - expect(call("ghostty_terminal_mode_get", terminal, 1003, modeFlag)).toBe(0); - expect(new Uint8Array(memory.buffer, modeFlag, 1)[0]).toBe(0); - const anyEventInput = new TextEncoder().encode("\u001b[?1003h"); - const anyEventPointer = alloc(anyEventInput.length); - new Uint8Array(memory.buffer, anyEventPointer, anyEventInput.length).set(anyEventInput); - call("ghostty_terminal_vt_write", terminal, anyEventPointer, anyEventInput.length); - expect(call("ghostty_terminal_mode_get", terminal, 1003, modeFlag)).toBe(0); - expect(new Uint8Array(memory.buffer, modeFlag, 1)[0]).toBe(1); - const anyEventReset = new TextEncoder().encode("\u001b[?1003l\u001b[?1000h"); - const anyEventResetPointer = alloc(anyEventReset.length); - new Uint8Array(memory.buffer, anyEventResetPointer, anyEventReset.length).set(anyEventReset); - call("ghostty_terminal_vt_write", terminal, anyEventResetPointer, anyEventReset.length); - expect(call("ghostty_terminal_mode_get", terminal, 1003, modeFlag)).toBe(0); - expect(new Uint8Array(memory.buffer, modeFlag, 1)[0]).toBe(0); - free(anyEventResetPointer, anyEventReset.length); - free(anyEventPointer, anyEventInput.length); - free(modeFlag, 1); - - const point = alloc(24); - const pointView = new DataView(memory.buffer, point, 24); - pointView.setUint32(0, 1, true); - pointView.setUint16(8, 1, true); - pointView.setUint32(12, 0, true); - const gridRef = alloc(12); - new DataView(memory.buffer, gridRef, 12).setUint32(0, 12, true); - expect(call("ghostty_terminal_grid_ref", terminal, point, gridRef)).toBe(0); - - const written = call("ghostty_wasm_alloc_usize"); - expect(call("ghostty_grid_ref_hyperlink_uri", gridRef, 0, 0, written)).toBe(-3); - const hyperlinkSize = new DataView(memory.buffer, written, 4).getUint32(0, true); - const hyperlink = alloc(hyperlinkSize); - expect(call("ghostty_grid_ref_hyperlink_uri", gridRef, hyperlink, hyperlinkSize, written)).toBe( - 0, - ); - expect(new TextDecoder().decode(new Uint8Array(memory.buffer, hyperlink, hyperlinkSize))).toBe( - "https://t3.codes/docs", - ); - - const wordOptions = alloc(24); - const wordOptionsView = new DataView(memory.buffer, wordOptions, 24); - wordOptionsView.setUint32(0, 24, true); - new Uint8Array(memory.buffer, wordOptions + 4, 12).set( - new Uint8Array(memory.buffer, gridRef, 12), - ); - const selection = alloc(32); - new DataView(memory.buffer, selection, 32).setUint32(0, 32, true); - expect(call("ghostty_terminal_select_word", terminal, wordOptions, selection)).toBe(0); - expect(call("ghostty_terminal_set", terminal, 21, selection)).toBe(0); - const formatOptions = alloc(16); - const formatView = new DataView(memory.buffer, formatOptions, 16); - formatView.setUint32(0, 16, true); - formatView.setUint8(8, 1); - formatView.setUint8(9, 1); - expect( - call("ghostty_terminal_selection_format_buf", terminal, formatOptions, 0, 0, written), - ).toBe(-3); - const selectionSize = new DataView(memory.buffer, written, 4).getUint32(0, true); - const selectionText = alloc(selectionSize); - expect( - call( - "ghostty_terminal_selection_format_buf", - terminal, - formatOptions, - selectionText, - selectionSize, - written, - ), - ).toBe(0); - expect( - new TextDecoder().decode(new Uint8Array(memory.buffer, selectionText, selectionSize)), - ).toBe("linked"); - - const lineOptions = alloc(28); - const lineOptionsView = new DataView(memory.buffer, lineOptions, 28); - lineOptionsView.setUint32(0, 28, true); - new Uint8Array(memory.buffer, lineOptions + 4, 12).set( - new Uint8Array(memory.buffer, gridRef, 12), - ); - expect(call("ghostty_terminal_select_line", terminal, lineOptions, selection)).toBe(0); - expect(call("ghostty_terminal_set", terminal, 21, selection)).toBe(0); - expect( - call("ghostty_terminal_selection_format_buf", terminal, formatOptions, 0, 0, written), - ).toBe(-3); - const lineSelectionSize = new DataView(memory.buffer, written, 4).getUint32(0, true); - const lineSelectionText = alloc(lineSelectionSize); - expect( - call( - "ghostty_terminal_selection_format_buf", - terminal, - formatOptions, - lineSelectionText, - lineSelectionSize, - written, - ), - ).toBe(0); - expect( - new TextDecoder().decode(new Uint8Array(memory.buffer, lineSelectionText, lineSelectionSize)), - ).toBe("linked plain"); - - const mouseEncoderSlot = call("ghostty_wasm_alloc_opaque"); - const mouseEventSlot = call("ghostty_wasm_alloc_opaque"); - expect(call("ghostty_mouse_encoder_new", 0, mouseEncoderSlot)).toBe(0); - expect(call("ghostty_mouse_event_new", 0, mouseEventSlot)).toBe(0); - const view = new DataView(memory.buffer); - const mouseEncoder = view.getUint32(mouseEncoderSlot, true); - const mouseEvent = view.getUint32(mouseEventSlot, true); - call("ghostty_mouse_encoder_setopt_from_terminal", mouseEncoder, terminal); - const mouseSize = alloc(36); - const mouseSizeView = new DataView(memory.buffer, mouseSize, 36); - for (const [offset, value] of [ - [0, 36], - [4, 800], - [8, 480], - [12, 10], - [16, 20], - ] as const) { - mouseSizeView.setUint32(offset, value, true); - } - call("ghostty_mouse_encoder_setopt", mouseEncoder, 2, mouseSize); - call("ghostty_mouse_event_set_action", mouseEvent, 0); - call("ghostty_mouse_event_set_button", mouseEvent, 1); - const mousePosition = new DataView(new ArrayBuffer(8)); - mousePosition.setFloat32(0, 15, true); - mousePosition.setFloat32(4, 25, true); - const mousePositionPointer = alloc(8); - new Uint8Array(memory.buffer, mousePositionPointer, 8).set( - new Uint8Array(mousePosition.buffer), - ); - call("ghostty_mouse_event_set_position", mouseEvent, mousePositionPointer); - const mouseOutput = alloc(128); - expect( - call("ghostty_mouse_encoder_encode", mouseEncoder, mouseEvent, mouseOutput, 128, written), - ).toBe(0); - const mouseOutputSize = new DataView(memory.buffer, written, 4).getUint32(0, true); - expect( - new TextDecoder().decode(new Uint8Array(memory.buffer, mouseOutput, mouseOutputSize)), - ).toBe("\u001b[<0;2;2M"); - - call("ghostty_mouse_event_free", mouseEvent); - call("ghostty_mouse_encoder_free", mouseEncoder); - call("ghostty_wasm_free_opaque", mouseEventSlot); - call("ghostty_wasm_free_opaque", mouseEncoderSlot); - free(mousePositionPointer, 8); - free(mouseOutput, 128); - free(mouseSize, 36); - free(lineSelectionText, lineSelectionSize); - free(lineOptions, 28); - free(selectionText, selectionSize); - free(formatOptions, 16); - free(selection, 32); - free(wordOptions, 24); - free(hyperlink, hyperlinkSize); - call("ghostty_wasm_free_usize", written); - free(gridRef, 12); - free(point, 24); - free(inputPointer, input.length); - call("ghostty_terminal_free", terminal); - call("ghostty_wasm_free_opaque", terminalSlot); - free(terminalOptions, 8); - }); - - it("encodes modified printable keys in Kitty keyboard mode", async () => { - const result = await WebAssembly.instantiate( - decodeWasmDataUrl(wasmDataUrl).buffer as ArrayBuffer, - { env: { log: () => {} } }, - ); - const instance = result instanceof WebAssembly.Instance ? result : result.instance; - const memory = instance.exports.memory as WebAssembly.Memory; - const call = (name: string, ...args: number[]) => - (instance.exports[name] as WasmFunction)(...args); - const alloc = (size: number) => call("ghostty_wasm_alloc_u8_array", size); - const free = (pointer: number, size: number) => - call("ghostty_wasm_free_u8_array", pointer, size); - - const terminalOptions = alloc(8); - const terminalOptionsView = new DataView(memory.buffer, terminalOptions, 8); - terminalOptionsView.setUint16(0, 80, true); - terminalOptionsView.setUint16(2, 24, true); - const terminalSlot = call("ghostty_wasm_alloc_opaque"); - expect(call("ghostty_terminal_new", 0, terminalSlot, terminalOptions)).toBe(0); - const terminal = new DataView(memory.buffer).getUint32(terminalSlot, true); - const kittyMode = new TextEncoder().encode("\u001b[>1u"); - const kittyModePointer = alloc(kittyMode.length); - new Uint8Array(memory.buffer, kittyModePointer, kittyMode.length).set(kittyMode); - call("ghostty_terminal_vt_write", terminal, kittyModePointer, kittyMode.length); - - const encoderSlot = call("ghostty_wasm_alloc_opaque"); - const eventSlot = call("ghostty_wasm_alloc_opaque"); - expect(call("ghostty_key_encoder_new", 0, encoderSlot)).toBe(0); - expect(call("ghostty_key_event_new", 0, eventSlot)).toBe(0); - const view = new DataView(memory.buffer); - const keyEncoder = view.getUint32(encoderSlot, true); - const keyEvent = view.getUint32(eventSlot, true); - call("ghostty_key_encoder_setopt_from_terminal", keyEncoder, terminal); - call("ghostty_key_event_set_action", keyEvent, 1); - call("ghostty_key_event_set_key", keyEvent, ghosttyKeyForCode("KeyC")); - call("ghostty_key_event_set_mods", keyEvent, 1 << 1); - call("ghostty_key_event_set_consumed_mods", keyEvent, 0); - call("ghostty_key_event_set_composing", keyEvent, 0); - call("ghostty_key_event_set_unshifted_codepoint", keyEvent, "c".codePointAt(0)!); - const text = new TextEncoder().encode("c"); - const textPointer = alloc(text.length); - new Uint8Array(memory.buffer, textPointer, text.length).set(text); - call("ghostty_key_event_set_utf8", keyEvent, textPointer, text.length); - - const written = call("ghostty_wasm_alloc_usize"); - expect(call("ghostty_key_encoder_encode", keyEncoder, keyEvent, 0, 0, written)).toBe(-3); - const outputSize = new DataView(memory.buffer, written, 4).getUint32(0, true); - const output = alloc(outputSize); - expect( - call("ghostty_key_encoder_encode", keyEncoder, keyEvent, output, outputSize, written), - ).toBe(0); - const outputLength = new DataView(memory.buffer, written, 4).getUint32(0, true); - expect(new TextDecoder().decode(new Uint8Array(memory.buffer, output, outputLength))).toBe( - "\u001b[99;5u", - ); - - const remappedText = new TextEncoder().encode("j"); - const remappedTextPointer = alloc(remappedText.length); - new Uint8Array(memory.buffer, remappedTextPointer, remappedText.length).set(remappedText); - call("ghostty_key_event_set_unshifted_codepoint", keyEvent, "j".codePointAt(0)!); - call("ghostty_key_event_set_utf8", keyEvent, remappedTextPointer, remappedText.length); - expect(call("ghostty_key_encoder_encode", keyEncoder, keyEvent, 0, 0, written)).toBe(-3); - const remappedOutputSize = new DataView(memory.buffer, written, 4).getUint32(0, true); - const remappedOutput = alloc(remappedOutputSize); - expect( - call( - "ghostty_key_encoder_encode", - keyEncoder, - keyEvent, - remappedOutput, - remappedOutputSize, - written, - ), - ).toBe(0); - const remappedOutputLength = new DataView(memory.buffer, written, 4).getUint32(0, true); - expect( - new TextDecoder().decode(new Uint8Array(memory.buffer, remappedOutput, remappedOutputLength)), - ).toBe("\u001b[106;5u"); - - // Without the Kitty report-event-types flag a release encodes nothing, so - // the surface's keyup handler stays silent for legacy sessions. - call("ghostty_key_event_set_action", keyEvent, 0); - expect(call("ghostty_key_encoder_encode", keyEncoder, keyEvent, 0, 0, written)).toBe(0); - expect(new DataView(memory.buffer, written, 4).getUint32(0, true)).toBe(0); - - // With report-event-types enabled the same release encodes an event-typed code. - const reportEvents = new TextEncoder().encode("\u001b[>3u"); - const reportEventsPointer = alloc(reportEvents.length); - new Uint8Array(memory.buffer, reportEventsPointer, reportEvents.length).set(reportEvents); - call("ghostty_terminal_vt_write", terminal, reportEventsPointer, reportEvents.length); - call("ghostty_key_encoder_setopt_from_terminal", keyEncoder, terminal); - expect(call("ghostty_key_encoder_encode", keyEncoder, keyEvent, 0, 0, written)).toBe(-3); - const releaseSize = new DataView(memory.buffer, written, 4).getUint32(0, true); - const releaseOutput = alloc(releaseSize); - expect( - call("ghostty_key_encoder_encode", keyEncoder, keyEvent, releaseOutput, releaseSize, written), - ).toBe(0); - const releaseLength = new DataView(memory.buffer, written, 4).getUint32(0, true); - expect( - new TextDecoder().decode(new Uint8Array(memory.buffer, releaseOutput, releaseLength)), - ).toBe("\u001b[106;5:3u"); - free(releaseOutput, releaseSize); - free(reportEventsPointer, reportEvents.length); - - free(remappedOutput, remappedOutputSize); - free(remappedTextPointer, remappedText.length); - free(output, outputSize); - call("ghostty_wasm_free_usize", written); - free(textPointer, text.length); - call("ghostty_key_event_free", keyEvent); - call("ghostty_key_encoder_free", keyEncoder); - call("ghostty_wasm_free_opaque", eventSlot); - call("ghostty_wasm_free_opaque", encoderSlot); - free(kittyModePointer, kittyMode.length); - call("ghostty_terminal_free", terminal); - call("ghostty_wasm_free_opaque", terminalSlot); - free(terminalOptions, 8); - }); -}); diff --git a/apps/web/src/terminal/ghostty/surface.test.ts b/apps/web/src/terminal/ghostty/surface.test.ts deleted file mode 100644 index 82ec9dfc690a1397c7e59a5eeb4b060cdfdea93e..0000000000000000000000000000000000000000 --- a/apps/web/src/terminal/ghostty/surface.test.ts +++ /dev/null @@ -1,1541 +0,0 @@ -import { afterEach, describe, expect, it, vi } from "vite-plus/test"; - -import { GhosttyTerminalCore, type GhosttyCell, type GhosttyRow } from "./core"; -import { - DEFAULT_TERMINAL_FONT_FAMILY, - DEFAULT_TERMINAL_FONT_SIZE, - advanceTerminalSelectionClickSequence, - applyTerminalCopyEvent, - clearPrimedTerminalCopyInput, - ghosttyMouseButton, - isTerminalAltGraphText, - isTerminalCompositionCommitInput, - isTerminalCompositionKey, - isTerminalCopyShortcut, - isTerminalPasteShortcut, - loadTerminalFontFamily, - primeTerminalCopyInput, - resolveTerminalMouseData, - resolveTerminalMouseTrackingState, - shouldBlinkTerminalCursor, - shouldReportTerminalMouse, - terminalGridCellAt, - terminalScrollbarGeometry, - terminalScrollbarOffsetAtPointer, - terminalLinkAtPositionWithRange, - terminalContentOriginY, - terminalFontFamily, - terminalFontSize, - terminalWheelArrowData, - terminalWheelDeltaRows, - GhosttyTerminalSurface, - type GhosttyTerminalSurfaceOptions, -} from "./surface"; - -vi.mock("./vendor/ghostty-vt.wasm?url", async () => ({ - default: (await import("./vendor/ghostty-vt.wasm?inline")).default, -})); -vi.mock("./vendor/ghostty-write-pty.wasm?url&no-inline", async () => ({ - default: (await import("./vendor/ghostty-write-pty.wasm?inline")).default, -})); - -describe("GhosttyTerminalSurface visibility", () => { - const surfaces = new Set(); - - function key( - surface: GhosttyTerminalSurface, - key: string, - code: string, - modifiers: Partial< - Pick< - KeyboardEvent, - | "altKey" - | "ctrlKey" - | "metaKey" - | "shiftKey" - | "isComposing" - | "keyCode" - | "getModifierState" - > - > = {}, - type = "keydown", - ) { - const event = Object.assign(new Event(type, { cancelable: true }), { - key, - code, - altKey: false, - ctrlKey: false, - metaKey: false, - shiftKey: false, - isComposing: false, - keyCode: 0, - getModifierState: () => false, - ...modifiers, - }); - surface.input.dispatchEvent(event); - return event; - } - - // Keep the real surface, renderer, and WASM core. Only browser layout and - // scheduling are replaced so tests can count work while the terminal is hidden. - function createHarness() { - vi.useFakeTimers(); - const frames = new Map(); - const resizeTargets = new Map<(entries: { target: Element }[]) => void, Set>(); - const paint = vi.fn((_operation: string, _args: ReadonlyArray) => {}); - let frameId = 0; - const requestFrame = vi.fn((callback: FrameRequestCallback) => { - frames.set(++frameId, callback); - return frameId; - }); - - class TerminalTestElement extends EventTarget { - style: Record = {}; - parentElement: TerminalTestElement | null = null; - clientWidth = 168; - clientHeight = 104; - width = 300; - height = 150; - value = ""; - private readonly captures = new Set(); - - setAttribute() {} - append(...children: TerminalTestElement[]) { - for (const child of children) child.parentElement = this; - } - replaceChildren(...children: TerminalTestElement[]) { - this.append(...children); - } - remove() { - this.parentElement = null; - } - getContext() { - return context; - } - focus() { - this.dispatchEvent(new Event("focus")); - } - setPointerCapture(pointerId: number) { - this.captures.add(pointerId); - } - hasPointerCapture(pointerId: number) { - return this.captures.has(pointerId); - } - releasePointerCapture(pointerId: number) { - this.captures.delete(pointerId); - } - getBoundingClientRect() { - return { left: 0, top: 0, right: 168, bottom: 104, width: 168, height: 104 }; - } - } - - const canvas = new TerminalTestElement(); - const mount = new TerminalTestElement(); - const context = { - canvas, - beginPath() {}, - clip() {}, - rect() {}, - resetTransform() {}, - restore() {}, - save() {}, - setTransform() {}, - fillRect: (...args: number[]) => paint("fillRect", args), - strokeRect: (...args: number[]) => paint("strokeRect", args), - fillText: (...args: [string, number, number, number?]) => paint("fillText", args), - measureText: (text: string) => ({ - width: text.length * 8, - actualBoundingBoxAscent: 9, - actualBoundingBoxDescent: 3, - }), - }; - vi.stubGlobal("document", { - createElement: (tag: string) => (tag === "canvas" ? canvas : new TerminalTestElement()), - fonts: Object.assign(new EventTarget(), { load: async () => [], add() {} }), - }); - vi.stubGlobal( - "window", - Object.assign(new EventTarget(), { - devicePixelRatio: 1, - innerHeight: 104, - requestAnimationFrame: requestFrame, - cancelAnimationFrame: (id: number) => frames.delete(id), - setTimeout, - clearTimeout, - setInterval, - clearInterval, - matchMedia: () => Object.assign(new EventTarget(), { matches: false }), - }), - ); - vi.stubGlobal( - "ResizeObserver", - class { - constructor(private readonly callback: (entries: { target: Element }[]) => void) { - resizeTargets.set(callback, new Set()); - } - observe(target: Element) { - resizeTargets.get(this.callback)?.add(target); - } - unobserve(target: Element) { - resizeTargets.get(this.callback)?.delete(target); - } - disconnect() { - resizeTargets.delete(this.callback); - } - }, - ); - const snapshot = vi.spyOn(GhosttyTerminalCore.prototype, "snapshot"); - const onData = vi.fn<(data: string) => void>(); - - return { - mount, - frames, - paint, - requestFrame, - snapshot, - onData, - get renderedSnapshot() { - const result = snapshot.mock.results.at(-1); - if (result?.type !== "return") throw new Error("No terminal snapshot was rendered"); - return result.value; - }, - flushFrame() { - const queued = [...frames.values()]; - frames.clear(); - for (const callback of queued) callback(0); - }, - resize() { - for (const [callback, targets] of resizeTargets) { - callback([...targets].map((target) => ({ target }))); - } - }, - pointer( - type: string, - clientX: number, - buttons: number, - modifiers: boolean | Partial> = {}, - button = 0, - clientY = 5, - ) { - canvas.dispatchEvent( - Object.assign(new Event(type, { cancelable: true }), { - clientX, - clientY, - pointerId: 1, - button, - buttons, - ...(typeof modifiers === "boolean" ? { shiftKey: modifiers } : modifiers), - }), - ); - }, - touch(type: string, clientY: number, pointerId = 2) { - canvas.dispatchEvent( - Object.assign(new Event(type, { cancelable: true }), { - clientX: 40, - clientY, - pointerId, - pointerType: "touch", - isPrimary: pointerId === 2, - button: 0, - buttons: type === "pointerup" ? 0 : 1, - shiftKey: false, - }), - ); - }, - async create(options: Partial = {}) { - const surface = await GhosttyTerminalSurface.create(mount as unknown as HTMLElement, { - theme: { - foreground: { r: 255, g: 255, b: 255 }, - background: { r: 0, g: 0, b: 0 }, - cursor: { r: 255, g: 255, b: 255 }, - }, - onData, - onResize() {}, - onSelectionChange() {}, - beforeKey: () => false, - onLinkActivate() {}, - ...options, - get visible() { - return options.visible ?? true; - }, - }); - surfaces.add(surface); - return surface; - }, - }; - } - - afterEach(() => { - for (const surface of surfaces) surface.dispose(); - surfaces.clear(); - vi.useRealTimers(); - vi.unstubAllGlobals(); - vi.restoreAllMocks(); - }); - - it.each([ - { platform: "Linux x86_64", primary: { ctrlKey: true } }, - { platform: "MacIntel", primary: { metaKey: true } }, - ])( - "navigates history from terminal input without sending keys ($platform)", - async ({ platform, primary }) => { - vi.stubGlobal("navigator", { platform }); - const harness = createHarness(); - const surface = await harness.create({ beforeKey: () => true }); - surface.write(Array.from({ length: 20 }, (_, index) => `line ${index}`).join("\r\n")); - harness.flushFrame(); - const latest = harness.renderedSnapshot.rowData[0]?.text; - expect(surface.isAtBottom()).toBe(true); - - expect(key(surface, "PageUp", "PageUp", { shiftKey: true }).defaultPrevented).toBe(true); - harness.flushFrame(); - expect(harness.renderedSnapshot.rowData[0]?.text).toContain("line 8"); - expect(surface.isAtBottom()).toBe(false); - key(surface, "PageDown", "PageDown", { shiftKey: true }); - harness.flushFrame(); - expect(harness.renderedSnapshot.rowData[0]?.text).toBe(latest); - - key(surface, "Home", "Home", { ...primary, shiftKey: true }); - harness.flushFrame(); - expect(harness.renderedSnapshot.rowData[0]?.text).toContain("line 0"); - key(surface, "End", "End", { ...primary, shiftKey: true }); - harness.flushFrame(); - expect(harness.renderedSnapshot.rowData[0]?.text).toBe(latest); - expect(surface.isAtBottom()).toBe(true); - expect(harness.onData).not.toHaveBeenCalled(); - }, - ); - - it("forwards navigation presses and releases when scrollback state is unavailable", async () => { - vi.stubGlobal("navigator", { platform: "Linux x86_64" }); - const harness = createHarness(); - const surface = await harness.create({ beforeKey: () => true }); - surface.write("history\x1b[>31u"); - vi.spyOn(GhosttyTerminalCore.prototype, "scrollbarState").mockReturnValue(null); - - for (const [name, modifiers] of [ - ["PageUp", { shiftKey: true }], - ["Home", { ctrlKey: true, shiftKey: true }], - ] as const) { - key(surface, name, name, modifiers); - key(surface, name, name, modifiers, "keyup"); - } - expect(harness.onData).toHaveBeenCalledTimes(4); - expect(harness.onData.mock.calls[1]?.[0]).toContain(":3"); - expect(harness.onData.mock.calls[3]?.[0]).toContain(":3"); - }); - - it("selects full history and keeps selection coordinates available outside the viewport", async () => { - vi.stubGlobal("navigator", { platform: "Linux x86_64" }); - const harness = createHarness(); - const surface = await harness.create({ beforeKey: () => true }); - const lines = Array.from({ length: 20 }, (_, index) => `line ${index}`); - surface.write(lines.join("\r\n")); - harness.flushFrame(); - surface.selectAll(); - harness.flushFrame(); - expect(surface.getSelection()).toBe(lines.join("\n")); - expect(surface.getSelectionPosition()).toMatchObject({ start: { x: 0, y: 0 } }); - expect(surface.getSelectionPosition()?.end.y).toBe(19); - expect(surface.getSelectionEndClientRect()).not.toBeNull(); - expect(harness.renderedSnapshot.rowData.every((row) => row.cells[0]?.selected)).toBe(true); - - key(surface, "Home", "Home", { ctrlKey: true, shiftKey: true }); - harness.flushFrame(); - surface.selectAll(); - expect(surface.getSelection()).toBe(lines.join("\n")); - expect(surface.getSelectionPosition()?.end.y).toBe(19); - expect(surface.getSelectionEndClientRect()).toBeNull(); - surface.clearSelection(); - expect(surface.getSelection()).toBe(""); - expect(surface.getSelectionPosition()).toBeNull(); - }); - - it.each([ - { platform: "Linux x86_64", modifiers: { ctrlKey: true, shiftKey: true } }, - { platform: "MacIntel", modifiers: { metaKey: true } }, - ])("selects all through the local shortcut ($platform)", async ({ platform, modifiers }) => { - vi.stubGlobal("navigator", { platform }); - const harness = createHarness(); - const surface = await harness.create({ beforeKey: () => true }); - surface.write("hello\r\nworld"); - harness.flushFrame(); - expect(key(surface, "a", "KeyA", modifiers).defaultPrevented).toBe(true); - expect(surface.getSelection()).toBe("hello\nworld"); - expect(surface.getSelectionPosition()).not.toBeNull(); - expect(harness.onData).not.toHaveBeenCalled(); - }); - - it("preserves shell Ctrl+A and ordinary application navigation", async () => { - vi.stubGlobal("navigator", { platform: "Linux x86_64" }); - const harness = createHarness(); - const surface = await harness.create({ beforeKey: () => true }); - key(surface, "a", "KeyA", { ctrlKey: true }); - key(surface, "PageUp", "PageUp"); - key(surface, "PageDown", "PageDown"); - key(surface, "Home", "Home"); - key(surface, "End", "End"); - expect(harness.onData.mock.calls.map(([data]) => data)).toEqual([ - "\x01", - "\x1b[5~", - "\x1b[6~", - "\x1b[H", - "\x1b[F", - ]); - expect(surface.hasSelection()).toBe(false); - }); - - it("leaves modified history keys with alternate-screen applications", async () => { - vi.stubGlobal("navigator", { platform: "Linux x86_64" }); - const harness = createHarness(); - const surface = await harness.create({ beforeKey: () => true }); - surface.write("\x1b[?1049happ"); - key(surface, "PageUp", "PageUp", { shiftKey: true }); - key(surface, "End", "End", { ctrlKey: true, shiftKey: true }); - expect(harness.onData.mock.calls.map(([data]) => data)).toEqual(["\x1b[5;2~", "\x1b[1;6F"]); - surface.selectAll(); - expect(surface.getSelection()).toBe("app"); - surface.write("\x1b[?1049l"); - expect(surface.getSelection()).toBe(""); - }); - - it("suppresses local shortcut releases in Kitty sessions, including read-only observers", async () => { - vi.stubGlobal("navigator", { platform: "Linux x86_64" }); - const harness = createHarness(); - const surface = await harness.create({ beforeKey: () => true }); - surface.input.readOnly = true; - surface.write("history\x1b[>31u"); - for (const [name, code, modifiers] of [ - ["PageUp", "PageUp", { shiftKey: true }], - ["Home", "Home", { ctrlKey: true, shiftKey: true }], - ["a", "KeyA", { ctrlKey: true, shiftKey: true }], - ] as const) { - key(surface, name, code, modifiers); - key(surface, name, code, modifiers, "keyup"); - } - expect(surface.getSelection()).toBe("history"); - expect(harness.onData).not.toHaveBeenCalled(); - - // An ordinary application key still has both press and release reports. - key(surface, "PageUp", "PageUp"); - key(surface, "PageUp", "PageUp", {}, "keyup"); - expect(harness.onData).toHaveBeenCalledTimes(2); - expect(harness.onData.mock.calls[1]?.[0]).toContain(":3"); - }); - - it("honors host interception, IME candidates, and AltGr before local shortcuts", async () => { - vi.stubGlobal("navigator", { platform: "Linux x86_64" }); - const harness = createHarness(); - let allow = false; - const surface = await harness.create({ beforeKey: () => allow }); - surface.write("hello\x1b[>31u"); - key(surface, "a", "KeyA", { ctrlKey: true, shiftKey: true }); - key(surface, "a", "KeyA", {}, "keyup"); - expect(surface.hasSelection()).toBe(false); - allow = true; - surface.input.value = "候補"; - key(surface, "a", "KeyA", { ctrlKey: true, shiftKey: true, isComposing: true }); - key(surface, "a", "KeyA", {}, "keyup"); - key(surface, "a", "KeyA", { ctrlKey: true, shiftKey: true, keyCode: 229 }); - key(surface, "a", "KeyA", {}, "keyup"); - key(surface, "a", "KeyA", { - ctrlKey: true, - shiftKey: true, - altKey: true, - getModifierState: (modifier) => modifier === "AltGraph", - }); - key(surface, "a", "KeyA", {}, "keyup"); - expect(surface.input.value).toBe("候補"); - expect(surface.hasSelection()).toBe(false); - expect(harness.onData).not.toHaveBeenCalled(); - }); - - it.each([ - { platform: "Linux x86_64", modifiers: { ctrlKey: true, metaKey: false } }, - { platform: "MacIntel", modifiers: { ctrlKey: false, metaKey: true } }, - ])( - "gates path links and preserves selection and URLs ($platform)", - async ({ platform, modifiers }) => { - vi.stubGlobal("navigator", { platform }); - const harness = createHarness(); - vi.spyOn(Event.prototype, "timeStamp", "get").mockImplementation(() => Date.now()); - let canOpenPaths = false; - const openLink = vi.fn(); - const surface = await harness.create({ - canActivateLink: (text) => text.startsWith("https://") || canOpenPaths, - onLinkActivate: openLink, - }); - surface.write("/repo/file.ts"); - harness.flushFrame(); - harness.pointer("pointermove", 5, 0, modifiers); - expect(surface.canvas.style.cursor).toBe(""); - harness.pointer("pointerdown", 5, 1, modifiers); - harness.pointer("pointerup", 5, 0, modifiers); - expect(openLink).not.toHaveBeenCalled(); - - vi.advanceTimersByTime(501); - harness.pointer("pointerdown", 5, 1); - harness.pointer("pointermove", 37, 1); - harness.pointer("pointerup", 37, 0); - expect(surface.getSelection()).toBe("/repo"); - - vi.advanceTimersByTime(501); - harness.pointer("pointermove", 5, 0, modifiers); - canOpenPaths = true; - surface.refreshLinkActivation(); - expect(surface.canvas.style.cursor).toBe("pointer"); - harness.pointer("pointerdown", 5, 1, modifiers); - harness.pointer("pointerup", 5, 0, modifiers); - expect(openLink).toHaveBeenCalledExactlyOnceWith("/repo/file.ts", expect.any(Event)); - - vi.advanceTimersByTime(501); - harness.pointer("pointerdown", 5, 1, modifiers); - canOpenPaths = false; - surface.refreshLinkActivation(); - expect(surface.canvas.style.cursor).toBe(""); - harness.pointer("pointerup", 5, 0, modifiers); - expect(openLink).toHaveBeenCalledOnce(); - - vi.advanceTimersByTime(501); - surface.resetAndWrite("https://t3.codes"); - harness.flushFrame(); - harness.pointer("pointermove", 5, 0, modifiers); - expect(surface.canvas.style.cursor).toBe("pointer"); - harness.pointer("pointerdown", 5, 1, modifiers); - harness.pointer("pointerup", 5, 0, modifiers); - expect(openLink).toHaveBeenLastCalledWith("https://t3.codes", expect.any(Event)); - }, - ); - - it("resends an unchanged grid when authorization and attachment become ready", async () => { - const harness = createHarness(); - let canOperate = false; - let attached = false; - const resizePty = vi.fn<(cols: number, rows: number) => void>(); - const surface = await harness.create({ - onResize: (cols, rows) => { - if (canOperate && attached) resizePty(cols, rows); - }, - }); - vi.advanceTimersByTime(150); - expect(resizePty).not.toHaveBeenCalled(); - - canOperate = true; - surface.resendSize(); - vi.advanceTimersByTime(150); - expect(resizePty).not.toHaveBeenCalled(); - - attached = true; - surface.resendSize(); - vi.advanceTimersByTime(150); - expect(resizePty).toHaveBeenCalledExactlyOnceWith(20, 6); - surface.fit(); - vi.advanceTimersByTime(150); - expect(resizePty).toHaveBeenCalledOnce(); - - canOperate = false; - harness.mount.clientWidth = 248; - surface.fit(); - vi.advanceTimersByTime(150); - expect(resizePty).toHaveBeenCalledOnce(); - }); - - it("sends the settled grid when a resize drag is released", async () => { - const harness = createHarness(); - const onResize = vi.fn<(cols: number, rows: number) => void>(); - const surface = await harness.create({ onResize }); - vi.advanceTimersByTime(150); - onResize.mockClear(); - - // Mid-drag, the grid reflows locally while the PTY waits for the debounce. - harness.mount.clientWidth = 120; - harness.resize(); - expect(surface.cols).toBe(14); - expect(onResize).not.toHaveBeenCalled(); - - // The release writes the final width before the observer reports it. - harness.mount.clientWidth = 96; - window.dispatchEvent(new Event("pointerup")); - expect(onResize).toHaveBeenCalledExactlyOnceWith(11, 6); - - harness.resize(); - vi.advanceTimersByTime(150); - window.dispatchEvent(new Event("pointerup")); - expect(onResize).toHaveBeenCalledOnce(); - }); - - it("replays the current grid on reveal when a hidden host becomes ready", async () => { - const harness = createHarness(); - const onResize = vi.fn<(cols: number, rows: number) => void>(); - const surface = await harness.create({ onResize }); - vi.advanceTimersByTime(150); - onResize.mockClear(); - - surface.setVisible(false); - surface.resendSize(); - vi.advanceTimersByTime(150); - expect(onResize).not.toHaveBeenCalled(); - - surface.setVisible(true); - vi.advanceTimersByTime(150); - expect(onResize).toHaveBeenCalledExactlyOnceWith(20, 6); - }); - - it("stops hidden snapshots and paint while preserving live VT replies and the next cursor", async () => { - const harness = createHarness(); - const surface = await harness.create(); - surface.focus(); - surface.write("ready\x1b[1 q"); - harness.flushFrame(); - vi.advanceTimersByTime(500); - harness.flushFrame(); - surface.write("queued"); - expect(harness.frames.size).toBe(1); - surface.setVisible(false); - expect(harness.frames.size).toBe(0); - expect(vi.getTimerCount()).toBe(0); - harness.snapshot.mockClear(); - harness.paint.mockClear(); - harness.requestFrame.mockClear(); - - surface.write("\x1b[2J\x1b[H\x1b[3"); - surface.write("1mhidden"); - surface.write("界🙂\x1b[0m\x1b[5n\x1b[6n"); - surface.fit(); - vi.advanceTimersByTime(2_000); - harness.flushFrame(); - - expect(harness.onData.mock.calls).toEqual([["\x1b[0n"], ["\x1b[1;11R"]]); - expect(harness.snapshot).not.toHaveBeenCalled(); - expect(harness.paint).not.toHaveBeenCalled(); - expect(harness.requestFrame).not.toHaveBeenCalled(); - - surface.setVisible(true); - expect(harness.snapshot).toHaveBeenCalledTimes(1); - expect(harness.renderedSnapshot).toMatchObject({ cursorX: 10, cursorY: 0 }); - expect(harness.renderedSnapshot.rowData[0]?.text).toContain("hidden"); - expect(harness.paint.mock.calls).toContainEqual(["fillRect", [84, 4, 8, 16]]); - expect(harness.frames.size).toBe(0); - }); - - it("scrolls touch drags in both directions without selecting or sending input", async () => { - const harness = createHarness(); - const surface = await harness.create(); - surface.write(Array.from({ length: 50 }, (_, i) => `row ${i}\r\n`).join("")); - harness.flushFrame(); - const bottom = harness.renderedSnapshot.rowData[0]?.text; - harness.touch("pointerdown", 20); - for (let y = 22; y <= 68; y += 2) harness.touch("pointermove", y); - harness.flushFrame(); - expect(harness.renderedSnapshot.rowData[0]?.text).not.toBe(bottom); - expect(surface.getSelection()).toBe(""); - harness.touch("pointermove", 20); - harness.touch("pointerup", 20); - harness.flushFrame(); - expect(harness.renderedSnapshot.rowData[0]?.text).toBe(bottom); - expect(harness.onData).not.toHaveBeenCalled(); - }); - - it("sends touch scrolling to alternate-screen applications", async () => { - const harness = createHarness(); - const surface = await harness.create(); - surface.write("\x1b[?1049h\x1b[?1h"); - harness.touch("pointerdown", 20); - harness.touch("pointermove", 52); - harness.touch("pointerup", 52); - expect(harness.onData.mock.calls).toEqual([["\x1bOA\x1bOA"]]); - }); - - it("reports touch scrolling and taps to mouse-tracking applications", async () => { - const harness = createHarness(); - const surface = await harness.create(); - surface.write("\x1b[?1000h\x1b[?1006h"); - harness.touch("pointerdown", 20); - harness.touch("pointermove", 52); - harness.touch("pointerup", 52); - expect(harness.onData.mock.calls.map(([data]) => data)).toEqual([ - "\x1b[<64;5;4M", - "\x1b[<64;5;4M", - ]); - harness.onData.mockClear(); - harness.touch("pointerdown", 20); - harness.touch("pointerup", 20); - expect(harness.onData.mock.calls.map(([data]) => data)).toEqual([ - "\x1b[<0;5;2M", - "\x1b[<0;5;2m", - ]); - }); - - it("opens a link on touch tap but not on drag or cancellation", async () => { - const harness = createHarness(); - const onLinkActivate = vi.fn(); - const surface = await harness.create({ onLinkActivate }); - surface.write("https://example.com"); - harness.flushFrame(); - harness.touch("pointerdown", 5); - harness.touch("pointerup", 5); - expect(onLinkActivate).toHaveBeenCalledTimes(1); - harness.touch("pointerdown", 5); - harness.touch("pointermove", 37); - harness.touch("pointerup", 37); - harness.touch("pointerdown", 5); - harness.touch("pointercancel", 5); - expect(onLinkActivate).toHaveBeenCalledTimes(1); - }); - - it("ends a canceled touch drag and ignores a second finger", async () => { - const harness = createHarness(); - const surface = await harness.create(); - surface.write(Array.from({ length: 50 }, (_, i) => `row ${i}\r\n`).join("")); - harness.flushFrame(); - const bottom = harness.renderedSnapshot.rowData[0]?.text; - harness.touch("pointerdown", 20); - harness.touch("pointerdown", 20, 3); - harness.touch("pointermove", 68, 3); - harness.touch("pointercancel", 20); - harness.touch("pointermove", 68); - harness.flushFrame(); - expect(harness.renderedSnapshot.rowData[0]?.text).toBe(bottom); - harness.touch("pointerdown", 20); - harness.touch("pointermove", 68); - harness.touch("pointerup", 68); - harness.flushFrame(); - expect(harness.renderedSnapshot.rowData[0]?.text).not.toBe(bottom); - }); - - it("keeps the selection on reveal and applies a hidden selection clear", async () => { - const harness = createHarness(); - const surface = await harness.create(); - surface.write("hello world"); - harness.flushFrame(); - harness.pointer("pointerdown", 5, 1); - harness.pointer("pointermove", 37, 1); - harness.pointer("pointerup", 37, 0); - harness.flushFrame(); - expect(surface.getSelection()).toBe("hello"); - const position = surface.getSelectionPosition(); - - surface.setVisible(false); - harness.snapshot.mockClear(); - surface.setVisible(true); - expect(harness.snapshot).toHaveBeenCalledTimes(1); - expect(surface.getSelectionPosition()).toEqual(position); - expect( - harness.renderedSnapshot.rowData[0]?.cells.slice(0, 5).every((cell) => cell.selected), - ).toBe(true); - - surface.setVisible(false); - harness.snapshot.mockClear(); - surface.clearSelection(); - surface.write("!"); - expect(harness.snapshot).not.toHaveBeenCalled(); - surface.setVisible(true); - expect(harness.snapshot).toHaveBeenCalledTimes(1); - expect(surface.getSelection()).toBe(""); - expect(surface.getSelectionPosition()).toBeNull(); - expect(harness.renderedSnapshot.rowData[0]?.cells.some((cell) => cell.selected)).toBe(false); - }); - - it("scrolls a selection drag held at the terminal edge, even when the window ends there", async () => { - const harness = createHarness(); - const surface = await harness.create(); - surface.write(Array.from({ length: 40 }, (_, index) => `line ${index}`).join("\r\n")); - harness.flushFrame(); - const latest = harness.renderedSnapshot.rowData[0]?.text; - - harness.pointer("pointerdown", 5, 1, {}, 0, 50); - harness.pointer("pointermove", 5, 1, {}, 0, 1); - vi.advanceTimersByTime(400); - harness.flushFrame(); - expect(surface.isAtBottom()).toBe(false); - - harness.pointer("pointermove", 5, 1, {}, 0, 103); - vi.advanceTimersByTime(2_000); - harness.pointer("pointerup", 5, 0, {}, 0, 103); - harness.flushFrame(); - expect(surface.isAtBottom()).toBe(true); - expect(harness.renderedSnapshot.rowData[0]?.text).toBe(latest); - expect(surface.getSelection()).not.toBe(""); - expect(surface.getSelectionPosition()?.end.y).toBe(39); - }); - - it("pastes the terminal selection, and only that, on a Linux middle click", async () => { - const harness = createHarness(); - const readText = vi.fn(async () => "clipboard text"); - vi.stubGlobal("navigator", { platform: "Linux x86_64", clipboard: { readText } }); - const surface = await harness.create(); - surface.write("hello world"); - harness.flushFrame(); - harness.pointer("pointerdown", 5, 1); - harness.pointer("pointermove", 37, 1); - harness.pointer("pointerup", 37, 0); - expect(surface.getSelection()).toBe("hello"); - - harness.onData.mockClear(); - harness.pointer("pointerdown", 5, 4, false, 1); - await vi.waitFor(() => expect(harness.onData).toHaveBeenCalled()); - expect(harness.onData.mock.calls.at(-1)?.[0]).toBe("hello"); - expect(surface.getSelection()).toBe("hello"); - - // Without a selection there is no primary buffer to paste; the clipboard - // holds what the user copied and must not be substituted. - surface.clearSelection(); - harness.pointer("pointerdown", 5, 4, false, 1); - expect(readText).not.toHaveBeenCalled(); - }); - - it("starts a selection when dragging from a link", async () => { - const harness = createHarness(); - const onLinkActivate = vi.fn(); - const surface = await harness.create({ onLinkActivate }); - surface.write("https://example.com"); - harness.flushFrame(); - - harness.pointer("pointerdown", 5, 1); - harness.pointer("pointermove", 37, 1); - harness.pointer("pointerup", 37, 0); - - expect(onLinkActivate).not.toHaveBeenCalled(); - expect(surface.getSelection()).toBe("https"); - }); - - it("keeps a link click active through slight pointer movement", async () => { - const harness = createHarness(); - const onLinkActivate = vi.fn(); - const surface = await harness.create({ onLinkActivate }); - surface.write("https://example.com"); - harness.flushFrame(); - - harness.pointer("pointerdown", 5, 1); - harness.pointer("pointermove", 6, 1); - harness.pointer("pointerup", 6, 0); - - expect(onLinkActivate).toHaveBeenCalledOnce(); - }); - - it("uses repeated link clicks for word and line selection", async () => { - const harness = createHarness(); - const onLinkActivate = vi.fn(); - const surface = await harness.create({ onLinkActivate }); - surface.write("https://example.com tail"); - harness.flushFrame(); - - harness.pointer("pointerdown", 5, 1); - harness.pointer("pointerup", 5, 0); - harness.pointer("pointerdown", 5, 1); - harness.pointer("pointerup", 5, 0); - expect(onLinkActivate).toHaveBeenCalledOnce(); - expect(surface.getSelection()).not.toBe(""); - - harness.pointer("pointerdown", 5, 1); - harness.pointer("pointerup", 5, 0); - expect(onLinkActivate).toHaveBeenCalledOnce(); - expect(surface.getSelection()).toBe("https://example.com tail"); - }); - - it("uses Shift drags over links for selection", async () => { - const harness = createHarness(); - const onLinkActivate = vi.fn(); - const surface = await harness.create({ onLinkActivate }); - surface.write("https://example.com"); - harness.flushFrame(); - - harness.pointer("pointerdown", 5, 1, true); - harness.pointer("pointermove", 37, 1, true); - harness.pointer("pointerup", 37, 0, true); - expect(onLinkActivate).not.toHaveBeenCalled(); - expect(surface.getSelection()).toBe("https"); - }); - - it("does not activate a link replaced before pointer release", async () => { - const harness = createHarness(); - const onLinkActivate = vi.fn(); - const surface = await harness.create({ onLinkActivate }); - surface.write("https://first.example"); - harness.flushFrame(); - - harness.pointer("pointerdown", 5, 1); - surface.write("\x1b[2J\x1b[Hhttps://second.example"); - harness.flushFrame(); - harness.pointer("pointerup", 5, 0); - - expect(onLinkActivate).not.toHaveBeenCalled(); - }); - - it("stops zero-size mounts and repaints when the same size returns", async () => { - const harness = createHarness(); - const surface = await harness.create(); - surface.focus(); - surface.write("visible"); - harness.flushFrame(); - harness.snapshot.mockClear(); - harness.paint.mockClear(); - harness.mount.clientWidth = 0; - surface.write("!"); - harness.flushFrame(); - harness.requestFrame.mockClear(); - for (let index = 0; index < 8; index += 1) surface.write("x"); - vi.advanceTimersByTime(2_000); - - expect(harness.snapshot).not.toHaveBeenCalled(); - expect(harness.paint).not.toHaveBeenCalled(); - expect(harness.requestFrame).not.toHaveBeenCalled(); - harness.mount.clientWidth = 168; - harness.resize(); - expect(harness.snapshot).toHaveBeenCalledTimes(1); - expect(harness.renderedSnapshot.rowData[0]?.text).toContain("visible!xxxxxxxx"); - expect(harness.paint).toHaveBeenCalled(); - }); - - it.each([false, true])( - "uses visibility %s if it changes while WASM initializes", - async (visible) => { - const harness = createHarness(); - let markCreated!: () => void; - const created = new Promise((resolve) => { - markCreated = resolve; - }); - let finishLoading!: () => void; - const release = new Promise((resolve) => { - finishLoading = resolve; - }); - const create = GhosttyTerminalCore.create; - vi.spyOn(GhosttyTerminalCore, "create").mockImplementation(async (...args) => { - const core = await create(...args); - markCreated(); - await release; - return core; - }); - let currentVisible = !visible; - const pending = harness.create({ - get visible() { - return currentVisible; - }, - }); - await created; - currentVisible = visible; - harness.paint.mockClear(); - finishLoading(); - const surface = await pending; - - expect(harness.snapshot).toHaveBeenCalledTimes(visible ? 1 : 0); - if (!visible) expect(harness.paint).not.toHaveBeenCalled(); - surface.write("ready\x1b[5n"); - expect(harness.onData).toHaveBeenCalledWith("\x1b[0n"); - if (!visible) { - expect(harness.frames.size).toBe(0); - surface.setVisible(true); - } else { - harness.flushFrame(); - } - expect(harness.renderedSnapshot.rowData[0]?.text).toContain("ready"); - }, - ); -}); - -const cell = (text: string): GhosttyCell => ({ - text, - wide: 0, - foreground: { r: 255, g: 255, b: 255 }, - background: { r: 0, g: 0, b: 0 }, - bold: false, - italic: false, - invisible: false, - strikethrough: false, - overline: false, - underline: false, - selected: false, -}); - -describe("isTerminalAltGraphText", () => { - it("defers printable AltGr output to the textarea input event", () => { - expect( - isTerminalAltGraphText({ - key: "@", - getModifierState: (modifier) => modifier === "AltGraph", - }), - ).toBe(true); - expect( - isTerminalAltGraphText({ - key: "ArrowRight", - getModifierState: (modifier) => modifier === "AltGraph", - }), - ).toBe(false); - }); -}); - -describe("terminalGridCellAt", () => { - const options = { - bounds: { left: 100, top: 200 }, - cols: 3, - rows: 2, - metrics: { width: 10, height: 20 }, - padding: 4, - originY: 24, - }; - - it("maps points inside the rendered grid without clamping its padding", () => { - expect(terminalGridCellAt({ ...options, clientX: 104, clientY: 224 })).toEqual({ - x: 0, - y: 0, - }); - expect(terminalGridCellAt({ ...options, clientX: 133, clientY: 263 })).toEqual({ - x: 2, - y: 1, - }); - expect(terminalGridCellAt({ ...options, clientX: 103, clientY: 224 })).toBeNull(); - expect(terminalGridCellAt({ ...options, clientX: 104, clientY: 223 })).toBeNull(); - expect(terminalGridCellAt({ ...options, clientX: 134, clientY: 224 })).toBeNull(); - expect(terminalGridCellAt({ ...options, clientX: 104, clientY: 264 })).toBeNull(); - }); -}); - -describe("shouldBlinkTerminalCursor", () => { - const blinking = { - focused: true, - cursorBlinking: true, - cursorVisible: true, - reducedMotion: false, - }; - - it("blinks a focused visible cursor the terminal asked to blink", () => { - expect(shouldBlinkTerminalCursor(blinking)).toBe(true); - }); - - it("holds the cursor steady when blinking would be unwanted", () => { - // Unfocused surfaces draw a steady hollow cursor, DECSCUSR steady styles and - // DEC mode 12 turn blinking off, a hidden cursor has nothing to toggle, and - // reduced-motion readers get no permanently animating element. - expect(shouldBlinkTerminalCursor({ ...blinking, focused: false })).toBe(false); - expect(shouldBlinkTerminalCursor({ ...blinking, cursorBlinking: false })).toBe(false); - expect(shouldBlinkTerminalCursor({ ...blinking, cursorVisible: false })).toBe(false); - expect(shouldBlinkTerminalCursor({ ...blinking, reducedMotion: true })).toBe(false); - }); -}); - -describe("terminalLinkAtPositionWithRange", () => { - it("maps terminal cells to UTF-16 offsets after a wide emoji", () => { - const cells = [ - cell("🙂"), - cell(""), - ...Array.from("https://t3.codes", (character) => cell(character)), - ]; - const row: GhosttyRow = { - cells, - text: cells - .map((value) => value.text || " ") - .join("") - .trimEnd(), - isWrapContinuation: false, - wrapsToNext: false, - }; - - expect(terminalLinkAtPositionWithRange([row], 0, 2)?.text).toBe("https://t3.codes"); - expect(terminalLinkAtPositionWithRange([row], 0, cells.length - 1)?.text).toBe( - "https://t3.codes", - ); - expect(terminalLinkAtPositionWithRange([row], 0, 0)).toBeNull(); - expect(terminalLinkAtPositionWithRange([row], 0, 8)?.range).toEqual({ - start: { x: 2, y: 0 }, - end: { x: cells.length - 1, y: 0 }, - }); - }); - - it("uses shared path matching and reconstructs soft-wrapped links", () => { - const row = (text: string, isWrapContinuation: boolean, wrapsToNext = false): GhosttyRow => ({ - cells: Array.from(text.padEnd(16), (character) => cell(character)), - text: text.trimEnd(), - isWrapContinuation, - wrapsToNext, - }); - const rows = [ - row("https://example.", false), - row("com/reference", true), - row("~/project/file", false), - row("C:\\repo\\file.ts", false), - ]; - - expect(terminalLinkAtPositionWithRange(rows, 0, 8)?.text).toBe("https://example.com/reference"); - expect(terminalLinkAtPositionWithRange(rows, 1, 4)?.text).toBe("https://example.com/reference"); - expect(terminalLinkAtPositionWithRange(rows, 2, 2)?.text).toBe("~/project/file"); - expect(terminalLinkAtPositionWithRange(rows, 3, 4)?.text).toBe("C:\\repo\\file.ts"); - expect(terminalLinkAtPositionWithRange(rows, 1, 4)).toEqual({ - text: "https://example.com/reference", - range: { - start: { x: 0, y: 0 }, - end: { x: 12, y: 1 }, - }, - }); - }); - - it("refuses links truncated at the viewport edges instead of mis-resolving", () => { - const row = (text: string, isWrapContinuation: boolean, wrapsToNext = false): GhosttyRow => ({ - cells: Array.from(text.padEnd(16), (character) => cell(character)), - text: text.trimEnd(), - isWrapContinuation, - wrapsToNext, - }); - // The head of the wrapped line scrolled above the viewport. - const headCut = [row("ple.com/missing", true), row("head", true)]; - expect(terminalLinkAtPositionWithRange(headCut, 0, 4)).toBeNull(); - // The bottom row soft-wraps on below the viewport. - const tailCut = [row("https://t3.codes", false, true)]; - expect(terminalLinkAtPositionWithRange(tailCut, 0, 8)).toBeNull(); - // A partial bottom row is provably complete and still resolves. - const complete = [row("https://t3.codes", false), row("", false)]; - expect(terminalLinkAtPositionWithRange(complete, 0, 8)?.text).toBe("https://t3.codes"); - // A wide grapheme earlier in the row must not break truncation detection: - // the soft-wrap flag decides, not string-length-versus-cell-count. - const wideFull: GhosttyRow = { - cells: [ - { ...cell("🙂"), wide: 1 }, - { ...cell(""), wide: 2 }, - ...Array.from("https://t3.code", (character) => cell(character)), - ], - text: "🙂 https://t3.code", - isWrapContinuation: false, - wrapsToNext: true, - }; - expect(terminalLinkAtPositionWithRange([wideFull], 0, 8)).toBeNull(); - // Unwritten trailing cells prove the bottom row is complete. - const unwrittenTail: GhosttyRow = { - cells: [ - ...Array.from("https://t3.codes", (character) => cell(character)), - cell(""), - cell(""), - ], - text: "https://t3.codes", - isWrapContinuation: false, - wrapsToNext: false, - }; - expect(terminalLinkAtPositionWithRange([unwrittenTail], 0, 8)?.text).toBe("https://t3.codes"); - }); -}); - -describe("isTerminalCopyShortcut", () => { - const event = (overrides: Partial[0]> = {}) => ({ - ctrlKey: false, - key: "c", - metaKey: false, - shiftKey: false, - ...overrides, - }); - - it("keeps Ctrl+C available for SIGINT on macOS", () => { - expect(isTerminalCopyShortcut(event({ ctrlKey: true }), "MacIntel")).toBe(false); - expect(isTerminalCopyShortcut(event({ metaKey: true }), "MacIntel")).toBe(true); - }); - - it("copies with Ctrl+C and Ctrl+Shift+C elsewhere", () => { - expect(isTerminalCopyShortcut(event({ ctrlKey: true }), "Linux x86_64")).toBe(true); - expect(isTerminalCopyShortcut(event({ ctrlKey: true, shiftKey: true }), "Linux x86_64")).toBe( - true, - ); - expect(isTerminalCopyShortcut(event({}), "Linux x86_64")).toBe(false); - }); - - it("uses the produced character instead of the physical key position", () => { - expect(isTerminalCopyShortcut(event({ key: "C", metaKey: true }), "MacIntel")).toBe(true); - expect(isTerminalCopyShortcut(event({ key: "j", metaKey: true }), "MacIntel")).toBe(false); - }); - - it("supports the conventional Ctrl+Insert copy shortcut", () => { - expect(isTerminalCopyShortcut(event({ key: "Insert", ctrlKey: true }), "Linux x86_64")).toBe( - true, - ); - expect(isTerminalCopyShortcut(event({ key: "Insert" }), "Linux x86_64")).toBe(false); - expect( - isTerminalCopyShortcut( - event({ key: "Insert", ctrlKey: true, shiftKey: true }), - "Linux x86_64", - ), - ).toBe(false); - expect(isTerminalCopyShortcut(event({ key: "Insert", ctrlKey: true }), "MacIntel")).toBe(false); - }); -}); - -describe("applyTerminalCopyEvent", () => { - it("writes the selection and claims the fallback when clipboardData is present", () => { - const setData = vi.fn(); - expect(applyTerminalCopyEvent("ls -la", { setData })).toEqual({ - preventDefault: true, - claimWriteFallback: true, - }); - expect(setData).toHaveBeenCalledWith("text/plain", "ls -la"); - }); - - it("leaves the writeText fallback alive when clipboardData is missing", () => { - // Electron's edit-menu Copy often delivers a copy event with no - // clipboardData. Claiming that event used to skip writeText and copy the - // empty IME textarea, which is the blank clipboard users paste. - expect(applyTerminalCopyEvent("ls -la", null)).toEqual({ - preventDefault: false, - claimWriteFallback: false, - }); - expect(applyTerminalCopyEvent("", { setData: vi.fn() })).toEqual({ - preventDefault: false, - claimWriteFallback: false, - }); - }); - - it("primes the current selection before a copy event with no clipboardData", () => { - const input = { - value: "stale", - selectionStart: 0, - selectionEnd: 0, - select() { - this.selectionStart = 0; - this.selectionEnd = this.value.length; - }, - }; - primeTerminalCopyInput(input, "git status"); - expect(applyTerminalCopyEvent("git status", null)).toEqual({ - preventDefault: false, - claimWriteFallback: false, - }); - expect(input.value).toBe("git status"); - expect(input.selectionStart).toBe(0); - expect(input.selectionEnd).toBe(10); - }); -}); - -describe("primeTerminalCopyInput", () => { - it("selects the Ghostty selection in the hidden textarea so native copy has text", () => { - const input = { - value: "", - selectionStart: 0, - selectionEnd: 0, - select() { - this.selectionStart = 0; - this.selectionEnd = this.value.length; - }, - }; - primeTerminalCopyInput(input, "git status"); - expect(input.value).toBe("git status"); - expect(input.selectionStart).toBe(0); - expect(input.selectionEnd).toBe(10); - clearPrimedTerminalCopyInput(input, "git status"); - expect(input.value).toBe(""); - }); - - it("does not wipe an IME candidate that replaced the primed copy", () => { - const input = { value: "", select() {} }; - primeTerminalCopyInput(input, "git status"); - input.value = "あ"; - clearPrimedTerminalCopyInput(input, "git status"); - expect(input.value).toBe("あ"); - }); -}); - -describe("isTerminalPasteShortcut", () => { - const event = (overrides: Partial[0]> = {}) => ({ - ctrlKey: false, - key: "v", - metaKey: false, - shiftKey: false, - ...overrides, - }); - - it("uses Cmd+V on macOS", () => { - expect(isTerminalPasteShortcut(event({ metaKey: true }), "MacIntel")).toBe(true); - expect(isTerminalPasteShortcut(event({ ctrlKey: true }), "MacIntel")).toBe(false); - }); - - it("preserves Ctrl+V and uses Ctrl+Shift+V elsewhere", () => { - expect(isTerminalPasteShortcut(event({ ctrlKey: true }), "Linux x86_64")).toBe(false); - expect(isTerminalPasteShortcut(event({ ctrlKey: true, shiftKey: true }), "Linux x86_64")).toBe( - true, - ); - }); - - it("supports the conventional Shift+Insert paste shortcut", () => { - expect(isTerminalPasteShortcut(event({ key: "Insert", shiftKey: true }), "Linux x86_64")).toBe( - true, - ); - expect(isTerminalPasteShortcut(event({ key: "Insert" }), "Linux x86_64")).toBe(false); - expect( - isTerminalPasteShortcut( - event({ key: "Insert", ctrlKey: true, shiftKey: true }), - "Linux x86_64", - ), - ).toBe(false); - expect(isTerminalPasteShortcut(event({ key: "Insert", shiftKey: true }), "MacIntel")).toBe( - false, - ); - }); -}); - -describe("isTerminalCompositionCommitInput", () => { - it("identifies browser composition follow-up input", () => { - expect(isTerminalCompositionCommitInput({ inputType: "" })).toBe(true); - expect(isTerminalCompositionCommitInput({ inputType: "insertCompositionText" })).toBe(true); - expect(isTerminalCompositionCommitInput({ inputType: "insertFromComposition" })).toBe(true); - }); - - it("keeps a fast repeated input as legitimate text", () => { - expect(isTerminalCompositionCommitInput({ inputType: "insertText" })).toBe(false); - }); -}); - -describe("isTerminalCompositionKey", () => { - const event = ( - overrides: Partial> = {}, - ) => ({ - isComposing: false, - key: "a", - keyCode: 65, - ...overrides, - }); - - it("treats in-progress IME keydowns as composition so the copy primer cannot wipe them", () => { - expect(isTerminalCompositionKey(event({ isComposing: true }), false)).toBe(true); - expect(isTerminalCompositionKey(event(), true)).toBe(true); - expect(isTerminalCompositionKey(event({ key: "Process" }), false)).toBe(true); - expect(isTerminalCompositionKey(event({ keyCode: 229 }), false)).toBe(true); - }); - - it("lets ordinary keydowns clear a primed copy", () => { - expect(isTerminalCompositionKey(event(), false)).toBe(false); - }); -}); - -describe("application mouse reporting", () => { - const event = (overrides: Partial[1]> = {}) => ({ - ctrlKey: false, - metaKey: false, - shiftKey: false, - ...overrides, - }); - - it("keeps Shift and link activation modifiers available to the browser", () => { - expect(shouldReportTerminalMouse(true, event())).toBe(true); - expect(shouldReportTerminalMouse(true, event({ shiftKey: true }))).toBe(false); - expect(shouldReportTerminalMouse(true, event({ ctrlKey: true }))).toBe(false); - expect(shouldReportTerminalMouse(true, event({ metaKey: true }))).toBe(false); - expect(shouldReportTerminalMouse(false, event())).toBe(false); - }); - - it("maps browser buttons to Ghostty's button enum", () => { - expect([0, 1, 2, 3, 4, 5].map(ghosttyMouseButton)).toEqual([1, 3, 2, 4, 5, null]); - }); - - it("drops repeated motion reports until another mouse action resets the cell", () => { - const first = resolveTerminalMouseData("motion", "\u001b[<35;8;4M", ""); - expect(first).toEqual({ send: true, nextMotionData: "\u001b[<35;8;4M" }); - - const duplicate = resolveTerminalMouseData("motion", "\u001b[<35;8;4M", first.nextMotionData); - expect(duplicate).toEqual({ send: false, nextMotionData: "\u001b[<35;8;4M" }); - - const press = resolveTerminalMouseData("press", "\u001b[<0;8;4M", duplicate.nextMotionData); - expect(press).toEqual({ send: true, nextMotionData: "" }); - - expect(resolveTerminalMouseData("motion", "\u001b[<35;8;4M", press.nextMotionData)).toEqual({ - send: true, - nextMotionData: "\u001b[<35;8;4M", - }); - }); - - it("clears the motion baseline when application mouse tracking changes", () => { - expect(resolveTerminalMouseTrackingState(true, false, "\u001b[<35;8;4M")).toEqual({ - tracking: false, - motionData: "", - }); - expect(resolveTerminalMouseTrackingState(false, true, "\u001b[<35;8;4M")).toEqual({ - tracking: true, - motionData: "", - }); - expect(resolveTerminalMouseTrackingState(true, true, "\u001b[<35;8;4M")).toEqual({ - tracking: true, - motionData: "\u001b[<35;8;4M", - }); - expect(resolveTerminalMouseTrackingState(false, false, "\u001b[<35;8;4M")).toEqual({ - tracking: false, - motionData: "\u001b[<35;8;4M", - }); - }); -}); - -describe("terminal font resolution", () => { - it("validates the requested face after its styles load", async () => { - let loaded = false; - const load = vi.fn(async () => { - loaded = true; - return []; - }); - const resolve = vi.fn(() => { - expect(loaded).toBe(true); - return DEFAULT_TERMINAL_FONT_FAMILY; - }); - - await expect( - loadTerminalFontFamily("Proportional Test", 12, { - load, - resolve, - }), - ).resolves.toBe(DEFAULT_TERMINAL_FONT_FAMILY); - expect(load).toHaveBeenCalledTimes(4); - expect(resolve).toHaveBeenCalledWith("Proportional Test"); - }); - - it("keeps the glyph fallbacks behind a custom text face", () => { - expect(terminalFontFamily()).toBe(DEFAULT_TERMINAL_FONT_FAMILY); - expect(terminalFontFamily(" ")).toBe(DEFAULT_TERMINAL_FONT_FAMILY); - const custom = terminalFontFamily('"Fira Code"'); - expect(custom.startsWith('"Fira Code", ')).toBe(true); - expect(custom).toContain('"Symbols Nerd Font Mono"'); - expect(custom.endsWith("monospace")).toBe(true); - }); - - it("ignores proportional families the cell grid cannot lay out", () => { - // jsdom has no canvas metrics, so the probe answers "monospace" and the - // family is kept; the guard is exercised in the browser instead. Assert the - // shape stays intact so a rejected face still yields a usable stack. - const stack = terminalFontFamily("Helvetica Neue"); - expect(stack.endsWith("monospace")).toBe(true); - }); - - it("quotes families the canvas font shorthand would otherwise reject", () => { - expect(terminalFontFamily("3270 Nerd Font").startsWith('"3270 Nerd Font", ')).toBe(true); - expect(terminalFontFamily("M+ 1m").startsWith('"M+ 1m", ')).toBe(true); - expect(terminalFontFamily("Cascadia Code, Menlo").startsWith('"Cascadia Code", Menlo, ')).toBe( - true, - ); - expect(terminalFontFamily(" , ")).toBe(DEFAULT_TERMINAL_FONT_FAMILY); - }); - - it("clamps requested font sizes to the supported range", () => { - expect(terminalFontSize()).toBe(DEFAULT_TERMINAL_FONT_SIZE); - expect(terminalFontSize(Number.NaN)).toBe(DEFAULT_TERMINAL_FONT_SIZE); - expect(terminalFontSize(13.4)).toBe(13); - expect(terminalFontSize(2)).toBe(6); - expect(terminalFontSize(90)).toBe(32); - }); -}); - -describe("terminalContentOriginY", () => { - it("stays top-anchored like a fresh terminal until scrollback exists", () => { - expect(terminalContentOriginY(100, 4, 5, 16, false)).toBe(4); - }); - - it("pins the grid to the bottom by moving the sub-row slack above row 0", () => { - // 100px mount, 4px padding, 5 rows of 16px: 92 - 80 = 12px slack on top. - expect(terminalContentOriginY(100, 4, 5, 16, true)).toBe(16); - // Exact fit keeps the origin at the padding. - expect(terminalContentOriginY(88, 4, 5, 16, true)).toBe(4); - // A mount smaller than the grid never pushes the origin above the padding. - expect(terminalContentOriginY(80, 4, 5, 16, true)).toBe(4); - }); - - it("keeps the prompt stationary while a drag crosses row boundaries", () => { - // Growing the mount pixel by pixel: the bottom edge (origin + rows*cell) - // tracks the mount bottom exactly until a new row fits. - for (let height = 88; height < 104; height += 1) { - const rows = Math.max(1, Math.floor((height - 8) / 16)); - const origin = terminalContentOriginY(height, 4, rows, 16, true); - expect(origin + rows * 16).toBe(height - 4); - } - }); -}); - -describe("terminalWheelDeltaRows", () => { - it("converts line-mode deltas into whole rows", () => { - const result = terminalWheelDeltaRows({ deltaY: 3, deltaMode: 1 }, 16, 24, 0); - expect(result.rows).toBe(3); - expect(result.remainder).toBe(0); - }); - - it("accumulates fractional pixel deltas across events", () => { - let remainder = 0; - let scrolled = 0; - for (let index = 0; index < 4; index += 1) { - const result = terminalWheelDeltaRows({ deltaY: 5, deltaMode: 0 }, 16, 24, remainder); - remainder = result.remainder; - scrolled += result.rows; - } - expect(scrolled).toBe(1); - expect(remainder).toBeCloseTo(4 / 16); - }); - - it("keeps direction for negative page-mode deltas", () => { - const result = terminalWheelDeltaRows({ deltaY: -1, deltaMode: 2 }, 16, 24, 0); - expect(result.rows).toBe(-24); - expect(result.remainder).toBe(0); - }); -}); - -describe("terminalWheelArrowData", () => { - it("emits one arrow per row honoring application cursor keys", () => { - expect(terminalWheelArrowData(-2, false)).toBe("\u001b[A\u001b[A"); - expect(terminalWheelArrowData(3, false)).toBe("\u001b[B\u001b[B\u001b[B"); - expect(terminalWheelArrowData(-1, true)).toBe("\u001bOA"); - expect(terminalWheelArrowData(0, true)).toBe(""); - }); -}); - -describe("advanceTerminalSelectionClickSequence", () => { - it("recognizes stationary double and triple pointer presses without PointerEvent.detail", () => { - const first = advanceTerminalSelectionClickSequence(null, { - clientX: 20, - clientY: 30, - timeStamp: 1_000, - }); - const second = advanceTerminalSelectionClickSequence(first, { - clientX: 22, - clientY: 29, - timeStamp: 1_200, - }); - const third = advanceTerminalSelectionClickSequence(second, { - clientX: 21, - clientY: 31, - timeStamp: 1_400, - }); - - expect([first.count, second.count, third.count]).toEqual([1, 2, 3]); - }); - - it("starts over after movement, delay, or a completed triple click", () => { - const previous = { count: 3, time: 1_000, x: 20, y: 30 }; - expect( - advanceTerminalSelectionClickSequence(previous, { - clientX: 20, - clientY: 30, - timeStamp: 1_100, - }).count, - ).toBe(1); - expect( - advanceTerminalSelectionClickSequence(previous, { - clientX: 30, - clientY: 30, - timeStamp: 1_100, - }).count, - ).toBe(1); - expect( - advanceTerminalSelectionClickSequence(previous, { - clientX: 20, - clientY: 30, - timeStamp: 1_501, - }).count, - ).toBe(1); - }); -}); - -describe("terminal scrollbar", () => { - it("maps Ghostty's viewport state to a proportional thumb", () => { - expect(terminalScrollbarGeometry({ total: 100, offset: 40, len: 20 }, 200)).toEqual({ - thumbHeight: 40, - thumbTop: 80, - maxOffset: 80, - }); - expect(terminalScrollbarGeometry({ total: 100, offset: 0, len: 100 }, 200)).toBeNull(); - }); - - it("keeps the thumb usable for large scrollback and maps dragging back to rows", () => { - const state = { total: 10_000, offset: 0, len: 20 }; - expect(terminalScrollbarGeometry(state, 200)).toEqual({ - thumbHeight: 18, - thumbTop: 0, - maxOffset: 9_980, - }); - expect(terminalScrollbarOffsetAtPointer(state, 200, 191, 9)).toBe(9_980); - }); -}); diff --git a/apps/web/src/terminal/ghostty/surface.ts b/apps/web/src/terminal/ghostty/surface.ts deleted file mode 100644 index 39ae0ebb024ae2c5ef032359043bb0d34c27a77c..0000000000000000000000000000000000000000 --- a/apps/web/src/terminal/ghostty/surface.ts +++ /dev/null @@ -1,2195 +0,0 @@ -import { isMacPlatform } from "../../lib/utils"; -import { SELECTION_MULTI_CLICK_INTERVAL_MS } from "../../lib/selectionActions"; -import { collectWrappedTerminalLinkLine, extractTerminalLinks } from "../../terminal-links"; -import { - GhosttyTerminalCore, - type GhosttyScrollbar, - type GhosttySnapshot, - type GhosttyTheme, -} from "./core"; -import { - measureGhosttyCell, - renderGhosttySnapshot, - terminalGridSize, - type GhosttyCellRange, - type GhosttyCellMetrics, -} from "./renderer"; -import symbolsFontUrl from "./fonts/SymbolsNerdFontMono-Regular.woff2?url"; -import { isMonospaceFamily } from "../../appearanceFonts"; -import { observeResize } from "../../lib/observeResize"; - -export const DEFAULT_TERMINAL_FONT_SIZE = 12; -const MIN_TERMINAL_FONT_SIZE = 6; -const MAX_TERMINAL_FONT_SIZE = 32; -// The glyph fallbacks only supply symbols the text faces are missing (powerline -// separators, devicons, and other private-use prompt symbols), so shells -// configured for a locally installed Nerd Font keep their prompt glyphs no -// matter which text face is active. -const TERMINAL_GLYPH_FALLBACKS = - '"Symbols Nerd Font Mono", "Symbols Nerd Font", "JetBrainsMono Nerd Font", ' + - '"JetBrainsMono NF", "FiraCode Nerd Font", "Hack Nerd Font", "MesloLGS NF", ' + - '"CaskaydiaCove Nerd Font", "PowerlineSymbols", monospace'; -// The platform's own monospace faces; concrete names only, because an -// unknown keyword (like ui-monospace) makes canvas font shorthand parsing -// reject the whole string. -export const DEFAULT_TERMINAL_FONT_FAMILY = - '"SF Mono", "SFMono-Regular", Menlo, Consolas, "Liberation Mono", ' + TERMINAL_GLYPH_FALLBACKS; -const CONTENT_PADDING = 4; -const MIN_SCROLLBAR_THUMB_HEIGHT = 18; -/** Half a blink cycle: the visible and hidden phases are equally long. */ -const CURSOR_BLINK_INTERVAL_MS = 500; -const TERMINAL_FONT_LOAD_TEXT = "iMW0@# ."; -const TERMINAL_FONT_LOAD_VARIANTS = [ - "normal 400", - "normal 700", - "italic 400", - "italic 700", -] as const; - -/** Requested terminal font; omitted fields fall back to the defaults. */ -export interface GhosttyTerminalFont { - readonly family?: string; - readonly size?: number; -} - -let symbolsFontLoad: Promise | null = null; - -/** - * Register the bundled symbols-only Nerd Font once per page. It loads lazily - * with the first terminal, and because it carries no regular text glyphs it - * composes with any text face without changing metrics — prompt symbols and - * devicons render even on machines without a locally installed Nerd Font. - */ -function ensureTerminalSymbolsFont(): Promise { - if (symbolsFontLoad !== null) return symbolsFontLoad; - symbolsFontLoad = (async () => { - try { - const face = new FontFace("Symbols Nerd Font Mono", `url(${symbolsFontUrl})`); - document.fonts.add(await face.load()); - } catch { - // Locally installed fallback faces still apply. - } - })(); - return symbolsFontLoad; -} - -function quoteTerminalFontFamilies(list: string): string { - return list - .split(",") - .map((name) => { - const bare = name.trim(); - if (bare.length === 0) return ""; - if (/^(['"]).*\1$/.test(bare)) return bare; - if (/^[a-zA-Z][a-zA-Z0-9-]*$/.test(bare)) return bare; - return `"${bare.replaceAll('"', "")}"`; - }) - .filter((name) => name.length > 0) - .join(", "); -} - -function uncheckedTerminalFontFamily(family?: string): string { - const custom = family === undefined ? "" : quoteTerminalFontFamilies(family); - return custom.length === 0 - ? DEFAULT_TERMINAL_FONT_FAMILY - : `${custom}, ${TERMINAL_GLYPH_FALLBACKS}`; -} - -export function terminalFontFamily(family?: string): string { - // Quote non-ident names ("3270 Nerd Font", "M+ 1m"): an unquoted one makes - // the whole canvas font string invalid and the assignment silently no-ops. - const custom = family === undefined ? "" : quoteTerminalFontFamilies(family); - if (custom.length === 0) return DEFAULT_TERMINAL_FONT_FAMILY; - // The grid places the cursor and selection on one cell advance, so a - // proportional face would draw its text narrower than its own cells. Refuse - // it here rather than render a ragged grid with a stranded cursor. - if (!isMonospaceFamily(custom)) return DEFAULT_TERMINAL_FONT_FAMILY; - // A custom face keeps the glyph fallbacks so prompt symbols stay covered. - return uncheckedTerminalFontFamily(custom); -} - -/** Load every style the renderer can request, then validate the actual face. */ -export async function loadTerminalFontFamily( - family: string | undefined, - size: number, - environment?: { - readonly load: (font: string, text: string) => Promise; - readonly resolve: (family: string | undefined) => string; - }, -): Promise { - const candidate = uncheckedTerminalFontFamily(family); - const load = - environment?.load ?? ((font: string, text: string) => document.fonts.load(font, text)); - try { - await Promise.all( - TERMINAL_FONT_LOAD_VARIANTS.map((variant) => - load(`${variant} ${size}px ${candidate}`, TERMINAL_FONT_LOAD_TEXT), - ), - ); - } catch { - // The fixed-width fallback stack remains available if a face cannot load. - } - return (environment?.resolve ?? terminalFontFamily)(family); -} - -export function terminalFontSize(size?: number): number { - if (size === undefined || !Number.isFinite(size)) return DEFAULT_TERMINAL_FONT_SIZE; - return Math.max(MIN_TERMINAL_FONT_SIZE, Math.min(MAX_TERMINAL_FONT_SIZE, Math.round(size))); -} - -/** - * Whether the cursor should keep toggling. An unfocused surface draws a steady - * hollow cursor instead of blinking, and a reduced-motion reader gets a steady - * cursor too rather than a permanently animating element. - */ -export function shouldBlinkTerminalCursor(state: { - readonly focused: boolean; - readonly cursorBlinking: boolean; - readonly cursorVisible: boolean; - readonly reducedMotion: boolean; -}): boolean { - return state.focused && state.cursorBlinking && state.cursorVisible && !state.reducedMotion; -} - -/** - * Vertical origin of the grid inside the mount. While content is shorter than - * the viewport the grid sits at the top like a fresh terminal. Once scrollback - * exists the prompt lives on the bottom row, so the grid anchors to the bottom - * edge instead: the sub-row remainder moves above row 0 and resizing within a - * row boundary keeps the prompt pinned instead of snapping up and down. - */ -export function terminalContentOriginY( - mountHeight: number, - padding: number, - rows: number, - cellHeight: number, - anchorBottom: boolean, -): number { - if (!anchorBottom) return padding; - const slack = mountHeight - padding * 2 - rows * cellHeight; - return padding + Math.max(0, slack); -} - -export interface TerminalScrollbarGeometry { - readonly thumbHeight: number; - readonly thumbTop: number; - readonly maxOffset: number; -} - -export function terminalScrollbarGeometry( - state: GhosttyScrollbar, - trackHeight: number, -): TerminalScrollbarGeometry | null { - const total = Math.max(0, state.total); - const len = Math.max(0, Math.min(state.len, total)); - const maxOffset = Math.max(0, total - len); - if (trackHeight <= 0 || len <= 0 || maxOffset === 0) return null; - const thumbHeight = Math.min( - trackHeight, - Math.max(MIN_SCROLLBAR_THUMB_HEIGHT, (trackHeight * len) / total), - ); - const travel = Math.max(0, trackHeight - thumbHeight); - const offset = Math.max(0, Math.min(state.offset, maxOffset)); - return { - thumbHeight, - thumbTop: travel * (offset / maxOffset), - maxOffset, - }; -} - -export function terminalScrollbarOffsetAtPointer( - state: GhosttyScrollbar, - trackHeight: number, - pointerY: number, - pointerOffset: number, -): number { - const geometry = terminalScrollbarGeometry(state, trackHeight); - if (geometry === null) return 0; - const travel = Math.max(0, trackHeight - geometry.thumbHeight); - if (travel === 0) return 0; - const thumbTop = Math.max(0, Math.min(pointerY - pointerOffset, travel)); - return Math.round((thumbTop / travel) * geometry.maxOffset); -} - -export function terminalGridCellAt(options: { - bounds: { left: number; top: number }; - clientX: number; - clientY: number; - cols: number; - rows: number; - metrics: Pick; - padding: number; - originY: number; -}): { x: number; y: number } | null { - const { bounds, clientX, clientY, cols, rows, metrics, padding, originY } = options; - const gridX = clientX - bounds.left - padding; - const gridY = clientY - bounds.top - originY; - if (gridX < 0 || gridY < 0 || gridX >= cols * metrics.width || gridY >= rows * metrics.height) { - return null; - } - return { - x: Math.floor(gridX / metrics.width), - y: Math.floor(gridY / metrics.height), - }; -} - -function terminalRowText(row: GhosttySnapshot["rowData"][number], trimRight: boolean): string { - const text = row.cells.map((cell) => cell.text || " ").join(""); - return trimRight ? text.trimEnd() : text; -} - -function terminalColumnOffset(row: GhosttySnapshot["rowData"][number], column: number): number { - let offset = 0; - for (let cellIndex = 0; cellIndex < column; cellIndex += 1) { - offset += row.cells[cellIndex]?.text.length || 1; - } - return offset; -} - -export interface TerminalLinkWithRange { - readonly text: string; - readonly range: GhosttyCellRange; -} - -function isSameTerminalLink( - left: TerminalLinkWithRange, - right: TerminalLinkWithRange | null, -): boolean { - return ( - right?.text === left.text && - right.range.start.x === left.range.start.x && - right.range.start.y === left.range.start.y && - right.range.end.x === left.range.end.x && - right.range.end.y === left.range.end.y - ); -} - -function terminalColumnAtOffset(row: GhosttySnapshot["rowData"][number], offset: number): number { - for (let column = 0; column < row.cells.length; column += 1) { - const nextOffset = terminalColumnOffset(row, column + 1); - if (offset < nextOffset) return column; - } - return Math.max(0, row.cells.length - 1); -} - -export function terminalLinkAtPositionWithRange( - rows: GhosttySnapshot["rowData"], - rowIndex: number, - column: number, -): TerminalLinkWithRange | null { - const wrappedLine = collectWrappedTerminalLinkLine(rowIndex + 1, (index) => { - const row = rows[index]; - if (!row) return null; - return { - isWrapped: row.isWrapContinuation, - translateToString: (trimRight = false) => terminalRowText(row, trimRight), - }; - }); - if (!wrappedLine) return null; - // Only viewport rows are available: a wrapped line whose head scrolled above - // the viewport would resolve a truncated match into a wrong link. - const firstSegment = wrappedLine.segments[0]; - if (firstSegment && rows[firstSegment.bufferLineNumber - 1]?.isWrapContinuation) { - return null; - } - const segment = wrappedLine.segments.find((value) => value.bufferLineNumber === rowIndex + 1); - const row = rows[rowIndex]; - if (!segment || !row) return null; - const lastSegment = wrappedLine.segments.at(-1); - const lastRow = lastSegment ? rows[lastSegment.bufferLineNumber - 1] : undefined; - // Ghostty's soft-wrap flag is authoritative: when the last collected row - // still wraps onward, its continuation is outside the viewport. - const continuesBelowViewport = lastRow !== undefined && lastRow.wrapsToNext; - const offset = segment.startIndex + terminalColumnOffset(row, column); - for (const match of extractTerminalLinks(wrappedLine.text)) { - if (offset >= match.start && offset < match.end) { - // A truncated tail must not activate as a complete link. - if (match.end === wrappedLine.text.length && continuesBelowViewport) return null; - const startSegment = wrappedLine.segments.find( - (value) => match.start >= value.startIndex && match.start < value.endIndex, - ); - const endSegment = wrappedLine.segments.find( - (value) => match.end - 1 >= value.startIndex && match.end - 1 < value.endIndex, - ); - const startRow = startSegment ? rows[startSegment.bufferLineNumber - 1] : undefined; - const endRow = endSegment ? rows[endSegment.bufferLineNumber - 1] : undefined; - if (!startSegment || !endSegment || !startRow || !endRow) return null; - return { - text: match.text, - range: { - start: { - x: terminalColumnAtOffset(startRow, match.start - startSegment.startIndex), - y: startSegment.bufferLineNumber - 1, - }, - end: { - x: terminalColumnAtOffset(endRow, match.end - 1 - endSegment.startIndex), - y: endSegment.bufferLineNumber - 1, - }, - }, - }; - } - } - return null; -} - -export function isTerminalCopyShortcut( - event: Pick, - platform = navigator.platform, -) { - const key = event.key.toLowerCase(); - if (key === "insert" && !isMacPlatform(platform)) { - return event.ctrlKey && !event.shiftKey && !event.metaKey; - } - if (key !== "c") return false; - return isMacPlatform(platform) ? event.metaKey : event.ctrlKey; -} - -/** - * Canvas terminals have no DOM selection. Native copy and Electron's Edit - * menu `role: "copy"` both read the focused textarea, so an empty IME field - * writes blankness to the clipboard. Park the Ghostty selection there first. - */ -export function primeTerminalCopyInput( - input: Pick, - selection: string, -): void { - input.value = selection; - if (selection.length === 0) return; - input.select(); -} - -export function clearPrimedTerminalCopyInput( - input: Pick, - primedSelection: string, -): void { - // Only blank the copy we parked. The same textarea holds the IME candidate; - // wiping whatever is there would cancel CJK composition. - if (primedSelection.length === 0 || input.value !== primedSelection) return; - input.value = ""; -} - -/** - * Only a copy event that actually received the selection may cancel the - * clipboard.writeText fallback. Claiming without clipboardData (Electron's - * menu Copy) used to preventDefault an empty write and skip the fallback, - * which is how Cmd+C copied blankness. - */ -export function applyTerminalCopyEvent( - selection: string, - clipboardData: { setData: (type: string, data: string) => void } | null | undefined, -): { preventDefault: boolean; claimWriteFallback: boolean } { - if (selection.length === 0 || !clipboardData) { - return { preventDefault: false, claimWriteFallback: false }; - } - clipboardData.setData("text/plain", selection); - return { preventDefault: true, claimWriteFallback: true }; -} - -export function isTerminalPasteShortcut( - event: Pick, - platform = navigator.platform, -) { - const key = event.key.toLowerCase(); - if (key === "insert" && !isMacPlatform(platform)) { - return event.shiftKey && !event.ctrlKey && !event.metaKey; - } - if (key !== "v") return false; - return isMacPlatform(platform) ? event.metaKey : event.ctrlKey && event.shiftKey; -} - -/** - * Middle-click paste is an X11/Wayland convention. macOS and Windows have no - * primary selection and use the button for autoscroll, so only desktops that - * expect the gesture get it. - */ -function isMiddleClickPastePlatform(): boolean { - return /linux|bsd/i.test(navigator.platform); -} - -export function isTerminalCompositionCommitInput(event: Pick): boolean { - return ( - event.inputType === "" || - event.inputType === "insertCompositionText" || - event.inputType === "insertFromComposition" - ); -} - -/** IME keydowns must not touch the hidden textarea; it holds the candidate. */ -export function isTerminalCompositionKey( - event: Pick, - composing: boolean, -): boolean { - return event.isComposing || composing || event.key === "Process" || event.keyCode === 229; -} - -export function isTerminalAltGraphText( - event: Pick, -): boolean { - return event.getModifierState("AltGraph") && [...event.key].length === 1; -} - -export function shouldReportTerminalMouse( - tracking: boolean, - event: Pick, -): boolean { - return tracking && !event.shiftKey && !event.ctrlKey && !event.metaKey; -} - -type TerminalMouseAction = "press" | "release" | "motion"; - -export function resolveTerminalMouseData( - action: TerminalMouseAction, - data: string, - previousMotionData: string, -): { readonly send: boolean; readonly nextMotionData: string } { - const nextMotionData = action === "motion" ? data : ""; - return { - send: data.length > 0 && (action !== "motion" || data !== previousMotionData), - nextMotionData, - }; -} - -export function resolveTerminalMouseTrackingState( - previousTracking: boolean, - tracking: boolean, - motionData: string, -): { readonly tracking: boolean; readonly motionData: string } { - return { - tracking, - motionData: previousTracking === tracking ? motionData : "", - }; -} - -export function terminalWheelDeltaRows( - event: Pick, - cellHeight: number, - viewportRows: number, - remainder: number, -): { readonly rows: number; readonly remainder: number } { - // deltaMode: 0 pixels, 1 lines, 2 pages. - const pixels = - event.deltaMode === 1 - ? event.deltaY * cellHeight - : event.deltaMode === 2 - ? event.deltaY * viewportRows * cellHeight - : event.deltaY; - const total = remainder + pixels / cellHeight; - const rows = Math.trunc(total); - return { rows, remainder: total - rows }; -} - -export function terminalWheelArrowData(rows: number, applicationCursorKeys: boolean): string { - if (rows === 0) return ""; - const sequence = - rows < 0 - ? applicationCursorKeys - ? "\u001bOA" - : "\u001b[A" - : applicationCursorKeys - ? "\u001bOB" - : "\u001b[B"; - return sequence.repeat(Math.abs(rows)); -} - -export function ghosttyMouseButton(button: number): number | null { - switch (button) { - case 0: - return 1; - case 1: - return 3; - case 2: - return 2; - case 3: - return 4; - case 4: - return 5; - default: - return null; - } -} - -export interface TerminalSelectionClickSequence { - readonly count: number; - readonly time: number; - readonly x: number; - readonly y: number; -} - -const TERMINAL_LINK_DRAG_THRESHOLD_PX = 4; - -export function advanceTerminalSelectionClickSequence( - previous: TerminalSelectionClickSequence | null, - event: Pick, -): TerminalSelectionClickSequence { - const repeats = - previous !== null && - event.timeStamp - previous.time <= SELECTION_MULTI_CLICK_INTERVAL_MS && - Math.hypot(event.clientX - previous.x, event.clientY - previous.y) <= - TERMINAL_LINK_DRAG_THRESHOLD_PX; - return { - count: repeats ? (previous.count >= 3 ? 1 : previous.count + 1) : 1, - time: event.timeStamp, - x: event.clientX, - y: event.clientY, - }; -} - -export interface GhosttySelectionPosition { - readonly start: { readonly x: number; readonly y: number }; - readonly end: { readonly x: number; readonly y: number }; -} - -export interface GhosttyTerminalSurfaceOptions { - readonly theme: GhosttyTheme; - readonly font?: GhosttyTerminalFont; - /** Read after font and WASM loading. Hosts can supply a getter for the latest value. */ - readonly visible?: boolean; - readonly onData: (data: string) => void; - readonly onResize: (cols: number, rows: number) => void; - readonly onSelectionChange: () => void; - readonly beforeKey: (event: KeyboardEvent) => boolean; - readonly onLinkActivate: (text: string, event: MouseEvent) => void; - readonly canActivateLink?: (text: string) => boolean; - /** - * A right-click the running application did not claim through mouse - * reporting. The host owns the menu, so it also owns preventing the browser - * default — whose Paste entry can never reach a canvas terminal. - */ - readonly onContextMenu?: (event: MouseEvent) => void; -} - -export class GhosttyTerminalSurface { - readonly canvas: HTMLCanvasElement; - readonly input: HTMLTextAreaElement; - readonly scrollbar: HTMLDivElement; - cols = 1; - rows = 1; - - private readonly mount: HTMLElement; - private readonly context: CanvasRenderingContext2D; - private readonly core: GhosttyTerminalCore; - private readonly options: GhosttyTerminalSurfaceOptions; - private visible: boolean; - private hasSize = false; - private metrics: GhosttyCellMetrics; - private fontFamily: string; - private requestedFontFamily: string | undefined; - private fontSize: number; - private fontEpoch = 0; - private pendingFontEpoch: number | null = null; - private readonly stopObservingResize: () => void; - private readonly scrollbarThumb: HTMLDivElement; - private snapshot: GhosttySnapshot | null = null; - private frame = 0; - private cursorTimer: number | null = null; - private compositionInputToSuppress: string | null = null; - private compositionSuppressionTimer: number | null = null; - private cursorOn = true; - private renderedCursorY: number | null = null; - private forceFullRender = true; - private scrollbarDirty = true; - private scrollbarState: GhosttyScrollbar | null = null; - private scrollbarPointerId: number | null = null; - private scrollbarPointerOffset = 0; - private disposed = false; - private resizeNotifyTimer: number | null = null; - private originY = CONTENT_PADDING; - private mountHeight = 0; - private selectionEnd: { x: number; y: number } | null = null; - private selectionAnchorScreen: { x: number; y: number } | null = null; - private selectionEndScreen: { x: number; y: number } | null = null; - private selectionMode: "cell" | "word" | "line" = "cell"; - // Word/line selection base in screen coordinates so streaming output cannot - // shift the origin of a drag selection. - private selectionBase: { - start: { x: number; y: number }; - end: { x: number; y: number }; - } | null = null; - private selectionScrollTimer: number | null = null; - private selectionScrollDelta = 0; - private selectionPointer: { x: number; y: number } | null = null; - private mouseReportingPointerId: number | null = null; - private mouseReportingButton: number | null = null; - private linkActivationPointerId: number | null = null; - private linkActivationLink: TerminalLinkWithRange | null = null; - private linkActivationOrigin: { - x: number; - y: number; - clickCount: number; - } | null = null; - private hoveredLink: TerminalLinkWithRange | null = null; - private hoverPointer: { x: number; y: number } | null = null; - private selectionClickSequence: TerminalSelectionClickSequence | null = null; - private selectionMoved = false; - private composing = false; - private focused = false; - private resizeNotified = false; - private canvasConfigured = false; - private theme: GhosttyTheme; - private readonly suppressedKeyCodes = new Set(); - private pasteShortcutToken = 0; - private copyShortcutToken = 0; - private clearSelectionAfterCopy = false; - private primedCopySelection = ""; - private wheelRemainder = 0; - private touchScroll: { - pointerId: number; - startX: number; - startY: number; - lastY: number; - remainder: number; - moved: boolean; - } | null = null; - private lastMouseMotionData = ""; - private mouseAnyEventTracking = false; - private dprMedia: MediaQueryList | null = null; - // Read live on every blink decision, and watched so that dropping the - // preference restarts a blink cycle that has no timer left to notice it. - private readonly reducedMotionMedia = window.matchMedia?.("(prefers-reduced-motion: reduce)"); - private inputLeft = -1; - private inputTop = -1; - - private constructor( - mount: HTMLElement, - canvas: HTMLCanvasElement, - input: HTMLTextAreaElement, - scrollbar: HTMLDivElement, - scrollbarThumb: HTMLDivElement, - context: CanvasRenderingContext2D, - core: GhosttyTerminalCore, - metrics: GhosttyCellMetrics, - fontFamily: string, - options: GhosttyTerminalSurfaceOptions, - ) { - this.mount = mount; - this.canvas = canvas; - this.input = input; - this.scrollbar = scrollbar; - this.scrollbarThumb = scrollbarThumb; - this.context = context; - this.core = core; - this.mouseAnyEventTracking = core.isMouseAnyEventTracking(); - this.metrics = metrics; - this.options = options; - this.visible = options.visible ?? true; - this.theme = options.theme; - this.fontFamily = fontFamily; - this.requestedFontFamily = options.font?.family; - this.fontSize = terminalFontSize(options.font?.size); - this.installEvents(); - this.watchDevicePixelRatio(); - this.reducedMotionMedia?.addEventListener("change", this.onReducedMotionChange); - document.fonts.addEventListener("loadingdone", this.onFontsLoaded); - this.stopObservingResize = observeResize(mount, () => this.fit()); - } - - static async create( - mount: HTMLElement, - options: GhosttyTerminalSurfaceOptions, - ): Promise { - const canvas = document.createElement("canvas"); - canvas.className = "block size-full cursor-text"; - canvas.style.touchAction = "pan-x pinch-zoom"; - canvas.setAttribute("aria-hidden", "true"); - - const input = document.createElement("textarea"); - input.className = "t3-ghostty-input"; - input.setAttribute("aria-label", "Terminal input"); - input.autocapitalize = "off"; - input.autocomplete = "off"; - input.spellcheck = false; - input.style.cssText = - "position:absolute;left:4px;top:4px;width:1px;height:1px;opacity:0;padding:0;border:0;resize:none;pointer-events:none;"; - - const scrollbar = document.createElement("div"); - scrollbar.className = - "group absolute top-1 right-px bottom-1 z-1 w-[var(--app-scrollbar-width)] cursor-default touch-none"; - scrollbar.setAttribute("role", "scrollbar"); - scrollbar.setAttribute("aria-label", "Terminal scrollback"); - scrollbar.setAttribute("aria-orientation", "vertical"); - scrollbar.tabIndex = 0; - scrollbar.hidden = true; - const scrollbarThumb = document.createElement("div"); - scrollbarThumb.className = - "absolute inset-x-px top-0 rounded-[3px] bg-[var(--app-scrollbar-thumb)] transition-[background-color] duration-[120ms] ease-[ease-out] group-hover:bg-[var(--app-scrollbar-thumb-hover)] group-focus-visible:bg-[var(--app-scrollbar-thumb-hover)]"; - scrollbar.append(scrollbarThumb); - mount.replaceChildren(canvas, input, scrollbar); - - const context = canvas.getContext("2d", { alpha: false }); - if (!context) throw new Error("Canvas 2D is unavailable"); - // An opaque canvas backing store initializes to solid black, and the font - // and WASM loads below leave it on screen for the whole setup window; paint - // the theme background first so the mount never flashes a black box. - context.fillStyle = `rgb(${options.theme.background.r}, ${options.theme.background.g}, ${options.theme.background.b})`; - context.fillRect(0, 0, canvas.width, canvas.height); - const fontSize = terminalFontSize(options.font?.size); - try { - // Cell metrics must come from the faces that will render; measuring before - // the bundled webfonts load would size the grid from a fallback font. - await ensureTerminalSymbolsFont(); - } catch { - // Metrics fall back to whichever faces are already available. - } - const fontFamily = await loadTerminalFontFamily(options.font?.family, fontSize); - const metrics = measureGhosttyCell(context, fontSize, fontFamily); - const grid = terminalGridSize(mount.clientWidth, mount.clientHeight, metrics, CONTENT_PADDING); - const core = await GhosttyTerminalCore.create( - grid.cols, - grid.rows, - metrics.width, - metrics.height, - options.theme, - options.onData, - ); - const surface = new GhosttyTerminalSurface( - mount, - canvas, - input, - scrollbar, - scrollbarThumb, - context, - core, - metrics, - fontFamily, - options, - ); - surface.fit(); - return surface; - } - - /** Pause canvas work without interrupting output parsing or terminal replies. */ - setVisible(visible: boolean): void { - if (this.disposed || this.visible === visible) return; - this.visible = visible; - this.cursorOn = true; - this.forceFullRender = true; - this.scrollbarDirty = true; - if (!visible) { - this.cancelRender(); - this.setSelectionAutoscroll(0); - return; - } - this.fit(); - } - - write(data: string): void { - if (this.disposed) return; - this.core.write(data); - this.synchronizeMouseTrackingState(); - // Restart the blink cycle from the visible phase so the cursor never sits - // invisible through a stream of output or a burst of typing echo. - this.cursorOn = true; - this.scrollbarDirty = true; - this.requestRender(); - } - - resetAndWrite(data: string): void { - if (this.disposed) return; - this.lastMouseMotionData = ""; - this.core.resetAndWrite(data); - this.synchronizeMouseTrackingState(); - // A replayed session starts from the visible phase like any other write: - // reattaching mid-blink must not open on an invisible cursor. - this.cursorOn = true; - this.forceFullRender = true; - this.scrollbarDirty = true; - this.requestRender(); - } - - setTheme(theme: GhosttyTheme): void { - if (this.disposed) return; - this.theme = theme; - this.core.setTheme(theme); - this.forceFullRender = true; - this.requestRender(); - } - - /** Re-evaluate link feedback after the host's available actions change. */ - refreshLinkActivation(): void { - if (this.disposed) return; - this.refreshHoveredLink(); - } - - async setFont(font: GhosttyTerminalFont): Promise { - if (this.disposed) return; - const fontSize = terminalFontSize(font.size); - // The fields only change together with their metrics after the load, and - // the epoch lets the newest overlapping call win regardless of load order. - const epoch = ++this.fontEpoch; - this.pendingFontEpoch = epoch; - const fontFamily = await loadTerminalFontFamily(font.family, fontSize); - if (this.disposed || epoch !== this.fontEpoch) return; - this.pendingFontEpoch = null; - this.fontFamily = fontFamily; - this.requestedFontFamily = font.family; - this.fontSize = fontSize; - this.applyFontMetrics(); - } - - private applyFontMetrics(): void { - this.metrics = measureGhosttyCell(this.context, this.fontSize, this.fontFamily); - this.core.resize(this.cols, this.rows, this.metrics.width, this.metrics.height); - // Cached IME textarea coordinates are stale in the new cell geometry. - this.inputLeft = -1; - this.inputTop = -1; - this.forceFullRender = true; - this.scrollbarDirty = true; - this.fit(); - this.requestRender(); - } - - private readonly onReducedMotionChange = () => { - if (this.disposed) return; - // Nothing else wakes an idle steady cursor: the blink timer only reschedules - // from a render, and reduced motion is exactly the state that stopped it. - this.cursorOn = true; - this.requestRender(); - }; - - private readonly onFontsLoaded = () => { - if (this.disposed) return; - // The explicit load validates every style and applies the newest request. - // Its own loading events must not revalidate the previously applied face. - if (this.pendingFontEpoch !== null) return; - // A face may become available after an earlier fallback measurement. Run - // the fixed-width guard again before using its newly loaded metrics. - const fontFamily = terminalFontFamily(this.requestedFontFamily); - if (fontFamily !== this.fontFamily) { - this.fontFamily = fontFamily; - this.applyFontMetrics(); - return; - } - // A face that finished loading after the initial measurement changes glyph - // advances; re-measure and refit so the grid matches what actually renders. - const metrics = measureGhosttyCell(this.context, this.fontSize, this.fontFamily); - if ( - metrics.width === this.metrics.width && - metrics.height === this.metrics.height && - metrics.baseline === this.metrics.baseline - ) { - return; - } - this.applyFontMetrics(); - }; - - /** Replay the measured grid after the host becomes ready to resize its PTY. */ - resendSize(): void { - this.resizeNotified = false; - this.fit(); - } - - fit(): boolean { - if (this.disposed || !this.visible) return false; - const width = this.mount.clientWidth; - const height = this.mount.clientHeight; - if (width <= 0 || height <= 0) { - this.hasSize = false; - this.forceFullRender = true; - this.cancelRender(); - return false; - } - this.hasSize = true; - const ratio = window.devicePixelRatio || 1; - const pixelWidth = Math.max(1, Math.round(width * ratio)); - const pixelHeight = Math.max(1, Math.round(height * ratio)); - let shouldRender = false; - // The DPR transform must be installed even when the target size happens to - // equal the canvas default 300x150 backing store, so the first fit always - // schedules a canvas configuration. - if ( - this.canvas.width !== pixelWidth || - this.canvas.height !== pixelHeight || - !this.canvasConfigured - ) { - this.canvas.width = pixelWidth; - this.canvas.height = pixelHeight; - this.context.setTransform(ratio, 0, 0, ratio, 0, 0); - this.canvasConfigured = true; - this.forceFullRender = true; - this.scrollbarDirty = true; - shouldRender = true; - } - const grid = terminalGridSize(width, height, this.metrics, CONTENT_PADDING); - this.mountHeight = height; - // onResize is the only PTY resize channel, so the first successful fit must - // notify even when the measured grid equals the 1x1 construction sentinel. - if (grid.cols !== this.cols || grid.rows !== this.rows || !this.resizeNotified) { - this.cols = grid.cols; - this.rows = grid.rows; - this.core.resize(grid.cols, grid.rows, this.metrics.width, this.metrics.height); - this.notifyResize(); - this.forceFullRender = true; - this.scrollbarDirty = true; - shouldRender = true; - } - // Rendering synchronously keeps the repaint inside the same frame as the - // layout change: ResizeObserver fires before paint, so the browser never - // composites the old backing store stretched into the new element box. - if (shouldRender || this.forceFullRender) this.renderFrame(); - return true; - } - - /** - * The local grid reflows immediately, but the PTY only hears about settled - * dimensions: notifying on every drag step makes the shell reprint its - * prompt mid-drag, which reads as jitter. - */ - private notifyResize(): void { - this.resizeNotified = true; - if (this.resizeNotifyTimer !== null) window.clearTimeout(this.resizeNotifyTimer); - this.resizeNotifyTimer = window.setTimeout(() => { - this.resizeNotifyTimer = null; - if (!this.disposed) this.options.onResize(this.cols, this.rows); - }, 150); - } - - /** - * Releasing a panel, drawer, or split divider settles the size, so the PTY - * hears it now instead of after the debounce. Otherwise typing right after - * the release reaches a shell that still lays out the old width. - */ - private readonly onWindowPointerRelease = () => { - if (this.disposed || this.resizeNotifyTimer === null) return; - // The drag hook writes the release position before this bubbles to window, - // so fit now rather than wait a frame for the observer. - this.fit(); - if (this.resizeNotifyTimer === null) return; - window.clearTimeout(this.resizeNotifyTimer); - this.resizeNotifyTimer = null; - this.options.onResize(this.cols, this.rows); - }; - - focus(): void { - if (this.disposed || !this.visible) return; - this.input.focus({ preventScroll: true }); - } - - /** - * Pastes clipboard text read by the host (context menu) with the same - * bracketed-paste encoding as a native paste event. The read joins the same - * race the paste shortcut uses — the token is claimed before it starts — so - * a shortcut or native paste arriving during the read supersedes this one - * instead of both reaching the shell. - */ - async pasteFromClipboard( - readText: () => Promise, - isCurrent: () => boolean = () => true, - ): Promise { - const token = ++this.pasteShortcutToken; - const text = await readText(); - if (this.disposed || this.pasteShortcutToken !== token || !isCurrent()) return; - // As in every paste path, delivering bumps the token so a clipboard read - // still in flight cannot land after this text reaches the shell. - this.pasteShortcutToken += 1; - if (text.length === 0) return; - const encoded = this.core.encodePaste(text); - if (encoded.length > 0) this.options.onData(encoded); - } - - /** - * Middle-click pastes the terminal's own selection, which is the only - * primary-selection-like buffer a browser can read. It goes through - * pasteFromClipboard so it joins the same paste race as every other path. - * With nothing selected here there is no buffer to paste, and CLIPBOARD is - * deliberately not substituted: middle-click must never emit text the user - * only ever copied. - */ - private pasteTerminalSelection(): void { - const selection = this.getSelection(); - if (selection.length === 0) return; - void this.pasteFromClipboard(() => Promise.resolve(selection)); - } - - hasSelection(): boolean { - return this.core.selectionText().length > 0; - } - - getSelection(): string { - return this.core.selectionText(); - } - - /** Select the active screen's entire history, including rows outside the viewport. */ - selectAll(): void { - this.clearPrimedCopy(); - const range = this.core.selectAll(); - this.selectionAnchorScreen = range?.start ?? null; - this.selectionEndScreen = range?.end ?? null; - this.selectionEnd = range ? this.core.screenPointToViewport(range.end.x, range.end.y) : null; - this.selectionMode = "cell"; - this.selectionBase = null; - this.setSelectionAutoscroll(0); - this.options.onSelectionChange(); - this.forceFullRender = true; - this.requestRender(); - } - - getSelectionPosition(): GhosttySelectionPosition | null { - if (!this.selectionAnchorScreen || !this.selectionEndScreen || !this.hasSelection()) - return null; - const before = - this.selectionAnchorScreen.y < this.selectionEndScreen.y || - (this.selectionAnchorScreen.y === this.selectionEndScreen.y && - this.selectionAnchorScreen.x <= this.selectionEndScreen.x); - return before - ? { start: this.selectionAnchorScreen, end: this.selectionEndScreen } - : { start: this.selectionEndScreen, end: this.selectionAnchorScreen }; - } - - getSelectionEndClientRect(): { readonly right: number; readonly bottom: number } | null { - const position = this.getSelectionPosition(); - if (!position) return null; - const viewportEnd = this.core.screenPointToViewport(position.end.x, position.end.y); - if ( - !viewportEnd || - viewportEnd.x < 0 || - viewportEnd.x >= this.cols || - viewportEnd.y < 0 || - viewportEnd.y >= this.rows - ) { - return null; - } - const bounds = this.canvas.getBoundingClientRect(); - return { - right: bounds.left + CONTENT_PADDING + (viewportEnd.x + 1) * this.metrics.width, - bottom: bounds.top + this.originY + (viewportEnd.y + 1) * this.metrics.height, - }; - } - - clearSelection(): void { - this.clearPrimedCopy(); - this.core.clearSelection(); - this.selectionEnd = null; - this.selectionAnchorScreen = null; - this.selectionEndScreen = null; - this.selectionMode = "cell"; - this.selectionBase = null; - this.setSelectionAutoscroll(0); - this.options.onSelectionChange(); - // Selection highlights span rows Ghostty may not mark dirty for this change. - this.forceFullRender = true; - this.requestRender(); - } - - scrollToBottom(): void { - this.core.scrollToBottom(); - this.forceFullRender = true; - this.scrollbarDirty = true; - this.requestRender(); - } - - isAtBottom(): boolean { - return this.core.isViewportActive(); - } - - dispose(): void { - if (this.disposed) return; - this.disposed = true; - this.stopObservingResize(); - document.fonts.removeEventListener("loadingdone", this.onFontsLoaded); - this.dprMedia?.removeEventListener("change", this.onDevicePixelRatioChange); - this.dprMedia = null; - this.reducedMotionMedia?.removeEventListener("change", this.onReducedMotionChange); - if (this.selectionScrollTimer !== null) window.clearInterval(this.selectionScrollTimer); - if (this.resizeNotifyTimer !== null) { - window.clearTimeout(this.resizeNotifyTimer); - this.resizeNotifyTimer = null; - // Flush the settled dimensions so the PTY keeps the final size even when - // the surface unmounts inside the debounce window. - this.options.onResize(this.cols, this.rows); - } - this.cancelRender(); - if (this.compositionSuppressionTimer !== null) { - window.clearTimeout(this.compositionSuppressionTimer); - } - this.removeEvents(); - this.core.dispose(); - if ( - this.canvas.parentElement === this.mount || - this.input.parentElement === this.mount || - this.scrollbar.parentElement === this.mount - ) { - this.canvas.remove(); - this.input.remove(); - this.scrollbar.remove(); - } - } - - private readonly onKeyDown = (event: KeyboardEvent) => { - // Presses handled outside the terminal must also swallow their release: - // beforeKey runs side effects (keybindings, navigation sends), so it cannot - // be consulted again on keyup, and Kitty report-event-types sessions would - // otherwise receive a release for a press the shell never saw. - if (isTerminalAltGraphText(event) || !this.options.beforeKey(event)) { - this.suppressedKeyCodes.add(event.code); - return; - } - // IME candidates belong to the textarea, even if the key also resembles - // a local shortcut. Safari signals the initial composition with code 229. - if (isTerminalCompositionKey(event, this.composing)) { - this.suppressedKeyCodes.add(event.code); - return; - } - const mac = isMacPlatform(navigator.platform); - const primaryModifier = mac ? event.metaKey && !event.ctrlKey : event.ctrlKey && !event.metaKey; - const selectAllShortcut = - event.key.toLowerCase() === "a" && - primaryModifier && - !event.altKey && - (mac ? !event.shiftKey : event.shiftKey); - if (selectAllShortcut) { - event.preventDefault(); - event.stopPropagation(); - this.suppressedKeyCodes.add(event.code); - this.selectAll(); - return; - } - // Shift+PageUp/Down pages history; Ctrl+Shift+Home/End (Cmd on macOS) - // jumps to its edges. Full-screen applications retain these keys. - const pageHistory = - event.shiftKey && - !event.altKey && - !event.ctrlKey && - !event.metaKey && - (event.key === "PageUp" || event.key === "PageDown"); - const jumpHistory = - event.shiftKey && - !event.altKey && - primaryModifier && - (event.key === "Home" || event.key === "End"); - if ((pageHistory || jumpHistory) && !this.core.isAlternateScreen()) { - const state = this.readScrollbarState(); - if (state !== null) { - event.preventDefault(); - event.stopPropagation(); - this.suppressedKeyCodes.add(event.code); - const delta = - event.key === "Home" - ? -state.offset - : event.key === "End" - ? state.total - state.len - state.offset - : Math.max(1, state.len) * (event.key === "PageUp" ? -1 : 1); - this.scrollViewport(delta); - return; - } - } - if (isTerminalCopyShortcut(event) && this.hasSelection()) { - // A plain Ctrl+C/Cmd+C fires the browser's native copy event, caught in - // onCopyEvent; not preventing the default keeps that path alive. WebKit - // omits the keyboard copy event without a DOM selection, so race the - // clipboard write against it the same way paste races its read. Ctrl+Shift+C - // and Ctrl+Insert have no native copy event (Chrome binds the former to - // inspect), so synthesize one with execCommand("copy"). - const selection = this.getSelection(); - this.primeCopy(selection); - if (event.shiftKey || event.key.toLowerCase() === "insert") { - event.preventDefault(); - document.execCommand("copy"); - } else { - // A plain Ctrl+C is also SIGINT on non-mac: clear the selection once - // it copies so the next Ctrl+C reaches the shell. The Shift chord and - // Cmd+C are copy-only, so they keep the selection; resetting the flag - // up front also drops any clear owed by an earlier gesture that never - // completed. - this.clearSelectionAfterCopy = !event.shiftKey && !isMacPlatform(navigator.platform); - const clipboard = navigator.clipboard; - if (typeof clipboard?.writeText === "function") { - // Defer the write past the default action: the native copy event - // (dispatched synchronously with the default action) claims the - // token first when it actually writes, and the write covers browsers - // whose shortcut produces no copy event. The primed textarea is what - // Electron's edit-menu Copy reads if it runs after this handler. - const token = ++this.copyShortcutToken; - void Promise.resolve().then(() => { - if (this.disposed || this.copyShortcutToken !== token) return; - void clipboard.writeText(selection).then( - () => { - // The write may have been superseded while in flight; only - // touch the selection if this gesture still owns the token. - if (this.disposed || this.copyShortcutToken !== token) return; - if (this.clearSelectionAfterCopy) { - this.clearSelectionAfterCopy = false; - this.clearSelection(); - } - }, - () => { - // The write failed and the native event has already had its - // chance, so nothing copied and no clear is owed by this - // gesture; a newer one may have just set the flag, so only - // drop it if this gesture still owns the token. - if (this.copyShortcutToken === token) { - this.clearSelectionAfterCopy = false; - } - }, - ); - }); - } - } - this.suppressedKeyCodes.add(event.code); - return; - } - if (isTerminalPasteShortcut(event)) { - this.suppressedKeyCodes.add(event.code); - const clipboard = navigator.clipboard; - if (typeof clipboard?.readText === "function") { - // Race the async clipboard read against the browser's own paste event: - // the native event (dispatched synchronously with the default action) - // always claims the token first when it fires, and the read covers - // browsers whose paste shortcut produces no paste event. Not preventing - // the default keeps the native path alive when the read is denied. - const token = ++this.pasteShortcutToken; - void clipboard.readText().then( - (text) => { - if (this.disposed || this.pasteShortcutToken !== token) return; - this.pasteShortcutToken += 1; - if (text.length > 0) this.options.onData(this.core.encodePaste(text)); - }, - () => { - // Clipboard read denied; the native paste event remains the path. - }, - ); - } - return; - } - this.clearPrimedCopy(); - const data = this.core.encodeKey(event); - if (data.length === 0) return; - this.suppressedKeyCodes.delete(event.code); - event.preventDefault(); - event.stopPropagation(); - this.options.onData(data); - }; - - private readonly onKeyUp = (event: KeyboardEvent) => { - if (this.suppressedKeyCodes.delete(event.code)) return; - if (isTerminalCompositionKey(event, this.composing)) { - return; - } - // Ghostty's encoder only emits release codes when the terminal enabled the - // Kitty report-event-types flag, so legacy sessions send nothing here. - const data = this.core.encodeKey(event, "release"); - if (data.length === 0) return; - event.preventDefault(); - event.stopPropagation(); - this.options.onData(data); - }; - - private readonly onFocus = () => { - this.focused = true; - this.cursorOn = true; - this.requestRender(); - }; - - private readonly onBlur = () => { - this.focused = false; - this.refreshHoveredLink(); - // Suppressions survive blur deliberately: a shortcut that moves focus (for - // example terminal-toggle) must still swallow its own keyup if focus comes - // back before release. Stale entries are harmless — an encoding keydown - // always removes its code first. - // The steady unfocused hollow cursor must not inherit an off blink phase. - this.cursorOn = true; - this.requestRender(); - }; - - private readonly onDevicePixelRatioChange = () => { - this.watchDevicePixelRatio(); - this.fit(); - }; - - private watchDevicePixelRatio(): void { - this.dprMedia?.removeEventListener("change", this.onDevicePixelRatioChange); - // A resolution media query only fires once for the ratio it was created at, - // so re-arm it after every change (monitor moves, browser zoom). - this.dprMedia = window.matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`); - this.dprMedia.addEventListener("change", this.onDevicePixelRatioChange); - } - - private primeCopy(selection: string): void { - this.primedCopySelection = selection; - primeTerminalCopyInput(this.input, selection); - } - - private clearPrimedCopy(): void { - clearPrimedTerminalCopyInput(this.input, this.primedCopySelection); - this.primedCopySelection = ""; - } - - private readonly onCopyEvent = (event: ClipboardEvent) => { - const selection = this.hasSelection() ? this.getSelection() : this.input.value; - // Menu-role Copy never hits the keydown primer. The native action reads - // this.input, so park the current selection first — including when - // clipboardData is missing and we must not preventDefault. - this.primeCopy(selection); - const result = applyTerminalCopyEvent(selection, event.clipboardData); - if (result.preventDefault) event.preventDefault(); - if (result.claimWriteFallback) { - // The native event actually wrote the selection; drop the in-flight - // writeText so a late resolution cannot clobber a later user copy. - this.copyShortcutToken += 1; - if (this.clearSelectionAfterCopy) { - this.clearSelectionAfterCopy = false; - this.clearSelection(); - } - } - }; - - private readonly onPaste = (event: ClipboardEvent) => { - // Always suppress the browser's default insertion: content the textarea - // would receive (for example an html-only clipboard converted to text) - // leaks through onInput without bracketed-paste encoding. - event.preventDefault(); - const data = event.clipboardData?.getData("text/plain") ?? ""; - if (data.length === 0) return; - // The native paste won the race with actual text; a pending clipboard read - // must not double. An empty native paste leaves the read as the only path. - this.pasteShortcutToken += 1; - this.options.onData(this.core.encodePaste(data)); - }; - - private readonly onCompositionStart = () => { - this.clearPrimedCopy(); - this.clearCompositionInputSuppression(); - this.composing = true; - }; - - private readonly onCompositionEnd = (event: CompositionEvent) => { - this.composing = false; - const data = this.input.value || event.data; - if (data.length > 0) this.options.onData(data); - this.input.value = ""; - this.compositionInputToSuppress = data; - this.compositionSuppressionTimer = window.setTimeout(() => { - this.compositionInputToSuppress = null; - this.compositionSuppressionTimer = null; - }, 100); - }; - - private readonly onInput = (event: Event) => { - const inputEvent = event as InputEvent; - if (this.composing || inputEvent.isComposing) return; - const data = this.input.value || inputEvent.data || ""; - if (data === this.compositionInputToSuppress && isTerminalCompositionCommitInput(inputEvent)) { - this.clearCompositionInputSuppression(); - this.input.value = ""; - return; - } - this.clearCompositionInputSuppression(); - if (data.length > 0) this.options.onData(data); - this.input.value = ""; - }; - - private clearCompositionInputSuppression(): void { - if (this.compositionSuppressionTimer !== null) { - window.clearTimeout(this.compositionSuppressionTimer); - this.compositionSuppressionTimer = null; - } - this.compositionInputToSuppress = null; - } - - private readonly onPointerDown = (event: PointerEvent) => { - if (event.pointerType === "touch") { - event.preventDefault(); - if (!event.isPrimary || this.touchScroll !== null) return; - this.touchScroll = { - pointerId: event.pointerId, - startX: event.clientX, - startY: event.clientY, - lastY: event.clientY, - remainder: 0, - moved: false, - }; - this.clearHoveredLink(); - this.canvas.setPointerCapture(event.pointerId); - return; - } - this.focus(); - if (shouldReportTerminalMouse(this.core.isMouseTracking(), event)) { - const button = ghosttyMouseButton(event.button); - if (button === null) return; - event.preventDefault(); - event.stopPropagation(); - this.clearHoveredLink("default"); - this.mouseReportingPointerId = event.pointerId; - this.mouseReportingButton = button; - this.sendMouse("press", button, event); - this.canvas.setPointerCapture(event.pointerId); - return; - } - if (event.button === 1 && isMiddleClickPastePlatform()) { - // Left uncancelled on purpose: cancelling pointerdown drops the - // compatibility mousedown, which is what activates a split pane. - this.pasteTerminalSelection(); - return; - } - if (event.button !== 0) return; - const clickCount = this.recordSelectionClick(event); - const link = this.linkAt(event.clientX, event.clientY); - if (link && !event.shiftKey && clickCount === 1) { - event.preventDefault(); - event.stopPropagation(); - this.linkActivationPointerId = event.pointerId; - this.linkActivationLink = link; - this.linkActivationOrigin = { - x: event.clientX, - y: event.clientY, - clickCount, - }; - this.canvas.setPointerCapture(event.pointerId); - return; - } - this.clearHoveredLink(); - this.beginSelection(event, clickCount); - this.canvas.setPointerCapture(event.pointerId); - }; - - private recordSelectionClick( - event: Pick, - ): number { - this.selectionClickSequence = advanceTerminalSelectionClickSequence( - this.selectionClickSequence, - event, - ); - return this.selectionClickSequence.count; - } - - private beginSelection(event: { clientX: number; clientY: number }, clickCount: number): void { - const cell = this.cellAt(event.clientX, event.clientY); - this.selectionMoved = false; - this.selectionMode = clickCount >= 3 ? "line" : clickCount === 2 ? "word" : "cell"; - const range = - this.selectionMode === "line" - ? this.core.selectLine(cell.x, cell.y) - : this.selectionMode === "word" - ? this.core.selectWord(cell.x, cell.y) - : null; - if (range) { - this.selectionBase = range.screen; - this.selectionEnd = range.viewport.end; - this.selectionAnchorScreen = range.screen.start; - this.selectionEndScreen = range.screen.end; - this.options.onSelectionChange(); - } else { - this.selectionMode = "cell"; - this.selectionBase = null; - this.selectionEnd = cell; - const screen = this.core.viewportPointToScreen(cell.x, cell.y); - this.selectionAnchorScreen = screen; - this.selectionEndScreen = screen; - if (screen) { - this.core.setSelection({ ...screen, tag: 2 }, { ...screen, tag: 2 }); - } else { - this.core.setSelection(cell, cell); - } - } - this.forceFullRender = true; - this.requestRender(); - } - - private readonly onPointerMove = (event: PointerEvent) => { - if (event.pointerType === "touch") { - const touch = this.touchScroll; - if (touch?.pointerId !== event.pointerId) return; - event.preventDefault(); - touch.moved ||= - Math.hypot(event.clientX - touch.startX, event.clientY - touch.startY) > - TERMINAL_LINK_DRAG_THRESHOLD_PX; - if (!touch.moved) return; - const delta = terminalWheelDeltaRows( - { deltaY: touch.lastY - event.clientY, deltaMode: 0 }, - this.metrics.height, - this.rows, - touch.remainder, - ); - touch.lastY = event.clientY; - touch.remainder = delta.remainder; - this.scrollRows(delta.rows, event); - return; - } - if (this.linkActivationPointerId === event.pointerId) { - const origin = this.linkActivationOrigin; - if ( - origin === null || - Math.hypot(event.clientX - origin.x, event.clientY - origin.y) <= - TERMINAL_LINK_DRAG_THRESHOLD_PX - ) { - return; - } - this.linkActivationPointerId = null; - this.linkActivationLink = null; - this.linkActivationOrigin = null; - this.clearHoveredLink(); - this.beginSelection( - { - clientX: origin.x, - clientY: origin.y, - }, - origin.clickCount, - ); - } - // Hover motion is only reportable in any-event tracking (DEC 1003); normal and - // button-event tracking never report motion without a captured pressed button. - const anyEventTracking = this.synchronizeMouseTrackingState(); - if ( - this.mouseReportingPointerId === event.pointerId || - shouldReportTerminalMouse(anyEventTracking, event) - ) { - event.preventDefault(); - this.hoverPointer = { x: event.clientX, y: event.clientY }; - // A drag whose press was already sent to the terminal application cannot - // turn into link activation midway through, so link feedback would lie. - this.setHoveredLink(null); - this.canvas.style.cursor = "default"; - this.sendMouse("motion", this.buttonFromButtons(event.buttons), event); - return; - } - this.lastMouseMotionData = ""; - if (!this.selectionAnchorScreen || !this.canvas.hasPointerCapture(event.pointerId)) { - this.updateHoverCursor(event); - return; - } - this.clearHoveredLink(); - this.selectionPointer = { x: event.clientX, y: event.clientY }; - const bounds = this.canvas.getBoundingClientRect(); - const top = Math.max(bounds.top, 0) + CONTENT_PADDING; - const bottom = Math.min(bounds.bottom, window.innerHeight) - CONTENT_PADDING; - this.setSelectionAutoscroll(event.clientY < top ? -1 : event.clientY > bottom ? 1 : 0); - const cell = this.cellAt(event.clientX, event.clientY); - if (cell.x === this.selectionEnd?.x && cell.y === this.selectionEnd.y) return; - this.extendSelectionTo(event.clientX, event.clientY); - }; - - private extendSelectionTo(clientX: number, clientY: number): void { - const anchorScreen = this.selectionAnchorScreen; - if (anchorScreen === null) return; - const cell = this.cellAt(clientX, clientY); - this.selectionMoved = true; - this.selectionEnd = cell; - const range = - this.selectionMode === "line" - ? this.core.selectLine(cell.x, cell.y) - : this.selectionMode === "word" - ? this.core.selectWord(cell.x, cell.y) - : null; - const cellScreen = this.core.viewportPointToScreen(cell.x, cell.y); - if (cellScreen === null) return; - const base = this.selectionBase; - const beforeBase = - base !== null && - (cellScreen.y < base.start.y || - (cellScreen.y === base.start.y && cellScreen.x < base.start.x)); - const anchor = base === null ? anchorScreen : beforeBase ? base.end : base.start; - const end = range === null ? cellScreen : beforeBase ? range.screen.start : range.screen.end; - this.selectionAnchorScreen = anchor; - this.selectionEndScreen = end; - this.core.setSelection({ ...anchor, tag: 2 }, { ...end, tag: 2 }); - this.options.onSelectionChange(); - this.forceFullRender = true; - this.requestRender(); - } - - private setSelectionAutoscroll(delta: number): void { - this.selectionScrollDelta = delta; - if (delta === 0) { - if (this.selectionScrollTimer !== null) { - window.clearInterval(this.selectionScrollTimer); - this.selectionScrollTimer = null; - } - return; - } - if (this.selectionScrollTimer !== null) return; - // Dragging past the edge scrolls the viewport and keeps extending the - // selection into the newly revealed rows, like xterm's drag scroller. - this.selectionScrollTimer = window.setInterval(() => { - if (this.disposed || this.selectionScrollDelta === 0) return; - this.scrollViewport(this.selectionScrollDelta); - const pointer = this.selectionPointer; - if (pointer) this.extendSelectionTo(pointer.x, pointer.y); - }, 80); - } - - private updateHoverCursor(event: PointerEvent): void { - this.hoverPointer = { x: event.clientX, y: event.clientY }; - this.refreshHoveredLink(); - } - - private readonly onPointerLeave = () => { - this.lastMouseMotionData = ""; - this.clearHoveredLink(); - }; - - private clearHoveredLink(cursor = ""): void { - this.hoverPointer = null; - this.setHoveredLink(null); - this.canvas.style.cursor = cursor; - } - - private refreshHoveredLink(): void { - const pointer = this.hoverPointer; - const link = pointer ? this.linkAt(pointer.x, pointer.y) : null; - this.setHoveredLink(link); - } - - private setHoveredLink(link: TerminalLinkWithRange | null): void { - const previous = this.hoveredLink; - const unchanged = - previous?.text === link?.text && - previous?.range.start.x === link?.range.start.x && - previous?.range.start.y === link?.range.start.y && - previous?.range.end.x === link?.range.end.x && - previous?.range.end.y === link?.range.end.y; - this.canvas.style.cursor = link ? "pointer" : ""; - if (unchanged) return; - this.hoveredLink = link; - this.forceFullRender = true; - this.requestRender(); - } - - private readonly onPointerUp = (event: PointerEvent) => { - if (event.pointerType === "touch") { - const touch = this.touchScroll; - if (touch?.pointerId !== event.pointerId) return; - this.touchScroll = null; - event.preventDefault(); - if (this.canvas.hasPointerCapture(event.pointerId)) { - this.canvas.releasePointerCapture(event.pointerId); - } - if (event.type === "pointercancel" || touch.moved) return; - this.focus(); - if (shouldReportTerminalMouse(this.core.isMouseTracking(), event)) { - this.sendMouse("press", ghosttyMouseButton(0), event); - this.sendMouse("release", ghosttyMouseButton(0), event); - } else { - const link = this.linkAt(event.clientX, event.clientY); - if (link) this.options.onLinkActivate(link.text, event); - else this.clearSelection(); - } - return; - } - this.setSelectionAutoscroll(0); - if (this.linkActivationPointerId === event.pointerId) { - event.preventDefault(); - event.stopPropagation(); - const link = this.linkActivationLink; - this.linkActivationPointerId = null; - this.linkActivationLink = null; - this.linkActivationOrigin = null; - if (this.canvas.hasPointerCapture(event.pointerId)) { - this.canvas.releasePointerCapture(event.pointerId); - } - if (event.type !== "pointercancel") { - if (link && isSameTerminalLink(link, this.linkAt(event.clientX, event.clientY))) { - this.options.onLinkActivate(link.text, event); - } - } - return; - } - if (this.mouseReportingPointerId === event.pointerId) { - event.preventDefault(); - event.stopPropagation(); - this.sendMouse("release", this.mouseReportingButton, event); - this.mouseReportingPointerId = null; - this.mouseReportingButton = null; - if (this.canvas.hasPointerCapture(event.pointerId)) { - this.canvas.releasePointerCapture(event.pointerId); - } - if (event.type === "pointercancel") { - this.clearHoveredLink(); - } else { - this.hoverPointer = { x: event.clientX, y: event.clientY }; - this.refreshHoveredLink(); - } - return; - } - if (this.canvas.hasPointerCapture(event.pointerId)) { - this.canvas.releasePointerCapture(event.pointerId); - } - if (event.button === 1 && isMiddleClickPastePlatform()) { - event.preventDefault(); - return; - } - if (event.button !== 0) return; - if (!this.selectionMoved && this.selectionMode === "cell") { - this.clearSelection(); - } - this.options.onSelectionChange(); - }; - - private readonly onWheel = (event: WheelEvent) => { - if (event.deltaY === 0) return; - event.preventDefault(); - const delta = terminalWheelDeltaRows( - event, - this.metrics.height, - this.rows, - this.wheelRemainder, - ); - this.wheelRemainder = delta.remainder; - this.scrollRows(delta.rows, event); - }; - - private scrollRows(rows: number, event: MouseEvent): void { - if (rows === 0) return; - const magnitude = Math.abs(rows); - if (shouldReportTerminalMouse(this.core.isMouseTracking(), event)) { - const button = rows < 0 ? 4 : 5; - for (let index = 0; index < magnitude; index += 1) { - this.sendMouse("press", button, event); - } - return; - } - if (this.core.isAlternateScreen()) { - // The alternate screen has no scrollback: translate wheel motion into - // arrow keys so full-screen apps like vim and less scroll, matching xterm. - this.options.onData(terminalWheelArrowData(rows, this.core.isApplicationCursorKeys())); - return; - } - this.scrollViewport(rows); - } - - private readonly onMouseDown = (event: MouseEvent) => { - // Cancelling the middle button here stops autoscroll while still letting - // the event bubble to the drawer handler that activates a split pane. - if (event.button === 0 || (event.button === 1 && isMiddleClickPastePlatform())) { - event.preventDefault(); - } - this.focus(); - }; - - /** - * Chromium pastes PRIMARY into the focused editable on a middle mouseup, and - * the hidden textarea is focused, so leaving the default alive would deliver - * a second paste through onPaste on top of the one onPointerDown sent. - */ - private readonly onMouseUp = (event: MouseEvent) => { - if (event.button === 1 && isMiddleClickPastePlatform()) event.preventDefault(); - }; - - private readonly onContextMenu = (event: MouseEvent) => { - if (shouldReportTerminalMouse(this.core.isMouseTracking(), event)) { - event.preventDefault(); - return; - } - this.options.onContextMenu?.(event); - }; - - private readonly onScrollbarPointerDown = (event: PointerEvent) => { - if (event.button !== 0) return; - const state = this.readScrollbarState(); - if (state === null) return; - const bounds = this.scrollbar.getBoundingClientRect(); - const geometry = terminalScrollbarGeometry(state, bounds.height); - if (geometry === null) return; - event.preventDefault(); - event.stopPropagation(); - this.scrollbarPointerId = event.pointerId; - this.scrollbarPointerOffset = - event.target === this.scrollbarThumb - ? event.clientY - bounds.top - geometry.thumbTop - : geometry.thumbHeight / 2; - this.scrollbar.setPointerCapture(event.pointerId); - this.scrollbarToPointer(event.clientY, bounds); - }; - - private readonly onScrollbarPointerMove = (event: PointerEvent) => { - if (event.pointerId !== this.scrollbarPointerId || this.scrollbarState === null) return; - event.preventDefault(); - this.scrollbarToPointer(event.clientY, this.scrollbar.getBoundingClientRect()); - }; - - private readonly onScrollbarPointerUp = (event: PointerEvent) => { - if (event.pointerId !== this.scrollbarPointerId) return; - event.preventDefault(); - this.scrollbarPointerId = null; - if (this.scrollbar.hasPointerCapture(event.pointerId)) { - this.scrollbar.releasePointerCapture(event.pointerId); - } - }; - - private readonly onScrollbarKeyDown = (event: KeyboardEvent) => { - const state = this.readScrollbarState(); - if (state === null) return; - let delta = 0; - switch (event.key) { - case "ArrowUp": - delta = -1; - break; - case "ArrowDown": - delta = 1; - break; - case "PageUp": - delta = -Math.max(1, state.len); - break; - case "PageDown": - delta = Math.max(1, state.len); - break; - case "Home": - delta = -state.offset; - break; - case "End": - delta = state.total - state.len - state.offset; - break; - default: - return; - } - event.preventDefault(); - event.stopPropagation(); - this.scrollViewport(delta); - }; - - private installEvents(): void { - this.input.addEventListener("keydown", this.onKeyDown); - this.input.addEventListener("keyup", this.onKeyUp); - this.input.addEventListener("focus", this.onFocus); - this.input.addEventListener("blur", this.onBlur); - this.input.addEventListener("input", this.onInput); - this.input.addEventListener("paste", this.onPaste); - this.input.addEventListener("copy", this.onCopyEvent); - this.input.addEventListener("compositionstart", this.onCompositionStart); - this.input.addEventListener("compositionend", this.onCompositionEnd); - this.canvas.addEventListener("pointerdown", this.onPointerDown); - this.canvas.addEventListener("pointermove", this.onPointerMove); - this.canvas.addEventListener("pointerleave", this.onPointerLeave); - this.canvas.addEventListener("pointerup", this.onPointerUp); - this.canvas.addEventListener("pointercancel", this.onPointerUp); - this.canvas.addEventListener("wheel", this.onWheel, { passive: false }); - this.canvas.addEventListener("mousedown", this.onMouseDown); - this.canvas.addEventListener("mouseup", this.onMouseUp); - this.canvas.addEventListener("contextmenu", this.onContextMenu); - this.scrollbar.addEventListener("pointerdown", this.onScrollbarPointerDown); - this.scrollbar.addEventListener("pointermove", this.onScrollbarPointerMove); - this.scrollbar.addEventListener("pointerup", this.onScrollbarPointerUp); - this.scrollbar.addEventListener("pointercancel", this.onScrollbarPointerUp); - this.scrollbar.addEventListener("keydown", this.onScrollbarKeyDown); - window.addEventListener("pointerup", this.onWindowPointerRelease); - window.addEventListener("pointercancel", this.onWindowPointerRelease); - } - - private removeEvents(): void { - this.input.removeEventListener("keydown", this.onKeyDown); - this.input.removeEventListener("keyup", this.onKeyUp); - this.input.removeEventListener("focus", this.onFocus); - this.input.removeEventListener("blur", this.onBlur); - this.input.removeEventListener("input", this.onInput); - this.input.removeEventListener("paste", this.onPaste); - this.input.removeEventListener("copy", this.onCopyEvent); - this.input.removeEventListener("compositionstart", this.onCompositionStart); - this.input.removeEventListener("compositionend", this.onCompositionEnd); - this.canvas.removeEventListener("pointerdown", this.onPointerDown); - this.canvas.removeEventListener("pointermove", this.onPointerMove); - this.canvas.removeEventListener("pointerleave", this.onPointerLeave); - this.canvas.removeEventListener("pointerup", this.onPointerUp); - this.canvas.removeEventListener("pointercancel", this.onPointerUp); - this.canvas.removeEventListener("wheel", this.onWheel); - this.canvas.removeEventListener("mousedown", this.onMouseDown); - this.canvas.removeEventListener("mouseup", this.onMouseUp); - this.canvas.removeEventListener("contextmenu", this.onContextMenu); - this.scrollbar.removeEventListener("pointerdown", this.onScrollbarPointerDown); - this.scrollbar.removeEventListener("pointermove", this.onScrollbarPointerMove); - this.scrollbar.removeEventListener("pointerup", this.onScrollbarPointerUp); - this.scrollbar.removeEventListener("pointercancel", this.onScrollbarPointerUp); - this.scrollbar.removeEventListener("keydown", this.onScrollbarKeyDown); - window.removeEventListener("pointerup", this.onWindowPointerRelease); - window.removeEventListener("pointercancel", this.onWindowPointerRelease); - } - - private scrollViewport(deltaRows: number): void { - let delta = Math.trunc(deltaRows); - const state = this.readScrollbarState(); - if (state !== null) { - const maxOffset = Math.max(0, state.total - state.len); - const offset = Math.max(0, Math.min(state.offset + delta, maxOffset)); - delta = offset - state.offset; - this.scrollbarState = { ...state, offset }; - } - if (delta === 0) return; - this.core.scroll(delta); - this.forceFullRender = true; - this.scrollbarDirty = true; - this.requestRender(); - } - - private scrollbarToPointer(clientY: number, bounds: DOMRect): void { - const state = this.scrollbarState; - if (state === null) return; - const offset = terminalScrollbarOffsetAtPointer( - state, - bounds.height, - clientY - bounds.top, - this.scrollbarPointerOffset, - ); - this.scrollViewport(offset - state.offset); - } - - private updateScrollbar(): void { - const state = this.readScrollbarState(); - const geometry = - state === null - ? null - : terminalScrollbarGeometry( - state, - Math.max(0, this.mount.clientHeight - CONTENT_PADDING * 2), - ); - this.scrollbar.hidden = geometry === null; - if (state === null || geometry === null) return; - this.scrollbar.setAttribute("aria-valuemin", "0"); - this.scrollbar.setAttribute("aria-valuemax", String(geometry.maxOffset)); - this.scrollbar.setAttribute( - "aria-valuenow", - String(Math.max(0, Math.min(state.offset, geometry.maxOffset))), - ); - this.scrollbarThumb.style.height = `${geometry.thumbHeight}px`; - this.scrollbarThumb.style.transform = `translateY(${geometry.thumbTop}px)`; - } - - private readScrollbarState(): GhosttyScrollbar | null { - const state = this.core.scrollbarState(); - this.scrollbarState = state; - return state; - } - - private requestRender(): void { - if (this.disposed || !this.visible || !this.hasSize || this.frame !== 0) return; - this.frame = window.requestAnimationFrame(() => { - this.frame = 0; - this.renderFrame(); - }); - } - - private cancelRender(): void { - if (this.frame !== 0) { - window.cancelAnimationFrame(this.frame); - this.frame = 0; - } - if (this.cursorTimer !== null) { - window.clearTimeout(this.cursorTimer); - this.cursorTimer = null; - } - } - - private renderFrame(): void { - if (this.disposed || !this.visible) return; - if (this.frame !== 0) { - window.cancelAnimationFrame(this.frame); - this.frame = 0; - } - // Hidden thread drawers stay mounted so switching back is instant, but a - // display:none canvas has nothing to show. Ghostty keeps parsing; the - // ResizeObserver refits and repaints in full once the mount has a size. - if (this.mount.clientWidth === 0 || this.mount.clientHeight === 0) { - this.hasSize = false; - this.forceFullRender = true; - this.cancelRender(); - return; - } - this.snapshot = this.core.snapshot(); - // A cursor that is not blinking right now must be drawn, never caught in an - // off phase left behind by a blink that has since been turned off. - if (!this.blinkEnabled()) this.cursorOn = true; - // The origin only moves together with a forced full repaint: partial - // dirty-row redraws must never composite rows at a shifted origin over - // rows painted at the previous one. Bottom anchoring starts once - // scrollback exists, i.e. when the prompt actually lives at the bottom. - const scrollState = this.readScrollbarState(); - const anchorBottom = scrollState !== null && scrollState.total > scrollState.len; - const nextOriginY = terminalContentOriginY( - this.mountHeight, - CONTENT_PADDING, - this.rows, - this.metrics.height, - anchorBottom, - ); - if (nextOriginY !== this.originY) { - this.originY = nextOriginY; - this.forceFullRender = true; - } - this.refreshHoveredLink(); - renderGhosttySnapshot({ - context: this.context, - snapshot: this.snapshot, - metrics: this.metrics, - fontSize: this.fontSize, - fontFamily: this.fontFamily, - padding: CONTENT_PADDING, - originY: this.originY, - forceFull: this.forceFullRender, - cursorOn: this.cursorOn, - previousCursorY: this.renderedCursorY, - focused: this.focused, - hoveredLinkRange: this.hoveredLink?.range ?? null, - ...(this.theme.selectionBackground !== undefined - ? { selectionBackground: this.theme.selectionBackground } - : {}), - }); - this.positionInput(); - this.renderedCursorY = - this.cursorOn && this.snapshot.cursorVisible && this.snapshot.cursorY >= 0 - ? this.snapshot.cursorY - : null; - if (this.scrollbarDirty) { - this.scrollbarDirty = false; - this.updateScrollbar(); - } - this.forceFullRender = false; - this.scheduleCursorBlink(); - } - - private scheduleCursorBlink(): void { - if (this.cursorTimer !== null) window.clearTimeout(this.cursorTimer); - this.cursorTimer = null; - if (!this.blinkEnabled()) return; - this.cursorTimer = window.setTimeout(() => { - this.cursorTimer = null; - this.cursorOn = !this.cursorOn; - this.requestRender(); - }, CURSOR_BLINK_INTERVAL_MS); - } - - private blinkEnabled(): boolean { - const snapshot = this.snapshot; - if (!snapshot || !this.visible || !this.hasSize) return false; - return shouldBlinkTerminalCursor({ - focused: this.focused, - cursorBlinking: snapshot.cursorBlinking, - cursorVisible: snapshot.cursorVisible, - reducedMotion: this.reducedMotionMedia?.matches ?? false, - }); - } - - private positionInput(): void { - const snapshot = this.snapshot; - if (!snapshot || !snapshot.cursorVisible || snapshot.cursorX < 0 || snapshot.cursorY < 0) { - return; - } - // The IME candidate window anchors to the textarea, so it must follow the - // terminal cursor for composition to appear where the user is typing. - const left = CONTENT_PADDING + snapshot.cursorX * this.metrics.width; - const top = this.originY + snapshot.cursorY * this.metrics.height; - if (left === this.inputLeft && top === this.inputTop) return; - this.inputLeft = left; - this.inputTop = top; - this.input.style.left = `${left}px`; - this.input.style.top = `${top}px`; - this.input.style.height = `${this.metrics.height}px`; - } - - private cellAt(clientX: number, clientY: number): { x: number; y: number } { - const bounds = this.canvas.getBoundingClientRect(); - return { - x: Math.max( - 0, - Math.min( - this.cols - 1, - Math.floor((clientX - bounds.left - CONTENT_PADDING) / this.metrics.width), - ), - ), - y: Math.max( - 0, - Math.min( - this.rows - 1, - Math.floor((clientY - bounds.top - this.originY) / this.metrics.height), - ), - ), - }; - } - - private linkAt(clientX: number, clientY: number): TerminalLinkWithRange | null { - const link = this.findLinkAt(clientX, clientY); - return link && this.options.canActivateLink?.(link.text) !== false ? link : null; - } - - private findLinkAt(clientX: number, clientY: number): TerminalLinkWithRange | null { - if (!this.snapshot) return null; - const cell = terminalGridCellAt({ - bounds: this.canvas.getBoundingClientRect(), - clientX, - clientY, - cols: this.cols, - rows: this.rows, - metrics: this.metrics, - padding: CONTENT_PADDING, - originY: this.originY, - }); - if (!cell) return null; - const explicitHyperlink = this.core.hyperlinkAt(cell.x, cell.y); - if (explicitHyperlink) { - const start = { ...cell }; - const end = { ...cell }; - while (true) { - const previous = - start.x > 0 - ? { x: start.x - 1, y: start.y } - : start.y > 0 && this.snapshot.rowData[start.y]?.isWrapContinuation - ? { x: this.cols - 1, y: start.y - 1 } - : null; - if (!previous || this.core.hyperlinkAt(previous.x, previous.y) !== explicitHyperlink) break; - start.x = previous.x; - start.y = previous.y; - } - while (true) { - const next = - end.x + 1 < this.cols - ? { x: end.x + 1, y: end.y } - : end.y + 1 < this.rows && this.snapshot.rowData[end.y]?.wrapsToNext - ? { x: 0, y: end.y + 1 } - : null; - if (!next || this.core.hyperlinkAt(next.x, next.y) !== explicitHyperlink) break; - end.x = next.x; - end.y = next.y; - } - return { - text: explicitHyperlink, - range: { start, end }, - }; - } - return terminalLinkAtPositionWithRange(this.snapshot.rowData, cell.y, cell.x); - } - - private sendMouse(action: TerminalMouseAction, button: number | null, event: MouseEvent): void { - const bounds = this.canvas.getBoundingClientRect(); - const data = this.core.encodeMouse({ - action, - button, - mods: - (event.shiftKey ? 1 : 0) | - (event.ctrlKey ? 1 << 1 : 0) | - (event.altKey ? 1 << 2 : 0) | - (event.metaKey ? 1 << 3 : 0), - x: Math.max(0, event.clientX - bounds.left), - y: Math.max(0, event.clientY - bounds.top), - screenWidth: bounds.width, - screenHeight: bounds.height, - cellWidth: this.metrics.width, - cellHeight: this.metrics.height, - paddingLeft: CONTENT_PADDING, - paddingRight: CONTENT_PADDING, - paddingTop: this.originY, - paddingBottom: Math.max(0, bounds.height - this.originY - this.rows * this.metrics.height), - anyButtonPressed: event.buttons !== 0, - }); - const resolution = resolveTerminalMouseData(action, data, this.lastMouseMotionData); - this.lastMouseMotionData = resolution.nextMotionData; - if (resolution.send) this.options.onData(data); - } - - private synchronizeMouseTrackingState(): boolean { - // Output writes can toggle DEC 1003 without moving the pointer. Keep the - // previous mode so the next same-cell motion starts a fresh tracking session. - const tracking = this.core.isMouseAnyEventTracking(); - const state = resolveTerminalMouseTrackingState( - this.mouseAnyEventTracking, - tracking, - this.lastMouseMotionData, - ); - this.mouseAnyEventTracking = state.tracking; - this.lastMouseMotionData = state.motionData; - return tracking; - } - - private buttonFromButtons(buttons: number): number | null { - if ((buttons & 1) !== 0) return 1; - if ((buttons & 4) !== 0) return 3; - if ((buttons & 2) !== 0) return 2; - if ((buttons & 8) !== 0) return 4; - if ((buttons & 16) !== 0) return 5; - return null; - } -} diff --git a/apps/web/src/terminal/ghostty/vendor/ghostty-vt.wasm b/apps/web/src/terminal/ghostty/vendor/ghostty-vt.wasm deleted file mode 100644 index a8e2405adefd37612dfea6ebd77fbcacbd9134be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 630932 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⋙yX7O`;-Th3Wn&U{yL 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