From 39dd193d00f26489b93d88c7bf318c5a1f659bbd Mon Sep 17 00:00:00 2001 From: fgerlits Date: Wed, 6 Oct 2004 20:34:08 +0000 Subject: [PATCH] added DisplayPlaylistsMethod and its appendages --- .../LiveSupport/Core/StorageClientInterface.h | 14 +- .../modules/storage/src/TestStorageClient.cxx | 20 ++- .../modules/storage/src/TestStorageClient.h | 14 +- .../storage/src/TestStorageClientTest.cxx | 18 ++- .../storage/src/TestStorageClientTest.h | 13 +- .../scheduler/doc/model/SchedulerModel.zuml | Bin 69536 -> 73890 bytes .../products/scheduler/etc/Makefile.in | 6 +- .../scheduler/src/DisplayPlaylistsMethod.cxx | 125 ++++++++++++++ .../scheduler/src/DisplayPlaylistsMethod.h | 151 +++++++++++++++++ .../src/DisplayPlaylistsMethodTest.cxx | 153 ++++++++++++++++++ .../src/DisplayPlaylistsMethodTest.h | 136 ++++++++++++++++ 11 files changed, 640 insertions(+), 10 deletions(-) create mode 100644 livesupport/products/scheduler/src/DisplayPlaylistsMethod.cxx create mode 100644 livesupport/products/scheduler/src/DisplayPlaylistsMethod.h create mode 100644 livesupport/products/scheduler/src/DisplayPlaylistsMethodTest.cxx create mode 100644 livesupport/products/scheduler/src/DisplayPlaylistsMethodTest.h diff --git a/livesupport/modules/core/include/LiveSupport/Core/StorageClientInterface.h b/livesupport/modules/core/include/LiveSupport/Core/StorageClientInterface.h index 5955f8c5b..bc29bfcf2 100644 --- a/livesupport/modules/core/include/LiveSupport/Core/StorageClientInterface.h +++ b/livesupport/modules/core/include/LiveSupport/Core/StorageClientInterface.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.2 $ + Version : $Revision: 1.3 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/include/LiveSupport/Core/Attic/StorageClientInterface.h,v $ ------------------------------------------------------------------------------*/ @@ -61,7 +61,7 @@ namespace Core { * An interface for storage clients. * * @author $Author: fgerlits $ - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ */ class StorageClientInterface { @@ -101,6 +101,16 @@ class StorageClientInterface deletePlaylist(Ptr::Ref id) throw (std::invalid_argument) = 0; + + /** + * Return a list of all playlists in the playlist store. + * + * @param (none). + * @return a vector containing the playlists. + */ + virtual Ptr::Ref> >::Ref + getAllPlaylists(void) const throw () = 0; + }; diff --git a/livesupport/modules/storage/src/TestStorageClient.cxx b/livesupport/modules/storage/src/TestStorageClient.cxx index ae53713f1..d5bb26229 100644 --- a/livesupport/modules/storage/src/TestStorageClient.cxx +++ b/livesupport/modules/storage/src/TestStorageClient.cxx @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.2 $ + Version : $Revision: 1.3 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storage/src/TestStorageClient.cxx,v $ ------------------------------------------------------------------------------*/ @@ -132,3 +132,21 @@ TestStorageClient :: deletePlaylist(Ptr::Ref id) } +/*------------------------------------------------------------------------------ + * Return a listing of all the playlists in the playlist store. + *----------------------------------------------------------------------------*/ +Ptr::Ref> >::Ref +TestStorageClient :: getAllPlaylists(void) const + throw () +{ + PlaylistMap::const_iterator it = playlistMap.begin(); + Ptr::Ref> >::Ref + playlistVector (new std::vector::Ref>); + + while (it != playlistMap.end()) { + playlistVector->push_back(it->second); // TODO: check this + ++it; + } + + return playlistVector; +} diff --git a/livesupport/modules/storage/src/TestStorageClient.h b/livesupport/modules/storage/src/TestStorageClient.h index 64fa93653..4aa023aa7 100644 --- a/livesupport/modules/storage/src/TestStorageClient.h +++ b/livesupport/modules/storage/src/TestStorageClient.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.2 $ + Version : $Revision: 1.3 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storage/src/TestStorageClient.h,v $ ------------------------------------------------------------------------------*/ @@ -67,7 +67,7 @@ using namespace LiveSupport::Core; * A dummy storage client, only used for test purposes. * * @author $Author: fgerlits $ - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ */ class TestStorageClient : virtual public Configurable, @@ -159,6 +159,16 @@ class TestStorageClient : virtual void deletePlaylist(Ptr::Ref id) throw (std::invalid_argument); + + /** + * Return a list of all playlists in the playlist store. + * + * @param (none). + * @return a vector containing the playlists. + */ + virtual Ptr::Ref> >::Ref + getAllPlaylists(void) const throw (); + }; diff --git a/livesupport/modules/storage/src/TestStorageClientTest.cxx b/livesupport/modules/storage/src/TestStorageClientTest.cxx index fef16e3aa..b2872c088 100644 --- a/livesupport/modules/storage/src/TestStorageClientTest.cxx +++ b/livesupport/modules/storage/src/TestStorageClientTest.cxx @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.2 $ + Version : $Revision: 1.3 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storage/src/TestStorageClientTest.cxx,v $ ------------------------------------------------------------------------------*/ @@ -144,3 +144,19 @@ TestStorageClientTest :: deletePlaylistTest(void) } catch (std::invalid_argument &e) { } } + + +/*------------------------------------------------------------------------------ + * Testing the getAllPlaylists method + *----------------------------------------------------------------------------*/ +void +TestStorageClientTest :: getAllPlaylistsTest(void) + throw (CPPUNIT_NS::Exception) +{ + Ptr::Ref> >::Ref playlistVector = + tsc->getAllPlaylists(); + CPPUNIT_ASSERT(playlistVector->size() == 1); + + Ptr::Ref playlist = (*playlistVector)[0]; + CPPUNIT_ASSERT((int) (playlist->getId()->getId()) == 1); +} diff --git a/livesupport/modules/storage/src/TestStorageClientTest.h b/livesupport/modules/storage/src/TestStorageClientTest.h index bd3a12e15..26ef9987b 100644 --- a/livesupport/modules/storage/src/TestStorageClientTest.h +++ b/livesupport/modules/storage/src/TestStorageClientTest.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.2 $ + Version : $Revision: 1.3 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storage/src/TestStorageClientTest.h,v $ ------------------------------------------------------------------------------*/ @@ -58,13 +58,14 @@ namespace Storage { * Unit test for the UploadPlaylistMetohd class. * * @author $Author: fgerlits $ - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ * @see TestStorageClient */ class TestStorageClientTest : public CPPUNIT_NS::TestFixture { CPPUNIT_TEST_SUITE(TestStorageClientTest); CPPUNIT_TEST(firstTest); + CPPUNIT_TEST(getAllPlaylistsTest); CPPUNIT_TEST(deletePlaylistTest); CPPUNIT_TEST_SUITE_END(); @@ -92,6 +93,14 @@ class TestStorageClientTest : public CPPUNIT_NS::TestFixture void deletePlaylistTest(void) throw (CPPUNIT_NS::Exception); + /** + * Testing getAllPlaylists(). + * + * @exception CPPUNIT_NS::Exception on test failures. + */ + void + getAllPlaylistsTest(void) + throw (CPPUNIT_NS::Exception); public: diff --git a/livesupport/products/scheduler/doc/model/SchedulerModel.zuml b/livesupport/products/scheduler/doc/model/SchedulerModel.zuml index 0c994d5d466c23976fd43b399a8a1da27ac59575..9d195b47c12112928fa5e3b25d5d84a57421720b 100644 GIT binary patch literal 73890 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 OK7#IdGLHK+oc{xBLlrOp literal 69536 zcma&NbyOTd_cjQG;7)MJ0KwfQXmEGe;1HbPuEAXfclY4#?(XjH4#O;Yzjx2~+ugHg zclwX6F74`Db?D`16>(7T0rtH~sp?M4nE;uwpeh|r1H5W%OH7I@dTu1#mLQuul#BRPhs|-L3^t%DNOCc4_Sh<&nuRXoT#) zcY)Oi2Pr%GbCRLWy!lahYzxdIkB}v1^0gULmO^4zLH77&``y{Q{++$mEgKq!!uiFe zk3ciJzjp7Ncja94@R1`6e@Z$ai@G20O_(L?q0%v2n3IgrQp)z3Kp#5=yS?7<$WV$X z37z*$alUmrC9sNR;$RUdaJi6G<5vyCVKIOWwhNxpj@DX1$+ehuz>2o!lChcM%_F!8 zw9ZnxT#J?p4*vbrIL)uoI6i)UWMF|bat`{eAPoyADzn%c3<&`-0|f!0@c$}DjQ^(` zU9Bz7+O=!yHwNP;CB#r|Knr%Yky4`g$b6extMLn3+gP{4335)B8tD>! z0rXh69VT44nRUMqh#y79*6XUlC}@6@+gGE9;HS;^+vDr?&DL{ZF!0a?{MedR7v}B0 z$j8Ze-g`UPEASNE2@(*%5omw41>gC+1HeyU&}wJf>tqqE)5GII5lFzp^ZjPj=WVs~ z>-+HNL!P_aOEHSilMbJgKEJwb(F6FV$fY$H1YT2>&qDQiY^+*u?PP0pQG8*b@sX?n zfjd3Gufd(|tcnS5b%2ZY)?VKeW%c^?ho?@TxA=#G=a)IY%hGjk41xFlXrFn|;UVzc z27CzKI6tX$f4{k4It07CR)fvJPpD=-kR6W#oj%I~=fLf^NqumCw8h&e-snqk8|QA` z)xo}7Be-_a2RKJlitM&Y1)t(!$((7J_3RcIVY##Pru9H=3)LeAzd`ovZ_r3=o zbr8Mp?dpvfJ(|^@dsnUi&u21L(q;Ofe1WU$15qNKsJS|iD{_Xm2Yr3DB#n*ik>@+&Y_}no%(-^tQY_BET z^Fx@_z|b$R>gF>qa-BZ$Y73p6!!W2mEaaA--p*`b*^ZGg23-V8g9)}8gHLuF+*1Kg zwaZ`xRQ>nEUSROcHI-E(Xa#h4k*$RaK0Q4g1eStMjqcCw1>P)JXr58*$ zKAUP;0-*OLqQY|iPER+k*<1mYg@YUqD=@YDy#FSca^Lp-8gMY^o;K0hS(ov0bEQwj z`zNYKr646GLndxq{?MWP9X0p;eG25J@T{&CJ8i(=lg7BNeBb6_{%$R>J@~E=-1&BO zb@%-DbqX90xHM>(`zoE)xDH&bJ-uoaXh*)fSie|3ywK0&WDNGXe&4_TTdLnM*!ji` zn$?5xF?Zbo0$jOp%7PCoiM-d2U3!Z5q5TI1?mJ=X&tU}&t;Bpzy7iMVeL{Y8^J2h! zN~Kb4i9nn?!&p1pGPw4*xmyHZ-xW_f?+e%hR-%gmEHE7VKSPdxs62Wl;V^<+&l&H* zC#mY5R;}X(fsFFsYMI;lygPo@O;c{BtkUg{MhegFZ}hyOxnnC{A&Duluf-}i<$~z3 z^?;)gKdhJ<7;5p7k@cyjYKgL-kR6IRt)c=dBTb_M7K?o7-d;D}UBNeZ%_|ouy%D)V zSM*POUe5uf{I$#35A3}0q3wK2Fs3#>v*65{Nk*WlRTb(%j%WiQZlI%4hdaCYDV zG^?%l>SOzN_W`_(XSlU^_+b0$1APYWZrtq*{S$D@S*>9{t>J6N77)BE4OhGTPDI1O z0JKB^1aR;FrFkfme8)zTfdQ}zuzuB%vt9X7NFsP}g=E0$59}t5x$AmfVUCG2u3+xp zmcAveXr<%vJTB~@R%+rI6R+!|q0V(w{pr`JU;>%cyM2?hnx;8_VbV%Cm(VCGTWJ_? z_9I*D^3f+YlDoA~?+%TV$_1h=03m`0f@dqxa!aW1b?{^qCjs~qa}hJdQ`_=A|7s&( zv=O%xfBlBn2eFLEA)rv750tC#Q3v27IV;UZlbD zYE|=%`U9}-Pskpv4r-lux6*~37`GtIooh_ZUbX|nxSQ6d3^9P$Zgoq^W!0aN-x)9O z@Auo!sOg7QUs3u0Ts)WAYli7e>MNGcnYVFPG!>mro<)bVjI(V#0@o)W&HQ+&^zGIt zyGKt!-m7bTyk1^!VWX@UCyp~&JyTHmZHAYGz}tqkCz-3LQM^a?!%JJ`VeSCF1;lp` zdXjgDh{c=5^M`$Tm-i93PDHQHw6wFwX4mn3#7wIvUM06!(h(p3+d0dFOz;#4tlxTA z_zDt0tpX&ECmmD|2AK?+)yW0(;Zp}Z`u|>1UqZV)#mw)`gls$E_^}(8H^avrRqZsH zlOcx1X%kUm|Imw3c4co^ww^_ljA>@G8sOr&3|b+hp&c{bgwHX&Eb{8{ElUr$o?`?1#=p*+u@ucUd>Z-?{aXllI$Y`SD z$z&pheohm%owN%5{oW=03;OV?3zo}Y?{~Gx*B_OAu*M97)xJ785prl&+g+_2!V|^0 zW3d#7E%P-b-Gb_-gN_+Sym+Um058IIP z*PB@+hMBSb=!J4t3vIjK#{<+rddKX9M|YgPJsr(8y`yX94dw2*q(o}LIx=2Yuppn` z4~$IduD8E{qHFOC^oEP83FOlKh zlt^*);kHpOB{SK%8UxWOjWml&y#qrJ8>!{AtWsPHM;s$ncesPnS&C_{+v426it(Xh zQw1z~mLL56gd)<%&Y%4yGz+`33AvU_JkP@cx1wHxH`voEx!0UqbjQs(ejPxNI97j% z*S0fyuvnlb*{q-)amhKPylL5YTQZ_hf-b;-USTd~B}KCr%;;{es#Of(KtAU6tFP6w z5?bt6U$;rCJfuuD`%X~U2%r@86>=p(`K>1Ey-q)CKT^g`W?KUyf8kOS;3RtD_*5~H4^<4Q@KD=MGI_m zq70%1t1><8(W|&=+=Yq3>SB6n4Alg5`SVv4))IPxWlJ;w!Dkalg*M~IZMs&OwsA`@_H~js5kh@Y9crA zKk7$K>rIg}A!Lm-{9iwIwJV??ns_91{ad@oG%htwEn+D1uNOWYr`aT*hb|OAil0qaJl8zHDe`cl zg)ktxUZ{*rDrRG$yLH2eUP?77p{>%&ARtm`=>8>8;azc&O{nsg`OHB)k8Lg~FOCP{ zW2bv8Zo`+oB_5o9J!uE&CFzq)LUnYVGhZ42_iErt7 zoB4^RpU~ari`Iw$Ox4Rj@m-0G2-sxaY!|cn*s`-MR<&AT z9b)jTJB^!6G#qs;7Cmw27j#pHE`MbIes(#Dz)LUPJ#P$Uf zVA_9tAJEodT-~J|GPAUOrEvQSTekh_*Hz@#E&bq-RFKnBGO=JDY9m}^1gcvUegZAT zhCseI+V4+FGk)NGw?%7C)mdFv__%WRLN3BUx7Y>UBv5j3{wLPEUa#aDAz4@o>d5U@ zzd*??FVoSueR2NSKylNaZvyWZ9?3Z^3K6@0k;BqaDK~DJWF+mG&*d0DzMsQd1}1;_ zAJKwGpEZ^mcikDFp<{XcW(f)KUUr)!AwgTa9*A$1DbX!r=I{g>4)|){2e$R_T00_8 z-LDBAoC`8nliIVBQ{JV<9_2#@<&BYNv)`EZ@v-+tW^w;C8fdJuxu)vzxxQ4PPWo&K z6&B0T#1PsD2@5<%~B$cXF0Ij4H;Ypd_0tc9NR2 z2vbT^0!pSHNG1)~94u+fI_m}3*Gm7QEYEoLxZBa-X@y4E>jH{)08U@|GJ95*$qTBT zAAq|Y*1bXXn3>I4Ziw)W22GFU8M+Q>V%y;+=VK}<40V!C>q)^oLdo=)xTXPCKytx7@88sCGhvn9pzE-5*?hK;rASR3B|&<&(1JB zXPwjj>Epi9wKt0Ibq@3)o_U#8J{_CH6zp1!G85b#a`|UxJI~)N_Y*R7Wh`?UILNVX z0&u+QXy{cSR5+NK)9dlMLbDZ}o$cwl-3ia_0Ajfczwc^<3MBDOqcVdq{E92_8k|tyrc_5!qGQqCcQSr1s@r#Iv=HC!%U$MI` zx|9cby003HCxr|}BYB{V?7T9;Q51wZ4Sb8fCo&a!WUpBqJHh+ch@Q;xmx`ic+icfp z$1Xj!iVC&?)WnWbOF2JAMl3&ut+coz^#Q*Znar1xnmM5sKG%7dNJFPUf>nNuo+U|C zHy#?vg0iHBu62~9AmV{ywzO|y+*MTb`*-_qEs4Z#m2pj7@~)7H#MTD9WzZIg=XDrl zv#-BtSVQ4$R*NtYtcSRl<-a13bP`DkAs~(GH3dz@|9vZI_b$xs4P6p^N}`gnJp(# zxH&u%Xe&Qk+!Cmg|B8}(+~d`s(w+y2xbI$ zRTx5p3pM+u=eYN>VV~IACZEvwLOlQTQh#N>koQw=@SlPp1Y+3nOJ$T9j;5oOgn)EL z?LS5wX_^0$XL~}TirMf5p5$>k0ccAQqX(uK-&im8;DNphnScaQi(YHgStHSCXYM->!*?AcXg*ov2S?RmTG*-a#m z_;JTIDaLQ9R+{}WHl5(mtvOhqDKMuQ7z*+;>t&W;*)l|n71q;%s8*`gx()vIo#80z zt~;w?XRr;Np~SLn`)&`F8TXD{H2)#MbVNig3GyeG1Lm&IqrX8wU>g zNgm%o<7u0aiODaOIIL?T8d_V8tcALxx45*0BKC3I=N_8V*;E+$65@Lc+7fw7e1ymD z+>_bV1CIOT(F*xd6)Bnh2Qq>co5A0-EI_@C1-3e?Ps5}X+s0Q((bRp;O*sds64oox zL9MdE5*5cUYw_{s1&J22z1En`$s=`z&58zv%rq=>e0#$W0$kK_Wcr$UxrHR3FE15R z7TA=x-AiP67|`jN82@eHUYr0{+LGx9;_;ERY7z=fOBs6&aGS&_!zjx2{E5!AwL>ql6pkCHN85e z7W0mq-6#Yzy48T`bzu1w0X?i=PI{LCip8j!kQ8hmz!AnwO=$VJjFncnw90C{nqo#w z%`5UnO6RUE>ae{q{beM@y{UFXU(S+lkgZ!YRV#nTy!4`N(%mnOi1&f3MaCaqh)wZZz6!#Vzh#%6w8D@$X%fu5 z?EMV_jn2M%xAGvdh9$K^FKtbZ**c7~_ql%B`EVb{l!zN%w}|v@nw(b!jNDyO(4Ov_ z`MBKQklDJj(nk_w?8#*uOlCw{=;rNfh6uLVlvdg%R&Ri^MWe=;iK=bjneh)As!IR? znR<=r;G0%8dO)|OGz?-}5Y^%6c8(Z2%s-oKddN?`)R z_0td7u|B(n?%?>4$LM(+LLM>QF?+?88-*J#s^th*$KKmF`f`URR7{iNaWx49qbnOK zx`ZqKT9cf+fJ)sZO0(Sm*yDu%*kk+15`rj;BHm0&Nr|jO!eDIC?Yks6W@PgTfL|A4 zb)_xky(2_%RE~(ZU8>PHVILU~Ue44$#Ug{x!1EB|wM*xzEj;6rtKVq5YzO(UJs ziaa-#M0{4+%Ev@+u2Z_$<`R>?S1v9UmRH}(ZOg`f9RzGQN- z&}4J$>n{z;k%ayH)BTaNA+2No9^`GDWvI7rKo>G?Uo#aha_x|KQ2RG}2h4LYBYSfi z_rby(qQL5J#xCVi9Xm!sokYEl^k$UlQ49Vf6mQkvDbcGn#4Cp_VT_)3G~!37HfpNt zPqxiCTk^d?=!!Ux?mn8~8WXkG<#RWwl1ZgzoG!*i0?AP0{Icv=7T3u^M=aVs^AHnD zPeFYpQrnSs2*$NGz>^XOh)#-&W<7q_{PRcm3%+YM$+JV!7oVRnPgl?0g%Tyj_68q} zAJc}YFsmZhS{D+!A@44_*~@^01+I!#3?%aN1(HJns?M+|Mz(|*tNOJP>DL5|{xkcsA(qkh4Q?JK=J zXH5a#E$a8zTa93rpZ5800PXv29`2i*hfOSQ2O?BZq1;d`qcq(hjc-9;O%@cJeus}* zTjw54OOWh0$-~p@{l@0W4^MxbO;w0Ed}o*~PQsf&zvu_Z`VJqP{AkBMxe;dGXW8wV zix+5LTId@#xGg_;uYQ0XP3e}8fWbNE7>=H*?x*uT^F-JskGs&oM|yBOtI1jYJBnFd zteFZoJrU(%SZ{o4Np+`e1s899ijs$Mg=?u&m1Y07t+<(oUWFQACeGXJ4c~fr305%h z)1)boNlGZhsnu&2wB~~ye3=m)-S-*1ylonT&Q$_tp zM0wJk{1uL3Qz3eTk=QDDvJyhZ^B~-zpP%enA*w?U>fJ zQ85kY=$YY=3sHW)NDJ-9Te7B0WoYYGaJ7llk#YZ}DTx8J9p!0SW@O`X3>KC)Wt@h5%7kK>h2N{-U4} zqh4CV$FG(iU41Diw@(e92vl(8Ay+Yq^|lzZ7@ctey}1K)(W)vG6cXu@k$7#3apR>; zdRy#A7lDm3Ce30T9)Pwpo((m93Y5z_XU)c${8;T{i(?6z&+>mfxncARlF3v>OM8to z(Q1IP?J(1{w^3IGG3{Na3LEgh3&MYWh zkWYN*L{}El#l^UpR*>^7@jC~Fes6Ah6n>7SBBy_v!Z$~Hc!Il#^8UQjswQ&2lpKFY=tfBfLzcjg>E6hn?RTgr`aqH6iKx)X$W}uV1Zg0ixZRSTE8|ADEJs%_k>_dgzw_e4Q%ybD_ za_J-dq02wq(b&RCQ|wRflC9^RoFj-b7s=79J_64yp`j|MnGn90{N@s>Q7%8Fk5Wro z#0;dlK8PZJMI>pOJy^y+W*SPP7y)c_!XtY}9Kc`k^kwwACJxyPg@AWOMjw6`v$*L) zqPYO`+LXu|mWigz!3m8ddf!<03mNlBh#&B7Ubj7xj9*5~$R z(j5#}+wk+~Zv9qIfbe}$|9!(6{4czuL~gAzur424}^y(qQ?D+@C5fzkCC}`DI!{Fjgk4T z#qOh0)I65awc8E$b;#_JzqISNu$h=WTaS);bQw1;k}2bwFr`U^>lXK{#N;#RJFz;i zwm;lvzx+Tohre10ae_8}o% zSaY!BjySx`6L6!aSc#9GlJ1n;J3EdLfeqe{3;=9GMm?FU4O`VZ$a#fu(}lfBhB;~$3$pA zQ4C`FYS&doZa@D=! zz}RE;Ac*cLpX3LnXy*24H_BWWT6l&sYLDR9u+Z3W33*!qcM35dIG{>9ggb?CAbrpO z@=cZw;uvY*3MrPDw_^-CcfD0dFw=(tJ0YNX0G;EBpVSwF0oRk>d&HTTPjUn*+Z}k_!s9QZU%&6(L9($3d?g zTBlF^(!Y@pbc=Z<;S$b#;Y#1XcT7wh4B}MWFG+@FOdH^e4W7<&@<;K2x33KzBlAtq zRJdo#*fp3i%Ik5eovYh{VQ2p$3UK2V5O}A7&U7d31vEv@4 zMtZC*&qJso*)YPDl7MZpi+l<@xj%(szv6Zwq6m>|YitTutujy!F{)Rhu+P)7m=$-4 zf;7GpuMJhtdy3;(opV0@X)?xl`NT~~?)s%$HEi}*ZrErq7fPr5MNf1P)HHAM zns!;usK)Y$VSzL*4mwm5d4#n4+)rO=KYx$uSIre?<_No^>PlhZldP?+wd(1qitg_} zeZs1AgkPM4DiVA+Wct%U_<+seEYP#_eKa8yp>^v@$?I&5#{}Z5Gtc?~4Z}OO&^J9& zAi7u?C?xI_M3RLC?T#WiphQxcry(jTmwo9QNcUy$jlcl;^Dyv>SeZ6_-a1!=+U$w! zp&6Y48)ek3L_f7SB+6dk7HMsb`>$WzXIGlCxD^ky*%$x$D)4#jzjKjv2Idw&#^6J& z94rm_Jy2mzObJ~1DA1jNlyF6oOE4T!WT#0DtovBC3nTh*M%EL29sS%Ut=f0W+Zw58fzKK@{K=Pdb5{9> z@wPNVwEEpveBhus8F8X+e^p7a8Qr!$PNi)F6ycC&<7sORO>0(~Z{+D~<1ck0I;woV ze3ebWAlfCTD1w^$3OQOAE6$~hew6fOVMW*53Oy5l zx(mzr76zX$Tb^5oWG5cUg!!J|HzP_8H#X_<>MyEs4BT!>2zJC~>)dW8aQjE(9LDbW zf*3bcO4VU;04<`dX0pBe{U({ATBYnynsG6UgMPB*5BITwya!WpF^?_CZY1^qj2pw9 z(YTnwCr#V*7>ioHbdxko9Xjgz$yH8DL%)kg<^Xg`WQtPGrL zz28E5B{G@=P}VGU+LA*Ant1#kt-IOY3FS!^;w;V@*$pJ7`jSF=-BrcT`16Z2tcny@ z*siWBVS#P_fB|QO3zcJ*#!>BmvnTnOeVX&$sl*WNlggIdv~DpSqnZ}YH$1n9 zYC(f}wY7kVHvbvKA1pT%d6GnxF4#D#W6v8#y=r zb0pxxB;41$1y2A75sGWQF8@gofYlBhfqGQ3m4&|z;6K^5&nTi#*g(B8Rd{C_6vJ_m z()63nN`t?{a1ltBwHdkipatSu~pWe7CUIgT1A}El{L7s$yD25NI zh*)UC-?2&3d0Ii-Tl63Sh|!;NT~jDsJv$I*MBd59x)d~3pVQVnmVO2R-g^g#@}Dm_jw*L8*uViBV}>lI|) zCyG%H{OM(Tt56cqgS1fO=uM2%;7~F$gO+N`Fr+i_C^1d#H)cuy_a&kC@Y~;)(9Z>b z!4lbYYz+LL2I>%!-37n5wo9-6Djf=MGPdJ zWLbj0xM{?F+6rKA7l{4T)?`8@f)WVgAxEG#)qw^PrbqYYOtx=)9jACa()?W!+S&Kj zOWwz0zC{Ec_K5w_&+oSlwZ(mIC~+xrIW7ZW z`hMualy$E(5@kgjQ}Z-de37cy&m4HL)_Su``YA9q&C9l3$zx@SiZrd+{bGOpYmy0%38lZw?VO*xWlf)-`_lp5)f_+T?XPw0UX4UZXKh@$c|{Z>_9{q{qU?BA_;knrRf(G z5o$w?(;-k$@ho?E*q+O?ipx0bHnyTy9U%&~c_*8`a7Jh3yiy&V@9}?OYU}?UriQdw z68o2SMpgZGT)GyuXSEliepd&g&gQnOh z@t~P-(NRYEH`$9kVAiLi!9(S;2w;|wbs+4D%`#A1sBlcHnB3NZQd^x~@f@E_ zF20Tuq64AY7%%j^;5r_XOYKOIbZ9+M6MK(OKlfywuz(1Du zKcMS8bm~SS($~pI3cDa*w7MVVaipYQ3?f1_+gYa4DJ(!mRY>m*;LGH_%@x=0R26>N42azwM+`}-S{ve*qG3ovy-d^n zbuIRmCW#E`Zko{*Db1e$|45cbn&ifvPAAbpkf_#3b%4OX{~V0n(+#G(O1khvVbSJ`#nM}`eF>dg?l0=sEg+w zdZT0{oKBm(EncU<#NhEHa+`ukbAdOJe@@1MqN& z>FG8jU#2M9!KvxoSLUghNT$Fw3@`o3g(kELR(sG>ZxTzJHCoQox@hM$P$Rb;&{)EEq z3f9!!_t3q;bDJFeosZ>!WfGAF7LyNp^iHLoTu|J=q@H<1+kSCe1&7{WM1Y zTE#eM@{skVBU-wawbqI&ULP?0ZiI5~we6w%(oJX`CXyn=YMuaP_g5M&vSc;=w>YfY zvmVf!Nj!~IT~upn-D(bGCd6BX_>vyd!PU~eUU@>j)E zyUD#AfzJyrS~-lDoR^;(vg910^C+8~*QNvl)?wlNl_8sEJm|UOlmT<|F(v!;sRNPc zkCp4e&g;df{qbwVKg9Zx-i08Y!TyL#c3cvucCh|`AU7V=>By3SNpe9_G401XgD`%Y zqd{p~N%+}-j^kbXlp^GWjmv9O`SYS2J%!W$Wz7?pfIw z>kNKNS^pIVvoDh$0BZb88@Gd6jAVv;lq;mQ$W_GWR_%p>7!3fOt;*aON&MtaA}8KU zMTklLlr4{=%53g@xwZ^|G-CJDGs+=_P^;4&D?8#uFtI+VF2R#J^yz8WpS54E<}aN- zZZA64F2UP&l(gprZW~bF{~R$JG;n77D1A-cz?6b>U6Wly#W3 zc>ZW?jo}d_qzsg9v(wh8zVxKt{RzarY9D=8hxrZh$NBvSv-;WdBF`&R^A{NvJw%S! z$7*KB#(<(~<{?aL<|ghs64Tv-#dVuk1)ufLhP=PrLt7AcWBWFmiAVpE1zF;r7+#r- zG7+#B$+e-jY_<#r7X|AsdLN|*KroYdgiF)XcMfVMPsyXnPxeg7NXXK!pbP}g)vcVi zc2OXI=Gab&Q7~b}=A`sL5|oi}H>pgH*}cWY#8@*Uct!BZMg#U)SfVPG(xeV=i4Mczc_ z)~2dKewApL`uPKddheP--^ULj%mY>Jyc-gUlMD*uvD9P#}ZM8YXYc z0pU81QN|^sYOxXZy{qfFrErin>_vl&ls)UMwByul$y0<4rBOK0>ceQZ_HsfdT&WxW zA;u)aRkJy*lHOV=?U~iL9I6`z1Cbliwh5ePq7-aj&LgWE(c)#&I!8pq${_=bxvcrd zNk-JkR>s?SymbP;yxP7Vzhv~^PjWpiB!3FzzdY_%{7y{=bR=x9w^}^Z54X8DiNmNj z`mt~o$}5Z_Rf0G8E*W*AQNj0KyfQTEjVYABwB0`LcuFfarGt#>ce(jo4t3qyD^JOj ziHD^TNHz5s-(K@C1Hpn;XWnb$H)El@(y6ZL6jDW>{YP2^K{8=PC0`$TOVC%-BPKeM_Ck!vn?i6&G5ifWnb7GE0C>LgL7lpUv>kHFUS>$lnn z2UFbMTeR`_)g3YlHZfhv7FS)7IED)r#heKXP(7LM+6yky*_W}LuWC!mcEjBKPI9MB zWY0SdQ}Fb|MHAMZ$_C^Si*EFi{L0c2b;P^*#J*Nf_K;@Jb8h6C{EIx8*F>%p`&GO~ zI%C6&$k6Pkn!(&Duc$--<$>oZW;gS#VKR%iI_#3Acx7oFG5D;@7J=i{PX{{HK|CXzwO|%Ig*b zSc--+fw1pHbxjK1{Qb|)6lXI+t?L%9 zy^;>_$66KK;>^qBi%zO`PYH>fJ*TyzGx9a?i0~2%E5Ub>(Yq5quAWO?-%9X!RHN=J zk+CD7P9rAtUAU9@%89Hl`$>5eLksuJAXpaQtx?D~PKC#uxW?V_vJ353yN#9uS|SoB z*m5f9|B-o7s;P$#db2-d3+7J+ycEFoD;Easrwst-dFPQIE*xN!t~9YO*yw$Tjg*ny zTn+NJTOkuk#Y&7#&rKm1bTCP<^NBuJD31kvdNc`bOxPZm?>B+o@^bAG4(+VoX6W*o zyr9o4k<7f$s>ArKf?Z_X zC;QFlq-n2mi+~?B5kfbFNxrF&MGnCW(e6o^{n-ZN4Z;7Q*U(8_g47&?#>FX$m+;JR zO0$7OIO6i{9i1(2(=HRk!72GotzjZr^&=yTTiD?1XYMAI=J;J9`>*>N)RWzh8q`yM zbd?x_zX2^Av5!0cTvwCq?9F_=Nmz1^Y8F`c1 zgLMx}!oqp=3&JxzijcZ`KS)odUpe+*zi;M!(t9kq=F}B*cpo&_0HUh#T-}^sOo5?i z)n*Nslp4Ildn8lPNX`e>CvEv3t}p54H_R5EH12p%INdU>U*49qqhWMmz2^U-#`@_VuZReMtjm7DM&b00`H)_*>c z?Z$m=tRM6N4Cg@BdBPvS5VSrBnHT_Y?*ok!z6@O0hHsk-%a-htSw>Q$tTHjqw2apD zmf+sL+3{bATN<1B&6Wuf%Yrql#EFq@#6LAJTrGB_p-BW_%KzPy6Cwsh+ao%^9@+@nXiW|1aR=8aadme1nw^0yPO0}LOg&?Lo6 zj4$9y;founKO;s9;p=_#Mo-rEG^3&ALgIwn;*nL=%2#@mb7T~(*Uf}^+(ylwvy-s% zQTp&Up8E-DyFrU%K!QYukUEc^AeI4V9fQm)XBCT81dVX!3gh_) ziouSCiHS-j#zv^3W?Tj4rl-0*w4yK_HUC#t3_z#7CvVNJXyVgTGm?78e>v$(9{(Y^ z_A9S=uKd-7kk?n4DX+CnMTUz@bZY*V&I-pP!K9|nSFWKx5VAap;A0~W;mr46t>4$r z9u2fPo#yLbs!@6LxMpB6j+38iVkB6-7fxd(qR+&s=t4T5)&oV|jSpg{BwBM~|137{ zF9Hyw>)Lq~UGvS5+he^fl^F@KWABEbo)wu|4JnRg%JP|<4dN30S5>>u;!^U(lLn&k zmwA;2G${VkVJ*gW_6D)5kXt5p)tb{B$BOO*x2Hq#s);6)*UHyHq$Ap;VSDG897WQh z3n=Y=*=P+B=e~T92h+LBVo>c#?CVKz4+HXbeHG zLp$fDzuq?GcK@c2CLOnNA9p9VuvU4cRC70B!ZkXxd-Ab`=Z%je&upC6zOV)mBo^a@ z?j2>ox41`b44LjM>P5-x#@)R*q*EL(7f<<>*HavK3z}OYaDVtKGe#)w19W_~!?Meu znqx;L4mVSj;oS8yNVrQd0qo!Sa_>&u(%t6?qbg1;d|Ljje>oA_=V+xdl-5@H%+b$V;76 zN_i(1@WAnRL=>ggO`m$DCj%CTP~UkgjId6fFs!g*XF@e8JDxX!P;Q#t@z;X|d^f;9 z{9nIe#Eew#0@1ozla@Ndm%M)^BxQbic#tzwHgR+nvQqd|^`-OZ$di{dtP34NXzKG! z)&beD9L`b#1yN@9>ui_w0gixvYH6JWo_g+wp0D$lR7o{`Xm=M|^F%nfV5LNltP^5Wiz|k(CHVG^AyD0f_kYk&`0iTjE2=cP###&hUs+#-?qi zqjO@E(t=ErT^pW7-!6u&SG0r~VOAPJugy(|wX0bg*T>@9q!OdO1~)zvV6NqF-iVUB ztm-9+cCPb>b@1c-EtLUUHqw6sOAhZDri^E@D~(HifXjX^Or;Y%!h~ zXlY#89`n4{ysMsm8Ie}_&CHC_#agz?6?7Ja6~B*%1v) z+Pv_3=isC|BJ5IYC5&F9=s$}?(RIAmEQvtE$~uUvie1NcxWiYR?^Lvtvs3(UkST!= zRX8ibz;yY8Pm>x#uM9%3{qH+UQkLc(;e&rJ53d3>o>8j4WL+Qr?**vzRgh*^k zT*&}ec}1kh(uo27_?L_uN%@U9hVKViLlShEq+S?A4tBDSOFIL~t{OX~Imx;VHB85n zf&Xpb8$c5fg-$x|4OZ%!`FZl+x2s@(MjiM;IqY-w1xn_9_ej!vl;tt#@=p!~)K#@K z^as&k^%5JT_JmS})`^;O+w+)TSB9d?&{A-f5oD8wV$_Y*(JS3|Np;Y1#YbwIjv7dZ zwefK#Jo3E5tK=V4&?-|i_$o5Es*}6R85N~n{nW*pbku~n$*KJj3oT!LM4owb-F|(q zSW$(=MA(1dQ0aMfXE>6(u;nM8dHP={VFqMf@PDENk!rGwOQ!YB_l1r|)4%nXZVdI8 z#Z|fr=dXT3RAXzcx3S=Tv&-Q)52>0U zkxe@Kf)iuC)5)GeY@X4gw~*WA2iC0@2?LW>_+B)y3YF)NQB;c(rb z1POZj=N`R?*?Liw^_NvFIu@TxynNz~?M)1WjhQh&sW9X3g-_ecjI#P5okJW`t(THFuakemysFwGbJE zK|QRZjBD|!Hm0R=?5J=}xDEuVCQBug#yyf_jyNTSYQoB{pwa}wUs@XB{#{wls;joR z?R`)CDbLlw14Fx=6j10_TF<(q-t6B}$F|fKzk)nZd|X>C8mS3^@!j2Xm3H^HO1pa= z-_?e9Qmz31Ws0|tUPK)8_EKOev%849g{_zt&UqmzaI&-{xK!brzp1wZU3%T#k^3d&x`!Ai37{)!Fpf{kK%o74e*rskGrmhRe(r*aOu^n8gT1?RY%}+o}0DXy@9{}m@D4C zKOnROrc`Wl^jX{m+AuqxE4!%BJEAn9ug5l{*V%tSY)>v6PClkajQeq(fxwT17u79T z;#XIco7}zNJ8Nn3_8xDq6~t-{ zVD=P?I;al9Fy{mpRq*DS5p(X|ZHS$zk$j>X4iMCkml0&&JgOO3LJAOUXchIuE7A0X z*i1>7$G24|dy@T*`|c-5P5{;RTnyMZxRWhGe4s!qIUblv$j5N>=H3R+Kw?3>}u>(@U)Pw3ywoSv%k(6>sS^j{6D z{(Tv1<$a7Jy}%|vlPh>VMV_m)3V%prdmMEt{7djNqM@+hlo4dg*a87M%NCnIon;Gz zAKmg!nT+(*i!~U%@^>mXsxxAcYZzeTcl)7aifKe>$>F+@>UnvdYL(x)78cK%=Hu^f zxf&VljW}ggD9x-B_Q+Qa#q(aw>0ypnf5zN!+X)0-?8d&Z5l0R3wFQ>)p90Hdr5Hcdbg&KcdO7M^+S zSmLh{okVg?$m&{N$Ciw&tBd2m(IEDyae}G-z9jx6>n zCh%KF6n#$!8b>T{*84OSK|hv)?}eqx8{8SY2M zF$rNm+3$Rv@%|*{hL`-#vX(8r2|pbb30Y`*cTA0Csl{iXRu6CuWbNnlj}2w*+g%>1 zF~7cvgdL^x9eicOf4baQu}woryVA4^_m>fiah5AlJXWdIZZ#9<_mDP|C*ue`791*_JA5| zk{&==W#CjOCgxyQ>$#a#?6Yxj`YuLo+awk6SlB|nM$Zxlash7;yX&?P@l?Dahz|j5 z_^eRPND{+sK&|Iw$Owh_&k1{cO2U9(@V6%^tt=aqLK(;!)PkSuYdEM&(|eaIeM zPt?_+5r9Gq+*b46d#V}mz_H5C=s@Mi<&aS4gO0tN!`}<+uT-jaOVo^{@D+HNa^qEi zW}8ic-#@7HrgnmqVtRf*kXpV=rg|4j^RvO_7xkZnTUzA{BwPSu%Q;T{g_CpK%+yX( zOzs5v6AgifQt#uSST>-zztWp?op49v1lgE4Jf#1dg6p4KAcqu+-dlBxuUh*n>br3bSMzUv19#3$$1wBFn$}~-)qMgK-<+p->3wkGN@x81 z=>Lf(S|kFUx#?Qyz_u0Ne--(e!g5`2jR7d(0b^m5{>ut9V7`2tkBHT zT*1t|WAvC+&z<1HvYaeWl~}&(8@O&)aOhiL`9!78>t_yAsQqd>K=XQq-8*V}w@Lm} zgQAc}s#)w#9PKx$Pj!Jl&=f`L@?Tmlssb);h!!A(-lSN3hDb+^h(~w`STyCOCn&G0 zY>ap6o)8MF?bMBuNm}fhOQL&;$^T zq^T&kxKxu>vD-x#{bD;njjH5sglVe{EJC0tR#)_F;`lR?Y1*!>_cf(IwZm(%(f9KD zX_WagQQcC-Dwo6h56m_O_$^OMHA zEqvU2Aho&N#IUfmwBo!8D1pfn;KbT}bLgGCAaJIcU=6$GHqloj`*hf2Rqma`o95$d zp1V5ygVi=F?_UDrpr-043jE3@1@2+uih9~{n@{vbf!>Rm*-4`N-3{I6uRFN-qae1{ z6jhpHHnPU;H!nA(ax7qlCh}WM?xMUEG6_`(qfOHef(J|>NXVW(S0`NxAPx!|B)8ivZ6fN zdd8N~(>ngrSwWK1aeR7DbWX?<{PfH7I2ZY490Xpfv=r|=iyt$mrHfk=ciX0P)b2|rv z5cJLf`aP1ct^nfn^n|EYYJV6n1EF;xFHSi$vp;RQoZ6IArcBEdQZiSgiMjZI1X?>> z8-j)V)6z>!=056kmBn+dP`OI{$`w}OsHb};q;2q{P1-J% z7}e)MTDNc5E#S#22^H(NBFU?o{)YxpGNP0 z!SHPenwL2?;*5OXabz9l#!ANEbxnFc2}2rtU@Qq5skYRqW~_IkXatNl`kz5*-Oq+S~@*hy$nB^wh4dQ0fzk(ht9e|s?j znl&s`H5-|M!GelMw9#BiS)mVBLfZqgB1V_GzZJ{Le zA`RqM$6|9vyUbJ$Dz39(J{RpV*45e>fr5H(ZF>Ew*c6Mt9yp~!JEL| zWVMbBPV`95o_ANZ0lff-|8ZnM8|;2l0+AJ4zvahrq?zSROT!m%u=Bdws&n+xd{(!B zV_SJ)qoMU%^vMe=7GkTn6+9)4-MGybR73-Nf4LdX68F-@K-K2iaOGy*^8My*8fo$A zM&)MkJ8AjFP0n8#`^}e>Ev@T?E>;vOCO16qb`Q&r=-SA%<~@$Y^mLOIw=|>{A~KS` znt%3v_=*Cy5TLl@iHM~ga7tTr%dE&zqtOfx^w8h?@t{F*R~vCSi#h+?j~fX*Yle!~ z);6af+r1>Q&DaAW)!MrY)z4TAd6h4AORGaBD&1oK`7JW|oetcEJs+pW>v4~_M!-yK z3b}qF@yDS+qm)v2M85&GZSr9&$Fle(7#KqsJ*k8n{h5p0{TWtCTDjpvk2Rrc!?^ zl3#n*p#|=^;lT!8np$mGG@vBAeP&^9aYukO<;*F*C`uG8rUk(3o%Ejnw={(dJ#NqH z%?ORjvXJDUI0oJ;eyi_1M&rd-^1I4w;*NV|sGqE7Zf?T*JfQGjDatu{f&Yvb-wb9N zh@Fp=9wZhpKV(uL$BPvfK|UYxPVb47Szp*hoIgxRh>I`$hJwvk?>6+CTDTRz92M_2FgU_e!<_AaVzT$$2BKg~XMNZhBdJ$a?~7-D z5N)3>s{s3>jIYN#*Ts*UT^nm?tN&`Xf_e4Lzu%#k5?)~-N#2g z!p_MJyd0n7g=YDNBW+!L7EcGR+a4)%B&6ZwplFMB0$iD&OupCqT24+eL z%QTetuQ#|}KQjdZeRIF1#btT)$Xx%|3?}=W!Ngr7Sy?jEDM-`5wI}|R=Lho)^>_LF zaSri0ysv2+`Nqfd(ji*bmumYN7D*vq{zA-{b(io{>m;@H+Y9nYw>~=EF@<>e^+p$~ ziI=@|t9Kz^qmtR0j(RY^PrnYTMqknm5n?ynl}YKTq?aN5qETqs{MPd)HCoX-x61cC z1ENW6(j}2(&7W15bK3JCBFklKOnEIE&D$`=e+I1#T#vhdg2)_Ga2|A3%MURt92H(j z+R6~RTWm^T#c?S}C?=__Ytm@o*wv40OX5Dh$VWi2|B}Za^pgu4?Gpr6F*9@Zj%4JG z-ZTlrDyM*9W~QFmKOvS@oA6ME)SS!y8g2!YS*z%MVPW@7Gx|E3aY}5tbCkUwW0fls)g@r3R6&7Z&qgwfexAwncc2+$C3eB~W zVpCNB>@YY|UIiFqR7(ll_?$G(*PWLq^J&^p8hv{nV#pvQeO+WbSMB>rO7B+ionF%v zPG*6PdHkplN$QIgp}W+k1YR74s$KL}QGiQyQ5F56hB7@47`KEpf7cz*nJIq$(V0K( z$3AJUZ~SppY_&j)Zd#t><=u0<1lMW{5dF_S3Ch6e51?jaHd&U!f%YN9+-%ZT%lNYu z;Yysd;ml%g=I}}Vl#xs16vhAOaQ<$B|DjYsdVcrX_697 z9@iLK_Q#QFU~`rJK4UVqVkPKo_GNNd`+BTuBqjniGsRXg=L^q(GHHAO*PP@6Ta_7& z6`@wNe+_MT-Y#QrMwQvgHNJE~m|*6~K5!e#F6r104m5AW;DJ6Y>*OE~ki!XL>GAb_ zz-Jf7Y&%4U92r>5ZnoT1kCbl{x$Os(uhts@G)7`jvJu76&wTRbPNqJB2_%(@C&P1>@8vsBd%juXKpXCf=b)d+6kgr63*0ez+a3?YAX$5n8?la0RxvrHpX`_jiKnv zWGJw(@SmK%z!oM2$l^Tt7id

U3}0r(ax?cl%{qX4gjnlb&AQ)vJBo0+Q)`ZYmL{>zRhGfQuINEJqz5 z-p&JVCh)VH30zxch97U@;-B-I>|^A0OQLY_e6DYHgqya5XTImGxMa*^k>aiFle&%O z?TX_|!55DsF0~U^xs!^w-rW;d5$PEH~K&v$c_0E2V~a%69<-CAk?}okjCTp zr(Wqu4Uv$>@`Ft1Q7uof7dN99SQXikTnacQp1WM&;#J)CEO^Q<#kQ*TU4;&!-)-Y zjwUoP6}1EXA5!(0ok%1}c`8ivk+Nvv6z%JIU$OPSx!N=^3nV!iWBb!|WvQRjsWG`8 zcF2y<3(IB&m(%M0MHD)#`<*o&^Q1xz_VBTJE0VfN1H5o`RTa;OM?m*FTTUJRhrS&bwO=4yrAwTT zquL<_RR(llEd+a?LhQrD8}ZfEFft8=P-ts8UT^8TG#&{*IN^zF)i=v&B~GoH3bGh0 zZNo*O=~Am5hN3uE*RX8;H>3OYt~dU}dm1zS10bFgd{CPGJMSg@j^3M+^CAfXlbZ1! zyOWisAaf0v^*(IEu+Z$i)@Pxi*{0dvoDZGcL%6rd)673nd$H0dtDLkI zw!%~tTvKI5qDdgIP(zAp-7GsI`8vhKKqIMUr1S@wjOL&;&Zl}=SE*6eIGap$`BBwt z*c{WMz`w={iP4$QNc?salA|*~0LP6yx9m2D*_&U8U;W7ul~zn6;XLrsy(YTa@7(f8 z>O|t5`18*J{?)yCx~7XiGeGy62#M1lwK~Ap=SD2Y^q>zLX0zCIw}0VhTCrWGy&)c< z4uGmreBql`l^UF>$N8OOY+;~GY!&F{$ou=&oH*gqqO@IE)E*w;))FwJ^#~V*^x77 zisin{IJgrPX&&5!dK20lP~kMFil6nZ%JM@=h0366oyDH=4=%2U`oxb+`nAb2gQ^|J zshEM-tc)=CINtYgdUWDEx^~|=s>(F6uUyoGckh2r|C=S=@YlI_{jgyaVO(s3EpyhH z(c&Y-=S^Xe0KXMHzGWm<`%x8GrnlQ^L;RV|gAno+3UW-8Pkj2j)9va4qC4@yWpV#> ztyM1<%T*P}HpH$8-gOkJ-=G(Kl4pH-l82$r$~nD(w@N72PCja$GsgxH67s<$aQp2mg?exk8r6PEo~qSq2A|>Vo1uw3i!!VF&5js<~0ku z$ajpuG_3Yd3SoVhG(jBWucdYJC)yumv4o=g#waPfxX4(uAa}3L_G2#}M$6y7eH5{| z;*Wk}sVW95>`F*D=6FM85W#ztynrGp3d`m3;Yg$#?2CM8O_xlfsL=LXe8NT_eSCbX zEsbmp9*x8pmU*@Mc6R_8Gh*V5<8v~BO^}w=VF?Eb-98)VST%5f?d7gHRIP2rV@*xgnoN)`cWyHd&KDD8p%F(lj%|M5&Sx?aF)d<)HM^ zUO1COYkkXP*SZB0>V0f)|KSJYx`!=m2bMh|8z1CEa3O?)3t8ZDnL2aHYMrWOV|kld zg;gxX}2a(j_ zl5|)y5#O$zV(SNGvfAlMv&+T!(Pif=v;`iYhf@f%fX3NmqdJzY3e|7`naqsDRrf4EBH?*pBb#gjsZGe2bh26qLV^VLO6or$? zrEG~=@n`2or+X!fsTmwg)-OtecO5K0ZHsRYM4(HeK&2`_hPg|DzT4={k6v6aIFQhY z`Z+@A_P-j_N~mo9jx+H&{EPgNg{s!p@Jbr7KU=o(FJ1+H);|^ffWY;QbH{fC;z~Z0 zP}$i!R7sN;ZcW+-38f&_ zB`?pvi@A%X2A}ApPqItVjLAfP$PV$|XiSMFO~-tMcfCYvs!a5vwB(fkzSSpxn7lTB z0B2vvmbyi$pL-Q00anYAX4`UqgqLlvA<_tTuZaH8GBwGE>Q21LOPs~tG(ZCMrQC`~ z=mI9&Fvy<6_fxKY0?lTIAyq`?>8=YeaMUmsI44*fA8~QT&T~)b=}B}CwGmlCp*D2g&(gs!G0?f~mM*u7c@ zY1QDJP=lP2g_>u}^YkEaU2Nfc6lWS^nF={zSf0AY2gMA-D4Iq4GJiCyCVsEO`-Vj; zvi;IV`5|$h$Ql&ZXgy@cfdDo;X7SJx-!Wd{ow+72(tw~cJ< z?AjBgZfbe4ux@GBPZRM|xW9!T1Dg;NeqMjYxTjo(;;BS}WTPCsc3e;V!f?W#W*FSz zV()r8cQd$S?cw?ErGtH66vg)D@=!nitM~9N)&$#B-^{iy>La=PUjQ}$aVQ<;s?}SH zazR(mL?n?$m-?@KPg;_A8IM|M94H1NP}SdF5oGM7_e1YVzzC>e{B9@z+q3heR@Qy= z*7}*WyC4@sy4vcwxc+Y+0BI9(I&EtKQ_*13@_#mZgc~y_yeyw`ZgCbxph3O8jlzG$ zxNVJM+w|F@Opi)!GArps?ed@f9lzwwqA3#2sGm)dQ?BMu`j>KAi1{}R1=@Z*qp{_S zvr^rTzb5$NCzH_4%oA##&R;*wnl~a`lq`DBsVve$mgeu{p{>1%jPq!mbH3Aa0xhyS zU8<({o#Lt0n)=s{en3}s$CF)`)qvU3|I!#RW;`Do|LlWQPA=|!_Ce0Cg%q5ynw+cD zUhvob&@Z}hJ%W8UvX`mb@j~@(0@a%>xLNK4H&bfBw{RDDh`P$W+N2OOyQvBT$@Cp7Kf{(px z$wYQx@&vc4H16vOy}rnLbp?=By!EX|?-2of@eaTj3+@(0g8_W;?ipWX1MtOT0IcG4 z_R&NYBl`X;f=FjS2*ViSu>6iuC$_-_Sgy3ua21sL#SYwXRg+o213FI4&&@g3-d~Bw zqy3U|?B(v2bNn#UCyQlVVU+sG(RmCIOMk>lxJqm60PYf=P!(*PQ#u6(H(ow@nkiiF z2h%sPkZ)wUu5krb;HLjb0SG;*96Hzm!#7f?)0qZoP-9b1xzqRSWuYsyBw`=xL zpukgCV_(-mj1qoSOA%-pQ*s|Aw(jzQmT@r7`tU@2pUmOQ(>pMh_xGyF^?G_0H|&GRvc!-MfskQH%4aGjG?hvnsi|9-H6O{E%b)YV&K%dj_g`0kxIfB&>j;o zOfILqPy@=qk~DmZO%0%t&#ZH!;s;!gMMu|E+JAs1DvF+e0ZlJMXFEK>Rt>NI5!?+M zMJWE~AgPUGZTBC+-54^YUnb1lWhnBqTSutg-I~AIvS{4!{3!g2X>?S((qleNn5|#K z@H?!?pAY3&6n3nn?fu92h_YrV`Px%pkEB4<<3KWj@?4)R(&B>^=-fMoGy8Y21V=+# zcRvfO^=3DlzU z*5BHtD*nH+bONSNDQPRI&+5jG z?rH>|zr6u`dP8tzx-*v2TgJQ-FK(8>PnDbWr7i46x!N7+E=u=nix!XhL4*#6n3_9Z zdp5O{PvaG$e}uFuPq5>ZjMMMgi`Un!J;mAo=+vIMH4)AnuxBLq>A4S0JG@5SjiQV^c*C%iT1 z++Hqk^CdJae6{J?8yX={m$@?ai!fB_deuR@oX3$h{AeBw^F*g;^;UsvFeG_$05e&f z@Pm2JZ}Z7)eIujKY&_(uF-4J>mSusD=roF-LM2l(wJFE>J?*x)VV|?~wLaAyR#{f` z?=fr9HutfXA9xD68zCc&oe}uy^=vAIw1L}v&brpv38WWC@q?mtOti%h2@2Zw*t3l0 z2T=CJE0PAvGZe@kJAEVwO>9|%jl_P&@_Bk+g2`j8D*y@!Iz*zu^f@upHU&or<_a*t z@&u87xgzGRfAMbu>8&aiV+z{`)&?Aj{j)N16vgBesEW1TR~6Lpra}fAY7coBP5<4L zLb1>Q#!(Bd|7A2D!@RhL)SJ@PJ=)`wL-dgb4T*=PLS_;u0K)s4fdU|90r`c2?0Tp3 z1}m1s#5X{`6#6S)(r3QS04RAp&m9{b82NYwoa*2}GuG7JhC*+n1Ey+UvQzD3Ar>9G zIfD1)?N=<&nHLbE`H1{3{rx^`qU-P>;sF+T5HDR+^}DcYMuW^k~C! z@E9hM`}8ViX7l^z1!cJCij2PsNE;rpbckAie9CG(W<+p+IuT}SGy?Gj!q}3w@kVf- zTp)!TyBdAF-|a{yip^VyFn6gx!Hv@=ZPKn@L-R9nH44A~(wS^J(AA*zrez*Y5eBO6 zQ%HuUJlV<*rYO-S+)RH5q%U4Hsjj+juDjUiwJ%qw=66M$=df8}%_{NUPM`FdR9L8> z%4ydH-P!+|0;cFWqbqf6gC03n!W*5GMxB6!L`7smYortZh0OkZn=1_n{!|};;D12X z9I-rgvm)WHO)ud-D?M>=A94#AIQEIZ$Hk=;h4|!4xTlhhKjP5rC2H-xuQ{k~khQHX z$$D5b-edO`f!|=OXxO_Z)w$r8~k#Xrvpy=j^Gj3p)DcaigS zdzesRPmg%k3XmD!?6YfNUWfv0P`)Wh6rqAj0fLJ7gKEEBDN5wSvHXz!u{694HZPO? zzOrBAvz&^*|$G|XF zaHO&p`W~9TyRiVf7|Phs5$z@GN#!l$p2p?HKw(Y8B{<606L87=o=Ir{u3 zv`RxVUgC=8CKPLQWE=8i?|CURbYvfH2HiWxv3?c?L47uaz*)aEw8M@F z)N1bhZ-y{^@Juv(ux_uZsq(_*)P@DuoYu;3uG@HPa#k{W^sxLy;pqG0JLSk>xZPiN z%3>VGIiaR;#m%aU_pY!2#>tg#e+r2;VohzYoY?VkXCZEmdj4WyQ5DOEnrc3q#F2X? zP#%ZBj0pcFee@##Oe@jpk{FYNf;#7&K2fqZrFSUFpYqod#Nab1%&9#1chD0!Q|K{b z)i1e<(HB@00I}nW|El8bX-@6hBc#%y=?i5;J0 z_tnk$^ar9^jb=sf3VFW@Cw>>npu2I(8VAC;PL=;d6Dl^hUi0o&68Nb`rDgwRdTjxw zcfy`co|@H_>9lb$Y*Z^`=pQvKXJfaH?HzAX`JVFGEn*}Au;St@f#uw&vnYU{Y;dKs zB(zyn3KM1?p4^p1`DJvbtq z7_LAl>IQ{s?e$e;cPp-?;>W(3=Q$mAx%iq|7l%z|gZwQL%*DU5YWCHRHSW3&3(WcX zud!k|sxGVmt4@*zqwit4W})G%YY@)vY2oG}Id#oAH1hzOl9&eDpx_Tzzmcg9n z8|@0crv`&7P5?Ie?5bGyFvQikTKQ7o(Q2^l@$9H*Z~=}1M@7xEqhcAL2Eu&0ogije z(s92kLq^aSN`&s)r<-TJ11>AoKD~-%^L+L)$29?9q4uXs*b>ju2gD=OM9EOcR5LeV zSH&sAlvLz1M$qbH)Ed_ZSSm^>?*5dMrYFxR0iqduEPxU$Y0!b0{;Sfo6rMOJ@+@^* zn;bmN`Td|0#7ZPc2bTLoU4I2$A;p`P+^JR#seNz=Hj~m*&TlVezz+=ML^9xsDm~%5 zSNzWI_a9M=HKhiuzt2;~W!3uq^Ou%e9$R9i2&u7j5rYPx-M9f4+y-rS55(Hv&A+n` z{71s+q^l;*NGz=RY7DIG00yOsD+8Z9ruP8UNYrxE5@;@H3^_p% zpTEQDygi8q07}5$(s8SJ`AFSAvihUqnewdoW2^9uY5ue3gw}(`;svb-+%KZ61%8=B+3NTgG+b0v2i%W}X#?wfo2T06Vx4B|ROfylq8l@rft}$ld`BD6ry%S(2f6&71KDH=q{aAo^AY<< z2mJ{Sp{1Q}yfp~|&VyyCf9FLpzcb=naUmW z8aKEC@w%7dH`po`o1|dOqYLO~x^gB|U{rXa_JI%Ze7LEwdMaL28O|iMz7gLV_iPX{ zC#AKbFqnA~`avf~hgo2WE_W^79m~4(GWRoj>ia4vf1IiQqZ)aIl(;4$y|tSQ4uKfH zFWbF=p3TOmu9%f_^kbeos4vjn&Cb(-iDZwNxU5b??}7~(Q({16WKUWsl9Fzh$aZyx zaP~|Siep7o2G+CezFya5uru|WB8(g<`%N}51DlF95roFn&H?lvogOMVC_sP5iYAQV z!@DFR18x6TxetJ_^~Uju3gxI;YBG%y5-oLU!Q^47_OXV;tVHz z5Kx0Ap!c>I)E0XhK)}SHB8i5DAwrKc)e+j;S>>VA^vNa853t6XG|{UnjF=U_glY;E z!cjL6yQx?9Jkv%YXCMWDlHUli`3*D%a zsAfB0c}=JUELi4L_SXS(>c~2@tz72-oDUeBQbB+A8qf$W`1l>uzhFuv(M)kDj-vgk z7;Px_%;;Sbz7IwI*II+QQ?((uCE$?>zz`*WKqH?@!Ui@yn9T-Zq}9t?T>fXj!>?*Z ziw>?bB;;0pq2hkxg`yF~lgAUvw~gz?YFIurta8$1ju*y_ipppNHL#2>mRvNr-ndTmHZn5cLj>Dp;V zYtLid|3J!Pb$Dqud+(}&m2>*>0#Kt`DbM0^DtO{EfWIuinc(OLVEnUZ7~cz&J6%4% znR^IqEs*0-U##kV#xQkRMLMHdXKh%s{16z?{Ui=!oBafYcYg5PX689dUZ6Il~Xd4LWu(1@2qD$=2Ey6BHrzgA)}_RLyd<=x#%w1{O(L;ZkRw9+JhPPN^&!6A zft_oqoq@%KyQhKR10?;|V1{h_7`kBcWxtf!2Xr6q;*e|7F&6RojraeI%!L_Rj|_MI zS?LsL@M)sIQCsatdkraP(4W4X0%wr*^=nM4??`TqGaD#uG-hw2uekm*A(voKMFr&H z*w-sBc+AAdkVaE-aA7aY9kK`!yHaxEpT2Q(^9uleAP$X=g6YP82H{xP7BV_HPVpoK zAWTyAAdD1#KrNQq%Puc}?zt6i+ZtcJfA^|WqxXnOBwXpX4U1D~ZzE^|K}ScR!2=OA zx-S{k*A#BLIHO`1xutab^#JQ`e8#XlhQD4xLsM0?1aqOhsD)I@=qg%Q80->=wBV3wS=C{O4+S~jLGN%7g4Saa62DBFo-qHP|4__@#Jti)81RVXd%aa|i#cccM(pVgB zQu`jg8(-SB(l2&4o1^pQDB(}!6^d2_v4G>eAawU zEY|C(51#i`MCl!N+6YS5Eh!0GSp;^@B04f?pd~F}jwf-yHuHCmxB0j*C4U&{Al3~Q zmbiTV$S*OY%pM^b;>eUkTzK6IT3WNcs%kNjQ6cVSZRdfh#NC(u)XJ%jH_FByHxk^F z@~P!`OzU}cM>Ai(9!2$DoZ|73`u<0~=(7TckJrhtOL+Zpa%~p|{ zT+!6mpX~*vNznVTbg3jC7?>I_pUv(g9*VAdE^lB5f@|vtDg!9q688YW>A)MNFZDFxh_*! z&`ICdBn1e)J@TzMt)&mDHLxH{hSsU31N!s!V|>m@wBnqGQ%w)>9V0t!%_mx|?Lq9^ zIXVR5jirzMQ$0l6U*9>*7GnD6`mi)#g)n^!8N1JBAN?Etwy5UHvt0V z7=RCoG}szrZg?b3pCFEF3{%6(dw??}Mnv6QfA#HyrElEW@Ty&=zO^?xss>iM={$>R zA_VTza%lNVrV>jU1g$xTX30GlYu#Z2b;_}54bRbZ7(c2uTk_JQ`d!z#=cyb+-9oH) zP1!p{iFHfA^0|(hRa-O6gFMC(v-B#dGry18mJ=w>m7Bf|t{He_1)-@N@}SaYMZ8Y; zHW()s`VRPlP^(J`fkM;C^QLU1*Uoze7_Zm{o2?2l7c}24AVkRTi@mZ+vX5qN7;VtW zG*3@;&QnquUlEz+cMZ9JnnX%NM%6!H4T&+8T|&X1sUue%l{#I@r<$Q|UyVI@JH%Sf@?@2+uj{QWUxDvSe) z#?98J_AYVi;iw{*&g;dMizbG2KSqYGt&e7lyUA5;=fRMUaSKWEnXDtYlK4>jGh5~? z+v>`2o|DOvhq;Jiq}S<@9mF`ini2N+!GD;;xOW6viqIC4Ymczh2>M|vSr2|Zg1Sn( z6*Mh3T=Jktlbn zWK@e|V&%gn^2ZHq<%kkpf93fvBMO`TaWm^J5jR#rH@W zHQ}}2elN+$4xk$s=i}SIzCk}dm7p-FArU=I))14MS~yGC6G=9EonVh5UT!jV#&d%I~E1Jf4iu9}JuiI9{eDL#+)*Cd`x( zh9G*)E*t0fhR4jLG%d!I;?A#LM+kNco;pQ;3@@{=wnW>DD{sdnJwToxw#8ee50hyZ zloJZ5sVS4H(vEi86#T_K^Er2**>!RAyhS1}qVxBfPgti4$?)umln)ll zBp=onUkX#X3U&-hzZTU*2#y^bs_MC;SQUo--gGXobiD6vc3I%+&cF3W+zsY?j9}Ue zA_(+~u%1!%V z+(ae{UF@&DB1V{Nlo#^QhiK(PA?WigQ0G~{K35Aa7#Ga6>e2jgqv{=)G$+kunYCt} zi&NR`rsi4SJQf->!KE!9cLkAfz!+d3l|@=g+rlNyAaaDLsfp59uiCeCmwyk2swXb8 zldND9-K=qU{dGKB!sgrE=DcNFa*g(D;9C=zLn8-91pTISGT;%Rm=3>g-FnZZE<7cz zp1ABQa@Q-vd^oHwOLx2P@wSs0F!^?pGH;KfE?OoUO10j473i#{?GC^mwI;yl*nfCs zjwl`;@IkF=+qDzujZnn9=h1_Ve4q=&3Yg$+;9KzM{}pa}0|EG%s<)&g5*UX%!FdrDCLPD6>tQgA{0wV5GK zh(2v2;_T(m-wf2TNw30!5|l$EoMt0wJxoI+n$d~*@rex-4|r9VV+N?k8V?eb3q_rQ zd#hwAz$PkKHk78z!|KVoW-w5sB-HN4VNmmSl?BM;ckL3+f- z?MAF*U2@Uou!gI@<%BC$u9bn*l%Yn9{@YMKyvFiM=L8M`dFo9~`x+a3$kTYli0O!b zn|{zZde>RylB8jT+OcHv^ok_!K?klc>-x6(gK-t>N3Qb`;vMK%6jDS&2UVQd)9N$? zHPy_T_xHNJ`@I7rupg|t%cw-5KX$?jR$9aN{D$|Id~pA)5w^?>J^lgd(Fr#&h4&hv z62q^<*j&-dN9zjz>R?Fsy~R?bM%P1>l}Y%WaZ)47{p&ta9fSv-P#R~{+i~qKd*dMegC!|M;lS>U8dpVe%^+#kWyMV_mRDhmUdc!sAeK&0bAz^K zV*zokUKyLwFGsz6t%T_@QMZdZyt*d>j5Y<-&fSb#XBg`vr~p00IoL9%YyIy(mY7j` zM6Dq)zKg)UAjwQ>Dj^^F1-<^s6>cz+VKo~#N;m(%%Lifj30>Npj zrX}7$d~v5`So!Os%hF;;pHi~p))j%->G)f}Zz$A87Pi9!WAt{o$Y)qxla;m>)JB$= zG8W#+EUyhK{~xm6F+7tl?9z_yq+{E*ZJQn2=yYtG9UC2|W81cE+y3tEXXc%m_u)CvhTpBG|8aZ@uL+!zCu3h1k$>c?5H;5W*O!~v>D-_yj62E^` z-+?w&%+0be)KTfqoeEd(DAAFct3jU}|nqacII) zYWTuZ`cA%}Q$BfEn{Sm;Q4&qIxI{!_x+u#>L&H_LSvL$%f&l6Y>-k`JU=YalOgB!7wm4+wFQ z9TrlR3f}1qX4b29+R0Raqz5mBkcm?76x9?Fw>C7W4PPD^B`YT<8#)t0a5F+Co`+01wco*?UiPV4#yNxUe0JKMpzU$j#6^{ys^_%Y z)=O9Y^P}(M4za*?(3S?!@;(WeMcLZxVQlATOZfxXm}f(J7D~Knh*|jT5WgBu#yZ>w z91C8RaL|`Ngu$dZA^- zrb^q&*9#;p#(!Ii??)Zd*^6O7tiiXSJ#>e!*KYY z?J^WGGl7<`4ja$(-kSCREv{+rXC;81v0Vha7JWVImN0R>n)nf-sU0fK1fppZ0r*_0 zJFk62XgjXquoZ@=KtBY|-T@h^UCipIuIjj*X|sLO#`m}kQ_C2{1sS^x|i45lDGI)Ur(|6v_rX#LfgoW;Q? zcu3~<#sGWbj?kK=NUYpArRiVbw3c-5{boxhU~gbC&h+ymrKP+f3d%S}i`IJKEUw$Q ze36~8vuW#*`5ppdg#VJQG{8AQJOCUV5hg~%!MJhq(cYTM160I>pfpXjgKUQi(8A#= zF5mq3CjCtE#KAFqR6N!apra>r)dsQ@YU>o3r!gN*GJ{MZLMW8HOJYELd{3+T_9yd>ij+z#%CH zZI3mt-~06a=3E0 zd%jSohekagCAJ6U1+}jlRAJbRZNCfuXs>8DujI}sZfiY+ z9}vz?nwkgJkvE>~J(mkEpGo+S^=gqyD% zdN1DdX$$}31%81uk#h8^N|51;^+blLZ#wP;IcUw>%YxWk_>xZkl5RS($vC8e5?>4@ z4%TN<$ffMHk<<;gfJoDe2_HKU{RzQ!iH!g2s`gpSq%+J*2?!rGUaDViQw01^Qy($O z^cx!2<&{++O-)=8(TpBP_)A3(S$*G9`$RvS; zQ$5PmR@9+wlo0bhlbx9M+dkfUW;B#Xc|7>mqX`u`_cqjK+5I}4W*TOXa;83sbNG#!>$x$}*@yyewD zul^8cod{)~PU0dp()XD_p3G<}F#=u#oNO&e>fNLLP$9eTM$hJy>NT+;Mr5wmlK zAx6Tez3!~1MCW#B@uUgSW*-nDjvyj6C_RevI6u{Rv+^{_Mw~*7MgsGem7MYXRo-fG zmN5@e`%H`|;X60!(!7x#868TX7zHAG6z${KD0M9#|Bew`w0T^D;hj zAT#&|IU%Aq?ZPl?821hS{iUXtiYSoY>MGE(1_LuM4}Jy5KNgh`UhEx@J=YFHB)(vQC7cDJ zb-eKnJ$u!ZhiG|DDWihB9TJ&$t}Qp|d`fm!1rEpVG(hESX+gYl+q=9Ro?`soYI|XI z>tbQBQ1}VEn*DipP5vxLnb_E>@ux=-5YrCw2KyLhyP&MJ+0~2F98ECa5Bz3XNzx$k z;8h*hcG4lPgLX$qo5+3KY&RR|GdtI*Qu>@TE9}FXj4edC2(>m`)bay%2|Cw?8T1&) z0_^!QJ$Q0%^mfT48uzWAhFdAA;RDs9y8&Mp4w5Eh7P<@mg+))lWi#w&ZW}^fDqi}b z!XjPT%eS)3XTME{9Z4wOl~Goe z()-R&=C9oFT4&Vk%`QhD`|xP18HR$Z@Gj%{_AsV0E$I4r`)FV3+Z$&UKsLqCn|aSN0Zk$*fG{IJ^M_J@AnRWt`ni=+A3OD;WgQiWm;VG*qc2C)`d|U9vVG; zX}{ljp%hF;x2`id{tTuOF|)o@kx!Mq5i_}Iyn~1HmJc#`HbBDrA?0Rt9OxV)SEZUY zwuv4aEa03itdCvho^f;}MK_5wre|5#_zcrdZxiXoMtyx!^O|$yn@&G&R0gquuBoP2 z{v+5Z5i@O?I=^1Wxkk$E!+^%G{!pUH{GMP zRd#gFVh@@Kiu3^wNgiDM@uM@pv_lCV58aQUag-EsGiHl!)f^j0u;HOYboZ=i+mGlZtH+c2D&)%O<8Ymz z8QB6e>A;0oG3ktoxrZ0AQFj!DrBe(;R`H6TMKk2MBtrpUM?=rQrE(lQe^X?}Zci(O z2Mw-%r(_|Hv!jXBVrk-OtNhazm_4V>fMpcg%v%3P=wfZ<9PNW>{sKM1%Zw*v6|=>f zQa==R&gZGQ(Ur$tu33E32jW*5Gv%NT>FG6F%%Nc$f>7@b4MGlcBbso~SP&HAP2pS# zVh1I>ItCeUe_zx|WESdawwoB4!_mN~w{K_NF53gf#} zH&7S`#N?-7yPrI+60x1N_(HWT9CwTh3@S?lCTtzO-%su^e`J0bT9v3z$FFC|N%v;s zb2Y3D)*edRh|D>qkmSqBINEeGQqGZlFaDAAR zhbzqTYu-NJd4Y6^%Skdvh2L{G4EoEBI|_Z~*DV!4^^~2v{3&4h_e5_^ z)@awRdl^S2tgBxb9==|`=OEtXd@Zp0a&zcuDO)qyS8b{%XwRhQ*WWSi4a+&}GC!~f zJ~k-vdUfW^X^GlCx+qMN*l?d8#*k1ZB0A$5D(mwx4O~Op+Kma2M3IL)IPhtGCP60@ z7K3Z?DFHzq0Y@BR+%e0xTFkvWe_mgg266fJkg8KsuHfm)q=Y!$mNmH+@%MAl&+uPJ zw~v;?^Rd$6H3F$lL%#_psy^y>El{L>;F!c$3Uj|fW^4fKKiX*4#!dQ6Oy-Miy@S;l!NJ8UoQA{}K5Xse+A$eYNf_lMH*S{eh>J!I{GhS*UgGc^;|$GrPS=n( z!qabiacOSxT=xhC)oBr#1-DYBn9x+B&7cIBYhlEg@jL~oT_`9wV=nJ!hxBV&2iHpzv% zi&Wk`70Q{3TzZd#aP!$sC$c7pMV1t^)PrMl{_zW?YUf(p+0?E%dsjd}eJp3ozh|fT z00#0Hr(*OQ!u7zE%CZO0pf{}7fdn@~;3K9{ngbuS2#x^@0@@?4SQ9f-LQrtajVeHh z@1);)u3@4n^h?$k3K$xpBLgH!>Y?PuVAwe#JHAN#(`V>f3mlx`-tHfrpS#ab{FIhCwW>hwd$O4*a4Z@lx{E8v6BTAq$5=@@B^{{T|_bC*^g{=-=^W4&o8M z?eMDagtt_=yQ(M_g}k8=u$0eWZFab~Wel5aBqhy~psMYBxOd&jAgZ{())g`n{tQsP zAb!JO*-2c4`Sw>|@Kkt`%I4E%2uDQv9oGom8+;S9JS52;l5-@KoVtbuRea}maI1(K zlj^r|bx}Yl=-BNKhHf{_;&cRvyygm@%^>&1mgiEyL=32uF7+MQUvX?BotnJwXJC;b zC~N$L{CP#`Xa|u2&0bXc_x`J=2HbzfwBr{_yVvr$V>$4Yjt)K(Fqgdv;7QLJf=nbX z1=kp%d|*bObL~zE-utW3TGaeg!qlHXj-%KUO}qIJq>tWwgs}`|G2RHQ&R#-xUFeRG z+9iJ1WnB-?&3$Z;-M4w+cSe_yMV4q2Lz$;-c--qPB|!Y5xd7r@TWoNvhGWpB4Wb*9 zOd75v?gwpz)3xSRYtRlN=Kla zW!Y^<$fs5^f{vdf%#$!95|#lWfsHF<9m>NW6JQ9Z21iolctJaCX`L;SeS{1s?oU7O z6I*AyV@2KkIs4(36U24qkrR6Dqqi6oKSB}f2{tb813{!#*@)I*$zJ8Qe38yGZCR;) zqqg%m+p~1*h*v9rLYKV$drD%d_8Ag7lX!#*wz+G$yEROtpj{HCkDtxQ8H7=D(IC|z zNMM?l$Y{$q&&t>*2-7lMJIbpB&8DNFDm_vO%x%t-Z**k1fX6jZGqED(8VF42XA34$ zp}fqLA7NS*<|LgzVJ2(>bCrK*B`lQkZ_VWaUBNi+1wX(b5U#-c5&kF>(xHU}E1h#` z0&Evs8qEF%I83BxO%Fuq)Ft~B3K$AR=F*hdC~Fm6;u;^Y@A(uG7^=2vU!;l5UU|_# z25{QI5}6;_s`>19pn!IIg2Ywu2?ijc?-25nD#%1YLW3qxcZ><-xD4fB0rMzVR9jR? zK@w5ds>I7#yt;D=OIcGa7x{~wRe?x-HA28z^3X0S(bmq0C z1cGE@QJDq?Pzr0n0rRsJt}ah_2!e5`ii3?>$U)@L;qE9X>#va$^|LN_Yal3vzs!iz zE_u!uqLic)I2*<`AN8h$u}`|SS)#XCyKISsPED{reZ-A>-E1`AM}K)g!cVPC?YLV5)7b}^WIX*jJYm^l8jqn z;U^ak$ZfNvt2NV@AQ;<XkrZzFe1xPmwrcmlc%^@wNpU#7q6)pj(@gk4+M=-WhwCL;J$uJ9jOQRM~r{rWW{ z^QZdx$X)B{JU1QI9eqbJSxSlQhgMDz6(`zBU5)3pYs`#%WbArcIU2pTIV|rS{`j-G zeFSHLoQ;p_#5_bgngj3dIBw&fnY_W+_wvrhsiEqv+qpZxpKBcZGRz9lXmTyI8As+) z0zCSp_W-TDC-a!LcH2}LFk907d#G%rM;8l>kZJD;=0v-CNJ(UkCXUEps;*&Obug)J z3=yuoxmdL}PHoZ4k{m(l*WIC$%7hNvfNSte3Ei@ZPti(xGWd64`eYSG=+9A$=Ug^3 zS)D3vR0&Zh+NS&?ZRbs3BdK^I;;99Q12`ZIMN8RSHZ}3QTfj9K1{Pb0XE&INSv8K3xt|l$eXT{naxd4XAYC$d zN=;#Oh9okHgUR&%%^Z(azjsm|5C8ng5vee;F{pR}>;KEERFKdA<5h;nhCLH-qtOG3 zed~W*C$L4L^ZJpV1^-0leeQkUAnKB9wQoULMbUVf;s_ngPG@d2@w0My6DHS1IY`~e z7Fg$AMzP7plFw(&kgg}zWG1!NXsqRiLP=ysn{kHri&ihS@J=)-gR5t4<(AZlx ziwVpskRkl>vpnUk4OxXEE@=^es)Omr;PZ5%OsBBHX%N{Hixv?(G*mUmtCuZT2mE!Ra|{A%ZywKw=6WVsw;;Yk_h7%Y_|qJZ-4dcZm< zo7Ec?$*`PMOkK@-KU3zi3=$>vSUft$Vsgqm9G78U$Ft3(+?No%-dX0uO2?wHU z`JHP--05O43RUd*){Ef-LOuzgYWnbx^M7<+QTmrUTU53rKvrdzs?drMr4ERiov>p~ zSfItz8n4mXT@~9@;Rg5=F6xwE>4$K|Wmo4g7Yv{Mo?ZUQ2g|AtYCTa%J-=peESrU^ z&tCS0;OT9ARGCA8V>%d(m8WUYI6ME-yRIwAseoBEHD&Wrd2}d3S?>)#W%jc>ExGKp zv(He1%Q`DA)emEO`3Y|z==85>i`jJz5J6^XL&fa@&V!3r;BJxyrbHhijT{gkaU?^I z-_B6w4mI{NRm*iN0eRqe5!V@IR?F2KgpO4qU5c7r22A_9{W}eZ+ThgJwof>26+CZsF_qH73M;-Aqv2;X_ASFE0RvbP$pi+aesQMS|3hfv! zo7HzMYXgn15CM&^_4$WlK={3U2Ra-FV{NAQwbP5iRe=ct=ePsQ==ee$(*^wC>R-3FVD z9fM0hTzBNAdZ=}-ZqD)NaKjE&B+2E0CJ#UF{=iKz!%oT&2KgET8$H=YTzMY#Tp;|< z)E|;gJjQD;V{2UvpOz($GT3TK;rTBRoN_yTd+xq&mXG%rL|->+FTMnqIh!qUU*5bv z9oMf3$Gj8=W_Ny%yDAZWKAS5V@z5kbMx-N=phSA~*J{wTjPXX!PR#Wf?%hoE|DE^`I=^Fx0vzZkV>1Epq+#d-{WnBx7^VAJrQ8K$I;l;5m@)P=*xQ-vO5G?`bzW|E+=_b!%B zEX?%ts+R1z@wyg%9}$Q|zBMg%85gI1-S5P{O56=^w48;$R==zIj+gJ9DAzyjt(jfl zeAbkGfxjMnjuUk1t4n}+>_m|nNruOS_NjbSAcsRWqea!Iy6Bd@-(2S5rvxWxiZjb_ z%9xPP(xyq)TIklEeg>Bs=r#{Z609Hn8Jl8en*7X^M2J)&?sJMh!nRFC!NN!IYEeq5 z=oAcxlesh(*9S?42-ZJjB4d8H6w4LGPZSXsEyg(#4Z#ra1eG^=9&_{yHVk)7ACFi- zE6R#>7q?3f91v*#c$YNG;`FjFaJwUS`^R7Oj4eUW@`leDlEM!NMC)>`mj1E)W0=I10?-BJe z)f-;i8{YO8aOveva7;oEuRmB58oVnUC758xT(%6m3JL=x>EoUhiYlLYB7h45X6K*a z2QGj(qPJQ9LIOp){~!S<^T$ul5?yJ`Zzt?(^u)ZsT-U;{xQ`sd3KB}>zI*J6;7ZqD zKKvsDJCV@$e=n?RRBBDt$ONq9W|F3-D5ErA>C{uwIw+mS%xoCI5oqxpD`=L z4KZ*x9Fqywd9NI^*tzeKk@77tVhG96`m67v9U?^W#;vP?+gP_MnogB>k}{8+RZ;dQ zY!{tsrelI*L^WM2L`gHJEabOPv;pCK59JchOnYlu)q^OsFE;=Kp#1F@F&71=V&n$< z4dXcOv0c%T39WULLREJgbQYMp6QiV=5gM-=mYV+1|ELn3Iy;VblSEl}+2~F^77Zis zJRZInvYb+yg#ek)E~0L-Okxal0K79S;r}23kbz(+$HE^VfX$c*W2Z+^P@R(l3M|s1 zjmkRXJ@y8wdlt}{&xW)weB1pQM7w4KQ2~FQrWXCHpKg$u&CFeH9;1dMAoA~Wgz*WKGEHebXMe&4T~YwRs5V}=jcIJ~sI_AsV0s3x z5Oq7@B$xgf9!ioZ=t8Xg#s@D6$JW%laVDIvxqo2bxy_5dGrFoM@>m-Md2*S(#-)_d z5#=-q#9Hn$`5>5LY~d)pmY13T#O z{zZATx9FZ5AWdNS+ZTNQx*O?)8CJ%I(!JdmfW8R==$mp9UcvquJ$W$Xre$qR`bKtw zTaiED@dUgmL8Fp=Vs*^>kbS$fW+Fa}@WZ`OFG4-DKhcFPx4*#>3uxBp??VPg(8HS( zkB7V)XbJk%hk{;>!4JoF5DKJ*&;8IFMhtl>yF_{E;Y5}SFu=HD+?ckV$Y>Vi0RJ#B zi|V`CEHTaeR80{F|*}~rFcH=rWu>)C~?9{F_68^itgR4M&xJi zm`Q=Y6%r|LVGOlgQ>AI58iqE*Yv8W&KURQ45xz{lN=>GOW{*05>_8JN%)`GWy~8T^ z&wRq`nuz<(djrM?W$x}*LJ*1WKmF+vB!Q%ruz-v|O>j(4A?*9lf#RS+okKF8zbUue ztmatg5hAr+oPx$4+ctLGLD_^0@~g+fv{|429C=(MpL)y3TtQ!ZLE_xmZc4XxjtNl? ziU8Ke7H6pG+|4;s+h7T_q9>L4bS)VzEJjJbrSZtB?c<;qD~%RS|!*0so=qoQJ?ks7-iFma%fUa6(kO_n5lGNEbOv;Ra> zu;ag2_|UHH+=;*f{}X(AT%ss%f-ZpAm@?ZMe)Jnqb&gf3%eFo~fcO$IoMop7l72I` z+#`##)SZ`dDun@NV!I#m96IT~e*Z;;=LSe}phn2D!#7-r_mW<72ae992T8pTQ^4#X z%en18w4^YKY_4I3g5r>*WWG9J-noDG6!zeo3z95l3BB=@w@&)ce)jycpEi0(lz30T zr(1A*6*}0{Nr=_-*KMo>KO(nL*y~v>4Ng$PJqyk~uzf7;5p+V>=c<^U^2jM@l6Gw*rj>X1hC_vM$@+ArfigX&wCVf% zqojo$CCAPgYitqsF}}+NX3Wj_fWIc*CRk$?y9g5Xw9h}Bphn)?cZJ(4 z=f~N&;yk8;6^J%xaDc1m;}4rYIEx2Sh2~O3=7`DZjnBt*%p@LMZFBfpy+q}B-JuXJ zJ`f=hT9Maea~xUHumhI#&ueK=nHFN7zSa1Qc!o_7egataw~WMR;dCyAEzjFJ!vSw`w8{lLHzx`E%`?H2_BEg3XH!hBN z-d=%=UhTdWr@sEJpXQ&}AGO@uNXa##WXkz_JJ+fL)}q9;hozFo4_#i^M3Ig}cSCKV z9=i3h0g|I`>1LMmP>>pA%;>ZP7!|F)9+Lzz(Kd4K0YY%du1u3Lpry!hqa>Tt}gHjT_sLwd2;6YGG+N+YV>3~5hK}pnY zt?xi#FG|w?#>cY+=y5U-MQl63eWkLS@E~=F*H4IE#N^i{-nq0&vIdTag(kNR@SyuT ztiO=7UIk!p_saw*ril%d$i|Gdb*LN|UQl=EeWN?afuh4-65RHe1Vf+xM}oWmkzgV3 z1A{oHG}Z@B;wXDGI271k6#t6Ny!wsCs+Qu?YIHbd`lL*JXkz9u+pV8$uxW(=-oP3# z_s$LhL3PuU`pKhve_qAu{{oEOrEdkD$FEV^N0#lbN-C#PS*~lH z2+9*V_P)fFt+#@23|RulYCFoDO!G7zfIyxXFsAsDZn&ALkpnWhnL5+F+;E_@nAnLz zQGWiiZBaf5MpWZ~x^gy3+VQTa?GFM5Su-=w3}YH&anXd^Xboy=Ua^vIzCCtz|y=1_~0W2O4-JW!`CM{x}n z?C4$6Uwke{r0O+nv}?R=wE0olqnS{c=GgW}Zh!L<3lDdEqaN)TDn0x~F?Uo%Bs|xEE~wNkZ;5YcNcv1HAua2wWg*c7=~Lmm#sv(QDIB zJd>6yLp&DjXCCP_tzR>^oS z<{@rRKlaCO^PxKg>BGyZ2qLHxrz$)G{M+4U;iH$aJ(>C)nP^h}VIzmI8>emgI(fnZ zmd32E_79!29EhPtO6Adg(=^g)ru&_nb^+F}taU? z;NVTG>9hQi+|tj~J~B1a=E##4BG^`y_Q)LmkutR3z0l6gV=xJrt++EqG*$}jucmb0~V!@$sZQ)Lkd<1pr*lV(^mA>NYqUawS5liUA(va+`jsT4D z(fCZLo@*}A*4!03!+HP@5&Nz-PcwS7w`Biv(&9dm+e@28GyN*-kINKs>Is3)se+ z0=-!7uUS#k7&zj+yiuXW`iisuPte27`+anft{2r8fJu^r#GSyR+NGByLBJFKB|QYE z1H7BXQE=-bE3HMXNj!GZ4VmXk(q;`BeB!~zR%-3KB$*LIj4FMQ$&LFxG_Y;^n2aI| zG;56eE22alqS}i-poj~X#b;DFvY2`dSp@`mNzltsrXt(^d^h4hg=J^Z#S5&olsOOR z=-!V2XraK>Z6(y}^VG6vQmrUDsKb`k>1VIL*cJ9?nR7l6ridT7fSUU1>fd;WQtoS8 zoLEWuM~|6jcb{|!8SIaS3s<;?n@4Jd26XHoWh~#)*di`?5s&36kwOQr8xs|XRN+jA zJWj(*d9LW!=g3(D@4Q}3FQN$Pnt^|eq)Y}eKWDRcUPA2S97I)!Eh?Z>Dg*FdydwsB z5MB3wi9Qsb4--!W?MqQ(MjQQdNNrlw93Ew;-T!5BfMzlxSGBG^oS?IXP;=7fqxP0M z6*-0@^lLqV2GL~XVrLjc>oyG6lUT-%F2cpwWTa9dvEv!Z6R~*9`4^Rg<$IEUsn*!uI~>84g&j+qR&0q~Qd%#9`2^ zsA#ot4flq;P_v>B^ll>NwD=`1d(b6%pAYq}Y3+OqV8jK*i-t?L&?Hw=pNWWv-h|+! zM{8GfGG^(xZKk4&VwTkwOS!GXBYp9<=#ZVVlU{%pVoXUsZu{kkA`=dl@z=4Kq!s)P zMpXSzFk;5|UogT<9jEXO0rE#Av`ou-ajU6lfBZ(%OO-vsFQ$msk^Lgcv**=`-*X#J zi<7x+)P1FB(p@p)wT-cCmy~9Pe=Br9lT?vLz;8cG>mPh1m~u50(_cIDn(?-akuwh= z3AUjw!A--wl)1bFi@y*clVzX_dJ$sJJ4VHVhA{JKb1VPj9ZqHcc!#dUy2A+v?(T)DstrwzC>xJfXr_fjrx8XZ@mL_pcG4y?*A_A5T36LpJg`rTVwPIIx0@XL6X1= zI-2^V^eotZqs)dOuC-O?cU~4zhbS!o27G_hMLc7~D2`jF=+0XpFN!gwlC&IvH$)uU zezggo^7HX+Z0QMijs4zTD_Lb$Y^5bisIlGMVVGBxH4|F#h@2oLyn9>&8-rzo9R@(M zYBRZ)Xx5nXNAIl%+U+rj#dOR2;uqVfL$Y2-qt`2k>886yhSc@L7IZg22qHu}o8A4y zmZ2yff!X7PLs$9@vv%>*zY-^e&dB$E@)9) zfPwCdVMlW8`9tU!FAsxCuBD{!YTL-0-XO`gx_C=2Gi6{|wet1kf{}YPouqV!*gRb#@hzh|dQ|wU# zMd1`n40QC5Tv5=3majQc6v=ZQ!bcFei#Nl{NMIoeBFe+*jJ(hvGN9?VI}6}GDTf6h z9}aK1GXSG&a2|NY8%2ZK=U@k-b_8bhEU}yzN9-vK7yC$xvBH|oy zM+RET8xbbSEN6DyTEcx67;-cdRK}7X;9ko=ELF;lO1}2h_dA}+k>V0fRC#cYRfZ%x zduf3+U?6eYHG3+4Va9b45^4`(3+rM-i($zfb#?L;sG7^OX|>Ff=L{6KK8wWZJfX3U zf4XuOaHQ7+Tgn5z1rMa@lk>CM+%Yd)3@uz{^;thQ zBw9)X+nfQHSWMBxOR>oL9}A42BUp>FItlYwQ@)3%{E+mb7h-8&Uh3f}ZA8CJuJVA( zj_mRd{5G4RTsZ&mFW{0Zd4l*~n&QK5_rHp2GoYgSUz&pGvclTyz7S9r)k{QRWd`503iKXeUoC{C@txncW6htQW{dWa;Fp@Y{lQgDyz@jd!yL8md4nh zbEUL+TKRYbv!a@-SM&%eL0I@?DcjrGweQk2lxwX^_RUF;kO(Q|@PDUe!x62sU6TwR zY0e(VMQv<19&?4~RH!tox`u5d>$@I76kd@Hcmu+uL{@25pXTHqL2CG1Lmy1ZA|YnX zUcsRAUBTjbB{vw*(q|t-!f&eHrkr$!?3j{bpm2qNoLJ!iBqkI<-&=+i*~+(nF~*@> z8E%llk(vgXVG*~U7+&VBrE@rj+QC3FvrrtUJ3UVSOEQ{H0g{YRR8MeVOt}p%+>yi? zd>e^(7S)nSaWyE;xRsF5MuO|djqhYqg)t1GwgCHLt|Uy^_x!-83gmeNJlw$P^E?p+ zPBm0k2}wI_8a7_r5vT_M#DF9Wyi6!vH)pgb5v`;*lqOQfhGClWwa!4mbloE?m2gsf z*Yu+{L??X;73ftxn)gy&TqN_KMPaPxR?T8KUfTfp8}Yg(5q7Hj=|wg0PI}>Q&rf+Q zt4io)AOuV(kv9MP|5yUjwQ8g6!ci&4?*8q$czDD`ZF^5g)n7vWRPtWx{n*wOG?}}k zKZW1mCf%B`LKcqy`%e5lBQ{v$Cg)ZwpXtLg{zOxziS8(RlET6kx-)U>05^O1aAcYic=NXFgdhKs?@ zVDCWY`h3v*>EX(IMc7#TS%C==L4UM*vqQuX!;l-TkFU@9qjP?Ezh0M&h?#H2;kQ<3 z)$jkYSog*{(2NS_e~Zi(pIvt)DSxB$=&-Y0u|w4uPDCgl^I1L{$bMYf_frNj88>@H z&Tj>oq^bx(L#w3bGb@Vnq!yI1*;sfJ&v%`lXKR2Ln+lY$yx>1`o%mC!^JE~c2}JSW zy}or7sT~JGnb)LgTP9EIShBzH?h&cmFfQ^InGffmSb(Xs`=i499A%~Mu=tH-E?$mHF3Isr_$PrE=8xZY-nm zqu^hq*|?)B&XP>j!B(re@o$8FE#15vh1abS{lTV#|7n+K)HCM6FlYX_qLxYIY87>H z9;d7LK3g0|0ZNFl^a|)6im~?UDcSK!k1T`%dYD55QGqGm)CCZpe_183jmq7ySPchL z#Z}(e(d&H=T5=XxYZhyUu&gcA56X(w!k&xYb5E{9MnGnt+QIfO!czZL*(T0Ozty+M zmjAE(tjjqrz94J)N4pCuw3f5+2xCX=Ix=cxM)BNgscqH*H3k`>2eIh_bH|KqGr)LX zER2?nRa(p;%3-e7)`wGkoUJJ8dZqfhFx4{RUnTkv*N${uC6x@8;YE2gyR4TLh5Z{_$q4-8*V1yk=X7SRGS=dq7K;NP_>-~kux7UBZJP3T#Vo}HgHhD;+8abT zQ%T{hC69eIA)Dkx8;4Fl%j&?80=r&qPfQX9GnN=0mBLNB)KoJW=WECpZ8T~ryL*Q< z0-vz8#F0#0==fTi$(Rf=gt?CC=+A_i1v1YDJG2taXC9=NhB+U^#3>uqhDrV1(|vF| zLPS^nTFJp0@SD)U-D5oU;OScav8b$xSuf`J4VNazFlGT2GV7u!uYE7(dxS=(&)ms# zB|qO6ruKSQ$0r`kz=8t7XNfOs?0Qz4Ps!J)!oyHIcQ$^8hPT%m9RH?(`a_rC)oIR4 z-_zJ>n4o^y{{ttj;vr=6A{_H>huYAcfhl4BcNku_Pz!{G5J%=$tc?0bSDc(h5D&vb zk1aymD{UgqMJ#kkfX>->R<4#G1G9p58~6xV!<7>I%VdDR6DkvQG;HvhpB55yau{rx z7u3Ehnr;b`GuM&1=<@&$7?-vT4KfjtQ(ApVr8z9-D*jgcAt{;73E3xpb6s&uZ?0ta zAMr_AYc(Pdx+&jptUBhMztj@eOdy15^k{yiG7gG>1D3jW_*iR0C{gmZ8d~2=X*XuE zI*W)=EBPVC%dWuvxKLJT*6=$}?Y{!z#NVW3J|dob)*ZXU#qN^*11us{#L$gmIFQJn z6}<7VD?kAeZYOa*bW_2y%@k8uOz!0-BgdB!3w zQ1nkC{Bv$;cnrZ$I?~M{06w06iuU#5NZVNiC!f37EzC<^yqVe#=r`QPq;@hAa^jmm zn|LZ=ybNxK#{S--k*rMQY58fis3) zNr56k8qJA6-U$LYzHlzDj|f2sHhjPE*nzs#z|!l3LG<02$YeJP{mTuf*-fiIv3o#Y zRmG%QAdF(g{@hJVP?L8#V=vCi+p#&#U}y~Fd%$DWm74L;SOEC>a~N)0e@qJa2DNKD z?L9bRsDv-%@=cJ*4MN_YDMGSBKkZ9{$k5n2Z9A4Azga{+>mBm$UNL7e@|Yj4FCHgv z^W*`k5j#&SMd*xtJm3tjZN|_UtGGSW7|7U`3ZKcaX(cKeIWMhucsyc-!oi&)n5&V$ z>T};>l51nk4h)y!j_9%Fsb_=Bp?&-&%H@yfTRqjy|3vu+Ph0;NT?p~tb7;gLA1;ge z2^2$f7kP9A=t2QBRLvekN<0cOD6eI5{0#b7#347uaF^FC`g~E&`Uy0jU#`f%QwV8||malVpO4ZQIGjnb@{%+qP}nwry+T+|Ku%|2pTM zyKZ`|bf>$j(yP1bt>@j(Z|^chigkIl@cCOXj>exZCa#}bhE6~IMf?TV`7|(N?wU9B z(;65K+AVtog>?@2+fm76&n~-pz>L#Qi!&Sw&Uf55HqF9{cL4wi%L0I4Kx)-@RlOyj z3cQxsnEw}BoV9x=ArXA|>HHZFnQzd78BN33f>{yL$T@ugPL^=w`66XH8S|$=fIgOU z-&=9Cq@U?8!2l8qQAmj*J}v!Tby?9t5b}Kk0)p7u9g=_*UP8=rvd6-URzAWNPO)1c z6abcOB(H0lMtH?TPBQSS4nnT484_$MvDwekN+BzXMcD-^8|=56Oj6C#^$pqux7lTO z7qE<^qYMIZ96k9NXh8mx>kl`u0Bh-3Rw4g|e^_iklu~JW&)W%DXiRI}1^|qi9X(HV z!SO%m?BRDUNk9Sd57D$W9GgHWx#L@ev1&|>ub2HygT!(ef}zFHzDEG3q-E%(^7 zRxcn;lDVy6i_e{Tpt8f=YH^h=r#~SAh7D>L6vPGVm1IRx;y^X|G%VUp4D6&-w5iDj zY2x!U#gPWosb#Qi#djJEvARq=u|WW99jM!|emb>I#qo1fpKP{n)yZ=8D0Y&+ji+pKYlO-&rJziW1hpJQx~ zbXn!?uD#sNQFbCge`E_@DFsDIKIuU<)%U82SMu0W1wL`LC0A=F}_+sz1QLl~JUy3aU;{X}glgss2xRnmN9p z!(SJ|poiq?OT%3ZR&5}Q4Bn@s&%JC}On37BJ!_9_s&@=)OiR$I_&>2}#9AK<<{$&n zjHXmL^ZGyJ7ES1+CRGe7{6;*pA^i4&$ha;Zm!zZ7f0+k&ng@^JM8aJ-tGEa~GE*Fp zd#qS12>FA7M%*DlwY+UScuJUnvLSnieEx+4Q%&|2r1Q9Ma~ZeI(#CdwjdM0UY0Od_ z(ML=ae$^y}v-XsE6h-v^2mn_~R@Jia$tFfftj;+g4o~OcT@rSt>qNFu5or+E`=fMTZuSqfDi*kkeD_owptg*P`}*- zt=LgC2SibWwLUt8233ND001goRoF<%beE~vSbRjt0Fz()5B^F>!!RDJ%~4`5H@m-4mMUBg!2QIb-9{z($MDF2X`l7pzNCh6lS>Wq=MI^x7-cVi@Ek?2* zk`fmosmpKc8yHz%`?+v_tq?Alyy^sra*&RK+H$;ef(q7)vC^s)kWvS{{E7fmBXWC` zlPIy$Av!uNMiNzijF#RgMMz6^8N!ttR!JY3ZzPY7wyVNRW-eB!g#8QLJ=eRBdLZKX zKf@_-$@#Pz!`CR<2zVokPsd`PxR0%5#6)}Z@Z>ukl}!1y;a~=5w9IkQ<7-nqD8Uh_ zDFOO`t|LK9JQNXwL3YiRD;mbhmy-4dP}0HxpT;=v)CR!IqApy^xyxF2kihYXoL`{$??Ng_-rh`lD+IBa0V*#R-5hR(08Gjf*%O>10M6W6e|$kcG< zW6J?t@MmY8IfL6ku&@MZWl#U)-m7csYBJRBy>RYE-NW?*sH4;6?H|Cg`QxMy{~_uy zrp;~%;X(VkC3-Wqqm;oAd=F5^NrV%(@*V=x{1S*x8_)w zV>X!ocC~B&)79=*h>;}uO-J+F;qyM7ClPDqSd|t6NN~AJb`@E|*{92TFdw3Ye4nM=VJ({Wczr7o{G59tvOlc@FS0 z2Ld#T8_b~r3$S1O$nRCdZ+;qNGv!Dw)jy>GjnU(rKPS~-yi8j6JIyOS1O`amUtXsm z1L$HaG*}|BROmL8PAP~Hn5Es5vI#P3G+1<6STxxhAFVFJqLeE<{J~tXCIMOzawF>Eh3UB{X zX5#?L3}!eyHW@rFLhH;(Nwq&^5T*y^WjG$a-<)%lEsM6>IDYaD&f zCiDz*YdG2zq&XCwf_v;`s0Xt47|d9>@~t$E9f;!8Qy}6MTsW${B@x3lGVyAemS_cu zW8U)Eal}%ho&>r@z6wIOg!LMBIg^fhUR$-=B4;uipBo=}b@Ir6{w zhIlo2Fgm)S8CO|Tw#?}XlV=6tT*y8LfErjNCRrSRrVnRrjmP_DwimQDP8wD#z*}NM zMh8RA^fMky4FI^RGf*)=7B_PA*|MqipATxiiXz1X!(KHSrJ{POH+4jl#KsJUYhhCB z7VgZXWueiH6%`1@bBclG$&DjP@7ZHvG8m}|itA#IQ0>5J=84vUN*}N!Qf2s}$AmH6 z5*Zrb54Ix~nL`%TOa&_hI&uI}!r-UHbXab%lquo*?mL?*i2!j*z=e)6Qu5eLD z-#R6hPEn-@+Q$4f59pRZ;(!z$U^1UzRLi!bXbY_$P>Gv2+RH@db%3YKlPfr?0~MiY zldhRO{O}hUVHe{w!9q;Y3B7i0{cQQ9-N;rIn8bnTH^ka#E3$2 zvFYfxB5a6a^@GeIk)VTh7vE0p=JXMBgVE#!>kG** zn9&8}T_A}ZkG_>T-~Ez<`j?=tYB8Bjj56hFF|ozdqKt`^BstsX|IQ!FxN}xNc&-V7 zL{x~y^Kw|Z%pq9v#NF&RB^BqRHwJy{7Kjl~Pu z&aiJep^QT6^;QO_UvY%aO>o*!huxo?oP1m&!D)4p#|BiA8sZpjI4z&4r6Y}`1hSa` z{LZb8${3ly6IIq4Yg2A>n0P?`*3y%6mtaPQz6awrwN!n<}^Q>L1F7c05j?68)AFT5HPeuu0c^s{pl{ZwZxVxO56=6mN zCJnq6FZ&wO!dxPDvT(5}wCIsN82D;#LL4vq)Q?SZ-t-Hrza{w&>XovytqeFh`47oB z9Kbe>=mUe|YE3-U@%4BKdfEh&kG;z(VrP#@LH2HG_OBj(tZQdK;_H~{*^*!WHv0jTIIBqmqpL12n$LDeMx-Q#6qL&k;eo;y{(ut}YAg-47m$k1> z3)Ibe!VJr;=PaX3gY1HWRSY@${=I=GkOuSs#jMvTgX6?{OX?-S9=XUbt3xni_;j>f z{TS04+hvoBmaIhUP7u<6lQ~TNYw!#Pv?OkDeOcGGx+KN1r$pQ3%vFWOMya|i)=Cdk zXBufBjb6u+{*Y#;BW3E8+5ks*sMJNXKvy-4CnV@pe4l*8pz4$4Z6Qe6UaKc)0hB7= zr5y_R>Ot|g#OmnR#i|61>I;(P^qjVKe4&l}ht^2Ypnp7d%QG0vSb73I?||KcY)F~K zNNGJcvED1(T)fKHfM3Y8+Z=4s&lb&RJE_`>anIW=<0_;W4UKj&k})3US++ldV^_3* z?gBzb)6-bTBib-dmG}7)#z7O#bzOj(8T(X5!gF*QBW$8r4kON?+^ttJN^ti$zcpHm zW5E!q=C+(Ty=|C_u^QkY_T&#DIwNx)OwgHLh>2(q8g&;p9ALHDUqR+A;=#WuvFpq; zN64AcLdQv5LH{znkV%7xYf%eVb42sMbubia1B|~KhwOlrX<5e5VORPC|7mHYECYZ8 zu}eq5ng}>}IH&e#a{o3pR0tX#SAPL{Rzl`4e)PK#q~4pyhJ_RR9snwlQMQq%X5zZ7 zVPr7C2?!$rG8L|1G10o5d^%Fj^n#FHq8`Ta9~XR+;cw`<^A;(rM0M!Eq?qJi7CW1wIBYhksN3K7 z4!Sc8aa%hkm;Wo4<}{MJthRaEivtHq6$(qmA+9IRmsAiCQ}Z_naQ*b@sRt{B=cu69 zA}6&0FZ?KN+WkmCN=+N6{m{2V=NTS9Hrv6dgh1*);u!YmBs| zzQI`9aR#?Q$y9hdPySt2tQ~5TqS&wLq+6LegfrPeMIEju^@j_0mYWC!6`bH*Yl}Ms zAn(_cYt0>^A|=Y}u`mRlQHsfQ(X3h{*Kf_m+hMT;J^sJ^x8HOedNhEZ7>;a~O=9iL zGqZ+NlAr;k54Ov0nVtG)W4LJq{6ExELl>XIQ``-#89vf+;i>q~2S4LCiAcr9%C=CxpP*a#FWr{^6)4fafi&C50=eQ={ z6gG_P;NUg&7$u`+%z1wOa!S?J@DZBf1Pw=0d~CO9f`98!3gxN86|iVWd}06?rFNz~ zr$ND%>&RwbU)Cl18LuwF`{-6@2I3;vxB#=pjm%Z4e2_*VHzY(|Uiz&E-{I}%PW*+d z9&_jNY}?E1WPz_t97C*somJ&tG(iIRVN(X2CmQ0W%t?AZ^}mt|?I_4H#>fffPutEhDP=EZSt-2lr6m;FcL1*F$ zRIq6WrLZOU{Y$)C_T5-sK?mpXE)1WQZvc1Dc)GY($^-%Q4=vyr#qffNB;G`cAREP3_$QwDsCU)6veffLlH>Wh^$S)X@`2Yb4tBOY z)$xQ>W1c1N(WD&ZccW8{oszolwaj79xdpJ8h+?HB!JAM5Qm8^6r1BmAPg`NP2;u*e zwqpVQZ`#gwz}`P;I}W@i;AluT{~flYQx#YvYpzlJkN*w*fcSrQ6)dRGa%XI2N?*~j z&TUSXRqMe2vYp@7g+FnmBNxXuwW6~nY=9mh$v&_By;-+jk#c6ej`@*fA0X?93@F|- z!2Tdf+%}$*y_wv3CoZZxG7#1jdN)u$qt)8^QyZE{39;n_dMJXpJ0+r`N}d~NyhV+J1DviB#5ZS|i>B3c;B-mGGXIoK)Ro?WAG!Et*y zm)bXqsNnCm86+Q%mLNX9M><-}d_7XXdp!?W9ju)ct&#DF+&$m{4vN(;kpbIsvYfGG zZwAl>Ri;Tk-Bq-<3-((m+&=tX?V0PF29V8TnJoQ4wajXTsqPs|38{53>2yJ8Ic7Tsze74o}J826Bv@igis>PO*@}hU}4b~iVEbR;80A>O|vSp7%$VZt7BnZ zwF#{5wKOp@a?7wX=I8XpzG6ZhG{(q&&P_i_B2G6H=8%$v(JAqAg?qG8yO6(ysNR-M z3GA`5cmD}_#AN8F44pN%LllTKKzDz&pw~6db7HtbUH!*^;5H$+*BBpgHX^v^9Lk@x zFolWeo)MNsCvHsjm>4uD3s(P&woM5SYYt!4ZAw5-shWb?9FR8j6VBr+?Zw-c!nGNY zG*pDsg{)Yuu8Diai%>Lfg?PL(7&sk`C!J3+Di2!6GQH^J%K8PC15{L$7J$9$pFAM? zCkN$$FBYR}&olR;&)z{sD!`~NZJQY5-D&xX>>u9zD-4DpL)}z;$_b??jO`yG=Rb1z zwUf)L*ni340G|R0Q950|YI*&G=8`<$t{}MW(uW#D$S{D_Aa-i_Z?{6ge{5iYfTQ@e z`k0OSaYpyKw^g-Abx-!Q6+4fY+pluDbm!m15_NGwUm;w|2#=*E5@N>DMwfCn4RN`V zIWpRgn*x+VTE!QDCw{YAPQ&#p$%r~YZYAAr2T}#V>*cZH?$l?VLViBisC|4xSonSz z6g+l9uq!{Il!Z!EdDOLxEU3}{Qi^ghG<25d7MTD*IRovGx8sq6cL>vC`NON;5t{0% z;dbKd*QwKEcll=l6;cdFBE+t}94l!ONhoM1WRJb|C>x>ayh1P*-1mk_YtZ1;WSm$3 z;+YHnd1LS5h|wCAV5|*l!3gkRHSc0Ja%t~k3OnzGwr_HCBmca_{q<6+FgzO5h}p>| zfoaU&?+xU<^Yw8U1g6U0nd<-ZMSnveG$ks*koa^g7Ec)z${>lzZlLk|!8_mm4EV=0 zgp3p5l44Z$LJc2A{-g%As$-lUyyz_yJtCNJLGxXp8m#xI2 z>3f4QMX(ycN)r8`oiGS+=?z-}Xn&ww$6z$y;(_pd%s~z~#z)O9U@Pe6S!Hm!Fkrz8 zk7L-z_?PPMg4Cg+iE=F?U#T$wosD;18Ah&dMa{Z~>DAoTBw1>TsU@;$q7XfN*f>Q0 zC2fJM6d^U2gRCKB8)W@AkyHh4->P8xU+?fl+k?x45YU+T8^(#*;36WQjq5>Q17y@6 zSTwzdW;VGm(XJtH#Rwh*mTsI*fq+MM`n?eQ5L7KmDM1fC%y64-`yw9QZc0ueZ^IaW z6ph46YTaTjzZ@PK+3LQY^AHR}Mxt{J0386(op-fN)r&3Kd;@;mbJ#u{@hqA*l=-{Q zxk~YrSD6FqJZ@8ubuFT~#6ayO78_0ky!usy>LSU(uB8V->s)ab%f(YCCv8A~*bIZb z39y71RR5$t|L+_y?_QoKh-PGz9R3+V_!l9n!EH94Yi zEj(Ux;Ly)vlJW}z0p&)99dU%NK}`Z)KBvnInH8DYs7G75M}^=(K86Y?u{?v$+F-NLU`m~Vv2;!}db-og)SpRe{mx|EYS zK$k*=KQ;&(%uYv6p$i;h85T0bo{mos0!P481;NQH_3+bET*$W$XC2iYoICR>ijf1+ z<>O^IejY>vXgO3dDWY{GDZ=z{$zVYfI_43};iFTfI1Z?#w)TO6g;k)LcAk);dG0Mbn#fuIFRzqVaZs`iup+?WW)=fbEnX<#1YBmwfzB(0F(0zjMVu zFxS<;L;#%@F@cwe`y8#bK<)A--CH5rvufjw97z~LVW>V=#lsYt?LwP@{gZ~#%#8Cl5t&lx1@`mKZ{ZDuW>Gu8D9t_sDL}?T3)Dc&a%OU<>uSM-nuU9~@rq`4FhnC6~ z{^^{{%L=GKI^1S6uB4l_yDROdU-PS%RI_)rOeH2-_ zsA_Xpy|nPicdYcfYuC6=ZsH%vMqe2`qFB0IyfGsc@Td5tU0qi&qKI<&*Rv5 zTT)5fds15z7j4*LB)^kuSua^P498#IK_%x}~ z`1z}Thc76ZZ0Nu}60Qe<+5q!2auT%t{m-%6*G#NY+=fGVp~(o>rC$~dWb$?cKtcCxTY z#xUfq7}u2i~~W2(Qx5%==?q82KD(P zJ?}By0u{eu==k1WtM(;9hubh9NsrlDrDY^}qJqm{P4HgW4ePFNC}F$qF<$KaAUQ!V zKt;KdYhq)b=fcF?5?{r4YE?l{>yowF>r7aW+2@gbsW=B_c1(|UZ+m~+xVC%q{%Wnv zZ13o_b0o99!cUK%g}=^5#$Kqg*{se_U-i97KuSn?)L%2*fUVsq%29D-*Sv=bx8N%f zng*%I2gzLIE4w)@(l$aJc})(r2bzgnSm)GxkUHdQSeQs>(Uf_m{HDZkLf1e57Zv!n zp8B+oLLNcp!w};78YOK3oDsine2i`_bPAkPXZ7fjXqCbK{J9y)eFo2YJhxy77R8JN zMptPSBx4E!leU~opiyfYZ;nn+A_}v)d)8rtoo>~xffV6p)@W)P?1ypGNiucko;Qp+ zNtV^aszQxl(CXa!so!IA?}8vy$XC-K z_e(s>1LFcSmOjU1k2e=lPwX$RKc-Clfiqe|W&N(sLY45kJl{W_*gJVS z-`*LuP)8i1wLimGmEz%IakenJAf|?)$a}PHU8>G*>Ab?UFQ96$vB&@|dsBG~Vdp7qdPw zq;AHrA-0DRt?#=emE zAn~v#VBsr7aj27q)uOxs8-9Ji+$JC;kI#@+USk===av&TAbj`QYhHQrU}!J6f1S5v zZw#q3%Rjqme%$O>b81p`y=WULCX6(0Hdg#AH_*~I^`^*aJDY1^X`b%E*4St(6>Q*?j z%yoUC^!4!CHk-#|IO~YLBWrZ-y=lj9|2BH2a-yc~aV?UIm2VGea~8BDc63c4W({<+ z)5XMHG344QxnkF1943JSwp0apQ@c`|ZdJW-%y1HrYL6pd2B2bXMdnkLn$o zfazA_VNX%J`J`%aXz%8^Z|CXVCiFYfZ%3f2Avgj1GbBF#d=^1htI}ey--|YELKgcc zn#hwLS)X^W?{jUF-0z-mAF>|gT9@A)96DLbC)QL@Hrca7>#OU5vb114pA0O~g?6uG z)dyCcP=RTLhi#4EfmjrOUlDFM4RqSWV#w%e=Jy4zNiYjqWfGy>6aC89io&;@0C`F$r> zEFa^|LrZ6MXE|^p=Y|_O40m#S2$GiEecQ&68-Ef_-~#LbopXNPrkLjqpLVId$jDZO zN4vK6Y^d#M>$B<8BMc3xT@P;VWx|qhK|Gb3nCkO7>+_-&$|afRs^EEF2JKR|-wF3n zp+g7lGMZE6-ICyeLq=!Sed=vxM$t$%ppVSf_zb&id!gfwLFPyL$=h+;^I*1*DF- z39pWaJME*$kFZv}H36d7*Fb#=+5|5=HHt288RAX`j_l4jpT?qq7FZbZ&V!<(*V~VF z`YZe^@I~z+d;{7=MWLU8dI@M9P|fS*23D|>{EcT7kvkfSW1GUxJJhavK{I7Rd$Sm4 z`p0P7#qN7p8h}!vd7ufOKSLx)-`}@iI`QV}ShAb8FXydB4_~`X_KuMC4=nfavM@&J z8CxoFgFPVSlN|*sriFAPltoK(){PIq3#niRK(Wo&_$L=S;I#5`L%mQLZeS1Xr=pPsGpM>S z{>$}j;s|G*K`ql7J?GscMzA?_0j~5=)#u&EnQzGC^)EM{GQXe|K%SrD2;?7B{6oi# z&w7K3{O1CDor? z>}F}^lTH|XtY#h}ihFZ6?VM)Bf}DRQ>l%A_D<8@$0?-com}{7xx3vJkO8npLFBw~t9XCf6+9&M zL!jy=pH&q=#j2xR>0lK={S$auoyouo0-R1yeJrt0X?3%)tXr>I6A#4Np@0}Ivx^ga zyGT@uR6v8ah5{S7or_Pgey{@tt;`$`&o8GT{}$toxj*p=A`0jUlL;8w%M1@>`PBQT zVTx0{S~Yk#ZV#HTkO-DXj}v3Mot+zC6}W*kUEvJUZJ9rK6E^c1gDqj04$7~afMHPd zJjZWdJB+1!`vTCf7tt8&JB%LpoRZ}PCTb=AQ=qL?+mhsFN_dhEovxx zCjg!bkeeRj(ue7s)Hk~W>x>I|HT$$-W>;<#>75XnDnIcZcEZvbn3-)|uX9 z9qJu*WT8nMjl_`I6v0`>Wp$SN;s)D~&2DwJs`taU8sqpy`$*2Sm2BSpdL0ZVXOTF- z(U8X}3{4%M_UklwCOz64AiHEo?*=0OORDYeTz?Xgxj+4fomK-MbW(1J)lpx;_zB=V zIOE;z7K&6PfVo6m zcmzBBIOqF^9iGkv^+yw*x!s|EmMs19x}|^1hJQ@(*3daI#|GKc-J14@w5AF&Nf5E49WthfB1~+ zis++V{p7*i;n4<58F(#fo|dg|1cty0T}1n4B@@_z(l^w}qmP!+FkcJZiT7Fl38)hv z#(pAZf4ZYxY0JZ|RY+W`*26m`hYjZvN7Qa}`1W)k;u=`OVpl|d*C(;NR<(abvHCRt z*b5N~f7=l`6xmox+88xld5jzK?>kM(BQ*TD3xPAFUfm-l!lxm(%cD!vbPFAqxVQ;H zH>O_I>)&<{ql0lrTSA-_hGDNP?Kbj39-SAe`Td=5&*7Rp_?m{|FL2y!jFH96>mtyh zPz(5P#x!U}Pr$oE3qofS*}iF@;5tCe5;BYS08wrLU#YB?*se=v`H_pvf9EsRJ8lly z7|#8;Q$Q_{RCdMm&khLk@Ko+V&GpcS4BP!`EP|&V$xI^OM$q7#)fsaCJr@iDaA^0gL=lic$_nAY9U}qiwb)* zx&v#0STF$@bKx<%gObt_Xr(OI9wNFUR7!U5c~xCi5~}uR-3|%!-DW6O?NEi=Sdl+F z+5u=o&6b-)kVKE_J(>W4*V!h$)3*LUFaivTu`wF3wQW@QNN7~Q&mvfQc`~?5z-FomOPsf?M-mN0e*0u>Js(VM4IXw&*{-tln0i)7h$>*u+qolw_a7D zYasJ=IYP42Vo-@&RR=~y_J;4(CB`#|`Mnald}$W5Je<;Xpq%}C-9hF~Sm=FwjAb5I zddw`T6?6!1bD4&1tFPj}@aqQ7damGM)b_b=zcU)yf6dm^ad@z+vzHKihtja|jk|q! z{plZCsqoDLaVfY5Q-7WcJ^M#;mPIhB#N0EXsR=Pd1!fMU{-gv{XJs!|c)EOL!%bKO zfKL*M3>eLRmz8^S)I_&V>kprtp+L34{SFSkMapMahnbn?)$?S0Tf&=1US4e9^(;dh_9^7l%$u371lPT1mZnL z+1T_q3svY0mXWhv3^U%6s78{2N$d%q)-o*FLxNI4#1e^OQ(o$2ZdeR+^yb)kFs?)2 z3t)>+Ty`sV;L~(EUs#)?Windvd?ri~2kl@9mrpx%yOWNjT)MDkvc!NMmp}}}B(*F8)&k?^p}<} z)}!3wyx5-ontrbmdxKP^fh9C{Ye1?J+lMr8kNjRAsk)ovI8Icna|{~?R%fjr zP;?h_6M+g@wxE~iTL&V(O9NCsHw2r$;wYu46K4se4?Y)>g>j+4i$G%^$`t6WNzyHU5LNC+xE$2p_ zwH4K`jC>^VtX!QA_8cx1wvX0ydKTSN&d+k-Iti6Pw( zU_#rFhqSYfKj4zjvkh#gNz@k_B`w&j^Q&%xb$G3)6|l>`D_4~~?&{8)_0rLF2v6$? z#)3<>N1=nK8qUIex@0M({K`Yzqc+QBSLgatGQP>Ow-0F zi@K3z>o#jAmJN33269;4r3^*s8V+WNmyKZo6t|eK50qwkvK!%;H zQ|rT3!c9p%(WIjxgmM|H{my6*uXA3KN8jOHvp)T6x6J~DCtXNc?H1b-0ejIk=gI~V zKW$qTrRz}T7J9fW@w4hFD+~A~EqbUW!S|+GmcFE`uyRDD>I3$N)L4EZ^}`+W zPV`$3EhpsNIKk_06b*LHF2IvDH>}?bmX{eox;^%or=JONrQ1Yl1&}P6!XNf^uGDgQ>&uOnfbO`|MoP zeqVGUaK6xRi8W!n1`~DWoD{izYzfp}lw~Jh*uD**<2T||eT-!JT9xg~S9r10JH#In zTx0l$ottG%BA8UOZZBT<28HdH8a=%Yx>XRA}WpvR&?@ks(gr`Fk_|8pB7Jtsz$G}hwoUYOa;R~2s z(u!2(sp;7a7eNqBd6D_#YP8_vXi#*urwm~_EYsCWuK)YCu6z=-;mw@h9=hWVR&l6G z<(UHE6!o+Iwodc8<+}Wh$_u6Hjj9Y*n3|`9a8w5W)&O19J?4$mg{DkHWmb>&=C9n< z>Xy@Z>wH|dg&Ql-)mB0t!uiV+ZD#O`PRC0Y*|s&JNF`>)$md`%cg3Rkc^Tmp+36$` zz=k@LI9wDPYznvA+}e~oDZ?+*xnC{~b)JSd`3E=Xu4YOIn`Nr#ZsjRCTe0i(;2;P! zpF~k4`|_|l(IRU;d;ZVmGBJgIHC`h^etv#JOm`~-!y3QM9N9o(6L zrzfo0lH*_*q7X+*8?M;Zc9(52E7|DpiRI5BTzLj56Tt3D9E#l%rbVf;wr&2(G*i|G zUis(m_9a|C`urOa%Kf?xyDFqRD=!eD4#6+5Q?^d@@z+#NWv@<;$^Iilv5jPZG34aR zxo4P>>-I!hk%gl|Vyq8kATXfNvwdjef`<>2K@C>&O<)XJz!`Qq1b`U+01*Km1uf|$ zdaMCsdGZp&2uQ#T>joEq0ka1ttTNHW+jhb{-8t$hw~nX1drGLRhG@pl(fF*gif%t2 z{`9kO2)Pb@23C@h|SqN?f#*oxf)MAls0qs2e-;`L_W?be&Z8i)(#8S;1AgK z$Q8Db?z&(fZXK!EMpC%3-Ww7+sdUSl+m=FgR@YM-( zUaaGqsZJ$P(i`ib}t{%CI$@ zMI)92M6`2rTWG#Zv749}f~jzuV`^s!VA^+xf80b~36|x+1w_u?5M+2F%+AzlMVOCj z(8JHl9tz?rl!)-s0ug4w(rb!Sn)|BLPNX0GY8Z#96lnL5hR5xk%;t9y+@R~y!`e=}vk`$3QEV|W?EF^{BkSl5#;0rR;bTkx~pY5v?OHY{DJR7)5&)AV=h}q&?%QOt5MwKjhIUEA;VLCinR2()Qkb-a%k20J zL;zJ9C0oyFPEmH`YFj{W-7$URH_~AAmooBwgA%?;4u|AX@9!BF zCU_u1>;C+~4~rgNls1GumDQ$f$<}NEx)f`A43x3GfEuo1MdUu3jv*DdoSjU*YrhLZ z%@mp*2h*LlOF}q#%BXx+rcD$+^RoSQb|u>MyBu=1VY}*HusCyvn~shU_Q~j1bKkW? zj9>hiWb5~cqm=pGNj7+sVNVYRW;17p$4m{!N;k&p>6xncrDFyt$4bmV$V{#gLBU#f z;l~3e-yklO-9HUp8+4~b!0MS{m_&~f6#Tw7z_CjC;8~62XbXix^W7}*=dYrbKH%r@ zej8tBnlG39@bK=YBCwXNw6n>A?%>+#rbA0&W9gwIdE*kS-R1{% z6lmr|Io%z*`9n^~nA=4~C;6dCbo~6=Gmf)>9QGx`*tob-5+uHC zsVh8F_=941!C)-$qg{?yNW*3s4Bk=nxrly;Hu-}~kE_>wF;X47OxnR=*otg5MiCS( z?q8El{~`{v-aTcv{8eWV*NI;Lv`tgx031Jgw`FsxGA_5W%VRvS!<5|1Uqdyg(p#tS z2gB-^aKalowp$k1fH*-WV27Z|@zCF*{s`o{F#_<6h%jRDtvc5m%nYZn$jHNB0jz5C>Il`b+uE1`sr-ed^{ z-B9Y){ung60mG&D6>K*5l9{G;8CD8Ky>VK;n2b_NL_D6=a&H$To8Q1NWmX{>_u_wALHxh5Zbns6u zXYSAYCW4}t&P49XD|+&09I@!nT0klVowVgBy%(cZDT$Kqni;jHz6@|FQS&UC8Kqyo}6P+wigjUYY@Q5Lpp4w+!@h8B0fn_GX*B&e!C*33P zNP(D008M37tSrQ3Lgpln)7Yp;?sZtCuZUbJjD(u1O5KfoNnwwGA&GLM{(0Ys{|v_{ zX?^C7&=m-U%uT1!r}#&>ON@%3s$_n|dPEOKFQW&;!MZOw=Ae+u7 zAQX!SZ!I)+d6M8RM2v0wmL+i|qLHVMQ8r6b@K3&lsx&3veqE9nWzmj{1K>?WYLVfv z_ivR~pzz4)e;Ay&ZTtu_M(C3kejq-CK1%^hF#;^^4?mLsa$gn9b`A#O$4jff_(k z03KgTLC(^lEJaZpy(U@|@ZK&KX`H+a^*jMg?4E;SH!>hlm$VHTzA5?);nItX4NCR4 z@vVvXaBMHQLIwd)VoNLRl!Epw_rk_CA~b4Rqf4gu*u1pLfw{WsW_aRL|zI7&`WVQJ% z+?cU%k#0l3<qb z=(mz9Veg%KMc_{jE%04@@$C7 zqgpjL5ts5~82gS8cPM~xV37jml=z07&;RZhksboup8gvZlMs0C@>Hh52fgyO8yV3avm(TX4vSm^ip z^{xLJf*U6j>?q7JNunBVp9xE{>2#=LoB}-WTR;InlI?kA-c? z$}iMpNTk}Jb=S`MRLd)5)NX?Z@_1^QG;mpeaA(hon5(B%xwSJn?A+Y+hR9G$>9!oW zQHm0iXS^sTmbJ%JXxdL1EQzn=eHl5!@AQ0fi9c4kxkSKqkiY%!9|b*Q1APZ`16wI8eFJkE tYg;SR|Gk0#xpAcbYyDxsX8+d)oGnabCBVSH76S&{d;s@Q2!O@D{U7UHWETJc diff --git a/livesupport/products/scheduler/etc/Makefile.in b/livesupport/products/scheduler/etc/Makefile.in index e48a4d1b4..1091ff71d 100644 --- a/livesupport/products/scheduler/etc/Makefile.in +++ b/livesupport/products/scheduler/etc/Makefile.in @@ -21,7 +21,7 @@ # # # Author : $Author: fgerlits $ -# Version : $Revision: 1.9 $ +# Version : $Revision: 1.10 $ # Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/etc/Makefile.in,v $ # # @configure_input@ @@ -118,7 +118,8 @@ SCHEDULER_OBJS = ${TMP_DIR}/SignalDispatcher.o \ ${TMP_DIR}/RescheduleMethod.o \ ${TMP_DIR}/ScheduleFactory.o \ ${TMP_DIR}/PostgresqlSchedule.o \ - ${TMP_DIR}/DeletePlaylistMethod.o + ${TMP_DIR}/DeletePlaylistMethod.o \ + ${TMP_DIR}/DisplayPlaylistsMethod.o SCHEDULER_EXE_OBJS = ${SCHEDULER_OBJS} \ ${TMP_DIR}/main.o @@ -140,6 +141,7 @@ TEST_RUNNER_OBJS = ${SCHEDULER_OBJS} \ ${TMP_DIR}/RescheduleMethodTest.o \ ${TMP_DIR}/PostgresqlScheduleTest.o \ ${TMP_DIR}/DeletePlaylistMethodTest.o \ + ${TMP_DIR}/DisplayPlaylistsMethodTest.o \ ${TMP_DIR}/TestRunner.o TEST_RUNNER_LIBS = ${SCHEDULER_EXE_LIBS} -lcppunit -ldl diff --git a/livesupport/products/scheduler/src/DisplayPlaylistsMethod.cxx b/livesupport/products/scheduler/src/DisplayPlaylistsMethod.cxx new file mode 100644 index 000000000..52d570353 --- /dev/null +++ b/livesupport/products/scheduler/src/DisplayPlaylistsMethod.cxx @@ -0,0 +1,125 @@ +/*------------------------------------------------------------------------------ + + Copyright (c) 2004 Media Development Loan Fund + + This file is part of the LiveSupport project. + http://livesupport.campware.org/ + To report bugs, send an e-mail to bugs@campware.org + + LiveSupport is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + LiveSupport is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LiveSupport; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + + Author : $Author: fgerlits $ + Version : $Revision: 1.1 $ + Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/DisplayPlaylistsMethod.cxx,v $ + +------------------------------------------------------------------------------*/ + +/* ============================================================ include files */ + +#ifdef HAVE_CONFIG_H +#include "configure.h" +#endif + + +#include + +#include "LiveSupport/Core/StorageClientInterface.h" +#include "LiveSupport/Storage/StorageClientFactory.h" +#include "DisplayPlaylistsMethod.h" + +using namespace boost; +using namespace boost::posix_time; + +using namespace LiveSupport; +using namespace LiveSupport::Core; +using namespace LiveSupport::Storage; + +using namespace LiveSupport::Scheduler; + +/* =================================================== local data structures */ + + +/* ================================================ local constants & macros */ + +/*------------------------------------------------------------------------------ + * The name of this XML-RPC method. + *----------------------------------------------------------------------------*/ +const std::string DisplayPlaylistsMethod::methodName = "displayPlaylists"; + + +/* =============================================== local function prototypes */ + + +/* ============================================================= module code */ + +/*------------------------------------------------------------------------------ + * Construct the method and register it right away. + *----------------------------------------------------------------------------*/ +DisplayPlaylistsMethod :: DisplayPlaylistsMethod ( + Ptr::Ref xmlRpcServer) throw() + : XmlRpc::XmlRpcServerMethod(methodName, xmlRpcServer.get()) +{ +} + + +/*------------------------------------------------------------------------------ + * Convert a vector of Playlists into an XML-RPC value. + * This function returns an XML-RPC array of XML-RPC structures. + *----------------------------------------------------------------------------*/ +void +DisplayPlaylistsMethod :: playlistVectorToXmlRpcValue( + const Ptr::Ref> >::Ref playlistVector, + XmlRpc::XmlRpcValue & returnValue) + throw () +{ + returnValue.setSize(playlistVector->size()); + // a call to setSize() makes sure it's an XML-RPC + // array + + std::vector::Ref>::const_iterator it = + playlistVector->begin(); + int arraySize = 0; + while (it != playlistVector->end()) { + Ptr::Ref playlist = *it; + XmlRpc::XmlRpcValue returnStruct; + returnStruct["id"] = (int) (playlist->getId()->getId()); + returnStruct["playlength"] = playlist->getPlaylength()->total_seconds(); + returnValue[arraySize++] = returnStruct; + ++it; + } +} + + +/*------------------------------------------------------------------------------ + * Execute the stop XML-RPC function call. + *----------------------------------------------------------------------------*/ +void +DisplayPlaylistsMethod :: execute(XmlRpc::XmlRpcValue & parameters, + XmlRpc::XmlRpcValue & returnValue) + throw () +{ + Ptr::Ref scf; + Ptr::Ref storage; + + scf = StorageClientFactory::getInstance(); + storage = scf->getStorageClient(); + + Ptr::Ref> >::Ref playlistVector = + storage->getAllPlaylists(); + + playlistVectorToXmlRpcValue(playlistVector, returnValue); +} + diff --git a/livesupport/products/scheduler/src/DisplayPlaylistsMethod.h b/livesupport/products/scheduler/src/DisplayPlaylistsMethod.h new file mode 100644 index 000000000..e38b8f468 --- /dev/null +++ b/livesupport/products/scheduler/src/DisplayPlaylistsMethod.h @@ -0,0 +1,151 @@ +/*------------------------------------------------------------------------------ + + Copyright (c) 2004 Media Development Loan Fund + + This file is part of the LiveSupport project. + http://livesupport.campware.org/ + To report bugs, send an e-mail to bugs@campware.org + + LiveSupport is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + LiveSupport is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LiveSupport; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + + Author : $Author: fgerlits $ + Version : $Revision: 1.1 $ + Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/DisplayPlaylistsMethod.h,v $ + +------------------------------------------------------------------------------*/ +#ifndef DisplayPlaylistsMethod_h +#define DisplayPlaylistsMethod_h + +#ifndef __cplusplus +#error This is a C++ include file +#endif + + +/* ============================================================ include files */ + +#ifdef HAVE_CONFIG_H +#include "configure.h" +#endif + +#include +#include +#include +#include +#include + +#include "LiveSupport/Core/Ptr.h" +#include "LiveSupport/Core/Playlist.h" + + +namespace LiveSupport { +namespace Scheduler { + +using namespace boost::posix_time; + +using namespace LiveSupport; +using namespace LiveSupport::Core; + +/* ================================================================ constants */ + + +/* =================================================================== macros */ + + +/* =============================================================== data types */ + +/** + * An XML-RPC method object to return a listing of the playlists contained + * in the playlist store. + * + * The name of the method when called through XML-RPC is "displayPlaylists". + * No input parameters are expected. + * + * The XML-RPC function returns an XML-RPC array, containing a structure + * for each playlist in the playlist store. An array of size 0 means the + * playlist store is empty. Each structure is as follows: + *

    + *
  • id - int - the unique id of the playlist
  • + *
  • playlength - int - the playlist length of the playlist, in seconds + *
  • + *
+ * In case of an error, a simple false value is returned. + * + * @author $Author: fgerlits $ + * @version $Revision: 1.1 $ + */ +class DisplayPlaylistsMethod : public XmlRpc::XmlRpcServerMethod +{ + private: + /** + * The name of this method, as it will be registered into the + * XML-RPC server. + */ + static const std::string methodName; + + /** + * Convert a vector of Playlists to an XML-RPC return value. + * + * @param playlistVector a list of Playlists. + * @param returnValue the output parameter holding an XML-RPC + * representation of the list of Playlists. + */ + void + playlistVectorToXmlRpcValue( + const Ptr::Ref> >::Ref playlistVector, + XmlRpc::XmlRpcValue & returnValue) + throw (); + + public: + /** + * A default constructor, for testing purposes. + */ + DisplayPlaylistsMethod(void) throw () + : XmlRpc::XmlRpcServerMethod(methodName) + { + } + + /** + * Constuctor that registers the method with the server right away. + * + * @param xmlRpcServer the XML-RPC server to register with. + */ + DisplayPlaylistsMethod( + Ptr::Ref xmlRpcServer) + throw (); + + /** + * Execute the displayPlaylists command on the Scheduler daemon. + * + * @param parameters XML-RPC function call parameters + * @param returnValue the return value of the call (out parameter) + */ + void + execute( XmlRpc::XmlRpcValue & parameters, + XmlRpc::XmlRpcValue & returnValue) throw (); +}; + + +/* ================================================= external data structures */ + + +/* ====================================================== function prototypes */ + + +} // namespace Scheduler +} // namespace LiveSupport + +#endif // DisplayPlaylistsMethod_h + diff --git a/livesupport/products/scheduler/src/DisplayPlaylistsMethodTest.cxx b/livesupport/products/scheduler/src/DisplayPlaylistsMethodTest.cxx new file mode 100644 index 000000000..15e5baa4f --- /dev/null +++ b/livesupport/products/scheduler/src/DisplayPlaylistsMethodTest.cxx @@ -0,0 +1,153 @@ +/*------------------------------------------------------------------------------ + + Copyright (c) 2004 Media Development Loan Fund + + This file is part of the LiveSupport project. + http://livesupport.campware.org/ + To report bugs, send an e-mail to bugs@campware.org + + LiveSupport is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + LiveSupport is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LiveSupport; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + + Author : $Author: fgerlits $ + Version : $Revision: 1.1 $ + Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/DisplayPlaylistsMethodTest.cxx,v $ + +------------------------------------------------------------------------------*/ + +/* ============================================================ include files */ + +#ifdef HAVE_CONFIG_H +#include "configure.h" +#endif + +#if HAVE_UNISTD_H +#include +#else +#error "Need unistd.h" +#endif + + +#include +#include +#include +#include + +#include "LiveSupport/Db/ConnectionManagerFactory.h" +#include "LiveSupport/Storage/StorageClientFactory.h" +#include "DisplayPlaylistsMethod.h" +#include "DisplayPlaylistsMethodTest.h" + + +using namespace LiveSupport::Db; +using namespace LiveSupport::Storage; +using namespace LiveSupport::Scheduler; + +/* =================================================== local data structures */ + + +/* ================================================ local constants & macros */ + +CPPUNIT_TEST_SUITE_REGISTRATION(DisplayPlaylistsMethodTest); + +/** + * The name of the configuration file for the storage client factory. + */ +const std::string DisplayPlaylistsMethodTest::storageClientConfig = + "etc/storageClient.xml"; + +/** + * The name of the configuration file for the connection manager factory. + */ +const std::string DisplayPlaylistsMethodTest::connectionManagerConfig = + "etc/connectionManagerFactory.xml"; + + +/* =============================================== local function prototypes */ + + +/* ============================================================= module code */ + +/*------------------------------------------------------------------------------ + * Configure a Configurable with an XML file. + *----------------------------------------------------------------------------*/ +void +DisplayPlaylistsMethodTest :: configure( + Ptr::Ref configurable, + const std::string fileName) + throw (std::invalid_argument, + xmlpp::exception) +{ + Ptr::Ref parser(new xmlpp::DomParser(fileName, true)); + const xmlpp::Document * document = parser->get_document(); + const xmlpp::Element * root = document->get_root_node(); + + configurable->configure(*root); +} + + +/*------------------------------------------------------------------------------ + * Set up the test environment + *----------------------------------------------------------------------------*/ +void +DisplayPlaylistsMethodTest :: setUp(void) throw () +{ + try { + Ptr::Ref scf + = StorageClientFactory::getInstance(); + configure(scf, storageClientConfig); + + Ptr::Ref cmf + = ConnectionManagerFactory::getInstance(); + configure(cmf, connectionManagerConfig); + + } catch (std::invalid_argument &e) { + CPPUNIT_FAIL("semantic error in configuration file"); + } catch (xmlpp::exception &e) { + CPPUNIT_FAIL("error parsing configuration file"); + } catch (std::exception &e) { + CPPUNIT_FAIL(e.what()); + } +} + + +/*------------------------------------------------------------------------------ + * Clean up the test environment + *----------------------------------------------------------------------------*/ +void +DisplayPlaylistsMethodTest :: tearDown(void) throw () +{ +} + + +/*------------------------------------------------------------------------------ + * Just a very simple smoke test + *----------------------------------------------------------------------------*/ +void +DisplayPlaylistsMethodTest :: firstTest(void) + throw (CPPUNIT_NS::Exception) +{ + Ptr::Ref method(new DisplayPlaylistsMethod()); + XmlRpc::XmlRpcValue parameters; + XmlRpc::XmlRpcValue result; + XmlRpc::XmlRpcValue playlist; + + method->execute(parameters, result); + CPPUNIT_ASSERT(result.size() == 1); + + playlist = result[0]; + CPPUNIT_ASSERT(((int) playlist["id"]) == 1); + CPPUNIT_ASSERT(((int) playlist["playlength"]) == (60 * 60)); +} diff --git a/livesupport/products/scheduler/src/DisplayPlaylistsMethodTest.h b/livesupport/products/scheduler/src/DisplayPlaylistsMethodTest.h new file mode 100644 index 000000000..947733ffd --- /dev/null +++ b/livesupport/products/scheduler/src/DisplayPlaylistsMethodTest.h @@ -0,0 +1,136 @@ +/*------------------------------------------------------------------------------ + + Copyright (c) 2004 Media Development Loan Fund + + This file is part of the LiveSupport project. + http://livesupport.campware.org/ + To report bugs, send an e-mail to bugs@campware.org + + LiveSupport is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + LiveSupport is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LiveSupport; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + + Author : $Author: fgerlits $ + Version : $Revision: 1.1 $ + Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/scheduler/src/DisplayPlaylistsMethodTest.h,v $ + +------------------------------------------------------------------------------*/ +#ifndef DisplayPlaylistsMethodTest_h +#define DisplayPlaylistsMethodTest_h + +#ifndef __cplusplus +#error This is a C++ include file +#endif + + +/* ============================================================ include files */ + +#ifdef HAVE_CONFIG_H +#include "configure.h" +#endif + +#include + + +namespace LiveSupport { +namespace Scheduler { + +using namespace LiveSupport; +using namespace LiveSupport::Core; + +/* ================================================================ constants */ + + +/* =================================================================== macros */ + + +/* =============================================================== data types */ + +/** + * Unit test for the DisplayPlaylistsMethod class. + * + * @author $Author: fgerlits $ + * @version $Revision: 1.1 $ + * @see DisplayPlaylistsMethod + */ +class DisplayPlaylistsMethodTest : public CPPUNIT_NS::TestFixture +{ + CPPUNIT_TEST_SUITE(DisplayPlaylistsMethodTest); + CPPUNIT_TEST(firstTest); + CPPUNIT_TEST_SUITE_END(); + + /** + * The name of the configuration file for the storage client factory. + */ + static const std::string storageClientConfig; + + /** + * The name of the configuration file for the connection manager + * factory. + */ + static const std::string connectionManagerConfig; + + /** + * Configure a configurable with an XML file. + * + * @param configurable configure this + * @param fileName the name of the XML file to configure with. + * @exception std::invalid_argument on configuration errors. + * @exception xmlpp::exception on XML parsing errors. + */ + void + configure(Ptr::Ref configurable, + std::string fileName) + throw (std::invalid_argument, + xmlpp::exception); + + + protected: + + /** + * A simple test. + * + * @exception CPPUNIT_NS::Exception on test failures. + */ + void + firstTest(void) throw (CPPUNIT_NS::Exception); + + + public: + + /** + * Set up the environment for the test case. + */ + void + setUp(void) throw (); + + /** + * Clean up the environment after the test case. + */ + void + tearDown(void) throw (); +}; + + +/* ================================================= external data structures */ + + +/* ====================================================== function prototypes */ + + +} // namespace Scheduler +} // namespace LiveSupport + +#endif // DisplayPlaylistsMethodTest_h +