From 6e711e0f2d929d84a0080ac19c17618794bb6ba3 Mon Sep 17 00:00:00 2001 From: ai-tdd-labs Date: Fri, 3 Jul 2026 09:41:37 +0200 Subject: [PATCH] macos: build & run Kula World natively on Apple Silicon The Windows->Linux POSIX port left the recompiler and runtime almost portable; two small platform gaps remained on macOS (AppleClang, arm64), both guarded so Windows/Linux are unaffected: - runtime/src/autocompile.c: add #include for getenv. glibc and windows.h leak that declaration transitively; the macOS SDK does not, so AppleClang errored on the implicit declaration. - recompiler/src/main_bios.cpp: the C-compiler probe used ">NUL" (Windows null device). On POSIX that misdirects the redirect and drops a stray "NUL" file in the cwd; now #ifdef'd to /dev/null. The ucontext fiber backend already carried the _XOPEN_SOURCE/_DARWIN_C_SOURCE guards it needs; SDL2 (Homebrew) selects the Metal backend automatically. Verified end to end on macOS 15.5 / Apple Silicon: BIOS -> KULA WORLD title -> menu -> 1 Player -> a 3D level that rolls under control. Adds docs/MACOS_BUILD_KULA.md and a macOS gameplay screenshot; README notes the port. Ignores the local dist/ .app bundle (recompiled-BIOS derivative). Co-Authored-By: Claude Opus 4.8 --- .gitignore | 3 + README.md | 26 +++++ docs/MACOS_BUILD_KULA.md | 167 +++++++++++++++++++++++++++++++ docs/assets/kula-world-macos.png | Bin 0 -> 75083 bytes recompiler/src/main_bios.cpp | 10 +- runtime/src/autocompile.c | 1 + 6 files changed, 206 insertions(+), 1 deletion(-) create mode 100644 docs/MACOS_BUILD_KULA.md create mode 100644 docs/assets/kula-world-macos.png diff --git a/.gitignore b/.gitignore index f77307f6..cd81a53b 100644 --- a/.gitignore +++ b/.gitignore @@ -88,3 +88,6 @@ games/*/* # Per-game memcards created at runtime *.mcr !dummy.*.mcr + +# macOS .app bundle (contains recompiled BIOS-derived binary — not distributable) +/dist/ diff --git a/README.md b/README.md index ce0cefeb..e36b8d81 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,32 @@ game-agnostic framework improvements (see `docs/kula-world-findings.md`): 5. **CD controller version** returned the PSone `0x97`; the SCPH-1001 sub-CPU reports `0x94 09 19 C0`, which the shell's CD-init requires. +### Now also on macOS (Apple Silicon) + +Those **five runtime fixes** are what got *Kula World* actually *playing* — and +they are game-agnostic, so they benefit every target, not just this one. On top +of the earlier Windows→Linux POSIX port, bringing the same build up on **macOS +(Apple Silicon / arm64, AppleClang)** needed only **one** extra build fix plus a +small POSIX cleanup — the recompiler and runtime are otherwise portable C: + +1. `runtime/src/autocompile.c` — added `#include ` for `getenv` + (glibc and `windows.h` leak that declaration; the macOS SDK does not). +2. `recompiler/src/main_bios.cpp` — the compiler-probe's `>NUL` (Windows null + device) is now `#ifdef`'d to `/dev/null` on POSIX (it was misdirecting the + redirect and dropping a stray `NUL` file). + +The ucontext fiber backend already had the `_XOPEN_SOURCE`/`_DARWIN_C_SOURCE` +guards it needs on macOS, and SDL2 (Homebrew) picks the **Metal** backend +automatically. Result: BIOS → title → menu → a 3D level that rolls under +control, running natively on Apple Silicon. Full macOS steps in +[`docs/MACOS_BUILD_KULA.md`](docs/MACOS_BUILD_KULA.md). + +

+ Kula World running natively on macOS (Apple Silicon) +
+ Kula World, statically recompiled, running natively on macOS (Apple Silicon). +

+ ## Philosophy — toward 100% static recompilation The goal is simple and absolute: **a PS1 game should run as native code, not be diff --git a/docs/MACOS_BUILD_KULA.md b/docs/MACOS_BUILD_KULA.md new file mode 100644 index 00000000..2d57178b --- /dev/null +++ b/docs/MACOS_BUILD_KULA.md @@ -0,0 +1,167 @@ +# Building & running Kula World (PSXRecomp) on macOS — AI/dev handoff + +**Audience:** a developer or AI coding agent on macOS (Apple Silicon or Intel). +Goal: a native macOS build of *Kula World* that boots to its menu and plays in +3D, exactly as it already does on Linux and Windows. + +This is the macOS counterpart to [`WINDOWS_BUILD_KULA.md`](WINDOWS_BUILD_KULA.md). +The pipeline (clone → user-supplied BIOS+disc → extract the boot EXE → build the +recompiler → generate BIOS C + game C → build `kula-runtime` → run) is identical; +only the toolchain and a couple of platform specifics differ. Read `CLAUDE.md` +first — the no-interpreter / no-HLE / no-stubs rules are load-bearing. + +Verified on: **macOS 15.5, Apple Silicon (arm64), AppleClang 17**. The static +path is portable C (an emulator, not a JIT), so Intel Macs should work too. + +--- + +## 1. Files the USER must supply (copyrighted — NOT in the repo) + +Same as the Windows doc. Place them relative to the repo root: + +| File | Where it goes | What it is | +|---|---|---| +| `SCPH1001.BIN` | `bios/SCPH1001.BIN` | PS1 BIOS dump, 512 KiB, **SCPH1001** (`md5 924e392ed05558ffdb115408c263dccf`). | +| `Kula World (Europe).bin` | `games/kula/Kula World (Europe).bin` | Your own disc dump (raw 2352-byte/sector, ~255 MB). | +| `Kula World (Europe).cue` | `games/kula/Kula World (Europe).cue` | The cue sheet pointing at the `.bin`. | + +Do **not** download these — the user provides their own legal dump. + +--- + +## 2. Toolchain (Homebrew instead of MSYS2) + +```bash +brew install sdl2 cmake ninja pkg-config +``` + +Verify SDL2 is visible to pkg-config (the runtime's CMake uses +`pkg_check_modules(SDL2)` on non-MSVC, which Homebrew's `sdl2.pc` satisfies): + +```bash +pkg-config --cflags --libs sdl2 +# -I/opt/homebrew/include -I/opt/homebrew/include/SDL2 ... -lSDL2 +``` + +If that prints nothing, add Homebrew's pkgconfig dir to `PKG_CONFIG_PATH` +(`export PKG_CONFIG_PATH="$(brew --prefix)/lib/pkgconfig"`). AppleClang builds +the very large generated C fine; `brew install gcc` is optional and not needed. + +--- + +## 3. Clone, check out the branch, drop in the files + +```bash +git clone https://github.com/chrisking1981/psxrecomp_kula_world.git +cd psxrecomp_kula_world +git checkout claude/repo-commit-history-1oayou +``` + +Submodules are not needed. Now place the three user-supplied files from §1. + +--- + +## 4. Extract the game's boot EXE from the disc + +`game.toml` expects `games/kula/SCES_010.00` (604160 bytes, ASCII magic +`PS-X EXE`). It is the `BOOT = cdrom:\SCES_010.00;1` binary at the disc root. +Use `dumpsxiso` (from mkpsxiso), or any tool that reads an ISO9660 filesystem +from a raw Mode-2/2352 PS1 image, or a tiny extractor that walks the ISO9660 +root directory and copies the extent (each 2352-byte sector carries 2048 bytes +of payload at a 24-byte offset — Mode 2 Form 1). LBA 24 on this disc. + +```bash +# sanity check +head -c 8 games/kula/SCES_010.00 # -> PS-X EXE +``` + +--- + +## 5. Build the recompiler + +```bash +cmake -S recompiler -B recompiler/build -G Ninja -DCMAKE_BUILD_TYPE=Release +cmake --build recompiler/build -j8 +``` + +Produces `recompiler/build/psxrecomp-bios` and `recompiler/build/psxrecomp-game`. + +--- + +## 6. Generate the C (BIOS once, game once) + +```bash +# 6a. Full BIOS -> generated/SCPH1001_full.c + SCPH1001_dispatch.c +# NOTE: use --emit-full with the phase-2 seeds. The bare positional form +# (psxrecomp-bios ) runs the Phase-1a boot-slice validator, which +# does NOT emit the full BIOS the runtime links against. +./recompiler/build/psxrecomp-bios bios/SCPH1001.BIN generated \ + --emit-full recompiler/seeds/phase2_ghidra_seeds.json + +# 6b. Game -> games/kula/generated/SCES_010.00_full.c + _dispatch.c +./recompiler/build/psxrecomp-game --config games/kula/game.toml +``` + +Sanity check — both must exist and be multi-MB: + +```bash +ls -la generated/SCPH1001_full.c games/kula/generated/SCES_010.00_full.c +``` + +(One skipped BIOS function, a COP1/FPU opcode `0x11`, is expected — the PS1 has +no FPU. `games/kula/generated/SCES_010.00_full.c` is what makes the +`kula-runtime` target appear in the runtime build.) + +--- + +## 7. Build the runtime (the playable binary) + +```bash +cmake -S runtime -B runtime/build -G Ninja -DCMAKE_BUILD_TYPE=Release \ + -DPSX_LAUNCHER=OFF -DPSX_ENABLE_VULKAN=OFF -DPSX_DEBUG_TOOLS=OFF +cmake --build runtime/build --target kula-runtime -j8 +``` + +Output: `runtime/build/kula-runtime` (native Mach-O, links SDL2; SDL picks the +Metal backend on Apple Silicon). Set `-DPSX_DEBUG_TOOLS=ON` for the TCP debug +server on port 4370 (`set_input`, `screenshot`, `pad_status`, …). + +--- + +## 8. Run and play + +From the repo root (so the relative disc path resolves): + +```bash +./runtime/build/kula-runtime +``` + +Console shows `psxrecomp: disc region PAL (serial SCES-01000)`, then a window: +Sony boot → **KULA WORLD** title + menu (1 Player / 2 Player / Scores / +Options). At the title, **Start** exits the attract demo; select **1 Player** +with **X** to reach a level and roll the ball with the arrow keys. + +Keyboard: arrows = D-pad, **X** = Cross/confirm, **S** = Circle, **Enter** = +Start, **Right Shift** = Select. An SDL game controller works too. + +--- + +## 9. macOS platform notes + +- **The runtime is POSIX** thanks to the Linux port (BSD sockets, `dlopen`, + `__atomic`, ucontext fiber backend). Only two small platform gaps needed + fixing for macOS, both guarded so Windows/Linux stay intact: + 1. `runtime/src/autocompile.c` — added `#include ` for `getenv`. + glibc and `windows.h` leak that declaration transitively; the macOS SDK + does not, so AppleClang errored on the implicit declaration. + 2. `recompiler/src/main_bios.cpp` — the compiler-probe used `>NUL`, which is + the Windows null device. On POSIX that both misdirects the redirect and + drops a stray `NUL` file in the cwd; now `#ifdef`'d to `/dev/null`. +- The **ucontext fiber backend** (`runtime/src/psx_fiber.c`) already carried the + `_XOPEN_SOURCE`/`_DARWIN_C_SOURCE` guards needed for `makecontext`/ + `swapcontext` on macOS — it compiled and ran with no change. +- **No Xvfb needed** — SDL opens a real window. +- **`~/Downloads` is TCC-protected.** If you keep the repo under `~/Downloads` + and launch via a `.app` bundle or Finder, macOS prompts once for Downloads + access (needed to read the BIOS/disc). Launching from a terminal that already + has file access does not prompt. diff --git a/docs/assets/kula-world-macos.png b/docs/assets/kula-world-macos.png new file mode 100644 index 0000000000000000000000000000000000000000..85a6eee6ecf2ad0f8cba419b53b6fc6a507db5f5 GIT binary patch literal 75083 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"Xk9BjOP}w=t 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�n!+$ml93pW>-lFU^3sQ)Sft6ZmNp>+Lu`_K zc>rLvP=-2%N7w44ZDu(;#iHBFAVrx_Ob#pHCf`|iu}UGrwp?v8?;%_IZ9XdV#AO+T z!*SKamb7W&LC)&OZgV3q!)^abZ>8^y)!Z$%Ags@}wYP2ffRowKFXDSV>mzkL+`oUo zExcvrb$o31F79{+CCR9+tNJSi;P^DPI9Y4hC2>5QjuUq<$?y@$T(6cRgxq3Y3oP+a zP3?%6CeOuVK)I&4(zwLpsSpP*4UU=GkvQG63nqu)NbLxZPi?X+z@Ra`MGuQWSA$Kh zQZU~WJ;dVCTOE>9&`_PN`5(`~kZLC3S!{q{q_MdnrV3iQNJ?F-R&BW!td4~UG!!er zLN`qEp?#WIG~`D1GqgIx!J$+CDl8ZrM!<|eerO4 zyiHgK7)j21j-MqJas5YFGgHcNQHvs>{H*&#L5dBa3|>1>U{8wzvW&>X`g`BrIv?6MbbGCZSn5+>a>D#nTXPHx4;zfw2E z!KA1{l7d_;#C?!x-tJoBhEu(b?~7^LpJfgUzpv}P48xI+Up)MHvPl{2HawaO(IhHd z;np_fAPC{*(8LWrgRlQD!3`iTE8Vsf)5|HrMlmMIE~4#dQZ8Gf(142uVjanGGm9ukddx1RM4+2?K@Iu?kQY96ge|i7gxB1x1E^rH^I_nCKGvAk{9AWgl>v zv?-SeIph+w%K|}TjKy<)wd-N_K2D$(aO#I`pLSkTq=f5neCi25pU9`ae<+_OULH%r zjV5z0-wAOa{smP2gE_>L64ZW}I>Z2XVl+GzP*7{L_03j^klKf+r z@840)?WS?*lDC+P35!sc8bpwQ^D&oCXk}s&S*L7>B6)Y4m>`X{V_mTntr5f7t%l>8zyF@Np3pB9H(xU zc3%gOogGYCyf%|Yy^RPe#O~wGg%7y+wKY5nc)JLO?)e9@Hm#rc{G(Qr@E>99`nDY2 z!T#4*G1-e)8jA}jhlxh#6e2+=+gT7AO0zy?U~o4ci!(X7!``sIK8-;a5af!oJErQsjn*w@0{cS`QX zbIaVSf8L-+N*+1m2{mzYuU@-D$I}|zU5^TywV3fFLq&uF9o2v7nmGltE6_Jt{B;b} z@s4^PMvH1bYXFILpVf@MqQQwL1$-tWI{46p&wPlBs%YR-5J6DjH{Mv!BO~AN#E0yp zVst#VgtPQMkf6|c7SqS_@?b~k>GA3F_y(W%>B?y3LlVPwI3iC%dLt3vhcyQji>cnO zALDd0PXHXH1wG#-t}xcDwlw1#-McNrK>33|kABb#BdI<< z@k>LmV4Gp`fs1)^gHL{ANme|x@ao%xUrZOv;^{mmO7E*3pv;GCj_bPkgZtq5Z}P>}+=8oYRx<_Z2!<2gtj zQq@bLk7nT?5&{d&by;8>16KRST$2i5amLXVCsqBA6B14{d*GD)fU0&kp-?!(7=q9$ zS%DR)0#K#6WTk8LDOBvG=JXaj@SP6^y`3HxA#61z{}xhYj@$*?K7&22eH~Dn7@`%p zsqLG??Hf87X-+YyWbDL=WB{wImu3n-k{7jN`fnZ$3JYF(Rw8F^O)dB25+mm~2_z!M zTbck*K(N1@0X;svKi{4**LEEM06+jqL_t(w9bV&HcZM0w#g{Sl471Ip1fxIws(w|V z0YDs+SJxa46;kv@@J*-WL-`dGE(MlJk3b6d2=>wzmAph0CStlu_}9!qBQ=cIrMFa6 zqFIH#@(f}5+s%TEn-h8FSceRjI)~RMIOcm4WRoNdzo7Tp7)${n)#!~+baGM}8~T_> z0$ajpEGICd4Ifb^;y_~s7Je=0qb8C>GW|uEkMvcCq6JF;J_@D>+m)DVFy%BUH|~h* z#}grqR#4;;OV)>&8WFj~e2v1ADe3Bm__8M}F*)ptpa)`CyJw#nCUs-vNAXcsHNwTi zxFTIRVvy4uMF0)Dxb=knc0+)8s%zXsn4!-|waHPwIR%oA(X_N8mo);VnVB&cv_^-j z8C{D!tF2sEcw~qJo3ye(GB9-<(U6V(k!<%rhZIPv1OATB=O0Gha`PS*GMtBlGD{$rD*F z=8-Zo#1dVbn)cBZm00cFLT}MFvEu-ZYZ?bKkbBAqE%V0mGQ%)sda!ASai6Y`mIL-D z^6-Ql%JdoYfZX6kX~J%dMfJL4^zcL63XintAHIb~lcgMyR`d<9Xou4dE=1+4URs5C zyaJ`*e>Nqer?37gsagdmA68Swg(Vq&SBx9hz5KF~;S#qe&BAKK!oQAqEL!ZwjnU7+ zP2t7^pInXNtD&gOPOp8SghM{cY&Rm#hM-2NS>?u<*hT%2WR8pUWEyG+$9)mnmDX@2GM9)2zk{Xrqr41PHxd96cLe&}P*!E&S&sc42qsWs^}?{#B0()i^HI4k&%hMFDJh z8@?Qu%QT$UWUsjP)__uG@)(5nNxLNOWi)&7JmnZ?#doSANI@DPDNWtC;CRFg6x>n; zB-mlm6`wDp&pyKpSoli@a(RZ^>K5ZO$}gK&O}^|Kon%r=fERFRoRxoF!|>PeRpN~&+-4? z!HDb8Gw#)s&B-bQa3+Oh*Tk59j$s)Q>Y*h>I!4`8KXM(8E`HuAHw5tX%(LO#Eq7nc z#7o4hS%Vsh`+Cj%@3<^CP6`;7PrrEh!)=xHxN?r_CdTXyWz`y{v7r&OGO81#T*EL& z4$ZV$nvO|;a2UXlC^e8_QbvW)ky)uQeK(<804Ddrw6bMNLt_6eOdK-|^T8n;bZCu5 zIKUi6i=|EBtJTkn538m1uCXi<6sDUML84`>xK2;oS{e83m(HI3_JRlDv@NO-cY@|F zu57!i$k9^0%GTR>tMtJSaJEq^=5~%U0o7Gx8+xZ=ZFq#HSVJwb^ge8 z5^^oYAtXP=-V`9s3R*<~)Ai@k6__&jPJ=Hz_!SC%kwIfZG2e*YV1lrzCwwjV%v|Ll z=0*NGO!GKCJg6bMY6}j6kXm-mN)VfjDG2?C00j55RoULr87LJ17c#l#aR=EvDhuC>M^1%kPGe)uwp;yubTGSdv5TlMH#xqqltXgHV3<5E*DX%OF zjOWw(D%OOLcApuxu-2z?ue3wCXs|%5+h6;o8>#DFV#n1B6Y)Z^o0xsVep_ZMwD{ZU z)^Zk8I_vmjvlmRGbZI6$!~n^~UZZKRaXZuhK~{uvbFBJW4`rJi9TAv~d)yc^Z3W~yUMrfd0g znv2);W9BAJftnJB?Q{?2KR*~f9TaFwe$2(^l6FdA2xwlJ@0(qt41jC@(8fcCVg+Q) zAtDB`BegV)bUAPyCSB6lPDkJN#-C^XZ{NQ5s?~778<$*0PFNDyA)BQY93T!BCakku zIHD4N9mKA^OcSTTtDgw@!diu+HNCONUY!;pYrrB>VBs`taw|-Ap8E1vhNVTH6g~}r zhtj4GYN6;s$=s%UlS!#UnSMQs{dWzPO;mBjvI#%CicoInZsHImWrZKiKBIfW~ znMCdgx}L|$lkl+)2njqKuMrhI`EC{MR`n~+v)<*YN{}*AL(xWHa~cusl@yM(URW%G zxE-SZz7q)(po@S{LMBpNu}oqM)~42G`)f`t50!XMY)a0z6} zHe8U+neb54K8g`!x03u)Ly7{rsH%n+OHI*U)-o%yeI;Hg5LE|&qcf9iy5K;U`oe+f zfL|rQU5fK`^jSMPgV5!6I?`oM1(4iL%O+t3RZ1b7I1tfLgb)oWZa|ZWzIkzf|BycT z83{SF<@t&W(*RORp*(we?nSSP!$;-?6Sjk2A2JFACoS34P&aaL%ARet_{D6+Tq4!CeQX?qNGM2@l&_*;PaQti3hX&_Na* zw~md^^GfbF^ zDy`TmYvE}8ag=Q;@gSTdM_ueSWG?EUZU?e8zwu(%l>dQC(~I<9`XmXP!(xxBsjeLU zm$>{Lq`10$eP}<~ix?k~8M(#~Lp7O63y+z~cqE>}Py7Y4rb2y(cl97-_-*1a!)xGT zNoae&;K|uT+peX=tKE$li?)oC-rk}==7HTSS+#;jP{7gS3W#9Ci$a%cUMhZA=nv=$ z+=4@VdTVg%p%|*Ip33k@y&|Pt&B^^SiB@8iI0Iu`b7eQH=BPDHHdf$CztBhSe2mQY zUSSLQE1#e~%b$%%+%z^(pHWMOZ^Y@q%}yyR;UuBaB7#o{fHn)=GZ|ct+ONG3wtIqM z%%9P5XqLos=G7xObJIBKZ0gc15pxE0&KF(Ka%;pTD3JtQAA%?0@DzxKF3Xv<4XqeI zLgV)1t#dk4f@~p7LQ-j5ojHGA*1_L2NRuP@*~TcPrGu!1Y7$wtAWR<0_BdOBYFomv zb@?p^nadhCJ{@PfH`xllov4APT;IxrsI@8#aXvjDIE}hhTspWVW>0>sz=9b*x{4UoC9}g%B{B*<|PW)^3D6>p)GY~3TNFA4jiZmv23tv!2l1$aRX`V zFS-dBlc(8a&;l(JcHI2|CM20c| zL@1>rUBQ@|wBq^ck$QV7A5e7FqM)SrbHUdhkqm$`6JFd9@2u`ntp(O_jBJ%|7CCOS zR37CS@qnmL_NHF$YsW?Y#D?lhrrFfp8wV;aD{ql|)i7FS_;4EA<}IB{(@b_e&Xd)o z4dVh@l<}UB!$i6&+EOMJfmS*O@N0`EAOOf2g!9HL4U}klsCl@4Er_> z1ID*#_-vZ&yvcL;9uHlXnFqk>`1V+O)kEPZ;=32yMO{VBm|0nB1iav75#2PWN>eGVlxuyFDquJ&|G!Z8!_y-6mF7F&X;8nB7_5f zmw+cN8`BGsPY^112OAEF1Hg;Bs9(XAuoLohf)`jA3qvR`4^ne`{4@ik);{E}8DWuylBYfv`~YC~mPFpW`_tV?Q%MqzaO0Se z@``j%iS1<<%7*(S)2#rfNa#}LIdC;BeABiW*enHDK@iNEtgD{+8U%{u(WkeR0K%cO zK$%FDQ6tZh$PYF8B@-92hAF<6ouZ$rISSxFXeJp))C@eO(38|+ys`|0X@M$25lL zT^$WYy~5Qt|F^zrn$_3&V3U-9Dg&7~B3mErNE#imv5=9MrzR1ngVSLMGPq4wAdi`e zkqU#o=puWBPJQ`Y9Mas{%X%;pzE|U<`g=vH@F_FVHWNOlQTNJr28df9GZsyTM3o84 zKqPNPTIa*nM(T2?6fbxxu&}ENl?;>4R!i&*mVPIKT)J|nCQO!>Hf?z85hKDKr=m@ia+kdDf=H-b z&Z-u0kf{cVV`4+wq*%B?3W|_YZm{st33VQX?it|MdwH!72OU>mS z^%yKQ7)XaR&B|f&Ekf8{55X^y#!*7LAmu=->epnE!a-m=(li}jw?==@aA3!jdA@*V zRBxB_#W5;XR-ndhhHpLSM*gtk;ewpdMt>0*iwhqvr11+ng-m`pbJ8cG_xeUg4t3PD zcV@N|9U_CxaM#;eoMS@k-3ra1ltCiXtI*EJ%To+sAR}X+y@2dng^^xktP$x7ZSXea z!pGW;{!1%20xFbZCgPNGCDe1*63Z9%but5C^$?|(Hp}Dw!G#*eRpEFY&4HBpRh@`i zGB-WMS`Gb|vH)!rBy4mMuo$J21B+ftQR@68t=W~h-(9S#DpwYJc^%*v*h49|9LXmD zo0WSblMOg6=>$f_uCLhospz)U3-hbmz9F)ZqkD?AEpxugQ45*uV^>PV@L=A@WV zNk~fLAF>)@CEJLJ&zd4`sHURWM;@hW28K@$8|lE1*i=G=Ea1~DJQE5RyAF@+7Z5IY z6?aq5cLcNR;%^$#yUV? z6u_G+YF5~jsja>$ zKh%YWRPSR-bP8eJXO%Apv9Zf+ zRf=N4+#T9cKxh&&3!yYuZ3r_{7|`T>c;X5*$FY?FcIK=dnU z?3x!FVA!m12-!bJsJxQQ93k1V7lbW!P3&~Rkvc*T$M-+o>stN;;b_BWkNH|zJ%st( z)gXr*i1BonWt3WGQ-PPnqi8~ni7$btUX(ct<7>gDrVEe zUgYxNsAe=F@kLxY=e=cf&dPg^U>uZv0JEv|$0f)skhIf`ldnU6G5H(E#Ww8m(3)t& zS7sFRE(I;za16sjjYfG}W{cFu9EW>awPImIMyLILCYWF)V(ROOdHrCDuF~ioJxdi| zak&!|dSxa_?pubc#AR}dk0y4*7B5M7is&i?fFvwH5ip%zmeK~ON+PVWN$<^Rk`P|e z$KDE#4#NTIWrZKNdaOv3UhYVpBmF3yVp*Y1)~OWJnIc-%EgZF-bOp}Aft0RyWg^Zy zi!9Xf47*lR(MtdffV~@A^`)&pq;J$&3mshLU{N3vpV8=0JR>=2>=sgK z%X%!*%BVk37>@Ie zVt&~iX#Ki2FcJ4GYR}syAPK@VEWCA z!?(f-?lRJIMCB_?TVH>dFT3Nb=iopTaRkBG%~uaX$T#36_w2<7KeGt)g?Nb=n}1V{ zh93rj40FC556k$*IlA~mD1U#1wxD5}6Duh40HdynOs{@k{my1!tDIZOs@^gm9Pw@h)8p-epA%C_35(((po zvet3rhmQEN4*i+J_sI2rl3ys71ygT8Rg0Eg;Ir;AWUQ#AtrXVA<6;Gsy9hSn9nOOi zDTA4Zv?FsCe*++!XBdLRrE-L3pM;>CFDx~x49APLyo(QtfuqjKXQ*9FS+3dOKt`9# zWKNq0qfDv*2r-f)bD#KWdq}Rd!X@rr@RtuDt>Z&VO2Zg@H0f0_u37Nlhu_FCCEJPN z4yca1cBZzF!xPf=`K;51sZ1yM*`4-uOKNG#McM{^2s~KIvbCv)5kzg4x(y&a(dHJq z1orj4k!E$5U#>iVM&0aUKFaXggFs@@6W`|Ca(03T74REx}_aC=`5% zFQEc8Mf_Ml?Pnhg>A3stUv*3=+rCTKRmC%(oZWR+s*Gw=P6pF1nK2x3ggM7%`??}( zG$4dyuU*eWc-fa0(rXH3z8;M>&njqtjEqNb2;Ut+P*qcO1)Ly-dEC~C(RZ}{kw zRAjdvRFp3{&!w#M13xmFFUQdptdnM%K50g=4zB=OTEUK9*oxuOz*8_snhZovK;#X* z>nh_Ehrm``z?pPjFmnSv>tE1C7fL(=To81wlzfxrm1h@H$61G4LiDV%m$ou(bbGEz z=;Z*#2z9(EVUcSggOiUk?lEXru5xJ08uXifp=|PW{I+M`>8Tk}K)eb!t5>N$UC|bd z=si+jOE*;b%#anBM_#D!AiR~OaU>*i`R$Q>XeafRiWCq9I9qzmuS#Az5wm!;lH zZx?nP4ig^;TSyL^n2ThqN7Y}Pe}A(3YQzrD5LJ~Gfg)0py{+Z={GhJQ?@`X~#S~81 zun2U|xG2hON{UgNcc@En$UAW^KbZ#|&|?_kGnVD%!~1)qBx{nR+2UvF9I8&;)&8P2 zSgBL#i~y1A`||p1=zv~L5;-D78`sxiOH6t_fN{tTq=i2{i^DYkm5&LaZ4fgrG~xH$ z*pzMDFpGK#uWJI1YD#RL0w)R3%{gzWL$yr`<#zk}q)T9qAL?ja<6@}qMq*t=lWc4X zWdohZwjd_WE@FaK%MtL z>&WS73cC`VhK)>f-WxaT=pv>L3ngtfxKB?`#P5TB{#jh$LVaFC(`%7uj)=%@5UoU;4dV5+NYBushXv0bw1f3U^$8pq*%z8>u>*&Bqtv7zxW z^Z2+4Y3Y&U7X@R;5)t^b_8enK?O3V2M>wwRjeo{TvXJQ(D~qDBTll`dOQ(^4jq>s= zOY6flOs=PAOG4A5(K8B!)w!<7K=BQ6EEFVsGrx}YYv1{v9j`^CRF6~h7Q>>X8H*pZ!Wb3ntk>Z)c64{}tS4H7VNTDHn+=acjPAVkxz1*c@F2Xf^NwQUJa z@cL>YXzGmiMm3~WAxCGpE34E#Q!vEE851S|5ESq;{DLxQ>N^xm0y-h@z=e;_ANn62 z*W>oqCQM4}^1L6MHyhSV- zJNIK@ZuDA|BEm5(RiVP6=Ofga`}i}1Igxgg!XPUv7n#c$2Wdq2m~H{WKYWZsLXNGa zH1X>%9)5qjMt2Oq26Ds)(?e-WW_#hOG-d0~2$iSs^emj3IpAe;n>&7z&?!e$*vCJR zMtgyIZ$ys?j{;nUVwUTWKJ?p3dHS90w2oDfS+TU(4Bx|>FXQ@bdT^OU*vrT)S|@eK zgDydJ)zu|vzZ_y@v>S-g2L9t|eR-X|i+)$#ykTd`Vy7(iu_Vnp(zFbSUFjmZAy-fb z!b^Q>s0rm;&AV;e@fa&gHSwVW@j{r4L;Q8@zmyPGo36p@q`iZFW?amM1muly(*arI zA`!|D1qLymwY~zZ6U)+28$V~cLC9h2-upQ7IdrmW+NoFr7B(K~A z5`J)FfLWP0M^Up*;$5h8n6}f9^>m~wbH$F+#@NsG53@Kb(sLgeJ0(&>E(KT{NA+_W z^HByO$)%PEqkEABrRXDmT)(oh=s~+4;J0Y{3GW8ya%Y$=90{AKg=~zVX_6O0_F@<~ zs>55;dd0cmCelHmxXAI+%rBQjbAEHgoyDYoyBNf_InGtX(7tGRpew3>6SC1YZ&WW%-)N%~snFkv6pY-UZ69G0hHex$JFFT=n%fG7{c$~jZr&&awQ5U_Sh*QPJ zsAI3Hnt?VtF@JjhdGY|B4e>MHTO(%I9$3K1SeEOC@&B8OBlfl8V5jGbfJ0M)PG1Qf zy{$eqeMLz?W(<51Dd8MB@EnNkWq87ecXXu^jXAos3EaLHi_^9rG)Fv`syE&^|K zL{MTfF#&S9AS>|M5Oz;QSAutar=(hKeD+yKqJqfUiyJ^;J1r)-@=;--s54t6c9d7M z+T$^WtI)So9rNo3U@{q}1S3pETJw(8^en5SY1o6)9*;G-3=17&7I}b+V126pPKU+B z?#_TkT6~JLRkF&&5G#vzr)~5;5)u~r!FE(Kn=|lIG|A~2@{p|h zkZqo;I6|o%Wqf=0+NSCWH$-5!s|)0R#OHGzMz4|9o$xlNvS1@H)_PTyuE_R)lUk^uI&PIdy}^vrR-tNqJHU>++8hP!nE68Z!c3 zf}`t&r`CuB7{$}S85;GXVMIrnErEe|gB|X2wj$#CzdG`%O6zT;@ezojY5#ab2QKLP z1i|XA84?kdWf}2p6w_^e(0w?Zkk{omrYKPRSX2X?Gdeps%x> zk4K;%R}XGdr&k_ZiJxp0e~qN5)0O;NbJKAnw6ZkWfQuY%dcE$flEII~J2fIEt^s+$ z`P`JR!x!7-rjfS@hQX%ARLouqhc&G22+u(65C;gjX4DRM(}AzNA&2q5sY^7FR5@8q zxbXZ|1EjoV)T!3COwk=Fbt3E)N9pjVDun4z#F@t%uy!(4&|p8kT_fxUn=Y+@rl0v> z{|Af=NAoVuG=KSjygm9bx6kYQkoog6+W3Y;pHNRXRUmn2d(iXHJ5P4!rc|Gv_hIim z)V|}`A2#>-Z=N6t&nKT8*8@D^?eE+3>^x6%Pel6i!i!J*w)#A0Ule}-9KNaqlcg{$ z`vdierQj|Y`$WEvn=21QpAzR6)8%TXPo2YPF)1sa!S~s;I7EEJ^MU}M9$_U-pJDfP z1m7r_$Jz5y%jCKKTLl_Qj=majx_ymo{;CJ4=!qav^@#>Jt$+H&6YF4!NPPH$#uR_t zz3K+;>li8XibXg8h|o{#C5}&8VS$tY&_5p^KhVB;8E(Gj0z;OtL?Zx?y!OOz|56H0m$0E{4MY`6+7vk|st)NNkt$Pea* z9M3IWd2F+SjW0{(Y)ltIz^lQhla;I^)VZn@Sj-T*KPqH9Ws2K3A!{VB3}X?hYHL-e zFYRiycU>UqW<)lggCTKAhh7;AEy&r7(YbRO<9;=6DIlH17Vp;P)K}I47OSKDaDUG= zEsf>5j`UKOj1Qi;;^r-vnj@Q)kR0|dF$;Azgnhn^CqJStnlk>{zy)e|*OZ*}UI%Da z>=_*URdc@ZjMW&C&;npwuFqGmv0}S=pTG|ep`)B!IhcLJ!r39Xl4Rlq~zr|^xOUvTIb@BWn zN(N(nG@fz|_JrcYXQ+m^GhqUeW0e~f7n9`>!Jx_{7|`>{Ul?5vi*7!biO(Ik=D&^p z8Ft27f=YY@HG}R+{}x|^`=_CJbwK6v%2c7Qh=psRAp>(7IJly-e^1 z=7?o{aw1TA0eIC99i{6)4&IBy%Om!;3->sTgzP6m81+RePd2w$ckmtKZ`cg;wlmvl zO!K8-1kpUcVpe4rtv(lh=n2Tnmuz`SR@5?BRZ@H_9C4|yox2-%e4jq@Dlh)51;iH> zJPa}TY@w-hzDB)o{d)ca+#U4+MUWV_a3&+!KO?K*kIe?IrApXXfKFQJR0(?qxxPyT zbUs_$ip+5jkSOhvZGGh*&SHSp^Y!k@yPaEm5|dH3p3P6>jh@3)$s+N+`qW~=@P}xJ zVy`0# z<^qqO9^T0uRiX{Y*RQ{S|8$2xSr#}_zCWFJ97cqER&}|(%m?i9V%e~4?04GTH3R{| zwxX}54VBRon8cLsgIe1LN6jO8QH?i4(F6KB!ZIGtn-g|eR$4ZLs#e%PT?9?MYcFT?Oi-#YNelC77FaQraApF~yqjD_4oiW(x7TizK zJnTF7t$4qk;aIk#43_XsB={dDRS)!fK?o)20DW;cvbJ7HpN^n#S_1#bar8C;Qm4Vz zW@hl{(G3n=bneaEnu~+-2?--Wzf1hgQ8a)(!{*h6+oGvYyQG^~Pgh(;_f3aK9kFlx zEp90#lS7=FhN-LCqxo1T+U;LB=uCW)(#r2{AEI(HK|HsL#7|zZ33>R&rAAKndMZsk z+JndOu>h;x8R|=PkGeVlydc!7)WZRiko|Krhnx?YrIZw}Gjz(&#SVc6|Hz|NNWjhZ z5?^g}+=A7h`qD;v*=27wBH##HrNl;w5mJBgSydxN@pKJhK+3Y+>)WV_{$Vf=oM@pb z9I9*^!y8&|0vn|DsvH!=Ev}LG3m&DEHf27F6G+M0JI83M_N&PBN>X^N8xd*?Lev*? zDA&h)+A~Gl7XDCyqz9fSFh~JPHvY3s*|L`&GnoDy8*pe-^yLH*TB?ld-mrp0L{(Tw z0v^PCB!R8fC-z^<7uY-`aGP#=wn&rGYauCx_KXf6bbg?x*GLRm?CV4hG;Dslyt5h? zdj$Adx&14Ex-q_adiwDPOzIyA_uC)81A!3XFs6op%P8S=)SbA#!+ZdCBu^85HuyQ) zph2o^mz=cI{2w+`nXr)+|E+Qu5lfKJZo*~?ri~|anM!A%C{pbm0|KvE@9Q7xhe|ho~M(a!SV{6;i+e< zFqg8_Ko`q}D`+7Hnjd`qR_*zhB6rf+(Y2M4@3w*Hf85#K`#K zXTPn2ILy}3Sq66WW`JsDkipYT%2*mb|GO+jho~%*2(dx|ipzXEZ5thTxe->8Aa%;y z(lUgw`OHk>!$qC)+)SL6i^-;poy*K9;^J106OM zH^wG$nkyS|E6W?U{-p%gZi*uN_HTqb?(@Q@`Efk@av7tPVg_75r=d89)j~#bq6IFw z@yGkqn>TNI6`&FDEPI3BgYfTOm&0~MI(7WTpA}C0o?iU;hqw9`)e!G1vMQiBF0{to z4m0c9(;0YJ;UP{E;Xx)}4m=A%4HnZ!T>woiEp#lk2RFbkv~wXAo#J;beLx}Pf`}Fj z)G)1Bpi_`!)*0)oOZ8nhcMgnB@sFBKw*7ZliWN}%&VuAx%18lZXf@CxH$ME&!h3!= zH`^Un$8jPz6LOlY2ANjm`Sdu8DM^Xq4Q9UxRh;EF6u>eMhFzy5$K&{w1XiJzsS4CJ$u$h#$Dccl$aZ$FC}!-}4h;cV_kD zgI$IC`A7?0N*Ssg+|&|3{5;GLB0Mjzf430Nf3kKG2WId7@Zz_Rum5s*ZzHbRj!!>) zha_Me(do?Q`VVhuULGEN$ik2j4+-nF1@yi+_!}aS=W6YlF^&Er@$P)DkTCjLJ4`TpsRu4C`MrHjCgG z>uz~xtjRnIG8;agnUYn2`#oOA8EdP!A*Wyz70&6bU$x5+@Ed4OiHt^#;hVRuZ>9+k zjcJ@Ph0i}s;2@1(Mu+fd8jrq#EKl0dFPO??GBnMJYcufGsar>zMchx1WsANGyTP;= ziqZtGBtkmeRDjJ!6UDBOPl7p=g;?ug<9&g1CCtfXz9KC4HF+qLk4o3e!6N;kG0@ z!suwXI5C#W=k{I~5IW0Ed%rZcJ4RMvSEjf}#-1yNsxl(7@&b-vlZ0-~AK(mcAgw12 z<{hm6IeQU?9R9}y=CVta;*0NJ(@+nK3eCtn&G4@j!X5paW6lMRG@TK_;VSOK<@ENg z2#!xO-Z~_pVA}B)_dlM}E%)$K8~s-h_=#a>&20XAM2%HUm_nSMBR zrK4Yl*c=|Jpbvj6Cg75ziyTF+2~2N?AC!?@6GtszS98K_wVR{6Zh9Lr|15!_*?4}D zz**2x1;LLOmblkw=$b|*tgWNe(G{$OtSIoTfqee;>8%e8I8j^P{3ya01m^iq00F_} z`?n6n4?p}s~J~ug2`FyzS_Cewxn;VIy|?|C_1Z+=;7HJVG|D&a)uzzD&vj~bH_-I&^q9G z_D031QdPmxpDTu{;?jx{T}n8*mg&OWeKQ?waRO5X_d6ZhbaALMe2ByFW%lHwfLQv( znrW}Ngx#4MYwyEf-`(7usIyw|Z=Jdm3K%<1y}i3FqrY74$Xhm(l()Z!Xw>WnZLGez z{5e^6_~APjJ%oM#{r4Qdd%Od|@?;MC*kLRbS-~Z|R_kVqN`}znnS$BST zM61S`l@$~6bn!-uS@Q1Ry}$eJ4SvS~=|#XlHTir9k1hg^xp5Y%ybSDszYe?rS=%KsV}z7Uh6? zy@7g!+ZS`KNP!c3B$_j#`LK6om36cn@`XRrz7Wcm4~?*0d`Bu}eYTZjCNv~oM=xnAKbL#-m+6-NpYP_zMx_&hC{Zp84`IFnw7n-zVbXF&+e)r{nURSl@^7 zJq+bQ<5Oldc^pj-M{Qa0To})d`J|YG1m^sh2=B^_QuF}l(LU6DIRA{K4wBe_Dvb|V z;zl2s<5@$cZoU_dXXCU>DL!lG6K~NWpY;RPJP0Q!j;U)gjwj%Jr3%A&Eo+c zxBPwy9M0d|vI75y{|jzBXUDNl!dTu{;o-jbeBzKdcRT|43j7ZrKJZ-OZ+`O|H2KdT z{}YgF`SjvH-26x2;9r5e+RNX({xARMe|r1xe|7oW`J;RYR;+#GF~U3-$fJLGOfg26 z1=_<8&wgZIclvdnZ^SxH=HbB2>R-M7&CcpaP6ht4)rj#?O@F22$U}`hs(F6++u>Vw z>Fj&YsLV@ZIO5ZR-*EXGug0<>9e(v|9(AP0rx?-vz$-y7KAivdl2pY1A3xy6m){)o zV5VCGUp>0{1R+#6hgYwT-{No#&p^Du5DY&az9GjM@fhyYk+ItF@>h92eRKTP@%(QO zuWs+Y$-|I{QRn>o`QdMmA3mbh<>#}H@%q});cw0<-x`09A7tf!qJ=rZ7nM*QzY%O` zN(+jgvFmXB^x@<2)vJH|umA1z_TRm@eDLYn=7H%|U- zeOpXz3@}<;2`s|*xn%OUd;cj&LjUEO(3L*Ta(Kx2t;r?GG)zjRbcdpf)g^*5&#FZC z-t8*$^xKsMM5<+-{h6RradHJ9CZ)8kuhwD_gd(z@i0m36g=a^3q5p}c!3#h3TC(NC zLCEM$2xy$8AD`}zzh&+H{*Q;)qXtoMNe(rKAMXAHX-!~WU_t9S@Y~Btl&Tv|Xmt?= zjbi7nKuG!R@jWMpbe-77r?44tV?Ne*Uo=cng<75Fll^Ql&Mdj*4BX0pr{TPm%QQ?G z5o~dh&kA|_<~yM0cYkHo;ywxpE|V4=f`%?;^MnSy!g>ej$ODpm;m!6Fr}Shv5fIZv zy?y=W>GA-l+J3w{$xH+|6G3fVZFe0m0zY%i7X8gz4EI`;J5qZZin0C97yZ3JcneL{ z;7scA;e9oyE0I=j(PFz1!?FwJEavv@El@TZd=2R7&7BzM%X${ty-+n-4iooUGHz(U zU-QyCDPoT}YVB^2Hr?4?QOBG#b%0IV$)}1OQ`=Z-fZ3Db;1iceDq;SD$fs>^hopgG zFU>_>r_h?{31-zI$mL0iHn@1>Q1CxE)=P?x5g57{2T}pGry7jGX*?P~l7i4LbAe0q z*6rs}UVI5=H`SVQX2{9#WUu@w8^4{UGQ9uOi$DI+3@aMPZ9q53zOvn0`YI+P_~-N8 zcQ^0s9iCAjTfOpD*^E9;CaRtZ|nPWh5ux86PL$HsoVO}7^XZyxXOaW2^7VNt+Tz|D&j z!N!7ozJKS5>*aiVI-R*j$BAgBhlDn~`4eAjvhC%werBoXouP+!kiSMzI^oA)A;d7| z{OIA~_Vt~?CIg<2J#eMUUoE`3)4ZZr{AV`|jke zD(?2(-E{|qR^ck=XCsT})NP-zmd&)4a-YgdHdNj}n^3ivjY1ct|#0g(6E>@yg|MkXt*+>qedLUB0!klAHV->mnY6z6Jqc&7@8l1IBR~>n2s4?Xx(wTmni3n!;UFj z2*yXvPwsIA_*4bYT%7mD=>;l896j;Ar4GM|7B0+Y{d{=;6KmHCHVBMRj5-nmOne!a zWBi*G)^4VX2>rg zq`f)v5Tpo^)RECMSVf>yA`Wj;UGV5O*}LQxCP8XUW$CG$f``{?;5*$EeImsEz1joZ z$ac2CqaFzTFbPoZx2I}8^YrEX$oBGamS4h1#!STCK@CqI;^_)ZV&_J}o4pXA(06+jqL_t(nWY|)Eyn6r< z1--Hw4M`P}tAlKe`P_oc_=;b8>SWeK7b4D8DlBUYI5l5}4-WuFK)Ju<4HYcvHQRsS zfuKF=pSu0&=HdKs`{uX6$>*erV&hEw9JUT#08uE1I)HWhGUJs1^tE0K$6%=>=Qy{* zoKFD?XEfpg!STT9pLu{w(0JfXT(PXGOcaCp?VDRR4DiY7EkkOU=0Xi#>@3t~#L(UC zH zEe+ir!N>y?M>~Fa}Z|55Vwr>qTfbvz~d;XD`oI!oRQ3 z90ju*IC=@%v+fH%K}7lRgp6mfuW#ka$@c8@xMKp*5g>PoAf{qU`7&b__iSChz#eZP zKi{7p-f_x(`^z8x-MpYLO$$H89JOfi!_r(^_O)iO{l*8yL2bXTN9|M6_DZO&nCvCl zTwlw@)*#81Yk0W|?Hl)AdMiPA-|4w(fsxm zuk7;^6+|Cf*d`QLx@Tdm%evIp>+!v`oe0TT^*uB7^s zJJ)W1{tVzv0KQAJ2e45X7&3{plO8&-49gHQ?~-`1t9=ho2u_{rWXp<+cK& ziH?L1SHHR7e28)Sce9w;BwqmblAjvK2{)g(0)*aNh4wUnZ~JPTp$6~tUoIbB-TsPO z4sON0Vh`5KI>DcUKYaVm&8q|F+yC}&e0Lewp1C`~HDxX-UCtlq!PESdI+viiChrCY zM>WRzsGlG|uIl15UsCHCMzvi{OOg*T3QdJNfU$ z_`|Dwg_(YR`Re7*|Lp;ZoJOO`u5jnGEfXGxq}Men;H;xlf(3>K&2>81j7jSZ~@*IX0 z2<(5ZurFBl!Dv_gI$Ldu-SL&9?>3LmJkoT$Wy5rm67$?8a(VPjpt-~`1n=H+r8F0o zSUc)o5|v=aG)`_$T!hbx0{v3UQH0`*A1VSrEGNWe8CLx)BPCB!PnFXqEmZ9UFEB^R zE1p96x>70^gRQ|F-DLtO5IVX<^9T(~Xf8^hS(S5x_XVfu+*j@nB*vWccqv<_TbWe& zGe4X?C3Yo0qjNPwAudGA{LS6X?d{|H2c_q|t}4r(@^b$kexPxwgllW)%ZU}&x3LcM z>rFJ~ocI^_znk3QihLfm!Awi{fD@x`8sY+7JY{*HLkzI-fG<bvx8;NPe zEQb1BsUoDBk#_P5MCn+;(b^QY&q6lA)(NnZ?-fRSo3ctkI=;grA5hGAixm3qZFcy3 zg4V}5;Q+&))X88VFK%;n%J7cTsMc$+PnY{hQTeDZ$-_NA6mYWb^#KV8!?!eS0~k^6U&6!+2CRRHglDtnYblb@1I^Eq(Wdk+TrNTa&^zLPfwoUd+r0 zy|}wz;cRLEsS*$4UMeLV^z`X)Cw|{jTB4Vv{}rFl{P#~7ntQlBA$8#TanK1(FH+o` zcnXa3PbVoaZRLuD*Q_xSLkK4#M_~yPOwT=1+IN?$6Dpsf&%Ogf&M;ZWi5Zr7F5v2i zWC9ls`Z%X|Tlj&p)9L=FzuvuhbHkHQoRuVcXHfFaqoHCrT*F8`f}vJ}O1~4Nn+T^H zo9*QJr!$(+zI`43t^**l>R#^8XnnXnKtROutQ4*Q!kKUHIWzaM{~C)psb+T0iw$HX z69aP}!g*4Xb8_xHacLS%+}Cq&_@ITSvFE3UIiF`&&lU1Bn))uI@f>9ihhMz^0S%A1 zKVd4Z-j+jZxo41?Kua7jwigv(6E$;lP(JUEQv^1PkgkBRiZpr>%=z??DUq#`@L&W$ zZ8)P1(Xo}0-059)qHUlR!c_z>JA_r|$cT;mG<-1rgUw&E|__Odz3y zQzS~U8$X<0J2VRP|1aME?!P2pAA(aDl-E1{W9{Ah3ZzfIxtNfk1#jz`Wo0ttz$rlkNR;@60^URGe0I)%vfs zs;aB2yU{%NzK^0;WTQiJWB$_cz(*9K0P`CmIUNUNQLCRQ1eVX!xMTW_hJJ(6eqh)#S;di%E1e6`#iUfQ zK;v`D8j)l4go8808;VfO4Sdfg8UVk)!6wC*rG$l_@5LtYLs|NgjDX!-TJeg453Vn0Us(> zt;?x@w|n(w^1)%NLl8rsla!F@?rvpwI1I3g5Y-7uyJZGvuoeO4|a{pOX+EDE=OkB4X2DgsJUIUQd za*xd&5CJR*YsfD$@AT7>;#3VMQmV90v4@*zgxOF6<1_OXiZwc(gq z3Zo{YQAHgjbO9-aZ8w374G5HuXm1?tl)0l(h5V*PZvfpRWRe1lLe`J791eM_A~{tn z?nxkFSdEGOoD5LuR4I??JN{1(BVr$#&@R*P7MddyI> zSnlkI0lGH9#0J+PkkAJe72A`|)%CodUKBV06b?-rfMgF*M9euk%OI9&Y|R%`IbX6i zw%6Jfv+M1e9w;%4t16xulr>{Nr4YonGNlOvr}%s=Gvs4nV1bmZO#1p_7 z#gi8-^i)Zw<{uXw$*STCp9cfj80`QsBdW&)yf9OS^_p4JsUSQPll#{UqQwSMr@KK5 ztAGH3S$;6090DMys|UP(U+m=Q6!}<1_kQq5J>w2+a^QHbjC@MTZ(~sB{q`XGwPXl0~Ks4FIW;S(soiMV$DA2o=pNIwdyf zdr292#1IRJaKJoOQGEo+YF1k_lbH-FfTS(sw@J+jT1B^*rd@d|VD44!1B$TuPqGaB zNGGAt*F@~ynp2D<=D z`_W5#)1Ku+k`mY?o1ntf0G4#jHdro6^eT(T+AfyUhY)OCeh3_D$6;gUu0kY8rXNw; zYQzN-Vb!6Efxxs*i}cFi^wOMeSm#uR>wfp)aznwZ+0Ccj8IW4R@;5nI_2_+2X!sN^(IJFGSF4mX?AX=V|@2reKIYdQ-r3yEFx4$)P(>IBA7U zs>tDzWE1j+;YTb}L^(=vi+hn-t_^_1+}_bWFUch1%*p)NIJ3zTv58b7&3-p8^7BFE;F45boD^nmLepE?2WpLJ<$T4XqM=&ySn+&Q2&A(`=k9AgV zP;8EnpLkLYkv~n!%b4f@BocA1;tr)Dz7zPlnz(;=O(baDYiWcOikcMNMBRp zb&I+7hX;k`F#xA2Nyf(num%JtP8E5x>E(L&3K8gWG;9UUotv@-^{I&P#wCYfVRTD>EMZz*K1x!t~4rB|( zu$s5evZKV+2vhNIvE6fOIo6{Kr8ni>X7A_%xQ9X}+8@+S6IEO)C4PK*_sr zy!eD6x;4bash6l1sN00oJ=gg+H=FCvSK5xUyM_$?8US$g{xe?X$=%}x6ueBWsb}s# z%WdqqYq32roHK;O;Pdfn_lak~wCM|(B8T^Q z{#^ED6!El~u5{_%WM z1*Cc=CakO{ zfK@I!=|n>csiEHs;HsfZ0jHBpD1wF;n~09pIHp}jbC9KV(+mk1C>hJF%fKTU!X_eB z9`J&rAWThL<)jj5pdII_8Yik=ZcnQuV)|GuAVF<&XPhU7UsnK6Hi|Q;)l*LP zui2EM7~3!mX4Eo4DdmxKoAzM}lHEnim#35Mfs%OI*D-Uk&^TN6QD(jzIL1E8 zIJ`OHeLCtEtumywBWiK>iW#TQk7C#`3}2oHaVHirhEhmXoC>8S?m?p)XL52E2G-gA z+KWu{({oL%5ZHiZ2zQRm3N)`em`Hh-JZhrTm!~Xe+bksp{-t3{M0mn+uFTCkvxhVv zzVt8ueOtbNQCwyLqhi}k?N=?Ure7TNO%$lV*$alMY<=U*L`u$+mUW>zuZzf z|Jy?ESmM#H?Ve|_UM%KcZ#L3t_I&nCFMN9b^W3UJVER82y>wN207%Rc@9)Exf8X$R zNuHQFx%j&o>a|JHNUEp}9!Y>*?mwwAwrxi}s)bA({b-l+dO&N><3)?f-*}(aY2sMpdBp3sG=bD3M&Gx)7mLNS+3d@T=a8QB?9+2T?+Lsfg3=d8 z^QWh?V2_n(QUw?%yk81R!!57xn*TgGneD%>cz#DMq9!82)2~GPzSGxAdEpe7j^9~Z zyuIb2yFI>*c=$XVly28wcencdEh>N>zJ7%b?{oV;n?9#@xB0?1M{mDwZf|$rZZU$M zZ{pc3K1(YU41x8qCeK$vQSXO)PANoy(PLC(zwKuyaG3q_Z~q+rHs=*sG&#;CYY{98 zM>c?McVD)=d29CK`R)44^Phj_ktV%8ZTIaj^e&ZZdb73g>PToh{k5S^opBPL1Tb^i zHUzc7LOqZEdLRm3E<<0SKXrZ#?JDWfD-cFl{~4Hi2e}U!pwPlXf-PG95#AwXKr@-h zHZV7ZUDzMsloO4VgcR~fBp355>6AF9F{|%Q(eFL#@tTJc6S;?q@0Cp_Z%(fz8Ro!H zzcERp_7`27iejX^450r~mW2TJ@v;e5iAIxz%|&E3;NEy6Bt9n)wcain8%#K@=eH3V zKNpMD=WD@?r!mIS*f~lWUU-rzWjHRG%mK9E_ehG9P|4MCK)5ZOOx;jzL#P@$%CmB& zMn|F}0fLode;HVoxI3Jpilm2r=lp7GoimNJD)B`9K>v4H34;@WH47fNexLKlnjZw& z5wu;c_{+9Ro(I-T4ADZP23;wyaipusIO&$7*HXs?NxHOeEXK@%CrJs75JIX!%;mXq zaA%|M8B<9gY6M}#)_zqXPjTvnE1VKP>n4AkmP ze~|%BhRHbWXGD>ZM^>M~11{fp-{=mR7t!I#UrkaOr6TYA;oxpt9rv9CLlROV9bG0_ z1_JExoF{u_4Qqz-e#z#{?;q4y%Dx!}6CUXN&I6)4ai>20e)|=(e7t6bf`@M@Lr&QM zieUM%VcO%_>GRFa?ZBc297qu(iv=;p5X}=vQuYL!FxXD9(#Z>6)yZbxSP222F+SU*Ot?VA z%m^wGEhAsho>|NNFk_h7-v08-?DX$i&6c+@(?Nd2VgfKwM{>yxp6$1CQI^N}jycxf zVT~=GiPq0w46~CHMi0z!^89D?L;y^x>4WB}jI;UzI+HC;7W87^ufxwvz+_~kk#8t) z)B|eVg$b^WjfhR^v0pQk&c89)_;US=4E5KaQ5ZkRS&&Dzy46F)x2w(YwEui3g6QUt1deYDnN$y-|rp6}i z6|~B`<_paTw*W#_N(jb8xVJ5I8qBVW-_mrsSx7O7;ksZVOW8 zlgsN2YNpGbTitP7U*BjcE&#H?j@@8dj+hNAHn&|Y=jS|8ykd##FWnEa94f-&q&7|~ zj7w#*{2i6n2?`>T{7-+!i3Y=*(nexcxE2TbNPLQ_0~+iDXG24BC)4Zpb#(_Ki0N&o zv`&!i!Pv~`{D`LbJ|#UC6=PgG#JJ!|`RrW35BmCi=!N0V5j%|Y0KA!B%7(IHrJVL- zCvqr3=~!0BLy|E@e~RAODd=XZAGgBTqMi03LuemPMmY%oiAih1_Y$2i%1|7~;7K7I z%TU~*S&~^_UIi%t&Oa<|z{bbwf$%H)jk;r}oo|M**&_ZFAJ!`)vy??At|yiRs_3(U zdpu(+{dr+o*0ukuJq$KjGKpDu&Vr0dHSr`cW42z*Gya5^&= zm8#LCPTZtjnI3__)A_}k3S9(ZL5&=H%IyGFWhb(>cmmY$_E1xAHO0#4lAF-{@s(&C zEkkOB@x6{ibe!n#5C+rH*jywlZ#&9EEP^m3S7gcsVLxpo+i#fKM8e~b1WlJ~ zmz;ZjUOvj`W?o$JVK&-Fz)0={eC%iD<{2D-ZsED7AKqDRs;D~Y(D&epuKRUTGXztvfmyp3F$1e&&SHik~MZ2OE4D+bHM|Pxx1WOfg+?qk`a5c5CeL3C638xH#MIW;*`6~-Z{f4rnU^2 z&VOjq3Y6d6QW-kL&=SY+rr+`dAtL@T6c;LK0w7{LVRaa!V8 zEZw;L!qisV_-UlFm}CJR8phQ0h3x~3!&jG#!`f)6c_*H`RfBLJ1Jy3MTejq#TR&~y z&C}S>=+S#R$VrCo5RxJG`%l++k_&)jQY9UU97Mx9`6q6)dcCc}(??)- z!Uy=fI46S^;{i3$SnOaffSSc(yZaUs1JAq!>Dxk?h-GQV1i10M zCZl(t6EsM!kwA2-f0Us(LtNt8&5mSNCX#5^gkx1NyS4vhM^wFfmQ5Y$J8&%Dyv@L- zwY#L7NwF+=L0sLm4_H`i-+s!^hL=S@J0ni;3jlucTvFVDH~wh}7c zP)CwOCzHOU0ko!5UA3Z&7slq?qE`^pc{QVeBX_J-=!(4{tH1#Kh9lT2bfQl`oV3FB zOQd9e9W9RS+ko0{k1>lQfn#^BshEs$8X{#7=BL)FVINw(m)y@ZNfmM=bkuywhNl3^ z&?E!x;u5o&Q1ql;s79gr+tq_0B#_Y5>+|a-;F|IVid#>8P3CY23qfMt=rTHj{&sq* zAq6fR+&>ylK*Ew7t(`@67p>?wRiU1gK;XKQS00YBnYFQWP_sx@ zU63=ySgcn!M^k8VBE?L}kB^k6sm6tsmr2tFc*}uK56J{0S%SGqSs(~iOlclL&p{Nr zfN_GSChwvg4$w?mJoZ${F*WAl#IUM}SjDi$c6mGb*<#9jh;#u=hqO@_CXa$L@S1*W zVy5;qJUy!de#;2F;xm!wr%bAKnLVigmcGQaKH4<=w0*yT9oHZnmAnsIzuiq-ti#xY zdttmnm6AIX-3Ew!HMX|sRf$p{#DYK0T;9#<;G~>7wTx&Gz%_pkZd@*xToKjY%?g3U z=m8ue9D6daFjXtIu0*EOX=6=3eN9I^GKdH$<(Fpbd4|W0V}lo2_(e+8L~FWdWn!qz z%2M;mE3QRM6fK^K=ms(dQ18N32~F$H+p@V#4eoAgvffP>Gw3(TAfu+)5zot6#j}@B z%zy!>nm~pn+OWQWx7YH8*su4grb)OZVH<lgUnB$D2HV z!CQZ&6t_t&jqXNrcNhImxO?}EJF8s3=-YVz{^gcCeG-?XcN3TBd@0W*x(x_ZcJ%O- zL)npc8Rtg533E@<(aT-U+~GtD{zQ*pT)e=2$_(rrLIC98&Lkk*kmXD_g}DWpJ$Aa= zD*kL4;)W;mo?&}Y#T05bt53b|#3IycyI;<^NBM2L`O2-=-Pc>TXU({2EG^Usy5H-> zo~+@;Z1;6P{EYIbvPbi=(J(-_8+Y-T&to^_(+yp#3n?tA%Xr2- zK0%0~^!-a|$)=^-?JYNT_2IwWt$kuo8}P2_XWE!&5eYxtQ$|Hy7qGMH#b1|d6Yfb5 zFTSpSfz9q#WVwM1TW(%sGB#1+keCkbWEp)}@Z|fqliROfZ@>KV{AV`Vo$PPD-D>hx zrf@q53fu8IZEat}Tfc3;Zf|*K+E+GyF{!6%)M7E6ttiudx&G(yGd?qAFUB)0pm$J< zOpU;0=KLsnlUmQzg0fBL-GUnp)2>1S0i@ON#Lb03^;b$)weM{aH8L; zi!1vd%WxEPNy9PoLk&SaCF}*lj7nkSEE5q?J8-PwrK*K*;_2r&%lc==v`7|=>gm$} zz*W+D)*B)UOqs>0@bo2@bb@NZ(|TwDvL?YX7v5YeWW>Q`8%__R*+3ZB2)Sb_2al zmX!H}tRZhC8AJ47?Ng>ng8a?a+wcAYS|#Y^uN91bak%`A$`nY4zi~x1TZ~5qVrww9 zU3#HTo6=+*b>(f+ME23_P;SM_yHtKGdb!JI4qlPr#SuiUiYWWdiE!eNNh5#oB-t$> zC21wQbVF?YaV{wzOMGBqoLa{;E+gMBfYYdEMDY>b;sOK$3Ev0qbGGPJ88|;wxljdX zU=h_{SKdnQa-4GyL{1`Fz#5=ZnZVNmnQ)|n zVO*(0_bOHDTt9upbCD0JEozhuhpLv#y`QpNVqY&7Ip)`Z`OWZaxmBuF{?YP7D(i~?Kr6$PVe55$IKeRPfx zt?B5q1gAY-M($QA`R1KwtMM)th5M1USSh`A} zql@8=+-NkDw&*T_Ocjybo~-qWjD;>`gQIIM*`dqome5C{1z#P*kX5T7 zsv%0jlIx?N`;8VLHJ=8GgqP|Ehj5j=j8iU`7DMNWZIUf!n8aOKXR$(s(uhm{Er74vPy(-6k@>W*vN{3QhwPU;4P&~-w@_nB4CjqkoRmT z3+FQJjtz^nTdFnOPQfY!AKV0MzVYh;Hf_3Cp61!wW@`G8@YfN%oQ&wW4MdL=897?2 zDg!{LjZR=nV~oS=JA_Fv7rX)7`>}QAr>vb4q#McELJljX&d<6nx8;E-URKc5{A zy+dq8p{p}Ij9TasJo+<4e7yntx270Xt)CJ~_QI4XZ#PZ!8f<)k2ODY_KZzxU69OD$ z7y~8`ZT@H%{*vd&NeS7Us&z(31X|@$;S*2l&i*lUI-29Mr=3aYQSzw=UOX99s+x?G zb-sf_nS(UPF|AP>jd7F*xcMT30d9x!E0r}Hq1R_~vUw<{l>tJN9@5bX&r2tk4)wp9 zlTWo^I|6QTCr`-QxWKCC6=c7skcY85GT&|Oc`{h<=yZJYXkJo{l1}f?iFg=?&j?bR zyVgQUg-0_sR|OF;QaVa4XZRWowFI9_LwK! zQ>fe(*icw3M%hGK*vm`+uS&+~0K7gM;#FCUk+{Cs;`#vTsCmDs=hBJo5Ocp9d3(b> z+d(xYxw6=h;}6UjnL{xPX2#Zh5=2?MY_eoC8Tz*F{-1Q<*V3s_hOJ zTxlh1)UGI@pt&)!x7$K0Q9^(!_la=1Ijm26E4R^6mXw+qwCaYJ$^TYMRsfr*4)-Iu z$3S^YCJ%1f#CAEaY!?k>$LOG6`-GaP;j1tv7hIAM?JmlgO8r#JAD~o=i60AK086T% zj0Wm$n~6|!KY+t@9KcVAUbRzo`Mzk++9MlryxOUjq&^PULnR$Y_F7(U)Vd`X77{r{ zfsUBV7Rzef4Lc3>PU8WhPW~}KEbL1F5y)inV8kO+B9xIuL?wV|MR2bYZaB@2O{RnPcB;*9WX9Tkp=AK2 zGLFeq#2O`*%(aX|SlX4%bAh8yP}p;yu5+(=xv0l~GRh%@+2leLn=l@lYuHk|^{F+o zEVyoeh?|uLa9bnt3MRm$J#!RYjt)-H2$OWXs2{a}zj3V+_^a}hqvDO?%%O!67xTX~c znj?)RT<0%pOK*kkbaNRqU!0kbi)|B-3e9C%!J-QSEZy+uwJP8ljk1suvJQsnYQuV! z3gRe^c%4T6sI1d$hjeq$!&7oEi7BC;eyT=Gxsm|G(Ji2CY@n&Br7sl(n52T23*|N8 zv%5zg;x~F_0ybWZ0a#Wt>Gr7#hQUNd6F?*lM#yzzHcL`fl2}}fIksfoncGj%&}3>r z$^=_C{A`?DX0uar>dqmJPQRJ=2gDA1n5yI|OVT*zOdqHunR&Ne2F%%Y;%#fq8 z8jYnm74Agni=7N6%PXUOn!j$$p*57mfM(rBB6ROWulxzZPJk*UP%Xb$BCaLYaN6uu za}~`!q(<~;ED==5-JeaAgDL8yXR3yAl0T^E&lIcTp&yX_hk@;pB8C(5_kTX!RqWR! zN=#;gNA%)pV2q;o82`6Y@1!~zx6`OyeBNp^?@e2_vikjWQ|8UXbiKA;eD;!~%!9O! zAnu*yvdEg=Q8$kVhhv*r?9(aVqk@YZVef|{P1B=wtfSdqFRe~oiqH9`2E76wAG}_1 zy6vG}o;Y+QG}bk)u5yLAX=V#RdeF>taCnTVKa0vz2deQ$24HXVM&|rYAb9s0I10jV ztSP$#!>J;+-yvw-eDz`Jfka%QM=UaBvj%*B&Q`?r(+x_uAiTmgM9Jp7s{#;^LM*ZG zfQqcaiX60KLSfadgD$*Dn@K^Fudz;Z{}k>s{2Hu;Oc%=?`MOXvWZ;`WiD~c?EsP8w zuQ#Q1x;H`WiB+0lwVj+YXt*QKg^WDRZWVc|Fe3#;&M>;dx#qE*rpfl9CTHnjGwi6d zP^)(V%K&H<0hFYy|;(2H+8U zK445(&_o=VcZUf1NM7#-$Rvf!U#|)CIGzCbJc3(a-!s&G9nNNC^2CKc0h19^B%6OS z$MB$)`vPg@c+mQ0vses5&-uvHAdr1NiPg-5c-XPnnWYXRlV*C-P1<57%0XcF%mIGv z{bk;e!eKU*Yd=}r@EOgnmEBgOU)Hh5r(+jN`4~QqIEHWeh*)PW{#qpxmai39xt`}D z6=S&L9qfWVqTFDf`db3S-X483w@t2Xg1KH) zv1*}cpKZXjsZ30*@$|H65T|c127r2^T2oVvDs}@apjw~$1_cbJx%z0abhhy(;U4p) z9iq6^B#@J0n+1g#Z;)P7V0&6x$%>h_D%1ff%sp8wsOxZM@+#!^1yBB~9~>5t5QrWG zg61ai&~6j#xDH?mjmKfMn^|7H0Ty)P#LvbOk+G*N$%+J|q6k+IZJ}HA(>w6gpw=wZ ztdcoy&kimw47H4Rdd4$JJO#b=C8%fCK*4mz4?9mJrL9T~^ZXQR&q%9hAyhAu0!g>4 z=Ydr~5~t)2#}>VXlnPTO>q3)pxsdUXx)N)&ayca8N_QFLGD$TB5V6})74|RbZ~BdQ z1DD1j4P+|I8yZBfH8C9maNL;*szfwmw*@rgRjuiSAD2ye<~B4t6mkc+w!gavbP{Y{_UOkv=opnt!IvytQ(fUZ1+AICuO7nq))jF$26$*PoKTOyuYOGNlx*6fh1K zI__#|_A*h5O}~_GL|XXab>fuSdq#}c7t1o8AAreH9|U88TnrOHVDTJJoFo!#y)ut5 zJdjT9>gtLk?~CTh2uw5I2XDitbnGWa!MI=JqCT&k#NJ0kV zbOG#))QP`}27wqy^_o+lBR#{MW2VRM^*GZcNIwpfnncjq(3OBS8vk?Yi-{kx>IV3H zi||3Kj3Y2*Q_(B7twL%! zVc2mS$j~}J0Frm=U^$gz8BUOBmHe2L@KmQ?jp07grXo2U$LbW?6yoF6mcIzaF?ZDN zTnuMmG&5~E3h>TfXmwC-mGrV{%SD)9F4jJBG%pb4qeoa#Xb=AFKYfe!tX;Ws8#5T^pD- zjI?w!&WxJdiXEa?jonimL8tEO6tq4G7l)Y6r<1kIDHeccedR$u4YT4~^pD4L*LBGa zpAn;#!6RylnK_Oqn>Uf~UmeP2wcn$x)2o~*NPgOChf0E#K2=|-#b>=IPV1ANIcwe} zH~}*sQ{JiP`gZ7>^_Ew%wE7Cbbf=6E9%-SoYXCJx#JmbOC7HHuDO>oQL+m1eY8R_q ziZjGIAoBp71`2dn%*tSC0gb}6jpxbPY4C=(w3FIn7}?H2L53r_rxkCe59?qwoA_Fk zFZ5BmIG3nxSd&$LWKyc1W>o+aer0~!Eq2PHv@Q#LSJ!8N)dF{YAudIo1PcdU`Ew;(7=qlDh%xZkTOU}cal(%3OWYP}|>u0H2 zfZd7ShK?rkDjL$QN>-<%u~*VWNqz*DluQxFExJI!b0Tw)YUWTz5pJAG-AYqcaQ9Lt zmzvPu;d~M29()RZrP@G@u`xw+!LTa2dYyuj3V-BkPxiAn^+eBPa=!TB?KP%v^5G)R z2(H+QI~u?xD2vAa_@9c$(vCwWHa&_5`B0o!+72 z)(@mMa#+Hg{*hyplZ;XlarX2Bbc^}$FRyo_Tcit9x2TEefG_%r6u>-kUkVAo$w7Zq zG2BZ2ykD5eEEtE$zd{jr<-J*Y$bM$gxT2mD!`sz$V%V~vB^^0JY2_k_Y-}cmhsBZ@ zW@SvXeLP3K>OmD|Yg*um0A}fbP@2Se2*MQ)3=oECy2q`P1O3mF;^{m~;Wna|>y#i0H zDmA~9PWlIFQwvComC$c!dJXDA_@Qj9ELtp1FI4P_mNVJ?m-&yMTbT|0BvqbdW4Ss5@36LZhq_`vs5%zLn{_Ch;79=%k%6%tWy{BiUK z{q^y=>PFhV}C;rYm zl>7%1@u5nEm7W^C4{>><>|qaUz_LRkG@hjLc%LE0U4sjL!=YP@)$X8u_{<&$Hb-se z!*sRXUo55iu$U3jbdDstI{L)yUdWyV`voo{3R*k8pDM(E)Sw`-E49|_%f;nRSu9-N zTpD1hV^Q0Zk6FfJY`i90Wm>mbssaClw7$7gZ6fm+EDqyTy&2oe560*~s4lc;`6dJdZIR z-GVYZfkKWB-qdp0aKLXY4ke=;Ta{~=WI55@kSO769>j7RU`H3JfH%dlqZS}^j*kE$6fvha%-T321YA5K3jB)GO&3ma(eh~{G@%#@d>%;UHnv*pr> zw>{28^f0?3pDR7&$<5VBl>sLf06bHn3c|5jtPh4uOpeWaGkbZu{S0}r6VC%zvRU$Q zX=$9R^uR;V;4wK(Pup(=j4ubr07W=m17nHmWFr3QNkiS0HI}kktb@3xj~Fs7v48o= zM&@q9>p8XrcTJ3e;>Q#1H;!K1E1OHfSeov;^(lJMQG4Vu>R+|1Q$-c3r6%--%b&CL1l*7{HzNg zrE)iU4D;vh_Uzq_`czQ32yqF=%%vr~tAZMLjW)F?eSHORbX+VKo7ILhwrQx)iT;#d zsAu^)tLVH)XsCMmgk8auQ?-n-_CF7HCb7>8qQX{dTX&j z8Tu1VZygK4azu*)>=}ckU9&fZ4-CHol_7qZ4!Q}}61Ltwo@#Hcxk-0>lyAI0G5mkAYzg^_^xg3a#7| zrj-HCUaoi{TxDv$H$ofhHsq9nB2|ntv<{!;#I>|}m}l-8Oit%)sL+>0&d&5iF#}TF zt?9BTLkthR>qDZ5V^ZY5Yh>ykGV-U*+?N2-i+LP_4MP#jH&OH5=?pE_m!B8hmzH`q z60Gz)BZ?Rgb-B){#PtSCO>JsH^_xqX3*xcV`TN!9*Go|6?9*6Xv-N7WT=KG6--{~J zRzvM>Z6p#V;)61LO2PtQ1h#X@G7<&}>=z7JP1@ zIQ~O5Z!VT9c4Jlje)8dHt&3tfTWmwvW@(1p~v zW{mf6{_}1*S*2=tIjh{mp!Z70ygu^`;%o(b-0U9UaRDkLBctSW_i3|89Y{fhCSIC6 zSAQr)dUu08hPU(WF(F&;*VNTKIYESDIg;rYG?jZq&XUgk1aiKo?pm@|4D$jKVwirA72f-3`JEUj zjoqmazZKz}aTSy*HtpoU)-FcE?+Xb5BS{c4aiuzFua7oif16ob>=T;}X_ zKvaX-001O~NklaSx)7!j#AGoO|K)I^-uA%kk{rR|x+N&M!cfOvoa_*a|Xj98+ z?Du&=gnOgpK8PA!1 zb-6MDIW}zgJaEJ_P*oMyl75ve=HS>S#;SZIA&1ebIwFiq4tQ19rKHCBalrxl$vGr_ zqNYzK`7q$C^F_6m<0mU&ty4RwoQDv4H~sqJ^m=vq2X%Z{podBs{XT7m>CMLeGk-JR zJOp*O4A-Ivlhbu>jP%cuM zacfp;+lkZ|QRmh{Kk7thHG#LCprhLOp!ud&!1q#m7QMcnlwdZDP>O^^((<(iGUcmB z88cAnQ&V)zvSf=2%Zk|A5R1~{!cw7>V2_JVk|SY$R( ztYA_C7s{_cU!7i@E6jXfEB3LeCJWw=vs&#|*R#d);}%7V6cmsxyNG^yya zSMrqi1iW2t->(M8h?((^;)p(b^KEJwkThc^pYK4w%SsS0S z3e7_kSb*kZUU*Q}K;`SA$$yR#M>6U7ez8)KmIRdG@p^Vc_&`cv7;OziWHOSm z6}{xsPUS|TsxpM|AJVuXz?bVILCI~fM-K#cQHrFr4lK38L&c!LQuRSkyg+{v89_8{ zKo$L|Bf>EHL+Z?J-A95fd9rCC?^t+H8u5G}LGAy>MCkmLLHfal;psS20uC_E~$mzVS4yG~%;kt#Ot9;KEar2tdVgKbo) zp@;-iqL>&Kaeut>4vTD-=4mtJCsAvZ?dj<$)B+40s-QrkmXvY|sR~mHbJqr#Sb$op zD1X0J#ICL{h3IYAV2Ogshf7h^_sv^SwF;b-S{Z>(%_+czk|K>U^W}%>=Iwd`8`Al1 zB?mB+x<-O!R^iG#zpxlBZ1e|RyTjbiNTl#@Hj1?OA^)5bH%vH&k;1#DQnH_uDdC)> zOAp>kdr4Y6o&Xb7P{iKx>Qq)}XEv^?KFN zoQQ=wpI#ItY(tvNPYY4Ei~xFF-Z1rJ3zOx*_r~|gzaOT%nCkoR;OIOnaT@O*070THBa&l(CyN4cfR1hRYGMO%3GS{=^#cZYL1Z5BR?IL3{`oPd| zJ$)G?P?4K2f@s4#T*&jxh6jKxBLtHR2325^m^LRSBY?Z3Em%njd(61oU!I=7)RT;i z!-#6`dJ2-paNA<`fB7$ee*w|1Lj{UK_2~+}9>FId_-cf{U;&<8z#}uC-{2Dw|N8ZW z?^}?b@3!AS=9?NPljqL~;O8g$goHYXJs&4=LMeWcQiZ!6ANk-5A<%s`<2x7r`ij41 zQ7so%_O^&#LQ-O~`9(xd{fQE8iSgAAK9|8c5UM~LeSZSU;An!8!Q!CxpiCmiMR5Wu zbS90V{fxax&rV3sF@Oj?d$#%V%jElh@%MAinArlT50y~FCp?~g-`?(IkiY)?{e%x~ zeEY^HLw0lo2T8@vS0EW#GjSq;(ESrD+ zJ5BQJ`2frb4)S9DW&4E&Ia|&)x8MJE_WW=2lf^&I{^#XCcheWE|Nd{_@bR4a&lA4( zGW)(ivFT5q)5IspeFE$6&$eG+IvF@0mb2&c$;ru=?*sMm0f{Ti(bO7eNR;%d*_ZWm zo>fBD6Ks5f8?E+3P{6{WvEuFREm+Az_V)Sdv#;0jffGdHn>8oX?JXaK`F{EAA5aDu zToM^hJ3C6kmm`sbJn0$$AW;jiHMeypo98DpeS=0{c4;?HgdHVdaY{&Agzw<4_AmZA-Rd(qw_k^! zf2L(8YGqpc*~#;njNZ)t7Y`Skt#^Trqt|lCT@|*v&eCL*X%)jPT|=C{+sI-Wv`wB} zg=tta)L{Pf#H4`>cK(Pi{^+dLUmqs(Pp5Q%gn(!$F6+-qAy^baL9}a(+Kf80YeODL z{U6SiPySIUbhU|1HXDv~BplBcr!?-TE9MUS)q3~t^XBc_&y2>KcQ^1HYz5p(&FaP8 z>SV#Zm;B)}dhmI#!9DO!aC@Sv=QUXECT!IpII|FtE3A%A1_}&Tb~D95s@C(@nW8>& zwNeDaXiSZK=T5YYs}juAA`(&IQx99RJpcLIXYdRWqBo;xr%47ZC?vyTGp9sZN)Vm| zN(@4ta&rM(2_tZ%P`|EPk2ZMRH+zkZ;3$SYx9R3%7A%qvCBoR#!$X|~hNG|})}f9Z zD?HwBK+Nzi5@unPAv{MKM37;voDynr%xFm^Ir@duD{BtsI>QR0ibr<)a<`n0kc;YYO~_A~NXwoPH%Xo*7&z{K)b>1d2Y zdyzUv@)VCx3E**I@{)W9(}5_WglG~mOZ|?uwxz<%7zIJ7m5z=~=)o(Ax3KX1{CfxsIywUtNsPwbAOS6DwvmQS6W|I~qP z<$#PPCY6lDg9+04F$wEczHGi!08P>{x};oX?rTz*W4`;It3Foe1am(nkb3zjdVARq zGTGb2=2*d$5jV=mkz(cSH&W@JkWdY$At8AFaD@D^7&j`>i1C~Fg)$+bsCWbyhqm+3 z4oVNw$HlY%4!0T9G-9%`J1CRjan7L;`OfaS;?UlNz0uAK{hHhH_!3UjA+ zd3nj&RY)NNRmpRNY~_FaPvrvW(=$HX7rjY$bkjewYnTj3^#3GhPYI*Js z>#D_^un@nVI_Mk(NY^V-v^8|;!Y1NaT!ABfnV7J00sQOtkspJ(#%V|{(Mz?~7$3iDcL5~+QCQ3^lpv zm?IUb_{tzfpMKpqnveHVwW8|F%#FM1J?iC22NbE*RO9AlOA$4SSSR9oE6OArDp{J5 z41E|!x@(TL+>u@&GO4euR88zo9dW$ghRBGCGsRnU6h{^{wdDxPEN+#b6czXYf$eza zQBf*8Ct*ucMkh+hkIP+2D=2ZtguR5^apCI8L;5_B<71By2#&jhcQ>hN3XfA zSu+V^cAF&Ang)HVb>#vrd0Cay!YYV(aDzGeHSUN2E1b-)gm);kQxfp)Wkp8>{*;rf z2LBFHB5G=j+QLrMwY%;FnJtOaEpKW%;jVDyQr*$ZCh`4EKpWZcQ>` zDz-z`_Sfn{;_+j_vzK}zyM^Cqe&BfX9e?;6!9GyTk1wBxU(SgeHiiZ$|sX9Qw;`&Bg3r` z{c`c;E&gfN3+|XGgjslzTk~L@TG_HNz<@=mh)6RO@sFk2uUGgX{uhr_^>K>V#^&44 zpSiGvlD1-~-@xQb_uZGmKFo$5^J>68Y!+{)8->tp_ThZuz0DD(xPnM71Rp%6FwnbC zpU7y=hd8qh;~ASk z7%4Lq;WC^=ObSuWlt_u*s;M8Gg&g{60He8M=ih<*7|Qj2K~oY8cuzc%I3dq4_-4Mw zBT0|pK2{DoRUpdwoH`LQaN(FKXgBv`q#i4W1u0I*rja+(wT7_Sj2)UEHgo8w>JECu z=rTl-zyL3-hS1TI0kTIg_5m^iF#M7yfv4m3hek~SlEkn?42M@r3fQ2?Okqlv+bf5z zaPeoAClc)BymVTv#2%YD0pUBe34_C>rJ;NDswYrnmr?{$1U28o0phKh4uzdD=rtJn z3P~~%T@_$ZR|AJZiFzln6YbnsGHv%n%5_Qbhf&lS=no&*4}|J)bd&O%GttdU+cJ`E zY`DRVci?HGArmESTp}kmGc`be<*hWk2s>gv>NWLpNM0^o_VhF7>+e3ZeBr-)&BA`R52zm?ZG8+6s@F@wmSSEfr`NKdyb@)HZN|tWJFd%3tS3w zq@3OywK^^IVQr}QCy;5?#jec z6XKEXE6C6}@+XteuGk`jneNSgWbm6%fm5`49L7bmn4_S?^|7cbc=?G!|Tc|4!3 zKJ)oWO}F*nrY94Lf2>nWtxzFGD{$uQ(g~p==W<1_6Vc0WIu+1Th=U=7M2GV(RLJOhV_9e|BmSA+yqk>j$tv5-r#n! z8OgJ}OtT0VzbN`T%WQn+@t0|b`RJykLgZQ<_ihFhG}jrk(~#B? z$)Uu44=>@!F>x^S9JpSEEsL}QGsc)sh`-{4_{kY@qMxYoA%)VHlrWssm*c8>!w-2W={x?>-F$FKMG zqzqep9#J!V+}Q~(0K=Egjy$28s0+2Ce|fn>s<~zlY-M34g}0z`TZ<7-%<|!4iiljO zckXZ?@-ZgPCbNJAJDgJMhLF?+Fit4(^uOW?c(%3;3Ka_u6qUc0Ol|}eAw~rcWZQjU zRSoGN5J*WfKRwA*WNBEqnW*vKP9}AXb;MuIfTA};?I)+aHq|pj z@?&$#z)m<4)Wb1kU(GkXNu!rUBtnG{B2P-ya(fND#O1O~el7)4`(^>`j*H4`PuB%z zED)uO!fe=o{v=f4iwLDW5kJ46x1`Tn5=U2WW$6#ADf_Mxy;*-2BM_a)%vYb+{K#mE z|0reqxwIX`)pLQjOE5QD3fN5O z&Kja|V_m;*7wXKg<7&+caN@~TU}8ao$Fjj>IjU0_N3Z=)y$!X7gsPha>$jVnz43~| zeS37$_c9s7Gx#)l2B7HMIF5$gNL=_+?*uBP8DPk{vYaR% z?tYW+){EqE6B{-nu^}IntworuZ&>yebzfw*PkxDJ3s&WQt}@{GAHq?m)HDqPRP7N` zLlC}p#VwR^g9c^HfD&jXfH%wtSdrQd;u1yNc3~04*P=TqdN#Si)7HZU`OKMPQo>`gy4q|-XQP7>2vC*-vyn=&Y5%~$ z?16bTZ^zvU29w3uI>GWjB1Zl=qj7Q#PJ{9)oV3X6OTC2$P2-{*3BE`I3ZZK`kz zFl6f81|G46qM{-5spvb1%^;pi5aJn2#jpfNWZ0{FnRBqW2}ty@DZf@gI?8Rh2DYz2 zOAv0YWDZ9oV~nKkkm8m5g3TU~2qPfTt<(#BK(zs2UQ{0VX;fTQ5;w4jt20G7-E>t% z_y+a=f1hRntf#MCGB&L{0*!@7j!(%`NJHRC8ymbgeFytN22TK9E+>y9l1T);ydve2 zqK&;&!zJAoY?-DK!!vFR?dL=RZal0%v7u$zhKJ^@ymyL=7oRB_6#fZ6QFDs?i&O0q zp$rw_UY$=|-l~C{KVZms+ch*q1pbL(q#}lyRHFcSs^+UpF+o!uoSpJ&M{xm%(HoNz zjm*4z496gVGTHDPS&9P&O`wpL-U^0}VN=wClEzD_B$@EB5C;bo*TCe|PgYVXS^a+` zWhEG_xsYTO-7@K@ed;(aTuvRz8|YoBRb{}n8!HBl6cZr=Y}r8~eE%uMxGW7GY|C zNN!fen?OtNX7Y6>++t|>6W{14`7C1&I;ydupL>1==2RtR?NOd=OlR!5pZ3t18R%LJB!Jk(|EG+@bUJie_2O7M3}}K*BbBQd zURKowEHgGPl0|{Em@jML+Wz1up>_kd+yNeeRExlV|I_DJ>K=`oBZZ9^S+@a*l^hJp zx4x7PBUMpYX4HiYm^Oe(xot4xJdjbh1%Q|qV~KZQH4;Pg3O7H80Ja)ObtQk%x4_jH z=`2dwNO6qG*`Bq>WtGMZ3A2XP(4w6Ik3}nO%1~vTGI}7>J9HyQ#rAZFlpDE`p_TMn%F`&YjLe zg98?enR4VjjX4sdO3W))MmUGOS&*Xd#i|Dk8(@Rc4?1}DBjg%G9kdo3IvR*tl3?Rx z=FBmK8|RFez?i-~og{HI3*nGZP6V0olzcP!K5V)P&iOfVeOjqY;BdQmNcWU6Vq0_BFN zg^ef;uV0N`gLT0qz6_tzbkXF~38l0hL-}_{ZzJ?BY5c_Sq2i%j zQFy58L5>ATb1+D4X$j5J62lMC7?;tMZ_l^yF7==f<-{;40Q21y4vf6=ONA~?*xW$Z zkAud?gU^hqK9na`3Cr$M%^&W9M!^8vZSX4;0~{F~g2r%Y0Si5)^0m9f`gx!@Ems1Q z)MUt+n(}^Y7ND6(02w3>$#^Bsxkl)c(02cEsRx@`)N{`VhKJlEB1pIbVpjVJxkHDUA()o=$f<}BNnr4)*LaOh$mpsRQMCxvVbh9;ZL39wA8jwvB z0vkim#MDzg{nj)!14zoHx*=KLAhD{~wGO*&gbYlIfOBEOqlC>5U7^TSsxYwzWWD0sQF1vLS=_%B(t7G8dC=;1)=M-^bG=fG-6uPCbPBIh>TmT2vn-Rb9 zVUZ>I80=~7#B#X|Zmv2@y@ac}-a@VFAc5Ah1Qk$vCUw$I`DrE=&GyY7SI4Q!@0HXi}H%leziiN{g&Vr?P1`%gn%Opk{2nZD@Hx08-fC4wuNhl~5&>v(*Wb4}t3AY{PPH z=jW*oPL4JR#hRs3Vz7dWzEl||p=ioXnS)GxDYNr&NEt_;mgSX~+FM#mSgZkSL7Dr& zoFy{-gqaL7r}<38oE0PK+|9qmg(1@17>6ozkfq7=K!Xb@jS`|EQhkBB0Fst1rb8Yee>ZcKPJ=lCMz*(vcVB4!XD;YkHl6uO`uHgIF8xzHQ zqDVCiA~b3WA5tV~Ayx;#x{v6WOa1q+$^LTbxWVYgFRxL6VS zF7I%{q0tBq>`SV=PTB4e0- za0|ca3$9YyLMP;W!gL{Z`T0Tg0;ao;h7XQrUj=xuaH_9 zxXn^k^MA)rMejqx^tQiW`Qzxl4}V-T-K{eZOaND;dB~z=v0ff%sbENB$A@ojjw$`F zGdtjqqW5=E{mn?fEqWg!|Etma5YoeCzY@K+KC94|ujdWFd$Zc7y3&y|wZJ&UTkm%d z9ib5Kq)t{5oVrfx5W}tr(*lyS2)FkUJ=}1oVr^!Pqkt=K2AR5#Lsv|i47rZHQ_Eg- zKv>Baq*53(4jwkQHyhQo0eLuE=(JCjeN(3{m7{v~nm(ynF$4!;k(xZp2bWAApUHP) zWrzrT=FHS)`1L00nsR4fLuO^LZn6Wb6ywfantTX`%SJ`&g)=X3S2x{;#75{*Gj19q zrDT4pTGDQ%V`c$0n^i#>q&J~T%zn9WwevgMB*W~~C3UrF0e~-W%xNn$e!bK>Vl3t= z%QXv`Fj7%dKlw}(LNlWFu01kji%a%w7Okvue76Hf{DgIG0Jhb6X7_DDuN(+}D>||+%t-$)Ud3mnW#B&%G@$d$_W#%R_^J)3( zOt{SIdu$N5dY}g^3y=vvcv`ITVzdx2ff193K7Xq#on>c81Q<>!;Hlt1aS^RdLd&Mu zU9Bl#W*z_=d800D2bv2Lcqp|Op#IVjRc;A;l*Wilb6IapQ)myTP=Jw=!QzxA=|b1} zc5{5Vnjm07H{R}gZTQLT^{WG7b9k2st}fQ#m0p+<8^IUHvVtJ9$dbIf#lQ$VX??BV z+`W&E+YKY|qDNGs4wxE#1zxGG8*^IZ+K-nh8(0d*(Q5=1AHpvt>nM$VaLcN0E@Ks+ zE*rPVL*O`iWrEuO&?U4jTJP2P_22RX+fK-g^s|h>ob>=X>Qv*t?m^pBT{?He zdMGR0gl^a+iZXg9iolF>7d2Bl6mE6iTD_KG(vYVYs)|T8_p|W^6;F&OIeP%dYSrDO z+M)uJRFE!=Y~TezOEDx%c8)3ZQ2bWU5ttF@=L0w2{{X19a@HT zs4AsGYE;h^Ynu-HDhxB3M$R%|P*Nj2Co35RQxZv1osx8If^O21O;y^fuBiLiuDb2j zisSI^6-S=6*Re*`V5*>|0C3EB;36N=3UlSdsl`IIS`GWI<~75Z>(wirgpn^^`UtG@ z=9qoRhR(4$0yRFeWsFT(woilrg?^^`Em5qxAl>g8?vx)!c$+)$_a=g43I4pilpX#& za(_0ZLr?K%Q-)qe?|%U0PO@UApZ~v^IgI)LVe_gmf$Kl)MB0#sMp3SZhk=n?-HGOeAa1^V< znE~1%^pDx`2wJM8W6M`}oKx{0^=KJp5y^|6(^uz4pX<0^=~&E#*7|j`Fn2u*;xt^i zuz*d!PXN-LSLm9~>RLz_Z**ij4JnRY%Z$}=vU0Unmx;h&B5C6^xeG*1$tTf^0S8&K z(5>>=q}`|#tmZ7T@PWciG&0GzjxBG946O-cT87C8FpS1z2B>+8#-vGzmRW5F!BB^b ziI01Mt+*Xh&2(Ilb}t2E0n-7UvyjxWok$CV1+fe&U>-Xb9D_W9MK!~0FI7IgJmWaI zy3w(4x5{U#Vv_pclWG?_k~}jvJ4QFEERrgAI><`8kWtz=T{x)g}M{002ovPDHLkV1k6Wb2& cli_override) { static const std::array candidates = { "gcc", "clang", "cl" }; for (const char* c : candidates) { // Probe with --version. We don't parse output; non-zero exit means not present. - const std::string probe = std::string(c) + " --version >NUL 2>&1"; + // The null device differs by platform: NUL on Windows, /dev/null on + // POSIX. Using ">NUL" on macOS/Linux both misdirects the redirect and + // leaves a stray file named "NUL" in the cwd. +#ifdef _WIN32 + const std::string null_dev = "NUL"; +#else + const std::string null_dev = "/dev/null"; +#endif + const std::string probe = std::string(c) + " --version >" + null_dev + " 2>&1"; if (std::system(probe.c_str()) == 0) { return c; } diff --git a/runtime/src/autocompile.c b/runtime/src/autocompile.c index 58753fce..868dddc0 100644 --- a/runtime/src/autocompile.c +++ b/runtime/src/autocompile.c @@ -5,6 +5,7 @@ #include #include +#include /* getenv — declared here; glibc/windows.h leak it, macOS SDK does not */ #include #ifdef _WIN32