From 5948fc6a989e83ab5c305d5fd5654d0d7b301cfc Mon Sep 17 00:00:00 2001 From: Srinivas Annam Date: Fri, 21 Aug 2026 13:43:13 -0700 Subject: [PATCH] feat(export): auto-fit body size and swap the embedded font to Liberation Sans MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The export set every résumé at a fixed 8.5pt in Poppins — a geometric display face measured at 1.14x the width of a normal text sans, so the shrinking done to fit a page was paying for the typeface rather than the content. Swaps to Liberation Sans (metric-compatible Arial clone, SIL OFL, 663 Latin-Extended code points vs Poppins' 467) and replaces the fixed size with a 10/9.5/9/8.5/8pt fit ladder that keeps the largest rung achieving the fewest pages. Across the 60-fixture corpus 56 now draw at 10pt — all of them were previously set a point and a half smaller than needed. Margin (54->36) and line-gap (1.25->1.15) are tightened alongside the ladder to recover page width and vertical space for the larger rungs. The new freedom exposed several layout defects, all fixed here: - a contact line that wrapped and silently dropped a parsed field — the field-boundary split is now verified to actually produce two clean rows (via `fitsOneLine`) before it's trusted, falling back to the single wrapping line otherwise, rather than trusting a floored fit size that can read as fitting when it doesn't - a wrapped bullet whose tail was indented ~7.8pt past its own text - a font-serving test shim that silently fell back to Helvetica under `@vitest-environment jsdom` due to a jsdom `URL` relative-resolution bug, which was masking real font metrics in every jsdom-based export test The contact-line draw logic is extracted into its own `drawContactLine` helper, keeping the per-size render function's complexity down as the decision tree around it grew. The font swap touched more than the renderer: gen-extended-latin-name.mjs still read the deleted Poppins-*.ttf files (fixed, and repointed to Liberation Sans, which covers the same glyphs), and the pagination test now pins to REFERENCE_BODY_PT rather than an assertion that moves with the fit ladder. NOTICE's third-party font attribution and a handful of stray comments (a fixture generator docblock, check-no-literal-nul.mjs's binary-extension rationale, a renamed `bodyFontBytesPromise` variable referenced by name in a test comment) still named Poppins after the rename; swept to match. Closes #878 --- NOTICE | 10 +- scripts/check-no-literal-nul.mjs | 2 +- scripts/check-no-literal-nul.test.mjs | 2 +- scripts/fixture-derive.ts | 2 +- scripts/fixtures/gen-extended-latin-name.mjs | 14 +- src/assets/fonts/LiberationSans-Bold.ttf | Bin 0 -> 137052 bytes src/assets/fonts/LiberationSans-OFL.txt | 102 +++ src/assets/fonts/LiberationSans-Regular.ttf | Bin 0 -> 139512 bytes src/assets/fonts/Poppins-Bold.ttf | Bin 155996 -> 0 bytes src/assets/fonts/Poppins-OFL.txt | 93 --- src/assets/fonts/Poppins-Regular.ttf | Bin 160316 -> 0 bytes src/hooks/useDownloadPdf.test.tsx | 59 +- src/hooks/useDownloadPdf.ts | 4 +- .../corpus-roundtrip.known-failures.json | 27 +- src/lib/heuristics/corpus.test.ts | 2 +- .../multi-experience-roundtrip.test.ts | 62 +- src/lib/pdf/export-layout-contract.test.ts | 48 +- src/lib/pdf/load-pdf-lib.ts | 4 +- .../render-ats-pdf.flush-right-links.test.ts | 4 +- src/lib/pdf/render-ats-pdf.fonts.test.ts | 77 ++- src/lib/pdf/render-ats-pdf.test.ts | 14 +- src/lib/pdf/render-ats-pdf.ts | 619 +++++++++++++----- src/lib/pdf/render-ats-pdf.type-scale.test.ts | 408 ++++++++++++ src/lib/pdf/render-audit-report.ts | 2 +- src/lib/pdf/render-findings.test.ts | 55 +- src/lib/pdf/render-findings.ts | 2 +- src/lib/pdf/render-work-authorization.test.ts | 54 +- src/test-setup.ts | 56 ++ ...ogle-docs-skia-proxy-classic.expected.json | 2 +- ...xtended-latin-name-roundtrip.expected.json | 2 +- .../unknown/extended-latin-name-roundtrip.pdf | Bin 8329 -> 25676 bytes .../weasyprint-cairo-classic.expected.json | 2 +- 32 files changed, 1329 insertions(+), 399 deletions(-) create mode 100644 src/assets/fonts/LiberationSans-Bold.ttf create mode 100644 src/assets/fonts/LiberationSans-OFL.txt create mode 100644 src/assets/fonts/LiberationSans-Regular.ttf delete mode 100644 src/assets/fonts/Poppins-Bold.ttf delete mode 100644 src/assets/fonts/Poppins-OFL.txt delete mode 100644 src/assets/fonts/Poppins-Regular.ttf create mode 100644 src/lib/pdf/render-ats-pdf.type-scale.test.ts diff --git a/NOTICE b/NOTICE index c72a23d0..dcaa2b1b 100644 --- a/NOTICE +++ b/NOTICE @@ -16,7 +16,9 @@ limitations under the License. Third-party fonts ----------------- -This product includes the Poppins typeface (src/assets/fonts/), embedded in -downloaded resume PDFs. Copyright 2020 The Poppins Project Authors -(https://github.com/itfoundry/Poppins), licensed under the SIL Open Font -License, Version 1.1. Full license text: src/assets/fonts/Poppins-OFL.txt. +This product includes the Liberation Sans typeface (src/assets/fonts/), +embedded in downloaded resume PDFs. Digitized data copyright 2010 Google +Corporation with Reserved Font Arimo, Tinos and Cousine; copyright 2012 Red +Hat, Inc. with Reserved Font Name Liberation, licensed under the SIL Open +Font License, Version 1.1. Full license text: +src/assets/fonts/LiberationSans-OFL.txt. diff --git a/scripts/check-no-literal-nul.mjs b/scripts/check-no-literal-nul.mjs index 51a3de6e..6e0bb0d3 100644 --- a/scripts/check-no-literal-nul.mjs +++ b/scripts/check-no-literal-nul.mjs @@ -55,7 +55,7 @@ const ROOT = fileURLToPath(new URL("..", import.meta.url)); * * Every entry is a format that carries NULs as a matter of course, so scanning * it would report thousands of findings about files nobody edits by hand. The - * live ones in this repo are the two Poppins faces under `src/assets/fonts/` + * live ones in this repo are the two Liberation Sans faces under `src/assets/fonts/` * (~15k NULs each) and the 58 PDF fixtures under `tests/fixtures/pdfs/`; the * rest are here so the first `.png` or `.woff2` someone commits does not fail * the build for a reason that has nothing to do with them. diff --git a/scripts/check-no-literal-nul.test.mjs b/scripts/check-no-literal-nul.test.mjs index 0d57cc37..15b247b5 100644 --- a/scripts/check-no-literal-nul.test.mjs +++ b/scripts/check-no-literal-nul.test.mjs @@ -61,7 +61,7 @@ describe("nulPositions", () => { describe("isBinaryPath", () => { it("skips the font and PDF assets that legitimately carry NULs", () => { - expect(isBinaryPath("src/assets/fonts/Poppins-Bold.ttf")).toBe(true); + expect(isBinaryPath("src/assets/fonts/LiberationSans-Bold.ttf")).toBe(true); expect(isBinaryPath("tests/fixtures/pdfs/latex/awesome-cv-cv.pdf")).toBe(true); }); diff --git a/scripts/fixture-derive.ts b/scripts/fixture-derive.ts index 988ec3e7..c35bd986 100644 --- a/scripts/fixture-derive.ts +++ b/scripts/fixture-derive.ts @@ -29,7 +29,7 @@ * prints or persists a résumé field VALUE. * * Runs under vite-node (`runCascade` needs no pdfjs `?url` setup here). The - * round-trip hop's Poppins font fetch fails under vite-node and falls back to + * round-trip hop's body-font fetch fails under vite-node and falls back to * Helvetica with a stderr warning — expected and harmless; the render succeeds. * * Usage: diff --git a/scripts/fixtures/gen-extended-latin-name.mjs b/scripts/fixtures/gen-extended-latin-name.mjs index 2243d67f..2a183fcc 100644 --- a/scripts/fixtures/gen-extended-latin-name.mjs +++ b/scripts/fixtures/gen-extended-latin-name.mjs @@ -16,7 +16,7 @@ * The mechanism is the #295 `toWinAnsi()` render sanitizer, whose lossy * degradation #326 recorded as an accepted by-design tradeoff (degrade a glyph, * never crash the export). `toWinAnsi()` runs on the STANDARD-FONT path — i.e. - * whenever the Poppins embed does not happen: always under Node (the font is a + * whenever the Liberation Sans embed does not happen: always under Node (the font is a * bundler `?url` asset there is no server to fetch), and in the browser whenever * that fetch fails. The two `experience` baselines #326 records * (`google-docs-skia-proxy-classic`, `weasyprint-cairo-classic`) are the same @@ -35,8 +35,8 @@ * left to round-trip — a separate, real defect, filed nowhere yet. * * The SOURCE pdf must embed a font that actually has the glyph (pdf-lib's - * `StandardFonts` throw on it), so this generator embeds the repo's own Poppins - * via fontkit — the same TTF `render-ats-pdf.ts` tries to embed. + * `StandardFonts` throw on it), so this generator embeds the repo's own + * Liberation Sans via fontkit — the same TTF `render-ats-pdf.ts` embeds. * * Everything is drawn as a SINGLE column so `detectColumnBoundaries` finds no * gutter (`triggers` == `[]`). @@ -73,14 +73,14 @@ const BLACK = rgb(0, 0, 0); const doc = await PDFDocument.create(); doc.registerFontkit(fontkit); const page = doc.addPage([612, 792]); -// `subset: true` keeps the committed fixture small — the full Poppins pair is -// ~300 kB, and this résumé touches under a hundred glyphs. +// `subset: true` keeps the committed fixture small — the full Liberation Sans +// pair is well over 100 kB, and this résumé touches under a hundred glyphs. const font = await doc.embedFont( - readFileSync(join(FONT_DIR, "Poppins-Regular.ttf")), + readFileSync(join(FONT_DIR, "LiberationSans-Regular.ttf")), { subset: true }, ); const bold = await doc.embedFont( - readFileSync(join(FONT_DIR, "Poppins-Bold.ttf")), + readFileSync(join(FONT_DIR, "LiberationSans-Bold.ttf")), { subset: true }, ); diff --git a/src/assets/fonts/LiberationSans-Bold.ttf b/src/assets/fonts/LiberationSans-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ee2371540417ffbc652745b059effa260430179f GIT binary patch literal 137052 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

w}oosc!DqhwrRva;dq-kkc$`L>esvI>80 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

sZ)<`1D=v@%Ct``s?2HicnE%( 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

C6m+A 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%0AxaXreK_|l;-0=a=dw_(;$9Q}a z;qfsZpG5Ea_+3B8^h@^e-!Zf1WSE1u;EN6zD)1J;I>fKyRI0Egb{oQ!R+W^&Fq0v@ zRV9@new8$w!wn1@88-3#i5#BH7^ZM|8p9b3X8~3tmEnMtN;OiUa0Z7n8B!{kTjp>h zL&97w5$0-%FjvE?Q3oL95huFiP7ScV4d~=>2IAMCA`v8B)c_mCY~(vlJ^z95L=I18 zIE~>fz&hqt9rK}%DXe2Y)Pcf9c$&#D2Q=3)g>}HW4dEu>uVV`9q)B|Ig=0?R@N~dY zIFTwBYw1MoWTta6?lfU--Hw>kac2=u&anf}41_!2OPcP_qWfZsSkQACa2dmuJyQ@~ z)zbiYJ>OZw;q^ToxN{G~`vGSn&dY#n0B4EWLIP|<%voYC!v#I<2ruUFG7ewQ@J5C= zBi&hIE%3||w=%qq?`+`kCWd!1yo=#xhWB!u?F@G^+%3%lhP?>4GCi$KPaEf`jdRo{ zC`WCaqc+Y_8{#zJ4&|tgbJQj%M{Oj};u>(q4d^6@9AyE{Ww@B(tv$za=T3&ZrP*RG zr!|+;n#*a;<+SEERz{O0}Vy0>_Q?;0>TFg`}W2%-hRm+&FWz4;0Ox1GKM|f=E&`m(a53Ntv9;#|a(x20l6kd~BpG4i*h)w;!Ayc;w)9s(!mtt;W&tkfc@L2A ztORWoCK+2PZsagY#Y%AtLz0J;C?kR!dY%Bhox__L-pTPdbNC*HBpWLQ$;L`?A48Im zl_=Re03YBmNy|!{t3dZjW>$&^0atM@R&g#?aV}O-eZ+m#N3n`!dlhogfH2ASD&(Ra zkYsxmazSB|?N!JHLCVD{mhDw6+pAETbZ0$su?l(V03-=t1t}s(623~1gs&2mi&dP9 zRf6bWC5Yx#OzrhtYS*JQPmAlhysqc+S}k_y?p0j|radKZ|>r&-XH) z?`1x31-6&r+UPch8yIe6csDq<71-$MHip|7?qs-&;Xc5BW1RoSICn6%9gJ-UXnR@g z0Br;b&kn}315{C%@a%vj6C^x4#oeHACu7^m*mg37_XB6AxF0wPZeX~P;k^vEG2G5@ zC&OJmZz1Mh4(~&F7vtQ;IClZ(TVgNY*~@qKaw_}y&OW}gkK;THEs-J~hJKI$Gf>wa zhJGM;9cul<(ptbr(1Q5k5ue}_aNW=ZctlD8dKF#6R_^mFE{{h1f8Gb?cfq##9Qapio;WG*GpA?7i^ht4q!_Ra0IEPO#Jjr)X zargy(>m`Pi)|28@hUXCHDd2n%@F0iV5$7q!{1jt;3c2XQo#*-fafU?yQ%wI;;uMDo z|5M^6#zUB&5=8k^;!g}e#?u4L$pg&E1I)<-%*g}H$pg&E1E7RXEI0@Z2RQWu%)h>PM-}9Zfk@^AgN520K-+7nsyw7*eG5j;b&l&!O;g^61#UXI` zpg6&h_;ygd!0-*e^QPp-op(8W4zQi$w=-?+psfpcjw4PxFc5r!Lx%Z>f>3^*$znMdzSH>W!hfnyu2O>la_uR7(NwmFePs=4R3JjZ*ZJ9INdim zM{jUD_5T%j?O}3MRsP=FubJ+i31F6$ERseLkqwjXo;R|5PLc@;3`xu+Alb;$(_Pb3 zNl*9Cj|2j1ltok)#YIFmD6WW#_>NgVML<3utcuYMQIZ`(CPAY~RMcJ8M^=;l{m!kb z?nGeS^^cwTy6&l}d(S!d+;eYL-8#QpJETTWO1nQPnm;K#pM(_HMM^y>d3H)2cS`Tr zDLHov|D9sDol?`CkOezR*_|j$nswYMb=)a++$nW@O7DWUPf1;#5-Cqfo~MxK0FKkP zyQCJoMAk0Jxl3~H68(3HR=Y*3-I8;+XtG;!?v|XpCFgG8yjyrqi$_h1=F^gYTC6%P zR+^Sl)3DNZJuPLYrQN4R*0jfgt+PiwXOHmNBYgG#-$ zpOJBUM#k+K#6aV$SZPLdo)LS_2)7y0d`5WAh~_ik43Eb+d;nXv;0&}l4O@EYjNUIa zTW3aUu}}2hCmQY(&ilj;`-Iy*(Q}_zW1m=KpV(oal-)07_oEbgmuRwIr0*BG`%$OU zaGY}YOR4>0y=TR4&x)5mD;78)M-GUrgOD|%4z{gb zM0J|E9vxLLGd|Cl+7!ClJC5Z?vE-SR)sD|}4tR6|D-*xPqm!yD{5y~CP?c!HqdV0_ z(cfaGmv3s6dJI2HYjuV`%cHS$o*wn+kh(~Zd30EvtH0vW5p_E7=eBHAonyK@I;NgC zTnmZ(+tj%s%qI)o4&CN>G*+7kU+mFIwKjZ@M|Y^bSkKVr?^HKLuLp{!f{(ymr>a2h z6xD>Ps}#Onk;fcz3SSRMH;;SO88H;aHz?i101h| zqZ_0wbB>_Y0<4g_5@l9_UapqmsEd3l@J)ep6=?zaCy`cx1x`V`aco~)zFJtBx~}RL zC+ewl^RG!|)9L=yN~e%olB>^4EiLD}QbVOuN;1?^Rj1}uH#mi^)X35W!z+hYEnU7W z<x)imUqeprdg0=iOU-IQ zy)tN2HhLEVi`C^$wZ@8Ny3+k!*nc5ez9G(U>fDq>i=6*bdj4sxPp@;}x8zcnida8& zrHNLf5~JdyE6`XxU&fZc#KuQp94o7oG-wOrTKvG^S=v)j(7dMC%+43s-Tn4N5Oi1 z>Vo<6H*Vb6mGeA34=uX#l}VocKeDZ3M4N)P982ihMd-{HWSfxZBs%CzimqQb^LrR zY->$HN(Ij5h>LZJC5vKf7XzgWs#QO_DbK!8hxK)7%@2Ij2)wFXgZDLLxPeQx4mgV| z<$5huvU%pEYL1g))78*+<4yriGgYmubMp1BO0_tDqr2XnZ~3|9A}D`^Bo|LkvvL1l zYWt@u&-eTCckC$8#*1VkKb=p~>8{MXA7F*gS*Wt^^Fp~HB~pHgQc=JG7O?R^#Eu3nAn@@v$2SV3bRt{`1#+%#6n z&Ej2c58li6VaOi9yUq&`nSCL?)OHa9US5YGU;(c1i*U_dj7Xy;xaMAhi02XX=ViG1 zu28SXm30*3;A(X_*5G&p-Y>4fN*rr}O)xdtw9#dCo7KON{|#-pbIw0k9BhQHNk>9c`0J_oA+oQq)a z^RO1cJRpy|up&Sj_~R@VsoRCM0eXN$?!yWJ19}h(?!Q)F2vqV#SS{dndPqI1exMg% z-GD_vDKEzA0ZV{Yz65Isi~zB`3?Fk{p+2iVr(cf+f=Bf#y&CUjuh4JMSL!ubkKlLe zhw1>{%dW*6(W~%&^J>1o)OlUd4&FKz@ov%8>-2hE(v!N3H+xg+OLz~4H(0u^ex!b^ z8|tHYAGA^9y^h|buh%!|ztwNjo7HZ$U%wgaAM63zdLJ;?Gk7y|Bi^&zq~EG<##@oM z>v!l|@LmD$6!g2){aBdy-I&S09W(fM==WmI{eAi_%(HLNckB0K-QRok2N9w3A@xCg z?c~GyKK&8>QT;J}zy7#>Kz{bF=l`D=P+aXdG$WMP5-lgP~DAr%rEFKVlMJa zm<7b_9_EA|!%WUs^jG!Q^w;&{`d>J+qQ9k|(BH-!#dkPIfaiWZz3cDk@8b!2m)?!F z1*i4XcvgJ|&yaY6!*kTLSlaG~`hfnC{xP1C4&jOAC;F%QXZkt)bNvhbOa1TqKlJnZ zKlQKluk~;AZ}k!VU%;;Z9v_uDX4qA+)UpX8HuP|o-9Gfy{npc{$%-QBu<{a~CbFO)fInVs1nP<*7 zU1mN$>YOoIwN-uIbekT9&*`bJnO?OGIQXxt8}T&rHmp_gxal+f>QVJ&Gk{2_3(RZP zug!(#ugpbQRs3~kNZo1{n1yDM88(Z}#bya&r7kg-nh|rES*GqX%heWO?0*h~{q2Yq zeZ6`=(4n`PmFf=lUNdS|nbqcUa|J-MSDH2EugzNXMspQDA91zGnK6?$1>=};Q#2FC zHS5fJQ$p-)86TIJGS`@@shPTImIvw3o*7|H19V5U~V_>F?X2vnme(2>|N#`%@%XFdB6F9xyO7E zAG`jLxz~Ky+-E*wK59N@?l&Jd513CNO7c_Y)8;egvsf5!E7rH%7HgE^m2xa+)9BDx756dGoFuWKO0iOQ*2i)-O)Sj2 z)qG=eyyRS)$T#Wu!a}8<%j0TUkLLq2x+tFm>uA9yiy$Xgj}3bQ@oYiC(P1mlkt9AG zl#b&X>hX*Xduli~jSgFmjwFeTn~EfgO*(#Yz#v`>$mGSikDAO`Ws}90oy3x6*~CPX z4lfzYRl^h5M3>gxQo)J3lEjvJHF3R~EVVUpt?8C}I=ePCOD{3*y2K?-zKL~BI(cb} zBFXi~?G&qyQ!e3-*Ud*qa`{HxiIyZujOa0#2}GF!fE%P(sw zk}S9EM3>p}WozJaZmLqNS1VH!PH4DX3_0auY`ItYidXsNw(=E8I+jl~%Eer@FK&EVz357-L)GfAvPEpN+OiW}X?3XDWYm_bNs<_Cnl4dm(#cgV43hPho#-mdrY=c% z6`QoqCS7ftv|*ccwO6Z#SF6>wRt-ratE;$oi{P1}Tt1ZN*YpjWCa!2| znAq4tU)e%m*QBFsY+W}=5?>SeZhTWfMoN`(u@)bqE;d^(AY((rawwK_Buy-@m2$NS zOIMn7afj1Jk%ke4p7>B7NCy;82!ItnhH$!d5s<6eBIG&PYEvOQO>)SZ&! z=90rxH5V$%;kMzrcYY~)v>Zwv z8^=63;WaoEf}F^z2~c4Qid>qTn#!TeOpXX&# zt;#iGo))1M6K-fBek*Ejl6-s(W_cO>{dg{@c+zR9K^qjX=AiyU&2HH9eo;9Xk@Dd& zWRDbCnMlDY)pIeAS9lXngm@Cq9jFqSMb=A|O14VnhPl>_Rcw7i)rm?JPiK?4Ohl4U z9d+{LhNe)TJbq9kQlWv9Waq0h>jd?Z9#7jk-bvYsOJO0!CwkK9_T0GZX42_ww@>wE z0xBC&&9gnhvEG2{3#k5p8VIOCpXv*w^<_Nyi-L2$tV~b9HxqEn1l%$Kw`{;I8)%&M zxumm!p4ot3HqbL0aLxvtvjOMsfOB`ixjW$89oV8fkkK8;=niCb2QswpeMqeiDIWs7)ar-jey>c_0 z&7c!IwK{Iv>Q12@cef6w$|sWb3EXE{x|SGsH~4h22Ib1$iS}HzTG?1~#_KVm8dGse zWj5WOEL1j@Ej5NoNJ}-Q3gx6%pimyGIZ~l)x-VX-)+czEkSitKG7N#5bFwnwT+?tj z(=%FCydfkpm*jSG6a|>~rq%_382T>G3&BwOG72s9?ZHj^MI7R;uLJ z$IzBcBX+MeZqsVr+ppuMtKdXr8!N1rw0+zymEif6YokkGoc`|UlFUGFk4<_raeKN7 zH;C1%Zm!svvT4=ZFO==1&zb`Qe!MK;p8B+;N~XL7Za0>n&*2?XAA9j&c42d^y$S5 z(sE%&D!pxSI^By-UBG>7qUHWFIbLa0YmF(V>Q<^rb~b;fLwZ}VC*3aC%j30H2@|ez zH-3`b$+s{)xrMIs&dX_&p{T2oZx3h=f0g@t`~jfSA>KPtOw~76fK7 zLtKIjGnX3QM8>;A908~WGnQxID5lcP{n&o`jjk@S?>dtJEA+sHD!u z1KxVoRm#=Nn6G3h1+D;iza+(z*RQ@;*a7+Gk18K(27lqzEG?1)Zb25lF`#Izt1YHKD1{&9ePkXgc)6@VfAx@N?ncFh}H!$h^pg$R{JuMb3!6Ji0i# zBDyJhYxE)PJrw;$^jZ8LjGY%N#2#py-PYH(w(Z8YPquAsd#vq8_(SYzYP_`~t( z_`&#d@!uq}iM5Ga5_cpX2R3z1a$a&-aw2(8@(al)lh1dY)3K^!UB|5*dpp}YyE-rI zT->>$b5rMioey<>uXDQdAnHm?5)etmBOy+F8=}OwAvzrK>o`UfQaj$!1MdTb$sm5j z4H11r>=BViz}4Wr{cZ3GqK=3IB8ny^*q9T`_<6%}mKY-xO4AB_lzSBV8#W5z>_!0(9ZA<~BwY=U1qV)wr(C=jAxi0UEUg7_Dr zUx?-b@&!|v#H0YpqfV9Re_|bobRf=wCHsZ5`zc^;unCmz?UWd2u;K<+MxYhXg?Rebtd#U6FQs;d5=QIqu_TH)(Sh37ixr~ z#M%&PL!6CYqglv%FKTcvYH%;K-vO<6KuFevajVo-=cA^wEu6Jk$@JR$Ccs1smLR7fK1iSPivL!E*$ z?-XT{L!E?DKNgGz5gJ5M2!;YF@e@Q(5IaFk2GJA5V-Sr& z3F6+vm{F3!ym+05Me22eEU-7gOK?kWCBftAJG!TN)RbQoCHx4#7F=kaa`McAMYT6d_aFx@b3fg z?*oj}XZ$cnp<~^!9gz;iIWXdt7>7p?0Y-cS(E-FZ5ZOSi0VAy$XUzyw#(DzH01kJl zPQFHM{RV|*D+ z@9V%wcFSRll%{-Q5)h$=x2G>sLvY_LQMD2ikKELY*aIRD7=23A0Wk+e91w3nv;naO zjA>@1Hc)}00^$gWBA^AQ zrH>K!(bS6eZq}9cgoWTSL=1>6Jw758G*JTNMT7uaLuu>*$t%aO538^r6B|He0C547 z#nzx5pTIuR0Epwo{T#3WL<0EUfl?zVwOLBp7TGK@`9Ymfni2W7T}4x|DdWi*^~hLD zM3Z7n@a6mMO8fxZ)_MlLf^E88qWQmxbH0BuGMcs6haYQl2HF?cWO(r_xQ8F(_WibH z#J;s8ea+U6ar%sPXN*20^cly_D0ar?Gj^SE`D|mxH2YNPR?J1pc_SPz!CEAkl_0)#3^-YboNKC!eYHOes zBk37O&nSAv&|44O611w7-1Hjjjf|Mz1ubLJml!S2enhLV*TM6o*U?W##B<@b;yb5d zoI)(Sj0fz^zTdD<(oeTaOnlP=GHAQI&~}J>$2nVa9R5nY4?WwqI3?S@PpdHMoh?iK z5}pj3oBSWaS^9v5ue_djBGWSqCJcU-K*+Oo9o zNwkTtJ3Wbh(C*pOVkvCP!4@7*=Az~7*z1qSM(PP}=vR#0M&ven2ixVv?Q4C75|7X6 z>t?;mVm5Hq6REhrwU!I)f{{@?cQfoce%w*SVB?C97;HRuAO_n;U}G=B_-jUAqyLSd zPiG|V8f(!Y-`R*g;+K1R5og3GqYDvB#1;S7;12e3FG}TaBtm6eB2y+Ak>bar0LKhW zGU7~t=0$vo7h8g;62_F=iD;6$5k5yOIRB^AtyJFMAHj|s*mG+)P&-qDb0)b zJV>Y}k`T?A2~*0m@6A|UfbH*MJGNSr|Hp6r211}8@9SsXHKUb3@Ze%Xyq+gS@x!b| z9ft7_j{laBus%X)Kx6BiyW0P1av}hjl){`D?X4t;h&bL}d|oqW{?f+xO8&tS5_t=U z9N9E`M#GPf9l>`)2DYa*VTDhD3Sol|ypL?Ut7FNGa32pGJBSdEN9N6LTku-ROZy01 zwh^K$o8K~PhEiA>PKf?6Awt<*GnTX}eUyK}=O4i54GU)6H9LIOPahNbVJ#u5=GK<> z4*RN4o+j|iO+vIsTH9u~cD+9RCqja8e)K)Ua0kBMZQu3Uj5>A3KZst16@;7(9_nWK zg?lDnbJY*ttD2*9;H`>KR*OG;PMPT{B;!>Bu6oyxsyXsV?l$>KkFXkg1WHL6=_LX_ zsUcQUO$fJ77$6+pb9_JaVG9v<3w9hb#GP}0A&t~eB~VWVPuY(@K!zYcK zGM-4p_$w9u>M8-dG80bK6SDux2S^0z!Yb@%Ae4Sja@Z5}D5f+yJwrbrQ~7oxVhT`( zk$jqX@jB4TdAl!*1?aGZM>%$PLXOT>e3AG(HfX-4?i+}GkeSYE;I zu}|1=c`Lj|Hom0(KRU9Xyhf_Y{VGZJg;rrhbQh1QO25c?v zNI0g5X)8?|dIxiy7x7{1!tnmbgm7-fx(V_cuyweda1Gd)`2MX36T|brC8WD-#M8gk z<2yYtZNT^c6>}9n%kbVioU`)p3GssONWi+y|B~1mw38mT7HsZVp89V&(jR+2!u+4| z!~A!o0^5D?`3iYH?r{zekN3akh!4ga75^#6@z`@)hsVXa4)wbe@xu9HVtAKvKMm!}+S=d^EySi?F2qrySSGg7eU`95(_v zXZQI0K78N0|EIak=g4dLo}(V7|k=f!?{ghbaNZl z+pyuh+;Z|LvD2eNm+^itCM+X=9Ub}x^8ifeF@*_J36JnUr^p-nhvM|m51il7*NWt! z=M*23aSCDRIb0(rdoQNLd=v6mB^fK15k`hHhF^UC1y+Y`9=GKj?g7=TjrEcH|3Kz5 z_^_O)m`OS@w$p2C5a$->;4D!1M$Xo^w!cmX7nabZsmhckF!0!-$$B35I3Drc&9YY#hf_0d< zZp7I!;wg0F{X9$z2jy}u?=9R>V#2u!3Wig*FWiT1@uW+EeX(vUZup5f7go2GXK)hC z%Zac2eg;E3%0c#i9hQ-=*t()z_!)8jwo)RV3ie*?Bg4U9Vlt17Jukk!-!q zFMrGtCo=yaE!VJwW1(W>PPp$}!}qPcBdx$b1-BFSWqh@fo+l+L0s;8kDCj2Ts7aM$ zpGr(s2+uRfGXqfJs>gZE#{P^4(^Ug9ziSZpxpXJ-SKUXR$LF6{n32xUlSbM`tX#PvWD|V9akS2G_dPW1WV|l9bJ$OJEfB>2_v=8^s(QFUJ z^=iO8OD?}h9%TD0{~nFt-vdE7HuRG~;6vdU-6EI&Eys4&=eGnOx%;x5r90c$82@kT z?|k+@m2rWO-I?fnct1z3dk=N9_sB9#3i>{|izT*}%I{zwrtPG zf+-$TBCh?HNI%Olt)|ta8Iyyeb}pw4*nVK>8_r4$)G_om6FtKzlmM0p|25XIQYcc* zTbRE{x`~2hk`=HL?tvj1LSLhA(97Hku7~U89^&5S>-ctld-%HWzZ-lFIzzZ2!VqP! z8SI91Lxv&KkYiYBc*O9S;kZ#S`Wpj`5ymK^#W>w~pYd=6jZj3WBm5$C5y27qh}eku z2uH+>h}kA;(wK~9Vy0#&*RNOOjHzPa1H*1XZ&Yrfa~komazl=)fn z^X7BrH_aE!ADO?3%7~JpvZLywW<@nd&A&-+3cu2!A)JSS96cd>h{v-W~pfL1XYY1R4x7{KV|G4(UwQsI{eeLsWpIy6l?b5Y_*H&J;``XfL z#%tPZe%F-O_^X3g|8n)f)vZ@kt|niNyBd4dlaQHMWvFa7D#i z%ppx=E@>w7$b51aT9gY&3uz?_NgHV=9i)>iB8$lqvXpd@Wn?+Io2(!!k$+Z^)npA> zOV*L~WCPhqHjy5(8LiSSWGmT5`p9;254o4@Aor1-nA@UeGOpcJF^@)7x% zd_pdf%j8pXgc=)nL+hyW8rf*GP98e$+8;vgOpAQ3EJ1sfzmGT31xq(CZ+g3*u$=`aQ| zU@T-p7D~ztl+NhWklhBdl)Hms;5VPbZQsHjjsH?~Kgpq=M?i_F#7$cy9>kM)5pUu{ z)JP4!#EFCHBC()v z!bXxvGO?49B!#4sQDihpBk5!e$sl7<{$`=aVI0XO9pOKnmQBw6+&1>j2W$BS>A3 zB4wdQC{xzsNL!4uP9jyELb^JGl=Uo9719*dA-ywhXrh5g?fa1fnrST3{#=@k)cpV* zOBT``nv1;BNk`Fing&~_g#6M4i;#NzksoH_KA8a$9Y;qa7cE0i6NfyqhTO-ffO=3* z>PP*l4^^WLzlNNJ(bPcAG?a$X`{+&@fa|HDS~>!Gss}l1GxC$0k9uVuBFIaOdv=lk zh642dv_K&g0lIHs3Y5SkLZsZP%JQ-)r6t8hg_9>0Ow4yo$ji+cpFK{>${d?9COvKR zsMM4so7Iw-5EC6`jxfGc;DmZZt}|~@Q%`PvPGSO_^z;~S8b8}3 zF@c=)@Wi4gmYgxB){_vE337qP*UP2Ga8)5C6&23Ax2|WVnV*t$Alwc z6B#cL=~Rq&D&-*!bDan}*=#tOFwoQ6uOTz*))3d?p8}E!Y zgmZd8S;ASduH?xbzG^U=DUS2(|xrkv>TVtOKK{e)SPE%nt{{D|5+yE=n$hXPC!OT9zOrSHxonzq62YiG_r|r?w80+ym5Ay zRJ!jCWM;@IB3a|BoV1>`4BT$fm9v)a+bzF6UT?zHESOT+R$lAKdzRv9X32v>z2HCSQD z!-6S01Fue{S%pc12$yRasb*&wDj|g2?u}qLV-2~pbB6n|`+pe}Z#eUK$L-M+>=wrv z?+7s>Q_H`^1d7du;TPlMDuz@CYhz8E*?`R|q|foJ&W+0;M)QVB(`-|fsmb7!iYpn4 z7CSt^98FRzPbmqnXhC_y2=LGrwHm;Fo{J zWh$7`!&bsHJRm{H^PPl|ur%5ir;WVM_}P>Jo|~V0PD&Ev=*t`8m0Th&FCnlgU%RXs>jU^`~*f^!S@)-@92OG;OPf?)b>$9s)Mq*p# zGX~r%g{X?FS2^bey$DJKN-tmc121ibfk8Mi2xJgE zihc#dukerJ82t}HH^~P0Bx@u3&yP6lIzdZIz`KM#K@+-iVU*d-J>i6{TQTZbMIVdFW z!prc&K!*OM;wb&|FUIJHo`K^2*8c8(u77Ai8tV5;&eK1g^>oqGEl;m}djHcWo>sP= zI&jK)ic_D0zNf(X6sVs9mHNr7CvQB-bvyf<)ae{>UUYKS6ImzdfybSX(}Bk?K2EL2 zvyRjK$6(;-#iO+7$hITYdZgvZ*&{$dJ~v~L>>Y`eIP7WLNkw)ArA^M>^M*TLE~N&1fVEPXr9pk+aZenDP} zJ{W?^N7#ePm3FRNfpf0MwmMAH@{;s5)ee0%=Kjfkc%v`FRGt1IL_z=|mn}$-9w9yYnC*Sy%20>T*r8x*Qdfa#XbSdUck% zPQ6mitJPL@k-9~_O?^c@q*i8O-3>L@LZCYU)o=`aoh+LYA79X~9KsDwSzP0UjZX6v zc9lx1or;Z4QeItCc@ki2)w(TPNOo9(GkHp-vp%eF6Zw@$DVZ-rhmlJFvbTrenDs!!tMn z;Io+8vD@$nIPi2F052Wxq1)TBe>*btzhx$59J^j1aV`?D*Ds!#zGhtMGsQ!8LdTb?U>| z^B%M==OKiIE~7tSl&_R5pdWC|y4{3x+z)fnnk7(A9)TLPI93l2HythKmOl*LgI4dO zXeD?5UN5W~`aAKy^%z3F3CG!qcJ{*GTQSb^Pj<)Y5%wq09$~*#@)a*i2iHu`P&#-o z-fTxJeLI-}A0eDuxN#&$@P#9C&jhr!@E=OTddhP=_Z5Fr@Da*{eZo(QWJQ~zPjO1| zv9egXQ)N(nD&~lvdGva`?YYmZ*lUH?>)w9e6TR>8(W)CX0h;5!lJ5cEPyJ&2{_G#% zU+@32HbGmd>kp6u&IASr4g^gf5fdC0d{0PR*uij@K{D(xylD8r7#eXr;?EI3nhr#! zMjkh(nh!-8qW%_L8GR_GF_y&U#QhZC5dUsMYoa!BrbT0EvwUS6nOtH2EM<9WQ0m4} zD@NTM-I}&Fou;22Q#R(~j88MYGP|=DNu#9)q?gAX9M_+%&7Pk9;rIpPcjpA>ROfW% ze35I&-I?pkGvrOoo1gdd1kHq)3DShh32hU4Cb%4ajyOlQquSBo=ye=)^gAx*OZk=g zt@#`C59IgfzcX><#P19Eg3yAI1%(BT1?ML9OgcE}*-7tA`gSruIlM5SFs?AWu)46V zu($A$!eC2@bm;NxtV@kx7)G38i8mFw7vSZ5Lvh=djvgWeYWxLBxmAzW_aoOL>73JaO zspW;`jpZxKca|S5f3f`i^1oFmDppM8rv^{8O?6D2KDA?N&(ytBol{@0++BI7^5x2p ztKO~py6RT-{OYyUyQ`n5e!2R?8bwWTjiqLN&BdCpr;%yeX))8JX_eC&YWdn7wa07E z)n2Ooak|g+nCY+A_0%1#d$#WFy3gu?6y{+Ah= z8TB*XnepvRIx~1?^2~`dXU<$cbLULw%s^toLXA ztwGVy*zoD>k7v6Y0~#%jd5zN>n;RE3u5R4gc&_o6Ikq`V=Jd_^xhZGv&bePV2Q^P` z-aYU5ym#mO%`cqa+A_UmYiob&Kf8%?O5%%`hhjYYu;a*x%SYygmvGqpT5CoL(GQk4b>akHuP+`XT$d! zTQ_dpGCw5H;>%BeDm7PKlhSeRqxK;eOoqeoxXKo>xbJ4 zx4paV(zY+Qecu<+7uT2Em)`gC_R{Uu+aI`xzo+aT=e<7nuD$oO9liHO-FNZ64|guV z-|PO-_n*H1`3Ic4Dt3Li>*nqidlY;6_Xg|@-`ljeb?=hB&b|E)Iv?zR(6z5(-{JjU z`xoqg=Rn4Rw;!7H(DM(y{?KO!S0CK{aKghQA3pl81@bB~;R=TG!c8Gma1)1g0o`)c^B6|e4n^_|xguT6Sw^=oHd zbG@GTdf)5czrnu|`o_pNCcV+{=JNBE7lJNCUC6sI^Fq&s2QD1CaQec_7cO3KT`a!1 z`r_%oDE{L3%g^sD`D@Hy55AlJ?(X*t?{&QQ#CyNI-}wHa4>TVv_+a3JcRuv_aKVS) ze-!c2`yXpR&iJ_b<9j}S{^K7$iTPyGC%ZrS^inXP=#3(@0poiddc-Uzfmkz6DS6fP zg~QpU$fEIm_rS&NO-{2B$WShEC*vzI3#+T z2&}~Y8^?v?(mt++(w)jfN~+wM#^>`@D88k@5Ql;XPd-Y7H^h%bx=1`E(h*{;NEIS{ zkS_u@d?dmm5n@Has-+@Sh#-pa@DUMKi%=#uh#exgNrahVn@DrSGLc4z$s*N?Kt=dL zgm=X+M0!emS)@C}M?~5tt`;eKie`(T6(hxwB8MFpi0D(0d>ij_;#^+&ERyH<4jW|!FW5vnC@Oz3d>O1jQ zk)9VXi}aZI96lo@+8krV0GUL1p?EE5Gag1=JS zCho`j3!)&2^&(Y^dXXwy0qW2jE9~VdN3yJgZ`ans^xE3mx`p_wYio;dYincowY8{h zEnFBMk2Ue`3RcN_EnGO<$6b^g7h0#+#@Ak7Xt!QZvVn=Sb18Nm%-Ioi?$wuJ3-{wM zE8jrnf|9A+tF+s_rld(S+BoRufYYE&RZm-KHx*b$i}B7$2PjX`0C>_I<6yaD7!m5A zHYIc`LD`~Mso19AtcolJRR{*OVH9jW_VcyLU|raDzINfI`1o46;D(36M4Pv2`&~=7 z==!-=;W<|>JSWqch%v9Z!cz3p>dE`k`sxu-t%DpN$nl3%f5-`ksPNQqniB|7fvJI% z(|{^0RHqfST2CLfpTCFb@1@~AcpxK!grJ}hj#Gx~0|FI+f`V77Jb5p4afgNT-b5X$ z=QX~5x_}Y9uf`iLdP9-#HsAfeT$XQyMX=Oh2aXEHd`?F4>+UF$eH|EGNsrt8U5`XOLnX` z`g7fdz`MSzTu|Y&I?e>A)-mo(V)m*U2BF#iuH<} z3NA0JB5QpXH!`Xrsw0XsQy38fK@p=ktEd~t8Ejy)X_CTQ!eU!Uk|Bw*i!G@*sWnMZ zaY>9Y!b}d9OP#&}jwHT?lQcmNE~7uczozVUyJx4f}V+h4H1t; z&=1DJp>eQy9As$5MR=sfCaK8X;akFKa5#hq1xWsZjsUgJs>{;V>3H2JvE90Ze}t#4 zd^b-8UdNa7vw7aa6JkwHM(m!yo@}i>A8)tU*7^me-9~s_ZS8fW#Ov?JU$@4`*G;co zIQZ^$U%xbKTc916G09d-hF1nNQVX?a3q+3!=K_7BEnLdTOgakr2XB>F?HexWv_4d+ zGr>p;jrPstKpRd2eSJ8p_~;)IM?Ect3k$WAcXUjU+V|BhZ`j_Lt$jk<)j6hZPNft% zy6wc`<#51S(wshS{^Yp9X)$?qqZ|!mL$u;EkD61aO3?y_82yr`bk8hXJ|%%)vqnfP zZZ9xSpX=!w?-L$7y67&)HWBjV_Wu z^rPZkVGG7T0x_n6=TXSJlIJ4rdM#ZVuqlAX^$&e5`KY`c<{-Qn*d-XNp2XaDIQM2< z{IEjFS~+$J2-NCy{X;jUvOrCsE>K6JQ%`%ah(v-W!H~d_1Sx^K%f$)x39SiN6K*D` z5~R~%rzW0ON5hTip=cT{d3Zabi_S#!=bj1T12~;u(iwICm@|Su$-4gI^{gy*1#A4m zHq4RR+6I4QYlWOQdbF?I*Pdh>wqDV4MRAF1VT!O&wo3NoaEfs$yBTw~Mz`zPLYX3b zur3_?WYRz0E8ewF?a0nnbmm~5{Og!K-0lZ|y&|<$Bqf)3WRLGCPfDs-#Qzcy zpA{1)B?JVa8<6N2E>-N)u8CN>>gvF?dEv9WWW7<@xm zBunFT%`J@W8QvN1@-bh#$w>gf^ENw&0ook!`D+{5f5c1=z;^)S5skZetYL0;f z({fXzxP_C;M@MTzW!rAaDr~n4XZ39>{sCQ{hA^q%tlaD|$Iniyc|sMc&kV8wXn^!_3^a zT$-AjmrJ>cw%ExDQGU6iDyyU~6b3>;9hwzNL(5B40rp~y#${d4!nLhkczu{l!CH%~ zS-TK#tyU{zL0ocQ2LuvAtEZ;hr7MfqulJu2tj7ja0twV zQGq_73L{HLxEEic(*^`)avUI=0=#0% z*VX1Pt4_{t-7zKep7OCJVcSjf@=}_U3}b>r3tT%xY`Jmu4d&2s9TmwFs~*W-xXk3Z zD?gzqXOvg=*kD^!V8+~SQ;Js2onnlbTv%vgWESOU&MD}eR$y#Q=;sfW@j9E20c+|L}Tl?mI)n(f;cU0YkSpV=SRKZ9S?v@65&o)Z_ckI{{ zfRYoOy5)) zA78m?`V%vHtK+D4v+LVSbLU?E&b4{7>w7F+`gX7v5Fx}3(cqmBF~ubx@FbMN98Twf=Gr`JZldd}MXUmQS( zh~ww{_46QBhPQ#7<|pv`Fy=i$vi#K()_KAu9(s5T=pR)uHICAcD8_3yVuA3Fi|;F8 zlyU>=?81|%oz>Rbud_`P;ljc&EWRdRV~P>wtWihz-|MP`!}r2rTJI`@eC+3Qf+K^_<}4C@EFmqR+`#{5wf&p>>I4P zR2z&_`Q3tG$_tUCmsdeTkk>Oq4DDnxxRVt@RfC=Mz6c_*uhUXj2W}x zQ^W>-2g9q8$2`b%$zTw>(UKBX3uqs5lNGiB1>hANLn2jD6ahD-U`>D{2c3cq0*8@) z4c_sbLZN~VJkXJKJvqy6kGI-u;{k1+K)bcpTB~6?AX_h^uaIJ9l)M+_xL$_IhhXY1 zKI8MFU;Y}jOQwZ62#XiuJ%&6aP448OGk9Gv?b7sU=xj4om?0LUdUK83ToZ(vV1y1j zL)L{*MF>QPEs#`FRGdRn!8R4B;=277_;*CDjiUZhOlGpBACUCnQ4XSt+Uf_>{O0>D z_v1YLg8itUcYBZ$qTJA@WnD)$to2J{REA2cRbHZn@xg9>yuIJC+@6vtFu}$Y8D(@P zH@wFwlt$eg`@IMEcNazG)TO7^O|&Ze#q5rU=goa&VTQfDwQKoZ6+!gM%FZXZFJHc~ zBBLf#AD&S)#&^>C+3CqM`=(Fm?wCJkcH`VMh7w$#LZrnJh?6noL+QRQJXAIqR^x$W(~yxC{QS zEXXz(Di_1LAye^DD_~fShZLq6ri_d-MJVn-FY5W>96us!>67hip6o~$pH;T0?Ts_-3u?x!TeJ9HucthVm+h-sbacKw!qHM#zM?c1*3Ece?x=C|Hs$+{o|YZC zer;i0ir-${sOk9&*L1b`)b`XQj+wo2a_0PsObsuNscdC(z>4%ZO6H9~(kT`1R>Lj@ zY*fHH&3ziWNCQCuuqa@Cz|H_JK#;t24xz?lp2srO>QvAYsL)errB_kXBlFnMYQIVa z6^i|KRX_lEDinb1l7%L$6@@)x78JU&{I|y2nXbT4il~w0KcJee10PPwl95|@bg+r8 zd*M}AAJu4eD%bsjzgDY&A0W&15@hvqXKqc}$}JYcBF$cd->ZT{f>{)^6zM1o=aN94 zl0qxI8@<Ndgy`27~8kWZ7fJADvvXzM$eOM^ zT};6kQ+!!h(YU*c5;UP^E&XYiYn(Yn>O9DJkdmfh9*o2@XD1|EuMWBbdID&ba;{QF zUl+%f(FRJ(Obw8MVv967vw*lT43BH^H4 z$&Eaj(`34dXZkqumYdPsc>8@fq0DTS%`Z33{%vm=F{b@!%d-BivAL_CTjW?Vr!eq% z=(3WDOUe?HPPNzXZ5jJ?q@y`6siDLkQ_!3}ZjK`g&NrW2Ibk|RLmzn_LSL*8AHSej zUsIB|`JLXHy3EeUTJsl8Nemm;JgIO)LwaI)7n5sqWm(U3yBsO8%d^Lm&P9Q;K%pST zUZC+Zpo-#Ihy74|OL#P|8%=29)#0rW7~3$8sYQ1h8YoCcY|==pRA(9)Oh=)*#CtWL z>Yng?@y64$2R-ow^NoY9_gsH*y>$8rkLe5HSJ7dvKj?@<+d+2p~4_s(=%sUF{%mNwbi z8LXV#IjkM9X{DhU9hRapW1uC5(@kUc*KP5@R#{$WmfsemZU@O9EH4zB+#i$(|3BRG z!D*dmmM?#5ahkPgcIuegEMr>hp}X3Tw4@rdYR8Uknw0QqNM=L+gqc~P0qKp!<#R^) znnH8hD~eij@pw&JNoi|N7;LJ(e?eyEUH4Z_UNSXB#AIthE!LzE-T ze`I@IP)iUE3KHVlBa}Yvfxihc6k)z;sKdEg5Iwt^OH77eM}G+Fl(NwJoekkPt&ZX* zhdLdaYQI~__T+z8@cbsMePL0_>PAPv@zBLJ`Af@fRF_{ne^mXR`D3z{oM`#(hjZrq zd3ocS9MPt{rrhK?Q&Q;V=UrbuKi!zuS`<=Kp4)S=*E-Q2lDquGyt|ysvR#jyDC}t* zV=3<{n9x;akI0h)+Z4~NqW+Che-@uel_EJMs^EMdPbI#Xzsld_v3!81Jk!8=^ox_d zphh+CwjM4UD*mX6GmrLjue|aKH}ArQTlZbKAg`Znm*Ci5Xt`F&mWkwnriq5xCf@%i zy|RIl#Vi1~iDDmQ*!~wI#TUW&-B5Yu!rt4K$_2WY0R~zB1c5wW3>Sf_-R4#8 z^-pWrep<_fBEFcJS%9elUm3=I&QI2e^8;sJETK{evw z^WD3k1s3dfO+SzOYZ;PUH1fF_CGjRHr!#V0B<(b6^8*Zu5d!r_W zKuA!Xkw^MP)qe2RT3=buM`C8;)*YQ;%7(mgGM4pGp!-7U)--<8LQyl-@zLhYqSB(Q zXgEQmGYg9+XP8lDjqiQLr{8n@(kHvxPA!uLx4puvCd@A%pOKz3WmIlcaaLMdUgelE z)3OY`U0!APwT>G-XUDG(vd9n9F&=V#saznug=f**V74^W<=f*+JJsvdR5o&!S~pp# zY|%7E!K^%}$ZgD}OvusvV3;_%dUW$>ZcHPTW&9 z?N6df9o=K!A*Gs9Ln&99@SY&dd*6T7`(cq`ObQqIbA~Wmm=wnOhxvz1PJO?M+&2Lx zWWPTd4SjnpQxaK#r`FfbHa(QFNZ_~43U^Z*+7z|P$!KEUu_?;C;%z19P9Z#8#!S{K zhc(KSk*T9hcS>XQpV>#*Ip&BAa9bg=s>$E>OQHi4J)DtIvVl$`?a6$ApYYpeDnBwR z6O;?aFM4#w=%VBR3W}iI+Rh1OcbCLWSo=&{Mty#&pCWp1hreHZROY;*#3>K`ZSVTe z`!`RwRXqCleRIz|uq0tr@`gj_T3&R0^yb{GMMpm%Lw#>Rk%BA-3@`2V9D>B}q0*$<~3^Ri7T5 zCUrbC@JaiYza6VL+R}nr!?Q*j+uw%JBb$L-I^CVO=yli6dy>mCjO9I#PhGMxvvKW& z$YM8rVn|0QMf*WXwBRSb-AEVF^^|M$U*x~upPLIyVH0q3wM(^|v|PJlje^crz;dBi zpv?kw;fDzLg>4n;d|W5Dj-#nu1=q-N)jT+OC|AM+C4Sg|aT}sjm=!4sbSJ=9ik}oT zScntS1x^&;8{wY;SKLn= z; zS(IYIFKsMF6tN(e(~$Dq`WMr^ZvQY&$YH2M1Ph1$ZzX5sw>>nt;^3<^>m!;v_=F}b zKn>I+r#h&=V05Ve1Z!ttJYMLQ-%_gAzbQ zC>!HZ)xn9fS<5!Xu&#+m6Ml2-bAYBgtH`9XUg<9K-t8+?+({l7+2QeFq9-sTUG4Z3+?&Ks*+*Ly!-1CgjLaHtE$H|m5)_>q*pJd*=;jj z*~YOIgD;Mso)PNegEAU$8$z2*Sc-c_GJsP-Ky?Z52!Dy6>7CdosPxH7^%ot43yZ>f=8i+rtL79xUI2a zJss`{eBCKXQkfh<(~RSSmOOK}l)LJ=&e9EcRT%e1wcdYr(J|N1;}tb0fIM;yEEAs6 z<}_~Ne<|K^aplUtK2R24IB#5G(Z+_fyIujW{f~mjbF-a~XC&9;#UXznO$oD+ro8ZL zs|G3WNDwRwg5!Y@5*QyiCU99Ge?$Wznt06^%`y$Y3_TniEJeMhTCyT@gmg{BL;YVeo&oWuSD&+sj=4 z4e2c}^c2zyPS@X`sufn19C6(`z3t7_V}CvA*!nKhRTxjW5PnZG`6(qb7Lko(v(gjy ze{Vs=KUkwd1Cdh_gEy$^R-%7j5cxXb#5%^-w@DgmWs+uVBX1n&jzm8s0w$-!eB!Np zxa3=JbN36Y_PR25yL9Llb-#N%zFQ=7pCNQ;;EZ>WgHnZx(MP({%b`-C$@)8XY@Wc^ z-2nV#FAJ5Mm9QU9pac90s8k>YhCA?F2|@e`2$t;rz=I>`6u%QNEBZb_h6%m?ctC{n zyY;uT+&BD}gFo&Y{1bwPFwH@_KY(sDdd~0PzwlyW!{^;sf4DdN8~iUWHgeM`fYluw{{z>_111H zr>i-E-$gQwSB-Bp*4;$u5g`QE#rkXN1e>SiN&7sndQwkM)OoWQ>1%FVLrep$y^cij z7AjZP;9=J<6B@FmiaGoFkMv{Yj{7Xq`<;>CQ7J6gF}%CZsX7UY$5)^0YcQP&&TraO z+5N)uvDvF%S~;b6VMUm$hL&4b?t6aTDc4UYtLSSo*;^`>O->zIo?&#e#;)?v#8IKH z1Fm4()a)q69c(X?*HvIKJ5Mr43iGU%RNL@Fy%YE;Cr`Y)C2x?t2fQzOU-jlO*C7x6Aw60hQPUTf4RVzWIREocEA!$fuY*A%mLnDQGwUQZkAf=%vj~(c; z`|>je6=%=VU(V7kgYCkq!Q-^-mz6SHFCcKs5iX8&NqJl~A|C;UvCM^ik#P0+Wg&Hw zI}48pN^*h)v0MW*qAA15b_~%Yt_UPvQY7mY+dW4midg zS?qu~8m){57vjMtl=_S@?7lCYW&4v1lVRw4t_fk%k>!$l6NS|REc1W{MF&Rz`iHJc z*@zwDWALHfK7Bq{eQx^jK0cgpwZwu=^=V;-9u}!EwrL4U zlJleI?be=@bp&FJ19fx z0hH%exEwrU*N)!Zz~Q|#nJE*a?Kr12J1Q2;C~|YeFl%6D1f@(OOo`x22haB-jXZX3 z@G!-Hy@OvMp=8pR2lw9k9GAsCC*F#463A#NM#I}MzJ&y8KoYG-%mLo7v#Wz;ms#esX&&v zDTQD~4DJsatcWuh&3N$(#S4ZS!;vVS#2PurN|sAQ*x>CI85xo=EiMv2N2Bi&*o+6| zDgLnx6|ro#K!*j!Sl~?yoVI|c1uh)3;K2YeSU_t5Vu2qmaM1$iEZ}5a*IFL2aP<}_ zvw$S`(^!DF!2LJbk5(@3ZkN|m7scJ60D()c0nbzxjVBoOaNE)>Zw5Dh1c!TH+VQV6*Rk6WSU>OPq$ zA78wEL=o%V4YwQd=;HACM%Fak$fA?jf%&(vkc^zk)M0k)K>jiR22!stT2ZN^6iPhX zfoFbD3yz8o2n+`uqiMjiTAAD^3}Xlt82aXX)ZTivYsY%mHifrZt@PCZ)*k&87Av)W zYL3(Bv?^%*2Y1}woM5-vljCPZ-;%fibxfi)Fa zUzJj@fr$pnMFIFvBRQHf%?=HB6#*q0n?};KY6dhH@oa{q14%cayQsU0r{UxUL2>Az zoJLd{m89a7DjW`1DJuDQp8tAN0WhJ9qR``U{7#=Ht9G$rf8bpM>_|$Ao0Z7zb>oAQ8K^IOfcgT9 zWzUx;)|esK45ArIji5u3V}!C0(1k!vAdCovMqg<10#YNXwSZx3Lu_{}4X-)jan^$x zJV5QCM@PztIyG;qlTU{+UmVf|+wcFN1Y#}ffeQY%nJjC!!|LE23b61&-D%gYN1t&0 z@RhsIX->T`>^l7*>3Ih%?Q70 zPftR8ZTR(5y>B0W0j2Pj41Is3Tu<#{unr71W#j#G2Xbx$XA6O38R~RVY3o;QsD6qP|&sMP@f8O zb$Cn$;;LhrFT#lj4aRkg)hbEjkJi)3YNFTZB|WFq`)m9I983H+`aj^$jq!((Ov|uh z)#8yGM&3V?OCJgTBL!<+OB__iK|vfS;vg;(^~ib=N=3-Q?+TbiVh0eAbQzWqZ|JjN zf>f5VX!s2ux54uW!`ynONixj3hDi4z1b2Kn+JZ+s+~-*Dv{VAa1^(yUzE5_#{^|NS z<{6*#S@$%SZ*5G=YTH*oX7OG1c`+q@=i1gh+dVn(d7qSuWm9IZD=}rw-&#Cw)uK6* z;$dCY&b!9;KVcqKJuWgVqb@tQVsuo1w?00-WL{pwwrO#(rAv#A_Ttn~Q$~q3t0Xnj zPmPUbZL)r5L3{W#(z6oYMYYQPWye27?l}?i#VT>BxJl&4u#Y%Ki1a5Bc8PC@bhGf_SmcL9xGKU~HefwIbU@^@ zL@>x;ph?dAKsA-9(x+8DV5mcBz=LFjM>Yj{17N}Dx6p2ihu|R1 zh~ZciX}?X8y|u{&e)>i>^?9J^$se zA^ewnhjsIPxR=M`+K(U`rLpoMv?^{c=MHe@Y9QAGbZB__75g3V<7|F?emDKNZGQXx zPM}Xv_T)$*10fefu7>a-Y-*9Hs;H`qlP1rBc3(THmh9svH{1terlG$d+PmF_D zY;)M6U5Mf6+Z&$1&U&LxGJKR?<& z<}sF$!j*Hg(TR+IIC3qa=mhQsScYLbz`uwThkwXE3{Q3DEajRtI*dX(t{nwuIy^KWisdKMK_10t5% z{OS?01BhC|>IZ7d;YU*Bf&%4{^mmvTMg%fe5U z@|Pw+r!Op{n<>qw(BZY#i{{}Oh47wmnjc;jJ~y1})UVUi3Hqt}IeKnuBGe?#OI()7 ztt#hX)j!&lxvc~c+nfZ*`B@bqv_42N&R|A}Y6^=5sFo>S=IEB#OC zXbM;UpH?e+Su}J6tPP+6%IIii0H+R4j7v;U#I;L=uM>Yxq=}!Pk!S(5o=#X`j|H|_ zV3`G4EKp;CA~c+eEZZz6ESyEc&!P+#n}w<^AX)?se5v_|hMv*9s(D|7mWE0_TD?TQ zQT>3rU#;*`OVZGYD2IBn?S9(_HaxqZXREMrfwpKHRoGyZZH{fR?J?Waw%2U`W&0nS zD#`{*TcC};@f!C2FB`YS_JHlMt>4DawLy$+v<;VQ1nUA{+u$P`9Jak~qq}U-V}nXt zla1!HAwgveveEyt!Rt17%zYPQbJ#Z8gk7(>`)!m*6|i@V4Mf`r8~xDswT-@MgWa~H zwr6eJX8aatVEIZ%nhoM?fN%7$!9Q*At^CqI+o0bDn{2ymM;L&BprzX;+Ny0_tPO%~ z;AMlRK^uH;!@pn-Z`nW^dcg+AY_Qh`IPP*A%(KBX8x+_e!v^s-2(^Ky4Q|=sI~!cG z!J9UC{&s(|#Re;FaF-40Y%tjdR$G>hhS@-E1AM~``3)Crfa9OA!Gku~#`@lEqcw8x zF*ZoFL5K~!Z7}**8(g=+CpI{5gXe7UxDEE$V2cfw$-@`eYHSo|i{RjF5geQ?f^%60 z2Zui<55L(4cgx_{%HWT+0ee7i!_bdyrES0MtnG?z$fh8O^c-awiu>?HPW^we_9pOA zRN4M`-CI??rnfAebQZch`_f5=>>+eg0g`kGkPiC}LI?y=b`((wvN)g)sEF$fQIT=R zEoufuXOwXm9k-EDp6@w21I{r1W=0(tANqSfP4oYrTb%`D=DpwN^KZ0MU3Kc#t*Ud+ zJ@+i%Bj;%j_ZIgpU_77M9(FUkzE*=(pBC1X42W?p(gAhpJ|ypTS*{EI*laLjP5{~9 zNkfFOjlsD?P*bBwER0Pe;t>53ADy1|(N9`~l+&a_vbjjlP}J#ksgsOVy6!uTd9GZ8 zF07#qEa784r3L3jAAc65V&vwD^*lMY5(Wj8T%CX)GNcv-u_TnM|L4qktH%--XN$9@ zSid?Gz2db2m)B~uI-Ewk!(sUHxi8@+u^XKLvP;QueEpidHFrg@x^_%;X;<#I+aTVy zHC#V>Ohwc9^!l;Y$?{d--kDroSD!wR7m_9H+6hYou`8C>w`3h@QSe?Rh zt*j03ZJd_$fK;2#;R&na+zeg2K$bf!G#{2*5E$mR@C7C|$;66GbtY~$c}#q&fsHpX zIoD8S;6_8TfyaGlW5;dmF&o=wV>@hYv5if)u~Hk$w!yN(&Wn^p5cJyEej8h3W1VCs zW)(K(v@ylT-a2h#CvB|H#tzw7kBx1xv51XLutBu4L~3QaZHKMjcE+YEwhCLPZNKff z?YzzK!0@(ewXrl?n{A8jG24eW^%mQUwoh%cVoL=51e>yQI?mc*+pj%6 z40Gr)>p6G?gta4eRQM??+h=84t&FUs*!fedBW&eBtU0F@IAx#APs`_I?vnU|cOLCtYf!9u?zaeI(E~ zjT(#){3RRr&_@id?+}Yne6hHS9UA=OH?u4=S!T&NJ3Bfj8hMYWL|yN(@39-+i;e;& z-->~I_(%Mafq&-(14{-ngsxr;z9oIl#HVSAql_#LPU@66N7w~a8&p zSlA&8J78fqS=a^(jNV-qK90=Z6&43&+(@TbQ_dA6>80vca<7a>$~VS~LsCbEHhZv#YzBth=~DOpI{lmb1`-sGOJ#O;b7<+`5B_X1~IB&S$%^< zJ91-de}lheMGT9LPbl4smKzufv{Vo*DVtv!_~X0m3HI2#JUs9`56iU!SMY=S8om+h z#fQOzX84q{I+YE|4n@97zCpfCmgmW=K(3WrWqFV$`bhNu~_l4jWnZl&=Y zj|d^7NpWy5lwb|qst{op1maIS04W6 zhll_>EB_5qV7vD!GatC+o5LjI?}*Og1&Dt#N~5(=#!}8sW6`Djqk$m_cw2y;`u z#PZ}zWTKN>SIC6VkyeK%k^nab%*;u5u)F{I*XS(c#%*8Uwhe6#=LNNB`PX8sa*6VS zXokQ|H**$Czm%PlOj4-_l8EfU&+Wz4a5`2$lx7#p6rzW&k}2r!X!j4<{jqEz>bo;K zi~T6pcQ3-?*jel}{zF6LAoBE2Ao3qp+Ajg(J)-k#2V#A%EO#N{+~xf1U(xWaZHD#R z{_7T;Zs8BgFwY=!|37~!r63v+S^j@{7Jr4%2x4QCx=ZB>9onqy24F#zq1nK@43s|p z34-+uZbL5i%rtZv4Di$)d$zPOOnBX*k<+>Q$E2H!P!T~HiYjLn^-K2@`q~}vf%O?C@M z;kNJ@eN&4Y*A(7wVqys5SdVsXU41y-lxf1E)x>Jf#X8n!Vx8zZHKk~#h>2&LDq{Ed znCV3mr~BG(lG~`ml#BMM=^OEgaOXHR)`!KWH6}!s3g<+`q?j^c)C96H40aG}l(Qcs z;~BKv*c_X6a@vR>iIwtlAGNM@L5w--3U^~R3gTm|1ld)9Z5$KeN;24Jb6aOGrsui?&ou+G)eGe3J2Z3m=*^?~<}8Mc z`O{j8(GuP@>HrKKX>-yzq2BOakUSiM>a^B?gUG|}^)X*%PobL7EX6zHOJTTCO!0k{ ztf7*vsoYn|y_M`jB|BDmx{`ZxA{owjDK1G3Mu4MC6Pidhp-Fk&I`C~QPl>EwF;#Q{ zbNZ3-o<$xI%5)}6n89c;mQ!v`yfDU(aCa#g(REuMF6X2}JPDsC>j%FvrRn%QFYwn6ossrZiJA7mW?)DW6B@jH*uZxL3@Leir@Xn%?E5 zC0&QF-SESuMI~Jig9jP$p!^1SFc03Zj?GTCIhifZVM}G^Yxa6g&Ans?E|6Nhu)=3W zQoX1=u-A9Wr}%uSP9G#gkLiTzv`HoLK!T#jbPPL;CX*VmyS)VnnT^G{fyxuVT+JAh@vF&N#(O~zeDC81d>l=jA-McQX& zkFUjRV21B7K~lVA4Mt2(DJLT9Oh9}kni&Sxv4K@0xvo%b_x4*7g$*JPvl?1HT)3{S&Vgum8yvb6Fxw;Z<{&Sc-y$ z0A>0nAul|($ZW|etxRQW#QR@<_}cXcm&D$`E`w6={?lRnyizNfo3#=l^rKde;$$@C zrdG2#twr-@uzkpJ$?M4hC%BlaH1Am6i99)v#7qLj4BodC$;nZD5x0}xywJ8trXZk; z711-eINwY-07txc?uxlgG8p{TB0ZKRX0@)1Y`o3$LszKl-c{$mnY5#?^Lx*&4!+>n zcXRR5>0=c3e`oAnUb`?{Ts*He2%~7~J@4(Pn|=Sg*QM-v><1YWw~|AO0ViJKW7RjH z0Y0c%WlMsk+%n#x*botTT3ZP?lvIb4*_|FIYgS?MjpyEsU`Bh!qKvH>dovDZ7#$f6 z*nBGE<&0AqXETg-i?GG@V{(QzvooBbXx+?84SB+)m<<)?~3h^e>0=A%*ru5SFVzIZagdSGjp;hd2{maWW|u-&e)W(D?>2{o3*mcQajsf zKV|3kmL5Yh#er!Z@NKB-*cJr6T2g&LKIHGTFsa4YvahADMTwkhVaHlndkgDn>22YT zmS77%(Q=Nqn5n>#Ssn2@9gUGBw>eU2V7VAdq?rT10Fw``1RBU#CbR+iOVV?2E?P^I z5uTDz3UuXxk<&Pq85Lp|MdQ=3f~AR&Eg)MjO<-|F{H$OW}{vI6D;>9a&!0w6xLd)s{@CT0XTbIxDwj$=KAkj?A`eXFgfb zHYTfS&)YZObmI2O-B)<(tMg^Z-PXKsfAyz7%df6|u&cCm`GadV9$Zpb()mNMBlz+A zV2Qs&2Kl9{j!Gsx(QJgJTAMXwFdmG%fDFd09x3Zs)`_gsS<102=E!0_h$R;DIdGKH zQ<{%?0F34IlzL8k&UsXmCsp!Tlce~F>J+n2IaVLwt0dJiW7i#m>nYKXsMPZq}B!=J)qQA!72j>d9rvHOp?DJ`m(jHmzvN zDw%$5+rUlgThSZ+<7)DZxF-(q1VkL-o+uw|y=Ie*%~(KEe3@)gsON=ADPhF8nRSQS zDKqOcA2aiVX10c~1H8fqch1ak0H|-rG*@O$xLx@0R0pc{Ov9=Qt2c;KGII`UilnlT zIg_&NMKT%gWp{snzv_GZ@&7)pjQQqOdfxoPZ?MkN`!% zK$DzFz9cP4F(xIYc=mZ%gZ_N^haTLcRe4v$y(;4gU8eV$(N0+e}j%yYscH+b4XE&DuduQ()wZZ!^{plj^)aPs9J#A#^FL$^J> zeQNlWhf&LY9y#ct^XZ(BN2{y}ukrMtcYPj(I>9e^m`BUX4Wqy40DjS7y6S0<>h&*ld z)YA|#TkY;os#*}vY)rRh+j2*zTlB|1w|?c6Vnw}$D~UzpOO!{5-}itOWblSn`bL|6 zJx3xe+hhc0V3&E9`G8pw5q*^9v00MI`m*05!-|6_V{4&_$tJUN11TV|6;8Kqu{k}3pNG8V`6iwO|7+Q(`JSj z+j?xhB4k%RMb=vVH)466FjQ)>gQsohY-S^1IV_6Fp-SLIlH&~xh|t6kTT4%Dt*+w* zDa-=qMiH^OXq`)szaTlK=M9Yv)Rar3ckJlzXCJ;7ZDqe>IwC<3KFtW&|T;g(cpL@ks$z5FpBo{t8e{x1--lPp+0UFbb~tn%2BBh zF`5`QKAJc$U?Z~*quf@~{6X;RAU_gh1;IH;IFk)Qb~tz>_gJ_*}e&}*FztK{u+{B46%Dd?3NJg4s8zcc_G#sVnw04 z5dS*FJ`J%CLhQ{D`}r^t14%)sHpJ6H%p78Gd>Z;D#JjPGx;Jz*^m<6e;mN}kdLwix z{^DR8H-zBe3AKghg{}-K-Vjsh5}$_nQ=ykb939z89T+}r4YB(!P+znQ>{N)MnWw0~ z_lGzLsSVy9Vs#;w9bzE;G&D?fKee?t#5+T*EyNnAS>_0NLtH1?61pYySm?!&vRa() z73Z&fF+`n_#Wkoa^Fj>mr-j%z)bd%nk2k5WtTVKq9s+e$#x0zuPCXX-FeKxoD?_Y8 zoa6|x+843&n~>ZaVjJib{oZ8#a&#>mJ4D2E%UePU8afeTd~s-Bs5f*hq~PkMAr=fV zNlOSZQ)Xo(-{~=6PET+IZNyb&(0av0PV+cEG$;mHY;fkL6+J#NIey9B5k~~Uh{G5A z!UhkB%ZLW)OP~4hO&{7p!BL+h^$LOv(Wb-m9ySHKR5{Ix&=xK;Im%LEa8h;c{Kl+j zNfn^LPA;d^v|XWX*_$q>jE!_^Q?Hqn{mdX0f3kgLV_NZy8#)GVlc#02jW0E-f!aD8 zuFP0+C4C3x-`+{nDA5&7zj4~YZTc9K|Bf-1L;64_#un)VInW0rc2K&2$u+M>6596Z zJmpv(0|H-99utbU5BdPc(=ifXB(+FdVLZiNi2gprT2y~3m*@lk{Bgkd?viVhD`qqZ zJz)6eQ|qU$Y@U15^t^v{tNKlfxtG>kN(S!DE@es^w7Si{-9Ek{eMdSc1QfnGes?@S z5O+9^D{+Z&+-goUbE}#L`y@qz8LX{EXmJX0{b)U4AEJ* zzsXXrG)CI5IlF5%*YNJb&4qkd_JM4UPM_8iFf+A!=XiOmagLGik`I81Mp_#1F30wa zPIoj*PA8&-&p8#7vu`YG7|Yg--8Ytd$Fd7!*|D*w$MW<*B-813IMPg25%qszX&`HZ z4(|Y4!zd`iLh&2s`pZ3#`~~-}+3;iuCW+WW^GW0Y06RyUx~yT%y$kYxo>I4D;@Fk# zC1h}DTUwXGGq;>LFk^Nn_m$RVMCYi6yl`D1Lb%Guq*k;BlOngjy{+?sRW+H5e|$47 zI>%fM4}-owIS0PTl&Yjhv}RtBSWiuF4R_Q8Yxs$p zbF{@w?lhOvnjbMZGs<)TL$T)g?xJJFf<4AdDlOOJg<&GLvJg?~B7Pk!4;_#YDs_yt z*qPrP`_=2?mv@9bVlnXqSB2Szr#4Jo&YT5pSB`6163R#mUC~TWGZCh6H=>c!Q!q<< zLRERPYu~PKs@QX>HJ3ptr955gz|ST5s0y+XOipt`tXPG zNl7Rg6RCCQTjNVd)z7L9tnU!AlyX>XEzrJLncu|h12-BLJ6VS%u+GDl6r1^9L8R@&uNdS zi>+&{yoZu*XvC1E6DdRbAGm{|0ttgB;R)%Ho;vgt8K#DF`i1U0ywW7&r$CggqKQM~ zq5+5!X=$TW`AFTGhr1Wvy>4>+!Q_2CW3FhyYYb+hzQ0Pr?6*hHE-hcm%w;T$hi1IYP>6)WG)y6u$ADkHn5+eXlG@-0Y`^1+0>O1WNn0I~iG ze#M1XySE}nCC=uSoy}&`UOjNnhtNI6sP?2VhanP2P+n$7LQJp%k^zCmBGU^vQ^^97 zjo_6aT9DT)tXP#~u&6FiDu**oHv{v+f*Cdcal?+vYk&Rg@`lvW878akOaAWmFTU75 zFk?!C$)MlEPVmR4!1>6LHfv1>WR~hL^pEk&9(%JEwC=U?m#u8C^`P~FRkr5!u;x?Q zXS2DK?aVI4>s3tIeYypzFYjC)zmUh)#O6dB&56)R+zCl>5I@$1VHOP=>y`Cc!rQp@)B?(fme zq?FP}{22N@_-jaA9#Ub%`VwI*Vh38GIF`XwDqLZ$7>NtkQd}rSSRrF7p`0)Kx9By; z{%%Z2bQuf@KzsY@WpJzJZkW&jN71+jH-ANp!3zV3HF*oXStviPW&b&ujVYK|z^^OV zQ*d8_T8b+1Xbx~sfSnJpPXg?CfE@|2djo7& zfNc;YwE>nG$PREr0C6&O>X867q;$tlH3vKajx&!2*vvpzU{^rK8AWsw!zpJ1?ES%3 z9}2MjqTzJ`)=AW?A}}GqGY4t!{VKp-3A`KN{Q-73z;*=KChB2lfR7_m<__crxDsH0 z415vbCj;!&06P?5cL>U^z@`A79_vyz(K1k;4`}}uyQ^meG4=02K%Nko9^h4j*X_o2 z{}^CsQNKBPLtqCTZpQ7%Xv+|A2l#nSo#vbc8;_38?N3%tLBAo#_Ex^u+hxaBu zsvUv-f&PHf5MTnDoSP72a$3trF#0$O0%Ms7J4r8)9geJg1fCRwr^H_b7`U@!JH{m9 zFyX|cKbZ3|I(1*QJ``h1QH(Hs@9-GCWQ{sBT=nx}M+ZkXjt+iCwmUSEaWJ-@mZ^h7 znob!eFT(KFgD}^wL&&B6AB?w)gzFpbZcuJlJlc|pXv?7(@q}{az;B;0xl9(b z*4XwC1Za38)S%;zpsV&bGD1K+e|+&aRhJNWVpk? zHyPM%D7wryORU;*jfJOM*mVj^P?(&;D7@w#1_Xq65uN*ssoMb%RlY z1=dy30!YUIm5OB%%jXyo1q$R!?xZ_L_ZdoOQ9^E1)Q$(Y`YhzedKSM#C`)!A8@;@Vf?JFBQ zV`J}&Fwi3+jMD(|HxoFS2W*FJuiD;+k;{Al8zd2rX)iu^EWCrR+GX2hlPB0%F3ezD zv9Y^pgLWRa9RW3U!u*MdDaEBHAP%(CCRdH<f7lNRJ871G%39 zSoguADsLE!gGJP5g$QL8r)DDiyH~`4I&Bf#8W>pj*$l9&Dn=yCnG6mI*%z_wcLb=3 zxRJrpg2_^pQK6AExNmsEymS}FhdwYz4!q$Li!k;uiHdAYG^S6eqAr054TYr$tLB&- zps|T8fd{xfI*&avaDL!jUB6Y~gZmca z!pq;$>h6@;ot)k4WCtX6oAU=wE{4Q)8GADB%aFS>*bh)B!wHCmI}+Hg1hy^#cpO~` z{Em1g$J0>A#v!MaV!}VyD6jKgFWcp1bG)qC%RF9&6bX|z9+2xGbQu7+>d*C8`J4S+ z{!RW}{=@zw{#X5<_`mYUy++^MPn>w+gTIE4`xzbNJ1#!O@K4V-_}yq)2eqb#^=7Si zpZBxVe)fw0T|e*lvtB>D$$y8RZ}79lem2fO)z2&Z%;#s^AMfX9{OA2#kRI~)`?;X( z^l$KUL745Y@biC7HOn9F1&cb!;A!5j&h$9cG#++B zm1$O1VVz*@wC=DfA|l<_IyLOGvP2P%-k={jWK|SvwjdKk&z9GR1#!GLFMJx#D9P%x zMqqPLjAFOVnHV<65yiob5i-2!rg3sp4o%Ya*Or$ris3mEYIrOT zHfc1!Yv4|~W?&_Makrd%%kFP~M@0{ql!-Xl@4;VGEG^a=Wm@Vd(CRA1{{>PUHcq&j2g_M02#O&(Rz zQc%=Vo-uh|Lv&Wbq*W7Gcf;(ObiS3R*UYYGD{s4J+m)-L50p*U0)Pw%G)^y%-oNrH ziphO0I)yDDe;9j5OOhW$f*vxa74?1f6ZI=qeg(IMY5mzh{#iiPXqG>G9Oi1g%6}(z zzyE>0I}zU8e)YJ@A5xj{nC;V{ZnVVL-Uv%nvWJ~i&!}8D)r1GF=*5@9r2-;HR@6i_ zTa`g`TqP>G2Ut11$ide4A0ql^AAO9j)bnib!}=BN4;&1WYYrDWBl>tuv);ZxOcyv2 zyS8KJ_izbDjdS!tT-I^j4dEV@#hSia?6a)f7(S-5={m`guI{iiMs1$AFbqSN%Jp;M zLw-~JQ02Wq_yJNG$$HC#mauRR){CDRfc8Ps=3;dXZlF(9;1a}@d*L07VgG39$bVBc zS5jC54Rs%2|6ZVo0!tk178LeU;$IRTC{hLq0nL=^oZ**<^u$j%M~R#9(UX&Km?m+e zhb+;(%rMm_z~A`X;pi0OjsJC%K5r5)-z<1}$x$gEK1XnK3TgY*;ONAFFE#g^!;G3K z$K(?*rJH?U2ED7j+~IBap7NgcDnV?l_R3ywQt_98v_!BpiBORvA7f{5^FUdd&dmux zj;GM0>Pi@XTot(jLY@K|VGBwU!6SBpm0vioJ-xi8sIa*rqkZ1k9ou(iRCiQVbW~?# zj$7KeBl;g#tz^r}r#A|=)uxxR&Q(`#yXUs(f%+l#ZiwDJVb!F9ZTdaV=LJec&Xau7 zeOl^V!sqw!0%U5)qe?B#unn_%DefA2(}`zs(^%`A&=RmArTNm^{nZNWiD9WHO)D51PE()o+S~01?ec2-R{VL&{*L{u{es zLcIOj&yN?S{=TRP-xQrEpjQc-1@DMK#sf(o;USee=y&ocLfQvhgDg*Ky1jMV?A*q& zH5p|)I`Siv+j5f1%FC0Rwp94)LKApFAhkFy*_X68x5Sp1YBM?Prn17jl1C+&@Bp~< zMf50p9&#S>B0NFc$>+)PVf6@D_&~SesDV=eIGYU*N9NXnS_)r)L=?1gg%pW*ne%1WG`75&mYE84>c_7?H zY3_&3M`F||yZ42u?%_>{h(`vwUir`|!dkQ=8?O)d=$o45>h)p8oM`5&L`(I{uEceZ zn@^f$YK`v@1s128mzX)#L!4kn-*J89=D%Wo*UXWr-fQkN%T#G`hq!W&=0x?wlc=nC z-YnBG6iNgygzB^~WwUby$?yI8(H>;7i+YQw(ufRx%(aNTp-Z1J%hOSY@sQX&Z#IY) z5>vfl4H@{bY#AlP1MnZfHi_`&hJoLRRWwasBnLe8VLc|Bl9ipCILK4cySVXx){=~O&>NWv-%cYwyd@TRB3M>Oyj=QC&)8vM} z_+X!-yia<&&s26ppX=?EJ{IiDDep^toAu=e``qvMsc-kG&OX;iPfMv~Wqr=KpEjk_ zUuU1?qrS|tKI_|ketbLo^4^zFZPOM1Q`KU1`!lnXYx`1NeHpc-qnQg4x{1kd6@jW0 ztBcNIbW}P4UxfG=H!>Rmke|m>4`oq<4Xu=P_{}1Ngd#&^S`;(uoZm`dtg_tDFd1ElcMS!DG z1_Y96&B?5aH*=m8pA%mhFK0`6Hbd%ak0(zGTy4n8yV|~pfcd0$!y?0KK%thcmLOX= zeU+jt&KlIm=>r-Z1|Nlx9FtBXMxFRWv&V;}Tx&;`!|sK2kRA30`>?1uWjC4ZT25iu z4q)@J-5&6+Pfau$0~_3Bo62^T$z=w>>Z7Ot67ER8l57VWk-#>Gs12ebN|1h|@)tSb zA?V}D5f2>_|3iiJL#!Zd52-A%*v~;{3KDbtqJ|IwgH|gMbM2h<;|H4O%zWX6(xvw- zZ{D)BCH_fEUS(tUx;0cW(H&^WXMf5aUzuZK)sc;pbM7nY-MnubOPPOXS9QjinYFdv zitNPoH$+cwyRl~F{FbDI!ttd-4y~0wMg;$QDGOezd$nsOX3PcPryR%_o53e~=6Y6o z|&abD6FpWXKkAOrDckY`ZK3i{H@`^?BV_=qqa5e4~CEGU}B z1JrH(lK?McUNwrKk;ADv8D-Ft5HFr=MAb9W!;N{>C9FE;cpMDP-(8T?xngP6*4CCA ztFBnFIHxF(+u60O>c*CEPepfES5CowfyrHCYP%)}@V9mh{_@9LwpMj6UzS%?n0rO{ z;;OAJEj^W;-OF+c3Uj-=yU^5_u1SHwq^>deTULQo)R7?i^A>dL_ zfaJc|GWRn;Qm8IPkO4jBJ@;ozR*+k z3!M>tjOnSk0Dw{iiO^H^`n()dhQ5#VRHU}*m!yKd&^1X0bB}B%^8g;hE`QgY3-eYicr2O+LV1$lqvN7fmla>wfLme@RZ`#Kwx&O z)aYyMYm^&l_k_&caN`Hn?9FQSvubuvHT#mFu^GIQo2Rjr)7bB(vHPd7Gxqa#e%Q{g zvEOXxE9}fZZ9%mnm30*7Sv$zZ+fep7iuAy!rVlg#Ve21JeFoVdq98+TcBlnTSTMM5 zxJrp`YZ#J%bS9Y|*bw|{%;k>!BIu`Bbq+h}p`+G|LO;Suj|l{teMJ=oXaHkdIO^+V zKB;}rs#eE?rjiNMOK#X!Htnjq3Ae0iPOqL?HM+fe)R;Agu3T{6#`c5<Q#qW_{)(o&l5wS(4irUb)_JQ~`6ZvLZV_?Tzj#L8DHMN%c8JM*JB);q zai^kThoZqXqA>M#377}PRL?t2;k5$_`&3~cD(rQIJ*K><@Ou?@n}TGboLGrre53G}QJdnFB0r|Eg9_WC+@kQ+3Y({}b^)S*RhGg*+n^9ux}s=qPwa|VQd|Tp z0VNQtKJg(PPuC8LK1U^KOmtKf!H@sha}N)^_lWY#=kcNYlqtSJ{S|Z{4=h6Sq%XDA zdpeklg6^zU~7<9LW^2fxA2xwOUN$$Qc88EmZoZ{iZj)RKXR%V z1&-u!YVI#d9pd(})vu46_4=f#lN{r=j^mDTUi{fR?%=o!;|$UyCQWiqS~IC<(!NRO zCK<*}8aK)4|8tAsL>*IqRk3jUgGW1;9_`(^u%cq&jt8IbJiv^< zT06gZ>V{h%oORQg$CfUA?95HG9=vtK)Z%Y<`^R^VAKg}yXJ79gGj(;_vb&a)mR@nk zlD0LG>iBhWxz*ud(^72||7GXV2e(su)OP3d5AIl4vF>>E>jN_%yk-5=Vrp>vpC4ON z+_C=F2j_&ZomrYzT%D0s)X|Wut^47^D`5Z2u4~KlrFzE9~wE1lgn9Np6`!A>&Y5cBP1AjeP0dhtl3brqehO@ zFfMi{A{V_T@lSAe|4G%{xncEKEG4qs79UQnWmZHFow)~al_n4-Iw^`AAwsE8>R9<1 zsj!d~=Lq;va-B*21MCNg7@~mq1!YvdXF)m2XF(PfEkMwa5M*Q`EfPjDRJ{dXV*wpA zltHr{OqU$01wt0Gi_<09Md^}C<;;42`OLNT&m`s5WR34I-(@UnTh%h*s>y}vS#fT2 zLZQ2$HaC$gxjV{BBelLg1rw`%WB4r@HB&2^=GUY!Wo*gVEPLG~OK@s^7GcFj-x^b< z0+89{&V%)>d39!WOHQN0tr-maQm|B5MS6;KkCz_?h8T^|L<47BS{yi&+nY$4xpL=a7T) zYI!SCJ1KwHL{t1}Q9^drk=@hO$HQ7&1mJv^v9= z6F?!dyIxM_7@FKoyu7}?siCRzc$Id%t`4C|&Z>s0hJPl2#*P#~Wo1?M6|Xm$CwM0C z39nZ>s=QTOtK?JFOsaNPuc?-+nyRats^m)qk0`_p$phAf5{yv4i$xDgaf5&92;oH% z>*ATfJubc}cJyBhASNSQ4KR{!T8<>3=zI}#fwBMJ2=8{>QOO0+1l|7j7tN0iV+y`x`bvCU8uhqjp@Ms| zCF?2G^OS=s17Z1w6h~UTiL&N;)Gh4fv4!oWfyey$;wjyAbt|TnluTJsSJyqI_^Pzh z#@w97()9Gw#+=;7(lljr-HOS@#gkXmja@-&v=w7>#*I!-A3ZK7r*U*f#%K&%j9Yvw z*~%}GTjP*sXqC1Hv0!^5?r!{{^1=5YQsS)2BCzZB!V0Y* zogETQcv$+f2-+@yIFJv|uOF-@OckQ|qtT7*mfP8$=%(8T zX5W50Eo%#SIp40{CS^+B*J=#$%-~{%IJVMDwbo>c#NjLLtkpipF7S0Zp=pfa6S*?R zHP^M$B^zK$;mIPp!|VwAJs$%_!H3l1USt_7Ci`iJ!}l_-V)EIoXA=Lwe1FDrTKH8E z7e&1%flS$N@Ks<=1uKi0mBF@@kVnN=FR2Zxp!8}HPn+Gjd}>9@#0j%aI}Ih1uAI=g zyd|e1_{c4uGN^+ReKQ1noKK3~lJ2-vyI!-$jN9M;S zsv2Vc_+`YmYbiNl)99o#Zg*UFCJSfI&g7ZiGx>jrJJW&%mHc~QdBMy?g=a+jy{oQiMRV57xfN}tZaHm3PoCCMWEW|wVZO@dt;`?W)Z7>c z+e^B?uDzt~>O`*QR5j7F3IhV+oWN12)^eH^b{*ftc@M0L+Fl$b!?bjHG=-uVoWg>H z$^4m<)pgi!12KDC+9tv~gRnO@Oz zN53^OBOdO<)bi}AmOvtxEAH$Zf0Z{nOa0Tp)F~?))1Q0@VWuYnH9nLd+GdI)Z`z`z z1-a35l3`4WME^_v61JEGDFpa(piI7u+G;Xa$s)Mb@RZ?YgDRnpPbtiUM)+|Q3^j~+!ZDi--$}+$w^Kv!q>)#u)zW%-Z zQt|AabEfZHP}W7)f04b!Zshkt-sWm4RFm5Yn=~U?P?O~dh3y&k#w+s{ zE*vNrU+Q7<5<^_lsQ8?Gexy_G5bp%C@CLjSi`1qCd}^u67h~|6O{ck!iZ3Xu@!TXT zk;nG|CP`IL6#F9+I};OWkYzwo)eB<7WQuuOuZ)KW=Q37SBP<{(^4=ToZuxg!ekEVE z=i1!^8L|3|Y0#h-Z{b9q|9JVH>Cx-`fnD>kX@S_N_L*%40)|iqkvfH5* z<1Ircrdmd^`4G}aV24lw#dl`I_xhfC^y#8m+h;G>K0WU)Pg%IMw5>cfy}Y?-bX!H5 z692O|Uw>)d?aL}FJ8z#q?dry~v~gEYoqqMW)YNfTU!uG2)H;_rr~sb4%)HUO(=0DD zY&7gN$jhXS(oRXXeP;R0^{FF{osDB_;(Frvi8$5(=l52iyF&yhpRvzOpRNI-Q=g3g z;9hKy8Qmq9Ez()L10K-T>Q;Tq)OA_h_nX zKR@t}XB^2=+4u70k!DY65(cGiy=Y5)6=LS;5z9& z6HTENE^UtDP@>i@Ppodbg2D@@uGBkH!dKhA^Cl<^VXHuodU7smb*Wc>`fffzsOefnnb92Q}_k#FqQz|l1TH<7)uPE`_jgLhJZ zU;HR!sY6P|3_o*&2k=g8Chy{WJqlLpXeC?Ky(+&-W%E_$0f-`pDc)+d8YL&y8nSbb z?2;9i*)}&7P#=phIVf?9%x0U@L}2>yK&~c0I?9+Nb`VZ0hN2~(mq8BW7nc6Qk~0*S zgYkwEO>!1_5XfgmDsq-xMIAr+^?{FGeT_e<933$87YCYT-?#p|nbVz?63;(if6#0B z#cGBrf0wh$#+2u((Q@(ZS45{!jXFG+T;c`kS{B8#v>pKjZ+@y%ye2{SC}xhR;F79xb^5Y!C)Fav_p3&QXm|df{ZxijG z?T?QeK4YkT;sKrh5w;oho+F&vCv>I1^*inQ89Eo>95W`#r^P)4a1RFlAhH8-2a34D zFZxxJ#0T#{^y&K$B2^>kAA((!?to5cQjEjY7cN{t7$#p~p#JM^Ka3qjtAbXtC?jbp zM~7Dk{?%z8`JLciK%7z68B&%+KVsa=k~r4duWw-6+4_4XfT z{}!V!zy%bT3x`@CrWgI!=?}ACjO@>s{i7R(&lu_t@vct)2>W-?dydG|AIhD&&>tw& z&xr8=;kbOPc;P#?O53O=w18PeX769%Q+J20gs^C)FQD^@LqJi~4{_Qnz!?$Oqwiw0 z%R*ns^!kgIjE$4Z8HM*N$CZs0j7ocVlzxEt!!Qy zUsrTf5uaYf5_6~L@)7_Xk{E9Ilf)Ix)20;kp0g$#MKEhfx_=8ruqJj|I z;#t+A*e=zRf!n;?NR@fY>g$roG*yK%aFsDY!n+*adYc_pLCy~vQX$ZEhp1Otd#N@5ZwSD{!(0zNCY(f|(# z!y6P3!|MUFB?N!(9!0XYj5d-&t~33E$MnHr23csoPWUOqJ*7t;)MT zkFuM`xY_L$$ZpQ5;O=p`<2H>Gb)T_{d zQ%_;DROBowEs{+|YnoU?Q+pFX>1Dt2vLjyhp^LrYVnr%5LqotxGBsdGCHBs|= zXf)93n#>V2bLa+O7=NkKwU|FZHqtJpuXTZ*MxlKO9ue-Q!5|U=8K9T4frFJwSu4uk zf?3~N7};OVJ>w@%$(g^Ts$)?{m4Eb@(SCo!+}a6Ow&wLWT>IqJUH5la`pd_Z`>Ure znp(~B#;u<*+LLm~?n$uDY_FMIU)#E*wY+sqX+=X(PJMA|*5vDEe+w_crYF`^l|-(p z56x|=43?(n*41h=)`5*6qXkx`dIr2Yf%p#Z$s+2>Jja~H`qR4;-Lgk`{PCX$NIzLhR+yk|K~&WQ>8CQ_UCke+nmeLZyBUV z?AoWGr#S{UKy%C+{mm2fGls^RxM#!q!E>M^n_}m*=;!>pe^RVhv3W_B#$EW#@Cq;i z>ZNvRw)Bm*7^Ro4%Vt}~u#KjjCcbRK#tAzo$k)$gD`&DBJJ`w&woKWm@B#q%1Xzl| z9ZgS7=dQ}xtl95vZ*O1JzO`LxZ;yD)trklNSb&jWq#+{ji?GPto7;(D|5yx4S*sI%mV@tRN45mzSv=OqTPsW$9 zK`4U`IRp;q_@yGUY8204IYzrWSiU_+pB#+xuUTgERa1s=2%|4|WlZeaz2HYb&K*DR z%8g^srPj_4Rn6A&j6buC={~ro=kd`EPp>4L!fzwL%7lN3@UeL*s$y^FVJ38>0M?9! z`T7|#&L$aP!Fu5taS#8%Js70%y<+xMT(shO<-6;Jn=t_eN6>G;5=pEVa6-c+>xK6~ z+pSXnMcb?mJH&bcwEU9w0!AUPRH^TJKf1B}M$fTcz^wvA`qK3R;o#({e}k4)E4`#G z>@0`Jnq65)by6($R6EacRl1sBkOhc8PfpE{%N*(6be^7GmerE4B{*$zzDu(wgx#vk zrS8jT`|^A9d463_SqozK)zpLxr{YRWa~DT!5%^+hJf;J6W~z&2yDD50Trd&EyST+= zak-^R9rvU`ge1V%hXDk)Am#}umY6l(LXbi&tfNKPgF?*Y?#7l-x5z4jkEq=w{95j0 zM7*k%2tEX+3`@>&U=qoo8F(0OQCLuU)eS%0R8z6xg`F)Mi;C7yioW-|nrp}Xws=}0 zD`W3rND#i7_U!Vq+pZ&os2MK>L@{Z(z$~JWeOHX5|i3k7%EGO0w=N{^w}z!w>q4{`Sm$|7a8f}p`CHPb#olPgcC(v$6|P0pDL z_xT?deC`~;7kCC@njBCfE{@`P$VVvt{^8Mq7v(<}(sR#6AG+g?=+@_+qu8Fn zh2JUt%6!C(W=h4tWL>b)zthh*rtM7Q*X8cX<<|xF1o#0bLyg4ADw~kR+AJ(BHw$P` zj^uZe`N8C;k}o97$-$ni78q^ySWqqQT%2l*+ZXH&o(sySgX~lgt_EL_2Wc=kZAsyr z)KLYIcsn4Yj0Dh&LY4Z$f}#L))UZL7NlYg?uZ!ijfRGZ)2^3Nlh`quWaM4;~a4Dh8 z{_nqE@xa*5A3a}C$o{h*oa(M^u0Q~P zq~mB^iuSappW$N|Ldm)aMT@_GDP|V1Q*}`87(&(!7eQ#ruU!I|g=eilH+t6kbL*B~ zj6G{SH+`L!ovA;&p=YhzS0BVV+4QX0WVQlUWtxx4sLb7$+I)5WdK&13e$6IJf5kP1 z^y@eJ$6u`f>h1sMVEg=0VecDkUrx=u#73;Q|H)AMQ(({-(f(WgEz>U2mzC&Zb*Z{- zuzl7c{}l4db`+4V@AUiqMq`d{3!fF8K^Xc&?RM~Ap3Q&n_%zVb+yEO7yD`5gW?UViFUfBRUe)!gAz9Dz!K>@?i(<;vAidr`t-ba3A7*dG z+J}vb<(3Q@ZwKk|JkUOkH_<-E+u%C70PR~!29>u#dcFOB47ShOc_zyl>VIB-;br^( z)=>NHEP(z%FLdP>j?@b;?f0Rfe$#WwEiAokyTkpSB)vcQ9MNxQVd*8$>yOO|0M|gZQJj>bNjai{}Klt z&l2wm{sfX2`7wEM9puH3KjHI!+r{>N8qX;z$&0W~Kcw%I{6{JGOZ0uceUcZVeaMU5 zf)8T;ickApo{Rhmdix|V^!BH~vna-^Sby-M>dUrI<3qI1+S%(EA4C2BtUoU1eTezc z^!90d=v@ADxNdR3DF)u#E`5t+|U2hZ%@3;bD;62_j8i;H$fj;w?+H&ONO5W z`nw!*u2+mVgt0=-Jv`_eWI>GQ%!(2zYj}k8RR_pna0#urY9HQgdp- zMf7_6^d9y0A7x+Z^sEH!=atu8wtae!dizr(__Ia(&D4I|tjo4f?@_c5Iae8zbE5r{ z(#y6_?@@2Roxws0Ime~uaI9(Z9+$(f)+_vKdcW`GQv@9=DI0twy3S76`34{4k7$qg zGT25*UbUmUqz5%m9PY6`Zd9Lm-bJzJeXo9hj2vZBe4H}mg%j<6A4>4wjrHhnn@%r% zA!+pfvpDHl7y9!vJ;P_{zNVw_dnN#B=dcz|w#su&K*>o|xKVLB66Pkx)gjeIVl{^( zc0ZM1W#=XKDQ)bR_-To82`PVTFu7p83n+5J7C(l-8IodD%r^+I@OZ-_hc#kcY~)71 zNK0nD$tMtlmuy4Y5V=H=-$$bD^N$vkA)5+#fQWN~(j-cfA+#TX{Q@5VyTsqorSL_; z21|tu^Z9Neo>DvJEb`z{n#aV_CeMRSr_=O_22A&eS z*#sa1W~Fub($m#ZgNXUq-;dT+00oi+FDDre2|kP$C~jzIWdK2r^!3XF>BsIiNzYuo zETI059sMj2J&B+!CeImy)t|+84Z-UFL^(pjdcQ!{hY$04OlmuY9}9Cg{G*585hF+V zJGm`wqz_Z46>DGJelc~B7PImtv{D?}9W7)%wF}+w!Uwu;sJE<+@Qwupc| zAl46Rdn9$t@4CuB@@`9q5$h2JB|G)uA@qaYEftDsvzbU%k3 z>3Rdn7;4MN+NHdhj3G}lBC>|BjIqq5SMaro^3~aH#I`jnP^nQz8VD2>gBY6fp9Qu; z^~Yzzz=#0aLk#3$hq_-qq{^DghDixO;=C&FQ`rV}2SUPPKo0I-91ow?@g;ykAs`_t zbd-qajvOU`il^uj&p!5~0GBxO;ExC-LR>ZXzyskED(h4?;93N6q55?A2u>IhwBx+0 zZWL#4zFwUD?A2>^h>Db@U35{RIjPE}L#Pu({M`8FuvG;RJq;goO`Q%bA$}DWBVh>T zRe1~z<4Sdl$~Bd7CoWy8$}g+$sN4tW3>|^OhSVg2kU*sg9e@`3cvyK0G#daz5GVvC zg(DsZ@p!bM14WR%NgRl!5aH-BasOA0`{si-0tB83Dd@ebSQZf5j@WgJ& zbJQPzJSUzoN|V{Ec&DSZc$u#@u~HLrB3uw`gxBm^P+3V~PnD!w`k!f>Jx1Y`)KGH4??X{luJkR<*-v@oBPY>CdKf z*-a@Y+>~<4aA3OmF6 zePph}EBN5wTf&r+LTpvM`@@!fVFq`6n8!hR@k#hXILm+^ticHv!mI(`u=iN_ z6zbNCUw0yI^Mf#>3!Dzi^s8xM#A~rJVUeRE+!Nl913E`I9OhS1vB*&oX1EV*b>T2w z^&%<@v*3ej`hif7-|q;;LJgtr&?g~%$mRf3j$l24Z$B1t4uY0~Tr~e8cLi}5(NSU+ zLGOqUrLO>Z0>G|?YrkKFpaxnj2OQBe#94&!K!W2Ud#W!hFUyz(IPsM0GFc$81v|X_ zeg4t1KYkznhilm^E~}K@!m!%=+;d)L*L1_Fpw=N9wM6uhLyUatcG3;s?RQ#r7V07B zOS=4*urGGGTJDY?ggaRl?4$|KINFXF+WBRl3!f3$qnFS z6ZtJn$h9JYqX^TW3+~{B8m^h*)JD?uKe84BPQy1Q*Ac0RG9#_Fij<-^r?ps_xCiWk z|7SR@1=@jh-SE$uXmuZAJBHrHV87X*)r&gs0nT`Wco$lohpr~y*wud1(7Y$! zE#2#N^&JC2okVsh1M&Fop$Y*`qxXyZTrOk`)oJ9%ST?k~v8vOlDoTq}_51PRcDE3s z_KeFVO4aHFvQ_{kZ4!H(MXp_*;Fsd>bM6Cn&5sB7ksTj5n39bp#6f&9Ff8~}(pSmGY&N}F=5f71(UCR$?!rJV#vXJ>%|X0&-P(1u z_^cObIY5}vb8`5y#8v*CE1M4-7(il4<MeE1V`3bLC zruAd)Lf;_Gh44|W-oQ=xsJ+l>{~~-zVqHSo!1|Kslk@i0+=83dCD4~KkCI%`>OaJ; z;Cvx3uJi}JTJ5-xy;%GEi?BIGy^t#yG1NDt!rWw)qHkc_C2bU~z7y;boQH8oxBL3l z&-(r8*Y23=757Uvr?!qV88(VIpKg~>A^9cO?ie~B5Q^X`Af}l6_0YL)}1A)B0w6ZmnP7GX7{~}iiCC9+j zA-_1XV_HM7J7-CqI<>%-H@$oAqAzZ4Mi)lLTQFKOUFPlE56#*3<*urXIgfjT`PCWg zi^q<-<4~N9TY31llKSO)rd-*fYs^{DKH2YYXlhCy)7hM-?)d(m#M9d^JWQr3+7B@; z^nMXnbf4OO*-Qj#8>yjD!kV1@>0U`NCBM~Xo za2BZlsg2mRS@pkTQukLcyl$SAQ-@g9|2d5cUL9`sWU7f3#m)(Fmq-UmUWC~fLU1KH! zZLeSRyFF{fO>2G}?esU}Gy1(!2IR@}>Ycl6Y$;L&SlOIXHm{J)qU^@Hm^U^nCR>Wq zisly~^$mcknG(X`OA!w55BU{GW-N1BrreMj&+N`TmU%w&lT1UV8qRIWbSe>rE5-A{ zO6D+!!Q9tf!P4TvpihZsxczaToF8}S!g0M844*`~Ci!l#fCvRcAi5|*^%}BItTsmp zvynZF;)8?q8qzukzz$al&m4+~m;b|CQCpk(Tw?IlyhSfFej+rgw$dX%eC1a}S}ae# zye2X^WQpYDIPQMq?gsUquOM)Rtr%b_$DU@!*KXs;_?HA^Kg79iE|j8)5B{L{-X9*I zIB>MNu^i)&{K}13!SC%evZcrl%5UXtHfQbQR*d5-$FTM>tZCHjQJtgYrpnosot5&$ z()Q97rSinW_QDl~GUd|D1%769Y;?nDdH-lOy1B=d(I`#8l71wg<(E%LmD(B`^$l%N z=Z1{F48GO1$Hg;T-r}}&XHA>ekIb5gZR(+Ej8beODqX;3lJGAbm|haJ$6as-mQF7alrAQ3{S7m}Mqt^r|&Ms|{7Ursx7jh~ycbN+&b?UY`J1z75r7tItfm%N*@ z?EGdJ=R$MXGBM}E)`yPu6xny=mkWz^gunKOGj*=(bjSOl4?QEs$!t1b+8_}ondWF( zYn&L#GWdqh*5*jexy!_ytJQyqLsg(Tmm~fnE3DOx@po@xD&<_kn5B9R{16loF*7gf z&yFPPOzLg8U-I*6^$o9kX!rYEe>Crg`-PX0|3LU*MZIh?c3_64n|=N2<^Ih4o9=fZ zc@K4$z=Vts9&ldd2{{H*Z(g3vD*FL#h$_Wgj;GEs#?64 zTIe{)BQsR5beF*8;XH>rRHZmi+^=YFQ6K#3>yy`~_VA2r`5*3gvam&{e^7f!qtu)3 zw*>dw4;?2D5gE|3u;v7R0Qy51{QTdahoQT|$3H4Z?=_K5Pirmr0+vzdtPizB|Hlp))b9Zs_n1sZ*`j zfU|N6Vm%#pgH>-&F?53~YrrbU5a`OSDwrXyOy6#H8X^X6kgRc=&J+jaPH&S*S5G=U zA%3B$Bl;UQGeAH^Ea;r_p{q8&h!`z|!Y&B1h%3Pda;((Ee|#vrmXml%DR zXs`~mw~rph{SD=($&mJ{^Yb%UzQXcDEI*Z5BM9m~YCVbD%1^PkcpVO#lDfv&4d-q! z-6*qWpKG6%&Mbl~qPCt0i$xIU)#jBPZRy?40q1$A>~!jaey>BNj-v!$%Eo3Pe9DBq3n&)!1k1Do`>m@R@1JxVt^TRR!At#FtADV+sOF#R7q+{0|7~nQ`X1>voRI`%Qg-qQ zhOkL!Q}GM}@2Xv+jlo*gep3Vmjj__?GhFu@?Kwz?(w^f>?1`b@2oU@9P}cPbcG0%D zjxIyULhU*;8OeHaZ+IHcmgL5?XSx15iP;D#BO6D1p6NV--{ix-PTc-VUY^gFQ$g0f z&(|VKuUC{Wdps><%468l^IU%H!Tze4qvV?G(DJy5xuae5tx2LU;@ylu*P_{@tjJM#?R?;_2*Xcv(`c=J zVK?G@b5b@rQm&!+ao-yLgk-zGpFp<1iu)m186{bn8@V30gY&ieDXu`P|7o@i=Zp45 zkO1Dj&7#$RUHguOy!@h=-^Yl1dWs!SUW0CGq8Vag=m|ty!jhF=74L8%oe!HDZ7lA| zjC)#Wwn^8;A>f|0`l+9Y`r#khmh|~k{gN42vd^iXe0HLKtPu>Nek*Kivo%?@xDTyf zYD-Zsg@pnoMo0xlp4>A4stP!)eKVtiJ!ojO4oh8&Z+uu`m~$ z!~FdX{Y!A_9#HStVPIR_yWM<`gK0^5!Gy5pzw|re>3DGN;Klo694c;xPWX-HLq2E|*Q7?g(}VPX*;t zw(8!Z?pFCyk;PD+V_0h7SbhCSeGNPYo*+J~POQVC|5g6E8o zFv78h88{h)LRo7Nhw?6c+;{FA{xR|=LpI_k;3om8F3UpbY!=JS1JW`{ogf+$gedDc^W<@Sdl>#j}0xXm0MfTguCC8JGJ7r{Z@oZVxDq ze(vb?WtXKZW!XMocF-40NyoSU0*T0X^m>!1XqJtFYEac!$O%BQ*3i-eh!o^>Q zn>Z~)XCIO%xUPuz5ONUuGhL6L!ugQR@;pF*TjwoE9W!*ckXIt+Pt^aoRzC+0L7ZO+ zmqTl1jX8M3`2w#i>VG{cXJ1a9UxNAb(8qC~Nj+Zd zFA)3Zi2cKQHO}Ajd3rTJw0>BxhCGpUU*-p~&XyvLQ|+6OM4aDcy5GcmaEO+-(y+89 z4WQ@i9#l;SdJNz>U=6IBeZsI*3!N}TD@w72VqpmVZg>TVA51R!=)Rd;-}$F&NjoJ@ z8H+es;6v9ksRKa#8)aPT!JDr2F|c2_RA}g0S#lM`5c({8_4|KZ_7Q)7IjC^#bTyKb z6}tEME&7@8HcVGR+Q>d+pTY?NP{(}f4n!xz@4zMG;!ADe4>C19+7e@6<;J6(Vgq10 zRsA7kx_}(PLt;cBU)0Csc!xer;i3#mJHKV{eV(Ix4^hWge}y)@Q~!I&{8qJMhn?*( zA*gJctJ`(T^?^(O2_ltMJuxfjoy45N^^f*g_Bo`O)F5>O6%1X8@NFNj#nTmq5HcYA z3zQgwlFQP_1aE@O3MOutRc_j7${X2ISU6#1u4!XR`OFQvFIUX&8dFr4?Qmw-6^`ke zU4dsms*iw?3i%zNBUt5~5@DTAS34`$=gWl> zL+`!~xCPR_1JY!*#vX+5O`#7xu^3rheGVje<#A~MPj0ZN2<@|K%? zwJ7S(f7xPD*oEhmv&uV)d_-X>IDyl~&lOowzwxb>BgzX3-=(mv3Tsu^E}X~}^@UR{ z2BlizUpS<&yOjqNzD8li${1yeBBv?Lrm&BdL7dlf|DKjz${~f%SME@@qQZ0C+gnl; z_78>qNnvyi{(|y`!cmJ~$yJsro0Of3UZ=3t;Ez<*j?Psr2Nc$&^eB9Wa+|_cg}IeX zrCgD5&WFmU3jc}1-d5OYg*~OP9%a9F-a19jRw|W7MK&mYh5t=q|EBy_;pY_gu=14h zvLY{0HYk0#9g+wsqtzC!ApH!sdeqvgQ7tEweueK>Sn{k=MOE79ie4pKkuNA06;5Zo zt;piW4k#y-50iCyK)v6iuvrTI6wQbC4qmh#H6=T*b{&)oKs(09G_Z_FAXC{ z#HUtZ#Bj;4`?8#>{}58iBCSzpoG`PcW_H;0youkYdrHS|li6YZJm=q*Iy)MOan@9MtJeq%7=9#yr7JCUNWfWy`b=?nF;3@&F`m3U7d0rt88 z*wdCZJ4lm^5swn`7{o&FLJPg4WR}w!v$i^MiosNPMDsdou5`SVo$6f1Z=zC!&XOq6bW?fx*b(^&4 z3>aKsike>u2KD-!bTXB*vs*-&k)f5rpjN_!7W=VaE=q?(l&ZyQZAljtMFFs746Tuq z0$GJN9_An8<};W=U?TOX*5Cc1h4P2Z>VN z4l)M)Nc_xy{@+@@h3rDSU(c?cjYEJ;e&gFM1ghfKat{%}t6wiuj&eRrza$BH%6#dS z77dIgH|ysJ-T$DT@M5`1Xx5Wd-2x_;4@?AZ{8K%nEAf~0 zUl$eksOk6ZZV@-0joKRZ@cQAtlaMlTi-9}0wan1prss^HSgMwzhk7;7Ayk-v zh+!xQVM2&75;+9;p+A8TL%JccFDZm@ViB!-klHZBF^6^PzoKvc8GSPk*y~Hl-kFcy zSq4-G8ZFYOhKV2820}_d@3wF4Fx~>Kcp=*Bx;Wt}c zdxQi%TU8_ z!OL;O<6if~;>x)08(7o-k^UgYcli}@)x@81)jY&!6w3TuK9llM_afDjpKk_?8FG|b zuIh$%BVUZ+1#$1A+4khUZ@9Wme@^u|)j#|Ju$bTd4j=#i@A&xbZ#CG=#futj#`Ei6 zWA872iI4Z+$H&iprXBz3Pm{-g^dsy&e;yw{_yIoNeOEjF{qHA_fA_oC`|WSz<11gm z$Lp_a$6tF*J8pmVRqQ=;1|MJka`Go9Ph#ttXYg_21U|m_MQwlZ$tSUO^k|E-=g=X1 zd;D>HJocDY-=mLG*>mQ=0j+%G5pDm&4{O^GJ)~{#->+>y@PJnC-K*{2vq#(By<6Mf zwM#4Szh5iwyH7j5bEmewV~4ig+pBGF-%h1;=H7d?vZn`S;@p|;Zf*OXd$jWIyQx&q zY}=-lTeoWEmMz-x&6`o;cX!>TZQpsPR&LrvrFv%LMs0h;25o!&dTo2%I&FLHTCMEr z(#kb!sO&kjdbPH_YL&LVawV10nLF;#_ODo>Z7)ZvGrG>QWmHQZQpvUR(5n~WjwBxixz3+!i7{q2rkgJ=g-%+k(p3jciud0`<7d@ z?YVQca?TvBoIP7BXU)>enKP;EIWuDhmFLb(pRR4UwQ1$FX;i9brcTw$DO0p^@?`D! zq)A#iaiUhXwra;)TD0v66R13Qrny<$ZferD8ymH9{CI8uxN%gfXU2}zwpCRt8yd8- zzMjf+XU2@t%F&~>vaU`$K5CR!*4Ap}$dOuEQ=^sD)l{B4Q&pvvm6h85iVAJJyj*{Cus<%cHXAOm41L=HzH4v7(C4 zTM?xO>+3l~s6N^ctwofO@l>iA5X2hX&myy)Aqq!Tus9-+`Sq*Ms5Yxrr^^9tD!d$G zz9Feee>CGHA%Qd-{{Q!n<_FBNFVg(LHkq%@4~?p0EJ83^*l3yUAH|%b@WAzI`lwM= zRXOlw($o`{z(~hV3DS0a*XCQy^+Qt!P+BzaoyNSEVHk`0$v zL5A3w4?fUJ%oD;e^I)z})F1yCAMd?~4@?r`Jj@fK#8jc3hv`C5zw;e@V2V)GZ+%PK zZ$EbqTbLRYnia%PPMu2r$o*^7wJ=J#qvehY#ZeQ-wH= z*+M&x8ADMa{uQ;a4<8WVVt)!Gx1vJaiY+_js-i+@Dk>zV_CttBMTPuRR0uysg@mL1 zXCT?M;}C6%3VEfd5LSu`NhOX$QifQLd;M;);s#t*98x;wKo) zqQqbpCwnlO6%|8NQ87Lh6@yb8#~>6X2BCHyMj5`#vZ2TnX3 zg@U4}CX=?yYBaV0M`tG<19X;O_IpEm8+j(d21y_PpN$9jCN-PoUid0uvtavKcp3i) zEC>Qqg@5K*L|Dc2+hJdgRP*I_N$1q50BTb*HIXJ_$YSe}j!Q<+5Q0xqrj>Pg8euNN zw*(g)_#v}gy4c{z0sZ!)m(#F%&uPU7M&P}u*Dak^L*%{RZInA*8(lkG@;rcXoy-t~ zevBm0AE`ue+Q(TlC@(j0c@JZ)Y&qLZSVQD)HN>IV$plS4C7+i+kgv+RX~?_4OJx>@ zed&gdC)}foFQY{&^|F{3%(e#E4YaN`0vzulEI%+UQAQmb%zH zKbsR_bJAHT&>rBvwApDqrH~nlm^mku)1D*i0U4Vel~aleGo<;5<*hsK{ltrCAT6l( zw3n^%GPFk+?csHLBVN_p<~@$p2ye#xQ|19PA4atm#q;yCQUPVl0+g+%m_>@wNP@Hx zRx-JiDV>BCz5??EoB}|#m6Z-TMX1S=)O6PXZCX+nctVDgy6_y_ZjzAhrNn11-6GiN zo@M$kFZjmT?l-p*_1xI*uWl85bid`3246`M(XILhvjWLxexq~gn~A@DvHQY-HjvJB zcmL?nZ1B)sI4;)4;ddM#sX+^p2iVp!^QGoLfZS>==sPWF4}-<;eTauhm7Iph=v z`-9^jaK9RjK3k5h$|f6Zj55n}o1g%+hgcySg{Uva{=ohL&o_;!Qb~qcBBA8cCgV<^ zL>#g`8Irh=ntW|Jx+lE)_@o|+g8rw*PA)B>ujXWd=r1of&tSAOEHSYP{nU37+gys( zZnfF18IHu3cX-3M7-&Q0WfkP)6=cmTz5?)dvJV=#XrI#I_99%ifpFRAlUQxn{T!zb zajBHekeN9}FM~#fd`(2Ut}`Ge3dG+O4ArGS4)$ns++vZ8af4fqp?%j=&GXs@7C2`{wfPo`4}mV?lP&xRH#~ zwCiM*QD8X>5Zk~&;6-n|`d9cK_DBlkU4_(tR!YBmiSX|(j3_G8k|kvQ zCA9@R3fe7>t&SHQvcr_ot^C?HE#8 zmSn7n07Z&-pX70;Y{($Mrd$%VLR&{vKN_dImi&c?H8Zf=1@Er@&uZ^Ccg#FHbH_J( z)$u#txv%Byg!{g`WBj?Zua%BmaR0obE5@RE_b(V(`Rc3u;_^55&HDF$pSADJBGt6eg;-(h5Xj7K0(obOZc^b)C0lEpV# zXQQnHQor=JWHKVcCOfAxr!l85=k1*La*QA5e44|L=diw<13A1Srz?lg%3*2_<2lsQ zZh-MKd57l{P^&vaE_6Q90xBqeN`w`oZRt;RJ9IeUb3vq3PK9vp3Sfc+Qfbk?SUT6* z5+F9LsU>69kYk5mp1I?lo#O{$3->G-d3I!c@BHF{#+~o<&15gkdhn~u*!e_p+pZ1R)rv3+H%%!#GbCsNox z(DBjN4RW8%t7Rmf-NbqI$W0^phMK+_UR}cqA*&;-psF}+61dj#b9gYM` zgR&_YuVZG1C$Cgr7xdebpa=x>b0S$ylDmhN zE9f6)+$436vAU)ni!zX<$XS04NPryQVBY}N15{?%U(fmAWB>VVd)=xh78mA4Cj>qn zJkzmfUg4Mx&#heb{Dv`w^Y(NMp7}H|A(~gX_=#0@?a%(F{@|Ra{`km>fiLZ@Mp(D* z=*5bA_8ptO;gxM;$8LLN!|Y@G?y0zVREI;=yT3HB;*mc-rLB1bZu7t3o0f<0RLIX| zm7IK?>dioi79?Jf>4!NImzvGtYxLJz3*3DDh^W3}K|8VP&!{@vIaI@dj z{#5r_oTK}eo6U1?#`$u!n-$>fv+h5*brv@}gcHBz{)wBv>}Dt2?4X-%ce4#{Hpjix z&BwV}w!6~J-EO9Hvrk2pZ@b@f^JmU(Y(x1bXjrwV|P!1?Fgtl!O&zpBJ<`rP{W+#kC68=^(<3tme1;&8{@+-!d+ zC62&36>`HS$#wE1c`L;wm@sDv$>FX==O#@Yv(`cq&D8yAn!=wp7R2T-U`yCrG#K6BSJJ$^ED9L}YziL@m}O{mgDG$W z)}$F2*%jjaq*qw_u68~f1#n#Js4>oA#I%@WS0rwc|18e$OV(eTJRkgeY)N*WEAxi> zcR@LMS)8x=4rcuj`DRoX8JWy!XOf*Mc9*a+$>#!84xWK9sR_eaJj27{8ndNe;~E(% z@YW3Ad|{maXMb*z;5=!ZLSGfnuEmTnhx+!G(%q$8gm85hvG!3bM)7KUvz;s9;xJco zi*qTbiju=7W#5s_W7!SaT*+p8vREvODfrA}N+yf>S(=~4d@K#5c-}j_97bH4mlb<} zkY<|=yA0f7NHg%vQbasvM*URy1EFYPl(z<89u)?7G;l2aRQf==oUS4VY`Q8r{h7M` z<;TlUm&@JdEK;tP^Kv3VGC9XEsXX1OL&QzMQPXB|7ALue5l9Cm3ZhtW3QHS99O+$#u&S`c*4@= zaUE*-R z!|NMMmVOcM?m@((wE~Y40gLWgwee9eJM3gz0kPv-M(-ZYS7;d#mxecm`NZ<}@)hN> zkLU1CzLD?X`bQAt@5}M=^wK~}WofBe$~#I~DX9mekk6>Jvb54Jf%dsbEjnH#A1@-h z61hn2iQ1YayAvUdvdNxa+E!MUTifQAY-!QlwiKdyh6sQ|fox51brNOWFf9q@K&a}( z)|pgZX&%HI(C{m{d09vp4&Os%^$?RCT3Qf3Yk6|BkcWMEQq;9pt$FdTrN>7aWV!#t z-!6W9X;s#k=_R%6=8wGckMs%C=N7fBZq3b|-ZQUzZCdTz(ap;mGufl_4sRG&lUKW- z3N+d$KmKK`efx~oH8V!KEj0^wC4S+_OtlwGUNLU$>gmM~rtR4>VoGg<2%j;GU@I6g zhW~+>_n`E#T36?v>pXqE$|{vMG?2PH;(#`$==z=ttN{WF!D@`>{)%)nE}h=(^P4^y zNNjP15%)3RDh(o#exbi%e1qRtj}QLz<;%ruw)Kte{V~P+YO;oS5d3kwwf~2OF=wq=0_+Izp zsVjTT6T$_oAm(j@YH?BZBaB2(ISSV3Sv!_)LB!-}%N8LRwaD>|R5}E98|IL$t*roo zY&pSgulu_$4KwMq0yBoLIF!Dbbg&vSx#W(rrpck!ol8e&wXT^my{jplxN0jbF0irD z)k~+9sayNkuj{{iTx<7p9f`O2uh>s#KeT>MT4?&Zhv!f3?Wn1a_sRprvy*tUX2Z^7 zx2}G*x23WBwe?-6@4Ge1X5QI{=M!@cnoL$`VmW#S9G11k ztb~+8MJ{aim8Ri8XI7R$%_(g`HivU(U@udtjsvrYp{{B|*xBHm=8QXaPBjOM7(I0? zToVtk_?At{mb zTX6K3$ApsWu7!y}A-Ezi5>5?5*%7gI(h{qw(ll7oW{m`C774N|d`Z_5`%X2&m3_-2 zvsP@M+VQ}G;=-1W>WbN8GRx!l&)qaIz9)9~r1>2+xAsnI*|Tb#QaN#5xO8M_N#2C2 zNXe`XO{3yXg?ettSLamJub47o&f;4pG|rw_+ni&)&ywHPRNPb&6k~Z#;+WilemGM4 zp}O(8Ty|7BsqjZ@p0439=CN&gd-IOw$s0{(ks8?dXqFyUdN&qq= zcO)TRv@T0T1(>Wzkcv5rrlo+^Rf#v8BxYU-5=z$VYO3%afUxx0^~_f^aY=3Un)Xrd zkYc_k#pASOk6Tn*IB!O4b+~Ny+V1;QYi4$)CGjP`y}ozr%IPt-Rh?EAb~rL?Z)wbI ztgmp5v_^CDJekGORGT@FT|RNi_?f3qpL*s#Nu@yy8=0QDu=DfA!o;Vfy% zSrFEIq?Vw|W;LsAw1{#Qf+43TU~N99MO2l7?&Fe8Z?av=VOJ@U8xuAwW>fHD1q^M9 z)8(*I6aW#U5*9<_#T}YwfZJj>M8)S4+S7;0TTCl1xpp|l+i!n9#ctNiq52ssn%lR} z%1hj$n{$0scjM+lUuhX4jwe?s6w`hAK6)NmS^<4AMgKj#q7XdqUsqQi@;v9^2ZPT9 zktCAs(6imZs+!rh?7i81z0#}j*-EFvx4HMa`9ycSdxcwGpW2(sn^I?|cBaC?=(ll$ znWgAi3OG)pL?P@8`?`Jme4qHP`V2l5I2B)BPsBd~Nk$3L`@gW;3)l&bQEHtcg3Lkf5%T>;%}0<2moO1tTb{w(jD~GAL-t@? z8lxp(Sibb($`>}(|KX#}r@E>Wh4o8X3+2II$s;B#8dtx#1&E3)Ilt*v{;Nc9V()^l zu(We*Bip?2&BT9P`B`Pp&rY29>AjV@pI6-T-jh$hcaP?KBOUhv%%@~l{F}|xd|v+n zVQnHv_A007^>#G&FlOvf(Lu?A7A5wJY!pCFGCv#T(H zh7Fl(yU0V3w2m}t4}piRfPmCoDuHi1f(}!^1-TlXRcdooo_giEh&sB`BgPbXRFWJ# zUr^T_fX|XIO(B>$(qjXkegs4>(q@UzF&{KPW0oH?f62^enOQSArM_|0+4MRHXB_Y6GO2zajJ-@%Fk@$Z0s2VoVOizC^^{yXlSRf+B!xOX5c z>=(7?K|dJ%N0j_k`HW5R+%Q*?}vV5)^IZ2FH^4)qDBYnQn^)>Fnx3oT(xKn4q7%q@jsx`KJC>rgi6(*k5tapHa zfgj5}m3cK&mcVTt$&`(mMFCGUtzMOSFL`w)Z%0v25f_|?4j3E-zD%FPqfc+MYib5` z)d~{t!iI1H&Wc48a_}OdJp@u!7U>kjHbXLNEewU^(2*B0I4E?Xkxg@IXWSKmpW@Y5 zQ|oSfKg8qyMb^xqiV*0f=EtaAQ6llby0r!psxFN6CF zi#q6!FXI{AJWHLn-Sx2RDVKc6@SK77njSHI(Im^XN^qx1Ht16#Xn>Ryqr>Txnn4wF zhjpt}o^O5M`X{U0Z++X!E!H$^os|xN1m4?YLSn5;>Q$q~o95;8G08jMyT^OP`#tab zUei@Cd)xb-mml}CKJNi9@9?rl?<_Bmc$v=Y_403DymkWZpo4UxVdx9}+5o#-=VkBH zsq6^V#O6~yWRGM2WB+tj?cy@dyZL(8U2f=phAykSedrq6JgBVy=B7g3A{5( zX$R!xd2Dt$n>m8ja<+QhJ>wokuBLH?CtIB`gm75c1)Osu4_K#FS-BgGXK z7-ZQ{`A=HzoQl<_?rz*Px1xO7tubq3+hq4dzGce(uEx=ew>K?0)jL^ez3Uc@8PgG%}3xIOtap*Q!?w?$2Uwb3mSTD)$_V%{ZD#u(x0e+ zd&5BdI%vLWz@ipGhLlR{)vPM(M(Yl6DCQeoE#jl3Ez%L;B@rmZuvyzQxUrfGYfWF? z<0y}nbDObcT53FXP3rknU8>!iY4o;*9d=)SGD!+GIE%rz^>O(^((@=b0$Z?Yk#>)1 zsZhX-Ai8F~Jcf}{hZP2-%+AvCexs>GB^zxmt$y1UJ2wi)*rEGAv=;7m&W&AH5w z{2Qu$AAD4Gx@pjqW755sj&Z;hC_p`~ew znvvepHg^QgC0w`Zn-5O&=2S&9#zeq^_2)a^x_{!dgYWk)duIKZs?LWOCccqXlj9wA z$K%uwXnY?Pw)_v(++8(nPc_?D#kN+l73Hjhvr0#!W0pgnVZP10-7Hs_$D27aHC|LJ z5r`oNE%ufWmJYXscZYR*G6Zgf8z+Q8$W!T>md^I2A4~s$Jf^|4mJXrSoO=zKv(roK zSlzIhP{*v%d>Xm;=Rcm$#r)$TE7bUykw=aBvcF1di#h$UJU^~Tj$T&zO~3#!(|uMNbk##K7G{tfQJvRe7AvbJR_R}?mOwA5y}a_Z(?Z+~Wt$PT;Q`4x=|w@i<1 z-+TYcalXtEfjd3f>0s~`zU?1k+@+)M^{Ib#lz?ilmfBU3j{&SihwBk8?Ax%ouzdOP)#raudFvkZJq7Cn@Xx^pU#ymA*?Mg}96`Ubg~_!qhioB{ zlvwX*mY}Th%*^Z@Odl6=*s&buOq$?U=r`Ur#c$7Qv%s4O^E(*}LFUWC!S7R44m~ks z&UG>-dcBO%R*YHdHPONw6Bn+NEkz`Q^YPx?R6GJfr-MXEyN11{XhkpnT=?cQrn;=dObMwL2e0U!4s(`3v0)yq{ue zyXx!AWXZXIqOaY@n|!lUV_kRfwC_#~kf)-sBLR2U+ z@WyNII&$G5E;EpH&LgQ1dG1{GO!te4eXp;6e%&i~k1xCZ*eYLB$LO?29y|PnSvwY# zeRXbI=|D*JUT;7Dn6Ix)AATKci( z-V=H$ntdTOOE4CYW=UTJA%W;`;snw@HAEwQBMF=Xj2LXX>y13I_L+rzO=sR@uRotQ zBEK-z5;0~5>m#MjqwBICWTrO~``N*-eKNRQu4QwpXVieqs5ixuR=;#o;^#bVaKe?J z(mZuvVy=FKel*5bkJ`T3&D>4|b#C_T@*MKWn=Q;DHqE=ths<)Y+2_zVngWn-3Z8oRhKGYZSuy}fC+IV*AkJKH7 z7$GY+2QEyq>7cS`y)kLvxhmw6x!c-uUai~q*3Rd5p4(RUO7666bDzJHg{9l<4ovee}Z1p07UD|L(%7={7~q*5WmyO zwv5_6iW4leFz0a2^ErAmcm)gnhyBm{^@`LwW=y`R#8zUf@Jvv9Os7rUVPZzp*q(|B z4Va3hv8;3~yEK-KC7}|5qH=2N2V=Q3HZoQnD`#ZY*W2ZhZBV63Y;DDMr?y-M=dQ?R zN4g8tVX-4P^jDwqJIrg}_p8R@e&v$mUWH&BW)y0k3ExW$c)A{u$yWD#mvo;@`(f-iV zk;SvNPQ8NW1^)eAH1cPZdr-r_OUsXIS+}r;O*rYF_ruws;iRu|N(h-Qek0bfK_mSa zR7SbFu!2p$`m{egQ{y|+m?(yHZCWc&a#_w|U~Ld<_rzt{{7<>=v~_Y?>lfExvn0A< z;t0Yum@ATX6Q7#sCt@xBpjcO*#X!U?&R21MjXFO6MqUZRWFy}_7}o9|!eV0kWyGQ7 z)9<;KZ~o9($p>MM7&4-{IrID9Yb9a>#5RJ+MER>*SzdebDG^tfZ*G?qr*axm<2s`v6~>Elqj7M&x$IW)?w(>~r&C`cBJijo zMRy%%6537Vr~+oKQ2GVJ?OZ2a{HWukgCEU1na6kMv7-ei3;6B=wkymwTG&SO(`Nom zh_!}xg?MvhXN2dNt0+2gl+5ME5zJ`x=uPt}W}kmgd0*j;3M*28z4()dE%9vdobbHo z(WxE=mtv`h8$G6YH$|)J^|s7u$cL3H#WQubc+lyNxPjzR-Cgb;_c`|kx54cWYE6%& zc&Pa?!7II1gaBZsA#g7~g+wCtRhxX0N`aVpglZS{VRe9ni?+CT9abF6dZ74S^WwHv zGk=dSOE*&nfHd)4Oes%NUYl)6Be^J@!sY}PD#_X0Xb4F!xVP3v(JeIBR8Ol+9h^;ws zlsz%`V3(@|kr$Guq^Joz~QAqOxM6A=Snq{NemELZb49sLm zi@RK=xXosESY)$1J=rGYM2`s-msAQg4B=2{8B9nN%?W^KghEk)PyB!Va~od}&;7yR z*9Qi8{Q#RY^pJ0{2}2J_8G-co4xZ$*ZhS0~oxu9W@LXw9FJvcwf%8s~%j_`82&KLV z~I@38JIY3^15wrygc|KUYU@GlI{uOWMZ!-<>ASsJfvJB zIRUI>+<;@lJJtsc{|Wio53VWXLTC3f8|tZn?iDtIUl8HrG$($6En*XeTqVv(V>r*3 zdaWL`>9dJt`XJiWA}vx?%K~(tl=f}|lfWLP8svS3V}|n}mce&!(6>w6$yKCdK;#FD zfNCGfBOEqJQ^4-^aqb3L1*9IP9%?b_7-+DyYsDB61foM-!o_zcG6(p7eI=2ZSjHaL z-+MW%`^{(FiDkHd1SWtxg5*Z_P+!*l1o!8ZQl$sg<_)QRsRvT!t?oVUBX0SSo#om= zV=A?O;9_mA9v2V0*i{!h=VHe|ljd@|A}-aXb6NcDlEFz2WHgk*M4*nJMxL%T=8I#> zIgUIT++s19<46rVH2CrIG17&HM)YwS;?Shg+qJGf+}9D-bwe-L{X`qx@)ri9pF55b zz>#RVe#j=@|8TsS*cS0-P6N%47}E~Cr>0~(d|iznG_!+Vb`VRh9=6lN*86+?Tz({o zwYMN!7i3F=Y__G-!rSdD?EKciLjgWBz^VdG0nQi52wE9%opJ$j;fC4gI_A<# zE@pChQ?pYmMQX6Ws}@K~uP56B3T=$9zpLpaIUSx1b>Rk5Sn(`s5^M7|4MoP{(^Be zBi!TpdtXWHDs$(TR7Z{veuq7tSjIIhq_B9kQI~U}>e;pPx1|ttE}}UtCZv*v_-oSSMI1qs~Rb0inF4wj$2LL~B(h zC%$Ed)57WL5nq0Lf!<^_6<91rcVz+FQ1EuahXry$G~$e?N~Gn(2s;vaA;KFY8zS5i zDT?rjLHG|VUNF7^S3_gbhN8Zr4~ul5cH)jA7B*#quPRUK@O8USxjAC4+-^gf$ATJZ z-m1U|Bq0rbgE+u3=-_TavjdkV6p)2QR8o`?RuTv{FBB3jw+n?8!%z|-Aev1~9t&DM zAa@$9;@mt&pf&u=MH&i#YsA?H^cs@A$unHVr6sP!>|e9N(%!`HzVq(5_Q}(02WqEJ zZXfsVcM`wrEoFnhPRw?dloq=N_zr``W*VFg+}l^#;l%mHTN{J?j=@KRjawJ9vc%G_ zW?lIQf5Bw47zVfEosI`Cq)Y#(G@2RJirrDlP_iw3FH$Rkzp~5AXbmqp8T7%ulesaI zZ?my>+X@@63rqs+m7wukEY22v5tA#tsqH0dYEDZ@$;fu+p6nypFJ#Nzs3h)PnAr-M&*k?(@hNmg zg5!ukyh{9&hLTkXRS^qfSjB#~ON8|PLu^_}yU&+nNwrRKItBXZ!J z-?8byom*?>)Mey1wwH~W(LJ}gs^k8djd!%wILzfU*0;uwuC1pzh2|!VKaaFkb)BSD z{=;rgE4mzm5wheXbu2tc;5P$7$$|pJnyA(`>wc?z(aQE&kAb*amaL`VhknMxJbZz~ zoM6{u4qpsVP*pGSBhA4K5ol_eFo<(1^?Uiz$Cel~Aj?uZeW+mrLLJ}Bl<%&%e|eKY15rFHba~w&JZl>KJ6Q)A zdqid%LVxXp_&-*jdOvS2@p;KS(V4d{rEYD*u(*Jrwu&FXBT5SHV!sGW3~p zq2~d%r$@XRSPNDoWzH>Ur4;xmKsbSPN`gp2lwb=ICD;-~i5PiNB1B%4AeIm%h$X0e z4K9cj3Z1{k3NfrxYB~jQVVEbAHZ<-fS8PL{CO&&?BVG}GSm=&;uc^{2>YASi*`6S4 z53UGq3CfrbX9qe1I|6cZfc?bJdi`vPe}kXT@iX`^dpOf`ALo7W2}|($ERi_)h`$y1 zNr0~n+#BF?0!ssYpUeo}!@YrEBz1o(M;02txdBMdHGt#k;8M8+P<6oT(<5z&Y_TK4 zS}cQ9kdF@HaU=o^@PPy$N$qRM=t@dODrg#_d8#G@z?^#Cz(l+X|8;D7`>IKiaq6hR z^sJesIisp-bIS(5@eB4A>v@;e-_kP!L2M!Cet(Xyvb}Mh{FN)0WG7(}Hz8j0*l@h& zK6OEJ`keHo>2j-Uo@=>FuB%{mVOCYdNcQH@)L76?ftn&hv&47N#E@=^V1U<( z>SC2Vt%^CTSa$6HE)tU@8i}!*WKvCCFu;vNya`5K z1jYkL0sl5eY0GbIKd*%p zgEQA?iKH?76IOx;x}2ns`(jS!bXtIY_gjb}0q|i6S?E^+@DD|oOdZ@ZB07a3jLAIN z8HI;k_>?KtS(bb$d(j>1N3MHjW#!kl@2pzAY(du7zQ(S=7PQ6|?3%}C41RsF`o}}sINrO#1M$%@ZDO4EoD4!i*fA|Xi z4YfL1Y&7pBmKn(=cSv`uv-(^IT>UP2tBcKYG3o%0cB`e`WYSpx&YA>x)>i8t>k;es ztfu#^m#zG~mGNU%V!~Mi>UAqKS&i)xP!-zHEgX&;I)<3*1<*xU6}V%lNwJSfL;4tZ zTvmF0H=$cL#`-@i9$-KE3j4PkdyDQj=rLUM-9O>J$*x?YHr`}c$}CrAY8o@N$6z1v z(>L0aMweakw@1L2;fsS0-VQs+9|vdqHHXnccv*%0v-acULN#U{ctS*!1I)#$DEU{( zZmb5O^Eh&Y2%GW$B&q;&UVq|5;>WDw#8J5zR${ww{rv9em5}D)kx9QYtirw9!4{i_ z{2G%t1o{F80`gYp9_JCK3?h$QD@$uXCc`^9#f-NbU&jt2%U! z6z?_L7!#_-*@6X7Pdp_B>A_Nsaxm!CY+`hKA&v!4pU}F5(nWn=^m@Dq;YR)^zYoI; z8M2B8ZZ?S@AJDv8 zDpON?Fzv|NW68-UqG3#o_t!nljmG^=4y@0Ah^LR-@B|&3dlNcLgwk^OVm1q(^$!q{ z6Y33d5th@L&erRCb-YuDFo<3_u{i6rGB`NzbFmdJ)*js*<>p8z(jJk``JsFc{8z4h zek7|ai|+@hm3L<`HH&4D6Qco(hgpWUU`LRj3JwH$B*=nU@$TGHxjZ*FB_r;kRByZ# z+1|SF_~%kDq#9CFJ)UU*Lg}SAeC)zYjkl@=kHHcVlo}LoN&=W{L~0MT&=A-H`|*}( zWgxFQyP_QYB|a}V=#ulU=C?-o1{~#`TXrpN^1L#EmHg%elTOW_b24%Dg-u_5bZx=W zwCSt%&Ruo7XG+T8I{u)!b=!-&&kCF8mydq&bmtq1zdd~{@#!~KRWH7O=G2)rO~yY)6po_Oi_i+myvN<*|vL-5x$FV@n3FA}g?P z#Q#g%o4`j^Wc%Z{>fYOXr@PagPG|2dojr6yXCVoY8Ra?nHit&C(xb$_tfns0i8F$-~0W4 zopkr@yHuSzb?VfqQ)g)?zpY#j6xS5rTr3~1WYX;28HY3Y;f!M$T(J0BXh1WZwpkMV z$}~zj6PWF)w5);siNC{(gxLr4zBe0)Dg>ielg`B!Xm+ zGE|Iufhqk1VP7Z?GencPVpJ^7STY%>=(Z{PcB1jbtRw&V@WC&hnq`c=f94D;wJ-So zC-)ut&!?xqKJ@12*RDT$a|6EDZ9KNFHXih4!HNIcr|V0<_s7H2zAf+z#!x5bX+QXd z3)$bk(7eJW=k6@F*TZi1Z1?byt{Yq&F(}^C(sB#JaXZ|FuJtZH&BaDKZ*X!M;mh9B zZpPIgIN8Ha7IE%$az59&%E?=utlT*iw;V+`g#{2I z644AGCMa-~Wau}PJ}f4v`+!M(-$Rw^iI-!5638l5$rHS;leW7bqxQtsf^75f*}%?s1kGGy-W;p5+7dz1?OZ&2E=*-G6kfF)yc zX);;teWK;U9`_#0!x)~09Ka7h3jC;2t(Gro$wlExoR#2K(yJhCy;G@FE+`ij)uixt)ghx*#G9x&l#&Ck z*)Z0^NZ?0fdyzSP>y=iNMfB^5bt&J)u@RU*q&36p%P+IVjOD58)H_u<&%^RuY)3N7 zOJ-^AjcyTvjOTHd1`kdrQ=Du*1UIEX8Kq276r?#M+AT$@0<+l*+gqgf+GUje!g4CD z+vBjc8kn86dmLUvQoA+9ZtB+`Bgok2A+iG}BMs7jiQ%nNZu}G5!{DdJT$WHF^W-|n z9P)_RuY6UNm0tE2*7C%a-#l?^c0)sbCf|0SeENmh*ROqdaP*Hti<~id*9WZe{FT=D zIQEHg90nfXiws_Q1MpD9=4msYN@Y(avFGyGlQR2(k3HmLPuSUh=oJmi47VBNsX65L zB9F~|DECONJQ~`Mrxdv~vmuiQ%r$17mvaP$;WU&79nu5YaW1s#L zo97x)@!l)@Dx0e-vwN~DtD7tLz4Bhg2p608Pq9zk&FMYtLz^k);O$9MN3hXfjK6WP zll@Dq&^h?V@n6J#G-7H}^cee#$rj5O{al6p>AA2Mu9J>xnQBc+4Oa_O3Im1m)(TeP zNNFi94vn#7wQAW!$kVb5!n+(S+mQ{AGz;5pIc(uM$R|mvLKxwV2G}s^HII zYyK9l=)rBu()D#ta=q|NRpFZ>G#t9Jw+~w15@UvV_NN##Zs}z$&Fo@-a((UM zii3UZ_|m}<1^hGhvdTpS)aA%1@*pA_Qf84`4F{kbG_rp)er4nbjcloLhY|aCK@g;D z4r@jPg^QO#li@;A|*SMD-j#!VzO$2 zL7m%SF(fDGS7&|*61Pq_HANu*xJXNx$g$T!DajfBg&`ahx?=2Xfb*E=>kb~qk%C@@}lTiXN^;_cS`R=z=H+wJ@9 zJeWE$mE^4<&_&ocns%5T#EO56ogpTlojeYcxTl4@p(|4^LZMdgXoa(;KZ*H~B%AL} zViS{CWfBV}QJ52iIIz3n*xAG}t+0it#U_m~ZcX=PhTrA?&N;N2d>7XE9P$BDi+P3P zXK-3qt0#W*{<6QgT;pM_OrlXw2N^tV)-)(48MD&dn=K z>6>y4zrj>n?HgZtHF< zpKP6PU1yc6t)r~mYb~^Ls0JLSl(6P*_p(FYJ}AesyLV^zX1|>+Pt1niDcoyj63DI6 ze8GItteVW39C+*1yr_|r2h$XeT^ozT>!3mIAjpz&mVA3B3QuFz!OUWCVuO(;7<^$? z(FqN6KBX+i7#$dHRL~wFSKv1{pTb3uH1E!4$X86(H6k%xo$P)v_6l|i*bkZSgVcb@ zlArnkvpqxM(9iJqBTdM${dNrvzj zU<$8VOzp>5FSJ}DN0SWqXvR$pc|TI%Zyn#g!3bMN%SVheGEvpJ)Z96OPcfl>)5RP% zg8h3>Pb>{$TdbD-^77Bw=P|d^0Nz7!h6egX5ij}$+G3PeYVE8=b6}LCDSS2Gg@LXh zTh%Uph=x2jcT4781R?w~8=40ZQ5;QZl1xZ23Xrj_^!En)_nhZ+2(P3cJa|wwu zLH}#v;zwhEQK#T7|Dq=r1elk9E}s?xCSW9Ar7UGU_8M*wdk*6FtbYRbZ`Kuq{x_4bzcb~lhE`DLk(oD5qWEo z`2m)61W~@cF!oGO>=_~M%BN8s;1T&Ok%!Yj`7FU6rp2ZkhQmLwMj9)1NPpDqJLfzy z=lMDE1RpfOVJtjokG~$@6a{tVWELXAZiD*8k)D$tOqYFr980oO_RFwis2!uFCE2B< zq_!~yP{{5>;6_E7T4WD57b@@uODaejm9#KvTT)Nb$4N$GQuRDGk7%eGtCru-V^iiW zoVRV>zIlo^k8%IJ%6U9z9+T#=LMf-BU2bWw%5<8NXUmQ7rtsQzQ}0x41R_3O6JbKE zfyw-WvfyIlU=H$tA(QWy)I}n7kI05gDr&M<>-Y4<7HK}IDfFmJNU(=>V%$I+F&>1k zvr5Zn2pn~ZeP%VjmdwJKqzi`Oh12d`wDi$Z1DB6*Ssk>0^~)z->RGeD0_j!Q5rnT$ z2kl9u zsWTSlk8g<0WKY*lF7BGe+*o5FoYSoNmXblGHugm9Mr&EH%+@uteb3n~6w0Y={v&IB zHyxT^hFDJP7am+OB(L+?@1(A{e@;omszZAJr=rs#v!MSeehy?9tbZ1Z@jv^xv6Ui0 zXtl{HVUr2G0EBpspU1wjmX;ZocqNYP-K*`44fJ_|d!Z!-;T~yN(_RK~G?L>!0M{a? zL9vq2$Fpwxg7N%e&)z4lyot45D-9G{od5zR-3HhW;wVkJQ46ea-0rv+3TC3O6d&Bq zY%QAksGV)L@508gY|rRsEj|L*gN3m#$=zjnFv^A3ij??-IrbL zw=UN0I_BcM)3wIMJ6z1~s)S*goPhVDq`*ysKt_CrILrhzg4PfbB%mgd9zM^Is&t8- zwB`eWC%Qlb_V=)TAdLPd=%fKuW1S9bTIC05M-r%GEoFnfZ~}yZ8Tf+cgd$TOqaA|@ zct&@7d;_ZjETu1lC0QLUelx=TGIQD_ine?%Nv3RI6Jd3glw`KH+Z>KbG%f2o5R&?6 zN{YUP=~*a2h-<(H#78`IZsf0M7-duZ$} zlgs7PTVu5`M_SdGL35|;Iv#Z}+F%p=7fY{gMFW~6k8!)r87ZAve9NUr&%06yAC}B3NZ}`@bv&`2{IW7eP{sev^l{G6Y%#W zfR~5%B;cnBHvxXkPV<`H7c|el8*j(9Yg;i*v_d-u3zoF*U>Xai9Zlm+a5UbWb|~!( zoQ={p5sLZS+GugaTS!|LiSFr_7_RT0feqwC;*Fcy^MT$o zAAVcQs7=BKK>i8V#l_MQZTc;F$fL(@$z;nNY`K9sEq<)UEK<%G&6Z1k^^h@~$Kz^Ghw~0hjLYU=W1L^W3tN|r%2Q(t*dt2b$R({SZ*jb2AF*`LoLNWiniN`h>dplR zmJMT#wiR79^S(2A>#XfF%9qYg8nu2(Wli^cPi#1QU|Q{sV9YcIzlVLDBft^mp6u49 zZVc=Q@b$Uda``P8cV+O6sXJ2n{mI`?=GkK)O6Qok(PXm1Ve+ttc}lvIEG@l>@YNTr z7p?@LNLn>$}WC?9t;3!N(QM1I#2j zcX0B6M7d(NR*!ske(_^BHLD->^qkLSPk#RHkMl>)8`iX-B~a8dcgXOCEroDw`#ARL z@b2ENBvV4Z{3!NG?2|j5oL^M3;K@yQJT5z2&`g>{!pIcWzjIdlV78YuURQPu#ZueoSb;WPiC4vH3_YB)z^* z{ZD6+G!j|4U62o;7rc5NK3DYHWrY9K{{k%_pSjGDFCKw^ON(6@WLcfai7PL16bV||Mv_u^qO5ne!! zGSwsl78dW6l##()F25#3$^Gz0MuS(Qdc}oA-IoCZVPf~d z^}TJ|kX}CaTdX6PoZT{I;qb2Q z>9jcg?UI!5%=aVA(3<@2{NDVx^G&oLdkRb~KVMhu5#x&UFZ4rvJ`$W8JdD;VB0&Mz zmnt@1hGV26{)PzL2kfI4NT9AIA0S?R=c#p}Np~HYHD}M#5%!lHx2$YkGBQtL2V)DA z{83BBF5K=sWgfQdfM?o)vm2gxue+vl%KA}BvzM07*gk9Pxg`Deq?xk72pzr|nPAM62}T&4A=8t77O9@h z8dAcDvq%Y}pG8U-Go^$PXOR^~Ka0#TW(~QT#98EO65mJ@BfgO)M%?8@niw;si7{&y zOBm!2be=%LB4vrWm{N15Wr$y=kQA~T1B7M~D^kVaP%$Fw$0>O8!@H8TwSCNW}p zfP5gOzkr?$($Y6|4@gD#fc#sJ$$%RMjA1gA?T{|%*Bp}Yf~+#g zR$5t(waLo+tn5!#_9N??*56y@C#-Bg&ikAE9J>t5{H(;!p7668KeIagvbSQ=(Y!Nx z=kjDnUQXUb3MG{XY0&RTYftv(CnQ3#|EdcesigIyMDFyWJR41ne`cndEu~pgq+|*Q+uMVJRjhUq^%W{1y={MImeD5}7T=vfd#}zR zkXo*pb=a`06UoWM+|e^|o|&1LJ)+b3UHucr!1+bY9YVh@=8oU#a|dgR&mCUO9h1Ci zQc}Mkls?zUpQ;~=c^?5~oCeb4PAroT z+mGQlB4aX#2`fybO2tYCwvzgs9*?3yS~x*_*Q_hWn)2U!Vn^aD%F90|rz?<2!ZsOt z!VK)SOAM(H@Rt(M4SEJRo_fDwsiLMw-;I^?34BFIPwdK5|0q!rKl9N1hvu7}iv6{> ztKa|hTg_ES7pLnp0hbs4z5=d%z@^5G6r8%Z)wQNG^5WS3|6pD08QnO6{qc^|HxK!7 zQQL}9qgPKTNfwP@Q?7(-vTT-GdZE3?im8%aU>BJR#e`&R=X%sjNO3}dpq+eFkW1QD z)WJsdu=k&c4N)4{ebLWAvu4->+(o{G6882%vybs+)S1%5f^c1UvG2v6%8+AFf@(3x zMWMfWi^d9NGlFb8lF?o`?k~eod9m;Dp7NlhwEzBZl>a#YFWgUKf+}bW4(>0V#?Uv) zU(XBU_frLP$_Dk9F2up%d9!orf zO0cUDtk7%ee};4^YKg$pP#sS!56__8W`U=ZJr=uib=U4HFCaV-FEB_Wmx{Y7xWS8k zPxs^&T*nJ$v$vsnUjvHH0<8p(v9tJR$CThP>4RhP*<-TvnEE@ZvdRtOp3S~wZy!F4 z`eC8=KYUJNuPf{LIMi3BA=H=jvV-Md$6+ER|88Qdu?KOUsZ1*@gM1~d)DTm-s?vqp zm38d(9V80k|8&rZpBed$K&6Dyn9@u3W6qYiar!wIOy1BkXmwA@twWK~kO-H5{}^ z!RW{RRRq4hicrn;f$g{hcp@K2fhQB;NhLfXn>jzw-vsqpeh}VPO`lWwaXcZr6T%T8 z4Z|?TnrBp1Y(gW<>Xx51ZENwR}{@h8dHsuUcL+DzB=q88JM9 zO<#TPq>&4y7j)>L1)>j3sB*rn)~IqwMrw^6-kZF!!>lv&-Ap!5{^aualywnAgwlrP-$X5W}enWAF@2kanpEA&TUJD$>|Kg=5PQ#uKo}%!@VCr_%2+ml)A^ z)3jm6`)Ob2e#um6>NItmcAE~H-Zou?u?S9RIJMiCw@7zMd?Vihh2dga#U+_+;Z7euZlsTCw1md@a6%nj8bW8Q>0?m*5;SG{Q%*W- zqYp6n3z{7VV|yA;Rw2L`c^qEUw#v?1WM;;WBl4`m`IO1-s-DFfE7VSDKi7VzDVpY9 z*R$Z{%$}uP%-dDi#oy@qx{Ke_#ct_hGrL$z7c1#v8C~p8UF`m@pLg+%U2J(5o7TnZ zyO^Pio{%kFz8>?*ydJZg>@r&2Ghtv!0l`dpZmps!ELcz<%nRJ_N7&CJ?AZu=IKnnY z*zyRQ6Jf0p))-+G5oV60Mfl|i`#i#MVflJs)8^A`eFRrU+XcVQmpMjLKubk6e!Mvk~@SUF;^zt8!uub$h3a5))!1|Q{ z6vaOqc`3plj=gIRjx3Mx`UuO2lts8+#ItAzzghyW6^b?v!PS2w7}zNR!95W+ zGs0Q~A~OVpXeO=#zUL#1?W3l$g#wFBR6cV=*vFznjzt(h9AUd6Y)yo9M3@#~IT0pB zm}%vyDW`8eHP=1*RQc(Nr)u3rr;<)*ol=lDPUH`4`ut1m1L$uNahbF)v=yowVy^Ab z?J*PCy%Hgp`)?p?&Hfiz(8pi#0tQ~!uU@_It&id9t2ZFJTp4oP06bd!h*$jDx^>Yn zg=PrW#}sZ2mxm0YT?(-GIDaA@MK6Zdz_KS47_e(Y6TUm4Du`PiBy6vBbM^nh^~#6k zhaS1|z|iIGg9c4nF}!I7eXshBJ5ZNj*ihv56b%XF)fT1j?0<9zi~gfK)GfB$8}3=Q z7}gGfY4-C18+^XTd97pSHKwOG&WnBV4{u?|{^2e9{4rI&jm?BiCQHRy znoJQWuw{pj`*U~@n=8UloIz$e3qJfItsu+FGGMDWRr~3q@@?E0{Tgc=l);axTb#(v zCe}ph40>Y8+`~GtmE%H6G%)oU(oQ}J$q-CPVpSK2H=58B-NxPRsV?L#JMgD5Wo?(+?$G(pWv#>~7pA*|jsv_XxB}{~np|J*m zK!A0z!u|;tyqZnsL6`Ykd2CWMJ?8-ZG znR@>8{lfz7d=#L3V41EaZWpjqWqn{T1EEM~4 zpS*St9!AxRxRGyF9+7gT)h|ie@X*OdM1@q#g#s9w=Uym~eoLO9QmWx&>pjwC$O|OO z7J?uYJe%cmwPnrD;#pcs8d9!1-Qi$XQx?z2Vh&_*$dZD>iii?`!x9lX^iarLWl|g8pOIoIlHp)iXB02rYA&oHA?anpM-SEUR zI3ZQsm}Ik#Qwxmx5$5b82E!`MQMj0T7&eV zHfejq{sx}n4R~w3a&fs->9QNLS7&8O)vF9;MU|_Plb`^cXy^bX%7%v3lH^Bc;GX=K!Ufa)>inBZ;05C|8mrd_8dxe^hzvfguOM_mMXT%R*M>gQyAwhzNDH#qI`k@O zZ%IHCd+qQPA;+qCSWMUjA!jNZ#z;|1Z;G$1Z&k_IY0pAlWc`m8IJsmSrnH;uXWle2 z+A?$6%Xn2TcwkA(rUhe?e`qPHX)ai|hI}yS?JY-G&p#B7tO=M{UHi@B0}l;4yfJOd zy<6_Qaqr@~tcGdz^*PlAo|__fzL%&VCx3y+v&YyXnVcp+47nHL1&>&z%s+ z&Ck!>oVzQRABA0l2F~Hh_2io1A1j;UV@6~Zr0k>m(g(@ak&z5?2uuw@9+fn{`<%wzt>9cqo_@7@`ZJKG$Y+4C(Jzx{ z^_?dnv%<^z)RRvxUHjC-d{h3|%B6F}3)8*d!uIOJL|qj*$R zM&9u0)m5G2gU>v+^C|CRhMbDp?1%mJ?Uj`aCs)hw-+1WeQPJP4TZXNEWZqr(M1OnV zm6xsdO}DY1ZT;(Cx5nmAXf+w;Z`k6iouQ=Ae8EJ#cS;Q_x-> z$T3Pc-6U_7d5VmfrLs9q=P$%$;tXaTl3JG$o7FiChyWX5h{_WDDNc|#P&`d@SwP?3 z7TuU%7a9a*4=hmY;)VzPTj9oB=!#;#nzwgJll`Tnjmt(Yn>g6Yeo`D;K;d%OPm5zK%%$Vk-LVihJ-19BJpP{E zbz4k>d>J){&A0vd&XI$s-+~?Ug+*57E*e5;s(NVqzOI1adZ68$jZ|DsGd}(Dh0I z2EpPRf_B_EbU=o|ehUSI;qB1$^&>{yG_|U7+RdZzJ@|4X3D*0)WlhDUTDdp1tf{1^ zsoZzzVNbBFcJy59PD91`)#16@CKoo&yS;hTvT>E>U6vc#R!nEdBhM|ZsOWm`j_p5O zQc|+yhtW3>mZ@sN)(QUH30voPbWhC7o7l~7Z@Ycg;K|d?wF|~ojNbTU=bg_lDJ^c9 zTW1YVeG=2DyYJ8Z4s|~)vg(kp)qJ;~)lgKobkP~kFc$ouXd_KdL}$Z?!B3IEGEy?Q znv#;jWktzy7W<1iWiszB?k!dvh&NrVgghZ`3LS#4eR5K-U!+a`Lvu6*p9s zPFOv9LC*uX6ny&fSnKRv)ZrTl7oMQ!Yuz*PgtiZyIt)yCNhf%edBX^q=Qwc&nP#0ts zgy~yzz($+7%%Yq-4&H3moOmoZ1 z#4-qGb>xEw0SGgfn6)S%9vIctupPLFSJ|9g=1tYJ=!OvL2h0kiiqRxgn2?CB_vUA` zu~HbVq)=mrf63n?QTTDW_Sn&9UMQQsb;g{nQ;H7xf}<-2jj2pauN+x2C_FeV=H#1{ z@0XVs&Mdkz1EE$X7Y{0$ACeEk1^xIdZ@%%9*?Sh%)GXX{Vee#N?^z^0` z(Zly49bUifp4v4)_om2c~EUSqNK{ z@{*sH`ci(X!9SXNy%K`=1R;5rYNhR^N@>wg1FNN@(m9EY`&6m8{Fjp1o25vleq8Rx z4cw6$aL5%{Sf+x}yoG$wVzGd52y@;d$r8eWGx`>-Hi1UW>NN%skWDiKD?Uran?cd-&oUY)!-`B1V_oLrpj%bSg`Pc=lG&8b=8 zGd1UGxKvYF18X{Uc8;&fHxWS(&WLa=#?`*fFhBdk*XL6uU!{+md=`hhs8TKMNG?gv z>cDg)1h7;{?@*_#js6s5TeeQuuTTPR&~JQ#jT0`Aj#ol&Vg!a+BZJx%h#sI@NhL)r zGRJyT^>_(#@`1lRGpljsBMVB4a>t~889mW?&&<+c>z`e*^2qvOr8Dp8jGp*1bxdwi z>4HaAHqLtHFY5i%9{+UjvNKQLT?>Oi<=}Rq};BAu^Ot7CToLd*;%GTJB%C$yd#&j=XU0<$(3`1-Tok} zcpFrqIx8x?MHZ(w1;Ke>ts`vh=FB24f zIgh-xdha{;jF@=eZ|;m8^i|}0a)wSHQd+-oTsglRGD>Nl7fja|`xH%s{-C|@E5ih# zKiG)XT@m;5uZ2$K5&5m?ucRieSdo!^lLeu6`Mfi=h?6`)zd<3xc4fGZ;P$cGytJ zKq~_y1IBhz9k`|HzpGk)Nybz%w072K3>-j zw)k7h?Z=J8*yC)zVXiy^x&)tQmK-*@+i7$;g;wTl`dfo(h0EYVm=8WgGc6`w*j@51 zS&cd2hC3%uzOx~m)0icH$cyskH;-CVT2Q)XRP+2iqFW%Z?{$7r*^IK&HH$-&sCZX5 z=Kb`uR5HUiN{`RsA=HwBT3q?;oomaI4_{l`mHcmo8(_Nx+#e?3Mroo{)PU_~7{05U zuP=#5uC42vaJw|8Ly~RXCLl#GS%*7-5-9|Tzzkq_g?QPuWj%gvW%7rFlLWqVU|NfX zMy9(vRnyCdWgLx80et$^He8SU>)LdEPw?2am0s5`*8q4;TXUpBG*pvvobJqSpC%}Q zdWt$K4$a@`uj}w|UGH5}A4iJXLV*-8N75;g14z%k zM$U~e2(u?!b2{&QeBPYR6Y{;m*2UXyC>^g2b}CH1b4zApL!Gyvbp6P+56vz4XH!8) zE2x<^5*gW2N}J0^thix_d}L79vSpRszuG;%Y5Co4LwD`ItE&l;UujxH-cNsRb!WQv zrWVcE|9Wh1>DW4dXv(Vf>nm$!k1Sm9*jdmsCoQz{uaNCjD2Bh(G6?_6jPhvLRM#T- zq78u-4WSjNmy$`^djtoIIV<90_;fBWWvrNm*$l8zX0u6#MwxkJ_NC00%MZ&xl0TD` zYI%yxC7D^doa}(5Y*3PuC5Ld&5s4Dcd-^$jkvL@`N3zJc7SW!3;^kWbn zs(2x|z(5ahh>o<~Rfp`KSXUsVQxW{u5Oh?1AF;smm6X^IompN7<4LKR&e-!il`k*b zb{>@H7Ec~sX);x{OfJ6iBxJqMViVLK0Dnfr&MA;*O;nD;2=g4&BnUf5CMryV7}865 z0wmbB$Ut|HBAP>wwU#vBLQhQkDVOr)l~ZSwS7Q?ld%j+64E-JDBP;i3!P2^~P z)FAV)3n3gfbI#$;DV-z7at;1hMj38!=LlF$;zr4DM?}XCZbHgxW=1$dkzbf;wKVp(z!qy5%^gAF?GuqusTkDd75DW&BbG2!g>8R{yv zb&wv1_KzlF2T8HYM=h+<(vCQ7yDiFUN*72@_xz%TIV?dK-OBY}SlBTv+W9WaQOh~Y z7ZzoWh0ztd`KU$ZN6FbkWyTZmb4T=gu~30QE%r%CuEv)jM-f&Td1!&is!DjusL%$~ zWEWCH*ioXLQLOL{nspZ0J;e0lsEGfyJGwOK2Ewv=fud9+;~vyF5hs z#pMHY1r0K9UradykJ~gUUrTQD&i3*)=WHiWlWcao+LBC<)XDWNUz34zNEV1*G=Mneg(!rocS`8C#)k0Y=w3 z{K@d>*SOw&pP-ntSiv8-6(OT;N9m zITF|z;L8IH#T5o>11$mh;{f|zfb|4^8sG-XUQB#x)vdPys71@ezYnlm0^cW42{u{4 zG;wk`&^>lSn9gt=*7pN{3UDg_&4BzM!85ceOrW+>V=@A~?oWZQ1Dr1ZJ|OQ5JQ8?5 zAa4pVfXlSfDqcIs!R?U_dtd zy}L;}4~!c7T9`<%1p(C#%_e2Ak0>i! z*C8w!a6&AI*Wwh}M3CtMUczFbjDBN~<4?C>K*pcMErMB+EI|{L8&MMy4so(j(0NI~ z7sH9-2o)5xrFw?vhei}R`QTZRw!AiP@~{H>Ie6ynu?bewUXwGRO{r8~nS0l?VzYUl z#Z}xqrTp>;{44>zK^9}}O1b={lnZO@94)=TX>*1-eKeCX;)qJj7{lnJ6rqAn;JcDS z2Dx#NLt*v(bSa%aNDF-ex}GF)AF@->H`p$HYbCHIYjS2*X10?I>de$KJ2Sg84`*J? zG-g&2>dvGGG7Zl=9On?BNW(>kW_5?LM8Guv`A^HzKP)T5 zCvp{HOQHWKNq4lT)UV1Wr767_dP7G(X-tJIM+^O0tYKvNzq?jEdQWTf@`}Rdp+m9; zZ<|!yKE5rGGB^}U9lfdA-#Bd4Kf2DpDogjK+Pt|by8}UcN`~F!NHT@W_NQjMO|eR9WZ7V}ARCS3 za@s-VHYRr z3KQ3%u10`3Rkc`ccI?T*#oPgL1d|AIS$%|X>JYwYM~37Z!YgcuC^50~JH2@6pJ2gc z1~7-o`EHu^V8`GN$>7O&v)%{x9Qd5o{Um1P!yel8085EIeuihU8L{&$cOP4^j}^o| z*caQkk9f9>nDAdJW0ZCrkv(CRmSHt=6D$LtHzU@}^Gz@=k)GGL@MUmKil+^g7CBHs zfT5|Egb9*U=)F+>!<8)kEx)pFUv$X6eQcqqh{H-yLKMPtk^!Djo5&~sJxTM@ zN$uEY1!1kY=1ViG7s8+MJO&iwba?0qXbVSywV33*CB_-SbfFnb|G0LsX}*@4hkvP58`g#ed;4TTcm>LW>qwvL2ACXm|g0QifxT;<(s%6dMUbnGB>azF;b~uOe~aolrfMkRmpu?J%Y-V=RpgfLmN#S$8{tO zxTx=c*u#h47n?%Q@Vw|l@^1`Burmj9IY0K;%o66`9_F@@SQk7CP(CN!Gvc{b*U{#1 z3hC^@E{d?yGa6F($-Pr1cQ>_#0@-#`x+m9JU^YY_GEV#HrcF(i#nl$Y=PfGAhoc9` zMvXqiPol0&$^Vk1^j+vdbvDHBmU=RMFb|4XCsf@KT|Cfo_lscIJ4nUGbzN-@&)Ykz zc**eW!LYDS%}LHpS5q80&Vb2iIP$-qIU5;L>&ztWMZX{-k>vXknId6fXXsJnm~;vD zFwFTCt!Ciz&EDIy#~A*qP2h58bg!sGmGX{rqx>?Sl9=IyL5;zgfWLrjp5#c5XQ@82 z`#^NYopNz>=^lP+&*fD*oYB29)94;d&cnPRYa%)Uvjoy z#*gqENLPnLzH}WNWQj;{gj^PWfZ$N>y98|(%0MPM-~(kCrJ@t$dY3?m$tW6g6%>J! z!2&4)7(xrc0bT?=zzpCayy#`UU{t6i0CXDG(}tLQ$=HvYCc+JNZ4*ENJpfCG>#H`x zkSI&^lTj)@E}KPRMrJrA3L8KegGE_-ZxM9}T&riOyFetDSD~;tT?x2~j~mTu955;i znCd68P#mr}r2$)@Hp15dfic2*94?e)l|mX9SBVN> zZq%d$i0z_*#R@P*(K@8ceJEW(i_-eOVr$it@-oo1Q3{-fBY_#QcN9@-R0sDmQ7MfI zlo~HrFg6U1OU)P{@9)_YdjNxkv-i;_zX7~dR%x?Ykcq;KSf4ULE-~el$tcGZqBq!2 z5y1(&RWWX8?4TsprH>!;$$?`C@R_BmlL*3uct8oNv6y4j&&QRhKALnm6SO0!2Yp0; ziD4y3NM5$*-91;J%Vz|y=y$UeI?k+yGXN5C&@j=__{K{1xCOa(81FG(QA{yln4(Yt z;>3Uz1VCXz)RVC+6ejkrca0Nzn+5+8+ z#U$9yal>UZ8ubE?ihd=M5%$CS2qA}6Vj+Youo1Qv?YdMVe?*{)vVQ|!WR|MYyOD%< z5`8I%E5i-M9?f8n7OLmCAxix11i!3vNxfI%BLSF;Q&^lo=`8a~9vX+T+52(63w#|{ ztX#Ckj22js#f1orNDVCbBsX1=3>Xw}LGJJL#B!awUvA#R{&1yW&%1*Esrh1Vz<7(p zuH(z1D0Y*m!z!?(6ER^9BJXk2Wokzcj~evhM`3WTp)b)Ey+s&^a@&;xj79c`=)K19 zrI+`p@1j+L2H0A`cg@n^SAZZ8vtYb}z>Jq@B>o)&8?4U@g22Sw5M2tUBnV9Y=n@ub zf_Do3q0<-jw^3k=C{1R{X}IT@luHIiy)Gs`AS_N_H0zLAFkuV$`VFA}gHB>JAjL!| zc%3L;;0qK?y)hKPt3R{ zdN2C}nxwW|*5$kYInOH9o&tT@4ctP55={Jr%^IVszDZ&_5Bmm@U7ZHwQ=y*w0&rq*V?lFZFT~s9)2_~x zWu0#dK95~Msr6)%!Qir)nvrt`KZ(Gd=uH{`3XY&fK5n~Aocgp9weU-3CRi!(nV>*1 zUx_hGRtth(qZ9GXm+jf}uHbQk5Tkp|Cqar=^2{fR7Xd9&LkzS00O2D}pI;5uCpuj$LLg+I*8=(!vz?glNfJ@>#gqppS-}Sf;MZukI}H|r zU$Y=srI!oWqU$CI*GJ_lFdYe#eCU-X`PVFXs|#Ki4PVMmJ%`p z%_~e7sv(F(m#SxgXY{805l#AH{Kw~GtJH8@wwq`^)`uq|@e?Z$VvoTR!#Y>gMY1n) zq$YU4wUU{bXVf$L%p8}`1Sb&qy*e*Dq_I7AlgVYKQHhE9q!T(0r%ICm7xW7q!3oD@ zGjX<)1|@2ZlP?-67$~(5Sk{}VPd6b!!VCr=AYekPPQ!ftrDjZUA5ojtcXj?Ccv4&@ zMyoZm(Q36zCX+1=fB`gSA_PaTN{=+#g@nAW*LoGfIMA2#x*Qpo&E$_TR)l;e_^YUk z@N2c33BS51qRaD&z^_rhWF9D}4&<@%uB0kOZA8THVr<4`Rv}pu{SKIy9MU+=tT-Gl zv(4sAOi#oY;xd*_!6)odRj^%dxqNjh6c`2p4{RrqFI3oqh>4g4mx|tt1`-v=veYxi zFdD3^1`&fF6AcSKA=>Sh#+|Y{94UzIjYTH7g`2pA75izDCmGzrM)E|DS-tEe`Z{hW zVkWUVAzGuSiEF^%&LzD4O>G3ty=|CwOHt7RgNEm!PK5Sv*Muu3YuGOHlFA0z@gjWTOyYDu3Y}RXer*} zZrsn`A$a2VlQ4Mw{pxcA?=O{>ME_HL&hUg-V_88pWJ8^S-Q|3#2)5Kg?2?g1X%qI! z#z<|jt-b*}XtSZYS^!_)<5%k<^fa$J`Pd^5 z?%(s&i;SIma^=*~750rd)a)BpOc_;f+puVSO_sVtocZp;an+g1ch}BrE^$S~ncLUQ z(2AY6&zn@AX5J~z+}qg>N8x*Ko--_vvW3p%cCWv2Xo07D!*_4Lx4Zk^+rPU(-FEok z1N(MA`Q)=pTdQ)}cDl>a6|VG4mTk-=Z+m*zJ>Pke$vxYiSh8R_4o-I+Uf9{yF?%{4 zPq}f%ltVX6Y@_4w!S-?CkxgUhc$7AD)WeN+Av&&nU`TakSy7OV%Zm%j59DOz)3JYF zrq7@1cF?iSP07KEg>EQqBH$4muH1hv`uCEqF7_zihnFmg?!osV{e5o9l2~U~ zS8RS)mtx2FJpFyH|85+9%h|tE20a%q`O0hk$Cv-sUmiix|5Eej(`#O5|7$`2VQ2h! z9=+zzrPq9Mtlwh%Ts+M3#n0IJ`LXkzu@CV-FZR(q<9~F5eM!*i{=efF(sM9lK7sgM zKSFeZ*QH-bZ^EegpQU#Z<>0*Z2kGCX&tTyEH|f9NE7=E^Od~@O5X2f!Wf?F`&Syoe zj0ItUQU~+dCN`3dVQmaPi$qfJO!~%~$msv|c_QV3bTq2J>Ra!*{I_pB_AQX=kD@$O@-3fqEgNX*5Fey^#qpu4U&nx@aZiQgjqy!CaXW63Fnddo z3*Iq2A+;h-<|JvVG*g-*&65@(PVP!+Eqt^$N)c%bJhgX7JEc8HO!6Rhk{*+ulAe{G zmtK%g!q@u8(yP+Xq&K9q(yyg=r1zx{rGJ(FDE&$L9ML-eQ~Fwp!dw~qU&tHg!cJ8h zgXbxOp#-a7RoJ_#hlgr28x2#U@oW+V6=+s!z*fKUh7TbEj(poYKLyLpZ@v*O>Y4{q zaZk~JxAD5`Dz4QHIH%$`7jI)teo6q}ZhYqtcwhhgKfFGmZi0hd|2tlH0?tJF#yDIA zPb%uCH^Gs(o~ZZg?|8ZH__zAbrLtxHujR||N3X=U_<@g0`}*0lVc3x$ z0fCC}P;@WLn@9iooh*00_}2+M{`upyk%HpAI?Su8JpfY}f)szOY!z4S{j_EjoS6s8wMS2{%j;$aCd1{wKgWtKv* z2PEXf$=xKMzmls=xsr>5!<^OEB7A8~VOJ3N;R;~l z1D-QVd74X=4gJqz!-}3J2Ea&L9uo=KlZ5JMtmYRT^F?xx8<4; zf}3|m$uN;I++rA~{1CNDFlA(q@)>-Z^25uM>Dr#YKN@B!KcH)7&i07L{UG{i6n^~d zQCu6R?A5Os#zl`rpHcQ+o{W;Nc@8|sFbg>O!R30sh}s5S5@LHF##+-X1vJlHMp#y; zP8hElbAT6vjC>MgRR}vYGDX5-3eio>$Vad6{K>I8_QquPW-KZ8D4WkZ`8odUXce!C zz8QUu4@cQgOOGpqloG6!iljkW=BU7w0B_5koy*%YW@qqGsZ&yUw#6f*Ir7O=?gQ$? z4}d?C&)oyO1!?oSP8j!5I!ZlU=F=^=Jvn#oQ=7(&+4R)hxli8KGOd38_HpCxTF}t2 z;I47ww$HEU3kP1N+sAENP+z}bTjDOgFOEw)lzjOTR&%aXCZ|mp&%(k0pr9iM({4AM z|9! zo}5XJw_Jjf9l0*HqQ6r?w@F-qG-f6PgR69lML3-B$bPZEi6zR`E6V5%hiA`zY{Tf$ z8y=fI`|yU*%2ot2YNn$BSI~vm)KLa1O;UU;DGw>EvLtg6mg~U}Km3*R!(XxZHzn*q zmDgdp=vzRT)UaTCTibR*to}WIK+OYS8h8uc`VAPlbQ9ao7sxkD$x91(@J0r@2gGlx{Ku{v(y;L+_4_<}$nFfFvGEk6(*yLic%vExFamKLn5s>0!_ z5RcSM3*bs%TFv6{*s)`l(3Mcj=-R5PTJ(j=Ucflnh%w}na-|A*%Z-xuYI8jP0{?oy z?8z+1T%Rdt_{w~nd~$}T%(KZOkIE}+h#H7<+&QuSY||Ws^)n)VTX59Wye{NCmmVBXMKTiD>jh&#YO;W3l72X3cu= zz`y*crZF^kl$ZX;r9<>|6K0(2ZMfpdGyn9d-seRKL4e;J1coOcKpPN zKG}5tpv1%CJ9cKrj{KK9kbp>GzXpCE6!^^oO;$^t zT3u&H zw}dk*aQ3Tyoc)S$M(1%7{}`m-K$S|)4+ePJ!*nh%;21tqz)cYiWy6Elq9!UO8Z-bK zKdjt2_oey6$L-lW?mBER9dn6i2E{&@-SKihf`)R|(sz>~Noj;Ws71QxB`FB2cssJt zR}W&<1?*NBU6Y;sc$`Ub;-k^S8sXF`4uh;ZpH-(YWbPTU%YNQYNrhlM4ZC=IecABt zoVRl>iism3CF;veD@%!rIdb@)VhirTuOx>T^aR2W$Ui=aJW?o*91DeoBJudl7idb#4o zigNkgcTMHR|6g%m0$#;&rQ6ka(=G%887!oWB*dzH2LS>kAwU)aiNzQ!uB0pJf}|_1 zu8{B+@P-#KwjtPN6p%bUtXJltK-gkd}c81IK!2J!G*&IvNX@sq%S~nwh39F@)%p5g*Gfl- zk8`cd?Bm=5Hb=VSdLKIEdhTt6-|#L5SYaq)IA$DTt`MRYm~qAo>WCy%A6Il>pTjPu zsS{H5vjr=Y=haMg7jLLpR#CB5X#?7Vt5=ntTr+cQV&d4DHOr^ZNEka)pA(Wkxw`e1 znkiG3)!fpycuB-F|qs{_javsKL%Ro&2`1pxYcsjD! zZMNu0tkj=gG9m?^&_W$nY|5$Yp*B=jV)z%e%a(80u)MZ*=`HhWo>)0^#*C5`Hx|#F zS&XN-;Zfn&MOnhIOCB!>33b>bqC$r!ElNu)NeUlkvpFpG36qyh{=?$7+n24Vt?lYs zzHEwf=8P3L&6qJ`=E~(WXYx63ItC&eVka}Wepsp#c#1W^S6IWMlDHsMQXC@+@eBoY z2f`f*@<4sajUK4spqZ?YL^ZA;8$fRKlYrsq7V-e#jG8zmzOHOr^7vVER{TSQB_;Ly z_lNxDGyCn!rp&=c*J*dxtei6|A+D;ZtUa~RdNRLm>J-ncJLb$SubVaJ@Q&rn8bZg9 z&l+8JQ}@C(b#rFjv|#$=r5WfF*iw-CV-;th#ea=?A=7t1-KnO)G|-$in8x)Q>8{8wH=v8vz{{O$JExkQNt9`8>lD0jn8) zJRw*U*7CpX52cr}*wq^AbEjG*eNtON$HPyvABW9#6zCAsyGI2rz>Y{1j65aXw|5wR)47J-l683?Tu`|$`4GzhH-no3uNMT2G^8Pl~N7UfAkPoQnNjGP8FyRjwX2du?I!yz+|p>iq7m zl%(>Tm#s)c<2_!G&u~HLIcMNg%Ufu(G1~B#G7;~*5ZnJSRuzhw-enXWRBnQ_lhqo+BGwp7P-~7jYb}|P>?|2RW>ZRZ zi5J>zV&rzHhCOUzl9wf`xwsz=OUX}B<5N^@in64rkd&m1 z=#9xipOBwXSu}mP{@zVr-8-{BbwOTQWl`}6{mUkd z!@~yNhFx1=S1PLi+R|*-mIk0m-nW2b?_S+7wBX*W&EM_fyCGL! z*DM>b7O?T%squxm2+ZLsU(>PLYhrSFe1>zo^Q6;~=v?IVg0(sq4XfjlbE^DdU3u|3 zmlT~?lc0^LMo^cvdbBOt2_H4S7BVUXU&{bg0M>*7;9ub8$1SP&O*1dBSlXx{He@WG zCPrX3$%1B4o);f~eAM)&#m=%ZF=@jm=8O&RzxTx#U*t}Z*f8&w>F$M7?DqSytJ9?7 z39h@8=hI5>k8`}$5dR;2AK$E)ToeQcj0xi4jDs6 zY@NkTuj9hE^5xoTtG2DNb=d59?G=Oo-pa7N6p(vdT!f2MbJWfoWxNfhCQnw50-{0G zM+viA7RIKH&Kf_dFgbcgMby}+#F@FZ#m=uL&CMLGEcMtdGhz7niTax1lLBi${+l|a z_Ulhz9fj^fO&eYkj&G0(U6E>W9R{rTh;`hnRK>uPh>C+9HsD;KK6YX}QW6iwfkor3 zp&^fQM_9mW*I1s$(v(LqU^7El!ng_xcTv`f$2bPK(HB5E7^{Zktz>Wo`Kc4TxPJUA z%hzROE=&I&$4p&|(sT4(w#_Iv4kN{aWnpSrsM=`1->%2(vmM491b1Gxm0;a3TZpvNyK4$j5Q_(;iPA=gCEwBA`Wsrzr?{8*89j1 zmct1QpASpJBZ2_Y3~*rpa4q9viuHVb!d+L_syiR^e(4x>-6+Se@xes@q_@|rr+xMI zdOa?3{DkE2s~6R{sMJ)6{Zd+~@X&S?Uqt zYczEj-=hZLD#)fqd=h!q#s-mwK#OFoCLRX+iWXwNsuS313WbF-8?#ZZLS9~>B zzrhyodj9#Jw>I^?uy4hBjC*OQ=R0i=$vo0x?SY?ZrRZzG>6Z{5z64ALD}4%yEqY|M zURf|N?8Ax~YQ~I&4=-e^!`UiZ`>=eTnm2FahfV;zb&{uJFT`47D+@<|jGffR*i<-B zv>(qom;7-W>v|S;JB0^*!3SrlYa*vtV-YfT(;|(vO~6(Vh8dVQF_*Lo{4NNz2Uk`q z$TJqCVJjGGU?o`8`G~~4NfYuCBSXjLr)B0}?-&`GJR>V@dP;P3%8c~%8A(wOCC^`f z!wu^fB#+IQ;Y=w=jZH3ZDXs97jf+h!Oi7uQKF0dv_{^jcBa$-X<1!|U9z7xR>Yn)A ziPv2>DK9>G`sBE{$;G4cZ<;fH{G65f=@q$7nBMT{U z48vU*D^GlZEt=)UQ_%;ptOwsHa-uA%*1K)7Q{QWES-rZ&zE^iH-e!Hi=%&u1<~3`Y zi#l&Af}`AKjaOwd7NnGn430U~7;bcqH&~z#Nc&@h!wc`ed~(6PNtFc#7hBx&u8hnz z=|7}@-f8{0T4+Z=1D>H1tf9LckA*oNtpns*-)A`tdDR41&kFkvmO_I8>yL|QY}tTs z>zL&;c4|nzGbnkyDVeg@+OFus?by)}&s_;!mU}GvCaWp|^s7YaC4dI%n>e~6s;dHz zrc>~Uf)B1^u%JE09y}7{#En!>Uwz}``?f3ZkNq$fIV)^e)R!VJw{nA$P{>iIv*sjEWIQD(&s6oeF_N$oHosCugLhlXLdqVCD z(Kq1~2cgmEH2||bR1(4^b3-=S>l9)@pfTPnFsuN&I0mB(26RrxVz``;>_|p2`Yz8I z{j-+K$LvwD4?Y zs3ESAsrDbc-13=z#$&tk$B_>{IFe;y-(c9a(%y?v!J#FWjIi9JIqtD4+ap>X>mLSS z-UtS8wE5yJhZ#JkaA|(^()YjW|AFnw%lHSK2QER*euo{;QlOsf<{p8xJ zd5H!2p*PuL(-ushT3c0?kY5n8$`(6if$hrpwDB{G((0Zqp_#?hdTNUb#$lw-!L8&lsK&j33aHL z=n<+hlA{2f5<|h)N;)2F%bQUxSR7EQW#~YVyTD(Y9nuxkcGFGkV!A@JYy7q=lgd_R zB^F@))a^)N zxdqx-p$S4Mp+L)){H2moF0?{uB}y;QmI%L8_+`Sc5Pqe|Tm@Q$Qc6KtN)bvSKNfk4 zu@i4uz-nfWQX2rHeD(q8OBj`V4eb_O&?__4w#2u+bZr9vwtWr@(G zLRSb~HSh<_cd*8arN)XOtrR@#tr)s(2Td5b6_mOai*ChQh2){t#n6rUYvgRL@GIo1 z8$su5^C5Y@9<7bXw|r{5RP?%oL#dNhyH4VHC+9q_p zr1*q(4!nx=9^p3)oB{uU(4C++Dc`^$wMyNr{RFfQc~+@JiEsYr@$>*!`|);1$p|p`FmbMQt4T z6!Z?En}yyb^d6xP3f(I7VWB&O?h?9N=pImy=;jgKJffRNYQrPCc|^B1(X9=-y{+0r zw>F$T1fIHi>8qg8n634~OF^Z5z0$s3Y1t074XxRM@3l`VJij9Uda1+pQito|)rm++ zAVq!lfzm_Pi-h&i4f#dRdT2<#Q|Jbv8|A87gx)?-g|l}Eze)Hzg}-}XEz;>T>(%|j zKY%)1ueQqBhlM^mP>qxw!ta!`-<6z?i9U~uwB2&{3GhC#!Y5Yy&_m0SLfd`pp`Zz* zVvA2~@rf-y*s=}j^mZR?Ay04jDSEq4yxphh?LP5#A3Tuh^m(7??^E=7AFLpy&-)a8 z-UrP|AJaC1(&sx-?yI0|sZMFBF8EBZ>Vjm_%|h=Pcpv;$;U5;dL+CD{yM^un-2geK zK-q(O#P%NP%RORUk670u*7b;WJz`ytSl1)g^@w#nVqK3|*CTfIh+REmSC81$BX;$O zT|Ht~59~re5xX|4`=Ik?c+^Lrj|km4a8%s|>$*X2g;(4K`Q$eZ`~-9}>hms?#q@hn zpLd}|@>_&HAbGY*{%yiPEc_$F?+|{M(A`4!fZiiIY>_^=1!aAzwxASJ_Q5SEg_M18 z3v40XE|fiS3oIgKPuv2FNZAwbgS3mFcL?1q^g*Fpg>Fa9--kM3o<|2xg6@F+_dyO* zb_;z%()WOW5Ymo<-XV0e(7S{_D0HjP?Lr?GxL zk-SSJ?-I$oMDlJ)-!198C4IM~?~(L9lDq+Fsjl(J3zR6UEcSicKre+v1e2ZbIQ*bDwJ{OYHW%=A|z=PxDw zHI(&JbyU)SBlKON=aJ_*$m|1sUie<2FG$Ku$nzXZ;n{;i55dysPzqD1|8pqi8Bmt; zoO%r!KBs;o>2J!l?+HC8DYWQ0by4U?lJYtDeNw~wq=xrN4eyg0-UqF^u@~m^LSKMZ z`_xO2zYoiToB}-{{6UnvPfFaUj!DW1p>N7nr-c4iQr;E%p3wJ&o|dy`g+DL+r^0_G z^s>;;nJ#VpJm!7k)bp^qAM}?42SEGL;?LuoEz{4Vjs6GPr62SI*wrg-)GI#FD{a)P z4k2eRQK6K~Kw7tfd!VDJk3c1-bSGbqJDQK+Q9S?fU|BU7)b$5GZx&@&GBQ%ZOl5=g1T%j%R++VZmcK&X-PBgu0KDF?*& zU^mJ=py(%%jk5=!75P`t76(MD1JH^oZwjTS9gueK!yWc^)rWg4=~$fY!@ZUCR@63n z18TcZTD%YPFM(%$_DQ?VL zXw!q3GrxqE#v2wW-gH1)QSKqw2#OM+H%cV!MXer^au1>0e((oi(IMEvv#i5Iu!1Qk zt@b3tHSI)jC{ApNvNSzU$UVR9DNP1rAMM?ie=%+$I6M9+b=gcF1ei&`^ zCA=p_DBI|;w9#R);xMe(s}4&`9flR;*+z$@-VQ^5w1?<_7&XImT5(t%7s|eQSe=xs z*e-|BF5RGS$yNPw_P28OZAp1Y_;)4Gd&0jjls)$_EM@6ug?=C@7lr>&=*L1o5qeoD z`|@Gfcu5_Rc0VGma6~jef>z#!^ux$`M11%NG(Q0TU1;)(*!YTA_X>QEDQu%xU?coq zdhRQz=YI7I@tI%1AJWvT;uWvT$nYAZ^{Ln7PVu^w{+thF^}6`L>(Jx?_?IE) zb&>Nr$|8SgAP1EF>vib129zWD>yU{Qxd$B;TaH57r|PIkJ1TY^#Z?E8!d5tnzR(By z7QF7L*mYEKd_Jl;4!2YsJExjR{ydk~d4aj63`r#WQ z?U?FE{$p|%JBB(T{}H4ehbNx`W&Y!6_e-E}3GJ7&lyDppn3Ln@ajDPa>VohWq4{yh zA^n}uOOpOM@}Gd@OQ6Sv^1gFI!`X=P`gL3?Y^+-8|Yx_ZI z`zc&Yo<4R8nvk-_PGPiUI_-T+#_hLc+vsv4 ztT-z<&jxa`RzDCQ{y=p20O?F&4WE-y_neHn=fo?{L2{ouC-rjkZUi9jTgkm3u4^`$$3%Ay(sxFN{JVxW-f}(7e)R>Tzg4flu|CrwI52( z4<+Y^lJi5!`H7@|A}ODUrJv#2HR>~5)ve&6s10}=?1jHT<|WbXlGN=b(GcZGI&1#2 z=kAsL6?!o_;yB*MFjX7&>srLQ#5$og+cLTi#gSJ?0<-PRr$9@`$d3PSSDg_ zfY$-_ZwT;+kjK9BMt&>uoDJ|ce6tM;@OJP80p6kAVkr*rAzG~EVt^0TqOAPF!GGac z9ej0wkI>Ss?*;fs&1?HKz(;8_?Qdg_S6LAstsTLi!7D96B?owXH&!(P-lFBIbphUr zJbeM)277-W;O$zxK03fVv_I+P0X{^V2;iw9KU9mi{5im5RSRpdtO#wD^_D<-q;}5c z2=GzbZT98bT;O^;fC%yd9n`F~XnxJ9P1G7NZ|u~vu`6CC=474P5}=0~ajXE2$gfQW zH(zTFd{PP}`%`izzhT z1C`pLQVmpWhw56Tr{3*z`90otXN{{J2~@TjFsoKELR;c)?rL@UG#K59Ds$s1n&^X! zH2nP?>9ac<-0h8SpEJ$*je`EprQgWEOp5I^O~^v~v3=7KR$@2YsCMmQO!Kx4oW{_^*Z5S-}I$L@TDfm zVR#f)(gHx(wy2_G$Z}G6Eb;Su=zVt^3aC=J3a)*YxZ>d-99*`r`@?U zy(ZmR?ee?Z{Z3bVqqEj@zC}$Xyy(CgxX|zKn3j>z-QAt;3b=6tv`BC8w(;!$rC2{k zs}5+(PDEdBMys&}*(Q|PhK~2GMf*2)xEtM_p5}JAe0qz&4f*N7M&IP1MF;86`U z;ShhTua---`JsRlMGuw3fs*oA%|UZJ1NGP>MP?w?kfsv|&SG9M-`?_Q-flCb?P0GFP{!VABk!Py2)9rS$={nJNP3}fG zO^46B*4^Mw_xhSMx;^VW8HPMhdo#G;=tn7mat0gs|BJQ%UFG?WUj7Xn)OH!%*Qx$v z{N}F0+y}x2Odr=N3`LwqIM&>WL_ATnvfzvJa76pWY9p~PQk-@jR!AR%FZJ=-SY^eU z8%}K;Vlb2O4R^ejipb!JxZ_U7DjZXBQ%FbSW@=fu|K?z1&eQTSMi=6Hvhss+qI|R@axg1*@wH(gEwG+xvceI7we6{Qr@oJro9Y& z@^`d50DRc2{a*Wnc0h$;MSutuiCul7wXd|RY8X&~!_^3FKq0CXnB-B21&LGF0h>Gq zYX-yvq0Cr#ry8e{09E`im8=l4t5UI&z(fS1PsVxzQ-NMi$EpIEz%XZPSG0GrzCbR} z%=xN76#~;d4QmY)1KB(iD-M*X+1iKNM`{k%9w-IUxg0AHQ~>Y10P7G`0`**lO}DGD zmoRqDR!dZks#QzzZFM=8@V!y3#F_?w!EVr>;0x<2eBrzq-z(SfOQdR0jmnMhht2p( z=uvCcI@O9VcJ25&*P;C!U%K$+N%^(kX`iYt?HPR8>Bje!jp`P4tGZ3yuI^CZ(caT8 zs!do!;jH$7b^*BU^Z4F!C%>fN`^UZbYH^>sUp;_t4ER!@9@2hZ3K;VtMxERXlG`b7OseTw%Q zzNLJwey_eze^7r^U#fpq|5N>&`jh&1^=I`T>Oa+gsVnM#0ss1yx~c{cf20s^iLKDM zUmezz4$(vPFg;w4&?E6S5{(t7WAx$r2t8IGsgKg*^y~D|`WXFsJzgKHCjemU)W_*b zda|CPkJnT635eyJq)*nT=u`DHJslgmXX;scw$`h?fN0QMZ9mqv_?4cAy+i*+dsVv= zZz@}`-oZN*_UXE>ID)jmK z0)3%gso$ViX^-oRv?qYm|07WPk7Dub#oG6POx><8(ROOz)ob)xeW|_-Tg$A_Z`4=n zH|eYN)%wkPoxVnQ>GgVp-l)6vCcRm2L6p#1eVyK_x9RP=7u$ub*L`}Y?$^7pm0q{r zqi@u2!FtfQ>9^~5V7rq|`eyx3{Vx4({T}^ZeT#mdem_FH9@MvDUEqiG?b^=}$NGr= zsJ=trsef1Bg%xNY*LNe%XOI3p{U7uv^{23c_dn|Yq<>%EtN%cMM*pGyBmKvS0{UnD zS^cN_bNW90c`UBii#0M|bab_QGBamq29Bk2%qb`{e$UAc9CHH4JRY%(Oi|!>kz;n7 ztHI}OcesqBeRjPM&oOqF92~Q~&E9tRI)}?RhR<#A_!_#}np)jG;SGa)*xW|1-_?M- zr9Z5}WbLI5E{L`_8i!JpJ+^1JP=a)_uLny+=p4|}CiL9KGIR>FE~D~P?yxW3)EzG}!N5$!{M*sF}| z+l>ltcXfC>{XTC;i`!Dx-fVHVH#-&ujQ0kNUt}2Xl|$sBmag_@m#?d>)z#&X^bY-H zUt;LsGjv!oq}T}GkRSFXh7LaCP-9%xDTnZy!Kw@I9ONTvhX{!95BXuQHN^PkV6A17 z`q`vQjVA3fnsjNvs;+=lOAV{KAQ?$`0_yw z!@Gy@HxA)94)XSuhOM{AA#A1TyJ5GOtgY4C-rN~Bo4Od;Tqf(7T_#Bmms^hEi#l6f zoh=6M9pocwhEz~Q=a3&VI%H?f4jktg$GJr|zqj4n8QJK;J6R`Q&G;*9c56qAOW06X zyVvh-b$eV9WgVR!s3^%HW&XhV`RLJ-6tSqy!`^TFSUMzg*rGOfvymyrgX~``%O+)6 z=eYeY+dLP#u_I89btRH4D92XY0?x{UYzti-9WHd4w)#ewenXdD)upfSz;UHyz1m}0 z(&Dw%c$(W>mReVrBcO$)y2WFei@)klPXy%zHHZ#m2>uRpnTAKWhgc8-1&r#T{=&s} z8RvtSN}^4!x7H)Ot(nHy8r`jamm?s{dJ9ficoOd&Fp0u!>%^p1!=&~uy~pG58unOx zEnYj`&e~jAHaS@QuqjZkr33af;16opysY2|iVLa}eT{k%0hvbY1WwA2Fu7P*@rm5b z%urX8$CH(rnVl2l^0G`W+vEn%=9+1FCYNt=1twQ$az#Nd-z+UZD^Px^c`jI1R<0>G z%aoR7O3N~(Wt-BnO^vgIQZlnmJ+n=D*`}V^rsQl>a<(Zs$CR97O3pDQ=a_YoW0sL) zmXTwYkz#prdIjp75U~B z`Q{b*<`o5|Rt2Um1*R?qrY_j7Bj7g(kq&aE{v?nXmc)H8Y3-*nyEVC@rhAgw?vj%M#)VQe7 zzP#Dz!joXPaab<54|}&9LYD`Jj?nHPXTQbpW?`gErr>Ua zX}$W^$n{;gW$=;Hhlv(@o2Q-6H=XVVZ+l~?yQcv|9da4ca^$HNPp`&PY-T~ZwbkQu z**h>ljRCT(%jcEK$j{0SI5W6FHqPJ_2Z_*?Lt zW$>NhO`Z)wKB5!KwFgdwx_mxwcdNU}?+~u5BTSAmQ*NAW^mex!TsF*1@IdDgFe|oIdWu5ZZLCBP>pPp36`E6)F;Pef~RtW zMPvo#NP?6VR5jPk9F&|J)F(HnPi|1Mn8nNUOao0hl7ic6eXF-&oda#jqs{o$+GHGk z{=jcP9=aOcHldEjb#e@C^0cuPYr&o-DpES+8L z_9ncFwYse&w$2V{Y;9=ms<*YcT`08C<7z`+3~%e|4EUZqY6u_focZ~4>C@$NGUdjM zqx81&%*;G=>P9@b%IVC^T%#`+1dqYKEMq3>qcEhobz?_MUO`rn$qq6(K_)lIDQW7oVEG>Y^nu>0bt6H?v%8I$X zLd>I!CP)?#+!PRv-`iTQ~>{TG&4OM<1+(r&rW@}%Xg<fWelqYgzKi+U&OKch!QJELbtmqsr^eG<1r%n(pE z#0w#Idpjbxw_`9s{#a3c@o5sgE+#QPBK!~8`0 z5a&ab4>3N(x)9$(3=Xk9MBxzELsU;BG%F2ADTS05Aq5C0NGZi1aXduv5W~Z(c_q<1 z5x8nQt~!IVx8tfaxC;0uoFQU|cpaj3h}9udhd3QZ9T-*-qeIJx&mlTzu&mO6rllGY zImF`-jYBMst^tdq6N$r`q{Z9us}kv~U1D&^NxBw_*m|HZ@JFl)aU;a35Nkt>3UM~T zr)Uai4r#FxnNI`-5jI2|5N|-V0kH-|8W2@OlmQVncY`M~g17>r3WzBnqJVe;M%@ET zfC*1V|0DJv-z12h`9IJ_JR}7AC&H3MXtWpJRtk+up-m}D{1K$Dz}Jqi%e!A}gI!pe zjEETGVTgtyiUDX7dLTjpB1#7$1Ajzv5XV6j2QeH(a1g&i z^aimTKyF}97a})^+aQWTFdH}$#Xt-L5e&pH0JnfKfp`p}F^HZZc7n(W;wFfiAZ7xH z3C%LJc0{^y4RIIWc3t>4^te_BA}ENT0D1!7ErEJKPq#B3AJJLejLpK+0?-aZyR{fW zJG_91Fd`iolTDNZqg9D;Aija|v5Zw^6fh&q8PCUPJ|Y@`XMn72h;$;Ffl?S_N*n_t zx`|<6d^+(9#1#;`z)Tv$K^oc1TqJVe;MqL6+fH8?>A`%v@ zY}8P{QA0RS1Of2_tXEXahtC*gqbwsbmFjx89UC1e#Y}Nnjf+JxR(U=5wAop z#_&@TVqjJZecd}-E> zp~c=n4ebro4$%*WSF=}93&z#c{}@wm)JivEGy4$9Nv-xO#?dp1o-y={plAF%eUh>B zjGSlOJfr3rGtY>5#>+EW-tbR)lu@hfU+h_g%3b#AEGMRa>1U*+F?w*;gS9D zVzvOH;lZ)K4bMi;LI3X#^nb&Li1ol|f@>N7Zg>FOE+^nq97#9^?3Ga{+-Mv4ez3I} z=gt~oye}i%8B@)E&VC&cXw7G2v|v>G;CQnwAfH~vdSVM+(yS5-8yvF`Ve2_T)}we)A(c5Idkd~-OWB4Dlx>2@Ez0_(a?}+jC>Le4qF2~ zU-~v;%h9(DO#^Y|QU)S|0~+#L+G*I>kMRlZ3mIuLRxpB`@#DcUgOTGLH>eNSx8w-Y zj}b?r*CB-?P6+G?>S)*#ta)Q}?w1^lmgm_6=Dj3vR;;#4s~hr-5sEb?Z!}W(^b4tX zjIl3pPU2abB#xzx@hgGol`i6u5t9N`uSBB+B2f^7 z!U&XIh&|bZm=ngCToYXa^c$l}4qOva!e|mBmgL$<5+jP_^feJAp9CUDuv3!6eZ*o0 a!I)3b-v8Gh+`}J-#|&)Z@#Ld7T>RftGoMcY literal 0 HcmV?d00001 diff --git a/src/assets/fonts/Poppins-Bold.ttf b/src/assets/fonts/Poppins-Bold.ttf deleted file mode 100644 index 1982f38ab21303459aa1155265052ca599fa58d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155996 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 diff --git a/src/assets/fonts/Poppins-OFL.txt b/src/assets/fonts/Poppins-OFL.txt deleted file mode 100644 index 76df3b56..00000000 --- a/src/assets/fonts/Poppins-OFL.txt +++ /dev/null @@ -1,93 +0,0 @@ -Copyright 2020 The Poppins Project Authors (https://github.com/itfoundry/Poppins) - -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: -http://scripts.sil.org/OFL - - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/src/assets/fonts/Poppins-Regular.ttf b/src/assets/fonts/Poppins-Regular.ttf deleted file mode 100644 index 0bda228ade88b0bb5aac7da2c881d0c3f64d0817..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 160316 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 { /** * #664 — refuse rather than silently substituting "?" in the user's own fields. * - * These cases need no font stub: under Node the Poppins `?url` asset is a bare - * path that `fetch` cannot resolve, so the export ALWAYS takes the Helvetica - * fallback here. That is the same condition a browser hits when the font fetch - * fails, which makes this environment the natural place to test the refusal — - * the ASCII cases above prove the same path still downloads normally. + * The real, correctly-served embedded font (Liberation Sans) covers ś/ł, so + * there is nothing to refuse over on the happy path — `render-ats-pdf.fonts. + * test.ts`'s "reports nothing when the embedded font loads" pins that. To + * exercise the refusal, this block stubs `fetch` to fail and forces a fresh + * module instance via `vi.resetModules()` + a dynamic re-import (the same + * pattern `render-ats-pdf.fonts.test.ts` uses) rather than relying on the + * statically-imported `useDownloadPdf` above: `render-ats-pdf.ts` memoizes a + * SUCCESSFUL font fetch at module scope for the life of that module instance + * (#664 — so a repeat download doesn't re-fetch), and the tagging describe + * above already forced one real success against the shared instance. Without + * a fresh module, `loadBodyFontBytes()` would short-circuit on that cached + * success and never call the failing stub at all. */ describe("useDownloadPdf — glyph-loss refusal (#664)", () => { + let freshUseDownloadPdf: typeof useDownloadPdf; + + beforeEach(async () => { + vi.stubGlobal( + "fetch", + vi.fn(async () => { + throw new Error("network unavailable (simulated)"); + }), + ); + vi.resetModules(); + ({ useDownloadPdf: freshUseDownloadPdf } = await import("./useDownloadPdf.ts")); + }); + + afterEach(() => { + vi.unstubAllGlobals(); + }); + function namedResult(fullName: string): CascadeResult { const base = uploadedResult(); return { @@ -177,8 +201,27 @@ describe("useDownloadPdf — glyph-loss refusal (#664)", () => { }; } + function FreshProbe({ result }: { result: CascadeResult }) { + const score = computeAnonymousAtsScore({ + parsed: result.canonical.fields, + fieldConfidence: result.canonical.fieldConfidence, + triggers: result.triggers, + rawText: result.rawText, + sections: result.canonical.sections, + }); + api = freshUseDownloadPdf(result, score, onDownloaded); + return null; + } + + function mountFresh(result: CascadeResult): void { + container = document.createElement("div"); + document.body.appendChild(container); + root = createRoot(container); + act(() => root.render()); + } + it("refuses the download and names the field when the fallback would mangle the name", async () => { - mount(namedResult("ANNA WIŚNIEWSKA")); + mountFresh(namedResult("ANNA WIŚNIEWSKA")); await act(async () => { await api.download(); @@ -192,7 +235,7 @@ describe("useDownloadPdf — glyph-loss refusal (#664)", () => { }); it("fires no download, no analytics event and no journey mark when it refuses", async () => { - mount(namedResult("ANNA WIŚNIEWSKA")); + mountFresh(namedResult("ANNA WIŚNIEWSKA")); await act(async () => { await api.download(); @@ -209,7 +252,7 @@ describe("useDownloadPdf — glyph-loss refusal (#664)", () => { it("still downloads a pure-ASCII résumé on the same failing-font path", async () => { // The gate that keeps a font problem from blocking everyone: this is the // identical code path as the refusal above, differing only in the data. - mount(namedResult("Jane Candidate")); + mountFresh(namedResult("Jane Candidate")); await act(async () => { await api.download(); diff --git a/src/hooks/useDownloadPdf.ts b/src/hooks/useDownloadPdf.ts index e387d3d4..0be97864 100644 --- a/src/hooks/useDownloadPdf.ts +++ b/src/hooks/useDownloadPdf.ts @@ -11,7 +11,7 @@ * temporary object URL. * * Zero-egress holds, but not because nothing is fetched: the renderer DOES issue - * a `fetch` for the vendored Poppins TTFs, and this docblock previously claimed + * a `fetch` for the vendored Liberation Sans TTFs, and this docblock previously claimed * "no network request is made (no font fetch, no upload)", which was false. The * fetch targets the app's own bundled-asset origin — never a font CDN — so no * résumé bytes leave the browser, which is the actual guarantee. Say custody, @@ -22,7 +22,7 @@ * after the bytes have reached the user: the refusal below is the one thing that * stops a download, and reporting must never grow into a second one. * - * This hook owns the refusal for #664. When the Poppins fetch fails, the + * This hook owns the refusal for #664. When the font fetch fails, the * renderer falls back to Helvetica, whose WinAnsi codec replaces anything * outside it with `?` — including a candidate's own name. Rather than hand back * a PDF reading `ANNA WI?NIEWSKA`, the hook probes first and refuses, because diff --git a/src/lib/heuristics/corpus-roundtrip.known-failures.json b/src/lib/heuristics/corpus-roundtrip.known-failures.json index a2cff9ec..b6862c67 100644 --- a/src/lib/heuristics/corpus-roundtrip.known-failures.json +++ b/src/lib/heuristics/corpus-roundtrip.known-failures.json @@ -26,30 +26,5 @@ "summary", "render" ], - "baselines": { - "google-docs/google-docs-skia-proxy-classic.pdf": [ - { - "category": "experience", - "issue": 326, - "status": "accepted", - "note": "The ONLY diff is a Unicode glyph the #295 toWinAnsi() render sanitizer rewrites lossily: a role title '… Intern → Junior Engineer' round-trips as '… Intern -> Junior Engineer' (→ U+2192 → '->'). #326 records the decision: no-crash beats glyph fidelity, and a real fix needs a Unicode-capable embedded font. Delete when such a font lands." - } - ], - "unknown/weasyprint-cairo-classic.pdf": [ - { - "category": "experience", - "issue": 326, - "status": "accepted", - "note": "Same single-glyph toWinAnsi() substitution as google-docs-skia-proxy-classic; see #326's decision record." - } - ], - "unknown/extended-latin-name-roundtrip.pdf": [ - { - "category": "contact", - "issue": 664, - "status": "accepted", - "note": "full_name 'ANNA WIŚNIEWSKA' → 'ANNA WI?NIEWSKA'. ś (U+015B) is Latin Extended-A, outside WinAnsi, so toWinAnsi() degrades it to '?' on the standard-font path. ACCEPTED under #664 with an explicit written decision — not inherited from #326, whose recorded tradeoff covers a punctuation glyph in a role TITLE and does not extend to an identity field. The decision: the USER-FACING export refuses rather than degrading. useDownloadPdf calls findExportGlyphLosses() before rendering and, on the Helvetica fallback, blocks the download and names the affected fields instead of handing back a mangled name. That refusal deliberately does NOT live in renderAtsResumePdf, so this corpus row keeps exercising the un-refused path: the round-trip oracle needs a rendered PDF to measure, and it is the only fixture in the corpus with a character outside WinAnsi (verified: 0 of 57 expected snapshots contain one). So the '?' recorded here is the intentional Node/CI behaviour, not an open defect. Delete this row if a Unicode-capable font ever removes the fallback entirely. Minted under #654 as the corpus's first evidence for roundtrip-contact-value-changed." - } - ] - } + "baselines": {} } diff --git a/src/lib/heuristics/corpus.test.ts b/src/lib/heuristics/corpus.test.ts index a549a1c9..33743690 100644 --- a/src/lib/heuristics/corpus.test.ts +++ b/src/lib/heuristics/corpus.test.ts @@ -412,7 +412,7 @@ describe("corpus snapshots", () => { // The nine `*ChangedAcrossRoundtrip` bits come from the export → // re-parse hop, so they pin EXACT BITS of `pdf-lib`'s render output // AND of the font-fallback path (the current goldens were baked with - // "Poppins font embed failed, falling back to Helvetica"). A pdf-lib + // "Body font embed failed, falling back to Helvetica"). A pdf-lib // bump, a font-loading fix, or a change to `render-ats-pdf.ts` can // therefore turn corpus tests red WITHOUT any parser change. // diff --git a/src/lib/heuristics/multi-experience-roundtrip.test.ts b/src/lib/heuristics/multi-experience-roundtrip.test.ts index 1ae865d0..ed6d80f4 100644 --- a/src/lib/heuristics/multi-experience-roundtrip.test.ts +++ b/src/lib/heuristics/multi-experience-roundtrip.test.ts @@ -10,11 +10,12 @@ * reconstructed-PDF export → re-parse. The verbatim source heading of each group * is preserved (extending #285 from one heading to per-group), and the * round-trip fidelity target holds at the SECTION level on the way IN and at the - * ROLE level end-to-end (no role lost). The 2 → 2 SECTION round-trip is a #436 - * known gap: main's one-line experience header (#434) renders each role as a - * single dated line under its category heading, which the text-only re-parser - * reads as a company entry (#354 suppression) and flattens the two groups to one. - * Closing that needs the one-line-header title/company disambiguation in #436. + * ROLE level end-to-end (no role lost). The 2 → 2 SECTION round-trip currently + * holds too, but only because the export keeps main's one-line experience header + * (#434) on ONE line. When that header wraps, the text-only re-parser reads the + * dated continuation as a company entry (#354 suppression) and flattens the two + * groups to one — the #436 mechanism, still unfixed. The durable fix is the + * one-line-header title/company disambiguation tracked in #436. * * Scoring is intentionally NOT grouped — every role pools flat regardless of * label — so this file asserts only the grouping/round-trip contract; the corpus @@ -105,16 +106,45 @@ describe("#311 multiple experience sections — parse + round-trip", { timeout: expect(distinctLabels(parse1.canonical.fields.experience ?? []).length).toBe(2); // No roles lost across the round-trip — every role survives export + re-parse. expect(parse3.canonical.fields.experience?.length).toBe(parse1.canonical.fields.experience?.length); - // #436 known gap: on the way BACK OUT the grouping currently flattens to a - // single unlabeled experience section — 0 distinct category labels survive. - // Main's one-line experience header (#434) renders each role as a single - // "Title · Company, Location Dates" line under the category heading; the - // text-only re-parser then reads the dated role line under "TEACHING - // EXPERIENCE" as a company entry (`isInstitutionRepeat` / #354 suppression) - // rather than a new category, so neither category heading re-emits a - // section_label. Restoring the 2 → 2 round-trip needs the one-line-header - // title/company disambiguation tracked in #436; this assertion tightens back - // to `.toBe(2)` when #436 lands. - expect(distinctLabels(parse3.canonical.fields.experience ?? []).length).toBe(0); + // Both category labels survive the round-trip — but by GEOMETRY, not because + // #436 landed, so do not read this as the known gap being closed. + // + // The #436 mechanism is unchanged: main's one-line experience header (#434) + // renders each role as a single "Title · Company, Location Dates" line under + // its category heading, and when that line WRAPS the text-only re-parser reads + // the dated continuation as a company entry (`isInstitutionRepeat` / #354 + // suppression) rather than a new category, flattening both groups to 0 labels. + // While that header fits on one line the misread never happens. + // + // Measured on this fixture at every rung of the export fit ladder (8, 8.5, 9, + // 9.5, 10): 2 labels survive at all five. That is a wider margin than it was + // under the Poppins this engine used to embed, where the same fixture held 2 + // only at <= 8.5pt and flattened to 0 at >= 9 — Liberation Sans is narrow + // enough that the header no longer wraps at any size we ship. + // + // The assertion is still load-bearing on that header not wrapping, so a longer + // company name would put it back at 0 even now. Until #436's title/company + // disambiguation lands, a change here means the export geometry moved, not + // that the parser regressed. + expect(distinctLabels(parse3.canonical.fields.experience ?? []).length).toBe(2); + }); + + it("holds the 2 → 2 grouping at every fit-ladder rung (8, 8.5, 9, 9.5, 10)", async () => { + // Sweeps what the previous test's comment only claimed: the one-line + // experience header must not wrap at ANY rung `fitToPage` can pick, since + // the round-trip in the previous test only exercises whichever rung the + // fit pass happens to choose for this fixture. + const bytes = await fsp.readFile(FIXTURE); + const parse1 = await runCascade(new Uint8Array(bytes)); + const model = buildAtsResumeModel(parse1, scoreOf(parse1)); + + for (const bodyPt of [8, 8.5, 9, 9.5, 10] as const) { + const { bytes: exportedBytes } = await renderAtsResumePdf(model, { bodyPt }); + const parse3 = await runCascade(new Uint8Array(exportedBytes)); + expect( + distinctLabels(parse3.canonical.fields.experience ?? []).length, + `rung ${bodyPt}pt`, + ).toBe(2); + } }); }); diff --git a/src/lib/pdf/export-layout-contract.test.ts b/src/lib/pdf/export-layout-contract.test.ts index a5738614..35daa757 100644 --- a/src/lib/pdf/export-layout-contract.test.ts +++ b/src/lib/pdf/export-layout-contract.test.ts @@ -9,7 +9,7 @@ * - REVERSE-CHRONOLOGICAL entries (document order, as parsed). * - CANONICAL section headers — every heading the exporter emits must be a * header our OWN parser re-recognizes on re-upload. - * - STANDARD fonts (Poppins with a Helvetica fallback, both text-layer fonts). + * - STANDARD fonts (Liberation Sans with a Helvetica fallback, both text-layer fonts). * * This test enforces the headers half: it asserts that every heading the * exporter can emit — the canonical fallback set, PLUS every verbatim @@ -42,7 +42,7 @@ import { computeAnonymousAtsScore } from "../score/score.ts"; import type { CascadeResult } from "../heuristics/types.ts"; import type { AtsEntry, AtsResumeModel } from "./ats-resume-model.ts"; import { buildAtsResumeModel } from "./ats-resume-model.ts"; -import { renderAtsResumePdf } from "./render-ats-pdf.ts"; +import { REFERENCE_BODY_PT, renderAtsResumePdf } from "./render-ats-pdf.ts"; import { extractPdfDrawnLines, type PdfDrawnLine, @@ -147,20 +147,24 @@ function fillerEntry(bullets: number): AtsEntry { * of a 2/1 or 1/2 break strands a lone line — so it can only move whole. */ const THREE_LINE_BULLET = - "BULLETSTART partnered across engineering, product and design to land a " + - "platform initiative that measurably improved customer outcomes BULLETMID " + - "and then carried the same practice into the wider organisation BULLETEND"; + "BULLETSTART partnered closely across engineering, product, design and " + + "operations leadership to land a platform initiative that measurably " + + "improved customer outcomes across every core segment BULLETMID and then " + + "carried the same practice into the wider organisation over several " + + "subsequent quarters of sustained delivery BULLETEND"; const THREE_LINE_TOKENS = ["BULLETSTART", "BULLETMID", "BULLETEND"]; /** A bullet wrapping to exactly FOUR drawn lines, one token per line. Four is * the shortest bullet that CAN legally split (2/2), so it is the case that * exercises break placement rather than a whole-bullet reservation (#631). */ const FOUR_LINE_BULLET = - "BULLETSTART partnered across engineering, product and design to land a " + - "platform initiative that measurably improved customer outcomes BULLETTWO " + - "and then carried the same practice into the wider organisation, writing " + - "the runbooks BULLETTHREE and training the on-call rotation before handing " + - "the whole programme over to its permanent owners BULLETEND"; + "BULLETSTART partnered closely across engineering, product, design and " + + "operations leadership to land a platform initiative that measurably " + + "improved customer outcomes across every core segment BULLETTWO and then " + + "carried the same practice into the wider organisation, writing the " + + "complete set of on-call runbooks and operational playbooks BULLETTHREE " + + "and training the whole on-call rotation before handing the entire " + + "programme over to its permanent long-term owners BULLETEND"; const FOUR_LINE_TOKENS = [ "BULLETSTART", "BULLETTWO", @@ -181,11 +185,25 @@ const withFillerBefore = ], }); +/** + * Every contract in this file is about WHERE the engine breaks a page, so each + * render pins the body size instead of letting the fit pass choose it. + * + * Unpinned, these tests would be vacuous rather than wrong: the fit pass exists + * to keep a résumé on one page, and it would shrink each deliberately-oversized + * fixture below until there was no page break left to make a claim about. The + * rung itself is arbitrary — the reference size keeps the fixtures calibrated + * where they already were. + */ +const PINNED = { bodyPt: REFERENCE_BODY_PT } as const; + async function drawnLines( build: ModelBuilder, filler: number, ): Promise { - return extractPdfDrawnLines((await renderAtsResumePdf(build(filler))).bytes); + return extractPdfDrawnLines( + (await renderAtsResumePdf(build(filler), PINNED)).bytes, + ); } /** Index of the single drawn line containing `token` (fails if 0 or 2+ match). */ @@ -766,7 +784,9 @@ describe("export layout contract — keep-with-next pagination (#629)", () => { }, ], }; - const lines = await extractPdfDrawnLines((await renderAtsResumePdf(model)).bytes); + const lines = await extractPdfDrawnLines( + (await renderAtsResumePdf(model, PINNED)).bytes, + ); const pages = Math.max(...lines.map((l) => l.page)); const densest = Math.max( ...Array.from({ length: pages }, (_, i) => linesOnPage(lines, i + 1)), @@ -827,7 +847,7 @@ describe("export layout contract — the Summary body honours widow control", () * {@link bulletLinesPerPage} returns, so a `1` is the widow. */ async function summaryLinesPerPage(words: number): Promise { const lines = await extractPdfDrawnLines( - (await renderAtsResumePdf(summaryModel(words))).bytes, + (await renderAtsResumePdf(summaryModel(words), PINNED)).bytes, ); const perPage = new Map(); for (const line of lines) { @@ -843,7 +863,7 @@ describe("export layout contract — the Summary body honours widow control", () * Bracketed on both sides: the low end must fit page one entirely and the high * end must spill, which is what stops the window below from being vacuous. */ - async function spillBoundary(max = 800): Promise { + async function spillBoundary(max = 1400): Promise { expect( (await summaryLinesPerPage(0)).length, "an empty summary must not spill onto page two", diff --git a/src/lib/pdf/load-pdf-lib.ts b/src/lib/pdf/load-pdf-lib.ts index da899a06..3ad06584 100644 --- a/src/lib/pdf/load-pdf-lib.ts +++ b/src/lib/pdf/load-pdf-lib.ts @@ -12,13 +12,13 @@ * * We load `PDFDocument`, `StandardFonts`, `rgb` — the pdf-lib core the * exporter always needs — plus `fontkit`, the custom-font engine pdf-lib - * requires to embed a TrueType font (Poppins, #314) instead of relying solely + * requires to embed a TrueType font (Liberation Sans, #314) instead of relying solely * on the 14 built-in Helvetica-family fonts. `fontkit` ships no usable `.d.ts` * default-export shape (`export as namespace fontkit`), so it's typed * `unknown` here and cast at the one call site that hands it to * `doc.registerFontkit()` (render-ats-pdf.ts) — this keeps the untyped surface * to a single line rather than threading `any` through this module. Both - * fontkit and the Poppins TTF bytes it embeds are dynamic-imported / fetched + * fontkit and the TTF bytes it embeds are dynamic-imported / fetched * lazily (see render-ats-pdf.ts), so the entry chunk does not grow. */ diff --git a/src/lib/pdf/render-ats-pdf.flush-right-links.test.ts b/src/lib/pdf/render-ats-pdf.flush-right-links.test.ts index 573a2c6a..9f73f714 100644 --- a/src/lib/pdf/render-ats-pdf.flush-right-links.test.ts +++ b/src/lib/pdf/render-ats-pdf.flush-right-links.test.ts @@ -13,8 +13,8 @@ import { renderAtsResumePdf } from "./render-ats-pdf.ts"; import type { AtsResumeModel } from "./ats-resume-model.ts"; const PAGE_WIDTH = 612; -const MARGIN = 54; -const RIGHT_EDGE = PAGE_WIDTH - MARGIN; // 558 +const MARGIN = 36; // matches production's MARGIN (render-ats-pdf.ts), post-#878 +const RIGHT_EDGE = PAGE_WIDTH - MARGIN; // 576 interface Item { str: string; diff --git a/src/lib/pdf/render-ats-pdf.fonts.test.ts b/src/lib/pdf/render-ats-pdf.fonts.test.ts index 40b1fa51..b18300a5 100644 --- a/src/lib/pdf/render-ats-pdf.fonts.test.ts +++ b/src/lib/pdf/render-ats-pdf.fonts.test.ts @@ -2,12 +2,12 @@ // Copyright 2026 The offlinecv Authors /** - * render-ats-pdf.fonts.test.ts — Poppins font-embed behavior (#314). + * render-ats-pdf.fonts.test.ts — Body-font embed behavior (#314). * * Split from render-ats-pdf.test.ts because these tests need to control - * `global.fetch` (the mechanism `loadPoppinsBytes()` uses to read the - * bundled Poppins TTFs) and reset the module registry between cases — the - * module-scoped `poppinsBytesPromise` cache means a rejected fetch would + * `global.fetch` (the mechanism `loadBodyFontBytes()` uses to read the + * bundled Liberation Sans TTFs) and reset the module registry between cases — the + * module-scoped `bodyFontBytesPromise` cache means a rejected fetch would * otherwise "stick" for the rest of the file. Each case stubs `fetch`, then * `vi.resetModules()` + a fresh dynamic `import()` so it starts from a clean * cache. @@ -22,8 +22,8 @@ import type { AtsResumeModel } from "./ats-resume-model.ts"; const FONTS_DIR = fileURLToPath( new URL("../../assets/fonts/", import.meta.url), ); -const REGULAR_BYTES = readFileSync(`${FONTS_DIR}Poppins-Regular.ttf`); -const BOLD_BYTES = readFileSync(`${FONTS_DIR}Poppins-Bold.ttf`); +const REGULAR_BYTES = readFileSync(`${FONTS_DIR}LiberationSans-Regular.ttf`); +const BOLD_BYTES = readFileSync(`${FONTS_DIR}LiberationSans-Bold.ttf`); function toArrayBuffer(buf: Buffer): ArrayBuffer { return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); @@ -33,7 +33,7 @@ function toArrayBuffer(buf: Buffer): ArrayBuffer { function stubFetchSucceeds() { const fetchMock = vi.fn(async (input: string | URL) => { const url = String(input); - // Zero-egress guard (#314 AC): the URL loadPoppinsBytes() fetches must be + // Zero-egress guard (#314 AC): the URL loadBodyFontBytes() fetches must be // a local/bundled asset path, never an external host or font CDN. expect(url).not.toMatch(/^https?:\/\//); expect(url.toLowerCase()).not.toContain("fonts.gstatic.com"); @@ -108,22 +108,22 @@ const model = (text: string): AtsResumeModel => ({ sections: [], }); -// Each case does a real fontkit Poppins-embed render (the failing glyph case +// Each case does a real fontkit embed render (the failing glyph case // renders twice); slow under a coverage-instrumented full-suite `verify` run, // so scope a higher timeout to just this suite rather than bumping vitest's // global default (#360). -describe("Poppins font embed (#314)", { timeout: 20000 }, () => { +describe("Body font embed (#314)", { timeout: 20000 }, () => { afterEach(() => { vi.unstubAllGlobals(); vi.resetModules(); }); - it("embeds Poppins (a /FontFile2 TrueType program is present) when the local asset fetch succeeds", async () => { + it("embeds Liberation Sans (a /FontFile2 TrueType program is present) when the local asset fetch succeeds", async () => { const fetchMock = stubFetchSucceeds(); vi.resetModules(); const { renderAtsResumePdf } = await import("./render-ats-pdf.ts"); - const { bytes } = await renderAtsResumePdf(model("Poppins embed check")); + const { bytes } = await renderAtsResumePdf(model("Liberation Sans embed check")); expect(fetchMock).toHaveBeenCalled(); await expect(hasEmbeddedFontFile2(bytes)).resolves.toBe(true); }); @@ -139,8 +139,8 @@ describe("Poppins font embed (#314)", { timeout: 20000 }, () => { await expect(hasEmbeddedFontFile2(bytes)).resolves.toBe(false); }); - it("renders a Latin-Extended glyph (ł) under embedded Poppins that the Helvetica fallback degrades to '?'", async () => { - // Embedded path: Poppins' cmap covers "ł" (verified via fontkit). + it("renders a Latin-Extended glyph (ł) under the embedded font that the Helvetica fallback degrades to '?'", async () => { + // Embedded path: Liberation Sans' cmap covers "ł" (verified via fontkit). stubFetchSucceeds(); vi.resetModules(); const { renderAtsResumePdf: renderEmbedded } = await import( @@ -172,10 +172,11 @@ describe("Poppins font embed (#314)", { timeout: 20000 }, () => { // A NUL is strictly worse than the WinAnsi path's "?": it is invisible on // screen, and it rides into every downstream consumer of the re-parsed field. describe("a glyph the embedded font lacks (#664, embedded half)", () => { - // Verified against the vendored Poppins-Regular.ttf via fontkit's - // `hasGlyphForCodePoint`: Poppins covers "ś"/"ł" but NOT these three. + // Verified against the vendored LiberationSans-Regular.ttf via fontkit's + // `hasGlyphForCodePoint`: Liberation Sans covers "ś"/"ł" — and, unlike the + // Poppins it replaced, "→" as well (see the covered-glyph case below) — but + // NOT these two. const UNCOVERED = [ - { ch: "→", name: "rightwards arrow", want: "->" }, { ch: "★", name: "black star", want: "?" }, { ch: "✓", name: "check mark", want: "?" }, ]; @@ -199,29 +200,51 @@ describe("Poppins font embed (#314)", { timeout: 20000 }, () => { }); } - it("still embeds Poppins — the fix sanitizes, it does not fall back to Helvetica", async () => { - // Guards the conservative fallback in `makePoppinsSanitizer`: if the + // The arrow is the case that motivated #664 — a real role title read back + // out of a download with a NUL where "→" had been. Under Poppins the best + // available outcome was the "->" transliteration; Liberation Sans has the + // glyph, so the character now survives the round-trip as itself. + // + // Asserted as its own case rather than folded into UNCOVERED because the + // two make opposite claims, and this one is the reason the font changed. + it("draws → intact — Liberation Sans covers it, so no transliteration", async () => { + stubFetchSucceeds(); + vi.resetModules(); + const { renderAtsResumePdf } = await import("./render-ats-pdf.ts"); + + const { bytes } = await renderAtsResumePdf( + model("Software Engineer Intern → Junior Engineer"), + ); + const text = await extractPdfText(bytes); + + expect(text).not.toContain("\0"); + expect(text).toContain("→"); + expect(text).not.toContain("->"); + }); + + it("still embeds Liberation Sans — the fix sanitizes, it does not fall back to Helvetica", async () => { + // Guards the conservative fallback in `makeEmbeddedFontSanitizer`: if the // coverage probe silently failed we would sanitize with `toWinAnsi`, the - // "→" case above would STILL pass, and every Latin-Extended glyph would + // "★" case above would STILL pass, and every Latin-Extended glyph would // regress unnoticed. Pin that the embedded font is genuinely in use and // that both properties hold at once. stubFetchSucceeds(); vi.resetModules(); const { renderAtsResumePdf } = await import("./render-ats-pdf.ts"); - const { bytes } = await renderAtsResumePdf(model("Łukasz → Wrocław")); + const { bytes } = await renderAtsResumePdf(model("Łukasz ★ Wrocław")); const text = await extractPdfText(bytes); await expect(hasEmbeddedFontFile2(bytes)).resolves.toBe(true); expect(text).not.toContain("\0"); - expect(text).toContain("->"); + expect(text).toContain("?"); // The whole point of the embedded path, still true after the fix. expect(text).toContain("ł"); }); }); // A NUL already IN the input is a distinct class from an uncovered glyph, and - // the one the coverage probe cannot be trusted for: Poppins reports a real + // the one the coverage probe cannot be trusted for: the font reports a real // glyph for U+0000 (`hasGlyphForCodePoint(0) === true` in both vendored // faces), so a probe-first sanitizer emits it verbatim. // @@ -230,7 +253,7 @@ describe("Poppins font embed (#314)", { timeout: 20000 }, () => { // every later export. Both font paths must eat it. describe("a NUL already in the input (#664, the probe's blind spot)", () => { for (const { label, stub } of [ - { label: "embedded Poppins", stub: stubFetchSucceeds }, + { label: "embedded Liberation Sans", stub: stubFetchSucceeds }, { label: "Helvetica fallback", stub: stubFetchFails }, ]) { it(`drops a NUL under ${label}`, async () => { @@ -254,7 +277,7 @@ describe("Poppins font embed (#314)", { timeout: 20000 }, () => { // `fonts.bold` — a different TTF from `fonts.regular`. Both faces are // probed, so this holds independently of the two files' coverage // matching; without that, a Regular-only probe would be right by - // accident and a Poppins bump could silently reinstate the NUL here. + // accident and a font bump could silently reinstate the NUL here. stubFetchSucceeds(); vi.resetModules(); const { renderAtsResumePdf } = await import("./render-ats-pdf.ts"); @@ -301,8 +324,8 @@ describe("Poppins font embed (#314)", { timeout: 20000 }, () => { }); it("re-fetches after a failure instead of replaying the cached rejection", async () => { - // The defect: `poppinsBytesPromise` is memoized and the guard is - // `!poppinsBytesPromise`, so a REJECTED promise used to stay cached for + // The defect: `bodyFontBytesPromise` is memoized and the guard is + // `!bodyFontBytesPromise`, so a REJECTED promise used to stay cached for // the life of the page. Every later download replayed it without issuing // a request, which silently made "check your connection and try again" // impossible to satisfy. @@ -350,7 +373,7 @@ describe("Poppins font embed (#314)", { timeout: 20000 }, () => { }); it("reports nothing when the embedded font loads, even with Latin-Extended text", async () => { - // Poppins covers ś/ł, so there is no loss to refuse over — the whole + // Liberation Sans covers ś/ł, so there is no loss to refuse over — the whole // reason this issue's original framing stopped being accurate. stubFetchSucceeds(); vi.resetModules(); diff --git a/src/lib/pdf/render-ats-pdf.test.ts b/src/lib/pdf/render-ats-pdf.test.ts index 524ddf64..2a010da9 100644 --- a/src/lib/pdf/render-ats-pdf.test.ts +++ b/src/lib/pdf/render-ats-pdf.test.ts @@ -2,7 +2,12 @@ // Copyright 2026 The offlinecv Authors import { describe, expect, it } from "vitest"; -import { renderAtsResumePdf, toWinAnsi, parseBoldRuns } from "./render-ats-pdf.ts"; +import { + renderAtsResumePdf, + toWinAnsi, + parseBoldRuns, + REFERENCE_BODY_PT, +} from "./render-ats-pdf.ts"; import { EMPHASIS_OPEN, EMPHASIS_CLOSE, @@ -74,7 +79,9 @@ describe("renderAtsResumePdf", () => { contact: { name: "Jane Candidate", links: [] }, sections: [{ heading: "Experience", entries: manyEntries }], }; - const { bytes } = await renderAtsResumePdf(bigModel); + const { bytes } = await renderAtsResumePdf(bigModel, { + bodyPt: REFERENCE_BODY_PT, + }); const pdfjs = await import("pdfjs-dist"); const doc = await pdfjs.getDocument({ data: bytes.slice(), @@ -162,7 +169,8 @@ describe("renderAtsResumePdf", () => { headerLine: "Principal Engineer", subLine: "Global Interdisciplinary Research and Development Consortium " + - "International Institute Limited · " + + "International Institute Limited for Advanced Cross-Sector " + + "Collaborative Studies and Applied Innovation · " + "San Francisco Bay Area 2020 – 2024", bullets: [], }, diff --git a/src/lib/pdf/render-ats-pdf.ts b/src/lib/pdf/render-ats-pdf.ts index fcc87c05..3e0b7589 100644 --- a/src/lib/pdf/render-ats-pdf.ts +++ b/src/lib/pdf/render-ats-pdf.ts @@ -5,15 +5,15 @@ * render-ats-pdf — the single-column, text-only ATS PDF draw engine (#171). * * Renders an `AtsResumeModel` to PDF bytes using pdf-lib. The brand font - * (Poppins) is embedded when its vendored TTF bytes load and pdf-lib accepts + * (Liberation Sans) is embedded when its vendored TTF bytes load and pdf-lib accepts * them (#314); on ANY failure the engine falls back to pdf-lib's built-in * Helvetica / Helvetica-Bold (`StandardFonts`), so a downloaded PDF is never * blocked by a font problem. Either way: no images, no rasterization, no * network egress — every glyph is selectable, searchable text, and the - * Poppins bytes are bundled locally + fetched from the app's own origin (see + * Font bytes are bundled locally + fetched from the app's own origin (see * `loadFonts()` below), never a CDN. * - * Layout: US Letter (612×792 pt), single column, ~54pt margins. The engine + * Layout: US Letter (612×792 pt), single column, 36pt margins. The engine * tracks a `y` cursor from the top margin downward; when the next line would * cross the bottom margin it adds a page and resets the cursor. Long lines are * word-wrapped by measuring with `font.widthOfTextAtSize`; bullets get a "• " @@ -91,14 +91,16 @@ import { type BulletSplit, type RenderFinding, } from "./render-findings.ts"; -import poppinsRegularUrl from "../../assets/fonts/Poppins-Regular.ttf?url"; -import poppinsBoldUrl from "../../assets/fonts/Poppins-Bold.ttf?url"; +import bodyFontRegularUrl from "../../assets/fonts/LiberationSans-Regular.ttf?url"; +import bodyFontBoldUrl from "../../assets/fonts/LiberationSans-Bold.ttf?url"; // ── Page geometry (points) ──────────────────────────────────────────────────── const PAGE_WIDTH = 612; // US Letter const PAGE_HEIGHT = 792; -const MARGIN = 54; +// 54 → 36 (#878): narrower margin recovers page width for the fit ladder's +// larger rungs; #878's own contact-line example (540.0pt) is worked out at 36. +const MARGIN = 36; const CONTENT_WIDTH = PAGE_WIDTH - MARGIN * 2; const CONTENT_BOTTOM = MARGIN; // Drawable height of a FRESH page — `newPage()` resets the cursor to @@ -111,7 +113,7 @@ const USABLE_PAGE_HEIGHT = PAGE_HEIGHT - MARGIN - CONTENT_BOTTOM; // // Font-signal stance (#284, Part 2 — documented limitation, not a fix here). // This engine DOES emit bold (Helvetica-Bold) and a real type scale — a role -// header is bold at SIZE_HEADER, its date muted at SIZE_SUB, bullets at SIZE_BODY. +// header is bold at `t.header`, its date muted at `t.sub`, bullets at `t.body`. // Those signals are, however, invisible to the round-trip: our own text-only // parser classifies role title / company / bullet purely from text shape and // x/y geometry — `groupIntoLines` collapses per-glyph `fontSize`/`fontName` away @@ -123,32 +125,101 @@ const USABLE_PAGE_HEIGHT = PAGE_HEIGHT - MARGIN - CONTENT_BOTTOM; // separate change (it would touch `groupIntoLines` retention + `entry-blocks` // anchoring) and is intentionally out of scope here; if we later want // font-aware parsing, file it as its own follow-up. -const SIZE_NAME = 18; -// Professional headline under the name (#425) — regular weight, sized between -// the name and the contact line so it reads as a subordinate title, not a -// second name. -const SIZE_HEADLINE = 11; -const SIZE_CONTACT = 9; -const SIZE_SECTION = 11; -const SIZE_HEADER = 10.5; -const SIZE_SUB = 9.5; -const SIZE_BODY = 10; - -// Line-height multiplier applied to the font size for vertical advance. -const LINE_GAP = 1.25; -// Extra vertical breathing room (points) between blocks. -const GAP_AFTER_CONTACT = 10; -const GAP_BEFORE_SECTION = 12; -const GAP_AFTER_RULE = 6; -const GAP_BETWEEN_ENTRIES = 7; -const GAP_AFTER_HEADER = 2; -// Vertical space the section-heading rule consumes (`drawRule`). Named because -// the keep-with-next reservation for a section heading must include it (#629) — -// the heading, its rule, and the first line of its content move as one unit. -const RULE_HEIGHT = 2; +// Every size and gap below is expressed at ONE reference body size and scaled +// together by {@link makeTypeScale}, because the fit pass re-renders the same +// résumé at successively smaller rungs and the proportions have to survive the +// shrink. Scaling the body text alone does not work: the gaps, the rule and the +// name block are ~140pt of fixed overhead — roughly 19% of the usable page — so +// leaving them at full size cuts the achievable shrink by about a third. +/** The body size {@link BASE} is written at. Exported so a test that must hold + * geometry still — every pagination contract — can pin the size the fit pass + * would otherwise choose for it. */ +export const REFERENCE_BODY_PT = 8.5; +const BASE = { + name: 18, + // Professional headline under the name (#425) — regular weight, sized between + // the name and the contact line so it reads as a subordinate title, not a + // second name. + headline: 11, + contact: 9, + section: 10, + header: 9.5, + sub: 8.5, + body: 8.5, + gapAfterContact: 7, + gapBeforeSection: 7, + gapAfterRule: 3, + gapBetweenEntries: 3, + gapAfterHeader: 2, + // Vertical space the section-heading rule consumes (`drawRule`). Named because + // the keep-with-next reservation for a section heading must include it (#629) — + // the heading, its rule, and the first line of its content move as one unit. + ruleHeight: 2, +} as const; + +/** Line-height multiplier applied to the font size for vertical advance. A + * ratio, so it is the one value {@link makeTypeScale} must NOT scale. + * 1.25 → 1.15 (#878): the old value was tuned against the fixed 8.5pt body; + * at the fit ladder's larger rungs it cost more vertical space than the + * bigger type needed, so it's tightened here alongside the margin change. */ +const LINE_GAP = 1.15; + +/** Every point-valued layout input for one render pass, at one body size. */ +export type TypeScale = { readonly [K in keyof typeof BASE]: number } & { + /** The rung this scale was built at — what the fit pass selected. */ + readonly bodyPt: number; +}; + +/** + * Build the type scale for a body size, holding every proportion fixed. + * + * `makeTypeScale(REFERENCE_BODY_PT)` reproduces {@link BASE} exactly, so the + * geometry at the reference rung is the same layout this engine drew before the + * fit pass existed — the property `render-ats-pdf.type-scale.test.ts` pins. + */ +export function makeTypeScale(bodyPt: number): TypeScale { + const k = bodyPt / REFERENCE_BODY_PT; + const scaled = Object.fromEntries( + Object.entries(BASE).map(([key, pt]) => [key, pt * k]), + ) as { [K in keyof typeof BASE]: number }; + return { ...scaled, bodyPt }; +} + +/** + * Body sizes the fit pass tries, largest first (#-fit). + * + * The rungs are 0.5pt apart because the page height a résumé occupies is + * quantized by wrap counts — a three-line bullet stays three lines until it + * drops to two — so a finer ladder costs renders without moving the break. + * + * The floor is a READABILITY floor, not a layout one: at 8pt Liberation Sans + * the x-height is 4.22pt, which is about as small as résumé body text can be + * set and still survive a recruiter skim on screen. {@link fitToPage} ships + * whichever rung achieves the fewest pages (tie-broken to the largest) — see + * its docblock for the exact rule, which is narrower than "the floor" or "the + * top rung": a résumé that spills at every rung ships at whichever rung first + * reaches the minimum page count, not necessarily either extreme. + */ +const FIT_LADDER = [10, 9.5, 9, 8.5, 8] as const; + +/** How far {@link Layout.fitToOneLine} may shrink the contact line before it + * gives up and lets it wrap. Below this the line stops reading as contact + * detail and starts reading as a mistake. */ +const CONTACT_MIN_SIZE_RATIO = 0.8; + +/** + * The shave {@link Layout.fitToOneLine} applies to the size it computes. + * + * `size * CONTENT_WIDTH / width` is the exact fitting size in the reals, but + * re-multiplying it by the font's width-per-point in binary floating point can + * land a hair ABOVE `CONTENT_WIDTH` — enough for the wrapper's `<=` test to + * fail and hand back the two-line contact this whole path exists to prevent. + * One part in a billion is far below a rendering difference and far above the + * rounding error. + */ +const FIT_ONE_LINE_SHAVE = 1 - 1e-9; const BULLET_MARKER = "• "; -const BULLET_INDENT = 12; // hanging-indent width for wrapped bullet lines // Minimum drawn lines of a wrapped bullet that must land on EACH side of a page // break it straddles — the orphan half (#629, no lone line at a page bottom) and @@ -280,9 +351,9 @@ const WINANSI_TRANSLITERATIONS: Record = { * * An embedded font is not a licence to skip sanitization. pdf-lib does not * throw on a code point the embedded font lacks — it emits the font's - * `.notdef` glyph, which extracts back as **U+0000**. So a character Poppins + * `.notdef` glyph, which extracts back as **U+0000**. So a character the font * has no glyph for (U+2192 "→", U+2605 "★", U+2713 "✓" — verified against the - * vendored `Poppins-Regular.ttf`) survived to `drawText` unsanitized and + * vendored `LiberationSans-Regular.ttf`) survived to `drawText` unsanitized and * landed in the downloaded PDF as a NUL byte. Re-parsing that PDF reads the * NUL straight back into a user-facing field (a role title, a name), where it * is invisible on screen and travels into every downstream consumer. @@ -293,12 +364,12 @@ const WINANSI_TRANSLITERATIONS: Record = { * font could not reproduce it. * * `hasGlyph` is the font's own coverage predicate, so this degrades ONLY what - * the font genuinely cannot draw. Latin-Extended glyphs Poppins does cover + * the font genuinely cannot draw. Latin-Extended glyphs the font does cover * (e.g. "ś" in a candidate's name) still pass through untouched — the reason * the embedded path skipped `toWinAnsi()` in the first place, preserved here. * * The predicate is NOT trusted for control characters, which are dropped - * before it runs: Poppins answers `true` for U+0000, so a NUL already in an + * before it runs: the font answers `true` for U+0000, so a NUL already in an * input field (re-uploading a PDF exported by a pre-fix build puts one there) * would otherwise pass the probe and ride straight back out. */ @@ -316,7 +387,7 @@ function toEmbeddedFontSafe( continue; } // Other C0/C1 control characters: drop silently (as toWinAnsi does). - // This MUST precede the coverage probe. Poppins reports a real glyph for + // This MUST precede the coverage probe. The font reports a real glyph for // U+0000 (`hasGlyphForCodePoint(0) === true` in both vendored faces — the // one control code point it claims), so probing first would let the exact // byte this function exists to eliminate through verbatim, and would make @@ -394,16 +465,16 @@ type Doc = Awaited>; type Page = ReturnType; type PdfFont = Awaited>; -// ── Poppins font embed (#314) ───────────────────────────────────────────────── +// ── Body font embed (#314) ──────────────────────────────────────────────────── // -// The Poppins TTF bytes are bundled as Vite assets (imported via `?url` above +// The Liberation Sans TTF bytes are bundled as Vite assets (imported via `?url` above // — the same mechanism `src/main.tsx` uses for the pdfjs worker) and fetched // from the app's own bundled-asset origin at download time. That `fetch()` // never leaves the browser's own origin, so it does NOT violate offlinecv's // zero-egress guarantee — this is loading a local asset, not calling a font // CDN (e.g. `fonts.gstatic.com`), which is explicitly forbidden here. // Cached module-scoped so repeat downloads reuse the same fetched bytes. -let poppinsBytesPromise: Promise<{ +let bodyFontBytesPromise: Promise<{ regular: ArrayBuffer; bold: ArrayBuffer; }> | null = null; @@ -427,31 +498,31 @@ async function fetchFontBytes(url: string): Promise { return res.arrayBuffer(); } -function loadPoppinsBytes(): Promise<{ +function loadBodyFontBytes(): Promise<{ regular: ArrayBuffer; bold: ArrayBuffer; }> { - if (!poppinsBytesPromise) { - poppinsBytesPromise = Promise.all([ - fetchFontBytes(poppinsRegularUrl), - fetchFontBytes(poppinsBoldUrl), + if (!bodyFontBytesPromise) { + bodyFontBytesPromise = Promise.all([ + fetchFontBytes(bodyFontRegularUrl), + fetchFontBytes(bodyFontBoldUrl), ]) .then(([regular, bold]) => ({ regular, bold })) .catch((err: unknown) => { // Clear the memo on failure so the NEXT call re-fetches (#664). // - // The guard above is `!poppinsBytesPromise`, so without this the + // The guard above is `!bodyFontBytesPromise`, so without this the // REJECTED promise stays cached forever: one transient blip degraded // every subsequent download for the life of the page, even after the // network recovered. That also made a user-facing "try again" a lie — // the retry resolved to the same stored rejection without issuing a // request. Only the failure path is cleared; a successful fetch stays // memoized, which is what this cache is for. - poppinsBytesPromise = null; + bodyFontBytesPromise = null; throw err; }); } - return poppinsBytesPromise; + return bodyFontBytesPromise; } /** One field whose text the Helvetica fallback cannot draw intact (#664). */ @@ -484,7 +555,7 @@ export interface ExportGlyphLoss { * which is the complement of this, not a replacement: reporting never * refuses. * 2. **Empty when the embedded font loads.** It shares the memoized - * {@link loadPoppinsBytes}, so the probe and the subsequent render make one + * {@link loadBodyFontBytes}, so the probe and the subsequent render make one * fetch attempt between them, not two. On the failure path the memo is * cleared (that is what makes Retry work), so a *no-loss* résumé costs a * second failing attempt when the render then re-tries — acceptable, since @@ -495,7 +566,7 @@ export interface ExportGlyphLoss { * outside WinAnsi. * * Deliberate limit: this covers the **fallback** path only. On the embedded path - * `toEmbeddedFontSafe` can still emit `?` for a code point Poppins lacks (`★`, + * `toEmbeddedFontSafe` can still emit `?` for a code point the font lacks (`★`, * `✓`) — decorative symbols, not identity fields, and outside #664's scope. That * half is now REPORTED rather than refused, by the export findings * `renderAtsResumePdf` returns (#621); this remains the only gate that stops a @@ -514,7 +585,7 @@ export async function findExportGlyphLosses( model: AtsResumeModel, ): Promise { try { - await loadPoppinsBytes(); + await loadBodyFontBytes(); return []; } catch { // The embedded font is unavailable, so the render below would fall back to @@ -539,7 +610,7 @@ export async function findExportGlyphLosses( /** * Load the `{ regular, bold }` font pair the renderer draws with. Tries - * embedding the vendored Poppins TTFs (registering `@pdf-lib/fontkit` first, + * embedding the vendored Liberation Sans TTFs (registering `@pdf-lib/fontkit` first, * since pdf-lib's built-in `embedFont` can only parse the 14 standard fonts * without it); on ANY failure — fetch error, corrupt bytes, an embed * rejection — falls back to pdf-lib's built-in Helvetica / Helvetica-Bold, so @@ -548,7 +619,7 @@ export async function findExportGlyphLosses( * Returns the `sanitize` step to run before every `drawText`, chosen to match * the font that was actually loaded — never skipped. On the Helvetica fallback * that is `toWinAnsi()` (StandardFonts encode WinAnsi only, #295); on the - * embedded path it is {@link toEmbeddedFontSafe} bound to Poppins' own glyph + * embedded path it is {@link toEmbeddedFontSafe} bound to the embedded font's own glyph * coverage, because an embedded font silently emits `.notdef` (extracting as * U+0000) for a glyph it lacks rather than throwing. * @@ -575,10 +646,10 @@ async function loadFonts( // that hands it to pdf-lib's `registerFontkit` — the narrowest possible // untyped surface, rather than threading `any` through load-pdf-lib.ts. doc.registerFontkit(parts.fontkit as Parameters[0]); - const bytes = await loadPoppinsBytes(); + const bytes = await loadBodyFontBytes(); // `subset: true` prunes the embedded font to only the glyphs the résumé // actually uses — a downloaded PDF touches ~60–80 glyphs, so this trims the - // full Poppins Regular + Bold (a few hundred KB) down to what's on the page. + // full Liberation Sans Regular + Bold (~276KB) down to what's on the page. // Orthogonal to the sanitizer choice: subsetting prunes unused glyphs, it // doesn't change which code points the font can encode. const regular = await doc.embedFont(bytes.regular, { subset: true }); @@ -586,11 +657,11 @@ async function loadFonts( return { regular, bold, - sanitize: makePoppinsSanitizer(parts, bytes.regular, bytes.bold), + sanitize: makeEmbeddedFontSanitizer(parts, bytes.regular, bytes.bold), }; } catch (err) { console.warn( - "Poppins font embed failed, falling back to Helvetica:", + "Body font embed failed, falling back to Helvetica:", err, ); } @@ -600,8 +671,8 @@ async function loadFonts( } /** - * The sanitizer for the embedded-Poppins path: {@link toEmbeddedFontSafe} - * bound to Poppins' real coverage, read off the same TTF bytes pdf-lib just + * The sanitizer for the embedded-font path: {@link toEmbeddedFontSafe} + * bound to Liberation Sans' real coverage, read off the same TTF bytes pdf-lib just * embedded (so the predicate cannot drift from the font on the page). * * BOTH faces are probed and a code point must be covered by both to survive. @@ -610,7 +681,7 @@ async function loadFonts( * files happen to have identical coverage today (diffed across U+0020–U+10FFFF * minus surrogates: zero differences), so a Regular-only probe would be * correct by accident; requiring both makes the fix independent of that, so a - * weight swap, a variable-font migration or a Poppins bump cannot silently + * weight swap, a variable-font migration or a font bump cannot silently * reinstate `.notdef` in bold text. * * Coverage is memoized per byte-buffer and probed lazily — `hasGlyphForCodePoint` @@ -619,11 +690,11 @@ async function loadFonts( * * Falls back to `toWinAnsi` if fontkit can't parse the bytes here for any * reason. That is deliberately the CONSERVATIVE direction: `toWinAnsi` may - * degrade a Latin-Extended glyph Poppins could have drawn, but it can never + * degrade a Latin-Extended glyph the embedded font could have drawn, but it can never * emit a NUL — and a fallback that silently returned the text unsanitized * would reinstate the exact defect this function exists to prevent. */ -function makePoppinsSanitizer( +function makeEmbeddedFontSanitizer( parts: PdfLibParts, regularBytes: ArrayBuffer, boldBytes: ArrayBuffer, @@ -653,7 +724,7 @@ function makePoppinsSanitizer( return (text) => toEmbeddedFontSafe(text, hasGlyph); } catch (err) { console.warn( - "Poppins glyph-coverage probe failed, sanitizing to WinAnsi:", + "Body font glyph-coverage probe failed, sanitizing to WinAnsi:", err, ); return toWinAnsi; @@ -835,16 +906,26 @@ class Layout { */ private pageOrdinal = 1; + /** How many pages this layout has drawn on so far — 1 until a break. Read by + * {@link fitToPage} to decide whether a rung fit. */ + get pageCount(): number { + return this.pageOrdinal; + } + constructor( private doc: Doc, private fonts: { regular: PdfFont; bold: PdfFont }, + /** The point sizes and gaps for this pass. Public because the module-level + * draw helpers below all receive a `Layout` and read their sizes off it — + * which is what keeps a single rung's geometry internally consistent. */ + readonly t: TypeScale, private black: RGB, private gray: RGB, // Literal-string constructor from pdf-lib, used to build Link-annotation // `/URI` values (#425 — see `registerLink`). private pdfString: PdfLibParts["PDFString"], // The font-matched sanitizer every string passes through before it is - // measured or drawn — `toWinAnsi` on the Helvetica fallback, Poppins' + // measured or drawn — `toWinAnsi` on the Helvetica fallback, the embedded font's // coverage-aware sanitizer on the embedded path (see `loadFonts`). It is // never a no-op: an embedded font emits `.notdef` (which extracts as // U+0000) for a glyph it lacks, so "the font can encode it" is a claim @@ -862,6 +943,27 @@ class Layout { this.pageOrdinal++; } + /** + * Hanging indent (pt) for a wrapped bullet at `size` — exactly the width of + * {@link BULLET_MARKER}, so a continuation line starts under the first line's + * TEXT rather than a fixed distance from the margin. + * + * Measured off the font rather than carried as a scale constant. It was a + * constant (12pt at the reference size, ~14pt at the top rung) against a + * marker only ~6pt wide, which drew every wrapped bullet's tail visibly + * further right than the text it continues. A constant also cannot follow a + * font swap: the correct value is a property of the marker glyph, not of the + * layout. + * + * Still clear of `isWrappedContinuation`'s `markerX + 2` threshold + * (entry-blocks.ts) at every rung — the marker sits at `MARGIN` and its own + * width is the smallest indent that puts the tail past it — so the re-parse + * still folds a wrapped tail back into the bullet it belongs to. + */ + bulletIndent(size: number): number { + return this.fonts.regular.widthOfTextAtSize(BULLET_MARKER, size); + } + /** * Register a clickable URI link annotation over the rect `[x0,y0,x1,y1]` (all * in pdf-lib's bottom-origin page space, matching `this.y`) on the current @@ -1090,7 +1192,7 @@ class Layout { rValue: string; rSize: number; } { - const size = opts.size ?? SIZE_BODY; + const size = opts.size ?? this.t.body; const font = opts.bold ? this.fonts.bold : this.fonts.regular; const x = opts.x ?? MARGIN; // Sanitize LAST — after the case transform — so a case-expansion can never @@ -1136,6 +1238,56 @@ class Layout { return lines.length * lineHeight; } + /** + * The largest size at or below `size` that draws `text` on ONE line, floored + * at `CONTACT_MIN_SIZE_RATIO * size`. + * + * Used for the contact line, which must not wrap. It is not a cosmetic + * preference: the re-parse reads contact fields off a single header line, so + * a contact line that wraps loses whichever links land on the continuation — + * `latex/multi-degree-coursework.pdf` drops its `linkedin_url` exactly this + * way. That was unreachable while the export drew at one fixed size and the + * fixtures happened to fit; the fit pass can now choose a rung a point and a + * half larger, which is enough to push a long contact line over. + * + * Returns a size, not a decision: if even the floor will not fit, the caller + * splits the line at a field boundary ({@link contactSplitIndex}) or, failing + * that, draws at the floor and lets it wrap. Legibility wins over a guarantee + * we cannot make for an arbitrarily long contact line. + */ + fitToOneLine(text: string, size: number): number { + return Math.max(size * CONTACT_MIN_SIZE_RATIO, this.oneLineSize(text, size)); + } + + /** + * The size at which `text` exactly fills one line, UNFLOORED — the same + * quantity {@link fitToOneLine} returns before the readability floor is + * applied, capped at `size` for text that already fits. + * + * Separate because the floor makes every over-long candidate score + * identically, which is useless to a caller choosing BETWEEN candidates + * (see {@link contactSplitIndex}). Sizing a draw still goes through + * `fitToOneLine`; this only ranks. + */ + oneLineSize(text: string, size: number): number { + const width = this.fonts.regular.widthOfTextAtSize( + this.sanitize(text), + size, + ); + if (width <= CONTENT_WIDTH) return size; + return (size * CONTENT_WIDTH * FIT_ONE_LINE_SHAVE) / width; + } + + /** + * Whether `text` draws on ONE line at `size` — measured through the same + * wrapper that will draw it, so the answer cannot disagree with the draw. + * {@link fitToOneLine} returns a size rather than a verdict, so this is how a + * caller learns whether the floor was enough. + */ + fitsOneLine(text: string, size: number): boolean { + return this.resolveDrawLines(text, { size }).lines.length === 1; + } + /** * Draw a wrapped block of text. `x` is the left edge; `hangingIndent` * indents continuation lines (for bullet hanging indent). `atomicSegments` @@ -1495,14 +1647,14 @@ class Layout { } drawRule() { - this.ensure(RULE_HEIGHT); + this.ensure(this.t.ruleHeight); this.page.drawLine({ start: { x: MARGIN, y: this.y }, end: { x: PAGE_WIDTH - MARGIN, y: this.y }, thickness: 0.75, color: this.gray, }); - this.advance(RULE_HEIGHT); + this.advance(this.t.ruleHeight); } } @@ -1515,11 +1667,147 @@ export interface RenderAtsPdfResult { /** Empty for a clean résumé — the common case, and the one that must render * no warning chrome at all downstream. */ findings: RenderFinding[]; + /** The body point size this render was drawn at — the rung {@link fitToPage} + * selected, or `bodyPt` if the caller pinned one. */ + bodyPt: number; + /** Pages the render produced. `1` whenever the fit pass succeeded. */ + pages: number; +} + +/** + * Where to break a contact line that will not hold one row — an index into + * `parts`, everything from it moving to the second row. + * + * Only indices at or below the links boundary are considered, so the links + * move down together and are never split between rows: they are the parts most + * likely to overflow (a URL slug is the longest field on the line) and the ones + * the re-parse can least afford to lose track of. + * + * Among those, the winner is the index that lets the rows be drawn LARGEST — + * scored by the size the wider of the two rows can hold, which is what the + * caller will set both rows at. That reduces to "the boundary itself" whenever + * the boundary already yields two rows that fit, and degrades usefully when it + * does not: moving one more field down is worth it exactly when it buys type + * size. Ties go to the larger index, keeping the break as close to the links + * boundary as the geometry allows. + * + * `parts` always leads with the email when there is one, so the returned index + * is at least 1 and the email never leaves the first row. + */ +function contactSplitIndex( + layout: Layout, + parts: readonly string[], + linkCount: number, +): number { + const boundary = Math.max(1, parts.length - linkCount); + const size = layout.t.contact; + let best = boundary; + let bestFit = -1; + for (let cut = boundary; cut >= 1; cut--) { + const fit = Math.min( + layout.oneLineSize(parts.slice(0, cut).join(" • "), size), + layout.oneLineSize(parts.slice(cut).join(" • "), size), + ); + if (fit > bestFit) { + bestFit = fit; + best = cut; + } + } + return best; } /** - * Render an ATS résumé model to PDF bytes, plus the export findings gathered - * while drawing them (#621). + * Draw the header's contact line — one row when it fits, a field-boundary + * split into two when it doesn't, falling back to a single wrapping row when + * even the split can't produce two clean rows. Split out of + * {@link renderAtsResumePdfAtSize} (#878) so that function's own complexity + * doesn't grow with the contact-line decision tree. + */ +function drawContactLine(layout: Layout, contact: AtsResumeModel["contact"], muted: RGB): void { + // Work authorization (#792) sits after location and before the links, so the + // statement rides the existing contact line and costs the header no extra + // row. It is deliberately absent from `linkSpans` below: it is a sentence, + // not a URL, so it receives no clickable overlay and no scheme-stripping. + const identityParts = [contact.email, contact.phone, contact.location, contact.workAuthorization].filter( + (p): p is string => Boolean(p), + ); + const contactParts = [...identityParts, ...contact.links.filter(Boolean)]; + if (contactParts.length === 0) return; + + // Clickable overlays (#425): email → mailto:, each scheme-stripped link slug + // → its real target. The visible text stays the shortened display; the + // annotation carries the real target. Annotations are outside the content + // stream, so the text round-trip is unaffected. + // + // The href is the ORIGINAL parsed URL (`contact.linkHrefs`, aligned with + // `links`) rather than one rebuilt from the `www.`-stripped display: rebuilding + // `https://${slug}` from the display would force `https` and drop any `www.` + // the source URL carried, so a portfolio/website served only at `www.host` or + // over `http` would get a 404-ing link. The display stays `www.`-less; only + // the click target uses the original. + const emailSpans = contact.email + ? [{ display: contact.email, href: `mailto:${contact.email}` }] + : []; + const linkSpans = contact.links.map((link, i) => ({ + display: link, + href: contact.linkHrefs?.[i] ?? `https://${link}`, + })); + const contactLine = contactParts.join(" • "); + // Sized to hold one line (see `fitToOneLine`) — a wrapped contact line + // costs the re-parse whichever links land on the continuation. + const fitted = layout.fitToOneLine(contactLine, layout.t.contact); + const drawSingleLine = () => + layout.drawText(contactLine, { + size: fitted, + color: muted, + linkSpans: [...emailSpans, ...linkSpans], + }); + + if (layout.fitsOneLine(contactLine, fitted)) { + drawSingleLine(); + return; + } + if (identityParts.length === 0 || contactParts.length <= 1) { + // Nothing to split on — one row of a single kind, too long even at the + // floor. It wraps, as it did before any of this existed. + drawSingleLine(); + return; + } + + // Even the floor could not hold one row, so the break is going to happen — + // take it at a FIELD boundary instead of wherever the word wrapper lands. + // Word wrapping strands whichever fields overflow, which reads as a mistake + // (one lone slug under a full row, its separator left dangling above it) + // and hands the re-parse a continuation with no field boundary to key on. + // + // Each row is drawn separately, so each gets its own `linkSpans` pass — + // `decorateFirstLine` only overlays a call's FIRST line, so a link on a + // wrapped continuation loses its clickable annotation as well as its field. + const cut = contactSplitIndex(layout, contactParts, contact.links.length); + const top = contactParts.slice(0, cut).join(" • "); + const bottom = contactParts.slice(cut).join(" • "); + // One size for both rows — two rows of a single header block set at + // visibly different sizes read as two different things. + const rowSize = Math.min( + layout.fitToOneLine(top, layout.t.contact), + layout.fitToOneLine(bottom, layout.t.contact), + ); + // `fitToOneLine` is floored at CONTACT_MIN_SIZE_RATIO — below that floor it + // still returns the floor size as though the text fit. Verify the split + // actually bought two clean rows before trusting it; otherwise fall back to + // the single (still-wrapping) line rather than silently stranding a field + // with no separator. + if (!layout.fitsOneLine(top, rowSize) || !layout.fitsOneLine(bottom, rowSize)) { + drawSingleLine(); + return; + } + layout.drawText(top, { size: rowSize, color: muted, linkSpans: emailSpans }); + layout.drawText(bottom, { size: rowSize, color: muted, linkSpans }); +} + +/** + * Render an ATS résumé model to PDF bytes at ONE body size, plus the export + * findings gathered while drawing them (#621). * * The findings are ADVISORY and produced strictly as a side observation: the * glyph pass reads the same font-matched sanitizer the draw uses, and the @@ -1527,9 +1815,14 @@ export interface RenderAtsPdfResult { * feeds a layout decision, so `bytes` for a clean résumé is byte-for-byte what * this function produced before findings existed — the property the round-trip * corpus pins. + * + * Private: the size is chosen by {@link fitToPage} or pinned through + * `renderAtsResumePdf`'s `bodyPt` option, so nothing outside this module needs + * to name a rung directly. */ -export async function renderAtsResumePdf( +async function renderAtsResumePdfAtSize( model: AtsResumeModel, + bodyPt: number, ): Promise { const parts = await loadPdfLibOnce(); const { PDFDocument, rgb } = parts; @@ -1553,6 +1846,7 @@ export async function renderAtsResumePdf( const layout = new Layout( doc, { regular, bold }, + makeTypeScale(bodyPt), black, gray, parts.PDFString, @@ -1561,7 +1855,7 @@ export async function renderAtsResumePdf( // ── Header: name + (headline) + contact line ── if (model.contact.name) { - layout.drawText(model.contact.name, { bold: true, size: SIZE_NAME }); + layout.drawText(model.contact.name, { bold: true, size: layout.t.name }); } // Professional headline (#425) — regular weight, muted, under the name. // Populated when the parser lifted a standalone title tagline from the header @@ -1569,58 +1863,18 @@ export async function renderAtsResumePdf( // otherwise, so most résumés draw just name + contact line as before. if (model.contact.headline) { layout.drawText(model.contact.headline, { - size: SIZE_HEADLINE, + size: layout.t.headline, color: muted, }); } - // Work authorization (#792) sits after location and before the links, so the - // statement rides the existing contact line and costs the header no extra - // row. It is deliberately absent from `linkSpans` below: it is a sentence, - // not a URL, so it receives no clickable overlay and no scheme-stripping. - const contactParts = [ - model.contact.email, - model.contact.phone, - model.contact.location, - model.contact.workAuthorization, - ...model.contact.links, - ].filter((p): p is string => Boolean(p)); - if (contactParts.length > 0) { - // Clickable overlays (#425): email → mailto:, each scheme-stripped link slug - // → its real target. The visible text stays the shortened display; the - // annotation carries the real target. Annotations are outside the content - // stream, so the text round-trip is unaffected. - // - // The href is the ORIGINAL parsed URL (`contact.linkHrefs`, aligned with - // `links`) rather than one rebuilt from the `www.`-stripped display: rebuilding - // `https://${slug}` from the display would force `https` and drop any `www.` - // the source URL carried, so a portfolio/website served only at `www.host` or - // over `http` would get a 404-ing link. The display stays `www.`-less; only - // the click target uses the original. - const linkSpans: Array<{ display: string; href: string }> = []; - if (model.contact.email) - linkSpans.push({ - display: model.contact.email, - href: `mailto:${model.contact.email}`, - }); - model.contact.links.forEach((link, i) => - linkSpans.push({ - display: link, - href: model.contact.linkHrefs?.[i] ?? `https://${link}`, - }), - ); - layout.drawText(contactParts.join(" • "), { - size: SIZE_CONTACT, - color: muted, - linkSpans, - }); - } - layout.advance(GAP_AFTER_CONTACT); + drawContactLine(layout, model.contact, muted); + layout.advance(layout.t.gapAfterContact); // ── Summary ── if (model.summary) { // The summary body is plain wrapped text, so the heading must keep one BODY // line with it (#629). - drawSectionHeading(layout, model.summaryHeading ?? "Summary", SIZE_BODY * LINE_GAP); + drawSectionHeading(layout, model.summaryHeading ?? "Summary", layout.t.body * LINE_GAP); // The body takes `widowControl` for the same reason a bullet does (#631): it // is a wrapped block, so per-line pagination can leave its last line alone at // a page top. It is the only NON-bullet caller — a summary long enough to @@ -1631,8 +1885,8 @@ export async function renderAtsResumePdf( // The orphan half needs nothing: the heading above already reserves one body // line, and this block can only ever BEGIN at the top of page one, so its // opening can never sit at a page bottom. - layout.drawText(model.summary, { size: SIZE_BODY, widowControl: true }); - layout.advance(GAP_BETWEEN_ENTRIES); + layout.drawText(model.summary, { size: layout.t.body, widowControl: true }); + layout.advance(layout.t.gapBetweenEntries); } // ── Sections ── @@ -1655,9 +1909,9 @@ export async function renderAtsResumePdf( entryPath: entryPathLabel(section.heading || "Section", section.entries[i], i), findings, }); - if (i < section.entries.length - 1) layout.advance(GAP_BETWEEN_ENTRIES); + if (i < section.entries.length - 1) layout.advance(layout.t.gapBetweenEntries); } - layout.advance(GAP_BETWEEN_ENTRIES); + layout.advance(layout.t.gapBetweenEntries); } // ── Embedded machine-readable copy (#334, Europass pattern) ── @@ -1686,16 +1940,73 @@ export async function renderAtsResumePdf( description: "JSON Resume (jsonresume.org) — machine-readable copy", }); - return { bytes: await doc.save(), findings }; + return { + bytes: await doc.save(), + findings, + bodyPt, + pages: layout.pageCount, + }; +} + +/** + * Render at the largest {@link FIT_LADDER} rung that costs the fewest pages. + * + * Descending scan with early exit, which makes the common case cheap: a résumé + * that already fits at the top rung costs exactly one render, and one that + * spills costs one render per rung tried. There is no separate "measure" path + * on purpose — the pass that decides the size IS the pass that produces the + * bytes, so the decision cannot be made against geometry the download does not + * have. (A cheaper dry-run measure is possible; a divergent one is not worth + * the milliseconds it would save.) + * + * The rung chosen is the LARGEST one that achieves the fewest pages — which + * makes the top rung the fallback whenever shrinking buys nothing at all. + * Saving a page is worth type size whether the saving is 2→1 or 4→3; being + * smaller for its own sake never is. So a résumé with more content than the + * floor can absorb stays at the top rung and runs long, rather than being set + * cramped AND long. + */ +async function fitToPage(model: AtsResumeModel): Promise { + let best: RenderAtsPdfResult | null = null; + for (const pt of FIT_LADDER) { + const attempt = await renderAtsResumePdfAtSize(model, pt); + // The top rung is the fallback, so it is `best` until something beats it. + if (!best) best = attempt; + else if (attempt.pages < best.pages) best = attempt; + // Nothing below can do better than one page, so stop paying for renders. + if (best.pages <= 1) break; + } + // `FIT_LADDER` is a non-empty literal, so the loop always assigns. + return best as RenderAtsPdfResult; +} + +/** + * Render an ATS résumé model to PDF bytes, choosing the body size that fits. + * + * Sizing is per-résumé because a single fixed size cannot serve both ends: the + * size that keeps a dense résumé on one page sets a short one several points + * smaller than a typographer would, and the size that reads well on a short one + * spills a dense one onto a second page for want of a few lines. + * + * `bodyPt` pins a rung and skips the fit pass entirely — for tests that assert + * a specific geometry, and for a caller that has already decided. + */ +export async function renderAtsResumePdf( + model: AtsResumeModel, + opts: { bodyPt?: number } = {}, +): Promise { + return opts.bodyPt === undefined + ? fitToPage(model) + : renderAtsResumePdfAtSize(model, opts.bodyPt); } /** The `drawText` options for a section/summary heading — shared by the draw and * its keep-with-next measurement (#629) so the two cannot drift. */ -const HEADING_OPTS = { +const headingOpts = (t: TypeScale): DrawTextOpts => ({ bold: true, - size: SIZE_SECTION, + size: t.section, uppercase: true, -} as const; +}); /** * Draw a section (or Summary) heading plus its rule. `followHeight` is the @@ -1709,49 +2020,57 @@ function drawSectionHeading( heading: string, followHeight: number, ) { - layout.advance(GAP_BEFORE_SECTION); + layout.advance(layout.t.gapBeforeSection); layout.ensureBlock( - layout.measureTextHeight(heading, HEADING_OPTS) + - RULE_HEIGHT + - GAP_AFTER_RULE + + layout.measureTextHeight(heading, headingOpts(layout.t)) + + layout.t.ruleHeight + + layout.t.gapAfterRule + followHeight, ); - layout.drawText(heading, HEADING_OPTS); + layout.drawText(heading, headingOpts(layout.t)); layout.drawRule(); - layout.advance(GAP_AFTER_RULE); + layout.advance(layout.t.gapAfterRule); } /** The `drawText` options for an entry's header line — shared by the draw and its * keep-with-next measurement (#629). */ -function headerLineOpts(entry: AtsEntry, mutedColor: RGB): DrawTextOpts { +function headerLineOpts( + entry: AtsEntry, + mutedColor: RGB, + t: TypeScale, +): DrawTextOpts { return { // Every header is bold EXCEPT where the model opts out — the skills list, // which reads as regular-weight body text (#425). bold: entry.headerBold ?? true, - size: SIZE_HEADER, + size: t.header, atomicSegments: entry.atomicSegments, hangingIndent: entry.headerHangingIndent, // Flush-right date on the header line (#425) — set for a title-less role / // degree-less program, where the org/date anchor lives on the header. rightText: entry.headerLineDate, rightColor: mutedColor, - rightSize: SIZE_SUB, + rightSize: t.sub, }; } /** The `drawText` options for an entry's sub-line — shared by the draw and its * keep-with-next measurement (#629). See `drawEntry` for why the middot * segments are atomic here. */ -function subLineOpts(entry: AtsEntry, mutedColor: RGB): DrawTextOpts { +function subLineOpts( + entry: AtsEntry, + mutedColor: RGB, + t: TypeScale, +): DrawTextOpts { return { - size: SIZE_SUB, + size: t.sub, color: mutedColor, atomicSegments: true, // Flush-right date on the sub-line (#425) — set for a titled role / // degreed entry, where the org anchor lives on the sub-line. rightText: entry.subLineDate, rightColor: mutedColor, - rightSize: SIZE_SUB, + rightSize: t.sub, }; } @@ -1814,22 +2133,22 @@ function entryHeadHeight( let height = 0; if (entry.headerLine) { if (entry.headerLine.includes(EMPHASIS_OPEN)) { - height += layout.measureHeaderRunsHeight(entry.headerLine, SIZE_HEADER); + height += layout.measureHeaderRunsHeight(entry.headerLine, layout.t.header); } else { const full = layout.measureTextHeight( entry.headerLine, - headerLineOpts(entry, mutedColor), + headerLineOpts(entry, mutedColor, layout.t), ); height += entry.headerBold === false && entry.bullets.length === 0 - ? Math.min(full, BODY_HEADER_KEEP_LINES * SIZE_HEADER * LINE_GAP) + ? Math.min(full, BODY_HEADER_KEEP_LINES * layout.t.header * LINE_GAP) : full; } } if (entry.subLine) { height += - GAP_AFTER_HEADER + - layout.measureTextHeight(entry.subLine, subLineOpts(entry, mutedColor)); + layout.t.gapAfterHeader + + layout.measureTextHeight(entry.subLine, subLineOpts(entry, mutedColor, layout.t)); } return height; } @@ -1865,13 +2184,13 @@ function entryKeepHeight( entry: AtsEntry, mutedColor: RGB, ): number { - const bulletLine = SIZE_BODY * LINE_GAP; + const bulletLine = layout.t.body * LINE_GAP; const head = entryHeadHeight(layout, entry, mutedColor); if (entry.bullets.length === 0) return head; const firstBulletLines = layout.measureBulletLines( entry.bullets[0], - SIZE_BODY, - BULLET_INDENT, + layout.t.body, + layout.bulletIndent(layout.t.body), ); const keep = bulletKeepLines(firstBulletLines); const base = head + keep * bulletLine; @@ -1908,10 +2227,10 @@ function entryKeepHeight( function trailingBulletKeepHeight(layout: Layout, entry: AtsEntry): number { const lines = layout.measureBulletLines( entry.bullets[entry.bullets.length - 1], - SIZE_BODY, - BULLET_INDENT, + layout.t.body, + layout.bulletIndent(layout.t.body), ); - return bulletKeepLines(lines) * SIZE_BODY * LINE_GAP; + return bulletKeepLines(lines) * layout.t.body * LINE_GAP; } function drawEntry( @@ -1936,20 +2255,20 @@ function drawEntry( // Mixed-weight header (#425 — an achievement "type" label bolded, the rest // regular). Routed to the run-aware draw; these headers carry no flush-right // date, so the marker-less run path covers them. - layout.drawHeaderRuns(entry.headerLine, SIZE_HEADER); + layout.drawHeaderRuns(entry.headerLine, layout.t.header); } else { - layout.drawText(entry.headerLine, headerLineOpts(entry, mutedColor)); + layout.drawText(entry.headerLine, headerLineOpts(entry, mutedColor, layout.t)); } } if (entry.subLine) { - layout.advance(GAP_AFTER_HEADER); + layout.advance(layout.t.gapAfterHeader); // Sub-lines are the "Company · Location · Team Dates" / "Institution · // Location Dates" org lines (see `ats-resume-model.ts`) — the middot here // is a re-parse-critical boundary, NOT a display joiner: word-wrapping // inside a multi-word location (e.g. "San Francisco Bay Area") re-parses it // into fragmented location tokens (#301). Unlike the 3+ segment achievement // HEADER lines (#307), these must stay atomic, so opt in unconditionally. - layout.drawText(entry.subLine, subLineOpts(entry, mutedColor)); + layout.drawText(entry.subLine, subLineOpts(entry, mutedColor, layout.t)); } // #632: the LAST bullet of a multi-bullet entry must never be the only thing // its page opens with. The whole rule is one hand-off — the SECOND-TO-LAST @@ -1973,7 +2292,7 @@ function drawEntry( // for the one shape where it must (see there), and passing it on here is // harmless: `drawBullet` uses it only on the reservation covering the bullet's // final line, which for a divisible bullet is its tail — not suppressed. - layout.drawBullet(entry.bullets[i], SIZE_BODY, BULLET_INDENT, { + layout.drawBullet(entry.bullets[i], layout.t.body, layout.bulletIndent(layout.t.body), { alreadyReserved: i === 0 && keepHeight > 0, followKeepHeight: i === entry.bullets.length - 2 ? trailingKeep : 0, onSplit: (split) => diff --git a/src/lib/pdf/render-ats-pdf.type-scale.test.ts b/src/lib/pdf/render-ats-pdf.type-scale.test.ts new file mode 100644 index 00000000..b35a5d57 --- /dev/null +++ b/src/lib/pdf/render-ats-pdf.type-scale.test.ts @@ -0,0 +1,408 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright 2026 The offlinecv Authors + +/** + * How the export chooses its geometry: the proportional type scale, the fit + * ladder that picks a body size per résumé, and the contact line's own fit. + * + * Separate from the pagination contracts in `export-layout-contract.test.ts`, + * which pin a size precisely so the fit pass cannot move it. This file is the + * other half — it asserts that the pass moves it, and by how much. + */ + +import { describe, expect, it } from "vitest"; +import { + REFERENCE_BODY_PT, + makeTypeScale, + renderAtsResumePdf, +} from "./render-ats-pdf.ts"; +import type { AtsEntry, AtsResumeModel } from "./ats-resume-model.ts"; + +/** Body text sizes read off the drawn page, most-used first. */ +async function drawnSizes(bytes: Uint8Array): Promise { + const pdfjs = await import("pdfjs-dist"); + const doc = await pdfjs.getDocument({ + data: bytes.slice(), + useWorkerFetch: false, + isEvalSupported: false, + useSystemFonts: false, + }).promise; + const tally = new Map(); + for (let p = 1; p <= doc.numPages; p++) { + const content = await doc.getPage(p).then((pg) => pg.getTextContent()); + for (const it of content.items) { + if (!("str" in it)) continue; + const t = it as { str: string; transform: number[] }; + if (!t.str.trim()) continue; + const size = Math.round(Math.hypot(t.transform[0], t.transform[1]) * 100) / 100; + tally.set(size, (tally.get(size) ?? 0) + 1); + } + } + return [...tally.entries()].sort((a, b) => b[1] - a[1]).map(([s]) => s); +} + +/** Lines drawn on page 1 with their left edge and size, in top-down order. */ +async function pageOneRows( + bytes: Uint8Array, +): Promise> { + const pdfjs = await import("pdfjs-dist"); + const doc = await pdfjs.getDocument({ + data: bytes.slice(), + useWorkerFetch: false, + isEvalSupported: false, + useSystemFonts: false, + }).promise; + const content = await doc.getPage(1).then((pg) => pg.getTextContent()); + const rows = new Map(); + for (const it of content.items) { + if (!("str" in it)) continue; + const t = it as { str: string; transform: number[] }; + const y = Math.round(t.transform[5] * 2) / 2; + const prev = rows.get(y); + rows.set(y, { + x: prev ? Math.min(prev.x, t.transform[4]) : t.transform[4], + size: Math.round(Math.hypot(t.transform[0], t.transform[1]) * 100) / 100, + text: (prev?.text ?? "") + t.str, + }); + } + return [...rows.entries()] + .sort((a, b) => b[0] - a[0]) + .map(([, v]) => v) + .filter((v) => v.text.trim()); +} + +/** Lines drawn on page 1, in top-down order. */ +async function pageOneLines(bytes: Uint8Array): Promise { + const pdfjs = await import("pdfjs-dist"); + const doc = await pdfjs.getDocument({ + data: bytes.slice(), + useWorkerFetch: false, + isEvalSupported: false, + useSystemFonts: false, + }).promise; + const content = await doc.getPage(1).then((pg) => pg.getTextContent()); + const rows = new Map(); + for (const it of content.items) { + if (!("str" in it)) continue; + const t = it as { str: string; transform: number[] }; + const y = Math.round(t.transform[5] * 2) / 2; + rows.set(y, (rows.get(y) ?? "") + t.str); + } + return [...rows.entries()] + .sort((a, b) => b[0] - a[0]) + .map(([, text]) => text) + .filter((t) => t.trim()); +} + +function entry(i: number, bulletWords: number): AtsEntry { + return { + headerLine: `Senior Staff Engineer ${i} · Northwind Systems`, + subLine: `Bellevue, WA Jan. 20${10 + i} – Dec. 20${11 + i}`, + bullets: Array.from({ length: 3 }, (_, b) => + Array.from({ length: bulletWords }, (_, w) => `word${i}x${b}x${w}`).join(" "), + ), + } as AtsEntry; +} + +function model(entries: number, bulletWords: number): AtsResumeModel { + return { + contact: { name: "Jordan Bennett", links: [] }, + sections: [ + { + heading: "Experience", + entries: Array.from({ length: entries }, (_, i) => entry(i, bulletWords)), + }, + ], + } as AtsResumeModel; +} + +describe("proportional type scale", () => { + it("reproduces the reference geometry exactly at the reference size", () => { + // The whole scale is expressed at ONE size and multiplied, so this is the + // check that the multiplication is identity where it must be — the layout + // this engine drew before the fit pass existed. + const t = makeTypeScale(REFERENCE_BODY_PT); + expect(t.body).toBe(8.5); + expect(t.name).toBe(18); + expect(t.contact).toBe(9); + expect(t.section).toBe(10); + expect(t.header).toBe(9.5); + expect(t.gapBeforeSection).toBe(7); + expect(t.ruleHeight).toBe(2); + }); + + it("scales every size and gap by the same factor", () => { + // Body-only scaling was measured and rejected: the gaps, rule and name block + // are fixed overhead worth ~19% of the usable page, so leaving them at full + // size costs about a third of the achievable shrink. + const ref = makeTypeScale(REFERENCE_BODY_PT); + const half = makeTypeScale(REFERENCE_BODY_PT / 2); + for (const key of Object.keys(ref) as Array) { + if (key === "bodyPt") continue; + expect(half[key], `${key} did not halve`).toBeCloseTo(ref[key] / 2, 10); + } + }); +}); + +/** The rungs `fitToPage` walks, descending — mirrored here so the ladder's + * contract can be asserted without exporting the array itself. */ +const LADDER = [10, 9.5, 9, 8.5, 8] as const; + +describe("fit ladder", () => { + it("draws a short résumé at the top rung rather than a fixed small size", async () => { + // The point of the ladder is NOT only to rescue a spilling résumé. A single + // fixed size has to be small enough for the dense case, which leaves every + // short résumé set several points below what a typographer would choose. + const result = await renderAtsResumePdf(model(2, 8)); + expect(result.pages).toBe(1); + expect(result.bodyPt).toBe(10); + expect(await drawnSizes(result.bytes)).toContain(10); + }); + + it("rescues a résumé that spills at the top rung but fits lower down", async () => { + const big = model(6, 22); + const atTop = await renderAtsResumePdf(big, { bodyPt: 10 }); + expect(atTop.pages, "fixture must spill at the top rung or this is vacuous").toBeGreaterThan(1); + + const fitted = await renderAtsResumePdf(big); + expect(fitted.pages).toBe(1); + expect(fitted.bodyPt).toBeLessThan(10); + expect(fitted.bodyPt).toBeGreaterThanOrEqual(8); + }); + + it("picks the LARGEST rung that achieves the fewest pages", async () => { + // The general contract, asserted against the ladder itself rather than a + // hand-computed answer — so it holds for a résumé too long to reach one page + // as well as one that fits. Saving a page is worth type size whether the + // saving is 2→1 or 4→3; being smaller for its own sake never is, which is + // what makes the top rung the fallback when shrinking buys nothing. + const huge = model(24, 28); + const perRung = await Promise.all( + LADDER.map(async (pt) => ({ + pt, + pages: (await renderAtsResumePdf(huge, { bodyPt: pt })).pages, + })), + ); + const fewest = Math.min(...perRung.map((r) => r.pages)); + const expected = perRung.find((r) => r.pages === fewest)!.pt; // LADDER is descending + + expect(fewest, "fixture must not fit on one page or this is vacuous").toBeGreaterThan(1); + const fitted = await renderAtsResumePdf(huge); + expect(fitted.pages).toBe(fewest); + expect(fitted.bodyPt).toBe(expected); + }); + + it("honours a pinned size and skips the pass entirely", async () => { + const pinned = await renderAtsResumePdf(model(2, 8), { bodyPt: 8.5 }); + expect(pinned.bodyPt).toBe(8.5); + expect(await drawnSizes(pinned.bytes)).toContain(8.5); + }); +}); + +describe("contact line", () => { + it("holds one line at the top rung, shrinking itself rather than wrapping", async () => { + // Regression guard, not a cosmetic one: the re-parse reads contact fields off + // a single header line, so a wrapped contact line silently drops whichever + // links land on the continuation. `latex/multi-degree-coursework.pdf` lost its + // linkedin_url exactly this way the moment the fit pass could pick 10pt. + // + // The shrink is bounded (CONTACT_MIN_SIZE_RATIO), so a contact line longer + // than this one still wraps — legibility wins over a guarantee that cannot + // hold for arbitrary input. This fixture is the realistic worst case: full + // email, phone, spelled-out location and two profile links. + const withLongContact = { + contact: { + name: "Jordan Bennett", + email: "jordan.bennett@example.com", + phone: "(973) 555-0123", + location: "Bellevue, Washington", + links: ["example.com/in/jordan-bennett", "example.com/jbennett"], + }, + sections: [{ heading: "Experience", entries: [entry(0, 8)] }], + } as AtsResumeModel; + + const result = await renderAtsResumePdf(withLongContact); + const lines = await pageOneLines(result.bytes); + + // Non-vacuity: the contact line really is long enough to be at risk. + const contactLine = lines.find((l) => l.includes("jordan.bennett@example.com")); + expect(contactLine).toBeDefined(); + // Every link on the ONE contact line — nothing pushed to a continuation. + for (const link of withLongContact.contact.links) { + expect(contactLine, `"${link}" left the contact line`).toContain(link); + } + }); + + it("never strands a field, at any contact length", async () => { + // Swept rather than pinned to one fixture. The contact block has two ways to + // avoid a stranded field — shrink to one row, or break at a field boundary — + // and which one applies is decided by a size comparison that lands on a + // floating-point boundary for some inputs and not others. A single fixture + // therefore proves very little; the length that shipped the orphaned link + // was one nobody would have guessed. Every length must satisfy the same + // contract: at most two rows, each a whole number of fields, links together. + const failures: string[] = []; + let shrank = false; + for (let pad = 0; pad <= 18; pad++) { + const links = [ + `example.com/in/jordan-bennett${"x".repeat(pad)}`, + "example.com/jbennett", + ]; + const full = { + contact: { + name: "Jordan Bennett", + email: "jordan.bennett@example.com", + phone: "(973) 555-0123", + location: "Bellevue, WA", + workAuthorization: "U.S. Citizen", + links, + }, + sections: [{ heading: "Experience", entries: [entry(0, 8)] }], + } as AtsResumeModel; + + const rows = await pageOneRows( + (await renderAtsResumePdf(full, { bodyPt: 10 })).bytes, + ); + const contactRows = rows.filter((r) => r.text.includes("example.com")); + const at = `pad=${pad}`; + if (contactRows.length > 2) { + failures.push(`${at}: ${contactRows.length} contact rows`); + continue; + } + if (contactRows[0].size < makeTypeScale(10).contact) shrank = true; + // Whole fields only — a row that ends on a separator was cut mid-list by + // the word wrapper, which is exactly the orphan this guards. + for (const row of contactRows) { + if (row.text.trim().endsWith("•")) failures.push(`${at}: row ends on a separator`); + } + // Links together, wherever they landed. + const withLinks = contactRows.filter((r) => links.some((l) => r.text.includes(l))); + if (withLinks.length !== 1) failures.push(`${at}: links split across rows`); + } + expect(failures).toEqual([]); + expect(shrank, "no length exercised the shrink path — the sweep is vacuous").toBe(true); + }); + + it("does not split a line the shrink can still hold, at the exact boundary", async () => { + // The last length in the sweep above that fits one row — where the fitted + // size lands within a rounding error of the content width. Without the shave + // `fitToOneLine` applies, re-multiplying that size overshoots by one ulp, the + // wrapper refuses the row, and this line splits in two for no reason: a row + // of vertical space spent on a line that fits. Pinned separately because the + // sweep's contract (nothing stranded) is satisfied by the split too — the + // cost of getting this wrong is density, not correctness. + const boundary = { + contact: { + name: "Jordan Bennett", + email: "jordan.bennett@example.com", + phone: "(973) 555-0123", + location: "Bellevue, WA", + workAuthorization: "U.S. Citizen", + links: ["example.com/in/jordan-bennettxxxxxxxx", "example.com/jbennett"], + }, + sections: [{ heading: "Experience", entries: [entry(0, 8)] }], + } as AtsResumeModel; + + const rows = await pageOneRows( + (await renderAtsResumePdf(boundary, { bodyPt: 10 })).bytes, + ); + const contactRows = rows.filter((r) => r.text.includes("example.com")); + expect(contactRows).toHaveLength(1); + // Non-vacuity: it only fits because it shrank, and it shrank nearly to the + // floor — this really is the boundary, not a line with room to spare. + const full = makeTypeScale(10).contact; + expect(contactRows[0].size).toBeLessThan(full); + expect(contactRows[0].size).toBeLessThan(full * 0.81); + }); + + it("breaks a contact line too long for the floor at a field boundary, links together", async () => { + // Past the readability floor the break is unavoidable, so it is taken at a + // field boundary rather than wherever the word wrapper lands — the links + // move down TOGETHER instead of one slug being stranded under a full row + // with its separator dangling above it. + const links = [ + "example.com/in/jordan-bennett-staff-software-engineer", + "example.com/jbennett", + "jordan-bennett-portfolio.example.com", + ]; + const huge = { + contact: { + name: "Jordan Bennett", + email: "jordan.bennett.hiring.inbox@long-domain-name.example.com", + phone: "(973) 555-0123", + location: "Bellevue, Washington, United States of America", + workAuthorization: "U.S. Citizen", + links, + }, + sections: [{ heading: "Experience", entries: [entry(0, 8)] }], + } as AtsResumeModel; + + const rows = await pageOneRows((await renderAtsResumePdf(huge)).bytes); + const contactRows = rows.filter( + (r) => r.text.includes("example.com") || r.text.includes("555-0123"), + ); + // Non-vacuity: this really is past the floor, so it really did have to break. + expect(contactRows.length, "fixture must not fit one row or this is vacuous").toBe(2); + // Every link on the SECOND row, none stranded — the point of the boundary. + for (const link of links) { + expect(contactRows[1].text, `"${link}" is not on the links row`).toContain(link); + } + expect(contactRows[0].text).toContain("jordan.bennett.hiring.inbox@long-domain-name.example.com"); + // One block, one size. + expect(contactRows[0].size).toBe(contactRows[1].size); + }); + + it("leaves a contact line that already fits at full size", async () => { + const short = { + contact: { name: "Jordan Bennett", email: "j@example.com", links: [] }, + sections: [{ heading: "Experience", entries: [entry(0, 8)] }], + } as AtsResumeModel; + const result = await renderAtsResumePdf(short); + // 10pt rung → contact rides the unscaled 9/8.5 ratio off the body size. + expect(await drawnSizes(result.bytes)).toContain( + Math.round(makeTypeScale(10).contact * 100) / 100, + ); + }); +}); + +describe("bullet hanging indent", () => { + it("starts a wrapped bullet's tail under the first line's TEXT, not past it", async () => { + // The indent is the marker's own width, measured off the font, so the tail + // aligns with the words it continues at every rung. It was a scale constant + // (12pt at the reference size, ~14pt at the top rung) against a marker only + // ~6pt wide, which drew every tail visibly further right than its own text. + const long = { + contact: { name: "Jordan Bennett", links: [] }, + sections: [ + { + heading: "Experience", + entries: [ + { + headerLine: "Senior Staff Engineer · Northwind Systems", + subLine: "Bellevue, WA Jan. 2019 – Dec. 2023", + bullets: [ + "Rebuilt the ingestion path so a batch that used to take most of a night " + + "finished inside the hour, which is long enough to wrap onto a second " + + "drawn line at any rung this ladder can pick.", + ], + }, + ], + }, + ], + } as unknown as AtsResumeModel; + + const rows = await pageOneRows((await renderAtsResumePdf(long)).bytes); + const head = rows.findIndex((r) => r.text.startsWith("•")); + // Non-vacuity: the bullet must actually have wrapped. + expect(head, "no bullet row drawn").toBeGreaterThanOrEqual(0); + expect(rows.length, "bullet did not wrap — the test is vacuous").toBeGreaterThan(head + 1); + + const marker = rows[head]; + const tail = rows[head + 1]; + // The tail's left edge is the marker row's left edge plus the marker width, + // which is exactly where the marker row's own text starts. + const markerWidth = tail.x - marker.x; + expect(markerWidth).toBeGreaterThan(0); + expect(markerWidth).toBeLessThan(marker.size); // "• " is well under one em + }); +}); diff --git a/src/lib/pdf/render-audit-report.ts b/src/lib/pdf/render-audit-report.ts index db01dfc2..681ef4f0 100644 --- a/src/lib/pdf/render-audit-report.ts +++ b/src/lib/pdf/render-audit-report.ts @@ -17,7 +17,7 @@ * is drawn ONLY when `input.includeIdentity` is true AND an `identity` block is * present. Default-off upstream, so the default artifact is anonymous. * - * This uses pdf-lib's built-in Helvetica (no Poppins fetch): the report is a + * This uses pdf-lib's built-in Helvetica (no embedded-font fetch): the report is a * plain document, not the brand-faithful résumé, so the 14 standard fonts are * enough and it keeps the module dependency-light. Every string is run through * `toWinAnsi()` because StandardFonts encode WinAnsi only (#295). The `rgb()` diff --git a/src/lib/pdf/render-findings.test.ts b/src/lib/pdf/render-findings.test.ts index a2dd0540..ea020065 100644 --- a/src/lib/pdf/render-findings.test.ts +++ b/src/lib/pdf/render-findings.test.ts @@ -10,7 +10,7 @@ * only exists once something has been paginated. * * The font path is chosen the same way `render-ats-pdf.fonts.test.ts` chooses - * it — by stubbing `fetch` and re-importing the module — so the embedded-Poppins + * it — by stubbing `fetch` and re-importing the module — so the embedded-font * case (this issue's target: a character the embedded font has no glyph for) is * tested on the embedded path and not by accident on the Helvetica fallback. * @@ -25,8 +25,8 @@ import { findGlyphFindings, type RenderFinding } from "./render-findings.ts"; import { EMPHASIS_OPEN, EMPHASIS_CLOSE } from "./auto-bold-metrics.ts"; const FONTS_DIR = fileURLToPath(new URL("../../assets/fonts/", import.meta.url)); -const REGULAR_BYTES = readFileSync(`${FONTS_DIR}Poppins-Regular.ttf`); -const BOLD_BYTES = readFileSync(`${FONTS_DIR}Poppins-Bold.ttf`); +const REGULAR_BYTES = readFileSync(`${FONTS_DIR}LiberationSans-Regular.ttf`); +const BOLD_BYTES = readFileSync(`${FONTS_DIR}LiberationSans-Bold.ttf`); function toArrayBuffer(buf: Buffer): ArrayBuffer { return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); @@ -96,7 +96,7 @@ describe("export findings — glyph coverage (#621)", { timeout: 30000 }, () => }); it("does not report a Latin-Extended glyph the embedded font DOES cover", async () => { - // Poppins covers ś/ł. Reporting them would be the #664 false positive + // Liberation Sans covers ś/ł. Reporting them would be the #664 false positive // wearing a different hat — and it is the whole reason the embedded path // exists. stubFetchSucceeds(); @@ -110,7 +110,7 @@ describe("export findings — glyph coverage (#621)", { timeout: 30000 }, () => }); it("names the character AND its source field for a glyph the font lacks", async () => { - // Poppins has no glyph for ★ (verified in render-ats-pdf.fonts.test.ts), so + // Liberation Sans has no glyph for ★ (verified in render-ats-pdf.fonts.test.ts), so // the export draws "?" — the exact silent degradation #621 exists to stop // being silent. stubFetchSucceeds(); @@ -167,7 +167,7 @@ describe("export findings — glyph coverage (#621)", { timeout: 30000 }, () => }); it("reports a transliterated glyph as info, not as a warning", async () => { - // "→" is degraded — the export draws "->" — but the meaning survives, so it + // "‣" is degraded — the export draws "-" — but the meaning survives, so it // is worth stating and not worth alarming over. Grading every substitution // `warning` would make the badge meaningless on the one that destroys text. stubFetchSucceeds(); @@ -177,14 +177,14 @@ describe("export findings — glyph coverage (#621)", { timeout: 30000 }, () => { heading: "Experience", entries: [ - { headerLine: "Intern → Engineer · Acme", bullets: ["Did work"] }, + { headerLine: "Intern ‣ Engineer · Acme", bullets: ["Did work"] }, ], }, ], }); expect(findings).toHaveLength(1); expect(findings[0].severity).toBe("info"); - expect(findings[0].detail).toContain("->"); + expect(findings[0].detail).toContain("-"); }); it("collapses repeats of one character within one field to a single finding", async () => { @@ -232,16 +232,16 @@ describe("export findings — glyph coverage (#621)", { timeout: 30000 }, () => it("checks a heading through the case transform the renderer applies", async () => { // Headings are drawn upper-cased, and `toUpperCase()` can turn a covered - // glyph into an uncovered one: µ (U+00B5) becomes Μ (U+039C, Greek capital - // mu), which Poppins has no glyph for. Scanning the raw text would miss - // exactly the loss the draw is about to produce. + // glyph into an uncovered one: ƒ (U+0192) becomes Ƒ (U+0191, capital F with + // hook), which Liberation Sans has no glyph for. Scanning the raw text would + // miss exactly the loss the draw is about to produce. stubFetchSucceeds(); const { renderAtsResumePdf } = await loadRenderer(); - const heading = "µ-services"; + const heading = "ƒ-stop"; const raw = ( await renderAtsResumePdf({ contact: { name: "Jane Candidate", links: [] }, - // Same text NOT in a heading: drawn as-is, and Poppins covers µ, so it + // Same text NOT in a heading: drawn as-is, and Liberation Sans covers ƒ, so it // is the control that proves the case transform is what makes the // difference rather than the character itself. summary: heading, @@ -262,10 +262,10 @@ describe("export findings — glyph coverage (#621)", { timeout: 30000 }, () => }) ).findings; expect(cased.map((f) => f.sourceField)).toEqual([heading]); - // The reported character is what the user typed (µ, U+00B5), not what the + // The reported character is what the user typed (ƒ, U+0192), not what the // case transform drew (Μ, U+039C) — the user can search their résumé for // the former; the latter is provably absent from their input. - expect(cased[0]!.detail).toContain('"µ" (U+00B5)'); + expect(cased[0]!.detail).toContain('"ƒ" (U+0192)'); expect(cased[0]!.detail).not.toContain("U+039C"); }); }); @@ -337,18 +337,22 @@ describe("export findings — invisible degradations are not reported", () => { * bullet that can legally split (2/2), and therefore the shortest one this * finding can fire on. */ const FOUR_LINE_BULLET = - "BULLETSTART partnered across engineering, product and design to land a " + - "platform initiative that measurably improved customer outcomes BULLETTWO " + - "and then carried the same practice into the wider organisation, writing " + - "the runbooks BULLETTHREE and training the on-call rotation before handing " + - "the whole programme over to its permanent owners BULLETEND"; + "BULLETSTART partnered closely across engineering, product, design and " + + "operations leadership to land a platform initiative that measurably " + + "improved customer outcomes across every core segment BULLETTWO and then " + + "carried the same practice into the wider organisation, writing the " + + "complete set of on-call runbooks and operational playbooks BULLETTHREE " + + "and training the whole on-call rotation before handing the entire " + + "programme over to its permanent long-term owners BULLETEND"; /** Wraps to exactly three drawn lines — indivisible under #630/#631, so it must * move whole and must never produce this finding. */ const THREE_LINE_BULLET = - "BULLETSTART partnered across engineering, product and design to land a " + - "platform initiative that measurably improved customer outcomes BULLETMID " + - "and then carried the same practice into the wider organisation BULLETEND"; + "BULLETSTART partnered closely across engineering, product, design and " + + "operations leadership to land a platform initiative that measurably " + + "improved customer outcomes across every core segment BULLETMID and then " + + "carried the same practice into the wider organisation over several " + + "subsequent quarters of sustained delivery BULLETEND"; function modelWith(subject: AtsEntry, filler: number): AtsResumeModel { return { @@ -386,8 +390,13 @@ describe( const { extractPdfDrawnLines } = await import( "./render-ats-pdf.test-utils.ts" ); + const { REFERENCE_BODY_PT } = await import("./render-ats-pdf.ts"); + // Pinned for the same reason the export-layout contracts are: this probe + // asserts a page BREAK, and the fit pass would shrink the fixture until + // there was no break left to name. const { bytes, findings } = await renderAtsResumePdf( modelWith(subject, filler), + { bodyPt: REFERENCE_BODY_PT }, ); const lines = await extractPdfDrawnLines(bytes); const pageOf = (token: string) => { diff --git a/src/lib/pdf/render-findings.ts b/src/lib/pdf/render-findings.ts index 60656d30..df5b23a0 100644 --- a/src/lib/pdf/render-findings.ts +++ b/src/lib/pdf/render-findings.ts @@ -214,7 +214,7 @@ function isInvisibleDegradation(ch: string, drawn: string): boolean { * Every character the export font could not draw as authored, one finding per * (field, character) pair (#621). * - * `sanitize` is the renderer's OWN font-matched sanitizer — Poppins' coverage + * `sanitize` is the renderer's OWN font-matched sanitizer — Liberation Sans' coverage * predicate on the embedded path, `toWinAnsi` on the Helvetica fallback — so * this measures the font that is actually on the page rather than a guess about * it. That is what makes the pass render-time: swap the font and the answer diff --git a/src/lib/pdf/render-work-authorization.test.ts b/src/lib/pdf/render-work-authorization.test.ts index c1690dea..7d207b8f 100644 --- a/src/lib/pdf/render-work-authorization.test.ts +++ b/src/lib/pdf/render-work-authorization.test.ts @@ -20,8 +20,8 @@ * per-test default when the suite runs under load. */ -import { describe, expect, it, beforeAll } from "vitest"; -import { renderAtsResumePdf, findExportGlyphLosses } from "./render-ats-pdf.ts"; +import { describe, expect, it, beforeAll, vi } from "vitest"; +import { renderAtsResumePdf } from "./render-ats-pdf.ts"; import { extractPdfDrawnLines, type PdfDrawnLine, @@ -72,6 +72,42 @@ async function linkAnnotationUrls(bytes: Uint8Array): Promise { return urls; } +/** + * The `where` labels {@link findExportGlyphLosses} reports for a work-authorization + * statement carrying a non-WinAnsi code point, measured ON THE FALLBACK PATH. + * + * The audit answers "what would the Helvetica/WinAnsi fallback cost this user", + * and returns an empty list whenever the embedded font loads — so it can only be + * exercised with the font load FAILING. This used to come for free: Node could + * not resolve the renderer's Vite `?url` font specifier, so every test run took + * the fallback by accident. The suite now serves the real Liberation Sans bytes (see + * `src/test-setup.ts`), which is what makes the layout assertions above true of + * the actual download — and which means this audit has to ask for the fallback + * explicitly rather than inherit it. + * + * A fresh module registry is required, not just a failing `fetch`: `loadBodyFontBytes` + * memoizes SUCCESS for the life of the module, and the renders above have already + * populated that memo, so a stub installed afterwards would never be consulted. + */ +async function workAuthGlyphLossSites(): Promise { + vi.resetModules(); + vi.stubGlobal("fetch", async () => { + throw new Error("network unavailable (simulated)"); + }); + try { + const { findExportGlyphLosses: audit } = await import("./render-ats-pdf.ts"); + const losses = await audit({ + ...MODEL, + // `✓` (U+2713) has no WinAnsi code point; an em dash does, which is why + // the sample is not simply punctuation-heavy. + contact: { ...MODEL.contact, workAuthorization: "US Citizen ✓" }, + }); + return losses.map((l) => l.where); + } finally { + vi.unstubAllGlobals(); + } +} + describe("renderAtsResumePdf — work authorization on the contact line (#792)", () => { let stated: PdfDrawnLine[]; let silent: PdfDrawnLine[]; @@ -83,14 +119,7 @@ describe("renderAtsResumePdf — work authorization on the contact line (#792)", stated = await extractPdfDrawnLines(bytes); silent = await extractPdfDrawnLines((await renderAtsResumePdf(SILENT_MODEL)).bytes); urls = await linkAnnotationUrls(bytes); - glyphLossSites = ( - await findExportGlyphLosses({ - ...MODEL, - // `✓` (U+2713) has no WinAnsi code point; an em dash does, which is why - // the sample below is not simply punctuation-heavy. - contact: { ...MODEL.contact, workAuthorization: "US Citizen ✓" }, - }) - ).map((l) => l.where); + glyphLossSites = await workAuthGlyphLossSites(); }, 60_000); const contactLine = (): string => { @@ -124,9 +153,8 @@ describe("renderAtsResumePdf — work authorization on the contact line (#792)", it("is covered by the export glyph-loss audit", () => { // A statement carrying a code point the WinAnsi fallback cannot draw must be - // REPORTED, not silently rewritten to `?`. `findExportGlyphLosses` returns - // an empty list when the embedded font loads; under Node it does not, which - // is the fallback path this audit exists to measure. + // REPORTED, not silently rewritten to `?`. Measured with the font load forced + // to fail — see `workAuthGlyphLossSites` for why that has to be explicit. expect(glyphLossSites).toContain("Work authorization"); }); }); diff --git a/src/test-setup.ts b/src/test-setup.ts index d67d82ec..57a9a4e4 100644 --- a/src/test-setup.ts +++ b/src/test-setup.ts @@ -34,11 +34,67 @@ */ import { beforeEach } from "vitest"; +import { readFileSync } from "node:fs"; +import { fileURLToPath } from "node:url"; +import { dirname, join } from "node:path"; import { installMemoryLocalStorage } from "./hooks/__test-utils__/memory-storage.ts"; +// Resolved once at module scope, with Node's own `fileURLToPath` + `path.join` +// rather than `new URL(relative, import.meta.url)` — under +// `@vitest-environment jsdom`, jsdom's `URL` implementation mis-resolves a +// multi-segment relative against a `file://` base (drops the project-root +// prefix), which silently ENOENTs the font shim below and falls back to +// Helvetica. `import.meta.url` itself resolves correctly in both envs; only +// the relative-URL join is jsdom's bug, so this sidesteps it entirely. +const FONTS_DIR = join(dirname(fileURLToPath(import.meta.url)), "assets/fonts"); + // Before any test file's module body — see (1) above. installMemoryLocalStorage(); +/** + * Serve the vendored Liberation Sans TTFs to `render-ats-pdf.ts` from disk, so export + * tests measure the font PRODUCTION ACTUALLY EMBEDS. + * + * The renderer fetches its font bytes from a Vite `?url` specifier, which + * resolves to a root-relative path ("/src/assets/fonts/LiberationSans-Regular.ttf"). + * Node's `fetch` cannot parse that as a URL, so every render in the test suite + * threw, hit `loadFonts`' catch-all, and silently fell back to the built-in + * Helvetica. That fallback is a REAL production path (it is what a user gets + * when the font asset 404s), but it is the rare one — and the embedded font and + * Helvetica do not share metrics. + * + * So every layout assertion in this repo was calibrated against a font that was + * not the shipped one: wrap points, page breaks, and the fixture + * strings hand-tuned to wrap to an exact line count all encoded Helvetica + * metrics. Anything measured about pagination was measured about a document + * users never receive. Restoring the real bytes here is what makes an export + * test's "this wraps to three lines" claim true of the actual download. + * + * Only the two font assets are intercepted; every other request delegates to the + * real `fetch`, so a suite that stubs `fetch` for its own purposes is unaffected. + * Reinstalled per-test (like the storage shim above) because a suite that calls + * `vi.unstubAllGlobals()` would otherwise strip it for everything after it. + */ +function installBodyFontFetch() { + const previous = globalThis.fetch; + // Idempotent: never wrap a wrapper we already installed. + if ((previous as { __ocvFontShim?: boolean } | undefined)?.__ocvFontShim) return; + const shim = (async (input: RequestInfo | URL, init?: RequestInit) => { + // `String()` covers all three `RequestInfo | URL` shapes: a string is itself, + // a URL stringifies to its href, and a Request is unwrapped to `.url` first. + const url = String(input instanceof Request ? input.url : input); + const match = /LiberationSans-(Regular|Bold)\.ttf/.exec(url); + if (!match) return previous(input, init); + const path = join(FONTS_DIR, `LiberationSans-${match[1]}.ttf`); + return new Response(new Uint8Array(readFileSync(path)), { status: 200 }); + }) as typeof fetch & { __ocvFontShim?: boolean }; + shim.__ocvFontShim = true; + globalThis.fetch = shim; +} + +installBodyFontFetch(); + beforeEach(() => { installMemoryLocalStorage(); + installBodyFontFetch(); }); diff --git a/tests/fixtures/pdfs/google-docs/google-docs-skia-proxy-classic.expected.json b/tests/fixtures/pdfs/google-docs/google-docs-skia-proxy-classic.expected.json index d6b7f74a..5fe50c5a 100644 --- a/tests/fixtures/pdfs/google-docs/google-docs-skia-proxy-classic.expected.json +++ b/tests/fixtures/pdfs/google-docs/google-docs-skia-proxy-classic.expected.json @@ -125,7 +125,7 @@ "phoneChangedAcrossRoundtrip": false, "locationChangedAcrossRoundtrip": false, "linkedinUrlChangedAcrossRoundtrip": false, - "experienceChangedAcrossRoundtrip": true, + "experienceChangedAcrossRoundtrip": false, "educationChangedAcrossRoundtrip": false, "skillsChangedAcrossRoundtrip": false, "summaryChangedAcrossRoundtrip": false, diff --git a/tests/fixtures/pdfs/unknown/extended-latin-name-roundtrip.expected.json b/tests/fixtures/pdfs/unknown/extended-latin-name-roundtrip.expected.json index 4e098077..94348645 100644 --- a/tests/fixtures/pdfs/unknown/extended-latin-name-roundtrip.expected.json +++ b/tests/fixtures/pdfs/unknown/extended-latin-name-roundtrip.expected.json @@ -117,7 +117,7 @@ "experienceEntriesFewerThanDateRangeLines": false, "achievementsParsedEmpty": true, "achievementsEntriesFewerThanHeaderLines": false, - "fullNameChangedAcrossRoundtrip": true, + "fullNameChangedAcrossRoundtrip": false, "emailChangedAcrossRoundtrip": false, "phoneChangedAcrossRoundtrip": false, "locationChangedAcrossRoundtrip": false, diff --git a/tests/fixtures/pdfs/unknown/extended-latin-name-roundtrip.pdf b/tests/fixtures/pdfs/unknown/extended-latin-name-roundtrip.pdf index 8ce1638b617c8ddce57edf03d3b0b158fd0772c8..df407ece58a877623d75decacba6604d92b18c66 100644 GIT binary patch delta 24528 zcmV)BK*PU@LCnYjkUD=h3O+sxb98cLVQmU{oV`}tZrd;nefL-Rc|b9d5_JKF0kLC0 z^<|iUpu;Zcu(fEn|HmYXjFmL*;5`fhQ%9!6qr*e8Pu;L|rZ1o8Z{6G5`%hn|hn0WD5)7qm3ezAZTE!@rAYuOm zY|X?;$WYf&#LO3xb9pb-3}9S+IXiPbll`D(i+yGxL(AT+<*j6KMw>JEIg*D*RFY-taAy|CT7xcY@x>DT2&nntM*lD z+&O(yVRJ)eU=|3T+E((qILM}s-maTy%RcO8JwM}|Zp4%!` z|IoBJZL625#OP4I{M)Gx#{EC+nKrH`0`K7PuUp$%r zn*4@tTexmO&cZTsb1Ysv~SkX?Tzm7YzW7^ctn9+>|7XxI3Is$OM? zWK{^uos+s%(HUr(YAo6n{Yup{5R zgf@?HV}$ycdxv`m-N|i6X0%?q-*mC%$b@c3XyQwnyMB+(MgPBEGKJAe^g23*4&PL? z1KmaL&))<)i~a*WC#4Rcd;d+dub^jRsl9(_Kf32%;w?j4NIOSJ|JScB0$q{a#>U~;IG}M*&%6qbtMIpQw*9ZcZ2SKNbM04xZhPnDO_#Cm^32Pfm-k#g zcA3+B_Gzm9kADc-b$;7EUDEOI`= z_>NT{!-rppynx4EIR66nJzxDiKJ*-nJ$wFHJoD(Dqu6(}|LEDH6Gz#D2h#1~1JJ(@ z&hCSKL7V*tdlT%N_U_p`v6soeU%Vd=-wy+OhWFsnJutTC{2n}WcjxZ@-OTpjg#FMq z*t%tkeQ2=SK1gQJzp~Q4GFX3PPlm*nB!6Oy($BOg$eg=KStt3;4^FYqYY*Am$^gEKIC zym_|U-FQYhF{?4649|7uDDrBL%ZtBVD$( z#z;3wh%_-w5`yix1=X|-4Gyhw(+lJT8gjb_2Wbju&MlWoDR2*xVuCg}G)OW-YtW#3 za0mtmhtS{Jf9a;uJ*7YrOq`E@R zrff@D6VE66J5As-?J;4KNf%BQy#6qaiwdi7H53(ku`4YeE3>K?e}ToUH(C4z#U#cS%)-UBP&`FU=IE;T-FTBg6j zo5(0^b@SJ_=4@`s{XaFgw-WAg6(%VXW~E~R~guOQTr3x&CmnG65Og*S6Q&&5Y_VP7t+&xPXL zU~W$?lavcz<-#div^95cF7C-)n~Te&DyCde}L@X=(ePk3Oj)bMH#bW?07^wfHA z+9dA&uRZV+&-)&H(gRO>V5<7cZ#vDmBlmRYui`^U+_N zIIWCVDpe|8B`D7Q_;sZ~(khiwr#u_MKeC21J-$3o<}Ca8Eo}L?Ghvz|BP%oAE}HTG zGoF-OV@q?9+_YqTfv#OUi5`Cn5GR1HiG!k+Q3i?KFR=M6qhhHv=b95kEUV%tc(};J z1s)>&7>^I}Fu)J<*v?K%aDI}s~7j1H<|aC zndKJ9D27}smNF{;Bui5(f#>GJZd~_j2IbX*|4TTEheRg)M`&?rmfS4 z9Yhaym5r6*;W8+bW|);5sxAYe42&KwC+tA!Fq(cP9jB)|g!nMmr5VuRVGU?B99e1U zDl1%yJq%@KK=_d^wyS@xt+uP^VoUUNM+fQvdh6%_Q#_WI)RI*2lO>fdyjfnRsIZtU zy9r7!<4RMQO{q8`m19m-3_RJl;Gxyi4Tlm&hszfRv%Is`1g8%7iog8XOTSEcg3qsQ z@opG$PhTIC<#w>Pw)(-B#u1ysO^?bizMC|A#BVLzSf|tV)GpsHmG2& z66Wwd{C0jH&+a0g8EzwP(|W`Vskf^4s+n3ffLg7|RRMpa;)Nl?&^*!z&BQU^t6}Kv zq~-(SqkpAQX1gs1Z9c2Lga+CYpb=G-a54tT2`l(lbf_$nO2-VC)A}K z)*jZ5Y0qo93)DD~^Q>&8h_OOyt?)_=N;Rv}afrwfQGw)2C?l$mh!K&URjY~qAyjn} zowusgPxyba)Ze*UU#9m{&g+nw4|O;}NlX~O9{fD9Dx(i>9SI$q6cPGLveMm8qa?cAyX_CgCetqfefaIsbiQ7T!icJ zHq0ie%2ZgR0*%V5!YT(*_LliQ^S94u!sT7%m@7Az7nRqQvpb1=m4Uh}xeW74xU=xy zLaZrlEW~O{vL)BTEd3xcBj=aufwZk52&t!p6M_6CsuR_-(EDQNl>RAr&y+(`@RXt9 z!25q_mN3gPi<#y5kmHtrWL*4_E#2lbRvTv;8HX+3CfXRI&1jom{81bFK|R#hd^DXH zUH%Tr&SgGdM~B`oToQ%WzVd=~Q3kF4EUB{aG<~y6R>$kqLy0WXG*r3QdIAk=qGpm-*%$xoAUk+~nb1}Q3Qdgu6w=SmAAcgPx~+81-E;Fg7uSES z>k1n9c>KSkm!I#l`ov6~J1(!S&RyPn@9cHIJ=$Z6P7Vjx{%7>>2MU@ioh>6T%w4yms%L9` zdRSf$5{N(WXJYSa@JC{3FNW174aJS+C1zxLwd(oo^uSZa#zFmz|)UbgC zBMVF-tb-l!Ft7>Adz23;8HGv>N|xn$fulxd1;=wdL!>=NQ>MYJ#zcD1e6IOg!<^H= zKF!mbQyONg1{9i1O;FRL*{-3mHwgx>qI%%vM0-es8QPMDXMktQ7_4T95j}q_4qfCM(?Rf`)9zs{?X-Vc+pT48?D)I=u9f;^y6Ffk+DvH_T<`VK$YW9M*M6+U z-#eF&q+XeGv;jJrpq4G^k;X&eoHYL8KuxGj3u#)ATsZs{rPFz$8kv(?7}kywMac|l zp-T(RS`f8Rs0D`>q^fC##L!_aF*QlOuy#O8u@yv@vPvK;n?i>$QKx_YYHF$x#Yl}w z_YGEICo$tBtM3|Q!FLS67>Igg-(x>cV!4TmUQG-|s;(vbkXVOQW0aPXo(qVgrmCRx z#+ptZTs+m)R9!oxzm0zK6WAQR|1F4zxSvMvhwboMv=)1Cd~_Z>HU8E3`?6dRKUv`- zYk39!$tx&#;^IpxO~`*iE$j)BNUI6jKT*``%d{j@_p`O zcluzh588a7@L7C8AEWdU-}z1X^%l$TM5VnNfS(3F4*V&=yc&T00oWCQzQFnbo)>_I z0JsAc0sM~ud=Y?;1MqeLUcZh61SKa>7Qog3@B#SQ7lEq*+!ue?8Q33qCGgV#M~bIk z$B-MLUEymT-5CJVLt|iGV0nPG2Y{trd=bFM0%rr5ly3^$RICZWBNMb4aRM#`fHZTA zHgh0=H_^c?58#;rs0cv1gi3n5hID|owI_hP1JD?NYT7L50`>rwkv0Z)1)dAM8esdS z`f^vxUJcN}Fj9XXAoT#GeKM7+w9;idkGJVqp*ygbPLU3kAyfE@R(LM(Nq`}hmIt6v zs-z1**{cM2HNYGWz!0q>&yA70qkWOGBNUl}HwIYJ(D?x1uE1#Ea9}LJlHT(J;0pi} zjR8=l6@{~fSm?ti$3CRs2aSKooZBfe?ajP=vzPQO=(m6TryGkqzwMQMkM|`!s`An8eb?h2q9NDNJHzxLcfc`>p9G zCb9lqfM(J1>tPxh&)t02?D2bvZL~Eym$k9eQ6?%!dqttIbbTrA%Uz#~x2NwTz5>}`K`+@Nez;_b{nhOP-0#cBda_2S_y$f_KklA;SDK@jqVD*~$$B9%~G2?Ld* zmDpYh6O}Mld9f0wc*1FdMW?f>io={7-;<(Mlvt}}%TF?_rD&C;h$fwk%q$ln*LTBK z%4@cPY(KEJ?2i2dLoa$cAeR)#dJ!0gVUxsJOR9ed_IG5zo>;Nymda%_y_pRwf{lwS z5^>tb^ZQy_yRjp`!WM1g6j`B)T%JkymnRoC_{`z^-`(7Oa7Afa*U@_h4=r++uRIj9 z!=Xy@FZ;zpCOC%RJl&KMP(HeXSQWa+UE%Nr4kFwbhYxWuzzuU)$Jsf2g#!ZTs7AL^ zuabX*3AuQTJI`I@2ntymB+HoEQ`h}V%3M;QjM%*+C%Je2SxCo0{2k_JL`Pq)%<_U0pu!zFtxLO8n}+>Aj*Ar*#}$Rkd_Q+_XCul+AhQ-F3J9 z@Xi*0Lc!d%wejuC{JjTd-);`^?QCSO@hA-qi52S|I~{l^WorsvYuRqW>kT^%cwc|q z({Y%MGsR&IZ{@LuvvQclCXAJYQ%7~6OCQcphjb}0O&q-o>5x=!SAohDRtu?NM)vgR zJjvQQ$%)rx9R%5`6`bG8djI^(suLTh!e@7#UQ_ydR^y7=y8anCp6Pv6bptbUaccC_ z=$~tM|8ft`5AJ?{_gzO8W#ueBvhjberxs;rEqa>1%hS;r&_Q_$-V@Eta|#3+;_Y!C zai4QvbIea9rWth2G{q;qYND!eJSvuB{JA0#+quZKZ+GdmMCe0~|$S ziCB@I4|7y7vc05k+&7 zX+=X{tKDw*0$JTt5GkgH7R4vZiw1;F5mQU4Oq@wrw^=Tk&J$U0YC% zn0JpB?%|=;1g#kKiShanM{j~c5ER1-tkC?GDi#MlR$%22RSbkd-|2rSEg)Kws>lu_ z@vTbybUTAcp3BP=ZOU!mz3{~aJ6qlE)}0GpT)4YE7n^oP|NNW2zTbWk-L)(FB}x6} z&*QtLvCJTHmBj5s73kOE4>m9(3|>Q=S-hrvTRC3i-{!|_eA|3@jdq(BZ^#(Q!1MIW z^*A{P%qm#x-R{Li)*FAaAaiAL(v;4m{v@20l$E45I#y1Zf>w%lqtAHA$cz#N6d2a5 zysU<5HK>b|hLV$odoy8v=8DWaG8uJdawg7n4SJNq;ARcX)-2WxY8aCSI1OmHBx2Xn zc@o*APiavF8l1Wwh0)7SD|uX6C0U>yk|Qelq&GOEStY4t-6(&iZl@cHWDhjcm8OvQ zipUa7@Ra6MvR+iLe`#>bOGD-Sk5ukkR@}1VKwa;8f6pTS%6S#rw%q<;+{>Eq#>d*$ zKD)x77V4kTa@VXJ*tYQDzLKfScQ)ut=hvif-#VkS$Z*hHvY=trmJR*!9V7GdDwgb+ zUbSLQmB8{9tpk6Q_C&Q2w%d%Mf#g_5p-{mPN|Y8ePy*4~RBspfI_Un2Q_mG;`1MZnLFkSC z1g1X?bN92Ae|+|{tBLz1KIkQ5i6eZFjUE@LuVG2pDf3zEzrg-;Y#$g-^zRbpmtNL0ZdqD*s#4J(aOM8%j%`Ihd&jEVNt%n(v#-e-XM zh82c842;^4Y`_NXV4@N-<@6&cxHNSXL)hwEk5NLzGmpj<$Xt1Rr*^7Hr#RBoJ4$K)0&s=zvGS_b1LUm z*;6aqD)hH*Us7JMXmmmS@X(6hB|Uv*`(-(eBXa7N>$AG-=CV_xFgauzQ?}>u2PRPo|i>6c`!R$ zNFRT4Duls7%@z&r)qv#&p^QaFL5>ysV;0=1)ybFiW$r2Yoy2fnEd_<#a%AW`!gwtR zM2KQ^nw?A)(3i>D#JgVI*#Fe(Y4N8t*>y`o!PQNk+!?DvdACk2N{ILv=lB+D{^;Vq zXV!}F_Oi&PVBx$CL34Ivh0EQ%Vdm7^W_o{wlnfL8dVh3kMv=JY37K~D;5?p*2Z%0p ziYA0bJV5MfgkC)a?*aA^n-S58fRBodvB+tj2VcSY!-pmNBTVS-BJyD**4BU+Zp-M) zz(MC6XOEMaW9_lxwuHU}%o<>=e!Cv8*Y4C}O&n-cuwJ=SiPtjQ8Dffnk`R2z9hvLW*qV@zO3^Vff46@bHdsb1xJ}uol-O(o!!+Y=jGJBEt|1rGoYtK- zl*SaL)}`WY1yDd`Ay2IhZB2%Z<7-{?+5~CGR-SDmW`}L3{niQ~`D0P3$95u_? z@6au&V({7ijb}Cl>h6AZZRoDv841s)Y;3w^U31=)6N6m``va%bL(76wx|{sjjmv7L z_J%Uy-DSr&)h{>>aO5>ed7~?J+RCtfUQ=+_`@83LR;~HrK*QSEdA6y`Zk=&YcX?jR z2FgD^qF+lSU7tX#_3$G)*sp(p9SWeE*?6r0i58%i>^=));lwy|h?}QguHL9-)GFvt zP}ngH;ENd3#ULMtNs?1x#15(~7SJdZKon@TpHRpj+x}ner^49bbNf41O~!A5cu>wF zATER%;)$I@eoki9v*Szgw%6Z`j$*-NRz)A;j3$!;{tDI6A4BzS=G1>Tx8BFx&e_s4 z;>N#JC0mo};VHr&+KDlBbqar45-UCH=Z^4VnUNCsUpB&P||?v+v-5`-K_4$O3c%Y{1a zEYb-&oUapg1G-_|nC^ePPNCDOJI%&PABEnbL+>Xu_ECfE(zPvvNh^Rn;fB|KW3aiH z#+vD#6_dE`l{>|{&9APRb$6TOu!7!QcUfB#tz_@0mg-7%qS4+K(!&D~W?w@tUbtj})^N@qS!5Eyrc?R z;+DkW_VQ)rIFl)6aHfG+4ZtTPC9F@_nZPP+7Ta3eb{ot4f?`2hemrc7zYve(>xUIV z$tG_~AT~KySx*>2o$RO=>+yT_fa)FfqxF$`HhiHT#_E4zW<3noAFju`dS5+0Uw?(B zK$W9QD+${L-PEwz!iS3#kf{I#A`5VVv`EpgkYv(J{xp43)BM`*COu3lb0Xpb2GvSDL)pgWj}O%*Kzq233HN3iff|KL$CW*8Pf zM?(`AJX3$dy~TBlr`qk}qT1r#Sq0I#ne~e*lN+1T8rRKvF{iQIRX6hPJ$IkKe|q1- zq^go^hIdysWPS60{`eX5=Bmeg^7DHiA6Ro}QLeZ9F?oGE6a6P_MxUTKG~*S-PFy^# z(TCIzp?yk9T??-dDTm`mw@&>;?*DaiyMyRB25k_7OuG(2 z9NmehX5e|mbfE!yuvkFykswZqj#0OaI%o{y1jz}dnK9y|sT{;5i}`9V5ob<%=H*Mz zQ)GXjz#s#)uH4cnJ0z92phI%EXo%$Xv)tx?Zj#3I4AHwjGA0g{irI8W6Vr`N2P?8& z>@a(ny~3(krd=KuLzElCbke3TNuqVhN7W~7(P@6>EdEb!^Hu9Xd9J-g2OcImFb};V z-o4!o%iK_tF)IUeiRQ$XL}pF`%rOFIFdKhb49teOkvQBI*B6JEF|Z6nLq=N$F0#Q! z?Jg}Ai4~wupKlkPPPECs$Bym3VTZ5FH|%4~^Nyjj2s;oEQX*&Pl{838~{{6zHY<8AmY zNdPdl5_&!C2A7BAk>Fwh0ClXXboi{Qn{PNW+gHIBD#0(qg9yRH0NT{nU;yFyDy) zMOSZp(of`@ffuQKpQJ%Zw&1A^@BaApl&Y?}`r8^ZY1px*OSI#(@t?IVPA-4VPh*Kp zhqBm9(YDkQbCP9gd-Tib9|jKh=6iddUN`jEVz;;FNr~S&2(A83_^lfKL0q}73Tmt1 z=?d6h3|ptbL)mcD2^y!>>2@A)vTe4bHoQv@yOgjGgA@VVS`J;s&}Sy*Dde{2q{FpGy;9(c|;=^x0hJMqsYib|g8HN6|N;3hr0o9ta; z#5vM$^bxYW+_hcg8@M$gm1F;2H~PuG=s%+WmHkS5`Qit9TJGy9t6qQoSXagEw{-=x zn?}#A-twd2=?SmJ7tPr?d(pNgSM`ef!c#Y|?Y-3v+uHWs7C7@_MoIhBbX#R-P2HT* zOpDg;E^k^M?A|j!H)q!Ru+twdPH|N>`Kp_W(+xUO*t}YLCmdM|zhTRf9ls}5JjlR< z81@UW55c{{qXL$;Z8v||Mr@DRm_8dknhL1`QC$xhVY?Al8;O4CG2#adz!)fj(@Bwl z5>@1%KGiPlx5IWjwAmqOha@{F?4Yt6^b(?8K^!<|rnA@?B;Lnb=XU4Q&Qs1eou50u zcE-I$@7O7wCI9$Op>s~4g?Q`DRTTfSzQSoCMY3Z<3uLh7p|5|OaM1}ralY@wC!KKE z33odmaN;2+bUC5MIm?L)o#1c+b{d@cQ|DJsETJB8o^)afv)ei3#1dkDGJ zCP;`D+9vc$s2|Y*fP}k`4gkI%c@kHAnqZTmM(FhSI&qhCz=>;}%}(ra<~uR#G&%7_ z=M^VD=lsBl|2=_~c!t&VR8<)$!dUf^xAO!lVh`_49qwrftBN=!+fY z>xgN*Yv!_(>i*2EB5DB@R|7rC$0SrSB}PAMOWkH>7YnR|*M?TGcd!T9=UJBI;zIqFO%`m4(^?oI$gB2H!$II2#AaZX z+;Af36ybk3>Q3`IV=R#WE#L>G%dg}l4GFyw^_FTCxAlU~qx;l1a)Q0N7R7ffD2Uiiuj=e=;w z3lWOC)qBLtba|oK3!;Q4c!Bl8Lsw|^bKXzA%wdYQ*NekmsP#fVEl&4h(#l1O@_`qR zdSQR77Y1nUT5q?Pk$aN6kvll&WxHr`vlq+F_tF;S_PMa!Vy%}kdF2+idTF~~c~!LL zS6*fp#h|r^ylja$`%`Ihw1(UYMBZ=Yn zZ4iIo*;=U}cD6$Jjg%-L3tqq{iI#kI&|imBUszmHTq2#01s8aktjsJ+LMlkk8OQ=g z+;eUY#+ZrMY3;h`-tEyn3aw73)Cz|UTV+m$ARj$s6|Nd*IcW1jaf^Z4`q1@3=^ zS>K4vm@YfdmrztzTH@=?`lgxN{Eg34T~i?ll{Hl+<`&IbDy_bzJRyIfqN>bPHLt>^WS-)<(#1QQ#^0efA+^{4Ok^uw zij&Mfis8WoI3PSHU^SD>yk|J&e9dx%ZdD0S*jSnXcmPmimqD+!@ z78J984y-@5KDy{EZo2bFcT|lXITGClTb??=d_4cqn%ePCxXpq7M;C72HU7Z^5{;YS zetZY>8Zx4WSCD?v5CZ3QtydNLr) z6iK!-+_&*a0gi3wKTphSJpNzT%;{T}OXl>8OWVN&iMY6Zk=pIc<>ASz#;j1Kn^$M# z7bU}hWKZ`#y^e0-PukNqLYPYKXUK{k7d4F9sP?O;sadU>s^Vp;xKOfAfOsKEfFOr3 z7_i;uv(dBGn{0b*hirdJovoTAkJ--JF4!*Hlog#Mh2=8FCeG;&*~BbQh@QgivN6Xb zBu2D>j`aDCn-=_H`bNZVG=Jb{g6-yf33dK%_v*dqNW-Z)8=By;${)5=7 z0-h(9Nbi0>fb^-%cC-)Sa@{RD{D=ApE12Y4tNSYxmnq+6q5 zo?(~afZ=V!CkB7jgaOVOJ}}_J2H0xYYrtIws5LYju)_eX!DPU1UA&G!0kn`JDkc-O zP+_Ho@CikQ1GFWWN814z{?K=Nl^+bj`*wd9zdN4EZrR=&2SBk@|EfnBE_W*~mOECI z+&Bb9wE_N3pEr%^+l4r60G|PZ|1c0n>j_;ZZVqUkZ$q=Id^O>u|4F~$(LdW7xj}m z=mxzs8T`{j`M>){j?8M-Bs1;V%d&AB?!#C}RBJ=U zD#$=9>8Wo#(|Fd1k&%8YA{rw`PH8OH^sCjrl@94MxiQh|$PC$xg@c`m{fRg+k;@%S zQ^pS_T-(r_j2_9`EPmf5YR{}%O{qh@1N5x}-;=vi*CM4QH^xc7yFq2B-}?I6rn`GW zmgj#{ZlBk%z9k=<8#-2$bRAexQN8Y1{}+Efm(j31ICW_#%N1N&SI|4V2>&TtyDCPTw0umxvg<~ai#GQe`fMk0}n zAw}DsAQDxVkU--l_B3A_K9&Y)`NJtW?MNXgL+PgH#4$21gZ^Ld$ZJ{d4nuuPq%vhtZld!_$A9 z)0RwY+0yEb{^j7_=vkQBJQQ*?O_{$r96bnw4IA4E;NImAb$YnXSV}DP&-)gRU?^rBz67i5@1|lf)(^ zp~Oy(VQEaZK%#4hyv0S#HeZLo%tt`d_aRin$&PGiOx;N&cEY43C(##}8;F0pJNiJh z;Vgb=-79z1WHsMC4@Up)Xw%TkZ*&~~m8ojWPe+)|-|Sib zg9UC+*MWYf`L;Zi8S}|{fW<-PgG{CJ? zC{Q>Kgg8eWj?;8ff6ReI)P;r-hfv&*R>9G&UMd1)yyQoB#pwt^p~hxcVKOdp7CG6t zWhaK~UkmRzxnx|!Jjq^uBKl$U7ttS|JPLJC2Hpqv%kg(A`%B0e;s^(Ki@~FburU#y zPXKFzJE0AE5`68&eI)PItMb`a*2 zHY9I|>(Uj2iXUr{*9Tb?xh2caT)lt%f8hNm!T4tX*sQ%j-x&QLDDQuLWCngO68+zo zJGjkFN2A}I-1GL`fvd+u_k9qH!*JDP{2KI#*!vv7qX2&+sz+3K1RkNjXAg!g$_JIW zTS+w73kWYq8__Prv>}+Ih68Fyrys{HQ~gtgRq9dxFg<;RGy&BK2F zr##*z=NtGwo_*_M{!cu9n}<_8k7Q@Nkre zeLR#AT%5-PXn1&NIlqzL#XrZt%74LM<(17mfx3VB3ObIfJU+rh1>ZE|KLgHQS{_dE~Bco^lOpWnn|fp_pCALd#4Q{J<*!7iS@ zOtycT2ZuBaCBw1t(2hl{j2}=QRz|1>8CGIxS5%jf5>h%a5T!?!88A!=*E{sHW=KvH zrjLJG(0NlJ=voNqnl&A>u&?DNzuCSaSR|uP$(IjdIL-L{8_^VYJNwyHEBo2O*cs=A z(L1?c#cabT#8oRycbImYn5BuZ)CNn^V6J}xTBbmI7PRNV3gaEd-9{$a*lxth+3nfb z>}m1fXtSSa`K}!Kv7Jyc3;jCz$sFRP|%sXa1YsC&L=&W`twmQm(%W-a}gDvdj zEJk&w9{I@PLZ!Du+CG%US6@~p{YM)e*Vfc)pa01g%Z>lPh8JHuPht6v0m%Jo`u%^u z+-@$ao$XH%6Ef#bnKQgFXnpMRq44|@z#V-Cxa0HxW9p{YHs1Bdrs}DiUf;O&?8XZG z)(`&gkJcE(_A;xA+s-t_YC>HPSVdP%1|$Do123==%PyCcGBN7 zr2Y;9dj`LYnqqZqq+ChT+sLnrmXS8;?=g~Q39L`b6FB=vZ(9xMR{3iNpaDXe4jVZlbw~Bk?u-!+7nHBK^L#psCkuA z!LbZc=AJrNu*(t2?253Nu23kC=3NU3VBrmbu84zxf;Zzt99FH9M&6F})l5sjo4M$z#(ppCZ zx*TO2oRuGWyGhNL3du7Tr_T?JACXV;Y<$4I56-A0&< zx`o}5a8qktt<~vl%kwlu;$5{;5t=478Bt7&D5WMHeRSw(m*co+Y-E4;838Toa>sSM zx);uGjW7#I-4Uj4WaOTR-W|zt)kbnQe40pRz9iyt)z(GawAIF0*ZOI^-X%o148i3X z`5PkBab5cIX2`-AM3Eu<4bfzfkauJx=yC){x<(eBnHXN=atN-G<8g5#19gPLDBMbF zotgO2E^8#XyDcJgEroyb*kpsV8Y9N0d94wg5p*nFNFd~|+T|>@I`wUnIN^U)j0hnJ zIS5UiPCD^jXGFA!WFo^&t#aOh7Fkaq(dTZ9;4WG+Hd$hBp(VqUCD*EVxyajWoZUJS zVKW-KU3G-UyB0=<7ZHA1Mqh zDYVLnAZ6memLHd_q=QVo!BOTS&Cqu0TyKtksdTi06-|F)lVL=19Cb@-V|X-wQ==SZ zr)ix2~lspoZW5keX9(z~KH|1_179kUIlH$n>C1xb(w%$nGNWGN5mJNNYxM8x` zF`{xc&K`fEjk{tEA~N!Z2%;=3mg=pN^iz3u1s4(_CK4^l^T=^gq_Vt}itUK2p?kzN zyR}lnCK}{U>jv7F0X0Hnb4{LyD6^X5F4)m@T!bC7+go1|h_|q#x%C7wXQp-4v>i_; zWv#C`5E3OQrcer`83)bKmS&NRO2W6kA|f;_m9l>lK*}#Z14x3YCSiaUpTROrn1o>h zV`Z2q!RSTaQsPoVW1_$79NqN&+|jmlq^phcII<9mkUxlktBO#^RdpP&A}*qKEvboU zTs0J4P2trtTtVSV!Wm$JJkN#^q0aTU#Jv9({nRX23T19&b98cLVQmU!Ze(v_Y6=Q5 zF(9)G5kvxiH!?9f3O+sxb98cLVQmU{oUM3!TvXS!@Lv0zGf!a70CNBbIWr71JO&sz z0|)|gUUH>zCyACNg|$pBa4grvKf;?6dcOUVH6z)_bqb$X#1E5F;5S91#aL z^!1bI^Brtu0|2c-a-gnK6KZH*gE$Q z*#5NX_U#*^bNvH^r2cT=j*)w!bB7mSLmP)S-4UBVjyM7VM#}oht>63oXpg1pb0QnG z)zb@q=0;in*2631$k^;7hFykw#5E8a{W$Jj5?M*=44*{CB4dVK8lCH(bZq(XFVsUl z+#7rX@8LJ{p9%fK1>HK`Kj||8lpky0^j-Qhh6KYpBQ=JM7ftP^X)`hRn-9g6#I8C-)NpzbFzP=^}*Rq5B@{kP2@IZ;<9)2-NCU+Au_bHoQdq-B2 z|J5g|CrAS~`J8-m-NLKn9r7{>leezNhHS_M9rlUjBKeH`?C()UdNSOk4bPLe$?N3B zzk^4~k6@Pk7ShnKPU48cYRLQ0jr=@~u&rbQuE2J1l4BrhtHnq=0r;<>RSk3G0&;hV zTp)*_f1X?rhPgCc_$_^%e23dj&yrst&nxK!!sf_t$Qw`u4P=BwMY00i;~e{%34w311r@?7Lp_ zcfDYRADt#GphtJ}Y478}tBr7O7EaHCI17Vcf%+AUetz)tW1n;X_j0N1yL|LA?YRWL zOFfqcFCD#f{*v&Aiw^mti`DXn7qaF5xKJ&hul`-f2i081@1`N+M3wAYYK9D?EaKaN ze@(^4&7FY^H76}S@bBE5j28PhzDj=gm+A65zx2qxZy$X7%-bC6!Z^6_wlF<+=J~hN z76!0?;cZiVz%mVzYJt*zw2c;XtWue>o%{ zqK_Q($PYi{ktYwBGE$d(Ctg7!=dPVAbPo8Z-nq?CZ=0H_DdmVjlSypMkKL5tk; zAe7x7xSwuACbnW5!8VL7cL?l5zzxA?L-6aNKMc`AB15$Pg-Z@XjXr&VV8> zfYgpOe`<%`&vod~I(@jew?~nCf3RQI)g-SCWXo&1?vc9!#d4C8*dYMd!7E(HAO{w% zhNC@gptj}Y2h_HVOnfD!23ED^$gRP2xdmHVFgHj$gPVhN8WPpqfLmS`NRyiaPPq|< z{%Zi00Fq+su!5ySR4g47NC%KPc^a%I>_+TFwHkZTuG*<+ci4;ULv~)af7DodEW0ec z#p1IBErXUx%X!P3MIVJ;vhafhdI*e4Aiy*noN90LdYh;9bE}%e`j$0e*c*1YvA5dV z71r$yla8)6p(%iGbv`&TL24H^hn2QaxOZV^bGRP|DjSUAKwLN_k=oATk>Qc8!z144 z1JMzg2MiByWl#q4&ZB7Hf8pVgkr5KzGVC2D-eK>^R&591kPOFm4>NQ|E%pQU#`#w7 zh(?Mb4v#P#FB`=^Ml>KJqdoYA;Z!_C>M>dL3mxdudQv!rF<*5;&u7jkQ##?_t4?qf zhh&OlV1a>8=yk3uRVRSK{Z^;d?X)`UsUwmFM$AI=wDguZ!pPYLe8X*Qe;ISug#w^c#sDk>HyW z=%o}XTUssMEeVfF|0tc5K9+ci#pm45&o&t(_!oxzvBX8O@0K7Zx`+N3u1RoGf~O>S zOoDqPXk^omCAwESe2--dDZ!)KxBI0LiPlMN5-pLyErBEfmEiwm^z*K^gl1h#D^!rOzb#YlaWsmrh9ZkObSLZ%VYEp+kvOFHw&K z$(oSme_{B5*#9KK3z`=9FmzaLnkWGfMh&SRlfsP7h;&HeS{MyRjoX9M7o^uv zeql(0dbX2se}bC~Vg3w%j^}ti(4OS9c!(F0l62@8B$3o8HU0`;Vnw%qM)85KdtG-= zH$Gd~b63w@*PeCV*F9Tqc&_5~{13$LuSdLwcEifLZm$Lqe~lw+#h7=@`j7VM` z6H;T7;vy%9f8aDiA(x%N={YBV$9=OO-xqn0QdmpLf9%6?DONLp$(j_R%+qrh)MTTH+yoBoZ3eT|$QkA}TjBFzM(}md zC<=;pf0y{d7B)f|KuXB~8%DJgJlTa%iX-m#v;QFQyb$>kTInDgfsU`v&-a9KuDmMj z{_5qt!tC`5=l_zGx>yA3_apB`^r=(CiF{ev=N+l+?bF_g$n6VkU}1-hwk+moJc{g1 zrssaEMtLT=PKRE!q^9a~IjgTo)D=lZ)Lc}gew8wZ-wH(y36d0%;2TNr9g!uuR#k>{EWE@RbS}m0X3sWmI7Geg(EGu#qhTE_m1){Ol_Q z{#E&tLVuzF+d}VUbQs0W3jdz+-wOSO0^e3nDHONgrvR)`phgKQG)n=q0=Fsqm1mS+ ze<+_QLXQG=#j7+coJE1dJbv&61s+#mQh^bLZ3{AlN`>O``^s0y)ckf1x0bL)_>3(9 zF5p)D9`u)*ganby-n+seaWP7r8dM#$bnUsO&K}y-8CETJUf1Gg9 z3E)I0N4|gBXfv9PX0u>28--UQ-;X>B-mqnXInHEB&?Usj3(vvw6S}y#I00L{IX&TN z@Nz!)#-c@)mF21a;{3!bZwtGxTvm4$SClLdWT;CjQs|#&6H_Z|YBBKAOcvmxjQ+fiNkB5 zNF0R2)BOxNhxZr$G64rE!VyP+W0tAG46p@NH{(T3u{=;*#18a*kj*j^-e~4X<=m%& zPM?zKVYfP~p4j1C&VNrj@zR7L7TZ zGuHO;?N{ERmuE%pW?}cm$P*VM6BqIO8o$C}QcdnSg_A$3wMMeSDdH=yD_7}~bMeoV z)J1B{T^5sU3YvOMgC@b0f20TnJz05qS-jXIh-Qbm$jlX)RWn6PCy^RIawE=QCn9GR zj4km4Hu51roMFxc$qCezSxB?p8Ju4!D=oocp-@_~g!+{Xnj#c}D>H%Gl5w0N2)e){ zA3bs4*Wd23!NR!0*6lYRKC0e2-duIh9qSsh+aG;%$N1|Hu1Ji0e<+Q8W96pm1xnX_ z&9(P$+t}=d!@b`fs#exNw9e;SSs}0KTfDr;VM)lyTikKiip__6^1Y!4JG0lUwHH=r zmeduEMwiIJrli93UnCiJM2VcZfp6VG5H6Hikp#+BO4s{Gduhkzl zEk>rd-0$~cj8;@cW0H8gyT=64Yw(J%IYG}(A}c#o`A|gnT;x5-ruRZ<_9?objy*UV z5q8h+rn_c;eB~XKFM$xgpI?mfz5J3v<5f3*)=+jt`mYJ0f9DJ)v(5}g%5w%V8L3f^ z15VGIH~=$eFcPC#Jcx&;7G9=!CZSFcD8~+-g+cBpN4d-Ka3LOo@kiq+=uI5Y8w3kS zY*8uGd?|jw?33!l%!3(+Ng5j^R#;Q~;uzKs*r?%*fej2;K(HHt*J)Pu`L9GG zzk&miG4Or-e+MYWeiHUZ?x8+vjywVDXa73;CI-`3WHmp@w~{PUM!HXtOjLZjfvn&h z_;NSCMb0Bm`A|6&q+0{$u!>+8=d7G2)~ktzxTeIMV7fz;ELOV`Gzk*A`%Fy@z5r_k zRv~O*R;ESz`2TFX zKTDreQf|9#ZTq3KJ5D|C>X^La)`@nPcg?r7J4Vagr+fjwl4Ou<5_~Bwuwa2ZATq(S zv%O7Xf37b#nA?*(n0qu=$g(yH)>T%`Q(ZySaM#x@0gWF1`JG z!`|janG~Kh+?m`k@vF(l-+f?l=dtr+hWf1?f5kPmDTM>8E4ZnJHT{7H9zfq6Lt!F( zkSrwYP7zDYYi&%Bbc`>XP2MFRmFYPdd~%O`T;}2y2F~HOm?>G0!4}s<(pusYMZJZ& z;dLfNM`RAjZ0NVL)D*QEW-2Mg#!{2cW}O5MjTA?DEXZwn6)lx%#qstno05{MFB*`odTb5*O(^MP&4Ne-Ao430!bpc2Sr6p!=Ac4ryK3ec3Hsazk2N z;2hpCVhW4b{=0*|AD^acStur1;-i6EGvl9EnZ}9c_D-fU&9kk}>$Io&yv@qplw7#H z)ZbR+L?*APu;RyeuOI91(4Lyj&3OfF!ws`P<(gc}>q_I}N>x?bIiwC93C*^$f4t0m zcoF)rgDg@r#DK+O4+PU8JyU8Fl7c2tG>NJm?Do_k^Hy}tZtWmKUu6vb4^NGrH9DIZ zb5^=)_p767V9%@fZvMfxWeJgw;(9|{27cFadps;KHE#cLa?8VKcaFXD&`sridu~c- zyXEDn$oPi-_~w0^Ymm3Jxj)l~e}r<9LfTb7)#~)PxSnK4PBtY3@N5@^AlJhUavZ06 z@|%uvz{Lweok?df=q%PK!^o}GFU}~K^1WMPV~jb!4->wS=_$3kO8txcHowhfO_mtb zwgiADcYbr1%29vJ*_|Fd(v{q*|R+fdTGn2h-J685S z(CP+$QDsoECAcaJ5*oMO>{D(z*b~|2smitKj-X}ufejmmsF6~$f2+1)MRQ^EdOzCP zh01&m1S$wk+AaGT)?oe~}kNN3o;h6=w7H$V$EoW8Y62m{(>clmyQEz^7td`x=KDK^G8& zC5>m&&!y8MjH5hDMKH@LE)6E7*o>`2r$Zqz>9cxH`>`UJg%KWe+Hr>makP*F%_dc_ zsH_z2n@Ma~4gDC2>cG@l)!Mx^bx{b0Bu9?~qgf3zrVl}-R!Jhfxfqw9Uj zrtjW<`!hvY3keiVl&^o_^p+g8Ew8L?aRxgGYjYwiy(?~0olBRe*WKBgzBn~~!RB?X z5B=-*`+o6oaP21BB7crP>;CpD|FP}($YSn;jeA#R=7sjIJAT61HqP{dv9K0xn8l(& z&65Rp;5=Svf0$mJi-s0~uklR6xdd9200}b53#KNC#X-R+k*MLWs^Xd+oQ2$tl4Ex9 zmv~A%?B4>(QVPsVE;7Nno2Y=Y6(8TR@zFjXp8dC%u5YhTr2vqoqmkd|EN%0awN)(q zU0!=_t|7Oi%(i(=`{A?O?|t*pcB!z*Z^~B6(qR8re~#e2nbdXLM4L0O>%c9MgIPB} z6s=!(G5N5*bCI=bp{)J4AlV!^kK!;96TU9%L*P>8Tqe!b(mkG!nJnE)$+kFRxt8v` zXS8I`gpN9Dtboy^M3JvogB6Y>7cSG%J){B0LF6+KI8G>k_U^vD9Ugx1?DysqKCQnp zo!LB}fAH@eQU{NO=<0>tq_ify4FKr%28%%W*g0F_ zt6)X3w|oA$ja>z>*RBHECI0&QpR0|W-_FVaxE~55d*IvfpY4%bg*UD|2WKK(v$sd( ze~8s04QdetPE#17a2~T2-kMtkdQ1olbe8~lla>X*OXny8*iD+p3WUYL4Hd{t^e&9G zhw#RiC7S;=q1|N6JC)?fDY6(Z6sG9iGJ3zbtWA}GoEONInGynNjwW{BG}!`L4IV@i z)h*RfR2{CSYBl((!5lCtHo@1L^~*dMf645-N(V+9j0TJ|*q;sa-x%BeDDE zOn0>7$LtldMotI?}3 zXPC_PVs~D#oMN%$H4S#G*xpg#Y`k;jf^2_=*MKAaKNh}}Bi_HzPf5M-&%}>yAFUun zKS3z=`-GcGCAMgfYy2=t;D1lXf3R=i7LqZZ;1c73Fv=6c_ml3-WWaJ?<=5 zrc+K$wu+X7c(ci9(CY-Aqd@W-T!CIk*wY*4J+7vv0ycN`A)xO%KyTQAf1tpPIAKSx zhUT~tQ$@^;e}kz;G1aS>AUdi@RYAU^!Q}{_t#>)5p{q570c}8Y z8WvAcVu)v-4Rh{>zW#7ae`~0r-tKgE7UVArC%EdhB~qu64D0H`dX1!GGh?0XcTDA< z89y*BlJ&jbxPDiE-`Y@^>%+a{T*LVISlH?f=ep{{xjQbVqU0OG`L6ngu$NJ7UUl_5 z&DTB&VZklB9OIu86vs95>5Y)S7)0k5KPPM$K=qD~2V9Q8c<*@MfArkwdY40VjZekJ zjSn@ThDl2ZcTLZ|yx$%U9Ow*-y#uf~CTw6;b2zDWO(;y=0mnceLhx7Pa+cej*3NmH zmcO@5P!XsO)Tz_S1m8cclJz(VkG6)Qa|c;(KS5NVw=+z8*~*#u6JR*1y>i7CfjH z+;#m1^c1#bT+}8BUqrhZJAS}pO>|VakPM^K;A-fN{k9FHA^}H1ez?gSHGO+1tk&Z| z?Tgu{VXDZ7JNkOjM4Rh1^M!q`p>VRR_NqM@TMe7rLfV$tf3|RPU6}OV65AE_HPo{& zI~vA&>!U0%TCUd6DdL~IFjeBPKkp|cq_dtOOLgd1o`&&I|HiP~YwyQM+vo_{onf^T z4czGpZRliZs?uNf1;|kfMWYFcp2DiZx zqIRwm5k&+ze*!pg)mGs zX`Y&nO_5Grlik_rj6MbV6qg;b591C4Q)<)v66eNDfG~<=G!WBeD)V_q$hE=M=^Ai^ z)s_&Gjj2b|a!eVT&SSP}zhQQrvQSOLiOcg7rp$1_e`~*9x#31_es$XPH_OZBmmT8< zS99AqBkqb3B*^))FkvpNmRs#w^s{(&1^O_EF`~729-mTG7Rv)HY{y;8`o~>up(+g< zGsu1R9qe0)q#2sqYYXx*nbl6YU~lV`3VYkSLZ?JR9DCbCC$OTZ>#gma%EGnKDF-2{ z2Bi$je}HV_U=v1Z6;2EqzWtO+$f&l;YXEJ2%QO%TW|)Toxn-J0Vd6ZDB8-p1R1L-+ zv{LE->KOBPgQK6>XJ_ZYcyA~3aU!8c@CRXVEkW(LmP`TF#f43-4Ygss`7wA6gV#ji zItJIHXMh9+`8&qN2G{4Q1^*udY}(igWo~41v&b3u0e?9$3O+sxb98cLVQmU{oYhv} zZ`(Eye%D{Y$Mhi*dHg*D0USGSjV)^tXIrtM4~oTk8XU=x6rlOvD(zFXdy;lkBQ47J28$$$#PpprEJ$#*AcA|NaKyXk6aa|KG#) z`ImJSJz-F1UtVA2#`zxTtDIfCw!UvRSaxr>tZ~IpekyNW(}!N?ReO3-?}}4Rt-*}7 zvDl5h^CK&(1@{EHvpbz7LG*nunB4K(fi?|78f$E5rmKr4I3d0=V%m_)Dp$sEL z41W|Rp_$RKbfp1-w~X^=&%+QD34&=E%hVWS8N=#F!dPv&5EksSuxVYH-tVa4i;f02nel8HQ?iT7^GJ<`i?uYS(& z+;JS1yL{UcF_>KprNC>#QwEZpa-0Bwk_sh8B~1ZaMH%cj%V^4aJ!Z5*5-&HiYJa

RX3w{=O+(Hbj=R4~e9iqE)bn?YkZPm$m~(vP-zHdv4ZNSo@RFL*3mT!^}S zL#zOfS3(#FVYKLqQYy6;zMvSym_j-|!_TTPv4hrCWw7E z(!uZcfOX3ZPiLB#=l> zU|;|MK(Ggm3T19&b98cLVQmU!Ze(v_Y6=Q-bYXIIcyeWC3Nke`G%yM!B}Gq0MppmJ delta 7007 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 diff --git a/tests/fixtures/pdfs/unknown/weasyprint-cairo-classic.expected.json b/tests/fixtures/pdfs/unknown/weasyprint-cairo-classic.expected.json index ee9f0d2d..7122737e 100644 --- a/tests/fixtures/pdfs/unknown/weasyprint-cairo-classic.expected.json +++ b/tests/fixtures/pdfs/unknown/weasyprint-cairo-classic.expected.json @@ -125,7 +125,7 @@ "phoneChangedAcrossRoundtrip": false, "locationChangedAcrossRoundtrip": false, "linkedinUrlChangedAcrossRoundtrip": false, - "experienceChangedAcrossRoundtrip": true, + "experienceChangedAcrossRoundtrip": false, "educationChangedAcrossRoundtrip": false, "skillsChangedAcrossRoundtrip": false, "summaryChangedAcrossRoundtrip": false,