From de311e7dc153120a1875b83b0407509c0d668646 Mon Sep 17 00:00:00 2001 From: Sean Davis Date: Fri, 16 Oct 2026 07:30:02 +0000 Subject: [PATCH 1/3] Attach a screenshot instead of a demo video to releases The release workflow draws one PNG from a real failing check and a real passing run, checksums it with the wheel and sdist, and no longer renders a Remotion video. The motion-demo workflow no longer uploads videos to a GitHub release. --- .github/workflows/demo-video.yml | 79 ---------- .github/workflows/release.yml | 49 +----- CHANGELOG.md | 1 + docs/demo.md | 2 +- docs/releasing.md | 2 +- tests/test_release_screenshot.py | 69 +++++++++ tools/prepare_release.py | 2 +- tools/render_release_screenshot.py | 234 +++++++++++++++++++++++++++++ 8 files changed, 313 insertions(+), 125 deletions(-) create mode 100644 tests/test_release_screenshot.py create mode 100644 tools/render_release_screenshot.py diff --git a/.github/workflows/demo-video.yml b/.github/workflows/demo-video.yml index f68e443..15ddebc 100644 --- a/.github/workflows/demo-video.yml +++ b/.github/workflows/demo-video.yml @@ -59,82 +59,3 @@ jobs: demo/out/proofcli-motion-v1-verification.json if-no-files-found: error retention-days: 7 - - publish: - if: github.ref == 'refs/heads/main' && github.event_name != 'pull_request' - needs: render - runs-on: ubuntu-latest - timeout-minutes: 5 - permissions: - contents: write - steps: - - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 - with: - persist-credentials: false - - uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 - with: - name: motion-demos-v1 - path: motion-demos/ - - name: Add the new cut without replacing published package assets - env: - GH_TOKEN: ${{ github.token }} - run: | - tag="$(python - <<'PY' - import ast - import re - import sys - from pathlib import Path - - root = Path('.') - section = None - pyproject = None - for line in (root / 'pyproject.toml').read_text(encoding='utf-8').splitlines(): - stripped = line.strip() - if stripped.startswith('['): - section = stripped - elif section == '[project]': - match = re.fullmatch(r'version\s*=\s*"([^"]+)"', stripped) - if match: - pyproject = match.group(1) - if not pyproject: - sys.exit('pyproject.toml has no [project] version') - tree = ast.parse((root / 'proofcli' / '__init__.py').read_text(encoding='utf-8')) - module = None - for node in tree.body: - if isinstance(node, ast.Assign) and any( - getattr(target, 'id', None) == '__version__' for target in node.targets - ): - module = ast.literal_eval(node.value) - if module != pyproject: - sys.exit( - f'refusing to select a release: proofcli.__version__ {module!r} ' - f'!= pyproject {pyproject!r}' - ) - if not re.fullmatch(r'[0-9]+\.[0-9]+\.[0-9]+', pyproject): - sys.exit(f'refusing to select a release: unsupported version {pyproject!r}') - print(f'v{pyproject}') - PY - )" - echo "Selected release tag ${tag}" - if ! gh release view "$tag" --repo "$GITHUB_REPOSITORY" --json tagName --jq .tagName; then - echo "Refusing to upload: release ${tag} does not exist" >&2 - exit 1 - fi - gh release upload "$tag" motion-demos/* --repo "$GITHUB_REPOSITORY" - gh release view "$tag" --repo "$GITHUB_REPOSITORY" --json body --jq .body > notes.md - TAG="$tag" python - <<'PY' - import os - from pathlib import Path - tag = os.environ['TAG'] - p = Path('notes.md') - body = p.read_text(encoding='utf-8') - if 'proofcli-instagram-reel-v1.mp4' not in body: - body += ( - '\n\n### 30-second motion demos\n\n' - f'[Vertical / Instagram](https://github.com/bk1202/proofcli/releases/download/{tag}/proofcli-instagram-reel-v1.mp4) ยท ' - f'[Landscape](https://github.com/bk1202/proofcli/releases/download/{tag}/proofcli-landscape-motion-v1.mp4)\n\n' - 'Both use results captured from the actual exporter and ProofCLI. Covers, checksums and media validation are attached separately.\n' - ) - p.write_text(body, encoding='utf-8') - PY - gh release edit "$tag" --repo "$GITHUB_REPOSITORY" --notes-file notes.md diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9e47f11..c6ed007 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,7 +14,7 @@ jobs: contents: read publish: - needs: [validate, demo] + needs: [validate] runs-on: ubuntu-latest timeout-minutes: 10 permissions: @@ -34,12 +34,10 @@ jobs: - run: python -m pip install --require-hashes -r requirements-build.txt - run: python -m build --no-isolation - run: python tools/verify_dist.py - - uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 - with: - name: demo-video - path: dist/ - - name: Add the demo checksum - run: python -c "import hashlib; from pathlib import Path; p=Path('dist/proofcli-demo.mp4'); f=Path('dist/SHA256SUMS'); f.write_text(f.read_text()+hashlib.sha256(p.read_bytes()).hexdigest()+' '+p.name+'\n')" + - name: Render a screenshot from a real failing check and a real passing run + run: python tools/render_release_screenshot.py dist/proofcli-screenshot.png + - name: Add the screenshot checksum + run: python -c "import hashlib; from pathlib import Path; p=Path('dist/proofcli-screenshot.png'); f=Path('dist/SHA256SUMS'); f.write_text(f.read_text()+hashlib.sha256(p.read_bytes()).hexdigest()+' '+p.name+'\n')" - name: Prepare release notes from the versioned changelog env: RELEASE_TAG: ${{ github.ref_name }} @@ -48,39 +46,4 @@ jobs: env: GH_TOKEN: ${{ github.token }} RELEASE_TAG: ${{ github.ref_name }} - run: gh release create "$RELEASE_TAG" dist/*.whl dist/*.tar.gz dist/*.mp4 dist/SHA256SUMS --verify-tag --title "ProofCLI $RELEASE_TAG" --notes-file dist/RELEASE_NOTES.md - - demo: - needs: validate - runs-on: ubuntu-latest - timeout-minutes: 15 - steps: - - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 - with: - persist-credentials: false - - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 - with: - node-version: '22' - - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 - with: - python-version: '3.13' - - name: Capture actual exporter and CLI results - run: python tools/capture_demo.py - - name: Install locked demo build tools - working-directory: demo - run: npm ci - - name: Check demo dependencies - working-directory: demo - run: npm audit --audit-level=high - - name: Type-check the composition - working-directory: demo - run: npm run lint - - name: Render the 30-second walkthrough - working-directory: demo - run: npm run render - - uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f - with: - name: demo-video - path: demo/out/proofcli-demo.mp4 - if-no-files-found: error - retention-days: 7 + run: gh release create "$RELEASE_TAG" dist/*.whl dist/*.tar.gz dist/proofcli-screenshot.png dist/SHA256SUMS --verify-tag --title "ProofCLI $RELEASE_TAG" --notes-file dist/RELEASE_NOTES.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 448dfa7..985b7b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Changed - `proofcli --help` lists `run`, `validate`, and `init`, each with its own one-line description. `proofcli run --help`, `proofcli validate --help`, and `proofcli init --help` each describe that command instead of sharing one sentence. `proofcli SPEC` still runs a spec, and exit codes are unchanged. +- GitHub releases now attach one PNG of real ProofCLI output: the failing export check and the passing run. The release workflow no longer renders a demo video or installs the Remotion tools, so a video render cannot block the GitHub release or the PyPI publish that follows it. The motion-demo workflow can still render preview videos as workflow artifacts, and it no longer uploads those videos to a release. ## 0.4.2 โ€” 2026-10-16 diff --git a/docs/demo.md b/docs/demo.md index f1dd293..b5c14d8 100644 --- a/docs/demo.md +++ b/docs/demo.md @@ -27,6 +27,6 @@ npm run poster The output is `demo/out/proofcli-demo.mp4`; the poster is `demo/out/demo-poster.png`. Dependencies are locked in `demo/package-lock.json` and are used only to build the video. The Python package and GitHub Action do not install them. -`demo-video.yml` renders pull-request previews and publishes the named revision after merge to main. It refuses to replace an existing asset. Future edits must use a new revision filename and matching links instead of overwriting published bytes. This media workflow does not trigger a Python package release. +`demo-video.yml` can still render preview videos and store them as workflow artifacts. It does not upload those videos to a GitHub release, and it does not trigger a Python package release. [The hosted demo workflow](../.github/workflows/demo.yml) intentionally has a successful ordinary job and a failed ProofCLI job. Its failed overall result is the expected demonstration. The separate validation workflow asserts that same failure and remains green only when ProofCLI rejects the broken export. diff --git a/docs/releasing.md b/docs/releasing.md index e0c1704..3492b30 100644 --- a/docs/releasing.md +++ b/docs/releasing.md @@ -4,7 +4,7 @@ 2. Install the hash-locked build tools, build wheel/sdist, run `tools/verify_dist.py`, then run the real-process suite against the installed wheel. `tools/audit_dependencies.py` checks build versions/hashes against PyPI's advisory feed; no runtime dependencies are declared. 3. Only after local validation, publish the candidate branch and obtain green Windows/macOS tests, both distribution-install jobs, and the advisory job. Inspect skips/failures. Merge the same reviewed candidate into main; retain CI links as evidence. 4. Create and push an annotated `v` tag targeting the validated commit. A pre-1.0 release is not a production/security certification. -5. The tag triggers `release.yml`. The read-only validation matrix must pass, including Linux runtime and three-platform composite Action checks. A separate job captures real demo evidence and renders the 30-second video with locked npm tools. The publish job checks tag/version agreement, builds with pinned tools, verifies fresh wheel/sdist installs, and creates the GitHub release with both distributions, MP4, and `SHA256SUMS`. +5. The tag triggers `release.yml`. The read-only validation matrix must pass, including Linux runtime and three-platform composite Action checks. The publish job checks tag/version agreement, builds with pinned tools, verifies fresh wheel/sdist installs, draws one PNG from a real failing run and a real passing run, and creates the GitHub release with both distributions, that screenshot, and `SHA256SUMS`. It does not render a demo video. 6. Successful release completion triggers `pypi.yml` on the default branch. Its read-only job accepts only a successful tag-push release from this repository, checks that the tag points to the validated commit, and downloads/checksums the published distribution bytes. A separate `pypi` environment job uses PyPA Trusted Publishing with `id-token: write` to upload those exact bytes. It executes no repository code and stores no long-lived token. 7. Confirm both workflows, actual downloadable checksums, PyPI version metadata, and a fresh `pip install proofcli==` before announcing index availability. Release creation and PyPI publication do not overwrite published versions; inspect partial failures rather than silently replacing bytes. diff --git a/tests/test_release_screenshot.py b/tests/test_release_screenshot.py new file mode 100644 index 0000000..2215485 --- /dev/null +++ b/tests/test_release_screenshot.py @@ -0,0 +1,69 @@ +"""The release screenshot is a PNG of a real failing run and a real passing run.""" + +from pathlib import Path +import struct +import runpy +import unittest +import zlib + +PROJECT = Path(__file__).resolve().parents[1] +tool = runpy.run_path(str(PROJECT / "tools" / "render_release_screenshot.py")) + + +def _decoded(data): + assert data.startswith(b"\x89PNG\r\n\x1a\n") + pos = 8 + width = height = None + compressed = b"" + while pos < len(data): + length = struct.unpack(">I", data[pos:pos + 4])[0] + tag = data[pos + 4:pos + 8] + chunk = data[pos + 8:pos + 8 + length] + pos += 12 + length + if tag == b"IHDR": + width, height = struct.unpack(">II", chunk[:8]) + elif tag == b"IDAT": + compressed += chunk + elif tag == b"IEND": + break + raw = zlib.decompress(compressed) + stride = width * 3 + 1 + foreground = heading = 0 + fg = bytes(tool["FG"]) + hd = bytes(tool["HEADING"]) + for y in range(height): + row = raw[y * stride + 1:(y + 1) * stride] + for x in range(width): + pixel = row[x * 3:x * 3 + 3] + if pixel == fg: + foreground += 1 + elif pixel == hd: + heading += 1 + return width, height, foreground, heading + + +class ReleaseScreenshotTests(unittest.TestCase): + def test_real_runs_are_drawn_without_clipping(self): + blocks = tool["capture"]() + self.assertIn("process exit: 1", blocks[0][0]) + self.assertIn("999.00", blocks[0][1]) + self.assertIn("FAILED", blocks[0][1]) + self.assertIn("process exit: 0", blocks[1][0]) + self.assertIn("All 9 checks passed.", blocks[1][1]) + self.assertIn("PASSED", blocks[1][1]) + data = tool["render_png"](blocks) + lines = tool["_lines"](blocks) + columns = max(len(text) for text, _heading in lines) + width, height, foreground, heading = _decoded(data) + self.assertEqual(width, tool["MARGIN"] * 2 + columns * tool["CELL_W"] * tool["SCALE"]) + self.assertEqual(height, tool["MARGIN"] * 2 + len(lines) * tool["CELL_H"] * tool["SCALE"]) + self.assertGreater(foreground, 100) + self.assertGreater(heading, 20) + + def test_unknown_character_is_not_replaced(self): + with self.assertRaises(ValueError): + tool["render_png"]([("ok", "caf\u00e9")]) + + +if __name__ == "__main__": + unittest.main() diff --git a/tools/prepare_release.py b/tools/prepare_release.py index d7c4d84..9614ed8 100644 --- a/tools/prepare_release.py +++ b/tools/prepare_release.py @@ -21,7 +21,7 @@ def main(): run = os.environ.get("GITHUB_RUN_ID") if run: notes += f"Validation workflow: [runtime, Action, distribution and advisory checks](https://github.com/{repo}/actions/runs/{run}).\n\n" - notes += f"[Watch the 30-second demo](https://github.com/{repo}/releases/download/{tag}/proofcli-demo.mp4). Requires Python 3.10+. Assets contain a universal Python wheel, source distribution, demo video and SHA256SUMS. PyPI publication runs separately after this release; check its workflow before assuming index availability. Commands run with your user permissions, and a pass covers only the declared assertions. See SECURITY.md and docs/audit-0.3.md for remaining limits.\n" + notes += f"[Screenshot of a failing check and a passing run](https://github.com/{repo}/releases/download/{tag}/proofcli-screenshot.png). Requires Python 3.10+. Assets contain a universal Python wheel, source distribution, that screenshot, and SHA256SUMS. PyPI publication runs separately after this release; check its workflow before assuming index availability. Commands run with your user permissions, and a pass covers only the declared assertions. See SECURITY.md and docs/audit-0.3.md for remaining limits.\n" Path("dist/RELEASE_NOTES.md").write_text(notes, encoding="utf-8") diff --git a/tools/render_release_screenshot.py b/tools/render_release_screenshot.py new file mode 100644 index 0000000..9553348 --- /dev/null +++ b/tools/render_release_screenshot.py @@ -0,0 +1,234 @@ +"""Draw a release PNG from a real failing run and a real passing run. + +Runs the checked-in export examples with this checkout's ProofCLI and paints +their unmodified terminal text. The bitmap font and PNG writer use the standard +library only, so the release job does not install Node, Remotion, or Pillow. +Elapsed time and the temporary directory come from the process and are not +rewritten. +""" + +import struct +import subprocess +import sys +import zlib +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +ASSET_NAME = "proofcli-screenshot.png" +FAILING = "examples/export/wrong-value.json" +PASSING = "examples/export/good.json" + +# 5x7 glyphs, one row per string, '#' is ink. Printable ASCII only; anything +# else aborts so a character is never dropped or replaced. +_ROWS = { + " ": [".....", ".....", ".....", ".....", ".....", ".....", "....."], + "!": ["..#..", "..#..", "..#..", "..#..", "..#..", ".....", "..#.."], + '"': [".#.#.", ".#.#.", ".....", ".....", ".....", ".....", "....."], + "#": [".#.#.", ".#.#.", "#####", ".#.#.", "#####", ".#.#.", ".#.#."], + "$": ["..#..", ".####", "#.#..", ".###.", "..#.#", "####.", "..#.."], + "%": ["##..#", "##.#.", "..#..", ".#...", "#.##.", "#..##", "....."], + "&": [".##..", "#..#.", "#.#..", ".#...", "#.#.#", "#..#.", ".##.#"], + "'": ["..#..", "..#..", ".#...", ".....", ".....", ".....", "....."], + "(": ["...#.", "..#..", ".#...", ".#...", ".#...", "..#..", "...#."], + ")": [".#...", "..#..", "...#.", "...#.", "...#.", "..#..", ".#..."], + "*": [".....", "..#..", "#.#.#", ".###.", "#.#.#", "..#..", "....."], + "+": [".....", "..#..", "..#..", "#####", "..#..", "..#..", "....."], + ",": [".....", ".....", ".....", ".....", "..#..", "..#..", ".#..."], + "-": [".....", ".....", ".....", "#####", ".....", ".....", "....."], + ".": [".....", ".....", ".....", ".....", ".....", ".##..", ".##.."], + "/": ["....#", "...#.", "...#.", "..#..", ".#...", ".#...", "#...."], + "0": [".###.", "#...#", "#..##", "#.#.#", "##..#", "#...#", ".###."], + "1": ["..#..", ".##..", "..#..", "..#..", "..#..", "..#..", ".###."], + "2": [".###.", "#...#", "....#", "..##.", ".#...", "#....", "#####"], + "3": ["#####", "...#.", "..#..", "...#.", "....#", "#...#", ".###."], + "4": ["...#.", "..##.", ".#.#.", "#..#.", "#####", "...#.", "...#."], + "5": ["#####", "#....", "####.", "....#", "....#", "#...#", ".###."], + "6": ["..##.", ".#...", "#....", "####.", "#...#", "#...#", ".###."], + "7": ["#####", "....#", "...#.", "..#..", ".#...", ".#...", ".#..."], + "8": [".###.", "#...#", "#...#", ".###.", "#...#", "#...#", ".###."], + "9": [".###.", "#...#", "#...#", ".####", "....#", "...#.", ".##.."], + ":": [".....", ".##..", ".##..", ".....", ".##..", ".##..", "....."], + ";": [".....", ".##..", ".##..", ".....", ".##..", "..#..", ".#..."], + "<": ["...#.", "..#..", ".#...", "#....", ".#...", "..#..", "...#."], + "=": [".....", ".....", "#####", ".....", "#####", ".....", "....."], + ">": [".#...", "..#..", "...#.", "....#", "...#.", "..#..", ".#..."], + "?": [".###.", "#...#", "....#", "..##.", "..#..", ".....", "..#.."], + "@": [".###.", "#...#", "#.###", "#.#.#", "#.###", "#....", ".###."], + "A": [".###.", "#...#", "#...#", "#####", "#...#", "#...#", "#...#"], + "B": ["####.", "#...#", "#...#", "####.", "#...#", "#...#", "####."], + "C": [".###.", "#...#", "#....", "#....", "#....", "#...#", ".###."], + "D": ["####.", "#...#", "#...#", "#...#", "#...#", "#...#", "####."], + "E": ["#####", "#....", "#....", "####.", "#....", "#....", "#####"], + "F": ["#####", "#....", "#....", "####.", "#....", "#....", "#...."], + "G": [".###.", "#...#", "#....", "#.###", "#...#", "#...#", ".###."], + "H": ["#...#", "#...#", "#...#", "#####", "#...#", "#...#", "#...#"], + "I": [".###.", "..#..", "..#..", "..#..", "..#..", "..#..", ".###."], + "J": ["..###", "...#.", "...#.", "...#.", "#..#.", "#..#.", ".##.."], + "K": ["#...#", "#..#.", "#.#..", "##...", "#.#..", "#..#.", "#...#"], + "L": ["#....", "#....", "#....", "#....", "#....", "#....", "#####"], + "M": ["#...#", "##.##", "#.#.#", "#.#.#", "#...#", "#...#", "#...#"], + "N": ["#...#", "##..#", "#.#.#", "#..##", "#...#", "#...#", "#...#"], + "O": [".###.", "#...#", "#...#", "#...#", "#...#", "#...#", ".###."], + "P": ["####.", "#...#", "#...#", "####.", "#....", "#....", "#...."], + "Q": [".###.", "#...#", "#...#", "#...#", "#.#.#", "#..#.", ".##.#"], + "R": ["####.", "#...#", "#...#", "####.", "#.#..", "#..#.", "#...#"], + "S": [".###.", "#...#", "#....", ".###.", "....#", "#...#", ".###."], + "T": ["#####", "..#..", "..#..", "..#..", "..#..", "..#..", "..#.."], + "U": ["#...#", "#...#", "#...#", "#...#", "#...#", "#...#", ".###."], + "V": ["#...#", "#...#", "#...#", "#...#", "#...#", ".#.#.", "..#.."], + "W": ["#...#", "#...#", "#...#", "#.#.#", "#.#.#", "##.##", "#...#"], + "X": ["#...#", "#...#", ".#.#.", "..#..", ".#.#.", "#...#", "#...#"], + "Y": ["#...#", "#...#", ".#.#.", "..#..", "..#..", "..#..", "..#.."], + "Z": ["#####", "....#", "...#.", "..#..", ".#...", "#....", "#####"], + "[": [".###.", ".#...", ".#...", ".#...", ".#...", ".#...", ".###."], + "\\": ["#....", ".#...", ".#...", "..#..", "...#.", "...#.", "....#"], + "]": [".###.", "...#.", "...#.", "...#.", "...#.", "...#.", ".###."], + "^": ["..#..", ".#.#.", "#...#", ".....", ".....", ".....", "....."], + "_": [".....", ".....", ".....", ".....", ".....", ".....", "#####"], + "`": [".#...", "..#..", "...#.", ".....", ".....", ".....", "....."], + "a": [".....", ".....", ".###.", "....#", ".####", "#...#", ".####"], + "b": ["#....", "#....", "####.", "#...#", "#...#", "#...#", "####."], + "c": [".....", ".....", ".###.", "#....", "#....", "#...#", ".###."], + "d": ["....#", "....#", ".####", "#...#", "#...#", "#...#", ".####"], + "e": [".....", ".....", ".###.", "#...#", "#####", "#....", ".###."], + "f": ["..##.", ".#..#", ".#...", "###..", ".#...", ".#...", ".#..."], + "g": [".....", ".....", ".####", "#...#", ".####", "....#", ".###."], + "h": ["#....", "#....", "####.", "#...#", "#...#", "#...#", "#...#"], + "i": ["..#..", ".....", ".##..", "..#..", "..#..", "..#..", ".###."], + "j": ["...#.", ".....", "..##.", "...#.", "...#.", "#..#.", ".##.."], + "k": ["#....", "#....", "#..#.", "#.#..", "##...", "#.#..", "#..#."], + "l": [".##..", "..#..", "..#..", "..#..", "..#..", "..#..", ".###."], + "m": [".....", ".....", "##.#.", "#.#.#", "#.#.#", "#...#", "#...#"], + "n": [".....", ".....", "####.", "#...#", "#...#", "#...#", "#...#"], + "o": [".....", ".....", ".###.", "#...#", "#...#", "#...#", ".###."], + "p": [".....", ".....", "####.", "#...#", "####.", "#....", "#...."], + "q": [".....", ".....", ".####", "#...#", ".####", "....#", "....#"], + "r": [".....", ".....", "#.##.", "##..#", "#....", "#....", "#...."], + "s": [".....", ".....", ".####", "#....", ".###.", "....#", "####."], + "t": ["..#..", "..#..", "#####", "..#..", "..#..", "..#.#", "..##."], + "u": [".....", ".....", "#...#", "#...#", "#...#", "#...#", ".####"], + "v": [".....", ".....", "#...#", "#...#", "#...#", ".#.#.", "..#.."], + "w": [".....", ".....", "#...#", "#...#", "#.#.#", "#.#.#", ".#.#."], + "x": [".....", ".....", "#...#", ".#.#.", "..#..", ".#.#.", "#...#"], + "y": [".....", ".....", "#...#", "#...#", ".####", "....#", ".###."], + "z": [".....", ".....", "#####", "...#.", "..#..", ".#...", "#####"], + "{": ["...##", "..#..", "..#..", ".#...", "..#..", "..#..", "...##"], + "|": ["..#..", "..#..", "..#..", "..#..", "..#..", "..#..", "..#.."], + "}": ["##...", "..#..", "..#..", "...#.", "..#..", "..#..", "##..."], + "~": [".....", ".....", ".##.#", "#.##.", ".....", ".....", "....."], +} + +CELL_W = 6 +CELL_H = 9 +SCALE = 3 +MARGIN = 28 +BG = (22, 23, 20) +FG = (236, 235, 227) +HEADING = (213, 255, 63) +RULE = (65, 68, 58) + + +def _glyph(char): + rows = _ROWS.get(char) + if rows is None: + raise ValueError(f"refusing to omit unsupported character {char!r} from the screenshot") + return rows + + +def _lines(blocks): + """Return (text, is_heading) rows. Body text is the captured CLI output.""" + lines = [] + for index, (heading, body) in enumerate(blocks): + if index: + lines.append(("", False)) + for line in heading.splitlines() or [""]: + lines.append((line, True)) + lines.append(("", False)) + for line in body.splitlines() or [""]: + lines.append((line, False)) + return lines + + +def render_png(blocks): + lines = _lines(blocks) + columns = max((len(text) for text, _ in lines), default=1) + width = MARGIN * 2 + columns * CELL_W * SCALE + height = MARGIN * 2 + len(lines) * CELL_H * SCALE + pixels = bytearray(bytes(BG) * (width * height)) + + def paint(x, y, color): + if 0 <= x < width and 0 <= y < height: + start = (y * width + x) * 3 + pixels[start:start + 3] = bytes(color) + + for row, (text, heading) in enumerate(lines): + color = HEADING if heading else FG + origin_y = MARGIN + row * CELL_H * SCALE + if text == "" and row not in (0, len(lines) - 1): + # A blank separator between the command label and its output. + rule_y = origin_y + (CELL_H * SCALE) // 2 + if heading is False and row > 0 and lines[row - 1][1] and row + 1 < len(lines) and not lines[row + 1][1]: + for x in range(MARGIN, width - MARGIN): + paint(x, rule_y, RULE) + continue + for column, char in enumerate(text): + origin_x = MARGIN + column * CELL_W * SCALE + for gy, bits in enumerate(_glyph(char)): + for gx, bit in enumerate(bits): + if bit != "#": + continue + for sy in range(SCALE): + for sx in range(SCALE): + paint(origin_x + gx * SCALE + sx, origin_y + gy * SCALE + sy, color) + return _encode(width, height, pixels) + + +def _encode(width, height, pixels): + raw = bytearray() + stride = width * 3 + for y in range(height): + raw.append(0) + raw.extend(pixels[y * stride:(y + 1) * stride]) + def chunk(tag, data): + return struct.pack(">I", len(data)) + tag + data + struct.pack(">I", zlib.crc32(tag + data) & 0xFFFFFFFF) + ihdr = struct.pack(">IIBBBBB", width, height, 8, 2, 0, 0, 0) + return b"\x89PNG\r\n\x1a\n" + chunk(b"IHDR", ihdr) + chunk(b"IDAT", zlib.compress(bytes(raw), 9)) + chunk(b"IEND", b"") + + +def run_spec(spec): + completed = subprocess.run( + [sys.executable, "-m", "proofcli", "run", spec], + cwd=ROOT, + capture_output=True, + text=True, + timeout=60, + ) + if completed.stderr: + raise RuntimeError(f"{spec} wrote stderr, which this screenshot does not expect:\n{completed.stderr}") + return completed.returncode, completed.stdout + + +def capture(): + """Run both examples. Fail closed if they do not actually fail and pass.""" + fail_code, fail_out = run_spec(FAILING) + pass_code, pass_out = run_spec(PASSING) + if fail_code != 1 or "FAILED" not in fail_out or "999.00" not in fail_out: + raise RuntimeError(f"failing example did not produce the real mismatch (exit {fail_code})") + if pass_code != 0 or "PASSED" not in pass_out or "All 9 checks passed." not in pass_out: + raise RuntimeError(f"passing example did not pass (exit {pass_code})") + fail_heading = f"python -m proofcli run {FAILING}\nprocess exit: {fail_code}" + pass_heading = f"python -m proofcli run {PASSING}\nprocess exit: {pass_code}" + return [(fail_heading, fail_out), (pass_heading, pass_out)] + + +def main(argv=None): + argv = sys.argv[1:] if argv is None else argv + destination = Path(argv[0]) if argv else ROOT / "dist" / ASSET_NAME + blocks = capture() + destination.parent.mkdir(parents=True, exist_ok=True) + destination.write_bytes(render_png(blocks)) + print(destination) + + +if __name__ == "__main__": + main() From 31a1666bed3dc99b9f7d7d605473a09c9bf5679f Mon Sep 17 00:00:00 2001 From: Sean Davis Date: Fri, 16 Oct 2026 14:25:43 +0000 Subject: [PATCH 2/3] Draw the release screenshot with vendored JetBrains Mono Pillow 12.3.0 is hash-pinned for the release job only. ProofCLI still has no runtime dependencies, and the image uses the unmodified command output. --- .gitattributes | 1 + .github/workflows/release.yml | 2 + CHANGELOG.md | 2 +- docs/releasing.md | 2 +- tests/test_release_screenshot.py | 72 +++--- tools/fonts/AUTHORS.txt | 10 + tools/fonts/JetBrainsMonoNL-Bold.ttf | Bin 0 -> 210988 bytes tools/fonts/JetBrainsMonoNL-Regular.ttf | Bin 0 -> 208576 bytes tools/fonts/OFL.txt | 93 ++++++++ tools/release-requirements.txt | 5 + tools/render_release_screenshot.py | 279 +++++++++--------------- 11 files changed, 257 insertions(+), 209 deletions(-) create mode 100644 tools/fonts/AUTHORS.txt create mode 100644 tools/fonts/JetBrainsMonoNL-Bold.ttf create mode 100644 tools/fonts/JetBrainsMonoNL-Regular.ttf create mode 100644 tools/fonts/OFL.txt create mode 100644 tools/release-requirements.txt diff --git a/.gitattributes b/.gitattributes index 3e9a73e..2bb0f3b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -5,3 +5,4 @@ *.md text eol=lf *.toml text eol=lf *.yml text eol=lf +*.ttf binary diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c6ed007..43da328 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -34,6 +34,8 @@ jobs: - run: python -m pip install --require-hashes -r requirements-build.txt - run: python -m build --no-isolation - run: python tools/verify_dist.py + - name: Install the release-image font renderer + run: python -m pip install --require-hashes -r tools/release-requirements.txt - name: Render a screenshot from a real failing check and a real passing run run: python tools/render_release_screenshot.py dist/proofcli-screenshot.png - name: Add the screenshot checksum diff --git a/CHANGELOG.md b/CHANGELOG.md index 985b7b6..2bf35ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ ### Changed - `proofcli --help` lists `run`, `validate`, and `init`, each with its own one-line description. `proofcli run --help`, `proofcli validate --help`, and `proofcli init --help` each describe that command instead of sharing one sentence. `proofcli SPEC` still runs a spec, and exit codes are unchanged. -- GitHub releases now attach one PNG of real ProofCLI output: the failing export check and the passing run. The release workflow no longer renders a demo video or installs the Remotion tools, so a video render cannot block the GitHub release or the PyPI publish that follows it. The motion-demo workflow can still render preview videos as workflow artifacts, and it no longer uploads those videos to a release. +- GitHub releases now attach one PNG of real ProofCLI output: the failing export check and the passing run. The image is drawn with a vendored monospace font. Pillow is installed only while that release image is built, and ProofCLI itself still has no runtime dependencies. The release workflow no longer renders a demo video or installs the Remotion tools, so a video render cannot block the GitHub release or the PyPI publish that follows it. The motion-demo workflow can still render preview videos as workflow artifacts, and it no longer uploads those videos to a release. ## 0.4.2 โ€” 2026-10-16 diff --git a/docs/releasing.md b/docs/releasing.md index 3492b30..c2b2d89 100644 --- a/docs/releasing.md +++ b/docs/releasing.md @@ -4,7 +4,7 @@ 2. Install the hash-locked build tools, build wheel/sdist, run `tools/verify_dist.py`, then run the real-process suite against the installed wheel. `tools/audit_dependencies.py` checks build versions/hashes against PyPI's advisory feed; no runtime dependencies are declared. 3. Only after local validation, publish the candidate branch and obtain green Windows/macOS tests, both distribution-install jobs, and the advisory job. Inspect skips/failures. Merge the same reviewed candidate into main; retain CI links as evidence. 4. Create and push an annotated `v` tag targeting the validated commit. A pre-1.0 release is not a production/security certification. -5. The tag triggers `release.yml`. The read-only validation matrix must pass, including Linux runtime and three-platform composite Action checks. The publish job checks tag/version agreement, builds with pinned tools, verifies fresh wheel/sdist installs, draws one PNG from a real failing run and a real passing run, and creates the GitHub release with both distributions, that screenshot, and `SHA256SUMS`. It does not render a demo video. +5. The tag triggers `release.yml`. The read-only validation matrix must pass, including Linux runtime and three-platform composite Action checks. The publish job checks tag/version agreement, builds with pinned tools, verifies fresh wheel/sdist installs, installs hash-locked Pillow from `tools/release-requirements.txt` only to draw one PNG from a real failing run and a real passing run, and creates the GitHub release with both distributions, that screenshot, and `SHA256SUMS`. Pillow is not a ProofCLI runtime dependency. The job does not render a demo video. 6. Successful release completion triggers `pypi.yml` on the default branch. Its read-only job accepts only a successful tag-push release from this repository, checks that the tag points to the validated commit, and downloads/checksums the published distribution bytes. A separate `pypi` environment job uses PyPA Trusted Publishing with `id-token: write` to upload those exact bytes. It executes no repository code and stores no long-lived token. 7. Confirm both workflows, actual downloadable checksums, PyPI version metadata, and a fresh `pip install proofcli==` before announcing index availability. Release creation and PyPI publication do not overwrite published versions; inspect partial failures rather than silently replacing bytes. diff --git a/tests/test_release_screenshot.py b/tests/test_release_screenshot.py index 2215485..2b4cb37 100644 --- a/tests/test_release_screenshot.py +++ b/tests/test_release_screenshot.py @@ -4,61 +4,63 @@ import struct import runpy import unittest -import zlib PROJECT = Path(__file__).resolve().parents[1] tool = runpy.run_path(str(PROJECT / "tools" / "render_release_screenshot.py")) -def _decoded(data): +def _pillow(): + try: + import PIL # noqa: F401 + except ImportError: + return False + return True + + +def _chunks(data): assert data.startswith(b"\x89PNG\r\n\x1a\n") pos = 8 - width = height = None - compressed = b"" + tags = [] while pos < len(data): length = struct.unpack(">I", data[pos:pos + 4])[0] - tag = data[pos + 4:pos + 8] - chunk = data[pos + 8:pos + 8 + length] + tags.append(data[pos + 4:pos + 8]) pos += 12 + length - if tag == b"IHDR": - width, height = struct.unpack(">II", chunk[:8]) - elif tag == b"IDAT": - compressed += chunk - elif tag == b"IEND": - break - raw = zlib.decompress(compressed) - stride = width * 3 + 1 - foreground = heading = 0 - fg = bytes(tool["FG"]) - hd = bytes(tool["HEADING"]) - for y in range(height): - row = raw[y * stride + 1:(y + 1) * stride] - for x in range(width): - pixel = row[x * 3:x * 3 + 3] - if pixel == fg: - foreground += 1 - elif pixel == hd: - heading += 1 - return width, height, foreground, heading + return tags + + +def _size(data): + return struct.unpack(">II", data[16:24]) class ReleaseScreenshotTests(unittest.TestCase): - def test_real_runs_are_drawn_without_clipping(self): + def test_real_runs_keep_their_output_text(self): blocks = tool["capture"]() + self.assertIn("python -m proofcli run examples/export/wrong-value.json", blocks[0][0]) self.assertIn("process exit: 1", blocks[0][0]) self.assertIn("999.00", blocks[0][1]) self.assertIn("FAILED", blocks[0][1]) + self.assertIn("expected: \"8.25\"", blocks[0][1]) + self.assertIn("python -m proofcli run examples/export/good.json", blocks[1][0]) self.assertIn("process exit: 0", blocks[1][0]) self.assertIn("All 9 checks passed.", blocks[1][1]) self.assertIn("PASSED", blocks[1][1]) - data = tool["render_png"](blocks) - lines = tool["_lines"](blocks) - columns = max(len(text) for text, _heading in lines) - width, height, foreground, heading = _decoded(data) - self.assertEqual(width, tool["MARGIN"] * 2 + columns * tool["CELL_W"] * tool["SCALE"]) - self.assertEqual(height, tool["MARGIN"] * 2 + len(lines) * tool["CELL_H"] * tool["SCALE"]) - self.assertGreater(foreground, 100) - self.assertGreater(heading, 20) + + def test_png_is_deterministic_and_readable(self): + if not _pillow(): + self.skipTest("Pillow is installed only when building the release image") + blocks = tool["capture"]() + first = tool["render_png"](blocks) + second = tool["render_png"](blocks) + self.assertEqual(first, second) + width, height = _size(first) + self.assertGreaterEqual(width, 1200) + self.assertLessEqual(width, 1600) + self.assertGreater(height, 600) + tags = _chunks(first) + for banned in (b"tIME", b"tEXt", b"iTXt", b"zTXt"): + self.assertNotIn(banned, tags) + self.assertEqual(tags[0], b"IHDR") + self.assertEqual(tags[-1], b"IEND") def test_unknown_character_is_not_replaced(self): with self.assertRaises(ValueError): diff --git a/tools/fonts/AUTHORS.txt b/tools/fonts/AUTHORS.txt new file mode 100644 index 0000000..8814941 --- /dev/null +++ b/tools/fonts/AUTHORS.txt @@ -0,0 +1,10 @@ +# This is the official list of project authors for copyright purposes. +# This file is distinct from the CONTRIBUTORS.txt file. +# See the latter for an explanation. +# +# Names should be added to this file as: +# Name or Organization + +JetBrains <> +Philipp Nurullin +Konstantin Bulenkov diff --git a/tools/fonts/JetBrainsMonoNL-Bold.ttf b/tools/fonts/JetBrainsMonoNL-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f78f84fb433cb7179e11ebb85d92ebe9fca1dde5 GIT binary patch literal 210988 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

A*Gn0W7LJTJ^ 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 MKE+@1AmrQs0SBL!IsgCw literal 0 HcmV?d00001 diff --git a/tools/fonts/JetBrainsMonoNL-Regular.ttf b/tools/fonts/JetBrainsMonoNL-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..70d2ec9e28d6e06e923629b78b8a12c12e841589 GIT binary patch literal 208576 zcmd442Ygk<*8ja`&rA|Jp-b>^3P~uTNbiJ%A|Q$sO;9AEhz$Y7-moj!dl!4x6YL#( z?|4;I6zsiRdm-<4ojHdaxpJTX^F06e^SCrH@4l@DG&xSh989j7xeIF-&s<`pyAi2C}o-DQu3OAr3)sSaPV{iaBVH}_dIw>IyH2ggz0^=!Yh zu=e1^EqbyWIRAueo;ysU&$biED_Xp0|E1qn?3;QX1cmICO#>LT}u7>SAi85zU zorwKo;~Gw``u&*tU7|m;`}L&EPu@V?lQ+=ZBm2q@;v|aBu|LVFBEF`1Q*3R-MOEeu z@szPV($-H3YIc*prkuSZjY3%~T~yyne*K+2!*$QZ3jSLy&Fbqz8|)vZEH38q_uk;F zl4vbQNn`0^JQ?!h(pl#Ipr-1ggA=ZdK$ ztNXQG%t-ZX(1teqpQdXmM_B;5v9A8irFCp+dN^p^Q2*1v(z07N{lB%rmd@8c=VC|m zXj3IXGGZ$A4Rqd?D{wp@GNBc5*3*>CoQ2*2Q zp+VX8zvJ7#A>;cb^=(eWd0yM2W1=DdRloFjgZls1Y3;MNL&wlTsH|c&+sgo2DPc~%jf{oTBeq< zJ>;%gdL3e1XU-j*O~=q3p&D}j)c(x|9SaTHt?kqHYa4Rc!(6*_?bPxsVJFb~Pt2nB zC;}~0X#wg-&7O61*+b`9O>3E2#x9U6a{_7g z)BbCD+SZ0Kp>|grsGoB2pmpdu)LnmS1Jb0A1vFz1Jx9ye`V_5Ox3!Pj4=p>_hMcX{ zA6mBN*Lw6E&8xQ6xYIW3KArD0ooh?3-`dt3dOU}gktwVn1= z^G(dE)~RLXw$)A=Tbf7D)i!JV=8or7<64jDww9@7Yy7tXjYVyfmZ9Y48dW8?FLzwa z(YETgo|`+aV@%W9Z*5m@%xOKE*1Wo3+rM3QJ9mCL+f$(eG_Cp67usKqLEW$Eli@r# z8&<&SfbZo5I0tmh>Hhz(@?AvTXTWjrf0EYrHe@;54bd^&5balvGfAr**TSpt7Q6r& z*Xy(B+_OJuo;#omXdboU5wIs{{W?a-lUaMH50%F7mPkGKruB!Az8ADCJ*F|1D<`+T zFZ;AyEmQrY#}zGK_bUg(O3-pn$)dj2c+_oe`#YdzW}86wQo8ea&>9U>$z$NZIjmb7xb=>eLCJX?s`COE^19$kM#wuTl?D+)MlDj z^JyG!4VQuD)p}Gf20hjl>Osfq<=M3QRokikrmT$ZwajbaV^CY24;uGcpO&Y#(sroo zIcZe=q-AR!Rn4cGgE5>bTgS2W^CpGa#wD7kiN+qM5{Pn~D9eKSG*rnb)YIj7oAg_y{! z4|4IBo10a&9XfWh?atU#<5SB}&Dm4ir|7nxqvJ{2n`@))Z%9L1Xgf8(o~Qe>ecaTC z+PL_(9ev2^cZz$`ahAeiC#CAM zTw6A&mZ$l&zHI)?F+ERXJ9~cpo1ClU@@wAz1*R;jikgKoG`)FQ+J?XER~uyO(_{Y? z>ZgWzGB(V$_dLo{a@!45&(ZyVIk&-f?${>Hm8GiVWV7x1FDVOje=eQdZn$qt=}g|I zIUgFHpV|N0zwZ~_H!19IcuvD~=G?8ac{IPy!<*HS+irMX!}R8DX}GOz$hGe;`*oaY zec9uGn@8J~&68+#Hy@1~Erz`#0@xc+UULw8r{w**0lf z+jt{rJ95{8ziYR)p^7&C6v)gw8h^Sr>PlKU2dwxq5RkmpS$$$MQhinJZUqv?XS8Y(mJJv7N@m9e`gpvhLZK&(nFv z&!21cDLwig{6czV$dj?}HKf&^s(QZq^cs>2h7dxK5eXY5P%4cF9lbSXE~Rk|JAu5PwF+g$Yf=5Y;rc`FHByOyd!x}^1LWvCrRi@@&vZ^l#i;;AR`)SDSkiOt*OsbV|OF2z&F z;i=Q?nf5Asqph>g+Si?N&0Ue};)b~~Zb!G9JHuV%u5`D$yWD;5P4|xb(EWg?mf@+D zSx>dbQysFN>Kh*tA08irr#0Z*lprOE!AJT-okr)DSjN*r|8~z*C)4 zT{4~;m^v9xU5uxG?;>4N#Zr83@yg;Gi&quDSiA;LebT^FD>r#+Up#e5=@WSBzNt;^|SGfjTbR! zTi6oI=#8F@p3-B{3(<4YV|efW=+tXfAhxz~U+}VFVz`Xf>ZtLImmysgt zKNI=jfDiWhVA2QUK1h&m|3Ur-kDw-rVrghNm_>xPImO zi$3I2;q~XOKj*`#>(Bjg%7!;X*&8m{aQ=q#_;>P#V>j?Q@CJIjp?brd4_4{%^~bnDr6|K$76zW;gHzhQ;yhJ!Zj zr@H<|_=l$SXWc97HmqBlNnN$>{B@VFJ8|8y@6CL#dfmEpPp+G>Zu+`u>jsFtbMHH} zE;b;sIi#Vd-B^k=!l?br4zf4hDHZLWn!qltDO$H&Jyb-Kvm zfrdZ!7yFz2!)|oWF?*7yARG<(Tw~X&VeU+h=H%ik7yfriSLXV-acptLb0@e<+$whm z7I7ax|bcj%CO;IrTOI{?JwYS@r(S*e;wI8mCG6S`(^$Zf6ia?_>(B( zwCwTa{z|s6tiKs<&E@obYayHCW`B==*1zcA@!#v7yeKb^|Fb>M%gbw;N3ZkR<#oy& z?UYBf=V8mdr}JLSZ<(L9NJ0MsB4|rL1yl4$!PLN(a_N41uV9=6Q>!@g!;w|)G+__d=HNkWQcFxRzmspK05JIXYvmYGr`hsxnx zm5-K_9~XnH|lZW-qhIEH;POvHoB?&c0(0vAyjP_IT#h6a686iT}j!XP&h4?c27> z@9)3!2iUi`R(k)r{oF6Mef{^=ny2jUHfa-FIk%Bke6gXiwC6h^?WBXmq_31nH?GeU zWsHoI@sgC;vbWUATsc_ww6Dm4a*muXXUbV}gB)fi%8T-lJSnfq^YW^!k+t%*Y>amLF!lQ6wZ%9NO4rp&%-hL~N=R5QcuWR{qbW`AiTFSAN`SlY@f(n;Qw&hj?b zoOfhvo))I$J=PHKOMm%RO63EtL|@7P`A)jZhcZHbm0|L;jFR7Fr2HlovQb9MpR&Da zD%+XHGS);g*))-D8FW)j3z=#PO)Hsh+Q?3(z05G}WM|Vss?1ihi|Hh@OlR5E#LU*R zn~BR(Gf3u`F0#KFD2JHgtW-wJGE*r>nF=|^jFscfwsM>qFUOj3a*EkOR+#N&xtYvW zau2!G%$GCFG`ZX?kW0)wxy0k5z$ZMasRkWvF8toPB9qkkC8!d{?h!#gnqVuBjqYI+bqO+sZ zqqCxOqBEm&qy3_bqKl&oxuXAMo;P2cugtgRJM%qjuP@C%S&O~TI_zoljCs~P#|rHw z^9pOU*I1>!Zq}O(=0o#=`N({1K4S&&sriOgz>iT=o~JaAT12g))=}H2UDTd+!B$Z* z--PKJl}6p7?orRES5(HTZg4atY7-5OTC#4~Ch8vzhz3Tzqdu%5I!0Zh9_EFp(EJtx@vAK7c{CH4t>scUZ^ zx0lS z+8yjvJH<}(C;1co@%{w2onPrM^PT-nKf#alWBnvQ+L!ubU+t5AM_=wI`-y(I-`Q{H zr}&ib=ga)IevI$y=lZFBj_={8`AT2w`}^^JhVSWn`=P$8pY5mn5?|qKe0RT#AL6_C zZTv7l%MbM3d@n!G@9L}k_I?N7$M5C``JMa-pYQ|xU_a8wxq_bVkLKF{rTxl&XTP!E za$j<*y^ZU7>!{6o4_2>Bu{B8a|f4g7K)%ZI1se9D@=w5PP zbG84*J>$M`Pq;6+_J6{PI_(~DAG0F3)vb0v_!hpAd(r*VH}m=KdH0Ji@&&HWcW`(6 z=I&MZv+wBh+-<(SyVEyyuegug8uy#K-QD8;bZ@wa-S_Tw_q%W6z1zq-{Wp%?M-(x+)i$1SLLeROt*`h=jOUOuGZCXAGn*F@0Pgz-2QHsTj5T3=W}0p z3iliruvR+To$F3@XSxgBrS3F$7WW~SxpUlk?nrl(TjmaPN4o>uq3&?E)NW_Dx0CE- zyQ7_M7u)^qzIKUSWcOoU;iq4?Hx^xoG3#WohobR-Js3>{tgeca0lOEP3fQ4&mwUvr8fqf0-4nVQ5qoV>=%P0@9W)iN}0WQ#7y@gd1Ut@(a zS=2UTvuMB7j^kl4Y@4MVosdP(pO|F_bW)Zb(e1KKLs|XH_D~I)PpJW29V+T0J%@E7 zD>q>s7dRT7p5bSSt!^vA~1q9GDAg|9M&T-1%A7qr1Zb_yKfvto#9cW~oOt=D=v2Y7BvCiS83H zt@nefln766p5<(+mA)z-V0k5HRZB9|L9>`cuG^p+5(#_T`s=8G`;AFuS6^1EI2Q?YEI~DCurccBR_mmm9V-=G{$AR`U)7Q4B4`@u8 zya0E$!u>)9jSIC`#%7(-Mgffl?prfR9BmTN_~4#419!!lIXW{>6HlgjK-UZ0<7Uu! z(YZS_e|JF(0~$Nr0cYTjT69j&%&^Y2QIfGvRxoggl@plK(z}>iT z2c1EEtJj9i^`R?T6wnyt4m*Rc54gw9puRG(fUYOF1J9toHSvJ19W+)l@q!QadXu^4 z;4h7pOuXP{?$tBsI>HnO)VCT#nK&AaYTrQpufH*)=sJM=wt(8WdqCF<+{XpfC&XMP z?#7}$vuG?3yP5c%jP}l=ep7pau2Z-V46v!cMWg6CgL}e&`fXr9*Bm^15S{@9zYRe_ z*Bv|y2&k{rUZCp^o=*hSKWbmlb&1Aw2KAxZ5p<1W%Co2s)h?iG7M^Vc)Ss0BU9;%* zJA?XA`wzNi;n_z({Wdl&Vo1k|?^vTTh`4Coq%XCHw$s?~@hnt&XO)@D&#YCl0vLFZ=Ce$NZY3Uq!J zwaxAUS&lBqqW0S(AS=;5v*^CP0&*$3cNQ&gpMac!F3h6#+czMWql>a=J&OZ!3A!YU zwsF6JT!yM|6m6sW6?C1&Gme1Pd0;@-P3E91TE@WvT|?>mFS7<*g&x{~!$^a!gLstAz4mOkih0XYv% zXTjg*g@FFHn0YavYaH`(7K^@`r5Ih4WjgwgEE;QXX3@A@n?+;uoh%xg9|!b4%zP5i z>!JBPplfaOMV7(n4*|W0Gd~9Ox@!Ii@YGSvp8;Ltn2mwV8oi#h!nsk0fSiDGj-q2d z>KM@9tBZ;PI##2;0bS=t{Q~OqXiz|}V-fvPbS)6w8}QgKx-a0LM;{3I=g=qNDc0m) zqR#|8wvXNn_^;8o0{&BUZNPtnz8&yd7xq;Ax9Gb8kIf=I2L3_x=YW5Rbu&%0hW)Rg zQNUv>T~F)U+*7B`3-~wC{D8;*wjkhNLWvK>(-zw};Ay*U67a8~O#_~|uq^_fw%S$! zPkSwPR{T0N74Yw&#Fp*K{`b*=fdBo6=u#jqJT|jOW?|bN7szXm9v{ft3dP4tv?qFE z7A=GEW0$jkFZ7f^#2B%s!RhSZ7d;~osh$appNKizUIjOhX1=pG!cC+Xqc_8?q|ZZd z3q)F8IuMimgc321?el@?9F&+)BCY?$Ky)tpQXtw7eI2lIbP=jP zgXlsLho2Q4yZU*ZVtzvLwPL78Kb2F=*QgJeuTWw@Ke;pCqK%+2=`YYG0YhxLrU4!I zu6e-VFV`ZVW7@TZ)|~q^+6LN^rXQ{yFy727DE@c&-q3E>1$16nkCp_?hiGZQe1H-c zt{ZtiLc2o`(x0Ja0rM%^Ghn_!dqHpV{DAg>e%MFb-X8{#CLY~D7)qM|K&0)O9MJj0Z4Wz;hnRN6lM<fSAle4q392|(`%w)uNz+faOF-u*w`)M>Hn&?KQX9_>MA*)q5zx8c zof(J<(X#^PXY}kqq_(*zV17X_4n)JzD+A_N^r}EK0=+e0enW2yL?h93!2FKZ1)@>t zT>+if-Q9tx9KA1~bG*Ah5RFFP4Cs9C-U>t&D07XX^S)!QQ6l{6)&&?2;+SicNd2sF z29b^%jV*}qz56&2ae~vBhDc*U;|wB;YWzW@aq&YSa_EnNh!|=7c|hm2*s_2=r->aM z&^1f!n1DXxi5(lz^-k=#fIj1i9Usv3PVBOPoQSRr2)>J55zyxcu`2_7iX<^D7vv@M z>HwcCNleQHeP$8UHi16(ja?Ve=N7T+1AGD{u^R&V3?p`9fKR0)c2hu}LvIe~6Xn<~ z0euz{BOVmNJ~84!k<}>iphzA{JSh4MCblXd`RMHdeI66LBOnFnodJC|6C-{U@hI`5 z=yRReJpn!;li0lhz3-0^R|=n+NsPEs^!`8gK!8uuB=%rH@B3p91@!rJ?BReulZdSj z==15A)(84bBBp%+eO4XQc7r~jh-q6vdZAAQ^jSsh$$&odj;TLDpL4|2cA(FOW9kpk z`|p_g0Q6aMOzjSOzaD!&pwC8QF9h`dFZN1>p<$%mXUkT_vXYAF0K8uaL z7SQ|7*qVSWKwl5&J!tG70oen6BcS)AF~+GP^HIjBqW7_}wE=xT8+$vT_nk4ut|E(3 z#;(F=k`iP5DzXG+>?(R+8hbw=`=RRtdY>BG5RgUa2LV3Ml-P#>IUD^bV0J;(mmue& zYIo54qS&VaIUoHjp!Y_x&jWHH`b9wRjbdL0>^Nga;Xk$MH^j;_KSDfW;>9*3gEvMK#(kU#a8j6fTdsYPOvq3uvI)3u)Cq1 z1D1G;#{>RQG!gKJqsf59@9{1HI}9xeSmHU}Ct$Hn9KXiN>$NZa19nez2n?kS#AGU@0p>eM)pC+AI)VhvFB-ABMIKM8rt~A1VF_ z6#pbTa_(&?eo&%1G#T*pBhe+G_b!QE0e>V~9?D49Ah?dWj!Rq+(6w9Q!ho*b5|;*a-Ilm4;E2Nn zwpJWIO{k5oB0U7X2C$Q^=@K`7xRusDe#ovnk4JB?A`wKcaV2QOPaidsbC^&Q1oWOb zxiDa#ME4EoJ!^7Nz&?d84%p|=B?0?1x?e!=ca!@E?6v5j0p4CDN#-m??*)^G2kg)2 zF#)|-OdcC>TcO9n@!0SM^aMDO^zZ0Na5CwKQH>$6ccW@Y(EHJ(jwNs!r|Kurd())G zF6g&XlV`&@q#L2<2K4?ic^;h4{!&z94)oqMd0{~BMUxi?^gcGJV+`~@HmTzZ^u9KE zS->?zbu5A2LnoQH6upN|sxLwBvy&PVp!em;s{(qjoV+@q_s_{|0xp57|G++q-V?BQ zq4x(|5`7?Gb>D*l`v|J%JjS_t{PBQQ8>sI=@8Of`SFop|8fRc{K{X~opEV?33|Q=# zd^un*LN^5L^XS(BtM>RNU{|5v23#EdE?}{1DhhZ_+kht)QZAtP+bL|M_*>C}fZYMb zmx`T=HV)V+DE3wCG_*s&W8+k(fG4I>%pHm+&QgrkRAI?lCKOM< zQe6WcAE$Z*JaLd381R&p8Wiv|(ZK;f0cGw{{5W)Iz>h_T1-$lmc)*WFM+7|anHm}J z+OAOnUyYUrJTZ{cbHMM2Rs_5ruMGIf=$L??h-%&7wN7ml_?^-50k3x0HsIB^+6V9{ zRL=+B57l;qFGKYl@Oqxs2VU#kKH&SJ>Ob&vQ7sp|`cc~reh#YJ;MKj{iq6f&8zkT-xF2efbWg&67cGiT?1bIJS*U5qq_yX*00;(iHTHA zz^lEr9pH7J_5pl%RQm~D>zNnu#6fC)z-!#?9`M_s3j$u_Vvm5=w(J@38f$w6d^dFO zfbWIw6YyHk!hqL4?HllFk43PU_NY&m1biQKzkt`i?jP_P%S!`ZZG1q$Yiu4E@Co#w zfFFP!9Pk?ZhXlOF@1X%7M^6s;i_ql(e>%D%;EzVn4S0?Biv#v+^b)v~G5#fbS-^gW zUJfhS{|$OYK%dd3u7s=De=B-*K%b4Ku7PWr-y-z7fIjO@T_3PFp*IBVjc68oHfcQu z6eB4;2W&lhOTcbKUkrGy^LO|In`?Q00>?e)bm4r(Q)d?gw8h_nTA*-$Ch7zJ95gTB z_d)Xm{wTB{;PH8vMge~z+Bo3pYnLVge?QtZ;Lk^!1^lsS^MGH4wg~t-v}M5Kw=RVN ze+t?v;7>za2mGmMn}A<|whee}-KAZ?-;K5pc@DE?90*QgJ;r%`;QIO4DvA1Uq`6dx(>3ltwI?gYMe@sZ+IqxeYC=bFX%Nby=8K2p54 z5g#e;MHC+??w=?=QoObcA1Pk@ijNfcJc_Rr_X~=@6tBnem*UkP_)BrbSaCeywVp)4 z5humTfY*NGJH@?<;y18!2Hb6E*MQePbqlyV(e44S_U;jIub^cC z_YvAN;MSnM0`51ocfb*2#eD+q7Id3{W2_hV4Y)VZegXF|+CSjFM+XGl>*&CM`yCw= z@ER9`1Ky)U0*-m4cxb@Ai4F_6=g{E+_Y*oI;QoP*47fkgQ30?1EDv~Mx_ETJtwJjT zo|q`E47j!Em;lX@;;{ku8agiEenrOz+&$>F0k82sA>iuKi2;4aUpy(`UPiYIxDDv! zfO`PlKHxq;cL=x#(J29UCAwq4U5ic)xckv*0e3SxJ>afDX9V1R=uQE56S{N2twgH= zz7<*>@D`mJaMz%_1biX7Yrse7tbn^3-7Vl51I4ogzAai4a5tc}0lzgmC*a$la|7;r zbY8&Si_QLiY;zPUzkN-x}Q~;I2a#2J~~6;(Y_| zZFCVVW(>ZIE(y5x=zanBKDvKEKaVM18qm*FiVq05Z_xt-?kn`5fPQ9Ed~m=$h8_}d z&!UG0+*9ab0rwDkc))#*9uaWgp+^SXQ``=q3RoOYL6!Z?mYBK zc$)o3qR#}J`ds4x+|lTB0jDwbe86dpyclpA7cT|eQgjWx&bb z2{?_-p8}2;ELj-v#9qmwfTw*WCk8zJEx~ss_|D_U($)db_$zH2@QlCG_5r^aIxyh( zMj2m<-43OE#cq!>&J;TdC2kZu8O2_T(=`4o#gb#DKjX#Xj9mBL57L?h>%X zUw03A>?i(uR0aG^BJX3v_pjt*!yafFi1oZ)d_9)2r`R9R`hX=K>URm)3FxeVrT%)_ zq4+dkJ!_dkqRYj+J{X4Z%zPy}3`UZ^3N42*q_0QEWsvArbRtY)|0;AU>`j_+l9sY~ zT4q#@t&Ybh-6PF+oRrR+HnS?-zbM_cx@PzI@)=d>sJQmt0x6KWb5nDQ5{a}_r=>DA zhLWVRrlM!sl%?Y}yZ1~-WvN6e(KBt!;`45|ZQ4pjWx91`yr!n2E^1R*QCDm$(^2L0 zgX8I@DH4^n^U`k0!K?TsLyAc!=66cy-c`-pnu<&q+Q9(Rb5T9%CU3Drt`*DCDOLIdg?A!WG-4> z6;Dr@!mje_qIi0+rUqA6$Lm6FTGW+Y*{yiGj~?%%Iag1qieruCwefW0DOEM>iR-b( zni{C7fi*=n)z#HSSS#JMa&B6tR;6W1bU~^D4{%CN&vahK+*l$$uP%R1 zMO+VRcZ)*v_5ZZ589O)ayC*nU8DAb>PF;0~s#JBNI-V|{R>iR* zwM(`sJ=6JR=|+`3R!J1xT)<|kB1O2QDr(cwoZZuAE)7ZNckh{QR2J9PHm6%o=8%Q< zme*8kmYOk{);2C%)u_2tj;-jP*c3QT%KjQiO+zWB2TiD?>oxJQ%Tu-L)QqvENF9=n z7tzRED{*bAc1)#N+7}l@qmRB=AtWrEX1St7XPtg%s2>W0W{Hm`lUcg_Sk&SEvy4n2H!9CNh%O>quHECMdS(IRZ>&*T(Wp&c3az<5Mt5%h1Q(KWP z?4d)B(5k3wq5rkyzqDzGFKqFYsyZEqn5$wr9;Vus-4iKJ%cY42J+7xPlJ#gcJsD5? z$FujZ&f0qJ_oFmh#DMy@i(WJY1zGO3ej?DVR1t5ijNY`Qt&*DOWIRm5xV?$E(V zp|qBYiVC$r8;+UUx;6zp(kprtB?<3#^s#M^p6T{wbw;%V_Ez1htj?--EUR;>MP+qf zwNqJLp6b?Rb@{5XvbqA*&SiCtRC|u4+FU_Af#I;AjkxqS-Rrz*JGP2RQN7r&fqAx+r+-;|K&Isb zC@qvT_TQ%oW}m-pt?rk0cZmLs8JQYf*Wa|&z7E75bl`8#sbR3x4(^#ARMxBg@Sf?x z|5a83doJ0B;38>P9Pbq$uTui1ov?iQ_|$l&peinW%(`5W1{>414Hh2C+|@4Ko@|ck zv^bNkuBlX{n^g9gzr0r}9v{A(GKc*&TfA2&FP)dF$mNcwYjjR2-?8d;7x(d^+g*w8 zSY4qrZDS^F>Zb*%aW&~Yy#3eV%E&T3!d1yt*34t@aZzQmbCtD4q-&~~A2vUymZmZP zr^eL|E=p0uIQofXYN5Qpsf32;l$^&Tf-^h;#}#C=mQZ4?UahndmjAOe>A&hCScd0p z5vK*dBx{S*aLhDf)1h=@CX;x4Txz^ls$LwKJC^B8uyk6cSM`by=Yp=SkHSt0-Qpm}Xv$xXR{Z5??%amuZGJ{&S$b%Xh8c1vbt(jk(rn^k*XfzZcTu z|1QA(CsC~S)_H7rYH(4aLA)fYv+W$u1U$4y&MMooHLOQMeWrHF_GXg_CSZcLVc4@e zVT8Btl^)0_pSXqnlPJ!#X`LQKp6$xgLy*a8#j%(>K8}lU&RW}-X+WnZW9A*oxbGcD zVhRbPi5<&UnarN4BrvJu~gn)Lxl(X=?9GyEL^=rd^s^m}!@$_RX|QQ;V?i@J$X} zoY_j3b6`nGjwZRE8eOxcE7;nfYb{C5vos_%&jFb{dO-6W$jKu%m3mNSD|5!dA*p8^ z5|WzzP|6t*iaabNHN)W{sTqzS@5oK%9huq6ly_7}YW8Izso9U_%#oqIV?t6h92=6F z;W+Y++Em{0nXOEDCxoPCKQSaV`$?QRDwKC}NNR@VA*mTwl&xx#S=pxZidMPEj^(C_ zYgu(gk95KOwCytG;M@hhr*H%K^i-CU<}|K#;g)Z4o#a>CB{F)OgqQBRQQmZWUVt*N zproKfzHgk}H8q+Tjm+zn*V$)wHLZB4_3Faa%~m&Bomb9RUYn4uu;L*p-}F!S-7A)B zdR-TD(vI9MoK&UT^TyP5)$Mx@3nEK<>?o=-1V{Z5J@?;G6!vC$GnKDzR@DA3s+#i>4@4a30A#eZeQ~yi- zb{zTFv9%43ei-%oPseSe?D^wmyc)m^t3S+?*B{7MX4{T5N7_om)0xcAJpO+Lcyhr= z4!;e`oxa%-_5_|7nG1nMxp@Z27m+X83bug>Pz#h7oe4Mav|)c(0ax*qBL%~N9{L4v z6r9h~iCf?acvmE!ClC2=!nYy?Jh>_$Z^8E>jT%D|hQd_X50=A~a38!1pYx6K2s%Pv zpsXfMfbyD9UenR=7JSE-xf?+OhQN-nC-9`M`EcNAPxEWxA@~P;&3i9-($XRZJaKBl zQ=%5T1MO?s8^!}qYFe%qDU8ElSPDEjEW8>hx9~lYRwIF#u{BS#TK9ypz!R6&^t&}r zg4$rWHrTBVc5Cwp(AGA;inJ|+Zb19nR>KlF8Lkj%HvwvabK7xlJI-y#x$QW&-FG7G z*NAkWA06mN2l~-*65J_LM0rI|i*(u+YT#fvLuBhp;EB-I_$~8o^rukT-kJWy+rUn6 z54#A@axNSOXTwc=YD-^J^fmL%fCJD|;Tm`lUgwj<6+k&%?&oP? zE5P=dr=zsFm^PPS`;uc|Jz$Sg>`_YlOGg9t$UN0M8NC92;iV}pp(~WbGr)OWIjqBl$H65$J)^BXM!*bM2*(5M>Os4D(5@a|@p2UpTf+b#Um5wz$X9kL+zBthNAM?K zXm87x*XeUF`rPX=kv^Q)hx4|fjBU<=o8fVhzVE;fe8IjcknVpgzkE&q2VN{PXgExV zeSmfjqMd{8fHm+XFHCXJ3Hrl!Fb@ugbKqu?A>hkXct@RFA{ zPzGb*cA%ZZY5#EAKVkyZ!XZE`jkp0Gfwutrjl_N_A`3Xafa43!1CA}=*aD6%;Mg9` zp#<&{*^|2Wnkuq)Tx1_&d|?Y>o_O4*p)`klrvJ(!AWJ7mS3RV6Dhu^zZPd&;^K_ z!-<>2UxN>TdXB&+M{w>DJHrB?o+CJZ1pYdTwj33MLx5OWMhq=utStLeNw25fuD=^~eQgzrQy zTOx9K2T*-iWaS8$43F`0p)#PJD@$P%;GZiO!HK+N2)kT`U9O^CSG~wDz;}bua5FHU zT)l=D4jl#5bQuK;X(<14(dXg456Zu*5^hIy1%B2vPDCu-Z{QTTgqIT0#s_HQ10V8IBF41x z5Vm@_DPYglGvQf&QLS(G#Y6bz(a%I4JCGL+-@6bjl5jw5Rqpn z_ZjAgXUD)@BF|Ch^BztNFA#chEWhx#K;&g&_Z7;2)d9A6jRM!y@Is*3BLCPE=))Vk z^WvY|dEpP|t{uTkeyVuM4}E?Y`>z`c`2D@9fGzY>xAkoSTWr9O8)(A^?coAm-a`z0 zcseic=?ssEd`#?r(h2V4m*N;7pMJx#`!-(AvzV9iOa|)yvLg(F>42ZVJPmGwr{N=B z(h~vYeKj12g|D#9S7$>S@ZneZ_G@hQbr+z$U+)SB0e$`Y7NDH3KY)$=g5OrqA9jG3 zdC^Y_ZV>s7K7V%+FZiL1@9*Rn`g`$G9}DLLarp!B_QTgAKQ@7`fNg)ohCdz#=kcPS ztzoUm&*#D_cnN6NFVDfJyyS_Qy;N$mVN1a^YA`NWbk zH)6Z`LRcY2I>3Y6s&s|(#6)|Fv6WB*H*v?d6Y$W0Z%i4#1I!nb*9>@qlJ|%hOk?u< z1Lx(h7E>?+X2L;mAN($+5uau@o&lG^C-AeFCiyTPP6Enl@|&2Zd=lF9a9-%c{$?k` zvtpW`3j7`97F)w~m_2CoQcJ#M>6W9@W=F*`MD6_-JEwfb{Zt58v=I9O~GPer)%en92BUGWMQ~eYYnbcA$?taBK?c9s9ru@D4A&DF;4jpN1W$ zwS?V)^QYs>>EH3v8v_&IP@qpUXwy!VwG;i?X&EoSd0tHQVL-oTmcT_~cIhp=tXa$~ z+B=K%tOt3a4Y4|#`%qiu%GpusW}!N0(@3G7O?3Y`a0(%cvZ~Y_CT5Q8Uy{E zUjz$)`gZRC$H3!a7GR?V^mmWJKzV!8uRU*ufARvGA-uSz8*t9T+r{ilJN8|}%V{Wk z(K%ukKf?=Y=)-Mx0+e;?Dqy^w)(*CXLjc>I_O6)IJHp;@J$xeO47Sf$ z47c#&8_GT(`&~%Bi+aK%VlKuH7gPQvoO5YR%w;=@xt#h}_J=eu{;r@eS4@Yu#9Y}3 zb^&a2<=bMe!cJEaS696(=ISnRBHRtH!>?klDFXa|4gI@@eb?pz7jp~kyaij{LY`Zx=T?s0 zdKP>t=C&Sy?QUBqCfyAd0)DF_Umg9ayGP6_+P?}vu397J_9QHYYv5}!cWeV}-*FRc z5OXK?yYo6Rcl8Hsch^f|?ydl0!c{PySw zSPE~7d2ABUug8d`$BFyLC&L+l|DTA%B6vv5lO=E@ye{S`%6;lIps!EUucvAEGX|!@ zRbrkMm;jf-`(mEMC(j)OYs5THtUiALVAB_x12Of&y<%R(1~1MB{Q45Mc?tWy9KjB7 z3H&bRm5Fenm{*D0SLxTQl>HiQc?}<|q5ZGNpg%8AB8J{*4D4oV5%f)RxVNV5pW3H4nIoNVjG~G zmfhe{i3$&ss8tV%TJJ1T8;-SY2JcJ6IwWd8Orj1&5^Xh0qK*S4Dx$8UCnW0hyF^=` zEKzJBJSI`+CGed@@x>A)7QrhLC8xj|iMmjKmscg?TgXvKK3pVG=_HA|CgE3!x}6K} zNz{D|+#pepmn15CSfZW}NYv|NiF%W#5B2p;Nz|`aqW;u1pfQ{#(ZDl#Sycyk1YVP9 z@N$WU(1xMa5)GRp(eQ&L8u7D4BPnkbb{X}(MCE%)G@5pd9uC{ViSRCbBT+?nxDKeV zasbem%4gsYiN=hBGk`M2Qtr53urGWo(Rj)lkN?JhF44C1cU#)C?QarIz&<>miYB&! z9f3AaTnVe-arg&(3gn&C6k^Z^XzQfuusa+KC&8Z*Z8rf9gIl0pBGw_%X{W;FPzU&P+UxKMVEgG! zU~A|Nls)}Wp#B+$1MS~w2Y6bdoiCKA>SEZ)3&ZI5%pMZ$!g;$~B+;(z;Y*2T-6PR% zMS!1XZ!1xaf#dn8p|3=9@?aP&gNG!VOYG0R6`tILm6^g|;d2!$dD2L>Deu*YkE0^9 zorpwMq6K1&u{#TYO=GqrWp)rL$j|fSw}n2heUE;HiNa#TpNJ})X|CRQnkn13rVW2c za_yfb3!`CwF6S*kk@Tgk66(m8mQq&Ut(kEw`h?aP7wthsgC~2cd~)tzt*YJRDSDzr6nb$d3pJLA3Eg0UHZJ+r{bQ$En7uVtCm{PqmP>A>&tg) z)@-Ly{4u9YW%e#U2r?9%?|+Hra7*;>`~QfzUEQ?*4=K&lKmW!|py%oS`W{h#~LY#aq~4@|XSpYVYq`*v}tE+*I!Z`^Tnw^$+;{wY`~~x#NCI z?bSch*P#Eo{CVBBu)q6X_Sfa|d;Q~io9d7B1GtRc^L%cb7bey@LQkRtHMfM^0i)J{6f{PM<~OrEqh1kiSq(ru?ym3Jn7oyl_{p7OoM(`4p+ zJDb=YVYe?T@3bjLBsQ{hGl3T}n(eF0TZ(jOPwDO2C5j6R3mO%L=*!D%+ooN=er;39 zk^%h(4%$2z3lp)}R>QX+RGH|uc~}BW@Bv+m26kTkHxasFQxE_AOV9sh*^Swr z^9X=H9*Sh;np!j_!X zg3+WuO&V=YpAv0TZRt*7zqW}1IBRm=J z)N!l!tqVD?MIyhEP9gpJwrkraFTZUpLQ=M0-+=@Am!xQ8HZkj^c}vC*=`p%^|9K}I zIJB~2=s|~%nlNG1;nCW8)q`g?vA*x*Ub`(cSB)GnVC0`qR}LM{icfas6XM3vhf*ZN z$_F!*4Wx zVgG^J!W3;v=Cv&(9%xs;HhHH1yroO$%~?8g^sr%-mBWUOp1HK~;yGsGoW)COM^;vj z+<2G%U%LbwW*U>RVNuqG3o_BZ`TpM{teR>3fK20i^TfAtBa`pD8k3)k^?_ntp0jz& zB+t7%e(PEd);EJnwrrnNGL;`(`s%oLMT7cwm@sWKbIq}) zQOCh06$76e)V^6^$I&hKn)>hN+sd}-(lNQs-&pZCwbrKnX+~7A?oSyjM#4kANQlrT z(pE~#`7@21A~K3H*Rv3jZCf{QN}k3EpNqzJcsVaGRjQpV)KJ{@!SM@*3|TOK?%aw= zlPcy$YX{D$-1u(g+<{XjR+!Z2iPY0LTUiU)S_YN(C*Jc7Q<5ye8_{h1GFXGn&Mq*P zziY$r+`3Z{1EG};(dLQ5!bW<*D@+Z@42OSffR5Q+r%wHAGxpiX>@dlcZ`PJ?C#gxa zHJN}*;JtjGxvc#EtCfWLJX%?haZvB_GHo!65AIa{GN0v{>~w~Unq(%je4U&N6Kym9 z(0Qyp?lfIDzG)^gd2N`o@sFukAX9e60>v2%{1WYx36{Mi9$$N~fpG(4}Q!FgSC=V6OJ4fc0yu)mu>DzbM|r+?4cLvke@|l1N-R(I+S0p`_-3Rpqt^#BH1@w zlDloep^Xak0ySA!&&_6%8j;V;RI({=p5*7{&)qBr!YMvG7Zpj7UZeF#=c0z8klO5e z-5@l2=PuRp(p;3}F3}waa$7AGTrj$D!RRU5mru$!-s!cBKPnfwWwcG8x@B|eX?iva*O1KOVE}Vw|ABff*>o|DDWh7X?6XTWZwhHg80z`!w6CJi4xY1^SAXAjuq)qh3D#;liEC}h0UNV+vJ`lb=b z-yd>A^jE#O8EB*i&TG`Mfq`e6TQ}ZlhHrcl3w}R!BRBM-e}*{^t96!<4a^0*M`HK#GRX^jgOIHT8{rj4Tf{2}?cwLJ?h^0!vk zW`3GA>Kv{**tnm<((wOb?K|M(y2^a-xp%snN2AfGOQVry)ca^uN26lNDwfBRWlLjO zvLxGzo#t+*uGhp#AchnmgaC`lE@ks}e}r8pbh2#TLLMv&gj6RGLLd*q(w3G4bp8I{ zIrmP}C<(hSAlo`~=H64j^PTVee~tcUZ}ofjOi$yr^vA2O${FKl@!$B`Z|UXifh#dp zJ|(`yA-=?XX)ra|2idRqR6%3VADMRj;WCtr5Cl{5bKH9#KZH{VrU&2uet^jDpOV|B zrq;eeyqrIgziBXGGn3o(%}j3BH%+wDsSwZ6l^4-Ynm{Cr)h z5$(h?`E#Iv3#CT16VDXS7fKCQ>aw4&RH3vic&2CFa;4&yWjJ5NB{%525uc1(;$%Ll zE%^g69;vT>9FL4{L~H?tj>4q+%YWb#$&zYART6`K#pE-Pw;=P#vb01y&jsxCGz%nG zDT|>Rn-H#Bg*Xj5#}Uswcseo?3XMdrvzqnxM6GsXkO=Mk!7(?Trpsx|D9u2GtAs0Y}TxsyIA~$37pq>Vf5lA6~+zOG2mT#JH~KkeScJPqP~1Ad`$fbkZ@@W9uEu#9Hk*to0YCWz{Zn-8$rW9gG+^=9Ros1 z#gc&UZkJ**oSZyjF<~eEH|qhfn`{27vu)~a z?C{t_D=HxKC}d@qDnjmb1@wiQvHV?_oc=DmWVh$qja;T~bu`F+Vx$VR5qsqHi?UJK zb@~S=PKX`3Gk7 z45x!jVz~bKALJq~R*UcHco;oTi07hR$HT*R^YJ#Wk&exCGG_vo;cEAjNM+_)W~xmL`*X*eN|HCyYc3cMcjdQ^Z?vD;d_S+2 z#F^38xt7L{d5Lx%j}-Hwbr9`;l!rJ|6YaDPyd764xT!`j*$S<*=LZ;GR%*W>nA zQs~MR>#XC5vrtor_KT%jX`i@s-K3!lCzKX1duZ6|-Vpu5AkteyHI{I5=jruBRx8N9cyYU`K{HMzy|TcLBh~ zk7%dqoBpbXb^$M4yR1Ik9Vy5w;t(Utjz3x$qv!Ios4@IYkW3MX=0wN=qLIqod9HK@ zz$k}-{Q))218Q0fs*#mjK}FIMvC!aF=sjXB`ee-74R*`U#dX5gCia;N<&+cy%kY$V z3iI(sr#IVc0oQc}wE4OMt%A-xc0b!&YuAwkXEH&y%9hnEl6j>=u?W9;3{gKK}pbgR{yt3VWdrhN0^-xbHG z#bJsaN}cgl;V|`SoBy)dd|Mi<8u?5z$rFVk`o)^haQjTmX#yFkd?u)TR-7-k1XvlM zVVZ@?wlA3}q5@(K@(9pkcIaItt5xsGS*!RG^j-ZcThoBZ>Aw(lwI+NOk_0e3MbS|s zO;PUDz6SZ8-ij!j(iqLF4h@E_YU zJ-x-#P@ou@^)vU~_Zjt%Mx~&^R@2l}gCE<0S$1^xKyh_Wc$rDGqnHvZJlt z-L2|-TFJ~qq8N!pHi!cx1ws~p7`RHrCE#hgUAQFRux9{nlWY~Z>$rf#@m~PGQN(xt z=LfF4?!eu5caMy8-z{G{vAldjeUjZY+8czCi*7UirVQZq1RODFn+)0}OiJL4Kvqeq z(qXpT9BAT@Y%1Ll{0L%$l0zCeZc~pl`oc)$g9A(LCs#iB!LEV9&JW6$?rn+m?7sRU zGxP^KLU?BwK}VS&9f#zWIzs+zFawA>N$eMI?%PV!?3E{>Xh}r{IRL3h;i~kQF;%0l z+?2!#T#4JjKCx=B8TX$$wSWJqF8_%i(E{M-;{ReNmRV@|#EE6~Uk3N(fAx*AUKR?D zjt13#=_T|Lx|r<7;%7n^Yz;M8nN0A7u(1&WsciwYa}9=fIqkq5rA)gEAUt0du_$IP z5l7c$&rAKw?Gt_PU%B(T+dGDaI&POQ0dN>Q}y9FW9r_uZv7ua6&g>nX5T!Z!i)Ja|VQjMZFo*P?m5ma5zXziK6x;Fev2a zaK)mURqHpMrdYIjeJ~!b$6Z`5P6Mpz(9My_P;jiV?%K`U+7^0)i|vsizki_CcXV|7 z^}zFcH*e{x>rXGuSsm`0ZEoJx+0xh7Qq`GOmUHdIUb2tyA@iyKb;8t>+XVy*p&2(2 zO|e(Q_LcSoY~N^-A*`GsC`DGH*uKexq)-L}=L;KP`>DPtorz-m>z|-w`@K?6VY#EO zJSPRV|MpffhV*|+ApP6s-(*n_C~`dNAIiFN`pp+PW&ucEQ(cEdf}F%2=;TB^ zsR+lSjLvL*YY`X*VRo%fGp83Y4c+wN z@#9v9J!rmdvG3&vCKucH_78UU3=j9z|J^NtemOn3r*-yuUy*^aP|3gXuG8U{6E6gA6pF{!A~Rhn07&&o)*S&RlL zm*r~sqTlZ(lNpBN5ymP_I`?~EzGQVvN8p9o-4%=+Ufy@j;pJf0ue)u>79W2{aBv9r zsl&_aBa6qzhx^Z-?H|S{;8)FgiCJ=oN(iDt?Fz;^wxTq>uv};+dZAqj)aLTz?A6ER z+X2{|j(b8Dv1cP=II6(@I2xspLAGP7g=vUXoPp9x21;%L(UBmJ{qo&+)06MMoB76B z?$ng}>bUwG4jmsOKXmWphfY6S0UR#kgZa|6p){InZc>S&YJNkIJ4-A|0V{~= zt+7Rc{7DLs$xNV=zB>Jz9ODhX#3gcU8V~!LO=^R_QWyd0EO6hC6E`tK8kyc6g$c!o zWBuc1i2gJ~{+uXGDEiY1isy5&RqT)~bR4mQx{f1OigX;&uEUBEz>4J5Qzq>cbYCQJ zV9+-svp19*k_e*8O+M%yGL*EE)Q$8S2a`&R$(oU7gHBV%%JlnH(`jOhYR`$OHB2Zn zhaF`I<+30=|VwN$w(lJNfttg$?l!?V)AVrrm zfeNPQ2@p!x{05$>h`{kGBZ_2P6433P`d%g^uDXVSP<(g|_zg{Ef6@tu$uy`es zH{>b69SnF03|hmobPiY|mDuz01eO)|?AS{@if~y{uG}@<2{BPN8@4PB7%Z}EG<0v9 zJ2C)ky=*X!0JQnBd&KD+amz(<|MJS-^8W1X{_?d;SQ17{R)-P)zL_0mS3GO?rKS1o&#Hf;-u_d&FFoCBhX*J$RJa~uy)z|G zs0^=GVy}*EBm~vGY=KP1t+ryn{KDS%q-V-aVbL z{PBG0K9#U^$?f{miFR5#(O+LW56(D-skcYZc=B`fGcMZcjPvJ2&$wu(Gb^6Y&uny@ zvG?j!K7-`}P6>M)5L{3>tqvxlUCEFY6gcMTR0*S9wq0zHpShv%F}HJujjCT_A5}lg zrXzC0RAlW5!l3zM`LcW_VOf&fb$MO1lZ8a|*Ueh_7+xQSmq$RN3#UZ@@HjLIzhpT8 ztPd|w%6qFrqb!e3H-Syb2J^&$%_cKrMx|xj__66Zeo%Uy&Yp61mwLFo$LZ{)BjaVi zQ`0daJ`g^khZ820+^+AlXs7iS{q=oL?k|prP_W3*V8l*9yTyS9Gy=xJ`2vIlu2waX8W>m%$&wxB+s-hwH4F?7;}gpJ_~G<40z zK+xX=hpO@MLjq1YM-x`r`Y$Noqi+DmsIpsE638Sc`2Z-Lk4Ot(pSEKg_H zWPXl=poCvrlJ@w+)nJT@%s4+`Wfwg+-pJKPA9UvNQ;> z_Rn$?FlDcF%fopLo2S7{zyhKouGz%QQ4zO)s}<50U`q@5D)dcD7?FxpIh(514 zq5VR%y(FPMHr}TF)o1Qgh7(qY5Kb>B2X z4>YalYG8i~v@mu?#JiHe0k@hIXkmRFlUkbU+UwhWUh-0jo|jrytD}V}&P%I~RTFXr zAK14%KXSR|6kF!Y*!U5Q;P(^uJaS^$^5_^IW4Y#08QTEi@nxMEt zq9R{YptMmpQ!G1t-yM2CvKVNb>!13kb_{N>C@b}D8}DfzG8+3E`olk{EGw(r5$><; zw^)WxysHwQ-skphEA>{}7RJYRk5||G%KEoAS5-C7jofvps=lhMf2yUbs)bEX_!=5~ z>Sr2!huZ3D+i-69%5uK+q{iQt`S~EPRffATM=F=De8dJ1DZnb4MFC_B{ZvEh`e9Gt zwgtGQ2>$L)`W)Iwr`Acs^I%HJbuy{A&{>{ao|VC)4RTnHW=ipSxQmFnRa+-vgw&Rh zu#Smf*vujkSh=?crg)y!Fp|fz@6LdiF z&76fdTA>((_+8CecxQ?QTTFxw$zeEo0b^ic@;W|6>lIyJx>m&ceuuB4EbZa~j84{e zTPm{V`m;{fKxmW6TKgQD_M4HlW~GUdwO?D7Rv&lL(FGI%=@D6{PpvFZ2e(_89EmV< zxU3@->Hulmu37ll;x$44O&8X@2itomIYoC5T^OV=fnkt!w)~=0Ce=w3p;0)ulYs~t z7MpM}w~w5 zuhj)_5do@m=}L?pL$4jWqSL?FSJ$1EX(%h||J&1BuBdz8p~*Ub*XnR+>()?k>sDLG zfx*F*fH&LbuiQNm?pO(J4mTeOy(ct$uqzzy@8>@-DD`1R^PKUJO#Ii6V2@%_W`&h( zm(Yed2Qr(rt*~(k6Co4YR#m0$#&=BgjY^lL1^G^}A|XyY^PDiU#da=DW8v#|&H;-j zBPJc)y&q4^%}sQU!1#jAGmX5EwIfgcN=qQn(%jKuyK49Un!ifhL4Qzgx_D778SJ^x zGsyoCaIrj#Nf${q(mNi>x5*@X2yRJqWF!W1YlMy+OYeazd!I zq?n;1PH|01O_EWuh!v5TV1yVDn>27vKxy1eN#IQoH)8 z;jWf`bHsZ5872+(_72)kte#yx(Y6p;ZtETKxi@cT6GiWTjIaxj{9C&^m~7RYYV9h z;(6}4b^{l`MSFQdJMl^04)I&KbclJx+P@QR$GEsyF8cFvrC5*eYOWjNIV6^g{?A9B zLmN+GxoE#c?H~x@y3qu`^9Jb_0c^9j>RejFC6 zOK$8$V6fY^bnMvD@=^7nzTSgb5o3#Q6PK3NU%VC!_VxiHZS)^oym#@~vBf2S|K_pU zkRwC5dC2L-{lmjCx+6hYtj}}W`f#8W2gV8Paxk=^U8x_&mpHo;`3e;liH7jC0yleR|>`Fbq>xEs34}9}>J`GrviZO0* zC$iX3xL7tJMex%EUV&?d!o)N`2X2TlO=7FFC7@VtxC7{R6|5kc;5_9{&S{>xaA9i8 z$37N%=_U5gsbl@)Q(ecVR74PiLMGs3-NaetwU0Ov2?zU+V3lQmyr4#jau+~*Y2 zmT(_@>_d(1vSOL+o>^X=>7KO6bE|W9exvvGU7YgQw?vx#S1lZ0xTd3daqZId5~~~z z9t;i-bllW2z~vXrlAr(IV*paf(9U9E$uWXpF>I~Iq2ruDbEF)Pqe6EAwQF)bd4h708NRs8JkdA39O-NC z=m$9ea-iqHECP#Hf`h{$^#M$W-bwZ(lMIr&eEBkT6Q(NvhGG2~|1uk&Vh>9fB@5hO zAG!!HSbPJ+1nz)=g9p%peTQ%w44k*)dsg9-FZ|TIw<_pnSWF!XA$+LeLo)N&r&~_Gg9*+gy(ZdU)y7EbTKI5pJE9-dlzeTf`Z@Km{( zlc;#xQ>aHoZ(G7XHi9#!lVKIyFwTb_pL1(-cYKh_IzM`00`fSQA_wnZ{md5+Ubqqm z_u$Lw8|n{#|9iZ62>>@0&?TUNe1eUfl#C|d5~pDRiR3K+MJI_ z5bKe>mE=1>D6rs@Lo!*r-Pk({93gvmtCQV0y6Y<}&s+B3%rN`K)Y@0eeRMYYbICTq z9Q^&SVQJ}o!h-l?$w{^qJHPuBnR~}WA{axLj;-)0*BqwM%jwMJHYi6-;eodl6d+iV zm6m@uT)4GvZ{a83{r$b~$VfL@(r=cFt>N(Ck%AMZ}1n zl)E^$D8Wi`SAT7!FUcZkk%CK4U}Z1^WON}{|39Kff~&v2cziNW^7WSqu3T>}!cjr| zsoQ6F7;tR`;OI~52jz|AV!C7@-tRk&WxQ|!3;E#au2;g_8H4A=RpG0i!-CEXBUz2q zgAoa-Ar7xxh4+zaFc2GR*Tt)r~tgLFjRmA1s!n@TXKnn9HM{7!|(B^ z3Xj9%sH{LNEO~-Jt>7q+YuzOgy)AksWn;6qq9u))o4x+N9c4v@Wn*Q9MP;&gw6dY5 zqM~M7pSr;Q*6s7U)p`AI3}4(?O@Oc_9u`-Y7`+3lBP}ry8#tC0x=5`YVHTnpTVh~d#<|(Eka9`37UxS*^0B(^G#n8`h8WF`XAWd!* z#h^><>j1>Ml@rJJ?K^&Ag<|@S;@V^CUt)Vq{Yz|*sd2B#T>WGG`Rmm`-kwVRdrju*pZ2|&`Uk#8>YvsgQ~&7w z7ozPk^^e*~;t=zTseh#AHALHEYF^?zVrm|>lSCn&!__=V>|YVgm@Y^TM;^{*F%a1e z-&zG(Y-Es}(Wsrd7&3)jg|M#m(J-vk-GC+MqvlmvNnT}sWoAa26~@72NWj(FqB#Qr z8%RwJn_JR6<7Gt^Ni*xI+JB#k0Y0!Ozl|?WF zkysI5I?@06sOC)VbRf~z=b!l1<4w92@t~MU zJQ$*^lu5qI(z>#`;zD5fCaHv#=s*makfI6_EqP2;PE?cF@xWkyxmAQiG}PvCMfu)X zI7Dt^DaX&RUH(9DcR`L84PhS$-AjiQfACm{A3?;J#N}Ng`J}PX2*pBpEA!LA*|bmy zaK+>p2bxbT4x+3SN&bChzM=w>0pbE2I1dp44wwc7I0SNBJi@_AArAgFAA%gV7ad)m zXlvNLqx9%p25HB88m#StmJ6(An@z*(8-pO4=f+{cD-WHWM!_Qp!(Cz zz4tmD>hpzQG@i?t1K-uo6pV(bKXu{r|Hjn(Zn?e5azq5|M*_AG2>6|2gC?B$B? zBBBd|a=hJ&5D;v#*Qdo9#IVq)9qZ!Y{D0Cx1{;T2N`2u}ySTwdTWn zy`Z(Ew4$Q4%D; ze}TWuL)>M!>c~oU#Uu7aD-{7C;+7}A!u9+<9y6dhfYSY+$a@m|AnqmCiMSVTr6LIc zQVWlJiQRLYB(MT5XCOiQCk;1Dwy9~DsucOOW}&($UjhVr^`eI7zZPeqBGbf9T-(Al zan&R61QE=#8P-iVXo6eZ;`n6ZSP{pgh45_DQwGkJJfF(weBz94*i)a!o;aUfQDYlT zi0SirP`M>)ZtHDVfAPzt2?;qwY|bWfh0_JdV!rNzCI!>S3==jd)x{9sXWe9SDl2Jo zjH%EWj%URX>jz|o@6O5;HzYox8CouCb6LC^hQu}RYuwP%6?!n#1@>_mvT!yi%^^h+ zgvkPmM*-cPi5DtCZpg4e5oP*^oYrEprRX3;OGJ*8$Iud8f^vGeM~l;bI3k-TLOb_F zPILz$H2H(8i;az^hXhW-N5$Dj2#Z57(MhgjB)31U=@=g99+(B#iRk|l`!c>q%IIrA z-W%W~NY+v8Q;LubE)j~54BXDp^>caaCyXDsEx`sCYd(Q8lw@goXYwM~;thtu0eOsosg^Im3 z6$~w<+ENEI1J4quANI?e0F|5yDmK%qxJ1aV_?>bVx~+>10*je zWLkQA(HL=0(2b{EQfGBbc2~$AQTXgSbDDJV~HWa%X#vTVZK6Mq;$Bik>fVJD+~&c!C1o5@sJ)yF&MhG zT_e?0xGUWCaWNQLfRb~4AO>F(4L^jbv2VfO-xi$gSQ+SQ3U1xf)!E=59Q3yj%DKIJ z+8U<<-H{9>?TRfu^KDaGy1KT62N3Tw+_Cm5#`90Y(IGEd@aA(Mm| zS|*1y$XJy|8an|SsIE+sk_K$(#x((NtPD;4&EG^`ddXdQVcP&3ochp*rqnOP6)*06 zh1^y~?=vwe%_f_XP;oWk)fS6&FG3VMt%M;VmrhHK!<->^R|P;U*F81FkZY#aMH{nPd#zxjbqU{) zko^Qsuq!FQX~8X*jX76J6;RIcpEJjuh8Y|6h#sEIEIM}qDe0$)S^04)YHHVa;DaKj zL!>Sn&lvT`ZHN}zK?{OIf$53`;fnbCFa#dW07CP|qB=kn6xBvJ7q?@+WmHG);?YPb z&_P+}jx3QwY0t<=5B<&a-w3aH!kxF{eKF%?a=WgbCb#R_X>z-M*hM>OhvNCVb|~6^ zr?vZp(GY|{+VRUE1cg2HvVbl&>Pc^Ydp$|ROx5$>*S(z-p5&esl>#?=ZTz|_mONiw zixusp#ftd~EmlOO%*yYB|MBGbL+K#lB4{0wau_g)1i_l$?J#yNL8$2?B&84^L$^)& z>0HR_abzP7)`Yk-%D;hA57809m_kGK5V~9Ljqq(B_Kepy9$#EM`Z(=*aP#IMTYy4Z z+ory}bcAvaV#M++zws85D4-Vp1npm^SxOf@G^LZ)6st*p#k5Xc&paGCeLAvBsF^Uta`lqd_Uu{u^RL=84O2`J zz#Lo@HDY*H)3f;$xn3@&C^Rw#Jxr3zF~y`%6*4vH_e$zemEU}E>2%sAgE7-~dhv_0 zSACDW*KY51v!iQB?u`{gc4j;ls%@yEAj<^kl3dcEzj5$Vce{W4u`1U^COZ`HPNQLS zWV6A{WRuc0wy@G?0G4bq4qyN`=KAe+e=fTv_OG=|?8c%#yS=YSy#;H-2gS(_UTblT zC%Ii`B%+-diRiC0lH~rJ95HDD+Is;TCC93CZ~cp6RazeV?4hg883rZ8eD$Hv{_CNW z<_x1D%W{$xva|=&3M`g_vResJRGLaRuT+RoFjm|JKr3OQxb^ny*__e|hm~*`WSIPTi(WbvbMY4+G#2=L-i3 zJ#OKW+x3ML?X+;BzrJwou>4_=(e@YR*ZBEPevW>=MLV5u@f`hp^LBn-MLR#Q*kIA0 z&b?^Yi9EtZC$grlk5u88+gnAdL|7Yw{O?8vrp*y{{ZvG~m5ew1v3yysOIViV_UMI0 z!{D%`=&yUHkQ9ngU?h0H4bNdxKYp);q?cg)g~12g`Ig4t{>Lw}%*QE3mdNPDpT!MK zH}f&Rra7K#@4!-t_9r#FUq6HbdbiK`5}93P6Mc@kQvXj(2D-Y&!5L^&YypL z>bHyG#otb;f5czvcS)!uB&hI& z5(@3re8t4YhF@TDJ-lP(-g_a`w$#=(&o0@Pcd#lh*go4B2sA3nj^((4xTP(j&0-){ zv&C$+Kt`0((`2)Cy_9QPl5Dm<8=XnFb1yb8Gh!d ztb}~LN0UTY>k?#kT!oNu7t@%{)@y?>(I$l7gfB{GBp9}lU1KHX6RZUF;3@S|U1fQ> zE(Vj}|0ZH^Y*~`T;rx!ixV@V;!lD>U=R341GMK!VG4EW08?Yic8(1^2yO$tDL2yE% z?*VxjV2T%W>)V)J;V zAGL<-w};xgu32cv|H0?0Td$h8T28fXYiQWkc7V{Tj)4L5C%nzg-cMAvw0xy{v}s_M zZP5|#3@_Nmn6bWTeAi^nSaZ{8HG84Gp`o3A)T2#4UlaX+nE3{9hAZOGb-Pw_yRJDT zx9f~Jxm~}vMEhZEymN2Db0#) zMiN)BCK)ER`UR9a*l$=-SgDy*S(>*4K!Io&yXNhnpGmfNcJ&hwO&S~9BL{2; zcCn|X)}Cwb>1iGx--T!b@j`w#y_YZFYdBlvHl+{52OS;ODcnK$oVRb{1B~5G^gWsP z-^vFrvQ`+3@Vms&5lKV2UQyUZzkc`}2;6`k>&$_7VSY}jvowA#aW?|@+|cLZ0NWM$ zD{wC?&0c|d1sWRzk=6dn`ua-zMCaGl)m&Y@>j3lAc`6$kDm_R76rE8aCHp889uQ_I zWAI3W7-#aOpdR@hTv6i$?Z%_>&#_Y>Thxb>FI%7b|Z9)MfGDiPJAT%INi^wSZ7Mf z?K+bY?Ziw(e_c3E?k}_onP&?RfVvgPgUDH8K_vrG1x0gzBD)!fCb4mn!D_IYO{B;} zrs4$*>>|u}UxXR{@XC>&yiSq5tehFtHTC-#{XX1v^mIB?;;em?%X|BJtMp{0nlDRim?%-m@q!3Omz?7~%6q{8OjYf0X+5b-_)ly1v= z-y8bg_r5p9I>RUWN5fqw!s^#a#v8^MJhBfqEadGj3C})^cVL$b>2FXj;v3Nz%7<4N z&Nrz!)EN>gQJY?9_(5pU4V~Ov11*%F$3%Kw|pIA?cA6VYsb3N+-Tj4 zFi+kea~7%%T^-Ql(u`2!NN;8gY6?VQH@`rr4cayFbv2aSN4+z_?H11u-x#xm~AT(N5GW`s>si zQ|(0ideu&}uUG9v`+C(*w69m~M0-@VuOpNCc+$o#RnaO`Ed2r<^I;8**OD^6i$LphTpM)_#bZF^X zdHuK-&!3MQIv@n;dbnUA9$s6_axfT~!R>{@5oGD0jj{}4_-3FltoodV2*>|BtCXaL(+AIO+Nu9c5`uxgN zn3W~W=-m19lap|@Po^}~$0Ew-?#(Xv$UN|Hp|)WZSM0XQRuV4|Ou$%3WQ7#_wWRNt zI3}g&!23d3J;;+sCUpyWQuWaHRKt#;V7T-0GT_XdSC>~;?W^#Vl@#PV?CGuyS88Ww zI#{|mm2x%Mhl)L(V*LC``k=PL;?O_=NJf_>gDFb2>;K)(WXvAw)0)P^LbHX~*_mb5HynWRPnLV%6DVr-W2G(kI|i zhjel{b!3$AAaIld=Z<2GkSL_pxRb}dKI!C%Jwp@>?`k~rW_?3d8+Ox=swP{5Z1b~_ zEiKEF1%fRsK;p?w7-6Qng3c-npw<)5sR!e~*_?U>(J-O$m#ca z%5vLMtVhf?QzYH_a6aXb)K;Sef(qQV^I;u_^#v*lKEam#RlHy9Su=8vg=z#l9-k!;T6zZ3+c9U%E<{P^FSc>Hm&b!ULM;~!;a z;}5xU%*s>r(s=-7E(H%DUuuA;@Iqv(`h$|XfNVDA6Aol`N_k4ovrtpQH2-FN{PcPr z$L(!$8Q8T)x*$%xjgoFb)qs|a6v*Ni6cf=?AQ#8k*$DO(0hJK{b%>3U9~Vf#=x_z| z6mnqn1jzBu3^OiC`jD6Zp&pRC`ydzcV^Us*qA(g?lswF%9}`&aD6lwDNJN@QJu3-& zf~xPuiHwm=JTeCsyuv`qDmmN7WXH8jA}|L#EN=E8+*)+A-x9sqX*LKx0m#ghgEpp1 zV=3vldgFfUsQE9vyU8t0$Ny69H>+zO7-*-TLbtmRKR-{{{k?syt$p<4cNZ0vmlqYe zuU$_J`jwFmgug-h^TWk(6eT7}(oGFEN5LK{N@y$6OF-)-hK^z~2tc=Bhpko<_?%Dy z1szqPvjjMc9enHl4fKX+f5dj<4HkoRNPjwKrBE&=2d z?~)8@0A)A+>Kw?+T~NTJf`)>I+G=kl(nTQ*%z;Q=xPu!c7$^vqW#tVr#g_syK?;u& zc(V#iKlYv972L%QaEx+Ez2rv- zn2IT9aQ*-f0dJrbLc*>B?0KgJ*+2RLV8gEgQ5>;URMrLyjZFZBN$ zbhss4L!d)VSiO-zhgdK$z!oqI4#6W=9Nr`f^U+&5ZQ)k?3&Me)oT{R5;3@=VLf85< z`&agNSl>dp{M;GMNJgX=OEV^Nh6BBncxE!>BLlWE7fVZKlD1QRc5IDIIeLxIGK?U; z^$0t_;0?D%L+dG;go|1wJ zrN!9W><>07w$@x{k6qR}5LtUQ>w^Ql!?91$<$o)aV zF^KBZ`4l!3`#ned%3Y0QY5TeW8EtTy<^W?@l80- zswfUqGyZ^ZB24vUa>c%4Pz(5jLcr4jywIQ^XYxv++Ra)ZvhY&o_Cf{dmeY}i5J&ji zp=6JlQj}A{KM|%WN;6{VJPYhz^?zS?#dY-m;P7zpI+P}R_T=)?sVPbpk3o=q6)(jg z3NQ#JoyG5Ddli*?qOT@7zK|R6k+~0*d(4!W9xt??Wq+@J1`l03jfe3sb1?mzcovzo1`xifh%*wKqfB87ix0s0~M4orxlt3Y;$sk3bcEMH?o(uam4ss#Yl%awEBy0n6 z%duO{JSvNlpdue3IGx)WpsF|~Q+~a@0-D;%;jnsr_n*FIWM$`{E4gl%J+yZ0x%20r zlY7+*Td4{Y;gwWF(1Zg;_GZ3ATQP4Yi$0-VAmF^-WMKf_xEq?VH)C+_d@-P994ljj8Grvy{uyUu^7exfFp zD6x$(=3M?0djn(4lD3XNL|oQIVxXW)JWyWZxFCkgz2KssVDtpLibQPX1`Q?z+1e4^ zY%*)bkcehE4VXMR*>yh9(&@;*ndR*}jXSpOWiOz9)9vcXTW`WNw%}DLN`>Lh@!^62 zP~|=R9^$|A;vn*m@%vu979o-NgNALEkViP~T!Q7p6^N)a;Z)Kn>BKH?51!eB0dxkKC?&1 zo>_iJ1|lXh(~d2xuYXxCRzFnUo0ZjD&h~RZBF=UBHoiz>H}Y+SwA66<|H?JUuIqw} zmQVVp@rSbbMTl9-hi%M=c+Vp^qqzBS^B%ImrvhJ|qrc7ksxads6p|t8(CgnZ-uhNw zfgFje^Ble4EjvR}E6B@}Bn0c0L>BtYa?df~If6+fa?qBSGzHd)k_`~d{ zqoL<}M@D*|4~=4*s<2Ih(h2`&609-|wj5A2#o-fYm8Dfe3<@BsXe^c|u=fZ`1&Kzn zY~o(*qvsb6Mfy5X{Vi+n4(3vS*3`ysSo0Fqfss?%<1{M7i8x!?xI;Xcv@K4Vg%Z(T zwCF7szzC-u&J@AD*-zB#BF{#~&z}bwo|NCUcJc*0wFeWRdI!kH5GvRBEIrl;_eq`C z#y_!D(VmCr2IZMkV<&guamVHJ{D;QbgKa<5$mrwPJWCFm*2rpU>Y$F8>liLqt)mUFQPNK*8rxB6)6nm z(Px~Ll0KRXWhSkc%a5>Q{y&fN^2Z`SjeP8;n=rl8IJDlIGDJd!hNuc zr{JX!N|94nW34e!#KZ*yJXLqp;6`IV-KxG=2B>6ik|7ayzGNSSiu9_6@z3u!f2gQpI?xPp)LwSM3H!E>; zkp)!`monx`ckw}Tcf(|X%kH%p5RFDRNjfAEDomZ8m5ypcpe36dvV*8(Na7dyM-d@b zl5;Z2ub!SA4Ut2KBFwf!J>JmT+uPbelRq%qy6XTj$!$HYEv?8%2Mhh5WXi4XlHAfE zaYvM4AIy?$ro?5s41+N#OC;Km99T#kBxM&ei54Pgk0RA6rBOK*zJ!CnyR;w=ugJAm zx*cv3ddzf1bD>8Yy>^krCSc4iE`ULzq-V?Q?3VL47})R@w$M{iRaMbr40i_QJoU+$ z;nTx2@||ky6^n@RI9)*sh94VB^KnSUB#q&uVH`k>4+7t!WrgWxua%&0E{q}jh$y~_ zQbe#+n5nji_P^M;?1AX2`or%H_l)h_Id=ZNFZXzBYP>zPs>p2q^-Culhu)CW=6GX+bBTJO=|Jtc{(qBtQKz)ng^_MgB_yeKlxYcL!vGPLMOZ+Yc@kCVJ$6U=CPa?Z1~eNMoHjH~Dy{$uc=2Rp zpsRb32GcbVIle3g_&5#Xom1C}u~7As<-_DKe-P)8s=b<|L4IlT-??;)-??-<%iFbL zr|7qhuQmRVU7&(oa>+!}DGFu83@|4_2pU-34H%dm~UP-0`X1gQpu7Ni9K zD4RwS;IW*`YWgC?PSO|k+!s(`?;4+7n4Vsk9iN<^pR8_ZsK$?N-^>H*r$NqNf7i~H zm7VG>GyBH6{Om@5SC?PC#ovXwb!c}lF-!RKK;nQm0^&hIB2?qcC`wx48q(x6C_1QX zoaNf&5(0lNjIhuP57e}&aA;Mv=8=Z|8}o9L#1 zG)Pm%eE~op>DtKUbVcwtcrNKe#U^PJUO);Q&6RUC(%eYP^q|7-c3xrk0~6uyxEi}p zzi^(a?BdaLcp+WHSyEG|{;gh>C}%`jD7^{mI){?gjp0tcR`yA}0|l#bx;{+rImm!dd( zHuAOc#A+1dU;7$n){mK%;H?e`9#x=nE>Yq*LNQ$t@*m+|V&6oaZitq&Z^@!1tt@-L zE?zc<69i1m8t($|z-zq==@q}gnFyhP1_Nmsx^6?OsY$O65-zm7HMEqU*Po7a`kTEw z)Sod|Q=57Yqvy#v5w!D`HLObGat(r=Y*52W=OlVI&Qvw5s+W(k@IYthK;+o+^08yf zodbUuK-}ARukS`JBLqAxsi^xN9`5<8zv>yrZgT{JcsKiQ0`KOi0B?UHp{)L-bn zzb8K}Jclcb{0`U~>yJY~)&rV9l^`sYIz#PP6C($+G`mJA4j?)Ck$93Y^PKFgOkAq) z!>}Y?s^FZ8eu+6qvZA{cMRk!_5kJrWSFpP~cwKk!zxr%Pmf0vZtDjvu%06{GG&mSi zTZcmD&V`0BWUjREDZZRAWXd5$<>Ha|3Q-Hq?D7f5L$?M6c=!32%Mc6#N^4Tb{_Z2Hg{>d*c}ZbkKoAt+_dIdif>C*5>IzYl3brT*0E+ zxopK_b?qFCK!qEw@@J4%sdP%S#PbdkL}PFyxRD-2RYwc%LACD8}as{_4^gTEwM9)oWv8y7l0_7@E@6M$23YZ0vvJ84Z zPZ35sNis~ma_s6uk9_L>^zFgL)nhAN0|Q<7u^nGoyY5z-eJ(5W@9LWZ$Cs8@j)zBs z%T!7ee_$yH%El?4|NH=S&V^yCT}JKr49Eh4a*L0Qunsk@X?9%OIA_cGmZWS~0` z+!WbuH0S=P6F=IyY0oqNo9VrMEjrA8z#f8$T?2$3hK#27_Uu2SR?R zs=`yHp02C%)nS2d!{D+pxCHRJC=N7A0G4L;w53LMQ38eRgdGR zB7_rj)(yvY?)Q(iUNLj*hPi|7W9^4n5wraQ|EaI5FZ~Js;oZZRUkCZs|0S@sI|f^q z6KsuGr^0*zTa(9MJ*(5zw`c;6IM`aZJ|$8svqcU?I-C7%Jw0uwPc#PL^hb;+G`ihGozlGdS7+pWKD&qy1cl5>)2+EZpY^^6C5P&7M3Mdgxr~Am=KUPs3rzk z)Al;;!r(!WwT@T^l=+>C;65TRUIO{vF=n)phg5D#cgur*mSaW_Z&8@!W0o4+%kzw-%sKYwTb<=3^D0>2_ZkSOpCE`jl+0>1IdUj%%kVz?(itDzFo z`1O&m8vDFkY)r8E}(c6!d17Nyz1)fb}F_LQ`cA(tp9IW#@eNsJHIomexEsl|MG#ExcyC& ze4z^bo_dWF&_-Hg?)B|)&PV<;68TSB-nC17akX@Q(5uS%qUz+60LydQ(M8wwu>3r` zK+mK#;T%s(0flGwMx{9v`oLxM41b4!<-Op1@s&=aYz=+l-@#QjJ1^(So+*6>bGwZY(iQz9|^q zAag7n+K976=1{nKJrv%%(1xPMk>H-Twmre=p3R$Y$4}42i*oy7?->B(?BYe%zJPx& zw#yg)#O@pJejlZgcpoq7ETkiZC$MYzazUwO$m{_Am;{FxZ2*V+2@c2jfX#!*?Ck#c z&g_f$>+gy@8kzX&SA7jEm&dWsYxhDD7Eb$+fH23?QUVtKs(Li?BFDnLY7KiDY#;R4 zgOgW;(Z;ZFx+woLEZnPl*(Lhn;}lpp%|8(f2UGdWvG9|_C$|p*3y;1+^*&3d3Rt*s zrcHr`bEc6R3s3y$EwJ#v#o_x~VBuc1jy<_{iLh{hT_8|zw0e6C3&)cauyCzSaN z1Q0xiylYMXK>F6b@Z;xSIYw_hc8uP5j6EHWd!>$k)7%J5NtE+R20s9Wnb%}tUZ!Cnv3&e-EQ1}{&jsU&~u(||%e|Y>MAMS`U zG$#Pxpdv8oIN)0VQ|q@1pf_+iB%<-zGYMtf;Ix8Ct&Z$))=MX&6A{PD+UhO35Wm_z-= zcwI$R1+i-_ml-(P5a(zp`2$$A>FvSfkh9(#p9^| z)ZfuP{MpYAcX#yT7lO)>3v&OC=8mCYNw~UqsIz%yKR7}dW28KW0?L027lt@l5U2y3 z-ngbmc>;L!M-0l>JsA8^p(ennQc`P&DFB3mHP;gkM>8>dP+s6upNcCm5Rtp6`poBfO6G5{y6%4D zAN~Q7aSLp{3CsSb*m}{MV(Xl)IkwKX<-dci1EVFGNklrVS90$dnO>g8|3^?^Xxv*{ z>#eM*vCU6T|5oca}t{X)Ri#;`hgkp`=0!KjLSI=NZ7 z_zG}jFNf7BQx?WVLZb&FJMMWx)%)JvHGI|lPb0_AUh$syG&-h5>F!s_R5p9nW!SmEl*8{c{1{O^B{ckPB;g*-5jS5m|332#{ks}sNFnl@hJ z+zsnFVD+EM-k?YjBL0I83ULt=SvIb|R!XIHOX8b3&Wo1>T|$$1+=>hXJ(2&pHDr?jB# z{kn)+AC3yCG-14myxnYkIZ6D*FFKwsQRzx<5~Z#d`}9&*>P5ZO6-PuUsg8`mNF6Bw1#q;2 zx929b3+oV^sgqJD5HSg4Cx9*` z$c};t|2>fXj~}>g`qul`zI6Ys)3<%#;}fiarK`VJe?qycC`T2^njjaVP>7#+dvcL# z1a0dP?1b!ZT%`J6dHgyRsn%XWkH&=gqdE2g`vP{32jJ5yHQmjMy-SJL!;@Rb>up#a zTZRq72*zi%XUFh*&dfMm&)@&gqi{skM(|C5^|- zYk2&vvGITwilRw)sD8*DAp|zQuD<6Ys($MD_<`BBt|3(U9PISZ9?<0`&HeyDf^Nnn zXJ!0;78?p@Wyq`F#5Clny+Q$YR^hS z%9NN)Enm6r%j%B~Fz0GUw$b1qD+v3wx|e;lZFg>NMBC19^x~wIEFT1Gumt4E7KD>N*dwfN5b&4_uB>QxLF==Kf__AWr zwGF^>!n2GoB(OGuQ*ge8>=dP}gvk%n019fQ>X5jIh=ijn&3UEdVaf0>_KE z&^If#mEypd_7i5GQxC8k@$)(Oeod)g#m{H?^b>qtF+$DP74-Bx-%eVNsNX7<1819l z$LMgD5u{Dx84(qBa2(f;K152(O180Ta??lWv}}8h(E@i1zeB;8+z!R<9RKN0+4Jh1 zKmSj5G|W8A1q<9S)aSw&gh1Vhrrya1kzkp}=bED`2Kf^IJlQK#WK+BZBmqu)fQUd@ zh}=BH-4d%{a5kH(x&KAJl%L~({{=kXE$~V3)13$u3ilxXBwq~fBMsNUo=EGC!H&s} z!5uBTdmeZ00(XRf3-cAQ!@|p6e1)CR&w!>*Et{u)&c+Nx6S|wU5 z^#3;Rzn8ba1OFzs3u=FWw|`3X$G@?*7}FKnd+{xdlOJH^Gq4kLlRVzbpD)}w658<` z%!MFd;bI7o)r_D9!obZqwx%=q)T}V`Ds55KRw$JwQ#FA%oOs4@j<^wa1j|kVTI>8u!ToFxe%Z!!9n3rL{3fQ zXM^!o62y8H2GmF$Sz@GS!fL7+RdTL%EC)kikP*E&Xi zRS+{dz%*+@mtvAR?*=vFnyIBV0s}a(pqEh z`n~Dns-r2{Xq!H@f1fCe5Lf0HR$Hyi@j*n<=~a%0P~n5h#L|WrfY1=5Wew-MhXK@}Vd++YHP;335*T1)~XRBFJZtdE#r90rG#9(dx;}_+B z>s$2KZ})fX%ur12)2;n0fu6SOFZ_91U*EO~iqzcFt^QlzHc+XqMDGQ z!>dZ%RdU=BW_Vrz*-WPRxGe<|0P%u2KVK@kx!bTo(7JnaX!{uy?92EWLB| z@`>=Zja#cKGkUzfYA_ z6u{`wBSYBN7RVV`IXeDe=MvyNUw(C zY971Uf-pWI#|R+?_)L^L?TPdRP*!bLQQCvSCLCrkd}IelU?f`r^YjO)(l`i0%Sa7^ zzy*sT&ww;b!9^RSu27(q!*V$eSso=%VdS~Mnd1&v6rih6CW8jrg}T}*FMNoMQUhx+ zVIP=wV8qEGk~Nz_&nOVj;X>`8alT3?jcpDL4F&Fb&%pHYJI6|Ds)uVcZAEu1?4As^ z^#_(ip@nuiVhG9i4746;88Quiiqu)$g&H#Wt3x}7MuF;CG zpG3X&&d%Pxi*nxL)v*#o{0hY%!C`D~1QY<@h~FYPK; z1tJMI3{puT;FV~M)DOE(-C8|~}<**#HU_@GI7`f7Gp7%mdPf&|1!bgD-X$<}z6HxQVK#ba(DXoSCrvbd0U(#H1^;VXZ;!7nicc~qj%OMnS z1du{Mowz^DCQ^FhLgv6Zc;wFI?%l2B!K&P1#)dn>J-gdlBR!Um%>#bZ#fuPW?rGcE zXt+zNp+J)oO}ZJ4cD-r_&20Ya9l_qo-r$a_=PzEoY5^Xlf7d(2zOQ;v*B1X?xJqPY z|ASl(%B?4*wT2udC(26U+K5GiV114@4gQ44@<;dsld8NTn+(PC(q3t0%=kKKAStj0 zftHdO;}_J##Xpnj;jYaS{rROxs8KdqR#fbE7Y$7gbvO3|^9b4Iw|#NfG25cCr{U|> zO-NVc-NKU4VKvC^ttDq|cS@$4GB11UhPUv=Ph8GK!P&ZnEBQ#RfZ(V#h zg8_$#`rreiw=sp)J$&1`V|AqTFIkYu%4&!r=uo9&zsNMSB| zTkfspKsq-4o6Lmx1|-p*pglYY&klsgERX7Ldg`UwA2k42B_hPIOKtWBsGo$L(pn|AN zqvj(936-E1S<1pe9OYtUoirL6&gJHC2_hrXD4em7eO9{>%r=Y=EY2!eTtPmQs=Xd} zNpXH%L0wL^s4XSsvAnc6cE{zF7;Dp1al!a-q&yxZ!^wHLYsgn|Ozt{X;T!C34qD8? zl4AFmySTUaYrVFe<6mkRuuo0d2O7RKzO%EXrE{XL>aoYF>UO-k1OLa8bE5&5xyfh% zZv-s1Tdsjk9YN1IkbAg`B0gCnxB>M$&?0J^BOyeA+e5X@jebRF+qo`BZZ1+B2LO0D zne`64zoevV`=-e>tD>Z(9iRUST-iR^Jk{=3--wwA>3(SBQKv6ri{~E6KzJTcUn=qw z5ReJ}19yLtz5rZH66)7ceuCI12#63L(`}DWd8Tk&A;{?lLq-8B&@ywAlnaR6tRS1T z7%>J6eMBzm3fs4s;gFebxoPPep6sTc@dFiqZ}(Rj18uM7*HQ@(^&e!z?)vFNs;aiQbnE_x?Fa!s#eI9dV zD;zspg$=;m@ZhH&yszcS7B(NeulHSF9Zb)Zc?-D<(YwuZ($#d$8A2Vkv+7PzJxWV1pw-LSY+Y>ZSj>~{wQH|In;5(1sqrZ;-*ZfsI{@~{0 zE8pztIk1|MXS3yHtUg*=US9g>p?rrU|Inkpx;meHY2VJl+02ajk=<9(yq?246(bJ) zSK0lwwV~{_^9I&xP@i^eX=xd8;Jl6Dyk$ZM%9q?!DYg(f7L)=zY#G3kWCh|3I5Yte zhMPfDc$R{gWq`kPoOU4K7^Lk?a-sf(7B`E`Qjoi9jU?L$2M!)LYqsYSjtEG>XNPD8 zm4Vf*-f+X}!Ru<4cQ#a1H0)fix$Y-LWo5Qg`&s+`Q>XS%FJ-Nr$y%D;e`=c?&Kqe^ zztJ#)x6$5YVsFUwMt-GmY%9%kpg1V-oVZO8f;3qe_$IiVo5&r=hOb#rs9WCv_+F=2 zdw|Wp@#n9+>82|`gOwi7uX8x+^2fhbTv}QzUplp4{lWfISlP9cNGEy7Vp;pBYowl) z*N?ccnq)bmWItpFr4o1u=p{=B09iec9>8V*Kb0Vh z8TMuMDP~b$W3}ovJqU)bQeUi6AFaX&@N}41IHl5RAQqe62T$*qWd(-?P%qNfAu}6c zz1kXB>1`Gy_l>=cNHC(mYc=|!572v*D3ufeKC6+og(gafPAZF?cFcxT3S4JQXDH*88S*NNDQf`HC;z60rG3X;n3;Dh*RPBBvDO6Mfiu; z{}^P$a*9iPl4vK36<1w|C!ai!(P_+vXedM5B?rNQGDGnZD81%Y5V-+cw2G`fielP@ zzu-q`!hqcgBst>bqz$L5d z2RY&Jt<&vdL@LM!#`zh)+Q31OaYGXJunmZW`;(LE-Rh)QhTs2w_PO`I_w}A0Jin@H z?W9H?h5RzT1U8mO({w;6<)HzhVgwHg;J5(Dgj8Nq`*|6@JQvMUOP-v~V6qk(0}ni> zjp16qDS$1pdoCZmp=SR~Q^m*F2M*le6x)EqE1#>XQp@(A3cE%c*blW;-;7mH2cDlJ z4TeGvv&_snaH|9XY0FL+<|1|jY?LqkUQ|HQqS3_Cyp^`v?WCi*?=IG&UP1f2Hu?Xkd-K4y$}4a9K3BWsMY3ecyRBW8 zyxX$8$hN#G-eN0G9LG+A$B#}|-wrK@}Iv!3;L&fx=&IxfmBDMxn^ z^)Wj`)ChKrH|-J?Bwe^<2*f8$k(`BbCk@$U{H`Pmh zZ0p2-Q_d809KBRByzoMuCb>#9H3+H)HZPi^9>;KqQ`prI9h8-ig-UTNIxVFo<3Z-M z>M3*rSuvP<>N9^;iNS;a2kkL;OK*2!SiV=5C}a;IVNi>6q(~a|i`RmJCpnHxzx~AN z{bdLvLyBBL9?3J5q#X-Eaafh)K}R-ZN47)uou^8J$Xtep;1j=efz_nb45H?&V(X=s zZlxEo8oY)Tl2KZmq8ZYQAnV!Up=@G1elg+bBbL+Wz&mTiyTW^D!4Ra{4!=ofti8|y z-a`qKAzYJN6p2(c$h4(FDgq3hY8;&rL4M)#!XVmFNu2f-Zea8{^;%j?P984@#IYg+ zC@df5@IhwSuxIboC0NFrFDbFxOD_3I7Y23Lx^=sxC$WsBZ|Yd1PI|p!-FZPitV5iU zlgQ!`DuiXRo(gYCabbZySFci|&I^*8Vn7A)2yHeMQ*VRG4NC3=S>DLpr4m-ytds=B zT4XDtP#Lca9#RcBtONb6?bbZv>sv1CZr^?CjL|;%peo7Vr56Xc zJDxn19PxlS3_?Ln-a!PT5$_mDqSP%I@l2Qi^Mx|OCk)31fuYC+lR++KEjE>a?S$>Q z1@InZOVEnjP&x^=WRPwORYWNge8kxMJT51fUqQfeyG)DSY2pi6o`3}!0y&J&fd=cw z(%1+AQtNgPGWCW%!#xlD%NGl1I`)+m6qM{^MP6r_FW!BF$y7=6GPK!(9FuWna`dc0 ze@|s^uJni8xYWZ+VM|6J{GY+D$(P$jw)E77 z&TsF(^89r>g5v{`SY2pW=g^V8n=cNx)}PhzaYN1h!RABuTm*4m;i zZ5wuPTHQ0!(OBAStu5XY-*U|blg9Ci6Ct3v~}ob%dSrW`f-!@=@4lZgz!Nt#G< zJqz3#nBTr@_>Ap)p zw3Pq-@E5Mg%wl48<`oqWU)FXTpK2sD;`kHOg6;U?TKA|(H)g}#qK67suqQ;uH z5Di~A^8L7KlQXc{_hYbtxqa-v{PB{aK7T95ky3il4ks}PmP{U=&vVJ7@ks234aA9L z9+?!t014pBgo5%34&YX)hz+^^?bWXwzNhx7pMK@~N7=f#^ms4pX17UyXBz2MX`IrL z$;$@@K8~5l0=I?eY_q`U47eZ$ljHz}J1?3XxOLu1DZ6ICON(S$jc96b@SFe9HSgIEI4QJhstZ$gqk#p2%fUl%FN{dGcpe3I?&^*c(!-N9hPiMYt%Tod~m#}XP~!b zV8hg;^!b&cx;i$}K5R6v2uuGm&~c&ak1ESg%Lax?7~r&=l2cN!L{RvmJT6&5Pk|o0 zMF)En@EC=$v@amnCx_3CJ}c6G(jMHooM+8~MTT+~VGt^BK7HD&CYcXtle3MMYR($->*b*^}qxDtL^0*9;jYs!}_KX z%EU4w(*mTCk1{PNB44MhE|TAb)9f@=k?aZz)s{`)GQ(S9SAYkDRd2iOvTd6W1gBS4 zd%e{wr-KJbK{W2(a2vs(hu39Eby;hNH|$={?zVS_ZVPo`GKn#hM!0k`y`HjcBPP?C zoXmwU&N-Qk6yMZjs?IT)%C9h)Dl*1>++>p22)S38OvQVHi6o!6vgqA>y>oC5Mn#r^ zb8YWo4u_TbJQ9sQhDq$;)7ev0X56{&zun5k-vwT0!zWk_ynOB)bvKZxvZ)wp}JY@2gumi>-Xw z(_i&g*ZE$@(wrC4W_t1`*{l24?qrRxWM#ix7wWc48`(eFyZDSl6jO+=4O9@QGzZVL zm7EPS;*p`5_;>4a*m)=yxDll?c>yweE-7eaLZM7oCIcXITp#BVOBBU{7Zh{sFSNMx zy6diMYkTn|{z>mfi%SFS^+2SxD{yT<3W6YiUR~|v>u*TeDqf6kop85IOtLFN9=8=F zQtM;zOoN)_xS39iZ>?bbD5nZlBSldthmr^vsVHLcK?vZ(-@!3;utsuB9Z?ke5ok5G z8vIbS^w7bx{~D;a!U91Emb=OdyoFxu<2 z4jg12NY2~&a~h-CJP;XK2dv3K4G_m8BzJ}#%k7rxk;t)bvnA>!uVAalb(if25 zZuNll1lp$*};!7o) zl;m~mX07G5s5Oa~qp;9{*RLPDg9Y!A{(_!g9`tyE^m6A}0nxHq^X4|ts+Pn6-q8I) zAU&Q^y6*v0;Mn8dBG80njfK!ceTju(Ando&F>FE|s{QJ8ZBzoGJUIvpSDoXxsY+4h zfjm#1n+5=7Xg{J-RC@Or7Bn|((HaIH#JZhXG6d56-9`4N*z(Qm)}3_}PJcC^6|V}+ zy*;rh=3B!)RMu!6)~Iaq0uLmUmv|PFm%Lnw*nCp67u;+c0oUQ262o43=-cOe53$^ zV^+XrP^ooT4moh@4MM~WxJ07{88_h3lfP3$%wk&YKr4}610scj&pOox6SBK-%?2)I zx}BeXB)ifedC~=B!#m5*V_pbT$seLf_Bnosbj%LGV?)7mkGrH8jW4p~T0L${hJm|0 z<;+V9HAl&p;pQFla#1JA(Kg=;^Pc~ok+An=4r}~1+nm4hQOr!KuNI{83G|RaOVLD5f$4%^O^1R zs`YwnYka;083K#QwUZPOZ`-gtkj-Ao&XyXoee8>}h-l|>L$_U~Zm{9VI5v{|zaX<} zQ_y42HLJ8l=OFaknNAb*;0p+ksVQ;O2t&T-Q(^#1=A0NTnw$)T(}o*Z7Wz4J;4C`1 zOwayn6ip(S9BKIJP&r8a`2?3-$P)%W?YBf0N&7lTj*Oft#NcFMp9ICvr-c1SKu935 zM1iJ+bhu+3mldVcr(|J&48s2S{V+o|av_oPJ$SlF;3tS*`p|ei#YI`j&ngd15rzie zWWiIkWN4DRlZJ)^@IHEIxc)@a%UOSY)}gU_-83{B?AXPUi#I8@Xi0W<(9l?9ar5$p zp*b%7CM7<9lZ2LN*-576deFKZ(2C}Kr^X>ZkICXQ9~<^GSBF4%D?tt^v_2nclP^Y@ zEs$IVNaP0Al;E`|Mcta9=Ro(b{_8=kO+ht@rsuJJ-40l#*F` zmUH+8&5rDt0PJ-jIV~H4C6f)F!;p!ke0D=-vZBO-Av2jkB4xY$NJHjeP_wqLA?hl= zp}zIvO{*_31`Q+44bhVPBdtB3*|A}NDC9jJsx5X@G=wV;`>UJB+!~66FWRi>m3aH=ri+K!lhSKdNb=4XH-V1N zZVko57a7t%#v1zO!?*9Z*hDecd{MNo%N&%hxpo zW2y<6L17jdLuI~~ZVdJNNIu3zPD??4x-k?f_7LvKp*B7awjpyU0bA0nq1-sSapO(> z&~H(%NZ35roZ4(n?z>NlwH&|*2WTT2`%y_iy0adTEE-w%*`?*sq}H_ zLVH=R&1}fBup8#yxF@Hx#NM5E54r@dI91qfw|5s(9uCK0ZrAidQ0JJ$TnGryLedf^2cP)s3+H%%es%7#xHhVueVuG25Lh+Vvh7>ws!8$#*V*cROGR3($`Vv1g(*6qdsmM zg>hf8jneYvwl6|WDMnG*%AEu@z#__x!V4BrbUw~Xr2k@%OK-DsY2z|h94}`-4g{qN zPR$UZ%D2wjFzpsWP^EBQ_?CF?(WI2r4grd`k7AfADK=*_!Q(0plmr~P*+u3em}atA zR??E8U>TrFEJ+IuKP{=i*%2=))mIl0ET!B}zc zq)dgJxMuQvKR}fvO@)f1jI6}&upC$5IB( zeE8|nRsTzO!P+{WwjYa;A-6VmBOvv*+~&@4u>+WJu>q%5l|WdsmE0Wdpj#cgL4xU zY2rObd9`Ha$n+i)j0lC?dAJ1gDIM-<`5rrr{G|Ig?MimIG8$(yqt9HhsS@24g&5kC zhxX)xPEy8X&fW1nGFYm&^Zv@Jg~CiIS3asdI2}%2ks1~~W%PNR89XzxwnVFeZwEPi z5WKB2z9Z@>{mSe~Rc1qJ=X4~xZCU4v6`gn)TetPrY>KdI>3gCj2W6x1%f#y5-qrNN zh>c=7y3j(sFbYWu!V@GZDxs1muh%`aTq&ThiGwS#2?}HR@+o;KFFGgZan%cY81wiZ zfggnsF6?Qhmfo9WKaeEx>isXQn!6Nxp$lU}1-6P|*9Z%}u`WAO)AE2g9MT*IiOxT5iq~idnHjGSWiwXyfpmqtwzOt8Q}0V6IOc zvx?sBts`B{J&n^Hu?>wq&0Qm{+u}_N<7*Y{R`5McV+pi# zl?;#-2U4KOlaDKMeI6YlWUOGEklLtIsotn4_&nK<=T54Ojb$BEjnVDB%eK=ZP$r%= zi)Jh48(+#xK>8s&FE#P$q}mQ1iS`v0TFh9Nv>(M(%gErYD2o)s=_tu7$+gNPI_3FI zp+>YS3-gh|j|SJm?C=053G)j~W9q4m_8*S+OMf@@ET+q%L;5X?R)&|){S_42COuyn z#u7t5R?&*#a|x8{{^O{pOK=ssb3!upB!CYgs^md(x1$=TybvfB5?1kv&_LyEpt`T6 zrEgMf-q_JK+cXf{9O_{k4mFH-Swoh-^621TG`1lU*%0g5Q&eFc3YU*!N-4(3f;JUm z%>q&lvkOT{Fxz84AA&|Jrx#N!lC*9~Nma05#YM#Eipq=2?KTDB31YLD(IqAJ1#L5B z1eR5(hAjv7Z(6%YH>v5aZ|yaWw4HbU#apNV6<)|q&0;hACYHIX`rE&ZXi zMd~J;B|F+dHrT(Kj5*zb+P3zZ@-FF`-lmFWR!fd`S*WQOE1Xsraj!ChNIRGc@i7E1 z0@o&%4OVs#m<|~H_zb19?i45#d7H^!iE80|e#%(c()rmnkPfcAHXdCTjR#8D4WobZl(P$FmQ7Q^o6pbhXRorD3V=&N zn41#}j|$=wb90Y`LpXWs{AKJd){2uLc=Ab>I(airexF|n1oYCA$8g(M_?4P7Pu_ql zpW-LAXP&%{H;A68JM-iboIJ&^)F)3awDuOhTFcvufzx~J$VDJe2SmM2rWH%9d8gl6Cx&c=`#ZPIMp1O`VgPx^Zdg=&Ho#I#N zblau}QDzC3E$BSLEuK&vZwQKQbU973{%8I6@iYqIdK!R>X z*^ReU?Pq90i8M`U1!19*nvf|Usf1FR(5=U>+qYpaJJ`v3#`>2@S9ao-H{+JyN1qDL ztqYAV=t3)a9uVze2@s%Ie)31Ef5 z%;=QSR@4I!ROmw_m=a;6(Ii=_^F~Tv;P!)%_Fkx?rHDCV(~llfHq~ zYuF`;o=pp91K0AQPEw-n_R z5$r~QWiL76NX}fZt5?+FMJ~t6!F8U4%db=y*2ad{4h9<pWQQXVH05=N9Qav>U9Hd(xS!`st$&$63pL zc-Eoe>xZOkA-x>MNc<36As?RXT2gtehz&fO$}^g#@?c2(zCskBuMGKW{k5o02n0b^ zhJfiYDATi$ghaL!$ofvYy5mSw8CXUCx|XV7{a9~&bwfpU%h~~dO^x4IUF{1tHU{xx zm-M$(wZVbj;0kwkhFuMMKpv_P!EN#s7kj-Z+Wkto(^*b0Oye>1@MUx=M^+=wq2|aW zY=t;X!03WJYl*D{SLAp+I#V7Zah0@qvMNEgj`ZpM%|W%%SKKi$-aoL$Za-h|tFI|X zWHdYY9dqtTd(Wy>Jx~q; z8!8h+Bc0u=I+9BWjlT+we?e*dP^^Eks+3gq7E~q-t~ilYm&Ek8QwI7Z?@-#F(w1sT zxli}DCUsUQ8@}#wb+4wzQ&DRlqh_NkgJ^aT&1aYNG~_uOD#nI}V_l=8UAOhGeyiH= ztAQ7`1}kGhUPYwxQh9YjRKrPmB`%0+N0}K?3yDF6!fmpgJAWIbu{7F6s&9la(+ipx zK(?}TB3c)L~B9&>R%Tq^A(f^SNHU+ z_7)eFx%_MQ1Va`_wa;5q&>9No+iJtM{4kNP(#kAzMpkuUV|RCBNmXV>c6Mb62w1)~ zM_*(ua=VLi3g7mE1{oXGm6wQI2RU*h^fX>#W;r~ubsv%SOzrgZ5Ry#{0UlK5kc zS*bi`5L5Y>G2t4lp_jmDN`ypgx&5pP9db`0zv-5gVz;o4pwwX#&aK!DkZmd$o6z-XYF#9U6qcJhS<%lj8(i(fkVU$~`K9$ckYMq?Nk31YDkJC-af%#N@wQ|lRP9l%&;w5dGIf(rNw&blQ&JB(F-f)-Oy)Eo z^|>0BH@{z~D2Vr@ktdg>|qtLEc@{A*!EEQOpSNMEcQj#D5~>llY3s zs56a2FVO3Z`mKV=q}!04k)_g^bcw=PcS_X$pWkI7R$f|K2%bpgCAOz1MRS*H=3(S#{JCPuz>RY+8 zk6wYw$^c&M*hu`A-jR{sTjC=fRe@XR>sta!yxrUs4_E*1_53RjU2YF(0T4XmFc_IFXzQUhB}zkSVi|tW5~7kt6ML* zWb;?oy913Ize|p!n$eZ^d}H0}hN=~TZ7&=<_PrhDD=HdR*F9g;(^C^^+^``(0($iZ zTwDi*FJMs?0A~iO0(hGOc1Li7iJ4Sb1{6G>6e?MTx3bcUm$Aa_t*Y|6D{z-n^BdSj z!cFK-SVkXZfb=m$05R6aAowG7CT=~R{8C`3fe0H%iXuATl{ppJ89#vl)>klUKSQgo z05*jHt335Tt|v1;U>k7U!{sZA9pZ3i2DHjFJSABrWxgnDR;oqKE)NFF(_ZYZfXfx2 zmo%9?!joS{Pp-t1DZo#G!#K!vpL{$yc@>XyVGKb9I2Khi3%{UH5o;FKQ`T*_)68d#MfG%O5(j`dY z&|>yrT96@Lvz@FMe6eFtc`P{gS{vn!^3xB&vkraCFDGL8L{E7sPN3SeT-h#p7bH~< zP?F>>P<(ReY%0%ZE*pVNT2MmWvB_PVL`R2Wmt%_Z3*0nKbGL`5J6k5vIk~Ig1aAPp zc98uuI6*nupGBO2J;Abw6ENYV@F#XJdk5sCG**Pq0z+v;nbe`qHqtDlD4ll^$!O^5 zX$W_B|B3$%H}v3AkFZ5-5O)GTj8x_2h`vEESQdmemcjFg?ziSJ?7RpPE;gb(i{Bps z$#%d+f*wLZCy$x~G#f@PheM|zdLHfV%&fE(wdd?8+G%NWXf&&|n!HHP&Y~ST?M1e# zjLzQ93|9vJ-%`6ir@^K+>jEPIZ9!H+#CrMV)(8%?_(Eq^+rpOhwdYx)1qH1+XzI)J zH?eO+ZZ;9)!7>EjLlihNav(GYG4=4{Q%t=EfqbZYP5Nsx?S~HXA%Qh1XoOxb|LM*< z@4R)F>Z=Lq(S&q!0{6ZZ_ddq&jV%u$NET&K<`CqNa#jcsX=FOUgb|8NvG71)4OTM& z{^-SyeQ+!8`=?zAc7B45B+#i%nFvk$cz+=KV zz+tCWcd1b=TM$Z%Q2W-6EA37{FP9LZMEG(H^TGzr78en-Ut~_IY9h)8-M&^^o!X!; z|7mu%-Pm0xZ_@Eyy6vaZh@2aZrQF<<${z@QL|dw|kpvzCyEV%ovJ9gLwk#l}idx;Y z+?*+zOwA^kk}13b*YJD|@e z`J3gnlk0|0POqeTPAd_+B>YT>LtHt;#T8!UhxB%28is8~R81sB7L~Z-(@88OUim63 zeabs~uiWJ-r}a*({k$c0{iR$pZBjbrs=-$?4I^A%~y`d1T(z=Btj_C3YE%o&+hJ0NF zRU2C;D)ssL5cqwp0tb~7t-Gjw%_9bVyqVhP9|$WgZy5BWu}Si;69O?WTA`4Cir~hY z=cOYMzl{@eqB24nC5b)}d?NR!KTN0f@{KSlpz`P^lok@``Hh67H&Vzv2t4S!DkH(^ zGPXI*HK;}}*WQ%j#OFA*PuPV&M7K3UNvx3U9Ymk;eTo`jJabf97*Ke+{XZT)eERTV zwu4nTTcLluz(gI79GCaD#XXfyrSY ze1DQ!nGQ0_{l=9*@-HA) zpW`PJUk^De+-40@d%_kacblg!O!P**yCz?Bt_*b!k5C5a6AD)_fG_BQv@r-G zI770|v5I2L$OQ7v#+ws~n>UWd6Nv-n9bevja?8Ct%%>j{f9|F_p&lBM^Mn3)`?Ub4cYAMq0QLS$pKp0R`!{XXb)QOChmCzehhlDAoj~5m)I{Wn+p%L#xN{O zY9V3RVHSZ!Wjw771_bE@Xn5FXW-Cou`SwluMMeYr%1nNft+>f%Z7$9ZQpyS%c4CP% z?2wJ+VTa(#&;f_TVOGObu=JL?rH}Z1+9U2wJ6`g*%a%U8LXy#Dje)N zDh5j|Ds2s5BOU4`Cpdv?6*-;&UNi#oftO%nw8?XF9;;H?W6**&^L`2gDt%YR7i0FyXKGb_(Be zuM_D`vIUOPz2ZCB>%?GgV@$tUhu>C6uL){t9W>(O{3=R?l~1Y61knK2&+P+SjYWyd+xP z7L?LSHP~b_PFtAK*kv3>kdrw>X>?IO>LQhyt!8*UGO{xe19wITa?(0buXKXHFVgW( z*YJ+KbAY|`_oo@X{q4y!y2Cq^-X#V@$92%Wsu5EGgA{ZeNC-2^rNC<+As^EY;p^m}HBNWWqw%Th)5?@9{`lF@&u{ zN@NH$Ox%L#9;~%-3i6@lq7p{*dKy)#;$_xBcF|B4S(uX;L?-ro=}|WF@WaxtqYy+Z zPd}s@r59H6UX0AYr$z>MJKM-`CBT8^TXR)=5li(Sn@^wK3rEn8r1LL@7YNDF(8>>$ zfhmg>BWVDdsU>k9TL4lWk*@tYP$AV2O&x9;h+HPW{W^jh{wl&O((dHZF7`U&;kxUQ zHBUak6SmWR83ppHce%vqtpY0(nC}z>T^{Dd|r2{oM@ng+mA90 zR2u?qh0TjzvJ@fz1xU-Ci^R~fsT##CYp)gGKoXi;%;)vBj%JxREK6+7x)EPiw}->+b1!ta@VJjP=#@$Q8cbSlN)=m{ z1IHPhmIYR5CnECuV6>s>9HJ-?QFRbR@CGM+zi>%{rSt3Icj9j$88O53$fRim@I z&#_evokn(xG1h>_goNECH7vlDnj1OfeS1r)22Vnq4{OM(?H4Fn3WALtjq z&L4r81+%jQT9yMgW-jSDD2kjb3?ysV+3&}z+S;qf+E+SVt2@@zw06|2YFk-q$sUvD zn+67&yivD1x_i91c&vR@ZAYvYzbPukFY4M#oAbtEL(R=Y?x@cfbz^t;VS3D}&6pfY z4+J1fpulPdB(ct4Xh26pE&vq4c`#4h#wGx|fU6D@c_6!a1k6Wi9@UQ=07dwXqT zbw$RtpVMz!UE7WvM0&^0{=`=ORiD#u9j$KF{Uy_}YhZMz;dA2Sm0ely=o;t#sE^iE zbY_uvV{-lxp3;!!uu8b&@q8nY2+6ScD){;k_o-O84SHtShSWHKVN3|dEM_vAW^@^t zOgTDEjcKet>jiLHqGHarGwH=!iaZS3B< zUFVfg?LtwiC{9Aw7JBJ#-V_Jml7 zI!D3+?-TV)_B$)dL~~)(<1g6(P6go_X7}~u-@e(6`zAYETe}~`zwXx7&dGhKN?X}E ziy~GR?w)S%?rx9ZLnR&X7)k-AV9KdqK%y-i$_Sh1b}c3U860|)?SSf-BJB^3k-C72 zQd+EV&lQJqxqFTb2-H9_HRe*gC|M86d!0D3qW_=%DfY`>Ubz0`Xj=mdjy~VjpNKv; zD!smj*i#+G(uc7`V6!k8gEsSw%Sh&s%`}NRAb#LeVXA2m35=#* zZ=6QHm=5D`0kUBg)E3lMhGu8)`Hgz{kItsR>h z?sJ6;_3@kH@eFfip0}=}c5K_4zSa;rN@3%apg2!(l6@Cz1S3rw2%`;0BLGZW&=Vz| z)RfF;My^9#l4r5_oWy}Lct$fCYrNzFN>m9_UI{6lvnzprzv!B7Y@F^o{O-Glo4dQ4 z58s&>OR$0Zb?t5I>&Fszvg19?%{`#5gJ>8fz6}apu@1C_#4iQLj>=A;&uATdWO70j zjJZyypE4xdhpU2i3m;~Ok+%&t?*=~_2P+9*uSC8m?3irmSQbQ#wFo>O%&T*2whm^M z*!FFl*~_N7A}z5zSN1o)q;l8iu|2caaC3fPUZSA3**7-3X`(LL9Cp{&lqPKUP=7d! z%n_8d1Er_|i$K&Cxp{~%@XZ5$VJ3$bi8eeWJr!$;#Y+`cEu0lP!vK5n7s0FDxshBQ ze=*?^{QD7;enjtIuNkbF#p{ick#8%9uj1)R*HjUq;gJLk_V3ir*@_V}5xErfBnwhC z4}+oEKwAeniwX;9A~B;ho2BI4rnyW{Seo3~?r`+E=T3ZM!}U}UBRk{z_1`%0+;h)O z9vB=PWLHYB<-7HIcRm!DEAYjE18CG5Y-AIL#7R?Wf~QOn$`#^QY1-&EZEmvLj~Ti973lZ2ZBI{eWTOrVCW>=A4CH+xCO33h~%Mb`27Wuc)X=gKKLGZ zn@T7KJ#JOtMs7+V11$jv8z3UciHA(X-2J2myaTD#SL6es1xd6x&z+B~C>f4Shm0RE z0Ix-0IhkYGv;??G9;ZW*W}QBt6EAjwa`2zYFCK9fm$;GT%aweW;>jb7-52M-4->|E ztk-H7W-Gjz+@2aHPZD3Ul?MlHg9j^fOqE%srCCeAV0GQQ1A*P$Hu(+Xhmu+lo9=|+2kM1j z{JP1Y0|`~tg%H0CO~hf*X(C8c>B>6St9`Id>bgo?u6w`_A*dU!(*20`_cdg*)LV{~nrMDqJx5NCp9j&|uIelq$!fx{x*t*kM`)n~fMZ zwJ=&33&=mz9KtUF6Fp0@8|9~fo1tHYi1k4sBnXJ5taM4e8;}Q?8zFxWar-bqQCMxy z=x9&R=p@hZfh-@BqsGx5mPOwN>L~Gt^mF=K7w8$q49A5bP=GJ;v3Cn6WE#+{&;VG9 z&Ork(6DSY7MbH}zdO&vdhN%o@&>KJuDAhJ62K?f)6N7VIjiPjAWkeUs++}W;a|w0G z{21y$vd=jvgwy~k@%oum;%h@gKOG{KGXN@H172eyq?>F?Kx!o{G+~_HQ6q&reaT6b z0@I*5r0^^MXsc? z&VHbuxo6wt_KC!)iEsgu8{O**Dlv(GneK4Ap&s&jxl}hb{t0TLski z>sGB=^|bs(9mIRoUrF zelyY+MHOK*NNL27BFDN07L-T?UQ8I5A%N>H|LkNmj@Pw6WS9ST!w;p;{dNO7a;)T1q{Y=)FdD)Gn^*L+v<|8 zjuaFUk}05&vS;HAmwHLqwrHB z#g>ksj4>FzNV+A`gAo3bk_@Z0BW5$>9@OFj1g@Z1WDWDD` z;1D}%iO?&{PiIO_B=n{)A{v_g5D z2(k)`9GR3bq_Sy-^I5e199$Oe84IPi!haSh{nF2vANj5B9cAL^uSR*CRUNnwnIlxl z3mA;~;o2g&8U6rt1NNN`^H8hR8R`t=@&W3`>Qn)+4^HwoHcV3 zu{ER|ooZO)a7;9?6KHD!g)a5t5AcY9aCyu~#ULS^>VyF~={6;kBgF}V!V;kg0bc}5 zR&4|YRzU{39^R-zR!7{FrZ=X_6=e74{)oML0NN z0}g22;U`qDlcWo8#0lBLsbg0>HMj3SV^4|K{^#!JK6vf}{Lm=;m)OI;g4BFG5d*#f zlcXeDpjIjl%4JNA3RY^KmP*Z5n6nXeTVO88@whN2aMn8&TN|`jyThqT8tBnYu}Au> zuHGGpL;`Nq+&w6H^GZwe@M2+Sc_dKYSneF+pYa_Ad>$UCcOWzx1z*g~yT&^uhtGnC z^RP!=UR)s8PBR=!Qn(4_Y0z0anKOJ4oElY|FY8N0b<-j0`ok0TH^A7U;z@(iv1L@2y@pzze&|NbtGK8*o6ER)c+kHG;#9e}ZU{!e#G zuc@~u{{AjH-idYWP{Br}kJoQO|bLl%KrgQ$c z7*@(cN+JoWO@UP)!yi}@Y}j0vpj4nd_6W)Z**EczlQt_)@d3#WJ{dB1#@S0xKJ(0) zXP$Xd^u>Rfc<#BxFZp`y1TS6*Zjq1m>c}*5g)0oZJrQm{2)8Ev1Is#PaT<+I%PBT6 zci+Ns=gM0%z>#dG8&GoE42gw+Ilg626HilRyXAg%%195`im@#jc?NdMIN z_V8P)Z!p=^YD>ngE7L#VIW`c-VTCxtBZ$${0KpAVEqDQV`4&V}pe7S|foxY-i=d8F zgplYX)v@xpEL1%TGFH-8L0lj`>4uFR1cfYbY%B+bT%RJ3K_`e~AX4shrRbxmWNdu{ zaFJ4>I~K#D(qdbpbje{OGa!YhfgM8nbMjpAC|vkoIrp6=?z_Tfvz6LPX)bLj=xH`- zOG8!=Hpu88*qp>c^74h@7RS`WEskl9*R2?+8(2}db*6D<>!||=0tXI2I(UCz#fkwj zXYT#!EnBAdUgEn1|8vc&4w}~&xr`VRV7SI$!8Za^P%_o)BE|`=2ISmXW`UIG_m+j6 zp?rtA)KY5DAygroWH7GXETlK2fK}qA#6h_mBE@LQ_EWLux)m#~TQhO(iWS#R4D9de z**_rv%_}R*!>cZJ5OyWArHt!9I+9uNSM`Ta-iTs6-tT9B0fXz zWw#0&5Oh#g3H`+K*rkuHyNI?}j%knh<-x(Z2RM8wR@PxQca%xbrgguK!iW73Y@yLU(;lY094dY~gM z440M0JZ-qrmM*PVg0-A&y@uo)Px6PL9*0ObCiRORgxkk~Q_WFjz`*?7n9%`D8ulu3 z;>+f~INv;iUZc|KfoImCYQ`QRD>Lf|wz*1284q|VDs$6|w%fVM6+E&Mn< z^oc}WZWAN1%T9@?Q&O;>M?#T5)E$W*t$zFm<%l=UBiBJF?9N`+v7!oxSsBi!ep1b} z(pyM?J~VXg(52Q|FZ>9t%beBLAAZ0Z$)zC9;KU=3V4~dsX0?Ew7Yjb&rI^tPl#~Wu z5E@AXtiW{~1%6=$LkzTWH?#rDiy~^afng*$nT@yI877D|rT1!UPo^Wjpak+fI>NE?Cibnwwk8mE*{GF3eWj|Pxj4OWub zHwV^TTDfwjWlQfBk$7b1HTxv#?F!Z>-4UqnXxTU2-M?$s=%tx^S66gxY`pc>QR(^7 z{iD0YoVH~e*4o#F0W84)hB1InSk-Qf87*KS9&BV9KzSITryoWp2)$uJ^U*eA0Xz+!5A*$}30Vc& zZO<=IwzZF?Xxp=8?G{UW8H-67AdOTKk&MGL9YoM|p0 z^dbovL{+&oNil!2*f{i_EH)ls50Qu{UBIk+3>lYz_$DRU$j}@1WU)-WF(Y#i{L-c)XgXAA z1Yl^;XpIiAS^P%G*e2*RjX>}KRIw4b93%AZm8m)tQDFDxx(lnv;J9tf+0=1BZ#5AGvpF-}*5Z;}I`-5!vsQO(F`BA(fo$ow z7gTZj<#oVx{GiUjouUTaw6(mLALe;;K4dOU1a@MOv*$t1GT_LkT6;IejArb|GG#wf zp6gn9Z_z}j_9Lnv8$rLo1*pcDRv5>dpqZoEZ74FE9 zFGW`dI=u13{rFG3>Zbf1akBq@_Oonjpx1I&;(i!{(*~rN%pJniFX~{uj9@HzfJ|>MN%P54j|_T8luZ#`QDBZxcc7cTXRvEE?@=Eu~fHw zF*=Oymb)6SjNX#Jy;mLxJ~FDq>?InCYyI6hcc9%eEai3(>+#qs5NpxL^ahcNFscv3 z8=?{qXP5vD0nQ8i#%R1sz|JB^1CeTjL4Zmi2!?5FF#}0R)CU^fu`rY8{6~B1m z{i4fjxn+$%`6dXd8SpBU3FpUhN(zuhA(N1Ccy=ZpsIWdV{U9t2OxlGTQy8CY#pR~2&(-ny{bD4>J;OT6*;%^ms2UC#t^Yq;cKNxfW#}polACZ^cdlR$AKeygFUi-%C$(dJa**#i*XIHXgNg3RczVKAA)m$hT4F)cD zXUbwXYSmHE1}%f&P2>oIH^|XcmPrIbN=n}KT#EjbmvTuT{%fOwi{78;dGf-eJPx!; z3FF5JJN==B$7N58vglHhw;SbktZw(!6(`v&B<}N%?VFc=UBUXL+aYC|5A6Hx=zjKA zO48niRGDNfP4abzY$7QjOCda9AlyVj5LBbl5(yzcnE>@}A!P_{C#dC!xY3O@o=qBqUV z!~||coO+Hdh|d91aV_KVv4B*_fv($xtJ(Wv7H*(@3?VOdl#B)d4nR1Naptc2>#nQ6 z{>J(nuWz{S>W1sCufOibh8wSIxE?aitPp|kZ6mHDh}Hk4R}d)fbgv+RDAL`_NFpZZ zws@Z%e<7LP;-#b`5ayK+lE*}$fId_K%JHfF!U*9?`fC+mExUsUV_~W|Q^K0E5-ynw z{ICiNh9j`SDHwku2~fiE1|=L60ZKTg1=gF?b|kBytPqnj2sEpbRpr2neK$6J|D7!z zTdw)%rl0?PMfBaoi3D>=KgZj<^lYIM43TWU+Q*E1hSD8%i`;RY>7KVGmqMXY%(zK& z{ZgZRXS)5JkEE={DLUMOYZ4tzTE@=M;g)z2$?u)+FN7ChiF=U4Vv-7D@=*)!h>v*G z65m5oT}<;b(9_a8CH)827dxSzI>Z*N+|_daxgu!BWaFba1ga1sBYRGtj~=rrhLVaAICn7!>gV{70Xm_3bQbsy@?zb7YG&t zG0rN{obwkDnvr3veS>|-jzJZT%TkR4$~?NT8|N0e*$QKzAg~)AS$bk3X2N1bM3=>) zrXV14dgrpcrSGug-}r3e6n-8T{wC(I?_n!%rIb8_k5oZ=DkM=+!RaOq-brWBr*k+H ziAv&e2{=tjeIl~A=nPEm+0b_LXQJ%T=mc8@-#OJM_VYYKMPvz6WNxr-Sq#b$GUQ(K z?3C%2+Qeh49$j&vK2xR6GVEom*b(VcR5$h-jb58XI20fk#W4FT8XiQn+hDBEVc>P3 zabvgw)bLfHrZ9M&pq}6dYGGQXCnx-hiVzi^sjm$+S2TOwMZw}AB~u3665t{ex!R$a z@ZLM>d7T`>-y$r_ohAC~fWMPH*-*HgunBQAW|oL#z5m?WH`KP-qtX=Dds_Pj+i|Ea zsVge>;!**rPw;Sfisk;V%O8R9uLV4&bu)3AMr zD?Dz5YgKqE%1S6E!=K|PA5A@JnB3i?3ihJ6EDAWuIA$4R&WT;dQ8U8T*7#U#ixMqoE zla>G|N3b}(PI7JJ%JEU8v~y3r92do-qU4w;F-8$lbKhFC1Ef>I<%n8w6>gXgvju8H z)@#!#AVFPm43(GK{@jr)ZMz|9g~g`q?aO}`ner}>TbcM2%7=EqNpMf?oWcA@XYZd&m0eCW3$0w0k@4)MZ$#L zuB(^pezJ@!E_irGuSHC+&TwMYYwY!ebeXH(WNL7V&D`@f2_HIDDWsg@h?IrF8<9*h zcmvObNUz?8J&uV2E(O*ALg66O>_Q=}9C%%cjwNB^oQ~NYh-|A8{q;2^Dk5f!V+vWt z#tWy%+Xr=G?eJvqXebs7UAVEOy{)ySz1_HXHnH)-NL_y8#?f|bVdLfHoKyzrLEi}gwhQW*4qt#Y!yl}Gb=mEM5wPyOnF1nQCcc?YEl(&X@ zV&-^oaxW4TJeN&OUbu1n(LQPjI+X$^B9LK091wrO^QxA@nAa-YF3SrQ8B7f; zj7|;UG@N^gPK5nj!=|xyP}VaG0dcD7Osz@93wsvE8qV@_DtgGTf!x=$+=La_%rDeV zXUdr*CSsxLDrcEBhw`>IHdM7%w+4J=mCj1JfVh%J7by-{CIyEA3>gU{y&KR|SeBH5 z8jMEfsd8c>;>7&?(q*f)-yR!8N$42<4!*?xFd$`hQMe6WtP9@_;lyAJpGu3}%*~GX zw|7#>H2jfsRI}GSrJbc7{zvjJob7cdzjh1S`M+Z<_oT+MSy%>f|Lc!Og2)9^P3vy3&lDfn3PxgggC@j^1g za;b;B<{%f42Ib!&_1>aSmq%iZbw(ncEcPUOyjvRRC@5tm1qG$0f39m~t+l=?QC01& zYiX&&k-ECnQOJrM4g@~`uhbEHqCMOhZs&ibJ_2E~KbGcq7L=3}bmo^z`dFl?Ddq#r zJl50{;Rj)NX%o#|6Ci`BBWxQPq`V1CfoE}G;$a@aaRiJ38e<=E>@2I@7T<>d zanpzpfpEMAN$nA_jGKyw!B;5n!6C{m0ALahIfg};CR#$4bY%RuS}n-S>eKi10-93a>|okA=!T)!ynegZC%`EZt(^ z1R3Egn}|%>ar*b{6;D-_2QTS1<$ylWi#d}A>nc5-%Ji3XNBSo^Mvpj3UFCpvp;T}S ze&PPXM?4@DttMFHc)Dp4cu1E87w4upEds;=S^-r?3Ic?UBcX@U$m>5Cr?ME#jqn3R zm8-RfFp;13@`;$&<0(UFZ~y`P9sn!K++}W;voPOQnp;X%5RcR2%qEx#m-Gm}f&&V4 zMqGBfsfSEIG{f`#dBw$fM~>FFwbfgTa&mKX@cM}ipBJ5D#d&$fk(RpZCih;O*@8uD zwq3(9_2809Hh6GJpoP#EC?tplxep;X`2_W$zClEXq7OBmP`GJ^N?Hq=5v0Bl?D_Wm zJjX(qjXnvQ;%W@pDLF}lkBqNJL+_Rrm@3H?*4^LV&1&cVBI;jgoarPR&ul0QAONgC5u*Fq1-s2t$R9kzrB};MBUQDJ86yT0jm< zxlO2*tbajiLgU6R!V6GK2<$v4-pBr3s1;CZ$A(1Q9vyM*NOxM=`*)LapE8&vBrDat@ieU_Pv;s?82W8T%I>!r1|eLgh-` z>4%BC@7{j-)$m2?@-xS`U!Ipdy6dj(b@*R`B7a&_%ID#f6QzD|#1bu>@P9&OAc~i`q0(f@Nl9Xkp6Tk^iZrGJr zO?c-KfXhhq;*y`8kl_?p0+AVr3ZA9}=H!$bK$fBrrzekNsu(0G9&gJ9LpxV)Al^Z& zYN)NNpX7k&P$-MA&N9H6pw8|}pq?uzmEm44qY=_sPGud70(#A*hS&3WmftVGkI8=y0X2z|U6;=cj+Vei*mh&m@8D9v0T?^q7 zt3Z#TcylsGKq=FUm=Z8#d7TUaY((@kHmrAuBG=@#6G`m@gNMq$;HLuB&ZZP$XgV^2 zDiK#8(r)0xK)&e||2xu5k)K{zn9K9JMK)<}K`uNn=IrjN2LvfZLcsCo7(9;Ew9cR3 zO5c<^i|Z5yCqauSXNe87}7*asf^n6&$Bz(;~eZ`cPTllc(mYPsbk6v z5v$Q_*SCagYs2_{-l$<;$$!O1AOhV+2*wIyC6LvD)hLvMKs9!lIf7AS#(?yutOTiH z6xi9pUPp4O931}x`>}?W@urc|;}k_$C+WkJv7thj3v~>!njx(eZLH_8ACLb5x*$5L zfjBPYTA`29^6`m+SVLqdQ7EyMNpwsrlxG;0Y{l6>yby8Rs*pIU`!I7bO?^6BC-skDI#34JyKy_ zR(-lG9tsA%)~GkGh7i&H{NviEK6pxd?%)3YQ+6YNC>weFZ%?x8p8AP);q^aFdoE_5tn>Kb}g*)W29RE9KK3Z|uUBqEuXYWkSU^}7wI zTEc-4OzA%T6_DNY46AqsU)n3rJR<;GiE8tj3qL?eVQC0weLF~!Y)>H4nXELE>>*BV znW@$sNNE9kbcnr99z_tZAve(c=%h}KMkh6|d6-HB6mrAlQsViP9mG#+eRw*X^+$~V zK@J`gkKrdVWP%~c1Ozp#8K6QiA*>pmR%r}X1V=}3;#1<9+=A_c%u_iyL_S6UY={;H zz$r0qCedPgfW`1$Ax!WGaDeF{TB!i|AWF{N$({qvq4G6k`6bZxA>J=0E$G7RY#!+X zF(4j9d`R@o;$`cKiqx+o3|}72gT77qmz0YlTRJ+fGyZeRxfqnQ7BUtR((t=3BZ7s{&f!WO zvap#nDH2k{r72m$&}c<|@KkZ|;&f3E<0qk>VW;WpnGhv_5lJESjPgeCmLK)X29has z^$emeEIR1-0xtoX+YsUxfbm>S8cF#>j*XbChe+T zDg@{C*ukr8V2j{a@WBxQz|%$o6<&}k1LEa|)vQdn3p2fxng)d!Vp)-=0pQsP z6w@Q6>?mDDK~{JMa%nwI8NudU8AMRNs*2crb=Zx-eMuDQ;gM1lgm|Ji4JHcxP!kcb z67=Wzb4WQ%xybd16(8ijI3_@$QeFy?Vl8SgtTZLthA;Ti3he_Hjr2s~+M^T_UEkk7 zI{Z_SwL3C0UV*TlyI*+W6z;%FFVw?zKj?gr{i$sxXp6Val&L=!Fe)E2W6Z4V(n zghZ*HRD~X+WDk45DAS|$81IZ%tV@?v0e|!-V3LnZE0{}U{%!(gVh8L%2Ul=IluWYQ zoXDi`u?*GW%s?uIE6eTK;b&fVW|nuFf=Ut^IXk%>)`cVs_(-$duB@$++nebgM4CnB zMo2!Hh+jU7o9nWnc8t6{NOluk!3O?=Xpta-bCsy@BgVsjeso>z<=Cl@ zt#|t@)@*m{LHU)ZpB}IHWAhMYmcupju~+Lb?*PgTHq2e-_cA&XM`1^;(Ei7G^RE8p zIMp8}8C)m#CZQmc{on zZyeUKz7Wj@sd?DO!u1`i=7gixjl74L_PJm1QhY)-4+oa)DRi?(8C zIp)W*MQ5?{*nEe!XH|GOUQiI>J;qkVhr_ExAF@b+_D23{(Qs^aJ||HFX;krXegbKY z$j5+jjxyvCP)g;*d3Xh05L`j_I%#=+9;G!F7v+WWQI91n*PAH=SZbelz3#oB|gWmzm5@eh2YwU=HzWjfU8Pdk#Io12es?RWHR+A8Eh z=YdF87V`Uq0x85`IxQg=r8Su@KuBeNxF8%12l@t63rq>a-l#*GN-05e|i=Mv;ZslURT> zL}V_MNzPv<|TyV1rB(ev~a*zRTAk`)>qYM1-(Im^i-XqDI`M)9fB)V zM6JXSzygSJqDVYTpG4jA(7xMCla|}_3JP+y>ipcjdvg)jTRTv?@3v4fZBlZ3LEde* z=jLl4?kinhSC=bQQ!# z9-Tq26rW*71yKu3gXBO6mlcKzLpcRG1>USt?T=y{_HPYU!u;Oa4jP(y-Ip)^#{ue%aBnt}V%b((gD#D{;m&pl+>43M8^AR{&0A zs__6VU6g*K;{hf)Iw4vjR=MF|R*sys_&wi-naIk%yx&u(j_;PYISO50J?nRGV8nXq z9Uc|qA)6l=ZIFhJr~~K-q&x9$DWc5|j#MvYANb-SuS#Zc76l^=FCAc)t*~0Po7&iR zXSrYg!hm+k3YMQ$mZ9BYBIQl z4dgd)a|XODK^A8qNAyGwEoGVha;J7f8#~KtU7>wu05-1eZQ6|)WmznLg?0(Cj|Z%kwDQKrqg@ChIH-L%o6~^Ou5Z9?v>}iD z1oW_f8|_9XB2@d?qf&@UM|p8}_#tx`SZDm_+Vi@GTpH15^w5gIN&V z1z}-%L1Gra7N3tD_hJ$69FjsPuIoics>4=zMurFk=JMJ$P4H<3V3QC9u{?4(9Q>DEyH3BQ*;`yzT~bnA zR_yJ)W$PzDxn+BCd39kyAW%?H6?ShQzP{)ByGpA|@&7KoJ-@W76#vgR&D1Mx`8K!& z5v)jjD-$ZvIao9>CQAG#(#4BxU2jK$IN6#+KRCLGAq<6xd%8=+dU+*bWbq-R1?v?I zi%DT(*t7U;>*c5K+BLlEvdcDnmN~WeKfC_2KVAbcues)$ADSwm%@pVcNkopoW}y$ z?9Z27w*Ir)`^@>-4VPU8ICq`?M-CamXoAioZTL-(xzT*O1lUOUp zO2Nc=4kaB(>|CHpw==KD8$uanBp?r#{*H2UQ~o@dZ~$L$p4gC`6d?l{&_w70U7}ac z#Lmro_iowABpp%TdiWY0PuuaZ|3W0RTY?1`M+kH*8$Vw0lq+eqU;@R9WU_(M+3M$Y z&JexiMcyZ#5`{-~`wchj?YZ@a86`Q{B`7?KEHUq(A;_;QCLKq6;8WO__4K_PR<#IeUY3itj%x~BaR&i7Lp4H1*bjcs+XXF4Hg-b*e8e--p)RK!wt9g z?7iUzxgx3Eyz9)*e__)VY#X?aBwdd4G8-$DEg^Il>Dn`%H|r%LI6tzK^@T%^9IFsj zf>=V*Q04AbtHvK;Ypj8cO&j*_-*BegZ`ba4=ImWnGvnko^c79ja`OAI^kj~tG=+I8LUrzQcT%JTWc+ZyEmTc!(8e|BX zE+){HqU0Twq#gsR>GXw5RwgwKf1`SqY&~FPNq>2$qFj(O#{`lCgxpW@;Jm0`6F-X) zhsKfe)1?=5bzQKuxR^lusX*6u!p`h1J*dr^T)wa;$x()fP9S>tJ*5}ho19gUXe^VV zw@8Vh&|7F!AnJ+tpE#&|_}^WR9=V97GVwBye2V0iE=qXaC^w;au(mSF(jan9KZPPZ zu^J2-u2>vG!gIF;H>U|R1&J_E855y`GhHPJobze$8d@GJXM#E>3{a*u`@%-8h`qT{ z|G5EQ(TkE7ou9mDXZNRecJGwriN7IieIuW3h6G;$Hn~c3wo6N3R{HInS10S%vAaCh!v}!Hr-9%hKUG4@%nTT zmLtpT9IQ4!Oki`6l`W=_EuQIGkbs+bbd>uf@?8MT}L2Eai%}T0` zsi+l%+OgDNf$YmR3*!AEbft79zmPknroE1fM5t=u!P2`qzz%W-a&Sq-!a*I3(h{jR zbC_q*x@_B~y}0dOb`Mr+ZKnX9FVfXlzl8NN;Wta#`7JleFMvK1)Km-nQK5UNqc)>5 z$QJMn?twx~4;)Y+Mc!wJyPv8F->BxI+Ki$gGhZ#_pe!j1Sf?+NgW%5O+e;@fIGV0r ztTnLb7HgkmOBT>f7F^ta8vd;!8e0WO;JK2!l^ocMeG=ktJT6&TLMIlGDPjo?zJ^dH z3xkE(?Q{FQeiYfF9gUDCig<+e+#6=7mq69Y@7ZUy5Xz*|K|@UwM)`x`L7)c%ZJ8P94@PUK!g_kBR%Plc+iJWKB>LN%42ti3O-d3x>I}e2S51!=w1x!gc{q= zR)dsn5991XZ(o#$jRaV=_FGV8k@Ig`|8W@RS|pX+2h)$p$#6@&;R~HhC`Yvf1#xh~ zBYcn_ws;{s0nT6?w>$#DZASrtwCEQFMe;%v{N?k7qpI^D`|iPm$Oq6fMZqbr)h=OI{&4GKJ&(QdF${BH`vD9y@oNO2j>(I$ zbTB%Ta^SU-!66$zkZg$O%pBc^YOyBjb-KTuy5Wfvx#7>6*SLXgIe{DG8^=eD8&L7&_#i25N1jaGK;`IXDqnBRLHW%Q z$OmH56kK%N8!Wp%+?l%JSZzOyC+KZIB(_Cfi}bMLJpq^LlUCN~Hyo>XI*htv^^`Tn z>Pdaac}$bHFV&3%t1az5?)AIVu0M3#>kpZ)XEn#UKIEkX#K05i>Z0S{a8cR~k01Yr z$IUm$?&IDdyNw$NxZ^Ax!;auRlJr^7&Bwh3(uO;2Auz)6HU)=;(}#fSm^Vy9Wsns5 zHJr#|Owyn}4Xad?Kt&}S0$i4cXoJvRlBlVM0Zt~O^+^njk7CzCNJ`=*G{;>~GteJ>{(RMRY>wZkgi2% z_M4Iad%JXp^fl@0(*4rI(s!gENI#UGke-x&Dm^RxQhG^x6?8)qB$Zk=eWS0^|0h0^ z3p>Vt-(h_HU%pj-WIVN_9^9G(tk>Sl>RLJRr)~sP?~^e zRAm_~llkCPD_|vz6x?c7kJREgo5MQU0@lm=*Z^C>*06PKn4Q5kv$NPI*m>+Cb_x3o z+r_SCUtrg=FR`219(FssgME#Co!!qKX5SHX3&jTxl*wAmr}@tHy6^tqY7jn7ql zPVedO#%IQL##r>Z@fqzG<684)^to}J@!q(OU^$Uz5G=;M#;XCJ@jH!ad`4p$-^MfO zI^){uJ~Qq$&y7AaV5NKM{dD-7?q2gVj4=o=#yG~ju_q7e|Jatvx3A-^b}Ik0hNEOHWBZmwqArN_tuPcS-WLh+d@r!B+pThpC7s?!mGT=fN28 z1?xYR#NqhD3-E=KI6A(l;AU2lw`k^gJdUxD7lEi0uXYr^v?Dx%@F;XKi|C_~hOL08 zIsvssmd3DX(iLz;r8Od9Jf}`TGhGBR z720~v?E#KhQDRf4Z3>k5lZ_R2Z=2hF;TivB>)e!(>?wlJfai|-RMtx^P%wHWbldcK zu$Iz-xoxwX8tYLDJ5-R5$fC>)t50U#bDH6hC%Yr`O^J!lpOk8?Y#>we^4^7Ao#n8k zqrV$MU4kl)K~&Y&co4zZ@f>_$ZN__AWqL2-UE?4RG&818BK%4?t1(=Z|;v$1G^)+lh;Q2@Q|7+g@&ps(w~vG$|XS8;zW<(vxRF3 zhDVvV6Q(fEX@Y7+mzk<)X?>{P%so!9%S>8yXWH_cxyh3FU`xwjylt?lWiX8d(l|>e zF2RLOgKhZ9gS8FfrD=6aD-z^;();GXEoN1>W-uGIN3dBa>6;iLUa-Ltt&I)d*dQj? z7H{Zm>^ypkl;b@$=6NcEM1X4A6sP|Egr*#??v6>NG6poPND=J>7-L9F*Q?ce4M0 zYczPAW8k048-M?(yz$hLc00^1wuiB`P=yr5CTh?=u$8sO@FT80m11*rmARKN;=6b& zVR5zg^xJR0t>5zY+kZgTx4zxQZPZNMX{VA7XeN$_(5*ofvo#*ZZ+{!zh)qLKk7D3Q zB#%6YXBSA3L|JYS;j%EaBevftC`lofWPw6bj*kLco0Jw*3k)dHCPZ$;TPT(!D5G|%m@|E0g+5j zO>)2>KngF&#N}>H@I_!1AyC};g2^ZxGvoKjYh&6Gni0>|pE4w`8u1a3WD!GBzJJ3RplfdRYMhTMFssWwcQNDEQ^z*`@K|G6g$I%YjN8 zknDC=A_z>oLUX}p$)`^pSj?o6!FN24ZB88!`3Ojo{1}pJ1$|JkM2beJtrdqAxv0n_ zMHcD!D{s8P-h1N>186jPAxX7ECP`J65L^!bPO6?A>ON3VO_VVwZE;*RzK>J4V8=4p z0CrUj&tUS#m^`XIonjIfR7ek)OOH7t5>h)kQrl{Agh(tmK0z+FzTPau^K>ec7TwZ znP?*J^X=Zf`*}2g#G3P~e`cOS+-u##*g_YyQ4S9t^bl3&s*o}HF zG|DwP&q^VJc_Zv`92lDR0!?-jrW2$I02ytH0#3|{gIf8JK8yg?gfjq)Lk2Kwe|hMk z6v|AXABz~2kQxuuJb>wM9Ad4n&|@ZNGX>i!pHpk)LprjRi9eyx;3$x-NDgG&EKJOI zQj;~_b5gIQ0MIJtv(`a)3B9ooL&Dm{f;_Z+wiQcr&o$D5oB51;LLf)q+Y8 zetAs$3-cV%UO2!!?9P#qBR`X$8yUY*9vvA+RXKuzJq{Qs=xTPNMMc>tcv?s^0KcKy zT8Is%I6q|=u~N!_5qw7MM)-2(10&jB=(+ME1R7ev{?s6UK>$Lk9_(Ne-z&)K;GnYz%?x} zcv1NqM&)nl)S)zI{v1?lnw}uycnZoo;Ac}{_Xyje{bl69YswWzULQHc=S9yU!ozb& zTs(mqu#85;H;|;gFruAfefMw{eM3#)+en9)RK~%?Y90%GWoCv)p~?nWDYw;yH9{>N zWOE`m4ZUU{>Y>*jm4eF77VDH9%qDYy&*eoUaO|%170bekDI9UMUg)W8-ed# z?K4_9KGn4S#`nBFZQAqDY3W!(9)xPAge}C^qGuHPSb&yLSCQiVti!0YXdO7twkPy3 z4xOU!LcX>m*z^Kd*og!Zpy3-|5xbG&Uk3ynTG0WqQOG&~LF6xrF98No<&pY09uE*7 z0HJRKLAxh0!`Dn{He&@R9bY|mC)f{!I|_|SkJOpI_%o6_uwkh5Gq}J38Jh+q0lo&F zCO-$h#)rk>b0;_}YJ{N23HAhMYI;Q;U|mE2p$P;96H-kUKBztemX8J$_%aVT zUGzD4S=xXp7}<*)M67}tLU|Meit1ZaBa{qDhtw6oM^dse=|iu{W3L(0)u(zL2I8k9 zr0w*Xg1hoir`p$$k)IhuAilvN)h1@~kSXkT)EK3G1lbEOrtGw|8PXYp z)%IdM&q$1q2s*omMwJfXSDK*#SUSdV0gos$0Y>OL#O}o8IHHUpK&1jO+<}Y=Iw6Tz zQ@IXw_)#=h8ejwzA1{Uzf{zHo>!w3br#Xyz@>O63^7N5u%6x24-ju=FizlSxJ{GctJ57 zi84|(kduea%OJl%NTXU)GODyeh7#?DGc3Al#w9c=PNz#~e91{V`=VHOT{as954+J= zddOuC30W!niiz}uqY8^nrF;+p{o{n-(TM@WLJ~7p&NMEUHo3(VW(Sfr$zlpwPt?Ls z!#ik{{)u(Oxk77s3&sV!ved^svKypI$2k}|u`lRPctNZ%C6Lf&w@@vJ^vE5YS=>d; zF50cl+s!sW#_vFv zlnsKBFk+H3$I{WwhrqIwW`iYyd7acY7H5*dp3R&1x|7+P$kEcUR@NKb0Jr5LH$ zZ4-aO`p|Ta8`w$Y39_W6ATor~Kpg1AZeu$pZ_|;-%lKh`fYS(55UACZoi=&8(R1k^ z#8RRy3=|uQLH5i8;GG--5r2fD1TYX{!-2f`8xUBA>a;o_>JgEhKxH|D=qLt&zS*lI zKpnjTb9O6AJi-}7k^HnhkE+Dy0LL=pi+$_T@xNTU;&D>alu!8421f+llT>xIX7l(B=2T?|}|upaIEsQ9-@ z+k?)*cu%{TCD?U1JC3)TSpvGv>w=E?xu8nX1ag3cS9Vf@Ap0a2AF=7gw&?MA({t2DNR5e4}n5?5a-cHK3Ea- zz##xndJWhl*_C7o)0wR!gv`6gjMtxB9umZ8R2oqq56Yk}b8_r*TQNU3aF{{%PbseS z2wEibV1yum$APoHYl4hV+D$EFIArM8F4;&dMk)==B3NiB#p&WP&wnGG!j9x#LtX@< zq4BwpY(hZHB#&a3nh$%(@puB<0oXz~@@JC2anKXn6jGl!l!07hT%At%xSZ5LtQPQM z3=1B*8A#w=X?WK}v-k{V4BQHKOfoL#$5^p$uw=9N+?;6SXwfqxNe-fbcvK&R;%J6B z)%JiYG;nJXA702P`~e10m_>9GN=Qzjau#%sAPt-P>dYjkfG~g*PHbG4fOHAlL2wxoM+U|;Qh1LV znVYpRa5^%KkxjdUs}oZsTDJu5ZK6SLG)qS|@o_FLPa#1=unhw#T$+FFHA9}K6*Z|E zcOpv=EXAZmigN43W2k~D1`d^TA39phq!Nz3hugO<3Wv|!y#lQ5^~IxeMpk}#vsQ|G zgq|=ts-Y(gVl1`+7qF?LA`1vRg`zFIhgaOZDID(I)=r~t{_@I^IirhdR0t&rb~;eb zVWmMRE?Y*h7G5@R*u|(WKlk@5)Uv>6rW5vu7j11HS+V;}mY@OI&$MQYO|Y_rzS%1h zVXzB2yf7ez5b%2Qa40j$E;z9?b~|8EP?6MxP%D; zcVfLfiZ-;FWQy=W9e|0Iq0gMrZw$Ty5gSi!p|W}BDU~`;HTisyO;{kTpe%@6`)l&u zcaz#*nH#VBE7|Mp^-66GySGv+)k-Vby&9-E^(bDO9a;!*BNDL;=O@mDY;t~DF+2;% zh2zg9<%a#r+m%OhD^KQr00`Lpazk?bx&4*=eqgHyD9q+U_D53!cI?-h_hVh~h0zXA ztYfDuJHbyrk`izjqpAE~ON)c+g zE^z76uHahp&(L_P1L z894bgrwCpUVCi3g>=+&rWFeT7IGzWcIj(c zMc@S2&rk$tAxIHOKoKC)CpGHhR0MQPVdTS51Wx~7Py_@v;14}TyHDH7`n89&5w={r zUodTc6dYTQJv?G40w*PX^Aq1odMIrlvhWGZ0PP?yVxG7zA;c*^HyC1TaBHElt1#3F zYZEjMABDys%_enhi6QU-@A2~gc2P8f~}ko5iTbwK%mB=vH~Jk?Gj-JB1|YjUUQbSW6Qk5aJ16oe_Q?qvG}l6EVm z&I#GTYZ`z12nUFcO;SEh$A@l8a_D^rKe}&+z!SzLF6n(F3s>q$;(kBAyyS8sO$s_S z?bVa^?7-xuvt2Uz@l*FC&N*T8GLE@aoWMu%4S{`tTm-vLdHvFiSh{K9WDJaHLV?M| zm|E3;+8HY#6n;Rm35PyxB9x z;8`~()i%d4dGX*MzQlU`54p2>3=otc={1f+VNau@KgDV}_rgIxJ@Z1`4gCWNL3ks* z22nQ@+;im9fb}qiEAj0@y`u#JbYID2NECL^QC2AtWkXgvlILhx#Mn^O5LeiA4(6k< zE|N`TDz*um=T%miAMltp^a``0-A2a+oe<_u9#lBfu(1l>V?#t$b7lH(yo2M`~Jr|3c+k1OIDJAcYY;}-_fQYP=T6F}eMCn@2I6I(ZV3yfgq z2D>#|NlxD6Jw>wkD3hK+f=gqQWCa1OpX9{F$SKjDM*LVs`zf|opG00PY`80(3|3$& zd5Wkym?}_}o>MShXy=fiG5yBj+uhJ~ut9a9mT!HrRk^f9Zh6jMMoeCRphp;!34pYk zgVVYG&4L%Vtm}-1Ba1(e7y*Ay8p^~YXyfSiYQsM}$#bT+S98O?n3B$QXe!t`#CRxn z0i1+-CcT1L@B@qlJV>K3uyer?f1g2aYy`r9I3NqbkUs4ll;e1Z`D*2{+S>84TCm#g ziTC9?)a&v~Wzw?560e7v{ldZt#S67{#~=s;WN8c_SS`$oY$yC?L1$n{mU{DvoB)%G z3Ib(0Wz>$!Zj=1XPpx5tdTlinTB0^Bs9J_x5ajxpI*tD$xoJ~!;hTKkiO$=J=Iy>d;I?Dp2Dwm~ zhvg;Nn9f=vl=P4+5y(e-BaJ>=&<6)bZ8Qf`Iv%}m_`ZL;`{v=BSy_^-~Ho&XX(f2n5$yF2GM}+<{Pgc(Oc$9Fq7ehSN}XitTWyUg#7tb-Pkr*Sff_zD!)4$^;X0u9DETp&a|S zsxlfvMyiaARrpC13(x4~okFI`Wuy$~ib%N3JkwO;XH$=jsY!hCRIkGs=f+Y^5NDp% zO-6e}WVHz*MvJ;)kSknj<>7*Szstes%t&|11f)PdcgeKW$-p_v-c@TK#Y0;!z53l6jn=1sHhvWjzrI^J8rRwx_7HVnpO8xSpo zL#0Qz4|akXo4e08nV5>Agp?@O*%$KVi773fq>fV-$LG1$ZXv>vOA! zZ5TEqW&@A*W_jExK27Cetu1KQ2Qq9@!T|-H8GR^r8hPZ6*c*?Q*IIUbb;pkF+vQhq z*jH?4A@-71#a=oJ3iQtMdXN>NLqX4F6#XMvuOd^GWLtw58*j^LBN@u*4oQI%DDBE& z@NpP?;Xo8ITeA42nw=VUq(|<3GJ=lAVwf1u`TS_7D4j6=eQva0Ow1&zybvr zxejnX@`x+64+#VU6k=~h&wJt07hPRMH+k@3-_X`r|AN?p{@B)`?N8Y+I2}CX2fagf z`P<`5>_e0k{G-z^us?-S@de>`El8jYEtGJI5hyUvvJ97O2mjydcA{n|7?(q)zFd^^ zL>!FDIzz#yW1^}uTwPvWT9RK@Q05Pz#I!$@<*^l4LvU(}QF(WCR^(B$ydp3a1XlGD z>n%aO5PV=_$l9`CL5r0d>{+QdxYbIX!L7smr@Z$11uf0ps7QS^<$LoU;rsVfr||vQ zD-yPmXwv@CttpMV4V0`Yyv?7yHYwZD=p93?2dujT3M=X zsBNgPn^hGpFD))A$PM_iv)odRTtiZnRmh8Rq8wTaXb@ovjVYs6!aS6Pzd_B2CM43( z5!BbbZnUeXea^_*x)orQK^yJS~WOT4kUZjNQxdA9aA+o!HwJg*n!wA&kd z2bRt+3iXxG>TjrwG?e5g7VqPPze?&t$hHF<=U1RQ)%q-vKQ=@hBv^reHhCveBRcl3 zqu=3#@)B3XCpssjV_u;oztk~L*s>0IJWTRXA$v<+NBDh9`E2gmc{_(3`;BqSL97}@+tSHc;DLO2}d2L+09if}LbTi~la6eE6&d}ye?FPb{ASq+;mx@c2F z>^Jz@+|sgiaBw@bT(EKD1&0sUYTu~Uj<80y^3?wRQ_0uO86)j^_)Uoc(*A~Yf@Tby z0}!9&PSm3r0D5{*rxfI}Ll%e!bkiCe9J*-l-iyEh*uwpX4(;b00E5KATtcuC%%ZZ? zmBd7r78jw5g1m$y1gOBHc#9!vgT+e5PXu;Vl;`I7vNPS%EH;Y@C+V7WJb*~FfS(#{ z&=HB+FJuvjwxFXGG2$|k55Cpj-Pe_0G`A?UBvdrFq^Nt@f;o+ys@myX-S_N@vz^1% z_L}Eb)>J<6L}ks&=c?kiVdu8x&-Sfui^XU!((V-C)=5hez0(40L2oZO^3aAam5hhF z(#XcEu4YnoU3Fb;jd=n@R3|Y3G6~E$iTl}qoxnWyaQc%bu1BrVc{l}iTO<}%QjS~C zA^b4O1j~4zd{LRc2$?- zs8j|Gt%R60ggOH;Z59%SUF_FdC4Yi4cI1^>r3!p%@+mH

M*a5~oB;oGMxw@F(#} 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": [".#...", "..#..", "...#.", "....#", "...#.", "..#..", ".#..."], - "?": [".###.", "#...#", "....#", "..##.", "..#..", ".....", "..#.."], - "@": [".###.", "#...#", "#.###", "#.#.#", "#.###", "#....", ".###."], - "A": [".###.", "#...#", "#...#", "#####", "#...#", "#...#", "#...#"], - "B": ["####.", "#...#", "#...#", "####.", "#...#", "#...#", "####."], - "C": [".###.", "#...#", "#....", "#....", "#....", "#...#", ".###."], - "D": ["####.", "#...#", "#...#", "#...#", "#...#", "#...#", "####."], - "E": ["#####", "#....", "#....", "####.", "#....", "#....", "#####"], - "F": ["#####", "#....", "#....", "####.", "#....", "#....", "#...."], - "G": [".###.", "#...#", "#....", "#.###", "#...#", "#...#", ".###."], - "H": ["#...#", "#...#", "#...#", "#####", "#...#", "#...#", "#...#"], - "I": [".###.", "..#..", "..#..", "..#..", "..#..", "..#..", ".###."], - "J": ["..###", "...#.", "...#.", "...#.", "#..#.", "#..#.", ".##.."], - "K": ["#...#", "#..#.", "#.#..", "##...", "#.#..", "#..#.", "#...#"], - "L": ["#....", "#....", "#....", "#....", "#....", "#....", "#####"], - "M": ["#...#", "##.##", "#.#.#", "#.#.#", "#...#", "#...#", "#...#"], - "N": ["#...#", "##..#", "#.#.#", "#..##", "#...#", "#...#", "#...#"], - "O": [".###.", "#...#", "#...#", "#...#", "#...#", "#...#", ".###."], - "P": ["####.", "#...#", "#...#", "####.", "#....", "#....", "#...."], - "Q": [".###.", "#...#", "#...#", "#...#", "#.#.#", "#..#.", ".##.#"], - "R": ["####.", "#...#", "#...#", "####.", "#.#..", "#..#.", "#...#"], - "S": [".###.", "#...#", "#....", ".###.", "....#", "#...#", ".###."], - "T": ["#####", "..#..", "..#..", "..#..", "..#..", "..#..", "..#.."], - "U": ["#...#", "#...#", "#...#", "#...#", "#...#", "#...#", ".###."], - "V": ["#...#", "#...#", "#...#", "#...#", "#...#", ".#.#.", "..#.."], - "W": ["#...#", "#...#", "#...#", "#.#.#", "#.#.#", "##.##", "#...#"], - "X": ["#...#", "#...#", ".#.#.", "..#..", ".#.#.", "#...#", "#...#"], - "Y": ["#...#", "#...#", ".#.#.", "..#..", "..#..", "..#..", "..#.."], - "Z": ["#####", "....#", "...#.", "..#..", ".#...", "#....", "#####"], - "[": [".###.", ".#...", ".#...", ".#...", ".#...", ".#...", ".###."], - "\\": ["#....", ".#...", ".#...", "..#..", "...#.", "...#.", "....#"], - "]": [".###.", "...#.", "...#.", "...#.", "...#.", "...#.", ".###."], - "^": ["..#..", ".#.#.", "#...#", ".....", ".....", ".....", "....."], - "_": [".....", ".....", ".....", ".....", ".....", ".....", "#####"], - "`": [".#...", "..#..", "...#.", ".....", ".....", ".....", "....."], - "a": [".....", ".....", ".###.", "....#", ".####", "#...#", ".####"], - "b": ["#....", "#....", "####.", "#...#", "#...#", "#...#", "####."], - "c": [".....", ".....", ".###.", "#....", "#....", "#...#", ".###."], - "d": ["....#", "....#", ".####", "#...#", "#...#", "#...#", ".####"], - "e": [".....", ".....", ".###.", "#...#", "#####", "#....", ".###."], - "f": ["..##.", ".#..#", ".#...", "###..", ".#...", ".#...", ".#..."], - "g": [".....", ".....", ".####", "#...#", ".####", "....#", ".###."], - "h": ["#....", "#....", "####.", "#...#", "#...#", "#...#", "#...#"], - "i": ["..#..", ".....", ".##..", "..#..", "..#..", "..#..", ".###."], - "j": ["...#.", ".....", "..##.", "...#.", "...#.", "#..#.", ".##.."], - "k": ["#....", "#....", "#..#.", "#.#..", "##...", "#.#..", "#..#."], - "l": [".##..", "..#..", "..#..", "..#..", "..#..", "..#..", ".###."], - "m": [".....", ".....", "##.#.", "#.#.#", "#.#.#", "#...#", "#...#"], - "n": [".....", ".....", "####.", "#...#", "#...#", "#...#", "#...#"], - "o": [".....", ".....", ".###.", "#...#", "#...#", "#...#", ".###."], - "p": [".....", ".....", "####.", "#...#", "####.", "#....", "#...."], - "q": [".....", ".....", ".####", "#...#", ".####", "....#", "....#"], - "r": [".....", ".....", "#.##.", "##..#", "#....", "#....", "#...."], - "s": [".....", ".....", ".####", "#....", ".###.", "....#", "####."], - "t": ["..#..", "..#..", "#####", "..#..", "..#..", "..#.#", "..##."], - "u": [".....", ".....", "#...#", "#...#", "#...#", "#...#", ".####"], - "v": [".....", ".....", "#...#", "#...#", "#...#", ".#.#.", "..#.."], - "w": [".....", ".....", "#...#", "#...#", "#.#.#", "#.#.#", ".#.#."], - "x": [".....", ".....", "#...#", ".#.#.", "..#..", ".#.#.", "#...#"], - "y": [".....", ".....", "#...#", "#...#", ".####", "....#", ".###."], - "z": [".....", ".....", "#####", "...#.", "..#..", ".#...", "#####"], - "{": ["...##", "..#..", "..#..", ".#...", "..#..", "..#..", "...##"], - "|": ["..#..", "..#..", "..#..", "..#..", "..#..", "..#..", "..#.."], - "}": ["##...", "..#..", "..#..", "...#.", "..#..", "..#..", "##..."], - "~": [".....", ".....", ".##.#", "#.##.", ".....", ".....", "....."], -} - -CELL_W = 6 -CELL_H = 9 -SCALE = 3 -MARGIN = 28 -BG = (22, 23, 20) +# Logical sizes are doubled so the file is a crisp 2x image. +SCALE = 2 +BODY = 20 * SCALE +LABEL = 26 * SCALE +LINE = 32 * SCALE +PAD = 32 * SCALE +BAR = 8 * SCALE +GAP = 16 * SCALE +MIN_WIDTH = 640 * SCALE + +BG = (18, 20, 16) +PANEL = (28, 31, 26) FG = (236, 235, 227) -HEADING = (213, 255, 63) +LIME = (213, 255, 63) +MUTED = (150, 153, 141) +FAIL = (255, 91, 59) +PASS_COLOR = (61, 220, 151) RULE = (65, 68, 58) -def _glyph(char): - rows = _ROWS.get(char) - if rows is None: - raise ValueError(f"refusing to omit unsupported character {char!r} from the screenshot") - return rows +def _require_text(text): + for char in text: + if char == "\n": + continue + if ord(char) < 32 or ord(char) > 126: + raise ValueError(f"refusing to omit unsupported character {char!r} from the screenshot") -def _lines(blocks): - """Return (text, is_heading) rows. Body text is the captured CLI output.""" - lines = [] - for index, (heading, body) in enumerate(blocks): - if index: - lines.append(("", False)) - for line in heading.splitlines() or [""]: - lines.append((line, True)) - lines.append(("", False)) - for line in body.splitlines() or [""]: - lines.append((line, False)) - return lines +def _fonts(): + from PIL import ImageFont + regular = ImageFont.truetype(str(REGULAR), BODY) + label = ImageFont.truetype(str(BOLD), LABEL) + return regular, label + + +def _width(font, text): + if not text: + return 0 + return int(font.getlength(text) + 0.999) def render_png(blocks): - lines = _lines(blocks) - columns = max((len(text) for text, _ in lines), default=1) - width = MARGIN * 2 + columns * CELL_W * SCALE - height = MARGIN * 2 + len(lines) * CELL_H * SCALE - pixels = bytearray(bytes(BG) * (width * height)) - - def paint(x, y, color): - if 0 <= x < width and 0 <= y < height: - start = (y * width + x) * 3 - pixels[start:start + 3] = bytes(color) - - for row, (text, heading) in enumerate(lines): - color = HEADING if heading else FG - origin_y = MARGIN + row * CELL_H * SCALE - if text == "" and row not in (0, len(lines) - 1): - # A blank separator between the command label and its output. - rule_y = origin_y + (CELL_H * SCALE) // 2 - if heading is False and row > 0 and lines[row - 1][1] and row + 1 < len(lines) and not lines[row + 1][1]: - for x in range(MARGIN, width - MARGIN): - paint(x, rule_y, RULE) + """Return PNG bytes. `blocks` are (heading, stdout) from `capture`.""" + for heading, body in blocks: + _require_text(heading) + _require_text(body) + try: + from PIL import Image, ImageDraw + except ImportError as exc: + raise RuntimeError("Pillow is required to draw the release screenshot") from exc + regular, label = _fonts() + sections = [] + content_width = 0 + for index, (heading, body) in enumerate(blocks): + accent = FAIL if index == 0 else PASS_COLOR + title = "FAILED" if index == 0 else "PASSED" + content_width = max(content_width, _width(label, title)) + heading_lines = heading.splitlines() or [""] + body_lines = body.splitlines() or [""] + for line in heading_lines + body_lines: + content_width = max(content_width, _width(regular, line)) + sections.append((accent, title, heading_lines, body_lines)) + width = max(MIN_WIDTH, content_width + PAD * 2 + BAR + PAD // 2) + text_x = BAR + PAD + rows = [] + y = PAD + for accent, title, heading_lines, body_lines in sections: + top = y + rows.append(("text", text_x, y, title, label, accent)) + y += LABEL + GAP + for number, line in enumerate(heading_lines): + color = LIME if number == 0 else MUTED + rows.append(("text", text_x, y, line, regular, color)) + y += LINE + y += GAP // 2 + rows.append(("rule", text_x, y, width - PAD)) + y += GAP + panel_top = y - GAP // 3 + panel_lines = body_lines + panel_bottom = y + LINE * len(panel_lines) + GAP // 3 + rows.append(("panel", BAR, panel_top, width, panel_bottom, accent)) + for line in panel_lines: + rows.append(("text", text_x, y, line, regular, FG)) + y += LINE + y = panel_bottom + GAP + rows.append(("bar", 0, top, BAR, y - GAP // 2, accent)) + y += GAP + height = y + image = Image.new("RGB", (width, height), BG) + draw = ImageDraw.Draw(image) + # Panels and bars first, then text, so antialiased glyphs stay on top. + for kind, *rest in rows: + if kind == "panel": + left, top, right, bottom, accent = rest + draw.rectangle((left, top, right - 1, bottom - 1), fill=PANEL) + elif kind == "bar": + left, top, bar_w, bottom, accent = rest + draw.rectangle((left, top, left + bar_w - 1, bottom - 1), fill=accent) + elif kind == "rule": + x0, rule_y, x1 = rest + draw.rectangle((x0, rule_y, x1, rule_y + SCALE), fill=RULE) + for kind, *rest in rows: + if kind != "text": continue - for column, char in enumerate(text): - origin_x = MARGIN + column * CELL_W * SCALE - for gy, bits in enumerate(_glyph(char)): - for gx, bit in enumerate(bits): - if bit != "#": - continue - for sy in range(SCALE): - for sx in range(SCALE): - paint(origin_x + gx * SCALE + sx, origin_y + gy * SCALE + sy, color) - return _encode(width, height, pixels) - - -def _encode(width, height, pixels): - raw = bytearray() - stride = width * 3 - for y in range(height): - raw.append(0) - raw.extend(pixels[y * stride:(y + 1) * stride]) - def chunk(tag, data): - return struct.pack(">I", len(data)) + tag + data + struct.pack(">I", zlib.crc32(tag + data) & 0xFFFFFFFF) - ihdr = struct.pack(">IIBBBBB", width, height, 8, 2, 0, 0, 0) - return b"\x89PNG\r\n\x1a\n" + chunk(b"IHDR", ihdr) + chunk(b"IDAT", zlib.compress(bytes(raw), 9)) + chunk(b"IEND", b"") + x, text_y, text, font, color = rest + draw.text((x, text_y), text, font=font, fill=color, anchor="la") + buffer = io.BytesIO() + image.save(buffer, format="PNG", compress_level=9) + return buffer.getvalue() def run_spec(spec): From 17a86116758c1e6a3951482686c2bb4273b58291 Mon Sep 17 00:00:00 2001 From: Sean Davis Date: Fri, 16 Oct 2026 14:37:47 +0000 Subject: [PATCH 3/3] Require the release screenshot tests in CI A Python 3.13 job installs only the hash-locked Pillow wheel, runs the screenshot tests, and fails if one is skipped or missing. It uploads the PNG as a workflow artifact. --- .github/workflows/ci.yml | 25 +++++++ CHANGELOG.md | 1 + tests/test_release_screenshot.py | 124 ++++++++++++++++++++++++++++++- 3 files changed, 148 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 516f120..43ef165 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -124,3 +124,28 @@ jobs: working-directory: demo - run: npm run lint working-directory: demo + + release-screenshot: + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + with: + persist-credentials: false + - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7 + with: + python-version: '3.13' + - name: Install the hash-locked release-image renderer + run: python -m pip install --require-hashes -r tools/release-requirements.txt + - name: Run the screenshot tests and fail if any are skipped or missing + env: + PROOFCLI_REQUIRE_RENDER: '1' + run: python tests/test_release_screenshot.py + - name: Render the release screenshot + run: python tools/render_release_screenshot.py dist/proofcli-screenshot.png + - uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6 + with: + name: release-screenshot + path: dist/proofcli-screenshot.png + if-no-files-found: error + retention-days: 7 diff --git a/CHANGELOG.md b/CHANGELOG.md index 2bf35ea..67cda32 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - `proofcli --help` lists `run`, `validate`, and `init`, each with its own one-line description. `proofcli run --help`, `proofcli validate --help`, and `proofcli init --help` each describe that command instead of sharing one sentence. `proofcli SPEC` still runs a spec, and exit codes are unchanged. - GitHub releases now attach one PNG of real ProofCLI output: the failing export check and the passing run. The image is drawn with a vendored monospace font. Pillow is installed only while that release image is built, and ProofCLI itself still has no runtime dependencies. The release workflow no longer renders a demo video or installs the Remotion tools, so a video render cannot block the GitHub release or the PyPI publish that follows it. The motion-demo workflow can still render preview videos as workflow artifacts, and it no longer uploads those videos to a release. +- Every pull request and push runs a `release-screenshot` check on Python 3.13. That job installs only the hash-locked Pillow used for the release image, runs the screenshot tests, and fails if one of those tests is skipped or missing. It also uploads the PNG as a workflow artifact. ## 0.4.2 โ€” 2026-10-16 diff --git a/tests/test_release_screenshot.py b/tests/test_release_screenshot.py index 2b4cb37..049bbfc 100644 --- a/tests/test_release_screenshot.py +++ b/tests/test_release_screenshot.py @@ -1,13 +1,25 @@ """The release screenshot is a PNG of a real failing run and a real passing run.""" +import os from pathlib import Path import struct import runpy +import sys import unittest PROJECT = Path(__file__).resolve().parents[1] tool = runpy.run_path(str(PROJECT / "tools" / "render_release_screenshot.py")) +# Every test in this module. The release-screenshot job fails unless each one ran. +EXPECTED_TESTS = ( + "test_real_runs_keep_their_output_text", + "test_png_is_deterministic_and_readable", + "test_unknown_character_is_not_replaced", + "test_require_render_refuses_to_skip", + "test_missing_pillow_skips_only_without_require_render", + "test_render_guard_rejects_skips_and_missing_tests", +) + def _pillow(): try: @@ -17,6 +29,37 @@ def _pillow(): return True +def _require_render(): + return os.environ.get("PROOFCLI_REQUIRE_RENDER") == "1" + + +def demand_pillow(test, available): + """Skip the drawing test, or fail it when the release job requires a render.""" + if available: + return + message = "Pillow is required to draw the release screenshot" + if _require_render(): + test.fail(message) + test.skipTest("Pillow is installed only when building the release image") + + +def _method_name(test): + return test.id().rsplit(".", 1)[-1] + + +def evaluate_render_run(expected, executed, skipped): + """Return problems. `executed` and `skipped` are method names.""" + expected = tuple(expected) + problems = [] + if len(executed) != len(expected) or set(executed) != set(expected): + problems.append( + f"ran {len(executed)} {sorted(executed)} != expected {len(expected)} {list(expected)}" + ) + if skipped: + problems.append(f"skipped {len(skipped)} {sorted(skipped)}") + return problems + + def _chunks(data): assert data.startswith(b"\x89PNG\r\n\x1a\n") pos = 8 @@ -46,8 +89,7 @@ def test_real_runs_keep_their_output_text(self): self.assertIn("PASSED", blocks[1][1]) def test_png_is_deterministic_and_readable(self): - if not _pillow(): - self.skipTest("Pillow is installed only when building the release image") + demand_pillow(self, _pillow()) blocks = tool["capture"]() first = tool["render_png"](blocks) second = tool["render_png"](blocks) @@ -66,6 +108,84 @@ def test_unknown_character_is_not_replaced(self): with self.assertRaises(ValueError): tool["render_png"]([("ok", "caf\u00e9")]) + def test_require_render_refuses_to_skip(self): + previous = os.environ.get("PROOFCLI_REQUIRE_RENDER") + os.environ["PROOFCLI_REQUIRE_RENDER"] = "1" + try: + with self.assertRaises(AssertionError): + demand_pillow(self, False) + finally: + if previous is None: + os.environ.pop("PROOFCLI_REQUIRE_RENDER", None) + else: + os.environ["PROOFCLI_REQUIRE_RENDER"] = previous + + def test_missing_pillow_skips_only_without_require_render(self): + previous = os.environ.pop("PROOFCLI_REQUIRE_RENDER", None) + try: + with self.assertRaises(unittest.SkipTest): + demand_pillow(self, False) + finally: + if previous is not None: + os.environ["PROOFCLI_REQUIRE_RENDER"] = previous + + def test_render_guard_rejects_skips_and_missing_tests(self): + self.assertEqual(evaluate_render_run(EXPECTED_TESTS, EXPECTED_TESTS, []), []) + problems = evaluate_render_run( + EXPECTED_TESTS, + ["test_png_is_deterministic_and_readable"], + ["test_real_runs_keep_their_output_text"], + ) + self.assertEqual(len(problems), 2) + + +class _RecordingResult(unittest.TextTestResult): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.executed = [] + self.skipped_names = [] + + def addSuccess(self, test): + super().addSuccess(test) + self.executed.append(_method_name(test)) + + def addFailure(self, test, err): + super().addFailure(test, err) + self.executed.append(_method_name(test)) + + def addError(self, test, err): + super().addError(test, err) + self.executed.append(_method_name(test)) + + def addSkip(self, test, reason): + super().addSkip(test, reason) + self.skipped_names.append(_method_name(test)) + + +def run_required(): + """Run this module and fail unless every expected test ran and none were skipped.""" + suite = unittest.defaultTestLoader.loadTestsFromTestCase(ReleaseScreenshotTests) + found = [_method_name(test) for test in suite] + if set(found) != set(EXPECTED_TESTS) or len(found) != len(EXPECTED_TESTS): + print("Release screenshot tests do not match the expected ids:", file=sys.stderr) + print(f" found {found}", file=sys.stderr) + print(f" expected {list(EXPECTED_TESTS)}", file=sys.stderr) + return 1 + runner = unittest.TextTestRunner(verbosity=2, resultclass=_RecordingResult) + result = runner.run(suite) + problems = evaluate_render_run(EXPECTED_TESTS, result.executed, result.skipped_names) + print( + f"release-screenshot tests: ran {len(result.executed)}, " + f"skipped {len(result.skipped_names)}, expected {len(EXPECTED_TESTS)}" + ) + if problems or not result.wasSuccessful(): + for problem in problems: + print(problem, file=sys.stderr) + return 1 + return 0 + if __name__ == "__main__": + if _require_render(): + sys.exit(run_required()) unittest.main()