From 937358fe01d89e1c61df4b5e5fe3e39c08eeaac1 Mon Sep 17 00:00:00 2001 From: reverb256 Date: Thu, 9 Apr 2026 18:00:10 -0500 Subject: [PATCH 1/2] feat: middle-truncate long file paths with pretext Uses @chenglou/pretext to measure file path width and middle-truncate when it overflows. Truncation always breaks between slashes (e.g. src/.../ActionSelector.tsx). - Shows full path when it fits - Middle-truncates with '...' between slashes when too long - Tooltip with full path appears on hover, only when truncated - Falls back to '.../filename' if nothing else fits Fixes #1600 --- apps/code/package.json | 1 + .../session-update/FileMentionChip.tsx | 94 +++++++++++++++++-- pnpm-lock.yaml | 8 ++ 3 files changed, 96 insertions(+), 7 deletions(-) diff --git a/apps/code/package.json b/apps/code/package.json index 159dab795..b77cdb6b1 100644 --- a/apps/code/package.json +++ b/apps/code/package.json @@ -88,6 +88,7 @@ }, "dependencies": { "@base-ui/react": "^1.3.0", + "@chenglou/pretext": "^0.0.5", "@codemirror/lang-angular": "^0.1.4", "@codemirror/lang-cpp": "^6.0.3", "@codemirror/lang-css": "^6.3.1", diff --git a/apps/code/src/renderer/features/sessions/components/session-update/FileMentionChip.tsx b/apps/code/src/renderer/features/sessions/components/session-update/FileMentionChip.tsx index 8d29842fe..ce7a7c4b8 100644 --- a/apps/code/src/renderer/features/sessions/components/session-update/FileMentionChip.tsx +++ b/apps/code/src/renderer/features/sessions/components/session-update/FileMentionChip.tsx @@ -3,13 +3,18 @@ import { usePanelLayoutStore } from "@features/panels"; import { useCwd } from "@features/sidebar/hooks/useCwd"; import { useTaskStore } from "@features/tasks/stores/taskStore"; import { useWorkspace } from "@features/workspace/hooks/useWorkspace"; -import { Flex, Text } from "@radix-ui/themes"; +import { Flex, Text, Tooltip } from "@radix-ui/themes"; +import { prepare, layout } from "@chenglou/pretext"; import { trpcClient } from "@renderer/trpc/client"; import { handleExternalAppAction } from "@utils/handleExternalAppAction"; import { isAbsolutePath } from "@utils/path"; -import { memo, useCallback } from "react"; +import { memo, useCallback, useMemo, useState } from "react"; import { getFilename } from "./toolCallUtils"; +const FONT = + '12px ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace'; +const LINE_HEIGHT = 16; + interface FileMentionChipProps { filePath: string; } @@ -29,6 +34,56 @@ function toRelativePath(absolutePath: string, repoPath: string | null): string { return absolutePath; } +function fitsInOneLine(text: string, maxWidth: number): boolean { + try { + const prepared = prepare(text, FONT); + const { lineCount } = layout(prepared, maxWidth, LINE_HEIGHT); + return lineCount <= 1; + } catch { + return true; + } +} + +/** + * Middle-truncate a path, always breaking between slashes. + * Keeps first segment(s) + filename, replaces middle with "..." + * e.g. "a/b/c/d/file.tsx" → "a/.../d/file.tsx" + */ +function middleTruncatePath( + path: string, + maxWidth: number, +): { display: string; isTruncated: boolean } { + if (fitsInOneLine(path, maxWidth)) { + return { display: path, isTruncated: false }; + } + + const parts = path.split("/"); + const filename = parts[parts.length - 1]; + + // Try keeping first N segments + last M segments, with "..." between + // Prefer keeping more leading segments (left-to-right preference) + for (let totalRemove = 1; totalRemove < parts.length - 1; totalRemove++) { + for ( + let keepLeading = 1; + keepLeading <= parts.length - totalRemove - 1; + keepLeading++ + ) { + const candidate = [ + ...parts.slice(0, keepLeading), + "...", + ...parts.slice(keepLeading + totalRemove), + ].join("/"); + + if (fitsInOneLine(candidate, maxWidth)) { + return { display: candidate, isTruncated: true }; + } + } + } + + // Last resort: just ".../filename" + return { display: `.../${filename}`, isTruncated: true }; +} + export const FileMentionChip = memo(function FileMentionChip({ filePath, }: FileMentionChipProps) { @@ -36,14 +91,32 @@ export const FileMentionChip = memo(function FileMentionChip({ const repoPath = useCwd(taskId ?? ""); const workspace = useWorkspace(taskId ?? undefined); const openFileInSplit = usePanelLayoutStore((s) => s.openFileInSplit); + const [containerWidth, setContainerWidth] = useState(null); const filename = getFilename(filePath); const mainRepoPath = workspace?.folderPath; + const measuredRef = useCallback((node: HTMLDivElement | null) => { + if (node) { + const available = node.parentElement?.clientWidth ?? 0; + // Account for icon (~16px) and gap (4px) + setContainerWidth(Math.max(available - 20, 60)); + } + }, []); + + const relativePath = toRelativePath(filePath, repoPath ?? null); + + const truncated = useMemo(() => { + if (!containerWidth || !relativePath) { + return { display: relativePath || filename, isTruncated: false }; + } + return middleTruncatePath(relativePath, containerWidth); + }, [relativePath, filename, containerWidth]); + const handleClick = useCallback(() => { if (!taskId) return; - const relativePath = toRelativePath(filePath, repoPath ?? null); - openFileInSplit(taskId, relativePath, true); + const relPath = toRelativePath(filePath, repoPath ?? null); + openFileInSplit(taskId, relPath, true); }, [taskId, filePath, repoPath, openFileInSplit]); const handleContextMenu = useCallback( @@ -76,19 +149,26 @@ export const FileMentionChip = memo(function FileMentionChip({ const isClickable = !!taskId; - return ( + const content = ( - {filename} + {truncated.display} ); + + if (truncated.isTruncated) { + return {content}; + } + + return content; }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 33bbe2522..31fee2a28 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -43,6 +43,9 @@ importers: '@base-ui/react': specifier: ^1.3.0 version: 1.3.0(@types/react@19.2.11)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@chenglou/pretext': + specifier: ^0.0.5 + version: 0.0.5 '@codemirror/lang-angular': specifier: ^0.1.4 version: 0.1.4 @@ -1463,6 +1466,9 @@ packages: cpu: [x64] os: [win32] + '@chenglou/pretext@0.0.5': + resolution: {integrity: sha512-A8GZN10REdFGsyuiUgLV8jjPDDFMg5GmgxGWV0I3igxBOnzj+jgz2VMmVD7g+SFyoctfeqHFxbNatKSzVRWtRg==} + '@codemirror/autocomplete@6.20.0': resolution: {integrity: sha512-bOwvTOIJcG5FVo5gUUupiwYh8MioPLQ4UcqbcRf7UQ98X90tCa9E1kZ3Z7tqwpZxYyOvh1YTYbmZE9RTfTp5hg==} @@ -12171,6 +12177,8 @@ snapshots: '@biomejs/cli-win32-x64@2.2.4': optional: true + '@chenglou/pretext@0.0.5': {} + '@codemirror/autocomplete@6.20.0': dependencies: '@codemirror/language': 6.12.2 From edc204ba849996880986e81229fbd18032036923 Mon Sep 17 00:00:00 2001 From: reverb256 Date: Fri, 10 Apr 2026 21:53:50 -0500 Subject: [PATCH 2/2] docs: add visual evidence for PR --- .github/evidence/pr-1603-before-after.png | Bin 0 -> 45607 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .github/evidence/pr-1603-before-after.png diff --git a/.github/evidence/pr-1603-before-after.png b/.github/evidence/pr-1603-before-after.png new file mode 100644 index 0000000000000000000000000000000000000000..f36bc9650e45e5b3348b251631209dc0c5fa3aec GIT binary patch literal 45607 zcmeEuS5#Bo+b32;6kaK!fS>{*(v&J)1*G?0qtcr}dXI{Vh=5WBq(~3FcZgW%MLGmX zXaOl9v;;^H&DC7Ynl;>MDjb zG-trelYh>g1cwLQnkQ&z{-M!Od1xH)bz_z`gyjsfb9*YOZB^mMKj*GJf)2B~-!|QN zHc{=bps;?Jf!T9+k_i?qye*|-pda)ZWp(ZoDtMZpnD*+aI?uzC8iajv$qPR}VxP!v zrqc%*DJctZej1vr9PvBHN16bdlXs7g-+BId`R~7Qy`s5r{D-Y`r=J`jU#eZFId%L( z{^W@($H%!#=e{2wX<{GHoIO4Uoc{l(`2Y9ff445aBucFwu5fe6czKcul9F|6YpHkY zT>~BL?L+rxMYWR4ibkd!lGFW1bj&2AJR^P@n3~#JTU#0%w}b}wtc`KNsG*TwxouQR zctyoOE??yQ+jC+S`7hpzU!8zB1q26c?EZKwxQU=r+1I6cc@K66A=Q?ra%FgUNJqQn zZb8;LYK$DRJ`c)mXM^_sI@ZgbKY!iT2(R-q7HkVV7o-K?g$^iZN z)iS)4^7dRr6`a`~S*NC76%40S`$%!5l-;t-R}SoSvUc~I8j?oK(39J=s}d33qd z%HK8=Z_~d~={7OI4LgEhu}YNfy`w{tboCA8I4TJpKH|L?%~)dP|1rtq*|Q%NPfxWS zECip4mYaX`&DPcyhH?5PW1p5FY~*2E`KJu=38oiGuD|t4Xaa3@FtqRz>-!P%(_Yglz~+fmA!8=zP&gr?h__;2HyhrVa>~q>P&PD7 z-bV$0(F<(b+ z_gloKeoSV2IB5b3PmKNZ25zKBIoh2VRDyl*b3Tio4c$khU{qBN#QB&E!Sb*9dWh6( za(;ptA8O#Kf!V=^5cnnLfi`G~(F@<~tvFdEtn{v=`S3<~(!% z_?+(am+uc;Nf%LzVc|5fY4#gW#rS)*zjhFJ4B;<-OK*1jKi4idIbB>1Tj%xz>+h4x-apU_E_7=Lp2cE4x)86#$9=9+r2&F~!15Z>^M zbaY{VzfIS=j)CP2-bbfYoE+ldv@-jmlP8#v`@6HVW$VWxQ|K6hKU01alZ>vL+E|+w zAC$LP=MxlM*=(l5GfahjC!8`vCnx-=*^1l0n8V1vue{_{)YSY|hXo{kGsio6dxz_x zu|Ek1E1Bzh_n#J>oclt5K|Ua{Q%|WMw%Is=&qM{SD}!zJ{obfZ?==$>6D7()+8b2x zW}|`IRIS^isIxaKw;mCN(^^_V=5~ z1UJ_Gydq6^_XMP2zP_dA6B1!M6XRiS-i4+}h5mSBFkCt8j=c6I0hxBUm4GCuPV5a9T}GHChJ3mb%)BG(z(;)6>mi zPMTPqY8IN#wBOH$Qlp}@SOB(IEV`D7+sD=;W?ppqI_^>|-p44$8D$+;)-z8oUA>C( z*=M>h+EVe#GW&vx5~s=jX5@}#oqH|&%lJ4Z{9B8Hk(9*5;yldRGiNM<@tVV^feZyb z>gsa;G`~)hzRQ!Fq&4(FCc=E8B{#q0)>|XIhnE*rmntdc`*U6A69~koJb#Rcol$E1n z3@73MKk=5HO$0jRi3;5hB;Vrg_;|I=zT1EJdZ*-O^I)sFNaNDigM=%l+zi<8|4^?bWN?p;dht8Xe6Zt||Sr`@*J4TgSVTUPe~-j)X*EO-)H*q5Wb< zsaM70B<=9lJ?!-2PVXRYrqRf=!h`_|Z{3(qZVWjrnyOyueIZdRekglHA@#|UQ9dKA zYw2ffgR$YUN{UM(Ikm2-JooO+?~UlOi{&CXQRgqzTxMbE{xI1ry-32rT($OP|WXoK7m+_R+Vm|TA`gWv*<9nf=De-hjYsBF8rO5(T(}s z9ov^G$$@G9lnFT)grVeIhRti!u8Ow>ujbXKec7QGxo;Gfxn9$Lt)Jj z_S6RYy{FxuRj#IT)_#nQWw>~;ySux$t4mX3ii8Rl@9F7DQ~C;a_Tekq=LTtGa;?3? zNmvVp`tA;a;`@@4I&~5qRE>u5o)v8A%i?V4{ zB@OoE`nX42Mee(;hv5v}gzoOp8po-LQNn3D$`J6hH&%h^L2JLjnJ91BP(>rH zC0TCetxLmNgJTRcw`*hniBC>tbdVf_J&sXfCtHv;v0@2k$s*~z?LB|E0+$*)c9fZo z!um|3Kd#qJmno1ojP@2kd^n$+>`tiKvrk&*-6bv^AV>75$}l+^I+q>U^^$nZzSHJR z(}bA%qp*cY5?*?cLowu2i@gRa7{{z>b(0py6}l%vHq((6uDZ-(_DGTApi+twX5 z3@w~E|I^R9 z!1OxF7Ql@~027F)U{Q6xr>GXu+zL42kvZ$ttND^_moHBo8pAGU6D|}Gb7Njm4vlyV zTd0(%Z{ONowcw+zWI{ntC10hr9M-~5u=bB&Vl=9CUz8i};*M%jmbuBO7?8G+JC4|| z?Y55_F5A#{^H{U46V{^OCo+d|uibd16%UtA5vBT@7pAcQ;>R00+3hbRJsM%wn<=Pa zr_-_|nrPIvP?)P@zAU`~$fBvzDpfDdFFzq_y(Zx>@lhtFx2&M-7Feh#ziCO|Vd%B0 zamwLf@P&SeU~LSh=yN%taV2AXt|0;W`}UbN7_}Kr@630x?Qpr;_xZbmIC!F0>ym7! zmIXUN0`}qcG0E4-NH;yrY$N2^?reY^?86}nHynngQ2~!(QIutR28NKiS5_P$vg!5% zR5I==wo_jc)YqM~nP2^1^Rz?Jq0-U~ms3~2MLeG*cW9 zqP2(BgSN?bYad8`t-keWN(Ituxvze7wrZ?cdIt2PJ#tcFq85B@8oDAuef852JCs0w z+510QK&k^WBVfTcw0~rJI{5FOrFwMOW?nLCTW2V8R_pmCw%(g&SL!&v`k6erHbLSbmOAcHe8fT7p^4E;g(G1$==d+G*y~ipWNcVm+-GxUbt%5nWhB3W`S)#dNp~4SyM zO)h2+v@;d4p!p5-3hKLtXL2?V1x+>i7F^J0;OfS80D?BU*(Qh{xuHx1tve{|(KLDY{X-wr-!CHf{is)M?nL+TGiiPww~XPmNAVnKDGjLuh2~=hbnGJ2v=C znO`$+z1DiP(Z$<+OZb((lnXXB@bDt1q-zDG=zL0OsBZjFCb?PdRv&`{P2{q$<&7!ZcO^QxLX*`4vL?->oC~IMj(4W} zb}+@5Ph}Sn!TV)~q%qSn&Kv1sU_+pfa)Frh8TpVVNkIzF1iz(zA2f6bJ8ADN8$y6@uUd;;E>WI2sY?^F| z6}0uSTavLKu9cdglG~Opv#SO_kUZFWnpbz0Z(BK7FlFTxZH6%vPTn0vl$%!)rkuE+ zySy@}%UmxDd|Q6vB?wyK7t}l78Xq5m?0f^jDc(3?5)Nw@6h(9}gP8 zLV6YMm&u}#9LA*5N>_HfT4FITQZSmo+$GGnBFUXC@Ad+O9)bdJ$8ds zh*+XTiMD|~ZdOZ+ScitAoA=w7r>bGWgekK0Oa{*o- zDoFQRjn``{!MbZWf#$aLZjv}@ZDb@(qjmHrHEl9yEF&p5jw~E`6W6-`+BD>TQj!SS zsF`BwcQ8tJAjj1R&-hI-kD(}gBO$`%JGGrEwqb|Y$Uo!pdlMYJ2JcofVamZ- z35IDAu}=nrm%45cr~Tdhk4#&sl#kijWd54{jj2*RSC@5~9}2)k9+TRYj9>*h(rs@1 z0eL^qlE}KcYEfn4233Bl*PQEd*pRFU_co9mFe&a$R>9*BK^c7R~AN2X+rU5>}7#1SE3RE|#n&XQs-)`PF*> z9(_^saug-PfT7>m*w__{j|u|#i@1Ogay|Y`QI;{Z0v(;y+^T*x!APX>Z#D<@aFA_DFb6UH$iyTu ztav;#al{ZoY0`)Nl(7&ck}_8(Qh&bK;#a@513=C?8Zq%Ima~3lhcU%i#&egr&do)# zlA)pb<5#no_5{wG*`>JYl-X|>^M0dFbNTa)8VRNK@`178AUXMLUj66ShHj1k?fausR|(&{OavnRlAOl z4fyfmQD!wjuYxg&Fq@#&ems3IUI)O4shRKT-S&)adGq=NAtOUV(Ms_|#(~0vJ19#7 zRf41gYaxF~oq9+}3B`j9kE;X}2A=WPHi8l}GHgLMlI1(4_r>$|FcVVdj3!p7n6Z4g zODy>)U*WCWulEnvPNg_#?(x&DYdoK-f&Zp`W*=eYqJ#Hu^Y&t}WywOwRu1SO*U&Yq z19IF(>^GZ9J2rn99`W)1!egh6it?4;@vg^iI6Kt*l&v!Hw%?P!HQ6X`qM&4|*W<61 zR5DsuwmI7@B~?h2X8)90VXBDVkqt-+OP?N^fQ)8_60m^y71W#{a!`s_Sl3sfTOx=n zUZ08&lfM?W9Xjf!OEFdB^(>0L>jMw#l}Rf+5)us%gzaoIe@{|A;_}2``I+ClvZf{G zRs}k?wr%4Z*w8If)zhC+hhrvbrQs6ou=ja13%rd? za3a4VoW-JA&EhgxJYR>O!b>N94t*`R8IW65b!PC*pNvx_vv(d7LIHvgskJ~G%B33y zGi+Td-0iy|V6Yay0_0d;f0y7g4Go)71xis-`0Oa-cOub~EciweDKMi%meAYj23U^z zM(^q@tC{uIavHZ_1kgH@Ne2=Y)BJLKYWmk^E1pLAwbyM}Yi?`GwVV5qVm9Ci-{;vQ zPvF&ASrzRxB?xy(B}7&jt&GfJ59CWm)^)cLCyEP9f7iQD%3~7fTp8fri`hJ$_QlIxf9s{m%szX2 zz4{BL;j>+_wq&cz>uj}QiL0kPA3ii7s|t7iIA)EouB=4$b|Y9s5rT~M3X~jb^_dx_ zv0nN6PLuoPy1dumvwN}JO0K`&w|959%K3iq@cbg&%Kk_%w5d5GjBgD#Pd%{fUidAD z-^UucLQe>fJ*jmSPK)Q9Is(-f=p*vxa_7D?o#fa3ntyZ#-0L#VBU4xIoqM6g8ZD72 z>eoIBIT%!|D9}pKK--h_*2ia_+Q4E>sNLU*Nl5RPu@BNcGd>&a3+Oa91|lVW73)n*6mKGLT`0s;uLndIGgZ3t=S&Kk{6zKe#aB)yE7${t)XbEHJShZIE z@k@Wo&_-hjyE?DGI@S2suNgMqCMQaI+Ews02sctPoFc}u>BX#gm8e@rwo038j3pAK zl$>1riqPLxoFOXvl!;OPS055~VqDKHF1xj*5BVacV*px?GcRKg{VsUNHDGrHoji?3 z>oL3@9c;pj!t~eDjkAX`HKr%ClOkm{Pc*dW80g%8?HyZNJ%!(+x27(RltTv9xLcbC z&hTh@JT5IM8QpBihdqO6jX|z4sQsKS<=hF_YA@Jq-R~IDl{0|l$KC=29>|#Na(+wX zeJUiqa}mIJ86;WYkMPZA1Yi)hPqOeI#c#nqmR^#hL>0q&g&DaXe%rWG=sf}_lGa&S zY4@XR(uG$AWddPZ*msrep^`$vrHz9MsCrQ&`tJq?o%3RI0Mp**WbiF7Q;RJl_OkJ1 z3aaJmx~MLgk~b#Ix9=(;)UD=_I?wQXd<%}l=%-eMAW*p^hF+}CekzeM7_oO<`>r{X zdVjl(feasd`n11vA%&4`=m%S*dxXh`T09scpQ7uT{IguRE;El`#*6iz*J=+%7# zD75J>*5E*cy!HnuoJ6(!QMKD>--$(_WpZ^_pR8B|0$ReOGQYA^V>ckWq6EuZat6vw ztn^pPhVak_d1#Zd=L>mgj-)HMRG$cYslOb}T>p~MhHy>z^pAhPBwO#FCDu!qg0_E4 zkI6vwxmVarKGjG~@y)gdXA*fCQ|LVmj7?0gZ3}0u&k(df$V}H4jIQQaa;BxElwu0c z4n8dPHgNF%o7~7-wqEA8t!&Lck}dv=L;hZyu4xJ6#5n((pE}y!1&5>(bt%->7<8ZA9M$#GRN~U@kERAC z-i`3b2;aQ?{O-zc#Mzp^O*G^~>Q4OaZ)F2NGci$rE^~1;`$L=ju4{*ou$=g|9yJ3W z9~H9Im3MEi9p#M;C}m1vF9?%+UL?Ve7G1~}zvJugmKdGzyB4U>U{O`&1vG#9!0tO7 z3PF>9hkjzxvX!Eq0=R-l=m6vOoZf}+Oeq;bYY4z(sV>0=Rnmb#$x*uX}ewqCV? z-X^?z|M^T8I?O7!O#vu6L^mO`auiJN<`i@4-TBkl5EmEI%z3z`w)P+Nvm#2g6T8ns zB-?GZ#J*&TOkNS-g$*%2{$3Mh#sWod^h>{(J449$8-pF3_nvvCufLIuE2(i@b)2kt zC1}RwRi4@%Zxtf=g#0$$i#K~9u=H&B{93VS99FaH1LvZ;R0lT!w{_&k7*H1Kq2!fV;JW7v|-H<`j(lW z6AnRj#ClAWr32%wqk~8WA~tc3JZb0eV)eEGlT^$e;_N+Q&utkq;0(pJkf1_`Mf zmQpVpNd<<}N5A!ld4%>MAgf??q;0mr$D-n3gGVb$vA2c!)h^U3r)Xm5hiJK5Oq!z- zIgx*!$Cpvhcj0owu6waO=8j#@oypk=Em4lyXu*$r$I5#Zl*px=k-2HKGGIk)X6mZU zAUZVzwtYjs@?=R68P8}xsPQOf{4oI{+PY^-e*WApE{?EY>o&n<(@Q>K-VEC@*q)Do z#9WiJ7Hojak%I{v)#gHmU&dtPy`ue6vNsf9K!b?8JX&8RDCNCuWk~n=$7f2}BVR(A z(!re8s^M%YGBEl+M+khS!){9F)ujcYDqUk+4pf>#s-WgZFiZBj%Um z!v(4x$st3kPH<=*<>**_EQ|kV5^nTyW60I!IjY5`bWI|j^76g$5E}R#7I9S?GyZ6* zBL~H_Pzoul?)cQ>Mm}6;`G#& zT*m-lV;4dl43zd~e(qr6-U=XSh<8I~0MNQ%k+>%QmCu|4)&=EY5xNe%+QPz?x!2;g z5%P2vFM2M0rjZZYyBqm_N9%rorxKQv^Pbzd9x{?{IEzd_Tx>S{lM%hW-3jTH)@r-N zW_#ZRcHSqwx-+(Czmj3qChT**wv0xoVC^;=hB8>yB<0uWPxQ=b5KK*j<-X`-mKpF7)!3n3ZNS8{cOJirJ^oGlN$Tr_HZs1j5s|Oimej60E9}5Hob$)@v zwM;vBT+S)#LFb5}h-pm3!oqO6oDrUF21u3Mp!J%FeTTNC0NdZFM#_*l;&+pE|FCd+ z@1Yj1Us{Pv()GO`;^q`Ov8vHj#tc_6Hf;42E~qP4b3?8ZKS)e+rH<%vQ+z@drf%UG z`AnrhCS}M9CTfKK6UX`u!e&*sasRd2J?^9gTQ(u{TdczPQum{(zIA^Bn%Y*J?stRr z5%%3YlYDA`p>DdMJ0Gj_x>k016B#<&r0g-GS)Bh60Osd|85)-JX3I_OyGF|cHd~v` z0E#Gv5=5gViFFb)a%Y%KEp%%gP#o0>mcl8bH-^b(TgQJRtY7Q1=nBip0Og z9j$E>3IsVWiJp(eHhqwFdPq_}$UDo7Eom6Vl@Cp+;itm)l8*r>K3@|P6V zkoszei(Edr2LrIdD8MfzHNiAYq3rVmbwmd9_wy=Zy8{6pTQx;ZY(jc=?1kW~F zDd9H$mCZJwIFjdu($QVBwuzogfdJ00!z>bzKht5PX)^IM1^9=)o9tQqzAmK}ZEnOI zRW%IBJd^WO6SgiQ4Rtc_08lAvsdu9ofTh2^1;5{!`pu~j^u@GRJVl#P-g6xo`*-m3 z9YI6MXKHqG+IX8C`yXSRdj|&ML(7fy6bwE*^7^PGD|=H|*bUw0GZpJ16t5nWctI+Z zD50@YSvfQuWvn|qEH+*`eJq|zOhy^|+QP^`%Mlr&AaVd)>b$sruKb0_Wq$;$fOC7~ zV{CS38-fF9G@_wFWv3g8 z5dJFT?H85tzBn$dym2{Wb!0GkQBEw~P%AllkCc_|qv96D zm_FvI7iYvF+3l+ns-^*O7?53Gdh_OfEkh#|vYesd;^qDqSXJ;{k3?ZA(hb*muu#pf z$HjK(5<3gaZ2@V1ei)gklNlykTu~7)({O1`1IHwjTX)pStu@AFR%RVM>$}NC+Is=} z&1=7jOf0gsEOCuC8Mz{(hzDnb?avMtd=+~N7_))Fyco}pPQpd)7*dxQG`e|Qs|&H& z6db{D&GQGH@;gRumVf3%-Tc~LW7hgle(VURrH`4L8yLcaCkk9;95{`E>mu+%dtRLH zUa9iJ2nuvoQ+n*M092PXEW{wl9>k??J0OKvG*;zxizVmW#ZzqpKqkYX`m@KaTerj{ zB+TmsE#4W(8qD4`3Biq@u_AZEBo;8*_PGB|OTrlECjc)HrLKSc`L7e)@UETx<{ zK?w_M`~5o)WI-$}8mH@VsS3dv#FuWzm-(Uj!GEVp3;y%s|CM;@>u%R*Lu5vKcrdWW zzSA+kBVeb6Z{NNyEZm9l(je^)X3Dz^cO@j$eE4t&BYNe2g_ED(tDWSO{`|JkcrUM+ zaCXT%hcn)KMes@o2aG_c@{=rBNQlqVr;%P?eb!j8K;JPi5a_R;_0#b3iXAJizwHsH zy_RUEdy$?VS!o9q5B@B(hE{UHuN~+2XkHTF!lp0vWH4{;*`59UTQw=s1Y~+Df|gSj z6LVHJs`+C$q*V@kLqb~%^pvX2%2o0%ep2zDa&S^neJjw}UGX$@P-aC%NeK!bHCQXW z)x#a?bd^qnB8I9*JH3s+e>)iFq)A~xk@(xyrC4JcT+<%Itz`fGB?x*o!nKkcvaVBSW`00mHnzsbceuNs z&@ygbV`W|Qk>yJgwQjIfY~835*fG%7KJciw*%`Nj6rcLs{VB+|K-WN3b#s7#?R7-qPOqF4v2m6?Y}`9oAMn}~HS6ynERov)$&G41ZtLW!<_n*5^EWOnP<%jEoV zD52(Ak;M7mQ4?p+5_|UsGZD{zzDpmTI(~Q;E(GlMmlqX#RB_rnPuJx!u#ZkpPshc@ z-HI~4R>CO&a#t0`iN(ckVq#uEH%t^#$QiopxA9NP!>g}L5^8ET0(VW-e=7zQdO4OudeRl2 ze2P@}wI!daz-lq@f|#TPR(5t?0rj5Wz?+F{8*+~G@oQfh|7yV;$3K=Of^pVZcI|CwIH!S#Gg!~X z5P$r5O~S9YIqAI{SzQ|wG+=6|+1uWh#kFXNolbdJJtgFD2!w*X20huJ^5NWc2lw?S_yb%&f(X~k9 zQDZRjYFqn{7U1l8oPOb&UNrEVUFjjE@)1uL2tk`npSK9q>M zfCQD4u&|m}Gw0Bs%Zn*aG4bK&;=&wUF`nU4TT4q^b{!XzYK1s5`g*6F^e&t~uRrnj zqnT7%Yp^(6r8`=&`3sDFbJ z_r&w=6gRm2Fx4<+%2p(8@C(QjR!4N6CFZ7ri* z>X%&UV$u9qQdBg=2q~I!4WI2daN018OgveRZ2qV!OTgn@gT_@H9Z|^I>D+Tdty(9H zlF|&*ga6dZ+bhVttTncuV5D1E z=$Y)1S5cDmluuaeM}pmnxQ>Z(^d)X?zTd;DQR5p^@o?^dOvT8sFhw}L>MWbOX#B0{ zgqI4=`sIm&((r5QqJ|O4DXm94;!C%c!;Nl##ut}|nedx*+*Eau(Z6}oOMYQQ&q;8T zMZxgS5gpx-7|yg94MM>%QhzIx!xym0a>eYs533|V`r9ex0^J~pTA9#_1lm%177~>i ztI9B4QGKL^-)_05rXGQ4jC6Nj)f)$v|Em5a!e^h{c;z~hpOBlYYxp_7i~o!QS@`YP z%>s5IzGZ<;*8-C5cw9W+%{#R>>In7|;VzmdwZ+v+$F%Yu4wti>^4}=z?&&cSY%XHIwGGjr;DIa0Bh`xj-&(nrG0JSY!eoCwC$9R8hcb$=D+yVsq`KzYoaT$RPR{} zrBp}*|J5E}J{p{eWRAp?pEjd=#Sq~}*id!tGz?CD1~<;-V&99b}h>o#>fJq8DH~z(wvso(IOrFu6amjzWsz?Ev-P3kVQdl+)r9EsoA^S_+>p* zDIgJwt!*zm>!b#^VXrCygAk0R(LvXkhY8~;T&R1i~ zar4}!x#QV+VS*`;g>?|?6oDyGLv&-g()mQfcDmhV^6x&MnG4S;w@Jc>ms!pwcB7hn z{XLYO4vSF^YvrG?DiqDn^1{Ma&x%S|T)-ehPE$imOH1ygAhS1d)ozLAgHO(7FJR$o z2vEM;H`||Aesr?8=T7c7fI+HGsHZ4M*XuhPt#v3WqT(XPWTn6@dFfZ$f96TI4X8&T zk%b2ViiA(hSFT)78JYJ4tScw74Kz_cE6t)t(C72=SU-RM2F6l|{8x%ctD^?xpu_Jj z%JI&Q9U3p}^ChcKdZXDj9~o$BroOrP`&!CP-rpCm4qM6S`+>lfKyAHd+uv*>r$O7o zni$7{)SyQJ<+hQRE`39e4Wu3&-8_`@e4=OZ<;9E7UiZHTH1zCsM9W1mU`Ohq^%WJ@ z>0Y(Bn_95MedoIf5HnM_@}m;)*vm5#b58ZV;$Z>l;iOZvAXh!~j)z`Grcv$Lv#&xX z7O_kZ>CbD9PT!}pVlasU0;@L79e~F*#KnnSean)E;Vafw)YM#)c(HJ|`w%3D<4lAE zq{YRh`3oK-fh;P2@69n08q*cyTUOaseOZ0wZ&vcOCdTT}_dK7JM~TQfbjGx5XwVT) z9TyN9WR8?SoAW&wZV0EDZ9>fs3l_PbdH3CesYxcqXN ze4GZ3OfJ7Z{eZ)qZ#qc;6%-mb;Z<(2~VfPJR zrr)!Rd82KS$dv2QA4ZtkAQm`rzmoC3++FlpTTtA@(o&=n^1AH8VXx>)&xM|+^ctmN zWMunmAb;55P$lo*e*%f|Fp@{36laQ8%AM+|(5KZ$Wb(e!*xEj*zkIE|k3dp_)RUOD zw|@iBK0uDHKC_Ew9W~56B{bwbl5g|xJZ*rLErh}@N5yt8If&KHMyhnqc}`x7VNWaVaV*w9ej6Wsk9$_^7j7vbo<#jN zI}t-C({)o+R8%Rgzdk#=3*+@KJd^!e7jV7?0Xw(K*7?>wpz8473M!io5PaTwCn?hH z?=NnqWxBulx8*PtfX(NMxW74h4%DZY3~=yke7Ba&&F*fHoZ2=i9;2=n;2O3&=vn8~ zuWdg*2d*MZSlpu2K+|eronyv_7I;AO5zsI4fyR!GVD=)j(GP3dJR91Z4a&2yl_6oH zTU~GPxQZAUtiC!C1lwvy0HJ%)^FHY7-DnsDEG&49he$HZjegyNYF$zWx#@A|yJbgK zSC7XrTAQe5?`MYAwz>v7wK|8rAb!8sC+^?>Ri-{=78q$0@&|Li$+ohpsbCE3Tg?g3 z>TGQ{h;uo)URrwE)fAYwg0Z^!*hl?)``JM#tAO zr;in-(fR=}l`5m+L0o1g)X>nW79&_5BIRz506bK%mJbcop9FSCN5_m7VCh|g!>w!JT?uwP-5Dtu8XPH8JiB3-_gK3)n>yL*uq!r=advBSjIhtC?-ma(8a^J-MrHK3fr_ zriyhLt4zO{=kOp4;_~7UHJfrK@Ha9mcLCXGWsS^mH}j~Jl8`U-rARXm0Rj21g9H{>pbo2*oO9K@-2`uNd!w$vbKLOQP{Yhm|?)FAO6 zkJq!NF^J~v=aE6;j!Il-guM7Y3OC}H2U#>EU)Hd#M*s<%qN#N{!kn2YXQE`r)YkM8 z3+J5IH80h&)5ekciL7I`DBHN(c{2vOpo4jiGDH}XUNq#kFs^Y$v%4N_i{}~|z}(3UU5sWcdT0h__?iQ~dxY!d1zNlQ zCLk@#w7(Z*4ul=dn>G3Cox8ASmby0=F53GYK_*~UGO7A8kQr>QDDAjd`&F@Yw{ zt@x$Y3c1`QK~)=aL5fRYTv*<>{HDjkWgY%8sA|ESh6-ci9iiL({ffCAUp`&oQC%eN z*Shi=5+Kf+B8f=_8M2l=)rh02+=d2s zK(&CJc2&;Lb7W+zlN)yVauN$`qKHM+bD&2I1MxDX>yx6F`m>dRR*;PXk#^W<;R(xq zF$Iw1s4cF$Q;O2-H7?H122&!BTuGL~O?fRXLIAK!O8N;L^$6)xjs+TdBe`OlhzMG( z8bJ{h?2ebM?b9c7?K}CW#pyByP2G)S-o0+g-so$wB{y51BKK$t))4mNvl) zWf}GLs?opj8YiaEYt2vlE1NZTG7>)8lA9RVQN5iLR>KF&wQ{v_2T%DQpR7P;Wz=k7 zMP3NDw~s#z4;suMr;blOwaXn17<&f@Xr6y~`#+bL+qMp-oN(j*x2{@U`>cYIt$!{e zEDYQ27vcKg1SKRXUU(;dl2}XCy`Hj1m-SCVq{!sb2T$&f43M>gY~=FLe>dz8Tl#Fq`-<_(9}r~|y+8lv6_8l}E&2gpj@Ksho2NEPDF~xIVXA~ilIYA#O*uY(m~wXw zdg&5e)x`VzaKbjnt?tXs?0u!qF7_pECiVttNiB5c=!fXX$^|0#n5-9>Z?0d^?CBLF z5OZz|!avP(MEg!yT3F=a|E$}EE0@F-JIsmQ4&U>9vcU26%ksf$!SA0DIK*I`VQ?sP zqHG&kKq5E*KNqemy4cAGMlcfyRfWe0(c?V57D%vr&-$*A4jPJksya0tR_y19NmXxI*phv5C=0aL!4^e~kEsIOM(tbiqhEmvPD7JX zK%PCl{+msy36m7%)E8j7@M)A60oXID~z}d2V+Ak?df*RFMXps}ID2BZ=Z7$TD7tBm{Vk5h2#@22{Zgo&p{1YOndIE5c;`TAo{fBi2rtp+=!(cWn4mG{SbkD1wO zNcKld*~toI==18>a{raw`}?g8efb-GM}4REM_fIhrP@u`%~JPaP-{@PBeqQ@ zZbMsrxALE5hU_fb`0G#!)5&}=plI5-_DZ_dDU$cD&Ci2@^XDNzM;uKWRHC+EZeeDK>TP-(_)4H%;yg z(w#te?wr}n#ex!{!RO`wR(c;Hk4+Y5IxZ=zypx>#RfnI${tLMZE1rb|6ujzl=li`C zFB!o*=l|#;(9T+1-dKDkAyCB$9MPIyTS%tACVURS9mRLrO9$5`gmE=#3TV6 z{V&X?QM>m4isA8p#}|VdDY17L$k2~F;GJ_L}OiW`U%^M#J3-9LT+~4$;a5qPL56BD+4q6?H zEHB5On*Q;+apRR^wZ`g$7!s$d%A3FFwxgYbe>VfC308=PpZ6Cpzkh60RL#^zvtORD zc|{M#>*|GfV8Z3ToE&VrZWQ#k;9x65!{M+)2RKqIBxH25@|g2qz1j#0V=Pcx_R&;p zL|C(wcGT|>0B7v&ml6_9z)sLiyU5`u0%?0l_5m(NYmhJ9#fwE{WdgTv1BXKc7!^QI z$K-rdCi!65_W^1svLXB(vN*emanR7|KLBcL|JR&+{xR>J%zuw|LFf zikX?4i%Uq$wy3A-ul+oAyR!(4(EjUUe9}$Nwm;|KzzVnoz`<9<9Y1N;?Rkw`FiSt5 z5%754jE(E*S*u5-3J8aXmny&8`<%GBzApSTMb1Cvf*KM`6jqf){ZA`nuv-9p6;kTTr+{t}skqhYCLa`OFb^9bK(O(&-6MC6uy*wH`#DokDKd|~^m@wZot z3k!`Eg@sGI`h|^y_jkm!AYzxVHmm6PZuC#g{nB~~<{h@TB1Dm0DX(@hI&~36JtZKpjS)IGa=kGJ+khs1_ z8X6Yhs~|#BGa+D>B%8Y-mk5l=nR=*nidXaO4GZ#XdfjohVt}M>z|HfGn0C58p8^SV z;Qp!v7tv^4GNg!D)!Fu>89Jv+d3b?YcaV61r-#eyrLi?h)9zzNJl_L1wxb1d+)tVM-h<@fh2Sg2)*}Sq=OXcy?03H zApJb}Uu*3>*4gXqGtSx{kDnMOnas>Nd7ism_wOp!_!3z4=hvPyL?ZAnbBfrLj)%opfPtDVujkNl#9QK#8Q z>;f{72xvx6H%t5rJypdh_pQ_U?pu#T&WQOkair^T8MOoZ2D+!JqzvCd=cB4~q?N4B zo(y!GBwf%c)Y#~ZfJlnYn_as$-DNu;N_+*fD-dVAe7VmcLy<-Fij`I3vP;u)y4wBX z)QamaiSnTVGW5`4X>&8R_cw^DRWvmjdcZ`*^AHQ$1tVB(T^(qlpAE`k=)Jp`7{O&6 zmHmKtcTi?g0Z~VE?OeB!R=ZOW287UC+NGu;l<)e9HADIToSaC=U$j$$t^k(;Ng-eh zl-Vycl-*o^KT?o80#ayN!Rkd#I3c*!bD0)$*s9E>doGI~j@2rmDpO@FGUj2>V}+Zx zN=hLVtiugZr>F*VGsPZvk|erYyktJ~(p^#%bghyod9=KJLE0N8gHXyCR$Ay(QQ>@S zm7#!S!-nBdXdULTG$Tobmxe~&%4;#CAkF6VkzM1IxE z993eTvZ!PS*TB!8B$5pS4D|FeXO5dAicG&CpVhUw#EY@0h%)T?|E;{AK3{mBnsO`g z6J9>7lZt3`YdmNu)WP9ynzOK>1a)U8i5n`!Su^=fQ4ywr?A80h&{738Sc^pv=k zdK1ou1}ta|T-MuXwtn;S>~fKx$U*we+XhA8Ezj>=fH1n>Z4}aV+fDSHn_DkP{bXe^ z<5>!drl$SToW67t9IAy7Ggxqn>|-mvk$~I~>Dv1LsW#6lcT#FG`UxeuArYq(OQd9G5+5Z0h zAH0xaN>KT>N~;3}%Oy!~Z=EdBQL_9z5fKa{UY4H%Kw#iCe>>CwRhD+@t3N$_4NRC# zciPR6JPhS}PK$Yon|bMwji)E^RpGP46n!Tyx_WKr@hI?^iJig?@VOF_Jhke5dPb&Ni0QRRpiUDR(AX*(XE#Q4UTmhZAH`KKIIA6_9!b_FuSRPH8CE){ZdKP9Q&p7Q!Eefs&S-&%iJPEf<&K1lTM`9wEI# zH)ekdf+35nx){VQ8@#?^?O=Z)`)BtB98IZXUa2L*I>8pgRmK~q6*yc>W*E}(3_Uxm zC9h(!z3~P+hC=|W$n-bG^xLtB_$k1#z<|Zdg`cwcAAEcW5RGPEU!d1_%ck*dLEXpF z^6L?7t<1$H{lN>DZCT_R%V+ec4zeeqCU^a_gq9+#MDbqp&oBFXfkT`A^y0(Y#VIM~ z^FMiD#Pn%wI`w)NZZ25bRrZmJOt%Tv!1?JsDu`lFO_{>xqNmql_^^@R)PxPm=>*%^ zygv@;Q;=8~{WM&l?~`&5@aFO}E;)m!p8yS_clPoK&=f#4qvB^9yj?(Ln%0RQY@^}G z2WnuwVVmFY6Xj!5FRkvaj7>~MPaa#&CNhg5-bWx1TB4$(jBi|4e(8Yxi4IE&t+mnT zuu|!8_ys4&2v07S`z==fOc-N z(dOe# zG5Np?1Ky{u@|dtO$psIyy-H6w`%tNuElXR)tlOayy!rW0nQz$jh{&6DeRq!F6`L&P z?6Pdvxk-Plw6aCiK-(0>yeRz`-{?xElg{pK9C(cdCFxfkEUKXM+|IDc0u+y9&|v<* z*8(iMEM#|%AqPbg7cNGAGT@rL&M|Y~YuZ?}sur1&qrgB|w0rBH`h;4W`Jpd^NzDFe zRO-mtSYNMn{ecsjSoQovp3~b8aY%Dms#plH!U}Vzj-2#R=LcHk3pwCT$-|{pSX0B3 zo(3B_QWg)ecE}qL%H6ZpGgha)=iqg;R@~(HhPFHITs1`23wQ2K`H%=6Q^Yk}us?QU zsu$7FsTIZUU_Z%%^@Oe+6V;%%!t0_;1kO|ZXD=Bzz<-ZOSTbPUsu3*eLOfb=lApQP znOh9a*gV%wYB#vK={W1+&^!KS<|^>+K!t~B!TET+J@xw&@nEO#N%Rx?%!NXuDieu) zOj0ERC|{i#|5jCL^L9UHarKZz^m&(#RL*9YmS#@o&TrjHj=H7b*V}_P z>TG0LoENfW?yuH+V;$h|}r{LY=Q+LJJQOI?_tzwJj3off(DTTXm$E&^+&U9E4!JoFV*gW95~$5K&`xtI_cGs*>X_ZwS#&BE^=*f~^Q#E8mN|A$00jX?LFfr?;IrrubxL6lTwIdxr)lzWu#WQ7}Pp?HbEX+=b^GJ(E%bAOYFSP(8tCJFQ%MD zM|64doK5BH3FDa>G#d@0F+nPN$B^qQM(sO44BaWIouq#kh$c3S(!Rgpu2Om!oZy;) zdn#S**6tpY_UTgo&GHv9u`>zp0%oK|38mwUEm7S5gZ}z0it4I?C#Lo;9!L2%1e|T{ zlU-bF_A%yX7FEj)@L^4=6?d1Y!=NvLcGxo?eD~Dew8ovlv2m9_n{L{A2ZjAEOqn`@ zSdU{UR@0ela=+yKJbxncWcM++Wv}A~Fa_8mEMq1LNfNG-KR5$&|su^yq~(A}-& z)XrYeD!h?+kIiVQtc-Le>@LfoIi(s;XakxJpZAeA=7Hk6qj0!3GwI^$qAz`MeS}7R zcFM|x?Ui>cPMcc{Mw(^Z!a?#0!fUpRgg z=(z}H`2B(09(?OTfZObk1E;-U3u{qDDvdqqWF_Qzth4dJ&=#F!on?RZvgE)o-ae+* zJY#c0*w5V&XCMGuyMVs3jD$?R{ROrMXVt zm@vLEpgbvsX5kZJ(aaS83?>6;+@3|xw(oKc*s}P zc%t!oA@IQq(UM)=SCPlE)6ea#LT__HdWnyOc{)~0JY0&3ddG%WC{}5*I64f&8xeXA zx4VZZ#Qg@Btv(`D#^|(hV}qd%Pe=3Cn1zC)*h-vzbt?dw)v-G@i(C+g%(VGzjbo{lJ~`wzS{?vzKoa7 zE0QuiGy1u9OaiyRIM&x?Jzq2WSelA`cC`&X8jsgtu_9?WJ5$Fz(tWrrD7ek-X?%mH7 z;(xA$ndd}zKQ9xlUJ=z*R&=2x6dfux2V{Ka!;35mO!u4Q9|*?NJDUU>U6CN3pcp)= zhuz=1hLkqYOkL$Z-OgCJ(XdXzJS|~#gpzH7-n%Rs^R(W{i@@&se8WjpN2<85Y4HK< zW)Qm9Uq2U$@#5{JFyg#WSJx7H=o}E0aqHy4c!KC?`3dT1=J(aZ$8_`y$AY&TBL2xu zh_Q6xA@yls&V~gb#$1h)j~f+J~{eS)DEo- zlk)U!1SXBX`=gUeS!;NZn{X0BxK!@hI{Nh_fnw?9#B5H-yt=0Hep37%tNU~Z9nXB& z9!oyKaRa#Az7sE#4h>YM9`+!-+>(P?{l@*4d3-&OlUC0SB+KYZ+ZS)NTldu2=|r?_ ziKpag~2oU zx5ehhDY6zYvHHqWOZBAfbMmFD-m*bGBIZ5Z9PQ+ULKg+Yz&=A~T##KT95-#MR7KP| zMw1Q=Kr-I?G|I1ag;Xof9?+hw-vG;Nh*Bs%@>vNlXTL_znEkE!<}Y25xib~-BsLUh zezA?FD--M=tE($d_p4GoQK#Zk5cc?G<3!Zy!he-pm_WHkW&0FIO6?D(!-qLzb2+{k z$A~9~08-m}V5q5^QlS=l?^V2fHv4V0LN1Ti*M!$J>m5fhmSKou8y{kXW_cPH3|t-_ z@p=!lISw4vN((Kwr%Kk{Jy@=}tE@5+hbcyexf+l5gCIhgDqm`@a#Nzg3mn5r0sJjg zvrR&+uBrsa`tx>%;Pe-6RGgQ=C`e;>0Q4L|DB-z`z~ zkY?bB%%c58a-BQT_pbV{(t_Y`|~b7bhn;8m#sBSf!8bU&sPruorKf z&HMKe-OJa?pMKoZZH45E3o(fXtO?eW&#)w>>zvC<48)#LEzUU42Uw=fOC}Jn-0N(u z6dS+^70z(_*>?=U+xkD0E@D}7xiX2<2~@R*iPoE!or;1E6yU7=xPg_o{@ptle8|?Z z47`gwHWt&U`{LF44x!vDJ1HQKbD43i3hTS{><0zaq)!VWfq`AbqUYAV@$c1->+5Gg zgUhkOYZ_$ECcPdaAhlmlu0F<0<#?+se+mk{OD&Rq)uQ0veehhoYZ>}$1#n0z3OnW^ z7Gdy3tCq2)%CFCH4$lt>w+cm-!AbD*3hw>yr8>>?Q?&x`MF4)vFFM-xWDTVKd@;d5 zMISBVX|Am;FDv`mK3*a-lAGi{^$*9V5uAEl3b@TpypqEA2cRV@eQHGp-A|S!2+1dC zxmNyAX0PeyFd68`O3GK+bANKzXp?)gu{nB={WmcIJ~?l7!N6OpJ&;#n^b1Z8aOk^q49Y1h_H1rz$eck-AW~gX zsWd+bohLW-}7%}EBKXzDQWqY z%6{R2d||~Js)Jn`|g{aVs4pDWpehg z!S!D~?9!8w!!0cmpF+Rm?-K6-fJ)aGlBKL`LLh_~zZ@b3H2Tp4#?wiYhNfjwjqZaJ z2?GrL+=a7^Y47)y`HBQ79-H|La}>E}BbHtmDop{vNl93{Rwn< z7caV-CQ0r;theuE$n#y{c%;@n?dA-0A-lUp9m+H|pm~;^w)lhbfQ2P*Xa6_?BNf;U z8rW=`)y_i4m~p<}6c0WsXqC8&tIHzJS_orSFm*yw4z`&}>8`6Io>k*#a%-lS6(7D$ z<>;scwbGS{npU2L#}IrhPof>;T_6F1KJ}wW5b*kp^hey>p>ok=FPjC5C97^klu2UM z{z8!4f2Cqle-L$K-aKj3r>Opnza=)Dyv}&Je6Kh#c@C@d^QjztlEjOg+)RY+^Ru>r z56-9b#1d~=SeS?j_V_edPchB3zVs}{=~PgmK=cE8v%IGT9lG3^CJ3NpIVF;wD5f!5 zjHN2(o3;6PEQ++u%@^(wdd1~9T-?L8V=a8Y`dBu+hy@chP*+=OKN#!ux#@BsHSMlb zM_pu1mE5^@i5Nl*+IP#<%zYn72j1hLSRUHIZbS#?uSf9mN5p<@8S|_uDScJwHSC<) z$?diG51y_Pd|2HiL?-w_;4!LtAAT#W{$@@0Pu5=?vf~)p2fpG*osd2ST04g!9jcHJ zMG^o%IV|?u1U(5u<4uB$UUQh*6Yg3SFYDhM%Nhx?;?f>zhMJOZi}OIF{O3yrLZfSwA z!6PKb2o-8*TmPVhnEtN#zzgGHNjpx~z92!pX)shTwfg!MhoS4(^Md($i)z>K2b0uY z@0$IOlYpK#O~)0C?T$PVK1#x2tLXrU^<}?@iPe_lr=T^%hbSF$|j;9*$Gf1XpRO&7MEmU6z+IH!ShKS zF@)W+F=^#(n9eh?pzjmjOu5|MUbWm3kfg{ zPts*2DA^1$7KMN+LGdTcgk^*;N=nmG{yqcDOwFgK?m4Iu25wHyk=Iu=v}d8hX5XW* zQS2FQwX_N*PTZVOJQe3Su@zKpZgKDK9n_3De%Kvekfq7z=4T`3C7vp>RKRw*28{xc zl4nuqb*Pu3)GW!nm&eOpQERtn4mM1s_f;Y(neK!ULoT zy4_aV4=(O3OssS|Y~f;6wtK3z#eZ9-bLiXP0KI~e8ZA{NQrZ>ek&*TgedMI}$d#mF zSp$&}L#-_&{-#Me2NKaHyg`PYC0LdjLYM#WdRV{nuqmnz8Nl6GhEq=N0cDT*ll$%>> zf3`ARtWn^ZO)9}NGegGXJIu(bgzx)!WGi#9{_-_llEiuRrw!Y@5M{`)`2-9*t#R#1 zYFJH&rdFNzQ`iMv=_pYP72CHkOa^uFK? z*`%``QN&GHR#ZJUL`wxm9!+dy3ciq(k^U7OiL2qLA|&Mr6|$;7$&u90p2mcqrVSY^ zZ-c+es5Ty6PN)?Tei5#}Dt#ryN+Cs8(yj`lIoq)}0Kw}NFE^x!{Ri1udPUYn@@*J5 zAVFK(_)(VoQ(k|vMWgOf+-G;y5}0{x;(9*(#|4f+Y=+(j8N(d^Mj#qgE8;1#U%a4za1h-mPPp!%ZGRblom{LBx^QR!djS1cx2o(Fa zV84F%CwPG6^~~PtJ1QCNAkNjv8AcqqlHIbCD)Iy$Tu++yl49%M3_8I*m@BGitJ?FGgz z)C%YB6f`~l5AobfFtYm}>bXPMXjhlHue`a8zw3(0L?Y`keR5fbS}Yp_9-X;+XCTdw z&+ZB(QN|Lp$ouz5v$edRi&?NLvXuQ!$xTZE+xmOX%61a6%yJ}oJUlUJh~>@3Cy12~ zSOW#sX_cJT$>L%XN8=@C$6A2)qeFG*o@70&(v<7*AVCILub*zoqI{A#poXB(PnK#%aOuOVjiG`Pz zAGA6LMwM~=eqOH7qQ{v2K2}v`{E;h{&TqSUwRKmgQ)Z5wa5bSVSj3oRd35tn-?Up= z^72$<_j0GZG)82djAVZQa5=JGhnamjU`a)6t1DVox|QTCq(D1YHx`3Xo)TdDR})B~ zA0+SmW&f)6tkG;N8)5Z${Jq|M)3sb?!Y9<@elCEVtRXbm6FC>v0;GY^dKLUfE@cE5 zDopS?9Rr|Tv!#wDfTOG3@8xq645vD^mQ1+edv3&01r||RoLrHtHja1{Qafu~g6>ZanyBjdAz|(`zf6J!?s!@~!n@QM;)n8mLH5ZwFuO zkx2&#tbkIPT7Y-lvPj|xE$i7*ZL>sN#t$Savc{Jkb~oc?kxLcA zH7^eXfZfP1Y%#YM`bu96wS$TP7126Bf6Ii;N0-hvcW2aXoHObs36!U9AvA!hnKO3I4e8G85L0J-|ex&;WVXD(_&<6bGQ7|q+{06EV1 zS4tu#RL!2lG@rS0pG)|sNhVG=@wz6kRdfG%T4370Gb2*34K(mjZ{^$d&dVcUgS}tV zuA-u3GhSJ<&L~jkc+>e9svQ%l^y%l<&w*$CO66{H#bj2GtHyCiqOavNrP%+TF}Eie zo?45X%Xs?wF2W5KM6aqcGBXbX7-xX8ynUo#c6YBk>3QDk;)R{x7YH_06)h_T!9Z}r zRhqpGUTtQRziCtkpc7`{0pFC~l>hyYj z>nL6Pf073-L_bIsgyzDYDyqrDt69X>UklEd3kH^3L99>*lkD6@R+NA+2~M9T5QmP07GUS+vom7de6r9-FTVQ2sNL^e^|~!% zdUIlzso&WhKBV-YQ{yvE2~yJcz$gXVhZpD-locN^Uw`27#IZrRCcC(#UBJU)o-opneTrEQOUn^vRh%^9H>g zW~@0*c0#ACH7lBHv#-*0FxS)YJTup>ngQoD_@LrB)*Lni?xzsEoqT)22IgEv@cDl8 zzkNwWl%SS#hJ~WfG2W&2WH#E2H{%8t)hM190+jJj9uaaFBH5TL{$4&FFsB&A13xOd zMC6MgvYP4>*gp76G1*lzYq8^C2?mmv=zUEZo&9-%2`Go0YN_bC^Oq=soB!H^tEG*B z#VYK*-897`TczkNGJ7FYEUK91WjDTth2eOvxSxGg;C-9sso1JK|C^R=UtIw>`_KSh zs()Qqe)Wkdtz__P!2Kcw5H|4d|ETBL7d5kH0^xJ%`)>(%McO`5`b*Ju3z;Z#Po@^{_2A;{$mxF1Rl2$Y!%E-u6o)L=))mVkIk; z{l>C%&8}hU)S=kAi%;1dq&3+Me|AKO?fA6GSd7?v@cYyK%8#zAWAfJSw*G&UE5l;- z)F|FIN4-*4>CBRT<^ApHUTS;zfjO!x3$$FHiCU}=_mZ}T<{7nND=Wl@>3@um>-t;v zi7j`zpPOI5;xHXEb>xw4L3{QEOOSu`8`oKP)_|@cM_2#2`1L&k?PcsS4@hN`X<=WF zgB6ALajsBi%2E&?;1Orr?P4gWG5=5)+@0Q_h`8zT#xS=xK69?LesIDN}cI<3QU9 zja!i6PSIRPwEjuC{324iVD!ustwqnPlHYS_RqkMBmq4RxEoJ+N@aW<3bD5ySBiF17 zbd6=Zc+BaDHpdZ^GC#JaVqJrx{oAMMk*XCxMHO?uV<}I|*%f|~UQ@Rn_Q)m=`C$Ez zU>@xEJ>zmsGLx&4ma@v7!fEq;)B4mB=z3v8MEdm?ZsZ)r+$^*+4NucCdyzzCQZCyo%tW&l@Pq)5JTQbO#dy|EdKPM>BpCbU_I5Atc>Z;N2G$Q<&&D@51(p zumiN#%!mCyANP9_EJmypnd8-w-!NY3ML&j*ZG@%_ne(CkOXjQTTqq}U4?;urB80^l*cwK zVxP0Q|QD);G^~o^|6iH3#gcKjiL_8jm^^I3;yxw zIg6wit4zlYcW%N$!3v~>4N83S@foGVp0w|c5Z{{?mt|6&`Q`EVvQ%YmpA|jVK6d1M zcQ)40p%~AOX0?dbC4>UdLl3BGmN+h>mqFdhTW&ZQDyXf01GImkO?!nr!{YxTp@kGNENA$Tr3Q zyx+59?%>WD>{$#CeTQWt89Li>+}OBET#%*x(!IVkBGcwfWR#b-o1d=V7_(j=ls z>uPAmSoyIdx+n6j46WE!!;*lx!Ouyn7%-Jb{43;WoXE9 z8=W`P)st6B{4*-2_8yVTe>mmj_oOe5bP$$X_n)G+V!boSxAxj}Ynio0nH6ljeUrwA zW|<2vrjLnjPgG)M37i_T>>-avgt7gI=uy!1_0_~br0;ui${wzb)a;$i#Y37j8SGsn zmQ%>-8!fk%tb%vSJ!6(NRiAU5ZJrJFW^a!hQ&6Wk9&tt!khBsKAuS5dD2-LzPzToJ zx;(1E+Q`;ys>i3NlaFJ>T{v8MzP%12F-5$s_$#Jt|L9KCNakyoD|G2PJ*#A45=*iE z$>d5H5x=gK?}T}oLhPMj9-@GT8u6FbSxLpv%(Q#hSH493Jc+|R(%%KS*hzs{xcV-BV_uMYIyL^UH8v+`l<=_l#d}snkx>eTf?%0 zYr0|uKCwdO{0~W$*wkyh_01#mXa@8tEuG+_xOV<2G8yMQp?B<0;(kT`jEgTfH?c0; zO|vzq?;$si5G+SW5@d}~)P)RhqiTwCWHO$tP0z~~w&i<)1!XmfKHcp1ipG7-xUOHL zt=$KcbeVkIVHhTYeb}Q2NiOch{p+|SnFsV*w(5tA7-k__R3KggJMM3{75nZS%R{7vUv)!B~=x3&<_1==1^&#C{w0MW>Llc zfe3U=dmPTAQ@^SPsf+QE(=2ZA!S&8Q7ya^Y02t7Ryt!;MTv`Tk*InD#ypZn8j^kqy;K3(i z`8~QiE1W|;xo%$8{stSZ0>tIl?Y6Lq6RqShJ{1Vc)9ds4FA1C;T@l8v`n2$W9kwCXIgB$k|MMEv37C{TI`@ zgrbZ9d>=3xpFO+*3_M(b$A%w17G>|ft2ywYWVC5J_LwO*&-CXe-A`b?78ng7z$641 z6}6{Mx;QJSamfI_UXOv`8&D9YfvCR}XitH794 zi{32IiIM|!kFp~$feX;zXP_zo2OY&UfoAXRI>ug6@8SWX&W9iCAzeBn1D`435hE^R z)Rf>$lzLK~2s8!+*nt@bfUY>6^**e1?as+IPg~yan{_`!Bf%)BiSEI&)?jX!xS zEnVs1*h!xeC*2nE*hM-?gomTxIpAXm$ZE2?+zAc{`=~Bn;1y7J<|1Ti;_UCxmrqdB zqn+U?tyx)7F~77AarHsJ%Wdr-mhZY!yA;G}ID+ zaaoMi4h&S^f91ND+2210yaJK{+fe}k-9|2J_Zh%^H!uyW*E?(}G^-AD0Urac3Ui z<(L{h$8gj+cFFMBsbAwKC`KY~7PjhN{@>963=szZFPn?;*Ud#h=XIh@5mRuX^1`KZ z7Viq>)~I{Fxs0Y4CySk}M;)Pz;fN@vcFp@z>6MjR@eY_j#|^WQ&Ch{`Tm0ikpCe!( zwH{~VrF3N*U^wA<#sJ0F(zRdD`eyX2=}#X zoa5|s>FC}`oq|qV^=7`e=w3$-4o)k>;5}uLi;J+ITB+w3p1~i)_G^$hncxe9F@o7X zZ0r9oElk9;r`fg68a(f1hKdkwg{hQ_}-lCZU@@v^r3)=|(YYj<%@@~^eu zZ7UwYFEcW9G}U|?RghHit2cQb<9laQ*~&$bGNjDL_QrXhm)M6RwS!6Xj6o)wn>Q}} zgV*Y8XDHT1Sh@IJZHdjQ47z7Zh1JwK>b*p?V1TN86J_1N!J{D(2w$e6E^-?;z6fuZ zr6_h@R#wAFAW2P45xcnIAr;tFZaJo zFlF$R&8F@U2CAd9gf6oeQwTODb0ip^IvrAw`yNd2k|Kno*0!M3btz&r?cI4rgUsf5 ziIk@1&`{R>rKeKP&P{`I4U6_wKs?U{P&nhP(+d2x-ZC;FY5Hcs^Yu^Nu{IMSSXnN> zD1MquKvXgSe3t@X9O!U?#p>C~bD+UTAuqiyPh5tF#!7oHx38?H>xGq0;as`WhF}t@ zxMY9E(`BR!{&<*Z#%=Srj+dIC+rd-G=shaejjRfntugm`zYNKzz;E@~NFE5x?`Bd- z71k~zq;Ls0=u=f|KcT^s$wbw`nQqhI3AlC*RDz{pzW_2bXXewQ)cT*(&A#nvAx;sI zyEKLCSD!%vzV{g*y#-kK8qZ}kb+Rf~ ze>jo>$RYr~hg_uSd$pfGAq<{v!R$~8R_ z+`yZ1;|dGn^#l%Y?^mu$*a52pRaaot@txCYfx=PX$q4D22~U3uzpm%cSf zq_VYo3Hyt&hV90*sjatV7olwKOFX+n^QSWo#rR9~<71Y*Hsghxh3LnM+UoL3YHTqA zEX`VVojm-4r^Y|1%Hp#rFZou{EHsLls6^Bk~6EMpas?u;$a?*Qa2HoxjLh>|4 z(-$4sIBE|`ruhmc>8peV*`K*e5O?l;yZOH5G$*x)e(-642^ii3%!kx^cqT)^c!|!S z%l>{}&@%nFDr^$iNTJHEX0N8^cgjYez~mY(oa;xtmb+wt6?FatE1tqe-3G6K_a(k- zmYOWBq!M!}fGr`G$Vl|-_Itbc_wcrb#1K>spIwfMjoX)3|3i+l)eN5LtYn$1rx7hqoehjPXUKZ z3W!lEPga8R>rdms%*UJb4S+VM0+W)#vJ_E&Cn0O;q=0`fa3X%J?k*}yE$|P6-+@21 z7Ybm%V!X=gDDA>28vShly%rGV)hDbXp?7t8R&cqIQ+2IX@*yf{PQ1aU^pq*R2LLbf zy7SaZ%EZGiTqU#Xp&8XXKNXN{8s3Vs>^!m3B;<5I1-6KoXdt+Q-mx(VMms5rG$J(x zG<$#R|G-_qo+9HsJJgDSFa?TI%t;m3dW&3JSm3h4r@sZ!pN)j+RZJRn-QAapGI+*9 zEBZ`O+6qAzpAa$ou6;g&2AU#0p2&c+u~*!+6TRPZ6AEaga+LMaGlE>6(^zu`7r zZ3Xxn?^dk;1HVzoTME2V74mkC4VSVX-uUz9(`ZAY+6AxVAsDcd0gy57PSiw(=y~Dm zpCt#0aQG-n%JTmG*_M`$1F2IuZUBJ6i|><}rmK^ZD%l6W{#o^__$cC?T^2cjb=QGW zSeYRNNC5iv9LMl&KYc3vnzFEPk?~9l&ibN1+ml&n78V*SOVOhet`e0HGYaHUc82O}X0`-dSsw?9WC0sSN5HzTNu| zLfVv@sz+nG%_RUc!}7+R<%goMnc7=ReQ10x==L@IHvHAiWUc=cHo&G$=E+uF+LF*8 zco#x<;O6QoNlpX=H7hA^k2es!l6537$Hl|l!;#*F{070OZwTr8V1F({Z)5^waKsj$ zqiGTt`DNOI6m_j`*}233Ln!5WuQVBiQip#YyF^>z<1b<$vzl$P+1 zc?I&D98!SWk^S;KC541ZbJWarZnD%nhaDh6o6M6Cl$E*~M5!G=RVYSVT1>Mhfu{?r z_`ZwexAT=a9obm!y>E}xC2;{RT&Fapl-2cwsq$ce3CzM>4|n_AUMs{_oh}IrB~n>@ zqo^3YHO`V}+)j4v>2`7MDd-Xsgnob`ZtQg%-BVVX^th;fOeyxmgG;aH5rc1)nOr4sryK~lH@eiB9 zd1CC!4YrMR#`K8K&%LL?R60#TM@K*4vL?7=B-ODngBhEyt1`g$Z=8@XzQM^NP&)Ct z&`gwfy?$W7HWvcGq!C@)**WonR5cuPE!u%|zS zP|q!U?ri8Y**immXKI8LW@B#sE`|m6PV1Al&OLEgoqp-w-OUUdhH&Ml@8>$!`oCv} z|8nE2K}4uK(f0Jg50+v2#iz=~kd38*r>;EwEgOYG`1?|Zq<>CoY+UKlgGa_L7_vnz zp>2{R!+G*p=?p^lnA0@Y@doc>;I|W-oa_Vm!Rc4e+44U3k39pHZs^~s`#bX&%K1}@ ztErx6#RtUNFm`%X$Zx18%MaP?`hh~HO$>lXf(~c5F^7?oS(ROCP4dN{T#!-WhE<=R zv5rI{Iu6OxmnuR$AL)B_jXiJRo&@`=!966sSzoCa^EhH@74t-0@*eV3CBP0QiFWr z`19?29`efpd7wc2n>%qzfT&9z;HHBg^#Nw%Ae2yO!Qvd3Xv^tnoH16KVLT*}%g6)V zG99PQ@%68GHyPt!N$Zb+_IvCTU1N3YjoyPq&zj)4SB^t}-lz*oNd$LF_gNI4TX4tF zG4nOlecch1D+mY(3wN{8mYr76MtM+BknvmZgXSZ>$05L z)x{cqns*C!ik!yG#IXA*tMMDiQKVGn^!E;TSKPwI2^O*2iN1gP@Nx9g@?!4`6g?@l zM%gA=OIcY>Tm6SNKUUhl^s~vFbBvTPwi8q zXF9UMM!uC6`Jp%QVgm4ja_rxw9Yw=nBRMJyUvRufPSzH~yn!R=DW>Mi>u`8K@T{m= z31HUjq0pZoVs&o|UVY-RBZvn&_@r(CoLE(b15lEpS5pt3JSle0JNu?RS&qJJxN^UC zQwO2sL$G07<=0?5x_|I#<%mHSZW7my73d5IZJ#UD3pIZ`RLE)BvjSiQ1TUa|H3PO( zM0_qKaPw>kA&+1Udau1mTv<&#drC*Q0}RcX!Beo-|96H_ zV__e4_Bm5&aO6pO_kW;Wm;fhcA%M@2+U??$3d}AC4B)4IV>PoH|Kc=UE%cI#4LVLC z!l3rWNY=Ri1{H!Jw%{7*NjpQuS zW+y(oOF8lJ1qG`-l)~+CwDbbe3RZvigdNVOU9 zC!O2aXcjFd#R|p$`+h+mXG$OR5p!1ObFBWZrHl_=wtrh$4(K!Xe$b}f2=T^FhF5C# z2I4=tcdfy_2Nc!6mhGdW3|0RJD{*@qyWg3g(%CypuVoqVVN@gJH_#z|EgPS3i@MerVdve(YGnEcj#y^)O8o4KG&b60)5dMD9due zkD!7ZSWlXx*DilMpjQH{!HapBgt)rLmr1VB=IRO>dVxb+Y8BXsDOF{x$#JpzY38We?;`cx3j1;(Gp7lPF`chH~0Y;n%a?!&SM&=#Q+ataFRzG+HbX9u`<4P$ z%+^#@MRBpZ0EM9`z^p@^oMe=h>jx13Ya;^jrGkU}q~Jv(KrI;`$2pw5jeFYOF8+`V z@w~lLUQ_(~>W89uRj_C3gk&xOjHRF~qE?SL&VtsiXy6ABydMKZ`@#Oca%fKZi$^9& z!gf=YG>4PjZBP9rQc`|KEvAL!(q11#yfL?w^BRH2l_s~^%ZcmT1gsU}T3Yx|SeA8A zsX^cG$WQoyLjcJkVL34#9(SBf*RF!eeC@vhdwiTzdT{1|1;D@ne$KF*xhG)FGT+W_ z5^}D*xii;PcY3@%zr7t9r%`IyIdO16+3GoR@L=5wSStA99!``nrb;3C0Va7R?xlsf zv`<7Vx@(#HgWo>l1;)1*m?+^(00rJk`oJVeS6@jd&Xw{?C09ec*W!BkGM})i(29 z2xvY#lu|F!H%JoE0{9T=xTK_lQslCzNw2;DLyD{qC4S7cTLJ;qM25vEzuMfXQc`Rz zy8-p9%41;iU??wTqM|LJgxI+*Au1`o1l&k2VL-y8=Cdvw-r!I;1POmx7Q8AvyO=dT zICu*9e$n6W|K;R3X@yi&R&F>Pkv4k-@(2Syz+nahCS38LuG(pvR>z7TGY6u$nHm>; zLqiEWyOW=OIl$fFdTa!XQp0MOLDjrSg(UPGSZnMZAHy}7@nrNjz@?^thn}jE!?y#E zC?}xypj!>OB-_H1pEVf+l=z2Kc|zua&uJp-6#)kZW1y80z+f0ecL#Hh^Qfg`*fGCnQ0ubzu zH`tv?o~M=mK*spJ-m|8YB+~cp!Wuo$8vRQbz=aLs^$$O_eItK7eE5)NU4^X7a1=!Q zT`ek#il}QF0g=`CNP;ptYRE*CAMH)#5y&W%&VbY8Z<2dPArgDR!34s`Q;`So85%J+ zDP6=az}o`v0bUZ?;Q)EbL{?_|0&yqzj~eDV+7^SiVvHW8JF?~g<8ADLw)XZ-PzCR# z?1XW~^%RH8iMU1$z?{-#+CUu)vCPyxZtc>+VAq7hxEVA|Qrq3lQc}EUgaB>~e>D*N zD-)VHs#%1M(EiPlyg}gP=9+xInU4*58qol#kCC?mKqL;zZ}h(%0rn)YCfyvM=a$Wv zm2V`{DXrV>uV|SQD7)MIYW!TM$v�a}gU8^O%I>6X*>{X*qTyre!mPd?mk~fC>po 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