From f2c2fb40f47b87e765e4aa88c1d68d903f7222fc Mon Sep 17 00:00:00 2001 From: eosfor <9363027+eosfor@users.noreply.github.com> Date: Sun, 20 Sep 2026 19:28:49 -0700 Subject: [PATCH] Add Vega-Lite HTML reports article --- content/articles/2026/10/_index.md | 4 + .../index.md | 320 ++++++++++++++++++ .../palmer-penguins-report.png | Bin 0 -> 78757 bytes 3 files changed, 324 insertions(+) create mode 100644 content/articles/2026/10/_index.md create mode 100644 content/articles/2026/10/build-vega-lite-html-reports-with-powershell/index.md create mode 100644 content/articles/2026/10/build-vega-lite-html-reports-with-powershell/palmer-penguins-report.png diff --git a/content/articles/2026/10/_index.md b/content/articles/2026/10/_index.md new file mode 100644 index 000000000..acb76bf53 --- /dev/null +++ b/content/articles/2026/10/_index.md @@ -0,0 +1,4 @@ +--- +title: "Articles from October 2026" +description: "PowerShell.org Articles published in October 2026." +--- diff --git a/content/articles/2026/10/build-vega-lite-html-reports-with-powershell/index.md b/content/articles/2026/10/build-vega-lite-html-reports-with-powershell/index.md new file mode 100644 index 000000000..d40a8b0b7 --- /dev/null +++ b/content/articles/2026/10/build-vega-lite-html-reports-with-powershell/index.md @@ -0,0 +1,320 @@ +--- +title: "Build Vega-Lite HTML Reports with PowerShell" +description: "Use PowerShell objects and Vega-Lite specifications to generate an interactive HTML report without adopting a separate reporting framework." +author: Andrey Vernigora +authors: + - Andrey Vernigora +date: "2026-10-05T00:00:00+00:00" +categories: + - PowerShell for Developers +tags: + - powershell + - vega-lite + - data-visualization + - html + - reporting +--- + +PowerShell is good at acquiring data and turning it into objects. Vega-Lite is good at turning structured data into interactive graphics. A small function is enough to connect the two without adopting a reporting framework or opening a browser from the script. + +In this article, we download the [Palmer Penguins](https://allisonhorst.github.io/palmerpenguins/) dataset, clean it with ordinary PowerShell, describe three views as one Vega-Lite specification, and save the finished report as an HTML file. + +The key design choice is that `Show-VegaLite` doesn't decide what to do with the HTML. It returns the document to the pipeline: + +```powershell +$reportSpec | + Show-VegaLite -PageTitle 'Palmer Penguins report' | + Set-Content -Path ./penguins-report.html -Encoding utf8 +``` + +That makes the renderer useful in a console script, scheduled job, CI pipeline, or notebook. + +## The finished report + +The example produces one HTML document containing a bar chart, scatter plot, and box plot. + + + +The charts answer progressively richer questions: + +- How many complete observations are available for each species? +- How do bill length and bill depth separate the species? +- How different are the body-mass distributions? + +The saved report remains interactive. Vega-Embed provides tooltips and an action menu that can export individual views. + +## Load and shape the data + +The simplified Palmer Penguins dataset has 344 rows and eight columns. It contains categories, measurements, missing values, and several visible relationships, which makes it a useful alternative to the classic Iris dataset. The project publishes the data under CC0 and documents the original Palmer Station LTER sources. + +PowerShell can download the CSV directly: + +```powershell +$dataUrl = 'https://raw.githubusercontent.com/' + + 'allisonhorst/palmerpenguins/main/inst/extdata/penguins.csv' + +$penguins = Invoke-RestMethod -Uri $dataUrl | + ConvertFrom-Csv | + Where-Object { + $_.bill_length_mm -ne 'NA' -and + $_.bill_depth_mm -ne 'NA' -and + $_.flipper_length_mm -ne 'NA' -and + $_.body_mass_g -ne 'NA' -and + $_.sex -ne 'NA' + } | + ForEach-Object { + [pscustomobject]@{ + species = $_.species + island = $_.island + bill_length_mm = [double]$_.bill_length_mm + bill_depth_mm = [double]$_.bill_depth_mm + flipper_length_mm = [int]$_.flipper_length_mm + body_mass_g = [int]$_.body_mass_g + sex = $_.sex + year = [int]$_.year + } + } +``` + +The explicit casts matter. `ConvertFrom-Csv` initially creates strings, while Vega-Lite should receive JSON numbers for quantitative fields. Removing incomplete records keeps this example focused. A production report could retain them and add a separate data-quality summary. + +## Describe several charts in one specification + +Vega-Lite specifications are JSON documents. PowerShell ordered hashtables and arrays let us construct the same structure while keeping the data as objects until the final serialization step. + +The top-level `data` property makes the cleaned data available to every view. `vconcat` places the count chart above an `hconcat` containing the scatter and box plots: + +```powershell +$reportSpec = [ordered]@{ + '$schema' = 'https://vega.github.io/schema/vega-lite/v6.json' + data = @{ values = @($penguins) } + spacing = 24 + vconcat = @( + @{ + width = 760 + height = 150 + title = 'Observations by species' + mark = @{ type = 'bar'; cornerRadiusEnd = 3 } + encoding = @{ + x = @{ + field = 'species' + type = 'nominal' + title = $null + sort = '-y' + } + y = @{ + aggregate = 'count' + type = 'quantitative' + title = 'Penguins' + } + color = @{ + field = 'species' + type = 'nominal' + legend = $null + } + tooltip = @( + @{ field = 'species'; type = 'nominal'; title = 'Species' } + @{ aggregate = 'count'; type = 'quantitative'; title = 'Observations' } + ) + } + } + @{ + hconcat = @( + @{ + width = 365 + height = 300 + title = 'Bill dimensions' + mark = @{ + type = 'point' + filled = $true + opacity = 0.72 + size = 65 + } + encoding = @{ + x = @{ + field = 'bill_length_mm' + type = 'quantitative' + title = 'Bill length (mm)' + scale = @{ zero = $false } + } + y = @{ + field = 'bill_depth_mm' + type = 'quantitative' + title = 'Bill depth (mm)' + scale = @{ zero = $false } + } + color = @{ + field = 'species' + type = 'nominal' + title = 'Species' + } + shape = @{ + field = 'sex' + type = 'nominal' + title = 'Sex' + } + } + } + @{ + width = 365 + height = 300 + title = 'Body mass distribution' + mark = @{ + type = 'boxplot' + extent = 'min-max' + size = 34 + } + encoding = @{ + x = @{ + field = 'species' + type = 'nominal' + title = $null + } + y = @{ + field = 'body_mass_g' + type = 'quantitative' + title = 'Body mass (g)' + scale = @{ zero = $false } + } + color = @{ + field = 'species' + type = 'nominal' + legend = $null + } + } + } + ) + } + ) + config = @{ + view = @{ stroke = $null } + axis = @{ + labelColor = '#42506a' + titleColor = '#27334a' + gridColor = '#e6eaf0' + } + title = @{ + anchor = 'start' + color = '#17233c' + fontSize = 16 + } + range = @{ + category = @('#4c78a8', '#f58518', '#54a24b') + } + } +} +``` + +This is still only data. No chart process has started, and PowerShell hasn't emitted HTML yet. + +## Return HTML instead of taking control + +`Show-VegaLite` performs four operations: + +1. Serialize the specification with enough JSON depth for nested encodings. +2. Encode that JSON as UTF-8 Base64 to avoid quoting and `` problems inside the page. +3. Create a small HTML document that loads pinned Vega, Vega-Lite, and Vega-Embed versions. +4. Return the document as a string. + +```powershell +function Show-VegaLite { + [CmdletBinding()] + param( + [Parameter(Mandatory, ValueFromPipeline)] + [System.Collections.IDictionary]$Spec, + + [string]$PageTitle = 'Vega-Lite report', + + [ValidateSet('svg', 'canvas')] + [string]$Renderer = 'svg' + ) + + process { + $specJson = $Spec | ConvertTo-Json -Depth 100 -Compress + $specBase64 = [Convert]::ToBase64String( + [Text.Encoding]::UTF8.GetBytes($specJson) + ) + $encodedTitle = [Net.WebUtility]::HtmlEncode($PageTitle) + + @" + + +
+ + +iAjK}D(l^$lQ(j5 zkBEsrNu^STX>=d}I5V7bf+(d{u4F6Nu(_$LykZ&$ivc-MDZ3kQ%h| bWOko+&hB#FxG@e%3=5aPq-azFx9t7Y8k cB=y9e#xpPVIIy={q%Tt z86Yhkx{i(~WsW*9TST_2n1(z8E`H8+-ka})xT6O#ZH})^Is=u(5MV2EgBjs6W8i2L zjWV{ 2#oy?YcCE#v)K<_nN( z^lWVNsCmchS0W$-h{?LDO{QqI@$e!$t~oFDD(Ff|bWeLe1YNu6jXzsi&!po=*4H&v z>NOls7m|+MbO1HG{Xz!CO9dVazIp|*z%ghrOgWAhTRf}&S9 zF35*hXa1nR-!y^o)D;<|?qyJ=@4EKgEQ9g26r1CwZ2!T0s9bJFib<($vQBqk?Bh%1 zMRu?iC|$2_Y}OS4DjfmZ7wZjz*Oo#|!<{(q={Yz(W@PLLLN#nIsZ{q&%sa14%cnI7 z#HyBs1oW pHuVj3)zYEo2j@f0W-|DLViS-)w=qO6Jq5O7 z2Z_kc4IP8;o|?6XTyJgjASf#gxy Lf!~%(CnU(* z2JcYBih1u{Wd|kTZpv8;rYFkR?ErYR?}v#<%8p`9qi{Drw=5rI8|ie$GGfu#IWS60 z)Y--12xj=@EOm@uLy|;v9%AZ+-vL+di xY)?1ljX2+pdH4i zK&J|d^rGXS*ZQ5l93hd0Zc?#y4K@sHY=sWOTgD~Oa)dCqsH=9Y?yZ!RjSR1ew@XVu z8fuV%=cJL^Nn1NB?{do&8v@0XMV5^U$5WP-M$KCnmA`jefXKVgEHV<0A79xk-6ww% zA@{b8HajOz_C~siCgEzb+`N>5DXAJ6@&`6q76LPX?VJew7+SwJ?ZBaXGfPL2oj{c7 zM4bYdd)+?Dd9r{tG<=vsFg*+JNtGzG_Jln|c&4Z4t14UJ#PhgN^XBg1;hqIpx+dT- zf`0z@U+cp^>EMp$#>^AhC`~hnZ>leAkYwf{&Cor@nFUy{ikI*ss>BhK79~j{K3Q&w z6yJ^dV$)VX2h)nc7t79${S|M4l9MR9 F9?(ipvYqdiDC3qWhDDxC{)-#m|C^2eQ$Q zjV^6*8x@w}JEzoC{2w3={e8tQ#= ^>By(WC=GX1;}vL<|F;_&-8lrAJ060{`_uppQsh7?nikaz0U7D zJ@dW>m-Sg{DUY#m$}4gQJ=9`o7I$oDb;hVNZ)2i*+VSgV*~49x^BWBI@b=%iJex-V zYmm3=Op^e+i0km7jFG$nb4T!APe9kBPK&h~@)GS^f9i{jl8^OqD|Ee4oZ*hGz$gvc zk*l>?Cj>&x(4|D5^0uN0D^MLV+hRcs1j^Kk`yI8qlT*@<#i4@sH(%_Yxz!H!e^Z$9 zWsCva^1bh+@WNpJ{?#%i>hJ5*o3Z+sH<~(@BJ1%HXl;E@)Tp|Waq $GR$CWM9Ui4tHkV!FNo)f2| zjUF-I&n5)YeZ#Df4vFI%01`^_EJdixgOCqG94^+X6C@-N;|DOBiPRxdksmtaNZ462 z>RVWO(<4#Uw#g}3+7cFSYtr6(T{({;DfiwoTK8t`J2to=F#>ux$WfR^pWjPidT~!% z7gUvQUFBh(a=%VYEa$QK#i#`MfQplMd;ZkPf>;ePyOsJmo*7LJ-b>xKJc{~~fH>Oe zNJS9>vuB}>&a1{y*ZC%`7HjxGs-HT1^B-vW$prAUx~{Ii{z1HFRU!uv`i>8@Jnm+E z8it&p7fX4SV;0g?7Ac?14RTb^fxPz$;g NoSE!+z%*m4?)n zRtnV9I@1q2c@XQDqJ;f_9+H~bZyCOJhyZI|cr0HF1$``BSI?*ud$BH0Dswklr5lQW z>$Qvyl3kB_!FxKM`r@0TzrMMY``JBFb$F$Ssq)=I23An4c4T W7*5GaW8#i zrk9pRYyBrJ8Jw7WTKF9um|25msz=iEwW!q<8Rt1;Kjv~pVL7T&0V&Uwo1*F}M4eY* zd2{GYKjypU$4f_1DoK7T(6=^p!=N{uLv65vb;iG{;lgr8ADeF={pVXoPj4u45>J-c z$RFqwq-AdiLNg(036B2Me}TddGBzS-k0fFRzBz_(&9O*2 lFHZ25Li-I&mB3_i T;)tQ-U&dLa9f@9OLJI>6q zK)xq@1oRwYTP8S|sx1?y>C)r`e=o)u8Wkh35^|qQ_6>&5LOlEV2K)G|IT)XG-p5h1 z=#OPSW->P`|9n~LV6K7ly%m}*grmjMA7@XI(Kfq-J~(!~R#LiyvK+|H(@ AglghO4uPHVw;Ki6y#|$|5t`LdtpuTOTla0{D2}e(ApJ0ird-b?K~*J z+Pne?r!uw#U6&s+P^y;hT?Yy8vj*P<78rw6ujl+0yWpJxn@5|Ae%(`{XBMZrBaHx3 z%s$&Nv-4cQJ15vitUc2I3QZ%sQ-<)ehZZcEh%xRjO1C!BrhL0}y;1CKpJ&m*5X=g1 zfZ%<%Kkzj{fv57fHT~(ehHNoh-QTkpBCnO~8@9@iANx1~9*(@h?8(SOy{cy%$F@-0 z>as590*mk;BN49w8)2g|9-N%(#$!wbtftFy^*rWBNV=rM-!ZMKS6uJ2ag&ZIRDUm& z+Wgm3rYtf_&9WVN6QgdchQ;R|Cm!zGi(eg7VMb%(WxI|w_cO*1_^x8}1lCt<_#W!; zzk2yH?~0Y>?~#*Y#Jq*Lq+}X9_?ewA?MSh!y-t@JZ94ba+NkgNaS(-*t~24-_a7IK z^M@lKZD;AV_Z!h=56|8BFFezD3 e&U1a`qF{mu1 r@tkWR zWJfqVsD#YEVuRxEqW-M4>yYOKh9+9!3dSOMFjKD9CGryN#9bjwfQxI~5%b5CD6{T` zyB>RAJLUU^m!?BUe<#jw0_1PJnN$LoF9z)F(O7(5$=-~T_+8uxZ%HH-)qbi#a{-Lf z3@znrOJ=lJbG`Pe3k#D0*sxz8@?7WJOM1D4hnId-rrd=IKPnuxv9^CVD^h*67vU7g z__rXr)abUkP5z@Q)Y)FIaY)6)mEC=}4G@HYzz+~^QihsHOspZQoNP$&iwLI6W;ep( zajNWj(CEWu=hFMGYy4l*rGX|DBhStd6Ok_0W1HOTMnCcVEip_Q1qt#m&{2iHH|JLS zI_MLXUjuf&2slr*+#kZaHlQ~hzFhcDO;2z7TB)g>Kt=h-)hl)0%TW%>jpYJrTwRp! zZ>#JMH0Jw=d3= @P14ZuoTnS=W?(>4<6ZoAvJ6ykuVFeLlUYh#<<`yU5*&AGnY#@f_dPva&QYdG_*b z<)y;`l@i2RHz_7B3 O8pU8prZ~PNiEuCWCO%uGreoRx(3RZxX$! z9*p`HR}(tcsu8qxG 64~X1~%J)0PQcB(TNVw*^{JU5fn wE{;rieLho?8#2!EjsA~T0n!I1 zYAWRBiIaf0?1Ij*v)e5Jn-809IQ@4C@yKYXEDV@LF*|z4HB{3l5RX4VH^2an;$4Wx z2_wFGeCg#N4^zn|>Kr{ZAe%iQE|xB*$ppMcN_H=8$I%}ocUR!y2%sW$c%^za4{?>( z=*IA*(pj3V-SZ;%OX+=PaYiaet?t$S`@ue_=cj4nKD>G^*ahR1$!7Ikt+x#D(Z)`z z^a=heyf5|-Eq+b9m_6Li1xNh(1IZI{kFZV!vaWK^$@cCsiq9mcjn)#QuqqLAF#;QM z)r;eQ!L+3>Bpdzn(Y$%oOVe}x 7+364J@qbme_+H_9vpBnx#S8S zK=n1sP(Kglr%@5UjGM#i&|G_&{(|M;X^ ~US$ErFOD_2%Kga^a-eQb@U*= GoKAl#2HJ;IRLZ6E?>BVzP2SV^3aob-8nnbn_J0_o zq=^DWcX{m-D+OaKGpD%S_8F4j+m6vI1lngSK+z^` E&djglrCEnJrED{L{Rd$PYh>2JU8GDBpDfSzRyf;}8fpzP*y;5avZ4b`m* z=l3;AnY0w;E14U+{QLEX{iumhy^P$&R9Zzz#_T-c;o0r%toWGt{LN9}U9J9+(0HKh z#6cA_J>&6Y$O{wa4kHJC%WA#X8u9`$>%*#T+6oub2bAaG%39_+CV?kbhDM2<%=OL~ zTGue4Xe<@J{y|K@)@sAvz6b^oS0gmez0lrrdNgUMtZ7yRD&25$NDjPzh25FWz6t>5 z)S5nU3BC{u_7r3niO<0i%ZHz&mM`W2l|E|U8M;fc1E9mk`JN*de&brNI9iCgG^#2t z7>D;P!tR>~tDN-tM2O~>exuE{8=vG0KONk3-Y_~k0XmmNRLBSbELCJ%GftM$*g+S)={*Pkfxw|^po@xW_ z3d?iV)CilzBF}@40uN3g)Nz})(_uEgLm8UembD)4-Kqqiy!`u9qtc_EZ`DIzp(v$d zVt?P|gJ#}jb2o|aW+V{zMevNfIys`YXOK<9yme#4)=}W-2=~{A5%;kIe8{!GG3=R( zz{paQ*pJBDS OE83v*5VBS0r-{l5dcy1jVq_#r@wt4JwHv%f6~NG%m5VsQ zT#YKEWLsv4Z{PmC0`+Z *s``ZEjVSnzFnNGlVXuA7MO3T+b zb0rrUw|(V}0nu!|a@)A2nxUiae~!q8`Z8@8ej=$x29HU)payyd1!2|e@8zVA2hNg@ z^jGb~-@+NHq>*>9^Sw^gGunOMa>IUx%#U+5L`Bfm$k;fyi0OS5G|Uh_URz5Fh@Cpj zcmAE4&7_`)`0-kjoGzzzMZfy}hTg6L+(!Jy=b1Fkpu2V@(pjBPWnAx3=*h|?dCC)r zaP3cPULWPb(x4~+NIMcF XjseLfUQ?W#VXRt*_KFF|I+ZL6tm!b09=;S Z?B8YioB0QIyoq53Fto_Q>($ zGKTv@UOOtL!HR$}E>3rTouVCoiWtRyRn-$tP?a2nsY}Z4hs+OZKVIG5@9+KCn5)le z2ntASHTmeZIwik+Zgp^zF=eQYB1*Rs?TdaqU*l9LlAB?*(0Quxy7rt6tWh+Zc&nzR z$!xm5#HpV)_@n&XYe8 GjkZnL@TG`o#lvB^;U({`|Be5Q=U8aiS6Ch$HW z{+z^0--B+k{`KWxDaEK+d!WF#a^}0O*omFRFLt`=-$o%ehcQXK73R$n(kZ-Ys&+jN z3z|6{Y?b5_{7FZ@Hns+|vW4_POP&7sBndFcoux<>=bEmu>Mku*^!f_`F{eG@U}bTw z={D(mVC{CA&oEu@0F)U-;9g}Feplh8ovt}q7Ews*d)PM 20chk7-XIZH6J|EOAQxJlRV8mn7PcCc`FRbF`cWOH!QVXk7beM77N^&IQ%Vr z_J&Q0ZHEwDS}Ijk`d7M!9AE#Ln8-o_V~5jD=juYIJX9Djmd#ro8#dI!Q?=Zu%MO7z zO1;WeMEFcPW!P5a=b#>i7w|HJAIt>QH3LSSHO{I*JO}p%tUdWj&$b4J&cb_0d@4e# zJ%iu6JDt}kp`8woe2d){12&abg}^w+{XSE|(PrbAsBt9J837wDZ(sRyAa4p%={5?E znx6B0vO>O{{!=74E=%O5Xf)dsiT+WF%_UcP9u^v=?&}DA{oW{_Q|LqXS2w@NN1TRu zjJJ66J!_$&Z|9jtk-1g323>n}ZXVQiUzTC$vuzqRE-*WP{A^#e%iaaPy`ml3v&gqR z*OK1OhI+3OAbjw#9d^{HwW2fNa*}3;S{o?o`cjsAukj^v9QpKmGq<9@c#k(r?sq 1|HI*XW)|fAhZV3pTIE_6sa+^z`_>i-; zSPrj;v$&Fl?2Z(cH>8A|VjdV8a!8Dec`dpH%l>&ra%%lyq8eb;X(PK%YUIbHBHZxx zPa5G6;gAjW>=o=94|`Us11@x}0&!?wH=B>yxQrBxr9xrj6{0zF(*jM+4f*PybMyE@ zPS|}QWgBx2&?jOA?duN#p`%xADo)O;YwxpU1= 5I61ey$P zbdkno;4xcx>I#!~Pqi6F)@<^n b2HepQ>_0PQN_C8Y1(P^M^Ilym0=-*)=F0?zR3Ezw(b6s3eo z9~7I07z=%&Jmg#)WAOZjo3V1Rh2>&k*_T>p O4e; zY`$FjEIauVQh61KytW{&&8;*s3)47BF3nkve{iYT{?tN$SH)pKRR(;sB2C}RaU$f- zkPWcRHu&;}IZPtxC}YEAgG=NRTk-aa6KAR&{c eC@`ZhqU@(XC_3f-;Gr O==h)g&TF|b0PGvI8fW+Sf4KmSp*0fKwq%p@UG )_G4DX4{01Kn=|rzR`LLlnrQ{8WMs8eOh}Vu?zJapkzV_ozLGxe`&Vc zb=&rCPg#vbqqy7Q(IpGUp_6;TTwm0`#o-rg6}(m_`%OB$o2F8oKU~I69nZI+C~k8g zLsLs&cj1cRI )4+;@GYjjaji6VrCqq~=ZvZ76I!@SM1b8+r4j1Aadsos4+{4BE zJ?}vOx!hRz0m)3ehv~9?+f>|nMKPnj_n=9$Z-!ZsmwR*mRa!s9)P$$S+nt4VsN>;# z;}0cX6;DdYt_TE7^g3s?aE6fuA!fo|Z)MGP-z=8q+OHI!`}$kD)z`7y;9ZST=V4G) zti~qOiIT*0)%uPH*ARK>Q kRM^K&Gc1M&9LhF`u9he1;QnqaO)>MI34_Vcfve z)G3WXcC_anQwB#Lc7t33mQ&gEC(3&|DoD5OI<-!H^#k^iZO t!T cCjt{*^jOA4zBBtq7$3wUL#O1dJ66HWU(Qo4Ph)+t^|(RH5AA@ zshJ0`=!@rw+uRe4mie>Ee_Y~*J =x4jrLHBX} zF_1=bhXX_NgdM2UkSA4~nFph28P^k 9GAla6 zF3&-@43C4Zd*K&4rY2V8Q&$|9;}GUCzwH*Q{a?+=x8aqOHNnk!_EDO-sKsMO*@mev zpQgG5cDP%}UzRpBop901^19n NN?6eew2n5Wfs!#lobim z;|>`a9w%|SrlKg49Bgh9%Rgf)wDuGSR5`mGhqm302#+8TPO8QCd-uJpsc;Y*x2yih zSJD#A8*axM?6CL4%|!WwS+>gRuj-Bj%sLtx>O4I>^ef8Om?PvKQa{<)XVe~Eoa&u@ zyFV*3)oRCavlrA^Ouw!}4o=8d(aVsiv^3AKDOez1}tOb`fPoryX!g=B4 zhmi%ipi8csINPgNTu)y<=VqUp`SS eP)TM)vr#bS_v zti|+9MF{RK->3>pmhU@8MxJV`m78qh;xC?ZK7TIs8T+LF5!R9Q$xy_qZV9a!)Fu@F zQ#^)buB_U-z%U@_()fMaB;M-hL7exN*X^kAUP9hgXJkD8y@;R4;B!)vsNUXQy`Bo+ z3VR}=KOf9)=-igB4U-bF*crWA=RvDUZC-i+xRc56-!08ZuYFA 6hxPzG%@0DrDA{`46(VOMS68k(wkp2a#?qoCv8i1SH z9XJs!Vef-i7?kOjt0%|U7>iWou7^|;#nh+PAafz^`}>lpR5vN @l+W?Dj3MZsa$nq!9-OA|g(8_c%g#2xUu(%z2FZzw7_^Ql5V#2>RZY zHKDcY{C2GZ-0TNuvrcbW9~za)1g)Q=qKB?c+eTw@(pvnrP@js{s4bQ=PeU3Zf|qb) z`|0rNl$GmQ4`f#W>2J3IcQC7Fe=g)X9oF#h$E(Uu0r){L BEP@{$o`~koV MT2m^lenDwg5 z1oN8r&6$)APt;~$>4Kl _bi<(>A3^_W@XxjCcahVWcN=O8p1HX^&p$Vg8%WOs#*O4VA*(U4W^frRLO znd6AUpk_Mc^}s6I!EXrT@u_m4?Hg>~T$DgQP4>*#ze8fFl&~N`)qLh@Czb70U%&Xd zeYd&t)^AVh)E6^Hn^)0R7xnX{+MHVu#}|HxcKM4&x5bu?-Da7S6z4$9RMdL@>Eex8 z1DDdUSMsfd5oot7-MI1AB5|{tKW%fP&CeOTV2DG2EBotr_ClKttB{#LxoyOE=Ei{~ zp|8Jk Jp@{zT{j zk>fF^mDlRQWOGi4_i+fO3)SK^SCt8$^;zQ07LfJYp8AyI68>5b`0n{52UE>>byd3& zUI9Hlg61LGvMG|}!aUgJesut5(1tT*DROtJvIQL~$(6=y-uGfv?H!WN5QD{S3Q4(L za2{wl0eIZ(%b=&o6Rlimg;}w)5^ZvjQ<*sYZ%^5WZU%aDx%fSC`nPxaVNX7mEEaci z2SU8}J6{_6 JTF6OKj-BQcHs`v@8s!S( z(_HBgd q2|+RaV$V{U)8tCS4|!5B5fY9<#8b vxQa-b^=IQ|Kki9)Yfm)3Vq&=z;4;3 zko+XWX>8o3j~lGB$QMJV4+i29v5dv4`{S>f(b1Jv!(5Axh09`p BjJ+PN(Nuey@kgtkv9F1MIc zVVS@92*EiX%c(l3V==ekLs;--O>fKE4KT-OzaMEy!_7*UC HgLFV&*#x;$ zXpf OLwr5Mf79yO zsJRcFz}_%Tqo_U%NKvV;(&(BJZV5p-jTBHM ia9A_Sq8^L=2O!8>FR9U8`% z70vnMbOpa(55BX1|GeWzTjsN>A_8qt1HHyAN`5lGPNH64f3qFDeaZqYQK1$DyL~{; zmd~v3QrZe2-mJ&%0{C=H&LJ5hWs5B#fOTc#wpdG=i*{gJbHUe@O`5qaKo`c_gIg2j zk6Ko9Meo3(ga#vU>Tu6*a?fHy3JX?SezjPNHxJSzT|SrQ@dG8W4wf(}b2TpEpTuW% zs$Ldth%6Vlb_yFcf|wYpxc7Coua^BUN%&0avNwvxs*TnKGyR@);FiQsT_!3@M$J#Q zwi(HsxE@kJc!FL1snIA~JFK=zZ0n^(n1`R(cmxDR^rK5-bgCTJ3A%>d?2DuNTV z2Wq9^Tt3=uf# 1$2WZ6p=ZyVr-OF^+76`yG6e+1L}Q3i26ak&a_NaT0U< `~ykv?JQLLrP2x^pvt>7P;<@M1PUl@ z$+ig$Ho;Fe4|b9={5@Mv^&tShA-Z6BfbPXNbP2Vg_NSf+pMh0omo>-ac?bXf4PtL> zcGo+^U!hj7>-119vrgQS;sV29 l4hwo$z9A;>2;p|*8fn#A+T5>au)RxbIwy^
G?K-D7fc`@*42ikIb0 09b0m0P+PN&reT-R9sR387zmVahLV&9E3Uf zMkj?XjKa?WoL){)>vRi*UR;o#6p}Xcg !Cmu?G`^GOW>& zlFcqX@Z L-9EjcY{{=rIp&?1CU8@cX+#j6 ztNggJU6I7468HqY_4nJQ*;cyD(xB{V=P7nGsI^e)p6DBKDl!de06n9bgn4VM-d#i> zHIcgxMLy!X?5(Mgz;)guRW)5_`Mdms%8(>p8Ox7$FmRP&!^(mDX4!!zOO{+e0iU`o z1|<3NkzvbgUE^YSiS6B%NqC3VV`q)^j ib=x`SHK?r;A|64mzOTi9tP#j(EdBe>wnTCoQd_w8+LOCM6{Y>E-N}-`wUR z;n5k6tawUh_|JB=i#gUaW6^E4?S)>8Cue1Oo-Pkb2y>5pI4LZZ?&>OJmJL$Fs2QaT zgb0_gD|LC2{jz68=P?{+M+r3Ti@z UnXiXI%aL59y|+csZ^J$Az?03}v5yw5II;yyc`vB7j%ECGF6Yai8C1>@K40M2 z>0E=?iHxZ+2&UJjbi2C2ifm&$)_$)2plP9>MJj;LkdwHV0Weg5ueR|Dz4@jNw%JNs zRQd3>h$u>?aOS73x~VM51YrehQyVTWD86^Kav|i{NA;0^ PCMY$*B>K*Av}En8T6G)t&Rz5Hhvosn@y z=_F-kcHA+T(Qt&?KnUz>!$?D=EUYPMT;b8(mddrR4v9TN3QV`E2T862UYH_;OB(Q9 zo?d#1PR+^EVtU27s4=dgQ 48SYK?&wMoe>lFc@xbk6yGXEM$TjN1tPi_ zgBUBe$)_fw)`=ObINghHkEBbOytlXio g@kqwk3qYf3JOa@lEM- z(00*DvDc4U+b{A}^I1$&R}#XU&sXrPhJ 3)^? 2 z%|V;x#jci?tB@N;cL=}Nzg$g8|NdQp ?BaSghbI%weK+N{26Z$1e5 zLs?X!>b4l91dssFac$fICF{PxBeMJTRn}FdT%|1sU8?Wta{}M`Af-u1>k=pyLHeGu zgk4TC-()pc9VkpKt(kc$Tdv=i`keg*!AzuAhc>KN=i)HG{#f^}r{lH@DPqG!1Qpxz zb@w<<3pqpsaFURDR0vF{SDJsh?>TB7&>FmV<6GiLs-`)ai*$l<) zKaBidOG?-)k0ZM3`C_fNlJ84JC{jUzFDC<8SP>)C17)sUh0gv4P+yzD8SSh>FqkG) zaOHGVJs<8g-og&7o}_cr)kp2=XYpulQkE(u*C$=)-(tEwLrrwu=^>k&yDURc8D(=d z<&SNx8@nwtmRr!5U~fz!salxt6ZSJAp>>_U$gb$_(rPov(MvI*0>C6fUoRNFx8GZF zS|%c{>%(+2o1@yGeE6tg`lp_51;D#hEPRAQ5Bmu!BzI}as6Xeo*7Xy4eK1#*ocIL? zH%@RxhRWnAGcMaqWeI}P*2bc*)xS~b=@z$9=Fn(X8P%a7Lw-#t@$p($K%kz{O~4*4 z@7x5)A-m=5mIO-Er!7UpaWdLEBXE2*=N&IdHy<6>rWFBm6Ks3SX$&SDEoE-}PI@Hn zbwmqihZ>lA=P;6>og09tfdDnpW*0Njr<~t@-c8~xybuxvE5Ylh-DLBP1g1qQ-|i1G z;w6TYG8Jc!-jsA^RPSewIYG}Y6bX@bAArLiNEhuHSB6v#Zr50#`1w%Mfx@e$KGKq+ zuSEnU{I4EWl_D^>+*R%Q6cD0OQU{pPNk{f*t0G@Z8EzSpW8>t9-9}7I%qL;x$#jH_ zzXA!sM@9ak3E6%!Lttknl<(iWe|_3xLq+w>4i09aPRVU`w_2Ez-#3QWd?@Ax`XY*z zDRy+{7dO^!+i2N#gq_hp1j<1d^tzpeFc zW~mUqRG?$4t)*pU(`Fg)mpArS;I7y8LJl7Gw7S{jpP7+QAPfKegse92N%&%+b64Wd zAPx=Y>4Y}+Oi)n+2c i}y0BsBm$Nm~YC+xSXS)Og(l{WilFJ z6iAs`O$-^M{`UQYM|p(RzHjuGs$AmP;@RoL>TnrEB`VTmx-9t0-e@X|tvH=3%6Ts6 za}$T2X@b!D?hTX8aW;?EOgV5kfh;iXuwYRfL3fNfin?e6SJGryN@5gW#LVj6?d6{T z8Fh;Ko7WVWmpqcXSm)Cn-m_+9C)HB5X;j}sKvC-kZJKdp)OylD`~gNX*L0U|_&S8z zrOapU{wu({HxG3R0|DtI)lqN!L^ 13gl}$=zb1k=CEvnphe`QKFuh%iLAs_1axQ)^|9CV=! zG`d9RE8x`Qq@KKyL4n MX#Nb~W7ov3e@x;D5Nr z8}Qa}Qj;M+eP3Jq`!gPElxaGC@1f2s{ldYe_2Vr4av>3sFt#}K+%I?X(wL+}5HP2{ zIOW~*b_EV@_V_lYxQn@B)m5s*%3C;k>vVl?wRh?(LGyzy`avSEg;U-M*0}_vUpUHj z7k04~s7g?;R)YpxdK7HTmr_0;ni?a2jMsH3#657?A+XEKe_yA%>Jasv@(!QR6UZ7t zVUdaXfGuFLAbrHGE9G~Z8n7P=@?V?O;-|NTuidMW0dl3xf!@x2K9+AEjvMNw>OL2- z8@%I6a`8HU|4rsAy?vOV+&;160@c<+LlZ$QO5o@>XdWa_hf%z_;el@K#}^KI&&K TG;Im j*m{w{nKd21Q9>o5KuG_| zNf64G)Gd*JFY- D$wY8()J^xv@ zwY$5!y* zpx|NoemU80s;Bx)yQcG*=o(NGcE-oPsmh(5Rzl8rAk@Pn@s?N^5>lVYq z!$O4&!a~F_C3?odyB*)1Do7wV=>PRDfBIIi^qiIT_x$`-ENk3@+agKT(Xp|G7BOGH zHxE#pKbd*XQF?Yxdiz!cV(vqmgd{;8@`~ws;y~ihM2BBJGk4m`4a#*LR8>LmpHGa} z{L|Y{ VLTa$kKSH4^@dIcM>1i zYE_rP-JP?9;IpS(qgOc{sUl2zCwu!}|GdnbO7U5eo5ifHwKX*hO9GFJrwRU+NG4w5 z7X`tS;RD;Dark7JiIX))NL8H3!tZtc7^&E;nUI<#hNPLoCy|koRhgAWsZKF53HB zHQI8a!J8|4W9=Rb{7lAUaxE(QX9OkpV&`ekL{}xjk}=61=gsM=wSGcZb%e&ErYj0- zLYMLjHzO(bLJn4ZxLG6%+z8TthowPqTP9$)$sfP=Q}YGqAfofqJkUwfcvlJI= Ydv3dF7(p+O>@Qc0ihSLjwH2dO+E)ujzU+}c|AN6CF5U0NC4D3;0VS{ zpZ%F*ugvj&0e58n F(M=<{rEqyNl5svoW|Nm9$AqPtlxdxUWN{O z_n5{y)S@=#$-AEwq*N`gc&wUvt3ToMA}HE1j)v>(FE~mo7g{a}R$KJ%OyTOuc9jln z7322qu58FfjEESJN&k;al&mO9JOH~xFwhWeE!*S88U)|$d4#| h9nn#kU0p5sWwR#T9gZ z9Ah)8R6@dBjwQ?!L(?UUstcgQWWAZ HUxrCVPD z^U^Ne-})1GJomGa;|L@r)0oElM-LwBRyer9BCeY3`@Z8%CD9lEhqni(E z!=UG>b8^Do0v-KnX|in7BUU24aa;)xQluI?hn$F$1mUIu$s6XL_-;i%d`P1tAW>J5 z`XDA2(WRf0lk?2>i!z@AkA|MWsCMzH8ju{Q5?$%88)6*Y2AG437MxMa+eVuw2#7Q5 zLCn+Z7pXpE@stBgC&ygvjA&1X*1IZVH(XAoyC3?wQ5YeySC`yH=gUzgR`0E0e#neE zy>Oh-DY%h8^%o X=Ch1p)SN|ZRWYaYd~|?Hrb=0 zaCF`g9x#5lf=YdL$KA){qjl98L@-`_9 jo6S zb4_KD4dQF_{HuNTf`f5AwSQP(i(x#8m4146TR$|j-r#2zrO9JH(=Nn}X8wBmj7%tk z>H28cq5Fi_E DTHzjZD~?B;H!O^Ap0N^e 030We{ZRs`|}0S+`}kK3K)dP}trXLR!HtN 8@?=XXcj|Nwo(%K$9Iu8?Z1(m18JSa~2*56#;&BKupJ0~E lNZm!%dhQO`nc|!OzC}rlyq44k2b9Pq;k=k4z8l0~wPZmetL?CgEt$(9R{UW65LsPa&07A^*QBXxgG}Hh<#cj#$v&nY zEcG4$wS&x06BD(nPnCx1TrSR?Oy}KCr3>@-hexM@m*6T!8g+HBC_Ghr`AT+Oh`@cv zUlZ-Y&}yBhr!>7AE)kIc4=$rq$GC?=Pp*~e!r@7!d$YF=AlJuJ&Q+AY%Pg8L)e2do zo0olka+-WrmDnv>IRRzt5GU51VhaeRn%-{D?R!64cb3jr15`Eq{DsJ0ITc_XUVE_` zo6KaHRKx<7Nrq(+rL-kJJqruNdwC| AD7 kj5^v>^D42-^{aHPNZDAxAk F)0C6g+{!p{(ziN-L_e^GG>J{S%irH&HS0rJmzReUSJr2aVYG zt0cF#N?bb3J%V)qkkPTbY KXUT+2;ICz*G!1y^GfJ!1RYD8;nM z8)+*%Zin4XzdOr8+qeR{Pjba1%{V6uQWR(xOjdHrTlLcu?sYjIqzSQyo3}2D?gnia z7o&HQ5l?n{C2>wiCDgdZ_GES%r24vNA9)r!ehgFsxZs%|0NEslG2|Uv!>g=I<*Z%2 zS<*4nd)#rs4XB1$GYEbp$Bt-o*YCXA+n1)Rn#SGe<`HMq&)uD$BEhditwK@ICXyPR zi=qk{+&4#xv14`R7Z!KZ61dp%(G4S^ILuJN#B2AnP;`iES7qAWoxy}Wo7a&szD zOfpd$ZeqDqyHNtKAf@O|>zyxK^jU$la576dSgKWTX|bl{ZuDvrfz~(e`_t4-7r-7= zT&IvfxL#2g6X9~c<~O5$Uwhk4j+#dOP~IP|yQw)NL$_937c|Hxnw>-nwCrR<-kAVR zixOxhLv|AM(@nsDudgsj^bZ0vO%=P#>;b*mGkMkHIX-*+<~RZVJR3}kM`Bc3O<$pM z?BWccZG+&&YaEP&f%NC&3$=A@4DUVt>x2BSyiM`BTxGL8Yw&$YS@P7E0NxVp>V@u- zdG{X!6%L*6#l8)xTPrh#gJh3VnOXq8W{=xMp#;%l0jSYTHHb)SG11f0DhtQ6Wza>5 zv&z;^nC)kM)V@h`wDsvB8gerIXelP1whZcU8EDvzdZUQ5ozfR3mrj|*Npod(zZrH( z03uiqwz?N0X5RorZL)VH%9i<9rvSq^1_R?b4K9ak={t2UwlPZ;=Hj ~rE6i3@8B6kYs$LS8tMta`A#%Qpq8wYwqm_fq|P+r zPDApO+&JA~Ys`xu@H5Es{&a7RT#jt-Txa82D)M+>&bu>ziILuGp^4XhCla8G)-m|5 z-IFOWLX&FTQrUBYmgu~A%{W5MsIRfUN*#Jicd2!WoZ4ccpHsJ=&kvPDdt^JWeB#ed z?sU8vLUtBW5Z(0R6|7IQOc^McG3n*)2Zio0V#CA3D=T9zJe#RvO)!?#wYeq6LMn5g zPU9U&X7d_jHT8?ioH%Yy9YvyexEO%hmnaeb99c#x6L20R97?2%QzR8H0MI=96MgHY zHM~OEs%h7;u!q9 OE`q>`=0EhKGLYyzaWw3c2j@{w z?z#SDTeyTn``wsBuyN0z$WjK5>z4K^C8uGUd;cy?4>T5JDv}ATcAux#vTM!ewF_$# zQEX%-Lrl@n%+=FNa+OOQM`6_8jQ5vn^DdXexE5OVG8K_9^)K%R!A~Iy4xc$i1~ZuI z3BAp`Q?DlW<>ci(+~MJUTDNz;=SNuR>*qPJaD?v>yx3mcHV&&Ms`~L~(EG=WK$Y!v znTEK=kSXyw*UMqzZfE@q|1(?Y^@^D^S?6L5hGBwyW`?euT=v))#^u!IZKnG#H@fDi zs3 `#7{+8OS34m0t2E+?Mc40@WQLYyY&|2TwA$WzWT^Dtk zo0)|n8T2iLN`8tt`MDIf3X g9x6EBoMM^>v zpO{#Y^a2-Gd;?EFKmd`wjp_|$Dm?BlWT3+2vDj;{tCZzLM{o`j$yB0e=C%D#z)K-P zY#e0bLtg>|MNjt(1vV1S&z%_=8Hp`yK`G+GE(CeGfP{+G2EHOUw8#9fPF#W@;mZ{j zauWf#Cq4LTk7 ;SV`U^it zG1xmmunEIINJvO5E-sc23g9&QYJGs>s6FOSnDGWRt@{gFG)=~S7nA=-Eud9lHbK@m z@_@wzeC(4aPtZm|<;PAISvT>uGBE>7U|=9VKK{Kl9TLQk|6p^Js$h!|udSWM(9p2* z7F%@IIuIuT#I~ql)4|6yv1oxm{68<5jThh7JAPS-$57kY*yPKke{O8N`4vt?5&F{} z*^k84)paJC<>25Ts!>!-ECb^IfW;CKCry?zOO(k+kZ_^6@MUoO7gO8k#bvNt_vTt$ zT4FRC`yPZ&b$fF*Poq{j(d2Oj{uPI^`1uuhl1NtTs-%&!z8H9Tc=`PBOk#c-mH~!; zmaqkx|Dz1I9R3uOcJS!OC-?vqJTck6C<^(cq@=v%?r5r;t1~*S1~%>hKfjBsD^`=? zEaeidsIxdW8{JlaWbH=Rb|kDO+4!cWrm`}6gm)Mi7%?$1#}Y#*A&1H%kLiCg|CQEz z6FO3)9-AT(f}_~vesOWM=Cm (E6;4>`yaA&bx~|+Cq{#&bB)eVaQQmIv$?#$NLXh3bjZR;Z>l50LY z^hL2hlX%$!fTM+Dd)PC%9`!NEdHTmrPbI&G5Tiaprc>Xy&~RV;ieP5UM9menx-ptf z0^2;^pVwOap4M2-Ualrud0uXii4DoDm%E;9c14o?ChoQ!6g3t5V{JE_=jVrjEc3W+ z^b#_h3;!tup!vFv#sSCoB4V&KkBBq&cd@h^SI91}ZG-K_uzbh!XUL&A?+m3nSwg;s zFihpL!7Ow+{>P6W>~^cyV0H95zah(}Pvki6OfiYl#@3jPTV5Ql0P8^;miZx2!E7;g zyg6DJRd%rwtBu81XaA-Y)Ed#an-WjbJHO_|)dKF^sRtSM`quN!Sx=eNQy$Ov$Xg28 zqK+)!@hyY|%iF;Gqzu!q4fB$3l} N6nMDJ;K%*!5 zU7a+a%z9gVbCszQ8P8kMj9dvB%DvdEl7X9#ZqCkmv-PC!m=a(%j>fT?<8MeREP?r@ zeUU)%`uf`3!UAk}=wUpgkyI+rY-eZZ ~ljFO|2?d zBuE$@MX4ABrysrRaOQqA2f+KQV%fua>nZ>N4iE@R)N88%YAMNKcR=dLz3vK&)In&P zCIN_Hh4xf>nb(;X3N@Q4i`56uUN7T&Iddmm%af3 zSLf&Uz)Sr3@o9H=7i`<~j|r77M~1GV3JMA(T8+k)BBA&%U%tG~05APrZXj-Cv_{~0 z{+=?Lf!zLYGl6ez=&P1<0^C5kLC@w`(G~EIci>Ncem?Nrz)Szmm6jG2Ww%)r1ilB8 zMvV!$x82!#tNEsz+*Hqu*zKvRLWy_=v<^0Qc8lri5bcrgsukq7?4H+bjXmH(Y&4F4 z?rksY)r7HB#yijg_%Ska4BR j^D~^Z?QcX7aKd97k5S982{C)NZ4vvgM>nv zHd@TX-JRThQ9NyMAL$E!$GuS>qGA4UE_kPy;V(8UI=-)=si}%MF)?8c4`Nh{EjM@L zaJD!jdDcH;(Yn&LMSN2+=mInS{}-*PR*!o%**AN=$(*do`LGzHii(AW_3D*;le-I| z5IVzsgD35XR;%H>lfdg8dCR|V0OtTU2)$kh%nm^aQLnMgHtO!0f!YO-?#w_dfSXk) z_qcNO^z`E|b3V`o2JerIJJ;-$`d;=kNMe4ZAn>~2U;DzLDR>kj>q2CRg@lAGCd>T@ z vE_Me08pLDv#5y z#@X&H*zG2Wh(hoWaJ@4u@0Mn-@OKO$2v|EAPp59wpw5bj5FzP-6z;8&{H3L(Bd{at z9JV^z+P @EOPJvgYRIy1Im{jDFl;D}!KJURt_;baZrfmb;DYlL7aZ znostO`Y{w|5bo-wCp?;>L3dQTkyyjTB&ahjEG(c?DmdR>yMTnFudnaIR$E&;fl z1Rt=6p9MVw{zPb&5oiZ%dgGx(e2cZ4wZI*bh{wom`ZKT~`F*C^8_9naEs?;K4>nOE zs}&0~vw@8Mo4;DWn*8kXt9^;U+l&+{TTPZ5fCHXpg&}fuuwaH#k=hU+)OMvnA)f)P z4U#Pu8g}hp+d|5FNhE9yhpbR)vJz;BrJtPX23XNR~1hmP^OSgB=jpeYP_#vLY-j ztfZv$EC}_l-%E2Nw-S&=Mh3e#UsGH@L+}Zr(DT1a#J_;h1g$;<3K^fcH^KkD7m6gK zLlg-U2?jrWt1EUoN2|$aZF`uc#Kflr>_u8Vw{9p&I`_YZ#77N$>YMSqtG`=sZ|)r6 zbv+y&Z9k~Fv$)cjBV}h7qKrPwq{tVfOnM87!09r7)uYK>507|Qx+o~n2CkvDbJ}j- zCZ<$w$`(6gl0_Phj%k!TB-wC nf9tBRK+Sr&-?g(s*iq?dR`?l4!FxB<`v}tL@r-{waMy7QUl*V v`H~$J^;_fv0+UL{%=7(NxTC-CyKrQD*W&y{y@tj4UU* ze$I{aPIS`cnVT2{CWnx4%R9Hi-YMuAyV?@`vQ>xw@%l`i;_pk{z=_@weW3OTaEV?A zBnM9dT~VK~nwwaXVgv*J2(fE7YWN5Jv=TauK;wzl)}^T`vldK5f8pHb )Zz0N%O0K_L9Cd42?u=gwd4@df66ls6F>cAd z>Q9uZCtlBSaT)M1!1s5a25oGYK~zWj0x9KnVGOP2rjAwDFgiwJFU0=Sr=~f~Gb8Vo zNA=u4*52sB|2X6>jb|~M>;oMal8T%VgAGKMm08Vs*Go{C9r8h((RdB`0B5f`ICXVm z88NLulQ>x6zO(F2$p5wbIo~ZJ3q$ AoZeVeP%v1gvbQ+2+I0v8nC`&EQM0 z`XH0Z)&Vs`02|okJWJkWu%?Wr)_xawe=_5H8JYSiM3B&AEKkZ_f*OHLJL%#~JNKaV zcQYP?=?B&zzurEHI0g)ciE2kJJ{c8yPAcw3_x|^PUp&{d_U;V_%kI!gY*pe(S=sHN z?dAF$FB7NmZ+$(3bfra=mT!Nr3 cP44-yS(#mWJ&Z z!@J5lk3`aOOCCVpw>yhVU6qh%t~Y``atMU^;?)G8BN36&)y3NKc-)#g3r1NFhcb3D z{sSt6VS_8cL6E!NLxLJL1b z_Atl@gspV$#*>iVv@)!fE}YYqMV zrSrv%i#P1)=`+2+jD3NIYG|hC_wSc)Dh}C8FWg#DJ )R%X^CDOfg(QgCOhZJPE>-#d=nk=$;t_f2;Z_OE={gSp8@g8353ujQDg#L>d}4|Z zS;1^t e2+R_Lk$%YRd0F%Uhyr?S&xO5J;H+Y6t4>(lryX*(#|F*SWy|CsV-Y|E13m zWNNBdatylH?lBz`zry}~TVWn2e3_g|aZtQWU@o}#C=f_FWh$;mw5`Kb^^uH@%$MkF z1Z4)ZDHQ>D_`gmu>?6Qz%y=DtPJs!iivy|gz<+A>_s@hX_g0A j>eD`G!h +S5V zCeKgkJ@wCV2Sfg?saz8R3&5Iy<~g_B&(`i?-R*sz^=E%kLgm!+4-$bKo5f61D(>m& zlZm@C%72SWaxq4QlWm4GQsj9x+yr!DJPxlN1ofHj0|w+*g!@x-_ZuG|Dg?^mQ&}G^ zaFCIn=>4@#)ri#OM-9#=yX#%zR@@%O=fly{R`V2(II7GFa$^TH@6SmPZ_BQM7mG95 zxW|9|$IU0YkSk5K=AZq8FX;<6`Mm(rb`d=*2`e4K{?y{AsFCYcgyDb3695ls^+_^- zMN&nnXxjD9>TE8{SPawk$(NM&Z3{zc6{7GD0OpQ(W-|XjLua5A%jMxQN*tp@lp6&Z zcc8B@>-CA%%3*fyR{|^?d}f{Aq;D2D2JAb3@34-1-c_gv#cDpSt3ugvlh@^-U (iToKqf}9KsMFuz(D^mYiW32?3t`(4Ik0zAD148Q;R q3MQckw3Bk=lFr{AD2mtpKH1@3Lp|_h@dS0LE=BGmt%U!?Db0 z0b*st*(j$m8+7c{Eb(yb58yo->2?Poe$ptrr(KAy42Ws)=0y_i*b_(LWpFxm6KFIX zEKNN>@_BB5=I0M{KGzy4RD|lXvjU*9@o;=F>(0*iA$r&|L!;1D@PydY>**PM9LrVT zvI1 *Fq!_@7`+m1IhgvNAHSid7dS zW4=IB>g^YM&Uyx`L_x@1?U|nqZVyhD`QqI#y*HsKS-sm|Gkn4S{~uu6{~y72|99Vs zitCdkzitG7y3XI{bG%MJi}@0rQST>Cpde_sGS^C9X=$q6SC1j&Vn_ly6?eb v-d zv3cJyahd*zW5=6jVqjs=|NDA HJ&$0G-~g>Gm73lWC48YXF%2g4ypmDcK?b}ywbY58K9!-!zF?q z4i3i*-h_y5JZSGHc8*?x bH$8+z`)Njapd&u6seH#dehF#g(?7oyO zLypB4{t_L}?QW=Nu=E2WBuv^`2x%Dus=?zicbC%SuACE90gVp?IQy)UOGfXO-Prl+ znYy#ywh3|;+H~#EF``Ef1`xm5v!lDS&7x2!R8+>=`RrRCna3!Yr?JegZ~mrc#_f1` zn$CFKU)%URH(ooL!^_8WAB!*jbhUBsrn3ZPPov3dYq5E}Z~mSniv~|VvdiNRc*pL} zo#mQaUOdO+!}4n-0V0Bopp*{qoVLM&gcNJLgyH08^h8APR8)5P5*-kvsvl{kVk=@B zqQp$*Rz{k=bBIoTJ{dozy7{S<@ONl>C4plh*8}L*!`EOrG?>n}T-tZcxjY_-)w6?1 zA~zSfyC0DKUXQN1K1&|@{xRgxK$F5@3E;t2&Y;iIWR4D=;~&ko$Q4UvYvO4)ogyIx z8qa=5i4MgcYwd3N3hwqvi8uK}mat&d$cU18PxrHh;L9pX)&lK5KJ8REG{=RPLqMRy z3oJF5C{Sst*4aIr1czpt{xQ6Az%0he{P!=w+J(Ihcn>PV4BcHGXRSgtzd}|5q@H?5 z<8J05IPx}f6T7va!K`~8xFf|HIhBm? H^HiRz)ypVmMzoT5do)ifIcep0AR73mu6)u`>%`SK5 ztI zZ@v=A$WA z%q 3QcL6Y+5^~YqmHzeo|V_ Y<^1Ni8*5g@Zjr@%pTB_-{M%G+jkC&fF0@<6;2*vAG3y Rit z`z|j+H=}z9!5PN|;K!F6CTh bnAMDJyi{jmIH38 zp$c}imv)#XUYCc-5~RGYmq^Ns+X^!sQ=ef^4rT}Ztr@rM?pkk^xm-^>__XKSp}x5_ z&G~@`bCOSoHgS+xgN(ixQNI}F8!EG1SO(f3;D9q-^&RFA&>!Iba><@eQo6pL1@va6 zqWKD!lh@%NqLPw^okq6Xvh*La$kfUPMf7WhUY{C?JaVJuWp~>Auzf018%?2jxSgG- z6k}*LceOj?RHxpVvm|nA2v!LN++56;Us$fIuD{Z8QZ#6#KS)%UGZ{hrV*Q{S$5x0> z#gC7z hXroK7y{e10Ipi$&n zCjINy(Rd1TVYCxyAwZCr)p5lG79FobwWt9n6VX(WDzqs*ZP4vxtX}B^sbv0wjT4 ffJHGL89CM{<}Eup*I&`hxmDZcw1v_VGAm52CYE^ zZMp}Q(B{r|GT`AT+1U+Rj )}|q3SOo-q zprMr=pg{`?D=sM5xW9 8fp4K_@Ddf{Ewz&)W&dn4HssAfTD{RP&M&5E)<@5gs%k1${d2t-RS3gD z9hE)0^z8TvACUz4cdkZw4pMqKhyZSVzD1#V^qu323qFl~?2BQ?=sHrA^OvdssNfF%rib&{=+DBbb;{zrP zYuEpx2a;EJds8=QfA&$^%@bG)+OsVoNHx=EsleoxL0v5U0vobSqyd^~VUgr<>5t&a z#lT?;85#M-D1@)+FNs8TVdYh=!MH3`<94&ispjYJLM3}l@u-^cI8Fy*KMr8wR`+A< zyuX)LzB8LjuTYB&6;_gcC$P?sp1ozoGpVIjw|Bki} zE6pRK*o=*l>Y-EKRXlbNKcs(A9lVL^!Jn=|klBFqE*+SL@{W}e`5DT+QQV)8_5Bhn zT6eAnGV~VDBY@F^DLBzInh`L^d#n!YsjA9mXSe|kjYpx0<9S+D1<^C9TwYEm9jz(J ziNWn`7D$i_zJJ|Qa5aQMlrj>J-DL%+e}ER&H ICC+T15It z8#|!L0wv+$k)^JTXNk< z^|bLWnIKh=^}1@YYfP8Hw)nEG-#$R)x=@>S)(ueTcUDFzQ2eeA96s9$3c2x@o-B3H z7B*aERlum8m_C~WpYixfunvGb?4y0pF$N@**PI!2$Y5?D0h{~jWzi#0b9#>7Yz&m> z|FVD*eQ2tPbr1R_d)8}; |g+$HN@xwV8z4nT^Ra*v_!rLP-5KKlQ*uxgbf@l=I^nQdIyb Oip=pI~mX>|GK z^LDnAR2r)}jSSAUI1P*}?9RHSqMOz5dfb8rmftto<8J^~xnjBl3Y6ccD-%)VE0b13 zwj4JmG8{v?XVkM8MaelhPRFBhfkL8@r6o(2m+}H}l^zeCL+oAC$#Aqf6JP2VB|W}9 zDX?#jFpARIP5jMR_oS1n>?d0`nyFR69+)pt7SX=rQ)~IGI`8W*WP0m de_}nhgYcF*I9#3oxd{rP-`qIbsczen}pY{-&)r1H68TR1LW>tOV!K^rt za2tupS-nC}fk6C3e 4s%*Q(#4%|6)WKs2eiU>gv=IE^Z6ShC5DRL-+ z#qnZj36KQcYKqdV36u2_^7HAPBoZ%otT_~#Jk}(uTyTJzYvxqF(Y3XRtRP??UQDj5 z2#O?r`I1)xBxxDxV58iMms8bGwYZv+3CrwB!C(!-Y$=b9#w+Jf-L0K;zVd#Z?nuuN zzb2i6S!b5R2ft%C-oO6^NJWl&oKju1rw207 DV1N<@{{3X=r+(@oSxuI_(o+ zit80X_tM>sC5s%V?Qhf{2&^!$*Hm3tNTnudiO(ON55a?S%yQW0(OE{k AF$4Yp_qYerpeUGCz?uIhb-kCd7M=1ILVMJ4kluVPn&} z_cX4+;%4^Iz=+bHws=545*U4{_UmjuWEJBO% 2H2Ij40`?PUA zJ ^jB|0 z2p%6^HAoeiM0a(vJYVPCYQmXRW>X}M98fEbKqPlpJDQ$poK_wIg7W#rcP~%3`1Y#q z_C}fD&vGzt>wkiDXAP}(Hw7ALDk|DFBU-z|dABoGW&mgls;fh)9L1jR0A~lLiQZk2 zRVJ=vDRwuD30NfgYRrROQUR!^;$A7jnK06XynXmknMCxHbfe3ma=_=QC_>&EO-uW{ z`Or#nO`Dy!@7CW_+eq>zNQ#O m#2_lPN|$@c)T|RA=Tz;q5a3dAqI%GZBMf; zdZHXf*W#3_Kwd4^k4BkPZ{O&2=4d~nTW~~_Dn4PjY(1VK+Q@ikDJB}-K}IZt?=QX~ zv->%PhNf@hVy@MwwK-+ x @2Z0E Ry(347RnIPTF;@;^Ur6kG{rr zkOVtN%`G63zd!CN=cPDdvbk(|Jo@onvM4{$JC_&@ec(j@T!>VW*X|4Lj#9Z }A~M<>yH7j_yc=g2GEL?bRdAk1hM!8bU)(j#@D<@i*TPw)LOfYm zG07~wpM#;?Zyuq4{~?_BK6z84{C4Arm0JA##}B$Uak$QfLD=P8V;w;$TcgEw0D-;W z(;scixV~Z1j1|>i>Y6mk?slo{9&K=>{fM@pzW@oH&QN@SPTTFUG2GVTz{G4nl^nJh z2m$*lop&M4SI(soUCT3FQM!&S+FUsfTUp<4 bNDt`*?iek7H6cezdWmQI^cuez^7OC z Ca3|#Z9LzdShLmI_7WN zs#nXaFN?1)`yQFv*{ * zfJyLUfpKO848it1h*RpWB95I?1#EeF66<4T9B+dcPPO%CGA@4j2IAxy k^_NakxgI?i53Z8Tk*(@PB|tlni)sd|5QAn%!QJDW$9 z>$E*{yr9)FvuP6%!RUmU2J*?vM?gPY==$gYzpt3~+cimY?tpf7>mHaKT-n4z!Y)*l z)!X?>{W#<=*U1JiC)`xAX;2QF!feHU)^!LMW#UWiS?;LBpjFhsNNHd;(@=?FcAcgQ z3M|H1l58>UZLQ0EHM5@sG^$8@H+(y~ot9)Etb5O}iQr|SER-)Sm`Z9zJUIt*EST2D zBQbk#R-A65i06B$uV9;wDp_y#7z{F#s#9~o{;A2_sQ`^lhp&rIj0bBsR$}DV #_nq)873E z^WpR|!WJOQz2^}Pe@gzgkj>jcR)O(dt y_(tcFn&vzI+Kh2U93mXQ3|G 1`PX{wn3@_L8Y`@8T0bHnb-?+*8Gm=It$GHa(B+@E9%~>_Y+qqg_v!o6@ zxV)qs+p0}E{NEf^R{eCRc4W*9p0$~5LG`-^1GlfhRHK<2Yw{77vpJ*D5?&_RDm%Bs zZD!1@p`e?04%EmX`TlY!Zm++@lg|)lHs{@=WKygTjvFAS2?@q9{uH&GE?wiY!!I(L zO#kS3x2;e3WfVW{-TvW#yOyW(c^dwVI^!t4yT7S;LIReR+7V;37zo76Q&@Je0428e z6>GezQX0}M6TUfa)H3n@+Gsf=0p#K(+Kt{GhLXVFbq4-}o2Fx+p<>`*s5X7Yo#*Gi z%3_GGsqvC9=Sp5!+U1S>sSLQ)K%HG4uN|uYq{`D_WYF~L5@B*u4H{+N>)f*~(TD&+ zlQ<68-onJfz!&mrC*jc=8xUWMBaQ4TWZeWBEdRLcD-QuK0^mAmgJfP|y~cTgMffrp z4=+eQg3Bk;7Z8oKn+`JIlLc(tVv5_^h_&z1e*H35$ECtF5?L_HmBxFCE%Z?!XV*cv z )ljWIF|+al#^D4 VcI4d@G^?&^gI~RdD&< z(wobijnUw6uw$4_m4d q2 zTy&~ez(LSZK)nFP5<8xeB>ICN$&*0QV_WbJGED3GYjEmL0G+yO%I*{kI0^YnkFc?^ zJ)8e{fty1Ogz2?D$-D%3#9614)mC1XJtqgpG`-o%CqCj(4%?NQJ>Dya6Kw^lR*Qtu z9Z-MDh@PHnIE(IDvDZoZuh_$pKRi2b4kj>6F%swOQ}gwx gLhy5`4g)jmw- zW_qg4N-Lt;C(=?<8%#Q4sl`RZ&>m)pcd<%??Nv21Zw$HR)!1)o%E*HiEuK#v^;Ns$ z6(K2t{F!G2jqbNoW&<7C# A|;Bq_H$=RXd~V zdq8#9<8DXBGa^^|j~D(~^)`oEm0Y~ZE5wWQM*w%Z3eLn60MB!Ej==m~K3aIkoO&a^ z1s5}SakHmW_9dj8EHpF-qMa2fIYdp Y 4%yyk9b7 z-Jts%PI7ZxrOC1Ll)F>Bp4}!NSNA_-B{}eM*0+MI@X(W!lGJMMzg7Rt$Y3w5!G^_w zJpo`)w*46=^WS!+p%!{L(cSv uo5K+({ub(E&5m32tP~6! z)s=;jC0-w_Kd^;#uh@!R$-HT^y~ukE5ej=f8_5Tk>DHJ5%E6a!wHfYkX$#&4eA5&Y z6}`C`H&Me)hl8vWnu*)#5w!xL{o(g}K$8&kB!S+!>-9E` R7Q> zQ$zihy7WBQ6a>w0aIEcY^8R-46Bc^g6YX`-(u*ELmLF6K_ @Ws2@JX`b+c5r6Ph^+UDY(3jYo%xJa=am zkH)^@4sDGqPP6W@$z{atfDHo#$EK_Dcy)R;I9R@6O|<`S5u0dmb(j;N5Ug>2_8bu+ zGr?S}TqHYN5EWEb&Xg-FAOO!1-5O0Wd!nvy|GnrWpj!VQj?;si+m7)S4)cFO6>uk; z+k%2(nCkgYcnEndxmBwWGcga3&0?JAOsNX>Y9`J%Ak02xh9^D&L#GkK1NY-?35fGB z%*{S_-S|H!zBkT4@a2E65(T=_LgS6&pIjrP%RB@X+&@U5B7ZPAoLYH(k9$~00gX0$ zp$=kAkHywd(%cWo$WdM|B@65B(awVu#z8Qr7G?!9gDg1;cyIH+1=ldEZ+M(6fU1EA zne_h$#{2K*P3)$muZu-@cXLi3W|lqaS|#;o3L}iZFE$TSJT^~T-<(MMYR&YHY3k=3 zD0G86N8#6zH_jGY8E6!!k}6o&HA zSk0)YFnPs6N-W%Sw+g|96Lt+>`llbH>V&$lym+nED`whcyjIhMzw?2!A $e!6V;J)0pRbGL4l!==U&?Uj}T6_wtMXxiYPZY_8AXB4OU3CaNpP z0K0CG0;bdgDVHQGDVwa@nkZvb?t#{W^0X8l@2|f0g%$NZpldDKwm2y-{7wdF0bt7?=Py5f~W_ ze#j&2%PA5-c2p6&=cQH+jVjceUOlPoUs_nO*_mSgD5_&DRox8ezIdrgNra x8 K8_={cRRbENMtcADPRbYMNk6ImG%g%pzFXa=v=C6Sds} z0Mh~Axyk*+zwuS`=6L1%kl&b=*G&hhPl()jy>_aMmgt!B|4#u{cGDl&Jep~pGQr8g zQ!!D=WDX~0R<#<#Y?7m J6$LN1QS%$ z-WG@$^24vL=AZ_$@w}ClCR`v@O-KxE&w!yUO%ea{2s#W{AYo4dA`^v9CM^x&CD79o zeE*dD`Sxf(n9BkTfOVG(=;(q5{m=B5AZY*%FVN?%jiq$i0Rw5|z)TSnWgzVu2H4{{ z4XM#d!#q(PAEEQvNDzHV1qps#+XC8K?u0~~gm^4^?+3v9y8l5(bJ+OgMDd6U$5NIE zbMG k&wkmIY~ucAtb101@;AWd7K&@@uUh;J~P+*4oQbaEW>Eim&DGMG#0>nj9$_Ks~oXpLy+vd#mx zuxOO)72v$7E6PDjYGk~ f-Q)3hp6VQ`)nEY z;1QvM)Zth2Yn{Xt`L?5q^ozRDSZE4pA-(_S01340J!eKpz+B&ZEZnLHmH3e(&E|6~ zMphE$=+D@8jK4vawKwBb005;5^RhE7 z|0#wF5;{_UBuo0;(apb8WeRg!XqJ!7g9rmvmJcS#7-$1=J+=tCq;0EfbRaTsz$pe6 zgw6qB>c>~)6V%A;XKx~px4s%WbPD?lsZV4#t}3Qt9#gEQzyCy9y;X)aSdY)f<1w z1B!kN8zE^pU3wnk|HIik2IkduU88B!B#j$4Xl&bPY+bQ!HFnapjcwbuZQHgR+h^y# zpBLx*&aac7(O%cuYfX$f$CwyE0`czX_;tZ0SocJ(#iZhHt+gwyA)w-tsii~RSc)?o zk&SYz(tm!GCPd+Cg+#fZOgL~+klY=`Q?rA6cOc}bUluyZVwxz-Y{u*o+tM1E+-)IU z#S9fB^c8~eV*NxUf0&58|DNU#C!F`EfjQtZvI@u4Hp(+tD2&=QYIgqnUHFg5gyt^( zNB=aPXH k7JKNONG>23t5_(A1G&4tUk&iVUr_z=X)lZ z0jxJ5b!h;4HE_<$Ux?8E3k$gRH2v;UV(iL44BL7MeFqmbMU6L6#7O0UI#@ZCe9Sy7 z94AwP@DJ0A-12?L&Y)Ol)WcqZP!9M4z5(~?U*1*v@1}p-R{vLJ`rk=c_O2{2%v(hAGP CO2 zrs>boX|I~{s>i8~Wr5Kf0}CVhw&5uL{y !HPM_pZoyj6u{E&yWc`9L@ zBSs?EKa2V(O9q}?+6)9>_O&U^u)VAb{fJdnjOmrS0Hp{THXI8e>X*~fs7-!JkFmSl z)9_-Z5I(}dqKc=YmWB^r&MEw~?ul0La4AuCy9jN$_9)tN5j;VCHr+z_J0 j5IE$V~UU%E|e8uIqVFkU8L4cmT_%R@xG-Beys;#ymJCvbYh{g$ )bQEiJIiZrY`#72x{LSM1?*IJ759}z= z&NZf1^SWH=2@Ft>%KoPTSza3#KYrNAE;0Hy4?I8u21udO_eC8zC(uRs)HIBo1RT55 zYF9CeiJD~@9}1;tsozo-{^U3SW7uc2lB(y#y*lNQE6HgI)Q+3~i1y}JFZ_C@so>V( z`MvPz1(oJ7W@e!WwbSCp02%J9 f}Lv7t`IdbwMHO9AOpux|M1P}~9`ES2b1M~xNidg&) zV}ROUPN@)|dX$V>#w8ll_h^p^HR3?L$DA#Fa%iOoa3qeD*0EzviHTp$Jux(>rpH@z zep=SIsOgHtk-{@ZVwyJ7MKo5XZPZrDMZ5IDvFs_P({w2oIhy5}8BaG^Q}{u`B*x7r zEhk9=A}34e7RFYj$}~Cn-lZIE% 2Fksu4Q7 r$|rA zP?y%JsCS1k&H|O X14j=GX0dI yBY6k=aAqI*g%M6XZh&Toi4vFIKW~ t z$&dSD0fpkf^RwRak4b*Z%*D%vR@wiCsFHyzKpX2-UU*nY7)??=4djG8pr-<)9`HW! z2MG;1F@h@Ej7D^NAiXn)vR;~C3EgNMqSi*4;ZI1k<&>5{3)!C3w_WWaaoMOnePX)w zjSas&*jyzM9u|XMGju=J6kGxH}->`LPTntK{YYK(>S3%4l^>c{9PtPhgTr zR^`BG+AKHx=kKbxLVK^}3CctV#hvRDq;y& z1&e;bh_SqQ%H7*6E_gNRfGr{7)k0xxM7hVG610VibT-v8SBEprW-Ql0jvAD>4xe4| z#}9xloUhjY8^pQv_yHLGeQNdfI-?hhdR+Tx!vA8(ngXj+d0!ncPqKww($vQ4R5y0q zyDO$r4-5kOBes@OtCX#qY20v5;{qQYDlZUf@RWXtr4~-aLf+pZ5CGME%NA8 f*b{iJ}DJz?iCjXKiydZ*wps_iSM{g{7eoO z6jROFvkLwIW{19%$ i;89#pql{2M7C( z E{}D05L&-Ss!m&WFjbJ^8#t!p*>JaI->8{J8QXddEh`?2dEniE+_ALMkkiTm z4`-^RMolY_@3HfGw-cGBP8!f76~PhN+KP|p(Gd< LBTW%5DIyJ7o(t?XQ@D3 zo{pupnLf6&_-+~;OvV3VMk%qf0PRDK0BXfN(V$(M-Ru<{5>{LL`sI_%o6|r6!RqzR zH9-0`of#O&_>UQ2f8N+-lGuLyBzk-(&P?V=hdS%|2v_dWy=&(yD+b4N#UKR=qUNO# z7MgvK@*4S*Gjlms$NVKZf*S6#V_q&D1pOex($KUu)VuXc$BWL%8G^q?gWepnFxvqc zn?~;C_EH6hl=3b=B?{>PtVwAfb2A`Az(jTFvQFCGMj;D3?1vBT)#okRTu@ajXs!Ft zx)?vPW*C^q(eNYYnLDU3(|Mv}s!a;2X6ZPG3@nB6>zSBX^aA#9gXzn{PKyTJb0}Pm zrK)FOPLzhSOopEb$tM6SNmbOf5y$+Bi-DZm5^g6aq-iMtldF)!=mr`<%lb7@Si`*o z!4n*;WXMUz!XNpyP?_|ueVDM7Bscjzp8uHz<0Czm&G`bP1xdT#jvA|}17#(69CmY! zU7@k7KVmQRkmde3#zDo!i;u~Ys{kDIFNQ#NK)4IW%up6_NHEPFklS~YEV?%46rxoS zdMbz&$NL*KgVP24bFd(Qek3eoYcY-I&tfF3bkwW!CwnR%>X3uZ0NeILVry%*CMLe* zX?LFTOvPXzhvEoDsG*t?_(N330z@?77^cZbUEfqGw7!B!bE*+xWI-do4@u!6D-0sk z@=pEV^+J~31NV#p!M?noK>^ZBj<1E@rXd>8R7?gmsk~&Qk~)un#@C$^{eaBELcTk; zGyX^XoGH!x;IY;F@-~P*u|7~Mk=iH>kM<2Is=DmmJ}vw~U5_xW6x%^V6=r}#!@|yc zsCw?!hrc0FHXbU|rQ K_Q3rGU|g2q~=O k>eeSF5sX_S@nz37>qn(9Ruli tXnR1t;wA9Aj zz=$ItRR1aP$w!(u`_U5uLqo5=_l@T|Ojd$H*4;t|#$bpY7)um0KB+mA3$;eXh2GHN z_lA$22MNUC&Sb~h(o_{5goRTYUKfq(nGLGBEmHFVspcl8b;wG-*;5myf#ziLLM`z| zj1`d$^@>!R@&9BRruY?uY%xKZayc=-m4LK89Bzh@!ls+diclZ9mNp_Se9eWb#fqfd z@dVUcDy{b6_Fij1Vf@Re-Ow$ZwTAERCm7x9qHA<*MM3${u$!P;*D8$uT|ITTag@Vk z({ZHt>;skXv!z{{W*PaJW%4WcvJB7G))%)tZogPxXz$1n6Wy4l5yr-@8L{=!Ke@4q zNGix*ar+fnyrc;tFFq6%nlH`Lj9$tKfQt4+0;I*}-2Cyvgs9zivCGs>fkeO#0k3aB zP JWssz*Qh-x}6irdVlWR!xDxujg{L@3(V*_B|G>4tt8UDF!D52hb_ds&h5 zqOXs_URQ`0ixvJ!TnYqqqY=qNCYA3uVK4zPv`qB+&%fgo3r8l$o(J7;lr`q|M3@7O z(2Rogk)vi|h_bc>^`m&5u_yMm^$HnJ&d5Cmx!wjEa!|d@(v#sCC2#krjm+-lhxjRw ziDCuy0|zDmmI$zgB%duWlZ^9(r{7Osad$5t>W& 2=5n<4FPL|%(9{5;)SQeWRn zz`y!*83Wy+)R#VU!FnqasMn{?xr~iVL>$7T@l>cVdAAXRXlh; {6* zVs9iciI06-1vdPclG0+;st^4>GeZ9yM)HFneWU~gg9{6C#K^YUwikiG)U9XJTiaEJ zX(m9|FZHtbS-j6S7+KpadiicH1i19TeA Xm2Z0VloP|2yo%Bp%V10GYZRp z)m{+_kY8!>L8bKc+;dFym;HLuH^jcI2(rAafh58fao7%z(uSJ_FC=eavHq=k;=kfT zr%-*V#Ty@tw1ZT=+f Gv5`vUbC{_TK)L0nj%C!6gnQIKs_4b#!S(EwSrQ6`FF=V=o3RF@W_Ar z0?;c}dlaQnq)( Aa;B$jw<@M_8xvelTd$ zm?@Mt@O=5}MLQZc{D+5eAJy8-Cvy_WWMr~`1((uGWql5{!`~x?>{>jiM(yax%V`B% zfWnmpBwUq9Nx#q#zMP>hDWi=06`mT*KY+;$fEXW6G!gIs^P;;$mzLFmaqG-q(7p}F zc*69f*4OJTe((G_XIGwaK>dkTGn%!`=I1XInIF=B? 3IyY+yRh6tT u|kX--F zXP$VzMmQOr_M2o3p*!y%V10t$H&dksAWKLkRE{jO9qeM$VX?3&tu1!{M>A!SG3_e@ zOAK+o7|U?BKJvY<;SV#Y^0rG@B|nXFkFExineu|&s6Z(atC+jWN|tF(3VdP-9a%!n zrRlp)bv{W`!<5V&h0n ezuHC8w_;J14)iSxFpx22B|irR -Sh&yPYNYUP5+-0UrVWQu+wvHJB@}ApleEKpkYGeOf?OnYYkN# zJTAALJ6C?x?pV+c;@zT%UKA&^+mOt@X&Wn~?fwZVPZPH*A{Ula`5=!}d1-jkoFZPO zD6k%{y#!xu=|~C^GlHqj9W*l6LLx3Ujvyf=+ZF1fhpG;P@Gt{TiJUH)Uq_yl+5Ye4 zcuimgEkK0jqg~V0&uSUT0MP#Ncg-rVZ<19~1TCvD 6@CE2@r&;VpfpbWD?0t%Y&g6R&f@sghl#ji@Qr!s=DG~Z*rb@>pbV6s+p}`=KN{R zRp0-hwqT7T2+UWMxM?_+dOifl#5%y{RkdQ*WgD)OD%Gya x$Vgf$$LA~x0!6&^&Dx-5*y!V)aI0y7Xiw$xdV-K7)2i0=b-AtQql&Sw-Di3bRm zdfi*!0|QGbRmexHq#b3Y*lLF@3y7;vCYb4F2-1AyF)btdw06@+i`@=(ufMFJF*B&C zPtJzn<*IHas+j&0aRuq(O27`1Y%%+MA~6#x5(=&QZ9>|T(cZzv`xG)1h^s!lOF-At zOIh`c|Mv0|Q`JmxSbT5(A&NjG4qem%6=-WJM}Mbqs9dn*xmme=#Lr#H<131!5U5Zf zFGUpTgzO4r{V6ijcOet&pHi0^C+ $eQd;}v=<7x zM6pAl96N( _ z8a&0n%OwcfF5|R>!_N~j4MWx{LhIc3Vid99ZZq;NswK)gk1? GsH)6t%T8S!;SYtoA-OE+<3TlgVJ|t{C#_6DFFNaj>4T?)Z+?}1 z`V{!OudP2}7uF!ek~j{3ILgP8AM~yGkPXS<&-X+erKg&i;`TvsyxcsA8{TW2fU+9E zsAoiwb31c80Jt}$?l-&Il0p*H%_dPv|2f`8W{p~Thj-YTw}v(@4nIF8xQK}9)%LZ_ zB&vuCEDnCCw5;V-#1#U;7jLL-@|u{sxPio!SC#hjq`iC}t65;MQk3H1=;c=kdUd?R zFUJ%na!wc2Aa8Q!Ho4Ox>`I}BFM&!JqJc``CEg0}y9Obl*U*>OG1a0>Mie^44PINX zq;Q<^kRCj~1|eiVHrM1=Y!7WwD*5?yc(AnC-lOdv_YGX@^+Yl 41gCTE&U6$x>Pw@)(1In!7Pj&)Dr1%1{Korab25_cGwF?L1 zIMJ3^(We3MSsTZqb>k2JSbIRnZilvvM?=ODyu%I)Z(J^{cj&JI6^jv;Xr`(BsuE?a z5{&{kF9i!Z;pr6kS&Sm)Xku2&N6|%0=3Nh<9+0H$$iO<49k1wAO;^EInHeGSc#Y3i zLKa!W*tEXDNL%t~sKgH;u4w |& zOwQi|R;zR1z^u^PO64@odpDtR7^BsO%Y3@Emlh962KVELi2=O)@FLC3>;LX`+FjAw zlg9go`Hk!UQok6Wa(=Of=!LA*RIWD^1hxRJr$fXs8C5xEobi%ju#<`|6#kmra$_5( zv~u+6X8{n8E?J_ce-iD9tzc1b{CdJtW#Fh+Rglx#Xd~uesSk{blFC_XV^sP>q- I0L~lZ3WhYRevu@zejVj5QYEgst{uX9_ z&!LjwTp6lLc-LO8Oe!1jMI3Gia!<;Fm4Za(ucBnBROFX2$E^}yF{!KJt>~US5jYrb zKysBsL9{X6ZYnzGa8K|5cYXMK+UF4X^UzDZMkya_nh(sV86Bkf^gDp;6e3=GgZt zD4??63J`{X84{E#eW7SPs2y@aeSO^0Ckhtr<1q!B*8JVhRX8|Evg1IqRiEm1Jw343 zl}NFZ@f@z0M0$}`PFBavLcOcYQ6P<0I}0dIZ~1ElX%w*tE9|-M1btlakd*E_s~Z$$ z;Xa)HouwapdEu3c+ M-PZ(VT_$^m3r zbJLIRCl~R5gNS%b!I19-YYJIRfRKHM`1$4?L_8glwzI3ayFt9YfHnV5#k$=T#zr$G z2nfUgwSw>OEIP}VIZq4Lzd4%{Xe-CFg{09#xV)~eo0p?T?KX$gt*eL%{Yi;Q6 H>o#C1hf4yCENu1z(u+BVtFV6g|a@`#`^l9!NfME+r~aD21FAd|!wa zFjW-z?n2%E1-NYAa7N*qx$+K|OQVWYy`0=4%ceA365&;{;({WDT0p_(?CBPjaiVY| zLZo%(Mo~dpM%uXQCh_cZx*0@m38`i3gRMH@b*##J(Z=Nf=ZTg?yWuisM)7nUn3$$W zhy+x#E-AhNGXyJDQPU%c TM`mx%ceG8ZikdF z*O~(YAl>oPerF?SiDyLptXTLotJqkl$sFG;PeaDZ 5}1YUjcxDv zzM@)Uj>t@>cfZRqsS5l@j)?+qfgQCT79q5vzB(){%#lK^t5tFE{|&Z&@+VLJJv9g^ zaW9AE@5l2WHK^c@2~$X*N2gRxh!#3DWL9!?pHI(TL68ZB+0yT04shn`Sm#7 aK>02M z8EP3Zv-hc^;Jycy)2NF@c$+YMi&eb|9CxYAyhsrjGrr+)0lZe+^@s4ZH)5+z+h=;_ z` B-8A z7m?AW=O;~n{W@pdmV=ctTLFP74cT_{*kQ$gl%M5uFLT3EFUXHiHP=>eO7m@isbf5* z9izPj#ME} FCr=mo<{PRClk^>DM7~ zGk%hP@d;I36cc}FZZ_P_1GLy+$yQri(!KV4za^j}pw^qBgM`yzEgK}?C?o|h;P{jl zdDN?BI{QLkE$_v80A%DNHdbtaP*u$#_K^SQ>hB_uZX%G>1RP2wwp=ot%#)J2j5pCz zOW|rkhzUm*dJJbJ*c)u9zJ#$fM{M)HYlq! E`>$e_PI*{V_?-#^GrcavS0jRgwlS^#ti^6S&U@{#nIH4%I4zf# zrR{OF=KwB9qj%+fdkWrGSo8vZKWN>=_HE*WFQbqj+# #D>{102Wqm$kHhL*qs}~C~4%^ !cV=SoHJC7J)i0^srPdRs#DhV|_? z*hbWb^nMJo zI7s06ywmfn aQ_eb(&%m=Z!Mkbh5rjavoTwzNZ}7pk~IBf zpVg(?6CBaySfyEcJ)e?WC4NEhXHvwIzZ3WUuhg8l5-l@M7rwYbaFuEFO2?rjXiEXQ zxtgSzpZg72r_p(WmniZm%V#cLd~+g%K=ZpP_XGHuVm0v*3qdgFxi(3zUy=s+KyJIO zw73<;t0hmD#(K-3MA<+_TNkJv);56w86CcDpD0lOI#~U>$0`cq`r(ABPM%u!Brm-Q z<$9c0k1a#wt-GH;Bp3I*9u(lf=0=;#c2;eVV@xpGTTR~NdmEYVfkVAEP8F|{p&4p# zxTUGx$QmQ5Rw=(blOVLpr~%L11icxmY_j2)PC?{A+*(k_+f1x3tA80Zbd1YZ9wB+J z=;cmUB`HZ+bmW5WOUwT{_ZM?Fb(n;6=<~y1?k&V80q~b12T1>jkw@(@G>Saudb2wU zf6?t0x{6J8L+wy n`dJbc%Q)(Dd-E9L%okjOmKbm>zuRsGl>+7S* z@_j j~vJC~+mK(L|*?~dN_=7+943oJHPq8QuT$Do@D z-B6cXVw1%g^5KV$`)4}9w`1exj7-kX@b682Jkimx$vrY3O%#9$A~(v3s9E@_BC&CB z9p)p=QOp}_@l9FuOh!q*_RJykJYvz30;IINIHY8M&GemTLdnWseQGVljw^0YeJFZA z5=Zqq_UravjRUf`dMoeIB-@v5`~8X4ou0b%l1J;Ceo23A&*8+7YR7-ta^;}PVJuZ0 zYh~^Y&UQ6re4T^o3HHwue?fzDar_aCsT2=H%ntBfPh}~CTKB19D?Ax1H_s|6S@SOX zxk%c5PG6|ve{hUdK82KP#97;{ixj(cSrkN>dX+|6ovWqzqfINOYY_wOV4Z}Pd4V%6 zw9P%HT4I=T@!96lw>j7lByO5P$o@UjZSy#(gvy7}MvwyaNguq12K&L1$;cgbznXdL zehtpUzgK@w(QMvkg>!d_!7lM{GM<-S9oEFmSDzFBCjOb ^C){G $53YLO%WtD6d8qW(}6t^_}jKPwWnsB(1VbG05I{tRjwO4|AKKsEdSM?+9 zAYGJ#n8{JSH$5I?(OVgP?eI&oF_M`i2NqeF#6KiLy?TQJ&6We)kZr%c@<$tQ{K9$P zoVsR`D3lP_y`Ox#%|5&irNt9y0g2ZJ!C8_)wf%fs6lm7qN(W8drO{;1licnHEtp)t zX{DPTCf%&E<*3oahq(=5j^lDrF~$%-Mp03i30iTnd0fa2ik-)2VTvfm+C^l=H;-WY zk0)JTVIY;8!ybpfWO>|g42kxyM##qwjJDs2VS~_?g!Kd2^}yEml;B4&+RCn1?%C}3 z-pJ85j$+}W5Qx6IM7tu6H90*G@V(WGYLsI0HrULMeUr&Id8>Pk-q4kb2lPG8Bb*^v z%iHf8v~4PE X-Ph)1 m<|BW-=z 1+O&JPdp)&t+OilJtDNR3uNMbzE%@ TK?sNqa#}d9>OuzL$}qvID1^M}Sh$*Y z?s+gSyJS)P2*cS2Ba4bf&E(3u#nHO?K0&^_EF=Vu2~*mHaSWF)G0lmQhl1es7IXd` zPdyI+Ht=r5^Yo0z|F1^bH$D()^NdP-b`LPQ*VZ~5242h(MIW#jPE5&*v0B@qc~^o_ zaHQ2B?fJV2FB5lApz0~JUOJYqRrO7VIf4{%RU7AaznLCy&q0x&ooC*V+>Rgz%D#^t z4T$oQPzr-sAaPM{S|3OpqWJAEt`s~jPq)_J7HapF)7u|5F{EQ1o78`{N0n`?Fj`GH zZj0(O0Q4)caMwvZ`RG9*`Oyg<&(lOEY3ec#cV)_#1n2Aq{o}SI7Aui!3G*N+NhiJD zpwOq(Wk4^k7uhJb3AAkKRlTTBpG1s&Avnxh4-NapDfsiP_YaA6&PQ+8n>RQSjKMfp zHh5jfEN4&7I}cT1C^;>K)5I#P4XPz))t*i%N_xcwI&pkL}L^+ui& zu5PiNS_oF)C$Jsr_?;a(sz|9E!D=%#;a3mVB}J4Gw2;IsG3cmGVS)AIUS)NN5Jtk` zt*Fq(J4=X14VzOMiTCL5_5K;8$Fa)aFEkE4?o5(*iNKQ`IDpT~x}>ab?42SZtQ51> z@b>E}8WbEKN1^{Z8siYfp4#N=Pk!Qzk}%c^5yT0nk%qApTE}1zWLB)UT}aam8ZQZE zF=M*KB;dU4(}Z`Sf-znqt2F}CF3ia>1oY`)(W!O8z}mW-{dlgMT86RDJlkA{Wiop$ zinDBQ<>5ueL)^+H7XxBoj`zvYYtMysCL4Xs`Cl(_zb$DxytNhDI-YG*{Y}st-s+QP zWJe^kZ-?q(0-Goj5)z`;Z1@6jFz(T9u!4+P6% CZPj0Yw9fZkg(o7ZhY zHLE0Hm6y|K{1*HyAav2{+id(uhd<@Ujr2{($LWFgcU>C~R&lS>x3qmZ4zQMv!RbUB z?+Uv?`|y#bvqXh_rhOiEi%0lvOwAC9+{?SWH5^_ruo~(!tf09{!7dD)7ghD5s9_74 zc)WBjQ37X8q}_B+(K}ozrqtry+TC&QUcyPq@iocN@%BgCY6#X-yM%~tdD5LDUh%HF z>1@op^TOV~gcIJlX29PI5`Eh*v7PJ4v(Vo;Oab|eIzmRLx7d1>X(Avq{mHEY%^i@Z zO=83jXK{ywapPmZ5?d%nS iW?FeXq;lmTfMJIM>V(=XX2~@l3Q#dA^JB1ry?H z(@lB6`Gm8Mdz{x L za?1nw=8LxYSF4WhzC7he$sS7ShD+=odEfK-@bZ<8r6G*4mKKcZfxtjgw%%JYqo{yV zSxl3+XP5`p`34e&F3^}c>ERW%tbo$-fg~2MWLeNTA5J=#$l)|!-K3yo%A)8S6m{vU z*T}kT(e%9Huf5ib6aTeE?iNulZ@$DUpG0ZnNA{HEV2N3zPKi5S2>Fzpc|ivmI^clPb>c7WiKD zULhAo7KdN2DWd;~KCt<>F{*^8txM-#OzWIK99cR`t7|zL;20`AZ(okBVL=#WMk8;v zKV8ggz2PKqJ{;8^vnm)g-+z5C7Q=6#`A8cX%?<=s`yrlk9VSJp+@2s|AzQL0SJ_`O zRom5{-0u(9Vk>*zOMLSgeU$dr=F_{^s@GO2oYdyB*A_Q(6>=HS#nwv)W_k3mu8|XQ zDj~ZypLSVOBwxISKmAq7y?2xq`SEjoCo>g12FACA^n-wFIAD9*lG8P_A|$I}X4P96 zxCd-k( sBrX?O^`` u)Kvkrrv8fURBzHaK0BgilGnNTva4RKy08GktR@}7Qdw-;nP zl&@r+7M^W5=Pwz~xawEd#Kkt_s_RqDsFq(VEWhr<8eDZ=x$gNjZ)VUJielZiJqfLX zc=yWE47`z+6qQe`s5K?8E{9vWc-+r3$ou}Ou+??uLF6yf6j=4I?Sg zSN95YY<7AJp2*!$5zbI|GVV|&f*&i_vDK8OY2F-AV|g4B2Wn<8>tc92J6Buk+@t`; z^36>7=3{3We~)jQ0wvNhgCdAv5ScM>b48P@8>)w!exRNNSY-we&SsY(g6#A{p(;!A zgb58Mkjt?7%y%MQ^#c>4rl{h9(Y%e|;6LZKZUWC5Yv0(`J*xG({eXsfdN9+kHWauM z&7$)*yxv#mktqJ*sVmOs?5U=AO)Zk)!<>LeFUj6w;#+QaTA6@K^Eg>b3{M)}Th0%U zuRHjp8KkFKr_eD?!eA# JZ8MZz8QN08zhj3cDh z+*oEh8aCo*i0PvOs1rLP7iEAL^>1GQ2>wRgzaO!qZ4K+BWnW0!Ne`kLg638&dqCGn zvpfgBSq7R0f$RQLcU*7FXMWEk_T=$btI=7-c#Z2=De6knu7hH6I{i5X+2birnpSgZ zaFx|YR5?>oc|6bTkJpe2XJ*=}EzM2pciVZT)7D?#=ANiz^G()mhj(ySx!$8iQ?N72 zJ1Os_Lso;Mp2xp$Pj_dRp#uREEW_z^)Rgduuw_&*=IE%c4N^;TT-CWc2O>T_eyjO! z+z})pf46KAAXuyWZd5C_!hhr$^3UNQoQOO7UJljJI1Fr~Y-R>$6_Dnu(hzGL96GpL z&(Uiamr7~T-~=k01k@)7b%#GxB6{sRKj>%R=q&c74I1J)3Rew-e^wl#nh}}P&8)Na zoD)