From 0c5b723cb2d5a9d20f6aee56b006a81be16ef114 Mon Sep 17 00:00:00 2001 From: melode11 Date: Wed, 1 Apr 2015 19:00:56 +0800 Subject: [PATCH] add QT demo project tutorials --- Tutorial.md | 282 +++++++++++++++++++++++++++++++++++ screenshots/Qmainwindow.jpg | Bin 0 -> 45332 bytes screenshots/SignalsSlots.jpg | Bin 0 -> 33635 bytes 3 files changed, 282 insertions(+) create mode 100644 Tutorial.md create mode 100644 screenshots/Qmainwindow.jpg create mode 100644 screenshots/SignalsSlots.jpg diff --git a/Tutorial.md b/Tutorial.md new file mode 100644 index 0000000..45cf61b --- /dev/null +++ b/Tutorial.md @@ -0,0 +1,282 @@ +In this tutorial we’ll learn how to create a QT chat application that communicates with a [Socket.IO Node.JS chat server](https://github.com/Automattic/socket.io/tree/master/examples/chat). +###Introduction +To follow along, start by cloning the repository: [socket.io-client-cpp](https://github.com/socketio/socket.io-client-cpp). +Using: + +```bash +git clone --recurse-submodules https://github.com/socketio/socket.io-client-cpp.git +``` + +The app has the following features: + +*Sending a message to all users joining to the room. +*Notifies when each user joins or leaves. +*Notifies when an user start typing a message. + +###Install QT community +Visit [QT community download link](http://www.qt.io/download-open-source/#section-2) to get the install package. +Just install it with default installation option. + +###Create a QT GUI application. +Launch QT Creator. +In welcome page, select `New Project`, There you can create a `QT Widget Application`, We named it `SioChatDemo` +You'll see the project structure is like: + +``` +SioChatDemo + |__ SioChatDemo.pro + |__Headers + | |__mainwindow.h + |__Sources + | |__main.cpp + | |__mainwindow.cpp + |__Forms + |__mainwindow.ui +``` + +###Import SioClient and config compile options. +You can copy the SioClient into the QT project as a subfolder `sioclient`. + +Edit `SioChatDemo.pro` to config paths and compile options, simply add: + +```bash +SOURCES += ./sioclient/src/sio_client.cpp \ + ./sioclient/src/sio_packet.cpp + +HEADERS += ./sioclient/src/sio_client.h \ + ./sioclient/src/sio_message.h + +INCLUDEPATH += $$PWD/sioclient/lib/rapidjson/include +INCLUDEPATH += $$PWD/sioclient/lib/websocketpp +``` + +We need also add two additional compile option + +```bash +CONFIG+=no_keywords +CONFIG+=c++11 +``` + +`no_keywords` is for preventing qmake treat some function's name `emit` as the keyword of signal-slot mechanism. +`c++11` ask for C++11 support. + +##Import boost +Suppose you now have your boost `headers` and a fat boost `static lib` named `libboost.a`(non-win32) or `boost.lib`(win32) ready. + +To import them you need to Edit `SioChatDemo.pro` again,add header include: + +```bash +INCLUDEPATH += `your boost headers folder` +``` + +also linker option: + +```bash +win32:CONFIG(release, debug|release): LIBS += -L`your Win32 boost static lib folder` -lboost +else:win32:CONFIG(debug, debug|release): LIBS += -L`your Win32 boost static lib folder` -lboost +else:unix: LIBS += -L`your osx boost static lib folder` -lboost +``` + +###Make up mainwindow ui. +We can make up a simple ui by drag and drop widget from `Widget box` in left side. + +We finally end up with this: +![QT mainwindow](screenshots/Qmainwindow.jpg) +it contains: + +*a `QLineEdit` at the top for nickname inputing, named `nickNameEdit` +*a `QPushButton` at the topright for login, named `loginBtn` +*a `QListWidget` at the center for showing messages, named `listView` +*a `QLineEdit` at the bottom for typing message, named `messageEdit` +*a `QPushButton` at the bottomright for sending message, named `sendBtn` + +###Add Slots in mainwindow +We need add slots in `mainwindow` class to handle UI events +They are +* click login +* click send message +* message text change (for typing status) +* message edit returned (for sending message by return) +Insert following code into `MainWindow` class in `mainwindow.h` + +```C++ +public Q_SLOTS: + void SendBtnClicked(); + void TypingChanged(); + void LoginClicked(); + void OnMessageReturn(); +``` + +###Connect UI event signal and slots together +Open `mainwindow.ui` in Design mode. switch to `signals/slots` mode by check `Menu->Edit->Edit Signals/Slots` + +By press left mouse on widget and drag on to the window (cursor will become a sign of electrical ground), to open the connection editor. + +In the connection editor, edit the slots of MainWindow at the right side, add Those slots function name added in `mainwindow.h` before. + +Then you'll be able to connect the event signal from widget with your own slots. + +We finally end up with this: +![QT signals&slots](screenshots/SignalsSlots.jpg) + +###Adding UI refresh Signals/Slots +We may need request UI refresh in `sio::client` callbacks which may not be in UI thread, So we need `Signal` for non-UI thread to request `Slots` functions been executed in UI thread. Say we have to signal `QListWidgetItem` being added, we need to add: + +```C++ +//In mainwindow.h +Q_SIGNALS: + void RequestAddListItem(QListWidgetItem *item); +private Q_SLOTS: + void AddListItem(QListWidgetItem *item); +``` + +```C++ +//In mainwindow.cpp +void MainWindow::AddListItem(QListWidgetItem* item) +{ + this->findChild("listView")->addItem(item); +} +``` + +We also need to connect them in `MainWindow` constructor. + +```C++ + connect(this,SIGNAL(RequestAddListItem(QListWidgetItem*)),this,SLOT(AddListItem(QListWidgetItem*))); +``` + +###Init sio::client in MainWindow +Since we are making a single window application, we let `MainWindow` class holding the `sio::client`. +declare a `unique_ptr` member of `sio::client` and Several event handling functions in `mainwindow.h` + +```C++ +private: + void OnNewMessage(std::string const& name,message::ptr const& data,bool hasAck,message::ptr &ack_resp); + void OnUserJoined(std::string const& name,message::ptr const& data,bool hasAck,message::ptr &ack_resp); + void OnUserLeft(std::string const& name,message::ptr const& data,bool hasAck,message::ptr &ack_resp); + void OnTyping(std::string const& name,message::ptr const& data,bool hasAck,message::ptr &ack_resp); + void OnStopTyping(std::string const& name,message::ptr const& data,bool hasAck,message::ptr &ack_resp); + void OnLogin(std::string const& name,message::ptr const& data,bool hasAck,message::ptr &ack_resp); + void OnConnected(); + void OnClosed(client::close_reason const& reason); + void OnFailed(); + + std::unique_ptr _io; +``` + +Init `sio::client` and setup event bindings in `MainWindow` constructor. + +Now the `MainWindow` constructor: + +```C++ +MainWindow::MainWindow(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::MainWindow), + _io(new client()) +{ + ui->setupUi(this); + using std::placeholders::_1; + using std::placeholders::_2; + using std::placeholders::_3; + using std::placeholders::_4; + _io->bind_event("new message",std::bind(&MainWindow::OnNewMessage,this,_1,_2,_3,_4)); + _io->bind_event("user joined",std::bind(&MainWindow::OnUserJoined,this,_1,_2,_3,_4)); + _io->bind_event("user left",std::bind(&MainWindow::OnUserLeft,this,_1,_2,_3,_4)); + _io->bind_event("typing",std::bind(&MainWindow::OnTyping,this,_1,_2,_3,_4)); + _io->bind_event("stop typing",std::bind(&MainWindow::OnStopTyping,this,_1,_2,_3,_4)); + _io->bind_event("login",std::bind(&MainWindow::OnLogin,this,_1,_2,_3,_4)); + _io->set_connect_listener(std::bind(&MainWindow::OnConnected,this)); + _io->set_fail_listener(std::bind(&MainWindow::OnFailed,this)); + _io->set_close_listener(std::bind(&MainWindow::OnClosed,this,_1)); + connect(this,SIGNAL(RequestAddListItem(QListWidgetItem*)),this,SLOT(AddListItem(QListWidgetItem*))); +} +``` + +###Managing connection state +We have several connection listeners for connection events. +First we want to send login message once we're connected. + +```C++ +void MainWindow::OnConnected() +{ + QByteArray bytes = m_name.toUtf8(); + std::string nickName(bytes.data(),bytes.length()); + _io->emit("add user", nickName); +} +``` + +Then if connection is closed or failed, we need to restore to the UI before connect. + +```C++ +void MainWindow::OnClosed(client::close_reason const& reason) +{ + //restore UI to pre-login state +} + +void MainWindow::OnFailed() +{ + //restore UI to pre-login state +} + +``` + +If `MainWindow` is exit, we need to clear event bindings and listeners. + +the `sio::client` object will be destruct by `unique_ptr` + +```C++ +MainWindow::~MainWindow() +{ + _io->clear_event_bindings(); + _io->clear_con_listeners(); + delete ui; +} +``` + +###Handle socket.io events +You'll need to handle socket.io events in your functions bind to socket.io events. +For example, we need to show received messages to the `listView` + +```C++ +void MainWindow::OnNewMessage(std::string const& name,message::ptr const& data,bool hasAck,message::ptr &ack_resp) +{ + if(data->get_flag() == message::flag_object) + { + std::string msg = data->get_map()["message"]->get_string(); + std::string name = data->get_map()["username"]->get_string(); + QString label = QString::fromUtf8(name.data(),name.length()); + label.append(':'); + label.append(QString::fromUtf8(msg.data(),msg.length())); + QListWidgetItem *item= new QListWidgetItem(label); + //emit RequestAddListItem signal + //so that 'AddListItem' will be executed in UI thread. + Q_EMIT RequestAddListItem(item); + } +} +``` + +###Sending chat message +When `sendBtn` is clicked, we need to send the text in `messageEdit` to chatroom. +Add code to `SendBtnClicked()`: + +```C++ +void MainWindow::SendBtnClicked() +{ + QLineEdit* messageEdit = this->findChild("messageEdit"); + QString text = messageEdit->text(); + if(text.length()>0) + { + QByteArray bytes = text.toUtf8(); + std::string msg(bytes.data(),bytes.length()); + _io->emit("new message",msg);//emit new message + text.append(":You"); + QListWidgetItem *item = new QListWidgetItem(text); + item->setTextAlignment(Qt::AlignRight); + Q_EMIT RequestAddListItem(item); + messageEdit->clear(); + } +} +``` + +###Further reading +If you want to learn more, I recommanded you to look into the [Demo project](https://github.com/socketio/socket.io-client-cpp/tree/master/examples/QT/SioChatDemo) for other features. + diff --git a/screenshots/Qmainwindow.jpg b/screenshots/Qmainwindow.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9f755b30153a44bb97565654c0b8a3e9bed478f1 GIT binary patch literal 45332 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 ZmrHJ!#2@mUj~8vH*}?Ob%iO=`{sK5ERgeGx literal 0 HcmV?d00001 diff --git a/screenshots/SignalsSlots.jpg b/screenshots/SignalsSlots.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5bfb1e0943b3c521e3cffaf92f090945223141a0 GIT binary patch literal 33635 zcmd?R1wfTuvnc$~jdV+gbZ=4wloF6ex;Nb=s7QBrN`rKF$EG`^I|XSe$-DLa`a5~! zzxSMf*sMKk*2J1wv*HPOoO@gYuwF~bNCGf0Fn~1l2Y6frUIK`}0TmGu6%!Q|6%z*& z3OIx~zkra8@HdeC38;Sq!!Ka@3;a?7gM@^HhKh!Zii*odK|;aypN7XS02>*00%jWy zh8lpyhJnL|d4vFD01N;N_p7^q0R%)CICvyj{@)pVw0rGr*U{3X8>UKsLlkY;MPG&+AmVC-pyMlii|_`VQK;ZkNNJfl;l{cvcU2s zlms(G3m|AK{xrpAVmnIUh1GJOEfGxZmA?`DzEnD}VJD04!Po7<`Ryzj2-w zFCe4@>KznF>_h!V{i?vpe*=(<`b2->F!|>Iyqa<5 zFC3V9|KH32>=)vzKjNjv=Gp-i_IjNEb`)RsGjt&Sdxyivf64>u?4OeW2`NG0JtdUz z=gi?}yeG7W*8e={_KLa3(DuJ1#9GdUzUW_*1*Y?5Op6x){5g@}e8QdLq2j;vGw~j- zP4Vyxr%qTK{GkCUVuAX-LH^ERqfY z_;agKH_@$LF!;NRH~JJGUDB>Jmd=wGkpbZA)WlGF*j=Ls5j0=Z%QJ$>b#+CUzv=mf zWR5O-0q}f%aweeFLcJpeNdPuOKXlfN^seldGN?#SE6B3;SXIJwBAxh2GMLL2vRE$v zuIlYh4voRN0U)ezA{^fD@G~%1CY9k8VS;%@N1v9^0S|dY=_>auHCvuuCB)-y=>2mD z@I+uMEU@;?fr>?X789(9F!1t3v*g+J$;4MqR{%CE>&ek__gDbne(aeCARq&9EGEz(0&pF4 zIU)|R{NPw(6JqWFxyo3|ev^T)cu$GqnTNa@sa^CcE)y=3AqqK@fmo_o8k*)*4HGWz zFkgDHC=+6IUz*kPK8G9lZ^}0I6+}(aUNEOyld1dZtxFhs7>AAqfGW=q>xuzCxf&A& z)iDi#0`K!;_H(pvB!%jQ03dMg)Ok8Gtbka=lfm%O)cQ;m)_08eLZRB_)oU4^9!J=d$z; z_FTfgN1>>%pX7_G{H#wQk9{L}xGZS7%5@r@@}*hefoaA{8jsw)yvQT9h+6rzLeB6u zf3-lh8M{3FF)1VIm}yM;%m!#bWT(nJx%FIfyx9m`Blk5gvwFg`!F%^q=j@a~1o{4A z%<1MwctyKu(S7Rf(+q-;(iK+%?&8h8>=#nH&G{f$Eka+Lz{sZ@oC~HVpWdHqP5-UQ zQ5zky`-%+Qc2W^n)iS4^PxaXKs&9E?UyU5+_zu;N?L&CN=}nC@#3%aRrkw9)^f(Pc zG_Gl`W}lDkw@a^A&3v*|42mFSD|X2&`?$XukPuz-uLM!_+w4$ZbB6Kp@@-M&(=(b1<-T0up;@`Hyz{0~J{N58`p@{~} zM#0QOV9F^`m%M&)!F=i=69s_hZ_H;?N1^p|-oX`H4r1u;Cg=>4-T}badT~SdPu6k7 z4*-DB1dJH~K)on2bYCU-2KU?xfL#X6DgZz`6CJusqWv2pygw75t3%6wko#XW@I)a2 z>$fG0+Wz0RI_nyLbE`ucC zHTHY2Bv@7;RE(zvqJ{1DCQZJWPDKq(M&*G*L!-<>Tdkf#lUf!64W1qZ zS^6C4iR};gH4C_~02p`}I9NnjD8K=5000j?EF!?*;NoHPAmS5ni7L`?Q1W6?Q*qOB ziqVPN|LMpGgA8+uvGNSYqVeQng}u|E;ku2gxd&k76CrQzxn|>|AcXL_Wg_J7cF(%C zBlK=w&Z+xbVIm2mju)->uR&+>S^g<b@62#Rlp8pXmw?0|eH4w%o_0 zO!v_>c3Kha1;(7MDQCj2weBq%zemm*YT@Vdlil3>R`XF?>*T<1n0|J~Uky_V?y6m2 z`pAFe+1H1GrK@QMu!JGCott-L)vUahHZRyvhdiDP_ zD)OdeR0Q6qcFZXeyEy18#Bzhzfutc^N3x9O?f*1Ekf9T?K)7mzM|tVKuC1*LWGVx# zxr0;O@_J{RWT-&TjM>Q~3p7-hO~#JjH8U4i9kSjPpOp``GyUhk3LC#h6pj37ICvRc z5;5F6oWo`?6eInGrI9HkhT?;Dr*!m4Ljxok(b~4(+E-q#H zlcuTflN5IDP_FHfu+F@xtleO8!8S)K;-rrwTmr7kXe9x|j;6?{5w>B_h!zeUebk5eCR|y4aMx50Rwy8p)w9R$5m0#q>XOCM zOzAg~)HwFIu3}YRRg7>(!Fu@p=r`WK=n?kZ7~^+wFN4%N7|CrsVV`(-1YlMUO6rNn z)bcE})Z_mng)xz>ph0#3$%5X?$bxrw&8c#YHA8&Q8ba%}TiC&7}r=`wqM zXq{KVX9Aun4JsR}%WSBvlf3YUC9QW{`P(oPc+3~KK z@%}DDgWcp2@cJ*UxNT=ki_>1yMSWvAVgvHaQ+!Ka33VB!lr8N}M~#fSoh0o}dny+- z*h$QF_}}fSyshezOeslPoQ{+kjVlNLjY4@#&atf}M$FF8t?T6Nz{-*vy8Q_7{554h z^*;jj{w9gxFVJB$1hBm=C`SI84OK4=*WXUHSV^Y?spR_FeLu7Rl1Z0R_btqjx$vEO ztiamsuMMF)p?}Gzd5X)Ea;z~-*6c{&d1Oh+;y=mt?4WU0ayZJc+GywgLnD(DO+~Zu z{-6b`IT8DBrP4C2(Q{V0d~_lbO-9R{wn_DJ+WD+gxP$3z5gFIeelW>V$njGp#-y2F zK$?GxXfBidq%RJ!XDIok_guHLfyjI;vd6=iYRqL1?pV@!g*u4^YmrD;q2JcXzjt1N zXMH3X>>@WlDnz9IG|5dthoKC2+PF!`{QYN`PaZQZNwPzL;YTQO7UjF&Mc4cF=l1Ch zzq$Uy1Z#dWGpWdxj=rd31?~vc`{7a5?x`_&nt_yszV9my=B84@Ctln#4vq^AT6@Hw z_asS>KlA$z&cNgwG{?3Fc-DLCeU)}+iLNcTj=ylX>#3j&awP(77cJLl*M+)H*edL@}JFlE;r@O{)Y5FL^npd+``O#BE0g5P@TGC-FfW{Sl( zDZ3Krj+-y`4{@KLd6qTunpnHU>bzfA0v|mBI%>xJPo5L;%=~U7j${ z(WRWRpdi}07s43e_COIF86$&qa>r2< z?5JiO7$KJHrx(Agc2TEm6BU){lSf-jWRz}@odJ98MC(ARy$!-JNlu-bBaNZyJ=t=L zo)q@P=!1J5J@r)(bPD=z64BIwdi*{28d1zzlO+&KX$LeVne9Ej6DE@_e&D9#D!XmW z&P?pCF*Mk#)`7+^Z#}&pOez)C;1ggh?{rrJ{@u(~W4>)N_ki%uAlvew>Ss0lG{GA# zQ$ay-VqhMkM!?yNC6M4Z+sVVvl{R2n8A*WWCnKQjk4-3vPe8UW#PIeYdw;ZY`rERM z1)g}f*WPHk+jdhMhx4X_YXA_^_5=rWnOTaABPdzfz!W;z(XQ&Ucz3@EY!N z>Ga-^@*9S^hQD@;^jZpFspUpg^P-kbNvRXWPNB5*Zf|p-bslr&SElazWH`B}X>h=2 zH(aX1z&p}i{cEKV&KFb2cQ8g5SR>_V2}p8X*$Z{<`P(G~8+%xtG}uj<4KLK6dR@BV zpO7$2d4A*eyHGP9x4XfwzgC`CQk)vLbbrH}Te@Ouoa`eaK+NK9Ijmatx)7?O4d$Tx=l-tNr6m=QD_3j z-`l{;>xOd~!L}b=wmeKOil#>wVg@HHsg3*ZWl8 zHmLkF$G=Ho$GLWxxj4k5K%K&s&{-S2Z_6*xgMRY=jZU0dga$QKv9V4NtjEfdQH?W0(#TO$m90mRkR7#Wth>fep#ByOZ%~ zC^0dnr6qoQtDK$A-JN-8Ku_=W+1cBFAnL&WLFu5gM}gu%{C@=Lq_daN!FdZG|5t>{ zURno-5Z=G@7ef695(Gt%{ky1i(-b*t$1Bdx7!@F{{vxZ?rVCr0Xd(3K!>`t>ls&`4 zo4@Zs+`W$z2nOhqRgg3pIXFTINUM_%7zUK3uwr%$=dM0I0*`<-vycta}bz!aTr%`M-g%L3#Igf0^MvviukK$ zS*8Ph(&b?KhuI#3OZz7jQT4)?`zKh!qPFlsZNjoGkvMRig%w6bR3_+u zWt-Wua^!6!`3FLoNUKu3HJ2vYj;gOW8Eq6W_hq~FTz$jxLv;g(9UD(dX-uUgg@(}y1+yUmecQ}08##%XBb z7vfNGT3|T+Fi*-&>!;gI=}z4a^6ePd=A0Sc>P(Y&&=GbRVy#`vd;$tq0Li3rP{k8x zLv-{jniEmp^J+udEfD7<7*aZUSd!$HzpkZIzYC_oGqeo{Qz0B?9qkW(&cXaXkZY0+>4+b`+6+a@zxg0|%~*c#_g4lOEYM#nH`>LR^IT(N(0JqY=h`TN4qc(B z16oSj$Qx=jCZjSgVSm!s4pqGtxGGwl{vBx9&*13jnL4=;KEgC#YEBIq3T>O3kB|!x z0dawlzCPNxEkQylA7KIET#dmA%RCB7mw==I30?A6g>`1|MhFGZ8<3S-pXv1yRfZWq z<;c*mP?)_yW> z!70!@Ho}E50iI(wR#XO|UngK{VSqR*#2~L41RIIx76O8-o`Hi5%(ufosG5{`nX`Tm z{*dFJh<}W~vp&}> zGBniTlLNc8+WemzThKC)F?zggA#eK9znaIq(ml{&h}L?(L+!w+-L%sfX<`=vk$G+J z&}j{W9-}eupi7GrQ@ug3y(0*N%8*Rw-ah=loFB5owz6B;+L735Yv$4kR!dU$L>QPq z{YVYT8XC*`kLcvB(Xo42{IuX{!@_*ZzQe|k$I=yG<9gF3oO}z8cF!bh!@)eqCD}F7 z7Ns(ol%=~+mAA^JhXk8K@Wp=Tu(US?<3@at#cl-Uri&W-#Ul_Qwl^HcC7Fo-R>#fA zRf;Lz`}KN(tea?Tu*Db1xGc8ITds<4NNl-nmCtYvFqy>t9JCO=xhzljwVpYxA!mOCW z>Mzdej|UB}g^AW8)x)5^%|n~(Cg2P+&c}soK>BEakY}H4MRUH#PVh{ZAt3Ga3od$I zD%|VYXeBdN`xC*z^sRa`qK3|Br)~l*;+8@2xODQwc;2K_MOlmhv!VTi3gM{Ug-{eK z_E-)sX=i@}gW)d_1+YOfY#Xo?R*8;5R#|Qt79WLy(CWbMY+tp}y3w*EI7g2;smt2> zQK_5ev%C7lCLOksO1OE)qF$#C%b~;)2LUe6$>6|-^+XPef%u?KQd`-kq+D_pLizZ? zDxA*=n<(4Kb@ua2y>Ol~yr6@wxDvmK-|NQ{jAc#S8aJuBawaJW_;)$6hUltY(*a;sCe=-ZSw5{?=qs}W-DbZAoM*DIHKqc-md9oN|Ja7HjI#^UwYeOozSQI zwF)`N)t0$}$CPDh=5#@wuD&dUKhMQuKpie%?z^l*Hpt?|0IY~g4>Q)(7@1h_ei8Ba zM}W+CDw)V6oQsN%;?00Fr4XE%K)qiEHXO&)l~IxWL>T~ie8)3Ncb7k)|ojgRHlSqzds_&_@ZMlUq zuCC7bM?My;27!RmnvW+Yr(RY5KDa<>{Xl@cuxg+v$niy@Lc-j|S>Yo9Qd+!lI(n&& z&2LW@d1|J>>USKUoWtX`WdN&8flEOaqZ0K^mmK+I>nz%sS)wTJqxTGn5i!2AJ5K(5 z8g>vt=H(jI>+`G+L`J=wVa{FsF{WPwDVaYIDVWkpT0Zl^2x=R1IW`OSxIIwmm4dQCT; z4aIWHTLM37+{?-{%Y95E)CyS!oH~DRZg+2BwqwylNSwAha#G*=m#FcaVowgO zPyWEN?yv0&lAfe2`a)bg^6s<(7s;1j(>@^&2Eu0P#LFMVQW(v>Fq zp)g#Ga8IQz0ze~q;|c;*1e+FzCSl_}v??^hMawM_@Mt`bwRxxz&j*h9U!lO~lM!=$^sbV8J7a zZuGa2yb_f|RC0~gw!o_W?x}g*d@f2NNOvvuNcby3AB#WN&PW5CM|Z~c#Gx@p$}EjO zxN-k^8n{|(>-%9l-@Z(8Qk`8>VodSf3TD%s#h47YwZxqDXN*?juGM*!KC_iYi7g9< zB)v=FbJy?8Ci2mUyLx=}r~zuEVkpK5oddNk?DB|PrSny_-t--|buCxLg(Uelpy2It z!AIanIGjZWy$uUSO?&xuK+Ygnhk=XWj6c8o1j06)~&om0&+Kp`R&ly8nv@nop z3%4lgZ?8{FoNcN_#r%Enro;w>@8f#DDuI43ObjIIgto_bd|rBzg;_#DHNRv5c|N^x z@w85(WR}8AAKtgc%1(`@pM>!VD^>wAq04B_+`H-5pf`>&J~w8YakhXhZ0ZqZ+o=3i zhA%t+o9g|n7`K`P5vC7M;CdS$0oXHzAc|>1ZaYDp1)p?besvNQqEi#)_xnWgZ|za* z2zLr{t|h2z>&4*5muU~ABOB-o z8B$;&7gv?~xBpkZ<`<;L2?*hY{FhkA#xxq5a35aZQ^6QXSA=Spoj!cQ%a!)WT&{r?0BPq@-jzvNMY~=Vw z=OO&^6ra^jP4a!SCHL1wrS!6eunX5|v*Nm(=eo7T`-cT%Z*Bh1HCib=0`bf&=5vz$ zuyYCN3rqT5oBFwg=nXOnyus0L4D(C#ZPm_eHTxmPt7^)&A(#QPgqxQ4lns$JYv8D! zXfY&q*c|)T+Akc#F%no_enLDRlLR0PPYorF@c2{gzB&hN@LS~>Dz^H`?pckD8s>*6 z|EC>FNwn@>pegZ85=TT_;w$Z%TgWF{_!)A{}LJac><~_(H5RQ$JYvCl8YPV0xv#zjvNbR!Y(#C2LuF z7!+>FO2Q=kQjMnnGVkZe3#K(&P~&phzK0m)w|5bw^;2g~;3d1%l*MByt_*^+)LnI! zLVtUrIkK2$yULxN@`-E7IE_FHOv90~!3qr%rbrQk-C&s7d3|n|*>7ngSO-6(!>n~N zGlsC+nzY&_ddNa?0v2iq!c#gt^KIF?+Fx~EIy{Sz!>z(sBQ6E9wbJ3ru|0*zFl*aKzqRifracXy1U1@F=})bEdP>*{bbNQ z2Ydw873q5ntsjf*l{TgL20DVvN#?BiN?+CMj8IfwQ?kr_Pagb6bA;GIdRTF zQJXP%SfTEM;byAjwjRu6(|+TrzKMH}f5V43&{0o&>nF9VpHpFB<%_FQg~02XFWq-mD(ertg(r^y$@H~nxD_@w zJp+KG4}H%-m2|$t(9^~+%SSo)X%uOzyXu8onB|Njq#C@UaGq`%AQE-OM0E3Vsla&e ziDOn|?(@O_vZO@DZ69_|_~>strxd&tBaZ<3S^mu;UTTrA4+$tCu2-@ zr7cn;Qa?Pqg$vv2{{O;zy*@~Y(hsCYDc}ec@QZG{8^Adjccj1n9g~h8EeqTj_Cm7@ zCq;YjLB|fnHMov+&rL#PvKN$IwlHL3yV=`l3ENTfBY}WG@$cZFA!z1)lBvtem>rWC zBxE0=OpQVU1X^DH_lfKStp!t%Daf8kpXcL+7g4jh9Fg_+Q>~SKf2w3ts#&wDC^)>- z9`E`{cNGtt4H3&1(A%T9!}1pr`ZsAvY=)Sx;^0Xv(qfS6(k=8XlAYeTzhruiJSf0i zu)evXx~lCKnG(742ta<|dMK$@^#w=c@C}gkCzHt1TSGK<=%;l97ifpU6F;^RMeN>K zU0=oX&8*Pu^*e) zXDe83bjI?b{n7&4v6L00UHg40(b#XXskMaS1k{xrJX~t;KKx~(T&Ek^6){B{1Uq7F z!?31^R-r>k!SWtFFE$&L3F*dZv$WaKN+bWtca0kLXNE&8Z~C`UjE%FG-ZRE;FV+sC z7eBIeb2YXcxkMrv7i2I2zMcWk$x7 zgjABd4DRard)4gr1<5GUZ!>#!S|~k(WYV_mdGsy40c9Q zA$A;@AUTx0YL9K!2=-)ft;BhFbNKqujea$8Ff<7@oi1tJe+EpyPqvR-w_zz(%UwGx zKJ<{5TCMMIM0fXj0V4ZTs5U6^?41=h`_|D6wf?~JKPdbEhAmsWi%;mHaeV_VXecTC@5Di01e}Ai|L21o@o9v=c@Rc-j%aGApr?;iS`;W(W&+{Dfzxx zc4w+5&hihh(=mhF2UI#I_ziHpaC-QS;4YCNJ4>iP&Y;e*h z_>h|E%rwhrXh6@eVXo>pnBgCoQII5Co2|-<5FVHRScGse z@k1RKuG$0*J3-b|Ao5)AZexb*JjosIP45I?G!&zpX;JE5{12voYp95Fwwl+F7UVrB zp?ykn`7ieIKgXD(G2M+)1t9#88PWUr2-Gs{>m1V^u-hztv#uiL9ZkP+8FX8H?Scv| z)*v6+-=;x4n;vL(sBZE~C4y+Sl{u;+ge|Jh*xMFnekAV7*$k|9-R_-_B6PN6zBkUD zy7Ano&u+h%Z`Sh|%WDU%Y=&{%d%(=~Ka^+o`d+ z%DY>jrq9CyrE(>!=Ft)I1V=HIXx|7=^*Nt>Wp)4YFdhG`z^@QuYq*E#t7(E>pg~aE zIMTzGDrrQ@xc+T2XB0noYcJC{i;U4xH)(sPvCQ&EQsk9BgtFVzaiJ=2fRMF)@x2_T z{HzcM49O2Cl6wmO9ueATBDp$)%ow}4qgq2s$!O>clR&PX#N@j34ln#uZqJZR-+a4M zRV?R`2PU6i7ZtBF55KfCM|^F?_wKEG#y`R>JZoZt zLlj@IoBZnEDa$MuO*Bgn9<_1gT77+wgfwp)9i5BF<<1)O)A7d)DdHEjL{1?gtAjOX zk(6#jP84D^b8!I{XSB=}t8+FAOf&f2Zko`7MirCsg?6cR>X)zzPO+j_D_l!ji&yHn zNI{xr((L5oFiy6p?^OBmH5Qp;qY!M3^8>OvauwE^O;9}~zuquEVIG`95GCyNx#An> z?OJK->Ikr4%XMTc#ZAQ__?xh*%I%Q=VcH#RZbd&;L#c^JpdQ>7@{@$3)KQ$A^`$Pi zLHm#`8EWN7GdZk2Q+t?y|2447NOF>YbVPB{ywgoTJ-f3YX#S`&Ecd9LSISod`m$H$ zwn$D>yX5*#f=q4*PZiL`95XxUTv0$1YD0HafHw!ZA^jt%sr(qp*n@?{_XbDHaJsH$ z`AE7mbvRi0x8?*QX3x`>%#jUnjR8JlRcR;s!&x-ZvPtul*-A8eN{(sU@u{(?q17)L zUlQ9DUMR4CO8=CuchBgNKyNBrP0BTRDRedaEg$C)p%Qf{=4T`8`UTq5YgVoZxhnR% zXLkvBKhDpt_ICHSkAJHv&EX;~b2qU^fwwiKak$SASv?rgz$M^K+wNK4#_kmp;?IZok$5#+r@g^>xX>pw8?_JMS2U z+Na3aLk#XJg-b6QLPxbKQ=!1~88Shmw$Yb9nPmP>p?Wv_mOKjgHPN=HV<<*qb%!j> z==M>R^g0J&I*SrI_2W`EO>FB?TvjMhV=wdTY4mstD`sXXiOuz+&&BhVG=8^erPqJlG-ro?Q7!oczH@s4*g zmc}E}te7txEE)M9-n$U@C8&R7a}+0!g;tdQja=93yC@ z2y;{H5ok&GeFWT}BR!nGe{#QdPH{W%?Zs8>IJD21kHCt;KXF|6CE|SX>Xk9HyXh~1 ze*~PjgFdR;+lDnK_iyUwXy--N{nZ7!EfAQQI|~tFr-tP4uc#w-5hf)Rz$Z5iTXxz2 z+hYVRb%gikgrQjtJzvGzeNo1un!PxSHFGx^qPc1Ck(l0Wf3*9O-W;93QIAh7xi0lB z>`?F3@=IcpHX7@fT`-V08u-&sS+{PO$JlR`u4@k@YCs~ViW^&SKNGR6J;MD8=8Pu0p3A=RG5P8v?YMB`e!4U?{-0wV} zO=C-@MSI_6ow)EVe=i|ZC*ukUvuau{ z_4MCo`;=oKHv9E@t;x5b0A$*yJ?*aWJ+LgN^5TIl@`NOO>^>mJ!!vX8MTZ5&8V{5r zb&WxDhZy|;Ck=fuJJ-|e|NRzTgYqkbJ&&BILIbhZTKZa!dfG*$Oe_AW;=uf*gXzGb zs#uVElg61amc;R_;VXJGE6Kq`1MK?G1(SEyO!JF+@>SnQj21q4T9S48cbnEfFgg+t z4z*3^ZK+N!-R;~V-q;Trq!cY|{;V-@*~}yMB1hJUEJ#--7mC<#v(l_))Rnv^g4-aQ z{#K0lY%N0j*|sUD0$BVUv7X-qe(O%Fy>7vGj3?u3Gf4M!XxVp*dG+Q3LEBjf zJ(|n2)sX?Av(=c~QxI>65Ce3XZOcD&-TdUpzE`4TstHP7WQ@v?eP45-!XhNf4L^D4 zXe%vvTnJ|!t$cS$kWYSNc>L#r=4g@Q09uJ+n?Ti1+4#yoQoCTQ&ve=L2uR+{+3=Yq za569?Su*X!txU_}L0K zBDp=ywi~?0ouS&!&CRYz_z3he^(?+TPDNy)l>{^*Y=T<7KtwM zsE&*oT1`Fi;JEsC3(l6r!J?7_n|2BKJ!Q>>B@{SNXwt&aC&F5J3%sI=YO=g~9d84S ztIv#`5UE7Dl0h`=9PCWc`g`g0XD0rrF|WdF>wP;GE>bvsjmm~g6J>Q)Rx%z?V+CaO z#d(B+8m7tNEpA^i6*Mx~!vE^djVh zdUzsCl>MwjB6liD$55lZnRfMF>a)j5lp*ErDeJlT^=C43kT^QwkL&yQw=xliV$yxQ z4dwG{3!Ph<^<_dLJbwi65y!Cnc6U6ipV#FLAwGHb7KoW`ut9uKtc&|@%+<9hIw;1V zWTnH$+am{RymYOs_+(^b_=#|}D~D9(6azj}Zy>q~_qe{Tip5mZSodd=gn{(>x?cY9 z@dtBj$790UGJ*Q3z=grVK4y)g9MT+H5T$La{0BtJZR^t5u0b2q`ty}MonF=kinF_N zHPT|Qj+-a@9LUrO(hDN$^Nukv46ZFR%e{GRBeJokm1--h3&Tj~D_@YPZBQt^V?$w` zDIMzetp_gM=>+2AmS1nv@HW!#Y6YWuL>ZOC(1sqVlc9WJtb@;v`#6&5kubYo5(A<` zZh(GV?ss-6SxP2=-Do0CBc*S%N(zflv1~ijr^YMxMx(zY)}!R%f`j zY>kxj(i6<~)U}r@wo=Hv>d7|r55R6w=aWvq2yzJd3nTYd2+ksdTAVBr$5%=-3rlg)Sg1%U1A%B@KTnW-<6j zv|ji0?CQ51ClWy6OQim(3AV>1@}j#Y_K$$t*DxHNL;@kz*7KoD-Y#RQZZmZTAT}21 z>gH6|YDN~eH!0*IA&gEDMCl^P_DhQgOcHQd8O@P=RFy`~8-w}D+6Vm`FSmuf9iN+? z58UQRo77&6mhenXNn!-RN4v0o?v)g^vBJ0s_xO0r8UQS7%8W43W;QJhWzDLnusP6= z@ljMRvW;G@+IYA$d@5M;HPJeQ4C}q3^vVU3IILJGg>=$#j?~4af{vT5if*hez7ig= z`-9d-5)}n%N`2tFWdMz#r}}L5lot6%s(qZ_a zmh(17qGuL47Hi?z(L_-ZCG#~_I@tSJc%~?q$x5M)j$Fr-I!ixLIcu)pCT$yua}7g| zD=8z@xFmR#%0y927MM+^vAEgwd8No!EwGbmxQ9rJGwYHi(%yIEVD=GGCUPeX3zL?5 zotxVo6bwa90^m=`!`YybeK@`^F1Dh;+i>&L(ka-Qmf0 zldvsjHRq*j$0S`1Gs^zv6{A%(4eN2!ELrhM?Xk98m^6h8y$#=)h z?YtQ1e0n}c@ikc8NcWCqwwv01JGc<)^JU59UUJYY#sfBwr9@h%;6STu_ZjRKCar~L+6MJPPEmq3u3-V0 z`;}_Sn;o9<{h<#LIVxdM-wsU&^M6{)mwuSQ5gZ~@w;wX5fhhn9+iCM_V^H^fMtL^h zYuN3Xom&~jNT@#b!Z-De#IfRqV}m=$Lf0L8yT2qT zc7p^(v^AE-gkjar!$f1as<-(EM@UC>cUP-?^2+7--1Z8)m5!6$mnXIH@e%5kYLa}C zOV*;x?^7<(#RliK8T{iGM(p-lUpIzn+rQZUsaM4J7RLLW;wzpunNStez{ekW6D5+N zWj<@SOmYF{epy@zRt^(l%e`LaoDMshQUY!IhP7J4B516+!tVk^GF3yO{MC`gB%dT5 z5hIT{b<10%9+yYIvejAiq(onMUpSap8zITWO^Q}QKnNXfO@MvCh~Tyw3z=};& zBdTJu@7=2p0WnvrLjalz!_ki+n#B|`y3+gy#e&U5Gu+-7o~l&eZj)KHc2bfE`VcuE zVb1t@g2jVvC-zL3ydr~jlc*X~3naQ0m>M`C@cF_8trd$Rh-}#;8r28cFwRYXsxRGt zOZu}(@Ky{4t@TyQd*5#~+ZsA7#RN|c=LZi>nCu4VNbV)uMhVGbjC#t#qo`nq3Z`Cu zDN2Sj0+|Y}%!WNdTX=@>!OB9Kavu8Ny-)Zw@om!_f%OQtohZK&D_3(JhK zx0B!)H=^#Zl%na+I{w(rp_6kXLF-_I;vZi(IZV_w?`4zO6sdMKGi12|ha=hd5mT=x zi1g>-!ESi=E5BFX^)XBNA|ps;k3dJ1#FaFS&9;fuD9P7n@ZInRJ4_?hrtFRgvm!Q| zTJv6W4VBcRN7i-2xfP9q=59C7@<#cM+^(s*o$M+K@zBLT9SJW5^aM|ZGNpj+s%e6s z#2q2@U!+bk9EDTG%+3l{Oex3{frxM^f@@#A#*gwurrkqB0j9 z3;JL!;ODzV$;MfK(xh=%58?NZfa?EyE4yfXFj^Gfo?Jg2ynp}Cnia=|OS0P{H42xy zS%=6$BnSMAc;qCIWSz=be)@uru;S~N$cvn@rfxfkvvqa#b-A!MEtStuZ3c|va2s%t zL~8mh*|XGv?NuX*@K$_~*@wlK#))pNr4A!)`NK!jZ)7#Ajt6HdYa2+QTbT_67SXSe zdKiiS%LuLnOW5nGYXNK3R2@qfd@>^)t(vvgvp#@^(EwwJ^oEJQmjQJmY?hk3DwQQ| z4a4?1>9^c`cSjn-_@F_FV_T&wypsgoY00j98%ex6u^*lbZ+VXc`uV{feNi}B)y}Q~D)ZqttNuMO{gBEC5?~SHu zEVBGMX{~rFi!lVm#`Oa>L{yD^glP>Rgo#%V`EHUfDxCO>ptIkvUHU(lV zN}8bgBu=q=;*ZRpYIseX`Z({dS%%%~zrTq&SP&fsN5zyk^-HSN`E+|e=lb+*l9<)Q zsThOjd9a!Ezf7-#8n zBHy^r<%{5lQcg_9+IOD?UBGmF*qg*i?U<=W>}Lu^>4|8NIMr=ZIX^_PHU6+8nHfgx z=?Nxy=LD_;)ANG6m1_{E-0 zs$?bkg|h{ELR;h4fRy*ZKa!2-< z-eI>-$)cOGh!4bTw9`omD3#vhQ!iMn&y`JV4kyFTHHCF6c`%zw67TXU%R}-v-5!Cl zx?C|9t_@cE13$T*S|&E+tG71;AgZ&<*e9RC#-+0fX`7z;IsWJl!mPML@rolU`w*R* zcX|PH*|K=eFTPu^``@cyjt|jJ3J*7*C6ioUV!SY#r^6v=KlipwI1r;=^Xm9@{(qvj zuicVd<*0!;)KW+dc`qT?ER!<|Z@9=OqGa8-tc?_2F%~>VMTxJ>Mq!2nd9H zWAED1i%07T#A);BN$t>=IIy+qjE4)o@eJ`b3lewwAyP-asJ!iq6vyl(W3>eG^?auN z+NCnt&?Xa18Cy_WMw+sbPpWe(q%rq`6I9WTcD$|>o_ihOqsVU3KaX;?xT;CO%~Dx* zH%whYYkyL%V*0MN1|;wmY)3l^tLGcYlndc(go1WnEqTKA+H%rx`C2|bTEdc`|JCJW4g1y2KVpRS#=pw zoB-XNRcc8VHqlDjSSt%{oGByFyD;7m6Vs(P0h?*lp($@&l(0-$}%|<8Lu69^hO(*M?-sN|Ld^u|q?$|Bu9k92jn7Mo)<`8p?2EBMWezI)YYxztI z)<@v=XMqvh7d6&FF~v^zYjtr(8Wqz0rPu=Ld)0_D#LnlRE&QSlvK^9XoF5c(L_TO_ z&?>#G=pw>sDK4CnUr^Q1k?ck_FysWG+YIW-EZa#)R~N1O;c~~2Zz^_s+}EgFNzaqd zPFKLmzp$t}%rR*P8Cq&!M`uw*Ck4zm7-uQjAo^;VUlxbm${Ci&`6Q#p+F(AsH}T%k zd@*ITCIDt^6*U}~#+Jp4Npj_uq)(s~Tv?COpUGA4kP7ox+%>zcDvarVqgem+c`bID ze4tv@&;D}5eXHYhrN(f8VXCkEx(c~%58kGwBTNMX4zHEOO>&;hI>S9)pUKy~)H zqmjJ&y~+JVE|=ELt~!auUJhb6taMYt=q3#%s5St4bmTAG4w`%ANs#pTv9;k$P0|v z!N~g~sgkvwsWzx^ri}H*;sLcY2>wd)MA2r_SnH z`<$x!s)%3+WtmTuR@cI3kp~ncu%VK;Nf#%PF_UanQcJ3@wXH+7Srlg+iTI9Sy&c0& z(|Um^aup~~6~`sbWyzW0DXb6N8(&*cOaEd0-l4}m3a`=|@LzznfOr5}UTI?|wKG^^LC-maMk;WFr+xzdZ?I015Jx)9r!;2_hjAb^ z+pR~ST*;VqS>ib9^=EUGXoU-(#nB)8lXXXMQU-S?*NWiDH70oCyZ!>y&!TmT1nX_M z_svg<@ent6A16F5%IYa#A;(m$wiPn-kS?#)r~oUveUesP3Sonm1MkVa+PPN)Pk7PT zPK$f%md)j4FNDzFFJRqv5qt!%Pp#rb@mlry(^tBC64~U3Wx3PWqlu|bb)EhK@a(C1 z^P)8O9tTd8y2CkN1uot6-m=jE+=(&Eblj3G?U82Ns6L!rZ1km?e_d;ug6J?G?-3@?ZkQ{q=8=dtz3-igfwS0hkGbYjqdy>Zn<-B0EcXgb6%$8 zRLU=aipIUD>gD#ohEGR>74k*J6YghUk|Hy5wEzfLR+&&p;7!6-bIgVt85odo65~q3 zS=A95qRX03GXjf*?mITNfVyfI#9HrF^N|umrhb|;cYGQ=zQ_ya%&YHb*w1DW%BmBd1JDu=2=~ZLPjPIwG9OD5g!BhvG9h zF!IHVlY~R7r6Qn*ms-0<#HDtWN5zQr3 zL{$x{N!n2`=|KIgQOfG^g66o4=M%l{9&0_YZO258>5^ykmwmS}^2I;{XIqk4dc>D4 z4sva-R%yhb_7W!5>cp~VPL@N(*x8eUkj{ctScsCmV^+ppf{_0}(+6FzFYnHp##%+yQCNyYR31?|o&?$Bmv8 z-0X2v!+yGw#FzU$#vGWIqym3EppFYV|Cbm7JuwfU0K)O5TBQzBpkP7S%djAUCtIPR zBub1|^dK}V>$!&>U&U@f2ZifUx(tBnQegjVTt0j`iHFTPq^pD`fC~Gu|JuKC1vH!xy*|QY+FK7FA4r~%?Wl`HlTg*6gj5YDs>Y@Q)}BiKMaPa6!vSXjkz==*9+(((K#ZkO z&YaFpsbRkW^LUk3fCDfCJ=I>~DmX2);3P#N>fPeEziJC6V!bW->+q?@`$VK7IU)$8 zkiF;n5Kr+J04`rX+UdtNGh^hQjPBD?h9wn3_3p+a=v@K~CoFI)|1J#Ojl>RmsS^8e zuh(odQ$EW*0V1Gaw~G7(M3mAjV=l}2ddZeyP;Z>kY*Wf_ueammq@oerc)uioy1 zDM1tsIU?*AZNfH^twaywa}GYck^Zh)5VCg0QN8=)MaFnLM*oD&km+F=r%+{{`@e z0U$cCZ#?$^jCif4r+VMsk{E2ARtY#2h(drg5OHw#;~EKa@UGtALhu>}^hgr{MR^4P z_(X|&&2vrvZcBrO{VTq+dbPjlm#kne`7LH|1;EhI*4oWO}`j2k38N{o!e=z+4^`ziu zYMSP6bKfIeD<|1nfAU(gAXOc>3LeKk6@Ik0O0USOUKr}0Leh;byJs)emOXLG?H*>|p588mSMv1#P%|aQ#&L*N@;!YIjy+ zjzsb()l&-$I1DemQajjZ8Gk_m`niDB15*yn#a1J_Jvu;G#KE_Si$fruc4Ch^Vv5-ub#anr zQ1kS|=ZPY9(*|h3&2x{sIhe^u#sPMxKl z!GyUUJT-II&GmDLhLjg`Y% zqyhw@2)t^)Gx9{RiQzq>{~?2dMH-;3Lw-y@Q+d3KaY8f6l&hB|w7Izl%I2)Y>@vJu zmxRN6vQRXoSf!z(A3EZua}{%QrI({lJyDwd_GA;0;}!Iba=4b_TDw|Clr1WNSo$Cy zSCu$7ww$bRm_C@*XIEmzMLWPWh(DWGtN2cvvqB9ywkMr#NsyS9uqBxtN0bAL2WIpl z4^9`(S*2(uYbZ|YP6_0b83IK$+eb@xfCTlBC~Y)!38L#_*&LU=X|`>)h|?m_cqK&U zj<86DaqAg4^GDm$cO%a1dh^9V36af$(NV7IYOHfFV?S*TxX2O)zCbc+@K#cBtZECW z{VehP{Ufh#k#VgV99$kjcAR>NgfjUJOg{DL4yUk6ko=4AKv}}o1n-`1ev-+Cxe8s6A~G5Y#oRoyXjH_x+s{)K{l3iVW;*DivB?r1_h_CcL89MwuS7~hcc zaSussj|0e=k_~>V|Be9qaIjaZ@*xDf2}%45*Z03udR{82T!}P2tt^@z6aV)2B#;(B zAw@d z_FNSxGAe1Y*Lp;yj*>qOCc&zQrUKqA1Kg3ts4abtd~?6mUwe!WEUf+K;zv~F$rRdV zl{c$2kL^=}mCG+5{_8~lJj?%}{aXp>Q#Sd1a#dx&0MQD`OiG!22*CWm4;Y^Pj!ZHe z{v+PFFBykY#Brl9{LdgyCvcwLK6;Mh1%_W)n%5s^!QG>mbyN%6KcpT+5YXILs6VAp zn7>fNE=O!0Jqv;>t$gyhe@MoYW<4-5ME+sQ+ltNq{lV{aY~}W+|8MZB-9rR>_wBMH zP+iqJkzL#W)Au!B1YMslNxZwhH}qKgVEdb2y1qYoXVse=&P^J!XI3_?LYD6xRMM1R?m{HzI`Zh!THX zkLDlFQ9=rk`a;?w3}U}UIa1}@hBK4|L2L+TxOg=(HD30YVAv-Tx*5`2eo{c2pW*3Q zNF({~y?;)HZ#2-QWW%<#tYhy|?I@~1Mg?~xTEFU>E7VzGDThyf#GVwjSg4FjBqyST z?-)PbjKDOdvz}^^m=Ya3V{P50K~?i?ia@FxiXiCb>RtZ@0QeE5f+CNU+{C0- zeliL*w^g9HS{i$2Fz#TEol@(>g@&UVj-@@pT_dLl>?te~EfNv#SVUL8_j&-v4kwuB zH=}Dy36APLs0Wg2x;4bvSn)G9z@SwRUWxt`zWi8r?@n_dP!miMf{e#SzY;6;O zYqo|oyJN^j>C(mT9S)nrBgh3ZLmUYS#1Iyb0n%&;!O<;*~e`X8CF>$N~C- zqxA-1SeS{nSBkCQRq_Y6zW->Ph%|gi0iQ8v+guJk&!)Xh%)oH3CLFj5B-~Hb;iRy=p$#*nDS)GtJ7EJW&qTjX8wM75N_3lPzw2 z&&XZuq51CW)z8ASHf>{N>P_}50**cOz;7G3It?B1x&vHsCpbdPyL)Zf3Fm4BIWVB) zntiWh31lIa>U;U1HMOrsX>`CUu?6nXEA7C>_JrQuf~@%-{1=}bEaa>hLw9ksg(7HD zSZb$-qN|DP4qx>=UbV4wkHDABE}V+p^l#%BhXfG;j&Sfq6o`r7*JE4Bisyxg0QG zNXUeMnyeZZA6#+nH7RHt#g)$!BoAPe<(d-aSW?#*&;iW2n|(kFFmM1Rw#jMBQ56f_ z@IM>HG(Oin+aFSN8@D@#7kb~rv{%_*gj5s4(CpK=4z%mxs>de&4T zrpSG1T`}Be#N#wBv@uB|#|bhNhD=S23qX>f%p{b0WM=9U4(Y^b=s_!WSk@opkRZ9^@39+Gev>|9-;I*9&L_|3K*gIEz*ZhdC~sG z+N8i4=kDjYWq`Uu^1Qaf^`2gKJ_f*K{xa}=n>UU33y=rT)?-(Um(ZQdE2V>xDqg^2 z#M4b}Q*z@OS2wY1McL|k)QS`f6w=0gq{Pey0O%be%SJ{vcTt@$#n@zSrLcU&kJq?d zj@x8zLB{FLj)ChJzAUGpLQy>A9y@F3@r=uTf$e)+e3A}}oOb5Psh~0+52|_rN%3`e)4$tH#81BbQcZ-c+W;5@=jy{#uh8w~|6JWsVSJ`oo7|Gj@rD-Sxxi}2N7ZdH?p>h*J zDCZVZ8q&3G)=tw6Nmn4$G_+GwOSJ~p{RvJgt72M=l)L9j6sS|YF;qj7 zHvxmWwp*FKpY1jTW9-8QwNu2FP|5*8)O8s;K+ii9DRmV)~ zQJ@Rh(0br13a3e1e*%Vq;@}zuL7lGH0TMTntne}UVX;>-&E&E!E7!LC5I~!Ti6BTz*D20M{LwH~KtwmF zJao}wJKILl^AJE@JDk1&!Hiu`5=N{1T+|e{hGH$+WBY_Hk4n^9rG2$g0X3NFBd!_s z_;U=lVECgpl6rYsVqBlb;niWQDaC}GGMQ=}x(m3tN@0U1W1Z`+4*7^PPrS=SS>X0# z)M}d`p?sOoJdu~L##IeYGQ$Qmu)$1BOOEzRUkyARTaZg&B6=B=_E8UnriukKtM<0x z!A#IAV3uP(nkEf^WjxTZw@R#yWWhmG(Sr*)q`4etzf7?yR~jkd@Kx55-SNB{f6n9U zC~%aZ@?)OaqzS|{FZOrX`;KZ@z@shEr|~oYo4o~YGI~HZx8aBCB4_$%ND=ZW)Aoe( zrT1d9ab+cf&eY}Bxb+=;K3&Q-JOGxrAYP3%e#@zKO1E9Z<{2`SExvIjb$ zPvMEW^KQ+IA`VK)gDKa9MY0_$*B?g`s3IN}QaRN+hwlKd>ys$A;)R=I9b3cB`DS4e1NL1SQbP8&6cQCez}rKHzY^5J)ljIJFuYCh|0UAqALtf z`B=y$D6&}q=PFBkw9T4c#qP5v&KIpno^J-qiRJDbhJrj)wTDv8*FNc0wMZfmoWMH> z8@byOL!w(}Lt}Fb9XE|A0ypv_SG<&)prCCQW`33)k!O9r_JFVR6A6Y-+(3|Mc&(l) z0Ba8yfGwc1aHe2L4#$I9)U*&?^=*8QbV%T-qZ{5&wi)v*zRy9 ztDC!_Lgp{P_|g7DE4A#^2SBI`nx2H)eY3#f+qk}Bm#4UB%Z`pF2c z<@89{bUxkSJn3LYa3cyca|40$IAK^8jl9Gt^~XCQy7A>YF`T-|018q{aa0{E@yai!!KO3E$k%Ng{u z>uUK-UwTXjL$;*=n1*nxL|&oRzAiDRSPk){P|_f^1Ha^mM@u@K2Unjh`d+R(c2tu! z4~O7%2VD_N^e)iZNjDPCF87k+xU66ZLfBuao5ZT~p-mrpGUpn_h{b^BDdF~8&d`rd zXhjyNyh(>lM520^UplpO$@t?7VMHc{STPw{^FYlK2%VKXIqzUT{eff~rAMydb5w;Z zUjHVF2D~9n2?FfUg^fUE09R0=w$xf`tX@Mnc<;P=EwFfr;iP-JOG%%Vl{$EN0&+GN z<8SvpKQ>CO<^N-kd6LhRIy+FhzvRH=7r;u`j6SX0n~4I8M@G>K=t>yX08r+{c&{_g zZrau6T;C)ODv)z8H86xXhwB@m&t4Qfp-<`|(RBA1S@UC`1*6fn11I%91CMc#7<)Z} z3;MtIK$#;1CxT>i(vF0`kZQX8;T!(~NFZii$l@XPhDAofKt)9YgAf~P{f2J@Amh>U zsyo%6f$#}=q}7ZQ3nmEor8EM2HW1K_bbKbgNs~nMQ0GDc7~C{?^Zd^}=zu^;z<|^E z=H}1EpRZ=>n|fM!Qa1NL2;q;Mw{i9Mc++t=Suc(aH8dEaVIDtr-#K4)6>0k*^nv`! zcDP(#o=II-lC3^;XKOIYg8DcvH$57SAd@2hskh|Nb*og|rGNUdeIV7|F97%A8097) zKVN!=iYTz=&Evh92qo2+9I+P-PBNP%PzBZdo(AUniB9n)+SdYaD#YjE+{R>*>Ryd! z=_2$^H8eTq))OE#!Pe&75Mu`?rhZMvm_*_9=GPJ!YI^E)#yb=YzE5bEb>Q*kRQ-4Q z48B6N%esdH8T?JAK|r=y0cJJ4)%jN^i7q2Avr@Zv64n3`pl(+V6Ibsm;rO_@|FCVjd}Up3p~hRi zbS`nQqIJt!_oiUxWm4mbchfXKOUA6-P2QD#<hbai{bAzIWO#Yqt4F5%VD39>2jOzso`$o2f%2ezs4(L{7IoJegOZ4~(2lkA=+^oORgv4unJYs%%JCu^-u7x6HBmSF z8GE1KDycLUNIKfSMV;w>xc0uEtaCHLrk9?6+tz|~g^r8SAN$hTJ?zVwuL16<@i8+% zDxVY?t+efVjBCSv;S02PN~zJ9<{z%&#FxigEF#Kwe% z{9;=An^S=yl_Y6DzppzzMxAcup3aR1 zsk)0R)aUeHrP^-Tz28{X2lcL2?69qpO6w`(&#U*Yaaw02dG1hk>bDz~M`en*oSA5= zM(&KAg}-toY&RA#CG)=^DAFKSg>_7sWDbm9yd9Lp;7R{XTCR)KuweRdcFLJ1d5UxK zA6br593MiAG==J0yjRAmD>dkP-3(}mC42rED!E2m#@q?Kum-Ss!@%z z%)a+K-psx@;^x(_LTJS&`|TbbnW9;JM@?`yJft~^7jpkb#7_QEBzXH=1gcq=nknow zLF^Y&V$QKG+#gGqfC=h?y|yb@BC! zsmb=)=*KdSWmqj}Lh82)BS1`; zu57R*7>yV-L~;M5+RP4rRmF~>b&46+N2zsg?+b*_$X_0@e)iI(}Pdo1=;ERptepR4cZrgNZu6&Y|H=9C@(KB ztQo`X>I8k$jFAm%ahl=sY}XW@xquCs|HvE!JVKFHCMx6Gh&!ChbR2NoA8s@4xZE+| zUGa9|B0cF8O~>*u${7k1d#hsJM>Y39U}z4LB_3bz!AG(i?prC>5wvYonQXMTcytWy zsWQ)UPtA7W`EEmut2uij1rg#$Ha|Gon=g{iIpUpbKfi*dJS&`HoX<*T9m_NRYSJH6%luOnx35E*%uAuJzR|4yFe zyvGGA$S~^*6&-FD6%~wRt)~-_>8XhW{+w32h_D{F_(?@^^0Z%q0zpEUWXoI zE|N5HTd5!p^d3maLOKYwblR^LA&4-8)^i|_;(oI>q1ehr(nz>%<&Y2-I>^#n^ECn*D~g-A@)wsD_P@;*(WY9;W}FMR{HqZN_(WV;(L8DeOco)2_qxj@WLc2Lk5 z9QqPEL~wHub76}6lde8SWlOZEDdw5?VoZ>%mx(|67v+q!EvKk^vqbcgr_}M1FHkpA z!DF}|S78gW!KWBrqF%6e6MrhTJSF2_fDmoo$mMVWgKxTfw~(FRH&}-5)T|kE^YG#9 I<*$YR129rNFaQ7m literal 0 HcmV?d00001