From dd531105002ec3631675b6bf271e1b36a9b38859 Mon Sep 17 00:00:00 2001
From: PxlLoewe <72106766+PxlLoewe@users.noreply.github.com>
Date: Sat, 7 Jun 2025 00:34:30 -0700
Subject: [PATCH] added MRT sds image
---
apps/dispatch-server/routes/mission.ts | 3 -
.../socket-events/connect-pilot.ts | 25 +-
.../app/_components/map/AircraftMarker.tsx | 11 +-
.../map/_components/AircraftMarkerTabs.tsx | 36 +-
.../map/_components/MarkerCluster.tsx | 124 +-
.../app/_components/navbar/AdminPanel.tsx | 6 +-
.../app/_helpers/findLeitstelleinPoint.ts | 18 +
.../app/_helpers/simulatorConnected.ts | 9 +-
apps/dispatch/app/_querys/aircrafts.ts | 3 +-
apps/dispatch/app/_store/pilot/MrtStore.ts | 4 +-
.../app/api/livekit-participant/route.ts | 3 -
.../app/pilot/_components/mrt/MRT_MESSAGE.png | Bin 0 -> 329962 bytes
.../app/pilot/_components/mrt/Mrt.tsx | 107 +-
.../app/pilot/_components/mrt/useButtons.ts | 5 +-
apps/dispatch/package.json | 18 +-
pnpm-lock.yaml | 1617 +++++++++++++++++
16 files changed, 1853 insertions(+), 136 deletions(-)
create mode 100644 apps/dispatch/app/_helpers/findLeitstelleinPoint.ts
create mode 100644 apps/dispatch/app/pilot/_components/mrt/MRT_MESSAGE.png
diff --git a/apps/dispatch-server/routes/mission.ts b/apps/dispatch-server/routes/mission.ts
index 458eed75..392ba360 100644
--- a/apps/dispatch-server/routes/mission.ts
+++ b/apps/dispatch-server/routes/mission.ts
@@ -327,9 +327,6 @@ router.post("/:id/validate-hpg", async (req, res) => {
res.json({
message: "HPG validierung gestartet",
});
- console.log(
- `HPG Validation for ${user?.publicId} (${mission?.hpgSelectedMissionString}) started`,
- );
io.to(`desktop:${activeAircraftinMission?.userId}`).emit("hpg-validation", {
missionId: parseInt(id),
userId: req.user?.id,
diff --git a/apps/dispatch-server/socket-events/connect-pilot.ts b/apps/dispatch-server/socket-events/connect-pilot.ts
index ca327b1e..d37618d4 100644
--- a/apps/dispatch-server/socket-events/connect-pilot.ts
+++ b/apps/dispatch-server/socket-events/connect-pilot.ts
@@ -55,14 +55,35 @@ export const handleConnectPilot =
}
}
+ // Set "now" to 2 hours in the future
+ const nowPlus2h = new Date();
+ nowPlus2h.setHours(nowPlus2h.getHours() + 2);
+
+ // Generate a random position in Germany (approximate bounding box)
+ function getRandomGermanPosition() {
+ const minLat = 47.2701;
+ const maxLat = 55.0581;
+ const minLng = 5.8663;
+ const maxLng = 15.0419;
+ const lat = Math.random() * (maxLat - minLat) + minLat;
+ const lng = Math.random() * (maxLng - minLng) + minLng;
+ return { lat, lng };
+ }
+
+ const randomPos =
+ process.env.environment === "development" ? getRandomGermanPosition() : undefined;
+
const connectedAircraftEntry = await prisma.connectedAircraft.create({
data: {
publicUser: getPublicUser(user) as any,
esimatedLogoutTime: parsedLogoffDate?.toISOString() || null,
- lastHeartbeat: new Date().toISOString(),
userId: userId,
- loginTime: new Date().toISOString(),
+ loginTime: nowPlus2h.toISOString(),
stationId: parseInt(stationId),
+ lastHeartbeat:
+ process.env.environment === "development" ? nowPlus2h.toISOString() : undefined,
+ posLat: randomPos?.lat,
+ posLng: randomPos?.lng,
},
});
diff --git a/apps/dispatch/app/_components/map/AircraftMarker.tsx b/apps/dispatch/app/_components/map/AircraftMarker.tsx
index f2a920a1..996337bf 100644
--- a/apps/dispatch/app/_components/map/AircraftMarker.tsx
+++ b/apps/dispatch/app/_components/map/AircraftMarker.tsx
@@ -15,7 +15,6 @@ import { ConnectedAircraft, Station } from "@repo/db";
import { useQuery } from "@tanstack/react-query";
import { getConnectedAircraftPositionLogAPI, getConnectedAircraftsAPI } from "_querys/aircrafts";
import { getMissionsAPI } from "_querys/missions";
-import { checkSimulatorConnected } from "_helpers/simulatorConnected";
import { FMS_STATUS_COLORS, FMS_STATUS_TEXT_COLORS } from "_helpers/fmsStatusColors";
const AircraftPopupContent = ({
@@ -384,16 +383,14 @@ export const AircraftLayer = () => {
const { data: aircrafts } = useQuery({
queryKey: ["aircrafts"],
queryFn: getConnectedAircraftsAPI,
- refetchInterval: 10000,
+ refetchInterval: 10_000,
});
return (
<>
- {aircrafts
- ?.filter((a) => checkSimulatorConnected(a.lastHeartbeat))
- ?.map((aircraft) => {
- return
dsOe_iA9(r+~G=!96r(O`PBQ_MmoW!jrte3zRb(t!G;n06!Liw7(F z8z;4t-(L>Ht>YQm_3$KlTVaf1l@KDa<=mKawpeG0^y7(Cq76C=c;;rP2w6fQRO zAj)TywA)?;k_o+P1(_+QAech-0JD0IHY%$JpgEY0n9EA~Pmc$13HoMluODJM+0^ ztK%|+YoNRumVsFbcYMgetgC(T$|2u`2pWd@T|xnx>5zcm!D0B!Lg=J>uM#T%mES1l zH_m~{9>w5lJH7GVW&5Ge2zdQQ;>=$(M-&MMwLje7Y|z{XKIHYLi=F=Fqp-FZ4yXW& z4_j@#>aqm#1X+J*XO3o#sPhcIIHJhL^S!N(o}C_Vu8uP=H_~ODYoo`dpwBE{D9#Ob z&xjjS)>#&zuv``8h)?FxL8@Jwhwd5g$NIj!V5tSrlsWdyJ~uXY736u4DP2z&4`^1I zjdk1vKfMgd=+TX2 l)B>*5}^6$kxQDvj(fcarR+%)A%Bbwdti?nE}g2p6X6P#ZWl{{!r&iy zFjG}n0` |ii$4<|>+J %)8?;>yEw%UZ^Ki9bsh6)^on6qYDJX7~6PBH0PGoNEt3+^woEc z yLuJrd+ePj!2pQoKM{l DTvb?1DDtE91^^u9_KDa9iX41Gn34P;UIG9^|}j z?tsf0@E`6cJHn)9p%DcG9wHdsl5-8DiOZLu^?s#rEXqLC5{c+owe1qc#JvVTvJoQ} zc+NLPP9f4rucG?Q;Q3ei92NR`#B{wCufuK@uiQ`me8Jmu>5HS88A(_+$t^3l!TPd$ zzBi-OY6uEk_6S0@>T&)O>bO!Rrr Q7Q4*)gZvD_kxpi3-&pM~&UWU)T9I zBHG-g9o=r%E2jW?<+CpwYaNH1xiir4aGySGmXd7VvemO(oQ &v%KhcJ(^woMGohDyr(GC9UEK;1lblfu+L&LfN6_ zkRTP?G-IdiqKhoKO#as%^oT AVezK_|U#(8sGF!zXT$<$fG-ToztA(xC<-1^0_$X9)0^VP$Nrq-0diGn(04q-c1x zZW)BByE%qo%9>OTo* nD;JFuH=?AvAfnP2`yOZS1w>_rcoSLkB ztIFt*A=sqr-4TSl7&$pP2^(vD+FV9PP6IKSLi}N^wR5A}G0Le+3Cma6%PF9xc9yN- z?3w7jUmdX=fl=%!9DfRALIW~puGkie ylc~-8?glZxX}7^cT4D{M z?CoWHeor6Tf`!%w%c~ eO8!_A334DfX+uH%q_9oNiR(y~__@_<%j6#nq3+1MTMxoj`w z4dgt|K@t}oH 9$Qy1P*}^hAaK8b2DK|5%=kBPb~%s7_xS+VZvhgz3Ka>4+=w^v znx?J1nBk&6pHGfVAoyLZ_8NAR)2g#Bzu0>=*#I?9O-&W3Lc?A8`jyxYGJoIN95^ER z5OmwyaRVB6qZ2_hmCbouktLfnuvvEG>pZ)ACZol&IX0cH+J_~!3~i)ye;jQ{c6=Kw z*y#qcqsP#D<#t`gZbTrtfiT@vbZWo1_0W#9?_4`|!I=U2s^Le& mYkvOGOktDxOB~a#z#FYW za9ps-dW{)4+P#qU(CvU!*!M;2uqBV=zX5q+Fv_J`k)@*!clQyKTbBzKtdwLXTafhE zF(LED{mr4?0j7=m3$Wu=S|ofl|8-9O5yPrVeDBeav%i+a9eS>pD79O^R`!yOrB;}v zilbfu_Dlp7VZ%G?&B;Dml+_1H=e9St!&wQ)tiU)?_!#+zw|_#tugBv2v`tR&jcto; z*PU-WAGA14+E_Zy7dkc?MvLS-OIkepZQ}c!WWPk t5IEk# zt&IDIOhNWU3!euAtUY@?<$o*d@9|G+<<%EyR$C67=?>233KuLeMH7b-EF9=EQP{Ep zJrueKXtV5`Lzc&9HMwM|*n0ZGNp(tj`m`@&IIk7|S+N#(a<6QSi~EE1?VM!ARb>oX zt70N}{>`%np>@}S=f)iF_tJiqy=t$sbH2868pkIwtBd*%Q@&4t;b^g*mBgIm5NqTu zNW}&9-{l5wN#5wERP<7Z_B2D*?)jqAFzGq)zl#az=&d{)fR?7!P>5=cO$>CNk`K;I z3v>gcoT{daHUckc?j@lr4}b9Pe|R!9G=BM( >R^)Z~*70SYwIFv<@r@M8&evdjmGi~kUG!#* sP0bu?1&vk8l2}eHf|ct6`lt&EUN8gWPHsM4TI&{dccESvz@T$@WXJ z(WuYFW;!5{PQA|aI;+)t6~qd*ZMlJcz>2 DlQzeaO|-e9 `<2jPLaWRJKgJdJVzdp>96CBwO#f{D*fx} z*6^UM#Hm76k~w@Y)*Rtgl#Xj80j*%GB_ZnJRRE-jm=qo2v@ewo`f~5SK)4aT;b@9* z>V7HCWVSrkKk_`fOD !b3bNYhvpd2nddR9aHa`y1Jp!NlD zP=TB&F|4|4Yw6}!TA!)bM{G3&3#P;ZMbrD5=$fA_8MQ!SRl*1P^@SJMRDVTr@5om? zQLCv2VhoKr9|6}>jFJ{t-eV{M7JUvN&{Qo~V(tDSbmIGWMq>NMB>tU=RMj%TPkQ zj`Jbsftikb0p?9pO#*yegYb$1k&phsLk+2x%#tXoG5VC4yWR5Y{_o1E>x(V!_Um%C zPeq?|nzpelU-k;EpU;@3#!~jJT1wnAOK?h_@(j9mX3|QqjIJ>O>XgeqACXhSw*F zA>Z>o_!%n_l~2VI3~V$?zgXP+HbMnI{)S71bwcQg9?V02L4Qg(d$_Q10j;#^Up7L6 ze6oVkwIi#Am+z{}(^0ekS{fPs(sgKvf9K1i;&FwMs6_xv#%x45uaR|YIOjA3pMLo` zV)kXsx(l74?8JGa>fGXNa%wwL{OY9MY^;O8EXaK7Y3Aabs~&~&Y6BEFo?ug6diXQ$ zdcM3`M3cDj!iKN5HP1pw6!W#0 FA_{GtM)c)lf^^=`}uF7z$4`TWBy_Xb3$`#QWXjK^`l%XbwV zr%lsB=-U^)m%!R?=0` ~D z1~)gy+>a32_#y*eIu;ARapfXAC&x3$9&V>BP&!k*F*{!O$fm9F?gi_H7hc|WM`)?B zt1b$Amg?@h9n5 i@B zM~E5HvgVYwY8-P%#}s4~53a7&G?PeFJcT$jOFxB9xJpt(nf}&vaJSbp%g0n3h8{kS zU%Nsf|5Rx^KyiMmgEV{8f3+JkhW)dC*%h3RFJlY_g>K3s91wS971h;))pzsNzXmG5 zia{23JD 2l&X%E|Ps@hHl z*iH@({fts+rqNTjCe$T4B+p3$l(JWRQf|U~$}-9*I}FQz$y;jCYvW3yw`G5m`Qa%n zn-r3;zAh8@vg*JK6Wba+WyUGjNNpg64_aV#W;rr<_ac9mgHpRW=CxPrR}@=N*_29a z!9oX)Z~tFIt*YNFVZI`Xrw@+LwxBR*Hk*qYmd<2)N%Y#7J|E532xd5gqz#}klPJp7 zVb$SyDa^;mabEgnDn4tMVQ90+xHUj7U`z5L_NJ|D?9~Ecy=tz~;CZS4%-%&x_nm`a z=D3Rms2)BUl*|RYO%yx(BlEs|hQHIw-Ce5(@#u5|)4&7IA?dK;u=A7DzzeRyBz1|r ziLyynRB2xVlj`#_tZn_n`D2&2*|=eM2$lvo!mFXAjHK5CZ}8~(=00xNNMQX%Zwc22 zW*l zPGp=2z%mNgA4L%C{UE;TOZ#+$ig>$7WOcqdqC_a|ZL5_-{+H?Uq@q zOl~+02s7d836Zf_CCYzKXS+`oXd} CzmbhWyDrE)>E@*zhbi#-k(X^rfK+BAf+=yQzkjzjFw{>W zXKt28m3f6}A;9gpiZ-EJUNFX3-Eki(b~-mw`h>El6xv0LU)D*|Lpa%s?IAcdZ}HG? znmTl O+$1zxOYNj z2;_w0@+R)4o$pd^Dyrx}W&oKN`BzBA@9O=yy~ztaO?jXfswW*zCU4hd88F?3xlGy_ zNV!b3Iq;~khje8CM1n#>>*GC9j{#jh@QBz8REu`CPJ{whoCi8rJ7=BH9GVs+j1#!R zz6XR2Nf|udty=m%s!T%O_h{o?TBk)aiDjK0wzU=Q*L4?SEph>_0DlI0iMSL0e)DU! zzs7Y*&3SgJ1zScHFYa0vM-#R)-(}%TU%XTn#4scEEIkNv)qKDmVPVHCZmRy0dT_&9 zn zcG39S1O#8+k;$h0AdcH6BdRnuGMhkhnffW1`mH=0Lgb`pkFDly4d;H9JS~1u z88zT3G?^(K9kNGKow@!N6;?5uLgLQVPHm!h5PwzeYQ^j zn4+PEL3 71XB z8wpJPK!Waz7TJZ|l S5*b^@Rw)0a7f8hm3uK_!^mgG9G~M Szi|aC-cPxzw6Q##G=RY!5l5OHX_?;|^r{r4G18NdhROGnUh5-z z?lC9MS8ezAR-^!KH(lv-2I*${@r8Tmg)MU;kL^K{lJVFvH+wfC)$}^2?P@dgWvfp) zRN)m4VkYV)u#30MDeXh_D$%-^mq!?poQ`aoqod=%#$c+zgP+e;+Rbk+uo$Nal)<^< zuBoc8*G7gUm1M& h8`O z)b&eTNRs(cZp#{O**r89N|NWdc0RM=iTw1gDl&-*JF#Jen<60B97P=2BEC=NPz4mL zuBsaN%BJU$&CbbQrV-PIh{56V>Ud25?<;S#w;xBIS39})Z_=yO@jPj1rZ=+D3mHr= zahCxfBQ^P&vhggf 7j;E zg;R+B;)f$-_7OZ;$ xbMcr#tSMtQ<~$}p z_i@yaiVZUR_h{XES?B5P$@jsNYlrGVEp?cBs&M|t9Pd@kmKy|kJ%lu8ZvvIsogs|E zob`sBTr0X JzDrC6Mm>(3t3k&J{$h@2N=P7$i#_XX@8z|*+w}2!_M|ZPAN(+7 z${xn!7x+dfpBE&{)G(0bON|xbwCnW3P&2<3xuMNoen$ydZ*qy0XQHK4?OO5~;iktL zIpSb%rh1RpNVJK83K>v7rJE`)do*JT*6GpnF#d4)u$z<{pPoJ!@YE}xEZ%|%dB2wv zkSSczx9SK;8Cy75?-Xe{pD-jhdWqT(8En+h4yNj(ji0r z&o+^N0<*tRqwsZbJdAc<7L8TSHslQm3(YZn@wrEn0dw^5(8#+=YQPF~Pj(_hMSaF3 zQ*(1t4Zci#1z)}q7YOhr2moJawnUXmo?EVVc)l>w6^c}^s;KDS>@CU?4p=13+`oR| z+!lA4*u0y{oOLOAT_BkO`am=n6PpNU!W|cD<0PkH^?y(Ad*;Usw)|~3($BcKyq6Sm z6m?GKd1B6#Ex&B3Qlvy~7|e?Yq%rj&MDcdR@O^#l`>Rms!Fm{Bj`xoh|Ek$_9ci t)!2KTVtvaz!9m1osiejfU{m6DET7bak&>T^D& zx3LOvR_=?aaPiYBUIP4{a qN{8;yY3#>tdIz<1?yi6J4+ z{1+ePe<)vou9Q4U`{rXe6{7_so18@a;tYxutj(=GAU1E zXnP%Q`;$7|ubQ`gI=6gS0$yGz?9wor<#8L;64|=XI+5ICJ4h!qX=bnmBZK;y%T|pD z@}qFwD|0ffH$r|Qj3O|LXaA!g{`W!5*$CTh0RA`kJm{a{gNfqtZ}LVLHFU|FMX}kT z+LgV$;wD-0z=$` L)yA3$d=>L`7|pO^ z&CjGzvqRp%YH Ski1;YS^GL@8Ti`q&~%h3tw9%0a&yA5T!yrW6SA zvkpD{%x%Q!C(inXiDtSonuUC--bJ{~(_u^vDY<8W0piRnZ)GV76DMeOHG1)P2KN|( z>8}VO1e)eH@0u%BOLPh5{dI|&WngTRZQNCuaNRTf!=a%eMMlD*6_T9XOg%mB#V&lM zpJ!*uZRgVqj1&}eY$|v?qP?h9h)0o6>CCODqaa0HZOaPUp@65S PgnRVt$qfJFcd|=815Zx7<*?@ zgw$tH{P?kZc@w`{IH5tedf>LR0$k0cg*eo0U72?p+^g }Je>R?C)BHF}`F9})QEJevkvR}0$ zR#ps|%|)Lzr7C$eyLDT3BMWsk0AF3DkGkERv97)m8eRBPl{T7QZxwKN|L{Zn@_R?I z4rGRTr?7wVOLTdt%aQnR#JL>>TL@8y^L~DdvocQYO@%cm=ihe%dpsSG_o@e5l{@T@ zxTIw97$Z|GN_eT+?JB7!wS2^kV6GLCyAt;esXmPZrGx2y)%A9U@xG}^5@^YXdGEzf zsKdaTx)`T>{pt16;(nHWSa^wIZO-G7@5v|h)t=N$ti*xnXekEy!-z3gG5P}K&UZLB zQY(FS5CbcjU&G;HD(Hs}n0@0uk*r@1> r)VPQ0Jjeao^qo~}v$L#Oc9>nc=xmI+sK8r)S&K)sc7e D=2G&r2uyeO%+vRFh3#y;BwOo}cjCJ{H802=>$6t_N zLS?U%=a4mws3hRzilXn$hc7NBm+MsxlqMBhG36YOF{t?+G{Bl4*&SMluI@(nF`?W3 zET+%(4&Fe=CFz5bVN9$ekl)(JN6`i@j1M%b>az0dmd~5WPn)1RP%ZBLOq|DlCDA;X z7Ym?VJd~{;{<59u*C35PAuBCZL(>S)|4dVC?Lr#GjSzT;4sz$=Co=&t-Dv-s?3@Ri zpUeeSep9GIV7uCo+?dY^k+?`|EG7cz{@>H_sLVvILm0dC3al+9IDJAtmd$IGqJDfT zi7}^)36*%ABmFzzpmF9p*pZT?>qCYRaB z_-?bmdR4X^W z_v~tDT(fx8SmR727P6s-{vTCe;n!6A|81ZcGy>8RQqm0*P#Ppe1f;uRG$X~JJETiO zIwS`hA>ARPw}EtSfOPsC?)ZK0=O5T>=bY>M 8}N0- z>fyYqrD oVvNOIt?h|^densjqit;p z2fgetB1G ;DOd|O~tV^cN_wnj#FyDj$y2CXR zbE&l1k1l?6D5@VF<}Q>#9qr&pV~Mp6MVD3}Zv7PaL32od@&j?Y_AZ1MzvJ6>#2av8 z?QWCXU=!*%OZGP7@tnXk@$FGv6J(1qJ@7M2X58=V8W!(Hs2*u^2kN?cEGY;m|03|c zdln$N5dLu(tY&?Vsy)u qkN?v0jgqBPs)MjwYm6Pge z7-;6g+Ix0U zkXM zn?<@QygDZ=-OTj}j%gHax_OD8O;%_uU-iUN*AMJM*ZX9FuO3=K@{y#mrJlR5uL5yd z@a?Aq2s7g0Sqr1GceS^aQ>|3={=j|m<2K>?d{}s090A44p|bJ(hp!;U+=n)M)QrA= zRQi*6X$5dR2oeVMDv*H()qNq3Ah MNNJ=SZ{@dZw0oviL>U+24h! z3aQqP)W_S3T8jRMw*s8j X8Ee2cHa (UtJxVtNPIkvDF#>`2l}B1x%dp6l(6VJrA_ zxX$6Rl%T}+{fK8(gCira2Dq3kj;Gfax~at*BV1VI`Lc_r3I5LM%SX4S?s}GrGX%!w z4Tu^#@OTJByuB|62JlU4Hj4Op*10NqpHChbKH6hSOxt?h`+IUB*l7Npjx{vZaBU4> zID4v@b2|HlST#0Q< NGrwwuEeb&ud^QA0hTp@Xzb=4i$=xek)WpO%aJ7>UZLLARk#ILWf%<**- zS=?XuC>9iQ*{GTVtY(Z%7&jX9JQMJ0Xr*s&eiz>M7l#e-Eft%p`O8M7OwZav@+WM? z3~LMe2trvl3Jh%>glm7WJ t@NPTF^HhR%7{ vx?n2)6Rwsjo zX^H=@sOrsB(@6RDp;@4v;1*)*wci^#Y^S{!Moqu&hw}`Siq=*bIc8IvzbLycS|QHo ztA}lL&aTxjF6k8JRK{n7Q rIhAqo(d)E(ywR6i-6uPP6OXVx?SeZxHHYY3zG6CDw4Mb{tExR*B@ z$nZZ>yKpDkb F*8FM-iW>Floe5Kf6UpA3xXUL&xvypB6)Ok-8~w#CeNIJ}FR+!*Rw<;UBcj^=p@| z&$EwP2yCy3* eKA`rdL|@9ghf#!q$J=>cj#& z0--_aL0T Q=fXO#^LN@&ZC&}Y6WuE4gB=FcIq)H=qmcxe%SP^4qPCwf`-r$0R z3qhm$=C>d-T&yUKf2KEowO3LHT@tSfaIJC$!(V$Qyx*gaV~LWNLHBn5{_R?^pKA4h zfue(v(PB6ZEsp*KnyKwUN8{Z;G`ffSs<)>xc*@)5V&T-rf5*+uZPRPVGXd4d739r5 zDZ%-Mmi23N$zXV*PVu;4b)I(Rt3o6@t)vCd9evWkpG+U`Xj;|qkVf@1A34oR6Hw$= zhF8qDYP(U}>5FJLWv>RYCR_;Pwl19Gi 8UN?#Tn8Q+=t#7^ChGP zzX!F4)<-~J{O6BLA5nBN%cROAxyO5I9gmxR(fv{*|G{F`uyA5h7MI!h1+vs8s)ad} zAG_ht+ukm!U#Z@>hxQu1#k3J2DeU=*YW%dn0Gs#fR)XtX_ti!$EV6`*?EGaZdRsq> zVX}{?g`5BFI$emG3K~H>gK}sj6Zp1A+q*S~LcKktt%sDQ+0avrYIkk%hd?$?o;tl; zmyh`zj>5>3JCImnF<+(aXPwG-?hF;C`H~LHoH#V1Ouzh3MF)V{1oUcBFh9#Es(LDs zgA7Pnm%&shHWB@t^-r`b+aZhUEJ+vt2t{Cv!pI$8s0&@XIFa(Tx8}`VY(dI5Zlu|f z;3aQsC=1e{_8+=|DaYRm1f3Ws5qyFMuegRd=)XLacGRJk-s#xf3?C<=k`!6XYJN~D zLE~G;tUSFTKbqXEdBj$PKAF2A4Jo09;Zv&(RNfofaUrC>D U$6b%0P&Z4ler2Fx*#tz{EB#
qAL!!6l88}TFLk0 h_kHd0`1g;LS^ZAn5N zGWg6lTH_b=v-bT7qmYKmQ1d |sV}NA@4%-lEQ{UffcJ6 z!|pHsm4X %Z8z^T0UQ{On4o8l;kyVCT|rf*;6Gx>GJC4Dth1y?T{flGTOIlfD(WE5+!W& zM;G!H!tCz!e;-BVRwX5nk7An@4x7rjO)6+u)Q&Y7cqje9p@BrXnak{9h^rC})gGin znNlhGEmy5^1}1ENPBn@#Da@TJ4549KTRs2)Obe8r%-(jPb0OJzu}!eaDm@TM;wYf1 znh<$TgFbmbgF3B3Sgar14HNv>f%k*F DI})F6Xrl)8`JA+Lm4Dibw8sk>O= z7tcAgQ2e}0!u|DS73H8k7-+oPsq!cC6Rs@ynY5TnQ$hNFf>UgV0$8PPs?D0^s>EC5 zFuR+K=du2yp4m-UEt0E{FdQLYIKC}jLfc?7H948DogP0kBNlbi05C}0XVr`Y8+DGf zMNp008&T~B_; M%$`w#p2CX85y0G=7k$yKhOa**Xim}LwC<~ z{Tc1I>ng#$Q43C}28R9pePAfTcln8$n!51>iLuIA#2P BQ&X_lFBNbPCQl3-%>X^+<*94E#Y@0IM%)y*}EKFv+?y;K5P^XF?{##bsHT3 zojM=K1(*8S2eCY*%534YRXeQ!!6NYWIdO5oWnY!Q 9oXJ}AJCqo(3$=>djmF!*5&xMbjgk8@GaCsW2_ zZRpY_*zqJUW3FVF$-287&rhlBLOgJZyVH`M;+BivJ`B-|9ABDq_vmUg!r=)m^xsK$ zHhk{#3X$cSb+;KugX%EQ!y~@%jSHe%KG<7s1W#CTFlOFM@BNt#D?2Lb$>l?uc|vN_ z^=0hV%?FQ@`i4jq|Bh9Pan)%`{!^0X-?sz|B7!PezllD-^9TS#8aw M7kZu#{mvyLAm2Z@1*L8O(H$of}34Jnfe3Yj$o9ps4mtZx023Ay(f4>SE zg}1{o%huY#QMr;FP8CEQ_0B-RZaC m7WfAusL7!`iuf)Rt#Y4u&S`gjDNoKv8>Vb<`!K(y>Rg#$USV%*8i;>`fG;%cK2H ztZEhn5ms3*_&}giD(2Zwp=I(0iR{gjVu}p6EEKa9o)V=) +>_rJZT&kt zxnJ?uJfJ3($7Jd~AywydNms|e7Aw@XYHSjRnqIT4hfO42*_vD-j6N#yxI)l(C$sx# zhv&bqHH8%La{kkTM&{ZiE!5#K1fo)>ujX+y5oum)L&LnR5OsJ&ZFF`^;T_hRdwjqJ zzyXzT<;E^YQR|?6$;gU$j9^7U%v+j^`!Q}+NU4}iLTVP}3}*r~zl)ER7Wu06w+%tn zT4-Zcv5a(4`9Y&*GqLg#wmwD^C+zH*lF`%{wK}L}Xj1R7e4 )+5;e4Twbi_vJ{3jLfHa{+eC!53vtw5(I&(J%TB9d@JSZdWy_`(n&J1 z^r6N^@0xx!bX&w8s2JK!u&YKkcrO+BN+gP<4(t~x43UyN{c3wAlEJy@-V5aV-c38L zno0&nbyZdCg2npH(lGK?6|Hkl&&blGR8QZT=`g1bMqS=)m+cnK<)u7FHLYX3F@aHG zcirdaS8p#M+2)i*?2q*-)9Ir;iYJ2~V2h`JE4sxYM+zMx93P_Po;JU`_jK?shcB9G zEHN z)_u{QY1SdEVbJyv38UtOZU^&WVR_cdt>^CX(ZQt<7-lRZPa_poKN#HD{Ll5Upvn1R ziU%*4=CaPV`~<|;8RLGOZ4HeEcVK#y-KKqaYcnW7Cs( EPfeVzW+*9U`@jc`- zsCMS=R+n`otiGOIK)`MDNWNb&Ev(;`WJPS=$fCl^v1_L3Aota4h3_O& P6tj45>dGDU_Qd6<-hJ@(o3y5o5cML2IUYVS(HSKkoC&@X zX|c|)BY3vy+#_SIk8*!Ik8!U#S+DTCds6v2D{-+^ed x9ay94XH1o<&@^Mo<5!xjLo1zsZ;Nm`ftjooTi;{-dSlDop z#=V~u(q7PX+pw2+>uglQN#mC6=Fc9k6{frU?tkqz;&~vmFDoHi8Wb8B32aGe!RF>N zfNW9?bNF~jTE6a3`ydSsxmZ+QLvlpstn1z Ky@-zJ2zn?y@tkrnVeUaJv$;ScX2-dMa%J;BO;q4EPnY0b-*;-B6>F9R zR!) o|mubGGwG`3=te4@3NyZ+=6`ZLTE4H2C)pc zYFe*Jow`fAugLskW~w<&?WV4e{~0W}Ht?yA(77a;;wO}+y5Br#1F*GJW_x00vQ}$W zHH=?qQ?s+D%;H9g_9$`eQ@r5-)Z}T3S`oG+OH%n&q|aTG^;}1xC6@O-;Mpi}K6cN{ zHHc#88Hdr u0wLw%U5XTnRh+ zXulAoI0+d{3q!51@UGRzJnJhv>}!ZUD;jT gS^w=>rQh@rhU{khUA zh=DF}Xh&Vi_@)q I3W1hUYslL8oQ6$hJa!aB?AO%*NTThXb&_F>N zPZm75`qhapm@??lBO~=AgSgC-k?IPrsCH1vl4N-`3G1vp4WzChr>>IGlPJt;2d@76 z`1i_}A&Oa*_@Cm|DT6ulq+&}-Z0$WW?n@Wv#}V}jly#-PWNP$x8 aIC#~ixu}I1Dot_6C}S?T!CT&v9$GNk z9lu~W2y?Q&qWq0x!mi620%=;J)LXQ&*W5gW#T@s(j0~gb(sESs;kI6HB!Y95A_cq6 zdOX-zeHi9)xvCYCywPqd6hVv8czK0rZGMDHt3KR#AkfneKLoM9;^*rl4Y5Uc+{8e9 zeKsn@U?F1nw=d0HzAU89;D&?&vQ}T!u*{o;`RbbNKHU+Y>W?BVqCLeM|1$y-Lw!lL z8>+)+Jsup4B#+z |sVmet*15CtuKpRp^6EstXX`(?WsQrjRR(1sHq z-7bl}(PTVN($kT6b&bCa-Mw}`p+t)?o}X73^chvpANm#8s=H-&x=Xwx)nGB3kI*2$ z<0O@5`q*2XcOOI=;@GjSI!|8TjP*74Ipu8$1-kMfFi$VZ4)jX1_dii!+2)OvUXWsx zbQC$%wBrSZECHktq2U5w4E|VF)Hs8wCl7Fd`iTdM!TIb`{-A@WGfx(iHt#`T=HnRK zRNmFJ4v>0muMr`$-(&NxWi%fh60-ZIq%t$bip8|Dj>Y>*INWjeeBlJ%7afFEiqIgi za9&F~RWog{NdLqaxc@f%8HdtX%Vwsnp2K`44o>a)@nx+~5EsJFeC#;4^Kd$)0fVIJ z#juCH$+-cbPp{9xjAJ)hD}9qz>h+n(`;dZ%>uJoVTzLL6G &$`;LQ&{^g!Q=4M`Xcm z|2O-ssxgreeaN;{z X^_Ta|6_jW3Y0;()zM ~%GIymz{>fIJ-w$6F^bSh>iOMa{nR{B9>!RN$xdL9p{&IYg*Cf3~8e z1CEYsip_^LWv0wkf?y*6Jp!KkBwOB>+3Q%-%7I(5_T*bS4_8_0(HLk wUjG>Z sL zXsi}aa@I8d0*y^Q^qfM$$Uvb f+ 4EQ^KaR;cbGt3AH zrzA6z_T;v)MrvsUsNN-cUeDs{r1Pi}4CzGERH{VMvC68?PKxHhPndW}CnFdkKbuuG z{x>989=0U8>|G*cjJk@sbO2d# AQd!)X>JO^pz2S-po zB}o?w7#B^zDz>|XTuz6Cp>iTXgNy&Ug%II{{JSZNHjGemk-@;X&$Gqc |MZxfv#)`^x09l=tykpQ>q2_oIk@vowSdIg}81V`i0)1DIV6Bgl zi!+D`9CZY!QL=9x)D}|Iz9qPKLYG&GVUXD&y9eY`Zh!n934D*(XK!1Zd})qMavW%> z$RX=5Q=~jg|FBMvTM2E;7vHWA0-F~~#bRpbt%K&x&KDX?w-vpRii!=0n~xg)7Z??L zMRDs=#fJFG;vVY?-j&@6p@08wQmZp73E=1%)A{Yb^p9f0dtO=T)Nfze%rYW%+(hNQ zKyXAltiNt=pCXX)g|s4hl-O~rNUu~h?mT61aJUzUurzJ~BO^oSanIt)#E6>^*#6D_ zaPbrcDqjXqRznXHdn^ 5;0(4@Hrie>$$B^?=9up6oUM!m}3Yv?)7(PXRf~ zJ*K;2^9;tb@IBrtx2bV}r@2!jZC!g>EZvW}YMJEOT$9D>Qyc$>M3eSR7@fc;_5g#` z3{jeznjCD5g_P~90J( NiXU|p4UppflY7nQ7my5759V~gUK{O3ILSc&%e7}Sm z)Q7d-nS&EQLA`(D5s|FUilOG7xZgnVrDacbn_%w#!5SKd`1*FeUL@it&H0MSoGl1M zoUb}wZ^WBUhyGXf42aAYUtamdA7ca%*}HggRMMVB3OVb)R#yvJg1x*q#^7oenQ{6e zI{6b018@D6>E17!>Kf>M`Aa~->HR)@vnl9@I2lt7Xn2fmeR7Ut6~#?u>Kly>2ju&j zNpzl3>AP+ou U2GTa=i~g}C$(^zw(aJ< zM~fz^U!bYCc|fo3s*7zo2eUdrJ8d%oiFU^1`DV__<}27=P`c=j!%H`* D{d+bEhp6PK_CQRS%4H w?f}1Ch3NU~nntI>fEEDLaD9jzgbndPy|h zzLOBP niNxbyeK*^w1V#8YtBqP9L$8~QJl(ujQ2;r0<0Fur%va^5Za*n=t=L)-1 z^1b9Hi3^WNBOZAHC+^nG*`hF%SCnGB^0$(h;$m2aq`#V+Q&Yh2WhFqU@k>SJVVw{_ zMjf|2-?XpnOY@Cds85z8Ue8(m?HQw1n0UX@*%`zKr9Sn@yg#A+96{F=y6M-96ig_3 zyUyKT#pkfpR`4aCmhw&@csWpE(^TF4fkX}{RJh8v0QqYDyGMQkM_5+HV$X^-8}``` z(c%+$`r@wVdw1dCUb_OOf`J?F|F1wMs?L6a3f32m91HsDf4Hd?)sm8y7KhK8JJ;YT zGneJ9a4j5sO^yS20sV{ZxffBbdm<|}BYxVzB8Edi08u6c#pf)+$;2g!#J@L7lmti~ z?MNK=0|o*Q767T&Gm+pPduDeNT2FC9u1612p?alOdU;yjD8`>()$SXTrp^;Jz;$2t zDjRGeKs}(^S7{Gw$3>$*+4c#Cy5hq8F$S>&kM^Ixe>yvNL=}FvYSZJ?m$5l93NuR5 zlo(ua+)-x~RBzWdoJgpZ0^dn?#L1bKy8o#EpX33*v%~)s0L#d^v`TEer}23t`-b!# z!(>}zxOJ!53!5O5hWZw65wJlrPr$~r-`0P&vwxZeIulFnb(;S!&OY}(#r?BOuLw<0 zw(Ot9ObsZCk?WcTu` yXmCEhbBV_%AW~rrS(;ke zGCnU8OiNcgIa0GP>oIMwvGhC+7fGwI YST4L#H3_*H<-&ayN^uIXBM zWLT{3iDolN83e$^n@x_MX_ULSsH7;=H(1Pba^yq4)ClCj*DatchFn%@f#D6!^peR! z-%0D?GQ9GK?^NI1d-CWEije$I{ivVw?h8o((>^65bQPk5+ zqkX?b*%!PTpsgRY^yjIt!@FxysQlE^taR$@lloj<#!l%+^4ChK7e`Ki>bo7*U6`=< zKbXS1S{aHc=35hf@GHoMjjSDcqYm{XM%E<#S2LbF|GE7pJI!+uq6G-(_Uj&Jk!Sgx zI~vaQs{A?rvoK$}%cbjZf9_%OWy4a#vf6t2W`ss7OR5+wb9?K~Zs#o9xZ>NXMtUhf z%+R{2CuA8n%;$5GW(qboWcZbF z0p3u{Y(1Ry(}l;VsYp&b4snTc8|l+&J<|f@v16w_ MVESunC+$znu zhR0(3ec$s;CjV)6mY>W-fm9+8Z1NJ=1DJJT*YID`_YQxG>YebAI!>&_ZQ`QD#%7Hj zlEXLz6ZpsC!%Q4c%8Z)NDw@ue4U>|Sm&1DIOWU_EF3K)M0xm22Ym86h{jS`yb@s@K zsd9(sIwK-EKC$>OiZ_rhz2dCMUk$|A89)N23~;4YGtnGro?Z8mJqJQC3c$-{xpQv` zJRM$ESw7I;ul)Xag8rh7UJ*XAx5t7treJ#2*h@=> Iw#{&Y{=NY6XIzsB=su9wbvr`0tDA3T)a&GWc>W39T zh&c1s`imEWO86t-)aMtwO#C9CwN9*Ds_V|s$k4#xU|IO|)>bJ;g)p`1>C&Iyl&8bc z)>1VvX+zs?L(0#6^6tnlHFeQhs3Ek-Wiw00AG9Nn%E3K3-!ej9dOR}Nxs_X>hac<1 zl0nxN >bRGGG3>KBmXz$)i2qk-3kN zDD2xjzPAx>i-1o>qA#{lL3 ^fn-^+Wet-P&p_FAN8#0D^G^JRT#Qiw>k z@cSokianTiY)H6=?wU$yQO}9E)@&L%f`lk})VM6&4)p+3)$mEJAUf63iCV0q!unhi zMyP;!|1$`DA_ 7AIJqtKUm5R5jNtMepiF~WFE>GRngHgop4kgjb+CTawJE&N$ zH`S#vfI_ih#Xz8Egc1j#52hYIi~#T@z#s|e>l!`m<*1@mGp$O|@lqEZQeQ;o{0s{- z^Dm{hzGF-mhnT7AGqE8|z7+TP+hsg+=_!JK?~0JDx_vJB=b+saBbg2|@OtQ^xOZvB zf>8^~%CtgNUq1=pUr^U-82m69&iXtJL r zJv+6|;5sVl O1wdUPAw9 z7aCV;eM4aI+*Kk!{oWk@I{NPmRk&y1`*Ixsv<>dF5vC)sU!A=F5{Rt1EGK!e3{NDc zQG>u$sKVmuao-pp@VbtWgh)fm0_I^JuK-mUE p&yX-Plnj{h4VfM+;Me7kjWkwMys-c2DF z$9>|i?>AWaC*61|+D3)YdtGT3Jyx9uyxQv=_}6r=m$<<^|aK|yH`D_*!l=<+_KIKm`V+WE7Y+ap@t&o0oLoM6>!~OUM^Sz+|(YpA-ugFCfHA!3b?&0RX7_g>F;b P&%v9*JSm%M4x}k!fW=rM D7v^SIG98}ncBICM^P4Hw>UQAEy)ii+{lJ_LTUkj(<1Kod9c!Ow` zNds%P-y6x3Ho{&=%f2J4r-<^}M$v2Xom&fZ(GJfGHWApvFXHej13PSkxR7BoF1^od zI-lKzmTl~eu4rSSrMbBw8cR)WKjuC_sD`C5@-hOXJqD@)5%wUCkf8yKfjH@7wf~%Q zBDjfwiy5o*v9{E_{l8^Kos{xd0)Zx0+Icps56P-L7ohOP?U@+D9+$LBnK Se%_9^G$Jm`_uD~u+arN z^6^^hN53*MQ{4cgF`&X)f>AN$!As1JakH*I0DYmdoU=Py#}EKIS!&DiUpn)!Z6LV8 zDYcy5dNB6t_ctDYC36+OVF)=r=`bRx)BXV(Wcnrt&hc+xA;|b{LdD&__gHwa!Pen; zzd88tWE4Xskt4S0D`ERZ+2vx@ClBnXefatGpAYBS$z~KVgIT(S zRw|Ijv`&m1Q(Y%sK&!K4+x-e6-qP)|Chd9hkpfPvZ ~?WIALABW@1tpduafpnL!3-1@e1YA~omIj%?2MZngn}k^XlV zsD|xAk q0b!xGYlEiHPk#TKWUnfQ%V-Nq6B?85m!H^o}~q(ic^)00n6#XP)Z zT0)T219!Su7(4+) =rr6epi4%jcy3 zeG-q;Gp+n~F3x3cVDHZ~rc)=V`WuGeWaf$*HB1pf;rGL}&zA0H3=mbDAD;p0c2pBL ztwo}rL5v&pB~SbQC^Nk<@;&q*`{2RYqDvNXS;|bBS3~Ie0vmqJgW}^Jit)IDpY7Oc z7=_ZfP!+(c8NBQzp}ymr&G!-tvwW0Wc4X#RDY#K9vKM#g?HB0)1Ftl6CT#cvp!6ku z)O{8#2{Ev~ku*Vn^|NqgCE0j#%Gq!2RkQl~9C+9h*7e-!jm3a8RO7iz?x<=nW*{G` zjBmasF?L )&-U&bC55?MiLr8*zTgU^hyttG?Hgz7za=s`+zC_@_4ZThhC41oB&Kc zQ=Cg(^7PBa@}CV>OP~dx^V#RJ6<)YEPm~BVJkRvhnG_Mucw(d(HxtpSA5avWB|qC@ zG0-+t@;>;qSZhno;i!t)IcsEuOBs%cgZUCJRa81EPYmr}v^QOk{xu8L2Y~v5$#nq> zw*)M+I3~jD1tsutMLYfIG1ZHKS9Nt-9<`OQ*7T@g1DK!2)vx0K^$H{SYLW&M&kczN z?AVn;ZDPpo30(C68~BwC+AMqt^Xj1v0!#PS=P>ULL%=Le_Hzi^vwTFb{ok(lvlJ? zMpkO- vV2J z)Ih9$ZF6=>XJ1;Xb^;kFoQZ|Z`RGetZb-!rB=f*m0#_(@a&NaT`zCOahNHethsi34 zFhGe (VIPr)TtD!a-*q*!h%ig4twLDmh% )(K= zXbu*zeif(hy`xS#6VCaO({YfAW@aL7WGX8)_=iNPnGg;}* S&UAte;#}D6L3sH$Ba`pP2RlcjOZ60qXheZDj z23_qQY6C77|GO;nSU-oun!NUgmD|=-;KpFZkF6aK-Jbt4LiQa1BRd-KcY4Alq3xRz zggrNwUoDA6XS5{W??-5A@`I!b 0>Th~#;h-#KzViN|m6;cqN_$4*dLhw1H`4cg%58iTv8O-v#I zlIqCS8lzIczt Na}3niTPWsTO)dbTt2d&Cz?Wi^5~NVY7uP&|{C_bg@zPr$!Un zqkC!Rh|SGi-~IlN##qnw=~HjzqJV-Z42hy?xPu*>Q2O4rxvY+5DXb{;j(QJD8`~ zJ#V_h4SE9SsplWI3lASUw}C%Fyas&sd@3A#fP50o9Y&r~wtVgeU&77hJNmO}BcIdV z3-L26va4f69O`<=%CN~ZD>e%+1(#bc9)Eg&cj5e6zwkQMa~p{A5EU?p=h@_;H3H3| zofXwb#)W#$edm2O=G;eingBj-MR`eV EM!G*$hfl<)yp!WqTNc zsMP+@R)pTo)xlObDTX$IlvTYijI>89R3X?auaR973vifm=3Q!jx(BEO78ddmU`8oF zH*-w@J}H>>Z6WY9F;VN|^IIWjL+Mj1@cGM%rmM59>K3f*xo9Z7NcQuv$!1Q-tq15p z6hmO!x#vgoQ-cJfNbCXN3L4G%|Gh3uWXu+&!HxN7X-KHpiONB@TyrLAbUNKNVNx}P z$#K}``5-$chL|ksep{@@( ?mUHYw zS1d|53O6+?)e}+fdt6Ie(A+RRc`J@>J#@_z{w?kaQCnPy|K*tnS(ZMgfV9Pb%>jxS zTBA-y5tZ+yq-MD=9>)*An$x9y`L*(Nr%=9iJc`ts@qJkkKc6bi?Kr9ETZu&9F 2{;cciJi|r#otNTb5kr zBH+fqCcR>c?Gfju*~mM8Fn(O5R+_VN^pCB*9 1toa+hDe zZ!pjCLfjO-5r_rD|5Ug|vA?u-#9gY(U&2{aHW=7>2e4rkN!< (i2{~H4_X0{Jv$~xk8IzY?v9SCz(zsKdnHk)j#f4TQq7n})TW@sJT60sd;Ng7 zzuyjTY{2jl0G}I}Q;2OwlEN?oT<(dDNU%;j=%W23USrJ EQ{egUnfIJ3l;6>gi*7)s^N)= z`kPcCvC+pmI#a%UMwv-v<={|4yFET* z;p2M@C2g~|u47}aZYGA@ile#Z zUANk07rNE*c>=o8)jJMqMAAkP^L-?_YfYsCBm=79nSVNRFEOVy)8gxG?)c#&8gy-~(ny*10hJ!Wz _F@3 zit))Gc5J9)&{MGGOi!oQb0*o5nXc$;X?PkgrzW-l7uM2*h~hYX7;%_uAAT1)M>OZ+ zS3hhUAy8#rPutqDfA?Z$Y;Y&K%&DRenA|_3m~UL}JjDmhwM*>bC5yi0dTt%s`wd@q z&ymYsO-&LxKsidB!_&h7w?S??3VVK-E`Nyn3_DExPhASw#&+$e@W#}#`79Z*^CYbd z=X7`ZTo3;s xYeyCs+_=hqFCqb!3=y>&GpL0IONTY-5pHtFi_AxY zX8)}evLDq-g`M~3zUt3aaiDT{xu(`$PP<4xN*Qtp@ro6l8#g}zWWDl@%KI+bKdriV zprbw|X` Lg+Ya{suUcAew-eIJKifUe5_m}cx z^bB|7#5Lkz6LuvvXWEBJBio)G#UBhC&YwMk@zKaSua6tDnz3R}P^uSVH?L03>!pNs zGGEi__}zSE5w@nmTGX|G115#{Wp;gcQ@p+~uI;&azG$^L M^r$`OKS5ZIV%oF+^*z`fVMcTIFjN3O43S#{s3o i>f!o`##tb;(r^)oi(5dI zUeOpMGZjGfOO0L`or0>%^}?##bK&d$)988kLLfcPQ2X>yluzYIdzS3zlwOH$63!P( zt`Pt{1g~L&LnTj2D!Hnb!k)EpT4;izIQX5)!#jMJ`PHB*qP5IvFOB&N=3 tW5py?p)EEk5R%pK2h9_Ecr zMhFMI3PbOav-dUNk3)bphW_xB5H#LFU<1OP>HB{qopoH(-`mFhDk_R}Nq3htNJ)1~ zmvjiD899{h4v8^okPaE$oeD@eM#G5FF`8%oo`3hp_S$wn=iKMMuj_rC2y)K36abTt z?;?QzLsyuvi0dP$W|NtKxH>-DTH;`(X~4UQo|DSAmo~aAKz8)`DcWzCv1xAcD?7Dq zr>x$O^}($D3H uwXJ33Cn)oy=IC*a%)&1XKfZfwNA6Tsl8fWs >p NY53a)oB`m6!zRFbysaidY$Ve|2E`99fhR@l$ZT z&IS5`G?OLV75&WENPSX&RWA{P@D>5`r?UQUZTVP2DMFN3JxmT!wI=>U_z97!JqMF! zADz37-;bkIF1!=N?384NxnxT=NAwTzk~)Y+7p@RMn^ybaKeO zZ2Q0DE06Pk+cVWu?o(R8MnT=o?v8cohs^{zo3_k|?My!WfLbYGwCd>9LySsw-6D+| zrYPnpJIGZJlQYJdXn92AZPR^!&!dF$@#DSq(xnT6B$}f7k5e1IRkR&Dfk9B3u{#L5 z(Z#KRhJXLBh`>dEkHaT!qFJq2ts13V6Z(Dk;LGuu-`{v=EP0ud%^ecj 19rFM9dJW*Qtw$>GeZ4+7cp^ax0KP$oh`7xs3*m$|KtIgWo};^tKtk|}xFpBQ^d z(3WzrkQww wK#;*^^Th*6*@-0=v)2aUpw9-K<3}tk0ZAIoAqVC zf31-NT*NWqqnc9PwOa8J-pG->yO769Qw$7`M*LS{uvwF9S tgOQ)bxZ`8oj!3CU)4+hNMT5gG%LJ{s#^VR8RM zfE=63&c(&$Q@gf?cA$O+ny`r&5>;oLP1Zg?3_gwA-St<8X8E*nn2BT+KWe%9vUqRe zo)Dnk2O+f}jEl+dDLjYm-Wo~yy|<#>1zJVo+pg90L9pZjov>*~Mx6@1V#zIxBZpsE zl5y)t1CtdIU<=-c|1H{0hksufmdof)+5~TEYd%n#H(S+rsxxiAy(X@K= h-#YuDBA8B*>5F@a+Zzajj zBk&T61Qu&mvQ1iPw$m<8@c1>H@FPgA 3kL-ZpyA3qil9YS+{JinCH?GuO z?Q8e~4+u@|`@ObyNS*oH1^;yhwsT)j6lu&CqRx?~VbfW>FB`wS4$OI|A(`RD@{T{V zt5X-e8LhuJrr>7c?kAl5{aOWdEDmz=HK^BcAuOFS?_cb$v=I(k%ca#Xhq*lN% F)7L}e~FMt!ha=08Dji(QqmVkI!c|S%pg676|{-@t<=|E2* zhFxBBQzp~J7Np{}c}5o83X2Iduq=DZbh@84)EjqIAMJ$$$W8gyFE@YXe>2t*;(lZK zd`!*-^|5E=&w|8Ib`}{np@Wth`zs8}wgZtwad*;gZ6=zz>gu-Y4kzIZ>z}qQh^u=( zDSn=x*K9^2LM%BPE?|gCaVy7jp;vT3=6nuV?h>x}@t4 Yk4TVNL;UuZITbv zR`i&XKx~!cO0c2C{iTnP(*+4xZxh;@PB-hTr7l_U3Q}jW7Lzdwyw(RC_AzJ(R0&Ap zG?oPNb6L!IQmswz6at4@yz}h)ek>fkpT4-Goznn_PfsMYpZ1QO_M&;ECc^VYp}l`K zuBuxnZ_~>E9}CDB`tL%;YkQq~RUxUDnjlcj`;)z 5;AeGd(=bT?l{C8I_bhcrf=Jj@D=D4}8xQ4}Pl+_23hpM?{4;DbJaB15ct zB;b@amU%2PG6@{9RoUm6W_Wa`qHB}hl5jm*nfpzW4qU+{>h2-U-F22BFgFiB;!IYs zmbC+aqA~cf=$x@4zm|i9nA}Z{y)XLr?8*%P{x^$+vgPyhwnsG}087dGOG$PvddB61 zc0aHuCNAf5%*zJDzvB{|KzTm9vw@Yi(Rs%Wh}F3b$yJCaB4ucv~|&4VuV?gIe;?nJ@s ze3~1&1J-{rusFc$Q(NM;u}kG|l3^}HKLhv5OJ~VIhfAXWK-80c2uW0nWL-`Yn7|f1 z rv{|=FTDT_OzbSYowOcG z7`Z+}crT!nzYXM%wye>>4w{E=+y21^pDj{VGr5%;7LhrUgYttYSzHN5n%jjTfg6n9 ztavRaS l027S iZGRy {WGcKXM3+}{y4FNB5~ZJ;ON{1 z|A*z;tLHKbDO8FV@AmR4W{Art A(tscA zafvj#-ei#~Z&?~f3 s#vBwZ+nJywtNlOJdO=MDW@Kow)GcD4 {XU &m;ev$yV3lIH~$f!Iq#}qxaJa-%V ztd4QwY0X)*lB+nwRlts|#rw^t{Oq|&rO#54>h!*ZEVFgGQ-zgRdf6}JIncovq}|~| zdwV}xn|l)Ph7*ThN?l1`cfXYUPA{xcAbFmTTaI~e@h}#g{67)czt|RjD4la(9k%5i zdYsDMUR7DS$Q=vyZ=ZX4Tcxc5Qvy-s^U3<)hi}=`q%k zNKGh^R=v u!r@Y#^2ttuB$pTx1u?Sf6B@ZTM9fn6kH@ydl@IQS&0MNP5U?`qB9u3npFdY?JW& zfj?B4yK$yBmX*>~&G|JMHh-%tu9^VHplLjnYvh2*1_P@XOh|lhGQRJF_8Y3L u+g$-@@esAx=B(x7IagSK}$w)w7dw0ZCNEc!A3_>^huRq7v}T{4jR`j*4f zyY%;5Tj1G;BQT*o*~;E_MyOOdbJ)_u>bECf$+(>{7w2m%GXIG@iUQH~^t^8hT23e% zt1ELH@$44Om?AfLN=I3<);-9d3tvG6t(3}$gaO`!T4PbJ;*HMF&wG|OTMlXWfBXJ{ zX;50MrsFaj4UsmHb!}lTLPs;OFV&{6>pz v+xor(*HYN1kDSbH)qu2VY)jFY+;RPUfV{iZ7esw?5g)#H#Tc!P+tLH( z5BCkyMUAR3?K&-ePLW`$fvjkb5h>_(FOaQCO6_=g?80fL$q)LCDu=W^A~hhz#n-`W z0>?hMMw15mH<=s<5nSm0U@8O-MGn&{zI+Y0F(KkFK^`5i#wjlT$AcVbB#d)`)RLA$ zIzE>2dHiUA0WXB+k(b|Vt3)nnB3?4xQN`dw34>Hc|HihDbcn5LP1A)TU;3zp3}gSk z7F)Sa_@`0(Kf zUOad?_1VcLVV6 LQ6)=rqpO9~$?n4M`I*W^;-@`imD9)YPgxO@8( zyUICu!={mqHVunO`lVGb!tBs_S>*FYbi#~PFJz$L)FMJmrd`X6!gxe&t`sg|(dZ>V zJmm~g@XoglB1J>e>-`D#IsrewB7op@C1{bCDN%xR=*XzGKGpN#;B{gux_>>GBM@t< zLV#J2`s({FU0L|LAn5ZN===C@avzU3V7rlk-K3^~nO7M`i-K0hlAx=0u* zL|0Ry7_g7Nje9$xQ@dLJ;?)J82?y(%`)v_>gBUz8c$rw=MO$O$E~CYQ2z2;@xz^Ct zM2_&q*KdUVg`X&AX}j(5pk1hrqmkgd#7FJUhl`quXMq*a;#4upgMJ=NA@;-7+~LW# z(Zj3Lk8OHcK2xzjbv^vo;&O8(nM&=ZhOdj;Hj&fl@RRJ!a`uR*vyl%0momV0Gjyyl z53>2J+ioZt#v#0k=0|&Mof5ayUpKWc-epu4<>+VE3qw2tJPjuyviMv?F*3i+z^Srf z9A3st%804R@LvNiy$(i-{R=DF(O>=!MOnwcw!OA6u`W#*ABjvHYP0~UQ6c2uSV)xN zoFlLE!yp(d&V+w!OzJ=)zNJtY=>`jm2p(dkJ`jOiB}7OdySrOuBP|x(EvNGFOy}6} z4rLXSN%C;9`Y=xF+nAj#=7crYnzfM_m|}h^LoAHwq1qx}pFjPWKO0a*r~at^-YB;v zp_i)UA-)-Fo-i)9Ri$b#m98PrG8me@&(;5xanyq&)GBV+aNya~7dS#9T8q;5t~lEP zs&6~05-LRYpC_PtC(L@On+LrmhVbRxWQOye*$a9=-POKu{6kO<9Q Gy2ha )~eQRuim|MAgUI^pQ? I6`RIR=7^a{`M8zJJ zkTnUqACHLEf)O{zQnB`xqz)g8k<@yzYjXyP zYi*e>0%}vsKT`}@+rY&a3(#gtek3K8OsvOg>AkScHhV oxT5T^^_%fhr+xkldx~qXAxc7a*~7}WbKG>c=youS-V3s@-{F?K zi=+EObGTAgcr-w=fvUuewK$6`KgUVmd!4)fU8SAmhU*9bn*NZ=Bu;C$a3G(NuZIkO zGbH-McPO2bji624xXCA$nJ&!vCGwF@K=%8?Ke6m{I;p!g+=>Q@-;8eNQjd3Mr|Ypi zKUfpqrbJTvD>109o`Vis5Sv-{dB5#9UC>1po@WRatz5pEy87 &&2aWIC}yaZWf3AhJAmakKoC=fZ<%B&h!)iUTx4swJ#YdSuFs_LTMzo; zR^XOm`-T13?UDV@q5HKiV_m|{W(@U3ER}ZPz~`0#G&rM%s(a26UxAb=Z$-)7$XIcA zayM(XATVZ!QMWHB%>s$4zAaQz(Q!=cv%+8<)N(-_<`k;<3Qv8x0(*0=SrDKihDJX= z8iQn|_ddJDwN@~SB~Vwdyb?t_K9~uu#j4hO-m3X?=!sOhU9D@3a_3flFX{rlMk;GB z0X5QTu6q4`J{etoLZz4-Mm1@BMq!_&<^O#GN8g=}Wv}+=qbCd0lIqDcVKeI7>k|)} zQ%!nE N8X)&~FA zsKLct8)#RT`%b$-alP{G1-(uuy3VT@# 3IQ|mU(PDXxmACX zHAht(zQq>S7mS}3BpV{ms-{X!#X<+;4Fqg{ B=4aU&I(qc<5bD(I)VYocL`@rP z`J?n4hbR`?;pVVQ0Qv;AVNWDp=1cysg7qMt5SQ)Hw#X>IQ|-l+V)!!w@nDURhT%Ks zTOpBP$x0%AP~UoScgE*V^iWE+M7WkZ2C5Thq^S+LindgQpj@Ga43ykUc`p*fvu2>E zlHmF+?Pfc*BE*x3S`t;AzvZUw8gQ2$*!zy&pk9p $Pa{SyiQw#gJZ_d5MK?^DOMGDqfT6Uo{-#1`)a&390OT^v#q%P92BtMY<&wRP z<5uVlbyykFn2kN!_YLssZGcb?j444z4!LugN`}$pI}otcoR7YPR=LMMC`z87P$W2M}8(uEBcC z3wL?#4G%GuOu~%2LJbvDG3Ih69~B0uAQgZcJxo%OaL*9A-0_jRa_HtJ66SHgE$HWU z;O@6`E^)fKTWagwv0L&eQ7$j&Xn&SR`nOeG=sHLuIH5o$r;c06OzP{c%dDCETjoPT z4PA*N@*%LtL!cJX2Ch$LRdwV+6%=l|64V6=sRehLU7_bmP)Gt`zZsLkp*N^MnT{_K zHQA&}*b)h%=1lGL*L7`n&IV0yuw7fOYCF9=ZlQjO~1ZuOE%RC-A+aMJuk=o8)%H z7vodU%iLtB16N@q7%mb!iod(%H8q T+srEHlSF2UPW;VQw9CA zdCjJZgPLJ%sF{VMX=={I=fk(l$+uI>Ok=7nTm668M4Noo0Dw7ocW477hory_khpwg z1)YMtbatE5xctlKdoXvrUcO)Z7L)MxE!Ad66uDS%LJAC>C0on4+eG-FQ>zi1b@1%P zq1mIdUrnQ(u 2OYjRA 4a%%$1&V?fuvz}d A8Np<4}hvL$w0CWZo@Bt+*~LleL0lfyRj2 iQ10NdE!k;7^nU~B7&+sa1EV`=YnIY&dC70Iq)kb1P8TLz*Do;nz34@yl zLrVW(I4h1NMeo%RXvf;a`TCn_tCzAofarVw6*_nKy6Q0unY-L#>^rO}I|Q5~OPC4I z+9g9jmCZ}Qqafq)+tWY5&0-)V6;T~%w(QtNU-h?y@j@lTGX-Pj0PNhqI3Q6(VcPEV zk>628w_3RYp5nxj0j;LV yP~QDo5UWA!dOYqHl%fR*tntzE1CtBE$GpuvT{7 zO@Y4AksP?%zorXIv%C!w+g_8SDY(euw{N6nDo}E>e3p!k3u9%y9;9$B(SWeE4${l6YML!A399R3B>Sd7d2zTNviy{{B=+fsqH_-J6hx4wx#-H~1n6v3 z6?C)~EG8Zq`=UU-V0tQ`SLq7m`(T pJNK=Eky&~WY8759CZhR{SoD!j?Q z&Nh4Rfk`D`NO$Zh?pZfV=PkAc#RhEuQR0%>ipGA-bz#S+BOUu?vPsPW+#DSmt@@{` ztDlO dM4Q01zvUZLv2b!wP8_P zn~0u6?o5TbjM@LE`NVeTqd)vXNg)tcUy~Iqd92|2CJ eo1oy|m;j*7Cd|U!M8i`U8a%Zx{0wTmxx&CEw8{b@lkT;e zT&v&ajR->*ekKLu+HS{bRLI-#(;ifxL6Br=%6w17IVP#ZFpqw}V&}0TT0B5#8D3C( zG!*_cMoFetK|%Pm3E$w r63}p3d`h`n=(O!tfcBwm4%ba4ZD@!{^zj-L% z?|QF5Q3oHNY2TtL2=0H8M}I4Fo7X*8_tSqQvbu+Sgxz-@wcG-(qak<7-dR3$jAC_F zTNuaLgnEx#U3Zz&&W&5&e^m@S)9C7Nde$^89w$V)#BsIB|B24~mZ !k5(dBIRO zzis>SKKOF#(eav)=22S$@s-xt6HJ;+NGFDus7qt?wCXfQEZFbjVt#Yw?xrhw-rUcO z9G=0+&E1?3-%8pk2B(|8dqCn=p7ky~c+gB7x^Td9aNd8dBFz5-7(Vwhn_{8J!8U_P zJ!}N)EI&S!p5J)`Knfd|Zg+oNR;mh1Zq ;Jx2!m=Tnc2coeVGA zlu1Vq7@sU4HVU5bGD)4wN)^eoxPSe!kZhmlr_gyd!1Kcwy9XzX9)(UAwY=`3xswL2 zL0Nga?&?Vz k>mBMdPSd9uX&8lX)R*ahw0 z=rmb{4kk+lOEOaGYb% i;PTXQcho7NYG zB1!LoV~mogqgA?5odI>`k!1hju1~gUlpZ8N%!rGGg@Xc@aUX|qM@m5tx=xKsaQmOF zJa3nrtM^Zcs5F$BrVaV~ r2(*WnE_hG#-r%(BekPdxad+kMC7N@YxiLfnznnfP zN3NMEw%uLC09}aZ4V!V;JW?&uk9%auod)S5hr-gb;Jc;cj-TMGg&v(D5i7BI);6sr zCjb>%8eIMf($d~u`J82K{Gp#kGMTg_5G_*?%%o_6@7Z{gh76zJ$OAk*q|h@va+i>` zwYaZmXxh>LW_G{gSyQtKpLCw4*KBfA$XtdMbWC0ZLYFR^=9be;;`QA5B4*cH#|Kz! zT0Atkg}7Bpb-d|OC0#*e*Ol(kCbSDS)<8i@pl*4yBQPg d5qu3$!7@uxVs>;Vd zYK9_`da+R*PhKNv0YN;I?`mvWtT|#G@2-IYJ+~VuU1;C+nTulQUmt_3&;aNkM`g69 zN))IjhIk(yd^ZGAD^y`W)CR5#9a8ty=^Sl4INNEzfsL1IK!qN)PqyI%O*C2cG;*oC zF}5qZ8x 4W54(}NF9S;H-!_FG2}aEpvH`^opbjqEw`*icuWzK=;O@QnD0CLf>j z)dOzYx&*-p`WX0%dezx+>ErmLyyU|PP4eSK@crYMz2w=@KYo^=+{fo @jNZp3{uemzh9d}l-yPpiZ1C987Zof@ok{J zdGDFnHIRAPc`3#pJ-aqC#1Li~kGB?&`yQ9GY}bg#JB#7LzpWqlqMFK)4%l**P9r3% zWW0;7|J596w*5w+EZ)m7TCwK8tbTHaduI@ LqsI!9+CYhs>Rm99d@A2vre zgmG4$@e9hj!J-KQ!DQ)^D<7_LfFE{z0_(6hW!Jw{FD6HdKU#k}JfAC6(i94kh$%8y zRj$8Kv_!|tdW>h?qj?bJsT86xywWwfQ0o^Vg0FSg|4p+bn0v27)*$|SY*Yxe&t+CA zwFY!iVcdN>S7ow?8GN-CDcFiZ8ZT0^E{Ng12@2lkhy1SWx0)-I#?Otjp_QGnFvZCw zwYk3~H=*ZhX+EiL_qf;dv)-ceJ4RZceqBr)9o;TzoHOyLx@cNj@HHdf<%&kE2cFj| z=QbI=e1F=`0sb*7#{a(-Y#BK1<&*^D%Hwh3aF#VtxlbK6EiXJl@c<;WwQ2(X2Ux2( z{Po+`=q5n^t%;7;9r5#@jETdCaKF+TteHwB-i_G^4xk;2_7cjE+MdNP^!^BeSXm6* zj`5{45zbLDDrts%_yO%Ltqy`<(d@T?7%ThuVyr*`CmP0W)OD5TU$f &b3JDI?a5nIo-~29X;b|Pn**J0Yvn-a&6)p z*q*t*8GGQdt07&+R5u-HtbiwQzB-yE^HKcZ-bNO8&(}c*DGMHjuB;#NAHbN`16!`` z@7n9~9(paV_)k|JppWshrYslRH$P~EE*H-a8jH{L21F0X P3V<1@bVY1(@ zu) bEILi@!zRo?eV(@?)jh#q%=#PdLVmtidRSQ>3wzD5%b}t7 z_e>M5&S%}8G&eR*c}ea20dy4^YzSV$t6ggqIw6x04*MK6y=@q#h5h@+n&$SK0=WC& z{tjzu|K0HNpa7lM2ETaM<=@YzH~Tf8!(Pd`_bYx77-~#fi4W0m3)Wp?Zj-fnuSX&n z5~3U32=7Y2#BOQ6ENQ=*gxYqt(jqh YSiMs0+NC@uhCBE>$0~*knf9P zy)WHHAkIx+jG>F>RFB=$Ha; w8f}_^`kh{C7$96OzQspyY@6X2$ORk>wy3Wo+Yo#U4>N>x% zR||sWnwp;(v2)>nY4Gwrg)(+`$*yCi&N4UU=N(U$fO)BQ!fak#_#RjP>y-S~bNfYR z_w3IG6MK-w3;#Dz&EL@tqywCnaman3*%2pSv)fk_^-F$17rr~?Bq>Y!u%yr@xBi%L z*4}dlsZ)m2f4I4YyWm$lid2&}cY(KJ_dN^U;r1#t 5q28o( (*@{P|YZq(T9ZqGS88%}nlplH%fV z5YVmW8qWhVlver3x8R!^Woiv+0IP!me)3&l9csQhYuDooD3VOtuxkz5^;1rRiU+@V ziY{KXV6PUp0k4Ev9GV~N|BUo#CDyEsd$a#_ieUcA_tCEH2nx27MU&ulF5k!7;Mg4f zraSZ0a}}>!M&GyhyW;;9ZHt