From 0156e4e2107bfb50b72513059d747c91a436c39b Mon Sep 17 00:00:00 2001 From: holdmysocks <1349908+holdmysocks@users.noreply.github.com> Date: Fri, 2 Oct 2026 10:39:34 -0400 Subject: [PATCH] Stop registering with payload autoloaders The installer no longer adds the daemon to Payload Manager's or ps5_autoloader's load order. It writes /data/tailscale/tailscale.elf, adds the home screen icon and starts the daemon; starting it after a reboot is left to the user. The daemon's status page and Uninstall no longer look at autoloaders either. --- README.md | 34 +++--- docs/BUILDING.md | 2 +- docs/TECHNICAL.md | 20 +--- docs/status-page.png | Bin 59674 -> 56627 bytes installer/main.c | 118 +++------------------ tsd/autostart.go | 114 -------------------- tsd/{autostart_test.go => forward_test.go} | 21 ---- tsd/status.html | 3 +- tsd/uninstall.go | 30 ++++++ tsd/web.go | 11 +- 10 files changed, 70 insertions(+), 283 deletions(-) delete mode 100644 tsd/autostart.go rename tsd/{autostart_test.go => forward_test.go} (58%) create mode 100644 tsd/uninstall.go diff --git a/README.md b/README.md index a7f9a16..78a553a 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,7 @@ Puts a jailbroken PS5 on your [Tailscale](https://tailscale.com) network. your other Tailscale devices. - **Stream games to the console over Tailscale.** A Moonlight client on the PS5 (such as ProsperoLight) can connect to a Sunshine host on your tailnet. -- **Starts by itself** after each jailbreak if you use a payload autoloader, - and adds a home screen icon for its status page. +- **Home screen icon** that opens its status page. It runs the real Tailscale client code (v1.104.0) as a single payload. @@ -36,11 +35,8 @@ VPN here. It runs inside one process: - A jailbroken PS5 with an ELF loader listening on port 9021 (for example [elfldr](https://github.com/ps5-payload-dev/elfldr)). - A Tailscale account. -- Optional: a payload autoloader, so Tailscale starts after every jailbreak. - [Payload Manager](https://github.com/itsPLK/ps5-payload-manager) and - `ps5_autoloader` folders are detected. -Tested on firmware 13.42 with elfldr 0.26 and Payload Manager 0.5.2. +Tested on firmware 13.42 with elfldr 0.26. ## Install @@ -59,8 +55,7 @@ Tested on firmware 13.42 with elfldr 0.26 and Payload Manager 0.5.2. ``` The installer prints what it does. It: - - stores the daemon payload (`tailscale.elf`), - - adds it to the end of your autoloader's load order, if it finds one, + - stores the daemon payload as `/data/tailscale/tailscale.elf`, - adds a **Tailscale** icon to the home screen (media section), - starts Tailscale. @@ -73,6 +68,11 @@ The console now has a tailnet address, shown on the status page. Sending the installer again upgrades and restarts Tailscale. The login is kept. +Tailscale runs until the console restarts. After a restart and jailbreak, +send `/data/tailscale/tailscale.elf` (or the installer) to the ELF loader +again. The installer does not change any payload autoloader; if you use one, +you can add that file to it yourself. + ## Using it ### Reaching the console @@ -141,7 +141,7 @@ The daemon also runs an HTTP proxy on `127.0.0.1:8118` that reaches tailnet hosts, for apps that have their own proxy setting. **Do not set it as the PS5's system proxy.** The system then sends everything through it, including pages on `127.0.0.1`, and it is not running until Tailscale has been loaded. -On the test console that stopped Payload Manager's page from opening. +On the test console that stopped another homebrew tool's page from opening. ## Configuration @@ -184,20 +184,19 @@ Files on the console: | `/data/tailscale/state/` | Tailscale's state, including the login. | | `/data/tailscale/tailscale.log` | The daemon's log, rotated at 2 MB. | | `/data/tailscale/tailscale-debug.log` | Tailscale's detailed log, up to 4 MB plus one older file. | -| `/data/pldmgr/payloads/Tailscale/tailscale.elf` | The daemon, when Payload Manager is used. | -| `/data/tailscale/tailscale.elf` | The daemon, when no autoloader was found. | +| `/data/tailscale/tailscale.elf` | The daemon payload. | | `/user/app/TSCL00001/` | The home screen icon. | ## Uninstall -Press **Uninstall** on the status page. It removes the autoloader entry and -the daemon payload and stops Tailscale. It asks whether to also log out and -delete the saved login. +Press **Uninstall** on the status page. It deletes the daemon payload and +stops Tailscale. It asks whether to also log out and delete the saved login. Two things are left to do by hand: - Delete the home screen icon (Options button, then Delete). - Remove the device in the Tailscale admin console. +- If you added the payload to an autoloader yourself, remove it there. ## Troubleshooting @@ -229,13 +228,12 @@ lowest scheduling priority on at most 4 cores, so it gives way to games. ## What has and has not been tested Tested on the one console: install and upgrade, login with device approval, -autostart after a reboot through Payload Manager, reaching the console over +starting again after a reboot with the saved login, reaching the console over the tailnet, a ProsperoLight stream from a Sunshine host through the forward, the HTTP proxy, the home screen icon. -Not tested: rest mode, the `ps5_autoloader` and USB autoloader paths, -Uninstall on a console, other firmware versions, coordination servers other -than Tailscale's. +Not tested: rest mode, Uninstall on a console, other firmware versions, +coordination servers other than Tailscale's. ## Building diff --git a/docs/BUILDING.md b/docs/BUILDING.md index 7336af8..31ba7a2 100644 --- a/docs/BUILDING.md +++ b/docs/BUILDING.md @@ -52,7 +52,7 @@ These folders are not in the repository. ```powershell # daemon payload: C launcher + Go program -> out\tailscale.elf -.\tools\build-payload.ps1 -GoDir tsd -Name tailscale -Version 0.2.1 +.\tools\build-payload.ps1 -GoDir tsd -Name tailscale -Version 0.3.0 # installer -> out\tailscale-installer.elf (embeds out\tailscale.elf) .\tools\build-installer.ps1 diff --git a/docs/TECHNICAL.md b/docs/TECHNICAL.md index 27449ce..792cf9d 100644 --- a/docs/TECHNICAL.md +++ b/docs/TECHNICAL.md @@ -37,10 +37,11 @@ specification. - A payload that is sent again stops the running instance (through the status page, or failing that by the pid it recorded) and takes over. -**The installer** (`installer/`, C) embeds `tailscale.elf`. It stores it -where the console's autoloader looks, appends it to the load order, registers -a home screen app whose `param.json` has a `deeplinkUri` to the status page, -and starts the daemon by sending it to the ELF loader on `127.0.0.1:9021`. +**The installer** (`installer/`, C) embeds `tailscale.elf`. It writes it to +`/data/tailscale/tailscale.elf`, registers a home screen app whose +`param.json` has a `deeplinkUri` to the status page, and starts the daemon by +sending it to the ELF loader on `127.0.0.1:9021`. It does not modify any +payload autoloader. ## The PS5 as a Go target @@ -136,17 +137,6 @@ Linking `libSceAppInstUtil` alone leaves the payload stopped before it runs. It needs `-lSceIpmi -lSceAppInstUtil -lSceUserService -lSceSystemService`, in that order, as in the SDK's `install_app` sample. -## Autoloaders - -- Payload Manager: load order in `/data/pldmgr/autoload.txt`, one file name - per line, `!N` for a delay in milliseconds. It finds a named file anywhere - below `/data/pldmgr` and launches it by streaming it to `127.0.0.1:9021`. -- `ps5_autoloader`: `autoload.txt` in `/data/ps5_autoloader` or the same - folder on a USB drive, with the payloads next to it. - -The table of autoloaders exists twice, in `installer/main.c` and -`tsd/autostart.go`. - ## Known problems - Once, switching the console from Wi-Fi to Ethernet during a Moonlight diff --git a/docs/status-page.png b/docs/status-page.png index 79e400c8ca768617008bc6400eb53cd6013b4ae1..e0fce8f522b0ab5fdbef74c80e849c9eadae14f2 100644 GIT binary patch literal 56627 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 literal 59674 zcmd43byQnXxGzW*inSCi+Cp(FUc7j5hvF^nS~Nf?1&ULOdvSMyLy8yo;80wH2MLhO zY45#n-kZN>)}6Oz7K^My)=ADedw+X>Klwhw)Kui~u*tD8Ffj1s-%D#?U_3AceowLP z1Mh6d%Hv^RJj0NemeBG_Ke&5pNVMH{i8j&Ens_H!bA|ae_6k#3+B7zRt0`C?mK#!1 z&hSMxM{w`x;#|dv{;8SoqNx*8z~n!tK4SK@!otElz|UFcsQd8q=YrNnz)ih7x}ds; zfe~OFqlN|iDftR`!3qXmo&`z%J^c5^!|Z3kap1o*B$yror@tfup6J~(Y~Z6W|35l? zC(Y&}#B;e+P+e2AXbQ}dN&*<$u+^;UOu5^%%6*q_q|jwlMN zm`A}sruT|Nlba8yptc;0XtFZ%1#98aY284H-NcMwxKh+trh>1kp6 z&DA@g=I-DJyf604WgfzN#YFHgMqdR(zf$=A8!a!>E!K8^kYRc?s zOcUqgayfh+(i?;Cc(aK_J1^s}Hh=0dzI-lLP`8zzrQ)~I{vLGs*1e@Wtu)IUVKjrq zn#7rT^7}!or=V<+=xrKll7o2pl700~vE14>+2u`NxG4e^Xi^3$RQdeU5}BH1H5v+4 z1?T##2=DpPxSv-f)sT+9=Vcr0(L6$}YIhZ8wy#2sVMiqDmu~i9i{Ec1`)Jh6OzcD; z=oOP8?=!k_!FtVl%M?tb2jrDTZXz@{Q%-KBNt;(Dd%ZDeS|D)BVFpgT-nQznr_?W2 zn-SXlI2xP8e<^Pk5!T+Lp z#ZvSj*=~K;Q+04+H4)u(I2zU46mut`b2#z<#LuR{`??Er9zwkz=G_;aB$Tjl598fC zA3G*rcmF*e)`o)$5eJ?q?~Us0Skg2&*Jed^%p+=$VaKNanH){2>{#>O(zRliLGBXi z$z6|Iy1<;j|6WvjR?$?lkSC%ZYB;56an$mO3- z9eus48MEW&AaXTm0eSvZ$>QO&0e%FKM7Pqlcx8r>429HIK zzaFd{9{iMLxn(o~HW!OFh-x;o%XmprO@Y`)>q~f`r>fBqIVj8L^9&tl8)6x1D5C9s z{1n~peQ7f-byWT0B)Y|(^AMTjy;Z`3K#puV>Am&k{Z15kJmMeQ!q!>yl_`yv!rLw(IuUXHYfQ zO=z{HYkMb>TfzO4LYij+5;__tw^`^_B*NBUGtr{9UgUT-CyT>`*Q~6Tf$aM0rg&Dn zLCee)CmJQbeV3ze5ZB3Txfj_pm^502IfO}_NOMyMz;6#7idFeUh_f&OwV8P{MUutp9GV$S1T2vvvZUeX$NDM3OxAARe zKlMX<=jVIvs77k-xL}CP-k7M^lXD0s)zhQ!&oO?(!z0K)yPU$t95fYv{_6FUoEZX6 zOA-bxq~boFgAuAKsMUyy!2D2OuMp$vx{P{8N%%A8mY@zXhnAdTY z8=GEG1nH62Mkg1LRkSN#8!w_4RgKHE?pa?rMQ?~wJ8#)7qQ#-;wT@rC?!nE!vnTQL zySXlC9uO^ok}9D$kR+!ohxNqm`WBr&xuXsH6j8pTlV7?}k1haz?5MQWXzc7^lZo+a zz|Kvn4bDqnP~A0|uk0<))tokgeeBns;-J=k8$amm>JdIN`Rp+Z^67Gd3(WR*j~bt~ zP+d>r;c&gY{nDaExO=cD6Z4re5+D3|9L40?JBl_N*Sf1Wn)@Xre(C9i8qj^@0Cq25 zHxmDVpoyT4AV5-r`4;BNZpTgR*V4w&?Q+J*yI6SBSz(`Dem~}#l`wckzxl$V7CCx; zOC`+T$}6mn_IfJ9kJg3y*_PR<+lV~I_?drqOuYkpn70_)-PTr$PxvBNJfY&k2GAMl_I-4F0vv^eXtoGoe)xPq;wdU(HQnXb zT{++8TJz!VTgkTCf-^UCivRaAM$rel<9^@E`V=G^9}G9oYp^;ZPjy>e8ewLi zmc35C6^}eZJ+{|t^I6DRfm(lXvfZ_NI!Jt}dgj0T8w8$%ppWHTH-+TX_b;N-o7|G_ zzMz6IFc$Co(PH8e15dECO%=aJG_MGRrj0d);et(vablM8sl9KoDs+3cH~kBk#U*b~EDU0R zIUZX$N2+;&hu*nZ_C-*X3X#DXIZ+48;x|;~wv#pZ46cK(+5A?kS)Fbx-R0^cZ#p}n zO_(k6;*{2U7trWkGsmmB384f-(W0lxzA?{W>i}*(m*k}xT$^JQ(4M%tP>!a#zHYfW zPxstV1z(GJbecEJ#5jDm>@M-!%!*cef1Dhk5cJglcwcw<4&V|2%gjuy!6lH-KQ|Lt zEkS9;?uEIoTSecR9^Tct1TRqCxhUJhiG#;D~%4jCka1&>A#5Dtx$IB!hAlVATdGm06XU95zNSHHX-7_oqA+;eg5 zeBD>%Nsm6z?cbBQY0Vd|KLPt4zn+p+2F9)EiRJ{~XgMXPR!yL$IU*wt|{ z?jr<2GhL+9kvW-2`FI~@iG!&$Pi>*wLV2j?(RAVSRjERgYZDfql0FHx(o9XW!qOxv3Zlq8}@5~*4ThV=Dc6J!M=QcwB zxe;Cc?NI2<>ZXlud!;`8#GVR2UdOTZR5s}-58y!(Wx9*j6USl8x`($5`^E%z##b{Y z-t5?!;FhY}S8c1)V*>|mzSfiyzWzNkkruTFm7B>F)I9Y%pxsVuYpO)}ICc44$rn(a zZIcK7^=%xJOScK6@{X{h!>3)+YpyA}7(KKFIi^e$3x_d56@GlH~ohv#;og~nIRC)13pu4zT!xMH-@x9n*$rFhMf z^oD`->1|=iO?reaji-v+sko?X5~2~iMgLg)0ih*B1hjRUgJ9rI^Qw$^96*2C|P+n|*992>t z{QTB$w?w&8TCiXarM;UeXXtdvhY##l!$@g-a+biTHi^VVVAFc`(!Z4)*v0~?cqW{tY{`+kDyQDPdGvw0I#SzUs6pZ%2!#syC=mPimd80Rq zVg?#tVFZQwAoj$it8h-$W(!qmCV##%fh;}q3tFtuMW4h}LQx8TPtQ}$ItsEzUbLN! z9Jko(a)9p;GqhfayTgoC+V_a3cvO_ccQKspji^mXef_?PpSx7($K^x}jGqR6>|I|Y zpPhoa@n!KTec}51Q4|ie?;klZ;o{vL8hNfv-p&=ef`By|kaj$+YXUL8le;n^Fj-RL zQh%8Hr*&Mqo_s~vd5n}j3kNvIkv2EjX6$1MkMtYt5j8SF>-UOhR=^VYX}|}D5eYhn zV#!L7VIMWFw>ZpLSO~mTYym>oAg`Hhxskx9&r@dXNvGPZ(=QBybPFS33#U6j5`XtF z<0WpetFWK@dI<2SjgQ)!$6;WM>|>9yN_0Sd{m(WdN(>C&7W1JU(#V9)m$xT-?S40> zIMcv4lf-h-F`?g)gKx-ykNyjQ{~gjtw?Id$Klpk){It^^*id|mo_+D4rJ?X1?Ot8Y zecazSY=uVcg0?AEL>Yx_uJQ^=MQ%PTEVivacx?Tkf^UI*nH6C5Y7y0ybQYq8zh)&JWaF1 zZ$)K+MSRNkBFQq|?2gmiS*JF(DWxVp7toq51E%evpk%hsW_H!X6ss~-8TJSiuF)1*{q6FDv^xW59@a1-xh?ZMkioP;LUFr|p zg-GvAJD&|`iz`P^kXJysO}PeSS!)fD26lST@$y_yaKqofWcxjP@c=Sbt@zn zY*>4+qB<|vzmirc%X|ZNRViqVM-+(-^!1^Va!wp}R^~mc{+)w_~#yq!QlSNjjtlEyu+D9`1 zg4k0zrq9=h#~>%yhp#f#G9FuSmm)`J?ie~74?0)OyZ2s|HC+#)R#zV=RZpViBo>bs z1@{$j=|ZB=G>?iI1ScSN4<6%U#rS;g;5-}6Ye5|2M1WA!L^DiMjOgNL=0iDeXj23FR@#UQqC`4Uc5ern_f394&J7V_Etb@>WQN|(%t1YeU+F;tyI-3(bmH_`m|F? z8_>C=Jc$A*_-40`Chx8gmNw?`Im1^3jwybp+((#RbL-7cFduCj5uccPK3WOGn#B0K zM0h2$2gOIgu5oms$EYuPG;ThfYS&p?W|eoJ)7rwWjv&q<%ZMw;K za^)5maV598^Iz|+9#YX%Y7=v;SkP=H^&RBmPH*$N<@kIQ{eC7JC3ebqa{()A&S3WV zkv?3zyP_Gj$awxPAZu%w|n6#)a7YU*du09Yra--~(6>DFG>ThnC zDQCvn+3?qmWM0p{4Hsi1NNYk{7xcAs9z_w@xahZ>^ucP#36k*{cJ_1m8h-y|0WLTy z1H{~U+nMq-qTO|s@hBsS?(>^4Rh7LI`<-q^4QcNbbZn&`bNj3M=F||&m`}so8B*=` zyG8fs`=9uKr2!=A&rc<@)0*L%>t{L0i~W7BR`^~LO`AV&z?1mayJc0)LYXIV-rA^Y zLe@)fWdohGNY&K`roH)CtJu+(sb+{YEqf}N(O-Jv>Tb`6kIGF>6*(J}V^nN(f`^lX zXrf52@7)!6U=k8>4cBCQ1@y^LWV~5?{cohQBn8UxvhFssa7GBWM!KBvf8 ziS9P;%!gDl z0tb9Bdl=`(YJ$6RT)G*P+8vNApCX=RegLwXEVW9!joNBNXP9z}A}7)|2jSxKxyIIF z>ggt98Q{lGfSjT~kjANm9pg=V^wdUNSDbAU3PqX?)oZ|GYSWp2qs=;@7QOgnLhyWn zLcyeNeRFV28=uHlUm6;{W$A)~qwB4|qM!Jm9xbqKnG`&wdUm#M(tZ}?=fht*O+ukq z{R~isBNbNJolm1IczATsCm%B4sb>`nb~CBs71cz@Ku9 z2OkMmjh^s?((j{(H42S2D*fhsnFF3sBYSd^!j~s~C!~VS~~| zeJ=40EDaj#eGkJ?BQ&7nk6>w{5|)!tyUlt9PDn@B5Nl$z;6B$gYsQu;S~?hFN~hju zizNa85&ZA+$09l}8 zyv`KHc!(qUNtj)G(|xu7g&QW$Pq!g;hI<&l;9*;4oFxs1(T2h|{er||^AT~}Gb7YC zV8a$Gc%m&_{kF4J&-9X-3#1e2Qv#8|nLA9U-16N^OrbXU)R7h`4&6&E;^ z9x0^-8I@39{7Y*GmE;EDQC$vrR3yDM4OGK*&}p62xb_L!p=;2YMiA=5u%0M{n4XiV zO1$1m*AT}nY&DU*qn$?NTRt1#;d z2B!H@6%z89s7gJzm$n&x9*6J)W0J1xaqegx^WUn+JGb{oV|fNQTMuX!-#luFZSgzA zc&1cDX(wbZgVD0n=G8~=%A*ag=!l8TWv*fsq$ zcQ5PiF^=j*dR_x3>4Jva54=X-D688P1NR@V$+gLFxz{@cQaS?;6nC{FQ1lvbm3fd z#(tnVOgmbJJHPdhb>u}m*(02D1lxlYO2;Adl3;yM{`RcY>Xj$Kx-X?lC%z%%Q zOy}9IgVZ!pzmq&2s;3rcbZ4f*tFUGO*96W79eA+GPOaM2_ZojP^R;ru%Yg__W7vuY z^h_;->_yV+F*?17j7PP2XBKZlmDP%s^2M#>ox6PH=#?H3nep3Z;SBE=_UK2XC)5Ty z$a%)pSM5j@XcIA$sIMZE3e!=XA{W9t8$+AvA;P_#j1PsTQ+N4?EnJ1Fsp&ul zS}Smvm{>6V_eYvh<;BqzKm7GoqS)*G6DO(~8QX9Xwf^@R))94vdX;=P_V=I(|86jQ z?CD&nh#2GD3%AW9+y@Z+V0P`w@@WOXun5-)ne8SY+O><@k54Oau!H)3C$lgEEBxBw3ewD zR^@H|JG~1e!+rj96tQvAxn}Rzu41_-+77I5;ekjTelAnW3@j%pOSklX9Wxi15WKTE z8Y8&9?>VIb#I!kKCrBrsrzfSYp`2r(0?AzBVI@b}z{}TF!?&~$R=!lYQq+5oNXz#%Tg)x z%y6PMfpjm^Re6jq&&OssiB&8&>$44|LHL~#QLT=ij&1K^%vsqTlec!vE$tbir~Nae zY4&WLdGj|CXoe?gK@Ez157?&|If-4=l5ulbX`2^a_{?P* zTl>aYOng*<-W`$~O79t$*<#Q&`~T11yDqLTCrQ&sC@@IhrFN%^V#J9XWSU zTmLIB{HqIizyBq0T@xS@ZcZCNk!KLv#xY+&mieE3`EzE#&)#7}{&nDAz9sl;!N2?K z$z%L?O#0R*K;}AiC1EK3Htv>X(lS8F-fjVeJd7j!5|yeyzrBr12wY-02XO;k#=(I?q0R zzY#C_>~bqVx$YY*XXDW$$I9}REDHBuW-l>*_R$gDNA2wP>EHg%0$=8(%wFr)w~5f{ zfXrD9c+4#1zY&fud+=(4ze3(J+kO4?m|HhL+1{ems-os$l@~lQFL%yn@B@&lYV4Bu zwh)|op%dwH!ag8Q<1+^B$D~C&%{T4`UN|Rv_e^kEWvEi+Y>Pp?&Uc3~=}1SZcdtp9ncd3$ z8m)^bB4S4@_x0?~EW`9U5t4kvL0FfbySU2B5YPqES9kJcsnCdXN3s3pylAff)7s+l zv`oTbZP7wT3nXXhoXQMIMix2s!p~PZMLVw%Z-iq=v6`5^kaXwTYz0Z4@P6a>i-HXtsb;Kaqn7xN?flXzkP8wV9&$3@cGAJ+$ zH`6REY@?_Jv5h&?5-F_saTE=8O8WKlvYOaS@kKzqJfBjYwX;gi>9KHlu~PM47lhYL zYpZ)(t|rCM@4`xwb+?#a=u(J$D+%3V8`E2WvI=)V>Ky5LFNLyn$OwB+jW77m`f6C1 zVMm^dri1lq6grHR&#yt6G69hZgC6w8qY9a&hx=@&*R%BL5pd%gzRIiug)}6u08wJf z8IbC7y4Tjtgv83&+&m1=9|ahEX^9cmQr}=o3qyuavUd_Kortz>UkI%kZGJgTJmw19 zWB?I-WZ{6cSIqU796p?@;b7wn%pMgjtd$n!HX(u=3YYg*c&RT93JVNz~# zxcMhCjmfGQYqDqU~F8e=*(+FLl}P-8QtRIVVW}GEn3C#cc7p z;_&HIk;_O=V#ofLU52rkWxdWo#xBI8<&%Gl>}_D#qY>SeTFWbwYVNf`gvmz}|G_}l zT9&!J%H1U??dvKp(i}5f}ZT4Q9)T$sTtrA9| z`Z)uH?)W-9M7Gbs|*d$(6rV5%=n)d`6oE z17Us1a{`DVLoBxD+@3l6;qQU(<=MSQT4g=arrI6#8fQY<8xgES@tVJ}MM}L5p0D73 zk>U@iSjggR&(5^fm)Z-PQH+$TE86%-y!3m&Pb=ThKw0^Zri&dOY5imI+>+3v$ZX^e z%|1E-F=hAylV;i=?h#G2Rpe-|WNKXuQl6-{$xjd%;pIoE@ z`C`8(o(d(^xCUZg$H_wc61Lqj{ve7oI#Q8aBqAJ_P|UD#afhp>Wq`fOPC$^N;|}kD zSjFF76Tv9QlVjU;*C_je+`fb-CD*G!=9&1VR{ZaAW%W#lf|@@Y_KDhI(x3xdJ$!rl z`*fuyYZP>YK@6omYI0gpOEu2P=1xwKFoPZh7X**!%`|yMI2ieyfAnuanUzF5zFBKm1}D?KO%iA%rlM>@y{;3ZfV;i zZ;0K@^`>wfYt>m>+D=Z$D^nh9QQge^jiBN9)N-f$@QR?vx~=%9Bc*2}v~@=~o# z9<+-Uw11(@IJ>QMyFj$p8b2_XNXe zhS7CQjleMHTg+A7$B;k;zBa1z$9c1QsPe#o!na zYfa~$I&!SEE^BZG9M;+c16{V-RBk^UnLvLZBf#lt_E^5p{+=!TpKKB-bT&UI%y~m` z7r41OO){?hoOClULe#E73+JJrp8H@VBw&FHX@4 zK?OC_{h6zkFZajuObu)uKh*;o%YsCHm05}N+gFC*#m~Nzy+)*U-~LmQ@!fkSdU@TG ztLh|1*5q~Zezf7ee2N{sOGYulIPx>U!Ki+kfZ~(}=K;ac{^fRW#+$^$8XQ(`Y4y{< z`-tvYl%1RQ)y7+Z==10bF6YS-_QZ^ER;jw_mqD2HK-$XUJ$WJepU#sN_Y7FEeCMvxS1>#EWRIo9c_ zvB|pBj%`z+(QHqQhji>WkB4W##ajB1JZv#`8n#qIx&|qBGP`b^6)&@|p|G!_*Xh~`BckD;JSzD(a-Ete0jp(C-I>{;;o50Q?xf;||63)L7{)@ZY#zuw`X-@VUcq1MPLsGj zci{okiG?`p*&_c9k=Fgm<;=;CuHAWoETzmG!)2m6*(?>75V44KZp{#WoWYV8Jvy2S ziTn+9xAw%(AX*Lf67lr?Ts80YtPH6&!}W-Yl5_x_fyZ1Ja=lKut!d^k5ue&(NW;V2 zG)tbgir9LdfF)DCT6;7s0D8g5*`pJGkQ~2GsBNCCfKbi2wT@+{uUzyyv^)v-u~9B& z=dZmj3ZEG%T->^k(LkMDB}FV_zpH-y+OY^)6f5pwQl5Rnpn#t)2Oqo8pczEp#)s{j``y~e>eX~UhS<9k8%sglGRTJ^R1{9cjCHqk#$xPG-rujMG!v&a?j$_bL| z0VRPf5qGi7{C`!6RR^CA<&eC{rjOBdzRp>_RrW(&1aTl=X?)T&;TQmIR3 zmI6n!nnkP9`hxULjIPeV%SiS&R}4gA~QW+z56-@_w~9?0n3fUSXzMcMPs2hrdztp zq^F#ap5YKNLl;KdgDl9^_-n-Da+>T$i%7qF_b?>>PdqU)w*}(i_zytA=Dfh<)uvQL zVm{|#?>9<4W?p}0&!)44ml4dasg-{ANQzjEtQl8dr(NH6pomFVT#62xn!U!>XlII@ zc{haLq9MenVa`EQlw3C{Z0Z1^zwePMIAUJw$#KAM$v5utNIb<#*~PMU#nXqXZ;3O5kzn&$Esgp1n&;^Z73=AnR!7eUee~?v7)TYnB=ns*d!W<);Jy z)nZQreIVwWN_YM^3HPUu#;q@n$uu(9G_co=UT)n=-udI}5e-E`s6XiC_&iKK(6m#_ z!0Hq1HO#bqZe;3u#}Ms(hr`TGnD}A7@>yCxfhz-}rg!|=gPjS*IBbH8kaTto*b_jx8Y3?2HMx!jFJrS+UeByA~; zWtBn`)_ix>jF!s)7<&6!c~rx+SdYWN60f{@p8c2U9cs~?cyqsQyCy?m$z4;%MN%dN z^`o4(a5gpVQ~LZs%6fg$plO;Wm@pUCNK$UUp^7OK3p&UCBupz~&HwVxp= z5liJT=V_?T&AXN60UU{UG2{Phs@=iA$O_qAHvZh3wLjVD&w0Esf%1HD52JmFLa+$s zTaLw{g?&%F?$8Hrpzfs65%@Y)`5uNSt{?Wjm6}=&<&p|FUvce3Qq;`>ruJkS?kA-(rl+uWGX|5)51sZ%F?mJC^?1 z_H}TFT+kddio3CTOw^5~wHH9jXk&4e7sQ@8IC!S_0(}6NE5qeZa zS%h*hu%t;evZm2kKBR|g!cfGP5%}y2hsmd?TV8@cSAc8sfNZ+zH8tTS7Xe_@!^M6c zg<)VgJ`L)0>ewu>BoMT(+Wzxti`aW~^aX=ml%U;N9XMhwgL43x<6D9f=d|iEylV^L zI&&ov(kLi1tELqi8B9g@?;B<_i8U4bN~J}iApJxhwI)QgM1wbpR0=Hu_8 z4!|a{mO2O9DL8b(oF`W5YH`jq>}BS!WMH#H_!DV{KX5fu_$Sl3V{05+&_u=0Z9Drc z_zAF@Uc2y>BItDqO){M>1PF*xH9b%4J`&!;SQNtwUJ2|VSj{=pEU-vkSZX#^yvGKxr!tD_Qzz7dMRRN7GW38T_BxL;p8)i88++6 zum=||tqOwzee(nL#MY{SECML*L;f0C9y%p%fr;9fWwiVqsxMsUJlwkWHXe~wa@xv> znbD6@TKu>N6RXMZ*aFi6GMTjA56g!njTv=x~ z3+hlasTv7cj8qM-rI@QDQu!qmZ5&)}Cq8C>8_#p`PrOI|0>zfYT9c(rU}1-S8^!Hd z)bG)mQ`l><;HIf0i5nGHdoETVZm1I>CZSg}7)jhoVsRme47uikaLK%5OH3towP-ub zQ)-@D;5OG`ue-_&wV1|L{PTBmRIq~Kbz0snHy;-BVt2g-cadH50IIxV8Rz4Bq4)+b zirrM{{Ed2XUpH$~#w7$dEYw<1)5wXe!5DU*koMbe%+6SXBo6fkabYpV%`mrJO?WYv z%kA$(9?bnmjtYM%R5`EJ*M)ayNSkWd13mhCttR}~m5K@8l~?2c1O{_NMK}6@h1)c^ z+}<5f83YDAL(WV6N;IXWerUy4#zp+#b^E##=$L{96fMb|od|3!8n|fou!WqX~ztY|ez{!uGOdkhgyMpxz%Al5vodpX--t8g4WFTf2FHY(bi5 zQ(oy$_{m;2*ml%Ui+@S~Z-x&cA6M4;TGRg8PC@y_mnDR&9WcpPIt19Ds+~NpPs4?9 z3rSCar*>+YRrmdlN;()_BOT$VS~;J0iB0F4@s?9`mro$0H~4O`-~yNTf3|J;8#lgm zK6IPZ3qOm&?pvkj2S(xRYURY+bSK^NewrHVkG}^^D{?m| z6Rq3t+%&=*4W<{_Z6(y>=ZY9VaqErQAc;#`eILX#zod|3K{q(y;mrj{hNygsjSY-{N1a=UM;z!u8TGbypo0r5}Y&3^5HZK@Opva9ezT$j3Pr&)W>+m>v zY?}wyc}ESm(ZYk6gO|FLGz{})fa@eY@#@`KRU0mJrEUqfJ}cq8Bv z-1q!1GeM2{K>M%!;v{4sK?`^W)H|B9X|Gij@iqPMfV#^7VV2-FX^pMBz`*Lp1S!^&PtWUGy;%*Q&-W3g!0U$l0LQ!-NE`Kt8Q#NfY1ecRPNIB?N!g;!&t#$ z33gl~-C}>?z6F7lxC3vIw%-?Cr`SHX#%m@hZebN|I+ zI=nv|@@a0gAhbr;=@V^TS!(R!waDwQA5U}T_f}FhVt+J@I;4PJrwx+`k1G;$4O3b@ z2MF+!>@g-ALnSxwlaaybZNSgXR+_aVHYYYvX2waMqi=b`1M~T45w_E$phFTrr{uDg znTc(2TI>DLkzSZp`$IYZJzxQk`5wITRa$$ac=u@irJh(iaW3`HKk|C0*OEWqme90& zRS?xu*C0LW=YO&@2^x)*R}Fmz0hd#pw0SsvR#6uER{-Fm^PkK(Ikn{e2!E5Z$lCYx zP`1kqEj>^ zp?tj5t5?=Q%E0QMLvsPZ+LiL5xrJ!U@V~JgeQz&n-3~TXmG>g8Fv=~qHk05zHH3H8 zRWqcwA9Hzmx&2xgD6o+7vg@Cw@NV-Z5m(F?OS%(<<(P^qGTW0xuy?U_mG)GH*ASXI z@b%F2_29eXPmrHv@VM1S?z1|(f1Rs--P>!u{-Z@egQCEal@;LO*{~+RYrG>{fn3_y zSK_)qf#NtvgCNP=@SL`Fw~3@J>Bju1z4B5c!67j=8{6)VMacYHmUgz`GEat>;|;A> z6h9Hq&gyR{EIymla#+1Flk44fMV;7nVk#mUj*k&xCA^p*x}dI`OC`7Ay7qJfuT zA(mAepKxT6u$=wZ+6f3&!7*VO8;6Q)ny59%Yf#u&q^NKVS_?GA!zO>*A|f zK|+r?I=)Z6w0h90>!e1>9Y>^06sHmw~olZssgHYdQocZEBvSxpUiQ+2tKr<>J21or&nRX^DDb z7zB-fC?9vu@$vAR<@hoyV!Rv6y`Ih3t7y0}96Csccne0ettrdI^6h-nGGba2abhMA{V%FDXd8em^vIZ{sGs=(oEOOmIRO*$d@4O>Q{K9{E z`K|vE)U+sZEHRpFurJA>0?}F59w=Ru5kg^^7I&25rK?;CgW2Zr3Ra5Fqc_*Y$y;~9inf#m9*Rv~?D ziHEmSm#-B@O?-OQ6HTquonJNZn&*}f>)H$C#ozJ{K++-jkfaPqaP93KW-N1~B_L5l z?drfsG8dyepkl4O+84Tmk*4BdY7{*hW)aHH{3B_@E;;sTeF{v!U18S>8#}I+6-5rL zpq}=iJ*g*sd69O;<(2^XUX>EmbeDjoYRJ9j-7YQP_t|y7WbiW3d*#`Nu|rivRIjUE zS1-xwvROuTWUR=;&7Tm?Fym~MdLqeC0vI~xg~-<8CRCvE>qteS>4dJwa{O5wVlTN9 zZB@0weUoXNq0!d{0UWLBkMt6LSW)!Z3nUuqr-ZQ1LucrImrMyu^cdc}vy$f5kmqoM zt+kq)JvjM}rN>mxU%^Y<_YeJrd|^=wiHSerQ>jw_NilVc(b*uE z)wq_EjVlX}1cS z)Gq1RRkEMsRHP_X1+ zJC&2V_P?|MuEcElc|YP=a^K>9yF<_xqT(E;~VApYCE5Mk~0G6i;H@KM2<`O<-2O^v(FESbyJFcN3Y z{_MH-4!L;E=1_;zZUt#26`>RJ^sjP(XM=C{T8@4`g|z4TlG=NXvhaN8df|l@B-T@p zgU7JM0u`|5e9>Ra;@ZBKLSBMYEh}iO#^-q~xp3@?iw)&Bqj?_iA`& zgJ!ZcU0U0@MF9zN&y&(YWbUG*cbxl^e2aO3f4U4qLIuh&3)(Qq#Gr*!Q>LcBa>gwg zh77vsH5CSi3fs~@Y2dEHN?RTNosDE(gTx&0td-#g)x+~cI#v$PzD(+`Mfl!o&imq*sV2bP1q_aWWjJ}anE-0q=T@zPXPTjVjebi54&k9M=sHL*| z)rty^4@msLuhf^C6w{zL@7Ymj%@eUd_0WzSm+EPfgD1pw{|=ugeSsE~w$C@+G9G^# zcy=}*;Ap^r@$)hp*tre11?O5@<}(G;+ZN9Y`paAT${{gxpM5>O2koTo6@z~;U{GiMK1!w#h}b4A)w9+r_3X=q zXtmWVT9+Twx|O??lj{_l6g(N3Ya&stXO0N=?j=s%cX;FzS)iZQ0-0-jxvyRgw=S@y zgZ;ix79Ar)Ud(|Dd(-)s%|-u|&NDuUwcoEJ8NC!sS_|8}h<2>6`KwkHlH1<3w{>gO z8rI*x+4)_x#6UZh(E~_h=c=0V>BeIn=8AwfwDZx*katt&VscI3(*p-1_LJx-#^no9HYOK#V-*zVGYDdko=>= zC6`jBEy_VK52Ezh{SEk&v=#86U}-E24xl2*k$7<6ykeQzmDL8CuvCjSUSa=k)VMNh zH-`8cje!C1ig!oZ=1IdsZ+)--(EdZT**MQx!f7lBZ2>nQuo_)Mu32k?6 zS{-@g`U>!^_&2DP6hmA9ytsb0}Gn%>@^khoieH2}Qy{@y~f z+ufV44q=J@R8^&WOZU;Z<}$&ig)X2A3_RZ!ckn1K@CyFca{rxJlSahWBgxL|#T%5= z^#x)XpsWC(>aOV+_s=Vu0PW5i)R>??V|c%zesX=fZ9&evRsp8SkN*M(Shbs@vsqKj zyN91{pJY8#UWWKAkp-vh53B>Un!&>w$Z`jd(ZjNvyu42Z`L{q-DY z?o`ZF++uXH{jQ*3WsCw&P$0ceXEgvF2bsU_0X$|**|PB!Hu+1Ba17ZWWKW)>W82x? zC;@*t&x(!Fbb53gydTVfkcG-8uxY=wa__N?9Y8V#Mr)CDQ3yyPE~_zw0cPzQo0Rrr zLnQ#Y`G?-1&?9mQLi5y|OKO}K?i4#s-*p9GNL*UNB^=}#&DacaV^cI5P&cN;kfA=- zX^@6Wm@GEAm>svI{2A8h3``HWZ(@xbX=9@J^_FC|3xW}?^g=&lU-N0Y< ztkh#wf8^)*cxwC^RWXM)nBGZmv9V1kskKQRuh7t|_~i1xvx0+$>C4NYn<{cdj*N87 z?M-G#I%$w#l)q|CkIwqk}?{P>kxP` zOK}loohkYD%w@LIt!}X%1Tqo|^4-j~sMZ$n9VurZ2)+LHcSv6UZ(Zt7eAn*A#2X=j zi;J0FozpB|9b%2*&N!py$aGxRhKfcdh*_$4*p_87!UX@$_M2q4#uL+tvoHUt-<%L` z3WH8O880k;E^NXN9OVm1vjANch^CwPOM73>si5)aUnf(90`;R{lG(qgk9C+eL69j#Z>vZFJqi`}8gG$ANtvx3io6%fmN?D%1&E)4& zno4P}V)$8m88&Fsvp{E1lUd{7OhD&@+Y+*HTJ#+1U)_oWnn|Ilv?DZAUuAspG>2D0 zlh833YOzwSmD27sDSmm_&D1Mn4_6esK5e&%X(OaudrfYF{+ z8-w4!KgUyXvfkR$@b2WT(B-ddP0MgLV33J#lBHo}*n@Aqp`Vv{fLRrEXq=HZ1@8;H zz1QQ&9|%*FaaHneIRMai4V_rh|2gg0uQ`x#h<_g>H;hWT!t6h>)`dsMA&sh=!k=ae zy9``s;CK-(8dNA$lnlkwBns~zkf$YvE6Y>iO&Fj|p$4H(B2-6XS_(i1`^%0J$6?}9 z*X0>PY;~=r_1X_BK}R*(P_4!4@y7&kI-PcEJY=HD#i+1RK;#ZCcWd4xevQ1%YxOAth6j77oM zgL8?E`Erjc`WKAiGhFX3L&x)e@3gEg4QS;hcGCEKwhi>jsFB{1d#k5sE4SLMoW$3j zoW3|B&Aces7O-4aLBIE-P(7T>P?b_}>1DVQ>ZtJ5cwU1GP0I^IYl7mKCuE10O7m|G zLN51D>~RtZm|`*TLPYfT-iAsVdWo!Up=22uv7Z^^lk>l3XsF0 zTFRWS2#)iy^Pw*};Ek7!cB9ui12J?F?}^BSPLK*iUg@F$SAx%kwWS^$Qf>Ojqx7D9HULCdviqYFgY=w^X zAsCd>Gr#Z)IM@w*0keHpP>oP&b@{pVYCI59eAJMRrOchAa+$rAk9F;%-4wbY;WXk4 zXoPADu9~H)stjhhs>}YlM39=rei%o*HlDu`Lz?u8TZ@-U!hL-Ag_P9V6vXxv9?$vG ztRMCeWtOWYR=7%dPE4%+pK(ktK z!*&!onK9W-^{eCAi~%2Pm0oAD68EY`2is<5&ecie2%M`pI(2Laoret`Kkp6oQnU0T zAs&yRfM4ziPH+sUs`nXBWpJ8Ka^RV4)tk2lV zMBT}Z8CwsN-e2&?r#4(NxoMUtm$H^S;$`6r_!*VjR+Y^NpBvZC7%Rs`X9?1E8_a{W z=ByX%5DQWBxT9&tXXPnXcFp5!J3TlqGxzW1qCY3}e(`dJF3oXAoO?+Ob|Xs=8;o1; zC`dgc%xc67FgCzP`stNrQ2tF^0Qy6yJVe#=tE5K(cEX{-*GGPsuTo_WRN%4qH{-EtSPXZ10Is6*&Hqh0T z={F0I29dFb?T5u@@(M{yF9>*dAEuUKxScI5DN_ga98mKK{ixe8;M5LM+r+>+^JfC% zNgDYzO{hAUEB2f(K2I5?PCIYNgw|wsPE{({<5o!!>dma=nEzWCKzj~0YI!bkY z$iuaFJt`sAzW(z{lSDk4l$eHuhTTR_bG_)^jQ2*>@A4Ha0>+V1G9V^bX@`c&V8^#h zHBKMQ@0{pfKm?5fT_w-8gwkz^vrcUgg95@PVEJmT@(0egM?kZPL{nyLvj=qqF3TJwN<91r~&cl-mml5 z%#JREAo+j9grd;=+t3wjtbW zYa%_jenWC8ZLL`prl545>{LNZ>ChYfk>n20?su6Gu~YK+Jyun{OiH@e+#-L6gLV1Q zKg?(Muc3B!zMYm(Lnvp9a>!)yOiW2hY!rD}@Y=e+#bO(}_g>ppL&I_!8Utu`LQY9u z)!)TI=3Z=P9wvb$WvBmfDja(diT!$}HA$xibkg^>!qD+8LdV`X!kI3^M$eO3VL0Sk!+d-L_S5)NU2g zEF~KH9Ze&7+0s!F&H88zlYqD~oq&S=2JC{mt+GGkn*b&Z2i=PAHT!#EQ!wQSCXQN-yYVlvKG8w*$PP>m(Cqcls+RfX!mz|Xi}nk_A` z6g&>M+uQ*s??|-&k*&JtOaxHQp}j+yL~=&G%1p58_py5`AaKBkpva{<@8e zjcF%rsvA&!;G#^2230mq?|8MXf;wxqxv^TZ=#t7%q2YvIjI<$U1iWE=~!_4lgNmi&cNjMdgV%v za>pQME`BXu%DLvce3=eCFUOqk`{sRXp>N0i?XP=(_`#%kb_ypb)!)o=gdH2k~c%9aYBhue!8zQd9DES_;Z+D|R zeaP}pbhs*1?w@DU-tc3M1aphg86@Mt(sv!aJ6m?UIM*WZmakX-gpiYvRiBR)m*?yH zWRuWc6tQ2f6yhb=tDUrb9hQOGiaq^ThNpIy;W?e{P|1DODU4B4B3JW!OF?M;6%GkQ z8+KxOu}7_ciu%d-dRLo%l#O20&&|X=dZyzA_qH6FCe(J>e;lR;aj00=ie92nAWzFq zNi?}*kOyIY<$)*uiXG(QbC*+tZfG5N!%&k(>g&ZHiuC3`_xcm|O`-!|@mH>N7-xh4 zBW3-`0liA2mk@`{!^p`*13)QaI7^9tG^ROPGZ52;yb-ZN2$0vSrYGz^#kBl>&kcp2MGrYX5)?PG3f5CB?;)jWsG5~g3YTwjySPQ*Mn_Pb>d#k2G z_j~ff+wn%(ZNBA8ZJU*7P~f;nd_0EGHJIOe@cml@+)up`EAAPl$iqUp_~~Ta(ZSYt z(o@gq#F?w?zkV(bs~{dxBv-=wb?(0XE3b8zZd}!}M(+zR>rbvz1+RWM)3nv%^huHn zf-M2A8N+7{TkL8@>CB66B3l z+(iNte6*604EGW!+gSkE`Ojj=bl|DJaZd>Kb%y9XZX{Q`ukWNGgWQe7?#RVDmvG~H zN0s5t?%ao_^XxCs%`Nq#@zexJ z7}ogVw7TkthpX*RnKYdUWDJggmhh+q0^~=^nV7Kgnw=W8Ttdz+_;g`E%}a(u+xW8X)6k2Hc&&Ys)uz7L z+e;|7ph50Key=xwSc+tmqanZO(7qb`+Fd4*t>yJyQ1pel?~a5r+4c8dwPRyr!3PLC zh+c_lZ4($=Mjl+XB&+MQQvY_0Rs1*_rpnk=;(i>XxkerO%frY1<51|C4M@tt@T^6# zK@KNUHEM||!|t&h?zgsqE6upaM%q*IF%HIUKO-?aU zIl#T(2B>;J`9Ozn)ct>^Zc7+as@GmoA#oQNVd?fh?XAHGG|ZFiY$4Varopb8TF4j- z^89sQ?d2&8CKs-Bc(^T7vGur+NgTyi7Dkx3aj?y1fCY)FQh@NyHxIqHj=jevvXP2> za_7^5zFhtrqtrmV{~8W!zr~POJVP|y%y0NF!RVh^(i6z``!eNE&a4#*p@+w3@WSd> zV{QtEz4UO8F7c6m{hC4ZH9p#8OY_HRmGq9o9i#$I2KGNwF&k21f)3+rh=bKSZB~&4 znA@sKaRIilKcDgAoM5LTk3PIp3xKG{P#*tk9+PtJ^dmg~b@<9l$bX!#biW}z%TP7w zuz(2oJQXcmjEqD-Xo{bSF9+91WSs||uh#WP(#=>g z@zmHw-;bxLdeHG~7zzOeHHPSVDfUIU6=ardpwq-{Gi4ku!Q6g*(j<{C37OA(1KI}C zL6X=UKH*!?!ZQqx1bGXstX}_Lf3w=4T=1XL(CbiJ`)|7USGu6W{#dg1n=Y|ADKI;= zRh&rj1UtxWKa z!fs>g9F$msMn~Tpso~pQiVkh0o|BztYBEZ)AbSqT-chx|Y zM_GfM_)VZSU?_D0uH#m-npllbP#Pj6toGF}RHK6IuRi)HR&YceUdu9sWd)s84TLhK zNX%W14#IqYsdo zxKbQ;`i-OMsU;m@D-5|BCf8Q=x4kLv&m$R`4YDLqe-0HFWK?RL(sHxd-ly~5`0e)` zQd%QsyzJ@Y`Lns1*^lq?hnx0~wuKiI5nWJG@%@J4Vh@Jcou#!cL>fU)58ZNxkODsq zydp4Vw3bKw`iodU}{C!~R)vQvY-68lQ!+1IcMo$wgx?1L^szl`lEo#tx_;FyX zu25pvKm2v2yiCQ-y6nCE>;2}UaS6za}`jc`^ z(@9Qn6E|gATi~m6IB1{Bp&){kn#bHyNlVY6>$)v?|Bp}=XS#vZb2%o7o9-bffowP^ zTLO&YlcRZj>RA<=(?3jpF*mfWDoRYkLM}1aV3&9kkeH%)<5|D$-#z!uu7F;~uqWG? zhBxv$aneRL8shq^IZtZk=o31pF?Os$5`usOT{`#=GPKCoX;Nn(+<`f9I`hQR8p^TeL8Q^uJtP)@XsJ_D{Sc?{n!0TWbx0 zrnyPE2At zZ{bM)r!R-RA%!Db)dcOkr)BZQ)MdKs@GK8Ehhn!Z|BDTqL1-9cr1SjogIW5Pcss$c zN$AmwiHQ)3Pq-`Vn@^c4R0Tlb8|HBrc(~h@f0$SAE zO6uob^55j=$YJ|0>eA+a6QTOvMGt$fNrXVfR*Bxa*Rfk=5pyfN*NiUa>`Ey>ZbU!YfLnYBrr$)a77l~gob59vP zsVCkl@i1c%GULf6sglu$kuBEmyr*0?5H+Px6`2)|8>6ONjR1@=aq@PXc2HM8at`JO z%v;J6FNvDL?TC85>g~!x)qa7IdV5)&>*;EhWTux4uvK7o+iGi;Kgj4CAS@Zb5Ykro z_Nm}cC`SXp&Jb(_?X#kDM;2quF72wOi$)q&oHBd^g~sS5F*Mix^7cHo$gpeI=X}J_ zZBP{#lgj8r0A=KNr(RYtf-*@!#o|-C!>^8ob=qv}c;}=YKQ1B7;s|sqo{K6i+<1ZOb+J>t#Z?42AYjOKS+`f(houNL+h?1o->@J0rKTx6Z4sNI zILH;QIN(u}8~XrQ0E6VkexG^Q{3m(yG3rNsWZiKR{s(G>$Hs(p(+-Oj0@p z(I}dQX%%vck`(mD{Ik~m>gfB|Wc06L!64_rVRC)zS2D3!d+cQOFnvARF`m+>EXckV zW2M1iwsvRVH(lD9i*`rGi`9(atCh{>*_)#D#~C*qRo0c>S{^W8brjb#~5aI0-PdLbK|`n|Qf zcXx(5KDT^)*|Gl`m9czur3YHfmE$hjfCZ2YagK4KHL?S!@L;TPE*SCgLBlN@L61K5 zSo9>TzBS3fMyIZh_iuAr{?)C<#~_JOfE|iTx^FZDa2^0Q|5K@4Tr5Jy0XnRs`-%0@ zz)&u$ce&B*SY+4xoP;1qL^IuSCiHDve+I(}`rS85B_l5?wcQ7fwIzZ3wDS^UqX+ z5+h%!@~euZ5Qv4^L-}N^%hnxd%gQI6SgngRNvZNVm~ocn z${snR7{U%CuHv@zUdrTU*E!SVo%xz*dEKDA$os2x!9@Vi$!4&&q<61UtBIgx>HEHS zblr2j;+n#@bE~Di$>|C7rv^0(S<(vDQLd*Z*zXam**a0)2bq!*9Qy3%8g*bcYs+33 z7TmogYWNGMu3ejk!3{sOZAiW8m+!pDrSWZ(HE}rhXOl>p8h$_%qPd1JENKlalWpab znem!D)qQg3z)9MtO|$m}#5WeDTh8?$8A6>k>Z(4X^6VT<>w(x~0Z7%}dp#3%h)PJi z|HfmNN%b7bUm0M>fEJ!9o6^O8gUoNBH#*9pO1jA6Iw1rt7~xe9PAPG!!Fe(Pn6Z9m z!e?iCa*Gi!$jV6yW_;H=Z<-uGc(VnTTa<9W6omwF$6EEKQ?jTfe^}@G;kK)BcW8|e zHgmXo&?aFy#IbqqiygNJ!?cbSO|HF49sl(rI|H_P)~Yc-2UF|NG7V$gL%bZ`8)Hv2eQtHJ?~p7U;`&w#=R>a@?WBxma+M+Ark?FzF1qyi zpow(#_N5;e*lNQMv$lwUF$q@>TXBAkqBpuB@+wzGa}_1-Hn#i~ z^^6Je-rdIkzxDF`NfRjuc#aNCJB(!<>W%^JCyqU0KzBQvfA!yEob~y4g&pt<(q<8y z5(X=mvp1!w9m8k#Jz%Q`V&Os|EoeDRZ!nH1A1oXnVRTLsx~RbL?nIn2yPNAuj?>M9ATK#IS7kXG24~roh0e5P(y=;(VRY2L_nT zmQObtj~IctI#Q}$&+U*Ta}VQjsN}Mdjk4};WCu6GzdzVs*Je0I&rG48Cwn$l`Bn8v zV@CqaE5E3n#&at8E4vDSfmxGm6wO67A{FjZmpVmD7sC|$$z6_}DYzN>!~{zZcpJU2 z6^Wm*-NL(wh0CQjE+@T}jN&wA29Vlxx(2#WLE9xOlYN-C_QGId(t zpReAPchPkS$5G$O)K1-pVJ|?A!-I1FEs4?e{>bc}i6JxKKD(mL*cr--qHJj$`c@Vc zJ*D3;#|oH^vex~t7=~g+5-cP#i03tqpPo_tO=RMFNi-j~yejQ8Q2Zv-3wqp?XLq%s zXE@K_0qh^~Pa7t*;jc(2=@Gtr=MGVdJl9#5ynq5E&BUH(9H@X+J}2$F)UW;zS>kuQB}v^HPoGN1m!vpUlm!yIQ^U56mAg)^uVz>%KP-fw+O7)-OpOA=BPEC*YhIIa&i3 zY!cgZ<~&qPKyoW6j8@7+o|Wq_AepE7NFQr&pXp9Gx0+N3>Kj+=y1>*{y;md5*^E`c zcHa=|{<$5Yh=GklqumSFAY##%71qAnP@cc|m`1*s30O>^r!d8EO1`-_AHh`qjTv3; zs_bW}WSny91*n2@t19@>2i~j(@d`Iuoj`1oP_!(l90L!9vXgBi!hvz1dBq&WbL^e9E7yzr+#>XD$}lwe0)tS$F%XZRiUFd1(6a8*CFo85lek`%;ZqPglo> zIC9w@`mGmCGg|e336C>mP>J5^MP!KTlX8$RHhFz^LLMYeloU{@aU1)jSD2`sV&91+ z#7h$!g-v0GzHMJ&jx@6v-@gNpzH_O}ddtU&5iuuoGzCFTJrDVf;yNQKC5-R3+`e zaPA(Kd&XDEdPr(e``RRJ&V1ODr$f8F=={JMIEj>)+9Jv_qVgXR2h zTvk-4A3-xFACOKiMSs3Wwx^{&uLJIN`|h=eTdv~BHtcq)y=7}N#`-9G({aAkp|ihi z!K*6~;oX6+o$kHAbRR@2yu8cCo4ctIdt+4r_p(!?l7@R3sRyBVgtl8@X(+{UpzoJ_ zG?WU0FH(54p)B*_Bp8D=FjPV%5iy??r$d&3*-Hh#AL=aqOU3DvMo!+cLcYOZEBjz{;~Xo{O%u z^|KYR&cOI*E8SudwyWnjqjNf6jOuRYKB(oz(SSA*sQ2ehRsb$3wFmJ;qOAkupL(`5jt?!Phnp9#A3c%Vxl z{7+lpA=Ce{4)6cg?q3MlPyQ9Y(K-M7!#6Ohkp=+QdxkDL@iRd5Zk3Qw&h_!w$G3_^ zclq~TfcgCSaRCuL8I$%MFzo8u)=-&lhWGx*-v+}NnbwmJhEf#^zDC6r(Y``zD7GPQ zY?Z-fpDA(C+Cl$W&pn3w7is=aPg&c>>h9t*bz33<`n`p4j4;`qg_m&C`lk8Ov0gCg z=If@!(%m6{&j9c}Pu51OXab#!y!kLc7I6NWT;f+6_WE9H;R)??uvZ!Q_Y1yuAfAt# zVdX9mo&2`fahQ}(Zy8XdRu~*rsnf5@UtKrsl<3k*FDU*e;6AQBc`WJ{D57PUhhi>_ zQw*E;kML=Gz!g(a3hdh}kKLxMj`NbfrS5WNuoGq2&Y18L+una@DN#`NS=dT29ryTRCrGmador1_BF@V+$QeC;sOXuZ)L5a5D0)qI}AwXSrUU!f8F92<6e5i^!?YEF1|hB-cL ziRdq00(2LW@YmmMF0F^nQ`*#HoC)Vn0D>6G^lGPm>Fb}x+ z)e{iN;hK3k*5DIeE34m(o+c;NBu9OFG{5uljUb2dA^T(vsqu0fAeAlq={j!97BKB< zH#^RM-m17YdvBy6Bk)b9o{WnOa0m{9c7Z#>`odU<9nb2zZ<$|a4Hu3+tBhp?{H>~; zn|!Py=;uG~UHszUDU67n97L-ZXV;k79+ri*ECh#Re3`Ls{8wFlB4EAA6z7t$>aV?d zp&(W8QPQz@TuF1DjZN{P|AR9ppXE3{?C`Ilfy2#3nG8=&+xPKd_Zb=%<^x}H;)!J9 zd?d?zMO&^b=e&R^r&u>E-V7)-0^~ahI?l!e(g2tm8&uk18~i5SyL~opyZBrCLMdAL zmGzqsEsJ)!R5pIElV9N8#kSgpO?N+J&P=T=M?c^-D%aZ%W?w5lA%Hr`KgRh$-8-Z9 z+?mfIp~DY$<02mR+ayMfG=g{D(uQ5-LY-y)l_|pZ@}&g&BMHD@mgwgkyZXMuAW@=v ze6$-pk@@KShr#O;5AwU1rQNX?s+aWg%mMZE+G5#9JgGFX6XY8%wn_H8Odu;$(4QMb zK;D-%cBR*rQ0g1I6cI!H=5L@95f=BfBBp8*DIlREd@PwIZ9#B4RDzRrj%MebcQRFK zfB0U4p`53Db%vp#bys>3NqItYZ`j zEssDpYRdOVK7CRPO1QJaI`6}Fg`xp_EU+%8;%IgHK1&~KwqAB#>&O0l6}L3@=L*Pbu706Y8*ukUia=YoJyrZ8uYD<#~PhW#}Kag zMM5wf{n}jS726HS8Q;SD1++dz?z;U_NJl8laxp|q=L?8&!0pet%@1$HzpaE({I_Zn z7$;dE{}&`N3$)n%Xnz*wT+8*h%iRSCzzp%V-bm=RY%jfoV=+WCZL&ARv8YDG zlwCg!6eW%E9cbwljtpO)Od7Gj%(k(e?T7ETm*zx@sZL~TCdPL_dYlA5ethCI|2uR# z$kyA;B&v$}YP`^LUu%C(yS{1rj6&#dbXvK|9gqNESJ3v0VczUn?U%Lx7m>-@M=;ng zoEZ=}-C^b*sDDoDlyc{seILM&$Gekn^rUMaGyx2moo(j#{hqt%cZ*PPvrMBMQ^s@(tPVqFlz(m5OD-lN|j3C2Ai%>>B8|mckCG z+2c@w`j(3QJX3Z?nrz^7jbykYcX<-@D%sp{Kv;qEO%H%jF-ONZU^`1q9uL=n>z({_ zHA?I?Gv_O1vx#>rmmQh4K1~hstf&Gh9$m4}V{K}cxD)FfXf_3=04Rq`izueYE z%|*^r#kjCBVx2p>sWTc%DPOPLRbXORcC2Qa)7~!4?*!G*HA@f)E4$RB`zv?#WK0%3Rx46kZ%Pbz35zSQ!R> zs0Wt=g=c0zJqC~3U}pW9bLH~S`*Hme#IB0!9bU~BDUAb{#>(0m?5Kawf;tR^nM_A0D4D@ z9A6KyKDN4&%S`_>89;1~Sfc&6n1;kOk!Wi(wRDh>;P~32>+0rgu z82_fGcM&QudhVudvrJ!eI5VWDPe0a{3WPEJXc}dW9*Z=buquTEH2q_II?h>xZ6?50fn>tjsvLSE)2#oH-pSreOUbv6bab2SWf{IKCpq+X(b<{!olv zH%p~iE>Esb&)($i5!mBmr`v~i+{S0E1Z!<%n(o*W&(xmO7Cy(Eu{_EvuTcw1^ z^@@zR=yI$$0g8+zEw;SnRK0v;z%|Pdtzf^gjPX-JVJ5+I0_|9E(uN?;0M)*`LD6@Q z&3=^#?S75UnbBH_^F{H}^VeqV-bTrVGHLBPKd2fh2$`)eJj)U9_8PrWk3csC+9oPj z#7)-EPNjF?2TQ5&BbKt0hF@@OG~nNAcApkVg=6$8dP11kr-ix>iS<3z5l10MRg1W( zE5bH5Bomz_B!IAfF0(C4|4e4O72p2iexda)cD(_~bUOa*LBXwSOkSEQap;~v;*)@s z0)phPA75SvsUX>vxdW>Cm!2;;(?8PISy@190JKjt7e-}oTz>K2s0@c+R2EO!P%Tab zg*^=%1SAfn2M>EG@TSBbj!;|FV>r#B8wJq%znmw0=S58^{jQ`i<8NIi{Q14a9P`NL?q&l9R&1({V)>~TGW%%EGVS2AK$`XH~scBYX*Yuz2K__ zL^b5Q(R@JEO%j8ddG)(~v{s$+VNH$(tor=fe(OG{h2gM^6hf)k1%g})SJNWv=fVv z^ek~bY^{=#D|tKOQkRrTx= zjGf(JuVXpw;NW9_hCv3k0W{?Ui(YR6`nfa!2b+V>6WVv7lD}rY%x*;!(C>I}I(uck zS$7NUf7roq`gb$P^*g`Urscg}Bnlo_=RWAB4{id8IpYEC=*%Hd1abCPbfn-KYER ziu8$o6y=DON>m_rob>c*iOqGrU)m!`kUb~4S8=<_3yRN-90uGg1KFV6iZiDU^8+h( zgC0(!^o3@Ti}fc}TO!w2LfA_e!survx?$gKQ-z-Y(9xy9V-cqHDLnnKo}oMVvXt2C zD1R{cobtl_Q+iwTYx+H|c502OxEJTn_DY~mPiMqVz5-OlXci3+u(vAP49zc=$PKID zco;E})}R~dK0v09SQI$iPme>0vyTn8XMd$+ik=s8uo0k=u*`U6RT!8I%rI7ivsT(F z5ty(UUAXby`~q(eM0s(9q`CojGhr!KZL1gM$=0c&m_xGfp68w0xNqE{PGvcLpG$Je zKgVc2c|qXCv^f@lSfXH;Z=OJ*Kgqsn;D^CK(WYNU6CC z0ZTT*j~b3j; zBVM{o5ACEI;0X=!xvlalI>-!NUV5JpK|?m*0>iGn@qm18>w~4;uwtG7D|h9UXA$Hq zk$bww-*@d99YCHmW|nzphHJ~yzBI2z*x}w;rI~;0uB}&U-)86V4BdQG$|ndlL!4R6 z{d((GEo&+{O(Z`N81VTz7an&`?y^~Z>&_J+S$>=klUxY_S zy2Gk}3=6P#N1UXX!(!pin^dv5ItS-OAdUT^UpHayeVZa1DYLU73vyBS;BxN%WWvwu zkIfqP`1tf?wGn^zAqO9yosDf*q)wJv#t6S}*898%h$Rz?HTyQaUWZdaVBT~Ug>lhT zb|u^WayacB=?s161d-9`qRyU^ll#RSL5hHkELQ-gzDr3Wwg5o8XO)jEi+`L2tnYX{ zFq08=!~|9^lCO)=>j@40gF-}gz3)}JueH4NH&Ip3)40MiZXXTCJ-a|kjfH?zJ6+nd z(##&eMr{~ zECdAcK03BK@zP3S2)Z@qYMiVUJ*ojWtrkY99L+=Vnmz+U0Yxjyp=lB7!Y78YV7@N= z3_Bn!MH#W-uIX{TNGt9fs*r5( zsh*YGE}kdooK55UYbj7dsJ|x8Lu+evzE&^ zpz_B$lI?)XSStu`kug_O!)K^xsSPOp$je$4ecgMF1Ito8`BCM0-O3*UzPKW8c z^<<+uW;xWu7&YySVeR6cVEZr_s&FUefmYDcoeQvTiSuqri@~aKzA_XyDyE(Cnp4CP zHWv&z6A?Iw?Nd*j$SyaHION7kzvq9?OS5EkuQZrP@-{Yaux+N3QHOo}f^rr&(5SY( zUA|JU9N|TE@l37lgU7}07SrRP@e8wS2;q0Gt3WITi>RzJ?44m+%P6Ke+qQW{!hoy z{&R!)zn*1${JZq}KhKQ;*%2+qogVbr|3szszpV!U+iLK?tp>n9$p5m*9_XyGSRNLZ zgj`;3(V5+WP=*=eu%?c~PqJOi2|Ov{w|a%m$eZ(prV(Hj@ld3~qH|Eo8IpFDe%`*ro3l?{STMm^CCHrCd0YJuBjG z3iGrFqx-FDTjS6jdS$4mrDRDxYqSSq^ZYZs(%Q|LgAKD5bmG z!jwt7kRuxb3>|hlmia)~Sv>al5~w}mNpDd?x4c})Y&EB4M+Yb8%J~*Q1lfwQ-k+aD z4fHC1yjMq}owD>rowl;vCWAART}`{G>~)-SvTOcK(kQ9~j$3C!-~%oWE$+y}5iuyo zf-9ujr5g;BfV8ipZBm}$8va!zq-d|)n8e2}3HTpZ3TgIAhwm;AfoD`llN^H@>c?j< zVRAD9{^)I?&_Hhd5;?WmEhJN--OVu4;MZSgBkh1d z&Bem+1Bc>*j-Q*SA_jDj?5LU6#m*%Ix8WmVC!wyaNw?brL7jJNLp`HRL3J1F`2)m& z<~vGlivwUyZ;ti3P|~|eCtkxayH{%?eE|npL^Pzmts-3f8mNmnE&|z3uNgxVOscF` z3P!wZJwM{1a{d`+t7T1WJA3gNJMA&97pI#kO61H2N+@@^}+}{aeQFuDz8w=`$ho%fgtwI$Ypbsi9Mr zzrTreQN?A^tsT%^#AiS}*X9;G=M9d+;N7xAnF2ST_L;hsFlj;mOjn&aC?i3O)n>vFCLUAa` zPUcjTCA1)C+KO3CMx+-*okP*sP95&ZOY}{SumutlhbNe>AF}=&5G}q6QqAMyvFXw7 z(4X80Al!rzoDM4!o=8tf{ozyNsEPCx!Ce9sqbEd*GTy$;~n)=IpVMM zj~n8gUy;4j#II9Ul=9-8My8{h3jTl#aZHR~F~AQv&oKybN=O zEewvws@(YWup94pC&^KYPWcuIiGU=b>UJ^@Il^gjx<}J5J*QQaLdr*XF|2>H5V}TF zbgRvo+TSh2vk^Db+7!}&is%Tm?X*t)D~y;R!Zv_ce~wE>b*a-py!gNLoYPsKdvN3N zYu^T+P=JifWFG;?MJ`b}F}O6Yo@mAF_{U+I%LdaU)h}BqGzZdznnuNq<};nG`88B5 z4)lBDGW3Q=g`-gj=-3V#0kGrNi`#&nVb#v8-6|(kZ{a9a@J{TBxIjt@$j1+nqXHey zNEdJQhXR809}(hVkMk0T34Y3~w!!}}05*mHpm&h&L&JrFXjX@|h4JtSXm*Ea2^izC zI{c9u9;I7fztq-pKqhZ)?w8Zmo<+ZBrDW}llHJYI*ku@ZSqnYdmu+@OIyOYaD7)&2 zKQCdFiAE}7Q<<1GPEq>S$Viun6CjF`G#3Pdb`HPnmRvke#jq-tCnI4Q0rU!0C($Gs z!s3$P8w6i6DV*aV=-RR(f>gw>`5YXXC>t8lN%d0vx4oJ(V99Wku1fAMydPd>Eb9F$ z5KaYn0fJ0tIqM|}CM+XQ2io9m$rx?&3saG1?mYWTE^nIzMh=#IcFHjVUfF%CX$niD zZ@cM7A&3MdP~IGrtXGDHwgCD`vo!^mhDT1G(Z6I2uD$pEmozgk>Dl*Zbdx4MHo?&U zERta552`^4(oi;m!@5EC++#B}5%Acu!f z-yMZNjo)K37}d)03bBEI-sC8IJo&@EEtZtSV!a4g)&IqIGVZ!P;M$XlLCc8yQ`h(= zlws)Y2~3XmS%KUD3%^0dgL&De7#3M#&6;eH19eP?3NbisH&rp635W6>?ufraKvHcW z$Z6+Fl9-Xxk#AUxC_9@&;F#d!5m>7pENs||u+K`()g~A(^#SXE#{(Uok<;r!Nn+0@ z>z7bQA&$*&%shXVibyMJgY4@o1sA`5sbu{a0%~PS1h2}esKf{PI!?Ur`dl5Rk}X

{F1XzqRO7pF8jC_hUBZlimBB4f4UVz6mF5=nD%`I9RWd%X>8pz=shfn3lTNw7LK z5r|xh^SX9em{ivL`4xn@FP=qOEwgm2aMp-)^f-Q~{{*|v{~@UN6VX}xFlCZ!j-ZEn zOg6XKJNSJ44j4~U`rgRFg3tMnlD*ifUXp`mP1(2^VmbQR1Ad@y4YB^IwK>4XzW+aH zd+VS$zO`$V2%dxx+yev%9^4_p3GTt&1`80FAOlH|;O_43Ft`MFcNqw-gX>_o`JMON z^S$-nuj<}g_5IUD%{04vdhgzQJ?nY)S_5fhtokC*wOT0DYY))2=UZvq&@!-(w0jit z==U9PL=8Z1T!3s7{0_oW=uPFPr`|d0#u!5e=cknAjNKo@!G@NL_ML3|A7HHF%;JDz z$hl)dflMjE)b+}*Em>y)ud4d%f@^x}HFMU0BsWA#i9LDaJN|(!{juY-#%fV*2A3w1 zhg%cXEqPb32}*nF;P^*(Ovn?`+AcJQlJmk_Z5T6S;xfnu6|m&`oRRk=G!t3%3a8dNEISROJvUri0LQv6jg z#M!loBW`M0k-P)enTMMhfx=y#jvl#(xz!!L{Os!m##_bKAjWKmWu2I`KuT3F!9MG( z^O&em`<@mPXlWY*>2E2(pXqgWJ}&Vjm+l+t%=44fVvNZjSL(HHk$2=TZ12iHYk)H)(zO{cqCE~RCU87C^$0Vkd{5&_>B5M~L_Q~LLNmMP zP1vztatNggF7}w(R2CB87)7o?VX|b*sXa}kqU36}b<81g>PFQU9$AEZ>unAhzZZqw zXT3Yj0`nWcR@?!mBsU{#SVBBT^Tp^CfeKD(dV5k7q&L!b*=!ROC(>`@!fdTBF_|(O zb%hs3xhY-Nea711sfciFM+*F*xZS(z{aT1dmD64UmS?r`eO+Dj&C;B!a*Wmn9TD$4 zesSJqUQ>UW7;lkt_9ut#zO6e8arH%v>n8#N%Os88jprwh^X6N(*SN{>LX$?6Y5&z1 zoaDukc$Jn~g8oOsqP*1sXf%Nb;_yXc+#kIvs{J-B{~Urlvlk{H0$VtoHkk5S>2g}EX>Bn83%%P6uwuI- z4tu!H+)idaQ_u^*dd0oYyjOvx(@BPvH}dkxB?Lc)@8HN2Q$Z?d%T^!Qm@h(EyOxv4 z&TPgF2&>?CA85viZ1GZJAD_}W2Ut^r$IpQbGR7!_ELJL2#xc>OUvQ^j&pTfNDB@U%)w!OKBnb(y6m z|8yip>;T+cdbg+tOoMklx~)r)%QfMB~mVA4tKo@YvsSUdZc>hit;2GG(!Tha5R_7_C+^3mkMNI z4Sxl@QeoHT8|7PXa8d_|^bEifLo5KcZt*T2BxR0TmFo6Y``*}-#%SZnT7eoK0?8jXLriK4Zhq94ftR9wLBlFU4V3V=w=bz$TZgX48jksqsEJg6w}x7UqUgO z+ozS9S4sCnRhMQq4;{aEX_YZmL=5raKFC%?h6kxb1B(pD^h!bm^7hC#T%4 zpB;~}fr!@qgaK*4mdLOdt&)=}&0Lo!*%qGBh(AY!Q@-gXIV*ROWcFm2?$i=PBsXs~ z?*NItp1-5p>j}fO`wcZ08A?eo#K1g-(wGI^d?~knVd?iR_`oWOTCLMsk%m(@4$kjj z|IxS=n>n4vSGs2v6OgeUEZ6k#ED`JLU z|E?rTCm;;3doKX_>u%>I{j!ecAhqSzB5M9slg$H>EmHI1|Ds{D*j=jLQc=dj>AJLd z^WJqWHZb{mJ=@>Oy*3i<$#b@UHq54ogFf=c_CeI>o=74Z+_Rdv{P8e{CmO2soXK-bHgzVL|^>tS`7c`nem zCAaZQh-jjtCKvHk!A@Nudw#DQyv0+2$+&#weAO1+>8?O=twe4Bm{P|8*;cQ8iPg;H zwBV!b!dk6waGm{9#>QBqk$n^pR1Q(unClXh?>iVjHuRgFLZ`|5Zawz2LH66t%r40& zPTY0q;nMZBMH-+iL^Z15q5Z3*)WuXcGQaq>P`IEOODJ!(i!8KGOTGutr*!^gDOE~i zO@PiNe+^4wz9=0osU8^+6!&+#HjI~jn$g*Xgeo^XpAWHE zU?G~8;{!9HJU3)&H!gs|KnV|5%A;44)iN4hhKB#6R;KF=Le~MuZE(72N2qEoWjW8@ zgr=97S9X6GdZ^hk=#=SG_tq{U38rX=-Z8Vg$^BC|K{auoE<&f6D<(RDQ(s|=a>`(73_{yPa&YCYG1%GQTHh19Z_S8SAE_}8xf4RAAzGm}k zt_2eiFg5xU|G$lHatDoGc~WI_W@py4i^=qO>)d+_vp zlh*DO%B3q;TqDce6#Jg+o*92?CRK-c)~)>=a*{M*-1|aCm;uEbY|2D&)E7=R1u9dx z9iP9xs3@xtGQKD#tQ|S9uDf*Js3&I-#HT*7iLnwD6>seNsxvi@E4XP!da&4U?BA5C z;I9-mA0wLuXARL!j$0hdyQoagX_Rn7S{Pp5IzQLa#j)boH{%FC&`x7k-w5#w$mWjW zp?%lGD_mz?S!$;08%qdCOnCaw@DOun&O}yO=cEYeZ?ptXwp%hD$+?<}I>tj1m*@!L ziz*;>(!ei;%nN|aK$V`(#IX@v*4n@jTZvLvkIOaTmo-iG&9`~kgJ+GWI;4LzYFHz! z%`iF|ga~aHITpNp@9gSa1X@?9_kz}M_BQR~rVGP*%HAmwQi?$N8yZ+M?o_V?wGn(5 z`gM!%BNu9)))NfsE>9~Aw?j*lO&Tt6;9_tg4%+6sh-@4>%pN<^(XkGbxUXM}#a8Ok zZ@pw-20|ZZh2wJgaH{LE(6^Dsk1fVputUTCdSvxvq-SwR!0hRQct8=EjIDj>Wlm;W;by3KsPZLarIC=n8!qf-rOdm)Khn} zCfi0nn$0L$aN0XB zBCFHdTGODW)vU&dZ9gg`EQ<1@HLvPvB7UoN&{~B_-O{&GAG*9F1z z?*K=x#pg6go8NOpX@K8C^zGBSAWr$TRhyDGHTqD~$%L6{{)r^PLX0ii*x!24dm#;9 zk78Dx)l97jb%Z-A9qmpQlwx%w1R#6A*>!eie;-jaT$BX$Nd;=NGBTQ1kGB3eND~#B z<_Sdf2Mag5LTe}^2c6Uww#~|hdH^x_9L10@{EKWrUN}|zsnw?-MOl9!fytIzA>nwG zT<}qFWxh?5S5V6i3e~ALi)ZjScBww|+AmpZkjW()33@K_G|l%xtoA;miBzVE zBK?J5mlPrQr`^T2m|^08w-{B^)nV|faZ@_VSnW1{o1XadGjTXGM%cEED2X9rm|~oB>>(3A|cZ+3^Qjhsc3t>O;T_3T4aX{1NcYFhG9i46i)d3OEg#% zj_HWnN4qxbx+s@W*9iwLjb_;-?G5}Mql(q+-bvo z<}+aYASm`@fxE$wzVt*tx>R7h*q2bG>(MQ%D>!WCO%m_DKo2h-zL&&PDBZif9Y$`z zb?9{GvlpH(AZCi-k??ITNtK{=9i3ex{O&rVu$32OK_7!=utX%?8dSQE{?pcM3sDbv zTFbb)LYMQ`%B z2i*gojH02LOvZyWeG&hAkqJ&Ov*mX4=$Np{BF)qF8`=5eqMyJxxMkXn-?_~l7!ST& zD=FjfEu$uRDw#7n^tW>in@V?ToJ>s8tywNY;G1gIrHn3Ue8i$soD#p^d)P)ZDKW^V z$kwjOG+z4-kL~jT0uMHAr3k$U{owg}Y<$uap`XOCZ;Da;4Nv$bYrfM(eAmh1Ul(0M zQXwVIRLk01zv=g5(7l=@Jxx$syX35Oasz*fb$v#P@+@nv(AJbX&t<{01sA({FMK}i zL&(Qxx50&b>f*sRgpM!ydBhhOO{1c;xuvQ?w_Y3AFV;I$>GlFfB3Vt|VJSUWQwyJv zq2IQ`Hzi$Ph2qvEe$)w?ffjbWF_#bDxJc1^PyyG`T`ly( zXTr!ePO66~3%AZPpmuxx3mQjUWMfwPEq1km%O+(}4Gy2CVl@VvZyob$l?|)V{70Te zM`Rr9eP_-TxCS1q(&3@(d|Oef2Px{Vz&+E+;`}>e@jU05vBp|zT;d%G`i_IrSEi{u zQarp=i|zyhV#@+|HNtmwYo32CEhky+f_tXBF=4JGzXx+qD$h4VHFl}4Y@8f@Y8y}I z$-qr!T<)ylx;?f@s^SET`wc3X(=F$tOTL!SEE%`L5m)DVd9U4JJAtw^2?g;+j9NwU zJ@mYk03qQlei!$JDD{~lr<|o%ce|jrC2vt)rwk+i5uQSfGX-1pQ+D44v{ZpG#G7k6 z5eX-giY>CT;}GNEV85838|?_d8Bx|u^i3!^wcdI~VTyL4ngQpH{GDD(<%3Y$vc^TF zr_U0jWDLo9>V#br#22EF=hWl{v!h(@(dXH1H~dv=I|HfO4!;B*))J%g;ft&i8Lz0* zdfDgQmvPl=ny@S0AK!MXzG=Ue;{Nsns3|Eq@*J)-IvK-0HIAKA8^3kdrClCkUm-n=Ty{^H9_6j6M9z-1vvs%t?UZ_J4njjDut zdVi%#Pqy7I*`cz10>M^a3hAM0Pr`cOh>E>FyAml2rK!32is4%-Y+5psThwhG>xZ2s zSo00m(8J~py~X(clGn7p`}tC;w;DsDFDOoJJ#rLh9GjyS)m-hW>S(?H~|K4o(=S=t*T7g&HOKl7`c z{{E`RO_45yUrR^(1Vu3{mx4&>OCc=0!J%kuatZ;@n`L<~!oEov?jZT6doqT}D}~Mb z^J>tC^@ukT8%Zk9`je9{Bey!fkmkOE`s~lctVzv>W%Y9kUBVCv&*rrC4|NisQ$&ZVop-zAenG#e zZabA->Sg5lo&B=nvP#~a8gh~`neBW(mzvI0O|H9UT^>7tL2nu5|8X13Y8(7)HtnM% zlr<~sWH=&u?lrNHuf9udc+vY$jYJwL9~a8}35r0~F2(F-OMC*XK_`iyO{!;pf~Sxr zYi`KQCI8U+W|!g{U%GIx;qEYx@H3;X3)rzKX~J~q$kdmXZlrm}U^F$Zah2O`BVUiK6(l;)6_(o};3x1X0Vrn#YE)4KT$Z+n5XhPye=t%sgX&W+i% zGV|s62iNCmvsewfldaDpFBsfFj`>L8d5Sd_#4rxG%>fScZ8eKnh=KXqiucYEh-cgs zmf1VYrOq(*vs%#bb1m!_;NH7Q`9XvlpMisB&}6+-1h&qA?$jJEwHs~0>ce*>Gh(LG zPkkn^QrN$bil4tiYeqk0(qt<}UiM6sq|tD{%z!UyO4+^LesArR{*_xad{0VeJ!qKS zIWKEy?(GpZllbWQ_qa-KPb0?O9_I0|uWKu+^<0SSo+*z?&-6h`Q8dT_w8ff;mG$!O zZ1=N}GE3w4Bv?+Lvb}NjzJgM0sg~li*fPBovK9W;U)<>K(_&w_*MCnQP%k>xSPgMI zomDI++A6-yT8JAP`~BKiq>3_|x2IA{+(yQWX|D`o5ah6V$%$I#;L6GJqu_%dD(kcO zmS6gnJ!2iAW-v_waT`j=3&U7PJNki(P)n58)YS_wJnT`#OrqMGepxjQL(5Q1_>NX!+^+{Uxq&CKEwPY_{uQ$;-ks!||*F6kq zo-+3HU$=Cj@T&dX`K!BQYF<%Pe#zcdv9^%pYf#h6VVsuVjfP^%nI5uo(G_Z<-z<{y zYkAq|Y8`Cs;dvnx4KW4|wXKw|TAX!zW6J70%0Y@{+}=)WxoTr?4f1kX@lxo->?iAU zm~yWFG=hAIx;C!w@-CYO>~oFq-$Gs>iRS-h-3xfSmmRzc)q3lWCV)eth}=M-oPL;$R9{XRV`@*7Qnp26x%wD zV$N7!THG*}m({=Z*@q*pMRO^q8+LC_g4iY8Wu{Iu~auE`|#Fos@Q zA=iyZN5-WUdjg7k?WP!6Obhl|_sGKZpQ~LbCEeF?OO6f@V(xnlzRJCkOxWdb?4O_{ z?%pt2pAXw>1sqDABiJrwS^e@#1-(#)ttR7ZtTmQkxZRCZQ@c%y z7h55Sl4%tMxHpbV&{E}GEZ@nHYZ1-9(fPibmYI42qW5Yl+gZ#=;d9G4hf4LsMZ;nr zBZjI(+_I|}N>Do<2)O{6F-l;h;KIZ+zp8c$mniS;4R<+~M^@*c8MBE)_SWlc|?>1H?{V8L@OMqzDG+{<5jsog9kn`T% z_rodKt|_I$;n<1W$+>J-2zT20e&keM;rg}OkggVu2)yuU*QT+hTtOg*-^n+*?Zv0y z=URmkU&go#a|b3uYWU$$@coHAvuDN^w~V#^pCIQURk|K75)N&JZ%|za`w?c`5QK!8 zScE12tffd^xqA70Ws=z*MyUI)i~B*}ZefS0BD(F)Ni#7~+fNG|Jmi-^OWV(CB}wy3 z#}!A-?t#4=yUx}&5k>`|61O|+?nD!YZ}?Y-ncCvL5UbJ8G!tLk)LCPC2Aq%~&L&|* zm2`L|Q%OG)^&4`^H>AB&N5;X^U%c|U#I+@`%jxBgT#R{~o{LVG*guP^(9WC=!tuO> zUr3<%YX?=1eb4oTzfwGPDjgxve03K1a&tkOa}->OVCMKfUjwb}zvYye8Eh(+`fSf^ zcgO=BtfW)0rXzv^`o4c!At(k@-SQU#B$>9e(R_oOHboLXe8rWr_KIa(5Z%|=4ehDX z9(~W^7F|__Jd6+NU6=Cvv2G<(l54Zr6`RZN?sFRm&r8K)Y!6ScvH-DzUS0Y#>)%)l z6IaJzMG^rj?$UwSl`?#K6h5QGG>$_O> zy~;w`8X5t$?b;mnZ%F!T#Q%A^hirY7sp?rPoJY`-0~OYdd2G^cC9PK&6*Up8*Q*OZEB>T7H#=lic3keN zui+jMX?Ku&3$pVAimQ_ZlRkX^^~@H>c}t)Pwd?ifA4ocD(W`2+tTtDT91IgaQ}WHv z#M-xsKCvPEW(Tr|0c*^X>JQz)C+gQw{g)|?EgB;HpoT4_MCaM5@qE2Qv64^X8WIuz z>S}|Na?u&v!vH6E!d@U$-m;lDtyaA9rsl?xTRgn5HSaIkzqtV7LS+eIbny_4gjDbR zi+O3DFe#2xJ{9e!lL)&lnYCw`+==U7SVYHKVjzIrR>0et``5N6Y7`;qQ<*+@y;oHW z->#w}X&bY1D?i_rZe(TuC<^+_#dg6v57BPnkZ@s^a zK66=q&B%V{9_t;sjEvRC>cS=QsU;X;+Tt?=k=?c1?qs^=nh_{aO?}!R8a++3Zx>yW z&E-3G_j;ctAz1CV^e|_O*xvjGUa#;@7Jgup%5MSbq z9zvbt%iMa5oK3_`6FWx~c^h%Nrt&u`5Z&5mPo4KVs^OHZ4a0buEj5&Z7{NY)!bPTM zbEB&=Z{4maI!l*?D?UpyhXCpG=g)|h4@mkbWq-gek}$dVr~Hj3RV45O$OCn-+uw&##j+`PuGI63zE zq0>urnb=m+{Q9=kmQbHVx3EE8F75<6dab;ZcTXb1;ptJh3reitNziCJt#otiZv+G? zhunWt2^;z4q>Mo1+JJ|GyJOC@l%ghv?S;08EWt7Z@ zJY*Yz=tPyHZR^YeZW%!q5(|EFIz!Z0b});RdiGm^R#p5yh(t`+J(K^dGDGpKvFY;Q zD|5`4%RUA!3uz!UD^PcKT#_~aEW6OgNXfEJ)TI-=mczo4cw~*HBB4D?EI~fUs4H+x z)B3czg1%kQQAvAvuj}O2^R(u7dSe-X%+Ogv0~Gu%%ouLl#B_2}^-T3=3#zh+h(|_g zB{0AyOUSgW2dQ%o0&&J70r)`vZL9k&7sdS=PD1(=yPf3BEK{-$lWalNa)|z2%byT) zEA`XYaZi7VaEW$ZxWv78;qJB4^@FevLH2uBR3Qju|63m`#sbUct+NxAh@;j5`d$7` z8!^R<)(ghfu0mpXaIv4|j5!;O2!imZ_oxnZ(b|h8t9Brqp8d`&iaoHTAV) zKZn$-9=fMlUqFzDVW(c&3DKvTq9ysD`%k1J^pfzj z=s>8DX)I{n?yy=?grQAychoQ5Ct<>i$834fg?WT!VjG?k3r0yqI1a&P4uQ%#_e}-< z!Y00mKWlGxepZfX|hO@5CSuADm0S~D_^Sq_|Gx@wkSWZ@8 z`J}^$S37OtsgQqc#gqxi9ObU#favaPrI1q!n!zw}Mf4a#yY&uClf z?af~rvhM^fL`SwwNV2SKgc-ri=PYK-vw`eY)faT?&QWJIQwm04)~kH*^Z{p!$DT_S zV*>z(=?Yz%7+y7z?4VD?HZDQuRSJIql?|`h7CQN2g{X{W5hhw*@EdLMj>A3zq;3Vz zV(zmRu2)z>sZFTXihShWB2#Ckc6Dw06F%o`V)24l0=iqn$)s(S|E9zg%S1CMQDA0 z^~9X)|3^60Zt3;iy+J4Pb`-ATO~o+G%(cLC-^gWs?zQZc@{l%hJVQCb(~Ky}JG_c6 z0V1flBGh51K4wLH^434W)Zz2mnJUl0(zUlcK~n39S4Zx;a*R_l!E+?T zZ}`j#b=Pnns+yx9+I!uh?nAvo3hk142J`Nbu+WW_o7m-{NiR-_tkJ;wePa9Bwfw@U z$oInjgt$r1`IEibT^`VB6f|yWhrNcS??j7z5ld~`dRpHl8Dn9+X%9Rjb>^LS@;c58 zi<8V_@9NuaQVv|Zu=R9k6vL* z=-}ZB`LwzDGL!29RYji2CeJeGsml!lGh&!RES_8A2Y5b|Zy5DV4FFILm6en8=(URz zRXH)E``i6X8mifs@0@vbiD!?+e_C4MQr4K=OBdzn3@kvVl$UK%mUT4YL-Ie1RE?B! zZ|xt0gxad1vgG?Dv?Vd~M#JzmGdped$+lYJAap>mRz@48h}yLHaa_U1Z{|iU(Q7tIv4Vmd}Xnt=_&5o2I;)K>0 z#Y(o{q$Fx-9EgIaIo{Rg$EvUyL~fro#i>&AE|x80>y_0tSI@{xw&aG=m~Xx4D>r&m^&ie04EabrxG4?d z>_HVf3ROBEW{-jOYS%LINtCV(=u-y%3Vi2fr0{`I#bvy|U+{_#(GfCbt9u zhD0@YTMi}l6y^NL9v;o5vP47aYgAcIQg_**WCkQ8H1DyV`^ZxlHI1oWuLVurnnmx8 zQW0xECgh?j)I{MAYbaAXQTYunoU*Ft1R<$sMf*e`g;v0?N zAj>sT<^k5GyEgK|BqhHjqu*)+&zMz8Nk4#x9tM7}s$*pyW?wg(v9|z%rRM14Jy|nX zuI|PFN(p&x0KATYog4VJw^kBAh2`}&K`?Tw8j zWHj8ZXVJuDcQ$Q5#Hu(15Yoid92`!&XMpt2S+ntdzkyvhC-Vw}tKgDmS4r`$!}<7J znWExFInWLjk}T}??*LP#T}&6z*ocsb9`qljO`mK)ADNTWOjstaDnL68Z_Xx=Y>k3; zRjK{l9VlL0ZMOY5?cK}7fzLXt6g_+FJ0fjSe*){`4sbRAL6y~Mk>0wDsS^77nW$%G z_RE>Mkw3V=Vk%2=E5+qi`7GB|;HBUajmtp#)E6fI#n_tW+cwl+b}o58Qn~~C0%2S? zOq%Z94U+}y#A~phxvE14;~$!xUT!7M*j@$;YY3^kB~z}6T;^1HHY@GwH}}7R@W9|H zc1fAqJPeHrSOJ_YJvNwP|e!+pmU-@ioq^X;_UMC)?u6}FBv zMGt35>#mAP=VkJaqVn{!Pjh`zfQ|E?;!gRXw7>o_(E3NZ;U8}F*Z;AjO4E<9;8h+MT$ie^krBn`eEZO_3)8mc|2u+-!VU%Dn7WQ}U2u+2|8|)+n#$mFNe=_>OEOk-s zUqELv!BzU~Fm)SP6%1>r-d9VHNMn-`kPL}5hRw*E0uKS{1LQTX_BZf(&@CN?xNO#l z>GFD6KdZp-A>Xv6oCr<-XO1b7QuC@RW`M3;IEjJ+W*tR*&J0@n0(syeZTzdrn3x<_ z8BnN#tb$gHdSp&BM&hu>9y&CA(Bxzmv$nj8&QJ2RBl9(yQDC?#!d%2A?GT<|P!}p1w0ILUFTX+84Eo5QN zWh#1asWg_IsFhqeUO9N;e4QKnX93llrLOvZl-!n)A^edd3KYkziRDjxrBM)*jgN~l z2E?<(dbHv)WqfstnTjz<6Z+)o$3JU0N3uIkAq(24bMo$%8d()=LCavh44| zao}6cV46@+n|kFy`IySplejU~d{OI-lB;t!|8%`CNqNwL$R`;jFIY#_(B^`^MM5Z$VVA!S|VzSYSP zosa;K+DjlW@H163=zyhSD5>Z?l-5qrgP}H8Ek}2wGwS@AS*Vir&W=;>qCaGzvVjs z*XSPs$NzbefoJjKKS_$$FF2nVcehIft!)hjg@vVYSd_-c9xPK3k&}}X6F0cu#3CWd zaXk0^6U<|O|En{b#{1bpW34^bD=d-kUk&7B9UPoY2Z?zshQ;V*Q5SiBAHeXCepq>@ zzmA{VWc~8iyWJjP?{B3jStKTQxgO*WK799%B_N8`AM=Uf{NGejLljl)l_q5GgCyfz zBGNiOueSE-yz;r*Xex#2s-(F*GGRG6u z!l})#LjOod;`klFFdL(TsW;;Afu`=qd|Z=#kqotgo1>@<`?_>{&2d}<>3lIKA>`FY zHTSAxn9pK(F<~i$d0+%ig!DoFH7;Vbs{3iYiuZv%PE-puFawG|_tgh3NlVqq>0mwD z{1uyL;RzBg)~Ae_rt4GkMGHCfT;Ch&%eA!*i|{8%gsi~n$H&JV9Jl{m2zQO>=M$h2 zUFRm_zmK0t8X_Ul5()j^IVGe|l#e;4OWdbbO2;h|T!2@E*LhkQ)0{dT5>gfEC&~|v z`yLMyfzg=mfi8OvhQ}?JfxtuubmIQW{H2rW%wIdj5kpw1<~Gf9B(wwiWDQf5vK1`% zotn1ivRZmgOBXMvp6-cEJwWOd(=6^` z9u%=W*D!q_y?CB_$k25Y=!9Txsx=5gD{>Mko7`kYoL@&fu8JbXkD+1w?5o*X2KG}J z+$=xrq}`82td8dO5}b?}z&#))S_$!%HwN@fg|-9qSldhP7N-M;gsgkRo=dDM<7%iz zDfoE!B+4s@)y3%h>8g{Wf#EbEMwTYqP$j;`qEh+w^+Q~w9|?i(7(Jrq(@VNV&X?6w z(}5?e*4^(F5)2qe#w>PP%cb^iRo8?jc0&VBFwP|xDl#>-hp^M{2t4m@ORGSeDTiFR zmzJjkT(|~Bwt9M{Vc6=YhdkW7TCNYSTw?P?hdTI(!rgIDuxp6%72X1vpSBMe;rgD} zIl;lf54UL#BWVw}ha0%pqW5!CQ|BW0Jw3+kO;z>VWX;T6lUoZ=mK=izMc4s{$jvwJ zLEf1ZyskaXyy_I?A!mqopmd*WRmQ#i0B8Y-QM)tqK7bgiwP6TrA=m}$^^$DCYyvCj zJUQ|6Wb^8dU?2U1XH=qRF>_w#{e(e4?UW!WHV%%^RGG#P@*2f)y5qx>3=3^APh#}a z!4*k*llg;wWO|)vr%Pb^!6u{vCC!+^8ZX}C&I|r<&Fb?g}hnS&m=y8gd6^G;3&pIW-dius26y24(VbPpPV>EYLmwS-!+QtfL zW)>|D0&&8S2VW&@pM7M`s-HIxWtewvAp5NW>n>lfBV2a^n2+k(UYY&v9qU7FSxdtO z>`<8Mq0j$o&+Q}qv zMsCj8|`oG2MgT zAqWIqdLLR{;EBO#X7TT7JFKNjF0t_sVd2!(ydyYdps35{mgzhKM9L+L|CETkEA+^N zZmeZ^J(>cxqc=4M*+T|;ay7M`OP#GIfE$LwdnG_Y-YB2VDw#W_B&A|366o1G4eAaA#vb;GO9Ke zk#W8DgX~>e7tE%JxN~>au|5PysUXUTU_XFt`UUQV|8XYE;7DN-?w(p_y{CbLLcY$8 zDwESeblj=IAy3d<5oB-g%=i!xq(yQ4+-E1sRv_x(b>uz(u4#acpmO695jYY64;E8ilzCQkUoEy9Zd}*O)>dlT!YDtig3bWBG9+W1f2L_P3}#?C4G78- z{lMIt``yd*-I*ZUs4?}NJkp=_w_yDyk7_@zNns+cELgVz=wv> z?DyMmbyJBl9)EK%frC>J*NuG6cxy0)(VSiDzPu3~DW0_RqdwSf`Lnd#n?Ic8ylguM zaGi{;2xb=t(aiWh)9a1{S|me9V2L99x-2KHO$7`Ok_?-`h(SKyuN)5DHDBtJyd&Vi zId2}%X#ig?!359)I(_5W+0`OLl(@U3&0D~ir8bou$4PR=<6zU3Ly4Lsq#rVW>M*>- zE)V)1yxyDblzh6pi@53N=)fXhB={p97?gxVK_Ox>Oq#$&{?)69rycDjteKHqFdm!P zh3WCOEuZ^xuS0i}?nyB5nIj+GOmf+nFAs$69Nzc#9`zoLhJ(HvpP7FSB3rY2ibRY1 z$w&!oza0DU{Dau2@e?GIw*Rpf{%b}2*D)*Xj<oqC>iEpfW*M?rY@u%)GZ|jL)4dNWd(q>(S zkV(wjm)9p^HMwWX&PFi0D&Nx1Hmb@`1;_Vu8!D+cub#A>_ASU(dMxkosyo+7$i@CD ziJ>u8sYUw-2;7T`e^AWz7bMDuAEPWj?{-fC`DoHTd^f_&-EQ*wn`XKTjkKe| z%v^!t8$SrLPVLrXg1S~hXX}Dl&y%glX&^MSC2Go^%Q9msH1OchXg`{y-q5F@hHfrs zPv**(DPH7NlZcib3H7PM`yyuN{Hc)yhp-V*b@xZ^8-Q!{Hhk`@`gTpxW=2G{-lOAHE*VNne!9Fx? zyYjPEcNUt7DkmpVsEL4;=vKlVqhzJxNPd6tf_9u+iHg1C!N>$r!KPe`?qM(M=WjDb zaur+~^ON>=`bqHQX}r9RXhj2k^~kh+RYDVERgBpB(N`$cuEV-N%`4>J8_BOj*tkrXjoox)vh78jB zjT#pf&gX$IwgTTp)Qu;wm>N=cFwMkpG;5zZ6@tQu(rvz`e(Tb4m;(2xT%=gY{P$nzAn@TAqYV%YXk`N&Ta=0a(wp zPvb$Tanls@s#{5$7kd5MkV(g4P^ziXSpZ7WEl}g&h+wmA>t`TBDR`Cv@`M=a85+jL zw?5V#0I;U6_>tzsr!Ko5tRzT+a(w}RVuqeXR#^LX0UWdp5GwPuY+oehJL6~|@6gH( zE~mOzHtd#{n_q~j8>&RSFojVPe};@C9(GpI zy52+g3N zJHJu2;ZKCz&(}4s=JYc2G&!PKo>ezyTOO^3lyAS3MJmodS50;+U&mR?uVS7E;KiCgvlg7;TKoSyw~Y>9Syb=O1KNh z+m<<7kXBHbAh2S~`lBDWkc@`pPk)AsI2~9!q}Qrw7#-X27D|m?&n%PyyfJR1T~NJo1rqtcxq#KB zRGn>HS=JQz8(3OxT(JuaL7!WErl`+)kXxj3W6*%PtmlkX3=b}ZN`*c)SRdpV>7VRL zpgm=jB-^s@zIS^YKg8Y=QL($$snUy+@2WH*hQPJ;@$HbKm@h#{?Rn{Fjyg2MGbmN9f_C){SliQvE8+!FAZZ+qp~c@#+N+Ep~ZD_X$~b+#r&G_q6Ie;b-FzR)NM>Yc}YPtCmWvOpoF zm}}F|RD(@RT)Hc(&y^&YEo0Y@1Dg#(8UUdS@8?74-g5*l=ew%MC~Z(w$=2`-Nx*Lx z>r50!>WiLRYwX}dIxAd?GBvOi=HS&iO2MgeJG5KPYRPu^S%L<-R!59gg%6##&d5u5 z>`VUHCs~~Ri6goe2ckw20m|@}MvX5v+(_Oayx63d!Dx+)YJwIeK8_~qj_>dY-)4Ou zpcU#WZXr&nsAKd>O2wnZcm>VBa##Q0$-DP|5kcDR<+;g7w7l!bFu4pT~?Owp6reNNs)r z)A8*FnS0Xi*CKsI9R&5>8S{LOlujtAG{oe0zo6vJi=)^odFz^l4nqOU2vV<5`R{;=_FP|IoM`?7*F!O;av65&SLy?!v!H9XTs{*$C$ zZ7s+6RWA16M^%GT*N+<+V~h-u7?WR$nl!j#{MQ7Xee{>pA`iNOI#b~p>GC> zaK#tO*IJraFLvq@(-Sql6XRlAD(Kbaxb7@${L!Agm5dM$MW5b!<9^y&6>?6r7Ip6A z8>Mo(tBKmh`POOlUFegyE)l|y`0rm?OMm(Q6n_3!kp8~{lmEkii_4+-Qd3hqI6Q9z zm`c&!4`L`JRGXcKN1Wdd^*ubA08AQ>#6Ae1Jk8Ez!WS5autpAx16_b!`|xD5yJwmD zeKNM+!4eHnMTtZ!x7geW79R{~`@3@i*Kyh!4oKrM09ptxay{J~N#NKThA#k(n}=yH z&&)){GGPPXtuZ+Cfe|eS*cI=&z1vX%Ft`nuk$%Sll)%8$_}AsVg7{p1Y2JkZto%IA2K40Hrl*z08IZj zxvq{6ph}#koDNnu2LtwQ5DorT738=ed=~8{!?t$U)2)%DRznuWBA{7pLLwrf1~7O# zb)U4!3BXd=d*)qYsT)6&U-kfG?pu)H2o`YL|LL>;hhp9TS-$)K<`Z02^Pj#!1S4s! zU+-_PPd8cP1;C}irO+%)O-;8`zk#<8QWk3M1HKTfeKOM3)$Om`xcn_8o*dqDeo>Usu|@WLr+dZx-y=k8yzun0$S> zzZ0mnr(u?95y@;9#||=fN)H$$7HRr6_xF$dW5+0%T1Hedsdp1m;dhxUZGWlp_;XhR z{41g6fxTX6&VU3{U|agvvCOUxu}TXb?nW1YoyJwEB@7K_(yjjT&oJ9!{_@tiN(cBw za+s%EtgqSVP`v-I+Ri*4%I@#u?%Y!7PRdfr9+F*T8Ag&NF_OqGS(ANV#zfggRAd`O zxCvQ?EK%0mI@xbynGl0v#u#HZW`397{XEYf&+GL(|2(hfpYzA{IwM1V z{XOUCMHJvN(g5fD`DuTcYdGUXTz9VX(ji+Ayy~NJuBmo@7&+iIj@=A~kt=zh0O)3ojNoRul3y;z^W4m_=jo<*fVI1HJ zgu*z%L>m6X!-(s!u(bwK&C3q!X1@{R3oga@;e*)6HnFGE%ihMXq^>g=iP+RB!Q6NS zP-hcfq04W>64t8e)AD*_VK35aT`U08KW#?-oWva4Gb{@CH9T0AViJscibMJ-pZFQR zq@wf~U#BsQ<09k5N0(wuBUlZpT5#}p3SQ1$8tBgty5<7XrHWyHZg^AgsTV~bZVCpp zjuOpQ^7!5K)eqNlZzo=^JxiA-f%7#H%s-f~xH!7L?ioLL^5cxGG-Z%8Hx(DmUddv;BqS@mkhm4>lU~P=qTk``dCO2S_C_KOch9lH*s*JWT3nrPVdW<|HIF2L6#>UMD8H0l~>HzgzS+ zQznX)-TsI%N!QW1kLU5i4i%a0!o0&jle&aZ^!4uXy!lEuQ*`Vo)%@)o%=D6}i5;2AL<@1Z8k%RKdZJH2$LP!}f}t)Dn|drlF}^ zun-!>BW&FbQ_F=qAMT;MR=TQuGjqCR9J!oYcbA2~BH6Z0f%DTB3=7#f z^L0AKYXzCb8mr)68ZcTv`b%vXsX9}Pa60{twKuvJE7TWy608&WwD0oAT<`+bV0jvg zdt5JlRa;KO@k`!W=#NXT7lwD&(1pHsq%e(a{~N$jC$u*MC);WnAF=blxIAiA973-( zs{zCVSpQ)FDH-TK?2r}pg%J#kr0&3`qa$<=c-Lzt`(Z!>R(6hwxbGbHi znF;W=<;fv^7y?%B8o48H$Jky8Ns1@?{oe<=Gnf3No+U!g=0 zS5{XsBe~bP-_gm235kh`34osHy!wHc$R1~#H>R$6|8hd_^&=hp!LNN4J5=u+G*vS}p282b^!5D5lT%mf`i4rA9;c#uG~U zBL1oU70@No-u}AIVuP2mNrI7ZHco!zUiGnK1~4~0;BKBnID#Xv^<$Wb~+Cn=*#)sM*JGao=WV3P7!HyEpK`$0%(M(bvrzwbIni# znVh`u8DkQ`kVme=jnA{VaGtFbs$PLscn8{%J3hCYIm--IPq~k8AAT_uxp7hANOAr# zW13u%inTr2M==Sf8+y-N{oM?&Z9Crt5qVvugn8K2^H}Q~i{$UOmV-k>XE{CkEc5nG zj66eX6fKe;A#2eHs6_dhxjAC+L@OFbX|toNT*I`WC(%Z9p9nbRSC264TL0irY!}@e z#(Td5=WAy@FUeg46^04;RGKcF{&tKT#oC2T-#NT6(3iH9K3D~kZ2&!3V07H>QN*== zVIKs| z6;Vp+2L(0`q&O0Mt!jD~w&GF9py5~V=x+zw);Bm57b|r>54@Uf89QRc-IQqPoL-E! z{Kba+f*eY?`s_>3hhka-&6<&9V}vOqd804&OVqS*LAFVEowkX!c17Q(3!JX}&> zHgNTXLC%t)$;>meS;)K3fFU#G;Gguw%iN8RGvYGF4&vH zTk1gLUSB6*a}wg9uKjurNpw+6L)N^&mU8G1zjME zi@ICbOAEr<%XPDvPfGB^@)&F3xxUVW#=)nAB@mE|>9POm$U0_o6;t3f8^c`AK$QNO z_dO%f*4>i#x1>v@8B+R$&XocNXOv^i0HxiR47T5Z3_3V{VubI!^LT)Is(mFK|E#uy z+t^6jGOV<9ia|z_D?Z6P3adi^bPI|_G0N34v$CtdE>Tqw4Th_ z32)L038E6=nPqBOfpC+Y#X$JCfL#)C2YT8I8PUHxG$z%!x?7svAM_%%5N*PJj_=zf zKbCRVs!Cj=H|}%>NP_0ObmQh!nV|}k;K$EgI}hQ~q|gQ;|Kf=m-6{^d870;SEu!M4 z(tgUpkTB|`+%*0&_1W30nlI^j_x-ZB_S|L~8}P%9nXfl4u(-2Da!Bd>+TMj>ZM>yy z9UQQA@P`B&hXC6YPpw9$G)E?4CTYEKJSWlklsH9NqSBL%jpf1!vK-JhP> z@ah#&Ud=b)U(9x%!)D87D(LHfnlm2fe>(Pk7L4_Yuyt3HGaf0ENZdHu81|fzJ=?am z`nE9Mv86X{<#c9g?#{3Y25v8YmKL;}P(WYM5Q$`aJ{Mc8*zZ|ixLqbYVbL!$csb^x zcG9zIXq9<<6$<+DL_H)SL2eJlbR7$FGIIbP{OEhG{jm)_2+g06HG*Xckn(KCFOj$BtV<6mtBw zOi8B<>Ul)@?D)8vv%I#%bLMq4D5K9|j;fpOV=wI*WVXwA%Tl|dFAkm;I}eX~R-bmq zfd2Dx?n2m%8uLyWA4sNMW)VtD9j|L$bKi}|PCbwt?FzR=v>ak72K8HfaSq=tkQwFL z@-O^+#eR3c8rOaLeoJ+&+}hkFq+jd>{L#DZlR^W!4_n5 z&fuhmm)tr@1&z)Q-Idm2b#<>6R|rx;@J2i1AFsW)wj=u^g&%j%L&{TdLN)lEbycis zIIcOPjlYgw;<5g+W!7D*ZNB5Su`F)`_F``Rj!&BO*yM`PJ5MXUsn(X4$ln=v6Wfe& zgbHo2#Rug1@jNhXRtS4*_N3jt(x}@gq~T&eG54EACb zmou<*6(r<(XwCF`Ma?Qrg*-#?e|QPE7pTvL_CgL zPi!Eyy#pbKGOr}+f!gtj$d>nRQ4VHluA_`Z3soK^Xl4C3U+tD^V%>pKlzr6JYZtFK z$^uYaV%1jD%fR_g@W1dTqWIXO6*TfmIq0b*|WR5{?Q$pn&$PJ%2iV1`ujXNYm7Xz_+eZ} f`Yb1pB?Bu9jKi3mGCUd!TwyT=_5-QabB_BLSj^p5 diff --git a/installer/main.c b/installer/main.c index 3c0ff0d..bb29944 100644 --- a/installer/main.c +++ b/installer/main.c @@ -1,9 +1,9 @@ /* Tailscale installer payload for jailbroken PS5s. * - * Stores the Tailscale daemon payload on the console, registers it with the - * payload autoloader if one is set up, adds a home screen icon that opens - * the status page, and starts the daemon through the ELF loader on this - * console. Build with tools\build-installer.ps1, which sets DAEMON_ELF and + * Stores the Tailscale daemon payload on the console, adds a home screen + * icon that opens the status page, and starts the daemon through the ELF + * loader on this console. It does not touch any payload autoloader. Build + * with tools\build-installer.ps1, which sets DAEMON_ELF and * ASSET_DIR and links the system libraries the app installer needs. */ #include @@ -69,23 +69,6 @@ int sceAppInstUtilInitialize(void); int sceAppInstUtilTerminate(void); int sceAppInstUtilAppInstallAll(void *); -/* Where payload autoloaders keep their load order, and where the daemon has - * to be stored for each. Keep in sync with tsd/autostart.go. */ -static const struct autoloader { - const char *name; - const char *list; /* load order: one file name per line */ - const char *payload_dir; /* where the payload goes */ -} autoloaders[] = { - /* Payload Manager finds entries by file name anywhere below /data/pldmgr - * and keeps each payload in a folder of its own. */ - {"Payload Manager", "/data/pldmgr/autoload.txt", "/data/pldmgr/payloads/Tailscale"}, - {"PS5 autoloader", "/data/ps5_autoloader/autoload.txt", "/data/ps5_autoloader"}, - {"PS5 autoloader (usb0)", "/mnt/usb0/ps5_autoloader/autoload.txt", "/mnt/usb0/ps5_autoloader"}, - {"PS5 autoloader (usb1)", "/mnt/usb1/ps5_autoloader/autoload.txt", "/mnt/usb1/ps5_autoloader"}, - {"PS5 autoloader (usb2)", "/mnt/usb2/ps5_autoloader/autoload.txt", "/mnt/usb2/ps5_autoloader"}, - {"PS5 autoloader (usb3)", "/mnt/usb3/ps5_autoloader/autoload.txt", "/mnt/usb3/ps5_autoloader"}, -}; - typedef struct notify_request { char useless1[45]; char message[3075]; @@ -122,7 +105,7 @@ write_all(int fd, const uint8_t *data, size_t size) { } /* Write a file through a temporary name so a failed write never leaves a - * truncated payload where the autoloader would pick it up. */ + * truncated payload behind. */ static int write_file(const char *path, const uint8_t *data, size_t size) { char tmp[512]; @@ -159,71 +142,6 @@ install_daemon(const char *dir) { return 0; } -/* Report whether the load order already lists the daemon on a line of its own. */ -static int -autoload_lists_daemon(const char *text) { - size_t namelen = strlen(DAEMON_NAME); - - for (const char *line = text; line && *line;) { - const char *end = strchr(line, '\n'); - size_t len = end ? (size_t)(end - line) : strlen(line); - while (len > 0 && (line[len - 1] == '\r' || line[len - 1] == ' ' || line[len - 1] == '\t')) { - len--; - } - if (len == namelen && !strncmp(line, DAEMON_NAME, namelen)) { - return 1; - } - line = end ? end + 1 : 0; - } - return 0; -} - -/* If this autoloader is set up on the console, store the daemon for it and - * add it to the end of the load order. Returns 1 if registered, 0 if the - * autoloader is not present, -1 on error. */ -static int -register_autoload(const struct autoloader *al) { - struct stat st; - char *text; - size_t got; - FILE *f; - - if (stat(al->list, &st)) { - return 0; - } - printf("%s:\n", al->name); - if (install_daemon(al->payload_dir)) { - return -1; - } - - if (!(f = fopen(al->list, "rb"))) { - printf(" could not read %s: %s\n", al->list, strerror(errno)); - return -1; - } - text = calloc(1, st.st_size + 1); - got = fread(text, 1, st.st_size, f); - fclose(f); - text[got] = 0; - - if (autoload_lists_daemon(text)) { - printf(" %s already lists %s\n", al->list, DAEMON_NAME); - } else { - if (!(f = fopen(al->list, "ab"))) { - printf(" could not update %s: %s\n", al->list, strerror(errno)); - free(text); - return -1; - } - if (got > 0 && text[got - 1] != '\n') { - fputc('\n', f); - } - fputs(DAEMON_NAME "\n", f); - fclose(f); - printf(" added %s to the end of %s\n", DAEMON_NAME, al->list); - } - free(text); - return 1; -} - /* Report whether the file at path already has exactly these contents. */ static int file_matches(const char *path, const uint8_t *data, size_t size) { @@ -346,7 +264,6 @@ int main(void) { pid_t pid = getpid(); intptr_t rootvnode; - int registered = 0; setvbuf(stdout, 0, _IONBF, 0); @@ -368,23 +285,11 @@ main(void) { #endif printf("Tailscale for PS5 installer\n\n"); - mkdir(DATA_DIR, 0755); - for (size_t i = 0; i < sizeof(autoloaders) / sizeof(autoloaders[0]); i++) { - if (register_autoload(&autoloaders[i]) > 0) { - registered++; - } - } - if (!registered) { - /* No autoloader: keep the payload where the user can find it. */ - printf("No payload autoloader found on this console.\n"); - if (install_daemon(DATA_DIR)) { - notify("Tailscale install failed:\ncould not write to %s", DATA_DIR); - return 1; - } - printf(" Tailscale will not start by itself after a reboot.\n" - " Send %s/%s to the ELF loader to start it.\n", - DATA_DIR, DAEMON_NAME); + printf("Daemon payload:\n"); + if (install_daemon(DATA_DIR)) { + notify("Tailscale install failed:\ncould not write to %s", DATA_DIR); + return 1; } printf("Home screen icon:\n"); @@ -397,6 +302,9 @@ main(void) { return 1; } - printf("\nDone. The status page is on port 8090 of this console.\n"); + printf("\nDone. The status page is on port 8090 of this console.\n" + "Tailscale runs until the console restarts. To start it again, send\n" + "%s/%s to the ELF loader.\n", + DATA_DIR, DAEMON_NAME); return 0; } diff --git a/tsd/autostart.go b/tsd/autostart.go deleted file mode 100644 index 888047b..0000000 --- a/tsd/autostart.go +++ /dev/null @@ -1,114 +0,0 @@ -package main - -import ( - "errors" - "io/fs" - "os" - "path/filepath" - "strings" -) - -// The installer registers the daemon with whichever payload autoloader the -// console uses: it copies the payload where the autoloader looks for files -// and adds its file name to the autoloader's load order (one payload per -// line, "!N" lines are delays). This file is the daemon's side of that: -// reporting the registration and undoing it. Keep the table in sync with -// installer/main.c. - -const daemonFileName = "tailscale.elf" - -// An autoloader is one place a payload autoloader keeps its load order. -type autoloader struct { - name string // for messages - list string // the load order file - payloadDir string // where the daemon payload is stored for it -} - -var autoloaders = func() []autoloader { - al := []autoloader{ - // Payload Manager finds entries by file name anywhere below - // /data/pldmgr and keeps each payload in a folder of its own. - {"Payload Manager", "/data/pldmgr/autoload.txt", "/data/pldmgr/payloads/Tailscale"}, - {"PS5 autoloader", "/data/ps5_autoloader/autoload.txt", "/data/ps5_autoloader"}, - } - for _, usb := range []string{"usb0", "usb1", "usb2", "usb3"} { - dir := "/mnt/" + usb + "/ps5_autoloader" - al = append(al, autoloader{"PS5 autoloader (" + usb + ")", dir + "/autoload.txt", dir}) - } - return al -}() - -// autostartNames returns the autoloaders whose load order includes the daemon. -func autostartNames() []string { - names := []string{} - for _, al := range autoloaders { - b, err := os.ReadFile(al.list) - if err != nil { - continue - } - if _, found := removeAutoloadEntry(string(b), daemonFileName); found { - names = append(names, al.name) - } - } - return names -} - -// removeAutoloadEntry returns text without the lines that name the payload, -// and whether there were any. Everything else, including line endings, is -// kept as it was. -func removeAutoloadEntry(text, name string) (string, bool) { - var out strings.Builder - found := false - for len(text) > 0 { - line := text - if i := strings.IndexByte(text, '\n'); i >= 0 { - line = text[:i+1] - } - text = text[len(line):] - if strings.TrimSpace(line) == name { - found = true - continue - } - out.WriteString(line) - } - return out.String(), found -} - -// uninstall removes the daemon from every autoloader and deletes the -// installed payload. With purge it also deletes the Tailscale state and -// config, which forgets the login. The running process is not affected. -func uninstall(purge bool, logf func(string, ...any)) error { - var errs []error - remove := func(path string) { - if err := os.Remove(path); err != nil && !errors.Is(err, fs.ErrNotExist) { - errs = append(errs, err) - } - } - for _, al := range autoloaders { - b, err := os.ReadFile(al.list) - if err != nil { - continue - } - if text, found := removeAutoloadEntry(string(b), daemonFileName); found { - if err := os.WriteFile(al.list, []byte(text), 0o644); err != nil { - errs = append(errs, err) - continue - } - logf("removed %s from %s", daemonFileName, al.list) - } - remove(filepath.Join(al.payloadDir, daemonFileName)) - if filepath.Base(al.payloadDir) == "Tailscale" { - // A folder the installer created just for this payload. - os.Remove(al.payloadDir) - } - } - remove(filepath.Join(dataDir, daemonFileName)) - if purge { - for _, name := range []string{"state", "config.json", ".cache"} { - if err := os.RemoveAll(filepath.Join(dataDir, name)); err != nil { - errs = append(errs, err) - } - } - } - return errors.Join(errs...) -} diff --git a/tsd/autostart_test.go b/tsd/forward_test.go similarity index 58% rename from tsd/autostart_test.go rename to tsd/forward_test.go index 8a65253..fa43398 100644 --- a/tsd/autostart_test.go +++ b/tsd/forward_test.go @@ -6,27 +6,6 @@ import ( "testing" ) -func TestRemoveAutoloadEntry(t *testing.T) { - tests := []struct { - name, in, want string - found bool - }{ - {"absent", "kstuff.elf\n!500\nftpsrv.elf\n", "kstuff.elf\n!500\nftpsrv.elf\n", false}, - {"last line", "kstuff.elf\ntailscale.elf\n", "kstuff.elf\n", true}, - {"no trailing newline", "kstuff.elf\ntailscale.elf", "kstuff.elf\n", true}, - {"middle, CRLF kept", "a.elf\r\ntailscale.elf\r\nb.elf\r\n", "a.elf\r\nb.elf\r\n", true}, - {"listed twice", "tailscale.elf\na.elf\n tailscale.elf \n", "a.elf\n", true}, - {"similar names stay", "# tailscale.elf\nmy-tailscale.elf\ntailscale.elf.bak\n", "# tailscale.elf\nmy-tailscale.elf\ntailscale.elf.bak\n", false}, - {"empty", "", "", false}, - } - for _, tt := range tests { - got, found := removeAutoloadEntry(tt.in, daemonFileName) - if got != tt.want || found != tt.found { - t.Errorf("%s: got %q, %v; want %q, %v", tt.name, got, found, tt.want, tt.found) - } - } -} - // pipe must pass a half-close through: the ELF loader protocol and FTP data // connections both rely on the reader seeing EOF while the other direction // stays open. diff --git a/tsd/status.html b/tsd/status.html index f8dbf09..f931cc8 100644 --- a/tsd/status.html +++ b/tsd/status.html @@ -161,7 +161,6 @@ async function refresh() { if (s.ips.length) row(dl, 'Tailnet address', s.ips.join(', '), true); if (s.tailnet) row(dl, 'Tailnet', s.tailnet); if (s.proxy) row(dl, 'HTTP proxy', s.proxy, true); - row(dl, 'Starts with the console', s.autostart.length ? 'Yes, via ' + s.autostart.join(', ') : 'No'); const health = $('health'); health.replaceChildren(...(s.health || []).map(h => { const li = document.createElement('li'); li.textContent = h; return li; })); @@ -240,7 +239,7 @@ $('btn-sunshine').onclick = async () => { $('sunshine-select').dataset.signature = ''; }; $('btn-uninstall').onclick = () => { - if (!confirm('Remove Tailscale from this PS5? It will stop now and no longer start with the console.')) return; + if (!confirm('Remove Tailscale from this PS5? It stops now and its payload is deleted.')) return; const purge = confirm('Also log out and delete the saved login?\n\nOK: delete everything.\nCancel: keep the login, so reinstalling reconnects without logging in again.'); act('/api/uninstall' + (purge ? '?purge=1' : '')); }; diff --git a/tsd/uninstall.go b/tsd/uninstall.go new file mode 100644 index 0000000..7783e1e --- /dev/null +++ b/tsd/uninstall.go @@ -0,0 +1,30 @@ +package main + +import ( + "errors" + "io/fs" + "os" + "path/filepath" +) + +// daemonFileName is the name the installer stores the daemon payload under, +// in the data directory. +const daemonFileName = "tailscale.elf" + +// uninstall deletes the installed daemon payload. With purge it also deletes +// the Tailscale state and config, which forgets the login. The running +// process is not affected. +func uninstall(purge bool) error { + var errs []error + if err := os.Remove(filepath.Join(dataDir, daemonFileName)); err != nil && !errors.Is(err, fs.ErrNotExist) { + errs = append(errs, err) + } + if purge { + for _, name := range []string{"state", "config.json", ".cache"} { + if err := os.RemoveAll(filepath.Join(dataDir, name)); err != nil { + errs = append(errs, err) + } + } + } + return errors.Join(errs...) +} diff --git a/tsd/web.go b/tsd/web.go index 40471da..7dd7107 100644 --- a/tsd/web.go +++ b/tsd/web.go @@ -43,8 +43,6 @@ type statusInfo struct { Health []string `json:"health,omitempty"` Peers []peerInfo `json:"peers"` Proxy string `json:"proxy,omitempty"` - // Autostart lists the autoloaders that start the daemon. - Autostart []string `json:"autostart"` // SunshineHost and Forwards describe the local forwards. SunshineHost string `json:"sunshineHost"` Forwards []string `json:"forwards"` @@ -141,7 +139,6 @@ func (d *daemon) handleStatus(w http.ResponseWriter, r *http.Request) { } info.SunshineHost = d.cfg.SunshineHost d.mu.Unlock() - info.Autostart = autostartNames() info.Forwards = []string{} for _, r := range d.fwd.rules() { info.Forwards = append(info.Forwards, r.String()) @@ -299,9 +296,9 @@ func (d *daemon) stop() { d.quitOnce.Do(func() { close(d.quit) }) } -// handleUninstall removes the autostart entry and the installed payload, then -// stops. With ?purge=1 it first logs the console out of the tailnet and -// deletes the saved state as well. +// handleUninstall removes the installed payload, then stops. With ?purge=1 it +// first logs the console out of the tailnet and deletes the saved state as +// well. func (d *daemon) handleUninstall(w http.ResponseWriter, r *http.Request) { purge := r.URL.Query().Get("purge") == "1" if purge && d.lc != nil { @@ -309,7 +306,7 @@ func (d *daemon) handleUninstall(w http.ResponseWriter, r *http.Request) { d.logf("uninstall: logout: %v", err) } } - if err := uninstall(purge, d.logf); err != nil { + if err := uninstall(purge); err != nil { d.logf("uninstall: %v", err) http.Error(w, err.Error(), http.StatusInternalServerError) return