From dcc5f53396935ceba67c4dd537ce5cb706f30c62 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Fri, 19 Apr 2019 12:41:25 -0400 Subject: [PATCH] Add toolbar section --- docs/latest/advanced/extensions.md | 27 ++++++++---------- docs/latest/assets/img/extensions-toolbar.gif | Bin 0 -> 37690 bytes 2 files changed, 12 insertions(+), 15 deletions(-) create mode 100644 docs/latest/assets/img/extensions-toolbar.gif diff --git a/docs/latest/advanced/extensions.md b/docs/latest/advanced/extensions.md index 672914671..ee65d9152 100644 --- a/docs/latest/advanced/extensions.md +++ b/docs/latest/advanced/extensions.md @@ -36,7 +36,7 @@ class myCustomExtension { ### Modules -Modules, or [PLUGIN_TYPES](https://github.com/OHIF/ohif-core/blob/43c08a29eff3fb646a0e83a03a236ddd84f4a6e8/src/plugins.js#L1-L6), help us determine where, when, and how a plugin should be used. For example, +There are a few different kinds of modules. Each kind of module allows us to extend the viewer in a different way, and provides a consistent API for us to do so. You can find a full list of the [different types of modules `in ohif-core`](https://github.com/OHIF/ohif-core/blob/43c08a29eff3fb646a0e83a03a236ddd84f4a6e8/src/plugins.js#L1-L6). Information on each type of module, it's API, and how we determine when/where it should be used is included below: #### Viewport @@ -58,14 +58,21 @@ Viewport components are managed by the `LayoutManager`. Which Viewport component - Registered SopClassHandlers - The SopClassUID for visible/selected datasets -![Lesion Tracker Screenshot](../assets/img/extensions-viewport.png) +![Cornerstone Viewport](../assets/img/extensions-viewport.png)
An example of three Viewports
For a complete example implementation, [check out the OHIFCornerstoneViewport](https://github.com/OHIF/Viewers/blob/react/extensions/ohif-cornerstone-extension/src/OHIFCornerstoneViewport.js). #### Toolbar -... +An extension can register a Toolbar Module by providing a `getToolbarModule()` method that returns a React Component. The component does not receive any props. If you want to modify or react to state, you will need to connect to the redux store. + +![Toolbar Extension](../assets/img/extensions-toolbar.gif) +
A toolbar extension example
+ +Toolbar components are rendered in the `ToolbarRow` component. + +For a complete example implementation, [check out the OHIFCornerstoneViewport's Toolbar Module](https://github.com/OHIF/Viewers/blob/react/extensions/ohif-cornerstone-extension/src/ToolbarModule.js). #### SopClassHandler @@ -73,11 +80,11 @@ For a complete example implementation, [check out the OHIFCornerstoneViewport](h #### Panel -... +> The panel module is not yet in use. ### Registering Extensions -Extensions are registered for the application at startup. The `ExtensionManager`, exposed by `ohif-core`, registers a list of extensions with our application's store. Each module provided by the extension becomes available via `state.plugins.availablePlugins`, and consists of three parts: id, type (PLUGIN_TYPE), and the return value of the module method. +Extensions are registered for the application at startup. The `ExtensionManager`, exposed by `ohif-core`, registers a list of extensions with our application's store. Each module provided by the extension becomes available via `state.plugins.availablePlugins`, and consists of three parts: id, type ([PLUGIN_TYPE](https://github.com/OHIF/ohif-core/blob/43c08a29eff3fb646a0e83a03a236ddd84f4a6e8/src/plugins.js#L1-L6)), and the return value of the module method. In a future version, we will likely expose a way to provide the extensions you would like included at startup. @@ -102,13 +109,3 @@ ExtensionManager.registerExtensions(store, extensions); A small number of powerful extensions for popular use cases are maintained by OHIF. They're co-located in the [`OHIF/Viewers`](https://github.com/OHIF/Viewers/tree/react/) repository, in the top level [`extensions/`](https://github.com/OHIF/Viewers/tree/react/extensions) directory. {% include "./_maintained-extensions-table.md" %} - - -https://github.com/OHIF/ohif-core/blob/43c08a29eff3fb646a0e83a03a236ddd84f4a6e8/src/redux/reducers/plugins.js#L7-L30 - -- Connected Layout Manager - - AvailablePlugins that match Viewport type - -ToolbarRow - - AvailablePlugins that match Toolbar type - diff --git a/docs/latest/assets/img/extensions-toolbar.gif b/docs/latest/assets/img/extensions-toolbar.gif new file mode 100644 index 0000000000000000000000000000000000000000..88c313f3d936ed0216ac43e531f9c988af261a69 GIT binary patch literal 37690 zcmeFZWl$Vk*Dct%yK7^?2^yS+#@!NJf`>o|7Tn#v(GZ-V!QI_G5D2b8f=h6iCQqLC z%R61jB&SVO+n%V)DRhr^5jNaBv8S z%wRWB>peMGOT685N5VRlf)|cm|D84xN@6olOhfvkL>C6vL_p!?z4Ga~w+? z6^Gy%E;$_@kP%Nv2QO)wKo3BW|BaB8mcC}jGlpvfrFfmm7I}}Jf(+1F&@aq50tS1#%BQYz5?@SsF>)evMXt5 zNol|awCsYks=;)eKF;++ldRZitAX2zsr)81xuRPO6gll z1E{3+b)`*GWW-ry)a7OM%w!=$@~8j>GY5sJMnw!5MGFU|iY*ljca^wqReluJkE3cY z057vfUs-v)vhmdZ5T)bbtLGf3|3*^ZDa1gF-cX0{wF<&(uSjFJDC2?wllS&!x&Sl3 zc(d9u^Tv@k2DnyXX;u-rR{3Mr^<(dF0Po%_ytibtO=@y1=y9rVa`yCbPAhe;A9hJ8 zadi~+a8mWkuJQT!*{5*G7aiNzQ`I-XB%r7zX!JfL$~m-VKD41ZToE=R**79TJEF2D zvSB#7xIE^|$C!r7*!;-Yx{la}jJU|RaTy_TS;287Y4MF?37vb1C>V*&;~!i5)3XZG z$FA}%i9UZnD=MihZf`GfqOTpUs}GcD?El&vt=8P!(cV4K8Li%z>)D@XIsgwpG?Xzk zG(6H3GqS!l-V;6fb!IA-c$$Oj+qZA?OtkaE9V-C98aCFC-JR`b+Z{!PpINy-f9xEc zogasW-d<^_&9^2AU7l*YF5P04xCOQ*Jz^Nyz_6 zlK+z=|9?&rWN6(-CYPI^`}W7Z$2$nFlorj<{Zt<33-Am+AO9H`9gkD-zXCzq?r z8%$t)S*$-;l|P)!VLFs9SN(bPBfsO`;$U^bc&1nYDusMa;bg9C0<*zTP0`l^)m-^c z^0mb?CEC?iOG7hnVr9xdD4`|o;Y5^Kek~5VTASi|XSdPST2oiH)CB%8xP+#q72E6! zr-yNxRKC{kkH?~UvzEBl-$^KRXOvTAK1|8cqVJbm{bpQ@Umy9cfA=h;HgbXn}V2q!smqfMLsQ$nLbqmaLrX zul?#e4AjSospgjV5~7;#v&Y)_xmBo6WQC+7BZmO0vf1(o!^w}2jj{3a^bQanz_Wc3 z2?YOX@JlIqKUcm5+BK3uUy6`B<3Jo0;m)-X<*Q#o@<{S{N>mdd&H&k8{Z2Cf6dC`?&o5T?W(MRE8Pn$g4& zwPbyFIubFt7s7Q&8?xe*NEmS#pip%V`&L}!^tqPPP{TR+Gh`-vrEWT~vN{R?Uf&nR z7orj$N|lUc-e?{w|~Jr}`mlm`en?$pz_{6Vbm zgZYSGC`R0XElW*_99Wpepz~IYabLi3H`m~FCq0T%Zgt&$bedD&LpmHDhGripH^6fm zr+Vq5U4Bk#kvA$lgRAThk`l3MSTS*`CIZ(TNcek_4tzuR^_|b;#>2E;wBC8FseLaJ zkPzv_)bk3d!N(++*#=q1Z!ikZnR#P`{ZRGugze>CtGrU5i{Bp81rs;l|9YRJ@f=mG zpw7sSJuj7VBfNbWF+D^KwsewS4!N{JhKlxA3(W+xO*-A{+FnvifXumtEM{}xusLjs z{Fx#lphf>(>X^pRWc$bu9AEqza^ZNuw0Z#*oe=3Ide<{AJD%4nRC>l)p}(Z1rk?_O*-}`)=Uvc;{eQ)-8x`a7GBz1vzGiT(3hozHZi zjsj46(0>tsE8VQ{^>&OoRgjOUCpUr`n4EY7+v3Fz7i^6t<5zT{2ds`HC(<8R0~ip? z$dg!Rb!~WnbI6Zax0xC~(II!d#J%c50>H$M2)B|*MycZh_EnGYf0ZEDH6`J~T&)qb zt@`u#s3982ZiqgB5g6ogeOYR3KrJ1= z(1$vsLa+47lx$nJKd#3f0eA&K{H5Iwx~ZgbS?uElsfO^mQUTuF<n@jGpm9(p_!ROX(iCk=}PM47Oubtu7yQL z!^5^8%TV$k`|%wI-t3IXu;(MIBLxKk&1;ZjO@p25Vk5Z~74!%>eR=Qfo3I`SU`x77`|)-fnGZIDfpT~kM&pdyKN)k8Rpr8O~I6C3aiVheOc zpAjbn@VHU~YPpn_kNx1bZ@Y1^IYQ~-r?I&w#L0<=L*7Pr`uR-2pzMnw_E7HedC!0m zro@6dnc=a<=U`ahcTQ9|n;?JS_$hFIoQsA}KpUknhLC=vna4bghojxggewpSyVFhH zh&zB(=C{D}UIIt!UPjb;Z8h*JiHaaLutIzdmGgwAw-sCbEkoyGWblg`{J|+Uy3UBV zCnouNV$#&ks^Nwod~rvx5r8{l=o}5Uy|8{AZ?;V%C>6dwqHl78BX@Ok&l2~Ml&|1m zr;HFD58Wgq+2CP+#LlfSW?==dipy)<)G;vzbSHF(&+)TF@p|Cp$mI7*(k4y9x0uM} zrX+Efc_8wUZ35;iWFldF{m43U`+_TiMi1BeDl2>(IK6*Y*5h=%l_oF-0`)8rAft#}^Io8=~ogXaFam_FDy)U@9p zPoY#c=^gmx+Xh%TZRNfs1(-)CELbA}Uf! zBUo2>m^VE#HU2Ohu1e3TP+E;he|4KMs)>RJ{9k6X_H?MLfdTmy=&x6$6kUTN*8H^_ zg7oKt46lNWh=Wb|gUz&qEnI^wQ-ZA;g5S*rzrPB$BMxzx3l^}1Wu1U!>wrzHv~rva zVfBNd_YLvq5B0Z%mE8#mWyA%Fg+|JTCOtwzV+U}2=RzTjp{qDyDWN!&b|Hy#VXPe? zsl?$}elY2CVHvKWd@#tx4dJD8;bm9h6~qyx4M@Jn+#W_q&J#$EMo5km5p7oy9mJ7c z{Erkz-ep6U0&OSxAewRZ7fFL(JV=%)?a-fFu@HAQoOH7SSyh zIW-owF&5ny7VS9pxoY@=cG&X@z~vm^C?$@xG44nf&to$nCj}pf0*E4p2Tz32e-AAr zj%P&y_{oNXInb(&;31aqTyF7!kCw1L{xFbASk~hNF%pQl07Oy;BJBo|O@+ueLKMG4 zl&>MGB#G(*i4r>T)l?YVgQ2`(iTrY*il;EINRmthlFW3HEZmYTNfKYUCF(GR>U~d& zL=GQ-Bz@3Hc6Lj4O-)w$9%d_-z&4SbSeOtGljN?G66}@|nwp~UHrxv(#gB<3uP`NE zAQhsMYEcwrD}XiwNKWKWNxDwWB1y|(f-G1jn02LoY9w~%Pb>YNR+gHa@0O^&oBWv{ z7ts#=$FZ~6T0;5vk8RfN|3%l~7SdVWMR|2@YUE z#|o}8V;KcMX}mQ_hbzK4`flslkKp{&)M1vsf zC1t9j$+#z{s1}NSuXv?X2`;K6x<$Dl&AUW}s2rCNvOsPHAwPA=4^S&KzK4S4gkPcL zVczC)E1;S@GF6L)Rq!e#{R~H?*G>s3kqg#40+h+36Nx>bp%R!toz zWLOC`949;$SE->?zYMDuY_5LoQEjwPgKbUTcZ?z$kt8-$DaVp%ZCz=5n_x2xQDA}i zQRSsuRZ*3cEy<%!JC?G>*1l}6-Nvovy{!#ds1dSmVD)V<_aJY>t}-LZBNeJwm1_(N zZmW)BR*Iq2f|+VXui<-j=~YM@4sRg(KkM>*8!Ag0($Si$ZX2fk(A@Nr z#C0o^tiPlzG=qS$}%gGY0h4O0jn!l0NNQ5`< zQ&+Y;E;RQ6JL<>#oXpL`$S_8>gf=iGk!rR4}>u$*MmK7+9 zR1wz{8aIX^a~>V@&5*tbM8ELQ4nG?i7n(|kDQ&SK=V*yD9*w*U?PM+O#!S`ZckR7u zXw5>6ogX_oZtJ@AI;3^#X~_x$Z#s6!I$4Kd^(#L2uT>JVb}FTIcHAc1qxC%8b_$X8 z2rE#;eN0Ll?viipu^;Y{)T!UH`rNeFCi=EXT&I>+7(%q)6tqwqQPM8P)F&z2r`iHx z@~C_3k!0W8Xfj+UbK9}~vxb$U*Ic(3o4i(d1hz2=86mwqTgrn zc-H{3PPS+52fnM3j_B$|>m(n_&i&Y*-`rowf>FW(G1!L$E<%XWdc=#6O>~A>eTRh6 z+VJ(NShI%Iidu$PhEYogl_H0=SO@e~J0(emMDBXe1xMLD}xjG@t* zK{9^DjQ-LLzTM1m`pk#j88eJ;i>%+?%6&7m`Ih+>rO&Q5EbN!Q(i{snRf|E*x%#B z<}8Zl^hW2Dm@wQ}CfzA2YbR!32|-f^^+vy`JZc)1Ej8xpUTuD(m z!-_%4f{|D8xps9p)2>iCJSoEW`@`1s^vB=7~!OAbMm8(xHH(!=5!cgr-VWU>j=&hD2 zyehvREQra?i(a?1vSOs#<$0+t8|!>MR>dOpUL(#}BW+tF&seKnTBD*|rva_g8LrcN zuM=WoneVQMMl_WutRhlwAUq_XDsQCEBNug`x5c82crA-Iu855-pHgf}8g5E^ZyqZp zrBbbmrJ}5mL2xl3g{qTWW3VsAR=tc++$`r`9c+YNFHRV=^kvQJmv*PF4ky{5vtums z99GK}kG~%+(tn>cs+43z`9o%qvQ=rduVZ5sV-8}lwP>>_`f-sVa02h~a4W=Z+chKQ z#n^QC`xLUQIkJhJ`0E{aoozFLT{DB-q_UKhjO4VoUBiRj%){bbc#rM)WyG&OAnKKSp0U#(X@+2A<%Gp5VVeA@n&R z&O9M)KOtW^p?o}{0-n-{p3=QOrS~~y%sgdoKV@Axeg1gL0X*Xp6+Pp5ea7o^#-Dj6 z*nTFwat3-l69b-$i=IoqK9}}6m(4tvZ$DRDIahu>R|Q_Ei(b5XeWB@dp`Cf5kAwY> zrjGcespkW50OSB#s6+G!03zcfcfy7TfN+`5!JAYV1aP#{(^+{?O;IkMaWVxyr^gT8 zP@i0Y%QPki4y}i3u*xK!lt>knA{H;_kINQk7c0=&Crd9tDcd2S&Y+S>l)CRZ;a4b? z%jog234np0icl4mSF(DsJr%>OS651X<|iLzBJ-<5HOWMZ^tpc4fGihEB*0uKooc;1 zNQ{VthR=`b{d8VFR(uH4T;@k9B0> zB5lA=EG+myv3O#C%0U)aBLLtOVI(Di`xpS?K*U;x#AIopQqd_6*{arzapWBD=U0nN zb1s6z-iK*=gg)mt-na@zItJl>Jn85=N2f>Btp(@Fj9@c}Qu>`3<@b_CXMcck0K$l6 z`2pbJ|Hqbqz^njZpdSD-JOKE=`^9h2|6hIMxApPA`o{kk|5On)*oXjR|At#(URI|c zG9LYT=R`YX0{p3T>8vs;+bMCMgDEMzQje;?r>v~oUpL`Jm(D&>nypY)M_IaV> zes^g^o*W))Omlur2i)>Z!9Z&{Uc(R_O1TajwKLAb(}|@PFDv-97GhnAC;m`B8tU&S zhiTdXV_Sc+WUKn>TvdAIWN8*;XL*m^9m3EXgZB|fY!d;C+bkb1fbUS30$D)|)Uj$T zC4D}PhxosVso(cq1ONhf0UUn-BuCDo@`VEUF^*lL0x|h?X>UKs&6IuRpbIU&bpu3d;R z0iYL*#_N8CYI!0_&(X1A2ZPE)6X@J@&n?j@bqU1bOZ?>Y2+ZShlp^eGUeV(iPN!t` zl&UuoqE(s4!v$iHYMGjOalpc@B7u+`v9ZNVzZXOUb0O$r{!wk(+`@I#$FP7gn7o^r z7PW2VZ&>=}fl*WR2SLwme_|S~2OuqBDn;U5!nk%5++B@wjM??J`>>?2f50?o65nG1 zd3JOx3I4KK08Qt)ZBUC@EX`%oj@RcXe_G#}5pB;l1bVFQK2FY-Q$C&%j?Zwu_BpwK zIqrBP%z)_^bHXcOKP|$r7C8CV!k_dqbEHlZYZod(9NhH*VaKC25D+ z8raeq6G3t6xNb`1Nre`L_sta6hNaXFBWB#jk=B~6Lt>NcY9=l#VwN0b0V;>Tq~Rpv zs_(+6%7Yu{pPk0Za{(v0nTq{oUXB9z06GBfevh^l|PWk!PJzl!%450#t)n~ORX;G`b6)AieRN$IEf^QMw#EpSu~Q* z^yxG(%^~{9yfMt5kN2A`H|qA@npd|{t705wmWqfETBx_%s4`kmFEeOzI_T^Ds8z1l z=5+*%dFNcQ)*Xt+VmQ)Jx$#e-{hq^Ub;gyMOK&N;6_T}VPAQT$za5;l{^{c-W~Qjy zt>n0n%Wh4VOUdrZ#%1|syI1PUWU+-_R@UO#`qtT!$I6~{FM>&1GP~jF*2tF?H0RQ* zJ+H?rosgLR1-@g~rHD64{d%6KORXoPxyj4U7M^WO2{EGW54%SryY*ytM^~5MpAT{p zExTS%aF2_06EMhHtX_P}aKaqhK(p_S@?8i({lPsiv}o@-kDTc#J1%my@2C>|nZ$LT zfhi-wIQVRTUFQSp;3?*dZTLnsY?kAOiDxnU{Ni!aywhD0Ffjj9!SP|V0r=1l0Qmvh z1U-+LkRt++b+LGLX!#Lp0xofRndXr87jYZv*u54nr`@4i`EjjDq{8^+vpaU+h^>tl z`W*zaEaG{4sFO&tU)!P5GL8XMZgKr8qvWhc=JuZG?Y0tdhmzlbLn-Qwa@pF#pq^D2eg30&_>z6Q#c@{lJ@niesyQedA`L{W>j7R^ zX{cM5UcwVg)bV4w0Z$&Qww-FT z&y&a6pa!fY!IubUWef-QCopnGn{rk?lk#FRb%1QC(+tPJ1mM7rn$?YV7t3;i?0c7+Q;p>D_u+%a4WvYDf50V|i)v2<0ygx5? zW&^9+tVBme{3=;$cDtxryIBgaU>MaOd8tRUudX9Q7i?i$aePOI7|WmMse2aENIk_gO~zHjk=)sOP#OrHch z(mL%JtFm5%Orqaya!XLq^G;(c5^MaRmLxFwAmMX2eb%GAbuf?{@pzX)7cXgOx*7M_ zbE!f>jM15=yeo`iuFJ1kYovG=n!BaRQsX<5%<#p?RKnEaSv06>#Ft)%w2mpxjM<+0 zWq?ugdvGj^R0@K}k(iE36pUr_MUD-{f);;QaxxfmXlguhm~X#R!#}9O2M&*! zT>BWND+n8*%$4@JNss+HrcU5M%t~Yw;bWK?3|IDm4+5D#{ z%0VAn!m`5Lqr7dOSvrNy_`@?%6T6t@*hI|b25TqHP~M2(VZ86v)XZF5LR7yC&K4u$Ar$B76LDRmia!?(G zI>4DjO_`?=dQ?FthfeE|icQ%#tcTIntpE5y{m+#pzB82jGDrfHc5;X zJJMftiyX!h%B!Bv`P2aL2gDcKpRQDYAU3PP1`9LHTDH=-6THzArmI%D(c#a1b@Fko z(yWsJSs-bDz<(|>fDx;#rh$fDM(x0XCjB}NVF-z(&IV6o8~oh$z!hY)#{H}-_Mb~$ zQT#0Gv+O#=4wMUL!#8odF|z(1z^z+o(44e3hr|w?1~*(}%7-haKEGh9$Pn{_#h5qW zb(GR>!!X7*q<*?~7b51eP^ZNJpN$69bVaw`1W#Bnw=jRhW;mZF-{S^RDi@j#0oFI` zrR%gko0^j4W@80>z3di$Nb>!z$$%7!gd21|nfNM4=By;STpaw&;b{ z4-RI}3I{srgh$On{JE)T5-D8l&!=UoO_V-j*_FkT)MS-rfN)?j!tHwNY*_XnadMC# zMlY5GW~Z=frgl%YpQVj7CIWu`be~VQ_z8Kp)|V=Klk*2GhRu-I$cLV ztw!h)MBacU^i1aHa!0Owz^hNJT#A&?Q=QSZ584`Le~KhH`t7XDpC*(ccH~53C?W;# zp-Ud1z4%rf@!SM~N<$pb2Myt`NLvMH09*lV z&`A4(-k%*F?PI0PryU;8tHA8vJ3RUW`QJF-KJD-@O=-~*l0kQPQct2d<2g+I>1O=% zM?dm;4KB)6VJYMB2bjF;skR(=^+Jc9VCdBvLtGw6?rDeT)hDW`7fVALt6yUg)ll(o zec!Rg8GJ>(M|IfHsj%9pGGiHK(`|I+o2o_QD}No~0mR-4Q&?T7^T8968uovs_5}-b zRzvZ-(JF(sc}ApXa#5)Zl=|e>D@=qAp}>i{R^t)K6UL|d!?HEiSy~n16nl%+ZzjxE z284$b-B5shPJgxHc|EV+8VfdV<3wAce=&J}b#mK(zXFa_jfWtc#+?xyvIlh};yqC%s7%IR_w56km()P?H(^#QLY^Ng%1I?>*jkU6F7 zgEK5qq`qncmz5W@S-x0C^rIFC2rdbhr|Ixr*{EAgK9=Sy9Wj9(qdy$^}|wb$km6Sad@KiTpY$8HW9*20C# z9M_Xd_8S|EBG{S>8yDDG5(gt#TTkW{SlX_KhHcvqAJFU?V6jGQI1tX?VzBcb-w|R>vfIRaE${Y1qn(|43?yK zI^nkuCojotEhlrgxm?Y`vugz^&cIg?z7Mt<*^(!d%>r{}TU7)n1Wt>5RlR=6?4lhJ ziPfqdSrQD(8U!VVZP$hLUrGh7dRy{m)IZIdAso!Z%2Z^yj61c(Rik`+uAoXM;(mF2 z&|JT;37$a;Ia>a-NcAf~$@vojnNRc#I#nBWlKI%F(aq`+^$!ZU4BHu(!>&xgU(EA9SGaXf3Tjm1o-#i(dQ+3xwA!eF zp-L=sKjvFQ@s4QHl1jgOO1M$}VBy$lsf_%BsWCrgycteQKi;e*@LGEGWAjj++!1A) z*QK=W!S1)5y~$kTX2??IV435c7Lr z2&|5bVm1jGsNh^R6XZDkej3sNS|a>@@h>CuRsEDBK(G@l#0o&T4Zo4$I-KSlLX! z_=WQ47VBb-Cg(G`rP@aJX*WmqkBMncQoD&*(jPKhjvPU;atKM!ui_|MJ+6K&nTo`( znuS#BRF5gCS9a4kkI9MlTOr00kVNr)V8p)dz*%mLfCK&slHaOb7{Cy^$j|(rVy{Zx z0*3!B))xnTd0 zOJ%_-D;&rvP{{<^PeHcgw#Re9Z<6*cPYPcW5=p&>zdnCE5QQDu84E*9nL7MN}7U~F`hW1DFld@KWFxb zSstx%Dlu(_I|ZsE3)xMir_6rV5sOp{e)!1pq@$VIU&PHCpPEJSM-N{nuDvdEjb}Hx zJsU_6)jkOZ-o@QbEkK+^O+@b34Zg0tImMZV6~1g$TQzdxxmMoAeLx_zgL$;ZT*V zN_&7NTOyF9FHGnPo4PxgfTHZGzg()%k4Th$@hWD$Kb8h5o+lN@9LnC%a6Mh^v&A9_ zwB9e&A}uT! z9kJ0FOPgzOLbsweo(%WqTcmw2nRhnA8Fwj3cImX=PYODN54|tu9$l+IkrfESbGEA) zGuqpSTh{b?)|>HToSc1xZbF{VS(XCqXZJ!$x3M!^T(R0bfJCV!%AfeEdbWnO%Uf^V zX%?s?ETem$qo}3n)3dL& z5h_f(fpRBHO82R?*8Z#xk6XpxIc%D8(Ds%OJ|vqB)tpf;MdlA z#c+U*D7QQ{Qu)Hh?{8o<+|Li!7F^12%mcay70icQ-JMRlHr_C_RY5BvAftN-T}(eY z)BEP$Y!!}{6&dJ%lDLf>h$A109rRtt6+3wBEpogg`A~szD2ltRNf2$uTy_}qDMNNR zWi*jVB$v9ZX%zNysA-rWD*SlNu`pmWMuha$c%1CFmu6rv=JaMf85iMSommrL0qx9B z{pS96zX_dx>Nje5JkWmQ$EqDmL!gFJ6arU7z1R>(DjkZ$AZ=zGm(v|^w!C)6V7np| zxDASi$lB*g5t86cJ;6KfbBlfG&Y#d*pdv-EMpx))*y1Vbg$Qku!5ul;l~&Non(?ww zt<}9Ht#&^k0NRJoNXxg!vp5HndT#*PEg9CIPS3;GsRtURevWlta@*>)d2hi|x;Y!p zcfE7#x^L!R4=_;9EjIrcv)qy$&cf|fDp3BWm_=NR($8&KWb~TXUsGf@TlycEkIuDo zA~@?nUhcfo9Y7$@cc-#z0Zne-JmqNejSqgbWeh$Q5Y|55znm*cfH^eBpA;&nwf1iZ z-f6{q@p~H{s45|QvMOwa1FV=Eh})2eI65BuS${;)<;X(mtUuVb))RPlb)Rr;3+yt$ z)Ttt8M5bzLT6C-`^c6^3F!`a3Fi|0^ma!|~CiFvu{|8DmMiB8XPJNKZIu z(86J{#ympCGh4ilDAObA{iS3=o-^n|SqQM*hyU?FqG8xvCKC>U`ZqgE=XV*i=IYL; z$y8=r9wsW^QOnaP0tb;gEVudG756n?ANeUK>iL1h7>_LGa(IW=6;gPA%)4DV1bcC4 zt}Z${i58!Se>l?i7J`{2XeeP+uP`~oIcQ9w>M9Q^!8Mq7I0@}LI}{mnNp{c;C;SHk z5qIla&CkeB80dj9|AWD_+dXq zfIZcV5LVeZcmCtmKim|sCJ;g@ATKHVbZCyJLzfuK`}u2+MI^J+kEB8i%+>keS`YN% z5B7Io?n*^sJuxo!U>qb~ zXuMxM#XDIH%F4|8J@cmAL-^z7IP8K-ew{QVX0zV|$Dp%Rc z?EeVXp+UIMG|8D_)A|w^ikQ$z;^}%L|E&*E+f-F%yYbnB|1vL7R5SeHyYDZvsiK~Q zTP?`Wq??ijE5Uc3>_I3xa{0O%r9)qEn(0Rxj)0<-C&7dwX?O?VTDTWOWH*|{sySD@ zxHWp%7TutE-3`-5HNzU&dcZ!47JB=bK0V7M@7l51j+{o$vj zA1%*#bHBjKU>-_x+b`6Al6YzbcKAJ`AqQo(KQnZ z(qIT5h5N_IM^bC`ocYKGU6uxjd6dlEmUzUE9{0oml=AZPiVQS`AvB@<8Ql5 zb?YB~rd3(Y6`6*io(no`=~Noj+vuqkD5}-L8n@XD*0Q&Ie)w71AUI)S-0gAwnL>z; zt=*j)H}gQ~m-JRme7A!QXC0>LNNT>r7e37uZTl>Vaq{`~!@1dtmnF;0Pr{GBX?LFx z+16C$M#E0@XmkA_fy!x=2I$VoeuGAhf(=)*CxaUVxOMt|Is{uk2}Rs zNWp*0;=g4JQpm;OVvF1Pa#&L~l*vY*kbyjR?3SBxh$X@$UB}jhJWp?+#QsRXg^<=X zJnvU5)DC#Gdsw(UUdl(}Fh><(Ed250hcIb0jc2o}O5_sexv{@)$(2ifXx_uidsT#a zxz$3d!tgaW+25PuMwL?8+su}^cNTX>w+QQmEy&{)gMqtC=NMiy-*eH76K_Pqrk{o1 zDz$e<7iwKCCp%-Vw)ziU*{L8D6ewvIwL+rf`Ea4ba}YHzNGYp#gsMj+osq7`d*<77zO+ik)80zRVFqL zg6qts7RGv4NF9tcL%SY&;cJNW}-k|N9-F384CqPyQsbf&Ut$pfZt|O}13T zG`$smq1~VPss4CTI*i~S?lkOkOL!=#qdFn(4)x+ZcDbHY0gnb*MQi*Qr7-Ks!Q5l&hYEXrc`tQ{TT;%wsIh zbHQ3^^Wfj+q)-y%wpwrl?l%p3WLVB8UCj3>hW7?Q2PvkfK?-{)(V7;d&sS+bgbj@J zRX%>dzPEBf&-s3jg7fXMYrnh9xc_~D%4X|u=8=KO{q052db_Ce>cic=RLE;zgnOAR zpCu9(qd!smyE<+Il%R9zzheLtMWg>l5nuKXisXNz*!SNkzWu+Ui1`)@XWB5*0Gj0dadeZKu<*-GVnprhkSgp~Qh!@epL zoXcS7=B0OWs3$t7yyW#yGyR?6mjH191Ay{R*@R*R?IbW9+PYa zOjhLD!O&TiW$4{v%3AIqI_(QYZIn23UkI&U*M|n!E+l{K2XM!AXOE&EJxG#{kw+}T z59aD1UFU3l*iXQg=DuLMXEKU~b?*+)88G_Ap#9o1f5Mqbmplj!pg*LnpuiD6`C3@j0XfD`)-O zNOSc^7sfrWu+1e^V4{FX2WUXop%d$FaVUSZDbh9$F|%~QOYOL8)SM$uckFI8m+Yo* z+4Vz91?7)9IX2HSTfy!wl`1}-H&^L5F3r9@){iV?;1|m`cs}i%Nb>K-hd;tL+LW7 z<~tNaW<1*)Ey42dX#9W#OZZM}6}5$g+S7Lxd?E@p4j=JuT{zY{64^dp#ZH!pwPXMT zgN$+zR=*a$GzF0-R@5Jv?8YYe-*Fi_Aqa1z_pbq6Ap}U< zjL!-`V1DId4K2G0`H&@v%!_q)MhIEx|1<5 z>IPJUU08h--~+3JN*U=g07v+HU%~_-(9c|hJoK1%nn72 z=|8J{7ofdHhl628sTj4@|Xg(P9KiZ)LPtLz7K_wr@3 zdZcc}sH+vYRwsv}M1xb?19$g}U4nw<^7Xp-3;9fC;w@DB8?(_+&?k3e+KuyQ!;Ps{ z&x`oHjLomjZ7r8wiOa{1E1y=b{aK&4#Yy?Nx86EYf0#s_JulEQM_Yn!dLI*CNqYyQ z48)laHM(E~237V-32xzVO9Z1DJbUtjp}G^$pEyT@6}Cb3?*=0TBMWUX#LytUfKDLf zbL*XvivReAtKs(R4X>;j?Pz*~*fj4p_;LxQB8UhqJdbUqdV{DW=*e{)jD{fi?4dl@ zDp`X_wRUc=zQ^Vd+R*>hcJ~cukjSLdI)>r_{zNAIhW^?2^A&Wj>ojR6{tMu%ayggx z<~ql(DT-g#qnhc&4twYM9KMn(w`4YIsoT#D(Vy63shdBQYrJyw)!u-P#B8DUxa0j2AR)V1(DhFcrz`bu}V!J2zUPD}M(wBuo)zpWN+3YLW$=Z6tvHQRLCh}nk#*yD1 zP|L(*u_$<}GMvo?6MhUX(^ts?`K|YvWXLfW9t@M?jDrLu(?L4ib`p05LafR5kCc%c z4)M@86;om&gUQ0L&(`5C#Pv^tU!VTC%LoxqloGydcVDk8YtZzjKJi(Yk_o*zth^Uy zH3+&>srpHfEm%K+`Bx{Z_k|{;D1d3Dw+{Br@$ehG{l0h*a8a8WLZ_JP1dmBc+;iNS zru-9Snn88ZG|=2~%#Qh658P8yA}LU$D?X9c+z#`H5O zq5ByB`L7^P5E1?+E>FrB`BldgL{aGAD;uJB-8$c4!>5gN7jPqj{ujEKntyKP=}Rl6s!HpNd7F zC-ZS^p^dbmw2~XwdYujT^0d8M+|REBcY9w7&wd~dgi8h>>u0kA6{FDo1f?2ccSZ$a zZz=cB;~VF6c7fG)syA^|M2O8neh+ z1L{in_RH2aB=3hkD-c>1;U8P6n>2yPNRMTow*1u!9Zgck|J~iNk}n%H5bE~*M;ZG~ zd!KR<2>twNos1O}odIwQ2;c!#BkTYSV24K*M~+kg8?thb4V{L8qZPf%u$^`WM^f1rFi23G7wSly_F7u)&r5V`pTK%)AuUY{ z?z|yicZ6oAbUw4UUH6-r) zlckXB+`WJ?9C>?bOP(CvK@#sCAL9zzOeN8D?~ZAZ@@CP7Pn24GBheXO?!;r;pj6yJ zsQm?acPZVxDR|Q~{OB^;qWXOI$0O~xg@>PHf0D1V3-tlT>Hq5OEu*Sx-*)dsE_yAx zyHiR*q(QnHq`M>(l zUGtjPbm#(pp{|7t36@` z_Vp_N72S>PF;ltZ;khy^n~E zG!>=iEUltLO#bLFs9gFD^i9+xs}uTi7ycxRUkcuaFb^ATjX8|GsFd~GJmTI*a?T!k zpEH=?i=?HEQDT&jMk6`qIIKr@RrZaPR&96l*_pjJVMi-`hD-JFNnO+*-&+k z7z*Qbxy2cpMF?uGz?lly^+SJeG8y35k%53<48sdVi{mW`1A21H5LF{RW?rX7(=3J;; z3!dSxYlINrVezjcU{#`{2~RP``dOkAPE;!%lp|Ou>&BDIftu;UG8#;cg8ZL50P$nU z0VoTEkqIF9zkdvvP`s{1)j}#lh6<~xB_UhJ1zv@lc4q#lH;jn;iQnvKj#MH^c$^7veCpA*<(cL9HmaooKamE!`4SiXt@$A#y4&A+ zd!@?&r<44)WS0S=g-hRC3xDgwOaXirS+Z-ZduS_K|JT zr0)T9ON&rBpceO~aZs;>MB%LTWfA%t=E^mosl32=5K=iqxb@I@+OJ-4(4A!fEONI` z(4D?eJDNRnW%o?;mFf#M?zcomPoiq0@GKaPiDlPg=&W^H(2T&$+66YY3t|QbFq{C0 z-mX9Nucm`6@KYhce;^DqklhIXQ2~$>B8LuF-1`QHh2zpnda!9Sz`$}8a$FdPmasTt zX8w{W_rigACU@P+h}gAmM~Knes;Ejmg&1rn@{ht3%RPw{v__%>0+#YA(9o$D+4!H6 zD1~fk{w`_DASnXNg9rSZiXd9iBo-ij3I-FBFqJ12c12)Pi-)zj6-j~c?F<*#G>Qe| zsaTaR$&Qxglb9hXL~QO1eK8!`3?&2gHY%}F(nV?Byqi6LcJ1xr|Br>#|M3s*BWZ$& zZ$rGL+Yqm)HO)LqpwH2>4$Z)b#>K-)Jglpl&5J@P_G$&KCY!j3J|W-8fiN1}lvv z$w4_7LHn_dT5~&0XryOLr85pB*_Ec_m#NR-ym&BD#C?27Pul8Jn(V{ROKVrwQM!{Fya8d+!WiFk$ZqlfwMBmibM(MFxXr!TpyV~IsDuH-}18gNf)D+oPQ+M)FwfR*Ir<*kB|OJtE_C zc=TWqxgoD}JrMAbGogv&JErYO1aMbKQNMo5It{+DjZ=-9*q94c;#)DoKB}H*!@aZE zbZI^xBjOpyvWA^$CRS==i^1Z@$Nj<2YlI^__C(I6Dfv`Q?&8jY#86s%LzXe5TD)n6 zcRnq`5pDVtxlCx9o*W{E<7Z9FOFj{9T5ao@`Km$jn)Q5~rGMbvX^ha7WB_wQayZv^ zWN<M_N}yM~g& zcHffdTy{akjn)tpR8GJs>>{Mua5nqYMC=8hrZ`gT{zhL3)UJK*WRhJcgxg5eo==S` zC!WmEbmYs*M_?b?w)=sI7A8v!nMcn~T^}mGvb1W!2sv~%3E^Z9aJE=0TOy9KP?D`^ z?S+PV=-=+lTyi1vd!s(W{2%<%hswV$bh((k6%q}NP@ZYprY~n~+_-|joC!2`EW3Vp z9=z?-{BxRwm9q5fM5z<@RqG3$@8J^$3TC%t;xl}azy#ilAMVKg>-IDIq7OW_x%5Oo zvL=b0uWWv*_3DNcJq_3(Et0= z2k(PoasTc7xDxNWuOlH3ylshupsecQu2>;Dicce?sK^XP4ppCA2xP)cJgAi!PpM)|D{IO_x z_0L6p8^it%FNlCedin1c9R)&yQ>2`QAC4L?s8Y_0!Tq?7rb*bohpfdwhE6W7bmVh) zh#XI!2>X$g(&Ku;w^L}THp-bDjvdBtG)pi;?@$IbVb-$_#@>xzMBS<1n20f6NCGhB zZB<5NjFwqNof26RNr%3s!NV2xg8TX{IF>jpJq5zDc!f4cbhBU?Kk7$Hhvs=g+%BTj zDs2bwqzGbLe~P~jKOaZ}#Diq?&$W45`TMW_Y!HzB!T|n%{Mi&ksI)6k-TwHqU9~lA z^kx6{XDb?cN#Tp|XR}u>P%xxG__Jw;DyGt){s1NY@n-`HFo47-hFZC$YOWFRXEPZ( z2@VA$K7)D6tq3yqc<1X-Ywgm9AQWsGl`J<{f;u4aaXz%2>W>4olnZC>Q(+muwUj_> zUnZ7D)rYxjqFlSubmVRGw;2typ?uYMEqn7xnk$Py!|D4{wkHap9%*y`+?B{_HrjqZ zwl-R<{BoaCF%xwj|Z;q~Afj38LU>A}_{C*&Z}&n0+gbx4Q?E_HdN1s+`* z3w-`7@RZ)uAP|*g_Ddk>?dgIy`n@eUaG^(;siKJ6FNbIRVoeGo(u-P-q^l??^oJZ2 z(^=9)l&?fGUNa_%vvLs6#|WCvu0;HN;bjyrD&oZ$eILEqDpB@Ce<>C@zHCkU;k`FY z$t*F)K?zv*9ZG$E!lI=7rLdys(#-=%gQC~bct_LD_{cYMKF14L_#e2jt|mFp%&~}S z`zV&>`N?g*$_M{sXM5&|=V<>Fhq_|xNi@$6n|r)Chl6Xfn&a!o>82IiPT4LyuO0IO zICks{6C5k-O7klm-NI{j9G_QrlyEo&=#Dy82GuWCaK@PJ?|f5zbM50)(bb{kTwh5O zyZd^O=YeD6XaLsZrd&1Uz0w)e2M#S?#0MX@#s*;T7p^2cuz$0067BN#S%JK+dYW}%6Z*QdEBH({orbJ{QEOwpO=I2HO zyri#nve$542)hr~$M%;vEVS_zHz*RZQWWUK7k^A`m&RkN+bJ1}9|e{B(FN;$j33$I z8uTJCO3%LQ>gb%YiG-;j7FdBZm|QN2K;f`B!H)Mc2LA6cq;emlh$jWj%aoRb8kAA$)FAff(t-(I+~1Xv>OS$@H%;MerzUIDD#NqE(h;x z<0xPd5;D&gOO{OwotBf#?s{u^oly(svdz-S&K zL{qOj5(UB%rch58N;QZu*U&Z}jK} zm_3#UMw$$&nY;isjn6ePKS+y%p+sWO(z1meO?9Jy$l@$JFyM#pByng83|*f&D4lhN;j1jB`vn_0PDSUX z5gcznuEn?yex!+d)|YAF_jmMI3cON-+d~QDW};hK0DR*M;ki1>9Ke@&jx4qHRNwsT zhu9k^7O;(r`{TU|bde6~0lbCvM?EL1BJF($Hs$qkKUS!0%*C$QGD=?zn2;9PSlEGo zO`%BPfl}1n=(W%+DjM_SP3Bj{u^Yk*RZ-ATNy610e}#)r<=PDjnfLt7C38O{V3CXL zfD@MLs=o)|IfYdce9YLE1U^DSh5kp~x4* z-dpy~OEsR?F)CG2pMJ!|a)O=`U3EI3DUM=?o06S|EI{6{} zM~OS>EkkI8TgQ-~lY@Ffax|C55wK_bA(fUF7fK(l@IV0>t7e*IJ}8CiDHb|@)&w@x zfLGunYL`7fD#I~%Z!}m2cWp&Vw`W>I;un$|aS)k}Ac}L{Vd@x`=M>+JqL-UqK2j1@ z=rHF{oU9DLow1~a^`J)=5~_znw+hFx7+v(;eEjKBc}$nEU@)4g2a5AW`y05t8WP=3 zd9xTigz3F3Gn-jmr)`z*|a05-aMX<6mbytnzT$2Y*Wc&2c`-FOE}O_{7JlJ#6xPA@L=Q0_gcc>A)vcfDi) z=MV7#uFA%*!9P`^NY0kOtV|+5t_cWQMsNR&x#X7ht5b&DKOfEXvOwsSBo1x$1WpB+Td z8nOywIsEUAQn3fB zQ9!Yi>&2NlLhsC=W!$#1^nsW{h-LSTuS6l3>Gwi?Oq*{JD?jd&0pSp7i=PeLSpv#Z zbUasZ_uf&;2l`vb4qEWIBKhKsG~o%W*gVgYkP?xD?GJtre(n)v3R=D)7qAxFf@{Jh zT3uQx2+Gv;z_paE*NU6&#(6FGNANzLW*p3S5{$JiKR-K=4tRtjdPaxM+v~%k6418c zwQ?`Ym~SEIv*9u&o~l^dCw(LM-Em`D^Rt7nCTU9nWI>QUw3S5XezO8t|!LQcSZ}LFQu!CMA)H=$U0)2}S0U zttiPV=?jk{l;u~{uw*8{<9!@vow6DnmP7Blu@HSM1uh^C$9qvQ$v}t)l@x3)*P)xt z(|Sxo9Q9;-kx!nhm#J2q} zJ{6duAjOh?G!VUuBYZ&GZJ2^wZ5AGE*hs*_iHtqqcaHRJnCc!Y{?#X&o{9Qwdj)D? zbca-WpDZu8wa&QCW-~b)ddnA`B<(-DNH8As5W1nf!N~X`6J|dFdr5_x;aChfSI{mB zqnrN;s{S8q$p43h0nsd8SkXgl5=t@i{}{I`LPIeVd9AtxgM$IlC!#Q*coaJPl3(J0 z>ejfO*aX=GD-~@5Vcg!lUC20D$tA1yb+EZoKa{M>wAW}7o)7j#-mAAN8>4#gbmhM- z47AnJh}n;)Er(cDt&&K!F(p))r#@|Ru;dBlKPy@CST5w1ZI_4A4`x?uAKw&`quymNN(U#oMk?FzHY!(8`n=^Au zwAkaV$x5@aj`x?R2dhIb)jxFnx;#7nw)DaDoXg?MuPN%FrH^6b;49{GcnA(q7zl-K z^nVRR>Jl^$mvDFpmB)X!1r!D%*oyr1P1;PbS@?-*q%ab;R$_Vk*jD|lva^a}xJSxY z6GTtW3am&+wQwU;>bF*t69&GmR&ra9`Ep#9G_P^NKLEd_gmEuAK*2W8W%JQfn&>_d_nVCj_v*#79rm)*_n-R9OEMgH%GF<#QSmg(vTHwY#JM@#EX|(z zVnv>nRP?Q;{p3p}vvE)VL+*YBtKIqmme{I0@o@Cirz%pMgdTBU93RK|oK@_#yem3f zr0iqk+;8hkNtw5j{^YawmO&i0_pT#=Ak4QT$*H!%|AjAcfn&qB?~y^BoCh`jO`iwe zW6jl*#qveIG?JN4F}sl12}& zkZ^rX#zMc-$gaQNu75LKEX@%2c$&trEUT~pyYT1djs4>DpN~f+zUA(ZKh%$3`lMLd zYV51Lx!~ciPC371<-pPNa$p-RSn-P!Yt%g-N1-!CZdgdv$M&uFBTHYm4{!2LS2EcYq3{aK}4uedggh1b}>OHItb#4C;z5vE8^X9Z&L07?nN_^-dlIz`vlJn8==JRS{*<=j)m>%px0ChS;xm_1W$0u#{m4cHV&Jq0 znGek_u8O&`wfY@G+gh`Uac3P|PV5CwT`#d^#$72o{r={`EG6A4!DdIp z=F-U19~RYXF&5{GSf8_ZmIKeWAB`QeQ{5^Th+xq(8m~q`FY#W&t&Gf;0NS)Po>6)T|D-VQFYF=O19p7 zW0^cgH&#HY-&qcke0g5?_Z#8!UYPLRzdt@{T0_JlG27hiFDyZNkDl-5Iie z$B*QQlYOkkH`A8w&GXdQ8q3q|y0dTnrjvuCW6duGkt?#ONW$2SmfxIfQv{`=vv=uY zCkGUn4u?R4$(xq(=E0<^s%UT;u6G1xSv_0H=o}>79HbmsMSbSAAw<}TEDz2PJH_VPWv$g$vAUkIsw}V;1%-u|Y1**2?)y_{Q{|>hNL9@%IK4 z6>Cj4{$YF0{R1;R4bMXEftGOFeB};klG`_b8T&3hk~=5))N#&j9C$-%iNY$3h7)iQ z$oygn$F=PP4UhYTR{KhUO;jc?&ml2ym<*Mx@CUq!q9j^B#}!sS?`~?jC+SO+>)1$d zhVVs?!qfaVK83%L>C>ipvGfd$<{2TJ&#srcp#afCxMPwkBXdNZ6K9ISxwfPzzRf2D{9>XG7rHeL$hR?dmSdP z6wT5XeVO!0W+eB%ueHI&vRx0tv~6H(l4X=kT*%ZINHk*NRCEkRvVX41)|fIfEEfbT zhLPT7VS6)}iU}^m`-Cv@LqWegMo{xO7vUYJV8u4V8^R*@e!j)OTzhjI1qTH@PYh*H zOsN!iAn{w!z4O6GdZ#`4T=Lii^WFxFNe&EkF~a8^-nNL0Sw}7M+!r*cWT^9Ql5A5NI@(HFa2i}5!tW@u|)_Hzek=dsow#*1QGJUSO^DmS|Jzp zsD2_Qy~q#PUFK)ZhB3GnKn~2^0Yi$z_11{+CNh;FO2DxI(qBPj1t9$e&5fhc4BvVT z0qsmESDAGjO%+Hxos{YCPVx}I^6DUFUi~rV{EyKeLXJyFAu4>3`9YSH0T}k9xhfk* z!uQM%qsX)+j!~OH5aWnJDIH7Mb`>PB-XFt*#$s^#-Ry(Koip53csXq)r|7xo5Przg zaM9bdU#pun8w1gVGDSUf(BON%Xgk>t>PGWX{ddn$pBfb{O$JP{Y&~#jX4DHcLes;T zIez&8TzSPkAymbE7lJl;&rPXmi6>j|n@js6jc-!4ae;Hk1yZ!4f!@+rYe};-D6R3d zxp7?g8EilwF5Ho|H)9D(!+!jtF4%kd0A#m!cy4nPCjP{;>3+r~H+Js~#O!9J|2s^= z7woh7Xj3cN3WW6P;AVJpG&IOT`!mdc{2hl!R4tM@TNI+ccSdU+rZv-za&Bw^?Nq+O z3_}Y3exGPb6_eRE4M-w?ehT4Y50mmYe#k~2{@h_}S(576Sz#o-t(Q5wMIl5 zru4WzI<`6H*Hr(9+cqZV5g*sGIMU}xQCXUTY;*j3KfcO!eO6*?b}?+oD*yaM7lP`0 zM7~+@6IIf#0FwS%T^;HNl`M{uLuHXbiaLhmCcFG75l5;zurADYBm$LkiXOm(GjpIE zvQQ6>q_Ue%e3Y#UDk%^oEpmcm8(fO@_b!a(Mn8@l^ zP%!IRh?@pJt@OlGQ(8`uHI#HGqC>(&o>k3~Q49(`i+*N{!sRe1Y*Gg$>`b!_E5W3; zX(*RYgWS_gT8oop(?@4JjH#>0gmUqDJ6>hmF)0+wC1bTcRVi--n`97wtcb%0A(uKk z{G6+D>Z>(ZWk4(BB0v`%1vx`cVhr%GN60LKI9pluYrSDBhUgpUc;vkIAF_Mu1(jHp z@yhZ}V`Grmrm|p63ZiP7#JvzTjxr`n)M!Mfqn0^wB$uN2IBE>_(>7$qgKjBUWmN2= zD9%Jp@Vvzj`uRHYwmWngt)BL#$9(+a$1&D2&*cjB`^%)6JHrA0W)@=~KHS`Z z(AnTYs3i9AU<{V>0$-%0RytWPcA`!RT=BCcFM{i0i*OQt50fxL$2N;doDqwnXpCyQ zl^D*XawrOKpO*$Y5^54mLh#F$r8KRj{dgGCZkt9T8k#pW31fPTE}Bd5V;2@w6e^jD zE_I-uCU5Ex604ST083O8KR^oSw*Ck~Wl3|eNY$W0g=Nx6ny-VQJ&I)!7k=X_Ib7z^ z<1s*T0m!FLC3WZG#!fbt-KzR4GI>| zDl+6~#1V61Z^reW+mZgevP^^|1z6wxM*;M&egJ3|go7dCK!b##CyIdEals28XtvPZ zA0<~zu^vbzCNDRBLr|(5gKsvdlci}s94sUha8@VH68n-11DRMvXB7+M#_KKWMXJ4a zu*yp{!NcX3x~25Rj$bL#S2Qcl=~2->HdpDzD8NE~B~4e&$Iu|7N@7Xzgr%B*Ny2kZ zEwF=i=Q^x+re05l%cG%OKYtDf*IS?N`}2C!PX{7lFz8;>00P0Y1b@Aw|Q-qVZGoyMZAdDi^B1EN}DqcVT8x(U-i6;;b($RXAf zpu}(UcD9=?F!9xDHTZ^U8=^~zjZ*+QGXF$8Bth@R$nJA0aGb0E^21Fi>yzx$VB;5t zg86|c*{sIC7^6)e39o{t7lU#0b@Ih4(&a3|=}a(!F$3L&wY?|v{ywt&0Hwll+lRV^ zs}#m%V@YmJL6YcWL&1c4PG{x}4>43BT?|rzZ*(B99%0Ds9G$0;?Br&_4z6~{QKC3aPhi*P} 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 literal 0 HcmV?d00001