From aeb991bc1c8778cda986ba708e487316761607af Mon Sep 17 00:00:00 2001 From: SAPHID Date: Sun, 25 Oct 2026 23:14:50 +0000 Subject: [PATCH 1/4] Fix Framey sample settings path and same-plugin reopen --- docs/frame-plugin-author.md | 2 +- examples/framey-settings/README.md | 2 +- examples/framey-settings/main.py | 2 +- tests/page/framey_cache.mjs | 6 ++++++ tests/test_framey_sample.py | 2 +- ui/headset.html | 2 +- 6 files changed, 11 insertions(+), 5 deletions(-) diff --git a/docs/frame-plugin-author.md b/docs/frame-plugin-author.md index 3b11e71..a435c50 100644 --- a/docs/frame-plugin-author.md +++ b/docs/frame-plugin-author.md @@ -36,7 +36,7 @@ remain unavailable. Wearer-visible use is not yet verified. The [settings sample](../examples/framey-settings/README.md) shows an official Decky JSX build, backend persistence, a toggle and a local toast. Framey offers only official-store-owned plugins in its VR panel. -For persistent backend settings, use Decky's `decky.decky_SETTINGS_DIR` rather +For persistent backend settings, use Decky's `decky.DECKY_PLUGIN_SETTINGS_DIR` rather than assuming an environment variable or Steam Deck home path. Validate stored types when reading, write through a temporary file before replacing the old file, and give the panel a safe default if settings are missing or damaged. diff --git a/examples/framey-settings/README.md b/examples/framey-settings/README.md index 55c9228..530f18a 100644 --- a/examples/framey-settings/README.md +++ b/examples/framey-settings/README.md @@ -2,7 +2,7 @@ This is a small Decky API v2 plugin for authors. Its panel uses the official `@decky/api`, `@decky/ui`, and `@decky/rollup` packages. A toggle calls a Python -backend method, stores one boolean under `decky.decky_SETTINGS_DIR`, +backend method, stores one boolean under `decky.DECKY_PLUGIN_SETTINGS_DIR`, and reads it back when the panel opens. The backend rejects other keys and values. The frontend also shows a local toast after a successful save. A Framey settings tab exposes the same toggle, and a read-only quick action diff --git a/examples/framey-settings/main.py b/examples/framey-settings/main.py index f2be57b..4c491d1 100644 --- a/examples/framey-settings/main.py +++ b/examples/framey-settings/main.py @@ -8,7 +8,7 @@ import decky def settings_file(): # Decky provides this per-plugin path through its official Python module. - return Path(decky.decky_SETTINGS_DIR) / 'settings.json' + return Path(decky.DECKY_PLUGIN_SETTINGS_DIR) / 'settings.json' class Plugin: diff --git a/tests/page/framey_cache.mjs b/tests/page/framey_cache.mjs index c20486c..c251969 100644 --- a/tests/page/framey_cache.mjs +++ b/tests/page/framey_cache.mjs @@ -21,6 +21,7 @@ const parent=vm.createContext({document:{getElementById:el,createElement:()=>({} vm.runInContext(parentSource,parent); vm.runInContext('deckyState={plugins:[{storeId:14}]};openFrameyPanel(14,"Steam Status")',parent); let session=vm.runInContext('frameySession',parent); +const firstURL=new URL(el('frameyFrame').src,'http://127.0.0.1'); const onParent=parentListeners.find(x=>x.type==='message').fn; function iframe(){ @@ -49,6 +50,11 @@ const oldSession=session; vm.runInContext('openFrameyPanel(14,"Steam Status")',parent); session=vm.runInContext('frameySession',parent); assert.notEqual(session,oldSession); +const reopenedURL=new URL(el('frameyFrame').src,'http://127.0.0.1'); +// Fragment-only navigation preserves the old document, host and cache session. +assert.notEqual(reopenedURL.pathname+reopenedURL.search,firstURL.pathname+firstURL.search); +assert.equal(reopenedURL.searchParams.get('session'),session); +assert.equal(reopenedURL.hash.slice(1),session); let reopened=iframe(); assert.equal(reopened.storage.getItem('status-cache'),'{"online":true}'); assert.equal(reopened.storage.length,1); diff --git a/tests/test_framey_sample.py b/tests/test_framey_sample.py index ffdd50a..a25d45e 100644 --- a/tests/test_framey_sample.py +++ b/tests/test_framey_sample.py @@ -15,7 +15,7 @@ EXAMPLE = Path(__file__).resolve().parents[1] / 'examples/framey-settings/main.p def backend(settings_dir): decky = types.ModuleType('decky') - decky.decky_SETTINGS_DIR = settings_dir + decky.DECKY_PLUGIN_SETTINGS_DIR = settings_dir spec = importlib.util.spec_from_file_location('framey_sample', EXAMPLE) module = importlib.util.module_from_spec(spec) with patch.dict(sys.modules, {'decky': decky}): diff --git a/ui/headset.html b/ui/headset.html index 8c6f0ca..e876b01 100644 --- a/ui/headset.html +++ b/ui/headset.html @@ -189,7 +189,7 @@ function openFrameyPanel(id,name){ if(!(deckyState?.plugins||[]).some(p=>p.storeId===id))return; activeFrameyId=id;frameySession=`${Date.now()}-${Math.random()}`;byId('frameyTitle').textContent=name; byId('frameyPanelStatus').textContent='Loading plugin panel…'; - byId('frameyFrame').src=`/framey/panel/${id}#${frameySession}`; + byId('frameyFrame').src=`/framey/panel/${id}?session=${encodeURIComponent(frameySession)}#${frameySession}`; byId('frameyPanel').hidden=false;byId('frameyPanel').scrollIntoView(); setTimeout(()=>{if(activeFrameyId===id&&byId('frameyPanelStatus').textContent==='Loading plugin panel…') byId('frameyPanelStatus').textContent='No compatible panel loaded. This plugin may need Steam UI features Framey cannot provide.';},12000); From 285871bc39a9739282bb9fc6662935ebded84d58 Mon Sep 17 00:00:00 2001 From: SAPHID Date: Sun, 25 Oct 2026 23:25:07 +0000 Subject: [PATCH 2/4] Add locked unattended Framey VR capture and native input checks --- docs/framey-loader.md | 13 +- docs/framey-vr-check.md | 109 ++++++++++++ scripts/framey-vr-check.py | 310 ++++++++++++++++++++++++++++++++++ scripts/framey-worn-check.py | 32 +++- scripts/framey_openvr.py | 108 ++++++++++++ scripts/framey_vr_input.py | 134 +++++++++++++++ tests/test_framey_vr_check.py | 74 ++++++++ tests/test_framey_worn.py | 8 +- 8 files changed, 778 insertions(+), 10 deletions(-) create mode 100644 docs/framey-vr-check.md create mode 100644 scripts/framey-vr-check.py create mode 100644 scripts/framey_openvr.py create mode 100644 scripts/framey_vr_input.py create mode 100644 tests/test_framey_vr_check.py diff --git a/docs/framey-loader.md b/docs/framey-loader.md index 303332f..9ce97de 100644 --- a/docs/framey-loader.md +++ b/docs/framey-loader.md @@ -159,7 +159,7 @@ The Decky and headset service manual removal commands are in ## Fast worn-headset check With an already installed Framey plugin and someone wearing the headset, run -`python3 scripts/framey-worn-check.py` from a paired computer. The script +`python3 scripts/framey-worn-check.py --worn-confirmed` from a paired computer. The script atomically acquires `/tmp/frame-test.lock` before reading battery or SteamVR activity. If another job owns the lock, it makes no sensor reads. It releases its own lock without starting the interaction when the headset is in standby. @@ -172,3 +172,14 @@ color count, then removes the private temporary image from both devices. Pixel variety alone cannot prove the UI text was legible; a person must still confirm the view in the headset. The script does not install or remove a plugin, alter Steam settings, or wake the headset. + + +## Unattended VR checks + +The [unattended check](framey-vr-check.md) can wake, inspect and capture the +real compositor, send OpenVR mouse input, and exercise a temporary sample +against live Decky with restoration and shared-lock protection. Its +[device evidence](evidence/framey-vr-2026-10-25/README.md) distinguishes these +checks from physical controller and wearer validation. A trusted pointer event +and active-headset telemetry are both reproducible without wearing the Frame; +they must not be labelled as physical controller proof. diff --git a/docs/framey-vr-check.md b/docs/framey-vr-check.md new file mode 100644 index 0000000..56b7914 --- /dev/null +++ b/docs/framey-vr-check.md @@ -0,0 +1,109 @@ +# Checking Framey without wearing the Frame + +Use the existing paired SSH alias, directly or through lxso2. Start with the +read-only check, then a temporary wake. A full input exercise is opt in: + +```sh +python3 scripts/framey-vr-check.py --via lxso2 --output /tmp/framey-inspect +python3 scripts/framey-vr-check.py --via lxso2 --wake --output /tmp/framey-wake +python3 scripts/framey-vr-check.py --via lxso2 --exercise --output /tmp/framey-exercise +``` + +Omit `--via` when the computer can already `ssh frame`; use `--host` for another +paired alias. No SSH trust or credentials are changed. The output folder is +private by default. Stereo screenshots and the OBS mirror can contain room +pixels. Review/redact them before committing or sharing. JSON reports have +screenshot hashes and no UI access keys. + +The runner acquires `/tmp/frame-test.lock` by atomic `mkdir`, writes a random +owner, then reads battery and SteamVR state. A foreign lock prevents sensor +reads, wake, installation and input. Unknown battery or below 20% aborts. +Battery is read again before release. The default check never wakes or +installs anything; it returns nonzero when the panel is absent/hidden. + +`--wake` saves the exact current `power.pauseCompositorOnStandby` and +`power.turnOffScreensTimeout`, sets them to `0` and `120`, calls the supported +`vrcmd --handlewakeup` and requests the Frame Control dashboard panel. It reads +OpenVR state, captures a stereo compositor screenshot through the production +`ui/frame_vrshot.py` API, and captures `/dev/video99`, the same SteamVR mirror +used by OBS. It restores the saved power values and reads them back. It hides +the test dashboard if the dashboard was originally closed. It does not change +the proximity sensor, tracking driver, display hardware, root filesystem, +room setup, or spatial panel placement. An unreachable suspended Frame still +needs a physical wake; an SSH command cannot reach it. + +`--exercise` requires the managed headset panel and Decky services to be absent; +it refuses to replace an existing installation. It creates a random test +plugin folder, checks that its settings folder does not exist, and installs +the repository's actual sample frontend/backend, with only the plugin name +and receipt changed to distinguish this test. It installs the verified official +ARM64 Decky release through Frame Control's existing installer, followed by the +normal headset app bundle. Only the test bundle's browser startup is modified: +loopback-only `--remote-debugging-port=0` and a disposable `/tmp` browser profile. +Production browser startup is unchanged. Decky's installer can reload Steam's +web helper; this is not a Steam/SteamVR restart, but its current UI can change. +The test should run while the headset is unattended. + +CDP opens the actual plugin through `openFrameyPanel`, observes the opaque +iframe through its own debugging target, and reads control geometry. OpenVR's +`IVROverlayView_003.PostOverlayEvent` supplies mouse move/down/up to the +actual gamescope overlay. The check verifies delivery to the intended element +and a trusted pointer event, toggles the sample, reads its real Decky settings +file, reopens a fresh iframe, and checks the saved value. It also clicks the +Settings/Panel tabs and quick action. Temporary controls exercise the shipped +`DFL.SliderField` and `DFL.TextField`; their values remain UI-only. Text uses +CDP `Input.insertText` after OpenVR pointer focus. This is synthetic input, +not proof of a physical controller or the SteamVR virtual keyboard. + +SteamVR can leave a recreated panel hidden with a stale focus request. The +exercise retries once by removing and reapplying `STEAM_GAME` on its own test +browser window, then requests focus again. It never retags another application. +The report records whether this recovery was needed. Registration, dashboard +visibility, actual panel visibility, and pixel capture are separate checks. +A visible docked panel can report `IsDashboardVisible=false` and +`IsActiveDashboardOverlay=false`. A zero-sized main texture or failed image +read must not be described as a texture-refresh measurement. The compositor +before/after images provide independent pixel evidence. + +Normal cleanup removes only the test-created managed services and random +plugin/profile paths, restores power, cancels its power watchdog, checks battery +and settings, then releases its own lock. A four-minute independent systemd +user timer restores the saved power values even if the controlling process is +killed or disconnected. It deliberately leaves the lock and test artifacts +for recovery. `recovery.json` records the host, owner, timer, remote restore +script and original values as soon as the timer starts. The final report is +`result.json`. Cleanup errors force a nonzero exit and retain the lock; inspect +that report before manually releasing it. Never remove another job's lock. +A power watchdog is not a promise to complete service cleanup after a hard +kill. The next owner must finish that recorded cleanup first. + +Exit 0 means the requested machine checks and cleanup passed. It never means +a wearer has approved readability, comfort, controller rays, haptics or text +entry on the VR keyboard. The [real-device evidence](evidence/framey-vr-2026-10-25/README.md) +records the exact tested version and limits. No public CI runner should contact +the shared headset: run this command on a paired, serialized self-hosted worker. +Ordinary CI runs `tests/test_framey_vr_check.py`, the sample backend tests, and +the same-plugin navigation regression without a headset. + +## Three-minute worn checklist + +1. **0:00–0:30:** Coordinate the shared lock. With an installed managed panel, + Decky backend and harmless sample, wear the headset and open SteamVR → + Frame Control. Check the panel is in front of you, both eyes agree, text is + legible, and the size is comfortable. Do not use a save-cleaning plugin. +2. **0:30–1:15:** Run + `python3 scripts/framey-worn-check.py --via lxso2 --worn-confirmed`. Within its 35-second + interaction window, use the physical controller to open the sample and + toggle **Example setting**. Confirm the laser aims where expected and the + script records a fresh input/panel event and visible stereo output. The flag + is the operator’s statement; sensor activity and trusted pointers can also + be produced synthetically and cannot identify controller hardware. +3. **1:15–2:15:** Use the controller to open Settings, return to Panel, invoke + **Read saved setting**, close/reopen the plugin, and confirm the value + remains. Try controller scroll, a slider and a harmless text field in an + installed compatible plugin; check SteamVR's actual keyboard and Back. +4. **2:15–3:00:** Restore the original sample setting. Switch away and back, + close/reopen the Frame Control panel, and confirm controller input still + works. Record comfort/legibility, controller model, any haptic behavior, + keyboard behavior and the command's JSON separately. Confirm battery and + release only your lock. Do not infer these human checks from synthetic input. diff --git a/scripts/framey-vr-check.py b/scripts/framey-vr-check.py new file mode 100644 index 0000000..b398f2d --- /dev/null +++ b/scripts/framey-vr-check.py @@ -0,0 +1,310 @@ +#!/usr/bin/env python3 +"""Bounded real-Frame VR diagnostics. No device writes without the shared lock. + +Default: inspect only. --wake: reversible wake + stereo capture. --exercise: +temporary clean user-service install, live sample settings and OpenVR input. +Exit 0 means requested machine checks passed, never a worn/controller verdict. +""" +import argparse +import base64 +import datetime +import hashlib +import io +import json +from pathlib import Path +import secrets +import shlex +import subprocess +import sys +import tarfile +import time +import signal + +ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(ROOT / 'ui')) +import frame_decky +import frame_headset + +LOCK = '/tmp/frame-test.lock' +VRCMD = '/opt/steamvr/bin/linuxarm64/vrcmd' +KEY = 'valve.steam.desktopgame.2001947813' + + +class Remote: + def __init__(self, host, via=None): + self.argv = ['ssh', '-o', 'BatchMode=yes', '-o', 'ConnectTimeout=8', + '-o', 'ServerAliveInterval=5', '-o', 'ServerAliveCountMax=2', host] + self.via = via + + def __call__(self, command, stdin=None, text=True, timeout=30): + argv = self.argv + [command] + if self.via: + argv = ['ssh', '-o', 'BatchMode=yes', '-o', 'ConnectTimeout=8', self.via, + shlex.join(argv)] + result = subprocess.run(argv, input=stdin, capture_output=True, text=text, timeout=timeout) + if result.returncode: + raise RuntimeError((result.stderr or result.stdout).strip()) + return result.stdout + + def python(self, source, timeout=30): + return json.loads(self('python3 -', stdin=source, timeout=timeout)) + + +PROBE = ''' +import json,pathlib,subprocess,ctypes as C +lib=C.CDLL('/opt/steamvr/bin/linuxarm64/libopenvr_api.so') +lib.VR_InitInternal2.argtypes=[C.POINTER(C.c_int),C.c_int,C.c_char_p] +lib.VR_GetGenericInterface.argtypes=[C.c_char_p,C.POINTER(C.c_int)] +lib.VR_GetGenericInterface.restype=C.c_void_p +error=C.c_int();lib.VR_InitInternal2(C.byref(error),3,None) +if error.value: raise RuntimeError('OpenVR unavailable') +try: + table=lib.VR_GetGenericInterface(b'FnTable:IVROverlay_027',C.byref(error)) + if error.value or not table: raise RuntimeError('Overlay ABI unavailable') + dashboard=bool(C.CFUNCTYPE(C.c_bool)(C.cast(table,C.POINTER(C.c_void_p))[66])()) +finally: lib.VR_ShutdownInternal() +battery=[] +for p in pathlib.Path('/sys/class/power_supply').glob('*/capacity'): + if (p.parent/'type').read_text().strip()=='Battery': battery.append(int(p.read_text())) +def cmd(*args): + p=subprocess.run(args,capture_output=True,text=True,timeout=8) + if p.returncode: raise RuntimeError(p.stderr or p.stdout) + return p.stdout.strip() +vr='/opt/steamvr/bin/linuxarm64/vrcmd' +print(json.dumps({'battery':battery,'dashboardVisible':dashboard,'stats':json.loads(cmd(vr,'--stats')), + 'overlays':cmd(vr,'--overlays'), + 'pause':cmd(vr,'--settings-bool','power.pauseCompositorOnStandby'), + 'timeout':cmd(vr,'--settings-float','power.turnOffScreensTimeout')})) +''' + + +def settings(state): + pause = state['pause'].split('=', 1)[1] + timeout = state['timeout'].split('=', 1)[1] + if pause not in ('true', 'false') or not 0 <= float(timeout) <= 86400: + raise RuntimeError('Cannot safely save original SteamVR power values') + return pause, timeout + + +def diagnostic_source(): + return (ROOT / 'scripts/framey_openvr.py').read_text() + ''' +import json +vr=Overlay() +try: print(json.dumps({'state':vr.snapshot(),'imageRead':vr.image_hash()})) +finally: vr.close() +''' + + +def debug_bundle(original, profile): + """Only the test-owned browser gets CDP and a disposable profile.""" + out = io.BytesIO() + with tarfile.open(fileobj=io.BytesIO(original), mode='r:gz') as src, tarfile.open(fileobj=out, mode='w:gz') as dst: + for item in src.getmembers(): + data = src.extractfile(item).read() + if item.name == 'ui/frame_headset_runtime.py': + code = data.decode() + needle = "'--noerrdialogs', '--window-size=1200,800'," + if needle not in code: + raise RuntimeError('Runtime changed; review test browser setup') + code = code.replace(needle, "'--noerrdialogs', '--remote-debugging-port=0', '--window-size=1200,800',") + code = code.replace("str(BASE / 'profile')", repr(profile)) + data = code.encode() + item.size = len(data) + dst.addfile(item, io.BytesIO(data)) + return out.getvalue() + + +def exercise_source(profile, plugin_id, folder): + # Runs entirely on the headset. The normal iframe, HTTP handler, CEF bridge + # and Decky Python backend are used. CDP observes DOM/coordinates; OpenVR + # delivers clicks. No JS .click() or backend stubs. + return (ROOT/'scripts/framey_openvr.py').read_text() + '\n' + (ROOT/'scripts/framey_vr_input.py').read_text() + '\n' + ( + 'print(json.dumps(exercise(%r,%r,%r)))\n' % (profile, plugin_id, folder)) + + +def main(argv=None): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--host', default='frame') + parser.add_argument('--via', help='Existing paired SSH host, e.g. lxso2') + parser.add_argument('--wake', action='store_true') + parser.add_argument('--exercise', action='store_true', help='Temporary user installs; requires no managed panel/Decky install') + parser.add_argument('--output', type=Path, required=True, help='Private evidence folder (screenshots may contain room pixels)') + args = parser.parse_args(argv) + args.output.mkdir(parents=True, exist_ok=True, mode=0o700) + report = {'schema': 1, 'time': datetime.datetime.now(datetime.timezone.utc).isoformat(), + 'controllerHardwareVerified': False, 'wornVisualComfortVerified': False} + git = subprocess.run(['git','rev-parse','HEAD'],cwd=ROOT,capture_output=True,text=True) + report['sourceCommit'] = git.stdout.strip() if git.returncode == 0 else None + remote = Remote(args.host, args.via) + token = 'framey-vr-' + secrets.token_hex(8) + folder = token + profile = '/tmp/' + token + '-profile' + locked = power_changed = plugin_created = decky_created = panel_created = watchdog = False + original_bundle = frame_headset.bundle + before = None + previous_term = signal.signal(signal.SIGTERM, lambda *_: (_ for _ in ()).throw(RuntimeError('Terminated; cleaning up'))) + try: + remote('mkdir ' + LOCK + ' && { printf %s ' + shlex.quote(token) + ' > ' + LOCK + '/owner || { rmdir ' + LOCK + '; exit 1; }; }') + locked = True + before = remote.python(PROBE) + report['before'] = before + pause, timeout = settings(before) + if not before['battery'] or min(before['battery']) < 20: + raise RuntimeError('Battery unknown or below 20%') + if args.wake or args.exercise: + # Independent systemd timer restores power even if the controller is + # killed or SSH disappears. It retains the test lock for recovery. + recovery = '/tmp/' + token + '-restore.py' + restore_source = ("import pathlib,subprocess\n" + "p=pathlib.Path('/tmp/frame-test.lock/owner')\n" + "if p.exists() and p.read_text()==" + repr(token) + ":\n" + " subprocess.run([" + repr(VRCMD) + ", '--set-settings-bool','power.pauseCompositorOnStandby'," + repr('1' if pause == 'true' else '0') + "],check=True)\n" + " subprocess.run([" + repr(VRCMD) + ", '--set-settings-float','power.turnOffScreensTimeout'," + repr(timeout) + "],check=True)\n") + remote('umask 077; cat > ' + shlex.quote(recovery), stdin=restore_source) + remote('systemd-run --user --quiet --unit=' + token + '-restore --on-active=240s /usr/bin/python3 ' + shlex.quote(recovery)) + watchdog = True + report['powerRecovery'] = {'timer':token+'-restore.timer','script':recovery, + 'originalPause':pause,'originalTimeout':timeout} + (args.output/'recovery.json').write_text(json.dumps({'host':args.host,'via':args.via,'lockOwner':token,**report['powerRecovery']},indent=2)+'\n') + if args.exercise: + d, h = frame_decky.status(remote), frame_headset.status(remote) + if d['managed'] or h['managed'] or d['upstreamInstall']: + raise RuntimeError('Exercise needs absent managed services; existing installs left intact') + # Refuse every collision, including retained plugin settings. + files = {name: base64.b64encode((ROOT/'examples/framey-settings'/name).read_bytes()).decode() + for name in ('plugin.json', 'main.py', 'dist/index.js')} + source = ''' +import base64,json,pathlib +base=pathlib.Path.home()/'.local/share/frame-control/decky' +folder=%r +p=base/'plugins'/folder +if p.exists() or (base/'settings'/folder).exists(): raise RuntimeError('Test path collision') +p.mkdir(parents=True); (p/'dist').mkdir() +for name,data in %r.items(): (p/name).write_bytes(base64.b64decode(data)) +manifest=json.loads((p/'plugin.json').read_text());manifest['name']='Framey VR Check '+folder +(p/'plugin.json').write_text(json.dumps(manifest)) +(p/'.frame-control-store.json').write_text(json.dumps({'storeId':2000000001,'version':'local-vr-check'})) +print(json.dumps({'created':True})) +''' % (folder, files) + remote.python(source) + plugin_created = True + decky_created = True + report['deckyInstall'] = frame_decky.change(remote, 'install') + # Decky reloads its Steam frontend; install the panel afterwards. + time.sleep(3) + frame_headset.bundle = lambda: debug_bundle(original_bundle(), profile) + panel_created = True + report['panelInstall'] = frame_headset.change(remote, 'install') + if args.wake or args.exercise: + power_changed = True # before first setter, so partial failure restores + remote(VRCMD + ' --set-settings-bool power.pauseCompositorOnStandby 0') + remote(VRCMD + ' --set-settings-float power.turnOffScreensTimeout 120') + remote(VRCMD + ' --handlewakeup') + remote(VRCMD + ' --showdashboard ' + KEY) + time.sleep(2) + report['overlay'] = remote.python(diagnostic_source()) + if args.exercise and not report['overlay']['state']['visible']: + report['retaggedTestWindow'] = True + remote.python(''' +import json,pathlib,subprocess,time,os +p=pathlib.Path.home()/'.local/share/frame-control/headset/state.json' +w=json.loads(p.read_text())['window'];env={**os.environ,'DISPLAY':':0'} +subprocess.run(['xprop','-id',w,'-remove','STEAM_GAME'],env=env,check=True) +time.sleep(1) +subprocess.run(['xprop','-id',w,'-f','STEAM_GAME','32c','-set','STEAM_GAME','2001947813'],env=env,check=True) +time.sleep(1) +subprocess.run(['/opt/steamvr/bin/linuxarm64/vrcmd','--showdashboard','valve.steam.desktopgame.2001947813'],capture_output=True,check=True) +time.sleep(2) +print('{}') +''') + report['overlay'] = remote.python(diagnostic_source()) + if args.wake or args.exercise: + shot = remote.python((ROOT/'ui/frame_vrshot.py').read_text(), timeout=20)['path'] + try: + image = remote('cat ' + shlex.quote(shot), text=False, timeout=20) + (args.output/'before-stereo-private.png').write_bytes(image) + report['beforeStereoSha256'] = hashlib.sha256(image).hexdigest() + finally: + remote('rm -f ' + shlex.quote(shot)) + if args.exercise: + report['input'] = remote.python(exercise_source(profile, 2000000001, folder), timeout=100) + if args.wake or args.exercise: + shot = remote.python((ROOT/'ui/frame_vrshot.py').read_text(), timeout=20)['path'] + try: + image = remote('cat ' + shlex.quote(shot), text=False, timeout=20) + (args.output/'stereo-private.png').write_bytes(image) + report['stereoSha256'] = hashlib.sha256(image).hexdigest() + report['compositorChanged'] = report['stereoSha256'] != report.get('beforeStereoSha256') + finally: + remote('rm -f ' + shlex.quote(shot)) + # Same SteamVR mirror used by OBS; FFmpeg is already on the Frame. + mirror = remote('ffmpeg -hide_banner -loglevel error -f v4l2 -i /dev/video99 -frames:v 1 -f image2pipe -vcodec png -', text=False, timeout=20) + (args.output/'mirror-private.png').write_bytes(mirror) + report['mirrorSha256'] = hashlib.sha256(mirror).hexdigest() + report['passed'] = bool(report['overlay']['state']['visible']) + if args.exercise: + report['passed'] = report['passed'] and report['input']['passed'] and report.get('compositorChanged',False) + except Exception as exc: + report['error'] = str(exc) + report['passed'] = False + finally: + frame_headset.bundle = original_bundle + cleanup = [] + def clean(name, action): + try: action() + except Exception as exc: cleanup.append({'step':name,'error':str(exc)}) + if locked: + if panel_created: + clean('remove test panel', lambda: frame_headset.change(remote, 'remove') if frame_headset.status(remote)['managed'] else None) + if decky_created: + clean('remove test Decky', lambda: frame_decky.change(remote, 'remove') if frame_decky.status(remote)['managed'] else None) + if plugin_created: + # Only random per-run paths created after collision checks. + clean('remove test files', lambda: remote.python(''' +import pathlib,shutil,json +base=pathlib.Path.home()/'.local/share/frame-control/decky' +for parent in ('plugins','settings','data','logs'): + p=base/parent/%r + if p.is_dir() and not p.is_symlink(): shutil.rmtree(p) +p=pathlib.Path(%r) +if p.is_dir() and not p.is_symlink(): shutil.rmtree(p) +print('{}') +''' % (folder, profile))) + if power_changed: + clean('restore compositor pause', lambda: remote(VRCMD + ' --set-settings-bool power.pauseCompositorOnStandby ' + ('1' if pause == 'true' else '0'))) + clean('restore screen timeout', lambda: remote(VRCMD + ' --set-settings-float power.turnOffScreensTimeout ' + shlex.quote(timeout))) + clean('restore dashboard visibility', lambda: remote(VRCMD + ' --hidedashboard') if not before['dashboardVisible'] else None) + try: + report['after'] = remote.python(PROBE) + if power_changed and settings(report['after']) != settings(before): + cleanup.append({'step':'read back power settings','error':'Original values not restored'}) + except Exception as exc: cleanup.append({'step':'after probe','error':str(exc)}) + if watchdog and not cleanup: + clean('stop power recovery timer', lambda: remote.python(''' +import subprocess,json +unit=%r +timer=subprocess.run(['systemctl','--user','show',unit+'.timer','--property=LoadState','--value'],capture_output=True,text=True) +if timer.stdout.strip()=='loaded': subprocess.run(['systemctl','--user','stop',unit+'.timer'],check=True,capture_output=True) +p=subprocess.run(['systemctl','--user','show',unit+'.service','--property=LoadState','--value'],capture_output=True,text=True) +if p.stdout.strip()=='loaded': subprocess.run(['systemctl','--user','stop',unit+'.service'],check=True,capture_output=True) +print('{}') +''' % (token+'-restore'))) + if not cleanup: + clean('remove power recovery script', lambda: remote('rm -f ' + shlex.quote(recovery))) + report['powerRecoveryRemoved'] = not cleanup + if not cleanup: (args.output/'recovery.json').unlink(missing_ok=True) + if not cleanup: + clean('release owned lock', lambda: remote('test "$(cat ' + LOCK + '/owner)" = ' + shlex.quote(token) + ' && rm ' + LOCK + '/owner && rmdir ' + LOCK)) + report['lockReleased'] = not cleanup + else: + report['lockRetainedForRecovery'] = token + report['cleanupErrors'] = cleanup + report['passed'] = bool(report.get('passed') and not cleanup) + (args.output/'result.json').write_text(json.dumps(report, indent=2)+'\n') + signal.signal(signal.SIGTERM, previous_term) + print(json.dumps(report, indent=2)) + return 0 if report['passed'] else 1 + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/scripts/framey-worn-check.py b/scripts/framey-worn-check.py index 71b25d0..57c7713 100644 --- a/scripts/framey-worn-check.py +++ b/scripts/framey-worn-check.py @@ -4,6 +4,7 @@ Requires an already installed Frame Control VR panel, Decky user service, and one Framey-managed plugin. It never installs, restarts, or removes a service. """ +import argparse import datetime import hashlib import json @@ -18,10 +19,16 @@ import time ROOT = Path(__file__).resolve().parents[1] SSH = ['ssh', '-o', 'BatchMode=yes', '-o', 'ConnectTimeout=5', 'frame'] LOCK = '/tmp/frame-test.lock' +VIA = None + +def ssh_argv(command): + argv = [*SSH, command] + return ['ssh', '-o', 'BatchMode=yes', '-o', 'ConnectTimeout=8', VIA, shlex.join(argv)] if VIA else argv + def remote(command, stdin=None, timeout=15): - run = subprocess.run([*SSH, command], input=stdin, capture_output=True, + run = subprocess.run(ssh_argv(command), input=stdin, capture_output=True, text=True, timeout=timeout) if run.returncode: raise RuntimeError((run.stderr or run.stdout).strip() or f'SSH exited {run.returncode}') @@ -92,12 +99,14 @@ def color_count(text): return len(set(re.findall(r'#[0-9A-Fa-f]{6,8}', text))) -def main(): - result = {'time':datetime.datetime.now(datetime.timezone.utc).isoformat(), 'proof':'worn-headset check'} +def main(worn_confirmed=False): + result = {'time':datetime.datetime.now(datetime.timezone.utc).isoformat(), 'proof':'operator-confirmed worn check', 'operatorWornConfirmed':worn_confirmed} token = 'framey-' + secrets.token_hex(12) locked = False challenge = False try: + if not worn_confirmed: + raise RuntimeError('A wearer must be present; pass --worn-confirmed only after checking in person. Wake/activity and trusted pointer events alone do not prove wearing or controller hardware.') # Do not read even standby status until this task owns the device lock. remote('mkdir ' + LOCK + ' && { printf %s ' + shlex.quote(token) + ' > ' + LOCK + '/owner || { rm -f ' + LOCK + '/owner; rmdir ' + LOCK + '; exit 1; }; }') @@ -126,11 +135,11 @@ def main(): time.sleep(1) result['interaction'] = state result['after'] = probe() - result['worn'] = isinstance(result['after']['activity'], int) and result['after']['activity'] < 3 + result['activeHeadset'] = isinstance(result['after']['activity'], int) and result['after']['activity'] < 3 result['overlay'] = json.loads(remote('python3 -', stdin=OVERLAY_PROBE, timeout=15)) result['panelVisible'] = result['overlay']['visible'] is True installed_ids = {p['id'] for p in before['plugins']} - result['controllerInput'] = bool(state.get('input', {}).get('at', 0) > state.get('started', 0)) + result['trustedPointerInput'] = bool(state.get('input', {}).get('at', 0) > state.get('started', 0)) result['pluginPanelReady'] = bool(state.get('panel', {}).get('at', 0) > state.get('started', 0) and state['panel'].get('pluginId') in installed_ids) if result['panelVisible'] and result['pluginPanelReady']: @@ -138,7 +147,7 @@ def main(): local = Path('/tmp')/('framey-worn-' + token + '.png') try: with local.open('wb') as out: - copy = subprocess.run([*SSH, 'cat ' + shlex.quote(shot)], stdout=out, stderr=subprocess.PIPE, timeout=20) + copy = subprocess.run(ssh_argv('cat ' + shlex.quote(shot)), stdout=out, stderr=subprocess.PIPE, timeout=20) if copy.returncode: raise RuntimeError('Could not copy the SteamVR screenshot') result['screenshotSha256'] = hashlib.sha256(local.read_bytes()).hexdigest() pixels = subprocess.run(['convert', str(local), '-resize', '64x64!', 'txt:-'], @@ -147,7 +156,7 @@ def main(): finally: local.unlink(missing_ok=True) remote('rm -f ' + shlex.quote(shot)) - result['passed'] = (result['worn'] and result['panelVisible'] and result['controllerInput'] and + result['passed'] = (result['activeHeadset'] and result['panelVisible'] and result['trustedPointerInput'] and result['pluginPanelReady'] and (result.get('screenshotColors') or 0) > 8) except Exception as exc: result['error'] = str(exc) @@ -167,4 +176,11 @@ def main(): if __name__ == '__main__': - sys.exit(main()) + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--host', default='frame') + parser.add_argument('--via', help='Paired SSH hop, e.g. lxso2') + parser.add_argument('--worn-confirmed', action='store_true', help='Operator confirms someone is wearing the Frame') + args = parser.parse_args() + SSH[-1] = args.host + VIA = args.via + sys.exit(main(args.worn_confirmed)) diff --git a/scripts/framey_openvr.py b/scripts/framey_openvr.py new file mode 100644 index 0000000..a912024 --- /dev/null +++ b/scripts/framey_openvr.py @@ -0,0 +1,108 @@ +"""Small OpenVR diagnostic client; runs on the Frame, never polls another app's events. + +Indices/signatures are for IVROverlay_027 and IVROverlayView_003 from Valve's +shipped openvr_capi.h, not interchangeable with IVROverlay_028. +""" +import ctypes as C +import hashlib + +KEY = b'valve.steam.desktopgame.2001947813' + + +class Vector(C.Structure): + _fields_ = [('x', C.c_float), ('y', C.c_float)] + + +class Matrix(C.Structure): + _fields_ = [('m', (C.c_float * 4) * 3)] + + +class Mouse(C.Structure): + _fields_ = [('x', C.c_float), ('y', C.c_float), ('button', C.c_uint32)] + + +class Data(C.Union): + _fields_ = [('mouse', Mouse), ('reserved', C.c_uint64 * 6)] + + +class Event(C.Structure): + _pack_ = 4 # Linux OpenVR preserves its historical 4-byte event packing. + _fields_ = [('eventType', C.c_uint32), ('device', C.c_uint32), + ('age', C.c_float), ('data', Data)] + + +class Overlay: + def __init__(self): + self.vr = C.CDLL('/opt/steamvr/bin/linuxarm64/libopenvr_api.so') + self.vr.VR_InitInternal2.argtypes = [C.POINTER(C.c_int), C.c_int, C.c_char_p] + self.vr.VR_GetGenericInterface.argtypes = [C.c_char_p, C.POINTER(C.c_int)] + self.vr.VR_GetGenericInterface.restype = C.c_void_p + error = C.c_int() + self.vr.VR_InitInternal2(C.byref(error), 3, None) # background, no scene focus + if error.value: + raise RuntimeError('OpenVR init: ' + str(error.value)) + try: + self.table = self.interface(b'FnTable:IVROverlay_027') + self.handle = C.c_uint64() + rc = self.fn(0, C.c_int, C.c_char_p, C.POINTER(C.c_uint64))(KEY, C.byref(self.handle)) + if rc: + raise RuntimeError('Frame Control overlay not found: ' + str(rc)) + except Exception: + self.close() + raise + + def interface(self, version): + error = C.c_int() + ptr = self.vr.VR_GetGenericInterface(version, C.byref(error)) + if error.value or not ptr: + raise RuntimeError('OpenVR interface unavailable: ' + version.decode()) + return C.cast(ptr, C.POINTER(C.c_void_p)) + + def fn(self, index, result, *args): + return C.CFUNCTYPE(result, *args)(self.table[index]) + + def snapshot(self): + h = self.handle + width, height = C.c_uint32(), C.c_uint32() + texture_error = self.fn(64, C.c_int, C.c_uint64, C.POINTER(C.c_uint32), C.POINTER(C.c_uint32))(h, C.byref(width), C.byref(height)) + transform_type = C.c_int() + type_error = self.fn(31,C.c_int,C.c_uint64,C.POINTER(C.c_int))(h,C.byref(transform_type)) + origin, matrix = C.c_int(), Matrix() + transform_error = self.fn(33, C.c_int, C.c_uint64, C.POINTER(C.c_int), C.POINTER(Matrix))(h, C.byref(origin), C.byref(matrix)) + scale, method = Vector(), C.c_int() + scale_error = self.fn(49, C.c_int, C.c_uint64, C.POINTER(Vector))(h, C.byref(scale)) + method_error = self.fn(47, C.c_int, C.c_uint64, C.POINTER(C.c_int))(h, C.byref(method)) + return {'interface': 'IVROverlay_027', + 'visible': bool(self.fn(43, C.c_bool, C.c_uint64)(h)), + 'dashboardVisible': bool(self.fn(66, C.c_bool)()), + 'activeDashboard': bool(self.fn(67, C.c_bool, C.c_uint64)(h)), + 'texture': {'error': texture_error, 'width': width.value, 'height': height.value}, + 'transform': {'error': transform_error, 'typeError':type_error,'type':transform_type.value,'origin': origin.value, + 'matrix': [list(row) for row in matrix.m]}, + 'input': {'error': method_error, 'method': method.value, + 'scaleError': scale_error, 'scale': [scale.x, scale.y]}} + + def post_mouse(self, kind, x, y, button=0): + # PostOverlayEvent is the supported overlay-view injection API. It is + # not a tracked controller and its void return does not prove delivery. + view = self.interface(b'FnTable:IVROverlayView_003') + event = Event(kind, 0xFFFFFFFF, 0, Data(mouse=Mouse(x, y, button))) + C.CFUNCTYPE(None, C.c_uint64, C.POINTER(Event))(view[2])(self.handle, C.byref(event)) + + def image_hash(self): + width, height = C.c_uint32(), C.c_uint32() + call = self.fn(6, C.c_int, C.c_uint64, C.c_void_p, C.c_uint32, + C.POINTER(C.c_uint32), C.POINTER(C.c_uint32)) + rc = call(self.handle, None, 0, C.byref(width), C.byref(height)) + size = width.value * height.value * 4 + result = {'error': rc, 'width': width.value, 'height': height.value} + if 0 < size <= 32 * 1024 * 1024: + pixels = C.create_string_buffer(size) + rc = call(self.handle, pixels, size, C.byref(width), C.byref(height)) + result['error'] = rc + if not rc: + result['sha256'] = hashlib.sha256(pixels.raw).hexdigest() + return result + + def close(self): + self.vr.VR_ShutdownInternal() diff --git a/scripts/framey_vr_input.py b/scripts/framey_vr_input.py new file mode 100644 index 0000000..84a4813 --- /dev/null +++ b/scripts/framey_vr_input.py @@ -0,0 +1,134 @@ +"""Headset-side real input exercise, appended after framey_openvr.py by the runner.""" +import json +from pathlib import Path +import sys +import time +import urllib.request + + +def exercise(profile, plugin_id, folder): + sys.path.insert(0, str(Path.home()/'.local/share/frame-control/headset/bundle/ui')) + import frame_steam + port = int((Path(profile)/'DevToolsActivePort').read_text().splitlines()[0]) + frame_steam.CDP = f'http://127.0.0.1:{port}/json' + parent = frame_steam.Page('Frame Control VR [fc-headset]') + panel = None + vr = Overlay() + result = {'clickTransport':'IVROverlayView_003.PostOverlayEvent', + 'textTransport':'CDP Input.insertText after OpenVR focus', + 'controllerHardwareVerified':False} + + def wait(read, accept, seconds=15): + deadline = time.monotonic() + seconds + while time.monotonic() < deadline: + value = read() + if accept(value): return value + time.sleep(.25) + raise RuntimeError('Timed out waiting for live UI: ' + str(value)) + + def connect_panel(): + def target(): + targets = json.load(urllib.request.urlopen(frame_steam.CDP, timeout=5)) + return next((p['title'] for p in targets if p.get('type') == 'iframe' + and '/framey/panel/' + str(plugin_id) in p.get('url','')), None) + page = frame_steam.Page(wait(target, bool)) + page.eval('window.__vrClickCount=0;addEventListener("pointerup",e=>{window.__vrClickCount++;window.__vrLastTarget=e.target;});true') + return page + + def command(page, method, params): + page.next_id += 1 + page._send(json.dumps({'id':page.next_id,'method':method,'params':params})) + while True: + msg = json.loads(page._recv()) + if msg.get('id') == page.next_id: + if 'error' in msg: raise RuntimeError(str(msg['error'])) + return msg.get('result', {}) + + def text(): return panel.eval('document.body.innerText') + + def click(selector): + # Account for CSS pixels, iframe position, border, HiDPI scaling, and + # OpenVR's bottom-left mouse origin; read geometry after scrolling. + panel.eval(f'document.querySelector({json.dumps(selector)}).scrollIntoView({{block:"center"}})') + time.sleep(.3) # let Chromium present the scrolled iframe before native input + pos = panel.eval(f'(()=>{{let r=document.querySelector({json.dumps(selector)}).getBoundingClientRect();return {{x:r.x+r.width/2,y:r.y+r.height/2}}}})()') + outer = parent.eval('(()=>{let f=byId("frameyFrame"),r=f.getBoundingClientRect();return {x:r.x+f.clientLeft,y:r.y+f.clientTop,w:innerWidth,h:innerHeight}})()') + sx, sy = vr.snapshot()['input']['scale'] + x = (outer['x'] + pos['x']) * sx / outer['w'] + y = sy - (outer['y'] + pos['y']) * sy / outer['h'] + if not 0 <= x <= sx or not 0 <= y <= sy: + raise RuntimeError('Control is outside the visible viewport') + count = panel.eval('__vrClickCount') + vr.post_mouse(300, x, y) + vr.post_mouse(301, x, y, 1) + vr.post_mouse(302, x, y, 1) + wait(lambda:panel.eval('__vrClickCount'), lambda n:n > count, seconds=3) + hit = panel.eval(f'!!window.__vrLastTarget?.closest({json.dumps(selector)})') + if not hit: + raise RuntimeError('Native click hit another element: ' + str(panel.eval('({tag:__vrLastTarget?.tagName,text:__vrLastTarget?.textContent?.slice(0,100)})'))) + + try: + parent.eval(f'(async()=>{{await refreshDecky();openFrameyPanel({plugin_id},"Framey VR Check");return true}})()') + wait(lambda:parent.eval('byId("frameyPanelStatus").innerText'), lambda s:s == 'Plugin panel ready') + panel = connect_panel() + initial = wait(text, lambda s:'Saved setting: off' in s or 'Could not read setting:' in s) + if 'Could not read setting:' in initial: raise RuntimeError(initial) + result['initialText'] = initial + panel.eval('window.__vrEvents=[];addEventListener("pointerup",e=>__vrEvents.push({trusted:e.isTrusted,x:e.clientX,y:e.clientY}));true') + click('input[type=checkbox]') + result['savedText'] = wait(text, lambda s:'Saved setting: on' in s) + result['pointerEvents'] = panel.eval('__vrEvents') + result['trustedOverlayPointer'] = any(e['trusted'] for e in result['pointerEvents']) + disk = Path.home()/'.local/share/frame-control/decky/settings'/folder/'settings.json' + result['diskSetting'] = json.loads(disk.read_text()) + # Fresh browser document, same normal parent API; no backend stub. + panel.sock.close(); panel = None + parent.eval(f'openFrameyPanel({plugin_id},"Framey VR Check")') + wait(lambda:parent.eval('byId("frameyPanelStatus").innerText'), lambda s:s == 'Plugin panel ready') + panel = connect_panel() + result['reopenedText'] = wait(text, lambda s:'Saved setting: on' in s) + result['reopenedChecked'] = panel.eval('document.querySelector("input[type=checkbox]").checked') + # Settings tab and quick action are real host controls too. + click('nav button:nth-child(2)') + wait(text, lambda s:'Saved setting: on' in s) + click('nav button:nth-child(1)') + wait(text, lambda s:'Saved setting: on' in s) + panel.eval('[...document.querySelectorAll("button")].find(b=>b.textContent==="Read saved setting").id="vr-quick"') + click('#vr-quick') + result['quickActionText'] = wait(text, lambda s:'Saved setting is on' in s) + # Isolated diagnostic controls use the actual shipped DFL shims. Their + # values are UI-only; they never change a user's settings or plugin. + panel.eval('''(()=>{ + const mount=document.createElement('div');mount.id='vr-controls';document.body.prepend(mount); + function Controls(){const R=SP_REACT,[v,S]=R.useState(10),[t,T]=R.useState('');return R.createElement('section',null, + R.createElement(DFL.SliderField,{label:'VR test slider',min:0,max:100,value:v,showValue:true,onChange:S}), + R.createElement(DFL.TextField,{label:'VR test text',value:t,onChange:e=>T(e.target.value)}), + R.createElement('p',{id:'vr-control-values'},v+':'+t));} + SP_REACTDOM.createRoot(mount).render(SP_REACT.createElement(Controls));return true; + })()''') + wait(lambda:panel.eval('!!document.querySelector("#vr-controls input[type=range]")'), bool) + click('#vr-controls input[type=range]') + result['sliderValue'] = wait(lambda:panel.eval('document.querySelector("#vr-controls input[type=range]").value'), lambda v:v != '10') + click('#vr-controls input[type=text]') + # CDP only types text; OpenVR supplies pointer focus into the field. + command(parent, 'Input.insertText', {'text':'framey-ci'}) + result['textValue'] = wait(lambda:panel.eval('document.querySelector("#vr-controls input[type=text]").value'), lambda v:v == 'framey-ci') + panel.eval('document.getElementById("vr-controls").remove()') + # Scroll saved status into the visible iframe for compositor evidence. + panel.eval('document.querySelector("[role=status]").scrollIntoView({block:"center"})') + result['finalOverlay'] = vr.snapshot() + result['passed'] = (result['trustedOverlayPointer'] and result['diskSetting'] == {'enabled':True} + and result['reopenedChecked'] and result['sliderValue'] != '10' + and result['textValue'] == 'framey-ci') + return result + except Exception as exc: + result['error'] = str(exc) + result['passed'] = False + if panel: + result['failureText'] = text() + result['focus'] = panel.eval('({tag:document.activeElement?.tagName,type:document.activeElement?.type})') + return result + finally: + vr.close() + parent.sock.close() + if panel: panel.sock.close() diff --git a/tests/test_framey_vr_check.py b/tests/test_framey_vr_check.py new file mode 100644 index 0000000..175e6be --- /dev/null +++ b/tests/test_framey_vr_check.py @@ -0,0 +1,74 @@ +"""Safety gates for unattended device work; no headset or OpenVR loaded.""" +import importlib.util +import contextlib +import io +import json +from pathlib import Path +import tempfile +import unittest +from unittest.mock import patch + +PATH = Path(__file__).resolve().parents[1]/'scripts/framey-vr-check.py' +spec = importlib.util.spec_from_file_location('framey_vr_check', PATH) +check = importlib.util.module_from_spec(spec) +spec.loader.exec_module(check) + + +class Safety(unittest.TestCase): + def test_foreign_lock_prevents_sensor_reads_and_cleanup(self): + with tempfile.TemporaryDirectory() as folder, patch.object(check, 'Remote') as factory: + remote = factory.return_value + remote.side_effect = RuntimeError('File exists') + with contextlib.redirect_stdout(io.StringIO()): + self.assertEqual(check.main(['--exercise','--output',folder]), 1) + remote.python.assert_not_called() + self.assertEqual(remote.call_count, 1) + self.assertIn('mkdir /tmp/frame-test.lock', remote.call_args.args[0]) + self.assertFalse(json.loads((Path(folder)/'result.json').read_text())['passed']) + + def test_low_battery_never_wakes_or_installs_and_releases_lock(self): + state = {'battery':[19], 'pause':'power.pauseCompositorOnStandby=true', + 'timeout':'power.turnOffScreensTimeout=17.000000','dashboardVisible':False} + with tempfile.TemporaryDirectory() as folder, patch.object(check, 'Remote') as factory, \ + patch.object(check.frame_decky, 'change') as install: + remote = factory.return_value + remote.python.return_value = state + with contextlib.redirect_stdout(io.StringIO()): + self.assertEqual(check.main(['--exercise','--output',folder]), 1) + install.assert_not_called() + self.assertEqual(remote.call_count, 2) + self.assertIn('rmdir /tmp/frame-test.lock', remote.call_args.args[0]) + self.assertFalse(any('--handlewakeup' in c.args[0] for c in remote.call_args_list)) + + def test_power_restore_after_partial_setter_failure(self): + state = {'battery':[99], 'pause':'power.pauseCompositorOnStandby=true', + 'timeout':'power.turnOffScreensTimeout=17.000000','dashboardVisible':False} + with tempfile.TemporaryDirectory() as folder, patch.object(check, 'Remote') as factory: + remote = factory.return_value + remote.python.return_value = state + def run(cmd, **_): + if '--set-settings-float power.turnOffScreensTimeout 120' in cmd: + raise RuntimeError('setter failed') + return '' + remote.side_effect = run + with contextlib.redirect_stdout(io.StringIO()): + self.assertEqual(check.main(['--wake','--output',folder]), 1) + commands = [c.args[0] for c in remote.call_args_list] + self.assertTrue(any('--set-settings-bool power.pauseCompositorOnStandby 1' in c for c in commands)) + self.assertTrue(any('--set-settings-float power.turnOffScreensTimeout 17.000000' in c for c in commands)) + self.assertIn('rmdir /tmp/frame-test.lock', commands[-1]) + + def test_exact_linux_event_abi_and_debug_profile(self): + import ctypes + overlay_spec = importlib.util.spec_from_file_location('framey_openvr', PATH.with_name('framey_openvr.py')) + overlay = importlib.util.module_from_spec(overlay_spec); overlay_spec.loader.exec_module(overlay) + self.assertEqual(ctypes.sizeof(overlay.Event), 60) + self.assertEqual(overlay.Event.data.offset, 12) + original = check.frame_headset.bundle() + patched = check.debug_bundle(original, '/tmp/owned-profile') + import tarfile + with tarfile.open(fileobj=io.BytesIO(patched),mode='r:gz') as archive: + source=archive.extractfile('ui/frame_headset_runtime.py').read().decode() + self.assertIn("'--remote-debugging-port=0'", source) + self.assertIn("'/tmp/owned-profile'", source) + self.assertNotIn("str(BASE / 'profile')", source) diff --git a/tests/test_framey_worn.py b/tests/test_framey_worn.py index 7d71e65..8bb154c 100644 --- a/tests/test_framey_worn.py +++ b/tests/test_framey_worn.py @@ -20,9 +20,15 @@ class WornGate(unittest.TestCase): with patch.object(worn, 'probe', return_value=state) as probe, \ patch.object(worn, 'remote', side_effect=remote_side_effect) as remote, \ contextlib.redirect_stdout(out): - result = worn.main() + result = worn.main(worn_confirmed=True) return result, out.getvalue(), remote, probe + def test_no_wearer_confirmation_means_no_sensor_or_input_claim(self): + with patch.object(worn,'remote') as remote, contextlib.redirect_stdout(io.StringIO()) as out: + self.assertEqual(worn.main(),1) + remote.assert_not_called() + self.assertIn('trusted pointer events alone do not prove',out.getvalue()) + def test_standby_is_read_only_under_owned_lock_and_releases_it(self): state = {'battery':[{'percent':99}], 'activity':3, 'panelService':True, 'plugins':[{'id':14,'name':'ProtonDB Badges'}], 'panel':None} From cb9ad1b6cb7302008783d5f7fe42fa77a4dd43af Mon Sep 17 00:00:00 2001 From: SAPHID Date: Sun, 25 Oct 2026 23:27:34 +0000 Subject: [PATCH 3/4] Drain stale mirror frames and record native scroll delivery --- docs/framey-vr-check.md | 6 ++++-- scripts/framey-vr-check.py | 2 +- scripts/framey_openvr.py | 11 ++++++++++- scripts/framey_vr_input.py | 6 ++++++ 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/docs/framey-vr-check.md b/docs/framey-vr-check.md index 56b7914..8d20ee9 100644 --- a/docs/framey-vr-check.md +++ b/docs/framey-vr-check.md @@ -26,7 +26,8 @@ installs anything; it returns nonzero when the panel is absent/hidden. `vrcmd --handlewakeup` and requests the Frame Control dashboard panel. It reads OpenVR state, captures a stereo compositor screenshot through the production `ui/frame_vrshot.py` API, and captures `/dev/video99`, the same SteamVR mirror -used by OBS. It restores the saved power values and reads them back. It hides +used by OBS. The mirror reader drains 60 frames before selecting its image, +because the first loopback buffer can contain a previous session. It restores the saved power values and reads them back. It hides the test dashboard if the dashboard was originally closed. It does not change the proximity sensor, tracking driver, display hardware, root filesystem, room setup, or spatial panel placement. An unreachable suspended Frame still @@ -50,7 +51,8 @@ iframe through its own debugging target, and reads control geometry. OpenVR's actual gamescope overlay. The check verifies delivery to the intended element and a trusted pointer event, toggles the sample, reads its real Decky settings file, reopens a fresh iframe, and checks the saved value. It also clicks the -Settings/Panel tabs and quick action. Temporary controls exercise the shipped +Settings/Panel tabs and quick action. A smooth-scroll event is attempted and its measured scroll offset is reported. +Temporary controls exercise the shipped `DFL.SliderField` and `DFL.TextField`; their values remain UI-only. Text uses CDP `Input.insertText` after OpenVR pointer focus. This is synthetic input, not proof of a physical controller or the SteamVR virtual keyboard. diff --git a/scripts/framey-vr-check.py b/scripts/framey-vr-check.py index b398f2d..d64377b 100644 --- a/scripts/framey-vr-check.py +++ b/scripts/framey-vr-check.py @@ -238,7 +238,7 @@ print('{}') finally: remote('rm -f ' + shlex.quote(shot)) # Same SteamVR mirror used by OBS; FFmpeg is already on the Frame. - mirror = remote('ffmpeg -hide_banner -loglevel error -f v4l2 -i /dev/video99 -frames:v 1 -f image2pipe -vcodec png -', text=False, timeout=20) + mirror = remote("ffmpeg -hide_banner -loglevel error -f v4l2 -i /dev/video99 -vf 'select=gte(n\\,60)' -frames:v 1 -f image2pipe -vcodec png -", text=False, timeout=20) (args.output/'mirror-private.png').write_bytes(mirror) report['mirrorSha256'] = hashlib.sha256(mirror).hexdigest() report['passed'] = bool(report['overlay']['state']['visible']) diff --git a/scripts/framey_openvr.py b/scripts/framey_openvr.py index a912024..913e053 100644 --- a/scripts/framey_openvr.py +++ b/scripts/framey_openvr.py @@ -21,8 +21,12 @@ class Mouse(C.Structure): _fields_ = [('x', C.c_float), ('y', C.c_float), ('button', C.c_uint32)] +class Scroll(C.Structure): + _fields_ = [('xdelta',C.c_float),('ydelta',C.c_float),('unused',C.c_uint32),('viewportscale',C.c_float)] + + class Data(C.Union): - _fields_ = [('mouse', Mouse), ('reserved', C.c_uint64 * 6)] + _fields_ = [('mouse', Mouse), ('scroll', Scroll), ('reserved', C.c_uint64 * 6)] class Event(C.Structure): @@ -89,6 +93,11 @@ class Overlay: event = Event(kind, 0xFFFFFFFF, 0, Data(mouse=Mouse(x, y, button))) C.CFUNCTYPE(None, C.c_uint64, C.POINTER(Event))(view[2])(self.handle, C.byref(event)) + def post_scroll(self, xdelta, ydelta): + view = self.interface(b'FnTable:IVROverlayView_003') + event = Event(309, 0xFFFFFFFF, 0, Data(scroll=Scroll(xdelta, ydelta, 0, 1))) + C.CFUNCTYPE(None, C.c_uint64, C.POINTER(Event))(view[2])(self.handle, C.byref(event)) + def image_hash(self): width, height = C.c_uint32(), C.c_uint32() call = self.fn(6, C.c_int, C.c_uint64, C.c_void_p, C.c_uint32, diff --git a/scripts/framey_vr_input.py b/scripts/framey_vr_input.py index 84a4813..aac34a5 100644 --- a/scripts/framey_vr_input.py +++ b/scripts/framey_vr_input.py @@ -113,6 +113,12 @@ def exercise(profile, plugin_id, folder): # CDP only types text; OpenVR supplies pointer focus into the field. command(parent, 'Input.insertText', {'text':'framey-ci'}) result['textValue'] = wait(lambda:panel.eval('document.querySelector("#vr-controls input[type=text]").value'), lambda v:v == 'framey-ci') + panel.eval('window.scrollTo(0,0)') + result['scrollBefore'] = panel.eval('scrollY') + vr.post_scroll(0,-3) + time.sleep(.5) + result['scrollAfter'] = panel.eval('scrollY') + result['nativeScrollMoved'] = result['scrollAfter'] != result['scrollBefore'] panel.eval('document.getElementById("vr-controls").remove()') # Scroll saved status into the visible iframe for compositor evidence. panel.eval('document.querySelector("[role=status]").scrollIntoView({block:"center"})') From e67a90b3973d74afc11cbf98eedbb23a41a51ef6 Mon Sep 17 00:00:00 2001 From: SAPHID Date: Sun, 25 Oct 2026 23:31:50 +0000 Subject: [PATCH 4/4] Record real Framey VR evidence and restored device state --- docs/evidence/framey-vr-2026-10-25/README.md | 119 +++++++++++ .../cleanup-verification.json | 2 + .../evidence/framey-vr-2026-10-25/images.json | 80 ++++++++ .../mirror-panel-redacted.png | Bin 0 -> 154032 bytes .../evidence/framey-vr-2026-10-25/result.json | 189 ++++++++++++++++++ .../stereo-left-panel-redacted.png | Bin 0 -> 109110 bytes docs/framey-vr-check.md | 4 + 7 files changed, 394 insertions(+) create mode 100644 docs/evidence/framey-vr-2026-10-25/README.md create mode 100644 docs/evidence/framey-vr-2026-10-25/cleanup-verification.json create mode 100644 docs/evidence/framey-vr-2026-10-25/images.json create mode 100644 docs/evidence/framey-vr-2026-10-25/mirror-panel-redacted.png create mode 100644 docs/evidence/framey-vr-2026-10-25/result.json create mode 100644 docs/evidence/framey-vr-2026-10-25/stereo-left-panel-redacted.png diff --git a/docs/evidence/framey-vr-2026-10-25/README.md b/docs/evidence/framey-vr-2026-10-25/README.md new file mode 100644 index 0000000..3d157a0 --- /dev/null +++ b/docs/evidence/framey-vr-2026-10-25/README.md @@ -0,0 +1,119 @@ +# Framey unattended VR evidence, 25 October 2026 UTC + +The committed runner exited **0** on the real Frame, using the existing +`ssh lxso2 'ssh frame …'` route from lxso1. No person wore the headset. +Frame OS **0.5.6**, build **20261022.6153909**, ARM64, SteamVR **2.18.2**, +Decky **3.3.0**. The run began at **23:27:34 UTC**; the Frame's own clock/logs +use UTC+11 and therefore show 26 October. + +```sh +python3 scripts/framey-vr-check.py --via lxso2 --exercise --output /tmp/framey-vr-verified +``` + +[Full machine result](result.json) records source commit +`cb9ad1b6cb7302008783d5f7fe42fa77a4dd43af`, bundle digest, before/after +SteamVR listings, power settings, input observations, and private image hashes. +The checked app code includes the sample settings-path and iframe-reopen fixes +and main through `d77e2bd`. This is source-bundle testing, not a newly published +release/AppImage test. The sample has a random test name and store-shaped local +receipt; it is not presented as an official catalogue listing. + +| Check | Observed | Scope | +| --- | --- | --- | +| Overlay registration and visibility | `IVROverlay_027.IsOverlayVisible=true` | Actual Frame Control gamescope overlay, not a browser fixture | +| Transform | type **5**, DashboardTab; absolute getter returns **18**, WrongTransformType | Dashboard owns placement; no transform/dock setters used | +| Texture queries | main size 0×0; image read **24**, InvalidTexture | Direct texture refresh not established; compositor capture used instead | +| Stereo compositor | Before/after SHA-256 differ; final image visibly contains Framey tabs, quick action and saved result | Actual `IVRScreenshots_001` production screenshot path | +| OBS mirror | Current run's random name and “Saved setting is on” appear after draining 60 frames | `/dev/video99` pixels; OBS app itself was not launched in this task | +| OpenVR click | Move/down/up reaches intended control; iframe pointer event is trusted | `IVROverlayView_003.PostOverlayEvent`, no DOM `.click()` | +| Live setting | off → on; real backend file `{"enabled":true}`; fresh iframe reads on | Actual Framey HTTP → Steam CEF → Decky websocket → Python backend; no stubs | +| Tabs/quick action | Settings/Panel clicked; “Saved setting is on” returned | Actual shipped host controls and sample action | +| Slider | 10 → **50** | Native OpenVR click on actual DFL slider, diagnostic UI-only value | +| Text | **framey-ci** | OpenVR pointer focus, then CDP `Input.insertText`; not SteamVR keyboard proof | +| Smooth scroll attempt | `scrollBefore=0`, `scrollAfter=0` | No scrolling established by this attempt; do not count it as a pass | +| Battery | **99% → 99%** | Probed only under the owned lock | +| Power restoration | original pause **false**, timeout **5.000000**, exact values read back | Temporary values false/120; no idle-suspend timer or proximity changes | +| Cleanup | `cleanupErrors=[]`, `powerRecoveryRemoved=true`, `lockReleased=true` | Temporary managed services, sample/settings/profile, timer and restore script removed | + +`IsDashboardVisible` and `IsActiveDashboardOverlay` are false while the panel is +visible in these captures: this is an existing placed/docked panel. They cannot +be used alone as a Framey visibility verdict. Activity changes from standby 3 +to active 0 without wearing the headset, so activity alone is not worn proof. +Native OpenVR events also produce trusted pointers, so `event.isTrusted` alone +is not physical-controller proof. The worn script now requires explicit +`--worn-confirmed` and reports trusted pointer input with that narrower name. + +![Actual compositor panel, room masked](stereo-left-panel-redacted.png) + +![Actual mirror panel, room masked](mirror-panel-redacted.png) + +These are inset panel crops from the raw captures, with all other pixels +replaced by solid black. No UI content was synthesized. [Image provenance](images.json) +contains source hashes, mask polygons, crops and published hashes. Raw images +remain private under `/tmp/framey-vr-verified` on lxso1. They are not committed. + +## Bugs found and fixed + +1. The author sample used `decky.decky_SETTINGS_DIR`, absent from real Decky + 3.3.0. The actual iframe displayed its backend `AttributeError`. Decky's + [pinned module](https://github.com/SteamDeckHomebrew/decky-loader/blob/v3.3.0/backend/decky_loader/plugin/imports/decky.py) + exports `DECKY_PLUGIN_SETTINGS_DIR`. The sample, docs and Python test fixture + now use that name. The old fixture invented the same wrong attribute and + masked the failure. The live fixed backend save/reopen is in `result.json`. +2. Reopening the same plugin changed only `#session`, so Chromium retained the + old document/host/cache session. It could retain an error and eventually + show a false “No compatible panel loaded” message. A fresh query parameter + forces a new document while keeping the fragment session. The cache + regression now checks document URLs, rather than manually assuming a new + iframe. The real reopen with the saved setting passed. + +## Methods tried and limits + +Read-only `vrcmd` stats/overlay listings, the shipped OpenVR ABI, compositor +logs and actual CEF/Chromium targets were inspected first. A simple +`--handlewakeup` initially produced the Frame Control status panel in a stereo +screenshot. The full test uses a bounded screen timeout so it stays active. +Decky's service startup reloads Steam's web helper. During exploratory service +recreation, SteamVR logged `UpdateInputFocus: Failed to give focus to panel` +and returned a hidden, zero-sized main overlay despite a successful focus +request. Retagging only the test browser's `STEAM_GAME` property recovered it; +no Steam, SteamVR, gamescope or headset restart was needed. The final run did +not need this recovery. The runner records it when used. + +The first mirror image was demonstrably stale: it contained a previous test's +random plugin name while the contemporaneous stereo image contained the current +one. Reading 60 frames before selecting the mirror image fixed that observation; +the final two published images contain the same current run name. + +The diagnostic itself initially failed its cleanup check because an idle +systemd watchdog service was already unloaded. It restored power and removed +the test services, retained the lock, then the exact owned remainder was cleaned +up. Cleanup now checks `LoadState` and tolerates an already-unloaded transient +unit. Subsequent full runs, including the committed run here, exited 0 with no +cleanup errors. A four-minute power-recovery timer was created and cancelled; +forced host death or network loss was not fault injected. + +A null driver or virtual tracked controller was not needed for pointer delivery +and was not installed. No root/system files, tracking/proximity configuration, +Steam global binaries, or spatial transforms were edited. PR #113 was untouched. +This check does not establish every official plugin, sustained frame rate, +backend persistence across Steam/Decky reboot, physical controller tracking or +haptics, a functioning virtual keyboard, native scrolling, comfort or legibility +through the optics. Follow the [three-minute worn checklist](../../framey-vr-check.md#three-minute-worn-checklist). + +## Local checks + +- Full Python suite after integrating current main and worn-confirmation gate: + **1,595 tests, 16 skipped, OK**. The final added scroll/mirror helpers also + passed the **24 focused Framey tests** and the real-device run above. +- App and website test commands passed under **Node 24.22.1**, matching CI's + Node major. System Node 22 cancelled unrelated Meta sign-in timer tests; + those files were not changed. Node 24 was used for final app verification. +- `git diff --check` and Python compilation passed. Hosted CI status belongs to + the PR; local checks do not substitute for its macOS/Windows/ARM64 jobs. + +A separate [locked cleanup audit](cleanup-verification.json) confirms both test +services inactive, no panel bundle or Decky binary, no test plugins/profiles or +remaining timers, power restored to false/5, battery 99→99, and its own lock +released. It also removed the stale DevTools discovery file created during the +earlier exploratory use of the original browser profile. diff --git a/docs/evidence/framey-vr-2026-10-25/cleanup-verification.json b/docs/evidence/framey-vr-2026-10-25/cleanup-verification.json new file mode 100644 index 0000000..5e546e1 --- /dev/null +++ b/docs/evidence/framey-vr-2026-10-25/cleanup-verification.json @@ -0,0 +1,2 @@ +{"batteryBefore": [99], "headsetService": {"code": 4, "out": "inactive", "err": ""}, "deckyService": {"code": 4, "out": "inactive", "err": ""}, "panelBundleExists": false, "deckyBinaryExists": false, "testPluginFolders": [], "testProfiles": [], "timers": {"code": 0, "out": "", "err": ""}, "pause": {"code": 0, "out": "power.pauseCompositorOnStandby=false", "err": ""}, "timeout": {"code": 0, "out": "power.turnOffScreensTimeout=5.000000", "err": ""}, "removedOwnedStaleDevToolsDiscovery": true, "batteryAfter": [99], "lockReleased": true} + diff --git a/docs/evidence/framey-vr-2026-10-25/images.json b/docs/evidence/framey-vr-2026-10-25/images.json new file mode 100644 index 0000000..cf68fa0 --- /dev/null +++ b/docs/evidence/framey-vr-2026-10-25/images.json @@ -0,0 +1,80 @@ +[ + { + "source": "stereo-private.png", + "sourceSha256": "25944a3f3ffe0c217ef25cbc3f5e08a104f9d8901075b755c928ec5049a4cb3c", + "published": "stereo-left-panel-redacted.png", + "publishedSha256": "0de6fbf0f31d0587c8ba91817406acf455b8adb10d343bd56daa605f9a3051c7", + "maskPolygon": [ + [ + 50, + 435 + ], + [ + 910, + 365 + ], + [ + 940, + 920 + ], + [ + 700, + 910 + ], + [ + 350, + 945 + ], + [ + 90, + 1000 + ] + ], + "crop": [ + 50, + 365, + 941, + 1001 + ], + "background": "solid black; only inset panel pixels retained" + }, + { + "source": "mirror-private.png", + "sourceSha256": "44d193943ca3164269feeea38f5cbfb0d58cefb79d6c0e8231eab4a5069985b8", + "published": "mirror-panel-redacted.png", + "publishedSha256": "86fa296a36171efca6a9aa627ec3589496df73f3c03f8f9428454c411a904a77", + "maskPolygon": [ + [ + 455, + 445 + ], + [ + 1420, + 390 + ], + [ + 1470, + 940 + ], + [ + 1150, + 910 + ], + [ + 850, + 940 + ], + [ + 495, + 1020 + ] + ], + "crop": [ + 455, + 390, + 1471, + 1021 + ], + "background": "solid black; only inset panel pixels retained" + } +] diff --git a/docs/evidence/framey-vr-2026-10-25/mirror-panel-redacted.png b/docs/evidence/framey-vr-2026-10-25/mirror-panel-redacted.png new file mode 100644 index 0000000000000000000000000000000000000000..840d2f92fb0b2a13192f6847ee672ae9cc745e4b GIT binary patch literal 154032 zcmYJabyQT}_dk3oK|+w0R#CbnB?Uxs=w|5d?nXjDT0n*pBm{&Zhc0P`kQ}@B;lrP))mM^$eFN; zdX>|Cn8&qt+$2R#eZYN(({ZDD5x-D95mHZo-XOZARV-Nk>~VPJvVjc13ZeV&=ck?Z zao7ZZdH;E|2!Jk5@b6d846aGI?+_QK{lD=ueaoVI$q)Z;T%6PUu>9jk-2YACqipjy z{{Iij87mFfmrU@1|9!3F$5<2i(a*uJBI3xx>eK(`Tx$qfEa;Wc3Df@@qDdA}*Wcv)Z@peiim1Kbb8HO%|In5ZF;>3rU041q{SW$@O{l6+ zh~G!Xt=IpkJL!{1pcW^^z`pq(tpH=q>)smF|9yJ>_20uXN2dzRpnrt)_5k@F=sIry zA$7vw`S~AtT4co2&(W{7|Bt+Ex^FYj(REn=w?OYLl8O*I1S#>^b9C|e;aC42)*t*2 zDR@@d3<=6x?|<)V;ryFOT=dibhS^yE-W4Y$`wv^M?*}9nf;HXHe;nzx#F5)aBFcXL z-@D+F|0WV&zyR-|{6h--7>}jHa?xLMU5yqAmH+$o-#0zDQXc{rkW5(7lxiBxYgO-8sya@YVbm5%f;&R*7_2vWb4} z<*dh7tuil`%*(#!i4$tNV(*RPo55Ij*9R^cjUOysggBBRjAjWWa67>4_*yLexpc=F=4ngJB_q_;lac0ulTSS8s7kc@1!M`)`&?NS2?!)qh-E{@ z@$Tn2GTNR(a-4BjS)^c^C~cqqO}9%FwfAo~bAt$M$A<~%ttmdy5!VFUZ~0UgX{-rk z(EGK^H0u^vValqU>n0bx0ABV~5KCD@o}i%9!Zv77Wkz@;RR|4BNL|4md!{Y+v?#?R z(gbV!=X+iRK+tMkQVveh(=r3Sz2`6gZILqpKnVmb*O^0FKKx49cpYhxRl@zOwug4f zhNOGD;DvO)`dPRL#F(i-YMCx|P&I&{F@FQjZE%h4IoIjgpXZL^$uV|YGyNdTu~Og83k!?In0qQFgG;bNctAwJ(#5s9>`B-wf({<3SYFQ~JCcs4hIC-2 z^>jfWcl|2P5Ep@uva0SlGA=cm5d@?s_1#iT#WPppV>MEZB8P3&10|(UQQfc6bhL4{ zNJ6lv_2!>9nY zqE?M+!3#|Epw;(~Tn$hcT{TMiehC|MAg4fV5;~Xn-Fg>IuQ2lDtPPf}B6S}p?$6_7 zI~$7%%zyfe6?y*fBt5;G3XCPNK3CMeiX>h=yOB&*6{P~%6u;_AM361jH`vb#h+{Pc zEt8kqk5zJh(b3wyP^HBw9ODgGyY8at5>{{c4BkX)(yc!u-*-&@Q)t(ALBN!N;uH*n z&dt{k+zheX<#C&@WDOKxc5Eo!25{clI0#qD%RrI6rX5l_GD{{D#)t=`_hJ)omay*5dI0_C8S&z&VR%23oH z^l!%sRZi*jl9y&meaQsLEApw48>zM?hZHOelx-hYB#m2=qSN_b#QZ~zRFkZ+S=9I@ z=%+o8+m}Mr$+RL5bEo&)T{O>6V&`a}%s9~^*#G27(#8&N*Tt7Ew81zu*E!gi5j^&M*%vRoI#rfQ8EJ=fqN zUZXgF{&r?C`{63$=NJ>A!7PhonIi!zoaaS%#T42o z59m_82t^!kKmsXSv(>JCURce&VpVjZrTf%fXX9tR1Xoy;n6I+gzy8>Y9}eD?fCWsr z|BxhDLu<$#=-zgb&n3W;c1NCpKV;Ylc)pRaY&`w&q+|m6@Ps|U7)9unm1hNiC#7QN z2Gi-BJxWUy&ll=t*uPh*9^;|L4tt_Rqt0k+&0|0kF;5{ci+Y!y=}KUg6(9-+ByvN8{HL9LQEvyHav65r{pyW1y_ zdO})_WQORk+fUt+Rr0LCJhs^oV5aR!s(Yq1)1%sF(<`JeKuCNBMae#UrLLiIpX1b2 zZ|`Ap1`4cX6PldUEt(V^L7~%P`yw7lr_5n46|A>c;rHYN>Qs1iXzqhbtJ-u5$*$eY zoR$FhMW+q=;(V$261?zbf!N)K4g7Et*)wzrfmoJGDr*~(X+d$7tPj89({Q9#D;ckx zAU~*BdlJ90WW%i>;ig`h<}ZUPbsfM)uY1xb{VXXdL4&MWVbaSsK_L%?`#W~jNokpy z=G&#MWZq@*ipv5me@Sqz6^yMuC5MhwS?SFwNuD-j8nzs6%(VpzpTfsrem( zQEPv^iYj-FRr!SxGQvB!dODk8j<$p^{YKWQp~(T-s>_W2T16^FUBlJa?_9TQ8z(ZC zo{`!9^UWS^C}-**54&`txsy&r|EF&st!ccK7`Fnwv@FdYopSp~HGZ|8UsiWKk9t#V z_35z+vxh5UY~7_^&UGwWBxM-;mz-Cg?ciumwjS+6M|vmMeDx3eDFGA>kUNaXXbS26 zIW3CR#y!LT3R)K}LqWPQ#^23#$is=ykrq)P<#)=-@#M1*I;miMB*W;Z0YQC-G6UB- zaDnm6cZ(S$w3#;cwbKG~aV#lWRN&W)UruImF~AlqCHjnUYq&8>^)^D8X+sv`y?bc8 zp2&LC^5KVpq|Rei2%Xay&kIP-Q(+-q)gjBpTjAcG;8Gj|`QNg!-%}x`i!J3e5(C?L zZ)9IOD{!+54LzxdpbelWK0!q3h?zcYMI!9fR%9FcEYk_Pefj5Z!=Ma<^*L%iFLmvL z>1e?}Me;k=Q=~@7uo8*cu)(=CYHK^_gIB1_E?i_-JtVU9R5UZ|gaV|m(|j`3G)Ow= zdQJggdqqM(CBspB&Pp{B_5R%Q8We|n;OkN$jnd}+;!JE6X&jBIhJ2Ro1*enf`!u5< zVGZ2+C3K-Naq->NL{bS24xG5AIt2yR?aJE3=&7?Yt9A6)?M~{1QlJE+R_dKNE$Wlw zYMrWGx``0Cn&tz7TnM;dfnS_PCc?Z|8^EHpt|3*c@8>H~0D_L6`*0y$y~8GJNzSEA z8d?egccaB)u8t>c@{@iC2@$jDuNs&ICmmUz9WK_tJLy(_E{AO^*b&@DcGzmG2K7Bu z>v7R|j)9HtUD7Q?A4>#GrI`Er1(X?psy(cVLySW?$cr`Pa;#JlygG!RM?U6%$GMeg zFfMwFUXZCcY)r1%Yfb?*-|kn{K7CE~Q?g9OuDNAO^1EjZrvJAYF%0tXX&80Xo5~`7 zGV84d#rSXLxy*|t7~)Ie#)1I(@XTC|Dp6VT!dB@$}srh@p+Qs^I+JBfv)ZO?M zy!-RP$gu=shfh(Hu;QrF{*tFB-VJH#)9g6I^f(+Ir+8AF!qihC2h zxQ8df2DGbA6a8IgzMf3kPdoJ(A?##0igBsy=s{!WJ|Gnhs*bUu7eLVO0se{v5)8m7 z2QM!kE|59YMf0agiDT<$Z@@$)YqUqbOO94%foN@9L!DnCf2`P;~WpmUL$pP zcl4{%ZateG^9@h=Ln%GyIJvlnI43KZvPx1i*+6B}4|d^=oIE2fd5-XA!}$IrrEKF{ zKD%h|J~Xk%s_bS_dU64IuUb~y>yu5#ht19I)Qj`=x0n}AccVrIPk{1dRKUn3H>hz= zv~n}uR&bOo_I~ABl5zbtLIk&i4NfmJ`VNGZgY-a3*3I-%3;M}FT}dpf&X(;nq!;k)kBD z@3wx92Z%V=g9)_|=GXQN^ik7px!-ZnLuz!-$7p9Ko=7-(v%Qf`Y$#h5P$UQ~E;fK_ z5uihIso0UuVB{M@NU=>ZMQk_rv;t2;r*jjyx5k6LDCLykk4%%dk6n3vsXU=KOxNL1 zUzFFatiJwf&#_CvH>=&>8*0jkIyvLDxuOEt&}oEPKA102W@C&g4#CgsHpGJ)G3I@+ z6##s&u*l`=_ValLC^u;9iHY#x0`YHTQ|JLetF=2tZ>g*xb9NGHbxP%ZKz83HpS-(Z zwg~kfw@g=cLk+%p#=IZVXf=wOwypN}YaUX|L{fi8!P3r7* z$k8YDqRbsz_fy(~x#2S_g+pH}AsEi@CSiN7{H)#wOMl740t1H=v+AeQ2ByLo0G~=OnV#@1zM2ptgJJ`MY6tck%lTJdnvc)xc06t~Kx9!JI1G=sVm_=1FV2 zqhpXkF|Lr?`H{ZDZ)2*3?9vb*;Dh=uDLu@mq7BXugpD0sB=-Rq>S;~u2l``GRcwm$ z+wxanZJw3$#%2reUkN8<=za?3eAKp22Ng+(My?Pv)5mdfwDHOx#mjJF*o^dPvU{uA zt*AaLtE|c7hLxs>1QQGj6z7{%mR5m#Z+^;#(3uY!WgO_ngrVz~e$xPTaQU(Gq5;aq zr?mFDRsi5;Dw>_s;Jx-!d7{J|fx1$fp2MzFKe>*-?&^KU`pAlmm1(h#lZA&T7BA3Y z_DGEUOUm-Y(a7vm#w~9>O>XH z83evelB=#ZB_AkMlh-U8R8abWMOaFmB)O?KqiYXGEts5XuKq3?cIQy|d87Y*97h{M z4x+5#B`qosOr>NX0Lv~&8=X@xRrRQ!@3`-2%cps!ZDDb8GBWfvjwhhE zP;IHw`|^`t>wx3wDt$W?P>3!O!be`5p-@FuF6dLL+FK17S% z?8^#?^7E%!9nQP$-t#-O*7G?Z*?(@~Cnu`EY4)5K7JC0}SR*Q=W_KuE3#y+4Dm*FL z7P*bJO2GrP8}BD64}ItqwzD5sObftAo5$UzUl^fwOw%U0i0iKf+9O&;w z=Uu$Zx7<~$j#SiC*}wem;qbSYIs#AF;2YtW@#Cp76zb>lOtdTNO+Oj-US{282R__< z!v6WXd$&6lezMI&$>{92F*YQ0H+9Ns(Io4*wOE?ZbP zu(kD@H7)e>IB%CW_0J&^cK_$aB&u}edAl9Mk4B5HTTf~E7mvFlkJAu0V-Rcp^U_8~ zS47KZ7ERGs_IO7)9j&;j3DO7GN63V@-QLx>RMh{JR-vbQeYb4IlpRB#PNH*C1Q8=< zCp!@j)E)zU_*-0n*kKJOLIx)Qz}O!{^KCA9{fm_e&Gp9-;%1~pzU1S+$p;I5vvaKn zhtT=mph<|DKf^Sou;EIbT)3XKtWkHeRC`uPxq?3I9G!l?IL@8-d=drV0hJWXCDO;5 z78hUp1xO`u;rcWMWSQza@QcTz4nOHo0jarzV&3XSrM-_BBf*lk?1>;M-7jXWXT0*~?Br_H9-sZiRbz#&X$u~^;fy53M8)wprqd_g>cvzOEhlrXz9_&% z6@!8jV#E9?^EkXs$9%b4{G?*>X8#N4YV0Mueoe7vQT^61UgrCRE$}C-hmFNR_!kZlpB44qO%i&Y33tKD zy*;n<6pdZI*^3O80X}x7y|?`hsoC=KnS-PIfI8*h! z(I|XjS+9zMuECVdqu;}+@Le7S_!fPbA5I?($7WD2^fprgi`){lg8pvqp3e=0G7w9N zKi)if`Gaw0|G2oat?E!^C?So))%U){a}L{Bm+(!;U$KvKhQEAutT4u|@T62=_S+51 z9*w-9Dtq|;MfrIH#}dQSVr|yyYFJV6t4Il+kPPskQnlNqf<`pAX-BEPyyAg> zq_d!W+O|#6)`bscy5tDY&*Ib_W4h4fKYo|TV4El4uiHS7Tm=AFecJ*6b@vwEnXbG5 zjlk|YLXk{+XQ(D5D`TiKd#N$8@p3Yv)$cOQ@WH;Nv+uB+dzL@pE;GES|SRFqgJDhTdMzm)r?(FroL+^GF z!k>zrSq61&>N@A9o@f0sEJlRZeO4N5C((1lHF#e2a+^Soq$aL`6jYR`Kw< zi&A<>i+A>r&O&~4{Alr77oo5AAOaIng*nO?8|?b7Zn)S0HwHh<28k zGPMs!3mJ;Y8$Dl}ZwCG42UUGfbN5E0iHq1=%x@y8hanYNB7Kx=QrKC>xdA2@Xl!j~ zqCE){Eujvv%f)5{34aCWk&F&8nx!MgmQVb${C#%+xmT9603)O<1zuq`%A)|&w07A2 zrB#w*ej}OSBD#Cw)fBAE&byBjo{0@(oB?>iU7gT1!!TUHq{4v(avKmY;ICO{R%iUz!WGR)VV zotfEix1sP1k0(F|6pI27%c|1x?8MX z=0ppR(7Q~0lO4DRcW_u~3_KRAq+KKgC+4}`pYR?1U4IJ9jkT<&n4eUbu%|LjV8uyBY7sH|oPm8|)4hKFGKuStUT)bb#t5fENix$ZiMM^odq^5Irxwp4mYXN~ zYb|t}q8EhVfy10}U;lWY)_*lW>+&Kt^h2$CUJ<`>yAVs;A~mwzb&23M`gq$ZqM7|S*IO*T&GYX`$1XK$iNblI_Wu;9XInJr{M%e2o!id3V8B8H94 zT#fh%n?5K8?^-fJ!sZ?CdkR~d(sebvd@3wy>627aqQ!#4IA&tk%!?rX5uO6$Xz`1y)C zciB=*?ZPBcL8igtm0iGe!K@b4KoI8m7{=1-g?mXWvQWD`G-0bh5EotQ=|`Y ziBQgW{xF)V{N)9Lfh!stUa7jqS?@j=#goNwGbmo&1*c|tkE)hPeOBIZ5ykHsHupz2 z!%H7lP}EIWf7!yUw|-pp`;=dcp|98s0G`fpDF?+J*r|@QEXY(PbredcILrk^uw)2$ zKAKo{6IQZzgdcK|SNW00=%4S=uVi8O_mH{M= z;sPHSuG4g|g0wSzx2MnKhec}qtd)wuBP8|R@<5PC+~d^=3$-u;AK`CKLCc%F37B#M!RhPKF-m3u^5#G{nHNT?q!o*jW`5{{HxVBZeuCD zpR2j}Qad>994?|R1{=Jj`r7o!+F$qb?(cZZwfZBdWr;tq@8d{?EX%x1ZMOO38{@tE z>|5%JKzLe8n79?1(JY@-Vz{+-%D$T*8(f`uV)N7*!VH&VBwU^r4E-)fu5LE{w?>)% zZB$5Eae`N3sYa0fE$T~^B?Za2w|XUA8Rk02DHnTt^c@0C?M_@tE_L7pv)!|!Yp+-0 zstOJcJ|0Nt9D5_e=24v`)n=VgJpKhFUs->@sM{e8OFB^gTa{a4y>>Sp;>e^|!y@V(i#^?#Xc#hi&G>+=mU*Iybd|?ajqN0}b@+(bObR zI-dp3HA%CGtJ-P@k!xyT_STkuW5AeVVH#cy`}un&GK_qeoxhaOrUfxfpffY!_MqAK zwp)WB#H8q?H1JfYsKQn0ek-D?!DZ_zj7^U}Dt|AGd(%c|qMOTTz_7fyBzZb`S#pf* zNraVB-r)tuTy4=Vj3a>U^qy8@LSD;29#5<4wMoy3kl3a2`mK_O!yL-GZjp94vOJr$ z;ylPX7rf-=lLubcEY%-G$gPg4IXXbCnZ}B2mdYqyan?_&90i)PBjjX};sYoet(v=^ z`-r77F~uHdl#4J=&_1TNGGnLw`ULApKpXPgHaOEL&eazhB);Zs$ zBbo7HqtW+q@$v3ZI-bP%5wWIiFvi5cXK=$-zVh~^ zqbX^BIl63FVkuk5&c%(ojs=)K0^Xqk@4IkFu#}CuxRLDgd%G~I0wqSPAnjge-KcVi zGbDIJL`Vf^DwbRF%3KG4N>wXx0V**NRFq3|+H3h7UF-O(C^B2Fmy&mO<#f0cBMMcT z;PFl6kf|t@zy`nY5{48*Qnrt81Ykn~REmY^rHBm0!j5f1 zuh=}sLbyH?30e-Ptjf9sJ9+FVt{T(EJPmYqcetRSqaw6pT@e)9l{iR0xTZE1EHl1* zG4K`l?CiosAS*L%Pp9%Df>*<+<5(b6`@IOYtwR-vO-ux0Xz{c!H z{ZBoUlB5o@nFe2+s#Vk;AGG%4Q(-Nr6cMQKqS;1AlaZo?7>7K37Iyv|t=f1iJO>T1 zn{~*$!#LEzI+G3ISyd+4ZdST7mNH53ZM`~=kzK(b&Z@t=EY5>19x3y`Z*p*-%~GqP zMND+PQb*>uFkaU;6u_keZtj~9Qq;}w)+N7|v!V4YCEs#L0DCnhDMZBX4+GO5b}R4B z{_3$Wv|NrDCNn(C6!sU@KtQw(v@0!U?OFbS24#cELU%fo;>5g9=EnboZRng|=)tC* z1nwM(GEb^oP*d{FZ%?`=Rdp2=SGXXw_#F2{?sm9`MQ%}vYz({~YXkO&W~aA_0#D5z zIRYX3TY8iU@W;E)*)87akgLw&fG5CQx%KMS7QH?V-_gPw71{BH4BRJiG&_5H`mHY0 z(Z?HB0yZq`ed<5oVK&$msUy4t)}W6&Q2Vb8&#`ZPLxQIbVc7wE0%DAtc!1N0Ph!WyeIwpvz?Spb?2|@xy-CzxGz<3%z zl;=#9ot_2@#(Vi2VG9J^bbV@$*`Yw2n4;@7w=;q^oa1a>3L|Tu-kYK~F#Cy;^}Za} z1tWo(aZPqo9+2%?eXXK;ATf@<8mSxx=>=h~wVVbo0CaE`AnOIoE{*C^T)1Pq=M>@W zvXx>44I-imn|PA=Ju8r0 zO?a1?ZKHYGglhXPew}d3z`#d3DtB+cFomexZEZEZ0EbVAiOI73b%}7O1~P9E#Y)Cq z)yy(EDd(;BJbgxR$|fyDlaoCDO#*an*5_u*rcV>Y>bigX>#L{Opp=c``f-KZ(e*J& zOE&l@J-ZmcB=@rl&4B?$G~iE#SABdB=kIvP%KMbu?dcJ5kQxd=gm#*CVgm1yx0U3m zk*Cd!bFL!#8AD6T$3JMfVL3?2B2C8oC9u*d<0|>^j)K4XFDHE5);=xuTx`x2 z`6d#etxh>?))=35{+`wO-PnFl1atqXk{GRFARI5#md{bw^{Uf5AZKoo&(Qb$j*Mo? z{3z_&)OOEIBWPZ9*hvZ#Fe2_tu8gfIiSe1|TNfF=Q)Qd4a{wJ80)6$EGTVRjnXhbb zTTeb0sJ_K$hImL;J@*LDx`P*PLfoPFSawX=*Vl`W(41uW+wN}lc^)>(z3KbOdg|GC zAb1m}050%rf{fx(-@FGJZ~M{I`0Lnyg#r-+R`<5*M=o-C#>8F$efBu0CKJYM=d98s zVm!J~`i{D}+_u%~D$SB2NCA0)@i-Tj>om*8b9$X8sT2K%?h)G0*KFLA?KqW=>W^z- zqlU`tW-MJzuTH9wS+`IP5H}kf#+nLei_XnuZ28dkZqTNNBC?AU3nMFnz{fuz*c7kh z=;j_-Nh~6c>_Qehy%+wT%Lu=ePi&j;52lmiPL^2M#TS^%l6bp*;pN}1T%*m2+gxg? z^HPK*T7rJ$_pS|7x`S@R+}|1rJ`!1;1p4Icbi7*FO~*)mWP;hdgNqy6eAI1^&e<8) zswDAjA%de*I}q9K@lZahmR1;qVIeQdjyDxM^yfRn>=)E$5w9lhz)Y!{^dmOA8BIC0+36_22P`t5Y)keOhS;ohM_g4l5~Nk8pD0O=zVx60jC3@AO5HS`H8u^60#9B_ z5k?h6+-JGmzb<|3?qHD|xwt5|wQ*bX+97&+L$0WpMPcaObK;ld(nX6~_Tf{ALy6~p zV&7-eo34m2xi7GS?Oz1cR%vGjPD_4mV|s$N@%eJUI3?PzhDVT3rS)o%exb@3o`R?U zROuC|2Jw7RKV6fmN;XQYndRaJUh|0IUB{!SUfzN4*0S&6jD&8(ui&)4qI03csRsW> z`9V?7chdD}voL#|%pbPg(h(M66~C`~5iK)2D=elzQ}L(QHs4lWOin~rev~<9o|r3I zS89IvbIK5*O7M9{uVHaKJeG3};aT$ zY<{z6^{{|B=}smEFON=o8Rm4uXTMmHpC$~uJP&RNSl%2KzR3)%8raQ} zYpvN$<#kzcvK&iwn5tKqES0k;el=(a;ULdsvDJr9Zg;BzfD!iQf|qE(ESsm;33*X! zmY6eB-EW=eMP{4jNAIvH$5{2aIP>{L_=W20BSo`R*g(SG8)yA_ofHCqk;C5IFhjUv zmiD%1QjN_U!Xs*-5w8k-;p3||bF`{1-Q#Jk=+wuJyD*m6Y_JwodrghE70-25cJ0Co zBP+Ty-7LY=$B$=qX{W|Zk3ow~?Q6%flU9G1k-#5U_imz2EO4#)pYUn$Ga!D@!frPF zgPmK3dfD9<>)+cAKG@OE*C3wmzkB=-Go9^c`wJ}S&;=Aj2|uo;XeFDgC84!*uDYeTxUyqgGO7~R$yxA?%#>l-z2uD{s{8y3 zr-}&jYPD@ZF{byGq*v-_p z?==r|)`WwD;AZNpUiXMV>|I4S>+@_Kd2L3l|+9<#lPVN2f;+34| zA$A(Hex6-zIkx#^j8@e3<0L3(q|sx(#a=&K8=4{H$v#@uB0|As8Qv_)&uA&aHYl6@ zA`;zLFf8IvUQxE+>b0f8G?ZN1YCW^{yvA44uF2nOuh4I^VFEteuXg`<#J@P$OB&?m zddR#9@fyYxihFc{Iv+8F%O8Fbfl$K6a?6`3B7oq1+M5@NEmS10F%D|zX zEbqLSu%#aQ%53f_rsf(-P~GsVB1xD=t=)^c^uo}uMxT6Eht#Z}10UWgR4taRTMDIr zP8+fLwp^bGD-b%FFfJ4esfNDigtmv*9ODlxp#(X+Vx+xbbVyrlOkX(uFevGZDoFDv z9g+ZC>-W}EIigOpHDluF$F*q0MXBj!*)IqHFEMdi;ICI8(im{^qX8M|IEIcJm(7Dz1{!qfg*i=3qLgjepR8+oZ@+T`D@<^mt zQdz@n^?Tk7sj>;BwpV5~O~nhXDR83Y$UL6v|DrJbGEZ7ecSmOeDy^NXi)0ySslL5p zIIAd!aX8<0WIO%|tHcG3DdXl^?#HrAIz)ypcR-$;(r4IOEsL8ldAoA;xioPT%!@#{a!#O-&=fpUmuWS?Xvn z&-%Xd_P7u~d`6ShB_F5f5haoM0Jl`XHDF>=sO694#+ETs=!$)*qxjx_sdp zlg1QvwN>3M^9^*f8KOu1Dgj~g*_7F=taFb93|WCIzWE7Bsg~c{e?spMBTczox8WRZ zJcDkqBQK9-c(^{J22TD?e#G&<<}brp!0C=*uv`<(*#vdKXI4(RLCrO+4%H7fiW`imA?d%+Lb90GIy_At8`?1fnP-p8nO#GMWW~rw=xYd0rIU5`x z7iB?L?u?bk?^zZKOwHEXXQk0ZW1tqLspFk04fe4(9%L{T695@`EmtLrPYG(Y487d# zV8mEb2R>UkwkaGWHW*~qg$&Y)R3cs`)mut#3xS)N@LWNb7c7(Z8R_zk%~@=_sgK*V z_lF@Srs)0%t-#euN=>bvA>udlBsMm3^nN@j_af*D`u&6PN4{Y11>FYLi@O~0uTJNs z+7nbJ29FV9UiS)R#Vfmf4*p9ei&OPAH}FDy#Y`VQu@8{&{H?c&%G}<^o)3ejxw0r& ztd4rN=nre1Be`a}z<7b8<+|^r%21SqBwK3fmuIMOS@wbNnOUVOz@!50v!JIyDy?M` zI`LR~0~N#RSA$fqcZz@!vhttLnFC>D&@4U8$XX?X{jQ7w?R#(;+UPb6iQYo&i?7p` zTklJjy?Ey8eRkRS7n`nQZyCA^Zn;m-)kC@ehFb2D6c@gaf58p_kQ698g4y<<{`6>3 z)cQDy$aSPA;8M&nJ!>+D(lY|oa&>l!$qca%wz08bP138p8R~i1XyJH9C2|yPC~P=s z2LvgD4n;gnWGxvXU==nC5t!3XjH_Y^Bc8ijLT8K&?a;T>ky62ufL5^rADGrSTKy#7wV9XbQ>xH(d860&tI*d>Ndilf822TJ zMz@EDFP!~J3U48=%ElOm{W=G5WDT22tD2_|+3{ON;{y-5S)a(uY(}}F-H(qOQQQXE zk5FVvE)Fxze%6dhZUmoQC%CCp0N*i|6yy<6B*(F98;zg2l@Pq-j=LThuSx`oY!RhQ z8>98x35G4@wa4U1&xVJ5MO(dlo@J|CHe}W@HJ#nLaLe6RV?C=4<^?W{e z-E4JR#1A+E_jC`=YI^QWSG;y?y4X2>8Q8RX(Rf&QzEP?Y;di|!P(GMr zDjm2!bT0h~PJ@cwX3$`grkVAEW_VqI1aLaL+8(@IJpAL=2=f$i<;f>{aAI|O)aS49 z^dNb|7=51d2HtdQf%rJ+BISbKLCOdKbjx&jDm>s4-N*;o(alPXdF{p6Lm^P-Dm|34 z**TXByPuk=pkJh9(rPBI0d*VV00kp>O!>^`u z85l+;+j8%@i)?jUv<-sO+Lfo?kg?3=ukc8g9mtN&PDaRGci*6EQwS&u`?NBhW}tk+ z7rj+0^Xi%RM7HtN8{q|7F5Wbmj zr5WX!ICM65(IUQRN`kA2hWP#2C|q;S-~@HhMvb%Nd&xKESo4+p=UA13aeESrU!@nU z@b&ild}a`>};jT>wYf1#aa6r;fHu!9>2>;?USla1tQI zBf<9W9_6l)pWw~ouJeY6tMfIw&X2mV>lYnIYMb4hum=8WySQnPrirto(|9!zP|EvLdz5B>_C^|A1Fc8@10+bK4|;O2l3|&qU)Ii|6II{ zczypG2=WQINkepdIxK?G#IaHLN5=*o^e6R-t0?(7rv0y)YHdsDQKiST>!%i0VzU^0~{kA75BGn20pBCLydv&QJh|Wo?If~I>`1f0Z-$r zlZaW>>!RbFqT`pi5^xyw7hUC7-5OMY02+&y*=va>9v_|~l))~EU#Z!eC$!W5Z1wQN2D&H^9Z#Tp?Hc%?R|aj-xJQj{Wb_lOy_rOL^i4k&de4k=N6;~|A>R8K5n%I zd%j?x&y+;#(&N7r)I$Uoxk_7lUVWoq;@X-=#L;hT+!F}u^?j zZ#WNbiQ(@`WK&C0^Ctb2E;&cyOY`A(KnvKASCG#E<@PVma9pOadrxNVUcmjiQ5#D| zm)3$nKoO>!k%KMnYKJL#c5PpCyIY>IKSl3KNi1t-=fkx zU^B{Lq@q(v2{9h0t{3Qc2)B&o{9e>QlRte>U`F-f*B3DT(k4=ry%elF$ z23aOO++f3?m}d%FzOeZ$u`_uU&G*v);FZLp#j2O$bfP5oSc!2A;-7Oz$k{k)eyP1= z*K3(m&Ns2R=saNXyexbv&fS-c>>?RSKdd*b`a*|Bb9eVMtiCUQH$33DgVtQC#QZ)s z1?1^TS(xpA!TXtGxB=m3ZtrVtAw#f#goe$jd!NjyPGiul+p6cIxb>;gj~K zLVe?gcWMU2aV=-W=$z!S+J0RMoBRtePblV`dt$YotksA-4IXw*W1(n9`%>gLL^3xw zQo%Y!_1I4PaItV4HDAY8I*cJ(Pu>>LYdNSMzN zA_N^z7N`8MTADb>Cy!J& zvc!LmVD3`pY1d>KnPi`Z(QP}`%~8SMWqqj8)xd?Xc!3a{xNwV6WNIocP=8k#pS{er zW-pA%8+qOM(h2X|0qd;aY82k?jBw~ISv)RX$!p9NbP8}DZT zP|)P!&TUxwF{C|hCF0@42;Y)9&L|2MoOczBSXd^vm`z=1hXOBUN5adV7p&oP{T_hT zVH{L`JG}7nX_(pAP!)v?5En;TqXAfji|?x4_sh7)2%nxy)3hA++Hxprk*&~8!qzX$ zT%-AYx7H;)0KjnUq-NHmY&+Kb#difh*>jiT$F9fQs~naVkO0InaLu-~qHWEptVC%0 z_-_qq+#lNMN)w$;*rLeI&Z^QrH3m?JwY}l%Xs@bzUOysYS=f;3#_y;->zQO}<9F2? z?B8P5a}zT=CpQ%DaY$K|aQr4$wp)KDEGgoNoN6pLY{BF3BK=S?bD`>1!D46XY0qnX zO|QyY5igezJt;D6(Uf$G>#9I+Y@?4&`TGUZj}vGmdO|)kYK5-0{H0y%J8czcJxUk5 z1^3;@!OHN_Ss3isTyo|HH1xV5Y8o;@Gk;mt8c-BS`q_&weRtMr%s)=JDbI74tVR94 z?=m|mC*`B1q4cY22MteoJ?S#m_tXxqE^V5x-b>pGWw8`#wZz+%Fmol+Y1ohcev0q6 zYgkJ&eYo0&wPPU&u!!O<2Yk7>m zq!snLBNKbD_C1U`h`GE|JT3N#(O?tAvVpc-s74{aeZGYuJ8ugdXUi}fTdvL>cN*A# zjVdHKIN;$bY$`P!hmiHN_z3ZGN$-HYeKt~G_e7I0AbU6GRs$aq($A>S0f6&*2LA#2 zrn0K$T2k`U_1xq2DayUcy^n{_Zyuo*GLr&pcLxV^@&QupuAB6R>85pF%UP{H6zR1p z+zu!BJK4l{pd{qQ)LdensLpisvICq?Na?lq`Mj)KL=em0m%GFdisMl3xAYGVdIhiU zah&;}?*3$H+U^Nzd=|1%_6H+h)^Usr#r$`%Kl$4fb-(2)E9;K<_n*Yj^+ucziDw@v zW>dD_PExYukLQR$nfb&C>nv9MS+qj+QmfBd^=C+?e3!-({y&b+GA^pFi{c|7AT1yu zjUb)U4I*9AF?4sA)X+!^64CLlER)UaoOZAKDtW_*6pwK+VF* zK24S*EnfnoI9Twyn8bu>-kVp>nL01j7Ajv;h&b`&U9y5*Zz}YKNB5#RLNEI|6oCgfed;Eqs1jdq%8I=860O{yQ46k&ot8 zIV4BelRkID&pm-(&`;Os`t-EdJn%-fRZz&wBke!QUOZi*_wr>6neO|^u8X{xmSZP! zpJ$(zo5O7S@5IZO_C}S4&T1w`IMLH*O>l>~kz&)QG2sijG__X&9&S3|rCQ$|#fJw- zqV}x5>D`P9gi5VfW_!2n^0Y0MGvDObU%9k+`H^aO9<{t?@3c`ujzL*9TFB!Xhj_y) zkd(RlCnrUfU}4*?`E^fkN)`{*`ri!l1jo!XiX+Dl$47^bXv+3kb zK6K#0SY?IBC&QPkWRzzOn#s2-PKdV)B8JW~7>$mH=r5P2?@%!HwBN0b6GM&$tZz>% zeXsg_f(ex}iJ6NCuZ7%C5F7YNySBBf5*0J~Azg3}lvdUpRW5E9el^ylqJrc`cdFN* zQ|^XpyYdEVnoap;%8u*BK*Oh5LWf4tLzyzCX5ph{zZIh*O`-al5kC`)b@oL4u|iAM z3^@mb4zoMmp~-N_Q**)^Z^59O}&bn^F0H=7%= z>zTprT}^*qRcKq~_8?Zaaj9)!l6bYXYZ*d>7wR9Y+5B?MuVQYzmgtm~cT-rHgNTle zWTv<>X;ko5mXOo`kR{uL3#$F57CE0RKaM!z(9)2aFm9oH;Fky?b@uI=so{lnH+H8{ zCxoJhr__Bxzr!ts0YWEdpS0wqrVNIy3u$G=Awspgo_VL;c)>weyP!`ywYYs{i&gGV z$t>c8@!ydpx;i&IpEK82-T)m`+g4|&g;ULgA*^r zU!aO5k12c4m3kLhA7^icnGwwNhKR_(i><0vPJPW+0p&w;tB`|&Mlh4sZEfwhK8gjm zoo)yJ4Lb{$0&PcYw5eEn9{&5KF$hRKCqv%QJFf!mVs!osJ9FZYFnCk|-MkFCrrUJr{AhNLJUBvOk| zUafj0cV(sm%rIXC5jCf8zTMWNNTA(fOC;t%MS zS^oS)ZLT}bm5;L&mlXa_bZn&jm-h};-=-?YAm6USFbfnJ#*35s9}Mrdy6XI>sFys! zRU-TYMqjJ#c(^$}szd zue~$KxAn6VUfw(5##aH{-p9AQP4H;gPA5w;oXto3sA=zvA2gaRxM~H{ZTfXi;->f- z#HA{7`?d6jQfaaC+kxNBo2|!f5|8c4+A)!r!T9x?3w>g75o8+4y|itoW`(I9=cT=~ z>KPZn`y7vykh^REY14fpWkL!zB?TI1V5RtKr(}m zXj&RmzybK}jJgj2)Y`40V;0Yj!w4m#<>;+zquKsYWv%k!tL0Qg<6wWi!AC1QSTcJG z_}IC&d!6lgz=zgo!)EeF;^!2u2$nTqocGHHrg&c*|_E=7ljpYkUMwcJ+GvlcY`NbHeM|4~RF*m$jCFBb8(F?TNv{yBmA$ z79rvoC5#N2vC&xIelW*c59>I{@|mm9hfPiCux_3-z4)h=3*Fqt@lg^_AnAy%&Mx|T zTQoW@ZwoqfxZ4|^KV}uOoeq#dwp3JEo>xWh;Zoz_72DG7x1ky%JqvT$^PVRA8?Rx3 z+OEyaW#C243VAMMjUj_tJg2}19miE@a z!Lo=?{SXlWcnr@;>)Ccs!j<7&A0g!VDf=R%(DU2sq=n&qkL|;%7d2a2Bxkk96BOm7 zWny-Iruk<(w&{&Fl-F}io{)O?AsH=#ktt>19tbM~nh?V$OLmEs1f zS_#l$MDP0gyKIrgSND@J723Z#yi*~NX6ieq`oV};_UVsWJ^y0g3U?J>;NcY3{0tuG zcNoYl>(&3F%g(G%1t(ijt@nfv&W*bEMigtnH1C#MNKSf^^}c;WJ)FlV|4IjfCw2$p zOuQr=5 z?|NKUE!5aF}?13|RgMxyQgp})(^PzHeeSlGH6 zoBeYsudKOK&~cg1X4iC9uwy9df4YzzhY`KxJhlC60A=?~FCl>$T|K*o#$=;ec9H)c=#agy;TyHj=@W zbfo-a%P7m?P#I@hx^AV4@0CIMzOdAQ1*Mwx9>+aA2tjyx=Y;s6{TAt zz786;uAwOjVFbp*3vL4czD`k_XX5phMAM^z0?zgJYf^DQltr)BF1#Hhq*5A%;H}@P zyz04%C4StAY@L_yGYx?whJs+1$?b{il^5rEn_0PbSWI&W- zCM4+CanP6U!D<~jJTfYm)^;7Hf1q%7`|~9_Gdq*{JhtaNM$iFP-3Bh-y6(8-QfgT? zz-G5;HnvpF5a2BhlPDN|d%O$$=cmEO@PV@M#gfB(`!cNldA)tDIWwKJl57gJusm~& z-J{ocyJ;5K`P;);szb4P8-`312>VgTuv#!;n{xG$D)t~?|8V~YW7AJIq31p# zM?_F(8QruHFK1MEab{BWkG z4EjMw**g#@osc_4z06nz;EeojJH1pBJo#oM;kddSQ2{<~mM$WYLLL>m7J3xqGe!_yNHM;ZnBXIXk@50FvxvF?L=pCun(U@u9Vz z`^&#!E%Fv>HP-r;s+vDj7Wxza_|%Dg!kaVIRr2T9Fi!=>dwqLTf4?yvxz@m|)Eh^% zS6h&)s#mmOCJXo_;6D3p45}`oOwvnugYB?bWwUVY)BgE2Yc$~-$kaZ|8*qcfFI388 ztG(wZ$c>=*=Ucj`mt#@q=kuzjdN8lEOTT^`7n?pnY)Tl|o`|Q)?*Aq9bidv$4anO( zie667#7@%E5$(3NVG?`OmwV5ySyokl7W;b6D4tyl9B0zVU_9G97B)#i1KSpiy4Ke* zZEtN>4=O<*g$Q9E-wxJf6ckn?&>{$*ZcIcg&Hu454YpUL!CDR@*kNt;mVEs~!?H=h z=Pm&|9S;d4mf2w;VrLhl#>MW{jts)#PE7vc$zh1QpbcA`e;6P^9n4)jdusyiph6LfUAs!-w(L?mF@* zf`mkh)y^k~m_xr_fUGCcuIyq82Q*OSV2A!_()gI3p7yc3Y&sOCS=Z)m@rdocXcN?0 zt*1ZnUckfOSD(3PRzB86mo_)mZFI}yD2o^cbSMunUTS}_A%KuPo*AQ~6x~-JX{ug< z0?heU5;Mrhj>znHY|tvxcbkIrB#6Rv4yjsUCVKM=dkK$JbRu)JGu4nPw}ouGe@LTQ z?+t3Na|Y>ap)>qZ?w6M=*d~w1{S*+t6YEd&QsIj)Gmb(~yB*djUxs=J>ulTpD9L^6 z;_#kp<%zHee`Y0KBK2FBVT;m%V;Wmye_~VJhL=H1rnzgL!tl6k5oeczir`w56#KM4kgLJhh2L(49w`BtW7UzMn`)Vm?s za@IQfjHzPq+c#>_>=XP!1yfK6^jFvaq=Hy#Y1x9owqt|(ZSveIA|9LCksW-M%8eIr zhJJfN?o{RbB6WR4kXQy)i7PQQxXV4dGtgqtH-}$V>)iG1hw}K52Q~ckp>A&?|4n~t zG*ZCw3jWa6!TMHd(+-vqKDRy{)HCFqG4|Cm!tY-Lx6ZDs_=)t6F@&oo{Vax|S zl$=jk{jBAb53R8_l1Na7W>Z{4tOgIYzCbyP+qL%Y^ajT^_{C7e`G@pukMO^NKgLXg zSXi}Hi+yvsEP53EgJ_0%Xi#HBC_if|En6NYGf2-5NNh{ z>}{;+D-ieHNWM9$3z;of8jY;#oO{C@o0GdErHl&3*bIEc-nVVr&Bwa%XQ>8t#I|n! z?)j}9=u4LCw^oFH6|TI4<{^rBa}Au=k$(#40A*W~9kd!Tkunkliph*~jFGGevj!!? zD?d5vZV^ybCpatGMTQ9mEtqYySN`Vg4s-X0`&GtP~pebGm(i z>ik}H@mIb^OG9Mhds*lo`cL9Gj(>LSNTR1nP$b1^es4@j9xXFgE9JSmQ* z)Tq82(V?8fl1*57_>#?z0P5W76OPDgc(&j5y+8J``P^yBz#J=naDH#nWQ1#G%zA>( zJE9pdF|)9UtM;cUIDCvLL=BITTZN>Jy~e_w4SLf=kfv8pvzN>4e7QD(Co#o8fFP!p zzfgt*`Ztp++yfk3~8-S8%z^``dGsnd?ec0mg?{K5L2%Ua1{SO z^BOS9r*uqHP3M=aYiZ=$A3!CPkM(EX(J+M16|I$cpDB(ML~l?^vpAv%+iGT}@-5c6 zz-P%|9H9qC)_{+id7~JCFhV-gbs@DYc;(@Qz9s~vpA}h6F#YE+F;nQQ?V^LsTDNWy zcK6DBOH0R#UQN?S;gnAp-3J~RSaG&I#h}X9n*}qa_lBZZvo;ZbZ~rKl?r48{>qh*D4X*4lkb*&_8b|aVQ%#7A%ZZr|rFmC5>vzL3o&g_5} zjKo7@vRh!j=SilXOP+>W^33>-@$)Xfx;~Lo*N{%tU@ca19~UiMI`N%5`SZO)=L@GB z3zMnVP4EUI>~)cXI@d3hHD|I|g{NZRTv`ef@+q*x)lbvOZx&k(>7r@&LUhaqwLv zjq5_RwN9k2gWW03Knm0sf$#uMB5c#yJ40=SQdIiYRIq~pIa_U*TZFj(cUd|~!peGr zlLYuHhrN*%i6CCTl*JrWdMJY)jdH`XV5+GKHnP3_p@vJCH8ILOvY-YICki7Q8>UDe zFh>Uks2clE)aH<&zaX5-viN4D4}~Chv2ffBxiWi0spily`U!kcPk8bi8{ESfGwP~Y z>^N0$qYc`BgFHhs8z-idhspTsYG%;AP4V$;V))vhPM$lOn)n-FQ!6t+*_hHkAV18` zhTprtcjXt7kcy)uhp3%mhP3wTakoMn6i}?u{@7)gGZ5ai)<}?j{-rYHVFe&8XO;eJAtD`)zHvx5yKed*ZmN<15_L zO?t9c0~zs1UaMSZMTf26-SWOJ6!)Uu%Wrsk>CexI>J6F(c4+u_^E$FTNWk|Y!7iVup)qd~iqY2H*8nxk3i^NYqqA=p8=n05vU57-@} zAhaShyaPV>ZQpc5icChXb}S9LQF6ZN=e~}^;(b1l#r9#lVa-lqe}N?4KQ+4N2Z%Rt zyEMW9hQ&z&wW9789jmg|F}SX3O;tAo#zE{DWZe+}^H6xRE8J3*3#nxA>|+*N8$8{W zdMmi$%`WQs!p!YT6gUU$viZ*GBV^I>X9!OnKj6#7`s!qbomEHl8E%&)AfWE zUTb9wr#79LG@}n;iX1;KLr6eci{$=S|9ST9IX;@}(&fLzw=J$aN)yn zOcqUDt!5HJD~oU4rg&1)2jtY%Dve(asiR=Ge)^<_jnsX1yhW6l;ZP~W$yiut8WFoC z95K@%@`dkOd#9kF_A%iL-=6Crx96{Td(d^qbwXFqi2-29UA?!cr`0TBuG}@IxOg0c zXmV}VzUxoMjIMNzuq~o&&j)B>`KaM}w2`HAp4Vd$%lb!t2Rse5$6e03>dbt<(?mU; ztn9+t?3Nj;rY{Pm9996gg-P#yelw&^;CU0?>nl?Kr_J1D^RtD`{9cU0sM+H$3&bC( z0-Q3k)ZxAB)4n$(^+IRMkcYQU5e-xgFrK;D_0=(xgwRZuc9UC?CC$Qs;_-!*POfw38)O>I#aVjkIyU zRf?Jc&|l(br#jVtlIgmN-H9JLCKgjuGwt+or_@tj?lM?;`)94g-kQJ0;R07Ol?1{0 z=umO~+HG&R;ANqJP9Gmte@cCKJX{ajUaOP@+;nNbY->I&FOpTrHKRB9Yy|!^-GgaC zOxPzyiG&h648g%i{|FM}5T)29QCWdj zTo;CvSih+Z%(<5PS1-|0(sB%fQJ`s9a&{&0Udm@}gM`5vgwN1#L&;l;ujt05m9l5u z-hO?)(0PCw{77p)9V`t;!t=_&GDyp&4^nVDUFu9`Ihg)>!Xk*a>a(p4pNp~WvQ~Ef zu(jefHveoHi80aK=-Vuj#hF|RP}`day$>8z2i_CoFD zis4Hz_#L-l83G7wDvmPJ%X`wZ16W8i{I<9ctH)N`%(dJWltc)WBXfVG4zbx{DqpZ- z%)8MOiV#lym zfT(hn7Xy6e@}#KvFL+1*C{`vnwOm7woI-X2K?}P-y)-{)=l~JQa+)y&-{PMYpNO;= zcj%xWNT7+Q;pgT+1O3x41KYY4>fEAoU?76V=eIG)2wF6mg_NC0AvY}hlpqqs;aJV= z?7k-Nw%$q(G+XnU##J9*m&DwE%MZ291*Uu!sRSWTMc%#Fr!f(C2W#JQN^E?D8u9*# zrk1tc6u;eM3^0u{Z04j$U4=?f7+vOdykt8bp3Q_~KQ)L#K0^=9YEsRX#^1HWM`5#W z;XBB2ZKp$pteZ5THPen8>2$#-TCK;4)hBbwZbo+l)w&}X4`#MV?*Y%dy{Du~ks6CD zRYAz}TEu!+j!GY%&BHL(8kz7}A>_uZwf16m>}7v;W&Ut{Pwm0b zZ|jy1L_{g{vd8wUY&ox$D)g|y2B|wy*dO5yc5-Lcxvum-Sq&rmVr;Q{xUxebns{)e z?|(y$eF;Tk(T|rDS#!n67Og(%O;L(|2e^axm)*LdF+&f{ZmDsSrcDdg>N?|YGlP0w zk5~R6(E4eG!3u0;CGC5^1)cPc)EMC@l(GyvMls;-jSVU#mfaMg@-+>0UN9jlMr2xk zDnYCDy@r|wgHnO_0)oOEd@;IE>bVFhT3huA5NOFDyR$mS z>T|qg-#QJ06z<(uE{1dWzO5W9skQwsnO04PW+DIXaSa`hhsP_MPz$1=8Z%i7A^@10 z0DzJkUUgE2Ep{40tkN_!W=?KwO9lZfw`6e%t~}QaW4=u8`~GV0d}36|FM(<_@jKco zYpaX$b*WSiC#aWR1G-I#%9hnkb3=Ymu{G>)cf&&pl&IaAAU&o}maE!JuUc)#3qRcW z9j`wecPOUrvAIZvYP^=!pPb5)p`lOsMI_|sw#rmVLFSO*v9O(fuUX#aH)I1&iMnG} z63AoGZ(7KKJGMUFx5JT-!xT<=Av<$|8{$i|WJ)O|-JfkX9^;n*Z)auW(@M)p8%*R0 zp55+t|5?gTryU-q$fR}2lUg4^@q8It-SlZ)&iCxVu-zGUAAuRzqxc1U~qnKqpa0WAZbP8j<>^R;&2uXy3GopTvKXK7#0~~| z7o={(a1!{w2>)A+lT!R^5{DqZ!uB6_nvMbOvx1sN+!))r9ewgw^HdYk=qZNtR#E(T zq*&)>hQ+Q~#(~*U6OUNuCd!^h?~xsB7d^86HyHijvRwHxYM702bOCu463#sIX?D3a z-c}brj`<(tWR2(;{kAkoPFl;eT=xx9H&#kZ;uzq`7#vY*@e_$OMoV?$T2N=*wC*zo zTeNAqHVG%G#ur$3f6`~=701B}NAItm9{xkGcOO7a*~)or_m`$g^~)F)NKD?gCY#!T z;dhqxKW=yl);*DUW$RgcrQdPv?x;c|()fO(eGVSw6PJZ9DrDzLXkV(XsjKAxnV22qqXA|FPMNp3B5g>B?+v0w( zpNE2N;D2;5TPEb{@mobkj{gxD12_Uik?i@0$FXctKs{y*r!n7m)GY`WF?+koiS!>+ zhEM!gm^dfae_g5bTSOr+dVfL!2-@tlalQT(8BAh@>>|zl%S#Mbf?@_4H}Q zN-6yzE1PS!K=5XrH$^(#$=<@dKt(Ff&At9xZp7*`@7)R=KwSnQbsk;Cl6qM<_k%hG zM|Kg%m!=Lp*r|8MSdR8EkRGL#FMUYWKM|8=`nhKJyvC3Kbk0uWd?DP|N48q12)q~v zevmJpl})xB{dS_n#lXT!2~3#9(KKikCC}tieUOIYnt2M_N0Gw zrDsmO1)Ed>@m6)(%x)|?j4sS0dwb> z?+S-{YnTDXt@9q=sr2Ip3e~BXAC0UWf+65|{Z{O=D4f4wt)a5|Fr58f;UU3Lp~l@U znyg9c*7rH*NttB>v|`QyjNbnA@1(fIMk{msubCg|tBQccRMbHM&j4?d4Pxo5{KKd@ zJ(z_hqWEXaGFCw@+q3^))F5BCm`T1M8ccmU)C5Xd$z-4iWkz$T9D~|Vart$zkIl9{ zQ;H`D^&?X|Lv=kGg>l3JcY@-r+H_^_srh2x*X(U z_bt>wp3kX5?=!=TOSM+7j&NTm|9RgqXUMQ=GIA72LsalKmUm~n0QSLIQH4my z#ix}N?8$*OR71Hp&eEb;jLT<0zsWMBdYNXOhVxgUc|zL7|3LhBaAP$t5#K zMsA8bWyn00Ak0*$P#!EKQoa zn4wFs{4to2!_}C`^df9wFnH#mCd+9}vr`62+EA z9-@ay#$LVdhT0!A6MXMMf^NG#&_@y=vEoEJU8Qwzb+Id~=|JcQXG-~iJxhBU)V-%} z_Wm;v4#7MWvy05CDe`+Gbu8@;`UhtbpltQA57(7_-$#O4U|E36VxMG^WkCdk9?V4cAFvU)V1=tqsSnk#V@z>938!lrggTKr+SvOc z4d?f*EK%HXV$nHCm)$Kyr)gAH_v7CU=Q7yr_b^5A1=t!%QGh5Ta6w|TDvIPmzIMbc z)EpSK_J9{Uj*Sv6qyHeBs6fVqJ#FpaU7V=Q#HeomFS~=yeGOC&2z`cfVGFKe!aqSj zs!CC9hIa^EsG#wHKQZfDx-p%ANWzXdtb`=Y`ZMTHC`$%l4csO5xr5Y4q3<5uLH=9J z@klu&VPiX%3*KA=!8mGW{3}bUOz(mxh(Ka$iP~!N-X4q#iz-ZnPdTXFeE2%f&8_(+ zfga71wNqERBYSS6Bco!d3-?V!*-Sx{2%r#oeOm=5XP-b@^bn_a)@$PvRxus(-A$2V zs127qFU;Kk(M0RV7jd2&GbqBz9mm-GGK zOeQ&->|}1|!)IejT;~j@hsPP035v-5G)5p4;Q)^>_Ky|FPA7pVTq2nUxU}}0>Cgh5 z*sH$bQq02xqYIQx({N)VNtKe^I(HA}t7cLB0xR9Md2KaY4o<>YI&O`3x849n-@=y* z2g^26wN%6JS&Spwvq?XfGAMMm??T#3#C7$N9Rm!Tdg6B6>zq)_ZX$UxSoHR}*+~rk zX#HQx#0k2@)X#oHgPvDY$&|vU^qB}Hszd(OCY!eit?1@&Uf(hgsk%kEHGWhHp`n(IWVWR-uT8}O ziH+mxQp>%O@D?Vsuy8Wf}wf#9YV0jkt@_;y;gn z-74dGaUf0@_1grGqDT{6+Wm)T6){xJaKF`Ebn^K&pXz>>nT1B@k%^4UTG?qYlqQ}v zqU3$UVZu*o6VgAh&Dvv)a+IXzxIqE^JC1IFJx&>wT0q2$h6)IY-0(+vGVr;Vozg2O zj;5iB2X+$tYOdsCrRX1P#;wc$5U!=+2}fbC@$vXF6!KLAY5sGoX}rn!l}7X$^e@t8 zfd}cgHZzYD^$@Tpb$73Bvz-=y#VEyzL z&t@t2_w^YYohdGiets%Ms>F-CzT=Vv-`?2cTt36j-z3POPWBy=0iBc?PRf5X-8ELWM|_rdy_IpWc6Ff!9AZrb|9)-r@O+B1k4%=0XCQMwmm-fz|0QFc51>J9;-1W zasc*{O0soo!Mankx$G%&5Y(J0fhfA~V|*cf-?~d}y&NSe$~eKicWZr~0joF$x+LD+ zrJX#b8DhHS0pJf@Ycxxl+jDcaTP9SrX{NHJ?Pi~`8A19*8DUc%X{^oj6UvN^Krg4| zdrePRxZx&_0s;-$AYDt5{0Mctqi>|1V?_<bXof0iO*FAdGEWnv`Lj1<6> z7%+H0QW?P#=tJO&^>T0f-vGC#;e1nj{bcL+0jGD52{e3uQ~~Rx{i;}=`RWPpLUW5! z_heCxoAf@h0GyX}S>7qzfo=w4@Wk6)WnFeOm- zW8D1R-@JKaQfFT*?;$L7J*fuse_FNq&|hF#h;?|ksT+;lk}{Z|!HI9OW1-kxXJ2*M z#l~;v>~<5CU=cW*@WtYj3?iv?BI6Wp|_P{!gn@CzFfAg0M0}wqqG1h!h<&sp1{Ls?o53Bi- z6-ASVsjsH-kyKs|!4lR<5eX223j6!{^k-C82&2U?&aVI%^Mtx&GR=SIRT&*V9cqy2 z0aoD=FA!tauqG;`A+ddA4lI6X^;(U^9m-3I`oft~;@MkR?UzYn`67X-pLZ}*Wf zeUXPjf%%(OS2Yh(6YW?0t?OI#1!nJF-&VO^lbyl&x-l?A^6E>|XV~#m(#t70`7i&= z(Fsu+8f8J0-cwe3Y}@6=>5A!zXNN56tEx9?JoxX#Fh2j9uS&`pIKQRLW?Ljw##?-B z%7-<$)jfa(7EA7$mO}F!eQ$hzf0Mo$MG?%C+xr)lfJ&((o$S$2xyy}gi0d{sn(hd0 z8-|=(t_s)haJ{u!I89n@UWW?C`o5sZ#Y0}kC_2Wb@ZX50-x(PO;+VaS_-o?e91|pR z&O>mYXP9B==w?}y$=XoB7-oDc@m9k@z1jzu1U3ud!;7@!*0phssx(I$msBz)u` zij6|BO)HqA*jQi;TgOUCFV{jm(@ZO1+R9xe{Pap)ao4R$JC@s7bp{jqH2|ly_Dbqm z^PC^J%Yil??d~7Jt$nj3qNs%Fm#L8mAol3HHy@^&udfHif7pJX+S-^e!CZYv%yuS1 zqOdabteoTR0+WZ8`2MhU4nahdRGT?eTYVzzJ0hSdHGN9vhIuS){w|0kO-T%WD>iuq z#qWX!xGz+BH(ZVubl!&_+aDY&VP|B`KSld2FQ=a@%`By{tM`_TwO(pL095@V)NX0P z4NiEhQ~iNQgzw^Z_2qDz4dOo{Y`DQ$OXqn)LF#RFH8_*WyQ1^$?44wH_s}e-iNA#v z#*MoN>p`l}>EvyMf4%1E7YRF?s!6EbOxw-Y%U0pZOS|mYmacC+eZ;#7^0a^4xf5<) z)xUp3GQryJayVx2c>zhz=7I!##kG)JnH8~rP-fXp;CN6>c9+2ZvVj1mmYIZO&kjna z^pElB*Q<7spc)hP&6GZW?HPBEEq@56(ujXG;3XuYvL?LF*D0H|^FA&c&i7xs88ZQT zSdIh+yq6yYLar77Cbu--{24R#Q4jw5YG=po@vzt5{aT@q6Xy&=b*WbYLM#Hj+d87s z9p{@YWH;vngZumBPF@tF;o6hST3e#pLz%-}7i)86gY(4;d6g0F??LRT zGG)8zLfojJ(`$#N>-oII{9B3k#h&r;0k~TK!>jeCn~oNua>UvokN*)k7i|Y}$ScOk%lqLra@FY+U zd3RAn6BU@7&?pM(B-gU5&RhzlbW@hi9i&wN>}@@$%0j}}4hVz;l1x3hp5MJ_9RDcQ zp$)YK7p+qV>4g)aG$wEAD*b5L=h;}9J#6M9h)6Gfh2Up-mVWy zN*7`NOp=0j>Q%VVF7G=fd_bpE;KrUzSv{n2cl>&WM7DZ*mq8td z2K^vc;oVP!d@EQLOJ{d4rw_Bk7yXcD{R;JN()9sw`_<8ElYB)fkrGO?*4_HQR0--Z z2LvO6mD_=Vf{}yv+DNRvg`diq$BT8_T0C{-F!nSHUEQaJln(HYx-09J5lA1dAnAMW z_`;ZBw|Fr{A#Q|LT#St$M5D4;$3RYIsWK~F@$Nh+=1RmINIL>*kN;Na2c2lUQhLz+WCD&E$$dL)0!oH9qO zcmAP^4^d&M>M-4+w@g|^Qq+0@&}{)JO++J_{K^HhcJ$X#u`yy57LLxE%YHzuQD-I! zi+~gLqXQ}=6`Lz!keKGSXrN8~9TqmapeE1uoFa^;{H`gVccwBg!UO5GVb@hczfO@8>MgOePtNaN zq_;)2u6vi{Xa}2Jd>Qt79ffmpwkd&p>jirzw%L<}ro+7UH2! zM*AJxB9o5TnK0C@$)?40v()OoPdG(ht8IQ{RGUq~1T^b=^en1>z5C0grTc{UI6u*q zvzaC>Qh7LL?3>Ren8Qdb+1xKRDXdsA*?EBHNSevcLNc#FU#u?j)g3p0NQfiB1()J< z<;#y=iK!yD9h(`eM+6Y13~unRf@0tltYg;K5PJTdW1G+^jjLE-j4DJZ%Vit+hoOXx zhzCPo4JhgWy<5*ke1T?!5sBh!m^)}wQT>1Gp}j(t-Ga_0+fdy+k4fJCoyjqV zm@GtQHmF66esygTCAg@;>%TdMmyo^(6Gk8fs+TD#)E_l|#EAmy$tFb1CduE3u2*k< zP^yeD-RsjrkN#_U;iM?7T5hb*I}ZgMCbDWH=JBhtcdXwrRT-3^aspq9H* zR7N!skR`|pE*r?MagcgGJl1qBfV>{XCFWko0yz$fYC8*Q{e-{i3sf0zAH_3hn!IP$ zFMr?<%$A-($rsn@30($c5Q2X>=#r;U7=2aa{<}V_7zIZPb5>_E*GZO57~XMd&XEA+ zUuM|D09MshabFdoZk7D`BQ~?(3wd)@-DUYl4#KFpi86s8%BaqDr?9*T-K(^dt7od# zqhw_wrMi%%l9CxoNp5D6`5jlg@op=3)-Qh}pZ!-$?LkU5!&07Ch;1z-TU4C*F?Bu; zfSsKHJ=CaX;mG6g3HIV~7}}QR5d0WDMBx!~IAZu@4{-(in|#2DdgoeO%hsj<-?;o$ z3=7#cRQzF@X2DSGs-&mR&oaF*h^2ri&;6>x<>NcYuHL7nGSxC2Ti|8PmyQi*ky)=^ z<%7u^83bLRgCi8T8m>EI*@iXnV{T5LcD6HJcx*|Q*VRm+fREOV!}H=vbrZhqRP)zV zf$AGXma}ngVZ$8?n+sv#s90*Me?H*H-`G@kb~jDqVwr!eFoH{R`7&5hIdpLK9N5GY z68>xD9yukuri$@xI5nB8RN1v~2v!tF^5P(O67bK$u@kuT88&?bab!8KY*KSm#prbh zEnC+^<|uw3#kzU7wFeY1@JKZa8A!~rFOKk$;`DzsaJvsmV2(n-=1@pTa>4aQTTuv2i&8!ApJZzlPcBjik%>fRsvPjnbs#3i1RR zx2NFC&m9D7L|m&mDx>Ge*Ftp5?alDc3C?fgwykjz7##=OEQYNwO4t%sHD48!MIR2C z9HZw<$Sums>MQo~vW{QG5Uqk1zsm$;tG7smT$)r6k9)k#yri(Kx0~}iG#$)-ggKOA zWDCGV!@p6xI4?%><|`lHEo774^x+lfJuD4aP;sJwtS(Zxbz&YEfPoDtgjbVA^I@@@ z#?X36=(j7{@$ud#!}_wxE{Y5^|E&t2lLPJQ1T?O9Q`UtBd}sGlSBJjTrt6PPjza6! zwlDkR#qb($XIC+PpY4;E3$dygmkA{_PA9!z?>R)*ikqmsj36B12LOLNB_Sn7< z1&Ju(bV3!UXk>6d7ugbr87swU;d%{m1;;m<6JOcz<2wFz(j)LnaBggCms)je;5AAk zECkX-%7JenWj7yFe#X?1d-GDg9D{5%l>q z>nYZ32i*jk4W#@c-F!`Iry#;!sVCqkcMnoffH4uMc!pE*GMR);z;NuA^td!sf*#tN1F8cn7Y6>vWI*5@i!*DC@Y2pNt%?&SDtOW z!m%CKW<)04V86_>uJvk{d=Cex2_lYu`;{OJj2=|)@olcJeu&?|>vARC|M9lAlAPi# zGl1;$^xxqnm(3PPNWv7DuDO6dw0hUyPCdb?CG4LoW7SI?5K0zN8becw9~^mZ{XL!$ zmk3aMO)B=mBtzMJhWKTZzy|PqxrTi6l6XE2jHlSIkMFL;c3f(wB}VwuYoQeV(}7|S z>j$~g&cdTt=CyY~vA}X;Cke7(;XFCwyq6ZmFJWZ6QW1gI>ik+!d`?O z?1%EqXZ^n1+f(su3)24s@=+5u4`#&pq$U*Fbc1lBXu!Gipu-AaAzxaBScEuBpTMdom=X;jeq%#B+pU2;4ISsFqZ)#9r0rjSq$6|Ae3kbJ z2uZ@my~Ip$RG#%{)=RkcSF0{h&H5Eb*x3F6CGhv3=b5=*NQphMH2^F#VTcXdd z=KDPZ62gA4_G_63ELk3#EnRlvBE?L|GutzpRDwi5N)Ssa_f<-ad?|L@Cse_~g}Vs$ z-ziyls}R*=(fQkKO(N3UvvKxb?X+_!N>R^zE<1)AN zWxiz7wY+%tSd0&@@QELC&}DdD^pFInQunyI&fAY!e@JubHA=asJ~2e5Wo7}HzX-qa zw{Q3XDZ!Z(=v87;=-$O0c35bMTQ?U508W^P`dJrFHk6S{c98QMdWcA@(Sl4wK5r`U^w>rAV!x4Mg&<0bR34>GzvW6<1qtg zcc^_yRMjB++v}^jB;^V>eAjBO2%GGJp}z_E!i^p3F|_^ zQ<<|B5=|rjNjBDez{T(7A6-jUX2mPTmxBA^!m#j_4K_nI{NjfL(c4|j%n`7m-&HN- z{3iY$`CYxA6@2icYl`pHm_C4$BOJ?S1o$ST8t$CCH;6{i*JO9T#xz6O<(02kNuC@b zPblOm!enut6asE*)4NtmNL@NF50w<}MVw2V_wmDHSV%UT>uo>0oXr_R%r_oi8F?@0 z%zcj|eJSmDO38{afkp2%I4(8b7sNzlNeD}$L2h22LuuI&e@6zoC=>xEvPhEc=j|;x zkD(DwAs5Ro7dgyS7xbG*!0ivtv6YLOvyZ86uO*LS#|3TN&{0N4bVIY=m}u>{02KAA zWc;6KO01{3f}ANTajXf^3|fz`3|W1OG3iGaE$=(T9bNY0rg#_Riq9WGD1o7V?Xl{1Uek$+eniXlA6Bqw4g*hsPI z1*XMS3~F@@y|nK|z$eh;cdAbn@@yGOTqwPGpg5zh$h9rm7tr z-Iubpx;;Zw-tpt0<^N2XcwZH%eWRxs&G6KZ zri%LPWvxCfNL1D#+XeLvXRX}ArOAEl9wPYlqeNdiS@cVJDn#z!N5ylrSIS#es@1p$ zqQWA?BU;gq&rhVwRW92CmVTu#x5m>)*u3?lwx@P_wF)R+^Su}pLwDM~8=J-*PjC}1 zNk>PCZfjGGi;dM1+ZMcrjoMdh{kq{;oxL!X4p->y2HD+owCyQs}x-9!yMPi~b< zbh^2tp4o0}l?#yFUGe5&r4MF%l67*?8QyN)HE@`dgMKFiWysTGCHb69O@~aAIsmb1sWH+8mv##L(-;yzu8VRyUykOTt*z& ze&;!gIob6-N^{wF4mdw1Dri@0)1eN+0{f-50CL~6!rsHE?qSw_$Zx*~U0LYd^5uSf z=lK|NO`ykVp_)p2;1U%eOSU>fXBag>=6Khb4%g2v6#ftKl z?XTXt_}7_@=zmhIAIB`!dfZ7lS#GrHY7Y*FJWRF+((KsUQ!`I#%yGrD&IfZF^Z?&9 zqzkHjFN0Km&yrVV0~2t`sRrk()+9CR2{-?hOQ?BmA+!lqZLZLky4B$U#s=BsY+!w( zmg2Sex;JtS1c}+ zRM%rJn$@Prszx{z!>S0E8ZIj;(KfA7JpNMVbye2c-mRy^+deY8QQ%c%@&v%|>_5Ka zkN@+LiizOvBlq8N+h=ZFwzzv=Kjx_o`?I-z%v&?RlU%v5%fpY0UjHH=ma2qL_h+1e z)>;M|uNb-_`3W(TDc4PD1&RK12O7_E0Y51vxoJM~SXQ+Fka)h%#T-ABMkxEb^=tFv z-T(02Uyqg)hr@UCEw|H{rQ$?!ysvE9y*^tB-~brFG7cR){?DIS_58^`%TT`atshYT z{P!PSe@k;)yI~?_onXbxuYUZ4VXpGT^PAm4#|>*Xh}Pzuvi}mFD2k>}N=yJ=IDegF zGHnY)>L@Ixz(4|B>u?-r7&e<2ziI=xlp8tSKGOn1ML4%E7J?uMx|U&#J(taqxP{un zg~D5I(xMuvDp%g1(} z82Z@8dAPU6REl+eXV|g$HsEh+s2?4l2>SgK(ZSi2#p4T43ji@g zw%b5dVkseBE^5>K)L2OY0EtX#*?ag{aOPC^$!tlLe)|3Y8{9W_?wo0fXq3RvVj}u< zp8x$4I)Ef+-(*KfnoGkt!m8)%JIL z`=F2EI8KtPqQaC9K@fCV7*}B3lFs>48~5zmz5UqGCGU&+&LIG)_B=2oZiu5e(Fob( z_GW)}R0w!%lgT_VE$QqQMU=blzIF2>e)p`7mhK~mwr$zcla>JhE>GY~U;Omi<%=AI z>9E^`TwnY1lhzLHJVhCEM#>P`|_A*>Z*v^1;unsolE!Zk$&!~$S!B7V6qB}I}FS855n zi^Hu!nLB6kwECx>c=D;9V%PGUS1+9(cH)N*cc;p7 zUC_DtVC+Dw@|RyUox!loRaV`xx<2Hd960jK3){1t+0oFNO{Fg}bK%b5*!Wnaz2?E2 zXZ*(#$IoA!$}rC9&Hl;0V_pX}799=Z6)s)staa=j=Kw%>#9!k;_eZnw6UPQ}ciqq& za^aPbjXXX)>0;@YI^VIuIIeQXC-m7%8c(Or6b7NiVH{iFu_XDt?-Yb1luQ=+7JpuG z+P#iCmP(HIf9vNjMR^qfFx0)}FaG9at>49v$d>&_EsXis|E?x`knKD4)4uZ_j0Jeb z;Ipq?FfmLM0PwDyF%?xEWkPfo_LjK-ilLr>zham&TrCJ)+bD{%u}m%*6}a+M>^b@N zLEjguMN#zXZtDd>5OjsGHb;9$lfw|>L*rx8yL{a;ak_`b5X$LC4ar8LCH3;MNwrUW zn;jb!!9DAjA;5fT%O3tsK8*kJix1wiW;uqUmSyVs5!U?C!5pQjx-S@>JD0JsjD}!N zhHMEtp4+s4umaZHa@U==tu`|gPjBAF1ILEjZkxLBhLvMIyDHpG8`p(hN^6ZA=%!Ej7BbOc4-V0S?X zf}r;UmLx<~V@U!5prUH+A;(aful^^)(e&qE{z6-r`q}sX=dmp(g?DwD&{JD0moh+S z(cpAN+x3RGnLlfao25?m4W&5A0)X^QS-+rpZCAMO=+UC5?GHYB$Kfs815>-^&uS~h zM@EhvJDRRs^jS=>?hW^RV(q#$E<4#jFxWqq46&c1c$ zf$^e(ljMDOY@9u3X7{dFA3dDbETCrMBx>0_p`{ycTXyS56X_gnmUce%=+j9nS6qS5Wk8_Em#Eun>SC2*7Xx1(vBwxpZEZ zu6_%ww+Z^HEMXV{Fx)h+!tQqv1VOKdB8X|7*{!e2MpLQ*G);LnWkj|K-vO# z-@b&XRF*AWJUBQsXHF-M;ff+po7(=9Z~oJ{pkL>sEyCt@u${A7e)`JE%NYg=fOX!q zA_9OlwYe@|D7h$fGRLc?Rg8}I7{PTo)ocx-C<0zrQryr`chBelY-uf_q=!EAhyPhJ z!0h(MFMR3CHE8_wjxCPn5aSK5zWpwOKug7ZEE;e05=Ya3rAfmuZ8QlGv?5f(GZuaN zj-@_S*z)UN|M=;BlNGbbadr#=by1eIaMV1wYwL;A14jqr4L9CAiy=b%q@gQBT?E6h zmFqUP%}o1!UP+cUSg^gR^FIY`FIU z!x8w!!!MKzIhtl9=~7PFJF3jS5`3r z02o0OGl^mf-}L;pQ9-HkIZyTWzS=!-?)f%U@!=<)|HWg^y6j9@kg6R&Ez8t&kiPJu z$3-b00AT9Mre5t6cQz$>3qh{k_VFG=DN#;1bzOy`h{xl`9PX2`iV9~Qp{oi(5CDK> zStLQKno3g?f}$vj8mdYVsIF-OSGp+WJ0k6T^2!!)zM;39(WfX`LvPG*_FPI8UbNRBR2m(+PMGyq&oP)8^2#_rR02rT$k#-UxY~^&pje*j6#XC5L z>2K78z!$1pJiSRXttGQNw(r<6G&qrzt-t((PtIMq$f%TRgYHr$dicPuZ~tbug5WiU z9^F_`4y~9P*w>x9xTECcWTIypF=k zFF*0bqnr2m0+H<_@&liKz-ed;x@IObx%zP6*b6_|qfnlJOOaDOhYp=cma6wG7*@N_ zGoBKIq}4UO{^wi!0mhleMRvE!iEWQx$Jv0AP9o4FUYFJT~k^bCq{>|nRNH)nNN~hpEI84R?V9}7EMy7 znl4K2VBq#!)*tH|zVGH0Kq{Z=Il28{??{HPmMoy8bM3k{58ip>?5WK-j;pGQ7~*gL zJ3V-`&pXzF?DV0l3hl6psC;&R9cY1N*?|yT%cO)KWKr9h=*j>?h!c)_B(~248 zOe#4!rku@AUXM31mYEZzn`cZxkloe9==204!QdA^vH?YrQZ_X**uP`{iAi1u0BM>s zd*g-;w=bXCP#0DdO)*}u7GR@04bffb8q|8(m}OJmSZ8-3BqQ)&4o zkHMLM;fo^!z1_n}Fr37k^)otVtX({VLQvh%b)j_9*G`uhv?5>>F8NwfkULl8F+SMq z^N=WOFXRg*0GM8gsyKmI9y>i!D(*cpwz9L$-`HTD?Cw2$XyM8mbjH!u>hF!kw!XZ} zd*7WkbJl$AU*=}=WsD&8V&cEP@e_*ANoL5R>{#r?&wlfQ{}VU0HANOLUlApu6<#Qn zFRy=`Y3h5ApWb`?G>)OVadBx1f?|$JTr3B}PTI0e@NRG0`qJj-ciU*8^15dJ*OHLi zeKe~R1fgjk&}duzb{7fP^2 ziKeDT!!Qw`meZrZ-869PJ-63-=r4cPqiQ;ip-Y!7UAE-Nx4-$r69tWRxE_4)lb^cp zCO0luD%k@)qoXOlE@(>-K7gwy4jnf0b-g{kTlV*^SiN%otQqrWwNIb5U`^eT=N|vn zkNzi9>vP5PW!l&L@84Le>RR9aZO5bHxew!9a*XsjER4|v4qzzI4PUtNAO7;Q8!F=HP|_A? zo^tDkb+aR$2k%?c{hv?NfO1JP6^mLw&HZeD<$(u2ylTlDxy-eO3^_>RZoqK zhaAky+jiH_T^_YqKaSjU%Yxzl{(a-+nN!+HAvK6aMkb1FKD@4_!-;j50Zkz~r=x}} zt?(;PKJ&`*IkoeqwXVJAW9vWsaZ%Dqnm)Mc;q6Bze)99*s+8m7H+H#QUdHZ>$0rk` zz2k+_i9_9uSoyi%?HDN;!j6}|Cni}!kBtnGc8{jN^CbHEln(%~Ok-PA`U5AEP8HCL z+Hk&0uJM$Q08l98U6F7Z`Tch`ejlJ2T9#zD$0f@OL6RZAcXT2)YsM5w)03jPGcKPj z3ks~*f!;*5q!Y(+(=>r)(KI8=GHYWo3|D2@X14zF2PM3?SsxUS?Un-ImosCaemW5)N89Q@xzPLoFExyPHU~##rF0M*)Y(TN++o3L}O=5V+grAxRR$F$_hd)UgcVY7H{+iO~al_aHdc zHhs?Y=HQ|m)-TxfeBa&)k1w=gMVE^-c5T`E|Ni|4dBvbfQZvl31C>Pezkl$sqRQ1P zttW@ZZn@_Zb7!_W!VSGKAtjUn0P%boLGgL>W=^U18GP>4k?zsbYpE2a-I- z)`keHWU$NEY@9t~hOTjY_8ffvSneYmm(6IeUw6kndBr%GkIb7|ugk)YS2z9LLr>5) zN15jV0HEi0+jqESQU3GK+>5eyRW=aXR}&&tQ|lgz{V9bI;fCQ<1tVC=bj|K)n~26R z90S1elClZFaQC*J&ibXbQ*T_mF6_0H660gBv;ja@J)KLJ+nXU;mQU3=rV-!`SIZOVcT|L^bW0cp$eiqikmSAV=yv~Yy5`5C2b02EbE z?Ct*Kjh&8`8CgMB3cU~g&yVKJS+IP;G@p|(4SnCP?d42TkabhzpZ?`f`}Wi|MFJ=K zM#3I;M|U3p;KgSieeszyCsY809eegv2QaIv8A0CtOV!!_LwA1sB~?*AnBCGX0Cb#~ z$P^flPt7FXzm0bg1hFiun&TOkVHmntD0Or+$CH`b+K7W?hU3}!(^>`-IgB9vPPThI zJEbwypD4(o=0Vw%QOM{Pab{o*S~tQ_buC%piFB+ zo!{r+GN+&V)h~W?AbQ(PE0)fgsY{i<{=tU&`nW)S=+1QwF1fdNXzWDvD}S?}1oGCC z69AxH>+k*RPu|m2W6oVT`;mPUOBO8(d!2kSdHB#i8DJ~sO^wImE(SX`o(BLZs*E5g z&9Lotf#o->x$D+7n#>D9xd^UtcPO@--``lE& zU}6+GWzq7Gi;Qpi@i)J*WuyXxT>NYQ{Aa$}_7)p94xB-+Ll!f=-TM_2DEyffy*AeN zl|TOC&1;sXCP#H0&`wkbreOMJ_!z(6n<(oJKDTsMUGL7Z<41Phv*YPV(3i_*c}c@6 zMb)y7@7=MhbH%)-1)Vde+x*V>!50q=SyN~Cedu5nLfNZMiQtW#V{ov6jUzBwd0P9r$ zz^VR$N1mjd6oO(nFI2R%Gp1a*c<^ZPAOHY>{tI8&*RKuDXHpKAOAy}WHk4d!gnM`I z@qGnFQ4}CYV);+as5_QPUQ;2rT2X^ysA-rufg=c_shZQ}5co=6eGSL)F1O3ZP}y>& zxi&PB%GHGY1cnWyN^@Ik4vi%1YMY9hK7#uZgF1A&K;gu(Bhh08xrV`qDk&$1{Bn%H z@POCUqleyQ)uI|4!%fRX5QHEIS(cqnr>^M$Sgg%1i6TMZPLDU2O1Rx_9LEc}w9D<2 zD!f`L9+=F=-k`^&95-2P&SeLf3WmqW^Opdz+w-AgCfsnPePZ zE`y+J4Td1bn@@2esO<}%|LnAez;D0*&Byi(%WwH_c;>t%pZw@u3p=MXK(*T#p^%@_xYT@j{TR(CCgKHZ-ctxm8X86YX@Vw>gYgj`6#Usxgy~XVmP#^S?VdIl+$u001CyTsMr-p$VIf z0Tfb6j7lb=+P!WE!>4pBIQM5i`V5I!&Gof?M|b?&zdY1iHUI!PLEZY{Fa7C<=1a0x z7ql0W6HmRcWu*MtCwNm+2am*s^PdZZbhsE*1XhVdmUyvlw6TL0EQIZs zJQdZjOmp9f_{3N;*b!tRjYQ6)8HR(zahneVv2$6wW8Ru&OBOR$@#QCe`RcJ)$C}Ul z=NDHs)v?i%qMqz_eR2auw*g5A(dhA`M*sk)2FEUX2~PDMIX1Ux^~@$+EDlVh@`4Tk zpzOZ!6Jz1&uIU?Y3LO1y_RV+JJ$7){vF^j)cDU|cGk4$NlUzA(YDQjBzy96-GYtJ) zhoasCdwUOD{I{mAlzz{RQV^t&%l&?L0bPuyX$x3=WpN-!(cXYk%A0Rg<8&pw)=(P( zzydC}vs~h8>ms5k5ftThIpUeZjP|Bfp-hluL%?%zB)Oua{=`JOv6&??^cauLVBOux zGJ?{BW93tMy|G-}k*P!|?4f}^0s)#;s^0f2$qU+&3{^A$0QbSXf^*%e#&;A!0Rl|Z zq$o;J6qaQz(=rU*W_L)ENK+Ke+PG4|W_JQ$i98pmsZYlzTn;;dW0hi#vDt+}hAS0V zyCV}Fl_im3ZIW2Qa6FfYRu5DzocZu66>t_I0aP&6$E}+(ay;5$;HBX!-hEBO&+Z?*AryktK8IH2cV8 z&-Oq4haX$M+RnKP{`iXz_}XT));hq^Gk3Cn&B~CA;flFhkL{V4_7-thOWU-yvqB_> zDvq{qefQf+g?sK7-~FFg&jj4M_Sx&_HItS!FwhsziPikl)Z8?;t8>HBx%21EB`oF8 z%P(#|Gy!m?sm9CcKvj?jZd>W|xnuE^W+Jl}t^Ug2Adf!$@bCHxnyR+?fh5V9Y>vQD zg7*B|KYr!$XMXpaXLsgQ69CZK-rg2;D0tmmRkYpMJXUyMDl0i80vrmUJyI#!`* zU|PlwVp;|qpI2M6GJ z_1!`cgvaME7jl}Wy)s^$?Xgd-rQ*@}yPI7ono?xNAMoX}`AAKOrm1A6FneliG@Wy~ zT{S+}-oA;A3uo-;9dB-IaWmAb{fWhq(7|XPBfXWB^zb0JzQ+C!M~5OL_JiR*0Dv7W z3Z?}B*p$4Wlxs}V0RTzG005kOBg1#g`&xBcr@B&{BuETH6-BW-9Ga$~C~C7iDm+I~ z6vfy|`E)SSSj=Zh3}x+(Qa;17tR@R`sen0M`7mg7WyJ*R(kAL{)j>b^f<1`Filf~4;;D7zw ze{LJS=t?)J3?Gq^&tY~uqo!Zq!TtOu^xpbuOBc?u(fIK_+a7yq@3Y;BuYB!aZe7sQ zHhcb;A6)yxM-FuOfr$`>BJXpPyZie|UlY(|0>uX7DhdGOtNrK$AGv+~4PI38xEw+` z+v>y~e&ty3#s}M)0vLigoQ|>}VT>zRR?i+6vDdXPm=Qv?%(iX&$17*P!(?U8=l=M! z%@hd$02a~Gxoqn6o~`3Oy(h-ln-@82BL}x_{-;NtPAgQfdG161`o+$L%a6SD2A zQLL=Gbn%p*?Tn@qDXz)iIIZ*F{`4bz4)xt|%U!cu0>#wmmOXuYyOZngytCO~Gjs8c zf6KZZ{u-R5_x$P`-+TC_WjC##Ti3d}u4UB*>vV5VLDUGE$Y+FH?BI`n#eC)ycLP4l z_yZ;7O$$BuJon3&ev$5|^9;t$OmkY6+0#GL(?4>_@2sn1ba=3(ZOXOWkp6wg>2fQw zRLErk0HYPHq?t22!+yi!iv>lJ-y-f;%N0n9R29|XbQp$#qNvMdFP8X*`Wl`WSi2+Q zbM{VVXEfD}rV9+iFeFwW+@Z$c(a9|E)OP2T{V8jjrap6IxYI>#dZ8z-7(s%|XeNy! zFQq5WKita+0RWIZI}IVgtN+&p6h*7m+Bl9IhQZK`VH&`)Y!0U)NjQ$NHb*g^@dd-O zSdqnw+ZQP1GY%V#0#o2itlh!o)0ueGABv3kpJZ*0ayBJPB0*A`svrnzon7|HmCqE! zm-1NvfK)kC{#VWMa7zAN@%BOA?e!xFfGHn>-b}>fNEUejK)Vwk;@)Tm`z%^AV^P#-0b8OgA#Xty} z)>ZYsn^q*VStqLZ_Ki(&Dnc-K-8eVsww3egZM%29a9|JsWY4x2r?q^-Ut?Q3wefps zci*YLC7liJT`T_(rRv-nMBoSKa#{ z>2rPi@qd32yZ7c>)=;JV%>m7_IO#ZwesnSQ+o!|1^_9tZe$`et%mY6&tUhYO@fGL z3jlyvI-4pA^J3Yh9YGte&6^fV98aSJ+c{$@g(Ihr?LVD(ebqPe%Fe;heC%#dZR`3~ zH#CI~Kl{|<^*-}zx@6Wqg^u?3Ojmm-^A!xj5p^`aTN(d=lSj1U*30QPkYFHdT{J5YA^U=8UQdD zD_+|B?ivz~)ZiouGv2!b!!TbUfT36>89%p;Ls2yz>(5Mc(=9cPlu+h#85=`aDw5ad z$z}8H?adr75Hu6=x`twzc~hH5QhAc1>in)Pr(%oRYWk7|J?PB?{Do9yQ4RX*;e=#Z z+cVKoLG@AGgrrjl^2@Oc{%Q0JWdOj*vQqsqqnQAJx2^z$-Y?G7#N#*u5M9^pcDt%7 zBuSAZSuU4?p@nXOdp%QH8|)-jR!s+@@+NIqzzuS^EAXk0+$^Nx6R|WW z>fwgwwQX(}W%Z_o1N}Jwu-k9Bp)TMoXOjbiV{bH}Zt}WV96NK-*)mnRtoD@Oe+m8)rILxd<~C$<0>;4K2SJi3f{-Lx;kjZy zr=M4xU;!{FXoG?VVqi^(ZK$83D$@F8&3pT!HKBToz;?&AMQ+z)10{-J271$5l0ui8 zI(8&YBFH1r;q#9&G?cIYpQx+@00c<~04Q+k^g4oJm|++sNgBF=VJJz_g24N{KEpIM zRk1sqVnrZuoOL*}iC8cc)MQDND>jBMX5uJ{=2OvJD$dyKx!Aa_YZy*c1A0Ckuik$u zI)47)6j=giX5Znv=vs6MTizm|kV&cV3m62Qr30pG-uw;IYaJ8@0BCAzGEIvhh-ph! znY;Vn;ty%oxnk9dh0T6GJ@JhnK1{o7+83?5b4lwB>o%U+`^pctM@j#T#S3TK33c1c zkA3fFFQ>%|8eLA5R0=Ujn^QDx9X?x0)%8#_FRLT{r~E8h;H|my=70H9A6hi4!_YMV z5Y56Y1j*Aav%^gLt@rrr+bK<%$mC=LX>F|QT7AoxSlgHX<9ALWZ(QIu;#tkbMl-+txLzE{8d{Ft4!V?g)Sw0-qo z|5Z{nZ@^(0s=?N_J3*+$kx!L89(B&rnJ*6QI`c3PV*aZ2%^^lFj2-V8m(SJ|wKYWS zh$d-Ps>su8ZDI49rb7w&@07A}PycEcl$$_IU9e(2pbv`-#o$vl{O(ZH_QXH*^)!aOxgtm6NI|%u;kvF=jvYQ?z3!}L0dOwmf1r>gnMuT7-{S&$ zJ%(Wm%u^JtDRMfS*5AAYd23n(X|a~Velper03eaF zYFQ`%2aBomZ+5Jt0030@id;v|cBjE~!(bT3G)>DiS({ywDmK=JV3;WIfpBdum0;a& z48u!>tS=BKNp65c-OV;CN+tuGae?|SPr2zsBQScjBO+2=NL`SgpMx4T@vQn_&I z^gx)^3+JtvL=e;hR*lD=DDXG}bPG5FO`UBGC}NHe9zWE5Y$&(4J&81Un7LEKOK-k! zZ_iKW+`7O;qnXLk!$$|}rghy=IO9~dLS(gKlOBlR}a1X1Y>s! ziuu{U{HF((H?=l5*US0196iMk9)W1hBl#ZeMic$8O%Rf*(Hc zvtK>7skflAHQ)ZmUoUBDShHfmlh5wcal45S1WD{UaI_{AI&q?>!0{eC*p^T+zMl;H zXhKQ!44ivf2*x&j=B$v5l=^yJ*?qdYjF_?6@A}lIZ<^6qNGAmiB#UzA%&B!QW~8_8 zg)N72s`ki}&*^O7BlAM5*50IPI*y^EeaC+G&=0np&dyspG&t0OHAhGk&$6 zKk}>J9E(>=5sZhv{x2uy&x}n@#`!lpV_At*GMP#pIcA;Rn#i(DV?6n$JA%JH<$sXr znij07%YRTeP{%OTFie6VOw&XVgr;dh5W+Pz6`r>{oj6X&V#OB>XOi(yZM`gslE8a| z;n>)4q^6E57fAw>MPX!Uz~yqMv^(76{W($KX@(UAo*>9< zyt<|WxoEmw;Lhx0T`i=6{nM{wZy)qUfiGs$2u{5Rqk*9J1(i?Jey3tunTh`HZ7*%^ z%Usl196_)p3pzi1*T&j_He>FvsabQU zMy5|~E2*l9(>@zfVhr!x4ga=sUPE1^TrPj<(;xl$|9tC(y?uTAUj1&V($@5+Ey2J{ zx8E==98nFO57+vd9k|idwRl<$DHk?B`m_K3?e>g8DOAM2rc*bKn>zhZ9MA39`ZCV= zzxeSxnp;{;n?o@HFtAl^E{RamA_!~BO^cddIxztNKxtnqS_CM_8E%XW+}Kg)qsYhwG3rh061L!irBB){Lnj$8nLoaWB z>3FmRfZ2Cs-@_bNUOl&K=9GAJGM`CiCx@TyNdo|O?%s9a(4o$b##CMixagtrn4xK+ ze(t}ovO7w713-He%2DHLQ!4xgSJo^1frBAVN0-MV4L(UDYLIJkDv)J7kk z92S1ExxctWUcP)qL(|l|AN+jXv=f2)R)>wr9scc(!^2vs-*7uH++pzLYWY7#kWJ0) zUd9+18GiEFy(#5P92XO(|L?mG?VH-x)>MZ8>-5N2#BKlaW1G&KWwOQxdwvof)HIzY z2~NDAmPS$J!#x84fN0`My*;3}fB+vIU>Gio6`El(i8w)$(UHMyChc;$3xzyQ)A4F6>WMRL zWXl`}008`%b*_q{001;i18=nN81#OGVVG%}XBM^^y4_}1RGA_v49BHP#TN{7r2B_oy_`+Tl4xmCE|s7dCZCwpG!4VB>b`jS^qEhzYEMb= zY*QK-$)HR3_Ca4&6&xoh)}GJj--7``SBsq{eRe!kk|q7EFX16IQx{HaYkqLUoUq5% z(|z!jO`BdFD7;6byksPbsBhFD;#2qBGB7k`R=8+96PGR8+i>@d^Sj!EVm|e|BZ&{) zf8X=~c4}a3!O~@JJCPVUlUZY)Nh>{oP}(p15v=FW7!w@hy6gq>Qb zV|D3FVdtLW#^nf#AUy}S{r2&fb`E4ZX0Lqcn_p>|+SwBE)|CApzjMVDAM(`WFa7I} zo_F{I?wYCp{k1PQ*0j!?zvSeB0wb3xFRO&-)Y($eiosLro#l>gF_v}6v z=d@E}{YS?F3)^Zx^Mx;d8bJt>!3dl$7k2L6o0Bx4M!)vGpMPlW;@MMMTBpvyaY9$6 zW8-qfNyK=0?Dzq3nEB0%#~B1j7BDpB$hPO!Jp5m4<}~ihyjIR`S;oNV_`v8m0DvM0 zMSJ5)_ll$d095_`x)u5L$^w?6D!Q(@T<&XRS{lbOT{kF-GEEajQIaHOSq=n)rD8D< z3R{*XiIq@IeQbQVuBnwP6%=;Q>(y0770RqXm`_a744aLO9VA2`m8x!uWZ`%7Po)La1_yBm(&}=e#u0Ya-kvM=#3Rg%08!SD#{n< zMzqKF#PhNN0NAi*`N!|OBQxCdqhCDHpSxh%BQSGy!}KM8_y?cLCdR+=M_-A{ps68p z@}YH(f1~D{G6H7>fD$!SnsjZ*+MBXnJ{S*0385eqp6Cl_*`~XQ3MS$#gt;G z>13fIDZxO%9SDabk&fx@hc>-DN;+n>)uSku$z&R*v^V-$#*O0+yM;Qk<4J=Tn6Q%w zwYjkBrmm*Fu|?Dkmd{cc(OM(Ni?T=0#$&NP18EC@f+8g*qBU&+M{`%3Y|s>|RnnB2 zLs2xJ%?cvgH#pG}n(c3y&TZeaZ>aR)W%V0w-N@j`Z(col;}oaIPM9E4Dsd!}a5!xU zhRt5G`VT`hQAZ@;AW3_zTud5L?!UhNKPDc&V@dP$&V|!E7b%*~6^lD}?*7sCF$;iA z5C6EQcl@&-xwSJ)ScdL$*tTxjdUXG;zR|P=05IfzFFkc?|MsT(8U(TYHvG`B9zijx zi)_E~jsLyqMJ&Yz003K$Pk=Y^W+@-KmKnO9&!i#^O;;}HSNrs%2x0*XK@b3dX<9Cq zt6VPE)Yb|-M>96N)0vLPTBgp(CgT)M+Z@j1~>%QUDxamXStYnx;?tCi#+FWxypr{jbRN{suZ)R%UwuKYN{fY3*};-VQtaj zJ^(;AF#!NT5Tv?SYc;+D0Ju^C0H7#mz6YAs_Y%CM1HC8SKIogK;c$6Sf>KJ?ZEv{u z3lzm_>*|Ac4A;bgSgs_!J9!9WoeEul$A%j~IlBFKFAxZL^DQ_LccfwNjCRB{j~+hs z)bp>%<>X*me6w4h88(6-02pubq2_h4exEO2$a^VdELZV)+)I`$C>Kl3KC<`diNkTB z`e!yz$lpBs4{x8}P~)G{UOU)7uz&A?7hgGX`?__vu3s5HwVxM${;LB~d(HHfH{UmX zNqftJWh$S+%+LmOlT<7u{#mWEp z&ZDDQ2{qLb4*S^s_Y39B@_C&!LnqT2@z@JL+n4>x)7$rNdl@ke!$K64zWI(1tzIy_ zIpq7;AO7*?VZLbMAye;KxNOC`TjR-8$ZyXi;udQIm~?1>YYo`uFJD~q>*vdYiP7F# zr=6v7wX7z`$A^kXZ@T%WdT(gm%FbUrx{ae;UWd!s&JRdjrSee+tYdDOkbe3`L+)~aK|UUAPWMbD>%?2b#>3~8aa9V z#JuV4!KUdqw<1GBBYi`oE(Q}_Z8*p&GXG!y^7o0mH?%Z_8*4)SeW#D_-!(X%*3Z6Z zvE$pnJ#v_)>42R~W^<~l^YUwZYgoW4mGZ|+@S@)bmt|QTSGJdmF1K4%6j_qqaf-ol zT-SA{)5&q1KNz%3Q&p8fFjB~6yn&#h>zbS7Rin&gl*)ohE4MWE;oFoZFQEYa*rfN8W zGpvm(7MyO6B8jG<)2ywO&pMqBNvs$WucDxoOVf<4n2u?R!sXMVz#|Bnn!I3&{ak`q zWEq^Tt2qZIc<7pP3GFoj5G%YV=)h3SFyR&R_X2_-D1w>*%$?Fml4LTKY6?1c_e`3m zwd{_2A6PXZ(t=rS`*-gdjpuTbVFEC7{tdS; zpQV)3oJM&fHM1JMK{q`yaN?QmqYGExuy{^ez-hA+X5ZnRn_k`d^H+LwfZVZu^~dkM zxhCLDCewyVPVbx_356=BkM2Ema@m?28m7(dYlW1Av|;J9+j^RV0lyPZkH@?FCL}v102Ux1e|p=2?vq0W z1pq+U!)sS9Th!TB-Kb9zh5fW?JM_y$?9`Ds@>-Rx{nh%m#-;$%;>UY`dj$LFeF%n3 z4)px+iI*GdY9?ceY+3XY($SNX^($|?Neb7tw%>c-h9jq<<5u0`u4$C1j-EW6l+3>I zV}mD-)h*}@H81+kH~(oYk?)u>vxU+6yN_)htQZEhW9#0fi{^%Fr+)EE9g-y5?QEr( zI<)q0wQX%VdIR&mnAciiBrCi$K zbm!vZx~B5^v{>PBf~;%YbswZ z!Ib|FR2yRf0NQHw3Go>LxpJ(r89N;q|@{K=AFln9&88)21dp$%TT#OLbhCyIxd}XQUoWf z^^tIEbIX((r-kV8OvWh|Vne4J=FjklYu0u)?CXo~?-~E>J*x|e0RXJA!`t`P+tx3e zcK7|CSeeeaLbWW7XGVLTd*ZpHamfVWH@|u;novG*=YnZn^P8s13`56926k=V($A>? zr2hSz-(9(O0JF?HfQ$P0o)0-;>+MvpfKxlpg=tuO@!>t6wi)(0S~5kF1#% zMwrH#D?g)?(b381=3NId1UYwsC3nGfA*_)8+bbY&& z8GVbQ8HdX)W#ClaYdRVmWRWZL6<*fP|FS=O?vmwQQ{_@TJ2`MDOWtzxnj5Cngu~&< z$;rC9T9&0^v1mLx{=~zN9!b8zrEO2JZo^&o-Me~zTf{{Wn5HOYo;55aSlifKNbTxR zi_=S(uHraa)3wCxef6yeNnogMnAYn$=sKKkNtC=!wyUFd`{C0BP_`w=2Xaz9B`sUp z`BLu=cgys;)+zVS4NYnGe)TK=)myBlUi2^i;?M55ah{*F5X3fb%`IIk<WC#yX5-M@bBSSh8DfAIHTzkQ}BP~*R2MQb0J*52UJ zlv1L^&*+-hI89f$A{KT}U9ePne9Kc${;vKnzC2^WvYMx!D%nC!0le>IUw2YX;Mt{} z5f(EUinL5il9gesHGn5Z21fRsm{>X8^{J1nFF71)F*`9j66Li(kQx^0#imh1%US8n z*V;;=@5N2ysv-dZ7?O}w4MPBm+wZ>hwiWZIR#Fp1UeXb2@%-5hE+!Wn+O>V}(PY8; z^>hA)rq0IpJ3ijND4F=0*M|f1@MGWE>%>nU-0}BA6Z&6$an<||(&?cnVt8=ixo2Md z&FM<@H5wl59gig{mD_N!79^FukajecZdRy;dpX#xA(q~UB6<<%%%_q ztZ+DtAPA1*p-|22&e?t-|8C3fr@CVo-ZQ#*-u$~)c1>^aCMU;_ba$t+g|euPk54XJ zx;Qa-)BTrcH2->n%UZrPbatS*x#2u z`@I5ZKK7w|RxOy;(b1Mkr#_vIzWl` zzQ~{iE%O;sl?B7*M8V|n;MN1jB4kDoMQ@lV;7%E9~_KDXEY>I z*;l%Uman++W1oGnt1;LxbNR;hoF(}^@ACW4H^YoG%y=(%pMCb(d!N15 zI`_YRSFZCrle%`^#mpZ7ptqDybMHU%x+C-mC%wvHNfH-dX(q z+0aZgfqjWowQ@ik%83W6Gi}H69707caIuQ>>$y%ER8as1Y-J_^J?xj3$=z>{Vu$Ic zN-*^`RL~^?S>#rmo9+y^Bj47~`k5|yJodPsRq$8l)xdJ^J-MuU@8O|u`e49>3hLU@ zU0YOhaUYs_4K8P4OnINNB)_Qlp7Ba~C|NiA{?KC=b;U~%h_&6zV|!M^PV60w67*h( zsPTgg;-Az_Zzq~IU>ti79Jt0uF;FpZ0JKK3q*KWmg|@JQ(Pq$xDhNVOx*F%U7&ph= z6A(fYl)m4IbI<%EfEkHXymK@Qsn!@UckV+|jJz34Dhr-`@6dQt(}oS!UyluH9y$cK zax6=o>G)h7HaxjtO-$a&@Lz^CBtA}h7#4_dBeO}w=$6H;xJckwWt!{y)f*4;xY?h& zI>_@0vsqqE4IU(q{Zkh-*&)otZerWc9!}^gwujEC9Krkhn3bM(!+!UKoLR)q*GSMR zgXF)z-6uJjuk3E~^mDPl-P$2)!fdzbkfFcmAbaw@V=L3a3tCPKPYl>T)DzINd4~{X zmXypeVtMQ^>$Dwwcyeh~DSB~&WUtE;j!=QX_JX24rggM$CGh=_p&E@C_8UBC^ zqdcON(#4g-qCXu=8p>@R&Es-@%S>aywqU@Mmj$z+i0|nRZAJfhRf?Z7bVA#T{u z>tfb>83(Z+@}EJV_vxQfCP~Q(yBu>0ea_Vc6;21;_p#!E;4SW!PfiOtWOo z=hrbVL7zo-D=jnD1&NI|2?sY!Axiajzq*&ovZc{K<@);(N%3&T!}cr?M}a#NMowi? zt}gRI<~&zn&PL>7C3gTHLXD{5+=E4?!ThOjL+!{|5+&oN*VJ z37@!fSeUO2$fp{pUU^@x{08@;(aV*QogWqCNpXXxzr=jqL>Tm|7`cND&IU~Up+Ge> z@;h`2kumepy4Yg2gdX45MO*0L{h~8uy6#w!_Z>H?+^L|0jQ{M(NG341y9`rRT$Tj} zu{FWOwBzL`XIL>XgFpSNSsK6@{^0a{B|7Tk)hUO1TVFautf(+e{f`Qe&tsBH^!7Ng zuRDu;HN~4dHK(#B^kW$WT1<}Ii7-IqR?QucV(7^-PL%W?3Fk?z-9Ej$uM0;g8PRI^*+AoHwL>CAgTE589hx z5~r4@XgE0;ve$ljpx1m>X)#~@o2B(&h|VQ%7RjWd1vi7edM1^lx_a1QJ<`GdG3;G7 zK35(aci&2;3F;zKO1x@1Ac+oYVk0i89Z1&swl$YGL9!?a{EC3v<#Jxh|9){tA@kd` zTUCP(IrXs7fi(5g7_M6jF-9lSDre&mH?y0{m^e0w=&|bM{(p=RcxjDo0j!_Qd>N6L0$M6ws(=cV6lBH`2j^4Ml2w7Jl0ZrnGY_+N>@Q zm$=%$>?E2lkiR7JvVGc58d`)}pYB-HY;dE2TJvdYZI`A#t}~2@p!Ecv;_36109YYX z@G|?SOgi)ASHao+U1?FwVh{vS9E$eYE3r}T%-NV%lFFY!a4z~-b@j;=N9$ym34zR5 zthN)MzN+Le%VhFGRgt~R+kvjsf#Kv3>;53c)h;MuPnaw{z}OU<(+PWzZAv5J{}{+1 zgalF^;fXIfJXc=;qXJm|aq5?TI*{vNBn~MfQCVXwDH^7?p$U*P%OFG znu%~QuWS->8};gEb0Dg6WY5(cO7~ARdbw;4XDqOL=#+TW9+}ou7FSa5WB*+pTLTn1 zYv=G5|9Edkc=-AnrHvdcu@$>tme4avY-ITf)-(wak7%Fl+LQDarXSvpzW7`rnaA?m zV*hLR!K~l@@`=-m+njqUpKtPgBLdwNB}wJNzp&WA8Sz|K1ZriE))W%{%G17zQJ=$l z6R+tiY^3bP$$v|Q1Ko49-sM2(#YH^3k&jHb~GX?s|o!v zdHSw2|HWEdgx&E|Jd%UVh6|FRm+cDclgmYFUX!2K#b9<-2&U~r_CgBl0g02j{~{L# zsC7?O1S~e{vy~OBJqdQGozc*sMh?o64%~Xk{G-fbL||Vzca~)Or6~~hia32%uf7P2l$5?Gtyt6eo6fKW+~h%J%(1*KzCp8^ErQfOZVyi$<%YOER}nLWf`sf!cgD1FeFw|(9hTQvUUh|+z z+2+mirt&}e&o~Z@ekgB?Ao?+}6Ypb?;&7r+%QDwg=F5>(09Ag!de#6-B3?Ab;{ITa ziv#+kJ}x06naBlUpGzE`yFI5s1No4b6v84tFb5Q5@|<4n9TxBXBry%lLlELn*e2r* zjt!ZbZ4^_(2IN;PGbDYHYjM7{yImJ7Lc89N$_q*HK>}PzEY9Pjn(r@;K5VgQ^Ht8w zsTy|t2uH#q?%c37r~!fM)qVFp0TR}nUq22>`*-j&E*9U@^J9Yk`TO4A8x}bh(*R&_ z8M>gK0AKOnOd>7?oBEG$z+$l#Q~>^0GR6r#U#BL11l;ZxEFbIiPX#^kIxFHNfkTG4 z<20-f%5doFLyLq)C23*21~7Sv6(77a!5@xNR|9~&Oj7G|HCWfZhtp4G5$qTS{z~fBRG98~=5o_8vQqsa<2>{OiTfc6-#*Hz*hWp2WSqx*E zP-F4d`Eq&IQJa$Qb!l}PYN7?kNwC(X0?ZuXz&fkqPb2Zys`qg(-s*x|xJPhrtkymq z-AFPf)W2Jl-rBwJ!%>oY+agHdG#)oLQK*fA@M}<~WlYU zBflfs_^@1P`O(|%W5z&^*(`V8+t+eB6Sy}g;STq{-l>+Dl{$FVxN#JM?CR?a_D3;+ zdk%B$+OlF~Vq zxIv~y+LF>}xue&Q?ybJw)7i@JE#8ws$xyQ?=9CJV z-|aDpP($7bP)9|nJ22$*q%V3|OKRzL9^KAsJ;@avQ?mX*HEUN+iIyRH*}ZB^5kvpO zIcw-8YL~oZSjH@Gqv%tA@ryV~T#$0Q(CL?qjT+m<`d?iZpif0W)Rl@P6MKefma$lj{#tw~!6-n?r6TV_8;ObHFxK$QUNJKKisZ@eE172lWjkBT&?)B$iVcH**QYMggVZ3s;Iv&1g*JTVzlt>3yHwQ4bPD>gcMe1sJ9 z2R7~(E}OWlcaVbs&;)?4%c4pI_z|2Lz6h2o|_>;)} zZp;|sZo$K7lgE6((k-$X8<&ZPH~K*G;#gJA(eVqzhYbg;{KUaRt`Ofnd!1UpJrQu* zykfwY#PYw_rW`)5>-SB8%;>yIBmx2#k=1T$f_<=MQ_3`w*BaBtabun#l_1B4zRX7P zcQi(o(-XY)kOk1saCX_g6Vaz0vhGf_Qf_j(JPbEZ8}rx0-!j}5xbhF{Oz$8Y(y z0k#1nANKbfMbEn1p%>Xr&}d4HAk;iK z95YQ3g%D_ivI_W?mcZ&aY_BetNQNjP^o#A2_4le8L>|WUNN>B2oa@~dadL&u`d3nT zN~;yDPL&M(w-(fkt~=XKjNKgG)h=|ix#lS&zuGU%k|uB6GDc1$>N6ks@GE-2L?QCi zD4ATm`{Vh_M)>C3?tFy)-qS_##Ys@FcY6>W=h%T};dQ5+&-8B{p33TG^VvqShyDB@ z^5l^CWXs1d0sfo06t*X}qr31q#M5_CBDhx8Ko`2~V$Qy4?{F;aNf`eegZ(Z}Dnssq zr1Szuzy=A?A}QH%cPB%LOMG?8MKCJE=YuTu(?sQn2{G3J4)VZ6=^JK41l%JPuw z_jEv0*UnuK_G<%BDMGctVNdL^BGAo^?)D257ijxO0_0#u+fWwjFktG&RbN8+JPT~t zYw+inVJL10&?=|^5--qaah4&0rpcFgiEg0yUk3ad*MC_k@OH4g;#5k9w-_|nyT2K- zm#CJ1eId*&T|6sJG{xe)oNStiX)5y}Ph)|wFtJxKeW7}P6$7`cWlrG_7%mUXevOoy^NLnYvgwwI!qasGVQV)D zVl6t3@3)@om&V^NR{~{ctTOMoC1G_CBuLCT%le(0;L%vmNgP@AayPLA6TBxF@=7YU z?u~3^5yI}5%fx{DjwTZcI*Bs@8kqN&p$d@W=YH+ihE^*CqX{gQ#IyX5+iD{Ve_Y4L zhZE`srrmWC?0;5h^XJj**Z6bBT|Z(4)H|-Mc2(*TQ6iK=4@KRKr;AyOyW%JA&Rr(X z%i&T6yF&<|=DVY(dEGsS(z2PVEjstbY)vz##;xTj#q4CK#VgVQU#p{XUf&l4$+x6c zX2O3g1_Fgyr=@}@wf>$;eIef#&`SHBFD>gGEs!q36tvrckY@tf9JS=PHpJREui_n0kXC!%{wV3bWK8ulYFfh&EU-!`+m2WP7 z6Jz>^7&f?xGf}r*0$!3=bhJ$QtFSKuVcN0Z(t$iJee}WbmZ|lp@@PgMUMgn8iw$@C zn+2?z{Lt~#xQ}!}l9HKMorP<{`AV1R0*)nR;t}yu?g$_nICWZ;2Xoy<ylg!cLbu9NLhH-Lo7QQy-hiI7D6dqUjO>&8tH# z)I10GJB+~kNG1Q3$`uPzpQ^j+LP9m>hubl!zyX)L*clQ9?x6#C%3Quqo<@wR-~gne zd@z~YuMAWDjgy6z@YZD{o;vumJkRt#Q6ZJkND^gY0SN%EP>ia{=`=^(6k}l-)dEPn$8pl={+g)fh5NK*i5J z+vYo}eBNIgR?QybwH3;S#d|LMMi10mFw6ka; z_eq&LZ_dg(bVr15Ek~M#S&X-Jnea3iH*6W2_Ie9XIy+59TF%3t9)@>s z4$R(bg9wU_rwt!0#A404gS|)Wc#OYA3D*|tQgo^26cm6yjEMH{WTMs31J^J|e{5d? zDXw+VR8aa%?hkS_3X{Kqf_8brNq?bC!wwf0rjl5BIn=uB$FPE-3J`eM12DSoqsp1VuvTGMP6$Xi2?yoA6~RY0>D}!lUxhtwP9J? zu6zLc#C2iC8DRJ5*wHja0lgn{t&4WKYs`g)P&;X?2m9jv6%H#0+qit+gaiFF0?n8Y zkdE=O6SPS6!RI-y*QvERlb?yyC9u!^FJFmeC}Hwb9^gN4%#X^K^AsLqqW+5c93xI& zPx+Q1QS`dsKpJP_yf5&qLreJ*R zrs1Rm^+C%cH;@tA4j$F=vlo0~!|{e{+^W9LZTj&EZFHwND4Ct9<;k;m4IU~eU3@>P z2K^MO6P)BfSTD#fX3kNUU6Y_S$>kmDPcWmo!xDOoZ}wEYJ04wrY83GDx9JIdNNIj6 zs!E3Pcxa2#U}dRFe^X}oSU+`YBuU_891y|7_<2IzRCekMZDd`?!i~xV zZzZo$l_{of`*1mkWY4|v0(@5Ng<|Fysy0!A%RHp!Loe9JzYDA?up> z({=6G5o8B$`t&4%>lVYPhh=;RM||1ZS;`o%o2w4p;;C0rQ+%-wEVrQtFbS( z-aj)vvcz29nc;JUi26ehg zxP(fSYuCgxhwPK7VsKIj$h{l}ljD<7&{64+sg*M&$|Qr1PvFuk=V7E3@x)6mw&)_ihAMM4NM z4zc<~5MuJPsK`B3ErBY*3?XQ{X!ZOWm_A+D8Ru3|qncV_GJ`8dDJ{!VSu^0W@bK(o zd<`)+0ex1bDeN6jIXF~L^GnR-6kJNfI63B^1$x5`fCc>76Di&b27Ph}fKO92T}Vm& z?b4@K84?tyQ1SdyhMI5aZ`+#PMCc&k=eeAuRyMSq!%;ZCNvpW;pIOe6gS-LHW(SL* zoYJd^xX_L?xf*GFFH9G3E4mHf>`wwpsh*Y#WLBYCa*_Ndn>OM>Rg<-Hb>|9JEWvCs zAaDkQIuSLi6M!NrHV62y1_?FXAaW;SE!?g{*Hd5!%sDB99wn6)d$5!CK_r7IERT|$ zD+v}M2t73AAHhZA$br9sa390pxV)iRV?tc5%w6d z^oeaK;~W^}l*(KkiQ!-wtD;lP8YzG_DTt-Zr;gwXa5>N~yG^L1$^i5R6>Dd=gN;~H zML~_8Sk3K4`W`@?&roEQ@;obV6`~0V&ZCRX@+u`pmdruL0y+K_t}~q{Lro0#Lho{n zWinUAtPN${L;%sjfC|9;pEJACn0)o8&3%urwTE{AQ#M%t^|bM5k5iBnAIg-~wtx^P zz=-hh=tw;6mX=4?!4>$DAORP=xOS2p0*sXotPSMHv6Ly{y@Zd-!07QSFcU*r@tFrY zohakJ)i*vmQ%J?e=UD;hOM+JoAH{*Eua$QFipsK_8?4Ksaw7KFkOJO$E~2S$43W`k zt&op1*Vakc=V>q^0BQ4tR;u@UHTtV8D@a&q`%t7fd-;jinQjwyRfL_qRwD1k53etc zf#fpCRu5pLehCE(fe8&41E|~3CjSXNIv0Y`cqx!?e-*M={pQKdlpbeO0E<~B$54+w ziw}kXV71Dv${l3|VXZ-(ybVX6H)|b%(!X1OXcV^pODp{McVMr~(G1SU78EUcG8n4~ zsVMHptDg=Lpvy@4UMKX3YB;5yl#^skW9CtRtJ;!o< zu$Y!!HM>ycT8I%gUm*E=Ui5|qih(y0fbe@??6#{~-;KspViyyBH?WGVw7VkLFa_O2$w1D+1nKlp{UNVhk)KYV++bK|S1vaDDR{5IVh1p^TqB8d*qk(QlQ zPcV{)SA4dr6qF3K&>;$0F%EX|@&!VB^^C#*1dz++1;nq}AzhA?xFlDvf}n-p07B%f zSnWdlW7ldjvj5&wWW&DA$s=gzl7wvD_Gk~hqoAJOhTC_q-o9249O%KXj|_t$9$^Io ztJve%Fpwtm0dRTtDRiTy$6==Y)`zDPKF#}B#3PrajVG7!YfWGF+Mz&==PQ!VU$PHD7U zHVBxRN+ou?L#$AL-A|nY?@EO6iCGqT8%W6fZNPc9QBxpbqe`9zT7p7p7|NWu#AtQV zEEXxixyh!2-o+-b#@(<`N{1@;hHD7bcV@>~2QM1Dcz_k}{1%pl4OxQ$;@gal)cR^~ zr_#feDlqd)iz?J9tUeYY^C@l%%zu3GY$Sg}z(`0SSJz=J?%&FE&^`*l#mcRHr2s9V z)+(l0a&G->E1<7v1JKuLn!fE&PU+AXG)uLwwIZ0jJl-&lq@o8!J5!i=)Juvfo5q;` zGiH$+t14n>6<0=|pwpX5BkdQ3E{ z|6bs?tBVfw`lKb$_RdW!lNkA_kiA8pH7U4YIoJ?jR%F9FkIIg@T5M09# z-5}i? zxEN5)ZBINV9(xY}b>BOh90Dz8IZGi14R~!?e6$hDy_TxS#Z^&9$m{F8yP9dsR@5};V zzwkJ!kSu^(Lt0f$!*Q`$<-d1`9VG!f5vjfUakg8X!>Bc4FVh3n>$k>T((g1^eJPdr zJWH8aTX!H30)Ql2_aJhw(rw3j=7H4#U~L9*(TXU6U@T4(X2d5p*4L+!I9+CA9lQnf zklO50fEo&j9GgH;CzBjgHYqOJC1hF%TqK750!aUXG-ApPLlQgLNJEkWIW;Q@);hQE z9-D(U<4O*FCll0r_UNcUpD_vP+jMm53d#fKj#PT{5dP4GY{*Fl<#1^{Lz~Q#k9}yK zO(k|@qQ$@cg}47!v37a`E79vw789lZqed~*5xtfP&ZdxH1ks>I3CgidUz;c84Z(qy zFJIm&Lzr=$?aK_OC!E>0E?=1zw&S1K8%DF@x+>)A=<&R@uygY0Kt1}{8ReL%b*+EywW;_X?4k1p+IF@S7b32$%N9&(dSK!?Ck+v z{4OG+TKZm_lL@EPu(2ks_)8Bvl-CuYK;o<~H6r+^TE!%TKCle#OAHqY7-ho%9P)!T zBUA>D@%g(qaAm6a7sTrd`YHDuHEdR8fWKWbHj7)Mn&}KGMYv7)8T5(0L_xz8&h?Nf zO`l<7o6(<$Rx-4MA*ni69&))uAh!PIq??|TqZ|dD)=p7NKxF6irD=Kl>^|j4UzYM9 z6-VFoq(9%YAzg(V@Z>yfF)b9-eCh`KVD}*bh)otn%qs{WF3G)mbA(T|g0A|!u0sbG z^c5x2S-jYgmj*E(qC~Y<2C`b~8vQe&>ZW~%uK1N!#6ZqDn2S@gV3d?crRfN;EgV>j z@@;>gHZV($G3&!e4#QnsamJwnqPt$+$QxP7?!)s}?{@xuC@2N4_E3nO6O5==#$t5Ki=LZ($_K*8_-DGOCab=LVCG{J60&fI#lq z$G7XEPVLoUPwZ$UI@DT{l?UeDU{z`3{;T=>$E5y6pXFU9LKow^#Q$;Q=l zp}loN2JnhloNW6tGEg*7W-J)Mxfp~(*S_Wf>kjFV=R*i!E_A;!)k(>-NiLe=;-aSM znX>>cLMz){B1kwt%S<+k^n&?6jPIaaZKVav?k3>Txqt$6d`u^}h zI#6c-q%BB$QowV2Hjuo)ENRRCJe0D|l|x-`R7@c{W*Lf|SlNsz*ziQH@{E( z6{_XkR6xIk-hiNMR7?3?5CZ(T&2pk8obMcn$ zF5OA?f0znP%~*EpAa^A00NS!B#K1IqECWP_z2rCLF#&8wpQRbffibj)1z_wIG}7!@ z4H*hxodT(`t!KGe9c#ZGsU;J1QY1=_kpZy|>sD5|X#!XluB16Z!Y}Dkb!*!cRhIQs z(hT@o3W1QY-Qt^1NlB)@*3((8uEZehA_rI`dc7aQ0GCTr)xcgHLlBh=x((xcC0Hzr zj#9??LLW$T=QqT#zfvJLM2NVVK24IMJ^PS;=zsNx<6pn{p}>`#^X7xj(98m(WDp2O zr2wA*x}T1OA*F@M3oET`C6taOL*|tYr#k?R+4rHgM1c15uaH4AG#0$L>Dq6c+wOvH zqh+e{hLLNaKMNVu%0^6cZ6jN)OY)o*A%I9TT7Hg9^6Cp~K^IY$*2(tG?q(Vh26<*pXv%q*WkR z$>!QAMRfIfw}_drR{H0H2Sc9`zk)PCdb&zg1i(FqtZj%7bD?*eGj6y5rvR8j1MDak zBs$&vroMj|w^NNPyEj%80`wpyoDBJ5m1sLKhNxt4D|SLItzb+j&^o)1TCT3q>r*H5OAhg|q7~8{&#F3_SUI(-WQ71){|4uG#9n<6JL5lwpV=Yk5Yx2{*&_ z@$a>U>$GxoRn{&5zKCF`yX+P;kTC{A@@--Zs3&=sFOf{v-o@OScZ{AUx$3*7R@;HDR$DSJJU_`7%3OBD4Nu$LQLcNuXl{Q`n4r{}I-vvkrQP zBXJ@XO2F@y^$Sh8v&A!SVP6pv5Le=92BQiub36R4nsg_SD#O4St-Oj^ZgfU@JzaTVP6<21o+c7GUE z3n=7M(3p01D&BU%o@Z3vNXD4GRcWNz?G#boB}$>W zRWf~3UM!6LUpBW0-4km;m1IvPcMAGM!UC3*NiJtvcJ|>`!0nez>5u_9ZBp9Vz8f9H z(jjkT4efBaHvLqHfha_)(`QgiqXNVqheC9)G&?$!?0fEf0h}oEZ$pRJo-C?M1%)t5 znF~8L=fb}|WX?$9JO93l0;ulmH5{O~A`Fn;Y%nPCcKvsxy#lB^rsifQMw^Z#xxp(U`lrggrUdBqKuTrhC> zRnsSalKBV^G1AQTrN}@60hh9S0-#^XrwE_vp9JC+X_Au(%P#4jUybZd`)M?EQQc0$ zKJnyCvJsp2%31eEU7i(JH!3 zY}@RubD?MOt5^RW;Xht{5pe}NyOt^XyyyyQWtZB&JVJH*(2d$^bX6yoO5szI0R=_K zK|m6upBec4U$9*_fRkPyT}*k_T#9|3Yh`xsiXGACz_1p@Qj1?eh1|T#lXXwBOPMR> zyO!snJ{jqMU#~?7d`y=#%=r!xIL;EeuK-ad4tW=oh{Q(Jk;FMg!*e3yo-JnW<+9%o zyJYiEVbw0PLI6{PMD-)pH1-KrdZgjh15w`FQU~Y1O-Hle{ws03%UUm!N4tPl7W?4d zMP6)Qv2emwDDFVQVxOHILk9uA-X@!3LTrfJ>`x9u{-;Fnnl?|Rzb!|T^M$oS zLV`QbR?lq>nSh%sA2R{o`{Q9N_|y5C$56(M2%$omfm;WLa43(1|3;XEQ$9Rlong;@ zSKxZPe1Pzy0BIM>>VmiOvrWKF7Jv(|gsgc|{80YA_h5}>lp*}vO!N2Jaa+fW;3XSw zaT6Eec0K{TL25%0*SY{XV>)te1+`7Cm$$TP^+wh-?^Q}_%5$rEu9xi?(-e7l`1ytS zj`xq;d(0Ro{xzQr3+927#OvnAX5-g#tkU#d@UQ}|mYS;>t*Sg&ZuhrDyL;d5+55Dr z!T*@H&0{T9AEt{h!54O11IQZeb?Mdq&cCj3m!jZzstb5-7>kW+AU!X<{`8k>jM$PK zwL-vhjC9La^WJkLMEP@M|NNG(8jGdK{H!fK*Vo$~BzIPK?k@?+MqH>>5+l%T)?TxD z$nJ&O>u^u_IFCgDWrM=oly4fSg;M^vXIed9lRqt&HQ%3Xz=@QwB6|sWnr!+`sa+T) zX#JfknD971==)^zR(fm&Dm`wr#JG>Ze4dUQ$kGlmzyMJkpU+Ms-fmsSQ9u1F>XWGE zzcvru7kMpq{zEd8MDd-@e@cf#6xCVsFCxv7xE1VnJkPIu6aL$X_21r&57UO0&Odbg z!fFcirP;xl)IU&x>fG1{+MN#=pLWm0WE@23ufEZMbTGqzp~$Pcfe~IKB`vE@R@Ez| z+n;dwrcSfjZeZBpBjq4E{x+zF;=Uy8oda}wv;>j5&ep15#@fP%YUit5Z~Ae18lE;< znp>O~x;I?#MYK~(gqm!gOpW$x4q9$hGK{l?O~M+;uFowT^eZeohVHsaqxJ|Gb3UHN z-CY3}*#+V;v7tQ`k9zj0C$cSUb0$`>3g3h7%iuj+nKX8nqSiCSHM;d2X_3Bn1LCCj z6{^6E!p{++H_-0@Ckjw^ivseDH|x>w#vd2aU)H;C7sV=emR{18vbCoRv756vFhOp3 z@X`E@-twmKE{1uU}rcHU&@-bW;!7k4i@R=(vhsSv~BT>}FCVf_sEVf{RI zyu3Q^Vgt;3DuR|<&Q1h*(a*n%8!1NfPiYeb?1q+w41L@qdzfA#f<(@r+_gkgTWu%n z9WB{mT)&7pu4uEQkv|;qJ@6>8i+VUvGAQ}|wr{VBl@{$L_{-BRYfG}cX4JJ@JMGbY zli5<*W3a^IOwU!z2i5OE-M_sf^u9>)Rn*Su+V+;BVyaKfzhpo9>TZs0) z&z)s5^&8ovr(-!8J)adWGKrL_-gCOBe~uS?yxw`D?7c=qbC2g z*5%eV9JoF1B2&Mg!2{#t_cu5LZccYJiARf0k+_Sv(+OiK#X9 zzgPdQN+q+ZD!{(SePEzun7;pACpE9tx){=%Rz(X)q*=40uNUcw_2VTfOwu$GYG%!2S56g5Owi zWtMM(OnZ1&hFp5H)K3sP)Em=7dR=?;w7$4>6P~Zg!kXuzf3S(lYU5f`Cgz=5WLXpV z`dB?x_3e*1w7?nZkIN~nO`fU6T>Tivo!N$*taVv6U6uU7LwhPELcy64!=@bELK9Yw zo-LQTBLNRC9;|~SEl+VRXRT^w--m(;eiW*d(oev|g-R#1!;^lv65^_{aO^7BiL1p% z2|tYbR@C?$MFiZ>%!&Bl*~hj%O;3wnb;^K~Y3+Vh>NH`}td(8XrIhcO^4LAANlqBf&ul9Eqp3;m;%gbhfOEq%9e(ai$WrtAjS9Afy|Se z5%lT$D&V{mWBSpd)PS2o=4mkYO{ciR?7WS?wE*wnRL6;|R8*)a9wMk|C|Uj?1ZTrn#({T4qzZdz!W+rw>oLyL$#Pswtny{>=vom(^ZoBKdjW6y=DT;f;&-(7&)}w;?EZ0Z(AC;Y zS4u1lpVWK*#42C&3%>MAJ%9MoZz`Dsi4HWJ{Kfqj|DEY|0>9orHN8ag0zi^SS=f3ucaX{-#yBq9JW!UV>p0kc*chQ z;%$kpWTB=5vJJ-!d*jmHb=rvUH+*XO^$F*lz#ao{D;_cB!Mnq|<(|Wah~GIHs0ko? zTr|;(~R*MmUie_?AoWdT_(JI8W{PqRl+Nbt+cn5X+Y!~MBG2Ogr>51SIS_D#d7 zinI>@*1gwFKTphTCAv&sxY5WqqJs!trzOGtPa~x>rK3N*+SjZ+-S`kj!G>)bO# zqxey$DIEJl_N20WewBe7g<884B?QH1e=g&Ml^(euO!=GCyZGQ7&Rcgu9#TC&`$FiL zyi--l^&m45ned@Y)s^3h+|^{(qgoqB@iozUj$Fz}g161@!c%Y=tMZC?e%+8UcFmhgJv4ooB~fJSxFM8v$J z^pq{RA)0F=gX@fB4O_Rudhi)y7OsHH?4yXDUfS-cBS4pY@6Mj^?RISW$+CF-P492jY!CrgY&gNtvTw)cALE^GOyL!Z86!0G)f!&{ z)quk#b#gAbO{9R+WL{H{bb@6JO z6AiaPVWFhVZv~g|UTc*G7q4o`bE%u|yZ_@wCA}icJ^af5a*{P*c5&)N zPtd)|clpQCW17^_&GzD#a4&g?|8;i8_ZDM1i^|{rZ!&W;f)lvV>*}R5=;Jv-kNH@s zPp|ZC0o6ZS`&1j6V2ZGD3?X=TL?pU{$mUak4P-98~C&5%a?JURAQxb%2BlqN4g zdR9|iE_<^Q?cyf8D%L|! zTokc>?{xB_?ONyHpE+(JOK&G&LFhtW|M1o1NjlfgWI+J+8n2B#(29C29hg=(E})k; zLL>7DXAKDRsB;6~pdw~^sA$w(Z0k})S$WU?@G_7+2>5zCZ}*PncFO3^1&;E1UAeJ{ zrIXUkECrEK^DT{#8i!z}$_sRpxJst-Q2PYEFG1==zv)E)y))|6&QBL=n&w{J-N)sQ zpImv?T^q8Dp01kDuyER-_4Ei_-T5>v_Zg3#J?|S>iOYEZ%EpPFFZF1W(sO_G+cFpa zk+SDbdBo2bY4Sr>DutKyV~_cB@zX1af_h%YLYmJFk=xOb&z$vLn{vQ&PZP1NT*^_= z^L@+_lc6bgz=q_lj%6PBTzLCsD*r8rX|z{LRKxdOImwS|R^M z3e`L6HeXvO68TW5{t_?GEU5Wkxw_rLn+b6Z8EivZVd;WzANA@Cn$MbrY5g6wf0w&? z&&gz-jyyfKwmE9N^7MYH)TsGClCHv`$@XgxM0iC6k#1B(y1OPK-QC?exNkg#y!xC33#-LaM(b9hsOL+h9t=!1d!CtMhb`#dvzUw1!(v z9HzYi@Bj2gu8vfPL*DGv{|%H1fvRsLDVQ)F|M72L-c?FsP_;FENfNYL@c)-;Wwjq6 z*7E_wS>iOPs`Pq-1-~e@{$Ukm4&|6)mwKOZWuJ36;%3y;Yj-;g(}!8AlCSe=Uc$?M zFI2haSB<9pL~qBEvao&CkR76QE2Gz`xDh?Pi4h*Oh9%mfI09IyK_If@PD~a12_qOY z&rhxXqY9!eqEd1K+_iHfghuMeU%Iy<)b{8v3cY=m)iz2|%a|=*Jzav=e|%amR}axQ z+XRc1lV)78cxT?u^QX71`Bx~P5Wo^#!#cp_WE~A;5&l~BEJFR|QhTnqkGLi1DojXH zu;zLevd?=+!1(mdyz8cOW8KK#BF)p@Vlx4^{K5?h*N(x`(S>#2vpLS@nO_khcbx(L zNezw{Oe&e=_uH17F28l61@_&4Jdf*sI0?DG-fG#8@qe8y*Z1=vzrkA;y0X2>4bscZ zFiJC`XwVo}7HL`#VzLABvl+Ys5l03T4~&-BVEgAL4>?=8MgC4?O1a zip9KFw4QX-2;%|mA$f=uf4*Ddsdr!Z(y?{RtlKDP1V2!8GDjP8K3Z8$DBxO(n;axE6oKN#p~arPHpktrrZXqQQ~WfASSm3Y}2vRGq|or+sO zaHo`zC|Sgdg1j&=1o?DZ4r#Ihg+7}w7IBATTj=s$L50^Fm)o}B3@vaJgb~xiq=)SJtC7e+Y zSu6;sX*m6^`BR+=dWk*((~wht0?9PYgD%YVJ&p?YOePbYqrq+sjWXxtq~gQM@T zXkWCuNB&w+bGssVs0F{f(O1ufoZbk3s^Jp(s~y>ZnJzs_R51^-|rL4M`DJo zDmMz?#Q`yXt)gAq<@NVcz&A_v_9ZV*ON;tRn*TT~-h~g>vsr^w@B742(^)6*(1&($ zcIsy=TZ4Dr4lAv5Bw74%%S0}32)(3ksPmeS2<03=x!xC;U$Xn4+FE_@Jb%_@C|Hg< zvYb0)g<8roKJ30d)GKE#-{+2zQ7Gy>PHesj0H3v&3!K`~w>n-PJUCNf%4P?gq?tZn zGpv}a38+kbQTKp4kY03W6nZ#Y9nL>2e^}dlmyKEi2>VB+W&uk)WlmkkI*|I*N4-Kp7)i{bWe*~1(<0Aufm9@S!(6h zq&sR<;7rGZHXhzZc9jDL621V>M{_mbBPuwiou!IJ72Q)giP-hu&34R*I0PpN!HX*d z3;@qk&*=k|>IA=wqV9*4iWVAY5>q8B+l^F%cGOJKe}tx(j;WUo0SA;Umlr;S3}Nz3 z)7Jji>tyIF^u3bhZrwI;e8wwKz}i0j_;oTPY$6@|R`e3(y9)>3SGAfopC=$Y#!HvxDZ<|c z$I`KPg<+$o8Ur@tt?6Bxj984eBmM{9y1N0xodNm9pAt@QBcIdfCGA?SoBIJF=SNR% zgTohpd$pD75?Q?72B$NvVOXBlHIT`9bD*f6>?f4%vW)oC`K}Ni*-G?>Qgp791Kcqgsvqgx_n}g!Pc*5e?I2_ayHi zHR>nfW21r;E0_B}jPNx>M*SMFRdcz3+=+Gu>MJpY;!Z$-3Te>y`4A7)2XAw#=UwcfJ}2Q6`; zIm|UQ(~V5zZ@CRR0ZzZ@tyUnIF^Mb&&XYn zR+{Jj3zw*Xj#lth9u|47`>c{bH2XW%CzzeM_KODQD!E^Bq_3a$?>oHAB(#=f`^h66 z%LT`6`fWEgx_+myPVIOpmpB5iZhM;kfhDN@_g-&4(ZJy{iDdZ~GLyT`%ixnSKI=;K zwrNN|pV>>j)vW1fG`#_X*pHqqdDgXDbcb-rC3GzRc6<^+R?4{WXAGlRhkePZ=o3Kz ze}2S`!*J)d?%*t^7W6$gX?oO#e~sz5MBRNT_QK3lPH_pJz=u2{0jzAC zm*+qr((dU#D%)FDh?LHumT~ns2Yjwjs6QDGqD-E-ix>_HO8S$lWmvSs3kIX1sFbM1 z9si9_V~GS}e7k(q!XzyUCAuaHuGG9~N?}Tv-EQ*!C3A%TKPtQ!i3Gwwr6rT0@ADB1 z(aWl0cWR3l;xsmoO1$R-oDYX-{i|N}CNMZJ%yepKuxL_%{l$j+^WWP1&S78v`Q-9o zAenX%Vb8?8WfUurN=t;hT+f%yT2bJ=v^<*6GAOw7BDvx{G_1jOUV(+TU&1>d`Wu?^ z;`#$)TttJvLpsXJac3dF+r~yeSy>SznJkUykeP(e7iqqI=AYGe3ci^>?5`^!e5#f$ zdD?d2&|;&lj?5UDw9#h%md=-~_=dtEwD-pYnC|}1{^Hft=Ha~6vD4KF-JSZTW$V?H z7dOagI2@`)kROT84mp)wW5 z7XE5f4QujaNR*z=C(Gwg*>aia{%tIVzM9X>uFEAbJeC9;{;Z)f*vhDGo205V+Y^g?c3v~oS#do`PR@Qyvsw^LQHf7qqt4rs07ByG(HKQX4Yn7dS2wCf$Mtt?4-h<$6LDPyLA|HaOquQPHgPv?BK7kbdLoE14L} z(+B}*eYuTnfRnmhZy#-66{XZ>}({WzT3&?z8!rZLKj`&_+x+!mz3px z9en|L>Q|t)a`ygMlMZ>Vi@te;bNapUu&Kz>ckW)n*A?xXDSAm29*e?&8D#ZZaU3_> z-D4VYRbbcmsq?`!imH!Y;Z?Dle6Ro2H;K&ipG>%Adek7-%y zR^&R4T%@P^`AA$)gk4>Lt5m&S+dBb+y{eJw&TSh#YmVf~2Jr-@4b3O2!|xbr&65z?hOYCf{|2Bt4)hICga@R2N_%p`4+U{(H0);_-#~AY1<%#K*yP`6v zz{WUpM1}TPd&o5qQ$Bxu2)@GW|F!Yoo_NYhtH)BtUjK;r&Hawm##FO%mWtPEcdOWaEm}>kf_Ws?{NpDj{VFHC z*Vw=DZ8^9se^eS-xJ79)X$#A1sHc%b#qW;(9yr$eo{QYlJs@+!-@nAyEMOfxPysl^ z==1hM)2wV7uy3j5ZaC^9CZL(>-E-e;N7|r=+-J@r%FZt-Jp@S_)EM;f*&mM4M|8pK z^~O*f$NH^nbqNqwDrtj&lPyt%Ouie6;JXhvw7rc-NrW^SJGJ7W@7=%W+&Jxcl4T#h zoS|%&jJYY)JjxJhQLpFfCz>bOnm?#G>iIIUroOqFjij0aGW<@2RL9;+Aw~fD&HkB9 zm_k-GR#Q+1pxtof8;Gs3;`=d0p(KzR;yr*wEjaO=6zK(^yR2pooel*I_PNmswU9I$ zl03-J0#bLNKw02xyA$g=yi`MaG&;olkCTt}i%};Ym*2Cw6j%Edf$mlv8x@9wJn!JW z+<3`y)^?G2;jb(c$HD$by?P_MMNIymsWFGoME?xg@ptLeyDP2 zJ3z*sW)ePME9$1R?Ui;@Q_(HN!UGW#2s5ivVg0I@Uw}tq0viduK z21c-m1n9%L+K7M(p^K*$`El_ndKqbkL}fgiSfj-MWM9n=Msl1aq<+ zAjzx=nDT)x|<;&n39MeUNG;kDabv3^1|FG^Vy<+B+#yw14Kc z*B@&h#FoG3Fz&N{rZcx!lusV69U0~;WXETihhf^RW2rBV&@jmo9^`tsPM`8P9#jF= zWHn-fk3s3Y+N?Z9SfHajS#cNHUE1&hz%|dik7vet3K&U-%FBV>u*BWOQ_00Y)PZ93;n|Ud@F4vRw{Bdo7b*avXRVa}aC<@7D zVO23Vfjqzs`;%;89>~n`2((0ZKcL$%ZxfYZh`WC4bFhslZkWsJZF|r4oZ3;y1vQUc z2h^#|PZ7^VEAlm>Twf(vv(q)5cI^tDzi&P|$?Z_3&P17;LhZ4SKt<|y0NJabu0W#u)g z`25EvH3+*oFP$CZqm1m$fBE#1>^xBFpaW6PHy8ev2lm};;8 z)97YP1>^19q2LzVW#BQDp-a@1!=O>o#&Jy*rRCkoaK_3`jpzh|U|+&Q^+lyBwH zdtZ7t@NPH8j=!O-A|9uVMbwRt2d}hwP-aO$qmywT>*S_Uh+^21-eS$u1^Z$AM%(ia^}`-s|?v|K8EW z1P}DCV*FqZ;Z;{bC3gXPv~xVl9g|;3Z5ntA8Hf5Xf07X36-C-FGo?69xf9&YUG}|t zv-0eD#op#@-!`!-id=#Qu;?>e)u?@ozG{wBW0?{^32ar)N#;-1hc<6>`6$b}^&} zJy9hki`^hj6SN=|a5$6qvY914Vb_CG>_tV+C1daV`l&Qgw_gi^wv9fOuXSr0V~m4TAXF}!lLcZT2JV`bniQJVcHZEAbc@1 zz|86w#CuOq5(`8N3OSueR*&YurbZ354cG|~ zR%~RNx5niaAvI+&mNF0J0pKv+CuPzoVyYD%7glXjg7HzKsCcrNv@t(^kR?eWSx2|0 zfF@hz(JCKn%#Wwtx?!-$S67q|Cu*$27Vc5|R|VWE_v%)f;U zdp67PZAAz*?fG(H*EaB?DTm^99(j#^4^8?|ypMw_2%XH&QBQe#uAN9hpf!!$ksDbS zQe4b;^?G*VyD~wr0a?~QQ?L4Q%OTxjK}hSq&1ZU(3XFa(mBw?T%LVgV@`AU8Q^DI+ zEgWw~QYjKQ|0=mGa?l?u7&fkegH}!5ZAmMGzFX~DoXWO5L>OMgrezR3++92SG($Y% zw7XAwmwNRU9uS-%PL=&b9-n1Omfdvn>F2~anvv2;`CuAHu?D$72K5Vr|6YpTFTEbl zJkln<_X*x_VK?SLgxK$KJ}g~6k}mo|{`>A;(A#-yi+WF0n+rB%Il{CiGr1sq)w_6b zyF<6lN}}>L$^yRPz1y+fw)oI->Ag2EF|j}IwK_OH`ufp*xx=1TH49rRNBoahlkkvh zvPH_7`u?AYS_n#c$(LC-Q%GFFY{cMxni5gu`k~S1BSJXiM&f;NG9)P{aE}@0x!WxG z%xT_#KSpr>%j$S{>M(ZSxx%sO!!q<1M}QzMdXM~wA=K&g-i!e<(*M{Wnz!Xpq*mqunJ4yZWFn6AZ!Vt%d=X2N zqBv9o$_yUM|E_P&g$b8*NI(BzXJ6h7VIp~A@#?GmpZTIyk$iiJ)M)IK7}DLXb~2Ee z`HEIahv%!QhW~C;K_9`lsf5x1$&6n2MeM3$hbBxxyF^DnERUq$fM!UE#onW?&L&^I zqF%%w7nvkuYo=!nNWy&^i`Ox+>)I{iZpdbD1(V#F%aNX5XV@EzPTBb1H{rc$@aDJB z=-GLbW~6}6ja>j*u35u^MBy_7QLc4{x)srPJv*dbm2F~`uh5puVKi0>LL`WhkbT3$ zpxJz9O+6v+^HaFkFh<+S9x=#_oYW}eE5GCBDN*6H1mY(B*6_a47D0NQhzn82rQzk*}%xASNm4yCBz3xi_sVPnxCd_%%%Up*yTFGe!b&+RXy zG*u=1`^fMTNm_?~^`x$aR#4A!oopYVhHk;u=3z1~6UBrY+DwI{B|%D={^!XitG8a* zl%Q8ps}V}sqMGjtl8$uGramZ_52?frR3}a; zRJkrxl~C3Y`bdw<5X=AAp1HZ&(a!=E@&wY?u2%7>dS=6bA zcb|nj!2Yo4HMb{4${J^TN7}3`zq?!tw_@nw-xWxm7UZ>=pxS}m-ECVsF9f|!Eucae zFjCrSKRFs!t`Wf-Q0`}Cr33QYJa;0+<$>;aS);R5uHlH44H2M{fg_9tpfnucH+O+< zxGvxQx~9e(#AGv`o!$Py4!P#aUCL7}w%F(<%d=;z7dGVdjD6_$WlT~vGdzFL$_Mr* z7!Hrw%s?pgT6tI#sVB?4m0$Vu*A89a+_J6ynV~}w-tRFUD-ajrg8TN!i6vY44L6=+ z=OSB)9p4Tp{u>|#=r|fVadel{d2}piMgdZ=O&L}U6Z?%n?8lyTfvg5tF`gp%IwiV? zy_=_sii$;Aee3S~NVqIa1LI@A`9hN){9w6|W4tOU^>^N|c`0QzDLfJr23wuI1@BcO z5Pq|>Ct;s)E8baO^P1il_6p||QP}iw;B6LWhj@z6#~OKWEv)^h^gFQ)Q~gP)eNncyBp3dhJITxJhI~cy?l#pK5FD}gCWTwRN)-)sC&Um7P1Y~#L>>><#@^4q_7bTbQ0xP?KLOum6TQGyYUTJpQ z9x_o3GW#u(V#6q~H)F_3=9^tBB%a&3eepmDV#|p&G~P#k_+ZK9=ox-AR@w;X%#rV_ zcJgi@d#iE*LFqG-GU(R;+W&3!l5tJu4XSg>>0dY-1zH9RV{1j8VtIlYs&xMHuu-d( zQH__X32Ot}mY_;5eiX|D`SI;A>y>+h}~80}JEYm6~(KhIHH{a2cJdQBz6*Ni{E!o$G{2scC43 zW((U?d$0o-ldZO&Q6|bbd$V}n{oSq-n0vM$MMZJFT9A#z9_fJARN~zqEuz!io$UFL z#8fa_(?A%+>YcL1H5!N$g0ncf1?~Gy3=yF<>D(MUscSr{p)=f z6PiY3TBEUaXIz*F?b$g5 zg%IPN6|R#n4$srC9$T!VG2CyLu;qRpJ)QsCp*5T3S0Ny6cMCSy{M=j#P+axoc${Tq^GNk-fX#v ziCbu?%21^a+({kpr%3z|zdX+1$o9|6WEPL8KzI`A9;UEBCT_KqrQOYznYrZt&^tC?e%&YxQXK~tzM>3eSLnR3A1*jpP`|x znfLs{>0~W*-9oZNFbUT$-273L2k0Xa zK-(n`mkwp+mSQb6Mfk%JexCd|1=7zsroENcB4?_sLnkeg8JJ&0U}0jEOh%fgX%tQD zo=1H61H6gOZU&MV+qmA!lJCDy~~2Q`3Y5>`!@u zhk}3jCQYS7G0EX=89WTnPmxo*vBcE`^J+NFW>S3%Uedmb=FSG z7@Q4TVg+phO1Z9A4l&*7+^YnQ4{OVJzR;KKS_AbIn!*s9!T2Z2HX?Cq6gcwY&HoZ ziTaS5ucU>}2N(W`XmcKHJ+t6hB&u1AH#;)iH}>f@X(|5ZMDJ_RbAoFCeE=9GG@?&H zpJ3NhO$JfB*Lw=EPQWEo$zq*#N+-b|UY~%$7V+u_p4VEmYj(WyPp^> z=s8yIx${_oG8C}SVxaCej1k25G%m0=()hv2kGm?pKN0ACh#e|De7;8^eDT+pweM?k zlUekSZ)A?Kj*5ACCeF6icj=2Eu=Ywd-M#kz5<3Cs@ZrTTtM;jdK|dBS>2)pB8~x8X zUv%X^y$g4dmr9a2%3TP#U(I*m57@ibZB~*})(RWS+P1uP%ed~13#sM`W}-0}`pKiO zg8i{RLeqn&kT&3quEGnWcn|UNzWMNB$ih@V=trL!$6HX_|Q`*Xeghd9G*JYaI@OJ9{VWUbxUiN?RHVKup-H0-2UPA9g;+Q*BML=)?_0RR+Y%A zMtEuUO-_q8T(OMa?2v-AShNua2)(jA27U+r)Y@jFo=)a85Lo+M+iiXS`5N8 zowF7IGg~VU4L;+ZpR>1L$EyI?%$m5*iD#C(lDnGEv2w=ka}R8#e5hq)4OOgrcAkf zh3v_Fx?-DO%(rY3E%j5hnQ*TIp|!@uo$fEEQKIpRZ?MX@_i2nW#jIUL^pa=6U~4Y@ zF~Sf#w;?MZwpcnc>Fm68_bR#PYh!16CBu_1TFXAj$BLrs03LX7e};pTW!9@K^7RIYd>IxOC` zR8~FK2{b{W^;UU0%r%$KZVO~6!rsHCIFvHSpaTgE?8C~2`$JlG^GamxyU&)HZgLaaFquOBj8%*rc)lpf zvmGU!&-7zel^t^=1UH^Cywgs^Jk0P8n&UxMK7;>-E=`%?U6aO;I=+NHj<*kYo^a$F z{Bcf*b^WXb9T(!YTUPsfXB}N5klAm)26C84YVS9)R#u-u=J_x5-y9I(o5K1j>;i^GdTN!p&Apk!KkZYv z=Q7pNuS(Q@@imN$Wxj`5krZzy%9g6s(jOhGsX_Qi+{;!gxRXR8=z9V_4cP%Ab^O}5 zi3(|K0tgklW6ozz$aFG=`Pz%S^_;uH#p}LQ zT?iocjd9LhNMpgy%e$6`4EJenP=@e&##duF2u ziytmnF=(zz4nc~n-ztbH0`=0Lhlu-?yp0dS&S%c)Z)l>a_Z-`CO0-Ug2$VYSr~Cfh zIXN0+1pOwRnDfW3j$o2kFV)EUk3GOYJg@&0*n-Ae0cE+pAN}>NR3jqMYNpoCqam?M z&e5K3h+)cf**2E`&>TScwx_b>`Fp6>4{c&$g0|Os)-aWFTW`qHmdoSKS; zXpWAI#0IT?&0ehB4EKkXs@cyr;B0ioip(|cB5|!^H%jRA(x8DRg3X zR0E3}24?i#K;NfC5RX~C66HG+<4VP@SD=x|6AY45>3G&M=5GQeon|AoE?uj~z{ifS z?=+AxvDb>HN>3?e{ox@v+?-lRGqI6PHYtxJXl?M1n^B52bWU+JS_i_CdV-xu0eX77 zF=3F!pb!CUax`iMYVtZ6uq09S69&dGExru)bN`q&x2TSN(=-~Sn=&l^HS?@lRcB~F zaF(t;GcEp&ib7x{3jBiLM$16F$6bW9MrdwDl5UX2N}t1OTqIPuQpmAJxVi`{c9nRL zZ-+m_ypFNYO*Y==EnbI6=0-Q&L)iHCuStj1)m7OzTJgddjiS4?x8NcGwnyA3R!|3` z7ko-@`2fn$i47ulP~l6ckjfX>W9se>;NnjonyFZePxM`P_*zO`0>D&BU<$@1I!Zu~ zNadZQArI$w(EeJ;n;1R2uunbR#yxN6(HW`;BvEuaQNEi>FI|Qqfs2ef`cGF@07V!} zlhE|kIGs`E8@X3ad{law@J8|cuO@$<{1Fs=Y&#_L_+wl8i)Qv~B}x!auMp^49@CT~ z=p%3z{KyimuV)uTizjhGOv!zL5+T71kGLTUk}J;9|(Biazm4(TB@$AdDA3 z;8q4e+9VR~4i~xpLA;BuWf~TGZ&aT5x{f&ca75=UWt=jUJrmAcWl9r)}k2&#O<}~Hr+UeN;7W&hIEN>sI zYRl^~%hQ*h5Ij8ce)A_-sxiiK;@>ffH%t?9_CU}CU5o+@gR}cR8M!3XV|A;$~#Hm&f8|drA=tj|o50cM)hc-?aEpuyzB+8NT*2sfxydl+w z#v9`ZDhkOD99Ldnn6T3sGmU>08WZE)_*6R}}8o!V)z=qRug6(B^^ zA`BN$=|nh<;R0kl@+sQ5n1Ws>ziJyVdpzRY25m%0nMtDfIsm%BXZrh7UdOM78QGwZ zPAsDh`Vw%_|9~NFhZ{~F{UPts{e3mtIA7VMgCcBf7Mr@eicJwPK$7S9y6*n(u^viq zE$IOT&XA(bN9hHhG~pnLCZ!toAUC_Hxmd67eb!j+sKq*|k!$HXzPH^$b5G^4uECt+ z=5@iLobByXJ6&R}o{)hk4hf!h^1vdqb^R=MJT~4LsFJItoF(?zT<;a7{WIbVPKgRA3!)SK9}Hvw7%2WyrLMT`tp40eCD*zol3xd-Kv5H0>!Ss5UJp=XV= zKQ)GFB&4EUB)oRlUWJX3F))HvoC0XJT#1t@%5So=fd~>RL~&z@;D+hR8J-2X4u_Q} zw&1mGR~bhIy=$1$?228~V^U=S-TE|MLz?yXE;nn0J^|A}yal0OOHx0nyFN^TAM8ds zWz|-@)A)6mI%8C$0x;++69TT<9Hhgf>^8iT&p~DggGq;TVT2EZ{Mhcf*f0^+D00Jh zv9RUlO0}iA#pB(lhk&OltUfL%*M;msPV|Z>(+JShU^=u-LuPCn9;A(-^uHYHXQn2h z@_(J2_sPv-{3n;UBiV)#UIaS*kD(=I9sxnTmd?iafP1I5{fAFE5X{|K{a6nm?>mh{i@Na|4*ozScBqQlQz@c}f7WO~efI={V4d;Xi)+Ke3 z7T{(HvU9yVP?m~ATV=gHviZkW1r)9493Q{0+35$w$un!>KKqm`{W~+9{*W9?GBWRn zR*}PGG0N@_SLwf{Qv>g@ouMw>^sh(Z`bMRqtgLLai7j~-pcm)#^pt5fQ7s(TDM@}6p;lgVK=h9F=8)Z@Y;QFFSg8ZK zT`nGS^4YnG!;mW@5c(GQ($;1Cz)kz{C*5MLK^e^iSWRsC(%Ac5KAq2br5q5TY1;ZK z*2k|>dgjA(TcO19a^AgI|q@ zG@Res*1+*7Muui6^BZ8Y{JAtgEbL8|%5=lQ-kwK>bbAzsy*JjDMx;z*+VV}^vPocA9s@nnJKGkwDJ@d1!&?Tc42y|1 zCNUiGMR@#i)Y;(5Y?JHU1mBw%_R|2+QbxHu!fB6|FID`$(fcgzo!qrbcrl0`Ghm^` zxo>6^qhdLYvo_X43aEf71u^*qz_aY53WSODWMBOLUro9aGH911W$ugjRxa*bjPX&O zbK>vM*K++M%?&aUS1q}3E`@&>nf^8XBG(%IClhG{74m-G;kvk�F^E0ZvPb{F`B` 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 literal 0 HcmV?d00001 diff --git a/docs/evidence/framey-vr-2026-10-25/result.json b/docs/evidence/framey-vr-2026-10-25/result.json new file mode 100644 index 0000000..7221d00 --- /dev/null +++ b/docs/evidence/framey-vr-2026-10-25/result.json @@ -0,0 +1,189 @@ +{ + "schema": 1, + "time": "2026-10-25T23:27:34.130334+00:00", + "controllerHardwareVerified": false, + "wornVisualComfortVerified": false, + "sourceCommit": "cb9ad1b6cb7302008783d5f7fe42fa77a4dd43af", + "before": { + "battery": [ + 99 + ], + "dashboardVisible": false, + "stats": [ + { + "activity_level": 3, + "operation": "status", + "version": "2.18.2", + "version_timestamp": 1791331621 + } + ], + "overlays": "---- OVERLAYS ---- \n'system.HeadsetView' -- 'Headset View', 2048x1280 not_visible VROverlayType_Basic \n'system.toast' -- 'Toast', not_visible VROverlayType_Basic \n'system.cursor.ibeam' -- 'system.cursor.ibeam', 64x64 not_visible VROverlayType_Basic \n flags=0x00200000 +premult overlayhandle=0x0000000d00000002\n'system.pointer' -- 'system.pointer', 64x64 not_visible VROverlayType_Basic \n flags=0x00200000 +premult overlayhandle=0x0000000e00000003\n'system.pointer.secondary' -- 'system.pointer.secondary', 64x64 not_visible VROverlayType_Basic \n flags=0x00200000 +premult overlayhandle=0x0000000f00000004\n'system.standalone' -- 'Standalone Overlay Manager', not_visible VROverlayType_Basic \n'valve.steam.desktopgame.0' -- 'Gamescope', not_visible VROverlayType_Dashboard_Main \n flags=0x29A20000 +smoothscroll, +premult, +keyboard, +clickstab overlayhandle=0x0000001100000006\n'valve.steam.desktopgame.0.thumb' -- 'Gamescope (Thumb)', 256x256 not_visible VROverlayType_Dashboard_Thumbnail \n flags=0x20200000 +premult overlayhandle=0x0000001200000007\n'valve.steam.desktopgame.0.layer1' -- 'Gamescope Layer', not_visible VROverlayType_Subview \n flags=0x28200000 +premult, +clickstab overlayhandle=0x0000001300000008\n'valve.steam.desktopgame.0.layer2' -- 'Gamescope Layer', not_visible VROverlayType_Subview \n flags=0x28200000 +premult, +clickstab overlayhandle=0x0000001400000009\n'valve.steam.desktopgame.0.layer3' -- 'Gamescope Layer', not_visible VROverlayType_Subview \n flags=0x28200000 +premult, +clickstab overlayhandle=0x000000150000000a\n'valve.steam.desktopgame.0.layer4' -- 'Gamescope Layer', not_visible VROverlayType_Subview \n flags=0x28200000 +premult, +clickstab overlayhandle=0x000000160000000b\n'valve.steam.desktopgame.0.layer5' -- 'Gamescope Layer', not_visible VROverlayType_Subview \n flags=0x28200000 +premult, +clickstab overlayhandle=0x000000170000000c\n'valve.steam.desktopgame.0.layer6' -- 'Gamescope Layer', not_visible VROverlayType_Subview \n flags=0x28200000 +premult, +clickstab overlayhandle=0x000000180000000d\n'valve.steam.desktopgame.0.layer7' -- 'Gamescope Layer', not_visible VROverlayType_Subview \n flags=0x28200000 +premult, +clickstab overlayhandle=0x000000190000000e\n'valve.steam.desktopgame.0.layer8' -- 'Gamescope Layer', not_visible VROverlayType_Subview \n flags=0x28200000 +premult, +clickstab overlayhandle=0x0000001a0000000f\n'gamescope.gamescope-0.cursor.0' -- 'Mouse Cursor', not_visible VROverlayType_Basic \n flags=0x60000000 overlayhandle=0x0000001b00000010\n'system.systemui' -- 'systemui', 1860x2048 not_visible VROverlayType_Basic \n flags=0x08230008 -dash, +interactive, +smoothscroll, +premult, +clickstab overlayhandle=0x0000001c00000011\n'system.vrwebhelper.controllerbinding' -- 'controllerbinding', 2400x1350 not_visible VROverlayType_Dashboard_Main \n flags=0x09228108 -dash, +scrollwheel, +dash, +smoothscroll, +premult, +keyboard, +clickstab overlayhandle=0x0000003800000012\n'system.vrwebhelper.controllerbinding.thumb' -- 'controllerbinding (Thumb)', 16x16 not_visible VROverlayType_Dashboard_Thumbnail \n'valve.steam.gamepadui.main' -- 'SteamVR', 0x0 not_visible VROverlayType_Dashboard_Main \n flags=0x69A28000 +dash, +smoothscroll, +premult, +keyboard, +clickstab overlayhandle=0x000001a400000014\n'valve.steam.gamepadui.main.thumb' -- 'Webhelper (Thumb)', 300x300 not_visible VROverlayType_Dashboard_Thumbnail \n flags=0x20200000 +premult overlayhandle=0x000001a500000015\n'valve.steam.browserview_MainBrowser_2' -- 'data:text/html,<%2Fbody>', 0x0 not_visible VROverlayType_Subview \n flags=0x69A20000 +smoothscroll, +premult, +keyboard, +clickstab overlayhandle=0x000001a600000016\n'valve.steam.gamepadui.keyboard' -- 'SteamVR - Keyboard', 0x0 not_visible VROverlayType_Basic \n flags=0x31A30000 +interactive, +smoothscroll, +premult, +keyboard, +2cursor overlayhandle=0x000001a700000017\n'valve.steam.gamepadui.bar' -- 'SteamVR - valve.steam.gamepadui.bar (85370000)', 0x0 not_visible VROverlayType_Basic \n flags=0x69A20000 +smoothscroll, +premult, +keyboard, +clickstab overlayhandle=0x000001a800000018\n'valve.steam.gamepadui.barpopup.85370001' -- 'SteamVR - valve.steam.gamepadui.barpopup.85370001 (85370001)', 0x0 not_visible VROverlayType_Basic \n flags=0x69A20000 +smoothscroll, +premult, +keyboard, +clickstab overlayhandle=0x000001a900000019\n'valve.steam.gamepadui.tooltip.85370002' -- 'SteamVR - valve.steam.gamepadui.tooltip.85370002 (85370002)', 0x0 not_visible VROverlayType_Basic \n flags=0x69A20000 +smoothscroll, +premult, +keyboard, +clickstab overlayhandle=0x000001aa0000001a\n'valve.steam.gamepadui.volumelevel' -- 'SteamVR - valve.steam.gamepadui.volumelevel (85370003)', 0x0 not_visible VROverlayType_Basic \n flags=0x69A20000 +smoothscroll, +premult, +keyboard, +clickstab overlayhandle=0x000001ab0000001b\n'valve.steam.gamepadui.floatingfooter' -- 'SteamVR - valve.steam.gamepadui.floatingfooter (85370004)', 0x0 not_visible VROverlayType_Basic \n flags=0x69A20000 +smoothscroll, +premult, +keyboard, +clickstab overlayhandle=0x000001ac0000001c\n'XRService-CameraOverlay' -- 'XRService-CameraOverlay', not_visible VROverlayType_Basic \n flags=0x20000000 overlayhandle=0x000000790000001d\n'XRService-LiveCalibrationSummaryOverlay' -- 'XRService-LiveCalibrationSummaryOverlay', not_visible VROverlayType_Basic \n flags=0x20000000 overlayhandle=0x0000007a0000001e\n'XRService-PerformanceSummaryOverlay' -- 'XRService-PerformanceSummaryOverlay', not_visible VROverlayType_Basic \n flags=0x20000000 overlayhandle=0x0000007b0000001f\n'XRService - LHTrackedOverlay' -- 'XRService - LHTrackedOverlay', not_visible VROverlayType_Basic \n flags=0x20000000 overlayhandle=0x0000007c00000020\n'XRService-InternalSLAMState' -- 'XRService-InternalSLAMState', not_visible VROverlayType_Basic \n flags=0x20000000 overlayhandle=0x0000007d00000021\n'valve.steam.gamepadui.frame.menu.85370005' -- 'SteamVR - valve.steam.gamepadui.frame.menu.85370005 (85370005)', 0x0 not_visible VROverlayType_Basic \n flags=0x69A20000 +smoothscroll, +premult, +keyboard, +clickstab overlayhandle=0x000001ad00000022\n'valve.steam.gamepadui.frame.menu.85370006' -- 'SteamVR - valve.steam.gamepadui.frame.menu.85370006 (85370006)', 0x0 not_visible VROverlayType_Basic \n flags=0x69A20000 +smoothscroll, +premult, +keyboard, +clickstab overlayhandle=0x000001c400000023\n'valve.steam.gamepadui.notifications' -- 'SteamVR - Notifications', 0x0 not_visible VROverlayType_Basic \n flags=0x69A20000 +smoothscroll, +premult, +keyboard, +clickstab overlayhandle=0x000001c500000024", + "pause": "power.pauseCompositorOnStandby=false", + "timeout": "power.turnOffScreensTimeout=5.000000" + }, + "powerRecovery": { + "timer": "framey-vr-5e068da08ef73637-restore.timer", + "script": "/tmp/framey-vr-5e068da08ef73637-restore.py", + "originalPause": "false", + "originalTimeout": "5.000000" + }, + "deckyInstall": { + "message": "Decky Loader v3.3.0 is running as a user service. The VR menu is experimental." + }, + "panelInstall": { + "message": "Installed Frame Control on the headset. Asked SteamVR to show Frame Control. Select its panel in the dashboard if it is hidden.", + "version": "4968ad070054d005", + "overlay": "valve.steam.desktopgame.2001947813" + }, + "overlay": { + "state": { + "interface": "IVROverlay_027", + "visible": true, + "dashboardVisible": false, + "activeDashboard": false, + "texture": { + "error": 0, + "width": 0, + "height": 0 + }, + "transform": { + "error": 18, + "typeError": 0, + "type": 5, + "origin": 0, + "matrix": [ + [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0 + ] + ] + }, + "input": { + "error": 0, + "method": 1, + "scaleError": 0, + "scale": [ + 1920.0, + 1080.0 + ] + } + }, + "imageRead": { + "error": 24, + "width": 0, + "height": 0 + } + }, + "beforeStereoSha256": "5d0635d02e44d7cf2d5c249e72ea01c5cd161996427c1012cfd1c42fa5aa5751", + "input": { + "clickTransport": "IVROverlayView_003.PostOverlayEvent", + "textTransport": "CDP Input.insertText after OpenVR focus", + "controllerHardwareVerified": false, + "initialText": "PanelSettings\nQuick actions\nRead saved setting\nFramey settings sample\nExample setting\nStored by the Decky Python backend\nReload saved setting\nAbout this setting\n\nSaved setting: off", + "savedText": "Framey sample\n\nSetting saved\n\nDismiss\nPanelSettings\nQuick actions\nRead saved setting\nFramey settings sample\nExample setting\nStored by the Decky Python backend\nReload saved setting\nAbout this setting\n\nSaved setting: on", + "pointerEvents": [ + { + "trusted": true, + "x": 594.6666870117188, + "y": 280.0625 + } + ], + "trustedOverlayPointer": true, + "diskSetting": { + "enabled": true + }, + "reopenedText": "PanelSettings\nQuick actions\nRead saved setting\nFramey settings sample\nExample setting\nStored by the Decky Python backend\nReload saved setting\nAbout this setting\n\nSaved setting: on", + "reopenedChecked": true, + "quickActionText": "PanelSettings\nQuick actions\nRead saved setting\n\nSaved setting is on\n\nFramey settings sample\nExample setting\nStored by the Decky Python backend\nReload saved setting\nAbout this setting\n\nSaved setting: on", + "sliderValue": "50", + "textValue": "framey-ci", + "scrollBefore": 0, + "scrollAfter": 0, + "nativeScrollMoved": false, + "finalOverlay": { + "interface": "IVROverlay_027", + "visible": true, + "dashboardVisible": false, + "activeDashboard": false, + "texture": { + "error": 0, + "width": 0, + "height": 0 + }, + "transform": { + "error": 18, + "typeError": 0, + "type": 5, + "origin": 0, + "matrix": [ + [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0 + ] + ] + }, + "input": { + "error": 0, + "method": 1, + "scaleError": 0, + "scale": [ + 1920.0, + 1080.0 + ] + } + }, + "passed": true + }, + "stereoSha256": "25944a3f3ffe0c217ef25cbc3f5e08a104f9d8901075b755c928ec5049a4cb3c", + "compositorChanged": true, + "mirrorSha256": "44d193943ca3164269feeea38f5cbfb0d58cefb79d6c0e8231eab4a5069985b8", + "passed": true, + "after": { + "battery": [ + 99 + ], + "dashboardVisible": false, + "stats": [ + { + "activity_level": 0, + "operation": "status", + "version": "2.18.2", + "version_timestamp": 1791331621 + } + ], + "overlays": "---- OVERLAYS ---- \n'system.HeadsetView' -- 'Headset View', 2048x1280 not_visible VROverlayType_Basic \n'system.toast' -- 'Toast', not_visible VROverlayType_Basic \n'system.cursor.ibeam' -- 'system.cursor.ibeam', 64x64 not_visible VROverlayType_Basic \n flags=0x00200000 +premult overlayhandle=0x0000000d00000002\n'system.pointer' -- 'system.pointer', 64x64 not_visible VROverlayType_Basic \n flags=0x00200000 +premult overlayhandle=0x0000000e00000003\n'system.pointer.secondary' -- 'system.pointer.secondary', 64x64 not_visible VROverlayType_Basic \n flags=0x00200000 +premult overlayhandle=0x0000000f00000004\n'system.standalone' -- 'Standalone Overlay Manager', not_visible VROverlayType_Basic \n'valve.steam.desktopgame.0' -- 'Gamescope', not_visible VROverlayType_Dashboard_Main \n flags=0x29A20000 +smoothscroll, +premult, +keyboard, +clickstab overlayhandle=0x0000001100000006\n'valve.steam.desktopgame.0.thumb' -- 'Gamescope (Thumb)', 256x256 not_visible VROverlayType_Dashboard_Thumbnail \n flags=0x20200000 +premult overlayhandle=0x0000001200000007\n'valve.steam.desktopgame.0.layer1' -- 'Gamescope Layer', not_visible VROverlayType_Subview \n flags=0x28200000 +premult, +clickstab overlayhandle=0x0000001300000008\n'valve.steam.desktopgame.0.layer2' -- 'Gamescope Layer', not_visible VROverlayType_Subview \n flags=0x28200000 +premult, +clickstab overlayhandle=0x0000001400000009\n'valve.steam.desktopgame.0.layer3' -- 'Gamescope Layer', not_visible VROverlayType_Subview \n flags=0x28200000 +premult, +clickstab overlayhandle=0x000000150000000a\n'valve.steam.desktopgame.0.layer4' -- 'Gamescope Layer', not_visible VROverlayType_Subview \n flags=0x28200000 +premult, +clickstab overlayhandle=0x000000160000000b\n'valve.steam.desktopgame.0.layer5' -- 'Gamescope Layer', not_visible VROverlayType_Subview \n flags=0x28200000 +premult, +clickstab overlayhandle=0x000000170000000c\n'valve.steam.desktopgame.0.layer6' -- 'Gamescope Layer', not_visible VROverlayType_Subview \n flags=0x28200000 +premult, +clickstab overlayhandle=0x000000180000000d\n'valve.steam.desktopgame.0.layer7' -- 'Gamescope Layer', not_visible VROverlayType_Subview \n flags=0x28200000 +premult, +clickstab overlayhandle=0x000000190000000e\n'valve.steam.desktopgame.0.layer8' -- 'Gamescope Layer', not_visible VROverlayType_Subview \n flags=0x28200000 +premult, +clickstab overlayhandle=0x0000001a0000000f\n'gamescope.gamescope-0.cursor.0' -- 'Mouse Cursor', not_visible VROverlayType_Basic \n flags=0x60000000 overlayhandle=0x0000001b00000010\n'system.systemui' -- 'systemui', 1860x2048 not_visible VROverlayType_Basic \n flags=0x08230008 -dash, +interactive, +smoothscroll, +premult, +clickstab overlayhandle=0x0000001c00000011\n'system.vrwebhelper.controllerbinding' -- 'controllerbinding', 2400x1350 not_visible VROverlayType_Dashboard_Main \n flags=0x09228108 -dash, +scrollwheel, +dash, +smoothscroll, +premult, +keyboard, +clickstab overlayhandle=0x0000003800000012\n'system.vrwebhelper.controllerbinding.thumb' -- 'controllerbinding (Thumb)', 16x16 not_visible VROverlayType_Dashboard_Thumbnail \n'valve.steam.gamepadui.main' -- 'SteamVR', 0x0 not_visible VROverlayType_Dashboard_Main \n flags=0x69A28000 +dash, +smoothscroll, +premult, +keyboard, +clickstab overlayhandle=0x000001c600000014\n'valve.steam.gamepadui.main.thumb' -- 'Webhelper (Thumb)', 300x300 not_visible VROverlayType_Dashboard_Thumbnail \n flags=0x20200000 +premult overlayhandle=0x000001c700000015\n'valve.steam.browserview_MainBrowser_2' -- 'data:text/html,<%2Fbody>', 0x0 not_visible VROverlayType_Subview \n flags=0x69A20000 +smoothscroll, +premult, +keyboard, +clickstab overlayhandle=0x000001c800000016\n'valve.steam.gamepadui.keyboard' -- 'SteamVR - Keyboard', 0x0 not_visible VROverlayType_Basic \n flags=0x31A30000 +interactive, +smoothscroll, +premult, +keyboard, +2cursor overlayhandle=0x000001c900000017\n'valve.steam.gamepadui.bar' -- 'SteamVR - valve.steam.gamepadui.bar (85430000)', 0x0 not_visible VROverlayType_Basic \n flags=0x69A20000 +smoothscroll, +premult, +keyboard, +clickstab overlayhandle=0x000001ca00000018\n'valve.steam.gamepadui.barpopup.85430001' -- 'SteamVR - valve.steam.gamepadui.barpopup.85430001 (85430001)', 0x0 not_visible VROverlayType_Basic \n flags=0x69A20000 +smoothscroll, +premult, +keyboard, +clickstab overlayhandle=0x000001cb00000019\n'valve.steam.gamepadui.tooltip.85430002' -- 'SteamVR - valve.steam.gamepadui.tooltip.85430002 (85430002)', 0x0 not_visible VROverlayType_Basic \n flags=0x69A20000 +smoothscroll, +premult, +keyboard, +clickstab overlayhandle=0x000001cc0000001a\n'valve.steam.gamepadui.volumelevel' -- 'SteamVR - valve.steam.gamepadui.volumelevel (85430003)', 0x0 not_visible VROverlayType_Basic \n flags=0x69A20000 +smoothscroll, +premult, +keyboard, +clickstab overlayhandle=0x000001cd0000001b\n'valve.steam.gamepadui.floatingfooter' -- 'SteamVR - valve.steam.gamepadui.floatingfooter (85430004)', 0x0 not_visible VROverlayType_Basic \n flags=0x69A20000 +smoothscroll, +premult, +keyboard, +clickstab overlayhandle=0x000001ce0000001c\n'XRService-CameraOverlay' -- 'XRService-CameraOverlay', not_visible VROverlayType_Basic \n flags=0x20000000 overlayhandle=0x000000790000001d\n'XRService-LiveCalibrationSummaryOverlay' -- 'XRService-LiveCalibrationSummaryOverlay', not_visible VROverlayType_Basic \n flags=0x20000000 overlayhandle=0x0000007a0000001e\n'XRService-PerformanceSummaryOverlay' -- 'XRService-PerformanceSummaryOverlay', not_visible VROverlayType_Basic \n flags=0x20000000 overlayhandle=0x0000007b0000001f\n'XRService - LHTrackedOverlay' -- 'XRService - LHTrackedOverlay', not_visible VROverlayType_Basic \n flags=0x20000000 overlayhandle=0x0000007c00000020\n'XRService-InternalSLAMState' -- 'XRService-InternalSLAMState', not_visible VROverlayType_Basic \n flags=0x20000000 overlayhandle=0x0000007d00000021\n'valve.steam.gamepadui.frame.menu.85430005' -- 'SteamVR - valve.steam.gamepadui.frame.menu.85430005 (85430005)', 0x0 not_visible VROverlayType_Basic \n flags=0x69A20000 +smoothscroll, +premult, +keyboard, +clickstab overlayhandle=0x000001cf00000022\n'valve.steam.gamepadui.frame.menu.85430006' -- 'SteamVR - valve.steam.gamepadui.frame.menu.85430006 (85430006)', 0x0 not_visible VROverlayType_Basic \n flags=0x69A20000 +smoothscroll, +premult, +keyboard, +clickstab overlayhandle=0x000001e600000023\n'valve.steam.gamepadui.notifications' -- 'SteamVR - Notifications', 0x0 not_visible VROverlayType_Basic \n flags=0x69A20000 +smoothscroll, +premult, +keyboard, +clickstab overlayhandle=0x000001e700000024", + "pause": "power.pauseCompositorOnStandby=false", + "timeout": "power.turnOffScreensTimeout=5.000000" + }, + "powerRecoveryRemoved": true, + "lockReleased": true, + "cleanupErrors": [] +} diff --git a/docs/evidence/framey-vr-2026-10-25/stereo-left-panel-redacted.png b/docs/evidence/framey-vr-2026-10-25/stereo-left-panel-redacted.png new file mode 100644 index 0000000000000000000000000000000000000000..ecb25dd08279edb4086794275c4d3386e9625824 GIT binary patch literal 109110 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/framey-vr-check.md b/docs/framey-vr-check.md index 8d20ee9..291388b 100644 --- a/docs/framey-vr-check.md +++ b/docs/framey-vr-check.md @@ -109,3 +109,7 @@ the same-plugin navigation regression without a headset. works. Record comfort/legibility, controller model, any haptic behavior, keyboard behavior and the command's JSON separately. Confirm battery and release only your lock. Do not infer these human checks from synthetic input. + +The watchdog's creation and cancellation are exercised on the real Frame. +A forced host kill/network loss followed by timer recovery has not been fault +injected. Its saved recovery script remains available on a cleanup failure.