From 6a789105c3859a8cdf1cdbb5d0c5ed5ca56bf3fb Mon Sep 17 00:00:00 2001 From: Olivier Stasse <ostasse@laas.fr> Date: Tue, 2 Jan 2018 16:56:48 +0100 Subject: [PATCH] [doc] Improve documentation. --- doc/additionalDoc/dgshell_doc.h | 2 +- doc/additionalDoc/package.h | 178 +++++++++++++++++++------ doc/additionalDoc/shellfunctions_doc.h | 1 + doc/figures/Concept-Software-Fig.png | Bin 0 -> 31613 bytes 4 files changed, 140 insertions(+), 41 deletions(-) create mode 100644 doc/figures/Concept-Software-Fig.png diff --git a/doc/additionalDoc/dgshell_doc.h b/doc/additionalDoc/dgshell_doc.h index dc6f58ac..433fd08b 100644 --- a/doc/additionalDoc/dgshell_doc.h +++ b/doc/additionalDoc/dgshell_doc.h @@ -1,5 +1,5 @@ /** - +\ingroup gshellfunctions \page dgshell_doc dg-shell executable The dynamic-graph shell program "dg-shell" allows access to the dynamic-graph library's Interpreter class, which can execute commands and scripts from the command line. diff --git a/doc/additionalDoc/package.h b/doc/additionalDoc/package.h index 7aa365eb..a643d3df 100644 --- a/doc/additionalDoc/package.h +++ b/doc/additionalDoc/package.h @@ -22,16 +22,62 @@ /** \mainpage + + \section intro_dynamicGraph Introduction The dynamic-graph package is used to connect computation nodes, "entities" -together using a graph system, akin to what Simulink does. With the building -blocks this package provides, you can easily create a full computation graph +together using a graph system, akin to what Simulink does. Entities are connected +through input and output signals. +With the building blocks this package provides, you can easily create a full computation graph for a given problem. It is the basis for the stack of tasks operation. -\image html entity.png -Functionality: -\li Built-in scripting language* for fast prototyping and testing + +\subsection controlgraph Exemple: Real-time control + +<p>To give a more concrete example, the real-time control used by the Gepetto group for the humanoid robot HRP-2 +is detailled.</p> +<p> +Real-time control system are usually driven by a cyclic computational node which +needs to send a control reference value to each motors of a robot. To compute this +control reference values, sensor values need to be provided. +In the Stack-Of-Tasks special entities called Device are used to +provide an abstract interface to the hardware.</p> +A scheme of the real-time control graph used for the humanoid robot HRP-2 is depicted in the following figure: + +\image html Concept-Software-Fig.png + +<p>The device therefore has a specific input which should contain the control vector. +This control vector is the result of a computation solving a control problem. +The entity in charge of solving this control problem is called "Solver" in the previous +figure. +In the SoT framework it is often cast as an optimization problem. +This optimization problem is build using a control "Task" (not to be confused with the +general word task). A control "Task" regulates the difference with a "Feature" computed +on the current robot state and a "Desired Feature". For instance when walking, the regulated +feature is the robot's Center-Of-Mass (CoM) position. The "Feature" is computed using a +library using the robot model and the sensor value. The entity making this computation is "Dyn". +A walking pattern generator using foot-steps position given in advance generates the desired +value for the CoM. +Note that the "Dyn" entity uses the sensor provided by the entity "Robot". </p> + +<p> +From a pure computer science viewpoint we wish to avoid recomputing data such as articular Jacobians +when this is unnecessary. Therefore the data generated by an entity through signals may have two types of +dependencies: one dependency related to time and dependencies on other signals. Internally an entity +does not recompute the data if no new information is available, it is simply providing the same information +computed before. Please note that this package provides only the computational framework to realize +the data dependency and the entities. Solvers, libraries to compute mechanical quantities are provided +in different packages. +</p> + +<p> +Finally in order to dynamically create a graph, it is possible \b on-line to load classes of entities and +create instances of entities.</p> + +\subsection Functionnalities + +\li Built-in scripting language* for fast prototyping and testing of computational graph \li Support for extensions and modules using dynamic link libraries \li Template-based signal definition, independent \li Type-safe connection of input and output signals @@ -39,14 +85,37 @@ Functionality: computation of signal values, which is a critical point for real-time systems\n See \ref scriptingabout -\section overview Code overview -This code implements the factory design pattern, making creation of entities -(as C++ classes) available to packages depending on the dynamic-graph API. -For more information on this package's code or how to develop your own entities, -see \ref usecase. +\section entity Computational Entity +\image html entity.png + +\subsection entity_definition General definition +Despite the fact that it looks very similar to a ROS node or a CORBA/OpenRTM server, an entity is simply a C++ object. +The main idea is that this entity is providing mostly a data-driven functionnality working at very high rate (\f$ 200 Hz\f$ or \f$ 1 kHz \f$) +and should have a minimal computational time foot-print. + +For this signals (or ports to use a more classical terminology) are providing a time dependency between data. +To implement this, an output signal is linked with a method of the entity. The method calls input signals or use other means +to get the needed data. +It might be provided by the connection with remote computers through a middleware, or specific protocols, +but in general the external data is based upon the sensor values provided by a "Device" entity. +For this reason the signal evaluations are realized through the cascade of dependencies and start from the evaluation of an input +signal of a periodic node (in general the device). This is realized inside a \b real-time thread. + +To add flexibility to a node, it is possible to add command with arguments to modify the internal behavior of the entity +or get information from the entity. +As a command is in general asynchronous and rare with respect to the data-flow scheme for the signals the command is in general +executed in a \b none-real-time thread. + +\subsection entity_classes Entity class +Entities are implemented as C++ classes and compiled as dynamic libraries. They can be loaded and instancied dynamically. +It is therefore necessary to specify the location of their dynamical libraries. +However given the time it might take to load the library, it is not advised to do that during a control-law computation. +Entity instanciation also implies memory allocation which is also time consuming and thus not advised inside a real-time thread. +The entities will be placed in ${PREFIX}/lib/plugin (since this may change, it is advised to +check the install log or the CMakeLists.txt file to check the installation path). -\section entities List of entities in this package +\subsection entities List of entities in this package Since most of the functionality in projects using the dynamic-graph framework is exposed from entities, here is a short description of all the entities contained in this package. Note that most entities are contained in a binary file that closely matches @@ -57,9 +126,14 @@ enable creation of this entity through the factory. \li ShellProcedure \li \ref shellfunctions_doc -The entities will be placed in ${PREFIX}/lib/plugin (since this may change, it is advised to -check the install log or the CMakeLists.txt file to check the installation path). -\section sigintro About signals +\subsection specific_semantics Specific semantics with entities + +It is possible to derive classes and apply specific semantic for the entities. In our case we are interested in specific control semantics: +\li Tasks (more information <a href="http://stack-of-tasks.github.io/sot-core/doxygen/HEAD/a00089.html">here</a>) +\li Features (more information <a href="http://stack-of-tasks.github.io/sot-core/doxygen/HEAD/a00030.html">here</a>) +\li Solver (more information <a href="http://stack-of-tasks.github.io/sot-core/doxygen/HEAD/a00078.html">here</a>) + +\section sigintro Signals Entities can output different types of signals. All signals are templated by a Time tick type parameter (which is used in the caching of signals) - usually \c int. Signals @@ -67,32 +141,31 @@ are also templated after the type of data they accept or provide. For example: (example) For a more detailed programmer-oriented description of signals, please see \ref signals -\section scriptingabout Notes about the scripting language -The scripting language allows entities to define their own commands, and -provides a basic framework for working with the dynamic-graph. -At the time of writing, there is talk about replacing (or complementing) this limited -language with a python interpreter. +\section graph Graph -A couple of functions are built-in in the interpreter and provides low-level features such as file sourcing or -plug-in loading.\n -These functions are:\n -\code plug <obj1.sig1> <obj2.sig2> \endcode plugs the signal sig1 of obj1 to the signal sig2 of obj2. sig1 and sig2 -have to be of the same type. sig1 has to be an output signal and sig2 an input signal. -\code new <class> <object> \endcode instantiates an object object of class class. object has to be a free identifier and -class an existing entity. -\code destroy <object> \endcode deletes an instance previously created. -\code run <script.txt> \endcode sources (i.e. read and interpret) an external file. -\code loadPlugin <file.so> <directory> \endcode loads a plugin called file.so and located in the directory directory. -\code unloadPlugin <path/file.so> \endcode unloads a plugin. -\code help \endcode lists available functions. -\code set <obj.signal> <value> \endcode defines an input signal to a specific, constant, value. -\code get <obj.signal> <value> \endcode prints out a signal value. -\code compute <obj.sig> <time> \endcode computes an output signal and sets the associated time to time. +In this package, the graph considered are directed graphs. + +\subsection factory Factory + +The class \ref dynamicgraph::FactoryStorage is a singleton which register the entity classes and which is allowing the instancation of such classes. + +\subsection pool Pool +The class \ref dynamicgraph::PoolStorage keeps track of the entities instanciated with the factory. +The entities are the graph nodes. Signals are constructed during the class instanciation, they do not live independently +from the entities. Signals are the directed edges of the graph. +The pool can write a file representing the graph of entities. + +\subsection scriptingabout Building the graph + +This package provides a scripting language allows entities to define their own commands, and +provides a basic framework to build dynamically the computational graph. +However bindings have been created with python in the <a href="https://github.com/stack-of-tasks/dynamic-graph-python">dynamic-graph-python package</a> +and we strongly recommend to use this package instead of the in-house scripting language. \section usecase How to use this package -1) Programmatically\n +\subsection use_programmtically Programmatically Objects, which are derived from Entities (base class dynamicgraph::Entity), can be - declared within the code and compiled to shared libraries (.so/.dll files). +declared within the code and compiled to shared libraries (.so/.dll files). These libraries can be loaded at run-time using the PluginLoader methods, and at the same time register their class names to the Factory (see the examples in the SOT documentation to learn how). @@ -112,7 +185,7 @@ Some basic shell functions, and support for procedures, are also included. For a complete list of those, load the plugin shell-functions.so and type 'help' at the command line. -The (singletons made available by including the corresponding headers in this +The singletons made available by including the corresponding headers in this module are: \li dynamicgraph::FactoryStorage \li dynamicgraph::PoolStorage @@ -120,20 +193,46 @@ module are: For an example of a program creating entities in C++, see the unit test test_pool.cpp (in your package source directory/unitTesting). -2) Through scripts\n +\subsection use_scripts Through scripts The program \ref dgshell_doc can be used to have scripting access to the dynamic-graph library, where you can execute scripts and commands, load plugins, create entities and connect signals. Here is a typical use case for programmers: \image html figures/use-case.png -\section References +\section references References +\anchor Mansard2009 + +<b> "A versatile Generalized Inverted Kinematics implementation for collaborative working humanoid robots: The Stack Of Tasks"</b>, +<em>N. Mansard, O. Stasse, P. Evrard, A. Kheddar,</em> +Int. Conf. on Autonomous Robots, ICAR, 2009 + \anchor Mansard2007 <b>"Task sequencing for sensor-based control"</b>, <em>N. Mansard, F. Chaumette,</em> IEEE Trans. on Robotics, 23(1):60-72, February 2007 +\namespace dynamicgraph This is the namespace where every object and class of this library is located. + +\defgroup gshellfunctions Notes about the scripting language +@{ +A couple of functions are built-in in the interpreter and provides low-level features such as file sourcing or +plug-in loading.\n +These functions are:\n +\code plug <obj1.sig1> <obj2.sig2> \endcode plugs the signal sig1 of obj1 to the signal sig2 of obj2. sig1 and sig2 +have to be of the same type. sig1 has to be an output signal and sig2 an input signal. +\code new <class> <object> \endcode instantiates an object object of class class. object has to be a free identifier and +class an existing entity. +\code destroy <object> \endcode deletes an instance previously created. +\code run <script.txt> \endcode sources (i.e. read and interpret) an external file. +\code loadPlugin <file.so> <directory> \endcode loads a plugin called file.so and located in the directory directory. +\code unloadPlugin <path/file.so> \endcode unloads a plugin. +\code help \endcode lists available functions. +\code set <obj.signal> <value> \endcode defines an input signal to a specific, constant, value. +\code get <obj.signal> <value> \endcode prints out a signal value. +\code compute <obj.sig> <time> \endcode computes an output signal and sets the associated time to time. +@} \defgroup dgraph Core classes and objects @{ @@ -180,5 +279,4 @@ computations, when accessed. @} -\namespace dynamicgraph This is the namespace where every object and class of this library is located. */ diff --git a/doc/additionalDoc/shellfunctions_doc.h b/doc/additionalDoc/shellfunctions_doc.h index 01dde8d2..67a985e9 100644 --- a/doc/additionalDoc/shellfunctions_doc.h +++ b/doc/additionalDoc/shellfunctions_doc.h @@ -1,4 +1,5 @@ /** +\ingroup gshellfunctions \page shellfunctions_doc ShellFunctions \note Note: this documentation covers specific aspects of the in-house scripting language currently used by the dynamic-graph script. Unless diff --git a/doc/figures/Concept-Software-Fig.png b/doc/figures/Concept-Software-Fig.png new file mode 100644 index 0000000000000000000000000000000000000000..c7dfdeae89ffec5f1fdf05951d269b8a299d7589 GIT binary patch literal 31613 zcmeFYWmFwOw=KHyU?I3Wf#3uWn&1-L9fCUqcY-B2gy6w95IneT*toj~C%C)Y>z(u6 zbMAZh-y7rodm|%*-d)|*U8`2DHP@Wg;mV5Am}n$uAP@*sRz^Y<1cE05f#7ssAOmOg zAL#Z#AXG+cadBm9Q&SMgb3QTNQu)VMg0RtRzXf#r<owQwbah5_86EFLLrJ8hWt}9N zPvTuKB=E4UBdBr%gH#xCm~*vXphakpvEU&7Ac~@4dUGv(^zo+;gXr0V_g03-$U82S zKpJFFU<4c(jCSMCc6AUp#=+|=O~=lavA@2K`rOy6@*V`DC=Ck0dM!YofC3r>#f{2u zql4n~L1P2hVBjDR)D|TtM+l<Yh70V+Ld8UQ?*IqlI%20p0a;8LiC}>~`UhqqfFcm6 z#{agS|2lqv`oMwI8+<>A*?nYN5M|Yj!|jhXvAk=Xt6m}_n-h7cnG4xSIez)1wHfgK zRRS{z<Rl}%(xvn*lJNJl<FCq`c<hJA$m`ZX5U7LXVdWXr=Fw6k1sZ_|)g2$R6q988 z5C&dMLb+=5K)InHgKJNnhXW`l88C`BRA?XL;3SoiSjP}dIZ&8?BQQ9jIKBu}o&yPe z`--<J{&J)9<(nX!ITVx}<h>kJ-E8s^F+TkeTPNJ34nLw$OR5k?PlWRm?4(zS)HJRk zU;3!zz6s<;648=%Av=o+VT;n?g}?tBr%s37FYQkATIQW<FgF!zpHd&v2FYhqVyR3j z+&-2whBKsYWs(62d}Yij&}O#&6awb^**s?}<g~8@xjy4eHQ2(T?m4q#%{y<HBv!J~ ziHy~wLK#iHiBMeHAe9^}1nZ`Hm7hv+Y`f+w4edZafvA=54!B|hO;_jmg@59Y;1hmZ zU*mMrbIxxdS(Mc$ET_B%@qJ0}_3NBGJ@Yhxyk5qn42tdCUX46Sys_|QctZBa6AgWq zp?al_s1Wq7J@J*C44obQ51f~{0xz^sJ40kU;NxX}Q19WCg)eu><OXU>l+tI?7*fZ) zD*Touqy8PIKV{=18g2e}G?_%O=7jmg3+uER2?E-Z1lIoL4XZQy&%}-4i}J0~nKbMw zU5sgXwsN4?@m0a9lGcTb*->iCYDMb!#Yof1Y44X5%W^YwmU9)AMJMU31h`Rj`B@|D zlHG&c6R$$9G8GGL#}0Q)T;crKTSEOao`RlaL#T7v|I*{IRw;lr!SZGj8)a{F)D3<x zH+|q%s!_f8xg$LO?rl{{SW2)qcuuoYw-Wu6=_mBR7|yiLj;DC1s;8Q#3xBzABv3I? z8N#i?#llT-W?$126Nx9TwXME&=S(BwBU1Yaua>ae^U*AcLy7Ba%K3Mk@ATh4d~f_- z`#qU1lqD*^{j=%o>H%#_omg!nFdn!;^{uK8cs^eWOpw0`J_MVBBl88p()rN7-{wEf zzMEYQx(*5@clYo0-3@H@QN*`U3o`WnsQ$j*k3X1^=))8{u-|vz@0cV?FZu?Wo&9Sy zH?CZ{%*nt+F+Sg_Fy)taj;D^ZW_XTS-j8hc99PL*9=-3w<_y&(bB_mJ=3eGnn=G5i zo79`H@f8x^C&DMbOx!NU(}=MtwF$M!+JmHhPfONq)lHvQbE^`N7B+m0y9>O_4J(lP z-Qy7L5KXLLt-v=dG|W5f%-WPxrWvN0HzRHz#49Z*d;j~&k6gW1ox!kBb32o**tQ@& z+eh2O6W>3vyLd_?x}@jA%3Ht1u7$S+)i0^F(Ep2n{gWO7PcTRDBQgT=3Wfq^0%kf! z7O^Z*BPl-7CCQ_8sp$|`IgfusTI;;mW!<!J$x7-@T2~6$TQ9o-j!VuZ`+3W|>7m6a z#~BA++j0vE6GKap9+S_${P{oi2t3h!BJBwXSw-~HbkJBvb)QV~EfdYAZFs7sToi`V z3V0G`m}cT<FlWR_>l8wURY-Hns_en`d57|X8qHSC7R}b>ynOLK5%)98W0{UC*3cc} z-QV47#k5;Hf3*+zH|W;zcGTA|I&`|<jWiB>Eq70uR}X4vK}x>v`_I1RL*mQSi(G&- zH{KIm`(vejg-S>F$}5p8wOUpX?rk2qwb}ZX-OW$cE-kMfZuzy{H^vqyg^iB3A{tSy z=&oq_OZngWBRpX|M?aN4Q6d~548Uh1*&taUT_J@dhoaOXvLXv2C!?T?V~Ev-EMg{N zD!e#Er42(0<@w55>Z0r6w4~l(?WuB;cbT^DGP|-&)lBWxnID}?O3RlS*(QxBT_eRJ z?JdnK#U{}xIW0MSPUiX5(=qojmpRwcwA6IKw7|5?bkNlDZ|VBWuHl}A9<83y*Zg!- zbP#!0g;FK`k7tSk@ipJcelEs~$%V@_#xcdG{g}@xNJ&cP{aK!F_=9ce_Yi-|+tKS) zK1-U^eJ&rwj~|+hIpmpbwPqyh6x{8v3V&w*bZPwCSkxGt?#g@khdX2Yr-v_>1DB(V zQS0ZYn1^uIMOI9`_%ao}`??|r=0)DxCG-1!@*m`~g8qygEN|Fvesg(RI_8M2U3K&u zur<#|NJQL7nl_iY&prp<Q?Gr^5iYq_Kfcu@Gw?0!`VFo!Yy6?*y)B(bS>mt%hqT$_ z*HGy}pGZgRlwa)C!jY&Bn_;Gwh*#VGdo85q+=joM?a?TXT50Mtl(}RB0(7NkrF%u1 zCCgeZ`nX11y0%6ODhx*Tg$}1q7i;mf?$Y!7_<QnuP%;JnyN34soD!A1$}^%h?W;;H zg%1h{z3+PU(#+H4)1a9$!qh^$9#zn8NPfOXYi%i}{h&>{FuwoZlXdT;@S*o1CV6Sh zcP=OT{h|FV8h>xsnRUArz{#%8_qO*1h%>qkWM&J>Z;x&qOq8rfPmr$B{aQ3zGDP>E zegEd3b<fLxPaa@XV<R*)Z2azFzGibb-DvAPOMlOMCEQH$`OyUG_&kOgOIq(BumTZj zBX9UTcsJ9%kW|mUxVE_4YU^HaJLdZPoN&@e;OkIW(^2Zmexsu^)WdW5WD|QK-WH3D za?y9^>f~r=etb>(ODsifXe=tFv}mT+_lJ$8$%8`q(Yo06-pH&-;R;{s=iF1RLnFZu ziw=3*7~Ej?M<bE+4TaWQ*7N$!q7JPKt;9*WNmi~NE<(!;%VVhFwfCOFU3z|F?n-w+ zg-^-l)dQt_0LIAIA*GgesNQY$Ma$4VF6Bp&3)UMJ$W6+bvvuW7!cbvC*1If}R>Xi* z!vP(7HZ8yDr}_Kg^@SU`fq{Vl5L<2>M7i*&62MMWrZTDuAdojb2ox9s0^I?p0(U?l zHx3YJ&lm&}NCANeoqjf{2muYqpX8+_K+mv$*)4?$z!_90866kkugt&yQvJ3fzyXS@ ztb!!U8U_L8ONwC<L>~Z^oXbjlQ1_faT=Me8b$b#$ncZ-hC{Uo*CwNo#87)W>Pr|$s zUs=o9;G`AF&A{#QYta5t@nEi`&STS_&1nZhEY0Uql(_-T&9S+G+QqB)Xh>)Z>AW7C zSu2zYSgBzbis@iKQOa16dBv@pA-dF2ACW>3C_g_x37=UL1mfi6H0Dfw|AIQ?)r4+n zXedYO$G(99F-64@#GHnPIaN)~us_w7O5fc7!Y;vC@znnUfe6Xh;EDsk<BsxxYl4D; z;L$k#HLFBeF$BI6dqKT~g+vqr9E9`#r^Ol17<QiS@0&I%ph2cfCGZ2Rhi`eHU|0jT zG#oPU05O^vcnsiYhy>aH-@*UKHt34H1y$u{ybzPwR|X~{oUj^{^4~u{srY27Z^OSq zZi5&7GcFR&JAk5$`*rt-N!|N{%+DN9a98e?P!SsvhsZqYao|DQJCE6q+=QwiZ4hG| zlO#t9Cz2sMCd82BW`%BnSL@0H4jfp;NDuP*vW|yx#mBsHxfRo!T-oN1^aYA8Hp1ZQ zBlb=I!-p@g=dGzEEJOq};jt@T6aD$(avY-pa-nWvcv$45GJkjw{`*?VMSO-m=`fG= z*mmcM2yC2JG}}pDp<WjS9ic)BZ2SUs5wDA_rOL}*Z~iv-)@9r;cw75b`fM^h29622 zpXw&x=hoPyO!af@q4ygLmg09E(|t*&?9`*iatQbAab?M&##^cpJx24TZKrbP3mbzo zYf7^Z+FsQ6{g`%Y2#hH&S}fK$m7mfc803>O;s4aKNFA7eejvMX>qGzP!wY^dp6PWy z`bD-bDp`md-x#mYe+zkLd;jx;%Qs%KSZJ)!&T9S}Vv~vQtb$PO_Q|Qln_5(9e@d!& z!vA{5598jdo2fR2DTkZHa$$B0Bsv0{sjB|QdK3*m!t6SOU){Q&xozD4O~t_qJaf96 z<QU@*PRObk(vHtU4<Nx}O&b-rLnfj}4CcKZW#N8_wz)B@{1o7hyB})kNbvc=>4Tk1 zFM7+Bex02G1>#`9r!PX^j+h>rDZD=#8sP8eM-;rj+q@3-e6{e;VjnUt!2|Nd8+@lu z_k%W{d@>t1`|E}iTG&RpIXhSqva%o|0S+l{V)Y5nqm#sJ(K&+_p?_jfguAI1@Tjx} zaDBSL?Gtnq$|q6Zk_EW08{@QG`YM#vzNo9gnM)Zj%urMmfoSznkqL`zS5*7)uma@~ zM1|gLZL>Qb=m&09BtkA6$`6j=e;Rsg1sbOl7~b_7p$pSLXA-Pl1hUj1#vHRNU1bhQ zuGg^(*+VXrmKEvc>l|z|H#Y5EH+r{MDx&CT`Y~noY~_T%6fEqU@l<Dxxpf#^CzU(W z&6BucAQ9083GB=A@R<czbw7zA;CU6OMfIdAH5k(@R$(BPeDHLW)Ps-Onjm6B!1VAx zOV`?Q3-5LZ31ytwj&QkV&WwF$U4AKTSfxR`5T+#>O8bm)hQW*w?FcD*XK1yX@>6JR zFz%36RBX1S@q3X|zQx%`_!rNqwh=;co3lTRux=-PqwNCD0;7y3w_=Eo&NIIlx3#V0 zjSWQyIC>%Xiyq%nTlZo8lx|S%b@G%F;2U!0e|kE%9jK7qxgS$4vXnn`+kmtE&{vym z<Uw%}Vt8FpUhzOSzcBM_9f-5oQ;AB&=bZ-?MK~B#H<C<kyQyln@EBe`F$cVMv&*2o zA_ix*)!L{ww-GT87hC&+iRl|PJm}Lyxc<|-)kC!oVe8X<>VPJPaw5H_3*w`qs{Hl- zEVRzcSMj36XG2unE#%|+{pvfoY|z%TsJx;fk(w5{ou(W(D)HZCaS-*~M)x;mm>iy! z{vT2<I}&NmMw=kRYF4|J4csAu+es74`u%3sDfVehmv;6(<hPx0jsS2BPgXb2-kqpU zq9~r9oO#3fZyeJ~#XQva$(B{sVl&ABYhuB%Gl*zs6G1H84#x9~3Hm+=7={ci0iV{1 z8L&9SdWToLf6=w_XmR3~gPCe-N`N<8eA3m`dID#BHMSO$M!;yrqS)vU&{bo?aexl{ z&2DVt=sqScbUmN#WsWh;*NNzJ&l(mM-K*M``=~8=)Rd{10U?s+S4o!orW+LEpy@w} zcKD?O3V!h}6QWzlKg4M`#r7O@UWn1U{1A6;sc@k8)V+OK<V8JrlPtWL(D3ln^Z13K z0j{p2;$J2C*J{Iw#vwjU$Z4ZO9ktkKeiMlmxVqkB`i$=z+^XR#PS4REMJ)Ozu){&L zWQHV+qZgYiB~D7uXZzDrmAYy{)Jo!N+t>~PI>V);M|bZ3dA+8_+ZX<+XHMQ@A7ogp zi_Dm6FvB3jsO+@~TKFSk>o^_CXCGNEP+R#o0u0HiMj=}$Nuh%Dqj;OIqtAL)a#9W4 zjhmfXnmeqO0;xwY(!D)VXJfvKl5O(1lsXOS+Eh%cV^z(-T#S9}v`&f~NZ7kQVp*UF z!8$>)CJA6rLbNYuBSR9BZMX^52cfiH)B%Id>4PQQpRrl2Hx3atdNIhiB@LN~=Y8at zm35a}X=*OmYp%n6n^i;DSuq$8qI-K#mrw|Gz57N<t^A4@R+Q8Z-NZ)o_~|gu_D8N$ zqm9?Ky&UVDX6y6pqXht<FcIBf!lPU4Kn-TFk&jI{5;Mekbtg_EgMWzlY9hQ8^!Z;p z``C}59Mt1NsItDJ_&y;6TTEsYPhj;YWJ$uK4%BX_3wi5Jy<<Xm_A3I0Sg7NrUjM&^ zE>dT70F0uSmS0Mu)SUYr5Q*D6*unuGtG404(!~ZjjhG{wDay2g|McVLW)zf50FVbP z?vBT;?T*L0N*IYdM0q&X#r6U9=R0aR(<<Dz^bBtuxYB|kB!dX4C~*^7!58Dm7*Hx~ zMn9f$Ma?0BhCDdI8No{TepDeh*+%o_;x95EHM$S)R|rnYjPbH>a}27fFoOrbwhn*c zCbP2~2<1jFL<Z+rX@RsctQ9eE#+28q58l+|m39#yg1aD5rHE1eyj>fZML9i|Ufz2j zScZz;L!%JEvAo77DP2|!%ogN}<AIb~bCnjSs6(V`HmUVYn2(&bZ?9W<Eu}vMo0}*i zu{9R4vo$n%)Fj{%PDqo2K+=OhwV^d=UM?{bg0cqmh6qs@KShL{--x6tXbs2p21ow+ z@{CTUpkoK`q=Z+lGGzVhRL8J+|HYBa68ihQzn6nD-`uM{&5Uz0%&>^Sfjpnmj99N* zc&G~Cqwl|x1y&{_UqgHegxl-H?yL~l;8v^dPy0K9Qvw`xY7(Z{Qgx8g*yeMLq~KvM z=I*aYeh79=^~B)d1Z_wQVw()1f$iA>^W)%u9<)8<8G}55VUs;}2bWM%d|Shf9#>Rc zoNMk5a}*T{D=Z+3a#tmBp1OUz{fsPbsVpVP=qzce{I?1EvPa(IAlhB^#jg6eRcZp# z?rtk+0<Y0mN|23I6{JFP(=YwIhKBh>wBqW`i$8Tdz2;vY&-_LbS=nDa7~$TehOXNA zV5o*mRN7HCRy`*7#~{eGhxvNNYE=%0`xuHu21W9ch>U+*_{`<xBz>U4sNys(;<_ZG z^eP%eOF1#=_cHLK%po3sW{xG2;h+QuM+*L&!xy_pvKs%0C7n1q0?qdW54YUizQpi@ zx84P9E7jN-Bo_S>_Ca_~Csd~HtF=g9E-jIg*g@|?9ZC<yXQN-?IObv-o4p@ML8mew z35_EWgKr<wrEoogZrA@dGQ=5IFY5W*)|xah(Vp0!bQ(yjk1(A7<$2KTe(g&Le!CR- z_RF*7*PrOHvVvBEwr#atf;ULxC8UWaFZHl$OlbLpi*$`Nu&$1w7ft5%>uLn(W`~AH z-=tj--r^4cI3$p2D*{!(1=08mjsdF6BkjORd4>VqIkumTaY3<2AjCgPmK>qCdK4ii ztDmf?6d>^oZfdWAhvmT@W~#;__4`L43KpaVzQUbj?V=9jY{;7ci~-5h)$3?$&KOwG zKEWaOH_XxC0r2b#YH)A3RG^9EZyPXCdmUP!dTu<fc8^cW333jkCJ!;1%grz!n~C|i zu-X2I<ZovN_=-`<^<^qZyfwdhm1{EfTu%@R!P*a4<+E#&`}U=j4SEHkSh1M(2z<?= zU>-R9k;Q(Kle^NeVf?-PnAbEXtO8ohA-4HfGy$bi4NFbh>-rW!8ejx9mMabHWqnmm z<1)URi9R*Mtn3wwdG>>E2biy|vOIUgF614!Vn{{x_#GeY)*vWZsqu{#oqDW^<q5nI zy*VAty7JRJA#s|XSJC$qngoz#QP<nrch{Q2BHOhCGGuvuRrCCg{XCr!=YN#OMT{og zQC>RmscUFi6@E;yULS0IczT>lM5?%Uw0ZY@5aQp8fhybDzinue;n53aQjn^~0@WSe zE}s-GGKXF5@{IXi*9Mf4%^kCN7<9@enp@^LukCwS(lcD0^~Zh?2m^xjVN@3DPljix zQU&*Q!&-v<JKTzroOJ06*3^2NtcT}zgs{fE40;^W5fa}Rzoni{i`y!{O})#69>t13 zt&RzAU2juzaFy;w&PQi+@=$6V%k@(<9V;}R_D78p;oESZo8DF{ReU+hSHeHs{(u6~ z7rrb{TQR!&n#qN(Lzu&aGr_9Rd~&z<`dsr+kJE9wmDEB=TSLQ7SrBH0WutpY<GRoB z)yKGE1iiG%27>~?3<=K|vZQOs;M{$fdHW;FEQL93%&aOKAXfL^7oyfPfoX6pDbqzl zlxGJq_K^XTar}qxNPhkK>rn|{;5S%O#}9*G6Un4$DK8S;bT%Af+|g8vYQcRCy=z~` z)xo;s1+xc(E8*$2q%58rGM^oho9(@%5{j}+k=ug3;f0xe_=$VJ2ebUEEoRDhOjv9U z&a`Y*v82xN<aD0^NVKGyE7HvX9fv%|4&T#9XBeJu4TM??iF*eeo^QeY1AXagI`(NX zi+!bO+ov-lAeGy0Kl2zfd4<nu=;lv{7wjPFL24HBw9?`xB&5;G|Ho1c<(Ot!(_{F# z^c7!WGy1YnYb}4)Bljkxq)e&R+qM7_<M%#``e>Rx`G{r2Qj}HiV*Th5#bYNKa&AmQ zWzO=j3%g$Z=cvDp{PbYVqh1v3Hj4n4rgW6TG6lkL48x8FuLUis_jgZ!GA@f5aV_S1 zFfy#r4Ma|VT9>iKFIM@rV8_WZ=lW#|BOwuidmGl%L@8?lt7Q?ga>2DFsyWodt7cOh z9Y-E7^C@Nds_}rPrnA(K=Ahj-T~LQ1h)GYdhWu99yvJ5s^<lt3%O|Uv(ZYn&qdDIr zDiO9}eOIRwenT88_SZKjk%Ys3-k7eUz_L)g+`L{n`KSThL{1rSS)q13`p74w)@?-j zowvj9JTaDR>E@gen{>$GZX>;zGV5ITHI|}Ydb#2!F*9VGC}z_z#hOFrm0}d|`(Ul$ zpTLAR`@VaHA+r&|QW6dLK+pB8h@)Y>bEDV9+^zyLo~B-HM1_%=jy*X0ZPhPK<XsG% zIENTwkQ6*WWm}~cLj+-fCI#~(d|<!Tm4e7M+I|3QiK=7c-nb2wc9i#H6bk8duZVl^ zApU~|uV)*_b*Z#e3}aO(ue*7AOy^C{xAOh&9~2fk1mNNXA&}9}_u+6v(_1u~W4uIx z>RABOxA1D-A32Vb;OROI(=p%w<QDyLfZ4-C4pnsr*V%Rw|AX(vUpqug_al{!LyoIN z$LaHZAz+5;7>rtYa6vI-?6YCE0dOEl+Q;R->LOG7m1fz|SrnRu)f50F3&hOMrjNO1 zw2-!8AW9oY6GNc~Sko?<5Kl9&O^U;~8tkJW)+}%gvB0T%Gf0s_CZu&n<2y%J^a(<X zTbK)+KB0vdLZBlY%VBgWw8pY`EvO1vI>TmYEWED%xzfu>Z9&I=x|nd;&-3J9H$Z5B zbhm%Oz%^_J%nUCUjMkWPKjK;!zWuSfjK#C%c}94J6#kH14sO@Q)QG0GbFRrF?=;t? z0z;2;Tpf$1b%lp?S#EQhPK|!3=Jc`?DIRPJtS)l%Q0`(If82^$xCXqp9A*NJeDO1U z>*|3V4qcL0)Yi0zfS0hJx6D31?%XL*rc*ZEHbz(#@{rMTHgUGSuy?7Xak9I`b!&!? za;lP2sNAgZ$<LbBEJK?GVZ~+g9*%fV|MRcpL#EoACc5>pafIjys8@!s^yIYR<_!ye z8wIE{U8hV~gHC?@p)3AvG)ne9ufNsbL-re6n6s5F+~n-u^vl`n%^RIOUhO7sJ*}P- z-l+&im4C43kfHklmx9oSU$q!Pgvth5&CnRV;G(0u^;|$dDrT(Ls#s`PeDE6QOrWOj z?=6w{Zn%wGu1AUsyUvPMWGRQ9Mtm)STkY3!ARpRqFRQbehB?XEvzLeFvPA(9+-|x( zj`?g*+GkPiLj(^y_Dfdu8#xXiYe&-~0e2s5bvDwq^60xNC}}}n<>Liq!SRoEG1VT< z*%PE?$}>91eChh^V#V_fat9WkPKcy<_<eEHFFvmm8%5GDivDo^>d@sV<`-hHt2#2c zu(T0$1y986!-}GU#zsO`%e0($0$6MQSywav->M%Q9@PjD2{(MV>As)NOjyuz(Qdjs zyS1n{-Ae1uO#EWRb@BB_scOeRxs)Ezn`K(-dQs;mndWLka~YYl46XyQg_N9xgFtnj zOIS}Q*Z=$smLV>U28-2bIbH&Jpp|!fxma}5@a@!5sn)5$rI*J;N!7ApiSKT3?*yDN zu%>yGR-O%aeQdM#SH@jylL_c40~z2&eLK2zUhw8Bd>C|L3mw2bu$3gOk7TsO6zOd> zeNLKe$~m)%DVR5^F<bl=c`!)u*l<6b7;yXyi{$Q>EogD@X@ccmknboz=r}_Fj#VBY zWkakOLb}M8n*;eI^vJY(zG^~IsFfhqC!&K74=Nd%zppTAx~1XtPdkpt&v*$GqA}k2 z*EubJ_bRz^Gp8NxuJ$lN8i`3gw$W<ITGGHhW;lMwNjP!6TXU>}?n%2^hfH5qm6zRq zwiaab;P3BEXjFET^Qn+r5L(tVxq=y<dhBeOi-R$tne#=GK4_i(gkiaE8IQJDxKo0U z-$p}$=Ln--lq4d}6^9vY?DrNdmE~--^ufDa(LQ(_C^fjJZdk@e`nBC^rpT3M=@C>N z<3GvpwSSaRlAVdW%q7vU>4mLV-lvDq-I)@Kygh6jd9-l^pZK^V+P|-fU}aU%Z0TI< za*UwrHGEuzYMx(i<<6HOgp|-{9VvrPZF9uoDUEGpk=+)<iP|B!TJ7Ec5?}8VYmcqV zQCY5+9Kb+-rXex@K_JL-KFS&_RoHcc9@SuMVFZpn8lh$Kh#EYS?tUp4llboRkEr5m zV@W{m!&(L$tgI5t9-nEWVRJjXK?YEosU&xs=kvHJk#{C`^5PVsKrrY0Ho>_o^6M}q z?oT%ov|$R|Gy&ruek3*sw64eOVt+vb*zOVhabBV!ER6J&kL{9z7lSfwfjLc9^k1+L zmQ+d6f#MS^$vsBUAI5EKAp$m}D#~sP0+1q#3g2`lGpVYE3^F)r&v}|Z0XS)w2g=*d z`PW_uJN&OplXF0M_j&)$Cg(|IE)hCHQc<k`=6zIl`tV{moA%z|*W8~RuVrt#<fYid zP@Y%b$_(;M?K}Rzx`JF&?L#%AhI!q5rG<y;I&KcYJoF6C9nfPTyIV68Bw$>*j#BVI zO*h6)OFb_eDSOtAcl~4>EQc_pml#&qBQ0od5DXu6M9T&rnP;xpL|ofB&S_bb;FMOf zb=fojTH2{}$crgYcDE!PDCjf~-(oSj%cTz2i7}U_&5|-FNeF7#Uw^G1P5J!}I#OkC zfZ&d&eR_CiI<BZXMCw%um%QlEHFVozY7X9F`v52PkdAIWrSQHOExf-C9^~&*h<eQS zrV~l)y61Pe6dJegnpG<9ecjwiXBzI!a0Y#;r{FvzT9dgf6gB;PpM^AecI`ek*5pxD zl(YJisZAhmxlxU`MzK+a+@+)-tG;zOxpy9pc+c*M)6@HpX&Geo#0pXQ8KU}|5`xqU zcWft<odxB2AX@+7(2IPg;EPJuDEA=UvwyEIP(NSww4(X&dkYcg`;T#o7VZM_KgU7U z%dyMB+zsCTj*E~6BbKEpIPMWExkz$?W{oKK?;y~#r*-`8!D;e*f#J<UN^0AP@m}Q6 z=^g3~f#=?WRbg1%$Sf;D)M<6-dD4(xZAJP>3?mlH(FZa_g3rD^b9wm=gCk;scNWU= z-fASJ{$^&oW9({zYqk8IXZ>UqvH74ke9z~6=-8GkSYk~HDQFx$qXZ)f&!Tkp;71t9 z^uC;GwrLVzh2a%1`Ep`S0LMjKxuJgBZ=+F%eza#XmxAdtECuiwpcMDD%V`*nhYK7< zJ0C(ff(p7QKj$0)Aa$?kF}F#>7*<qSerp8Ls$~6L*C5@-fR4qxcw|kvk&1HnBSdM5 z-nl%pxB9I30vLBDE^Z?ohI@S~?(bC+#(j%F%$BQ0uC>&TUanLIM8;Q~-~60qy4?qG z)83`h(~KjmN&sT`bfH$-eMF>VQR{P<WiiNj`MYfxT)S%GTXBZ@<)_{)KLbz3H@^YB z38((=r)*Z!-2TyLe;7i3aI3iRIfzMSh802oBJZ~F3NZ}FrunA-d#!zqSdIQ!FQA4} zEUVtgK$-MkKF@H5Wf8*d>MV-p_05QXodCUAfV6?KLIm^%z{L1KV-r(@cG7cz1t>qx zJ8Ti5$ebIA5U|`|xgjJX%otsbc=OsySQ_16u7Al3q-8efPLi5E#|!~0*FQ+hzDe}I zV5b3e*R*<C)2~=!3ji&ps0Nni?fZ{FPEG{Sgf7r{KCC73*;Qu#1s~{RD#s+R-<iU+ zZDdkvp4-uWz@z*;U;0x58X5~wXLdEFpmWSP-pvWY%APIOMvJ*E`+e2p)~kv{p%<XQ zvw@{B05;i935M{&FSU9kWU|{jkhdCIt&hXdRHD{VjIQ*Pb?}qQ?UVe<0Rj>MY)tyV zm|)qqyX1BGaAW;mJ{E;MJAg!`1Py@Z7uGGnLpLY@z`P06aQ4S#e&wP@ynx5~4PISF z!^gnT7ZO-1$5+Q?|K#$9^Oje9Lh5R2nF+XArmM>}5Drvtc&R-Nt0f?K>o7NMa#;V& z^$dl4j=c&VHQMp8A8FAzGo)L2e(<tU+fRwISb-J0e*cAOudU#$7bD$BlhYkr&*Jky z8~|G81KBN|``JbLeS}#hK4rgv#AYBQwa%K*(CBed5DTo7%Hh&Gt#({o$uspP%V+z` z1+W~(!}fy&EOsOoU=99`hc1uXfC;r5-2M%&+Ho=2{T_Eac4JAMvhlDx7-G-^1G=!R zbEkHMFAhLH4ZNlz93aFy%fET^=J&?NhJ=}VHv>CceN<~#)W!J4*a}4!TX|b_qeWD| zELepNbvH#{COY3oH+Xlk?HFlXQHC($v46z-S4ss9OevLl093gDhjbc6giFNqfB@1N zSNuo47~&asrIZvd*&%U|zJD923%ZRX;V_pLw1?eqs}hK9`mw*o55$J`kd9$JQLPU` z0%@;$INV>s$QM^kG>%Vd)Pda!5DTQ=-1Ddaxha+=4kvY>3(BT5)1e0MB~)24#K7kH zB@$7kJuess9rPP+2a^gbkZ~TB_CJ@~F^fA%w9bM)hT=Kl1(WyzMhG{-&Wh}sUX8ta z=f)>b?WV&TjHk~MsIKuH#TdzZCaw**^{<44JV%tp>lvssBETVzi&Qk61KHpWYh|Y~ z+I`YVb`Ucn2gQ42@B{`47hnjPkKtCRJ;II{Z9eBQYfDJxGP@-o07?)!RxyN4h4}D1 zN*3sbUvo>MTTu`X&DdcXWEL~~HGO9&!dMUEw(3t@QzgOsJ+~@={hg@B6C+{%)|K)N znJB!d7!{<fd+_^!rN;D`fZ^qjDT#YB(|O`N?uMJIR-z31_ds;?u~0F9E2@{J0J{^P zh2;QUkf%~1;YW_&`1dBOO*><J^CZOpDF}xqIJF|2SbV)!MYb;fdkd0-TSQ<yp#n3c zV(m7+y8Dxb&WM|PEOBiTs?MX2whL#=4gS8!GImcUhz6|VaYcmiUo0|*oWBH_cde_a zqTTfnvdL6?I^ji$#})Mn`z1$-cRkpGjw>E4HEVFC=%y5E?-{?Sr+rw`kyTQIFGB1@ zq#|!?q#l&L#wiEqVyFjUbG>QX$@KJ?@u5;kno-NNdZ9BvU{3cGT5^@UN)x6WINpK} z-zV`~&{m0&o?du1LX(YlNqomgzTFH102_xE)UBL0%NcHrU@7IPj7V2Yb1NZ>Aywsy z;v+kxpkqhsUra0oU7rH6_q%WZd>eJgl&7v8PC+V~4<QNsekAv#t~Yno66aY-v%wdR zT}fcP7&8~pQAg7%$FVU$6%EowF7nY5LY51uF+&0o1|lmLOyZV;R*_m}-xjL%v|ANo zfGQ*evCGEDrK0sfyMrl|H{=4^nAG+Y0N@0`S8hg>TKRLQ<nogrN|TZAS!c>#SXO+# zAP<!ZL{N9Hj*R_WN{|>77y!8_#0~J;d7hCLB+tR1myD$#l>5&@?dm{!^Zq2<TL@fk zUfG9O)NW=`gNu{n(jUt0-zL1%VLKx2!}{2ds>h=cH;eawqwfh?3#0KirnP6FpSs&K zCLY97b;7I|P(i=fCH#wJ`MQKTPKA7GCOZ<7WMqkj1mF@JIX`W|yI4Z9AQ6pfQdM^U zA;SkE4EUY<f~Vj}QtnCwcO$y_Y!eB2q=m*v6Z!8|5&W+ujwuN3y5s`mBYX1U-+eo5 znj`@gjVnqZ4hL~_XcdlHb~q|0Y4E016yU!+vU(3JftaLsIZB#;9ak`7Qq!mQJt*sZ z&kOJg^_NJ4d+BKWT<s7ED@y_JkK)0-`jv;_BwbM9rgOnk;;!YO29#GbXQK02;k7!+ z>o5aj31FGsnbWyGNk*F1_6q%)v+lhTW42=ux>*RDyM1yG)&51(FZQ7E?#Fv3`|wSw zU#w!=T#YChQzZAb%`wK$7K9Fi!`bO-%z)CciUVS6rrb}aXkTF$COV|cI2%sa)PFpA zkC9~s(C>ex?yQ3G)MI747|@w>Gk)^^sp>$k)eQfmgb_CK9t*K79*{{Y{dkDd?K{#4 zu}lWh^Z*$kKX<8b60wN<{V#1tU+u6P`<*|F?@qtxeR7>}YOdAr|ClZq2ypBZ#6KGD z*1kARb!)oeAQ2woR^$r@OB26ouqyl^l4iw_Gbkz8mJ)k2^lQD5K~|oCmfx9V*b)ZY z4RVQ%Q>e_R-hIjPOk>Y}r8=$XfiI9H>mi~AG-pty!G+;ZOn#;gvM06>FMf`_#3&Qg zj1T#Hp2`w9)yXh}@*aqmcsiP-y#OfNFMW&!C{ryn9R;`GvRCNQLX9jkN+S;pNtYp@ zU_CfS(9l;rD_30vWigp+ytK7zp#G=e^Q~gF{OiU8Fd0!+gS{JI!zTa+U6s!Kc*`_z z&(XlbeH4$q4~IPVSR%XOsi8>?rZRP?!IgLs&OXToY4z@hXxzha<#8A>mZpXV<<yAY z=i%Ql;womtxhJ}z@99dE_c-$E_WK+f$KS)E28P5>PLb3aro%`u6IcgJ_(eFv@+gee za{#!iJs4ZF0<N62T?Y7pVVe>M^|Yrw>42kvTR((e7$@w}Z{On#;|oXv>|x|2mIxQE z3&3d$J>3P54)ODxm{{TW!z#if7?*0x3rQTf)&W>E7Jv^=Jhq&n&65h#^n*aJytr1j z&hC+8bgI|Nj<}yx3L_Iiv<Rns>b3a7g^1$ii0!u@Be3rcB2cN{?#0+X`N9f$Kf{`X zsm=jd>ejrNB$+hzfat3Lm{+%Mr*{cZ-bea^qZpptOf9}scN?8-ot8aZo{wbCn<dH^ zJj!mu5DBI4lNi*;LRh2GY`NHP*Al~H<*DnI_C9@b$yZcuq<Q{sqom#<N$Y4Fz758q zv^IV=AyMirQSxnZ91g3e(Vd@I>Xr+{)|JG;k{de*A|Aneo7i|P8<3m~OL+RkDva|* zc)wZ6$!b&wz@C3#???Uc|G-0?6Yl^JzkijgVD{*%dVnoForTeadr2{F&zF%*6`9^z z!#_~D?2UY{4Q;Xv5td>{y~@5HZ$FV{77dVj)~&BsJeea0Vu=LgtX%Z-X$(#}166>o z&`Z>aM5#>TZ?W!#pEZ^7KTw0;>6}p|S`0~%EiJy-E%<vSs0~a+4ZzI)!~Ou}|25-y zcmAhO$+FI+o$k1j?Z@qyhPk8}zB~=MFv#28*0ZuZ7{qjHQGoIM<RE}>Bt3%qtK>h_ zmJ}{)OsY5a?S7(e<DllJml9eNX7(0f2Dg0@0V8Ke!m&iV=f0q>bc8txC~k(Ylhvpd zW^#o~HZR{1+r-&X&);{0$16(0pCS790DrPoD>*pCY&cijT-$5!G*tv+ne%$GGnfgA zWjwE^Jf|k*IW`1Z;C5iM-$SY&4fDorBl_A#ByX&p&P=#Fecp*b>ojp!K9<v5k1z>@ zxp2_|DJUO9udc%JN>G5#KI9%|Mcs=rY5Wo+wj~{aRvk+^cANRdST`a5Jo%NE&E7XE z{%XusnRc`;JP{|#leuNpQ)}82Gma*j4>TOAZvGjIW~y!rCLHJiGx-cdi)o%C+<N~} zQcj^s8bxJ{6o*?M<KUZh;^3nim^<tlLD_}FH?yn1G)}2j{|_$g#QjyEI#LzjE!B`c zQ<%Y^nuoK7FiixumPPJM(a9i>JztF=R>*-c=|wL+iL}DAK_Fm>`7zUXbEX|@<xXr9 z0Iv>!zHw=As=E#&$RJC-=*J>Lo`2s>+QGO|pd1)ig^eo|L`%{9>+{r0S_sk$O=?z2 z#DbWAO!s`~tkyqn-7Qy3simZ#ks;1u1d%bjPij4Umw@&q!WAIMWS~)?)%kvJ@}KMl zR39K_Rq_myT327Di||&gTvQUjcv<5HRAL#L_-C*RFgl$6c|O;CD_O*og*;9Ux8SEo zEq)wHNI9#n1zW|U{c6SI<uafAS8%kITc8PNn%}?DuKSuowi%{s%x7FOiHm(d{%Jx8 z(;duE!1s}5Ia0SU&_Am8Il2y}P{G2$>GJ&c&iR~N<!6_eSx_FvlI{GJOoSDJGEj3S z{!%&(WlI*l)dpDTS<zcPD6G7I;rlE@>mz2i*8Dq|U!c{G!ep3q;m25MaU<wM>lf3F z1$-dD8$I5HbNh>@bGv&FPX_oNQ;A-|LY$$Yi0I*7k%z{1nJ3dBjM{Z^>myf*g1&_R zjnKA3uUYir+~Dh=z?q0E!ENo|?uj#VC5Wr|UDoFcq5-a;{}$-PSAxm!>xtkP5t?@v znQb@ViWXr${x5tyv)+6X4Zt~)`c&?r=PYtx#Jax{(8;Bt;OCg`t<(q$+#9{<k6ENZ z`T1BO8lW-1*!nM$kKs&=+!%UjRlYLrG9}cAk>f}sEQhmdjv^Kq|JQTh&}j^872`T& zygn96se4|1`B)_>dPD*AWB>#T-?M2wu4v>0c72`!Sezkztm&bH#+Us$(cC*tNSq&J zZ^}oG3yOpZ4ChC-&$?cN8nH)p^TitS%U&GzM`~(eXHw>nEWegKMX%A)LZ$><pW6{) z{~X#0!fK!toC!^^0U@O8916(fmDfoj&nFQl0xEJ9&BXTXPdLA@1}&(5)1(>qJxoKT z^jW)3{nzifIHd+?V(tZDhL8EMD5aj-!0eyO0GGLU<NtKlG9NyYW@{%n#F7CT#;qV# zoO>DyV>~<#dA*s6UpFg#a0r~wMdNfeO`gn}+}zsHJUr6(SR~w^Z1n1f`#_vrp{U~` zU)eesYHhFE%&-<~8qPL1&nG>vYhelkEIhg&y9J2a0DcM(8#a#xvBPJ%6R=q*aD*0l z+mCa)+<?}l_6LGy?;V%UTfSIwCuM~8$eI?;p7{A{rdYzXLN%qg^m%{yj$;BewicHx z^#O80<%!z`7X1a!cP#*B;M(k=*%fId6U2zSCi=N?Cv9j2arKCe|0QTQT+^T2^N~Lg z?L7%;dy3WBV6W5*R?d3B>@HbpoOqxl_9w4;$VCaMPQ(af`|n)z6~_r-3A#4znr}L- z4>)r*sM<9zh&Zw@7czx*xi9wc1KN>5o-It!PB=P-dcTES8Y<Rk9kv#{n}ro`iQnxE zmA11A5u@zC-A1p&h8J2nDc%{D8^ClifY8~3>57X0@jwx`r?9!8AY_>qjWverkOfcz z^RxC3W88rF;!Xh;ay@s!_s#gHk-k^EkK6y7JBj}#3q$5Z&tlukpPe*Np8SGWDa^G{ zvY=zJT56$a<fPR4va^eY1sI1bK5=@6Ez_9YX81(AsRCrii=WY}A&<OH>(OoEShe<g z(3KJaSDAH1rPwQTs|q?FYwO^*)#Ub9mLrHU<Ou#Za727B->_LEovt_g#f_V+OX-_! z=VJo0u95I|f26ekO?Tv$N-FNW#*{EjIlbLC+`WbcFHv?~3r;$^49$$sFwTN?`d&(f z7>twK{et%<YCBV>uoAF4JLLXk_0Qz9r|Yho<UOFaSNt!z{zd?nyFcG;kd~#_`<X9l zwQ4}CRxh8L<s&c8uI+bL-^N6X2ACA{L$ns65u#GMe7=OT#hM*cJ*8UN`e03X0YiPb zz&%NZf{?`*>fIViE|?MvhVuyt25r`_4)>#7#2oHyffT{Uq-#-*A+!n3kFHTl{p@q8 zkuevolA~OAFEw4y?sPdlQS0;kI3j0qo#@}=#0Q!qDV1B^G64XM>ZVdTkRJH}&E${S ziSs%>mKL;n?@tYk<uTB!84|i(WF|2mf(cmU{0%MSSx3L#NIcY8+Du%vq+bA%hn%58 zRms%nc^?`qky$&>!KRbTX0A=Rp4_h@#h!ojN&js+a9_V7e5<g`^&)%u!;-;QlzC2~ zc|v_q;L5RD(X>4lN1daQBg>2MFe7hZs{|I1Df~_V+js%$e>xwa{$ta!)%l$OA`yFw zt9X;|(jS0N-4Klx;<VWabAOqgtI5EB;BNaB*<o*i@MLnfRHvGPnCA?ZqnQC-ivWn= zE5Me4)Y(EK(e-wlgz<xBKpkQ#A~HxT{RPZb-!_kx4HUK{tq(3p3?H8E2cO2?5Vc$u z_ZGV!tbFo?F^a=C+J=qNq`Qm-vXeJA$Pa0RK)2AFqerRP=YOg_^caW;169>ybA?*- z*4IgrSbpknVcZ@}(tblJ`Q4RVB%SGb?SrAM1+O1qnF;pBVg8uW?7J>`KJfW57$OmQ z9IO;W;Na9U);{|WKmYe$go&D8S2WJe<ldoT(`&f{n855T)xfAkK2a@d_OcWXlY%m! zD!fLa6iO2DcCE87KIp&dK(DCC<Ueg90li@v;(|WiEu}u*W4Xm<7pA4S9({|nhwUQi zi_~EN_9Fa?K3=A+z1tAY+XK?;jJ?@q7*iX+U??=FUV(cwf$r~Ua07JV=bhguo@E2u zdGc>-#`TQItmyWU$a<hLr9Vj6FR+5`EevVpq-T|Qx@>mTz%sudObY&Qi4F_texQEu ze70p`6ae*b6PBjq!IWW#K{v29H+g5#ur1_u+V|DLzdQ)pW?vvDm5bdA0z(6e!1e*R z_VnKRG=MWKp?qw7PN-N;YqSfTqQ$UkWx#&UtgDYOgK0-VR?-lKSs(JF+onXbmfiqt zT{)&u+v$I^rlzJlFXPit99L5AUDNc-D)sg&r3g<y0!E8SHy`!b8^@aybaIcCB?h<k z9xMfWOpY4emZg0++l4Aj>*krdFP<>`I$TD2wB-Wh-_y{=ZYDKdD%4sWH$r@{I-{kj zo}rDW7#%I5Ygf_&S&$_RDvi_wrdpz#p#tAqn2M}XRnm8Js`boyzR7w?xA$u|!O@00 z?%#+4Y$qhs2rfb5Im+%0pN$vl+=|`-<S5VO-8XE)1$Ygn;g`kVQ><*XbOF&jBrYiw zy-SpNh^wBvnsMy2Qf>?YMr)+7u**`N6S>)o;lf6@XGo&AehEqP14^uXc0>7Zj?te0 zdEfkoqX7qyx5~%UQWf+j6W);Q(hNu11g>4*=ea*90BFt;Eh-WV#JBRGFR3fIHw74> z^U!@K&y51$=12c`iQK06-pSSnhi4N&w$XB_dTC{~wXn`YcjpD|4(4`we6D<FH&84_ zGmoQ8dlenk1>zH295wt!?ioe19)AGG(=fkvu$JC8&R5-ZX(pc{$#^9;zt+P{QH~tQ zVASaL8^SR5Uy?TPs^2Pb=LM}`U=<2fXY=>AS$wd?cq_ymFGFZ;IE8>wt2?`v)Ig|z z;$v&R>CidPVSqAQ?zgP3)41T&js$i5yqfdQ#ju1-z%|$YaDH2ttSlZNBR5V`72t~a z`eA!*xG4L`9*42AGSjwYmlLdDyS8AC{tT<MqX7s-Z?p}ooSuI8bSr!DO~d5nGZ;oS zyj!h=anHn>8U{IjcTd-Hn+tV(24F9hGMZEGj60d351ej$20Vfu1SFz2z_n**S(uP} zMoRYef6H}VOsgAk%Tk+uKo`*gw0Ycljtv(&csgL4+KBGn()4nwg7`C*2N@8>&<~o& zpEiX%)Ao>N(p=*UBzf9ib@$b_d+y}KGKFEhn>AFgIZ$7SsHp);n##9noF*L~7eZl_ z`3Q_MPvLNpwv8<rr)yX`LMHJH1vugOaBsfps}wF^*V#Lh+%?$x(C7@>=EE)%!ArSI zg)!IUlWV+0C@(>R9(9g-`BjIVAs&40g1=1=vL_`4f!%z78C@F?*AtWi_sbEaVv#2% z^H+$8Ssk}sXGrI{#&uXGY;YI273!B>9?Zf0NQ5ImkITSh(GlZ<5$(GoK*k$Nq5k-W z)jX*~%y?aDHIf}vQNMZUE0Q&_kA#Dh>xU{ZvTL{C^#XpZna^q2tIg;cZH)Vn&am;o ze+Og0ih=g1;eflDdiRND0-2Vp+JM-MH}DqNR_upOlbtQReVX+Q3b+RdrsY~Zxz*Je zWN>Ujj`;kZRVvrKtQDP~9sII^a+tLX%GmuMWPHKH8~59{DJZsq!Q+Yw`{rh^jfek= zJN<cV*eGbl)2?gBvQ>mJZBCP2t>cPv$q|E6nRNaJzP6l6%Pxquy~0F70@%BGm;kR0 z6Ht@>N2>ncB+jDmLX9RIN%}r7vRFz3*;E)?lKpmC?Boue0kw60&E|v_c&p6CxGw>P z?!Hh1^NE9ve|jjeJ=a(-2mg^1=gn`sc3`tDpv_Ju4Goh9{`67xQMayDR#rCd@9z)q zk@cv@i9!O&<z~cr!f0{dx*f!)>uB<q>6Dfj@_}q`_e@*6!4o*UTikm%2yBqI@8}(s zVcLC0sQZsZ{v3Jrj^l9mh)=Pq2n{3;eSLCmJ9YqjXk&WhXBSD1gqcJhiuqgbQQ7tv z9W9vx)ztuSMT#8)j+%z^V`e={qOruw=%X3A)b-24R;&E(myt_MQi8H?hoauT3&+*; zMPCK9($^5rQ5M;SXh2B0{#o-T4Ni(04D4G7?hnQU+-?aaQ63lg`#&F}0kmFU%oWl% zDw|bVK>0wF5Nz9FtAf)Ogb)JPfzz}9Po<?V`wCF?CcL%~`XbzEWEKFT+<EFLD6U+Z zSaFmSojb*3G2A`S1j)}zX7<fDcX$~Im9R+{We(!PTyo<dfg=3ibMtH;xA3FgH=W_^ zji3l>q+1@49QK1q8hk}EGVt}(gX4GmbmseJP}`zKj5&N9A-|%taX_`0q2rOKFEP5E z)~g%6r$8JB9~?#4ms1g6N2MQDZnlF(j4N3XCZfY61*tcF#8~jNoOE7)AXYp`L*Mm2 z-S3CSK0I!%3^!8m6AoUruN=>8;OE?%#x36$7-D%qRR3^32?XO!osAkf^j%$Ke#PAc ziBn|sl<1HBWXfPfpNLLhfp`^kn2V#S1K;YLW%Ho7lcFUY7QPcYPk25l+)U!kYqa_a zHyrBfQu2XAZScFj9vb8MzO3ZqkF^Vyhr5%}J71Y&J!BFi`6n+9VDIqpN3~;*F9((m z#(u4Ay$IShYn~5+L!t;mSpzQ;lI;H6#w)A5<Y?-g41oI!#iLIO6~P{n=8#$C`!NxB zxygs_k6@*MiVUp`u^<o<w^6X@N<O6uSusARUdr}tGZ8xpn@*Vj>Z%#m87%1aN|sph zBK6gS;y{2!j<fX-GNUBYGuX#br*55xqai2xM#JRn7b0!_$FCngFkEm+Z{(60o6$b4 zq`)itIaz*B7TFMMnt71wbksj1g@cBl3}qLA@)`>%{ly284@+uORowfkO56OasLX%m zz#$p&(asY#MFI~`AgvM&<ou}}hq+rlx?)5DU^D}l6-KY3goj6my&Uyc(cA0r`gWVc z(==~rC(;kHO}I6{qfFH6R~p5*Vw{K-9B}s$6i|rDyzbzF_+n-(q=pkyPDr&d6-T4I z2QVWze`bb4dmrx3_XjJ?t%_ECe;P7r2luQ@Lg-^&V;Oo)n<A40Ky_UppF#qlUwW{} ziL3lJr0>Og!EaEA-ml+{d3K79fzOA4X<Ie=<h8W~e3TVnB*x|23U%s5O(sr-uc+na zvSDjm-NnKz<{EREH&G6otUlqDe{eC1>N!mEY^JAh{aR-WA7r0;Ba(Js-bZ?QcK=?p zZ-1CP79{~=jr3q(!Q}L7=-34g8!~*9CmY<(%hw#0ivH&)LBeo>lMBXuTzFo2a$avC zknw__sO?d7l<m0}LVr&65{N@fuD3VZzY0+?N{u#tPze*4QNl)mlM*7t8kL+>QljJZ z%oAG9qrEuq;M#F&k>NKiRtetnc?cPd+6sd#>sxRWMlTSC+}oXBoVlH0L$d+^##%QD zk?3?DJ-F!?OqMl~@S#(pYLz}8f>&^r0)oI#dIES1D*t_E#(!U|c6<v3<so8IAgqq% zRAntR4L@H!%+2%^5XaHmR=Y3f!z9_i2~6{VR`~4&-w)SY+sB;2tAiyy73bf+PM^M0 zY>D_`y&NQSkEVK|ce{^@dRIpgCdUpuD6XLEJ+0E}MY$<?2a%u#iAuv7dYy+7s-UYU zR`t8sxA9&nMy{OA)oCqf^XG*#w!cLG%-}>Fam1p*cGok0%85XXlY2|EJa(QR0PU(l zWx^0S|2Xx>Zw$5H*dGZm=%u#-dz63=|CX>f76Rx)j_v*t7yK?gEWLiyM&+QHPuRHW zXIiM}l{4D)I8piG=gu>5Z6Ex2!v;BDF1c|%w47_S#eI3O5>*@|x)xz5Kfd}|;X2~7 z>`yJEiw6C@P7OO5_0o`U&7&a)VRSFSZj{6EpST{;9Bctp>wIlA4jOkgWB&?|Z9cE- z;|j$OI`$;XewQW>`Zol3M8x#bf`rYjPkgNb9xv_cbjkR?fBXB~`n-9HE3H>;D>8j` z80X#kqdzHO$7)oj*f*|pW~6GK;x>*G>`A`<TGt}yuw@_#o@k|icK{6>xvcbm)%M=e za7SOi@QhJL?=jJdE*KFd%BVp^Z&89tNC?rAC{f0k(IZ-v6r#6i(YsNC2#Fds7({QQ zi+aC)&vT!9-*>I|&vz|rS;jhL&e`Xjy+3>J&sMV%zQ+2R$Qa!g{&dTuEc%_f=u7sg z(4asP3zr{YsG*A~azg>y&WIPgt$~9=iK4`P76!_2HBZOPwPjUM@8<Rjn26qUY`z(X z?A$Aw6d_Af?gP>~`(Iuw5GkpiH1QiWOD08`bhrTnnd`tos{-ut`GE7|#Sn&e82_S? z2TGJE!VglR1HDzFgmX(u(r10oFe)_4R^&3%Dzd6v9}uCx$ni3$lCY&s3?3IR{Y;Gn zW3HPRv<lu5Rq=@MxkyXypP&blDqm->J|uR0;2K5V7TM)Y*V0zqlo-{|awC24@ab*w zpFa|s#SQ$;@fLf7azcwQ3kk2?fPB!neM=~fQoo=saPexr<4@QU)%1%8(QhP`uPJXE z)bCH`TO<g7AQuUK#xQb|=U#W;`9U927b)KywwmxtH`h!u@CC2+-T~)fdYO4`Uco~| zw!md(X8Tn5Y~MfX&yKneWpY0G)!otjE9)dMW$^MT&--{npPudAgz&C+R!?~3wxQ{% z(T)L`CQaeLJbBZ@9wKsmU20tQ<R8;tx)IPkH$141|Ap%_b&sVOFpVY4Fl9=mE`?6m zBGMYp8hY{t<N6~$(XPI1hp@a};&Nk9_*X*$)mP<`7j>`u;HMWiGwjRZ5Eqx+X^5te z=XL3_m|yExwqJ^WY57=(m(i3+3PydiC-ECYH2KZJ0>^vztdidsJFXE+OXcuY(q2~X zY~8Ils1az5>kqr`Ht9O#mnmiPBb`Rw@!sNkuj4&eH>-WafFS8OH$tXCQf7BtY%c@r z@sFdVaD4Qa%nw?1eHGGEH8LFKVUESQ6)$^fQXkwmnch390v-XCL#f)x^C!~fft;*C z$-t?3k+}*zns8p*yC#k%PocT^ynEy!{`mBqFJ}RW;0N*24Jz0Ey?3}P+FzlJ*w;F& z&F6ZO-5rC}d5c-4vdSAOd~clZutv;})j^(<(jcXRl(Aw~yEjjtZ~AY%V|K4fwCr(@ zQmo|Nyg@tUTP}&?37?4$Mv``=`+jPe1M*X-3JcE{!zU1b-aTD0UE5vQU7Wj>2qf|~ zy4F$M9?gFxo9USpqBu+=CPvY$S<iFnC|eGstQwe{zH{fYii&@O<Q^RH-Xw=x`ECF6 z|FP}anQ=<Cy7V|VUa*#EC<QltFnS=PFv=3}=7v^m+p>YG^9zPsx1=QPHEDjq;=q9z z&ZH#&ukQWgBX?dM?}V3p9hEPCl6~!+fPvGqqg~R1`>NBX3Xdf*2K5ucI2Lv1H^YD4 z*5+!W=U7o;Q+9PnZqK+mt_RPC2B+t-a{A<`zIZtmmY2;(VC?M}a#VHpX}=#)0l_V+ zo!Gu?;sMg1o!9&mDGNE?&{YJW-k(b!)C*BQG_c(bZbdX&)g2{naphRQsRm`!4e4b} zgS+PWFEO+0;cB_)S&8{LE0W53E>_l!g31Y=lk0!Pxtv`Ai=rM<T`eu=nZ-)gI!3}~ z^%9^eIE(nD_eDV%J5n9zs8Pv1?aM-J+w1hS(PK%i;h9A1>b9O!SlH7;9L%`<<WH;o zpmS^Qu%u{QjKyWsj*6#D4jNM{DWnR=E^kX+a#f54<4?aG{WguH?l0DZqMoW@V+LG$ zV!3{jPMj&F#s1nhzpp*gX)M8@(je(oz&4HsLqK5o3PT1Ru@DpbJIuM*t!|p;w%i)t z^Ygc|B&|V1cZJ`*8YSlUrp>L*sqwUfEr!!7oH=Y4kF`G}oJGbs<~0dT@tuCc2?Tvi z4_#tY-ld8rqqdZ5e*dsV+(7Gk)=^^5a2q7k*LM<#iEr|A_QaFLHIPbZE^zX`f%Mjs z#LYaIv8gW1_`y0}%J)^A*5TM?cZdSDnfwFw5}=gohTMNWl``MzH<uhbCG+Y-lf#o| z+<~DPTctUI5#=&4j%3dzWZux1_X4UvO|AHc*Q9j~gKhpbPHY5+U;7%qtkmk(uqu-5 zpz~NHE$Z1mYo4^z`_YUi&ea1SNwKExtk;{^>?JWu+J9viHd=RqcfKyq?{UbD?MNdu zasf9mBdYSXMe#--;_oKa3s1kY*!oAwi#3m|@613GNqwBtf%I7M0waDNo03KnSai8m zy8qk<_fp(HbMMnMA9${2TOunzaEE-lwfVw(wz(Gg<R|cn$@<9if4fKHu0FH9pD%GK z<A<A1db83{4AM=KS>$v6tZ~P@?ukA3uRX4hzsWOg;6nk2*|(2f+H`+DIaN!Z?Cu*O z7s(qc_+Z5X6=E3CEg8O*tJwo|3~X+>Xj#h;{pPE8@3|!`@ptijs1J1PJ|Vy>mX)bM z0z2*PO|kRc(eU0G>DfrQFCZ0aMGqBV(k(QCCuw$?R)EyqN63;zKNYh+ie7D!*%rCx zk#$06A8o_D`I4VrkgJ==oUD>JB(9F$<*lNE!^EfUzT(OW0F{AzP4ZE(EAkPdK)J?| zlmd#7*Rirj`|5O{c;QDr9Li$f<p{mODYc1Acber-buZBC1X=v-Yl+gx!}^4Xg=rqC z!OE~Bfsi<T9wsIxix)3mSh0h6M~|;JE)N?#P&_@)6BDQfXa;P<N&Ur|+yq+{>*k}b zkC(fOnwL$ZoBfZ}458XOw>r#y9?E;Fg6yeuk{D3wTxHA6G%39?ebKKh3`V(cynOGq zlMpHZTqP2?vmp42NroAJyP*7zNzb)2KLTB8x>xu>+wc{gNJFj#8(B7e*LY}B64|>< z!@!5HSD;-nci1Sva>p*Y^O;%~>6z}cGw=^o?_agOmUFR?Z?ff*as3l9-FSrGQNDzD zd3if|IY;QC)g1CMZ(3V&XR{(Sny>jEaePZ~WYOuxtKIDc58r(!V6VMo*mSWiO9&^s z0IAYt7zwmL-wIt@V;r}5cy{)8XMyYOp%;+Hr}kK{j}+GEvu*n?_D_CLzHy=Fua(U4 zhD|6+csBBWrJ((03R~QyKRmV6-eUhRukTz)hwYo)C}Srx9Vb(r{q-rz!n~OQCu!K7 z4R&~2sLj-6_#`RY`|laXV5<_Edy(>{iDqCro+t#A0xikk7kK*U;V8^Bkqe{NV`yzn zefJ9yMF~Y=v)@9r)bsJG)laWMS0Epqn%Xx9W^((DHLY}us*~d#3fL<m@iZAS))E@8 zns)_7<ykc~6y925#{SfrI9qBtOB3qYUP###Bz%gpc8YwxCtJ>PnP^W6N&sU>k@|2W za@-2GoASLegU43=f@i0DS%_^q2q)CO_^NHrLxrhX?kJVA{Nj^@Cq5-msC?twaL}bx zf{9;SYC@R0nZJ?cYiQnI9)lQ|_vmbP;Lj_4*n;65Kg_H;=C{9(J7%`5HKTYIKfG9m z|M-a$V^tEIF#sr6DsM3od+`nqFw`hA0>#yY0%1S`QE*m0I;I1HUlUy*CrAgXjm|Jt zHxxn+xMUi;7}+^?&UKi<KP2Ff{EbXZ$ZC5b-L-cuDi2+vxs<OVQYZrxG!o6&zkT>X z;oGENkZ9#pZT0-m{^Ia|FPy{UTdfu+CpgdDzvNB_&2am!pL8#sGY9griXTh7BByBm z5+ZafRq5%?SGWr{{UdJSW4b2e4m~|yksmQ_4kK;I0d%B%1VZ_JlxoosHj;{p(^m;K zzP3*I_t79e!=U}|8}Sh1OicHBn-4EuF#tBo*gcTH4U+4XoiA)OUq}{2bj?hE^7!jP z(!?pq-B4comC(I9F|n+5+CUE&Fy*`gkm$;xaAY+l4B^b=>_V$vGN@Lv--?8{uD?*H z8!>z~LU)eJ$sc`$9K!89TNHyOph$1CDvii1WoT=@;8j--gcOfjt-M005VB?pTep-N zzXo0MjBk4HZ>2|eFgJQmiH&uvuF-~iKm`rh)%6y6<eGV78Xk^U`?Gj&7N}nae>iqm zMSQ+ocJXzaV;3S;x;<%nwkZ)5RVX5Gg||!sD+pW!y)O-Judv+oKYx^}6ab^)m<$#T zIud$6OS^QWmTRmc2I5!fCA9nTCsM7X5fBW+zryt0HFRE3ob0cLW5a1W7OT`9bdH<6 zSG=6%-loibmrw>}F~~R5(@c57_E`f?dp(MS{BC@E_nL5W+e6{Y+#ZBA3Dh`Do~DVN z>-g24bB|@NP<b{+1Iy}GMvF@4P<ETRqd`~DEdtn6?VW#Btc5kt7t#YyWWJo?I+wPU z)vQiJ={|7T*0PA#ve}k#Wo5MUr|90rAjnY>a;v}R2IibMCM+>rGAwxIq7?h17%rq1 zmyo|*#K$%Df}%fQqmk^R53;<0$Jgt2YpUOuZbMvWuY(vfWrgq+Q~2j{q$$HOs#sE@ zkEVQ|wAx2}xLMbxkDqL7!uFlVH^iMxo#h@LfIQ%nW6=O;8p$s?@rD>k!V^9pCc#-B zW~mv@f1IVd+w)6rz!w!fI6^7j$T*R5eob(l{rhPSQ)Hwt9WhBFE5{j%_I&~NjwJnW z>I2Z3q05MIBPE#77}L=kO?VynUapSaE~pU_sMQxHbPN4D)3k2RQ3Of{9wY&>voS;| z(O<sBOow}3ynh7`rKJO>bVt^vlw@aJC9Uvj=q4lKU3u<PW~gOq6Q$$%O|q|Ny_cD1 z77RK+q$D4Y5O19S4tKoVR=*jzY%jz_h2#Wo+Wv*`l?RwePWIa0=tx^A5jKNv&Jp1| zjY$23BF<%7&YTY?v8Y=ShWXi%3i!?K)q_<bM*Avs&FB?kZgj9}(W~|aN0?NW1WL(| z$TpqDJD<{LHvQDRs*D-fNQO6$#aqW~gV;{@W|xAzkU>2wJn9nPzRwj}C<d|iP2L)J z5s6PtMEiw9%f=vJ=Ll3-SeRd3nvAcaHylSx2O1Ps%QjIfG+wB+_rVW-O7QG`V!kg0 z(Q^6YAqP95*6u8w$EoZ`8n%*jozaC5Yug7<pc7P+;)uh0!_yjR9$mKi<?OFv7X&wu zQN+6JK{R@+dcf@#LT>`@dSF-f2zcyBLo-yDEZ=!7m*DQ2iFs@|-C?ix$Cui^T+UQy zE?e^w5i*m9dJut#jmXo-$g8brlQb#ibTS6y<5w=Z1ZaiZ%EH%qqBPGe&M1dSKSzf7 z(LO}bW4M6%4Ka>BJ~_67KO+Rq?T{1R5E18+5+H|u5)6UL>ggGwI^=RTLn;qBYneeU z(TCDkq1um)`iNnlY63dU%l<K0xf0z9fBNXS;GQ8R+KR-~j3eYbG04JQTl$oVD8u*` zJeQmboxzYXv@%!qAbV@Pf8djZ3g!!qOe)xQUgfsjbB{(5kMnJD%=BDv|1xHHQx!W* z9#0PYc!v)2AS4}#>FA?*=(Xk6>JmC?M{Zyv{2m`VwW*1*BC#%kh|_jRkZsZtXCfv6 zCIUd@?@H1m6BD0TG@UPfA~Xb}&NcC8lutAAP9A_-KPzb=OJ>5&ibiK{Lfhj_ZMc%U zC4Po|F_Q;(Wf;Qio|AbVeh-#g{^RM<7(gieg>F{G24ki0&Q2<`EzR(M^RulL^&m1@ zPV~xN+X4$WT;dn|ZRqvY^EfB%5Gx)PQ=zy?1rotEv;&q}{w*h#?4#%3I%+em;&JN< zE*3q1xyh9O%+b<_7XBkfP6D-+-k-X>-yn&PR;^n}nE1|K+{tx08;%4aZ2pmYZwYl3 zR1T#;RJy*la8_g5B#0g?rG_fo=69bd=)sSSAGv>ETukCM6(J!GCDO@dJwJhE{1#lu zV_SMW{vmtk;DoE(<usOVgq$vsRgTRWdE{?sVog~sPmVAG$7;3C+0nKygHLkm;xoq7 z$_!NX4;NwnTfPwuJQn}%lC!d|xkVoy{MT-ekWGF(%KtDclBff#x~IJ=P312_i=0^y zEidP0xo>M1Yj^m(ORsju|G7)g4P<m0E&i`hXz!dyU4{u|!5t&&Si$QQzL~?qph6K6 z3X%*{(Rc^l&|d0*uV>1H2(1irh;uHR&S3Dg0!qcGje@VBd7$86#WDG*C39xzlqWmU z+M`+p$+grs@lJ;7MJAb-*H;MvjkIWbyP#SZ0W@uPAT{}wF2HyI>R5cCUM8Dikgl7m z<js3c`JYeI-kj)r)MiJ4oFNsqg2rd&MSqm?%xUY(OW&ok*kq2IShYe`R~w~22zqjP zh^bqv-x>G*dAFJ&5obP!a~jyWn&{d2DSk}-_wj5^65Z_{rve|<B4z>sD?4Yn=xJeK zp4~MGGBQQtTQ3Y<ZVy~PdHiPrvh#D&pxZG`x#jpc-VTX4Wv^q`A7`UcT~!X@>ySIE zYj%EGRmSz7yC;hk$u1wT(sR1iNN(S)+Zj96`*k%ueCK@WXC2=%bZJ(O!9-kw6tDLC z$2VmwZ>O)gIcF%6?wpDs)4FP?k}dOiWnc~_??n0Kw@$$a)-?w(wLU#-@LWrGN_M&> zrRxy)@i}KxZNPQbHQ=C-s-TT?LxhN${d3#<iATmLj;npsSV6?91ic1_TZtQd2&*0b zvy&aef@t_Yf(%WxT`FX*bxM7e(DB&F6cSwpes+2GsOX@uA9pMo4H1}+=`|socpVV_ z;lTE6hBl(D%MWgplyOP_B8FlZFd1kN{Sw%*{aIND8XQR2thIYQ@)dks+6O7)Ze1|v z{y74|jU+Ky{p2eakq@(Bn+;LRgz6rNt7MwCZXc*Sv}U=i<9DPp#=c$`SEUPxE^h(F zFbC9MM9%g%yo#UokYso(Kfb<cC~^RTRasHP?3+nc<>)tM6aMr58BxQ3q<mV(S$Yt$ zRx{Y{u=y(LL}WpY5+{v>n2APoltIYj0ff-Zn#v0uUcXNXMyM570D@NMXd`6MN#)CH z=&zUVT|Q)js)R`+2pQ>zfbo_Ctuw0@=7tbrCoii4Go8AJZYp%GFl+`BK${hS+R(4t zkZ~wrYN(yDX$xuHctVPuyWVACTbAjQ=2XD^2+o>8hrTbt9_n6`I9DlA<4Ov@{bT#a zl^~d8T|;gh%Z}G5ReLlr$@!YT-Rmdy%Y_pDfzfSopfg_&zKdplHo<^rhIb6`XPJ$7 zZ~sB}fxC4VrM)|UhJ92_3-BKDb9Yee{0c?!GcFuDv}SWDAKx9P4+HN3wJQdE?;dGg z8a3e!>Nt>>NvF_{7^H}xUu2%jFs3M|2Kyg2N49kcR$~2Sb)IlwJdB@wCbC}>8nIr_ z9C3=1;U;&a*6#`oI-M_e!bJkopj{kkC2Qt_MUR;BpX?7J+l9FN1Wz-~PLRUA-(0!Q z=~Ki`6%Z5t<bIzXYTp-8Pv{BvvlBSk=ZLtWb+}MzFw;I>T!h^E6yqKwPt#lT&ZGWZ z?$rvkiWS@w=_hoTc7#=I#93^^o3@D)te?+@G71@6$BwOsk8Ns6yyR;2Vjx(8%faDa zk_Zu#nyWVFGqc56jWiUw40LE&^9_v?yaVjrb;Rt~v@j|`V7d-j=9u^_M?!?H(*f1+ z?3ri+qY`{&ExzE8hkt@L?Fd$^&-}h1SclM_0okex)coo7z-F|_cd90hjK-9z;n8TH z0|=)0jC0TVL~XzTty8F}j%DoVzNOo5+`hR7(FMO%W8Gl{aYGG7ejAD~4e*1yV@|)$ zv#~j|M-CK@!1tf51SO-nWCM=BXH>OFfLfEJ^73Nd`?3|uF9qu)flAsVz1V2MD2^E` zqXdrs5nxKV?l9`uQLm@{(r5FHdWP}%T(Qr>%}TO96Urh%`a(a_k{@rU+!{OmekMsh zrN9uTz3h}|K`>?S4X1xCf5eqWoas^Np!k28zn^&=N3gn^oz5MccurA~q|W$35z@q} zXsc|r8o96KHCt3Iv2!&mCypM|iuXRndqYO8@TXiYj=Kv?EaIQv$*jf8Y6KB!(&}|C zvhcTW7Is+X4RI9Nz8OvW&+T9^@<p38&8w}cd@P9PuUP&1?_gmWD&2CmqGF8xcAMq7 zKDXtAx6<h-zO${`lzd>WHkE>zbaMw0PI7L+SuHS~F<V&DY33eR=%h(-dzo^$T4p?k zGWVKDD2;HKX~0Rk7hz;GeA7wtp<qpiV|8obE-wFYy{4XxqZ_$$l&8O}hB;-^z5HqE zapyUFWgkx47@+Iwx`@m668rD>A-E>b_V!k6bU9he$u8s0UiEg{@&lfi-}w42gJLO5 zro+|fG7O=0&xzm%6_x{Qj2VNh8Aj_F#_NPLDO&p(^;oPV7=sVzb~5zZfZfu(Gv_Va zy80a5y$;!{H~b2CrN?tY_PiMbpS_Eh(_373FCbI0^3JsQWb37cHZoK=;(UmJvr*WB z5W=1846gLyYZ^+eAW(3u9|>AgfcU~)x(hVe??KS!NH7`BG#1V<5(e%SzCtQ^F7)^? z{~WN&0E>31yT^V}Tlz3O>fa-M{g49Fw)OIbzvL{ioDN5aRL{wBottbe>~IezCLPfk z-vzEZ<UG^!DNE`k207ztk73Zu`Q85>eliO&VOdZ^$^vR-qN3m*5VZ_vG*j^0CxA`4 zL_3VuB~49J)ba<jTUuzSV@T!Le|yNqW|y{5h_}7*3xd#aDo5J|O~2j6lEoDqsb>O} z1g>Al8YqlL_m&AgET4y{tc1GDZepi<@GpL=7BS*IInTK#$6~MUW)evjWL5YI1coL} zp+qf(644xMaJ?_%<g8_3O=7T(rRGdwMx?W4X@UI%sUPYq{Na>s+LHG@M?|1V)B8z6 z)zI8fSfUKRbHLuld-chf{93F^+lJhT2kC|4Huw*!mn!EY)A6eVosH?neumBUD+*Z+ zYhBa$SBaWGK>{jtBXohhf3j#<$HA(!NnJEank2Yc+Vp;is$oa}ACCzGz})a{zS8ge zmV+PccPt#JI^;V)Z)cSgV!S)+uGZ`dEp1qp)cq77@FnJVW<wsS?byei!4@D)Nlm-T z>kR{yD+bDASOVB7@If+MKUswSv5lLMw9aueHF^a=l+oRrAycd9Zu{^RPxbxRJW*); zUdQSy2o(}j*0XSq(^|q=)dZ21Hr}LH2-?IZ*=>GXveDmA@+L(He{uI(Fa^XXr*Z8X zKkW4KG@93S$o{cqE+z95T<hkJdd~)0jihXhymp#atC<7Is{t1R`8IJrKiv_9lVF9S z3{}Wg!HFD)X#UhzJ)FYPU#U;+ToV3kBg%+Rr^n~_XDx$CfAb3+@Tp}Espb2qXX|(2 zW^Hi<S|9yWm#VU>j8O)$Y2H>k;^3s`)0XFrr(R2cXM{b*n+xRYXla%`K{UQf2vg3| zu<1>VK3Qu@#IAbx++G8S-msur``#9Hk|rd4iRk?S@8=Ie_S;J_|Bf+^B=#qZx+P3= zFX|<o;wWfn@jFq+I9i<xBJ_WVewEB?3wXikV$bYTs*T0Y6gzhf<HtlBoC>L&vS+&F zwFZ%PI<gDj29@ND4=HILJP%!Qr27CeO4NaK!{I{sqejABSkRi)%RYrt+}{U-H`LNH z)YCW!b-7?1vFh6!-Rxr;ryl{)<QW_i(}CB$z3gFz*^hC`8Scc?KiK9ARU?n>pce4k z@fz$lT%AVhNCae|Js0xZ5{FnQa*0ssMC%mhYMJ-${vJ&sR&|=rNR?Rp#r0>o@A;BX zIyE0$C{gG5k4(g<jm7>(TmQhr`$ktA$hK|{CIvw;UlSy~hgMC`9u%3jEgbUj@PO0L z9ffu86&k8grq6~Jl{V2g>qa7ZGZ>ga`tzBmTuv`lkUoI!UaIP@$5B<xkX=Ely3enI z6t_Ul)V*%6e<yhNzrKx4$rK3;{3E>vMHXsIGPoRSoQvreeCrAhrR6N6P-ZT}YPz6} z3jyy2CbAkCJuL!l_jkQBkWD+ifm-+}TkV)f-8Swy?1>Lr=eb4l<M6@Uuz`udtu87I z_jq>T)v<~z9dVsRekaEe^l&Z0bjWaHel;+yd6`A^PV-R<!;H;g^;hTLV;I%-5Y1;; z?$O5@OZe;{KYW>*HI@?O>wKZq@Z&tWh3s&v<40^t+cqST0(^QuHlyK04g|{zRB9J; znmf1&>Wu4>um{Qe%lk2+n^YQfAj<W@i{)_$U>RMR#`t0S`A73!q3I>1B}MnQ>^Tin zB;_Dpwo_iq>46tv+cM`72D`IZ{ZCZ+&DW&L8omtHkj$R3u)d`isV4Py$04H2Q<W8u zyUUU&#G*Ahbn_he1O(<PQlIrdq3KDTeJD??Dt9q{=KsjYIsUOuTZ-KU8F^&S*WZ>q zy=`{MpgQTvF&zPjnB#YTP#45$@9XAfBA47#ef%X6Xpe^kcJxi<1X!vnqlaX$ZWq+K z!{3OxJUgAEIeaEIFCn3%p!mzb6CW4Hg&)27c-e_s`vJ66=17#BUsl6ljR|VcA7&yo zAi+;!R~%#`>D;$qXSe_9Ix>q4Kr-ahNKbNzHzsfglG-0^DxHh9zPevZ^6}+9+Nit9 zu4Ek6dEZvuY*C`z6cY~?mWt(9#P@_T$rVG-ev!gi<{(!j+LGd>McS-u>nE-kZI~!* z_gsOGO78E4tox`pO--?qZW|81sb)eFV(o|XYRB&@25TA*pQ|6trHxlR-Z(kp3R70x zXVF!>RE)kZ#o7@@t+kDSWY95iSNt{4UHqBr63XU&HccB;cXUnhe1!L**Uy7-+$mY= z%ftF@O+sQNx6<_9mypM|OSis<F{u!o!vctb5Ne`JN0JK(m0mOc%>OqDBC|zT(XFN4 zizPE|5R&=~Wc-!q(&idu)n%)}k>s$m$oa)!-AP_m(l#5Ao37x=f!vUormg+dws4@H zIm&C44#)t_o0pd~>HWarqEsQls>W80Bx){CmX%$nLLDoj3R(%BA7hcal02OwWX*k! z+?^woq=7^+?9Q&7WPfCRF202|+!#Mu7=y{dA=RVrv~_e&crp1m%XGen>{s>gP)Ugr ztOPLEr;1y>DIM0Axh?ny6D&c=q%kSr!e(NJUOJ0kV^Sm+pWh-?r0yrXG3HPyu^4+u zA_$X@wcFZ?TV*H*<kLR1ES37NNZUjq52%&Pl4oRrP{ri=hNy40+vur<V9o5%{^fAB zPW(ZthWfdx5DEVoN*SP8i0z=vE_~p<;JS_+;K#Jl8u8$l6ZBT59O>D`xtRLMQW{l1 zzLw7Uo6Qe7p>AoF@I%S%6~7uS>+i(T6Sr}-nfyX0?mWr#^dh3`qgwnh7S(#PHyDs- zPFL}BC~k~}EZLgp$+znjW4^@6VBtzJ%ClxzTLL-pVb6WhWYVGA_iOa7V{&gkiTk2S z0h#)B7rp}0r;V0Z2>fZ|(;{xS{8`2CL563KuE`W5kd$g_Xh>H({04Wt`(`7J7V)^O z`Jasc!CTpJ+^p}L=94b#jVX5=$0OmIvugY&iTgU<79X49g8+CJmw5L4kyh%jHqcks zZF+O7*O+s^reuyUH5IP@qT|c!vR%gN?GK6HEG%~JLid7JPSB?E+?QNDQ(<mgllO1@ zIn>*%EDQ{}&q7!17I(ziLs^M%c{-bx1gyCNHwja~YtkH%xM+bx7B_!j*}dm$h_RAS zefOr1GDrE)lH6@^#IZ$SaY5|QfwGf?osMfn7UO>qZpY_u9c3o-GeUbe!%NyAxPIEk zW=^`ML4;ZTE$z;&iMU&TE#p2%FB&ZAxw8CvsBJK0BRO9n+&9Z#ak<BxB$7z{OHADx zK{;@;mhem4?&TPV)5EBEmT`U5PwUCgfcq+~&J}C4T)+w*q>gRm1mUZuxKHjnRkiY~ zzng4Q?i%k9c}qc2P3mj|#FmhliZC;Mso5@KTvYv$aZTM>nY;hH@6*mA23@&kF>I3# z@>&ikJ6pHpVXTkB;`N(E%a7E)Zfc8T-tz2O)zALY=NdTk()!*oA=fPbMfz&HY8h(5 zU6V<lz@eaOE3y)EG-43sis8K1qshmA;8W`rM4A5Yl+v$+LOzY&s)RzMnnov=-paLT zNoifgoY-H1iR>bs!`GE0r-mH(Q-lx}x~mzvt6N!E18Nc^zT(VW(8bAp)wLbzhlG0k za99<m%<;dA<kE8;Ha#$ZkXM$w{!5Jd`GW}LRQza@I}p?)MovOPlAM~FN)FIoSZ_|% zo*oPI8Y~g3i;Rc>AcDG>5T1<Cc6xs&HnhH<R(Y?l+p4mRS#)orJ)gziwe3h-cc6XI ztaa-}c1sN>jX(8T%yyT1SyPyRxC_@z3=dhpV^euX_UfltWQU=xQbiTVDe&OA@w?rJ z2cTl@=*|Y5(ILbTQypn0XO8_72i+#*t>mENt?VhE?UoGbQ@_OnS<l1zZ2X>I=7><n zuq5AF)qwK>9WlT6<_vw$XYQQS?_s8D?L{gTDs2Go6DVRq^K-YebKY^&k7mDSFeW2d zM)eJG38}83{d|tFoaIZR?WXgSYgJj`1#HmASTKZ?SNb;;%RrYzG$N8QQ;6Xfn)5aZ z7}U@F4HKoare;(4*utQl%c(fvv{`pW8oJr(iXN2Z_c~YgA{qGzU=>u(HUNkSrU(Tc zo5FJs+va|#mrRaXs`q!qsosMZz=%UZ=(crwZWU^%&i+=~WKA0!D%%23=CAHss;UBW z4q>hZYwpyf;}4wSPe+ix&8_hZ)iCLOD&IgNMK@U*jyr&AQdP&5(wk(mV5(ZE!d(Yg z3IGsjOti?nD0Eq!7<E+>B2Fe^N(OcvOQyc>=dt2J?Yzc5;QY=br;F@U2d&TuEH#-l zO_jE5eB$S3e)025iW2kJlc9zb=<W{uQH00jdLi)@$H_Bn9W|WconOZdKW;S;mO-SN z0aXTgV<IL=mGwtP)g6dHsbhaoGFBJsB<KNNig-yC&@Y4(1afi|l{=_-WhlO9sRf5w z?*}+2c{0$M8VZ@xC0YrYu?kg-2>o_e$t3xf>>`5_QznkT?8uR8Uxb`xfy$<^SRCiw z3dy_AJ+%M}0D6bt4H9i{cKYC>-$5`)+SE#^ij@QKpfM1O5vx*$s*%LjE@q1Ae^#8d z-iILK+ZI{yyI@{WS!}Rm*mSOSo9RcVbT>z*XAOk<IMNMgH_q77u6%WOiGQYRnR~IX zo_^eebT1CK)_T7J)W}F{Pc~%V_j-~;QZ`c&=_+TAL>*>RqKqLTKMt&Bk;`u?HrrT6 zlyd8P5Iwq^))%7emJhkE{!1gP6wnPPobJ4|p?LOmz~UAqM{g=Hf(<{*&>3GPq+3jV z;TfKsCub^Z3Z!1r<^Aa=DbzUv03DHr&%n7vhC-mw4D{H#^FJcEgrZyPvZIIp^(GW) z%BQwPdi*PY!&$>OiGLA;h-vNlm#A-yi0f9GT0SG4PcwH?B?4CVwEMt7Z4gN@HwYET zQa_vp5J9XyIG4gulthS`*OUSrrU6EAVY#8(w`&<o^hxrEDZ_2h9m1{4K<{Ac14M)^ z?b@1i{KrY<$>qtFCi+ym=>9vrw6F>u=AIN%)Gqza68xSQpimH1A;#Z_B9rbF0<_6c zbA`XWa?-Db(M1lc4soAn{>^q)1olxEcM}0oLLVEN1w8%)5KBEl@UYIBqgpz7PF**v z|E~U|v9x9M6$4&tRLt(!@{fyTyZ&1f7ic6}gAt$#Z@^s<?^O*C*!ukZ(1EZ$VD3F% zUN8Ql>7XxR?-u(V#yD{xYuoSEaxUKmYs{_>?5p=DoqFBcamaO8xx2ut;9=_EPy27e zV9KDP?4mJNsd?p2jr(P(#WO63czvf{apJO)uJ7jJx)iY^^rz<fl-c(&F%`HJt&%1u zMpc~?^FbyZhz_PTLEgb83h#-;0`$<kt>GjwWFhXdJj!-}ijlfqdndrI6G{rtTuuz` zTK&vbv29r~_V4u%EFE$3lN)mPMeTyFT}83KS!SRbnR40LX*5tRG|u=X-a7ZlLkdij z4yx8yS$yR3=2XsiMMz_i8fS;@*b485_)gpU1|Z~YXl~ygL9Sokl+`$W_ynlK;iSlD z8-*`USG0d;!1C+z^K3hc(g6q!C2R-ZzA2OLqHb%`Ch_W8PG-#m;!*3UE|YJ2m;VsD z74}IzhrRvJNHCSSu#Wy`cagZfxWJtR`U^(q@|z`@%X|_~@Qm+ERKD8i)a}iW`ISEB zKm=PMFqH*i`pW<%(X{@bn7`zpJSOI~09M~WG!_P&*s)I(C7L8j42Gf_BV!yLYt>w^ zk5l1O)MuMJY?9}@)^i8GJVF}2&Ej<&G7(WsBfm{~PUq{_oYIT>9&2A0buYN1{I!_) zXRVP_;iQV~EjqW4`=d<jELol)`X8*jY|vS!caE)Mde1oh^!Y)z2IVZCl}ftw(mO5e zeVqPr{$A}u9GbKFxwWA_Zl-dSGaU#5)_<6StmDv!Ix`0#WMjA#V&450G_-cbR(H{m zoEZv9ALCMHeCz82oy<^tY>6KAMQ!gPwmuLII|xX@+cl5{b#!lkO*&_BG|T1&r0p|Z zQw|7<=#gb1zJ0(daX{ywoF>ilLHMsM9pe47d)IP|iBS5x=SiwxFyEo6;b%?q_nqSS zaHEQK7OdJn-rSo^4*><Ex{d}OMx`ID(}VX;)$lra#9sI()=tDbt2jVVV~{LKN5%E$ zpg?Vq{j;rmCFZoMxgq_FA!GKTvtu9uzqT`kkQot`upbmdcmM9>>$qE0opGNF?$h-R z_##`^kM$~W|6F#XU9UAfy$SudgGQ>DVvuno#z!Wf-9D@Cxu9DwCwR(yZbRJf`&fMD zM4=RInp9n#%&6aD0aC)ldHGg?zmj2LBH@j9>RB}`X_3vdZi6gwTMTdqM%XF@JRYVk zoeetD`=TbSLL$MWgN`IR>mvv7qS$`&Tw^d+Bze;3GX>u+-G(HOM1vjpnYV!`rddRX zsMlB17K0@HKIIY8;h*Z!`6zjZG_UC=csp<~l~o(uMPb>noaNbJ_F978O%>nd>ro*W z=gsM`6PEiD(%Vh~3&;?AebSNUxbpgYzho*EF<bHOt0&Txdj2}D0LoVi{lAnHe+Nec z<cHP3_>5uoPa|YHUPMelK+1{X!MfY?sRPj_6um<27CGCKv!_3to(>3dR~xuTBm5a! ziG9y`HI(uDBXb(R#cz-Jm!D;~|GH_rP41hRj74U5`=-1F3MZx0szJ%=0dtrOcRCl4 zYaBAXfSH;AJy7S^IApzjdwlNjIMYZpepI=-XY=yI>GS#w)2yrw_~C{~SMd3ip-~MZ zGxL;ZP5=uPxqJZOQQO-=#D9RwnQva`!P97|bQ36gssq1QKetym=i?7fCj()7SKGyW zW@a4F@U1h^r(c-d#%)ww10l{XE{4`V4AfqNk9_1Lo$w#%i087M(jD1dzUc7IEY9yc zGXtjQEx<ejseBP;&Kjd0+{8>Rpr;l?x}RXXH^a<}y5dmRtMyzPPb$a6?6soNcEqXP z3J>+U6x}4)#Q~sezTz1!_HeaRVP+xpX#Ts#uq$G|2h&<l*jxMY5AdP$iGMqggMpAm zWmtp#R;zA2%k{G?TF!K+bu$D2ZDy06Z;Xx9D7%UeZIu;-^b~~k&VW+X$iWm57<4e! zKeK9WAaD?&3`~=cvojF=sCpt}u)wqUN7O<!CzJ>jVHkmsYgVzktP*GpmQ!+*+u($~ z^-D~i;AzL&=4k*3LR*0e@A}3)Aie*8I+@#vB=|oxERcq;Xb71)7u=@cTN{zHuzVYQ zJ~RXVdh<^WO$y5awZ5E7;L7lQGEzWO!uH$5Iv1f6ne3|!{)3+0_nakF&ox!eG|f&C zCUK-<2mEr)Nc~Nc!LpG06nd8j;aoS~NP26zx^kfI_%gWVlX-b_tv%<}AC>2c;#K6N zjbRsklgrb7rS8<xAMwL5+-m!xc;+UMy@xQdP=GBw0+~fS8_;-X!`lGyue&yhLOJ2x zTS6oPF54O|<>AMqjX_I=N52-IT-E|~w{O{X5^aRncj0gq;;ZP9F_LsB)KD$cFe9&q zXTw{W*_yD>-yQF*=?*n)T|DeqJZxLoY1=$(`(w?uX>#Rdo;UwP2D8PHA#KM4(Nj0t zmmd-Qn+TD-8b%=%ky55mD#2oD4>`rUS8JxaALTf+!>L2`-9!2%@MrfP1krE4{7)Zd zKp!8lL-@Uak7|F<YrJI^T-*3MDvQtg9oC^$43l}m9#zY1cda1}u}byOfAf`ZAR=)? zsN0~k(a_9>GQSe+mcoc*KVFP-N(YbwI)<`&MC*ISMIUBy7HoGuTJnHu+|{e@#S-@Y z(XsMiQ7yS!Em!TdH;@yvsnHep@fK(a0YS<fb$saf)tT8LIN0m(t=@7O4`4il2<a;! za_bDd(Jxxo<oP{>^4HS?8gQ1~x4SGcT0bLQ3+|M2boA?X?;7CLE)n_tF`F+=zrI-1 z8Ic|7*nUDdxqBRlg5$WVtGx)m5C2bh0PmrB5gE0<!gDW*l~*EEtbfCMN!S(q=tPoe zsA-O#O|gqiMNUov(PZ4YDdfL@3xa_@yv#?Y*5|zctFT(tgFg@AK`MTE*RiCZgA)^( z0No2!C>P_GLX<bcx4$|~c7B?lR`d4fR%nJ{hlG%!wPSdKa9bh~Ohd)Nu+Ry51t8@# zH{2!f%BXr}@$OGSX=z*Jq}9IUQJ7ATp_MtAi3G%Zd(wYW#yOWE@RT;h*acJFMUmc3 z8XRf(r3sk@wYIUTGI(?47O)0DWq?Z!Q_@CV+d(1#-(W!nbD<OdfkRo{@)xRHHPfZQ zc0qd_w{=KKRrVpe`>G*C7!Vw%Jehy@N)AivXyHw^+seOSiogm`aOOe<L^4c;!2<2e z5REbpUj6j#jY{UC5cifI<&L=(lH05%y<j<zAbJ9K?)pE6iwjwN`Iv-(kufgAEOW>; ze1(xa3I#=h2*80;<+&9>NUPb*P5Fgj-`u~-4xBau<jxLtUSHPIMpI@Go|D*OSO~N= zP(49|>6j_l70koZrh=lpZ(W@?PW~-O^xiMre$Nr&f<Zi=jUtzn$l1u+B-B3qh$#3A zeXcR6y5K*ts`@~`K7YJZzPgN+mN$C4b`;#Rf2904e9W4%k!<|TmEL)irs??48=yGw z<h`pbSihM6QbMn)^u=xET2obBtxDXu+W+q*^P(y$DxC6zukiC}Z4|2IZhTTw=vDnc zJw0l@sVkDmIGUcHKdUWD%%K2BqLs5{`C}4Y0l;H=<Hn82)vM#Ho%+?PL`YazRa27` z=nalKJ0`#6N`V+jY`XpW22@1ke|6X5mBXV~Pvq@iJOO@zZowsG#UyWu-MVEed0QU% zk%EiDCFSAp3)(=H|3?E?cZX+BU;lqMh&Ap!0~!cjjo{(%R9^d;@spQo?p|&V&)gi< z+<igPQZnL_veLd%x2479WTi!cfqq8`sse48{&ySmCof(;b9Vz7YG{f{ir?mD*OK=I P{tvo$S6`!44T<?*p>I<y literal 0 HcmV?d00001 -- GitLab