From 13cac067781474d89df4e95f9e484f450fd58d40 Mon Sep 17 00:00:00 2001 From: Istvan Matejcsok <119620946+matejcsok-ee@users.noreply.github.com> Date: Mon, 29 Jun 2026 11:23:22 +0200 Subject: [PATCH] fix(wasm): radio groups no longer merge into one Bump wxwidgets to the %p->%zu radio-group name fix and add a standalone wxWidgets harness plus an e2e regression that asserts three radio groups in one window select independently. Build artifacts are gitignored; only radiogroups_test.cpp is tracked. Co-Authored-By: Claude Opus 4.8 (1M context) --- tests/apps/Makefile.wasm | 11 +- .../radiogroups/radiogroups_test.cpp | 143 ++++++++++++++++++ .../radiogroups-01-loaded.png | Bin 0 -> 49429 bytes .../radiogroups-02-selections.png | Bin 0 -> 49413 bytes tests/e2e/radiogroups.spec.ts | 81 ++++++++++ wxwidgets | 2 +- 6 files changed, 235 insertions(+), 2 deletions(-) create mode 100644 tests/apps/standalone/radiogroups/radiogroups_test.cpp create mode 100644 tests/baseline-screenshots/radiogroups-01-loaded.png create mode 100644 tests/baseline-screenshots/radiogroups-02-selections.png create mode 100644 tests/e2e/radiogroups.spec.ts diff --git a/tests/apps/Makefile.wasm b/tests/apps/Makefile.wasm index 03cb31c..4f404da 100644 --- a/tests/apps/Makefile.wasm +++ b/tests/apps/Makefile.wasm @@ -146,6 +146,7 @@ all: minimal_test.html \ $(S)/dialog/dialog_test.html \ $(S)/timer/timer_test.html \ $(S)/tree/tree_test.html \ + $(S)/radiogroups/radiogroups_test.html \ $(S)/dataview/dataview_test.html \ $(S)/htmlwin/htmlwin_test.html \ $(S)/stc/stc_test.html \ @@ -344,6 +345,13 @@ $(S)/tree/tree_test.o: $(S)/tree/tree_test.cpp $(S)/tree/tree_test.html: $(S)/tree/tree_test.o $(WX_CORE_LIB) $(JS_FILES) $(CXX) $< $(LDFLAGS_NOGL) --pre-js $(JS) --shell-file $(HTML) -o $@ +# Radio button groups test (no GL) - multiple wxRB_GROUP groups in one window +$(S)/radiogroups/radiogroups_test.o: $(S)/radiogroups/radiogroups_test.cpp + $(CXX) -c $(CXXFLAGS) $< -o $@ + +$(S)/radiogroups/radiogroups_test.html: $(S)/radiogroups/radiogroups_test.o $(WX_CORE_LIB) $(JS_FILES) + $(CXX) $< $(LDFLAGS_NOGL) --pre-js $(JS) --shell-file $(HTML) -o $@ + # DataView test (no GL) $(S)/dataview/dataview_test.o: $(S)/dataview/dataview_test.cpp $(CXX) -c $(CXXFLAGS) $< -o $@ @@ -641,6 +649,7 @@ grid: $(S)/grid/grid_test.html dialog: $(S)/dialog/dialog_test.html timer: $(S)/timer/timer_test.html tree: $(S)/tree/tree_test.html +radiogroups: $(S)/radiogroups/radiogroups_test.html dataview: $(S)/dataview/dataview_test.html htmlwin: $(S)/htmlwin/htmlwin_test.html stc: $(S)/stc/stc_test.html @@ -695,7 +704,7 @@ clean: rm -f $(S)/*/*_test*.html $(S)/*/*_test*.js $(S)/*/*_test*.wasm rm -f $(S)/*/*_repro*.html $(S)/*/*_repro*.js $(S)/*/*_repro*.wasm -.PHONY: all clean menu contextmenu scrollbar clipboard filedialog layout aui toolbar grid dialog timer tree dataview htmlwin stc print dnd propgrid pickers collapsible listctrl infobar dataviewvirtual auinotebook wizard gridedit calendar gridrenderers printpreview bitmapbuttons specialized validators ownerdrawn popup xml wasmedge fontenum textdecor bitmask regions maximize earlysize selectheight threadpool logerror retinascale coroutine coroutine-nested asyncify-races notebook +.PHONY: all clean menu contextmenu scrollbar clipboard filedialog layout aui toolbar grid dialog timer tree dataview htmlwin stc print dnd propgrid pickers collapsible listctrl infobar dataviewvirtual auinotebook wizard gridedit calendar gridrenderers printpreview bitmapbuttons specialized validators ownerdrawn popup xml wasmedge fontenum textdecor bitmask regions maximize earlysize selectheight threadpool logerror retinascale coroutine coroutine-nested asyncify-races notebook radiogroups # === Coroutine pthread variant — reproduces the KiCad Asyncify-fiber x pthreads crash === # Same modal-free harness as `coroutine`, but compiled/linked with pthreads to match diff --git a/tests/apps/standalone/radiogroups/radiogroups_test.cpp b/tests/apps/standalone/radiogroups/radiogroups_test.cpp new file mode 100644 index 0000000..52f7eec --- /dev/null +++ b/tests/apps/standalone/radiogroups/radiogroups_test.cpp @@ -0,0 +1,143 @@ +// wxRadioButton Group Test - exercises MULTIPLE radio-button groups in one window +// +// KiCad's Preferences "Mouse and Touchpad" panel lays out three independent +// scroll-gesture radio groups (Zoom / Pan up-down / Pan left-right), each as a +// row of [--, Ctrl, Shift, Alt] radios with the first button flagged wxRB_GROUP. +// +// In the WASM DOM port the per-group HTML "name" must be unique per group so the +// browser keeps the groups independent. This harness reproduces that layout: it +// pre-selects a DIFFERENT column in each of the three groups, so a correctly +// grouped build shows exactly one selection PER ROW (three total). If the groups +// collapse into one (the %p-empty-name bug), only one radio across all three +// rows can stay checked. + +#include "wx/wxprec.h" + +#ifndef WX_PRECOMP + #include "wx/wx.h" +#endif + +#include "wx/statline.h" + +#ifdef __EMSCRIPTEN__ +#include +#endif + +class RadioGroupsFrame : public wxFrame +{ +public: + RadioGroupsFrame() + : wxFrame(nullptr, wxID_ANY, "wxRadioButton Group Test", + wxDefaultPosition, wxSize(640, 420)) + { + wxPanel* panel = new wxPanel(this); + wxBoxSizer* mainSizer = new wxBoxSizer(wxVERTICAL); + + wxStaticText* desc = new wxStaticText(panel, wxID_ANY, + "Three INDEPENDENT radio groups (mirrors KiCad's scroll-gesture panel).\n" + "Each row pre-selects a different column, so a correct build shows one\n" + "selection per row (three total). If the groups merge, only one survives."); + mainSizer->Add(desc, 0, wxALL, 8); + + // 5-column grid: row label + [--, Ctrl, Shift, Alt] + wxFlexGridSizer* grid = new wxFlexGridSizer(5, 6, 12); + + grid->Add(new wxStaticText(panel, wxID_ANY, "")); + grid->Add(new wxStaticText(panel, wxID_ANY, "--"), 0, wxALIGN_CENTER); + grid->Add(new wxStaticText(panel, wxID_ANY, "Ctrl"), 0, wxALIGN_CENTER); + grid->Add(new wxStaticText(panel, wxID_ANY, "Shift"), 0, wxALIGN_CENTER); + grid->Add(new wxStaticText(panel, wxID_ANY, "Alt"), 0, wxALIGN_CENTER); + + // Row order and wxRB_GROUP flags MUST match the real panel: each row's + // first radio starts a new group; the rest join it. + addGroupRow(panel, grid, "Group A (Zoom)", m_groupA); + addGroupRow(panel, grid, "Group B (Pan up/down)", m_groupB); + addGroupRow(panel, grid, "Group C (Pan left/right)", m_groupC); + + mainSizer->Add(grid, 0, wxALL, 12); + + wxButton* check = new wxButton(panel, wxID_ANY, "Check selections"); + check->Bind(wxEVT_BUTTON, &RadioGroupsFrame::OnCheck, this); + mainSizer->Add(check, 0, wxLEFT | wxBOTTOM, 12); + + mainSizer->Add(new wxStaticText(panel, wxID_ANY, "Log"), 0, wxLEFT, 12); + m_log = new wxTextCtrl(panel, wxID_ANY, "", wxDefaultPosition, wxSize(-1, 110), + wxTE_MULTILINE | wxTE_READONLY); + mainSizer->Add(m_log, 1, wxEXPAND | wxALL, 12); + + panel->SetSizer(mainSizer); + + CreateStatusBar(); + SetStatusText("radio groups test app started"); + Log("radio groups test app started"); + + // Pre-select a DIFFERENT column per group (distinct, like the real + // defaults: Zoom=--, Pan up/down=Shift, Pan left/right=Ctrl). Deferred + // until after the frame is shown, mirroring how real panels apply + // settings in TransferDataToWindow(); SetValue() from the ctor runs + // before the DOM radio nodes are realized and would not paint. + CallAfter([this] + { + m_groupA[COL_NONE]->SetValue(true); + m_groupB[COL_SHIFT]->SetValue(true); + m_groupC[COL_CTRL]->SetValue(true); + Log("Initial selection: A=--, B=Shift, C=Ctrl (one per group)"); + }); + } + +private: + enum Col { COL_NONE = 0, COL_CTRL, COL_SHIFT, COL_ALT, COL_COUNT }; + + void addGroupRow(wxWindow* parent, wxFlexGridSizer* grid, const wxString& label, + wxRadioButton* (&out)[COL_COUNT]) + { + grid->Add(new wxStaticText(parent, wxID_ANY, label), 0, wxALIGN_CENTER_VERTICAL); + + for (int c = 0; c < COL_COUNT; ++c) + { + // First radio of the row starts a fresh group. + long style = (c == 0) ? wxRB_GROUP : 0; + out[c] = new wxRadioButton(parent, wxID_ANY, "", wxDefaultPosition, + wxDefaultSize, style); + grid->Add(out[c], 0, wxALIGN_CENTER); + } + } + + void OnCheck(wxCommandEvent&) + { + Log(wxString::Format("Group A: %s", selectedCol(m_groupA))); + Log(wxString::Format("Group B: %s", selectedCol(m_groupB))); + Log(wxString::Format("Group C: %s", selectedCol(m_groupC))); + } + + wxString selectedCol(wxRadioButton* (&group)[COL_COUNT]) + { + static const char* names[COL_COUNT] = { "--", "Ctrl", "Shift", "Alt" }; + for (int c = 0; c < COL_COUNT; ++c) + { + if (group[c]->GetValue()) + return names[c]; + } + return "(none!)"; + } + + void Log(const wxString& msg) { m_log->AppendText(msg + "\n"); } + + wxRadioButton* m_groupA[COL_COUNT]; + wxRadioButton* m_groupB[COL_COUNT]; + wxRadioButton* m_groupC[COL_COUNT]; + wxTextCtrl* m_log; +}; + +class RadioGroupsApp : public wxApp +{ +public: + virtual bool OnInit() override + { + RadioGroupsFrame* frame = new RadioGroupsFrame(); + frame->Show(); + return true; + } +}; + +wxIMPLEMENT_APP(RadioGroupsApp); diff --git a/tests/baseline-screenshots/radiogroups-01-loaded.png b/tests/baseline-screenshots/radiogroups-01-loaded.png new file mode 100644 index 0000000000000000000000000000000000000000..e739c81fe5cd5a4b55c5c217c2971a7edbc4e5d9 GIT binary patch literal 49429 zcmY(qWmr`07xt|ph;)Obbhm)CfOL1)&@J7dBHc&`NcYgf&f|RtQBp&I5-^T9d#bVI&dEA=O|Pp zAgFypFO75ZI3GBA4Tp1}mbmQ%iyx(NnhYHr44;YcUM-9TF!K1etfWT#cRh3r(c%7g z?LI*Jt|$2aZcJ1$d&2PFjai*fl>WO>h`J!zi!yt~ z+I<5Nd9;wjd^3eE8W-Fr!9RtHk`{ipfF^Ngh)7Ln_2PR@E zls#+nyybY5jn^*O95(0o+Z-QVzHwZt8C()6IXAw(x;Ya6;L~3p=@WQ5t?!Lp{R@BK z=aKVLeWg}e60BVN1aY#sTTiU16cZaw%(?Kx_bZ$Jj|kt*#^MA-hF!))h6w!Hk5pzh{U|LrR$DHJ6OJ35gG_&_Is*Q_`CJkw+h?I zw5?4ZfyPEo;|^yy#w#AW#?qzc;k0U_OaYf{6^g~k$Q-f246(Duu8^C1--rC|(l`oH zqZ^djs#Qs{(QFX{V&d66%`sp1;-TfcBPoI<@8jbywFT!Fyd@$weh94n3{jVfVy6kyWQyf>ow}Rm?7Y?0%Dc z;*X#hPG;5&_o^)NaNRp^=G_?;hR=OLx!e`sJRBKHI!t`=)G$wH#Gbw)TJi6DD&*Aw zKiL`i`eOBh*Jde((88Axc0+aw}Z{Y_7`gQL>)m7 zcfM0I6n=hwK7nU56xi6+r&|XW7OP_!b-A9mRou0;ApR4g1?GqO zdU)OM9b^A-eOaxH=4PYr;cD?*6D!NsuYT%zI{th{_7V{1O;w0=jdwYtrY2B$O}r!0fjB&NlxjoP#M9Eb=M zrK!(X0*U=wc@8PFT~@yEJ1od)Sd*oNJNuq)au|ax`(uLX;kmgbrRVvnhBY6H7WULm z2~$J~6pxnL;~}p;H_eZhyN|cNJ z+&xxKeCDkgc&mdhdzo=L3fR4J!3*kj&j5Wu5y9$hy-JRZj1;L$YsA*s3xK1vBnW$R z$e$R`mmBH(L$=JW5ChRsgoE^rOm}a%xSG}j+H0kd`Ut2@7nA7KDrSVh;5V{7 zbeqUf2r;vxcJ4=Hdv8!O9-bH|`)6sXy*5j0vwywq%5!|Fp6Y^aDSw9U5J zVCB}SD@h3AFjH=bj@}EdjjY{`jg75|<=Vca61ltLu2tAV(`&Ln>Kz8dr^)O8{ISI# z)d@Fda+s+w7$BaWG%+^#~p6aUFEWta(=%Zv4hO z(r9~o?lVbjTD6IGnbE`>f3Fb+bNG->h0}D6SOdj_iAj4@#r`8xuF|f?6>Z;I%>rL}wD?nb{a?C5}3;8OJhl}zw0q6(sKTG8wi;$ttaj*F5y~mt?wzS`3I?v}bD-<(@ zQXAybys=(NCWV!^v@~BHEtZ?+Q2ylY;MDiM`r{fvMk(OBPz5KGrjS8&_CciU`h9Ro z&I!Z^;we7O%fyp^9*=nc$(98=z0&M$`bD%enIV>R-S~uc#m#YE$unIw2W7+NR}y`1 z_0?e9a~ft^G@?>c{imzb6QTP8&RIh4SXoH~t0~5^u_P7E7oxkW5@Qq%UVLWeRL zFZ-1jPiDTj796`KS0|bi4QEDHytSPBR{H0gNVB`SS)-FlcrmyN_2lI%sQy=(Z}Rp)R0tu_sRrpkp^4C=gS@gQ<Q91>7{$Kd;DOGdR@@30zLh-L|BV}3S&*YND@wK zUYOe+%fY7o==3G|ijM2gU3$T(IjOua7cv>@uJ_4g3fXM6WS+?zH$+?LXxixO*-De! zfhKO+=}At!qnP=#v3uXAYrfmxuf41kXcuXpSR~(IlZPQ*KWwQ}8ZsNye^642@jLNk9SeWBV#6%wer&ymQdm?|M98y*%~Fh6B8+8XdckY8;7wdOc9I!!#7^0S2@ zHK&Q0fTHuIngd;TaL$9&@hWNqGgh3VQHKVETiEMRdc5z{^*Ls<-}bpYe6b-Zc_+;F zLGX7j>_>`&J4^g&o8P_l*b0)0Fu|7Xh;}K~Gc32YBh*X{XxQh!&CSE=t=|)wF3Y(D z(=AgfF^@CEiLhH|na@c+u-PPB;@Vzxkl@w zU*wb^h>3~Kw*YN6s(crU_6adn2YQnZj=icYjyM*g{AnnXtXfEhup(|zO=syJ+hnRf zNt_Mb7VVPvLi^$X{c z9z(ZD^`UVRnRfbu9L>Yp{=<5xJ2xt70$j+8iVuWpt#@^M8uRKxg>pH3ePw#r9S5Z% znl*_8&yiKOkNTs&JJGky%%cUUys0=Z|5OWRrodyZfv2>sUdM{)&E})Z96Dvk>2~zX;&#H-GN!Ai-(!FBCHnh~ff#a@)DUgma)VdOeQwA4 zbaS*Xyz;augfH9n0+yFVc8XX>Z!aAO7^L3zO5niw$wfRWEW#VsL2hg>sEBWeGd#(5 zModMlCiSN05))1ghB+@)hS?g=7A_3IAz`T)RD34qSPlo1?W?sGj3)+8j@)4v`!goZ z0f~ie%*pmQgk-4g{it`f&Y^N0p!W5ck7SL9W;Q)C>Wcv+ojtN~7Ok((59hsc*r|9* z#c5_rYrh&a+H>38+13x_**TEwk55hYaMZgmQe90qi*qu};*B&S4#hog4st+*Aj;>v zKo3<@AH5T|VdJ(ukVDAQFBejp1_~M}C#gTgn`=G4xQM4%IO9H{WuUnS^S$J5vbh{3 zN#9Z=j!1P_6@6Hd(@HtXc?a|*G8hy-_x(=fBV7cpu^}Hj(mHcaJyoa3K4E_aX&eQ;TABM*?kl9=zR;({u%Po`y#ngS?=oRzy7>X80tp+ zr>5pZKwWYN>%hPOt+Y}GS8)@Mb9;0ILHhX6;)_=<=ReKY$&RzzU#QLYr{uHC9eEv7{eZ43ZJ?@toFm zH9t9nkLT;m=zvEg-XTvCx$hTjPKZP=c~(uR=M&QK zYmN$OKD;TI&iS8-jmbgkz`{1#w6e1GX`SiLOaUi04f<0Sma3j`EP~8Ao%sb~PLn%r zsoP0nfy<6K<*S>Ujh(jnsrTh*dItFq-$niTJ#64Nu`ZH5JeEImGd?6_aTv86jMuEB zZ7~fV$#o>1inZI;H3jSSw#sQW_dyx`N@i3>BwF3JNP`f&l}tJoQSHWM1B2+zFzX&_ zq%ZDttn$8srF*~4RNqm3O%gMI=*+b_^{60L{7PVRD&B)iLiVaGmgU*mco)+9H|!d7 zXyQ%^1hNMGlVRAem=;2I?RUfq$ALvzqmF|4$DzoLy1sgq_U_K<(Bt_KLCewZmS$dn zpd&JsY2T-hG}09{>Rb$0#DyX|lJ04p7!l{O6nm>}o-e}d)$C-w-(-HFPvf-Vl;N9S zma0tDtzPT+yr<1-ag9#I?zGsi?zxJy=(paazRu=%_o*W~A|dJ8Js~;RIbt5zTRUB~ zENsgAESnOY-_6&e4Cgbyk^E18KsBBs)Qd?2bcs4{m~)mV3nxswdZhIqQV2}lMad2M zzgDliUmm~jH~itKo%b0zl|9=ODA<=r8*1&5s&eo6SvZxI$rD4SEG(n=a_Ru3fK$4j$d}6l&Jj$Zw#? zxt6|(I{K5ZBN%*$;mWXSDtd9!bGg0LOkiHEyq`Lt@?9n)rGwQ%a3qs2$p-3v^pwYG z{)d+VF+Gc8zDEp3hxI*!>uH_b`-}pxf)ky3a_ZP6(JUeDQ&7OMq*w?k1#xxX470g0 zMkM-#u?YqAPdOzIPQqClyXk$6N~M%+Ts#@?v-u|%+!a{Js@ziV-_s>2^_^PvRj;|M zu9uXhm$kMs5}DMPJ>^a!)feOWzg_?_r?K4>IP`ogUtjPWvPjTp9rM~n{>n@t3zeZ6 zirEUId_Pit`v;O9o+1T>!Tm3_dyw)6aDHo33&aVg5z`j1*R&)I@v_Gvjhiq_`-%iB zpUq1px_)CLC65SP3U|dXF>dm)TD#K+|I(a}QWqEZx%v}l>@WN{iRB-sSKYKA!oq?^ z=mVjSjf?9yj}zoAi7@3>dyDY}37^Smwo(&6guySW0}B^s$z1;)&K^S|X$-MX(H1}4 z-HlC56YxG=z9hJP=|y)}WEKV&{*FZ{7REf1@g{@YDSw*-7bjP)+aH^J^s6v2)|SV? zILh*bBYQ)lae7D91R=f7$g)&j;y0&XKVa9VTV1Oa3n}RF$@`ukN;!l2Out$M^HxFs(&l)09qEm?%3L|7=7}WvZg_LL98T(xhZP+NM7gDn9UR z+q+|8wpc5kuPaDq+&lZ`gIGeA$CXSLU_3kSMd0z$zF2R1m%>8WC$rRI=QP!i6`fY4 zVf@+)Pu`cIxy?RNX?=bD*j0<5&+*dONc!vMN*P4ceO#=x-pGxj=r>U4LZx#w5G z?Pyj9lS*b9wNYMv#El?Um)V(dhpVDdKl%xReVB`+Q3&B(=QFE2n4LQY*z zdB|NfZVho5O(UKOBYHG#Mk6(m>K_CnXlYMhlD=ipoq^WR{B0kNpl+2WSshv7l7EeW z$D=^{C$zBA?5Z*Yaon9ZM4URCzCY2gi>seOF{wm@PDe7;-VZE#ADW{*BZE#Hihe+K zUpM4SEodQfU9?H$>YLSX)|jq}rL}Jxygk{A#v_jc1Q4=mTL8qr`l%d)+%&5HdZkhG zu)1!qc%l*|azsYnjk{Q)XJRL=V(&1`ZeEESA^I*lCZP9I<@7;P%Rg^sL!on%A+~g~K8g``xZSz&jl_7t3ltLB**cAi%I3;W;Rl&y@g zx~zzxiu)s|q9P-kJ$F{Xd}Jut2b|0<9I@;X*(RP)F?U3O^t_R;E@O;1KTXCt!y63x zRlvOf9@zO!?BX}7SIpep>Ts25z0V@jo-oi0oB@Il6;H1<$uSfC{}oRu?dwxQ8*-U0 z?u=J;K|Q0I1%BF)`5IpA}$?eAhAHny|8adGh(#(Ei;Dl1%e0I?K;Pe^#*+2^^QoDM9r6h?S3gg(Q? zd}?C@C$=~o0S}Wl8HCZdbs5 zAW?zxOA@Q zc?8#YW=#evQ}HdnM!~K5{#eR54efgwc2=#jcF)$Yg%zZgdM!9x)hv8_v!zq0^75YS z>n9!g4PhBzd(V1_d!Zzr#KF4QoHy;w7U8j(4FxjZhv&GiWF{vwz*{Hfw+juHl8yPA zY(wf0I9Jvbn)D6-@o+hq$&W?1R;^=iIsp*k2#%X1Qop&VT4G+-2JSTbA%CNT<;;(7dh;JO;J!L%)Kxct`l ztklhju^&?YTaE6H^BBlGaasO4fEkr4pi*xsE^;iu`_OQgz>{$5r1Zyr&kq! zFg*+*KgPigS6c#!=dt(MFN-*0rSEH$S4CA|$>H0Uym`8F(hC@6doX;dQgyI3+@97@ zxS>?Pz#v>j^k7gohs#&SXz2wEv7~Ea$nAFi{Gjs+f3e1^`O1CjX6K{0!1WTQ>v^w? z?>8xT!qeBkmz52@e#e(eUjO(rv0W)F^=LB82xJ5KkJUUrK*|t=F|CJVF@0DQb<|aw zSGK$xuJJL6bg<;Kz{sk!&YVuO=`*gUF2VR4ai6>1T}_(@qgMOKw}T%ioz=$c=sU&~ zodu6p2g)ekzcZ1HNTPzEFlWk_7;t(e%eUI zEf~wr06FPHH5BRcaKWJI1GOWm>nhv-wkkG8zCp*+vuJArE1k*j*+v;j)Jb+DFQ3LE z^*OoGZy`4xQktA1HyYTbj-Tj5V)wV;tZ11Ts>$+ISrHKw!u9Qb@NI0gPE*mJpI<=( zU8XS*89nsOjnZg~tf8rNmqdFz8c~xTG0a=W&!)5&b0P9z8)t_@%3r_o3;8D&Wl!{u zBty|&n>lbWHj9T(SJTk&xc!N!MGwx5J!fSWz+uQefa)YULEad0o1FKrC2P%^%8UI)otL{;@agoc$ z_Mu&g+l;q;?!in&q*QA|99|$9w(7;AYf;#qSVfECwB0zHB2h^7A>N~7QQ4;u=JkoL z$$0Z`u;bq=6zc&&|Go{MsUY&rzqIDTC2S^cM4Ku+lgEXs1K46K?Y{aB$_FI~s@;Wh z-D)y^JI|A)6A@px_{_H>RZ3-t#=_FFvW?EGgxWuhwgrJ+n8)(!TgljGbVI@neyf1m zd}%H5%;S>+-_h@@Md)Lnb28I`<&mN_=p_gjc0X*Jic`i53@I$6YdwVtIO}OwDilo* za~?5f+}6y|^SdnPm897LnaiqcksTf>5#qXz?vP35Z}~qD4BQg=1>_!9BT3RhhowbD zp~?0uVo-x4iHpZ~2CYP=>s!O~X988G%z?UqdbS~^1=`13yy#52ocl8xFf=$@EWe~A z9B)-h_mY)ZrEG;(L9LyAM*Mhps-#Nv#>J>Z^2^F+WVWf6=gByb6|~HH4YCjOX=Fe3 zOWXucgYuiPqm8>^u!7my!46PSk-~zU_{Y1SOn;wf{*j8yac9u4_Hd!GWV<@ReVuR9 z-{2{7I^oPb9TGT&-M_#N47@+v8p0kd~H2-8bLh6F>CzLoZJ*ct^6~fPs^jXHG;EWpjpt zEZXjQoBiq2rgAEpMU|^tpx~NEdfYGuj4s9Q3f)719z|$T!ep9ue z*4r1TS7ZAMgT1|1Yz$pD zs+GKse@Qhm{4mq~ZEmjh(r8JvT`W*xun1!%Ba@Km4qBmHo;oMm))t6|FP{F5i4ye= z=!-&9bzklFq4dq&Twm`DWeR9Ah>AbTVpFvgblHX!vI%#*#2k5T)fBL`aF#$kH?Q&5 zMaR7k6rJnv5dRE^8DhegwG_nBQ#{a==a8tb?wgFAG1H<1xxX{+Z9T3zj*pBS9ToVH z@T{Q3lURd7#)7tI6NQ{?X!db}lVV}1$&*n?NQNA<%akK7(5#VIH1Lj&OTm?xRnu2o z!c^~NoMfjJ{a3BZ7AMv>t(mKGK6GRHh21!{IT`9iwL$Eo_urUmVOP2fH-(Y%$ zG+nyRx%c+NTBM@VYYjo$xg}lSBHE?@E^C^}gh}S{PoGo`8?LwZ`li6EVYD=~FR&;H zNr}S9fwrm`*!Th!#-E-|Ct5H9*1ut1fPTPE1FNPz;PD#P??rS*-s!jLsawVyFA9LQ z@3^D@SqAiJ)OqZNJXEhXX1i$74E5Kd*`W7F^AP0KhSp2c@dnQ!pcadv`79L&&PsG3 zD0oVPEiJWTg<@waO?1kw`D#lWT~_}dj(}^KooxbWNNOtz!5Z|Jo85h^KuW;HrPlkA zXe85P|8(d`QHN5@uPs2(|2=4g0q(XCZl=?yGE!617>Z7uA?_`sq%@qHR{(@*i5~#@ z$C)D@n*T~csrCPP0R}78E@QwM34xaL6CBadTvEMtbkQXxZ1{w9Q(@5l^yO2lx4q4# zw-=JLn~-22!|gw~-g#(KYe}vwNozDtpS;+c*_$j25kdMqa-M!RYT6dlxFjmV-4-{J znQs#AJeu8je13v77;oAOmi|Rt?WCB>q}J&+I$SpEyhP6HtPs1WZM?j6dkKeCt72O& z3t?tJ9483O%j~xl&bF0=y&v)yL>N`Gj2qmXRJM#iCs3m68N7wh)!VE}^g2pO^=LHk z$CB>}c-g*g#2KL!ag0eXD@)O)#ux=eHZ6_4v(AC|1!=?E!1dP}4k@G;!I`}6689}v zZ;AFdHX4CmYl1(93xqdQ?gLJceh?osog69*uMB<|R`1Q*tqbzMIe%r%q*e2TN2Ff| zF0aV!sPo3`XAQTyTuie&b(iyETNNnO4NN8PES_fLLyXJqaW(gQhZ>}L=)RC~%q_9c z14Fo<riZ zV)b-C>%E(!s+r_22typsV+#82#WbgJm`aDfdg*)qlRD7P)3nZ+Hcr{B6CY1(20T00 z;!~To_|VBi7#|PTgF0s!{7rAspIg`KJL>qh-y*28&ldCT0l%*OO4tBu`P6!wsueuA#h=;Zqf&;jD7OI$alxrbxF&9jD;IZ#bsPCq;TBqhrjM;2Q8 zn)wKijyc=16+;j)mnTYvFRoKL@uaVvCbV+g&Gn&VyR}rd3=?@FycG`eNQ>piqwqDtC}TNGVRm1 zVLzd~iI1`IrIr@gFE~>eiK4gr#Bcg%9t^A{SxfNC3y6eB>Iutd)_k6KSCZ5_GW65< z*k%p%43TL!0qMx$9CV~_NLMx{okOHT=qMhZgkjo;MMWd+DhN4{*8e+9Qv+J zepU?*1XVAg)-!D?#prrA$pTxlhO4FdDd*+pSpZv5&U{NQR)a1puqRxPb74YEtm_!j zu44G1&1_gmOjCeb(7FOr@&PVY@r2X6jQ%$twl#gtH;bg zo`|G!h5b}CFgL*Q2nZAs{8cFzm}C4?n>bJ*{e^KOq;q~!(;i`Q0v z(4#jvFKTxpIQ zZzJ|zQlZh{;`Fqu(Int2(c_Oy>w(5Ke8#aD3Q?u+UyZt3^qPNoF*VYd<&v<iMO|OCXaP}BkRRmE;$XcJ~}b6wd*q+ ztyDjc{g@{)8j}qattXgz7r0F(D`K{55#}MiXV&8)bRXoewaFwTtG+p{wBSoKvcVgX z6^}8=E?@$A=2vVF$jG977;+&0ODf5rgyeYtuGXLF|8w5ga3Yb{p7S}i85TyQ%y{#K zOJtXcDAFFXKFy7#6jXYSU3vC;FZX$P4K?%8A{%9D$n+P& zd3&R0e%FJLtE(&A9+bgMhUSsI|I&it?Jan;6+kEHYRojM`*IjB=s1(1JtWaoGROHT zrN1F6kBf;&Ccu6=$PribdX^e!YZk#^R0D{hoyh5qFHMJM=bHrsM7Rk-w#jZ z=0iK+jHhD08#5G}zt*HsqAzM8bDL zcRfNDrUyyLVS;XzNe`9h1vrKK+kb&a;%?gC;u00 zI-9HoZNZl>Unp7;UVC#KrYj=q6Y9a)9T7~EKl7k_lgA?~wN|{i>Io*vX*Jv3vxk5z zGZ5s*KWhu73g`N8xe_AI@6^)>w+O$?4PEqp`}b^rY&cp9@hw)SG;Mb4i!=6%G(~zw zxv{f?6b=wDF@tl6%6;6Qi6eg@iDLUeU3aFoz<`sgtDtyQr^R{>A)#Wc{kT%`^3kyO zJ4aNnbEe^khmmi=H>jFg@bRGLLpXqLX_7JgG1A4AC`)%oO`R4YB?Ko)v1vj(r`L^^i zdKb$yHH`LI>NO#2p9)hWeA3FswT^Y<{`n&E)}Izn`>5~nuWGO(kkEKWM0G0ahV9!O(GtU*TACQgp4zklP93;&sK=e1VT z%4UptCE!Zh-BCI`w6r7w)_P#=+4zZ?RF|Hv?OQ-)9Xuc38H z5=AEU)J+BhXjhpK?y7@27M`!nl6I-Z3u$JQP<=XWm>{5jwiumg%75?M0omrXbwbDQ z?(i$0YfmM|gFZ#wnJR|L)IAEUl=1rA=hA*>jbvtU(~ zv^Sx6Q+a{H+T|n8hbH+7#TUjSdGCTWE5U?JX0@JE3xK=IVbWq>Jw@buBW&fQ`Mn{E z^9E3F4wI#Mdu}u|j{-=Np;L$VTPeO$9-8E)A3V=W@93ZSGmU!Rvo_>C69@fy4GTY{ z(P|O_Xo0c<5ovcyT+huHrqp{8-s?c`v!SYuAaacq%iswftJW;dIPjN$`Gr zTl<}7K~q}}!Q>qp5Ec<>A55turs_RGSHB>X)pPvX!CbpwtsJ4s#l_X>Ov}F%8m()u zQ(Y_+>~`C1Z`vD{K;H-`BXU_OE|1f!?~p^ujK8bJ!fp=M_Yl^7P{z9h7=|AMkv@Gm z?X4Y*eE9;K3O_g!d>h$@-4S@J1KsCgsRfr53<2_I0@>B{iF){e?7BApn_QAO-x}tV z%V^71tHmnQ7w5Q_O$)7$xl%oT>u+A1w>a!z@qx9SCvJ!xiG5Yo>P6OqvFH0oKZd2S z+N3REMRsJhKpfb=i!1(HAPVX~2!G2yjXKJ>qIuYZIowHI<96huL>J;7U&*VDPfctv zSVUFEuJ7|em8ishQRsC7u!%~HR{Vd{q$S}Ls=w20m8#yuP%GB@HKhCfq>sY1%x3ro z(*;&q#pFp!N_x2B{{$vCofC_Jsosr-fo2b%GxAg)%VDjeZ4cNoP*TEBh*s3CpcD+? znv8C&&M75|n#ZwAAVN^S{gRF=!c}6BrcU0Emtc-VeO&$t8g#NQt*$EOc|#s$QEC+V zmCI$d*{~%!Kjz=c@xdpJiumlCuwS*>6dP(mD2HtSQbFYEynjR(P%;ck*^%_o5Zlp@ zp{h9-WS_%JPa~Z{issjVyTg95rO9;o%c>Jl4}gsvaK=Co`3I5ZA0?q_5>W1^%Q)hT z4W1k5n$_r^C^V;Iqsh>TD z#Tq8AvLpi{jUQtcaMslulap=eBWOvhoU`59E_F;QoHg^CPN7@wICYvU6?#ABKIk1a zz*XkNTRmmK;GAKZL3^2 zO1Z+ZW?>_%CW>}ICI194y~e(acId`)L`?mHC(NA#ir2h?3uK$!boc3Rd6U!p@l-G1 z%o*0;-osFN?6QwAzJde@-Wu?gL!4)eWOF{<-ynKttrQjenA0p|v7=*RDva7qLRmcH z$VE>8+ro5Sx;rshn#;d+5{#~!`4mX>9Tw*DEOxSC_JXg4s*Ip=)2nI{-DBCyt-ni3 zU#~6JElkf&0VagPV4dnvuppzRMrx)Gn{fn>E}#J&rtQA` z$Ocv#qz7*>xxC@S$tm)gHH``ZtAQn;lTc9*g!c7E)Az{Gnhrm9-Cu83VdQ8^c8e`r zQLue(RZFeu&(exR+ThSxCK!162g!*UV76aXnU*`__bJD-vn!;skK z`s)1%{xX5I`g6rQf*icrj6vxM*Mjf?Xs~IA`VgA7z02}p;Sx0HCmwk0#mx5?5Qpn8 z_UZw3>S2=rc+}$W1In#3?kHO5)`??R%W{~^&oaK=(<~lSajpZ+CRr%8Hbfbh1IY#_ zkQXoX<|(~0gfxh%oA5enO4ge6iWC-W40Z+o*<%>+f9{BZidF-Za1pQd= zLs5)8|1TGi|5{|HQCg2vW2XP2e7cHC1rW7_oH`!U5!6WGF}zU^YaE8rAE_V~(7+R^&wb@VS% zF7aW3P0IU3u2f=L)$kgR>%BFp7dmBH>Nmnbt@OoM52lSTWKkK=gWO$~j|y;2<1;Ad z0GJ|^aP;`C!{f^O6>&y*poZgH;N-WRZ1I=}J1uy_Co0{`I&`yZ1=eXXNrm|x<|(5| z#XQu|ge@HghycWHf4uC4jAQraD_2*l|CLD%KMV~wHBP|H*AcbTe3!*&AtQR-@b2*m zSV>+!r_bq&h6?})lp1n;7iVSQCn7AVUU@`Gf9}Zz$vi}j8g!Cun_s1BkKQvXT;~SQ zL&U6g_FL_xP9$8Za_L-)=&fgl3QN2)>g|!n11o{<=2vZPsX2HhLEZ~s<@xpnvP6C5 zG*Wjzu>F33v)b$8ZWLtLOoA0gM3R2YPH=Otw;1vLVYB}U9@A6ttpf$^0*JVbMZYSu znH}|^Pldw1wX`;V`OM98GwSAhqcDk1kw0Z^yB#gVo2doO=w+A|Xh?C5IJU6S44Iyq zj-qW7HQTyB(r&zkZ3EygwUUS6CkG^Yo^HYVNp3g*PNwP8R<|(x@+B3l|G(|4&A<## zx{YE!biZZSKn-I4;OXu%IVYj9!p+KeR-WZwfwsEL*8!!KE(lUSV@^*&MN3#H6)B%eqJAPQQW5Ap?IE>eEmYc zEO^x8MI)14bn@@5sLVKXO1#hf%VafiH5lv7n0~P2S9)@2Vs#Qyt&GKPQc;=e6t#W zjp#zUEwZB)7ygp7N<55f<@K*9(kMS}64>%Z zlueg>PLkG9hq5?oc*fuF$RxO$_w3;Dk1N2QCbSmTM@L6HOn?ivG1E0wRaL9?CTJcZ z=eO5qJCJ<=LDSYeA#P^oGWSNYcuMg^sKBN+Yq{iUK^Sh(!+dk@Y4K9M)r)6NXzn*x zH^2kOq#_8;3_plePo#4^2Kax@V#PwMM zs?OJyzzm37UTy7>`xX!J<*D?dTY9Frho`sa8Iws{sR-lt$^SoPxaK3nCnv`vqRj45 zavjSaP<>|Ffi+Sj@>P&-Q`&4?6LxWP`yw|A5_r}E_~hWMK0j_$_#&jm^LAxlz=iE} z2fy-ES8N=aqS^OMC0nGq&XRjvC?;e1+QCPvM{5>jYa1~OOhN%hypobquW0(4oyeG& z7T?=Z0M}t-KNbJr+Naam33eU?!nKGUh&{w&HXCoIuUw~$fZ*KY*AMNhh{Qy7j;*gz ze7cta3M2bmCZ1#+9@28U0iftZ-nBCen)7En)QyKr{wM2Jwt82CO@aVj~SPA3(t~d}Rn9ZGQov^%kXlq!u91;ZoplIQ&*{msclm z;mHZEqsKv~%PO=-QmtS2&D%fv&;Z{}e>Mk%q`Rur*TdCd5(EOiKWnSrG-sZ)SZrU9 zm{{&%mFkbl%gY1epZNHAVpX?pJ@e85fIx8V{~28pkv9S$6KWz<@>?jzWv0a+F=Ov% zIy>K;W$Vp-`a9qf$oyZjb6^0B$E?Q#HVgl+ccxV3IKg1hqIvdl<57)&gfGF^yPz8k zi_=rsK97|GfKqH!zjh$H=y!;#TL9Dl-4yu*MFbxKQ>`g*Hv7_*3PB|T0y!E@7C-;| z9*DJZL4Y*zgWo6*5Gm95X-4SeMLB488|=3NNWlTj8wV7f6Z`~vXxia=yIID2)o^pJ z&!zCW^^&qzU?B{1kH%3oUCid!srK615fPg~RCUMJAWOD>i{oxwW0JmAGK zCoAt^;&WblB53MP!q-Y$t>VOviUABIhwi&EHC0U*j*_V)Q50V=3_ z4-)+Rh4?@cFu%el96i?Hcpn{@t|5(PC_h*c=bUc}%+tMN8<3;fhI=gFlUz;bnTyiZ z@>8^|1RvwP5Ywq#{ym;sRW>-4)EnozeUJkUisyHlcXo7avmc@QX#prU>DLve)p0W> zwug4^L5B72vtrLr0nO~^d%gKH5y>K@n_oM0xEc~~?00^KK)sJTBa|J}~CZ9OoOUsU#Hr4w< zSioIAX;V=1g8pEoJ0I9}Sa_Pi!#kC1v1rU`zyeM>omo;gtan%_#KjY17+l1m`hqPV{>G)Wch>La^!#Q22&|{5{dj{@A$$UZ-pvXvT@S*4uFD999mRo=H&G&K8N&>tGOs8dQ7|4P8>{~MBU(*^7YwV>X+ zd8L@K96_*-3{dc7)V+TloskN^>8uvcLfG>&D5kQ#JbCGJIi2o~DjD%3>D0CLs?qV+ zGhcPRi^@gsozaY_S=w++4fsJ%xU+2!;43q|TwfHw`HaUp82{%rks@cI=iY*> z6N!{b+w?(Pn+ybkLBTzIc^UyZzB$cF^`13ki^M)r8ktfcWX#0MAv8LJH1_> ze;}+jr77NecmQPga?1k^vr9e$^UzPXZaC-^0}m9<}P zv5jJ5FwlwE)N()eWsa-WzThxvu%G*F${lD+eBnA{#P@fyOnoq^9p$Y*!VwsIG-(am z$QnnXHs3c5tG-fV~wf7(|P|RvFF8Ku;NTwTT%5C@0h+R_ms{) zKq8np?`M%eg7W=24?jOJ*T9$$I9*XOv5p@p{~F?dQC{-JHam;Npsx-XXblk@R}1at z8#8}{Q%uY$?}McfqqN(hvW^e1YoWas-(8;~dBF5`v+q8Z4mW7-wWH3a=>B@&0bHSc1fPg9 zE@zzpq`U$RLZt&H26$-fQ#rJOVFy~<`xZ!I5d9V|4)zNtze3QmmJ z9Eqi4n{;u@x;RBhzY;e!kv_wzHChH{&l(6vZ0GaskgVo)+Q^76pK8li*xpkaelU7h zw-if(L?t0ZsNBsWDHCEXxv`9`Su851-E2jP z*Q)&nwm-Z6B>I^q;Nm!?n2|>Dx#_33f-z z-ngN*a#h?{pW|M;o=j?MA@*S9vC{Hs#>#1h)mNGMQ^{@K+dbvZe z7PjiqzuAU}2zxSVCr=WS=@!FA=aa2E6X5qKR+an!!U{7zz?%&PKNPbso~--a{a-KO z#rZyay!i%arf~CU{-ojB&~^{F7J!2EqAQn9hsH(Gb-qZ^1#H$Tlj%^?H|)=04)|#; zz80ITckSumPhTH~_k)zi(ceQh{qh=0%mbcLieCr*ihB9gTI3}Lo>bx~e+vDotc&Ao z*G-zuK1KBtqOo2g0Wv8HLNaa+4(E#n@&33Q*8PVND-gB><{gmv1v>&=l;6QIWulqY z6hnNqQ8Q?Oqa6q;XqmA;Fpbh)xe-?Zl`R4p>?G`3$)^La-+9N6|5Yb$q^~J5{cLCG zat}tPwXIGjyTP4gFre=Q`xo|^rfAGRw`#1+oEgn-{Q$fT|Ez{wTm43_%Fr{LvQYp? zqaO{QzHzp+Os-8#+#^s`rMkY8@1+B#nSWUR`aE1FggvPF%{fCHTcU%I#AT;Qnj~B77m!?9&*Lr>B`Z_38o#VK3zCBdZh$t#ubA|W~SDFrMp3IOP1&@Kciv}|hi zpD8tw*2p%A?&Y)ZO(4ji3u{a|rL&ax9rWARVNcpGW2520+nt^%eh>8T@l-3UQT-qc zWhEtzLpHC>Js3E`7mHFTOf7tbF)n5E+O7HrFmfs2JpC@9#y&+sPx^8N32`9&7WC&` zGiLtQx{wo{eDLFw>+$|T;#um!=p8=)yylY7uux#we>6utxcLWyw?vh|`@4c~=3vr3 z?I|yR!Z#*`+$%+2f?S{O)L6GmR;`-O=rm4jVAw;!bAvP7_@RsE#5f^#q`SL8kWLkm?vPNBZjf$JN$GAxy1QO_7RH|ao!^|9IoFx%?7zJB zcEbzL{j7VfPpx;EG&PxtYhIY-l!RWSRL`MiAaS^Dq4)|5N2HUA_^NKbn{uWyF^y`k zt5Xf{zGIc|%YAe^VeaK}N42~uD+)n+b3TBT~< zV>0X*6IZ4a6xm+b3~Nr@+`I`rV_o=s%ktA%qs*4k!A{5pILLCe4)`8JhP?DT$~%}S z*I%Hbt4fkd1x7{+jVwECU6Or)4|_Cp{#E;51j653&8bTt#+T1D<-0yn<7&UO!_J~R zYDeC;Q(y6+2-^!gO&#t@`otF)wnmNx z5+g-5_)BfToI$wimp}a{^{v4ie#5nd8w=cU^zSfn+a}Rr7_WsB@~}xpus?v)*H> zI)vYsGjv4lrCPj&WpWBlt>evoI=a2nh#)W zk2kF5FupNe$Q+mYvg~Ux^{1!wkCuWi>TQ+?!+{XIZdrgVU>m|USISqkN(DGVH_|f-Vrd1 z&^-L_=ZGEe5o5gyN;8P!K#oebG!NbxTj0naEwMb^G>49=nLTu?M&TDkB?S5|>Tr6$ zg-XZe4k>+9sfPq-sy%|;1|enj!+qZ$eQ#|QBG8Z~z!YLE+LL>7Noe-YZZ$}HZr^7r zkS=5e%eGF1wb#MKEAqi%J9Aa@@fu_dw1ikzD+*b`{Gdstn;M!mQ~r!jHc{WScFk94Ey4J*-t zi3R5qbHXF^t#Yn!Y}lk763rhuaqv89njb3;-iM}T-DbqO;h^HzX$r4GiOVewbH06* zuv*;7gd983Bs_RSdN;5@(-p@v2JF_shBJ;*czxm$p%bwUc_N;9>r|JQz>1xp8ZCd(_~b%$EYuP$>aX0jg0!>V>%2WlP!Vbz$$vvW|A)$!xmpPt9BG6IeS;vKr5rqnVf8TkX!F#l*9HnTlUSLJUSB1=&6z z)V@a(nH^zcO}&_G4IUYV-K`>YU=V|!P2 zA#kKk*goc~pe;e$CtG8*kPsMy)e)m+R$s{t#E4HwW<^0&Q_3u^_e-7(qT?i}vk>tk-nn>yAO zYdzjVvDTH6Z{)+sSyU8F4WfL4`GL(*5PE}9v0A_bzOUXyFn1q|9iS~L_S`irmd`rj z1*0c~@KB~8F`N%YXlUJM_gowv{{HjgmH#jCORq0RodeZiZ@hH*&lmsy=?gN6@-Nac zGHybr*HgN=v2zO>J;}Jq4mOT#~1|ZD?3+mm}2V`WnYXkG$)8r;EotzvW z8?D?WBn%n^h|XvuUnG}&!@#(( z$b3vA-y>*lz%1KK_mSi7-Md7@d1tzVB(w`ZphTHJ}Mo8|*WA(dW=AY98(YZ!hx&$#Vxj3H0%?Q(a0*T|J}FYX0KpfRBbo`Or5q z%U0^wFEBCw;`wI^#OEE)4bY9GQI;dOJ54zWNg{{D6dxSKE?5W<(e3pJ2s*)KHsFsz zbvhK^UYVUKGVa$|KYb=#UTFB7QttDsD8xp>z05qJTWnbL8aAMgysf6@yuX5tfsv$S zoe>IAM9vOQuE$Yq&W(C){xUB%w&%sL+rwl~9gp@?vfiPd7Jsr1px3NsWoC|04UEXN z3;y-ixglj=SpEPCKhOdqa4>gRSof+ORsmc;*fyjL;Bh_NL5OHA%8>P^x`X0#v2RbT zzF}*7<~z633`4S}h?PVhp&K@(4p~ZIgnYuYBRhkZ@QiZZ>me!A)6@CKA{dQC-cy4B zHk7xuZ+;tGM{~obmAT6ct;BmubLz;Au70q<;30LqKs0a8cRr(%r#f3vei3-z0H|d- z^KzBzzuvxuv@b}XJBDlOM8<^6A;bov)1oPxNjA1i5ngRZEn;n)=4Z`Nnmb#sFKXenzZ(f2MOFf%oXndId#m zt;6KvqIzyN{)orB^8!l3Y*K!suI}A&%wc~+eIuQ64Icf7?FwCLmBWE(@obz1PbU6v zRw@3{<eKoFKTHDHKF)(Y&%c?KeB$7JWG{DG4i$Y;=UGAQu?G1M9t>_g6HsqY`;& z*6_?_zj5p?kAQCZ2bbe5!XYx5L-0Aqc~wc7mz(_gO&NZb{j?ZcWHf+S$Pa^b7Vv?75ga6kA`BOLALH`aXqh(6wJPT3D5qJudSOq6lmj(jyT3srn>$jx zTq;E)@Qs=m@fQn-7=i@7s57wnH`gU<#o|G1m1$p*Egbt%n+263;mHiyMiF=QiKD?s z)jxRLriu*fEoWpf4afv2hgyHE<&nIE`A)$TNg-Xv@Sw#uLyZz!sZs&;K+*5`;El&K zIn~?|zCVQ>9hXbpQjCA%Atj{a#NaB$w&wb4YpM@?cF z{VbA|pY-mL`4o{PKR%mtiP;pL+C+o>3em6nlX6?*viQWsHz{hx=nZDKb zb-Ev|oebtpK&j)iO$4vNj=F2pE%fvMMfyUys~czwe!Z67dR$k3 z5xD2~BK804OvBd~mFD&Q0~tBoY3q{6ogO}nPfQ|PPRzem%!8XY$yfRP;11#X^!`l$ zvJ~mFq@n%%gYCKed^$6DUrsJ87Uu4({Q7~=PK=D5QDkgvc7PM*u6FrR<7#SbEDdgt z##^Y#Hk*@mUgfnXKbjNVR#hIcOa%D&C|B9YPyFCs<9$)?JRz`~BTf2lrbD03l^2o+ zpXtW1S_Qj36|9lmDOqo2H{egb6nQw%fN@Mn#)EuIwcz+=d@kdFLeFCd3~Z~_#*YIz zsNvC?B7!LuydN$~4aN^=N5yE-)5Wcf2VL zv1orGVLY1YguauM7OVmDkVGQjhuN5yr&-JQsxypJ(FeU@cW0-bi;&lCXKOFO*OyAY zg;nSlGoy47`QC{$n6!5q+WL0jg|r}ui)tcq=h@7#jxhPiRngh9MA+EiE|40vFIbyX z#AW+nZ_IP!0GYRm+zrk5@HtbK=)Z} zG8xPs7Pr&hW2nA3O#18I6n&hLbAgb@nu~|WttC0%WD&<=yr$Bm{hF1wp5L4VRX9E8 z@658u;?hcZehVSb4tJIUO9!&Yy@M$)eTLR!;^MP$b&IK87}#6FORCqWd}Y8uv_E-L znVsX8kuwz}F=`^0H(rLI;w+Zxz;q&;n z@lb;TaUajN`8=aw(!H`Z^ZjINH#VO7!aen}INhC%8SRjQrPGs`wt&a&X>QWC;yICpEP@TDmSJ z)xe8sy-6*zJWc-E^=N0P*3db~;v<>000Vmb(++zY3E&u#$FP2o}{4n1dV zbaa2FvP9e#9f{6Rv(?Gr&I=IX9^JKV{g6+MMQzb9D> z8LU@u=>~K8VbPMf!4NOz(HMxZ2bA!5X>M&8coQo|hMq<6LVzv3$=!rEEd&)l$Nfz9`w^I5X!_`n{l>+vS;-P@`s=meZjQ8hJ*pVTYD zX{`$qx!ruPumK@(`SRuN(3{hO(a|x9nhQ@m?z8g~#`E6hTZ(j}avCmNRK+>FyCc3_ z=|iu%`2O<%GiyjsNAnN`*yAYMv>>?-fH>FN|Ek<6v2s^`Mnx$dx5b_0Ri3hGa=bil z))0xdL}LRsz<72@yb22q&F7P9zKimvDPpt~VQgZsG(Byor>6wzJq?bf4 z2_PG^;v80#JIZCK@l^?i3Iz(-?e4n2-6JCRThyMM1kdc3X$aQ|ryGGz(a#ayu(yL> zJD=(3PK*v=HZ6B`F&xX8&bv>fHK$)W6N=73GI4z@TT^w@?KEB|F{Q{az^8#R5Yyns z&6|#Ar`7-U*%#_F^I`7nZHA>eI3LY@4;zJ;w&|wV2zj1T_S1FpYe_A>T*iQ*Q)TI| zt}+?OWv{K2BZrc3QD=SyNeA2x-q9x~A?}y6o>I4n7_ZPx#sKNRrO>!MIMXp0;FlFC0- zs3qd)X{VyBG=q$aDxrO?Dwfw>W6@bS-ZsVXmm1BRVmx^d?`PoZD2ZR9^*!KXadB-| z4{5DR4J|c!vz}g+5I^OxWj#+i@r9(5Z)TvvQ7tw&*Nl?Qehk~Bte=Lt7r><;M{8>8 z^mKxWa%aNmJqe?sKHQgheR--?LuVE=Z;$;)ENg4HXDK1Yw%XyK)|4ItgLjhr8@n3` zR}dbjaaW!z+WGWc&s%h{w>6@e(|YB>QV-~Nb^EKGZ1{-ijdcTNTp;onvQf=O*Jc)H z$5UjT1)K@WK9SI32g;ASXVAhRLyY1#*c2FV@*_Kcr_je-iP`15wchxL=_Wm?ANk^6 zmOo4j5@UJMYhW)+$%qmOJhUWsC1 zYNIFMP-0&F@jH1#TRX(Pqm6RQT54Rqz^wnvMOW+j!--XI$XTm$+7&#N2c<|4ePVI4 zixh)f?&#-ot3uYP2_IQQM*Xpc$#gD&1BSBoommVJU3^hS`tn9#(+81amYt7rcfzz{&RVe{A0LD~N zUS^NC{B_$MB0O$Rf{pPyx=fKYxYJV8Np1#h_3vgBoX^vD*x~Q2pOLjG(o<&{NEjg3C0(ri+az}f zMV2%XLD0ndxcg9V>-_3yDY&0(m;20Cx}F?vDr9S%fj6V7S=&G*$*CXMHlvQ|b;8f< zKPPYM3Y|Dk_5fJ&JbJ!u_%ok6AlovBPG>x8rC0rqcGfhKKSyw(ty+Q-wBcnFU<0(S zGFjtHgy^6#+k;GRL4g)b9a2Yf1>qkD9aUg%cgdXyWnY$|xdS0zr46DC8x66d8!##gUhs{=w$GYCudBpTgbH{PyB`oLqNr8uXnB{g%4{Fvo)DYe5~ z*`({^uvck4`@w%t)lR}=2d&z^HXJlu9|q-0gI%mvYy}F<0We8}1=>&4%xvYn^M+9r znkoVU<{(z$vE}$z6reoO=Cnf9LWu>zHyULwU{sz2%Cu;-MptoD$8(n{buy|s zNTVQCoN*mh!SZ|MZqU$69F5zAyQfpLxAzIFYNzhIB9siokb5ceH2DN|Wh%Ogwh|W%qggS z*PzF2Rmg3Ru0vt|CqS4rgN_{l;iBGy9^B1k=yf1js<42nNOxYNeh~zp=?f&moga8I zKnJH22Llnb^Ldc*@OFNYdH!Rq!*H&+an%>Ai%oM9jL(dehJv+q6BBiV&#W-DM(1p? zsKaAxjf_VJXh(}I4k&(FmByW1KN+zHlL{z;AtzU@)G0dceb9g%RQBan@O;L+GNN@2 z2y)lTQpk~sy10IL;PjqOSxz+R{2da+$(_H;%|*$?Mtp zw#D+$ku<(p9&J3NN5X0e(Y#DC!9BtH_5|@b zC88~p3>h*q{h6AV>!&0AV);+%kHGKicK|Z~N#U=MroDN%(TyQodwp+hsLX9P`KE3c z`sVQOxMM;<;*KJBU7hVUOSPFFf;p~{oMLJWlEXd=@@rP{*vx=l%F}cpJw}aF;HnJD zx?;7<0p7BN_B*w5YtOe;;XP|jw93e}uf(s?V1Rt)nCJQG$7Jtj2hG|xPbATrpk&Li z+&?$sPH5%@f1QU+dXP_4p9exm_X;d~BSZjs(^F zZG4Iu7AolMP}!?=k60Z}*3_@O$z2L1(@&{@JsDGv1TXN4Dd7l_-M{Dtdcmv6N;Fqtj z_>E)78&va3mo72r&j`;ps%gzJ8NRr@Is1myztb4Aw`d0EXsk1-0E44es+~dlu zC&O=48)<_=t{w&Wfy7w~P3I#-vH7@+xX=Iyv^8?3A;UIN0p&d%r>ZIrGfUgyxiIZK z*);V!x2r)0iWumht@k%pCi2KNgaibVhADpdI)W512MLP>s5cl0t%BEY1ze$~i)LkI z5)~F6$~U!43tZirZO6dE-on33Z3w7YiQOG!nAh*&J+&OHo2QZ&l8JLu?J zrzg&ot8QbVk6gbcT>P(dqGj0MyVfQw^TG$(*qb`{bfUNfKHM|2h}+)O6;PMsDaGxV z?!TQl;&Un6cy9$1*exTY`f_mv&cBjG`LO!69yDIMN>kr%X_WMXC{%hp?^6!!J<3XwL;2)UP zNo4iW7yQvu^(q@Os!~QqMkwv+cD^q?fQaTdmu-uDY)Oz@1KK0)^W85wDuoxLrDWbc zaY3@$%-r6ME}Ykm8*34zHz~AV`{52*ov~e?GnnVVK~UD~4B<2$uOI$^br_h|t>JVj zhZ#WOi75BFK_b@J+l+KGKU^t~hQuz;J_87?e8XX0Xb=FmCGP&@<)zZ8!t$4t9T#e? zwjsOSs@L%3ou{9uwaC3?h(h|v;d(26ykz{QRW)o%2;IW_3A*z09U+7)Of2=EuUxxY zY-bktlv7$yaL;1sQ*Jm1nXf87ryY$aZXf}-N>9b-a64X$?=d>}22eB$?khi@M=;`s z@2g{MaLkuU3pY&qy>H;?3$Ky*S5L8iiCa&K7n2==Ybe|V9>j7O-`4BgoFT&TWjo4hxW@`eoH9nWje$nA|mPgVCM2G4DZL@f_zKxTyi-bW0L5% zVoL~M10b9M5JeQ9oU-|;276n~BhyjVKu{$#EN6r@l~*_qQDuFF)Lft;Ss`$-UMt(8 zZe-R8m-)0tuVE!x7Nv&202Ugd5DeXxCOms6ad*3`UtR5%`9Fg$i&aY-fF6(&hvbD4 zzAQ7=SZ=sahcHgeHqgbIs#usADF-(SEb34|9Q{mt!uv9nqd0SQC_f42{Frr%iJEG@ zYL#fFMSudQBeN<0nT6+75UP<|`n+Xa;w~o-W#h(_Ti*A!>Yx6dhwlncJmhx%J(ev# z^hjG??duHq;NweyKBpL8>Cuv=a!0^TPzO_z8C?pMfY}>4GVGcBu zB*8ejrf@cvXjjxWVfH0Y1ya&y2Xjh@VkdJi452+N8l#K>dF0cB z$d~DWDv+SH5rqre9DrWBkgzO~uQ%yf!*FDzg0`&}2wrAUQ zE#hPkFY?sGbja6WdWd6lx=fQ*-@tnXHH04$!N}W4TA>ah4a=C0HG)na=*LcSB zO*;oxpF@V2EBakMuxy>rM(;o>tX6B4Wu{z-l{HAn>9#bLl6CQ-oT0Iwf#C*kiyMfzSLAqkEhEaWqfwb5|sCemd~H6p0wmk0AK_2q|}hh`Ap znL)9^#L`CMdKso}Wd%#d^<%LTkhMD7cB-V>M6RR~;?ND!D=`qy+q>y)1}zI5=6U{l zUOf_xeVt3I(}Pv=LRVVctnRb{Us+5hqSS<(@4BJlI6SS+r zISI?pP|c}Tk~bo<1|c^W21(izS&-vGyXyu?cHi4SyUxc!(j4TivAD1KznrIs(RXou zeeIUReIxnwPa|n<;u4iMOP>a=!di=Se`vB3H~UOO>*-}Lzd_*+nA9VBC|J0d*k*Qj z7JFA$R^ay=^j}7GO5NHg(_R`^pA$a%Oufy>Kw<5L;f6OfipBMEY@;St?j7;`+zbOBBoI_y1<4eVJWe|Z zusK5H0j<&(nYKL|1p6Efz@CGIJT5O@?$c;?5cqBF-)@d(7IJy|CM~TrAfTA5wr#x5 z6oj(KbM5?nn6e-a$>6vg$!fBa9Nqg6P+tg~Y=SLe&U&o|J*o13kXe^7rUH>X;yZhL z0v}5t#@4$Sq8lmN5=AyQH`!m#l)27p3}h>t4rb=2rKMHOz)pz7_LQ0rqxUg)Fk9*6 zGn0)TxY^d&B|*hyV+j_Kv>f&=4!|3zeYx)j+&MrbFs0`xms&Lqpq>j;ipPHB`d50* z$39MIk751B6w=?o1O&zA)@FMQnO{Nzu^X-I2=*$!K}Rs((^s7_kB}RgpS?p-8cA%R zX1E*~WTrV#(-vvYnNlPyjBo&U*SI&;*tHZYd7(kON&h$Emk+rq1DG1B21jc;kNZMk zDE~H3e|$flX!@29#$PNT)eyo^;yD-xzfHV}WiyCjXJyQKz0>ZdM&IL3`|ed8&LNH#m7 zxX;GoaYWx2d}KGQ`JGqz^umuK{ifcu&PyI~=Uq%f))An^5YO_dLXX~3vxwb(O$~12 zKTD|I+Oaqc?ge=t zmcqTgzy(?*p6Uu>fp{)gi|(n}9DG$ZTgVM1Nz~tdXcX)99)h*3ygI6(RA`ws`QwdL z8kX+5o0U5(!cLFHlj}jBJ{t7^kr;ejs3)>oUdD6!I!C2g6bOgq`DOJAJ!#4Se>$~J zMkfauJv~HXgY}{3|713gJt@;jK2!NsF(^K!uwH<2S8=}dCv56b;$Tw{;U)=Ks%~fr z=fIvZx&v1Y2n)J04iRDH`!o3`pcRrP!sjv*FQxk^g;u@3^`fmgLB|*&T$~vpjThh( z&|nDdcHsRXPfu_;VMt3ox}dABGy>_1~$5Oxt@d!>?DBr#biZY6^a3@;cfpcP;uJ*MD9KTU3TbJe^FJ+AP?#$6~bN z?M`7lrTExhQqD-=P~iS}iSGUexGmi_vvRhc4nVDV`_7ZNa5$2NIP&M*n*2ZwiUxwJ zQz`E6oSu}ZE2nrugDAIVCkr)=4GJQBY7LgR`aFu6Q^!-15d~nDzI;i$H;~J~(&qct zzlW}e-he`8NK|I7AKLXR-M>6u`~O z{s2;vPwQc+9V(ET2;Qu7KNh8E(?!HEzavL!a<;Ue%Noekp60s@E`T^wOw14ViVA07 z|Bur+kANTy$n@VoZOA+WUNeervo<;erZaS-*Olc}lRV<}nKtaA?WCDZR}XePQR*5dU% zL6DY!er0iy)MW14EcM`0e+F5Kr>8(oS63IN!Iw$^$s$f)hc;k%#4qE}hVms*#4tMB zU5-Wf>3l;rTRbtbc72az{BQF~Qyj#%G*q)Xl|n6D4uUI4Xm}bTJGMIf+o*#PR{Q*g zKpcPHSmD_ngUa8#Ebd$-(^socyAzbhp&1WW=dwb~)FdaD`Lz=q5QN@DJ>SCPacJv@ zb2Mrj0hgMnJ@;#fh-H@aFp2=5=i_5{Oe8o!dAilIi5;wPuDzUoyZ|{o=u`g`I>+F3SK2Yi{?gh04}Z_J)EfsJ}%jmERfk8R|iB@KV5;+QOrN|T$J=1R6HCc815b{jie z(youaqH#lW999=+b5tH;fya+YPs%-cO~p2rs7O^sC0q_W9t5-B$r+N$0-|#Ev@|3w zHKjA#gNf_Fe*(E!nkj;=JNQ28hv-3Q{tZ;nI}Ru9=hfOQo&aE-j^0Ynb%Z$dkts*W z+u%OZcsm3)91uCT@!5G^G&c*jkG!pN$S{j=j_x@#jbKy8%Y&STb2rct(j$_jM2I7h z21XFcop3L&r}IO`^BfaSyOplPwY}BRdwp3Ei-g>RS#mkULgtq`^u@?Kc z#LMtpd70*B5l#r2FSOAbr|rq#bTg(Ly)-h`ZHoUsee<{=Hb9YVMVLJU10=sZJG2ib zK})+EI|NKF{s5Bp42~oPDTPrM+gA@D4P&k1AV>2oKdy@6(XTqTu(2tEg$UVXkNjc) z*hxe{>-Au^d1sL~8N|f3HfFKkgcw9AF7P6|{rJa;A}m_@Kc}O2+y2tguSLG}qTI8e zz59r!P@eb%eE`HM@X|^jop7bw+h~g|Rv!Lqgs2cvy>MCs%ME9imun#fdhs4n7-z{M zi~A4p1CAM+S1~Wc=FIbZ4sA`v&V)w;$1Cht`%>kRMXZEUa6VS3o=g;{iJ*`pij*Q8gh={v4s$PZ$#m9wg zrVT~;lZiF5^&z4vNG}=hPCJF1n*OpLChlxnUi+zeJ&1p1c`(gu$6N}xGAXcBh^-QVs>8jIoA6Ve`W{eAA2n)%+2C}TDKRt4{#Mm` z_bmL20-uY`_4%y^COK68UvK07zhnmq9=WjMGQHMRFG);HPj=`=L$jsdk*ruLsQ>5l zxqX(qs+ByUR=)knY)C3`ef66s@?8ys-+ROp32Aj9As(@b(Yt>8&FhAZUu%Sv zu`SKc>g(uCO;7h`%2QKQXF<3eF&P1m%Uxzpc6L;J4opUL$Ge3I=+4`7?N-x`#FD3n z%X!UV*Kgeqe((QkBv}L_S+-t`=6*glM%wd_6{dr9dUNnNKf;f86Z_E&uxP|%Byy%T z_h11PZ~&h^5kW@Q4!=}9v*E26FMF|Yiq}=+1^QzA!}r;(wQTV@Y#`|gakRf4k{;p= zyDYrcY*vQA*@O0#4OTlFxjcFD1jK`o1nDD18_90a7G*JB@%Jg_9a>yOEOaN`h=h*O zq<4I5Y=hbIN0o3KtgRNV^7htm3193<5!+vbQW0x6`R(czF@7~mOUoMk76L14&Jp&PC!j34$=^xe3jGep7gOHRl^oj5C zTSK&0rhVzJ9q)X5G;t1jn^dJwv=}Oru3fu!&0@GfKt{nH?VTSst#4#fF{u#5D>|`= z4g}yq>Z9Rp4Zk16xzkrexu){t;|blSl)gkzD|T69HZs=!5y?OfupKJHn|L-w<@P$S z+abgt|BfeqcI}FaIOF5TLRTgZ{r+MBu2|noG^!y^bv=&77`;G0RXn=Ha$@c0PogwU z5!|@VVKTAEPhAz36FmJp$R#Bu&Cy=B@V}W_1#bFcQA=SohQb^gBtBYXEGrI+!tB7L zS5$NF{(b+kz|g#;Y~E=QRDC5`2h3pQEok3RI@xg>p4r*-qIRAk5l`j(mqcnMKp2Nd)YeNb#vZ`mxk}S!x-sCf#aKEA^HSZ7;7r+I-b&kLR+B!8a6M^LTFsiOrAmt2TXz{Q zlw%60=$Vwb4JWfzU38oI|3i^z`&F za!Dwtiev9hH-3KAsVLKY&xRyb_CmXj*=c71UTDoK2kAe^u=}We)`iEQWF#Wef}_gE z$0r;+n5WrP4>0RnaZXN7#vm6vD>(epN4EC%XFH1+GIYKvQQr6cUir$HtEt`3ERK5f zhSu6TghW84)S?%$OPp+TjfKenU+>?RFrpMb7_#E1fngPSqU$O!+J)TfAbnDo_FD= z*(0$e`$RSWs}CPMAmU9jpPQTe<^DiJJGt&sdST_~&(CnEfYczNPCWG~pnV9NiijLR zvwA%*#8#RfOMZ+_y@JJT=uW@Z%riMFU0q#9v`O5E$xBy}W;)|1zJFhY8N%8@Fak?V zP%uK#tB39f6Eky`bkemS0w=gvCqHu9Lyarb`ue81t)rtObc;m8O21&h-rU^Wuq~=P z;h7gyqfep!JF0Mpz$Zz#2&M!+9wApYs3%c{vT4uFM@!&#$c>1=+B$$r4b}ZEZawaJ zXaT>!1I^S)vPf8$zRMmwKX{6fe`+x=(K)e_*HNUqul<&T()JE1oc{jj1_Mj*Dx`;J zab}jz?Q~j&Y&2W- zKChHKz7Sl(!72;oEcluC7kU)_oC(6kqlr&!h8-U=KJ-e7nCrljtdu@JZ~4kMid`Ix zp7zqM@|@D_<#Z2lG9M8?|FzQDFK49sg($D`*gVFcb77J8{PSerR{nM2t#!Hz{ECZ&x6`12?-@~XxG7u}g#bxVl0gpWR@v;Pz3}He$bHuPll%a8hTav-tOlm0y880zuToO}eCM5s;LHmv)5}5e zkVR`gmW_I9K05hU6XF-*7naPn`wec3zBZZzq#nUjS5%|G7i0D9BZZZt`kTy zLVv%b-lvy;ExW7v3hgVzvWC3fJVf~Prga>b+x4ScjjzKZ%r|f1Xb)WD{(fsqu~qd? zVPVhLoSW*JCdglm;P>;!SS9>T-w>F9W#7(Wc%0F_+&`6hus z4!I_xqP>Nly{tn0aJSD_k+HK?OK;Ji-(;Vjyaqk7j~naPuU~hU`s-e!{2o0P(st`E ze=aP1IolGk`3)l87P=C^1Qp?i4mZH*b|Oqv5B$d!;QJ zx;^o)ne^%vJI4nvX&B%xiXjZCc0Iy2#(1gI^_e4|E=L00x36v2`(PMpGzH@Su5*cJ1T#WMOk}kjs(5RcT*1r) zB$WR5(5rdS$0(FqjGvwytxwd}Li2R_8cMoKab{AIt`9od9np|Tb2GDVb#=5fGz^6~ zIkawe3tif9|2OzzRXT1PggumCcxGlsgN`>Rv>>A%5*CKB6jlwQD#(;oQo1|f=}E6# zFta(`By0f#lu)7|m1%e4)i*2(uZ2PQoAw;vr38Nd(Nar#x%4|4mLo+sQ(ECP)HrUZ zLWg_#`mHMGeL4+NYtm;V%z(8KOcn|T;0Y&yG8sCfAfpRCq%kHsI&Xe@HA2eE$(Prc zz1@ZVjgDu&hmk-3PzG0e2&qts*)aN7bl1i4%F+>`nKh!YBzYrN71e~No`r^;Qv%i! z-wa|oY)xR^VC;bJ(YVEkm+29<<&-6#m1>)m9;h)|Vh&B$2kZ6F(9pxZRp*5+Vw#Ke z!K2WC)BSlF+IsH1LW{4eu13qfqrbTfCm z5?_%*j!L?AV!f}E0sJOI9H1HZ@b>)V`IPz+e7DgJ6%AybM@C&lm{gm5dS-9A-#!)> zl4+<2zA5lQFc;1@;icHuuP;Wv6ZVgJsij3^5_Kb5N7_L#S*Kp>n7@i2Tfi1?6TMi% z)O1<5DKJ4vrN-spd^%>dzIR6=Bsb*l{_3a~EE>5Kd|TQ`z(Pn?+O+}i3^5%v+xkA} zF5@NUPX)fB*-Jutz}zBc-)lPUtw6Ueiuobml`?_4?;K$(k(a*J(b#{>+!Z`n%gsj913Xy(s9i)RW>TT>I+o zyCI)Xo`Ym!R3`2Et&v#dhcFl@<}di;GOG7IRaaLh)2BqhOX%=Ak<4vraWUb`!t``f zMI`j0?DbQ!0)E&Heo$&2JbR!WGI7U7y88HJe*(B1>dcQ0iZXGBv7Gj6Z>}PXw)94! zz1oaS&i<;RqH?-7YKhCF*BnB6-8Vk{>(teUB!o2%o0od~J6LM0rUgMTP;dG`gp;!p zoUy&HB>P|Zi(agb6f2Qxka}ji^1r(X)x<~XkwKkx*X&FT?6sgW$q}w~pyhbO zQNDCZRwHj9Ad%H6V-Y`+v}M;JATeJl@OSawVHPvLAh^2)-o11^U(Jw#vGMU(R&y#h z0aih8CKeWcH`C#Q6bGeSJZ~0B-jKZNPnW*@8dabH4*qvzS+(ZOibO8Qt)Hac+87VT z&%5z(O4$dq@_7&`X2KX08w(+Emk2=DD5@6hU;N2}=HdC^#8&|$dZMG!r}QLvw*=J| zeOW&VEqDh6wD)Hz%8$Nkp(06C+pcfQN4oM9QyKu8p&Zr6;`~TCnzcN0%0RHp3F+OK z+*uhs9h(aFXgJts0959umKqQamtd1#IGLdP`~Y z;gVC>D1}MVe*X_`jOJDmVPU0m>l7EIU-9nV3-b{pNDNe^nfgzxMl)Z|clgB05%c?q z=D|ckLMG}>@x^Za2Y&f2Sq6ME1!?PgGbq`0JyN+V6Scf<=3`~~OTJK-ws#g~vs(uS zz{FOiL(;=4V#e|p3!p@5-r`DM)(Lq2{JFQI9}d0Xq&?iLQ3Q~-vhmIbzTaYEnc@{2R*$9nI98B`){oe7aE4FK}nNBlh1nU_aGWtn{d6&OSBUu=BmQNH{R?+ z#b!KzI!bufG?7Gea!20cD9uo-yYs$!T-O!2TLI^u4n+_bn|h?mar^b<>l=|vJu(`W z))0WWQ!~Qp$WEb5diUt)$TV(5;@9Ed=@l`*puk;u7bbE;c+gs3UctG9BY3-5q30LfLP;}zi==}7Ag*YJ-*bEHW5dq4oDt=E0hcSTnD+Be8wE84w6XOKX*6X9KI9ic z?F+$Sid;Fgof7|vQGVL6D|MFcFWI2r=u+9)gf1h$#0%9z0$;(xH7gROJU9VQ;xOY z`MR-E6s=$fa&xD*Dmcf(!r$K^aL%kdzo2>5@*t0YO1&X^@s~DN#}y zhK^x?aX_TIJ0+yM`#kvVy?>rxXYcErbA9~aB8GRk-uHRdy4QW*Ydz{LGKvW_xZx`4 z4SO;DE^#lK9in2-gQryDkldFA%AjwbhTn?JL}Vo3dx7(w1M6skQ)U+2C1&rAlU4{^ zEc@Hvjl3dm`pf^mXl>=?nw7chgP13A7JN*hljOM<4U6-S6f*&BLsH`B=XZH=u_z2R zheqq4#a~f--X(JNK3yXH(f6R11)<6Q7WPC>VceyAtH4v*CU@c;od16R^z<}zNPqZ` z>flGX4Usa-vC07dtAE0!IGk4mV>JkHA<>}0Zmo-uNrerNr2vqr<5EFvk_Fxg+yx^N z5VlMPO(ZTNSE?xuNv~p?Vl(<&R`2~(1mje~2kfx+0jg^sA3p_%F%LuO8XYV&&%?F& z|A@#bS?p-r04{=5%+gf~2xB1eSgLGK)$D`SuX#dSz6Ee?60iB*O$3sQ+L}agvawlh zjFk4IKN#YGuck z@JAq|7*>Dyt!3yLDr5{&VXQj@ps&1qSgM`p+)s2y=3UU-_McF`E*3D)fIEEyKnzP) z<~SoAU{+VEN1`rHm(#$Sm2hO!E1d&m`we&g*tRhcr>znsewk7G<(|upaUO+JMn*tm zbys9AZ7ywYdM>sRP!d$T?$UoLsokus^}eo)h`_$7k)nc zZF>v=A2Oy7?QW8Umq{rb;OwzmRSgUbcE=1APW7Ob4FdxYiM6CnU)VW2%l1F3ad~XI zOBf&x+LPaw0`Y-9kdB7lb`<3Hr`DszDPP&aX!vwoZDkJ~FV>h5n+z9F;V0s0*={B7wI8 zEVUfVUJO5t0Q*rJ5s;QZ)Tr=wy}9aAlk)BKZ9TnJ>t7i5a$Z!?Ka{z3g!+vcG`!u z%e2(A`J>RSp#tFI0~cLz&dLQ!HwGUGYz zMqm1E`llT+t_ZM9^4v0Tz#W#V{|t#)f1)#lbg_-o1M@O6g~XVH=snXV!_dO9m}r-UhW$dY-GMCAY!~xX~|x zb+j+rCoKU#O_mKjAja;-W7>$65w!5rU5ECV$1udu(eCa`)JOQ5Rol0(_r}kGO`t6T zwn}GN6{ zC(3OfqmxG918wBXIe1;2*bxV1>d$w(Pa|KxpVS=b&7 zay~a=i8-m=-FAGVsp#$V5cX$3|<&_?$Aa6QZ7d!_K7?LCMzbRNkkr_rKbzPBmntI{FHKU zGKqfvSr)%Wy}NPm^769TZM6RC?CCs>J+5LHNEsa({+E?nMNsVh3Rm}5l z1G@RmdS-aZ8Hp@~ow~KbcWW|8znK-b`tBEFLI!V>`j|LUTZYSw!qCO=Zht%3D2tK8 zkkzrb;5j#A$OKA%(|>got{j*RP!XO~kYhv$te-0AwsbSaBrZC|In%Au5mBtpRBCtYW%ho{tZfFCD?SI^Mfe=eF+D8FBYR`8 zfQRo%q*@#r74_~Po=dTS_s(mr3~>BPv+h2CQK53Hw3Ty~sI0ECVC^;@W>w>xd=`vH zk4Eb>cNdna_sR9vXUuH+XV7{ts+TfOP%zo{Zd+^{b;ev^cKU;`#2uh)tB)HXos0As z=+%G*U0D}~{|pGvf|sGE1awW~{qx10@=xSxnMLTwf(b3vpAgfi7AFDt+4lp&R~wid zzKW?LAnP-9Q#~sxS~%3H{lfO|1@ds_9afg@@PJczDj&NE>#c|OY`;?DsJLLn%ht;mv?rX7VTu`Ho!fd>dh9`6#ld@IvgnSVYf_ zUpaVng>#Q47uT?VE|9^Np%_vLk#oV%vcr_sFkGI>RwCVPVsj*M#||V=YK-(xjnd$O1k^mHfUO*n#9<&8Aj|n?}nt;9U?}sw(MeamLZwqzVFGHQ$=}0^q z2p+k$=P`wC#!uNiQSru?lLhvDe>AqO%fMZUci!ilklk0@8@K0SR(9{KC_Da}pRm~~o==@cvq3zJDvtNTTW zdj4H9{vrH*7WS!cqn-+Y#F{HPIeB@^h58z)zpdW9@$(Ns3pXN|e z3c!nbJ`-*G(Fd82zM>y$5IyMkx(J%C0$TMlRNl zKw>_KDequaJq4XUQ<4fV`$&ATpq+_)1s;mO2vD7b`>-(_5RBZ(5!)JS0!TGRBm8V4J>fc11*5amE(OGcsQE7p5h#J*z-;uYX8by9?{{C&kA#1lI$|$WY-$DrlmX>H=gkIjT3ezt3_A!+WUz&YhS2LP+ zI|KcHzGdj|-3Rxqu;w%15aQl)+b}Ph@T=#v#Bj@S3_n36rC039+W_0-)ERb#ps;YK zTo^8ukiTqb=0orZREtkk|AGq^CF{FnhY*FAWJC=L9AosvqeTX!htJ~-qNSS5E1Azi zICt~5=+#2Lhpo0j^W04Mwc2qh1!!$x;g9gyWNs0tQA)Y~41E}Hzt~2{qWWc~%9=t0 z|5Fpl5!sxOrH7V79;E7bz8Qo0Bzm{#KUWWO{*m({91Q>*sP@6FGA#3Z==UGrygE}( zzKF%qVJJ`itELS*)=;pn8qL;!ase;$;2lgO8Rbl%CpT++mhSQihq7S36B~_Pr%K8Z&2$vVH9Z3!)Y%dhm zZkB!qoSdbYXtm{NF>}wt&pV%JYNJdQI}%Iv-KCE#2Xk;bV4x;zBA-RM2W`oBWfkNXn~+0q zxvQc_s&5bM8f@NUrN#o1z7{`5L=`vM^?OBIo~Qqbaw%i#408RvrtO~Y1c{B)-8UiQ zw%eMj37*X$XRE?32ge35POxEhjx})ke9Z;m_8)~T8)|WzYtN7QL1@Vz`)5Q5&4)a+ z?!g6bquq9jL_yy>CdNqyXIc%2+gkouj1d1=Q0j$MBs9an!`6QxEgvXqrzI$Vh|UYyYJ88 z;NUR))NF}^p+Gf}_x`rNo?h0))B?a$8Kog_4J+TPTdCRk+SpG@J~uY1=nExyu0~W+ zR?{zO^@LJG0vu(W&@6$)eH*qrkT8hVr&WpGDJO?N-OMuej7YyVf+9#hq$uifvZ%Wb zWmx}IrdF@EPQWzru$lips7H)t1oR1rh!|Ov`e3NO+9YG4&@Mf(C-Y>=pmb@HlOB^z zh(?s5N?(?-aCY(W}~to{~JRx)GHYn8U{K#R6B=tJchinHV5;1bg0b`12|0A^zy4+o}S%B#Ut z4^9oePL~qsWkP8k6lc*;&lQ_gr3bYPpM;w5jf5RM-urrBI+>1ZRO`43EI=KPmHEbG zF^lEjTTC(wj^UFz562F~PLk-ezbtPW9(G#pN!cT^;`Gp2zuS_?#e-{*XDzV7)wU=m zCI%=2sj1gIQGVVM~j zTu@5CpWIu(Ef^^LX$BVIgmWu5Kdo0E|oG7NCiZA2ZXn9yzt2v^efwFHqRB4g$#C`!i(JPl23R`3E^KHhE12EJq(NPRiEG!fjoy zuRMXMHHe)gJ>xT4hz0 zPD-$b;2`JC9q)&jpp8H=^}!n^IDW0ZH-_j0wl5b-g*&T22>VCnKS2GD2(tgj72ba@ zcvB$$kB?UW-^=d*K9qkS%KxKh2K?W?u&-NZJX>_NXYnZO@t^<1x`U3WX4RZBDA2h} zDR8|dGp!9H)=hCT_<-g#gd){H)*&Kg#*!bCW(#hMd89*2a8{=d)dl@s_Y@xy!jmsI&<7sg(x0}fK6SizrG#h@CC11zy+YZ^b@cez1 zKI=%yyPG_km&!W)A72Gt#h!Kl&6_&J#9_y?t{BxVJ9KGA>=e$*c zM^TpOf!?Z#IP1+7UTZItya&JeZ%VcnW?opp+DNS_z~9KaRpIM*(~NWTk4JhXqSb9T z$hnK}ze*$%^H>z4!e!;)=qZJL6ER)eRuQ$_61lkrTB_p8Xn5oYrzF+}xgoNr5s`vt z!L?57W;z7Zwp+v33+UpFE6aAo%LDMrk zWR=G(?n|84j&c2uM85s~eI-T3KwJv-ljbqLkrVC9kB8+?acQ_=m6eVWd?WIMgE^kU zN1b-#R_9i8b7sm(;Vc&!uUAT2A}HPoi?9ox?0=F-Bkf9pl$ggpadVr6T)WJA9vjz3 z*={&@av(Pf^JqvblUIcxSN7+Iv%qgk;R=i@48d>4|sY})4AIYoOSkN>G!gC zt`<(cKQ8t&k+QLQoo)B#c3BRW%N(I$;GX?BR~7{Zj~|ZhF+=|53$}HKJ!MSEF(3D4 z&S?~v%ezMm#Ex9I9eR*?S(S^IcxN~?+~r_V#_P1Fs95YVM2gvMjB(Dc4FY{N-DTS0 z+B`Rz*I}fP6>rrq3d~!ZStvrxDktprx2BOpY<|_9Z)oq%7rNF@S|gp}#XB~=kxVX! z1BTSDD`muK(=m^gicj{P5Jx{eTe@C~UVnU7>r+2&Jz9jYNcg)qSn))1KA-Q=EZD4i zc?KQ1=a%%=pL96%)*tL)qaZVRr?IGOugeHX?rX#9((3iQ36%Cbz6q~}_++%sFLB46 zlZrI_x>JO0FLVh(uXsG`dK8pXY{`Ww)yra;x9{UrNG@t;puk)Rkx)4TA9bnUuQC`6 z&F|K*H*&qIG53;a*s)t^72j>UOtPu9JDXUV!cGLHps~i|9FeX5^+@EF8!fxYZjwU& z%0#8bx9OqJpNv^Bd6ryua(d4W*N(jA(=#$MpvNm*A03VN|4?Mz@;+-1(nna-IIa#j za@D*UGd{OIKItwtCp!DHHJV#O_{78WN+x02NiJ&Id0J50lsrlFaFH<0?I=JT>N>OA zN)=DS%)(LxMd~zb+mo>CJ2o^Y&`hoRC~<7*>z_^AxL3_ubUL#Iil&Q-%9L!iW^hnTCaV@+-Zm+s(dPjTu${q-E=t<+h1&?u&I_f^W~`D zo2Vj%cYtuKr5T@w&Os)0;d3eUb{(Ry5DV=Q5)IHv?1`+dvMO`CR>gSnO=vT@qLTu@4}1$H)d}A!%yNURq10uW ztsZ3!80*;~z%jx*;buJQP;vQ1@)&h2UOV@LBj0Oql$SR7icdKUy_b(-xul|J;@jTj z*C3(?){{AGld|EIs3ZOEp3BB<(5Ts8YTP)iTXJKS3&bJM`sOm@G+Svtn{yh!#jDad zv^i1Lt|C5uKHd$PWy8^&y`IZd6*=sZNI6pF0S7mq4h{C^u;;F7rGvG;dcB)V$mHd) zMbq;FDIaEiwccH2HR|jZ6vq;Eq;hX7VGW}E&Q`^+^n-CTPVwKn8DBgTC5Ws{i4{)! z41Nol{cw3Op3z*w1McGR5ZxxxltoUZJS7{HYpzQ~HXjJvhIvR3(aX1&mIO6)T9w!6hVUa6$| z41}xM zZ3~s4(bb=q6$^RhJ3QxEmO_E|wvjwI$}U0&d5#vuQFIZ7Inq{xf6lpk9Z7g{dgWVV z^--_vq`r~8=d8-CQpCMrRh1xClmdy!7c}(z1&nE@oI+7l+)h%yxqTq zDW?}>sh4ND@O6FXxjHKp6`wi{5*IHPYMn#alvMs2r%Zhx=P4Bc4bPqS{0RCvuerrM ztJuBM9Gxgj}T>0O)>CFFhy;M%(ZRglOOY-b!vF~)ZJ=uw#v_hFC zG8Zx2_trL4$n6#m@hJXW4zT#@*Qqw3BLzX`^Zs@3@!k@Fo?6Vxip5Z$UK9ADR~mjq0!B6QFS|2u{?+S|gt5 zNs>Y=k2X#$@X7JGNEmu89UgpBv33jMwYkt;UDxlf^B&(@FR7m{yPT=f)hGg)?7!~U zxP$#9=+Sb!2+4K0E&@wQjs5cV9oL~1ZsH(xAaW;)ogdP0S&nRoL!Grl^ESF$){BuU z57XKc4?&Iw z4KXoC@YN?2+5K}HUB(QuIv%$*JHI65iq`E-B(dyMdz|d@?zngL%VnJci=fJ7ve}I1 zwqHrz)t{=RaeljbNPgpa-LWzGhO%D<;;42ZYB@PR&|7@%*basS{mEH&ql%e*74H(_ z7cHFDvboj4;<2)tS+eNausL1ud?i|!c*u3qmqrjHz zdf4C8b`vbJJQXkepQcjP#DVC*mE?Z3t%_Wmpm3QjSiqgMjcw64fU_dUPx}1u*f=<5 z4k4Sin{MZV(4H~7pv`AX-jU4Bdd|LnxKpnx|pwZQRbt4>`#;2I&p_AWsn|Kpm%XrV+Dly`+X7OEXBDPBD(8KyDh3 zlQLeO#|K_i$I}@XTkFx89RnzZSU#5-&$I;4}RH%q_AmJM5XZ*>YPr z)Ex%>tOKlqLDU2J8=p4%f2W>PE0QvvJFhHJ4fGi^3>Y7S=UJIqxs-~y%03h~T8W3x zUvg~Ade@+8Pn@`I?3GOqyQq!o-I>jng5~ZcBgB@4_{yfB!``07<(h7RZp|fc4I%?-?X{c7EL{Xsov<5F+1 zCF+{>IH!QsMJwNnNBqTXA>CamVP|G{BIofw=&qekXjkanBo^^wQ`Pzb)|!Pv05*c+ z22iCRtd62r6+5q$&WrZsUXFzJa%c`O-2#iT7*rf~&|XpGyAoksv5l{pQNpJ?3{l%2 z1H0qyf!EgK5Nh4p=#zR&kaI4T)RU}h6~G$yF&gQx^}P}Vvt}1T#Aq*wN9a`KT%TSd zvaj6XrQmr8-EaZf*$efFeIAWCx*wHxIL$z$v7Na9Ephy|brSzv#hdA-sG1`^s(l-)qt=4Yu~`NL89|?Z-2C@a}0McQFm;=l!Az; z0ZW-c?U zyIH!8IypTRYj)wh#V@-T_S;+tD9g>BSe3kuTIlpKo|Hh-TCq=88rMYnc>ed*eo$~G zUg-)zuXKi%s%2{AiRyNwa9X6ZyO7?jvo5jePbyr^>@RdPlSdT|Xrku)@JsBEcFQ#L z1wG~~%F3cDhCUTQ5OlyN<-@YBS8^U zeC`{4wOIs_v&%(bckl+HuTPF=er@2_fM%Y;3{13ga`xBT7=>}yDJI;{HP4l$fSVeW z?p2trwm`*g8(uZIY;Dm*tXYKcO zz2jBBZl?M*W~>|>;t2^-!GAwd>F7}Zm41*GO0>sphZ<6fm6Zq2%s}czCxyKBZy-Jt zf~ry&0r+pwoxTU(|Jx<$#b+B7))-QLVyFSXjoRFMHn&ywPW^&UpzwtkXmTs zR0$&0gQcL4CA8tuIrwM}BG1-h^=A;*{k+p%nDoSpd!~4bxk4YsllLnhC6P5xPj`Rp zu(!sfcwLWn`&6aR)aqlv+6~;qEPFh$EyFNqo~)V&LxD$`H#anoiQVmc%Va?3w{P|h z+1Y5=-gxGW`Vmt6*InXzO&;=mL&y2K6raN=@bDA*adC)rgM-~v)800i?3PzfQvMkq z-@2HwD6ZEJe?(Hg7^AJC5||WFXlqlcU$M8jKT#M!sP+OIuTHm9p~W>ek2W(X;JUxB zkJf%`(7Lq!$KStXu0QZ-Br`HIk+U+NpOe`Oya+yNi}Y!j_uDTjW@TG__%JC?GRUCI zNIT&Bs@5kjZRyDouF65T&1N9K6Ub$6+jr^O4 zsU-|xvjv@eB~(ywv+C{+$rs0|&;oPdF8uiBTB5ec!_&Z3>+V?p!D(JGDWZ>#v05I) zmU>8^n&%jTP4SvmOWU_!Cq5woGN>r8cztmJt2CAfI&(EKybo_065eQk>ZrAAO*&#u zpWZIgLaVR_8A{h@Gvpu1GjCEgx*xL$`zIPRUca+IM6JsrgpN01YFd!+Uhr zP&4nR{O@QlRt1}de5;BJyWQDH;9j5-J!i9W3a`tyRlq?lHc>RXAB0Ajwm8OqV^y(^ zCMm~CcqLS#a9UaGzJGgtwliCXi5^ClR3%c1g?sd_F=@k-(*>Q@?;i#bx1m*^PDES9y4RISX;J>JrrV^$eCTya=EUI6`ICjEOQfE zx2Ht=jkoZJG;HwsMQNgbo9FS_Hs4mg&cD^WTTT!mFfToJ6TSo~31i8GV7~D21Am@{ zTSS|Z@%J%)*d7dD#JVi%SM%~Yf6FDaaWfm*jc9gfJ%9M;@%5in?6M>B>z5=6f8)Bb zuZIU$Be>1MUl_ksM~n0Mo$2>d8L`PW+iWCb8)J@U-21q+@v? z;Z;FeXtKY9CbICzwavNocsrMB(Q(B(ge=bSPUW zNjR?%#GK_}jm!y%8|R^ndxnQcBlym$CJUyJlx+rWSxvP{{35ji1i`pYB(T$EMH+-5A~AVvh5wD$)P~Fh4|`5 z#J4HM7Z0RCe{;Sq_4q!)DjT^nSc+4nC)VUWEBV;GIf=n>5XM)g>Ac*MS}ZOkcRcnG zvnH+1BwaTkWox5qHt3w{1EPXO(S=LK2mk$7>@Y=m3R-~Z-?BfsUrNV#^PH*o%MIK8 z4idSETJt;kp?idsPp>nJd;hsQn$@2@JEq}cKk+%;AB5 z=s{`bxSLB+A5;V~&-sCZ`ZG%fRkk4;7W{%ny(R^LcXYu79+Pbayb^5op?ApFv8pZk z5iDe{C?NfiKOVW_AtXmndkS6QKSIr?&5z6}^*Q7!ZZVSzp9=V;(W?~v%77cC(8x1H zA7S;g;I%lEmulokysWh%mk`*1j`>F2^i@Ok3M)2EsBnKK>>jT`3zmDn-^SEu_EJ(k>$iz@}lZxB5~ zm2LwXIsGrwx$>B0uDQxW2D{4=X@15s*uJ0^EHzEnaKz80;qxkY#Eh#o0P%Lj`W_lH z!izBdiVUg5&btCpU)lpkRSj#Y;GG!RFIMp}rS-1g|2;fPq(a2T{h7d(A^HPa#_?2Jww_fI z$1!fG7wApZ!QUFW#Q!|lHHA(Ltw6yu^qDclq=7fK$Gh7!y95G}5C@4KV{MS)$&~li6QjAiMv$@QR{kd*F z1$#*2lfo^8Us8|XOMSZ==J8s$Dgs%|rM3V}MejHAW^1%72d`O#FIK?0Pq2-+OdHOI z=Z>*{vfhfUlvCb8$5#_k^JZPaK7HlS9C4to-i=rnszOLT0|`vW2y51UnOi%#!7+nuTStQ1onT?Z+TuizS-H#~yyhe<+S8Fh2Oih)}IH9k#@seRdlGCSoEP!mlp|q@UIEdzIJas zYDAP*>QE>bv+{F&O4Fy4UtzU#iBMreP>Ka+2!lXc1)q@X&aPB1IG`>pxvM`P+T)YX z6q3hmJ7Yh`^4BvFDSikQ^UBO(({Pi==?a+Yr`M;iD@2M0|9#sK|Dmetbbgb=*cX^_tM$}w{o#vOyyZ-k@5->#xy1OZ&)ccw zFR8W-b(YFVLrBi?;sOa1*jnM|eTa%vUGMQ)v-ZUNkU;iWScZ*<;Z8DI#vL^Ge(=F6 zJYiagx&fkTaWjmN%o|OfNBs&4&PB05#XlTAAW)AZYWc01 z{SuO#Hi0;#!;lYqV~$#g(hDrSBoT!EcoYiv4qJc~e8NUd`@QqC1!^g*&Qd zWvxmWU#mEpSnzrOofXa2YK}Qd3_QuY^AgD0;YMnm&TNE_ndkZimofZ$l6_nH)aMC z=XXXi^Da$pRACcy)Cd2$0m^k(NcP7absL?RjmFP*kpoG4kaQ>56S@PW3|%(&=&wqtwZT-p0z7 zXa_5jf}oe)4$*vc_a?eDQo$ahxvB(bKm`uCS*KBILi^b@PjwkH1Z)Bdg?=iH)1?f= zs%=eJV*Bm_L?IaWJzt)Fl2TvanIWdIIT+m9R!jB_e=UL({c76C^T@z?5o1U!sK^sY256g3DNO=n!0?t zetw$#7WGySdA^Zyn>$T$Yd}!{p9NHYKDjJ37Rh)b85nO-Fo(*X)y(B7v)fH{G33;j zz@ZQbi?`0ydHs6B=eN;G2P{l~BG-Ho(c;XiU?J&aW+4U&b;c!6oUls&jsY7ov`!cWIT}_&M>yB(1ocf3I=YE z{S?Dx-92V_@?rX?SH626L_e$xm-4$zI`%imWOd3}{h)t#Am-1gxo;+%GSwhUQJrY- z(U7nQz41w?WodBUr_Rdla|PtppLA}#J9}8I8I~5;?5_gw1#y^q+9k1A{frbQ5qtuH zeByma?wiz8J3re29EG%ujMI~oGIwK<|9Z9$zew4BmiI;RPd8@o(w>)xG#k*b=S%>C|cl{vKK z-Tp%RI-jb1O(T4{Zi&bc6+6pfOe5^SUeFZRcADsjnGo$)R9NINV*C-!0M#|gMxP$1 zs}B5Y{A@fCL2rG?U<&%BBHy?zy9LKCXV*$|&M5IoWfZ|NGIlz_l!};Nd7vp=uRW;b zQi}T+i3+uU6Vu3PRTy_?AsWAW5O8Rl$?xp}m8Vo(XK6%r!AGrqCZ_VZs5rh~y~#n5 zRdafa=V-4T`x|{Ei-*SMY7FYNy#j8ZXE>WaTWms`+i^!}0#zD^X$^wb_oZ?GQ+tmc3Tvdtgey4&r8R^>}BqhHpiK;BWh184bSVcI!@+_G&l z@&u>el%IZWc6uJSEGT<2w;&;L)(n*rIM?cW{GqYe3D!bOAcrsrI`${ct5>Y~;z_?N zkd&eGJ;e9A{}$Jg$FfafazVk4xUj!oiPvZDTFJz0+D|HM`o_fzokHBJ`Tl1an_L7` zR1q+duCUoFfg#M3-PijcOJ-j0*^|L_@@H8}7G-O`lT~$qTu|PKSd4eVOT}lcv>IUi zC%$`8Wn(#nWltS%z3~+l)(QFF>(y3=IMu{yQ9W)8-U#d#4HLur{BJ?sEnmw#P^i?F zFxLfz(vLcESX2)-jc=jVEuREaNctkDcW14m6aDs=28bRD1{W>*9lqJ@Yjtie>LBu* zcSwE%nKf?LnXXM>aPER$ACX7Dq>Rnf%=-eAbWl*;LnS7qX{;b*jamD!wqc)Cvf86Z z@*`TeBKdPx+dvA40Qz@cj`O2&m$eW8z=dKEQPn~H@i!tOW@E-zhh{&5Z>>x zC5$MbGjLz-?g>Qo|H8Odg=VYTV%wF|gL|K%{vn#YG zE>LNxpN*4^2KwVz*yW+LP7Y>Os2D%b^q?U;xHIQ$Xo%R)rb@4XvSklg(LBsA#U4>~ zuxZe=1?=u;mzO{L?qEZhVldNsyfqf}D<&o;&^&w5xT&3#%#3?%X=q9)GTy6l|rb@(Zp|_`GM7dM)>z5{fXCx{*4Pw__ zfuasOC{~X_8rGVhADt?)K*(Z;w(ZK1h3b1g@bE28qbye4QhVt9n$xZK&t!rdP;7`Y zWh&u71V3qkC>ES@5XKT%R5fH+3wcQKKXmt#^wAq23M)e^C!luN+IN*YMWG3z313t6(&?%1*_~a= zD=G~XDW>ZfSP3h{=P#6}vc-Ji%>kIsAGYp<+1z{Cm$F1dGN2qT z4JotmjWwZC&6_a{wY&w7nIdau*34^hozOGGN|<;!A^F01YC{IJi$S{ua?osVaJ z$CgIltCr6jI_eR}W>6D!a#5j9VZbl~b)zpgYxkX+oJ9VH41F&fsWt1)Yl}%KEAzV? zV;0A*GUNaUqU>Q=ILvBUi8i5&q5?b<1=8I=R#u+t@3=04gZ{2OOl4z%Zen#SshErU zI8HbFghY`DE76TUwy1YBZdU>Au}{AZq2{X+bhmeoO^Tkkso)}y_&7mm$Q}2n)Bmup z%h&mKnv#DYZA9z+KD^xlWP%$lRAs>Nd%swa;!%?9_n8u)!JY!UB)R9R-gYy_A$!aY z58&Wa0C|4BtzYoU-<@>aIX|tk00+WAiajc@ozs0OVS4(PuJGyvP3!!|O26?A;&_6Z^Vc>Q%G z%cXYJM=u&&wT140XR3W(`lPX;JKMWXOWe=d^;>MzVV$qSOdX{}F27?)YG(}n;8r6(zC4=R2fq^dI+1QMAL#wE!S@943TRvq!xx$;(;rT-ckbV}9c zao+O#Gq&|q^tJu}Fd7Ef79VznlVQm}#s2-<=1IzA%8O(*7Y(dnB1ZS`?5x~vfQj*q zyA7t&6qz_y>1M|5VW|zD4lYzvxs{XKgBPG+yRBf|2X{zmlHtSCpd$PFSxPSDc21o+ zi;5G*l2$FLbe+^%TeXUVml?GP%o=kY32#&Hb0uYx*Pxgs$=HEFQZ~H@4^5kLQ|>4y z!O`V^{}wRxbKSTJPSzDK@ZV_uJ5iMUZjKSNqy<{u2Y0=FeT>`px%Z=$i(xDAY?%nT zl-C{$T@loU`Q;gl?Ljm>&?cYV$%)?HD&O1E#UPyW`TBr;v-ZIAJ+=@kAwNyA)F$xM zBfD06bxH)tC*|+1zklU&B0Hzvxi!qZP$RPs3M)S*^Y{A-EgAyH+&Gd7^kr1Q3 zmq0f>JvEgN_$@+ajvbMoqr$EjW5i%I zv~H!oF6m>3+}UjIU1kebe*?36SVEfOl0#o_gv3D9zm44m5a=&U-3wO&&dSUDxTL-II^9kz7=vaVwLgu^(bxI?cr;=n%3V;HPcVc&Mu#N%{aL#E@|?g zTQ{h-bp)PV>0BCeH0vo-Y>R!Rc_shfJ{;M`p@wspoNH}m^17V?=rvo&#jLcM^Uh8; z^ilyFcsLH3ot3f#ivyKw!$lqNCpvwuEmn#K6coNN_4i-nQc82N8B`CV=FbmL&BY~* zQhU&8HQW~9E}va49kVo!OzrOAzk6564fb_W&yxJs)&u5^-bluc@1YZkZ5;TgRTmfj zx~c4R2U719V1r{)<0FfFiW+>LtCqnxrZkpPQ+so@%WYI7B<|J){(>Iw55EIGfWv5x z@vdFwU)W+09&kkF@iN5jp^u>L}mug+l>3tM~*y zJ^bNlGPU<9p4P34{Q2~m5eHFrMM$T?g;?O}6-fRr7%lPh(IaYWdBCEC&=@KyIr_`V z;qviKBpBBH?&Av2M{QOn)`*&}$EU(>U7@Ggx zT1P6&TPlfAXGDBEF*F_G=ibR%@&)G-Bwv+?l{1(Ri6fRjg98SI2?UQXrI9mW1L4Ei zyrH_qV0$C#FK5lp9-Itmz3=X9Mb7)4TVNns+~-PthCcpObVK-2owzImm0D48V7h$D z@iuD%xc zwW3~oa+h9b(S2Fw2vjr8uWI+)tku=z&)B3{Qho|%W(z+Gih6%De0?8$d&8YCl~DL9 zaH-B?Z00@RZU6sg0f{3ZaFrmDM`0lzr8q#7$cbCRF|MjDnh2gfv=i=Yx4b_6UHM1# z{$zV9e(reeHlW}GtEncp2k<0zVKuN4UCe-|kFx)KIYdku83UczaMv&9GR!@U0 zMtjuXvlVOGVKw!d>gU$)TW-Kl3ADYNZ0;*&>mfAEcyu6x3hnz=ktsl|#w8UQ)6n$j zvy;Stts@D(*PB6fKXah(1Ma@%fvH>WF8K!Vqe{oFP=CIcWfW-rdNg=QW(s2FENL{J z2&e1q@1y0}9R2*bGi2y0mKa(Q%2;x1mba>|H$A>;E1UN@R=s`M$#n9XvBs?uwPmE( zC-Z`+BLUa;g@7L&$Qr=&?kX6PVH3Qhq^+$Ugy@Z-Ai!@mo?>ow*}V{Efj6j^xulOq z&x@Vz@r?tT)7?Cb;QCoVVOXJ% z{qTZ|O$Sqapn6T*;{iJfRnkSZ+pj*~S4V{aDI~vNMH2gmAO|I<1r_7-qE`SBX+6zI zaCwMBygUsVX1RJI72y1J?m@*c9NuQTm51e8=|pI`%Y(7h@sEAeljG0`fGrQGZ?8{f zhIc2smyg!U4#_RA2)`4ZZ_jmv2vwS1_{PmfB~f#m6u%!K*WZ}Y!cQY=ZT-_2Hs(7W zjh{5}y4dU}XQ?D^D`xmd@WN0#17@yP)6O&qZzst4;RWEy5)LHD=zUG`d-jb;v(Y?} zGU(=T>6~WCux8=`q?`V8&A7McUD;-5xnc#*ldFga; z%Kg1{+ka6_OFpox%@Ac!rSlA;!#I!QVrVsPP-~I2Mu637Gv1g<7PnI1LygDnp|=`} zTJE&H79{1iq~dXYmy9t<(+=!#C7= zrWeA&IoXJnQ0M_idOK)#hMb4qTSf`EA>XgBxKl2cAB@XP2LTRR1KpX38|3Jdys80x zyE5zeLUq$7#~UG`x!urO(cXoCI37m_O{(NEdTLRdYWr;G zYY}_d4=k-x%jBSjT`(0sO5Zp6II7K@&^TgDa7K)%zDuDxks$}4oC-mL#H`iv<7c~a+~*?tuv(< z5R;SApW^NS+!|c^=ps7g(zJ=6(#A@X%WMlQx&Q-^r+n`RmDKdivHzmU#A7@0l4uo)x}+Ww!@3qs+v!n%fpDR-`-MGWmek?$*F9>(`qIKHJwd`YO%?>lk+Os^L??% z3pZESNP@RoPO!#IaYrCjMfgj0S3FvjaBuuEOU*v2c1uHYEw%QhZ{^^k0o%N zxJdBe+lKJ^*$S$clMA*G8D@1dhSAJ0LgIwJIM?_d=&CGcEW5wFVZKyY;*qldIj$$s zz=W2Bf;`of-##L)$f?~s)0C7u_Cv_#UV!piyE-N=Rj*~OF!?t=2iz)|ClJf>87eds zwtG=jYXRbY>iw(G&TU?p_x9z#ESy2b6Dz%LlNLurtDoNyo~2QD3c(}mx5FQyNo@tV zUaD>zkVxK0hv00|ZFX_-N0yDMh!m~dUjY85lkO8&&RnQ8tfCKd3%O)d%h_;reV3Aw z((HW>)}Wf-7|Ld565Jd+CMA$37nwG6!&%;=G8H5wc(N@Y@XUoP7zMun*`8|4$1?_G ztFSQ6_oZ$^j(vmYB}3nF2e#Rk>E_?b9(oMac4s&s){j!z4fo(B=@$ZT4hcf{#r)TQ z7BG~@qu?zM!zt&gbs*@!l{0<%qexL*7zqeRbMzuqjX{zxC02=HnmC z$i_w1(s-M!>;zbOpk`<4r*h!#~Q!HOctg zk^GTi+L=IZFhH;3#_-EPG6AClA0H54Q1V=G*hUK&)-C?L*W)YI`1%haM>i`U5jjqq zYgcByaWCGH3$BwFQCffHX;_d*MN~pYWS^|3zjbnWl9t~bQ~jx~?DKPCt!(MLPuK@9 z2{&dvkB$J7$hb9-)xu#U>oo_*&BdQ7<|L}OH$mrIp67WOw^t`xHKYYsC*yNZHq4H8 zFR{}bgo{5bCJ}+^cuVfDWVoNl>>6^jo3(wtF`h;qYTglxSYM?aZR`!HWrZ5$lGF$Dp1MxOkSWto@%81Hfwi^Q|y2%GfQa-9hg*=y#D2myZU9tBq9cjiQW z4K={DYP(R?Thv?+5$5I90q^p%HB^=r4FTOx!*e9~K_PBZ5@V&S<69oeV=G3alD`2$s~1sdhERDN5@m+Ni8Y|66b-2N6PZ## zX6=GAB|Udus8nB2b7-`8-H#h{y{1zt`dI24WdVEjL#^W5KY~u`7hIAD5cDqnqK?98 zCr8INhh=F!2JJ9GUVgb}>@31O{`N1kLv=LmA2DbtiClCCPIk16O%Lef3D2ej|k zWwsRdsu`gd=>S+SH&uZ)z3d~vF%;4iSqft3HfUwlHVarri$u>=co;Nu2vVkXhC~sb zjdA7P`MSBOT(?(8qP^T*)%ma2ov>PzRQ|OO)YSK4Y{`@Vx1i3fUreJq&l|=Au+!|J zDHTB8z=k@02ar8$OlpwW=o+R2=5J8R93ZrHqrO^4p}!xaYY*KT8{$7V;?T2r;`zz% z$VUD>IB1auY?YZ6D7|D{etOe&Q@ zP!}PI=g9@@hdZairp%_T^PPz&o}wjGFSGBUpj|Tdc(M*=t}xnv0%|hF<^joamnjIf zP_N8>Gv8t>6v}Bi3N{#Vu9^4Qo^Y`00ZSbD%uVWeLO0+Oy@f?ZfbVHoppsiOpaI6k z9x(Jxe$Qw}FuYXT?7Zg8_tAF9UY$bh!`?!Z2`8r9z`w5Tih@n)Vy-EO^oEF-F*wK| zh&-XS4%uwveVn83BDjYrqOrd#ku_BgICHuj+j^%0^_u!;Uu^!LeW5j@Yig&58kfoR zf{}0;H&`vH^~Ko8$Hh~NJpT0)ER%4S+aWbTdX`?d&X&2^nI#*}>So$%)^3ln8Iu@e z{6D;ZNM2$BG9_W4e(`FWX8F_w=2qCY-B2PAWX7lM$;9hv?BA{p>Sahzi#KEyvcy`& z(c5;met?#Tn}%2-QN=hnoB0 zX}*{~rD)X;ftgtOVera$vCnp+{(SQRqR4bhC#+7~)}v36oZr`Vrcok`T=Ih!o7g*-0TKZh zz1{H&Oa<59>#v?YJNO^;wZkeV#ZpW+{$x}H8lC(G2?R1ts z((t7D@y@g4wf)T0tge{42?)a|q$cFLYU9Fx`i;KFAfs5o&M*Qedn`|sgLUYGFv;P{ zC^4ui`bc|(&q=?;j#{~Wroqz_*{<^K(*W;m9a; zW+b+fiKOQA*-shZ8+sA(F`&K_U3zbm%?c`N$F9J!Wy45p#dm~_W+@ER_mpf{X#H(6 zic7Iq3Q5wBDA2gRe*ovH|C@5x$hbjEMn+bQ_IChfe*d;qm4NXNL?^R_u-@ui#j@^u zUkm6w3$1wXV17?sfMibN=RN{Pg?ofU06pgD?q2ff9 z{0Ru{8uz%nDZg?`%)coDLcPuvyqt5i36~FDY6Rkyp{e?&?mOA1*>aZ3nPFd3uFg>< zmubK~y~_^NxkYMO;SUe1O~LF{P>%aD&b=AXk87MGwWSi6u@q%xys|q7mCCb6+$o$%bgucr9tt{$H+`9`b@}3XsEvO4ic}T#y%lxd z(j|IRyBmF$tpv1hN6615B~P9{#6X{HHvxI^n+RvP)KUt!B^Z5-H)!YXp8Y#Hnpso! zn-o*kQdl;a5Le*egVk06OFw~2t!M)Z`)gu)w-LdzB2j=nFyU-CX+*bm;=%m_2f1^S-*c8p~>W z+jVw=c83?k4zgPTy(Cp~na*W;J1{5p`s(h@G!Q}f9;yLAcxnOPZ~xu$Nl0+SgFV!m zi<>zIYWD6k0HeZI-XDqTmZ|}V2vN(`y+IA4BjkL<)UVQ@qPnB;mu4Q)q2k-}ovRzH zBzQy|T`HHh1PZcb^ImEX(yYeagM(V-kC`;YgvRp47)l_E-S=-%6&fcJD}&fyOi+?= zDFUD?$`){9{P!pbLTCaj%vfVpel*2V+yU9ujZr(UeMoE;3K((tr745n{8Lm{*EX;R z#!%$oK*K8ZWp_IduYBM&^XHFfBm{YR)s*~OttQat2g_T3a@kckhhx*cx7f6P>I}ca zKOBTDVr;8|4@RfHI@I<4=2dzH5cE5alK{Z|aBhtZIYQgX`9Fr{33)6h#KeqbGq>It z$jLG4I0oO$|AX`0!4s`!o10v<`?c=WfCNe1>Jyg)hnCJYnfG{#ad0gBrth(L00we; z8R)$-Soi0S|9XyB8CtieIPgY&k;Ho*TG(M0cK=qd!PnLJ{;n4jmJ0FW!9vZ0IzqPY zs%Gmr(OZPwXhX^IC+uFkGmGK@UJif08SlPvt{t`Pr68&8Ad;1p?K(R=Im5%^=iwnZ ze>a)KEGoJ=liLZTby}JS@5kqeO&?-Zb+8J#BG~d~D`BIHL8?ZibtWY`fcH@{WVptl zprFv6qRBR6wvb)!NJ&5@VH4eow*yT=ua9yrLriwFpm`G5-67|9$6MULe>3Fu_-FDt zB-S6kcXfZU2XK9eL^;19Nmo~hWblQfjSYurg!RDFm!_{wQTw-1nt72{<&c*^Mq_^| z=r0O&&3Z{lQh<1PMBw^i?`Lwd$2b=BA{G}@Y9yUIDLBb)1T?-dHC}>=XZD+c!LnN> ziM|i_`=p?Lkq_0PL>KS7VKNdD-^-l@AX9q8$Q)1nB@hT8kU7M6`Nxu71s~kWLXMO5 z+{aVT1fRG%?zIA+bf$}$#CN6hoZ89~n%O)2^XG%kw9crq3x;ngN$OBntB>;0Qu+<3 zH=1(m6noS*)DXU}`QnfaK+sgGW$FO#%?0~lmVEbd)>?Io3;?!U^mq<6$m;@aRw1k$iAbrRx!RvtD+@fOii9J9fuXu< zA@?N!SHA$)NCuF9`nHl65_Oo+Vja!@*YnK;MZ5?nze===WlVlEp;4wY8_SzP~flk^?Hou_Q2asm)qJd)J)e{ltfm(@ZQJkIGWQum*+f5+Q(C`BjFV}nh4ZAtipoy>Ze6Pm~rOO&fY^tW0oh zD7_Bhw?ja7fhD`Ovjbi|=L9A@6jSc~gzTu7#l{Bu)fXmuj2FA&(hgbkDoF&V8x zP99q0gg_7VwGZ*(@6}2HHg0gWMJo{SFxO2jdmTfyHasU4a{EZoW6|2x6^NA|4BAE| zQp(a+Th=Ac{9DVLH!Y5{`?px@s%bT7H2P0617<&4s$1prOv_zS-|dO9`FV$pEF9sV z&F;OMUK@MZMkWjGLBQnDRzU>j3rg|H>EY&LG*A21U6-&m`ouz_gC2YrA=seEY0~(z z3ZIZdENrzA$gGw>U0c++j!Ga0&XH?C6$SbStl_Os(>OGQ19?gdou#Z!r#N5rY<`*F z19AcL)*(P&HV+U4<$xbGrek+Z{R%AiHVcOi0`9;0-`N82+W#DgFcC71z1=#J`iKyA z;WGKJfU4-nrjHgb`D{Z$7(ssUG>)U~Ddym3{pZtw-w$$`ckUYxA8f#giYLOOmESG} z?BSY&!WRN={R_mZq_oIbd+lP0_lJY=6@-vhQz4--gT#?Tn=x<%%jaCt&<8$z#fiUq z`#~NWj*8%3wO~;T^zP&@^yFcGjG9vwe zb~}nTl7*d>rZp~XD4pwT_U}TE<#r*z8NDuQ5!bIf(2lmY0z7~#7cfS9+#8Xm7-@(0 zJumzfx23Vd{Io`QR?@kb?CR$8=FXt1o+%WNvLhoSeh2XQiC&$rWUV(~1)sdWzG4HE zXsh#F@MPqKW0yj%0x%}@h8E6mqgzNIv2j7WuFsJ~B^Nt1GvQ@M`K$4H& z6ms{!$(4F2o8llu#BCtwHosc;^dW`m zt2J-rI!*M9~>y!F{!c_ z5V=)}&1Sw8=qYaV^Q3?D^mz*w9Eb=2NhsP!%%yQJ_krx5tu1k~>-ym@rJir-U~Sms z_k~B`$E13BatYjjJqn51KOBH%qb>UT75*{#W_OrQazipsy#fHlb^k?q2LwG3M#al1 zq7k1s3$ekz9t+JVU=&MBw)Z5r^NfCW<1ToI+pOCc!)H+(N@xZ%AZd4;jO0N^!hz|D z!jKe_qvO{0DM(QS2)AekHX&L(C=P@R$ixE4KH-Ey+N^`8H`{%#xkz{blfczrT>`N0 z_E0KSBZSlh;rU1+8+8DzVle_Ao|oP^jY~iKTM9vQ=py3Z-C#wNQP#MywSHW~#%e%r z8~h`%a_CKkmn7RlC8?+AGx=9imKO5o_zh-@z~osA@uK5gp%aGPoIzLi*F#)=MGnW_ z15;14w@nKPR2VeU3dH8W>4B-`s99}~!sF5|66YZDM)!t7`MxvxW%P#jUT=kmuCdB4 z3-8&d0KSow(;Z;KFoqBfNNgy}?jad{%JS=*dstxNHou{JM`x>~O>Y5qrb^6sH!es+_pK@TJw7lFgCGTIVelzC(QuQ>J zVgJSi8Zr`Xa&I6eSXjZ4`M9{JkUFIyAU|$M-4W#fB}$RQ94yMh;(z(=l0LA#JxI94 zwe<2M%{#<3UXDB+xz5fD@DBzhv#t-ssojC6&I|&dBO?o6vS_TO6#V7Hlo?5Nn=B9a z$EK4m4%F22=)z~-E#)6HF;v|BdUb`lvgYM7*nregg9X%U@61%N=A~Z)3AY;}y8vAk zs0%MAC#Oya8?1M#(>WE26re9eC}^8fejx?z&(xR(-&Gqz&>K1?y2hh9B5ydpmyXKl zhaJyQVO*W24GcVez4iZDK>g9yNbV%GaME=3c(b>#p+p5?6j!r=J|36A(TF5~i@p9F zEq75-oLnS#)Bl2&s#9CGdqEP-15t30p$_$mR*vG~C6}4Qm^nU9rJI;%jQ|O%`P@p7 z@HGLrEuL>C1IBI>|8+u^DJFA|?ONTkXGiin-~VZZUFWnE zIvTh7)_gv8s2E+_+ z5Tkzuc8jazo_yq0fm-$`h)3dqN#f*x^nJJ*ZZC+qQjMLyvhN$0Mj=F@-i0rtkw)nn zR04*_6GgN)97P;2V||-_nSe=eEHYqv=FaCW4WXTY$8xwVF3zs;?Jdbnon=%EHaDoY z`eKQjZ5~N!9{GnY_1;gvX~ufmEH~u~KPwNb_vSE*OD`0C7-fSeBOZ$j@(#99E?SopMQTQ%E5Drjp)wXrPl9$-$~=?6FuWuj0ZM z7n`Uc3Ieevb6YMEDxSp@Hjv2@5`LdHB}wWK+5a18#|rjR8Z$qh_7A4PIfZ0sABTZIGv1cFl3i!ybm zKOe92CPMJYFNzef98|Y|{r>XBxJ>gEfEiyT8d&-C36pYGV*OFN7JfkY|9E@ru&Udw zYt(KFx$;L^`EGDG8C5mhSFFeG}2=?ES`hzjMBGo&CqY zuD$o;cCGdM-SeJf%rVBKyruvO=I`%T9-?ed?{y5LoiJk7`j{ir&2>iZ9l5s=hiFsq z&6TWD82Tz4=6ReAQiNoEP=8@Etvwn0r9vyC5rE~Rf;${W>;l>zIh_r8RBNtOX5j;7 zENSy@1f|RmZ&^JlKAtQ-Y+;#^5T-lhveGJFjn8!NejZ-F{L4VJG9(V$u7P+Rs8;>} zYwInP4PF_Sw`ii$E2)*9=!iHnI9}g~_jRTvb1T)v?1RZnn3rUW#8T>`2u%H#fpPU&LLf4A9b7lO6QO zEYqm6Q_7U8$LGHlOD5THb(wne5swI2Y*^TPUec(~<~@wrLhcqmhWUY;M`K)_8ebma zusB>wJFKa8d@_o+;Jq}=<+2~ep;8)Vb4R+4TtUnn!TRL@jJt%Q5kD%>VjPD~+yuKU zF18&t`k+Oum1UQU7qB#m$EEMGo8&AJ7ixX%3=IFm7q%*$u(Pqj{|c4mzF^*Zy|{{v zA2x^TO5CYci8t>x=BDDcUz*t{yBH;cHYv1zwKtBa-ky@J8|hwldpdL5kLzTtv2n~5 zd;Z|CRCfDE_oY4qxM|Od>^Ik>R_Vs^mr}3SXHD1y1F=Y1^H|`fX)-N0*s?jtkUAvS zegVD<|0LH|!vn;BAhi20MgE~8JwX-<&9{({9h4)o15@6ZHLc12$boB#4EIyK$Q^v6 zo1(3SQ}MagdZ3RCO{3bT$gsl$`I&ekn`6wr#PZ}~x&=)V?z?0sOqGeZo18Krw9Zs4 zp{yx1Q!V3hI>cpiusa$q+rcc!mP*?##g+)!%#w2ok4y<8m6TlDOzeyjPou-%J{hVl z+ZPCsd-Ej2emBqldz=NginWgP0l6%~b?F`T8!PC?u%sIl4$?G!u=>S(N)fRpAr?$| z=Ar0&k;UPt7rfK_$EwyiRT6f4xzGd?*WATrz0V>jGd3VH76!wZZ0Tx4XlNfeml+SE zre|MlZJ2Tu9U?}MKa6CKWlf{Bw?An4O4jN&N$kC zJt}uZ^MvUaNse)4X-?_NPk(Q(AHT`&l%LJ7v#;b)X_R}=sDjBGIDYD7nt}qjF9fb< z4cN3Ka^(%Vf6ijNwu|dn**(dpr7;tIFgei|W0X{yfp^{GJ-euw$QPkf{bSM7w_o`i z`bN^>6I0VM$XDNIO|wQ(D%hT@bkgi=B`r$JD9ck#5$M7kzDlFAlDn{Af_!x%ybUdZ z#j!@jAMsP~KCOH#&(0&)XF9F&UxO&4n2-fOEQ>@ImQpHYa2H*46ZjQ))%p34z7d-@ zL!7&W)0Xz{&B+DgVuRRhDXp$8;g74TSwg2<-DWTzZp8GPt4-d3JmD%6dn zzWmU)|L{=;e+4VSaE)bPULsdbu&;)!(x99^c9Wcfpa}`Fucpr;uSVZ&{hfjWb7dxc zALDAoy^%6Um5DFz)Wa}ZNLxa2kVER3|idbHg0#e zaEb52C&Gtn@|4`g==`_Q zO=atNnZk;s`(sEMq@e%<;UlZ4u6qy42-n_V0q{ZyWqxNBlg5HAuiHhn0wS&`%^Y`vT}2uuIotj0B7Mv_ai+}o*r}Yo^>y& zBqg{0#3pr}VmjG9`%SJsSh#ZSwe_xs5#}AYcTb40JQ$J0wI!om0qNogNpXYTiPy2F0+=S$>FZZ9POF zIbfm0A&yQi1|qg`@y`VG1Vou>DB1p~B2{vp*BVtabpD!H|rfpe@H1C#o2 zz^KjYnC-%*{6eBK5PhZCm1(tmM^nv#XQG`44~~r=y;(2ysaQ}X$ z2&74dx@~!>Lu^h%p0C$-(#5b+K=w~U5yK!MB=ob&T2JaVHECJ7K|5>g7< zO(4pJg@lM53N824q4&M7-!>E}JY~V>TN8)@n^e%3VCiPaWGL(px!9-0xON0pH({s|3+C<3kV z9F`(U@2)oRp`$a&X$0a}k*ZhCZ-yJ;vR3Y{4pLB3N_1I#3?a<+b+mJ+c0JXEhZ}{F z_A3ayLXGY*9=ARVm}MaEvl=W*QuEI zg~8#lF*H29*OMVB!|HsrzX4;d?lh4sao4?7?Cy^%b6&o?Thre-9Hyy3IcF}OhwFky zqD7eIA1Bv$f)scBUn^U$CuWNfLPjJm|Rp( zFV4}gZ|v*H6=S{i{q^*`w_Ya?nLH`D6omq?bg9&n5x!fj8{dM{mL;Zr;4P@2#K3INGUUuJGEsv#i|0a__bAAi1UP7;d5rU!=ZH398_j%P)Hu>qKJ6Q4HU7bf_on6Bv_G!*GUy>%rLLx0A zqkzHQ;!f<1?yMeZk`f9fo;dXQxVYtWmC%72lWkt{xVK0I9;fmB1C z(RA0^x$DjO*)!dmfjMr2uP)hwgq?s6ihGtUlc7Y*l$ ziE!-cOedS|nn40Xd}4K$@ICT#&gv@h=zfbA&x3>J&6XEnkyg#-c%P z)j+1fQX#5Q>B5f^c!gv${6bGEYWDJs9IBm<8VowU##_>e+eLh2@*}H9HTY)%;^o{z zg;w-C9NC`FQuK*X(&Qa;E8hJnvrlR5D#n7nY9zo#WjCMeltk5<19Nd0 zzlmy4fC~=~56?4N=`j_ifM%&?sDifOU8A7}?gTH^*Sp4p4Qiijyv;tp`+e(eYp*|k ziMV#3eCBc9n|wshm!yK=2PbLHCv1B-RSr89XR{XM4l(gGvqj9mZ_lGUb=#*Rot&59 zG@rG`pZU>#AIo6BjOYJE8D9O*v4#KR6}c2=>+Q|y5~xvgi;kAw#}zY?%M1r|=}R;n zrjQ1OwsBn7!4k$LoTca}CqMu2Y~LofUW9&JfZ%@m=$?u%ZY|3B)1&F$dzAX~=TGPB z0d@`td;$W>%F4YtvY`IGyx?gEQt**+G$xBo4ft_8Y+*hJ7W>gM+dvoxt#Q0oa5n1o z!UOH9==gUKb$3NW;Z9Bbv9zAK#I#mwIyy8m!tQ!<)S1YIbo(}&&9dUCa$mcpZe-27 z;5F@P>_f`{j3kY^?z#%Q5Z5}-47>@^7fy>k4Bv-D5a~7J%18TYXLf)GT}Yt;xANic zt-~V#=4Bw&oEL;S7caiW!BOWTzreP_VYl3{U_4l8aP3zhE>}PzeTvWo4rhmUaiD z-SSoF$ph`$Cj{tJTU-IocW%4REr-0GOK?dTQEH7Ovzz7n`TiRQt*#e^f)GOBUq5PK zSpO}s{S<4*N|YEWB+{5@L7t)9xKE%f=Kj3-%_S|+i!ssCW~+X@^z7Odb_c|=5(ubn zqvfL%aon}{U=bZs6m7N0jjhxJ7mj}GI2X0vcPwvV;e>=SM#lclqpYzi?=1Pen?AYT zYY$)KD5mbNo?I5RVOe3bu?ws@Io)LM-t1kl48R>!DHhT^LO^49Wgnu#!il9-B_$=> zw@!{7sm#WsqN2LfjA5dOjLh#kIbO4~vGcVeDmtdd>7cdaEAp1&bSDv~e6CCmq$8*( zITuOoU4BYf&1Jp2S!~cF6Qc>qbUDh*uet|9yM?({bGpnvkxSzGbJ^l)oqUn>7S?j` zXpip5kf1kKy;Bb7PAo zn7}ho#4tf_-EuF6C4`G9_m7>0WCAU|@He@PC;djX!GRrw=cJoH-p5>5xK-ZIHR7_V*5_uIp4?02@+&(Eff6@8+SIf}jxk98e?Ex-Ff zruix@klj!o<52M{aJY(c1|+<3L! zK}>YC5`?8qlYouO!yjuPPZH@&Bw85c5^M(MPwVXuJ>j32?$^>d_s3nGot-5LSRO90 z<{cj!g@y;8B#-c(%O(op_}A+;CgX+oj4F%|Vt5a2O%I&!(yoKxtKi0~U#Sgz3mKb} zjbzzoq;%7*;bipN?%PQFR~OOq#T>Txdxo!+*oLGeBRe0{qLLCHToW4qVyo(lTl1%M z)pw)32@MSmX7@#JAVKSGCPaLE6;`{b!I^P7bM@+5ly(mlW@-5K>o{G)T69reKCHe#xNJFlZ zY;^sXFJFHAkP_jlULL%Y?OTiFlC?96M5X>1v;lOC!8Pvxeu79YG&eR*>FqANj_%A2 zrO^=utcHdipuOEXxjY9{b%Tnubk~gv)V4^}S^++R$&8QD9|HpugM&5e-(5w?X>8W0 zvPugx5w6;Wk!m-%df!ZIpxkHcI||y2C?)(`)h{Wu#A-4Rc`jzS#ZIEn^9L zgG%sT5wOFpbWeT=2-I*hHRR1vsg4zz48(+sN)?6A35y}dmVWFv!o`n zL~-ZeOgSo%w4)vA_YO4V2j5}rN<~T0gwX0r&URjD%1P$GrM&~s8*IY)`T26Xb(IHO zbKxg%LmIi>v(phPKXnt3rq|wGjy4f-vU?22==j88+?>K?U*?QQ_L{#gy2MZi8V7zf z{uxF}N=i`iApD0XO*_x2+?c2%>vu-bKHf*!!(sLt{MW=2Hlit6uV#?=N3l492R$eI zL$ZSt@anII1~eyR_1X=jYE3t^PAd!UZ_*jo9wT%@p9ImbY=$uQ3w?){4%&yx6}C9` z>Z(dB!@T)UUOl-~{wc-cupG$8OK82*9Dq$`pr$BN zyYIn35Rv=5zk|g^?AlEAk1JK*Sxix6%o{>xHtsQ`nN9p#sWiA-#|yD7T{&A`UC5vM zjTKWQQeb}V|F}OgZ0=6vsneID{69+2(wm{_o$(wwrr7+O=K4}pAS~wzXN5Tl4y)bs zv|B#Z-amX%d@h-#q~|QL73b%-aOusWlw-@;Mp9~UyndcIQhs8~mV7A!4K#WYt_+|V z+4j|^Ai+iPON7urgOP0iecR1#B{2*p2WHaFyN}rzjRtYzp+&y`Oj!vv2K@SQ<7gnV zMc=UN@#ynfP3B6b_n)NB>PZs`N4agWw_aE#`+mY`zzlKyicj&8B~44JMuq}IBb{-{ zV1c%vn?uR=X_uul=ObP5)gA`pFRxOX?o!-aWk_V{v-)x2sKE$uyn0}49DDwNC;9j< z4598lD4TyfzWQzi*2{}Y^rWOiKd6l$%v2_EYi0OKdphe3a1(Gir4zz4K0Ic3>E4FG zqNF>%btJ29;p%Rl{sxM*62puEA3HtxLFwsbnXjWroSxxaPE1m^){A_xrcqMyBH9-M z?OfH$nfduBHe1u%w|#&7_>rGa-AjkrpJx&=DulT8?5!lN@ld>WZ@!p<`yCNQA~@c5 zkKYZgWpGz(-&PSB@BP>QRI?lXO>GWn7!MJMJmmuT^LpPC1k-Fs7t^|JJ=VD_wi_U? zHvoe{4iQc08sc>9#+$&wyD2Foln+m?ptQR!iW^}V9m@GAp*CW9Dnswp5e+A$_O}r8 zdkkZkuR?0v{=EP-U8W^NP*^t%(0zCHtuprLZKDBM^{2i`}=l& zaEx-&@i%&W`|G^uIWxw``sTk#A^&gMdDl1?-$DxMBMc0Y)2#oShJNL+B%9>FY3hxi zI?Hld_@5UDN6~TZAT4d}J#6O5g&AZF3nTdtgb{SF(#DcJH=!) zu-+K)29crYcnkDpMt#`|Fuxh%+GJ&4M08ZY9rVAzTq zOv_t8R_=c_eW+;Gd=jTEFpr*3pHG=Ejk`W!Ahh3&nuxISFDebG3C1lKIByXzzY;sl z9^-WBP_eGETQCIpUTb9>$rf4e=^43w3|xpy&+LjKR1G_ ze7)}7bY^fySh2COJ!KWEmvnSI#Gun(glWKLeB7QM$^ z-^CWcPFGZ|R!>KC2lsRI6;8OS|M?o)^Jj4v6kGiKf&^myxk}D6o9^KKFQHV=R_<#} zeu#;C+TT3TN$*$+<-^n6T}6?&o9B5Q!3$fYr^U;IMc!!l1rtF}*~U(!UhBBGnp9+z zFjBs~y)9Lax-wp4NfpZd%-$v1wJycYGay&31f|VHv336n;czf@x zZ-0-boAZw?n*syDmCQ7ARL*umn zI%f@kXys>lrCq@n2aFzbv1!M$Yyc-FvkWR*riUCSBknK03RXjFJL=|X1_8Pp7VM#E z?hARxS^|;?#Uc@l^gPzGQ^DLnr<>ZK<0ja!L82W;YhVm0u6K;*wOX}J%4h0_1;{kk zi+<&BA5a*X*>3g6pBv(_&2rSrZW8{0`_FD=b)wI>y-5487 zAkD*m+*?#gS`1ml4GYcO^_lbdL7j1&ADxF4v=TrTVXLp0=fvXpe(pSNVK7(BpsLRN zV)Lvx4X>izevqcNmey3zsX5Ba!-ySJvar}%eI=MCLi`iP{ryZ(1iHDbu)UHxg>oMd z@0hDmG}6;1XvAeX_Z=0miXig+oHVM9|BQsT&kDi6qM?JZsHc*rVNs6?toZvE{?9}7aBfln{;Hjuh**W$}0(+~Y`10kvB-=k=> zRh`&5eZ?HNf31Q!5Mty%L(=b1G6#D#m`PNstY!c~!v=w&eD3Pql@m0Hd)S;~1-vSj zIwpf{&FC~xfDV94j@!lIvoF{6H&ndRy%yqb2{Jz2xl;c*swZI)GR4a?{w4b3xeN}R z+CzL0L=>hjuOhH3(9n@2mY{#%zC`Y0NC>UPc=hSa(HI^5`x_^apR478XjJ{v8wA=#q#LCZ#B(t?uC>Qm7yu4o&aK_ohADU@!} z$U=TuySEQbwY0iHG>{pWa`no~24%nLykp1T8#i1$1o?htK!R7;HGw99N#*`9MMcFY zo}vqT@OGz0a>Ty1-q@>`EU7u1XcTpO*zeHvtb5=f*yy}Z;1Y|u^jcMw-KF)#97LVZ zHb^&CM+TWm`&6Afsy7tmy^6KBWo8pU_sLZAq+tJ_(eUkSDsgbDP-6EK=IOb@ewSydp2> z7X0Yn5n;(yY5WM^P7fti9j3k(^alsmxFBFQTvU>Wy95&Pg$Bwk=UVpFsZ|;1ETP`@Z@?T<fz)>XbjU>tYbjEsCW6JaIwMT4FeeJXMVJU!No<9)tTAzfuX?|H= zVy21D;O1J^+aIn^Tj!@tZdaTIcjTbOSe$KTA0NQaF9G9F&csc?;lHz8g4>!*)U)KmXYVs za@AE)=?s(pY?x_fKq==vR&ZjprEJ9b1)C3?4;eKP+2cPxXFiQAE(q{*vP1-0?k}I^ zhb}>WXk^&Hg|$K3e6Stue+W*(^MG`7@EdQ*A-wVF3T?k$vra1}ksevx-4*9IU#K8nYFzTZ)?!z(W-zSHfA7l0~ro)0}$>FR6X-ytC+u zKL;SSG0*FjERp}$+rQ;Al6Ghcd5Y|sn|FHIg9m57Cn%H!;QKSvXO>y+jX_2v1Yg)d zM&!kdK1E&+9D=WH7y&#*-J;KCGD5s6nZd_Trd6%1nLPQnYm)|l#W=({Wzl_@^brUN z4V7L4eivPjG5^i(8T%CcDA=a$`w>aamy*0oT#(3$1oTH#^V+A zYh3ym+FV}Y_>=TgJ>=(tgO?G)=o?;=n@&}rI$+RIs#jR-wv$A22^Nwo6@nKINgDU` znfRlr$wf*^&(cCtdgs=CpjKnR3(|$}4xFJs@3mGP64R-XGovlNv_etA4RbXskz+8Q z>G?0plN~v)%W4J**Gl9Vve~XKccpmFR>IUkUn(yGlE%VZ#`AQfRV{o}lS zh#$_PCsw+(W+>n1cM;G+k)(Slbr*-r05KXHDRu97dm*&NalxI{1PrB;*uzvBLfNPy zKccp9$uGGp5D@Sl%qs4eIGA{b3htqk>whd|jhURBqQiWo&&hm?%vb(IZ;9;5;@%?L z>+w|+NX-%%xc>EjLd0j^>wiSWE&nt^7ylz9W(A=Fsa*c^&eiy|wKb@%$1d2jt4^Xd zb^FaAyEGjrI4u4)#c$0~9l|ACb5f7jnSl3}=;>2MWyPP0DhoPdJ@LgSIS~vx5{Q>} zC(4C^i3!0Q&HJDI2t}J%dhN`Dgc0d3(~p1m#a(;5X4igcTo25aD{!ji7K(w^yn&O!?{;_mCZwkB0qLi!n|?lpdyqC*dmj1^h1w;mc4)0|gfW&nY@6XOZh*H^h-pFsE_$kJ1B@rmcZfk&=v z$Q0rypyvkD7NttRDS+)}$+#K-u3$krI@pSidL*i$iSV-zHX8#~1ou)U3@ZXm*udi_ zC}FBtn>$o#Hva5vw*_41Lv)TCAK_8jEdEr`&}h5pH9bA;;g4+u=?q}p6{!d0?eBM| z!!n%>ul8PG#p?sz_==q@xsS@VF3x11z6dluBa(;*FJokqCfWj-Q*Fd)j*gDiPC#^Z zLzaeyuLSn(d)Tj(lbq1#iqNMrFwrPBNdn9NeD_#CgTy{)0qh}?E&_<~tYU zTBWfv5xKPPahj1!R61K*tpx_mKCV7V901RkPTgXgIF{z zNd^O&Sz~kU-T!MF6gi1c+CST%y53zSZ#0(VP0;*)2KtU6I*ZA+6UO>oVYRL=VJz@4 zG=!a_+Qc|}=0FEVR^Zf8qBeV$oF3H;>X1H+A49;W>Pp1E(hMGN9>A4F?5+k=#0ta4 zw?%q=4+|quMpJhU52ITT-I{5`?|=66=?7|GO2TK)X4`|O;Pp@{(#=u(RFRO7VA$4~ zSo=It)S0u4g?azx5S4sZ>ikm|SgHk}Q|-0>a}7zegH~(cLu(z^xS_3s5x=^pdmbbM z0%!q#gRf*{EZ48na}JWhJ7O4lVp|rIJ77Lh?c`LX`%Oz<-%A6C6n?JYXu4NH_kTey z;=7IZAiT@UD#fn|b)O%$?7}n!l8i+~0^#sOJ08zy64P(%xIIq;vnvG(EZT)7;RQf` zaQwpYSQ!obnzE2gYdLN34VvFB|K$Q+9!*cfZZ!_=2=abWw6Kxl6Pv--!2yb+SFiqP zfI10sF7CH6nssIc$z&}(*WKn)3FLVhv^{B>WZnH zk|oBO7R_gusA)~cFY=DYn@#L|_U;Kn;QR*V0r?L9U~+*o+l@qR42)De6R9+&1nxf7 zY2|m|LxhLv$Qw z(sH-hUyiY^C797V0WNFo_*$89*ETGGfeb^Q3pgC67K!SkLCKIvYuXipnuDzZL%b<* zIk~o3@gGbO?gq2Td-0B_`NefVffg;c?KA~DsKZ7#D#$uOB*o9wmDbY2By^%wn7ZSq zfqVKvAxAll_VU=y)()jwVP=@bc;1YwkrFNhc(Pg!c`}(@B9e^kp?V6;lRjb@YiAK9 zmSJV4s|cgAB>bFnoD1&1;B?f0TkT-QAB~dtpc;xmAo^gD9`6NSLrCe=hs8!+ z-o%-Y-xQD+pY1syvA#2bCK^ZYLa!W(QWm&L`rxUtJs}r766tZW3VoR;#gqRc;s9Eq;E0?11(tR_Qz6 zfx{rwVWD5SxZmje!g?vqX2uW}u~4cxZ6GC2?HL`6D=Q>>mT8W2ZqxwMnd%#JfUN^_ z6X7L7!41}!g(83Cm|UUsYM1>oJ)%g**RuYAbX<{`{XW=EhpHUx@<0$&2XwGOCRO9e z@KaUL4h)@O#NA>HBVaGIk&)`wp~(8%8Z#Jee<8Y#m~q@~-%Ew5ej794nkolF*Yo%h?yv!DZ@wSHT}L=N z`Hu!|BR5auf(sgj%zj5K@xhUy2G{AOt0-kvJki(-w%~UYs@>lamn(iGjH|)#LkSkW zV%#$W+d@TcB>3q*YcUd{p`lIEFK;7UC{9({XsJ6)*&F1Ob8LtN14 zD2Fs3|Ad?>#Ypm?#tYh%=O!8L6@{>w@QFkurTiw$Y3O~6PY-8T5C{ZpoZ)v05BsKZ za)Y$fMn}YV04DD?d+W>Nc^PMq{%e5_-N8)`P>#SIo)jO)V)=5ENIbp-OtBEeaA$r% zMJ6oZ@+=B`s15-EdM=c@<)1xd-4{Dvy*Ims0s2NtI|v zvG@&4<;0q5BkkLHL`X?qK8Y+AQNpdmIRd>Z(<)6p(03M@33%;Cx4> zdDkS8T*bZBL{(MQ%Ic0!+`mkAqr3)#h#oNf%UoB0k6Rc6eS@T7>UWMWhsKD~tsZHP z8ppNzElBqCbU$0c!+l)Q=zE;A9088Zu;)N6#0LePwb8HFk^3-UK;Y-^*I?8e3XzhZ zM$^dvER!^xfn{V=2F=ZOxG0DhwR}FsX0*hG(AtQ!ZY9fe%}-7Ff}ZTbPVng-HaiyX zDVovSFL|lN3S=Q%Up^HgdE4EV*H0aXp)g^UGO50T>ejcd%Oc74&Q zZljVarV43diQHdHHZOlM`D$UZ5k)Vd_TFt?$se2#fk#>fPWmxpCRv)G_oM=h03>xh zw3`FMiz&&|#(&qw2=%4(w>^3UOK7o7WGSsZS?d))N1}xq-}dM(l$ns8;}uE5oQrlX zA6z&ptZ`@@v|s~+QLn*v-C&yZS47C>`?1Z$bL8!`GbG;5sM)<;UX;-XOM{SsIlq1D zUM>g>`&TMG@8LXIC3pYf%RB^|ZUw|u25j{;HG^Hhx0A&9szb<~p@X7Tn&D0io6Y+6 zrnEDYXEa7gj@`<_Opfw1RIv8ZzLIiHT~)S@eNwEVtQ;nXmZ+vWI*lA9JtEMq;7FYZ zZV=)=-IgHDnL>A%aOTORaQ0(+t0Axg{lk#H)Z@ecr@@rHyjrV;Gv-gudj>fH1}c0X zRgXv&Fc{R||MdKx3(Oo6E(gu)mKK4Iq4%7wNz37m(cPy@;mk^p^M*@J%Pl&t9o}Mq zt*8)0pp@d!cgq!bmx}iHbh#v+&DPM_7KZP47yG(T1tpQr>m}lq)+<(BFUeExauqg( z3YUTgA3_D>rb#08Im52@%JC0ap#p@Mx_>%>jF9@C9f_eifdd-ICoEX;Wx{niWUOCb zyLqusw3nyxvdk021Ew4z4B4FBU|P zX`b74OD?J9mGIc`pYjv*=pB2Y_hk4*j>8?(5yx^nA|xXHY&#$^=j-RV!Ys7T2qc64 z)GjJ)*~(AU0ynSzf<%2t)A+LqL3jZj2g7n^hynt#N6IZ#6cyilczC$GCmBLEmPygF zK=+IN-2e>w#S7E)}Er-7XNkwC*zVkU) zF4HW^%R7aIeyMqH#8!W%_Z->N%`64EUg(XBr8o0+@6S_FK?n}nEcb&TpD{;S$mfue zV{N2*t($*~RGvH$k&&F7GHkufX|ic2{o+*bACx}f#mmFAC|K--X)<&6>p+#owhKKRNO0KbyAy4XU62vH#C(BB1UVFdcI|ozT{wzwKRv zecRV5dV9xkAd~!jTGwS8k$%B%JC@A0#^Wxg$aap}=hqj%w%s}348C2hBi1IiHtzZg zaV$Zd|49A3=6cl>0bTrKPQ!ZE(#~%G_;4@HbsGMCAWs9d@bTNII3R*wTcbLD;XJc` z{?ke;LywR#dN%!ui}SdH(G3mFY3Cxt}oyY z7V3z0CUBhVrSTEpoZBv7VPJTVumLW@=l3}iJt-DwMZH^qdp=wB09So#adA;OOO6CM z&xJ$)&d7!>Gp*sGhk`JLv{>jS+<0u%m8-_~=Ucc~K+ua&OY~QdyNAF|Ry*#AiHpmR zS2!Q;R@rZjjE+M8;`bCH{9I@_U_CZya`uICluMu};XmU9d2YSi^>5$4p_0lGOMSTT z#S%n|gfrzo^fO*he2F41J6ay3YyXg!XQrn|B#Ct6MqOc$UGUe9C9n^`$6HxhDXAeN z`P2`WDbmfG+|96-!ER@<&w8m}(`7qHB%IX2!2z_3D3$_(g4*WMv^u03HC4gE!BKXg zcN;1(f*HH^N|yYmXEFS-kFHxGRrAE|d!4^Le5YAvXm5g*Pxq&gUdch26=G)zh5?ta z-`hVtgk=mE=DlrgZ6F_QZqAVZqyYai8>`|LVYisRp=)Dd@tD<$SnKH~wJtB=F4)wk zn*4baj&=q#f{BoD*on*h-VCJ*Bd5wXh|&ir`g+S|NQ_oHGSOPrx*S6#^1b5w*aBMd z`=$@F7{)|4y`$Our{+KtG#}bGBQ;j{)Hr zjQT$=OekIX^_ao%CC>ZT9cR_w_c7IC*``vzS0y($w@R65cvzp>`-x zPuWe4jaM-&;Hg7j`TRp8ilwDx?~7pLrM^#PdYuWvq0jJC7MGUvOn0OIasg{U3%=IZ zb4x%31^ZNyXe1?nlJ)7yan=I5v584A9h?@wfk~_>NEJ?g<`)4SLZH}iv4N~umF1iS zgwYn)U_N~KZX_TiZ;_!XbKB>Da0ayn{$YV)0nd%4^@*<=$ZyNF8hsQsssz~f%bgA^ z#Q111@}x}|Arm)0UlA4^^04(k{`AKN*Hya`d-WF_?JN8p3-Ag(uVJ934&uB%bm{6X zFLd~6nQd1`ydDrlP^dg32_+)^l$FSD7XVnu`_V<9$an^F)zB$bf97e_j#WFRT*5*} zpIcgTJVsbw(Vd!&-1QEhP@T324)e(dP;AQ)JtHC_ zklbAx*EsTdu96{vEo@&q-{g;JHdHKZt=sGQ;E8<36IYw1ev{rzY2t6m{mL~?_Ir9&0M`^4&jn_DDDDQAL z(9qCiNW>47nI(Rv8u(T3)@Ws3OKFbs;jEzOZO?Z>>8Q2aNd9}uOU)E6nu2EW<;!1C zP2ah>1v8qBe17W<{aT|!tN8?G)F zSW=?`j47zoBVudBQP^(tCny6EYNQ8$#hLN_VvcW!4XQZ-<+;D zdZpGY%8v>m&y;sD8Tl9<9o&~6fmJkOe0BmlpP#?I1i0MR!omUcpI8afI{a-dnVXYR zLyaonZ(}g*t*gxBN_kRcG>}Um7=S{qct85Af`)A3tDEZ-_S>46nCP`fbtUn7VzF3! z2=Uui0X-qS-$|Dt$bp+v(3u(PV^k4TI+J0@>nh6)4@ccRfa_pqXNSg(IYmV#!s|gG ze^nyA!9xX%#A;~JK+gX6)|VVu7JedUR0+saE+>OkcpE$_^wWKMGD zn?CLPpJ%PxlmRQ%3PzUxnHD%pj-Om>ga;uu73U#hhzx6ODbw!qWDlWMz3cb>Smmpn zJLKI;lEWjCq>MaS{P#^FbmBoe?*|s%(_eiFUZAH4Q|7Ak|C#G~jOn{@lF%`j$~;Bf z`}a0r^vdnr(W^Q=61V^Sd|i^nIT_E1h=@QO zmM2*D-LOZa+F@m7DiSskJtXv5T3GP*?&_ie`7&(xp{4`lFi3ks&j&JIC-Me47r5*n zzDoplC{tp@^_LLn>K%8nv6!uTVQd*>M?>>uT{=ZK2e@O{NxJ|(jAQ$g^CU=ET5cw4 zboFOjGZSpVf(ICsVdr4qd0^7DOR*&V3og>^o)6Jr8wGa@ED%^7s1!VPsfG#Kr+)o) zqtmg!U!ayE2lXWtRie+#sm-&kx4g|UOeW+KW&+fuq;k|iZ>wLw!cMA|9%lD8F+F|o z&pVpzs-jF*2h=Nt3cY;%>1&=JYcORr^X}5^dOi>x(kR3P{382?#Qsarx5ajh>bk>N7#KZ$LnO9?&h=94?D}p9Wws&=JQ``y!AM>}D|Mfz`F2b8^m{ zlwdXZ`(0gmV=mtPA1BO0aZ{EW?>Z&4b_1%l&bmIYj>!@^cp#qsg+d|X8!h?0YZ5wL8ZA9F+? zxBg03+6uZ}8?m$AZ8UPlS{DxW5x9Y&ID-rI;juBe3*pInUdA~8)?JcImDhhkNtVx5 z#h_~M=Dc`-HESCiXw=Hm($dbq;dW0qCVT!kx}L?> zy7}wZUjF{p=H`(5*9>FC1TI(g&#yJBcGf3&`Bb4B0lOAxxSq^tO~M^dsb1w(i06V0 zEeD80fhKj+fHr)?y!}2Zs=FkIGXkZcwXW{Dr8jutYFj6lj zzUo^8y(<*)A1?vH&~xGY`uXtHHvI_GS?A{PH}j6n6iaHEM|OkH7}3B zyvj=vn2?&?!k8o^e^k)0LEZtWsM+~zLbPwFxb=t2p+sPm*`-4JgEl{ttk*! zBU`Zm{wRY%_Z2z-6$D9|F7GM(uClPOBykP`RS!3(yQinNlD-o(;(<6EJQif?Rm=|= zWR!f-DDI~g+~5;=|Bcmp@mJB#(!e+<^^ZsnNJ=2mBse0Q2{eDxy;wQ%Su&3A4Pu}!^iE2rXy-PfcH)xHzkRc z`6E@Ca*3fblh5LOiOH}{TLi_&JT*u#fX3~tnMPZ`R1P0)_0OB#NsfK-(Z;voVa$nJ z(rC4&!=-mwS_cNu4-8j^N_ai*#Y1_AzBQOMxHYKfe)4@jqrNQn$InEvGxZd*6(4w) ziN`W}Dc(>fF2>I{8Lz?4n@Rg6>vrufPtrqNz9xa6ymnu$p30Noj+SaLn67~2W4wGF zKy^8I4^w8bP*C1Ke#Vooe{0Q0&hL?5qE}=~a;5}Q*vH^alJljFk;qn9tAY~tO@X<3;k&B{}pT&q2;fgb1qfxydaathMk^2ZPmP-$Cx zw0Q=}U*ssezoSF*uZyP97RXV{QYuP+G@T+C2;Nm#t;$IAJ&S*{H}aEpihcmjV)e&7 z?8n>)ej@X_OPDt>QHCY{yob?gQ;%OZWKgPAKo#}U^oqZsY^PS3n%u8iYOG|Qyavz_ zRa~##Yatm8fITURXg!fcT-|LHiVaywNu;X+xVX4|Y46?Lzu}=Jk}4Myt3Q4E^a%$3 zP2VGr559{tu!1_+WrHj$-tL7=0wNZqF@W7fT6>}%yxE9I&8~;*;AD5$3}6-Dv+F*I zne~%bpW)*Iw8!e{`%YhDzXfc%e1p+bVK%l(aLH1retr$xLO2|@>-e@`k5*VK;;R$5 zXF2nET(m#hFHoe{W08qVJllMsB}yDj& za)G|!KR*G(g%k(-nO0OeS_rN)T3ua*r;l2Tk4eCX@%S-*ZHe)q3_JOC+h|0eRYcG!{w!y4q9PedksuoiX-D6u7xIU1T1oMfRks?N z3vOKDL6HV_rZ-20NsRASjz%r#tWv3Q^sL~k8xxyv8X6nFZRxLsJbKktlbYQznejP6 zDWcUvc8J(8Wv{V>m;bT6KFa&XJIr_98kQ?FowrFYtOgucAA8^6YCMj^V`sQ5j!Mk29~f9%?<(rQf-4iS{;6FLLG`1rgSj4pYKWmbR?rD#m9H0Pytv1>C*26X|h*fJT-2`udPk z+6Aa)(-#Lzj6iQlms?_U^8re2E0fAtr7e|!d<|hAdSq<3fHY<`RW3H;+Yt#+Y(n{* z{(9^D>f*{PR(K;_E>CgUXIKGvV~LT}TX-UJ4msJ`_erFA_%4>h*J!Z@LW{V-Cxk$k z4bn=KdCLo3Pfzws%%_^NZnFX+2_=%uCs$D!29CJ2 z-uIwPqx8P*ChgJquGDzYV*M9)Roam9Vw<=@N~Zr9`hbM#bwZ;n+ODpy9kP{wCO51= zPG;$$yCo$}0Dir8=h2zY8Y*{Ezt3ZWbnw7o9?%H}U;z;$c=qnqq&i_e_!1R$(Yj3{ zo;8WwSXbA>aJ@jgS&pg(^&1BN_l{U5CX=CJK+DNryuB?pFhs(L-;xqf*;3kAN0aBRF zAK=!r`czutX%plnQ~MUu4Mm1A=oLrMXg5ix2qfh~>HM(!Knd<3>Ln{K3*TA8h_xz9rM@nJQ<8 z3>d4X=TjTgcdd3=GRFL@v8kykQm1(8YF+0xY(kD}6KWn1{!5c$B8w5ZC__a>_4e^m zw#eXdFey~YrPnNra$NiBu-MJpRS3Fgo1AESsOr8h?)z}%TshMll+v$THz?lyyDvzEB zf zqUzTIY#osd(2?m}z{mi=W-YKx6ueI^1A?D^jpY#G-HnB=(A!ZD)#mcvOW-*l5DN>+ zz?4=?;wcdkWw zp?45qnaNQSN#b&qTugKs+Y8W}Za$Fea&ZKe)@0JEXdf7m|9iz9$r_@}H8@$w$;r{P zCjyMOFQI}?uI2zZ(e5LF$ihfWpuuW^pJ?px)4_5F85K}*Jkgq&SqfTUTx#MRYe1Q2cK<9TwSYP*L`XN0)xEAXL z=@_uUxuD%&rJu`gCQMEj-@~=0xuvnXAYE%%0#4d}b z6^a480~W)1C2_#WcT*=Sy-|R!goWMz88YQtY0`s^OCA**!LM9whsDYBgc4$ZTFOOs zPO;En+!YdE)|ruTQTcZ%CnL>Qc1J-$0f?*LDvZ0HFJDI}^WPdVmcT?e>Vk|61CZwz z7Z+1l40kp+BZtiZ56i^JSW;TLoZuB05D=>)3qoa$rLr0gUOk}TmTA#{fP-{~czma( zrXqSzWcqtIvT&1=lM6mm(VOKfi}#zFSKv^mZ%b) zuC=B$mj%P%3tp?^XC`Gv&Qv?PFd7%s?N3vjK6ijC@<4*${Y2-zK1zpu$CncV~C!eomH<7&df9fNaJBr z3NZK3ntma?TxZ93SS+0zpY-S5yz z#lT*E{e!3GUGk9h)}f9YyWDpG;z4cje3@xvh+-%dqzj{zuDM8|hc<3(#6W-PQbzeZ zw+yq8-Ql666nJ;G56D-5lVHw+_8;!J_1D6W7RhnVC3E+TNc z&K4*$xJ4awTwGS8_rDMuKdQWAj3O;zpaGH`Y9L(%6{WHHlHy}*utz7pI+%7VqrH0b z<+ixI7tRcAjr>-rht|0=kY+kKlr3pL+eiSpr;Qbk`mO?Ohp-YlS;XuUCY{eK;evW? zzGR!h&2ht4CL*9{kO;2@cFCf}Ku5Y^Li(Ef?FDa5jzPsz=vu}i2y656gQT;ff;EU= zuCK3;*8&QLO9wg;7p{`lH7>^#9V{)#V;EkeObT=KSOv3`#=*%{4HRDj0_xQX10q+L zZ9XT8sqd9uqjTW~Q>~A;Hvmc5d?b!EDf7J1aAN|4!%sg)XHeC5* zA#kERmR(s{)Ak95HEaBuPyjPJ#_MNwaVzA(WJch^sDw--3($=Kv9x6b!UqU2iS9V; zqKq084rE>|u8SZ>rlqD@%?|voC*yYwLje%SJjZiO7Qj@AOQ2tMvtc!Jv9h+$1$W_} zG5YqfVGUfi{7DVU8^d`1`g(e?4`Z1heu`z@izdDEZDxivSHGL!`DXJRbpN3Z8#o9z#n4y8PJ~#m!suO2iGTQW%GdgYwT3k@YPU0AuCTGO z#fWbiRq%deB_66hlm+{q641+8KH6ZkM6R?z-G0CTf$4pUNh^(nPVK}Q@)~|^t zSqP>s8VO{#?+XaaoWzB=HULs-e=SCFf{KnN&on_kosWRz@zY0URt}TwTu*gwO=%%G z>%{o#+59*dVG-PQWT;#xifBfqUXQ1G1*14c^)$EBct!)xqJO`SxBzt(o(~(@J_%E{ zKZ^#%?C+U@*cNp~zxF1C{hjL$#pedfY~Sj>QBaO4ziOaoV~hKnDyC}zAEt8nqtiD} z34e1fVP($nQ#kS*dA_dMxg_oezO?|T73)iE``W_`2}f1?Xji^7mcAD>i1(&ruU0-f> zAulB*T+*|GFUicRmt|S*64RLxwG0LZRWkB+o9Mq4ldyYw{HC%+Won>%9T(Ae%SYk) z_q4!S1+^yOzL)Z^G_f!JztZc@JS7Qr{8zrrcb-ARTF(Lkb$k_4BS$I@WbcLAjpe2S z(1j1G*E0w+hdAhPS&rzFb$`~&<=xh+7{t70e-)xy9v|70;OCrCgOEb-+9(42q?eliwhw%H0Y7Z zi55K56BCriR49v@XlK}dp?VQo28K`oG5nC{`R>tLNyD67Yv|^}EsyWLKB8#LstaF# zK+K_J?G0!p1U2B34i63ctR#F4(~ zqjwcIj+PNOzAgrta3DhC?L;=KzTWXQ$gx|=@I6eYKbUPcZVYn|OsU?J_W>C%{-BuG zvE&T%{Y6sF&tk+AZA7!S7|wHDhX@)OgW=U_F!VlriuyC;@y^emKY=;!x$WttcsqX2 z>rn(qR-xGbnML_MCgF4`(WJa8Dl}kl5FXKUvn2J51Hce9gvM8WWy#_Wr>tq0Mke{ zOYAGPT5w{f(Ge957J4c$4wv%?Xq7+#i`L^DRmZcf?c(+98MR`>hoZ*q8qv5XN#B9c z`J?4gEaL5N5tj%eK2lC$|L!qmA6X~eg1P6U*CH8eP5f>E#55-q2>vG8HqxcujA)0{ z2eLv=LV?g+(h9~KVDcep2Q>t!l_3N-f3O9e3y^uTku(sj zKq{W^_jGd*pi;~t4|8O24C9G@A}+N5f*hugMvv#rM%IAEsrWO5eiArEdgPPX?gr#a zQKCke-pAGYjgbq)MydXUT+pNW{&5hc!#+ZM{ZPK4`w@`*9*dZR+>4}Wfjn6fjy*y zIK20svHUW7WhE7n>l=O8c5nd;yjRy{`b!+35Ud3Sz5?2wZg8<3Er3FU!d9j~wL-^F z?8JH`??HbNKCMFcAGH`3m#D02t6Px4z)WbbZv1n(muErW8KqYh_3mA8-fqm@2W#x# zB=xeHeOkA)gVYn3Z&~W4n8kZqsemseB`?Dkk{)8UeAfR!zrfiqVB)k^yS}zvcZz zU%)u@;byVYwWj{~t~8?{{nLNzSy{aJN=N+(Siw|8^O3FID;uMQs(AFVGY=IS-FBG= z4W5h#6ftAL4}jw$G&W>Sw?OF&FgO`ey}X+o85H<(3Z(ZJNokHyA3_(d$CF$(6aGfY z44TZ0_tGW(#oF5)@up)X#I6{Wvx2_nvJOK`U_h-_9+Zc2-s%h{J(xjH8tVI)`gj3< zk&>^atqoF!lniZfupkiL825Us21Z25K4@8rjurI`77ByuxGvcU(JynWM5zN%^FU!KUq+keG zV^&y5{_>m8ZiYup#>S`SmNEyUvz=m81T?h?Ts76w@CLc<=c4W{Sc<=WTam*k^5+A> z9#MWHarq(4lp~$bOQ*BxG} zG8%b)wG*Xgl_vSh9Pb%snaIM&qW9kLCQ>OsQ}cSm(1|{*FGIU#>j1*-WtIL4MfTm-jxHjX)s)mSu!*-%jRB^h^z z457E#xLn)tYNS!ynZxMm!P58ak0lS4RivqPK(t64DbH#4DI4n!{`w*L{g=XB(7Eug zq8|{2$*nkJsGE^gZ>Q|zgQ}`aOG`ib=Kh+-alnGI=N>UY>hb2}O+kkai74l_48$I* z6qrw94w^P#Z4+bA+kZGR1fz*)^7|4Mr9RfEtqO-PNpy>YlWa5=e0_Zn(#trYvjf;k zYWbhhnRgzBm~vBHBff@!Iek=YBP_RXWJoCaeJ|zEY2Z~gpmW!IMWb5)jZxr@-0!7G z-Ho`kxp8|;uLh`H$)etut#g1yASERo&d93O0XiNaT2dIb1KwvVzt;7-Z9G2InhEH2u`cyD;0(&%1*zph>qWT#ZU7!~J}-)YtkJuISlu#t(!pKoIh ztJI4j0_*X;=QdPN#NK?zW{ACiW9Yc;)AO*s&I+7jdm4Djcl!3k=V-xg@Gs%}s6;3z z{twYuQBY8x-8TYXMIW|!p8l0sn-mf8z81m84Yg5hOf+^^vC*pY|6Cxlq9tYNv<5c4yt- z*NZ8Hw@I(0ycyA=G&0pQUeO6Jf$+ai?Z64hyRQcCWR%=3q@Tl9oX{4@P z>3$P!;ctyiaqwM+(5ia*J)xnu19%7pdFl*0F2p+glbBDkZ!xI_;I>EB zkL0g%TP2zgLg@#pK|JR=yy8nMsad^_RX$-tLlfst!>z1yLR~JI=lJF=FRu3b1YzT zQ2|~z4hy-32}L0?9O>B8>{s^fTlJSI;&2ikRN%IR?-UU4JK z#Cz-Q<*lg|V>$yspSWT@kvVPJih1dAkT?VT!8m|T!E2RkkrG8LV7@mW;Oqgvna_51 zC!5|)0BgD6Jw3)-t9(1|WAAg=I0ggy147n{}2P8Rs~We0VP;810k zU~ze?XAfD+!4wIhp1bx`k7`S%&-(H>U>>Uv75J~VGcFDNvVW1e&9N_RhTBfp7?dic zt19e*=iB@3_e_u=9e%GGxM}f%d%PO0+|6hB9v(FbmyHrM zX=Xi#MhLNn-~0ahpj6N&6#J>?xWH+qYrizR#X!+Ptl(LJU;U22oag1N^HU0+t3roG znysc^1_UgF5vNVFb-J48*)zy`FGo$5?d5l&d?`Q`e9 zEuTROAAVkRltg5~k_7~s)d%Im)a(XaK z+$9DlTau8=zEy;NFF(_}z@<1D^f}36B=Coj)xlk3;9IE@U+i~$eJ=QnJI7ZIohS9( zjwWo!(^b{;DkoJH1@}K%7@my;uaf!AC_~@H#}9+%CUw0R7DHL$gnHiR9qBk;%JYa*-Q}37EtsrG z6QbH{=R5`Oo4?DhDA>FZLXtzVcEC_>>!npvGuEj1V{{KAISGj_LUv zUjVn9?Zju1RF75tQ~9(L+f>7Kg+&gz*)rR-t)qmN%vtZlfnnC;Yh1yLZq;9;qtF|U zYM0GqMS*LZDaTX=0v%}5CnSX*p96w>6}j-UCbDK?rESjUhpTOho7Bex%U$Pr-$LIJ z=aZGCdsu`TGxLA$rpo%p^@nQNY2JpzziuBrd@!z<$)t0|2kJy6`D;plSy@>j5}vd9 zz>{CTOsV|!6>n{b*?;=V+kT=dGH7YMcdzSY#9GxT z$tfk>?I&y{u@KH>_sP&fQhvmx=^)ZW1gw|UMv5|Z|D5i zF*5lY`$WTiRx;gOwyhM0au#f+7g5fy3SnL|-lq9?`SLz$>Ul2U@Y}eJR;E+<9)+7} zewW6}Xrct6olZB;<;OCa$_bT4eWu)*r^$tl67rSPAm&L^Gezz&Om}^9075U5{kv(W zO4aq<5&R(uC%j_V7$kQ!S|K95>jR3#5sT@AQ(oF?ivfj9>*V^)&fuOHp`oVN=Oppw zgP&kE(g|BH%iAXNZ5ZpDPeX7i8V1I6^THA0k&e@!K!W7oZFTFltyh~F+M0B#idoEi zH$#}|MSqD|%uzGls2-^o$YfCSb;qihNxzZfvN2C^x4B-|qcqoHNNs%542j%|+$?W1 z$d-68ViJh%*E*ijWU+d>KEmDOL>w+Z0v4*T)x34trmJksbf)LkyBW5tY;Pq#?iF6s zl@h1MPabE+7@DsJfu-2cV^SRIeL4K2T=435VB1FyUR4oD=kQdV+J*9iSfPqZ*zwXyZ0owZX`1ttVOn1IhI3~DNuwh&Yf5~Wa zRR^L9=t$mrwc*VjFmVhyVy2lJ)<0*{yaQ4O+fR-l9?QL0S>`5s7yXl2wYwM(>_!@G z-qlPr?fS4fj;?X&dB8Zib2{eqZ$6f2gBqly^)1znjv6+GM6w71jEu*IkKP2g+Z^`gk@nB$=H zv@YjIx({kY&rSiD$#2xHdLvEjR?2}X;N_|fj5nLH?|5Fy$vM6n(WmK zzx9E7IPbX|t=h~K$TR=GbIWxJAtmL_7a{wG@>(ZjcDGP&3FD3)SCFnTQ3cp<7B|S6 z;<6Tp(-yv+ifb-tNv(QuRa!Kzz*#$hclv%K$gzz2%#r0NGPen4Rpe@zN|YHP&szKS z$!5iFT(9$-*{RQn<({FJbMe`pE&XaoVCZPM;qK(B;l=gjs>`eSimm$={p)oE#5N#L z89GdgkI(-0xlBLxUg*)>Y1ypXTC9Q+9fG?m%dRTAJMI8y>fdc8=PhEKP2)w#j=) z$T-n-Ei%3HRdQon?)-z()YKE*-I?u`3~mEIbWzcfTil3#y;lfZEscluvZn$ z-v$lERJWnc2Sy~glt91|CvhK$#tA+IstUxJjP&&V$QJlA1Ofqe7U>fL4FY}N30_QT=X<5q0%6)4+lcp6H3my=c#HFO1UU!O%yI75Xx8+U01dHhKkfhWoX~yA6 zQk#=?Zm9D_TrY*&5guf5q;=THD>p6EZ^^g#N*M{O{*eg(oFVa{_=;iRc2mifCNTpq z?zNePxuJD4f*>Wu0yOkb)?MKen)T1caN1s-l{?xu7CC~`y}1v&js}QTSZho}t0aw6 z9?TL@SmgGVXjObXa56kO0=JldP-auZLkcpBh1F|L@v*Gts;vf2@0Vy+dbagaU7z`O zF&3Gx5RM;%fv+cxi}PLYc`v>u;0hg_4bqZjwpg6OlYJH)a!JB(nn0MCYZcLKh7PZwx!7J#c z#YEJkfF~xC&D8vGh2-zQa_#n~sPZ+wVR)Sfp0!tf;Rn9m+z=2g*Mc9=Z(ns6g`fcc VYgSq#H~0;Tw77y;nW#~~e*wnbhR6T_ literal 0 HcmV?d00001 diff --git a/tests/e2e/radiogroups.spec.ts b/tests/e2e/radiogroups.spec.ts new file mode 100644 index 0000000..c571770 --- /dev/null +++ b/tests/e2e/radiogroups.spec.ts @@ -0,0 +1,81 @@ +// wxRadioButton group exclusivity tests. +// +// Regression coverage for the WASM DOM-port bug where every wxRadioButton got +// the same HTML `name` ("wxrb-", because `%p` rendered empty in wxString::Format), +// collapsing all radio groups in a window into one. The harness lays out three +// independent groups, each pre-selecting a different column, so a correct build +// keeps three distinct group `name`s with exactly one checked radio per group. +import { test, expect, tryLoadApp } from './utils/fixtures'; + +const URL = '/standalone/radiogroups/radiogroups_test.html'; + +// Collect, per HTML radio group `name`, how many radios it has and how many are checked. +async function readGroups(page: import('@playwright/test').Page) { + return page.evaluate(() => { + const radios = Array.from( + document.querySelectorAll('input[type=radio]') + ).filter(r => r.offsetParent !== null); // visible only + + const byName: Record = {}; + for (const r of radios) { + (byName[r.name] ??= { total: 0, checked: 0 }).total++; + if (r.checked) byName[r.name].checked++; + } + return { + radioCount: radios.length, + distinctNames: Array.from(new Set(radios.map(r => r.name))), + byName, + totalChecked: radios.filter(r => r.checked).length, + details: radios.map((r, i) => ({ i, name: r.name, checked: r.checked })), + }; + }); +} + +test.describe('wxRadioButton groups', () => { + test('radio groups app loads without errors', async ({ page, testLogger }) => { + await page.goto(URL); + const loaded = await tryLoadApp(page); + await page.screenshot({ path: 'test-results/radiogroups-01-loaded.png', fullPage: true }); + expect(loaded, 'radio groups app should load').toBe(true); + expect(testLogger.errors.filter(e => !e.includes('favicon'))).toHaveLength(0); + }); + + test('selecting in one group does not disturb the others', async ({ page }) => { + await page.goto(URL); + expect(await tryLoadApp(page), 'app should load').toBe(true); + + // 3 groups x 4 columns = 12 radios. + await page.waitForFunction( + () => document.querySelectorAll('input[type=radio]').length >= 12, + undefined, + { timeout: 10_000 } + ); + + // Structural proof of the fix: three separate HTML exclusivity groups, not + // one merged group. (Pre-fix every radio shares name "wxrb-" => length 1.) + const before = await readGroups(page); + expect(before.radioCount, 'should render 3 groups x 4 columns').toBe(12); + expect(before.distinctNames, + `expected 3 group names, got ${JSON.stringify(before.distinctNames)}`).toHaveLength(3); + + // Behavioural proof: click one radio in each group, on a different column. + // Groups are contiguous in DOM order: A=0..3, B=4..7, C=8..11. + const radios = page.locator('input[type=radio]'); + await radios.nth(1).click(); // Group A, Ctrl + await radios.nth(6).click(); // Group B, Shift + await radios.nth(11).click(); // Group C, Alt + await page.waitForTimeout(100); + + const after = await readGroups(page); + await page.screenshot({ path: 'test-results/radiogroups-02-selections.png', fullPage: true }); + + // Each group keeps exactly its own selection. Pre-fix, the three clicks land + // in one merged group so only the last survives => totalChecked === 1. + expect(after.totalChecked, 'one selection per group => 3 total').toBe(3); + for (const [name, counts] of Object.entries(after.byName)) { + expect(counts.checked, `group ${name} should keep exactly one checked`).toBe(1); + } + // Spot-check the exact radios we clicked are the ones checked. + expect(after.details.filter(d => d.checked).map(d => d.i)).toEqual([1, 6, 11]); + }); +}); diff --git a/wxwidgets b/wxwidgets index 5d40228..cca8eed 160000 --- a/wxwidgets +++ b/wxwidgets @@ -1 +1 @@ -Subproject commit 5d40228ac4c446c0f57c2e8d2d2bea8db827d45d +Subproject commit cca8eed9f965cd771c0cdfb31af692a27ff80eb4